Tengo en mi máquina Linux un conjunto de certificados CA raíz. Me gustaría asegurarme de que ninguno de los certificados de CA esté comprometido o sea falso.
¿Alguna sugerencia sobre cómo hacer esto?
Las autoridades de certificación generalmente conocidas publican sus certificados raíz en sus sitios web.
Por ejemplo:
Lo ideal es que compruebes los certificados que tienes con las huellas digitales equivalentes publicadas en los sitios web respectivos.
En una máquina Linux, los certificados se almacenan en /etc/ssl/certs
. El siguiente comando proporciona la huella digital de un certificado de CA G2 de Raíz primaria de Thawte:
openssl x509 -in thawte_Primary_Root_CA_-_G2.pem -sha1 -fingerprint -noout
La huella dactilar producida por los certificados anteriores se puede consultar en el sitio web de Thawte. De manera similar, todos los certificados de raíz se pueden verificar manualmente.
ElmétodoanteriorfuncionaparaCAconocidascomoVerisign,Thawte.Sinembargo,nohayunamaneraespecíficadeaveriguarsielsitiowebdeuncertificadoraízmenosconocidoeslegítimo.Unatacantepuededealgunamanerainsertarsucertificadoraízensupaqueteytambiénalojarunsitiowebconlahuelladigitaldeesecertificado.Sibiennoesinfalible,labúsquedageneralenGoogleparacadapardenúmerosdeseriedecertificados+pardehuellasdactilaresdebeproporcionarsuficientesindicacionesparaexaminarlamayoríadeloscertificados.
También,comparandosuscertificadosconunbuenpaquetedereferencia,porejemplo.UnaquevieneconunainstalaciónnuevadeFirefox,puedeserunabuenamaneradeverificarloscertificados.Obviamente,lapremisaaquíesqueustedconfíaenlosmantenedoresdeFirefoxparaasegurarsedequesucompilaciónnotengauncertificadofalso.
Supongamos que encuentra un certificado que no tiene presencia en google / internet. A veces, las empresas instalan sus certificados CA raíz internos en todas las PC / computadoras portátiles de los empleados. Esto tiene el propósito de permitir que los sitios de la intranet estén firmados por las CA internas (y evitar pagar verisign por certificados), así como a MITM las conexiones de los usuarios (sí, esto no es raro). En tal caso, se reduce a qué entidad consideras de confianza y qué entidad es maliciosa. Uno tiene que usar su propio juicio en tales situaciones.
Creo que tendrías que hacer una comparación de bytes con las buenas conocidas (suponiendo que sean certificados CA populares).
También existen otros mecanismos para ayudar con esto:
Identificador de clave de asunto (SKI) . Una extensión de certificado incluida en certificados de CA que contiene un hash de la clave pública del certificado de CA. Este hash se coloca en la extensión de identificador de clave de autoridad (AKI) de todos los certificados emitidos para facilitar la construcción de la cadena.
Encadenamiento de certificados . El encadenamiento de certificados se define como la validación de confianza de un certificado x.509 cuando se compara con un ancla de confianza, como un certificado raíz.
Pero no proporcionó mucha información sobre cómo se generaron o por quién.
Lea otras preguntas en las etiquetas tls