6.4.5 MECANISMOS DE PROTECCION DE ARCHIVOS
Mecanismos de Protección
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.
Listas Para 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 ®, 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.
Posibilidades
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).
Las listas de posibilidades son a su vez objetos y se les puede apuntar desde otras listas de posibilidades; esto facilita la existencia de subdominios compartidos. Las listas de posibilidades o listas-c deben ser protegidas del manejo indebido por parte del usuario. 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.
Muchos sistemas con posibilidades se organizan como una colección de módulos con módulos administradores de tipos para cada tipo de objeto y entonces es esencial que el módulo administrador de tipos pueda hacer más cosas con la posibilidad que un proceso ordinario.
Se utiliza la técnica de amplificación de derechos:
• Los administradores de tipo obtienen una plantilla de derechos que les da más derechos sobre un objeto de los que permitía la propia lista de posibilidades.
Modelos de Protección
Las matrices de protección no son estáticas sino dinámicas. Se pueden identificar seis operaciones primitivas en la matriz de protección:
• Crear objeto.
• Eliminar objeto.
• Crear dominio.
• Eliminar dominio.
• Insertar derecho.
• Eliminar derecho.
Las primitivas se pueden combinar en comandos de protección, que pueden ser ejecutados por los programas del usuario para modificar la matriz de protección.
En cada momento, la matriz de protección determina lo que puede hacer un proceso en cualquier momento; no determina lo que no está autorizado a realizar. La matriz es impuesta por el sistema. La autorización tiene que ver con la política de administración.
Control de Acceso Por Clases de Usuarios
Una matriz de control de acceso puede llegar a ser tan grande que resulte impráctico mantenerla. Una técnica que requiere menos espacio es controlar el acceso a varias clases de usuarios. Un ejemplo de esquema de clasificación es el siguiente:
• Propietario:
• Suele ser el usuario que creó el archivo.
• Usuario especificado:
• El propietario especifica quién más puede usar el archivo.
• Grupo o proyecto:
• Los diferentes miembros de un grupo de trabajo sobre un proyecto, acceden a los diferentes archivos relacionados con el proyecto.
• Público:
• Un archivo público puede ser accedido por cualquier usuario de la computadora.
• Generalmente permite leer o ejecutar pero no escribir sobre el archivo.