Consecuencias de seguridad de deshabilitar CURLOPT_SSL_VERIFYHOST (libcurl / openssl)

¿Cuáles son las consecuencias de seguridad de habilitar CURLOPT_SSL_VERIFYPEER y deshabilitar CURLOPT_SSL_VERIFYHOST ?

  • CURLOPT_SSL_VERIFYPEER comprueba que el certificado remoto sea válido, es decir, que confía en que fue emitido por una CA en la que confía y que es auténtico.

  • CURLOPT_SSL_VERIFYHOST comprueba que el certificado se emitió a la entidad con la que deseaba hablar.

Para compararlo con un escenario de la vida real, VERIFYPEER es como comprobar que la forma de identificación es la que reconoce (es decir, pasaporte de un país en el que confía, tarjeta de personal de una empresa que usted conoce, …). VERIFYHOST es como verificar el nombre real en la tarjeta que coincide con con quién quieres hablar.

Si no usa VERIFYHOST (el valor correcto es 2, no 1, por cierto), deshabilita la verificación del nombre de host y abre la puerta a los ataques de MITM: cualquier persona con un tipo de identificación confiable puede hacerse pasar por cualquier persona dentro del conjunto de ID que confianza, por ejemplo, cualquier persona con un pasaporte válido puede pretender que es otra persona con un pasaporte válido.