cifrado fuerte para humanos débiles

41
Cifrado fuerte Para humanos débiles

Upload: datio-big-data

Post on 22-Jan-2018

303 views

Category:

Engineering


1 download

TRANSCRIPT

Cifrado fuertePara humanos débiles

millaguie@babia: ~$ whoamiFrancisco Javier Picado Ladrón de Guevara

DevOps monkey @ datio

Graduado en ingeniería informática por la UI1

OSCP

OSWP

NERF sniper!

Colaborador de:

NocONName

Mad 4 hacking

Faq1n

Cryptography: The Importance of Not Being Different

¡No hagas tu propia criptografía!

¡HEMOS VENIDO A JUGAR!

Contenido

1

2

3

Qué es el cifrado de Vernam

De dónde saco los datos aleatorios

Lo pegamos con Python

0 Motivación

0. MOTIVACIÓN

Criptografía entendible

¿Quién puede hacer RSA de cabeza?

Trabajo de Fin de Grado

Este es mi TFG, hay otros muchos pero este es el mío. Mi TFG es mi mejor esfuerzo, y es mi pasión, tengo que dominarlo igual que me domino a mí mismo.

Fallos graves en openssl

CVE-2016-2107 3 de Mayo

CVE-2016-0703 1 de Marzo

CVE-2016-6309 26 de Septiembre

“Romper RSA es fácil

1. Cifrado de Vernam

Componentes de Vernam

Operación XOR Conjunto de datos

aleatorios

Texto en claro / texto

cifrado

Componentes de Vernam

XOR

A B Q

0 0 0

0 1 1

1 0 1

1 1 0

Cifrado

Descifrado

Problemas de Vernam

AleatoriedadHay un apartado para esto

Intercambio de clavesEn persona, de forma segura, con

claves firmadas.

Mantener secretoIngeniería social, criptoanálisis de

manguera gorda, robo de claves (

soportes, sistemas comprometidos).

Guardar las claves¡Son tan grandes como lo que

quieras cifrar!

Reutilización de clavePosibilidad de criptoanálisis por

frecuencia

2. La aleatoriedad

Análisis de aleatoriedad

STS

Statistical Test Suite de NISTBalanced Technical Computing de CISCO, https://github.com/arcetri/STS

DiE HARD(ER)

George MarsagliaRobert Brownhttp://webhome.phy.duke.edu/~rgb/General/dieharder.php

FIPS 140-2

Federal Information

Processing Standard

rngtest

apt install rngtest

ent

Prueba de entropíaPrueba de densidad de información.

Prueba de distribución

X2La suma de los cuadrados se

asemeja a una distribución dada.

Prueba de media

aritméticaSe suma todo se divide entre el

número de miembros.

Prueba Valor

Montecarlo para PIEs una puta rallada y no se puede

explicar en dos líneas

Prueba Coeficiente de

autocorrelaciónCuánto depende un byte del

anterior

Descargarhttp://www.fourmilab.ch/random/

apt install ent

Entendible por humanos

Compresión

rarzipbzip2gzxzarj

Convertir en imagen

rawtoppm -rgb 256 256 rand | pnmtopng > rand.png

Generadores aleatoriedad

Completamente aleatorios (TRNG)

Dado equilibradoRuido de Johnson-Nyquist

Desintegración radioactiva

Ruido atmosférico

Pseudo Aleatorios (PRNG)

Sistemas criptográficosCompresoresKISSYarrow

Random Linux

Lee estados del kernel cuyos valores se supone aleatorios y los expande mientras el grado de entropía sea alto.1MB → 5054m10.395s

Urandom Linux > 4.8

Igual que el random del kernel pero no bloqueante. Expansión de semilla aleatoria mediante ChaCha20

1MB → 0,035s

Urandom Linux < 4.8

Expansión de semilla aleatoria mediante funciones parecidas a las de resumen.1MB → 0,262s

HAVEGE random Linux

HArdware Volatile Entropy Gathering and Expansion.

1MB → 0,447s

rngd random Linux

Alimenta la entropía del sistema con los generadores de aleatoriedad hardware.

1MB → 0,943s

Random FreeBSD

Usa Fortuna, parecido a ChaCha20, no es un TRNG.

1MB → 0,082s

Random MacOS

Vieja implementación de FreeBSD Yarrow.

1MB → 0.100s

ChaosKey

Dos semiconductores PN conectados inversamente.

1MB → 3.702s

ChaosKey

Dos semiconductores PN conectados inversamente.

1MB → 3.702s

random.org

Bola extra

Ruido atmosférico

1MB → ¿1 día?

Algo no aleatorio

Conclusiones

No analices mucho los

datosTodos los pseudoaleatorios van a

pasar las pruebas… 9, 9, 9

Analiza el método de

generaciónQue es lo que realmente importa

Compra discos durosSon baratos

Queda más con tus

amigosAdemás de intercambiar claves

puedes tomar una cerveza

Se pueden hacer cosa

sin internetEvitas exposición

No reutilices la claveNo, en serio, no es buena idea

Conclusiones y 2

Manten el secretoShhh….

Salvo que sea demasiado

complicado mantenerlo.

Vernam es negable...Basta con crear tu propia clave para

ese mensaje cifrado

No uses estoSalvo para jugar

3. La implementación

https://github.com/millaguie/Vernam

La demostrasió

La demostrasió

¡Gracias!¿preguntas?

@[email protected]