You are on page 1of 10

Universidad Rey Juan Carlos Escuela Tcnica Superior de Ingeniera Informtica Grado en Ingeniera Informtica

Seguridad Informtica
Tema 2: Identificacin, autenticacin y control de acceso

1. Introduccin
En un sistema informtico suele ser necesario conocer la identidad de los usuarios que requieren el uso de un servicio. La autenticacin es el proceso de verificar la identidad de un usuario. Algunos de los motivos por los que la autenticacin es necesaria son: La identidad de un usuario es un parmetro que se usa en algunas decisiones de control de acceso (permisos de acceso a ficheros, recursos, etc). La identidad de un usuario se graba en diversos logs cuando ocurren determinados sucesos relevantes (inicio de sesin, acceso a un recurso de pago por uso, comunicaciones con organismos pblicos, . . .).

2. Identificacin y autenticacin
2.1 Usuario y contrasea.
Un mecanismo que seguro que todo usuario ha usado en alguna ocasin es la identificacin mediante un nombre de usuario o login y la autenticacin mediante una contrasea o password, por ejemplo al iniciar sesin en el ordenador personal o al acceder al correo electrnico a travs de una web. En el inicio de sesin en un ordenador personal, una vez introducido el nombre de usuario y la contrasea el sistema compara los datos introducidos con los que tiene almacenados en un fichero de contraseas. Si la comparacin es exitosa, se inicia la sesin y el usuario tiene acceso al sistema. En caso contrario el inicio de sesin falla, se mostrar un mensaje de error y se instar al usuario a que lo intente de nuevo. Algunos sistemas pueden incluir algn mecanismo de seguridad para evitar que un usario malicioso intente adivinar la clave de otro usuario, como por ejemplo bloquear la cuenta si el nmero de intentos fallidos de acceso supera un umbral. Como la identificacin mediante login y password es algo que todos los usuarios conocen y no es complicado de implementar, es un mecanismo que se utiliza en gran variedad de aplicaciones adems de en el inicio de sesin en un ordenador personal: correo web, banca on-line, compras on-line, . . . Por otra parte gestionar la seguridad de las contraseas de un sistema es una tarea que puede resultar compleja, ya que el robo de una contrasea supone que alguien pueda acceder a datos a los que no debera acceder, o realizar acciones en nombre de otro usuario. Un password puede ser robado en muchas situaciones diferentes, y de muchas formas: Cuando se crea un usuario nuevo se le debe asignar un password y comunicrselo de alguna manera: correo electrnico, correo postal, entregrselo en persona en una oficina, etc. Si un atacante intercepta esta comunicacin, tendr acceso al password. Un atacante puede tratar de adivinar el password. Si los usuarios escogen passwords fciles de recordar tal como fechas de nacimiento, nombre de los hijos, estos pueden ser adivinados fcilmente mediante prueba y error. Tambin puede ser robado mediante tcnicas de phishing, o utilizando un keylogger. A veces con ingeniera social se puede conseguir un password de un usuario inexperto.

Tambin es posible que el fichero de contraseas de un sistema se vea comprometido y un atacante utilice un mtodo de fuerza bruta o uno basado en diccionario para extraer los passwords del fichero de contraseas.

DEFINICIONES
Phishing Ataque que consiste en presentar a un usuario una pantalla de inicio de sesin falsa, o una pgina web falsa en la que se le solicita que introduzca su login y password. Una vez introducidos son enviados al atacante. Programa que captura todo lo que se introduce por teclado. Algunos virus tienen funcionalidad de keylogger, graban todo lo que el usuario introduce y lo envan peridicamente al atacante. Se llama as al arte de convencer a una persona de que te proporcione su contrasea, generalmente hacindose pasar por un administrador del sistema, un empleado del banco, etc. Se basa en el principio de que en la seguridad de cualquier sistema el usuario es el eslabn ms dbil de la cadena. Ataque que consiste en probar uno por uno todos los passwords posibles hasta encontrar el correcto. Ataque que consiste en probar uno por uno todos los passwords contenidos en un diccionario de palabras frecuentes.

Keylogger

Ingeniera social

Ataque de fuerza bruta Ataque de diccionario

