Dominios de protección
Muchos objetos del sistema necesitan protección, tales como la CPU, segmentos de memoria, unidades de disco, terminales, impresoras, procesos, archivos, bases de datos, etc.
Cada objeto se referencia por un nombre y tiene habilitadas un conjunto de operaciones sobre él.
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 él.
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 protección:
- Existe una colección de objetos a los que puede tener acceso.
- Cada objeto tiene cierto conjunto de derechos.
Los procesos pueden alternar entre los dominios durante la ejecución, 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.
Lista de control de acceso
Las “matrices de protección” son muy grandes y con muchos lugares vacíos:
- Desperdician espacio de almacenamiento.
- Existen métodos prácticos que almacenan solo los elementos no vacíos por filas o por columnas.
La lista de control de acceso (ACL: access control list):
- 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), grabación (w), ejecución (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 demás usuarios.
- Permitir que el propietario de cada objeto pueda modificar su ACL en cualquier momento:
- Permite prohibir accesos antes permitidos.
Capacidades
La matriz de protección también puede dividirse por renglones:
- Se le asocia a cada proceso una lista de objetos a los cuales puede tener acceso.
- Se le indican las operaciones permitidas en cada uno.
- Esto define su dominio.
La lista de objetos se denomina lista de posibilidades y los elementos individuales se llaman posibilidades.
Cada posibilidad tiene:
- Un campo tipo:
- Indica el tipo del objeto.
- Un campo derechos:
- Mapa de bits que indica las operaciones básicas permitidas en este tipo de objeto.
- Un campo objeto:
- Apuntador al propio objeto (por ej.: su número de nodo-i).
Los principales métodos de protección son:
- Arquitectura marcada:
- Necesita un diseño de hardware en el que cada palabra de memoria tiene un bit adicional:
- Indica si la palabra contiene una posibilidad o no.
- Solo puede ser modificado por el S.O.
- Lista de posibilidades dentro del S.O.:
- Los procesos hacen referencia a las posibilidades mediante su número.
- Lista de posibilidades cifrada dentro del espacio del usuario:
- Cada posibilidad está cifrada con una clave secreta desconocida por el usuario.
- Muy adecuado para sistemas distribuidos.
Generalmente las posibilidades tienen derechos genéricos aplicables a todos los objetos, por ej.:
- Copiar posibilidad:
- Crear una nueva posibilidad para el mismo objeto.
- Copiar objeto:
- Crear un duplicado del objeto con una nueva posibilidad.
- Eliminar posibilidad:
- Eliminar un dato dentro de la lista-c sin afectar al objeto.
- Destruir objeto:
- Eliminar en forma permanente un objeto y una posibilidad.
Canales encubiertos