ITとビジネスの専門家によるコラム。経営、業種・業界、さまざまな切り口で、現場に生きる情報をお届けします。
第19回 暗号の危殆化とタイムスタンプ
米Google Inc. が「SHA-1衝突の実現」を発表しました。これっていったい何? どういったものかについてお伝えします。
暗号の危殆化とタイムスタンプ
デジタルエビデンスの重要な要素である“SHA-1”の衝突についてのニュースがありましたので、今回はSHA-1衝突から、暗号の危殆化(きたいか)と電子署名・タイムスタンプについて解説します。
2017年2月23日に米Google Inc. とオランダの情報工学・数学研究所(CWI)より「SHA-1 衝突の実現」に関する発表がありました。
Announcing the first SHA1 collision(Google Security Blog)
そして、これを受けてわが国の暗号技術の適切な実装法・運用法を調査・検討するプロジェクトであるCRYPTRECや、日本データ通信協会、JNSAから、次々に新しい情報が公開されました。
2017年3月1日
SHA-1の安全性低下について(CRYPTREC暗号技術評価委員会Webサイト)
SHA-1衝突の実現による電子署名への影響と対策/JNSA 電子署名WG(特定非営利活動法人日本ネットワークセキュリティ協会Webサイト)
さて、SHA-1衝突の実現って何? どういう影響があるのでしょうか? 電子署名やタイムスタンプを利用しているけど大丈夫なの? という疑問にお答えしていきます。
SHA-1とは?
SHAとは、Secure Hash Algorithmの略です。
これは、アメリカ国家安全保障局(NSA)によって設計され、アメリカ国立標準技術研究所(NIST)によって標準化されたハッシュ関数で、SHA-0、1、2、3の4種類があります。
ハッシュ関数については、第3回のコラムで、ほんのちょっと触れました。
ハッシュ関数で生成されるハッシュ値は、一方向性で、元情報が分からないことと短い固定長データになることの特徴から、正確な情報通信を行うためにネット上では、さまざまな箇所で利用されている基盤技術です。
ハッシュ関数が利用されている身近なものでは、SSL通信がありますね。皆さんがWeb上で信用している“ https:// ”です。最近話題の、仮想通貨ビットコインやブロックチェーンも、このアルゴリズムの応用です。
その中でもSHA-1は、現在最も広く利用されているアルゴリズムです。
SHA-1の場合、その生成値は160bit(20Byte)ですので、2の160乗という途方もない組み合わせが可能になります。
一般的に元の情報が重複することは、ほとんどないと言えますね。
何が問題か?
ハッシュ関数の主要な目的は、元のデータの完全性を確認することです。
このため、よくハッシュ関数の安全性という言葉が使われます。
今回の発表にも、安全性の低下という表現があります。
ここでいう安全性とは、暗号学的に3つあります。
- 原像計算困難性(Preimage Resistance)
生成値のハッシュ値から、未知である元の情報を導き出せないこと - 第2原像計算困難性(2nd Preimage Resistance)
生成値のハッシュ値と元のメッセージが与えられたときに、ハッシュ値の一致する別のメッセージを導き出せないこと - 衝突困難性(Collision Resistance)
生成値のハッシュ値が一致する異なる元の情報を導き出せないこと
SHA-1の場合、その生成値は2の160乗という組み合わせですが、しょせん上限があるため、演算手法の開発や機械的な演算機能の向上でこれらの安全性は低下するのですね。
今回のGoogleの発表は、この衝突困難性を破る演算手法を実現したということです。
そう、「SHA-1衝突の実現」手法を開発した! ということです。
発表によりますと、その計算には…
- Nine quintillion (9,223,372,036,854,775,808) SHA-1 computations in total
- 6,500 years of CPU computation to complete the attack first phase
- 110 years of GPU computation to complete the second phase
とあります。
引用元:Announcing the first SHA1 collision(Google Security Blog)
これは、とてつもない計算量とも言えますが、コンピューターの進化やクラウドによる分散演算などの手法により異なる元データから、全く同じハッシュ値を生成できてしまうことを証明しています。
SHA-1は電子署名やその証明書に広く利用されていますので、偽造ができてしまうことを意味します。
例えば、偽のWebサイトの作成、偽情報によるプログラムの書き換え、偽情報に真正性を付与してしまう……などの不具合が起こり得ます。
現状では、実際にこれらのことを実施するには、長い時間と高額なコストを要しますので、そこまでして悪さをするだけの動機がありませんが、将来、その演算コストが低下することで悪さを働く判断基準に達することが考えられます。
このことから、「今すぐ何かの問題が発生するわけではありませんが、SHA-1は安全性が低下したので、使用を制限し、より強度の高い暗号に移行しましょう」
ということです。
暗号の危殆化
今回のような、「SHA-1の衝突の実現」は、暗号アルゴリズムの危殆化といいます。
「キタイカ」? あまり世間的には流通していない言葉ですね。
れっきとした日本語で、「危険で、あやうい(殆)こと」すなわち「ヤバイ」ということです。
暗号アルゴリズムの危殆化は、新しい攻撃手法の発見や演算能力の飛躍的向上によって、安全性が低下したぞ! ということで、どのタイミングで発表するのかなかなか判断が難しいですね。
暗号アルゴリズム危殆化での事例としては、
映画『イミテーション・ゲーム/エニグマと天才数学者の秘密』で取り上げられたチューリングによるエニグマ暗号の解読ですね。
手に汗握る、演算手法開発と解読時間との闘いです。
エニグマ暗号は、破られたにもかかわらず、戦時下の機密情報の取り扱いであったため長期間にわたって秘匿され、公表されたのは、なんと発見後30年もたってからでした。
今回GoogleとCWI研究所の公表は、天文学的計算量ではありますがSHA-1がネット社会で多様に使用されている現実から、早期に発表されたことは喜ばしいことと思います。
というのも、暗号技術は一般的に情報通信の基盤で利用されているため、すぐに対処が難しいことと、より安全な技術へ移行することに時間を要するからです。
なお、暗号の危殆化は、暗号鍵の危殆化もあります。
鍵の漏えいや、漏えいが疑われる状態になって、その鍵を使用した暗号が解読される「ヤバイ」事態を言います。
この場合は、直ちに、鍵の使用停止と廃棄を行い、その事態を関係者に公表する必要があります。
長期署名、タイムスタンプの重要な役割
「暗号が危殆化したら、せっかく安全に配慮して蓄積してきたデジタル情報は元も子もなくなるのではないか?」
と、ご心配の方もいらっしゃるかもしれません。
ご安心ください。
真電子署名(Advanced Electronic Signature)は、暗号の危殆化を想定して開発された標準です。
常に、暗号強度の優れているタイムスタンプで情報をくるむことで、署名で利用された暗号が危殆化しても、過去の情報を護ることができます。
第10回コラムで触れておりますので、ぜひご一読ください。
タイムスタンプ提供事業者は、常に最先端の暗号アルゴリズムを研究していなくてはなりません。
タイムスタンプはデジタル情報を将来にわたって安全・安心を護るために利用されるものですので、今回のような暗号の危殆化には、とても敏感です。
一般財団法人日本データ通信協会のタイムビジネス信頼・安心認定制度で認定を受けているタイムスタンプ事業者は、この課題を認識して、2007年以降SHA-1の使用を停止し、より安全性の高いSHA-2への移行対応を済ませています。
もちろん、暗号鍵の危殆化防止も万全を期しています。
サービスで利用される秘密鍵は、管理・監視の行き届いた設備の中で、ハードウェアでその機密性を担保するHSM(注)に格納し、鍵の生成、更新、廃棄は、複数人で対応する運用が義務付けられています。
注:Hardware Security Moduleの略。暗号鍵ライフサイクルの保護のために設計された専用の暗号化プロセッサアプライアンス。
次回は5月9日(火)更新予定です。
前の記事を読む
次の記事を読む