SCSVを実際に試す

先日の書いた「TLSのダウングレード攻撃を防ぐSCSVとは」ですが、10/15に公開されたOpenSSL 1.0.1jで既に使用できるようなので試してみました。

使い方

使用するには、-fallback_scsv オプションを付けるだけです。

$ openssl s_client -fallback_scsv -connect google.com:443


パケットキャプチャすると、ClientHelloのCipher Suitesに「TLS_FALLBACK_SCSV」を示す{0x56,0x00}が付加されていることが確認できます。


実際の挙動を確認する

さて、付加されていることが確認できたら実際の挙動も見てみましょう。
どうやらgoogleでは既に「TLS_FALLBACK_SCSV」を確認しているようです

$ openssl s_client -connect google.com:443 -tls1
#接続できる

$ openssl s_client -connect google.com:443 -tls1 -fallback_scsv
(...)
error:1409443E:SSL routines:SSL3_READ_BYTES:tlsv1 alert inappropriate fallback
error:1409E0E5:SSL routines:SSL3_WRITE_BYTES:ssl handshake failure

一つ目の、-fallback_scsvを付けずに tls1を指定した場合、ハンドシェイクが正常に行われ通信が出来ます
二つ目の、-fallback_scsvを付けて tls1を指定した場合、実際にサーバはtls1.2に対応してますのでアラートが返却されハンドシェイクが中断される事が確認できます。