Skip to content

Commit 2dcd17e

Browse files
authored
Update README.md (#100)
Add information about new papers
1 parent 7a253de commit 2dcd17e

File tree

1 file changed

+29
-35
lines changed

1 file changed

+29
-35
lines changed

README.md

Lines changed: 29 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -6,14 +6,14 @@
66
ACE-RISCV is an open-source project, whose goal is to deliver a confidential computing framework with a formally proven security monitor. It is based on the [canonical architecture](https://dl.acm.org/doi/pdf/10.1145/3623652.3623668) and targets RISC-V with the goal of being portable to other architectures. The formal verification efforts focus on the [security monitor implementation](security-monitor/). We invite collaborators to work with us to push the boundaries of provable confidential computing technology.
77

88
**Formal verification:**
9-
This project implements the RISC-V CoVE spec's deployment model 3 referenced in [Appendix D](https://github.com/riscv-non-isa/riscv-ap-tee/blob/main/). The formal specification is embedded in the security monitor's source code and the proofs are in the [verification/](verification/) folder. Please read our [paper](https://dl.acm.org/doi/pdf/10.1145/3623652.3623668) to learn about the approach and goals.
9+
This project implements the RISC-V CoVE spec's deployment model 3 referenced in [Appendix D](https://github.com/riscv-non-isa/riscv-ap-tee/blob/main/). The formal specification is embedded in the security monitor's source code and the proofs are in the [verification/](verification/) folder. Please read our [paper1](https://arxiv.org/pdf/2505.12995) and [paper2](https://dl.acm.org/doi/pdf/10.1145/3623652.3623668) to learn about the approach and goals.
1010

1111
**Post-Quantum Cryptography (PQC) and Attestation**: ACE supports local attestation, a mechanism to authenticate confidential VMs intended for embedded systems with limited or no network connectivity. We already support PQC, specifically we use ML-KEM, SHA-384, and AES-GCM-256 cryptography.
1212

1313
## Hardware requirements
1414
We are currently building on RISC-V 64-bit with integer (I), atomic (A) and hypervisor extentions (H), physical memory protection (PMP), memory management unit (MMU), IOPMP, core-local interrupt controller (CLINT), and supervisor timecmp extension (Sstc).
1515

16-
**Real RISC-V hardware to run ACE:**
16+
**RISC-V hardware to run ACE:**
1717
* SiFive P550 evaluation board, [see instructions](security-monitor/platform/p550).
1818

1919
## Quick Start
@@ -128,47 +128,20 @@ You should see the output from the boot process and a promt to login to the hype
128128
# login: root, password: passwd
129129
```
130130

131-
To run the sample Linux OS as a confidential VM (login: root, password: passwd) execute.
132-
This demonstrates automatic promotion of a VM to TVM:
131+
To run the sample Linux OS as a confidential VM (login: root, password: passwd) execute:
133132
```
134133
./run_linux_vm_qemu.sh
135134
```
136135

137-
Run the sample Linux OS as a confidential VM using kvmtool.
136+
You should see the output indicating that local attestation suceeded:
138137
```
139-
./run_linux_vm_kvmtool.sh
140-
```
141-
142-
## Local attestation
143-
Local attestation allows you to expose secrets (e.g., dm-crypt/LUKS key, TLS pre-shared key, etc) to your confidential VM in a secure way.
144-
145-
Collect reference measurements of your virtual machines, like kernel, initrd, initial boot hart state.
146-
Below as, an example, we just collect the kernel measurement (for automatic promotion):
147-
```
148-
cove-tap-tool measure --kernel-file $ACE_DIR/confidential_vms/linux_vm/buildroot/images/Image
149-
# Example output:
150-
# Digest 0x86774eec200ca6552cbc50211e4b32e7a4ba815c190d56b11ffabc8df1ebb6d9c41d04a64099d860b90c65729a28ded8
151-
```
152-
153-
Create a TVM attestation payload (TAP) that contains a secret (0xc0ffee), which will be release to confidential VMs whose measurement in PCR4 equals the reference measurement of your kernel.
154-
Please note that in real systems you would define values of more PCRs to ensure the integrity of the firmware, security monitor, initrd, etc.
155-
```
156-
cove-tap-tool generate --output-file=$ACE_DIR/cove_tap --pcrs 4=0x86774eec200ca6552cbc50211e4b32e7a4ba815c190d56b11ffabc8df1ebb6d9c41d04a64099d860b90c65729a28ded8 --secrets 0=0xc0ffee
157-
# Example output:
158-
# Writing PCR4=86774eec200ca6552cbc50211e4b32e7a4ba815c190d56b11ffabc8df1ebb6d9c41d04a64099d860b90c65729a28ded8
159-
# Writing secret 0
160-
```
161-
162-
Attach the TAP to the kernel image:
163-
```
164-
cove-tap-tool append --tap-file=$ACE_DIR/cove_tap --kernel-file=$ACE_DIR/confidential_vms/linux_vm/buildroot/images/Image
138+
#ACE: Reference PCR4=Sha512=0x86774eec200ca6552cbc50211e4b32e7a4ba815c190d56b11ffabc8df1ebb6d9c41d04a64099d860b90c65729a28ded8
139+
#ACE: Attestation succeeded, read 1 secret
165140
```
166141

167-
Run again the hypervisor and then your confidential VM (see section `Run and Test`).
168-
You should see the output
142+
You can login now to the confidential VM:
169143
```
170-
#ACE: Reference PCR4=Sha512=0x86774eec200ca6552cbc50211e4b32e7a4ba815c190d56b11ffabc8df1ebb6d9c41d04a64099d860b90c65729a28ded8
171-
#ACE: Attestation succeeded, read 1 secret
144+
# login: root, password: passwd
172145
```
173146

174147
You can read the secret from the inside of the confidential VM:
@@ -194,6 +167,17 @@ This repository is distributed under the terms of the Apache 2.0 License, see [L
194167
**This is an active research project, without warranties of any kind.**
195168

196169
# Citation
170+
**Our newest full paper on ACE:**
171+
```
172+
@misc{ozga2025ace,
173+
author = {Ozga, Wojciech and Hunt, Guerney D. H. and Le, Michael V. and Gaeher Lennard and Shinnar, Avraham and Palmer, Elaine R. and Jamjoom, Hani and Dragone, Silvio},
174+
title = {ACE: Confidential Computing for Embedded RISC-V Systems},
175+
year = 2025,
176+
howpublished = {\url{https://arxiv.org/pdf/2505.12995}}
177+
}
178+
```
179+
180+
**Our workshop paper on ACE:**
197181
```
198182
@inproceedings{ozga2023riscvtee,
199183
title={Towards a Formally Verified Security Monitor for VM-based Confidential Computing},
@@ -203,3 +187,13 @@ This repository is distributed under the terms of the Apache 2.0 License, see [L
203187
year={2023}
204188
}
205189
```
190+
191+
**Our paper on context switch validation:**
192+
```
193+
@misc{kalani2025sailor,
194+
author = {Kalani, Neelu and Bourgeat, Thomas and Hunt, Guerney D.H. and Ozga, Wojciech},
195+
title = {Save what must be saved: Secure context switching with Sailor},
196+
year = 2025,
197+
howpublished = {\url{https://arxiv.org/pdf/2502.06609}}
198+
}
199+
```

0 commit comments

Comments
 (0)