Arquitectura Formal de NIST NGAC (Next Generation Access Control): Nodos, Asignaciones y Asociaciones (55 min)
Arquitectura Formal de NIST NGAC (Next Generation Access Control): Nodos, Asignaciones y Asociaciones
1. Por qué RBAC Explota Combinatoriamente (Role Explosion) y ABAC Puro Es Inauditable
- RBAC (Role-Based Access Control): Cuando los permisos dependen simultáneamente de Cargo $\times$ Sucursal ($100$) $\times$ Línea de Negocio ($10$) $\times$ Nivel de Clasificación ($4$), el sistema requiere crear $10 \times 100 \times 10 \times 4 = 40,000$ roles estáticos ingobernables. - ABAC Basado en Reglas Lógicas (XACML): Evalúa expresiones booleanas arbitrarias en tiempo de consulta, pero hace que el problema de responder "¿Qué objetos exactamente puede modificar hoy el usuario Juan?" (Auditoría de Revisión de Acceso) sea NP-Difícil.
NIST NGAC (Estándar INCITS 565) modela la seguridad como un Grafo Dirigido Acíclico (DAG) sobre cinco conjuntos finitos de nodos ($mathcal{U}, mathcal{UA}, mathcal{O}, mathcal{OA}, mathcal{PC}$) permitiendo combinar simultáneamente políticas discrecionales (DAC), obligatorias (MAC), RBAC y separación de funciones en tiempo lineal sobre la profundidad del grafo:
flowchart LR
U["Usuario (u in U)"] -->|Assign| UA1["User Attribute (Rama Comercial)"]
UA1 -->|Assign| UA2["User Attribute (Auditor Senior)"]
UA2 ===|Associate: {read, approve}| OA2["Object Attribute (Créditos Hipotecarios)"]
O["Objeto / Fila (o in O)"] -->|Assign| OA1["Object Attribute (Sucursal Santiago)"]
OA1 -->|Assign| OA2
UA2 -->|Assign| PC["Policy Class (Regulación Bancaria)"]
OA2 -->|Assign| PC
2. Condición Matemática de Decisión de Acceso en Multi-Policy Classes
Dado un usuario $u \in \mathcal{U}$, una operación $op \in \text{AR}$ (Access Rights) y un objeto $o \in \mathcal{O}$, el acceso $P(u, op, o)$ se concede si y solo si, para cada Clase de Política $pc \in \mathcal{PC}$ que contiene a $o$, existe al menos una arista de asociación $(ua, \text{ops}, oa)$ tal que: 1. $ua$ es alcanzable desde $u$ por caminos de asignación ($u \to^+ ua$). 2. $op \in \text{ops}$. 3. $oa$ es alcanzable desde $o$ ($o \to^+ oa$) y $oa \to^+ pc$.'