シマンテックは、同社が販売しているサーバー証明書のSHA-2対応版を、すべての販売経路で開始。2月5日には、SSLサーバ証明書などにおける暗号アルゴリズムについて、シマンテックの対応状況を解説する記者説明会が開かれた。

電子証明書が正しいことを証明するハッシュ値

SHA-2対応の説明を行った、シマンテック SSL製品本部 SSLプロダクトマーケティング部 上席部長の安達徹也氏

電子証明書は、Webサイトやプログラム、メールなどの安全性を証明するために用いられる一方で、「偽」証明書が使われる可能性もある。そこで2つの方法で証明書の正当性をチェックしている。

1つは上位の認証局による署名だ。最上位の「ルート証明書は正しい」という前提の元で、下位の証明書に電子署名をすることで有用性を確認。また、証明書のハッシュ値を使うことで、証明書が改ざんされていないことを確認する。

ハッシュ値とは、あるデータを入れると計算できるチェックデータだ。同じアルゴリズムを使う限り、同じデータを入れれば同じハッシュ値が得られ、かつハッシュ値から元のデータの推測ができないようになっている。一部のデータが書き換えられた場合は異なるハッシュ値になるので、データとハッシュ値を受け取って計算することで、元データが改ざん・破損していないかどうかをチェックすることが可能だ。

インターネットの安全を支えるのは各種の暗号技術と思われがちだが、改ざんを検知するハッシュアルゴリズムも重要だ

現在SSLで使われているハッシュアルゴリズムはSHA-1で160bitのもの。元データが異なれば別のハッシュ値になるので、改ざんを検知できる。今回のトピックとなるSHA-2は、SHA-1よりもビット長が大きく、より強固なものだ

元データよりも少ないデータ量でチェックしている関係で、まったく異なるデータでも同じハッシュ値が導き出されることもあるが、意図的に同じハッシュ値を作り出すのは難しい。現在、Webサイト証明書で広く利用されているハッシュアルゴリズム「SHA-1」は、理論的には「2の80乗回」の試行によって、同じ値を出すことができるとされている。

また、ハッシュアルゴリズムそのものに脆弱性がある場合は、理論値が低くなってしまう。すでにSHA-1には、「2の61乗回」の試行で計算可能という報告もある。

この問題に対処するために、新しいハッシュアルゴリズム「SHA-2」を使うようになった。SHA-2は従来よりも長いビット長を使うことで、破られにくくなっている。SHA-2には224/256/384/512bitのものがあるが、後述のテストサイトを見る限り、256bitのSHA-2を採用するようだ。

ショッピングサイトを例にしたSSL通信の仕組み。サーバー証明書や中間認証局証明書の正当性は、ルート証明書とハッシュアルゴリズムを使って検証。伝送が間違っていたり改ざんされている場合は、有効な証明書とみなされないのでエラーとなる

電子証明書の世界では、証明書の強化を絶えず行ってきた歴史がある。例えば、Webブラウザとサーバー間の暗号化通信も、インターネット最初期のころは「40bitのRC2」を使用していたが、最近は「128/256bitのAES」を使うことが多くなった。Webサーバーの電子証明書も、RSA公開鍵は1024bitの証明書が利用できなくなり(2013年末)、ビット数を2048bitに増やした公開鍵や、アルゴリズムの異なる楕円曲線暗号の運用が行われている。

それに対して、ハッシュアルゴリズムの対応はやや遅れている。米国NIST(National Institute of Standards and Technology)とPCI DSS(Payment Card Industry Data Security Standard)の勧告では、2013年末にSHA-1の利用停止となっていた。また、日本NISC(National Information Security Center)の指針では、2019年までに利用停止となっている。

コンピュータの計算能力が高まるに伴って、暗号における世代交代の必要性が増している。この表の左から二番目の公開鍵「RSA1024」は、今年(2014年)から利用できなくなっていたが、SHA-2への移行はこれからの話だ

SHA-2移行が遅れたのは、市場でのエンドユーザーカバレッジ範囲が十分でなかったからだ

マイクロソフトのセキュリティアドバイザリ(2880823)が意味するもの

2013年11月13日にマイクロソフトは、セキュリティアドバイザリ(2880823)にて、マイクロソフトルート証明書プログラムのポリシーを変更している。「新しいポリシーでは、2016年1月1日以降、ルート証明機関はSSLとコードサイニングの目的で、SHA-1ハッシュアルゴリズムを使ってX.509証明書を発行できなくなります」とした。

この勧告は民間での対応を強要するものではなく、さらにマイクロソフトが独断で行っているものでもない。業界の代弁とも言えるが、現実的には2015年末で、現在のSHA-1をハッシュアルゴリズムに使っている電子証明書の利用がストップすることになる。

政府の勧告だけでなく、民間会社のマイクロソフトがセキュリティアドバイザリの公開と利用期間を明示したのがポイントだ。これによって、SHA-2への実質的な移行スケジュールが明確になった

シマンテックは、SHA-2対応のサーバー証明書を大規模利用者向けの「マネージド PKI for SSL」で提供していたが、2014年2月5日付でSMB向けのSSL購入サイト「ストアフロント」でも販売を開始した。これによって、多くのサーバーがSHA-2のサーバー証明書を入手できる。同時に、マイクロソフトのセキュリティアドバイザリに合わせて、従来のSHA-1証明書発行を2015年末で終了し、利用を2016年末に制限することを発表している。

シマンテックの発表ハイライト。従来、大規模ユーザー向けに提供していたSHA-2のサーバー証明書を、SMB向けのストアフロントでも発売を開始。SHA-1に関しては、発売と利用の終了期間を明示した

SHA-2への対応状況を示した表。問題となりそうなのは、古い携帯電話とロードバランサーだ。特にロードバランサーは最新版以外はサポートされていないこともあるので、大規模サーバー運営者は注意したい

サーバー管理者側がSHA-2対応を計画する際には、機器の対応状況に注意したい。SHA-2の対応は近年カバレッジが広がっているので、サーバーやWebブラウザに関してはあまり問題にならないだろう。一方で、ロードバランサーに関しては、SHA-2に対応するため最新版に近いものを必要とするケースがある(問題となるのは大型サイトということになるだろう)。なお、クライアント側のチェックに関しては、シマンテックがテストサイトを公開中だ。SHA-2だけでなく、公開鍵方式として、RSAやECC/DSAのサンプルが用意されている。

シマンテックのテストサイトに用意されているサーバー証明書の例。左が従来タイプの「RSA 2048bit」でSHA-1のもの、真ん中が「RSA 2048bit」だがSHA-2のもの、右は「ECC(楕円暗号)256bit」でSHA-2のものだ。署名ハッシュアルゴリズムが「sha256」となっているのは、「SHA-2の256bit」を使っていることを示す

SHA-2のテスト用無料証明書は、シマンテックだけでなく、いくつかの証明局がテスト用に提供している。これらを利用して、サーバーサイドのテストを行うのがよいだろう。