INTRODUCCIÓN A PKI ( Public Key Infrastructure )

28
CONCEPTES AVANÇATS DE SISTEMES OPERATIUS Departament d’Arquitectura de Computadors (Seminaris de CASO) Autors INTRODUCCIÓN A PKI INTRODUCCIÓN A PKI ( ( Public Key Infrastructure Public Key Infrastructure ) ) Raúl González Martínez David Sanz Llorente Ivan Fontanals Martínez

description

Raúl González Martínez D avid Sanz Llorente Iv a n Fontanals Martínez. INTRODUCCIÓN A PKI ( Public Key Infrastructure ). 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. - PowerPoint PPT Presentation

Transcript of INTRODUCCIÓN A PKI ( Public Key Infrastructure )

CONCEPTES AVANÇATS DE SISTEMES OPERATIUS Departament d’Arquitectura de Computadors

(Seminaris de CASO)

Autors

INTRODUCCIÓN A PKIINTRODUCCIÓN A PKI((Public Key InfrastructurePublic Key Infrastructure))

Raúl González Martínez

David Sanz Llorente

Ivan Fontanals Martínez

Seminaris de CONCEPTES AVANÇATS DE SISTEMES OPERATIUS

Departament. d’Arquitectura de Computadors - UPC

2

AmenazasAmenazas 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

3

MedidasMedidas

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

4

Herramientas de la CriptografíaHerramientas 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

5

Clave Simétrica (I)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 MM = 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

6

Clave Simetrica (II)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

7

Clave pública (I)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

8

Clave pública (II)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

9

Uso práctico de cifrado y firma (I)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

10

Uso práctico de cifrado y firma (II)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

11

Introducción Definición de certificado Autoridades de Certificación Autoridades de Registro Lista de Revocaciones de Certificados (CRL’s)

Infraestructura de clave pública (PKI)Infraestructura de clave pública (PKI)

Seminaris de CONCEPTES AVANÇATS DE SISTEMES OPERATIUS

Departament. d’Arquitectura de Computadors - UPC

12

IntroducciónIntroducció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

13

CertificadoCertificado

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

14

Autoridades de Certificación (CA)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

15

Listas de revocación (CRLs)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

16

Autoridades de Registro (RA)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

17

Formatos y codificación de un certificadoFormatos 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

18

Certificado X.509 v1Certificado X.509 v1

SEQUENCE {

toBeSigned: SEQUENCE {

version: 0 (v1)

serialNumber: 75657

signature: pkcs1-sha1WithRsaSignature

issuer: CN=root, O=UOC, C=ES

validity: SEQUENCE {

notBefore: [utcTime] "000907164714Z"

notAfter: [utcTime] "100907164632Z“

}

subject: CN=Name Surname1, OU=Development, O=Empresa1, C=ES

subjectPublicKeyInfo: "AF3FD31ABEE4C1F743D ... 0BD8F8DF7"

}

signatureAlgorithm: pkcs1-sha1WithRsaSignature

signature: "56A376E029E97824 ... DFB19FBFAF“

}

Ejemplo:

Firma digital conla clave privadade la CA emisora

Periodo de validación

Incluye otra secuenciaASN.1 codificada enDER

DN : Distinguished Name

•CN : Common Name (nombre común)

•OU : Organizational Unit (departamento)

•O : Organization (organización)

•C : Country (país)

Una CA identifica a un certificado por su Serial Number

Seminaris de CONCEPTES AVANÇATS DE SISTEMES OPERATIUS

Departament. d’Arquitectura de Computadors - UPC

19

Certificado X.509 v3Certificado X.509 v3Actualmente, los certificados usados son de versión 3.

La única diferencia es que la secuencia toBeSigned vistaanteriormente, tiene 3 campos adicionales.

- issuerUID

- subjectUID

- extensions

Actualmente estos campos estan vacios. Se uso enla versión 2 pero daba conflictos entre sistemasdiferentes.

Cada extensión se identifica unívocamente con un único oid. Está compuestapor tres campos:

• extnld : oid que la identifica.

• critical : booleano que indica la obligación a entenderla. Si no es asi,el certificado se rechaza.

• extnValue: Valor de la extensión encapsulado en ASN.1 y codificadoen DER

Seminaris de CONCEPTES AVANÇATS DE SISTEMES OPERATIUS

Departament. d’Arquitectura de Computadors - UPC

20

Certificado X.509 v3: extensionesCertificado X.509 v3: extensionesExtensiones 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

21

Certificados de la Autoridad de CertificaciónCertificados 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

22

Jerarquía de certificaciónJerarquía de certificación

C A 1Sub n ivel 1

C A 2Sub n ivel 1

C A 1Sub n ivel 2

C lien te

C A R aíz

C lien te

A utofirm ada

C A 2Sub n ivel 2

C lien te

E xisten raíces únicas, pero son enam bientes cerrados; por ejem plo enpagos de transacciones V ISA yM asterC ard se u tiliza una única C Araíz.

Seminaris de CONCEPTES AVANÇATS DE SISTEMES OPERATIUS

Departament. d’Arquitectura de Computadors - UPC

23

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"

}

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.

Seminaris de CONCEPTES AVANÇATS DE SISTEMES OPERATIUS

Departament. d’Arquitectura de Computadors - UPC

24

revokedCertificate: SEQUENCE {

certificate: 4

revocationDate: [utcTime] "000830165749Z"

crlEntryExtensions: SEQUENCE OF { extension }

}

extension: SEQUENCE OF {

extnId: id-ce-reasonCode

critical: false

extnValue: (enum) certificateHold

}

Lista de Revocaciones: CRL’s (II)

•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

25

Contenedores de estructuras criptográficas:Contenedores de estructuras criptográficas:PKCS (Public Key Criptograhic Standards)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

26

Ejemplo de PKCS #10: Petición de un certificadoEjemplo de PKCS #10: Petición de un certificado

SEQUENCE {

toBeSigned: SEQUENCE {

version: 0 (v1)

subject: CN=Melcior, O=Reis Mags

subjectPublicKeyInfo: "AF3FFDA ...08F8DF7"

attributes: ...

signatureAlgorithm: sha1WithRsaSignature

}

signature: " 7767DD15200 … 3DC00F60A“

}

Son las extensiones pero no se usan en la petición de un certificado.

Seminaris de CONCEPTES AVANÇATS DE SISTEMES OPERATIUS

Departament. d’Arquitectura de Computadors - UPC

27

Otros PKCS: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

28

Otros PKCS ...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.

• ...