HTTPS Consideraciones de selección de cifrado [cerrado]

4

Pasé por varios documentos en línea, por ejemplo, Mejores prácticas de implementación de SSL y TLS , con respecto a la selección "correcta" de suites de cifrado para un sitio web. La imagen adjunta muestra mi selección de suites de cifrado con menor prioridad de arriba a abajo, por ejemplo. ECDHE-ECDSA-CHACHA20-POLY1305 tiene la más alta prioridad. A continuación, explico esta selección y me gustaría recibir sus comentarios.

Obtuve los cifrados con el siguiente comando, proporcionado por LibreSSL 2.4.1:

openssl ciphers -v | grep -i dhe | grep -i -e ecdsa -e rsa | grep -i -v camellia | grep -i -v rc4 | grep -i -v 3des | grep -i -v ChaCha20-Poly1305-Old

Mis razones para la selección:

  • dhe: permite solo cifrados que admiten el secreto hacia adelante
  • ecdsa / rsa: deshabilita los cifrados débiles DSA / DSS
  • camelia: ¿No se ha probado tanto como AES? Patente!
  • rc4: débil
  • 3des: débil
  • ChaCha20-Poly1305-Old: borrador de cifrado

A partir de entonces, clasifiqué los cifrados con seguridad en mente:

  1. Primero elegí los cifrados que soportan AEAD debido a, entre otros:
      

    "Debe confiar principalmente en las suites AEAD ..." (las mejores prácticas de SSLLABS)

  2. Luego, los cifrados ECDSA se favorecen sobre RSA. RSA1024 es débil, RSA2048 está bien por ahora, pero RSA3072 y superior ponen demasiada carga en el servidor (IMHO).
  3. Se favorece ECDH. DH con 2048 Bit y superior es seguro por ahora. Pero, las vulnerabilidades son conocidas por menores longitudes de clave. Por otro lado, secp256r1 (NIST P-256), que es el ECC con mayor soporte, es inseguro según Bernstein (URL: safecurves.cr.yp.to). Además, secp256r1 viene de NIST! ¿Qué piensas? Utiliza DH con vulnerabilidades conocidas para longitudes de teclas cortas o ECDH con secp256r1 proveniente de NIST y siendo inseguro según Bernstein?

Después de hacer mi selección en función de la fortaleza del cifrado, asigné más prioridad en función del rendimiento .

  1. Primero, hice mi selección basada en el algoritmo de cifrado, asumiendo que tiene un mayor impacto en el rendimiento que el algoritmo hash elegido. ¿Tengo razón o no?
  2. Dado que las PC y las computadoras portátiles generalmente tienen más rendimiento que los dispositivos móviles, me concentro en los dispositivos móviles y elegí los cifrados basados en ChaCha20 primero, que se ejecutan en dispositivos móviles basados en ARM más rápido que AES debido a la falta de soporte AES-NI (URL : blog.cloudflare.com/do-the-chacha-better-mobile-performance-with-cryptography/). Las PC modernas, por otro lado, tienen soporte AES-NI y se ejecutan más rápido con AES.
  3. Las opciones adicionales (AES128 sobre AES256 y SHA1- > SHA256- > SHA384) son autoexplicativas. HMAC-SHA1 no representa un riesgo de AFAIK. ¿O me equivoco?

Por cierto, no me importan los problemas de conectividad con Windows XP y algunos otros sistemas antiguos. ECDSA y RSA estarán disponibles en mi servidor web simultáneamente. Nginx admite varios certificados a partir de la versión 1.11.0, mientras que Apache lo admite durante más tiempo. Voy a usar el limpiador LibreSSL, que ya tiene ChaCha20.

    
pregunta user2486134 19.06.2016 - 01:30
fuente

0 respuestas

Lea otras preguntas en las etiquetas