SHA-1廃止が引き起こす悲劇と対策法〜開発者(Cab署名者)編〜

IT・IT製品TOP > Key Conductors > 山城 章仁(株式会社ディーバ) > SHA-1廃止が引き起こす悲劇と対策法〜開発者(Cab署名者)編〜
この記事をtweetする このエントリーをはてなブックマークに追加

IT現場の道先案内人 Key Conductors

SHA-1廃止が引き起こす悲劇と対策法〜開発者(Cab署名者)編〜

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

 今回は前回までとは趣を変え、Webサーバ管理者ではなく、開発者が注意すべき事柄について説明していきます。 すなわち前回まではサーバー証明書の問題を扱いましたが、今回はコードサイニング証明書の問題を扱います。インターネットでActiveXを配布するためのcabファイルへの署名に関する注意点に触れます。

悲劇1 : インターネットからのダウンロード時に信頼されない?

 SHA-1証明書で2016年以降に新たに署名したcabファイルは、インターネットからのダウンロード時に信頼されません。

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

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

この場合、SHA-2証明書で署名する必要があります。

 なお、2015年12月31日以前にSHA-1証明書で署名したcabファイルは問題ありません。

悲劇2:SHA-2にしたcabファイルは、Vistaではダウンロードできない?

 ファイルダイジェストアルゴリズム・タイムスタンプサーバのダイジェストアルゴリズムをSHA-2にしたcabファイルはVistaではダウンロードできません。

 デジタル署名の詳細では「名前」欄に発行者の名前が認識されているにも関わらず「発行元」が不明な発行者となり、「このファイルには問題があります。」と表示されます。また、付与しているはずのタイムスタンプも「副署名」欄をみると、なかったことにされます。

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

署名のファイルダイジェストアルゴリズムとタイムスタンプサーバダイジェストアルゴリズムは、SHA-1とします。証明書自体はSHA-2である必要があります。

 これはどういうことかというと、署名に使う証明書がどんなアルゴリズムで作られたかという話と、その証明書を用いて自らの作成物にどんなアルゴリズムで署名するかという話は別の話だということです。

 署名に関連するアルゴリズムは、以下の4つがあります。

●証明書のアルゴリズム
●署名のアルゴリズム(ファイルダイジェストアルゴリズム)
●タイムスタンプサーバの証明書のアルゴリズム(タイムスタンプサーバのURLによって間接的に指定)
●タイムスタンプサーバの署名のアルゴリズム(タイムスタンプダイジェストアルゴリズム)

 Micorsoft社が2016年1月1日時点で変更を求めているのは、コードサイニング証明書の署名アルゴリズムのみです。microsoftの説明ページ(英文)においても、ファイルダイジェストアルゴリズムについて、次のように記述しています。

Code signature File Hashes: Microsoft does not require these file hashes to be done using SHA-2. Windows will also not enforce policies on these hashes. If pre-image attacks on SHA-1 become feasible we will reevaluate how the system trusts signatures made with such file hashes.」

 事実、Microsoft社はVistaについて、ファイルダイジェストアルゴリズムとタイムスタンプサーバのダイジェストアルゴリズムについて、SHA-2に対応させるパッチを提供していません。

 コードサイニング証明書の署名アルゴリズムについての脆弱性は、第3者によるなりすましの可能性を示唆しますが、ファイルダイジェストアルゴリズムとタイムスタンプサーバのダイジェストアルゴリズムの脆弱性は署名者の不正行為の可能性は示唆しますが、第三者の不正行為の可能性は示唆しないので、現時点では問題はないようです。

 それでは、ファイルダイジェストアルゴリズムとタイムスタンプサーバダイジェストアルゴリズムをSHA-1とするためにどうするかというと、「SignTool.exe」での署名時に「/fdオプション」と「/tdオプション」でsha1を指定します。既定値がsha1ですので「/fd オプション」と「/tdオプション」をコマンドラインから削除するでも構いません。

悲劇3: 2016年1月1日以降に新たにSHA-1証明書で署名したexeが使えている?

これは悲劇ではありませんが、どう理解してよいか困る部分です。

 実は、SHA-1証明書で署名したexeの署名は条件に行われるわけではありません。SHA-1証明書で署名したexeはwebからダウンロードした場合には署名が無効となりますが、CD-ROM等からインストールした場合は、無効となりません。

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

 マイクロソフトセキュリティアドバイザリ3123479によれば、「Internet Explorer または Microsoft Edge を実行し、2016 年 1月 1 日またはそれ以降にタイムスタンプされた SHA-1 署名済みファイルをインターネットからダウンロードしたお客様向けに、SmartScreen がそのファイルを信頼できないファイルとしてマークします。」という説明がされています。
 具体的には、インターネットから取得されたファイルがSHA-1証明書で署名されている場合にはExplorerでプロパティを確認した際に、画面下に「セキュリティ」項目が表示されるようになり、このケースが署名の無効化対象となります。

 次回は「SHA-1」廃止が引き起こす悲劇と対策法開発者(Officeマクロ署名者)編をお送りします。是非、ご覧下さい。

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

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

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

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


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


30008511


IT・IT製品TOP > Key Conductors > 山城 章仁(株式会社ディーバ) > SHA-1廃止が引き起こす悲劇と対策法〜開発者(Cab署名者)編〜

このページの先頭へ

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

ページトップへ