Protección de seguridad
6.3 IMPLANTACIÓN DE MATRICES DE ACCESO
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.
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. Ver
fig. 6.3.4
Fig. 6.3.4 Ejemplo de
una tabla global
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.
Fig. 6.3.5 Ejemplo de
una lista de accesos
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
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