¿Qué es mejor para SSL: TLS_EDH o TLS_SRP?

2

DH es vulnerable a un ataque de intermediario debido a que no hay autenticación del servidor; y RSA no tiene secreto hacia adelante.

La gente sugiere usar DH efímero, pero ¿cuáles son las diferencias entre DH efímero y DH ordinario? ¿Por qué es más adecuado? ¿Qué hay de usar el protocolo de contraseña remota segura para el intercambio de claves?

En resumen, cuál de estos es mejor y por qué:

TLS_EDH o TLS_SRP

    
pregunta user236501 08.02.2013 - 05:20
fuente

2 respuestas

4

Perfect Forward Secrecy , en el contexto de TLS, significa que la clave utilizada para descifrar cosas en realidad no se guarda en ninguna parte , y por lo tanto es inmune al robo ulterior.

En las suites DH sencillas, el certificado del servidor contiene la clave pública DH, y la clave privada correspondiente es la que se guarda en un archivo en algún lugar del servidor. Si alguien roba esa clave (por ejemplo, de un viejo disco duro fuera de servicio, o una cinta de copia de seguridad mal colocada), entonces puede usarla para descifrar las conexiones pasadas que grabó (por escuchas pasivas en la línea) antes del robo de la clave. El mismo problema se aplica a las suites de cifrado RSA simples, que son mucho más comunes que las DH simples (los certificados que contienen una clave DH son bastante raros).

Con las suites DHE, los certificados de servidor contienen una clave pública RSA o DSA. Cuando se inicia (o con cada nueva conexión), el servidor crea un nuevo par de claves DH que se mantiene solo en la memoria RAM. El servidor envía la clave pública DH como parte del protocolo de enlace TLS, y firma esa clave pública con su clave DSA o RSA (la que almacena en un archivo). Nuestro atacante ladrón, una vez que obtuvo una copia de la clave RSA o DSA, puede falsificar sus propias firmas, pero no obtendrá la clave privada DH, ya que no estaba almacenada en ninguna parte. Por lo tanto, DHE evita que el ladrón clave descifre las sesiones pasadas, que es el punto de PFS.

PFS es una propiedad deseable (aunque solo sea para relaciones públicas), así que use DHE (o su variante de curva elíptica ECDHE) cuando sea posible. Puede usar un poco más de CPU y ancho de banda, pero se necesitarían cientos o incluso miles de sesiones nuevas de TLS por segundo para notar la diferencia.

SRP es algo completamente diferente. Es un mecanismo de intercambio de claves donde no hay ningún certificado. En su lugar, el cliente y el servidor comparten un valor secreto común y se autentican mutuamente con respecto a ese valor secreto. Es muy ingenioso ya que tolera bastante bien los secretos compartidos de baja entropía, también conocidos como "contraseñas" (a diferencia de los conjuntos de cifrado "PSK" que son más simples pero que necesitan un secreto compartido de alta entropía). El principal inconveniente de SRP es que los navegadores habituales no lo admiten (todavía).

    
respondido por el Thomas Pornin 08.02.2013 - 13:32
fuente
4

Para aplicaciones web, iría con ECDHE_RSA como intercambio preferido con DHE_RSA como alternativa.

ECDHE es seguro, eficiente y le brinda un alto nivel de confidencialidad (128 bits con P-256). DHE es más lento y tiene menos seguridad, pero algunos navegadores (como Opera) no son compatibles con ECC.

Todavía usaría RSA para la autenticación. El nivel de seguridad requerido para la autenticación es más bajo, 1024 bit RSA es lo suficientemente bueno cuando se usa junto con ECDHE. Es posible que desee aumentarlo un poco más allá de 1024, pero se trata principalmente de relaciones públicas, y no de seguridad real.

Con tales suites, utiliza PKI con RSA para asegurarse de que está hablando con el servidor correcto que evita MitM, y (EC) DH para el intercambio de claves, lo que le brinda secreto hacia adelante.

    
respondido por el CodesInChaos 08.02.2013 - 09:45
fuente

Lea otras preguntas en las etiquetas