Microsoftが、先週5月9日に公開した月例パッチでSHA-1証明書を利用しているサイトをブロックすることを発表した。

これは「Edge」および「Internet Explorer(IE)」に影響するポリシーの変更で、アップデートをインストールすると、SHA-1証明書を使用しているサイトはブロックされるようになる。

実は、SHA-1にはセキュリティ上の問題が発見されており、ブラウザメーカー各社では数年前からSHA-1証明書に関する指針を出していた。

Googleは、1月にリリースした「Chrome 56」でSHA-1のサポートを打ち切った。
Mozillaも。2月に「Firefox」のSHA-1サポートを廃止している。
各社とも、指針で示していた廃止までのロードマップからは多少遅れたものの、今回のMicrosoftの対応で、大手ブラウザにおけるSHA-1サポート廃止への動きは一気に進んだといえる。

◎SHA-1証明書の安全性に対するリスクとは?
SHA(Secure Hash Algorithm)は1993年に登場したハッシュアルゴリズムで、アメリカ国家安全保障局(NSA)によって設計された。

簡単にいうと、もとになる文字列からハッシュ値を生成し、その値をもって「偽造されていない」ことを証明するというもの。

デジタルな情報に対する信頼性を担保するものとして、電子署名やセキュアな通信を証明する証明書などに用いられている。これまで広く使われてきた「SHA-1」は1995年に登場、「SHA-0」の脆弱性を補強したものだ。

こうした暗号通信の要となるハッシュ関数には、異なる入力値から同じハッシュ値を生成できないという特性(非衝突性)が不可欠となる。
この「同じハッシュ値を持つ2つのデータの作りにくさ」を強衝突耐性という。

万が一、同じハッシュ値を容易に生成できるとなれば、証明書を簡単に偽造できる(改ざんできる)ということになってしまう。

しかし、SHA-1の非衝突性に対するリスクが2004年に発表され、その安全性に疑問が生じたのだ。

2011年にMarc Stevensが、SHA-1衝突を作成する理論的なアプローチを示す論文を発表した。
同じハッシュ値を持つ2つのデータのペアを2^61回の試行により示したのだ。
ただ、この段階ではあくまでも計算上のことだった。

◎GoogleのSHA-1ハッシュ値の衝突成功が、SHA-2への移行を決定づけた
主要ブラウザメーカー各社・業界団体は、徐々に
・SHA-1証明書の発行のストップ
・SHA-1証明書の有効期限の制限
・ブラウザのアドレスバーの表示の変更
などの対策を行ってきた。

とはいえ、なかなかロードマップどおりにはなかなか進まなかった。

というのも、SHA-1は広くサーバ証明書に用いられている。突然、「今日からSHA-1を用いたサーバ証明書は信頼しないものとする」としてしまうわけにはいかなかったからだ。

もし、サイトにいきなりアクセスできなくなったら、サイトの提供者もユーザーも戸惑ってしまうだろう。そのため、段階的に緩やかな移行を試みざるをえなかったのである。

また、まだSHA-1のリスクは理論上のことで、実際に破られたわけではないというのもあっただろう。

ところが事態は、今年2月に大きく変わった。
Googleが、実際に、異なるデジタル情報のペアにおけるSHA-1ハッシュ値の衝突を成功させたのだ。

これは、security.googleblog.com(https://security.googleblog.com/2017/02/announcing-first-sha1-collision.html)で明らかにされたもので、ブログのエントリーでは同じハッシュ値を持つPDFのペアを公開するとともに、その攻撃手法を示した。アムステルダムのCWI研究所とGoogleの2年がかりの共同研究だ。

つまり、このGoogleのSHA-1衝突の成功により、これまで理論上であった危機が、リアルな危機になったのだ。
否応なく、MozillaやMicrosoftも動かざるをえないという事態になったわけだ。

こうした措置を受け、今後は一気に、SHA-2への移行が進むと思われる。
ちなみに、SHA-2はSHA-1から多くの改良が加えられており、ビットコインで使用されるSHA-256のほか、合わせて6つのバージョンがある。

なおGoogleは、SHA-1の衝突攻撃を検出するためのユーザー保護機能をGmailやGSuiteに追加したことも明らかにしている。また、GitHubに無料で公開している。


大内孝子