突然、Firefox(62.0.3)がTwitter関連のWebサイトからCSSやその他のコンテンツをロードできなくなりました。たとえば、[ネットワーク]パネルを開いた状態でTwitterに接続すると、次の場所からコンテンツを取得できないことがわかります。
Twitterは、画像、CSSスタイルシート、Javascriptなどのコンテンツをホストするためにこれらのドメインを使用します。
これらのURLのいずれかに直接接続しようとすると、Firefoxは次のように通知します。
Abs.twimg.comへの接続中にエラーが発生しました。
- 受信したデータの正当性を確認できなかったため、表示しようとしているページを表示できません。
- この問題については、Webサイトの所有者に連絡してください。
このエラーメッセージが何を伝えようとしているのか正確にはわかりません。
about:config のsecurity.tls.version.max
を変更することで、この問題を解決できました。デフォルトは4で、TLSバージョン1.3が有効になっています。 3(TLS 1.2)に設定すると、問題が解決しました。安全のため、security.tls.version.fallback-limit
も3に変更しました。
リリースノート によると、この設定のデフォルトはFirefox 60でずっと前に変更されました。しかし、私は間違いなく最近この動作に気づき始めました。
これらのWebサーバーはTLSv1.3を正しく実行しません。
HTTP/2には、基になるTLSセッションの暗号強度に関するかなり厳しい要件があり、Webサーバーは特定のセキュリティレベルを適用することになっています。
一部のWebサーバー(具体的には、Verizon Edgecast/VDMS CDN)は、暗号コードポイントのホワイトリストなどの形式で実装しているようですが、TLSv1.3がプロトコルネゴシエーションを完全にやり直したため、最強の暗号でさえももはやホワイトリストは異なるコードポイントを使用してネゴシエートされるため、ホワイトリストと一致します。その結果、サーバーは「セキュリティが不十分です」というエラーコードを表示します。
$ nghttp -vn <url>
...
[ 0.153] recv GOAWAY frame <length=26, flags=0x00, stream_id=0>
(last_stream_id=0, error_code=INADEQUATE_SECURITY(0x0c), opaque_data(18)=[cipher is banned! ])
しかし、この投稿を書いている最中にTwitterがTLSv1.3を無効にしたようです。他のサイトもおそらくすぐにこれを修正するでしょう。
当面は、about:configを使用してFirefoxをTLSv1.2に制限することもできます。
関連リンク: