¿Cuál es la diferencia entre HTTPS y HTTP y cuál es la seguridad?
En el proceso de obtención de información online, el método de transmisión de información cifrada con el que más entramos en contacto es HTTPS. Cada vez que visita un sitio y aparece un ícono verde en la barra de direcciones de su navegador, significa que el sitio admite la transmisión de información HTTPS. HTTPS es una mezcla de nuestro protocolo HTTP común y un protocolo de cifrado, es decir, HTTP+S. Esta S puede ser TLS (Transport Layer Security) o SSL (Secure Socket Layer), pero prefiero otro término abstracto y general, HTTP+Seguridad.
En primer lugar, HTTPS no es el nombre oficial de esta tecnología de cifrado. HTTPS significa "protocolo HTTP implementado en TLS/SSL", por lo que lo que implementa el cifrado es en realidad la capa TLS/SSL debajo de HTTP.
Echemos un vistazo a varios mecanismos principales implementados por TLS/SSL:
1. Certificado: verifique y garantice la identidad del sitio web a través de una autoridad certificadora autorizada de terceros (como como VeriSign). Evita que otros falsifiquen identidades de sitios web y establezcan conexiones cifradas con usuarios desprevenidos.
2. Intercambio de claves: una clave de sesión única se genera mediante la negociación entre el servidor del sitio web y el usuario mediante cifrado de clave pública (asimétrica).
3. Cifrado de sesión: Utilizando la clave de sesión negociada a través del mecanismo (2), el contenido de la sesión se cifra mediante un algoritmo de cifrado simétrico.
4. Verificación de mensajes: el algoritmo de verificación de mensajes se utiliza para evitar que la información cifrada sea manipulada durante la transmisión.
A través del mecanismo anterior, el contenido transmitido entre el usuario y el sitio web queda protegido, por lo que se puede alcanzar una alta seguridad. Sin embargo, ningún método criptográfico es absolutamente seguro y, de hecho, existen posibles riesgos en los mecanismos anteriores:
1. Certificado: si alguien falsifica un certificado, el navegador emitirá una advertencia para recordarle al usuario el sitio web. El certificado puede ser falso y se debe detener el acceso, pero si ignora la advertencia del navegador, el falsificador puede robar la información de su sesión. Además, si la autoridad de certificación de terceros es atacada y el atacante roba la clave del certificado emitida, puede falsificar el certificado del sitio web correspondiente y engañar completamente al mecanismo de seguridad del navegador. De hecho, estos ejemplos ya han ocurrido antes.
2. Intercambio de claves: RSA, que es el algoritmo de cifrado de clave pública más utilizado y generalmente es muy seguro.
3. Cifrado de sesión: AES-256 (Modo CBC), que es un algoritmo de cifrado muy utilizado. El uso de una clave de 256 bits significa que es altamente segura. se utiliza (AES-128) es menos seguro.
4. Verificación de mensajes: SHA1, que es un algoritmo hash, SHA1 es más seguro que MD5, pero si se utiliza SHA256, la seguridad será mejor.
Lo anterior es muy abstracto, ¿no? Usemos "pasar notas", algo que todos hacían cuando eran niños, para ilustrarlo vívidamente.
HTTP
Suponga que está sentado en el salón de clases ahora y ahora realmente quiere decirle algo al encantador asistente técnico al lado del pasillo. Por lo general, en este momento usará "pase". una nota"” forma de comunicarse. Este método es muy similar al modo de trabajo básico del protocolo TCP/IP:
Atraer la atención de la otra parte mediante pequeños movimientos
La otra parte responde de diversas formas posibles; (mirada, lenguaje corporal, etc.) hacia usted
Después de confirmar que la otra parte lo siente, pásele la nota
La otra parte lee la nota; ;
La otra parte le da la reacción de lectura;
¿Qué te parece este proceso?
¿Qué pasa si la persona a la que quieres entregar la nota está lejos de ti? El protocolo HTTP significa que usted escribe en la nota a quién desea pasarla, o dónde está su asiento, y luego solo los estudiantes que necesitan pasar reciben la nota y la pasan en secuencia de acuerdo con las instrucciones de la nota. Está bien.
En este momento llega el problema: los alumnos de la ruta pueden mirar y saber lo que escribiste en la nota.
Este es uno de los problemas que enfrenta la transmisión HTTP: el ataque de hombre en el medio, lo que significa que durante el proceso de transmisión del mensaje, los atacantes en la ruta de transmisión pueden olfatear o escuchar a escondidas el contenido del datos transmitidos.
HTTPS
HTTPS utiliza "cifrado" para resolver este problema. El método de cifrado más famoso y original es el algoritmo de cifrado simétrico, lo que significa que ambas partes acuerdan un código secreto y reemplazan qué letras con qué letras. Hoy en día se utiliza generalmente un algoritmo simétrico llamado AES (Algoritmo de cifrado avanzado).
El algoritmo de cifrado simétrico significa que la clave utilizada tanto para el cifrado como para el descifrado es la misma.
AES garantiza matemáticamente que siempre que la clave que utilice sea lo suficientemente larga, el descifrado es casi imposible (a menos que se construya una computadora fotónica)
Supongamos primero que no existe una clave clave. , el texto cifrado no se puede descifrar y luego regresar a este salón de clases. Escribiste el contenido cifrado con AES en la nota. Cuando estabas a punto de enviarla, de repente pensaste, ¿cómo puede descifrar el contenido sin la clave o, en otras palabras, cómo deberías darle la clave?
Si la clave también está escrita en la nota, el intermediario aún puede descifrar la nota de escucha. Quizás en un entorno real tenga otras formas de enviar la clave al TA a través de algún canal seguro, pero es más difícil de implementar en Internet, después de todo, los datos tienen que pasar por esas rutas pase lo que pase.
Así que los humanos inteligentes inventaron otro algoritmo de cifrado: el algoritmo de cifrado asimétrico. Este algoritmo de cifrado genera dos claves (clave1 y clave2). Los datos cifrados con la clave1 no pueden descifrarse con la propia clave1, y se requiere la clave2 para descifrarlos;
Actualmente existen muchos algoritmos de este tipo, el más utilizado es RSA. El principio matemático en el que se basa es:
El producto de dos números primos grandes es fácil de calcular, pero es muy complicado utilizar este producto para calcular qué dos números primos se multiplican. Afortunadamente, con la tecnología actual, es realmente difícil descomponer los factores de números grandes, especialmente cuando el número grande es lo suficientemente grande (generalmente tan grande como 2 elevado a 10 dígitos binarios), incluso una supercomputadora necesitará una gran cantidad de Es hora de descifrarlo.
Ahora apliquemos este método de cifrado asimétrico al escenario de pasar notas en nuestra clase.
Utiliza tecnología RSA para generar un par de claves k1 y k2 antes de escribir el contenido de la nota.
Si envía k1 en texto claro, alguien puede interceptarlo, pero será inútil. Los datos cifrados por k1 requieren que k2 se descifre, y k2 está en sus propias manos.
Cuando k1 se transmite al destino, el destino preparará una clave de transmisión que se usará para el cifrado simétrico (AES) y luego usará el k1 recibido para cifrar la clave y pasársela.
Después de usar el k2 en tu mano para resolver la clave, solo tú y tu persona objetivo en todo el salón tenéis esta clave cifrada simétricamente, y ustedes dos pueden charlar todo lo que quieran sin temor a que los escuchen a escondidas. ~
Es posible que tenga preguntas aquí: ¿por qué no utilizar directamente el cifrado asimétrico para cifrar la información, sino cifrar la clave AES? Debido a que el tiempo de consumo promedio del cifrado y descifrado asimétrico es relativamente largo, para ahorrar tiempo y mejorar la eficiencia, generalmente solo lo usamos para intercambiar claves en lugar de transmitir datos directamente.
Sin embargo, ¿el uso de cifrado asimétrico realmente puede prevenir los ataques de intermediario? Aunque parece muy seguro, en realidad no puede detener los desagradables ataques de intermediarios.
Supongamos que eres A, tu destino es B y ahora tienes que pasar por un compañero de clase malicioso M. Lo malicioso de un intermediario es que se disfraza de objetivo.
Cuando estaba a punto de completar el primer intercambio de claves con B, M retiró la nota, se hizo pasar por B, falsificó una clave y luego cifró la clave con el k1 que le envió.
Creías que habías completado el intercambio de claves con B, pero en realidad habías completado el intercambio de claves con M.
Los colegas M y B completan un intercambio de claves, lo que hace que B piense que han completado el intercambio de claves con A.
Ahora el proceso de cifrado general se ha convertido en A (enlace cifrado 1) -> M (texto sin formato) -> B (enlace cifrado 2). En este momento, M aún puede conocer la transmisión entre A y B. Todas las novedades.
En este momento se refleja la diferencia entre HTTPS y transferencia de notas. En el aula, usted se comunica con alguien que es casi igual a usted; cuando visita un sitio web, la otra parte suele ser un proveedor de servicios relativamente grande (o conocido). Tiene abundantes recursos y tal vez pueda demostrarlo. su legitimidad para usted.
En este momento necesitamos presentar un tercero muy autorizado, una organización utilizada específicamente para certificar la legitimidad del sitio web, que puede denominarse CA (Autoridad de certificación). Cada proveedor de servicios de sitio web puede solicitar un certificado de la CA para poder traer la firma de la CA al establecer una conexión segura. La seguridad de CA está autenticada por el sistema operativo o el navegador.
Su Windows, Mac, Linux, Chrome, Safari, etc. traerá una lista de certificados de CA que consideran seguros durante la instalación. Solo los sitios web que establecen conexiones seguras con usted tienen las firmas de estas CA. El sistema operativo y el navegador considerarán este enlace como seguro; de lo contrario, puede estar sujeto a un ataque de intermediario.
Una vez que un certificado emitido por una CA se utiliza de manera ilegal, todos los certificados emitidos anteriormente por esta CA se considerarán inseguros, lo que hace que todas las CA sean muy cuidadosas al emitir certificados, por lo que el certificado de CA es confiable. en circunstancias normales.
Así como el SDK web de agora.io considera los problemas de seguridad de los datos, limita el acceso http a la interfaz getUserMedia y solo puede acceder a través de https. Por lo tanto, falla el acceso al servicio Agora mediante http en el navegador Chrome (versión 47 o superior).
La solución Agora Web establece comunicación de audio y video entre navegadores basada en la tecnología WebRTC. En el protocolo WebRTC, el navegador obtiene datos de video (a través de la cámara) y audio (a través del micrófono) a través de la interfaz getUserMedia. Google Chrome es uno de los navegadores principales que admite WebRTC. En la versión v47 y superiores, teniendo en cuenta los problemas de seguridad de los datos, el acceso http a la interfaz getUserMedia está restringido y solo se puede acceder a través de https. Además del navegador Chrome, el navegador Opera también ha seguido las restricciones de http después de que la versión v34 de Firefox no tenga esta actualización por el momento. Sin embargo, considerando que https es el método de acceso seguro recomendado por el protocolo WebRTC, se recomienda que los clientes accedan a los servicios web de Agora a través de https, que también es compatible con varias plataformas de navegador.