AMD SEV Virtual Machine Support

Hi folks, I wanted to give a quick update about SEV-SNP. There has been a lot of interest from the community around the its use and its potential to provide integrity protection and confidentiality to the replica nodes.

At DFINITY, we’ve been working for several months with the goal of rolling out SEV replicas to a subnet, and in the December 6th Global R&D, we demoed some of that work: SEV-SNP enabled replicas spinning up and joining a testnet after mutually attesting each other.

However, there is still some work to do specifically around replica upgrades, network integration and enabling disk and memory encryption.

For the time being, we are going to prioritize leveraging SEV-SNP to enhance the security of the boundary nodes instead of the replicas. As you may be aware, there is a roadmap to decentralize the boundary nodes that is being executed. It includes splitting the boundary nodes into an API boundary node and an HTTP Gateway.

  • API boundary nodes: Provide an endpoint that handles API canister calls by routing them to the correct subnet and replica node, and provides caching and rate-limiting to protect the IC. These nodes will be run by NNS-approved node providers and managed by the NNS.
  • HTTP gateways: Provide endpoints that terminate TLS and translate user HTTP requests to API canister calls. These nodes can be run by anyone.

SEV-SNP can be used to improve the security of these new components:

The first phase will be to use SEV-SNP for the HTTP gateways. Users would be able to independently verify that they are querying a known version of the gateway and be confident that the gateway is not intercepting or tampering with the traffic flowing through it. This is especially beneficial now that the service worker has been removed and we rely on the gateway for certifying HTTP responses.

The second phase will be to use SEV for the API boundary nodes. Today, a lot of the metrics that power the dashboard are emitted by the boundary nodes. API boundary nodes running on SEV-SNP increases the confidence in the accuracy of the scraped metrics. Moreover, it will ensure that the content of the API calls proxied by the API boundary nodes cannot be read by Node Providers.

Because these components are stateless, it removes a level of complexity and gives an opportunity to vet the technology before using it on replicas.

12 Likes