CONCEPTES AVANÇATS DE SISTEMES OPERATIUS
Departament d’Arquitectura de Computadors
INTRODUCCIÓN A PKI
(Public Key Infrastructure)
(Seminaris de CASO)
Autors
Raúl González Martínez
David Sanz Llorente
Ivan Fontanals Martínez
Amenazas
Espionaje o robo: cuando se copian los datos sin que
estos hayan sido modificados de forma que el propietario
no se ha dado cuenta.
 Manipulación o modificación: cuando se ha modificado el
contenido de los datos.
 Falsificación o suplantación: cuando se ha manipulado la
autoría del autor.
 Repudio: esta amenza la sufre quién recibe los datos,
cuando el autor de éstos dice no haberlos escrito nunca.

Seminaris de CONCEPTES AVANÇATS DE SISTEMES OPERATIUS
Departament. d’Arquitectura de Computadors - UPC
2
Medidas
Para evitar el efecto de las anteriores amenazas, se pueden
adoptar dos tipos de medidas:

Medidas físicas: encerrar los datos en alguna caja fuerte.

Medidas lógicas: la criptografía.
La criptografía puede dividirse a su vez en dos subgrupos:

Criptografia de clave simétrica.

Criptografia de clave pública (o asimétrica).
Seminaris de CONCEPTES AVANÇATS DE SISTEMES OPERATIUS
Departament. d’Arquitectura de Computadors - UPC
3
Herramientas de la Criptografía
Cifrado: permite proteger los datos contra el espionaje.
 Resumen o hash: permite la protección de la integridad de
los datos contra la manipulación.
 La firma: permite la verificación de la autoría de los datos
protegiéndolos contra la falsificación o el repudio de autoría.
Una vez configurada las herramientas criptográficas, pueden
utilizarse para identificar a usuarios: la certificación o
Infraestructura de clave pública o PKI.

Seminaris de CONCEPTES AVANÇATS DE SISTEMES OPERATIUS
Departament. d’Arquitectura de Computadors - UPC
4
Clave Simétrica (I)



Utiliza una clave K para los procesos de cifrado y descifrado:
P = e (k,M) ; M = d (k,P)
Al tener únicamente una clave que es pública, esta debe ser
intercambiada a través de un canal seguro.
Dos tipos de cifrado:
Algoritmos de cifrado de flujo (RC4):
P = e (k,M) = k xor M
M = d (k,P) = k xor P
donde k es una clave de igual longitud que M generada a partir de
una semilla.
Algoritmos de cifrado de bloque (3DES): trabaja sobre bloques de
entrada produciendo bloques del mismo tamaño dependiendo de la
clave de cifrado.
Seminaris de CONCEPTES AVANÇATS DE SISTEMES OPERATIUS
Departament. d’Arquitectura de Computadors - UPC
5
Clave Simetrica (II)



Ataques contra el cifrado:
Criptoanálisis: Analizando la secuencia P.
Fuerza Bruta: Probando todas las combinaciones de la clave k.
Actualmente las claves tienen entre 112 y 168 bits, lo que implica que
para descifrarlos es necesario 1,6*1017 años.
Además incrementando un bit de la clave, dobla el espacio y por
tanto el tiempo para encontrar la clave correcta.
El hash permite obtener una secuencia de longitud fija y única para
cada mensaje.
Algoritmos de hash empleados son MD5 y SHA1.
Seminaris de CONCEPTES AVANÇATS DE SISTEMES OPERATIUS
Departament. d’Arquitectura de Computadors - UPC
6
Clave pública (I)
Utiliza dos claves para el cifrado y el descifrado, una
pública y otra privada.
P = e (Kpub,M)
M = d (Kprv,P)
 La publicación de la clave pública no compromete la
privacidad de la clave privada, puesto que no se puede
encontrar la segunda a partir de la primera.

Seminaris de CONCEPTES AVANÇATS DE SISTEMES OPERATIUS
Departament. d’Arquitectura de Computadors - UPC
7
Clave pública (II)



Cifrado:
P = e (Kpub,M)
Descifrado:
M = d (Kprv,P)
Si se aplica el mismo proceso al reves obtenemos la firma digital, la
qual permite saber que solo una persona puede haber cifrado el
mensaje M:
P = e (Kprv,M)
M = d (Kpub,P)
Ataques contra la criptografía asimétrica:
La longitud de las claves: Suelen utilizarse claves de 1024 bits, y
en algunos casos de 2048 bits.
Corrección en la aplicación de algoritmos: Toda la seguridad del
sistema se basa en el hecho de mantener protegidas las claves
privadas.
Seminaris de CONCEPTES AVANÇATS DE SISTEMES OPERATIUS
Departament. d’Arquitectura de Computadors - UPC
8
Uso práctico de cifrado y firma (I)
Proceso de cifrado:

