Issuu on Google+

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 OPER Departament. d’Arquitectura de Computadors


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 OPER Departament. d’Arquitectura de Computadors


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 OPER Departament. d’Arquitectura de Computadors


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 OPER Departament. d’Arquitectura de Computadors


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 OPER Departament. d’Arquitectura de Computadors


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 OPER Departament. d’Arquitectura de Computadors


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 OPER Departament. d’Arquitectura de Computadors


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 OPER Departament. d’Arquitectura de Computadors


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 OPER Departament. d’Arquitectura de Computadors


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 OPER Departament. d’Arquitectura de Computadors


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 OPER Departament. d’Arquitectura de Computadors


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 OPER Departament. d’Arquitectura de Computadors


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 OPER Departament. d’Arquitectura de Computadors


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 OPER Departament. d’Arquitectura de Computadors


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 OPER Departament. d’Arquitectura de Computadors


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 OPER Departament. d’Arquitectura de Computadors


Certificado X.509 v1 Ejemplo:

Una CA identifica a un certificado por su Serial Number

SEQUENCE { toBeSigned: SEQUENCE { version: 0 (v1)

DN : Distinguished Name

serialNumber: 75657

•CN : Common Name (nombre común)

signature: pkcs1-sha1WithRsaSignature

•OU : Organizational Unit (departamento)

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

•O : Organization (organización)

validity: SEQUENCE {

•C : Country (país)

notBefore: [utcTime] "000907164714Z" notAfter: [utcTime] "100907164632Z“

Periodo de validación

} subject: CN=Name Surname1, OU=Development, O=Empresa1, C=ES subjectPublicKeyInfo: "AF3FD31ABEE4C1F743D ... 0BD8F8DF7" } signatureAlgorithm: pkcs1-sha1WithRsaSignature signature: "56A376E029E97824 ... DFB19FBFAF“ }

Incluye otra secuencia ASN.1 codificada en DER

Firma digital con la clave privada de la CA emisora

Seminaris de CONCEPTES AVANÇATS DE SISTEMES OPER Departament. d’Arquitectura de Computadors


Certificado X.509 v3 Actualmente, los certificados usados son de versión 3. La única diferencia es que la secuencia toBeSigned vista anteriormente, tiene 3 campos adicionales. - issuerUID - subjectUID

Actualmente estos campos estan vacios. Se uso en la versión 2 pero daba conflictos entre sistemas diferentes.

- extensions Cada extensión se identifica unívocamente con un único oid. Está compuesta por 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 codificado en DER

Seminaris de CONCEPTES AVANÇATS DE SISTEMES OPER Departament. d’Arquitectura de Computadors


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 OPER Departament. d’Arquitectura de Computadors


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 OPER Departament. d’Arquitectura de Computadors


Jerarquía de certificación Autofirmada CA Raíz

CA 1 Sub nivel 1

CA 1 Sub nivel 2

CA 2 Sub nivel 2

Cliente

CA 2 Sub nivel 1

Cliente

Cliente

Existen raíces únicas, pero son en ambientes cerrados; por ejemplo en pagos de transacciones VISA y MasterCard se utiliza una única CA raíz.

Seminaris de CONCEPTES AVANÇATS DE SISTEMES OPER Departament. d’Arquitectura de Computadors


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 OPER Departament. d’Arquitectura de Computadors


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 OPER Departament. d’Arquitectura de Computadors


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 OPER Departament. d’Arquitectura de Computadors


Ejemplo de PKCS #10: Petición de un certificado SEQUENCE { toBeSigned: SEQUENCE { version: 0 (v1) subject: CN=Melcior, O=Reis Mags Son las extensiones subjectPublicKeyInfo: pero no se usan "AF3FFDA ...08F8DF7" en la petición de un attributes: ... certificado. signatureAlgorithm: sha1WithRsaSignature } signature: " 7767DD15200 … 3DC00F60A“ }

Seminaris de CONCEPTES AVANÇATS DE SISTEMES OPER Departament. d’Arquitectura de Computadors


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 OPER Departament. d’Arquitectura de Computadors


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 OPER Departament. d’Arquitectura de Computadors


Seguridad