2009-05-13 16 views
48

¿Cuál es la diferencia entre el protocolo https y el certificado SSL que utilizamos en el navegador web?Diferencia entre el protocolo https y el certificado SSL

¿No se utilizan ambos para cifrar la comunicación entre el cliente (navegador) y el servidor?

+0

Supongamos que ya hay una aplicación web ejecutándose en el puerto SSL (https). ¿Por qué querrías tener un Certificado para esta aplicación web? – user32262

Respuesta

35

Dos piezas de una solución.

https es el protocolo que define cómo el cliente y el servidor van a negociar una conexión segura.

El Certificado SSL es el documento que utilizarán para acordar la autenticidad de los servidores.

45

HTTPS es HTTP (Protocolo de transferencia de hipertexto) más SSL (Secure Socket Layer). Necesita un certificado para usar cualquier protocolo que use SSL.

SSL permite que los protocolos arbitrarios se comuniquen de forma segura. Permite a los clientes (a) verificar que efectivamente se están comunicando con el servidor que esperan y no un hombre en el medio y (b) encriptar el tráfico de red para que otras partes que no sean el cliente y el servidor no puedan ver la comunicación.

Un certificado SSL contiene una clave pública y un emisor de certificado. Los clientes no solo pueden usar el certificado para comunicarse con un servidor, sino que los clientes pueden verificar que el certificado fue firmado criptográficamente por una autoridad certificadora oficial. Por ejemplo, si su navegador confía en la autoridad de certificación VeriSign y VeriSign firma mi certificado SSL, su navegador confiará inherentemente en mi certificado SSL.

Hay una buena lectura aquí: http://en.wikipedia.org/wiki/Transport_Layer_Security

+3

"Necesita un certificado para usar cualquier protocolo que use SSL". : ¡NO! Vea la respuesta muy precisa y bien informada de Jon Weldon a continuación. –

+0

@ Jean-François, en realidad, la respuesta de John Weldon no es particularmente precisa. En primer lugar, estrictamente hablando, no * necesita * un certificado para usar SSL/TLS (vea PSK, Kerberos e incluso conjuntos de cifrado anónimos). En segundo lugar, estrictamente hablando, no existe un "certificado SSL": la mayoría de las veces se trata de certificados X.509 con los atributos/extensiones correctos que se utilizarán para SSL/TLS. Además, los certificados en SSL no están limitados a servidores de autenticación, sino que también se pueden usar para autenticar clientes (cuando se usa esta configuración). – Bruno

+0

Vuelva a leer mi comentario anterior. Dije NO, ¡no necesitas un certificado! Acepto que son Certificados X.509, pero como la mayoría se refiere a él como un Certificado SSL, seamos simples y llámelos. Para una respuesta general, la de Jon Weldon no fue tan académica como la tuya, pero sigue siendo una buena. –

4

HTPS es el nuevo HTTPS. HTTPS es altamente vulnerable a SSL Stripping/MITM (hombre en el medio). para citar (Google) Blog de violeta imperial Adam Langley: "HTTPS tiende a hacer que las personas dan charlas burlarse de seguridad certificado y el ecosistema a su alrededor"

El problema es que la página no se sirve a través de HTTPS. Debería haber sido así, pero cuando un usuario escribe un nombre de host en un navegador, el esquema predeterminado es HTTP. El servidor puede intentar redirigir a los usuarios a HTTPS, pero esa redirección es insegura: un atacante de MITM puede reescribirla y mantener al usuario en HTTP, simulando el sitio real todo el tiempo. El atacante ahora puede interceptar todo el tráfico a este sitio web perfectamente configurado y seguro.

Esto se conoce como eliminación de SSL y es terriblemente simple y devastadoramente efectivo. Probablemente no lo veamos con frecuencia porque no es algo que los poderes corporativos deban hacer, por lo que no está en dispositivos estándar. Pero es poco probable que ese respiro dure mucho tiempo y quizás ya haya terminado: ¿cómo sabríamos siquiera si se estaba utilizando?

Para detener la eliminación de SSL, debemos hacer que HTTPS sea el único protocolo. No podemos hacer eso para todo Internet, pero podemos hacerlo sitio por sitio con HTTP Strict Transport Security (HSTS).

HSTS le dice a los navegadores que siempre realicen solicitudes a través de HTTPS a los sitios de HSTS. Los sitios se convierten en HSTS ya sea al estar integrados en el navegador o al anunciar un encabezado:

Seguridad de transporte estricta: max-age = 8640000; includeSubDomains

El encabezado está en vigor durante el número de segundos especificado y también puede aplicarse a todos los subdominios.El encabezado se debe recibir a través de una conexión HTTPS limpia.

Una vez que el navegador sabe que un sitio es solo HTTPS, el usuario que escribe mail.google.com está seguro: la solicitud inicial usa HTTPS y no hay ningún agujero que un atacante pueda explotar.

(mail.google.com y un número de otros sitios ya están integrados en Chrome como sitios de HSTS, por lo que no es posible acceder a accounts.google.com a través de HTTP con Chrome, ¡tuve que manipular esa imagen! desea ser incluido en la lista incorporada de HSTS de Chrome, envíeme un correo electrónico).

HSTS también puede protegerlo, el webmaster, de cometer errores tontos. Supongamos que le ha dicho a su madre que siempre debe escribir https: // antes de ir a su sitio bancario o tal vez configurar un marcador para ella. Honestamente, es más de lo que podemos o deberíamos esperar de nuestros usuarios. Pero digamos que nuestro usuario supererogatorio ...]

debido a reglas de enlace obstructivas/muy estúpidas para los nuevos usuarios en stackoverflow no puedo darle el resto de la respuesta de Adam y tendrá que visitar el blog de Adam Langley usted mismo en https://www.imperialviolet.org/2012/07/19/hope9talk.html

"Adam Langley funciona tanto en la infraestructura de servicio HTTPS de Google como en la pila de red de Google Chrome".

+1

"HTPS", ¿quisiste decir "HSTS"? De todos modos, "* HTTPS es muy vulnerable a SSL Stripping/MITM (man in the middle). *" No es cierto. Si bien HSTS es una adición bienvenida a todo el sistema, todavía hace uso de HTTPS. No es HTTPS que es vulnerable a la eliminación de SSL, es la forma en que la gente usa los enlaces y verifica el certificado que es el problema. – Bruno

+0

¡Gracias por el enlace! Fue una buena lectura. – zafar142003

1

HTTPS es un protocolo de capa de aplicación. Puede proporcionar no repudio de solicitudes o respuestas individuales a través de firmas digitales.

SSL es un protocolo de nivel inferior y no tiene esta capacidad. SSL es un cifrado de nivel de transporte.

HTTPS es más flexible que SSL: una aplicación puede configurar el nivel de seguridad que necesita. SSL tiene menos opciones, por lo que es más fácil de configurar y administrar.

+1

no repudio se refiere a la capacidad de garantizar que una parte de un contrato o una comunicación no puede negar la autenticidad de su firma en un documento o el envío de un mensaje que originaron. –

Cuestiones relacionadas