107
Autenticaci´ on y control de acceso Seguridad en Redes de Ordenadores Enrique Soriano LS, GSYC 17 de febrero de 2015

Seguridad en Redes de Ordenadores Enrique Soriano

  • Upload
    others

  • View
    2

  • Download
    0

Embed Size (px)

Citation preview

Autenticacion y control de accesoSeguridad en Redes de Ordenadores

Enrique Soriano

LS, GSYC

17 de febrero de 2015

(cc) 2015 Grupo de Sistemas y Comunicaciones.

Algunos derechos reservados. Este trabajo se entrega bajo la licencia Creative Commons Reconocimiento -

NoComercial - SinObraDerivada (by-nc-nd). Para obtener la licencia completa, vease

http://creativecommons.org/licenses Tambien puede solicitarse a Creative Commons, 559 Nathan Abbott Way,

Stanford, California 94305, USA.

Terminos

• Identificacion: Alguien dice ser un sujeto concreto.

• Autenticacion: Alguien demuestra su identidad.

• Autorizacion: Otorgamiento de privilegios a un sujeto pararealizar una operacion de acceso sobre uno o varios objetos.

• Control de acceso: Permitir o denegar una operacion deacceso sobre un recurso en base a la autorizacion del sujeto.

Autenticacion

• Un programa se autentica ante el sistema a nombre de unusuario y pasa a ejecutar a su nombre.

• ¿Como te autenticas?

• Algo que conoces.• Algo que tienes.• Algo que eres.• Algo que haces.• Donde estas.

Contrasenas

• La forma mas comun y sencilla de autenticacion: el usuarioproporciona un secreto que solo el y el sistema conocen.

• Riesgos:

• Que vean nuestra contrasena.• Que la adivinen.• Spoofing (suplantacion).• Que se hagan con el almacen de contrasenas.

Contrasenas

Que vean nuestra contrasena:

• No se deben compartir.

• No se deben apuntar en claro.

• No se debe usar la misma contrasena para distintos servicios.

• Aplicaciones keyring : Password Safe (Windows), Keychain(OSX), etc.

Contrasenas

Que adivinen nuestra contrasena:

• Ataque de fuerza bruta.

• Busqueda inteligente.

• Ataque de diccionario online.

Ataque de fuerza bruta

Keyspace:

• Siendo S la longitud de la contrasena y N el numero desımbolos que se pueden usar en las contrasenas.

Keyspace =s∑

i=0N i

• Ejemplo: Contrasenas de solo minusculas y de 0 a 8 caracteres:

• Ejemplo: Con mayusculas, minusculas, numeros y sımbolos depuntuacion, de 0 a 14 caracteres:

Ataque inteligente

Imagen (C) xato.net

Contrasenas

No usar passwords comunes:

Contrasenas

Contrasenas de calidad:

• Nnemotecnicos: TabletMipefaesstwa3 de “Mi pelıculafavorita es star wars 3”

• Rimas: SEGURIDAD-0-calamidad@casa

• Repeticion: hey.h0.HEY.H0.6

Contrasenas

Distintas contrasenas para distintos servicios:

• Se puede tener un metodo para generar las contrasenas paradistintos servicios.

• Por ejemplo, poner al principio el numero de caracteres delservicio o servidor:

• Amazon: A6m1--mej0r--SECRETO• Msn: M3m1--mej0r--SECRETO• Apple: A5m1--mej0r--SECRETO

Contrasenas

Medidas de proteccion:

• No permitir contrasenas vacıas en el sistema.

• Obligar a cambiar las contrasenas por omision.Ejemplo: routers adsl.

• Obligar a que tengan una longitud mınima (no menos de 8caracteres).

• Obligar a que no sean palabras del diccionario: requerimospuntos, numeros, mayusculas y minusculas, etc.

Contrasenas

Medidas de proteccion:

• Pasamos crackers para validarlas.Ejemplo: John the Ripper.

• Obligar a cambiar las contrasenas periodicamente.

• No permitir reusar contrasenas antiguas.

• No es buena idea generar contrasenas aleatorias para losusuarios → las apuntan. Si son aleatorias, no deben serpredecibles.

Contrasenas

Medidas de proteccion:

• Limitar el numero de intentos de autenticacion.

