Mostrando las entradas con la etiqueta Ataques. Mostrar todas las entradas
Mostrando las entradas con la etiqueta Ataques. Mostrar todas las entradas

sábado, 4 de enero de 2020

Análisis Chi-cuadrada en esteganografía LSB

En esta entrada explicaré el método para detectar mensajes ocultos usando Chi-Cuadrada.


Un estudio publicado en el año 2000 por Andreas Westfeld describe un método para detectar la presencia de un mensaje aleatorio oculto dentro del plano LSB usando un análisis  estadístico Chi-cuadrada[1]. 


Recordemos que...

En la entrada El método LSB (parte 2) su puede observar que cuando el mensaje se oculta de forma aleatoria en el plano LSB es imperceptible a simple vista, esto provoca que el mensaje pase desapercibido (ver Figura 1).
Figura 1. Comparación de los planos LSB marcados usando un mensaje secuencial y aleatorio.
Es importante recordar que los bits del plano LSB no tienen una naturaleza aleatoria  (analizado en la entrada El Método LSB (parte 1)). En la Figura 2 se muestra el plano LSB de la imagen Bird. Se puede observar que tiene cierto patrón no aleatorio.


Figura 2. Imagen y su plano LSB, se puede observar la naturaleza no aleatoria del plano LSB.

DEFINICIÓN. El estudio de los sistemas de esteganografía con el fin de detectar mensajes ocultos se le conoce como estegoanálisis. Cuando hacemos estegoanálisis y detectamos la existencia de un mensaje oculto se considera que el método esteganográfico está roto, es opcional si se extrae el mensaje oculto o si se determina su tamaño. De esta manera, el análisis estadístico Chi-cuadrada y el análisis visual expuesto en la entrada El método LSB (parte 2) son ejemplos de dos técnicas de estegoanálisis.


En el siguiente video se explicará el funcionamiento del estegoanálisis usando chi-cuadrada para detectar la presencia de un mensaje aleatorio oculto en el plano LSB.






[1] A. Westfeld and A. Pfitzmann, "Attack on Steganographic Systems", Lectures Notes in Computer Science, vol. 1768, Springer-Verlag, Berlin, 2000, pp. 61-75.


Watermarkero en facebook: https://www.facebook.com/watermarkero


sábado, 4 de julio de 2009

El Método LSB ( parte 2 )

Recapitulando, el método LSB se caracteriza por lo siguiente:
  1. La información se oculta en los bits menos significativos.
  2. No es un método robusto, puesto que si la imagen marcada es distorsionada se pierde información .
  3. Si se analiza visualmente el plano LSB, se puede notar que "hay algo extraño" (ataque visual), lo que puede provocar que un atacante distorsione la imagen para eliminar la información.
Como dice el tercer punto, cuando se marca una imagen con el método LSB se puede notar a simple vista la distorsión generada al modificar los bits menos significativos como se mostró en la entrada anterior. En dicha entrada se ocultó un mensaje periódico que en la realidad sería muy raro tenerlo. Lo que haremos a continuación es ocultar texto en la imagen. Cada letra del texto será convertido a su valor ASCII (de 8 bits), de esta forma el mensaje que ocultaremos será una serie de números de 8 bits. El mensaje que ocultaremos es la famosa poesía del maestro Mario Benedetti (que recientemente falleció) llamada "no te salves". A continuación escribo un extracto de dicha poesía:

No te salves
Mario Benedetti

No te quedes inmóvil
al borde del camino
no congeles el júbilo
no quieras con desgana
no te salves ahora
ni nunca
no te salves

...

La imagen marcada con la poesía y su plano LSB se muestran a continuación:

Lena marcada con una poesía de Benedetti

Como se puede apreciar existe un patrón de líneas verticales debido a la codificación ASCII que usamos, puesto que muchas letras comparten ciertos bits, como las letras minúsculas que pertenecen a un pequeño rango de la codificación ASCII. La poesía escondida en la imagen consta de 762 Bytes. Si ocultamos 5 veces la poesía en la imagen podremos observar mejor el patrón de líneas verticales generado:

