¿Qué tan protector debemos ser de un certificado de cliente SSL?

6

Tenemos una aplicación donde la conexión de la base de datos requiere un certificado de cliente SSL. ¿Qué tan protector necesitamos ser de este certificado? ¿Cuáles son las implicaciones si alguien más lo entiende?

Comprendo aproximadamente cómo funciona el cifrado de clave pública-privada, pero no sé qué clave contiene el certificado.

    
pregunta Nathan Long 31.08.2011 - 16:12
fuente

2 respuestas

6

En términos generales, un certificado de cliente se usa para proporcionar autenticación (a diferencia del cifrado). Debe asegurarse de que la clave privada y la contraseña (si las hay) están protegidas. Si alguien los obtiene, pueden autenticarse en la base de datos con esa credencial de certificado. Si, en cambio, su aplicación requería una contraseña para acceder a la base de datos, el equivalente sería otra persona que conozca esa contraseña.

Sin saber qué documentación de la aplicación está viendo, me arriesgaré y diré que el "certificado de cliente" significa la clave privada y el certificado firmado; El certificado firmado incluye, por supuesto, la clave pública. Es la clave privada que realmente necesitas proteger.

    
respondido por el gowenfawr 31.08.2011 - 17:49
fuente
1

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.

    
respondido por el Thomas Pornin 09.08.2013 - 22:38
fuente

Lea otras preguntas en las etiquetas