Frage:
Ist PuttyGen sicher?
malan88
2019-02-20 02:02:06 UTC
view on stackexchange narkive permalink

Ich verwende PuttyGen, um SSH-Schlüssel für verschiedene Windows-Computer zu generieren. Es erfordert viele manuelle Benutzereingaben, insbesondere in Form des Herumwirbelns der Maus im Fensterbereich. Ich verstehe dies als notwendig, da Windows entweder keinen Zufallszahlengenerator wie Linux / dev / random hat oder PuttyGen keinen Zugriff darauf hat. Aber das brachte mich zum Nachdenken: Wirbelt die Maus in einem kleinen Bereich so zufällig herum, dass ein guter SSH-RSA-Schlüssel generiert wird? Sollte ich sie lieber auf einem Linux-Computer generieren und über ein Flash-Laufwerk oder etwas anderes auf die Windows-Computer portieren (Sicherheitsprobleme trotz Schlüsselbewegung)?

Windows hat ein gutes RNG, Puttygen verwendet es einfach nicht.
@Swashbuckler: Windows hat ein Closed-Source-RNG.Für einige, die es automatisch von einem guten RNG ausschließen.
@LieRyan:, obwohl das katastrophal schlechte RNG in der Debian-Schwachschlüsselversion von OpenSSL nicht nur aktiviert wurde, sondern hauptsächlich durch Open Source verursacht wurde.malan: Wenn Sie möchten, können Sie OpenSSL unter Windows (einen Port / Build von) verwenden, um OpenSSH-kompatible private Schlüssel ohne manuelle Eingabe zu generieren, die puttygen mit nur wenigen Tastenanschlägen und den Kennwörtern in PPK konvertieren kann.
@dave_thompson_085: Das Debian OpenSSL-Fiasko war, obwohl es Open Source war, und nicht deswegen.Wenn etwas Ähnliches in Propriety-Software passiert, wird es wahrscheinlich überhaupt nicht entdeckt.Open Source ist eine notwendige, aber nicht ausreichende Voraussetzung für ein wirklich sicheres System.
Ihre Entropie wird so hoch sein, wenn Sie die Anzeige der Einstellungen verwenden, tun Sie es
@user2497 Soweit ich das beurteilen kann, kann das Fenster nicht vergrößert werden.Das war das erste, was ich tun wollte.Lol.
@LieRyan: Wenn openssl geschlossen geliefert worden wäre, hätte der Debian-Packager niemals die Compiler-Diagnose gesehen, die dazu geführt hätte, den Fehler zu verursachen, und wäre auch nicht in der Lage gewesen, den Fehler zu erstellen.Ich nenne das "weil".(Natürlich hätte Debian laut Richtlinien überhaupt nichts Geschlossenes verwendet.) Es gibt viele 'Trotz', z.Heartbleed, wo das Problem im Projekt erstellt wurde, aber niemand drinnen oder draußen es erkannt hat.Viele Vulns werden in geschlossenen Quellen gefunden und behoben, einige, aber nicht alle vor der Ausbeutung, so dass "notwendig" nachweislich Unsinn ist.'hilfreich' wahrscheinlich.
... obwohl heutzutage eine Menge Vulns mit automatischen Methoden wie ASAN und Fuzzern gefunden werden, die überhaupt nicht von der Quelle abhängen.
Drei antworten:
ThoriumBR
2019-02-20 03:02:06 UTC
view on stackexchange narkive permalink

wirbelt die Maus in einem kleinen Bereich herum, der zufällig genug ist, um einen guten SSH-RSA-Schlüssel zu generieren?

Ja, das ist es. Niemand kann vorhersagen, wie Sie die Maus bewegen, und selbst wenn Sie aufgefordert werden, ein Muster zu kopieren, können Sie dies nicht.

Sie müssen den Zufallscode nicht an anderer Stelle generieren IF Sie können sicher sein, dass Ihr Windows-Computer nicht mit Malware infiziert ist, die die Schlüsselgenerierung abfangen kann. Ein neu installierter, nicht verbundener Windows-Computer ist sicher genug.

Luc
2019-02-20 14:30:17 UTC
view on stackexchange narkive permalink

Ab 2019 scheint die Antwort einfach "wir wissen es nicht" zu sein. Es ist jedoch wahrscheinlich in Ordnung.

So generiert Puttygen Schlüssel:

[Ein] kurzer Blick auf den Puttygen-Quellcode zeigt an, dass anscheinend nur private Schlüssel generiert werden basierend auf Mausbewegungen. Es füllt ein Array mit der Zeit der Mausbewegungsereignisse in den geraden Zellen und der Mausposition in den ungeraden Zellen, streut etwas magisches Mischen darüber und ruft einen RSA / DSA / EC * -Schlüsselgenerator mit dem Array als Argument auf.

Auf der Suche nach Beweisen, die die Unvorhersehbarkeit von Mausbewegungen unterstützen oder widerlegen, habe ich nichts gefunden. Niemand scheint zu diesem Thema Nachforschungen angestellt zu haben.

Im Moment würde ich empfehlen, Methoden zu verwenden, von denen wir ziemlich sicher sind, dass sie sicher sind. Moderne Betriebssysteme bieten diese an ( / dev / urandom unter Linux und CryptGenRandom unter Microsoft Windows), da die Entropie aus Systemquellen stammen muss. Ein einzelnes Programm hat viel weniger Möglichkeiten, die richtige Zufälligkeit zu erzeugen. Daher sollte die Software die Zufallsquelle des Systems verwenden. Software wie ssh-keygen macht das.

Ich habe gerade festgestellt, dass ich ssh-keygen von WSL verwenden kann.Ich muss es nicht einmal portieren.
Obwohl ich mich jetzt frage, was WSL's / dev / random wirklich ist.
@malan Wenn jemand ein virtuelles `/ dev / (u) random` in Windows verfügbar gemacht hat, ist es wahrscheinlich nur ein Front-End für` CryptGenRandom`.Aber wenn es Ihnen wichtig ist, lesen Sie unbedingt die Dokumentation!
simbo1905
2019-03-11 00:50:39 UTC
view on stackexchange narkive permalink

Dies hängt davon ab, wie viel Entropie sich in der Mausbewegung befindet und wie sie verdaut wird, um den Schlüssel zu erhalten.

Ich habe diesen Beitrag gefunden, in dem Experimente mit Mausbewegungen behandelt werden. Es wurde eine sanfte Mausbewegung verwendet, die in unregelmäßigen Abständen abgetastet wurde und natürlich auf ein ganzes Pixel gerundet ist. Es zeigte sich, dass dies zu einer Gaußschen Beschleunigungsverteilung mit einigen Entropiebits pro Ereignis führt. Es wurde geschätzt, dass einige Sekunden Bewegung 128 Bit Entropie erzeugen würden.

Was an dem Experiment in diesem Beitrag bemerkenswert ist, ist, dass es nur auf sanften Bewegungen basiert. Mit PuttyGen können Sie mit der Maus herumwackeln. Das ergibt einige unvorhersehbare Werte. Wenn Tausende von Freiwilligen mit der Maus wackeln und jede Spur beispielsweise durch SHA256 laufen lassen würden, würden Sie keine Vorhersehbarkeit erwarten.

Eine andere Antwort besagt, dass PuttyGen seine Mausverfolgung über einen Algorithmus zur Generierung kryptografischer Schlüssel ausführt. Wir können davon ausgehen, dass die Entropie in der Spur gut genutzt wird. Es scheint also ein zufriedenstellender Ansatz zu sein.

Update Mir fällt auf, dass wir an Anwendungen gewöhnt sind, die / dev / urandom verwenden. Daher scheint es verdächtig, dass PuttyGen Mausbewegungen verwendet. Nur sehr wenige Systeme verfügen über Hardware-Zufallszahlengeneratoren. Der Standardmechanismus für Pseudozufallszahlen besteht darin, Rauschen von Gerätetreibern abzutasten und diese dann zu hashen. Angesichts der Tatsache, dass das Abtasten einer reibungslosen Mausbewegung Rauschen erzeugt und ein Benutzer, der damit wackelt, Unvorhersehbarkeit verursacht, macht PuttyGen einfach etwas, das typischen sicheren Zufallszahlengeneratoren entspricht. Warum? Entweder vertrauen sie Windows nicht, um das zu tun, was Linux tut, oder sie vertrauen Windows nicht, um offizielle Zufallszahlen vor Angreifern zu verbergen, oder sie vermuten, dass Angreifer die offizielle Quelle durch eine vorhersehbare ersetzen können. Es gibt wahrscheinlich eine große Anzahl von Fällen, in denen sich ein Benutzer nicht die Mühe machen würde, nicht beobachtbare Pseudozufallszahlen zu generieren. PuttyGen ist also ein Sonderfall eines Szenarios mit hoher Paranoia, bei dem der Endbenutzer Zeit und Mühe investiert, um einen sicheren Schlüssel zu erhalten.



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