DNSSEC

20
DNSSEC DNSSEC COME GARANTIRE LA PROTEZIONE DEL COME GARANTIRE LA PROTEZIONE DEL TRASFERIMENTO DEI DATI DEL TRASFERIMENTO DEI DATI DEL DNS DNS CON CON L’AUSILIO DELLA CRITTOGRAFIA L’AUSILIO DELLA CRITTOGRAFIA Seminario per il corso di “Reti di Seminario per il corso di “Reti di calcolatori e sicurezza” calcolatori e sicurezza” Prof. Stefano Bistarelli Prof. Stefano Bistarelli Realizzato da: Tomassetti Ennio Realizzato da: Tomassetti Ennio [email protected] [email protected] Università degli studi “G. D’Annunzio” Università degli studi “G. D’Annunzio” Corso di Laurea Specialistica in Corso di Laurea Specialistica in Economia Informatica Economia Informatica

description

Università degli studi “G. D’Annunzio” Corso di Laurea Specialistica in Economia Informatica. DNSSEC. COME GARANTIRE LA PROTEZIONE DEL TRASFERIMENTO DEI DATI DEL DNS CON L’AUSILIO DELLA CRITTOGRAFIA. Seminario per il corso di “Reti di calcolatori e sicurezza” Prof. Stefano Bistarelli - PowerPoint PPT Presentation

Transcript of DNSSEC

Page 1: DNSSEC

DNSSECDNSSECCOME GARANTIRE LA PROTEZIONE DEL COME GARANTIRE LA PROTEZIONE DEL TRASFERIMENTO DEI DATI DEL TRASFERIMENTO DEI DATI DEL DNSDNS CON CON

L’AUSILIO DELLA CRITTOGRAFIAL’AUSILIO DELLA CRITTOGRAFIA

Seminario per il corso di “Reti di calcolatori e sicurezza”Seminario per il corso di “Reti di calcolatori e sicurezza”

Prof. Stefano BistarelliProf. Stefano Bistarelli

Realizzato da: Tomassetti EnnioRealizzato da: Tomassetti Ennio

[email protected]@hotmail.com

Università degli studi “G. D’Annunzio”Università degli studi “G. D’Annunzio”

Corso di Laurea Specialistica in Economia InformaticaCorso di Laurea Specialistica in Economia Informatica

Page 2: DNSSEC

SOMMARIOSOMMARIO

Breve panoramica sul Breve panoramica sul Domain Name System.Domain Name System.

DebolezzeDebolezze del DNS. del DNS.

Le soluzioni offerte dal Le soluzioni offerte dal DNSSECDNSSEC..

Conclusioni.Conclusioni.

Page 3: DNSSEC

Domain Name System (1)Domain Name System (1)

Database Database gerachicogerachico, , distribuito distribuito :: Basato sul modello client-serverBasato sul modello client-server

nome nome indirizzo-IP (traduzione) indirizzo-IP (traduzione)

DNS può utilizzare protocollo DNS può utilizzare protocollo TCPTCP o o UDPUDP

PrincipaliPrincipali componenti:componenti: domaindomain spacespace namename descritto dai descritto dai ResourceResource RecordsRecords

RR (ad es. SOA, A, MX, NS….)RR (ad es. SOA, A, MX, NS….)

namename serversservers

resolversresolvers

Page 4: DNSSEC

Processo di risoluzione dei nomiProcesso di risoluzione dei nomi

System call

Resolver’s response

RefreshesRecursive query

References

ResponseUser

program

Name resolver

Local machine

Primaryname server

Cache

Name server

Name server

Iterative query

Response

Iterative query

Referral

Page 5: DNSSEC

Perché la sicurezza del DNS è Perché la sicurezza del DNS è importante?importante?

I I name servername server possono essere “ possono essere “truffatitruffati” facilmente e ” facilmente e sono vulnerabili a molti tipi di attacchi (DoS, buffer sono vulnerabili a molti tipi di attacchi (DoS, buffer overrun, replay)overrun, replay)

I I ResolverResolver possono essere indotti a “credere” in possono essere indotti a “credere” in informazioni false.informazioni false.

Misure di sicurezza (ad es. ACLs) e altri inganni rendono Misure di sicurezza (ad es. ACLs) e altri inganni rendono più difficile da compiere ma non impossibile!più difficile da compiere ma non impossibile!

