デジタル署名と Windows インストーラー

Windows インストーラーでは、破損したリソースの検出にデジタル署名を使用できます。 署名者証明書を、パッケージによってインストールされる外部リソースの署名者証明書と比較できます。 デジタル署名、デジタル証明書、および WinVerifyTrust の用途の詳細については、Microsoft Windows ソフトウェア開発キット (SDK) の「セキュリティ」セクションを参照してください。

Windows インストーラーでは、Windows インストーラー パッケージ、変換、パッチ、マージ モジュール、外部キャビネット ファイルでデジタル署名を使用できます。 Windows インストーラーは、Microsoft Windows XP のソフトウェア制限ポリシーと統合されています。 ポリシーを作成し、特定の署名者証明書や発行元など、さまざまな条件に基づいてインストールを許可または禁止できます。 Windows インストーラーは、CryptoAPI バージョン 2.0 がインストールされているすべてのプラットフォームで、外部キャビネット ファイルの署名検証を実行できます。

Windows インストーラー SDK で提供されているサンプルの Setup.exe ブートストラップは、インストールを始める前に Windows インストーラー パッケージで署名チェックを実行することに注意してください。

管理インストールを実行すると、パッケージからデジタル署名が削除されます。 管理インストールでは、AdminProperties ストリームを追加するためにインストール パッケージが変更され、そのために元のデジタル署名が無効になります。 管理者はパッケージに再署名できます。

管理インストールにパッチを適用しても、パッケージからデジタル署名が削除されます。 理由は、管理インストールのパッチを適用されたインストール パッケージに、変更が保持されるためです。 管理者はパッケージに再署名できます。

Windows インストーラー バージョン 3.0 以降では、ユーザー アカウント制御 (UAC) のパッチ適用により、管理者以外のユーザーもコンピューターごとのコンテキストでインストールされたアプリケーションにパッチを適用できます。 UAC のパッチ適用は、MsiPatchCertificate テーブルに署名者証明書を指定し、同じ証明書を使用してパッチに署名することで有効になります。

詳しくは、「デジタル署名と外部キャビネット ファイル」、「Windows インストーラーとソフトウェア制限ポリシー」、「完全に検証された署名付きインストールの作成」、「Windows インストーラーでの URL ベースのインストールの例」をご覧ください。