Patrón vertical generado en el plano LSB al ocultar texto

Para evitar este patrón generado al ocultar el texto en la imagen podemos ocultar la marca de manera aleatoria en el plano LSB. Antes de continuar con esta modificación les enlistaré las principales modificaciones que se pueden hacer al método LSB.

Entre las principales modificaciones del método LSB encontramos:
  1. Ocultar la información aleatoriamente en el plano LSB para evitar un ataque visual.
  2. Ocultar la información en bordes de la imagen evitando zonas homogéneas para evitar ataques visuales.
  3. Usar mas planos LSB para ocultar información.
  4. Utilizar el método LSB para detectar cambios hechos en la imagen.
  5. Utilizar el método LSB como un método reversible para extraer la imagen original de la marcada.
La primer modificación consiste en ocultar aleatoriamente los bits del mensaje en la imagen. El camino que tomaremos es el desordenar aleatoriamente la marca. La forma de hacerlo es después de tener el tren de bits de la marca se procederá a desordenarlo usando una llave. Dicha llave será necesaria para reordenar la marca después de extraerla de la imagen marcada. A continuación observaremos la imagen marcada y el plano LSB de la misma. Para ello ocultamos la misma poesía de Benedetti descrita anteriormente.

Lena marcada con un mensaje aleatorio

Nos podemos dar cuenta que un ataque visual no surtiría efecto si ocultamos la marca aleatoriamente puesto que no nos podemos percatar de algún patrón o algo extraño que se vea en el plano LSB. La siguiente imagen muestra la diferencia notable de no usar y de usar una marca aleatoria.

Comparación de los planos LSB marcados usando marcas originales y aleatorias

Otra forma de hacer esta modificación es distribuir la marca aleatoria en todo el plano LSB.

Esta primera modificación evita un ataque visual, pero existe un tipo de ataque estadístico llamado prueba Chi-cuadrada que puede detectar la presencia de la marca dentro la imagen marcada siempre y cuando la marca sea ocultada de forma aleatoria.

En la siguiente entrada describiremos la prueba Chi cuadrada, posteriormente continuaremos con las otras cuatro modificaciones del método LSB restantes.

Saludos a todos.

PD. El código fuente (en matlab) de los métodos explicados en esta entrada se enlistan continuación:
1. Método LSB que oculta un mensaje periódico en una imagen bmp (descrito en la entrada anterior).
2. Método LSB que oculta un texto en una imagen bmp.
3. Método LSB que oculta un texto aleatoriamente en una imagen bmp.

lunes, 2 de febrero de 2009

Clasificaciones de las marcas de agua

Existen muchas clasificaciones de la marcas de agua pero las principales se muestran a continuación

De todas estas, nos centraremos en la clasificación por su uso específico. De esta forma, las marcas de agua se pueden usar para evitar detección del mensaje incrustado. Para lograr este objetivo la incrustación del mensaje debe distorsionar poco al medio portador, esto se hace para no levantar sospecha alguna de que hay algo oculto. Por ejemplo, si se esconde información en una imagen y la imagen marcada resulta muy distorsionada, entonces se generarán sospechas de que la imagen ha sido modificada provocando que la imagen sea analizada para ver si existe información dentro de ella. Entonces, para evitar la detección del mensaje incrustado se deben evitar distorsiones en el medio marcado. A las técnicas de marcas de agua encargadas de esto se llaman técnicas de ocultamiento de información.

Las marcas de agua se pueden usar para evitar la eliminación del mensaje incrustado para ello se utilizan las llamadas marcas de agua robustas. Este tipo de marcas de agua resisten ciertos ataques hechos al medio marcado, de esta forma se utilizan para esconder información de protección de derechos de autor y de copia, entre otros.

Las marcas de agua frágiles y semi frágiles son utilizadas para evitar falsificaciones hechas a los medios marcados. Una característica de este tipo de esquemas es, al contrario de las marcas de agua robustas, que no resisten ataques o distorsiones hechas al medio marcado. Si el medio marcado es modificado entonces la marca se pierde, lo que constituye una posible falsificación.

