2015年3月、一部のSSL/TLS実装に存在する脆弱性を悪用する「FREAK」という新たな攻撃手法の情報が公開された。同攻撃は、データの盗聴や改ざんを可能にする中間者攻撃の一種。FREAKが悪用する脆弱性は、iOSやAndroidにも存在するため注意が必要だ。対策は、iOS 8.2/AppleTV 7.1以降へのアップグレードや、Chrome 41以降の利用である。

 フランス国立情報学自動制御研究所(INRIA)とマイクロソフトリサーチの合同チーム「miTLS」は2015年3月、一部のSSL/TLS実装に含まれる脆弱性を悪用する中間者攻撃手法「FREAK」の情報を公開した。

 FREAKは、SSL/TLS通信に介入して弱い暗号を強制的に使用させることで、データの盗聴や改ざんを可能にする攻撃手法である。攻撃を成立させる条件を比較的整えやすく、攻撃対象となり得るクライアントの種類や数が多いことから大きな話題となった。

輸出グレードの暗号を要求

 FREAKによる攻撃のポイントは、「輸出グレード」の弱い公開鍵暗号の使用をサーバーに要求する点である(図1)。ここで言う輸出グレードの公開鍵暗号とは、米国が2000年まで課していた暗号輸出規制に抵触しない、鍵長が512ビット以下のRSAのこと。

図1●データの盗聴や改ざんを可能にする「FREAK」攻撃の概要
図1●データの盗聴や改ざんを可能にする「FREAK」攻撃の概要
脆弱性のあるSSL/TLSクライアントと、輸出グレードの弱い公開鍵暗号の使用を許可するSSL/TLSサーバーの通信に介入し、強制的に暗号強度を下げるのがFREAK攻撃の肝である。輸出グレードの弱い公開鍵暗号の秘密鍵は数時間程度の計算で発見されるため、鍵ペアを長時間使いまわすサーバーの場合、通信データの盗聴や改ざんが容易になる。
[画像のクリックで拡大表示]

 暗号規制が大幅に緩和された現在では、こうした弱い暗号を利用可能にする必要はない。しかし、多くのSSL/TLSサーバーがこれを利用可能な設定で運用しているのが現状だ。FREAKでは、こうしたサーバーから強度が弱い公開鍵を入手し、それを元に秘密鍵を算出する。クラウドなどを活用すると、わずか数時間程度で秘密鍵を算出できてしまうという。