Windows
 Computer >> コンピューター >  >> システム >> Windows

「件名に署名が存在しません」と表示される原因と対処法|ドライバー署名エラーを解説

Windows 10 の一部のユーザーは、ドライバーパッケージファイル(.cat ファイルなど)の署名プロパティを確認しようとした際に、「件名に署名が存在しません(No signature was present in the subject)」というエラーメッセージを目にすることがあります。

本記事では、このメッセージが表示される理由と、そのドライバーパッケージファイルで問題を解消するために試せる対策について詳しく解説します。

「件名に署名が存在しません」と表示される原因と対処法|ドライバー署名エラーを解説

署名の問題が発生する背景

テスト対象のコンピューターがインターネットに接続されていない場合、OS が未知の署名の問題や「ドライバーが未署名である」といった問題を抱えることがあります。これは、新しい証明書(ルート証明書の更新情報)を自動的にダウンロードできないためです。

一方、インターネットに接続されている環境では、ドライバーのインストール時に最新の証明書が自動的にダウンロードされるため、通常このような問題は発生しません。また、オフライン環境の場合でも、CA(認証局)ベンダーに問い合わせることで、問題の解決をサポートしてもらえるケースがあります。

関連情報: sigverif ユーティリティを使用して未署名のドライバーを特定する方法も参考になります。

「件名に署名が存在しません」エラーの主な原因

このエラーの典型的な原因は、SHA256 アルゴリズムを使用する新しい VeriSign 発行の署名証明書でカタログファイル(.cat)に署名した場合です。署名済みの cat ファイルを開いて署名を確認すると、「件名に署名が存在しません」というメッセージが表示されることがあります。

これは、Windows 側が古いハッシュアルゴリズムや特定の形式の署名を正しく検証できないことが関係しています。

対処法1:SHA1 証明書への無償交換を依頼する

VeriSign に対して、SHA256 ではなく SHA1 ハッシュアルゴリズムで署名された代替証明書を無料で発行してもらうよう依頼することで、問題を解消できる場合があります。

対処法2:二重署名(デュアルサイン)を行う

両方の証明書を保持したい場合は、別途 SHA1 証明書を購入し、以下のように二重署名を行う方法もあります。

Signtool sign /fd sha256 /ac C:\MyCrossCert\Crosscert.cer /s my /n “MyCompany Inc. “ /ph /as /sha1 ZZ...ZZ C:\DriverDir\toaster.SYS

ここで「ZZ…ZZ」は、二次署名に使用する証明書のハッシュ値を指します。また、タイムスタンプを付与するには /tr オプションを追加してください。

注意: 二重署名が可能なのは .sys ファイルのみです。これは .sys ファイルが PE(Portable Executable)形式であるためです。カタログファイル(.cat)は二重署名できません。

知っておきたい重要ポイント:SHA1 の廃止

Microsoft は 2016年1月1日から SHA1 証明書の使用を非推奨としました。これ以降、すべての CA ベンダーは SHA256 ハッシュアルゴリズムを使用した署名証明書を発行する必要があります。

また、2016年1月1日以降、Windows はタイムスタンプなしの SHA1 コード署名証明書を受け付けなくなりました。そのため、現在は SHA256 とタイムスタンプの併用が標準的な署名手法となっています。

KB4579311 適用後の注意点

Microsoft はさらに、更新プログラム KB4579311 をインストールした後、一部のサードパーティ製ドライバーをインストールする際に Windows 10 が警告を表示する可能性があることを明示しています。公式の説明は以下の通りです。

この問題は、検証中に Windows が不適切な形式のカタログファイルを検出した場合に発生します。今回のリリース以降、Windows はカタログファイル内の DER エンコードされた PKCS#7 コンテンツの有効性を要求します。カタログファイルは、X.690 の SET OF メンバーに関する DER エンコーディングを記述したセクション 11.6 に従って署名されている必要があります。

つまり、古い形式や不正な形式で作成されたカタログファイルは、最新の Windows 更新プログラム適用後に拒否される可能性があるため、ドライバー開発者は署名形式の見直しが必要です。

まとめ

「件名に署名が存在しません」エラーは、主に SHA256/SHA1 証明書の取り扱いやカタログファイルの署名形式に起因する問題です。証明書の交換依頼や二重署名、適切な Signtool オプションの使用によって解消できます。ドライバーを配布・インストールする際は、最新の Microsoft の署名要件に準拠していることを常に確認しましょう。

関連記事: 「Windows にはデジタル署名されたドライバーが必要です」エラーの対処法もあわせてご覧ください。

  1. Windows 10でドライバー署名の強制を無効にする方法!デジタル署名検証エラー0xc0000428の解決策

    デジタル署名(Digital Signatures)は、ソフトウェアの発行元やハードウェアベンダーがMicrosoftによって信頼され、検証済みであることを保証する仕組みです。しかし、すべての発行元やベンダーがMicrosoftへの検証費用を支払えるわけではなく、またMicrosoftも日々公開される膨大なドライバーやプログラムをすべて検証することはできません。ドライバーがデジタル署名されていない場合、インストール自体が行えず、結果としてそのハードウェアを使用できない事態に陥ります。 このような場合、「このファイルのデジタル署名を検証できませんでした(The Digital Signature

  2. Windows 10でドライバー署名の強制を無効にする方法【一時的・恒久的な手順を解説】

    Windows 8およびWindows 10(64ビット版)では、Microsoftがドライバー署名の強制(Driver Signature Enforcement)機能を導入しました。これは、Microsoftによってデジタル署名されたドライバーのみを読み込めるようにするセキュリティ機能です。デジタル署名は、ソフトウェアの発行元やハードウェアベンダーが信頼できる存在であることをMicrosoftが検証した証となります。 しかし、すべての開発者がMicrosoftへの認証費用を支払えるわけではなく、日々公開される膨大なドライバーやプログラムをMicrosoftがすべて検証することも現実的には困