APICe » Theses » Class » RbacTufo06

Analisi e progetto di un sistema di controllo degli accessi ad un edificio 

Felice Tufo


Lo sviluppo tecnologico degli ultimi anni, in termini di potenza computazionale, capacità di memoria, miniaturizzazione, interoperabilità e integrazione dei dispositivi, ha consentito l'adozione di sistemi informatici in molti campi, generando allo stesso tempo un aumento considerevole della complessità delle applicazioni. In particolare, la capacità di trattare caratteristiche che fino a poco tempo fa erano appannaggio di poche applicazioni specializzate, quali la distribuzione del sistema su nodi diversi, in cui l'interazione delle varie parti è predominante rispetto alla computazione concentrata dei singoli, e l'apertura ad ambienti di esecuzione dinamici e spesso non predicibili a priori, comincia oggi a essere un requisito imprescindibile che decreta il successo nel tempo o il rapido accantonamento di un sistema software. I progettisti si trovano quindi a dover fronteggiare, oltre alle difficoltà intrinseche dell'ambito applicativo in esame, problemi più generali che coinvolgono sia la gestione della complessità del sistema durante le fasi di analisi e progettazione, sia lo studio di problemi derivanti proprio dalle nuove caratteristiche computazionali, quali ad esempio l'eterogeneità delle varie parti componenti del sistema, la qualità di servizio e, non ultimo, la sicurezza. In questo contesto così dinamico, le vecchie tecniche di ingegneria del software, basate sull'astrazione di ?oggetto? o di ?componente? come unità di modellazione e progettazione, non sono più sufficientemente espressive per cogliere i nuovi requisiti computazionali. Il paradigma ad agenti è recentemente emerso come un insieme di modelli e tecnologie che supportano l'analisi e la progettazione di sistemi software complessi, mediante l'utilizzo di nuove astrazioni. L?adozione di questo nuovo approccio consente di modellare un sistema complesso come un sistema multi-agente, cioè come una collezione di entità software autonome, flessibili e proattive, gli agenti, ciascuno dei quali rappresenta un flusso indipendente di controllo all?interno del sistema. Ogni agente ha degli obiettivi propri da conseguire, interagisce con altri agenti e con l?ambiente circostante mediante protocolli e linguaggi di alto livello e può partecipare a società, insiemi di agenti con obiettivi comuni, paragonabili a sottoparti del sistema complessivo; ogni agente ricopre uno più ruoli all'interno delle società in cui opera e cerca di raggiungere degli obiettivi necessari al buon funzionamento della società stessa. Tuttavia la semplice interazione tra agenti, se non regolata, può portare il sistema ad avere comportamenti diversi da quelli previsti; bisogna evitare infatti, particolarmente in ambienti aperti, che essi interferiscano in qualche modo tra di loro, ostacolandosi a vicenda nel raggiungimento degli obiettivi. Per scongiurare questo tipo di problemi, è necessario introdurre opportuni metodi mediante i quali l'interazione può essere regolata e controllata, evolvendo da semplice interazione a coordinazione; in altre parole, il funzionamento di un sistema multi-agente richiede leggi globali che gli agenti devono rispettare quando interagiscono tra loro e 3 con l'ambiente che li circonda. A tale scopo è stato introdotto di recente un modello di coordinazione tra agenti, basato su un'interazione mediata da un mezzo di coordinazione, dove la stessa interazione viene sia abilitata, grazie alle primitive di coordinazione offerte dal mezzo, sia regolata da opportune leggi sociali, inglobate nel mezzo e applicate dallo stesso. In questo nuovo modello sono necessarie opportune tecniche che supportino l'analisi e la progettazione esplicita dell'interazione e delle leggi che la regolano, essendo la gestione della stessa non più un compito in carico al singolo agente, ma un servizio che deve essere fruibile da qualsiasi agente nell'ambiente in cui andrà ad operare. SODA è una nuova metodologia di analisi e progettazione orientata agli agenti, che si concentra principalmente su tematiche di interazione tra gli stessi, non tenendo in conto volontariamente problemi di progettazione individuali legati al singolo agente. Partendo dalle considerazioni fin qui svolte, mediante questa tesi si vuole dare un'idea di come sia possibile utilizzare proficuamente il paradigma ad agenti nello sviluppo di un sistema complesso, applicando le teorie che verranno illustrate all'analisi e progettazione di un sistema di controllo d'accesso fisico ad un edificio. La scelta del controllo d'accesso come caso applicativo non è casuale, essendo questo uno dei problemi che emergono quando si utilizzano metodologie ad agenti per progettare sistemi aperti. Infatti, in ambienti distribuiti e dinamici, in cui gli agenti hanno a disposizione delle risorse condivise, è necessario l'utilizzo di sistemi di controllo d'accesso alle stesse, con lo scopo di prevenire utilizzi malevoli da parte di agenti fraudolenti, lasciandone tuttavia inalterata la disponibilità agli agenti legittimi. In particolare, l'utilizzo stesso del mezzo di coordinazione (e la possibilità quindi di poter interagire con altri agenti/risorse) può essere sottoposto a una decisione di controllo che limiti le primitive di coordinazione invocabili dagli agenti e offerte dal mezzo. A questo proposito, il fatto che un agente ricopra almeno un ruolo all'interno di una società può essere opportunamente sfruttato come parametro su cui basare le decisioni d'accesso. Storicamente infatti, i sistemi di controllo d'accesso sono ripartiti in due grandi categorie: quelli DAC, basati sul modello della matrice di controllo d'accesso, e quelli MAC, basati su divisioni di utenti e risorse in classi e su reticoli delle stesse. Entrambi questi modelli hanno in comune la caratteristica di assegnare i permessi sulle risorse direttamente agli utenti, con lo svantaggio che bisogna riportare ogni modifica fatta per un utente su tutte le risorse per cui l'utente ha dei permessi, e viceversa. Di recente ha invece cominciato a diffondersi un nuovo standard, il Role Based Access Control, che introduce un livello di indirezione tra utenti e permessi attraverso il concetto di ruolo, ovvero di una mansione assegnata all'interno di una società, che implica il possesso di autorizzazioni ben definite per essere portata a termine: in questo nuovo modello, i permessi non appartengono direttamente agli utenti, ma vengono invece assegnati ai ruoli; un utente acquista permessi entrando a far parte di uno o più ruoli. Essendo i ruoli praticamente fissi in una data 4 società e dovendo ogni utente necessariamente ricoprirne uno, il vantaggio di utilizzare questa nuova tecnica, in particolar modo dal punto di vista amministrativo, è evidente: modifiche ai permessi di ogni ruolo si riflettono automaticamente sugli utenti che ricoprono quel ruolo e un cambiamento nelle assegnazioni dei ruoli agli utenti non comporta il cambiamento dei permessi per ogni singolo utente. Di conseguenza in questa tesi si analizzeranno, oltre agli argomenti menzionati in precedenza, anche caratteristiche specifiche del controllo d'accesso generale e basato su ruoli e si vedrà come applicare questi concetti al mondo degli agenti. In particolare, nel Capitolo 1 verrà analizzato lo standard Role Based Access Control, per il controllo d'accesso basato su ruoli e nel Capitolo 2 verranno proposte alcune direzione di ricerca ed estensioni per lo stesso standard. Nel Capitolo 3 invece sarà dato spazio all'analisi di modelli ad agenti e si vedrà in dettaglio la tecnica SODA menzionata in precedenza. Nel Capitolo 4 si vedrà come coniugare controllo d'accesso e tecnologie ad agenti mediante il concetto di Agent Coordination Context, esaminando come ciò è stato implementato nell'infrastruttura TuCSoN. Infine, nei Capitoli 5, 6 e 7 verrà analizzato e implementato il sistema di controllo d'accesso fisico ad un edificio e sarà data una dimostrazione del suo funzionamento per il caso applicativo di un edificio universitario.


Enrico Denti (Supervisor)
Ambra Molesini (Co-supervisors)