Nel giugno del 1997, Nel giugno del 1997, EugeneEugene KashpureffKashpureff (fondatore (fondatore dell’Alternic) ha reindirizzato il dominio dell’Alternic) ha reindirizzato il dominio internic.netinternic.net as as alternic.netalternic.net mettendo in cache informazioni false su mettendo in cache informazioni false su Name Server di Internic.(Cache Poisoning)Name Server di Internic.(Cache Poisoning)

Page 6: DNSSEC

Destinazione Errata IndottaDestinazione Errata Indotta Scenario: un utente vuole connettersi ad un host A Scenario: un utente vuole connettersi ad un host A

mediante un telnet client. Il telnet client chiede, mediante un telnet client. Il telnet client chiede, attraverso un resolver, il NS locale per risolvere il nome attraverso un resolver, il NS locale per risolvere il nome A in un indirizzo IP. Esso riceve un’informazione falsa e A in un indirizzo IP. Esso riceve un’informazione falsa e inizia una connessione TCP al server telnet sulla inizia una connessione TCP al server telnet sulla macchina A (almeno così crede).macchina A (almeno così crede).

I router attuali non hanno la capacità di respingere i I router attuali non hanno la capacità di respingere i pacchetti con falsi indirizzi sorgentipacchetti con falsi indirizzi sorgenti →→ l’attaccante se l’attaccante se può instradare pacchetti a chiunque, può indurre a farli può instradare pacchetti a chiunque, può indurre a farli considerare come pacchetti provenienti da un host considerare come pacchetti provenienti da un host fidato.fidato.

NB: con un firewall per la rete dell’utente, il resolver non NB: con un firewall per la rete dell’utente, il resolver non sarebbe raggiungibile dal mondo esterno, ma il suo NS sarebbe raggiungibile dal mondo esterno, ma il suo NS locale si!!! Quindi se il NS può essere corrotto, locale si!!! Quindi se il NS può essere corrotto, l’attaccante può reindirizzare applicazioni con l’attaccante può reindirizzare applicazioni con informazioni vitali verso host sotto il suo controllo e informazioni vitali verso host sotto il suo controllo e catturare queste informazioni.catturare queste informazioni.

Page 7: DNSSEC

Autenticazioni e Autorizzazioni Autenticazioni e Autorizzazioni basate sui nomibasate sui nomi

Tutti gli host che usano Tutti gli host che usano l’autenticazione basata l’autenticazione basata sui nomisui nomi rischiano poiché un attaccante può rischiano poiché un attaccante può prendere il controllo di una singola macchina prendere il controllo di una singola macchina della rete protetta dal firewall.della rete protetta dal firewall.

L’attaccante attraverso una monitorizzazione L’attaccante attraverso una monitorizzazione della rete può venire a conoscenza di della rete può venire a conoscenza di un’eventuale equivalenza utilizzata in quella un’eventuale equivalenza utilizzata in quella rete, e operare con l’indirizzo IP di un host rete, e operare con l’indirizzo IP di un host equivalente.equivalente.

In questo modo In questo modo l’host dell’attaccante è l’host dell’attaccante è completamente equivalente all’host attaccatocompletamente equivalente all’host attaccato per tutti i computer che usano l’equivalenza per tutti i computer che usano l’equivalenza remota.remota.

Page 8: DNSSEC

DNS cache poisoning attackDNS cache poisoning attack

1. anyhost.evil.com?

2. anyhost.evil.com?

3. Memorizza query ID

4. anyhost.evil.com=A.B.C.E

6. www.bank.com?

7. www.bank.com

5. anyhost.evil.com=A.B.C.E

8. www.bank.com=A.B.C.DInondare il Name Server con false risposte

9.www.bank.com= A.B.C.D

10.www.bank.com?

12. Connessione errata all’host attaccante

11.Risposta errata dalla cache

evil.com

ns.evil.com

Host Attaccante

any.broker.com

A.B.C.D

broker.com

cachens.broker.com

bank.com

ns.bank.com

Page 9: DNSSEC

Flusso dei dati DNSFlusso dei dati DNS

master resolver

stub resolver

Zone administrator

slaves

