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
Realizzato da: Tomassetti Ennio
[email protected]
SOMMARIO
 Breve panoramica sul Domain Name System.
 Debolezze del DNS.
 Le soluzioni offerte dal DNSSEC.
 Conclusioni.
Domain Name System (1)
 Database gerachico, distribuito :
 Basato sul modello client-server
 nome  indirizzo-IP (traduzione)
 DNS può utilizzare protocollo TCP o UDP
 Principali componenti:
 domain space name descritto dai Resource Records
RR (ad es. SOA, A, MX, NS….)
 name servers
 resolvers
Processo di risoluzione dei nomi
Refreshes
System call
User
program
Recursive query
Name
resolver
Response
Primary
name
server
Cache
References
Resolver’s response
Local machine
Iterative query
Name
server
Iterative query
Response
Name
server
Referral
Perché la sicurezza del DNS è
importante?
 I name server possono essere “truffati” facilmente e
sono vulnerabili a molti tipi di attacchi (DoS, buffer
overrun, replay)
 I Resolver possono essere indotti a “credere” in
informazioni false.
 Misure di sicurezza (ad es. ACLs) e altri inganni rendono
più difficile da compiere ma non impossibile!
 Nel giugno del 1997, Eugene Kashpureff (fondatore
dell’Alternic) ha reindirizzato il dominio internic.net as
alternic.net mettendo in cache informazioni false su
Name Server di Internic.(Cache Poisoning)
Destinazione Errata Indotta
 Scenario: un utente vuole connettersi ad un host A
mediante un telnet client. Il telnet client chiede,
attraverso un resolver, il NS locale per risolvere il nome
A in un indirizzo IP. Esso riceve un’informazione falsa e
inizia una connessione TCP al server telnet sulla
macchina A (almeno così crede).
 I router attuali non hanno la capacità di respingere i
pacchetti con falsi indirizzi sorgenti → l’attaccante se
può instradare pacchetti a chiunque, può indurre a farli
considerare come pacchetti provenienti da un host
fidato.
 NB: con un firewall per la rete dell’utente, il resolver non
sarebbe raggiungibile dal mondo esterno, ma il suo NS
locale si!!! Quindi se il NS può essere corrotto,
l’attaccante può reindirizzare applicazioni con
informazioni vitali verso host sotto il suo controllo e
catturare queste informazioni.
Autenticazioni e Autorizzazioni
basate sui nomi
 Tutti gli host che usano l’autenticazione basata
sui nomi rischiano poiché un attaccante può
prendere il controllo di una singola macchina
della rete protetta dal firewall.
 L’attaccante attraverso una monitorizzazione
della rete può venire a conoscenza di
un’eventuale equivalenza utilizzata in quella
rete, e operare con l’indirizzo IP di un host
equivalente.
 In questo modo l’host dell’attaccante è
completamente equivalente all’host attaccato
per tutti i computer che usano l’equivalenza
remota.
DNS cache poisoning attack
broker.com
evil.com
2. anyhost.evil.com?
1. anyhost.evil.com?
ns.evil.com
5. anyhost.evil.com=A.B.C.E
3. Memorizza query
ID
ns.broker.com
cache
9.www.bank.com=
A.B.C.D
4. anyhost.evil.com=A.B.C.E
Host
Attaccante
A.B.C.D
6. www.bank.com?
8. www.bank.com=A.B.C.D
Inondare il Name Server con false risposte
10.www.bank.com?
any.broker.com
11.Risposta errata
dalla cache
12. Connessione errata all’host attaccante
bank.com
ns.bank.com
7. www.bank.com
Flusso dei dati DNS
Impersonare il Master
Corruzione Dati
Imitare la cache
Zone administrator
Zone file
master
Dynamic
updates
slaves
resolver
stub resolver
Data spoofing
Update non autorizzati
PROTEZIONE SERVER
PROTEZIONE DATI
DNSSEC
coinvolgiamo la crittografia
 RFC 2065 e successiva RFC 2535
 Estensione per la sicurezza del DNS
 Standardizzazione in maniera formale
 Utilizzo della crittografia
 Gruppo di lavoro DNSSEC IETF
DNSSEC KEY/SIG/NEXT
autenticazione ed integrità dei dati
Imitare la cache
Zone administrator
Zone file
master
Dynamic
updates
slaves
resolver
stub resolver
Data spoofing
PROTEZIONE DATI
DNSSEC nuovi RRs
 Primo passo: provvedere all’autenticazione dei dati per gli RR
che vanno avanti e indietro in internet.
 Integrità dei dati e autenticazione dei dati sorgenti.
 Firma digitale crittografica a chiave pubblica.
 DNS security extensions (RFC 2535-2537):
 SIG: firma dell’RRset mediante chiave privata
 KEY: chiave pubblica, necessaria per verificare SIG.
 NXT: indica il successivo RRs all’interno di una zona, necessario per
