Uploaded by Dani González

7FirmaDigital

advertisement
•Tema 12: Firma electrónica
•Tema 13: Políticas y estándares de certificación de claves públicas
Módulo IV: Infraestructura de
clave pública
Ataque de Suplantación MitM
contra la Clave Pública
Adversario
fuente de claves
d’
m
descifrado
e’
c
cifrado
Ee(m)=c
Dd’(c’)=m
e
fuente de claves
d
c’
Alice
cifrado
Ee’(m)=c’
descifrado
Dd(c)=m
m
fuente del texto
m
destino
Bob
Certificación de la Clave Pública
• Cuando se obtiene la clave pública de una entidad o persona, ¿cómo se
puede verificar que realmente corresponde a esa entidad o persona?
• El objetivo de un certificado electrónico (o digital) es dar fe de la
vinculación de una clave pública a una identidad.
• La información básica que contiene un certificado es:
– La identidad que se certifica, como un correo electrónico o un DNI.
– El período de validez, fecha a partir de la cual el certificado no es válido.
– La clave pública que se certifica.
– La entidad que expide el certificado mediante su firma digital.
» Por ejemplo, en una conexión a un sitio web seguro, siempre se obtiene un
certificado para autenticar la identidad del servidor al que nos conectamos.
Normalmente en el software del cliente, los navegadores incluyen por
defecto un conjunto de certificados confiables que permiten comprobar las
firmas incluidas en los certificados de muchos servidores.
Modelo Descentralizado de
Certificación
• Se basa en confiar en las amistades de tus amistades.
• Firmamos las claves de las personas que conozcamos y en las que
confiemos.
• Pretty Good Privacy (PGP) es un programa para usar clave pública
con ese modelo
• GPG es una herramienta criptográfica con el modelo Open de PGP.
• El llavero, ringkey o keychain es el fichero donde se almacenan las
claves públicas de las personas de las que nos fiamos.
GPG
Modelo Centralizado de Certificación
Certificado
de
autenticación
según
estándar
X.509:
Documento electrónico emitido por una tercera parte de
confianza (AC) con el que se asocia la identidad de un usuario
con su clave pública, de forma que otros puedan autenticarla.
Incluye:
U, puU, X, Alg, FAC(U, puU, X, Alg)
» U: nombre del usuario
» puU: clave pública de U
» X: fecha de expiración
» Alg: identificador del algoritmo con el que se puede usar esa clave
» FAC: firma de la autoridad de certificación AC
P. Caballero Gil
Estándar
X.509
Autoridades de Certificación
Existen dos tipos de autoridades con capacidad para emitir certificados: las
autoridades raíz y las subordinadas. Las autoridades raíz se certifican a sí mismas y
a otras autoridades, mientras que las subordinadas sólo pueden emitir certificados para
entidades subordinadas, dando la posibilidad de definir jerarquías de certificación.
Autoridades de Certificación
Implementaciones de AC de
código abierto
•
Existen varias implementaciones de código abierto de
software de AC, para proporcionar los servicios
necesarios
para
expedir,
revocar
y
gestionar
certificados digitales.
•
Una implementación de código abierto es OpenSSL,
que es una biblioteca TLS/SSL que viene con
herramientas que permiten su uso como AC sencilla.
P. Caballero Gil
OpenSSL
Infraestructura de Clave Pública
P. Caballero Gil
PKI
P. Caballero Gil
Revocación de Certificados
• ¿Cuándo revocar un certificado?
– una vez superado el periodo de validez o
– si la clave ha sido comprometida
• Es
necesario
revisar
las
listas
de
certificados revocados (CRL) antes de
aceptar un certificado.
• Un
propuesta
certificados
de
solución
efímeros,
son
que
los
son
certificados con validez de unos pocos
minutos.
P. Caballero Gil
Firma Digital
•Objetivos:
–Permite verificar el emisor de un mensaje
–Permite autenticar la integridad del mensaje
–Puede ser comprobada por terceras partes
•Propiedades:
–Depende del mensaje a firmar y del emisor
–Fácil de producir
–Fácil de reconocer
–Infalsificable
–Los documentos firmados se pueden guardar
•Aplicaciones:
–En correo electrónico
–Certificación de claves públicas
Cifrado con Clave Pública
Clave pública
del usuario B
M
Usuaria A
EB
Medio de
Transmisión
Clave privada
del usuario B
DDBB
C
Criptograma
Adversario
Se cifra con la
clave pública del
receptor
C
M
Usuario B
protegida
Confidencialidad
C = EB(M)
M = DB(C) = DB(EB(M))
DB y EB son inversos
Firma Digital con Clave Pública
Clave privada
de la usuaria A
M
Usuaria A
DAA
D
Medio de
Transmisión
Clave pública
de la usuaria A
C
C
Criptograma
Adversario
Se cifra con la clave
privada de la emisora
EA
M
Usuario B
protegidas
Integridad y
Autenticidad
C = DA(M)
M = EA(C) = EA(DA(M))
EA y DA son inversos
Cifrado y Firma Digital con Clave Pública
clave privada
de A
M
clave pública
de B
DDAA
EB
C
clave privada clave pública
de B
de A
DDBB
Usuaria A
EA
M
Usuario B
Confidencialidad
Integridad y
Autenticidad
C = EB(DA(M))
Cifrado y firma digital del mensaje
M = EA(DB(C))
Verificación de firma y descifrado
Firma RSA
A
Mi
firma
Fi≡MidA (mod nA)
B
Fi
verificación
Mi≡FieA (mod nA)
128
firma
con dA=103
2≡128103 (mod 143)
2
verificación
con eA=7
128≡27 (mod 143)
Firma Incluyendo Función Hash
P. Caballero Gil
Función Hash
Compresión:
Dado un
mensaje x de
longitud
arbitraria, su
valor hash h(x)
normalmente
tiene una
longitud menor
fija.
✓También se usa para comprobar la integridad
P. Caballero Gil
Firma Digital Estándar
• DSA (Digital Signature Algorithm) es un algoritmo de
firma digital basado en el problema del logaritmo
discreto.
• En 1991 fue propuesto y en 1994 se eligió estándar
de firma digital en EEUU, pasando a llamarse DSS
(Digital Signature Standard).
• Requiere mucho más tiempo que la firma RSA.
• Fases:
1 Generación de claves
2 Firma
3 Verificación
Firma Digital DSS
B publica:
• un número primo pB de L bits, donde 512 ≤ L ≤ 1024 y L es divisible por 64.
•
un número primo qB de 160 bits, tal que pB−1 = qBz, donde z es algún número natural.
•
el número a = hz (mod pB) donde h es un número primo tal que 1 < h < pB−1
Escoge secretos b y k:
b < qB-1 y k < qB
Calcula
Calcula:
w=sB-1 (mod qB)
yB=ab (mod pB)
u=H(M)*w (mod qB)
rB=(ak mod pB)mod qB
v=rB*w (mod qB)
-1
sB=(H(M)+b*rB)k mod qB
(rB,sB)
r’=((au*yBvmod pB)mod qB)
Verifica que r’=rB
ECDSA
Elliptic Curve Digital Signature Algorithm
• Es la modificación elíptica del DSA.
• El tamaño de las claves es inferior, pero tiene la misma seguridad
que las firmas DSA y RSA.
Generación de claves
–
Elija una curva elíptica E.
–
Elija un punto P (que pertenezca a E) de orden n.
–
Elija aleatoriamente un número d en el intervalo [1, n - 1].
–
Calcule Q = dP.
–
d será la clave privada.
Firma
–
Q será la clave pública.
Seleccione un número k de forma aleatoria.
Calcule kP = (x1,y1).
Calcule r = x1 mod n. Si r = 0 regresa al primer paso.
Calcule (k-1) mod n.
Calcule s = k-1(H(m) + dr) mod n. Si s = 0 regrese al primer paso.
La firma del mensaje m son los números r y s.
P. Caballero Gil
Verificación
Verifique que r y s estén dentro del rango [1,n - 1].
Calcule w = s-1 mod n.
Calcule u1 = H(m)w mod n.
Calcule u2 = r·w mod n.
Calcule u1P + u2Q = (x0,y0)
Calcule v = x0 mod n
La firma se verifica si y solo si v = r
Función Hash MD5
• MD5 (Message-Digest Algorithm 5, Algoritmo de Resumen del Mensaje
5) es un algoritmo hash criptográfico de 128 bits ampliamente usado.
• El MD5 fue diseñado por Ronald Rivest en 1991.
• El resultado del MD5 de 128 bits es representado como un número de
32 dígitos hexadecimal.
• Se ha usado en TLS.
• Se usa en Linux para proteger las contraseñas
• Forma parte del paquete criptográfico gratuito GPG
• Se puede usar en Certificados X.509, SSL, OpenSSL, S/MIME y SET.
MD5
MD5
MD5
Seguridad de MD5
•
Se pensaba que era segura, pero se descubrieron colisiones prácticas.
• En 2004 se consiguió crear dos certificados X.509 distintos con igual hash MD5.
• En 2008, se consiguió falsificar certificados SSL usando MD5.
• Además de las colisiones, MD5 tiene otros problemas. Para una función hash
robusta debería ser muy complicado invertirla, e.d. calcular los datos que
produjeron el hash. Hace años se popularizaron las llamadas tablas rainbow con
información preprocesada sobre hashes MD5, que permiten a quien tenga acceso
a esos resúmenes, realizar el proceso inverso en un tiempo razonable.
Funciones Hash SHA
•SHA (Secure Hash Algorithm) es una familia de funciones hash de la NSA
publicadas por el NIST.
•La primera, SHA-0, fue publicada en 1993.
•En 1995 se publicó SHA-1, que es la que se usa en la firma DSS.
•Hay cuatro variantes.conocidas como SHA-2, con mayores tamaños de
salida: SHA-224, SHA-256, SHA-384, y SHA-512.
•En 2004 se publicaron varios ataques contra hashes similares a SHA-1, lo
que planteó dudas sobre su seguridad.
•SHA-0 y SHA-1 producen una salida de 160 bits de un mensaje que puede
tener un tamaño máximo de 264 bits, y es similar a MD5.
•Se ha usado en TLS, Linux, GPG y OpenSSL.
SHA-2
• Cada bloque de texto de 512 bits se divide en 4 subbloques de 128 bits.
• Los bloques de 128 bits se estructuran en 4 palabras de 32 bits (A,B,C,D).
Función Hash Estándar: SHA-3
• Función hash antes llamada Keccak, elegida en 2012 como
nueva función hash standard.
• Es compatible con SHA-2, pero su estructura interna es distinta.
Cifrado Autenticado con Datos Adicionales
AEAD
Authenticated Encryption with Additional Data
Forma de cifrado que asegura simultáneamente
la confidencialidad y la integridad de los datos.
• MAC (Message Authentication Code) es un código de autenticación de
mensaje, normalmente generado con una función hash.
• HMAC es MAC combinado con el uso de una clave secreta
Integridad en TLS
Criptosistema Híbrido Habitual
•autenticidad + integridad + confidencialidad
•clave pública + función hash + clave secreta
A
B
canal público
KRA es clave privada de A. K es clave secreta compartida. KUA es clave pública de A
TLS
•Criptoprotocolo para comunicaciones seguras por Internet.
•Se usan certificados X.509 para criptografía asimétrica en la
autentificación de las partes, y en la generación de clave
secreta compartida con la que se cifra la sesión.
•Garantiza autenticidad de participantes y confidencialidad e
integridad de la comunicación.
•La versión actual de TLS se usa con las siguientes opciones:
➢ Criptografía de clave secreta: AES y ChaCha20.
➢ Criptografía de clave pública: DH, RSA, ECDH y ECDSA.
P. Caballero Gil
TLS
•Implica una serie de fases:
1. Negociar entre las partes el algoritmo que se usará en la comunicación.
2. Intercambiar las claves públicas y autenticarlas con certificados digitales y
generar la clave secreta para la sesión.
3. Cifrar el tráfico usando un cifrado simétrico usando la clave de sesión.
P. Caballero Gil
Fuente:CCN
Related documents
Download