Un certificado contiene la clave pública. El certificado es lo que se muestra a otras personas; para la autenticación de cliente SSL, el cliente muestra su certificado al servidor cuando el servidor lo solicita. Un certificado no tiene que estar oculto de ninguna manera; es información inherentemente pública.
La clave privada es la parte sensible. La clave privada se utiliza para calcular una firma digital , que puede verificarse utilizando la clave pública (del certificado). Dentro de SSL, cuando el servidor solicita un certificado de cliente, el cliente muestra su certificado (un Certificate
mensaje) y también calcula y envía una firma (un CertificateVerify
mensaje). Los datos que se firman están compuestos de mensajes anteriores en el protocolo de enlace SSL, por lo que incluye el "servidor aleatorio", que sirve como una especie de "desafío". Desde el punto de vista del servidor, el cliente acaba de demostrar su dominio de la clave privada al poder generar una firma en un dato que incluye algunos bytes elegidos por el servidor.
El certificado también es un objeto firmado; fue firmado por la Autoridad de Certificación que creó el certificado. Al verificar esta firma, el servidor puede asegurarse de que el contenido del certificado sea "correcto". Esta es la otra parte de la autenticación: aunque la firma del cliente mostró que el cliente controla la clave privada correspondiente a la clave pública que se encuentra en el certificado, el servidor debe asegurarse de que la clave pública en el certificado sea efectivamente la clave pública que posee la supuesta identidad de usuario . El certificado es un barco para transmitir tales enlaces de clave de nombre.
Su certificado es público, por lo que no puede ser "robado". No hay problema en que otras personas obtengan una copia de su certificado. Después de todo, es propenso a mostrarlo a cualquier servidor que lo solicite.
Su clave privada es sensible. Si alguien le roba su clave privada, entonces él puede hacerse pasar por usted cuando habla con todos los servidores que han sido configurados para aceptar su certificado. En condiciones normales, ninguna entidad aprende su clave privada; La CA no lo tiene, el servidor SSL no lo ve. Su clave privada se almacena en las entrañas de su computadora, o posiblemente en una tarjeta inteligente . En este último caso, la clave privada nunca abandona la tarjeta; la tarjeta calcula la propia firma.