nginx recomienda ssl_ciphers

6

Estoy buscando algunos consejos sobre cómo configurar los cifrados para nginx con SSL.

¿Qué recomendaría para un buen compromiso entre la seguridad y la compatibilidad en este momento?

He investigado un poco, pero a veces las soluciones son muy diferentes y se vuelven confusas.

  • Por ejemplo, este sitio enlace recomienda solo:

    AES256+EECDH:AES256+EDH
    

    ¿Eso significa que si no se pueden usar, habrá un error? ¿No es un poco demasiado restrictivo entonces?

  • Mozilla recomienda listas mucho más grandes:

    En esos, parece que se prefiere AES128 sobre AES256 ya que entendí que el orden importa, ¿correcto?

    ¿No es AES256 mejor si está disponible? ¿Por qué no los ponen primero entonces?

    ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-DSS-AES128-GCM-SHA256:kEDH+AESGCM:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA:ECDHE-ECDSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-DSS-AES128-SHA256:DHE-RSA-AES256-SHA256:DHE-DSS-AES256-SHA:DHE-RSA-AES256-SHA:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!3DES:!MD5:!PSK
    
    ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-DSS-AES128-GCM-SHA256:kEDH+AESGCM:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA:ECDHE-ECDSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-DSS-AES128-SHA256:DHE-RSA-AES256-SHA256:DHE-DSS-AES256-SHA:DHE-RSA-AES256-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:AES:CAMELLIA:DES-CBC3-SHA:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!MD5:!PSK:!aECDH:!EDH-DSS-DES-CBC3-SHA:!EDH-RSA-DES-CBC3-SHA:!KRB5-DES-CBC3-SHA
    
  • Esta post recomienda una lista bastante pequeña en comparación con Mozilla:

    ¿Cuál es la diferencia entre ECDH aquí Vs. ECDHE con Mozilla?

     ECDH+AESGCM:DH+AESGCM:ECDH+AES256:DH+AES256:ECDH+AES128:DH+AES:ECDH+3DES:DH+3DES:RSA+AESGCM:RSA+AES:RSA+3DES:!aNULL:!MD5:!DSS;
    
  • Comodo recomienda algo diferente de nuevo:

    ECDHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA256:ECDHE-RSA-AES256-SHA:ECDHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA256:DHE-RSA-AES128-SHA256:DHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA:ECDHE-RSA-DES-CBC3-SHA:EDH-RSA-DES-CBC3-SHA:AES256-GCM-SHA384:AES128-GCM-SHA256:AES256-SHA256:AES128-SHA256:AES256-SHA:AES128-SHA:DES-CBC3-SHA:HIGH:!aNULL:!eNULL:!EXPORT:!DES:!MD5:!PSK:!RC4
    

Bueno, estoy un poco perdido. Encontré esta publicación ( ssl_ciphers recomendados para seguridad, compatibilidad - Secreto perfecto hacia adelante ) pero no ayuda, ya que también hay muchas versiones y no es fácil clasificarlas.

¿Algún consejo?

Gracias

    
pregunta Michael 06.12.2014 - 02:27
fuente

2 respuestas

2

La guía TLS del lado del servidor Mozilla a la que te vincula es un excelente recurso a seguir para las opciones de conjuntos de cifrado. Las opciones de Ciphersuite cambiarán a medida que surjan nuevas vulnerabilidades en TLS y Mozilla parece hacer un buen trabajo para mantenerse al día con las recomendaciones.

Generalmente se prefiere AES-128 porque las personas piensan que más grande es mejor . Tanto AES-128 como AES-256 son seguros contra ataques conocidos y existe un costo de rendimiento no despreciable por el uso de AES-256 sobre AES-128.

ECDHE usa claves efímeras mientras que ECDH no las usa. Por lo tanto, ECDHE proporciona secreto hacia adelante perfecto mientras que ECDH no lo hace.

    
respondido por el Ayrx 06.12.2014 - 02:54
fuente
2

Tengo lo siguiente en mi nginx /etc/nginx/perfect-forward-secrecy.conf, que me da una calificación de A en los laboratorios SSL. Su certificado debe ser SHA256 sin embargo.

ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_prefer_server_ciphers on;
ssl_ciphers "EECDH+ECDSA+AESGCM EECDH+aRSA+AESGCM EECDH+ECDSA+SHA384 EECDH+ECDSA+SHA256 EECDH+aRSA+SHA384 EECDH+aRSA+SHA256 EECDH+aRSA+RC4 EECDH EDH+aRSA RC4 !aNULL !eNULL
 !LOW !3DES !MD5 !EXP !PSK !SRP !DSS !MEDIUM !RC4";
ssl_dhparam /my/path/to/dh4096.pem;

Dado que la mayoría de los navegadores actualizados son compatibles con TLS, personalmente he deshabilitado SSLv3 debido a la vulnerabilidad de Poodle y no estoy dispuesto a ejecutar con cifrados basados en RC4.

    
respondido por el Jeroen - IT Nerdbox 06.12.2014 - 08:35
fuente

Lea otras preguntas en las etiquetas