150 likes | 310 Views
Seguridad y Uso de Certificados Digitales en GRID. Rafael Marco (IFCA). Todos conocemos los Certificados Digitales. Certificados Digitales: ¿por qué? ¿para qué?. Los Certificados Digitales facilitan: Autentificación (como un documento de identidad) Firma Digital
E N D
Seguridad y Uso de Certificados Digitales en GRID Rafael Marco (IFCA)
Todos conocemos los Certificados Digitales Rafael Marco de Lucas (IFCA)
Certificados Digitales: ¿por qué? ¿para qué? • Los Certificados Digitales facilitan: • Autentificación (como un documento de identidad) • Firma Digital • Comunicación segura. Encriptación • Software: OpenSSL • openssl <ca> <req> <x509> <crl> <verify> … • Acceso a Web, LDAP, … seguros • Grid Security Infrastructure (GSI) Rafael Marco de Lucas (IFCA)
PKI y CERTIFICADOS. Descripción General • Generación de par de claves: Clave Pública + Clave Privada • La Clave Pública es accesible por todo el mundo • La Clave Privada sólo es accesible por su propietario • Claves simétricas: lo que se encripta con una sólo se puede desencriptar usando la otra • La clave pública • permite comprobar que un mensaje ha sido encriptado usando la clave privada asociada, a la cual sólo tiene acceso su propietario • si la conocemos de forma fiable, permite comprobar la identidad (autentificación) • esto funciona bien entre conocidos que intercambian claves • pero no puede escalar a miles de usuarios que además no se conocen personalmente • Autoridad de Certificación • Se crea un par de claves pública+privada centrales • Todos disponemos de esta clave pública, y confiamos en su buen uso • Para garantizar la autenticidad de las claves públicas de los usuarios/… , éstas son firmadas usando la clave central, obteniendo lo que se suele llamar un “Certificado Digital” asociado a la clave privada, en el que se incluye una etiqueta que identifica el certificado y mas informacion extra como la fecha de caducidad, … • Certificado Digital = Public Key + Information about the principal + CA signature (x509 format) • Luego si confiamos en una CA • podemos confiar en el certificado de un usuario (su clave pública firmada por la CA) • y usar ésta para autentificar al propietario de la clave privada asociada. • La solución es escalable a miles de usuarios desconocidos • Pregunta: entonces que diferencia hay entre usar PGP y CAs ? • What is a Digital Signature ? http://www.youdzone.com/signature.html Rafael Marco de Lucas (IFCA)
Autoridades de Certificación • CAs comerciales • CAs académicas • CAs con valor legal en España Rafael Marco de Lucas (IFCA)
Autoridades de Certificación • Jerarquía de Certificación • CAs Raíz (Root CAs) (self signed) • CAs encadenadas (Chainned CAs) • Estructura escalable • Problema técnico. Globus. • CRL – Lista de certificados revocados • Creación de una CA • Sencillo desde el punto de vista técnico • Políticas de Certificación. Seguridad • Coordinación para el desarrollo de CAs • CAs dedicadas a GRID • euGridPMA http://www.eugridpma.org • 1 CA por país, múltiples RAs • Recomendaciones • Requerimientos Minimos • /C=ES/O=DATAGRID-ES/CN=DATAGRID-ES CA • http://grid.ifca.unican.es/ca/datagrid-es Root CA CAs Level 1 CAs Level2 Final Certificates Rafael Marco de Lucas (IFCA)
Ejemplo Práctico: Creación de una Autoridad de Certificación • Instalación y configuración de openssl: rpm –ihv openssl-*.rpm vi /usr/share/ssl/openssl.cnf Subject: C=ES, O=CSIC, O=IFCA, OU=CURSO GRID, CN=Curso Postgrado GRID CA • Crear una CA usage: CA -newcert|-newreq|-newca|-sign|-verify vi /usr/share/ssl/misc/CA DAYS="-days 1460" $REQ –new –x509 -newkey rsa:2048 /usr/share/ssl/misc/CA -newca openssl x509 -in demoCA/cacert.pem –text • Crear una Clave Privada + Solicitud de Certificado openssl req –new –out request_pepe.pem –keyout key_pepe.pem openssl req -in request_pepe.pem –text cp –a request_pepe.pem newreq.pem • Firma de Certificado /usr/share/ssl/misc/CA –sign cp demoCA/newcerts/01.pem newcert_pepe.pem openssl x509 –in newcert_pepe.pem –text • Revocación de Certificados y CRL openssl ca –gencrl –out crl.pem openssl crl –in crl.pem –text Rafael Marco de Lucas (IFCA)
Servidor Web seguro basado en Certificados Digitales • Instalación de Servidor Web Apache y modulo SSL rpm –ihv apache-*.rpm rpm –ihv mod_ssl-*.rpm • Editar fichero de configuración http.conf SSLEngine on SSLCertificateFile /etc/httpd/conf/ssl.crt/server.crt SSLCertificateKeyFile /etc/httpd/conf/ssl.key/server.key SSLCACertificatePath /etc/httpd/conf/ssl.crt SSLCARevocationPath /etc/httpd/conf/ssl.crl • Crear e Instalar certificados openssl req –nodes –new –out request_server.pem –keyout key_server.pem cp –a request_pepe.pem newreq.pem /usr/share/ssl/misc/CA –sign cp demoCA/newcerts/02.pem newcert_server.pem cp demo/cacert.pem /etc/httpd/conf/ssl.crt/server.crt cp key_server.pem /etc/httpd/conf/ssl.key/server.key cp demo/cacert.pem /etc/httpd/conf/ssl.crt/csic_curso_postgrado.pem cp crl.pem /etc/httpd/conf/ssl.crl • Importar CA y Certificado Personal en el Web Browser openssl x509 –in demoCA/cacert.pem –outform DER –out cacert.crt Import cacert.crt into Web Browser openssl pkcs12 –export –inkey key_pepe.pem –in newcert_pepe.pem –out pkcs12_pepe.crt Import User Certificate into Browser: Options / content / certificates Rafael Marco de Lucas (IFCA)
Uso de Certificados en GRID • Certificados de • Usuario : DN=/C=ES/O=DATAGRID-ES/O=IFCA/CN=Rafael Marco de Lucas • Host : DN=/C=ES/O=DATAGRID-ES/O=IFCA/CN=host/grid001.ifca.unican.es • Service: DN=/C=ES/O=DATAGRID-ES/O=IFCA/CN=ldap/grid01.ifca.unican.es • Acceso a un User Interface (UI) • ssh <user>@gtbcg03.ifca.unican.es • Obtención de Certificado • CA Nacional aceptada internacionalmente • /C=ES/O=DATAGRID-ES/DATAGRID-ES CA • Generación de la solicitud del certificado • grid-cert-request –cn “Common Name” • openssl req –in .globus/request_usercert.pem –text • Autoridades de Registro (RAs) • Enviar solicitud+aprobación firmada a datagrid-es-ca • Instalación de Certificados • .globus/userkey.pem (u+r,go-rwx) • .globus/usercert.pem (u+r,go+r) • /etc/grid-security/certificates/hostkey.pem • /etc/grid-security/certificates/hostcert.pem • Los Certificados de las CAs se suelen instalar con RPMs • Las Listas de Revocaciones (CRLs) se actualizan via web • Uso de Certificados desde Web Browsers • Importar certificado de la CA: http://grid.ifca.unican.es/ca/datagrid-es/datagrid-es.crt • Importar CRL de la CA: http://grid.ifca.unican.es/ca/datagrid-es/datagrid-es-crl.crl • openssl pkcs12 –export –inkey .globus/userkey.pem –in .globus/usercert.pem –out user_pkcs12.crt • Import User Certificate into Web Browser ; https://marianne.in2p3.fr/datagrid/ca/ca-table-ca.html • Manejo de Certificados con OpenSSL • http://www.lip.pt/ca/ca-information.html Rafael Marco de Lucas (IFCA)
Uso de Certificados en GRID • Globus Grid Security Infraestructure es el estándar de facto para Grid Middleware • Basado en PKI • No es necesario introducir el password cada vez • Delegation: a service can act on behalf of a person • Mutual authentication: both sides must authenticate to the other • Uso de Credenciales • Introduce el uso de proxy certificates • Certificados de corta vida que incluyen su clave privada y estan firmados por el certificado del usuario • Los proxy-certificates se pueden mover por la red • Limited and Full proxys • grid-proxy-init , grid-proxy-info , grid-proxy-destroy Rafael Marco de Lucas (IFCA)
Seguridad: Control de acceso • Control de acceso: grid-mapfile • Organizaciones Virtuales • Generación automatica del grid-mapfile • Cada centro decide que VOs acepta • Virtual Organization Membership Service VOMS • Extends the proxy info with VO membership, group, role and capabilities • Local Centre Authorization Service (LCAS) • Comprueba si el usuario esta autorizado (usando el grid-mapfile) • Comprueba si el usuario esta prohibido en el site • Comprueba si en ese momento el site acepta jobs • Local Credential Mapping Service (LCASMAPS) • Asocia credenciales grid con credenciales locales (unix uid/gid, AFS tokens,…) • Actualmente usa grid-mapfile • En un futuro próximo asociara tambien VOMS group and roles • Ataques y acceso de intrusos: uso, sobreuso y abuso Rafael Marco de Lucas (IFCA)
Uso de Certificados y proxys • Obtener información de un certificado • grid-cert-info • Uso de proxy certificates • Crear: grid-proxy-init • Destruir: grid-proxy-destroy • Ontener información: grid-proxy-info • Long Term proxy • myproxy server • Create and store: myproxy-init –s <hostname> • Obtener informacion: myproxy-info • Obtener un nuevo proxy: myproxy-get-delegation • Destruir el proxy: myproxy-destroy Rafael Marco de Lucas (IFCA)
GSI APIs • GSS-API , C/C++ • Java GSS-API • Java Comodity Grid (CoG) API • C/C++ Web Services Rafael Marco de Lucas (IFCA)
Obtención de Certificados • IMPORTANTE • Puedes localizar la web de tu CA nacional para Grid desde www.eugridpma.org pero generalmente el administrador de grid de tu centro te podrá ayudar a agilizar este trámite • Las solicitudes deben ser generadas por el propietario del certificado. La clave privada debe estar encriptada a través de un password. • Guardar copias de seguridad de la clave privada • NO OLVIDAR EL PASSWORD • No compartir los Certificados personales. Limitación de uso. • Si la seguridad de tu certificado se ve comprometida debes avisar urgentemente a la RA y a la CA. • PRACTICO • Obtened una cuenta en un User Interface • Solicitad vuestros Certificados Personales Rafael Marco de Lucas (IFCA)
Conclusiones • El uso de certificados permite establecer una infraestructura de comunicación segura entre las partes del grid • El uso de proxy certificates en GSI hace mas fácil y flexible su uso • Seguridad: • Authentication: Certificados • Autorization: Organizaciones Virtuales • Ejercicios Rafael Marco de Lucas (IFCA)