(2021-03-02現在の記事です)
TL;DR (この記事はなに?)
建てているサーバに対する脆弱性診断で弱い設定を指摘された。
修正したあと、openssl s_client -ciphers
でひとつひとつ調べることもできるけど、ざくっと網羅的に確認したいなぁ。
と思って調べてみたら、sslscanというコマンドがあったので、試してみた。
やってみたら、CBCがWeakなのか? という疑問が浮かんだので、それも追いかけてみた。
Install (Google Cloud Shell)
https://ozuma.hatenablog.jp/entry/20150320/1426841511 を参考に、rbsec製の静的リンク版を使う。
$ git clone https://github.com/rbsec/sslscan/
$ cd sslscan
$ make static
あっさりできた。
実行
引数なしで実行するとヘルプが表示
$ sslscan
Command:
sslscan [Options] [host:port | host]
単純にスキャンするだけならこれだけ!!
$ sslscan 10.XX.XX.XX
結果は長いので割愛しますが、
Accepted TLSv1.2 256 bits ECDHE-ECDSA-AES256-SHA384 Curve 25519 DHE 253
あれ? なんか違う。
https://www.ssllabs.com/ssltest/analyze.html だと WEAK って出るんだけど。
(ECDHE-ECDSA-AES256-SHA384
= TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384
です)
TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384 (0xc024) ECDH x25519 (eq. 3072 bits RSA) FS WEAK
どういうこと?
CBCは理論的には問題ありませんが、不適切な実装によって接続がパディングオラクル攻撃を受けるリスクが常にあります。TLSでのCBC実装は何度も脆弱であることが示され、実装が修正されるたびに、パディングオラクル攻撃を実行可能にするさらに別のバグが発生しているようです。ラッキーサーティーンは2013年に公開され、サイドチャネルに基づくこの攻撃の亜種が次々と出現しています。SSL Labsは、歴史を観察し、そこから学んでいます。 (Google翻訳による)
なるほど。弱くはないけど狙われているからリスク、ということね。
日本政府はどう言っている?
CBCは推奨暗号リストに掲載されている。
プロジェクトの要件は……。「CRYPTREC準拠」。ってことはCBCを使っていてもOKか。
念のため除外しておこうかなぁ……。