Soy un administrador de proyectos y estoy tocando un proyecto de TI que consiste en la base de datos habitual de 3 niveles - web / client - middleware -.
En este caso, tengo un servidor web y necesito implementar la certificación SSL. Aunque esto no está en mi alcance, pero sentí que comprender todo el proceso será beneficioso para todos.
Entiendo el concepto de cifrado de clave pública y simétrica.
Entiendo el concepto de firma digital.
Pero no puedo poner toda la imagen juntos. Por lo tanto, discúlpeme por el largo post.
Aquí va,
-
La razón completa de la certificación HTTP / SSL, si no me equivoco es para 2 propósitos
- cifrado (para que los datos entre el cliente y el servidor web estén protegidos)
- autenticación (de modo que "abc.com" es "abc.com")
¿verdad?
Para probar que "abc.com" es "abc.com", "abc.com" debe solicitar un certificado de una Autoridad de Certificación, que realizará verificaciones de antecedentes, etc. antes de emitir el certificado.
El certificado está firmado por CA.
-
Por aquí, ya que el certificado está firmado digitalmente por la CA. Así que creo que se enviarán dos cosas al cliente cuando el cliente acceda al navegador
- el certificado mismo
- hash y firma digital del certificado.
¿verdad?
- Dado que el certificado está firmado por la CA (por ejemplo, Verisign), se cifra mediante su clave privada. Entonces, ¿dónde obtengo la clave pública de Verisign?
- Suponiendo que se obtiene la clave pública, la firma digital se descifra y el valor de hash coincide con el valor de hash del certificado,
El cliente utilizará la clave pública dentro del certificado (que pertenece a "abc.com") para cifrar sus datos y enviarlos a "abc.com".
¿verdad?
- Estos "datos" son en realidad parte de una negociación entre el cliente y el servidor web para el uso de una clave simétrica para la comunicación posterior.
Una vez que se establezca la clave simétrica en ambos lados, la comunicación posterior se cifrará utilizando esa clave simétrica y no la clave pública dentro del certificado.
¿verdad?
¿Estoy obteniendo esto en un nivel alto o estoy totalmente alejado?
(agregado)
Reflexionando, Cuando creamos un certificado autofirmado, ¿cómo "pasamos" la clave pública al cliente o a la persona que accede a nuestro sitio web? si la clave pública de la firma no se entrega al cliente - > ¿Es este el escenario en el que aparecerá una ventana emergente en el navegador del cliente y preguntará si "confiar" en el sitio web?