Skip to content
This repository was archived by the owner on Jan 26, 2024. It is now read-only.

Commit abf9d1b

Browse files
authored
Update ssh-key-exchange.md
Fix broken links.
1 parent 1171f32 commit abf9d1b

File tree

1 file changed

+5
-5
lines changed

1 file changed

+5
-5
lines changed

docs/ssh-key-exchange.md

+5-5
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,8 @@ In this example, a Guest Owner will request a new guest instance from a remote c
66

77
The following diagram shows the high-level component relationships:
88

9-
[design]: docs/images/remote-attestation-design.jpg "Remote Attestation Design"
10-
![design](docs/images/remote-attestation-design.jpg)
9+
[design]: images/remote-attestation-design.jpg "Remote Attestation Design"
10+
![design](images/remote-attestation-design.jpg)
1111

1212
**Cloud Provider CLI/VMM**
1313
* This component includes the user interface to the Cloud Provider's infrastructure as well as the backend virtual machine manager that is responsible for launching guest images.
@@ -93,7 +93,7 @@ Untrusted components are assumed to be malicious and may be conspiring with each
9393

9494
## Cloud-init user-data integrity
9595

96-
Since our threat model considers all cloud-provider infrastructure to be untrusted, it must be noted that the user-data provided to cloud-init has no integrity protection. Thus, it is possible for a malicious actor to alter the guest configuration, run arbitrary commands, or prevent key commands from running. One way to address this is to perform the attestation flow in this example earlier in the boot process, such as in the initrd, and make use of a measured boot scheme to protect the initrd. Future examples in this repository will demonstrate this approach. See [Future Work](#future-work) below.
96+
Since our threat model considers all cloud-provider infrastructure to be untrusted, it must be noted that the user-data provided to cloud-init has no integrity protection. Thus, it is possible for a malicious actor to alter the guest configuration, run arbitrary commands, or prevent key commands from running. One way to address this is to perform the attestation flow in this example earlier in the boot process, such as in the initrd, and make use of a measured boot scheme to protect the initrd. Future examples in this repository will demonstrate this approach. See [Future Work](../README.md#future-work).
9797

9898
## Identity
9999
In this example, the Guest Owner verifies the SNP attestation report with the following series of checks:
@@ -106,8 +106,8 @@ In this example, the Guest Owner verifies the SNP attestation report with the fo
106106

107107
In the SEV-SNP architecture, the identity of the guest instance is established by the ID Block, which contains the public portion of a key pair that identifies the Guest Owner. This key is called the ID key. The ID block also contains the expected launch measurement of the guest instance. This ID block is copied into guest memory by the SEV-SNP firmware during the launch sequence and binds the Guest Owner's identity to that guest instance. If the ID block is present for a guest instance, then the attestation report generated by the SEV-SNP firmware will contain the hash of the ID key as well as the expected launch measurement. In this way, the attestation report attests to both the identity of the guest instance as well as the launch integrity.
108108

109-
This example does not yet configure the ID block when launching the guest, so the ID key and the launch measurement are currently set to 0 in the attestation report. As such, they are not checked by the Guest Owner. To realize the full security promise of SEV-SNP, production environments must configure these fields during launch. Similarly, Guest Owners should validate these fields in the attestation report in addition to the checks listed above. Future updates to this repository will demonstrate how to do this. See [Future Work](#future-work) below.
109+
This example does not yet configure the ID block when launching the guest, so the ID key and the launch measurement are currently set to 0 in the attestation report. As such, they are not checked by the Guest Owner. To realize the full security promise of SEV-SNP, production environments must configure these fields during launch. Similarly, Guest Owners should validate these fields in the attestation report in addition to the checks listed above. Future updates to this repository will demonstrate how to do this. See [Future Work](../README.md#future-work).
110110

111111
## Disk Image Protection
112112

113-
While SEV-SNP provides strong confidentiality and integrity guarantees for data in use, these protections do not extend to data at rest. Specifically, the virtual disk that contains the guest's root filesystem is typically implemented as a file under the control of the hypervisor. Since the hypervisor is untrusted in this example, a complete solution would include an encrypted disk image to protect the confidentiality of the filesystem. Future examples in this repository will demonstrate how to use the attestation flow to setup a secure communication channel early in the guest boot sequence and receive the key to unlock an encrypted disk. See [Future Work](#future-work) below.
113+
While SEV-SNP provides strong confidentiality and integrity guarantees for data in use, these protections do not extend to data at rest. Specifically, the virtual disk that contains the guest's root filesystem is typically implemented as a file under the control of the hypervisor. Since the hypervisor is untrusted in this example, a complete solution would include an encrypted disk image to protect the confidentiality of the filesystem. Future examples in this repository will demonstrate how to use the attestation flow to setup a secure communication channel early in the guest boot sequence and receive the key to unlock an encrypted disk. See [Future Work](../README.md#future-work).

0 commit comments

Comments
 (0)