La esteganografía (del griego στεγανος steganos, "cubierto" u "oculto", y γραφος graphos, "escritura") trata el estudio y aplicación de técnicas que permiten ocultar mensajes u objetos, dentro de otros, llamados portadores, de modo que no se perciba su existencia. Es decir, procura ocultar mensajes dentro de otros objetos y de esta forma establecer un canal encubierto de comunicación, de modo que el propio acto de la comunicación pase inadvertido para observadores que tienen acceso a ese canal.
Una forma de diferenciar la esteganografía con la criptografía común es que la criptografía solo cifra los archivos manteniendo el archivo original visible, pero al abrirlo mostrará una secuencia de caracteres que no permitirá su lectura y para ver su contenido original es necesario conocer la clave. En la esteganografía, puede verse un archivo con un formato diferente, y para conocer su contenido original será necesario conocer la clave y el software con el que se ocultó.
Esta ciencia ha suscitado mucho interés en los últimos años, especialmente en el área de seguridad informática, debido a que ha sido utilizada por organizaciones criminales y terroristas. No obstante, no se trata de nada nuevo, pues se lleva empleando desde la antigüedad, y tradicionalmente la han utilizado las instituciones policíacas, militares y de inteligencia, y también criminales o civiles que desean evadir el control gubernamental, especialmente en regímenes tiránicos.
La esteganografía clásica se basaba únicamente en el desconocimiento del canal encubierto utilizado, mientras que en la era moderna también se emplean canales digitales (imagen, video, audio y protocolos de comunicaciones, entre otros) para alcanzar el objetivo. En muchos casos, el objeto contenedor es conocido, y lo que se ignora es el algoritmo de inserción de la información en dicho objeto.
Para que pueda hablarse de esteganografía, debe haber voluntad de comunicación encubierta entre el emisor y el receptor.
Si bien la esteganografía puede confundirse con la criptografía, por ser ambas parte de los procesos de protección de la información, son disciplinas distintas, tanto en su forma de implementar como en su objetivo mismo.
Mientras que la criptografía se utiliza para cifrar o codificar información de manera que sea ininteligible para un probable intruso, a pesar de que conozca su existencia, la esteganografía oculta la información en un portador de modo que no sea advertido el hecho mismo de su existencia y envío. De esta última forma, un probable intruso ni siquiera sabrá que se está transmitiendo información sensible.
Sin embargo, la criptografía y la esteganografía pueden complementarse, dando un nivel de seguridad extra a la información, es decir, es muy común (aunque no imprescindible) que el mensaje a esteganografiar sea previamente cifrado, de tal modo que a un eventual intruso no solo le costará advertir la presencia de la mensajería oculta, sino que, si la llegara a descubrir, la encontraría cifrada.
La utilidad del uso de la esteganografía se manifiesta en el llamado problema del prisionero (Gustavus J. Simmons, 1983). Resumidamente, en el problema del prisionero tenemos dos prisioneros, A y B, que quieren comunicarse de forma confidencial para escapar. El problema es que solo pueden intercambiar mensajes a través de un guardián. El guardián puede leer, modificar o generar él mismo los mensajes. Si el guardián detecta cualquier comunicación que pueda ser utilizada para escapar (por ejemplo, si detecta un cifrado), dejará de transmitir los mensajes. En este escenario, los prisioneros necesitan establecer un canal encubierto.
El uso de la esteganografía permite disponer de un canal encubierto de forma que es posible comunicarse sin ser detectado. La estrategia que sigue la esteganografía para resolver el problema del prisionero es esconder los datos que deben ser detectados, entre los mensajes permitidos por el guardián.
La idea que sigue la esteganografía es enviar el mensaje oculto (E) “escondido” en un mensaje de apariencia inocua (C) que servirá de “camuflaje”. Esto es, se aplica una función de esteganografía . El resultado de aplicar la función (O), se envía por un canal inseguro y puede ser visto sin problemas por el guardián. Finalmente, el otro prisionero recibe el objeto O y, aplicando la función inversa , puede recuperar el mensaje oculto.
La terminología típica usada en la esteganografía es:
La capacidad de alterar el portador de manera imperceptible es posible gracias a la existencia de redundancia en el mismo. Las alteraciones pueden realizarse tanto en el contenido como en otros parámetros; por ejemplo, en el tiempo de respuesta en la emisión del portador.
El estego-algoritmo es el algoritmo esteganográfico que indica cómo realizar el procedimiento de incorporación del mensaje esteganográfico en el portador para obtener el estego-mensaje. Según el tipo de estego-algoritmo, es posible distinguir dos tipos de esteganografía: esteganografía pura y esteganografía de clave secreta.
En este tipo de esteganografía, el estego-algoritmo establece un método fijo para incorporar el mensaje esteganográfico en el portador para obtener el estego-mensaje. En esta estrategia se está suponiendo que el guardián del problema del prisionero no conoce nada sobre el estego-algoritmo. Por tanto, la seguridad se basa en la oscuridad. Este enfoque para conseguir la seguridad pocas veces funciona y es especialmente desastroso en el caso de la criptografía.
En este tipo de esteganografía, el estego-algoritmo está parametrizado por una clave esteganográfica a la que se le llama estego-clave, que define cómo aplicar el algoritmo. Por ejemplo, la estego-clave podría indicar el lugar dentro del portador a partir del cual se comienza a realizar la incorporación del mensaje secreto. El emisor y el receptor deben acordar previamente tanto el estego-algoritmo como la estego-clave.
El proceso de extracción consiste en aplicar el estego-algoritmo y la estego-clave necesarios al estego-mensaje recibido para obtener el mensaje esteganográfico.
En este escenario, el guardián del problema del prisionero puede conocer el estego-algoritmo, pero no conoce la estego-clave, que se emplea en el mismo. En esta estrategia, la seguridad se basa en el principio de Kerckhoffs. Aplicado a la esteganografía, el principio de Kerckhoffs podría incluir, como información revelable, el acceso a la información portadora antes de que se le aplique el estego-algoritmo.
Estos son algunos ejemplos o historias que demuestran que la esteganografía ha estado presente desde tiempos antiguos y que constantemente va evolucionando.
Probablemente uno de los ejemplos más antiguos del uso de que la esteganografía sea el referido por Heródoto en Las historias. En este libro, describe cómo un personaje tomó un cuadernillo de dos hojas o tablillas, rayó bien la cera que las cubría y en la madera misma grabó el mensaje y lo volvió a cubrir con cera regular. Otra historia, en el mismo libro, relata cómo otro personaje había rasurado a navaja la cabeza de su esclavo de mayor confianza, le tatuó el mensaje en el cuero cabelludo, esperó después a que le volviera a crecer el cabello y lo mandó al receptor del mensaje, con instrucciones de que le rasuraran la cabeza.
El científico italiano Giovanni Battista della Porta descubrió cómo esconder un mensaje dentro de un huevo cocido. El método consistía en preparar una tinta mezclando una onza de alumbre y una pinta de vinagre, y luego se escribía en la cáscara. La solución penetra en la cáscara porosa y deja un mensaje en la superficie de la albúmina del huevo duro, que solo se puede leer si se pela el huevo.
El origen del vocablo esteganografía se remonta a principios del siglo XVI. El abad alemán Johannes Trithemius escribió un libro al que tituló Steganographia. En él se trataban temas referentes a la encriptación de mensajes, así como métodos para conjurar a los espíritus. El libro en cuestión se considera hoy en día un libro maldito y es muy apreciado por los esoteristas. Aparte de este título, también publicó Polygraphiae Libri Sex, un compendio de seis tomos sobre criptografía que no participaba de los elementos esotéricos de su libro anterior.
Durante la segunda guerra mundial, se usaron los microfilmes, en los puntos de las íes o en los signos de puntuación, para enviar mensajes. Los prisioneros usaban i, j, t y f para ocultar mensajes en código morse. Pero uno de los sistemas más ingeniosos se conoce con el nombre de Null Cipher. Consiste en enviar un mensaje, lo más común posible, y elegir cierta parte de él para ocultar el mensaje real. Un ejemplo es el texto siguiente:
Apparently neutral's protest is thoroughly discounted and ignored. Isman hard hit. Blockade issue affects pretext for embargo on by products, ejecting suets and vegetable oils. (Al parecer la protesta neutral es completamente descontada e ignorada. Isman afectados. Problema de bloqueo afecta pretexto de embargo sobre los productos, consigue expulsar sebo y aceites vegetales)
Si tomamos la segunda letra de cada palabra, aparece el mensaje Pershing sails from NYr June i. ("Pershing zarpa desde Nueva York el 1 de junio.")
No está claro desde qué época se comenzaron a utilizar, pero sin duda se han usado a lo largo de la historia y hasta la actualidad. Las más conocidas se pueden clasificar en dos categorías:
Esteganografía “clásica”: métodos completamente oscuros.
Esteganografía moderna: uso de canales digitales:
Existen numerosos métodos y algoritmos utilizados para ocultar la información dentro de archivos multimedia: imágenes, audio y vídeo. A continuación se indican algunos de los más usados.
En este caso la información se oculta dentro de una imagen digital empleando marcas de agua que incluyen información, como el derecho de autor, la propiedad o licencias. El objetivo es diferente de la esteganografía tradicional (básicamente comunicación encubierta), ya que es añadir un atributo a la imagen que actúa como cubierta. De este modo se amplía la cantidad de información presentada.
Esta técnica oculta datos basados en funciones matemáticas que se utilizan a menudo en algoritmos de la compresión de datos. La idea de este método es ocultar el mensaje en los bits de datos menos importantes.
Este es el método moderno más común y popular usado para esteganografía, también es uno de los llamados métodos de sustitución. Consiste en hacer uso del bit menos significativo de los píxeles de una imagen y alterarlo. La misma técnica puede aplicarse a vídeo y audio, aunque no es lo más común. Hecho así, la distorsión de la imagen en general se mantiene al mínimo (la perceptibilidad es prácticamente nula), mientras que el mensaje es esparcido a lo largo de sus píxeles. Esta técnica funciona mejor cuando el archivo de imagen es grande, posee fuertes variaciones de color ("imagen ruidosa") y también aventaja cuanto mayor sea la profundidad de color. Asimismo esta técnica puede utilizarse eficazmente en imágenes a escala de gris, pero no es apropiada para aquellas en color de 8 bit paletizadas (misma estructura que las de escalas de gris, pero con paleta en color). En general, los mejores resultados se obtienen en imágenes con formato de color RGB (tres bytes, componentes de color, por píxel).
Ejemplo:
El valor (1 1 1 1 1 1 1 1) es un número binario de 8 bits. Al bit ubicado más a la derecha se le llama "bit menos significativo" (LSB) porque es el de menor peso, alterándolo cambia en la menor medida posible el valor total del número representado.
Un ejemplo de esteganografía: Ocultamiento de la letra "A". Si se tiene parte de una imagen con píxeles con formato RGB (3 bytes), su representación original podría ser la siguiente (3 píxeles, 9 bytes):
(1 1 0 1 1 0 1 0) (0 1 0 0 1 0 0 1) (0 1 0 0 0 0 1 1)
(0 0 0 1 1 1 1 0) (0 1 0 1 1 0 1 1) (1 1 0 1 1 1 1 1)
(0 0 0 0 1 1 1 0) (0 1 0 0 0 1 1 1) (0 0 0 0 0 1 1 1)
El mensaje a cifrar es ‘A’ cuya representación ASCII es (0 1 0 0 0 0 0 1), entonces los nuevos píxeles alterados serían:
(1 1 0 1 1 0 1 0) (0 1 0 0 1 0 0 1) (0 1 0 0 0 0 1 0)
(0 0 0 1 1 1 1 0) (0 1 0 1 1 0 1 0) (1 1 0 1 1 1 1 0)
(0 0 0 0 1 1 1 0) (0 1 0 0 0 1 1 1) (0 0 0 0 0 1 1 1)
Observar que se ha sustituido el bit del mensaje (letra A, marcados en negritas) en cada uno de los bits menos significativos de color de los 3 píxeles. Fueron necesarios 8 bytes para el cambio, uno por cada bit de la letra A, el noveno byte de color no se utilizó, pero es parte del tercer pixel (su tercer componente de color).
El método del LSB funciona mejor en los archivos de imágenes que tienen una alta resolución y usan gran cantidad de colores. En caso de archivos de audio, favorecen aquellos que tienen muchos y diferentes sonidos que poseen una alta tasa de bits.
Además este método no altera en absoluto el tamaño del archivo portador o cubierta (por eso es "una técnica de sustitución"). Posee la desventaja de que el tamaño del archivo portador debe ser mayor al mensaje a embeber; se necesitan 8 bytes de imagen por cada byte de mensaje a ocultar; es decir, la capacidad máxima de una imagen para almacenar un mensaje oculto es de su 12,5%. Si se pretende emplear una mayor porción de bits de la imagen (por ejemplo, no solo el último, sino los dos últimos), puede comenzar a ser percibible al ojo humano la alteración general provocada.
El uso de esteganografía en los documentos puede funcionar con solo añadir un espacio en blanco y las fichas a los extremos de las líneas de un documento. Este tipo de esteganografía es extremadamente eficaz, ya que el uso de los espacios en blanco y tabs no es visible para el ojo humano, al menos en la mayoría de los editores de texto, y se producen de forma natural en los documentos, por lo que en general es muy difícil que levante sospechas.
El método más utilizado es el LSB, puesto que para un computador un archivo de imagen es simplemente un archivo que muestra diferentes colores e intensidades de luz en diferentes áreas (píxeles). El formato de imagen más apropiado para ocultar información es el BMP (color de 24 bits), debido a que es el de mayor proporción (imagen no comprimida) y normalmente es de la más alta calidad. Eventualmente se prefiere optar por formatos BMP de 8 bits o bien otros tales como el GIF, por ser de menor tamaño. Se debe tener en cuenta que el transporte de imágenes grandes por Internet puede despertar sospechas.
Cuando una imagen es de alta calidad y resolución, es más fácil y eficiente ocultar y enmascarar la información dentro de ella.
La desventaja del método LSB es que es el más conocido y popular, por tanto el más estudiado. Deja marcas similares a ruido blanco en el portador (imagen contenedora), lo cual la convierte en altamente detectable o vulnerable a ataques de estegoanálisis, para evitarlo se recurre a dispersar el mensaje, en general usando secuencias aleatorias.
Es importante notar que si se oculta información dentro de un archivo de imagen y este es convertido a otro formato, lo más probable es que la información oculta dentro sea dañada y, consecuentemente, resulte irrecuperable.
Cuando se oculta información dentro de archivos de audio, por lo general la técnica usada es low bit encoding (baja bit de codificación), que es similar a la LSB que suele emplearse en las imágenes. El problema con el low bit encoding es que en general es perceptible para el oído humano, por lo que es más bien un método arriesgado que alguien lo use si están tratando de ocultar información dentro de un archivo de audio.
Spread Spectrum también sirve para ocultar información dentro de un archivo de audio. Funciona mediante la adición de ruidos al azar a la señal de que la información se oculta dentro de una compañía aérea y la propagación en todo el espectro de frecuencias.
Otro método es Echo data hiding, que usa los ecos en archivos de sonido con el fin de tratar de ocultar la información. Simplemente añadiendo extra de sonido a un eco dentro de un archivo de audio, la información puede ser ocultada. Lo que este método consigue mejor que otros es que puede mejorar realmente el sonido del audio dentro de un archivo de audio.
En vídeo, suele utilizarse el método DCT (Discrete Cosine Transform). DCT funciona cambiando ligeramente cada una de las imágenes en el vídeo, solo de manera que no sea perceptible por el ojo humano. Para ser más precisos acerca de cómo funciona DCT, DCT altera los valores de ciertas partes de las imágenes, por lo general las redondea. Por ejemplo, si parte de una imagen tiene un valor de 6,667, lo aproxima hasta 7.
Esteganografía en vídeo es similar a la aplicada en las imágenes, además de que la información está oculta en cada fotograma de vídeo. Cuando solo una pequeña cantidad de información que está oculta dentro del código fuente por lo general no es perceptible a todos. Sin embargo, cuanta mayor información se oculte, más perceptible será.
Uno de los métodos más fáciles de implementar es el de inyección o agregado de bytes al final del archivo. Esta técnica consiste, esencialmente, en agregar o adosar al final de un archivo, de cualquier tipo, otro archivo que será el contenedor del "mensaje a ocultar", también de cualquier tipo. Esta metodología es la más versátil, pues permite usar cualquier tipo de archivo como portador (documentos, imágenes, audio, vídeos, ejecutables, etc) y añadir al final del archivo contenedor el "paquete enviado", que es otro archivo, también de cualquier tipo.
Esta es una técnica que no se vale de las limitaciones humanas (vista y oído) para implementar la estrategia esteganográfica, sino que se vale de la forma de funcionamiento de la aplicaciones software que utilizan el portador. No degradan el contenido del portador de ninguna forma, por ejemplo, si es una imagen, permanecerá intacta; ya que el "mensaje" se le inyecta o adosa al final de la misma y la aplicación usada para visualizarla la mostrará normalmente hasta donde ella finalice. Esto es debido que todo tipo de archivo, en su cabecera, entre otros, contiene ciertos bytes fijos (en cantidad y ubicación) usados exclusivamente para indicar el tamaño del archivo. La aplicación que utilice un archivo, de cualquier tipo, siempre lee su cabecera primero, adquiere ese valor como su tamaño (en cantidad de bytes) y seguidamente lee el resto del archivo hasta el final indicado por dicho valor. De modo que si se coloca algo (mensaje) más allá del valor de ese parámetro, no será leído por la aplicación normal, por tanto no detectado, y el archivo portador funcionará normalmente.
Si bien es la técnica más sencilla de implementar, y de uso muy difundido, tiene la gran desventaja que provoca crecimiento del portador, tanto como el tamaño de su mensaje, siendo por tanto una estrategia fácilmente detectable. Un sencillo programa de estegoanálisis lo detecta por la sola lectura de su cabecera y la comprobación del tamaño real de archivo portador; incluso cualquier usuario desconfiado puede muchas veces sospechar del portador por su tamaño ocupado en disco en relación a su contenido. Otra desventaja, aunque muy relativa y eventual, es que el crecimiento del portador podría ser limitante a la hora de trasferirlo por las redes, particularmente por Internet.
Los programas o software que utilizan esta técnica son llamados joiners, básicamente unen dos archivos, el portador y el de mensaje, manteniendo el valor inicial del tamaño en bytes indicado en la cabecera del primero. Esta es una técnica no utilizada si se pretende obtener características de indetectabilidad.
Si no se requiere reunir requisitos de indetectabilidad, es uno de los métodos preferidos por su sencillez, flexibilidad y escasas limitaciones. Prácticamente cualquier tipo de portador es admitido, con o sin compresión, incluso módulos ejecutables. En algunos casos provoca corrupción del portador, lo cual no es gran problema: practicada la técnica e inyectado el mensaje se prueba el portador con su aplicación correspondiente, si se ha degradado y/o no funciona bien, sencillamente toma otro, del mismo u otro tipo y se repite la operación.
Una nueva técnica esteganográfica implica el inyectar retardos (conocidos por su traducción al inglés como "delays") imperceptibles a los paquetes enviados sobre la red desde el teclado. Los retardos en el tecleo de los comandos en algunos usos (telnet o software de escritorio remoto) pueden significar un retardo en paquetes, y los retardos en los paquetes se pueden utilizar para codificar datos.
Lo que la esteganografía esencialmente hace es explotar las limitaciones de la percepción humana (excepto en el método de inyección), ya que los sentidos humanos (vista y oído) tienen límites para percibir información extraña intercalada en su contenido; pero existen aplicaciones software disponibles que pueden hacer ese trabajo de detección, por diversas técnicas analíticas, al estudio y aplicación de ellas corresponde lo denominado estegoanálisis.
Mientras que con la esteganografía se intenta estudiar e implementar métodos para enviar mensajes encubiertos en portadores de apariencia inocua o normal, con el estegoanálisis se estudian las formas de detectar la presencia de mensajes ocultos en potenciales portadores (no necesariamente de extraerlos).
Debido a que la esteganografía es invasiva, es decir, deja huellas en el medio de transporte utilizado, las técnicas de estegoanálisis intentan detectar estos cambios, usando incluso complejos mecanismos estadísticos. Las técnicas de estegoanálisis, normalmente, hasta el momento, solo llegan a brindar nivel de probabilidad de existencia de un mensaje encubierto en un portador.
Escribe un comentario o lo que quieras sobre Esteganografía (directo, no tienes que registrarte)
Comentarios
(de más nuevos a más antiguos)