DNSSEC

Το DNSSEC περιλαμβάνει βελτιώσεις και προσθήκες στα σημεία του DNS τα οποία είναι ευάλωτα σε επιθέσεις. Αναπτύχθηκε από την IETF (Internet Engineering Task Force) όχι μόνο για να αντιμετωπίσει τις αδυναμίες του DNS, αλλά και να είναι σε μία επεκτάσιμη μορφή ώστε να αντιμετωπιστούν και μελλοντικά κενά ασφαλείας.

Επομένως, για να κατανοήσουμε την αναγκαιότητα και τη λειτουργία του DNSSEC πρέπει να ξέρουμε (συνοπτικά) τη λειτουργία και τα τρωτά σημεία του DNS.

DNS (συνοπτικά)

Το DNS είναι η υπηρεσία καταλόγου του διαδικτύου, η οποία περιλαμβάνει:

 Μια κατανεμημένη βάση δεδομένων που έχει υλοποιηθεί σε μία ιεραρχία εξυπηρετητών DNS (DNS servers)
 Ένα πρωτόκολλο επιπέδου εφαρμογής που επιτρέπει σε υπολογιστές και εξυπηρετητές ονομάτων να υποβάλουν ερωτήματα σε μία κατανεμημένη βάση δεδομένων(πάνω σε UDP στη θύρα 53).

Το DNS χρησιμοποιείται κυρίως για τη μετάφραση των ονομάτων διευθύνσεων υπολογιστών (π.χ. www.site1.com) από φυσική γλώσσα σε διευθύνσεις IP (π.χ. 150.10.10.1).

Άλλες σημαντικές υπηρεσίες που παρέχει:

 Ψευδώνυμα υπολογιστών
 Ψευδώνυμα εξυπηρετητή ταχυδρομείου
 Κατανομή φόρτου

Εγγραφές Πόρων (Resource Records-RR)

Μια RR είναι μία τετράδα της μορφής: [Όνομα, Τιμή, Τύπος, TTL], η οποία αποθηκεύεται στους εξυπηρετητές DNS και αποστέλλεται στα μηνύματα DNS.

Άρα το DNS αποτελεί σημαντικό κομμάτι της λειτουργίας του διαδικτύου.

Ευάλωτα σημεία του DNS τα οποία αντιμετωπίζονται με το DNSSEC:

 DNS spoofing 
 DNS ID hacking 
 DNS cache poisoning

Ανάγκη για DNSSEC

Ο πυρήνας του DNSSEC περιγράφεται στα ακόλουθα 3 RFCs:

RFC 4033 - DNS Security Introduction and Requirements
RFC 4034 - Resource Records for the DNS Security Extensions
RFC 4035 - Protocol Modifications for the DNS Security Extensions
Ο κύριος μηχανισμός ασφαλείας του DNSSEC είναι η ταυτοποίηση των μηνυμάτων απαντήσεων, κάνοντας χρήση ψηφιακών υπογραφών και κρυπτογραφίας δημοσίου κλειδιού. Όταν ένας χρήστης ζητά την επίλυση μιας διεύθυνσης μέσω του DNSSEC η απάντηση που λαμβάνει είναι ψηφιακά υπογεγραμμένη άρα είναι σίγουρος για την αυθεντικότητα του μηνύματος.

Το DNSSEC χρησιμοποιεί ψηφιακές υπογραφές σε κάθε κίνηση που πραγματοποιείται στο Internet.

Η ασφάλεια πληροφοριακών συστημάτων στηρίζεται σε τρεις βασικές ιδέες::

Εμπιστευτικότητα (Confidentiality)
Ακεραιότητα (Integrity)
Διαθεσιμότητα (Availability)

Το DNSSEC σκόπιμα δεν είναι σχεδιασμένο για να δώσει έμφαση στην εμπιστευτικότητα ή να βελτιώσει τη διαθεσιμότητα των δεδομένων. Ο κύριος σκοπός του είναι να επικεντρωθεί στην ακεραιότητα των δεδομένων.

Τρόπος λειτουργίας και Αλυσίδα εμπιστοσύνης

Το DNSSEC κάνει χρήση ενός επικεντρωμένου μοντέλου εμπιστοσύνης από πάνω προς τα κάτω, υπογράφοντας αρχικά μία κύρια ζώνη εμπιστοσύνης. Η υπογεγραμμένη κύρια ζώνη ταυτοποιεί άμεσα την πρώτη ζώνη των κατανεμημένων εξυπηρετητών DNS, αυτοί με τη σειρά τους τη δεύτερη κοκ δημιουργώντας έτσι μία αλυσίδα εμπιστοσύνης (chain of trust).

