Este artículo es un artículo espejo de traducción automática, por favor haga clic aquí para saltar al artículo original.

Vista: 12403|Respuesta: 1

[Conocimiento sobre la creación de sitios web] HTTPS Esas cosas (1) Principio HTTPS (Reimpresión)

[Copiar enlace]
Publicado en 24/12/2015 10:56:18 | | |
Cuña
Rumor que Crusher publicó hace unos días: "¿Pondrá en peligro el acceso a Internet con WiFi público la seguridad de las cuentas bancarias? El artículo introduce algunas situaciones en el uso de HTTPS para la transmisión cifrada en red y, a juzgar por la respuesta, todavía existen disputas. A medida que Internet se hace cada vez más popular, la aplicación se está extendiendo cada vez más, y algunos problemas de seguridad de red también atraerán cada vez más atención de internautas; aquí hablaremos de TLS/SSL, que es lo que a menudo llamamos HTTPS, desde el principio hasta la aplicación real para ver qué es y qué problemas hay que prestar atención al usar HTTPS y técnicas de seguridad relacionadas.
La ciberseguridad es un evento integral que implica la seguridad de ordenadores personales, protocolos, transmisión de datos y empresas y sitios web de desarrollo de software. Espero que, explicando poco a poco los problemas relacionados con la seguridad en el futuro, más personas puedan entender la seguridad de la red para poder usarla de forma más segura.
El artículo será extenso y está previsto dividirse en tres partes por el momento:
La primera parte describe principalmente el principio de HTTPS; La segunda parte describe principalmente el proceso de verificación de certificados SSL y algunas precauciones para su uso. La tercera parte presenta algunos ejemplos de ataques HTTPS.
1. ¿Qué es HTTPS?
Antes de hablar de HTTPS, hablemos de qué es HTTP, que es un protocolo que solemos usar al navegar por la web. Los datos transmitidos por el protocolo HTTP no están cifrados, es decir, en texto plano, por lo que es muy inseguro transmitir información privada usando el protocolo HTTP. Para asegurar que estos datos privados puedan ser cifrados y transmitidos, Netscape diseñó el protocolo SSL (Secure Sockets Layer) para cifrar los datos transmitidos por el protocolo HTTP, dando así origen a HTTPS. La versión actual de SSL es la 3.0, definida en la RFC 6101 por la IETF (Internet Engineering Task Force), y luego la actualización SSL 3.0 del IETF, resultando en TLS (Transport Layer Security) 1.0, definida en la RFC 2246. De hecho, nuestro HTTPS actual es el protocolo TLS, pero como SSL apareció relativamente pronto y sigue siendo compatible con los navegadores actuales, SSL sigue siendo sinónimo de HTTPS, pero ya sea TLS o SSL es cosa del siglo pasado, la última versión de SSL es la 3.0, y TLS seguirá proporcionándonos servicios de cifrado en el futuro. La versión actual de TLS es la 1.2, definida en el RFC 5246, y aún no se utiliza ampliamente.
Para quienes estén interesados en la historia, pueden consultar el http://en.wikipedia.org/wiki/Transport_Layer_Security, que tiene una descripción detallada de TLS/SSL.
2. ¿Es seguro HTTPS?
La respuesta es sí, es seguro. En las próximas semanas, Google habilitará HTTPS para todos los dominios locales del mundo, los usuarios solo tendrán que iniciar sesión con su cuenta de Google antes de buscar, y todas las operaciones de búsqueda estarán cifradas usando el protocolo TLS, véase: http://thenextweb.com/google/2012/03/05/google-calls-for-a-more-secure-web-expands-ssl-encryption-to-local-domains/。
3. Cómo funciona HTTPS
HTTPS requiere un handshake entre el cliente (navegador) y el servidor (sitio web) antes de transmitir datos, y la información de contraseña de ambas partes se establecerá durante el proceso de handshake. El protocolo TLS/SSL no es solo un conjunto de protocolos de transmisión cifrados, sino también una obra de arte cuidadosamente diseñada por artistas, utilizando cifrado asimétrico, cifrado simétrico y algoritmos HASH. Una descripción sencilla del proceso de handshake es la siguiente:

  • El navegador envía un conjunto de reglas de cifrado que soporta al sitio web.
  • El sitio web selecciona un conjunto de algoritmos de cifrado y algoritmos HASH de ellos y envía su información de identidad de vuelta al navegador en forma de certificado. El certificado contiene información como la dirección del sitio web, la clave pública de cifrado y el emisor del certificado.
  • Tras obtener un certificado de sitio web, el navegador realiza lo siguiente:
  • Verifica la legitimidad del certificado (si la autoridad que emite el certificado es legítima, si la dirección web contenida en el certificado es la misma que la dirección visitada, etc.), si el certificado es de confianza, se mostrará un pequeño candado en la barra del navegador; de lo contrario, aparecerá un aviso de que el certificado no es de confianza.
  • Si el certificado es de confianza, o si el usuario acepta un certificado no confiable, el navegador genera un número aleatorio de contraseñas y las cifra con la clave pública proporcionada en el certificado.
  • El mensaje de apretón de manos se calcula usando el HASH acordado, y el mensaje se cifra con el número aleatorio generado, y finalmente toda la información generada previamente se envía al sitio web.
   4. Tras recibir los datos del navegador, el sitio web realiza lo siguiente:
  • Usa tu propia clave privada para descifrar la contraseña, usa la contraseña para descifrar el mensaje de handshake enviado por el navegador y verifica que el HASH sea el mismo que el enviado por el navegador.
  • Un mensaje de apretón de manos se cifra con una contraseña y se envía al navegador.
   5. El navegador descifra y calcula el HASH del mensaje de enlace de manos; si es consistente con el HASH enviado por el servidor, el proceso de enlace termina y entonces todos los datos de comunicación se cifrarán mediante la contraseña aleatoria generada por el navegador anterior y utilizando el algoritmo de cifrado simétrico.