• Aumentar el tiempo entre autenticaciones fallidas.

• Compromiso: seguridad vs. obstruccion.

Contrasenas

Mas riesgos: que nos timen.

• Spoofing

• Keyloggers

• Ingenierıa social

• ...

Contrasenas

Spoofing:

• Un atacante reemplaza al sujeto ante el que nosautenticamos, y nos roba la contrasena.

• Seguramente no nos demos cuenta: el resultado de laautenticacion parece un error al escribir la contrasena, pero nolo es.

• Ataque clasico: reemplazar /bin/login

• En el WWW: te conectas a una pagina que no es la que crees(p. ej. te enganan con phishing).

Contrasenas

Medidas de proteccion:

• Imprimir el numero de intentos reales que se llevan.

• Trusted Path: estar seguros de que el usuario se comunica conel sistema operativo y no con un programa falso.

• Doble autenticacion: el programa de login se autentica ante elusuario antes de que el usuario se identifique y autentique.

Contrasenas

Keyloggers:

• Software: un programa captura todo lo que tecleamos.

• Hardware: espıa el cable del teclado o la transmisioninalambrica de ratones/teclados. Aprox. 50 Euros, 2Gb. Loshay WiFi.

Contrasenas

Medidas de proteccion:

• Para PIN: mostrar una tabla por pantalla con una sustitucionde los numeros por caracteres, distinta en cada autenticacion.

• Usar el raton para introducir la contrasena.

• ... pero tambien nos pueden enganar con hardware (150Euros, 2 Gb de screenshots).

Contrasenas

Moraleja:

• The Big Stick Principle.

Contrasenas

Si se hacen con el almacen de contrasenas:

• Las contrasenas se suelen guardar cifradas.

• Por lo general, se guarda un hash de la contrasena.

• Ataque de diccionario offline: mucho mas efectivo que online.

Contrasenas

Ataque de diccionario offline:

• Buscar la hash que se quiere romper en una tabla precalculadade tuplas (contrasena, hash) → cambias tiempo decomputacion por espacio.

• Rainbow-tables (p. ej. ophcrack).

• Uso de Google para encontrar la hash. ¿Que contrasena tieneesta hash SHA-1?99800b85d3383e3a2fb45eb7d0066a4879a9dad0

¡Buscalo en Google!

Rainbow Tables

Compromiso espacio/computo:

Contrasenas

Medidas de proteccion:

• Contrasenas largas.

• Hashes con salt.

• key strengthening : salt secreta.

Caso: autenticacion clasica en Unix

Pasos de arranque:

1. Scripts de arranque (init).

2. /bin/getty

3. /bin/login

Caso: credenciales en Unix

Un proceso tiene credenciales1:

• PID: identificador de proceso.

• UID: identificador de usuario.

• GID: identificador de grupo.

• EUID: identificador de usuario efectivo, el que se usa paracomprobar privilegios.

• EGID: identificador de grupo efectivo, el que se usa paracomprobar privilegios.

• ...

1Dependen del “sabor” de UNIX

Caso: autenticacion basica en Unix

/etc/passwd:

• Login.

• Contrasena (“x” cuando tenemos shadow)

• UID.

• GID.

• Gecos info: datos sobre el usuario, separados por comas.

• Path del home.

• Programa de inicio.

Caso: autenticacion basica en Unix

/etc/shadow:

• Login.

• Hash: son tres campos separados por $.• Algoritmo: p. ej. 1 es MD6, 6 es SHA-512.• Salt• Hash

NOTA: Si tiene un valor que no se corresponde con una posible salida de crypt,

el usuario no se podra autenticar con contrasena (pero sı de otras formas). Por

ejemplo, se pone ∗ o ! para evitar que el usuario entre con contrasena. Si

esta vacıo, el usuario no tiene contrasena (no es recomendable). En Linux

recientes, la contrasena de root es !.

Caso: autenticacion basica en Unix

/etc/shadow (continua):

• Fecha Unix del ultimo cambio de contrasena.

• Mınima edad: mınimo numero de dıas para permitir uncambio de contrasena.

• Maxima edad: dıas tras los que tiene que cambiar lacontrasena.

• Dıas, antes de la caducidad segun el campo anterior, paraavisar al usuario.

• Dıas de prorroga desde que caduca, cuando pasan se anula lacontrasena.

