Security Authentication and Authorization Virginia MartnRubio Pascual virginia
Security, Authentication and Authorization Virginia Martín-Rubio Pascual virginia. martinrubio@rediris. es Red. IRIS/Red. es Curso Grid y e-Ciencia 2010, Valencia 6 - 9 Julio 2010
Agenda • • Introducción Infraestructura de Seguridad Grid • Seguridad a nivel de red • • • Encriptación o Criptografía ü Algoritmos Simétricos ü Algoritmos Asimétricos: PKI (Public Key Infraestructure) ü Firma Digital Certificados ü Certificados X 509 Seguridad a nivel de VO • • • Certificados Proxy Instrucciones de la Línea de Comandos Organizaciones Virtuales ü Conceptos de VO y autorización
Glosario • Principal: Una entidad: una usuario, un programa o una máquina. • Credenciales: Ciertos datos que proporcionan una prueba de identidad. • Autenticación: Verificar la identidad de un principal. • Autorización: Asociar una identidad con algún conjunto de privilegios. • Confidencialidad: Cifrar un mensaje para que solo el receptor pueda entenderlo. • Integridad: Asegurar que el mensaje no ha sido alterado durante la transmisión. • No rechazo: Imposibilidad de negar la autenticidad de una firma digital.
Introducción ¿Qué es la seguridad en la Grid? • El problema en la Grid consiste en: “coordinated resource sharing and problem solving in dynamic, multiinstitutional virtual organizations” From ”The Anatomy of the Grid” by Ian Foster et al. • Por tanto, la seguridad en la Grid se basa en la seguridad en las distintas VOs. • ¿Qué se necesita en términos de seguridad para una VO?
Introducción Concepto de Organización Virtual (VO) • VO por cada aplicación, tipo de trabajos o comunidad. • Configurar recursos para un uso concreto y para un conjunto determinado de usuarios. • Cuanto más dinámicas sean las VOs mejor.
Introducción Asuntos de Seguridad Usuario Servicio Grid • ¿Cómo poder identificar los sistemas finales? • Autenticación • ¿Cómo poder establecer un canal seguro entre dos usuarios? • • • Encriptación No-repudio Integridad • ¿Cómo controlar el acceso a los recursos de cada VO? ¿qué miembros de la VO tienen permisos y cuales no? • Autorización
Infraestructura de Seguridad Grid Seguridad a nivel de red Criptografía Un algoritmo criptográfico es una función matemática que combina texto simple u otra información inteligible con una cadena de dígitos, llamada llave o clave, para producir texto codificado ininteligible. La llave y el algoritmo usados son cruciales para el encriptamiento K 1 M Encryption Simbología: Texto en Claro: M Texto Cifrado: C Cifrado con clave K 1 : E K 1(M) = C Descifrado con clave K 2 : D K 2(C) = M Algoritmos: Simétricos: Simétricos K 1 = K 2 Asimétricos: Asimétricos K 1 ≠ K 2 C Decryption M
Infraestructura de Seguridad Grid Seguridad a nivel de red Criptografía Algoritmos simétricos: • La misma clave es usada para cifrar y descifrar (K 1 = K 2) • Ventajas: • Rapidez • Desventajas: María ciao Pedro 3$r ciao • ¿Cómo se distribuyen las claves? • Ejemplos: • DES • 3 DES • Rijndael (AES) • Blowfish • Kerberos María ciao Pedro 3$r ciao
Infraestructura de Seguridad Grid Seguridad a nivel de red Criptografía Algoritmos asimétricos: • También conocidos como Algoritmos de Clave Pública/Public Key Algorithms. • Algunas características: • Cada usuario tiene un par de claves: 1 privada y 1 pública • • Es imposible obtener la clave privada usando la clave pública Un mensaje cifrado con una de las claves sólo es descifrado por su pareja Pablo ciao Juan 3$r Pablo ciao 3$r Juan cy 7 • No es necesario intercambiar las claves privadas • • • El emisor del mensaje lo cifra usando la clave pública del receptor El receptor descifra el mensaje usando su clave privada Pablo keys Juan keys pública privada Ejemplos: • Diffie-Helmann (1977) • RSA (1978) • DSA • El. Gamal ciao
Infraestructura de Seguridad Grid Seguridad a nivel de red Criptografía Pablo Firma digital: • Método criptográfico que nos permite asociar la identidad de una persona o máquina al mensaje o documento. Mensaje Firma Digital • Asegura la integridad del documento o mensaje. • Hash(A) Mensaje Firma Digital Como funciona: • Pablo calcula el hash del mensaje. • Pablo cifra el hash usando su clave privada: el hash cifrado es la firma digital. Juan • Pablo envía el mensaje firmado a Juan. • Juan calcula el hash(B) del mensaje y verifica que es igual al hash(A), descifrado con la clave pública de Pablo. • Si los hashes son iguales: • Mensaje no fue modificado. • Pablo no puede repudiarlo. Hash(B) =? Claves de Pablo pública privada Mensaje Hash(A) Firma Digital
Infraestructura de Seguridad Grid Seguridad a nivel de red Certificados digitales • La firma digital de Pablo se considera segura si: • La clave privada de Pablo no ha sido comprometida. • Juan conoce la clave pública de Pablo. • ¿Cómo puede Juan estar seguro de que la clave pública de Pablo es realmente la suya y no de otra persona? • Existencia de una tercera parte que certifica la correspondencia entre la clave pública y la identidad del propietario. • Ambos deben confiar en esta tercera parte. • Dos modelos existentes para establecer la confianza: • X. 509 Organización jerárquica (usada en Grid). • PGP De persona a persona.
Infraestructura de Seguridad Grid Seguridad a nivel de red Certificados digitales Autoridades de Certificación • La “Tercera Parte” se llama Autoridad de Certificación/Certification Authority (CA). • Responsabilidades de una CA: • Emisión de Certificados Digitales (contiene la clave pública y la identidad del usuario) para usuarios, programas o máquinas. • Verificar la identidad y los datos personales del solicitante. • Autoridades del Registro/Registration Authorities (RAs) hacen actualmente esa verificación. • Revocan el certificado en caso de que haya sido comprometido. • Renovación de certificados cuando estos vayan a expirar. • Periodicamente publica una lista de certificados revocados en su página web: • Certificate Revocation Lists (CRL): contiene todos los certificados revocados.
Infraestructura de Seguridad Grid Seguridad a nivel de red Certificados digitales Autoridades de Certificación • ¿Cómo obtener el certificado digital? Se lleva a cabo la petición del certificado El certificado es expedido por la CA La identidad del usuario es confirmada por la RA (Autoridad de Registro) El certificado es usado como una llave para acceder a los recursos Grid
Infraestructura de Seguridad Grid Seguridad a nivel de red Certificados digitales Certificados X. 509 • Un certificado X. 509 contiene: • Clave privada (creada por el usuario Grid) que se almacena en un fichero encriptado, protegido por una frase de paso. Clave pública del usuario Identidad del usuario Estructura de un certificado X. 509 Public key Subject: C=CH, O=CERN, OU=GRID, CN=Andrea Sciaba 8968 Issuer: C=CH, O=CERN, OU=GRID, CN=CERN CA Información de la CA Expiration date: Aug 26 08: 14 2005 GMT Tiempo de validez Serial number: 625 (0 x 271) Número de serie Firma digital de la CA CA Digital signature
Infraestructura de Seguridad Grid Seguridad a nivel de red Certificados digitales Pedro Secure Socket Layer (SSL) • Basada en la X. 509 PKI: • Los certificados están firmados por las CAs. • Cada transacción en la Grid está mutuamente autenticada: 1. Pedro envía su certificado. 2. El servicio verifica la firma de la CA en el certificado de Pedro. 3. El servicio envía a Pedro un número aleatorio. 4. Pedro cifra usando su clave privada. 5. Pedro envía el número cifrado al servicio. 6. El servicio usa la clave pública de Pedro para descifrar el número. 7. El servicio compara el número cifrado con el original. 8. Si son iguales, el servicio verifica la identidad de Pedro. Servicio Certificado de Pedro Verifica firma de la CA Número aleatorio Cifra con su clave privada Número cifrado Descifra con la clave pública de Pedro Compara el número recibido con el original
Infraestructura de Seguridad Grid Seguridad a nivel de red Certificados digitales Solicitud de certificado digital • En función del país en el que estés trabajando debes ir a una CA u otra. • Para el caso de España debéis acceder a: http: //www. irisgrid. es/pki/ • Otras CAs son: • http: //ca. lip. pt/ (Portugal) • http: //security. fi. infn. it/CA/en/RA/ (Italia) • … • Para los usuarios que no estén cubiertos por ninguna CA existen ‘catch-all CAs’. Por ejemplo: • EGEE catch-all CA: http: //igc. services. cnrs. fr/GRID 2 -FR/? lang=en • LCG catch-all CA: http: //www. doegrids. org/
Infraestructura de Seguridad Grid Seguridad a nivel de red Certificados digitales Solicitud de certificado digital a IRISGrid. CA (1/2) • Acceder a http: //www. irisgrid. es/pki/ y seleccionar la autoridad de registro (RA) correspondiente (Red. IRIS). • Seleccionar tipo de certificado: Solicitud de certificado (CSR): • CSR de Usuario • CSR de Servidor/Servicio • Rellenar datos de usuario.
Infraestructura de Seguridad Grid Seguridad a nivel de red Certificados digitales Solicitud de certificado digital a IRISGrid. CA (2/2) • La CA envía un email al usuario para indicarle que ya está disponible su certificado en una determinada URL. • El usuario debe acceder a esa URL e indicar su identificador para descargarse el certificado en su navegador. • Después debe exportar el certificado desde su navegador para copiarlo en la UI desde donde lanzará los trabajos a los recursos Grid. • Si el certificado está en formato PKCS 12 se debe convertir a. pem. Se puede usar el comando openssl (disponible en la propia UI): openssl pkcs 12 –nocerts –in my_cert. p 12 –out userkey. pem openssl pkcs 12 –clcerts –nokeys –in my_cert. p 12 –out usercert. pem
Infraestructura de Seguridad Grid Seguridad a nivel de red Certificados digitales Renovación de certificados (1/2) • El tiempo de vida máximo de un certificado es de 1 año + 1 mes. • La idea es que, transcurrido un año, un nuevo certificado sea expedido. • Los usuarios deben estar atentos a cuál es la fecha de expiración de su certificado para renovarlo antes de que esta ocurra. • No es necesario revocar un certificado para expedir uno nuevo, a menos que el certificado antiguo haya sido comprometido o el usuario haya cesado la actividad para la cual necesitaba ese certificado.
Infraestructura de Seguridad Grid Seguridad a nivel de red Certificados digitales Renovación de certificados (2/2) • Durante el proceso de renovación no se requiere que el usuario pase por el proceso de identificación en persona ante la RA: • Gran ventaja para los usuario y para la RA. • De todas formas, existe un número máximo de renovaciones sin identificación en persona. • Para evitar que el usuario tenga que presentarse en persona ante la RA, la petición de renovación se firma con el certificado del usuario, como por ejemplo: • Email firmado con el certificado del usuario. • Interfaz web CA/RA que sea capaz de reconocer el certificado del usuario. • Si el certificado del usuario expira antes de llevar a cabo la renovación, se debe solicitar un nuevo certificado.
Infraestructura de Seguridad Grid Seguridad a nivel de VO Certificado proxy X. 509 • Sería peligroso transferir el certificado de usuario a través de la Grid. Es por eso que se utilizan los: • Certificados de proxy: • Están firmados por una entidad certificadora normal (o por otro proxy). • Soportan características importantes: • Delegación • Tienen un tiempo de vida limitado, lo que minimiza el riesgo de comprometer las credenciales del usuario. • Los certificados de proxy se crean con el comando grid-proxy-init.
Infraestructura de Seguridad Grid Seguridad a nivel de VO Certificado proxy X. 509 grid-proxy-init • El usuario introduce una frase de paso que se usará para descifrar la clave privada. • La clave privada se usará para firmar el certificado de proxy, se crea un nuevo par de claves. De esta forma, la clave privada del usuario no está expuesta después de que el certificado de proxy se firme. Fichero del certificado de usuario Frase De paso Clave privada (Cifrada) Fichero del certificado de proxy de usuario • Certificado de proxy: • La clave privada del proxy no está cifrada. • Está almacenada en un fichero local, que debe ser SOLO LEIBLE por el propietario. • Tiempo de vida corto (normalmente 12 horas) para minimizar riesgos.
Infraestructura de Seguridad Grid Seguridad a nivel de VO Certificado proxy X. 509 grid-proxy-init • grid-proxy-init ≡ “login to the Grid” • Para cerrar la sesión tienes que destruir el proxy con: grid-proxy-destroy • Para obtener más información sobre el proxy se usa el comando: grid-proxy-info Algunas de las opciones para obtener información son: -subject -type -strength -issuer -timeleft -help 23
Infraestructura de Seguridad Grid Seguridad a nivel de VO Certificado proxy X. 509 Delegación • Delegación: consiste en la creación remota de un certificado de proxy de segundo nivel, es decir, a partir de otro certificado de proxy. • Se generan un nuevo par de claves en un servidor remoto. • El cliente firma el certificado del proxy y lo devuelve. • Permite que un proceso remoto se autentique como si fuera el usuario. • El proceso remoto se comporta como si fuera el usuario. 24
Infraestructura de Seguridad Grid Seguridad a nivel de VO Certificado proxy X. 509 Proxy de larga duración Myproxy • El proxy tiene un tiempo de vida limitado (por defecto son 12 h) • • • Como hemos visto, no sería recomendable tener un proxy de mayor duración. De todas formas, una trabajo de Grid puede necesitar el uso de un proxy de un tiempo mayor. Servidor My. Proxy: • Permite crear y almacenar un certificado de proxy de mayor duración: • myproxy-init –s <myproxy_server_name> • myproxy-info: devuelve la información del certificado de proxy de larga duración almacenado en el servidor de myproxy. • myproxy-get-delegation: genera un nuevo certificado de proxy. • myproxy-destroy • Los servicios de transferencia de ficheros en g. Lite validan las peticiones de los usuarios e incluso a veces renuevan los proxies. • Para ello, contactan con el servidor de myproxy. 25
Infraestructura de Seguridad Grid Seguridad a nivel de VO Certificado proxy X. 509 VOs y autorización • Los usuarios de Grid deben pertenecer a organizaciones virtuales: • Los usuarios deben firmar las normas de uso de la VO a la que quieren pertenecer. • Las VOs mantienen una lista con los nombres de los miembros en una servidor LDAP. • Las máquinas de Grid se descargan esta lista para mapear los subjects de los certificados de usuarios con el pool de cuentas locales. . "/C=CH/O=CERN/OU=GRID/CN=Simone Campana 7461". dteam "/C=CH/O=CERN/OU=GRID/CN=Andrea Sciaba 8968". cms "/C=CH/O=CERN/OU=GRID/CN=Patricia Mendez Lorenzo-ALICE". alice. . . 26
Infraestructura de Seguridad Grid Seguridad a nivel de VO Certificado proxy X. 509 Servidor VOMS (Virtual Organization Members Service) • Almacenan información extendida de los miembros de las VOs, grupos, roles. • Cada VO tiene una base de datos que contiene información sobre los miembros de un grupo, sus roles y capacidades. • Los usuarios contactan con el servidor VOMS solicitando su información de autorización. • El servidor envía la información de autorización al cliente, quien la incluye en el certificado de proxy. • voms-proxy-init –-voms vo. formacion. es-ngi. eu Crea el certificado y le añade una extensión con la información proporcionada por el servidor VOMS. • voms-proxy-info –-all Muestra la información del certificado junto con las extensiones VOMS. 27
Infraestructura de Seguridad Grid Seguridad a nivel de VO Certificado proxy X. 509 FQAN y AC (Atribute Certificate) • • Una especie de FQAN (Fully Qualified Attribute Name), es lo que el servidor VOMS utiliza para expresar la pertenencia de una usuario a una VO y otra información de autorización. La pertenencia a grupos, roles y capacidades debe expresarse en un formato que las muestre juntas: <group>/Role=[<role>][/Capability=<capability>] [tut 25@cg 02 ~]$ voms-proxy-info -fqan /vo. formacion. es-ngi. eu/Role=NULL/Capability=NULL • • El FQAN se incluye en el atributo de certificado (AC). Los atributos de certificado se usan para asociar un conjunto de atributos (como son la pertenencia a VOs, los roles, la información de autorización, etc. ) con una identidad. Los ACs están firmados digitalmente. El servidor VOMS usa los ACs para incluir los atributos de un usuario en un certificado de proxy. 28
Infraestructura de Seguridad Grid Seguridad a nivel de VO Certificado proxy X. 509 VOMS y AC (Atribute Certificate) • El servidor crea y firma el AC que contiene el FQAN solicitado por el usuario. Si es aplicable, el AC se incluye en las extensiones VOMS asegurando la compatibilidad con los mecanimos basado en GT (Globus Toolkit). [ui-SL 5] /home/virginia > voms-proxy-info -all subject : /DC=es/DC=irisgrid/O=rediris/CN=virginia. martinrubio/CN=proxy issuer : /DC=es/DC=irisgrid/O=rediris/CN=virginia. martinrubio identity : /DC=es/DC=irisgrid/O=rediris/CN=virginia. martinrubio type : proxy strength : 1024 bits path : /tmp/x 509 up_u 500 timeleft : 11: 59: 55 === VO vo. general. es-ngi. eu extension information === VO : vo. general. es-ngi. eu subject : /DC=es/DC=irisgrid/O=rediris/CN=virginia. martinrubio issuer : /DC=es/DC=irisgrid/O=ifca/CN=host/voms 01. ifca. es attribute : /vo. general. es-ngi. eu/Role=NULL/Capability=NULL timeleft : 11: 59: 55 uri : voms 01. ifca. es: 15003 29
Infraestructura de Seguridad Grid Seguridad a nivel de VO Certificado proxy X. 509 LCAS & LCMAPS • A nivel de recursos, la información de autorización es extraída del proxy y procesada por LCAS y LCMAPS. • Local Centre Authorization Service (LCAS) • Comprueba si el usuario está autorizado (actualmente usando gridmapfile) • Comprueba si el usuario está “baneado” en el site. • Comprueba si en ese momento el site acepta trabajos. • Local Credential Mapping Service (LCMAPS) • Asocia credenciales grid con credenciales locales (por ejemplo UNIX uid/gid, AFS tokens, etc. ). • Asocia también los grupos y roles (soporta totalmente el FQAN) "/VO=dteam/GROUP=/dteam" dteam "/VO=eumed/GROUP=/eumed/ROLE=Software. Manager" eumed "/VO=eumed/GROUP=/eumed" eumed 30
RECUERDA QUE… • Es necesario un certificado digital y ser miembro de una VO. • ¡¡Mantén a salvo tu clave privada!! • Los comandos de proxy voms-* • Gestionan los certificados de proxy • Los comandos de myproxy-* • Para delegar los certificados de proxy 31
Referencias • Grid • LCG Security: http: //proj-lcg-security. web. cern. ch/proj-lcg-security/ • Globus Security Infrastructure: http: //www. globus. org/security/ • VOMS: http: //infnforge. cnaf. infn. it/projects/voms • CA: http: //www. tagpma. org/ • Background • GGF Security: http: //www. gridforum. org/security/ • IETF PKIX charter: http: //www. ietf. org/html. charters/pkix-charter. html • PKCS: http: //www. rsasecurity. com/rsalabs/pkcs/index. html 32
¡Gracias por vuestra atención! ¿Preguntas? 33
- Slides: 33