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 ejecucion.
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 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.
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.
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.
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:
1.- 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.2.- 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.3.- 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. Ver fig. 6.3.4
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)).
- 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. Ver figura 6.3.6
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