Confíe en una CA no root en OpenSSL

2

¿Es posible que OpenSSL confíe en una CA no root de manera que un certificado firmado por esa CA no root pueda verificarse correctamente? Me he dado cuenta de que el comportamiento predeterminado de OpenSSL es verificar solo los certificados cuando puede construir una cadena completa, hasta una CA raíz autofirmada. ¿Se puede anular esto?

Específicamente, no quiero que la raíz esté en el archivo CA.

    
pregunta Justin Gerace 20.12.2013 - 23:11
fuente

4 respuestas

2

Las versiones recientes (probablemente 1.0.2 y superiores) de OpenSSL admiten la opción -partial_chain . enlace

Con respecto al caso de uso, por ejemplo, se puede utilizar en el grapado OCSP (es decir, el comando openssl ocsp ), en cuyo caso no hay mérito para verificar el estado de la CA intermedia.

    
respondido por el kazuho 07.01.2015 - 02:46
fuente
1

OpenSSL admite las opciones CAfile o CApath para los certificados de CA. Creo que necesita aclarar lo que quiere decir con 'CA no raíz', ya que esto no tiene sentido a menos que se refiera a un certificado intermedio. Y la idea de confiar en un intermediario como si fuera una raíz tiene aún menos sentido si no desea agregar la raíz que señala ese intermediario al archivo CA que está utilizando.

    
respondido por el Chris 20.12.2013 - 23:32
fuente
0
  

¿Es posible hacer que OpenSSL confíe en una CA no root tal que un   ¿Se puede verificar correctamente el certificado firmado por esa CA no raíz?

Sí. Puede especificar la CA que desee como autoridad válida, usando la configuración de CApath o CAfile.

  

Me he dado cuenta de que el comportamiento predeterminado de OpenSSL es verificar solo   Certificados cuando se puede construir una cadena completa, hasta un autofirmado   raíz CA. ¿Se puede anular esto?

Si la CA no firmó directamente el certificado final, entonces sí, OpenSSL solo verificará si puede construir una cadena. Sin una cadena, no hay conexión demostrable, y no hay verificación. No estoy seguro de qué es exactamente lo que estás sugiriendo cuando dices "Anulado".

  

Específicamente, no quiero que la raíz esté en el archivo CA.

Puedes usar CApath en su lugar, pero esas son tus dos únicas opciones. Es un poco absurdo decir que "quiero especificar la raíz, pero específicamente no quiero especificar la raíz".

El hecho de que específicamente no desee utilizar CAfile para especificar la CA significa que no entiendo lo que está tratando de hacer o que no entiende lo que está tratando de hacer. Siéntase libre de explicar más sobre su situación para que podamos ayudarlo mejor.

    
respondido por el gowenfawr 19.02.2014 - 19:32
fuente
-1

Woah. OK, por lo que no es una buena práctica recomendada. He tenido que hacerlo, pero en general ha sido una yegua nocturna.

Primero : si no puedes confiar en la raíz, no puedes confiar en la cadena de CA. La raíz es la fuente de la confianza, por lo que si hay una razón para no incluir la raíz, tiene un problema con el concepto básico sobre el que se construye la PKI, que existe una autoridad final en la que se confía tanto que todos pueden creer. en ella, y esa es la raíz.

Siguiente : si su caso es que confía en algunas CAs en la jerarquía pero no en otras, tiene un punto válido. Por ejemplo, en un caso que tiene 2 CA: una para la emisión de certificados humanos y otra para no humanos (como certificados de servidor SSL), es un punto justo que puede querer que su sitio solo proporcione acceso a una ruta. Eso no hace que la otra CA sea inválida, simplemente no está bien para el caso en cuestión.

En general, esto se reduce a la diferencia entre la autenticación y la autorización. Si solo desea las credenciales del CA1 intermedio, no significa que en este caso las credenciales del CA2 intermedio no sean válidas, por lo que son autentificables . Pero no están autorizados para este caso de uso.

En aras de la elegancia ...

Muchas tiendas de confianza no están diseñadas para este caso de uso, pero algunas sí lo están. La verdadera respuesta es que la forma elegante es tener un código de verificación de control de acceso adicional creado como un gancho para el caso de uso de inicio de sesión que realiza la comprobación que desea para asegurarse de que todos los usuarios proceden de CA1 y no de CA2. A menudo se considera un caso de uso especializado.

La forma menos elegante ...

No he intentado esto con Open SSL, pero es posible que pueda falsificarlo: coloque la CA intermedia que desee y la raíz en el almacén de confianza. Luego, asegúrese de que todas las solicitudes de sus clientes solo incluyan los certificados debajo de esa CA intermedia.

El código Open SSL puede ser capaz de asignarlo desde allí. Los sistemas de mayo lo harán, especialmente cuando el cliente está enviando una cadena parcial.

Si no puede controlar al cliente, puede o no estar fuera de suerte. No conozco ningún sistema que haya planeado que usted NO confíe explícitamente en la raíz ... es contrario a la premisa básica.

    
respondido por el bethlakshmi 21.12.2013 - 00:17
fuente

Lea otras preguntas en las etiquetas