Jordi Serra-Ruiz Descubriendo Comunicaciones Ocultas 30 Octubre 2014 NocONName.

40
Jordi Serra-Ruiz Descubriendo Comunicaciones Ocultas 30 Octubre 2014 NocONName

Transcript of Jordi Serra-Ruiz Descubriendo Comunicaciones Ocultas 30 Octubre 2014 NocONName.

Page 1: Jordi Serra-Ruiz Descubriendo Comunicaciones Ocultas 30 Octubre 2014 NocONName.

Jordi Serra-Ruiz

Descubriendo Comunicaciones Ocultas

30 Octubre 2014

NocONName

Page 2: 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

Page 3: Jordi Serra-Ruiz Descubriendo Comunicaciones Ocultas 30 Octubre 2014 NocONName.

Esteganografia:

Del griego “stego” (esconder) y “grapho” (escribir)

Esconder un mensaje dentro de un contenido inocuo, de manera que no sea percibido.

Page 4: Jordi Serra-Ruiz Descubriendo Comunicaciones Ocultas 30 Octubre 2014 NocONName.

Historia

Page 5: Jordi Serra-Ruiz Descubriendo Comunicaciones Ocultas 30 Octubre 2014 NocONName.
Page 6: Jordi Serra-Ruiz Descubriendo Comunicaciones Ocultas 30 Octubre 2014 NocONName.

Rejilla de Cardado

Page 7: Jordi Serra-Ruiz Descubriendo Comunicaciones Ocultas 30 Octubre 2014 NocONName.

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

Page 8: Jordi Serra-Ruiz Descubriendo Comunicaciones Ocultas 30 Octubre 2014 NocONName.

El responsable definitivo es el EMAD

Page 9: Jordi Serra-Ruiz Descubriendo Comunicaciones Ocultas 30 Octubre 2014 NocONName.

Microfiltros en la guerra fría

Page 10: Jordi Serra-Ruiz Descubriendo Comunicaciones Ocultas 30 Octubre 2014 NocONName.
Page 11: Jordi Serra-Ruiz Descubriendo Comunicaciones Ocultas 30 Octubre 2014 NocONName.

http://0xword.com/es/libros/

Page 12: Jordi Serra-Ruiz Descubriendo Comunicaciones Ocultas 30 Octubre 2014 NocONName.

Propiedades

Page 13: Jordi Serra-Ruiz Descubriendo Comunicaciones Ocultas 30 Octubre 2014 NocONName.

CAPACITY

TRANSPARENCY ROBUSTNESS

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.

SECURITYThe scheme must be secure, an adversary must not be able to detect data embedded.

BLIND/INFORMED EXTRACTION/DETECTIONThe detection scheme may not have access to the original object.

Page 14: Jordi Serra-Ruiz Descubriendo Comunicaciones Ocultas 30 Octubre 2014 NocONName.

LeastSignificantBit

Replacement

Page 15: Jordi Serra-Ruiz Descubriendo Comunicaciones Ocultas 30 Octubre 2014 NocONName.

Imagen escala de grises

112 01110000

113 01110001

R 50 00110010 00110010 50

G 101 01100101 01100100 100

B 73 01001001 01001000 72

Imagen Color RGB

Page 16: Jordi Serra-Ruiz Descubriendo Comunicaciones Ocultas 30 Octubre 2014 NocONName.

Letra ASCII Binario

A 65 0 1 0 0 0 0 0 1

Real Binario Binario+LSB mensaje

110 01101110 01101110 110

108 01101100 01101101 109

100 01100100 01100100 100

95 01011111 01011110 94

101 01100101 01100100 100

101 01100101 01100100 100

102 01100110 01100110 102

109 01101101 01101101 109

EJEMPLO OCULTACIÓN

Page 17: Jordi Serra-Ruiz Descubriendo Comunicaciones Ocultas 30 Octubre 2014 NocONName.

Herramientas:

Stepic: $ stepic -e -i mandril_color.tif -o mandril_stepic.tif -t message.txt

OpenStego:

Page 18: Jordi Serra-Ruiz Descubriendo Comunicaciones Ocultas 30 Octubre 2014 NocONName.

Stegoanalisis LSB

