cancel
Showing results for 
Search instead for 
Did you mean: 

SHA-256を使用したデジタル署名はWindows VistaおよびWindows Server 2008で無効になる

SHA-256を使用したデジタル署名はWindows VistaおよびWindows Server 2008で無効になる

Summary

InstallShield 2015でSHA-256を使用したデジタル署名をおこなったインストーラはWindows VistaおよびWindows Server 2008で認証されません。

Symptoms

InstallShield 2015でSHA-256によりデジタル署名をおこなったインストーラはWindows VistaおよびWindows Server 2008で実行できません。これらのOS上にインストーラ・ファイルのプロパティ・ダイアログの「デジタル署名の詳細」には”デジタル署名が有効ではありません”と表示されます。
 
User-added image
 
この問題により、インストール時に以下のエラーが発生する場合があります。

Error 1330: A file that is required cannot be installed because the cabinet file <PATH_TO_CAB_FILE> has an invalid digital signature.

Cause

2016年1月1日より、Windows 7以降のバージョン(Windows Server製品を含む)はSHA-1によりデジタル署名され、かつ、署名された日付が2016年1月1日以降のコードについて有効とみなさないことがマイクロソフト社よりアナウンスされています。2017年1月1日以降は、上記マシン上では、SHA-1によって署名された場合、コードはタイムスタンプ署名をもたないものとして扱われます。

これに対応するためInstallShield 2015では、ビルド時のインストーラとファイルの署名方法を変更し、SHA-256によるデジタル署名をサポートいたしました。プロジェクトがSHA-256によるデジタル署名をおこなうように設定されると、InstallShiledはSHA-256のハッシュ関数を使用してファイルを署名します。しかしながら、Windows VistaおよびWindows Server 2008ではSHA-256によるデジタル署名が認証できないため、本問題が発生しました。

Steps to Reproduce

1. 新しい「基本のMSIプロジェクト」を作成します。
2. ファイルをプロジェクトに追加します。
3. [メディア]-[リリース]に新しいリリースを追加します。
4. 作成したリリースの署名タブを開きます。
5. 「出力ファイルに署名する」に"Setup.exe”を選択します。
6. 「デジタル証明書情報」に.pfxファイルまたは証明書ストアよりSHA-256の証明書を指定します。
7. 「証明書パスワード」などのその他の情報を指定します。
8. リリースをビルドします。
9. Windows 7 かWindows 2008 R2以降のOSにデジタル証明書(.cer)をインストールします。
10. Setup.exeを右クリックし、「プロパティ」を開き、「デジタル署名」タブを選択します。
11. 「デジタル署名の詳細」を開き、「このデジタル署名は問題ありません」と表示されることを確認します。
12. Windows VistaまたはWindows Server 2008上で9-10のステップをおこなうと、「デジタル署名が有効ではありません」と表示されます。

Workaround

本問題は、バグ番号#IOJ-1741079にて管理されています。
本問題を回避するには、SHA-1によるデジタル署名をおこなうように、InstallShield 2015にSHA-1の証明書を指定するか、より古いバージョンのInstallShieldを利用して頂く必要があります。InstallShield 2015より古いバージョンのInstallShieldではデジタル署名にSHA-1を使用しますので本問題は関係ありません。尚、InstallShield 2015でSHA-1を指定するとビルド時に-7346の警告が発生します。

Additional Information

SHA-256についてのマイクロソフト社のポリシーとWindows VistaおよびWindows Server 2008がSHA-1を必要とすることについての詳しい情報は以下の文書をご覧ください。
 Windows Enforcement of Authenticode Signing and Timestamping

InstallShield 2015がどのようにデジタル署名をサポートするかについては、InstallShield 2015 Release Notesの"Support for SHA-256 Digital Certificates"のセクションをご覧ください。

Tags (1)