Caso: autenticacion basica en Unix

/etc/shadow (continua):

• Fecha Unix de caducidad para la cuenta. Si llega, se cancela lacuenta. No es lo mismo que la edad de la contrasena, esta esmas dura.

• Campo reservado para uso futuro.

Caso: control de credenciales en Unix

• /bin/id: Permite ver tu UID y GID.

• /bin/su: Permite ejecutar un shell con otro UID. Poromision, intenta ejecutar un shell con UID 0.

• /usr/bin/sudo: Permite ejecutar un comando con otro UID,proporcionando tu propia contrasena. El fichero/etc/sudoers especifica quien puede convertirse en quien, ypara que.

Caso: control de credenciales en Unix

Ejemplo de sudoers (I):

jose ALL = (root, bin : operator, system) ALL

• jose puede, en cualquier maquina

• adquirir el UID de root y bin

• adquirir el GID de operator y system

• para ejecutar cualquier comando

Caso: control de credenciales en Unix

Ejemplo de sudoers (II):

ramon mono = NOPASSWD: /bin/kill, PASSWD: /bin/ls,

/usr/bin/lprm

• ramon puede, en la maquina mono

• adquirir el UID de root

• para ejecutar kill sin proporcionar contrasena

• para ejecutar ls y lprm proporcionando contrasena

Caso: autenticacion en Windows

• Windows almacena las contrasenas en SAM:\windows\system32\config\sam

• El fichero esta bloqueado en todo momento.

• Puede contener dos tipos de contrasenas cifradas:• LM (Lan Manager). ¡Inseguro! Windows 7 no la usa por

omision (pero se puede configurar para que las use, ojo).• NTLM (NT Lan Manager): No tan seguro como deberıa.

Caso: autenticacion en Windows

En un terminal (cmd.exe )como administrador:

Caso: autenticacion en Windows

Contrasenas LM (Lan Manager):

• Convierte todos los caracteres de la contrasena a mayusculas.

• Rellena con 0s la contrasena hasta llegar a los 14 caracteres.

• Parte la contrasena en dos bloques de 7 bytes.

• Usa los dos bloques como claves para cifrar con DES para unbloque de datos conocido: 0x4b47532140232425

• Concatena el resultado de los dos cifrados DES.

¡NO podıan haber metido mas la pata!

Caso: autenticacion en Windows

Contrasenas LM (Lan Manager):

VS

Caso: autenticacion en Windows

Contrasenas NTLM (NT Lan Manager):

• Usa una hash MD4 de 128 bits, que era segura en 1991:• Ataque de colision en microsegundos.• Ataque de pre-imagen teorico.

• Diferencia entre mayusculas y minusculas.

• No usa salt.

Caso: autenticacion en Windows

Syskey:

• Anade una capa extra de seguridad cifrando el almacen declaves de SAM.

• Opcion I (activada por omision):• Usa una clave generada para cada sistema y que esta oculta en

el Registro.• Viola el principio de Kerckhoffs: no sirve de nada.• bkhive la encuentra, samdump2 descifra el archivo de SAM.

• Opcion II:Generar la clave a partir de una contrasena adicionalque se introduce en el arranque.

• Opcion III: Almacenar la clave en un disco extraıble.

Caso: autenticacion en Windows

Ophcrack rompe contrasenas debiles de Windows NT (hashesMD4) con rainbow tables:

Caso: control de credenciales en Windows

En Windows es comun usar una cuenta de administrador. UserAccount Control (UAC) permite controlar los privilegios:

• Un administrador tiene un token de usuario y token deadministrador.

• Idea: evitar el uso del token de administrador para operacionesque no lo requieren.

• Cuando se intenta usar el de administrador (elevacion) sepresenta una ventana de dialogo UAC para pedir permiso ocredenciales.

Caso: control de credenciales en Windows

Los dialogos de elevacion usan un codigo de colores:

• Rojo (con escudo) si el firmante de la aplicacionesta bloqueado, es una aplicacion sin firma bajada de Internet.

• Azul (con escudo) si es una aplicacion administrativa deWindows (p.ej. Panel de Control).

• Azul (con interrogacion) si la aplicacion esta firmada porterceros con Authenticode y se puede verificar.

