Lo que se verifica en SSL_get_verify_result de OpenSSL

0

En OpenSSL, la siguiente función se usa para verificar certificados.

SSL_get_verify_result

Miré el manual aquí . Pero no detalla qué se está verificando. ¿Me puede aclarar qué verifica esta función? (por ejemplo, fecha de caducidad, cadena de confianza, etc.). Para mí, es importante saber cómo se genera exactamente el resultado y cuáles son los factores en los que se basa la verificación.

    
pregunta user9371654 20.12.2018 - 14:12
fuente

2 respuestas

0

La respuesta está en la parte inferior de la página de manual a la que has vinculado en VUELVE VALORES en la sección que dice "Cualquier otro valor: documentado en verificar (1) .

En la sección VERIFY OPERATION de la página de verificación, responde a tu pregunta:

  

El programa de verificación utiliza las mismas funciones que el SSL interno y   Verificación S / MIME, por lo tanto esta descripción aplica a estos   verificar las operaciones también

Todos los detalles que ha preguntado se documentan en la sección VERIFICAR OPERACIÓN.

Mods, sé que las respuestas a los enlaces normalmente son mal vistas, pero el consultante preguntó cómo encontrar un enlace específico.

EDITAR:

Consulte Dave Thompson responda a continuación , ya que es importante entender que esta llamada solo devuelve el resultado de la ejecución de validación más reciente; en realidad no ejecuta una validación de certificado por sí misma.

    
respondido por el John Deters 21.12.2018 - 06:02
fuente
1

SSL_get_verify_result() no hace ninguna verificación; devuelve (parte de) el resultado de la verificación del certificado (si corresponde) realizada durante el protocolo de enlace completo más reciente (si corresponde) en el objeto SSL dado. Suponiendo que realmente quiere saber qué hizo la verificación que , depende en gran medida del código de la aplicación.

Si el código establece una devolución de llamada con SSL_CTX_set_cert_verify_callback antes de crear el objeto SSL , la verificación durante el protocolo de intercambio consiste completamente en llamar a esa devolución de llamada, lo que haga la devolución de llamada es lo que hace. Si no se establece esta devolución de llamada, como dice la página de manual, se usa una 'función de verificación incorporada', que en realidad es X509_verify_cert() (que tiene su propia página de manual no muy útil) y qué dice does es roughly lo que se describe en la página de comando del verificador (1) como hace referencia a John, además de algunas cosas que se han agregado a lo largo del tiempo pero que no siempre aparecieron en el documento (por ejemplo, NameConstraints y DANE, por no mencionar algunas comprobación de revocación), pero esta comprobación puede ser modificada y "ajustada" por numerosas opciones y parámetros, no todos los cuales se pueden usar para verificar (1), y se pueden configurar en cualquiera el nivel SSL_CTX o SSL , que incluye un 'Verify_callback' opcional que es independiente y bastante diferente del 'cert_verify_callback' mencionado anteriormente. Consulte las páginas del manual para SSL_[CTX_]set_verify[_depth] , SSL_[CTX_]load_verify_locations et rel, Las funciones X509_STORE_* y X509_STORE_CTX_* , incluyendo X509_STORE_CTX_set0_param y las funciones relacionadas relacionadas con X509_VERIFY_PARAM* , especialmente X509_VERIFY_PARAM_set_flags .

Y si eso no es lo suficientemente exacto, y puede que no lo sea, verifique la fuente - para la versión que está ejecutando (o que estará ejecutando), ya que ha habido algunos cambios en esta área (bastante compleja) con el tiempo. Explicar exactamente todo lo que hace, incluso en una versión en particular, superaría (casi con certeza) el límite de respuesta de la Pila y me tomaría aproximadamente una semana, y probablemente se volvería obsoleto pronto, así que no lo haré. Si tiene uno o muy pocos problemas específicos, eso podría responderse en un tiempo práctico.

    
respondido por el dave_thompson_085 21.12.2018 - 09:10
fuente

Lea otras preguntas en las etiquetas