Se pueden aumentar las defensas para hacer que los ataques de fuerza bruta o de diccionario sean ms dificles de realizar. Cambiar los passwords por defecto: muchos sistemas vienen con una clave por defecto para el usuario administrador con el fin de facilitar la tarea de instalacin del equipamiento. Ejemplos: routers que envan las compaas telefnicas para que el propio cliente los instale en su casa. Suelen venir con parejas tpicas de login y password como: admin admin, 1234 1234, admin 1234. Una vez instalado y configurado el dispositivo es muy importante cambiar la clave. Aumentar la longitud de los passwords: cuantos ms caracteres tiene un password ms posibles passwords existen, con lo cual un ataque de fuerza bruta tendra que probar muchas ms contraseas antes de encontrar la correcta. Utilizar varios tipos de caracteres en el password: para un password de n caracteres, el nmero de passwords diferentes que existen es An , siendo A el tamao del juego de caracteres utilizado para crear los passwords. Ejemplo: si se utilizan passwords de 8 caracteres que sean todo letras minsculas (a-z) se tiene: n = 8, A = 27 y en total existen 278= 2.8E11 passwords diferentes. Si en lugar de utilizar solo letras minsculas, se aaden tambin las maysculas (a-zA-Z) se tiene: n = 8, A = 54 y en total existen 548 = 7.2E13 passwords diferentes. No utilizar passwords obvios: como nombres propios, ciudades, equipos de futbol, que son muy dbiles frente a un ataque de diccionario.

El propio sistema informtico puede mejorar la seguridad de los passwords utilizando distintos mecanismos: Comprobaciones de password: cuando un usuario cambia su password el sistema comprueba que no se encuentra dentro de un diccionario de passwords dbiles. Tambin puede exigir al usuario que utilice al menos un determinado nmero de caracteres o que mezcle letras minsculas, maysculas, nmeros, caracteres especiales, etc con el fin de dificultar un ataque de fuerza bruta. Generacin de passwords: algunos sistemas operativos no permiten escoger al usuario un password si no que generan passwords aleatorios pero pronunciables (y por tanto ms fciles de recordar). Envejecimiento de passwords: se obliga a los usuarios a cambiar el password cada cierto tiempo (cada mes, cada ao, ). Tambin se puede incluir algn mecanismo que impida que un usuario escoja como password uno que ya haba utilizado con anterioridad. Limitar el nmero de intentos de autenticacin: si se falla varias veces al introducir el password la cuenta se bloquea y se debe acudir a un administrador del sistema para que la desbloquee. Puede parecer buena idea obligar a los usuarios a utilizar passwords aleatorios, muy largos y con muchos caracteres, pero lo que se suele conseguir con eso es que sean difciles de memorizar y el usuario los apunte en un post-it y lo pegue en el monitor del ordenador, lo cual es una vulnerabilidad muy grande.

2.2 El archivo de passwords


Se haba comentado previamente que cuando un usuario se autentica en un sistema, el sistema compara el password que introduce el usuario con el password que est almacenado en un archivo de passwords. Este archivo que contiene todos los passwords de todos los usuarios del sistema est relacionado con algunas amenazas, como la de suplantacin de identidad. Un atacante puede hacerse pasar por otro usuario si consigue leer su password, o puede modificar el password de un usuario si las entradas del archivo de password son modificables. Para proteger el archivo de passwords existen las siguientes alternativas: Proteger el contenido del archivo mediante algn mecanismo de criptografa. Utilizar un mecanismo de control de acceso proporcionado por el sistema operativo. Una combinacin de los dos mtodos anteriores, ms algo adicional que ralentice los ataques de fuerza bruta o de diccionario. Para proteger mediante criptografa el archivo de passwords se puede utilizar una funcin de un solo sentido o one-way function. Una one-way function es una funcin que es muy fcil de calcular pero muy dificil de invertir. Esto significa que para una funcin f, dado x es muy fcil calcular f(x), pero dado f(x) es my difcil calcular x. Para proteger el archivo de passwords lo que se hace es en lugar de almacenar la clave en claro, se almacena la f(clave). As el proceso de inicio de autenticacin es un poco diferente: El usuario introduce el login.

