Windows 10 Anniversary Update で適用されたドライバー署名の新しいポリシーについて
こんにちは。JS です。
以前、ブログ エントリ「Windows 10 と SHA-1 廃止ポリシーによるドライバー署名への影響について」で、Windows 10 で新しくなったドライバーの署名ポリシーについて触れたかと思います。当時はポリシーの事前のご案内であったため、今年 7 月 29 日 にリリースされた Windows 10 Anniversary Update で、そのポリシーが実際に適用されるようになりました。
この適用により、本格的にマイクロソフトの署名が必要となったため、ドライバーの開発者の皆様はこの先どのような対応が可能か、検討しているかと思います。実際、我々サポートチームも、ポリシーがどのように適用され、どのような対応が可能かについて、お問い合わせをいただいております。そのため、皆様のご参考になりますよう、今回のエントリでは、Windows 10 のドライバー署名ポリシーを一度おさらいし、注意点やよくある質問についても触れたいと思います。
Q: Windows 10 Anniversary Update のドライバー ポリシーはどういったものなのか?
A: Windows 10 Anniversary Update では、基本的に、カーネル モードで動作するドライバーは、マイクロソフトより発行された証明書を用いた署名が付与されている必要がございます。 もしマイクロソフトによる署名が付与されていない場合、ドライバーのロード時にポリシーが適用され、ドライバーが動作しません。ただ、Windows 10 Anniversary Update でも、特定の条件を満たしている場合に限り、第三者認証機関より発行された証明書を利用した Authenticode 署名 (自己署名) も有効なドライバー署名として扱われます。
Q: 自分で Authenticode 署名したドライバーは、Windows 10 Anniversary Update でどういうときに使えるのか?
A: 以下のいずれかの条件を満たしている場合に、Authenticode 署名されたドライバーは、Windows 10 Anniversary Update でも利用可能となります。すべての条件を同時に満たす必要はございません。
· 対象の PC が、以前のバージョン (Windows 10 Version 1511 含む) から Windows 10 Anniversary Update (Version 1607) にアップグレードされている場合
· 対象の PC にて、セキュアブートが無効の場合
· Authenticode 署名に利用した、第三者認証機関より発行された証明書が、2015 年 7 月 29 日 以前に発行されたものである場合
· 署名されたドライバーが、OS の起動時にロードされる種類のものである場合 (なお、この例外は OS 起動の失敗を防ぐための一時的な措置であり、将来のバージョンの Windows 10 で変更される可能性があります)
Q: ユーザーモードで動作するドライバーはどうなるか?
A: ユーザーモード ドライバーに対しては、ドライバーの署名ポリシーは、Windows 10 Anniversary Update からの変更点はありません。つまり、引き続き、Authenticode 署名が利用可能です。
Q: マイクロソフトの署名を手に入れるためにはどうすればいいのか?
A: ハードウェア ダッシュボードにドライバーを申請する必要があります。もし、Windows 10 でドライバーを配布する予定で、ダッシュボードのアカウントを所持していない場合は、Microsoft アカウントでログインした上で、以下の URL よりアカウントの登録を行ってください。
Windows ハードウェア デベロッパー センター ダッシュボード
https://developer.microsoft.com/ja-jp/windows/hardware/dashboard-sign-in
マイクロソフトの署名の取得方法に関するご案内は、「Windows 10 と SHA-1 廃止ポリシーによるドライバー署名への影響について」で記載しておりますので、ご参照いただけたら幸いです。また、ハードウェア ダッシュボードに関するご不明な点がありましたら、デベロッパー センター ダッシュボードにて [?] ボタンよりサポート窓口へお問い合わせください。
Q: マイクロソフトではない署名を使ったドライバーでも、問題なくインストールできたが、ポリシーは適用されていないのか?
A: この度の署名ポリシーの変更は、ドライバーのロード時に影響を与えるものとなっております。インストール時における署名の検証動作は、ロード時のものとは別となっており、今回のポリシーの対象には含まれていないため、影響はありません。 このような措置が追加される理由は、インストール時の署名検証が行われないドライバーの種類もあるためです。
現在では一般的な種類となっている PnP ドライバーは、インストールの際に、PnP によるインストール要件が適用され、署名の検証が行われます。また、PnP ドライバーはロード時も署名の検証が続いて行われます。ただ、フィルタードライバーなど、PnP のインストール要件が適用されない種類のドライバーもあり、それらのドライバーはインストール時における署名の検証が含まれておらず、ロード時のみ署名の検証が行われます。そのようなドライバーにも対応するために、Windows 10 Anniversary Update のドライバー署名ポリシーは、ロード時の署名検証にて、マイクロソフトによる署名が付与されているか否かの確認を行います。
Q: 今持っている証明書を使って、自分で最近 署名したドライバーがロードできたが、なぜか?
A: Windows 10 Anniversary Update では、ドライバーの Authenticode 署名に利用した第三者認証機関より発行された証明書が、2015 年 7 月 29 日 以前に発行されたものである場合に、その署名を有効なものとして扱います。署名ポリシーにおける検証の判断材料は、署名された日時ではなく、証明書が発行された日時となります。 もし最近署名したものでも Windows 10 Anniversary Update で動作確認でき、ポリシーの適用状況が判断できなかった場合は、一度、証明書の発行日時をご確認ください。発行日時の手順は、以下の通りとなります。
1. エクスプローラーより、署名がされているファイルに対し右クリックし [プロパティ ] をクリック
2. ファイルのプロパティ画面にて、 [デジタル署名] タブをクリック
3. 「署名の一覧」項目より、確認したい署名を選択し、 [詳細] をクリック
4. 表示される「デジタル署名の詳細」画面にて、 [証明書の表示 ] をクリック
5. 表示される「証明書」画面に記載されている「有効期間」項目が、発行日時に該当します。
以上が Windows 10 Anniversary Update におけるドライバー署名ポリシーに関する現時点での最新のご案内となります。特に「Windows 10 で署名ポリシーが変わったが、具体的にどのように変わったのかイメージがつきにくい」という状況の方たちに、今回のエントリが参考になれば幸いです。