ANÁLISIS DE FRECUENCIAS EN CÉSAR
Análisis de frecuencias en César
Supongamos texto cifrado con César general
UDRBY ANWMR XBDLR PJAAR UUXHN GQJUX NUQDV XNWCX WLNBD WJUDI
BNNWL NWMRX JUXUN SXBHD WPJCX LADIX UJLJU UNDWP JCXMN LXUXA
VJAAX WXBLD AXBDL RXHVJ UXURN WCNZD NVJUJ BDNACN
Desconocemos desplazamiento. Opciones:
Fuerza bruta: 25 posibilidades
Análisis de frecuencias
Análisis de frecuencias en César
La X es la letra más frecuente en el texto cifrado => Suponiendo texto original en
español, probablemente sea una E en el texto claro (o una A, una O o una S), dado que
estas letras (E,A,O,S) son las más frecuentes en español.
Análisis de frecuencias en César
¿Cómo debemos proceder?
¿Qué diferencia hay con el análisis de frecuencias general?
¿Es necesario probar a descifrar el texto con una sustitución dada
para ver si ésta es correcta?
¿Son válidas todas las sustituciones?
Análisis de frecuencias en César. Técnica AEOS
1ª suposición: X (texto cifrado) -> e (texto claro)
0 1 2 3 4 5 6 7 8 910111213141516171819202122232425
plain = a b c d e f g h i j k l m n o p q r s t u v w x y z
cipher = T U V W X Y Z A B C D E F G H I J K L M N O P Q R S
Si la suposición es cierta para la letra "e", las letras correspondientes a la
"a", la "o" y la "s" en el texto cifrado (en este caso T, H y L) también
deberían tener frecuencias altas
T: 0, H: 3 y L: 8 => NO CUMPLE => SIN NECESIDAD DE DESCIFRAR,
sabemos que la suposición no es correcta
Análisis de frecuencias en César. Técnica AEOS
2ª suposición: X (texto cifrado) -> a (texto claro)
0 1 2 3 4 5 6 7 8 910111213141516171819202122232425
plain = a b c d e f g h i j k l m n o p q r s t u v w x y z
cipher = X Y Z A B C D E F G H I J K L M N O P Q R S T U V W
Si la suposición es cierta:
e (texto claro) -> B (texto cifrado)
o -> L
s -> P
B: 8, L: 8 y P: 3 => NO CUMPLE => SIN NECESIDAD DE DESCIFRAR,
sabemos que la suposición no es correcta
Análisis de frecuencias en César. Técnica AEOS
3ª suposición: X (texto cifrado) -> o (texto claro)
0 1 2 3 4 5 6 7 8 910111213141516171819202122232425
plain = a b c d e f g h i j k l m n o p q r s t u v w x y z
cipher = J K L M N O P Q R S T U V W X Y Z A B C D E F G H I
Si la suposición es cierta:
a (texto claro) -> J (texto cifrado)
e -> N
s -> B
J: 12, N: 16 y B: 8 => CUMPLE => SIN NECESIDAD DE DESCIFRAR,
sabemos que la suposición es correcta
La solución es desplazamiento = 9, o lo que es lo mismo a -> J
Análisis de frecuencias en César. Técnica AEOS
Comprobamos
UDRBY ANWMR XBDLR PJAAR UUXHN GQJUX NUQDV XNWCX WLNBD WJUDI
BNNWL NWMRX JUXUN SXBHD WPJCX LADIX UJLJU UNDWP JCXMN LXUXA
VJAAX WXBLD AXBDL RXHVJ UXURN WCNZD NVJUJ BDNACN
Desplazamiento = 9 (a -> J)
LUISP RENDI OSUCI GARRI LLOYE XHALO ELHUM OENTO NCESU NALUZ
SEENC ENDIO ALOLE JOSYU NGATO CRUZO LACAL LEUNG ATODE COLOR
MARRO NOSCU ROSUC IOYMA LOLIE NTEQU EMALA SUERTE
LUIS PRENDIO SU CIGARRILLO Y EXHALO EL HUMO. ENTONCES, UNA LUZ
SE ENCENDIO A LO LEJOS Y UN GATO CRUZO LA CALLE. UN GATO DE
COLOR MARRÓN OSCURO. SUCIO Y MALOLIENTE. QUE MALA SUERTE
Análisis de frecuencias en César. Técnica AEOS
La técnica AEOS permite averiguar el desplazamiento (la letra del
texto cifrado que se corresponde con la "a“ en el texto claro) SIN
necesidad de ver el resultado de la operación de descifrado
Esta técnica es aplicable a los subcriptogramas que genera Kasiski
MÉTODO DE KASISKI
Kasiski
Repaso:
Píldora formativa 19: ¿Qué es la cifra de Vigenère?
[Link]
Píldora formativa 20: ¿Cómo se ataca por Kasiski la cifra de Vigenère?
[Link]
Introducción
En Vigenère, si un mismo bloque de 3 o más letras en el texto plano
aparece a una distancia múltiplo de la longitud de la clave, generará
un mismo bloque de 3 o más letras en el texto cifrado
Bloques de 3 o más letras repetidas en un criptograma significa que,
probablemente:
corresponden al mismo texto en claro (a mayor tamaño, mayor
probabilidad),
y
han sido cifradas con las mismas letras de la clave => luego han de estar
a una distancia múltiplo de la longitud de la clave
La longitud de la clave será el mcd de las distancias entre bloques de 3
o más letras repetidas
Cálculo de la longitud de la clave
Ejemplo:
POSICIÓN: 1234567890123456789012345678901234567890123
M: perroladradorpocomordedorunperromuyhablador
k: DOSDOSDOSDOSDOSDOSDOSDOSDOSDOSDOSDOSDOSDOSD
C: ssjucddrjdrgudgfcerfvhrguifssjucexmzdpddrgu
perro <- 1
perro <- 28
Distancia: 28-1=27 <- múltiplo de la longitud de la clave (3)
dor <- 11
dor <- 23
Distancia: 23-11=12 <- múltiplo de la longitud de la clave (3)
m.c.d. (12, 27) = 3 <= posible longitud de de la clave
División del texto en subcriptogramas
Una vez que sabemos la longitud de la clave, debemos dividir el
texto C en n fragmentos o subcriptogramas, siendo n la longitud de
la clave, y de forma que cada subcriptograma agrupe los caracteres
cifrados con un mismo desplazamiento
Ejemplo:
C: ssjucddrjdrgudgfcerfvhrguifssjucexmzdpddrgu...
S1: suddufrhusuxddu...
S2: scrrdcfriscmpr...
S3: jdjggevgfjezdg...
Análisis de frecuencias a cada subcriptograma
Finalmente, para cada subcriptograma, aplicar análisis de frecuencias
y técnica AEOS, para averiguar el desplazamiento de cada
subcriptograma
En este caso, el texto del ejemplo no es lo suficientemente grande
Si lo fuese, obtendríamos el desplazamiento de cada subcriptograma
C: ssjucddrjdrgudgfcerfvhrguifssjucexmzdpddrgu...
S1: suddufrhusuxddu... => A -> D
S2: scrrdcfriscmpr... => A -> O
S3: jdjggevgfjezdg... => A -> S
Para saber más:
Referencias
Jeff Suzuki. Kasiski Attack
[Link]
Jorge Ramió. Class4crypt c4c6.6 Criptoanálisis a la cifra de Vigenère por
el método Kasiski:
[Link]
CIFRADO SIMÉTRICO
CRIPTOGRAFÍA CLÁSICA
ALGORITMOS DE SUSTITUCIÓN
Polybios
Siglo II a.C.
Se basa en una tabla, en cuyos ejes se ponían diferentes
combinaciones de letras o números y dentro de la tabla las letras del
alfabeto.
Cada letra del mensaje a cifrar era sustituida por sus “coordenadas”.
Cifrado por sustitución monoalfabeto.
Polybios
M = p o l y b i o s e s e l r e y
C = CE CD CA ED AB BD CD DC AE DC AE CA DB AE ED
NOTA:
Usaremos M para referirnos al texto en claro o texto plano, y lo escribiremos en minúscula.
Y usaremos C, para el texto cifrado, en mayúscula.
César
Siglo I a.C.
Cada carácter en el texto plano se sustituye por el carácter situado 3
posiciones a la derecha en el alfabeto (la A por la D, la B por la E, ...).
Desplazamiento, b = 3.
Cifrado por sustitución monoalfabeto.
plain = a b c d e f g h i j k l m n o p q r s t u v w x y z
cipher = D E F G H I J K L M N O P Q R S T U V W X Y Z A B C
Ejemplo:
M = bomba
C = ERPED
César
Si asignamos un número a cada letra:
El algoritmo puede expresarse cómo:
E: Encrypt D: Decrypt
C = E(p) = (p + 3) mod 26 p = D(C) = (C - 3) mod 26
p: carácter del texto claro
César general, con desplazamiento k variable:
C = E(p, k) = (p + k) mod 26 p = D(C, k) = (C - k) mod 26
Con k: 1..25
ROT13
Rotar 13 posiciones.
César con desplazamiento 13.
Técnicas de criptoanálisis
César (general): 25 claves posibles -> Fuerza bruta.
Es sencillo probar todas las claves y ver cuál genera un texto con sentido.
Cifrado por sustitución monoalfabeto
El caso general, para un algoritmo de cifrado por sustitución, es
aquel en el que podemos escoger una clave aleatoria, clave de
sustitución, de la misma longitud que el alfabeto.
plain = a b c d e f g h i j k l m n o p q r s t u v w x y z
cipher = W Z K V T O P I Q R X F L A M N Y S D C H U J E B G
26! combinaciones -> "imposibilita" la fuerza bruta.
Técnicas de criptoanálisis: Análisis de frecuencias
Estas técnicas se basan en explotar la redundancia del lenguaje.
Todos los lenguajes son redundantes.
Para un idioma dado, si cogemos textos al azar y contamos el
número de veces que aparece cada letra, podemos observar algo
sorprendente:
1. Cada letra tiene una frecuencia diferente: unas letras son más frecuentes
que otras.
2. Esa frecuencia se mantiene en otros textos (si los textos son lo
suficientemente grandes).
3. También los bigramas, trigramas, etc. tienen una frecuencia diferente y
que se mantiene en otros textos (si los textos son lo suficientemente
grandes).
Técnicas de criptoanálisis: Análisis de frecuencias
Técnicas de criptoanálisis: Análisis de frecuencias
1. E (12,702%) 14. M (2,406%)
2. T (9,056%) 15. W (2,360%)
3. A (8,167%) 16. F (2,228%)
4. O (7,507%) 17. G (2,015%)
5. I (6,996%) 18. Y (1,974%)
6. N (6,749%) 19. P (1,929%)
7. S (6,327%) 20. B (1,492%)
8. H (6,094%) 21. V (0,978%)
9. R (5,987%) 22. K (0,772%)
10. D (4,253%) 23. J (0,153%)
11. L (4,025%) 24. X (0,150%)
12. C (2,782%) 25. Q (0,095%)
13. U (2,758%) 26. Z (0.074%)
Frecuencia relativa de las letras en inglés.
Técnicas de criptoanálisis: Análisis de frecuencias
Frecuencia de las letras (%) en español.
Técnicas de criptoanálisis: Análisis de frecuencias
1. E (13,68%) 15. B (1,42%)
2. A (12,53%) 16. G (1,01%)
3. O (8,68%) 17. V (0,90%)
4. S (7,98%) 18. Y (0,90%)
5. R (6,87%) 19. Q (0,88%)
6. N (6,71%) 20. H (0,70%)
7. I (6,25%) 21. F (0,69%)
8. D (5,86%) 22. Z (0,52%)
9. L (4,97%) 23. J (0,44%)
10. C (4,68%) 24. Ñ (0,31%)
11. T (4,63%) 25. X (0,22%)
12. U (3,93%) 26. K (0,02%)
13. M (3,15%) 27. W (0,01%)
14. P (2,51%)
Frecuencia relativa de las letras en español
Técnicas de criptoanálisis: Análisis de frecuencias
¿Cómo podemos usar este conocimiento para criptoanálisis?
Si el algoritmo de cifrado es de sustitución monoalfabeto, la
redundancia del lenguaje se mantendrá en el texto cifrado.
La letra más frecuente en el texto cifrado, probablemente será la
letra de mayor frecuencia en un idioma dado.
Por ejemplo, si la Z es la letra más frecuente en el texto cifrado , y el
texto original es en español Probablemente, la Z sea la E.
¡Independientemente del algoritmo de sustitución
monoalfabeto que se haya usado!
Técnicas de criptoanálisis: Análisis de frecuencias
Ejemplo:
Texto cifrado (inglés):
UZQSO VUOHX MOPVG POZPE VSGZW SZOPF PESXU DBMET
SXAIZ VUEPH ZHMDZ SHZOW SFPAP PDTSV PQUZW YMXUZ
UHSXE PYEPO PDZSZ UFPOM BZWPF UPZHM DJUDT MOHMQ
Frecuencias:
Técnicas de criptoanálisis: Análisis de frecuencias
Análisis de frecuencias (asumiendo inglés):
{P, Z} podrían ser equivalentes a {e, t }.
{S, U, O, M, H} podrían ser equivalentes a {a, o, i, n, s, h, r}.
ZW, que aparece en el texto, podría ser equivalente a th, digrama más
frecuente en inglés.
ZWP, que aparece en el texto, podría ser equivalente a the, trigrama
más frecuente en inglés.
Luego, ZWSZ -> th_t.
S -> a.
…
Técnicas de criptoanálisis: Análisis de frecuencias
Texto cifrado / Texto claro (1):
UZQSOVUOHXMOPVGPOZPEVSGZWSZOPFPESXUDBMETSXAIZ
t a e e te a that e e a a
VUEPHZHMDZSHZOWSFPAPPDTSVPQUZWYMXUZUHSX
e t ta t ha e ee a e th t a
EPYEPOPDZSZUFPOMBZWPFUPZHMDJUDTMOHMQ
e e e tat e the t
Técnicas de criptoanálisis: Análisis de frecuencias
Texto cifrado / Texto claro (2):
UZQSOVUOHXMOPVGPOZPEVSGZWSZOPFPESXUDBMETSXAIZ
itwasdisclosedyesterdaythatseveralinformalbut
VUEPHZHMDZSHZOWSFPAPPDTSVPQUZWYMXUZUHSX
directcontactshavebeenmadewithpolitical
EPYEPOPDZSZUFPOMBZWPFUPZHMDJUDTMOHMQ
representativesofthevietconginmoscow
Playfair
Siglo XIX.
Intento de romper traslación de estadísticas de M a C.
Un par de letras del texto en claro se convierten en otro par distinto
en el texto cifrado.
la GF
lu HO
Matriz 5x5 (o 6x6).
Cifrado por sustitución poligráfica.
Playfair
La matriz se construye insertando una clave (en el ejemplo: MUNDO)
y se completa con el resto de letras del abecedario, excluyendo las
de la clave.
Matriz 5x5: 25 caracteres => se suele excluir la j o la w (y la ñ).
M U N D O
A B C E F
G H I K L
P Q R S T
V W X Y Z
Playfair
Cifrado:
Se toman los caracteres del texto en claro de 2 en 2 y se procede como
sigue:
a) Si m1m2 misma fila C1C2 son los dos caracteres de la derecha.
P. ej: be -> CF.
Si un carácter es el último de la fila, se sustituye por el primero de la fila.
P. ej: bf -> CA.
M U N D O
A B C E F
G H I K L
P Q R S T
V W X Y Z
Playfair
Cifrado:
Se toman los caracteres del texto en claro de 2 en 2 y se procede como
sigue:
b) Si m1m2 misma columna, C1C2 son los dos caracteres de abajo.
P. ej: ft -> LZ.
Si un carácter es el último de la columna, se sustituye por el primero de
la columna. P. ej: fz -> LO.
M U N D O
A B C E F
G H I K L
P Q R S T
V W X Y Z
Playfair
Cifrado:
Se toman los caracteres del texto en claro de 2 en 2 y se procede como
sigue:
c) Si m1m2 filas y columnas distintas C1C2 son los dos caracteres de
la diagonal, desde la fila de m1.
P. ej: ar CP, ep AS.
M U N D O
A B C E F
G H I K L
P Q R S T
V W X Y Z
Playfair
Cifrado:
Se toman los caracteres del texto en claro de 2 en 2 y se procede como
sigue:
d) Si m1 = m2, se añade un separador (normalmente una x) en medio y
luego se cifra. P. ej: aaron ax ar on.
e) Si el número de caracteres del mensaje es impar, se añade un
carácter al final, normalmente una x y luego se cifra.
P. ej: bomba bo mb ax.
M U N D O
A B C E F
G H I K L
P Q R S T
V W X Y Z
Playfair
Cifrado:
M U N D O Ejemplo:
A B C E F k = mundo
G H I K L M = cifrado con playfair
M' = ci fr ad oc on pl ay fa ir
P Q R S T C = IR CT EM NF MD TG EV AB RX
V W X Y Z
! la misma letra no siempre
se cifra igual (o -> N, o -> M)
Playfair
Descifrado:
Se aplican las mismas reglas que para el cifrado, pero:
regla a): en lugar de sustituir por los caracteres de la derecha, se
sustituyen por los de la izquierda, y
regla b): en lugar de sustituir por los caracteres de abajo, se
sustituyen por los de arriba.
M U N D O
A B C E F
G H I K L
P Q R S T
V W X Y Z
Playfair
Descifrado:
Se aplican las mismas reglas que para el cifrado, pero:
regla c): es igual.
regla d): no se puede dar C1=C2. Habría que ver si aparece una X si
se puede suprimir o no (por contexto).
regla e): si al final del mensaje descifrado aparece una X, pues ya se
sabe que es de relleno.
M U N D O
A B C E F
G H I K L
P Q R S T
V W X Y Z
Playfair
Descifrado:
M U N D O Ejemplo:
A B C E F k = mundo
G H I K L C = FP BE CP AD DT FG EP NF LU VD KE GC
M = at ac ar em os al as oc ho ym ed ia
P Q R S T
V W X Y Z
Playfair
Descifrado:
Ejercicio:
k = cable
C = HT FL QB PO UB IS DF NY
M = ?
Vigenère
Atribuido a Blaise de Vigenère (1523-1596), pero en realidad ideado
por Giovan Battista Bellaso en 1553.
Usa diferentes series de cifrado César, basándose en las letras de una
palabra clave.
Cifrado por sustitución polialfabeto.
Ejemplo:
M = c o o r d e n a d a s ...
k = d o s d o s d o s d o
A = A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
A1 = D E F G H I J K L M N O P Q R S T U V W X Y Z A B C <- d=3
A2 = O P Q R S T U V W X Y Z A B C D E F G H I J K L M N <- d=14
A3 = S T U V W X Y Z A B C D E F G H I J K L M N O P Q R <- d=18
C = F C G U R W Q O V D G
Vigenère
Tabla de Vigenère:
Vigenère
Descifrado:
Ejercicio:
k = dos
C = DGLUCFDILD
M = ?
Vigenère
La cifra polialfabética destruye la relación que se observaba en la
cifra monoalfabética entre el texto en claro y el criptograma.
Al usar alfabetos diferentes, muchas letras del criptograma tendrán
una frecuencia similar, y por lo tanto, no tiene sentido ahora intentar
un ataque por análisis de frecuencias en la forma en que venía
haciéndose con los sistemas monoalfabéticos.
Vigenère. Criptoanálisis
El cifrado de Vigenère resistió casi 300 años al criptoanálisis, y por
eso se le llamó la cifra indescifrable.
En 1854, Babbage, rompe el autoclave (una variante más segura y
compleja), pero no publica su trabajo.
En 1863, Kasiski hace público un método de criptoanálisis al sistema
de Vigenère.
1ª aproximación:
Píldora formativa 20: ¿Cómo se ataca por Kasiski la cifra de
Vigenère?
Vigenère > Variantes
Existen muchas variantes de este método:
Autoclave.
Vernam.
One-Time Pad.
Autoclave (autokey cipher o autoclave cipher)
Una vez se llega a la última letra de la clave, se continúa usando
como clave el propio mensaje, desde su inicio.
Ejemplo:
M = enunlugardelamancha...
k = quijoteenunlugardel
C = UHCWZNKEEXRWUSAEFLL
Vernam
Sistema ideado por Gilbert Vernam en 1918.
Propone usar una clave aleatoria muy larga, que se repita.
Funciona con bits en lugar de letras (se usaba en los telegramas, que
tenían codificación binaria de 5 bits).
Esta idea, corresponde a lo que hoy conocemos como cifrador de
flujo.
Cifrado Descifrado
ci = pi ki pi = ci ki
APUNTE: Cifrado y descifrado con XOR
La función XOR, OR exclusivo o se define como:
Ejemplo:
M = 1 1 0 1 0 0 0 1 1 1
k = 1 0 0 1 1 1 0 0 1 1
C = M XOR k = 0 1 0 0 1 1 0 1 0 0
D = C XOR k = 1 1 0 1 0 0 0 1 1 1 = M
One-Time Pad (OTP)
Joseph Mauborgne propuso una mejora al cifrado Vernam:
Usar una clave aleatoria, tan larga como el mensaje, de modo que no
tenga que repetirse.
Además, dicha clave se usa para cifrar y descifrar un mensaje y se
descarta (es de un solo uso).
Libro OTP usado durante la guerra fría.
Imagen extraída de [Link]
One-Time Pad (OTP)
Este esquema es irrompible (perfect secrecy):
Produce una salida aleatoria sin relación con el texto.
Al no haber relación con el texto, no se puede romper.
La seguridad del OTP reside en la aleatoriedad de la clave.
En la práctica:
Hay un problema en generar grandes cantidades de claves aleatorias.
Hay un problema en la distribución de la clave.
Video explicativo:
Khan Academy. Perfect secrecy.
[Link]
science/cryptography/crypt/v/perfect-secrecy
Técnicas de sustitución
Los algoritmos que hemos visto hacen uso de "técnicas de
sustitución“.
Las letras del texto plano se reemplazan por otras letras o por
números o por símbolos.
Si el texto plano se ve como una secuencia de bits, entonces la
sustitución implica reemplazar patrones de bits de texto plano por
patrones de bits de texto cifrado.
ALGORITMOS DE TRANSPOSICIÓN
Escítala (Scytale)
Siglo V a.C.
Pueblo griego de los lacedemonios.
M = asicifrabanconlaescitala
C = AACSNIICTCOAINLFLARAAEBS
Escítala (Scytale)
Bastón en el que se enrollaba una cinta de cuero y luego se escribía
en ella el mensaje de forma longitudinal.
Para descifrar el criptograma y recuperar el mensaje en claro habrá
que enrollar dicha cinta en un bastón con el mismo diámetro que el
usado en el extremo emisor y leer el mensaje de forma longitudinal.
La clave del sistema se encuentra en el diámetro del bastón.
Cifrado por transposición.
Rail Fence (zigzag cipher)
Escritura de M en ZigZag (distintas profundidades).
El número de filas es la clave.
Lectura de M fila a fila.
Cifrado de transposición.
Ejemplo:
M = WE ARE DISCOVERED. FLEE AT ONCE
M'=
W . . . E . . . C . . . R . . . L . . . T . . . E
. E . R . D . S . O . E . E . F . E . A . O . C .
. . A . . . I . . . V . . . D . . . E . . . N . .
C = WECRL TEERD SOEEF EAOCA IVDEN
Rail Fence (zigzag cipher)
Descifrado:
Ejemplo:
C = WECRLTEERDSOEEFEAOCAIVDEN
_ . . . _ . . . _ . . . _ . . . _ . . . _ . . . _
. _ . _ . _ . _ . _ . _ . _ . _ . _ . _ . _ . _ .
. . _ . . . _ . . . _ . . . _ . . . _ . . . _ . .
Rail Fence (zigzag cipher)
Descifrado:
Ejemplo:
C = WECRLTEERDSOEEFEAOCAIVDEN
W . . . E . . . C . . . _ . . . _ . . . _ . . . _
. _ . _ . _ . _ . _ . _ . _ . _ . _ . _ . _ . _ .
. . _ . . . _ . . . _ . . . _ . . . _ . . . _ . .
M = WE ARE DISCOVERED. FLEE AT ONCE
Transposición de columnas
Escritura de M en un rectángulo, fila por fila y leer el mensaje
columna por columna, pero permutando el orden de las columnas.
El orden de las columnas es la clave.
Cifrado de transposición.
Key: c o r b e t a
Key’: 3 5 6 2 4 7 1
Plaintext: el tesoro está en la caja azul
Plaintext’: e l t e s o r
o e s t a e n
l a c a j a a
z u l w x y z
Ciphertext: RNAZETAWEOLZSAJXLEAUTSCLOEAY
Se puede hacer más seguro efectuando más de una transposición.
Transposición de columnas
Descifrado:
Key: c o r b e t a
Key’: 3 5 6 2 4 7 1 <= 7 car.
Ciphertext: RNAZETAWEOLZSAJXLEAUTSCLOEAY <= 28 car.
28 / 7 = 4 => filas
Plaintext’: _ _ _ _ _ _ r
_ _ _ _ _ _ n
_ _ _ _ _ _ a
_ _ _ _ _ _ z
Transposición de columnas
Descifrado:
Key: c o r b e t a
Key’: 3 5 6 2 4 7 1 <= 7 car.
Ciphertext: RNAZETAWEOLZSAJXLEAUTSCLOEAY <= 28 car.
28 / 7 = 4 => filas
Plaintext’: e l t e s o r
o e s t a e n
l a c a j a a
z u l w x y z
Plaintext: el tesoro está en la caja azul
Técnicas de transposición
En un sistema criptográfico de transposición, las letras del texto
plano se reordenan (permutan) para formar el texto cifrado.
Un sistema criptográfico de transposición puro se reconoce porque
la frecuencia de las letras es exactamente la misma en el texto plano
y en el texto cifrado.
MÁQUINAS DE ROTOR
Máquinas de rotor
Múltiples etapas de cifrado -> Dificulta el criptoanálisis.
Constan de una serie de rotores o cilindros:
26 pines de entrada, conectados a otros 26 de salida.
Cada rotor define una sustitución monoalfabeto.
Máquinas de rotor
Con un solo rotor, con cada pulsación, el rotor avanza una posición:
Cada vez se utiliza un alfabeto distinto.
Sustitución polialfabética de período 26.
Con varios rotores:
Salida de un rotor está conectado a la entrada del siguiente.
Func. básico: El rotor más próximo a la entrada avanza una posición con
cada pulsación. Al completar una vuelta, el siguiente rotor avanza una
posición (y así sucesivamente).
Para 3 rotores: 26 x 26 x 26 = 17576 alfabetos de sustitución diferentes.
Sustitución polialfabética (con número de alfabetos muy grande).
Máquinas de rotor
Extraído de (Stallings, 2011)
Máquinas de rotor. Enigma
Máquina de cifrado patentada en 1918 por Arthur
Scherbius.
Cifrado por sustitución polialfabeto.
Adoptada por el ejercito Alemán en 1923, y utilizada
de forma intensiva en la II Guerra Mundial:
Los alemanes cambiaron las conexiones de los
rotores.
Se usaron miles de ejemplares.
Necesita configuración inicial (posiciones de los
rotores).
Incluye un "reflector" (simplifica el uso para cifrado /
descifrado).
El descifrado es análogo al cifrado (se introduce el
texto cifrado y se obtiene el texto claro).
Más sobre enigma…
158,962,555,217,826,360,000 (Enigma Machine) - Numberphile.
[Link]
Cómo Alan Turing descifró Enigma:
Flaw in the Enigma Code - Numberphile. [Link]
Una máquina Enigma de papel.
[Link]
Máquina Enigma original vendida por 149.000 GBP.
[Link]
childrens-books-illustrations-l15404/[Link]
Enigma Cipher Machines. [Link]
Universal Enigma.
[Link]
Simulated Enigma machine. [Link]
Máquinas de rotor. Enigma
Animación de Enigma en Cryptool
Máquinas de rotor. Otros ejemplos
También usadas en la II Guerra Mundial:
Hagelin: Aliados.
Purple: Japoneses.
CIFRADO SIMÉTRICO
CRIPTOGRAFÍA MODERNA
Introducción
Criptografía clásica:
Operaciones de sustitución (S) y transposición (T).
Ambas operaciones, por separado, son vulnerables.
Criptografía moderna: combina ambas técnicas:
S + T => cifradores de producto (CP).
CP son más resistentes al criptoanálisis.
2 tipos: Bloque y Flujo.
CIFRADORES DE FLUJO
Cifradores de flujo
Un cifrador de flujo es aquel que cifra un flujo de datos,
normalmente de 1 byte de cada vez (pero podría ser de un bit o de
más de un byte).
Se necesita un generador de flujo (secuencia de cifrado o keystream) a
partir de una clave.
Los extremos comparten la clave.
Cifradores de flujo
10011100... 10011100...
11010001... 01001101... 11010001...
Cifradores de flujo
Consideraciones de diseño importantes para un cifrador de flujo:
La secuencia de cifrado o “keystream”:
Debe tener un período largo.
Se debe aproximar lo máximo posible las propiedades de una
verdadera secuencia de números aleatorios.
La clave:
Debe ser lo suficientemente grande como para evitar ataques de
fuerza bruta (al menos 128 bits).
Con un generador de números pseudoaleatorios bien diseñado, un
cifrador de flujo puede ser tan seguro como un cifrador de bloque
con un tamaño de clave comparable.
RC4
Cifrador de flujo diseñado en 1987 por Ron Rivest para RSA Security.
Se basa en una permutación aleatoria.
Según análisis, el período del cifrador es probablemente mayor que
10100.
Ejecución muy rápida (necesita de 8 a 16 operaciones por byte).
Usado en SSL/TLS, WEP y WPA.
Publicado de forma anónima en 1994 en una lista de correo de
Cypherpunks.
¿Supuso esto algún problema de seguridad?
APUNTE: Principios de Kerckhoffs
Ya en 1883, Auguste Kerckhoffs, señaló:
El sistema no debe ser secreto y no debe ser un problema que éste caiga
en manos del enemigo.
Pero el anterior es sólo uno de sus 6 principios:
Píldora formativa 7: ¿Qué son los principios de Kerckhoffs?
APUNTE: Ron Rivest
1947.
Criptógrafo y profesor en el MIT.
RC2, RC4, RC5 y RC6 (sólo RC4 es
de flujo).
RC: Rivest’s Cipher o Ron’s Code.
MD2, MD4, MD5 y MD6.
RSA.
RC4
Funcionamiento:
Clave, K, de longitud variable: 1 a 256 Bytes.
e.g. [251, 170, 162]
e.g. [11111011, 10101010, 10100010]
Vector de estado S: 256 Bytes (valores de 0 a 255, en orden ascendente).
S = [0, 1, 2, 3, ..., 255]
S = [00000000, 00000001, 00000010, 00000011, ..., 11111111]
Vector temporal T: 256 Bytes.
Se inicializa con K:
T = [251, 170, 162, 251, 170, 162, ...]
Se usa para la permutación inicial de S.
RC4
Key Scheduling Algorithm (KSA):
/* Initialization */
for i = 0 to 255 do
S[i] = i;
T[i] = K[i mod keylen];
/* Initial Permutation of S */
j = 0;
for i = 0 to 255 do
j = (j + S[i] + T[i]) mod 256;
Swap (S[i], S[j]);
Una vez inicializado S, ya no se necesitan K ni T.
S todavía contiene todos los números de 0 a 255, pero ahora están
desordenados.
RC4
Key Scheduling Algorithm (KSA):
S = [0, 1, 2, 3, ..., 255]
T = [251, 170, 162, 251, 170, 162, ...]
Permutación inicial
i = 0
j = (0 + S[0] + T[0]) mod 256 = (0 + 0 + 251) mod 256 = 251
swap (S[0], S[251]
i = 1
j = (251 + S[1] + T[1]) mod 256 = (251 + 1 + 170) mod 256 = 166
swap (S[1], S[166]
...
RC4
Key Scheduling Algorithm (KSA):
Situación después de la fase inicial de la clave:
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
251, 166, 013, 072, 233, 016, 175, 149, 249, 253, 105, 118, 093, 210, 045, 194 (15)
100, 067, 130, 028, 068, 211, 147, 076, 043, 034, 222, 244, 171, 106, 131, 023 (31)
204, 042, 127, 111, 209, 160, 159, 241, 092, 138, 170, 132, 230, 179, 070, 081 (47)
226, 189, 145, 191, 005, 077, 165, 086, 096, 148, 120, 085, 050, 087, 083, 059 (63)
029, 090, 151, 048, 128, 136, 018, 224, 037, 022, 134, 125, 066, 116, 126, 183 (79)
188, 121, 033, 156, 065, 089, 002, 161, 139, 055, 133, 218, 164, 252, 024, 254 (95)
150, 143, 153, 176, 190, 108, 205, 026, 001, 039, 036, 088, 146, 122, 185, 178 (111)
115, 012, 049, 040, 103, 235, 062, 206, 044, 202, 169, 052, 020, 099, 008, 237 (127)
003, 208, 168, 172, 082, 213, 141, 215, 047, 051, 004, 245, 240, 187, 243, 217 (143)
231, 124, 227, 135, 152, 061, 038, 058, 041, 109, 255, 140, 021, 035, 192, 104 (159)
195, 239, 027, 182, 197, 069, 006, 223, 075, 063, 229, 193, 073, 174, 246, 186 (175)
200, 078, 216, 015, 000, 207, 010, 184, 234, 250, 158, 242, 113, 114, 203, 009 (191)
119, 064, 214, 155, 112, 167, 084, 031, 142, 212, 232, 238, 247, 079, 025, 102 (207)
060, 129, 019, 094, 123, 110, 117, 180, 101, 220, 056, 095, 181, 080, 201, 030 (223)
248, 177, 098, 014, 032, 017, 011, 157, 007, 173, 198, 228, 046, 074, 144, 137 (239)
091, 057, 219, 236, 154, 163, 225, 199, 097, 054, 221, 071, 053, 196, 107, 162 (255)
RC4
Pseudo-Random Generation Algorithm (PRGA):
Genera la secuencia de cifrado o keystream.
La generación del keystream consiste en ir recorriendo S de forma cíclica
y permutando según la configuración de S.
/* Keystream Generation */
i, j = 0;
while (true)
i = (i + 1) mod 256;
j = (j + S[i]) mod 256;
Swap (S[i], S[j]);
t = (S[i] + S[j]) mod 256;
k = S[t];
La secuencia de k’s conforman el keystream.
RC4
Pseudo-Random Generation Algorithm (PRGA)
i, j = 0
iteración 1
i = i + 1 mod 256 = (0 + 1) mod 256 = 1
j = (j + S[i]) mod 256 = (0 + S[1]) mod 256
= (0 + 166) mod 256 = 166
swap (S[i], S[j]) = swap (S[1], S[166])
t = (S[i]+ S[j]) mod 256 = (S[1]+ S[166]) mod 256
= (166 + 6) mod 256 = 172
k = S[t] = S[172] = 73
73, en binario, 0100 1001, son 8 bits del keystream
RC4
Para cifrar: XOR de k con M (1 byte).
e.g.
k = 73 (decimal) -> 0100 1001
M = 0110 1010
k XOR M = C = 0010 0011
Para descifrar: a partir de la clave, se regenera el mismo keystream y
entonces, XOR de k con C (1 byte).
k = 73 (decimal) -> 0100 1001
C = 0010 0011
C XOR k = M = 0110 1010
RC4
Imagen extraída de (Stallings, 2011).
CIFRADORES DE BLOQUE
Cifradores de bloque
Un cifrador de bloque es un esquema de cifrado/descifrado en el
cual un bloque de texto plano se trata como un todo y se usa para
producir un bloque de texto cifrado de igual longitud.
Los extremos comparten la clave.
Substitution-Permutation Network (SPN)
En 1949, Claude Shannon introdujo la idea de las Substitution-Permutation
Networks (SPNs), o Redes de Sustitución-Permutación.
Esquema de cifrado usado en algoritmos modernos.
El funcionamiento general consiste en:
Tomar un bloque de texto plano.
Una clave.
Aplicar varias rondas de operaciones de sustitución y permutación
(transposición).
Substitution-Permutation Network (SPN)
Substitution-Permutation Network (SPN)
Este esquema, con distintas funciones S y P da lugar a diferentes algoritmos.
Para descifrar se realiza el proceso en orden inverso.
Las funciones de sustitución y permutación deben ser invertibles.
Se aplican las claves en orden inverso.
Operaciones de sustitución: S-boxes.
Operaciones deben ser uno-a-uno, para asegurar que es invertible.
Operaciones de permutación: P-boxes.
Estructura Feistel
Es un caso particular de las SPN.
Muchos algoritmos de cifrado (de bloque)
modernos (e.g. DES, Blowfish, Twofish,...)
usan este esquema.
Debe su nombre al criptógrafo Horst
Feistel que la publica en Feistel, H. (1973)
Cryptography and Computer Privacy.
Scientific American, 228, 15-23.
Principal ventaja con respecto a SPN es que
está garantizado que toda la operación es
Horst Feistel (1915 - 1990)
invertible (es decir, los datos cifrados
pueden descifrarse), incluso si la función de
ronda no lo es.
Estructura Feistel
Varias rondas idénticas de procesamiento.
La clave original se expande para usar una
subclave distinta en cada ronda.
El bloque se divide en dos mitades, L y R.
En cada ronda se efectúa una función de
transformación, F, en una de las mitades
del bloque (típicamente en R), usando
una subclave específica.
El resultado de esta función de
transformación se combina con la otra
mitad del bloque, mediante XOR.
Después, las dos mitades, L y R se
intercambian para la siguiente ronda.
Último intercambio es necesario para que
se pueda emplear el mismo algo para
descifrar.
Extraído de (Stallings, 2011)
Estructura Feistel. Cifrado
Extraído de (Stallings, 2011)
Estructura Feistel. Descifrado
Idéntico al proceso de cifrado, pero con las subclaves en orden
inverso.
Esto, unido al intercambio de la última etapa, evita la necesidad de
tener un algoritmo para cifrado y otro para descifrado.
Estructura Feistel. Cifrado y Descifrado
Extraído de (Stallings, 2011)
Estructura Feistel. Parámetros
Tamaño de bloque:
Bloque más grande, mayor seguridad, pero menor velocidad de cifrado/descifrado.
Tradicionalmente 64 bits.
Tamaño de la clave:
Clave más grande, mayor seguridad, pero menor velocidad de cifrado/descifrado.
Actualmente <= 64 bits se considera inseguro. Recomendable 128 bits.
Número de rondas:
1 ronda no ofrece suficiente seguridad.
A mayor número de rondas, mayor seguridad.
Estándar: 16.
Algoritmo de generación de subclaves:
A mayor complejidad, más dificultad para el criptoanálisis.
Función F:
A mayor complejidad, más dificultad para el criptoanálisis.
Data Encryption Stantard (DES)
a.k.a DEA (Data Encryption Algorithm).
Durante muchos años fue el esquema de cifrado más usado.
Cifra en bloques de 64 bits usando una clave de 56 bits.
En una serie de pasos transforma una entrada de 64 bits en una salida de
64 bits.
Los mismos pasos, con la misma clave, se usan para descifrar.
Data Encryption Stantard (DES)
A finales de los 60, IBM pone en marcha un proyecto liderado por
Horst Feistel.
Result. (1971): LUCIFER (b: 64 bits, k: 128 bits).
A continuación, IBM + NSA: nuevo proyecto.
Obj: implementar algoritmo en chip.
Result. (1973): algo b: 64 bits, k: 56 bits.
Realmente, la función espera 64bits, sin embargo, sólo se utilizan 56.
Los otros 8 bits pueden usarse como bits de paridad o fijarlos de
manera arbitraria.
Ese algoritmo es elegido como Data Encryption Standard (DES) en
1977.
Data Encryption Stantard (DES)
Controversia:
K: 56 bits (vs. 128 bits de LUCIFER).
El diseño de las S-boxes era clasificado.
Data Encryption Stantard (DES)
Data Encryption Stantard (DES)
Cifrado:
Fases:
IP: permutación inicial.
16 rondas (incluyen ops. de sustitución y permutación).
A partir de la clave inicial, se generan 16 subclaves (mediante
desplazamiento circular a la izquierda y permutación).
IP-1: inversa de la permutación inicial.
Con excepción de IP e IP-1, estructura Feistel.
Descifrado:
Mismo algoritmo, pero aplicando las subclaves en orden inverso.
Data Encryption Stantard (DES)
Estructuras utilizadas en DES:
Initial Permutation (IP).
Final Permutation (Inverse Initial Permutation) (IP−1).
Sobre la clave:
Permuted choice 1 (PC-1).
Permuted choice 2 (PC-2).
Expansion Permutation (E).
Substitution boxes (S-boxes).
Permutation Function (P).
Salvo las S-boxes, estas estructuras se representan como tablas, pero en
realidad son vectores:
Los números indican qué bit de la entrada va en esa posición en la salida. E.g. el
primer bit de la salida es el bit 58 de la entrada.
Data Encryption Stantard (DES)
Data Encryption Stantard (DES)
Initial Permutation (IP):
Entrada: 64 bits
Bit 58 de la entrada Salida: 64 bits
Extraído de [Link]
Data Encryption Stantard (DES)
Final Permutation (Inverse Initial Permutation) (IP−1):
Entrada: 64 bits
Bit 1 de la entrada
Salida: 64 bits
Extraído de [Link]
Data Encryption Stantard (DES)
Data Encryption Stantard (DES)
Permuted Choice One (PC-1):
Realmente, la función espera 64 bits, sin embargo, sólo se utilizan 56 para la clave.
PC-1 descarta el último bit de cada byte. Es un bit de paridad.
Luego permuta y divide la clave en dos mitades de 28 bits: C0 y D0.
Data Encryption Stantard (DES)
En cada ronda, las dos mitades, C0 y D0 se desplazan a la izquierda, una o
dos posiciones, según lo indicado en esta tabla:
Data Encryption Stantard (DES)
Permuted Choice Two (PC-2):
Permuta y reduce la clave de 56 bits a 48 bits, que sirven de entrada a F.
Data Encryption Stantard (DES)
Data Encryption Stantard (DES)
Data Encryption Stantard (DES)
Data Encryption Stantard (DES)
Expansion Permutation (E): 32 bits -> 48 bits.
El objetivo de esta estructura es adaptar el tamaño del bloque al tamaño
de la clave.
Además, introduce redundancia, lo que incrementa la “difusión”.
Difusión: busca ocultar la relación entre el texto en claro y el texto
cifrado.
Data Encryption Stantard (DES)
Data Encryption Stantard (DES)
Data Encryption Stantard (DES)
S-Boxes:
...
Data Encryption Stantard (DES)
Ejemplo de una S-Box:
6 bits de entrada (e.g. 011011) (Hay 8 S-Boxes -> Total = 48 bits).
2 bits de los extremos eligen fila (e.g. 011011).
4 bits del medio eligen columna (e.g. 011011).
4 bits de salida (e.g. 1001) (Hay 8 S-Boxes -> Total = 32 bits).
Extraído de [Link]
Data Encryption Stantard (DES)
S-Boxes
El propósito de las S-Boxes es conseguir “confusión”.
Confusión: busca ocultar la relación entre el texto cifrado y la clave
secreta.
Cuando se publicó DES, se desconocían las decisiones de diseño de las
S-Boxes, lo cual levantó suspicacias sobre la posibilidad de la existencia
de puertas traseras.
Sin embargo, estudios posteriores demostraron que el diseño de las S-
Boxes hacía a DES resistente a ataques no conocidos públicamente en el
momento de su desarrollo.
DES, demostró ser más resistente al criptoanálisis que LUCIFER.
Biham y Shamir demostraron que incluso pequeñas modificaciones a
una S-box podría debilitar significativamente a DES (Gargiulo, 2002).
_____
Gargiulo, J. (2002). S-Box Modifications and Their Effect in DES-like Encryption Systems. SANS Institute InfoSec
Reading Room. Disponible en: [Link]
Data Encryption Stantard (DES)
Data Encryption Stantard (DES)
Permutation Function (P): 32 bits -> 32 bits.
El objetivo principal de esta estructura es introducir “difusión”.
Garantiza que la influencia de cada bit se propague ampliamente a
través de las rondas posteriores, lo que dificulta el rastreo de la relación
entre el texto plano y el texto cifrado.
Data Encryption Stantard (DES)
Data Encryption Stantard (DES)
Para saber más:
En [Link] se pueden
ver representaciones gráficas de estas matrices.
Cryptool contiene una animación del protocolo DES.
(Stallings, 2011) incluye una versión de DES simplificada, con el objetivo
de facilitar su comprensión:
Appendix G. Simplified DES (Stallings, 2011):
[Link]
Efecto avalancha
Una propiedad deseable de un algoritmo de cifrado es que un
pequeño cambio en el texto de entrada o en la clave debe
producir un gran cambio en el texto de salida.
En particular, un cambio en un solo bit en el texto de entrada o en la
clave debe producir un cambio de muchos bits del texto cifrado.
Si el cambio fuese pequeño, esto podría proporcionar una forma de
reducir el espacio de búsqueda del texto claro o de la clave.
DES presenta un elevado efecto avalancha:
Si se cambia un solo bit en el bloque de texto plano o en la clave, en
promedio cambia el 50% de los bits del bloque de texto cifrado.
Ataques sobre DES
Criptoanálisis diferencial
Criptoanálisis lineal
Fuerza bruta
Criptoanálisis diferencial
IBM ya lo conocía cuando desarrolló DES. La NSA fue informada del descubrimiento,
según cuenta Don Coppersmith, uno de los desarrolladores de DES en (Coppersmith,
1994).
El equipo de IBM que diseñó DES, lo hizo de forma que fuese resistente a este ataque.
Dentro de IBM se conocía como “T attack” o “Tickle attack”.
El ataque fue “redescubierto” por Eli Biham y Adi Shamir a finales de los 80. Lo
presentan en (Biham & Shamir, 1991a) y luego una versión más detallada en (Biham &
Shamir, 1991b).
El ataque es aplicable principalmente a sistemas de cifrado de bloque, pero también
se puede aplicar a sistemas de flujo y a funciones hash.
De forma general, consiste en el estudio de cómo diferencias en la información
de entrada producen diferencias en la información de salida.
_____
Coppersmith, D. (1994). The Data Encryption Standard (DES) and its strength against attacks. IBM Journal of Research and
Development, 38(3), 243–250.
Biham, E., & Shamir, A. (1991a). Differential cryptanalysis of DES-like cryptosystems. In Advances in Cryptology — CRYPTO '90,
Lecture Notes in Computer Science (Vol. 537, pp. 2–21). Springer.
Biham, E., & Shamir, A. (1991b). Differential cryptanalysis of DES-like cryptosystems. Journal of Cryptology, 4(1), 3–72.
Criptoanálisis lineal
El descubrimiento se atribuye a Mitsuru Matsui (Matsui and Yamagishi,
1992).
Primero lo aplicó al algoritmo FEAL.
Más tarde lo aplicó a DES, siendo el primer criptoanálisis experimental
reportado.
El ataque no es práctico: requiere 243 textos en claro conocidos (mejora
comparado con 247 textos en claro elegidos del CD, pero no suf.).
El ataque es aplicable principalmente a sistemas de cifrado de bloque, pero
también se puede aplicar a sistemas de flujo.
Se basa en encontrar aproximaciones lineales para describir las
transformaciones realizadas en el algoritmo.
_____
Matsui, M. and Yamagishi, A. (1992) "Advances in Cryptology - EUROCRYPT 1992".
Fuerza bruta
Clave de 56 bits:
256 claves posibles 7.2 x 1016 (= 72000 x 1012).
1 clave / microsegundo > 1000 años en probar la mitad del espacio
de búsqueda (255).
Whitfield Diffie y Martin Hellman postularon en 1977 que se podría
construir una máquina que operase en paralelo, con un millón de
dispositivos de cifrado, cada uno capaz de efectuar una operación
cada microsegundo.
Esta máquina rompería la clave en 10 horas (de media).
Estimaron que costaría 20 M$.
Fuerza bruta
En julio de 1998 la EFF construyó la "DES-cracker“, apodada “Deep
crack”, una máquina capaz de romper DES.
Costó 250 K$.
El ataque tardó menos de 3 días.
Cifrado múltiple
Desde finales de los 90, DES se considera vulnerable por ataques de
fuerza bruta.
¿Solución?
Opción A: Nuevo algoritmo.
Pb: DES está integrado en muchos dispositivos (p. ej. tarjetas de
crédito, smart cards, …).
Opción B: Nueva aproximación utilizando el algoritmo existente.
Cifrado múltiple.
Clave más grande, sin necesidad de cambiar el algoritmo.
Permite rentabilizar inversión en software y equipamiento.
Cifrado múltiple: 2 etapas
La forma más simple son 2 etapas y 2 claves:
Cifrado C = E(K2, E(K1, M))
Descifrado M = D(K1, D(K2, C))
Pero…
¿ Ǝ K3 tq E(K3, M) = E(K2, E(K1, M)) ?
No (aunque no se consiguió demostrar hasta 1992).
PB: vulnerable a ataque Meet-in-the-Middle.
Meet-in-the-Middle
Se basa en:
D(K2,C) = E(K1, M)) = X
C = E(K2, E(K1, M))
D(K2,C) = D(K2, E(K2, E(K1, M)))
D(K2,C) = E(K1, M)) = X
M = D(K1, D(K2, C))
E(K1, M) = E(K1, D(K1, D(K2, C)))
E(K1, M) = D(K2, C)) = X
Meet-in-the-Middle
Dado un par conocido (M,C):
1. Se cifra M para 2^56 posibles valores de K1.
1. Se almacenan los resultados en una tabla y se ordenan por los
valores de X.
2. Se descifra C usando todos los 2^56 posibles valores de K2.
1. Para cada descifrado, se comprueba si X aparece en la tabla.
1. Si aparece, entonces se comprueban las dos claves resultantes contra
un nuevo par conocido (M’, C’).
1. Si las dos claves producen el mismo texto cifrado, son las claves
correctas.
Meet-in-the-Middle
Se puede calcular que simplemente con 2 bloques de 64 bits de
(texto plano, texto cifrado) conocidos, el ataque necesita del orden
de 2^56.
Para DES simple se necesita 2^55.
DES con 2 etapas sigue siendo vulnerable.
Cifrado múltiple: 3 etapas (3DES o TDES)
Idea base presentada por Tuchman en 1979.
Con 3 etapas no hay punto intermedio. Meet-in-the-Middle no es
posible.
_____
Tuchman, W. (1979). IV. 'Hellman presents no shortcut solutions to the DES'. IEEE spectrum, 16(7), 40-41.
Cifrado múltiple: 3 etapas (3DES o TDES)
3 claves (3TDEA):
C = E(K3, D(K2, E(K1, M)))
M = D(K1, E(K2, D(K3, C)))
Más resistente, pero clave poco manejable (64x3=192 bits).
Clave equivale a 112 bits.
2 claves (2TDEA):
C = E(K1, D(K2, E(K1, M)))
M = D(K1, E(K2, D(K1, C)))
Resistente, con clave manejable.
Clave equivale a 80 bits.
1 clave:
C = E(K1, D(K1, E(K1, P))) = E(K1, P)
M = D(K1, E(K1, D(K1, C))) = D(K1, C)
Permite descifrar datos cifrados con DES simple.
Cifrado múltiple: 3 etapas (3DES o TDES)
No hay ninguna importancia criptográfica en el uso del descifrado
de la segunda etapa. Su única ventaja es que permite a un usuario
de 3DES descifrar datos cifrados con el antiguo DES simple (Stallings,
2011).
Actualmente está desautorizado por NIST para proteger datos
nuevos, ya que se han reportado algunos ataques prácticos, aunque
no directamente sobre el algoritmo, sino sobre la forma en que se
usa en algunos casos.
Actualmente, 3DES ha sido reemplazado por AES, aunque todavía se
puede encontrar en ciertos dispositivos, como algunas tarjetas de
crédito.
AES. Historia
1997 NIST (National Institute of Standards and Technology) (EEUU)
realiza concurso para seleccionar nuevo algoritmo, llamado
Advanced Ecryption Standard (AES).
Condiciones:
Ser de dominio público, disponible para todo el mundo.
Ser un algoritmo de cifrado simétrico y soportar bloques de, como
mínimo, 128 bits.
Permitir el uso de claves de cifrado de 128, 192 y 256 bits.
Ser implementable tanto en HW como en SW.
AES. Historia
Se admitieron 15 algoritmos a la primera ronda, de los cuales
pasaron a la final:
MARS, RC6, RIJNDAEL, SERPENT, TWOFISH.
El ganador fue RIJNDAEL, desarrollado por dos criptógrafos belgas,
Vincent Rijmen y Joan Daemen.
Fue anunciado por el NIST en noviembre de 2001.
AES. Características
SPN (No Feistel).
Cifrador de bloque.
b: 128 bits, k: 128 (10R), 192 (12R) o 256 (14R).
Opera en una matriz de estado (state) de 4x4 bytes.
Cada ronda consta de:
XOR con una clave (AddRoundKey).
Sustitución (SubBytes).
Permutación (ShiftRows).
Pperaciones aritméticas sobre un campo finito (MixColumns).
Es extremadamente rápido tanto en HW como en SW
Advanced Encryption Standard (AES)
Ataques
A día de hoy no se conocen públicamente ataques efectivos sobre AES,
aunque sí hay algunos ataques teóricos y para alguna configuración
particular, y también se han presentado algunos “side-channel attacks”
Para saber más:
[Link]
Advanced Encryption Standard (AES)
Para saber más:
Ejercicio para comprender AES:
Appendix 5B. Simplified AES (Stallings, 2011). Disponible en:
[Link]
Cryptool1: Animación en Macromedia Flash 8.
Cryptool online:
Animación: [Link]
AES paso a paso: [Link]
Jorge Ramió, 2015. Proyecto Thoth. Píldora formativa 30: ¿Cómo se cifra con el
algoritmo AES? Disponible en: [Link]
Mike Pound, 2019. AES Explained (Advanced Encryption Standard) -
Computerphile. Disponible en: [Link]
MODOS DE OPERACIÓN
Modos de operación
Un modo de operación es una técnica para mejorar el efecto de un
algoritmo criptográfico o para adaptar el algoritmo a una aplicación
concreta ([Link].: aplicar un cifrado de bloque a una secuencia de
bloques de datos o un flujo de datos) (Stallings).
El NIST ha estandarizado cinco modos de operación para usar con
cifradores de bloques simétricos como DES y AES.
Modos de operación
1. Electronic Codebook Mode (ECB).
2. Cipher Block Chaining Mode (CBC).
3. Cipher Feedback Mode (CFB).
4. Output Feedback Mode (OFB).
5. Counter Mode (CTR).
Electronic Codebook (ECB)
Apunte: codificación imagen
Imagen extraída de: Elshoush, H. T., Mahmoud, M. M., & Altigani, A. (2022). A new high capacity and secure image realization steganography based on ASCII
code matching. Multimedia Tools and Applications, 1-47.
Electronic Codebook (ECB)
Bloques de texto claro idénticos generan bloques de texto cifrado idénticos.
Cipher Block Chaining (CBC)
Hace que cada mensaje sea único.
Cada bloque depende de todos
los bloques previos.
Cipher Feedback (CFB)
Output Feedback (OFB)
Counter (CTR)
TIPOS DE ATAQUES
CONTRA SISTEMAS DE CIFRADO
Tipos de ataques contra sistemas de cifrado
Ataque de Texto Cifrado Únicamente (Ciphertext-Only Attack, COA):
Atacante tiene acceso solo a textos cifrados.
Objetivo: descifrarlos o deducir la clave.
Ataque de Texto Claro Conocido (Known-Plaintext Attack, KPA):
Atacante tiene acceso a pares de texto claro y su correspondiente texto cifrado, pero no
conoce la clave.
Objetivo: deducir clave o algoritmo.
Tipos de ataques contra sistemas de cifrado
Ataque de Texto Claro Elegido (Chosen-Plaintext Attack, CPA):
Atacante puede elegir textos claros arbitrarios para ser cifrados y obtener los
correspondientes textos cifrados.
Objetivo: deducir la clave o identificar vulnerabilidades en el algoritmo.
Ataque de Texto Cifrado Elegido (Chosen-Ciphertext Attack, CCA):
Atacante puede elegir textos cifrados arbitrarios para ser descifrados y obtener los textos
claros correspondientes.
Objetivo: deducir la clave o alguna otra información que le permita descifrar otros mensajes
cifrados con la misma clave.
Ataque de Texto Elegido (Chosen-Text Attack, CTA):
Atacante puede elegir y obtener tanto los textos cifrados de textos claros arbitrarios como
los textos claros de textos cifrados arbitrarios.
Objetivo: combinar las ventajas de CPA y CCA para obtener la máxima información posible,
con el fin de deducir la clave de cifrado o descubrir debilidades en el algoritmo.
Tipos de ataques contra sistemas de cifrado
Ataque de Fuerza Bruta:
El atacante intenta cada posible clave hasta que encuentra la correcta.
Ataque Meet-in-the-Middle:
Utilizado principalmente contra esquemas de cifrado de doble clave.
Atacante cifra el texto claro con una clave y descifra el texto cifrado con otra, buscando un
punto en el medio donde los resultados coincidan.
Ataque de Canal Lateral (Side-Channel Attack):
No se dirige directamente al algoritmo criptográfico, sino a su implementación.
Atacante puede deducir información a partir de factores externos, como el tiempo que tarda
una operación, el consumo de energía o las emisiones electromagnéticas del dispositivo.
CIFRADO ASIMÉTRICO
Cifrado asimétrico
Diffie y Hellman publican en 1976 un trabajo en el que introducen el concepto de
criptografía de clave pública, también conocida como cifrado asimétrico: un
enfoque revolucionario para la criptografía que permitía a dos partes comunicarse de
forma segura sin necesidad de compartir una clave secreta de antemano.
[Link]
Cifrado asimétrico
Cada usuario hace uso de 2 claves distintas, pero matemáticamente
relacionadas. Para un usuario “a”:
Pública (PUa):
Puede compartirse abiertamente.
Privada (PRa)
Debe mantenerse en secreto. Sólo debe ser conocida por el propietario
(“a”).
Cifrado asimétrico
Funcionamiento basado en la Teoría de Números:
Los algoritmos de clave pública se basan en funciones matemáticas, en
lugar de operaciones de sustitución y permutación.
Problemas fáciles de resolver en un sentido, pero difíciles en sentido
inverso.
Revolución en la historia de la criptografía.
Tiene importantes consecuencias en las áreas de confidencialidad,
autenticación y distribución de claves.
Cifrado asimétrico
Diffie y Hellman, no proponen un algoritmo concreto, sino que
enumeran los requisitos que tal algoritmo debería cumplir.
Martin Hellman (izquierda) y Whitfield Diffie (derecha), 1977.
Fueron reconocidos en 2015 con el ACM Turing Award (Premio Nobel de la Informática).
Fuente: [Link]
Requisitos de la criptografía de clave pública
1. Debe ser computacionalmente fácil para una parte B generar un
par (clave pública PUb, clave privada PRb).
2. Debe ser computacionalmente fácil para un emisor A, conociendo
la clave pública, PUb, y el mensaje a cifrar, M, generar el
correspondiente texto cifrado, C:
C = E(PUb, M)
3. Debe ser computacionalmente fácil para el receptor B descifrar el
texto cifrado resultante utilizando la clave privada para recuperar el
mensaje original:
M = D(PRb, C) = D[PRb, E(PUb, M)]
Requisitos de la criptografía de clave pública
4. Debe ser computacionalmente inviable para un adversario,
conociendo la clave pública, PUb, determinar la clave privada, PRb.
5. Debe ser computacionalmente inviable para un adversario que
conozca la clave pública, PUb, y un texto cifrado, C, recuperar el
mensaje original, M.
6. Las dos claves deben poder aplicarse en cualquier orden:
M = D[PUb, E(PRb, M)] = D[PRb, E(PUb, M)]
Motivación: distribución de claves
Cifrado simétrico necesita que los extremos compartan la clave previamente
o confíen en un Key Distribution Center (KDC).
El número de claves necesarias para comunicarse n usuarios crece muy
rápido:
2 personas = 1 clave.
3 personas = 1 + 2 = 3 claves.
4 personas = 1 + 2 + 3= 6 claves.
…
n personas = n * (n-1) / 2 claves.
Para n = 100, 100 * 99 / 2 = 4950 claves.
Cifrado asimétrico, para n usuários, 2 * n claves (2 por usuario: una pública y
una privada):
Para n = 100, 2* 100 = 200 claves.
Cifrado con clave pública
Cifrado con clave pública
Lo que se cifra con PUa, sólo se puede descifrar haciendo uso de PRa.
Sólo destinatario (a) podrá descifrar el mensaje.
Proporciona:
confidencialidad.
Cifrado con clave privada
Cifrado con clave privada
Lo que se cifra con PRb, puede ser descifrado por cualquiera (se necesita PUb,
que es pública) No proporciona confidencialidad.
Sí proporciona:
Autenticidad del emisor: sólo el emisor (b) puede haber cifrado el
mensaje con su clave privada, ya que sólo él tiene esa clave.
Integridad: si el mensaje descifra correctamente, quiere decir que no ha
sido alterado.
No repudio (de emisor): el emisor no puede negar que ha sido él quien
cifró el mensaje.
¡Es el mecanismo que hace posible la firma digital!
Realmente, en la FD no se cifra todo el mensaje.
Primer algoritmo de clave pública
La primera respuesta exitosa al reto la presentan en 1977 Ron Rivest,
Adi Shamir, y Leonard Adleman del MIT:
El algoritmo, RSA, es desde entonces el algoritmo más usado.
Funcionalidad: Cifrado, intercambio de claves y firma digital.
Ron Rivest, Adi Shamir y Leonard Adleman. Fuente: Wikimedia Commons.
Cifrado asimétrico
RSA
El algoritmo de clave pública RSA
Desarrollado por Rivest, Shamir & Adleman en el MIT en 1977. Se
publicó en 1978.
Ha sido desde entonces el enfoque más aceptado e implementado para
el cifrado de clave pública.
Es un cifrado de bloque en el que el texto claro y el texto cifrado
son enteros entre 0 y n-1 para algún n.
Tamaño típico de n era 1024 bits (≈309 dígitos decimales).
Actualmente se recomienda 2048 (≈617 dígitos decimales).
Basado en exponenciación.
Seguridad basada en el coste de factorizar números grandes.
El algoritmo de clave pública RSA
Reunión secreta a las 17:00h...
R e u h _
82 101 117 ... 104 ...
---
01010010 01100101 01110101 01101000
--------
1024 bits
...
152368523147896325489653257895423658986542112369691523685231478963254896532578954
236589865421123696958796325994789632548965325789542365898654211236969152368523147
896325489653257895423658986542112369695632986554569320158796532578954236589865421
123696915236852314789632548965325789542365898654211236969256985367
Número de 309 dígitos.
Generación de claves RSA
1. Seleccionar dos números primos grandes, 1. p=17 y q=11
pyq (estos no son grandes ;-)
2. Calcular n = p·q 2. n = p·q = 17×11 = 187
3. Calcular φ (n)=(p-1)(q-1) 3. φ(n) = 16×10 = 160
4. Seleccionar clave de cifrado e 4. e = 7 ya que
1<e< φ(n), mcd(e, φ(n))=1 mcd(7, 160) = 1
5. Obtener clave de descifrado d 5. d = 23 ya que
e·d=1 mod φ(n) y 0≤d≤n 23 · 7 = 161 = (1 · 160) + 1
= 1 mod(160)
d se puede calcular usando el alg. Euclides
extendido
6. Clave Pública: PU={e, n} 6. PU={7, 187}
7. Clave Privada: PR={d, n} 7. PR={23, 187}
8. Guardar en secreto o destruir p, q y φ(n)
Cifrado y Descifrado en RSA Recordar:
PU={e, n} ej: {7, 187}
Cifrado: C = Me mod n. PR={d, n} ej: {23, 187}
El texto plano M se debe dividir en bloques cuya representación en
decimal sea < n.
En el ej. < 187.
187 DEC = 1011 1011 (BIN), 8 bits.
Pero bloques de 8 bits pueden contener números > 187.
Debemos tomar bloques de 7 bits.
En un escenario real, cada bloque, además del número a cifrar, contiene
información sobre el formato, padding, etc.
Descifrado: M = Cd mod n.
M = Cd mod n = (Me mod n)d mod n = Med mod n = M.
El mensaje debe ser procesado según los bloques que se crearon al
cifrarlo.
Cifrado y Descifrado en RSA
Recordar:
Un ejemplo: PU={e, n} ej: {7, 187}
PR={d, n} ej: {23, 187}
C = Me mod n -> M7 mod 187
M = Cd mod n -> C23 mod 187
1011000
0001011
¿Qué número en claro corresponde al número cifrado (con PU) 108?
RSA en Cryptool CT1
Cryptool > Procedimientos Individuales >
RSA Criptosistema > Demostración de RSA
RSA en Cryptool CT1
Con los números que hemos
seleccionado para el ejemplo, no es
posible cifrar número > 187.
ASCII tiene 256 valores => Debemos
elegir un alfabeto más pequeño.
RSA en Cryptool CT1
Si tomamos sólo las mayúsculas,
tenemos 26 caracteres => Este número
sí es válido.
RSA en Cryptool CT1
Seleccionar “texto” como entrada:
Para descifrar, cambiar la entrada a “números”.
Curiosidad
Aunque en teoría, e (clave pública) puede ser cualquier número que
cumpla:
1<e< φ(n) y mcd(e, φ(n))=1
En la práctica se suele elegir un e fijo:
e = 65537
Curiosidad
n
65537 es el número primo más grande conocido de la forma 22 +1.
En este caso, n=4 [1].
En teoría de números, los primos de esta forma se conocen como primos
de Fermat. En concreto, este sería F4.
En binario: 1 0000 0000 0000 0001.
Tiene un peso Hamming (número de bits != 0) muy bajo.
Esto permite acelerar mucho las operaciones de exponenciación, usando
exponenciación binaria [2, 3].
cifrado con PU muy rápido (Recordar: C = Me mod n).
No hay evidencias de que esto comprometa la seguridad.
_____
[1] Número 65537: [Link]
[2] Exponenciación binaria: [Link]
[3] Píldora formativa 37: ¿Cómo funciona el algoritmo de exponenciación rápida? [Link]
Sobre la seguridad de RSA
Basada en el coste de factorizar números grandes (n).
El tamaño recomendado actualmente es de 2048 bits (617 dígitos
decimales).
Sabemos que n es el resultado de multiplicar 2 números primos.
¿Podemos construir una lista con todos los primos menores que n?
Teóricamente posible, pero no en la práctica.
Sobre la seguridad de RSA
Para n de 1024 bits, p y q tienen sobre 512 bits.
Se estima, por el Teorema de Números Primos, que puede haber:
P(2512) ≈ (2512) / ln(2512) ≈ 3,778 x 10151 números primos de 512 bits
Incluso disponiendo de esa lista, el coste de factorizar seguiría siendo
muy grande.
Para n de 2048 bits, p y q tienen sobre 1024 bits:
P(21024) ≈ (21024) / ln(21024) ≈ 2,533 x 10305 números primos de 1024 bits
Sobre la seguridad de RSA
Existen varios algoritmos para factorizar números:
El más eficiente conocido actualmente para números grandes como los
usados en RSA es el General Number Field Sieve (GNFS).
No es capaz de factorizar números del orden de los usados en RSA
en un tiempo práctico.
La complejidad de GNFS es sub-exponencial (menor que
exponencial, pero mayor que polinómica).
Con computación cuántica:
El algoritmo de Shor puede factorizar números grandes como n en
tiempo polinómico, lo que rompería RSA.
El desarrollo de computadores cuánticos a gran escala y tolerantes a
fallos todavía no se ha conseguido, pero...
Sobre la seguridad de RSA
El número RSA más grande factorizado es RSA-250 (un número de
250 dígitos - 829-bits) el 28 de febrero de 2020.
RSA-250 es parte del RSA Factoring Challenge, un conjunto de números
publicados por los Laboratorios RSA en 1991 para fomentar la
investigación en computación numérica y la seguridad práctica del
criptosistema RSA.
El cálculo implicó una cantidad significativa de recursos computacionales
y el esfuerzo de colaboración de investigadores de múltiples
instituciones.
Cifrado asimétrico
DIFFIE-HELLMAN
Diffie-Hellman
Permite a dos usuarios (Alice y Bob) generar y compartir una clave
secreta, a través de un medio público, sin necesidad de conocerse
previamente.
Usa un esquema de clave pública basado en logaritmos discretos.
Dicha clave puede ser usada para el posterior cifrado de mensajes
(cifrado simétrico).
El algoritmo se limita al intercambio de valores secretos (Key Exchange).
Se usa en protocolos como SSH, SSL, TLS, …
Su seguridad radica en la extrema dificultad (conjeturada, no
demostrada) de calcular logaritmos discretos en un cuerpo finito.
Conceptos previos
Problema del logaritmo discreto.
Fácil
329 mod 17 = 12
Difícil
3? mod 17 = 12
? = dlog3,17(12)
Conceptos previos
Logaritmo discreto:
b = dlogg,p(B)
Logaritmo discreto de B en base g módulo p es el número al que hay
que elevar g para obtener B módulo p, es decir, es el número que
cumple:
B = gb mod p
Conceptos previos
Una raíz primitiva módulo n es un elemento del álgebra modular
que puede generar todos los elementos coprimos con n mediante la
aplicación repetida de la operación de exponente módulo n.
Formalmente:
Un número g es una raíz primitiva módulo n si para cada entero a
coprimo con n, hay un entero k tal que gk ≡ a (mod n).
Esto significa que al tomar potencias sucesivas de g (g, g2, g3, ..., gk)
y reducir módulo n, podemos generar todos los números que son
coprimos con n.
Conceptos previos
Raíz primitiva módulo n: Ejemplo, para n= 7.
Números coprimos con 7: {1, 2, 3, 4, 5, 6}.
¿4 es una raíz primitiva módulo 7?
41 = 4 ≡ 4 (mod 7)
42 = 16 ≡ 2 (mod 7)
43 = 64 ≡ 1 (mod 7)
44 = 256 ≡ 4 (mod 7)
45 = 1024 ≡ 2 (mod 7)
46 = 4096 ≡ 1 (mod 7)
NO, ya que no puede generar todos los elementos coprimos con 7.
Conceptos previos
Raíz primitiva módulo n: Ejemplo, para n= 7.
Números coprimos con 7: {1, 2, 3, 4, 5, 6}.
¿3 es una raíz primitiva módulo 7?
31 = 3 ≡ 3 (mod 7)
32 = 9 ≡ 2 (mod 7)
33 = 27 ≡ 6 (mod 7)
34 = 81 ≡ 4 (mod 7)
35 = 243 ≡ 5 (mod 7)
36 = 729 ≡ 1 (mod 7)
SI, ya que puede generar todos los elementos coprimos con 7.
Diffie-Hellman
Parámetros públicos:
Número primo: p (ej: 23)
Generador: g (ej: 17)
Número natural
Preferiblemente distinto de 0 y 1
g<p
Raíz primitiva módulo p
Parámetros secretos:
Alice elije su secreto: a (ej: 8)
1<a<p
Bob elije su secreto: b (ej: 5)
1<b<p
Diffie-Hellman
1. Alice genera su clave compartida, 3. Alice recibe B y calcula la clave
A, y se la envía a Bob: de sesión: S
A = ga mod p S = Ba mod p
A = 178 mod 23 = 18 S = 218 mod 23 = 3
2. Bob genera su clave compartida, B, 4. Bob recibe A y calcula la clave
y se la envía a Alice: de sesión: S
B = gb mod p S = Ab mod p
B = 175 mod 23 = 21 S = 185 mod 23 = 3
¡Ambos obtienen el mismo valor
sin haberlo enviado por la red!
Diffie-Hellman
¿Por qué funciona?
S (calculado en Alice) = Ba (mod p)
a
= (gb) (mod p)
= g(ba) (mod p)
= g(ab) (mod p)
b
= (ga) (mod p)
= Ab (mod p) = S (calculado en Bob)
Ningún intermediario puede conocer la clave de sesión S, puesto
que desconoce los secretos a y b.
Diffie-Hellman
Un adversario, para calcular el secreto de Bob, b, tiene:
p, g, A y B (no son datos secretos)
y sabe que:
B = gb mod p
luego tendría que resolver:
b = dlogg,p(B)
Pero, mientras es relativamente sencillo calcular exponenciales
módulo un primo, es muy difícil calcular logaritmos discretos. Para
números primos grandes se considera imposible.
Diffie-Hellman
Un intercambio de claves con este protocolo es vulnerable a ataques
MitM:
Un atacante podría ubicarse en medio de la comunicación, haciéndose
pasar por Bob frente a Alice y por Alice frente a Bob e intercambiando
claves secretas con cada uno de ellos.
Esto se debe a que D-H no autentica a los participantes.
Una posible solución es incluir el uso de firma digital y certificados de
clave pública.
Diffie-Hellman en Cryptool CT1
Cryptool > Procedimientos Indiv. > Protocolos > Demostración
Diffie-Hellman:
Otros algoritmos
ElGamal:
Desarrollado por Taher Elgamal en 1985.
Es un sistema de criptografía de clave pública basado en el mismo problema
matemático que Diffie-Hellman pero que proporciona tanto cifrado como firma
digital.
DSA (Digital Signature Algorithm, o algoritmo de firma digital):
Desarrollado por el NIST en 1991 y publicado como parte del Digital Signature
Standard (DSS) en 1994.
Específicamente diseñado para la creación de firmas digitales, no para el cifrado
de mensajes.
Otros algoritmos
ECC (Elliptic curve cryptography, o Criptografía de curva elíptica)
Desarrollado por Neal Koblitz y Victor S. Miller, de forma independiente (sin
conocimiento del trabajo del otro), a mediados de los 80.
Utiliza las propiedades matemáticas de las curvas elípticas sobre campos finitos
para generar pares de claves públicas y privadas que se utilizan en el cifrado de
mensajes, así como en la creación de firmas digitales.
Logra un nivel comparable de seguridad a RSA con claves de menor tamaño.
Aplicaciones de criptosistemas de clave pública
Criptosistemas asimétricos. Aclarando conceptos
El cifrado de clave pública, ¿es de propósito general y convierte al
cifrado simétrico en obsoleto? NO.
El cifrado de clave pública tiene importantes ventajas, como el hecho de
permitir el intercambio seguro de claves, sin la necesidad de un canal
de comunicación previamente seguro. Sin embargo, requiere una carga
computacional muy elevada, por lo que no es adecuado para cifrar
grandes cantidades de datos.
Por este motivo, en la práctica, a menudo se combinan ambos tipos de
criptografía: se utiliza criptografía de clave pública para el intercambio
seguro de claves y criptografía simétrica para el cifrado y descifrado de
datos.
Criptosistemas asimétricos. Aclarando conceptos
El cifrado de clave pública, ¿es más resistente al criptoanálisis que el
cifrado simétrico? NO.
El cifrado de clave pública no es inherentemente más resistente al
criptoanálisis que el cifrado simétrico.
En términos de resistencia al criptoanálisis, tanto el cifrado de clave
pública como el cifrado simétrico pueden ser seguros si se utilizan
algoritmos y parámetros adecuados.
FUNCIONES HASH
Funciones hash
Una función hash acepta un mensaje o bloque de datos de tamaño variable,
M, como entrada y produce un resumen único y de tamaño fijo, H(M),
como salida.
El resumen también se conoce como “hash”, “huella” o “digest”.
Usos:
Estructuras de datos eficientes (tablas hash).
Integridad de archivos.
Autenticación (en lugar de almacenar contraseña).
Firma digital.
...
Distinguimos funciones hash criptográficas (más centradas en seguridad,
e.g. SHA-2) y no criptográficas (más centradas en rapidez y distribución de
valores, e.g. MurmurHash).
Funciones Hash. Una aproximación
Agrupación de texto en bloques:
Representación de cada carácter por su código ASCII.
Tamaño bloque: 3.
Función matemática sobre elementos del bloque:
P. ej.: (A – B) * C
Primer Bloque: (69 – 110) * 32 = -1312
Valor Hash a partir de valores parciales:
P. ej.: suma de todos los resultados intermedios.
E n u n r i n c ó n d e
69 110 32 117 110 32 114 105 110 99 243 110 32 100 101
-1312 224 990 -15840 -6868 -22806
l a M a n c h a d e c
32 108 97 32 77 97 110 99 104 97 32 100 101 32 99
-7372 -4365 1144 6500 6831 2738
u y o n o m b r e n o q
117 121 111 32 110 111 109 98 114 101 32 110 111 32 113
-444 -8658 1254 7590 8927 8669
-11399
Funciones Hash. Una aproximación
Cualquier cambio mínimo en el texto produce un cambio en el resultado de la función
Hash:
Así, si cambiamos rincón por rincon, el valor de la función Hash pasa de -11.399 a 3.121.
ó: 243.
o: 111.
E n u n r i n c o n d e
69 110 32 117 110 32 114 105 110 99 111 110 32 100 101
-1312 224 990 -1320 -6868 -8286
l a M a n c h a d e c
32 108 97 32 77 97 110 99 104 97 32 100 101 32 99
-7372 -4365 1144 6500 6831 2738
u y o n o m b r e n o q
117 121 111 32 110 111 109 98 114 101 32 110 111 32 113
-444 -8658 1254 7590 8927 8669
3121
Funciones Hash. Otra aproximación
Para generar un hash de n bits, se puede dividir el archivo a procesar
en m bloques de n bits cada uno y calcular el XOR de dichos
bloques. El resultado será el hash del archivo.
Función hash simple mediante XOR bit a bit (Stallings, 2004)
Funciones Hash
En el desarrollo de funciones
hash criptográficas modernas
se reutiliza mucho del
conocimiento existente en la
construcción de algoritmos de
cifrado de bloque.
Parte del funcionamiento de SHA-512 (Stallings, 2017)
Propiedades de las funciones hash criptográficas
Para que resulte útil, una función hash H criptográfica debe cumplir los siguientes
requisitos (Stallings, 2017):
1. Tamaño de entrada variable: H debe poder aplicarse a un bloque de datos de cualquier
tamaño.
2. Tamaño de salida fijo: H debe producir una salida de tamaño fijo.
3. Eficiencia: H(x) debe ser relativamente fácil de computar para cualquier x dado.
4. Resistencia ataques de pre-imagen (propiedad unidireccional): Para cualquier valor de
hash h dado, debe ser computacionalmente inviable encontrar y tal que H(y)=h.
5. Resistencia a ataques de segunda pre-imagen (resistencia débil a la colisión): Para
cualquier bloque dado x, debe ser computacionalmente inviable, encontrar y x con
H(y)=H(x).
6. Resistencia a ataques de colisión (resistencia fuerte a la colisión). Debe ser
computacionalmente inviable encontrar cualquier par (x, y) tal que H(x)=H(y).
7. Pseudoseudoaleatoriedad. La salida de H debe cumplir con las pruebas estándar de
pseudoseudoaleatoriedad.
Funciones hash
El resultado de una función hash es una
secuencia de bits de tamaño fijo.
Por comodidad, suele representarse en
formato hexadecimal.
En el caso de MD5:
32 dígitos HEX * 4 bits / digito HEX = 128 bits
Principales funciones hash criptográficas
MD5 (Message-Digest Algorithm 5):
Diseñada por Ronald Rivest en 1992 (también desarrolló MD2, MD4 y MD6).
Genera un valor hash de 128 bits.
Ampliamente usada, pero actualmente se considera insegura debido a su vulnerabilidad a los
ataques de colisión.
SHA-1 (Secure Hash Algorithm 1):
Diseñada por la NSA y publicada por el NIST en 1995.
Genera un valor hash de 160 bits.
Al igual que MD5, ya no se considera segura debido a que es vulnerable a ataques de
colisión.
Principales funciones hash criptográficas
SHA-2 (Secure Hash Algorithm 2):
Familia de funciones hash diseñadas por la NSA y publicadas por el NIST en 2001.
Incluye múltiples variantes: SHA-224, SHA-256, SHA-384, SHA-512, SHA-512/224 y SHA-
512/256.
Es muy utilizada actualmente y se considera segura.
SHA-3 (Secure Hash Algorithm 3):
Diseñada para disponer de una alternativa segura a SHA-2.
Ganadora de la competición de funciones hash del NIST.
La competición duró desde 2007 a 2012. SHA-3 se estandarizó en 2015.
Se basa en el algoritmo Keccak, co-diseñado por Joan Daemen (junto con Guido Bertoni,
Michaël Peeters y Gilles Van Assche), quien también es el co-diseñador de Rijndael (AES)
(junto con Vincent Rijmen).
Incluye múltiples variantes: SHA3-224, SHA3-256, SHA3-384 y SHA3-512.
Se considera más segura que SHA-2.
Otras funciones hash criptográficas
RIPEMD-160 (RACE Integrity Primitives Evaluation Message Digest):
Genera un valor hash de 160 bits.
Desarrollada por el proyecto RIPE en 1996 como una alternativa a SHA-1.
Usada en varias aplicaciones criptográficas, como Bitcoin, donde se usa en combinación con
SHA-256 para crear direcciones Bitcoin.
Se considera más segura que MD5 y SHA-1, pero actualmente se recomienda usar SHA-2 o
SHA-3 en su lugar.
Otras funciones hash criptográficas
BLAKE:
Finalista en la competición del NIST en 2012.
BLAKE2:
Versión mejorada de BLAKE.
Permite generar valores hash con longitudes variables:
BLAKE2b: desde 8 hasta 512 bits.
BLAKE2s: hasta 8 hasta 256 bits.
Muy rápida en implementaciones SW (más que MD5, SHA-1, SHA-2 y SHA-3).
Seguridad comparable a SHA-3.
Otras funciones hash criptográficas
Whirlpool:
Genera una salida de 512 bits.
Utiliza un esquema de sustitución-permutación similar al de AES y emplea S-boxes parecidas.
Fue diseñada en 2000 por Vincent Rijmen y Paulo Barreto.
Aunque se considera segura y resistente a colisiones, su uso es menos extendido que otros
algoritmos modernos como SHA-2 o SHA-3, siendo su elección dependiente de los
requerimientos específicos del entorno.
Herramientas
Los principales SOs incluyen por defecto diferentes comandos para
cálculo de hashes criptográficos.
Adicionalmente, hay herramientas que podemos instalar:
Específicas:
HashCalck (SlavaSoft). Freeware.
QuickHash GUI. Open source. Linux, Windows, y Mac OSX.
…
Genéricas:
Cryptool. Open source.
OpenSSL. Open source. En Linux y MacOS suele estar instalada.
También disponible para Windows.
QuickHash GUI
[Link]
Cracking de contraseñas
NOTAS:
Las contraseñas NO se “descifran” (no existe una clave para revertir un
hash). Se intentan adivinar contra sus hashes con ataques de
diccionario/fuerza bruta (password cracking).
Cracking de contraseñas
John the Ripper:
[Link]
Fuerza bruta y diccionario.
Open Source.
Windows, Linux, macOS.
Hashcat:
[Link]
Fuerza bruta y diccionario.
Open Source.
Windows, Linux, macOS.
Cracking de contraseñas
Ophcrack:
[Link]
Rainbow tables.
Open Source.
Windows, Linux, macOS.
Recursos de interés
Intypedia:
Lección 14. Funciones Unidireccionales y algoritmos de hash.
[Link]
FIRMA DIGITAL
Firma digital
1ª aproximación (NO válida):
Documento se cifra con PRA:
Sólo el poseedor de la clave privada puede haberlo hecho.
PUA permite comprobar la validez del documento.
Problemas:
Ineficiencia cifrado:
Cifrado asimétrico tiene un coste computacional muy alto.
El documento “firmado” es ilegible directamente (es preciso
descifrarlo).
Solución?
Firma digital
2ª aproximación (real):
Se calcula un hash del documento.
Se cifra dicho hash con PRA.
Dadas las propiedades de las funciones hash, esto es equivalente a
la cifra del documento original.
Ventajas:
Más eficiente (los resúmenes tienen tamaño fijo y pequeño).
No es necesario aplicar ninguna función para acceder al documento
original (se puede “leer” directamente).
Protocolo Firma digital
1. Generar resumen del documento utilizando una función conocida
(e.g. SHA-2, …)
SHA-256(Doc) = h_orig
2. Cifrar resumen con clave privada emisor
E[PRa, h_orig] = h’
3. Enviar documento junto con resumen cifrado al receptor
Doc + h’
Protocolo Firma digital
4. Receptor genera un resumen del documento recibido, usando la
misma función que el origen
SHA-256(Doc) = h_dest
5. Receptor descifra con la clave pública del emisor el resumen
cifrado (que se adjuntó con el mensaje)
D[PUa, h’] = h_orig
6. Si los resúmenes obtenidos en los pasos 4 y 5 coinciden, la firma es
válida
¿h_dest = h_orig?
Protocolo Firma digital
Fuente: [Link]
Servicios de la firma digital
Se ofrecen conjuntamente los servicios de:
Autenticación, ya que si el documento viene firmado por A, podemos
estar seguros de su identidad, dado que sólo él ha podido firmarlo.
Integridad del documento, ya que en caso de ser modificado, resultaría
imposible hacerlo de forma tal que se generase el mismo resumen que
había sido firmado.
No repudio, ya que nadie excepto A podría haber firmado el
documento.
¡No ofrece privacidad!
CERTIFICADOS DIGITALES
Certificados digitales
Una de las funciones principales del cifrado de clave pública es la de
tratar el problema de la distribución de claves.
Ya no es necesario intercambiar una clave con cada interlocutor.
Basta con hacer disponible la clave pública.
Pero, ¿en qué formato distribuimos la clave pública?
Y, más importante, ¿cómo podemos estar seguros de que una clave
es quien dice ser?
Certificados digitales
En cuanto al formato, la clave
pública, unida a una serie de
datos, se almacena en formato
estándar conocido como X.509.
Dichos datos incluyen:
Información sobre el dueño de
la clave pública.
Período de validez del
certificado.
Algoritmos usados.
...
Certificados digitales
En cuanto a la autenticidad de la clave pública, el CD incluye la
firma, tanto de la clave pública como de los datos asociados, de una
tercera parte de confianza.
Esta tercera parte de confianza se conoce como Autoridad de
Certificación (AC) (Certificate Authority, CA).
Un certificado digital con estas características es lo que se conoce como
certificado digital de clave pública, referido normalmente como
certificado digital.
Certificado Digital de Clave Pública: documento digital emitido y firmado
digitalmente por una clave privada de una AC, que asocia el nombre del
propietario a su clave pública.
El certificado indica que el propietario tiene control exclusivo y acceso a la
clave privada correspondiente.
Usos de los certificados digitales
Protocolos seguros (SSL, TLS, …).
Cifrado y/o Firma de correo electrónico (S/MIME).
Firma digital (documentos, código, etc.).
Cifrado y/o Firma de documentos.
Autenticación de usuarios o aplicaciones.
Certificado usado en [Link] (1/4)
Podemos exportar dicho certificado a un archivo ([Link].: [Link])
y visualizarlo con otras herramientas ([Link].: openssl)
Certificado usado en [Link] (2/4)
user@debian-6:~$ openssl x509 -in [Link] -noout -text
Certificate:
Data:
Version: 3 (0x2)
Serial Number:
4b:10:bf:a1:d9:68:07:7e:cd:8c:17:01:8d:49:45:d4 En decimal (618 dígitos):
Signature Algorithm: sha1WithRSAEncryption
Issuer: C=NL, O=TERENA, CN=TERENA SSL CA 2724617832743468765444541081513157023
Validity 9036584733320022890551718036889953871
Not Before: Mar 6 00:00:00 2013 GMT 9274584273938754596758904913993697667
Not After : Mar 12 23:59:59 2016 GMT 1240571178055718148580762576373940456
Subject: OU=Domain Control Validated, CN=[Link] 2381571022217061095951331522079576719
Subject Public Key Info: 4564591092181041580213189873269538398
Public Key Algorithm: rsaEncryption 6456487129599483445286391194653635144
RSA Public Key: (2048 bit) 1681542728890374442241278554531816250
Modulus (2048 bit): 8233677606104984953126996903581989720
00:d7:d4:d0:85:88:47:6d:cd:0c:1e:e2:85:26:27: 6687363119865383488143980418966780116
4c:f5:8d:4f:01:60:2d:55:c3:99:c6:d5:bf:90:32: 3504068277664225728113270605651697237
71:31:4a:9f:fc:77:2a:ff:f6:aa:69:aa:e6:00:3e: 2478743140255213826812800019190871588
68:75:6a:a1:c1:69:81:09:b5:8c:51:1c:ba:d6:20: 5080850752637896514392323192009280896
7d:68:41:c8:7c:f8:b6:2c:38:cb:eb:63:50:61:3d: 0940275510216803317300306514900581721
2d:42:5c:af:59:9b:dc:71:74:dd:fe:3e:22:fa:e4: 7941752784908785024721858175458575250
23:f5:22:1d:06:e1:e2:f6:73:58:4f:f7:7c:f8:7b: 9366061560151309956387494078845741529
0e:0c:c9:42:ec:5e:f0:a5:01:9e:6b:af:0f:90:e1: 0285736069148428181038621
bb:23:7b:8d:d6:b0:58:81:a6:44:cb:c8:ab:d1:3c:
1e:e9:68:c1:d7:37:b6:87:65:23:6b:c1:79:13:95:
b5:72:6a:ce:fe:8a:38:69:2f:78:00:86:b1:41:fa:
ce:88:76:fa:e9:2d:fd:5f:5d:87:43:67:ca:e0:e8:
66:c7:85:c2:3f:99:e9:81:e3:6a:34:69:e1:76:a0:
7d:7c:7f:6e:5b:32:32:d3:60:2d:16:81:b7:64:70:
58:a4:5b:78:6d:e7:d6:60:d7:48:5a:96:52:31:dd:
32:48:7c:51:4e:ac:bb:7c:3f:02:fd:b4:13:1e:7e:
6c:10:09:e1:a2:5c:3e:05:80:64:99:09:8b:dc:21:
e6:1d
Exponent: 65537 (0x10001)
X509v3 extensions:
Certificado usado en [Link] (3/4)
X509v3 extensions:
X509v3 Authority Key Identifier:
keyid:0C:BD:93:68:0C:F3:DE:AB:A3:49:6B:2B:37:57:47:EA:90:E3:B9:ED
X509v3 Subject Key Identifier:
F7:24:5D:C6:01:EF:87:FF:86:08:15:35:97:F5:2E:F0:C9:FE:7D:C7
X509v3 Key Usage: critical
Digital Signature, Key Encipherment
X509v3 Basic Constraints: critical
CA:FALSE
X509v3 Extended Key Usage:
TLS Web Server Authentication, TLS Web Client Authentication
X509v3 Certificate Policies:
Policy: [Link].4.1.6449.[Link]
Policy: [Link].2.1
X509v3 CRL Distribution Points:
URI:[Link]
Authority Information Access:
CA Issuers - URI:[Link]
OCSP - URI:[Link]
X509v3 Subject Alternative Name:
DNS:[Link]
Signature Algorithm: sha1WithRSAEncryption
Certificado usado en [Link] (4/4)
Signature Algorithm: sha1WithRSAEncryption
8d:8b:38:fb:5d:04:3e:a1:3d:bf:5e:03:89:c2:e9:fd:a9:d5:
0b:a2:24:3d:85:73:f5:1d:38:12:e4:26:56:26:7d:09:55:c7:
00:cb:90:d4:b6:fc:05:f5:9d:e6:7e:ac:33:ae:0f:1b:6d:ed:
cf:02:9b:56:72:68:d4:5d:28:3c:60:3a:9d:c1:e8:25:fd:6d:
62:d5:b0:65:50:11:d3:4d:fc:dd:32:ae:16:6a:dd:37:7b:4a:
57:43:f2:53:59:b8:45:12:fa:da:69:bc:66:91:3b:3a:73:91:
f6:60:97:0e:c0:de:1e:fc:d0:f7:53:aa:d5:93:12:d4:4d:ab:
09:51:52:5b:59:7e:cb:22:cf:6a:95:0f:77:26:28:82:5f:c8:
4c:28:89:14:44:f7:00:83:46:f2:2d:81:ea:05:cb:b0:38:7f:
88:fe:18:f1:62:af:16:b8:e5:86:58:e3:a4:15:40:a8:23:f7:
77:4c:b2:96:21:9b:71:fe:e3:73:dd:d1:0e:6a:94:f0:d3:d2:
c1:ef:ca:f5:ec:79:aa:da:ee:e1:58:e7:39:43:70:a0:54:00:
29:8a:6a:23:4d:70:d1:99:39:4a:b8:ab:d4:6e:4d:49:0d:81:
9f:4a:17:9a:37:75:92:b4:b4:f8:f2:af:58:63:e4:cf:8c:c4:
fe:0e:f9:83
Certificado usado en [Link] (1/4)
Certificado usado en [Link] (2/4)
user@debian-6:~$ openssl x509 -in [Link] -noout -text
Certificate:
Data:
Version: 3 (0x2)
Serial Number:
08:34:e4:53:d4:3a:68:57:23:af:fb:b1:33:ce:45:7c
Signature Algorithm: sha1WithRSAEncryption
Issuer: C=US, O=VeriSign, Inc., OU=VeriSign Trust Network, OU=Terms of use
at [Link] (c)06, CN=VeriSign Class 3 Extended Validation SSL
CA
Validity
Not Before: Apr 15 00:00:00 2014 GMT
Not After : Apr 2 23:59:59 2015 GMT
Subject:
[Link].[Link].2.1.3=US/[Link].[Link].2.1.2=Delaware/businessCategory=Priva
te Organization/serialNumber=3014267, C=US/postalCode=95131-2021, ST=California,
L=San Jose/street=2211 N 1st St, O=PayPal, Inc., OU=CDN Support, CN=[Link]
Subject Public Key Info:
Public Key Algorithm: rsaEncryption
RSA Public Key: (2048 bit)
Modulus (2048 bit):
00:be:ae:46:4d:99:6e:6d:6c:35:4b:88:32:38:bb:
dc:d0:09:95:d0:9a:e4:36:e7:9f:0a:b0:f2:d7:d2:
30:62:03:1f:ad:c6:f4:6d:10:84:f7:79:1b:bc:74:
c0:a8:e3:82:fe:d4:0a:93:2e:3d:4b:12:24:ad:ad:
5f:5d:ed:1c:c9:1c:6f:13:7b:e2:c1:25:4e:46:5f:
4f:3b:2e:5a:cb:c1:5a:b4:82:cf:ad:a3:65:e8:86:
33:b5:ed:1d:78:99:a7:c7:d5:fa:10:2e:fb:11:4e:
23:58:06:96:87:71:75:51:73:8c:0f:f4:ca:7c:8f:
91:25:79:13:dc:b0:f0:de:08:07:01:0b:64:cc:57:
6a:12:86:62:17:3e:5d:b9:62:3d:58:7b:2a:6e:f6:
a6:30:41:02:fc:ec:64:72:33:d5:d5:3f:6b:6d:97:
f3:c1:61:bf:38:3b:ab:41:47:d4:c2:03:d7:3b:59:
Certificado usado en [Link] (3/4)
f3:c1:61:bf:38:3b:ab:41:47:d4:c2:03:d7:3b:59:
57:9d:e1:a1:2a:d6:78:e8:83:5d:3d:dd:aa:5d:17:
fd:94:d6:e5:7a:ef:02:63:c6:a3:c6:2d:5b:33:08:
8b:f5:a5:03:b4:fe:f2:1d:ab:bf:5e:9e:b8:78:39:
20:2b:68:61:4f:e4:99:f2:aa:c2:4d:4b:48:cb:68:
c2:10:3f:fa:9a:ba:c5:6a:53:8f:22:f3:d7:c9:ed:
a4:d5
Exponent: 65537 (0x10001)
X509v3 extensions:
X509v3 Subject Alternative Name:
DNS:[Link], DNS:[Link], DNS:[Link],
DNS:[Link], DNS:[Link], DNS:[Link]
X509v3 Basic Constraints:
CA:FALSE
X509v3 Key Usage: critical
Digital Signature, Key Encipherment
X509v3 Extended Key Usage:
TLS Web Server Authentication, TLS Web Client Authentication
X509v3 Certificate Policies:
Policy: [Link].113733.[Link]
CPS: [Link]
User Notice:
Explicit Text: [Link]
X509v3 Authority Key Identifier:
keyid:FC:8A:50:BA:9E:B9:25:5A:7B:55:85:4F:95:00:63:8F:E9:58:6B:43
X509v3 CRL Distribution Points:
URI:[Link]
Authority Information Access:
OCSP - URI:[Link]
CA Issuers - URI:[Link]
Signature Algorithm: sha1WithRSAEncryption
Certificado usado en [Link] (4/4)
Signature Algorithm: sha1WithRSAEncryption
76:08:ab:64:f6:f4:0b:e4:81:bd:59:b2:3e:a4:fc:f5:03:75:
04:59:6a:b5:fe:12:34:2a:04:9c:89:cd:cb:e1:3c:6c:20:39:
d4:ea:6f:27:34:7f:62:1c:45:72:11:39:c0:45:aa:2a:35:5c:
b6:06:e3:08:a7:8f:08:af:80:b2:10:ce:a5:28:5b:1c:49:55:
11:eb:6b:2a:80:c1:09:ed:82:72:48:ca:19:8b:e5:34:94:3c:
50:26:77:6b:1a:63:ba:6f:63:d1:58:ed:2b:1d:b7:a7:6e:04:
25:99:c3:94:03:90:ec:0f:4c:93:83:35:86:e3:70:84:0d:3c:
ce:af:4e:80:4a:d3:91:3f:55:33:2f:1f:67:87:2f:09:a2:41:
c0:10:4a:2c:c4:88:a0:6f:93:2c:ef:38:d2:61:c7:ec:f3:37:
7d:c9:32:a5:5c:1e:48:0e:85:6c:47:2a:7f:c6:30:5e:c2:f6:
2e:dd:e3:4d:ac:ff:ef:48:26:c7:51:74:47:32:46:0b:cd:7a:
0a:5d:5b:c5:8d:ed:17:bc:de:09:bc:e9:93:a9:7c:85:9c:88:
a6:83:bc:d6:e5:1f:05:10:df:b2:4f:a2:c5:97:00:8b:57:c7:
0d:e7:c7:57:57:87:7d:13:9f:5c:5c:f7:f3:cd:00:89:0d:85:
9a:a2:70:da
Lista de Revocación de Certificados
(Certificate Revocation List, CRL)
Si un certificado deja de ser válido dentro del período de validez, es
necesario revocarlo.
Razones para la revocación:
Se sospecha que la clave privada del usuario está comprometida.
El usuario ya no está certificado por esa AC.
Se sospecha que el certificado de la AC está comprometido.
Los certificados deben incluir URI a CRL.
Lista de Revocación de Certificados
(Certificate Revocation List, CRL)
¿Cómo obtener un certificado digital?
Solicitándolo a una CA
[Link] ([Link] permite comprar distintos tipos de certificados
(SSL/TLS, S/MIME, autenticación, firma de documentos, firma de código...).
Let’s Encrypt ([Link] permite adquirir de forma gratuita
certificados de tipo SSL/TLS para servidores Web.
Actalis ([Link] permite obtener distintos tipos de certificados
(SSL/TLS, S/MIME, autenticación, firma de documentos, firma de código...).
En particular, permite obtener de forma gratuita un certificado de usuario, de
prueba, válido para enviar correo seguro ([Link]
certificates).
NOTA: En este caso, Actalis no sigue el proceso habitual: genera ella las claves.
Fábrica Nacional de Moneda y Timbre (FNMT) ([Link]
permite obtener de forma gratuita certificados de usuario, válidos, p. ej., para
autenticación y firma digital (hasta agosto 2023 también para enviar correo
electrónico seguro).
¿Cómo obtener un certificado digital?
Creándolo uno mismo:
Soluciones como OpenSSL ([Link] permiten generar todo
tipo de certificados (para uso en servidores web, correo electrónico, CA, ...).
Estos certificados no están firmados por una CA de confianza, de modo que no
serán reconocidos externamente.
Obtener CD FNMT
1. Ir a [Link]
2. Configuración previa:
Instalación SW FNMT.
3. Generación y envío solicitud:
Cumplimentar datos:
IMPORTANTE: Si se desea utilizar el certificado para correo electrónico
seguro, es necesario incluir la dirección de correo (no es obligatoria, ni
necesaria para otros usos).
Esta opción ya no está disponible desde agosto de 2023 (Noticia).
Generar claves. ¡En el equipo del usuario!
Enviar solicitud certificado (Certificate Request). ¡Sólo contiene la clave pública!
Obtenemos un Código de Solicitud.
Obtener CD FNMT
4. Acreditar identidad:
Verificar que la persona es quién dice ser.
Acreditar la veracidad de los datos incluidos en el certificado (nombre, apellidos,
DNI, etc.).
Se puede hacer:
En persona:
Oficina de Acreditación de Identidad (+2400 oficinas. Localizador).
Se puede hacer en la UDC. Desde abril 2021, también el alumnado. Ver noticia.
Más info y cita previa: [Link]
Más info:
[Link]
Con autenticación “fuerte”, por ejemplo, con el DNIe.
NUEVO: Acreditación de la identidad con Vídeo Identificación. Tiene un
pequeño coste asociado (2,99 euros + impuestos).
5. Descargar certificado.
Formatos de archivo de certificados
Los certificados digitales X509 pueden almacenarse en distintos formatos
de archivo. Estas variantes difieren en la forma de codificación (texto
Base64 o binario) y en el contenido que pueden incluir (solo certificados
públicos, cadenas completas de certificación, claves privadas, etc.).
Distintos SOs y aplicaciones requieren formatos específicos.
A continuación, veremos los formatos más comunes (PEM, DER, PKCS#7 y
PKCS#12) incluyendo sus extensiones habituales y sus principales
características.
Dos esquemas de codificación: PEM y DER
PEM (Privacy-Enhanced Mail):
Base64.
Originalmente propuesto para correo electrónico, pero ahora convertido en
formato prevalente en numerosos entornos.
Contienen marcas. P. ej.:
---- BEGIN CERTIFICATE---- ... ----END CERTIFICATE----
---- BEGIN RSA PRIVATE KEY----- ... -----END RSA PRIVATE KEY-----
Útil para almacenamiento y transferencia.
DER
Es la representación binaria pura del certificado (estructura ASN.1 codificada en
binario).
Todos los certificados X.509 tienen internamente un formato DER definido, y PEM
no es más que DER expresado en Base64.
Útil para sistemas que requieran datos binarios.
PEM (Privacy-Enhanced Mail)
Formato más común para certificados digitales.
Los archivos PEM suele tener extensiones .pem, .crt, .cer o .key:
.pem puede incluir certificado, certificados intermedios y clave privada en un
único archivo.
.crt y .cer: usadas típicamenne para certificados públicos. Pueden incluir
certificado y certificados intermedios, sin clave privada. En Windows, un archivo
con extensión .cer o .crt puede ser en realidad PEM (texto) o DER (binario).
.key: sólo clave privada.
El formato PEM es popular porque es fácil de manejar y leer.
Casi todas las plataformas Unix/Linux y herramientas de seguridad utilizan
PEM por defecto.
Formato PKCS#7
Contenedor usado principalmente para agrupar certificados.
El estándar PKCS #7 quedó descrito en el RFC 2315 bajo el título “PKCS #7:
Cryptographic Message Syntax Version 1.5”. Posteriormente, el IETF definió
CMS en el RFC 5652, que reemplaza en la práctica a PKCS #7 manteniendo
retrocompatibilidad.
Codificación: normalmente Base64 ASCII (PEM) con encabezados -----
BEGIN PKCS7----- / -----END PKCS7-----, sin embargo, también puede
almacenarse en binario DER puro.
Extensiones:
.p7b y .p7c: contiene solo certificados y/o listas de revocación (CRLs), sin claves
privada. Admite el almacenamiento de uno o varios certificados. P. ej., al exportar
desde una CA, un .p7b suele contener el certificado emitido junto con la cadena
completa de certificación (certificados intermedios y raíz).
.p7s: contiene una firma digital y los certificados del firmante.
Utilizado principalmente en entornos Windows.
Formato PKCS#12 / PFX (P12)
El formato PKCS#12, también conocido como PFX (Personal Information
Exchange), es un formato binario de contenedor que puede almacenar
múltiples objetos criptográficos en un solo archive.
Extensiones: .pfx o .p12 (equivalentes).
Admite el almacenamiento seguro de certificados, claves privadas y todos
los certificados en una ruta de certificación.
A diferencia de PEM o P7B, los archivos PKCS#12 están normalmente
protegidos por contraseña: la clave privada (y opcionalmente todo el
contenido) está cifrada con un algoritmo simétrico.
Es especialmente utilizado para combinar una clave privada con su
certificado público (y opcionalmente la cadena de certificados) en un
paquete portátil.
Es el formato a elegir cuando se necesita portar certificados con sus claves
privadas de manera segura entre sistemas.
Ampliamente utilizado en entornos Windows.
Formato DER
El formato DER (Distinguished Encoding Rules) es la contraparte binaria de
PEM.
Extensiones:
.der: es la extensión específica.
.crt o .cer, como ya vimos, pueden ser archivos DER o PEM.
Admite el almacenamiento de un único certificado.
No incluye clave privada ni la cadena completa de certificados.
En la práctica, cuando se habla de “un DER” nos referimos a un solo
certificado en binario, sin información sensible.
Algunos sistemas y dispositivos requieren certificados en DER.
En general, cualquier certificado PEM puede convertirse a DER con
herramientas como OpenSSL fácilmente, y viceversa.
AUTORIDADES DE CERTIFICACIÓN
Autoridades de Certificación
Son terceras partes de confianza, que emiten y gestionan
certificados digitales.
Verifican (en mayor o menor medida, en función del tipo de certificado)
la información proporcionada por la entidad que solicita el certificado y,
una vez validada, emiten el certificado firmado digitalmente.
Forman parte de lo que se conoce como Infraestructura de Clave
Pública (Public Key Infrastructure, PKI).
Autoridades de Certificación
Public Key Infrastructure, PKI:
Conjunto de políticas, procesos, hardware, software y servicios utilizados
para el propósito de la administración de certificados digitales,
incluyendo la capacidad para emitir, mantener y revocar certificados de
clave pública.
En una PKI, hay diferentes niveles de autoridades de certificación, que
pueden incluir:
autoridades de certificación raíz >
autoridades de certificación intermedias >
autoridades de certificación de emisión >
Autoridades de Certificación
Un usuario/organización puede generar las claves (pública y privada)
y presentar su clave pública ante una AC, en una solicitud de
certificado, para obtener un certificado.
En función del tipo de certificado, la AC requerirá documentación al
usuario/organización y/o presencia física para que se autentique.
Posteriormente, el usuario/organización podrá descargar el
certificado.
Autoridades de certificación
Cualquier usuario puede comprobar la validez de un certificado
digital. Tan sólo necesita la clave pública de la AC que lo emitió.
Los SOs incorporan una lista de ACs de confianza:
Si una AC no figura en la lista, puede recurrirse a su página Web u otras
vías para obtener su certificado.
IMPORTANTE asegurarse de que es el certificado correcto.
Ejemplos de Autoridades de Certificación
VeriSign -> DigiCert
Thawte -> DigiCert
GeoTrust -> DigiCert
DigiCert
GlobalSign
Let's Encrypt
Sectigo (anteriormente Comodo CA)
Entrust
FNMT
…
Ejemplos de Autoridades de Certificación
Ver los certificados de ACs en Chrome:
chrome://settings/ > Privacidad y seguridad > Seguridad > Gestionar
certificados
Ejemplos de Autoridades de Certificación
Ejemplo de certificado de AC: VeriSign Universal Root CA.
Ejemplos de Autoridades de Certificación
Lo mismo se puede hacer desde otros navegadores.
En la mayoría de los casos, lo que hacen realmente, es acceder al
almacén de certificados del SO.
En Windows se puede acceder directamente a ese almacén con la
utilidad [Link].
Seguridad en correo
electrónico
Jose Vázquez Naya
Objetivos
Ver ejemplos de aplicaciones prácticas de criptografía.
Comprender la importancia de la seguridad en el correo electrónico
y en las comunicaciones vía telemática.
Conocer opciones para protección de datos en el envío de correo
electrónico: PGP y S/MIME.
Introducción
El correo electrónico es uno de los servicios de red más utilizados.
No es un medio seguro.
¿Correo electrónico? ¿o deberíamos decir "postal electrónica"?
Acceso al correo electrónico
25 (SMTP) - Stardard Mail Transfer Protocol (inseguro).
110 (POP3) - Post Office Protocol versión 3 para recuperación de
correo-e (inseguro).
143 (IMAP) - Internet Message Access Protocol version 2. Protocolo
de recuperación de correo-e (inseguro).
465 (secured SMTP).
995 (POP3S) - POP3 con SSL.
993 (IMAPS) - IMAPv2 con SSL.
Correo Web. 80 (http) -> 443 (https).
Seguridad en correo electrónico
Hay dos esquemas principales, que están especialmente diseñados
para proporcionar confidencialidad, autenticación, integridad y no
repudio a los sistemas de correo electrónico:
PGP (Pretty Good Privacy).
S/MIME (Secure/Multipurpose Internet Mail Extension).
Seguridad en correo electrónico
PGP (PRETTY GOOD PRIVACY)
Pretty Good Privacy (PGP)
Programa que permite realizar operaciones de cifrado, descifrado,
firma y verificación de textos y de todo tipo de archivos.
Fue desarrollado por Phil Zimmermann en 1991.
Hay versiones para Linux, Mac, Windows,…
Combina funciones de hash, compresión, cifrado simétrico y cifrado
asimétrico.
Usuario necesita clave pública y privada (que debe generar él
mismo).
No hay "Autoridades de Certificación". Se basa en "web of trust“.
Historia de PGP (1/3)
Phil Zimmermann creó la primera versión
en 1991:
Algoritmo cifrado simétrico desarrollado
por Zimmermann: BassOMatic.
Objetivo: poder comunicarse y almacenar
mensajes de forma segura en las BBS
(Bulletin Board System) y, en general,
proteger la privacidad y los derechos civiles
(p. ej., de activistas y disidentes) frente a la
vigilancia.
No requería licencia para uso no
comercial.
Se distribuía con el código fuente.
Historia de PGP (2/3)
1993: Zimmermann fue acusado de "exportación de munición sin
licencia" por los [Link]. (criptosistema de más de 40 bits).
Zimmermann publicó el código de PGP en un libro (exportación
protegida por la primera enmienda).
La investigación se cerró sin cargos.
1996: Zimmermann crea una compañía que se fusiona con Viacrypt y
pasa a llamarse PGP Incorporated.
Historia de PGP (3/3)
1997
PGP Inc. propone a IETF la creación de un estándar llamado OpenPGP.
IETF acepta y se crea el OpenPGP Working Group.
PGP Inc. fue adquirida por Network Associates, Inc. ("NAI", después
McAffe).
1998: Free Software Foundation desarrolla GNU Privacy Guard
(GnuPGP o GPG), compatible con el estándar OpenPGP y disponible
bajo licencia GPL (GNU General Public License) (RFC 2440).
2001: Zimmermann deja NAI.
2002: NAI deja de dar soporte a los productos de PGP. Miembros del
equipo de Zimmerman forman PGP Corporation y compran derechos
de PGP a NAI.
2010: Symantec Corp. compra PGP Corporation por 300 mill. de $.
Funcionamiento
Para ilustrar el funcionamiento de PGP, supongamos que un emisor
A quiere enviar un mensaje de texto a un receptor B.
El mecanismo sería el mismo si en lugar de un mensaje fuese un archivo.
Veremos:
Autenticación.
Confidencialidad.
Autenticación y confidencialidad.
Notación (Stallings, 2011)
Mensaje en claro: M
Función hash: H()
Clave de sesión: Ks
Cifrado simétrico: EC()
Descifrado simétrico: DC()
Cifrado asimétrico: EP()
Descifrado asimétrico: DP()
Clave privada de A: KRa
Clave pública de A: KUa
Función ZIP: Z
Concatenación: ||
Autenticación (1/2)
Envío:
1. Emisor, A, crea mensaje: M
2. Se genera código hash: H(M)
3. Se cifra el código hash con cifrado asimétrico: EP[KRa] (H(M))
4. Se unen el mensaje original y el código hash cifrado y se comprimen (ZIP):
Z(EP[KRa] (H(M)) || M )
Envío Recepción
Autenticación (2/2)
Recepción:
5. Receptor, B, descomprime el mensaje recibido: Z-1, obteniendo el texto del
mensaje y el hash cifrado por A con su clave privada, KRa
6. Se descifra hash cifrado, utilizando la clave pública de A, KUa, y se obtiene
H(M):
DP[KUa] (EP[KRa] (H(M)) = H(M)
7. Se calcula el H(M) y se compara con el obtenido en el paso 6
Envío Recepción
Confidencialidad (1/3)
Envío:
1. Emisor, A, crea mensaje: M
2. Se comprime el mensaje: Z(M)
3. Se genera clave de sesión: Ks
Ks
Envío Recepción
Confidencialidad (2/3)
Envío:
4. Se cifra con algoritmo simétrico (EC) el mensaje, utilizando Ks:
EC[Ks] (Z(M))
5. Se cifra con algoritmo asimétrico (EP) la clave de sesión, Ks, utilizando la
clave pública del destinatario, B, KUb:
EP[KUb] (Ks)
Ks
Envío Recepción
Confidencialidad (3/3)
Recepción:
6. Receptor, B, recupera clave de sesión:
DP[KRb] ( EP[KUb] (Ks )) = Ks
7. Se recupera mensaje comprimido, usando descifrado simétrico (DC) y Ks:
DC[Ks] ( EC[Ks] (M)) = M’
8. Se comprime el mensaje: Z-1(M’) = M
Ks
Ks
Envío Recepción
Autenticación y Confidencialidad
Uso conjunto de ambos servicios:
Envío: 1º Autenticación, 2º Confidencialidad
Recepción: 1º Confidencialidad, 2º Autenticación
Ks
Compresión
PGP comprime el mensaje después de aplicar la firma, pero antes del
cifrado.
La ubicación del algoritmo de compresión es crítica:
Se firma el mensaje original, no el comprimido (es deseable ”ver” lo
que uno firma).
Caso contario, para verificar la firma, tendría que almacenar el
mensaje comprimido, o bien guardarlo en claro y comprimirlo cada
vez (con el mismo algo. y parámetros), antes de verificar la firma
(ninguno de estos casos es práctico)
Se comprime antes de cifrar:
Reduce tamaño.
Refuerza la seguridad criptográfica.
Compatibilidad Correo (1/8)
Correo electrónico diseñado inicialmente para texto plano:
Se especifica en la RFC 822 (1982).
PGP genera datos binarios:
Pb: No todos tienen correspondencia con un carácter ASCII imprimible
El resultado no se podría enviar como texto plano
Es preciso añadir algo al esquema anterior para solucionar esto.
Tabla ASCII. Extraída de [Link]
Compatibilidad Correo (2/8)
Reunión secreta a las 17:00h
R e u h
82 101 117 ... 104 ASCII
01010010 01100101 01110101 01101000
Cifrado
00001111 00011000 01000100 01000011
15
Es un carácter de control No es imprimible
Desp. adentro
No se puede enviar por correo
Compatibilidad Correo (3/8)
Solución: utilizar un algoritmo de codificación que convierta la
cadena de bits a caracteres ASCII imprimibles.
Algoritmo: Base-64.
Transforma 3 octetos de datos binarios (3 bytes) en 4 caracteres ASCII
imprimibles.
Se puede probar aquí: [Link]
Hay variantes: p. ej.: radix-64, que es la que usa PGP.
Compatibilidad Correo (4/8)
Conversión Base-64:
1. La entrada binaria se divide en bloques de 24 bits (3 bytes).
2. Cada bloque de 24 se divide en cuatro conjuntos de 6 bits cada uno.
3. Cada conjunto de 6 bits tendrá entonces un valor entre 0 y 26-1 (=63).
4. Este valor se codifica en un carácter imprimible según la tabla que se
muestra en la siguiente diapositiva.
Fuente: [Link]
6 bit Character 6 bit Character 6 bit Character 6 bit Character
value encoding value encoding value encoding value encoding
0 A 16 Q 32 g 48 w
1 B 17 R 33 h 49 x
2 C 18 S 34 i 50 y
3 D 19 T 35 j 51 z
4 E 20 U 36 k 52 0
5 F 21 V 37 l 53 1
6 G 22 W 38 m 54 2
7 H 23 X 39 n 55 3
8 I 24 Y 40 o 56 4
9 J 25 Z 41 p 57 5
10 K 26 a 42 q 58 6
11 L 27 b 43 r 59 7
12 M 28 c 44 s 60 8
13 N 29 d 45 t 61 9
14 O 30 e 46 u 62 +
15 P 31 f 47 v 63 /
(pad) =
Compatibilidad Correo (5/8)
Reunión secreta a las 17:00h
R e u h
82 101 117 ... 104 ASCII
01010010 01100101 01110101 01101000
Cifrado
00001111 00011000 01000100 01000011
No todos tienen correspondencia con un carácter ASCII imprimible.
Compatibilidad Correo (6/8)
Reunión secreta a las 17:00h
R e u h
82 101 117 ... 104 ASCII
01010010 01100101 01110101 01101000
Cifrado
00001111 00011000 01000100 01000011
000011 110001 100001 000100
3 49 33 4
D x h E Base 64
Base-64: Codificación de un carácter
R = =
82 = =
01010010 = =
01010010 ======== ========
010100 100000 ====== ======
20 32 = =
U g = = Base 64
Base-64: Codificación de dos caracteres
Re
R e =
82 101 =
01010010 01100101 =
01010010 01100101 ========
010100 100110 010100 ======
20 38 20 =
U m U = Base 64
Compatibilidad Correo (7/8)
-----BEGIN PGP MESSAGE-----
hQEMA/abRqTR1dnlAQf9GRhBRObdm2qTTwXBn1PePaM2ziQsj65XxObJ0OKLv6ar
1lY1fwFaetPhkFs5cgX9YFznV2WObgoNlUvrWYzH+wN8UVZFwT5TQpb+jxZqqD3Z
ws2K8u9yB4bkBKLlf4o4vxQiby+0AA4nwDG0HgsXT/9VAouc/MM0b6uYzK6CPycE
SloTxGXgBF7rwFaS7DkBIaxRIAhvl+3xyyvMdVKCZzIUKGHuAQJA6efO3W1BwF/h
Zz+CjCUktS7Pw1W2EjFV34BrlQh70AYAnQYy9kzm1EZj99Gyd56ejkm+nmdRHWVH
PxIEu6f0NnGUnk6VZRqlcDZk8eKxOipKK+QPL6bEEtLArwHi2tDW2LH6TQlKqq8e
Bk0AhHx4FEmL/xbBXnQo4UrH9jvWzSnwIwp4bbYClTEWv3OJPGcNhbEWYHekHQPm
hVtkJXk+i8EXYE6qXBQiQXyMU/t2I2XYZOvK8HHJ2Mr3bEqhBjwa0Qqernu30V10
BMNSv62hX/lQuw4Bww+AHzozz0cDSgOWerLbGrlIiYtPk6XjYIfLmFEKhu6hRQjz
CSEy+cSq8mg+l45QZyeu0ozpmxO0ZA2+g8xNSoEkPgtoJtScEJKMZF4SXN/KHcft
DuyI2t0+5N6adIpCYCB0kHlWpoweb/1UY7ldAApJqecJ0l1nH9S+2eMsSVSzX+G2
t0XnRc1XtqOjY5YyNLCgVKUYvVB/mJC/GZ6i/cwlXqV4l55j8BPg2uuEGopqAO22
gD6VoVOIy4par7Pep4qrC6KlDkmPbcs1tskcKmWtgpDwKFJOqOaEJfia63y76OPw
/ypxnHHIVrhmGpyjTRvopgs=
=lh4h
-----END PGP MESSAGE-----
Compatibilidad Correo (8/8)
Radix-64:
PGP usa una variante de base64, que se denomina Radix-64.
Idéntico a base64 de MIME, salvo en que añade una suma de
verificación CRC de 24 bits.
Esta suma se calcula sobre los datos de entrada, antes de codificar, y
posteriormente se codifica con el mismo base64 para ser concatenada a
la codificación resultante.
En línea de comandos, esta opción se indica como --armor.
Opciones específicas para correo electrónico, como --clear-sign ya
generan el contenido en este formato.
¿Qué algoritmos usa PGP?
Por su diseño, tiene la capacidad de incluir algoritmos nuevos:
>gpg --version
gpg (GnuPG) 2.2.11
libgcrypt 1.8.4
Copyright (C) 2018 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later
<[Link]
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
Home: C:/Users/x/AppData/Roaming/gnupg
Algoritmos disponibles:
Clave pública: RSA, ELG, DSA, ECDH, ECDSA, EDDSA
Cifrado: IDEA, 3DES, CAST5, BLOWFISH, AES, AES192,
AES256, TWOFISH, CAMELLIA128, CAMELLIA192, CAMELLIA256
Resumen: SHA1, RIPEMD160, SHA256, SHA384, SHA512, SHA224
Compresión: Sin comprimir, ZIP, ZLIB, BZIP2
Llaveros o anillos de claves (1/3)
Cada usuario PGP usa un par de llaveros o anillos de claves
(keyrings):
Anillo claves públicas: contiene todas las claves públicas de los usuarios
PGP conocidos (por el usuario), indexado por el identificador de la clave
(Key ID).
Anillo claves privadas: contiene las claves privadas del usuario,
indexadas por el identificador de la clave (Key ID) (pueden ser más de
una).
Las claves privadas se almacenan cifradas con una clave derivada de
calcular el hash de una frase secreta, que el usuario debe introducir
si necesita usar alguna de dichas claves privadas.
Mismo usuario puede tener varios pares de claves:
Puesto que la clave de sesión se cifra con la clave pública del
destinatario, deberá indicarse cuál es la clave usada.
Llaveros o anillos de claves (2/3)
Envío de un mensaje firmado y cifrado, y uso de los anillos de claves.
Llaveros o anillos de claves (3/3)
Recepción de un mensaje firmado y cifrado, y uso de los anillos de claves.
Clave pública PGP
La clave pública se distribuye
en formato ASCII armor (Radix-
64), junto con otra
información:
Nombre de la persona
e-mail
Marca de tiempo del
momento en el que se generó
el par de llaves
Material propio de la clave
[Foto]
…
Clave pública PGP
Servidores de claves
Repositorios sincronizados a los que cualquier usuario puede subir su clave pública:
Permite que otros usuarios encuentren la clave y la pueda usar para:
Enviar correo cifrado.
Verificar firma.
Puede incluir firmas hechas por otros usuarios.
Una vez subida una clave, ¡no se puede borrar!
Permiten realizar búsquedas (por dirección de correo, nombre, identificador de la clave, …).
Ejemplos:
[Link]
[Link]
[Link]
[Link]
[Link] <- Hockeypuck OpenPGP keyserver
Web of trust
¿Cómo sé que una clave pública es auténtica?
"This whole business of protecting public keys from tampering is the single
most difficult problem in practical public key applications" - Philip
Zimmermann.
En PGP no existe el concepto de "Autoridad de Certificación".
Desde su primera versión, PGP permite distribuir claves públicas de
los usuarios en certificados digitales autofirmados.
Garantiza que los datos no han sido modificados.
NO garantiza que la clave sea de quien dice ser. Para esto, se ideó el
sistema "web of trust".
Web of trust. Legitimidad de la clave
Un usuario puede firmar la clave pública de otro usuario, con el
objetivo de atestiguar la asociación de dicha clave con dicho usuario.
Al firmar una clave pública de otro usuario, estamos indicando que
estamos seguros de que la clave es auténtica o legítima (nos la ha dado
en mano, hemos verificado su fingerprint por otra vía, …).
Esta firma puede ser exportable (se asocia con el certificado y se envía a
los servidores de claves) o no (se almacena localmente, en el equipo del
usuario).
Web of trust. Nivel de confianza en el propietario
Además, se puede indicar un nivel de confianza en el propietario de
la clave para firmar otras claves.
Niveles de confianza:
Implícita (ultimate trust, la clave del usuario).
Total (Confiable, full trust).
Parcial (Marginal).
Nula (Ninguna, never trust).
Desconocido (unknown trust).
Web of trust
Estos mecanismos (legitimidad de la clave y nivel de confianza en
el propietario) permiten establecer una red de confianza (web of
trust).
Si recibimos una clave de alguien a quién no conocemos, pero viene
firmada por alguien que tiene nuestra total confianza, o por varias
personas en las que hemos depositado una confianza parcial, PGP,
automáticamente considerará la clave como legítima.
Web of trust
= Firmante desconocido
= X está firmado por Y
= El dueño de la clave es fiable para firmar claves
= El dueño de la clave es parcialmente fiable para firmar claves
= La clave se considera legítima
Revocación de claves públicas
Interés revocación:
La clave ha sido comprometida (o hay sospechas).
Evitar el uso de la clave durante un largo periodo de tiempo (las
versiones actuales soportan "fecha de expiración").
Cómo:
El propietario emite un certificado de revocación de clave.
La clave privada correspondiente se usa para firmarlo.
¿Cuánto de seguro es PGP?
Depende de la seguridad de los algoritmos utilizados y de la
seguridad de la clave.
No se conoce ninguna debilidad en los algoritmos utilizados
actualmente.
No obstante, un atacante podría utilizar otros medios para intentar
obtener la clave privada y la contraseña de acceso (keyloggers, …)
Hay varios casos reportados, que ponen de manifiesto que ni FBI, ni
policía Británica, ni Italiana, han sido capaces de acceder a contenido
cifrado con PGP.
Seguridad en correo electrónico
S/MIME
MIME
Correo electrónico fue diseñado inicialmente para texto plano
Se especifica en la RFC 822 (1982)
2 partes: HEADER (De, Para, Asunto, Fecha,…) y BODY (texto)
MIME (Multipurpose Internet Mail Extensions)
Proporciona soporte para añadir datos en diversos formatos y mensajes
multi-parte
Datos binarios codificados como texto, para soportar RFC 822
S/MIME
S/MIME es una mejora al correo MIME
Añade mejoras en seguridad
Soportado por la mayor parte de las aplicaciones de correo electrónico
(Outlook, Thunderbird, Apple Mail, etc.), permitiendo interoperar entre
ellas
Desarrollado originalmente por RSA Data Security, actualmente
mantenido por el IETF
S/MIME
Firmado
Cifrado
S/MIME: Funcionalidades
S/MIME proporciona los siguientes servicios criptográficos para
aplicaciones de mensajería electrónica:
Autenticación (usando firma digital)
Integridad del mensaje (usando firma digital)
No repudio del emisor (usando firma digital)
Confidencialidad (usando cifrado)
S/MIME: Algoritmos
Al igual que PGP, S/MIME soporta diferentes algoritmos, para
diferentes propósitos: firma digital, hash, cifrado de clave de sesión
(asimétrico), cifrado del mensaje (simétrico), etc.
La lista de algoritmos concretos soportados depende de la versión de
S/MIME
En cada versión se añaden algoritmos nuevos y se suprimen aquellos
que ya no se consideran seguros
Esta información se puede consultar en los RFCs
S/MIME: Certificados
Para poder utilizar S/MIME se necesita un certificado X.509 v3
habilitado para correo electrónico
Modelo centrado en Autoridades de Certificación (ACs)
La máquina del cliente/usuario incluye lista de certificados de ACs
Problema: el usuario medio no sabe qué es una AC ni en cuales confía
Para enviar correo cifrado es necesario tener el certificado del
destinatario almacenado
Los certificados se envían de forma automática con los correos firmados
A pesar de que técnicamente no es necesario tener un certificado propio
para enviar correo cifrado a terceros, los clientes S/MIME sí lo exigen
S/MIME: Tipos de certificados de usuario
La mayoría de las ACs emiten 3 clases de certificados, que se
diferencian en el proceso de verificación de la identidad del usurario:
Class 1: sólo comprueba acceso a la dirección de e-mail
Class 2: comprueba contra base de datos de terceros
Class 3: exige personarse y presentar documentación (DNI, foto, …)
S/MIME: Debilidades
No es apropiado para usar con clientes de correo basados en web
Clave privada debe estar accesible al usuario, pero inaccesible desde el
servidor de correo web
Se complica la ventaja del correo web de proporcionar ubicuidad en
el acceso
Actualmente, algunas compañías ofrecen soluciones (e.g. Outlook
Web App), aunque no siempre están disponibles (¿UDC?)
Consideraciones
Recibir un correo electrónico firmado no tiene por qué ser garantía
de autenticidad
Un atacante podría obtener una dirección de correo falsa y un certificado
básico (Clase 1) y/o de prueba asociado a dicha dirección y enviar correo
firmado
Las herramientas de correo electrónico no alertan de esto al usuario
Es preciso revisar la dirección de correo y el tipo de certificado antes
de decidir
Organismos oficiales
relacionados con
ciberseguridad
SSI
Ciberseguridad y defensa
La ciberseguridad está identificada como elemento clave de la defensa nacional,
incluyéndose en la estructura orgánica de la mayoría de países
• Organismos nacionales
⚬ Instituto Nacional de Ciberseguridad de España (INCIBE)
⚬ Centro Criptológico Nacional (CCN)
⚬ Centro Nacional de Protección de Infraestructuras Críticas (CNPIC)
⚬ Mando Conjunto del Ciberespacio (MCCE)
• Organismos europeos
⚬ European Union Agency for Cybersecurity (ENISA)
⚬ European Cybercrime Centre (EC3)
• Organismos internacionales
⚬ National Security Agency (NSA)
Entidad de referencia para el desarrollo de la ciberseguridad y de la confianza digital de los
ciudadanos, la red académica y de investigación española (RedIRIS) y las empresas, especialmente
para sectores estratégicos
Organismo dependiente del dependiente del Ministerio de Asuntos Económicos y Transformación
Digital a través de la Secretaría de Estado de Digitalización e Inteligencia Artificial. Forma parte de
la Estrategia Nacional de Ciberseguridad
Sede oficial en León, oficina en Madrid
• Mejorar la ciberseguridad y la confianza digital de ciudadanos, menores y
empresas privadas de España
• Proteger y defender a los ciudadanos, menores y empresas privadas de España
• Potenciar la industria española de ciberseguridad
• Impulsar la I+D+i española en ciberseguridad
• Identificar, generar, atraer y desarrollar profesionales del sector de ciberseguridad
Es el centro de respuesta a incidentes de seguridad de referencia para los ciudadanos y entidades
de derecho privado en España
Es uno de los equipos de respuesta de referencia ante incidentes que se coordina con el resto de
los equipos nacionales e internacionales para mejorar la eficacia en la lucha contra los delitos que
involucran a las redes y sistemas de información, reduciendo sus efectos en la seguridad pública
El Centro Criptológico Nacional (CCN) es el Organismo responsable de garantizar la seguridad las
Tecnologías de la Información y la Comunicación (TIC) en las diferentes entidades del Sector Público,
así como la seguridad de los sistemas que procesan, almacenan o transmiten información clasificada.
Legalmente regulado por el Real Decreto 421/2004 el 12 de marzo
• Normativa. Elaborar y difundir normas, instrucciones, guías y recomendaciones (Guías CCN-STIC)
• Formación. Formar al personal del Sector Público especialista en el campo de la seguridad
• Vigilar. Velar por el cumplimiento de la normativa en su ámbito de competencia
• Desarrollo. Coordinar el desarrollo y uso de las tecnologías de seguridad
• Evaluación. Valorar y acreditar la capacidad de los sistemas para manejar información de forma segura
• Certificación. Constituir el Organismo de Certificación del Esquema Nacional de Evaluación y
Certificación de la Seguridad, de aplicación a productos y sistemas en su ámbito
• Ciberseguridad. Contribuir a la mejora de la ciberseguridad española, a través del CCN-CERT
• Relaciones. Establecer las necesarias relaciones con organizaciones similares de otros países
El CCN-CERT es la Capacidad de Respuesta a incidentes de Seguridad de la Información del CCN. Se
creó en el año 2006 como CERT Gubernamental Nacional español y sus funciones quedan recogidas en
la Ley 11/2002 reguladora del CNI, el RD 421/2004 de regulación del CCN y en el RD 3/2010, de 8 de
enero, regulador del Esquema Nacional de Seguridad (ENS), modificado por el RD 951/2015 de 23 de
octubre.
Es competencia del CCN-CERT la gestión de ciberincidentes que afecten a cualquier organismo o
empresa pública. En el caso de operadores críticos del sector público la gestión de ciberincidentes se
realizará por el CCN-CERT en coordinación con el CNPIC.
• Gestión de Incidentes
• Sistema de Alerta Temprana, SAT
• Formación y sensibilización
• Guías de Seguridad
• Informes de Ciberseguridad
• Soluciones
• Cumplimiento del ENS
• Auditorías Web
• Capacidad forense y de ingeniería
inversa
Creado en 2007, es el órgano responsable del impulso, coordinación y supervisión de todas las
políticas y actividades relacionadas con la protección de las infraestructuras críticas españolas y
con la ciberseguridad en el seno del Ministerio del Interior
Depende del Secretario de Estado de Seguridad, máximo responsable del Sistema Nacional de
Protección de las Infraestructuras Críticas y de las políticas de ciberseguridad del Ministerio
El Mando Conjunto del Ciberespacio (MCCE) es el órgano de la estructura operativa , subordinado
al Jefe de Estado Mayor de la Defensa (JEMAD), responsable del planeamiento y la ejecución de las
acciones relativas a la ciberdefensa en las redes y sistemas de información y telecomunicaciones del
Ministerio de Defensa u otras que pudiera tener encomendadas, así como contribuir a la respuesta
adecuada en el ciberespacio ante amenazas o agresiones que puedan afectar a la Defensa Nacional
Fue creado el 19 de febrero de 2013, en virtud de la Orden del Ministerio de Defensa 10/2013, por
la que se crea el Mando Conjunto de Ciberdefensa, y sustituído en 2020 por el Mando Conjunto del
Ciberespacio por el Real Decreto 521/2020, de 19 de mayo, por el que se establece la organización
básica de las Fuerzas Armadas.
Creada en 2004 y reforzada por el Reglamento sobre la Ciberseguridad de la UE, la Agencia de la
Unión Europea para la Ciberseguridad contribuye a la política de seguridad cibernética de la UE,
mejora la fiabilidad de los productos, servicios y procesos de Tecnologías de la Información y
Comunicación (TIC) mediante programas de certificación de la ciberseguridad, coopera con los
Estados miembros y con los organismos de la UE y ayuda a Europa a prepararse para los desafíos del
mañana en materia de ciberseguridad
Reglamento (UE) 2019/881 del Parlamento Europeo y del Consejo, de 17 de abril de 2019, relativo a la ENISA (la Agencia de la Unión Europe
a para la Ciberseguridad) y a la certificación de la ciberseguridad de las tecnologías de la información y la comunicación
Centro Europeo de Ciberdelincuencia (en inglés, European Cybercrime Centre; abreviado EC3 o EC³)
Organización de la Unión Europea ubicada en la sede de Europol en La Haya, Países Bajos. El objetivo
del centro es la coordinación de las actividades policiales transfronterizas contra la ciberdelincuencia
y actuar como centro de conocimientos tecnológicos
Publica el Internet Organised Crime Threat Assessment (IOCTA), su informe estratégico sobre los
hallazgos clave y amenazas emergentes y la evolución de la ciberdelincuencia, amenazas que afectan
a los gobiernos, las empresas y los ciudadanos de la UE
Agencia de Seguridad Nacional (en inglés: National Security Agency, también conocida como NSA)
Agencia de inteligencia adscrita al Departamento de Defensa del Gobierno de los Estados Unidos,
que se encarga de todo lo relacionado con la seguridad de la información. Con este propósito, en
ella trabajan distintos tipos de especialistas como matemáticos criptógrafos, lingüistas, operadores
de polígrafos, expertos en radiofrecuencias, programadores y hackers, operadores de puestos de
escucha para espionaje, etc.
Oficina central en Fort Meade, Maryland, aproximadamente a 33 km al noreste de Washington D.C
Guías de actuación
Legislación
CÓDIGO PENAL ESPAÑOL, ESN y NIS
Código de
Derecho de la
Ciberseguridad
ENL ACE
Estrategia
Nacional de
Ciberseguridad
2019
ENL ACE
Directiva UE
OBJETIVO
Garantizar un elevado nivel común de seguridad de las
redes y sistemas de información de la UE
2016/1148
SUJETOS Y OBLIGACIONES NIS
medidas destinadas a garantizar un elevado nivel
Operadores de servicios esenciales y proveedores de
común de seguridad de las redes y sistemas de
servicios digitales. Las obligaciones incluyen aplicar
información en la Unión
medidas de seguridad y la notificación de incidentes a
la autoridad (CSIRT)
ENLACE
CSIRT
Creación de un Computer Security Incident Response
Team (CSIRT) para la gestión de incidentes relevantes
en los operadores
Directiva UE
OBJETIVO
Amplía el ámbito de aplicación para incluir un mayor
número de sectores y tipos de entidades
2022/2555
SUJETOS Y OBLIGACIONES NIS 2
medidas destinadas a garantizar un elevado nivel
Introduce categorías más específicas de entidades,
común de seguridad de las redes y sistemas de
incluyendo una distinción entre entidades de
información en la Unión
importancia esencial y entidades importantes.
Propone requisitos más estrictos y detallados para la ENLACE
seguridad y la notificación, incluyendo tiempos de
respuesta más rápidos y la obligación de notificar a la
autoridad competente dentro de un plazo específico.
Establece un marco más estricto y armonizado para la
supervisión, el cumplimiento y las sanciones,
incluyendo la posibilidad de sanciones financieras
significativas.
Directiva UE
2022/2555
NIS 2
ENLACE
Bibliografía
CÓDIGO DE DERECHO DE L A CIBERSEGURIDAD
[Link]
ÁMBITOS DE L A SEGURIDAD NACIONAL: CIBERSEGURIDAD
[Link]
CYBERSECURITY: HOW THE EU TACKLES CYBER THREATS
[Link]
TIMELINE - EU CYBERSECURITY
[Link]
Organismos oficiales
relacionados con
ciberseguridad
SSI
Ciberguerra,
ciberterrorismo y otras
amenazas actuales
SSI
Ciberguerra
DEFINICIÓN Y CARACTERÍSTICAS
Definición
FORTINET
“La ciberguerra es una serie de ataques contra un estado-nación, que causan un
daño significante. [...] La ciberguerra se define comunmente como un conjunto de
acciones por una nación u organización para atacar las redes de ordenadores de
países o instituciones con la intención de disruptir, dañar, o destruír infraestructura
usando virus informáticos o ataques de denegación de servicio.”
Definición
TIPOS DE ATAQUES
• Ataques a infraestructuras críticas
• Ataques DDoS para sabotaje financiero, de servicios, etc.
• Ransomware y wipers
• Phishing
• Propaganda
• Espionaje
Niveles de capacidad
SIMPLE - NO ESTRUCTURADO
Capacidad de realizar ataques básicos contra sistemas individuales utilizando herramientas creadas por otra persona.
La organización posee poca capacidad de aprendizaje, C&C o análisis de objetivos.
AVANZADO - ESTRUCTURADO
Capacidad de realizar ataques más sofisticados contra múltiples sistemas o redes y, posiblemente, modificar o crear
herramientas básicas de piratería. La organización posee una capacidad elemental de aprendizaje, C&C y análisis de
objetivos.
COMPLEJO - COORDINADO
Capacidad de un ataque coordinado capaz de causar una interrupción masiva contra defensas heterogéneas
integradas (incluida la criptografía). Capacidad para crear sofisticadas herramientas de piratería. Capacidad de
aprendizaje de organización, C&C y análisis de objetivos altamente capaz.
Ciberguerra
Ciberterrorismo
Cibercrimen
Hacktivismo
Seguridad
industrial
INFRAESTRUCTURAS CRÍTICAS
Ciberseguridad
industrial
DEFINICIÓN
Disciplina de la ciberseguridad que incluye al conjunto de
acciones para la proteccion y ataque de la seguridad de los
usuarios y entidades pertenecientes a un control industrial.
La mayoría de la bibliografía sobre el tema se centra en la
seguridad de los ICS (Industrial Control Systems) o los
sistemas SCADA (Supervisory Control and Data Acquisition)
Infraestructura crítica
DEFINICIÓN
Infraestructuras de funcionamiento indispensable y que no permite soluciones alternativas, polo que su perturbación o
destrucción tendría un grave impacto sobre los servicios esenciales
Servicio esencial
DEFINICIÓN
Aquel que es necesario para el mantenimiento de las funciones sociales básicas, la salud, la seguridad, el bieneestar
social y económico de los ciudadanos, o el eficaz funcionamiento de las instituciones de un estado y de las
administraciones públicas
SECTORES:
• Administración • Salud • Espacio
• Agua • Sistema financiero y tributario • Industria química
• Alimentación • TIC • Industria nuclear
• Energía • Transporte • Instalaciones de investigación
Infraestructuras estratégicas
DEFINICIÓN
Instalaciones, redes, sistemas y
equipos físicos y TIC sobre los que
operan los servicioes esenciales
CATALOGACIÓN
Creación del Catálogo Nacional de Infraestructuras Estratégicas
(elaborado por el Min. Interior):
• Ubicación
• Titularidad
• Servicio que presta
• Nivel de seguridad ... Ley PIC
8/2011
Clasificada como SECRETA, dada la alta sensibilidad para la seguridad
nacional
ENL ACE
MEDIDAS DE PREVENCIÓN Y PROTECCIÓN
Establece un marco normativo para el Sistema de Planificación PIC, la
creación de un Sistema Nacional de Protección de Infraestrucutras
Críticas y un CERT para la gestión de incidentes de ciberseguridad
Catálogo PIC
Comprende más de 3.500 instalaciones e infraestructuras sensibles, dentro de las siguientes áreas estratégicas:
• Energía • Salud
• Industria Nuclear • Sistema Financiero
• Tecnologías de la Información • Industria Química
• Transportes • Espacio
• Suministro de Agua • Recursos
• Suministro de Alimentos • Administración
FILTRACIÓN EN WIKILEAKS
Filtración en España:
Estrecho de Gibraltar
Instituto Grifols (fábrica fármaco)
Gaseodcto que une Algeria con Europa
Sistemas de
(ciber)seguridad
OPERACIÓN DE CIBERSEGURIDAD
OT vs IT
Operational Technology (OT) Information Technology (IT)
Tecnología con el objetivo de controlar sistemas Tecnología con el objetivo de controlar sistemas
físicos y mantener continuidad operacional. de red, sistemas de información y aplicaciones.
Prioridad: Disponibilidad y tiempo real; Prioridad: Confidencialidad e integridad;
latencia baja. escalabilidad.
Dispositivos típicos: PLC, SCADA, RTU, sensores, Dispositivos típicos: servidores, PCs, routers,
actuadores; con protocolos propietarios. bases de datos, nube; con más estándares
abiertos.
Ciclo de vida: largos (años–décadas), cambios
planificados. Ciclo de vida: cortos, actualizaciones
frecuentes.
Riesgo principal: impacto físico y seguridad
de personas/infraestructura. Riesgo principal: pérdida/filtración de datos y
daño reputacional.
CONCEPTO Y DEFINICIÓN
Un ICS (Industrial Control System) es un sistema formado por
equipos interconecatados que controlan, monitorizan y
administran grandes sistemas de producción industrial:
• Suelen controlar infraestructuras críticas, como plantas de
producción eléctrica, sistemas de transporte, encoros, plantas
químicas ...
Sistemas de Control • PLC (Programmable Logic Controller)
• DCS (Distributed Control System)
Industrial (ICS) • SCADA (Supervisory Control and Data Acquisition)
Src: Palo Alto
IT
OT
[1] Amin Hassanzadeh and Robin Burkett. SAMIIT: Spiral Attack Model in IIoT Mapping Security Alerts to Attack Life Cycle Phases. 2018. DOI: 10.14236/ewic/ICS2018.2
CONCEPTO Y DEFINICIÓN
Un SOC (Security Operation Center) es un quipo y la plataforma
centralizados que monitorizan, detectan, investigan y
responden incidentes de seguridad 24/7.
Centro de
Operaciones de
Seguridad (SOC)
CONCEPTO Y DEFINICIÓN
Un SOC (Security Operation Center) es un quipo y la plataforma
centralizados que monitorizan, detectan, investigan y
responden incidentes de seguridad 24/7.
Componentes
SIEM (Security Information and Event Management): recoge y
normaliza logs y eventos de múltiples fuentes, aplica reglas y
Centro de correlaciones para generar alertas accionables y almacenar
evidencias para investigación.
Operaciones de
Threat Intelligence: información compartida que enriquece las
alertas con contexto (IPs, dominios, campañas).
Seguridad (SOC)
SOAR / Playbooks: automatización de respuesta y
orquestación.
Personal (analistas y forenses): triage, análisis profundo y
contención.
Indicator of Compromise (IoC)
Artefactos observables que indican un posible compromiso de la
seguridad: hashes de archivos, direcciones IP, dominios, URLs,
nombres de usuario anómalos, entradas en el registro...
CONCEPTO Y DEFINICIÓN
Un IDS (Intrusion Detection System) observa el tráfico en busca
de patrones de ataque y alerta cuando detecta una posible
intrusión.
Monitorización continua de red o host.
Detección por firmas y anomalías.
Generación de alertas y registros detallados.
Puede haber varios tipos:
Intrusion
Network IDS (NIDS)
Host IDS (HIDS)
Detection/Prevention
Enfoque reactivo, con el objetivo de generar alertas.
System (IDS/IPS) ¿Qué es un IPS?
Un IPS incorpora todas estas capacidades pero actúa en línea,
bloqueando o filtrando el tráfico antes de que alcance su
destino.
Su enfoque es preventivo y requiere una configuración cuidadosa
para equilibrar seguridad y disponibilidad.
CONCEPTO Y DEFINICIÓN
El EDR (Endpoint Detection and Response) supervisa de forma
continua la actividad en los dispositivos finales (endpoints)
para identificar comportamientos anómalos y responder
rápidamente ante amenazas que evadan controles tradicionales.
Se instala en dispositivos finales, como ordenadores personales.
Envía telemetría detallada de procesos, red y ficheros.
Combina el antivirus tradicional con mecanismos de detección
Endpoint Detection
basada en comportamiento, ML y reglas.
Respuesta remota: aislamiento (Sandboxing), kill de procesos,
Response (EDR)
bloqueo de binarios.
Análisis forense y timeline de la actividad maliciosa.
Integración con SIEM/SOAR para investigación y automatización
desde el SOC, así como sistemas IDS/IPS.
ATPs y TTPs
ORGANIZACIONES RELEVANTES Y SUS
TÉCNICAS, TÁCTICAS Y PROCEDIMIENTOS
ADVANCED PERSISTENT THREAT (APT)
Una amenaza persistente avanzada se conoce
como aquel actor amenazante para un sistema
informático, con amplios recursos y experiencia. Su
objetivo es extender su presencia en los sistemas
APTs
informáticos de la víctima durante un periodo de
tiempo extendido, adaptándose a los esfuerzos de
la víctima por defenderse.
ACTOR SEGURIDAD INFORMÁTICA:
MITRE
GRUPOS ORGANIZADOS
Un APT es un actor que supone una amenaza
importante y se identifica con un nobre dentro de
la comunidad de seguridad informática. Los
nombres de las APTs se utilizan para hacer un
seguimiento de las actividades de ese actor.
TACTICS, TECHNIQUES, AND
PROCEDURES (TTP)
Las TTP definen el comportamiento de un actor.
• Táctica: el más alto nivel de descripción del
comportamiento
• Técnicas: descripción más detallada en el
contexto de una táctica
• Procedimiento: el nivel más detallado en el
TTPs
contexto de una técnica
NIST
T TP PARA IDENTIFICAR A UNA APT
Las TTPs pueden describir la tendencia de un actor
a usar una variante específica de malware, un
orden específico de operaciones, una herramienta
de ataque o un método de entrada, o un exploit
específico.
CozyBear
APT29, THE DUKES, OFFICE MONKEYS, COZYCAR,
COZYDUKE - GRUPO DE HACKERS RUSOS
ACTIVIDADES
• Ciberataques al Comité Nacional Demócrata (EEUU) en las elecciones de 2016.
• Ataques de phishing contra diferentes ONG estadounidenses.
• Ataques de phishing personalizado contra políticos noruegos y holandeses.
• Operación Ghost 2019
⚬ Infiltración en embajadas de países europeos y a Ministerios de Asuntos Exteriores
⚬ Uso de malware (PolyglotDuke)
⚬ Esteganografía en imágenes y C&C
• Ataque a SolarWinds en 2020 (lo veremos más tarde)
• Ataque de ransomware al Comité Nacional Republicano (EEUU) en 2021
• Ataques a EEUU y países que apoyan a Ucrania en 2023
src: CCN-CERT IA-04/24: Ciberamenazas y Tendencias
src: US-CERT (report APT28 and APT29)
src: [Link]
Noname057(16)
GRUPO PRO-RUSO DECL ARADO MARZO 2022
ACTIVIDADES
• Ha desarrollado una herramienta llamada DDOSIA. Ha realizado una cantidad
importante de ataques DDoS. Mediante un proyecto de colaboración con voluntarios
pagados, proporciona su software para lanzar ataques dirigidos.
• Desde su aparación, ha atacado a múltiples bancos de Polonia y Ucrania, e incluso al
Banco Nacional de Polonia. Todos estes ataques han sido de denegación de servicio.
• Con la invasión Rusa de Ucrania, ha lanzado múltiples ataques de denegación de servicio
a infraestructuras de países de la OTAN.
• En algunos países, ha sido responsable de la caída de diversas webs de candidatos a las
elecciones.
• Diversos ataques a raíz de la invasión rusa de Ucrania.
Red Apollo
APT10, STONE PANDA, MENUPASS, POTASSIUM - GRUPO
DE CIBERESPÍAS CHINOS
ACTIVIDADES
• Registros de datos personales de 130.000 de la plantilla de la US Navy, en 2016.
• Ataque y robo de información dirigidos a proveedores de Reino Unido, Estados Unidos,
Japón, India, Tailandia, Corea del Sur y varios países europeos, de 2014 a 2017.
⚬ Usan más de 70 variantes de backdoors, malware y troyanos.
⚬ Montaban servicios y programaban tareas en Microsoft Windws para la persistencia.
⚬ Usaban los proveedores (ISPs) para espiar los secretos industriales, farmacéuticos, de
telecomunicaciones e incluso de agencias del gobierno.
Naikon
GRUPO DE CIBERESPIONA JE CHINO, REL ACIONADO CON
APT30
ACTIVIDADES
• Dirigida a organizaciones gubernamentales, militares y civiles
⚬ Durante 5 años: de 2015 a 2020
⚬ Localizadas en el Mar del Sur (China), un territorio con disputas constantes entre
diversas naciones
⚬ Usan una backdoor llamada Aria-body
⚬ Para evitar la detección, usaban los servidores comprometidos de los ministerios
como C&C
⚬ Entran con spear-phishing, con un ejecutable que carga un DLL malicioso o un
archivo RTF.
Threat Group-3390
GRUPO DE CIBERESPIONA JE CHINO, ESPECIALIZADOS EN
VULNERACIONES WEB ESTRATÉGICAS
ACTIVIDADES
• Espionaje industrial, espionaje de manufacturación de proyectos de defensa y
organizaciones involucradas en relaciones internacionales
• Operan una campaña de SWC (Strategic Web Compromises) que utilizan una whitelist
para descargar contenido malicioso de espionaje a objetivos concretos de sitios web
• Una vez comprometido, se envía una backdoor HttpBrowser a las víctimas
• Atacan a servidores Microsoft Exchange (correo electrónico) con el malware llamado
OwaAuth insertado desde la backdoor
Lazarus Group
GRUPO NORCOREANO, CAMPAÑAS CON MOTIVACIÓN
FINANCIERA
ACTIVIDADES
• La motivación detrás de la mayoría de sus campañas suele ser financiera y su objetivo es
proporcionar una fuente de ingresos adicional al gobierno norcoreano.
• Ataques DDoS contra Corea del Sur en 2013.
• Se sospecha que están detrás del ataque de Ransomware WannaCry.
• Diversos ataques orientados al robo de criptomonedas.
Ataques
conocidos
CASOS REALES DE CIBERGUERRA Y
CIBERTERRORISMO
Infraestructuras críticas y
ciberguerra
Titan Rain
2003
EL ATAQUE IMPLICACIONES
Nombrado por el Gobierno Federal de los Con víctimas como el FBI o la NASA, Titan
Estados Unidos, Titan Rain fue una serie de Rain se considera uno de los ciberataques
sofisticados ataques informáticos más sofisticados y de mayor impacto de la
realizados desde Guangdong, China, historia, dejando en evidencia la seguridad
contra diversas organizaciones de de un país como Estados Unidos.
inteligencia relacionadas con la seguridad Aunque no se llego a robar ningún tipo de
nacional de los Estados Unidos y Reino información clasificada, los atacantes si
Unido. que fueron capaces de robar información
La autoría de estos ataques es atribuida al no clasificada que podría revelar las
Ejército Popular de Liberación Chino. fortalezas y debilidades de Estados Unidos.
[Link]
2008
EL ATAQUE IMPLICACIONES
El gusano [Link] comienza a Se considera el mayor ciberataque
infectar maquinaria militar de los de la historia contra ordenadores
EEUU. Este escanea el ordenador en militares de los EEUU. Filtración de
búsqueda de información y abre una información.
backdoor para enviarla al servidor
remoto
[Link]
Stuxnet
2010
EL ATAQUE
IMPLICACIONES
Desarrollado probablemente a partir de
2005, Stuxnet es un gusano extremadamente Más de 200k de ordenadores infectados.
sofisticado que explota vulnerabilidades En las centrales, se usó para recoger
zero-day de Windows para infectar información y causar daños a
ordenadores y propagarse. Ataca a PLCs de centrifugadores usados para enriquecer
Siemens con un objectivo concreto: sabotear uranio, haciéndolos girar a altas
la planta nuclear de Natanz de Irán, además velocidades. Se cree que destruyó casi
de otras organizaciones relacionadas 1/5 de los centrifugadores de Irán.
src: [Link]
Stuxnet
OPERATIVA
• Sistema Operativo Windows • Software Siemens Stem7 (PLCs)
⚬ 4 vulnerabilidades zero-day ⚬ SIMATIC WinCC/PCS 7 SCADA control
⚬ Vulnerabilidad CPLINK ⚬ Vulnerabilidad CVE-2010-2568
⚬ Infectado con USB con enlace ■ Contraseña en claro en el código
⚬ Drivers firmados con certificados ■ Permite ganar privilegios al acceder a la base de datos
originales robados (Realtek en • Infección de PLCs
Taiwan) ⚬ Sólo ataca a 2 fabricantes de PLCs vulnerables
• 2 webs en Dinamarca y Malasia como ⚬ Inserta el malware en memoria en el PLC que controla el envío de
Command and Control mensajes con Profibus
(actualizaciones y espionaje ⚬ Modifica la frecuencia de giro de los motores
industrial) • Instala rootkit para ocultarse y evita que se muestren los cambios de
• RPC y otros para la infección frecuencia en el control
Stuxnet
Stuxnet
2010
AMENA ZAS SIMIL ARES
DUQU
WIPER
FL AME
Red eléctrica Ucrania
2015
EL ATAQUE IMPLICACIONES
El 23 de diciembre de 2015, unos delincuentes El ataque produjo cortes de energía para
informáticos pusieron en peligro de forma aproximadamente 230.000 consumidores en
remota los sistemas de información de tres Ucrania, siendo el primer ciberataque exitoso de
empresas de distribución de energía en la historia contra una red eléctrica reconocido
Ucrania e interrumpieron temporalmente el públicamente.
suministro de electricidad a los consumidores.
El ciberataque fue altamente complejo e hizo
uso de técnicas como Spear Phishing para el
compromiso de las redes corporativas;
malware para la destrucción de ficheros y
ataque a los sistemas SCADA.
SolarWinds
DICIEMBRE 2020
CARACTERÍSTICAS
• Intrusión altamente sofisticada en la cadena de suministros de SolarWinds, introduciendo una puerta
trasera (Sunburst) en su producto e instalando un troyano que permitía el acceso a los sistemas que
utilizaban el software de la compañía
• Los actores responsables de esta campaña obtuvieron acceso a numerosas organizaciones públicas y
privadas de todo el mundo, entre las que se encuentran agencias gubernamentales y compañías como
Microsoft, mediante el despliegue de actualizaciones del software de monitorización y gestión Orion de
SolarWinds
• Ataque atribuido por los gobiernos de US y UK al grupo APT 29 (CozyBear)
• La compañía FireEye fue la primera en descubrir este ataque contra la cadena de suministros de
SolarWinds mientras analizaba su propia red, descubriendo y publicando el hallazgo de la puerta trasera
Sunburst el 13 de diciembre de 2020.
Ransomware
Tipo de malware que impide a los usuarios acceder a su sistema o a sus archivos
personales y que exige el pago de un rescate, normalmente a través de
criptomonedas, para poder acceder de nuevo a ellos.
Tipo de ransomware:
• Scareware
• Bloqueadores de pantalla
• De cifrado
Los ataques de ransomware son una de las mayores amenazas actualmente, según
indica el informe IOCTA 2021. Los ataques dirigidos son la última tendencia.
La estrategia actual de los actores es el conocido como Ransomware as a Service
(RaaS), en el cual grandes grupos “alquilan” su Ransomware para realizar ataques.
Ransomware
WannaCry
MAYO 2017
EL ATAQUE
IMPLICACIONES
Ataque de ransomware que cifra los ficheros del equipo infectado y
WannaCry afectó a más de 230.000 equipos en
pide un rescate para recurperarlos. Este malware utiliza una
150 países, provocando pérdidas estimadas por
vulnerabilidad en el protocolo SMB de los sistemas Microsoft
valor de 4.000 millones de dólares.
Windows, denominada EternalBlue, para progaparse. Además, utiliza
una variante del payload DoublePulsar para infectar a sus víctimas.
Una de las primeras empresas infectadas fue
Telefónica, aunque también afectó a instituciones
Este ataque podría haber sido mitigado fácilmente y haber tenido
de salud como muchas de las fundaciones
una repercusión mucho menor si los sistemas infectados hubieran
hospitalarias del Servicio Nacional de Salud del
sido actualizados correctamente con el parche publicado por
Reino Unido.
Microsoft meses antes.
WannaCry
Ryuk
2018
CARACTERÍSTICAS
• Ransomware caracterizado por ser utilizado en
ciberataques a grandes entidades públicas
• De origen ruso y derivado de la familia de
ransomware Hermes, apareció por primera vez en
2018
• Capacidad de propagación a modo de gusano.
Además de aprovecharse del protocolo Wake-on-Lan
Enlace a noticia
para arrancar equipos apagados hace uso de SMB y
RPC para propagar y ejecutar el ransomware en otras
máquinas a las que tiene acceso.
Lockbit
2020 - 2024
CARACTERÍSTICAS
• El grupo Lockbit produce un malware con el mismo
nombre, que actúa como un Ransomware as a Service
(RaaS)
• En 2022, lanzan Lockbit 3.0, con mayores capacidades
para la evasión de su detección
• Alto nivel de “profesionalización” del ciberdelito con
el ransomware: lanzaron campañas de Bug Bounty
Enlace a noticia
para su ransomware
Más información sobre la operación internacional d
e desmantelamiento
Bibliografía
CCN-CERT IA-03/22 INFORME ANUAL 2021. HACKTIVISMO Y CIBERYIHADISMO
[Link]
[Link]
CCN-CERT IA-04/24 Ciberamenazas y Tendencias Edición 2024
[Link]
-[Link]
INTERNET ORGANISED CRIME THREAT ASSESSMENT (IOCTA) 2021
[Link]
MICHAEL KENNEY. CYBER-TERRORISM IN A POST-STUXNET WORLD
[Link]
Ciberguerra,
ciberterrorismo y otras
amenazas actuales
SSI
Informática forense
Jose Vázquez Naya
Informática Forense
En inglés “Digital Forensics”, “Computer Forensics“, “Forensic
computing” (menos utilizado actualmente).
Muy relacionado con respuesta a incidentes o "Incident Response".
De ahí que sea frecuente el término DFIR.
Definiciones:
“La informática forense es el proceso de identificar, preservar, analizar
y presentar las evidencias de una forma legal y aceptable” (McKemmish,
1999).
En el caso del análisis forense informático, se podría añadir: “aplicando
técnicas científicas y analíticas especializadas a infraestructura
tecnológica” (Vila, 2018).
Principio de Locard
Principio de intercambio de Locard, también llamado Principio de
transferencia de Locard:
«Siempre que dos objetos entran en contacto transfieren parte del
material que incorporan al otro objeto»
Edmond Locard (1877-1966),
Criminalista francés, es considerado
uno de los pioneros de la criminalística
Funciones o ámbito de actuación
Recopilación y preservación de pruebas digitales.
Análisis de pruebas digitales: videos, imágenes, audio, etc.
Recuperación de datos.
Investigación de incidentes de seguridad:
Casos de estafa o acoso por medios electrónicos (WhatsApp, e-mail,
etc.).
Detección y asesoría en competencia desleal y fuga de información.
Análisis de redes y comunicaciones.
Creación de informes y testimonio en tribunales.
Asesoría y capacitación.
Investigación y desarrollo.
…
GUÍAS PARA EL
PROCESO DE INVESTIGACIÓN FORENSE
Guías para el proceso de investigación forense
Existen varios estándares nacionales e internacionales que pueden
ser utilizados como guía para realizar un análisis pericial completo,
empezando por la adquisición de evidencias y terminando en el
informe pericial correspondiente.
Normas AENOR aplicables al análisis forense:
Aplicables a cualquier organización, con independencia de actividad o
tamaño.
Familia UNE 71505:2013.
UNE 71506:2013.
UNE 197010:2015.
Normas ISO/IEC 27037:2012 y 27042:2015.
RFCs.
Guías para el proceso de investigación forense
Familia UNE 71505:2013
UNE 71505-1:2013
Tecnologías de la Información (TI). Sistema de Gestión de Evidencias
Electrónicas (SGEE). Parte 1: Vocabulario y principios generales.
UNE 71505-2:2013
Tecnologías de la Información (TI). Sistema de Gestión de Evidencias
Electrónicas (SGEE). Parte 2: Buenas prácticas en la gestión de las
evidencias electrónicas.
UNE 71505-3:2013
Tecnologías de la Información (TI). Sistema de Gestión de Evidencias
Electrónicas (SGEE). Parte 3: Formatos y mecanismos técnicos.
Formato estándar para intercambio de evidencias electrónicas,
algoritmos criptográficos válidos, mecanismos para establecer la
hora, ...
Guías para el proceso de investigación forense
UNE 71506:2013
Tecnologías de la Información (TI). Metodología para el análisis
forense de las evidencias electrónicas.
Fases: Preservación, Adquisición, Documentación, Análisis y Presentación.
UNE 197010:2015
Criterios generales para la elaboración de informes y dictámenes
periciales sobre Tecnologías de la Información y las Comunicaciones
(TIC).
Guías para el proceso de investigación forense
ISO/IEC 27037:2012. Information technology - Security techniques -
Guidelines for identification, collection, acquisition, and preservation
of digital evidence.
Guías para la identificación, recolección, adquisición y preservación de la
evidencia digital.
ISO/IEC 27042:2015. Information technology - Security techniques -
Guidelines for the analysis and interpretation of digital evidence.
Guías para el análisis y la interpretación de la evidencia digital.
Guías para el proceso de investigación forense
RFC 3227. Guidelines for Evidence Collection and Archiving. 2002.
Recolección y manejo de evidencias. Define "Order of Volatility".
[Link]
RFC 4810. Long-Term Archive Service Requirements. 2007.
Preservación de la información a largo plazo.
[Link]
RFC 4998. Evidence Record Syntax (ERS). 2007.
Método para asegurar la integridad y autenticidad de los datos digitales a lo largo del
tiempo.
[Link]
RFC 6283. Extensible Markup Language Evidence Record Syntax (XMLERS). 2011.
Adaptación de la Evidence Record Syntax (ERS) descrita en la RFC 4998, pero utilizando el
lenguaje XML para la estructura de datos.
[Link]
PROCESO DE INVESTIGACIÓN FORENSE
Proceso de investigación forense
1. Preparación del caso.
2. Identificación.
3. Adquisición.
4. Preservación.
5. Análisis.
6. Presentación.
1) Preparación del caso
En el caso de un peritaje forense informático, es importante hacer
una preparación previa para poder adquirir las evidencias
correctamente y que todo el proceso sea correcto a nivel legal.
Contar con los permisos adecuados.
Autorización por escrito.
Contrato.
…
Asegurar la escena:
Proteger la escena para evitar la modificación o destrucción de las
evidencias digitales existentes.
2) Identificación
Consiste en detectar y localizar posibles fuentes de evidencia digital.
Es muy importante conocer:
Los antecedentes.
La situación actual.
Se debe determinar la fuente de los datos, su ubicación y su relación
con el incidente investigado.
Incluye la evaluación preliminar de los dispositivos y medios de
almacenamiento para evitar la alteración de la evidencia.
También se debe revisar el entorno legal que protege el bien.
Inicio de la cadena de custodia.
Revisión del entorno legal que protege el bien
Consiste en analizar las normativas y regulaciones aplicables a la
evidencia digital y al bien protegido, asegurando que la recolección,
adquisición y análisis de los datos se realicen de manera legal y sean
admisibles en un proceso judicial.
Ej.: si en análisis del PC de un usuario que filtraba información de la
empresa encontramos un backup de su móvil personal, legalmente no
podemos acceder a él.
Si el backup fuese del móvil de empresa, sería preciso valorar el
acceso.
Deben existir evidencias claras de fuga.
Se deben revisar las políticas de la empresa con respecto a sus
empleados y las notificaciones a estos.
Cadena de custodia
Cadena de custodia: procedimiento mediante el cual se garantiza la
autenticidad de la prueba digital desde su obtención hasta que se
aporta como hecho probatorio a un procedimiento judicial.
Es fundamental mantener la cadena de custodia para garantizar que
la evidencia digital sea admisible en un tribunal.
Esta es una de las principales funciones del perito informático forense.
Cadena de custodia
Para garantizar la cadena de custodia es necesario documentar:
Dónde, cuándo y quién descubrió y recolectó la evidencia.
Dónde, cuándo y quién manejó la evidencia.
Quién ha custodiado la evidencia, durante cuánto tiempo y cómo se ha
almacenado.
Si existe un cambio de custodia, indicar cuándo y cómo se ha realizado
el intercambio, incluyendo número de caso y demás información
relevante.
3) Adquisición
Consiste en recopilar pruebas digitales de dispositivos electrónicos,
como computadoras, teléfonos móviles, servidores y sistemas de
almacenamiento, utilizando técnicas y herramientas especializadas
para garantizar la integridad y autenticidad de los datos.
Puede incluir copias forenses (bit a bit), extracción lógica de datos o
incluso la captura en vivo de memoria volátil.
Debe documentarse completamente para garantizar la cadena de
custodia.
3) Adquisición
Orden de volatilidad
Orden en el que se debe recolectar la información debido al tiempo que
permanece accesible (se define en RFC 3227).
Se debe recolectar primero aquella información cuya volatilidad sea
mayor:
1. Registros y caché.
2. Tabla de enrutamiento, caché ARP, tabla de procesos,
estadísticas del kernel, memoria.
Volatilidad
3. Sistemas de archivos temporales.
4. Disco.
5. Datos de registro y monitoreo remoto que sean
relevantes para el sistema en cuestión.
6. Configuración física, topología de red.
7. Medios de almacenamiento de respaldo.
Modos de adquisición
EQUIPO MODO LIVE:
Consiste en la obtención de datos volátiles del equipo a analizar.
Procedimiento “complejo”. Puede invalidar pruebas, dependiendo de los
comandos a utilizar.
Inevitablemente se modifica la evidencia.
Debe de ser un procedimiento muy documentado.
EQUIPO MODO DEAD:
Modo recomendado.
No apagar de forma ordenada -> tirar del cable.
Clonado: copia exacta bit a bit.
Clonado
Consiste en la copia exacta ‘bit a bit’ de un disco, incluyendo errores
o sectores defectuosos.
Objetivo: disponer de una copia sobre la que realizar el análisis, sin
alterar la prueba:
Recomendable hacer el proceso ante fedatario público.
La prueba original queda en depósito de la empresa o fedatario público.
Clonado
Existen múltiples formas y herramientas:
SW: múltiples herramientas (dd, dcfldd, dc3dd, FTK Imager, …).
Es importante asegurarse de que no se monta el dispositivo a
clonar.
El montaje modifica la evidencia.
Puede hacerse desactivando el montado automático (depende del SO) o
bien hacer uso de bloqueadores de escritura.
HW: clonadoras.
Amplia variedad en funcionalidades y precio.
Conseguir la misma funcionalidad que usando un equipo y
herramientas SW requiere clonadoras de alta gama.
Clonado > Herramientas: dd
Para copiar de un disco A a otro disco B.
Determinar tipo de disco:
IDE: hda, hdb, …., hdX
SATA / USB: sda, sdb, …, sdX
Realizar clonado:
dd if=/dev/sda of=/dev/sdb bs=1M
Integridad
Es preciso asegurar de algún modo que los datos clonados son copia
exacta de los originales:
Funciones hash (del original y de la copia).
MD5 ya no se considera seguro debido a que es vulnerable a
ataques de colisión.
En algunos países no se admite como prueba de integridad.
Lo mismo sucede con SHA-1, ya que actualmente es vulnerable a
ataques de colisión.
Se recomienda SHA-2 o SHA-3.
Integridad
Si por algún motivo no disponemos de SHA-2, una alternativa es
combinar dos funciones (e.g. MD5 y SHA-1):
Algunos dispositivos HW sólo tienen implementadas MD5 y SHA-1.
Debemos evitarlo, siempre que sea posible.
Integridad
Podemos hacerlo con múltiples herramientas:
A partir de la imagen clonada:
P. ej.: en Linux, con sha256sum, ...
Problema: tiempo.
"Al vuelo" (mientras se copian los datos):
Es lo que hace la herramienta dc3dd:
dc3dd if=/dev/sdb of=/[Link] hash=md5,sha256
Es posible porque las funciones hash se calculan de forma
incremental.
FTK Imager
Herramienta gratuita, ofrecida por Exterro (antes AccessData).
Disponible gratuitamente para Win y Linux.
[Link]
Imagen extraída de: [Link]
Clonadoras
StarTech SATDOCK2REU3:
Clonadoras
Tableau Forensic Duplicator TD2u:
Clonadoras
Atola Taskforce:
[Link]
Clonadoras
Varían mucho en características:
Velocidad de copia.
Comprobación de integridad.
Precio!
...
4) Preservación
Adecuado tratamiento y documentación de las evidencias,
garantizando la cadena de custodia:
Documentar detalladamente todos los procedimientos realizados.
Almacenamiento seguro.
Control de acceso.
5) Análisis
Consiste en examinar los datos recopilados para identificar patrones,
rastrear actividades delictivas y descubrir información relevante para
el caso:
Recuperación de archivos eliminados.
Recuperación e identificación de correos electrónicos.
Búsqueda de acciones específicas de los usuarios de la máquina (como
son el uso de dispositivos de USB de determinada marca o modelo).
Búsqueda de archivos específicos o de contenido específico.
Recuperación de los últimos sitios visitados, recuperación de la caché del
navegador, etc.
Existen herramientas específicas para este propósito.
El análisis debe hacerse de manera rigurosa, aplicando técnicas
científicas y analíticas.
Autopsy
Solución completa para el análisis de evidencias.
Desarrollado originalmente por Brian Carrier.
Basis Technology.
Open source.
Funcionalidad ampliable mediante plug-ins.
OSDFCon
Permite trabajo en equipo.
Versión actual multiplataforma (recomendado: Windows).
Volatility
Análisis forense de memoria (memory forensics).
Open source.
Funcionalidad ampliable mediante plug-ins.
Volatility Plugin Contest .
Escrita en Python.
Distribuciones
SIFT (SANS Investigative Forensic Toolkit):
Distribución basada en Ubuntu con multitud de herramientas orientadas
al análisis forense.
Proporcionada por el SANS.
Se puede descargar MV lista para usar:
SIFT Workstation VM Appliance:
[Link]
APUNTE: SANS Institute
Es una compañía privada estadounidense.
Fundada en 1989 por Alan Paller.
Especializada en formación en ciberseguridad
y certificaciones.
Seguridad de red, test de intrusión, respuesta
a incidentes, informática forense digital y
auditoría. Alan Paller
(Extraído de
[Link]
Reconocido prestigio. founder/)
Una de las organizaciones más grandes del
mundo en investigación y formación en
ciberseguridad.
SANS es un acrónimo de SysAdmin, Audit,
Network and Security.
Distribuciones
CAINE (Computer Aided INvestigative Environment):
Nanni Bassetti.
Ofrece entorno seguro: bloqueo automático de escritura para
dispositivos conectados.
[Link]
Distribuciones
Paladin Forensic Suite:
[Link]
Parrot Security OS
Distribución GNU/Linux basada en Debian con enfoque en seguridad
informática:
[Link]
Cellebrite
Israel.
Especializados en dispositivos móviles.
[Link]
Cellebrite UFED Touch 2
MOBILedit
MOBILedit Forensic:
[Link]
EnCase Forensic
[Link]
6) Presentación de los resultados
Recopilar y documentar toda la información que se obtuvo a partir
del análisis.
Generar, si es el caso, un informe pericial.
Los expertos en informática forense pueden ser llamados a testificar
en juicios para presentar y explicar sus hallazgos.
Deben ser capaces de comunicar de manera efectiva y clara información
técnica y compleja a personas no técnicas, como jueces y jurados.
LA FIGURA DEL PERITO
El perito
El Real Decreto del 17 de agosto de 1901 de Romanones se toma
como punto de referencia de la creación del título de Perito, es decir,
de una nueva profesión.
Actualmente la LEC en su art. 340.1 regula y exige que los peritos
dispongan de titulación oficial para la materia en la que fueran
nombrados, salvo que se trate de materias que no estén
comprendidas en títulos profesionales oficiales.
Según la RAE:
El perito
Perito informático: es un profesional experto en tecnologías de la
información y sistemas informáticos que posee conocimientos
especializados y experiencia en el ámbito de la informática.
Perito forense: es un experto en ciencias forenses que puede
especializarse en diversas disciplinas, como medicina forense,
psicología forense, química forense, biología forense, odontología
forense, entre otras.
Perito informático forense: es un experto en informática forense
especializado en la identificación, preservación, análisis y
presentación de pruebas digitales en investigaciones y casos legales.
El perito judicial
¿Cómo sabe un juez, que no tiene una formación especializada en
asuntos técnicos, cómo se ha extraído una prueba para valorar si
debe admitirse o no?
¿Cómo adquieren pruebas los abogados para exponerlas ante un
tribunal?
El perito judicial es un profesional dotado de conocimientos
especializados y reconocidos, a través de sus estudios superiores,
que suministra información u opinión fundada a los tribunales de
justicia sobre los puntos litigiosos que son materia de su dictamen.
Los peritos judiciales pueden ser expertos en una amplia variedad de
campos, como arquitectura, ingeniería, medicina, economía, entre otros.
Tipos de peritos judiciales, según la designación
Perito de oficio: elegido por un juez o tribunal.
Perito de parte: elegido por una de las partes (y luego aceptado por
el juez o fiscal).
Responsabilidades del perito, ética y privacidad
Dado que la informática forense implica acceder a información
personal y confidencial, los profesionales deben seguir estrictos
códigos de conducta y ser conscientes de las leyes y regulaciones de
privacidad aplicables.
Código deontológico
Un código deontológico es un código de ética profesional que
recoge un conjunto (más o menos amplio) de criterios, normas y
valores, que redactan y aceptan los profesionales que llevan a cabo
una actividad.
Es el conjunto de obligaciones morales del profesional y hace
referencia a la ética.
Principio general, o principio marco, de aplicación a todas las
profesiones: “Obrar según ciencia y conciencia”.
Código deontológico
Desde el punto de vista de la ética, el perito está obligado a guardar
el secreto profesional.
Ha de ser consecuente con la información encontrada en sus
actuaciones:
Si hay alguna evidencia de comisión delictiva, aunque no sea éste el
objeto o mandato de la investigación como tal, se debe informar del
delito a las autoridades competentes, ya sea por el código deontológico
como perito o por el mandato civil al que está sujeto como ciudadano.
Órdenes Jurisdiccionales
El perito judicial puede intervenir, al menos, en cuatro de las cinco
Órdenes Jurisdiccionales, que son:
Civil.
Penal.
Contencioso administrativo.
Social.
Militar
Responsabilidades
El perito está sujeto a varios tipos de responsabilidades,
dependiendo de la norma o legislación:
Responsabilidad civil (por acción u omisión), obligado a reparar el daño
a un particular.
Responsabilidad penal (hecho delictivo voluntario), obligado a reparar el
daño a la sociedad.
Responsabilidad disciplinaria, por no comparecer en juicio o vista
cuando sea requerido judicialmente para ello.
Responsabilidad profesional, por no cumplir el código deontológico o
el procedimiento disciplinario Colegial.
Cuerpo Oficial de Peritos
El conjunto de peritos colegiados para una profesión dada, conforma
el Cuerpo Oficial de Peritos (COP).
Es tarea de los Colegios profesionales la creación y gestión del COP.
La lista de peritos del COP se renueva anualmente y, se pone a la
libre disposición de las autoridades judiciales, juntas de arbitraje,
empresas, instituciones y cualquier persona interesada que precise
de los servicios de un perito respaldado por el Colegio Profesional.
Cuerpo Oficial de Peritos
Las personas pertenecientes al COP pueden actuar como:
Peritos judiciales de oficio.
Peritos judiciales de parte.
Cuerpo Oficial de Peritos
Colexio Profesional de Enxeñaría Técnica en Informática de Galicia
(CPETIG):
Ingenieros Técnicos en Informática (titulación 3 años - extinguida).
Graduados en Ingeniería Informática.
[Link]
Colexio Profesional de Enxeñaría en Informática de Galicia (CPEIG):
Ingenieros en Informática (titulación 5 años - extinguida).
Máster Universitario en Ingeniería Informática (sólo lo pueden cursar Ing.
Téc. en Informática o Graduados en Ingeniería Informática).
[Link]
NORMATIVA
Normativa en España
LOPDGDD.
Código Penal.
Ley de Enjuiciamiento Civil (LEC).
Ley de Enjuiciamiento Criminal (LECr).
Ley de Servicios de la Sociedad de la Información y comercio
electrónico (LSSI).
Ley Orgánica de Protección de la Seguridad Ciudadana.
Ley de Conservación de Datos.
Normativa - Recomendación
Las leyes cambian y evolucionan con el tiempo => es importante
que los investigadores forenses se mantengan actualizados sobre las
leyes y regulaciones aplicables y trabajen en estrecha colaboración
con los asesores legales para garantizar el cumplimiento de todas
las normas pertinentes
Recursos de interés
Libros:
Casey, Eoghan. Digital Evidence and Computer Crime. Forensic Science,
Computers and the Internet. Third edition. San Diego: Academic Press,
2011.
Carrier, Brian. File System Forensic Analysis. Upper Saddle River: Addison-
Wesley, 2005.
Johansen, Gerard. Digital forensics and incident response. Packt
Publishing Ltd, 2017.
Vila, Pilar. Técnicas de Análisis Forense informático para Peritos Judiciales
profesionales. 0xWord, 2018.
Farmer, Dan., and Wietse Venema. Forensic Discovery. Upper Saddle
River(NJ): Addison-Wesley, 2005.
Recursos de interés
Artículos:
McKemmish, Rodney. What is forensic computing?. Canberra: Australian
Institute of Criminology, 1999.
Recursos de interés
Conferencias y eventos:
Digital Forensic Research Workshop (DFRWS) ([Link]
SANS Digital Forensics and Incident Response Summit
([Link]
summit-2023/).
Recursos de interés
Blogs y canales:
Forensic Focus ([Link]
DFIRScience ([Link]
SANS Digital Forensics and Incident Response
([Link]
Recursos de interés
Certificaciones:
Computer Hacking Forensic Investigator (C|HFI): una certificación
ofrecida por EC-Council
([Link]
investigator-chfi/).
Certified Computer Examiner (CCE): una certificación ofrecida por el
International Society of Forensic Computer Examiners (ISFCE)
([Link]
Certified Forensic Computer Examiner (CFCE): una certificación ofrecida
por el International Association of Computer Investigative Specialists
(IACIS) ([Link]
Seguridad en Correo Electrónico
GNU PRIVACY GUARD (GNUPG OR GPG)
GNU Privacy Guard (GnuPG or GPG)
Implementación de PGP con licencia GNU GPL
Sitio Web: [Link]
Interfaz de línea de comandos disponible para principales SOs
En Linux normalmente ya instalado
En MacOS: se puede instalar la versión open source vía línea de
comandos: brew install gnupg
En Windows: se puede instalar Gpg4win: [Link]
Otras implementaciones en:
[Link]
GNU Privacy Guard (GnuPG or GPG)
También interfaces gráficas:
Kmail (KDE)
Evolution (GNOME)
Thunderbird: en versiones < 78 disponible con plugin Enigmail, ahora ya
de serie
Outlook: a través del plugin GpgOL Outlook (extensión de Gpg4win)
Apple Mail: Mediante el uso de GPGTools o complementos similares
...
GNU Privacy Guard (GnuPG or GPG)
Búsqueda de claves
Buscar claves en un servidor a partir de un identificador de usuario:
$ gpg [--keyserver servidor] --search-keys identificador
identificador: identificador alfanumérico de la clave, fingerprint, nombre
completo del usuario, correo electrónico, etc.
ej:
gpg --search-keys fyodor@[Link]
gpg --keyserver [Link] --search-keys fyodor@[Link]
En algunas distribuciones puede ser necesario instalar dirmngr
apt-get install dirmngr
Búsqueda de claves
NOTA:
gpg --search-keys utiliza el protocolo HKP (HTTP Keyserver Protocol)
para buscar claves públicas en un servidor de claves
Por defecto, HKP utiliza el puerto TCP 11371. Sin embargo, muchos
servidores de claves también operan a través de HKPS, que es una
versión segura de HKP, y por defecto utiliza el puerto TCP 443, el
mismo que HTTPS
Si tienes un firewall o estás detrás de un router, debes asegurarte de
que al menos uno de estos puertos esté abierto para poder usar
gpg --search-keys correctamente
TIP
Para aprender más sobre el funcionamiento interno de GPG se
puede añadir la opción --debug-level a los comandos, seguida de
un número entre 0 (sin detalle) y 9 (máximo detalle)
También se pueden usar palabras en lugar de los números
none, basic, advanced, expert y guru
Ejemplo:
gpg --debug-level guru --search-keys fyodor@[Link]
Ver claves
Ver claves públicas
--list-keys
Ver claves privadas
--list-secret-keys
Ver claves
$ gpg --list-keys
/home/user/.gnupg/[Link]
-----------------------------
pub rsa4096 2014-12-15 [C] [expires: 2025-07-21]
EF6E286DDA85EA2A4BA7DE684E2C6E8793298290
uid [ unknown] Tor Browser Developers (signing key) <torbrowser@[Link]>
sub rsa4096 2018-05-26 [S] [expires: 2020-12-19]
pub rsa3072 2020-11-24 [SC] [expires: 2022-11-24]
945D71F1AEABF91EF9FC4056F1866D5CBBE9F4CC
uid [ultimate] Homer <homer@[Link]>
sub rsa3072 2020-11-24 [E] [expires: 2022-11-24]
Generación de la clave
GnuPG puede crear varios tipos diferentes de pares de claves
Básico: --gen-key
Avanzado: --full-generate-key
Permite seleccionar tipo de clave y tamaño
GnuPG generará el identificador de usuario solicitando: nombre,
comentario y dirección de correo electrónico
Recomendado limitarse a caracteres estándar (sin ñ ni caracteres
acentuados)
Al terminar el proceso de creación, se imprime por pantalla un
resumen de las nuevas claves
Exportar la clave pública
Exportar clave pública
$ gpg --armor --export identificador
la exporta en formato ASCII armor, por pantalla
$ gpg --output [Link] --export identificador
la exporta a un fichero, en formato binario (no recomendado)
$ gpg --output [Link] --armor --export identificador
la exporta a un fichero, en formato ASCII armor
Envío: e-mail, Web, pen drive, servidor de claves...
Si no es intercambio directo, mejor usar dos vías: p. ej.: envío por
e-mail y comunicación de la huella (fingerprint) por teléfono,...
Exportar la clave privada
gpg --armor --export-secret-keys identificador
Se exportan ambas (pública y privada)
Importar claves
Importar clave
$ gpg --import fichero_clave
Sirve para importar clave pública o pública y privada, en función de
lo que contenga el fichero
Partes de una clave
UID o User ID: el nombre y correo electrónico se almacenan en entradas UID,
bajo la clave primaria
Clave primaria
Subclave
Partes de una clave
Fingerprint
En (RFC4880) se define un fingerprint de 160 bits para una clave, que se expresa
normalmente como una cadena hexadecimal, dividida en 10 grupos de 4
caracteres cada uno
E.g. 734A 3680 A438 DD45 AF6F 5B99 A4A9 28C7 69CD 6E44
Se puede consultar con --fingerprint
Key ID / Short Key ID
8 caracteres de ese fingerprint (en versiones recientes)
E.g. 69CD 6E44
Long Key ID
Los últimos 16 caracteres de ese fingerprint (en versiones recientes)
E.g. A4A9 28C7 69CD 6E44
Ver más info sobre las claves
--list-packets
gpg –-armor --export identificador | gpg –-list-packets
se puede añadir --verbose
pgpdump (necesario instalarla)
gpg –-armor --export identificador | pgpdump
Validación de claves
Firmar una clave
Modo edición:
$ gpg --edit-key identificador // entra en modo edición
sign // firma (exportable) (lsign no exportable)
save // guarda y sale modo edición (también podemos salir con quit o q)
o directamente:
$ gpg --sign-key identificador
¡Antes de firmar una clave, es muy importante asegurarse
de que la clave realmente pertenece a esa persona!
Listar las firmas de una clave
$ gpg --list-sig key_id
--list-sig, --list-sigs y list-signatures son equivalentes
Confianza en el propietario de una clave
Que tengamos la certeza de que una clave pertenece a un usuario
no significa que tengamos que confiar en claves que él firma. Esto
está contemplado en el modelo de PGP
Existen los siguientes niveles de confianza en GnuPG, ordenados de
menor a mayor:
(1) No definida, (2) Nunca, (3) Dudosa (marginal), (4) Total, (5) Absoluta
Los niveles de confianza son privados para la instalación de gpg de
un usuario (no se exportan)
Establecer confianza
$ gpg --edit-key identificador // entra en modo edición
gpg> trust
save // guarda y sale modo edición (también podemos salir con quit o q)
Cifrar
Cifrado asimétrico (en realidad, híbrido):
Imprescindible clave pública destinatario
Nota: en realidad el contenido se cifra con cifrado simétrico. El cifrado asimétrico
se usa para cifrar la clave de sesión
$ gpg --output fichero_salida --encrypt --recipient identificador
fichero_original
Se puede añadir --armor (necesario si queremos enviar el contenido en el
cuerpo de un correo electrónico)
Sólo cifrado simétrico:
$ gpg --output fichero_salida --symmetric fichero_original
Se solicitará por pantalla una clave secreta
Descifrar
Sólo es posible si se tiene clave privada (o clave secreta, caso de sólo
cifrado simétrico)
$ gpg --output fichero_salida --decrypt fichero_cifrado
Solicita clave de acceso a clave privada (o clave secreta)
Firmar (1)
Firma conjunta fichero+firma (NO recomendado)
$ gpg [--output [fichero resultante]] --sign [fichero para firmar]
Ej:
gpg [--armor] --sign [Link]
Genera fichero .gpg (si no se especifica otra cosa con --output) con el
contenido que se deseaba firmar y la propia firma asociada, en binario o en
ASCII armor, en función de si se indica --armor o no
Firmar (2)
Firma separada. Documento y firma están separados
$ gpg [--armor] --detach-sig fichero
Genera fichero .sig con la firma, en binario o en ASCII armor, en función de
si se indica --armor o no. En general, es preferible la opción ASCII armor,
aunque también podemos encontrar ejemplos de firmas separadas en
formato binario
El fichero original no se modifica
Opción recomendada para código, por ejemplo.
Firmar (3)
Firma para textos
$ gpg [--output [fichero_resultante]] --clearsign fichero
Firma el contenido del fichero, no el fichero
Opción recomendada para correo electrónico
Genera fichero .asc con el texto que se deseaba firmar en claro y la firma
asociada en formato ASCII armor
El contenido de ese fichero .asc se puede copiar y pegar en el cuerpo de un
correo electrónico. Un correo electrónico generado de esta forma debería
ser interpretado correctamente por herramientas con soporte gráfico para
PGP
Es importante copiar y pegar sólo texto sin formato
Ejemplo
$ gpg --output [Link] --clearsign [Link]
Firmar (4)
Firma para textos
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA256
Hola:
Este es un mesaje de correo.
Un saludo,
Homer
-----BEGIN PGP SIGNATURE-----
iQGzBAEBCAAdFiEElF1x8a6r+R75/EBW8YZtXLvp9MwFAl/FPy4ACgkQ8YZtXLvp
9MzaiAv8CJlVB8TlxF+Gdhf6RuHfEQp4/1YW1OOvc6TotRYI9dRmuGt6sa1vuDie
G2wPH9Qc0iMBVifpgyQuNhUHpuUVNxJSsuHB2A1sNRdA03h/uJIRsfE4or3LfCNN
hdDnst6wQv4a4YNbra6DM78ewZAMJTM5S91KQg3tKZCLlus7fEUllCO9TaOz95CO
dIIhNDQm/ZFAn+DfnumVle+0niW/Ymg+Qec4TgghJW0Zg4ycnAaaQlnqMq8NiGq0
zvspJfY9pQoeBCgM9rgzblyIuGTAFt9k7doECrmwAU+zGgz1UZcmtB1BYNr+6cG1
TtlR0pxtCUYAf1cpkdDQcA8+5LGkm1xJmoFh7/dHZOJEMcsoDT9eM/+ylXeGWn3y
01UHX8woWEdFS2Un2mJsg8VylUf8vcJNcvZIYIi8EepO5zmX92FCrMoCCObt6izl
IIBfaUMJrNFEfHaKy+6BnR+2reiGzMLWjkyZ12VsqgKk4uJZEVpbFFgKVle1y5HY
OCYysUby
=GI7z
-----END PGP SIGNATURE-----
Firmar (y 5)
En caso de que tengamos varias claves privadas, podemos indicar cuál
queremos usar, añadiendo la opción:
-u {ID de la clave privada}
Ej:
gpg -u homer@[Link] {--sign | --clear-sign | detach-sig } …
-u y --local-user son equivalentes
Firmar y cifrar
Se puede hacer en un único paso:
$ gpg --output fichero_salida --sign --encrypt --recipient
identificador fichero_original
Se puede añadir --armor (necesario si queremos enviar el contenido en el
cuerpo de un correo electrónico)
Nótese que en este caso no es correcto el uso de --clear-sign
Verificar una firma
Verificar
$ gpg --verify firma fichero_firmado
$ gpg --verify fichero+firma
Ejemplo, en caso de que no tengamos la clave pública:
$ gpg --verify [Link] tor-browser-linux64-10.0.5_en-[Link]
gpg: Signature made lun 16 nov 2020 03:02:18 CET
gpg: using RSA key EB774491D9FF06E2
gpg: Can't check signature: No public key
Verificar una firma
Ejemplo, una vez instalada la clave pública:
$ gpg --verify [Link] tor-browser-linux64-10.0.5_en-[Link]
gpg: Signature made lun 16 nov 2020 03:02:18 CET
gpg: using RSA key EB774491D9FF06E2
gpg: Good signature from "Tor Browser Developers (signing key) <torbrowser@[Link]>"
[unknown]
gpg: WARNING: This key is not certified with a trusted signature!
gpg: There is no indication that the signature belongs to the owner.
Primary key fingerprint: EF6E 286D DA85 EA2A 4BA7 DE68 4E2C 6E87 9329 8290
Subkey fingerprint: 1107 75B5 D101 FB36 BC6C 911B EB77 4491 D9FF 06E2
Aún así, si la clave no está marcada como legítima, GPG nos mostrará una advertencia
Añadir dirección de correo
gpg --edit-key identificador
gpg> adduid
Solicita nombre y apellidos, comentario y e-mail
Creación de un Certificado de Revocación
$ gpg --output fichero --gen-revoke identificador
Inmediatamente después de la creación de claves, es altamente
recomendable crear un certificado de revocación de estas mismas
claves
Este certificado permitirá a su legítimo dueño cancelar de forma pública
y fiable para todos los demás usuarios la validez de dichas claves
Este certificado debe guardarse de forma segura
En las versiones más recientes de GPG ya se crea un certificado de
revocación automáticamente en el proceso de generación de claves
Se almacenan en ~/.gnupg/openpgp-revocs.d/ con el nombre
<fingerprint>.rev
Revocación de una clave
Para revocar una clave, primero es necesario importar en el propio
sistema el certificado de revocación:
$ gpg --import certificado_revocacion
Comunicar la revocación a los demás usuarios que conocen la clave
pública correspondiente
$ gpg --keyserver servidor --send-keys identificador
Borrar una clave
Borrar una clave pública
gpg --delete-key identificador
Borrar una clave privada
gpg --delete-secret-key identificador