Frage:
Ist ein SSH-Schlüssel mit einer Passphrase ein 2FA?
Antonin M.
2019-10-29 19:16:50 UTC
view on stackexchange narkive permalink

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

In der Tat, ich Ich benötige den (privaten) SSH-Schlüssel, der als erster Faktor betrachtet werden kann, und die Passphrase, die der zweite sein kann.

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

Ist es der Schlüssel, der mit einer Passphrase verschlüsselt ist, oder ist es der Remote-Server, der sowohl einen Schlüssel als auch eine Passphrase benötigt?
Wenn Sie eine Haftnotiz mit Ihrem Passwort in einem kombinierten Safe aufbewahren, ist das 2FA?
Gute Frage, um einen aufschlussreichen Kommentar auszulösen.Ich habe wirklich erwartet, dass die Antwort "Ja, es ist 2FA" lautet, aber ich glaube, ich bin davon überzeugt.
"Verwenden Sie einen SSH-Schlüssel mit einer Passphrase" ist unklar, und als solche sind die Antworten überall.Ein Kommentar von @ig-dev's muss angesprochen werden, da er buchstäblich den Unterschied zwischen Ja und Nein ausmacht
@RichieFrame, Ja Entschuldigung, ich bestätige, dass sich die Frage auf einen verschlüsselten SSH-Schlüssel mit einer Passphrase konzentriert
Sieben antworten:
MechMK1
2019-10-29 19:23:25 UTC
view on stackexchange narkive permalink

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).

Beispielsweise sind ein Türausweis und ein Fingerabdruck unabhängig voneinander und gerecht Es reicht nicht aus, den Türausweis oder den Fingerabdruck zu haben, um Zugang zu erhalten. Dies wird häufig als "Mehrschrittauthentifizierung" anstelle von "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 Das. Ein mit einem sicheren Kennwort verschlüsselter privater Schlüssel reicht jedoch häufig aus.


Hinweis: In der ursprünglichen Frage geht es um "einen SSH-Schlüssel mit einer Passphrase" auf einem Server anmelden ", den ich als privaten Schlüssel interpretiert habe, verschlüsselt mit einer Passphrase.

