Como mucho, una respuesta parcial pero demasiado para comentarios razonables.
ECDHE NO requiere TLS1.2, solo 1.0 como dije en el comentario. Lo usé a menudo en openssl 1.0.0 que ni siquiera implementa 1.2, y aún así funciona bien especificando 1.0 en openssl actual o usando java sin sangrado (j7 puede hacer 1.1 y 1.2, pero por defecto es 1.0). De hecho, openssl en realidad admite ECDHE (y otras características de ECC) en SSL3, que el RFC no solicita, por lo que funciona para openssl-to-openssl pero no necesariamente con otras implementaciones; pero no hay una buena razón para usar eso cuando hay disponible TLS1.0 más robusto. Las únicas funciones de cifrado que requieren TLS1.2 son AEAD (en openssl GCM) y SHA2. Si su aplicación requiere ECDHE-ECDSA-AES128-SHA256 pero no ECDHE-ECDSA-AES128-SHA, que fallaría en 1.0. ¿Qué cifrados se ofrecen en su ClientHello? Algunos buscadores de Google encuentran enlace que sugiere al menos la posibilidad de especificar la lista de cifras desde 2012, pero no lo hice No vea ningún documento sobre si y cómo un usuario controla esto.
Lo que me recuerda: ¿estás viendo la versión correcta en ClientHello? Hay dos versiones: capa de registro y protocolo de enlace. OpenSSL utiliza la versión 0301 (TLS1.0) "Record Layer" para que ClientHello ofrezca una variedad de protocolos, para garantizar que un par que implementa solo una versión anterior "negociara hacia abajo" correctamente; es la versión bajo "Protocolo de protocolo de enlace: Cliente Hola" que especifica la versión ofrecida. Y aún no ha dicho cuál es la respuesta en Wireshark: ¿hay una alerta y con qué código, o alguna otra cosa, o qué?
Dicho esto, es posible que desee TLS1.2 por sus otros beneficios o solo por la protección del futuro. Entre los protocolos que implementa openssl, los que ofrece para un cliente o acepta para un servidor están controlados por llamadas que el código respectivo del cliente o de la aplicación del servidor hace. El punto de inicio para un SSL_CTX
son los "métodos" para un protocolo específico como SSLv3_*method
o TLSv1_2_*method
, o el "genérico" SSLv23_*method
(un nombre heredado que ahora es engañoso y se puede cambiar en una futura versión de openssl ) seguido de SSL_[CTX_]set_options
con (entre otros) SSL_OP_NO_(protocol)
bits.
Suponiendo que anteriormente, ClientHello es la versión de registro 0301 Y la versión de handshake 0301, es decir, solo TLS1.0, bien podría ser que wpa_supplicant se haya codificado para hacer específicamente TLSv1_*method
. Esto podría haber tenido sentido hace diez años, cuando TLS1 (.0) era el mejor disponible, y había problemas con SSLv2 siendo atacable y SSLv3 inaceptable para el uso de USgovt (aunque en realidad seguro) por lo que alguien podría razonablemente haber sentido "lo haremos". proteger a esos @ #? usuarios de cometer un error y hacer algo inseguro forzando TLS1 ". Si es así, el paso del tiempo ha hecho que este pensamiento sea incorrecto.