Esconder datos en pista oculta de un CD Audio HTOA con esteganografía y cifrado al estilo Mr. Robot #MrRobot
El CD o disco compacto es un formato de medios que lleva usándose más de 30 años. Su éxito puede deberse al uso para el audio digital, llegando a ser un estándar para los grupos musicales aunque poco a poco vaya desapareciendo por sistemas de streaming de música por Internet. Sin embargo, con el fin de llamar la atención de los fans, algunos CD Audio han tenido portadas de diferente material a la del plástico como el cartón u otro tipo de filigranas y respecto al interior, a veces nos encontrábamos con contenido extra como las pistas “Bonus Track”, aquellas canciones de más, que solían venir en ciertas tiradas o si bien estaban dentro del CD, no aparecían en la setlist.
Algunas eran fáciles de encontrar, pues estaban al final siguiendo la última canción, otras residían también al continuación pero con la diferencia de haber un tiempo prolongado de silencio hasta llegar a ella, haciendo impacientar o curiosear al oyente. Entre la cantidad de trucos que se han utilizado para ocultar estas canciones nos centraremos en la pista oculta, conocida también como pista fantasma o secreta. Este lugar para ocultar canciones “Bonus Track” se hace llamar HTOA (Hidden Track One Audio) y también lo podemos utilizar para guardar datos ocultos a los ojos menos especializados.
Estructura de un CD Audio y mi primera pista HTOA
Este tipo de pista viola las especificaciones del “libro rojo” porque se aprovecha del silencio de la primera Pregap. La función del pregap (o marca) no es más ni menos que la de separar las pistas entre sí, ya sea de 0 segundos (sin silencio, haciendo unión entre canciones como en grabaciones de conciertos en directo) o insertando silencio para diferenciar una canción de otra. HTOA es el tipo de pista que solo la encontraremos antes de la pista 1, es decir, puesta en orden alfabético quedaría como la “pista 0”.
En mi caso, la verdad es que lo descubrí de pura casualidad. Solía escuchar música mientras me duchaba en un viejo reproductor de CD. La primera pista me solía gustar bastante así que para volver a hacer sonar dicho principio pulsaba el botón de rebobinar un toque. Ese día mantuve unos instantes de más el botón recorriendo así la pista hacia atrás manualmente y apareció un peculiar sonido. ¿Pero qué demonios?, ¿qué está ocurriendo aquí?
La HTOA que escuché fue de Rammstein, del álbum Reise Reise, donde el fragmento de la grabación proviene de la caja negra de un avión, concretamente del vuelo JAL 123. Podéis encontrar una lista de discos que contienen este tipo de pista, quizá tengáis alguno en casa y hasta ahora no os habíais dado cuenta ;).
En “Select Start Position” deslizamos hasta la izquierda del todo, al comienzo del bloque 0 y en “Select End Position” deslizamos a la raya que indica el final de la pista 1 y pulsamos botón “Snap Track” para que nos quede justo en la posición. Nos extraerá el rango íntegro (en el caso de una grabadora no soportada, solo los 2 primeros segundos serán audibles, el resto será silencio). Podemos probar a extraer con DeepSound la pista 1 para verificar cómo ésta es incompleta, incapaz de ver los datos secretos.
Figura 1: Esconder datos en pista oculta de un CD Audio HTOA con esteganografía y cifrado al estilo Mr. Robot |
Algunas eran fáciles de encontrar, pues estaban al final siguiendo la última canción, otras residían también al continuación pero con la diferencia de haber un tiempo prolongado de silencio hasta llegar a ella, haciendo impacientar o curiosear al oyente. Entre la cantidad de trucos que se han utilizado para ocultar estas canciones nos centraremos en la pista oculta, conocida también como pista fantasma o secreta. Este lugar para ocultar canciones “Bonus Track” se hace llamar HTOA (Hidden Track One Audio) y también lo podemos utilizar para guardar datos ocultos a los ojos menos especializados.
Estructura de un CD Audio y mi primera pista HTOA
Este tipo de pista viola las especificaciones del “libro rojo” porque se aprovecha del silencio de la primera Pregap. La función del pregap (o marca) no es más ni menos que la de separar las pistas entre sí, ya sea de 0 segundos (sin silencio, haciendo unión entre canciones como en grabaciones de conciertos en directo) o insertando silencio para diferenciar una canción de otra. HTOA es el tipo de pista que solo la encontraremos antes de la pista 1, es decir, puesta en orden alfabético quedaría como la “pista 0”.
Figura 2: Estructura del CD Audio con una HTOA |
En mi caso, la verdad es que lo descubrí de pura casualidad. Solía escuchar música mientras me duchaba en un viejo reproductor de CD. La primera pista me solía gustar bastante así que para volver a hacer sonar dicho principio pulsaba el botón de rebobinar un toque. Ese día mantuve unos instantes de más el botón recorriendo así la pista hacia atrás manualmente y apareció un peculiar sonido. ¿Pero qué demonios?, ¿qué está ocurriendo aquí?
La HTOA que escuché fue de Rammstein, del álbum Reise Reise, donde el fragmento de la grabación proviene de la caja negra de un avión, concretamente del vuelo JAL 123. Podéis encontrar una lista de discos que contienen este tipo de pista, quizá tengáis alguno en casa y hasta ahora no os habíais dado cuenta ;).
Figura 3: El álbum Reise Reise de Rammstein que contiene una HTOA
Después de esto me pregunté: ¿Puedo yo insertar una pista oculta en un CD grabable? ¿Puedo “Hackear” esto con herramientas (¡Y si es software libre mejor!) disponibles para el público? Pues sí, sí se puede. Y para muestra decidí plasmarlo en un vídeo bajo mi "English" con el fin de ser algo tipo "chuleta multimedia". Vamos a verlo paso a paso en este artículo.
Empleando Esteganografía en la HTOA
Tras leer el artículo, Esteganografía con ficheros de audio: Enviar documentos secretos en tus canciones preferidas y más tarde, ¿Tienes un oído fino? Cifrado y esteganografía de datos en ficheros de audio y un test de estegonanálisis con tu oreja me hice una nueva pregunta: ¿Puedo ocultar datos en una HTOA usando esteganografía y criptografía? Sí, se puede, y con algo más de estilo que el del mismísimo Sr. Elliot de la serie Mr. Robot, usando el mismo software DeepSound pero añadiendo un factor más de dificultad y seguridad.
Es por tanto la hora de ponerse manos a la obra, las herramientas que he utilizado para hacer la PoC (Prueba de Concepto) han sido las siguientes:
Audacity: Unión de la pista 0 + pista 1.
DeepSound: Insertando los datos secretos en la pista 0 + pista 1.
ImgBurn: Grabación de la HTOA.
EAC Exact Audio Copy: Para extraer la pista 0 + pista 1 para su descifrado con DeepSound.
P.D.: Todas estas herramientas son gratuitas, pero podéis escoger cualquiera que os haga sentir más cómodos.
Fase 1: Uniendo pistas con Audacity
Necesitamos realizarlo en un solo fichero de audio en formato WAV. La pista oculta y lo que va a ser la primera pista (pista 0 + pista 1), no pueden ser dos ficheros por separado porque de ser así no podemos emular el Pregap. Luego le indicaremos donde queremos que empiece la primera pista manipulando su “hoja de ruta”, la CUE sheet (puedes obviar este paso y convertir cualquier pista en oculta, o sea partir la pista 1 en dos sin usar software de edición de audio, ya que esto se realiza manipulando los índices de la CUE sheet).
En un primer momento pensé en ocultar los datos solo en la pista 0, pero al empalmarla con la pista 1 en Audacity y exportarlo, se perdía el formato (no el audible pero sí a nivel de estructura de onda imagino) y DeepSound no era capaz de leer la parte esteganográfica… Parecía que el chiringuito se desmontaba. Pensé entonces en un “plan b”, en juntarlas y guardar los datos secretos (y cifrados ) en la pista 0 + pista 1 (HTOA + pista 1) y volví a ver la luz (o volví a escuchar datos…).
Figura 5: Construcción del fichero de audio con Audacity |
Importamos las dos pistas, yo lo he realizado arrastrándolas de una en una, por orden de reproducción. Primero la HTOA o pista 0 y luego la pista 1. Nos dirigimos a la parte gris de la cabecera de la pista 1, cortamos con Ctrl+X, nos movemos hacia el final con >> Forward (o con la tecla Fin de teclado) y pegamos con Ctrl+V. Para saber la duración de la HTOA nos puede ser útil cambiar la escala de tiempo del proyecto seleccionando CDDA (hh:mm:ss + CDDA frames (75 fps)).
Figura 6: Cambiando la escala de tiempo en Audacity a CDDA |
Una vez hecho este trabajo, exportamos el resultado en “File->Export Audio…” a formato WAV y 16-bit para mínima pérdida de calidad. Y ya podemos pasar a la siguiente fase.
Fase 2: Ocultando los Datos en Fichero de Audio
La decisión de usar DeepSound fue inspirada en la serie de Mr.Robot, aunque él usa la versión 1.6, nosotros somos un poco más chulos y usaremos una superior, la 2.0 (hasta día de hoy la última). Abrimos el fichero de audio unido en “Open carrier Files”. Dependiendo del tamaño podremos insertar más o menos cantidad de info secreta.
Fijaos que si variáis la calidad del audio podréis ganar algunos bytes de más a costa de desmejorar el audio. Añadimos los ficheros a ocultar y ciframos con una bonita password bajo AES 256.
Figura 7: Ocultando los datos en el fichero de audio que estará en la pista oculta |
Fijaos que si variáis la calidad del audio podréis ganar algunos bytes de más a costa de desmejorar el audio. Añadimos los ficheros a ocultar y ciframos con una bonita password bajo AES 256.
Fase 3: Grabando el audio cifrado en CD Audio
Aquí viene la parte donde se le hace el “Hack” al CD Audio para esconder la pista 0, un lugar de difícil acceso si no tienes el hardware adecuado.
En la Figura 9 tenéis en la parte de arriba un reproductor de CD Audio capaz de retroceder al HTOA. En la parte inferior tenéis una grabadora externa CD/DVD capaz de extraer HTOA. ¿Con una grabadora de CD/DVD no basta? Sí, pero no. Es necesario que tenga soporte para grabar HTOA.
En Internet puede encontrarse alguna base de datos (aunque algo anticuada) de qué modelos lo soportan. Si quieres estar seguro de que tu grabadora es apta para ir a la oscuridad de la pista, aquí hay un test (imagen con CUE) ya preparado para quemar y probar o bien con el software EAC, o con un CD Audio Player (que tampoco no todos son aptos…).
Figura 10: Porción de base de datos con equipos que soportan HTOA o no |
En Internet puede encontrarse alguna base de datos (aunque algo anticuada) de qué modelos lo soportan. Si quieres estar seguro de que tu grabadora es apta para ir a la oscuridad de la pista, aquí hay un test (imagen con CUE) ya preparado para quemar y probar o bien con el software EAC, o con un CD Audio Player (que tampoco no todos son aptos…).
Usando ImgBurn, nos dirigimos a “Write image file to disc” y hacemos clic en el icono “Create CUE file…”. Añadimos primeramente el archivo pista 0 (HTOA) + 1 que unimos antes y las que queráis después de esta (aquí se añaden un par más pero no es mandatorio).
Guardamos la obra y en “Source”, a su apertura, lo editamos mientras lo “medio abrimos”, así pues, al picar en el botón de abrir (para ahorrarnos pasos) podemos editarlo con clic de botón derecho y usar un editor de texto y… empleamos el truco de magia:
FILE "C:\DeepSound_Project\IO\0+1.wav" WAVE
REM FILE-DECODED-SIZE 00:52:39
TRACK 01 AUDIO
INDEX 00 00:00:00 [Agregamos este índice 0]
INDEX 01 00:24:35 [Duración de HTOA - Se obtiene con Audacity]
FILE "C:\DeepSound_Project\Track2.wav" WAVE
REM FILE-DECODED-SIZE 00:05:49
TRACK 02 AUDIO
INDEX 01 00:00:00
FILE "C:\DeepSound_Project\Track3.wav" WAVE
REM FILE-DECODED-SIZE 00:04:45
TRACK 03 AUDIO
INDEX 01 00:00:00
Con ello estamos marcando o creando un Pregap con una duración de más de 2 segundos, ocultando el secreto, en este caso no tanto a nivel sonoro pero sí a nivel de bits.
Tatuamos el CD, dejamos los checks de “Verify” y quemamos a la velocidad más baja soportable para mayor compatibilidad. En el proceso de verificación nos servirá de test para saber si nuestra grabadora puede con ello, si no es compatible nos daremos cuenta en seguida, veréis este mensaje:
¡Listo!, ahora veamos cómo podemos sacar los documentos.
Fase 4: Sacando los secretos a la luz con EAC y DeepSound
Para extraer la HTOA + pista 1 no nos vale un software de ripeo cualquiera. Uno de los que son capaces de extraerla es EAC (Exact Audio Copy) para coger el rango incluyendo el oculto. A la apertura de EAC, veremos resaltado en rojo la primera pista, indica que contiene una HTOA. Para realizar la copia hacemos “Action – Copy Range – Uncompressed…”.
En “Select Start Position” deslizamos hasta la izquierda del todo, al comienzo del bloque 0 y en “Select End Position” deslizamos a la raya que indica el final de la pista 1 y pulsamos botón “Snap Track” para que nos quede justo en la posición. Nos extraerá el rango íntegro (en el caso de una grabadora no soportada, solo los 2 primeros segundos serán audibles, el resto será silencio). Podemos probar a extraer con DeepSound la pista 1 para verificar cómo ésta es incompleta, incapaz de ver los datos secretos.
Si la grabadora está soportada entonces podremos extraer la pista 1 junto la HTOA y el fichero saldrá correctamente. Probamos ahora con la unión del fichero extraído y si pregunta por un password estaremos de suerte y todo habrá ido correctamente.
Extraemos desocultando los ficheros del CD Audio y listo. Para concluir, aquí tienes resumido todo el proceso en un vídeo a modo rápido:
Figura 17: Vídeo mostrando todo el proceso
¡Bonus Track!
Suelo empezar con algo de tipo teórico, esta vez me he decantado por dejarlo para el final. Quise indagar un poco en las entrañas de los códigos en hexadecimal (sin centrarme en las cabeceras del formato WAVE ), comparando el fichero original de audio y el que crea DeepSound una vez se esconde el fichero en él.
A modo de PoC he insertado un archivo de texto pequeño y sin cifrar en un fragmento de audio con sólo silencio de 1 segundo de duración para hacer un poco de estegoanálisis. A la izquierda tenemos el fichero original, a la derecha el fichero con el txt incrustado.
A modo de PoC he insertado un archivo de texto pequeño y sin cifrar en un fragmento de audio con sólo silencio de 1 segundo de duración para hacer un poco de estegoanálisis. A la izquierda tenemos el fichero original, a la derecha el fichero con el txt incrustado.
¿Qué es lo primero que destaca a simple vista? Si os fijáis, se cambia solo el segundo dígito del par hexadecimal (usando técnica LSB), haciendo efecto de columnas, “este sí, este no,…” con este método, cada 8 bytes usamos 2, podemos hacer parejas de un par de dígitos hexadecimales, y tenemos:
44 53 43 46 04 00 44 53 53 46 65 6c 6c 61 64 6f 64 65 6c 6d 61 6c 2e 74 78 74 00 00 00 00 00 00 00 07 00 00 00 00 6d 61 6c 69 67 6e 6f 00 00 00 00 00 44 53 53 46
Que si lo convertimos a string daría algo como (pasando los caracteres no imprimibles a números):
DSCF40DSSFelladodelmal.txt000000070000maligno00000DSSF
Mis deducciones sobre estos valores han sido:
DSCF: Indicador de que “hay algo” aquí… yo interpreto el acrónimo como Deep Sound Content/s File/s seguidamente, un 4 que no sé si es distintivo propio (se repite en otras ocasiones) pero el 0 de después es el byte que indica si está cifrado o no, por la prueba que realicé del mismo fichero en AES 256.
DSSF: Parece que sea el indicador de inicio/fin, deduzco Deep Sound Secret File/s.
DSSF: Parece que sea el indicador de inicio/fin, deduzco Deep Sound Secret File/s.
Nombre de fichero: observamos el fichero con su extensión, según testeos solo podremos insertar hasta 19 dígitos incluyendo la extensión del archivo (DeepSound lo reduce cubriendo la extensión) sólo quedarían 3 dígitos en este caso.
Lo que prosigue, parece que hay ocho ceros y justo en el medio el número indicando cuantos bytes tiene el fichero, aquí puede verse maligno, 7 letras=7 bytes.
Llegamos al final con unos pocos ceros (aquí tendría que hacer más testeos para aclaración, si es que llego a una conclusión. Probablemente sean flags para opciones extras del programa, ¿alguien se anima?. Y el indicador que indica el final.
Un apunte importante, decir que si hay más ficheros secretos en el audio, irán precedidos de DSSF cerrándolo con su DSSF - DSCF sólo se encuentra en la cabecera de los datos RAW -, es decir, que si extraemos el rango con EAC, y entre lo que abarcamos, habiendo antes un DSCF, hay un DSSF inicial y final tendremos ese fichero aunque el audio se haya creado para contemplar más. En el caso inverso, si tomamos un rango de bloque más allá del principio, por más que existan ficheros no tendremos éxito, parece que DeepSound necesita encontrar el DSCF antes.
Reflexiones finales
Hemos visto una forma más de emplear esteganografía haciendo uso del HTOA. Con ello, no solo DeepSound puede ser empleado como software, ya que cualquier herramienta como las que hemos visto en los artículos citados al principio de este artículo usadas para camuflar información en el sonido es válida para esconder los datos cifrados en la profundidad de la pista 0 de un CD Audio.
Como ventajas, aquella persona que se dedique a curiosear, lo va a tener un poco más difícil, pues no solo se le suma la contraseña, sino que además, necesita tener un hardware adecuado para llegar al fondo de la cuestión. En muchos casos, podría incluso llegar a pensar que no hay nada al hacer una importación directamente desde el CD (leyendo en formato cda) con el propio DeepSound, porque necesita otra llave, la HTOA.
Autor: Gerard Fuguet
Autor: Gerard Fuguet
1 comentario:
Aaaalaa ... Nunca se me hubiese ocurrido algo así. Me pregunto por qué lo habrán hecho las discográficas ...
Publicar un comentario