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

[doc] Manifest-Based Image Auth #1749

Merged
merged 1 commit into from
Oct 30, 2024
Merged

[doc] Manifest-Based Image Auth #1749

merged 1 commit into from
Oct 30, 2024

Conversation

swenson
Copy link
Contributor

@swenson swenson commented Oct 29, 2024

This adds sections describing the Manifest-Based Image Authorization system.

I cleaned up a little bit of the manifest-based image auth commands and added some overview sections for what is new in the 1.1 and 1.2 runtime firmware to help keep things organized.

I've addressed most of the comments from #1745 that I could. I don't necessarily know all of the details, and not everything has been merged yet (e.g., #1705), but I've tried to sync everything up with the latest version of the docs and code.


The Caliptra-Endorsed Local Verifier could be required by the owner only or both the vendor and the owner.

The main difference between Caliptra-Endorsed Aggregated Measured Boot and Caliptra-Endorsed Local Verifier is if the SoC RoT is relying on the Measurement Manifest for SoC Secure Boot services as opposed as using it as an additional verification.
Copy link
Contributor

@fdamato fdamato Oct 29, 2024

Choose a reason for hiding this comment

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

it is still not clear to me the difference between the 2 usage models.
- In case of "Caliptra-Endorsed Local Verifier" what is the remediation action SOC Manager should take in case of failure ? Assuming boot is not stopped.

Also being Calipta the RTM for the SOC, I would encourage Caliptra RT FW to attest to this failure in the DPE (How ???) Certificate.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

It's not 100% clear to me either. Maybe @mhatrevi can weigh in?

Copy link
Contributor

Choose a reason for hiding this comment

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

Thanks Chris. I really would like to understand better the difference between usage models.

Copy link
Contributor

Choose a reason for hiding this comment

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

Unresolving as I have the same question.

  • The "Caliptra-Endorsed Aggregated Measured Boot" section states that one signed manifest includes measurements for a collection of different components.
  • The "Caliptra-Endorsed Local Verifier" section first paragraph states that measurements of components are compared to a manifest.

Those sound like the same thing.

The main difference between Caliptra-Endorsed Aggregated Measured Boot and Caliptra-Endorsed Local Verifier is if the SoC RoT is relying on the Measurement Manifest for SoC Secure Boot services as opposed as using it as an additional verification.

So in both models the SoC is checking in with Caliptra whenever it boots code. In the second model the SoC is doing its own verification on top of that. If that's the case, it seems like we could just describe a single model of manifest flows. We can just say that this is a feature that SoCs can rely on, and they can optionally also do their own verification on top of that.

Copy link
Contributor

Choose a reason for hiding this comment

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

Have filed as #1757

@mhatrevi mhatrevi added the Caliptra v2.0 Items to be considered for v2.0 Release label Oct 30, 2024
This adds sections describing the Manifest-Based Image Authorization
system.

I cleaned up a little bit of the manifest-based image auth commands and
added some overview sections for what is new in the 1.1 and 1.2 runtime
firmware to help keep things organized.
@vsonims vsonims enabled auto-merge (squash) October 30, 2024 18:07
@vsonims vsonims merged commit b03cb6e into main-2.x Oct 30, 2024
8 checks passed

### Caliptra-Endorsed Local Verifier

A local verifier provides an authentication of SoC FW by matching SoC FW measurements with measurements from the Caliptra measurement manifest. In this case, the SoC RoT still has its own FW public-key chain that is verified by the SoC RoT, but in addition the SoC RoT introduces the Caliptra Measurement Manifest, which is endorsed by the Caliptra FW key pair. Caliptra provides approval or disapproval of the measurement of any FW back to the SoC RoT. This effectively provides a multi-factor authentication of SoC FW.
Copy link
Contributor

Choose a reason for hiding this comment

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

FW public-key chain

It's ambiguous whether this is a firmware signing key chain or a firmware attestation key chain. I presume this is the former.


### Caliptra-Endorsed Local Verifier

A local verifier provides an authentication of SoC FW by matching SoC FW measurements with measurements from the Caliptra measurement manifest. In this case, the SoC RoT still has its own FW public-key chain that is verified by the SoC RoT, but in addition the SoC RoT introduces the Caliptra Measurement Manifest, which is endorsed by the Caliptra FW key pair. Caliptra provides approval or disapproval of the measurement of any FW back to the SoC RoT. This effectively provides a multi-factor authentication of SoC FW.
Copy link
Contributor

Choose a reason for hiding this comment

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

Caliptra FW key pair

Caliptra FW signing key pair I presume, to disambiguate from DICE.

Is this the vendor signing key or owner signing key?


### Caliptra-Endorsed Local Verifier

A local verifier provides an authentication of SoC FW by matching SoC FW measurements with measurements from the Caliptra measurement manifest. In this case, the SoC RoT still has its own FW public-key chain that is verified by the SoC RoT, but in addition the SoC RoT introduces the Caliptra Measurement Manifest, which is endorsed by the Caliptra FW key pair. Caliptra provides approval or disapproval of the measurement of any FW back to the SoC RoT. This effectively provides a multi-factor authentication of SoC FW.
Copy link
Contributor

Choose a reason for hiding this comment

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

multi-factor authentication

Bike-shedding here but I feel like "joint authentication" might be a better term, to avoid connotations of human-driven multi-factor authentication flows.


### Caliptra-Endorsed Local Verifier

A local verifier provides an authentication of SoC FW by matching SoC FW measurements with measurements from the Caliptra measurement manifest. In this case, the SoC RoT still has its own FW public-key chain that is verified by the SoC RoT, but in addition the SoC RoT introduces the Caliptra Measurement Manifest, which is endorsed by the Caliptra FW key pair. Caliptra provides approval or disapproval of the measurement of any FW back to the SoC RoT. This effectively provides a multi-factor authentication of SoC FW.
Copy link
Contributor

Choose a reason for hiding this comment

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

A local verifier provides an authentication of SoC FW by matching SoC FW measurements with measurements from the Caliptra measurement manifest.

So what is a "local verifier"? Is it a piece of logic living inside Caliptra? Is it a role that is shared with the SoC?


A local verifier provides an authentication of SoC FW by matching SoC FW measurements with measurements from the Caliptra measurement manifest. In this case, the SoC RoT still has its own FW public-key chain that is verified by the SoC RoT, but in addition the SoC RoT introduces the Caliptra Measurement Manifest, which is endorsed by the Caliptra FW key pair. Caliptra provides approval or disapproval of the measurement of any FW back to the SoC RoT. This effectively provides a multi-factor authentication of SoC FW.

The Caliptra-Endorsed Local Verifier could be required by the owner only or both the vendor and the owner.
Copy link
Contributor

Choose a reason for hiding this comment

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

What does it mean for a local verifier to be "required" by a vendor or owner? Is the functionality enabled or disabled based on whether it is required?


The Caliptra-Endorsed Local Verifier could be required by the owner only or both the vendor and the owner.

The main difference between Caliptra-Endorsed Aggregated Measured Boot and Caliptra-Endorsed Local Verifier is if the SoC RoT is relying on the Measurement Manifest for SoC Secure Boot services as opposed as using it as an additional verification.
Copy link
Contributor

Choose a reason for hiding this comment

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

Unresolving as I have the same question.

  • The "Caliptra-Endorsed Aggregated Measured Boot" section states that one signed manifest includes measurements for a collection of different components.
  • The "Caliptra-Endorsed Local Verifier" section first paragraph states that measurements of components are compared to a manifest.

Those sound like the same thing.

The main difference between Caliptra-Endorsed Aggregated Measured Boot and Caliptra-Endorsed Local Verifier is if the SoC RoT is relying on the Measurement Manifest for SoC Secure Boot services as opposed as using it as an additional verification.

So in both models the SoC is checking in with Caliptra whenever it boots code. In the second model the SoC is doing its own verification on top of that. If that's the case, it seems like we could just describe a single model of manifest flows. We can just say that this is a feature that SoCs can rely on, and they can optionally also do their own verification on top of that.

@swenson swenson deleted the fw-spec-2.0-mba branch October 30, 2024 20:01
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Caliptra v2.0 Items to be considered for v2.0 Release
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants