¿Es posible probar que la clave del servidor TLS ha cambiado?

3

Sé de un sitio que actualmente usa SSLv2 y me niego a conectarme hasta que ellos

  1. Deshabilitar SSLv2
  2. Vuelva a escribir sus servidores

Insisto en el # 2 porque debido a DROWN , los servidores que ejecutan SSLv2 deben considerar que sus claves privadas están comprometidas. Una nueva clave es lo único que resolverá ese problema.

¿Hay alguna forma de que demuestre que el sitio ha modificado su servidor? Puedo verificar el certificado (que tendrá que cambiar), pero ¿cómo puedo saber que no solo reutilizaron la misma clave y obtuvieron un nuevo certificado?

Sé que puedo usar openssl x509 -pubkey para obtener información sobre la clave pública (que está vinculada directamente a la clave privada) desde el certificado. Si la clave pública cambia, ¿significa que la clave privada ha cambiado?

O, una mejor pregunta podría ser "si la clave pública cambia, ¿es posible que la clave privada no haya cambiado"? Por supuesto, compararía el módulo y el exponente de la clave pública, no solo los bytes de los archivos codificados DER que pude obtener o derivar.

¿Funcionará la comparación de clave pública y hay una mejor manera?

    
pregunta Christopher Schultz 12.04.2016 - 20:45
fuente

3 respuestas

2

Respuesta corta: Si la clave pública ha cambiado, también lo ha hecho su clave privada.

Exploración prolongada: Los conjuntos de cifrado modernos utilizados por los servidores SSL / TLS tienen exactamente una combinación de claves. Entonces, mientras una de las teclas haya cambiado, la otra también habrá cambiado. Por lo tanto, si también han desactivado SSLv2, deberías estar listo. Más información se puede encontrar fácilmente en la pila de Crypto.

    
respondido por el Robert Mennell 12.04.2016 - 20:55
fuente
1

Teóricamente , la clave pública codificada en DER se puede cambiar sin modificar el secreto real en la clave privada; hay (al menos) dos formas de hacerlo:

  1. Cambia la codificación DER. Si bien el DER es supuestamente determinista, todavía hay un elemento opcional en la estructura AlgorithmIdentifier que identifica el tipo de clave. Para una clave pública RSA, el OID en esa estructura debe apuntar a RSA, y los "parámetros" tradicionalmente deberían establecerse en un valor ASN.1 "NULL", pero los parámetros también pueden omitirse por completo, lo que aún debería funcionar en la mayoría lugares, pero cambiará la codificación DER.

  2. El exponente público puede cambiarse manteniendo el mismo módulo, es decir, los mismos factores, lo que más o menos implica usar la misma clave privada (es decir, los factores seguirán siendo los mismos, incluso si la clave privada) Se modifica el exponente).

Sin embargo, tales trucos serían un gran esfuerzo sin un motivo plausible. Por lo tanto, en la práctica , puede asumir que si la clave pública cambió, entonces se generó una nueva clave privada.

(No obstante, como lo señala @Nathan, una nueva clave generada no implica que la nueva clave se haya generado o almacenado correctamente; de hecho, se podría argumentar que la administración de un sitio que aún admite SSLv2 en a principios de 2016 es bastante descuidado en lo que respecta a la seguridad en general.)

    
respondido por el Thomas Pornin 12.04.2016 - 21:13
fuente
0
  

Si la clave pública cambia, ¿significa que la clave privada ha cambiado?

Sí.

Vale la pena señalar que probablemente sea inútil insistir en tal cambio (la nueva clave); por lo que sabe, su nuevo par de claves se almacena en una carpeta compartida abierta a toda la oficina ... Es decir, independientemente de cómo Lo nuevo es que la clave es tan buena como su seguridad operativa.

    
respondido por el Nathan 12.04.2016 - 20:49
fuente

Lea otras preguntas en las etiquetas