Page 19: Jordi Serra-Ruiz Descubriendo Comunicaciones Ocultas 30 Octubre 2014 NocONName.

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

Page 20: Jordi Serra-Ruiz Descubriendo Comunicaciones Ocultas 30 Octubre 2014 NocONName.

Análisis Visual

Page 21: Jordi Serra-Ruiz Descubriendo Comunicaciones Ocultas 30 Octubre 2014 NocONName.
Page 22: Jordi Serra-Ruiz Descubriendo Comunicaciones Ocultas 30 Octubre 2014 NocONName.

Valor Píxel Binario

Bit inserció

nResultado

1001100100 0 100 =

1100100 1 101 ↑

1011100101 0 100 ↓

1100101 1 101 =

Page 23: Jordi Serra-Ruiz Descubriendo Comunicaciones Ocultas 30 Octubre 2014 NocONName.

Histograma imagen Original

Intercambio de Pixeles

Page 24: Jordi Serra-Ruiz Descubriendo Comunicaciones Ocultas 30 Octubre 2014 NocONName.

Histograma imagen con mensaje

Page 25: Jordi Serra-Ruiz Descubriendo Comunicaciones Ocultas 30 Octubre 2014 NocONName.

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

Page 26: Jordi Serra-Ruiz Descubriendo Comunicaciones Ocultas 30 Octubre 2014 NocONName.

CLASE DE MATEMATICASSISTEMAS LINEALES

Page 27: Jordi Serra-Ruiz Descubriendo Comunicaciones Ocultas 30 Octubre 2014 NocONName.
Page 28: Jordi Serra-Ruiz Descubriendo Comunicaciones Ocultas 30 Octubre 2014 NocONName.
Page 29: Jordi Serra-Ruiz Descubriendo Comunicaciones Ocultas 30 Octubre 2014 NocONName.

LeastSignificantBit Matching

Page 30: Jordi Serra-Ruiz Descubriendo Comunicaciones Ocultas 30 Octubre 2014 NocONName.

Valor píxel A Resta Suma

110 01101110 0 01101110 110 01101110 110

108 01101100 1 01101011 107 01101101 109

100 01100100 0 01100100 100 01100100 100

95 01011111 0 01011110 94 01100000 96

101 01100101 0 01100100 100 01100110 102

101 01100101 0 01100100 100 01100110 102

102 01100110 0 01100110 102 01100110 102

109 01101101 1 01101101 109 01101101 109

Reemplazar el LSB por ±1

Page 31: Jordi Serra-Ruiz Descubriendo Comunicaciones Ocultas 30 Octubre 2014 NocONName.
Page 32: Jordi Serra-Ruiz Descubriendo Comunicaciones Ocultas 30 Octubre 2014 NocONName.

AUDIO

Page 33: Jordi Serra-Ruiz Descubriendo Comunicaciones Ocultas 30 Octubre 2014 NocONName.

Transformadas matemáticas• Fourier

• Wavelet

UPC - Procesamiento Digital de la Señal

UAB - Señales y sistemas

Page 34: Jordi Serra-Ruiz Descubriendo Comunicaciones Ocultas 30 Octubre 2014 NocONName.

Tranformada de Fourier

Page 35: Jordi Serra-Ruiz Descubriendo Comunicaciones Ocultas 30 Octubre 2014 NocONName.

Espectro Frecuencial

Page 36: Jordi Serra-Ruiz Descubriendo Comunicaciones Ocultas 30 Octubre 2014 NocONName.

Discrete Wavelet Transform

Page 37: Jordi Serra-Ruiz Descubriendo Comunicaciones Ocultas 30 Octubre 2014 NocONName.

Propuesta app

Page 38: Jordi Serra-Ruiz Descubriendo Comunicaciones Ocultas 30 Octubre 2014 NocONName.

Modificación del espectro frecuencialpara insertar los bits del mensaje

Page 39: Jordi Serra-Ruiz Descubriendo Comunicaciones Ocultas 30 Octubre 2014 NocONName.
Page 40: Jordi Serra-Ruiz Descubriendo Comunicaciones Ocultas 30 Octubre 2014 NocONName.

DEMO

Envío de mensaje oculto a un dispositivo móvil