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

first stab at a security considerations section #309

Merged
merged 11 commits into from
Oct 9, 2024
Merged

Conversation

thomas-fossati
Copy link
Collaborator

Privacy considerations are still TODO

Partially address #11

Copy link
Collaborator

@yogeshbdeshpande yogeshbdeshpande left a comment

Choose a reason for hiding this comment

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

This section has come along nicely, thanks for this! I have left few minor comments for you to have a look!

Copy link
Collaborator

@yogeshbdeshpande yogeshbdeshpande left a comment

Choose a reason for hiding this comment

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

see few more

Copy link
Collaborator

@yogeshbdeshpande yogeshbdeshpande left a comment

Choose a reason for hiding this comment

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

LGTM! First iteration is coming along well..

draft-ietf-rats-corim.md Outdated Show resolved Hide resolved
- Minimizing the attack surface by removing unnecessary features that could be exploited by attackers;
- Applying the principle of least privilege to the system's users;
- Minimizing the potential impact of security breaches by implementing separation of duties in both the software and operational architecture;
- Conducting regular, automated audits and reviews of the system, such as ensuring that users' privileges are correctly configured and that any new code has been audited and approved by independent parties;
Copy link
Collaborator

Choose a reason for hiding this comment

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

I think your non-bullet point item below this list ought to be referenced as its own section of relevant system security principles to follow.

Copy link
Collaborator Author

Choose a reason for hiding this comment

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

Is there a usable reference for this (e.g., some NIST thing)? If so, we could replace $this with a pointer to $that.

Copy link
Collaborator

Choose a reason for hiding this comment

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

SOC type 2 audits, software component analysis against CVE databases (e.g., GUAC), SLSA for code handling

draft-ietf-rats-corim.md Outdated Show resolved Hide resolved
- Conducting regular, automated audits and reviews of the system, such as ensuring that users' privileges are correctly configured and that any new code has been audited and approved by independent parties;
- Failing safely in the event of errors to avoid compromising the security of the system.

Allow the appraisal process to be auditable, reproducible, and transparent.
Copy link
Collaborator

Choose a reason for hiding this comment

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

This section of text is still a list, but it's more to do with the system security bullet above. Should this be its own subsection?

Your use of "transparent" is not elaborated upon. Sometimes "transparent" means that people don't notice it's there. Sometimes "transparent" means there's a window into the inner workings instead of a wall. Sometimes "transparent" means that every important action is published on a public append-only log.

I'm guessing that you mean that the Verifier attests to itself as a background check model to RPs while implementing the passport model for other attesters, and that the attestation is meaningfully traced to sources that can be audited and re-built to reconstruct the measurements.

Copy link
Collaborator Author

Choose a reason for hiding this comment

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

I will remove "transparent"

Ensure the integrity of the code and data during execution, with appraisal functions ideally TEE-protected.

Ensure the integrity of public key material and the secrecy of private key material.
This includes key material carried in attestation key triples and key material used to verify the authority of triples (such as public keys that identify trusted supply chain actors).
Copy link
Collaborator

Choose a reason for hiding this comment

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

Suggested change
This includes key material carried in attestation key triples and key material used to verify the authority of triples (such as public keys that identify trusted supply chain actors).
This includes key material used to sign Attestation Results, key material carried in attestation key triples, and key material used to verify the authority of triples (such as public keys that identify trusted supply chain actors).

Copy link
Collaborator Author

Choose a reason for hiding this comment

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

ARs are not relevant to CoRIM.

Copy link
Collaborator

Choose a reason for hiding this comment

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

ARs are explicitly described in the document and accounted for in phase 7. I think we can make this statement.

Copy link
Collaborator

Choose a reason for hiding this comment

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

I agree with @deeglaze

Copy link
Collaborator Author

Choose a reason for hiding this comment

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

ARs are explicitly described in the document and accounted for in phase 7.

That's Phase 7 of Verifier appraisal. The CoRIM processor boundaries do not include ARs assembly nor their signing.

Copy link
Collaborator

Choose a reason for hiding this comment

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

We have a huge section about a model of Verifier behavior. You have bullet points about implementing the verifier correctly. Do we want to explicitly separate the security discussion about CoRIM production and CoRIM consumption?

Copy link
Collaborator Author

Choose a reason for hiding this comment

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

These security considerations should be scoped to CoRIM (creation, ingestion and processing). If something is missing in that scope (and I am sure there are lots of things we could and should add), let's add them. Talking about the verifier in general is also ok as long as the intersection with CoRIM is non-zero.

Copy link
Collaborator

Choose a reason for hiding this comment

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

Perhaps we should simply say

Suggested change
This includes key material carried in attestation key triples and key material used to verify the authority of triples (such as public keys that identify trusted supply chain actors).
Example key management guidelines are {{?NIST SP 800-57}} and {{Annex A.10 of ISO/IEC 27001:2022}}

Copy link
Collaborator

Choose a reason for hiding this comment

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

Security considerations seem to be scoped toward Verifiers. But it may also apply to the entities that supply verifier inputs as well? The CoRIM draft primarily is a definition of a wire format that describes Endorsement and RV inputs to a Verifier. Nevertheless, whether describing security considerations from the perspective of Verifiers, Endorsers, or RVPs; the standard set of key management guidelines applies to all the roles (more precisely, to all the entities that implement one or more of the roles).

