J'ai Wireshark'ed une demande Firefox 3, car je n'ai pas pu trouver les noms de courbe documentés:
Elliptic curve: secp256r1 (0x0017)
Elliptic curve: secp384r1 (0x0018)
Elliptic curve: secp521r1 (0x0019)
Quelles sont les courbes prises en charge pour les autres navigateurs? Quelqu'un veut-il étendre cette liste?
Vous pouvez afficher vos courbes prises en charge ici (rechercher "Courbes elliptiques" "Groupes nommés").
Lorsque les logiciels (navigateurs, serveurs Web ...) prennent en charge les courbes elliptiques, vous pouvez vous attendre plus ou moins à la prise en charge des deux courbes données dans NSA suite B , c'est-à-dire les P-256 et P-384 courbes spécifiées dans FIPS 186- . Ce sont les mêmes courbes que les "secp256r1" et "secp384r1" que vous listez. Les 15 courbes NIST standard (de FIPS 186-3) sont en fait un sous-ensemble des courbes spécifiées par Certicom dans SEC 2 .
Certaines implémentations logicielles vont plus loin et prennent en charge d'autres courbes. Par exemple, OpenSSL prend en charge les 15 courbes NIST (le code a été fourni par Sun et ne porte atteinte à aucun brevet - ce qui explique pourquoi OpenSSL n'implémente pas l'accélération des courbes de Koblitz via l'endomorphisme Frobenius). Mais si vous souhaitez maximiser l'interopérabilité avec les navigateurs et serveurs existants, respectez les P-256 et P-384 (je pense que ce sont les deux seuls qui fonctionneront avec Internet Explorer, par exemple).
Comme l'a dit @Tom Leek secp256r1
est P-256, secp384r1
est P-384 et secp521r1
est P-521. Ils font tous partie de la NSA suite B .
n article Wikipedia a une liste de toutes les implémentations de courbes. Les clients les plus courants sont donc:
Comme Chrome/Chrome utilise BoringSSL - un fork d'OpenSSL - il devrait prendre en charge la même chose.
Firefox utilise NSS (Network Security Services) pour les connexions HTTPS. NSS prend en charge:
... ce n'est que la partie théorique et de nombreuses implémentations ne peuvent prendre effet que côté serveur. Pratiquement, vous pouvez analyser le trafic avec Wireshark - comme vous l'avez fait - et regarder les courbes qu'il offre.
Notez que vous pouvez également voir sur SSLLabs quels navigateurs prennent en charge quelles courbes elliptiques. Et là, vous pouvez par exemple voir également que Chrome 5prend en charge X25519 .
Firefox (ainsi que palemoon et waterfox) prétendent prendre en charge secp256r1, secp384r1 et secp521r1, mais lorsque je me connecte à un serveur Web avec un certificat secp384r1 signé par une autorité de certification secp521r1, j'obtiens une erreur: (Code d'erreur: sec_error_bad_signature).
IE et Chrome se connectent avec succès à ce serveur o ils semblent avoir correctement implémenté EC.