• Amarillo (con escudo) si la aplicacion no esta firmada oesta firmada pero no se puede verificar.

Caso: control de credenciales en Windows

Caso: control de credenciales en Windows

UAC niveles

• Solo el nivel mas alto impide autoelevacion silenciosa.

• Los niveles mas bajos no usan el escritorio seguro.

Caso: control de credenciales en Windows

Ventajas de UAC:

• No hay que usar dos cuentas (usuario y administrador).

• No hay que entender para que hay que usar la cuenta deadministrador y para que la otra.

• No hay que gestionar dos perfiles distintos (carpetas,escritorios, etc.).

• Aplica el principio de mınimo privilegio.

Inconvenientes: No ha sido bien recibido por ser molesto ¿Elproblema es la interfaz?

Algo que eres

Nuestro cuerpo nos puede autenticar (biometrıa):

• Escaner de iris.

• Escaner de retina.

• Huellas dactilares.

• Palma de la mano.

• Reconocimiento de voz.

• Reconocimiento facial.

Algo que eres

• Aumenta el riesgo para la integridad fısica del usuario.

• Son mas propensos a fallar:• Falso positivo: autenticacion erronea.• Falso negativo: aumenta la obstruccion.

• ¿Como se revoca una huella dactilar o una cara?

Algo que tienes

• Tu SmartPhone: Google Authenticator.

• SecureID

• Smart Cards

• RFID / NFC

• USB tokens

• Fortezza

• ...

Algo que tienes

Los dispositivos de autenticacion:

• Pueden disminuir la obstruccion, como NFC.

• Pueden aumentar la obstruccion, como SecureID.

• Hay que fiarse del HW lector: igual que con las contrasenas,puede existir spoofing.

• Nuevo riesgo: puedes perder el objeto, o te lo pueden robar.

• Si lo piensas, corremos los mismos riesgos a diario con lasllaves de nuestra casa o las tarjetas de credito.

DNIe

Por ejemplo, el DNI electronico (DNIe):

• Se usa para cualquier tipo de tramitacion telematica con elestado.

• Tiene la misma validez que el DNI normal.

DNIe

El DNI electronico (DNIe) es una SmartCard tamper-resistant conlos siguientes ficheros dentro:

• Datos de filiacion del titular

• Imagen digitalizada de la fotografıa.

• Imagen digitalizada de la firma manuscrita.

• Plantilla de la impresion dactilar de los dedos ındice de cada mano.

• Certificado X.509 para autenticacion, y la clave privada correspondiente.

• Certificado X.509 para firma, y la clave privada correspondiente.

• Certificado X.509 de la autoridad emisora.

La generacion de claves, el cifrado/descifrado, la firma, etc. se realiza en el chip de la

tarjeta.

DNIe

• Se entrega junto con un PIN (sic) (es una contrasena con 8-16 caracteres): algoque tienes + algo que sabes.

• Se puede cambiar la contrasena desde cualquier PC si sabemos la contrasenaviejo.

• Se puede reestablecer la contrasena (sin conocer el viejo) en un terminal especial(Punto de Actualizacion del DNIe). Es necesario proporcionar la huella dactilar(la verificacion se hace en el propio chip): algo que tienes + algo que eres.

Otras formas

• Algo que haces: por ejemplo, gestos ante una camara, en untouchpad, etc.

• Donde estas: el simple hecho de encontrarte en unalocalizacion fısica (p.ej., la sala de los servidores) te autentica.

Single Sign-On

• Una unica autenticacion para usar varios servicios distintos.

• ¿Tendremos Single Sign-On para todos los servicios?

Combinacion de metodos de autenticacion

SUN’s PAM (Pluggable Authentication Modules):

• Objetivos:• Combinar distintos metodos de autenticacion proporcionados

por distintos modulos independientes.• Usar distintos metodos de autenticacion sin modificar el codigo

de las aplicaciones.• Modificar la autenticacion sin parar el sistema.

• PAM esta disponible para distintos sabores de Unix.

Linux-PAM

Seis primitivas englobadas en cuatro grupos:

• Auth: tareas para autenticar al usuario.

• Account: tareas de gestion de los datos de una cuenta.

• Password: tareas para administrar los mecanismos de laautenticacion.

• Session: tareas a realizar al crear y destruir sesiones.

