Skip to content
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

Support verifying DCAP evidence #65

Open
wants to merge 3 commits into
base: main
Choose a base branch
from

Conversation

nick-mobilecoin
Copy link
Contributor

@nick-mobilecoin nick-mobilecoin commented May 31, 2023

Add an MCIP which describes how the DCAP verification logic should live
side by side with the EPID logic for the clients.

Rendered MCIP

Add an MCIP which describes how the DCAP verification logic should live
side by side with the EPID logic for the clients.
@cbeck88
Copy link
Contributor

cbeck88 commented Jun 13, 2023

One thing that's not clear to me is, how do I get the "report data" after this change?

This is needed when clients get the fog report: https://github.com/mobilecoinfoundation/mobilecoin/blob/master/fog/report/resolver/src/lib.rs

https://github.com/mobilecoinfoundation/mobilecoin/blob/2eb944aed82d050be2209fa78a2358d4c095866f/fog/ingest/report/src/lib.rs#L30

Does that part all work the same, it's just the validate functions that are changing?

@cbeck88
Copy link
Contributor

cbeck88 commented Jun 13, 2023

What is the Get Enclave Key function and Key in this diagram? that doesn't ring any bells for me. Is that like the key for noise handshake?

@nick-mobilecoin
Copy link
Contributor Author

@cbeck88
Copy link
Contributor

cbeck88 commented Jun 13, 2023

I'd suggest, maybe this arrow should be Get Report Data, and then we can clarify that the report data might be a key or might not be.

@cbeck88
Copy link
Contributor

cbeck88 commented Jun 13, 2023

The way that stuff is defined is through EnclaveIdentity objects like here:

https://github.com/mobilecoinfoundation/mobilecoin/blob/2eb944aed82d050be2209fa78a2358d4c095866f/consensus/enclave/impl/src/identity.rs#L4

https://github.com/mobilecoinfoundation/mobilecoin/blob/master/fog/ingest/enclave/impl/src/identity.rs

The trait is here:

https://github.com/mobilecoinfoundation/mobilecoin/blob/2eb944aed82d050be2209fa78a2358d4c095866f/crypto/ake/enclave/src/identity.rs#L10

And it gets pulled in when forming reports here:

https://github.com/mobilecoinfoundation/mobilecoin/blob/2eb944aed82d050be2209fa78a2358d4c095866f/crypto/ake/enclave/src/lib.rs#L646

But I'm not sure we need to get into it in this MCIP, except to say that the enclave decides what values its report data has. DCAP doesn't care about what bytes are in the report data.

@cbeck88
Copy link
Contributor

cbeck88 commented Jun 13, 2023

The report data is 64 bytes, and usually the first 32 bytes is the noise X25519 identity for attested connections with clients and peers, and the second key is like the ed25519 block signing key in consensus, and its the ristretto ingress key in fog ingest

Per 0000-template the MCIP should be worded as if it was already
implemented and it's explaining to a new user.
@nick-mobilecoin nick-mobilecoin marked this pull request as ready for review December 1, 2023 17:04
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
3 participants