El usuario introduce el password. El sistema calcula f(password) y lo compara con el valor almacenado en el archivo de claves. Si coincide el inicio de sesin se completa. Con este mecanismo un atacante ya no puede hacerse pasar por otro usuario simplemente mirando su password en el archivo de claves. An as, si el archivo se puede leer sigue siendo vulnerable a ataques de fuerza bruta o de diccionario. Es conveniente utilizar un mecanismo de control de acceso que impida que el archivo de claves se pueda leer por cualquier usuario que no sea el administrador. Lo ms comn es utilizar los permisos de lectura/escritura que proporcionan los sistemas operativos para hacer que el archivo no pueda ser accedido por los usuarios comunes. Usando estos dos mtodos conjuntamente, un atacante tiene que sobrepasar dos barreras para comprometer el archivo de passwords: primero tiene que conseguir saltar la barrera de la proteccin de lectura del archivo, y luego tiene que conseguir llevar a cabo un ataque de fuerza bruta o diccionario sobre el archivo. Ejemplo: El archivo de passwords en linux. En el sistema operativo Linux el archivo de passwords se encuentra en /etc/shadow. Este archivo solo es accesible por el usuario root. En el archivo se encuentran los passwords cifrados de todos los usuarios del sistema. Los passwords estn cifrados con la funcin crypt(3) que est basada en el algoritmo DES (Data Encryption Standard). Las entradas del archivo tienen varios campos separados por el carcter : Los campos, en orden son: login password cifrado Fecha desde la ltima vez que se cambio el password, expresada en n de das desde el 1 de enero de 1970. Edad minima del password: nmero de das que faltan hasta que el usuario pueda cambiar el password. Edad mxima del password: nmero de das que faltan hasta que el sistema obligue al usuario a cambiar el password. Periodo de aviso: nmero de das que faltan hasta que el sistema comience a avisar al usuario de que su password est prximo a caducar. Periodo de inactividad del password: nmero de das en el que el password sigue siendo vlido para una sesin ms, una vez que ya ha caducado. Fecha de caducidad de la cuenta de usuario: fecha en que se cancelar la cuenta del usuario. Campo reservado para uso futuro. Un ejemplo de entrada en el archivo shadow se muestra a continuacin. Aparecen resaltados los 2 campos que ms nos interesan ahora mismo que son el login y el password cifrado: seg_inf:$6$O9yzWDFj$LP7yA68fBWC3rDlX4/BlaVST45sTiijQiWCqbw.LmfFJsFrK41Fv8ycxyUZuh 9mSQmkB8mgxteeF.mj212cg/0:15231:0:99999:7:::

2.3 Otros mtodos de autenticacin


Existen ms mtodos de autenticacin adems de la autenticacin mediante contrasea. Un usuario puede autenticarse en base a: Algo que sabe. Algo que tiene. Quin es. Qu hace. Dnde est. Algo que sabe Es un mecanismo de autenticacin basado en algn tipo de secreto que el usuario concoce. La autenticacin basada en passwords es de este tipo, pero no es la nica. Otros ejemplos son los nmeros PIN de las tarjetas de crdito, o la informacin de carcter personal que te pregunta el operador de banca telefnica antes de realizar una operacin (fecha de nacimiento, DNI, nombre de la esposa o marido, etc). Algo que tiene El usuario utiliza algn elemento fsico para identificarse y autenticarse, como por ejemplo una tarjeta inteligente o el DNI electrnico. Por lo general este tipo de mecanismo se utilizan en conjuncin con el anterior (algo que sabe), como por ejemplo en los cajeros automticos, donde se utiliza por una parte algo que tienes (la tarjeta de crdito) y algo que sabes (el nmero PIN). Quin es Es un tipo de autenticacin basado en caractersitcas fsicas nicas de cada persona, como puede ser el patrn del iris, la geometra de la mano o las huellas dactilares. Qu hace Son mtodos basados en rasgos conductuales de las personas, como puede ser la escritura (firma manuscrita), la forma de teclear en el ordenador (frecuencia de pulsacin, presin ejercida en las teclas, ). Dnde est Es un mtodo que por lo general se usa en combinacin con una contrasea. Para acceder al sistema hace falta saber un password y para ms seguridad solo se permite acceder desde determinados lugares, como por ejemplo desde un terminal concreto, o desde una direccin IP que est dentro de un rango concreto, etc. Por ejemplo algunos sistemas de correo electrnico seguro o de banca on-line pueden pedir una segunda contrasea si detectan que se est intentando acceder desde un lugar no habitual: si un usuario las ltimas veces que ha accedido al sisrema es desde una direccin IP de Espaa, y de pronto un da intenta acceder desde Rusia

el sistema le pedir otra contrasea adicional o que se ponga en contacto por telfono con su oficina.

