Qual è la differenza tra RBAC e DAC / ACL?

57

Quali sono i vantaggi di ciascuno e quando dovrei sceglierne uno rispetto all'altro? Ci sono situazioni in cui queste dovrebbero essere unite?

Hai esempi di usi comuni?

E per quanto riguarda MAC, dove si inserisce?

    
posta AviD 14.11.2010 - 20:27
fonte

1 risposta

77

L'RBAC (controllo dell'accesso basato sui ruoli) si basa sulla definizione di un elenco di ruoli aziendali e sull'aggiunta di ciascun utente nel sistema a uno o più ruoli. Le autorizzazioni e i privilegi vengono quindi concessi a ciascun ruolo e gli utenti li ricevono tramite la loro appartenenza al ruolo (praticamente equivalente a un gruppo). In genere, le applicazioni testano l'utente per l'appartenenza a un ruolo specifico e concedono o negano l'accesso in base a ciò.
Discretionary Access Control (DAC) consente a un utente o amministratore di definire un elenco di controllo di accesso (ACL) su una risorsa specifica (ad es. File, chiave di registro, tabella di database, oggetto OS, ecc.), Questo elenco conterrà voci (ACE) che definiscono ogni utente che ha accesso alla risorsa e quali sono i suoi privilegi per quel reso.

Il vantaggio principale di RBAC rispetto a DAC è la facilità di gestione: in linea di principio si hanno pochissimi ruoli, amministrati centralmente, non importa quanti utenti, e si tratta solo di garantire ad ogni utente il ruolo corretto; al contrario di DAC, dove per ogni nuovo utente (o cambio utente, o cancellazione, ecc.), devi andare in giro a tutte le risorse a cui ha bisogno di accedere e aggiungerle alla lista.
D'altra parte, il DAC è spesso più semplice e generalmente più granulare. Inoltre, nel modello DAC il proprietario dei dati può decidere chi ha accesso (se ha questa autorizzazione sui dati) e aggiungere o rimuovere persone dall'elenco.

Un esempio molto comune di DAC è il file system di Windows. D'altra parte, un esempio molto comune di RBAC è il DAC sui file server aziendali: chiunque nel gruppo ActiveDirectory "Vendite" avrà accesso alla cartella \ Sales \ shared. Più comunemente è il gruppo Administrators in Windows.

MAC è un controllo di accesso obbligatorio, che può essere visto come una classificazione o livello di privacy. Questo è più spesso usato nei sistemi militari, e di nuovo nei giorni Mainframe :). Non molto più usato, anche se gli attuali OS stanno implementando un sapore di questo, come i Livelli di Integrità di Vista / Win7.

Per riassumere le differenze:

  • DAC è basato su permessi personali, RBAC su permessi di "livello"
  • DAC è impostato dal proprietario dei dati, RBAC dal / dai proprietario del sistema (in genere lo sviluppatore definisce l'accesso assegnato a ciascun ruolo e l'amministratore operativo mette gli utenti in ruoli)
  • Le definizioni DAC sono in genere associate al dato / risorsa, mentre RBAC viene generalmente definito in due punti: in codice / configurazione / metadati (accesso ai ruoli) e sull'oggetto utente (o tabella - i ruoli di ciascun utente) .
  • D'altra parte, i ruoli RBAC sono amministrati centralmente (chi è associato a quali ruoli), mentre DAC è amministrato "sulla risorsa" (ad esempio, si amministrano ciascuna risorsa singolarmente).
  • La definizione di autorizzazioni per ruolo è in genere statica in RBAC e agli utenti vengono assegnati solo ruoli; in DAC le autorizzazioni per risorsa vengono spesso cambiate in fase di runtime.
  • DAC dovrebbe essere visto come enumerante "chi ha accesso ai miei dati", e RBAC definisce "cosa può fare questo utente".
risposta data 14.11.2010 - 20:42
fonte

Leggi altre domande sui tag