Skip to content

Commit 1af9517

Browse files
authored
Merge pull request #3229 from jad0126/articles-about-driver-code-signing
[AQ] edit pass: articles-about-driver-code-signing
2 parents e355bf7 + d7f04d9 commit 1af9517

5 files changed

Lines changed: 165 additions & 125 deletions

File tree

windows-driver-docs-pr/dashboard/code-signing-attestation.md

Lines changed: 33 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -1,28 +1,28 @@
11
---
22
title: Attestation Sign Windows Drivers
3-
description: Sign a Windows driver by using attestation signing, create and sign the CAB file, submit and validate the signed file in the Partner Center, and test your driver on Windows.
3+
description: Sign a Windows driver by using attestation signing. Create and sign the CAB file, submit and validate the signed file in Partner Center, and test your driver.
44
ms.date: 07/15/2025
55
ms.topic: how-to
66
---
77

88
# Attestation sign Windows drivers
99

10-
This article describes how to sign a driver by using attestation signing. For detailed information and requirements for attestation signing, see [Attestation signed drivers](driver-signing-offerings.md#attestation-signed-drivers-for-testing-scenarios).
10+
This article describes how to sign a driver by using attestation signing.
1111

12-
> [!IMPORTANT]
13-
> As of March 1, 2023, attestation signed drivers that target retail audiences are no longer published on Windows Update. Support continues for attestation-signed drivers when testing scenarios with the **CoDev** or **Test Registry Key / Surface SSRK** options.
12+
> [!NOTE]
13+
> Attestation signed drivers that target retail audiences aren't published on Windows Update. Support continues for attestation-signed drivers when you're testing scenarios with the **CoDev** or **Test Registry Key / Surface SSRK** options.
1414
1515
## Prerequisites
1616

17-
- Read and understand the requirements for [Attestation signed drivers](driver-signing-offerings.md#attestation-signed-drivers-for-testing-scenarios) for testing scenarios.
17+
- Read and understand the requirements for [attestation signed drivers](driver-signing-offerings.md#attestation-signed-drivers-for-testing-scenarios) for testing scenarios.
1818

19-
- Register for the Hardware Developer program. If you aren't registered, follow the steps in [Register for the Microsoft Windows Hardware Developer Program](hardware-program-register.md).
19+
- Register for the Hardware Developer Program. If you aren't registered, follow the steps in [Register for the Microsoft Windows Hardware Developer Program](hardware-program-register.md).
2020

2121
- You must have an extended validation (EV) code signing certificate. Check whether your organization already has a code signing certificate.
2222

23-
- If you have an existing certificate, make the certificate available.
24-
25-
- If your organization doesn't have a certificate, [purchase an EV certificate](code-signing-reqs.md#ev-certificate-signed-drivers).
23+
- If you have an existing certificate, make the certificate available.
24+
25+
- If your organization doesn't have a certificate, [purchase an EV certificate](code-signing-reqs.md#ev-certificate-signed-drivers).
2626

2727
- Download and install the Windows Assessment and Deployment Kit (Windows ADK) by following the process described in [Download and install the Windows ADK](/windows-hardware/get-started/adk-install).
2828

@@ -34,13 +34,13 @@ The following procedure creates a CAB files submission by using the [Echo driver
3434

3535
A typical CAB file submission must contain the following components:
3636

37-
- The driver itself, for example *Echo.sys*.
37+
- The driver itself (for example, *Echo.sys*).
3838

3939
- The driver INF (*.inf*) file used by the dashboard to facilitate the signing process.
4040

41-
- The symbol file used for debugging information, such as *Echo.pdb*. The *.pdb* file is required for Microsoft's automated crash analysis tools.
41+
- The symbol file used for debugging information, such as *Echo.pdb*. The *.pdb* file is required for Microsoft automated crash analysis tools.
4242

43-
- Catalog *.CAT* files are required and used for company verification only. Microsoft regenerates catalog files and replaces any catalog files submitted previously.
43+
- Catalog (*.cat*) files are required and used for company verification only. Microsoft regenerates catalog files and replaces any catalog files submitted previously.
4444

4545
> [!NOTE]
4646
> Each driver folder in your CAB file must support the same set of architectures. For example, they must support x86, x64, or they must all support both x86 and x64.
@@ -73,7 +73,7 @@ To create the CAB file, follow these steps:
7373
/V[n] Verbosity level (1..3).
7474
```
7575

76-
1. Prepare a cab file DDF input file. For the Echo driver in this example, the input might be similar to the following code:
76+
1. Prepare a CAB file device description framework (DDF) input file. For the Echo driver in this example, the input might be similar to the following code:
7777

7878
```ddf
7979
;*** Echo.ddf example
@@ -120,13 +120,13 @@ To create the CAB file, follow these steps:
120120
Throughput: 86.77 Kb/second
121121
```
122122

123-
1. Locate the CAB file in the `Disk1` subdirectory. You can select the CAB file in File Explorer to verify it contains the expected files.
123+
1. Locate the CAB file in the `Disk1` subdirectory. You can select the CAB file in File Explorer to verify that it contains the expected files.
124124

125125
## Sign the CAB file with your EV certificate
126126

127-
The next procedure step is to sign the CAB file with your EV certificate.
127+
The next step is to sign the CAB file with your EV certificate.
128128

129-
Use the process recommended by your EV certificate provider. For example, to sign your CAB file with an SHA256 Certificate/Digest Algorithm/Timestamp, enter the following command:
129+
Use the process recommended by your EV certificate provider. For example, to sign your CAB file with an SHA256 timestamp, enter the following command:
130130

131131
```cmd
132132
C:\Echo> SignTool sign /s MY /n "Company Name" /fd sha256 /tr http://sha256timestamp.ws.symantec.com/sha256/timestamp /td sha256 /v "C:\Echo\Disk1\Echo.cab"
@@ -135,17 +135,17 @@ C:\Echo> SignTool sign /s MY /n "Company Name" /fd sha256 /tr http://sha256times
135135
> [!IMPORTANT]
136136
> Remember to use industry best practices to manage the security of the EV code signing process.
137137
138-
## Submit the EV signed Cab file in the Partner Center
138+
## Submit the EV signed CAB file in Partner Center
139139

140-
After you sign the CAB file, you're ready to submit the file in the Partner Center:
140+
After you sign the CAB file, you're ready to submit the file in Partner Center:
141141

142-
1. Go to the [Partner Center hardware dashboard](https://partner.microsoft.com/dashboard/hardware/Search) and sign in with your credentials.
142+
1. Go to the [Partner Center hardware dashboard](https://partner.microsoft.com/dashboard/hardware/Search), and sign in with your credentials.
143143

144-
1. Select **Submit new hardware**:
144+
1. Select **Submit new hardware**.
145145

146146
:::image type="content" source="./images/code-signing-attestation/hardware-list.png" alt-text="Screenshot of the list of hardware submissions.":::
147147

148-
1. In the **Packages and signing properties** section, enter a product name for your driver submission. This name can be used to search for and organize your driver submissions.
148+
1. In the **Packages and signing properties** section, enter a product name for your driver submission. Use this name to search for and organize your driver submissions.
149149

150150
> [!NOTE]
151151
> The name is visible when you share your driver with another company.
@@ -154,21 +154,21 @@ After you sign the CAB file, you're ready to submit the file in the Partner Cent
154154

155155
1. For the **Requested Signatures** option, select the signatures to include in your driver package:
156156

157-
:::image type="content" source="./images/code-signing-attestation/attestation-flow.png" alt-text="Screenshot showing the options for submitting the Echo driver for signing.":::
157+
:::image type="content" source="./images/code-signing-attestation/attestation-flow.png" alt-text="Screenshot that shows the options for submitting the Echo driver for signing.":::
158158

159159
1. Select **Submit** at the bottom of the page.
160160

161-
1. After the signing process completes, download your signed driver from the hardware dashboard.
161+
1. After the signing process finishes, download your signed driver from the hardware dashboard.
162162

163-
## Validate the driver is properly signed
163+
## Validate that the driver is properly signed
164164

165-
Confirm your driver was properly signed with these steps:
165+
Confirm that your driver is properly signed with these steps:
166166

167167
1. After you download the submission file, extract the driver file.
168168

169169
1. Open a Command Prompt window with Administrator privileges.
170170

171-
1. Enter the following command to verify the driver is signed as expected:
171+
1. Enter the following command to verify that the driver is signed as expected:
172172

173173
```cmd
174174
C:\Echo> SignTool verify Echo.Sys
@@ -180,23 +180,23 @@ Confirm your driver was properly signed with these steps:
180180
C:\Echo> SignTool verify /pa /ph /v /d Echo.Sys
181181
```
182182

183-
1. To confirm the EKUs of the driver complete the following steps:
183+
1. To confirm the Enhanced Key Usages (EKUs) of the driver, complete the following steps:
184184

185185
1. Open Windows Explorer and locate the binary file. Right-click the file and select **Properties**.
186186

187-
1. On the **Digital Signatures** tab, select the listed item in the Signature list.
187+
1. On the **Digital Signatures** tab, select the listed item in the signature list.
188188

189189
1. Select **Details**, and then select **View Certificate**.
190190

191191
1. On the **Details** tab, select **Enhanced Key Usage**.
192192

193193
The driver uses the following process when it resigns the driver:
194194

195-
1. Append a Microsoft SHA2 embedded signature.
195+
1. Append a Microsoft SHA-2 embedded signature.
196196

197197
1. If the driver binaries are embedded signed by the customer with their own certificates, overwrite the signatures.
198198

199-
1. Create and sign a new catalog file with an SHA2 Microsoft certificate. The catalog replaces any existing catalog provided by the customer.
199+
1. Create and sign a new catalog file with an SHA-2 Microsoft certificate. The catalog replaces any existing catalog provided by the customer.
200200

201201
## Test your driver on Windows
202202

@@ -210,17 +210,15 @@ Install the sample driver and test it on Windows:
210210
C:\Echo> devcon install echo.inf root\ECHO
211211
```
212212

213-
1. Confirm the driver install process doesn't show the following error message:
214-
215-
> _Windows can't verify the publisher of this driver software_ message._
213+
1. Confirm that the driver install process doesn't show the following error message: "Windows can't verify the publisher of this driver software."
216214

217215
## Create a submission with multiple drivers
218216

219217
Submit multiple drivers at the same time by following these steps:
220218

221-
1. Create a subdirectory for each driver:
219+
1. Create a subdirectory for each driver.
222220

223-
:::image type="content" source="./images/code-signing-attestation/multiple-driver-signing.png" border="false" alt-text="Diagram showing an example driver signing directory structure.":::
221+
:::image type="content" source="./images/code-signing-attestation/multiple-driver-signing.png" border="false" alt-text="Diagram that shows an example driver signing directory structure.":::
224222

225223
1. Prepare a CAB file DDF input file that references the subdirectories. For this example, the input might be similar to the following code:
226224

windows-driver-docs-pr/dashboard/code-signing-cert-manage.md

Lines changed: 21 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -9,29 +9,40 @@ ms.topic: how-to
99

1010
As a Partner Center administrator, you're responsible for adding, updating, and retiring driver certificates when they expire. This article describes how to get, add, and update code signing certificates to the hardware dashboard.
1111

12-
For more information on rules for driver signing, see [Driver Signing changes in Windows 10, version 1607](https://techcommunity.microsoft.com/blog/windowshardwarecertification/driver-signing-changes-in-windows-10-version-1607/364894) in the [Windows Hardware Certification blog](https://techcommunity.microsoft.com/category/winhec-online/blog/windowshardwarecertification).
12+
For more information on rules for driver signing, see [Driver signing changes in Windows 10, version 1607](https://techcommunity.microsoft.com/blog/windowshardwarecertification/driver-signing-changes-in-windows-10-version-1607/364894) in the [Windows Hardware Certification blog](https://techcommunity.microsoft.com/category/winhec-online/blog/windowshardwarecertification).
1313

1414
## Prerequisites
1515

16-
Register for the Hardware Developer program. If you're not registered, follow the steps in [How to register for the Microsoft Windows Hardware Developer Program](hardware-program-register.md).
16+
Register for the Hardware Developer Program. If you're not registered, follow the steps in [Register for the Microsoft Windows Hardware Developer Program](hardware-program-register.md).
1717

1818
## Get or renew a code signing certificate
1919

2020
To get a new code signing certificate:
2121

2222
1. Determine which certificate you need. To help you choose a certificate, see [Driver signing requirements](code-signing-reqs.md).
23+
2324
1. If you're reusing a certificate, move on to step 5.
25+
2426
1. If your organization doesn't have a certificate, you need to [purchase an EV certificate from a trusted vendor](code-signing-reqs.md#where-to-get-ev-code-signing-certificates).
25-
1. Once the certificate authority verifies your contact information and your certificate purchase is approved, follow their directions to retrieve the certificate.
26-
1. Go to [Partner Center](https://partner.microsoft.com/dashboard) and sign in using administrator credentials.
27-
1. Select the gear icon in the upper right, then select **Account Settings**, then **Manage Certificates** on the left side of the screen.
28-
1. Select **Add a new certificate**, then select **Next**.
29-
1. Download *Signablefile.bin* and sign it with the new digital certificate for your company using [SignTool](/windows/win32/seccrypto/signtool) with the `/fd sha256` switch and appropriate SHA-2 timestamp.
27+
28+
1. After the certificate authority verifies your contact information and your certificate purchase is approved, follow their directions to retrieve the certificate.
29+
30+
1. Go to [Partner Center](https://partner.microsoft.com/dashboard) and sign in by using your administrator credentials.
31+
32+
1. Select the gear icon in the upper right, select **Account Settings**, and then select **Manage Certificates** on the left side of the screen.
33+
34+
1. Select **Add a new certificate**, and then select **Next**.
35+
36+
1. Download *Signablefile.bin*. Sign it with the new digital certificate for your company by using [SignTool](/windows/win32/seccrypto/signtool) with the `/fd sha256` switch and the appropriate SHA-2 timestamp.
37+
3038
1. Upload the signed file to Partner Center.
3139

3240
## Retire a code signing certificate
3341

34-
1. Go to [Partner Center](https://partner.microsoft.com/dashboard) and sign in using administrator credentials.
35-
1. Select the gear icon in the upper right, then select **Developer settings**, then **Manage Certificates** on the left pane.
36-
1. Move through the page to find the certificate you wish to remove.
42+
1. Go to [Partner Center](https://partner.microsoft.com/dashboard) and sign in by using your administrator credentials.
43+
44+
1. Select the gear icon in the upper right, select **Developer settings**, and then select **Manage Certificates** on the left pane.
45+
46+
1. Find the certificate that you want to remove.
47+
3748
1. Under the **Action** column of the certificate, select **Remove**.
Lines changed: 20 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,43 +1,52 @@
11
---
2-
title: Driver code signing requirements
3-
description: Driver code signing requirements
2+
title: Driver Code Signing Requirements
3+
description: This article describes requirements for code signing your driver.
44
ms.date: 05/29/2025
55
ms.topic: best-practice
66
---
77

88
# Driver code signing requirements
99

10-
Your drivers must be signed with a certificate before you submit them to the hardware dashboard. Your organization can associate any number of certificates with its dashboard account, and each one of your submissions must be signed with any one of those certificates. There's no restriction on the number of certificates (both extended validation (EV) and Standard) associated with your organization.
10+
You must sign your drivers with a certificate before you submit them to the hardware dashboard. Your organization can associate any number of certificates with its dashboard account, and each one of your submissions must be signed with any one of those certificates. Whether you have extended validation (EV) or standard certificates, there's no restriction on the number of certificates associated with your organization.
1111

1212
This article provides general information on the types of code signing available for your drivers, and the associated requirements for those drivers.
1313

14-
For more extensive information on driver signing requirements see the following pages:
14+
For more extensive information on driver signing requirements, see:
15+
16+
- [Driver signing changes in Windows 10](https://techcommunity.microsoft.com/blog/windowshardwarecertification/driver-signing-changes-in-windows-10/364859)
17+
18+
- [Driver signing changes in Windows 10, version 1607](https://techcommunity.microsoft.com/blog/windowshardwarecertification/driver-signing-changes-in-windows-10-version-1607/364894)
1519

16-
- [Driver Signing Changes in Windows 10](https://techcommunity.microsoft.com/blog/windowshardwarecertification/driver-signing-changes-in-windows-10/364859)
17-
- [Driver Signing changes in Windows 10, version 1607](https://techcommunity.microsoft.com/blog/windowshardwarecertification/driver-signing-changes-in-windows-10-version-1607/364894)
1820
- [Update on Sysdev EV Certificate requirement](https://techcommunity.microsoft.com/blog/windowshardwarecertification/update-on-sysdev-ev-certificate-requirement/364879)
1921

2022
## Where to get EV code signing certificates
2123

22-
EV Code signing certificates can be purchased from one of the following certificate authorities:
24+
You can purchase EV code signing certificates from one of the following certificate authorities:
2325

2426
- [Certum EV code signing certificate](https://shop.certum.eu/certum-ev-code-sigining.html)
27+
2528
- [DigiCert EV code signing certificate](https://www.digicert.com/signing/code-signing-certificates)
29+
2630
- [GlobalSign EV code signing certificate](https://go.microsoft.com/fwlink/p/?LinkId=620888)
31+
2732
- [IdenTrust EV code signing certificate](https://www.identrust.com/digital-certificates/trustid-ev-code-signing)
33+
2834
- [Sectigo (formerly Comodo) EV code signing certificate](https://www.sectigo.com/ssl-certificates-tls/code-signing)
35+
2936
- [SSL.com EV code signing certificate](https://www.ssl.com/certificates/ev-code-signing/)
3037

3138
## EV certificate signed drivers
3239

33-
Your Hardware Dev Center dashboard account must have at least one EV certificate associated with it to submit binaries for attestation signing or to submit binaries for HLK certification.
40+
To submit binaries for attestation signing, your Hardware Dev Center dashboard account must have at least one EV certificate associated with it. This requirement is also true if you want to submit binaries for Windows Hardware Compatibility Program (WHCP) certification.
3441

3542
The following rules apply:
3643

3744
- Your registered EV certificate must be valid at the time of submission.
38-
- While Microsoft strongly recommends that you sign individual submissions with an EV certificate, you can alternatively sign submissions with an Authenticode signing certificate that is also registered to your Partner Center account.
39-
- All certificates must be SHA2 and signed with the `/fd sha256` SignTool command line switch.
45+
46+
- Although Microsoft strongly recommends that you sign individual submissions with an EV certificate, you can sign submissions with an Authenticode signing certificate. The Authenticode certificate must be registered to your Partner Center account.
47+
48+
- All certificates must be SHA-2, and signed with the `/fd sha256` SignTool command line switch.
4049

4150
If you already have an approved EV certificate from a certificate authority, you can use it to establish a Partner Center account. If you don't have an EV certificate, choose [one the certificate authorities](#where-to-get-ev-code-signing-certificates) and follow their directions for purchase.
4251

43-
Once the certificate authority verifies your contact information and your certificate purchase is approved, follow their directions to retrieve the certificate.
52+
After the certificate authority verifies your contact information and your certificate purchase is approved, follow their directions to retrieve the certificate.

0 commit comments

Comments
 (0)