3. Control de acceso
Una vez que un usuario se ha autenticado en un sistema, ya puede hacer uso de los recursos del sistema. Pero, de todos los recursos? De algunos? Puede acceder a los archivos de otros usuarios? Otros usuarios pueden acceder a sus archivos? Resulta evidente que es necesario algn mecanismo que controle cmo y por quin se usan los distintos recursos de un sistema informtico. Este mecanismo es el control de acceso. En un sistema existirn usuarios y recursos. El control de acceso se puede especificar: Indicando para cada usuario qu es lo que tiene permitido hacer con cada recurso. Indicando para cada recurso qu se puede hacer con l y por quin. Es necesario definir el tipo de operaciones que se pueden realizar con cada recurso. Aqu vamos a utilizar un modelo que define tres operaciones: Leer (r): se puede observar el recurso. Por ejemplo si es un archivo, se puede abrir para ver su contenido. Escribir (w): se puede alterar el recurso. Por ejemplo si es un archivo, se puede aadir o quitar contenido del archivo. Ejecutar (x): dependiendo del tipo de recurso, significar una cosa u otra. Continuando con el ejemplo de los archivos, significa que se puede ejecutar el programa contenido en el archivo. Todos los ejemplos estn hechos tomando como ejemplo de recurso un archivo, ya que es una forma sencilla de ver qu es un recurso y qu tipo de operaciones se pueden realizar. Por otra parte, muchos sistemas operativos modelan todos los recursos como si fueran archivos. Ms adelante se ver un ejemplo de significado de las tres operaciones con otro tipo de recurso.

3.1 Estructuras para control de acceso


Matriz de control de acceso En un nivel bsico se puede definir individualmente para cada combinacin de usuario y recurso las operaciones que estn permitidas, dando lugar a una matriz de control de acceso. Por ejemplo, en un sistema con dos usuarios (Alice y Bob) y tres recursos (bob.doc, Word.exe y leeme.txt) una posible matriz de acceso se muestra en la siguiente tabla: bob.doc --rwWord.exe --x --x leeme.txt r-rw-

Alice Bob

Esta matriz de control de acceso indica que: bob.doc puede ser ledo y escrito por Bob.

Word.exe puede ser ejecutado por Alice y por Bob. leeme.txt puede ser ledo por Alice y por Bob, pero solamente Bob puede escribir. Las matrices de control de acceso no son muy recomendables de utilizar en una implementacin real, ya que su manejo se complica mucho si el nmero de usuarios y recursos es elevado, o si cambian con cierta frecuencia. Listas de capacidades Otra forma de manejar el control de acceso es mediante una lista por cada usuario con los recursos sobre los que tiene algn permiso. Sera el equivalente a coger la fila de la matriz de acceso que se corresponde con el usuario. Para la matriz de acceso del ejemplo anterior, las capacidades de cada usuario seran: Alice: Word.exe, ejecutar; leeme.txt, leer. Bob: bob.doc, leer, escribir; Word.exe, ejecutar; leeme.txt, leer, escribir. Cuando un usuario crea un nuevo recurso (un archivo por ejemplo), puede conceder a otros usuarios permisos para acceder a ese recurso. Este tipo de control de acceso no es muy utilizado debido a que es difcil de gestionar: Para un recurso concreto es complicado saber quien tiene permisos sobre l. Por consiguiente es difcil revocar un permiso sobre un recurso, ya que para ello es necesario llevar la cuenta de a quien se le han otorgado permisos sobre ese recurso. Listas de control de acceso Las listas de control de acceso almacenan en el propio recurso una lista con los permisos sobre ese recurso. Se corresponden con las columnas de la matriz de control de acceso. Para el ejemplo anterior, las listas de control de acceso seran: bob.doc: Bob, leer, escribir. Word.exe: Alice, ejecutar; Bob, ejecutar. leeme.txt: Alice, leer, escribir; Bob, leer, escribir. Un problema de las listas de control de acceso es que resulta laborioso saber sobre que objetos tiene permiso un usuario concreto.Gestionar los permisos con una lista de control de acceso que contenga los permisos para cada usuario puede ser muy laborioso si el nmero de usuarios es muy grande, o si el conjunto de usuarios cambia frecuentemente. En lugar de eso lo que se suele hacer es utilizar grupos de usuarios, y derivar los derechos de acceso que tiene un usuario basndose en el grupo al que pertenece. Ejemplo: Control de acceso a archivos en Linux En el sistema operativo Linux los archivos tienen un propietario (el usuario que cre el archivo), y tambin estn asociados a un grupo. Los permisos sobre los archivos se guardan en una lista de control de acceso junto con el