Zone file

Dynamicupdates

Update non autorizzati

Impersonare il MasterCorruzione Dati

PROTEZIONE SERVERPROTEZIONE SERVER

Data spoofing

Imitare la cache

PROTEZIONE DATIPROTEZIONE DATI

Page 10: DNSSEC

DNSSECDNSSEC coinvolgiamo la crittografiacoinvolgiamo la crittografia

RFC 2065RFC 2065 e successiva e successiva RFC 2535RFC 2535

Estensione per la sicurezza del DNSEstensione per la sicurezza del DNS

Standardizzazione in maniera formaleStandardizzazione in maniera formale

Utilizzo della crittografiaUtilizzo della crittografia

Gruppo di lavoro DNSSEC IETFGruppo di lavoro DNSSEC IETF

Page 11: DNSSEC

DNSSEC KEY/SIG/NEXTDNSSEC KEY/SIG/NEXTautenticazione ed integrità dei datiautenticazione ed integrità dei dati

master resolver

stub resolver

Zone administrator

slaves

Zone file

Dynamicupdates

Data spoofing

Imitare la cache

PROTEZIONE DATIPROTEZIONE DATI

Page 12: DNSSEC

DNSSEC nuovi RRsDNSSEC nuovi RRs

Primo passo: provvedere Primo passo: provvedere all’autenticazione dei datiall’autenticazione dei dati per gli RR per gli RR

che vanno avanti e indietro in internet.che vanno avanti e indietro in internet.

IntegritàIntegrità dei dati e dei dati e autenticazioneautenticazione dei dati sorgenti. dei dati sorgenti.

FirmaFirma digitaledigitale crittograficacrittografica a chiave pubblica. a chiave pubblica.

DNS security extensions (RFC 2535-2537):DNS security extensions (RFC 2535-2537):

SIGSIG: firma dell’RRset mediante chiave privata: firma dell’RRset mediante chiave privata

KEYKEY: chiave pubblica, necessaria per verificare SIG.: chiave pubblica, necessaria per verificare SIG.

NXTNXT: indica il successivo RRs all’interno di una zona, necessario per : indica il successivo RRs all’interno di una zona, necessario per

verificare la non-esistenza di nomi o tipi di RRs in un dominio.verificare la non-esistenza di nomi o tipi di RRs in un dominio.

Page 13: DNSSEC

NB: La struttura del file diventa NB: La struttura del file diventa circolare. Se un resolver chiede un circolare. Se un resolver chiede un nome che non esiste nel file di nome che non esiste nel file di zona, il server DNSSEC autoritativo zona, il server DNSSEC autoritativo per quella zona ritornerà una SOA per quella zona ritornerà una SOA RR e un NXT RR che RR e un NXT RR che autenticheranno la non-presenza di autenticheranno la non-presenza di quel nome.quel nome.

FILE DI ZONAFILE DI ZONADNSDNS DNSSECDNSSEC

Semplice file dati di zona nel quale sono presenti gli RR SOA, NS, MX con i relativi IP.

•SIG RR specificaSIG RR specifica

•Il tipo RR contenuto.Il tipo RR contenuto.

•L’algoritmo di criptazione.L’algoritmo di criptazione.

•Inception & expiration Inception & expiration time.time.

•L’”impronta” della chiave.L’”impronta” della chiave.

•NXT RR specifica:NXT RR specifica:

•Il nome seguente nella Il nome seguente nella zona.zona.

•Tutti gli RR coperti dal Tutti gli RR coperti dal nome corrente.nome corrente.

•KEY RR specifica:KEY RR specifica:

•Il tipo di chiave (zone, host, Il tipo di chiave (zone, host, user)user)

•Il protocollo (DNSSEC, Il protocollo (DNSSEC, IPSEC, TLS… ecc.)IPSEC, TLS… ecc.)

• l’algoritmo (RSA/MD5, DSA)l’algoritmo (RSA/MD5, DSA)

Page 14: DNSSEC

DNSSEC chain of trust (1)DNSSEC chain of trust (1) Ogni Ogni KEY RRKEY RR è firmato con la è firmato con la chiave del padre di zonachiave del padre di zona.. Per verificare il Per verificare il SIG RRSIG RR di una di una KEYKEY, il resolver deve recuperare , il resolver deve recuperare