Se genera una clave simétrica ‘K’ de forma aleatoria y con ella se cifra el
mensaje M:
P1 = e (K,M)

La clave de sesión se cifra con la clave pública del destinatario:
P2 = e (Kpub,K)
Enviamos la concatenación de P1 y P2.
Proceso de firma:

Se extrae el hash del mensaje a firmar:
H = h (M)

Se firma el hash:
P = (Kprv,H)
Se envía una concatenación de M y la firma P.
Seminaris de CONCEPTES AVANÇATS DE SISTEMES OPERATIUS
Departament. d’Arquitectura de Computadors - UPC
9
Uso práctico de cifrado y firma (II)

Cuando recibe P1 y P2 simplemente debe descifrar la clave de sesión y con
ella el resto del mensaje.

Cuando se recibe la firma, se calcula H a partir de M:
H1 = h (M)

y la clave pública del firmante se aplica sobre la firma P.
H2 = e (Kpub,P)
Ambas versiones del hash deben ser iguales:
H1 = H2 = H
Si no es así, el mensaje M ha sido manipulado o bien la firma no es válida y ha
sido realizado por otra persona.
Seminaris de CONCEPTES AVANÇATS DE SISTEMES OPERATIUS
Departament. d’Arquitectura de Computadors - UPC
10
Infraestructura de clave pública (PKI)
Introducción
 Definición de certificado
 Autoridades de Certificación
 Autoridades de Registro
 Lista de Revocaciones de Certificados (CRL’s)

Seminaris de CONCEPTES AVANÇATS DE SISTEMES OPERATIUS
Departament. d’Arquitectura de Computadors - UPC
11
Introducción
¿Cómo podemos tener la certeza de que las claves
públicas pertenecen a quien parecen pertenecer?
 PKI es una combinación de procesos, algoritmos y
estructuras de datos que permitirá asegurar la identidad de
los participantes en un intercambio de datos mediante la
utilización de la criptografía.
 La estructura de datos más importante de PKI es el
certificado.

Seminaris de CONCEPTES AVANÇATS DE SISTEMES OPERATIUS
Departament. d’Arquitectura de Computadors - UPC
12
Certificado
Es una estructura de datos que permite identificar al titular de
una clave pública.
Consta de tres campos:
 Nombre del titular del certificado
 Titular de la clave pública
 Firma de los campos previos
(La firma de los dos campos previos asegura la integridad
contra una posible manipulación no deseada.)
Seminaris de CONCEPTES AVANÇATS DE SISTEMES OPERATIUS
Departament. d’Arquitectura de Computadors - UPC
13
Autoridades de Certificación (CA)
- Son los encargados de emitir los certificados. Débe ser alguien de
confianza para los participantes.
- Las CA’s auto-firmadas, son las llamadas CA’s Raíz
- La petición de certificación la realiza el titular firmando una secuencia
de datos (generalmente es su nombre) con su clave privada. De
esta manera la CA puede comprobar si las claves son correctas.
La confianza en la CA se basa en dos factores:
1. Sigue procedimientos de verificación de los datos del titular y verifica
que su clave pública sea realmente suya.
2. La clave privada de la CA se mantiene bajo medidas de seguridad
Seminaris de CONCEPTES AVANÇATS DE SISTEMES OPERATIUS
Departament. d’Arquitectura de Computadors - UPC
14
Listas de revocación (CRLs)
Si el certificado se utiliza para cifrar la información del titular sólo podrá
utilizarse durante su período de validez; si no es así, se dice que el
certificado ha caducado.
Un certificado podrá dejar de ser válido por varias razones, como por
ejemplo si el titular ya no trabaja en la misma empresa o si la clave
privada ya no es secreta.
Cada CA sabe que tendrá que retirar algunos certificados debido a que
alguno de sus campos dejan de ser válidos, certificados revocados.
Las CRLs son las listas donde cada CA va a publicar los certificados
revocados o caducados. Dichas CRL’s contendrán el número de
certificado dentro de la CA y serán de acceso público, por ejemplo
mediante un LDAP.
Seminaris de CONCEPTES AVANÇATS DE SISTEMES OPERATIUS
Departament. d’Arquitectura de Computadors - UPC
15
Autoridades de Registro (RA)
Son los responsables de verificar los datos que se añadirán al
certificado como verificar el nombre del titular, ... de
acuerdo con una política de certificación.
Cada CA tiene una o más RAs que le proporcionan peticiones
de certificado.
La RA será la encargada de enviar la petición de certificados
a la CA una vez las comprobaciones sean correctas.
Los certificados podrán ser publicados en un servicio de
directorios como puede ser LDAP y donde todo el mundo
pueda acceder a él.
Seminaris de CONCEPTES AVANÇATS DE SISTEMES OPERATIUS
Departament. d’Arquitectura de Computadors - UPC
16
Formatos y codificación de un certificado
Certificado X.509 v1
 Certificado X.509 v3
 Certificados de una CA
 Certificados de una CRL
 Contenedores de estructuras criptográficas

