Estoy tratando de hacer una conexión segura con openSSL entre un cliente y un servidor que escribí.
Cuando trato de seleccionar la suite de cifrado a usar, hago SSL_CTX_set_cipher_list (ctx, ECDH-ECDSA-AES18-GCM-SHA256) y esto tanto en el cliente como en el servidor.
Pero cuando verifico con get_cipher_list, el cifrado en el nivel de prioridad 0 es ECDH-RSA-AES128-GCM-SHA256 (observe el uso de RSA en lugar de ECDSA), con ECDH-ECDSA-AES18-GCM-SHA256 que solo aparece en nivel 1.
Tanto el cliente como el servidor tienen claves ECDSA en certificados firmados por una CA ECDSA.
Ahora tengo varias preguntas:
-
¿de dónde viene la suite con RSA? ninguno de los servidores o clientes lo seleccionó como posible cifrado.
-
¿Es posible tener la ECDSA con prioridad 0?
- más problemático: cuando llamo a SSL_get_cipher (ssl), indica que el cifrado real utilizado es el que tiene RSA. Sin embargo, pude comunicarme entre el cliente y el servidor. ¿Cómo es posible si no tienen un certificado RSA?
- Entonces, ¿cómo puedo estar seguro de que el tráfico está efectivamente cifrado?