Το Domain Name System φτιάχτηκε για να είναι γρήγορο. Δεν φτιάχτηκε για να είναι ασφαλές. Όταν σχεδιάστηκε το DNS τη δεκαετία του 1980, κανείς δεν σκέφτηκε έναν κόσμο όπου οι επιτιθέμενοι θα προσπαθούσαν να πλαστογραφήσουν απαντήσεις DNS για να ανακατευθύνουν τους επισκέπτες σου σε ψεύτικες ιστοσελίδες. Το DNSSEC, συντομογραφία του DNS Security Extensions, δημιουργήθηκε για να κλείσει αυτό το κενό. Προσθέτει ψηφιακές υπογραφές στις εγγραφές DNS, ώστε κάθε απάντηση ενός server DNS να μπορεί να επαληθευτεί ως αυθεντική πριν την εμπιστευτεί ο browser.
Τι είναι το DNSSEC;
Το DNSSEC είναι ένα σύνολο επεκτάσεων ασφαλείας που προστέθηκαν στο πρωτόκολλο DNS. Δουλεύει επισυνάπτοντας μια κρυπτογραφική υπογραφή σε κάθε εγγραφή DNS του domain σου. Όταν ένας resolver ψάχνει το domain σου, ελέγχει αν η υπογραφή ταιριάζει πριν δεχτεί την απάντηση. Αν η υπογραφή λείπει ή δεν ταιριάζει, η απάντηση απορρίπτεται. Έτσι οι επιτιθέμενοι δεν μπορούν να βάλουν ψεύτικες απαντήσεις DNS στο σύστημα.
Το DNSSEC δεν αλλάζει τον τρόπο που δουλεύει το DNS. Η διαδικασία αναζήτησης είναι η ίδια. Το domain σου εξακολουθεί να οδηγεί σε διεύθυνση IP μέσα από μια αλυσίδα servers DNS. Η διαφορά είναι ότι κάθε βήμα της αλυσίδας μπορεί πλέον να επαληθευτεί. Ο resolver δεν εμπιστεύεται απλώς την απάντηση. Ελέγχει μια κρυπτογραφική υπογραφή για να επιβεβαιώσει ότι η απάντηση ήρθε από εξουσιοδοτημένη πηγή και δεν άλλαξε στη διαδρομή.
Ποιο πρόβλημα λύνει το DNSSEC;
Χωρίς DNSSEC, οι απαντήσεις DNS γίνονται δεκτές όπως είναι. Δεν υπάρχει ενσωματωμένος τρόπος να ελεγχθεί αν η απάντηση ήρθε από τον σωστό server ή αν άλλαξε στη διαδρομή. Αυτό ανοίγει τον δρόμο σε έναν συγκεκριμένο τύπο επίθεσης που λέγεται DNS cache poisoning, γνωστό και ως DNS spoofing.
Σε μια επίθεση cache poisoning, ο επιτιθέμενος στέλνει πλαστές απαντήσεις DNS σε έναν resolver πριν φτάσει η νόμιμη απάντηση. Ο resolver αποθηκεύει την ψεύτικη απάντηση στη μνήμη του και τη δίνει σε όποιον ψάχνει αυτό το domain. Κάθε επισκέπτης που γράφει το domain σου στον browser στέλνεται σε server που ελέγχει ο επιτιθέμενος, αντί για την πραγματική ιστοσελίδα σου.
Η ψεύτικη ιστοσελίδα μπορεί να μοιάζει ολόιδια με τη δική σου. Οι επισκέπτες μπορεί να βάλουν κωδικούς, στοιχεία πληρωμής ή προσωπικά στοιχεία χωρίς να καταλάβουν ότι βρίσκονται σε εντελώς άλλον server. Η επίθεση είναι αόρατη στον επισκέπτη, γιατί το URL στον browser του δείχνει ακόμα το domain σου.
Το DNSSEC το αποτρέπει κάνοντας τις πλαστές απαντήσεις ανιχνεύσιμες. Αν η υπογραφή δεν ταιριάζει, ο resolver απορρίπτει την απάντηση και ο επισκέπτης δεν στέλνεται σε ψεύτικο προορισμό.
Πώς δουλεύει το DNSSEC;
Το DNSSEC χρησιμοποιεί σύστημα δημόσιων και ιδιωτικών κλειδιών για να υπογράφει τις εγγραφές DNS. Έτσι δουλεύει η διαδικασία σε γενικές γραμμές.
Όταν ενεργοποιείς το DNSSEC, ο πάροχος DNS δημιουργεί ένα ζεύγος κρυπτογραφικών κλειδιών για το domain σου. Το ιδιωτικό κλειδί χρησιμοποιείται για να φτιάξει ψηφιακή υπογραφή για κάθε εγγραφή DNS. Το δημόσιο κλειδί δημοσιεύεται ως εγγραφή DNS, ώστε να το βρίσκουν οι resolvers.
Όταν ένας resolver ρωτά για το domain σου, παίρνει την απάντηση DNS μαζί με την υπογραφή. Ο resolver χρησιμοποιεί μετά το δημόσιο κλειδί για να επαληθεύσει ότι η υπογραφή ταιριάζει με τα δεδομένα της απάντησης. Αν όλα βγαίνουν, η απάντηση θεωρείται αξιόπιστη. Αν η υπογραφή είναι άκυρη ή λείπει, ο resolver θεωρεί την απάντηση αναξιόπιστη και δεν την περνά στον browser.
Αυτή η επαλήθευση δουλεύει με μια αλυσίδα εμπιστοσύνης. Το δημόσιο κλειδί του domain σου αναφέρεται από μια εγγραφή DS (Delegation Signer) στη γονική ζώνη. Για παράδειγμα, αν το domain σου είναι yourbrand.com, η ζώνη .com κρατά εγγραφή DS που δείχνει στο δημόσιο κλειδί του domain σου. Η ίδια η ζώνη .com υπογράφεται και επαληθεύεται από τη ριζική ζώνη. Κάθε επίπεδο της αλυσίδας επικυρώνει το επόμενο από κάτω, από τη ρίζα μέχρι το δικό σου domain.
Τι γίνεται χωρίς DNSSEC;
Χωρίς DNSSEC, κάθε απάντηση DNS που δίνει το domain σου είναι ανυπόγραφη. Οι resolvers δέχονται όποια απάντηση φτάσει πρώτη, χωρίς τρόπο να επιβεβαιώσουν ότι ήρθε από νόμιμη πηγή. Έτσι ένας επιτιθέμενος σε καλή θέση μπορεί να βάλει πλαστές απαντήσεις στο σύστημα και να ανακατευθύνει τους επισκέπτες σου χωρίς να ενεργοποιηθεί κανένας συναγερμός.
Για τις περισσότερες μικρές ιστοσελίδες, ο κίνδυνος στοχευμένης επίθεσης DNS poisoning είναι χαμηλός. Οι επιτιθέμενοι συνήθως πηγαίνουν σε στόχους μεγάλης αξίας, όπως τράπεζες, παρόχους email και μεγάλες πλατφόρμες e-shop. Ο κίνδυνος όμως δεν είναι μηδενικός. Τα δημόσια δίκτυα Wi-Fi, οι παραβιασμένοι routers και οι ευπάθειες σε ορισμένα λογισμικά resolver μπορούν να δημιουργήσουν ευκαιρίες για DNS spoofing σε μικρότερη κλίμακα.
Η πρακτική επίδραση της απουσίας DNSSEC εξαρτάται από τη δική σου περίπτωση. Αν χειρίζεσαι ευαίσθητα δεδομένα, δέχεσαι πληρωμές ή βασίζεσαι στην ιστοσελίδα σου ως βασικό σημείο επαφής με πελάτες, η επιπλέον επαλήθευση αξίζει.
Χρειάζεσαι DNSSEC στο domain σου;
Η ειλικρινής απάντηση είναι ότι εξαρτάται. Το DNSSEC προσθέτει πραγματική προστασία, αλλά δεν είναι απαίτηση για κάθε domain.
Πρέπει να ενεργοποιήσεις DNSSEC αν η ιστοσελίδα σου χειρίζεται πληρωμές, συλλέγει ευαίσθητα στοιχεία ή τρέχει σε domain με μεγάλη προβολή. Κρατικές ιστοσελίδες, χρηματοοικονομικές υπηρεσίες και επωνυμίες υγείας ωφελούνται όλες από ενεργό DNSSEC. Αν η ασφάλεια του domain είναι προτεραιότητα για την επωνυμία σου, το DNSSEC είναι ένα ακόμα επίπεδο που αξίζει να προσθέσεις.
Ίσως να μην το χρειάζεσαι αμέσως αν έχεις μικρότερη ιστοσελίδα πληροφόρησης, χωρίς σύνδεση χρηστών, και ο registrar σου δεν υποστηρίζει ακόμα DNSSEC ή το χρεώνει επιπλέον. Πολλές ιστοσελίδες λειτουργούν χωρίς αυτό και δουλεύουν μια χαρά. Το SSL κρυπτογραφεί ήδη τη σύνδεση ανάμεσα στον επισκέπτη και τον server σου, προστατεύοντας τα δεδομένα στη διαδρομή. Το DNSSEC λύνει διαφορετικό πρόβλημα, συγκεκριμένα την ακεραιότητα της ίδιας της αναζήτησης DNS.
Αν ο registrar σου το υποστηρίζει και η ρύθμιση είναι απλή, υπάρχει πολύ μικρό μειονέκτημα στο να το ενεργοποιήσεις. Η προστασία που προσθέτει είναι πραγματική, ακόμα κι αν ο κίνδυνος που αντιμετωπίζει δεν ισχύει το ίδιο για κάθε domain.
Πώς ενεργοποιείς το DNSSEC;
Η ενεργοποίηση του DNSSEC απαιτεί ενέργειες σε δύο σημεία. Το πρώτο είναι ο πάροχος DNS, όπου φιλοξενούνται οι εγγραφές DNS του domain σου. Το δεύτερο είναι ο registrar, όπου είναι καταχωρισμένο το domain σου.
Τα γενικά βήματα είναι αυτά.
- Συνδέσου στον πάροχο DNS και ενεργοποίησε το DNSSEC για το domain σου. Έτσι δημιουργούνται τα κρυπτογραφικά κλειδιά και ξεκινά η υπογραφή των εγγραφών DNS.
- Αντίγραψε την εγγραφή DS που σου δίνει ο πάροχος DNS. Αυτή η εγγραφή περιέχει αναφορά στο δημόσιο κλειδί του domain σου.
- Συνδέσου στον registrar και πρόσθεσε την εγγραφή DS στις ρυθμίσεις του domain σου. Έτσι συνδέονται τα κλειδιά DNSSEC του domain με τη γονική ζώνη.
- Περίμενε τη διάδοση. Όπως κάθε αλλαγή εγγραφής DNS, μπορεί να πάρει μερικές ώρες μέχρι η νέα εγγραφή DS να διαδοθεί στο διαδίκτυο.
- Δοκίμασε τη ρύθμισή σου με ένα online εργαλείο επικύρωσης DNSSEC, για να επιβεβαιώσεις ότι όλα δουλεύουν.
Αν ο registrar και ο πάροχος DNS είναι η ίδια εταιρεία, η διαδικασία είναι πιο απλή. Μερικοί πάροχοι κάνουν και τα δύο βήματα από έναν πίνακα. Άλλοι σου ζητούν να αντιγράψεις εγγραφές ανάμεσα σε δύο ξεχωριστούς λογαριασμούς.
Το πιο συνηθισμένο λάθος στη ρύθμιση είναι η λάθος εισαγωγή της εγγραφής DS. Έλεγξε ξανά το key tag, τον αριθμό αλγορίθμου, τον τύπο digest και την τιμή digest πριν αποθηκεύσεις. Ένα λάθος ψηφίο σε οποιοδήποτε από αυτά τα πεδία σπάει την αλυσίδα εμπιστοσύνης και μπορεί να κάνει το domain σου απρόσιτο μέχρι να διορθωθεί το λάθος.
Τι δεν κάνει το DNSSEC;
Το DNSSEC λύνει ένα συγκεκριμένο πρόβλημα: την επαλήθευση ότι οι απαντήσεις DNS είναι αυθεντικές. Είναι σημαντικό να καταλάβεις τι μένει έξω από το πεδίο του.
Το DNSSEC δεν κρυπτογραφεί τα ερωτήματα DNS. Το περιεχόμενο κάθε αναζήτησης DNS φαίνεται ακόμα σε όποιον παρακολουθεί το δίκτυο. Αν σε νοιάζει το απόρρητο των ερωτημάτων DNS, αυτό είναι άλλο πρόβλημα που το λύνουν το DNS over HTTPS (DoH) ή το DNS over TLS (DoT), όχι το DNSSEC.
Το DNSSEC δεν κρυπτογραφεί την κίνηση ανάμεσα στον επισκέπτη και την ιστοσελίδα σου. Αυτό είναι δουλειά ενός πιστοποιητικού SSL, που δημιουργεί κρυπτογραφημένη σύνδεση μέσω HTTPS. Το DNSSEC και το SSL προστατεύουν διαφορετικά πράγματα σε διαφορετικά στάδια της σύνδεσης.
Το DNSSEC δεν αποτρέπει όλους τους τύπους επιθέσεων στο domain σου. Δεν εμποδίζει κάποιον να κλέψει τα στοιχεία σύνδεσής σου στον registrar και να μεταφέρει το domain. Δεν προστατεύει από email phishing που μιμούνται την επωνυμία σου. Και δεν μπλοκάρει επιθέσεις DDoS στους servers DNS σου. Για αυτές τις απειλές χρειάζεσαι ξεχωριστές προστασίες, όπως ταυτοποίηση δύο παραγόντων, κλείδωμα domain και μετριασμό DDoS.
Πώς διαφέρει το DNSSEC από το SSL;
Το DNSSEC και το SSL είναι και τα δύο επίπεδα ασφαλείας, αλλά προστατεύουν διαφορετικά μέρη της σύνδεσης ανάμεσα στον επισκέπτη και την ιστοσελίδα σου.
Το SSL (και ο διάδοχός του, το TLS) κρυπτογραφεί τα δεδομένα που ρέουν ανάμεσα στον browser του επισκέπτη και τον web server σου. Μόλις στηθεί η σύνδεση, ό,τι στέλνει και λαμβάνει ο επισκέπτης προστατεύεται από υποκλοπή. Το SSL επαληθεύει επίσης ότι ο server με τον οποίο μιλά ο επισκέπτης έχει έγκυρο πιστοποιητικό για το domain σου.
Το DNSSEC προστατεύει το βήμα που γίνεται πριν μπει το SSL. Όταν ένας επισκέπτης γράφει το domain σου, ο browser πρώτα ψάχνει τη διεύθυνση IP μέσω DNS. Το DNSSEC φροντίζει ότι αυτή η αναζήτηση επιστρέφει τη σωστή διεύθυνση IP. Χωρίς αυτό, ένας επιτιθέμενος θα μπορούσε να ανακατευθύνει τον επισκέπτη σε εντελώς άλλον server, που μάλιστα μπορεί να έχει δικό του πιστοποιητικό SSL για ένα domain που μοιάζει.
Και τα δύο επίπεδα έχουν σκοπό. Το SSL προστατεύει τη συζήτηση. Το DNSSEC προστατεύει την κατεύθυνση που παίρνει ο επισκέπτης για να ξεκινήσει αυτή τη συζήτηση. Με τα δύο μαζί, οι επισκέπτες σου έχουν τη μεγαλύτερη διασφάλιση ότι βρίσκονται στην πραγματική σου ιστοσελίδα και ότι τα δεδομένα τους είναι ασφαλή.
Το DNSSEC και το WEMASY
Ο Δημιουργός ιστοσελίδων του WEMASY σού επιτρέπει να φτιάξεις τις δικές σου σελίδες στην ιστοσελίδα σου. Δες τι περιλαμβάνει κάθε πακέτο στη σελίδα τιμές.
Κλείνοντας την Ενότητα 6
Αυτό το κεφάλαιο κλείνει την ενότητα για την ασφάλεια του domain. Στα προηγούμενα κεφάλαια είδες ολόκληρη την εικόνα. Έμαθες τι σημαίνει ασφάλεια domain, πώς το κλείδωμα domain, το απόρρητο και η προσοχή στις ανανεώσεις κρατούν το domain σε δικό σου έλεγχο και ποιες είναι οι συγκεκριμένες απειλές, όπως το hijacking, το squatting και οι απάτες ανανέωσης, που στοχεύουν ιδιοκτήτες domains. Το DNSSEC προσθέτει το τελευταίο επίπεδο, προστατεύοντας την ίδια την αναζήτηση DNS, το ένα βήμα που συνδέει το όνομα του domain σου με την πραγματική ιστοσελίδα. Με όλες αυτές τις προστασίες στη θέση τους, το domain σου καλύπτεται από την καταχώριση μέχρι την επίλυση.
Συχνές ερωτήσεις για το DNSSEC
Μπορεί το DNSSEC να χαλάσει την ιστοσελίδα μου αν ρυθμιστεί λάθος;
Ναι. Αν η εγγραφή DS στον registrar δεν ταιριάζει με τα κλειδιά του παρόχου DNS, οι resolvers που επικυρώνουν DNSSEC θα απορρίψουν εντελώς τις απαντήσεις DNS του domain σου. Αυτό μπορεί να κάνει την ιστοσελίδα σου απρόσιτη για επισκέπτες των οποίων οι resolvers επιβάλλουν επικύρωση DNSSEC. Δοκίμασε πάντα τη ρύθμισή σου με εργαλείο επικύρωσης DNSSEC αφού την ενεργοποιήσεις και κράτα συγχρονισμένα τα κλειδιά αν αλλάξεις ποτέ πάροχο DNS. Με τον δημιουργό ιστοσελίδων του WEMASY, μπορείς να φτιάξεις τις δικές σου σελίδες στην ιστοσελίδα σου.
Επιβραδύνει το DNSSEC την ιστοσελίδα μου;
Η επίδραση στην ταχύτητα είναι ελάχιστη. Το DNSSEC προσθέτει λίγα επιπλέον δεδομένα στις απαντήσεις DNS λόγω των υπογραφών και οι resolvers κάνουν ένα επιπλέον βήμα επαλήθευσης. Στην πράξη, αυτό προσθέτει μόνο λίγα χιλιοστά του δευτερολέπτου στην αναζήτηση DNS. Οι επισκέπτες δεν θα προσέξουν καμία διαφορά στον χρόνο φόρτωσης της σελίδας.
Υποστηρίζουν όλοι οι registrars το DNSSEC;
Όχι όλοι. Οι περισσότεροι μεγάλοι registrars υποστηρίζουν DNSSEC, αλλά κάποιοι μικρότεροι ή οικονομικοί δεν το προσφέρουν ακόμα. Πριν προσπαθήσεις να ενεργοποιήσεις το DNSSEC, έλεγξε την τεκμηρίωση ή τη σελίδα υποστήριξης του registrar σου για να επιβεβαιώσεις ότι σου επιτρέπουν να προσθέσεις εγγραφές DS. Αν όχι, ίσως χρειαστεί να μεταφέρεις το domain σε registrar που το κάνει.
Τι γίνεται με το DNSSEC αν αλλάξω πάροχο DNS;
Αν αλλάξεις πάροχο DNS, πρέπει να ενημερώσεις τη ρύθμιση DNSSEC. Ο νέος πάροχος θα δημιουργήσει νέα κλειδιά και θα πρέπει να αντικαταστήσεις την εγγραφή DS στον registrar με τη νέα. Κατά τη μετάβαση υπάρχει ένα διάστημα όπου η παλιά εγγραφή DS δεν ταιριάζει πια με τα νέα κλειδιά. Σχεδίασε την αλλαγή προσεκτικά. Αφαίρεσε πρώτα την παλιά εγγραφή DS, περίμενε τη διάδοση, μετάφερε το DNS, ενεργοποίησε το DNSSEC στον νέο πάροχο και μετά πρόσθεσε τη νέα εγγραφή DS.
Είναι το DNSSEC το ίδιο με το DNS over HTTPS;
Όχι. Λύνουν διαφορετικά προβλήματα. Το DNSSEC επαληθεύει ότι μια απάντηση DNS είναι αυθεντική και δεν έχει παραποιηθεί. Το DNS over HTTPS (DoH) κρυπτογραφεί το ίδιο το ερώτημα DNS, ώστε κανείς που παρακολουθεί το δίκτυό σου να μην βλέπει ποια domains ψάχνεις. Το DNSSEC προστατεύει την ακεραιότητα. Το DoH προστατεύει το απόρρητο. Μπορούν να χρησιμοποιηθούν μαζί, αλλά το ένα δεν αντικαθιστά το άλλο.