bluegate010
Joined 14 years ago
Joined 14 years ago
A more ergonomic approach for sealing long-lived data is to use something like a hash chain [0], where the chain starts with the equivalent of a DICE UDS, and the chain's length is (MAX_VERSION - fw.version). The end of that chain is given to firmware, and the firmware can lengthen the chain to derive older firmware's secrets, but cannot shorten it to derive newer firmware's secrets.
This presumes that the firmware is signed of course, since otherwise there'd be no way to securely associate the firmware with a version number. If the public key is not baked into the HSM, then the hash of the public key should be used to permute the root of the hash chain.
Disclaimer: opinions are my own, not my employer's (Google)
> It is conceivable that contributors, unlike owners and maintainers, could be anonymous, but only if their code has passed multiple reviews by trusted parties. It is also conceivable that we could have “verified” identities, in which a trusted entity knows the real identity, but for privacy reasons the public does not. This would enable decisions about independence as well as prosecution for illegal behavior.
In our view, trusted computing has applications well beyond DRM.
Specifically for attestation purposes, Asylo defines the EnclaveAssertionGenerator[1] and EnclaveAssertionVerifier[2] interfaces; these will need technology-specific implementations.
In this initial release we only support a simulated backend, for experimental development. We'll continue looking into specific TEE technologies going forward.
[1] https://github.com/google/asylo/blob/master/asylo/identity/e...
[2] https://github.com/google/asylo/blob/master/asylo/identity/e...
Obvious disclaimer: currently working at Google on Asylo.
In addition, traditional secure boot doesn't give us a hardware root of trust, nor does it enable tamper-evident logging.
Video: https://youtu.be/F-Y7fhIasjM