Seminaris de CONCEPTES AVANÇATS DE SISTEMES OPERATIUS
Departament. d’Arquitectura de Computadors - UPC
17
Certificado X.509 v1
E jem plo:
U n a C A id en tifica a u n certificad o p or su S erial N u m b er
SEQ U EN C E {
toB eS igned: S E Q U E N C E {
version : 0 (v1)
D N : D istin gu ish ed N am e
serialN u m b er : 75657
•C N : C om m on N am e (nom bre com ún)
signature : pkcs1-sha1W ithR saS ignature
•O U : O rganizational U nit (departam ento)
issu er : C N = root, O = U O C , C = E S
•O : O rganization (organización)
validity : S E Q U E N C E {
•C : C ountry (país)
notB efore: [utcT im e ] "000907164714Z "
notA fter: [utcT im e ] "100907164632Z “
P eriodo de validación
}
su b ject: C N = N am e S urnam e1 , O U = D evelopm ent, O = E m presa1 , C = E S
su b jectP u b licK eyIn fo : "A F 3F D 31A B E E 4C 1F 743D ... 0B D 8F 8D F 7"
}
signatureA lgorithm : pkcs1-sha1W ithR saS ignature
sign atu re : "56A 376E 029E 97824 ... D F B 19F B F A F “
}
Incluye otra secuencia
A S N .1 codificada en
DER
F irm a digital con
la clave privada
de la C A em isora
Seminaris de CONCEPTES AVANÇATS DE SISTEMES OPERATIUS
Departament. d’Arquitectura de Computadors - UPC
18
Certificado X.509 v3
A ctualm ente, los certificados usados son de versión 3.
L a única diferencia es que la secuencia toB eS igned vista
anteriorm ente, tiene 3 cam pos adicionales.
- issu erU ID
- su b jectU ID
A ctualm ente estos cam pos estan vacios. S e uso en
la versión 2 pero daba conflictos entre sistem as
diferentes.
- exten sion s
C ada extensión se identifica unívocam ente con un único oid . E stá com puesta
por tres cam pos:
• extn ld : oid que la identifica.
• critical : booleano que indica la obligación a entenderla. S i no es asi,
el certificado se rechaza.
• extn V alu e: V alor de la extensión encapsulado en A S N .1 y codificado
en D E R
Seminaris de CONCEPTES AVANÇATS DE SISTEMES OPERATIUS
Departament. d’Arquitectura de Computadors - UPC
19
Certificado X.509 v3: extensiones
Extensiones más comunes:
SubjectAltName: Nombre alternativo del titular (web o e-mail del titular)
keyUsage (crítico): Indica el uso que se debe hacer de ese certificado, por
ejemplo si es para firmar, cifrar, firmar CRL’s, etc...
ExtendedKeyUsage (crítico): Similar al anterior. Microsoft lo utiliza para añadir
funcionalidades apropiadas a su sistema operativo.
netscapeCertType (crítico): Similar a KeyUsage pero implementado por
Netscape.
crlDistributionPoints (crítico): Identifica los puntos donde se podrá acceder a las
CRL’s para comprobar si el certificado ha sido revocado.
basicContraints (crítico): Indica si el certificado proviene de una CA o no. En
caso afirmativo, indica si es raiz o no.
Seminaris de CONCEPTES AVANÇATS DE SISTEMES OPERATIUS
Departament. d’Arquitectura de Computadors - UPC
20
Certificados de la Autoridad de Certificación

Los certificados de una CA versión 1, son prácticamente
idénticos al de los usuarios.

Los certificados versión 3, incluirán la extensión mencionada
antes de “basicContraints” con valor “true”.

Cuando el emisor de una CA es el mismo que el receptor,
campos Issuer y Subject respectivamente, se dice que que el
certificado es auto-firmado. En este caso estaremos hablando
de una CA raíz.

