Esteganografía TCP o cómo ocultar la transmisión de datos en Internet

Esteganografía TCP o cómo ocultar la transmisión de datos en Internet

Investigadores polacos han propuesto un nuevo método de esteganografía de red basado en las características del protocolo de capa de transporte TCP, ampliamente utilizado. Los autores del trabajo creen que su esquema, por ejemplo, puede usarse para enviar mensajes ocultos en países totalitarios que imponen una estricta censura en Internet. Intentemos averiguar en qué consiste realmente la innovación y qué tan útil es realmente.

En primer lugar, es necesario definir qué es la esteganografía. Entonces, la esteganografía es la ciencia de la mensajería encubierta. Es decir, utilizando sus métodos, las partes intentan ocultar el hecho de la transferencia. Ésta es la diferencia entre esta ciencia y la criptografía, que intenta hacer que el contenido del mensaje sea ilegible. Vale la pena señalar que la comunidad profesional de criptógrafos desprecia bastante la esteganografía debido a la proximidad de su ideología al principio de "Seguridad a través de la oscuridad" (no sé cómo suena bien en ruso, algo así como "Seguridad a través de la ignorancia"). ”). Este principio lo utiliza, por ejemplo, Skype Inc. - El código fuente del popular marcador está cerrado y nadie sabe exactamente cómo se cifran los datos. Por cierto, recientemente la NSA se quejó de esto, sobre lo cual el conocido especialista Bruce Schneier написал en mi blog.

Volviendo a la esteganografía, respondamos la pregunta de por qué es necesaria, si existe la criptografía. De hecho, es posible cifrar un mensaje utilizando algún algoritmo moderno y, cuando se utiliza una clave suficientemente larga, nadie podrá leer este mensaje a menos que usted lo desee. Sin embargo, a veces es más útil ocultar el hecho mismo de una transmisión secreta. Por ejemplo, si las autoridades pertinentes interceptaron su mensaje cifrado y no pueden descifrarlo, pero realmente quieren hacerlo, al final existen métodos no informáticos para influir y extraer información. Suena antiutópico, pero, como ve, en principio esto es posible. Por lo tanto, sería mejor asegurarse de que aquellos que no deben saber en absoluto que se realizó la transferencia. Los investigadores polacos acaban de proponer este método. Además, proponen hacerlo utilizando un protocolo que cada internauta utiliza mil veces al día.

Aquí nos acercamos al Protocolo de control de transmisión (TCP). Explicar todos sus detalles, por supuesto, no tiene sentido: es largo, aburrido, quienes lo necesitan ya lo saben. En resumen, podemos decir que TCP es un protocolo de capa de transporte (es decir, funciona "por encima" de IP y "bajo" protocolos de capa de aplicación, como HTTP, FTP o SMTP), que proporciona una entrega confiable de datos desde el remitente al recipiente. Entrega confiable significa que si un paquete se pierde o cambia, TCP se encarga de reenviar el paquete. Tenga en cuenta que los cambios en el paquete aquí no significan una distorsión deliberada de los datos, sino errores de transmisión que ocurren a nivel físico. Por ejemplo, mientras el paquete viajaba a través de cables de cobre, un par de bits cambiaron su valor al opuesto o se perdieron por completo en el ruido (por cierto, para Ethernet, la tasa de error de bits generalmente se considera de aproximadamente 10-8 ). La pérdida de paquetes en tránsito también es un fenómeno relativamente común en Internet. Esto puede ocurrir, por ejemplo, debido a la carga de trabajo de los enrutadores, lo que provoca desbordamientos del búfer y, como resultado, el rechazo de todos los paquetes recién llegados. Por lo general, el porcentaje de paquetes perdidos es de aproximadamente el 0.1% y, con un valor de un par de por ciento, TCP deja de funcionar normalmente; todo será terriblemente lento para el usuario.

Así, vemos que el reenvío (retransmisión) de paquetes es un fenómeno frecuente y generalmente necesario para TCP. Entonces, ¿por qué no utilizarlo para las necesidades de esteganografía, a pesar de que TCP, como se señaló anteriormente, se utiliza en todas partes (según diversas estimaciones, hoy la proporción de TCP en Internet alcanza el 80-95%). La esencia del método propuesto es enviar en el mensaje reenviado no lo que estaba en el paquete principal, sino los datos que intentamos ocultar. Al mismo tiempo, no es tan fácil detectar tal sustitución. Después de todo, necesita saber dónde buscar: la cantidad de conexiones TCP simultáneas que pasan por el proveedor es simplemente enorme. Si conoce el nivel aproximado de retransmisión en la red, puede ajustar el mecanismo de reenvío esteganográfico para que su conexión no sea diferente de las demás.

Por supuesto, este método no está exento de inconvenientes. Por ejemplo, desde un punto de vista práctico, no será tan fácil implementarlo: requerirá un cambio en la pila de red en los sistemas operativos, aunque esto no tiene nada de complicado. Además, si tiene suficientes recursos, aún puede detectar paquetes "secretos", para ello necesita ver y analizar cada paquete en la red. Pero, por regla general, esto es casi imposible, por lo que normalmente buscan algo que destaque para los paquetes y las conexiones, y el método propuesto simplemente hace que su conexión no tenga nada especial. Y nadie te molesta en cifrar datos secretos por si acaso. En este caso, la propia conexión puede permanecer sin cifrar para despertar menos sospechas.

Los autores del trabajo (por cierto, para aquellos que estén interesados, aquí Ella) demostró a nivel de simulación que el método propuesto funciona según lo previsto. Quizás en el futuro alguien se dedique a implementar sus ideas en la práctica. Y entonces, con suerte, habrá un poco menos de censura en Internet.

Fuente: habr.com

Añadir un comentario