Aquí, el navegador y la web se envían un mensaje de enlace cifrado y verifican, para asegurarse de que ambas partes han obtenido la misma contraseña, pueden cifrar y descifrar los datos con normalidad y realizar una prueba para la posterior transmisión de datos reales. Además, los algoritmos de cifrado y HASH comúnmente usados por HTTPS son los siguientes:
  • Algoritmos de cifrado asimétrico: RSA, DSA/DSS
  • Algoritmos de cifrado simétrico: AES, RC4, 3DES
  • Algoritmo HASH: MD5, SHA1, SHA256
Entre ellas, el algoritmo de cifrado asimétrico se utiliza para cifrar la contraseña generada durante el proceso de handshake, el algoritmo de cifrado simétrico se emplea para cifrar los datos reales transmitidos, y el algoritmo HASH para verificar la integridad de los datos. Dado que la contraseña generada por el navegador es la clave para el cifrado de todos los datos, se cifra mediante un algoritmo de cifrado asimétrico durante la transmisión. El algoritmo de cifrado asimétrico generará claves públicas y privadas, las claves públicas solo pueden usarse para cifrar datos, por lo que pueden transmitirse a voluntad, y las claves privadas del sitio web se usan para descifrar los datos, por lo que el sitio mantendrá su clave privada con mucho cuidado para evitar fugas.
Cualquier error durante el proceso de enlace TLS puede romper la conexión cifrada, impidiendo la transmisión de información privada. Es precisamente porque HTTPS es muy seguro que los atacantes no encuentran por dónde empezar, por lo que usan certificados falsos para engañar a los clientes y obtener información en texto plano, pero estos métodos pueden identificarse, de los que hablaré en un artículo posterior. Sin embargo, en 2010, expertos en seguridad descubrieron una vulnerabilidad en el manejo del protocolo TLS 1.0: http://www.theregister.co.uk/2011/09/19/beast_exploits_paypal_ssl/, de hecho, este método de ataque llamado BEAST fue descubierto por expertos en seguridad ya en 2002, pero no se hizo público. Microsoft y Google han solucionado esta vulnerabilidad. Ver: http://support.microsoft.com/kb/2643584/en-us https://src.chromium.org/viewvc/chrome?view=rev&revision=90643
La versión simplificada de HTTPS también funciona en cifrado simétrico frente a cifrado asimétrico.




Anterior:Configuración paso a paso para ASP.NET aplicaciones web que usan HTTPS
Próximo:Un cuadro de mensajes de alerta muy bonito SweetAlert
 Propietario| Publicado en 19/4/2018 11:09:21 |
Explicación detallada de varios parámetros del protocolo HTTP
http://www.itsvse.com/thread-3704-1-1.html
(Fuente: Architect_Programmer)
Renuncia:
Todo el software, materiales de programación o artículos publicados por Code Farmer Network son únicamente para fines de aprendizaje e investigación; El contenido anterior no se utilizará con fines comerciales o ilegales; de lo contrario, los usuarios asumirán todas las consecuencias. La información de este sitio proviene de Internet, y las disputas de derechos de autor no tienen nada que ver con este sitio. Debes eliminar completamente el contenido anterior de tu ordenador en un plazo de 24 horas desde la descarga. Si te gusta el programa, por favor apoya el software genuino, compra el registro y obtén mejores servicios genuinos. Si hay alguna infracción, por favor contáctanos por correo electrónico.

Mail To:help@itsvse.com