En SSL, el intercambio de claves, el cifrado simétrico y el algoritmo MAC se agrupan en una única noción agregada llamada conjunto de cifrado .
En el saludo inicial, el cliente envía:
- la versión de protocolo más alta que admite;
- la lista de suites de cifrado que admite, en orden de preferencia;
- otras cosas que no son relevantes aquí.
Luego, el servidor selecciona la versión del protocolo y el conjunto de cifrado que se utilizará. La teoría es que un servidor cortés elegirá la versión de protocolo más alta que el cliente y el servidor admitan, y cumplirá con las preferencias del cliente seleccionando el primer conjunto de cifrado en la lista de clientes que el servidor también admite. Los servidores existentes no son todos corteses.
Tenga en cuenta que la versión del protocolo no es totalmente independiente del conjunto de cifrado: algunos conjuntos de cifrado solo funcionan con algunas versiones de protocolo (por ejemplo, conjuntos de cifrado con AES / GCM como cifrado + MAC solo con TLS 1.2).
En cualquier caso, no hay una selección independiente de intercambio de claves, cifrado simétrico y MAC: el protocolo no es ortogonal a ese respecto. No todas las combinaciones tienen sentido; y no todas las combinaciones que tienen sentido están realmente definidas, es decir, tienen un cifrado asignado identificador de la suite .
Para obtener más información sobre este proceso, puede comenzar por leer esto contestar .
Los navegadores son más o menos configurables con respecto a los conjuntos de cifrado que admiten y el orden en el que los envían. Por lo general, puede activar o desactivar las suites de cifrado (p. Ej., Ver this ) pero la el orden está bajo el control de la lógica del navegador (que puede cambiar dependiendo de la versión). En cualquier caso, el servidor finalmente elige, no el cliente (aunque, por supuesto, el cliente siempre puede forzar el uso de un conjunto de cifrado específico enviando una lista restringida a ese único conjunto de cifrado).
Se puede argumentar que la noción de "orden de preferencia" tiene poco significado. En la práctica, el cliente envía una lista de suites de cifrado que está dispuesto a usar y, por lo tanto, cualquiera de ellas es utilizable. Si un conjunto de cifrado es "débil", el cliente no debería dejarlo lo suficiente en su lista de preferencias para que el servidor, con suerte, no lo seleccione; en cambio, el cliente no debe incluirlo en absoluto. Débil es débil.