NellaNell'ambito della [[sicurezza informatica]], il '''role-based access control'''<ref name=":0">{{Cita pubblicazione|autore=|data=October 1992|titolo=Role-Based Access Control|rivista=15th National Computer Security Conference|volume=|numero=|pp= 554–563554-563|lingua=Inglese|url=http://csrc.nist.gov/groups/SNS/rbac/documents/ferraiolo-kuhn-92.pdf|autore2=Kuhn, D.R.|autore1=Ferraiolo, D.F.|lastauthoramp=yes|formato=PDF}}</ref><ref>{{Cita pubblicazione|autore=|cognome=Sandhu, R., Coyne, E.J., Feinstein, H.L. and Youman, C.E.|data=August 1996|titolo=Role-Based Access Control Models|rivista=IEEE Computer|editore=IEEE Press|volume=29|numero=2|pp= 38–4738-47|lingua=Inglese|doi=10.1109/2.485845|url=http://csrc.nist.gov/rbac/sandhu96.pdf|formato=PDF}}</ref> (in italiano: '''controllo degli accessi basato sui ruoli'''; in sigla '''RBAC''') è una tecnica di controllo di accesso adegli sistemiutenti ristrettoalle perrisorse utentidi autorizzatiun [[sistema informatico]]. È una più recente alternativa al [[mandatory access control]] ("controllo degli accessi vincolato", in sigla MAC) e al [[discretionary access control]] ("controllo degli accessi discrezionale", in sigla DAC). ▼
{{F|sicurezza informatica|maggio 2012|Mancano del tutto le sezioni Note/Bibliografia/Collegamenti esterni}}
Si tratta di un meccanismo di accesso definito basandosi sui concetti di ruolo e privilegiopermesso. I componenti del RBAC, come i permessi dei ruoli, il ruolo utente e le relazioni ruolo-ruolo, fanno in modoconsentono di semplificare l' assegnamentoassegnazione dei ruolipermessi agli utenti. Uno studio diretto dal [[National Institute of Standards and Technology|NIST]] (National Institute of Standard Technologies) ha dimostrato che il RBAC risponde a molte necessità di organizzazioni commerciali e governative. Infatti, il RBAC può essere usato per facilitare la gestione della sicurezza nelle organizzazioni composte da centinaia di utenti e migliaia di permessi diversi. Benché il RBAC sia diverso dal MAC e dal DAC, può contribuire a migliorare queste politiche senza aggiungere delle complicazioni. La popolarità del RBAC è evidenziata dal fatto che molti prodotti e organizzazioni lo usano direttamente o indirettamente. ▼
▲Nella [[sicurezza informatica]], il '''role-based access control'''<ref name=":0">{{Cita pubblicazione|autore=|data=October 1992|titolo=Role-Based Access Control|rivista=15th National Computer Security Conference|volume=|numero=|pp=554–563|lingua=Inglese|url=http://csrc.nist.gov/groups/SNS/rbac/documents/ferraiolo-kuhn-92.pdf|autore2=Kuhn, D.R.|autore1=Ferraiolo, D.F.|lastauthoramp=yes|formato=PDF}}</ref><ref>{{Cita pubblicazione|autore=|cognome=Sandhu, R., Coyne, E.J., Feinstein, H.L. and Youman, C.E.|data=August 1996|titolo=Role-Based Access Control Models|rivista=IEEE Computer|editore=IEEE Press|volume=29|numero=2|pp=38–47|lingua=Inglese|doi=10.1109/2.485845|url=http://csrc.nist.gov/rbac/sandhu96.pdf|formato=PDF}}</ref> (in italiano: '''controllo degli accessi basato sui ruoli'''; in sigla '''RBAC''') è una tecnica di accesso a sistemi ristretto per utenti autorizzati. È una più recente alternativa al [[mandatory access control]] ("controllo degli accessi vincolato", in sigla MAC) e al [[discretionary access control]] ("controllo degli accessi discrezionale", in sigla DAC).
== Il modello RBAC ==
▲Si tratta di un meccanismo di accesso definito basandosi sui concetti di ruolo e privilegio. I componenti del RBAC, come i permessi dei ruoli, il ruolo utente e le relazioni ruolo-ruolo, fanno in modo di semplificare l'assegnamento dei ruoli agli utenti. Uno studio diretto dal [[National Institute of Standards and Technology|NIST]] (National Institute of Standard Technologies) ha dimostrato che il RBAC risponde a molte necessità di organizzazioni commerciali e governative. Infatti, il RBAC può essere usato per facilitare la gestione della sicurezza nelle organizzazioni composte da centinaia di utenti e migliaia di permessi diversi. Benché il RBAC sia diverso dal MAC e dal DAC, può contribuire a migliorare queste politiche senza aggiungere delle complicazioni. La popolarità del RBAC è evidenziata dal fatto che molti prodotti e organizzazioni lo usano direttamente o indirettamente.
All'interno di una un'organizzazione, i ruoli sonodefiniscono creatidifferenti perattività diverse funzioni di lavorolavorative. I permessi perdi eseguire specifiche operazioni sono assegnateassegnati a specifici ruoli. Ai membri di un gruppo sono assegnati particolari ruoli e, attraverso queste assegnazioni, questi acquisiscono il permesso di eseguire specifiche funzioni. Poiché i permessi non sono assegnati direttamente agli utentiall'utente, ma vengono acquisiti solo tramite il ruolo (o i ruoli) ad essi assegnati all'utente, la gestione dei diritti individuali perdi un utente diventa una semplice assegnazione deidi ruoli appropriati per lall'utente stesso. Questo semplifica le operazioni comuni, come l'aggiunta di un utente o il cambio di dipartimento. ▼
== Design ==
▲All'interno di una organizzazione, i ruoli sono creati per diverse funzioni di lavoro. I permessi per eseguire specifiche operazioni sono assegnate a specifici ruoli. Ai membri di un gruppo sono assegnati particolari ruoli e, attraverso queste assegnazioni, questi acquisiscono il permesso di eseguire specifiche funzioni. Poiché i permessi non sono assegnati direttamente agli utenti ma vengono acquisiti solo tramite il ruolo (o i ruoli) ad essi assegnati, la gestione dei diritti individuali per un utente diventa una semplice assegnazione dei ruoli appropriati per l'utente stesso. Questo semplifica le operazioni comuni, come l'aggiunta di un utente o il cambio di dipartimento.
Tre regole fondamentali sono definite per il modello RBAC:
Quando si definisce un RBAC sono utili le seguenti convenzioni:
* S = Soggetto = una persona o un agente automatico;
* R = Ruolo = funzioneattività di lavorolavorativa o titolo che definisce un livello di autorità;
* P = Permessi = approvazione della modalità di accesso alla risorsa;
* SE = Sessione = un collegamento che coinvolge S, R e/o P;
== Relazione del RBAC con altri modelli ==
Il RBAC è una tecnologia di controllo degli accessi flessibile che consente di implementare sistemi [[Discretionary Access Control|DAC]]<ref>{{Cita pubblicazione|autore=|data=October 1998|titolo=How to do discretionary access control using roles|rivista=3rd ACM Workshop on Role-Based Access Control|volume=|numero=|pp=47–5447-54|lingua=Inglese|autore2=Qamar Munawer|autore1=Ravi Sandhu}}</ref> o [[Mandatory Access Control|MAC]].<ref>{{Cita pubblicazione|autore=|anno=2000|titolo=Configuring role-based access control to enforce mandatory and discretionary access control policies|rivista=ACM Transactions on Information and System Security|volume=|numero=|pp=85–10685-106|lingua=Inglese|autore2=Ravi Sandhu|autore3=Qamar Munawer|autore1=Sylvia Osborn}}</ref> Viceversa, il DAC con gruppi (come ad esempio il sistema implementato nei file system POSIX) può emulare il RBAC.<ref>{{Cita pubblicazione|autore=|anno=2005|titolo=A Verification Approach for Applied System Security|rivista=International Journal on Software Tools for Technology (STTT)|volume=|numero=|lingua=Inglese|doi=10.1007/s10009-004-0176-3|url=http://www.brucker.ch/bibliography/abstract/brucker.ea-verification-2005.en.html|nome2=Burkhart|cognome2=Wolff|nome1=Achim D.|cognome1=Brucker}}</ref> Anche il MAC può simulare il RBAC se il grafico dei ruoli assume la forma di albero e non di [[Relazione d'ordine|insieme parzialmente ordinato]].<ref>{{Cita pubblicazione|autore=D.R. Kuhn|anno=1998|titolo=Role Based Access Control on MLS Systems Without Kernel Changes|rivista=Third ACM Workshop on Role Based Access Control|volume=|numero=|pp=25–3225-32|lingua=Inglese|url=http://csrc.nist.gov/groups/SNS/rbac/documents/design_implementation/kuhn-98.pdf|formato=PDF}}</ref>
Prima dello sviluppo del RBAC, il [[modello Bell-LaPadula]] (BLP) era sinonimo di MAC e i [[Permessi (Unix)|permessi del file system]] erano equivalenti al DAC. Essi erano considerati gli unici modelli conosciuti per il controllo dell'accesso: se un modello non ricadeva in un modello BLP, allora era considerato un DAC, e viceversa. Diverse ricerche della fine degli anni Novanta hanno dimostrato che il RBAC non ricade in nessuna delle due categorie.<ref>{{Cita web|url=http://csrc.nist.gov/rbac/rbac-faq.html|titolo=Role Based Access Control - FAQs {{!}} CSRC|sito=csrc.nist.gov|accesso=2017-12-13}}</ref><ref>{{Cita web|url=http://csrc.nist.gov/groups/SNS/rbac/documents/ferraiolo-kuhn-92.pdf|titolo=Role-Based Access Controls|autore=David Ferraiolo, Richard Kuhn|sito=csrc.nist.gov|lingua=EN-US|accesso=2017-12-13}}</ref> A differenza del [[Context-Based Access Control]] (CBAC), il RBAC non si basa sui messaggi di contesto (come la fonte della connessione). Il RBAC è stato criticato in quanto comporta un grande numero di ruoli<ref>{{Cita pubblicazione|autore=|anno=2010|titolo=Role Explosion: Acknowledging the Problem|rivista=Proceedings of the 2010 International Conference on Software Engineering Research & Practice|volume=|numero=|lingua=Inglese|url=http://knight.segfaults.net/papers/20100502%20-%20Aaron%20Elliott%20-%20WOLRDCOMP%202010%20Paper.pdf|autore2=G. S. Knight|autore1=A. A. Elliott|lastauthoramp=yes|formato=PDF}}</ref>, un problema nei sistemi delle grandi imprese, che richiedono un controllo degli accessi più fine rispetto a quello che il RBAC può fornire tramite i ruoli assegnati attraverso ereditarietà ad operazioni e ai tipi di dato. In somiglianza al CBAC, un sistema basato su Entity-Relationship Based Access Control (ERBAC, da non confondere con l'Extended Role-Based Access Control, una versione modificata del RBAC<ref name=":0" /> che usa lo stesso acronimino), è capace di assicurare istanze di dati considerando la loro associazione con il soggetto che sta eseguendo.<ref>{{Cita web|url=http://www.tynamo.org/tapestry-security-jpa+guide/|titolo=tapestry-security-jpa|autore=Kalle Korhonen|sito=www.tynamo.org|accesso=2017-12-13}}</ref>
Il RBAC è diverso anche dalle [[Lista di controllo degli accessi|liste di controllo degli accessi]] (ACL), usate nei sistemi tradizionali a controllo discrezionale degli accessi, in cui si assegnano permessi per specifiche operazioni legate ad oggetti di alto livello, più che a dati di basso livello. Per esempio, una lista di controllo degli accessi può essere usata per permettere o vietare l'accesso in scrittura ad un particolare file di sistema, ma non può stabilire come quel file può essere cambiato. In un sistema basato su RBAC, un'operazione può essere definita a livello molto più dettagliato: ad esempio, può esistere l'operazione di creazione di un account di credito in un'applicazione bancaria oppure l'aggiunta di un esame del livello degli zuccheri nel sangue in un software medico. L'assegnamentoassegnazione del permesso di svolgere una particolare operazione è molto importante, in quanto ogni operazione ha un proprio significato all'interno dell'applicazione. Il RBAC ha dimostrato di essere particolarmente adatto nei requisiti di separazione dei compiti (in inglese, SoD, Separation of Duties), che assicurano che debbano essere coinvolte due o più persone nell'autorizzazione di operazioni critiche. Sono state individuate le condizioni necessarie e sufficienti per la corretta SoD in un sistema RBAC. Un principio sottinteso della SoD è quello che nessun individuo dovrebbe essere in grado di provocare una violazione della sicurezza attraverso un privilegio duale. Per estensione, nessuna persona dovrebbe coprire un ruolo che controlla e verifica l'operato di un altro ruolo che sta ricoprendo, ovvero non può essere supervisore di sé stesso.<ref>{{Cita pubblicazione|autore=D.R. Kuhn|anno=1997|titolo=Mutual Exclusion of Roles as a Means of Implementing Separation of Duty in Role-Based Access Control Systems|rivista=2nd ACM Workshop Role-Based Access Control|volume=|numero=|pp=23–3023-30|lingua=Inglese|url=http://csrc.nist.gov/groups/SNS/rbac/documents/design_implementation/kuhn-97.pdf|formato=PDF|accesso=6 dicembre 2017|dataarchivio=5 giugno 2011|urlarchivio=https://web.archive.org/web/20110605103659/http://csrc.nist.gov/groups/SNS/rbac/documents/design_implementation/kuhn-97.pdf|urlmorto=sì}}</ref><ref>{{Cita pubblicazione|autore=Ninghui Li, Ziad Bizri, and Mahesh V. Tripunitara . Tripunitara|anno=2004|titolo=On mutually exclusive roles and separation-of-duty,|rivista=11th ACM conference on Computer and Communications Security|volume=|numero=|pp=42–5142-51|lingua=Inglese|url=httphttps://portal.acm.org/citation.cfm?id=1030091|formato=PDF}}</ref>
=== Confronto con il Discretionary Access Control (DAC) ===
== Pregi e difetti ==
L'uso del RBAC per gestire i privilegi utente (e i permessi su un computer) all'interno di un singolo sistema o applicazione è largamente accettata come la tecnica migliore. Un report del 2010 preparato dal NIST dal Reasearch Triangle Institute per il NIST ha analizzato il valore economico del RBAC per le imprese ed ha stimato i benefici per impiegato, espressi come un ridotto tempominori ditempi inattivitàmorti ed una più efficiente amministrazione della politica del controllo degli accessi.<ref name="autogenerated2002">{{Cita libro|autore2=R.J. Loomis|titolo=Economic Analysis of Role-Based Access Control|url=http://csrc.nist.gov/groups/SNS/rbac/documents/20101219_RBAC2_Final_Report.pdf|formato=PDF|data=March 2002|editore=Research Triangle Institute|lingua=Inglese|p=|autore1=A.C. O'Connor|lastauthoramp=yes}}</ref>
In un'organizzazione con infrastrutture informatiche eterogenee e requisiti che coprono decine o centinaia di sistemi ed applicazioni, usare il RBAC per gestire ruoli sufficienti ed assegnare gli utenti a ruoli adeguati diventa estremamente complesso senza la creazione gerarchica di ruoli ed assegnamentoassegnazione di permessi.<ref>{{Cita web|url=http://www.idsynch.com/docs/beyond-roles.html|titolo=Beyond Roles: A Practical Approach to Enterprise IAM|autore=Hitachi ID Systems|sito=www.idsynch.com|lingua=en|accesso=2017-12-13|dataarchivio=21 agosto 2008|urlarchivio=https://web.archive.org/web/20080821123658/http://www.idsynch.com/docs/beyond-roles.html|urlmorto=sì}}</ref> I sistemi più recenti estendono il vecchio modello RBAC del NIST<ref>{{Cita pubblicazione|autore=Sandhu, R., Ferraiolo, D.F. and Kuhn, D.R.|data=July 2000|titolo=The NIST Model for Role-Based Access Control: Toward a Unified Standard|rivista=5th ACM Workshop Role-Based Access Control|volume=|numero=|pp=47–6347-63|lingua=Inglese|url=http://csrc.nist.gov/rbac/sandhu-ferraiolo-kuhn-00.pdf|formato=PDF}}</ref> per rivolgersi alle limitazioni del RBAC delle distribuzioni per le grandi imprese. Il modello del NIST è stata adottato come standard dall'[[International Committee for Information Technology Standards|INCITS]] come ANSI/INCITS 359-2004. Inoltre, è stata pubblicata una discussione su alcune scelte di design per il modello NIST.<ref>{{Cita pubblicazione|autore=Ferraiolo, D.F., Kuhn, D.R., and Sandhu, R.|data=Nov–Dec 2007|titolo=RBAC Standard Rationale: comments on a Critique of the ANSI Standard on Role-Based Access Control|rivista=IEEE Security & Privacy|editore=IEEE Press|volume=5|numero=6|pp=51–5351-53|lingua=Inglese|doi=10.1109/MSP.2007.173|url=http://csrc.nist.gov/groups/SNS/rbac/documents/ferraiolo-kuhn-sandhu-07.pdf|formato=PDF|urlmorto=sì|urlarchivio=https://web.archive.org/web/20080917093137/http://csrc.nist.gov/groups/SNS/rbac/documents/ferraiolo-kuhn-sandhu-07.pdf|dataarchivio=17 settembre 2008}}</ref>
== Note ==
<references />
==Bibliografia==
* David F. Ferraiolo; D. Richard Kuhn; Ramaswamy Chandramouli (2007). ''Role-based Access Control'' (2nd ed.). Artech House. ▼
==Voci correlate==
* [[PERMIS]]
* [[XACML]]
== Letture di approfondimento ==
▲* David F. Ferraiolo; D. Richard Kuhn; Ramaswamy Chandramouli (2007). ''Role-based Access Control'' (2nd ed.). Artech House.
== Collegamenti esterni ==
* [http://csrc.nist.gov/rbac/ Role Based Access Controls at NIST]
* [http://docs.oasis-open.org/xacml/2.0/access_control-xacml-2.0-rbac-profile1-spec-os.pdf XACML core and hierarchical role based access control profile]
* {{collegamento interrotto|1=[http://www.servercare.nl/Lists/Posts/Post.aspx?ID=92 Practical experiences in implementing RBAC] {{Webarchive|dateurl=aprile 2018https://web.archive.org/web/20110724171153/http://www.servercare.nl/Lists/Posts/Post.aspx?ID=92 |botdata=InternetArchiveBot24 luglio 2011 }}
* [http://www.adaxes.com/active-directory_delegation.htm Role-based approach to Active Directory delegation]
[[Categoria:SicurezzaControllo degli accessi (informatica)]]
|