openSSL seleziona ECDH-RSA invece di ECDH-ECDSA

1

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?
posta Jacques 05.02.2015 - 16:57
fonte

1 risposta

1

(Suppongo che entrambi gli AES18 siano refusi per AES128.)

Alcune versioni precedenti di OpenSSL 1.0.1 avevano un bug che causava alcune delle nuove voci nella tabella di cifratura, inclusa questa da selezionare in modo errato. L'uso della patch e (febbraio 2013) o successivo dovrebbe risolverlo. (O 1.0.2, appena rilasciato poche settimane fa.) Se interessati puoi vedere il problema differenziando ssl / s3_lib.c tra le versioni.

Se hai una connessione al server usando una suite RSA, il server ha ha un certificato RSA. Ricorda che è possibile per un server avere key & cert (s) per più di un algoritmo e scegliere quello appropriato per la ciphersuite negoziata con un client; In particolare, il server di libreria OpenSSL può avere RSA, DSA, DH e EC (che può essere ECDSA o ECDH). (Plus GOST, un algoritmo russo opzionale usato raramente altrove.)

A parte: vuoi davvero che ECDH non sia ECDHE? Solo quest'ultimo fornisce la segretezza.

    
risposta data 06.02.2015 - 11:59
fonte

Leggi altre domande sui tag