SHA-1ハッシュアルゴリズムの危殆化はずいぶん前から叫ばれてきましたが、とうとうSHA-1衝突問題(SHAtteredと呼ばれる)が、2月23日にGoogleとオランダのCWI研究から公開されました。ここではハッシュ値が同じで異なるPDFファイルも公開されており、90日後に手法を公開すると予告されました。
比較的詳しいニュースとしてはGigaZineで、参考になるスライドがサイボウズの社内勉強会のスライドとして公開されています。詳しくはこちらをご覧ください。
GigaZine:
Googleがハッシュ関数「SHA-1」を破ることに成功、90日後に手法を公開予定
サイボウズの暗号とセキュリティ社内勉強会用スライド:
GoogleのSHA-1のはなし
ここではSHAttered問題の解説では無く、特にドキュメントやデータに対する電子署名についての状況と考えられる対応を簡単にまとめます。
まず状況ですが、まだ簡単にSHA-1の衝突がおこせる訳ではありません。従来より早くなったとは言え、それなりにCPU/GPUを回して計算させる必要があります。またSHA-1の後継ハッシュアルゴリズムとして、SHA-1同系統でよりセキュアなSHA-2ハッシュアルゴリズムや、別系統のSHA-3ハッシュアルゴリズムが既に制定されており、業界では移行を進めてきており、現状ではほぼSHA-1は使われていないはずです。また長期署名では今回のような暗号アルゴリズム危殆化の時に対応する為にアーカイブタイムスタンプと言う方法を提供しています。ですので慌てる必要はありません。落ち着いて対応すれば解決が可能です。次にファイルの種類毎に対応方法をまとめます。
○ SHA-1署名が使われているPDF署名ファイル:
SHA-1署名のみだけでは無く、SHA-1署名にSHA-2タイムスタンプが埋め込まれている場合も同様の対応が必要です。また署名方式はSHA-2でも、証明書がSHA-1署名の証明書の場合も同様です。PDF署名には、以下2つの対応方法が考えられます。
対応1)ドキュメントタイムスタンプを追加
PAdES仕様に基づいて、LTV化(検証情報埋め込み)とSHA-2対応のドキュメントタイムスタンプを追加することで、最初のSHA-1署名を保護することが可能です。これが一番本来対応すべき対応方法となります。
対応2)別の電子署名方式で再署名を行う
例えばXAdESにて署名済みPDFファイルを対象に、新たにSHA-2署名を付与することで、最初のSHA-1署名を保護することが可能です。この方式ではれば複数ファイルに対してまとめて署名付与が可能ですので、効率も良いメリットがありますが、PDFファイル単体では確認できないデメリットもあります。
○ SHA-1署名が使われているXAdESファイル:
対応3)アーカイブタイムスタンプを追加
これは素直に新しいSHA-2対応のアーカイブタイムスタンプを追加しましょう。XAdES-T(署名+署名タイムスタンプ)で署名タイムスタンプがSHA-2対応でも、署名タイムスタンプの署名対象は署名値のみですので、きちんとSHA-2対応のアーカイブタイムスタンプを追加することが必要です。また署名方式はSHA-2でも、証明書がSHA-1署名の証明書の場合も同様です。
○ その他形式のSHA-1署名ファイル
CAdESに関してはXAdESと同じ対応で良いはずです。それ以外の場合には
「対応2)別の電子署名方式で再署名を行う」にあるように、XAdESやCAdESにてSHA-2再署名することで対応が可能です。
以上が簡単ですが対応方法のまとめとなります。SHA-1署名の古いファイルをお持ちの場合には、是非上記を参考に対策をきちんと施してください。余談にはなりますが、長期署名のアーカイブタイムスタンプには以下の2つの目的があります。
A)検証可能期間の延長
B)暗号危殆化への対応
今後も今回同様の問題が生じる可能性はありますので、きちんと長期署名フォーマットPAdES/XAdES/CAdESへの対応をしておくと安心と言えます。
なお弊社PAdES/XAdESライブラリのどちらか一方をご購入頂いているお客様で、このSHAttered問題対応に際して購入していない方のライブラリが必要な場合には無償でご提供しています。弊社お客様以外でも、対応方法で悩まれている場合にご相談に乗ることも可能です。どちらも必要でしたら
宮地までご連絡ください。