知らなきゃマズい!?「SHA-1」廃止問題を解説

IT・IT製品TOP > Key Conductors > 山城 章仁(株式会社ディーバ) > 知らなきゃマズい!?「SHA-1」廃止問題を解説
この記事をtweetする このエントリーをはてなブックマークに追加

IT現場の道先案内人 Key Conductors

知らなきゃマズい!?「SHA-1」廃止問題を解説

エンドポイントセキュリティ 2016/02/03

誰に関係がある話でしょうか?

 「SHA-1」廃止問題とその対策法について、今回から4回にわたって解説させていただきます。はじめに、この「SHA-1」廃止問題をご存知でしたか?もしご存知なければ、主に次の方々には非常に関連する問題ですので、是非ともご確認いただければと思います。

(a) https:// で始まるWebの管理者
あるいは
(b) プログラム(cab/exe/Officeマクロetc)の署名担当者

どのような問題でしょうか?

 WebサーバのURLが「https://」ではじまる場合、すなわち、SSL通信を行っている場合、サーバー管理者はサーバー証明書を購入し、Webサーバにインストールする必要があります。このサーバー証明書を購入する際の「ハッシュアルゴリズム」の選択肢のうち「SHA-1」という選択肢がいままで主流だったのですが、これがあるタイミングから業界全体としてこの選択肢を指定したサーバー証明書を無効とみなすという制度変更になります。
 すなわち、ユーザはあなたのWebを閲覧できなくなるのです。

※会員登録いただくと図をご覧いただけます。
会員登録はこちら(無料)

 またサーバー証明書のみならず、コードサイニング証明書についても、同様にあるタイミングから「SHA-1」の選択肢を指定したコードサイニング証明書を無効とみなすという制度変更になります(ただし2016年以降署名され、インターネットにアップロードされたファイルに限ります)。
 すなわち、あなたがホームページで公開しているプログラムは動かなくなります。

※会員登録いただくと図をご覧いただけます。
会員登録はこちら(無料)


※会員登録いただくと図をご覧いただけます。
会員登録はこちら(無料)

※会員登録いただくと図をご覧いただけます。
会員登録はこちら(無料)


※会員登録いただくと図をご覧いただけます。
会員登録はこちら(無料)


どのような経緯があるのでしょうか?

 上記の通り、単純に選択の余地なく対応せざるを得ない問題ですので、経緯を知っても判断に影響は与えないのですが、それでも、理由も知らずに制度が変更されるのでは、納得感がなく精神衛生上よくありません。

 問題の詳細と対応策は次回に譲って、今回は納得感が得られる程度に、この問題の経緯を、以下、順を追ってご説明したいと思います。

「SHA-1」とは何でしょうか?

 「SHA-1」とは大まかにいって、データ全体の構成をみて、データをユニークな20バイトのIDで識別する技術です。データの内容が同じであれば、いつ何度やっても100%の再現性で同じ20バイトのIDを振ることができます。また、データの一部でも変更すると、もう元データとは違うデータですから、それに対するIDはまったく別のものになるという技術です。どんな長さのデータでも、たった20バイトでユニークなIDを表現することができます。

※会員登録いただくと図をご覧いただけます。
会員登録はこちら(無料)

 でもちょっと待って下さい。巨大な長さが20バイトになって、ユニークになるって本当でしょうか? この規格が20バイトではなく、2バイトのIDを振る規格だったら、256^2 = 65536通りです。世の中すべてのデータが65536通りのIDで識別できるわけがありません。

 では、これが256^20通りなら、なぜよいのでしょうか? そうです、これは程度問題です。でも、256^20通りは、天文学的な数字です。現実的には、IDが重複することはありえません。

「SHA-1」が証明書と何の関係があるのでしょうか?

 「SHA-1」が何なのかは分かりました。でも、これが証明書と何の関係があるのでしょうか?実は我々が購入する証明書とは「証明書+ルート証明機関の署名」です。すなわち、我々の存在に対して、証明書業者がそれは真正であると第三者機関として審査を通した証として、電子的に署名します。紙の証明書に発行者のハンコを押してもらうイメージですね。

 このとき実は、ルート証明機関は、証明書に対して署名する代わりに、証明書の「SHA-1」によるIDに対して署名しています。「SHA-1」によるIDは元データに対するIDですから、元データに署名するのもIDに署名するのも同じことです。

なぜ「SHA-1」を廃止するのでしょうか?

 IDに署名するのであれば、もしIDが重複する異なるデータを作ることができれば、ルート機関に署名された証明書の証明書部分を入れ替えることが可能となります。でもそれは証明書の偽造を意味します。以下の4ステップが実現すれば、あるID採番方式はもう安全とは言えなくなります。

(1) 同じIDをもつ複数のデータをみつけることに成功する。それらは有意なデータではない。

(2)特定の有意なデータに対して、同じIDをもつ有意でないデータをみつけることに成功する。

(3) 特定の有意なデータに対して、同じIDをもつ有意なデータを作ることに成功する。

(4) 証明書の偽造に成功する。


 実際、かつて「SHA-1」同様に廃止された「MD5」という方式はこのやり方で証明書の偽造が可能なことが研究者によって実演されました(参考外部URL)。

 「SHA-1」についてIDが重複する異なるデータは見つからないはずでしたが、その根拠は2^20という天文学的なIDの大きさがあるからです。しかし、GPUの進化とクラウドの進化が、そのデータの探索を可能にしつつあり、現在、上記(1)の段階が研究者によって達成されてしまいました(参考外部URL)。これを受けて、業界は「SHA-1」の廃止を決定しました(参考外部URL)。

 「SHA-1」を存続して上記(4)が達成されれば、それは犯罪集団にとって任意の証明書を作ることができることを意味し、「https」の仕組み全体が揺らぐことになります。そうなれば、あなたがあなたのサイトをどう防御しようが偽サイトの作成を防げません。

 以上がこの問題の大まかな経緯です。

 いかがでしたでしょうか?次回からは「SHA-1」廃止が引き起こす悲劇と対策法として「サーバー運用者編」「開発者(Cab署名者)編」「開発者(Officeマクロ署名者)編」と順を追って、未対応によって起こりうる問題とその対策法を紹介していきます。是非、ご覧下さい。

会員限定で「読者からのコメント」が読み書きできます! 「読者からのコメント」は会員限定の機能。会員登録を行い、ログインすると読者からのコメントが読み書きできるようになります。

会員登録(無料)・ログイン

Myリストへ 印刷用ページへ

この記事をtweetする このエントリーをはてなブックマークに追加


この寄稿記事に掲載している情報は、掲載日時点での情報となります。内容は変更となる場合がございますのでご了承下さい。また、「Key Conductors」の寄稿記事及び当該記事に寄せられたコメントについては、執筆者及びコメント投稿者の責任のもと掲載されているものであり、当社が、内容の最新性、真実性、合法性、安全性、適切性、有用性等を保証するものではありません。


30008509


IT・IT製品TOP > Key Conductors > 山城 章仁(株式会社ディーバ) > 知らなきゃマズい!?「SHA-1」廃止問題を解説

このページの先頭へ

キーマンズネットとは
株式会社アバントのグループ企業である株式会社ディーバにて連結会計パッケージソフトDivaSystemの帳票エンジンDivaReporterおよびExcel関数エンジンFormula-Xの設計・開発に従事。主に C++ および Excel VBAが専門分野。ニッチな技術分野の掘り下げに深い関心を持っています。

ページトップへ