¿Cuál es la diferencia entre HTTPS y HTTP? ¿Dónde está la seguridad?
En primer lugar, HTTPS no es el nombre oficial de esta tecnología de cifrado. HTTPS significa "protocolo HTTP implementado sobre TLS/SSL", por lo que en realidad es la capa TLS/SSL debajo de HTTP la que implementa el cifrado.
Veamos varios mecanismos principales de implementación de TLS/SSL:
1. Certificado: la identidad del sitio web es verificada y garantizada por una autoridad certificadora autorizada de terceros (como como VeriSign), para evitar que otros falsifiquen identidades de sitios web y establezcan conexiones cifradas con usuarios desprevenidos.
2. Intercambio de claves: Mediante cifrado de clave pública (asimétrica), el servidor del sitio web negocia con el usuario para generar una clave de sesión con la misma identidad.
3. Cifrado de sesión: La clave de sesión negociada por el mecanismo (2) se utiliza para cifrar el contenido de la sesión 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 lograr una mayor seguridad. Sin embargo, ningún método de cifrado es absolutamente seguro y el mecanismo anterior en realidad tiene posibles riesgos:
1. Certificado: si alguien falsifica un certificado, el navegador emitirá una advertencia, advirtiendo al usuario que el certificado del sitio web puede ser falso. be Forgery debería dejar de acceder a él, pero si ignora las advertencias de su navegador, el falsificador podría 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 por completo al mecanismo de seguridad del navegador. Estos casos ocurren.
2. Intercambio de claves: RSA es el algoritmo de cifrado de clave pública más utilizado y suele ser muy seguro.
3. Cifrado de sesión: AES-256 (modo CBC) es un algoritmo de cifrado muy utilizado. Es muy seguro utilizando una clave de 256 bits, pero no utilizando una clave de 128 bits (AES-128). ). Demasiado seguro.
4. Verificación de mensajes: SHA1, que es un algoritmo hash. La seguridad de SHA1 es mejor que la de MD5, pero será mejor si se utiliza SHA256.
Muy abstracto, ¿verdad? Expliquemoslo vívidamente usando lo de “pasar notas” que todos hacían cuando eran niños.
Protocolo de transferencia de hipertexto
Supongamos que ahora estás sentado en un salón de clases y quieres hablar con el encantador asistente técnico al lado del pasillo. Por lo general, en este momento se comunicará "pasando notas". Este método es muy similar al modo de trabajo básico del protocolo TCP/IP:
Atrae la atención de la otra parte mediante pequeños movimientos
La otra parte te responderá de forma variada; de formas posibles (mirada, lenguaje corporal, etc.). );
Después de confirmar que la otra parte lo detecta, entregue la nota a la otra parte;
La otra parte lee la nota;
La otra parte party te da la reacción después de leerlo;
Bueno, ¿estás familiarizado con este proceso?
¿Qué debes hacer si quieres enviar el mensaje a alguien que está lejos de ti? El protocolo HTTP significa que escribes en la nota la persona a la que quieres enviársela, o dónde está su asiento, y luego solo necesitas seguir las instrucciones de la nota y pasar la nota a los estudiantes por turno.
El problema llega en este momento: los alumnos que bloquean el paso pueden leer 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, es decir, 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 primitivo más conocido es el algoritmo de cifrado simétrico, lo que significa que ambas partes acuerdan un código secreto y con qué letras reemplazarlo. Actualmente se utiliza generalmente un algoritmo simétrico llamado AES (Algoritmo de cifrado avanzado).
Los algoritmos de cifrado simétrico significan que las claves utilizadas para el cifrado y descifrado son las mismas.
AES garantiza matemáticamente que siempre que la clave que utilice sea lo suficientemente larga (a menos que se cree una computadora de fotones), el descifrado es casi imposible.
Asumimos que el texto cifrado no tiene una llave irrompible y de regreso a este salón de clases. Escribes el contenido cifrado con AES en una hoja de papel y, cuando estás a punto de enviarlo, de repente piensas: ¿cómo puede descifrar el contenido sin la clave o cómo debo darle la clave?
Si la clave también está escrita en la nota, el intermediario aún puede descifrar el contenido de la nota de escucha. Quizás en un entorno real tenga otras formas de enviar la clave a 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 recorrer esas rutas de todos modos.
Así que los humanos inteligentes inventaron otro algoritmo de cifrado: el algoritmo de cifrado asimétrico. Este algoritmo de cifrado generará dos claves (clave1 y clave2). Todos los datos cifrados con la clave1 no se pueden descifrar con la clave1 y deben descifrarse con la clave2; para los elementos cifrados con la clave2, la clave2 en sí no se puede descifrar y solo la clave1 puede descifrarlos.
Existen muchos algoritmos de este tipo en la actualidad y RSA es el más utilizado. Se basa en el siguiente principio matemático:
El producto de dos números primos grandes es fácil de calcular, pero calcular qué dos números primos multiplican este producto es complicado. Afortunadamente, con la tecnología actual, es realmente difícil descomponer los factores primos de números grandes, especialmente cuando el número grande es lo suficientemente grande (generalmente tan grande como 10 elevado a 2). Incluso con una supercomputadora, el descifrado llevará mucho tiempo. tiempo.
Aplica ahora este método de cifrado asimétrico al escenario de pasar apuntes en nuestra clase.
Antes de escribir la nota, generaste un par de claves k1 y k2 usando tecnología RSA.
Si envías k1 en texto plano, alguien puede interceptarlo, pero será inútil. Los datos cifrados de k1 deben ser descifrados por k2, y k2 está en sus propias manos.
K1 se envía al destino, y el destino preparará una clave de transmisión para cifrado simétrico (AES), luego cifrará la clave con el k1 recibido y se la enviará.
Después de usar el k2 en tu mano para descifrar la clave, solo tú y tu destino tenéis esta clave de cifrado simétrica en todo el aula. Puedes chatear todo lo que quieras sin temor a que te escuchen ~<. /p> p>
Quizás tengas alguna pregunta. ¿Por qué no cifrar la información directamente con cifrado asimétrico, sino utilizar cifrado de clave AES? Dado que el tiempo de consumo promedio del cifrado y descifrado asimétrico es largo, para ahorrar tiempo y mejorar la eficiencia, generalmente solo lo usamos para intercambiar claves en lugar de transmitir datos directamente.
Sin embargo, ¿puede el cifrado asimétrico realmente prevenir los ataques de intermediario? Aunque parece seguro, en realidad no previene 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. La malicia del intermediario es que se hará pasar por tu objetivo.
Cuando estás a punto de completar el primer intercambio de claves con B, M sostiene la nota, se hace pasar por B, falsifica una clave y luego te la envía usando la clave de cifrado k1 que enviaste.
Crees que has completado el intercambio de claves con B, pero en realidad has completado el intercambio de claves con m.
Los colegas myb completan un intercambio de claves, lo que hace que b piense que usted y a han completado el intercambio de claves.
Ahora todo el proceso de cifrado se convierte en uno (enlace cifrado 1)->m (texto sin formato)->B (enlace cifrado 2). En este momento, M aún puede conocer todos los mensajes enviados por A y B. . Mensaje..
En este momento, existe la diferencia entre HTTPS y pedidos de entrega. En el aula, te comunicas con un objeto que es casi equivalente a tu identidad; cuando visitas un sitio web, la otra parte suele ser un servidor relativamente grande (o conocido). Tienen muchos recursos y es posible que puedan demostrarle su legitimidad.
En este momento, debe presentar un tercero muy autorizado, una organización dedicada a 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 obtener la firma de la CA al establecer una conexión segura. La seguridad de la CA se autentica a través del sistema operativo o navegador.
Tu Windows, Mac, Linux, Chrome, Safari y más.
Aparecerá una lista de certificados de CA que consideraron seguros cuando se instalaron. Solo cuando el sitio web con el que establece una conexión segura tenga la firma de estas CA, el sistema operativo y el navegador considerarán que el enlace es seguro; de lo contrario, puede ser atacado por un intermediario.
Una vez que un certificado emitido por una CA se utiliza ilegalmente, todos los certificados emitidos por esta CA se considerarán inseguros. Esto hace que todas las CA sean muy cuidadosas al emitir certificados, por lo que generalmente todos los certificados de CA son confiables.
Al igual que Agora.io Web SDK 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, se producirá un error al acceder al servicio Agora mediante http en el navegador Chrome (versión 47 o superior). ¿Qué debo hacer?
La solución Agora Web establece comunicación de audio y vídeo entre navegadores basada en 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 principales navegadores que admite WebRTC. En v47 y superiores, debido a 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 dicha 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.