Prohíba explícitamente un certificado de CA intermedio en OpenSSL

3

¿Cómo no confías explícitamente en un certificado particular (especialmente, certificado de CA) para OpenSSL?

En las aplicaciones basadas en NSS, uno puede instalar el certificado con trustarg p: prohibited (explicitly distrusted) . De esta manera, digamos que tenemos

  Verisign --->  Some_CA_I_dont_trust ---> ... ---> Some Site

Puedo eliminar la confianza de Some_CA_I_dont_trust sin afectar a otros de Verisign.

Sin embargo, no parece ser el caso si agrego ! a la línea correspondiente en /etc/ca-certificates.conf y ejecuto update-ca-certificates . OpenSSL acepta el certificado a pesar de que la CA intermedia no está en mi sistema.

    
pregunta phoeagon 26.02.2015 - 14:28
fuente

2 respuestas

4

Al confiar en la CA raíz, usted confía en su juicio sobre a quién firman. Mientras la CA intermedia sea válida, no se revoque, y confía en la CA raíz ... la cadena siempre se verificará. Otras aplicaciones (como FireFox) pueden agregar comprobaciones y funciones adicionales para buscar certificados intermedios no confiables, pero a menos que la aplicación lo proporcione, en realidad no es parte de la especificación SSL / TLS.

Para eliminar las CA raíz de confianza, puede realizar lo siguiente:

update-ca-certificates actualiza /etc/ssl/certs leyendo el /etc/ca-certicates.conf . /etc/ca-certificates.conf se genera automáticamente ejecutando sudo dpkg-reconfigure ca-certificates .

Esto abrirá un comando GUI.

  1. En el primer aviso, tiene la opción de decir Sí / No / Solicitar nuevos certificados. Haga clic en Preguntar
  2. Ahora recibirás una gran lista de CA con un * al lado. Vaya a la lista y elimine las CA que desee presionando spacebar . El * será eliminado.
  3. Cuando hayas terminado, presiona Enter .
  4. Esto debería activar la actualización de /etc/ssl/certs . Las CA que ha eliminado deben aparecer en el símbolo del sistema.

Si no ves algo como esto:

Processing triggers for ca-certificates ...
Updating certificates in /etc/ssl/certs... 0 added, 1 removed; done.
Running hooks in /etc/ca-certificates/update.d....
Removing debian:A-Trust-nQual-03.pem
done.
done.

Luego, ejecutaría sudo update-ca-certificates para garantizar que /etc/ssl/certs se actualice correctamente.

Realicé todo esto en un sistema basado en Debian.

    
respondido por el RoraΖ 26.02.2015 - 14:50
fuente
1

No creo que puedas hacer esto con las aplicaciones habituales ...

Si tiene su propia aplicación utilizando la biblioteca OpenSSL, podría manejar esta condición dentro de certificado Verify_callback . Esta devolución de llamada se realiza en la verificación de cada certificado en la cadena de confianza y puede desconfiar del certificado simplemente devolviendo 0. Tenga en cuenta que esto provocará que la verificación completa falle, incluso si esta sería una ruta de confianza alternativa que no utiliza la confianza desconfiada certificado.

    
respondido por el Steffen Ullrich 26.02.2015 - 16:05
fuente

Lea otras preguntas en las etiquetas