cifrado fuerte para humanos débiles
TRANSCRIPT
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
Contenido
1
2
3
Qué es el cifrado de Vernam
De dónde saco los datos aleatorios
Lo pegamos con Python
0 Motivación
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
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
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
rngd random Linux
Alimenta la entropía del sistema con los generadores de aleatoriedad hardware.
1MB → 0,943s
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