D02 Introduzione Alla Crittografia

download D02 Introduzione Alla Crittografia

of 106

Transcript of D02 Introduzione Alla Crittografia

  • 7/29/2019 D02 Introduzione Alla Crittografia

    1/106

    Introduzione alla Crittografia

    Luca Grilli

  • 7/29/2019 D02 Introduzione Alla Crittografia

    2/106

    CHE COS LA CRITTOGRAFIA

    Introduzione alla Crittografia

  • 7/29/2019 D02 Introduzione Alla Crittografia

    3/106

    Che cos la crittografia?

    La parola crittografia deriva dalle parole greche

    (kripts): nascosto o segreto, e

    (grapha): scrivere

    Quindi, la crittografia larte e la scienza delloscrivere in modo segreto

    larte di offuscare delle informazioni in modo

    apparentemente del tutto incomprensibile, prevedendo una tecnica segreta per ricostruirle in

    modo esatto

  • 7/29/2019 D02 Introduzione Alla Crittografia

    4/106

    Applicazioni della crittografia

    Unapplicazione immediata (servizio base) la trasmissione di messaggi tra soggetti che desiderano

    comunicare, rendendo il contenuto incomprensibile ad un

    ascoltatore non autorizzato

    Le moderne tecniche crittografiche nella quali linformazione viene rappresentata in

    forma binaria (o numerica)forniscono ulteriori servizi Controllo di Integrit

    Autenticazione

  • 7/29/2019 D02 Introduzione Alla Crittografia

    5/106

    Applicazioni della crittografia

    Controllo di Integrit (Integrity Checking)

    assicura il destinatario (recipient) di un messaggioche il messaggio non stato alterato dal momento

    in cui stato generato da una fonte attendibile

    Autenticazione (Authentication)

    verifica dellidentit di qualcuno (o qualcosa)

  • 7/29/2019 D02 Introduzione Alla Crittografia

    6/106

    Terminologia e definizioni preliminari

    Testo in chiaro (plaintext o cleartext): messaggio nellasua forma originale

    Testo cifrato (ciphertext): messaggio cifrato Cifratura o crittazione o criptazione (encryption):

    processo che produce il testo cifrato a partire dal testoin chiaro

    Decifratura o decrittazione o decriptazione(decryption): processo inverso della cifratura

    ENCRYPTION DECRYPTION

    PLAINTEXT PLAINTEXTCIPHERTEXT

  • 7/29/2019 D02 Introduzione Alla Crittografia

    7/106

    Terminologia e definizioni preliminari

    Crittografo (cryptographer): esperto dicrittografia

    Crittoanalisi o crittanalisi (cryptanalysis):larte o la scienza di violare testi cifrati

    ricostruire il testo in chiaro senza conoscerelinformazione segreta utilizzata in fase di

    decifratura Crittoanalista o crittanalista (cryptanalyst):

    esperto di crittoanalisi

  • 7/29/2019 D02 Introduzione Alla Crittografia

    8/106

    Terminologia e definizioni preliminari

    [Wiki-it] Crittologia (cryptology): larte o lascienza delle scritture nascoste, nel suoduplice significato:

    da un lato comprende l'ideazione di metodisempre pi sicuri per occultare il reale significatodi determinati segni (crittografia),

    dall'altro riguarda la decifrazione di testi occultatisenza conoscerne a priori il metodo usato(crittanalisi).

  • 7/29/2019 D02 Introduzione Alla Crittografia

    9/106

    Crittografi vs Crittoanalisti

    Crittografi e crittoanalisti sono in continua sfida

    i primi sviluppano codici segreti sempre pi raffinati

    i secondi tentano costantemente di migliorare le

    tecniche di crittoanalisi

    Il vantaggio/successo dei crittografi si fonda sul

    seguente principio Principio fondamentale della crittografia: If lots of

    smart people have failed to solve a problem, then it

    probably won't be solved (soon)

  • 7/29/2019 D02 Introduzione Alla Crittografia

    10/106

    Sistemi crittografici

    I sistemi crittografici generalmente prevedono lutilizzocombinato di un algoritmo, e

    un valore segreto detto chiave

    La chiave segreta stata introdotta essenzialmenteperch difficile concepire ogni volta nuovi algoritmi di cifratura,

    difficile spiegare rapidamente il funzionamento di unnuovo algoritmo ad un soggetto con il quale si desideracomunicare in modo sicuro

  • 7/29/2019 D02 Introduzione Alla Crittografia

    11/106

    Complessit computazionale

    Uno schema di crittografia

    non impossibile da violare se non si conosce lachiave

    un avversario pu seguire un approccio esaustivo (bruteforce) che esamina tutte le possibili chiavi finch non trovaquella corretta

    tanto pi sicuro quanto maggiore il costo

    computazionale necessario a violarlo deve permettere di cifrare e decifrare messaggi in

    modo efficiente quando si conosce la chiave

    le fasi di cifratura e decifratura devono richiedere un tempo

    ragionevolmente ridotto quando si conosce la chiave

  • 7/29/2019 D02 Introduzione Alla Crittografia

    12/106

    Lunghezza della chiave

    Alcuni schemi di crittografia prevedono unachiave avente lunghezza variabile aumentando la lunghezza della chiave si aumenta il

    livello di sicurezza, ma diminuisce lefficienza: aumenta il tempo di

    cifratura/decifratura del messaggio (per chi conosce lachiave)

    Altri schemi non consentono la modifica dellalunghezza della chiave in tal caso necessario sviluppare algoritmi simili che

    utilizzano chiavi di lunghezza diversa

  • 7/29/2019 D02 Introduzione Alla Crittografia

    13/106

    Algoritmo pubblico o segreto?

    Qualcuno sostiene che mantenere segreto unalgoritmo di crittografia aumenti la sua sicurezza un crittoanalista deve prima individuare lalgoritmo e

    poi tentare di forzarlo Altri sostengono invece che pubblicando

    lalgoritmo, rendendolo noto a tutti, la sicurezzaaumenti

    scoprire un algoritmo segreto potrebbe non esserecos difficile, e

    se lalgoritmo segreto ha delle debolezze questepotrebbero essere individuate da un crittoanalista

  • 7/29/2019 D02 Introduzione Alla Crittografia

    14/106

    Algoritmo pubblico o segreto?

    se lalgoritmo invece pubblico eventuali debolezzepossono essere segnalate dalla comunit scientifica

    se molti esperti confermano la bont dellalgoritmo molto probabile che sia realmente sicuro

    difficile mantenere segreto un algoritmo moltodiffuso

    tecniche di reverse engineering possono permetteredi risalire al codice,

    essendo molto diffuso pu venirne in possesso uncrittoanalista abile

  • 7/29/2019 D02 Introduzione Alla Crittografia

    15/106

    Algoritmo pubblico o segreto?

    In passato, la segretezza era richiesta perchgli algoritmi sicuri erano estremamentecostosi

    gli algoritmi a basso costo erano insicuri! gli attuali algoritmi non richiedo questa extra

    protezione essendo di per se molto sicuri

    La tendenza attuale che gli algoritmi commerciali/civili sono pubblici,

    mentre

    gli algoritmi militari sono tenuti segreti

  • 7/29/2019 D02 Introduzione Alla Crittografia

    16/106

    Algoritmo pubblico o segreto?

    Lesigenza della segretezza pu dipendere da

    altre cause (e non dallaumento di sicurezza)

    lautore dellalgoritmo potrebbe tenerlo segreto

    per ragioni commerciali (segreto industriale)

    nel caso militare, possibile che si ricorra allasegretezza per evitare che il nemico usi uno

    schema di crittografia ritenuto sicuro costringendolo ad utilizzare tecniche note o a

    svilupparne di proprie

  • 7/29/2019 D02 Introduzione Alla Crittografia

    17/106

    Codici segreti (cifrari)

    Con il termine codice segreto o cifrario siintende un qualunque metodo di cifratura il pi antico cifrario attribuito a Giulio Cesare

    consiste nella sostituzione di ogni lettera di unmessaggio con la lettera che la segue di 3 posizioninellalfabeto

    si considera lordinamento circolare dellalfabeto (la Asegue la Z)

    ad esempio: INFORMATICA diventa LQIRUPDWLFD

    unovvia variante del cifrario di Cesare consiste nelconsiderare un numero segreto n compreso tra 1e 25, invece di usare sempre il 3

  • 7/29/2019 D02 Introduzione Alla Crittografia

    18/106

    Codici segreti (cifrari)

    Ovviamente, decifrare dei messaggi risulta moltosemplice se si certi che usato questo cifrario, e

    se si in grado di riconoscere il testo decifrato

    basta fare pochi tentativi (al pi 25) perindividuare il numero segreto n ed ottenere ilmessaggio originale

    successivamente fu introdotto il cifrariomonoalfabeticoche consiste nellapplicare unmapping arbitrario di una lettera in unaltra si basa sulla scelta di una biiezione segreta sullinsieme

    delle lettere alfabetiche

  • 7/29/2019 D02 Introduzione Alla Crittografia

    19/106

    Codici segreti (cifrari)

    Teoricamente, per decifrare un messaggio sononecessari, nel caso peggiore, 26! 4 1026tentativi

    Assumendo 1S per tentativo sono necessari 10 trilionidi anni (1013 anni)

    Tuttavia, applicando tecniche statistiche di analisidei linguaggi (alcune lettere e combinazioni di

    lettere sono pi probabili di altre) risultaabbastanza facile decifrare i messaggi cifrati

  • 7/29/2019 D02 Introduzione Alla Crittografia

    20/106

    Codici segreti (cifrari)

    Con lavvento dei computer, lintroduzione di

    schemi di cifratura pi sofisticati

    da un lato stata resa necessaria

    un computer permette di automatizzare gli approccibrute force dei crittoanalisti

    dallaltro stata resa possibile

    un computer pu eseguire un algoritmo di cifraturacomplesso in tempi veloci e senza errori

  • 7/29/2019 D02 Introduzione Alla Crittografia

    21/106

    VIOLARE UNO SCHEMA DICRITTOGRAFIA

    Introduzione alla Crittografia

  • 7/29/2019 D02 Introduzione Alla Crittografia

    22/106

    Tipologie di attacchi

    Si possono distinguere tre tipi di attacchi baseper violare uno schema di crittografia solo testo cifrato (ciphertextonly)

    testo in chiaro conosciuto (known plaintext) testo in chiaro selezionato (chosen plaintext)

    Altri due tipi di attacco meno frequenti sono testo cifrato selezionato (chosen ciphertext)

    testo selezionato (chosen text)

  • 7/29/2019 D02 Introduzione Alla Crittografia

    23/106

    Solo testo cifrato (ciphertext only)

    Scenario

    Fred, il cattivo ragazzo, ha ottenuto il testo cifrato diun messaggio che Alice ha inviato a Bob nellambito di

    una comunicazione cifrata con una chiave segreta Fred pu analizzare con comodo il testo cifrato

    in genere, non difficile ottenere il testo cifrato

    se fosse impossibile non si avrebbe la necessit di cifrare i

    messaggi!

    Domanda

    come pu Fred risalire al testo in chiaro se disponesoltanto del testo cifrato?

  • 7/29/2019 D02 Introduzione Alla Crittografia

    24/106

    Solo testo cifrato (ciphertext only)

    Risposta 1 Fred pu seguire un approccio di tipo brute force:

    considera tutte le chiavi,

    per ogni chiave decripta il testo cifrato, e

    verifica se il testo decifrato un messaggio verosimile

    tale approccio pu funzionare solo se Fred in gradodi riconoscere il testo in chiaro originale, cio una volta decriptato il testo cifrato deve poter dire, con

    elevata probabilit, se quanto ottenuto il messaggio diAlice

    tale attacco anche noto come testo in chiaro riconoscibile(recognizable plaintext)

  • 7/29/2019 D02 Introduzione Alla Crittografia

    25/106

    Solo testo cifrato (ciphertext only)

    Riguardo la riconoscibilit del testo in chiarovalgono le seguenti osservazioni

    molto improbabile che una chiave di decifratura

    errata permetta di ottenere un messaggioverosimile

    essenziale avere abbastanza testo cifrato

    si consideri ad esempio il cifrario monoalfabetico, selunico testo cifrato di cui si dispone XYZ non cabbastanza informazione,

    il testo in chiaro corrispondente potrebbe essere THE,

    CAT, HAT, etc.

  • 7/29/2019 D02 Introduzione Alla Crittografia

    26/106

    Solo testo cifrato (ciphertext only)

    Risposta 2

    in alcuni casi, si potrebbe tentare un approccio aforza bruta computazionalmente meno costoso

    se la chiave viene generata con tecniche note a partireda un input segreto, conviene applicare un approccioesaustivo su tale input

    non di rado la chiave di cifratura viene generata a

    partire dalla password dutente applicando unalgoritmo noto; cos avviene nello schema diautenticazione Kerberos che usa una cifratura DES

  • 7/29/2019 D02 Introduzione Alla Crittografia

    27/106

    Solo testo cifrato (ciphertext only)

    se la password viene scelta in modo avventato (una paroladel dizionario) anzich scandire uno spazio di 256 chiavi sufficiente scandire uno spazio di circa 10000 parole

    Un algoritmo di crittografia deve SEMPRE esseresicuro contro attacchi di tipo ciphertext only

    il testo cifrato sempre facilmente intercettabile e

    ottenibile in molti casi i crittoanalisti possono disporre di informazioni

    aggiuntive e sferrare degli attacchi pi forti, come illustratonelle prossime slide

  • 7/29/2019 D02 Introduzione Alla Crittografia

    28/106

    Testo in chiaro conosciuto (known plaintext)

    Scenario Fred ha in qualche modo ottenuto alcune coppieplaintext, ciphertext relative ad una o picomunicazioni cifrata tra Alice e Bob (con stesso

    schema e chiave) dati segreti non rimangono segreti in eterno (se un

    messaggio conteneva la prossima citt da attaccare una voltaavvenuto lattacco )

    nel caso di cifrario monoalfabetico, una piccolaquantit di testo in chiaro conosciuto vale una fortuna si dedurrebbe in modo immediato il mapping segreto di

    tutte le lettere del testo in chiaro

  • 7/29/2019 D02 Introduzione Alla Crittografia

    29/106

    Testo in chiaro conosciuto (known plaintext)

    Alcuni schemi di crittografia potrebberoessere

    molto resistenti ad attacchi di tipo ciphertext only,

    ma rivelarsi vulnerabili ad attacchi di tipo knownplaintext

    un sistema che impiega un algoritmo di crittografiavulnerabile ad attacchi di tipo known plaintext,

    deve essere progettato in modo tale da prevenire il pipossibile lottenimento di coppie plaintext, ciphertext

  • 7/29/2019 D02 Introduzione Alla Crittografia

    30/106

    Testo in chiaro selezionato (chosen plaintext)

    Scenario

    Fred pu scegliere a piacimento il testo in chiaroed ottenere il corrispondente testo cifrato

    con lo stesso schema e chiave usati nellacomunicazione cifrata tra Alice e Bob

    Come possibile ottenere coppie plaintext,ciphertext con testo in chiaro scelto dalcrittoanalista? un servizio di comunicazione potrebbe sbadatamente

    usare la stessa chiave per ogni messaggio inviato (perogni coppia mittente destinatario)

  • 7/29/2019 D02 Introduzione Alla Crittografia

    31/106

    Testo in chiaro selezionato (chosen plaintext)

    se Alice usa tale servizio, pure Fred potrebbe usarlodecidendo di inviare un messaggio (cifrato) a se stesso

    se il servizio usa un cifrario monoalfabetico, Fred potrebbeinviarsi il seguente messaggio:

    The quick brown fox jumps over the lazy dogottenendo la biiezione segreta in modo immediato

    se il servizio di comunicazione usa uno schema di crittografiapi evoluto, potrebbe essere ancora vulnerabile se Fred ha

    unelevata conoscenza a priori del contenuto del messaggiodi Alice, ad esempio Fred potrebbe aspettarsi o il messaggioSurrender o il messaggio Fight on,

    pu quindi inviarsi entrambi i messaggi e confrontare le loroversioni cifrate con quelle del messaggio cifrato di Alice

  • 7/29/2019 D02 Introduzione Alla Crittografia

    32/106

    Testo in chiaro selezionato (chosen plaintext)

    possibile che un sistema crittografico sia sicurocontro attacchi di tipo ciphertext onlye known

    plaintext, ma sia vulnerabile ad attacchi di tipo

    chosen plaintext un sistema crittografico dovrebbe resistere a tutti

    e tre i tipi di attacco

    in questo caso si avrebbe la massima protezione,

    non sempre cos, solitamente un algoritmo dicifratura progettato per resistere ad attacchi di tipociphertext only

  • 7/29/2019 D02 Introduzione Alla Crittografia

    33/106

    Tipologie di attacchi (tabella riassuntiva)

    Tipologia di attacco Informazioni in possesso del crittoanalista

    Solo testo cifrato Algoritmo di cifratura Testo cifrato da decifrare

    Testo in chiaro conosciuto

    Algoritmo di cifratura Testo cifrato da decifrare Uno o pi testi in chiaro e corrispondenti testi cifrati

    Testo in chiaro selezionato

    Algoritmo di cifratura Testo cifrato da decifrare Testo in chiaro scelto dal crittoanalista e corrispondente testo cifrato

    Testo cifrato selezionato

    Algoritmo di cifratura Testo cifrato da decifrare Testo cifrato, con significato, scelto dal crittoanalista e

    corrispondente testo in chiaro

    Testo selezionato

    Algoritmo di cifratura Testo cifrato da decifrare Testo in chiaro scelto dal crittoanalista e corrispondente testo cifrato Testo cifrato, con significato, scelto dal crittoanalista e

    corrispondente testo in chiaro

  • 7/29/2019 D02 Introduzione Alla Crittografia

    34/106

    Sistema computazionalmente sicuro

    Un sistema di cifratura computazionalmentesicuro se il testo cifrato generato soddisfa uno deiseguenti requisiti:

    il costo per rendere inefficace il cifrario supera ilvalore dellinformazione cifrata;

    il tempo richiesto per rendere inefficace il cifrariosupera larco temporale in cui linformazione ha unaqualche utilit

    Si noti che stimare lo sforzo computazionale richiesto per

    effettuare con successo la crittoanalisi del testo cifrato molto difficile

  • 7/29/2019 D02 Introduzione Alla Crittografia

    35/106

    Sistema computazionalmente sicuro

    il tempo richiesto per un approccio a forza bruta fornisce soltanto un limite superiore, ed

    realistico solo se lalgoritmo non presenta delledebolezze intrinseche di tipo matematico; in questo

    caso si possono effettuare stime ragionevoli su tempi ecosti

    in un approccio a forza bruta mediamente sidevono provare met di tutte le possibili chiavi

    si consulti la tabella della slide successiva

  • 7/29/2019 D02 Introduzione Alla Crittografia

    36/106

    Tempo medio per una ricerca esaustiva

    Key Size (bits) Number ofAlternative Keys

    Time required at 1

    decryption/sTime required at 106

    decryptions/s

    32 232 = 4.3 109 231 s = 35.8 minutes 2.15 milliseconds

    56 256 = 7.2 1016 255 s = 1142 years 10.01 hours

    128 2128 = 3.4 1038 2127 s = 5.4 1024 years 5.4 1018 years

    168 2168 = 3.7 1050 2167 s = 5.9 1036 years 5.9 1030 years

    26 characters(permutation)

    26! = 4 1026 2 1026 s = 6.4 1012 years 6.4 106 years

  • 7/29/2019 D02 Introduzione Alla Crittografia

    37/106

    TIPI DI FUNZIONI CRITTOGRAFICHE

    Introduzione alla Crittografia

  • 7/29/2019 D02 Introduzione Alla Crittografia

    38/106

    Tipi di funzioni crittografiche

    Ci sono tre tipi di funzioni crittografiche

    funzioni a chiave pubblica (public key functions)

    richiedono luso di due chiavi

    funzioni a chiave segreta (secret key functions) richiedono luso di una sola chiave

    funzioni hash (hash functions)

    non usano alcuna chiave a cosa pu servire un algoritmo di cifratura noto a tutti

    e che non usa chiavi?

  • 7/29/2019 D02 Introduzione Alla Crittografia

    39/106

    CRITTOGRAFIA A CHIAVE SEGRETA(SECRET KEY CRYPTOGARPHY)

    Introduzione alla Crittografia

  • 7/29/2019 D02 Introduzione Alla Crittografia

    40/106

    Crittografia a chiave segreta

    La crittografia a chiavesegretarichiede lusodi una sola chiave

    dato un messaggio (il testo in chiaro) e la chiave,

    la cifratura produce dati non intellegibili (il testocifrato)

    il testo cifrato ha circa la stessa lunghezza di quello

    in chiaro la decifratura linverso della cifratura, ed usa la

    stessa chiave

  • 7/29/2019 D02 Introduzione Alla Crittografia

    41/106

    Crittografia a chiave segreta

    La crittografia a chiave segreta talvoltachiamata crittografia convenzionale o crittografiasimmetrica

    il cifrario monoalfabetico un esempio di algoritmo achiave simmetrica, sebbene sia facile da violare

    ENCRYPTION DECRYPTION

    PLAINTEXT PLAINTEXTCIPHERTEXT

    KEY

  • 7/29/2019 D02 Introduzione Alla Crittografia

    42/106

    Crittografia a chiave segreta Impieghi

    Gli impieghi della crittografia a chiave segretasono

    comunicazioni su un canale insicuro (uso classico)

    memorizzazione sicura su un supporto insicuro

    autenticazione

    controllo di integrit

  • 7/29/2019 D02 Introduzione Alla Crittografia

    43/106

    Comunicazioni su un canale insicuro

    Spesso impossibile evitare che due entitcomunicanti possano essere ascoltate da unaterza parte,

    la crittografia a chiave segreta permette a dueentit che condividono un segreto (la chiave),

    di comunicare su un mezzo insicuro

    non garantita lassenza di intercettazioni/ascoltatori senza preoccuparsi di eventuali ascoltatori

  • 7/29/2019 D02 Introduzione Alla Crittografia

    44/106

    Memorizzazione sicura

    Si supponga di disporre di un supporto dimemorizzazione non protetto

    se si desidera salvare dei dati in forma sicura

    che non consente ad una terza parte di ottenerli

    si pu inventare una chiave segreta e salvare i datiin forma crittata

    chiaramente, se si dimentica la chiave i dati sonoirrevocabilmente persi

  • 7/29/2019 D02 Introduzione Alla Crittografia

    45/106

    Autenticazione

    Nei film di spionaggio, quando due agenti che non

    si conoscono devono incontrarsi, usano una parola

    o frase segreta per riconoscersi ci ha il seguente svantaggio: se qualcuno ascolta la

    loro conversazione o tenta di iniziarne una falsa, pu

    ottenere informazioni utili per impersonare

    successivamente uno degli agenti

  • 7/29/2019 D02 Introduzione Alla Crittografia

    46/106

    Autenticazione forte

    Il termine autenticazioneforte (strongauthentication) significa che si in grado diprovare la conoscenza di un segreto senza

    rivelarlo lautenticazione forte possibile con la crittografia

    particolarmente utile quando due computer devonocomunicare su una rete insicura

    Si supponga che Alice e Bob condividano unachiave segreta KAB e che vogliano autenticarsi

    cio ciascuno vuole accertarsi dellidentit dellaltro

  • 7/29/2019 D02 Introduzione Alla Crittografia

    47/106

    Autenticazione

    Bob e Alice scelgono ciascuno un numero random,noto come sfida (challenge),

    Alice sceglie il numero random rA

    Bob sceglie il numero random rB il valorexcifrato con la chiave KAB noto come la

    risposta alla sfidax; cio E(KAB,x) la risposta adx

    la slide seguente mostra come Alice e Bob usano

    sfide e risposte per autenticarsi

  • 7/29/2019 D02 Introduzione Alla Crittografia

    48/106

    Possibile schema di autenticazione

    Alice Bob

    rA

    E(KAB, rA)

    rB

    E(KAB, rB)

  • 7/29/2019 D02 Introduzione Alla Crittografia

    49/106

    Possibile schema di autenticazione

    Assunzione Alice e Bob sono le uniche persone (o macchine) che

    condividono la chiave segreta KAB

    Procedura di autenticazione Alice genera un numero random rA (la sfida) e la invia al

    presunto Bob il presunto Bob critta la sfida con la sua chiave segreta K?e

    restituisce ad Alice la risposta E(K?, rA)

    Alice riceve la risposta del presunto Bob e la decritta con lachiave KAB cio calcola D(KAB, E(K?, rA)) se ottiene rA, cio se D(KAB, E(K?, rA)) = rA, allora il presunto Bob

    realmente Bob poich K?= KAB altrimenti il presunto Bob un impostore

  • 7/29/2019 D02 Introduzione Alla Crittografia

    50/106

    Possibile schema di autenticazione

    In modo analogo Bob verifica lidentit di Alice Bob genera un numero random rB (la sfida) e lo invia

    alla presunta Alice

    la presunta Alice critta la sfida con la sua chiavesegreta K?e restituisce a Bob la risposta E(K?, rB)

    Bob riceve la risposta della presunta Alice e la decrittacon la chiave KAB cio calcola D(KAB, E(K?, rB))

    se ottiene rB, cio se D(KAB, E(K?, rB)) = rB, allora la presuntaAlice realmente Alice poich K?= KAB

    altrimenti la presunta Alice un impostore

  • 7/29/2019 D02 Introduzione Alla Crittografia

    51/106

    Test di sicurezza

    Proviamo a testare la sicurezza dello schema diautenticazione appena proposto

    In particolare, un impostore, diciamo Fred,potrebbe seguire una strategia a due fasi:

    1. impersonando Alice potrebbe ottenere alcune

    informazioni nellautenticarsi con Bob2. impersonando Bob e utilizzando le informazioni di

    cui sopra, potrebbe riuscire ad autenticarsi con Alice

  • 7/29/2019 D02 Introduzione Alla Crittografia

    52/106

    Test di sicurezza

    Pi precisamente, se Fred stesse impersonando Alice,

    potrebbe ottenere dal presunto Bob la risposta E(K?,rA*) ad una sua sfida rA*,

    Fred non pu essere certo che il presunto Bob sia realmenteBob, se cos fosse allora K?= KAB

    ma conoscere E(K?, rA*) non aiuterebbe Fred adimpersonare Bob nellautenticazione con Alice reale

    anche se fosse K?

    = KAB

    ,

    la conoscenza di E(KAB, rA*) non sufficiente; la sfida rA chegenera Alice con elevata probabilit diversa da rA*

  • 7/29/2019 D02 Introduzione Alla Crittografia

    53/106

    Osservazioni

    Possiamo concludere che se Alice e Bob completano con successo lo

    scambio di informazioni,

    ciascuno ha provato allaltro la conoscenza dellachiave segreta KAB senza rivelarla ad un impostore e/o ascoltatore

  • 7/29/2019 D02 Introduzione Alla Crittografia

    54/106

    Osservazioni

    Tuttavia, risulta anche che possibile per Fred ottenere delle coppie

    chosen plaintext, ciphertext

    Fred pu affermare di essere Bob (Alice) e chiedere adAlice (Bob) di cifrare una sfida

    quindi essenziale che le sfide siano scelte da unospazio sufficientemente grande, ad esempio 264valori

    in questo modo risulta estremamente improbabile chevenga generata la stessa sfida

  • 7/29/2019 D02 Introduzione Alla Crittografia

    55/106

    Domanda

    Il precedente test di sicurezza completo? esiste un metodo computazionalmente semplice

    per violare lo schema di autenticazione?

  • 7/29/2019 D02 Introduzione Alla Crittografia

    56/106

    Controllo di integrit

    La crittografia a chiave segreta pu servire a generarecodici (somme) di controllo cifrati a lunghezza fissa fixed-length cryptographic checksum

    uso poco intuitivo della tecnologia a chiave segreta!

    Un checksum ordinario (non cifrato) serve aproteggere i messaggi da eventuali corruzioni; cio averificarne lintegrit la parola checksum deriva dal procedimento seguito per

    ottenere il codice di controllo1. scomposizione di un messaggio in blocchi di lunghezza fissa (ad

    esempio parole da 32 bit)

    2. somma bit a bit dei blocchi (OR oppureXOR)

  • 7/29/2019 D02 Introduzione Alla Crittografia

    57/106

    Confronto di checksum

    La sorgente del messaggio ms rendepubblico/invia il corrispondente checksumc(ms)

    Chi riceve il messaggio mrcalcola il checksume confronta se vale luguaglianza c(ms) = c(mr) se c(ms) = c(mr) conclude che ms = mr

    anche se potrebbero esserci degli errori che sicompensano,

    cio potrebbe darsi che ms mre che risulti comunquec(ms) = c(mr)

  • 7/29/2019 D02 Introduzione Alla Crittografia

    58/106

    Checksum non segreti

    I codici di controllo servono per proteggerelhardware da difetti e da inevitabili errori/guasti

    esistono dei codici di controllo molto pi sofisticati

    (codici CRC Controllo a Ridondanza Ciclica) tali che se ms mrallora quasi certo che c(ms) c(mr), cio

    estremamente improbabile che sia c(ms) = c(mr)

    ma non sono utilizzabili per la protezione contro

    attacchi intelligenti essendo pubblici un avversario che vuole cambiare un

    messaggio potrebbe modificare anche il codice di controllo

  • 7/29/2019 D02 Introduzione Alla Crittografia

    59/106

    Checksum segreto

    Per la protezione contro modifiche maliziose adun messaggio, richiesto un codice di controllo(checksum) segreto

    se lalgoritmo non noto nessuno pu calcolare ilchecksum corretto per il messaggio modificato

    chiaramente, come nel caso degli algoritmi dicifratura, anzich un algoritmo segreto conviene avere

    un algoritmo per il calcolo del checksum noto a tutti, chesfrutta una chiave segreta per calcolare il checksum di unmessaggio

    in ci consiste appunto un checksumcifrato

  • 7/29/2019 D02 Introduzione Alla Crittografia

    60/106

    MICMessage Integrity Code

    Data una chiave Ke un messaggio m, lalgoritmo produce un codice di autenticazione di

    lunghezza fissa c(K, m)

    fixed-length MAC Message Authentication Code, o fixed-length MIC Message Integrity Code

    il codice MIC c(K, m) viene trasmesso insieme almessaggio m stesso

  • 7/29/2019 D02 Introduzione Alla Crittografia

    61/106

    MICMessage Integrity Code

    Se un avversario volesse modificare ilmessaggio m in m

    dovrebbe anche calcolare il codice MIC c(K, m)

    generalmente un codice MIC ha una lunghezza dialmeno 48 bit

    la possibilit di ottenere il MIC corretto una su 280trilioni (1 trilione = 1012)

  • 7/29/2019 D02 Introduzione Alla Crittografia

    62/106

    CRITTOGRAFIA A CHIAVE PUBBLICA(PUBLIC KEY CRYPTOGARPHY)

    Introduzione alla Crittografia

  • 7/29/2019 D02 Introduzione Alla Crittografia

    63/106

    Crittografia a chiave pubblica

    La crittografia a chiavepubblica (publickeycryptogarphy); talvolta detta anche crittografiaasimmetrica (asymmetric cryptography)

    fu pubblicamente introdotta nel 1975 alcune voci sostengono che lNSA gi la utilizzasse

    diversamente dalla crittografia a chiave segreta NONPREVEDE la condivisione delle chiavi, ma

    ogni individuo ha due chiavi una chiave privata da NON RIVELARE a nessuno

    una chiave pubblica da rivelare preferibilmente a tutto ilmondo

  • 7/29/2019 D02 Introduzione Alla Crittografia

    64/106

    Terminologia e notazione

    Per convenzione non si user il terminechiave segreta in luogo di chiave privata

    in base allaggettivo della chiave sar immediato

    risalire allo schema di crittografia usato chiave segreta denota linformazione segreta

    condivisa in uno schema di crittografia a chiave segreta

    chiave privata denota la chiave che non deve essere

    resa pubblica in uno schema di crittografia a chiavepubblica

    chiave pubblica denota la chiave da divulgare in uno

    schema di crittografia a chiave pubblica

  • 7/29/2019 D02 Introduzione Alla Crittografia

    65/106

    Terminologia e notazione

    Si user la seguente notazione PU rappresenta la chiave PUbblica

    ad esempio PUB indica la chiave pubblica di Bob

    PR rappresenta la chiave PRivata ad esempio PRB indica la chiave privata di Bob

    ENCRYPTION DECRYPTION

    PLAINTEXT PLAINTEXTCIPHERTEXT

    PU

    PUBLIC KEY

    PR

    PRIVATE KEY

  • 7/29/2019 D02 Introduzione Alla Crittografia

    66/106

    Schema di cifratura a chiave pubblica

    La figura sotto mostra uno schema di cifratura achiave pubblica cifratura e decifratura sono due funzioni matematiche

    che sono luna linverso dellaltra

    m = D(PR, E(PU, m))

    ENCRYPTION DECRYPTION

    PLAINTEXT PLAINTEXTCIPHERTEXT

    PU

    PUBLIC KEY

    PR

    PRIVATE KEY

    E(PU, m)m D(PR, E(PU, m))

  • 7/29/2019 D02 Introduzione Alla Crittografia

    67/106

    Firma digitale (a chiave pubblica)

    La tecnologia a chiave pubblica consente anche digenerare una firmadigitale su un messaggio

    basta invertire il ruolo delle chiavi

    m = D(PU, E(PR, m))

    ENCRYPTION DECRYPTION

    PLAINTEXT PLAINTEXTSIGNED MESSAGE

    PR

    PRIVATE KEY

    PU

    PUBLIC KEY

    SIGNING VERIFICATION

    S(PR, m)

    E(PR, m)m

    V(PU, E(PR, m))

    D(PU, E(PR, m))

  • 7/29/2019 D02 Introduzione Alla Crittografia

    68/106

    Firma digitale (a chiave pubblica)

    Una firmadigitale (digitalsignature) unnumero associato ad un messaggio una sorta di checksum o MAC, ma diversamente

    da un checksum, che pu essere generato da tutti, una firma digitale pu essere generata soltanto da

    chi conosce la chiave privata PR

    una firma a chiave pubblica differisce da un MAC a

    chiave segreta la verifica di un MAC richiede la conoscenza dello stesso

    segreto (chiave segreta) usato per crearlo

    quindi chi pu verificare un MAC pu anche generarlo esostituirsi alla sorgente iniziale

  • 7/29/2019 D02 Introduzione Alla Crittografia

    69/106

    Firma digitale (a chiave pubblica)

    invece, nel caso della firma a chiave pubblica,

    la verifica della firma richiede soltanto la conoscenzadella chiave pubblica PU

    Alice pu firmare un messaggio generando una firma chesolo lei pu generare, in quanto usa la sua chiave privata PRA

    chiunque altro pu verificare se quella generata realmentela firma di Alice (basta usare la chiave pubblica di Alice PUA),ma non pu falsificarla

    si parla di firma digitale perch condivide con latradizionale firma manuale la propriet di poteressere riconosciuta autentica senza poter esserefalsificata

  • 7/29/2019 D02 Introduzione Alla Crittografia

    70/106

    Uso della crittografia a chiave pubblica

    La crittografia a chiave pubblica pu fare tutto ci che la crittografia a chiave segreta

    pu fare comunicazioni su un canale insicuro (uso classico)

    memorizzazione sicura su un supporto insicuro autenticazione

    controllo di integrit

    ma gli attuali algoritmi crittografici a chiave pubblica

    sono di alcuni ordini di grandezza pi lenti deimigliori algoritmi a chiave segreta,

    viene pertanto utilizzata in congiunzione allacrittografia a chiave privata

  • 7/29/2019 D02 Introduzione Alla Crittografia

    71/106

    Uso della crittografia a chiave pubblica

    agevola la configurazione/gestione della sicurezzadi una rete

    potrebbe usarsi allinizio di una comunicazione in fase

    di autenticazione, e

    per stabilire una chiave segreta temporanea,

    che a sua volta (per motivi di efficienza) pu essereusata per cifrare il resto della comunicazione

    ad esempio, si supponga che Alice voglia parlare conBob, Alice pu usare la chiave pubblica di Bob PUB percifrare una chiave segreta (che genera) KAB

    poi pu usare la chiave segreta KAB per cifrarequalunque messaggio voglia inviare a lui

  • 7/29/2019 D02 Introduzione Alla Crittografia

    72/106

    Uso della crittografia a chiave pubblica

    dato che la chiave segreta KAB molto pi corta di ungenerico messaggio, la sua cifratura a chiave pubblicanon impatta sulle prestazioni

    la chiave KAB generata da Alice pu essere decifrata

    soltanto da Bob, che pu continuare la comunicazioneutilizzando questultima (in uno schema di cifratura a

    chiave segreta) con chiunque abbia inviato il messaggio

    si osservi che usando questo protocollo Bob non pu

    essere certo che sia stata Alice ad inviare il messaggio una soluzione potrebbe essere che Alice invia la chiave

    segreta KAB crittata con la chiave pubblica di Bob PUBdopo averla firmata digitalmente con la sua chiave

    privata PRA

  • 7/29/2019 D02 Introduzione Alla Crittografia

    73/106

    Uso della crittografia a chiave pubblica

    Alice Bob

    E(PUB, KAB)

    gen. KAB

    KAB = D(PRB, E(PUB, KAB))

    E(KAB, mA)

    mA

    mA = D(KAB, E(KAB, mA))

    mA

    E(KAB, mA)

    KAB

    Bob non pu essere certo dicomunicare con Alice

  • 7/29/2019 D02 Introduzione Alla Crittografia

    74/106

    Uso della crittografia a chiave pubblica

    Alice Bob

    E(PUB, KAB)

    gen. KAB

    V(PUA, S(PRA, E(PUB, KAB))) == D(PUA, D(PRB, E(PUB, KAB))) = E(PUB, KAB)

    E(KAB, mA)

    mA

    mA = D(KAB, E(KAB, mA))

    mA

    E(KAB, mA)

    KAB

    Bob pu essere certo dicomunicare con Alice

    Firma digitale S(PRA

    , E(PUB

    , KAB

    )) = E(PRA

    , E(PUB

    , KAB

    ))

    D(PRB, E(PUB, KAB)) = KAB

  • 7/29/2019 D02 Introduzione Alla Crittografia

    75/106

    Comunicazioni su un canale insicuro

    Si supponga che PUA, PRA sia la coppia public key,private key di Alice

    PUB, PRB sia la coppia public key,private key di Bob

    Alice conosce la chiave pubblica di Bob PUB

    Bob conosce la chiave pubblica di Alice PUA si osservi che procurarsi le chiavi pubbliche di altre persone una

    delle principali sfide poste dalla crittografia a chiave pubblica per il momento non ce ne preoccupiamo

    la slide che segue illustra come avviene la comunicazionesu un canale insicuro

  • 7/29/2019 D02 Introduzione Alla Crittografia

    76/106

    Comunicazioni su un canale insicuro

    Alice Bob

    E(PUB, mA)E(PUB, mA)

    D(PRB, E(PUB, mA)) = mA

    E(PUA, mB)E(PUA, mB)

    mB = D(PRA, E(PUA, mB))

  • 7/29/2019 D02 Introduzione Alla Crittografia

    77/106

    Memorizzazione sicura

    Esattamente come avviene nel caso di crittografiaa chiave segreta

    si possono crittare i dati con la chiave pubblica PUX nessuno pu decrittare i dati tranne chi conosce lachiave privata PRX

    tuttavia, per ragioni di efficienza, non conviene cifrare i datidirettamente con la chiave pubblica,

    ma piuttosto conviene generare randomicamente una chiavesegreta KX, e

    crittare i dati con la chiave segreta KX, e

    crittare la chiave segreta con la chiave pubblica E(PUX, KX)

  • 7/29/2019 D02 Introduzione Alla Crittografia

    78/106

    Memorizzazione sicura

    Come nel caso di tecnologia a chiave segreta perdere la chiave privata implica perdere

    irrimediabilmente i dati

    per evitare questo rischio, si pu crittare una copia della

    chiave di cifratura segreta KXcon la chiave pubblica di unapersona fidata PUFidata o memorizzare copie della chiave privata PRXpresso una

    persona fidata

    Si noti che la tecnologia a chiave pubblica offre unchiaro vantaggio rispetto quella a chiave segreta Alice pu cifrare un messaggio per Bob senza conoscere la

    sua chiave di decifratura

  • 7/29/2019 D02 Introduzione Alla Crittografia

    79/106

    Autenticazione

    La tecnologia a chiave segreta presenta i seguentisvantaggi:

    Alice e Bob per poter autenticarsi devono condividere

    un segreto se Bob deve provare la sua identit a molte entit,

    allora deve mantenere molte chiavi segrete

    una chiave segreta per ogni entit alla quale deve provare la

    sua identit potrebbe anche usare la stessa chiave segreta con Alice e

    Carol, ma ci comporterebbe che Alice e Carol potrebberoimpersonare Bob in una comunicazione tra loro due

  • 7/29/2019 D02 Introduzione Alla Crittografia

    80/106

    Autenticazione

    La tecnologia a chiave pubblica semplificanotevolmente la gestione dei segreti Bob deve soltanto ricordare un singolo segreto: la

    sua chiave privata

    chiaramente, deve anche mantenere/otteneretutte le chiavi pubbliche delle entit di cuidesidera verificare lidentit

    potrebbero essere anche migliaia di chiavi pubbliche la gestione delle chiavi pubbliche sar discussa in

    seguito

    S h di i i

  • 7/29/2019 D02 Introduzione Alla Crittografia

    81/106

    Schema di autenticazione

    Assunzione Alice conosce la chiave pubblica di Bob PUB la chiave privata di Bob PRB conosciuta soltanto da Bob

    Bob conosce la chiave pubblica di Alice PUA la chiave privata di Alice PRA conosciuta soltanto da Alice

    Procedura di autenticazione Alice verifica lidentit di Bob

    Bob verifica lidentit di Alice

    Ali ifi lid i di B b

  • 7/29/2019 D02 Introduzione Alla Crittografia

    82/106

    Alice verifica lidentit di Bob

    Alice Bob

    rA

    gen. rA

    E(PUB, rA)

    D(PRB, E(PUB, rA)) = rA

    Ali ifi lid i di B b

  • 7/29/2019 D02 Introduzione Alla Crittografia

    83/106

    Alice verifica lidentit di Bob

    Usando la tecnologia a chiave pubblica Alice puverificare lidentit di Bob come segue: Alice estrae un numero random rA (la sfida)

    Alice critta rA

    con la chiave pubblica di Bob e invia ilrisultato E(PUB, rA) a Bob

    Bob dimostra la sua identit mostrando che conoscela sua chiave privata PRB, ovvero decritta E(PUB, rA)riottenendo rA = D(PRB, E(PUB, rA))

    Bob rispedisce indietro ad Alice la sfida rA Alice ha la prova che il suo interlocutore realmente

    Bob

    Al i

  • 7/29/2019 D02 Introduzione Alla Crittografia

    84/106

    Altro vantaggio

    Un altro vantaggio dellautenticazione a chiavepubblica che Alice non deve mantenere alcunainformazione segreta per verificare Bob Alice potrebbe essere un computer i cui backup sono in

    chiaro e incustoditi nellautenticazione a chiave segreta se Carol ruba un

    backup e legge una chiave segreta condivisa tra Alice e Bob

    pu fingersi Alice in una comunicazione con Bob o viceversa

    Invece, nel caso di autenticazione a chiave pubblica i backup di Alice contengono soltanto chiavi pubbliche

    (quella privata va custodita in modo diverso) nonpossono consentire di impersonare Bob

    Fi di it l

  • 7/29/2019 D02 Introduzione Alla Crittografia

    85/106

    Firma digitale

    Spesso utile provare che un messaggio stato generato da un particolare individuo

    ci semplice con la tecnologia a chiave pubblica

    la firma di Bob per un messaggio m pu esseregenerata soltanto da chi conosce la chiave privatadi Bob PRB, e

    la firma dipende anche dal contenuto di m

    se il messaggio viene modificato in qualche modo,

    la corrispondenza con la firma viene persa

    Fi di it l

  • 7/29/2019 D02 Introduzione Alla Crittografia

    86/106

    Firma digitale

    Pertanto, le firme digitali hanno una duplice funzione provano CHI ha generato linformazione,

    provano che linformazione non stata modificata in alcunmodo dal momento in cui il messaggio e la corrispondente

    firma furono generati

    Inoltre, le firme digitali offrono un vantaggioimportante rispetto ai checksum crittografici a chiave

    segreta (cio i MAC/MIC): garantiscono il requisito del non-ripudio (non-repudiation)

    N i di

  • 7/29/2019 D02 Introduzione Alla Crittografia

    87/106

    Non-ripudio

    Obiettivo del non-ripudio impedire che ilmittente o il destinatario neghino che sia statotrasmesso un messaggio

    il destinatario pu provare che il messaggio statoinviato dal presunto mittente (non ripudio dellasorgente o del mittente)

    il mittente pu provare che il messaggio statoeffettivamente ricevuto dal presunto destinatario(non ripudio del destinatario)

    N i di i

  • 7/29/2019 D02 Introduzione Alla Crittografia

    88/106

    Non ripudio esempio

    Si supponga che Bob venda articoli che Alicesolitamente compra la procedura di vendita prevede che Alice deve prima

    inviare a Bob, via servizio postale, un ordine di acquisto da

    lei firmato per snellire la procedura Alice e Bob decidono di usare

    lemail per la spedizione degli ordini di acquisto

    per evitare falsificazioni Alice include in ogni email un MIC(Message Integrity Code)

    per evitare che qualcuno ordini degli articoli dichiarandosi Alice

    il MIC potrebbe essere o un MAC che sfrutta una chiave segreta MIC = c(KAB, ordine)

    o una firma digitale a chiave pubblica MIC = S(PRA, ordine)

    N i di i

  • 7/29/2019 D02 Introduzione Alla Crittografia

    89/106

    Non ripudio esempio

    si supponga che Alice richieda un articolo digrande valore, ma subito dopo cambi idea per un qualunque motivo

    visto che la cancellazione dellordine prevede una

    penale considerevole, Alice anzich cancellarelordine preferisce negare di averlo piazzato

    Bob le fa causa se il MIC era stato ottenuto con una chiave segreta KAB

    Bob certo che Alice sta truffando (oltre a lui solo leiconosce KAB), ma non pu provarlo in tribunale

    Alice potrebbe sostenere che stato lui stesso adordinarsi larticolo di valore!

    N i di i

  • 7/29/2019 D02 Introduzione Alla Crittografia

    90/106

    Non ripudio esempio

    invece, se il MIC era stato ottenuto con una tecnologiaa chiave pubblica MIC = S(PRA, ordine)

    Bob pu mostrare lordine firmato al giudice e il giudicepu verificare che la firma quella di Alice

    Alice potrebbe sostenere che qualcuno ha rubato la suachiave privata

    tuttavia il contratto stipulato tra Alice e Bob potrebbeprevedere che eventuali danni che Bob subisce causa losmarrimento della chiave privata PRA siano a carico di

    Alice il vantaggio della tecnologia a chiave pubblica

    che Alice pu cifrare un messaggio per Bob senzaconoscere la sua chiave di decifratura

  • 7/29/2019 D02 Introduzione Alla Crittografia

    91/106

    ALGORITMI DI HASH(CRITTOGRAFICI)

    Introduzione alla Crittografia

    Algoritmi di hash (crittografici)

  • 7/29/2019 D02 Introduzione Alla Crittografia

    92/106

    Algoritmi di hash (crittografici)

    Noti anche come algoritmi di digest o one-waytransformation

    Una funzione di hashcrittografica unatrasformazione matematica che

    prende in input un messaggio m di lunghezza arbitraria(codificato in una stringa di bit), e

    calcola un numero h(m), loutput, avente una lunghezzafissa prestabilita

    h(m) dipende dal messaggio

    la lunghezza (numero di bit) del numero h(m) fissa

    h : {0, 1}* {0, 1}b b: numero di bit delloutput

    F i i di h h itt fi h P i t

  • 7/29/2019 D02 Introduzione Alla Crittografia

    93/106

    Funzioni di hash crittografiche Propriet

    1) Per ogni messaggio m, relativamente facile calcolare h(m) non si tratta di unoperazione computazionalmente dispendiosa

    2) Noto h(m), non c modo di calcolare un messaggio il cuihash sia h(m) lunico approccio noto quella di tipo brute force

    3) Sebbene sia ovvio che molti valori distinti di m ammettanolo stesso hash h(m) poich lo spazio {0, 1}* molto pi grande di {0, 1}b

    computazionalmente impraticabile trovare due valoriaventi il medesimo hash

    Idea base per una funzione hash

  • 7/29/2019 D02 Introduzione Alla Crittografia

    94/106

    Idea base per una funzione hash

    Un possibile approccio per il calcolo di unafunzione hash il seguente

    dato un messaggio m, interpretare la codifica

    binaria di m come un numero intero, sommare ad m alcune grandi costanti intere,

    elevare al quadrato il tutto,

    lhash h(m) il numero ottenuto considerando len cifre centrali

    Idea base per una funzione hash

  • 7/29/2019 D02 Introduzione Alla Crittografia

    95/106

    Idea base per una funzione hash

    Si osservi che h(m) calcolabile efficientemente a partire da m

    non chiaro come sia possibile

    trovare un messaggio avente uno specifico hash trovare due messaggi aventi lo stesso hash

    tuttavia si pu dimostrare che quello appenadescritto non un buon algoritmo di digest

    lidea base di una buona funzione di digest comunquela stessa: linput strapazzato cos tanto da rendere

    proibitiva linversione

    Funzioni hash e password

  • 7/29/2019 D02 Introduzione Alla Crittografia

    96/106

    Funzioni hash e password

    Spesso un sistema deve verificare le password deisuoi utenti se tutte le password sono memorizzate in chiaro,

    tutti coloro che hanno accesso al sistema

    (amministratori, tecnici, etc.) possono rubare lepassword

    fortunatamente, non necessario conoscere unapassword per verificarla! A proper password is like pornography. You can't tell what it

    is, but you know it when you see it.

    invece delle password in chiaro un sistema potrebbememorizzare lhash delle password

    Funzioni hash e password

  • 7/29/2019 D02 Introduzione Alla Crittografia

    97/106

    Funzioni hash e password

    per verificare una password dutentep, il sistema calcola prima lhash della password h(p)

    e verifica se h(p) coincide con lhash memorizzato perquellutente,

    se coincidono la password considerata corretta se un avversario ottiene il file (relazione db) con

    lelenco delle password dutente,

    non pu usarlo in modo immediato perch la

    funzione di hash non invertibile addirittura in passato lelenco contenente lhash delle

    password stato in alcuni casi reso pubblico; era unmodo per ostentare sicurezza da NON IMITARE

    Funzioni hash e password

  • 7/29/2019 D02 Introduzione Alla Crittografia

    98/106

    Funzioni hash e password

    infatti, anche se la funzione di hash non presenta difetticrittografici intrinseci che possono essere sfruttati,

    sempre possibile scegliere delle password a caso,calcolarne lhash e verificare la corrispondenza,

    se un utente U sceglie superficialmente la propriapasswordpU (situazione frequente), ad esempio unaparola di un dizionario, una ricerca esaustiva su unarepository di password probabili consentirebbe di

    risalire apU per tale ragione molti sistemi nascondono lelenco

    contenete lhash delle password

    Funzioni hash Integrit di messaggi

  • 7/29/2019 D02 Introduzione Alla Crittografia

    99/106

    Funzioni hash Integrit di messaggi

    Le funzioni di hash vengono spesso impiegate perverificare lintegrit di un messaggio permettono cio di generare dei MAC/MIC

    Come possibile generare MAC/MIC? data una coppia m, h(m), se il messaggio vieneaccidentalmente corrotto, diciamo diventa m, risulta

    h(m) h(m) tuttavia, se un avversario modifica deliberatamente il

    messaggio pu calcolare anche il suo nuovo hash gli algoritmi di hash sono pubblici

    di per s le funzioni di hash non sono utilizzabili perverificare lintegrit dei messaggi contro attacchi maliziosi

    Funzioni hash Integrit di messaggi

  • 7/29/2019 D02 Introduzione Alla Crittografia

    100/106

    Funzioni hash Integrit di messaggi

    Tuttavia, se Alice e Bob condividono un segreto KAB eAlice vuole inviare un messaggio m a Bob Alice pu concatenare il messaggio m con il segreto KAB

    ottenendo un nuovo messaggio m= (m||KAB)

    calcolare lhash del nuovo messaggio h(m) = h(m||KAB)

    lhash h(m||KAB) detto keyedhash e pu considerarsi un MAC(anche se presenta delle sottili debolezze)

    ed inviare la coppia m, h(m||KAB) a Bob Bob concatena il messaggio ricevuto con il segreto e

    calcola lhash se lhash ottenuto coincide con lhash ricevuto

    allora Bob pu, con un elevato grado di confidenza, ritenere che ilmessaggio stato inviato da qualcuno che conosceva il segreto

    Funzioni hash Integrit di messaggi

  • 7/29/2019 D02 Introduzione Alla Crittografia

    101/106

    Funzioni hash Integrit di messaggi

    m IICONCATENATION

    KAB

    mIIKAB h()

    HASH

    II

    CONCATENATION

    h()

    HASH

    KAB

    =?

    Alice Bob

    Impronta digitale di dati

  • 7/29/2019 D02 Introduzione Alla Crittografia

    102/106

    Impronta digitale di dati

    Si supponga di disporre di un grande repository di datidi sola lettura e di voler periodicamente verificare chenon vi siano modifiche si potrebbe mantenere una copia di backup del repository

    in un luogo a prova di manomissione, e periodicamente confrontarla con la repository attiva

    usando una funzione di hash si ha un notevolerisparmio di memoria e tempo

    basta salvare lhash del repository in un luogo protetto, e confrontare lhash del repository con lhash

    precedentemente salvato

    Impronta digitale di dati

  • 7/29/2019 D02 Introduzione Alla Crittografia

    103/106

    Impronta digitale di dati

    nota: il programma che calcola lhash va protetto inmodo indipendente dallhash stesso altrimenti, un avversario pu modificare il repository, e

    modificare il programma per il calcolo dellhash in modo

    tale che lhash finale sia quello salvato

    Lhash del repository funge pertanto da improntadigitale utilizzabile nei test di integrit

    garantendo un notevole risparmio di memoria, e di tempo necessario al confronto

    Downline load security

  • 7/29/2019 D02 Introduzione Alla Crittografia

    104/106

    Downline load security

    Spesso molti dispositivi di rete (router, stampanti, etc.) anzich memorizzare in una memoria non-volatile i

    programmi che generalmente eseguono perch non hanno una memoria non-volatile o ne hanno una di

    ridotte dimensioni

    li richiedono in fase di bootstrap via rete ad un serverpreposto a svolgere tale servizio tale schema viene detto downline load

    in questi casi lhash viene usato per verificare che ilprogramma scaricato sia quello corretto cio non vi

    siano state modifiche accidentali o intenzionali basta memorizzare soltanto lhash del programma corretto e, ad ogni download, calcolare lhash del programma

    scaricato verificando che coincida con quello in memoria

    Firma digitale efficiente

  • 7/29/2019 D02 Introduzione Alla Crittografia

    105/106

    Firma digitale efficiente

    I migliori algoritmi di cifratura a chiave pubblica(conosciuti) sono computazionalmentedispendiosi, conviene pertanto(anzich firmare lintero messaggio)

    calcolare prima un digest del messaggio con unafunzione di hash, e

    firmare il digest ottenuto,

    Si osservi che gli algoritmi per il calcolo del digest sono

    computazionalmente molto pi efficienti, e

    il digest molto pi corto dellintero messaggio

    Bibliografia

  • 7/29/2019 D02 Introduzione Alla Crittografia

    106/106

    Bibliografia

    [KPS02] C. Kaufman, R. Perlman, M. Speciner. NetworkSecurity Private Communication in a Public World.Prentice Hall.

    [PFL08] C. P. Pfleeger, S. L. Pfleeger. Sicurezza inInformatica. Pearson, Prentice Hall.

    [STA07] W. Stallings. Sicurezza delle reti. Pearson,Prentice Hall.

    [Wiki-it] http://it.wikipedia.org/wiki/ [Wiki-en] http://en.wikipedia.org/wiki/ [ISECOM] Institute for Security and Open

    Methodologies