Facoltà di Ingegneria Corso di Studi in Ingegneria Informatica Elaborato finale in Reti di Calcolatori Security e Trustiness in scenari di Smart Mobility: il caso del progetto S2-Move Anno Accademico 2012/2013 Candidato: Luca Iandolo matr. N46/1245 Indice Introduzione 4 Capitolo 1. Sicurezza in scenari di Smart Moblity 6 1.1 1.2 1.3 Sicurezza Privacy Trust 6 7 8 Capitolo 2. Vehicular Ad-hoc Network 2.1 2.2 2.3 2.4 10 IEEE 1609.2 Pseudonimi e chiavi di gruppo Trust models Trusted routing 12 14 16 18 Capitolo 3. Wireless Sensor Networks 3.1 3.1.1 3.2 20 Protocolli di sicurezza Protocolli di sicurezza a chiave asimmetrica Trusted routing 21 24 24 Capitolo 4. S2-Move 4.1 27 Soluzione proposta 29 Conclusioni Bibliografia 32 33 III 2 Security e Trustiness in scenari di Smart Mobility: il caso del progetto S -Move Introduzione Con il continuo evolversi delle tecnologie dell’informazione e della comunicazione (ICT) è diventato possibile sviluppare tipologie di applicazioni innovative che hanno permesso lo sviluppo delle cosiddette Smart City. L'espressione Smart City indica, in senso lato, un ambiente urbano in grado di agire attivamente per migliorare la qualità della vita dei propri cittadini grazie all'impiego diffuso e innovativo delle ICT, in particolare nei campi della comunicazione, della mobilità, dell'ambiente e dell'efficienza energetica. In questo lavoro di tesi ci si soffermerà sulla mobilità e sul concetto, quindi, di Smart Mobility. In ambienti Smart City il termine mobilità non si riferisce solamente alla capacità di spostarsi da un punto all’altro della città, bensì include un nuovo insieme di servizi quali applicazioni per la gestione del traffico, per lo smart parking, per la gestione dei trasporti pubblici e così via, che possono offrire una migliore qualità del viaggio e una maggiore sicurezza ai cittadini. In uno scenario di Smart Moblity dunque, un cittadino alla guida di un auto potrà essere avvertito della presenza di un ingorgo o di un incidente lungo la strada, potrà essere aiutato nella ricerca e nel pagamento di un parcheggio, oppure si potrà salvaguardare la sicurezza dei pedoni imponendo un limite di velocità alle auto in transito in zone sensibili (come ad esempio nei pressi delle scuole). Per rendere possibile tutto ciò c’è bisogno di tecnologie che permettano un efficiente 4 2 Security e Trustiness in scenari di Smart Mobility: il caso del progetto S -Move raccolta delle informazioni e la loro diffusione. Le auto verranno dunque dotate di dispositivi che permettano la raccolta e la trasmissione di informazioni riguardanti le condizioni della strada e la velocità, l’ accelerazione e la posizione del veicolo e queste informazioni saranno raccolte anche da reti capillari di sensori inserite nel tessuto urbano. Questo lavoro di tesi si occuperà principalmente degli aspetti di security e trustiness in scenari di Smart Moblity. Dopo una breve panoramica generale sulle problematiche di sicurezza che l’utilizzo di queste tecnologie comporta, si andranno dunque a esaminare nello specifico gli aspetti di sicurezza e trustiness nell’ambito delle reti veicolari e in quelle di sensori, per poi andare a esaminare una implementazione concreta di un sistema di gestione del traffico, il progetto S2-Move, e come sia possibile rendere sicura questa soluzione. 5 2 Security e Trustiness in scenari di Smart Mobility: il caso del progetto S -Move Capitolo 1 Sicurezza in scenari di Smart Moblity Oggigiorno più del 50% della popolazione mondiale vive in arie urbane e questa percentuale è destinata a salire fino al 70% nel 2050. Visto il ruolo centrale delle città nell’economia, nella politica e nella vita sociale, garantire una mobilità innovativa, efficiente e sicura è una sfida non da poco. In uno scenario di Smart Mobility le informazioni che viaggiano nella rete contengono informazioni relative alla posizione e al comportamento degli utenti della rete stessa, ed è necessario, dunque, assicurare, oltre ad i soliti requisiti di sicurezza, quali confidenzialità, integrità, autenticazione e disponibilità, anche la privacy degli utenti e bisogna introdurre dei meccanismi che permettano la valutazione della trustiness delle informazioni ricevute e dei dispositivi che le inviano. In scenari di Smart Mobility c’è bisogno di assicurare la sicurezza e la trustiness sia al sistema visto come una scatola nera, sia ad ognuno dei singoli mattoni che compongono il sistema [13] e si deve tener conto, dunque, della privacy degli utenti [23], della sicurezza delle comunicazioni tra le diverse entità presenti, della sicurezza delle reti ad hoc e delle reti veicolari e di attacchi malware, worms [24,25] e botnets. [26] 1.1 Sicurezza Per assicurare la sicurezza in questo tipo di scenari è necessario stabilire una infrastruttura a chiave pubblica o basata su algoritmi a chiave simmetrica, che renda possibile l’utilizzo di meccanismi di crittografia e di autenticazione, anche per dispositivi con risorse limitate. 6 2 Security e Trustiness in scenari di Smart Mobility: il caso del progetto S -Move In realtà il requisito di confidenzialità non è sempre necessario, poiché le informazioni necessarie per il funzionamento di un sistema di gestione del traffico, ad esempio, non necessitano di essere occultate, anzi, l’eventuale utilizzo di algoritmi di cifratura potrebbe solamente inserire dell’overhead che rallenterebbe la diffusione di informazioni critiche quale ad esempio la segnalazione di un incidente lungo la strada, andando ad inficiare sulla qualità del sistema. E’ di fondamentale importanza assicurare la confidenzialità, invece, in applicazioni, come quelle di pagamento, in cui gli estremi di fatturazione dell’utente non devono essere inviati in chiaro sulla rete. Garantire l’integrità, d’altro canto, è di primaria importanza, in quanto un messaggio modificato, che trasporta quindi informazioni fasulle, potrebbe mettere a repentaglio la sicurezza degli utenti, indicando strada libera in presenza di incidenti o viceversa. Problemi di sicurezza potrebbero derivare anche da una manomissione fisica dei dispositivi della rete, siano essi veicoli o sensori, e bisogna dunque introdurre dei meccanismi che permettano la loro individuazione e che permettano di escluderli dalla rete. Un ulteriore aspetto da considerare per la sicurezza è la sicurezza dei cosiddetti smart software, i software che regolano l’operato dei dispositivi. Poiché è necessario un continuo scambio di dati, gli smart software devono essere perennemente connessi alla rete e, per evitare a dei possibili hacker di accedere al dispositivo, tutte le attività devono svolgersi sotto la protezione di un firewall. Ogni volta che il software accede ai dati del sistema, infatti, gli hacker possono trovare una falla nel sistema e possono sfruttarla per farsi strada e accedere alle funzionalità base del dispositivo e causare un malfunzionamento, o nel caso peggiore potrebbero accedere ad aree critiche del dispositivo e causare danni ingenti all’utilizzatore di quest’ultimo e ai suoi vicini, andando a modificare, ad esempio, la velocità del veicolo su cui il software è situato. [3] 1.2 Privacy Preservare la privacy degli utenti è forse il requisito fondamentale in ambienti smart. In questo tipo di ambiente gli utenti generano dati o sono monitorati continuamente, spesso anche inconsapevolmente. I dati generati dagli utenti saranno collezionati da sensori 7 2 Security e Trustiness in scenari di Smart Mobility: il caso del progetto S -Move intelligenti, dai veicoli elettrici ibridi connessi alla rete elettrica, dagli smartphone o verranno inviati nella rete dal veicolo stesso rendendo dunque importante una gestione efficace della privacy degli utenti. E’ possibile farlo utilizzando un sistema di pseudonimi, così da poter separare i dati ricevuti da un utente che possono essere utili per offrire un servizio agli altri utenti (ad esempio i dati relativi al traffico) dall’identità reale dell’utente (è preferibile, quindi, non utilizzare come identificatori gli indirizzi IP o MAC). Inoltre nuove tecniche di crittazione dovranno essere sviluppate per ridurre al minimo l’invio di dati personali senza diminuire la qualità del servizio. [1] In particolare la privacy del cittadino può essere violata nel momento in cui esso sottopone query al sistema oppure nel momento in cui la sua posizione viene localizzata da servizi basati sulla localizzazione (LBS). Ad esempio nel momento in cui un utente utilizza un sistema di smart parking per trovare parcheggio dichiara la sua posizione per trovare il parcheggio più vicino e la sua identità per prenotare un posto in quel parcheggio. Se l’identità non è celata, dunque, un agente malevolo potrà studiare le abitudini dell’utente, monitorare le sue attività, e calcolare la sua posizione. L’identità e la posizione di un utente possono essere celate tramite l’utilizzo di Trusted-Third Parties (TTP), che possono celare l’identità, attraverso pseudonimi come detto precedentemente, e la posizione attraverso l’uso di una cloaking region, che verrà inviata agli LBS al posto della posizione precisa, in modo da non permettere l’esatta localizzazione dell’utente, essendo le cloaking regions popolate da un alto numero di utenti. [2] 1.3 Trust Poiché in scenari di smart mobility le comunicazioni avvengono prevalentemente in reti ad-hoc e non sempre sarà possibile accedere ad un’ infrastruttura di sicurezza che permetta di riconoscere l’identità dei dispositivi sono necessari dei meccanismi che permettano ad i singoli dispositivi di prendere autonomamente delle decisioni a riguardo. Oltre ai normali meccanismi di sicurezza vanno dunque implementati dei trust model che permettano la valutazione di un livello di trust da affidare ad un entità così da poter decidere se ritenere valide o meno le informazioni ricevute da questa entità e se utilizzarlo come next hop in 8 2 Security e Trustiness in scenari di Smart Mobility: il caso del progetto S -Move comunicazioni multihop. Inoltre questi trust model dovranno essere creati appositamente per questo tipo di scenario, dove, a causa della alta mobilità dei dispositivi, vi potranno essere frequenti interazioni con dispositivi sconosciuti, per un breve lasso di tempo o per un’unica volta. 9 2 Security e Trustiness in scenari di Smart Mobility: il caso del progetto S -Move Capitolo 2 Vehicular Ad-hoc Network Per rendere possibile l’evoluzione della mobilità richiesta in scenari di Smart Mobility è necessaria una partecipazione attiva da parte degli utenti, e quindi sarà necessario dotare i veicoli di tecnologie che gli permettano di acquisire informazioni e renderle disponibili ad altri utenti. Per raggiungere questo scopo i veicoli vengono dotati di On-Board Unit (OBU) che comprendono sensori per raccogliere dati (velocità, accelerazione, posizione e condizioni della strada), una unità di elaborazione e un trasmettitore wireless a corto raggio e nascono le Vehicular Ad Hoc Network (VANET), un particolare tipo di Mobile Ad Hoc Network (MANET) che presentano un’alta velocità dei nodi e una topologia di rete soggetta a continui mutamenti, essendo esse formate da veicoli in movimento. All’interno di una VANET i veicoli possono comunicare tra loro (V2V, Vehicle-toVehicle) o possono connettersi ad un’infrastruttura (V2I, Vehicle-to-Infrastructure) attraverso le unità di supporto presenti a bordo strada (Road Side Units, RSU), per segnalare eventuali ingorghi, incidenti, etc.. 10 2 Security e Trustiness in scenari di Smart Mobility: il caso del progetto S -Move Nascono dunque nuove applicazioni per la gestione del traffico e per la salvaguardia della sicurezza dei guidatori, ad esempio, le RSU potranno avvertire i guidatori di un eventuale incidente nelle vicinanze, oppure eventuali atteggiamenti anomali di un veicolo, ad esempio una brusca frenata, comporteranno l’invio da parte di quest’ultimo di un avviso a tutte le auto vicine, per avvertirle del pericolo. Questi sono solo alcuni esempi di applicazioni rese possibili dall’utilizzo delle VANET ma sono sufficienti a capire i problemi che potrebbero derivare da eventuali attacchi alla rete, basti pensare ad esempio se nella rete iniziassero a circolare falsi avvisi di ingorghi o ancora peggio se la strada venisse segnalata libera in presenza di un incidente. Prima di vedere dunque come evitare che situazioni del genere possano accadere andando a studiare la sicurezza delle VANET, vediamo una veloce panoramica dei tipi di attacchi ai quali le VANET possono essere soggette: [7,8] Denial of Service (DoS): Con questo tipo di attacco l’attaccante punta a sovraccaricare la rete impedendo ai veicoli l’accesso a quest’ultima, inviando numerosi messaggi in broadcast in un tempo limitato, generando interferenze o compromettendo le RSU. Fabrication attack: Con questo tipo di attacco l’attaccante invia informazioni false nella rete. Sybil Attack: Un attaccante effettua questo attacco inviando numerosi messaggi nello stesso momento utilizzando per ognuno di essi una diversa identità creando così l’illusione di un possibile ingorgo per avere la strada libera per sé. Replay Attack: Un attaccante rinvia un messaggio ascoltato in precedenza e trae beneficio dalla informazione contenuta nel messaggio al momento del rinvio, ad esempio, per creare confusione nelle autorità e favorire la fuga dopo un incidente. Message Suppression Attack: Un attaccante intercetta i pacchetti in transito e li sopprime. Così facendo può evitare che le autorità ricevano messaggi riguardanti incidenti causati dall’attaccante, oppure può evitare che un avviso di ingorgo raggiunge la altre vetture costringendole ad aspettare nel traffico. Risulta dunque necessario, per contrastare questi tipi di attacchi, un meccanismo di 11 2 Security e Trustiness in scenari di Smart Mobility: il caso del progetto S -Move identificazione dei veicoli, che devono poter certificare la propria identità senza che venga intaccata la privacy del proprietario del veicolo. Saranno necessari, inoltre, meccanismi di autenticazione e integrità dei messaggi per poter rilevare i messaggi generati o modificati da degli attaccanti, un meccanismo che eviti il ripudio dei messaggi, così che un veicolo non possa negare di aver inviato un dato messaggio e un meccanismo di gestione della trustiness delle entità all’interno della rete. Per soddisfare i requisiti di sicurezza appena elencati, i veicoli vengono dotati di alcuni dispositivi quali gli Event Data Recorder (EDR), i Trusted Platform Module (TPM) e le Electronic License Plate (ELP), e vengono usati dei protocolli di comunicazione che offrono un alto livello di sicurezza e sono attenti alla salvaguardia della privacy degli utenti. Gli EDR sono dei dispositivi a prova di manomissione che memorizzano tutte le informazioni relative ad un dato evento, e che possono dunque tenere traccia delle condizioni di un veicolo (velocità, posizione, etc.) in caso di incidente e dei messaggi di avvertimento ricevuti in condizioni critiche. I TPM invece garantiscono uno stoccaggio sicuro delle chiavi crittografiche, implementano i meccanismi crittografici e sono resistenti a attacchi al software ma non a manomissioni fisiche. Le ELP, infine, forniscono un identificativo unico ad ogni veicolo, e permettono quindi sia di identificare un veicolo attraverso la tecnologia Radio Frequency IDentification (RFID), sia al veicolo stesso di autenticarsi. Si potrà dunque salvaguardare la privacy del proprietario del veicolo, la cui identità potrà essere scoperta solo dalle autorità competenti, ma il veicolo sarà comunque tracciabile. [8] 2.1 IEEE 1609.2 Vediamo adesso quali sono le soluzioni in termini di protocolli ideati per le VANET. Per le comunicazioni in reti VANET nasce la tecnologia Dedicated Short-range Communications (DSRC) che utilizza vari protocolli differenti per i vari livelli della pila protocollare. In particolare, per il livello fisico e quello MAC viene utilizzato il protocollo IEEE 802.11p Wireless Access for Vehicular Environments (WAVE), una versione modificata di IEEE 802.11 (WiFi) creata specificamente per le comunicazioni veicolari. 12 2 Security e Trustiness in scenari di Smart Mobility: il caso del progetto S -Move Per i livelli superiori, invece, viene usata una suite di protocolli sviluppati dal gruppo IEEE 1609 e in particolare per quanto riguarda la sicurezza viene utilizzato il protocollo IEEE 1609.2 che però non si preoccupa della salvaguardia della privacy, che andrà quindi assicurata diversamente. La gestione della sicurezza viene affidata ai livelli superiori e non al livello MAC, in quanto 802.11p prevede la comunicazione all’esterno del contesto di una BSS, vista la difficoltà nel creare una BSS in un ambiente veicolare. Il protocollo 1609.2 prevede l’utilizzo di una Public Key Infrastructure (PKI). Questo tipo di infrastruttura prevede che ogni veicolo possieda un certificato rilasciato da una entità fidata, la Certificate Authority (CA), che attesti la sua identità. In particolare un certificato digitale serve per verificare che una data chiave pubblica sia associata ad una particolare identità. Dunque un veicolo che vuole inviare un messaggio nella rete lo firma con la propria chiave privata e allega il certificato della CA, contenente la chiave pubblica associata alla chiave privata utilizzata. Per firmare il messaggio e dimostrare così la propria identità e l’integrità del messaggio, che non può essere modificato senza l’utilizzo della chiave privata del mittente, si utilizza l’Elliptic Curve Digital Signature Algorithm (ECDSA), un algoritmo di cifratura a chiave asimmetrica che utilizza chiavi a 224 o 256 bit, e che richiede un forte utilizzo di risorse computazionali che in ambiente veicolare non rappresenta un problema visto che i veicoli possono essere dotati di hardware dedicato alla crittografia (i TPM). Il destinatario del messaggio potrà risalire alla chiave pubblica del mittente tramite il certificato allegato al messaggio. Per verificare l’autenticità del certificato stesso il destinatario andrà a verificare, utilizzando la chiave pubblica della CA, la firma contenuta nel campo autenticazione del certificato, firmato dalla CA con la propria chiave privata. Nel caso in cui i messaggi contengano informazioni riservate, come ad esempio informazioni per il pagamento per un servizio di smart parking, è necessario garantire anche la confidenzialità dei dati trasmessi. Per farlo IEEE 1609.2 utilizza un algoritmo di cifratura che è una combinazione tra crittografia simmetrica e asimmetrica, che prevede che i dati vengano cifrati con l’algoritmo simmetrico e poi la chiave simmetrica venga cifrata con l’algoritmo asimmetrico poiché la cifratura simmetrica richiede meno calcolo di quella asimmetrica. L’algoritmo di crittografia simmetrica usato 13 2 Security e Trustiness in scenari di Smart Mobility: il caso del progetto S -Move è l’AES-CCM, mentre quello per la crittografia asimmetrica è l’Elliptic Curve Integrated Encryption Scheme (ECIES). Per garantire una maggiore privacy, infine, ed evitare che gli spostamenti del veicolo possano essere seguiti tramite i messaggi che esso invia in broadcast, il veicolo possiede un elevato numero di certificati, ognuno valido solamente per un breve periodo di tempo, e cambia certificato attualmente in uso molto spesso, più o meno ogni 5-10 minuti. Rendere i certificati posseduti da un veicolo validi solamente in una breve finestra temporale è fondamentale in quanto se un attaccante riuscisse a prendere possesso delle informazioni crittografiche presenti nel TPM di un veicolo, avrebbe accesso ad un gran numero di certificati tutti contemporaneamente validi( nell’ordine dei 100000) e potrebbe condurre agevolmente un sybil attack. Un veicolo deve essere quindi rifornito di nuovi certificati, tipicamente una volta all’anno durante la revisione. [4] E’ importante sottolineare che il possesso di un certificato da parte di un dispositivo non implica necessariamente un comportamento corretto del dispositivo all’interno della rete. Esso potrà comunque inviare false segnalazioni volontariamente oppure a causa di un malfunzionamento ed è quindi necessario un sistema per permettere alle CA di revocare il certificato a questi dispositivi. Per farlo la CA può inviare una Revocation of the Trusted Component (RTC) al TPM con la quale gli impone la cancellazione di tutto il materiale crittografico che esso conserva. Nel caso in cui questo messaggio non raggiunga la TPM perché l’attaccante è in grado di bloccarlo, la CA ricorre alle Certificate Revocation List (CRL), una lista inviata a tutti i veicoli attraverso le RSU contenente tutti i certificati revocati. Visto l’enorme numero di dispositivi presenti nella rete e di conseguenza la potenziale grandezza di queste liste si ricorre a dei filtri Bloom per creare delle liste compresse. [9] 2.2 Pseudonimi e chiavi di gruppo Per garantire l’anonimato ai veicoli è possibile utilizzare degli pseudonimi e associare i certificati a questi ultimi, ma ogni pseudonimo deve essere comunque riconducibile al veicolo per permettere alle autorità eventuali verifiche. Per garantire questa forma di 14 2 Security e Trustiness in scenari di Smart Mobility: il caso del progetto S -Move anonimato risolvibile, la PKI associa gli pseudonimi alla ELP, e le autorità saranno in grado di risalire all’identità del proprietario del veicolo attraverso l’ELP. La creazione degli pseudonimi e delle chiavi associate può avvenire sia da parte della CA che da parte del veicolo stesso. Nel primo caso la CA creerà tutte le informazioni necessarie offline che saranno poi trasferite nel veicolo durante le revisioni, mentre nel secondo caso sarà il veicolo a creare tutte le informazioni necessarie grazie al TPM, che invierà lo pseudonimo e la chiave pubblica alla CA, che risponderà inviando il certificato al veicolo. Il secondo approccio è preferibile poiché gli pseudonimi potranno essere cambiati più frequentemente e, in più, il grado di sicurezza offerto sarà maggiore poiché la chiave privata relativa allo pseudonimo non verrà mai divulgata dal TPM. [7] Un altro metodo per garantire l’anonimato consiste nell’utilizzo di firme di gruppo. I gruppi possono essere di due tipi: dinamici, formati ad esempio dai veicoli in una determinata area geografica, o statici, in cui i veicoli sono assegnati a dei gruppi in base a particolari attributi. Vediamo quindi come funziona la comunicazione utilizzando i gruppi. I veicoli della rete vengono suddivisi in gruppi e ogni membro del gruppo possiede una propria group member secret key e la chiave pubblica del gruppo . Un veicolo del gruppo dunque, invece di autenticare i propri messaggi utilizzando la propria chiave privata associata al certificato, utilizzerà la sua group member secret key. Così facendo si garantisce l’anonimato ai membri del gruppo, anonimato che deve essere comunque risolvibile dalle autorità competenti. Per rendere l’anonimato risolvibile, si introducono delle entità chiamate Group Manager. I Group manager possiedono una group manager secret key, che permette di risalire alla vera identità del mittente di un messaggio. [8] Nella gestione della sicurezza delle comunicazioni all’interno dei gruppi si può anche pensare di non utilizzare una struttura a chiave asimmetrica. Si può pensare, allora, ad una soluzione che preveda una struttura a chiave simmetrica per ridurre l’overhead dovuto agli algoritmi di crittografia asimmetrici ed eliminare la necessità di dover contattare la CA per l’instaurazione di chiavi di gruppo asimmetriche. In questo approccio il leader del gruppo (ad esempio il veicolo al centro dell’area di copertura del gruppo) si occupa di generare una chiave simmetrica per il gruppo e di distribuirla ad ognuno dei membri del gruppo cifrandola con le loro 15 2 Security e Trustiness in scenari di Smart Mobility: il caso del progetto S -Move corrispettive chiavi pubbliche (chiavi pubbliche che devono essere precedentemente inviate in broadcast con il relativo certificato). Una volta che tutti i membri del gruppo possiedono la chiave pubblica del gruppo possono firmare i messaggi con essa e rendere confidenziali le comunicazioni all’interno del gruppo. Per permettere la propagazione dei messaggi tra i gruppi e fornire un meccanismo per la verifica della validità delle informazioni contenuta nel messaggio, è necessario che le aree geografiche dei gruppi si sovrappongano. Così facendo un veicolo posizionato nell’area condivisa (il primo e l’ultimo della flotta) possiede le chiavi di entrambi i gruppi e invierà il messaggio al gruppo successivo usando la chiave di quest’ultimo. Questa soluzione a chiave simmetrica non assicura quindi la non-repudiation dei messaggi né è finalizzata a salvaguardare la privacy degli utenti in quanto permette la comunicazione solo all’interno del gruppo o di gruppi adiacenti. Essa permette d’altro canto la gestione e la creazione dei gruppi senza la necessità di contattare la CA garantendo comunque l‘autenticità e l’integrità dei messaggi. Per garantire invece una non-repudiation dei messaggi, è necessario creare per la flotta una coppia di chiavi di gruppo pubblica e privata unica per tutto il gruppo contattando la CA, che si occuperà, inoltre, di assegnare ad ogni veicolo della flotta un ID di riconoscimento che dovrà essere inserito nella firma dei messaggi. [17] Poiché l’ID viene inviato nella firma del messaggio questo tipo di implementazione non garantisce la privacy agli utenti, che potrà essere quindi garantita solo dall’approccio presentato precedentemente. 2.3 Trust models Ogni dispositivo della rete deve essere in grado di capire se le informazioni inviate da un altro dispositivo sono valide o meno, anche se questo possiede un certificato valido e anche senza l’aiuto di un’infrastruttura. Esistono dei trust model che associano un livello di fiducia alle entità della rete e che permettono quindi di fidarsi delle informazioni inviate da queste entità, ma questi non sono i più performanti in ambienti VANET, in quanto, data la natura della rete ed in particolare la mobilità dei veicoli, due nodi potrebbero essere vicini anche solo una volta nella loro vita. Si preferisce allora usare dei trust model orientati ai dati, che assegnano un valore di fiducia direttamente alle informazioni che si 16 2 Security e Trustiness in scenari di Smart Mobility: il caso del progetto S -Move stanno ricevendo, o dei trust model ibridi. Anche se i trust model orientati alle entità sono sconsigliati, sono stati comunque sviluppate alcune soluzioni specifiche per VANET. Una di queste prevede la creazione di gruppi ai quali i veicoli vengono associati staticamente (ad esempio si possono prevedere gruppi di studenti, ingegneri, dottori etc..) ed ai quali viene assegnato un livello di fiducia. Ogni volta che un veicolo invia segnalazioni sullo stato di una strada alla rete lo fa a nome del gruppo e chi riceve queste informazioni va a controllare se le varie segnalazioni provenienti da uno stesso gruppo sono mediamente compatibili con le informazioni prelevate da RSU sicure oppure con informazioni prelevate personalmente dal ricevitore e, quindi, con il reale stato della strada. In base all’esattezza delle segnalazioni il valore di fiducia assegnato al gruppo aumenterà o diminuirà. Questo approccio per quanto effettivamente applicabile non permette l’assegnazione di un livello di fiducia alle singole entità. [10] Vediamo quindi l’approccio utilizzato dai trust model orientati ai dati. Essi, come detto, assegnano un valore di fiducia ai messaggi ricevuti ed in particolare agli eventi che vengono segnalati dai nodi della rete tramite questi messaggi. In particolare nell’assegnazione di questo valore di fiducia si terrà conto di vari fattori, sia statici, come ad esempio un valore di fiducia che è possibile attribuire a priori all’entità mittente in base al tipo di veicolo (auto della polizia, bus, etc.), sia dinamici, come la vicinanza sia spaziale che temporale all’evento registrato. Raggruppando segnalazioni differenti relative ad uno stesso evento e applicando la teoria di Dempster-Shafer tenendo conto dei fattori prima elencati, sarà possibile valutare il livello di fiducia dell’evento preso in esame. Il considerare separatamente ogni evento rappresenta proprio il problema di questo approccio, in quanto le relazioni di fiducia andranno valutate da zero per ogni evento e nel caso in cui la rete sia poco popolata questo modello non funzionerà a dovere vista la mancanza di segnalazioni. [11] E’ possibile altrimenti utilizzare dei trust model ibridi, che prevedono quasi sempre un meccanismo di opinion piggybacking. Ogni veicolo che riceve un messaggio vi allega un opinione sul valore di fiducia dell’informazione trasportata prima di inoltrarlo. Questa opinione può dipendere sia da una conoscenza diretta 17 2 Security e Trustiness in scenari di Smart Mobility: il caso del progetto S -Move dell’evento di cui si parla nel messaggio, sia dalla conoscenza del mittente del messaggio [12] Questi sono ovviamente solo alcuni esempi di trust model ma aiutano a capire la differenza tra i tre tipi di modelli. 2.4 Trusted routing Non resta che concludere la trattazione riguardante la sicurezza in ambienti VANET andando a esaminare un protocollo di trusted routing che permetta un inoltro sicuro della informazioni trasmesse nella rete. Vista la velocità di cambiamento della topologia di rete in ambienti VANET, l’utilizzo dei protocolli di routing classici per ambienti VANET come AODV o DSR non è consigliato, e si utilizzano, invece, protocolli di routing geografici che inoltrano il pacchetto al nodo geograficamente più vicino. Nodi maliziosi possono però attuare un attacco di tipo position spoofing mentendo sulla loro attuale posizione. Bisogna quindi capire se i nodi vicini sono nodi fidati o meno, e, per farlo, ogni nodo deve creare una tabella in cui, oltre alla posizione dei vicini (che viene annunciata dai vicini tramite beacon frame), va ad associare ad ogni vicino un valore di trust. Il valore di trust da associare ad un nodo vicino viene determinato attraverso una procedura in due fasi. La prima fase consiste nell’invio di un messaggio di sfida al vicino che, per costruire una risposta, deve svolgere delle semplici attività computazionali. Il mittente calcola il tempo impiegato per ricevere la risposta e, in base a questo, calcola la distanza del vicino. Alcuni semplici accorgimenti evitano la possibilità di mentire da parte del vicino, in quanto, poiché c’è un limite al raggio delle trasmissioni wireless, il vicino non potrà affermare di trovarsi troppo lontano, e, poiché la velocità della luce è conosciuta, il vicino non potrà affermare di trovarsi più vicino di quanto gli permetta la velocità di propagazione delle onde e, inoltre, essendo il mittente provvisto di mappe, il vicino non potrà affermare di trovarsi al di fuori delle strade. Alla fine di questa prima fase si ha dunque una prima stima della posizione del vicino. Per aumentare il grado di sicurezza si sceglie un vicino fidato (preferibilmente una RSU) e si richiede anche a lei di verificare la posizione del vicino per vedere se il risultato è 18 2 Security e Trustiness in scenari di Smart Mobility: il caso del progetto S -Move corrispondente. Poiché le verifiche vengono effettuate appena si riceve una frame di beacon, esse saranno sincronizzate e si è sicuri che il vicino non si sia spostato. Completate le due fasi si potrà dunque capire se il nodo è malizioso o meno e assegnargli un valore di fiducia e decidere se usarlo come next hop o meno durante le trasmissioni multihop. [5] Il livello di fiducia di un nodo può anche essere valutato molto banalmente andando a vedere se esso partecipa attivamente all’inoltro di pacchetti. Può nascere, però, un problema nella valutazione della fiducia di un vicino se questo è stato scelto come next hop dal protocollo di routing geografico in quanto più vicino alla destinazione, ma esso non inoltra il messaggio, non perché non voglia, ma perché non riceve il messaggio, in quanto si è frapposto tra i due nodi un ostacolo (bus, autoarticolato) che ha creato una situazione di Non Line of Sight (NLOS). Anche in questo caso si può ricorrere all’aiuto di un terzo nodo per verificare la posizione del vicino al di là dell’ostacolo per evitare di assegnare un basso valore di fiducia erroneamente ad un vicino. [6] 19 2 Security e Trustiness in scenari di Smart Mobility: il caso del progetto S -Move Capitolo 3 Wireless Sensor Networks La raccolta dei dati necessari per le applicazioni per la smart mobility, in particolare per la gestione del traffico, può avvenire anche attraverso l’utilizzo di sensori, quali sensori magnetici, ad infrarossi o per la rilevazione acustica dei veicoli. E’ necessaria quindi un’infrastruttura di rete wireless che permetta la propagazione dei dati raccolti dai sensori fino ad un’unità centrale di elaborazione, e non devono essere sottovalutati gli aspetti di sicurezza per gli stessi motivi che sono stati già elencati per le VANET. Per le reti wireless di sensori non si possono utilizzare le stesse soluzioni per garantire la sicurezza delle trasmissioni usate nelle reti ad hoc tradizionali. I sensori infatti, a causa delle loro piccole dimensioni e per questioni economiche, hanno capacità computazionali, energetiche e di memoria limitate che rendono difficile l’utilizzo di algoritmi complessi per la sicurezza delle trasmissioni, come ad esempio gli algoritmi a chiave pubblica (per quanto un’implementazione di questi ultimi resta possibile). Sono stati quindi sviluppati dei protocolli di routing e degli algoritmi di cifratura e autenticazione specifici per le reti wireless di sensori. Prima di presentare le soluzioni proposte andiamo a vedere, anche in questo caso, quali sono i possibili tipi di attacco alle reti wireless di sensori: Denial of Service, Replay Attack e Sybil Attack: Come sono già stati presentati per le VANET. Sinkhole Attack: Poiché nelle reti di sensori le informazioni viaggiano tutte verso 20 2 Security e Trustiness in scenari di Smart Mobility: il caso del progetto S -Move un’unità centrale, con un attacco sinkhole un attaccante può riuscire a attrarre tutto il traffico verso un nodo maligno posto sufficientemente vicino all’unità centrale o verso un nodo che si finge l’unità centrale stessa in modo da rendere inefficiente l’intera rete non inoltrando i messaggi Wormhole Attack: Un attacco wormhole consiste nell’instaurazione da parte di un nodo compromesso vicino all’unità centrale di un tunnel a bassa latenza tra due parti distanti della rete di sensori. Il nodo compromesso dunque inoltrerà i pacchetti ricevuti ad un’estremità del tunnel all’altra estremità facendo credere alle due parti di rete lontane di essere in realtà vicine. Così facendo i nodi sceglieranno erroneamente il nodo compromesso come rotta migliore verso l’unità centrale andando a creare un sinkhole o andando semplicemente a inficiare sulla qualità della rete. Attacchi fisici: Poiché i sensori per questioni di costi non vengono dotati di dispositivi di sicurezza anti-manomissione, è anche possibile effettuare un attacco fisico ad un nodo che può essere manomesso e possono essere rubate le informazioni di sicurezza contenute in esso oppure può essere compromesso per poi venire usato dall’attaccante per inviare messaggi fasulli nella rete. Impersonation Attack: Un attaccante che è riuscito a rubare i dati identificativi di un sensore, aggiunge un ulteriore nodo alla rete replicando i dati che ha rubato. 3.1 Protocolli di sicurezza Vediamo adesso alcuni protocolli per il livello data link che permettono l’implementazione di meccanismi crittografici e di autenticazione che tengano conto delle limitazioni imposte dai sensori. Nelle reti di sensori vengono utilizzati protocolli di sicurezza al livello data link poiché, mentre nelle reti normali i router devono essere in grado di leggere soltanto l’header per instradare i pacchetti, nelle reti di sensori può essere utile per un nodo accedere ai dati contenuti nel pacchetto per effettuare aggregazioni, rimuovere i messaggi doppioni, evitando così di far viaggiare più pacchetti contenenti le stesse informazioni nella rete, utilizzando dunque meno energia. 21 2 Security e Trustiness in scenari di Smart Mobility: il caso del progetto S -Move Poiché questi protocolli sono protocolli a chiave simmetrica è necessario introdurre prima un protocollo che permetta lo scambio sicuro di chiavi. I protocolli di scambio delle chiavi più usati nelle reti wireless di sensori sono protocolli probabilistici. Il protocollo più famoso di questo tipo, che viene adesso presentato come esempio, prevede più fasi per lo scambio di chiavi. Nella prima fase, quella di pre-distribuzione, ad ogni nodo viene assegnato un certo numero di chiavi molto minore del numero complessivo di chiavi disponibili. Nella seconda fase, quella di scoperta delle chiavi condivise, ogni nodo può scoprire se ha ricevuto una chiave uguale ad un vicino in due modi differenti. Può annunciare gli identificativi delle chiavi disponibili nel proprio keyring e ascoltare gli annunci dei propri vicini per trovare una corrispondenza, oppure, per rendere privata l’associazione, ogni nodo invia una lista contenente tanti testi di sfida quanti sono le chiavi ed ognuno di essi sarà codificato con una chiave diversa. Solo chi è in possesso di una chiave potrà rispondere al testo di sfida e creare così un associazione. [14] Una volta che due entità vicine hanno una chiave comune esse potranno comunicare in sicurezza. Presentiamo adesso brevemente due protocolli, Sensor Network Encryption Protocol (SNEP) e TinySec, e successivamente, MiniSec che ottimizza i due approcci precedenti garantendo dunque un miglior compromesso tra sicurezza e energia spesa dal sensore nelle operazioni di cifratura. Poiché questi tre algoritmi sono a chiave simmetrica sarà necessario per ogni messaggio inviato generare un Initialization Vector (IV) da aggiungere alla chiave per far sì che non tutti i messaggi vengano cifrati con la stessa chiave e sarà proprio nella scelta di questo IV e della tecnica di cifratura utilizzata la differenza tra i tre protocolli. SNEP punta a garantire confidenzialità, integrità e autenticità ai dati ed una protezione dai replay attack. Per garantire la confidenzialità utilizza l’algoritmo RC5 mentre per l’autenticità e l’integrità si aggiunge al messaggio un Message Autentication Code (MAC). Per la confidenzialità si utilizza un cifratore a blocchi in modalità Counter (CTR) che utilizza la stessa funzione sia per cifrare che per decifrare (la RC5). Per funzionare, la modalità Counter necessita di un contatore (che verrà utilizzato come IV), che le due entità che comunicano tra loro conserveranno e non invieranno insieme al messaggio, e che 22 2 Security e Trustiness in scenari di Smart Mobility: il caso del progetto S -Move verrà incrementato ad ogni messaggio inviato o ricevuto. Il MAC viene invece generato tramite la funzione Cipher Block Chaining Message Authentication Code (CBC-MAC). Le chiavi necessarie per applicare la CBC-MAC e la RC5 sono generate dalla chiave simmetrica che condividono i due nodi. Questo protocollo garantisce dunque i tre requisiti sopra riportati, aggiungendo “soltanto” 8 byte di overhead dovuti al MAC, in quanto l’utilizzo di uno stream cipher garantisce la stessa lunghezza del messaggio cifrato e di quello in chiaro. D’altro canto però possono nascere problemi da un’eventuale desincronizzazione del contatore che non viene inviato insieme al messaggio. [18] Per evitare i problemi derivanti dall’utilizzo di uno stream cipher con un IV che si ripete (visto che utilizziamo il contatore), bisognerebbe utilizzare un IV più lungo, ma questo è impossibile in questo tipo di scenario. La soluzione proposta da TinySec consiste allora nell’utilizzare un cifrario a blocchi in modalita cipher block chaining che permette l’utilizzo di IV più corti. Anche questa modalità può creare dei problemi con un IV che aumenta linearmente il proprio valore, e per evitare problemi si è pensato di cifrare l’IV prima di utilizzarlo. L’IV sarà formato nell’ordine dall’indirizzo del destinatario, il tipo di messaggio, la lunghezza del payload, l’indirizzo del mittente e un contatore a 16 bit relativo alla coppia sorgente-destinazione. Per garantire autenticità e integrità si usa sempre il CBC-MAC che però crea un MAC di soli 4 byte a dispetto degli 8 byte di SNEP. Questo tipo di protocollo prevede di inviare l’IV insieme al messaggio cifrato. I vantaggi offerti da questo protocollo sono quindi evidenti. Da un lato non è possibile perdere la sincronizzazione dei contatori visto che essi vengono inviati in chiaro, e dall’altro l’overhead è minore. [19] MiniSec punta quindi ad unire i vantaggi delle due soluzioni. Da un lato usa un IV lungo, formato da 32 bit di contatore (come SNEP) e invia esplicitamente solo parte di questo IV prendendo spunto da TinySec. In particolare vengono inviati solo gli ultimi 3 bits del contatore dell’IV (e quindi del contatore) così che se il ricevitore non ha ricevuto solo gli ultimi 23 pacchetti, può comunque decifrare il messaggio. Inoltre MiniSec effettua in unico passo la cifratura e la firma del messaggio utilizzando l’Offset CodeBook (OCB) garantendo un notevole vantaggio in termini di energia 23 2 Security e Trustiness in scenari di Smart Mobility: il caso del progetto S -Move utilizzata. [20] 3.1.1 Protocolli di sicurezza a chiave asimmetrica Con la comparsa di nuovi meccanismi di cifratura quali ad esempio quelli basati su curva ellittica che presentano dimensioni delle chiavi ridotte e meccanismi di cifratura più leggeri, ma comunque performanti, è diventato possibile utilizzare dei meccanismi a chiave pubblica o ibridi per assicurare la sicurezza nelle reti wireless di sensori. Si può pensare, ad esempio, di utilizzare una cifratura a chiave pubblica per effettuare uno scambio di chiavi sicuro tra due nodi, che poi effettueranno le trasmissioni con la chiave simmetrica che hanno concordato. Presupponendo che ogni nodo possegga una coppia di chiavi pubblica e privata, ed un relativo certificato, prima di inviare dati i nodi inviano sulla rete in broadcast le proprie chiavi pubbliche ed i certificati associati. Gli altri nodi conservano in memoria queste informazioni e nel momento in cui un nodo vuole comunicare con un nodo di cui possiede il certificato, inizia una fase di handshake simile a quella prevista dal Transport Layer Security (TLS). Il nodo che vuole iniziare la comunicazione genera casualmente 128 bit e li cifra con la chiave pubblica del nodo con cui vuole comunicare utilizzando l’Elliptic Curve Integrated Encryption Scheme (ECIES) e lo firma con la propria chiave privata utilizzando l’Elliptic Curve Digital Signature Algorithm (ECDSA). Se il nodo che riceve questo messaggio ha abbastanza risorse e possiede il certificato del nodo mittente, decifra e controlla l’identità del mittente e genera altri 128 bit che invia con le stesse modalità all’altro nodo. Con le due stringhe di 128 bit e utilizzando la funzione di creazione di chiavi ANSI-X9.63, i due nodi generano una chiave simmetrica e una chiave per calcolare l’HMAC, permettendo così uno scambio sicuro di dati utilizzando le procedure di crittografia simmetrica come RC5. [22] 3.2 Trusted routing Avendo visto come due nodi vicini possono comunicare in sicurezza non resta che vedere dei protocolli di trusted routing che permettano ad un nodo di comunicare solamente con 24 2 Security e Trustiness in scenari di Smart Mobility: il caso del progetto S -Move dei vicini fidati in quanto anche nodi maligni possiederanno delle chiavi e dunque, come già detto per le VANET, il possesso di una chiave non implica il corretto comportamento di un nodo. Vedremo adesso dei protocolli che permettono di gestire il valore di fiducia dei nodi vicini. Il primo protocollo fa parte del servizio μRacer ed è il Trust Aware Routing Protocol (TARP), che evita di indirizzare le informazioni a nodi non fidati. Il calcolo della fiducia di un nodo avviene attraverso due contributi, la reputazione diretta e quella indiretta. La reputazione diretta del nodo A, così come è percepita dal nodo B, è la reputazione che B assegna ad A in base alla loro interazione diretta. Nello specifico B calcola questa reputazione in base al numero di pacchetti che A riceve da B ed inoltra, tenendo conto che a volte dei falsi negativi possono accadere a causa delle condizioni del canale. La reputazione indiretta del nodo A così come è percepita dal nodo B, invece, dipende dal comportamento di A con i vicini di B, ovvero la reputazione diretta di A con i vicini di B. B per conoscere questo valore di reputazione invia una reputation request per un dato nodo e i nodi vicini che vogliono rispondere inviano un reputation report in broadcast in modo che tutti possano aggiornare le proprie tabelle di reputazione. Sulla base di questi due valori e del valore di fiducia precedentemente associato ad un nodo, il nodo B calcola il nuovo valore di fiducia. Nel caso in cui questo valore sia al di sotto di una soglia prefissata il nodo invierà in broadcast un reputation report per annunciare a tutti la malignità del nodo. [15] In caso di reti di sensori molto grandi questo tipo di approccio non è dei migliori in quanto ogni sensore dovrebbe tenere memoria del valore di fiducia di molti nodi diversi andando a pesare sulle limitate capacità di memoria disponibile ai sensori. Per risolvere questo problema ed offrire altri servizi come l’aggregazioni di dati simili, si può organizzare la rete di sensori in una rete clustered. I sensori possono essere raggruppati in gruppi (cluster), all’interno dei quali i tutti i membri riescono a comunicare tra loro, che fanno riferimento ad un capogruppo (cluster-head). Il protocollo Groupbased Trust Management Scheme (GTMS) prevede a questo punto che la gestione della fiducia avvenga a tre diversi livelli. Al livello dei nodi la gestione della fiducia avviene in modo simile al protocollo 25 2 Security e Trustiness in scenari di Smart Mobility: il caso del progetto S -Move TARP con un calcolo della reputazione diretta e indiretta, con l’unica differenza che per tenere conto delle trasmissioni non andate a buon fine a causa delle condizioni del canale i nodi utilizzano una finestra temporale scorrevole. Diviso il tempo in intervalli e fissato un numero di intervalli, ogni nodo conserva per ogni membro del gruppo il numero di interazioni andate a buon fine sul totale delle interazioni. Una volta riempita la finestra essa scorrerà in avanti facendo posto al nuovo intervallo temporale cancellando il più vecchio. Così facendo si riduce l’impatto delle condizioni del canale sul valore di fiducia. Al livello dei cluster-head, ogni cluster-head calcola il valore di fiducia da assegnare al proprio gruppo richiedendo ad ogni membro del gruppo i valori di fiducia da loro assegnati agli altri membri del gruppo. Il cluster-head ne farà una media e assegnerà un valore di fiducia ad ogni membro del gruppo. Inoltre il cluster-head va a calcolare il livello di fiducia degli altri cluster. Al livello di unità centrale, infine, l’unità centrale tiene conto di tutti i valori di fiducia dei vari cluster head. [16] 26 2 Security e Trustiness in scenari di Smart Mobility: il caso del progetto S -Move Capitolo 4 S2-Move Dopo aver visto come rendere sicure le comunicazioni in scenari di Smart Mobility, vediamo come le soluzioni proposte possono essere implementate all’interno di uno scenario realmente esistente, come quello del progetto S2-Move. Il progetto S2-Move, è un progetto di 36 mesi finanziato dal Ministro dell’Istruzione dell’Università e della Ricerca (MIUR) e iniziato nel Giugno 2012. Questo progetto presenta una concreta realizzazione di un sistema per la Smart Moblity che prevede una raccolta di dati eterogenei dal territorio, quali condizioni della strada, velocità e posizione dei veicoli, etc., attraverso l’utilizzo di vari dispositivi, quali smartphone, sensori o direttamente dai veicoli. Sono proprio i veicoli i principali attori nella raccolta dei dati. Essi vengono dotati di un’ OBU che si occupa di raccogliere i dati dalle varie Electronic Control Unit (ECU) della vettura (come ad esempio il consumo di benzina, la pressione sul pedale dl freno, le spie d’emergenza del cruscotto, etc..) attraverso il Controller Area Network (CAN) bus. Attraverso l’analisi dei dati raccolti dalla vettura, è possibile monitorare il veicolo e, incrociando i dati ottenuti, tutto l’ambiente urbano in maniera indiretta. Oltre a raccogliere i dati l’OBU si occupa di comunicarli sia tramite trasmissioni V2I che V2V. I dati trasmessi dunque, vengono inviati sia ai veicoli vicini che possono usarli per rilevare situazioni di pericolo, sia ad un’unità centrale il Central Processing System (CPS). Il CPS è il cuore dell’architettura e si occupa di collezionare i dati dai dispositivi nella 27 2 Security e Trustiness in scenari di Smart Mobility: il caso del progetto S -Move rete, di elaborarli, e di offrirli all’utente finale attraverso una semplice mappa annotata del tessuto urbano. Lo scopo ultimo, infatti, è collezionare sufficienti informazioni sulla mobilità urbana e restituirle all’utente finale che, attraverso una mappa annotata, potrà visionare informazioni sul traffico in tempo reale, effettuare segnalazioni e visualizzare quelle fatte da altri veicoli, visualizzare e interagire con flotte di veicoli in movimento, visualizzare e prenotare un parcheggio, etc.. Il CPS presenta una struttura multi-layer. Attraverso il Data Layer vengono memorizzati i dati e viene utilizzato per la memorizzazione PostgreSQL con estensione PostGIS per avere un completo supporto per i dati geospaziali, mentre tramite il Core Layer si eseguono tutte le procedure che permettono di generare le mappe annotate tramite i dati ricevuti, e per farlo si utilizza Geoserver, un applicazione Java open source per la creazione di mappe annotate. Infine, mediante il Presentation Layer, reallizato usando il Play! Java Framework, si offrono i dati processati al’utente finale sotto forma di mappa annotata. Le due principali applicazioni per il momento offerte dal progetto S2-Move, sono un’applicazione per il monitoraggio del traffico ed una per la gestione delle flotte. La prima è realizzata principalmente attraverso i dati ricevuti dalle OBU, in quanto piazzare sensori sul manto urbano risulterebbe troppo costoso e non è neanche prevista la presenza di RSU per lo stesso motivo. In particolare il sistema preleva i dati relativi la posizione e la velocità dei veicoli per segnalare la loro posizione sulla mappa (dopo averla perfezionata con algoritmi di map 28 2 Security e Trustiness in scenari di Smart Mobility: il caso del progetto S -Move matching) e capire attraverso la velocità se la strada su cui si trova il veicolo è trafficata o meno. La seconda prevede due operazioni, quella di monitoraggio e quella di controllo della flotta. Tramite il monitoraggio si acquisisce la posizione della flotta sulla mappa e si traccia il suo percorso. Tramite il controllo della flotta, invece, si permette ai veicoli che formano la flotta, e che quindi si muovono nella stessa direzione, di muoversi alla stessa velocità dettata dal primo veicolo della flotta, il leader, e di mantenere una determinata distanza di sicurezza l’uno dall’altro attraverso la comunicazione V2V tra i veicoli andando ad agire direttamente sugli attuatori della vettura (frenata, sterzata, etc.). [21] E’ facile immaginare dunque, quali possono essere i problemi derivanti dalla presenza di agenti maligni nella rete che generano informazioni fasulle, che modificano informazioni in transito nella rete o che bloccano l’inoltro di pacchetti, soprattutto nelle operazioni di controllo della flotta. Se, infatti, per quanto riguarda il sistema di monitoraggio del traffico, non ci saranno conseguenze per la salute dei guidatori, ma soltanto conseguenze sul piano della viabilità, nel caso del controllo della flotta, informazioni false potrebbero creare degli incidenti poiché costringerebbero membri della flotta ad aumentare, ad esempio, la propria velocità andando ad urtare i membri della flotta che li precedono. Vediamo dunque come è possibile implementare i meccanismi di sicurezza proposti nei capitoli precedenti in questo tipo di architettura. 4.1 Soluzione proposta Per permettere solo ai veicoli autorizzati di partecipare alle comunicazioni nell’ambito del nostro progetto, si dovranno implementare dei protocolli di sicurezza che permettano l’autenticazione e il non ripudio dei messaggi. La soluzione proposta da [4] si rivela dunque perfetta e si può pensare dunque di utilizzare il protocollo IEEE 1609.2 che andrà ad “appoggiarsi” al protocollo IEEE 802.11p per la comunicazione V2V essendo questo un protocollo per il livello data link. Come detto precedentemente il protocollo IEEE 1609.2 prevede l’instaurazione di una PKI e il possesso, dunque, da parte di tutti i veicoli della rete, di un certificato rilasciato da una CA. E’ necessario dunque che su ogni veicolo 29 2 Security e Trustiness in scenari di Smart Mobility: il caso del progetto S -Move venga affiancata all’OBU anche un TPM per lo stoccaggio di questi certificati e per implementare i meccanismi crittografici previsti dal protocollo IEEE 1609.2. Inoltre essendo il CPS sempre disponibile, esso può essere usato oltre che come centro di raccolta ed elaborazione dati, anche come certification server. Il CPS si dovrà dunque occupare anche di revocare i certificati utilizzando le CRL secondo le modalità previste in [9], ma poiché S2-Move è stato progettato in maniera tale da rendere l'architettura indipendente dalla eventuale presenza delle RSU (ciò ha comportato notevoli vantaggi per quanto riguarda l'estendibilità dei servizi offerti dalla piattaforma svincolando l'interazione tra gli attori dello scenario urbano dalla presenza di unità a bordo strada), le CRL non saranno distribuite alle RSU ma direttamente ai veicoli stessi. Poiché S2-Move prevede la visualizzazione della posizione dei veicoli sulla mappa è fondamentale garantire l’anonimato (comunque risolvibile) a questi veicoli per salvaguardare la privacy dei guidatori così che neanche il CPS possa risalire all’identità dei guidatori delle vetture segnalate sulla mappa. Per farlo quindi i veicoli possono utilizzare degli pseudonimi e numerosi certificati, come proposto in [4] e in [7], così che le segnalazioni sembrino provenire da veicoli diversi. Particolare attenzione va posta invece sulla gestione dei gruppi, sulle firme di gruppo e sull’anonimato che esse garantiscono, in quanto le flotte rappresentano una componente importante del progetto S2-Move. Sono stati presentati precedentemente due approcci per la gestione della sicurezza all’interno dei gruppi, uno a chiave simmetrica che assicurava la sicurezza all’interno di un gruppo non permettendo a veicoli esterni al gruppo di partecipare alle comunicazioni [17], e uno a chiave asimmetrica che oltre a garantire la sicurezza garantiva anche la privacy dei membri del gruppo. [8] Il secondo approccio, per funzionare necessita di un Group Manager (che non può corrispondere con il leader di flotta, in quanto deve essere un’entità sicura), atto a gestire molteplici chiavi di gruppo e gestire quindi più flotte presenti nella propria area di riferimento (attraverso le RSU), permettendo l'instaurazione per ogni membro della flotta 30 2 Security e Trustiness in scenari di Smart Mobility: il caso del progetto S -Move della propria group member secret key. Nell’ambito del nostro progetto, però, dove le RSU non sono presenti, si potrebbe pensare di assegnare la responsabilità di Group Manager al CPS stesso. Non essendo presenti le RSU l’unico tipo di comunicazione V2I è quella svolta con il CPS, però la connessione con quest’ultimo potrebbe non essere costante a causa della disponibilità della rete cellulare. Una implementazione di questo tipo di gestione dei gruppi potrebbe dunque creare dei problemi nella gestione della sicurezza nelle flotte che potrebbero non riuscire ad ottenere una coppia di chiavi valide non riuscendo a contattare il group manager. Una soluzione potrebbe essere dunque la seguente. Nel momento in cui la rete non è disponibile, si può usare il meccanismo con chiavi simmetriche per garantire autenticità e integrità ai messaggi trasmessi all’interno della flotta e non permettendo così a veicoli non appartenenti alla flotta di inviare informazioni non valide ai veicoli della flotta. Nel momento in cui la rete torna disponibile, invece, facendo coincidere il Group Manager con il CPS e di conseguenza con la CA del nostro sistema, si può richiedere l’instaurazione di una chiave di gruppo e di chiavi private per i membri del gruppo, garantendo così l’anonimato e la sicurezza nelle trasmissioni. Per garantire invece la trustiness delle informazioni nel progetto S2-Move, si può pensare di utilizzare un trust model orientato ai dati, come quello proposto in [11], nel caso di comunicazioni tra un veicolo e il CPS, in quanto il CPS ricevendo le informazioni da molti veicoli riuscirà a determinare se le informazioni ricevute sono valide o meno. Lo stesso approccio può essere utilizzato anche per le comunicazioni V2V, in quanto un trust model orientato alle entità potrebbe non essere efficiente, oppure un trust model ibrido potrebbe essere la soluzione migliore. Per quanto riguarda invece l’accesso alla mappa annotata da parte degli utenti tramite smartphone o direttamente dal veicolo, è necessario anche in questo caso assicurare la sicurezza delle comunicazioni, in quanto l’applicazione prevede l’autenticazione degli utenti per effettuare ad esempio operazioni per prenotare un parcheggio. E’ necessario dunque utilizzare un protocollo di sicurezza a livello applicativo quale HTTP Secure. 31 2 Security e Trustiness in scenari di Smart Mobility: il caso del progetto S -Move Conclusioni In questo lavoro di tesi si è visto come sia possibile utilizzare le innovative applicazioni offerte dalla Smart Mobility senza rischi per la privacy degli utenti e delle informazioni trasmesse. Si sono dunque studiati meccanismi di sicurezza per le tecnologie internet adoperate che permettano l’utilizzo in sicurezza di applicazioni innovative (quali sistemi di gestione e monitoraggio del traffico, smart parking e gestione di flotte) senza che i dati collezionati e successivamente inviati potessero contenere informazioni sulla posizione o sulle abitudini degli utenti. Sono stati poi presentati meccanismi per rendere confidenziali le comunicazioni e permettere, dunque, l’utilizzo in sicurezza di servizi di pagamento on the fly, e meccanismi per far sì che soltanto dispositivi autorizzati, siano essi veicoli o sensori, possano partecipare attivamente alle comunicazioni evitando così che agenti maligni possano perpetrare attacchi ai danni della rete. Si è quindi visto come sia possibile utilizzare contemporaneamente questi meccanismi per rendere effettivamente sicura un’applicazione per la Smart Mobility, quale il progetto S2Move. Utilizzando dunque le soluzioni proposte, in futuro queste applicazioni per la Smart Moblity potranno prendere sempre più piede favorendo la nascita di vere e proprie Smart City che si andranno ad affiancare a quelle già esistenti come quelle di Amsterdam, Dubai ed altre. 32 Bibliografia [1] A. Bartoli, J. Hernández-Serrano, M. Soriano, M. Dohler, A. Kountouris, D. Barthel, 2011 “Security and Privacy in your Smart City” [2] A. Martínez-Ballesté, P. A. Pérez-Martínez, A. Solanas, 2012 “The Pursuit of Citizens’ Privacy: A Privacy-Aware Smart City Is Possible” [3] M. Sen, A. Dutt, S. Agarwal, A. Nath, 2013 “Issues of privacy and security in the role of software in smart cities” [4] J. B. Kenney, 2011 “Dedicated Short-Range Communications (DSRC) Standards in the United States” [5] J. Wang, Y. Liu, X. Liu, and J. Zhang, 2009 “A trusted neighbor table based location verification for VANET Routing” [6] O. Abumansoor, A. Boukerche, 2011 “Towards a Secure Trust Model for Vehicular Ad Hoc Networks Services” [7] J. M. de Fuentes, A. I. González-Tablas, A. Ribagorda, 2010 “Overview of Security issues in Vehicular Ad-hoc Networks” [8] L. Malina, J. Hajný, 2012 “Group Signatures for Secure and Privacy Preserving Vehicular Ad Hoc Networks” [9] M. Raya, P. Papadimitratos, I. Aad, D. Jungels, J.-P. Hubaux, 2007 “Eviction of Misbehaving and Faulty Nodes in Vehicular Networks” [10] A. Tajeddine, A. Kayssi, A. Chehab, 2010 “A Privacy-Preserving Trust Model for VANETs” [11] M. Raya, P. Papadimitratos, V. D. Gligor, J. Hubaux, 2007 “On Data-Centric Trust Establishment in Ephemeral Ad Hoc Networks” 33 [12] F. Dotzer , L. Fischer, P. Magiera, 2005 “VARS: A Vehicle Ad-Hoc Network Reputation System” [13] 4. A. Abdullahi, I. Brown, F. El-Moussa, 2012 “Privacy in the age of Mobility and Smart Devices in Smart Homes” [14] L. Eschenauer, V. D. Gligor, 2003 “A Key-Management Scheme for Distributed Sensor Networks” [15] R. Vasilache, I. Gavrila, A. Grigorescu, L. Gheorghe, 2013 “Comparative Evaluation of Trust Mechanisms for Wireless Sensor Networks” [16] R. A. Shaikh, H. Jameel, B. J. d’Auriol, H. Lee, S. Lee, Young-Jae Song, 2009 “Group-Based Trust Management Scheme for Clustered Wireless Sensor Networks” [17] M. Raya, A. Aziz and J. Hubaux, 2006 “Efficient Secure Aggregation in VANETs” [18] A. Perrig, R. Szewczyk, J.D. Tygar, V. Wen, D. E. Culler, 2002 “SPINS: Security Protocols for Sensor Networks” [19] C. Karlof, N. Sastry, D. Wagner, 2004 “TinySec: A Link Layer Security Architecture for Wireless Sensor Networks” [20] M. Luk, G. Mezzour, A. Perrig, V. Gligor, 2007 “MiniSec: A Secure Sensor Network Communication Architecture” [21] P. Marchetta, A. Salvi, E. Natale, A. Tirri, M. Tufo, D. De Pasquale, 2012 “S2MOVE: Smart and Social Move” [22] O. Alfandi, A. Bochem, A. Kellner, D. Hogrefe,2011 “Simple Secure PKI-based Scheme for Wireless Sensor Networks” [23] L. Armac, et al., 2009 “Privacy-friendly smart environments” [24] A. Dainotti, A. Pescapé, G. Ventre, 2007 “Worm traffic analysis and characterization” [25] S. Colleen, D. Moore, 2004 “The spread of the witty worm” [26] A. Dainotti, A. King, K. Clay, F. Papale, A. Pescapé, 2012 “Analysis of a stealth scan from a Botnet” 34