Tenga en cuenta que no se trata de cómo ocurre la comunicación SSL entre el navegador (lo investigué y lo entendí) y el cliente, sino otros aspectos.
Uso de Explicación del mecanismo SSL de Digicert He entendido cómo se encriptan los datos entre los navegadores y los servidores. A continuación es mi entendimiento.
- El navegador enviará una solicitud al servidor para obtener algún recurso. El servidor verifica si el protocolo de la solicitud es HTTPS, si es así, enviará su certificado (este certificado ya está firmado por alguna CA (Autoridad de certificación, como Digicert)) en la respuesta.
- El navegador comprobará si el certificado es válido al validar la búsqueda de la autoridad firmante en su grupo de CA válido.
- Si el navegador encuentra que este certificado está firmado por una CA válida, genera una clave de sesión y la cifra utilizando la clave pública presente en el certificado.
- El navegador enviará esta clave de sesión cifrada al servidor y el servidor descifrará la clave de sesión. El servidor enviará un acuse de recibo al navegador que se cifraría con la clave de sesión.
- Los pasos anteriores completan un protocolo de enlace SSL y luego la comunicación segura comienza entre el navegador y el servidor.
Preguntas:
Basado en mi entendimiento anterior:
- El navegador generará una clave de sesión y la cifrará utilizando la clave pública del servidor. Pero, ¿qué algoritmo de cifrado (o comúnmente llamado algoritmo de cifrado) utilizará el navegador?
- ¿Cómo se determina la selección de cifrado, y el navegador y el servidor utilizarán el mismo tamaño de clave / cifrado para el cifrado y descifrado?
- Una vez que se completa el protocolo de enlace SSL, todas las comunicaciones se cifrarán utilizando la clave de sesión simétrica, pero nuevamente, ¿qué algoritmo de cifrado utilizará el navegador?
- ¿El algoritmo de cifrado utilizado por el navegador de alguna manera depende del certificado recibido del servidor?
- ¿O todo el cifrado lo realiza el navegador con el mismo algoritmo de cifrado?
- Por favor, corríjame si me equivoco, ¿el algoritmo o la información de cifrado también están presentes en el certificado? ¿Cómo se almacena esa información en el certificado?
- Al generar el certificado, ¿debo indicar qué algoritmo, cuántos bits de cifrado, relleno, etc.?
Sobre la base de la respuesta anterior, tendré la pregunta más importante: supongamos que le estoy proporcionando la clave privada de mi servidor para que él pueda monitorear el tráfico SSL de mi servidor y, además de proporcionarle la clave privada, todo lo demás. Necesito tener cuidado. ¿Y necesito decirle el algoritmo o el cifrado que estoy usando en el servidor?