it-swarm.com.de

Welche elliptischen Kurven werden von Browsern unterstützt?

Ich habe eine Firefox 3-Anfrage gesendet, weil ich die dokumentierten Kurvennamen nicht finden konnte:

Elliptic curve: secp256r1 (0x0017)
Elliptic curve: secp384r1 (0x0018)
Elliptic curve: secp521r1 (0x0019)

Was sind die unterstützten Kurven für andere Browser? Möchte jemand diese Liste erweitern?

Sie können Ihre unterstützten Kurven anzeigen hier (suchen nach "Elliptische Kurven" "Benannte Gruppen").

24
Smit Johnth

Wenn Software (Browser, Webserver ...) überhaupt elliptische Kurven unterstützt, können Sie mehr oder weniger Unterstützung für die beiden in NSA Suite B angegebenen Kurven erwarten, dh P-256 und P-384 Kurven, die in FIPS 186- angegeben sind. Dies sind die gleichen Kurven wie die von Ihnen aufgelisteten "secp256r1" und "secp384r1". Die 15 Standard-NIST-Kurven (von FIPS 186-3) sind tatsächlich eine Teilmenge der von Certicom in SEC 2 angegebenen Kurven.

Einige Software-Implementierungen gehen weiter und unterstützen andere Kurven. Zum Beispiel unterstützt OpenSSL alle 15 NIST-Kurven (Code wurde von Sun beigesteuert und verstößt vermutlich nicht gegen ein Patent - was erklärt, warum OpenSSL keine Beschleunigung von Koblitz-Kurven durch den Frobenius-Endomorphismus implementiert). Wenn Sie jedoch die Interoperabilität mit vorhandenen Browsern und Servern maximieren möchten, halten Sie sich an P-256 und P-384 (ich denke, dies sind die einzigen beiden, die beispielsweise mit Internet Explorer funktionieren).

14
Tom Leek

Wie es von @Tom Leek gesagt wurde secp256r1 ist P-256, secp384r1 ist P-384 und secp521r1 ist P-521. Sie sind alle Teil der NSA Suite B .

Ein Wikipedia-Artikel enthält eine Liste aller Kurvenimplementierungen. Die häufigsten Kunden sind also:

OpenSSL/LibreSSL

  • bietet Unterstützung für 28 Kurven
  • einschließlich P-256, P-384 und P-521
  • sie unterstützen nicht Curve25519 und (Ed448-) Goldlöckchen, die die neuen standardisierten von der IETF sind.

Da Chrome/Chromium BoringSSL verwendet - eine Abzweigung von OpenSSL - sollte es dasselbe unterstützen.

Firefox (NSS)

Firefox verwendet NSS (Network Security Services) für HTTPS-Verbindungen. NSS unterstützt:

  • 25 Kurven (im Vergleich zu OpenSSL 3 fehlen Brainpool-Kurven)
  • einschließlich P-256, P-384 und P-521
  • sie unterstützen auch nicht Curve25519 und (Ed448-) Goldlöckchen

Jedoch...

... dies ist nur der theoretische Teil und viele Implementierungen werden möglicherweise nur auf der Serverseite wirksam. Praktisch können Sie den Verkehr mit Wireshark analysieren - wie Sie es getan haben - und die Kurven betrachten, die es bietet.

  • Sie haben Recht: Firefox unterstützt P-256, P-384 und P-521.
  • Und ich habe es mit Chrom getestet und bekommen: P-256, P-384.

Update: 03.07.2016

Beachten Sie, dass Sie auch auf SSLLabs sehen können, welche Browser welche elliptischen Kurven unterstützen. Und dort können Sie z. siehe auch, dass Chrome 5nterstützt X25519 .

8
rugk

Firefox (und auch Palemoon und Waterfox) behaupten, secp256r1, secp384r1 und secp521r1 zu unterstützen. Wenn ich jedoch eine Verbindung zu einem Webserver mit einem secp384r1-Zertifikat herstelle, das von einer secp521r1-Zertifizierungsstelle signiert wurde, wird folgende Fehlermeldung angezeigt: (Fehlercode: sec_error_bad_signature).

IE und Chrome stellen erfolgreich eine Verbindung zu diesem Server her oder sie scheinen EC korrekt implementiert zu haben.

0
ah12