Esteganografía práctica
Copyright © 2007 Javier Martínez.
Permission is granted to copy, distribute and/or modify this
document under the terms of the GNU Free Documentation License, Version
1.1 or any later version published by the Free Software Foundation;
with no Invariant Sections, and with no Front-Cover Texts, and with
no Back-Cover Texts. Full text of the license is at http://www.gnu.org/licenses/fdl.txt
Introducción
Imaginaos que ocurre una guerra. PinkFloydianos del bando de Roger
Waters y PinkFloydianos del bando de David Gilmour. La guerra acaba,
los Watersianos vencen y nosotros nos tenemos que someter.
Necesitan aplastar y erradicar todo vestigio Gilmouriano de la faz
de la tierra y eso significa registrar todas las casas, interrogar
a todo el mundo, a los sospechosos de ser Gilmourianos lapidarlos
y a los culpables ejecutarlos. La mera existencia de cryptografía
y la negativa a dar las claves nos culpabiliza. Así que... ¿Qué alternativa
nos queda?
En éste artículo voy a explicar como crear un dvd+rw cifrado con varios
niveles con criptografía fuerte y dentro de esos niveles crear particiones
ocultas que a ojos de todos aparentarán ser espacio libre. Nadie sabrá
cuantas partes existen en el disco, por tanto en caso de interrogatorio
podremos dar las claves de las dos primeras y alegar que no existe
ninguna más (cosa que no podrán demostrar).
Crearemos un dvd con tres niveles criptográficos y algo de espacio
libre. Para ello vamos a utilizar cryptsetup y dm-mapper junto con
la herramienta scubed de Rick Snel. En el primer nivel meteremos el
disco The wall, para disimular y engañar a los watersianos, en el
segundo cambiaremos de grupo y colocaremos el disco War de U2 para
indicar que somos belicistas (es decir, que estuvimos dentro de la guerra). En
el tercer y último nivel colocaremos The Delicate Sound Of Thunder,
cuya mera posesión sería indicativo de cuál es nuestro bando y por
tanto nos llevaría a la muerte.
Requisitos
Necesitaremos tener activado DM_CRYPT y DM_LINEAR en el kernel (como
modulos o en modo monolítico). También necesitaréis de las librerías
de libdevmapper, que encontraréis en libdevmapper-dev y de cryptsetup
presente en el paquete de mismo nombre. El artículo asume de la presencia
de packet-writing.
Una vez hecho ésto descargamos scubed de aquí: http://cube.dyndns.org/svn/scubed/tags/scubed-0.1/scubed.c.
Lo compilamos de paso en estático (no necesitaremos librerías y podremos
llevarlo en un pendrive por ejemplo...).
- gcc -static scubed.c -ldevmapper -o scubed
Manos a la obra
Previo formateo del dvd+rw creamos los tres criptosistemas en nuestro
dvdrw.
# cryptsetup create alpha /dev/dvdrw
# cryptsetup create beta /dev/dvdrw
# cryptsetup create gamma /dev/dvdrw
Hemos de particionar el dvd y dividirlo entre las imágenes ocultas,
para ello le indicamos los tres criptosistemas presentes (y cifrados)
en el disco, cada uno con una contraseña distinta (al estar mapeados,
o presentes en /dev/mapper/ están desbloqueados (la contraseña los
desbloquea) y por tanto scubed puede acceder a ellos). Primero obtenemos
información:
# scubed /dev/mapper/alpha /dev/mapper/beta /dev/mapper/gamma
Como indica la salida del comando, el dvd tiene 560 bloques de cerca
de 8389120 bytes cada uno, algo así como 8 megabytes/bloque
Ahora particionamos
# scubed -r 0,128 /dev/mapper/alpha /dev/mapper/beta /dev/mapper/gamma
, voy a reservar 128 bloques de 8 megabytes a cada una de las particiones
ocultas. alpha es el 0, beta el 1 y gamma el 2.
# scubed -r 1,128 /dev/mapper/alpha /dev/mapper/beta /dev/mapper/gamma
# scubed -r 2,128 /dev/mapper/alpha /dev/mapper/beta /dev/mapper/gamma
# scubed /dev/mapper/alpha /dev/mapper/beta /dev/mapper/gamma
La salida ahora os debería presentar los bloques libres y que cada
uno de los tres volumenes tienen 128 bloques reservados (1 gigabyte)
Formateamos los volúmenes y los montamos:
# scubed -M alpha.linear /dev/mapper/alpha
# scubed -M beta.linear /dev/mapper/beta
# scubed -M gamma.linear /dev/mapper/gamma
# mkfs.ext2 /dev/mapper/alpha.linear
# mkfs.ext2 /dev/mapper/beta.linear
# mkfs.ext2 /dev/mapper/gamma.linear
# mount /dev/mapper/alpha.linear /mnt/fs1
# mount /dev/mapper/beta.linear /mnt/fs2
# mount /dev/mapper/gamma.linear /mnt/fs3
Metemos nuestras pruebas en cada uno de los niveles y desmontamos
y removemos los mapas.
# umount /mnt/fs1
# umount /mnt/fs2
# umount /mnt/fs3
# dmsetup remove /dev/mapper/alpha.linear
# dmsetup remove /dev/mapper/beta.linear
# dmsetup remove /dev/mapper/gamma.linear
# cryptsetup remove alpha
# cryptsetup remove beta
# cryptsetup remove gamma
Ahora viene lo divertido. Imaginemos que sólo conocemos uno de los
tres mapas:
# cryptsetup create 1 /dev/dvdrw
El hecho de llamarlo 1 es irrelevante puesto que nosotros accedemos
al nivel que concuerda con nuestra contraseña, es decir, si la contraseña
de alpha es alpha y al volumen 1 le ponemos esa contraseña accederemos
al volumen alpha.
# scubed /dev/mapper/1
Aquí está la magia, scubed no ve los otros volúmenes, beta y gamma
y cree que son espacio libre al igual que los demás.
# scubed -M 1.linear /dev/mapper/1
# mount /dev/mapper/1.linear /mnt/fs1
Y con ésto ya accedéis a vuestro volumen.
Nota del autor:
No sigáis este artículo como si de una receta se tratara, puede contener
y seguramente contendrá fallos que podría costaros incluso la pérdida
de información valiosa si no hacéis las cosas sabiendo lo que hacéis.
Como siempre NO me hago responsable de cualquier daño de cualquier
índole causado por el uso y seguimiento de dicho artículo.
- Inicie sesión o regístrese para enviar comentarios
- 2428 lecturas

