Skip to content

Commit b63ebee

Browse files
Merge pull request #271241 from ianjmcm/trustedsigning-release
adding concept files
2 parents 54da1ee + 43b519b commit b63ebee

8 files changed

+238
-59
lines changed

.openpublishing.redirection.json

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3969,6 +3969,11 @@
39693969
"source_path_from_root":"/articles/virtual-network-manager/concept-security-admin-rules-network-groups.md",
39703970
"redirect_url":"/azure/virtual-network-manager/overview",
39713971
"redirect_document_id":false
3972+
},
3973+
{
3974+
"source_path_from_root":"/articles/trusted-signing/concept.md",
3975+
"redirect_url":"/azure/trusted-signing/concept-trustedsigning-resources-roles",
3976+
"redirect_document_id":false
39723977
}
39733978
]
39743979
}

articles/trusted-signing/TOC.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -26,5 +26,5 @@
2626
href: faq.yml
2727
- name: Concept
2828
items:
29-
- name: Signing concepts
30-
href: concept.md
29+
- name: Trusted Signing trust models
30+
href: concept-trusted-signing-trust-models.md
Lines changed: 80 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,80 @@
1+
---
2+
title: Trusted Signing certificate management
3+
description: Learn about the certificates used in Trusted Signing, including the two unique certificate attributes, the zero-touch certificate lifecycle management process, and most effective ways to manage the certificates.
4+
author: ianjmcm
5+
ms.author: ianmcm
6+
ms.service: azure-code-signing
7+
ms.topic: concept-article
8+
ms.date: 04/03/2024
9+
ms.custom: template-concept
10+
---
11+
12+
# Trusted Signing certificate management
13+
14+
The certificates used in the Trusted Signing service follow standard practices for x.509 code signing certificates. To support a healthy ecosystem, the service includes a fully managed experience for the x.509 certificates and asymmetric keys used for signing. This fully managed experience automatically provides the necessary certificate lifecycle actions for all certificates used under a customer's Certificate Profile resource in Trusted Signing.
15+
16+
This article explains the Trusted Signing certificates, including their two unique attributes, the zero-touch lifecycle management process, the importance of timestamp countersignatures, and our active threat monitoring and revocation actions.
17+
18+
## Certificate attributes
19+
20+
Trusted Signing uses the Certificate Profile resource type to create and manage x.509 V3 certificates that Trusted Signing customers use for signing. The certificates conform with the RFC 5280 standard and relevant Microsoft PKI Services Certificate Policy (CP) and Certification Practice Statements (CPS) found on [PKI Repository - Microsoft PKI Services](https://www.microsoft.com/pkiops/docs/repository.htm).
21+
22+
In addition to the standard features, the certificates also include the following two unique features to help mitigate risks and impacts associated with misuse/abuse:
23+
24+
- Short-lived certificates
25+
- Subscriber Identity Validation Extended Key Usage (EKU) for durable identity pinning
26+
27+
### Short-lived certificates
28+
29+
To help reduce the impact of signing misuse and abuse, Trusted Signing certificates are renewed daily and are only valid for 72 hours. These short-lived certificates enable revocation actions to be as acute as a single day or as broad as needed, to cover any incidents of misuse and abuse.
30+
31+
For example, if it's determined that a subscriber signed code that was malware or PUA (Potentially Unwanted Application) as defined by [How Microsoft identifies malware and potentially unwanted applications](https://learn.microsoft.com/microsoft-365/security/defender/criteria), the revocation actions can be isolated to only revoking the certificate that signed the malware or PUA. Thus, the revocation only impacts the code that was signed with that certificate, on the day it was issued, and not any of the code signed prior to or after that day.
32+
33+
### Subscriber Identity Validation Extended Key Usage (EKU)
34+
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.
36+
37+
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.
38+
39+
- **Public-Trust Identity Validation example**:
40+
A `1.3.6.1.4.1.311.97.990309390.766961637.194916062.941502583` value indicates a Trusted Signing subscriber using Public-Trust Identity Validation. The `1.3.6.1.4.1.311.97.` prefix is Trusted Signing's Public-Trust code signing type and the `990309390.766961637.194916062.941502583` value is unique to the subscriber's Identity Validation for Public-Trust.
41+
42+
- **Private-Trust Identity Validation example**:
43+
A `1.3.6.1.4.1.311.97.1.3.1.29433.35007.34545.16815.37291.11644.53265.56135` value indicates a Trusted Signing subscriber using Private-Trust Identity Validation. The `1.3.6.1.4.1.311.97.1.3.1.` prefix is Trusted Signing's Private-Trust code signing type and the `29433.35007.34545.16815.37291.11644.53265.56135` is unique to the subscriber's Identity Validation for Private Trust. Because Private-Trust Identity Validations can be used for WDAC CI Policy signing, there's also a slightly different EKU prefix: `1.3.6.1.4.1.311.97.1.4.1.`. However, the suffix values match the durable identity value for the subscriber's Identity Validation for Private Trust.
44+
45+
>[!NOTE]
46+
>The durable identity EKUs can be used in WDAC CI Policy settings to pin trust to an identity in Trusted Signing accordingly. Refer to [Use signed policies to protect Windows Defender Application Control against tampering](https://learn.microsoft.com/windows/security/application-security/application-control/windows-defender-application-control/deployment/use-signed-policies-to-protect-wdac-against-tampering) and [Windows Defender Application Control Wizard](https://learn.microsoft.com/windows/security/application-security/application-control/windows-defender-application-control/design/wdac-wizard) for WDAC Policy creation.
47+
48+
All Trusted Signing Public Trust certificates also contain the `1.3.6.1.4.1.311.97.1.0` EKU to be easily identified as a publicly trusted certificate from Trusted Signing. All EKUs are in addition to the Code Signing EKU (`1.3.6.1.5.5.7.3.3`) to identify the specific usage type for certificate consumers. The only exception is certificates from CI Policy Certificate Profile types, where no Code Signing EKU is present.
49+
50+
## Zero-touch certificate lifecycle management
51+
52+
Trusted Signing aims to simplify signing as much as possible for subscribers using a zero-touch certificate lifecycle management process. A major part of simplifying signing is to provide a fully automated certificate lifecycle management solution. This is where Trusted Signing's Zero-Touch Certificate Lifecycle Management feature handles all of the standard actions automatically for the subscribers. This includes:
53+
54+
- Secure key generation, storage, and usage in FIPS 140-2 Level 3 hardware crypto modules managed by the service.
55+
- Daily renewals of the certificates to ensure subscribers always have a valid certificate to sign with for their Certificate Profile resources.
56+
57+
Every certificate created and issued is logged for subscribers in the Azure portal and logging data feeds, including the serial number, thumbprint, created date, expiry date, and status (for example, "Active", "Expired", or "Revoked").
58+
59+
>[!NOTE]
60+
>Trusted Signing does NOT support subscribers importing or exporting private keys and certificates. All certificates and keys used in Trusted Signing are managed inside FIPS 140-2 Level 3 operated hardware crypto modules.
61+
62+
### Time stamp countersignatures
63+
64+
The standard practice in signing is to countersign all signatures with an RFC3161 compliant time stamp. Since Trusted Signing uses short-lived certificates, the importance of time stamp countersigning is imperative to the signatures being valid beyond the life of the signing certificate. This is because a time stamp countersignature provides a cryptographically secure time stamp token from a Time Stamp Authority that meets standard requirements in the CSBRs.
65+
66+
The countersignature provides a reliable date and time of when the signing occurred, so if the time stamp countersign is inside the signing certificate's validity period (and the Time Stamp Authority certificate's validity period) the signature is valid even long after the signing (and Time Stamp Authority) certificates have expired (unless either are revoked).
67+
68+
Trusted Signing provides a generally available Time Stamp Authority endpoint at `http://acs.timestamp.microsoft.com`. We recommend that all Trusted Signing subscribers leverage this Time Stamp Authority endpoint for countersigning any signatures they're producing.
69+
70+
### Active monitoring
71+
72+
Trusted Signing passionately supports a healthy ecosystem by using active threat intelligence monitoring to constantly look for cases of misuse and abuse of Trusted Signing subscribers' Public Trust certificates.
73+
74+
- If there's a confirmed case of misuse or abuse, Trusted Signing immediately completes the necessary steps to mitigate and remediate any threats, including targeted or broad certificate revocation and account suspension.
75+
76+
- Subscribers can also complete revocation actions directly from the Azure portal for any certificates that are logged under a Certificate Profile they own.
77+
78+
## Next steps
79+
80+
- Get started with Trusted Signing's [Quickstart Guide](./quickstart.md).
Lines changed: 90 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,90 @@
1+
---
2+
title: Trusted Signing resources and roles
3+
description: Trusted Signing is a Microsoft fully managed end-to-end signing solution that simplifies the signing process for Azure developers. Learn all about the resources and roles specific to Trusted Signing, such as identity validations, certificate profiles, and the code signing identity verifier.
4+
author: ianjmcm
5+
ms.author: ianmcm
6+
ms.service: azure-code-signing
7+
ms.topic: concept-article
8+
ms.date: 04/03/2024
9+
ms.custom: template-concept
10+
---
11+
12+
# Trusted Signing resources and roles
13+
14+
Trusted Signing is an Azure native resource with full support for common Azure concepts such as resources. As with all other Azure Resource, Trusted Signing also has its own set of resources and roles designed to simplify the management of the service.
15+
16+
This article introduces you to the resources and roles that are specific to Trusted Signing.
17+
18+
## Trusted Signing Resource Types
19+
Trusted Signing has the following resource types:
20+
21+
- **Trusted Signing Account**: The account is a logical container of all the subscriber's resources to complete signing and manage access controls to those sensitive resources.
22+
23+
- **Certificate Profile**: Certificate Profiles are the configuration attributes that generate the certificates you use to sign code. They also define the trust model and scenario signed content is consumed under by relying parties. Signing roles are assigned to this resource to authorize identities in the tenant to request signing. A prerequisite for creating any Certificate Profile is to have at least one Identity Validation request completed.
24+
25+
- **Identity Validation**: Identity Validation performs verification of your organization or individual identity before you can sign code. The verified organization or individual identity is the source of the attributes for your Certificate Profiles' SubjectDN values (for example, "CN=Microsoft Corporation, O=Microsoft Corporation, L=Redmond, S=Washington, C=US"). Identity validation roles are assigned to identities in the tenant to create these resources.
26+
27+
In the below example structure, notice that an Azure Subscription has a Resource Group. Under the Resource Group you can have one or many Trusted Signing Account resources with one or many Identity Validations and Certificate Profiles.
28+
29+
![Diagram of Trusted Signing resource group and cert profiles](./media/trusted-signing-resource-structure.png)
30+
31+
This ability to have multiple Code Signing Accounts and Certificate Profiles is useful as the service supports Public Trust, Private Trust, CI Policy, VBS Enclave, and Test signing types. For more information on the Certificate Profile types and how they're used, review [Trusted Signing certificate types and management](./concept-trusted-signing-cert-management.md).
32+
33+
> [!NOTE]
34+
> Identity Validations and Certificate Profiles align with either Public or Private Trust. Meaning that a Public Trust Identity Validation is only used for Certificate Profiles that are used for the Public Trust model. For more information, review [Trusted Signing trust models](./concept-trusted-signing-trust-models.md).
35+
36+
### Trusted Signing account
37+
38+
The Trusted Signing account is a logical container of the resources that are used to do signing. Trusted Signing accounts can be used to define boundaries of a project or organization. For most, a single Trusted Signing account can satisfy all the signing needs for an individual or organization. Subscribers can sign many artifacts all distributed by the same identity (for example, "Contoso News, LLC"), but operationally, there may be boundaries the subscriber wants to draw in terms of access to signing. You may choose to have a Trusted Signing account per product or per team to isolate usage of an account. However, this isolation pattern can also be achieved at the Certificate Profile level.
39+
40+
### Identity Validations
41+
42+
Identity Validations are all about establishing the identity on the certificates that are used for signing. There are two types: Private Trust and Public Trust. These two types are defined by the level of identity validation that's required to complete the creation of an Identity Validation resource.
43+
44+
**Private Trust** is intended for use in situations where there's an established trust in a private identity across one or many relying parties (consumers of signatures) or internally in app control or Line of Business (LoB) scenarios. With Private Trust Identity Validations, there's minimal verification of the identity attributes (for example, Organization Unit value) and it's tightly associated with the Azure Tenant of the subscriber (for example, Costoso.onmicrosoft.com). The values inputted for Private Trust are otherwise not validated beyond the Azure Tenant information.
45+
46+
**Public Trust** means that all identity values must be validated in accordance to our [Microsoft PKI Services Third Party Certification Practice Statement (CPS)](https://www.microsoft.com/pkiops/docs/repository.htm). This aligns with the expectations for publicly trusted code signing certificates.
47+
48+
For more details on Private and Public Trust, review [Trusted Signing trust models](./concept-trusted-signing-trust-models.md).
49+
50+
### Certificate Profiles
51+
52+
Trusted Signing provides five total Certificate Profile types that all subscribers can use with the aligned and completed Identity Validation resources. These five Certificate Profiles are aligned to Public or Private Trust Identity Validations as follows:
53+
54+
- **Public Trust**
55+
- **Public Trust**: Used for signing code and artifacts that can be publicly distributed. It's default trusted on the Windows platform for code signing.
56+
- **VBS Enclave**: Used for signing [Virtualization-based Security Enclaves](https://learn.microsoft.com/windows/win32/trusted-execution/vbs-enclaves) on Windows.
57+
- **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.
58+
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.
61+
62+
- **Private Trust**
63+
- **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).
64+
- **Private Trust CI Policy**: The Private Trust CI Policy Certificate Profile is the only type that does NOT include the Code Signing EKU (1.3.6.1.5.5.7.3.3). It's specifically designed for [signing Windows App Control for Business CI policy files](https://learn.microsoft.com/windows/security/application-security/application-control/windows-defender-application-control/deployment/use-signed-policies-to-protect-wdac-against-tampering).
65+
66+
67+
## Supported roles
68+
69+
Azure Role Based Accesfnotes Controls (RBAC) is a cornerstone concept for all Azure resources. Trusted Signing adds two custom roles to meet subscribers’ needs for creating an Identity Validation (Code Signing Identity Verifier) and signing with Certificate Profiles (Code Signing Certificate Profile Signer). These custom roles explicitly must be assigned to perform those two critical functions in using Trusted Signing. Below is a complete list of roles Trusted Signing supports and their capabilities, including all standard Azure roles.
70+
71+
|Role|Managed/View Account|Manage Certificate Profiles|Sign with Certificate Profile|View Signing History|Manage Role Assignment|Manage Identity Validation|
72+
|---------------|---------------|-----------------|-----------------|-----------------|-----------------|-----------------|
73+
|Code Signing Identity Verifier<sub>1</sub>||||||X|
74+
|Code Signing Certificate Profile Signer<sub>2</sub>|||X|X|||
75+
|Owner|X|X|||X||
76+
|Contributor|X|X|||||
77+
|Reader|X||||||
78+
|User Access Admin|||||X||
79+
||||||||
80+
81+
<sub>1</sub> Required to create/manage Identity Validation only available on the Azure portal experience.
82+
83+
<sub>2</sub> Required to successfully sign with Trusted Signing.
84+
85+
## Next steps
86+
87+
* Get started with [Trusted Signing's Quickstart Guide](./quickstart.md).
88+
* Review the [Trusted Signing Trust Models](./concept-trusted-signing-trust-models.md) concept.
89+
* Review the [Trusting Signing certificates and management](./concept-trusted-signing-cert-management.md) concept.
90+

0 commit comments

Comments
 (0)