Skip to content

Commit 3beb6c5

Browse files
authored
Merge pull request #271845 from ianjmcm/trustedsigning-release
Trustedsigning release
2 parents c9243fd + 139907e commit 3beb6c5

14 files changed

+412
-68
lines changed

articles/trusted-signing/TOC.yml

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,10 @@
1212
href: how-to-signing-integrations.md
1313
- name: Sign CI Policies with Trusted Signing
1414
href: how-to-sign-ci-policy.md
15+
- name: Access signed transactions in Trusted Signing
16+
href: how-to-sign-history.md
17+
- name: Revoke a certificate profile in Trusted Signing
18+
href: how-to-cert-revocation.md
1519
- name: Quickstart
1620
items:
1721
- name: Quickstart onboarding
@@ -27,4 +31,8 @@
2731
- name: Concept
2832
items:
2933
- name: Trusted Signing trust models
30-
href: concept-trusted-signing-trust-models.md
34+
href: concept-trusted-signing-trust-models.md
35+
- name: Trusted Signing resources and roles
36+
href: concept-trusted-signing-resources-roles.md
37+
- name: Trusted Signing certificate management
38+
href: concept-trusted-signing-cert-management.md

articles/trusted-signing/concept-trusted-signing-cert-management.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ For example, if it's determined that a subscriber signed code that was malware o
3232

3333
### Subscriber Identity Validation Extended Key Usage (EKU)
3434

35-
It's common for x.509 end-entity signing certificates to be renewed. Due to Trusted Signing's *daily certificate renewal*, pinning trust or validation to an end-entity certificate using certificate attributes (for exmaple, the public key) or a certificate's "thumbprint" (hash of the certificate) isn't durable. In addition, subjectDN values can change over the lifetime of an identity or organization.
35+
It's common for x.509 end-entity signing certificates to be renewed on a regular timeline to ensure key hygiene. Due to Trusted Signing's *daily certificate renewal*, pinning trust or validation to an end-entity certificate using certificate attributes (for exmaple, the public key) or a certificate's "thumbprint" (hash of the certificate) isn't durable. In addition, subjectDN values can change over the lifetime of an identity or organization.
3636

3737
To address these issues, Trusted Signing provides a durable identity value in each certificate that's associated with the Subscription's Identity Validation resource. The durable identity value is a custom EKU that has a prefix of `1.3.6.1.4.1.311.97.` and is followed by additional octet values that are unique to the Identity Validation resource used on the Certificate Profile.
3838

