Derzeit arbeite ich remote für eine Reihe von Organisationen, bei denen ich regelmäßig auf ihre Server zugreifen muss, um Wartungen und Upgrades durchzuführen. Ist es für mich sicher, meinen öffentlichen RSA-SSH-Schlüssel zur .ssh/authorized_keys
Datei hinzuzufügen , damit ich mich viel schneller anmelden kann, ohne nach Passwörtern suchen zu müssen? Ich gehe davon aus, dass es unmöglich ist, den privaten Schlüssel aus dem öffentlichen zu generieren, aber stimme ich mit meiner Annahme überein?
Wenn Sie noch einen Schritt weiter gehen, besteht dann ein Sicherheitsrisiko, wenn Sie den Inhalt meines öffentlichen RSA-Schlüssels ins Internet stellen? Ich weiß, dass ich bei Erhalt meines privaten Schlüssels große Probleme habe, aber gibt es sonst echte Sicherheitsbedrohungen?
quelle
Antworten:
Ja, es ist unmöglich, den privaten Schlüssel vom öffentlichen Schlüssel wiederherzustellen. Wenn es möglich wäre, würde RSA grundlegend zerstört, und dies wäre eine wichtige Neuigkeit (das Brechen von RSA würde nicht nur die Sicherheit der Internetkommunikation erheblich beeinträchtigen, sondern auch alle Arten von Bankbetrug zulassen, unter anderem).
Die Anmeldung mit einem öffentlichen Schlüssel anstelle eines Kennworts erhöht in der Tat die Sicherheit. Wenn Ihr Kennwort nicht stark genug ist, kann es von einem Angreifer mit ausreichender Bandbreite brachial erzwungen werden. Wenn der Angreifer keine Kopie Ihrer privaten Schlüsseldatei hat, kann der RSA-Schlüssel effektiv nicht brachial erzwungen werden (ein 1024-Bit-Schlüssel entspricht einem 160-Zeichen-Passwort, das aus zufälligen Buchstaben und Ziffern besteht, bei denen die Groß- und Kleinschreibung beachtet wird). . Jemand, der über Ihre Schulter wacht, kann möglicherweise Ihr Passwort und Ihre Passphrase sehen, aber mit einem Schlüssel müsste er auch den Schlüssel erhalten.
Private Schlüssel sind nicht immer sicherer als Passwörter. Wenn der Angreifer eine Kopie Ihrer privaten Schlüsseldateien erhält (z. B. durch Diebstahl Ihres Laptops oder Ihres Sicherungsmediums), kann er versuchen, die Passphrase brachial zu erzwingen, und dies mit hoher Geschwindigkeit, da Sie die Passphrase nicht einschränken können rate (im Gegensatz zu Passwort raten, die online gemacht werden müssen). Wenn Ihre Passphrase gut genug ist und Sie den Diebstahl sofort bemerken, haben Sie noch Zeit, den Schlüssel zu widerrufen.
Ein öffentlicher Schlüssel führt ein Element der Gefährdung der Privatsphäre ein: Wenn jemand weiß, dass Sie denselben öffentlichen Schlüssel für die Anmeldung bei A und B verwendet haben, kennt er dieselbe Person, die bei A und B angemeldet ist. Lediglich der Besitz des öffentlichen Schlüssels macht Sie ein Verdacht, dass Sie auch den privaten Schlüssel haben, so dass Sie etwas Anonymität verlieren. Dies ist jedoch in der Regel geringfügig, insbesondere, wenn Sie den Schlüssel nur dort speichern,
~/.ssh
wo nur Systemadministratoren (die auch wissen, über welche IP-Adresse Sie sich angemeldet haben) ihn sehen können.Abgesehen von diesen Sicherheitsaspekten hat ein privater Schlüssel viele praktische Vorteile. Sie müssen Ihr Passwort nicht so oft eingeben und können insbesondere automatisierte Skripte ausführen, die Sie nicht dazu auffordern, sobald Sie Ihren Schlüssel in ssh-agent oder dergleichen eingegeben haben. Sie müssen Ihr Kennwort nicht so oft eingeben, damit Sie es sich leisten können, eine höhere Entropie zu erzielen (länger, schwerer einzugeben). Sie müssen Ihr Passwort nicht so oft eingeben, um das Risiko zu verringern, dass es von einem menschlichen Beobachter oder einer Kamera beschnüffelt wird.
quelle
Gilles ' Antwort ist im Allgemeinen gut, außer
Ihre SSH-Eingaben
~/.ssh
können auch von jeder Software gelesen werden, die unter Ihrem eigenen Konto ausgeführt wird. Welches ist wahrscheinlich der größte Teil der Software, die Sie ausführen. Sie müssen dieser Software und denjenigen, die sie geschrieben haben, vertrauen.quelle