tl;dr A CSR is not sufficient proof of possession; but even if it was, it's not sufficient proof of intent.
Jesper wrote: > There have already been several posts in this thread discussing if a CSR can > be considered proof of possession of a private key. I don't think a CSR is > secret and therefore cannot automatically be considered proof of possession, > and I think the policy should state that explicitly. +1 A CSR's self-signature proves only that the corresponding private key was in the possession of whoever generated that CSR. It doesn't prove that it was the Subscriber who generated that CSR, and I would say that "suspicion of CSR generation" is a weak signal. đ I think it's also important to look carefully at what a CSR is intended for. It's a Certificate Signing Request, not a Certificate Revocation Request. In general, whoever generated a CSR did not, at the time it was generated, intend that CSR to be used as proof of key compromise; and since CSRs are immutable and are sometimes made public (i.e., "CSR compromise" is not a thing), it would be dangerous to later treat a vanilla CSR as proof of key compromise. I think that to actually prove key compromise to the CA, a Subscriber or third party would need to do one of the following: 1. Self-sign some sort of "Key Compromise Request" (KCR) that a CA can unambiguously treat as a declaration of key compromise by a holder of that key. Ideally a KCR would be a new type of object that can't be parsed as a CSR (e.g., see https://secure.sectigo.com/products/RevocationPortalDetails?action=2a); or, as some folks have done, a KCR could be a CSR that contains some sort of textual indication of intent such as "subject:CN=This CSR is intended to prove key compromise". 2. Send the private key to the CA. Doug wrote: > If the CSR contains all SAN values in the issued certificate (and the > certificate has the same public key as that CSR), then that binds the key to > the domains and I believe this is sufficient POP. If this is not the case > when the CSR is provided prior to issuance, a CA could ask the subscriber for > a new CSR with all of the SANs (and same public key) as PoP during a request > for revocation. Iâd be interested to know if others agree with this. -1 If a CSR "contains all SAN values", it just means that whoever generated that CSR wanted to Request the Signing of one or more Certificates containing those SAN values. ________________________________ From: 'Doug Beattie' via [email protected] Sent: Wednesday, February 02, 2022 17:02 To: Jesper Kristensen; [email protected] Cc: Kathleen Wilson Subject: RE: Revocation Reason Codes for TLS End-Entity Certificates Hi Jesper, Hereâs my opinion on your 3 questions below, marked with âDoug:â From: [email protected] <[email protected]> On Behalf Of Jesper Kristensen Sent: Wednesday, February 2, 2022 11:41 AM To: [email protected] Cc: Kathleen Wilson <[email protected]> Subject: Re: Revocation Reason Codes for TLS End-Entity Certificates You don't often get email from [email protected]. Learn why this is important<http://aka.ms/LearnAboutSenderIdentification> It seems that some of the criteria in the draft policy are subjective to some degree. At the same time the policy leaves zero margin for error (If X then you MUST use this code, otherwise you MUST NOT). The combination of these two seems to ensure that mistakes will happen, and we will see a continuous stream of incident reports where a CA and a community member disagrees about a subjective aspect of these criteria. Could the policy be updated to give the CA freedom to choose in gray areas? Doug: I donât have an opinion on that one because I donât tally understand which subjective statement youâre referring to. There have already been several posts in this thread discussing if a CSR can be considered proof of possession of a private key. I don't think a CSR is secret and therefore cannot automatically be considered proof of possession, and I think the policy should state that explicitly. Doug: If the CSR contains all SAN values in the issued certificate (and the certificate has the same public key as that CSR), then that binds the key to the domains and I believe this is sufficient POP. If this is not the case when the CSR is provided prior to issuance, a CA could ask the subscriber for a new CSR with all of the SANs (and same public key) as PoP during a request for revocation. Iâd be interested to know if others agree with this. The policy says revocations before the effective date does not need to be changed. What about revocations after the effective date? What if a certificate was revoked as superseded and later the CA receives evidence of key compromise? Must the reason code then be changed? Doug: Itâs my understanding that once a certificate is revoked and put on a CRL, you can never change the reason code.. Den tir. 1. feb. 2022 kl. 19.04 skrev Kathleen Wilson <[email protected]<mailto:[email protected]>>: I have re-written the bright green text in the draft policy<https://docs.google.com/document/d/1ESakR4MiwyENyuLefyH2wG8rYbtnmG1xeSYvDNpS-EI/edit?usp=sharing> to separate out the scope of revocation from the requirement to use the keyCompromise reason. So the proposed text is as follows: == The CRLReason keyCompromise (1) MUST be used when one or more of the following occurs: - the CA obtains verifiable evidence that the certificate subscriberâs private key corresponding to the public key in the certificate suffered a key compromise; - the CA is made aware of a demonstrated or proven method that exposes the certificate subscriberâs private key to compromise; - there is clear evidence that the specific method used to generate the private key was flawed; - the CA is made aware of a demonstrated or proven method that can easily compute the certificate subscriberâs private key based on the public key in - the certificate (such as a Debian weak key, see https://wiki.debian.org/TLSkeys); or - the certificate subscriber requests that the CA revoke the certificate for this reason. The scope of revocation depends on whether the certificate subscriber has proven possession of the private key of the certificate. - If the certificate subscriber has previously demonstrated or can currently demonstrate possession of the private key of the certificate, then the CA MUST revoke all instances of that key across all subscribers. - Otherwise, the CA SHOULD limit revocation to only the instance of that key that the certificate subscriber had submitted the Certificate Signing Request (CSR) for. == I will continue to appreciate your feedback on this, and especially your input on how to make this more accurate. Thanks, Kathleen -- You received this message because you are subscribed to the Google Groups "[email protected]<mailto:[email protected]>" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]<mailto:[email protected]>. To view this discussion on the web visit https://groups.google.com/a/mozilla.org/d/msgid/dev-security-policy/24a3a885-dfd3-45f1-a5aa-9928c89fe6c1n%40mozilla.org<https://groups.google.com/a/mozilla.org/d/msgid/dev-security-policy/24a3a885-dfd3-45f1-a5aa-9928c89fe6c1n%40mozilla.org?utm_medium=email&utm_source=footer>. -- You received this message because you are subscribed to the Google Groups "[email protected]" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]<mailto:[email protected]>. To view this discussion on the web visit https://groups.google.com/a/mozilla.org/d/msgid/dev-security-policy/CACAF_WgAmV1uopbEKAEmW0n6kwyTSKaT-HegsYjbJsbJET_gXg%40mail.gmail.com<https://groups.google.com/a/mozilla.org/d/msgid/dev-security-policy/CACAF_WgAmV1uopbEKAEmW0n6kwyTSKaT-HegsYjbJsbJET_gXg%40mail.gmail.com?utm_medium=email&utm_source=footer>. -- You received this message because you are subscribed to the Google Groups "[email protected]" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]<mailto:[email protected]>. To view this discussion on the web visit https://groups.google.com/a/mozilla.org/d/msgid/dev-security-policy/PUZPR03MB61291B7C47429DB6E6726857F0279%40PUZPR03MB6129.apcprd03.prod.outlook.com<https://groups.google.com/a/mozilla.org/d/msgid/dev-security-policy/PUZPR03MB61291B7C47429DB6E6726857F0279%40PUZPR03MB6129.apcprd03.prod.outlook.com?utm_medium=email&utm_source=footer>. -- You received this message because you are subscribed to the Google Groups "[email protected]" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To view this discussion on the web visit https://groups.google.com/a/mozilla.org/d/msgid/dev-security-policy/MW4PR17MB4729D4D09BE56D01C28C249FAA289%40MW4PR17MB4729.namprd17.prod.outlook.com.