articles/trusted-signing/concept-trusted-signing-resources-roles.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -56,8 +56,8 @@ Trusted Signing provides five total Certificate Profile types that all subscribe
5656
- **VBS Enclave**: Used for signing [Virtualization-based Security Enclaves](https://learn.microsoft.com/windows/win32/trusted-execution/vbs-enclaves) on Windows.
5757
- **Public Trust Test**: Used for test signing only and aren't publicly trusted by default. Consider Public Trust Test Certificate Profile as a great option for inner loop build signing.
5858

59-
>[!NOTE]
60-
>All certificates under this Certificate Profile type include the Lifetime EKU (1.3.6.1.4.1.311.10.3.13) forcing validation to respect the lifetime of the signing certificate regardless of the presence of a valid time stamp countersignature.
59+
[!NOTE]
60+
All certificates under the Public Trust Test Certificate Profile type include the Lifetime EKU (1.3.6.1.4.1.311.10.3.13) forcing validation to respect the lifetime of the signing certificate regardless of the presence of a valid time stamp countersignature.
6161

6262
- **Private Trust**
6363
- **Private Trust**: Used for signing internal or private artifacts such as Line of Business (LoB) applications and containers. It can also be used to sign [catalog files for Windows App Control for Business](https://learn.microsoft.com/windows/security/application-security/application-control/windows-defender-application-control/deployment/deploy-catalog-files-to-support-wdac).

articles/trusted-signing/concept-trusted-signing-trust-models.md

Lines changed: 6 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -17,21 +17,19 @@ This article explains the concept of trust models, the primary trust models that
1717

1818
A trust model defines the rules and mechanisms for validating digital signatures and ensuring the security of communications in a digital environment. In other words, trust models define how trust is established and maintained within entities in a digital ecosystem.
1919

20-
For signature consumers like publicly trusted code signing for Microsoft Windows applications, trust models depend on signatures that have certificates from a Certification Authority (CA) that is part of the [Microsoft Root Certificate Program](https://learn.microsoft.com/security/trusted-root/program-requirements). This is because Trusted Signing is designed to support Windows Authenticode signing and security features that use code signing on Windows (e.g. [Smart App Control](https://learn.microsoft.com/windows/apps/develop/smart-app-control/overview) and [Windows Defender Application Control](https://learn.microsoft.com/windows/security/application-security/application-control/windows-defender-application-control/wdac)).
20+
For signature consumers like publicly trusted code signing for Microsoft Windows applications, trust models depend on signatures that have certificates from a Certification Authority (CA) that is part of the [Microsoft Root Certificate Program](https://learn.microsoft.com/security/trusted-root/program-requirements). This is primarily why Trusted Signing trust models are designed to support Windows Authenticode signing and security features that use code signing on Windows (e.g. [Smart App Control](https://learn.microsoft.com/windows/apps/develop/smart-app-control/overview) and [Windows Defender Application Control](https://learn.microsoft.com/windows/security/application-security/application-control/windows-defender-application-control/wdac)).
2121

2222
Trusted Signing provides two primary trust models to support a wide variety of signature consumption (validations):
2323

24-
- Public-Trust <add link to #public-trust>
25-
- Private-Trust <add link to #private-trust>
24+
- [Public-Trust](#public-trust)
25+
- [Private-Trust](#private-trust)
2626

2727
>[!NOTE]
2828
>Subscribers to Trusted Signing aren't limited to the signing scenarios application of the trust models shared in this article. Trusted Signing was designed to support Windows Authenticode code signing and App Control for Business features in Windows with an ability to broadly support other signing and trust models beyond Windows.
2929
3030
## Public-Trust
3131

32-
Public-Trust is one of the models provided in Trusted Signing and is the most commonly used model. The certificates are issued from a CA that complies with the [CA/Browser Forum's Baseline Requirements for Code-Signing Certificates](https://cabforum.org/working-groups/code-signing/documents/) and is included a relying party's root certificate program such as the [Microsoft Root Certificate Program](https://learn.microsoft.com/security/trusted-root/program-requirements).
33-
34-
Trusted Signing's Public-Trust Identity Validation and Certificate Profiles are backed by a CA included in the Microsoft Root Certificate Program. The Public-Trust Root CA certificate is [Microsoft Identity Verification Root Certificate Authority 2020](https://www.microsoft.com/pkiops/certs/microsoft%20identity%20verification%20root%20certificate%20authority%202020.crt) and complies with the [Microsoft PKI Services Third Party Certification Practice Statement (CPS)](https://www.microsoft.com/pkiops/docs/repository.htm).
32+
Public-Trust is one of the models provided in Trusted Signing and is the most commonly used model. The certificates in the Public-Trust model are issued from the [Microsoft Identity Verification Root Certificate Authority 2020](https://www.microsoft.com/pkiops/certs/microsoft%20identity%20verification%20root%20certificate%20authority%202020.crt) and complies with the [Microsoft PKI Services Third Party Certification Practice Statement (CPS)](https://www.microsoft.com/pkiops/docs/repository.htm). This root CA is included a relying party's root certificate program such as the [Microsoft Root Certificate Program](https://learn.microsoft.com/security/trusted-root/program-requirements) for the usage of code signing and timestamping.
3533

3634
The Public-Trust resources in Trusted Signing are designed to support the following signing scenarios and security features:
3735

@@ -42,8 +40,8 @@ The Public-Trust resources in Trusted Signing are designed to support the follow
4240

4341
Public-Trust is recommended for signing any artifact that is to be shared publicly and for the signer to be a validated legal organization or individual.
4442

45-
>[!NOTE]
46-
>Trusted Signing includes options for "Test" Certificate Profiles under the Public-Trust collection. These "Test" Certificate Profiles are intended to be used for inner loop dev/test signing and trust only in test environments.
43+
[!NOTE]
44+
Trusted Signing includes options for "Test" Certificate Profiles under the Public-Trust collection, but not publicly trusted. These "Test" Certificate Profiles are intended to be used for inner loop dev/test signing and should NOT be trusted.
4745

4846
## Private-Trust
4947

Lines changed: 61 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,61 @@
1+
---
2+
title: Revoke a certificate profile in Trusted Signing
3+
description: how-to revoke a Trusted Signing certificate from Azure portal.
4+
author: mehasharma
5+
ms.author: mesharm
6+
ms.service: azure-code-signing
7+
ms.topic: how-to
8+
ms.date: 03/31/2024
9+
---
10+
11+
12+
13+
# Revoke a certificate profile in Trusted Signing
14+
15+
Certificate revocation is an act of invalidating a certificate. Once a certificate is successfully revoked, all the files signed with a revoked certificate become invalid from the selected revocation date and time.
16+
17+
If the certificate issued to you doesn’t match your intended values or if you suspect any compromise of your account, consider the following steps:
18+
19+
1. **Revoke the Existing Certificate**:
20+
Revoking the certificate ensures that any compromised or incorrect certificates become invalid.
21+
Make sure to promptly revoke any certificates that no longer meet your requirements.
22+
23+
2. **Contact Microsoft for Certificate Revocation Requests**:
24+
- If you encounter any issues revoking a certificate through the Azure portal (especially for non-misuse or nonabuse scenarios), reach out to Microsoft.
25+
- For any misuse or abuse of certificates issued to you by Trusted Signing, contact Microsoft immediately at [email protected].
26+
27+
3. **To continue signing with Trusted Signing**:
28+
- Initiate a new Identity Validation request.
29+
- Verify that the information in certificate subject preview accurately reflects your intended values.
30+
- Create a new certificate profile with newly Completed Identity Validation.
31+
32+
33+
Before initiating a certificate revocation, it’s crucial to verify that all the details are accurate and as intended. Once a certificate is revoked, reversing the process isn't possible. Therefore, exercise caution and double-check the information before proceeding with the revocation process.
34+
35+
Revocation can only be completed in the Azure portal – it can't be completed with Azure CLI.
36+
37+
This tutorial will guide you through the process of revoking a certificate profile from a Trusted Signing account.
38+
39+
## Prerequisites
40+
- Ensure you have **Owner** role for the Subscription. For RBAC access management, see link to role assignment.
41+
42+
## Revoke a certificate
43+
44+
Complete these steps to revoke a certificate profile from Trusted Signing:
45+
46+
1. Sign in to the [Azure portal](https://portal.azure.com/).
47+
2. Navigate to your **Trusted Signing account** resource page in the Azure portal.
48+
3. Select **certificate profile** from either the Account Overview page or Objects page.
49+
4. Select the relevant certificate profile.
50+
5. In the Search box, enter the thumbprint of the certificate to be revoked.
51+
• For example for .cer file, thumbprint can be found on the Details tab.
52+
6. Select the thumbprint, then select **Revoke**.
53+
7. In the **Revocation reason** pull-down menu, select a reason.
54+
8. Enter **Revocation date time** (must be within the certification created and expiry date).
55+
• The Revocation date time is converted to your local time zone.
56+
9. Enter **Remarks**.
57+
10. Select **Revoke**.
58+
11. Once the certificate is successfully revoked:
59+
- The status is updated for the thumbprint that was revoked.
60+
- An email is sent to the email addresses provided during Identity Validation.
61+

articles/trusted-signing/how-to-sign-ci-policy.md

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,12 @@
11
---
2-
title: Signing CI Policies #Required; page title is displayed in search results. Include the brand.
3-
description: Learn how to sign new CI policies with Trusted Signing. #Required; article description that is displayed in search results.
4-
author: microsoftshawarma #Required; your GitHub user alias, with correct capitalization.
5-
ms.author: rakiasegev #Required; microsoft alias of author; optional team alias.
6-
ms.service: azure-code-signing #Required; service per approved list. slug assigned by ACOM.
7-
ms.topic: how-to #Required; leave this attribute/value as-is.
8-
ms.date: 04/04/2024 #Required; mm/dd/yyyy format.
9-
ms.custom: template-how-to-pattern #Required; leave this attribute/value as-is.
2+
title: Signing CI Policies
3+
description: Learn how to sign new CI policies with Trusted Signing.
4+
author: microsoftshawarma
5+
ms.author: rakiasegev
6+
ms.service: azure-code-signing
7+
ms.topic: how-to
8+
ms.date: 04/04/2024
9+
ms.custom: template-how-to-pattern
1010
---
1111

1212
# Sign CI Policies with Trusted Signing
Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
---
2+
title: Access signed transactions in Trusted Signing
3+
description: How-to access signed transactions in Trusted Signing in Azure portal.
4+
author: mehasharma
5+
ms.author: mesharm
6+
ms.service: azure-code-signing
7+
ms.topic: how-to
8+
ms.date: 04/01/2024
9+
---
10+
11+
# Access signed transactions in Trusted Signing
12+
13+
Review the details of the signing requests executed by Trusted Signing in Azure portal.
14+
Currently there are four different options enabled: 
15+
- Log Analytics workspace 
16+
- Storage Account 
17+
- Event Hub 
18+
- Partner Solution 
19+
20+
Following is an example of how to view signing transactions through storage account.
21+
## Prerequisites: 
22+
- Ability to create storage accounts in a subscription. (Note: The billing of storage accounts is separate from Trusted Signing resources.) 
23+
- Sign in to the Azure portal.
24+
25+
## Send signed transactions to storage account
26+
Follow the steps to access and send sign transactions to your storage account: 
27+
1. Follow this guide to create Storage Accounts, Create a storage account - Azure Storage | Microsoft Learn, in the same region as your trusted signing account (Basic storage account is sufficient) 
28+
2. Navigate to your trusted signing account in the Azure portal.
29+
3. On the trusted signing account overview page, locate **Diagnostics Settings** under Monitoring section. 
30+
1. Select Diagnostics Settings on the left-side blade and click **+ Add diagnostic setting** link on the left side.
31+
2. From **Diagnostics setting** page, select **Sign Transactions** category and choose ‘Archive to a storage account’ option and select the subscription and Storage account that you newly created or already have.
32+
4. After selecting subscription & storage account, click **Save**. This action brings you to previous page where it displays list of all diagnostics settings created for this code sign account. 
33+
5. After creating a diagnostic setting, wait for 10-15 mins before the events begin to get ingested to the newly created storage account. 
34+
6. Navigate to the storage account created in step 1. In this example, we will use storage account **storagetestneu1**. 
35+
7. From storage account resource, navigate to **Containers** under **Data storage**. 
36+
8. From the list, select container named **insights-logs-signtransactions** and navigate to the date and time you're looking to download the log.   

articles/trusted-signing/how-to-signing-integrations.md

Lines changed: 13 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,12 @@
11
---
2-
title: Implement signing integrations with Trusted Signing #Required; page title is displayed in search results. Include the brand.
3-
description: Learn how to set up signing integrations with Trusted Signing. #Required; article description that is displayed in search results.
4-
author: microsoftshawarma #Required; your GitHub user alias, with correct capitalization.
5-
ms.author: rakiasegev #Required; microsoft alias of author; optional team alias.
6-
ms.service: azure-code-signing #Required; service per approved list. slug assigned by ACOM.
7-
ms.topic: how-to #Required; leave this attribute/value as-is.
8-
ms.date: 04/04/2024 #Required; mm/dd/yyyy format.
9-
ms.custom: template-how-to-pattern #Required; leave this attribute/value as-is.
2+
title: Implement signing integrations with Trusted Signing
3+
description: Learn how to set up signing integrations with Trusted Signing.
4+
author: microsoftshawarma
5+
ms.author: rakiasegev
6+
ms.service: azure-code-signing
7+
ms.topic: how-to
8+
ms.date: 04/04/2024
9+
ms.custom: template-how-to-pattern
1010
---
1111

1212
# Implement Signing Integrations with Trusted Signing
@@ -46,15 +46,15 @@ To download and install SignTool:
4646
1. Download the latest version of SignTool + Windows Build Tools NuGet at: [Microsft.Windows.SDK.BuildTools](https://www.nuget.org/packages/Microsoft.Windows.SDK.BuildTools/)
4747
2. Install SignTool from Windows SDK (min version: 10.0.2261.755)
4848

49-
Another option is to use the latest nuget.exe to download and extract the latest SDK Build Tools NuGet package by completing the following steps (PowerShell):
49+
Another option is to use the latest `nuget.exe` to download and extract the latest SDK Build Tools NuGet package by completing the following steps (PowerShell):
5050

51-
1. Download nuget.exe by running the following download command:
51+
1. Download `nuget.exe` by running the following download command:
5252

5353
```
5454
Invoke-WebRequest -Uri https://dist.nuget.org/win-x86-commandline/latest/nuget.exe -OutFile .\nuget.exe
5555
```
5656

57-
2. Install nuget.exe by running the following install command:
57+
2. Install `nuget.exe` by running the following install command:
5858
```
5959
.\nuget.exe install Microsoft.Windows.SDK.BuildTools -Version 10.0.20348.19
6060
```
@@ -122,4 +122,5 @@ This section explains how to set up other not [SignTool](#set-up-signtool-with-t
122122

123123
* Azure PowerShell: App Control for Business CI Policy – To use Trusted Signing for CI policy signing follow the instructions at [Signing a New CI policy](./how-to-sign-ci-policy.md) and visit the [Az.CodeSigning PowerShell Module](/powershell/azure/install-azps-windows).
124124

125-
* Trusted Signing SDK – To create your own signing integration our [Trusted Signing SDK](https://www.nuget.org/packages/Azure.CodeSigning.Sdk) is publicly available.
125+
* Trusted Signing SDK – To create your own signing integration our [Trusted Signing SDK](https://www.nuget.org/packages/Azure.CodeSigning.Sdk) is publicly available.
126+

articles/trusted-signing/index.yml

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,12 @@ landingContent:
3030
links:
3131
- text: Sign CI Policies with Trusted Signing
3232
url: how-to-sign-ci-policy.md
33+
- text: Signing Integrations with Trusted Signing
34+
url: how-to-signing-integrations.md
35+
- text: Access signed transactions in Trusted Signing
36+
url: how-to-sign-history.md
37+
- text: Revoke a certificate profile in Trusted Signing
38+
url: how-to-cert-revocation.md
3339
- title: Overview
3440
linkLists:
3541
- linkListType: overview
@@ -46,5 +52,9 @@ landingContent:
4652
linkLists:
4753
- linkListType: concept
4854
links:
49-
- text: What is Signing?
50-
url: concept.md
55+
- text: Trusted Signing trust models
56+
url: concept-trusted-signing-trust-models.md
57+
- text: Trusted Signing resources and roles
58+
url: concept-trusted-signing-resources-roles.md
59+
- text: Trusted Signing certificate management
60+
url: concept-trusted-signing-cert-management.md
57.9 KB
Loading

0 commit comments

Comments
 (0)