El año pasado (mayo de 2013), realicé un experimento contactando servidores SSL al azar: me estaba conectando al puerto 443 de direcciones IPv4 aleatorias y, si recibía una respuesta, mi cliente participó en una serie de apretones de manos abortados para averiguar qué paquetes de cifrado eran realmente compatibles con el servidor. Probé unos cuantos millones de direcciones y encontré unos 13000 servidores que hablaban SSL / TLS a través del puerto 443.
De estos, aproximadamente 7.5% admitía un conjunto de cifrado ECDHE.
Cuidado con los detalles:
- Esto fue hace un año. Las cosas pueden haber cambiado desde entonces.
- Mi cliente no envió ninguna extensión reclamando soporte para ninguna curva elíptica específica. Sólo reclamaba el apoyo "genérico" de ECDHE. Esto puede haber evitado que algunos servidores intenten los conjuntos de cifrado ECDHE. En ese sentido, mi figura puede ser una subestimación.
- Un corolario es que "el soporte ECDHE" no se puede declarar de forma realmente genérica. Muchas implementaciones de ECC están limitadas a algunos tipos de curvas, la mayoría de las cuales pueden procesar solo un par de curvas específicas (las curvas NIST estándar P-256 y P-384, llamadas "suite B") .
- Hay varias formas de tomar medidas de muestreo. Mi código estaba usando direcciones IPv4 aleatorias, por lo que no solo encontraba sitios web, sino también muchos sistemas como módems / enrutadores domésticos. Encuestas SSL existentes publicadas, como que una usa los "1 millones de servidores web más importantes" de Alexa ; esto favorece una noción de "importancia económica" que puede o no corresponder a lo que usted desea. Concentrarse en los "sitios principales" elimina los servidores SSL no mantenidos y, de hecho, los módems y enrutadores domésticos, lo que debería aumentar el soporte de ECDHE. De hecho, esa encuesta (desde principios de 2014) encuentra que un enorme 21.6% de estos "sitios principales" son compatibles con las suites de cifrado ECDHE.
Como nota al margen, debo decir que en la mayoría de los casos, es improbable que el aumento de rendimiento implícito por ECDHE (sobre DHE) sea relevante. Se necesitan muchas conexiones por segundo a un servidor web básico para ver la diferencia (estamos hablando de cientos por segundo aquí). Otro punto importante es que obtiene el aumento de rendimiento al admitir los conjuntos de cifrado ECDHE, y configurar su cliente o servidor para que prefiera dichos conjuntos de cifrado cuando sea posible; no es necesario que deje de admitir conjuntos de cifrado que no sean ECC para obtener ese supuesto bono de velocidad. En ese sentido, la decisión de habilitar los conjuntos de cifrado ECDHE no necesita estar respaldada por cifras sobre quién los apoya y quién no; solo puedes activarlos y usarlos de manera oportunista.