Esteganografía - CYBSEC Security Systems

Anuncio
Investigación en Informática
Trabajo Práctico
“Esteganografía”
Universidad John F. Kennedy
Año: 1998
Integrantes:
Ardita, Julio
Caratti, Mariana
Do Cabo, Roberto
Giusto, Mariel
Isar, Guido
Pagouapé, Matías
Schellhase, Livio
Stavrinakis, Florencia
Leg. 145.342
Leg. 145.311
Leg. 147.404
Leg. 147.296
Leg. 42.818
Leg. 147.379
Leg. 145.844
Leg. 146.453
Buenos Aires - ARGENTINA
Investigación en Informática
ESTEGANOGRAFIA
Indice
1. Definición
2. Métodos de encriptación
3. Historia
4. Esteganografía con gráficos
5. Esteganografía con sonido
6. Aplicaciones actuales
7. Conclusión y visión de futuro
Anexos
•
Exploring Steganography: Seeing the Unseen – Revista “ Computer” del IEEE,
edición Febrero de 1998.
•
Utilización del programa STEGANOS para realizar el proceso de la
esteganografía con gráficos.
•
Transparencias de la presentación
1. Definición
Definición:
La palabra esteganografía literalmente significa escritura encubierta. Esto
incluye una vasta colección de métodos para comunicaciones secretas que
ocultan la existencia de un mensaje.
Esteganografía es el arte o ciencia de comunicar de manera oculta un
mensaje.
La esteganografía en contraste con la criptografía, donde el enemigo
permite ser detectado, interceptado y modificado sus mensajes si se logra violar el
sistema de seguridad de la encriptación de dicho mensaje en lugar de solo tratar
de escribirlo de manera que no sea fácilmente decifrable.
El acierto de la esteganografía radica justamente en ocultar los mensajes
dentro otros mensajes dentro de otros mensajes de manera que no exista
enemigo que detecte que hay un segundo mensaje y que se halla oculto.
En la siguiente tabla están definidos los métodos de “ seguridad” como
“protección” y donde inteligencia es definida como método de “ recuperación” .
signal security
• Esteganografía ( Tintas Invisibles,
Codigos Abiertos)
• Criptografía (códigos y ciphers)
• Traffic-security : (radio silence, call-sign
changes, dummy messages)
signal intelligence
• interceptar y direccion-hallamiento
• criptoanalisis
• traffic análisis
Introducción a la criptografía
La gente usualmente se refiere a diferentes cosas cuando habla de la
criptografía.
Hasta los niños juegan con lenguajes secretos. Pero esto, no esto no tiene
nada que ver con la real criptografía. La cual debe ser fuerte para poder realmente
cumplir su función de ocultar información, puede ser usado para proteger
información. Hablamos de información en organizaciones criminales,
corporaciones multinacionales , y el mismo gobierno. Aunque la criptografía
“fuerte” es usada por instituciones militares. Igualmente, es una de las primeras
herramientas para mantener la privacidad y confidencialidad.
La criptografía es una de las primeras herramientas para la privacia,
confianza, control de acceso, y otros campos.
Es tiempo de desmistificar a la criptografía (ya que se la toma como para
uso militar únicamente, y que puede proveer para nuestra sociedad moderna
herramientas necesarias para dar privacidad en un mundo donde todo se mezcla
(la información) esta a la vista y acceso de todos.
Terminología básica
Suponiendo que uno quiere enviar un mensaje a un receptor, y quiere estar
seguro que solo esa persona sea la que lea el mensaje y que no “ demás”
curiosos, que se podría hacer ?.
En la terminología de la criptografía el mensaje es llamado plaintext o
cleartext. La codificación del contenido del mensaje de manera que la información
este oculta a los “ demás” es la criptografía. El mensaje encriptado es llamado
ciphertext.
El proceso de convertir al plaintext del ciphertext es decriptación.
La criptografía y la decriptación utilizan las claves y la así la decriptación
solo puede ser realizada si se conoce dicha clave.
Esteganografía más criptografía
Cuando solo se encripta, cuando la encriptación esta sola no se pueden
mantener sus secretos en secreto. La esteganografía encripta y oculta archivos
dentro de gráficos, sonidos, textos y hasta en archivos html.
Steganos es un programa que permite ocultar y también encriptar archivos.
Cuando se usa solamente la criptografía, el dato puede ser ilegible, pero es
obvio que allí existe un dato, allí se encuentra un secreto.
Si el dato es solo oculto y no encriptado, uno puede buscar todos los
archivos sospechosos de tener información oculta y percatase de que existe esa
información que queremos ocultar.
El programa Steganos combina dos métodos poderosos : la criptografía y
la esteganografía.
La forma en que actúan juntos es que la criptografía hace el dato ilegible a
quien no conozca la clave y la esteganografía, oculta además la existencia de
esos datos.
Así los archivos siendo ocultados y encriptados hacen que lo oculto no sea
ni leído ni detectado fácilmente.
2. Métodos de encriptación
El método de encriptación y desencriptación se denomina código. Hay
algunos algoritmos modernos que utilizan claves para controlar la encriptación y la
desencriptación.
Algoritmos que utilizan claves para la encriptación.
Algoritmos simétricos.
Estos algoritmos son también llamados Algoritmos de clave secreta y se
caracterizan por la utilización de la misma clave para la encriptación y para la
desencriptación, o bien la clave para la desencriptación es derivada fácilmente de
la clave de encriptación.
Generalmente son de ejecución más rápida que los asimétricos. En la
práctica se utilizan conjuntamente ambos; los algoritmos de clave pública se
utilizan para encriptar una clave de encriptación generada aleatoriamente y la
clave aleatoria es utilizada para encriptar el mensaje utilizando para ello un
algoritmo simétrico.
Tipos de algoritmos simétricos.
• DES: es un estándar utilizado por el gobierno de los Estados Unidos y otros
Gobiernos del mundo entero. Se utiliza especialmente en la industria financiera.
Es un bloque de código con un tamaño de 64 bits, que utiliza claves de 56 bits.
Esta construcción puede ser comunicada mediante computadoras modernas o
hardware especial.
DES es lo suficientemente poderoso como para preservarse de hackers ,
pero puede ser interrumpido con hardware especial del gobierno, organizaciones
criminales o corporaciones mayores.
Una variante de DES es Triple-DES ó 3DES, se basa en la utilización de
DES tres veces: normalmente en una secuencia de encriptación-desencriptaciónencriptación, con tres claves sin conexión.
Algunas implementaciones de DES pueden ser halladas en libdes, alodes,
SSLeay, etc.
• Blowfish: es un algoritmo desarrollado por Bruce Schenier. Consta de un
bloque de código con un tamaño de 64 bits y claves de longitud variable,
superiores a los 448 bits. Es utilizado en una gran cantidad de paquetes de
software incluyendo Nautilus y PGPfone.
• IDEA (International Data Encryptacion Algorithm): es un algoritmo desarrollado
en ETH Zurich, en Suiza. Utiliza una clave de 128 bits, es considerado un
algoritmo seguro y es uno de los mejores de conocimiento público. Está patentado
en Estados Unidos y varios países de Europa.
En la actualidad hay varias implementaciones de IDEA disponibles:
SSLeay, PGP código fuente y Ssh código fuente, idea86, etc.
• RC4: es un código diseñado por RSA Data Security Lt. Era utilizado para el
comercio secreto, hasta que alguien diseñó un código para un algoritmo en Usenet
News, declarando que sería equivalente a RC4.
El algoritmo es muy veloz, y es utilizado en determinadas aplicaciones,
debe tenerse en cuenta que no puede utilizarse la misma clave para encriptar dos
datos distintos.
• SAFER: es un algoritmo desarrollado por J. L. Massey, quién fue también uno
de los desarrolladores de IDEA. Este algoritmo permite una encriptación segura
con una implementación rápida de software hasta en procesadores de 8 bits.
Hay dos implementaciones disponibles, una de ellas, de claves de 64 bits, y
la otra de claves de 128 bits.
• Enigma: fue el código utilizado por los alemanes en la segunda guerra
mundial.
• Vigenere: es comúnmente mencionado en varios libros, los programas para
este código están disponibles gratuitamente.
Algoritmos asimétricos.
Son también llamados códigos asimétricos, utilizan claves diferentes para
la encriptación y desencriptación, no permitiendo además, derivar la clave para la
desencriptación de la clave utilizada para la encriptación,
Son también llamados Algoritmos de clave pública, ya que permiten
encriptar claves públicas.
La clave de encriptación se denomina clave pública y la clave de
desencriptación: clave privada o secreta.
Los algoritmos de encriptación modernos son ejecutados por computadoras
o hardware especial.
Hay disponible gran cantidad de paquetes de software.
Tipos de algoritmos asimétricos.
• RSA (Rivest-Shamir-Adelman): es el algoritmo de clase pública que se utiliza
con mayor frecuencia, y es considerado el más importante dentro de los
algoritmos de clave pública.
Puede ser utilizado para la encriptación y desencriptación. Se considera un
algoritmo seguro ya que utiliza claves largas, la seguridad se basa en la dificultad
para factorear enteros largos.
Entre las implementaciones disponibles se encuentran:
RSAEURO, SSLeay, PGP código fuente, Ssh código fuente, etc.
RSAREF,
• Diffie-Hellman: el un algoritmos de clave pública utilizado generalmente para
realizar intercambios de claves. Es considerado seguro ya que utiliza claves largas
y generadores propios.
Dentro de las implementaciones disponibles se pueden hallar: RSAREF,
RSAURO, SSLeay, alodes, etc.
• Criptosistemas de clave pública de curva elíptica: es una especialidad que
está surgiendo en la actualidad. Son de ejecución lenta, pero pueden ser
ejecutados por computadoras modernas. Son considerados suficientemente
seguros, pero no fueron examinados de las mismas maneras que por ejemplo el
algoritmo RSA.
Una de las implementaciones disponible es el paquete elíptico.
• DSS (Digital Signature Standar): es un mecanismo que utiliza una sola firma
aprobado por el gobierno de los Estados Unidos. Esta aprobación no fue hecha
pública y mucha gente puede encontrar problemas potenciales con este algoritmo,
como por ejemplo: datos escondidos en la firma pueden ser perdidos y revelar la
clave secreta si se pasa a un signo dos mensajes diferentes utilizando el mismo
número aleatorio.
• LUC: es un sistema de encriptación de clave pública. Utiliza funciones Lucas
en vez de exponenciación. Su inventor fue Peter Smith, quién implementó
además, junto con la función Lucas, otros cuatro algoritmos: LUCDIF, es un
método de negociación de claves como el Diffie-Hellman; LUCELG PK; LUCELG
DS Y LUCDSA, que equivale al US Digital Signature Standar.
Modo de bloque de código.
Muchos de los códigos comúnmente utilizados (IDEA, DES, Blowfish), son
bloques de código. Esto significa que toman un bloque de datos de tamaño fijo,
generalmente 64 bits , y lo transforman en otro bloque de 64 bits utilizando una
función seleccionada por la clave. El código básicamente define un uno-a-uno
proyectando desde enteros de 64 bits hacia otra permutación de enteros de 64
bits.
Si el mismo bloque es encriptado dos veces con la misma clave, los
bloques de texto codificados resultantes son los mismos. Este método de
encriptación es llamado Electronic Code Book o ECB.
En aplicaciones prácticas, permite construir bloques idénticos de texto puro
encriptado para diferentes bloques de texto codificado.
Hay dos métodos utilizados para esto:
• Modo CFB: un bloque de texto codificado es obtenido encriptando el bloque de
texto codificado previo y haciendo un XOR con el valor resultante con el texto
puro.
• Modo CBC: un bloque de texto codificado es obtenido primero haciendo un
XOR con el bloque de texto puro y encriptando el valor resultante.
El bloque de texto codificado previo es generalmente almacenado en un Vector
de Inicialización (IV). El vector inicializado en 0 es utilizado comúnmente por el
primer bloque, aunque otros vectores estén también en uso.
Funciones criptográficas hash.
Las funciones hash criptográficas son utilizadas para computar el mensaje
cuando se está construyendo una firma digital. Una función hash comprime los bits
del mensaje a un valor hash de tamaño fijado, de manera que distribuye los
posibles mensajes uniformemente entre los posibles valores hash.
Las funciones criptográficas hash generalmente producen valores hash de 128 o
más bits.
Tipos de funciones criptográficas hash.
• MD5: Message Digest Algorithm 5, es un algoritmo hash considerado bastante
seguro, fue desarrollado en RSA Data Security, Inc. Pueden ser utilizadas
cadenas de bytes de longitudes arbitrarias dentro de valores de 128 bits.
• MD2, MD4: también fueron creados por RSA Data Security, poseen
imperfecciones y no son recomendados.
• SHA: Secure Hash Algorithm y también SHS: Secure Hash Standard, son
algoritmos criptográficos hash publicados por el gobierno de los Estados Unidos.
Producen un valor hash de 160 bits a partir de una cadena de longitud arbitraria.
Es un algoritmo nuevo, considerado eficiente.
• Tiger: es un algoritmo nuevo desarrollado por Anderson y Biham.
• RIPEMD-160: es un algoritmo hash designado para reemplazar al MD4 y al
MD5.
Firmas digitales.
Algunos algoritmos de clave pública pueden ser utilizados para generar
firmas digitales.
Una firma digital es un bloque de datos que fue creado utilizando alguna
clave secreta y además se utiliza una clave pública para verificar que la firma haya
sido generada usando la clave privada correspondiente. El algoritmo utilizado para
generar la firma hace que sin conocer la clave secreta sea imposible crear una
firma que sea válida.
Las firmas digitales son utilizadas para verificar que un mensaje realmente
venga desde el sendero declarado. También pueden utilizarse para certificar que
una clave pública pertenece a una determinada persona.
Para verificar una firma, el receptor primero determina si la clave pertenece
a la persona que debe pertenecer y luego desencripta la firma utilizando la clave
pública de la persona. Si la desencriptación de la firma es correcta y la
información es igual al mensaje, la firma es aceptada como válida.
El algoritmo más utilizado es el RSA.
3. Historia
La palabra esteganografía proviene del griego:
! Steganos: oculto, secreto
! Graphy: texto o dibujo.
A través de la historia, múltiples métodos y variantes han sido usados para
ocultar información.
Uno de los primeros documentos describe la esteganografía desde la
historia de Herodoto en la Grecia antigua, donde los textos eran escritos en tablas
cubiertas de cera.
En una historia, se buscaba notificar a Esparta que Xerxes intentaban
invadir Grecia. Para evitar la captura, sacaban la cera de la tableta, escribían el
mensaje sobre la madera y volvían a cubrirla con cera. De esta forma pasaban las
inspecciones sin levantar sospechas.
Otro método ingenioso era afeitar la cabeza de los mensajeros, tatuarle el
mensaje o imagen, esperar que le crezca el pelo y recién ahí iban con el mensaje,
donde eran afeitados nuevamente para poder leerlo.
Otra forma era escribir con tintas invisibles (leche, jugo de frutas, vinagre),
donde se lo hacia comúnmente. Para leerlo se lo exponía a calor, y donde había
algo escrito, oscurecía.
Otra forma inocente de enviar mensajes era escribiendo un texto y luego,
tomando la primera letra de cada palabra, se podía leer el mensaje que en
realidad se quería transmitir.
Con el siguiente mensaje:
News Eight Weather:
Tonight increasing snow.
Unexpected precipitation smother eastern towns.
Be
extremely cautious and use snowtires especially
heading east. The highway is no knowingly slippery.
Highway evacuation is suspected.
Police report
emergency
situations
in
downtown
ending
near
Tuesday.
Lo que en realidad se quería decir:
Newt is upset because he thinks he is
President.
Durante la Segunda Guerra Mundial, comenzó a utilizarse el micropunto.
Un mensaje secreto era fotográficamente reducido a la medida de un punto y
pegado como el de la letra i en un papel conteniendo un mensaje escrito. El hecho
de la transmisión de un mensaje secreto fue efectivamente ocultado.
Un famoso episodio esteganográfico ocurrió cuando, un fotógrafo de varios
miembros del equipo de Servicios Secretos de Estados Unidos tomó una
fotografía conteniendo un mensaje esteganográfico: las posiciones de las manos
de los miembros del equipo mostraban la palabra “ SNOWJOB” en lenguaje de
señas. ( Snow job significa encubrir o ocultar algo para prevenir que se vea la
verdad).
4. Esteganografía con gráficos
La esteganografía volvió a tener un gran empuje a partir de 1990 con la
llegada de las computadoras. La tecnología digital nos brinda nuevas formas de
aplicar las técnicas esteganográficas. Uno de las mas utilizadas es esconder
información en imágenes digitales.
Discutiremos los actuales formatos gráficos de las imágenes y como
esconder información dentro de ellas.
Archivos de imágenes
Para la computadora, una imagen es una matriz de números que
representan intensidades de colores en varios puntos (pixels). Una imagen típica
es de 640 x 480 pixels y 256 colores (o 8 bits por pixel). El tamaño de esta imagen
es de unos 300 Kb.
Las imágenes digitales normalmente se almacenan en una calidad de 24
bits (16.000.000 de colores). Una imagen de 24 bits es lo ideal para esconder
información, pero estas imágenes pueden llegar a ser bastante grande en tamaño.
Las imágenes de 24 bits utilizan 3 bytes por cada pixel para representar un
valor de color. Estos bytes podrían ser representados en decimal, los valores que
podrían tomar cada uno de estos bytes va desde 0 a 255. Cada uno de estos
bytes representa un color: rojo, verde y azul. Por ejemplo un pixel en blanco,
tendría 255 de rojo, 255 de verde y 255 de azul.
Como habíamos comentado estas imágenes de 24 bits ocupan mucho
tamaño, pero existe algo que nos puede ayudar: compresión de archivos.
Compresión de archivos
Hay dos tipos de compresión de archivos. El que guarda la estructura
original del archivo (por ejemplo GIF) y el que ahorra espacio, pero no mantiene la
integridad del archivo original (por ejemplo JPEG).
Para trabajar con esteganografía es necesario que se utilice el primer tipo,
el que guarda la estructura original del archivo.
Almacenando información
Almacenar la información que va a ser escondida en una imagen requiere
de dos archivos. El primero es la imagen “ inocente” que será nuestra cubierta y
alojará la información que queremos esconder, este archivo se llama: imagen de
cubierta. El segundo archivo es el mensaje (la información a esconder). Un
mensaje puede ser texto plano, un texto encriptado, otra imagen o cualquier cosa
que pueda ser llevado a bits, hoy en día, TODO.
Lo estándar en esteganografía es utilizar el formato BMP o GIF, tratando de
no utilizar el formato JPEG.
Cuando se tiene que esconder información dentro de una imagen, el primer
paso es seleccionar la imagen en donde esconder la información. Se debe elegir
una imagen que no posea grandes áreas de colores sólidos.
Una vez que la imagen esta seleccionada hay que pasar al paso de
seleccionar técnica se va a utilizar para esconder la información.
Formas de esteganografía en imágenes
La información puede ser escondida de diferentes formas en imágenes.
Para esconder la información el programa puede codificar cada bit de la
información a lo largo de la imagen, robando un bit de cada pixel de la imagen o
selectivamente colocar el mensaje en áreas “ ruidosas” de la imagen que no atraen
la atención (por ejemplo el cielo).
El método clásico es el llamado: Inserción del ultimo bit significante (LSB).
Este método es el más común para lograr almacenar información en una
imagen, pero desafortunadamente es el mas vulnerable a la manipulación de la
imagen. SI por ejemplo tenemos un archivo .GIF con nuestra información
escondida y lo convertirmos a .JPG, el archivo gráfico seguirá igual, pero toda
nuestra información escondida se perderá para siempre.
Para esconder información en una imagen de 24 bits utilizando el método
de inserción del ultimo bit significante, se puede almacenar 3 bits en cada pixel.
Una imagen de alta resolución de 1024 x 768 en 24 bits en tamaño real
ocupa: 2.359.296 Kb, si utilizamos el ultimo bit de cada byte de la imagen de
cubierta para almacenar nuestra información, nos quedan unos 294.912 Kb para
almacenar información. Si a su vez esta información esta compactada, por
ejemplo podríamos esconder un documento de word de unas 300 hojas sin que
haya ninguna variación en la imagen para el ojo humano.
Un ejemplo
Si por ejemplo en una imagen poseemos los siguientes valores:
00100111
11101001
11001000
3 bytes = 1 pixel
00100111
11001000
11101001
3 bytes = 1 pixel
11001000
00100111
11101001
3 bytes = 1 pixel
Supongamos que queremos almacenar la letra A, cuyo código ASCII es 65 y su
valor binario es: 1 0 0 0 0 0 1 1.
Si colocamos estos valores en el ultimo pixel de cada byte quedará de la siguiente
forma:
00100111
11101000
11001000
3 bytes = 1 pixel
00100110
11001000
11101000
3 bytes = 1 pixel
11001001
00100111
11101001
3 bytes = 1 pixel
Los valores subrayados son los que han sido cambiados, el color de la
imagen casi no vario en absolutamente nada. Para el ojo humano es imposible
distinguir esta diferencia de colores.
Las imágenes de 8 bits (256 colores) no se utilizan mucho en el método de
inserción del ultimo bit significante.
El software que permite cumplir esta función es el Steganos y el S-Tools.
5. Esteganografía con sonido
Digitalizando el sonido
Antes de revelar como se puede ocultar información en archivos de sonido
reveamos como una señal acústica es digitalizada.
Previo a la digitalización el sonido debe ser transformado de su forma
original, vibraciones que se propagan a través del aire, a un formato manejable
como lo es una corriente eléctrica. Este proceso es realizado por los micrófonos.
La digitalización esta compuesta por 3 procesos:
1. Muestreo: dada una señal analógica se procede a tomar muestras de la misma
con una determinada frecuencia. Cuanto mayor sea esta frecuencia, mayor será
la fidelidad.
Señal
Analógica
Muestras
2. Cuantificación: una vez obtenida la muestra se estudia su nivel, y se le asigna el
valor más aproximado que se le encuentre en un abanico de valores previamente
establecido. Cuanto más niveles o valores tenga este abanico, o sea, cuanto más
bits destinemos a la cuantificación, mejor será la calidad del sonido. Por ejemplo
una cuantificación de 16 bits ofrecerá un tamaño de muestreo de 65536 valores
(216).
3. Conversión a binario: ya con el valor de la muestra obtenido se lo transforma
en números binarios manejables por una computadora. Ej: 122 " 1111010.
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. Esto
se debe a las alteraciones que sufre en el proceso de digitalización.
Como ejemplo de estos procesos podemos citar la digitalización que se
realiza en las líneas telefónicas (8.000 Hz de frecuencia de muestreo y tamaño de
8 bits) y la grabación de CD musicales (44100 Hz de frecuencia de muestreo y
tamaño de 16 bits, todo esto duplicado debido a la sonorización en stéreo).
El formato más comúnmente utilizado para el almacenamiento de sonido
en computación es el WAVE (.WAV).
Este tipo de archivo de sonido consta de 2 partes:
1.
Encabezado: contiene la información de cómo está digitalizado el
sonido (cantidad de canales, frecuencia de muestreo y tamaño de
muestreo).
2.
Sector de datos: aquí se encuentran en forma de bits secuenciales las
muestras.
Cuando una computadora ejecuta un archivo WAV primero lee el
encabezado para determinar el formato de los bits y así poder leerlos
correctamente. Una vez leído el encabezado se procede a la lectura de los bits
del sector de datos para reconstruir el sonido almacenado. El sistema de sonido
de la computadora realiza la conversión digital/analógica necesaria para poder
escuchar la señal acústica por los altavoces.
Ocultando información en archivos de sonido
Los muestras de sonidos son, por su naturaleza, estimaciones inexactas de
un valor correcto de un sonido en un momento particular en el tiempo. Estas leves
incorrecciones son aprovechadas para ocultar información.
Todo lo que las aplicaciones de esteganografía hacen es distribuir el patrón
de bits correspondiente al archivo que deseamos ocultar a través de los bits
menos significantes (least significant bit " LSB) del archivo de sonido.
El LSB es aquél bit de la muestra, de todos los que ella posee, que menos
información brinda, o sea, el último. Si a un número binario 1111 (15) le
modificamos el 1º bit obtendremos 0111 (7), pero si le modificamos el último
obtendremos 1110 (14); lo que implica un cambio en el valor total de número
mucho menor al del primer ejemplo, que ayuda que pase desapercibido.
Veamos ahora como se puede aplicar esto en la práctica con un conjunto
de muestras de sonido.
Por ejemplo, supongamos que un archivo de sonido tiene los siguientes
ocho bytes de información en alguna parte de mismo:
132
134
137
141
121
101
74
38
En binario, esto es:
10000100 10000110 10001001 10001101
00100110
01111001
01100101
01001010
(el bit menos significante se encuentra subrayado)
Supongamos que queremos ocultar el byte binario 11010101 (213) dentro
de esta secuencia. Simplemente reemplazamos el bit menos significante de cada
byte de muestra por el bit correspondiente del byte que estamos tratando de
ocultar. Entonces la secuencia de arriba cambiará a:
133
135
136
141
120
101
74
39
En binario, esto es:
10000101 10000111 10001000 10001101 01111000 01100101 01001010
00100111
Como resultado hemos encubierto 8 bits de información en 8 muestras de
sonido.
Como se puede ver claramente, los valores de las muestras de ejemplo han
cambiado, a lo sumo, en un solo valor. Si aplicamos las leyes de probabilidad,
llegaremos a la conclusión de que la cantidad de muestras modificadas tiende al
50 % ya que la probabilidad de que el LSB de la muestra coincida con el que
queremos insertar es de 0,5 (2 posibilidades: 1 o 0) lo cual ayuda al ocultamiento.
Todas estas pequeñas reformas son inaudibles para el oído humano. Esta
es la teoría con la que trabajan las herramientas de esteganografía.
Software para esteganografía con archivos de sonido
S-Tool 4.0 (para Windows 95) Freeware.
FTP-Server:
ftp://idea.sec.dsi.unimi.it/pub/security/crypt/code/
ftp://ftp.funet.fi/pub/crypt/mirrors/idea.sec.dsi.unimi.it/code/
6. Aplicaciones actuales
Para usar esteganografía hoy se necesita encontrar un medio de
comunicación que use muchos bits, donde cambiando algunos de ellos, no se
pueda alterar obviamente el mensaje.
Un ejemplo claro de la utilización de esteganografía en la actualidad es el
de firma digital. Esta nació como una oferta tecnológica para acercar la operación
social usual de la firma ológrafa (manuscrita) al marco de lo que se ha dado en
llamar el ciberespacio o el trabajo en redes. Las transacciones comerciales y el
hecho de tener que interactuar masiva y habitualmente por intermedio de redes de
computadoras le dió lugar al concepto.
El fin de la firma digital es obviamente el mismo de la firma ológrafa: dar
asentimiento y compromiso con el documento firmado.
A diferencia de la firma manuscrita, que es un trazo sobre un papel, la firma
digital consiste en el agregado de un apéndice al texto original, siendo este
apéndice, en definitiva, la firma digital. Considerando que este texto original, al
estar soportado en un medio magnético, es una cadena binaria perteneciente al
alfabeto (0,1), resulta factible aplicarle funciones o algoritmos matemáticos. Este
apéndice o firma digital es el resultado de un cálculo que se realiza sobre la
cadena binaria del texto original. En este cálculo están involucrados el mensaje
mismo y una clave privada la cual es conocida sólo por el emisor o autor del
mensaje, lo que da como resultado que para cada mensaje se obtenga una firma
distinta, es decir, a diferencia de una firma tradicional, la firma digital cambia cada
vez con cada mensaje.
El concepto de firma digital está estrictamente relacionado con el de clave
pública.
Esta última fue introducida por Whitfield y Hellman a fin de solucionar la
distribución de claves secretas de los sistemas tradicionales, mediante un canal
inseguro.
Este sistema utiliza dos claves diferentes: una para cifrar y otra para
descifrar. Una es la clave pública, que efectivamente se pública y puede ser
conocida por cualquier persona otra, denominada clave privada, se mantiene en
absoluto secreto ya que no existe motivo para que nadie mas que el autor necesite
conocerla y aquí es donde reside la seguridad del sistema. Ambas claves son
generadas al mismo tiempo con un algoritmo matemático y guardan una relación
tal entre ellas que algo que es encriptado con la pública, el único camino conocido
que existe para desencriptarlo es poseer la privada. En resumen, la clave privada
es imprescindible para descifrar criptogramas y para firmar digitalmente, mientras
que la clave pública debe usarse para encriptar mensajes dirigidos al propietario
de la clave privada y para verificar su firma.
El problema que presenta la utilización de firma digital radica en la
asociación de la firma, o mecanismo de firma y la persona física que debe firmarlo.
En el caso de la firma manuscrita, esa asociación se cumple
innegablemente salvo que alguien falsifique la firma, para lo que hay pruebas que
lo delatarían. El problema en el mundo binario es la dificultad de darle fortaleza a
esta asociación persona/firma. Por eso es que las aplicaciones actuales de firma
digital están casi completamente destinadas a funcionar dentro de una
organización, donde, en principio, no hay conflictos de intereses porque todos los
firmantes tienen por fin el mismo objetivo de la empresa.
Reconocer las virtudes y defectos del mecanismo de la firma digital
permitirá operar con él en forma segura. En caso contrario será otra herramienta
tecnológica que solo brindará un marco de seguridad ilusorio. Todo depende de
las circunstancias, conciencia e implementación con que se lleve a cabo.
7 - Conclusión y visión de futuro
La esteganografía es la introducción de texto en imágenes. No solo es
imagen, sino que también existe en voz, sonido, archivos binarios y canales de
comunicación.
Se vio que por ejemplo los planes de un proyecto secreto pueden
esconderse mediante un método de esteganografía en un simple casete. Es
probable que dichas alteraciones no sean detectadas por los oídos humanos y
tampoco por la digitalización.
La esteganografía por si misma no asegura el secreto, pero tampoco lo
hace la encriptación. Si estas técnicas se combinan, resultara aun más seguro el
mensaje o secreto que se quiere proteger, ya que si un mensaje encriptado es
interceptado, el interceptor sabe que es un mensaje encriptado, pero con
esteganografía, el interceptor probablemente no sabe que un mensaje oculto
todavía existe.
La esteganografía con imágenes digitales esta creciendo, en uso y en
aplicaciones existentes. Las aplicaciones comerciales de esteganografía como
digital watermarks y digital fingerprinting son las mas usadas en este momento.
La esteganografía es fácil de utilizar, y se encuentra disponible en Internet.
Para el futuro podemos decir que se están investigando métodos para la
detección de un mensaje oculto, y a tratar de robustecer las aplicaciones actuales
para que sobrevivan al ataque y manipulación de imágenes.
Descargar