¿De dónde viene la cadena de certificados de openssl?

¿De dónde viene la cadena de certificados de openssl?

Estoy intentando verificar la cadena de flo2cash.com. openssl me da esto: openssl s_client -showcerts -connect flo2cash.com:443
CONNECTED(00000003) depth=3 C = SE, O = AddTrust AB, OU = AddTrust External TTP Network, CN = AddTrust External CA Root depth=2 C = GB, ST = Greater Manchester, L = Salford, O = COMODO CA Limited, CN = COMODO RSA Certification Authority depth=1 C = GB, ST = Greater Manchester, L = Salford, O = COMODO CA Limited, CN = COMODO RSA Domain Validation Secure Server CA depth=0 OU = Domain Control Validated, OU = Hosted by FreeParking Ltd, OU = COMODO SSL, CN = flo2cash.com

Indicando que la raíz es "AddTrust External CA Root". Tanto Chrome como Firefox solo muestran 3 niveles en la cadena con el certificado con raíz en "COMODO RSA Certification Authority"

Si reviso el último certificado de la cadena obtengo esto: subject= /C=GB/ST=Greater Manchester/L=Salford/O=COMODO CA Limited/CN=COMODO RSA Certification Authority issuer= /C=SE/O=AddTrust AB/OU=AddTrust External TTP Network/CN=AddTrust External CA Root notBefore=May 30 10:48:38 2000 GMT notAfter=May 30 10:48:38 2020 GMT

Este certificado es muy antiguo.

Esto es lo que hay en los paquetes de CA que puedo encontrar en mi máquina (Fedora 25 parcheado a la última versión), y también en los navegadores:

subject= /C=GB/ST=Greater Manchester/L=Salford/O=COMODO CA Limited/CN=COMODO RSA Certification Authority issuer= /C=GB/ST=Greater Manchester/L=Salford/O=COMODO CA Limited/CN=COMODO RSA Certification Authority notBefore=Jan 19 00:00:00 2010 GMT notAfter=Jan 18 23:59:59 2038 GMT

Ese viejo certificado debe venir de alguna parte.

Respuesta1

En mi computadora portátil Mint tengo elviejocertificado:

$ openssl x509 -noout -subject -issuer -in /usr/share/ca-certificates/mozilla/COMODO_RSA_Certification_Authority.crt 
subject= /C=GB/ST=Greater Manchester/L=Salford/O=COMODO CA Limited/CN=COMODO RSA Certification Authority
issuer= /C=GB/ST=Greater Manchester/L=Salford/O=COMODO CA Limited/CN=COMODO RSA Certification Authority

openssl s_clientdevuelve el certificado de CA más superior COMODO RSA Certification Authorityfirmado por la raíz anterior:

$ openssl s_client -connect flo2cash.com:443
CONNECTED(00000003)
depth=3 C = SE, O = AddTrust AB, OU = AddTrust External TTP Network, CN = AddTrust External CA Root
verify return:1
depth=2 C = GB, ST = Greater Manchester, L = Salford, O = COMODO CA Limited, CN = COMODO RSA Certification Authority
verify return:1
depth=1 C = GB, ST = Greater Manchester, L = Salford, O = COMODO CA Limited, CN = COMODO RSA Domain Validation Secure Server CA
verify return:1
depth=0 OU = Domain Control Validated, OU = Hosted by FreeParking Ltd, OU = COMODO SSL, CN = flo2cash.com
verify return:1
---

Edite /etc/ca-certificates.confy anule la selección de la línea que contiene el certificado de CA raíz anterior ( mozilla/AddTrust_External_Root.crt):

#
# line begins with # is comment.
# line begins with ! is certificate filename to be deselected.
#
mozilla/ACCVRAIZ1.crt
mozilla/ACEDICOM_Root.crt
!mozilla/AC_Raíz_Certicámara_S.A..crt
mozilla/Actalis_Authentication_Root_CA.crt
!mozilla/AddTrust_External_Root.crt
mozilla/AddTrust_Low-Value_Services_Root.crt
mozilla/AddTrust_Public_Services_Root.crt
mozilla/AddTrust_Qualified_Certificates_Root.crt

Ejecute update-ca-certificatespara reconstruir su caché.

Después de eso, obtendrás la misma cadena que tu navegador:

$ openssl s_client -connect flo2cash.com:443 -showcerts
CONNECTED(00000003)
depth=2 C = GB, ST = Greater Manchester, L = Salford, O = COMODO CA Limited, CN = COMODO RSA Certification Authority
verify return:1
depth=1 C = GB, ST = Greater Manchester, L = Salford, O = COMODO CA Limited, CN = COMODO RSA Domain Validation Secure Server CA
verify return:1
depth=0 OU = Domain Control Validated, OU = Hosted by FreeParking Ltd, OU = COMODO SSL, CN = flo2cash.com
verify return:1
---

La ruta que un cliente construye desde el certificado de entidad final hasta el certificado de CA raíz depende de la lógica programada dentro del cliente. Esto no está definido en las especificaciones, por lo tanto está sujeto a la interpretación de los desarrolladores de cada cliente en particular.

Con ambos certificados de CA raíz habilitados en OpenSSL, elige la primera ruta que se muestra. Sus navegadores eligieron de manera diferente porque pueden hacerlo.

Respuesta2

¿Qué certificado antiguo? Elpuentecertificado para la autoridad de certificación Comodo RSA desde AddTrust La raíz de CA externa es enviada por el servidor. Elraízcertificado para AddTrust externodebe provenir del almacén de confianza de su sistema; no lo envía el servidor, e incluso si lo fuera, OpenSSL descarta correctamente cualquier raíz recibida del servidor y solo confía en una raíz que encuentra en el almacén de confianza local. No uso Fedora, pero mi CentOS lo tiene instalado /etc/pki/tls/certs/ca-bundle.crt( ca-certificatesy presumiblemente RHEL es el mismo).

Sí, esta raíz de AddTrust es una de las raíces de CA más antiguas que aún están activas. Aunque el certificado puente no se ha alineado perfectamente (y de manera poco realista) con su padre, estoy seguro de que tiene una fecha anterior; está firmado con SHA384 pero FIPS180-2 no se publicó hasta 2002, y mucho menos se implementó ampliamente. (Por ejemplo, Windows XP no implementó certificados firmados por SHA2 hasta SP3 en 2008).

La propia raíz de Comodo RSAno lo tiene, pero es posible que también tenga una fecha anterior o se mantuvo en el estante por un tiempo; también está firmado con SHA384, pero ninguna de las CA públicas de AIR comenzó a emitir y encadenar SHA2 hasta principios de 2014 (el segundo intento de fecha límite del NIST) y la mayoría no hasta finales de 2015, cuando CABforum y algunos de los principales navegadores comenzaron a quejarse de SHA1. No recuerdo dónde cayó Comodo en este espectro, pero el único almacén de confianza que puedo rastrear fácilmente con el tiempo, Oracle (anteriormente Sun Java), no se agregó comodorsacahasta 8u51 en 2015-06. (tenía addtrustexternalcaespaldaal menosa 6u7 en 2008-06; No tengo los datos antes de eso.)

Al menos una parte del sitio web de Comodo.todavía muestra la cadena de confianza a través del certificado puente a AddTrust como correcta, aunque caduca en menos de 3 años.

información relacionada