-
Notifications
You must be signed in to change notification settings - Fork 0
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Investigate RISC-V confidential computing solutions #152
Comments
Okay, i've looked at the both solutions for a bit, and here are some of my considerations: Keystone
CoVEWith this one we have quite an interesting story. The documentation seems to be at v0.7, but there is no central repository or any cross-references to other CoVE repos. From what i've grasped from different docs, CoVE is a separate RISC-V extension (dosc), that leverages some other non-ISA RISC-V extensions like SMMTT or IOMMU to implement some of its' CVM capabilities.
The official v0.7 documentation dictates (the models are simplified, please refer to p.30 of specification doc for further details) 3 deployment models:
For the 3 official models i believe that adding miralis to the picture would look somewhat similar to Keystone's scheme. And remember about the unofficial deployment model? Well, in the Rivos repo for CoVE, a model is proposed that allows for the operation of CoVE with Miralis without any modifications.:
|
Apparently, there is a RISC-V VM-based TEE from IBM, called ACE, that implements the RISC-V CoVE spec's deployment model 3. The project seems to be supported and constantly updated, unlike Salus, and aims to have a formally verifiable Security Monitor (albeit it's size is ~9000 LoC). |
Ho interesting, yes indeed we should probably investigate that project too, good catch 🙂 |
The primary goal of Miralis is to remove the firmware from the trusted computing base (TCB), so far we mostly tested that firmware and payloads works without modifications but we didn't demonstrate a compelling use case for Miralis yet.
The goal of this issue is to investigate different options to built a demonstrator.
The area where Miralis brings the most value is confidential computing, that is where we really care about small and well defined TCB. I have two confidential computing frameworks in mind that would be got fits, so we will need to explore each of those and decide which one we want to go for.
The questions we need to answer for each option are:
In addition we want to collect all relevant links (docs, source code, papers, blog posts, or anything potentially useful).
Keystone
The first is Keystone. Keystone is pretty old and well established now (the paper is from 2020), it is a system that allows to create user-space enclaves on RISC-V by using a M-mode security monitor and a S-mode runtime for the enclaves.
Keystone is built on top of OpenSBI, so includes the all of it in the TCB. We could re-build the M-mode portion of Keystone on top of Miralis and push OpenSBI outside of the TCB in vM-mode to offer enclaves without firmware in the TCB.
Links:
CoVE
CoVE is a RISC-V effort to develop an architecture extension that offers support for confidential VMs. This seems to be mostly an industry-lead effort (whereas Keystone is much more academic-focused), it is more recent than keystone and seems to have broader community support. I am not sure if CoVE is the official name, the extension is called
SmMTT
where MTT stands for Memory Tracking Table.Similar to Keystone, the confidential computing capabilities need to be integrated into an existing M-mode software. I don't know if there are existing implementations (maybe in OpenSBI or a fork of it?). I am not sure what is the current state of the proposal (is it ratified, or still evolving?) and support in the ecosystem.
Links:
The text was updated successfully, but these errors were encountered: