Forward secrecy
From Wikipedia, the free encyclopedia
概要
歴史
Perfect forward secrecy
攻撃法
forward secrecyは秘密鍵の危殆化からセッションキーを守ることはできるが、セッションキーを使わずに1つのメッセージへ暗号解読を行う試みに対しては無力である。また、実装によっては計算負荷を軽減するためにセッションキーの再利用が行われており、不適切な設定ではforward secrecyの安全性が脅かされることとなる[7]。また、2013年に行われた調査では、DHEによりSSL上でのforward secrecyを実装していたサーバのうち実に82.9%で、DHのパラメータ長がRSAの鍵長より小さくなっていた、すなわち総当たり攻撃への耐性を大きく下げるような設定となっていたことが判明している[8]。
適用可能なプロトコル
SSL/TLSにおけるforward secrecy
SSL 3.0時点でも、仕様上forward secrecyを実現可能な暗号スイートは存在したのだが、実装がなされていない、あるいは暗号化強度が弱すぎるなどの問題を抱えていた[9]。
SSLでforward secrecyを実現可能なアルゴリズムとして、ディフィー・ヘルマン鍵共有(DHE[* 1])と、それを楕円曲線暗号で実現した楕円曲線ディフィー・ヘルマン鍵共有(ECDHE[* 1])が存在する[7]。この2つのアルゴリズムについては、以下のような特徴・実装上の特性を持つ。
- DHE
- RSAで署名されたサーバ証明書と組み合わせたDHE-RSA、およびDSAで署名された証明書と組み合わせたDHE-DSSの2種類があるが、実運用においてサーバ側で使用されるのはDHE-RSAがほとんどであり、DHE-DSSが使用されることは少ない。DHEを用いない場合と比較して計算負荷が大きい[7][10]。また、Internet Explorerは2014年現在の最新であるWindows 8.1を含むすべてのバージョンのWindowsにおいてDHE-DSSのみに対応しており、DHE-RSAは利用できなかった[7]が、2014年4月8日リリースのパッチでWindows 8.1 / Server 2012 R2において[11]、続く2014年11月11日リリースのセキュリティパッチでWindows 7 / Server 20008 R2および8 / Server 2012において[12][13][14]DHE-RSAに対応した(ただしAES-GCMとの組み合わせのみ有効)。
- ECDHE
- RSAで署名されたサーバ証明書と組み合わせたECDHE-RSA、および楕円曲線DSAで署名された証明書と組み合わせたECDHE-ECDSAの2種類があり、DHEとは異なりサーバ側での実運用ではどちらも使用されている。クライアント側では、Mozilla製品で用いられているライブラリであるNetwork Security ServicesではFirefox 1.0リリースより前の2003年にリリースされた3.8から[15][16]、Internet Explorerにおいては2007年にリリースされたWindows Vistaから[17]ECDHEは実装されていたが、サーバ側のTLS/SSLライブラリとしてシェアの大きいOpenSSLにおいてTLS/SSL向けに実装されたのは2010年にリリースされた1.0から[18]、GnuTLSでは2011年にリリースされた3.0.0から[19]と比較的最近のことである。ECDHE-RSAでは通常のRSAと比べて負荷は15%程度増す[20]が、ECDHE-ECDSAではむしろforward secrecyなしのRSAより高速化しうる[10]。
実運用も徐々にではあるが普及しており、Googleでは、GmailやGoogle+などの自社サービスに対して、2011年11月22日以降forward secrecyを有効としている[21][18]ほか、Twitterでは2013年11月に導入している[22]。2014年7月1日から、ウィキメディア財団によって運営されるすべてのプロジェクトにおいてforward secrecyが有効となった[23]。2014年5月時点でSTARTTLSを有効にしているメールサーバのうち74%でforward secrecyが有効となっているという、facebook社による報告もある[24]。2016年6月時点で、最新のウェブブラウザとの組み合わせによってHTTPSのWebサイトのうち51.9%がforward secrecyを利用可能である[25]。