Example: A cloud hosting provider uses different certificates for different
tenant's vanity domains, but to save server memory, they share a private
key. Tenants can get a CSR from the cloud hosting provider, use it to get a
certificate and upload it to the cloud hosting provider. If a CSR is POP in
this scenario, then one tenant can revoke certificates for other tenants.

If this is intended, then the CA should be required to forbid this in their
subscriber agreement.

Den fre. 4. feb. 2022 kl. 01.50 skrev Ryan Sleevi <r...@sleevi.com>:

> Rob,
>
> Can you help me understand the threat model a bit more?
>
> If Alice signs a CSR for good.example, doesn’t that demonstrate some
> degree of binding between good.example and that key?
>
> If Alice becomes a Subscriber with that CSR, she has demonstrated a POP in
> the context of good.example.
>
> Let’s say Eve obtains that CSR. Unless Eve can demonstrate control of
> good.example, then she, as a Subscriber, hasn’t demonstrated a POP in the
> context of good.example, has she?
>
> That is, I _think_ what you’re hinting at is something similar to what
> Doug was touching on, but a little bit different. Namely,
>
> - If Eve can use the CSR (that asserts good.example) for evil.example,
> then Eve shouldn’t be assumed to have demonstrated control
> - If the CSR lacks any such binding to a domain, and lacks any CA
> challenge string (ala the Onion approach), then neither Eve nor Alice
> should be assumed to have demonstrated control
>
> However, I’m not sure why a CSR, signed for good.example, and used by the
> Subscriber with whom a good.example certificate was issued to, wouldn’t be
> sufficient for POP.
>
> Am I missing something obvious?
>
> On Thu, Feb 3, 2022 at 7:20 PM Rob Stradling <r...@sectigo.com> wrote:
>
>> 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 dev-security-policy@mozilla.org
>> *Sent:* Wednesday, February 02, 2022 17:02
>> *To:* Jesper Kristensen; dev-security-policy@mozilla.org
>> *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:* dev-security-policy@mozilla.org <dev-security-policy@mozilla.org>
>> * On Behalf Of *Jesper Kristensen
>> *Sent:* Wednesday, February 2, 2022 11:41 AM
>> *To:* dev-security-policy@mozilla.org
>> *Cc:* Kathleen Wilson <kwil...@mozilla.com>
>> *Subject:* Re: Revocation Reason Codes for TLS End-Entity Certificates
>>
>>
>>
>> You don't often get email from jesperm...@gmail.com. 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 <
>> kwil...@mozilla.com>:
>>
>> 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
>> "dev-security-policy@mozilla.org" group.
>> To unsubscribe from this group and stop receiving emails from it, send an
>> email to dev-security-policy+unsubscr...@mozilla.org.
>> 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
>> "dev-security-policy@mozilla.org" group.
>> To unsubscribe from this group and stop receiving emails from it, send an
>> email to dev-security-policy+unsubscr...@mozilla.org.
>> 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
>> "dev-security-policy@mozilla.org" group.
>> To unsubscribe from this group and stop receiving emails from it, send an
>> email to dev-security-policy+unsubscr...@mozilla.org.
>> 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
>> "dev-security-policy@mozilla.org" group.
>> To unsubscribe from this group and stop receiving emails from it, send an
>> email to dev-security-policy+unsubscr...@mozilla.org.
>> 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
>> <https://groups.google.com/a/mozilla.org/d/msgid/dev-security-policy/MW4PR17MB4729D4D09BE56D01C28C249FAA289%40MW4PR17MB4729.namprd17.prod.outlook.com?utm_medium=email&utm_source=footer>
>> .
>>
>

-- 
You received this message because you are subscribed to the Google Groups 
"dev-security-policy@mozilla.org" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to dev-security-policy+unsubscr...@mozilla.org.
To view this discussion on the web visit 
https://groups.google.com/a/mozilla.org/d/msgid/dev-security-policy/CACAF_WgxPb%2B-HZDmgtTUvjmBth6HMOzOU9JFABAyEWquXQu9dw%40mail.gmail.com.

Reply via email to