Modulo4 SeguridadSistemasInformaticosMay2015
Modulo4 SeguridadSistemasInformaticosMay2015
Sistemas Informáticos
Autores
Uno de los requerimientos primordiales de los sistemas informáticos que desempeñan tareas
importantes son los mecanismos de seguridad adecuados a la información que se intenta
proteger. El conjunto de tales mecanismos ha de incluir al menos un sistema que permita
identificar a las entidades (elementos activos del sistema, generalmente usuarios) que
intentan acceder a los objetos (elementos pasivos, como ficheros o capacidad de cómputo),
mediante procesos tan simples como una contraseña o tan complejos como un dispositivo
analizador de patrones retinales. Los sistemas que habitualmente se utilizan para identificar a
una persona, como el aspecto físico o la forma de hablar, son demasiado complejos para una
computadora. El objetivo de los sistemas de identificación de usuarios no suele ser identificar a
una persona, sino autenticar que esa persona es quien dice ser realmente. Aunque ambos
términos parezcan equivalentes, para un ordenador existe una gran diferencia entre ellos. Un
potencial sistema de identificación estrictamente hablando, por ejemplo uno biométrico
basado en el reconocimiento de la retina, actuaría de la siguiente forma: una persona mira a
través del dispositivo lector y el sistema tiene que ser capaz de decidir si es un usuario válido, y
en ese caso decir de quién se trata; esto es identificación. Sin embargo, lo que habitualmente
hace el usuario es introducir su identidad (un número, un nombre de usuario) además de
mostrar sus retinas ante el lector. El sistema, en este caso, no tiene que identificar a esa
persona, sino autenticarlo, comprobando los parámetros de la retina que está leyendo con los
guardados en una base de datos para el usuario que la persona dice ser. De esta forma, se está
reduciendo el problema de una población potencialmente muy elevada a un grupo de usuarios
más reducido, el grupo de usuarios del sistema que necesita autenticación.
Esta última categoría se conoce con el nombre de autenticación biométrica. Es fácil ver
ejemplos de cada uno de estos tipos de autenticación: un password (Unix) o passphrase (pgp)
es algo que el usuario conoce y el resto de personas no, una tarjeta de identidad es algo que el
2.1 Contraseñas
El modelo de autenticación más básico consiste en decidir si un usuario es quien dice ser
simplemente basándose en una prueba de conocimiento que a priori sólo ese usuario puede
superar. Esa prueba de conocimiento no es más que una contraseña que en principio es
secreta. Evidentemente, esta aproximación es la más vulnerable a todo tipo de ataques, pero
también la más barata, por lo que se convierte en la técnica más utilizada en entornos que no
precisan de una alta seguridad, como es el caso de los sistemas Unix en redes normales (y en
general en todos los sistemas operativos en redes de seguridad media-baja). En todos los
esquemas de autenticación basados en contraseñas se cumple el mismo protocolo: las
entidades (generalmente dos) que participan en la autenticación acuerdan una clave, que han
de mantener en secreto si desean que la autenticación sea fiable. Cuando una de las partes
desea autenticarse ante otra se limita a mostrarle su conocimiento de esa clave común, y si
esta es correcta se otorga el acceso a un recurso. Lo habitual es que existan unos roles
preestablecidos con una entidad activa que desea autenticarse y otra pasiva que admite o
rechaza a la anterior (en el modelo del acceso a sistemas Unix: usuario y sistema que le
permite o deniega la entrada). Como se ha indicado anteriormente, este esquema es muy
frágil, basta con que una de las partes no mantenga la contraseña en secreto para que toda la
seguridad del modelo se pierda. Por ejemplo, si el usuario de una máquina Unix comparte su
clave con un tercero, o si ese tercero consigue leerla y rompe su cifrado (por ejemplo, como se
verá seguidamente, mediante un ataque de diccionario), automáticamente esa persona puede
autenticarse ante el sistema con éxito con la identidad de un usuario que no le corresponde.
Este mecanismo extrae los hashes de las contraseñas del archivo /etc/passwd, dejando el
lugar de la contraseña vacío [1]. Estos van a ser guardados en el archivo /etc/shadow, al
que no pueden acceder los usuarios o aplicaciones del sistema, de forma que éstos no tengan
acceso a los hashes de las contraseñas. Aun así hay que vigilar con qué función de hash se
realiza la codificación de las contraseñas. Por ejemplo, el hash basado en DES es vulnerable, es
decir, se han encontrado en fallos que permiten obtener una secuencia de bytes que generen
ese hash, en un corto espacio de tiempo con una máquina medianamente potente. Con este
esquema sólo se podrá acceder a dichos hashes con permisos de superusuario (root) pero
cuando la seguridad en uno de los servidores es vulnerada y el atacante consigue el acceso al
archivo shadow, si las contraseñas están codificadas con un algoritmo sin gran fortaleza, se
pueden obtener contraseñas que generen esos hashes y comprometer otros equipos en los
que los usuarios tengan cuenta, ya que la probabilidad de que el usuario y la contraseña de
éstos sea la misma es muy elevada. Como se ha dicho el hash DES (y también el MD5, que ya
está comprometido) no se debe utilizar y hay que cambiarlo por algoritmos más fiables como
el hash basado en SHA con tamaños de clave a partir de 2561. El fichero /etc/shadow sólo
contiene el nombre de usuario y su clave, e información administrativa, como cuándo expira la
cuenta, etc. El formato del fichero /etc/shadow es similar al siguiente (los dos puntos
separan los campos):
user:contraseña:último:mínimo:máximo:aviso:inactivo:expiración:reservado
donde:
1
http://www.keylength.com/en/8/
Seguridad en los Sistemas Informáticos
Módulo 4. Sistemas de verificación e identificación Página 7
contraseña: se encuentra el hash de la contraseña. Dicho hash se expresa de la
siguiente manera:
1) primero se utiliza una etiqueta para señalar la función de hash utilizada
2) Se concatena el salt, un valor aleatorio generado para ser combinado con la contraseña
y hacerla más segura. Para indicar el fin del salt se añade un símbolo $.
3) Se concatena el hash del password+salt.
último: días transcurridos del último cambio de clave desde el día 1/1/1970.
mínimo: número mínimo de días que deben pasar antes de que la contraseña pueda ser
cambiada de nuevo.
máximo: número de días que deben pasar antes de exigir un cambio de clave.
aviso: días de aviso al usuario antes de que expire la clave.
inactivo: días de validez de la cuenta una vez que la contraseña expire.
expiración: días de duración de la cuenta desde el 1/1/70.
reservado: Un campo reservado.
jlopez $1$Etg2ExUZ$F9NTP7omafhKIlqaBMqng1:12514:5:30:4:1:12783:
Existen dos programas principales usados para especificar la caducidad de contraseñas bajo
Linux: el comando chage o la aplicación gráfica “Administrador de usuarios” (para Fedora y
Red Hat).
La opción -M del comando chage especifica el número de días máximo en que la contraseña
será válida. Por lo tanto, si se desea que la contraseña de un usuario expire en 90 días, se
escribiría el comando siguiente:
chage -M 90 <username>
Permiten la utilización de una única tarjeta para aplicaciones variadas y muy distintas.
Generan menores costes por transacción que las tarjetas de plástico convencionales. El
coste por tarjeta también se reduce debido, sobre todo, al mayor tiempo de vida de la
tarjeta y a que ésta puede actualizarse.
Permiten un alto grado de seguridad en las transacciones con ellas efectuadas frente a las
tarjetas convencionales.
Como mecanismo de control de acceso las tarjetas inteligentes hacen que los datos
personales y de negocios solo sean accesibles a los usuarios apropiados y aseguran la
portabilidad, seguridad y confiabilidad de la información. La incorporación de un circuito
integrado ofrece tres nuevos elementos que pueden favorecer su utilización generalizada:
Miniaturización: Las densidades de integración de controladores y memorias que se
alcanzan en la actualidad, permiten ofrecer un nuevo abanico de posibilidades y de
funciones, lo que origina su expansión en el mercado y un nuevo medio de intercambio de
información.
Lógica programable: La tarjeta inteligente incorpora un procesador que permite definir
funciones lógicas y de control que se aplican a los negocios, junto con funciones
avanzadas de seguridad y nuevas aplicaciones.
Interfaz directa de comunicaciones electrónicas: Las comunicaciones están en
crecimiento constante. Cada nuevo avance ofrece un nuevo campo en el que puede
aplicarse el uso de las tarjetas inteligentes. Las especificaciones físicas, eléctricas, el
formato de los comandos y todo lo relacionado con tarjetas se especifica en la norma ISO
7816.
3.1.1 Estructura
En la figura 4.3.1 se muestra la estructura más generalista de una tarjeta inteligente; en ella
podemos observar que el acceso a las áreas de memoria solamente es posible a través de la
unidad de entrada/salida y de una CPU (típicamente de 8 bits), lo que evidentemente aumenta
la seguridad del dispositivo. Existe también un sistema operativo empotrado en la tarjeta -
generalmente en ROM - aunque también se puede extender con funciones en la EEPROM -
cuya función es realizar tareas criptográficas (algoritmos de cifrado como RSA o Triple DES,
funciones resumen...). El criptoprocesador apoya estas tareas ofreciendo operaciones RSA con
claves de 512 a 1024 bits. Un ejemplo de implementación real de este esquema lo constituye
la tarjeta inteligente CERES, de la Fábrica Nacional de Moneda y Timbre española; en ella se
incluye además un generador de números aleatorios junto a los mecanismos de protección
internos de la tarjeta.
Zona Abierta: Contiene información que no es confidencial (p.ej.: el nombre del portador
y su dirección).
Zona de Trabajo: Contiene información confidencial (p.ej.: aplicaciones bancarias: cupo
de crédito disponible, el número de transacciones permitidas en un periodo de tiempo).
Zonas Secretas: La información es totalmente confidencial. El contenido de estas zonas no
es totalmente disponible para el portador de la tarjeta, ni tiene porqué conocerla la
entidad que la emite ni quien la fabrica.
Memoria: tarjetas que únicamente son un contenedor de ficheros pero que no albergan
aplicaciones ejecutables. Por ejemplo, MIFARE. Éstas se usan generalmente en
aplicaciones de identificación y control de acceso sin altos requisitos de seguridad.
Microprocesadas: tarjetas con una estructura análoga a la de un ordenador (procesador,
memoria volátil, memoria persistente). Éstas albergan ficheros y aplicaciones y suelen
usarse para identificación y pago con monederos electrónicos.
Criptográficas: tarjetas microprocesadas avanzadas en las que hay módulos hardware
para la ejecución de algoritmos usados en cifrados y firmas digitales. En estas tarjetas se
Tarjetas de memoria: tarjetas que únicamente son un contenedor de ficheros pero que
no albergan aplicaciones ejecutables. Disponen de un sistema operativo limitado con una
serie de comandos básicos de lectura y escritura de las distintas secciones de memoria y
pueden tener capacidades de seguridad para proteger el acceso a determinadas zonas de
memoria.
Basadas en sistemas de ficheros, aplicaciones y comandos: Estas tarjetas disponen del
equivalente a un sistema de ficheros compatible con el estándar ISOIEC 7816 parte 4 y un
sistema operativo en el que se incrustan una o más aplicaciones (durante el proceso de
fabricación) que exponen una serie de comandos que se pueden invocar a través de APIs
de programación.
Java Cards: una Java Card es una tarjeta capaz de ejecutar mini-aplicaciones Java. En este
tipo de tarjetas el sistema operativo es una pequeña áaquina virtual Java (JVM) y en ellas
se pueden cargar dinámicamente aplicaciones desarrolladas específicamente para este
entorno.
En el estándar ISOIEC 7816 parte 1 se definen los siguientes tamaños para tarjetas inteligentes:
ID 000 : el de las tarjetas SIM usadas para teléfonos móviles GSM. También acostumbran
a tener este formato las tarjetas SAM (Security Access Module) utilizadas para la
autenticación criptográfica mutua de tarjeta y terminal.
ID 00 : un tamaño intermedio poco utilizado comercialmente.
ID 1 : el más habitual, tamaño tarjeta de crédito.
3.3 Funcionamiento
Cuando el usuario poseedor de una smartcard desea autenticarse necesita introducir la tarjeta
en un hardware lector; los dos dispositivos se identifican entre sí con un protocolo a dos
bandas en el que es necesario que ambos conozcan la misma clave (CK o CCK, Company Key o
Chipcard Communication Key), lo que elimina la posibilidad de utilizar tarjetas de terceros para
autenticarse ante el lector de una determinada compañía; además esta clave puede utilizarse
para asegurar la comunicación entre la tarjeta y el dispositivo lector. Tras identificarse las dos
partes, se lee la identificación personal (PID) de la tarjeta, y el usuario teclea su PIN. Se inicia
entonces un protocolo desafío-respuesta: se envía el PID a la máquina y ésta desafía a la
tarjeta, que responde al desafío utilizando una clave personal del usuario (PK, Personal Key). Si
la respuesta es correcta, el host ha identificado la tarjeta y el usuario obtiene acceso al recurso
pretendido.
Las ventajas de utilizar tarjetas inteligentes como medio para autenticar usuarios son muchas
frente a las desventajas; se trata de un modelo ampliamente aceptado entre los usuarios,
rápido, y que incorpora hardware de alta seguridad tanto para almacenar datos como para
realizar funciones de cifrado. Además, su uso es factible tanto para controles de acceso físico
como para controles de acceso lógico a los hosts, y se integra fácilmente con otros
mecanismos de autenticación como las contraseñas; y en caso de desear bloquear el acceso de
un usuario, no tenemos más que retener su tarjeta cuando la introduzca en el lector o
marcarla como inválida en una base de datos (por ejemplo, si se equivoca varias veces al
teclear su PIN, igual que sucede con una tarjeta de crédito normal).
Como principal inconveniente de las smartcards podemos citar el coste adicional que supone
para una organización el comprar y configurar la infraestructura de dispositivos lectores y las
propias tarjetas. Otro problema es que un usuario pierda su tarjeta es bastante fácil, y durante
el tiempo que no disponga de ella o no puede acceder al sistema, o hemos de establecer reglas
especiales que pueden comprometer nuestra seguridad (y por supuesto se ha de marcar como
3.5 Ataques
Mediante acceso directo a memoria: para llevarlo a cabo, hay que extraer la superficie de
silicio de su envoltorio. Luego deberíamos o bien acceder a las pistas que conectan los
diferentes componentes de la tarjeta o usar un microscopio óptico.
Generación de números aleatorios: los números aleatorios son utilizados por terminal y
tarjeta en el proceso de autenticación. El objetivo es comprobar que ambos utilizan el mismo
algoritmo de cifrado. El ataque consiste en forzar la tarjeta inteligente a generar una secuencia
de números tan grande que llegue a ser predecible o bien que se bloquee de manera que
siempre genere el mismo número.
Control de apertura de puertas y horario, registro por fotografía digital y acceso por huella
digital. El control de acceso es el elemento más obvio y el que más se descuida por ejemplo el
acceso a la estación de administración de la red o a la sala de servidores, por otro lado es muy
importante que exista un sistema de contraseñas que es la única forma de autentificar e
identificar a los usuarios en el momento en que acceden al sistema informático.
Protección de acceso al PC, bloqueo del PC en caso de retirar la tarjeta y desbloqueo por el
usuario, protección por huella digital. Permite restringir nuestro acceso al ordenador mediante
la inserción de la tarjeta inteligente, sin ella no podremos acceder al ordenador. Si insertamos
una tarjeta no valida el ordenador se bloquearía y lo mismo ocurriría si extrajésemos la tarjeta
del lector.
Permite proteger la información y el uso del software de la empresa, una vez dentro de la
aplicación cada tarjeta permite el acceso a unos determinados datos. Cumple casi al 100% los
requerimientos más rigurosos de seguridad informática. Lleva además un gestor que nos
permite realizar estudios y estadísticas con la temporalidad que se ha deseado, el gestor se
proyecta bajo requerimientos de la empresa o de sus directores de seguridad, para darle aun
más potencial a la solución.
3.6.5 Internet
4.1 Introducción
Para que una característica biométrica resulte de utilidad debe cumplir algunas propiedades
esenciales:
De este modo, las dos únicas salidas o decisiones del sistema son la aceptación o rechazo del
individuo como aquél que pretende ser. De esta forma, el locutor solicitante será catalogado
como usuario auténtico o bien como impostor, respectivamente. La decisión de aceptar o
rechazar la locución de entrada como correspondiente al locutor solicitado dependerá de si el
valor de parecido o probabilidad obtenido supera o no un determinado umbral de decisión.
Los sistemas de verificación pueden ser vistos como un caso particular de identificación en
conjunto abierto, en el que N=1.
Los detalles relativos a las líneas (curvatura, separación, etc.), así como la posición absoluta y
relativa de las minucias extraídas, son procesados mediante algoritmos que permiten
componer un índice numérico correspondiente a esa huella. Este índice numérico de la huella
es guardado en la base de datos del programa, en una tarjeta u otro tipo de soporte. Es
imposible reconstruir la huella a partir del índice registrado en el fichero ya que la información
guardada es información numérica (patrones), extraída a partir de la imagen de la huella, no la
propia imagen. Cuando el usuario solicita acceso al sistema, pone su dedo sobre el lector, y su
huella dactilar es digitalizada y analizada a fin de extraer los elementos característicos y tras el
análisis de las líneas y las minucias se compara el nuevo índice obtenido con el anteriormente
almacenado. Se trata de un tipo de sistema muy fiable. Las tasas de falso rechazo (FRR False
Rejection Rate) se sitúan por debajo del 0.1 %, y las de falsa aceptación (FAR o False
Acceptance Rate ), están alrededor del 0.01 %. Las velocidades de proceso e identificación
están por debajo del segundo en sistemas actuales.
Estos sistemas obtienen una imagen del perfil de la mano completa, de dos dedos o de un solo
dedo, con una cámara convencional o con una cámara infrarroja. Una vez tomada la imagen se
extraen una serie de características de la mano y los dedos, como pueden ser longitudes,
anchuras, alturas, posiciones relativas de dedos, articulaciones, disposición de venas, etc. Esas
Se trata de un sistema poco costoso de implementar, por lo que se encuentra muy extendido.
Sin embargo, uno de los problemas que frenan su difusión es que se trata de una tecnología
todavía propensa a errores. La probabilidad de falso rechazo está en torno al 3 %, y la de falsa
aceptación, en valores algo superiores al 1%.
4.6 Ataques
4.6.1 Sensor
Un ataque en este nivel consiste en presentar una característica biométrica falsa. Cualquier
sistema biométrico puede estar sometido a este tipo de ataque, no tan solo la voz. La tabla
Seguridad en los Sistemas Informáticos
Módulo 4. Sistemas de verificación e identificación Página 21
4.4.1 resume las principales tecnologías biométricas, cómo vulnerarlas, y las soluciones a
aplicar. Por ejemplo, en el caso de voz, se puede eludir al sistema usando una grabación del
locutor auténtico, pero si el sistema funciona en el modo dependiente del texto, el problema
queda solventado a menos que se use un sintetizador de voz, el cual todavía no está disponible
con suficiente calidad para imitar a cualquier locutor. Otra posibilidad es usar algoritmos de
conversión de voz entre locutores, para transformar una voz dada en la voz a imitar.
Nuevamente, el estado del arte de la tecnología todavía no permite suficiente calidad. Sin
embargo, cabe esperar que en el futuro estos sistemas estén disponibles, y entonces será
necesario disponer de algoritmos de reconocimiento más sofisticados.
En este nivel, el ataque consiste en reenviar datos grabados previamente. Obviamente esta
posibilidad es especialmente importante en aplicaciones remotas, en las que existe un
ordenador cliente que proporciona el dato biométrico y un sistema remoto que realiza la
autenticación biométrica. Este tipo de ataques es especialmente dirigido en aplicaciones de
Seguridad en los Sistemas Informáticos
Módulo 4. Sistemas de verificación e identificación Página 22
Internet, en las que puede resultar relativamente simple la adquisición fraudulenta de los
datos biométricos suministrados por un usuario autorizado. En cualquier caso, este mismo
problema también existe en aplicaciones de comercio electrónico y el envío de tarjetas de
crédito VISA, Mastercard, etc. Obviamente en el caso de datos biométricos existe un problema
adicional: mientras que resulta sencillo proporcionar al usuario un nuevo número de tarjeta,
no es posible reemplazar los datos biométricos. Para evitar este problema, pueden usarse
técnicas de marcas de agua (watermarking).
4.6.5 Clasificadores
Consiste en atacar el clasificador para producir puntuaciones (scores) menores o mayores a los
reales.
Un ataque en este nivel consiste en reemplazar los modelos que la base de datos suministra en
el proceso de lectura, por otros falsos. La base de datos suele estar en el mismo ordenador o
dispositivo que ejecuta el algoritmo de clasificación, por lo que es difícil crackear esta
transmisión. Puede resultar un problema cuando la base de datos está en un sistema remoto.
Por ejemplo, un sistema de autenticación biométrico con una única base de datos que se
comparte de forma remota por varios clientes que adquieren la información biométrica del
usuario, consultan la base de datos remota, y realizan la clasificación.
4.6.8 Decisión
Existe otro tipo de ataques, que también es posible en sistemas protegidos por password, y se
denomina ataque de fuerza bruta. Se basa en hacer pruebas con un conjunto suficientemente
grade de datos biométricos generados sintéticamente. Este método es análogo a realizar
repetidos intentos probando diferentes palabras contenidas en un diccionario.
4.7 Consideraciones
No obstante, no conviene bajar la guardia, puesto que cualquier sistema es, al final susceptible
de ser eludido.
4.8 Conclusión
En este capítulo hemos presentado los conceptos relacionados con las tres grandes categorías
de métodos de autenticación. Primero hemos visto la autenticación basada en algo conocido.
En particular hemos analizado la autenticación por contraseña en sistema Unix. Luego hemos
analizado los sistemas basados en algo que el usuario posee. Aquí hemos hablado de las
tarjetas inteligentes, su estructura y funcionamiento así como su clasificación. Hemos visto que
son sistemas susceptibles a ataques pasivos y activos. Finalmente hemos analizado los
sistemas biométricos. Hemos visto sus características, su modos de funcionamiento: modo
Seguridad en los Sistemas Informáticos
Módulo 4. Sistemas de verificación e identificación Página 25
identificación y modo verificación. Hemos analizado alguna tecnología existente y presentado
sus debilidades. Por concluir hemos hecho algunas reflexiones sobre la seguridad de estos
sistemas.
5.1. Introducción
En las siguientes subsecciones se explican SAML [6] y OpenID [7] como ejemplos de
frameworks de gestión de identidad federada y centrada en el usuario,
respectivamente.
Además de los trabajos efectuados para la adopción de PKI por el comité de OASIS Public Key
Infrastructure Adoption (PKI) TC2, el comité OASIS Security Services (SAML) TC3 dirige sus
esfuerzos a la estandarización de SAML, un marco de trabajo de autenticación, autorización, y
atributos. SAML permite expresar asertos acerca de la identidad, los atributos y las
autorizaciones de un sujeto para facilitar las relaciones entre empresas y de éstas con sus
usuarios. El marco de trabajo facilita a las compañías la creación de federaciones de identidad,
para facilitar la gestión de perfiles, autenticaciones y autorizaciones de usuarios. El interés de
los usuarios finales radica fundamentalmente en las facilidades de single sign-on (sso), esto es,
que una única autenticación sea válida para múltiples sitios en la federación.
Las especificaciones de SAML, estandarizado desde 2005, están basadas en XML, y definen
esquemas y formatos para los distintos elementos y mensajes. SAML v2.0 ha sido adoptado
por otras iniciativas como Shibboleth de Internet2, Identity Federation Framework de Liberty
Alliance, o Web Services Security de OASIS. SAML se integra de forma natural con OASIS
XACML para la definición de políticas de seguridad.
2
http://www.oasis-open.org/committees/pki/
3
http://www.oasis-open.org/committees/security/
Seguridad en los Sistemas Informáticos
Módulo 4. Sistemas de verificación e identificación Página 27
A grandes rasgos, SAML define cuatro elementos:
SAML define unas declaraciones de contextos de autenticación y una serie de clases para ello.
La motivación es poder dar información adicional acerca del nivel de confianza en la
autenticación, que se deriva directamente de las tecnologías, protocolos y procesos que se han
utilizado para la autenticación. Dentro de los contextos posibles, actualmente hay definidos los
siguientes esquemas: main schema, common schema types, IP, IP password, Kerberos, mobile
one-factor contract, mobile one-factor unregistered, mobile two-factor contract, mobile two-
factor unregistered, nomadic telephony, personal telephony, PGP, password-protected
transport, password, previous session, smartcard, smartcard PKI, software PKI, SPKI, secure
remote password, SSL certificate, telephony, authenticated telephony, time sync token, X.509,
XML Signature. Es decir, que están considerados la práctica totalidad de los esquemas de
autenticación que utilizamos hoy en día, y además el mecanismo es extensible.
SAML no define cifradores, códigos de integridad o firmas digitales para autenticar o garantizar
la integridad o privacidad de sus mensajes. SAML requiere la preexistencia de una relación de
confianza previa entre la parte que solicita un aserto (relying party, RP) y el que lo emite
(asserting party), típicamente derivada del uso de una PKI (aunque no es obligatoria). En los
distintos perfiles, cada vez que se necesita:
4
http://saml.xml.org/products
Seguridad en los Sistemas Informáticos
Módulo 4. Sistemas de verificación e identificación Página 28
enviar una solicitud de un aserto, se recomienda autenticación de ambas partes
cliente/servidor de SSL/TLS;
devolver un aserto, se requiere que el mensaje de respuesta vaya firmado con XML.
El documento “Security and Privacy Considerations for the OASIS Security Assertion
Markup Language (SAML) V2.0” hace un análisis de posibles ataques, amenazas y riesgos
presentes en las especificaciones de los distintos elementos de SAML (core, binding y
profiles), aspectos de privacidad, y recomendaciones para mitigar los riesgos de
seguridad.
Dentro de los distintos casos de uso de SAML, los más relevantes para el proyecto España
Virtual son los que reflejan los escenarios en federación de identidad contemplados por SAML:
La federación clásica (caso A) soportada desde SAML v1 permite a un usuario Bob (conocido
por dicho nombre en el IdP y en los SPs) una sesión SSO mediante el siguiente procedimiento:
El usuario Bob desea iniciar sesión en el SP, accede al IdP para autenticarse, y el IdP le
envía un reto de autenticación (de acuerdo con los contextos de autenticación utilizados
por el IdP: contraseña, certificado, etc.).
Bob se autentica con éxito frente al IdP (por ejemplo enviando sus credenciales).
Bob indica al IdP que quiere acceder a un recurso del SP (por ejemplo mediante una
opción del menú del IdP).
Nótese que la federación no resuelve la autorización de Bob al recurso en el SP, puesto que la
fuente de la autorización siempre es local y generalmente no se delega, aunque para resolver
la autorización si se utiliza la autenticación que proporciona la federación.
La federación del caso B permite a las empresas federadas registrar atributos de los usuarios
con una semántica común (por ejemplo “miembro VIP”). La federación de atributos permite un
nivel mayor de privacidad a los usuarios, pues no es necesario que el aserto que emite el IdP
acerca del usuario contenga la identidad verdadera del usuario, y puede utilizar un
identificador de nombre cualquiera (por ejemplo “abcdef”). En nuestro ejemplo el aserto diría
que “abcdef” es “miembro VIP” cuyo número de miembro es “1234” se ha autenticado
correctamente. Este nivel mayor de privacidad no siempre implica el anonimato, puesto que
en este ejemplo el SP puede resolver el nombre del usuario a partir del atributo y el número de
miembro.
El caso C es muy similar al caso B. El escenario contempla que el inicio del procedimiento de
federación comienza cuando Bob intenta acceder a un recurso en el SP. El SP redirige a Bob al
IdP incluyendo una solicitud de autenticación y la creación de un nuevo identificador para el
usuario. Una vez que Bob se autentica correctamente con el IdP, el IdP crea un nuevo
identificador (si no existía ya uno) para el SP y construye y firma el aserto para el SP. El SP
comprueba si el identificador es conocido en cuyo caso se crea la sesión local con la cuenta
local de Bob en el SP (cuyo identificador puede ser distinto del que utiliza Bob en el IdP). En
caso de que no exista, Bob tendrá que autenticarse ante el SP, para vincular el identificador
permanente con su cuenta local en el SP. Es importante notar que esta autenticación solo es
necesaria una vez, puesto que el vínculo quedará para posteriores sesiones.
5.3 OpenID
El concepto de funcionamiento de OpenID es sencillo: una identidad viene dada por una URI o
un XRI, y puede ser verificada por un servidor que soporte el protocolo. De lo único que se
encarga el protocolo es de proveer una forma de demostrar que alguien es el propietario de
cierto identificador.
OpenID, desarrollado bajo el auspicio de la OpenID Foundation5, permite que un usuario pueda
acceder a varios sitios Web con una única identidad, es decir, ofrece SSO. Pretende así reducir
la cantidad de credenciales de identidad, tales como nombres de usuario y contraseñas, que
deben ser mantenidas por un usuario para acceder a distintos servicios en Internet. Además, la
fundación también tiene como objetivo que los sitios Web puedan aceptar credenciales
OpenID de manera sencilla y poco costosa.
El hecho de que OpenID sea descentralizado significa que cualquiera puede actuar como IdP
sin necesidad de registrarse ni de obtener permiso de alguna organización o autoridad central.
5
http://openid.net/foundation/
Seguridad en los Sistemas Informáticos
Módulo 4. Sistemas de verificación e identificación Página 31
Adicionalmente, OpenID ofrece la posibilidad de delegar. Es decir, se tiene en cuenta que los
usuarios pueden poseer identidades en la web: por ejemplo un blog o una página personal, y
permite que utilicen estas identidades, que ya les son familiares, como identificador cuando
accedan a cualquier otro servicio que soporte el protocolo. La principal ventaja que ofrece la
delegación radica en que el usuario no está ligado a un proveedor concreto sino que puede
elegir y cambiar de proveedor siempre que lo desee y sin necesidad de cambiar de
identificador.
Por otra parte OpenID es abierto. Es decir, su especificación es pública y está basada por
completo en estándares conocidos de Internet.
Además el modelo de gestión de identidad definido por OpenID puede calificarse de centrado
en el usuario, pues es éste quien controla su información y decide qué datos personales deben
enviarse cada vez que se accede a un servicio.
En cuanto a la adopción de OpenID, puede decirse que, desde su creación en 2005, ha ido
incrementando considerablemente el número de IdPs y de páginas web que soportan acceso
OpenID. De hecho su popularidad se ha hecho mayor últimamente debido a la adopción de
este sistema por parte de grandes compañías, como AOL, Yahoo, Microsoft, VeriSign, Google o
IBM. En España existen varios proveedores de identidad como: openid.es6, openid.blogs.es7,
miID.es8 y Movistar OpenID9, que es el primer operador móvil en lanzar un IdP OpenID.
6
http://www.openid.es
7
http://www.openid.blogs.es
8
http://www.miID.es
9
http://openid.movistar.es
Opcionalmente, el RP puede establecer una asociación con el proveedor. En este caso, ambas
partes intercambian un secreto compartido siguiendo la especificación de Diffie-Hellman. El
IdP utilizará la asociación para firmar todos los mensajes subsecuentes, y el RP podrá
verificarlos.
Finalmente, el RP verifica la respuesta recibida del IdP y, en caso de que la autenticación sea
positiva, el usuario tendrá acceso al servicio.
5.3.2 Vulnerabilidades
Por ejemplo, la arquitectura de OpenID hace posible que un RP malicioso pueda re-direccionar
al usuario final a un IdP falso para robar las credenciales que introduzca el usuario a la hora de
autenticarse.
Por otra parte, OpenID no especifica el mecanismo de autenticación que se utiliza para
verificar que un usuario posee una identidad. Por lo tanto, la seguridad de una conexión
OpenID depende de la confianza que tenga el RP en el IdP. Si no existe confianza en el
proveedor, el RP no aceptará la autenticación del usuario y no permitirá acceso al servicio
ofrecido. Con la extensión PAPE también se mejora esta situación, ya que los RPs podrán
disponer de más información sobre el proceso de autenticación a la hora de tomar decisiones
de confianza sobre un determinado IdP.
Cracker Los crackers son individuos con interés en atacar un sistema informático para obtener
beneficios de forma ilegal, o simplemente, para provocar algún daño.
DES Data Encryption Standard (DES) es un algoritmo de cifrado, es decir, un método para cifrar
información, escogido como un estándar FIPS en los Estados Unidos en 1976, y cuyo uso se ha
propagado ampliamente por todo el mundo. El algoritmo fue controvertido al principio, con
algunos elementos de diseño clasificados, una longitud de clave relativamente corta, y las
continuas sospechas sobre la existencia de alguna puerta trasera para la National Security
Agency (NSA). Posteriormente DES fue sometido a un intenso análisis académico y motivó el
concepto moderno del cifrado por bloques y su criptoanálisis.
DLL Biblioteca de enlace dinámico o más comúnmente DLL (sigla en inglés de dynamic-link
library) es el término con el que se refiere a los archivos con código ejecutable que se cargan
bajo demanda de un programa por parte del sistema operativo. Esta denominación es
exclusiva a los sistemas operativos Windows siendo ".dll" la extensión con la que se identifican
estos ficheros, aunque el concepto existe en prácticamente todos los sistemas operativos
modernos.
FAR son las siglas de False Acceptance Rate (Tasa de Falso Positivo) y se refiere al porcentaje
de veces que un sistema biométrico verifica como correcto a un usuario no autorizado. Se le
denomina también error de tipo II y se considera uno de los errors más serios en seguridad
biométrica puesto que daría acceso al Sistema a usuarios no autorizados. El FAR se mide la
probabilidad de aceptar a un usuario no autorizado y se expresa como el ratio entre el número
de falsos positivos sobre el total de intentos de identificación.
FRR son las siglas de False Rejection Rate (Tasa de Falso Negativo) y se refiere a la probabilidad
de que un Sistema biométrico rechace a un usuario al que debiera permitirse acceso. El FRR se
expresa como el ratio entre el número de falsos negativos sobre el total de intentos de
identificación.
GSM El sistema global para las comunicaciones móviles (del inglés Global System for Mobile
communications, GSM, y originariamente del francés groupe spécial mobile) es un sistema
estándar, libre de regalías, de telefonía móvil digital.
MIFARE es una tecnología de tarjetas inteligentes sin contacto (TISC), de las más ampliamente
instaladas en el mundo, con aproximadamente 250 millones de TISC y 1,5 millones de módulos
lectores vendidos. Las tarjetas MIFARE son tarjetas de memoria protegida. Están divididas en
sectores y bloques y mecanismos simples de seguridad para el control de acceso. Su capacidad
de cómputo no permite realizar operaciones criptográficas o de autenticación mutua de alto
nivel, estando principalmente destinadas a monederos electrónicos simples, control de acceso,
tarjetas de identidad corporativas, tarjetas de transporte urbano o para ticketing.
OTP Una contraseña de un solo uso u OTP (del inglés One-Time Password) es una contraseña
válida solo para una autenticación. OTPs evitar una serie de deficiencias que se asocian con la
tradicional (estática) contraseñas. La deficiencia más importante que se aborda en las OTP es
que, en contraste con contraseñas estáticas, no son vulnerables a ataques de replay. También
hace al sistema más resistente frente ataques de fuerza bruta ya que cada vez que cambia la
ROM La memoria de solo lectura, conocida también como ROM (acrónimo en inglés de Read-
Only Memory), es un medio de almacenamiento utilizado en ordenadores y dispositivos
electrónicos, que permite sólo la lectura de la información y no su escritura,
independientemente de la presencia o no de una fuente de energía.
Root En sistemas operativos del tipo Unix, root es el nombre convencional de la cuenta de
usuario que posee todos los derechos en todos los modos (mono o multi usuario). root es
también llamado superusuario. Normalmente esta es la cuenta de administrador. El usuario
root puede hacer muchas cosas que un usuario común no puede, tales como cambiar el dueño
o permisos de archivos y enlazar a puertos de numeración pequeña.
Salt En criptografía, el salt comprende bits aleatorios que se usan como una de las entradas en
una función derivadora de claves. La otra entrada es habitualmente una contraseña. La salida
de la función derivadora de claves se almacena como la versión cifrada de la contraseña. El salt
también puede usarse como parte de una clave en un cifrado u otro algoritmo criptográfico. La
función de derivación de claves generalmente usa una función hash. Los datos con salt
complican los ataques de diccionario que cifran cada una de las entradas del mismo: cada bit
de sal duplica la cantidad de almacenamiento y computación requeridas.
SHA Secure Hash Algorithm, o Algoritmo de Hash Seguro, es una familia de funciones hash de
cifrado publicadas por el Instituto Nacional de Estándares y Tecnología (NIST). La primera
versión del algoritmo fue creada en 1993 con el nombre de SHA, aunque en la actualidad se la
conoce como SHA-0 para evitar confusiones con las versiones posteriores. La segunda versión
del sistema, publicada con el nombre de SHA-1, fue publicada dos años más tarde.
Posteriormente se han publicado SHA-2 en 2001 (formada por diversas funciones: SHA-224,
SHA-256, SHA-384, y SHA-512) y la más reciente, SHA-3, que fue seleccionada en una
competición de funciones hash celebrada por el NIST en 2012. Esta última versión se
caracteriza por ser la que más difiere de sus predecesoras.
[5] D. Hardt (Ed.), "The OAuth 2.0 Authorization Framework", IETF RFC 6749, Octubre 2012.