Ist es sinnvoll, mehrere SSH-Schlüssel zu haben?

44

Bisher habe ich für jeden Server, bei dem ich mich anmelden muss, einen separaten SSH-Schlüssel erstellt (für jeden Zweck, um genauer zu sein). Ich habe es aus Sicherheitsgründen gemacht, genau wie verschiedene Passwörter für verschiedene Websites.

Verbessert das Vorhandensein mehrerer SSH-Schlüssel tatsächlich die Sicherheit? Alle von ihnen werden von demselben Computer verwendet, befinden sich in demselben ~ / .ssh, die meisten haben sogar dieselbe Passphrase.

Also ... sollte ich das ganze System aufgeben und nur einen SSH-Schlüssel für alles verwenden?

[UPDATE 2015-08-05] Github veröffentlicht Ihren öffentlichen Schlüssel, und Ihr SSH-Client sendet möglicherweise alle Ihre öffentlichen Schlüssel an jeden Server. Dies hängt von der Konfiguration ab Sie sollten mehrere SSH-Schlüssel verwenden, obwohl es meiner Meinung nach paranoid ist.

Leonid Shevtsov
quelle
Diese Frage passt möglicherweise besser zur Informationssicherheit .
Gerrit

Antworten:

25

SSH-Schlüssel verwenden Public-Key-Kryptographie. Das bedeutet, dass Sie auf all diesen Servern nur Ihren öffentlichen Schlüssel installieren , den Sie der ganzen Welt mitteilen möchten . Das einzige wirkliche Geheimnis ist Ihr privater Schlüssel, den Sie auf Ihrem eigenen Computer aufbewahren. Also ja, ich würde sagen, Sie verschwenden Ihre Zeit.

Spiff
quelle
19
Ich denke, es gibt triftige Gründe, separate Schlüssel zu haben, und dies wäre keine Zeitverschwendung. Im Falle eines kompromittierten Schlüssels wird das Risiko dadurch verringert. Das Passwort sollte für jeden Schlüssel anders sein, da stimme ich zu.
jfmessier
Ist es sinnvoll, unterschiedliche Schlüsselpaare auf unterschiedlichen Computern zu haben? Wie verschiedene Instanzen von VirtualBox-Betriebssystemen?
Santosh Kumar
1
Diese Antwort ignoriert das Konzept der Verteidigung im Detail, da es auf "Ihren privaten Schlüssel setzt, den Sie auf Ihrem eigenen Computer behalten". Stellen Sie sich zum Beispiel vor, was passiert, wenn Ihr Laptop gestohlen wird, während einer Ihrer privaten Schlüssel von ssh-agent verwendet wird. Wenn Sie mehrere Schlüssel haben, sind alle, die noch verschlüsselt wurden, sicher. Ich würde das keine Zeitverschwendung nennen.
Jon Bentley
33

Letztendlich liegt es an Ihnen. Sie müssen Ihr Bedrohungsmodell evaluieren. Wie wahrscheinlich ist es, dass einer Ihrer Schlüssel kompromittiert ist? Wenn ein Schlüssel kompromittiert ist, wie wahrscheinlich ist es, dass die anderen Schlüssel kompromittiert werden? Was sind die Folgen einer Gefährdung Ihrer Schlüssel? Was kostet (einschließlich Zeit) die Verwaltung mehrerer Schlüssel?

Wenn Sie solche Faktoren berücksichtigen, sollten Sie entscheiden, ob Sie wirklich separate Schlüssel benötigen. Auf meinen Personalcomputern in meinem lokalen Netzwerk muss ich normalerweise nicht mehr viel Zeit aufwenden, um mehrere Schlüssel zu verwalten. Außerhalb meines Netzwerks würde ich jedoch unterschiedliche Schlüssel mit jeweils einer eindeutigen Passphrase verwenden. Aber das ist nur meine persönliche Meinung.

heavyyd
quelle
6
+1 für "Bewertung des Bedrohungsmodells". Das ist nur der Punkt.
sleske
21

Nein, es ist keine Zeitverschwendung, mehr als einen Schlüssel zu verwenden.

Mehr Vielfalt == weniger Risiko.

Diese Aussage von Spiff ist falsch.

Der Punkt ist, dass der öffentliche Schlüssel dem privaten Schlüsselinhaber und sonst niemandem Zugang gewährt .

Das Risiko, sich hier Sorgen zu machen, ist die Authentifizierung. Eine betrügerische Site leitet Authentifizierungsanforderungen an Ihre Agentenaufgabe weiter. Wenn Sie nur einen Schlüssel verwenden, sind alle Sites für den Schurken geöffnet , auch wenn nur ein Schlüssel in Ihrem Agenten geladen ist .

Dies hat nichts mit den Passphrasen zu tun . Sie könnten mehrere Schlüssel mit derselben Passphrase haben, die hier keinen Unterschied machen würden. Weil es nicht die Passphrase ist, die kompromittiert wird.

Der Schurke leitet Herausforderungen an Ihren Agenten weiter und kann eine Verbindung zu allen Sites herstellen, für die Sie Schlüssel geladen haben . Mit unterschiedlichen Schlüsseln wurde ein Schlüssel geladen -> ein Standort ist gefährdet .