Kommentare sind nicht für eine ausführliche Diskussion gedacht.Diese Konversation wurde [in den Chat verschoben] (https://chat.stackexchange.com/rooms/100586/discussion-on-answer-by-mechmk1-is-an-ssh-key-with-a-passphrase-a-2fa).
"Das bedeutet, dass Ihr System sicher bleiben sollte, auch wenn einer der Faktoren gefährdet ist." Nach dieser Definition handelt es sich um 2FA.Passwort kompromittiert, aber kein Schlüssel?System sicher.Schlüssel kompromittiert, aber kein Passwort?System sicher.(Wenn Sie einen unverschlüsselten Schlüssel haben, ist das System zwar kompromittiert, aber der einzige Weg, dies zu erreichen, besteht darin, beide Faktoren zu haben.)
@PaulDraper Nein, Sie verbinden "den privaten Schlüssel" mit "einer Datei, die den privaten Schlüssel enthält".Wenn ich den privaten Schlüssel erhalte, kann ich mich anmelden, unabhängig davon, wie der private Schlüssel sonst gesichert ist.
@MechMK1 "Wenn ich den privaten Schlüssel bekomme."Um den privaten Schlüssel zu erhalten, müssen beide Faktoren kompromittiert werden.Ohne in den Kommentaren zu weit zu gehen, würde ich empfehlen, sich andere Systeme anzusehen, wie [einen kennwortverschlüsselten Festplattenverschlüsselungsschlüssel] (https://security.stackexchange.com/a/231547/44419).
@PaulDraper Nein, das tut es nicht, und der obige Chat-Link erklärt in grausigen Details genau, warum dies nicht der Fall ist.
Paul Draper
2019-10-30 04:40:05 UTC
view on stackexchange narkive permalink

Ja

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

Wikipedia bietet eine große Liste von Faktoren:

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

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

Beachten Sie, dass die einfache Vervielfältigung nicht ausschließt, 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 Kennwort ist kurz genug, 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.


BEARBEITEN: 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, ohne zwei Faktoren zu gefährden, und diese Informationen dann verwenden, um zu behaupten, dass dies alles ist, was erforderlich ist, warum sparen Sie sich nicht etwas Arbeit und bringen Kopien der Serverdateien ins Leben?

Die Angabe

Für den Zugriff auf die Serverdateien ist lediglich ein unverschlüsselter SSH-Schlüssel erforderlich.

unterscheidet sich nicht von der Angabe

Für den Zugriff auf die Serverdateien benötigen Sie lediglich eine ZIP-Datei der Serverdateien.

Aber wie haben Sie diesen Schlüssel / diese Postleitzahl erhalten? Sie mussten mehrere Faktoren kompromittieren. (Oder Sie fügen eine Hintertür hinzu, z. B. den Zugriff auf den Serverraum.)

Es stimmt, dass es sich nicht um eine serverdurchsetzbare Verwendung von 2FA handelt. In einer organisatorischen Umgebung ist es häufig erforderlich, dass die 2FA zentral durchsetzbar ist. Aber

  1. Das ist nicht die Frage.

  2. Server-Durchsetzung ist sowieso nie das letzte Wort eines Sicherheitssystems.

      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.

  3. 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 dahin gibt es jedoch ein 2FA-System.

  4. ol> ol>

    EDIT2: Diese Antwort erklärt auch, warum die übliche Praxis eines separaten passwortgeschützten Verschlüsselungsschlüssels - was ein SSH-Schlüssel ist - zwei Faktoren sind: der Schlüssel (etwas, das Sie haben) und das Passwort (etwas, das Sie wissen). Jemand muss beides erhalten, um einen bloßen Verschlüsselungsschlüssel zu erstellen, der für den Datenzugriff benötigt wird.

Wenn Ihre Passphrase kurz ist, kann sie wahrscheinlich von jedem brutal erzwungen werden, der Ihre verschlüsselte `.ssh / id_rsa`-Datei erhält, und Brute-Forcing ist in diesem Zusammenhang eine ** Offline-Operation **.
@R .. yes Das Knacken der Passwortverschlüsselung ist eine Offline-Operation.Aber ich würde LUKS Full-Disk-Verschlüsselung auch nicht als nutzlos bezeichnen.(Ihr Verschlüsselungskennwort sollte komplex und geheim sein, aber es muss auch einprägsam sein. Falls Sie einen Fehler gemacht haben, ist der Besitz eines SSH-Schlüssels / einer SSH-Festplatte eine zusätzliche Schutzschicht.)
"Wenn Sie können, wird ein unverschlüsselter SSH-Schlüssel existieren" - Niemand sagt, dass wir auf magische Weise einen gültigen Schlüssel erstellen können, indem wir ihn nur wünschen.SSH-Schlüsselpaare können ohne Passphrasenverschlüsselung erstellt oder nach der Generierung entschlüsselt und in diesem unverschlüsselten Zustand gespeichert werden.
Vielleicht können Sie hinzufügen, dass diese Antwort wahr ist, wenn der Server sowohl einen Schlüssel als auch ein Kennwort benötigt, während der Schlüssel selbst mit einem Kennwort verschlüsselt wird.Das scheint der Grund für die große Verwirrung zu sein
@Ghedipunk kann also ZIP-Archive Ihrer Serverdateien.ZIP-Archive werden regelmäßig gespeichert und übertragen.Die Frage ist: Speichern / übertragen Sie ZIP-Dateien mit weniger Schutz?Speichern / übertragen Sie SSH-Schlüssel mit weniger Schutz?Wenn die Antwort auf beide Nein lautet, sind sie für die Berücksichtigung von Sicherheitsfaktoren irrelevant.
@PaulDraper Ihre Hinzufügung einer "Verteidigung" ist völlig unnötig.Ein unverschlüsselter Schlüssel hat kein Passwort und liegt dann außerhalb des Geltungsbereichs der Frage.
@schroeder IDK was "Verteidigung".Aber ja, ein unverschlüsselter Schlüssel liegt außerhalb des Rahmens der Frage.Es gibt keinen unverschlüsselten Schlüssel.
@PaulDraper Grundsätzlich alles unter der Leitung ...
Als Beispiel dagegen habe ich Google Authenticator auf meinem Telefon und eine PIN-Bildschirmsperre auf meinem Telefon.Zählt jetzt nur ein OTP als zwei Faktoren, da ich eine PIN eingeben muss, um zum OTP zu gelangen?
@Michelle Q: "Zählt nur ein OTP?".Nein, nur ein OTP zählt nicht.** Aber so wie ich Ihre Frage verstehe, haben Sie nicht "nur ein OTP". ** Zusätzlich zu dem Gerät mit dem OTP (etwas, das Sie haben) benötigen Sie auch eine PIN (etwas, das Sie wissen).Weder die Beeinträchtigung des Besitzes Ihres Besitzfaktors noch die Beeinträchtigung Ihrer PIN beeinträchtigen die Sicherheit des Systems.(Wenn dies im Zusammenhang mit $ CORP steht, bezweifle ich, dass dieser 2FA den administrativen Anforderungen entspricht, wenn nicht zentral überprüft werden kann, ob Ihr OTP-Gerät eine PIN hat. Trotzdem haben Sie TFA.)
@PaulDraper, aber wenn ein Angreifer den QR-Code scannt, um den OTP-Startwert zu lesen, ist mein OTP und mein Konto gefährdet, da meine Telefon-PIN nichts mit meinem Konto zu tun hat.Die PIN beschränkt lediglich die Möglichkeiten, meinen einen Faktor zu gefährden. Das ist großartig, aber kein unabhängiger zweiter Faktor.
Wenn @PaulDraper meinen Passwort-Manager ebenfalls mit einer Fingerabdrucksperre belegt, werden nicht plötzlich alle meine Nur-Passwort-Konten zu 2FA.Passwörter können immer noch kompromittiert werden, solange sie außerhalb des Passwort-Managers vorhanden sind.
@Michelle um ehrlich zu sein Ich weiß nicht, wie Ihr OTP-Setup abläuft.Ich ging davon aus, dass es nur von Ihrem Telefon gelesen / empfangen werden kann.
@PaulDraper TOTP-Codes von Google Authenticator (eines Ihrer Beispiele) werden durch Scannen eines QR-Codes mit Ihrer Telefonkamera eingerichtet.Der QR-Code enthält einen Startwert, mit dem die OTPs generiert werden.Jeder, der eine Sichtlinie zum Bildschirm hat, kann auch ein Bild des QR-Codes aufnehmen und es dekodieren, um den Samen zu erhalten.
@Michelle es hängt davon ab, ob Sie dies für einen plausiblen Angriffsvektor halten.Wie ich bereits erwähnt habe, kann eine Tür eine biometrische Sprachauthentifizierung und eine gespeicherte Tastatureingabe erfordern, aber jeder in Sichtweite kann ein Video aufnehmen und es replizieren.Ist das 2FA?Es hängt von der Plausibilität dieses Angriffs ab.
Matija Nalis
2019-10-30 16:14:03 UTC
view on stackexchange narkive permalink

Nein . Andere Antworten sind ziemlich nah beieinander, aber es fehlt ein wichtiger Faktor.

Ich werde nicht im Detail wiederholen, was andere sagen. Fassen Sie einfach zusammen, dass SSH-Schlüssel + Passwort in Ihrem Fall ein Multi-Faktor sein müssen Sei "etwas, das du weißt" + "etwas, das du besitzt".

Ich würde argumentieren, wenn du nur Wissen brauchst, um "etwas, das du hast" effektiv zu replizieren (damit niemand etwas sagen kann Das ist das Original und das ist die Kopie. Dann ist es nicht "etwas, das Sie haben", sondern "etwas, das Sie wissen".

Wenn ich mich beispielsweise nicht an mein Passwort erinnern kann und es auf ein geschrieben habe Stück Papier, es hört nicht auf, "etwas zu sein, das ich weiß" und wird "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 schwer es ist, von nicht anerkannten Dritten zu kopieren, da das Hauptmerkmal von effektivem "etwas, das ich habe" ist, dass der Angreifer es nur realistisch haben kann, wenn ich es nicht mehr habe ( Ich muss feststellen, 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 magstripe autorisiert wurde und von der jeder Kassierer mit 25 USD Ausrüstung und 1 USD Material eine Kopie erstellen kann, ist jedoch nicht mehr effektiv "etwas, das ich habe". P. >

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 eine einfache Prüfsumme.

"Privater SSH-Schlüssel + Passphrase" ist also an zwei Fronten keine Zwei-Faktor-Authentifizierungsmethode:

  1. Der private SSH-Schlüssel ist nur eine Information und kein physisches Objekt Definition "etwas, das Sie wissen" und nicht "etwas, das Sie haben".
  2. Kann ein Authentifizierungsfaktor, der einen Angreifer nicht erfolgreich authentifizieren kann, 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.
  3. ol>

    Beachten Sie, dass dies nicht bedeutet, dass ssh privater Schlüssel + Passphrase schlecht ist: 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 Zwei-Faktor-Authentifizierung in ssh wünschen, können Sie die 2-Faktor-Authentifizierung in ssh einrichten, vorzugsweise Zusätzlich zum Schutz des privaten Schlüssels mit einer Passphrase.

Ein Yubikey ist ein physisches Objekt, das "nur" Informationen enthält. Warum zählt es also als 2FA und ein privater Schlüssel nicht?
@ConorMancone Ich möchte keine Wörter in OPs Mund stecken, aber die im Yubikey enthaltenen Informationen können nicht extrahiert werden.Ich denke, OP schlägt vor, dass Informationen, die dupliziert werden können, immer "etwas sind, das Sie wissen", genauso wie ein physischer Türschlüssel (für Sie) eine Sache ist, die Sie haben, aber praktisch Informationen sind, die in Graten und Tälern für codiert sindjeder Schlosser.
@ConorMancone, wie Michael sagt, dreht sich alles um die Verfügbarkeit dieser Informationen für Angreifer.Sie (noch ich oder Joe Random Hacker) ** können ** nicht auf die in yubikey gespeicherten privaten Schlüsselinformationen zugreifen, um sie zu duplizieren.Auf der anderen Seite ist der auf der USB-Speicherkarte gespeicherte private SSH-Schlüssel für jedermann ** trivial ** zum Lesen und Vervielfältigen (einfach kopieren und einfügen!)auf einem Stück Papier) - also nicht wirklich "etwas, das du hast".Aber wenn / wenn jemand einen ausnutzbaren Fehler in yubikey findet, wird es auch aufhören, ein nützlicher zweiter Faktor zu sein.
Ich stimme den Vorteilen von "etwas, das Sie haben" als etwas zu, das nicht kopiert werden kann, aber ist das eine grundlegende Definition für den Faktor?Ist es das, was es zu einem diskreten Faktor macht?
@schroeder Ja.Das Gleiche wie Biometrie kann nur dann ein separater Faktor sein, wenn Sie nur durch physisches Scannen authentifiziert werden können.Wenn Sie den biometrischen Retina-Scanner leicht täuschen können, indem Sie gefälschte Kontaktlinsen tragen, die für 1 US-Dollar auf Ihrem 3D-Drucker gedruckt sind, ist er nicht mehr "etwas, was Sie sind".Definitionen ändern sich im Laufe der Zeit.
Diese Antwort macht einen guten Job, um herauszufinden, warum SSH-Schlüssel + Passwort kein 2-Faktor ist.Eine unachtsame Lektüre könnte jedoch dazu führen, dass jemand denkt, es sei sinnlos, Ihren SSH-Schlüssel zu verschlüsseln.Die Verwendung der Multi-Faktor-Authentifizierung und die Verschlüsselung Ihres SSH-Schlüssels adressieren verschiedene Arten von Angriffen, und daher sind beide wertvoll.
@kbolino guter Punkt;Ich habe die Antwort aktualisiert, um diesen Punkt zu erwähnen (und einen Link zu einer Möglichkeit, 2-Faktor-Authentifizierung in ssh zu implementieren).
@MatijaNalis, Die Leichtigkeit des Duplizierens ist relevant für seine Stärke als Faktor, nicht für seine Existenz als Faktor.Z.B.Kaugummi oder ein Kamerahandy können die Informationen eines mechanischen Schlüssels in Sekunden kopieren.Das schwächt die Sicherheit mechanischer Schlüssel als Faktoren, macht sie aber nicht zu "keinem Faktor".
@PaulDraper Ich bin höflich anderer Meinung.Der angreifende Computer ** kann ** nicht automatisch ein Bild Ihres physischen Schlüssels aufnehmen, eine weitere physische Kopie des Schlüssels erstellen, ihn in sein Schlüsselloch teleportieren und ihn drehen.Aber ein angreifender Computer ** kann Ihr `~ / .ssh / id_rsa` so einfach kopieren und später verwenden, wie es Ihr Passwort kopieren und später verwenden kann.Sie sind beide dasselbe - nur ein Strom von Bits.Daher sind sie "etwas, das Sie wissen".Ob ein solcher Bitstrom in eine Datenträgerdatei (oder auf ein Blatt Papier) geschrieben wird, spielt keine Rolle - er wird aufgrund der Tatsache nicht zu "etwas, das Sie haben".
@MatijaNalis alles ist Information ("Bits", wenn Sie es in Base-2 setzen).Ein physischer Schlüssel ist Information.Es kommt nur darauf an, ob diese Informationen geistig oder körperlich besessen sind.Aus diesem Grund listet [Wikipedia] (https://en.wikipedia.org/wiki/Multi-factor_authentication#Software_tokens) Software-Token - x509-Zertifikat, SSH-Schlüssel - als "etwas, das Sie haben" auf.(Theoretisch wäre es für eine Person möglich, einen physischen Schlüssel oder einen SSH-Schlüssel oder ein x509-Zertifikat zu kennen und diesen dann zu transkribieren, aber das erweitert die Definition.)
@PaulDraper Alle in der Computersicherheit verwendeten Informationen können in Bits codiert werden.Tatsächlich muss es ** sein **, bevor es zur Verarbeitung gesendet wird.Sei es Passwort, Hardware-Token oder Ihr Retina-Scan.Dies bedeutet nicht, dass höchstens 1FA sein kann.Der Unterschied besteht darin, dass Passwort und SSH-Schlüssel ** nur ** genauso verwendet (und missbraucht) werden - direkt als reine Information.Wie Sie bemerken, kann man sich einen 64-Byte-ECDSA-Schlüssel ** merken **, und man kann ein kompliziertes 100-Byte-Passwort erstellen und es in einer Textdatei speichern.Der angreifende Compter wird ** genau ** dieselbe Technik anwenden, um sie zu missbrauchen - also sind sie meiner Meinung nach nur 1FA.
@PaulDraper in Wirklichkeit ist die Terminologie umstritten (und Wikipedia ist oft nicht die beste Quelle für Probleme mit der Computersicherheit).Ich würde argumentieren, dass die Leute sich auf das Maß an Sicherheit konzentrieren sollten, das ihnen eine Maßnahme bietet, und nicht auf die Namen (oft aus Profitgründen missbraucht).Wenn Sie beispielsweise ein Smartphone mit veralteter Software (und damit wahrscheinlich einem Trojaner) und 3FA (Passwort, PIN-geschütztes Software-Token und Fingerabdruck-Scan) verwenden, bleibt das Smartphone auf demselben Telefon, das der Angreifer steuertSie sind sehr wahrscheinlich * viel weniger * geschützt als nur mit 1FA HW OTP und einem aktuellen GNU / Linux-Laptop.
@MatijaNalis Ich stimme der Tatsache sehr zu, dass "2FA" = / = "große Sicherheit"
Ghedipunk
2019-10-30 21:37:46 UTC
view on stackexchange narkive permalink

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

Der SSH-Server kann nicht feststellen, ob der private Schlüssel verschlüsselt ist oder nicht nicht, und kann auf keinen Fall wissen, wie diese aktuelle Passphrase aussehen könnte. 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.

Es empfiehlt sich also, den privaten Schlüssel zu verschlüsseln Schlüssel mit einer Passphrase, der Authentifizierungs-Handshake zwischen Client und Server verwendet diese Passphrase nicht, daher ist die Passphrase nicht Teil der Authentifizierung.

Ob der private Schlüssel ist oder nicht oder etwas, das Sie wissen, Ich behaupte, es ist etwas, 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 die Öffentlichkeit Der Schlüssel aus ~ / .ssh / authorized_keys generiert eine Nonce und verschlüsselt sie mit diesem öffentlichen Schlüssel.
  3. Der Client entschlüsselt die Nonce mit seinem privaten Schlüssel und dann mit MD5 hascht es mit der gemeinsam genutzten Sitzung als Salt.
  4. Wenn der Server den erwarteten Hash zurückerhält, wird der Benutzer authentifiziert.
  5. Dies ist ein anderer Vorgang als das Übergeben eines Kennworts. 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 Bezug auf physische Sicherheit etwas, das Sie kennen würde mit einer Challenge-Response implementiert: Der Wächter 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.)

    Ähnlich wie bei der physischen Sicherheit etwas, das Sie haben ist 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.

Ich glaube nicht, dass die Tatsache, dass ssh in der Challenge-Response beweist, dass es einen privaten Schlüssel hat, anstatt ihn direkt zu übergeben, ihn als zweiten Faktor klassifiziert.Sie können es auch so verwenden (wie zum Beispiel [APOP] (http://www.rfc-editor.org/rfc/rfc1939.html#page-15) oder [CHAP] (http: // www.rfc-editor.org/rfc/rfc1994.html#section-2)) - es ist nur ein Implementierungsdetail.Andernfalls könnte man * behaupten, 2FA nur mit einem Passwort zu haben *: indem man ein halbes Passwort direkt und die Hälfte über ein APOP / CHAP-ähnliches Protokoll sendet (zum Beispiel in Javascript implementiert).
Luis Casillas
2019-11-01 03:28:29 UTC
view on stackexchange narkive permalink

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 wichtigen Punkt hervorzuheben:

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

Hier sind einige Einstellungen festgelegt Art von Authentifizierungsprotokoll mit zwei Parteien:

  1. Ein Antragsteller , der eine bestimmte Identität beansprucht und diese nachweisen muss;
  2. Ein Prüfer , der versucht, die beanspruchte Identität zu bestätigen und Imitatoren abzulehnen.
  3. ol>

    In SSH ist der Antragsteller der Kunde 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, dass kein MFA ist. Es liegt nur im Ermessen des Kunden, seinen privaten Schlüssel zu verschlüsseln.

Ayush Ambastha
2019-10-30 00:46:07 UTC
view on stackexchange narkive permalink

Zusätzlich zur Antwort von @ MechMK1 fällt der 'Faktor' in den Authentifizierungsmechanismen in drei Kategorien:

  1. Etwas, das Sie wissen - Passwörter, PIN
  2. Etwas, das Sie wissen have - Kreditkarten, USB-Laufwerke
  3. Etwas über Sie - Bio-Metriken, Gesichtserkennung
  4. ol>

    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 zu haben, ist so gut wie nur einen. Z.B. Zwei Passwörter zählen nicht als 2FA.

    Um auf Ihre Frage zurückzukommen: SSH-Schlüssel und Passphrase gehören ebenfalls zu "Etwas, das Sie wissen" und zählen daher nicht als 2FA.

Wenn Sie Ihren SSH-Schlüssel nicht auswendig gelernt haben (was sehr unwahrscheinlich erscheint), könnten Sie argumentieren, dass der Schlüssel "etwas ist, das Sie haben" und das Passwort "etwas, das Sie wissen".Warum zählt es in Anbetracht Ihrer Gliederung nicht als 2FA?
Ich stimme Conor zu: Den SSH-Schlüssel haben Sie.Nur weil die Passphrase direkt mit diesem SSH-Schlüssel verknüpft ist, würde ich argumentieren, dass es sich nicht um separate Faktoren handelt.Wenn die Passphrase und der Schlüssel nicht miteinander zusammenhängen, sind sie separate Faktoren.
Das heißt, die Passphrase schützt den privaten Schlüssel, nicht die Authentifizierung.Ich kann den privaten Schlüssel jederzeit entschlüsseln, und der Dienst, bei dem ich mich authentifiziere, ist nicht klüger.
@Ghedipunk: Kannst du das als Antwort posten?Das ist die wichtigste Argumentation, die mein intuitives Gefühl rechtfertigt, dass es nicht 2FA ist.Es fiel mir schwer, es zu formulieren (der Server überprüft nicht * unabhängig * beide Dinge), bis ich Ihren Kommentar gelesen habe.
@PeterCordes Das ist eigentlich genau der Inhalt meiner Antwort.
@MechMK1: Ihre Formulierung hat es leider nicht so prägnant oder sogar so klar ausgedrückt (zumindest für mich).Das ist wahrscheinlich der Grund, warum Kommentatoren Ihrer Antwort (insbesondere @R.) Das Bedürfnis verspürten, wichtige Punkte mit anderen Worten neu zu formulieren und hervorzuheben.
@PeterCordes Ich habe die Antwort bearbeitet, um sie genauer zu erläutern.Es war jedoch ein guter Punkt, um zu sprechen
@ConorMancone im Anschluss daran könnte man auch argumentieren, dass nur bei der klassischen Authentifizierung von Benutzernamen / Passwörtern (normalerweise als Einzelfaktorauthentifizierung bekannt) Ihr Benutzername "etwas ist, das Sie kennen" und das Passwort, das Sie auf Papier geschrieben haben (da es zu lästig ist)Denken Sie daran) ist "etwas, das Sie haben", es ist also eigentlich eine Zwei-Faktor-Authentifizierung.Ich würde stattdessen argumentieren, dass wenn Sie einfaches "cp (1)" verwenden können, um einen Authentifizierungsfaktor exakt zu duplizieren, es "etwas ist, das Sie wissen", nicht "etwas, das Sie haben".
@ConorMancone Ich denke du hast recht.Das habe ich verpasst.Vielen Dank für den Hinweis!
@MatijaNalis Nein, da Benutzernamen oder E-Mail-Adressen keine vertraulichen Informationen sind.Daher sind sie keine Faktoren, die bei der Authentifizierung berücksichtigt werden müssen.
@MechMK1 kann dieses durch ein halbes Passwort (oder ein paar Buchstaben) ersetzen, das gespeichert wird, und den Rest des Passworts auf Papier schreiben.Ist das dann eine 2-Faktor-Authentifizierung?
@MatijaNalis Nein, da es dem Server egal ist, wie Sie Ihr Passwort speichern.Der Server sieht einen Faktor: das Passwort.
@MechMK1 Und wenn der Server nach zwei Passwörtern fragt (wie den heute gebräuchlichen Mechanismen "Passwort" und "Sicherheitsfrage") und Sie das Passwort auf Papier halten und sich an Ihre Sicherheitsfrage erinnern, ist das dann eine 2-Faktor-Authentifizierung?Der Server fragt nach und erhält zwei separate Eingaben.Zwei separate Eingänge bedeuten jedoch keine Zwei-Faktor-IMO.Unterschiedliche Kanäle bedeuten auch keinen unterschiedlichen Faktor. Wenn der Server beispielsweise verlangt, dass Sie ein Kennwort per Webformular und ein anderes per E-Mail senden, wird dies nicht als Zweifaktor gewertet (selbst wenn dies die Sicherheit etwas verbessern könnte).
@MatijaNalis Zwei Passwörter wären theoretisch 2FA, aber da sie wahrscheinlich auf dieselbe Weise gespeichert werden (z. B. dieselbe Keepass-Datenbank), ist es auch sehr wahrscheinlich, dass sie gleichzeitig kompromittiert werden (was den Vorteil von 2FA darstellt)streitig).Zum Beispiel wäre ein Passwort und ein einmaliger Schlüssel, die per E-Mail gesendet werden, ein praktikabler Ansatz.
Ángel
2019-10-30 04:23:31 UTC
view on stackexchange narkive permalink

Nein. Sie sind keine unterschiedlichen Faktoren. Ein verschlüsselter SSH-Schlüssel ist nicht "etwas, das Sie haben", da es sich nicht um ein Objekt handelt, das Sie physisch steuern müssen (es ist jedoch immer noch viel besser als ein einfaches Kennwort).

Andererseits a Der SSH-Schlüssel, der auf einem USB-Authentifizierungsgerät (einem Yubikey, U2F ...) gespeichert wurde, würde als zweiter Faktor gelten.

Ein privater Schlüssel ist jedoch nichts, was Sie wissen oder was Sie sind.(Von der Weltbevölkerung können vielleicht tausend mehr als 30 Stellen pi aus dem Speicher rezitieren.) Für mich ist jeder private Schlüssel, den ich habe, physisch irgendwo gespeichert (Elektronen / Magnetfelder, die in einem digitalen Speicher angeordnet sind ... Graphit / Tinteauf Papier usw.) weiß ich das nicht.
Es muss nicht etwas sein, das du auswendig weißt, Ghedipunk.Es wird manchmal als "ein Wissen, das Sie haben" ausgedrückt.Es spielt keine Rolle, ob Sie es gespeichert haben oder es auf einer Festplatte oder einem Notebook gespeichert ist.Sehen Sie zum Beispiel, dass ein Passwort ein "Wissen, das Sie haben" ist, auch wenn es ein extrem langes Passwort für eine TXT-Datei ist, es ist kein "etwas, das Sie haben".Beachten Sie, dass der Schlüssel darin besteht, dass Sie über das Objekt verfügen müssen, um es verwenden zu können.Sie benötigen kein Notebook oder USB-Laufwerk, um deren Inhalt verwenden zu können.
@ Ángel JEDER Authentifizierungsfaktor kann bei der Authentifizierung mit einem Remote-Dienst als "etwas, das Sie wissen" ausgedrückt werden.Es wird alles für den Transit in Daten konvertiert.(Daher denke ich nicht, dass Ihr Argument sehr gut ist, da es dieses entartete Ergebnis "2FA kann online nicht existieren" erzeugt.)
@ Ángel Wenn Sie Daten über einen physischen Schlüssel (ein Foto) haben, haben Sie effektiv den Schlüssel.Aber ein Schlüssel ist "etwas, das Sie haben", nicht "etwas, das Sie wissen".
@Brilliand, Ihr Unternehmen / Ihre Bank stellt Ihnen eine [SecurID] zur Verfügung (https://en.wikipedia.org/wiki/RSA_SecurID).Die übertragenen Daten können nicht für weitere Authentifizierungen verwendet werden.Indem ich etwas zeige, das nur ein "etwas sein kann, das du hast", prüfe ich, ob das 2FA existiert.QED.
@ Ángel Der beim Generieren des Codes verwendete geheime Schlüssel und der generierte Code selbst sind beide Daten, die die Sicherheit beeinträchtigen würden, wenn sie einem Angreifer bekannt wären.Der geheime Schlüssel wird in einer schwer zu knackenden physischen Box aufbewahrt, aber es handelt sich immer noch um Informationen - und der generierte Schlüssel ist ein reines Passwort, wenn ein Angreifer schnell genug reagieren kann.
Das OTP ist nicht der zweite Faktor, sondern nur eine Möglichkeit zu prüfen, ob Sie das Gerät physisch haben.Das Kopieren Ihres Codes macht das nicht kaputt.Ein besserer Fall für ein "etwas, das Sie haben", das kurz als "etwas, das Sie wissen" gelebt hat, wäre die Einrichtung eines neuen Codes in einer TOTP-App, die in einem Smartphone lebt.Es wird normalerweise als "etwas, das Sie haben" akzeptiert, aber es wäre nicht ganz rein wie ein SecurID oder, noch besser, ein Yubikey.


Diese Fragen und Antworten wurden automatisch aus der englischen Sprache übersetzt.Der ursprüngliche Inhalt ist auf stackexchange verfügbar. Wir danken ihm für die cc by-sa 4.0-Lizenz, unter der er vertrieben wird.
Loading...