ドキュメントに記載されている曲線名が見つからなかったため、FiresharkにFirefox 3リクエストを送信しました。
Elliptic curve: secp256r1 (0x0017)
Elliptic curve: secp384r1 (0x0018)
Elliptic curve: secp521r1 (0x0019)
他のブラウザでサポートされている曲線は何ですか?誰かがこのリストを拡張したいですか?
サポートされている曲線を表示できます here (search for 「楕円曲線」 「名前付きグループ」)。
ソフトウェア(ブラウザ、Webサーバー...)が楕円曲線をサポートする場合、多かれ少なかれ NSA suite B で与えられる2つの曲線、つまりP-256とP-384のサポートを期待できます。 FIPS 186- で指定されている曲線。これらは、リストした「secp256r1」および「secp384r1」と同じ曲線です。 15の標準NIST曲線(FIPS 186-3から))は、実際にはCerticomが SEC 2 で指定した曲線のサブセットです。
一部のソフトウェア実装はさらに進んで、他の曲線をサポートします。たとえば、 OpenSSL は15のNIST曲線すべてをサポートします(コードはSunによって提供され、特許を侵害しないと考えられています-これは、OpenSSLがフロベニウス準同型写像によるKoblitz曲線の加速を実装しない理由を説明しています)。ただし、既存のブラウザやサーバーとの相互運用性を最大化したい場合は、P-256とP-384を使用してください(たとえば、これらはInternet Explorerで動作する唯一の2つだと思います)。
@Tom Leek secp256r1
はP-256、secp384r1
はP-384であり、secp521r1
はP-521です。それらはすべて NSA suite B の一部です。
Wikipediaの記事 には、曲線のすべての実装のリストがあります。したがって、最も一般的なクライアントは次のとおりです。
Chrome/Chromiumは、BoringSSL(OpenSSLのフォーク)を使用しているため、これをサポートする必要があります。
FirefoxはHTTPS接続にNSS(Network Security Services)を使用します。 NSSは以下をサポートします:
...これは理論上の部分にすぎず、多くの実装はサーバー側でのみ有効になります。実際には、Wiresharkを使用してトラフィックを分析することができます(以前と同様)。
SSLLabs で、どのブラウザーがどの楕円曲線をサポートしているかを確認することもできます。そしてそこにあなたは例えば Chrome 5X25519をサポート もご覧ください。
Firefox(およびpalemoonとwaterfox)は、secp256r1、secp384r1、およびsecp521r1をサポートしていると主張していますが、secp521r1 CAによって署名されたsecp384r1証明書でWebサーバーに接続すると、エラーが発生します(エラーコード:sec_error_bad_signature)。
IEとChromeこのサーバーに正常に接続しますo ECを正しく実装しているようです。