Security, Authentication and Authorization
Virginia Martín-Rubio Pascual [email protected] RedIRIS/Red.es
Curso Grid y e-Ciencia 2010, Valencia 6- 9 Julio 2010
• 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 X509
• Seguridad a nivel de VO
• Certificados Proxy
• Instrucciones de la Línea de Comandos
• Organizaciones Virtuales
Conceptos de VO y autorización
Agenda
• 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.
Glosario
¿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
• ¿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
Introducción
Usuario Servicio Grid
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
Simbología:
Texto en Claro: M Texto Cifrado: C
Cifrado con clave K1 : E K1(M) = C Descifrado con clave K2 : D K2(C) = M
Algoritmos:
Simétricos
Simétricos: K1 = K2 Asimétricos
Asimétricos: K1 ≠ K2
K2
K1 Encryption
Encryption DecryptionDecryption
M C M
Infraestructura de Seguridad Grid Seguridad a nivel de red
Criptografía
Algoritmos simétricos:
• La misma clave es usada para cifrar y descifrar (K1 = K2)
• Ventajas:
• Rapidez
• Desventajas:
• ¿Cómo se distribuyen las claves?
• Ejemplos:
• DES
• 3DES
• Rijndael (AES)
• Blowfish
• Kerberos
María Pedro
ciao 3$r ciao
María Pedro
ciao 3$r 3$r ciao
3$r
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
•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
• Ejemplos:
•Diffie-Helmann (1977)
•RSA (1978)
•DSA
•ElGamal
Juan keys
pública privada
Pablo keys
pública privada
Pablo Juan
ciao 3$r ciao
Pablo Juan
ciao cy7 ciao
3$r
cy7
Infraestructura de Seguridad Grid Seguridad a nivel de red
Criptografía
Firma digital:
•Método criptográfico que nos permite asociar la identidad de una persona o máquina al mensaje o documento.
•Asegura la integridad del documento o mensaje.
•Como funciona:
•Pablo calcula el hash del mensaje.
•Pablo cifra el hash usando su clave privada: el hash cifrado es la firma digital.
•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.
Juan
Mensaje
Firma Digital
Pablo
Mensaje
Firma Digital
Mensaje
Firma Digital
Hash(A)
Hash(B)
Hash(A)
= ?
Claves de Pablo
pública privada
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?
El certificado es expedido por la CA
El certificado es usado como una llave para acceder a los recursos Grid Se lleva a cabo la
petición del certificado
La identidad del usuario es confirmada por la RA (Autoridad de Registro)
• 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 Información de la CA Tiempo de validez Número de serie Firma digital de la CA
Infraestructura de Seguridad Grid Seguridad a nivel de red
Certificados digitales
Certificados X.509
Public key Public key
Subject:
Subject:C=CH, O=CERN, C=CH, O=CERN,
OU=GRID, CN=Andrea Sciaba OU=GRID, CN=Andrea Sciaba 89688968
Issuer: C=CH, O=CERN, Issuer: C=CH, O=CERN, OU=GRID, CN=CERN CA OU=GRID, CN=CERN CA
Expiration date:
Expiration date: Aug 26 08:08:14 Aug 26 08:08:14 2005 GMT
2005 GMT
Serial number: 625 (0x271) Serial number: 625 (0x271)
Estructura de un certificado X.509
CA Digital signature
CA Digital signature
Infraestructura de Seguridad Grid Seguridad a nivel de red
Certificados digitales
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.
PedroPedro ServicioServicio
Certificado de Pedro Certificado de Pedro
Verifica firma de la CA Verifica firma de la CA Número aleatorio
Número aleatorio
Cifra con su clave privada Cifra con su clave privada
Número cifrado Número cifrado
Descifra con la clave pública de Pedro Descifra con la clave pública de Pedro
Compara el número recibido con el original 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/GRID2-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 IRISGridCA (1/2)
•
Acceder a
http://www.irisgrid.es/pki/ y seleccionar la autoridad de registro (RA) correspondiente ( RedIRIS).
• 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 IRISGridCA (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 PKCS12 se debe convertir a .pem. Se puede usar el comando openssl (disponible en la propia UI):openssl pkcs12 –nocerts –in my_cert.p12 –out userkey.pem
openssl pkcs12 –clcerts –nokeys –in my_cert.p12 –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.
• 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.
Fichero del
certificado de usuario Clave privada
(Cifrada) Frase
De paso
Fichero del certificado de proxy de usuario
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 -issuer
-type -timeleft
-strength -help
23
Infraestructura de Seguridad Grid Seguridad a nivel de VO
24
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.
Infraestructura de Seguridad Grid Seguridad a nivel de VO
• 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 MyProxy:
• 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 gLite 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
Proxy de larga duración Myproxy
• 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.
26 ...
"/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 ...
Infraestructura de Seguridad Grid Seguridad a nivel de VO
Certificado proxy X.509
VOs y autorización
27
• 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.
Infraestructura de Seguridad Grid Seguridad a nivel de VO
Certificado proxy X.509
Servidor VOMS (Virtual Organization Members Service)
•
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>]
[tut25@cg02 ~]$ 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
FQAN 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-SL5] /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/x509up_u500 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/voms01.ifca.es attribute : /vo.general.es-ngi.eu/Role=NULL/Capability=NULL timeleft : 11:59:55
uri : voms01.ifca.es:15003
29
Infraestructura de Seguridad Grid Seguridad a nivel de VO
Certificado proxy X.509
VOMS y AC (Atribute Certificate)
• 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 grid- mapfile)
• 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)
30
"/VO=dteam/GROUP=/dteam" dteam
"/VO=eumed/GROUP=/eumed/ROLE=SoftwareManager" eumed
"/VO=eumed/GROUP=/eumed" eumed
Infraestructura de Seguridad Grid Seguridad a nivel de VO
Certificado proxy X.509
LCAS & LCMAPS
• 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 myproxy-*
• Para delegar los certificados de proxy
31
RECUERDA QUE…
Referencias
• Grid 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 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
33
¡Gracias por vuestra atención!
¿Preguntas?