300 likes | 528 Views
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.
E N D
Raúl González Martínez David Sanz Llorente Ivan 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. • 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.
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).
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.
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.
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.
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.
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.
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.
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.
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)
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.
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.)
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: • Sigue procedimientos de verificación de los datos del titular y verifica que su clave pública sea realmente suya. • La clave privada de la CA se mantiene bajo medidas de seguridad
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.
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.
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
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.
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.
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" }
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
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.
Ejemplo 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.
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).
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. • ...