Re: ca-certificates 2014.2.1 will remove several still valid CA certificates with weak keys

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Sat, 2014-09-06 at 01:58 +0200, Kai Engert wrote:

> The failure is with the s3.amazonaws.com host.
> Looking at the certificates the server sends:
> $ openssl s_client -showcerts -connect s3.amazonaws.com:443  2>&1 \
>   |egrep " s:| i:"
>  0 s:/C=US/ST=Washington/L=Seattle/O=Amazon.com Inc./CN=s3.amazonaws.com
>    i:/C=US/O=VeriSign, Inc./OU=VeriSign Trust Network/OU=Terms of use at
> https://www.verisign.com/rpa (c)10/CN=VeriSign Class 3 Secure Server CA
> - G3
>  1 s:/C=US/O=VeriSign, Inc./OU=VeriSign Trust Network/OU=Terms of use at
> https://www.verisign.com/rpa (c)10/CN=VeriSign Class 3 Secure Server CA
> - G3
>    i:/C=US/O=VeriSign, Inc./OU=VeriSign Trust Network/OU=(c) 2006
> VeriSign, Inc. - For authorized use only/CN=VeriSign Class 3 Public
> Primary Certification Authority - G5
> 
>  2 s:/C=US/O=VeriSign, Inc./OU=VeriSign Trust Network/OU=(c) 2006
> VeriSign, Inc. - For authorized use only/CN=VeriSign Class 3 Public
> Primary Certification Authority - G5
>    i:/C=US/O=VeriSign, Inc./OU=Class 3 Public Primary Certification
> Authority
> 
> This means, the server sends three certificates during the handshake.
> One server cert, and two intermediates.
> 
> The intermediate at level 2 was issued by root CA:
>   C=US
>   O=VeriSign, Inc.
>   OU=Class 3 Public Primary Certification Authority
> This root CA is very old, it had been issued in 1996:
> [...]
> When connecting to this server using an NSS client, such as Firefox, it
> works. I believe this is because an alternative trust chain can be
> found.

Unfortunately only NSS works. Both openssl and gnutls fail to connect to
popular sites because of that change. It should not be assumed that the
users of ca-certificates are only programs using nss.

> A root CA with this subject is included in our trust list.
> So, NSS can find this root CA cert, and succeeded the verification, and
> ignores the unnecessary, additional intermediate CA cert sent by the
> server.
> I guess that openssl strictly wants to make use of all intermediates
> sent by the server, and doesn't search for alternative chains. And the
> only certificate satisfying this chain has been marked as untrusted for
> SSL/TLS in our update.

I guess this is verification based on the rfc5280 path validation.
Unlike that NSS ignores the provided trust chain and tries to construct
a new one internally. That's interesting and happens to work around the
issue here but it is not and must not be required for all software to
reconstruct trust chains. The TLS is very specific on that issue, the
chain is provided by the server.

> If we want things to just work, without requiring server administration,
> then openssl should be enhanced to try additional chains, (or the Ruby
> software could be changed to use NSS).

I do not agree. Such changes are dangerous to be performed on a stable
release, and may introduce more issues than solve. Ca-certificates
should not assume that NSS is its only user. That is either (1) it
should include the trusted certificates that are still in wild use, or
(2) it should include the intermediates of the trusted certificates that
are in use.

regards,
Nikos


-- 
devel mailing list
devel@xxxxxxxxxxxxxxxxxxxxxxx
https://admin.fedoraproject.org/mailman/listinfo/devel
Fedora Code of Conduct: http://fedoraproject.org/code-of-conduct





[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Fedora Announce]     [Fedora Kernel]     [Fedora Testing]     [Fedora Formulas]     [Fedora PHP Devel]     [Kernel Development]     [Fedora Legacy]     [Fedora Maintainers]     [Fedora Desktop]     [PAM]     [Red Hat Development]     [Gimp]     [Yosemite News]
  Powered by Linux