Navigare (pagare) sicuri in internet Prof. Marco Mezzalama Politecnico di Torino Il lato oscuro della tecnologia….. Scienza, tecnologia e guerra Il malware Da maliciuos software, è costituito da tre tipi di programmi dannosi, che possono anche combinarsi insieme: • Virus • Worm • Cavalli di troia La guerra su internet «Hacker dell’Isis attaccano il Comando Centrale USA per la sicurezza, clonando la pagina Facebook» (12 gennaio 2015, ANSA) La guerra su internet Stuxnet Non solo tra militari ma anche tra noi! Ransomware CryptoLocker, a ransomware worm that surfaced in late-2013, had procured an estimated US$3 million before it was taken down by authorities I numeri del cybercrime La crescita del mobile malware Un nuovo fenomeno Il numero totale del mobile malware è valutato pari a 150.000, di cui 100.000 prodotti nel solo 2014, ed è quadruplicato rispetto al 2011. I canali preferiti sono le apps seguite dagli sms/mms L’obiettivo principale è sottrarre password, indirizzi, numeri telefonici ma ultimamente ha raggiunto limiti significativi il fenomeno dello spyware Phishing (la pesca dei creduloni) Installa subito l’allegato monica,exe se vuoi chattare con Monica B. E’ gratis!!! Autenticazione del sito (verifica URL) 1.Attenti al nome (www.banca.it.ro) 2.Attenti al protocollo (https) 3.Diffidare (molti link presenti in mail, social media, icone pubblicitarie sono fraudolenti) 4.Diffidare degli allegati Canale sicuro Mi serve il tuo numero di carta di credito Il crittanalista……... …. il secondo mestiere più vecchio del mondo ! La storia della crittografia 4500 a.C. Cifrario di Cesare Leon Battista Alberti (1404 - 1472) La storia della crittografia Alan Turing (1912 – 1954) Enigma (1932) Crittografia Il contesto applicativo: riservatezza autenticazione scambio chiavi segrete firma digitale Crittografia Gli algoritmi crittografici possono essere classificati in tre categorie: algoritmi a chiave segreta (alg. simmetrici) algoritmi a chiave pubblica (alg. asimmetrici) algoritmi di hash (digest, impronta, firma digitale) Crittografia Testo in chiaro (plaintext, T) testo cifrato (ciphertext, C) coppia di chiavi k1 e k2 algoritmo di cifratura, E: C = E(T, K1) algoritmo di decifratura, D: T = D(C, K2) Segretezza: algoritmi, E e/o D chiavi k1 e/o k2 Crittografia Mittente Destinatario messaggio messaggio k1 k2 crittografia(E) decrittografia(D) messaggio cifrato Il frullino crittografico …. 0100111101 100110101 La chiave di selezione del programma Il frullino crittografico …. simmetrico 0100111101 100110101 0100111101 Crittografia (cifrario di Atbash) Il libro di Geremia nella Bibbia usa un semplicissimo cifrario monoalfabetico per cifrare la parola Babele; la prima lettera dell'alfabeto ebraico (Aleph) viene cifrata con l'ultima (Taw), la seconda (Beth) viene cifrata con la penultima (Shin) e così via; da queste quattro lettere è derivato il nome di Atbash (A con T, B con SH) per questo codice. Crittografia (cifrario di Cesare) Attenzione! Asterix ci ascolta! Tecniche di sostituzione A D B E C F ……. W Z X A Y B Z C Ad ogni lettera si sostituisce quella che la segue spostata di un numero fisso di posizioni C = (lettera + 3)mod26 Chiave segreta ATTACCO: DOMANI DYYDFFR: GRPDQN K=3 Tecniche di trasposizione Testo = MARCO MEZZALAMA. Algoritmo =prendo due simboli e li inverto con i successivi (chiave = 2,2) Testo = MA RC O ME ZZ AL AM A. Testo cifrato = RCMAMEO ALZZA.AM Crittografia - DES tratta blocchi di dati da 64 bit operando trasposizioni (inversione posizione di gruppi di bit) sostituzione (EXOR con chiave) noto algoritmo (E=D) segreto: chiavi k1=k2 e a volte vettore di inizializzazione Crittografia - DES tratta blocchi di dati da 64 bit operando trasposizioni (inversione posizione di gruppi di bit) sostituzione (EXOR con chiave) noto algoritmo (E=D) segreto: chiavi k1=k2 e a volte vettore di inizializzazione Crittografia a chiave segreta DES Data Encryption Standard chiave a 56 bit TRIPLO DES 168 bit chiave T DES Ka DES DES Kb Kc C Lunghezza della chiavi crittografiche simm. 40 64 128 ... asimm. 256 512 1024 ... bassa sicurezza alta sicurezza Principali algoritmi di crittografia simmetrica Algoritmo Chiave Blocco Base DES 56 bit 64 bit Triplo DES 112o168 bit 64 bit IDEA 128 bit 64 bit E-mail (PGP) RC2 8-1024 bit 64 bit Internet (SSL, S/MIME) RC4 Ignota Stream Internet (SSL, S/MIME) RC5 1-2048 bit 1-256 bit WAP AES 128-256 bit 128 bit applicazioni bancarie Applicazione tipica Bancaria, networking, Internet (SSL, S/MIME) BANCOMAT Prelievo dalla propria banca Prelievo da altra banca BANCOMAT Sulla tessera magnetica è memorizzato il numero di conto corrente Il numero di conto corrente mediante cifratura DES o 3DES viene inviato al modulo crittografico HSM (Hardware Secure Module) che ricava il PIN e lo verifica con quello introdotto Se la verifica è positiva il bancomat viene abilitato Il DES o 3DES adopera una chiave segreta nota solo al ATM e HSM Crittografia e vita comune Come tener segreto il numero di bancomat 1.Considerare il numero di bancomat: «12543» 2.Scegliere un numero che non dimentichiamo (il numero civico, la data di nascita,..): «13» 3.Sommare ad ogni cifra del bancomat il numero noto: «(13+1) (13+2) (13+5) (13+4) (13+3)» 4.Ottenere così la nuova sequenza: «1415181716» La nuova sequenza NON è più segreta! Distribuzione delle chiavi chiave segreta condivisa Distribuzione delle chiavi Come distribuisco la mia • out-of-band • in-band Crittografia a chiavi asimmetriche Chiave pubblica/chiave privata Certificato Bailey Whitfield 'Whit' Diffie Martin Edward Hellman Crittografia a chiavi asimmetriche RSA (1977) River, Shamir, Adelman (MIT) Il frullino crittografico …. asimmetrico 0100111101 100110101 0100111101 Crittografia a chiave pubblica k1 k2 K1 = Kpub = chiave pubblica K2 = Kpri = chiave privata algoritmi asimmetrici coppie di chiavi (pubblica e privata) ruolo delle chiavi interscambiabile alto carico computazionale Crittografia a chiave pubblica si basa sulle funzioni unidirezionali: y = f(x) complessità bassa (P) x = f--1(y) complessità molto alta (NP) Esempi: elevazione potenza: 34 = 3x3x3x3=81 ma, logaritmo: log3 81 = ? Fattorizzazione (scomposizione in fattori primi) di numeri grandi con fattori grandi (dato un numero intero positivo esiste una sola sequenza di numeri primi uguale al numero dato) Il tutto complicato nell’operare in algebra mod n Crittografia a chiave pubblica usato per distribuire chiavi segrete e per la firma elettronica RSA (Rivest - Shamir - Adleman) brevettato da RSA DSA (Digital Signature Algoritm) standard Diffie-Hellman scambio chiavi Ognuno ha la sua coppia di chiavi asimmetriche….. Chiave privata di marco Chiave privata di giulia Chiave pubbliche di marco Chiave pubblica di giulia Crittografia a chiavi asimmetriche chiave pubblica chiave privata La serratura … asimmetrica Se chiudo con la chiave apro solo Se chiudo con la chiave apro solo Segretezza (la trasmissione della carta di credito) (messaggio da marco a giulia) testo testo lella Chiavi pubbliche di marco giulia francy Chiave privata di giulia Autenticazione (la firma digitale) (di un messaggio da marco a giulia) testo testo Chiave privata di marco Chiavi pubbliche di giulia lella marco francy Crittografia RSA algoritmo ideato da Rivest, Shamir e Adleman utilizza come base il calcolo della funzione: f = ck mod n la difficoltà di rompere il codice è paragonabile alla difficoltà di fattorizzare numeri interi molto grandi (n), prodotto di numeri primi Robustezza: RSA 129 (129 cifre) richiede 4600 MIPS-anni Crittografia RSA 1. si scelgono a caso due numeri primi, p e q abbastanza grandi da garantire la sicurezza dell'algoritmo (ad esempio, il più grande numero RSA, RSA-2048, utilizza due numeri primi lunghi più di 300 cifre decimali) 2. si calcolano il loro prodotto n = pq , chiamato modulo (dato che tutta l'aritmetica seguente è modulo n), e il prodotto f(n) = (p-1)(q-1). Si considera che la fattorizzazione di n è segreta e solo chi sceglie i due numeri primi, p e q, la conosce Crittografia RSA 3. si sceglie poi un numero e (chiamato esponente pubblico), coprimo (primi tra di loro) e più piccolo di f(n) 4. si calcola il numero d (chiamato esponente privato) tale che il suo prodotto con e sia congruo ad 1 modulo f(n) ovvero che e*d = 1 mod(f(n)) La chiave pubblica è (n, e) , mentre la chiave privata è (n, d) . I due numeri primi p e q possono essere distrutti La forza dell'algoritmo sta nel fatto che per calcolare d da e o viceversa, non basta la conoscenza di n, ma serve il numero f(n)=(p-1)(q-1) e che il suo calcolo richiede tempi molto elevati; infatti fattorizzare in numeri primi (cioè scomporre un numero nei suoi divisori primi) è un'operazione molto lenta. Esempio 1. p=3 e q=11 2. n=p*q=3*11=33 e f(n)=(p-1)(q-1)=2*10=20 3. prendo e=7 , dato che e<20 ed e è coprimo di 20 (non è necessario che e sia primo) 4. d=3 , infatti ed=7*3=21 =1 mod(20) poiché 21/20=1 con resto 1 Quindi abbiamo la chiave privata (33,3) e la chiave pubblica (33,7) (il fatto che d sia uguale a p è puramente casuale) Prendiamo ora in considerazione il messaggio m = 15 e cifriamolo per ottenere il messaggio cifrato c , ovviamente possiamo usare 33 e 7, ma non 3 che fa parte della chiave privata. c = m^e mod(n)=15^7 mod(33)=27 E ora decifriamo c = 27 per ottenere m ; qui utilizzeremo 3, componente essenziale della chiave privata. m=c^d mod(n)=27^3 mod(33)=15 Quindi alla fine abbiamo decrittato il messaggio. Crittografia RSA Kpub = (e, n) = (5,119) Kpri = (d, n) = (77,119) Dato un testo T: C = Te (mod n) T = Cd (mod n) La difficoltà crittografica consiste nel ricavare d, noti e ed n, in pratica nel fattorizzare n=p*q nei suoi fattori primi Applicazioni crittografia asimmetrica Realizzazione canali sicuri (distribuzione chiavi segrete) firma digitale Canale sicuro Mi serve il tuo numero di carta di credito Canale sicuro 1. Kpub 2. Kpub Kpri n. VISA Firma digitale Documenti digitali Contratti digitali Posta elettronica certificata (pec) Autenticazione siti web (https) Certificazione software (app) Il Bignami digitale Message digest (hash) è un riassunto del messaggio che si vuole proteggere allo scopo si usano algoritmi di hash: MD5, genera un digest di 128 bit SHA, genera un digest di 160 bit RIPEMD 160, genera un digest di 160 bit messaggio hash digest Lunghezza del digest importante per evitare collisioni: md1 = H (testo 1) md2 = H (testo 2) se testo 1 testo 2 si vorrebbe avere md1 md2 probabilità di collisione: P ~ 1 / 2Nbit occorrono quindi digest con molti bit (perchè si tratta di eventi statistici) Message digest o IMPRONTA Campo applicazione: integrità/rivelazione errori autenticazione firma digitale Autenticazione L’autenticazione dei messaggi deve provare: messaggio provenga dal mittente dichiarato il contenuto non sia alterato la sequenza sia corretta il messaggio sia giunto al destinatario Integrità messaggio messaggio digest digest In fase di ricezione si decifra il messaggio e lo si confronta Message digest o IMPRONTA Per evitare che il messaggio venga alterato modificando contestualmente il digest, questo viene cifrato messaggio Digest cifrato Applicazioni crittografia asimmetrica firma digitale FIRMA DIGITALE •Algoritmo per identità del soggetto •Algoritmo per il non ripudio •Algoritmo per la integrità del documento •Algoritmo crittografia a chiave pubblica •Algoritmo di hash • Certificato a chiave pubblica Firma digitale Mittente Destinatario dati da firmare dati ricevuti chiave del mittente message digest message digest md Kpri Kpub algoritmo asimmetrico mdR mdF = ? algoritmo asimmetrico digital signature Firma digitale testo Firma: f(testo),Kpri(MARCO) Firma di A Controllo integrità del messaggio NON mi dà garanzia mittente Il dilemma 1. Dove trovo la Kpub ? 2. Chi mi garantisce che sia proprio lui? Certificato a chiave pubblica La sola firma con una coppia di chiavi non mi garantisce la corrispondenza con un soggetto fisico marco Chi è Marco? Sarà proprio la firma di Marco ? Certificato a chiave pubblica È necessario un certificato d’autenticità che garantisca in modo esplicito l’identità del soggetto (SIGILLO marco Riconosco il timbro? In God we trust …. ... All Other must submit an X.509 certificate Certifico che la seguente è la chiave pubblica di Mezzalama: Firmato: il presidente MATTARELLA Certificato a chiave pubblica “Una struttura dati per legare in modo sicuro una chiave pubblica ad alcuni attributi tipicamente lega una chiave ad un’identità personale, ma anche informatica firmato in modo elettronico dall’emettitore: una persona fidata o - meglio - l’autorità di certificazione ( CA ) con scadenza temporale revocabile sia dall’utente sia dall’emettitore Certificato a chiave pubblica testo Consegnate al messaggero 1000 ducati d’argento marco Firma di A Certificato di marco Firmato: il re Firma digitale testo Firma: f(testo),Kpri(MARCO) Certificato: Firma di A certificato CA - nome - Kpub(MARCO) - CA Firma digitale testo Firma: f(testo),Kpri(MARCO) Firma di A certificato CA Certificato: - nome - Kpub(MARCO) - CA CA - Firma CA f(nome,Kpub,CA),Kpri(CA) certificato X.509v3 1. versione .... 2. algorit di firma RSA with MD2, 512 3. issuer C = IT, O = Polito, OU=CA 4. validità 5. soggetto 6. chiave pub. di Marco firma digitale della CA 1/1/96 - 31/12/02 C = IT, O = Polito, CN = Marco Mezzalama RSA, 1024, xxx... impronta (1-6) firmata con Kpri della CA Autorità di certificazione Una autorità accreditata da un insieme di utenti per creare ed assegnare certificati a chiave pubblica •Deve gestire una PKI (Public Key Infrastructure) •Può essere riconosciuta ufficialmente o de-facto da una comunità di utenti •problema: mutuo riconoscimento Autorità di certificazione (1) Kpub, Barbara Certification Authority (1) Kpri (4) cert (Barbara,Kpub) (2) (3) OK barbara Registration Authority