informazioni sul padre delle zone.informazioni sul padre delle zone. Si può avere fiducia nella chiave pubblica?Si può avere fiducia nella chiave pubblica? Il processo di autenticazione è basato sul fatto che Il processo di autenticazione è basato sul fatto che lala chiavechiave

pubblicapubblica RootRoot èè sicurasicura dal momento che è dal momento che è preconfiguratapreconfigurata nelnel resolverresolver..

La chiave pubblica (recuperata nel KEY RR) è anche firmata, ma La chiave pubblica (recuperata nel KEY RR) è anche firmata, ma dal dominio padre (ad esempio com) con la sua chiave privata. dal dominio padre (ad esempio com) con la sua chiave privata.

Per verificarla bisogna recuperare anche la chiave pubblica di com Per verificarla bisogna recuperare anche la chiave pubblica di com che sarà firmata dalla chiave privata di root.che sarà firmata dalla chiave privata di root.

Dopo la verifica della chiave pubblica di com (con la chiave pubblica Dopo la verifica della chiave pubblica di com (con la chiave pubblica di root in nostro possesso) possiamo essere sicuri della validità di root in nostro possesso) possiamo essere sicuri della validità della chiave iniziale ottenuta.della chiave iniziale ottenuta.

Un Un resolverresolver quindi quindi dovrebbedovrebbe “ “imparareimparare” ” aa fidarsifidarsi delledelle chiavichiavi verificando le loro firme passando attraverso queste verificando le loro firme passando attraverso queste catenecatene di KEY di KEY e SIG RR fino ad un punto nell’albero in cui ci si può fidare.e SIG RR fino ad un punto nell’albero in cui ci si può fidare.

Page 15: DNSSEC

DNSSEC chain of trust (2)DNSSEC chain of trust (2)

host.foo.com. ?

Riceve l’RRs: A, SIG, KEY

KEY per com. ?

Riceve KEY, SIG RRs of com.

La chiave pubblica del dominio radice è ritenuta fidata a priori da tutti i name server!!

Root name server dell’albero DNS

com.

Local name server

foo.com.name server

name server

host.foo.com.

131.195.21.25

it.

unich.it.

Page 16: DNSSEC

DNSSEC TSIG/SIG(0)DNSSEC TSIG/SIG(0)protezione tra serverprotezione tra server

master resolver

stub resolver

Zone administrator

slaves

Zone file

Dynamicupdates

Update non autorizzati

Impersonare il MasterCorruzione Dati

PROTEZIONE SERVERPROTEZIONE SERVER

Page 17: DNSSEC

DNS Transaction SecurityDNS Transaction Security

ResolverResolver attualmente troppo semplici per la verifica delle attualmente troppo semplici per la verifica delle firme.firme.

Sol. La Sol. La verifica delle firmeverifica delle firme è lasciata al è lasciata al NSNS e si introduce e si introduce una comunicazione sicura tra NS e resolver.una comunicazione sicura tra NS e resolver.

NS e resolver condividono una chiave segreta.NS e resolver condividono una chiave segreta. TKEY RRTKEY RR: utilizzato dal resolver per chiedere la chiave : utilizzato dal resolver per chiedere la chiave

pubblica del NS con allegata la prorpia chiave pubblica pubblica del NS con allegata la prorpia chiave pubblica che verrà utilizzata dal NS per criptare la chiave fisica.che verrà utilizzata dal NS per criptare la chiave fisica.

D’ora in poi ogni comunicazione tra NS e resolver D’ora in poi ogni comunicazione tra NS e resolver avviene attraverso avviene attraverso firmafirma..

Per queste speciali firme si utilizza il nuovo Per queste speciali firme si utilizza il nuovo TSIG RRTSIG RR.. Algoritmo di criptazione Algoritmo di criptazione HMAC-MD5HMAC-MD5 (RFC 1321, 2104). (RFC 1321, 2104).

Page 18: DNSSEC

DNS come un PKIDNS come un PKI

I I KEY RRKEY RR (contengono chiavi pubbliche) sono associati a zone, agli (contengono chiavi pubbliche) sono associati a zone, agli host, ad entità finali e agli utenti.host, ad entità finali e agli utenti.

