デジタル署名
デジタル署名は、Microsoft 公開キー インフラストラクチャ テクノロジに基づいており、信頼された証明機関 (CA) のインフラストラクチャと組み合わせた Microsoft Authenticode に基づいています。 業界標準に基づく Authenticode を使用すると、ベンダーまたはソフトウェア発行元は、CA によって発行されたコード署名デジタル証明書を使用して、ファイルまたはファイルのコレクション (ドライバー パッケージなど) に署名できます。
Windows では、有効なデジタル署名を使用して次のことを確認します。
ファイルまたはファイルのコレクションが署名されていること。
信頼できる者の署名があること。
署名者を認証した証明機関が信頼性。
ファイルのコレクションは、発行後に変更されていないこと。
たとえば、ドライバー パッケージのこの署名プロセスには、次のものが含まれます。
発行元が CA から X.509 デジタル証明書を取得します。 Authenticode 証明書は、署名証明書とも呼ばれます。 署名認定資格証は、発行元を識別するデータのセットであり、CA が発行元の ID を検証した後にのみ CA によって発行されます。 CA には、Microsoft CA、サード パーティの商用 CA、またはエンタープライズ CA を指定できます。
署名証明書は、ドライバー パッケージのカタログ ファイルに署名したり、ドライバー ファイルに署名を埋め込んだりするために使用されます。 信頼された発行元と信頼できる CA を識別する証明書は、Windows にメインされている証明書ストアにインストールされます。
署名証明書には、秘密キーと公開キー (キー ペアと呼ばれる) が含まれています。 秘密キーは、ドライバー パッケージのカタログ ファイルに署名したり、ドライバー ファイルに署名を埋め込んだりするために使用されます。 公開キーは、ドライバー パッケージのカタログ ファイルの署名またはドライバー ファイルに埋め込まれている署名を確認するために使用されます。
カタログ ファイルに署名したり、署名をファイルに埋め込んだりするには、署名プロセスによって最初にファイルの暗号化ハッシュ (拇印) が生成されます。 その後、署名プロセスによって秘密キーでファイルの拇印が暗号化され、拇印がファイルに追加されます。
署名プロセスでは、署名証明書を発行した発行元と CA に関する情報も追加されます。 デジタル署名は、ファイルの拇印が生成されるときに処理されないファイルのセクション内のファイルに追加されます。
ファイルのデジタル署名を確認するために、Windows は発行元と CA に関する情報を抽出し、公開キーを使用して暗号化されたファイルの拇印を復号化します。
Windows は、次の条件に該当する場合にのみ、ファイルの整合性と発行元の信頼性を受け入れます。
- 復号化された拇印が、ファイルの拇印と一致している。
- 発行元の証明書は、信頼された発行元の証明書ストアにインストールされること。
- 証明書を発行した証明機関 (CA) の ルート証明書が、信頼されたルート証明機関の証明書ストアにインストールされていること。
プラグ アンド プレイ (PnP) デバイスのインストールでドライバー パッケージのカタログ ファイルのデジタル署名を使用する方法の詳細については、「デジタル署名と PnP デバイスのインストール」を参照してください。」
Microsoft 公開キー インフラストラクチャ テクノロジ、コード署名、デジタル署名の詳細については、「コード署名とコード署名のベスト プラクティスの概要」を参照してください。