it-swarm.com.de

Ist ein SSH-Schlüssel mit einer Passphrase ein 2FA?

Dies ist eine wirklich theoretische Frage. Wenn ich jedoch einen SSH-Schlüssel mit einer Passphrase verwende, um mich auf einem Server anzumelden, kann dies als Zwei-Faktor-Authentifizierung (2FA) betrachtet werden?

In der Tat brauche ich den (privaten) SSH-Schlüssel, der als erster Faktor angesehen werden kann, und die Passphrase, die der zweite sein könnte.

Wenn wir ein einzelnes Passwort für die Anmeldung vergleichen, sehe ich zwei 'Elemente' mit einem passphrasierten SSH-Schlüssel.

42
Antonin M.

Ein zweiter Faktor wird als unabhängig vom ersten Faktor definiert. Das bedeutet, dass Ihr System sicher bleiben sollte, auch wenn einer der Faktoren gefährdet ist (und Sie sich des Kompromisses bewusst sind).

Zum Beispiel sind ein Türausweis und ein Fingerabdruck unabhängig voneinander, und es reicht nicht aus, nur den Türausweis oder den Fingerabdruck zu haben, um Zugang zu erhalten. Dies wird häufig als "Mehrschrittauthentifizierung" anstelle der "Mehrfaktorauthentifizierung" bezeichnet.


Stellen Sie sich nun Ihr Szenario vor: Sie haben einen privaten Schlüssel, der mit einer starken Passphrase verschlüsselt ist. Sind das zwei Faktoren? Nein, da der private Schlüssel auch ohne Passphrase existieren kann. Ein Angreifer, der den privaten Schlüssel kompromittiert, kann sich somit bei Ihrem System anmelden, auch ohne diese Passphrase zu kennen. Tatsächlich weiß der Server überhaupt nicht, ob Ihr privater Schlüssel durch eine Passphrase geschützt ist oder nicht.

Wenn Sie eine echte Multi-Faktor-Authentifizierung wünschen, gibt es SSH-Module, die genau das tun. Ein mit einem sicheren Passwort verschlüsselter privater Schlüssel reicht jedoch häufig aus.


Hinweis : Die ursprüngliche Frage bezieht sich auf "einen SSH-Schlüssel mit einer Passphrase zum Anmelden auf einem Server", den ich als privaten Schlüssel interpretiert habe, der mit einer Passphrase verschlüsselt ist.

60
MechMK1

Nein . Andere Antworten sind ziemlich nah, aber verpassen wichtige Faktoren.

Ich werde nicht im Detail wiederholen, was andere sagen. Fassen Sie einfach zusammen, dass SSH-Schlüssel + Passwort in Ihrem Fall "etwas, das Sie wissen" + "etwas, das Sie besitzen" sein müssen.

Ich würde argumentieren, wenn Sie nur Wissen benötigen, um "etwas, das Sie haben" effektiv zu replizieren (damit niemand erkennen kann, welches Original und welches eine Kopie ist). dann ist es nicht "etwas, das du hast", sondern "etwas, das du weißt".

Wenn ich mich beispielsweise nicht an mein Passwort erinnern kann und es auf ein Blatt Papier geschrieben habe, hört es nicht auf, "etwas zu sein, das ich weiß" und wird zu "etwas, das ich habe". Es ist immer noch nur ein Passwort (auch wenn es schwer zu merken ist), und sobald jemand es lernt, kann er sich jederzeit als ich ausgeben, ohne dass ich es weiß. Dies gilt auch für den privaten SSH-Schlüssel. Es sind nur Daten, und Daten sind per Definition "etwas, von dem Sie wissen (und mühelos eine exakte und nicht unterscheidbare Kopie davon erstellen können)".

Das Hauptmerkmal dafür, dass etwas "etwas ist, das ich habe", ist, wie schwierig es ist, von nicht anerkannten Dritten kopiert zu werden, da das Hauptmerkmal von effektivem "etwas" ist Ich habe "ist, dass der Angreifer es nur realistisch haben kann, wenn ich es nicht mehr habe (da ich feststellen muss, dass ich es vermisse).

