2009-04-25 11 views
17

Por favor, ayúdame a entender cómo va el proceso. Entiendo que los navegadores web contienen certificados raíz para las autoridades de certificación (CA) como verisign, Entrust, Comodo ... etc., pero ¿qué ocurre exactamente cuando un usuario accede a una página segura? ¿El navegador web envía una solicitud al servidor de la CA para verificar el ceriticado o simplemente utiliza el certificado raíz de la CA (en el navegador) para verificar el certificado?¿Cómo funcionan los certificados digitales cuando se usan para proteger sitios web (usando SSL)?

Utilicé algunos sniffer HTTP e inicié sesión en gmail (la página de inicio de sesión es segura) pero no vi que las solicitudes vayan a sitios web distintos de google, ¿eso significa que solo utiliza el certificado raíz de la CA?

+1

El certificado proporcionado por la CA se instala dentro del servidor web (por ejemplo, IIS) y se asigna a la aplicación web en cuestión. No veo por qué el navegador se conectaría a la CA. – Cerebrus

Respuesta

5

Depende de la configuración de su navegador/sistema operativo. Básicamente, un navegador o un sistema operativo tiene una lista de autoridades raíz confiables (Mozilla tiene su propia lista, IE usa Windows).

Cuando se lleva a cabo el protocolo de enlace SSL, se examina el certificado del sitio para ver si está firmado por una de las autoridades de confianza y si el nombre del servidor coincide con el del certificado.

Lo que ocurra a continuación depende de la configuración del navegador o del sistema operativo. Las CA tienen una función de lista de revocación (es una lista grande o un servicio separado (OCSP) donde puede preguntar si un certificado todavía es bueno). Si su navegador/sistema operativo está configurado para verificar esto, entonces este paso adicional sucederá.

Firefox y Windows verificarán los servicios OCSP de forma predeterminada si están disponibles, tampoco verifican las listas CRL de forma predeterminada.

2

CA firma el certificado del servidor web. Como el navegador ya tiene la clave pública CA (en certificados raíz), puede validar su autenticidad sin acceder a CA. Lo único que requiere acceso de CA es comprobar si el certificado está revocado.

20

Una entidad emisora ​​de certificados emite certificados firmados con una clave privada . Su navegador almacena la clave pública correspondiente para un grupo de CA confiables. Cuando recibe una solicitud para una transacción segura, su navegador verifica la raíz del certificado (proporcionado por el host al que se está conectando) con la clave pública para asegurarse de que realmente haya sido firmada por la clave privada correspondiente.

El host almacena el certificado firmado por un tercero de confianza (la CA) y su navegador almacena la clave pública de ese mismo tercero. Cuando comienza una transacción, el anfitrión solo necesita presentar ese certificado para que su navegador lo verifique. No es necesario que el tercero de confianza intervenga en el momento de la transacción.

Esto es diferente de los sistemas como PGP, donde debe ponerse en contacto con el tercero para obtener la clave pública de la persona con la que se está comunicando. Los sistemas pueden funcionar de manera diferente porque con PGP está encriptando/descifrando datos. Con los certificados, todo lo que está haciendo es autenticar la identidad.

+1

Buena respuesta, me gustaría seguir con las de CA son típicamente verisign.com, godaddy.com etc ... Aunque parecen estar apareciendo en todas partes en estos días. El certificado de CA debe estar preinstalado en el navegador antes de que los navegadores "confíen" en ellos, por lo que, en teoría, no puede configurar su propia CA y comenzar a suplantar. Aunque para seguridad empresarial puede hacer que sus usuarios instalen su certificado de CA para usar con SSL sin advertencias de seguridad del navegador. –

+0

Gracias - esta fue la mejor respuesta que encontré en la web después de 5-10 minutos o buscando. Muy apreciado. –

10

El navegador web tiene una lista de certificados raíz en los que confía. Estas son claves públicas de CA. El navegador dice que puede confiar en que las claves privadas de estas CA son, de hecho, privadas, y que todo lo que ha sido encriptado por una de esas claves privadas, incluido el presunto certificado del servidor web, realmente provino de la CA.

El certificado contiene la clave pública del servidor web y la dirección del servidor web (y el nombre de la compañía, etc.) cifrados con la clave privada de la CA. Este cifrado se realiza una vez, cuando el propietario del sitio web compró el certificado de la CA. Después de eso, el propietario del sitio web mantiene el certificado a mano para enviarlo cuando realiza una solicitud de https.Dado que su navegador puede usar la clave pública de CA (que ya estaba en su máquina) para descifrar el certificado enviado por el servidor web, y ve en el certificado descifrado que el certificado contiene una dirección de host que coincide con el host https-serving, el navegador concluye que la clave pública del host (descifrada usando la clave pública de CA) es auténtica. El certificado proporcionado rutinariamente por el servidor web puede provenir de una persona aleatoria que simula el host, pero al menos puede estar seguro de que contiene la clave pública auténtica del servidor que sirve https con el que desea comunicarse.

A continuación, puede enviar datos (como su número de tarjeta de crédito) encriptados con la clave pública del host, y solo la clave privada del host podrá descifrar sus datos. No fue necesaria la comunicación con la CA durante la transacción.

+0

En muchos lugares, lo que ha llamado cifrado y descifrado en realidad es * firmar * y * verificar la firma *. En cuanto a "* [...] todavía podría provenir de alguna persona aleatoria [...] *": es por eso que el navegador también verifica el nombre de host en el certificado. – Bruno

+0

Gracias Bruno por la aclaración. ¿No es "firmar" en realidad encriptar una pieza de algo? La forma en que sé que Verisign ha firmado un certificado es que la clave pública de Verisign puede descifrar la firma. Esa firma incluye la dirección IP y el nombre de dominio del servidor web, de modo que solo la CA (que utiliza el cifrado con su clave privada) pueda colocar la IP/DN del host web en el certificado. –

+0

Según entiendo, la verificación se refiere al acto de la CA de comparar la información en la solicitud de certificado con el origen de la solicitud/destinatario del certificado, y se refiere a la comparación del navegador del contenido del certificado (descifrado usando la clave pública de CA) a la dirección IP y nombre de dominio del host que presenta el certificado. No soy un experto, y necesito hacerlo bien para enseñarlo, ¡así que gracias por tu ayuda! –

Cuestiones relacionadas