Sicurezza II Prof. Dario Catalano Errori di Implementazione.

Slides:



Advertisements
Presentazioni simili
Segretezza e crittografia simmetrica
Advertisements

Elementi di Crittografia MAC e FUNZIONI HASH
Sistemi dinamici discreti e computabilità intrinseca
Laboratorio Processi Stocastici
Protocolli HB+ e HB# Lezione tenuta dal Presentazione realizzata da
Linguaggi Regolari e Linguaggi Liberi
Sicurezza II Prof. Dario Catalano
Sicurezza II Prof. Dario Catalano Introduzione. Il problema fondamentale di questo corso Alice e Bob vogliono comunicare utilizzando un canale non del.
Sicurezza II Prof. Dario Catalano Autentica Mediata.
Sicurezza II Prof. Dario Catalano Security Handshake Pitfalls.
Sicurezza II Prof. Dario Catalano Sistemi di Autentica.
Sicurezza II Prof. Dario Catalano Autentica di Umani.
Sicurezza II Prof. Dario Catalano Strong Password Protocols.
Autenticazione dei messaggi e funzioni hash
Elementi di statistica Elementi di statistica M. Dreucci Masterclasses LNF Elementi di statistica M. Dreucci.
Analisi delle Decisioni Esistenza della funzione di utilita’
Dipartimento di Ingegneria dell’Informazione
RSA Monica Bianchini Dipartimento di Ingegneria dellInformazione Università di Siena.
Per crittografia si intende la protezione
Il Software: Obiettivi Programmare direttamente la macchina hardware è molto difficile: lutente dovrebbe conoscere lorganizzazione fisica del computer.
Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Copyright © The McGraw - Hill Companies, srl 1 Ordinamenti lineari.
Iterazione enumerativa (for)
Testo consigliato Crittografia, P. Ferragina e F. Luccio, Ed. Bollati Boringhieri, € 16.
Secure Shell Giulia Carboni
Corso di Laurea in Biotecnologie Informatica (Programmazione)
Corso di Informatica (Programmazione)
Alberi di Ricorrenza Gli alberi di ricorrenza rappresentano un modo conveniente per visualizzare i passi di sostitu- zione necessari per risolvere una.
Avviamento ai giochi sportivi
SSL (Secure Socket Layer)
Prof. Zambetti -Majorana © 2008
Notazioni Asintotiche e Ordini di Grandezza delle funzioni
Corso di Matematica Discreta cont. 2
Classi Java per la protezione della riservatezza Tecnologie per la Sicurezza L-S AA Anna Riccioni
LA CRITTOGRAFIA QUANTISTICA
Metodo della moltiplicazione
CORSO DI CRITTOGRAFIA Quinto incontro PROGETTO LAUREE SCIENTIFICHE
VIRTUALIZZAZIONE Docente: Marco Sechi Modulo 1.
Un modem, una scheda di rete, o comunque una unità di comunicazione tra calcolatori elettronici, trasmettendo uninformazione, a causa di disturbi esterni,
di Tommaso Dionigi - Corso di Sicurezza - A.A. 2006/2007
06/12/2007 Progetto cedolini online di Lottomatica Automatizzare il processo di consegna dei cedolini delle buste paga.
Traduzione e computer (3) Cristina Bosco Informatica applicata alla comunicazione multimediale 2013.
Cammini minimi da un sorgente
ESTENSIONI SEMPLICI e TEOREMA DELL’ELEMENTO PRIMITIVO
I sistemi di numerazione
Vertici, spigoli e facce di cubi a più dimensioni
Prof.ssa Chiara Petrioli -- corso di programmazione 1, a.a. 2006/2007 Corso di Programmazione 1 a.a.2006/2007 Prof.ssa Chiara Petrioli Corso di Laurea.
Capitolo 8 La sicurezza nelle reti
La rappresentazione delle informazioni in un computer Seconda parte.
Crittografia MITTENTE DESTINATARIO messaggio messaggio chiave-1
Analisi e sperimentazione di una Certification Authority
Implementazione di dizionari Problema del dizionario dinamico Scegliere una struttura dati in cui memorizzare dei record con un campo key e alcuni altri.

