Firefox の Cipher Suite
この記事を読んで以下のように思わなかっただろうか。
「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
” で検索すると出てくる。
ちなみにこれは 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 を
ブックマーク
-
RFC 7905 - ChaCha20-Poly1305 Cipher Suites for Transport Layer Security (TLS)
-
GitHub - square/certigo: A utility to examine and validate certificates in a variety of formats
参考図書
- 暗号技術入門 第3版 秘密の国のアリス
- 結城 浩 (著)
- SBクリエイティブ 2015-08-25 (Release 2015-09-17)
- Kindle版
- B015643CPE (ASIN)
- 評価
SHA-3 や Bitcoin/Blockchain など新しい知見や技術要素を大幅追加。暗号技術を使うだけならこれ1冊でとりあえず無問題。