Ich sage gut für dich, du hast die Privatsphäre anderer Leute über deine eigene Faulheit ausgesucht.

PS Die Moral der Geschichte ist vorsichtig bei der Weiterleitung von Agenten

pbernatchez
quelle
Angenommen, ich generiere drei SSH-Schlüssel, einen für jeden der drei Server, bei denen ich mich regelmäßig anmelde. Eines Tages, nachdem ich mich bereits bei allen drei angemeldet habe (was bedeutet, dass ssh-agent die Passphrasen für alle drei Schlüssel zwischengespeichert hat), sind nach Ihrem Dafürhalten alle drei Anmeldungen kompromittiert, wenn mein ssh-agent kompromittiert wird. In einem solchen Fall hat mich das Vorhandensein mehrerer SSH-Schlüssel nicht geschützt. Habe ich dich richtig verstanden
Sampablokuper
9

Ich denke, es gibt einen guten Anwendungsfall für mehrere öffentliche Schlüssel, und das ist, wenn Sie private Schlüssel auf Computern in verschiedenen Vertrauensbereichen gespeichert haben. Daher behalte ich im Allgemeinen einen Schlüssel, der mein "Arbeits" -Schlüssel ist, und einen anderen, der mein "Haupt" -Schlüssel ist, einfach weil der private Schlüssel für mein "Haupt" -Zubehör nicht auf meinem Arbeitscomputer gespeichert ist und umgekehrt.

krosenvold
quelle
Gute Antwort, wenn Sie verschiedene Maschinen mit verschiedenen Schlüsseln haben, perfekt. Wenn eine (oder mehrere) Maschine (n) die gleichen Schlüssel haben, schützen Sie sich nicht vor zusätzlichen Dingen, anstatt nur einen einzigen Schlüssel zu haben. Wenn man kompromittiert ist, sind auch alle anderen auf dieser Maschine betroffen.
Xref
3

Ich denke, vernünftig kann aus zwei verschiedenen Blickwinkeln betrachtet werden: Sicherheit und Bequemlichkeit .

Wenn wir ein SSH-Schlüsselpaar erstellen, werden wir aufgefordert, eine Passphrase anzugeben, um eine weitere Ebene zum Schutz des privaten Schlüssels hinzuzufügen.

$ ssh-keygen -t rsa -b 4096 -C 'With_OR_Without_Passwd'
Generating public/private rsa key pair.
Enter file in which to save the key (/Your/HomeDir/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):

Es wird zwar explizit nach einer Passphrase gefragt, aber einige (oder viele) Personen konzentrieren sich immer noch mehr auf die Informationen in Klammern: (leer für keine Passphrase) und folgen diesem Vorschlag.

Wenn Sie angeben, ob Sie mehrere SSH-Schlüsselpaare verwenden oder nicht, und ob Sie zusätzliches Passwort eingeben oder nicht , haben Sie mindestens vier Möglichkeiten. Nehmen wir an, dass alle Schlüsselpaare und die configDatei in gespeichert sind ~/.ssh/.

Betrachten wir jetzt nicht zuerst die Sicherheit .

Die folgende Tabelle gibt einen einfachen Rang bezüglich der Sicherheit an (eine größere Zahl bedeutet mehr Sicherheit):

Security     Ways to go
   1         One   SSH key-pair  (NO passwd)
   1         Multi SSH key-pairs (NO passwd)
   2         One   SSH key-pair  (WITH passwd)
   2         Multi SSH key-pairs (WITH passwd) (SAME passwd)
   3         Multi SSH key-pairs (WITH passwd) (DIFF passwds)

Ohne passwd , wenn unser System von jemandem eingedrungen ist, dann kann der Unterbrecher erhalten alle unsere privaten Schlüssel und Config, auch die Authentifizierung von Remote - Servern. In dieser Situation sind also ein Schlüsselpaar und mehrere Schlüsselpaare gleich. Am sichersten ist es, verschiedene Passwörter für verschiedene SSH-Schlüsselpaare zu verwenden.

Dann lasst uns nicht über Bequemlichkeit nachdenken .

Aber mehr Schlüsselpaare und mehr Passwörter machen unser Leben auch unbequemer. Die folgende Tabelle gibt einen einfachen Überblick über die Sicherheit (größere Zahlen bedeuten mehr Sicherheit):

Convenient  Security  Ways to go
   5           1      One   SSH key-pair  (NO passwd)
   4           2      One   SSH key-pair  (WITH passwd)
   3           1      Multi SSH key-pairs (NO passwd)
   2           2      Multi SSH key-pairs (WITH passwd) (SAME passwd)
   1           3      Multi SSH key-pairs (WITH passwd) (DIFF passwds)

Wenn wir also im Allgemeinen gleichzeitig mit Sicherheit und Bequemlichkeit handeln müssen , können wir die beiden Ergebnisse multiplizieren, und vielleicht ist ein SSH-Schlüsselpaar (WITH passwd) das richtige.

YaOzI
quelle