Linux-PAM

Auth:

• pam authenticate: sirve para autenticar al sujeto.

• pam setcred: sirve para establecer y gestionar lascredenciales. Tiene que llamarse despues depam authenticate y antes de establecer la sesion.

Linux-PAM

Session:

• pam open session: realiza las tareas asociadas con el iniciode sesion. Por ejemplo, actualizar logs de entrada, etc.

• pam close session: se encarga de las tareas asociadas con elfin de sesion. Por ejemplo, actualizar logs de salida, etc.

Linux-PAM

Account:

• pam acct mgmt: verifica si la cuenta esta en buenascondiciones. Por ejemplo si la contrasena caduco, si la cuentaesta cancelada, etc.

Linux-PAM

Password:

• pam chauthtok: cambia el objeto de la autenticacion (p.ej.,la contrasena), posiblemente comprobando que essuficientemente bueno, etc.

Linux-PAM

• En /etc/pam.d/ se crean ficheros con las polıticas para losdistintos servicios.

• Un fichero de polıticas define una pila de reglas que determinael exito de una operacion:

type control module-path module-arguments

• type: grupo (auth, account, password, session).• control: como afecta al resultado de la operacion.• module-path: modulo.• module-arguments: argumentos.

Linux-PAM

Control:

• requisite: si la operacion retorna error, se acaba la autenticacioncon fallo.

• required: si retorna error, el flujo continua aunque el resultadofinal ya esta decidido: sera un fallo.

• sufficient: si retorna exito, termina inmediatamente la con exito.Si retornar error, se sigue llamando al resto (y si el resto funcionan,la operacion acaba con exito).

• optional se ejecuta, pero lo que retorne (exito o fallo) no se tieneen cuenta.

Linux-PAM: ejemplo

Aplica un retardo, da igual lo que devuelva.

Si existe el fichero /etc/nologin

sólo root puede autenticarse en la máquina

Comprueba que el contexto anterior se ha

limpiado

Se leen las variables de entorno y las variables del

fichero /etc/default/locale

Se aplican todas las reglas del fichero de PAM

common-auth(normalmente pedir

password, comprobar hash)

Aplica filtros de/etc/security/group.confpara añadir al usuario a grupos dependiendo de

factores como la hora, TTY, etc.

Establece los límites del usuario según

/etc/security/group.conf

Imprime la fecha del último login.

Imprime el MOTD (Message of the day)

Imprime si el usuario tiene correo.

Aplica las reglas de esos tres ficheros de PAM

Autenticacion en sistemas distribuidos

Sistemas distribuidos: riesgos

Los riesgos a los que se expone el sistema:

• Espionaje de los mensajes que viajan por la red. No se puededetectar desde los extremos.

• Eliminacion, modificacion, e insercion de mensajestransmitidos. Este ataque es activo, y se puede detectar.

• Repeticion de mensajes antiguos. Tambien es activo.

Challenge-Response

• Objetivo: que las contrasenas no viajen por la red.

• El servidor envıa un reto.

• El cliente responde el reto.

• ¡Los retos no se deben repetir!

Challenge-Response

CRAM-MD5:

1. C ← S : nonce

2. C calcula r = HMACMD5(nonce, pass)

3. C → S : r,login

4. S comprueba si r = HMACMD5(nonce, pass)

Challenge-Response: ejemplo de relay attack

1. M ← S : nonce

2. C ← M : nonce

3. C calcula r = HMACMD5(nonce, pass)

4. C → M : r,login

5. M → S : r,login

6. S comprueba si r = HMACMD5(nonce, pass)

Protocolo ejemplo I

1. C crea m = “soy C”

2. C crea m′ = Ek(m,S)

3. C → S : m,m′

4. S verifica si m haciendo Dk(m′)

Protocolo ejemplo I: replay attack

1. M recupera m′ = Ek(m,S) viejo

2. M → S : m,m′

3. S verifica si m haciendo Dk(m′)

solucion: timestamps y nonces

Protocolo ejemplo II

1. C → S : “soy C”

2. C ← S : nonce

3. C crea m = Ek(nonce,C ,S)

4. C → S : m

5. S verifica que Ek(nonce,C , S) == m

Protocolo ejemplo III

Version con algoritmo asimetrico:

1. C → S : “soy C”

2. C ← S : nonce

3. C crea m = EKCpri(nonce,C , S)

4. C → S : m

5. C → S : Certc

6. S verifica el Certc con la CA

7. S verifica que DKCpub(m) == (nonce,C , S)

Needham-Schroeder

• Se basa en un servidor de autenticacion (A) que compartesecretos con todos los clientes y servidores.

• Las claves se centralizan en A.

• Establece una clave para la sesion: Kcs

Needham-Schroeder

1. C → A : C ,S ,Na

2. A crea m = EKc (Na, S ,Kcs ,EKs (Kcs ,C ))

3. C ← A : m

4. C consigue Na y Kcs haciendo DKc (m)

5. C verifica Na

6. C → S : EKs (Kcs ,C )

7. S consigue Kcs haciendo DKs (EKs (Kcs ,C ))

8. C ← S : EKcs (Nb)

9. C → S : EKcs (Nb − 1)

10. S verifica DKcs (Nb − 1) == Nb − 1

Needham-Schroeder

Problema: si una clave de sesion vieja Kcs queda comprometida, elatacante puede reiniciar la sesion antigua.

1. M recupera EKs (Kcs ,C ) viejo.

2. M → S : EKs (Kcs ,C )

3. S consigue Kcs haciendo DKs (EKs (Kcs ,C ))

4. M ← S : EKcs (Nb)

5. M consigue Nb.

6. C → S : EKcs (Nb − 1)

7. S verifica DKcs (Nb − 1) == Nb − 1

Solucion: usar timestamps y tiempos de validez.

Kerberos

Esta basado en Needham-Schroeder. Usa dos servicios centrales(pueden ejecutar en el mismo nodo):

• KDC (Key Ditribution Center): autentica al cliente.

• TGS (Ticket Granting Service): proporciona tickets paraacceder a los servicios.

Kerberos

KDCTGS

C S

Fase 1Fase 2

TGT?

TGT

TICKET?

TICKET

TICKET+AUTHENTICATORAUTHENTICATOR

Kerberos

Elementos:

• Ln: tiempo de vida.

• Tn: timestamp.

• Nn: nonce.

Fase 1: Conseguir un Ticket-granting ticket (TGT):

1. C → KDC : C ,TGS , L1,N1

2. KDC genera Ticketc,tgs = EKtgs (Kc,tgs ,C ,T1, L1)

3. C ← KDC : EKc (TGS ,Kc,tgs ,Ticketc,tgs , L1,N1)

Kerberos

Fase 2: Conseguir un ticket para el servicio:

1. C genera Authenticators,tgs = EKc,tgs (C ,T3)

2. C → TGS : C ,S , L2,N2,Ticketc,tgs ,Authenticators,tgs

3. TGS genera Ticketcs = EKs (Kcs ,C ,T2, L2)

4. C ← TGS : EKc,tgs (S ,Kcs ,Ticketcs , L2,N2)

5. C genera Authenticatorc = EKcs (C ,T4)

6. C → S : Authenticatorc ,Ticketcs

7. S genera Authenticators = EKcs (T4)

8. C ← S : Authenticators

Plan 9 auth

• Tambien esta basado en Needham-Schroeder.

• Organizado en dominios de autenticacion.

• El servidor impone el dominio para realizar la autenticacion.

• Permite a un usuario hablar en nombre de otro usuario: UIDr

es el UID del proceso en el cliente; UIDc es el UID del sistemacliente; puede que UIDr 6= UIDc , en ese caso, UIDc habla ennombre de UIDr .

Plan 9 auth

1. C → S : N1

2. C ← S : N2,UIDs ,Dom

3. C → A : N2,UIDs ,Dom,UIDc ,UIDr

4. A genera Ticketsc = EKs (N2,UIDr ,UIDc ,Kcs)

5. C ← A : Ticketsc ,EKc (N2,UIDr ,UIDc ,Kcs)

6. C incrementa CTR

7. C genera Authenticatorc = EKcs (N2,CTR)

8. C → S : Ticketsc ,Authenticatorc

9. S genera Authenticators = EKcs (N1,CTR)

10. C ← S : Authenticators

Autenticacion en el WWW

Comunmente:

1. Se establece un canal TLS con el servidor.