UNIVERSITÀ DEGLI STUDI DI PAVIA Anno accademico 2009/2010 Sicurezza e frodi informatiche in Internet: la Firma Digitale come garanzia di autenticità e.
1 Interpretazione astratta: un approccio sistematico all’analisi statica.
Sicurezza informatica
Ripasso su Java. Introduzione Per risolvere problemi complessi, i linguaggi di programmazione forniscono costrutti per realizzare nuove funzioni che trasformino.
Sicurezza delle comunicazioni1 Introduzione Consistente sviluppo delle applicazioni telematiche dovuto a: –Evoluzione tecnologica delle trasmissioni –potenze.
1 Laboratorio di Introduzione alla Programmazione §II MODULO §3 crediti §Esame e voto unico (su 6 crediti totali)
Elgamal Corso di Sicurezza – A.A. 2006/07 Angeli Fabio29/05/2007.
Prof. ing. Paolo Bidello AA 2005/2006 Laboratorio Informatico Promemoria degli argomenti: Reti locali (LAN)
CRITTOGRAFIA QUANTISTICA di Davide D’Arenzo e Riccardo Minciarelli.
Corsi di Laurea in Biotecnologie
Metodologia della ricerca e analisi dei dati in (psico)linguistica 24 Giugno 2015 Statistica inferenziale
Analisi matematica Introduzione ai limiti
Informatica Problemi e algoritmi. una situazione che pone delle domande cui si devono dare risposte. Col termine problema o situazione problematica s’indica.
Cenni di Crittografia Luigi Vetrano TechnoLabs S.p.A. L’Aquila, Aprile 2011.
1 DISTRIBUZIONI DI PROBABILITÁ. 2 distribu- zione che permette di calcolare le probabilità degli eventi possibili A tutte le variabili casuali, discrete.
FESR Trinacria Grid Virtual Laboratory La sicurezza dei dati in ambiente Trigrid Giordano Scuderi.
Logica Lezione 11, Annuncio Non si terrà la lezione di Lunedì 16 Marzo.
Sicurezza dei Sistemi Informatici L.S. in Ingegneria Informatica Docente: Prof. Giuseppe Mastronardi CRITTOGRAFIA E CRITTOANALISI ATTACCHI AI SISTEMI DI.
Transcript della presentazione:

Sicurezza II Prof. Dario Catalano Errori di Implementazione

Introduzione Abbiamo fatto una (breve) carrellata di tecniche crittografiche utili alla sicurezza. E opportuno discutere alcuni usi sbagliati (e frequenti) di tali metodi.

I 5 comandamenti 1. Usare solo primitive crittografiche ben studiate (es. AES) 2. Quando possibile, limitarsi a metodologia dimostrabilmente sicure. 3. Non assumere che una data costruzione abbia proprieta che non sono quelle per le quali essa e stata progettata.

I 5 comandamenti (cont.) 4. Il fatto di utilizzare primitive singolarmente sicure non implica la sicurezza dellintero sistema. 5. Fare in modo che la propria implementazioni realizzi esattamente lo schema per il quale conosciamo una dimostrazione.

Utilizzo di costruzioni senza prova di sicurezza. Molti schemi non hanno una dimostrazione di sicurezza. Labitudine di dimostrare la sicurezza dei sistemi simmetrici ha cominciato a diffondersi solo a partire dai primi anni 90. Oggi si comincia (finalmente) a capire limportanza delle dimostrazioni. Nonostante cio capita ancora abbastanza spesso di vedere utilizzati schemi insicuri. Es ECB

Utilizzare il tool sbagliato Errore comunissimo: utilizzare encryption per fare authentication. E estremamente rischioso utilizzare una primitiva nel constesto sbagliato. Utilizzare un schema dimostrabilmente sicuro non vuol dire che tale scheme garantira qualsiasi proprieta di sicurezza.

