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

Documentos relacionados