Que montón de vueltas solo para esconder un álbum :)
Aunque sirve más para los adolescentes y esconder otras cosas :)
Muy bueno el artículo, bien detallado paso a paso, cuando me compre la quemadora de dvd intento, pero con Iron Butterfly :)
---
NEME
usuario GNU/linux No. 400352
No está muerto el que yace perpetuamente, y con el transcurso
de los evos, incluso la muerte puede fenecer.
Abdul Alhazred
Gracias tazok!!!
Muy interesante y muy bien explicado.
Un saludo.
---
Elegir es l i b e r t a d, para poder elegir hay que conocer las o p c i o n e s... sigue buscando. Buscar es l i b e r t a d.
Increíble, tazok. Normalmente para seguir tus artículos hay que echarle ganas y tener cierto nivel; pero en este caso viene bien saber de criptografía y de Pink Floyd!!!
Aparte de coñas; me confunde el título del artículo. Tenía entendido que la esteganografía consistía en la ocultación de mensajes en ficheros; lo típico que conocía es la ocultación de textos en imágenes. ¿De lo que tú hablas no es pura y simple criptografía?
See you at the dark side of the moon!
PD: Vale, una visita a http://es.wikipedia.org/wiki/Esteganograf%C3%ADa me ha aclarado las dudas.
Respuesta a Que montón de vueltas solo
A los adolescentes les dará exactamente igual, ocultarlo que sólo cifrarlo. Ésto está para "probar" que no estás ocultando nada ;)
Si el mundo piensa que no existes entonces no existes aunque existas :D
PD: tened en cuenta también que los bloques de scubed no son ni mucho menos consecutivos. El primer bloque de 1kb de la primera vista criptográfica puede estar en el offset 53400 y el siguiente en el 125080 y el siguiente en el 14488, y la de la segunda vista en el 17560 el primer bloque y en 134296 el segundo bloque y así. Por tanto, la información está distribuida en sitios aleatorios no consecutivos que además están cifrados y que por tanto no puede saberse si está siendo usado o no.
---
"Don't accept that what's happening;
Is just a case of others' suffering;
Or you'll find that you're joining in"
-Pink Floyd- On the turning away.
Respuesta a Increíble, tazok. Normalmente para seguir
Busca también por "plausible deniability"
The dark side of the moon is hidden too... so it's existence could be denied because nobody saw it ;)
---
"Don't accept that what's happening;
Is just a case of others' suffering;
Or you'll find that you're joining in"
-Pink Floyd- On the turning away.
Respuesta a Gracias tazok!!!
Muy interesante y muy
Gracias a ti por leerlo ;)
---
"Don't accept that what's happening;
Is just a case of others' suffering;
Or you'll find that you're joining in"
-Pink Floyd- On the turning away.
Respuesta a A los adolescentes les dará
¿Acaso estás intentando ocultar al mundo la existencia de Sid Barret? seguro que por alguna parte oculta de ese CD está "A Saucerful of Secrets" y "The Piper at the Gates of Dawn", pero no nos lo dirás aunque te torturemos, claro...
xDDD
No se porque te vi conectado y quise ver tus articulos y vi este que era bastante reciente y me he quedado sorprendido, sabia que se podia ocultar espacio en un dvd y escribir en el espacio libre de un dvd+rw y engañar al sistema para que apareciese como espacio libre (escribiendo directamente en el dispositivo y crearte un archivo local a modo de la parte que no se modifica del toc, solo que el disco no puede leerse montandolo sino leyendo directamente del dispositivo o algo similar, no sabria decirte donde lo vi, a ver si lo encuentro, pero esto creo que es bastante mejor que lo que comento.
[MODO COÑA ON]
Cripto grafico dicese de graficos que se dibujan en criptas XDD
[MODO COÑA OFF]
---
La seguridad es solo un estado mental.
Entre la satisfacción y la total decepción hay solo una acción.
Solo se que se todo lo que no se
¡Que increíble introducción!
Excelente articulo, felicitaciones.
---
A cierta edad, un poco por amor propio, otro poco por picardia, las cosas que más deseamos son las que fingimos no desear.
A mí me habría hecho más ilusión una guerra entre genesisdianos del bando de Peter Gabriel y genesisdianos del bando de Phil Collins