domingo, 20 de abril de 2014

ESTEGANOGRAFÍA

Esteganografía (Definición)

La palabra Esteganografía viene del griego 'steganós', que significa 'cubierto', y 'grafía' que significa 'escritura'. Aunque en un principio se utilizó como sinónimo de criptografía, hoy en día se utiliza para definir el arte de ocultar la existencia de mensajes en una comunicación.
A diferencia de la criptografía en la que el mensaje está cifrado e induce a sospecha, en la Esteganografía la información está inmersa sutilmente en un medio, sea texto, imagen o sonido, aparentemente normal. La información que contiene ese medio sólo puede revelarse aplicando un procedimiento apropiado. fuentes: (INTECO)

Historia y orígenes

Más de 400 años antes de Cristo, Herodoto ya reflejó en su libro Las Historias el uso de la esteganografía en la antigua Grecia. En dicho libro describe como un personaje toma un cuadernillo de dos hojas o tablillas; raya bien la cera que las cubre y en la madera misma graba un mensaje y lo vuelve a cubrir con cera.
Otra historia, en el mismo libro, describe como otro personaje rasura a navaja la cabeza de uno de sus esclavos y le tatúa un mensaje en el cuero cabelludo. Así, espera a que le vuelva a crecer el cabello y lo manda al receptor del mensaje con instrucciones de que le rasuren la cabeza. fuentes: (INTECO)



La Esteganografía ha aparecido ante los ojos de mucha gente, a raíz de los hechos del 11 de septiembre pues la posibilidad de que redes terroristas estén usando algunas de estas técnicas para transmitir mensajes a través de imágenes y sonidos en la red, hacen que el uso legal o ilegal de la Esteganografía sea un tema debatido en grupos de seguridad, intentando cambiar leyes que permitan el estudio de cualquier documento que viaja por la red. Es una ciencia que estudia todos los procedimientos que se pueden usar para ocultar la existencia de un mensaje en una comunicación, típicamente dentro de un texto, una imagen, o una canción. La Esteganografía no trata de sustituir al cifrado convencional sino que intenta complementarlo, pues al ocultar el mensaje se reducen las posibilidades de que sea descubierto.


Mecanismos Utilizados

1)     Esteganografía en imágenes:

La tecnología digital  a partir de 1990,  le brindó a la Esteganografía una nueva forma de aplicación: Esconder mensajes en los formatos de imagen.

Para una computadora, una imagen es prácticamente una matriz de puntos o píxeles, en donde cada píxel representa la intensidad de un color en números. Una imagen típica es de 640 por 480 píxeles y puede contener 256 colores representados en 8 bits por píxel.

La información puede ser escondida de distinta forma en las imágenes, el método más clásico es el LSB Least Significant Bit (Último Bit mas Significante). El LSB es el Bit que menos información brinda, por ejemplo si al número binario 1111 (15) se le modifica el primer Bit se obtiene 0111 (7), pero si se le modifica el ultimo Bit se obtiene 1110 (14); lo que implica un cambio en el valor menor al del primer ejemplo, ayudando a que pase desapercibido. 
De esta forma el color de la imagen casi no varía, por eso para el ojo humano es imposible distinguir esa diferencia en una imagen total.



1)     Esteganografía en sonido:

Para poder ocultar información en sonido éste debe ser transformado de su forma original (vibraciones que se propagan a través del aire), a un formato manejable como es la corriente eléctrica. Esta digitalización del sonido está compuesta por tres procesos, los cuales se explicarán a continuación como complemento para el entendimiento de la Esteganografía.

Muestreo: Dada una señal analógica se toman muestras de su amplitud en cada instante de tiempo.


Cuantificación: Una vez obtenidas las muestras, se estudia su nivel, y se le asigna el valor más aproximado que se le encuentre de acuerdo a unos valores previamente establecidos. Entre más niveles o valores se establezcan, mejor será la calidad del sonido y más posibilidades se tendrán para ocultar datos, pues en una cuantificación de 16 bits se tendrán 65536 valores para modificar.



Conversión a números binarios: Ya con el valor cuantificado de la muestra, éste se transforma en números binarios. Ejemplo: 122 es el número binario 01111010.

Para la reproducción de la señal digitalizada, se realiza el proceso inverso, obteniendo una señal analógica aproximada, pero nunca igual a la original, pues las muestras de sonido son por naturaleza, estimaciones inexactas de los valores correctos de un sonido en un momento determinado del tiempo, y por eso, esas leves imperfecciones son aprovechadas para ocultar la información.

