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 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.
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>...}.
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 .
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