Ist es sicher, meinen öffentlichen SSH-Schlüssel für die Arbeit auszugeben?


60

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_keysDatei 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?


Antworten:


77

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, ~/.sshwo 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.


@NaftuliTzviKay Eigentlich gibt es hier etwas, das man übersehen sollte. Um Ihren öffentlichen Schlüssel verwenden zu können, muss das System, von dem aus Sie den Shelling durchführen, Zugriff auf Ihren privaten Schlüssel haben. Das ist gut. Wenn dieser private Schlüssel auf diesem System gespeichert ist, ist er anfällig und das ferne System wird anfällig. Zwei Dinge helfen dabei, verschlüsselte private Ordner und ein Passwort auf Ihrem Schlüssel. Um die von PKI gebotene vollständige Erhöhung der Sicherheit zu erreichen, verlieren Sie daher etwas an Effizienz. Sie oder Ihre Organisation müssen eine Risikoanalyse durchführen, um festzustellen, wo die Grenze gezogen werden muss.
Xalorous

16

Gilles ' Antwort ist im Allgemeinen gut, außer

... vor allem, wenn Sie den Schlüssel nur in ~ / .ssh speichern, wo nur Systemadministratoren (die auch wissen, von welcher IP-Adresse Sie sich angemeldet haben) ihn sehen können.

Ihre SSH-Eingaben ~/.sshkö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.


2
Aus diesem Grund sollten Sie immer verschlüsselte SSH-Schlüssel verwenden
ItalyPaleAle
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.