Todo lo que las aplicaciones de Esteganografía hacen es distribuir el patrón de bits correspondiente al mensaje o archivo que se desea ocultar a través de los bits menos significantes (LSB) del archivo de sonido.
 

3.     Protocolo HTTP

El protocolo HTTP (Hypertext Transfer Protocol) es un sencillo protocolo transaccional de nivel de aplicación que realiza la transferencia de información entre sistemas bajo el diseño cliente/servidor. La especificación completa del protocolo HTTP 1.0 está en el RFC 1945 [1]. Fue propuesto por Tim Berners-Lee y su uso actual es la distribución global de información, sobretodo en la World Wide Web.

En el tema de comunicaciones, el protocolo está soportado sobre los servicios de conexión prestados por los protocolos TCP/IP y se basa en sencillas operaciones entre el cliente y el servidor de solicitud y respuesta.

El cliente normalmente crea una comunicación con el servidor a través de un puerto predeterminado (puerto 80) y le envía los mensajes con los datos de su solicitud. El servidor le responde con un mensaje indicándole el estado de la operación de consulta y su posible resultado, seguido de la información que haya solicitado como tal.

Los resultados normalmente se conocen como objetos o recursos y suelen ser páginas HTML, imágenes o archivos binarios

La comunicación completa entre clientes y servidores se realiza a partir de caracteres de 8 bits. Así, se puede transmitir cualquier tipo de documento: texto, binario, etc., sin cambiar su formato original.

Existen sentencias básicas que un cliente puede utilizar para dialogar con el servidor, algunas de ellas son:
·         GET, para recoger un objeto,
·         POST, para enviar información al servidor y 
·         HEAD, para solicitar las características de un objeto (por ejemplo, la fecha de modificación de un documento HTML).

Cada operación HTTP implica una conexión con el servidor, que es liberada al término de la misma. Esto quiere decir que para cada objeto, archivo o imagen que pueda contener la solicitud del cliente, se realizará una conexión para transmitirlo. Una vez transmitido, el protocolo TCP se encargará de cerrar la conexión, para establecer una nueva de ser necesario.

El protocolo no mantiene el estado, esto quiere decir que cada petición de un cliente a un servidor no depende, ni es influida por las transacciones anteriores. El servidor trata cada petición como una operación totalmente independiente del resto de operaciones que le preceden o le anteceden.

La comunicación con los servidores HTTP, normalmente se establece a través de mensajes de texto, que contienen los diferentes comandos y opciones del protocolo. Solo existen dos tipos de mensajes, uno para realizar la petición y otro para devolver la respuesta. Estos dos se clasifican de la siguiente forma:

1)     Simples.

Las peticiones simples no tienen contenido, son solicitudes de información desde el cliente al servidor.

2)     Compuestos.

Los mensajes compuestos están formados por una cabecera y un contenido (objeto, imagen, etc.). Para diferenciar la cabecera del contenido se usa una línea vacía.

Por tener contenido, las respuestas del servidor al cliente son mensajes compuestos.

La estructura general para los dos tipos de mensajes es:


Mensaje de solicitud
Comando HTTP + parámetros
Cabeceras del requerimiento
(línea en blanco)
Información opcional

Mensaje de Respuesta
Resultado de la solicitud
Cabeceras de la respuesta
(línea en blanco)
Información opcional

En el mensaje de solicitud se encuentra el comando por el cual se le piden al servidor los datos, mientras que en la respuesta contiene un código numérico que permite conocer cual es el resultado de la operación (ACK ó Error)

Después, para los dos mensajes aparecen unas cabeceras que contienen la información necesaria para entender los requerimientos y especificaciones de la comunicación y que condicionan el funcionamiento del protocolo.

Seguido, viene la separación de la cabecera con el cuerpo del mensaje mediante una línea en blanco (ctrl. Line Feed), después de la cual se pueden incluir los datos solicitados, por ejemplo el documento HTML o la imagen solicitada por el cliente.
fuente (Bonilla- Luis Jorge, Llano- Mónica, Ramírez- Alfonso  Esteganografía en HTTP)

A continuación un video en donde se enseña a encriptar a traves de la aplicación openPuff.


 

No hay comentarios.:

Publicar un comentario