Sto provando a fare una connessione sicura con openSSL tra un client e un server che ho scritto.
Quando provo a selezionare la suite di crittografia da utilizzare, eseguo SSL_CTX_set_cipher_list (ctx, ECDH-ECDSA-AES18-GCM-SHA256) e ciò sia sul client che sul server.
Ma quando controllo con get_cipher_list, la cifra al livello di priorità 0 è ECDH-RSA-AES128-GCM-SHA256 (noti l'uso di RSA invece di ECDSA), con ECDH-ECDSA-AES18-GCM-SHA256 che appare solo a livello 1.
Sia il client che il server hanno le chiavi ECDSA nei certificati firmati da una CA ECDSA.
Ora ho diverse domande:
-
da dove viene la suite con RSA? nessuno dei server o client lo ha selezionato come possibile cifrario.
-
È possibile avere l'ECDSA con priorità 0?
- più problematico: quando chiamo SSL_get_cipher (ssl) indica che il codice effettivo utilizzato è quello con RSA. Tuttavia, sono stato in grado di comunicare tra client e server. Com'è possibile se non hanno un certificato RSA?
- Quindi, come posso essere sicuro che il traffico sia effettivamente crittografato?