Tetsu=TaLowの雑記(はてブロ版)

しがない大学教員が琵琶湖のほとりから呟きます

SSL/TLSでBEASTを恐れてRC4を優先するのは危ない

前職のお仕事で電子政府推奨暗号リストの改定作業を行う暗号技術検討会の事務局をやってたのですが、それ関係の話。3/1付けで電子政府推奨暗号リストあらためCRYPTREC暗号リストが公表されたのですが…

電子政府における調達のために参照すべき暗号のリスト(CRYPTREC暗号リスト)に対する意見募集の結果

 今回の改定では、電子政府で広く使われているがすでに危殆化が始まっているものを「運用監視暗号リスト」にするということが行われたのですが、今回その扱いにされた暗号のうち代表的なものがストリーム暗号RC4です。この件、もう少し大きな話題になってもいいと思うのですが…

…話題にならないのでちょっと解説。

RC4はストリーム暗号としては大変広く使われていますが、同時にいろんな脆弱性があることでも知られてきました。今回のCRYPTRECによる調査では「同一の平文を異なる(多数の)暗号鍵で暗号化した場合平文が復元できてしまう」という問題が明らかになり、運用監視暗号リスト行きの決め手の一つとなりました。このことを示す技術報告書はすでに公開されています。

五十部孝典「ストリーム暗号RC4の安全性評価」(PDF)

これ、RC4の危殆化が一段と進んだことを表してて、危険な兆候だと思っております…なのに、そのことが話題にならないのは、その危機感が暗号業界以外で理解されにくいから、なんでしょうか。

RC4はWEPやSSL/TLSで広く使われてますが、WEPが脆弱であることが広く知られているのに比べ、SSL/TLSでのRC4はそれほど恐れられてきませんでした。SSL/TLSでは多くの暗号が選べますが、メジャーなのはRC4_128_SHAとかAES_128_CBC_SHAあたりでしょうか。通常の発想では、従来より脆弱性が指摘されているRC4よりはAESを優先にするべきとなるところですが、最近はむしろSSL/TLSではRC4を優先すべきという論調が増えていました。というのは、ここ1~2年のうちにSSL/TLSにおいてAESを含むブロック暗号をCBCモードで使っている際に有効なBEAST攻撃やLucky13攻撃などが報告されてきており、その対策としてRC4への移行が促されてきたからです。

MS12-006 SSL/TLS の脆弱性のちょっと詳しい解説(Microsoft TechNet Blog: 日本のセキュリティチームによるBEAST攻撃の解説)

Nadhem J. AlFardan and Kenneth G. Paterson: Lucky Thirteen: Breaking the TLS and DTLS Record Protocols (PDF)(Lucky13攻撃の原著論文:対処としてRC4の利用について言及されている)

実際、GoogleFacebookTwitterなどがRC4を優先にしているのもそういう事情があるようです(まぁ単純に負荷が低いからと言う事情もありそうですが、昨今はAES-NIが使えるCPUが増えてますからAESでも変わらないかむしろ負荷は下がるように思います)。

しかし今回、RC4の危殆化が明らかになったことでまた話が変わってきました。BEAST攻撃やLucky13攻撃は暗号学的には目新しいところはないのですが、技術の組み合わせの妙によって実際の攻撃が可能であることを示して見せたあたりに目新しさがある、というのが私の理解です。一方、RC4に関しては本体の暗号学的な脆弱性の進展がありましたので、ここにBEASTあたりで使われていた各種技法を取り入れることによって、かなりの現実味を持って平文を回復する攻撃を作り上げることができそうな状況にあると見ています。SSL/TLSにおける平文の回復で一番厄介なのはセッション等に使われているCookieを外部から読まれることで、そこまで可能になれば脅威はかなり大きなものとなります。

なので、少なくともSSL/TLSにおいてBEASTを恐れてRC4を優先にするのは脅威を軽減できていないという意味でかなりナンセンスな状況ですし、RC4に対する攻撃の脅威がBEASTを一気に飛び越しかねないと思います。なので、そうなってしまう前にBEASTをはじめとする各種攻撃の回避へのWorkaroundとしてRC4を推奨する記述を消して回った方がいいと思うんですけど、どうしたらいいんでしょうね??私も言えるところには言っていこうと思ってますけど、私一人では限界があるので、この話を理解して頂いて賛同頂いた方には是非、ご協力をお願いしたいのですが…

参考:CBCモードの現在 - Togetter

ついで。以下の記事はAlFardan, Bernstein, Paterson, Poettering and Schuldtの成果のように書いてますけど…

A Few Thoughts on Cryptographic Engineering: Attack of the week: RC4 is kind of broken in TLS

 こちらの、五十部-渡邉-大東-森井の方が早いです。

Security of RC4 Stream Cipher