Utilizzare il tool sbagliato (cont) Molti schemi sono stati attaccati perche gli ideatori assumevano che encryption garantisce anche auth. MAC non erano parte integrante delle prime specifiche di IPsec Cio ha reso IPsec vulnerabile a determinati attacchi. La prima versione di SSH non utilizzava MAC

Implementazioni imprecise A volte anche una piccola variazione su un sistema dimostrabilmente sicuro, puo condurre a conseguenze catastrofiche. Ricordiamoci che la sicurezza di un sistema dipende sempre dalla sicurezza della sua componente piu debole.

Implementazioni imprecise (cont) Gli esempi pratici non mancano. La Diebold (costruiva macchine per fare e-voting) utilizzava, nei propri prodotti, una variante di CBC$ (CBC0) Tale variante rendeva CBC$ completamente insicuro. Vediamo perche

Numeri casuali I numeri casuali svolgono un ruolo di fondamentale importanza in crittografia. Generazione della chiave, generazione di crittotesti, etc. E dunque importante anche essere in grado di generarli correttamente. Riguardiamo CBC$

CBC$: come interpretare il codice? Non tutto e facilmente interpretabile (ed implementabile), da un non esperto di crittografia.

I problemi da affrontare Primo problema: come fa un computer (deterministico) a generare numeri casuali? Dobbiamo necessariamente accontentarci di numeri pseudo casuali. Secondo problema: come generare numeri pseudo casuali in C o Java?

Il generatore C Le librerie C contengono due funzioni (rand e srand) che permette di generare numeri pseudo casuali. srand prende in input un seme seed e inizializza il generatore rand.

Il generatore C (cont) function srand(seed) state=seed; function rand() state=((state* )+12345) mod 2 31 ; return state

Usare il generatore Supponiamo di voler utilizzare tale generatore per generare una chiave AES (128 bit). E chiaro che non possiamo utilizzare un solo output del generatore Avremmo solo 32 bit Possiamo pensare di concatenare piu output.

Usare il generatore (cont) function AES-KeyGen() key[0] =rand(); key[1] =rand(); key[2] =rand(); key[3] =rand(); return key. In questo modo otteniamo una chiave di 128 bit come richiesto. Il sistema sembra funzionare perfettamente…

Eppure… Poiche state=((state* )+12345) mod 2 31 key[1]=((key[0]* )+12345) mod 2 31 key[2]=((key[1]* )+12345) mod 2 31 =((((key[0]* )+12345)* )+12345) mod 2 31 In sostanza tutte le componenti sono generate da key[0] in modo facilmente riproducibile. Anche se la chiave e di 128 bit esistono solo 2 32 possibilita.

Ulteriori problemi Esistono altri due problemi con la funzione rand() 1. Il seme e di soli 32 bit. 2. Conoscendo un valore di state e possibile calcolare il successivo. Un approccio alternativo potrebbe essere quello di creare numeri casuali utilizzando AES (o SHA1)

Netscape 1.1 random number generator

Osservazioni In linea di principio non possiamo piu ricavare il seme x facilmente x e 160 bit Al primo utilizzo riveliamo solo SHA1(x) Il fatto di utilizzare buone primitive crittografiche, e sufficiente a garantire sicurezza?

Osservazioni (cont) Sfortunatamente no! La chiave dipende essenzialmente da pid, ppid e il tempo. Se lavversario potesse accedere a tali info tutta la sicurezza del sistema crollerebbe.

Non considerare la sicurezza dellintero sistema. Supponiamo di voler garantire autenticita e privacy allo stesso momento. Idea: prima cifro il messaggio e poi lo autentico. Quindi invio al destinatario sia il crittotesto che il tag prodotto. Non ce motivo per cui un tale approccio non debba funzionare, no?

Non considerare la sicurezza dellintero sistema (cont) Tale approccio puo non funzionare in pratica. Il problema e che MA non si cura di privacy ed encryption non si cura di MA. Esempio classico: combinare CBC$ encryption e CBC-MAC. CBC-MAC e deterministico e rivela informazioni sul messaggio autenticato.

CBC MAC

Conclusioni Realizzare sistemi sicuri e molto difficile. Bisognerebbe sempre muoversi con i piedi di piombo.