Το DNSSEC περιλαμβάνει βελτιώσεις και προσθήκες στα σημεία του DNS τα οποία είναι ευάλωτα σε επιθέσεις. Αναπτύχθηκε από την IETF(Internet Engineering Task Force) όχι μόνο για να αντιμετωπίσει τις αδυναμίες του DNS αλλά και να είναι σε μία επεκτάσιμη μορφή ώστε να αντιμετωπιστούν και μελλοντικά κενά ασφαλείας.
Επομένως, για να κατανοήσουμε την αναγκαιότητα και τη λειτουργία του DNSSEC πρέπει να ξέρουμε (συνοπτικά) την λειτουργία και τα τρωτά σημεία του DNS.
DNS (συνοπτικά)
Πηγή: Computer Networking “a top down approach” (5th edition) KUROSE-ROSS
Το DNS είναι η υπηρεσία καταλόγου του διαδικτύου. Περιλαμβάνει
1. Μια κατανεμημένη βάση δεδομένων που έχει υλοποιηθεί σε μία ιεραρχία εξυπηρετητών DNS (DNS servers)
2. Ένα πρωτόκολλο επιπέδου εφαρμογής που επιτρέπει σε υπολογιστές και εξυπηρετητές ονομάτων να υποβάλουν ερωτήματα σε μία κατανεμημένη βάση δεδομένων(πάνω σε UDP στη θύρα 53).
Το DNS χρησιμοποιείται κυρίως για την μετάφραση των ονομάτων διευθύνσεων υπολογιστών (π.χ. www.site1.com) από φυσική γλώσσα σε διευθύνσεις ip (π.χ. 150.10.10.1).
Άλλες σημαντικές υπηρεσίες που παρέχει:
· Ψευδώνυμα υπολογιστών
· Ψευδώνυμα εξυπηρέτη ταχυδρομείου
· Κατανομή φόρτου
Εγγραφές Πόρων (Resource Records-RR)
Μια RR είναι είναι μία τετράδα της μορφής : [Όνομα, Τιμή, Τύπος, TTL]
αποθηκεύεται στους εξυπηρετητές DNS και αποστέλλεται στα μηνύματα DNS.
Άρα το DNS αποτελεί σημαντικό κομμάτι της λειτουργίας του διαδικτύου.
Ευάλωτα σημεία DNS τα οποία αντιμετωπίζονται με DNSSEC:
· DNS spoofing http://www.menandmice.com/knowledgehub/DNSSECurity/dnsspoofing/default.aspx
· DNS ID hacking
http://www.sans.org/reading_room/whitepapers/dns/security-issues-dns_1069
· DNS cache poisoning http://www.sans.org/reading_room/whitepapers/dns/security-issues-dns_1069
Ανάγκη για 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 είναι η αυθεντικοποίηση των μηνυμάτων απαντήσεων, κάνοντας χρήση ψηφιακών υπογραφών και κρυπτογραφίας δημοσίου κλειδιού. Όταν ένας client ζητά την επίλυση μιας διεύθυνσης μεσω του DNSSEC η απάντηση που λαμβάνει είναι ψηφιακά υπογεγραμμένη άρα είναι σίγουρος για την αυθεντικότητα του μηνύματος.
Το DNSSEC χρησιμοποιεί ψηφιακές υπογραφές σε κάθε κίνηση που πραγματοποιείται στο Internet.
Η ασφάλεια πληροφοριακών συστημάτων στηρίζεται σε τρεις βασικές ιδέες::
- Εμπιστευτικότητα (Confidentiality)
- Ακεραιότητα (Integrity)
- Διαθεσιμότητα (Availability)
Το DNSSEC σκόπιμα δεν είναι σχεδιασμένο για να δώσει έμφαση στην εμπιστευτικότητα ή να βελτιώσει την διαθεσιμότητα των δεδομένων. Ο κύριος σκοπός του είναι να επικεντρωθεί στην ακεραιότητα των δεδομένων.
Τρόπος λειτουργίας και Αλυσίδα εμπιστοσύνης:
Το DNSSEC κάνει χρήση ενός επικεντρωμένου μοντέλου εμπιστοσύνης από πανω προς τα κάτω, υπογράφοντας αρχικά μία κύρια ζώνη εμπιστοσύνης . Η υπογεγραμμένη κύρια ζώνη ταυτοποιεί άμεσα την πρώτη ζώνη των κατανεμημένων DNS server, αυτοί με τη σειρά τους τη δεύτερη κοκ δημιουργώντας έτσι μία αλυσίδα εμπιστοσύνης (chain of trust).
http://en.wikipedia.org/wiki/Domain_Name_System_Security_Extensions
Το σύνολο επεκτάσεων του DNSSEC σχεδιάστηκε έτσι ώστε να παρέχει
a. Πιστοποίηση Προέλευσης (origin authentication) των δεδομένων DNS []Πιστοποίηση ότι τα δεδομένα ήρθαν από τον αναμενόμενο αποστολέα.
b. Ακεραιότητα των Δεδομένων (data integrity)[] Τα δεδομένα αυτά καθαυτά είναι σωστά
c. Πιστοποιημένη άρνηση ύπαρξης (authenticated denial of existence) []Πιστοποίηση μιας απάντησης «δεν υπάρχουν δεδομένα»
Αυτός ο μηχανισμός απαιτεί αλλαγή στο DNS. Έτσι το DNSSEC προσθέτει 4 νέα πεδία εγγραφών (Recursive Records - RR) στα μηνύματά του:
1. Resource Record Signature (RRSIG) Οι ψηφιακές υπογραφές αποθηκεύονται στο πεδίο εγγραφής RRSIG και χρησιμοποιούνται από τη διαδικασία αυθεντικοποίησης του DNSSEC όπως περιγράφεται στο [RFC4035].
2. DNS Public Key (DNSKEY ) Τα δημόσια κλειδιά αποθηκεύονται στο πεδίο εγγραφής DNSKEY και χρησιμοποιούνται στην διδαδικασία αυθεντικοποίησης όπως περιγράφεται στο [RFC4035]
3. Delegation Signer (DS) Μια εγγραφή DS σχετίζεται με το DNSKEY RR αποθηκεύοντας τον αριθμό του αλγορίθμου που χρησιμοποιείται και την σύνοψη (digest) του DNSKEY RR. [RFC4035]
4. Next Secure (NSEC) χρησιμοποιείται στην αλυσίδα εμπιστοσύνης
Για να υποστηρίξει το μέγεθος των μηνυμάτων DNS - που αναπόφευκτα αυξάνεται – προστίθενται και δύο νέα πεδία κεφαλίδας (Header Flags): Checking Disabled (CD) και Authenticated Data (AD).
Ελέγχοντας την υπογραφή ο client μπορεί να ξέρει αν το μήνυμα είναι αυθεντικό και ολοκληρωμένο.
Η κύρια ζώνη του DNS (servers A-M) υπογράφηκε το καλοκαίρι του 2010 (July 15, 2010). Οι άγκυρες εμπιστοσύνης είναι διαθέσιμες από την IANA. data.iana.org/root-anchors/
Το DNS είναι ένα point-to-point protocol σε αντίθεση για παράδειγμα με το ssh που εξασφαλίζει ασφάλεια σε όλο το μήκος της διαδρομής των δεδομένων.
http://pages.uoregon.edu/joe/port53wars/port53wars.pdf
Αναγκαιότητα χρήσης DNSSEC
http://en.wikipedia.org/wiki/Domain_Name_System_Security_Extensions
Είναι επομένως φανερό ότι η αναπτυξη και η αποδοχή του DNSSEC είναι κρίσιμης σημασίας θέμα για την ασφάλεια στο διαδίκτυο, αν και υπήρξαν διάφορα προβλήματα όπως:
· την ανάγκη για συμβατότητα προς τα πίσω
· τις διαφορετικές υλοποιήσεις για ένα ευρύ πλήθος DNS servers και clients
· την προστασία από την «απαρίθμηση ζώνης» λύθηκε: "DNSSEC Hashed Authenticated Denial of Existence" (ανεπίσημα ως "NSEC3")
· διαφωνία για το ποιος θα κατέχει τα κλειδιά της κύριας ζώνης
· εξάλειψη της μεγάλης πολυπλοκότητας του DNSSEC και της ανάπτυξής του
http://networkerslog.blogspot.com/search/label/DNSSEC
Domain Name System Security (DNSSEC) Αλγόριθμοι:
Οι εγγραφές πόρων DNSKEY , RRSIG, DS χρησιμοποιούν έναν 8-bit αριθμό ο οποίος προσδιορίζει τον αλγόριθμο ασφαλείας που χρησιμοποιείται σε κάθε περίπτωση.
Πηγές:
http://www.slideshare.net/dyninc/introduction-to-DNSSEC
http://www.slideshare.net/vramiroc/DNSSEC-first
http://en.wikipedia.org/wiki/DNSSEC#DNSSEC_reveals_zone_data