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

   page       attach   
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.