Los derechos de acceso definen que
acceso tienen varios sujetos sobre varios objetos.
Los sujetos acceden a los
objetos.
Los objetos son
entidades que contienen información.
Los objetos pueden ser:
Concretos:
Ej.: discos, cintas,
procesadores, almacenamiento, etc.
Abstractos:
Ej.: estructuras de datos, de
procesos, etc.
Los objetos estan protegidos contra
los sujetos.
Las autorizaciones a un
sistema se conceden a los sujetos.
Los sujetos pueden ser
varios tipos de entidades:
Ej.: usuarios, procesos,
programas, otras entidades, etc.
Los derechos de acceso mas
comunes son:
Acceso de lectura.
Acceso de escritura.
Acceso de ejecución.
Una forma de implementacion es
mediante una matriz de control de acceso con:
Filas para los sujetos.
Columnas para los objetos.
Celdas de la matriz para los
derechos de acceso que un usuario tiene a un objeto.
Una matriz de control de acceso
debe ser muy celosamente protegida por el S. O.
Dominios de protección
Un sistema de computos contiene
muchos objetos que necesitan proteccion. Estos objetos pueden ser el hardware,
la CPU, los segmentos de memoria, terminales, unidades de disco o impresoras; o
bien ser del software, como los proceso, archivos, bases de datos o semaforos.
Cada objeto tiene un unico nombre
mediante el cual se la hace referencia y un conjunto de operaciones que se
pueden realizar en el. READ y WRITE son operaciones adecuadas para un archivo;
UP y DOWN tiene sentido en un semaforo.
Es evidente que se necesita una
via para prohibir el acceso de los procesos a los objetos a los que no tiene
permitido dicho acceso. Ademas, este mecanismo debe posibilitar la restriccion
de los procesos a un subconjunto de operaciones legales en caso necesario. Por
ejemplo, puede permitirse que el proceso A lea el archivo F, pero no escriba en
el.
Para tener una forma de analizar
los distintos mecanismos de proteccion, es conveniente presentar el concepto de
dominio. Un dominio es un conjunto de parejas (objeto, derechos). Cada pareja
determina un objeto y cierto subconjunto de las operaciones que se pueden
llevar a cabo en el. Un derecho es, en este contexto, el permiso para realizar
alguna de las operaciones.
Una pregunta importante es la
forma en que el sistema lleva un registro de los objetos que pertenecen a un
dominio dado. Al menos una teoria, uno puede imaginar una enorme matriz, en la
que los renglones son los dominio y las columnas son los objetos. Cada cuadro
contiene los derechos correspondientes al objeto en ese dominio. Con esta
matriz y el numero de dominio activo, el sistema puede determinar si se permite
el acceso de cierta forma a un objeto dado desde un domino especifico.
Un dominio es un conjunto
de parejas (objeto, derechos):
Cada pareja determina:
Un objeto.
Un subconjunto de las operaciones
que se pueden llevar a cabo en el.
Un derecho es el permiso
para realizar alguna de las operaciones.
Es posible que un objeto se
encuentre en varios dominios con “distintos” derechos en cada
dominio.
Un proceso se ejecuta
en alguno de los dominios de proteccion:
Existe una coleccion de objetos a
los que puede tener acceso.
Cada objeto tiene cierto conjunto
de derechos.
Los procesos pueden alternar
entre los dominios durante la ejecucion.
Una llamada al S. O. provoca
una alternancia de dominio.
En algunos S. O. los dominios se
llaman anillos .
Una forma en la que el S. O. lleva
un registro de los objetos que pertenecen a cada dominio es mediante una matriz
:
Los renglones son los dominios.
Las columnas son los objetos.
Cada elemento de la matriz
contiene los derechos correspondientes al objeto en ese dominio, por ej.: leer,
escribir, ejecutar.
Ver Figura 6.3.1
Fig. 6.3.1 Dominio de protección
Matriz de acceso
El modelo de proteccion del
sistema se puede ver en forma abstracta como una matriz, la matriz de
acceso.
Una matriz de acceso es una
representacion abstracta del concepto de dominio de proteccion.
Este modelo fue propuesto por
Lampson [4] como una descripcion generalizada de mecanismos de proteccion en
sistemas operativos. Es el modelo mas utilizado, del que existen numerosas
variaciones, especialmente en su implementacion.
Los elementos basicos del modelo
son los siguientes:
• Sujeto: Una
entidad capaz de acceder a los objetos. En general, el concepto de sujeto es
equiparable con el de proceso. Cualquier usuario o aplicacion consigue acceder
en realidad a un objeto por medio de un proceso que representa al usuario o a
la aplicacion.
• Objeto: Cualquier
cosa cuyo acceso debe controlarse. Como ejemplo se incluyen los archivos,
partes de archivos, programas y segmentos de memoria.
• Derecho de
acceso: la manera en que un sujeto accede a un objeto. Como ejemplo
estan Leer, Escribir y Ejecutar.
El modelo considera un conjunto
de recursos, denominados objetos, cuyo acceso debe ser controlado y un conjunto
de sujetos que acceden a dichos objetos. Existe tambien un conjunto de permisos
de acceso que especifica los diferentes permisos que los sujetos pueden tener sobre
los objetos (normalmente lectura, escritura, etc., aunque pueden ser
diferentes, en general, dependiendo de las operaciones que puedan realizarse
con el objeto).
Se trata de especificar para cada
pareja (sujeto, objeto), los permisos de acceso que el sujeto tiene sobre el
objeto. Esto se representa mediante una matriz de acceso M que enfrenta todos
los sujetos con todos los objetos. En cada celda M[i, j] se indican los
permisos de acceso concretos que tiene el sujeto i sobre el objeto j.
La figura 6.3.2 representa una
matriz de acceso, y la figura 6.3.3 es una matriz de acceso derivada de la
figura 6.3.1 de dominios de protección.
Fig. 6.3.2 Representación de una
m atriz de acceso
Figura 6.3.3 Ejemplo de una
matriz de acceso
El mecanismo de proteccion es la
matriz, junto con todos los elementos que se han de anadir para que se cumplan
de manera efectiva todas las restricciones de acceso a los objetos.
• La politica consiste en
decidir como rellenar las distintas celdas de la matriz.
• La MA permite implementar
operaciones de cambio de domino.
• El objeto sobre el que
trabajamos es el Dominio → aparecen tantas columnas como dominios haya en el
sistema.
• La operacion es la conmutacion de
un dominio a otro.
• Tambien la MA es un
objeto que se puede modificar. De este modo podemos definir tres operaciones:
• Copiar derechos
de acceso de una celda a otra dentro de la misma columna. Consiste en pasar el
derecho de acceso a un objeto de un Dominio que lo tiene, a otro donde originalmente
no lo tenia. Se senala con un asterisco (*).
• Copia ilimitada con
propagacion del propio derecho de copia.
• Copia limitada sin
propagacion.
• Movimiento de derecho.
• Dueno. Un
proceso ejecutandose en un dominio que tiene derecho de “dueno” sobre un
objeto, puede repartir cualquier derecho de acceso sobre cualquier dominio para
dicho objeto.
• Control . Opera
solo sobre dominios. Ejercer el control sobre un dominio implica que se
puede quitar cualquier derecho sobre una fila de dominio.
• La MA tambien ha de ser
protegida.
Implementacion de la Matriz de
Acceso
Tabla Global
Sencilla. Se almacena una lista
de ternas {<dominio, objeto, permisos>...}.
Como el numero de objetos y dominios
es posiblemente muy grande, se deberia guardar en memoria virtual → lento.
Lista de acceso para objetos(ACL)
Se expresa la MA por columnas
{<dominio, permisos>, ...}. Se descartan las entradas vacias.
Se puede crear una lista de
permisos por defecto para hacer mas facil su uso.
Dado que cada vez que se va a
usar un objeto hay que comprobar si hay o no permiso para hacerlo, es logico
poner la ACL alli donde esten descritos los atributos del objeto.
Asocia a cada objeto una
lista ordenada con:
Todos los dominios que pueden
tener acceso al objeto.
La forma de dicho acceso (ej:
lectura (r), grabacion (w), ejecucion (x)).
Una forma de
implementar las ACL consiste en:
Asignar tres bits (r, w, x) para
cada archivo, para:
El propietario, el grupo del
propietario y los demas usuarios.
Permitir que el propietario de
cada objeto pueda modificar su ACL en cualquier momento:
Permite prohibir accesos antes
permitidos.
Lista de Capacidades
Se expresa la MA por filas. Cada
dominio tiene una lista de la forma {<objeto, permisos>, ...}
Para identificar el objeto se usa
o bien su nombre logico, o un puntero a el (la estructura de datos que le
describe); a esta direccion se la llama capacidad .
Solo se podra realizar la
operacion M sobre el objeto O si se dispone de la capacidad (puntero) al
objeto.
Fig. 6.3.6 Ejmplo de una lista de
capacidades
Mecanismo de Cerradura-Llave
Cada objeto tiene una lista de
patrones llamados cerradura .
Cada dominio tiene una lista de
patrones llamados claves .
Un proceso que se ejecuta en un
dominio solo tendra acceso a un objeto si el dominio contiene una llave que
coincida con una de las cerraduras.
Comparacion
La tabla global es una matriz
dispersa, es ineficiente para su almacenamiento.
ACL → Cuando se accede a un
objeto es facil determinar si hay o no permiso para usarlo.
Capacidades → Las ACL estan
distribuidas, es dificil saber cuales son los derechos de acceso para un
proceso, cosa que si se puede hacer con la lista de capacidades.
Los sistemas reales suelen usar
una mezcla de todos.
Ej. UNIX: Se abre un fichero, se
verifica en la ACL si tiene permiso o no. Si lo tiene, se consigue un
descriptor de fichero, es decir una capacidad que sera lo que se use a partir
de entonces.
No hay comentarios.:
Publicar un comentario