Esta configuración está bien, aunque recomiendo ofrecer una de las suites ChaCha20-Poly1305 y hacer de esa suite la opción preferida. Le sugiero que ofrezca TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256
si está utilizando certificados RSA, o TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256
si está utilizando certificados ECDSA.
La razón de esto es el rendimiento. AES-GCM usa algunas operaciones que no son rápidas sin aceleración de hardware. Específicamente, la extensión del conjunto de instrucciones AES y la multiplicación sin transporte (por ejemplo, PCLMULQDQ, XMULX) se utilizan para realizar el cifrado de cifrado en bloque y la multiplicación sin transporte sobre GF (2 k ) para GHASH respectivamente. Sin estas extensiones, el rendimiento de AES-GCM es particularmente bajo. Esto afecta principalmente a los teléfonos inteligentes que pueden tener extensiones AES (solo en architecutres ARMv8) pero no proporcionarán las múltiples extensiones necesarias sin transporte.
ChaCha20-Poly1305, sin embargo, se basa únicamente en las instrucciones de SIMD para el rendimiento. Estos son bastante omnipresentes. Todos los procesadores x86_64 modernos y la mayoría de los procesadores ARM de gama alta ofrecen una gama de extensiones de instrucciones SIMD (por ejemplo, SSE4, AVX2, NEON, etc.) que pueden habilitar implementaciones altamente eficientes y eficaces de ChaCha20-Poly1305.
Además, haciendo referencia a mi mención de los certificados ECDSA, es posible que desee considerarlos en lugar de los certificados RSA tradicionales. Todos los navegadores modernos admiten dichos certificados y, de nuevo, ofrecen un rendimiento mejorado. ECDSA también se considera que está más preparado para el futuro frente a nuevos ataques y, en general, es más directo desde el punto de vista de la seguridad (RSA tiene un lote de problemas que tiene que mitigar al escribir una implementación). Si elige certificados de ECDSA, deberá intercambiar su configuración existente para usar TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256
para GCM.