Su servidor tiene un certificado, que consta de una clave privada y pública. El servidor nunca da la clave privada, por supuesto, pero todos pueden obtener la clave pública. La clave pública está incrustada dentro de un formato de contenedor de certificado. Este formato contiene la dirección IP o el nombre de dominio del servidor, el propietario de esta dirección IP/nombre de dominio, una dirección de correo electrónico del propietario, etc.
Todo está firmado por una autoridad de confianza. La autoridad de confianza, también conocida como autoridad de certificación (CA), también tiene un par de claves privadas/públicas. Les das tu certificado, verifican que la información en el contenedor sea correcta y la firmas con su clave privada, a la que solo tienen acceso.
La clave pública de la CA está instalada en el sistema del usuario de forma predeterminada, la mayoría de las CA conocidas ya están incluidas en la instalación predeterminada de su sistema operativo o navegador favorito.
Cuando ahora un usuario se conecta a su servidor, su servidor utiliza la clave privada para firmar algunos datos, empaqueta los datos firmados junto con su clave pública y envía todo al cliente.
¿Qué puede hacer ahora el cliente? En primer lugar, puede usar la clave pública que acaba de enviar para verificar los datos firmados. Dado que solo el propietario de la clave privada puede firmar los datos correctamente de forma que la clave pública pueda verificar la firma, sabe que quien haya firmado esta información, esta persona posee la clave privada de la clave pública recibida. . Hasta ahora todo bien. Pero, ¿qué detiene a un hacker para interceptar el paquete, reemplazar los datos firmados con los datos que firmó usando un certificado diferente y también reemplazar la clave pública con su clave pública? Nada.
Es por eso que una vez que se han verificado los datos firmados (o antes de que se verifique), el cliente verifica que la clave pública recibida tiene una firma de CA válida. Usando la clave de CA pública ya instalada, verifica que la clave pública recibida ha sido firmada por una CA conocida. De lo contrario, es rechazado (ya que un hacker puede haberlo reemplazado en el camino).
Por último, pero no menos importante, verifica la información dentro del contenedor de clave pública. ¿La dirección IP o el nombre de dominio realmente coinciden con la dirección IP o el nombre de dominio del servidor con el que el cliente está hablando actualmente? Si no, ¡algo es sospechoso!
La gente puede preguntar: ¿Qué detiene a un hacker simplemente creando su propio par de llaves y simplemente poniendo su nombre de dominio o dirección IP en el certificado? Fácil: si lo hace, ningún CA firmará su clave. Para obtener una firma de CA, debe probar que realmente es el propietario de esta dirección IP o nombre de dominio. El hacker no, no puede probar eso, no conseguirá una firma. Entonces esto no funcionará
Bien, ¿qué tal si el pirata informático registra su propio dominio, crea un certificado para eso y lo firma un CA? Esto funciona, lo firmará CA, es su dominio, no hay problema. Sin embargo, no puede usar esto al hackear su conexión. Si usa este certificado, el navegador verá inmediatamente que la clave pública firmada es para el dominio example.net, pero actualmente está hablando con example.com, no con el mismo dominio, por lo que algo vuelve a ser sospechoso.
¡Buena respuesta! Pero tengo otra pregunta relacionada ... Cita: "las CA más conocidas ya están incluidas en la instalación predeterminada de su sistema operativo o navegador favorito". Me pregunto cómo el navegador expande la CA conocida predeterminada? ¿Verificará automáticamente contra un servicio web? o solo lo hará para la próxima versión de la versión del navegador? – forestclown
Los certificados de CA se envían junto con el navegador o el sistema operativo. Firefox, Chrome, Opera tienen sus propias copias certificadas de CA, Internet Explorer y Safari usan certificaciones de CA instaladas en Windows o OS X. Nada impide que un navegador use tanto sus propias copias como certificaciones de sistema operativo (algunas de las que mencioné pueden incluso hacer ese). Solo obtiene nuevos certificados de CA al actualizar el navegador, actualizar el sistema operativo o instalarlos manualmente (descargarlos y luego agregarlos al navegador o a su sistema operativo, ambos son posibles). – Mecki
Lo único que verifican los buscadores en línea (si pueden) es si un certificado de CA sigue siendo válido o no. Todos los servicios de CA ejecutan un servidor de revocación de certificados, donde un navegador puede preguntar si un determinado certificado sigue siendo válido o ha sido revocado; esto se hace a través del protocolo OCSP: http://tinyurl.com/pcjk2 Los certificados contienen la dirección de un servidor OCSP para preguntar. – Mecki