Omnipresenza del DNS in internet Omnipresenza del DNS in internet → utilizzo per applicazioni o → utilizzo per applicazioni o protocolli come la protocolli come la PKIPKI..

Nel PKI esistente la chiavi pubbliche sono pubblicate e autenticate Nel PKI esistente la chiavi pubbliche sono pubblicate e autenticate per mezzo di certificati.per mezzo di certificati.

La “La “Chain of TrustChain of Trust” DNSSEC provvede ad una sorta di ” DNSSEC provvede ad una sorta di autenticazione dato che la verifica di KEY e autenticazione dato che la verifica di KEY e SIG RRSIG RR è simile al è simile al processo di autenticazione di PKI.processo di autenticazione di PKI.

Nell’ RFC 2538 è definito un possibile nuovo Nell’ RFC 2538 è definito un possibile nuovo CERT RRCERT RR per per l’immagazzinamento dei certificati.l’immagazzinamento dei certificati.

CERT RRCERT RR può memorizzare certificati può memorizzare certificati PGPPGP, , X.509X.509, , SPKISPKI.. La RFC 2538 raccomanda che è consigliabile minimizzare la La RFC 2538 raccomanda che è consigliabile minimizzare la

dimensione del certificato visto che le implementazioni attuali del dimensione del certificato visto che le implementazioni attuali del DNS sono ottimizzate per piccoli trasferimenti (<512 byte).DNS sono ottimizzate per piccoli trasferimenti (<512 byte).

Page 19: DNSSEC

Ricapitolando sul DNSSECRicapitolando sul DNSSEC Nel DNS la crittografia è utilizzata per Nel DNS la crittografia è utilizzata per

l’autenticazione/integrità e non per questioni di l’autenticazione/integrità e non per questioni di riservatezza.riservatezza.

Bisogna dare attenzione alla generazione delle chiavi, Bisogna dare attenzione alla generazione delle chiavi, alla dimensione delle chiavi, alla memorizzazione delle alla dimensione delle chiavi, alla memorizzazione delle chiavi e ai problemi sui tempi di validità.chiavi e ai problemi sui tempi di validità.

i resolver sicuri devono essere configurati con alcune i resolver sicuri devono essere configurati con alcune chiavi pubbliche sicure on-line altrimenti non potranno chiavi pubbliche sicure on-line altrimenti non potranno verificare la validità degli RR.verificare la validità degli RR.

La dimensione dei file di zona aumenta vertiginosamente.La dimensione dei file di zona aumenta vertiginosamente. Aumentano: dimensione dei dati trasferiti, dimensione dei Aumentano: dimensione dei dati trasferiti, dimensione dei

messaggi (possibili overflow per pacchetti DNS UDP messaggi (possibili overflow per pacchetti DNS UDP → → utilizzo del TCP con un grande overhead)utilizzo del TCP con un grande overhead), e il numero di , e il numero di cicli di CPU.cicli di CPU.

La responsabilità degli amministratori incrementa!!!La responsabilità degli amministratori incrementa!!!

Page 20: DNSSEC

CONCLUSIONICONCLUSIONI

Le estensioni per la sicurezza provvedono alla:Le estensioni per la sicurezza provvedono alla: Protezione dei trasferimenti su Internet:Protezione dei trasferimenti su Internet:

Dati firmati con chiavi pubbliche (Dati firmati con chiavi pubbliche (SIGSIG, , KEYKEY).).

L’assenza di dati DNS è notificata (L’assenza di dati DNS è notificata (NXTNXT).).

ProtezioneProtezione per i trasferimenti DNS locali:per i trasferimenti DNS locali: I messaggi tra NS e resolver sono autenticati (I messaggi tra NS e resolver sono autenticati (TSIGTSIG).).

Trasferimenti di zona tra NS primari e secondari (Trasferimenti di zona tra NS primari e secondari (TSIGTSIG).).

Infrastruttura a chiave pubblicaInfrastruttura a chiave pubblica PKIPKI:: Distribuzione di chiavi pubbliche per altri protocolli di Distribuzione di chiavi pubbliche per altri protocolli di

sicurezza (sicurezza (KEYKEY).).

Distribuzione di diversi tipi di certificati (Distribuzione di diversi tipi di certificati (CERTCERT).).