Control de acceso orientado a los datos
Después de una conexión con éxito, al usuario se le habrá concedido el acceso a uno o más servidores y aplicaciones. Esto no suele ser suficiente en un sistema que incluya datos sensibles en su base de datos. Mediante el procedimiento de control de acceso al usuario, el sistema puede identificar a un usuario. Asociado con cada usuario, puede haber un perfil de usuario que especifique las operaciones y los accesos a archivos permisibles.73
El sistema operativo puede hacer valer reglas en función del perfil del usuario. El sistema gestor de la base de datos, sin embargo, debe controlar el acceso a registros específicos o incluso partes de un registro. Por ejemplo, puede permitirse que cualquier administrador obtenga una lista del personal de una organización, pero solamente unos individuos elegidos pueden tener acceso a la información de sueldos y salarios.
La cuestión es más importante de lo que parece. Mientras que el sistema operativo puede otorgar a un usuario permiso para acceder a un archivo o utilizar una aplicación, tras lo cual no se producen más controles de seguridad, el sistema gestor de la base de datos debe tomar decisiones sobre cada intento de acceso individual. Dicha decisión dependerá no sólo de la identidad del usuario, sino también de las partes específicas de datos a las que se accede e, incluso, de la información ya divulgada al usuario.
Un modelo general de control de acceso ejercido por un sistema gestor de archivos o bases de datos es el de una matriz de acceso. Los elementos básicos del modelo son los siguientes:
Matriz de acceso. El modelo de protección del sistema se puede ver en forma abstracta como una matriz, la matriz de acceso (Figura 6-3). Sujeto: una entidad capaz de acceder a los objetos. En general, el concepto de sujeto es equiparable con el de proceso. Cualquier usuario o aplicación consigue acceder en realidad a un objeto por medio de un proceso que representa al usuario o a la aplicación.
Objeto: cualquier cosa cuyo acceso debe controlarse. Como ejemplos 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 ejemplos está Leer, Escribir y Ejecutar.
Una dimensión de la matriz consta de los sujetos identificados que pueden intentar acceder a los datos. Normalmente, esta lista está formada por usuarios individuales o grupos de usuarios, aunque se puede controlar el acceso para terminales, servidores o aplicaciones, en lugar de o además de usuarios. La otra dimensión enumera los objetos a los que se puede acceder. Más concretamente, los objetos pueden ser campos de datos individuales. También pueden ser objetos de la matriz agrupaciones más globales, como registros, archivos o incluso la base de datos entera. Cada entrada de la matriz indica los derechos de acceso de ese sujeto a ese objeto.
En la práctica, las matrices de acceso suelen estar dispersas y se implementan por descomposiciones en una de las dos dimensiones. La matriz se puede descomponer en columna, para obtener listas de control de acceso (Figura 6-4). Así pues, para cada objeto, una lista de control de acceso enumera los usuarios y sus derechos de acceso permitidos.74
La lista de control de acceso puede contener una entrada por defecto o pública. Se permite que los usuarios a los que no se les haya concedido explícitamente unos derechos especiales dispongan de un conjunto de derechos por omisión. Los elementos de la lista por omisión pueden incluir a usuarios individuales, así como grupos de usuarios.
“Con la descomposición por filas se obtienen etiquetas de capacidad de acceso (Figura anterior). Una etiqueta de Capacidades especifica los objetos y las operaciones autorizadas para un usuario. Cada usuario tiene un número de etiquetas y puede estar autorizado para prestarlas o concederlas a los otros.”
Como las etiquetas pueden estar dispersas por el sistema, presentan un problema de seguridad mayor que el de las listas de control de acceso. “En concreto, las etiquetas no pueden ser falsificadas. Una manera de conseguirlo es que el sistema operativo guarde todas las etiquetas en vez de los usuarios. Las etiquetas deben guardarse en una zona de la memoria inaccesible para los usuarios.”
Fuente: Apuntes de la materia Sistemas Operativos Multiusuario de la FCA – UNAM