Analisi Statica di Circuiti per la Sicurezza
candidato: Riccardo Bresciani
relatore: Prof. Luca Fanucci
Corso di Laurea Specialistica in Ingegneria Elettronica Nuovo Ordinamento
Anno Accademico 2010–2011
22 Luglio 2011
DÉLÉG ATI ONGÉNÉRA LE P OU R L’AR M E M ENT
La DGA,
partenaire des armées pour bâtir la défense de demain
�������������������������������������� ��������� ������ ������
&
Stage presso LSV (ENS-Cachan), sotto la supervisione di Jean Goubalt-Larrecq (LSV, ENS Cachan & CNRS & INRIA), in collaborazione con David Lubicz (IRMAR, Université de Rennes 1 & DGA) e Nicolas Guillermin (DGA).
L’aforisma di Einstein
La teoria è quando si sa tutto e niente funziona.
La pratica è quando tutto funziona e nessuno sa il perché.
In questo caso abbiamo messo insieme la teoria e la pratica:non c’è niente che funziona. . . e nessuno sa il perché!
Motivazione
(II)Non è così banale rendersi conto che ci sia qualcosa che non funzioni, soprattutto se siamo interessati a proprietà di sicurezza dei dati trattati — potenziali problemi non si manifestano come puzza di bruciato, scintille, fiammate, fumi sospetti o altre amenità del genere.
Lo scopo di questo lavoro
Appurare che il progetto del dispositivo (codice VHDL) sia conforme alle nostre richieste in termini di sicurezza dei dati trattati.
Esempi di uso (più o meno) quotidiano
controllo di accesso chiavi hardware smart card decoder Sky lettori dvd . . .
Per complicare le cose:
vogliamo circuiti con prestazioni migliori;ººº
vogliamo circuiti sempre più affidabili;ººº
vogliamo che i tempi di
progettazione si riducano.»»»
Metodi formali
Dato un sistema del quale si vogliano studiare le proprietà, si costruisce un suomodello: ragionando su di esso vengono inferite le proprietà del modello, e quindi del sistema.
Metodi formali
Storicamente ci sono stati molti preconcetti contro i metodi formali, che tuttavia sono in fase di superamento.
Perché usare metodi formali è cosa buona e giusta: due esempi
bug dell’Ariane 5 — perdita: circa 500 M$;
bug nella FPU del processore Pentium — perdita: circa 475 M$.
“I test mostrano la presenza di errori, non la loro assenza.” [E.W.Dijkstra]
L’applicazione di metodi formalidimostrache il sistema implementa correttamente una data specifica.
INTERNI OUTPUT INPUT • Privato • Pubblico • Da determinare
Distinguiamo dati e canali inpubblicieprivati; i canali sono interconnessi da gate che possono cambiare il tipo di dato che li attraversa.
Richiediamo che dati privati non vengano mai trasmessi su canali pubblici.
Sistema di tipi
Per verificare il dispositivo usiamo unsistema di tipi.
Ehm, ovvero?
rq♣♠ è un sistema di tipi, in quanto ogni seme identifica una caratteristica comune a diverse carte.
Nel nostro caso ci serve per verificare lacoerenza del sistema: assegnando un tipo a ciascun dato e a ciascun canale vogliamo assicurarci che dati di un certo tipo transitino solo su canali di tipologia appropriata.
Rosso rq
Dati e canalirossisono privati e devono essere protetti, in quanto la compromissione della loro sicurezza implica il mancato rispetto delle specifiche.
Nero ♣♠
Dati e canali neri sono pubblici e dunque sono (possono essere) accessibili all’avversario; dati rossi non possono transitarvi.
Ci sono carte a seme rossorqe nero ♣♠, sia con dorso rossoche con dorso nero .
Il giocatore ha solo carte a dorso nero e seme nero (♣♠/) e può interagire con dei corrieri che ritirano una carta e la passano ad un mazziere.
Ciascun mazziere ritira una o più carte e, obbedendo a delle regole sul seme delle carte, passa una carta con il dorso di un certo colore ed un certo seme ad un altro mazziere o ad un corriere che la porta al giocatore solo nel caso abbia il dorso nero (rq♣♠/) e la distrugge altrimenti (rq♣♠/).
Se la carta ricevuta ha seme rosso (rq/) il giocatore ha vinto.
La similitudine
Dati privati: seme rossorq Dati pubblici: seme nero ♣♠ Canali privati: dorso rosso Canali pubblici: dorso nero
Modello: regole del gioco Terminali del dispositivo: corrieri Gate interni: mazzieri
Conclusione
(I)Le moderne tecniche di progettazione di dispositivi elettronici si collocano nell’intersezione tra il campo dell’elettronica e quello dell’informatica, dove la distinzione è decisamente labile: ad oggi il suo utilizzo è estensivo, vista la complessità dei dispositivi moderni. Questa pratica pone delle problematiche di verifica e test non banali: lo scopo di questo lavoro è stato laverifica formale di aspetti di sicurezza nel design VHDL, finalizzata ad assicurare che un circuito contenente dati confidenziali ne assicuri la corretta tenuta.
All’interno di un circuito abbiamo categorizzato dati e canali indue classidistinte, distinguendo tra quanto debba essere mantenuto privato e quanto possa essere accessibile ad un avversario senza compromettere le specifiche di sicurezza: abbiamo delineatodue metodologie, che utilizzano software di verifica esistenti adattandone le modalità di utilizzo alle nostre esigenze, e mostrato come la parte manuale possa essere automatizzata.