Como podemos ver las cada uno de estos tipos de marcas de agua son utilizados por aplicaciones específicas:
  • El ocultamiento de información es utilizada por aplicaciones en las que se desea mantener la información incrustada en secreto. Es decir, estas aplicaciones requieren un bajo impacto perceptal (pocas distorsiones) para evitar sospechas.
  • Las marcas de agua robustas son utilizadas por aplicaciones que se necesita resistir distorsiones en el medio marcado.
  • Las marcas de agua frágiles y semi frágiles son usadas por aplicaciones que verifican la integridad u originalidad del medio marcado, para ello no resisten distorsiones hechas a los medios marcados.
----------------
Antes de continuar.....Hablemos de ataques
Los ataques se clasifican en:
  • Ataques activos: Distorsionan o modifican el medio marcado para eliminar el mensaje incrustado o evitar que la función de extracción lo encuentre. Ejemplos de estos ataques son: en imágenes: Compresiones son pérdida(JPEG,GIF), filtrados, cambio de contraste, brillo, histogramas, modificaciones geométricas (rotaciones, translaciones, espejo,etc) entre otras.
  • Ataques pasivos: Analizan el medio marcado para determinar la existencia de un mensaje, el tamaño del mismo o simplemente para extraerlo. Ejemplos de estos son los ataques visuales y los ataques estadísticos (Chi-cuadrada).
Más adelante haremos ejemplos de estos ataques.
----------------

Los requerimientos básicos de una aplicación de marcas de agua son tres:
  1. Capacidad: Es la cantidad máxima de información que puede ser ocultada en un medio.
  2. Robustez: Es la capacidad que tiene un algoritmo de marcas de agua para poder extraer el mensaje incrustado del medio marcado después de que éste último haya sido atacado.
  3. Impacto perceptual: Un algoritmo de marcas de agua es verdaderamente imperceptible si no se puede distinguir a simple vista las diferencias entre el medio marcado y el medio original. Aunque esta capacidad es en origen subjetiva, existen métricas para evaluarla. Como ejemplo se tiene a la relación señal a ruido (PSNR), el error cuadrático medio (EMS), la correlación, el error absoluto máximo (MAE), etc. Nótese que para poder evaluar esta capacidad es necesario comparar al medio marcado con el medio original. Como normalmente se distribuye el medio marcado sin el medio portador es suficiente que las modificaciones en el medio marcado pasen desapercibidas para que el algoritmo de marcas de agua utilizado sea considerado como imperceptible.
De esta forma una aplicación hecha para verificar la integridad de imágenes médicas (para evitar modificar ultrasonidos, imágenes de rayos X, etc.) requiere un bajo impacto perceptual, una poca robustez y poca capacidad, es decir se ubicaría en la región más azul (cercana al cruce de ejes) de la gráfica siguiente. Esta gráfica muestra la relación entre estos requerimientos básicos.


Por otro lado, una aplicación para proteger imágenes satelitales (derechos de autor), necesita ser resistente a diferentes esquemas de compresión con pérdida (es decir que la imagen comprimida no es la misma que la imagen original, puesto que existió una perdida en los píxeles e. g. JPEG). Se necesita esta resistencia pues los posibles ladrones de las imágenes, por lo general, saben de la existencia de la marca (mensaje oculto), entonces ellos proceden a tratar de eliminarla modificando el medio marcado, evitando dejarlo muy distorsionado ya que no les serviría. Este tipo de aplicaciones robustas impactan perceptualmente al medio marcado pues se utiliza mucha redundancia de información(repetir muchas veces la misma marca) y métodos que guardan información distorsionando mucho al medio. Hay que notar que la capacidad de este tipo de esquemas es mínima, pues la redundancia decrementa la capacidad. La ubicación de estos esquemas en la gráfica anterior es cercana a la zona amarilla y roja.


Bueno... ya basta de choro mareador (bla bla bla) en la siguiente entrada realizaremos un esquema de marcas de agua para imágenes llamado LSB (least significant bit).

Que estén bien, estamos en contact...