Resumen
En un sistema distribuido, los distintos componentes de hardware y software, tales como
elementos de proceso, datos, funciones, y el control de la ejecución de las distintas tareas, se
encuentran repartidos en diferentes computadoras conectadas a una o varias redes, las cuales
permiten la cooperación e interacción entre esas máquinas para llevar a cabo los respectivos
trabajos coordinados.
Teniendo en cuenta este hecho, la autenticación, el control de acceso y, especialmente,
la delegación de identidad entre las entidades principales u originales y los procesos
intermedios en los que se delega, es un reto determinante en los sistemas de computación
distribuidos de hoy en día. En un entorno de estas características, el servicio de delegación
de identidad representa, por sí solo, un auténtico desafío, ya que, en este ambiente, las entidades
principales ya sean usuarios o procesos iniciales no se conectan simplemente a una
computadora para hacer uso de los pertinentes recursos de computación e información a los
que tenga derecho en función de los controles de acceso establecidos. En este contexto, las
entidades principales inician procesos en una máquina, la cual puede solicitar servicios de
otra en nombre de las primeras entidades. A su vez, la segunda computadora puede requerir
nuevos servicios de una tercera máquina, y así sucesivamente, todo ello, en representación
de las correspondientes entidades iniciales.
Hay que resaltar, que por sí solos, los servicios previos de autenticación y control de
acceso ante cada uno de los procesos intermedios participantes resultan incompletos e ineficientes,
ya que muchos de éstos pueden necesitar, en la mayoría de los casos, realizar
acciones remotas en nombre de una entidad principal. Consecuentemente, es indispensable
establecer algún nuevo mecanismo o procedimiento que permita una cadena de delegaciones
de diferentes tipos o permisos por el escenario distribuido; por ejemplo, permitiendo
a un proceso delegado que, o bien, firme digitalmente en nombre de la pertinente entidad
principal, o bien simplemente acceda a un determinado fichero, en función del permiso de
representación concedido. De esta forma, las entidades delegadas o procesos intermedios
que estén realizando operaciones por cuenta de una determinada entidad principal, pueden,
de manera controlada y limitada, obtener la información necesaria para acreditarse en nombre
de dicha entidad. Un problema asociado a este tipo de ambientes es que una entidad
principal puede no estar dispuesta a ceder su identidad a un proceso en el que no tenga confianza,
sobre todo si éste necesita la colaboración de otro, del cual la entidad original aún se
fíe menos. Además, la confianza que una entidad principal tiene en un determinado proceso
intermedio puede verse degradada por la cadena de delegaciones que se vaya estableciendo
en el correspondiente sistema.
A lo largo de los últimos años, se han realizado muchos trabajos especialmente en el
área de la autenticación y control de acceso en sistemas de computación distribuidos y, por
tanto, existe una documentación relevante al respecto. Sin embargo, todavía hay mucho que
realizar en el marco de las delegaciones absolutas y parciales de identidad o representación
entre procesos. Para empezar, que se pueda efectuar indistintamente, cualquier tipo de delegación
(total y/o parcial), y ésta se enmarque en el entorno de las normas internacionales
de seguridad. Esto último, tanto desde el punto de vista de la identidad de un usuario o proceso
inicial, la cual se acredita demostrando que se está en posesión de una clave privada,
como del resto de los servicios previos y posteriores a la delegación (autenticación, confidencialidad,
etc.), los cuales deben seguir las citadas normativas de seguridad. Asimismo, la
delegación efectuada ha de ser computacionalmente simple, transparente, utilizable y gestionable
en cualquier contexto distribuido sin limitar la escalabilidad de la arquitectura del
sistema.
Según lo reseñado anteriormente, especialmente en cuanto a los requisitos que debe cumplir
toda delegación en el escenario de los sistemas distribuidos, la contribución de esta Tesis
Doctoral se centra, por tanto, en el diseño y creación de un nuevo servicio de seguridad basado
en distintos tipos de delegaciones de identidad. Estas delegaciones deben transferir la
representación de un usuario o proceso inicial de forma total o parcial por el correspondiente
entorno distribuido y, por consiguiente, han de establecer distintos papeles de actuación para
los pertinentes procesos intermedios en función de los permisos concedidos.---ABSTRACT---In a distributed system, the distinct components of software and hardware, such as processing
elements, data, fuctions, and execution control of the distinct tasks, are distributed
across various computers connected to one ormore networks, which permits the cooperation
and interaction between these machines in order to perform their respective coordinated
tasks. Taking into account this fact, the security of the interactions among the communicating
intermedíate processes, and more specifically, the authentication, access control, and
especially, the delegation of identity between the principal entities, either user, initialization,
or intermedíate processes is the primary goal in today's distributed computation systems.
The service of identity delegation in such an environment represents a real challenge, because
in this environment principal entities are not simply connected to a computer to make use
its resources. In this context, the principal entities, initiate processes on one machine, that
can solicit services from another machine in the ñame of the first entity. In turn, the second
computer can request new services from a third machine, and so on, always representing
communicating principal entities.
It is important to note that previous services of access control and authentication for
any of the intermedíate processes participating in a communication amongst themselves are
incomplete and inefficient. Because many of these may require, in the majority of cases, performing
remote actions in the ñame of an original entity. Consequently, it is indispensible
to establish a new procedure permitting a chain of delegations of different types or permissions
throughout a distributed environment, for example permitting a delegated process that
either digitally signs in the ñame of the principal entity, or simply access a file, depending
on permissions of the represented entity.
In this way, the delegated entities or intermedíate processes which are performing operations
in the ñame of the original entity can, in a controlled and limited manner, obtain the
information required to valídate themselves in the ñame of the represented entity. An problem
associated with kind of environment is that a principal entity may not desire to cede
its identity to an untrusted process, especially if the process requires the collaboration of an
even more untrusted process. Furthermore, the confidence that the principal entity has in a
particular intermediate process may be degraded because of the chain of delegations that can
be established in the corresponding system.
In recent years, much research has been performed, especially in the área of access control
and authentication in distributed computing systems, and as a consequence, there is
extensive literature in the field. Nevertheless, there is much work to be done in the área
of partial and absolute delegation of identity among processes. First, delegation should be
done regardless of its type (total or partial), and it must correspond to international security
standards, both from the point of view pf the user or initial process, and from the point of
view of all services preceeding and following the delegation of identity. Second, the delegation
services must be computationally simple, transparent, useful and manageable in any
distributed context with no limitation on the scalability of the system architecture.
Accordingly, the contribution of this Doctoral Thesis is to design and créate a new security
service based on the distinct kinds of identity delegation in distributed systems. These
delegations must transfer the representation of a user or initial process in a total or partial way
through the corresponding distributed environment, and as a consequence they must establish
distinct roles for the intermediate process, taking into account the permissions granted.