Attack scenario is an information-leakage vulnerability.

Client Alice connects to server Mary.  Mary sends a certificate with
an AIA, no chain.

Mary happens to be a honeypot.

Alice looks up AIA, makes connection to Mallory to retrieve the certificate.

Mallory is looking for people who are looking at Mary.

Mallory knows, beyond a shadow of a doubt, that Alice is looking at Mary.

-Kyle H

On Thu, Sep 18, 2008 at 1:20 PM, Eddy Nigg <[EMAIL PROTECTED]> wrote:
> On 09/18/2008 10:29 PM, Nelson B Bolyard:
>>
>> After verifying that the signatures are valid in the chain, all the
>> way to a trusted root, then yes.
>
> And what exactly prevents you from verifying the signatures of the
> received chain (by whatever means you constructed the chain) all the way
> to a trusted root? What does it matter if you received the sub-ordinate
> CA certificate from:
>
> 1.) The Server
> 2.) The AIA CA Issuer URL
> 3.) Previously stored in authorities
> 4.) UI input box from the user
> 5.) International Space Station
>
>>  If the signatures don't pass the test,
>> then no.
>
> Exactly!
>
>> The crucial difference is that when using certs from the SSL
>> server, we can construct the chain, and validate all its signatures,
>
> YES!
>
>
>> without doing fetches from URLs in the certs first.
>
> What does that matter? Seriously! Who cares?
>
>> But when trying to
>> complete a chain by fetching certs from URLs in AIA extensions, we cannot
>> validate the signature in the cert from which the URL is taken until
>> after we've gone and attempted to fetch certs from the URL in the
>> unvalidated cert
>
> Of course...so discharge the received invalid obtained CA certificate
> and proceed with the error.
>
>
>> a URL supplied by the (potential) attacker.
>
> I call that nonsense! If you believe what you are saying you can't rely
> on any server sending a certificate chain, because every server can be a
> (potential) attacker!
>
>> Isn't this obvious?
>
> No
>
>>
>> Think about this.  Using certutil, I can construct a certificate that
>> has an issuer name that exactly matches (every bit) the subject name
>> of one of your CA's CA certs,
>
> So? Does it match the signature as well?
>
>
>> but that has an AIA extension containing
>> a URL that does not go to the server your real AIA's use, but goes to
>> a completely different server.
>
> Of course...but it doesn't matter, the signature never matches.
>
>> The cert I create will not have a
>> signature that can be validated with your real CA cert
>
> Right
>
>> but as an attacker,
>> I don't care because the damage will be done before the relying party
>> discovers that my cert was not really issued by your CA.
>
> More nonsense! If the signature doesn't match you can't construct a
> valid chain up to a trusted root and you return an error. The same error
> you return today when the certificate can't be validated up to a trusted
> root. EXACTLY the same thing!
>
>> Not unless it has the private key of the builtin root.  It can create a
>> cert that has an issuer name that matches a built-in root, but the signature
>> will not validate.
>
> EXACTLY! You are saying it yourself!
>
>> The security or vulnerability is all
>> controlled by which operation is done first, the signature verification
>> of the chain, or the fetching or external data (certs, CRLs, OCSP) based
>> on the contents of those certs.
>
>
> Fist you try to construct a valid chain - being it with the certificates
> the server supplied, by the AIA extensions or by looking at the local
> auth store...
>
>>
>> Again the obvious difference is that in once case, the relying party
>> goes out and fetches from URLs in a cert of unknown origin, and in the
>> other case, it does not.
>
> That's wrong! Not the relying party is doing it, but the software is
> doing it! The software fetches those missing certificates, tries to
> build the chain and validate this chain. The software returns the either
> the error and continues the process (of validating the CRL, OCSP etc).
>
> The relying party is absolutely passive at this stage, there is nothing
> to do at this stage then wait for the site to appear.
>
>> The concern is NOT that the relying party will be fooled into accepting
>> a bogus cert as legitimate.  The concern is that, before the relying
>> party determines that the cert is bogus, it will have acted as a proxy
>> for the attacker by fetching from an attacker-supplied URL.
>
>
> WHAT? You are fetching most likely a certificate...but even if it's
> something else, the software can perform its usual checks as it should
> do with anything which is supplied - including the CA chain from the server.
>
>>  Being able
>> to be tricked into acting as such a proxy is a vulnerability.
>
> Nonono...this proxy-thing has nothing to do with it. Where is this
> proxy? Where is the vulnerability exactly?
>
>
> --
> Regards
>
> Signer: Eddy Nigg, StartCom Ltd.
> Jabber: [EMAIL PROTECTED]
> Blog:   https://blog.startcom.org
> _______________________________________________
> dev-tech-crypto mailing list
> [email protected]
> https://lists.mozilla.org/listinfo/dev-tech-crypto
>
_______________________________________________
dev-tech-crypto mailing list
[email protected]
https://lists.mozilla.org/listinfo/dev-tech-crypto

Reply via email to