Firefox の Cipher Suite

no extension

この記事を読んで以下のように思わなかっただろうか。

「Firefox 側が TLS_RSA_WITH_AES_256_CBC_SHA256 あたりを用意すればええんちゃうん?」

私は思った。 J-STAGE というサイトや運営している JST という組織をよく知らないので,なんでそこまで悪意たっぷりに書かれるのかよく分からないが,もうちょっと書きようがあるだろうに。

TLS Cipher Suite

まず TLS (Transport Layer Security) Version 1.2 の仕様を記した RFC 5246 によると “Mandatory Cipher Suites” というのがあって,この中で TLS_RSA_WITH_AES_128_CBC_SHA を MUST に定めている。 したがって,上述のリンク先の記事でこれがないことについて「TLS仕様違反」と断じている点は間違いない。

この場合,サーバ側の対応としては, NSS なら TLS_RSA_WITH_AES_128_CBC_SHA, OpenSSL なら AES128-SHA を有効にすればいいわけだ。

一方, Firefox はどうなっているかというと about:config を開いて “ssl3” で検索すると出てくる。

Cipher Suite in Firefox
Cipher Suite in Firefox

ちなみにこれは Firefox Developer Edition 65 の場合である。 一応,抜き書きすると

  • security.ssl3.dhe_rsa_aes_128_sha
  • security.ssl3.dhe_rsa_aes_256_sha
  • security.ssl3.ecdhe_ecdsa_aes_128_gcm_sha256
  • security.ssl3.ecdhe_ecdsa_aes_128_sha
  • security.ssl3.ecdhe_ecdsa_aes_256_gcm_sha384
  • security.ssl3.ecdhe_ecdsa_aes_256_sha
  • security.ssl3.ecdhe_ecdsa_chacha20_poly1305_sha256
  • security.ssl3.ecdhe_rsa_aes_128_gcm_sha256
  • security.ssl3.ecdhe_rsa_aes_128_sha
  • security.ssl3.ecdhe_rsa_aes_256_gcm_sha384
  • security.ssl3.ecdhe_rsa_aes_256_sha
  • security.ssl3.ecdhe_rsa_chacha20_poly1305_sha256
  • security.ssl3.rsa_aes_128_sha
  • security.ssl3.rsa_aes_256_sha
  • security.ssl3.rsa_des_ede3_sha

となっている。 これを見ると TLS_RSA_... から始まる古い cipher suite は殆ど対応していないことが分かる(mandatory cipher suites を除けば2つのみ)。 Firefox 側の思惑は不明だが,古い cipher suite は PFS (Perfect Forward Secrecy) に対応してない(できない)ため意図的に外してる可能性もある。

Cipher Suites for Modern Browser

(おそらくもうサポートされていない)古いブラウザを切り捨てていいのであれば,以下の cipher suite をサポートしておけば問題ないらしい。

HEX IANA OpenSSL
0xC0,0x2C TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384 ECDHE-ECDSA-AES256-GCM-SHA384
0xC0,0x30 TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 ECDHE-RSA-AES256-GCM-SHA384
0xCC,0xA9 TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256 ECDHE-ECDSA-CHACHA20-POLY1305
0xCC,0xA8 TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256 ECDHE-RSA-CHACHA20-POLY1305
0xC0,0x2B TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256 ECDHE-ECDSA-AES128-GCM-SHA256
0xC0,0x2F TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 ECDHE-RSA-AES128-GCM-SHA256
0xC0,0x24 TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384 ECDHE-ECDSA-AES256-SHA384
0xC0,0x28 TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384 ECDHE-RSA-AES256-SHA384
0xC0,0x23 TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256 ECDHE-ECDSA-AES128-SHA256
0xC0,0x27 TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256 ECDHE-RSA-AES128-SHA256

これらの cipher suite は Firefox 27 以降, Chrome 30 以降, IE 11 以降, Edge, Opera 17 以降, Safari 9 以降, Android 5.0 以降, Java 8 以降であれば対応している。

たまには Firefox のことも思い出してあげてください

以前も書いたが,携帯端末も含めれば Chrome/Chromium と Safari/WebKit でほぼ寡占状態と言ってよい。 そういった状況の中で Firefox も対応しろと言われてもかったるいかもしれないし,実際に私が関わったことのある案件でも Chrome や Edge での動作確認はするのに Firefox はスルーするところも結構あったりした。 特定企業への依存度が減るんだから,むしろ Firefox は推奨されていいと思うんだけどねぇ。

少なくとも HTTPS 接続で Firefox を村八分 (ハブ) にする理由はないと思うので,是非ともよろしくお願いします。

ブックマーク

参考図書

暗号技術入門 第3版 秘密の国のアリス
暗号技術入門 第3版 秘密の国のアリス
結城 浩
SBクリエイティブ
評価 

SHA-3 や Bitcoin/Blockchain など新しい知見や技術要素を大幅追加。暗号技術を使うだけならこれ1冊でとりあえず無問題。

reviewed by Spiegel on 2018.12.15 (powered by Amakuri)