Skip to content

Commit 0f6a080

Browse files
committed
addressing PR comments
1 parent 0fc1a13 commit 0f6a080

10 files changed

+29
-47
lines changed

articles/attestation/azure-TPM-VBS-attestation-usage.md

Lines changed: 12 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
---
2-
title: Azure TPM VBS Attestation usage
2+
title: Azure TPM VBS attestation usage
33
description: Learn about how to apply TPM and VBS attestation
44
services: attestation
55
author: prsriva
@@ -28,60 +28,44 @@ Detailed information about the workflow is described in [Azure attestation workf
2828
This is the first step for any attestation to be performed. Setting up an endpoint, this can be performed either via code or using the Azure portal.
2929

3030
Here's how you can set up an attestation endpoint using Portal
31-
<ul>
32-
<li> Prerequisite: Access to the Microsoft Azure Active Directory(Azure AD) tenant and subscription under which you want to create the attestation endpoint.
3331

34-
Learn more about setting up an [Azure AD tenant](../active-directory/develop/quickstart-create-new-tenant.md).</li>
35-
36-
<li> Create an endpoint under the desired resource group, with the desired name.
32+
1 Prerequisite: Access to the Microsoft Azure Active Directory(Azure AD) tenant and subscription under which you want to create the attestation endpoint.
33+
Learn more about setting up an [Azure AD tenant](../active-directory/develop/quickstart-create-new-tenant.md).
3734

35+
2 Create an endpoint under the desired resource group, with the desired name.
3836
> [!VIDEO https://www.microsoft.com/en-us/videoplayer/embed/RE5azcU]
3937
40-
</li>
41-
<li> Add Attestation Contributor Role to the Identity who will be responsible to update the attestation policy.
42-
38+
3 Add Attestation Contributor Role to the Identity who will be responsible to update the attestation policy.
4339
> [!VIDEO https://www.microsoft.com/en-us/videoplayer/embed/RE5aoRj]
4440
45-
</li>
46-
<li> Configure the endpoint with the required policy.
47-
41+
4 Configure the endpoint with the required policy.
4842
> [!VIDEO https://www.microsoft.com/en-us/videoplayer/embed/RE5aoRk]
4943
50-
</li>
51-
52-
Sample policies can be found in the [policy section](tpm-attestation-sample-policies.md) .</br>
44+
Sample policies can be found in the [policy section](tpm-attestation-sample-policies.md).
5345

5446
> [!NOTE]
5547
> TPM endpoints are designed to be provisioned without a default attestation policy.
56-
</ul>
5748
5849

5950
### Client Setup:
6051
A client to communicate with the attestation service endpoint needs to ensure it's following the protocol as described in the [protocol documentation](virtualization-based-security-protocol.md). Use the [Attestation Client NuGet](https://www.nuget.org/packages/Microsoft.Attestation.Client) to ease the integration.
61-
62-
<ul>
63-
<li>
64-
Prerequisite: An Azure AD identity is needed to access the TPM endpoint.
65-
52+
53+
1 Prerequisite: An Azure AD identity is needed to access the TPM endpoint.
6654
Learn more [Azure AD identity tokens](../active-directory/develop/v2-overview.md).
67-
</li>
68-
<li> Add Attestation Reader Role to the identity that will be need for authentication against the endpoint. Azure i
6955

56+
2 Add Attestation Reader Role to the identity that will be need for authentication against the endpoint. Azure i
7057
> [!VIDEO https://www.microsoft.com/en-us/videoplayer/embed/RE5aoRi]
7158
72-
</li>
73-
</ul>
7459

7560
## Execute the Attestation Workflow:
7661
Using the [Client](https://github.com/microsoft/Attestation-Client-Samples) to trigger an attestation flow. A successful attestation will result in an attestation report (encoded JWT token). Parsing the JWT token, the contents of the report can be easily validated against expected outcome.
7762

7863
> [!VIDEO https://www.microsoft.com/en-us/videoplayer/embed/RE5azcT]
7964
8065

81-
</br>
8266
Here's a sample of the contents of the attestation report.
83-
84-
:::image type="content" source="./media/sampledecodedtoken.jpg" alt-text="Sample decoded token for tpm attestation" lightbox="./media/sampledecodedtoken.jpg":::
67+
git mv OLD-FILENAME NEW-FILENAME
68+
:::image type="content" source="./media/sample-decoded-token.jpg" alt-text="Sample decoded token for tpm attestation" lightbox="./media/sampledecodedtoken.jpg":::
8569

8670
Using the Open ID [metadata endpoint](/rest/api/attestation/metadata-configuration/get?tabs=HTTP) contains properties, which describe the attestation service.The signing keys describe the keys, which will be used to sign tokens generated by the attestation service. All tokens emitted by the attestation service will be signed by one of the certificates listed in the attestation signing keys.
8771

-29 MB
Binary file not shown.
-14.6 MB
Binary file not shown.
-15.7 MB
Binary file not shown.
-22.9 MB
Binary file not shown.
File renamed without changes.
-9.06 MB
Binary file not shown.

articles/attestation/tpm-attestation-concepts.md

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -109,7 +109,7 @@ c:[type=="boolProperties", issuer=="AttestationPolicy"] => issue(type="Malicious
109109

110110
## Extending the protection from malicious boot attacks via Integrity Measurement Architecture(IMA) on Linux
111111

112-
Linux systems follows a similar boot process to Windows, and with TPM attestation the protection profile can be extended to beyond boot into the kernel as well using Integrity Measurement Architecture(IMA). IMA subsystem was designed to detect if files have been accidentally or maliciously altered, both remotely and locally, it maintains a runtime measurement list and, if anchored in a hardware Trusted Platform Module(TPM), an aggregate integrity value over this list provides the benefit of resiliency from software attacks.Recent enhancements in the IMA subsystem also allows for non file based attributes to be measured and attested remotely. Azure attestation supports non file based measurements to be attested remtoely to provide a holistic view of system integrity.
112+
Linux systems follow a similar boot process to Windows, and with TPM attestation the protection profile can be extended to beyond boot into the kernel as well using Integrity Measurement Architecture(IMA). IMA subsystem was designed to detect if files have been accidentally or maliciously altered, both remotely and locally, it maintains a runtime measurement list and, if anchored in a hardware Trusted Platform Module(TPM), an aggregate integrity value over this list provides the benefit of resiliency from software attacks. Recent enhancements in the IMA subsystem also allows for non file based attributes to be measured and attested remotely. Azure attestation supports non file based measurements to be attested remotely to provide a holistic view of system integrity.
113113

114114
Enabling IMA with the following ima-policy will enable measurement of non file attributes while still enabling local file integrity attestation.
115115

@@ -184,18 +184,18 @@ Note: Support for non-file based measurements are only available from linux kern
184184

185185
## TPM Key attestation support
186186

187-
Numerous applications rely on foundational credential management of keys and certs for protections against credential theft, and one of main ways of ensuring the credential security is the reliance of key storage providers that provide additional security from malware and attacks. Windows implements various cryptographic providers which can be either software or hardware based.
187+
Numerous applications rely on foundational credential management of keys and certs for protections against credential theft, and one of main ways of ensuring the credential security is the reliance of key storage providers that provide additional security from malware and attacks. Windows implements various cryptographic providers that can be either software or hardware based.
188188

189189
The two most important ones are:
190190

191-
* Microsoft Software Key Storage Provider : Standard provider which stores keys software based and supports CNG (Crypto-Next Generation)
191+
* Microsoft Software Key Storage Provider: Standard provider, which stores keys software based and supports CNG (Crypto-Next Generation)
192192

193-
* Microsoft Platform Crypto Provider : Hardware based which stores keys on a TPM (trusted platform module) and supports CNG as well
193+
* Microsoft Platform Crypto Provider: Hardware based which stores keys on a TPM (trusted platform module) and supports CNG as well
194194

195-
Whenever a Storage provider is used, it’s usually to create a pub/priv key pair which are chained to a root of trust. At creation additional properties can also be used to enable certain aspects of the key storage, exportability, etc. Key attestation in this context, is the technical ability to prove to a replying party that a private key was generated inside, and is managed inside, and in a not exportable form. Such attestation clubbed with other information can help protect from credential theft and replay type of attack.
195+
Whenever a Storage provider is used, it’s usually to create a pub/priv key pair that are chained to a root of trust. At creation more properties can also be used to enable certain aspects of the key storage, exportability, etc. Key attestation in this context, is the technical ability to prove to a replying party that a private key was generated inside, and is managed inside, and in a not exportable form. Such attestation clubbed with other information can help protect from credential theft and replay type of attack.
196196

197-
TPMs also provide the capability ability to attest that keys are resident in a TPM, enabling higher security assurance, backed up by non-exportability, anti-hammering, and isolation of keys. A very common use case is for applications that issue digital signature certificate for subscriber keys, verifying that the subscribers private signature key is generated and managed in an approved TPM.
198-
One can easily attest to the fact the keys are resident in a valid TPM with appropriate non-exportablity flags using a policy as below.
197+
TPMs also provide the capability ability to attest that keys are resident in a TPM, enabling higher security assurance, backed up by non-exportability, anti-hammering, and isolation of keys. A common use case is for applications that issue digital signature certificate for subscriber keys, verifying that the subscribers private signature key is generated and managed in an approved TPM.
198+
One can easily attest to the fact the keys are resident in a valid TPM with appropriate Nonexportability flags using a policy as below.
199199

200200
```
201201
version=1.2;

articles/attestation/tpm-attestation-sample-policies.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -313,7 +313,7 @@ c:[type=="events", issuer=="AttestationService"] => issue(type="DriverLoadPolicy
313313
314314
```
315315

316-
### Attestation policy for Key attestation, validating keys and propterties of the key.
316+
### Attestation policy for Key attestation, validating keys and properties of the key.
317317

318318
```
319319
version=1.2;

articles/attestation/virtualization-based-security-protocol.md

Lines changed: 9 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
---
2-
title: Virtualization-based Security (VBS) protocol for Azure Attestation
2+
title: Virtualization-based security (VBS) protocol for Azure Attestation
33
description: VBS attestation protocol
44
services: attestation
55
author: msmbaldwin
@@ -23,9 +23,7 @@ The protocol has 2 messages exchanges:
2323
* Init Message
2424
* Request Message
2525

26-
<B><U> Insert image of protocol messages </B></U>
27-
28-
### Init Message
26+
### Init message
2927
Message to establish context for the request message.
3028

3129
#### Direction
@@ -67,7 +65,7 @@ Payload containing the data that is to be attested by the attestation service.
6765

6866
Note: Support for IMA measurement logs and Keys has been added to Request message, and can be found in the Request Message V2 section
6967

70-
## Request Message V1
68+
## Request message v1
7169

7270
#### Direction
7371

@@ -89,7 +87,7 @@ BASE64URL(JWS Payload) || '.' ||
8987

9088
BASE64URL(JWS Signature)
9189

92-
##### JWS Protected Header
90+
##### JWS protected header
9391

9492
```
9593
{
@@ -99,7 +97,7 @@ BASE64URL(JWS Signature)
9997
}
10098
```
10199

102-
##### JWS Payload
100+
##### JWS payload
103101

104102
JWS payload can be of type basic or VBS. Basic is used when attestation evidence does not include VBS data.
105103

@@ -263,7 +261,7 @@ Azure Attestation -> Client
263261

264262
**report** (JWT): The attestation report in JSON Web Token (JWT) format (RFC 7519).
265263

266-
## Request Message V2
264+
## Request message v2
267265

268266

269267
```
@@ -277,7 +275,7 @@ BASE64URL(UTF8(JWS Protected Header)) || '.' ||
277275
BASE64URL(JWS Payload) || '.' ||
278276
BASE64URL(JWS Signature)
279277

280-
##### JWS Protected Header
278+
##### JWS protected header
281279
```
282280
{
283281
"alg": "PS256",
@@ -286,7 +284,7 @@ BASE64URL(JWS Signature)
286284
}
287285
```
288286

289-
#### JWS Payload
287+
#### JWS payload
290288

291289
JWS payload can be of type basic or vsm. Basic is used when attestation evidence does not include VSM data.
292290

@@ -626,7 +624,7 @@ TPM + VBS enclave example:
626624
}
627625
```
628626

629-
**rp_id** (StringOrURI): Relying party identifier. Used by the service in the computation of the machine id claim.
627+
**rp_id** (StringOrURI): Relying party identifier. Used by the service in the computation of the machine ID claim.
630628

631629
**rp_data** (BASE64URL(OCTETS)): Opaque data passed by the relying party. This is normally used by the relying party as a nonce to guarantee freshness of the report.
632630

0 commit comments

Comments
 (0)