it-swarm-es.com

¿Cuál es la diferencia entre RBAC y DAC / ACL?

¿Cuáles son los beneficios de cada uno y cuándo debo elegir uno sobre el otro? ¿Hay situaciones en las que deberían fusionarse?

¿Tienes ejemplos de usos comunes?

¿Y qué hay de MAC, dónde encaja eso?

64
AviD

RBAC (control de acceso basado en roles) se basa en la definición de una lista de roles comerciales y en agregar a cada usuario en el sistema a uno o más roles. Luego se otorgan permisos y privilegios a cada rol, y los usuarios los reciben a través de su membresía en el rol (más o menos equivalente a un grupo). Por lo general, las aplicaciones evaluarán la membresía del usuario en un rol específico y otorgarán o denegarán acceso en función de eso.
El control de acceso discrecional (DAC) permite a un usuario o administrador definir una lista de control de acceso (ACL) en un recurso específico (por ejemplo, archivo, clave de registro, tabla de base de datos, objeto del sistema operativo, etc.), esta lista contendrá entradas (ACE) que definen a cada usuario que tiene acceso al recurso y cuáles son sus privilegios para ese recurso.

El principal beneficio de RBAC sobre DAC es la facilidad de administración: en principio, tiene muy pocos roles, administrados centralmente, sin importar cuántos usuarios, y es solo una cuestión de otorgar a cada usuario el rol correcto; a diferencia de DAC, donde para cada nuevo usuario (o cambio de usuario, o eliminación, etc.), debe ir a todos los recursos a los que necesita acceder y agregarlos a la lista.
Por otro lado, DAC es a menudo más simple y generalmente más granular. Además, en el modelo DAC, el propietario de los datos puede decidir quién tiene acceso (si tiene ese permiso en los datos) y agregar o eliminar personas de la lista.

Un ejemplo muy común de DAC es el sistema de archivos de Windows. Por otro lado, un ejemplo muy común de RBAC es el DAC en servidores de archivos corporativos: cualquier persona en el grupo ActiveDirectory "Ventas" tendrá acceso a la carpeta\Sales\shared. Más comúnmente es el grupo Administradores en Windows.

MAC es un control de acceso obligatorio, esto puede verse como una clasificación o nivel de privacidad. Esto se usa con mayor frecuencia en sistemas militares, y en los días de Mainframe :). Ya no se usa tanto, aunque los sistemas operativos actuales están implementando una muestra de esto, como los niveles de integridad de Vista/Win7.

Para resumir las diferencias:

  • DAC se basa en permisos personales, RBAC en permisos de nivel "grupal"
  • DAC es establecido por el propietario de los datos, RBAC por los propietarios del sistema (generalmente el desarrollador define el acceso otorgado a cada rol y el administrador operativo pone a los usuarios en roles)
  • Las definiciones de DAC generalmente se adjuntan a los datos/recursos, mientras que RBAC generalmente se define en dos lugares: en código/configuración/metadatos (el acceso a roles) y en el objeto de usuario (o tabla: los roles que tiene cada usuario).
  • Por otro lado, los roles de RBAC se administran centralmente (quién está asociado con qué roles), mientras que DAC se administra "en el recurso" (es decir, usted administra cada recurso individualmente).
  • La definición de permisos por rol suele ser estática en RBAC, y los usuarios solo tienen roles; en DAC, los permisos por recurso a menudo se cambian en tiempo de ejecución.
  • DAC debe verse como una enumeración de "quién tiene acceso a mis datos", y RBAC define "qué puede hacer este usuario".
87
AviD