Natürlich gibt es viele viele Grauzonen , wie in einigen Beiträgen erwähnt. CHIP-Bankkarten wären heute "etwas, das ich habe", da es nicht möglich ist (ohne viel Aufwand, Menschen und Geld), ein authentisches Arbeitsduplikat zu erstellen. Eine Bankkarte, die nur von Magnetstreifen autorisiert wurde und von der jeder Kassierer mit 25 USD Ausrüstung und 1 USD Material eine Kopie erstellen kann, ist jedoch nicht mehr wirksam "etwas was ich habe".

Mit fortschreitender Technologie ändern sich auch die Definitionen. Es war einmal MD4 war Cryptohash. Heutzutage ist es definitiv NICHT - es ist nur ein Hash, nicht besser als ein Cryptohash als einfach Checksum .

"SSH Private Key + Passphrase" ist also keine Zwei-Faktor-Authentifizierungsmethode an zwei Fronten:

  1. Der private SSH-Schlüssel ist nur eine Information und kein physisches Objekt, also per Definition "etwas, das Sie wissen" und nicht "etwas, das Sie haben".
  2. wenn ein Authentifizierungsfaktor völlig unwirksam ist, um es dem Angreifer zu erschweren, erfolgreich zu authentifizieren, kann er dennoch als Authentifizierungsfaktor bezeichnet werden? Wenn Ihr Server eine maximale Kennwortlänge von 1 Zeichen und keine Begrenzung der Anzahl der Versuche erzwingt, ist dies immer noch ein Authentifizierungsfaktor? In der strengen Theorie mag es sein, aber in der Praxis ist es nur Sicherheitstheater .

Beachten Sie, dass dies nicht bedeutet, dass der private ssh-Schlüssel + die Passphrase schlecht sind: Es ist viel besser als ein einfaches Passwort oder ein ungeschützter privater Schlüssel. Aber es ist kein 2-Faktor.

Wenn Sie jedoch zusätzliche Sicherheit durch die Zwei-Faktor-Authentifizierung in ssh wünschen, können Sie 2-Faktor-Authentifizierung in ssh einrichten , vorzugsweise zusätzlich zum Schutz des privaten Schlüssels mit einer Passphrase.

10
Matija Nalis

Ja

2FA erfordert zwei verschiedene Faktoren oder Kategorien der Authentifizierung. (Es müssen verschiedene Kategorien sein; ein Passwort und ein PIN würden nicht als 2FA betrachtet.)

Wikipedia bietet eine große Liste von Faktoren:

  • Wissensfaktoren: Passwort, PIN, geheime Fragen
  • Besitzfaktoren:
    • Getrennte Token (lesbar): Google Authenticator
    • Verbundene Token (maschinenlesbar): YubiKey
    • Software-Token: X.509-Zertifikat, privater SSH-Schlüssel
  • Inhärente Faktoren:
    • Biometrie: Fingerabdruck, Stimme, Iris
    • Verhalten: Tastenanschläge, Signatur
  • Standort: physisch gesicherte Netzwerke

Ihr Passwort ist ein Wissensfaktor; Ihr SSH-Schlüssel ist ein Besitzfaktor.

Beachten Sie, dass die einfache Vervielfältigung nicht verhindert, dass ein SSH-Schlüssel ein Besitzfaktor ist. Physische Schlüssel können mit einer Kamera, einem Drucker und einer Getränkedose kopiert werden. Sie sind immer noch ein Besitzfaktor.


Der Zweck der Multi-Faktor-Authentifizierung besteht darin, die Vorteile mehrerer Authentifizierungstypen zu nutzen und das Risiko von Kompromissen zu verringern.

Ihr Passwort ist so kurz, dass es nie geschrieben wird und daher schwer zu bekommen ist. Ihr SSH-Schlüssel ist lang und daher schwer zu erraten.

