Seguridad

Transcripción

Seguridad
c
2005
GSyC
1
Seguridad
Redes de Área Local
c
2005
GSyC
Problemas
2
Problemas
Privacidad o secreto. Mantener la información fuera de las manos de
usuarios no autorizados.
Autenticación. Determinar de la identidad del interlocutor.
No repudio. Poder demostrar quien es el autor de un mensaje.
Control de integridad. Garantizar que un mensaje no ha sido modificado.
Redes de Área Local: Seguridad
Problemas (cont.)
3
Soluciones
Nivel fı́sico: Proteger el cable de escuchas.
Nivel de enlace: Cifrar al enviar y descifrar al recibir. ¿Qué hacen los
encaminadores?
Nivel de red: IPsec, cifrado en IPv6. Cortafuegos.
Nivel de transporte: Cifrado de conexiones. SSL.
Soluciones de privacidad, pero no de autenticación o no repudio: nivel de
aplicación.
Los fallos de seguridad no suelen ser técnicos. Ver libro de Ross Anderson
“Security Engineering”.
c
2005
GSyC
Redes de Área Local: Seguridad
Problemas (cont.)
4
Criptologı́a
Passive
intruder
just
listens
Plaintext, P
Active
intruder
can alter
messages
Intruder
Decryption
method, D
Encryption
method, E
Plaintext, P
Ciphertext, C = EK(P)
Encryption
key, K
Decryption
key, K
Criptologı́a = criptografı́a (inventar códigos) + criptoanálisis (atacarlos)
c
2005
GSyC
Redes de Área Local: Seguridad
Problemas (cont.)
5
Potencia del intruso
El intruso puede:
Puede escuchar mensajes.
Puede modificar mensajes.
Puede replicar mensajes.
Puede borrar mensajes.
Principio de Kerckhoff: Los algoritmos deben ser públicos; sólo las
claves son secretas.
c
2005
GSyC
Redes de Área Local: Seguridad
Problemas (cont.)
6
Criptoanálisis
La longitud de las claves es fundamental. Dependerá de los recursos que
cueste probar todas las combinaciones (para ataques de fuerza bruta).
Un criptoanalista puede disponer de:
c
2005
GSyC
Sólo texto cifrado.
El mismo texto crifrado y en claro.
La capacidad de cifrar lo que quiera.
Redes de Área Local: Seguridad
c
2005
GSyC
Problemas (cont.)
7
Métodos clásicos
Sustitución. Cada letra se sustituye por otra, según una tabla. Se
puede atacar usando combinaciones y frecuencias de aparición (“El
escarabajo de oro”, Edgar Allan Poe).
Transposición. Se reordenan las letras del mensaje. Se puede atacar
buscando palabras.
M E G A B U C K
7 4 5 1 2 8 3 6
p
l
e a s e
t
r
a n s
f
e
r
o n
e m i
l
l
i
o n
d o
l
a
r
s
o m y s w
i
s s
l
t
b a n k a c c o
u n
o
t
s
i
x
t w
Plaintext
pleasetransferonemilliondollarsto
myswissbankaccountsixtwotwo
Ciphertext
AFLLSKSOSELAWAIATOOSSCTCLNMOMANT
ESILYNTWRNNTSOWDPAEDOBUOERIRICXB
t w o a b c d
Redes de Área Local: Seguridad
c
2005
GSyC
Problemas (cont.)
8
Plantillas de un solo uso. Cada bit del mensaje se enmascara (x-or)
con un bit de una plantilla aleatoria (la clave).
• Seguridad perfecta.
• Clave larga.
• Tráfico limitado por el tamaño de la plantilla.
Se pueden usar generadores de (pseudo)aleatorios, donde la clave es
la semilla, pero son más débiles. Otra opción es usar criptografı́a
cuántica.
Redes de Área Local: Seguridad
c
2005
GSyC
Problemas (cont.)
9
Principios criptográficos
Los mensajes cifrados deben incluir redundancia. Esto evita que una
modificación de los mismos resulte en otro mensaje válido. Mejor si
no es relleno predecible.
El necesario controlar la frescura de los mensajes recibidos, para evitar
ataques con mensajes antiguos. Se puede marcar cada mensaje con
el sello de tiempo y darle un periodo de validez.
Redes de Área Local: Seguridad
c
2005
GSyC
Problemas (cont.)
10
Métodos modernos: Criptografı́a de clave secreta
El proceso se hace con ordenadores: sustituciones y transposiciones
más complejas.
S-box
(a)
Product cipher
Encoder: 8 to 3
Decoder: 3 to 8
P-box
(b)
P1
S1
S5
S9
S2
S6
S10
S3
S4
P2
S7
S8
P3
S11
P4
S12
(c)
Redes de Área Local: Seguridad
c
2005
GSyC
Problemas (cont.)
11
Data Encryption Standard (DES)
Adoptado por el gobierno USA en 1977.
Cifra bloques de 64 bits con claves de 56 bits.
64-Bit plaintext
L i-1
R i-1
Initial transposition
56-Bit key
Iteration 1
Iteration 2
L i-1 ⊕ f(Ri -1, Ki)
Iteration 16
32-Bit swap
Inverse transposition
64-Bit ciphertext
(a)
32 bits
Li
32 bits
Ri
(b)
Redes de Área Local: Seguridad
Problemas (cont.)
12
Triple DES
DES no es seguro. Claves muy pequeñas.
Alternativa: Aplicar DES varias veces.
Hay ataques para 2 veces.
Solución: Triple DES (1979, IS8732).
P
c
2005
GSyC
K1
K2
K1
E
D
E
C
(a)
C
K1
K2
K1
D
E
D
P
(b)
Clave de 112 bits. Seguro (por ahora).
Redes de Área Local: Seguridad
AES: Advanced Encryption Standard
13
AES: Advanced Encryption Standard
NIST convoca concurso para sucesor de DES:
c
2005
GSyC
Algoritmo de cifrado de bloque simétrico.
Completamente público.
Claves de 128, 192 y 256 bits.
Bueno para implementaciones hw y sw.
Redes de Área Local: Seguridad
c
2005
GSyC
AES: Advanced Encryption Standard (cont.)
14
Rijndael
Se convierte en 2001 en estándar del gobierno de los EEUU.
Diseñado por Joan Daemen y Vincent Rijmen (belgas).
Bloques y claves de 128 a 256 bits, de 32 en 32.
AES: bloques de 128 y claves de 128, 192 y 256.
Redes de Área Local: Seguridad
c
2005
GSyC
AES: Advanced Encryption Standard (cont.)
15
Implementación 128/128
Redes de Área Local: Seguridad
c
2005
GSyC
AES: Advanced Encryption Standard (cont.)
16
Implementación
10 a 14 rondas de sustitución y permutaciones.
Operaciones sobre octetos.
Bloques se gestionan como matrices, almacenado inicialmente en una
variable state por columnas.
Inicialmente se expande la clave a varias matrices.
Se hace xor de state con primera matriz.
Redes de Área Local: Seguridad
AES: Advanced Encryption Standard (cont.)
17
Variables
128-Bit plaintext
state
c
2005
GSyC
rk[0]
128-Bit encryption key
rk[1]
rk[2]
rk[3]
rk[4]
rk[5]
rk[6]
rk[7]
rk[8]
rk[9]
rk[10]
Round keys
Redes de Área Local: Seguridad
AES: Advanced Encryption Standard (cont.)
18
Una ronda
Sustitución de state octeto a octeto. Una sola caja-S.
Rotación a izquierdas de la iésima fila i − 1 posiciones.
Cada columna se multiplica por una matriz constante en el campo de
Galois GF (28 ). Se puede hacer de manera eficiente.
Se hace la xor con la matriz correspondiente de la clave expandida.
Para descifrar se calcula a la inversa o se usan tablas distintas.
Muy seguro y rápido: 700 Mbps.
c
2005
GSyC
Redes de Área Local: Seguridad
AES: Advanced Encryption Standard (cont.)
19
Métodos de cifrado (ECB)
DES se pueden usar dividiendo el mensaje en bloques de 64 bits y
cifrando por separado: sustitución de caracteres de 8 octetos.
Esta forma de funcionar (Electronic Code Book Mode) es muy débil.
Name
A d a m s ,
L e s l
B l a c k ,
R o b i n
C o l
l
i n s ,
D a v i s ,
Bytes
Position
i e
K i m
B o b b i e
16
Bonus
C l e r k
$
B o s s
$ 5 0 0 , 0 0 0
M a n a g e r
$ 1 0 0 , 0 0 0
J a n i
$
t o r
8
1 0
5
8
AES tiene el mismo problema.
c
2005
GSyC
Redes de Área Local: Seguridad
c
2005
GSyC
AES: Advanced Encryption Standard (cont.)
20
Métodos de cifrado (CBC)
Solución: Cipher Block Chaining (CBC):
• Cada bloque se hace la x-or antes de cifrarlo con el bloque cifrado
anterior.
• Para el primer bloque hay un vector inicial (IV), que es parte de
la clave.
IV
P0
P1
P2
P3
C0
C1
C2
C3
+
+
+
+
Key D
D
D
D
Key E
C0
E
E
C2
C1
(a)
E
C3
Encryption
box
IV
Decryption
box
+
P0
+
+
P1
P2
+
P3
Exclusive
OR
(b)
Redes de Área Local: Seguridad
c
2005
GSyC
AES: Advanced Encryption Standard (cont.)
21
Métodos de cifrado
Para cifrar carácter a carácter se usa el Cipher Feedback Mode:
• Registro de 64 bits cargado con los caracteres cifrados.
• Tras cifrar el registro, el x-or del octeto de mayor peso y el nuevo
carácter es enviado como carácter cifrado
64-bit shift register
64-bit shift register
C2 C3 C4 C5 C6 C7 C8 C9
C2 C3 C4 C5 C6 C7 C8 C9
Key
E
Encryption
box
Key
C10
E
Select
leftmost byte
P10
+
Encryption
box
C10
Select
leftmost byte
C10
C10
+
P10
Exclusive OR
(a)
(b)
Redes de Área Local: Seguridad
c
2005
GSyC
AES: Advanced Encryption Standard (cont.)
22
Métodos de cifrado
Stream Cipher Mode:
IV
IV
Encryption box
Key
E
Encryption box
Key
E
Keystream
+
Plaintext
Keystream
Ciphertext
+
Ciphertext
(a)
Plaintext
(b)
Counter Mode:
IV
IV+2
IV+1
IV+3
Key
E
Key
E
Key
E
Key
E
P0
+
P1
+
P2
+
P3
+
C0
C1
C2
Encryption
box
C3
Redes de Área Local: Seguridad
AES: Advanced Encryption Standard (cont.)
23
Otros algoritmos de clave secreta
Hay muchos otros algoritmos propuestos. Resumen:
c
2005
GSyC
Redes de Área Local: Seguridad
c
2005
GSyC
Criptografı́a de clave pública
24
Criptografı́a de clave pública
Con claves secretas hay problemas de distribución de claves.
En 1976 Diffie y Hellman proponen criptografı́a de clave pública:
• Clave de cifrado o pública E y de descifrado o privada D distintas.
• D(E(P )) = P
• Muy dificil romper el sistema (p.e. obtener D) teniendo E.
Alice hace pública su clave EA . Bob puede enviar mensajes cifrados
EA (P ) a Alice.
Redes de Área Local: Seguridad
c
2005
GSyC
Criptografı́a de clave pública (cont.)
25
RSA
De Rivest, Shamir y Adleman.
Supone que factorizar números muy grandes es muy costoso en tiempo.
Generación de claves:
• Elije dos primos muy grandes p y q (> 10100 ).
• Computa n = pq y z = (p − 1)(q − 1).
• Encuentra un número d primo respecto a z.
• Encuentra un número e tal que ed = 1 mod z.
• (e, n) es la clave pública y (d, n) la privada.
Para cifrar 0 ≤ P < n: C = P e mod n.
Para descifrar: P = C d mod n.
Redes de Área Local: Seguridad
Ejemplo de RSA
26
Ejemplo de RSA
Para p = 3, q = 11, n = 33 y z = 20.
Si d = 7 (sin factores comunes con z) entonces 7e = 1(mod 20) y e = 3.
Plaintext (P)
Symbolic Numeric
c
2005
GSyC
S
U
Z
A
N
N
E
19
21
26
01
14
14
05
Ciphertext (C)
P3
P3 (mod 33)
6859
9261
17576
1
2744
2744
125
28
21
20
1
5
5
26
Sender's computation
After decryption
C7
C7 (mod 33)
13492928512
1801088541
1280000000
1
78125
78125
8031810176
Symbo
19
21
26
01
14
14
05
Receiver's computation
Redes de Área Local: Seguridad
S
U
Z
A
N
N
E
c
2005
GSyC
Ejemplo de RSA (cont.)
27
RSA
La forma más evidente de romper RSA es factorizar n.
Para n de 200 dı́gitos llevarı́a varios millones de años (con los algoritmos y ordenadores actuales).
Hay más algoritmos de clave publica propuestos: Rabin, El-Gamal.
Estos usan la dificultad de calcular logaritmos discretos.
Los algoritmos de clave pública son mucho más lentos que los de
clave secreta (100 a 1000 veces). Por eso se suelen usar sólo para el
intercambio de claves de sesión.
Redes de Área Local: Seguridad
c
2005
GSyC
Ejemplo de RSA (cont.)
28
Autenticación
Sirve para verificar la identidad del interlocutor.
Si ambos interlocutores comparten una clave secreta KAB se usa un
sistema de desafı́o-respuesta: Se elije un valor aleatorio grande que se
debe devolver cifrado con KAB .
Alice
2
3
RB
KAB (RB)
4
5
A
Bob
1
RA
KAB (RA)
Redes de Área Local: Seguridad
c
2005
GSyC
Ejemplo de RSA (cont.)
29
Intercambio de claves Diffie-Hellman
Sirve para Que A y B tengan una misma clave. Se basa en la dificultad
de calcular logaritmos discretos.
A y B acuerdan dos primos grandes n y g, que pueden hacerse públicos.
A elije un número x y B otro y. La clave común va a ser g xy mod n.
Alice
picks x
Bob
picks y
n, g, gx mod n
2
gy mod n
Alice computes
(gy mod n)x mod n
= gxy mod n
Bob
Alice
1
Bob computes
(gx mod n)y mod n
= gxy mod n
Redes de Área Local: Seguridad
Ejemplo de RSA (cont.)
30
Intercambio de claves Diffie-Hellman
Puede sufrir el ataque “man-in-the-middle”:
Alice
picks x
c
2005
GSyC
3
gz mod n
2
n, g, gz mod n
4
Bob
n, g, gx mod n
Trudy
1
Alice
Bob
picks y
Trudy
picks z
gy mod n
Redes de Área Local: Seguridad
c
2005
GSyC
Ejemplo de RSA (cont.)
31
Autenticación con clave pública
Si A y B conocen sus respectivas claves publicas.
Se usa desafı́o-respuesta:
Directory
eE B
m
E
ve e is
Gi
r
.
1
He
2.
B
A
EB (A, RA)
EA (RA, RB, KS)
7
Bob
Alice
3
6
4. G
iv
5. H e me
ere
E
is E A
KS (RB)
Redes de Área Local: Seguridad
c
2005
GSyC
Ejemplo de RSA (cont.)
32
Firmas digitales
Se puede usar criptografı́a de clave pública, si el algoritmo cumple
que E(D(P )) = P (RSA).
Firmar es cifrar con la clave privada:
Transmission line
Alice's computer
P
Bob's
public key,
EB
Alice's
private key,
DA
DA(P)
Bob's computer
Alice's
public key,
EA
Bob's
private key,
DB
EB (DA(P))
P
DA(P)
Redes de Área Local: Seguridad
c
2005
GSyC
Ejemplo de RSA (cont.)
33
Resúmenes
Funciones hash M D de un sentido, que generan resúmenes (digest o
hash):
• Dado P es fácil calcular M D(P ).
• Dado M D(P ) es imposible calcular P .
• No se pueden generar 2 mensajes P y P 0 : M D(P ) = M D(P 0 ).
(El resumen debe tener al menos 128 bits)
P, DA (MD (P))
Bob
Alice
Firma digital con resumen:
Redes de Área Local: Seguridad
c
2005
GSyC
Ejemplo de RSA (cont.)
34
Resúmenes
Funciones resumen más populares: MD5 y SHA-1.
MD5 genera resúmenes de 128 bits y SHA-1 de 160.
Se han detectado debilidades en MD5.
Recientemente se han detectado debilidades en SHA-1.
Redes de Área Local: Seguridad
c
2005
GSyC
Resúmenes y el ataque del cumpleaños
35
Resúmenes y el ataque del cumpleaños
Los resúmenes deben ser largos.
Función de n objetos en k valores, la probabilidad de condidencia es
√
alta si n > k.
Para encontrar dos resúmenes de 64 bits, 232 mensajes bastan.
Para MD5 o SHA-1 hacen falta varios siglos (264 y 280 ).
Redes de Área Local: Seguridad
Gestión de claves públicas
36
Gestión de claves públicas
No basta con dejar la clave pública en una página web (por ejemplo):
1. GET Bob's home page
Alice
2. Fake home page with ET
Trudy
Bob
3. ET(Message)
4. EB(Message)
Necesitamos una forma más segura de obtener las claves.
c
2005
GSyC
Redes de Área Local: Seguridad
c
2005
GSyC
Gestión de claves públicas (cont.)
37
Certificados
Forma de distribuir claves públicas.
Es un documento firmado por una autoridad de certificación bien
conocida que informa de la clave pública de una entidad.
Se generaliza en un posible árbol de autoridades de certificación, en
el certificado cada una certifica la clave pública de la siguiente.
Redes de Área Local: Seguridad
c
2005
GSyC
Gestión de claves públicas (cont.)
38
Certificados
Solución al problema de la distribución de claves.
Redes de Área Local: Seguridad
c
2005
GSyC
Gestión de claves públicas (cont.)
39
Certificados X.509
Normalizados por ITU y adoptados por IETF.
Redes de Área Local: Seguridad
c
2005
GSyC
Gestión de claves públicas (cont.)
40
PKI: Public Key Infrastructure
Árbol de autoridades de certificación. Padres certifican a hijos.
Root
RA 2 is approved.
Its public key is
47383AE349. . .
RA 2 is approved.
Its public key is
47383AE349. . .
Root's signature
Root's signature
RA 1
RA 2
CA 5 is approved.
Its public key is
6384AF863B. . .
RA 2's signature
CA 1
CA 2
(a)
CA 3
CA 4
CA 5
CA 5 is approved.
Its public key is
6384AF863B. . .
RA 2's signature
(b)
Redes de Área Local: Seguridad
c
2005
GSyC
Gestión de claves públicas (cont.)
41
PKI: Public Key Infrastructure
Cada autoridad certifica a autoridades de nivel inferior.
La clave pública de la raı́z está grabada en el navegador. Suele haber
varias raices (anclas de confianza o trust anchors).
Al enviar un certificado se pueden enviar todos los certificados hasta
la raı́z: cadena de confianza o camino de certificación.
Certificados se pueden incluir en un servicio de directorio.
Las autoridades emiten listas de certificados revocados.
Redes de Área Local: Seguridad
c
2005
GSyC
IPsec
42
IPsec
Extensión de IP para introducir seguridad a nivel de red.
Permite el uso de múltiples servicios, algoritmos (simétricos) y granularidades.
Proporciona privacidad, integridad de datos y protección para ataques
de reuso de paquetes.
Es orientado a conexión unidireccional: asociación de seguridad (SA).
ISAKMP (Internet Security Association and Key Management Protocol) sirve para acordar las claves del SA.
Redes de Área Local: Seguridad
c
2005
GSyC
IPsec (cont.)
43
Modos IPsec
Modo transporte: Se inserta una cabecera IPsec después de la IP.
Modo túnel: El paquete entero se encapsula en el cuerpo de un nuevo
paquete IP.
• El destinatario de este paquete puede no ser el final (firewall).
• Permite agrupar conexiones.
Redes de Área Local: Seguridad
c
2005
GSyC
IPsec (cont.)
44
Cabecera de autenticación
Authentication Header (AH).
Proporciona integridad (datos y parte de las cabeceras) y no reuso.
Authenticated
IP header
AH
TCP header
Payload + padding
32 Bits
Next header
Payload len
(Reserved)
Security parameters index
Sequence number
Authentication data (HMAC)
Redes de Área Local: Seguridad
IPsec (cont.)
45
Cabecera de cifrado
Encapsulation Security Payload (ESP).
Authenticated
(a)
IP
header
ESP
header
TCP
header
Payload + padding
Authentication (HMAC)
Encrypted
Authenticated
(b)
c
2005
GSyC
New IP
header
ESP
header
Old IP
header
TCP
header
Payload + padding
Authentication (HMAC)
Encrypted
Redes de Área Local: Seguridad
c
2005
GSyC
Redes Privadas Virtuales (VPN)
46
Redes Privadas Virtuales (VPN)
Alternativa a enlaces alquilados.
Usa Intenet e IPsec modo túnel entre firewalls para tener una red
privada.
Office 1
Leased line
Office 2
Office 1
Firewall
Internet
Office 2
Tunnel
Office 3
Office 3
(a)
(b)
Redes de Área Local: Seguridad
c
2005
GSyC
Pretty Good Privacy (PGP)
47
Pretty Good Privacy (PGP)
Phil Zimmermann lo construyó para envı́o de correo con privacidad,
autenticación, firma digital y compresión.
Usa IDEA, RSA, MD5 y comresión Ziv-Lempel.
Las claves se guardan en “llaveros” y se obtienen de servidores públicos o certificados.
Redes de Área Local: Seguridad
Pretty Good Privacy (PGP) (cont.)
48
Pretty Good Privacy (PGP)
Bob's public
RSA key, EB
KM : One-time message key for IDEA
: Concatenation
KM
Alice's private
RSA key, DA
P
MD5
RSA
P1
Zip
P1.Z
IDEA
RSA
ASCII text to
Base the network
64
P1 compressed
Original
plaintext
message
from Alice
c
2005
GSyC
Concatenation of
P and the signed
hash of P
Concatenation of
P1.Z encrypted
with IDEA and KM
encrypted with EB
Redes de Área Local: Seguridad
c
2005
GSyC
Secure Sockets Layer (SSL)
49
Secure Sockets Layer (SSL)
Introducido por Netscape en 1995.
Es una capa de transporte segura entre sockets que proporciona:
• Negociación de parámetros.
• Autenticación mutua.
• Privacidad.
• Protección de integridad.
HTTPS es HTTP sobre SSL.
Redes de Área Local: Seguridad
c
2005
GSyC
Secure Sockets Layer (SSL) (cont.)
50
Niveles SSL
Redes de Área Local: Seguridad
Secure Sockets Layer (SSL) (cont.)
51
Establecimiento de conexión SSL
1
SSL version, Preferences, RA
2
SSL version, Choices, RB
3
X.509 certificate chain
c
2005
GSyC
Server done
5
EB (Premaster key)
6
Bob
Alice
4
Change cipher
7
8
Finished
Change cipher
9
Finished
Redes de Área Local: Seguridad
Secure Sockets Layer (SSL) (cont.)
52
Transmisión con SSL
Message from browser
Fragmentation
Compression
Part 1
Part 2
Message
authentication
code
MAC added
Encryption
Header added
c
2005
GSyC
Redes de Área Local: Seguridad
Secure Sockets Layer (SSL) (cont.)
53
Cortafuegos
Organizaciones no quieren que información sensible salga de sus redes y
que nada peligroso (viruses o gusanos) entren.
c
2005
GSyC
Un cortafuegos es el único punto de acceso entre la red de una organización y el resto del mundo.
Todo el tráfico (de entrado o salida) es inspeccionado y filtrado.
Conceptualmente: dos encaminadores conectados con una pasarela.
• Cada encaminador filtra un sentido de tráfico, y deja pasar sólo el
tráfico que cumple ciertos criterios (bloquear tráfico de/a ciertas
direcciones, sólo permitir tráfico de/a ciertas direcciones, bloquear
tráfico de/a ciertos puertos).
• La pasarela puede realizar una inspección más en detalle a nivel de
aplicación: P.ej. Buscar ciertas palabras en los mensajes de correo.
Redes de Área Local: Seguridad
c
2005
GSyC
Secure Sockets Layer (SSL) (cont.)
54
Referencias
A.S. Tanenbaum, Computer Networks, 4th Ed., Prentice Hall, 2003.
http://csrc.nist.gov/encryption/aes
http://www.eskimo.com/~weidai/scan-mirror
http://www.ccsr.cam.ac.uk/projects/aes
Redes de Área Local: Seguridad

Documentos relacionados