Tema 9.docx
Document Details
Uploaded by Oganesson93
Universidad de Valladolid
Tags
Full Transcript
**Tema 9 - Infraestructura de clave pública. Claves públicas y privadas. Certificados X.509. Autoridades de certificación.** **Autoridades de registro. Aplicaciones de firma y cifrado.** Una infraestructura de Clave Pública es un conjunto de protocolos, servicios y estándares que soportan aplicaci...
**Tema 9 - Infraestructura de clave pública. Claves públicas y privadas. Certificados X.509. Autoridades de certificación.** **Autoridades de registro. Aplicaciones de firma y cifrado.** Una infraestructura de Clave Pública es un conjunto de protocolos, servicios y estándares que soportan aplicaciones basadas en criptografía de clave pública. La PKI se utiliza para garantizar la autenticidad, la confidencialidad e integridad de la información y es esencial para muchas aplicaciones de seguridad en internet, como la autenticación de usuarios, la firma digital, la encriptación de datos y la protección de transacciones en línea. Lo que hace especial a la PKI sobre otros métodos de cifrado, es que puede integrar los certificados digitales junto a la criptografía de la clave pública y las diferentes autoridades de certificación dentro de una misma plataforma. **Claves públicas y privadas** La criptografía de claves simétricas se emplea una sola clave para cifrar y descifrar el mensaje. La criptografía de claves asimétricas o de clave pública se emplean dos claves: - [Clave pública:](https://www.cert.fnmt.es/curso-de-criptografia/criptografia-de-clave-asimetrica/cifrado-de-clave-publica) será conocida por todos los usuarios. - [Clave privada:](https://www.cert.fnmt.es/curso-de-criptografia/criptografia-de-clave-asimetrica/firma-digital) será custodiada por su propietario y no se dará a conocer a ningún otro. Esta pareja de claves es complementaria: lo que cifra una SÓLO lo puede descifrar la otra y viceversa. Estas claves se obtienen mediante métodos matemáticos complicados (algoritmos de clave pública) de forma que, por razones de tiempo de cómputo, es imposible conocer una clave a partir de la otra. En la actualidad se utilizan algoritmos RSA (basada en la factorización de números primos) o algoritmos de curva elíptica para ello. La clave pública se utiliza para cifrar la información y se puede compartir públicamente. La clave privada, en cambio, se utiliza para descifrar la información y se mantiene en secreto. Solo el propietario de la clave privada debe tener acceso a ella, ya que se podría permitir que terceros accedan a la información protegida. Cuando un remitente desea enviar un mensaje cifrado a un destinatario, utiliza la clave pública del destinatario para cifrar el mensaje. Una vez cifrado, solo el destinatario puede descifrar el mensaje utilizando su clave privada. De esta manera, incluso si el mensaje es interceptado por terceros, solo el destinatario tendrá acceso a su contenido. La criptografía de clave pública también se utiliza en la autenticación de usuarios y la firma digital de documentos. [Algoritmos de clave pública] Se basan en funciones matemáticas que son simples de calcular en una dirección, pero muy difíciles de revertir. [RSA] El más popular es el algoritmo RSA. La seguridad de este algoritmo radica en el problema de la factorización de números enteros. Los mensajes enviados se representan mediante números, y el funcionamiento se basa en el producto, conocido, de dos números primos grandes elegidos al azar y mantenidos en secreto. Actualmente estos primos son muy grandes y se prevé que su tamaño siempre crezca con el aumento de la capacidad de cálculo de los ordenadores. El algoritmo consta de tres pasos: generación de claves, cifrado y descifrado. Con este algoritmo se podrá utilizar para el cifrado y para la firma digital. Además, se puede utilizar para firma digital. [Criptografía de curva elíptica (ECC)/algoritmos ECC] Ofrece una fuerza criptográfica equivalente a los algoritmos RSA con tamaños de clave mucho más bajos. Utiliza las propiedades matemáticas de las curvas elípticas ECC. Uno de los algoritmos basados en esta criptografía son la firma digital con curvas elípticas (ECDSA). [Firma digital] Una firma electrónica es el cifrado con la clave privada de la huella digital de un documento. La huella digital se obtiene aplicando un algoritmo matemático a un contenido. Se emplean algoritmos HASH, que generan cadenas de caracteres a partir del contenido de un archivo, el formato de estas cadenas puede ser hexadecimal, base64 o binario\...Y siempre tendrán el mismo tamaño. Tipos de algoritmos HASH: Familia SHA o MD5. Estos algoritmos tienen dos características fundamentales: a. No existe la posibilidad de volver a obtener el contenido original partiendo de la huella digital generada. b. Si se cambia el contenido, la huella digital que se obtiene es diferente. Estas dos características garantizan la integridad del mensaje. Si se cambia el contenido del mensaje, el que verifica la firma lo va a saber. Para firmar un documento: a. Se obtiene una huella digital del documento digital que se quiere firmar. Esta huella digital garantiza que dos documentos diferentes generan diferentes huellas digitales y dos documentos iguales siempre generan la misma huella digital. b. Se realiza el cifrado (mediante algoritmos matemáticos) de la huella digital con la clave privada del certificado. De esta forma se garantiza la autenticidad ya que es el propietario del certificado el único que ha podido realizar este cifrado. EL resultado de un documento firmado es la encapsulación de la siguiente información: - Documento original. - Huella digital cifrada con la clave privada. - Parte pública del certificado. Para verificar una firma digital de un documento firmado: a. Se descifra la huella digital, cifrada con la clave privada, mediante la clave pública del certificado. b. Se obtiene la huella digital del documento original. c. Se comparan las dos huellas digitales. Si coinciden, la firma es correcta (hay integridad, el documento no ha sido modificado). d. Se consulta a la autoridad de certificación emisora por la validez del certificado y, si es válido, la firma además de correcta es válida (queda garantizada la autenticidad del origen de la firma). Con este sistema conseguimos: - Autenticación: la firma digital es equivalente a la firma física de un documento. - Integridad: el mensaje no podrá ser modificado. - No repudio en origen: el emisor no puede negar haber enviado el mensaje. **Comunicaciones seguras SSL/TLS** Para poder establecer comunicaciones seguirás entre navegadores de clientes y servidor, el servidor del sitio debe tener un certificado digital. En grosso modo podemos simplificar la comunicación segura entre cliente y servidor: 1. La comunicación se cifra con un algoritmo de clave simétrica porque es mucho más efectivo que los algoritmos de clave asimétrica. Esto significa que cliente y servidor deben compartir la misma clave. 2. Para intercambiar la clave y no sea interceptada, lo que se hace es que el cliente cifra la clave simétrica con la clave pública del servidor. **certificados X.509** Un certificado digital es un documento digital mediante el cual un tercero de confianza (una CA) garantiza la vinculación entre la identidad de un usuario, equipo, servicio o dispositivo y su par de claves. Para ello la CA firma digitalmente ese certificado. Los certificados contienen la clave pública del firmante del certificado. No contienen la clave privada del firmante, la cual se debe almacenar de forma segura. Si bien existen variados formatos para certificados digitales, los más empleados siguen el estándar ITU-T X.509. El estándar X.509 especifica, entre otras cosas, los formatos estándar para certificados de clave pública, listas de revocación de certificados y un algoritmo de validación de árboles de certificación. La estructura de un certificado digital X.509 depende del tipo de certificado y de la versión. versión 1 - Versión: Número entero que identifica el número de versión del certificado. - Número de serie: Número entero que representa el número único de cada certificado emitido por una entidad de certificación (CA). - Signature: Identificador del algoritmo criptográfico utilizado por la CA para firmar el certificado. El valor incluye tanto el identificador del algoritmo como los parámetros opcionales que usa ese algoritmo, si procede. - Emisor: Nombre distintivo (DN) de la entidad de certificación que emite el certificado. - Validez: Período de tiempo inclusivo durante el que el certificado es válido. - Subject: Nombre distintivo (DN) del propietario del certificado. - Información de clave pública del firmante: Clave pública propiedad del firmante del certificado más el algoritmo de clave pública utilizado (RSA, DSA, or Diffie-Hellman) Versión 2 - Identificador único del emisor: Identificador único que representa la entidad de certificación emisora, tal y como se define en la entidad de certificación emisora. - Id. único del firmante: Un identificador único que representa al firmante del certificado, tal y como lo define la entidad de certificación emisora. Versión 3 - Extensiones: Colección de extensiones de certificado estándar y específicas de Internet. Para obtener más información sobre las extensiones de certificado disponibles para los certificados X.509 v3, consulte Extensiones de certificado. Tipos de certificados Según diferentes criterios, si lo hacemos por el tipo de validación que se hacen sobre ellos: - Certificados de Clase 1: corresponde a los certificados más fáciles de obtener e involucran pocas verificaciones de los datos que figuran en él: sólo el nombre y la dirección de correo electrónico del titular. - Certificados de Clase 2: en los que la Autoridad Certificadora comprueba además el Documento de identidad o permiso de conducir que incluya fotografía, el número de la Seguridad Social y la fecha de nacimiento. - Certificados de Clase 3: en la que se añaden a las comprobaciones de la Clase 2 la verificación de crédito de la persona o empresa mediante un servicio del tipo Equifax, Datacredito. - Certificados de Clase 4: que a todas las comprobaciones anteriores suma la verificación del cargo o la posición de una persona dentro de una organización. Si se hacen por la finalidad: - Certificados SSL para cliente: mediante el protocolo Secure Socket Layer, dirigido a una persona física. - Certificados SSL para servidor: usados para identificar a un servidor ante un cliente en comunicaciones mediante SSL. - Certificados S/MIME : usados para servicios de correo electrónico firmado y cifrado, que se expiden generalmente a una persona física. - Certificados para la firma de código: usados para identificar al autor de ficheros o porciones de código en cualquier lenguaje de programación que se deba ejecutar en red (Java, JavaScript, CGI, etc). - Certificados para AC (Autoridades Certificadoras): se usa por el software cliente para determinar si pueden confiar en un certificado cualquiera, accediendo al certificado de la AC y comprobando que ésta es de confianza. **Formatos de los certificados** Diagrama Descripción generada automáticamente **[Formato PEM]** **La mayoría de las CA (Autoridad de certificación) proporcionan certificados en formato PEM en archivos codificados ASCII Base64. Los tipos de archivo de certificado pueden ser.pem,.crt,.cer o.key.** **[Key]** **Los ficheros KEY son los que contienen la parte privada del certificado.** **El fichero tendrá un contenido semejante a esto:** **\-\-\-\--BEGIN PRIVATE KEY\-\-\-\--** **//Nuestra KEY** **\-\-\-\--END PRIVATE KEY\-\-\-\--** **[CRT / CERT]** **Este fichero es el que contiene la parte pública y que al unirse al KEY, genera el certificado completo.** **\-\-\-\--BEGIN CERTIFICATE\-\-\-\--** **\-\-\-\-- CONTENIDO \-\-\-\--** **\-\-\-\--END CERTIFICATE\-\-\-\--** **[PEM]** **Los ficheros PEM son un standard para contener certificados, un único PEM puede contener múltiples secciones** **\-\-\-\--BEGIN PRIVATE KEY\-\-\-\--** **//Nuestra KEY** **\-\-\-\--END PRIVATE KEY\-\-\-\--** **\-\-\-\--BEGIN CERTIFICATE\-\-\-\--** **//Certificado 1** **\-\-\-\--END CERTIFICATE\-\-\-\--** **\-\-\-\--BEGIN CERTIFICATE\-\-\-\--** **//Certificado 2** **\-\-\-\--END CERTIFICATE\-\-\-\--** **De esta manera, se puede usar el mismo fichero para múltiples ubicaciones o usos (Apache, F5, etc)** **[Formato PKCS \# 7]** **El certificado PKCS \# 7 utiliza la codificación ASCII Base64 con la extensión de archivo.p7b o.p7c. Solo los certificados se pueden almacenar en este formato, no las claves privadas. Los certificados P7B están contenidos entre las declaraciones \"\-\-\-\-- BEGIN PKCS7 \-\-\-\--\" y \"\-\-\-\-- END PKCS7 \-\-\-\--\".** **[Formato DER]** **Los certificados DER están en forma binaria, contenidos en archivos.der o.cer.** - **.der: contiene la clave privada** - **.cer: contiene la clave pública** **[Formato PKCS \# 12]** **Los certificados PKCS \# 12 están en forma binaria, contenidos en archivos.pfx o.p12. Contienen la parte pública y la parte privada de un certificado.** **Autoridades de Certificación (CA, por sus siglas en inglés)** La manera en que se puede confiar en el certificado de un usuario con el que nunca hemos tenido ninguna relación previa es mediante la confianza en terceras partes. La idea consiste en que dos usuarios puedan confiar directamente entre sí, si ambos tienen relación con una tercera parte ya que ésta puede dar fe de la fiabilidad de los dos. Algunos de los servicios ofrecidos por las CA son los siguientes: - Emisión de los nuevos certificados de clave pública. Para garantizar la integridad y autenticidad del certificado, la CA firma digitalmente el certificado con su propia clave privada. - Revocación de certificados: cancelación de un certificado previamente emitido. - Publicación de la clave pública de los usuarios. - Recuperación de claves: posibilitación de recuperar las claves de un usuario. - Evaluación de la confianza: determinación sobre si un certificado es válido y qué operaciones están permitidas para dicho certificado. Existe una jerarquía de CA, incluyendo: 1. CA raíz: Autoridad de certificación de primer nivel. Esta CA sólo emite certificados para sí misma y sus CA Subordinadas. 2. CA Subordinadas: Autoridades de Certificación subordinadas de \"AC Raíz\". Su función es la emisión de certificados para los titulares de un tipo de certificado. Una de las tareas de las autoridades de certificación es el mantenimiento de las listas de revocación de certificados: [Listas de revocación de certificados] Cuando una autoridad de certificación emite un certificado digital, lo hace con un periodo máximo de validez que oscila entre tres y cinco años. El objetivo de este periodo de caducidad es obligar a la renovación del certificado para adaptarlo a los cambios tecnológicos. Así se disminuye el riesgo de que el certificado quede comprometido por un avance tecnológico. La fecha de caducidad viene indicada en el propio certificado digital. Sin embargo, existen otras situaciones que pueden invalidar el certificado digital aún cuando no ha caducado, de manera inesperada: - El usuario del certificado cree que su clave privada ha sido robada. - Desaparece la condición por la que el certificado fue expedido. Por ejemplo, el cambio de apoderado de una entidad jurídica. - El certificado contiene información errónea o información que ha cambiado. - Una orden judicial. - Etc. Por tanto, debe existir algún mecanismo para comprobar la validez de un certificado antes de su caducidad. Las CRL son uno de estos mecanismos. Una CRL es una lista de números de serie de certificados digitales, revocados por una autoridad de certificación concreta. Dicha lista está firmada digitalmente por la propia autoridad de certificación. Cuando un tercero desea comprobar la validez de un certificado debe descargar una CRL actualizada desde los servidores de la misma autoridad de certificación que emitió el certificado en cuestión. A continuación, comprueba la autenticidad de la lista gracias a la firma digital de la autoridad de certificación. Después debe comprobar que el número de serie del certificado que se está verificando, se encuentra en la lista. En caso afirmativo, no se debe aceptar el certificado como válido. Estrictamente hablando, no es necesario descargar una CRL cada vez que se verifica un certificado. Solamente es necesario cuando no se dispone de la CRL de una entidad de certificación concreta, y cuando dicha lista tiene una cierta antigüedad que aconseja su renovación. La única ventaja de las CRL es que se pueden consultar sin necesidad de una conexión de datos permanente con cada autoridad de certificación. Basta establecer dicha conexión con cierta periodicidad para descargar las CRL actualizadas. Sin embargo, las desventajas de las CRL son varias: - Existe el peligro de que un certificado haya sido revocado, pero no aparezca en la CRL del tercero que comprueba su validez. Esto se debe a que la CRL utilizada podría no estar actualizada. - Si existe responsabilidad legal por el uso de un certificado revocado, no hay forma de demostrar quién es el culpable: el tercero por no comprobar la validez, o la autoridad de certificación por no incluirlo en la CRL a tiempo. - Las CRL solamente crecen en tamaño, resultando ineficientes para su tratamiento directo. Mediante el protocolo Online Certificate Status Protocol, OCSP, se define un método para determinar el estado de revocación de un certificado digital X.509 usando otros medios que no sean el uso de CRL (Listas de Revocación de Certificados). **Las Autoridades de Registro (RA, por sus siglas en inglés)** son entidades responsables de verificar la identidad del solicitante antes de emitir un certificado digital y de proporcionar asistencia en la solicitud y emisión de certificados. La función principal de una RA es validar la identidad del solicitante antes de emitir un certificado. Esto puede implicar la verificación de la identidad del solicitante mediante la comprobación de documentos de identificación, el registro de huellas dactilares y otras medidas de seguridad. Una vez que se ha verificado la identidad del solicitante, la RA puede proceder a solicitar y emitir el certificado en nombre de la Autoridad de Certificación (CA). Otra función importante de las RA es proporcionar asistencia en la solicitud y emisión de certificados. Las RA pueden ofrecer servicios de soporte técnico, ayuda para la instalación y configuración de certificados, y pueden proporcionar formación y educación para ayudar a los usuarios a comprender el uso correcto de los certificados. En la Universidad de Valladolid la autoridad de registro se encuentra en los dos registros de la Universidad. Las **aplicaciones de firma y cifrado** son herramientas que utilizan la criptografía para garantizar la confidencialidad, integridad y autenticidad de la información. A continuación, se describen algunas de las principales aplicaciones de firma y cifrado: 1. Firma de documentos digitales: las aplicaciones de firma digital permiten a los usuarios firmar documentos electrónicos con su certificado digital, lo que garantiza la autenticidad y la integridad del documento. Existen algunos programas de uso cotidiano, por ejemplo, Adobe Acrobat o Microsoft Word, que permiten firmar el mismo documento que se genera. - Validación de firmas electrónicas - Generación de firmas electrónicas en múltiples formatos - Visualización de firmas con la ayuda del Visor 2. Correo electrónico seguro: los programas de correo electrónico seguro utilizan cifrado de extremo a extremo para garantizar la confidencialidad de los mensajes y la autenticidad del remitente. Los usuarios pueden firmar digitalmente sus correos electrónicos para demostrar que provienen de ellos y no han sido alterados durante la transmisión. 3. Cifrado de archivos: los programas de cifrado de archivos permiten a los usuarios cifrar y proteger archivos y carpetas sensibles. Los archivos cifrados solo pueden ser desbloqueados por el usuario que posee la clave privada, lo que garantiza la confidencialidad de los datos. 4. VPNs: las redes privadas virtuales (VPN) utilizan cifrado para proteger la comunicación entre dos dispositivos. Las VPN son útiles para garantizar la privacidad y la seguridad en las comunicaciones en línea, especialmente cuando se utilizan redes inalámbricas públicas o no seguras. Principio del formulario Principio del formulario