it-swarm-eu.dev

Quali curve ellittiche sono supportate dai browser?

Ho Wireshark una richiesta di Firefox 3, perché non sono riuscito a trovare i nomi delle curve documentati:

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

Quali sono le curve supportate per altri browser? Qualcuno vuole estendere questo elenco?

Puoi visualizzare le tue curve supportate qui (cerca "Curve ellittiche" "Gruppi nominati").

24
Smit Johnth

Quando il software (browser, server Web ...) supporta affatto le curve ellittiche, ci si può aspettare più o meno il supporto per le due curve fornite in NSA suite B , ovvero P-256 e P-384 curve specificate in FIPS 186- . Queste sono le stesse curve di "secp256r1" e "secp384r1" che elenchi. Le 15 curve NIST standard (da FIPS 186-3) sono in realtà un sottoinsieme delle curve specificate da Certicom in SEC 2 .

Alcune implementazioni software vanno oltre e supportano altre curve. Ad esempio, OpenSSL supporta tutte e 15 le curve NIST (il codice è stato fornito da Sun e si ritiene che non violi alcun brevetto - il che spiega perché OpenSSL non implementa l'accelerazione delle curve di Koblitz attraverso l'endomorfismo di Frobenius). Ma se si desidera massimizzare l'interoperabilità con browser e server esistenti, attenersi a P-256 e P-384 (penso che questi siano gli unici due che funzioneranno con Internet Explorer, ad esempio).

14
Tom Leek

Come è stato detto da @Tom Leek secp256r1 è P-256, secp384r1 è P-384 e secp521r1 è P-521. Fanno tutti parte del NSA suite B .

n articolo di Wikipedia ha un elenco di tutte le implementazioni delle curve. Quindi i clienti più comuni sono:

OpenSSL/LibreSSL

  • offre supporto per 28 curve
  • tra cui P-256, P-384 e P-521
  • fanno no supportano Curve25519 e (Ed448-) Goldilocks che sono i nuovi standardizzati dall'IETF.

Poiché Chrome/Chromium usa BoringSSL - un fork di OpenSSL - dovrebbe supportare lo stesso.

Firefox (NSS)

Firefox utilizza NSS (Network Security Services) per le connessioni HTTPS. NSS supporta:

  • 25 curve (rispetto alle curve brainpool OpenSSL 3 mancanti)
  • tra cui P-256, P-384 e P-521
  • fanno no supportano anche Curve25519 e (Ed448-) Goldilocks

Però...

... questa è solo la parte teorica e molte implementazioni possono avere effetto solo sul lato server. Praticamente puoi analizzare il traffico con Wireshark - come hai fatto tu - e guardare le curve che offre.

  • Hai ragione: Firefox supporta P-256, P-384 e P-521.
  • E l'ho provato con Chromium e ho ottenuto: P-256, P-384.

Aggiornamento: 03/07/2016

Nota che puoi anche vedere su SSLLabs quali browser supportano quali curve ellittiche. E lì puoi ad es. vedi anche che Chrome 5supporta X25519 .

8
rugk

Firefox (e anche palemoon e waterfox) sostengono di supportare secp256r1, secp384r1 e secp521r1, ma quando mi connetto a un server web con un certificato secp384r1 firmato da una CA secp521r1, ottengo un errore: (Codice errore: sec_error_bad_signature).

IE e Chrome si collegano correttamente a questo server o sembrano aver implementato EC correttamente.

0
ah12