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

tee manufacturer draft #34

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

Conversation

kylehogan
Copy link
Collaborator

Draft for the TEE manufacturer. Should it have references?
Also see: #32 which adds the TEE operator and #33 which adds the TEE itself.


#### 1.9.1 Assets

1. Private keys embedded in TEEs and their corresponding public keys.
1. Private keys embedded in TEEs. These mush be confidential and known only to the TEE.
2. List of public keys corresponding to valid attestation/identity private keys embedded in TEEs. This list must be correct in that it contains only the public keys corresponding to private keys embedded in the hardware of TEEs that were manufactured according to the desired specification. If this is not the case, then valid attestations may be provided by hardware that does have the expected properties or guarantees. It must also be public so that parties other than the manufacturer are able to recognize valid TEE hardware.
Copy link
Collaborator

Choose a reason for hiding this comment

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

Is it really the case that this is a list? There are a bunch of ways of formulating this, but I believe that the public information is generally abstracted in some way, if only because it is easier to move a small set of intermediate certificates (or equivalent) than a whole list.

Maybe a different way to approach this is to just say:

Information about the current set of public keys that are deployed in TEEs that are considered valid. A TEE is considered valid if it provides the properties or guarantees required of an application. Over time, the set of TEEs that are considered valid will change as new hardware is manufactured or attacks are discovered that disqualify specific TEE implementations. A TEE manufacturer needs to provide information or services that can enable users of TEEs to determine whether a given public key corresponds to a private key that is deployed in a TEE that is considered valid. In practice, TEE manufacturers generally use a public key infrastructure (PKI) system for this purpose.

Copy link
Collaborator Author

Choose a reason for hiding this comment

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

Yep, list is not correct. I like your suggestion.

Copy link
Collaborator Author

Choose a reason for hiding this comment

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

made an attempt at incorporating in 09aa86c

1. Private keys embedded in TEEs and their corresponding public keys.
1. Private keys embedded in TEEs. These mush be confidential and known only to the TEE.
2. List of public keys corresponding to valid attestation/identity private keys embedded in TEEs. This list must be correct in that it contains only the public keys corresponding to private keys embedded in the hardware of TEEs that were manufactured according to the desired specification. If this is not the case, then valid attestations may be provided by hardware that does have the expected properties or guarantees. It must also be public so that parties other than the manufacturer are able to recognize valid TEE hardware.
3. TEE hardware
Copy link
Collaborator

Choose a reason for hiding this comment

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

Is this "Access to TEE hardware during manufacture. As manufacture includes the provision of private keys into TEE hardware, the TEE manufacturer potentially knows, and could use, private keys to generate attestations."

...or is that a capability?

Copy link
Collaborator Author

Choose a reason for hiding this comment

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

For "TEE hardware" I was more going for that they can literally construct whatever they want, according to spec or not.

I do think It's worth mentioning that the manufacturer probably knew the private keys at some point and is expected to do a good job forgetting about them (though might not). Trying to construct enclaves where the key is not known at any point (potentially via a PUF) is an interesting problem.

1. If an attacker controls both the cloud provider and the TEE manufacturer, decrypt all data within the TEE.
1. Construct TEEs
2. Embed private attestation/identity keys in TEEs
3. Maintain PKI for TEEs
Copy link
Collaborator

Choose a reason for hiding this comment

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

Given the framing above, this is more about moving public keys in or out of the set of those that are considered valid. That a PKI is used for this is detail.

Copy link
Collaborator Author

Choose a reason for hiding this comment

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

Agreed, but doesn't calling it a PKI still work here? However it's implemented it will still need to map public keys to valid identities.

Copy link
Collaborator

Choose a reason for hiding this comment

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

My understanding is that "PKI" has very specific connotations for most people.

Copy link
Collaborator Author

Choose a reason for hiding this comment

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

changed to "Act as authority on which keys are considered valid TEE attestation/identity keys" in f01ced2

1. Collusion between the TEE manufacturer and TEE operator: not resolvable through technical means. The manufacturer could publish a fake public key such that the corresponding private key is known to the TEE operator, allowing it to provide valid attestations without any of the guarantees of a TEE.
2. Confidentiality of TEE private keys: The manufacturer should not store private attestation/identity keys beyond what was required to embed them in the TEE hardware. Otherwise, a data breach at the manufacturer would allow impersonation of existing TEEs, compromising authenticity.
3. PKI: The manufacturer should maintain their TEE PKI according to best practices. In particular they must maintain confidentiality of their root key and provide a mechanism for revocation. Compromise of the root key necessarily compromises authenticity of all associated TEEs.
4. Construction of TEEs: If a TEE is not constructed according to specification then it may not provide the expected confidentiality, authenticity, and integrity guarantees for computations. This can be somewhat mitigated by open source specifications and independent verification of the TEE hardware.
Copy link
Collaborator

Choose a reason for hiding this comment

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

The construction of the specification also needs to meet requirements. (That's what your point about open specification relates to.)

Copy link
Collaborator Author

Choose a reason for hiding this comment

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

Should the specification be listed as an asset then? That feels more correct.

Copy link
Collaborator Author

Choose a reason for hiding this comment

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

made more explicit in f01ced2

Copy link
Collaborator

@martinthomson martinthomson left a comment

Choose a reason for hiding this comment

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

LGTM

@AramZS AramZS added the call-for-consensus We are calling for participants to reach consensus. 2 weeks from being added or handled via agenda+ label Sep 11, 2023
@AramZS AramZS added Threat Model Document This pertains to the Threat Model document and is in an editorial mode. Merge Pending Change is set to be merged pending editor or chair action. Last chance to comment. and removed call-for-consensus We are calling for participants to reach consensus. 2 weeks from being added or handled via agenda+ labels Oct 30, 2023
@AramZS AramZS added the needs-work Indicates a PR or Issue needs further work before we can pick it up for further discussion or action label Apr 10, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Merge Pending Change is set to be merged pending editor or chair action. Last chance to comment. needs-work Indicates a PR or Issue needs further work before we can pick it up for further discussion or action Threat Model Document This pertains to the Threat Model document and is in an editorial mode.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants