Showing posts with label datos. Show all posts
Showing posts with label datos. Show all posts
Wednesday, January 18, 2017
¿Tienes un oído fino Cifrado y esteganografía de datos en ficheros de audio y un test de estegonanálisis con tu oreja
¿Tienes un oído fino Cifrado y esteganografía de datos en ficheros de audio y un test de estegonanálisis con tu oreja
Tras ver la invitación de Chema Alonso para escribir algún artículo en El lado del mal me decidí a enviar un resumen de lo que fue mi proyecto final de carrera de ingeniería informática, en el que tocaba el tema de esteganografía y cifrado de datos en ficheros de audio. Hace poco se habló de una técnica parecida en el artículo "Esteganografía con ficheros de audio: enviar tus documentos ocultos en canciones", pero en este trabajo se añade la capa de cifrado y el trabajo se hace con MatLab, así que espero que os sea de utilidad y complemente un poco más el conocimiento de las técnicas de esteganografía y estegoanálisis.
Considero que todo documento científico debe contar con una breve introducción de los conceptos que se tratarán, así que, para empezar a tener claras las ideas, me gusta empezar siempre con definiciones y, si es posible, dar algunas pinceladas de etimología a los términos sobre los que escribo. Y aquí van:
Explicación del funcionamiento del criptosistema
El sistema consta de dos capas de seguridad, la primera será criptográfica, ya que a toda la información que se pretenda transmitir, le aplicaremos un cifrado asimétrico. Una vez tenemos la información cifrada, realizaremos el proceso de esteganografía, escogiendo para ello un fichero de audio WAV como portador y ocultando en él los datos cifrados en el paso anterior.
En la Figura 2 vemos cómo encajan todos los subsistemas entre sí, donde las cajas rojas conforman el subsistema criptográfico, que se corresponden con los procesos de cifrado y descifrado. Aquí es importante destacar que el emisor cifra la clave secreta (o clave de sesión) con la clave pública del receptor y que el mensaje se cifra usando la clave secreta, generada automática y aleatoriamente por GPG4WIN.
Las cajas azules conforman el subsistema esteganográfico, que se corresponden con los procesos de ocultación y extracción. El resto de elemento son las entradas y salidas del sistema, y un medio de transmisión.
Explicación general de cada subsistema
Teniendo una visión global del sistema, veamos el comportamiento de cada uno de sus elementos de procesamiento de la información.
Subsistema criptográfico: es el componente que aplica un algoritmo de cifrado o descifrado, en función de la etapa en la que se encuentre la información que procesemos dentro del sistema global. Recurrimos a RSA 2048 bits, mediante la herramienta GPG4WIN. En la Figura 1 se ve el flujo de la información y cuándo entra en juego cada componente. Para gestionar nuestro criptosistema de la forma que queremos, debemos configurar adecuadamente GPG4WIN. Los pasos a seguir son:
1. LSB (Least Significant Bit): es un método de ocultación que se basa en esconder la información en los bits menos significativos del fichero de audio original. El proceso consiste en realizar una sustitución de los bits menos significativos de las muestras del audio original por todos los bits del mensaje. En la Figura 2 vemos un ejemplo de ocultación, donde:
2. Phase Coding: Es un método de ocultación que se basa en esconder la información en la fase de las componentes espectrales de la onda de sonido que se obtiene a partir del audio original. El proceso de ocultación es como sigue:
Implementación de esteganografía con Matlab
Entrando un poco más en materia, paso a explicar cómo implementé ambos algoritmos esteganográficos en Matlab.
LSB, ocultación:
Bien, ahora que hemos visto cómo funciona cada parte por separado, vamos a hacer un pequeño guión de cómo hacer funcionar todo el sistema.
CIFRADO Y OCULTACIÓN
Durante la prueba, una de las muestras recibe el nombre de A y la otra muestra recibe el nombre de B. El programa elige una muestra X, que puede ser cualquiera de las muestras A o B, que el usuario ha indicado como banco de muestras, pero el sujeto no sabe cuál es. La tarea del sujeto es escuchar atentamente todas las muestras, tanto A y B como X, y entonces decidir si X se corresponde con la muestra A o con la muestra B. Por cada vez que el sujeto se vea sometido a esta elección, lo llamaremos intento. Al final de la prueba, se analizan el número de pruebas realizadas, el número de aciertos y fallos.
Las señales acústicas que hemos elegido para el test se pueden agrupar en cuatro tipos diferentes de audio:
Para terminar, ahora que os he soltado toda esta marea de ideas y conceptos, aquí podéis escuchar los ficheros de audio y realizar vosotros mismos vuestras comparativas. Os los dejos organizados por carpetas y por estilos musicales [Audios Codificados, Audios Originales] ¿Hasta dónde sois capaces de detectar el ruido en cada técnica? Empieza el reto ;)
Autor: Jorge Peris (Universidad de Valencia)
![]() |
Figura 1: ¿Tienes un oído fino? Cifrado y esteganografía de datos en ficheros de audio y un test de estgonanálisis con tu oreja |
Considero que todo documento científico debe contar con una breve introducción de los conceptos que se tratarán, así que, para empezar a tener claras las ideas, me gusta empezar siempre con definiciones y, si es posible, dar algunas pinceladas de etimología a los términos sobre los que escribo. Y aquí van:
Definición 1: esteganografía es la ciencia que trata el estudio y la aplicación de un conjunto de técnicas que permiten ocultar o esconder información, de modo que no se perciba su existencia.
Etimología 1: Estegano-, del griego tégos-/steganos, que significa disimular, disfrazar o cubrir.
Definición 2: criptografía es el arte de escribir con clave secreta o de un modo enigmático.
Etimología 2: Cripto-, del griego kryptós, que significa recubierto.Con todo esto presente, mi objetivo fue construir un criptosistema que fuera capaz de cifrar información y para posteriormente esconderla dentro de un fichero de audio en formato WAV, maximizando la cantidad de mensaje a ocultar y minimizando todo lo posible el ruido introducido. Para la parte del cifrado me decanté por usar cifrado asimétrico RSA y para la de esteganografía, utilicé 2 métodos, uno bastante empleado, como es el LSB y otro no tanto, conocido como Phase Coding.
Etimología 3: -grafía, de la raíz del griego grafein, que significa escritura o representación gráfica.
Explicación del funcionamiento del criptosistema
El sistema consta de dos capas de seguridad, la primera será criptográfica, ya que a toda la información que se pretenda transmitir, le aplicaremos un cifrado asimétrico. Una vez tenemos la información cifrada, realizaremos el proceso de esteganografía, escogiendo para ello un fichero de audio WAV como portador y ocultando en él los datos cifrados en el paso anterior.
![]() |
Figura 2: Diagrama global del criptosistema |
En la Figura 2 vemos cómo encajan todos los subsistemas entre sí, donde las cajas rojas conforman el subsistema criptográfico, que se corresponden con los procesos de cifrado y descifrado. Aquí es importante destacar que el emisor cifra la clave secreta (o clave de sesión) con la clave pública del receptor y que el mensaje se cifra usando la clave secreta, generada automática y aleatoriamente por GPG4WIN.
Las cajas azules conforman el subsistema esteganográfico, que se corresponden con los procesos de ocultación y extracción. El resto de elemento son las entradas y salidas del sistema, y un medio de transmisión.
Explicación general de cada subsistema
Teniendo una visión global del sistema, veamos el comportamiento de cada uno de sus elementos de procesamiento de la información.
Subsistema criptográfico: es el componente que aplica un algoritmo de cifrado o descifrado, en función de la etapa en la que se encuentre la información que procesemos dentro del sistema global. Recurrimos a RSA 2048 bits, mediante la herramienta GPG4WIN. En la Figura 1 se ve el flujo de la información y cuándo entra en juego cada componente. Para gestionar nuestro criptosistema de la forma que queremos, debemos configurar adecuadamente GPG4WIN. Los pasos a seguir son:
1. Crear un certificado de tipo OpenPGP key pairSi todo el proceso se ha llevado a cabo correctamente, obtendremos una ventana de confirmación que nos mostrará el fingerprint de nuestro certificado. Con este certificado será con el que podamos cifrar/descifrar ficheros. Para cifrar en GPG4WIN lo podemos hacer con el propio gestor de certificados que incluye, llamado Kleopatra. Simplemente lo abrimos y seguimos estos pasos:
2. Introducir algunos datos personales: Dentro de las opciones avanzadas, elegimos el uso que le vamos a dar. En nuestro caso solo queremos cifrar, así que elegimos el método RSA con 2048 bits y marcamos la casilla de Encryption.
3. Crear una passphrase para cifrar la clave privada (este cifrado es tipo simétrico)
1. Elegimos Sign/Encrypt Files, y marcamos la opción de Encrypt. Seleccionamos el fichero a cifrar.Para descifrar en GPG4WIN lo haremos también con Kleopatra:
2. Seleccionamos el certificado que queramos usar para cifrar. En este caso, como ya lo tenemos creado, seleccionamos y añadimos el que hemos hecho anteriormente.
3. Pulsamos en Encrypt y esperamos a que el proceso finalice. El programa nos avisará.
1. Elegimos Decrypt/Verify Files, y seleccionamos el fichero a descifrar. También podemos elegir dónde se guardará la información descifrada.2. Introducimos la passphrase para nuestro certificado, que se nos indica en pantalla. Cada certificado que creemos tiene su propia passphrase, de modo que hay que recordarla para poder realizar el proceso de descifrado.3. Pulsamos en OK y esperamos a que el proceso finalice.Subsistema esteganográfico: es el componente que aplica un algoritmo de ocultación o extracción. Depende también de la etapa, y en la misma Figura 2 vemos las interacciones de este componente con el sistema.
1. LSB (Least Significant Bit): es un método de ocultación que se basa en esconder la información en los bits menos significativos del fichero de audio original. El proceso consiste en realizar una sustitución de los bits menos significativos de las muestras del audio original por todos los bits del mensaje. En la Figura 2 vemos un ejemplo de ocultación, donde:
Audio: muestras de sonido del fichero WAV original. El subíndice indica el número de muestra y el superíndice indica el peso del bit de la muestra.
Datos: cadena de bits del mensaje original.
Portador: muestras de sonido del fichero WAV con el mensaje Datos incluido.
![]() |
Figura 3: Ejemplo de ocultación LSB. Sustitución de los bits menos significativos de las muestras de audio original por los bits del mensaje |
2. Phase Coding: Es un método de ocultación que se basa en esconder la información en la fase de las componentes espectrales de la onda de sonido que se obtiene a partir del audio original. El proceso de ocultación es como sigue:
a. Dividimos la señal acústica en varias ventanas de tamaño fijo.
b. Calculamos la DFT (transformada discreta de Fourier) de cada ventana, obteniendo la fase y la magnitud.
c. Elección de puntos de cada ventana candidatos para esconder la información.i. Todos los puntos que cumplan Thmin < magnitud < Th albergarán el mensaje a ocultar. Umbral, Th, es un porcentaje del valor máximo de la señal.ii. Para cada punto, dejaremos el valor de la fase original, con el siguiente criterio:
Umbral mínimo, Thmin, es un valor fijo obtenido de forma empírica, 10^-4 genera 0 errores. Si bit a ocultar 0, entonces: (-1) x fase
Si bit a ocultar 1, entonces: (1) x fase
![]() |
Figura 4: Pasos para aplicar el método de esteganografía de Phase Coding |
Implementación de esteganografía con Matlab
Entrando un poco más en materia, paso a explicar cómo implementé ambos algoritmos esteganográficos en Matlab.
LSB, ocultación:
1. Leer fichero con los datos a esconderBásicamente estos son los pasos, pero se ve mucho mejor en la Figura 3. Hay que tener en cuenta que hay que moldear bastante las matrices y jugar con los tipos de datos en Matlab, para poder ajustar todos los cálculos, ya que el algoritmo lo hice para poder escoger una cantidad variable de bits menos significativos.[Datos, count] = fread(fopen(C: utamensaje.txt));2. Leer fichero de audio, que hará de portador
Datos = matriz de count filas (cada caracter) y 1 columna.
count = cantidad de caracteres leídos.[x,fs] = audioread(ruta);3. Sustituir los bits menos significativos de x por todos los bits que haya en Datos
x = muestras de audio
fs = frecuencia de muestreo% La parte del mensaje que cabe justacoded(1:F_smr,(end-LSB+1):end) = stego_mensaje;% La parte del mensaje que sobracoded(F_smr+1,end-sobran+1:end)=Datos(L_esconder-sobran+1:end);
4. Crear un nuevo vector de muestras, que contenga el mensaje sustituido y el resto de muestras originales, es decir, las muestras del fichero portador, incluyendo el mensaje a esconder.
LSB, extracción:y = coded;audiowrite(C: utaLSB-codedAudio.wav, y, fs);
1. Leer fichero de audio, que es el portador del mensaje oculto[x_ext,fs_ext] = audioread(C: utaLSB-codedAudio.wav);2. Extraer los bits menos significativos de x_ext% Recupero el mensaje, por partes: la divisible, y el resto3. Crear un nuevo fichero que será el mensaje extraído.
% 1º Recupero la parte divisible del mensaje
recup1 = x_ext(1:F_smr,end-LSB+1:end);
% 2º Recupero la parte que falta del mensaje
recup2 = x_ext(F_smr+1,end-sobran+1:end);
% Juntamos todo
recup = vertcat(recup1,recup2);fwrite(fopen(C: utamensaje_extraido.txt,w), recup);
Phase Coding, ocultación:%Recordad que este mensaje extraído está cifrado.
1. Leer fichero de audio y dividir la señal en ventanas Phase Coding, extracción:[x,fs] = audioread(ruta);2. Calcular DFT y obtener fase y magnitud
% Longitud archivo portador en muestras
T = length(x);
% Longitud de cada segmento
L = 1024;% Numero de segmentos
N = floor(T/L);
% División en segmentos de la señal (cada columna un segmento)
for n=1:N
xf(:,n) = x((n-1)*L + 1:n*L);
end% DFT de cada segmento (fft lo hace de golpe)3. Calcular umbrales y obtener los puntos candidatos
Xf = fft(xf);
% Matriz de magnitud original
M_ori = abs(Xf);
% Matriz de fases original
P_ori = angle(Xf);Th = porcentaje*max(M_ori(:));Th_min = 0.0001;indhide = find(M_ori<Th & M_ori>Th_min);4. Calcular umbrales y obtener los puntos candidatosfor k=1:L_esconder % desde 1 hasta el tamaño del mensaje que quiero esconder5. Crear el audio portador con el mensaje a esconder.
if Datos(k)==0
P_hide(indhide(k)) = abs(P_ori(indhide(k)))*(-1);
else
P_hide(indhide(k)) = abs(P_ori(indhide(k)))*(+1);
end
end% Mensaje portador con datos ocultos
Xhide = M_ori.*exp(1i*P_ori);
xm = real(ifft(Xhide));
audiowrite(C: utaPC-codedAudio.wav,xm,fs);
1. Los pasos para extraer son los mismos que para ocultar, desde el 1 al 3
2. Extraemos la información del vector con los puntos candidatos% Extraer índices de los puntos con bits ocultosRecordad que L_esconder es el tamaño del mensaje que voy a extraer. En principio lo sabemos de antemano, pero se podría crear un espacio dentro del mensaje a ocultar para indicar cuál es su tamaño, y transmitirlo también una vez cifrado y ocultado.
indhide = find(M_decod<Th & M_decod>Th_min);
indhide = indhide(1:L_esconder);
Decp = P_ decod(indhide);
3. Extraemos el mensaje ocultoGuión final y resultados% Mensaje extraído en Datadec
Datadec = (Decp<=0)*0 + (Decp>0)*1;
Bien, ahora que hemos visto cómo funciona cada parte por separado, vamos a hacer un pequeño guión de cómo hacer funcionar todo el sistema.
CIFRADO Y OCULTACIÓN
1. Elegimos un fichero cualquiera que será nuestro mensaje a ocultar.EXTRACCIÓN Y DESCIFRADO
2. Elegimos un fichero de audio, en formato WAV, que será nuestro portador.
3. Ciframos el fichero con GPG4WIN.
4. Ocultamos el mensaje obtenido en el paso 3 mediante una técnica esteganográfica: LSB o Phase Coding.
5. Obtenemos un fichero WAV con el mensaje incluido. Este fichero lo podemos transmitir o almacenar teniendo 2 ventajas principalmente:a. Tenemos la información escondida, luego será más difícil encontrarla para cualquiera que no sepa dónde/cómo buscar.
b. Tenemos la información cifrada, de modo que, incluso aunque se llegue a descubrir que tenemos información oculta, sería casi imposible descifrar sin tener la llave.
1. Elegimos un fichero de audio que sea portador.Para comprobar que todo este proceso de cifrado y ocultación funciona bien, quise realizar una serie de pruebas a personas de mi entorno. Recurrí para ello al test ABX, que es un tipo de prueba auditiva que se realiza a ciegas, lo que se conoce también como blind test, es decir, que el sujeto desconoce el origen del audio que escucha. Para hacer las pruebas más sencillas, recurrí a la herramienta llamada Lacinato ABX/Shootouter, que permite cargar ficheros de audio, y realizar la prueba de forma automática, mostrando los resultados obtenidos por cada sujeto. Sin entrar en mucho detalle matemático, necesariamente derivado de este tipo de pruebas, os explico en qué consiste el test ABX.
2. Extraemos el mensaje mediante una técnica esteganográfica: LSB o Phase Coding.
3. Desciframos el fichero obtenido en el paso 2 con GPG4WIN.
![]() |
Figura 5: Herramienta Lacinato ABS/SHootouter |
Durante la prueba, una de las muestras recibe el nombre de A y la otra muestra recibe el nombre de B. El programa elige una muestra X, que puede ser cualquiera de las muestras A o B, que el usuario ha indicado como banco de muestras, pero el sujeto no sabe cuál es. La tarea del sujeto es escuchar atentamente todas las muestras, tanto A y B como X, y entonces decidir si X se corresponde con la muestra A o con la muestra B. Por cada vez que el sujeto se vea sometido a esta elección, lo llamaremos intento. Al final de la prueba, se analizan el número de pruebas realizadas, el número de aciertos y fallos.
Las señales acústicas que hemos elegido para el test se pueden agrupar en cuatro tipos diferentes de audio:
Música clásica: Sinfonía nº 6 en Fa mayor, op. 68, Pastoral, Ludwig Van Beethoven.Estos cuatro tipos de audio son muy comunes a día de hoy, por lo tanto, son un adecuado objeto de estudio para nuestro proyecto. Cabe destacar que los formatos de los audio obtenidos son del tipo sin pérdida, concretamente en formato WAV. Esto es así para poder trabajar a partir de un material que ofrezca el menor error posible. Destacar que, para homogeneizar las muestras, todos los audio han sido normalizados y convertidos a monocanal con 16 bits de profundidad. Los resultados que obtuve para cada algoritmo esteganográfico fueron los siguientes:
Música comercial: Diamonds, Season One, Emancipator.
Música pop-rock: Cuando los ´árboles se sequen, Casa Grande, Marco Boz y Pablo Páez.
Voz hablada: Blue Sky Bridge, narración en inglés, Fergus Sound Enterprises.
Resultados para LSB: Para evitar detección auditiva, recomiendo utilizar como máximo los 4 bits menos significativos. Capacidad de ocultación del LSB es el producto del número de muestras del audio original y el valor de LSB elegido en cada caso: numero_muestras x N lsb
Resultados para Phase Coding: Para evitar detección auditiva, recomiendo utilizar un valor Th ? 10-4.Es importante tener en cuenta que lo que más pesa a la hora de realizar un buen proceso de ocultación es el fichero portador. En nuestro caso, cuanto más intenso sea el nivel de sonido de nuestra onda portadora, más disimulará el contenido oculto. Por eso he especificado qué tipo de fragmentos musicales he utilizado, y también porque necesitaba una base sobre la que partir. Es por ello que se hace complicado dar un valor preciso que indique cuánta cantidad de información puedo introducir por muestra mediante esta técnica.
Para terminar, ahora que os he soltado toda esta marea de ideas y conceptos, aquí podéis escuchar los ficheros de audio y realizar vosotros mismos vuestras comparativas. Os los dejos organizados por carpetas y por estilos musicales [Audios Codificados, Audios Originales] ¿Hasta dónde sois capaces de detectar el ruido en cada técnica? Empieza el reto ;)
Autor: Jorge Peris (Universidad de Valencia)
Sigue Un informático en el lado del mal - Google+ RSS 0xWord

Available link for download
Friday, November 11, 2016
Cómo una web sabe tu edad idioma y sexo robando los datos de Facebook
Cómo una web sabe tu edad idioma y sexo robando los datos de Facebook
Las técnicas de WebBrowsing Fingerprinting se han especializado durante mucho tiempo en realizar trucos de todo tipo para poder saber quién está delante de la web sin necesidad de que el usuario se lo diga. Desde el uso de las supercookies de todo tipo - hasta de Batería -, pasando por las técnicas de Perfect Pixel hasta averiguar la ubicación de una persona por los archivos que tiene cargados en la caché por haber visitado una web en una localización específica usando una técnica de Time-Based Web History Disclosure. Hoy os quiero contar un caso publicado por el investigador Tom Van Goethem (@tomvangoethem) que tiene que ver con cómo robar tu edad, tu sexo y tu idioma de Facebook por medio de un side-chanel.
Aunque lo voy a centrar en el caso de Facebook, este tipo de técnicas, como él explica en su trabajo de investigación disponible en el artículo "Request and Conquer: Exposing Cross-Origin Resource Size" y en la presentación que ha dado recientemente en OWASP AppSec EU, puede aplicarse a otras redes sociales como Twitter o Linkedin que permiten restringir contenido también en función de los parámetros de la persona que está visitando la red social. Vamos por partes para entender el robo de datos.
Browser-Based Timing Attacks
La técnica de robo de datos de las redes sociales remotamente se basa en utilizar una de mis técnicas favoritas para extraer información a ciegas por un side-chanel: El tiempo. Como sabéis, los side-chanels son canales paralelos que, dependiendo de la información a la que se ha accedido, permiten saber si se ha tenido éxito en una acción o no, o conocer más detalles de la información que hay detrás, como en este caso, el tamaño de las respuestas. Por ejemplo, en el caso de los ataques de Time-Based XSPA (Cross-Site Port Attack) en WordPress o Time-Based XSPA en DBKISS se utiliza el tiempo de respuesta para saber si una web tiene un determinado puerto abierto o cerrado. No se necesita tener ningún mensaje de error distinto cuando el puerto está abierto o cerrado y, simplemente con medir el tiempo de respuesta, se puede saber cómo se comportó el servidor que se intentó escanear y cuál es el estado de ese puerto.
Este tipo de ataques basados en el tiempo como side-chanel han sido y son muy populares junto a las técnicas de SQL Injection, como son los ataques de Time-Based Blind SQL Injection using Heavy Queries u otros entornos criptográficos como el caso de Lucky13 o el bug del artículo de ayer que permite enumerar usuarios en un servidor Linux usando un Time-Based info leak en OpenSSH que se produce enviando una contraseña de gran tamaño que se hashea solo cuando el usuario existe.
En este caso, el investigador proponer calcular el tamaño de un recurso descargado desde una web remota usando dos trucos distintos en el navegador. Ambos se producen en dos acciones que se ejecutan en el navegador una vez que se descarga el recurso y que por tanto eliminan cualquier problema que tenga que ver con la latencia de red, la compresión de los ficheros en el servidor, el uso de servidores de caché de red, etcétera. Es decir, el recurso se descarga, se procesa por un algoritmo en el navegador y dependiendo de si el tamaño el mayor o menor, el tiempo que tardará dicho algoritmo será diferente. Midiendo ese tiempo de procesado se puede inferir el tamaño del recurso descargado.
Los algoritmos que propone el investigador Tom Van Goethem se basan en medir el tiempo de almacenamiento y lectura de la caché por un lado, y por otro en convertir el recurso en un vídeo con una función de Video Parsing.
Con estos algoritmos, dados dos recursos de dos tamaños que difieren entre sí en un número de Kilobytes, con un número determinado de mediciones se podría determinar si el navegador ha descargado el recurso de mayor tamaño o el recurso de menor tamaño. ¿Cuántas mediciones y cuanto tiempo? Pues depende de los tamaños de los recursos.
En la tabla se puede ver cómo usando una combinación de los dos algoritmos, es decir, procesando el recurso en local con el algoritmo de Cache Storing y de Video Parsing, con a partir de diferencias de más de 20 kB en un par de segundos se puede saber si se ha descargado el que tiene 20 kB menos o el que tiene 20 kB más.
Robar tu edad, sexo e idioma a Facebook
Dicho esto, el siguiente paso es averiguar tu edad cuando visitas una web. Para ello se basa robar tu edad de Facebook aprovechando dos cosas:
Con un pequeño código en el navegador se podría saber qué post es el que Facebook ha permitido visitar y por lo tanto qué edad tiene la persona que está visitando la web.
Esto se puede hacer de igual forma, como he dejado publicado al principio, en otras redes sociales como Twitter o Linkedin que también permiten publicar artículos con restricciones lo que permitiría a cualquier página web robarte los datos usando estos trucos.
El resultado es lo que veis arriba, que una web sería capaz de inferir exactamente tu edad haciendo estas mediciones. Aquí tenéis el vídeo de la conferencia en AppSec Eu donde se explica todo esto y se pueden ver las demos en real.
Y por si os interesa, aquí están las respuestas de Facebook y Linkedin cuando se les informó de esta posibilidad de robar los datos de esta forma. No hay mucho cambio que se espere al respecto.
Como podéis ver, navegar por páginas webs y tener las sesiones abiertas de vuestras redes sociales no parece que sea la mejor idea, así que navega en privado y sin tener las sesiones abiertas.
Saludos Malignos!
![]() |
Figura 1: Cómo una web sabe tu edad, idioma y sexo robando los datos de Facebook |
Aunque lo voy a centrar en el caso de Facebook, este tipo de técnicas, como él explica en su trabajo de investigación disponible en el artículo "Request and Conquer: Exposing Cross-Origin Resource Size" y en la presentación que ha dado recientemente en OWASP AppSec EU, puede aplicarse a otras redes sociales como Twitter o Linkedin que permiten restringir contenido también en función de los parámetros de la persona que está visitando la red social. Vamos por partes para entender el robo de datos.
Browser-Based Timing Attacks
La técnica de robo de datos de las redes sociales remotamente se basa en utilizar una de mis técnicas favoritas para extraer información a ciegas por un side-chanel: El tiempo. Como sabéis, los side-chanels son canales paralelos que, dependiendo de la información a la que se ha accedido, permiten saber si se ha tenido éxito en una acción o no, o conocer más detalles de la información que hay detrás, como en este caso, el tamaño de las respuestas. Por ejemplo, en el caso de los ataques de Time-Based XSPA (Cross-Site Port Attack) en WordPress o Time-Based XSPA en DBKISS se utiliza el tiempo de respuesta para saber si una web tiene un determinado puerto abierto o cerrado. No se necesita tener ningún mensaje de error distinto cuando el puerto está abierto o cerrado y, simplemente con medir el tiempo de respuesta, se puede saber cómo se comportó el servidor que se intentó escanear y cuál es el estado de ese puerto.
Este tipo de ataques basados en el tiempo como side-chanel han sido y son muy populares junto a las técnicas de SQL Injection, como son los ataques de Time-Based Blind SQL Injection using Heavy Queries u otros entornos criptográficos como el caso de Lucky13 o el bug del artículo de ayer que permite enumerar usuarios en un servidor Linux usando un Time-Based info leak en OpenSSH que se produce enviando una contraseña de gran tamaño que se hashea solo cuando el usuario existe.
![]() |
Figura 2: Ataque clásico. Se descarga el archivo y se mide el tiempo de respuesta para inferir el tamaño (si tiene acceso y se obtiene el recurso completo o si no lo tiene y se obtiene un error) |
En este caso, el investigador proponer calcular el tamaño de un recurso descargado desde una web remota usando dos trucos distintos en el navegador. Ambos se producen en dos acciones que se ejecutan en el navegador una vez que se descarga el recurso y que por tanto eliminan cualquier problema que tenga que ver con la latencia de red, la compresión de los ficheros en el servidor, el uso de servidores de caché de red, etcétera. Es decir, el recurso se descarga, se procesa por un algoritmo en el navegador y dependiendo de si el tamaño el mayor o menor, el tiempo que tardará dicho algoritmo será diferente. Midiendo ese tiempo de procesado se puede inferir el tamaño del recurso descargado.
![]() |
Figura 3: Cache-Storing: Medición del tiempo de almacenamiento y acceso en caché |
Los algoritmos que propone el investigador Tom Van Goethem se basan en medir el tiempo de almacenamiento y lectura de la caché por un lado, y por otro en convertir el recurso en un vídeo con una función de Video Parsing.
![]() |
Figura 4: Video-Parsing. Se mide el tiempo de conversión del recurso |
Con estos algoritmos, dados dos recursos de dos tamaños que difieren entre sí en un número de Kilobytes, con un número determinado de mediciones se podría determinar si el navegador ha descargado el recurso de mayor tamaño o el recurso de menor tamaño. ¿Cuántas mediciones y cuanto tiempo? Pues depende de los tamaños de los recursos.
![]() |
Figura 5: Tiempo que se tarda en averiguar si es el fichero grande o pequeño en función de la diferencia en tamaño que hay entre ambos. |
En la tabla se puede ver cómo usando una combinación de los dos algoritmos, es decir, procesando el recurso en local con el algoritmo de Cache Storing y de Video Parsing, con a partir de diferencias de más de 20 kB en un par de segundos se puede saber si se ha descargado el que tiene 20 kB menos o el que tiene 20 kB más.
Robar tu edad, sexo e idioma a Facebook
Dicho esto, el siguiente paso es averiguar tu edad cuando visitas una web. Para ello se basa robar tu edad de Facebook aprovechando dos cosas:
a) que los usuarios suelen estar logados en Facebook cuando navegan por la webAsí, un atacante podría crear posts en Facebook con un tamaño que difiera en más de 20 o 30 kB con el tamaño de la respuesta que da Facebook cuando no se pueda acceder a ese recurso (porque no se cumplen las restricciones) y forzar a una web a intentar cargar esos artículos.
b) que en Facebook se pueden generar posts restringidos por idioma, edad y sexo del que visita la red social.
![]() |
Figura 6: Limitar la visibilidad de un post en Facebook |
Con un pequeño código en el navegador se podría saber qué post es el que Facebook ha permitido visitar y por lo tanto qué edad tiene la persona que está visitando la web.
![]() |
Figura 7: Esquema del ataque completo. |
Esto se puede hacer de igual forma, como he dejado publicado al principio, en otras redes sociales como Twitter o Linkedin que también permiten publicar artículos con restricciones lo que permitiría a cualquier página web robarte los datos usando estos trucos.
![]() |
Figura 8: Descubrimiento de edad con carga de posts de Facebook |
El resultado es lo que veis arriba, que una web sería capaz de inferir exactamente tu edad haciendo estas mediciones. Aquí tenéis el vídeo de la conferencia en AppSec Eu donde se explica todo esto y se pueden ver las demos en real.
Figura 9: Tom Van Goethem en AppSec Eu 2016
![]() |
Figura 10: Respuestas de Facebook y Linkedin |
Como podéis ver, navegar por páginas webs y tener las sesiones abiertas de vuestras redes sociales no parece que sea la mejor idea, así que navega en privado y sin tener las sesiones abiertas.
Saludos Malignos!
Sigue Un informático en el lado del mal - Google+ RSS 0xWord

Available link for download
Tuesday, October 25, 2016
Esconder datos en pista oculta de un CD Audio HTOA con esteganografía y cifrado al estilo Mr Robot MrRobot
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.
![]() |
Figura 8: Cifrando el contenido con DeepSound |
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.
![]() |
Figura 9: Reproductor y grabadora CD/DVD capaces de funcionar con HTOA |
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).
![]() |
Figura 11: Creación de una CUE Sheet en ImgBurn, mostrando la HTOA + Pista 1 |
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_ProjectIO+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_ProjectTrack2.wav" WAVE
REM FILE-DECODED-SIZE 00:05:49
TRACK 02 AUDIO
INDEX 01 00:00:00
FILE "C:DeepSound_ProjectTrack3.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.
![]() |
Figura 12: Revisando en ImgBurn la HTOA mediante el Index 0 |
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:
![]() |
Figura 13: Fallo en ImgBurn durante el proceso de verificación cuando la grabadora no soporta HTOA |
¡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
.
![]() |
Figura 14: Copiando el rango de audio con EAC, abarcando HTOA + Pista 1 |
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 15: Pista 1 del cda en DeepSound 2.0 |
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.
![]() |
Figura 16: Importando el fichero de Audito HTOA + Pista 1 en DeepSound |
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.
![]() |
Figura 18: Comparando los ficheros de Audio, sin y con esteganografía, en hexadecimal |
¿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
Sigue Un informático en el lado del mal - Google+ RSS 0xWord

Available link for download
Subscribe to:
Posts (Atom)