Sommario
Il lavoro svolto in questa tesi è stato sviluppato nell'ambito del progetto europeo RUNES il cui scopo è quello di fornire il supporto hardware e software per consentire a reti di sistemi embedded di adattarsi all'ambiente circostante a tempo di esecuzione.
Scenario guida del progetto é un disastro, cioè un avvenimento impredicibile che compromette il normale funzionamento della rete. In queste situazioni l'infrastruttura di rete preesistente potrebbe essere parzialmente o totalmente danneggiata. Occorre, quindi, ripristinare le comunicazioni in modo affidabile e sicuro al fine di applicare le adeguate contromisure.
In caso di esistenza di una rete non totalmente compromessa, é necessaria una riconfigurazione sia a livello hardware che software. Potrebbe essere necessario passare alla comunicazione wireless in modo che i nodi continuino a comunicare anche in presenza di nodi guasti. In caso di assenza di una infrastruttura di rete, potrebbe essere necessaria l'installazione di una rete ad-hoc per mezzo di dispositivi autonomi mobili, che comunicano fra loro via wireless.
Tuttavia, la riconfigurazione hardware non è sufficiente in quanto potrebbe nascere l'esigenza di nuove applicazioni. Ad esempio a differenza delle reti cablate e dedicate, la rete wireless è insicura, in quanto un avversario con un semplice radiotrasmettitore potrebbe intercettare o alterare le comunicazioni. Occorre quindi garantire la confidenzialità e l'autenticità delle comunicazioni. Al fine di riconfigurare il software, si fa riferimento al RUNES Component Run-Time Kernel (RUNES-CRTK) che mette a disposizione le API per caricare e istanziare le componenti software a run-time. Una componente è una entità elementare che interagisce con le altre tramite le interfacce e i ricettacoli.
In questa tesi é stato progettato e realizzato il Secure Communication Component (SeC). Tale componente é responsabile di realizzare un protocollo di sicurezza fra due entità remote che comunicano via wireless. Data un'applicazione A che trasmette e riceve i messaggi, il SeC deve intercettare la comunicazione, ritrovare la corrispondente regola di sicurezza e effettuare le eventuali modifiche sul messaggio prima di trasmetterlo in rete.
Il SeC deve garantire i seguenti requisiti:
• Trasparenza: il SeC deve poter essere inserito e rimosso tra le due entità remote senza che sia necessaria una loro riconfigurazione.
• Riconfigurabilità: le regole di sicurezza devono poter essere modificate senza dover riconfigurare il SeC.
• Flessibilità: il SeC deve poter caricare dinamicamente le componenti software al fine di far rispettare le regole di sicurezza.
La tesi si sviluppa nel seguente modo:
Nel Capitolo 1 viene descritto il progetto RUNES, a cosa aspira e uno scenario di utilizzo.
Nel capitolo 2 vengono introdotti il middleware di RUNES e i concetti su cui si basa il SeC.
Nel capitolo 3 vengono spiegati il SeC, i suoi requisiti, il funzionamento e lo pseudolinguaggio per le policy.
Nel capitolo 4 vengono descritte le componenti del SeC, cosa accade durante l’esecuzione di una richiesta, come deve essere scritta una policy con i relativi esempi e in fine viene mostrato l’output del test della componente SeC.