Ocultando la información: Una introducción a la Esteganograf´ıa
Transcripción
Ocultando la información: Una introducción a la Esteganograf´ıa
Ocultando la información: Una introducción a la Esteganografı́a Carlos Munuera marzo 2015 Seguridad de las comunicaciones Seguridad de las comunicaciones Alicia desea enviar un mensaje privado a Bob Seguridad de las comunicaciones Alicia desea enviar un mensaje privado a Bob → nos vemos en Fondo de Bikini → Seguridad de las comunicaciones Alicia desea enviar un mensaje privado a Bob → nos vemos en Fondo de Bikini → Un tercero, Eva, intenta acceder a la comunicación entre ellos Seguridad de las comunicaciones La Seguridad de las Comunicaciones se ocupa de prevenir que alguna entidad no autorizada intercepte una comunicación ó pueda acceder o modificar la información que contiene. Incluye la emisión segura, la transmisión segura, la seguridad del flujo del tráfico y la seguridad fı́sica de los equipos. I Rápido crecimiento I Tremendo interés industrial y social I Fundamental para el comercio electrónico. Criptografı́a La receta ’tradicional’ para mantener la privacidad de las comunicaciones consiste en utilizar la criptografı́a. Criptografı́a La receta ’tradicional’ para mantener la privacidad de las comunicaciones consiste en utilizar la criptografı́a. Por ejemplo, usando AES con 128 bits, → GdN8Pqa8pdzxMqlOLoID99nPfAGAfM1lTxilf → Un invonveniente obvio de este método es que se oculta el significado del mensaje pero no el mensaje mismo (puede conocerse la existencia de mensajes secretos, su emisor y receptor, su frecuencia, etc.) La criptografı́a protege los mensajes, pero no a los participantes en la comunicación ¿Qué es la esteganografı́a? La esteganografı́a es la ciencia de transmitir mensajes secretos de manera que sólo emisor y receptor conozcan la existencia de la comunicación. esteganografı́a = steganos + graphein = escritura encubierta Su nombre describe el funcionamiento de la esteganografı́a: el mensaje que se desea proteger se esconde en un objeto aparentemente inocuo (su cubierta). Esteganografı́a en la historia I El ejemplo tı́pico de esteganografı́a es la tinta invisible. I Los antiguos griegos escribian mensajes secretos en la cabeza rasurada de un esclavo. I Otro ejemplo tı́pico es el acróstico: Esteganografı́a en la historia I El ejemplo tı́pico de esteganografı́a es la tinta invisible. I Los antiguos griegos escribian mensajes secretos en la cabeza rasurada de un esclavo. I Otro ejemplo tı́pico es el acróstico: El silencio escuda y suele encubrir Las faltas de ingenio e las torpes lenguas; Blasón que es contrario publica sus menguas Al que mucho habla sin mucho sentir. Como la hormiga que deja de ir Holgando por tierra con la provisión, Iactóse con alas de su perdición: LLeváronla en alto, no sabe dónde ir. El aire gozando, ajeno y extraño, Rapiña es ya hecha de aves que vuelan. Esteganografı́a en la historia I El ejemplo tı́pico de esteganografı́a es la tinta invisible. I Los antiguos griegos escribian mensajes secretos en la cabeza rasurada de un esclavo. I Otro ejemplo tı́pico es el acróstico: El silencio escuda y suele encubrir Las faltas de ingenio e las torpes lenguas; Blasón que es contrario publica sus menguas Al que mucho habla sin mucho sentir. Como la hormiga que deja de ir Holgando por tierra con la provisión, Iactóse con alas de su perdición: LLeváronla en alto, no sabe dónde ir. El aire gozando, ajeno y extraño, Rapiña es ya hecha de aves que vuelan. Esteganografı́a en la historia I El ejemplo tı́pico de esteganografı́a es la tinta invisible. I Los antiguos griegos escribian mensajes secretos en la cabeza rasurada de un esclavo. I Otro ejemplo tı́pico es el acróstico. La esteganografı́a comenzó a ser públicamente conocida en 2001, cuando FBI informó que era usada por Ben Laden, para distribuir información secreta entre sus adeptos. . Esteganografı́a Digital La cubierta ’tı́pica’ de la esteganografı́a moderna es un fichero de computadora: imagen, sonido, vı́deo, ... Estos ficheros son ideales por su gran tamaño y su redundancia. Al contrario de los que sucedı́a con la esteganografı́a tradicional, una colección de ’trucos astutos’, la esteganografı́a digital es una ciencia, relacionada con las matemáticas, estadı́stica, informática (procesado de señal, compresión,..), la psicologı́a, etc. La esteganografı́a es actualmente una disciplina de rápido crecimiento: el 90 % de las publicaciones en este campo se han escrito en los últimos años. Sobre la cubierta y dos ejemplos I La cubierta puede ser un documento pre-existente y la información secreta se oculta en él, modificándolo (ligeramente) (modificación de la cubierta). I o la cubierta puede crearse ex-profeso a partir del mensaje a ocultar (sı́ntesis de la cubierta). Mostramos un ejemplo de estos dos tipos. Vamos a esconder el mensaje no me gustan los lunes Funciones de simulación La imitación (’mimicking’) se basa en utilizar modelos para transformar un fichero, buscando parecerse a una estructura predeterminada. Un buen ejemplo es el programa SpamMimic (http://www.spammimic.com/) que transforma un texto para que parezca un correo electrónico de tipo ’spam’. Aplicando este programa a nuestro mensaje secreto, obtenemos el resultado siguiente: SpamMimic Dear Friend ; Your email address has been submitted to us indicating your interest in our newsletter . We will comply with all removal requests . This mail is being sent in compliance with Senate bill 1625 ; Title 8 , Section 307 . Do NOT confuse us with Internet scam artists ! Why work for somebody else when you can become rich in 83 months ! Have you ever noticed most everyone has a cellphone and nearly every commercial on television has a .com on in it . Well, now is your chance to capitalize on this . WE will help YOU sell more increase customer response by 140 . The best thing about our system is that it is absolutely risk free for you . But don’t believe us ! Mr Ames who resides in Georgia tried us and says Ï’ve been poor and I’ve been rich - rich is better¡ We assure you that we operate within all applicable laws . If not for you then for your LOVED ONES - act now ! Sign up a friend and you get halfoff ! God Bless . Dear Sir or Madam , You made the right decision when you signed up for our mailing list . This is a one time mailing there is no need to request removal if you won’t want any more . This mail is being sent in compliance with Senate bill 1621 , Title 4 ; Section 303 ! This is a ligitimate business proposal ! Why work for somebody else when you can become rich in 77 MONTHS ! Have you ever noticed nearly every commercial on television has a .com on in it plus how many people you know are on the Internet . Well, now is your chance to capitalize on this . WE will help YOU turn your business into an E-BUSINESS and deliver goods right to the customer’s doorstep ! You can begin at absolutely no cost to you . But don’t believe us ! Ms Anderson of Kansas tried us and says Ï was skeptical but it worked for me¡ We assure you that we operate within all applicable laws ! If not for you then for your LOVED ONES - act now . Sign up a friend and you get half off ! Warmest regards . Dear Sir Your email address has been submitted to us indicating your interest in our letter . We will comply with all removal requests ! This mail is being sent in compliance with Senate bill 1627 ; Title 1 ; Section 305 ! This is not a get rich scheme ! Why work for somebody else when you can become rich within 79 days ! Have you ever noticed people love convenience how long the line-ups are at bank machines ! Well, now is your chance to capitalize on this . WE will help YOU deliver goods right to the customer’s doorstep use credit cards on your website . You can begin at absolutely no cost to you ! But don’t believe us . Prof Ames who resides in Utah tried us and says "Now I’m rich many more things are possible¡ We are a BBB member in good standing ! We urge you to contact us today for your own future financial well-being . Sign up a friend and you’ll get a discount of 10Cheers . Dear Salaryman , Your email address has been submitted to us indicating your interest in our briefing WE will help YOU turn your business into an E-BUSINESS plus use credit cards on your website . You can begin at absolutely no cost to you . But don’t believe us ! Mr Ames who resides in Nebraska tried us and says "Now I’m rich, Rich, RICH". We operate in all states ! For the sake of your family order now ! Sign up a friend and you get half off .Thank-you for your serious consideration of our offer ! notar que la cubierta es mucho mayor que el texto a ocultar !! esta es una de las caraterı́sticas (inconvenientes) de la esteganografı́a El segundo ejemplo: Escondiendo información Recordemos que otra forma de esconder información es modificar ligeramente un fichero existente. Por ejemplo I imágenes (bmp, jpg, ...) I audio I vı́deo I htlm I I no se utilizan ficheros ejecutables El segundo ejemplo: Escondiendo información en imágenes Por ejemplo, una imagen (aparentemente inocua) El segundo ejemplo: Escondiendo información en imágenes Por ejemplo, una imagen (aparentemente inocua) Escondiendo información en imágenes Una imagen digital se almacena en la computadora como una secuencia de bits, correspondientes a sus pixeles Para esconder un mensaje, el emisor ajusta el color de algunos pixeles, de manera que se correspondan con una letra. Dada la limitada capacidad del ojo humano, los cambios son visualmente imperceptibles. Además, como la imagen original es borrada tras el proceso, no hay posibilidad de comparación. Esteganografı́a y marcas de agua Estrechamente relacionadas con la esteganografı́a están las marcas de agua. En ambos casos la finalidad es la protección de la información pero con importantes diferencias: La presencia de marcas de agua no es secreta. Su contenido se relaciona con la cubierta, que es el valor que se trata de proteger (copyrights, etc.) El principal requerimiento es su imperceptibilidad. En el caso de la esteganografı́a la cubierta no tiene valor intrı́nseco. Su principal requerimiento es la indetectabilidad. Esteganografı́a LSB Por simplificar tomemos el cso de una imagen bmp. La idea más simple consiste en cambiar el bit menos significativo de algunos pixeles de la imagen. Esta técnica se conoce como esteganografı́a LSB. Esteganografı́a LSB Por simplificar tomemos el cso de una imagen bmp. La idea más simple consiste en cambiar el bit menos significativo de algunos pixeles de la imagen. Esta técnica se conoce como esteganografı́a LSB. [puede encontrarse fácilmente en internet ( S-Tools: One of the BEST Steganography tools available...) ] Sistemas esteganográficos I Primero se seleccionan los elementos de la cubierta (pixeles, coeficientes, etc.) que almacenarán la información I Se aplica en los elementos seleccionados un algoritmo de inserción lo más efectivo posible. imagen de cubierta, mensaje secreto ↓ regla de selección vector de cubierta ↓ algoritmo de inserción vector modificado ↓ canal de transmisión imagen modificada ↓ algoritmo de recuperación mensaje secreto recuperado Reglas de selección La regla de selección permite determinar la localización e intensidad de los cambios a realizar durante la inserción de información. I Depende del tipo de cubierta (imagen [de qué tipo?], vı́deo, audio, ...) I a considerar factores informáticos, estadı́sticos, psicovisuales, etc. I proporciona un vector binario (ejemplo LSB) I la regla de selección debe ser también conocida por el receptor !! Reglas de selección En general, se usan las zonas más ruidosas de la imagen. Algoritmo de inserción La regla de selección proporciona un vector cubierta binario c = (c1 , . . . , cn ) El mensaje a esconder puede ser visto como un vector binario m = (m1 , . . . , mk ) El algoritmo de inserción debe ’embeber’ m en c con la menor cantidad de cambios posible (para reducir la distorsion causada en la imagen de cubierta). Asimismo deber ser posible invertir el proceso anterior, de manera que el recptor pueda recuperar m a partir de la imagen modificada. Esquemas esteganográficos Recordamos que deseamos ’insertar’ un vector binario m = (m1 , . . . , mk ) ∈ Fk2 en c = (c1 , . . . , cn ) ∈ Fn2 . El par de algoritmos que permiten insertar y recuperar la información recibe el nombre de esquema esteganográfico. Un esquema esteganográfico S de tipo [n, k] (sobre el alfabeto F2 ) es un par de funciones ins : Fn2 × Fk2 → Fn2 y rec : Fn2 → Fk2 tales que rec(ins(c, m)) = m para todo c ∈ Fn2 y m ∈ Fk2 . Esquema esteganográfico LSB A partir de la imagen de cubierta, se obtiene el vector cubierta c = (c1 , . . . , cn ) ∈ Fn2 formado por los bits menos significativos de todos los pixeles de la imagen. La función de inserción es ins((c1 , . . . , cn ), (m1 , . . . , mk )) = (m1 , . . . , mk , ck+1 , . . . , cn ) Esquema esteganográfico LSB A partir de la imagen de cubierta, se obtiene el vector cubierta c = (c1 , . . . , cn ) ∈ Fn2 formado por los bits menos significativos de todos los pixeles de la imagen. La función de inserción es ins((c1 , . . . , cn ), (m1 , . . . , mk )) = (m1 , . . . , mk , ck+1 , . . . , cn ) I ¿Puede hacerse mejor? Esquema esteganográfico LSB A partir de la imagen de cubierta, se obtiene el vector cubierta c = (c1 , . . . , cn ) ∈ Fn2 formado por los bits menos significativos de todos los pixeles de la imagen. La función de inserción es ins((c1 , . . . , cn ), (m1 , . . . , mk )) = (m1 , . . . , mk , ck+1 , . . . , cn ) I ¿Puede hacerse mejor? I ¿Cuánto mejor? Esquema esteganográfico LSB A partir de la imagen de cubierta, se obtiene el vector cubierta c = (c1 , . . . , cn ) ∈ Fn2 formado por los bits menos significativos de todos los pixeles de la imagen. La función de inserción es ins((c1 , . . . , cn ), (m1 , . . . , mk )) = (m1 , . . . , mk , ck+1 , . . . , cn ) I ¿Puede hacerse mejor? I ¿Cuánto mejor? I ¿Cómo? Parámetros fundamentales Los parámetros que miden la calidad de un esquema esteganográfico (ins,rec), de tipo [n, k] que inserta un vector binario m = (m1 , . . . , mk ) ∈ Fk2 en c = (c1 , . . . , cn ) ∈ Fn2 , son I la carga útil α = k/n I la distorsión relativa ρ = máx{d(c, ins(c, m))}/n siendo d la distancia de Hamming d((x1 , . . . , xn ), (y1 , . . . , yn )) = #{i : xi 6= yi } Códigos correctores de errores Un código corrector de errores de longitud n sobre F2 es un conjunto C ⊆ Fn2 . Sus elementos son palabras. Su distancia mı́nima es d = d(C) = mı́n{d(x, y) : x, y ∈ C, x 6= y} siendo d la distancia de Hamming en Fn2 . Cuando se transmite un palabra c ∈ C por un canal con ruido, ocurren errores que corrompen c. Sea x = c + e el vector recibido. Como x ∈ / C, el receptor puede deducir que han ocurrido errores. Corrección de errores Se descodifica el vector recibido x = c + e por la palabra del código más cercana a x. Si la cantidad de errores no es muy grande, esta estrategia permite recuperar el mensaje enviado c: Teorema. Si x = c + e ∈ Fn2 con c ∈ C, y 2wt(e) < d(C) entonces la palabra más cercana a x es c. Una función de descodificación de C es una función decC : Fn2 → C tal que para cada x ∈ Fn2 , decC (x) es una de las palabras de C más cercanas a x. El código de Haming [7, 4] El código de Haming [7, 4], H, permite codificar secuencias de 4 bits (x1 , x2 , x3 , x4 ) mediante secuencias de 7 bits, (x1 , x2 , x3 , x4 , x5 , x6 , x7 ), añadiendo 3 bits de control del modo siguiente: El código de Haming [7, 4] El código de Haming [7, 4], H, permite codificar secuencias de 4 bits (x1 , x2 , x3 , x4 ) mediante secuencias de 7 bits, (x1 , x2 , x3 , x4 , x5 , x6 , x7 ), añadiendo 3 bits de control del modo siguiente: Consideramos tres cı́rculos El código de Haming [7, 4] El código de Haming [7, 4], H, permite codificar secuencias de 4 bits (x1 , x2 , x3 , x4 ) mediante secuencias de 7 bits, (x1 , x2 , x3 , x4 , x5 , x6 , x7 ), añadiendo 3 bits de control del modo siguiente: Numeramos la regiones que determinan El código de Haming [7, 4] El código de Haming [7, 4], H, permite codificar secuencias de 4 bits (x1 , x2 , x3 , x4 ) mediante secuencias de 7 bits, (x1 , x2 , x3 , x4 , x5 , x6 , x7 ), añadiendo 3 bits de control del modo siguiente: Colocaremos cada bit de (x1 , x2 , x3 , x4 , x5 , x6 , x7 ) en la región que indica su ı́ndice. Los sı́mbolos de control (x5 , x6 , x7 ) se determinan de manera que cada cı́rculo tenga suma par. Por ejemplo, (1, 0, 1, 1) se codifica Por ejemplo, (1, 0, 1, 1) se codifica Por ejemplo, (1011) se codifica (1011001) El sistema permite corregir un error. Recibido (1001001) El sistema permite corregir un error. Recibido (1001001) El sistema permite corregir un error. Recibido (1001001) El código de Haming [7, 4] Se llama código de Hamming a H = {(x1 , x2 , x3 , x4 , x5 , x6 , x7 ) : (x1 , x2 , x3 , x4 ) ∈ F42 } I El sistema permite corregir un error. I Un vector cualquiera (x1 , x2 , x3 , x4 , x5 , x6 , x7 ) ∈ F42 puede llevarse a H con un solo cambio. Esquemas esteganográficos y códigos correctores Recordamos que un esquema esteganográfico [n, k] permite insertar m = (m1 , . . . , mk ) ∈ Fk2 en c = (c1 , . . . , cn ) ∈ Fn2 . ins : Fn2 × Fk2 → Fn2 y rec : Fn2 → Fk2 I Consideramos una función suprayectiva rec : Fn2 → Fk2 ; I ins(c, m) ∈ Cm = rec−1 (m) que es un código corrector; I ins(c, m) los más cercano posible a c ⇒ ins(c, m) = decCm (c) Estegosistema de Haming [7, 4] El código de Hamming puede describirse como el conjunto de vectores {(x1 , x2 , x3 , x4 , x5 , x6 , x7 ) ∈ F72 } tales que (en F2 ) x1 + x2 + x3 + x6 = 0 x1 + x2 + x4 + x5 = 0 x1 + x3 + x4 + x7 = 0 o como el núcleo de la aplicación 1 1 1 0 1 1 0 1 1 0 1 1 lineal rec : F72 → F32 de matriz 0 1 0 1 0 0 0 0 1 Estegosistema de Hamming I rec es suprayectiva: Para cada z ∈ F32 existe ez tal que rec(ez ) = z. I rec−1 (0) = H. I rec−1 (z) = ez + H. El estegosistema de Hamming tiene función de inserción ins(c, m) = decem +H (c) permite insertar 3 bits de información en 7 bits de cubierta con un cambio. Este estegosistema se conoce comercialmente como F5. Un ejemplo Vamos a insertar el mensaje m = (111) en el vector cubierta c = (1010101). Recordemos que la matriz de rec es 1 1 1 0 0 1 0 H= 1 1 0 1 1 0 0 1 0 1 1 0 0 1 luego rec(1000000) = rec(e1 ) = (111). Por tanto ins(c, m) ∈ e1 + H || dec[e1 +H] (c) || e1 + dec[H] (e1 + c) = e1 + dec[H] (0010101) || e1 + (0110101) = (1110101) Un ejemplo Vamos a insertar el mensaje m = (111) en el vector cubierta c = (1010101). Recordemos que la matriz de rec es 1 1 1 0 0 1 0 H= 1 1 0 1 1 0 0 1 0 1 1 0 0 1 luego ins((1010101), (111)) = (1110101) Recibido este mensaje, el receptor calcula H (1110101)t = (111)t que era el mensaje oculto. (con un cambio) Conclusión I campo de rápido crecimiento y expansión (investigación y aplicaciones) I enormes posibilidades (investigación, industriales, militares) I complementario con la criptografı́a