¿Cuál es la serie de pasos necesarios para verificar de forma segura un certificado SSL? Mi (muy limitado) entendimiento es que cuando visita un sitio https, el servidor envía un certificado al cliente (el navegador) y el navegador obtiene la información del emisor del certificado de ese certificado, luego la usa para contactar al emisor, y de alguna manera compara certificados de validez.
- ¿Cómo se hace esto exactamente?
- ¿Qué pasa con el proceso que lo hace inmune a los ataques de hombre en el medio?
- ¿Qué impide que una persona aleatoria configure su propio servicio de verificación para usar en ataques de hombre en el medio, para que todo "parezca" seguro?
algorithm
security
ssl
certificate
rcreswick
fuente
fuente
Respuestas:
Aquí hay una explicación muy simplificada:
Su navegador web descarga el certificado del servidor web, que contiene la clave pública del servidor web. Este certificado está firmado con la clave privada de una autoridad de certificación de confianza.
Su navegador web viene instalado con las claves públicas de todas las principales autoridades de certificación. Utiliza esta clave pública para verificar que el certificado del servidor web haya sido firmado por la autoridad de certificación de confianza.
El certificado contiene el nombre de dominio y / o la dirección IP del servidor web. Su navegador web confirma con la autoridad de certificación que la dirección que figura en el certificado es aquella con la que tiene una conexión abierta.
Su navegador web genera una clave simétrica compartida que se utilizará para cifrar el tráfico HTTP en esta conexión; Esto es mucho más eficiente que usar el cifrado de clave pública / privada para todo. Su navegador encripta la clave simétrica con la clave pública del servidor web y luego la envía de vuelta, asegurando que solo el servidor web pueda descifrarla, ya que solo el servidor web tiene su clave privada.
Tenga en cuenta que la autoridad de certificación (CA) es esencial para prevenir ataques de hombre en el medio. Sin embargo, incluso un certificado sin firmar evitará que alguien escuche pasivamente su tráfico encriptado, ya que no tienen forma de obtener acceso a su clave simétrica compartida.
fuente
webmaster@<domain-being-verified>
o" Colocar este archivo en su dominio para demostrar que lo posee ". Sin embargo, ha habido problemas con las personas que obtienen CA para emitir certificados para dominios que no propio - ¡famoso alguien logró obtener una CA sombría para emitir un certificado para gmail.com!Vale la pena señalar que, además de comprar un certificado (como se mencionó anteriormente), también puede crear el suyo de forma gratuita; esto se conoce como un "certificado autofirmado". La diferencia entre un certificado autofirmado y uno comprado es simple: el adquirido ha sido firmado por una Autoridad de Certificación que su navegador ya conoce. En otras palabras, su navegador puede validar fácilmente la autenticidad de un certificado comprado.
Desafortunadamente, esto ha llevado a una idea errónea común de que los certificados autofirmados son inherentemente menos seguros que los vendidos por CA comerciales como GoDaddy y Verisign, y que debe vivir con advertencias / excepciones del navegador si los usa; Esto es incorrecto .
Si distribuye de forma segura un certificado autofirmado (o un certificado de CA, como sugirió Bobince) y lo instala en los navegadores que usarán su sitio , es tan seguro como uno que haya comprado y no es vulnerable a los intermediarios. ataques y falsificación de certificados. Obviamente, esto significa que solo es factible si solo unas pocas personas necesitan acceso seguro a su sitio (por ejemplo, aplicaciones internas, blogs personales, etc.).
fuente
Tu dijiste eso
El cliente no tiene que consultar con el emisor porque hay dos cosas:
Tenga en cuenta que 2. no se puede hacer sin 1.
Esto se explica mejor en este gran diagrama que hice hace algún tiempo.
(pase a "¿qué es una firma?" en la parte inferior)
fuente
El cliente tiene un almacén previamente sembrado de claves públicas de las autoridades de certificación SSL. Debe haber una cadena de confianza desde el certificado para el servidor hasta las autoridades intermedias hasta uno de los llamados certificados "raíz" para que el servidor sea confiable.
Puede examinar y / o modificar la lista de autoridades de confianza. A menudo, hace esto para agregar un certificado para una autoridad local en la que sabe que confía, como la empresa para la que trabaja o la escuela a la que asiste o no.
La lista pre-sembrada puede variar según el cliente que use. Los grandes proveedores de certificados SSL aseguran que sus certificados raíz estén en todos los principales navegadores ($$$).
Los ataques de mono en el medio son "imposibles" a menos que el atacante tenga la clave privada de un certificado raíz de confianza. Dado que los certificados correspondientes se implementan ampliamente, la exposición de dicha clave privada tendría serias implicaciones para la seguridad del comercio electrónico en general. Por eso, esas claves privadas están muy, muy protegidas.
fuente
Si tiene una mentalidad más técnica, este sitio es probablemente lo que desea: http://www.zytrax.com/tech/survival/ssl.html
advertencia: la madriguera del conejo es profunda :).
fuente