In SSL, lo scambio di chiavi, la crittografia simmetrica e l'algoritmo MAC sono tutti raggruppati in un'unica nozione di aggregazione chiamata suite di crittografia .
Nell'handshake iniziale, il client invia:
- la versione di protocollo più elevata che supporta;
- l'elenco delle suite di crittografia supportate, in ordine di preferenza;
- altre cose che non sono rilevanti qui.
Quindi il server seleziona la versione del protocollo e la suite di crittografia che verranno utilizzati. La teoria è che un server cortese sceglierà la versione del protocollo che è la più alta che sia il supporto client e server, e onorerà le preferenze del client selezionando la prima suite di crittografia nell'elenco dei client supportata dal server. I server esistenti non sono tutti cortesi.
Si noti che la versione del protocollo non è del tutto indipendente dalla suite di crittografia: alcune suite di crittografia funzionano solo con alcune versioni di protocollo (ad esempio suite di crittografia con AES / GCM come crittografia + MAC funzionano solo con TLS 1.2).
In ogni caso, non esiste una selezione indipendente di scambio di chiavi, crittografia simmetrica e MAC: il protocollo non è ortogonale a tale riguardo. Non tutte le combinazioni hanno senso; e non tutte le combinazioni che hanno senso sono effettivamente definite, cioè hanno una cifra assegnata identificativo della suite .
Per ulteriori informazioni su questo processo, puoi iniziare leggendo questo rispondere .
I browser sono più o meno configurabili per quanto riguarda le suite di crittografia supportate e l'ordine in cui vengono inviate. Di solito è possibile attivare o disattivare le suite di crittografia (ad es. Vedere questo ) ma il l'ordine è sotto controllo della logica del browser (che può variare in base alla versione). In ogni caso, il server alla fine sceglie, non il client (anche se ovviamente il client può sempre forzare l'uso di una specifica suite di cifratura inviando una lista ristretta a quella singola suite di crittografia).
Si può sostenere che la nozione di "ordine di preferenza" ha poco significato. In pratica, il client invia una lista di pacchetti di crittografia che è disposto a usare , e quindi è utilizzabile. Se una suite di cifratura è "debole", il client non dovrebbe metterlo giù abbastanza nel suo elenco di preferenze in modo che il server, si spera, non lo selezionerà; invece, il client non dovrebbe includerlo affatto. Debole è debole.