-
Notifications
You must be signed in to change notification settings - Fork 3
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
Updated the ACME Client Keys security consideration #22
base: main
Are you sure you want to change the base?
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think the changes look good, a few minor suggestions.
EVBRs: | ||
title: "Minimum Security Requirements for Issuance of Mark Certificates, v2.0.1" | ||
target: "https://cabforum.org/working-groups/server/extended-validation/documents/CA-Browser-Forum-EV-Guidelines-2.0.1.pdf" | ||
author: | ||
- org: CA/Browser Forum | ||
date: 6 May, 2024 | ||
QWAC-ENISA: | ||
title: "Qualified Website Authentication Certificates" | ||
target: "https://www.enisa.europa.eu/publications/qualified-website-authentication-certificates" | ||
author: | ||
- org: European Union Aguncy for Cybersecurity (ENISA) | ||
date: May 16, 2016 | ||
VMCRequirements: | ||
title: "Guidelines for the Issuance and Management of Extended Validation Certificates" | ||
target: "https://bimigroup.org/resources/VMC_Requirements_latest.pdf" | ||
author: | ||
- org: BIMI Group | ||
date: March 7, 2024 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Do we really need to link to this information and do we want to include links to versions that will be out of date even before publication of the draft itself?
If we want to keep this information, I have correct the information and links to the current latest version.
EVBRs: | |
title: "Minimum Security Requirements for Issuance of Mark Certificates, v2.0.1" | |
target: "https://cabforum.org/working-groups/server/extended-validation/documents/CA-Browser-Forum-EV-Guidelines-2.0.1.pdf" | |
author: | |
- org: CA/Browser Forum | |
date: 6 May, 2024 | |
QWAC-ENISA: | |
title: "Qualified Website Authentication Certificates" | |
target: "https://www.enisa.europa.eu/publications/qualified-website-authentication-certificates" | |
author: | |
- org: European Union Aguncy for Cybersecurity (ENISA) | |
date: May 16, 2016 | |
VMCRequirements: | |
title: "Guidelines for the Issuance and Management of Extended Validation Certificates" | |
target: "https://bimigroup.org/resources/VMC_Requirements_latest.pdf" | |
author: | |
- org: BIMI Group | |
date: March 7, 2024 | |
BR: | |
title: "Baseline Requirements for the Issuance and Management of Publicly‐Trusted TLS Server Certificates" | |
target: "https://cabforum.org/working-groups/server/baseline-requirements/requirements/" | |
author: | |
- org: CA/Browser Forum | |
EVG: | |
title: "Guidelines for the Issuance and Management of Extended Validation Certificates" | |
target: "https://cabforum.org/working-groups/server/extended-validation/guidelines/" | |
author: | |
- org: CA/Browser Forum | |
QWAC: | |
title: "Electronic Signatures and Infrastructures (ESI); Policy and security requirements for Trust Service Providers issuing certificates; Part 2: Requirements for trust service providers issuing EU qualified certificates" | |
target: "https://www.etsi.org/deliver/etsi_en/319400_319499/31941102/" | |
author: | |
- org: ETSI | |
VMC: | |
title: "Guidelines for the Issuance and Management of Extended Validation Certificates" | |
target: "https://bimigroup.org/resources/VMC_Requirements_latest.pdf" | |
author: | |
- org: BIMI Group |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Agreed
|
||
To ensure a secure account binding per customer, it is essential that each customer possesses their own unique ACME key. The utilization of individual ACME keys allows for a distinct association between the customer's account and the established account binding. | ||
To ensure a secure account binding, it is essential that each customer be able to control and pre-approve the ACME account keys that are authorized to request certificates against their account, particularly for certificate types that have billing implications, or that have additional verification requirements beyond what can be done inline within the ACME protocol, such as OV, EV [[EVBRs]], Qualified Website [[QWAC-ENISA]], or Verified Mark Certificates [[VMCRequirements]]. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Inline with the suggestion above:
To ensure a secure account binding, it is essential that each customer be able to control and pre-approve the ACME account keys that are authorized to request certificates against their account, particularly for certificate types that have billing implications, or that have additional verification requirements beyond what can be done inline within the ACME protocol, such as OV, EV [[EVBRs]], Qualified Website [[QWAC-ENISA]], or Verified Mark Certificates [[VMCRequirements]]. | |
To ensure a secure account binding, it is essential that each customer is able to control and pre-approve the ACME account keys that are authorized to request certificates against their account, particularly for certificate types that have billing implications, or that have additional verification requirements beyond what can be done inline within the ACME protocol, such as OV [[BR]], EV [[EVG]], Qualified Website [[QWAC]], or Verified Mark Certificates [[VMC]]. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I´d remove the "particularly for certificate types that have billing implications" because IMO that´s dependant on the CA if the´d like to charge for it but it´s not part of a technical implementation.
|
||
If an account binding were to be established based on a shared ACME key, it could potentially lead to unauthorized users obtaining certificates using the same Certificate Authority (CA) based on the established account binding. This scenario poses a significant security risk and could result in the compromise of sensitive information or unauthorized certificate issuance. | ||
In traditional ACME deployments, this binding is accomplished via External Account Binding (EAB) keys or via unique ACME account keys per CA account. In the deployments for which ACME auto-discovery is envisioned to be useful, these authorization mechanisms may not be appropriate because the ACME client may be under the control of a cloud service provider (CSP) who may use the same ACME client key for all requests across customer accounts and who does not know the customer's EAB key (and if it did, then it would not require an auto-discovery mechanism in the first place). |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
In traditional ACME deployments, this binding is accomplished via External Account Binding (EAB) keys or via unique ACME account keys per CA account. In the deployments for which ACME auto-discovery is envisioned to be useful, these authorization mechanisms may not be appropriate because the ACME client may be under the control of a cloud service provider (CSP) who may use the same ACME client key for all requests across customer accounts and who does not know the customer's EAB key (and if it did, then it would not require an auto-discovery mechanism in the first place). | |
In traditional ACME deployments, this binding is accomplished via External Account Binding (EAB) keys or via unique ACME account keys per CA account. In the deployments for which ACME auto-discovery is envisioned to be useful, these authorization mechanisms may not be appropriate because the ACME client may be under the control of a Cloud Service Provider (CSP) who may use the same ACME client key for all requests across customer accounts and who does not know the customer's EAB key (and if it did, then it would not require an auto-discovery mechanism in the first place). |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Another potentail editorial comment. I´d remove the "In traditional" because it means that could be ACME deployments not based on the standard which is not our case as per the next sentence.
|
||
To mitigate this risk, it is crucial to enforce the use of individual ACME keys for each customer. This ensures that the account binding is securely linked to the respective customer's account, preventing unauthorized access or misuse by other users. By maintaining separate ACME keys per customer, the integrity and confidentiality of the account binding process are upheld, enhancing the overall security posture of the system. | ||
The mechanism by which a CA obtains authorization to accept requests from a given ACME client key against a given CA account is outside the scope of this document and MAY be proprietary. Such a mechanism should be designed carefully to not lower the overall security of the system, and to not prevent CSPs from being able to rotate client keys. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Should we make a reference here to the acme-client-discovery draft?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I see a potential sync problem if we refer another draft that may have a different progress or not be even published.
|
||
To mitigate this risk, it is crucial to enforce the use of individual ACME keys for each customer. This ensures that the account binding is securely linked to the respective customer's account, preventing unauthorized access or misuse by other users. By maintaining separate ACME keys per customer, the integrity and confidentiality of the account binding process are upheld, enhancing the overall security posture of the system. | ||
The mechanism by which a CA obtains authorization to accept requests from a given ACME client key against a given CA account is outside the scope of this document and MAY be proprietary. Such a mechanism should be designed carefully to not lower the overall security of the system, and to not prevent CSPs from being able to rotate client keys. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Is this relevant or normative?
The mechanism by which a CA obtains authorization to accept requests from a given ACME client key against a given CA account is outside the scope of this document and MAY be proprietary. Such a mechanism should be designed carefully to not lower the overall security of the system, and to not prevent CSPs from being able to rotate client keys. | |
The mechanism by which a CA obtains authorization to accept requests from a given ACME client key against a given CA account is outside the scope of this document. Such a mechanism should be designed carefully to not lower the overall security of the system, and to not prevent CSPs from being able to rotate client keys. |
Closes #18
This change might be a bit contentious, and gets at a number of points raised by TimH.
This should be reviewed by the author group + Tim.