propio archivo. La lista de control de acceso no incluye todos los usuarios que tienen algn tipo de permiso sobre el archivo, si no que solamente almacena tres conjuntos de permisos: los permisos asociados al propietario del archivo, los permisos asociados a los usuarios que pertenecen al grupo del archivo, y los permisos asociados a cualquier otro usuario. Los permisos de un archivo se pueden consultar con el comando ls l nombre_archivo que devuelve algo como: -rwxr-xr--@ 1 pablohuerta staff 95629 16 sep 21:42 prog1 Los 10 primeros caracteres son los que hacen referencia a los permisos, y tienen el siguiente significado: El primer caracter indica el tipo de archivo: (- archivo normal, d directorio, c dispositivo de caracteres, . . .) Dependiendo del tipo de archivo, los permisos que se presentan despus tienen un significado u otro. Los 3 siguientes caracteres indican en orden los permisos de lectura (r), escritura (w) y ejecucin (x) que tiene el dueo del archivo. El carcter - en alguna posicin indica que no se tiene ese permiso. Los siguientes 3 caracteres indican los permisos que tienen los usuarios que pertenecen al grupo del archivo. Los siguientes 3 caracteres indican los permisos que tiene cualquier otro usuario. En el ejemplo anterior los permisos son: Dueo del archivo: rwx lectura, escritura y ejecucin. Usuarios del grupo: r-x lectura y ejecucin. Resto de usuarios: r-- lectura. El comando devuelve ms informacin, como el usuario dueo del archivo (pablohuerta) y el grupo asociado al archivo (staff). El dueo del archivo puede cambiar los permisos utilizando el comando chmod, y tambin puede cambiar el grupo asociado al archivo con el comando chgrp. Los permisos tienen un significado diferente dependiendo del tipo de archivo. Para archivos normales, los permisos significan: Lectura: se puede ver el contenido del archivo. Escritura: se puede modificar el contenido del archivo. Ejecucin: el archivo se puede ejecutar. Para un directorio, los permisos significan algo diferente: Lectura: se pueden ver los nombres de los archivos contenidos en el directorio. Escritura: se pueden crear, borrar y renombrar los archivos contenidos en el directorio. Ejecucin: se puede acceder al directorio.

3.2 Modelos de control de acceso


Existen tres modelos genricos de control de acceso:

Mandatory Acces Control (MAC): En este tipo de modelo es el propio sistema el que toma las decisiones de quin tiene acceso a qu recursos en el sistema. Con este modelo si un usuario crea un documento nuevo, es el sistema el que decide quien tiene acceso al documento, en lugar de ser el propio dueo del documento el que toma ese tipo de decisiones. Discretionary Access Control (DAC):En este modelo son los usuarios los que deciden quin tiene acceso a los archivos o recursos creados por ellos. Control de acceso basado en roles: Es similar al modelo MAC, en cuanto a que es el propio sistema el que decide qu usuarios tienen acceso a determinados recursos, pero en este caso lo hace teniendo en cuenta el rol que tiene el usuario dentro del sistema (administrador, usuario normal, invitado, etc). Los sistemas reales utilizan alguna variante de estos modelos o una combinacin de ellos, adaptada a sus necesidades especficas. Por ejemplo, en sistemas operativos tipo UNIX o Linux se utiliza un modelo DAC para los archivos de los usuarios: son los propios usuarios los que tienen el control sobre quien tiene acceso a sus propios archivos. Pero tambin se usa un modelo basado en roles para el acceso a otro tipo de recursos, por ejemplo el administrador del sistema puede crear un grupo impresoras en el que incluir a los usuarios que pueden usar las impresoras, y har que cada impresora en el sistema este asociada a ese grupo y que los permisos para el grupo sean de escritura.

3.3 El modelo de Bell-LaPadula


El modelo de Bell-LaPadula es un modelo de control de acceso muy popular en entornos gubernamentales o militares. En este modelo los recursos estn clasificados en 4 niveles crecientes de seguridad: no confidencial, confidencial, secreto y alto secreto. Los usuarios tambin estn clasificados en los mismos 4 niveles. La clave del modelo de Bell-LaPadula no es la clasificacin de recursos y usuarios en niveles, si no las reglas de lectura y modificacin que propone para regular que usuarios tienen acceso a qu recursos. La regla que establece quin puede leer un recurso es simple: un usuario solamente puede leer recursos de su propio nivel o inferiores. La modificacin de recursos sigue la siguiente regla: un usuario solamente puede modificar recursos que son de su propio nivel. No se pueden modificar recursos de un nivel inferior. Esta regla garantiza que un usuario de un nivel alto de seguridad no puede escribir por error informacin en archivos de nivel inferior, evitando as que se escape informacin sensible o secreta desde los niveles altos de seguridad a los niveles bajos.

You might also like