• No se han encontrado resultados

Diapositiva 1 - indico.ific.uv.es

N/A
N/A
Protected

Academic year: 2024

Share "Diapositiva 1 - indico.ific.uv.es"

Copied!
33
0
0

Texto completo

(1)

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

(2)

• 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

(3)

• 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

(4)

¿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

(5)

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

(6)

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

(7)

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

(8)

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

(9)

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

(10)

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

(11)

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.

(12)

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.

(13)

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)

(14)

• 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

(15)

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

(16)

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/

(17)

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.

(18)

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

(19)

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.

(20)

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.

(21)

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.

(22)

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

(23)

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)

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

(25)

• 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

(26)

• 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)

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)

(28)

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)

(29)

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)

(30)

• 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

(31)

• 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…

(32)

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)

33

¡Gracias por vuestra atención!

¿Preguntas?

Referencias

Documento similar