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 informacion.
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 protección. 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 semáforos.
Cada objeto tiene un único 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 semáforo.
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.
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.
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>...}.
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 .
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.
Comparación
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