8000 Add AK cert support in VerifyAttestation by alexmwu · Pull Request #149 · google/go-tpm-tools · GitHub
[go: up one dir, main page]
More Web Proxy on the site http://driver.im/
Skip to content

Add AK cert support in VerifyAttestation #149

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

Merged
merged 10 commits into from
Dec 22, 2021
Merged

Conversation

alexmwu
Copy link
Contributor
@alexmwu alexmwu commented Dec 13, 2021

client: Added a cert field to client.Key and ak_cert to Attestation. Eventually, users will be able to manually add a cert and we can add support for fetching EK certs from the known index. For GCE AKs, this fetches the cert from the known NV indexes.

server: VerifyAttestation now takes in a Root and Intermediate CertPool. Used to verify the ak_cert against trusted CAs.
This adds a dependency on https://pkg.go.dev/github.com/google/certificate-transparency-go/x509 due to a different SAN extension and unknown OID extended key usage for EKs/AKs.

Copy link
@iKevinY iKevinY left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code style LGTM, but pending @jkl73's and @josephlr's reviews on implementation specifics as usual.

Attestation messages will use the ak_cert field as an alternative to
establish trust in the quotes. The server must trust the root CAs that
sign the given cert, otherwise attesation will fail.

Regenerate the golang structs
Add cert field to a key, which will eventually allow users to manually
set the cert (for EKs can try to fetch from the correct index).
For GCE AKs, fetch the certs from the known NV indexes.
Embed known GCE root/intermediate CA certs for the server verifier to
use on AK (and eventually EK) certs.
Add COS 85-generated attestation messages containing GCE AK certificates
in the message.
VerifyAttestation can now take a pool of trusted AK cert roots and
intermediates. VerifyAttestation will use these to validate a given
ak_cert passed in the Attestation message. If validation is successful,
VerifyAttestation will use then continue to validate the quote against
the AK in the certificate.
Update names per code review and fetch the EK certs for known RSA and
ECC certificates.
Signed-off-by: Joe Richey <joerichey@google.com>
@josephlr josephlr merged commit 7692c0c into google:master Dec 22, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants
0