Contenuto
Ti trovi in: HOME »Programmi, progetti e risultati »I progetti »PRIN - Programmi di ricerca di Rilevante Interesse Nazionale»Programma di ricerca»Unità di ricercaINIZIO_TESTO_DA_INDICIZZARE
UNITA' DI RICERCA
italiano - english
Bibliografia
[A99] M. Abadi. Secrecy by Typing in Security Protocols. Journal of the ACM, 46(5):749–786, 1999.[AB05] M. Abadi and B. Blanchet. Analyzing Security Protocols with Secrecy Types and Logic Programs. Journal of the ACM, 52(1):102–146, 2005
[AHS06] A. Askarov, D. Hedin, A. Sabelfeld. Cryptographically-Masked Flows. Proc. of SAS'06. LNCS 4134, pp. 353-369.
[AS05] A. Askarov and A. Sabelfeld. Security-typed languages for implementation of cryptographic protocols: A case study. In Proc. of ESORICS'05, LNCS 3679, pp. 197-221.
[BBDNN03] C. Bodei, M. Buchholtz, P. Degano, F. Nielson, and H. Riis Nielson. Automatic validation of protocol narration. In Proc. of IEEE CSFW'03, pp. 126–140
[BCF02] C.Braghin, A. Cortesi, and R. Focardi. Security Boundaries in Mobile Ambients. Computer Languages, 28(1):101-127, 2002
[BCFLP04] C. Braghin, A. Cortesi, R. Focardi, F.L. Luccio, and C. Piazza. Nesting Analysis of Mobile Ambients. Computer Languages, Systems & Structures 30(3-4):207-230, 2004
[BCFM07] M. Backes, A. Cortesi, R. Focardi and M. Maffei. A calculus of Challanges and Responses. In proc. 5th ACM FMSE Workshop, November 2007
[BCM07] M. Backes, A. Cortesi, M. Maffei. Abstracting Multiplicity in Cryptographic Protocols. In Proc. of IEEE CSF'07, pp. 355-369
[BFFS02] L. Barriere, P. Flocchini, P. Fraingniaud, N. Santoro. Capture of an intruder by mobile agents. Proc. of the 14th ACM SPAA'02, pp. 200-209
[BFPR03] A. Bossi, R. Focardi, C. Piazza, S. Rossi: Refinement Operators and Information Flow Security. Proc. of IEEE SEFM 2003, pp. 44-53
[BFM07] M. Bugliesi, R. Focardi and M. Maffei. Dynamic Types for Authentication, Journal of Computer Security, IOS Press, 15(6):563-617, 2007
[BPR07] Bossi A., C. Piazza, S. Rossi. Compositional information flow security for concurrent programs. Journal of Computer Security, IOS press, vol. 15(3), pp. 373-413
[BPW03] M. Backes, B. Pfitzmann, and M. Waidner. A Universally Composable Cryptographic Library. In proc. of ACM CCS 2003, pp. 220-230
[F87] S.N. Foley, A universal theory of information flow, in: Proc. of the IEEE Symposium on S&P, pp. 116–122
[FG95] R. Focardi and R. Gorrieri, A Classification of Security Properties for Process Algebras, Journal of Computer Security, 3(1):5-33, 1995
[FHL05] P. Flocchini, M. J. Huang, and F. L. Luccio. Contiguous Search in the Hypercube for Capturing an Intruder. Proc. of IEEE IPDPS05.
[FLM06] P. Flocchini, M.J. Huang, and F.L. Luccio. Decontaminating chordal rings and tori using mobile agents. International Journal of Foundations of Computer Science, 18(3): 547-563, 2007.
[FLS05] P. Flocchini, F.L. Luccio and L.X. Song. Size Optimal Strategies for Capturing an Intruder in Mesh Networks. Proc. of CIC'05, pp. 200-206.
[FMP05] R. Focardi, M. Maffei and F. Placella. Inferring Authentication Tags. In Proc. of WITS 2005, ACM Digital Library, pp. 42-49
[FRS05] R. Focardi, S. Rossi, A. Sabelfeld: Bridging Language-Based and Process Calculi Security. In Proc. of FoSSaCS 2005 pp. 299-315. LNCS 3441
[GJ04] A. D. Gordon and A. Jeffrey. Types and effects for asymmetric cryptographic protocols. Journal of Computer Security, 12(3-4):435–483, 2004
[GM82] J.A. Goguen and J. Meseguer, Security policy and security models, in: Proc. of the IEEE 1982 Symposium on S&P, pp. 11–20
[M00] H. Mantel, Unwinding possibilistic security properties, in: Proc. of ESoRiCS '00, vol. 2895 of LNCS, Springer, Berlin, 2000, pp.238–254.
[M04] M. Maffei. Tags for Multi-Protocol Authentication. In Proc. of SECCO 2004, ENTCS 128, pp.55-63, Elsevier 2004.
[MAN05] J. Manson, W. Pugh and S. V. Adve, The Java memory model. in Proc. of ACM POPL '05, pp. 378-391.
[ML94] J. McLean, A general theory of composition for trace sets closed under selective interleaving functions, Proc. of the IEEE Symposium on S&P, pp.79–93, 1994.
[MSZ06] A. C. Myers, A. Sabelfeld, and S. Zdancewic. Enforcing Robust Declassification. Journal of Computer Security, 14(2):157-196, 2006.
[OASIS] OASIS Web Services Security at http://www.oasis-open.org/committees/tc_home.php?wg_abbrev=wss
[RWW96] A.W. Roscoe, J.C.P. Woodcock and L. Wulf, Non-Interference through determinism, Journal of Computer Security 4(1):27-54, 1996.
[RS01] P. Ryan and S. Schneider, Process algebra and Non-Interference, Journal of Computer Security 9(1/2):75–103, 2001.
[SS00] A. Sabelfed and D. Sands, Probabilistic Noninterference for multi-threaded programs, in: Proc. of IEEE CSFW 2000, pp.200-215.
[SM03] A. Sabelfeld and A.C. Myers, Language-based information-flow security, IEEE Journal on Selected Areas in Communication 21(1):5-19, 2003.
[SV98] G. Smith and D.M. Volpano, Secure information flow in a multi-threaded imperative language, in: Proc. of 25th ACM POPL, pp.355-364, 1998.
Programma di ricerca
SOFT - Tecniche formali orientate alla sicurezzaUniversità di riferimento
Università "Ca' Foscari" di VENEZIA - INFORMATICA - ()Responsabile dell'Unità di ricerca
Riccardo FocardiDescrizione
L'unità di Venezia focalizzerà la propria attività sulle linee di ricerca descritte nel seguito. Per ogni linea di ricerca vengono indicati i work-package (WP) del progetto nazionale all'interno dei quali tale ricerca verrà sviluppata.VE1 - Analisi di protocolli di autenticazione tramite interpretazione astratta e semantiche causali (WP1 e WP4)
L'analisi di protocolli crittografici a livello di linguaggio è strettamente legata alla comprensione di come i vari messaggi cifrati scambiati dalle entità che eseguono il protocollo contribuiscono al raggiungimento delle proprietà di sicurezza attese. Si vuole infatti giudicare la correttezza del protocollo osservandone solamente la sintassi.
In [BCFM07] abbiamo iniziato ad estendere l'approccio basato sui tipi proposto in [BFM07], in modo da separare la parte di interpretazione dei messaggi cifrati dalla parte di analisi. In particolare, i messaggi cifrati vengono univocamente interpretati come sfide o risposte su un calcolo privo di crittografia, la cui semantica tiene conto della segretezza o integrità di tali messaggi. La correttezza del protocollo è a questo punto giudicata in base alla presenza delle necessarie sfide e risposte a prescindere dalla specifica realizzazione crittografica.
Intendiamo portare avanti questo filone di ricerca lavorando su due fronti:
(i) siamo interessati a formalizzare l'astrazione della crittografia sopra menzionata in termini più standard di interpretazione astratta. Questo permetterà di dimostrare risultati generali sulle astrazioni ed avere in modo automatico risultati sulla preservazione delle proprietà di sicurezza tra il calcolo concreto e quello astratto;
(ii) vogliamo dare una nuova semantica causale ai protocolli crittografici, basata su proved transition systems. Tale semantica potrebbe tracciare in modo esplicito la causalità tra sfide, risposte, inizio e fine del protocollo, permettendo di osservare la relazione di causa ed effetto tra la conclusione del protocollo, e quindi l'autenticazione, e la corrispettiva esecuzione del protocollo da parte dell'entità da autenticare. Intendiamo confrontarci con il modello causale ad-hoc da noi proposto in [BCM07].
Questa ricerca darà una migliore comprensione della logica sottostante i diversi protocolli crittografici, una chiara separazione della logica del protocollo dalla sua effettiva implementazione crittografica con conseguente possibilità di integrare all'interno di un linguaggio di programmazione librerie per l'autenticazione sfida-risposta la cui realizzazione crittografica è effettuata dal compilatore in modo trasparente all'utente (vedere anche VE2).
Risultati attesi:
Primo anno
- definizione di un'interpretazione astratta di protocolli crittografici;
- studio di differenti astrazioni e teoremi sulla composizioni delle astrazioni;
Secondo anno
- definizione di una nuova semantica causale, basata su proved transition systems, per tracciare la causalità degli eventi di autenticazione;
- studio di tecniche di analisi e verifica automatica su tale semantica astratta;
- confronto con tecniche esistenti basate su tipi ed effetti e su semantiche causali ad-hoc.
VE2 - Information Flow security di applicazioni distribuite con crittografia (WP2)
Le moderne applicazioni e servizi su rete sono sempre più complessi ed articolati e necessitano di sempre maggiore flessibilità nella programmazione e nella realizzazione di requisiti di sicurezza. L'uso di protocolli preconfezionati a livello di trasporto (come ad esempio SSL) può diventare limitativo e c'è la tendenza a "riprogrammare" i protocolli crittografici a livello applicazione, come accade ad esempio nei servizi Web (e.g., [OASIS]). Questa prassi, oltre a presentare evidenti rischi di introduzione di nuovi errori, rende ancora più complicata l'analisi della sicurezza del codice come evidenziato in [AS05]. Un'applicazione distribuita diviene infatti, dal punto di vista della sicurezza, un insieme di politiche locali connesse da scambi di messaggi cifrati. Se però il programmatore può fare uso incontrollato della crittografia, questa connessione tra le varie parti può creare problemi di sicurezza anche se localmente i vari programmi sono considerati sicuri.
Queste problematiche sono state affrontate, in letteratura, a livello di calcoli di processi, in cui gli unici eventi rilevanti sono l'invio e la ricezione di messaggi. D'altra parte, esiste una approfondita letteratura sullo studio e l'analisi della sicurezza su linguaggi. Un recente lavoro [AHS06] fa un primo passo di integrazione dei due approcci, definendo un semplice linguaggio imperativo con primitive di comunicazione crittografiche, e studiando come una particolare forma di Non-Interferenza possa essere preservata in applicazioni distribuite.
Intendiamo lavorare su due fronti: (i) studieremo estensioni dei risultati di [AHS06] a forme di interferenza più forti (scheduler-independent) e a proprietà diverse, come l'autenticazione, sfruttando sistemi di tipi dinamici nello stile di [BFM07]; (ii) studieremo primitive astratte di comunicazione che permettano di rendere la programmazione il più possibile indipendente dalla realizzazione crittografica. L'idea di fondo è di specificare la proprietà desiderata sulla comunicazione senza indicare uno specifico protocollo crittografico: sarà cura del compilatore o della libreria di risolvere opportunamente le richieste di sicurezza da parte delle applicazioni.
Studiare proprietà dei protocolli e dei programmi in unico framework chiarificherà le relazioni tra le proprietà definite nei due diversi contesti e permetterà di definire librerie per lo sviluppo di applicazioni distribuite. Si lavorerà nella direzione di garantire al programmatore un buon livello di astrazione e trasparenza rispetto alla effettiva realizzazione crittografica.
Risultati attesi:
Primo anno
- definizione di un linguaggio imperativo con primitive di comunicazione crittografiche e studio di semplici sistemi di tipi per proprietà di Non-Inteferenza "forte" (indipendente dallo scheduler)
Secondo anno
- estensione dei risultati del primo anno a proprietà diverse come autenticazione dei messaggi e non ripudiabilità;
- studio di primitive astratte di comunicazione che permettano di rendere la programmazione indipendente dalla realizzazione crittografica.
VE3 - Stepwise refinement di programmi concorrenti sicuri (WP2)
L'utilizzo di raffinamenti successivi per lo sviluppo di sistemi complessi è una tecnica standard di ingegneria del software. Partendo dalla descrizione dei requisiti del sistema, ad ogni passo viene costruita una descrizione più concreta, corretta rispetto alla versione precedente, fino ad ottenere la versione finale implementabile. La correttezza del sistema finale è automaticamente garantita dall'applicazione di operazioni che preservano le proprietà iniziali. In questo progetto ci focalizzeremo su proprietà per linguaggi orientati alla sicurezza, ed analizzeremo varie operazioni di raffinamento quali la specializzazione di componenti astratte, la cancellazione di scelte non-deterministiche e la sostituzione di sottocomponenti. Per ciascuna operazione considereremo diverse proprietà di sicurezza ed identificheremo le condizioni sotto le quali l'operazione e' applicabile. Per ottenere questo risultato intendiamo percorrere la stessa linea seguita nell'ambito delle process algebra in [BFPR03] dove prima viene definito un framework generale per la definizione di proprietà di non interferenza e poi vengono individuate condizioni sufficienti per il loro mantenimento durante i passi di raffinamento.
Risultati attesi:
Primo anno
- sviluppo di un framework generale per la definizione di proprietà di sicurezza per programmi scritti in un linguaggio imperativo con costrutti di parallelismo ed atomicità;
- identificazione di un insieme di operazioni di raffinamento utilizzabili per lo sviluppo di sistemi sicuri.
Secondo anno
- classificazione di insiemi di programmi e proprietà persistenti rispetto alle operazioni considerate.
VE4 - Analisi statica per la sicurezza computazionale di protocolli di autenticazione (WP3)
Intendiamo sviluppare un'analisi statica per verificare autenticazione su protocolli che usano la libreria per operazioni crittografiche di Backes-Pfitzmann-Waidner [BPW03]. La libreria crittografica è dotata di due semantiche, la prima simbolica e la seconda computazionale. È stato dimostrato che, in generale, una proprietà di sicurezza soddisfatta dalla semantica simbolica è soddisfatta anche da quella computazionale. Quindi le prove effettuate sulla semantica simbolica sono automaticamente valide anche sulla reale implementazione crittografica.
Lo sviluppo di tale analisi statica è interessante perché fornirebbe uno strumento semplice e facilmente automatizzabile per la verifica di protocolli sul modello computazionale sopra menzionato; l'analisi, infatti, sarebbe effettuata solamente sul codice del protocollo e sarebbe quindi immune da problemi come l'esplosione dello spazio degli stati. Non siamo a conoscenza di altri risultati simili in letteratura.
Il punto di partenza di questo lavoro è il sistema di tipi per protocolli di autenticazione proposto recentemente da Bugliesi, Focardi e Maffei [BFM07]. Questa tecnica presenta alcuni vantaggi: (i) è al tempo stesso modulare e composizionale, poiché ciascuna componente del protocollo viene analizzata in modo indipendente e l'esecuzione concorrente di protocolli ritenuti sicuri è ancora sicura. Questa proprietà rende il sistema adatto ad analizzare situazioni in cui vengono eseguiti simultaneamente protocolli differenti [M04]; (ii) è completamente automatizzata, grazie ad una procedura di inferenza, e non richiede alcuna familiarità da parte dell'utente con i sistemi di tipi ed effetti [FMP05]; (iii) è generale ed estendibile, ed infatti ha permesso di analizzare diversi protocolli esistenti.
NOTA: Questa ricerca sarà sviluppata in collaborazione con il Computer Science Department della Saarland University di Saarbrücken.
Risultati attesi:
Primo anno
- definizione di un linguaggio per protocolli crittografici con semantica basata sulla libreria crittografica di Backes, Pfitzmann e Waidner;
- sviluppo di un sistema di tipi per verificare autenticazione sul nuovo linguaggio.
Secondo anno:
- estensione ad altre proprietà di sicurezza, come ad esempio la non ripudiabilità;
- estensione ad altre tecniche di analisi, come ad esempio l'interpretazione astratta discussa in VE1.
VE5 - Sicurezza in Java tramite interpretazione astratta (WP2)
L'unità di Venezia ha acquisito una consolidata competenza nell'ambito delle tecniche di interpretazione astratta: sono state studiate alcune tecniche finalizzate ad aumentare la precisione, a ridurre la complessità, e a modularizzare l'analisi, attraverso operatori di raffinamento, di semplificazione, di composizione e scomposizione di domini astratti. Sono stati inoltre studiati alcuni domini astratti specifici per l'analisi di programmi in vari paradigmi di programmazione, con una crescente attenzione a proprietà di sicurezza (information leakage detection).
Una delle caratteristiche dei comuni linguaggi di programmazione che li rende più vulnerabili rispetto a proprietà di sicurezza è la possibilità che essi offrono al programmatore di programmare in multithread, per esempio per eseguire più task allo stesso tempo, per realizzare delle interfacce grafiche complesse o per ottimizzare l'impiego di risorse; inoltre, questo sembra oggi l'unico modo per trarre pieno vantaggio dalle architetture multicore. La ricerca si concentrerà sulla definizione, lo sviluppo e l'implementazione di un'analisi per programmi multithread, basata sulla teoria dell'interpretazione astratta. Il linguaggio di programmazione preso in considerazione sarà (un opportuno sottoinsieme di) Java al livello bytecode, visto il supporto al multithreading integrato all'interno del linguaggio stesso, la sua relativamente semplice semantica e la sua larga diffusione.
Risultati attesi:
Primo anno
- specifica della semantica concreta di un sottoinsieme multithreaded di Java corretta rispetto al Java Memory Model [MAN05], ovvero di un modello matematico molto fedele all'esecuzione di un programma Java multithread.
- sviluppo di una semantica astratta, che sarà abbastanza approssimata per poter essere calcolabile, ma anche abbastanza precisa per provare alcune proprietà di interesse, tra cui il determinismo.
Secondo anno
- prove di correttezza dell'astrazione rispetto alla semantica concreta;
- implementazione di un prototipo di analizzatore astratto e ottimizzazione di tale prototipo.
VE6 - Agenti mobili e metodi formali per il confinamento di codice malevolo (WP1)
Uno degli obiettivi che ci poniamo è quello di studiare come applicare le tecniche "contigue" e "monotone" per l'isolamento del codice malevolo ("intruder") all'interno di diverse topologie di rete. In particolar modo ci interesseremo allo studio di nuovi algoritmi distribuiti che, attraverso l'uso di agenti mobili, siano in grado risolvere, con un numero polinomiale di mosse, il problema dell'isolamento dell'intruder su topologie di reti non ancora considerate. Ci proponiamo inoltre confrontare le formalizzazioni dei vari modelli presenti in letteratura tramite tecniche di interpretazione astratta. L'obiettivo è quello di ottenere risultati generali sui relativi poteri espressivi dei modelli che permettano di capire quali caratteristiche aggiuntive di un modello rendono la computazione strettamente più efficiente. Ad esempio, è noto che, su specifiche topologie, la conoscenza dello stato dei nodi adiacenti permette di migliorare la complessità in numero di mosse di alcuni algoritmi. Un altro esempio classico è il passaggio da modelli asincroni a modelli sincroni, che permette di avere un limite superiore al tempo di migrazione degli agenti. Anche la clonazione di agenti può migliorare le prestazioni di questi algoritmi dando, intuitivamente, più potere di isolamento agli agenti stessi.
Risultati attesi:
Primo anno
- nuovi algoritmi su topologie particolari di reti;
- formalizzazione di un linguaggio per la specifica di agenti mobili.
Secondo anno
- definizione della semantica di tale linguaggio e confronto con i modelli esistenti;
- confronto tra varianti del linguaggio con differenti caratteristiche e primitive.