For more detailed information on protecting Trust Anchors, refer to {{Section 12.4 of -rats-arch}}.

Use cryptographically protected, mutually authenticated secure channels with trusted input sources (Endorsers, RVPs, Verifier Owners).
These links must be as deep as possible - possibly terminated in the appraisal session - to avoid man-in-the-middle attacks.
Copy link
Collaborator

Choose a reason for hiding this comment

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

Please describe what you mean by "These links" and what "deep" means.

Is "link" referring to the secure channel, or is it talking about a link in your supply chain?

I see that "possibly terminated in the appraisal session" is indicative that you mean that your channels should be terminated at a controlled point in the operator's system, that the point should be close to or ideally inside the appraisal process. Yes?

When you talk about suppliers and links, and going deep, I think more about the "intermediaries" you describe next.

Copy link
Collaborator Author

Choose a reason for hiding this comment

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

Is "link" referring to the secure channel, or is it talking about a link in your supply chain?

The former.

I see that "possibly terminated in the appraisal session" is indicative that you mean that your channels should be terminated at a controlled point in the operator's system, that the point should be close to or ideally inside the appraisal process. Yes?

yes.


Use cryptographically protected, mutually authenticated secure channels with trusted input sources (Endorsers, RVPs, Verifier Owners).
These links must be as deep as possible - possibly terminated in the appraisal session - to avoid man-in-the-middle attacks.
Minimize the use of intermediaries: each intermediary becomes another party that needs to be trusted and needs to be factored in the relying parties' TCBs.
Copy link
Collaborator

Choose a reason for hiding this comment

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

Suggested change
Minimize the use of intermediaries: each intermediary becomes another party that needs to be trusted and needs to be factored in the relying parties' TCBs.
Minimize the use of intermediaries: each intermediary becomes another party that needs to be trusted and needs to be factored in the relying parties' TCBs.

Intermediaries of what? What counts as an intermediary? I can use cryptographic methods to ensure integrity over untrusted channels.
Are you talking about people operating your Verifier? Implementing it? Sourcing its data?
I'm sure the answer is all of the above, but the number is going to be big. Is there something we can suggest to help tame the chaos of supply chains?

Copy link
Collaborator Author

Choose a reason for hiding this comment

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

Intermediaries of what? What counts as an intermediary?

Actors that somehow are part of the supply chain.

I can use cryptographic methods to ensure integrity over untrusted channels.

Sure, sometimes though the threat is not someone manipulating your data, but someone preventing you from seeing some data (e.g., a newly published vulnerability report), in which case cryptography is unhelpful.

Are you talking about people operating your Verifier? Implementing it?

No.

Sourcing its data?

Maybe, depending on what "sourcing" exactly means.

I am talking about external dependencies that for one reason or another you'd have to trust.

I'm sure the answer is all of the above, but the number is going to be big. Is there something we can suggest to help tame the chaos of supply chains?

Not sure, apart from "Stay in your house and close all doors and windows!" 🤣

Copy link
Collaborator

Choose a reason for hiding this comment

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

CoRIM represents a form of improving supply chain security. Perhaps we can say, "where possible, ensure your suppliers are following best practices (through SBOM and general security framework compliance) to make breaches of trust evident and thus more difficult"

draft-ietf-rats-corim.md Outdated Show resolved Hide resolved
Ensure the integrity of the code and data during execution, with appraisal functions ideally TEE-protected.

Ensure the integrity of public key material and the secrecy of private key material.
This includes key material carried in attestation key triples and key material used to verify the authority of triples (such as public keys that identify trusted supply chain actors).
Copy link
Collaborator

Choose a reason for hiding this comment

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

Security considerations seem to be scoped toward Verifiers. But it may also apply to the entities that supply verifier inputs as well? The CoRIM draft primarily is a definition of a wire format that describes Endorsement and RV inputs to a Verifier. Nevertheless, whether describing security considerations from the perspective of Verifiers, Endorsers, or RVPs; the standard set of key management guidelines applies to all the roles (more precisely, to all the entities that implement one or more of the roles).

These links must reach as deep as possible - possibly terminating within the appraisal session context - to avoid man-in-the-middle attacks.
Also consider minimizing the use of intermediaries: each intermediary becomes another party that needs to be trusted and therefore factored in the Attesters and Relying Parties' TCBs.
Refer to {{Section 12.2 of -rats-arch}} for information on Conceptual Messages protection.

[^issue] https://github.com/ietf-rats-wg/draft-ietf-rats-corim/issues/11
Copy link
Collaborator

Choose a reason for hiding this comment

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

Suggested change
[^issue] https://github.com/ietf-rats-wg/draft-ietf-rats-corim/issues/11

thomas-fossati and others added 5 commits October 9, 2024 16:58
Partially address #11

Signed-off-by: Thomas Fossati <[email protected]>
Signed-off-by: Thomas Fossati <[email protected]>
Signed-off-by: Thomas Fossati <[email protected]>
Co-authored-by: Yogesh Deshpande <[email protected]>
Signed-off-by: Thomas Fossati <[email protected]>
Copy link
Collaborator

@nedmsmith nedmsmith left a comment

Choose a reason for hiding this comment

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

LGTM

@thomas-fossati thomas-fossati merged commit 82d7263 into main Oct 9, 2024
2 checks passed
@thomas-fossati thomas-fossati deleted the sec-cons branch October 9, 2024 15:12
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.

4 participants