¿Cómo puede alguien acceder a los datos que solicito cuando uso HTTP?

3

He oído que HTTP utiliza comunicación de texto sin formato. Si es así, ¿cómo puede un hacker o alguien tocarlo? Por lo que sé, sé que si enviamos una solicitud a un servidor web, este nos responde utilizando nuestra dirección IP. Entonces, si un atacante quiere saber lo que estoy haciendo, ¿cómo lo hace? ¿Es necesario saber mi dirección IP o la intercepta? O es así: un atacante decide atacar a alguien y elige algunos datos y encuentra que esto pertenece a la X, lo que significa que ataca de forma aleatoria?

    
pregunta Nithin Jose 07.07.2013 - 17:29
fuente

3 respuestas

9

Cuando accede a un sitio web, digamos Google, su solicitud pasa por varios pasos (nodos) hasta que llega a su destino final. El primer nodo es su enrutador doméstico, luego los enrutadores de su ISP, y luego otros enrutadores grandes, y luego los enrutadores de Google. En cualquiera de estos nodos, su solicitud se almacena momentáneamente en la memoria de los dispositivos, lo que significa que un atacante puede acceder a ella. Por supuesto, esa no es una situación muy probable.

La mala noticia es que un atacante podría engañar a su computadora para que piense que su computadora es un nodo real en la ruta entre usted y un nodo legítimo. Este ataque se denomina ataque de hombre en la mitad (MiTM) . Los MiTM vienen en muchas formas y formas, las más famosas son:

No revisaré cada tipo porque hará que esta respuesta sea demasiado grande, pero eche un vistazo a las páginas y obtenga más información sobre estos ataques.

Como solución a este problema, tenemos HTTPS . Funciona mediante la superposición de HTTP a través de SSL / TLS para asegurarse de que su solicitud va de su navegador al servidor deseado y de que cualquier persona que espíe no pueda ver qué contiene la solicitud o respuesta que recibe del servidor.

    
respondido por el Adi 07.07.2013 - 17:57
fuente
3

No es completamente necesario. Si el atacante está utilizando suplantación ARP 1 , puede estar sentado en cualquier lugar de la cadena de comunicación. 2 . Por ejemplo, si se está conectando al mismo nodo ISP que usted (físicamente cerca de usted), entonces puede detectar todos los datos de texto sin formato de todas las personas que se conectan al ISP en esa subred. No necesita saber su IP para esto, sin embargo, descubrirá quién envió la solicitud HTTP. Así que no necesita para averiguar su IP exacta o hacer tomas en la oscuridad al azar hasta que la encuentre; él puede muy fácilmente obtener todos los paquetes de su subred y tamizarlos.

Tenga en cuenta que un atacante puede optar por la falsificación ARP solo usted , si conoce su IP. Esto es mucho más conveniente ya que hay menos ruido no deseado en la línea, pero él también puede engañar a todos en la subred y proceder.

La forma en que funciona es que el protocolo TCP / IP (bueno, el protocolo ARP) es intrínsecamente inseguro. Cuando es necesario enviar datos a una determinada IP, se le pide a la computadora con esa IP que se identifique. Es fácil pretender ser esa computadora y aceptar los paquetes, y luego enviarlos al destinatario real.

Para esto, el atacante debe estar en la misma subred que un nodo que está transmitiendo los datos. Este nodo podría ser usted, un nodo ISP intermedio o el servidor web.

1. Esta no es la única forma de MITM, vea la respuesta de Adnan para más información. Los tres métodos pueden funcionar sin conocer la IP exacta.

2. Es muy poco probable que un atacante esté sentado entre dos nodos intermedios. Es muy muy fácil para un atacante estar sentado en la conexión ISP de usted (su) y no es muy improbable para la conexión ISP del host web (su). Cualquier otra cosa es muy improbable.

    
respondido por el Manishearth 07.07.2013 - 17:56
fuente
0

Solo quería responder a tu pregunta sobre si hay alguna clave compartida (no puedo comentar porque no tengo suficiente representante).

Cuando utilice HTTPS, utilizará SSL para el cifrado. Los servidores que admiten HTTPS tendrán certificados que tienen su clave pública y también se pueden usar para la verificación. Los clientes utilizarán la clave pública para cifrar un secreto maestro previo para enviar al servidor. Luego, ambos usarán ese secreto maestro previo para generar la clave secreta maestra para un esquema de cifrado simétrico (uno en el que usan la misma clave para cifrar y descifrar datos).

Espero que ayude!

Editar:

Para responder a tu última pregunta de si un atacante podría pretender ser un usuario: ¡por supuesto! Es bastante trivial para un atacante establecer una conexión https a un servidor. Sin embargo, esto no debe permitir que el atacante pueda leer mensajes de otros usuarios que utilizan https, ya que sus claves secretas serán diferentes.

    
respondido por el Synderesis 08.07.2013 - 21:14
fuente

Lea otras preguntas en las etiquetas