Jordi Serra-Ruiz Descubriendo Comunicaciones Ocultas 30 Octubre 2014 NocONName
Jordi Serra-Ruiz: Profesor Universitat Oberta de Catalunya Director del Máster Interuniversitario de seguridad en las TIC Miembro del grupo de investigación KISON, K-riptography and Information Security for Open Networks. Ponente en congresos internacionales sobre seguridad Organizador de Congresos: RECSI, UOC-Con, Information Hiding
Esteganografia: Del griego “stego” (esconder) y “grapho” (escribir) Esconder un mensaje dentro de un contenido inocuo, de manera que no sea percibido.
Historia
Rejilla de Cardado
La Celestina, o Comedia de Calisto y Melibea El bachiller Fernando de Royas acabó la comedia de Calisto y Melibea y fue nacido en la Puebla de Montalván
El responsable definitivo es el EMAD
Microfiltros en la guerra fría
Propiedades
CAPACITY TRANSPARENCYROBUSTNESS Amount of information that is embedded into the cover object. Provides a measure of the perceptible distortion between original and marked object. The ability of the watermark detector to extract the embedded watermark after common manipulations. SECURITY The scheme must be secure, an adversary must not be able to detect data embedded. BLIND/INFORMED EXTRACTION/DETECTION The detection scheme may not have access to the original object.
L east S ignificant B it Replacement
Imagen escala de grises R G B Imagen Color RGB
LetraASCIIBinario A RealBinarioBinario+LSBmensaje EJEMPLO OCULTACIÓN
Herramientas: Stepic: $ stepic -e -i mandril_color.tif -o mandril_stepic.tif -t message.txt OpenStego:
Stegoanalisis LSB
import sys from PIL import Image # Leemos la imagen pasada como parametro i = Image.open(sys.argv[1]) pixels = i.load() width, height = i.size # Establecemos valores para LSB=1 y LSB=0 for y in range(height): for x in range(width): r=g=b=0 if pixels[x, y][0]%2==1: r=0 else: r=255 if pixels[x, y][1]%2==1: g=0 else: g=255 if pixels[x, y][2]%2==1: b=0 else: b=255 pixels[x, y] = (r, g, b) i.show() i.save(sys.argv[2]) Análisis Visual
Valor Píxel Binario Bit inserción Resultado = ↑ ↓ =
Histograma imagen Original Intercambio de Pixeles
Histograma imagen con mensaje
import sys from PIL import Image # Leemos la imagen pasada como parametro i = Image.open(sys.argv[1]) pixels = i.load() width, height = i.size # Recorremos la imagen calculando el histograma histogram = [0]*255 for y in range(height): for x in range(width): cur_pixel = pixels[x, y] histogram[cur_pixel]+=1 # Restamos las parejas de barras total=0 for y in xrange(1, len(histogram), 2): dif=abs(histogram[y-1]-histogram[y]) total+=dif print total
CLASE DE MATEMATICAS SISTEMAS LINEALES
L east S ignificant B it Matching
Valor píxelARestaSuma Reemplazar el LSB por ±1
AUDIO
Transformadas matemáticas Fourier Wavelet UPC - Procesamiento Digital de la Señal UAB - Señales y sistemas
Tranformada de Fourier
Espectro Frecuencial
Discrete Wavelet Transform
Propuesta app
Modificación del espectro frecuencial para insertar los bits del mensaje
DEMO Envío de mensaje oculto a un dispositivo móvil