2. El cliente se autentica con login y contrasena.

3. Se instalan cookies en el cliente.

4. El cliente presenta una cookie en posteriores peticiones deesta sesion.

Autenticacion en el WWW

Algunos atributos de las cookies relacionados con la seguridad:

• Domain: solo se puede usar para ese dominio.

• Path: solo se puede usar para esa ruta en la URL.

• Expires: fecha de caducidad.

• Secure: solo para usar con HTTPS.

• HttpOnly: no accesibles para scripts.

Autenticacion en el WWW

Riesgos comunes:

• Mallory puede reemplazar las cookies si se hace pasar por elservidor .

• Session hijacking : Mallory se hace con la cookie (nos roba lasesion). P. ej. cuando se mezcla HTTPS con HTTP (¡muymala idea!) hay riesgo de enviar cookies delicadas en claro.

• Session fixation: Mallory nos induce a crear una sesion con unID determinado (por tanto, puede continuar con la sesion). P.ej. phising, pinchamos en el link.

Autenticacion en el WWW

Riesgos comunes:

• Cookie poisoning : Mallory forja sus propias cookies paraautenticarse como otro usuario.

• Cross-site scripting (XSS): Mallory introduce scriptsmaliciosos en las paginas que visitas (de una tercera parte)que ejecutan como si fuesen legıtimos.

• Ojo: los scripts maliciosos se pueden injectar en cachesintermedias, en la cache del navegador, lo puede hacer elpropio navegador, etc.

Autenticacion en el WWW

Open ID:

• Proposito: autenticacion federada para el WWW.

• Idea: usas un servidor de Open ID para autenticarte ante unaaplicacion web de un tercero sin darle tu contrasena.

• Proveedores de Open ID: Google, Facebook, Yahoo!,Microsoft, AOL, MySpace.

• No confundir con OAuth.

• Riesgo: phising, se presenta una pagina exactamente igual quela del proveedor de Open ID, pero que no es del proveedor.

Autorizacion en el WWW

Imagen c© Justen Stepka

Control de acceso

Control de acceso

• Acceso: un sujeto activo que intenta interactuar con un objetopasivo realizando una operacion de acceso.

• El sistema permite/deniega en base a:

• Lo que le esta permitido hacer al sujeto.• Lo que esta permitido hacerle al objeto.

• Errores en el diseno o la implementacion pueden permitirrealizar operaciones no autorizadas.Ejemplo: side-channel de Dropbox.

Operaciones de acceso

Ejemplos:

• Anadir

• Leer

• Escribir

• Ejecutar

• Borrar

• Cambiar permisos

• Cambiar dueno

• Listar

• Buscar/atravesar

Pertenencia

El control de acceso puede ser

• Discrecional (Discretionary Access Control o DAC): elusuario posee objetos y autoriza al resto para acceder a ellos.

• Obligatorio (Mandatory Access Control o MAC): los usuariosno gestionan el acceso a los objetos.

Mandatory Access Control

• Entornos muy restrictivos (p.ej., militares).

• Sistemas de Seguridad Multinivel (MLS):• Usuarios con rango.• Objetos con nivel de seguridad.• Compartimentos.

• Centrados en la confidencialidad (modelo Bell-LaPaluda):• Puedes generar documentos de tu nivel o de mas alto nivel.• Puedes observar documentos de tu nivel o de mas bajo nivel.

• Centrados en la integridad (modelo BIBA):• Puedes modificar documentos de tu nivel o de mas bajo nivel.

Mandatory Access Control

Ejemplo: Mandatory Integrity Control (MIC) en Windows 7 aplicaMAC BIBA antes de aplicar el control de acceso discrecional:Cuatro niveles:

• Bajo (no confiable). Los ejecutables pueden ser marcados como nivel bajo si sonpeligrosos (p.ej. bajados de Intenet y no firmados). Solo pueden modificarcarpetas temporales, etc.

• Medio (usuario). Los usuarios normales y los objetos que no tienen etiqueta deintegridad tienen este nivel.

• Alto (administrativo). Los administradores tiene este nivel, la carpeta deArchivos de Programa, etc.

• Sistema (control total). Los servicios del sistema tienen este nivel.

IBAC

IBAC: Control de acceso basado en la identidad.