verificare la non-esistenza di nomi o tipi di RRs in un dominio.
DNS
FILE DI ZONA
Semplice file dati di zona nel quale sono
presenti gli RR SOA, NS, MX con i relativi IP.
•KEY
RR
specifica:
NB: La
struttura
del file diventa
•SIG
•NXT
RR
RR
specifica
specifica:
circolare. Se un resolver chiede un
•Il•Iltipo
diRR
chiave
(zone,
host,
nome
che
esiste
nel file
di
tiponon
nome
seguente
contenuto.
nella
user)
zona,
il server DNSSEC autoritativo
zona.
•L’algoritmo
di criptazione.
per•Il
quella
zona
ritornerà
una SOA
protocollo
(DNSSEC,
gli RR
RR che
coperti dal
RR e•Tutti
un NXT
•Inception
&
time.
IPSEC,
TLS…expiration
ecc.)
nome corrente.
autenticheranno
la non-presenza di
quel• •L’”impronta”
nome.
della chiave.
l’algoritmo
(RSA/MD5,
DSA)
DNSSEC
DNSSEC chain of trust (1)
 Ogni KEY RR è firmato con la chiave del padre di zona.
 Per verificare il SIG RR di una KEY, il resolver deve recuperare






informazioni sul padre delle zone.
Si può avere fiducia nella chiave pubblica?
Il processo di autenticazione è basato sul fatto che la chiave
pubblica Root è sicura dal momento che è preconfigurata nel
resolver.
La chiave pubblica (recuperata nel KEY RR) è anche firmata, ma dal
dominio padre (ad esempio com) con la sua chiave privata.
Per verificarla bisogna recuperare anche la chiave pubblica di com
che sarà firmata dalla chiave privata di root.
Dopo la verifica della chiave pubblica di com (con la chiave pubblica
di root in nostro possesso) possiamo essere sicuri della validità
della chiave iniziale ottenuta.
Un resolver quindi dovrebbe “imparare” a fidarsi delle chiavi
verificando le loro firme passando attraverso queste catene di KEY
e SIG RR fino ad un punto nell’albero in cui ci si può fidare.
DNSSEC chain of trust (2)
La chiave pubblica del dominio
radice è ritenuta fidata a priori
da tutti i name server!!
Root name server
dell’albero DNS
com.
name server
it.
host.foo.com. ?
unich.it.
Local name server
foo.com.
name server
Riceve l’RRs: A, SIG, KEY
host.foo.com.
131.195.21.25
DNSSEC TSIG/SIG(0)
protezione tra server
Impersonare il Master
Corruzione Dati
Zone administrator
Zone file
master
Dynamic
updates
slaves
Update non autorizzati
PROTEZIONE SERVER
resolver
stub resolver
DNS Transaction Security
 Resolver attualmente troppo semplici per la verifica delle






firme.
Sol. La verifica delle firme è lasciata al NS e si introduce
una comunicazione sicura tra NS e resolver.
NS e resolver condividono una chiave segreta.
TKEY RR: utilizzato dal resolver per chiedere la chiave
pubblica del NS con allegata la prorpia chiave pubblica
che verrà utilizzata dal NS per criptare la chiave fisica.
D’ora in poi ogni comunicazione tra NS e resolver
avviene attraverso firma.
Per queste speciali firme si utilizza il nuovo TSIG RR.
Algoritmo di criptazione HMAC-MD5 (RFC 1321, 2104).
DNS come un PKI
 I KEY RR (contengono chiavi pubbliche) sono associati a zone, agli






host, ad entità finali e agli utenti.
Omnipresenza del DNS in internet → utilizzo per applicazioni o
protocolli come la PKI.
Nel PKI esistente la chiavi pubbliche sono pubblicate e autenticate
per mezzo di certificati.
La “Chain of Trust” DNSSEC provvede ad una sorta di
autenticazione dato che la verifica di KEY e SIG RR è simile al
processo di autenticazione di PKI.
Nell’ RFC 2538 è definito un possibile nuovo CERT RR per
l’immagazzinamento dei certificati.
CERT RR può memorizzare certificati PGP, X.509, SPKI.
La RFC 2538 raccomanda che è consigliabile minimizzare la
dimensione del certificato visto che le implementazioni attuali del
DNS sono ottimizzate per piccoli trasferimenti (<512 byte).
Ricapitolando sul DNSSEC
 Nel DNS la crittografia è utilizzata per





l’autenticazione/integrità e non per questioni di
riservatezza.
Bisogna dare attenzione alla generazione delle chiavi,
alla dimensione delle chiavi, alla memorizzazione delle
chiavi e ai problemi sui tempi di validità.
i resolver sicuri devono essere configurati con alcune
chiavi pubbliche sicure on-line altrimenti non potranno
verificare la validità degli RR.
La dimensione dei file di zona aumenta
vertiginosamente.
Aumentano: dimensione dei dati trasferiti, dimensione
dei messaggi (possibili overflow per pacchetti DNS UDP
→ utilizzo del TCP con un grande overhead), e il numero
di cicli di CPU.
La responsabilità degli amministratori incrementa!!!
CONCLUSIONI
 Le estensioni per la sicurezza provvedono alla:
 Protezione dei trasferimenti su Internet:
 Dati firmati con chiavi pubbliche (SIG, KEY).
 L’assenza di dati DNS è notificata (NXT).
 Protezione per i trasferimenti DNS locali:
 I messaggi tra NS e resolver sono autenticati (TSIG).
 Trasferimenti di zona tra NS primari e secondari (TSIG).
 Infrastruttura a chiave pubblica PKI:
 Distribuzione di chiavi pubbliche per altri protocolli di
sicurezza (KEY).
 Distribuzione di diversi tipi di certificati (CERT).
Scarica

Dnssec - Dipartimento di Matematica e Informatica