Zusammen machen sie einen erfolgreichen Angriff weniger wahrscheinlich.


Mehrere Personen sind der Meinung, dass der Schlüssel nicht mehr 2FA ist, da er unverschlüsselt verwendet werden könnte.

Das ist einfach absurd.

Wenn Sie einen unverschlüsselten SSH-Schlüssel erstellen können und diese Informationen dann verwenden, um zu behaupten, dass dies alles ist, was benötigt wird, sparen Sie sich etwas Arbeit und werden Kopien der Serverdateien erstellt.

Sprichwort

Für den Zugriff auf die Serverdateien benötigen Sie lediglich einen unverschlüsselten SSH-Schlüssel

ist nicht anders als zu sagen

Alles, was Sie benötigen, um auf die Dateien des Servers zuzugreifen, ist eine Zip-Datei der Serverdateien.

Sicher .... aber wie hast du das bekommen?

Es ist wahr, dass es keine Server-durchsetzbare Verwendung von 2FA ist. In einer organisatorischen Umgebung ist es häufig erforderlich, dass die 2FA zentral durchsetzbar ist. Aber

  1. Das ist nicht die Frage.

  2. Die Durchsetzung von Servern ist sowieso nie das letzte Wort eines Sicherheitssystems.

    1. Wenn für eine Tür ein physischer Schlüssel und eine Tastatur-PIN erforderlich sind, "erzwingt" diese Tür 2FA so weit wie möglich. Wenn Sie jedoch die PIN auf alle Schlüssel drucken), haben Sie ein 1FA-System.

    2. Ebenso können Sie die Faktoren erhöhen. Ein passwortgeschützter Laptop hinter einer Tür mit einem physischen Schlüssel ist 2FA, obwohl es keine einzige Komponente gibt, die beide Faktoren erzwingt. Sie können den Laptop aus dem Raum entfernen und die Sicherheit auf 1FA reduzieren. Bis Sie dies tatsächlich tun, gibt es jedoch ein 2FA-System.

8
Paul Draper

Aus Sicht des Dienstes: Nein, ein passphrasengeschützter privater SSH-Schlüssel ist keine Multifaktorauthentifizierung.

Der SSH-Server kann nicht wissen, ob der private Schlüssel verschlüsselt ist oder nicht und kann auf keinen Fall wissen, wie diese aktuelle Passphrase lauten kann. Der Server kann am ehesten die Passphrase erfassen, wenn das Schlüsselpaar auf dem Server generiert wird. (Dies wäre sehr ungewöhnlich, und ich würde die Sicherheit jedes Systems in Frage stellen, das dies tut.) Sobald der private Schlüssel den Server verlassen hat, kann er jedoch nur behaupten, dass irgendwann jemand die Passphrase verwendet hat entschlüsseln Sie den Schlüssel. Der Server weiß nicht, ob er vor Sekunden im Rahmen der Authentifizierung entschlüsselt wurde oder ob sich sein privater Schlüssel derzeit vollständig unverschlüsselt auf der Festplatte des Clientcomputers befindet.

Während es eine gute Praxis ist, den privaten Schlüssel mit einer Passphrase zu verschlüsseln, verwendet der Authentifizierungs-Handshake zwischen Client und Server diese Passphrase nicht, sodass die Passphrase nicht Teil der Authentifizierung ist.

Ob der private Schlüssel etwas ist, das Sie haben oder etwas, das Sie wissen, Ich behaupte, dass es etwas ist, das Sie haben, weil Sie den privaten Schlüssel nicht direkt an den Server übergeben, sondern beweisen, dass Sie den privaten Schlüssel haben:

