web-dev-qa-db-ja.com

ブラウザでサポートされている楕円曲線は何ですか?

ドキュメントに記載されている曲線名が見つからなかったため、FiresharkにFirefox 3リクエストを送信しました。

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

他のブラウザでサポートされている曲線は何ですか?誰かがこのリストを拡張したいですか?

サポートされている曲線を表示できます here (search for 「楕円曲線」 「名前付きグループ」)。

24
Smit Johnth

ソフトウェア(ブラウザ、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つだと思います)。

14
Tom Leek

@Tom Leek secp256r1はP-256、secp384r1はP-384であり、secp521r1はP-521です。それらはすべて NSA suite B の一部です。

Wikipediaの記事 には、曲線のすべての実装のリストがあります。したがって、最も一般的なクライアントは次のとおりです。

OpenSSL/LibreSSL

  • 28カーブをサポート
  • p-256、P-384およびP-521を含む
  • それらは、IETFによって新しく標準化されたCurve25519および(Ed448-)Goldilocksをしないサポートします。

Chrome/Chromiumは、BoringSSL(OpenSSLのフォーク)を使用しているため、これをサポートする必要があります。

Firefox(NSS)

FirefoxはHTTPS接続にNSS(Network Security Services)を使用します。 NSSは以下をサポートします:

  • 25カーブ(OpenSSL 3ブレインプールカーブと比較して欠落)
  • p-256、P-384およびP-521を含む
  • curve25519と(Ed448-)Goldilocksもサポートしない

しかしながら...

...これは理論上の部分にすぎず、多くの実装はサーバー側でのみ有効になります。実際には、Wiresharkを使用してトラフィックを分析することができます(以前と同様)。

  • 正解です。FirefoxはP-256、P-384、P-521をサポートしています。
  • そして、Chromiumでテストして、P-256、P-384を取得しました。

更新:2016-07-03

SSLLabs で、どのブラウザーがどの楕円曲線をサポートしているかを確認することもできます。そしてそこにあなたは例えば Chrome 5X25519をサポート もご覧ください。

8
rugk

Firefox(およびpalemoonとwaterfox)は、secp256r1、secp384r1、およびsecp521r1をサポートしていると主張していますが、secp521r1 CAによって署名されたsecp384r1証明書でWebサーバーに接続すると、エラーが発生します(エラーコード:sec_error_bad_signature)。

IEとChromeこのサーバーに正常に接続しますo ECを正しく実装しているようです。

0
ah12