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.

Reply via email to