No todas las CA’s son raíz, existen también subordinadas que
disponen de un certificado firmado por una CA de nivel superior.
Seminaris de CONCEPTES AVANÇATS DE SISTEMES OPERATIUS
Departament. d’Arquitectura de Computadors - UPC
21
Jerarquía de certificación
A u to firm ad a
C A R aíz
CA 1
S u b n iv el 1
CA 1
S u b n iv el 2
CA 2
S u b n iv el 2
C lien te
CA 2
S u b n iv el 1
C lien te
C lien te
E x isten raíces ú n icas, p ero so n en
am b ien tes cerrad o s; p o r ejem p lo en
p ag o s d e tran saccio n es V IS A y
M asterC ard se u tiliza u n a ú n ica C A
raíz.
Seminaris de CONCEPTES AVANÇATS DE SISTEMES OPERATIUS
Departament. d’Arquitectura de Computadors - UPC
22
Lista de Revocaciones: CRL’s (I)
Las CRL’s disponen de un formato ASN.1. Contienen una lista de
números de serie de certificados revocados por la CA.
Ejemplo de CRL:
CRL: SEQUENCE {
toBeSigned: SEQUENCE {
version: 1 (v2)
signature: pkcs1-sha1WithRsaSignature
issuer: CN=root, O=UOC, C=es
thisUpdate: [utcTime] "000830165749Z"
nextUpdate: [utcTime] "000930165749Z"
revokedCertificates: SEQUENCE OF { revokedCertificate }
crlExtensions: SEQUENCE OF { extension }
}
signatureAlgorithm: pkcs1-sha1WithRsaSignature
signature: "56A376E029E97824 ... DFB19FBFAF"
}
Seminaris de CONCEPTES AVANÇATS DE SISTEMES OPERATIUS
Departament. d’Arquitectura de Computadors - UPC
23
Lista de Revocaciones: CRL’s (II)
revokedCertificate: SEQUENCE {
certificate: 4
revocationDate: [utcTime] "000830165749Z"
crlEntryExtensions: SEQUENCE OF { extension }
}
extension: SEQUENCE OF {
extnId: id-ce-reasonCode
critical: false
extnValue: (enum) certificateHold
}
•Suspendido o inhabilitado
•No especificado
•Clave comprometida
•CA comprometida
•Modificación de afiliciación
•Obsoleto
•Fin de opeativilidad
Seminaris de CONCEPTES AVANÇATS DE SISTEMES OPERATIUS
Departament. d’Arquitectura de Computadors - UPC
24
Contenedores de estructuras criptográficas:
PKCS (Public Key Criptograhic Standards)
Todas las estructuras que veremos a continuación, son secuencias en ASN.1 y
codificación DER o BER.
Tanto DER como BER son codificaciones binarias.
Uno de los usos de los PKCS son las peticiones de certificados.
Básicamente existen dos maneras de pedir un certificado:
1- El cliente genera su clave pública y privada y manda a validar su certificado
a una CA. En este caso se usa PCSK #10.
2- El cliente pide a una CA un certificado. En este caso es la CA quien genera
el par de claves y se lo envía con un PKCS #12. Este contenedor ira protegido
con un password para que nadie pueda ver la clave privada emitida.
Seminaris de CONCEPTES AVANÇATS DE SISTEMES OPERATIUS
Departament. d’Arquitectura de Computadors - UPC
25
Ejemplo de PKCS #10: Petición de un certificado
SEQUENCE {
toBeSigned: SEQUENCE {
version: 0 (v1)
Son las
extensiones
pero no se usan
...08F8DF7"
en la petición
de un
certificado.
subject: CN=Melcior, O=Reis Mags
subjectPublicKeyInfo: "AF3FFDA
attributes: ...
signatureAlgorithm: sha1WithRsaSignature
}
signature: " 7767DD15200 … 3DC00F60A“
}
Seminaris de CONCEPTES AVANÇATS DE SISTEMES OPERATIUS
Departament. d’Arquitectura de Computadors - UPC
26
Otros PKCS:
PKCS #7: Contenedores de datos no estructurados.
Usos:
•Datos firmados no incluidos. (No contiene los datos que firma)
•Datos firmados incluidos.
•Datos cifrados.
•Datos cifrados y firmados.
•Cadenas de certificación.
•Certificados individuales. (por ejemplo que responden a una petición
de certificación).
Seminaris de CONCEPTES AVANÇATS DE SISTEMES OPERATIUS
Departament. d’Arquitectura de Computadors - UPC
27
Otros PKCS ...
•PKCS #1: define el formato de la clave privada en RSA.
•PKCS #5: define un contenedor de información genérica para cifrar
simétricamente desde una contraseña.
•PKCS #8: especifica un contenedor para claves privadas genéricas
a las cuales puede aplicarse la criptografía del PKCS #5.
• ...
Seminaris de CONCEPTES AVANÇATS DE SISTEMES OPERATIUS
Departament. d’Arquitectura de Computadors - UPC
28
Descargar

Document