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.