¿Cómo están validando Chrome y Firefox los certificados SSL? ¿Están solicitando datos de un sitio web de certificación SSL, como GeoTrust, para validar el certificado recibido del servidor web?
¿Cómo están validando Chrome y Firefox los certificados SSL? ¿Están solicitando datos de un sitio web de certificación SSL, como GeoTrust, para validar el certificado recibido del servidor web?
Los navegadores y / o sistemas operativos tienden a venir con una lista predefinida de certificados de CA utilizados como anclajes de confianza para verificar los certificados de los servidores a los que se conectan. Todos son personalizables (excepto los certificados EV, para los cuales los certificados raíz están codificados en el navegador, aunque puede inhabilitarlos ... excepto errores).
Firefox utiliza su lista propia en todas las plataformas.
Internet Explorer y Chrome utilizan el repositorio de certificados del sistema operativo en Windows. El valor predeterminado está disponible a través del programa de certificado de raíz de Microsoft.
Apple también tiene su programa .
Confiar en un certificado de servidor desconocido a priori se realiza creando una ruta de certificación entre este certificado y uno de los anclajes de confianza del navegador. Esto se hace como se define en RFC 3280 / RFC 5280.
Además, la revocación del certificado también se puede verificar, ya sea a través de CRL o a través de OCSP.
Por lo tanto, no es posible interceptar la comunicación entre el navegador y una CA para falsificar un certificado válido como el certificado es probable ya en el caché del navegador?
Para reiterar el punto que formulé como un comentario a las respuestas de Wug: el repositorio de anclajes de confianza no es un caché . Un caché es un marcador de posición dinámico destinado a mantener lo que ha accedido recientemente a su disposición, basándose en el supuesto de que los volverá a necesitar pronto. En contraste, su lista de certificados de confianza nunca debe actualizarse automáticamente sobre la base de lo que está navegando actualmente. (Podría actualizarse mediante actualizaciones de seguridad automáticas, pero eso es un problema diferente).
El certificado del servidor se obtendrá cada vez que se establezca una nueva sesión de SSL / TLS, y el navegador debe verificarlo cada vez. No está en caché. (Podría tener algo de caché de OCSP, pero eso es para mejorar el rendimiento y mantenerse solo durante un corto período de tiempo. Esto es solo para verificar el estado de revocación, en el momento del acceso).
Ponerse en contacto con la CA es solo para la revocación del certificado. De lo contrario, no se contacta con un CA. Los certificados de CA (sus anclajes de confianza) son un "paso de fe" dado, agrupados para usted por su sistema operativo / navegador (que puede elegir de forma explícita, pero está arreglado en lo que respecta a una conexión dada). En el mejor de los casos, podría evitar que se realice la comprobación de revocación del certificado (lo que puede hacer que su navegador haga que su validación falle, dependiendo de su configuración).
El servidor web enviará toda la cadena de certificados al cliente cuando lo solicite. El navegador (u otro validador) puede verificar el certificado más alto de la cadena con certificados de CA almacenados localmente.
La mayoría de los sistemas operativos mantienen un caché de certificados autorizados a los que los navegadores pueden acceder para tales fines, de lo contrario, el navegador tendrá su propio conjunto de ellos en algún lugar.
Un certificado puede ser firmado por otro certificado, formando una "cadena de confianza" que generalmente termina en un certificado autoritativo autofirmado proporcionado por una entidad como GeoTrust, Verisign, Godaddy, etc.
Esta sería una mejor pregunta para el sitio de seguridad SE.
Google Chrome, específicamente, no estoy 100% seguro de que use el caché del sistema operativo, pero puede agregar un certificado autorizado a través de Wrench - > Configuración - > Mostrar configuración avanzada - > HTTPS / SSL - > Gestionar certificados - > Las autoridades de certificación raíz de confianza y la adición de un certificado de CA autorizada allí.
Como explicó Wug, la validación se produce desde el certificado del servidor hasta el certificado más alto de la cadena. El navegador examinará las propiedades del certificado y realizará una validación básica, como asegurarse de que la URL coincida con el campo Issued to
, el campo Issued By
contiene una Autoridad de certificación confiable, la fecha de caducidad se ve bien en el campo Valid From
, etc.
Además, cada certificado contiene direcciones URL que apuntan a listas de revocación de certificados ( CRL Distribution Points
), el cliente intentará descargar la lista de dicha URL y garantizar que el certificado en cuestión no haya sido revocado.
Para responder a tu pregunta
¿Están solicitando datos del sitio web de certificación SSL como GeoTrust para validar el certificado recibido del servidor web?
Sí , el navegador realizará una validación básica y luego se pondrá en contacto con el servidor de autoridad de CA (a través de los puntos CRL) para asegurarse de que el certificado sigue siendo válido.
Aquí está mi versión de la versión de certificado. Suponiendo que el certificado web tenga el nombre correcto, el navegador intenta encontrar la Autoridad de certificación que firmó el certificado del servidor web para recuperar la clave pública del firmante. La Autoridad de Certificación firmante puede ser parte de una cadena de CA
Con la clave pública, la firma en el certificado del sitio web se puede descifrar (esto asegura que solo la CA podría haberlo firmado a menos que su clave privada estuviera comprometida) para revelar un hash del certificado del servidor web. El navegador también calcula el hash del certificado del servidor web y, si los dos hash coinciden, eso prueba que la Autoridad de certificación firmó el certificado.
Si no se puede encontrar la clave pública del firmante o los hashes no coinciden, el certificado no es válido.
El problema con este sistema es que las Autoridades de Certificación no son completamente confiables.
Tenga en cuenta que Google Chrome dejó de usar las listas de CRL alrededor del 7 de febrero de 2012 para verificar si un certificado era válido. Parece que construyen todos los certificados válidos en el navegador e instalan un nuevo conjunto cada vez que se actualiza el navegador. Consulte la URL: enlace .
Lea otras preguntas en las etiquetas public-key-infrastructure tls certificates certificate-authority