DSC-iTC / cPP

Dedicated Security Components cPP & SD
MIT License
3 stars 3 forks source link

Update FPT_PRO_EXT.2 and its test #305

Closed jvdsn closed 3 months ago

jvdsn commented 3 months ago

Based on my interpretation of the cPP and its glossary, FPT_PRO_EXT.2 is supposed to describe the requirements on the RoT for Measurement. From the [GP_ROT]:

The Root of Trust for Measurement provides the ability to reliably create platform characteristics. The Root of
Trust for Measurement may calculate the cryptographic hashes of code and data. The Root of Trust for
Measurement may convey such platform characteristics to other Roots of Trust or may allow the platform
characteristics to be used by other RoT Security Services, such as the Root of Trust for Integrity, the Root of
Trust for Verification, and the Root of Trust for Update. An implementer using the Root of Trust for
Measurement may perform a measurement once prior to using the measured resource for the first time, or
periodically, as policy dictates.

With that in mind, this update makes it more explicit that this SFR applies to more than just SDO/SDE data, but really the entire state of the DSC. It is an Optional SFR, but should really be selection-based based on whether the RoT for Measurement is present.

This PR also removes the "making them available to authorized entities" and "produce attestation of" parts of the FPT_PRO_EXT.2 SFR. In my opinion, that wording is more relevant to the RoT for Reporting, which creates reports based on the measurements, thus FPT_ROT_EXT.3.

Then, the test for FPT_PRO_EXT.2 was updated. As identified in #284, the current tests for FPT_PRO_EXT.2 don't make sense. Because this SFR is much broader than just SDO/SDE data, it should have a dedicated test. The idea behind the test is to first record the platform characteristics in a "normal" state, then modify some DSC data, and verify that the platform characteristics changed. Finally, the modifications are reverted and the platform characteristics should be as before. This ensures that the measurements are performed in a consistent manner (i.e., not randomized) and can also detect the modifications as they are supposed to.