Frage:
Diffie Hellman-Parameter werden nach 24 Stunden noch berechnet
kgizdov
2015-07-28 20:39:08 UTC
view on stackexchange narkive permalink

Ich habe eine Neuinstallation von Arch Linux auf einem RaspberryPi-Modell B. Ich richte OpenVPN ein und verwende easy-rsa mit OpenSSL 1.0.2d, um erste Schlüssel und Zertifikate zu generieren. Alles ging gut, bis ich ./build-dh (Skript hier) ausführte. Es war 24 Stunden später, als ich dies schrieb.

Ich habe OpenVPN zuvor auf anderen Geräten und demselben RaspberryPi konfiguriert, jedoch unter Raspbian. Und ich erinnere mich nicht, dass dieser Befehl jemals so lange gedauert hat. Das letzte Mal habe ich einen 2048-Bit-Schlüssel verwendet und es hat ungefähr eine Stunde gedauert. Jetzt versuche ich es mit einem 4096-Bit-Schlüssel und es ist mehr als ein Tag her. Tatsächlich sind weitere 12 Stunden vergangen, seit ich alle meine Einstellungen erneut aktiviert, den Build-It-Hardware-Zufallszahlengenerator aktiviert und es erneut versucht habe. Aber es läuft noch.

cat / proc / sys / kernel / random / entropy_avail gibt Werte im Bereich von 3000 bis 3100 zurück.

Hat jemand irgendwelche früheren Erfahrungen damit? Wie überprüfe ich, ob es nicht in einer Schleife ausgeführt wird?

Einer antworten:
Tom Leek
2015-07-28 21:09:05 UTC
view on stackexchange narkive permalink

Wenn openssl viel CPU verbraucht, wird es nicht blockiert und wartet auf "Entropie". OpenSSL ist in dieser Hinsicht tatsächlich vernünftig und verwendet ein kryptografisch sicheres PRNG, um einen anfänglichen Startwert auf so viele Bits zu erweitern, wie es benötigt.

Wenn Sie dhparam verwenden Code>, OpenSSL generiert nicht nur DH-Parameter; es will auch seinen sozialen Status behaupten, indem es darauf achtet, für den Modul eine sogenannte "starke Primzahl" zu verwenden, die für die Sicherheit nutzlos ist, aber sehr viel mehr Rechenaufwand erfordert. Eine "starke Primzahl" ist eine Primzahl p , so dass ( p -1) / 2 ebenfalls eine Primzahl ist. Der Algorithmus zur Primgenerierung sieht folgendermaßen aus:

  • Generieren Sie eine zufällige ungerade Ganzzahl p. Li
  • Testen Sie, ob p ist Prime. Wenn nicht, Schleife.
  • Testen Sie, ob ( p -1) / 2 eine Primzahl ist. Wenn nicht, Schleife.

Zufällige ungerade 4096-Bit-Ganzzahlen sind mit einer Wahrscheinlichkeit von etwa 1/2000 eine Primzahl, und da sowohl p als auch ( p -1) / 2 muss eine Primzahl sein, dies erfordert im Durchschnitt das Generieren und Testen der Primalität von 4 Millionen ungeraden Primzahlen. Dies wird einige Zeit in Anspruch nehmen.

Wenn Sie von 2048 Bit auf 4096 Bit wechseln, wird die Dichte starker Primzahlen durch 4 geteilt, und die Primalitätstests sind ebenfalls etwa viermal langsamer Das Erzeugen eines 2048-Bit-DH-Moduls dauert durchschnittlich 1 Stunde. Dieselbe Maschine mit derselben Software benötigt durchschnittlich 16 Stunden für einen 4096-Bit-DH-Modul. Dies sind nur Durchschnittswerte ; Jede einzelne Generation kann je nach Glück schneller oder langsamer sein.


Die vernünftige Lösung wäre, die Option -dsaparam hinzuzufügen.

  openssl dhparam -dsaparam -out /etc/ssl/private/dhparam.pem 4096  

Diese Option weist OpenSSL an, "DSA-ähnliche" DH-Parameter zu erzeugen ( p ist so, dass p -1 ein Vielfaches von a ist kleinere Primzahl q , und der Generator hat eine multiplikative Ordnung q ). Dies ist erheblich schneller, da die Primalitätstests nicht verschachtelt werden müssen und daher nur Tausende, nicht Millionen von Kandidaten generiert und getestet werden.

Soweit Wissenschaftler wissen, DSA-ähnliche Parameter für DH sind gleichermaßen sicher; Die Verwendung von "starken Primzahlen" bietet keinen wirklichen Vorteil (die Terminologie ist traditionell und impliziert keine zusätzliche Stärke).

In ähnlicher Weise können Sie auch einen 2048-Bit-Modul verwenden, der bereits sehr weit entfernt ist in die "kann es nicht brechen Zone". Der 4096-Bit-Modul verlangsamt die DH-Berechnungen (was für ein VPN kein wirkliches Problem darstellt; diese treten nur zu Beginn der Verbindung auf), verbessert jedoch nicht die Sicherheit.

Bis zu einem gewissen Grad Ein 4096-Bit-Modul kann Auditoren umwerben, aber es ist unwahrscheinlich, dass Auditoren von einem Raspberry-Pi beeindruckt sind, der sowieso viel zu billig ist.

Du bist genau richtig. Es ist jetzt fertig.
Guter Tipp zum -dsaparam
Nett!Aus diesem Grund brennt mein frisch auf "DSM 6.0-7321" aktualisiertes Synology NAS DS213j (1,2 GHz MARVELL Armada 370 ARM Single Core) jetzt 25% CPU auf `/ usr / bin / openssl dhparam -outform pem -rand / dev / urandom-out /usr/syno/etc/ssl/dh2048.pem 2048`.Ich werde Wetten im Büro bis zum Ende der Berechnung annehmen :-)
Könnte die Generierung auf einem anderen leistungsfähigeren Computer als "scp" der Parameterdatei durchführen.
Könnten Sie zitieren, dass die DSA-ähnlichen Parameter "gleich sicher" sind?
Hinweis für diejenigen, die nicht an der tatsächlichen Sicherheit interessiert sind: Durch Hinzufügen von -dsaparam wurde es viele, viele, viele Male schneller.
"Beachten Sie, dass mit solchen DH-Parametern im DSA-Stil für jede Verwendung ein neuer DH-Schlüssel erstellt werden sollte, um Angriffe kleiner Untergruppen zu vermeiden, die andernfalls möglich wären."- eine Idee, wie Sie sicher sein können, dass Ihre TLS-Implementierung dies tut?
Es gibt eine OpenSSL-Sicherheitshinweise zu Dhparams im "-dsaparam" -Stil: https://www.openssl.org/news/secadv/20160128.txt (CVE-2016-0701).Nach meinem Verständnis müssen Sie also bei der Verwendung dieser dhparams (EC) DHE (PFS) -Verschlüsselungen verwenden.Die Verwendung von Standard-DH-Chiffren ist nicht sicher.


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 3.0-Lizenz, unter der er vertrieben wird.
Loading...