Der Authentifizierungs-Handshake sieht folgendermaßen aus:

  1. Der Client wählt einen zu verwendenden Schlüssel aus und sendet die Schlüssel-ID an den Server.
  2. Der Server erhält den öffentlichen Schlüssel von ~/.ssh/authorized_keys, generiert eine Nonce und verschlüsselt sie mit diesem öffentlichen Schlüssel.
  3. Der Client entschlüsselt das Nonce mit seinem privaten Schlüssel, dann hascht MD5 es mit der gemeinsam genutzten Sitzung als Salt.
  4. Wenn der Server den erwarteten Hash zurückerhält, wird der Benutzer authentifiziert.

Dies ist ein anderer Vorgang als das Übergeben eines Passworts. Sie beweisen mehr als nur Wissen, Sie beweisen, dass Sie über ein System verfügen, das eine mit einem bestimmten öffentlichen Schlüssel verschlüsselte Nachricht entschlüsseln kann.

In der physischen Sicherheit würde etwas, das Sie wissen , mit einer Herausforderungsantwort implementiert: Der Wachmann ruft ein Wort und Sie antworten. (Dies authentifiziert auch den Wachmann. Geben Sie niemandem das Passwort des Tages, nur weil er eine Uniform trägt.)

In ähnlicher Weise ist in der physischen Sicherheit etwas, das Sie haben , ein Schlüssel. Ja, der Schlüssel enthält Informationen, die leicht zu kopieren sind und sogar gespeichert werden können. Wenn diese Daten jedoch nicht in ein physisches Objekt geschnitten werden, sind die Daten nicht gut. Mit einem Schlüssel beweisen Sie mehr als nur Wissen, Sie beweisen, dass Sie ein Objekt haben, das die Stifte des Tumblers auf die richtige Höhe heben kann. Und genau wie die Passphrase eines privaten Schlüssels nicht Teil der Authentifizierung ist, ist es auch nicht Teil der Authentifizierung, ob das zum Drehen des Tumblers verwendete Werkzeug der beabsichtigte Schlüssel, eine Kopie oder ein Satz von Sperrpicks ist.

7
Ghedipunk

Nun, es gibt ein paar Antworten, die richtig sind, aber wo die nachfolgenden Argumente in den Kommentaren zeigen, dass sie nicht klar genug sind, denke ich, dass es immer noch Raum gibt, den folgenden Schlüsselpunkt hervorzuheben:

  • Die Multi-Faktor-Authentifizierung ist eine Authentifizierungsrichtlinie, bei der der Prüfer vom Antragsteller mehrere (und im Idealfall unabhängige) Authentifizierungsfaktoren verlangt.

Die Einstellung hier ist eine Art Authentifizierungsprotokoll mit zwei Parteien:

  1. A Antragsteller, der eine bestimmte Identität beansprucht und diese beweisen muss;
  2. A Verifizierer versucht, die behauptete Identität zu bestätigen und Imitatoren abzulehnen.

In SSH ist der Antragsteller der Client und der Prüfer der Server. In der gängigsten Konfiguration verlangt der Server nicht, dass der private Schlüssel des Clients mit dem Kennwort verschlüsselt wird. Dies bedeutet es ist kein MFA. Es liegt nur im Ermessen des Kunden, seinen privaten Schlüssel zu verschlüsseln.

1
Luis Casillas

In Ergänzung zu @ MechMK1s Antwort fällt der 'Faktor' in den Authentifizierungsmechanismen in drei Kategorien:

  1. Etwas, das Sie wissen - Passwörter, PIN
  2. Etwas, das Sie haben - Kreditkarten, USB-Sticks
  3. Etwas über dich - Bio-Metriken, Gesichtserkennung

Wenn Sie jetzt 2FA möchten, müssen Sie aus jeder Kategorie eine auswählen. Z.B. Fingerabdruck plus Passwort, Kreditkarte plus PIN usw. usw.) Zwei Faktoren aus derselben Kategorie sind so gut wie nur einer. ZB. Zwei Passwörter zählen nicht als 2FA.

Zurück zu Ihrer Frage: SSH-Schlüssel und Passphrase gehören ebenfalls zu "Etwas, das Sie wissen" und zählen daher nicht als 2FA.

0
Ayush Ambastha