• Access Control Matrix: filas: usuarios, columnas: objetos.

list.c a.doc word.exe

esoriano r,w r -

paurea r r w,x

nemo r r,w -

sdemingo - - r,w,x

IBAC

• Access Control List: una columna de la matriz.

list.c

esoriano r,w

paurea r

nemo r

sdemingo -

Caso: UNIX

Permisos POSIX:

• Permisos rwx para dueno, grupo, y resto.

• Los grupos se especifican en /etc/groups.

• chmod cambia los permisos.

• chown cambia el dueno de un fichero. Solo puede hacerlo root.

Caso: UNIX

Permisos POSIX:

• chgrp cambia el grupo de un fichero. Lo puede hacer el duenodel fichero (tiene que pertenecer al grupo al que se cambia).

• sticky bit (+t) en directorios: restringe la eliminacion deentradas de directorio aunque el directorio tenga permisos deescritura para todo el mundo: solo puede borrar/renombrar eldueno y root. P. ej. /tmp

Caso: ACLs en Mac OS X

Ejemplo de ACLs, Mac OS X:

• Conviven con los permisos UNIX. Nota: Linux (ext3) tambientiene ACL extendidas, pero no son iguales (man acl).

• La ACL extendida es una lista ordenada de ACEs (AccessControl Entry).

• Se pueden listar las ACLs extendidas con ls -le

Caso: ACLs en Mac OS X

• La ACL extendida es una lista de ACE (Access Control Entry).

• Una ACE se compone de:

• ¿Quien?: usuario o grupo.• Permiso: Allow o Deny.• Accion de acceso sobre el objeto.

• Un usuario tiene acceso a un recurso si alguna ACE Allow olos permisos UNIX se lo permiten, excepto si alguna ACEDeny se lo impide → Los Deny mandan.

• Es mas facil controlar el acceso determinando los permisos delos contenedores (directorios) y que los ficheros los hereden.

Caso: ACLs en Mac OS X

• Acciones de acceso:delete, readattr, writeattr, writeextattr, readsecurity, writesecurity,chown.

• Directorios:list, search, add file, add subdirectory, delete child.

• Ficheros:read, write, append, execute.

• Herencia (para directorios):file inherit, directory inherit, limit inherit, only inherit.

Ejemplo:

chmod +a ‘‘group:wheel deny delete,file inherit,directory inherit’’ dir1

Caso: ACLs en Windows 7

Dos tipos:

• DACL (Discretionary ACL): lista de ACEs que permiten odeniegan un tipo de acceso para una cuenta o grupo.

• SACL (System ACL): usada para auditar, es una lista de ACEsque indican el tipo de accion que provocara una entrada en elSecurity Event Log.

RBAC

RBAC: Control de acceso basado en roles.

• Rol: coleccion con nombre de permisos.

• Se asignan roles a los sujetos/grupos del sistema. Un usuariopuede tener mas de un rol. Los roles pueden ser dinamicos.

• Un grupo organiza identidades, un rol organiza permisos.

• Puede haber una jerarquıa de roles.

• Es util para implementar la separacion de deberes.

• Escalabilidad: los usuarios del mismo tipo suelen tener losmismos privilegios.

• Comodo: los usuarios cambian mas que los privilegios quetienen las distintos clases de usuarios.

Capabilities

Control de acceso basado en capablities:

• El sujeto presenta un capability junto con su peticion pararealizar una operacion de acceso.

• La capability puede ser un certificado firmado, un ticket, unasecuencia pseudo-aleatoria, etc.

• Facilita la delegacion de privilegios y la escalabilidad.

• Dificulta la revocacion de privilegios y la auditorıa (quienpuede hacer que en un momento dado).

Autorizacion en el WWW: OAuth

OAuth :

• Proposito: autorizacion para usar APIs de terceros sin dar lascredenciales.

• El usuario permite a un tercero acceder a ciertas operacionesdel API de un servicio web, sin darle tu contrasena.

• Usa timestamps, nonces y firmas digitales.

• Ejemplos: Twitter, YouTube.

Autorizacion en el WWW: OAuth

Imagen c© Google

ABAC

Control de acceso basado en atributos:

• Un atributo del sujeto le autoriza a acceder a un recurso.

• Por ejemplo: edad, nacionalidad, etc.