Το σύνολο επεκτάσεων του DNSSEC σχεδιάστηκε έτσι ώστε να παρέχει

 Πιστοποίηση Προέλευσης (origin authentication) των δεδομένων DNS Πιστοποίηση ότι τα δεδομένα ήρθαν από τον αναμενόμενο αποστολέα.
 Ακεραιότητα των Δεδομένων (data integrity)[] Τα δεδομένα αυτά καθαυτά είναι σωστά
 Πιστοποιημένη άρνηση ύπαρξης (authenticated denial of existence) Πιστοποίηση μιας απάντησης «δεν υπάρχουν δεδομένα»

Αυτός ο μηχανισμός απαιτεί αλλαγή στο DNS. Έτσι το DNSSEC προσθέτει 4 νέα πεδία εγγραφών (Recursive Records - RR) στα μηνύματά του:

 Resource Record Signature (RRSIG) Οι ψηφιακές υπογραφές αποθηκεύονται στο πεδίο εγγραφής RRSIG και χρησιμοποιούνται από τη διαδικασία αυθεντικοποίησης του DNSSEC όπως περιγράφεται στο [RFC4035].
 DNS Public Key (DNSKEY) Τα δημόσια κλειδιά αποθηκεύονται στο πεδίο εγγραφής DNSKEY και χρησιμοποιούνται στη διαδικασία αυθεντικοποίησης όπως περιγράφεται στο [RFC4035]
 Delegation Signer (DS) Μια εγγραφή DS σχετίζεται με το DNSKEY RR αποθηκεύοντας τον αριθμό του αλγορίθμου που χρησιμοποιείται και τη σύνοψη (digest) του DNSKEY RR. [RFC4035]
 Next Secure (NSEC) χρησιμοποιείται στην αλυσίδα εμπιστοσύνης

Για να υποστηρίξει το μέγεθος των μηνυμάτων DNS - που αναπόφευκτα αυξάνεται – προστίθενται και δύο νέα πεδία κεφαλίδας (Header Flags): Checking Disabled (CD) και Authenticated Data (AD).

Ελέγχοντας την υπογραφή ο χρήστης μπορεί να ξέρει αν το μήνυμα είναι αυθεντικό και ολοκληρωμένο.

Η κύρια ζώνη του DNS (servers A-M) υπογράφηκε το καλοκαίρι του 2010 (15 Ιουλίου 2010). Οι άγκυρες εμπιστοσύνης είναι διαθέσιμες από την IANA. 

Το DNS είναι ένα point-to-point protocol σε αντίθεση με για παράδειγμα το SSH που εξασφαλίζει ασφάλεια σε όλο το μήκος της διαδρομής των δεδομένων.

Αναγκαιότητα χρήσης DNSSEC 

Είναι επομένως φανερό ότι η ανάπτυξη και η αποδοχή του DNSSEC είναι κρίσιμης σημασίας θέμα για την ασφάλεια στο διαδίκτυο, αν και υπήρξαν διάφορα προβλήματα όπως:

 Ανάγκη για συμβατότητα προς τα πίσω (backwards compatability)
 Διαφορετικές υλοποιήσεις για ένα ευρύ πλήθος εξυπηρετητές DNS και χρήστες
 Προστασία από την «απαρίθμηση ζώνης», η οποία λύθηκε: "DNSSEC Hashed Authenticated Denial of Existence" (ανεπίσημα ως "NSEC3")
 Διαφωνία για το ποιος θα κατέχει τα κλειδιά της κύριας ζώνης
 Εξάλειψη της μεγάλης πολυπλοκότητας του DNSSEC και της ανάπτυξής του

Domain Name System Security (DNSSEC) Αλγόριθμοι

Οι εγγραφές πόρων DNSKEY, RRSIG, DS χρησιμοποιούν έναν 8-bit αριθμό ο οποίος προσδιορίζει τον αλγόριθμο ασφαλείας που χρησιμοποιείται σε κάθε περίπτωση.

Παραπομπές

Πηγές
 http://www.slideshare.net/dyninc/introduction-to-DNSSEC 
 http://www.slideshare.net/findwhitepapers/DNSSEC-the-antidote-to-dns-cache-poisoning-and-other-dns-attacks
 http://www.slideshare.net/vramiroc/DNSSEC-first
 http://en.wikipedia.org/wiki/DNSSEC#DNSSEC_reveals_zone_data
 http://www.slideshare.net/dyninc/introduction-to-DNSSEC 

Ασφάλεια υπολογιστών