Κεντρική Σελίδα | Κεφάλαιο 1 | Κεφάλαιο 2 | Κεφάλαιο 3 | Κεφάλαιο 4 | Κεφάλαιο 5 | Κεφάλαιο 6
5.1 IPSec (IP Security)
5.1.1 Εισαγωγή
Το
Internet αποτελεί αντικείμενο πολλών και διαφορετικών τύπων επιθέσεων συμπεριλαμβανομένων αυτών της απώλειας του απόρρητου, της ακεραιότητας των δεδομένων, της πλαστοπροσωπίας και της άρνησης παροχής υπηρεσιών. Ο στόχος της IPSec είναι η αντιμετώπιση όλων αυτών των προβλημάτων μέσα στην ίδια την υποδομή του δικτύου χωρίς να είναι αναγκαία η εγκατάσταση και η ρύθμιση ακριβών μηχανών και λογισμικού.Η
IPSec παρέχει κρυπτογράφηση στο επίπεδο του IP και για αυτό το λόγο αποτελεί ένα αξιοσημείωτο κομμάτι της συνολικής ασφάλειας. Οι προδιαγραφές της IPSec ορίζουν δύο νέους τύπους δεδομένων στα πακέτα: την επικεφαλίδα πιστοποίησης (AH-Authentication Header), για την παροχή υπηρεσίας ακεραιότητας δεδομένων και το φορτίο ενθυλάκωσης ασφάλειας (ESP-Encapsulating Security Payload) το οποίο παρέχει πιστοποίηση ταυτότητας και ακεραιότητα δεδομένων. Ορίζονται επίσης οι παράμετροι επικοινωνίας μεταξύ δύο συσκευών που είναι η διαχείριση των κλειδιών και η συσχετισμοί ασφάλειας (security associations).5.1.2 Γιατί χρειαζόμαστε την
IPSecΑπώλεια του Απορρήτου
(Loss of Privacy)Κάποιος που έχει καταφέρει να εισχωρήσει σε κάποιο δίκτυο έχει τη δυνατότητα να παρακολουθεί εμπιστευτικά δεδομένα κατά τη διακίνηση των τελευταίων στο Internet. Αυτή η δυνατότητα είναι ίσως ο μεγαλύτερος ανασταλτικός παράγοντας στις επικοινωνίες μεταξύ των επιχειρήσεων σήμερα. Χωρίς τη χρήση κρυπτογραφικών μεθόδων κάθε μήνυμα είναι ανοικτό προς ανάγνωση από όποιον έχει τη δυνατότητα να το αιχμαλωτίσει, όπως φαίνεται στο σχήμα 1. Το CERT (Computer Emergency Response Team Coordination Center) αναφέρεται στα προγράμματα "packet sniffers" ως την πιο συνηθισμένη περίπτωση επίθεσης από αυτές που συναντώνται, λέγοντας :
"Οι εισβολείς συνηθίζουν να
εγκαθιστούν packet sniffers σε
συστήματα που έχουν εκτεθεί σε κάθε είδους
κίνδυνο μετά την απώλεια της μυστικότητας του root
password. Αυτά τα προγράμματα, που
συλλέγουν ονόματα και κωδικούς, εγκαθίστανται
σαν μέρος ενός kit το οποίο
αντικαθιστά επιπλέον κοινά αρχεία του
συστήματος με προγράμματα που δείχνουν ότι
κάνουν αυτό που θα έπρεπε αλλά στην
πραγματικότητα εκτελούν άλλες λειτουργίες (Trojan
horse programs). Aυτά τα kit παρέχουν
οδηγίες οι οποίες καθιστούν και τον αρχάριο
χρήστη τους επικίνδυνο για την ασφάλεια ενός
απροστάτευτου δικτύου".
Απώλεια της Ακεραιότητας των Δεδομένων (Loss of Data Integri
ty)Ακόμα και για δεδομένα που δεν είναι εμπιστευτικά πρέπει να λαμβάνονται μέτρα διασφάλισης της ακεραιότητάς τους. Μπορεί να μην μας ενδιαφέρει εάν κάποιος "δει" τη κίνηση ρουτίνας της δουλείας μας, αλλά σίγουρα θα μας προβλημάτιζε εάν αυτός αλλοίωνε κατά οποιοδήποτε τρόπο τα δεδομένα αυτά. Για παράδειγμα το να μπορεί κάποιος να πιστοποιεί με ασφάλεια τον εαυτό του στη τράπεζα κάνοντας χρήση ψηφιακών πιστοποιητικών δεν είναι αρκετό εάν η κύρια εργασία του στη τράπεζα θα μπορούσε να αλλοιωθεί με κάποιο τρόπο όπως φαίνεται στο σχήμα 2.
Πλαστοπροσωπία (Identity Spoofing)
Εκτός της προστασίας των ίδιων των δεδομένων
, θα πρέπει να παίρνουμε μέτρα ώστε να προστατεύεται και η ταυτότητά μας στο Internet. Όπως φαίνεται στο σχήμα 3, ένας εισβολέας μπορεί να αποδειχθεί ικανός να κλέψει τη ταυτότητα κάποιου και έτσι να αποκτήσει πρόσβαση σε εμπιστευτικές πληροφορίες . Πολλά συστήματα ασφάλειας, σήμερα, βασίζονται στην IP διεύθυνση για να αναγνωρίσουν μοναδικά τους χρήστες. Τα συστήματα αυτά είναι πολύ εύκολο να ξεγελαστούν και αυτό το γεγονός έχει οδηγήσει σε αναρίθμητα τρυπήματα διαφόρων συστημάτων. Το CERT έχει αναφερθεί σε αυτού του είδους την επίθεση : "Συνεχίζουμε να λαμβάνουμε αρκετές αναφορές που μιλάνε για επιθέσεις τύπου IP Spoofing. Οι εισβολείς επιτίθενται χρησιμοποιώντας αυτοματοποιημένα εργαλεία που κυκλοφορούν ελευθέρα στο Internet. Κάποια sites πίστευαν, λανθασμένα, ότι σταματούσαν τέτοιου είδους επιθέσεις ενώ άλλα σχεδίαζαν να το κάνουν αλλά δεν είχαν προλάβει να το εφαρμόσουν".
Άρνηση Παροχής Υπηρεσιών (Denial-of-Service)
Εφόσον κάποιος οργανισμός εκμεταλλεύεται το
Internet, πρέπει να λάβει κάποια μέτρα ώστε να διασφαλίσει τη διαθεσιμότητα του συστήματός του σε αυτό. Τα τελευταία χρόνια διάφοροι hackers έχουν βρει αδυναμίες στο πρωτόκολλο TCP/IP που τους δίνει τη δυνατότητα να "ρίχνουν" τις μηχανές (crash-σχήμα 4). Το CERT έχει μιλήσει για το θέμα : "Ο αριθμός των επιθέσεων εναντίον συστημάτων έχει αυξηθεί σημαντικά αφού υπάρχουν πλέον πακέτα που κυκλοφορούν ελευθέρα και που κάνουν εύκολη την πραγματοποίηση τέτοιου είδους επιθέσεων".
5.1.3
ΟρισμόςΗ
IPSec είναι ένα πρωτόκολλο ανοικτών προδιαγραφών για τη διασφάλιση του απορρήτου των επικοινωνιών. Είναι βασισμένο στις προδιαγραφές που ανέπτυξε η ομάδα εργασίας του Internet (ΙETF). Η IPSec διασφαλίζει την εμπιστευτικότητα, την ακεραιότητα και την αυθεντικότητα των επικοινωνιών δεδομένων σε ένα IP δίκτυο. Η IPSec παρέχει τον απαραίτητο μηχανισμό για την ανάπτυξη ευκίνητων λύσεων ασφάλειας σε ένα δίκτυο.Έλεγχοι
κρυπτογράφησης και πιστοποίησης ταυτότητας
μπορούν να εφαρμοσθούν σε διάφορα επίπεδα στην
δικτυακή υποδομή όπως φαίνεται και στο σχήμα 5.
Πριν την άφιξη της
IPSec στο προσκήνιο, εφαρμόζονταν αποσπασματικές λύσεις που αντιμετώπιζαν μέρος μόνο του προβλήματος. Για παράδειγμα, το SSL(Secure Sockets Layer) παρέχει κρυπτογράφηση σε επίπεδο εφαρμογής για Web browsers και άλλες εφαρμογές. Το SSL προστατεύει την πιστότητα των δεδομένων που στέλνονται από κάθε εφαρμογή που το χρησιμοποιεί, αλλά δεν προστατεύει τα δεδομένα που αποστέλλονται από άλλες εφαρμογές. Κάθε σύστημα και εφαρμογή πρέπει να είναι προστατεμένη από το SSL για να του παρέχει το τελευταίο την προστασία.Οργανισμοί όπως ο στρατός χρησιμοποιούσαν για χρόνια κρυπτογράφηση επιπέδου συνδέσμου
. Σε αυτό το σχήμα κάθε σύνδεσμος επικοινωνιών προστατεύεται από ένα ζεύγος συσκευών κρυπτογράφησης - μια στο τέλος κάθε πλευράς του συνδέσμου. Αν και αυτό το σύστημα παρέχει εξαιρετική ασφάλεια δεδομένων είναι πολύ δύσκολο να παρακολουθηθεί και να διαχειριστεί. Επιπλέον απαιτεί η κάθε πλευρά του συνδέσμου στο δίκτυο να είναι ασφαλής διότι τα δεδομένα είναι σε καθαρή μορφή σε αυτά τα σημεία. Φυσικά αυτό το σχήμα δεν μπορεί να δουλέψει καθόλου στο Internet όπου πιθανότατα κανένας από τους ενδιάμεσους συνδέσμους δεν είναι προσβάσιμος σε κανέναν και δεν εμπιστεύεται κανέναν.
Η
IPSec υλοποιεί κρυπτογράφηση και πιστοποίηση επιπέδου δικτύου όπως φαίνεται στο σχήμα 6, παρέχοντας μια λύση ασφαλείας μέσα στην ίδια την αρχιτεκτονική του δικτύου. Έτσι τα συστήματα και οι εφαρμογές που βρίσκονται στις άκρες δεν χρειάζονται αλλαγές ή ρυθμίσεις για να έχουν το πλεονέκτημα της ισχυρής ασφάλειας. Επειδή τα κρυπτογραφημένα πακέτα μοιάζουν με κανονικά IP πακέτα μπορούν εύκολα να δρομολογηθούν μέσα από οποιοδήποτε IP δίκτυο, όπως το Internet, χωρίς καμία αλλαγή στον ενδιάμεσο δικτυακό εξοπλισμό. Οι μόνες συσκευές οι οποίες γνωρίζουν για την κρυπτογράφηση είναι αυτές στα ακραία σημεία. Αυτό το χαρακτηριστικό μειώνει δραστικά τόσο το κόστος της υλοποίησης όσο και το κόστος της διαχείρισης.5.1.4 Λεπτομέρειες της
IPSecΗ
IPSec συνδυάζει τις παραπάνω τεχνολογίες ασφάλειας σε ένα ολοκληρωμένο σύστημα το οποίο παρέχει εμπιστευτικότητα, ακεραιότητα και πιστοποίηση της ταυτότητας των IP πακέτων. Η IPSec αναφέρεται και σε μια σειρά άλλων πρωτοκόλλων όπως ορίζεται στα RFC 1825-1829 και σε άλλες δημοσιεύσεις στο Internet. Αυτές οι προδιαγραφές περιλαμβάνουν:Πακέτα ΙPSec
H ΙPSec ορίζει ένα νέο σετ επικεφαλίδων το οποίο προστίθεται στα IP διαγράμματα. Αυτές οι νέες επικεφαλίδες τοποθετούνται μετά την επικεφαλίδα IP και πριν το πρωτόκολλο επιπέδου 4 (τυπικά το TCP ή το UDP). Αυτές οι νέες επικεφαλίδες παρέχουν πληροφορίες για την ασφάλεια του φορτίου των IP πακέτων όπως αναλύεται παρακάτω:
Οι ΑΗ και οι
ESP μπορούν να χρησιμοποιηθούν ανεξάρτητα ή μαζί, αν και για τις περισσότερες εφαρμογές μια από τις δυο είναι αρκετή. Και για τα δυο αυτά πρωτόκολλα οι ΙΡSec δεν καθορίζει συγκεκριμένους αλγόριθμους που πρέπει να χρησιμοποιηθούν αλλά παρέχει ένα ανοικτό πλαίσιο για βιομηχανική υλοποίηση με παραγωγή ανεξάρτητων αλγορίθμων. Αρχικά οι περισσότερες υλοποιήσεις της IPSec θα περιλαμβάνουν υποστήριξη για το MD5 από την RSA Data Security ή για την SHA (Secure Hash Algorithm) όπως ορίζεται από την κυβέρνηση των Η. Π. Α. για την ακεραιότητα και την πιστοποίηση της ταυτότητας. Το DES (Data Encryption Standard) είναι προς το παρόν ο πιο κοινά προσφερόμενος αλγόριθμος κρυπτογράφησης αν και υπάρχουν και άλλοι όπως οι IDEA, Blowfish και RC4.Η
IPSec παρέχει δυο καταστάσεις λειτουργίας: την transport και την tunnel, όπως φαίνεται στο σχήμα 7.Στην κατάσταση
transport μόνο το IP φορτίο κρυπτογραφείται ενώ οι αρχικές επικεφαλίδες μένουν ανέπαφες. Αυτή η κατάσταση λειτουργίας έχει το πλεονέκτημα της πρόσθεσης μόνο μερικών Bytes σε κάθε πακέτο. Επιπλέον επιτρέπουν σε συσκευές στο δημόσιο δίκτυο να βλέπουν την τελική πηγή και προορισμό του πακέτου. Αυτή η δυνατότητα επιτρέπει ειδική επεξεργασία (για παράδειγμα QoS) στο ενδιάμεσο δίκτυο βασισμένη στην πληροφορία που βρίσκεται στην ΙΡ επικεφαλίδα. Ωστόσο η επικεφαλίδα του επιπέδου 4 θα κρυπτογραφηθεί περιορίζοντας τη δυνατότητα έρευνας των πακέτων. Βεβαίως αφήνοντας την ΙΡ επικεφαλίδα χωρίς κρυπτογράφηση η κατάσταση λειτουργίας transport επιτρέπει στον επιτιθέμενο να κάνει ανάλυση κίνησης (traffic analysis). Για παράδειγμα ο επιτιθέμενος θα μπορούσε να δει πότε ένα CEO της Cisco έστειλε πολλά πακέτα σε ένα άλλο CEO. Ωστόσο ο επιτιθέμενος θα γνώριζε μόνο την αποστολή των ΙΡ πακέτων και δεν θα ήταν στη θέση να καθορίσει αν αυτά ήταν πακέτα e-mail ή κάποιας άλλης εφαρμογής.
Στην κατάσταση λειτουργίας
tunnel όλο το ΙΡ διάγραμμα κρυπτογραφείται και γίνεται το φορτίο ενός καινούριου ΙΡ πακέτου. Αυτή η κατάσταση λειτουργίας επιτρέπει σε μια δικτυακή συσκευή, όπως ένας δρομολογητής, να ενεργήσει σαν ένας ΙΡSec proxy. Αυτό σημαίνει ότι ο δρομολογητής πραγματοποιεί κρυπτογράφηση για λογαριασμό των υπολογιστών του δικτύου. Η πηγή του δρομολογητή κρυπτογραφεί τα πακέτα και τα προωθεί στο IPSec tunnel. Ο προορισμός του δρομολογητή αποκρυπτογραφεί το αρχικό ΙΡ διάγραμμα και το προωθεί στο σύστημα προορισμού του. Το βασικό πλεονέκτημα αυτής της κατάστασης λειτουργίας είναι ότι τα ακραία συστήματα δεν χρειάζεται να ρυθμιστούν για να επικαρπωθούν τα πλεονεκτήματα της IPSec. Η κατάσταση λειτουργίας tunnel προστατεύει επιπλέον το σύστημα από την διαδικασία της ανάλυσης κίνησης. Σε αυτή την κατάσταση λειτουργίας ο επιτιθέμενος μπορεί να καθορίσει μόνο τα ακραία σημεία του tunnel και όχι την πραγματική πηγή και τον προορισμό των πακέτων που κυκλοφορούν μέσα σε αυτό ακόμη και αν είναι τα ίδια με τα ακραία σημεία του tunnel.
Όπως καθορίζεται από την
IETF η κατάσταση λειτουργίας transport μπορεί να χρησιμοποιηθεί μόνο όταν τόσο η πηγή όσο και τα συστήματα προορισμού καταλαβαίνουν από IPSec όπως φαίνεται στο σχήμα 8. Στις περισσότερες περιπτώσεις έχουμε εφαρμογή της IPSec σε κατάσταση λειτουργίας tunnel. Έχουμε έτσι τη δυνατότητα να υλοποιήσουμε την IPSec στη δικτυακή υποδομή χωρίς να τροποποιήσουμε το λειτουργικό σύστημα ή οποιαδήποτε εφαρμογή στους servers και τους υπολογιστές του δικτύου.Συσχετισμοί Ασφάλειας –
Security AssociationΗ
IPSec παρέχει πολλές επιλογές για την υλοποίηση κρυπτογράφησης και πιστοποίησης ταυτότητας στο δίκτυο. Κάθε ΙΡSec σύνδεση μπορεί να παρέχει είτε κρυπτογράφηση είτε ακεραιότητα και πιστοποίηση ταυτότητας δεδομένων ή και τα δυο. Όταν η υπηρεσία ασφάλειας καθοριστεί οι δυο επικοινωνούντες κόμβοι πρέπει να καθορίσουν ακριβώς ποίους αλγόριθμους θα χρησιμοποιήσουν (για παράδειγμα DES ή IDEA για κρυπτογράφηση και MD5 ή SHA για ακεραιότητα δεδομένων). Αφού αποφασίσουν για τους αλγόριθμους οι δυο συσκευές πρέπει να μοιράσουν κλειδιά σύνδεσης. Όπως μπορούμε να δούμε υπάρχει αρκετή πληροφορία προς παρακολούθηση. Η συσχέτιση ασφάλειας είναι μια μέθοδος που χρησιμοποιείται από την IPSec για την παρακολούθηση όλων των λεπτομερειών που αφορούν μια δεδομένη IPSec επικοινωνία. Μια συσχέτιση ασφάλειας είναι η σχέση μεταξύ δυο ή περισσοτέρων οντοτήτων που περιγράφει πως οι οντότητες θα χρησιμοποιήσουν τις υπηρεσίες ασφάλειας για να επικοινωνήσουν με ασφάλεια. Η νονμεκλατούρα μπερδεύει μερικές φορές διότι οι συσχετισμοί ασφάλειας χρησιμοποιούνται για πολλά περισσότερα από ότι μόνο για την IPSec. Για παράδειγμα οι συσχετισμοί ασφάλειας ΙΚΕ περιγράφουν τις παραμέτρους ασφάλειας μεταξύ δυο ΙΚΕ συσκευών.
Οι συσχετισμοί ασφάλειας είναι μη κατευθυντικοί που σημαίνει ότι για κάθε ζεύγος επικοινωνούντων συστημάτων υπάρχουν τουλάχιστον δυο συνδέσεις ασφάλειας—μια από το Α στο Β και μια από το Β στο Α
. Ο συσχετισμός ασφάλειας αναγνωρίζεται μοναδικά από έναν τυχαίως επιλεγμένο μοναδικό αριθμό ο οποίος λέγεται SPI (Security Parameter Index) και από την ΙΡ διεύθυνση του προορισμού. Όταν ένα σύστημα στέλνει ένα πακέτο το οποίο απαιτεί ΙΡSec προστασία κοιτάει τον συσχετισμό ασφάλειας στη βάση δεδομένων του, εφαρμόζει τη συγκεκριμένη επεξεργασία και μετά εισάγει τον SPI από το συσχετισμό ασφάλειας στην IPSec επικεφαλίδα. Όταν το αντίστοιχο μηχάνημα IPSec λαμβάνει το πακέτο κοιτάει με τη σειρά του το συσχετισμό ασφάλειας βάσει της διεύθυνσης προορισμού και του SPI και μετά επεξεργάζεται το πακέτο όπως ορίζεται. Με λίγα λόγια ο συσχετισμός ασφάλειας είναι απλώς μια δήλωση της διαπραγματεύσιμης πολιτικής ασφάλειας μεταξύ δυο συσκευών όπως φαίνεται στο σχήμα 9.Πρωτόκολλο Διαχείρισης Κλειδιών
InternetΗ
IPSec μπορεί να θεωρήσει ότι ένας συσχετισμός ασφάλειας υπάρχει αλλά δεν έχει το μηχανισμό να τον δημιουργήσει. Η IETF επέλεξε να σπάσει τη διαδικασία αυτή σε δύο μέρη : η IPSec παρέχει την επεξεργασία των πακέτων επιπέδου IP και το πρωτόκολλο διαχείρισης κλειδιών Internet (ΙΚMP—Internet Key Management Protocol), ασχολείται με ότι έχει να κάνει με τους συσχετισμούς ασφάλειας. Μετά από εξέταση πολλών εναλλακτικών λύσεων συμπεριλαμβανομένων και των SKIP (Simple Key Management Protocol) και Photouris, η IETF επέλεξε το IKE σαν το τρόπο ρύθμισης των συσχετισμών ασφάλειας για την IPSec.Το ΙΚΕ δημιουργεί ένα πιστοποιημένο και ασφαλές κανάλι – τούνελ μεταξύ δύο οντοτήτων και κατόπιν διαπραγματεύεται τους συσχετισμούς ασφάλειας για την
IPSec. Αυτή η διαδικασία απαιτεί από τις δύο οντότητες να πιστοποιήσουν η μία την άλλη και να μοιράσουν κλειδιά.Πιστοποίηση Ταυτότητας
Τα δύο μέρη πρέπει να πιστοποιήσουν το ένα το άλλο
. Το ΙΚΕ είναι πολύ ευέλικτο και υποστηρίζει πολλές διαφορετικές μεθόδους πιστοποίησης της ταυτότητας. Οι δύο οντότητες πρέπει να συμφωνήσουν σε ένα κοινό πρωτόκολλο πιστοποίησης μέσω μιας κατάλληλης διαδικασίας. Σε αυτή τη φάση υλοποιούνται συνήθως οι παρακάτω μηχανισμοί :Τόσο η διαδικασία κρυπτογράφησης όσο και αυτή των ψηφιακών υπογραφών απαιτεί τη χρήση ψηφιακών πιστοποιητικών για την επικύρωση της δημόσιας σε ιδιωτική αντιστοίχησης
. Το ΙΚΕ επιτρέπει την ανεξάρτητη ανταλλαγή των ψηφιακών πιστοποιητικών με τη χρήση για παράδειγμα του DNSSEC ή την ανταλλαγή τους σαν μέρος του ΙΚΕ.Ανταλλαγή Κλειδιών
Τα δύο μέρη πρέπει να έχουν ένα κοινό, έστω προσωρινό
, κλειδί έτσι ώστε να κρυπτογραφήσουν το ΙΚΕ τούνελ. Το πρωτόκολλο Diffie-Helman χρησιμοποιείται για τη συμφωνία σε ένα κοινό κλειδί. Η ανταλλαγή πιστοποιείται όπως περιγράφηκε παραπάνω για τη αποφυγή επιθέσεων παρεμβολών.Χρησιμοποίηση του ΙΚΕ στην
IPSec
Αυτά τα δύο βήματα, πιστοποίηση και ανταλλαγή κλειδιών, δημιουργούν το ΙΚΕ SA—ένα ασφαλές κανάλι μεταξύ των δύο συσκευών. Το ένα μέρος του τούνελ προσφέρει ένα σύνολο αλγορίθμων ενώ το άλλο πρέπει να κάνει αποδεκτή μία από τις προσφορές ή να απορρίψει ολόκληρη τη σύνδεση. Όταν πλέον τα δύο μέρη συμφωνήσουν στη χρήση συγκεκριμένων αλγορίθμων αντλούν το υλικό των κλειδιών για χρήση από την IPSec μαζί με μία ή και τις δύο επικεφαλίδες (AH και ESP). Η IPSec χρησιμοποιεί διαφορετικό κλειδί από αυτό του IKE. Το κλειδί της IPSec μπορεί να προέλθει από την επαναχρησιμοποίηση της ανταλλαγής Diffie-Helman για την επίτευξη υψηλού βαθμού ασφάλειας, ή με την χρησιμοποίηση της αρχικής ανταλλαγής Diffie-Helman η οποία και παρήγαγε το ΙΚΕ SA, αφού αυτή πρώτα συσχετισθεί μέσω μιας hash συνάρτησης με κάποιους τυχαίους αριθμούς. Η πρώτη μέθοδος παρέχει μεγαλύτερη ασφάλεια αλλά είναι πολύ πιο αργή. Αφού όλα τα παραπάνω τελειώσουν το IPSec SA έχει εγκαθιδρυθεί.
Το σχήμα 9 δείχνει πως η IPSec χρησιμοποιεί το ΙΚΕ για την εγκαθίδρυση μιας ασφαλούς συσχέτισης ασφάλειας. Στο παράδειγμα, το πρώτο πακέτο της Alice προς τον Bob, το οποίο πρέπει να είναι κρυπτογραφημένο, ενεργοποιεί την διαδικασία ΙΚΕ. Αυτή, με τη σειρά της, φτιάχνει ένα ασφαλές κανάλι μεταξύ του Bob και της Alice. Η IPSec SA διαπραγματεύονται μέσα σε αυτό το κανάλι-τούνελ. Κατόπιν η Alice μπορεί να χρησιμοποιήσει αυτό το συσχετισμό ασφάλειας για να στείλει δεδομένα στο Bob με ασφάλεια.
Επειδή η όλη διαδικασία δείχνει κάπως σύνθετη στη θεωρία, ας δούμε το παρακάτω παράδειγμα (σχήμα 11):
Σε αυτό το παράδειγμα ο Bob προσπαθεί να επικοινωνήσει με ασφάλεια, με την Alice. Οι κινήσεις που γίνονται είναι οι παρακάτω:
Εάν οι δύο δρομολογητές έχουν έτοιμη μια IΚΕ SA τότε μπορεί γρήγορα να ξεκινήσει μια
IPSec SA. Εάν δεν έχουν, τότε πρέπει να περιμένουν να δημιουργηθεί μία πρώτα. Σαν μέρος αυτής της διαδικασίας, οι δύο δρομολογητές ανταλλάσσουν ψηφιακά πιστοποιητικά. Αυτά θα πρέπει να είναι υπογεγραμμένα από πριν από κάποιον τρίτο τον οποίο εμπιστεύεται τόσο ο Bob όσο και η Alice (οι δρομολογητές αυτών). Όταν ενεργοποιηθεί το ΙΚΕ κανάλι οι δρομολογητές μπορούν να ξεκινήσουν τις διαπραγματεύσεις για την IPSec SA. Όταν αυτή πια, ενεργοποιηθεί τότε θα έχει συμφωνηθεί ένας αλγόριθμος κρυπτογράφησης (για παράδειγμα ο DES) και ένας αλγόριθμος πιστοποίησης (για παράδειγμα ο MD5) και θα έχει επιπλέον γίνει και η ανταλλαγή κάποιου κλειδιού. Τώρα πλέον ο δρομολογητής του Bob μπορεί να κρυπτογραφήσει τα IP πακέτα του και να τα τοποθετήσει σε νέα IPSec πακέτα για να τα στείλει στο δρομολογητή της Alice. Όταν ο τελευταίος τα λαμβάνει, κοιτάει την IPSec SA και κατόπιν αποθυλακώνει και επεξεργάζεται κατάλληλα το αρχικό πακέτο το οποίο και προωθεί στην Alice. Όσο και σύνθετα αν ακούγονται όλα αυτά, στην πραγματικότητα συμβαίνουν εντελώς αυτόματα και χωρίς να φαίνεται το παραμικρό στα μάτια τόσο του Bob όσο και της Alice.
5.1.5 Περαιτέρω Πληροφορίες
Links για επιπλέον πληροφορίες: http://www.cisco.com
5.2 NAT (Network Address Translation)
5.2.1 Τι είναι το
NATΟ Μεταφραστής Διευθύνσεων Δικτύου σχεδιάστηκε για απλοποίηση και διατήρηση των
IP διευθύνσεων αφού αυτό που κάνει είναι να επιτρέπει σε ιδιωτικά δίκτυα που χρησιμοποιούν μη εγγεγραμμένες IP διευθύνσεις να έχουν σύνδεση με το Internet. Το σύστημα ΝΑΤ λειτουργεί σε κάποιον δρομολογητή, ο οποίος συνδέει συνήθως δύο δίκτυα και μεταφράζει τις ιδιωτικές (μη μοναδικές στον παγκόσμιο ιστό) διευθύνσεις του εσωτερικού δικτύου σε νόμιμες διευθύνσεις προτού τα πακέτα προωθηθούν σε άλλο δίκτυο. Σαν μέρος αυτής της λειτουργίας το ΝΑΤ μπορεί να ρυθμιστεί να κάνει γνωστή μόνο μία διεύθυνση στον έξω κόσμο για ολόκληρο το δίκτυο που συνδέει με αυτόν. Αυτό το χαρακτηριστικό παρέχει επιπλέον ασφάλεια αφού κρύβει ολόκληρο το εσωτερικό δίκτυο από το κόσμο πίσω από μία διεύθυνση.Επιπλέον
, μία επιχείρηση μπορεί να θέλει να έχει σύνδεση με το Internet χρησιμοποιώντας όμως παραπάνω από έναν παροχέα υπηρεσιών internet (ISP) για διάφορους λόγους. Το να διατηρεί κανείς σύνδεση στο internet μέσω παραπάνω του ενός ISP μπορεί να θεωρηθεί σαν ένας τρόπος αύξησης της αξιοπιστίας της σύνδεσης στο internet. Τέτοιου είδους sites με πολλαπλές συνδέσεις ονομάζονται "multi-homed". Όταν η σύνδεση από τον ένα παροχέα πέφτει τότε η εταιρία περνάει σε κάποιον άλλο διατηρώντας τη σύνδεσή της έτσι πάντα. Ακόμα ένα πλεονέκτημα αυτού του σχήματος είναι το ότι η επιχείρηση μπορεί να διανείμει το φορτίο της σε διαφορετικές συνδέσεις. Για επιχειρήσεις μάλιστα που εκτείνονται σε μεγάλη γεωγραφική περιοχή ένα τέτοιο σχήμα θα σήμαινε και καλύτερη διαδικασία δρομολόγησης.Όλες οι παραπάνω σκέψεις συνδυαζόμενες και με τις συνεχώς μειούμενες τιμές των
internet συνδέσεων δίνουν κίνητρο σε όλο και περισσότερες εταιρίες να γίνουν "multi-homed". Την ίδια στιγμή, ο φόρτος που τέτοιες εταιρίες επιβάλλουν στους δρομολογητές στο internet αυξάνεται και γίνεται ολοένα και πιο σημαντικός. Πρέπει λοιπόν να βρεθεί ένας τρόπος κλιμακοποίησης του internet και υποστήριξης αυτών των επιχειρήσεων. Μία λύση θα ήταν οι δρομολογητές της ελεύθερης ζώνης του internet να διατηρούσαν μία διαδρομή για κάθε "multi-homed" επιχείρηση που συνδέεται με παραπάνω του ενός ISPs στο internet. Αυτή η λύση όμως δεν παρέχει επαρκή κλιμακοποίηση. Επιπλέον μία λύση για τη διαχείριση της δρομολόγηση τέτοιων εταιριών θα πρέπει να ενσωματώνει το σκεπτικό ότι ο απαιτούμενος βαθμός συνεργασίας των ISPs θα πρέπει να είναι όσο το δυνατόν μικρότερος και ιδιαίτερα αυτών που δεν συνδέονται άμεσα με τις επιχειρήσεις αυτές.Το
RFC2260 περιγράφει ένα μηχανισμό κατανομής διευθύνσεων και δρομολόγησης για "multi-homed" επιχειρήσεις ο οποίος έχει αρκετά καλή κλιμάκωση. Ωστόσο, δεν του λείπουν και τα μειονεκτήματα. Απαιτεί επαναδιευθυνσιοδότηση μέρους της επιχείρησης όταν αυτή αλλάξει έναν από τους ISPs της ή όταν πρωτογίνει "multi-homed". Επιπλέον, η ικανότητα μιας επιχείρησης να διανέμει τη κίνηση στις διαφορετικές ISP συνδέσεις της, καθορίζεται σε μεγάλο βαθμό από την ανάθεση διευθύνσεων μέσα στην επιχείρηση. Αυτό θα μπορούσε να θεωρηθεί ότι κάνει το καταμερισμό του φορτίου μια άκαμπτη και δυσκίνητη υπόθεση. Ο έλεγχος της κίνησης μέσω της ανάθεσης διευθύνσεων επιφέρει και επιπλέον πολυπλοκότητα στα σχήματα διευθυνσιοδότησης στο εσωτερικό της επιχείρησης.Η προτεινόμενη
, εδώ, λύση είναι το NAΤ. Θα δούμε πως αυτό το σύστημα μπορεί να απαντήσει στα θέματα που τέθηκαν και πώς επιπλέον μπορεί να δραστηριοποιηθεί στην κατεύθυνση της κλιμακοποίησης της δρομολόγησης στις "multi-homed" περιπτώσεις. Το σχήμα που προτείνει το NAT δεν απαιτεί από την επιχείρηση να επαναδιευθυνσιοδοτήσει κατά την αλλαγή ISP και επιτρέπει το καταμερισμό του φορτίου της ανεξάρτητα από το σκηνικό της διευθυνσιοδότησης που υπάρχει μέσα στην επιχείρηση. Η παροχή υπηρεσίας αλλαγής ISP σε περίπτωση που πέσει η σύνδεση με αυτόν που εξυπηρετεί την εταιρία είναι εφαρμόσιμη τόσο στο IPv4 όσο και στο IPv6.5.2.2
Ανάθεση Διευθύνσεων και ΔρομολόγησηΜία
"multi-homed" επιχείρηση συνδεδεμένη ένα σύνολο ISPs έχει πάρει κάποια πεδία διευθύνσεων από καθέναν από τους ISPs (για παράδειγμα μία εταιρία συνδεδεμένη με Ν ISPs θα έχει Ν διαφορετικά πεδία διευθύνσεων). Αυτές τις διευθύνσεις τις ονομάζουμε "εσωτερικές παγκόσμιες διευθύνσεις". Η ανάθεση τέτοιων διευθύνσεων από τους ISPs στην επιχείρηση μπορεί να βασίζεται στη πολιτική του "δανεισμού διευθύνσεων" [RFC2008]. Τέτοιες διευθύνσεις προέρχονται από πεδία διευθύνσεων που οι ISPs χρησιμοποιούν για να δανείζουν κομμάτια αυτών στους πελάτες τους. Ένα σύστημα ΝΑΤ που συνδέει μια επιχείρηση με έναν ISP χρησιμοποιεί το BGP για να διακηρύξει στον ISP την απευθείας σύνδεσή του με τις εσωτερικές παγκόσμιες διευθύνσεις που έχουν παραχωρηθεί από τον ISP τον ίδιο. Ο ISP με τη σειρά του ομαδοποιεί την πληροφορία αυτή και την διασύνδεει με ένα δρομολόγιο απαλείφοντας την ανάγκη να κρατάει στην ελεύθερη ζώνη του internet δρομολόγια για κάθε "multi-homed" επιχείρηση. Το ΝΑΤ δρα σαν ακραίος δρομολογητής-έχει μία εξωτερική BGP (EBGP) σύνδεση με έναν ή παραπάνω από τους δρομολογητές του παροχέα υπηρεσιών (ISP) και μια εσωτερική BGP (IBGP) σύνδεση με άλλα συστήματα NΑΤ στο εσωτερικό της επιχείρησης.Το σχήμα, που περιγράφεται εδώ
, δεν θέτει περιορισμούς στην ανάθεση διευθύνσεων στο εσωτερικό της επιχείρησης. Μπορούν να χρησιμοποιηθούν είτε παγκοσμίως μοναδικές διευθύνσεις είτε διευθύνσεις από το "ιδιωτικό" πεδίο διευθύνσεων είτε διευθύνσεις που χρησιμοποιούνται από άλλους στο internet. Αναφερόμαστε στις διευθύνσεις που χρησιμοποιούνται για ανάθεση στο εσωτερικό της επιχείρησης ως "εσωτερικές τοπικές διευθύνσεις".Επιπρόσθετα των εσωτερικών και εξωτερικών παγκόσμιων διευθύνσεων
, μια επιχείρηση πρέπει να αναθέσει σε κάθε ένα απο τα συστήματα NAT που διαθέτει, ένα πεδίο διευθύνσεων το οποίο να μην συμπίπτει τόσο με τις εσωτερικές τοπικές διευθύνσεις όσο και με οποιαδήποτε από τις (παγκοσμίως μοναδικές) internet διευθύνσεις. Αναφερόμαστε σε αυτές τις διευθύνσεις ως "εξωτερικές τοπικές διευθύνσεις". Οι διευθύνσεις αυτές μπορεί να προέρχονται από το ιδιωτικό πεδίο διευθύνσεων (εάν η επιχείρηση χρησιμοποιεί ιδιωτικό πεδίο διευθύνσεων για τις εσωτερικές τοπικές διευθύνσεις, τότε πρέπει να κρατήσει ένα μέρος αυτών για χρήση από τις εξωτερικές τοπικές διευθύνσεις). Το ΝΑΤ μιας επιχείρησης διακηρύττει στη δρομολόγηση της επιχείρησης απευθείας δυνατότητα σύνδεσης με εξωτερικές τοπικές διευθύνσεις που έχουν ανατεθεί στο ΝΑΤ. Αυτή η πληροφορία είναι και η μόνη πληροφορία δρομολόγησης που το ΝΑΤ διακηρύττει στην επιχείρηση. Έτσι η δρομολόγηση στην εταιρία διεκπεραιώνει δρομολογήσεις προς όλους τους εσωτερικούς της προορισμούς και προς τις εξωτερικές τοπικές διευθύνσεις που έχουν ανατεθεί στα ΝΑΤ της επιχείρησης και μόνο προς αυτές.Σχήμα 1:Multi—homed Enterprise
Σαν επίδειξη ας εξετάσουμε το παράδειγμα που φαίνεται στο σχήμα
1, όπου η επιχείρηση foo. com είναι συνδεδεμένη με δύο παροχείς υπηρεσιών (ISPs), τον ISP1 και τον ISP2. Ο ISP1 δίνει από το 140. 16/16 πεδίο διευθύνσεών του το υπο-πεδίο 140. 16. 10/24 στην επιχείρηση. Το ΝΑΤ1 που συνδέει την επιχείρηση με τον ISP1 διακηρύσσει στον ISP1 απευθείας σύνδεση με το 193. 17. 15/24Για τις εξωτερικές τοπικές διευθύνσεις της η επιχείρηση χρησιμοποιεί διευθύνσεις από το ιδιωτικό πεδίο διευθύνσεων
. Για το ΝΑΤ1 η επιχείρηση διαθέτει το 192. 168. 1/24 πεδίο και για το ΝΑΤ2 το 192. 168. 2/24. Το ΝΑΤ1 διακηρύττει στην επιχείρηση απευθείας σύνδεση με το 192. 168. 1/24 και το ΝΑΤ2 αντίστοιχα με το 192. 168. 2/24. Όλα αυτά θεωρώντας ότι η επιχείρηση χρησιμοποιεί το πεδίο 10/8 για τις εσωτερικές τοπικές της διευθύνσεις.5.2.3
Επισκόπηση ΛειτουργιώνΤο ΝΑΤ μπορεί να κάνει μετάφραση τόσο των διευθύνσεων των πηγών των πακέτων όσο και αυτών των προορισμών τους
. Η μετάφραση γίνεται με τη βοήθεια του πίνακα μετάφρασης διευθύνσεων ο οποίος διατηρείται από το ΝΑΤ. Επιπλέον θεωρούμε ότι η λειτουργία της μετάφρασης των διευθύνσεων επαυξάνεται με μερικά από τα Application Layer Gateways (ALGs) που είναι λειτουργίες για εφαρμογές που περιέχουν IP διευθύνσεις σαν μέρος της ροής δεδομένων της εφαρμογής. Ειδικότερα, θεωρούμε ότι ένα σύστημα ΝΑΤ υλοποιεί την ALG λειτουργία για το πρωτόκολλο DNS.Πίνακας Μετάφρασης Διευθύνσεων
Ο Πίνακας Μετάφρασης Διευθύνσεων που διατηρεί το ΝΑΤ αποτελείται από καταχωρήσεις δύο τύπων
:μετάφραση εσωτερικών διευθύνσεων και μετάφραση εξωτερικών διευθύνσεων. Κάθε καταχώρηση αποτελείται από δύο μέρη: την τοπική διεύθυνση και τη παγκόσμια διεύθυνση.Το στοιχείο της τοπικής διεύθυνσης ενός τύπου καταχώρησης εσωτερικής μετάφρασης είναι μία διεύθυνση
παρμένη από το πεδίο των εσωτερικών τοπικών διευθύνσεων. Αναφερόμαστε σε μια τέτοια διεύθυνση ως γνωστόν με το χαρακτηρισμό "εσωτερική τοπική διεύθυνση" (IL). Το στοιχείο της παγκόσμιας διεύθυνσης μιας τέτοιας καταχώρησης είναι μια διεύθυνση που έχει εξαχθεί από το πεδίο των εσωτερικών παγκοσμίων διευθύνσεων που έχει δοθεί στο ΝΑΤ και αναφερόμαστε σε μια τέτοια διεύθυνση με το όνομα "εσωτερική παγκόσμια διεύθυνση" (IG).Το στοιχείο της τοπικής διεύθυνσης ενός εξωτερικού τύπου μετάφρασης διεύθυνσης είναι μία διεύθυνση που έχει εξαχθεί από το εξωτερικό τοπικό πεδίο διευθύνσεων που υπάρχει στο ΝΑΤ
. Αναφερόμαστε σε μια τέτοια διεύθυνση με το χαρακτηρισμό "εξωτερική τοπική διεύθυνση" (OL). Τέλος το στοιχείο της παγκόσμιας διεύθυνσης μιας τέτοιας καταχώρησης είναι μια διεύθυνση ενός υπολογιστή έξω από την επιχείρηση. . Αναφερόμαστε σε μια τέτοια διεύθυνση με το χαρακτηρισμό "εξωτερική παγκόσμια διεύθυνση" (OG).Περιληπτικά
:Γέμισμα του Πίνακα Μετάφρασης Διευθύνσεων
Ουσιαστικές για τη λειτουργία των ΝΑΤ είναι οι διαδικασίες γεμίσματος του πίνακα μετάφρασης διευθύνσεων
.Δημιουργείται ως αποτέλεσμα επεξεργασίας DNS απαντήσεων πακέτων δεδομένων που προέρχονται από το εξωτερικό της επιχείρησης
Δημιουργείται ως αποτέλεσμα επεξεργασίας DNS απαντήσεων πακέτων δεδομένων που προέρχονται από το εσωτερικό της επιχείρησης
5.2.4 Παροχή Αδιάλειπτης Εφεδρικής Σύνδεσης
Πρώτη Μέθοδος
:"Auto Route Injection"Ας θεωρήσουμε το παράδειγμα που φαίνεται στο σχήμα
2. Θεωρούμε ότι ο δρομολογητής που συνδέει την επιχείρηση στον ISP-A ονομάζεται ENT-BR-A και ο αντίστοιχος για τον ISP-B ENT-BR-B. θεωρούμε επίσης ότι ο δρομολογητής του ISP-A που συνδέει αυτόν με την επιχείρηση λέγεται ISP-BR-A και ο αντίστοιχος του ISP-B λέγεται ISP-BR-Β. Θεωρούμε επιπλέον ότι το πεδίο εσωτερικών παγκοσμίων διευθύνσεων που ο ISP-A έδωσε στην επιχείρηση ότι λέγεται Prefix A και το αντίστοιχο του ISP-B ότι λέγεται Prefix B.
Σχήμα 2
: "Auto Route Injection"—Steady StateΌταν το σύνολο των δρομολογίων που λαμβάνει ο
ENT-BR-A από τον ISP-BR-A (μέσω EBGP) έχει ένα γεμάτο τμήμα με το σύνολο των δρομολογίων που ο ENT-BR-A λαμβάνει από τον ISP-BR-Β (μέσω EBGP), τότε ο ENT-BR-A διακηρύττει στον ISP-BR-A ότι έχει σύνδεση μόνο με το Prefix A. Όταν το κοινό μέρος είναι άδειο τότε ο ENT-BR-A διακηρύττει στον ISP-BR-A ότι έχει σύνδεση και με το Prefix A και με το Prefix B. (Στο σχήμα 3 η σύνδεση μεταξύ των ENT-BR-B και ISP-BR-Β έχει χαθεί ). Αυτή η προσέγγιση είναι γνωστή ως "auto route injection" και θα συνεχίζεται για όσο διάστημα η σύνδεση παραμένει κάτω. Με το που το κοινό μέρος γεμίσει, ο ENT-BR-A θα σταματήσει να διακηρύττει σύνδεση με το Prefix B στον ISP-BR-A (αλλά θα συνεχίσει να διακηρύττει σύνδεση με το Prefix A στον ISP-BR-A).Σχήμα 3
: "Auto Route Injection"—Broken ConnectionΗ παραπάνω προσέγγιση είναι βασισμένη στην υπόθεση ότι ο δρομολογητής της επιχείρησης έχει τους μηχανισμούς που θα τον βοηθούσαν
Κάθε σύστημα ΝΑΤ εκτός της διακήρυξης στον δρομολογητή της επιχείρησης της σύνδεσης με τις εξωτερικές τοπικές διευθύνσεις που αποδόθηκαν στο ΝΑΤ είναι επιπλέον επιφορτισμένο με την ευθύνη να διακηρύττει στον δρομολογητή της επιχείρησης της σύνδεσης με τις εξωτερικές παγκόσμιες διευθύνσεις που αποδόθηκαν στο ΝΑΤ
. Αυτό με τη σειρά του συνεπάγεται ότι καμία από τις εξωτερικές παγκόσμιες διευθύνσεις που αποδόθηκαν στο ΝΑΤ θα μπορούσαν να χρησιμοποιηθούν από εσωτερικές τοπικές διευθύνσεις. Αυτό είναι αναγκαίο για την αποφυγή διάσπασης των μεταφορικών συνδέσεων σε περίπτωση που πέσει η σύνδεση μεταξύ της επιχείρησης και των παροχέων υπηρεσιών (ISP) της. Επιπλέον το ΝΑΤ πρέπει να εμφυσά στην επιχείρηση ένα δεδομένο δρομολόγιο (default route) όσο καταλαβαίνει ότι διατηρείται η σύνδεση με το Internet.Με αυτή τη μέθοδο και σε σταθερή κατάσταση τα δρομολόγια που εμφυσούνται από την επιχείρηση στους
ISPs της ομαδοποιούνται από αυτούς και δεν αναπαράγονται στην "ελεύθερη ζώνη" του internet. Μπορεί να ειπωθεί ότι όταν χαθεί η σύνδεση, όπως φαίνεται στο σχήμα 3, αυτή η μέθοδος θα είχε ως αποτέλεσμα την εμφύτεψη επιπλέον πληροφορίας δρομολόγησης στην "ελεύθερη ζώνη" του internet. Ωστόσο, κάποιος θα μπορούσε να παρατηρήσει ότι η πιθανότητα να χάσουν όλες οι "multi-homed" επιχειρήσεις τη σύνδεσή τους με το internet ταυτόχρονα είναι πολύ μικρή. Έτσι κατά μέσο όρο ο αριθμός των επιπλέον δρομολογίων στην "ελεύθερη ζώνη" του internet εξαιτίας των "multi-homed" επιχειρήσεων αναμένεται να είναι μόνο ένα μικρό κλάσμα του συνολικού αριθμού αυτών των επιχειρήσεων.Δεύτερη Μέθοδος
:"Non-Direct"BGP PeeringΗ πρώτη μέθοδος επιτρέπει τη δραστική μείωση του φόρτου δρομολόγησης στην εξ ορισμού ελεύθερη
(default-free) ζώνη του internet εξαιτίας των "multi-homed" επιχειρήσεων. Η παρακάτω προσέγγιση επιτρέπει την πλήρη απάλειψη αυτού του φαινομένου.Ο δρομολογητής της επιχείρησης διατηρεί
EBGP σύνδεση όχι μόνο με τον απευθείας σε αυτούς συνδεδεμένους δρομολογητές των ISPs αλλά και με τους δρομολογητές άλλων ISPs που είναι άμεσα συνδεδεμένοι με άλλους δρομολογητές της επιχείρησης. Αυτή η αντιστοίχηση λέγεται "όχι άμεση EBGP αντιστοιχήσει" και φαίνεται στο σχήμα 4.
Σχήμα 4
:"Non—Direct" EBGP Peering—Steady StateΈνας ISP που διατηρεί τόσο άμεση όσο και έμμεση EBGP σύνδεση με μια συγκεκριμένη επιχείρηση διακηρύττει το ίδιο σύνολο δρομολογίων και στις δύο συνδέσεις. Ένας δρομολογητής επιχείρησης που διατηρεί άμεση ή έμμεση σύνδεση με τον ISP διακηρύττει σε αυτόν το Prefix διευθύνσεων που διατέθηκε στην επιχείρηση από αυτόν τον ISP. Στον ISP προτιμούνται τα δρομολόγια που ελήφθησαν από άμεση σύνδεση—αντιστοίχηση από τα αντίστοιχα των μη άμεσων συνδέσεων. Η προώθηση μέσω δρομολογίου που ελήφθη από έμμεση σύνδεση γίνεται με ενθυλάκωση[GRE].
Σαν παράδειγμα ας πάρουμε τη διάταξη του σχήματος
5. Η τοπολογία είναι ίδια με αυτή του σχήματος 2 μόνο που εδώ έχουμε και μια επιπλέον έμμεση EBGP σύνδεση του ENT-BR-A με τον ISP-BR-B. Ο ENT-BR-Β διατηρεί άμεση EBGP σύνδεση με τον ISP-BR-B και διακηρύττει σε αυτόν σύνδεση με το Prefix B. Τέλος, ο ENT-BR-Β διατηρεί έμμεση EBGP σύνδεση με τον ISP-BR-Α και διακηρύττει σε αυτόν σύνδεση με το Prefix Α.Όταν η σύνδεση της εταιρίας με τους δύο
ISPs είναι ζωντανή, η κίνηση που προορίζεται για υπολογιστές των οποίων οι διευθύνσεις υπήρχαν στο Prefix A θα περάσουν μέσα από τον ISP-A στον ISP-BR-A και τέλος στον ENT-BR-A και την επιχείρηση. Αντίστοιχα, η κίνηση που προορίζεται για υπολογιστές των οποίων οι διευθύνσεις υπήρχαν στο Prefix Β θα περάσει μέσα από τον ISP-Β στον ISP-BR-Β και τέλος στον ENT-BR-Β και την επιχείρηση. Τώρα ας δούμε τι θα γινόταν εάν χανόταν η σύνδεση μεταξύ των ISP-BR-Β και ENT-BR-Β. Σε αυτή τη περίπτωση η κίνηση προς τους υπολογιστές με Prefix A θα γίνεται όπως και πριν. Όμως η κίνηση προς αυτούς με Prefix B θα πηγαίνει από τον ISP-Β στον ISP-BR-Β και αυτός θα την ενθυλακώνει και θα τη στέλνει στον ENT-BR-Α όπου θα απο-ενθυλακώνετε και θα στέλνεται στην επιχείρηση όπως φαίνεται και στο σχήμα 5.
Σχήμα 5:"Non--Direct" EBGP Peering—Broken Connection
Κάθε σύστημα ΝΑΤ εκτός της διακήρυξης στον δρομολογητή της επιχείρησης της σύνδεσης με τις εξωτερικές τοπικές διευθύνσεις που αποδόθηκαν στο ΝΑΤ είναι επιπλέον επιφορτισμένο με την ευθύνη να διακηρύττει στον δρομολογητή της επιχείρησης της σύνδεσης με τις εξωτερικές παγκόσμιες διευθύνσεις που αποδόθηκαν στο ΝΑΤ
. Αυτό με τη σειρά του συνεπάγεται ότι καμία από τις εξωτερικές παγκόσμιες διευθύνσεις που αποδόθηκαν στο ΝΑΤ θα μπορούσαν να χρησιμοποιηθούν από εσωτερικές τοπικές διευθύνσεις. Αυτό είναι αναγκαίο για την αποφυγή διάσπασης των μεταφορικών συνδέσεων σε περίπτωση που πέσει η σύνδεση μεταξύ της επιχείρησης και των παροχέων υπηρεσιών (ISP) της. Επιπλέον το ΝΑΤ πρέπει να εμφυσά στην επιχείρηση ένα δεδομένο δρομολόγιο (default route) όσο καταλαβαίνει ότι διατηρείται η σύνδεση με το Internet.Μπορούμε να παρατηρήσουμε ότι με αυτό το σχήμα δεν υπάρχει επιπλέον πληροφορία δρομολόγησης εξαιτίας των
"multi-homed" επιχειρήσεων στην "default-free" ζώνη του internet. Επιπλέον βλέπουμε ότι το σύνολο των δρομολογητών μέσα σε έναν ISP που διατηρούν έμμεσες συνδέσεις με δρομολογητές επιχειρήσεων δεν είναι αναγκαστικό να συμπίπτει με τους δρομολογητές που διατηρούν άμεσες συνδέσεις. Για την έμμεση αντιστοίχηση μπορεί να χρησιμοποιηθεί οποιοσδήποτε άλλος δρομολογητής βελτιώνοντας έτσι την αξιοπιστία του συστήματος σε περιπτώσεις αποτυχιών μέσα στον ISP.5.2.5
Υπολογιστές Επιχειρήσεων Εκτός του Δικτύου ΑυτώνΜία
DNS ζώνη σχετιζόμενη με μια επιχείρηση μπορεί να περιλαμβάνει έναν ή παραπάνω υπολογιστές που βρίσκονται εκτός του δικτύου της επιχείρησης. Για παράδειγμα αυτοί που δεν βρίσκονται πίσω από το ΝΑΤ της επιχείρησης. Για την υποστήριξη της επικοινωνίας με αυτούς ο πίνακας μετάφρασης διευθύνσεων του κάθε ΝΑΤ που συνδέει την επιχείρηση με το internet ρυθμίζεται με έναν εσωτερικό και έναν εξωτερικό τύπο μετάφρασης για κάθε υπολογιστή. Στη καταχώρηση εσωτερικού τύπου μετάφρασης η εσωτερική τοπική διεύθυνση ισοδυναμεί με μια διεύθυνση από τις εξωτερικές τοπικές διευθύνσεις του ΝΑΤ και η εσωτερική παγκόσμια διεύθυνση ισοδυναμεί με την IP διεύθυνση του υπολογιστή. Στην εξωτερικού τύπου καταχώρηση μετάφρασης η εξωτερική τοπική διεύθυνση ισοδυναμεί με την εσωτερική παγκόσμια διεύθυνση της καταχώρησης εσωτερικών διευθύνσεων και η εξωτερική παγκόσμια διεύθυνση ισοδυναμεί με την εσωτερική διεύθυνση της μετάφρασης εσωτερικού τύπου καταχώρησης.Η
DNS καταχώρηση για έναν τέτοιο υπολογιστή (Α και PTR RR) χρησιμοποιούν την IP διεύθυνση του υπολογιστή.5.2.6
Περαιτέρω ΠληροφορίεςΟ αναγνώστης μπορεί να βρει επιπλέον πληροφορίες στο
site της Cisco διεύθυνση: http://www.cisco.com5.3 Secure Socket Layer (SSL)
5.3.1 Γενικά
Το πρωτόκολλο SSL αναπτύχθηκε από την
Netscape Communications Corporation για την ασφαλή επικοινωνία ευαίσθητων πληροφοριών όπως προσωπικά στοιχεία και αριθμούς πιστωτικών καρτών. Η πρώτη σχεδίαση του πρωτοκόλλου έγινε τον Ιούλιο του 1994 και αποτελούσε την πρώτη έκδοση (version 1.0) και τον Οκτώβριο του ίδιου χρόνου δημοσιοποιήθηκε υπό την μορφή RFC (Request For Comments). Τον Δεκέμβριο του 1994 εκδίδεται μια επαναθεώρηση του πρωτοκόλλου, η δεύτερη έκδοση του (version 2.0). Η παρούσα έκδοση του SSL, version 3.0, παρουσιάσθηκε στο κοινό στα τέλη του 1995, ενώ από τα μέσα του 1995 είχε αρχίσει να εφαρμόζεται σε προϊόντα της εταιρίας, όπως τον Netscape Navigator.Επειδή η
Netscape επιθυμούσε την παγκόσμια υιοθέτηση του πρωτοκόλλου γεγονός που ερχόταν σε σύγκρουση με τους νόμους των Ηνωμένων Πολιτειών περί εξαγωγή κρυπτογραφικών αλγορίθμων, αναγκάστηκε να επιτρέψει την χρήση ασθενών αλγορίθμων στις εξαγόμενες εφαρμογές. Πιο συγκεκριμένα, δημιούργησε παραλλαγές των αλγόριθμων RC4-128 και RC2-128 που στην πραγματικότητα χρησιμοποιούν κλειδιά των 40 bits.5.3.2 Εισαγωγή στο SSL
Το πρωτόκολλο SSL έχει σχεδιαστεί για να παρέχει απόρρητη επικοινωνία μεταξύ δύο συστημάτων, από τα οποία το ένα λειτουργεί σαν client και το άλλο σαν
server. Η εξασφάλιση του απορρήτου γίνεται με την κρυπτογράφηση όλων των μηνυμάτων στο επίπεδο SSL Record Protocol. Παρέχει, επιπλέον, υποχρεωτική πιστοποίηση της ταυτότητας του server και προαιρετικά της ταυτότητας του client, μέσω έγκυρων πιστοποιητικών από έμπιστες Αρχές Έκδοσης Πιστοποιητικών (Certificates Authorities). Υποστηρίζει πληθώρα μηχανισμών κρυπτογράφησης και ψηφιακών υπογραφών για αντιμετώπιση όλων των διαφορετικών αναγκών. Τέλος, εξασφαλίζει την ακεραιότητα των δεδομένων, εφαρμόζοντας την τεχνική των Message Authentication Codes (MACs), ώστε κανείς να μην μπορεί να αλλοιώσει την πληροφορία χωρίς να γίνει αντιληπτός. Όλα τα παραπάνω γίνονται με τρόπο διαφανές και απλό.Η έκδοση 3 του πρωτοκόλλου κάλυψε πολλές αδυναμίες της δεύτερης. Οι σημαντικότερες αλλαγές έχουν να με την μείωση των απαραίτητων μηνυμάτων κατά το
handshake για την εγκαθίδρυση της σύνδεσης, την επιλογή των αλγόριθμων συμπίεσης και κρυπτογράφησης από τον server και την εκ νέου διαπραγμάτευση του master-key και session-id. Ακόμα αυξάνονται οι διαθέσιμοι αλγόριθμοι και προστίθενται νέες τεχνικές για την διαχείριση των κλειδιών.Συμπερασματικά μπορούμε να πούμε πως η έκδοση 3 του SSL είναι πιο ολοκληρωμένη σχεδιαστικά, με μεγαλύτερο εύρος υποστήριξης εφαρμογών και λιγότερες ατέλειες. Παρ' όλο που είναι συμβατή με την δεύτερη έκδοση, η χρήση της τελευταίας δεν πρέπει να προτιμάται.
Το SSL μπορεί να τοποθετηθεί στην κορυφή οποιουδήποτε πρωτοκόλλου μεταφοράς, δεν εξαρτάται από την ύπαρξη του TCP/IP
και τρέχει κάτω από πρωτόκολλα εφαρμογών όπως το HTTP, FTP και TELNET. Μια αναπαράσταση του πρωτοκόλλου SSL βλέπουμε παρακάτω.
5.3.3 Υποστηριζόμενοι Αλγόριθμοι
Οι αλγόριθμοι κρυπτογράφησης χωρίζονται στους
stream ciphers και στους block ciphers. Στους stream ciphers ανήκουν οι RC4 με κλειδιά 40 bits και 128 bits. Στους block ciphers ανήκουν οι RC2 με κλειδιά 40 και 128 bits, οι DES, DES40, Triple DES και οι IDEA και Fortezza.Οι αλγόριθμοι για την παραγωγή των
hash και digest values για τα MACs είναι ο MD5 (128-bit hash) και ο SHA (160-bit hash).Οι τεχνικές διαχείρισης των κλειδιών (
key management) διακρίνονται στους: την ασύμμετρη κρυπτογραφία με RSA, την τεχνική Diffie-Hellman. Τα πιστοποιητικά είναι της μορφής Χ.509. Ο RSA μαζί με τον DSS και τον Fortezza μπορούν να χρησιμοποιηθούν για την ψηφιακή υπογραφή των κλειδιών κρυπτογράφησης.Προσφέρεται και η δυνατότητα επιλογής ανασφάλιστης επικοινωνίας, αλλά δεν συνιστάται.
5.3.4 Το SSL και το OSI μοντέλο
Είναι σημαντικό κάθε νέο πρωτόκολλο επικοινωνίας να συμμορφώνεται με το OSI μοντέλο, έτσι ώστε να μπορεί εύκολα να αντικαταστήσει κάποιο υπάρχον πρωτόκολλο ή να ενσωματωθεί στην υπάρχουσα δομή πρωτοκόλλων.
Το SSL χωρίζεται σε δύο μέρη, το SSL
Handshake Protocol (SSLHP) και το SSL Record Protocol (SSLRP). Το SSLHP διαπραγματεύεται τους αλγόριθμους κρυπτογράφησης που θα χρησιμοποιηθούν και πραγματοποιεί την πιστοποίηση της ταυτότητας του server και εάν ζητηθεί και του client. Το SSLRP συλλέγει τα δεδομένα σε πακέτα και αφού τα κρυπτογραφήσει τα μεταδίδει και αποκρυπτογραφεί τα παραλαμβανόμενα πακέτα.Βλέπουμε πως το SSL λειτουργεί επιπρόσθετα της υπάρχουσας δομής του
OSI και όχι σαν πρωτόκολλο αντικατάστασης. Επίσης είναι πασιφανές ότι η χρήση του SSL δεν αποκλείει την χρήσης άλλου μηχανισμού ασφαλείας που λειτουργεί σε υψηλότερο επίπεδο, για παράδειγμα το S/HTTP που εφαρμόζεται στο επίπεδο Εφαρμογών, πάνω από το SSL.5.3.5 Λειτουργία του SSL
SSL Record Protocol
Ένα πακέτο SSL αποτελείται από δύο μέρη, την επικεφαλίδα και τα δεδομένα. Η επικεφαλίδα μπορεί να είναι είτε 3 bytes είτε 2 bytes, από τις οποίες περιπτώσεις η δεύτερη χρησιμοποιείται όταν τα δεδομένα χρειάζονται συμπλήρωμα (padding). Το πεδίο escape-bit στην περίπτωση των 3 bytes υπάρχει μόνο σε εκδόσεις μετά την δεύτερη του πρωτοκόλλου και προβλέπεται για ρύθμιση πληροφοριών out-of-band. Για την επικεφαλίδα των 2 bytes το μέγεθος του πακέτου είναι 32767 bytes, ενώ για την επικεφαλίδα των 3 bytes το μέγεθος είναι 16383 bytes.
Το κομμάτι των δεδομένων αποτελείται από ένα
Message Authentication Code (MAC), τα πραγματικά δεδομένα και δεδομένα συμπλήρωσης, εάν χρειάζονται. Αυτό το κομμάτι είναι που κρυπτογραφείται κατά την μετάδοση. Τα συμπληρωματική δεδομένα απαιτούνται όταν οι αλγόριθμοι κρυπτογράφησης εν χρήση είναι τύπου block ciphers και ο ρόλος τους είναι να συμπληρώνουν τα πραγματικά δεδομένα ώστε το μέγεθος τους είναι πολλαπλάσιου του μεγέθους που δέχεται σαν είσοδο ο block cipher. Εάν χρησιμοποιούνται stream ciphers τότε δεν απαιτείται συμπλήρωμα και μπορεί αν χρησιμοποιηθεί η επικεφαλίδα των 2 bytes.Το
MAC είναι η digest ή hash value των secret-write key (βλέπε παρακάτω) του αποστολέα του πακέτου, των πραγματικών δεδομένων, των συμπληρωματικών δεδομένων και ενός αριθμού ακολουθίας, στην σειρά που δίνονται.Προβλέπεται και η συμπίεση των δεδομένων
(data compression) με κατάλληλους μηχανισμούς που επιλέγονται κατά το handshake, ενώ δεν αποκλείεται να χρειαστεί και τεμαχισμός της πληροφορίας σε πολλά πακέτα (fragmentation).SSL Handshake Protocol
Το πρωτόκολλο
SSL Handshake διαχωρίζεται σε δύο επιμέρους φάσεις: η πρώτη φάση αφορά την επιλογή των αλγόριθμων, την ανταλλαγή ενός master key και την πιστοποίηση της ταυτότητας του server. Η δεύτερη φάση διαχειρίζεται την πιστοποίηση της ταυτότητας του client (εάν ζητηθεί) και ολοκληρώνει την διαδικασία του handshaking. Όταν το ολοκληρωθούν και οι δύο φάσεις, το στάδιο του handshake τελειώνει και η μεταφορά μεταξύ των δύο άκρων αρχίζει. Όλα τα μηνύματα κατά την διάρκεια του handshaking και μετά στέλνονται σύμφωνα με το SSL Record Protocol.Το πακέτο των αλγορίθμων κρυπτογράφησης
(Cipher Suite) περιλαμβάνει την μέθοδο για την ανταλλαγή των κλειδιών, τον αλγόριθμο κρυπτογράφησης και τον μηχανισμό για την παραγωγή του MAC.Παρακάτω θα δούμε τρεις διαφορετικές περιπτώσεις επικοινωνίας.
1. Πρώτα θα εξετάσουμε την περίπτωση της αρχικής σύνδεσης, χωρίς πιστοποίηση ταυτότητας του client. Χρησιμοποιείται η σύμβαση "{data}key" για να υποδηλώσουμε κρυπτογραφημένα δεδομένα με το κλειδί "key".
Ας δούμε βήμα προς βήμα την ακολουθία μηνυμάτων.
Τύπος Μηνύματος |
Κατεύθυνση |
Δεδομένα που μεταφέρονται |
client-hello |
C a S |
challenge-data, cipher-suite-specs, compressions |
server-hello |
C ? S |
connection-id, server-certificate, cipher-kind, compression-kind |
client-master-key |
C a S |
clear-master-key,{secret-master-key}server-public-key |
client-finish |
C a S |
{connection-id}client-write-key |
server-verify |
C ? S |
{challenge-data}server-write-key |
server-finish |
C ? S |
{session-id}server-write-key |
Με το μήνυμα
client-hello στέλνει ο client στον server μια λίστα με τους αλγόριθμους που υποστηρίζει και τα challenge-data που θα χρησιμοποιηθούν αργότερα για την πιστοποίηση της ταυτότητας του.Το μήνυμα
server-hello επιστρέφει στον client ένα αναγνωριστικό της σύνδεσης (connection-id), την επιλογή του server όσον αναφορά πακέτο των αλγόριθμων κρυπτογράφησης και συμπίεσης (που και οι δύο υποστηρίζουν) και το πιστοποιητικό του server που θα χρησιμοποιηθεί από τον client για την απόκτηση της δημόσιας κλείδας του server. Στην τελευταία έκδοση τουΤο
client-master-key και το master-key, που ανάλογα με το που βρίσκεται κάθε υπολογιστής, μπορεί να έχει δυο διαφορετικές μορφές. Για SSL εφαρμογές έξω από τις Ηνωμένες Πολιτείες, τα 88 bits του master-key μεταδίδονται μη κρυπτογραφημένα και κρυπτογραφούνται τα υπόλοιπα 40 bits με την δημόσια κλείδα του server. Αντίθετα για SSL εφαρμογές εντός των Ηνωμένων Πολιτειών, κρυπτογραφείται όλο το master-key και το clear-master-key είναι άδειο.Από αυτό το σημείο και μετά όλα τα μηνύματα κρυπτογραφούνται στο επίπεδο του
SSL Record Protocol. Το master-key δεν χρησιμοποιείται άμεσα για κρυπτογράφηση, αλλά για την παραγωγή δύο ζευγάρια κλειδιών. Το ένα ζευγάρι ανήκει στον client και αποτελείται από το client-write-key που χρησιμοποιεί ο client για να κρυπτογραφήσει τα μηνύματα προς τον server και το client-read-key για να αποκρυπτογραφήσει ότι λαμβάνει από αυτόν. Το δεύτερο ζευγάρι ανήκει στον server και αποτελείται από το server-write-key για κρυπτογράφηση μηνυμάτων προς τον client και το server-read-key για αποκρυπτογράφηση των παραληφθέντων. Για την ακρίβεια, το client-write-key είναι το ίδιο με το server-read-key και το client-read-key είναι το ίδιο με το server-write-key.Το
client-finish περιέχει το αναγνωριστικό της σύνδεσης που αρχικά είχε σταλεί από τον server κρυπτογραφημένο με το client-write-key.Το
server-verify περιέχει τα challenge-data που είχε στείλει ο client στον server κατά την αρχή της σύνδεσης, κρυπτογραφημένα με το server-write-key. Η παραλαβή και αποκρυπτογράφηση αυτού του μηνύματος είναι το τελικό στάδιο για την επιβεβαίωση της ταυτότητας του server καθ' ότι μόνο ο αληθινός server θα μπορούσε να αποκρυπτογραφήσει με την ιδιωτική του κλείδα το master-key.Τέλος, το μήνυμα
server-finish τερματίζει το handshake. Περιέχει το session-id που χρησιμοποιείται σε επόμενες διαδικασίες handshake για την αποφυγή επανάληψης της φάσης επιλογής αλγορίθμων και ανταλλαγής του master-key. Το session-id αποθηκεύεται και από τους δύο και η προτεινόμενη διάρκεια ζωής είναι 100 δευτερόλεπτα. Έπειτα, αχρηστεύεται.2. Όταν ένα προηγούμενο session-id από τον client χρησιμοποιείται για να επαναεγκαταστήσει την σύνδεση, το handshake γίνεται ως εξής:
Τύπος Μηνύματος |
Κατεύθυνση |
Δεδομένα που μεταφέρονται |
client-hello |
C a S |
challenge-data, session-id, cipher-suite-specs, compressions |
server-hello |
C ? S |
connection-id |
client-finish |
C a S |
{connection-id}client-write-key |
server-verify |
C ? S |
{challenge-data}server-write-key |
server-finish |
C ? S |
{session-id}server-write-key |
Αλλάζει το
client-hello που περιέχει επιπλέον το session-id και χρησιμοποιείται από τον server για να καθορίσει τους αλγόριθμους και το master-key. Η λίστα με τους αλγόριθμους στέλνεται ξανά για την περίπτωση όπου έχει λήξει το session-id.Το
server-hello στέλνεται μόνο όταν το session-id ισχύει ακόμα.3. Όταν ζητείται πιστοποίηση της ταυτότητας του client και έχει προηγουμένως εκδοθεί session-id, η ακολουθία των μηνυμάτων του handshaking γίνεται:
Τύπος Μηνύματος |
Κατεύθυνση |
Δεδομένα που μεταφέρονται |
client-hello |
C a S |
challenge-data, session-id, cipher-suite-specs |
server-hello |
C ? S |
connection-id, server-certificate, cipher-kind |
client-master-key |
C a S |
clear-master-key,{secret-master-key}server-public-key |
client-finish |
C a S |
{connection-id}client-write-key |
server-verify |
C ? S |
{challenge-data}server-write-key |
request-certificate |
C ? S |
{auth-type, cert-chal-data}server-write-key |
client-certificate |
C a S |
{cert-type, client-cert, resp-data}client-write-key |
server-finish |
C ? S |
{session-id}server-write-key |
Παρατηρούμε ότι τα προστίθονται δύο νέα μηνύματα στην προηγούμενη ακολουθία.
Το
request-certificate στέλνεται από τον server και περιέχει μια δήλωση για την συνάρτηση που θα χρησιμοποιήσει ο client για την παραγωγή της digest value και τον τύπο της συμμετρική κρυπτογράφησης (auth-type). Επίσης, αποστέλλονται και δεδομένα που θα υπογράψει ο client για να αποδείξει την ταυτότητα του (cert-chal-data).Το
client-certificate επιστρέφει στον server το πιστοποιητικό του client, μαζί με μια δήλωση του τύπου αυτού (cert-type )και την υπογραφή των δεδομένων cert-chal-data. Ο server θα χρησιμοποιήσει την δημόσια κλείδα που περιέχεται στο πιστοποιητικό του client για να αποκρυπτογραφήσει την υπογραφή. Έπειτα, θα υπολογίσει το message digest των cert-chal-data και θα το συγκρίνει με το message digest που προήλθε από την αποκρυπτογράφηση της υπογραφής.Κατά την διάρκεια όλων των παραπάνω ανταλλαγών μηνυμάτων, μηνύματα λάθους μπορούν να σταλούν σαν απάντηση σε μηνύματα που δεν βγάζουν νόημα. Η διαδικασία αναγνώρισης λάθους και αποστολή του κατάλληλου μηνύματος αναλαμβάνεται από το πρωτόκολλο SSL
Alert Protocol και είναι μέρος του SSL Handshake Protocol. Έτσι, το μήνυμα no-cipher-error στέλνεται όταν ο server δεν υποστηρίζει κανένα από τους αλγόριθμους που προτείνει ο client, το μήνυμα no-certificate-error όταν δεν είναι διαθέσιμο το ζητηθέν πιστοποιητικό, το μήνυμα bad-certificate αν το πιστοποιητικό είναι άκυρο και τέλος το unsupported-certificate-type-error, όταν ο τύπος ενός πιστοποιητικού δεν υποστηρίζεται από κανέναν.5.3.6 Αντοχή του SSL σε Γνωστές Επιθέσεις
Dictionary Attack
Αυτό το είδος της επίθεσης λειτουργεί όταν ένα μέρος του μη κρυπτογραφημένου κειμένου είναι στην κατοχή του ανέντιμων προσώπων. Το μέρος αυτό κρυπτογραφείται με χρήση κάθε πιθανού κλειδιού και έπειτα ερευνάται ολόκληρο το κρυπτογραφημένο μήνυμα μέχρι να βρεθεί κομμάτι του που να ταιριάζει με κάποιο από τα προϋπολογισμένα. Σε περίπτωση που η έρευνα έχει επιτυχία, τότε το κλειδί που χρησιμοποιήθηκε για την κρυπτογράφηση ολόκληρου του μηνύματος έχει βρεθεί.
Το
SSL δεν απειλείται από αυτήν την επίθεση αφού τα κλειδιά των αλγορίθμων του είναι πολύ μεγάλα των 128 bit. Ακόμα και οι αλγόριθμοι σε εξαγόμενα προϊόντα, υποστηρίζουν 128 bit κλειδιά και παρ' όλο που τα 88 bit αυτών μεταδίδονται ανασφάλιστα, ο υπολογισμός 240 διαφορετικών ακολουθιών κάνει την επίθεση αδύνατο να επιτύχει.Brute Force Attack
Η επίθεση αυτή πραγματοποιείται με την χρήση όλων των πιθανών κλειδιών για την αποκρυπτογράφηση των μηνυμάτων. Όσο πιο μεγάλα σε μήκος είναι τα χρησιμοποιούμενα κλειδιά, τόσο πιο πολλά είναι τα πιθανά κλειδιά. Τέτοια επίθεση σε αλγορίθμους που χρησιμοποιούν κλειδιά των 128 bits είναι τελείως ανούσια. Μόνο ο
DES56 bit cipher είναι ευαίσθητος σε αυτήν την επίθεση, αλλά η χρήση του δεν συνιστάται.Replay Attack
Όταν ένας τρίτος καταγράφει την ανταλλαγή μηνυμάτων μεταξύ
client και server και προσπαθεί να ξανά χρησιμοποιήσει τα μηνύματα του client για να αποκτήσει πρόσβαση στον server, έχουμε την επίθεση replay attack. Όμως το SSL κάνει χρήση του connection-id, το οποίο παράγεται από τον server με τυχαίο τρόπο και διαφέρει για κάθε σύνδεση. Έτσι δεν είναι δυνατόν πότε να υπάρχουν δυο ίδια connection-id και το σύνολο των είδη χρησιμοποιημένων μηνυμάτων δεν γίνονται δεκτά από τον server. Το connection-id έχει μέγεθος 128 bit για πρόσθετη ασφάλεια.Man-In-The-Middle-Attack
Η επίθεση Man-In-The-Middle συμβαίνει όταν ένας τρίτος είναι σε θέση να παρεμβάλλεται στην επικοινωνία μεταξύ του server και του client. Αφού επεξεργαστεί τα μηνύματα του client και τροποποιήσει όπως αυτός επιθυμεί, τα προωθεί στον server. Ομοίως πράττει για τα μηνύματα που προέρχονται από τον server. Δηλαδή, προσποιείται στον client ότι είναι ο server και αντίστροφα.
Το SSL υποχρεώνει τον server να αποδεικνύει την ταυτότητα του με την χρήση έγκυρου πιστοποιητικού του οποίου η τροποποίηση είναι αδύνατον. Μην ξεχνάμε την δυνατότητα επικοινωνίας των κλειδιών υπογεγραμμένα.
5.3.7 Αδυναμίες του SSL
Brute Force Attack
Εναντίον Αδύναμων ΑλγορίθμωνΗ μεγαλύτερη αδυναμία του πρωτοκόλλου είναι η ευαισθησία των αλγόριθμων που χρησιμοποιούν μικρά κλειδιά. Συγκεκριμένα, οι
RC4-40, RC2-40 και DES-56 εισάγουν σοβαρά προβλήματα ασφαλείας και θα πρέπει να αποφεύγονται.Renegotiation of Session Keys
(μόνο στην 2 έκδοση)Από την στιγμή που μία σύνδεση δημιουργηθεί, το ίδιο master key χρησιμοποιείται καθ' όλη την διάρκεια της. Όταν το SSL χρησιμοποιείται πάνω από μια μακρόχρονη σύνδεση (π.χ. μιας
TELNET εφαρμογής), η αδυναμία αλλαγής του master key γίνεται επικίνδυνη. Η καλύτερη μέθοδος επίλυσης αυτού του προβλήματος είναι η επαναδιαπραγμάτευση του κλειδιού σε τακτά χρονικά διαστήματα, μειώνοντας έτσι την πιθανότητα μιας επιτυχής Brute Force Attack.5.3.8 Χρήσεις του SSL
Η πιο κοινή του εφαρμογή είναι για την διασφάλιση
HTTP επικοινωνιών μεταξύ του browser και του web server. Η ασφαλή έκδοση του HTTP χρησιμοποιεί URLs που ξεκινούν με "https" αντί του κανονικού "http" και διαφορετική πόρτα (port) που είναι η προκαθορισμένη στην 443. Ο browser αποθηκεύει τα ιδιωτικά κλειδιά του χρήστη και με κατάλληλο τρόπο υποδεικνύει την διενέργεια ασφαλών συνδέσεων.Παρ' όλο που μπορεί κανείς να γράψει μια εφαρμογή του SSL ακολουθώντας τα
Internet drafts και RFCs, είναι προτιμότερο να χρησιμοποιήσει μία από τις υπάρχοντες βιβλιοθήκες εργαλείων του SSL (SSL toolkit Libraries). Τέτοιες βιβλιοθήκες περιέχούν ρουτίνες για κρυπτογράφηση, digestion, και διαχείριση πιστοποιητικών και διακρίνονται στις ακόλουθες:5.3.9 Περαιτέρω Πληροφορίες
Στις ηλεκτρονικές σελίδες που ακολουθούν, αποτελούν την πηγή της παρούσας παρουσίασης. Η τελευταία από αυτές περιέχει το draft του SSL και περιλαμβάνει όλες τις λεπτομέρειες του πρωτοκόλλου.
Introducing SSL and Certificates -- http://www.ultranet.com/~fhirsch/Papers/cook/ssl_intro.html#intrο
SSLP Project - The Secure Sockets Layer http://www.cs.bris.ac.uk/~bradley/publish/SSLP/chapter4.html
SSLP Project - Contents Page -- http://www.cs.bris.ac.uk/~bradley/publish/SSLP/contents.html
SSL Protocol V. 3.0 -- http://home.netscape.com/eng/ssl3/ssl-toc.html
5.4 S/MIME (Secure ΜΙΜΕ)
Το
S/ΜΙΜΕ είναι μια εξειδίκευση του πρωτοκόλλου MIME και αναπτύχθηκε για την ασφαλή ανταλλαγή ηλεκτρονικών μηνυμάτων. Σκοπός του είναι η καταπολέμηση της πλαστογραφίας και της υποκλοπής ηλεκτρονικών μηνυμάτων καθώς και η ευκολία στην χρήση. Σχεδιάστηκε ώστε να μπορεί εύκολα να ενοποιηθεί σε προϊόντα ηλεκτρονικού ταχυδρομείου, επεκτείνοντας το πρωτόκολλο MIME σύμφωνα με ένα σύνολο κρυπτογραφικών τυποποιήσεων, το Public Key Cryptography Standards (PKCS).Η παγκόσμια υιοθέτηση του
S/ΜΙΜΕ θα επωφελήσει τους χρήστες, αφού έννοιες όπως η ακεραιότητα των δεδομένων, η αυθεντικότητα και η διαφύλαξη του απόρρητου των συναλλαγών (privacy), θα είναι διαθέσιμες σε όλους.Πριν προχωρήσουμε σε λεπτομέρειες για το
S/ΜΙΜΕ, και για να γίνουν κατανοητά αυτά που θα ακολουθήσουνε, θα πρέπει να περιγράψουμε σε γενικές γραμμές το πρωτόκολλο MIME.5.4.1 ΜΙΜΕ (Multipurpose Internet Mail Extensions)
Το ηλεκτρονικό ταχυδρομείο του
Internet επιτρέπει σε χρήστες από όλο τον κόσμο να ανταλλάσσουν μηνύματα, παρέχοντας έναν τυποποιημένο μηχανισμό που λειτουργεί ανεξάρτητα από την εκάστοτε από υποκείμενη πλατφόρμα.Οι βάσεις για το ηλεκτρονικό ταχυδρομείο καθιερώθηκαν το
1982 και αποτελούσαν τότε ότι πιο εξελιγμένο. Σύμφωνα με τις πρώτες τυποποιήσεις, τα ηλεκτρονικά αυτά γράμματα, μπορούσαν να περιέχουν ένα και μόνο, αναγνώσιμο από άνθρωπο μήνυμα που υπόκειται στους εξής περιορισμούς:Τα περιεχόμενα έπρεπε να είναι απλό κείμενο στην αγγλική γλώσσα, όπως ορίζεται από το
RFC822.Δεδομένα όπως τα Electronic Data Interchange (EDI) δεν μπορούσαν να μεταδοθούν αξιόπιστα, καθ’ ότι παραβίαζαν όλους τους παραπάνω κανόνες. Πιθανόν, να ήταν εφικτή η δημιουργία μηνυμάτων με μουσικά κομμάτια ή κάποιο έγγραφο postscript, αλλά η κωδικοποιημένη του μορφή δεν αναγνωριζόταν από μηχανές διαφορετικής προέλευσης και ακόμα η μεταφορά του μέσα από κάποιον mail gateway ήταν αδύνατη.
Τον Ιούνιο του 1992, ένα νέο πρωτόκολλο του Internet καθιερώθηκε, το ΜΙΜΕ. ΜΙΜΕ είναι το ακρωνύμιο της αγγλικής φράσης Multipurpose Internet Mail Extensions και χτίζεται πάνω στο RFC822, προσφέροντας έναν τρόπο για την ανταλλαγή κειμένου σε γλώσσες εκτός της αγγλικής και μηνυμάτων πολυμέσων μεταξύ διαφορετικών υπολογιστικών συστημάτων. Συγκεκριμένα, ένα μήνυμα συμβατό του ΜΙΜΕ μπορεί να περιέχει:
Το ΜΙΜΕ υποστηρίζει αρκετούς προκαθορισμένους τύπους περιεχομένων
, όπως 8 bit μ-LAW audio με δειγματοληψία 8 kHz, αρχεία εικόνων GIF, προγράμματα postscript και επιπλέον επιτρέπει στους χρήστες να καθορίζουν τους δικούς τους τύπους δεδομένων. Λογισμικό που ενσωματώνει το ΜΙΜΕ, παράγει μηνύματα ηλεκτρονικού ταχυδρομείου με περιεχόμενα που μπορούν αναμφίβολα να αναγνωριστούν, ενώ όταν το ίδιο λογισμικό επεξεργάζεται ένα εισερχόμενο μήνυμα, είναι σε θέση να διαχειριστεί όλη την πληροφορία που δεν προορίζεται για τον χρήστη και να τον προστατέψει από την μη ερμηνεύσιμη απόδοση της.Ένα μήνυμα ΜΙΜΕ αποτελείται από πολλά κομμάτια που καλούνται body parts και κάθε κομμάτι αντιπροσωπεύει ένα ξεχωριστό αντικείμενο (ηχητικό μήνυμα, κείμενο, αρχείο κτλ.). Κάθε body part με την σειρά του αποτελείται από τον κορμό (body) και από τις επικεφαλίδες (headers). Στον κορμό υπάρχουν τα δεδομένα που προορίζονται για τον χρήστη, ενώ στις επικεφαλίδες περιλαμβάνονται πληροφορίες που χρησιμοποιεί το πρόγραμμα του χρήστη.
Περιληπτικός Πίνακας Επικεφαλίδων του ΜΙΜΕ
:Επικεφαλίδες |
Περιγραφή |
|
1. |
ΜΙΜΕ-Version |
Αριθμός έκδοσης του ΜΙΜΕ . |
2. |
Content-Type |
Καθορίζει το είδος των δεδομένων . |
3. |
Content-Transfer-Encoding |
Η κωδικοποίηση των δεδομένων . |
4. |
Content- ID |
Επιπλέον περιγραφή και ταυτοποίηση των δεδομένων . |
5. |
Content-Description |
Content-type
Μια από τις βασικότερες επικεφαλίδες του ΜΙΜΕ
, γύρω από την οποία έχει χτιστεί όλη η φιλοσοφία προσέγγισης του πρωτοκόλλου, είναι η επικεφαλίδα Content-Type. Εάν περιέχεται στις επικεφαλίδες ενός μηνύματος, τότε η τιμή της υποδεικνύει το είδος των περιεχομένων που υπάρχει στον κορμό (body) του μηνύματος. Διαχωρίζεται στις παρακάτω παραμέτρους:Η σύνταξη της επικεφαλίδας
content-type είναι:Content-type: = type "/" subtype [";" parameter]
Υπάρχουν δύο μηχανισμοί για την επέκταση των υπαρχόντων τύπων
: (α) εάν κάποιο τοπικό περιβάλλον επιθυμεί να καθορίσει τους δικούς του τύπους, μπορεί να το κάνει παραθέτοντας μπροστά από τις παραμέτρους type ή subtype το γράμμα "-X" και (β) τα Internet standards επιτρέπεται να καθορίσουν νέόυς τύπους αρκεί να μην συγκρούονται με τους τυποποιημένους και να μην ξεκινούν με "-Χ".Παρακάτω ακολουθεί μια γρήγορη αναφορά στους τυποποιημένους τύπους περιεχομένων
:Subtypes: mixed, parallel, digest, alternative.
Subtypes: rfc822, partial, external-body.
Subtypes: plain, richtext.
Subtypes: gif, jpeg.
Subtypes: basic.
Subtypes: mpeg.
Subtypes: octet-stream, oda, postscript.
Αναλυτικά
, για τον καθένα τύπο έχουμε:1. Multipart: Αυτός ο τύπος υποδεικνύει ότι τα δεδομένα αποτελούνται από πολλαπλά body parts και συνεπώς από πολλαπλά αντικείμενα, το καθένα από τα οποία ίσως είναι διαφορετικού τύπου. Το κάθε body part έχει παρόμοια δομή με ένα ολοκληρωμένο ηλεκτρονικό μήνυμα, δηλαδή περιέχει τις δικές του επικεφαλίδες που αλλάζουν από body part σε body part. Εάν δεν υπάρχει Content-Type επικεφαλίδα, τότε χρησιμοποιείται η τιμή text/plain που σημαίνει ότι ο κορμός περιέχει μη δομημένο κείμενο ASCII χαρακτήρων.
Ο διαχωρισμός των αντικείμένων γίνεται με την παρουσία ειδικών ακολουθιών χαρακτήρων μεταξύ τους
, που καλούνται boundary. Αποτελείται από μια γραμμή που ξεκινά με δύο παύλες και ακολουθούν έως και 70 χαρακτήρες. Οι χαρακτήρες διαλέγονται ώστε να μην ταυτίζονται με τους πρώτους χαρακτήρες οποιαδήποτε γραμμής του κορμού. Η επιλογή αυτών των γίνεται είτε με εξέταση κάθε κείμενου, είτε με την παραγωγή τυχαίων ακολουθιών των οποίων η πιθανότητα να συναντηθούν σε οποιοδήποτε από τα body parts είναι μηδαμινή. Το τελευταίο διαχωριστικό (closing boundary) έχει ακόμα δύο παύλες στο τέλος της γραμμής. Η χρησιμοποιούμενη ακολουθία χαρακτήρων προσδιορίζεται από την παράμετρο boundary στην επικεφαλίδα Content-Type/multipart.Υπάρχουν τέσσερα
subtypes:Content-Type: multipart/mixed; boundary=gc0y0pkb9ex
Παράδειγμα ενός
multipart/mixed μηνύματος είναι:Σε αυτό το παράδειγμα
, μόνο οι χρήστες με συστήματα που κατανοούν τον τύπο text/x-whatever, θα μπορέσουν να δουν την τελευταία μορφή, ενώ οι υπόλοιποι θα αρκεστούν στις μορφές richtext και text.Τέλος
, πρέπει να σημειώσουμε ότι επιτρέπεται η χρήση του τύπου multipart στις επικεφαλίδες ενός body part που περιέχεται σε multipart μήνυμα (η δημιουργία, δηλαδή, φωλιασμένων multipart τύπων), αλλά πρέπει να τηρηθεί προσοχή στην επιλογή του διαχωριστικού του καθενός εκ των φωλιασμένων τύπων.2. Message: Συνοδεύει περιεχόμενα που αποτελούν ένα ακόμα ηλεκτρονικό μήνυμα, αποτελώντας έναν τρόπο ενθυλάκωσης μηνυμάτων.
Υπάρχουν τρία
subtypes:number
= ακέραιος αύξων αριθμός του τεμαχισμένου τμήματος,total
= ακέραιος που φανερώνει τον συνολικό αριθμό των κομματιών,id
= μοναδικός δείκτης αναγνώρισης που χρησιμοποιείται για την ταυτοποίηση των κομματιών που προέρχονται από το ίδιο αρχικό μήνυμα.ftp
= υποδηλώνει ότι θα πρέπει να χρησιμοποιηθεί το File Transfer Protocol,anon-ftp
= ομοίως με τον προηγούμενο μηχανισμό, μόνο που θα γίνει χρήση του λογαριασμού "anonymous",tftp
= υποδηλώνει τον μηχανισμό Trivial File Transfer Protocol,afs
= χρήση του Andrew File System,local-file
= τα περιεχόμενα είναι αποθηκευμένα τοπικά,mail-server
= τα περιεχόμενα μπορούν να αποκτηθούν στέλνοντας ένα ηλεκτρονικό μήνυμα σε απομακρυσμένο υπολογιστή.Υπάρχουν ακόμα τρεις παράμετροι που θα μπορούσαν να χρησιμοποιηθούν
:expiration
= η ημερομηνία και ώρα που τα απομακρυσμένα περιεχόμενα δεν θα είναι πλέον προσιτά,size
= το μέγεθος σε bytes των περιεχομένων,permission
= υποδηλώνει κατά πόσο τα περιεχόμενα υπάρχει περίπτωση να αλλάξουν.Παράδειγμα αυτού του τύπου είναι
:3. Text: Χρησιμεύει για την αποστολή υλικού μορφής κειμένου και είναι ο προκαθορισμένος τύπος σε περίπτωση απουσίας της επικεφαλίδας Content-Type. Έχει μία pαράμετρο που καθορίζει το σύνολο χαρακτήρων (character set), η charset.
Ο συγκεκριμένος τύπος έχει δύο
subtypes:Content-Type: text/plain; Charset=US-ASCII.
4. Image: Συνοδεύει αντικείμενα που ανταποκρίνονται σε ακίνητη εικόνα.
Τα δύο
subtypes είναι:5. Audio: Συνοδεύει αρχεία που περιέχουν ψηφιακό ήχο.
Έχει ένα
subtype:6. Video: Υποδηλώνει δεδομένα κινούμενης εικόνας, πιθανώς συνοδευόμενα από ήχο (soundtrack).
Το μοναδικό
subtype είναι:7. Application
: Τα περιεχόμενα δεν ανήκουν σε καμία από τις παραπάνω κατηγορίες και μπορεί να είναι δυαδικής μορφής δεδομένα ή πληροφορία που απευθύνεται σε προγράμματα με δυνατότητες ταχυδρόμησης ηλεκτρονικών μηνυμάτων (mail-enabled applications).Υπάρχουν τρία
subtypes:name
= προτείνει ένα όνομα για αποθήκευση στο τοπικό σύστημα,type
= δίνει μια ιδέα στον χρήστη όσον αναφορά τον είδος των δυαδικών δεδομένων,conversion
= αποτελείται από μία λίστα από διαδικασίες που επιτελέστηκαν στα δεδομένα για να πάρουν την μορφή με την οποί α παραλήφθηκάν,padding
= προσδιορίζει τον αριθμό των bits (από 0 έως και 7) που προστέθηκαν στο τέλος των bits της πραγματικής πληροφορίας και υπάρχει μονάχα όταν ο αριθμός των bytes δεν είναι ακέραιος.profile
= δίνει στοιχεία για την επεξεργασία του εγγράφουΟ τύπος
application/octet-stream συνδυασμένος με τεμαχισμό του μηνύματος, μπορεί να χρησιμοποιηθεί για την μεταφορά αρχείων μέσω του ηλεκτρονικού ταχυδρομείου, αντικαθιστώντας τον μηχανισμό FTP.Content-Transfer-Encoding
Πολλούς από τους παραπάνω τύπους περιεχομένων στην φυσική τους μορφή παρουσιάζονται σαν χαρακτήρες
8 bit ή δυαδικά δεδομένα. Τέτοιου είδους δεδομένα δεν μπορούν να μεταφερθούν με πρωτόκολλα όπως το SMTP (Simple Mail Transfer Protocol) λόγω των περιορισμών που ασκούνται στο μήκος των γραμμών (όχι μεγαλύτερο από 1000 χαρακτήρες) και στο χρησιμοποιούμενο σύνολο χαρακτήρων (επιτρέπεται μόνο 7 bit ASCII). Γι' αυτό το λόγο, κρίνεται απαραίτητη η κωδικοποίηση των μηνυμάτων σε μορφή τέτοια που να επιτυγχάνεται η αλάνθαστή μεταφορά τους.Υπάρχουν μερικά θέματα που αξίζει να αναφερθούμε
, τα οποία έχουν να κάνουν με τον τρόπο που γίνεται η κωδικοποίηση πριν την μετάδοση (transfer-encoding). Κατ' αρχήν, οι τύποι multipart και message δεν επιτρέπουν άλλο σχήμα κωδικοποίησης εκτός του 7 bit ASCII, ενώ για τους υπόλοιπους τύπους δεν ισχύει κάτι τέτοιο. Επιπλέον, οι διαδικασίες της κωδικοποίησης και της αποκωδικοποίησης θα πρέπει να αντιμετωπίζονται σαν τελείως διαφορετικές ενέργειες από αυτή της επεξεργασίας των δεδομένων. Κατ' αυτόν τον τρόπο τα δεδομένα αποκωδικοποιούνται στην πρωτογενή μορφής τους πριν την επεξεργασίας τους. Τέλος, παρ' όλο του ότι το ΜΙΜΕ επιτρέπει την επεκτασιμότητα των μηχανισμών κωδικοποίησης, η χρήση νέων, μη καθιερωμένων δεν συνιστάται λόγω σημαντική μείωση της δια - λειτουργικότητας.Οι τιμές της επικεφαλίδας
Content-Transfer-Encoding μπορεί να είναι:Quoted-Printable
: Αυτό το σχήμα κωδικοποίησης είναι πιο κατάλληλο για δεδομένα που αποτελούνται κατά κύριο λόγο από εκτυπώσιμους ASCII χαρακτήρες (δηλαδή 7 bit) και ένα, μόνο, μικρό ποσοστό 8 bit χαρακτήρων. Χρησιμοποιείται επίσης όταν υπάρχει πιθανότητα κάποιος ενδιάμεσος mail transfer agent (MTA) να αλλάξει τους μη αλφαριθμητικούς χαρακτήρες. Με αυτήν την μέθοδο οι εκτυπώσιμοι χαρακτήρες παρουσιάζονται αμετάβλητοι και το σήμα της ισότητας (=) υπηρετεί σαν χαρακτήρας διαφυγής.Ο κανόνας σύμφωνα με τον οποίο γίνεται η διαμόρφωση των δεδομένων είναι απλός
: οι 8 bit χαρακτήρες, το σήμα ισότητας (=) και οι χαρακτήρες διαστήματος και tabs, κωδικοποιούνται σαν μια ακολουθία 3 χαρακτήρων, που ξεκινά με το σήμα ισότητας (=) και ακολουθείται με δεκαεξαδική παρουσίαση της τιμής του χαρακτήρα. Γραμμές μεγαλύτερες των 76 χαρακτήρων κόβονται μετά τον 75ο χαρακτήρα και η γραμμή τερματίζεται με το σήμα ισότητας (=).Τα πλεονεκτήματα της μεθόδου είναι ότι
: (α) λίγοι επιπλέον χαρακτήρες απαιτούνται και (β) το μήνυμα μπορεί να διαβαστεί και από άτομα που δεν διαθέτουν προγράμματα με ΜΙΜΕ δυνατότητες.Παράδειγμα κειμένου που έχει υποστεί τέτοια κωδικοποίηση είναι:
Παρατηρούμε ότι οι
7 bit χαρακτήρες είναι εύκολα κατανοητοί.Base64
: Είναι κατάλληλη μέθοδος για την αναπαράσταση δυαδικών αρχείων. Κάθε 3 bytes του επεξεργαζόμενου αρχείου, λαμβάνονται σαν ποσότητες των 24 bit και διαχωρίζονται σε 4 εξάδες bit. Έπειτα κάθε εξάδα αντιστοιχίζεται, βάσει ενός πίνακα 64 χαρακτήρων, με χαρακτήρα από συγκεκριμένο υποσύνολο του ASCII. Εάν δεν συμπληρώνονται 24 bit, τότε χρησιμοποιείται ο χαρακτήρα (=) σαν συμπλήρωμα.Το ίδιο κείμενο που του προηγούμενου παραδείγματος με κωδικοποίηση base64:
Οι τιμές
8 bit, 7 bit και binary υποδηλώνουν ότι δεν έχει εφαρμοστεί καμιά κωδικοποίηση. Η χρήση τους περιορίζεται στην υπόδειξη του είδους της κωδικοποίησης που πρέπει να γίνει για την μετάδοση των δεδομένων σε συγκεκριμένο σύστημα.7bit
: τα δεδομένα παρουσιάζονται σε μικρές γραμμές, ASCII χαρακτήρων.8bit
: οι γραμμές είναι μικρές, αλλά μπορεί να περιλαμβάνονται και μη ASCII χαρακτήρες.binary
: οι χαρακτήρες δεν είναι ASCII και οι γραμμές δεν είναι μεγάλου μήκους, ακατάλληλες για μεταφορά με SMTP.Όπως προαναφέραμε
, πολλές εφαρμοσμένες εκδόσεις του ΜΙΜΕ υποστηρίζουν επιπλέον τιμές της επικεφαλίδας Content-Transfer-Encoding, με τυποποιημένες. Αυτές δηλώνονται με ένα "-Χ", δηλαδή "Content-Transfer-Encoding: X-my-new-encoding".Επίσης πρέπει να διευκρινίσουμε ότι εάν μια επικεφαλίδα
Content-Transfer-Encoding εμφανίζεται στις επικεφαλίδες του μηνύματος τότε αναφέρεται σε όλα το επί μέρους body parts αυτού, ενώ όταν εμφανίζεται στις επικεφαλίδες ενός body part, τότε ισχύει μόνο για τα περιεχόμενα του συγκεκριμένου body part. Η προκαθορισμένη τομή που επικρατεί σε απουσία της επικεφαλίδος είναι 7 bit.ΜΙΜΕ-Version
Καθ' ότι το ΜΙΜΕ
είναι συμβατό με το RFC822, δίνεται η δυνατότητα σε ένα πρόγραμμα ανάγνωσης ηλεκτρονικών μηνυμάτων να επεξεργάζεται και μηνύματα που δεν ακολουθούν τις προδιαγραφές του ΜΙΜΕ. Για να μπορεί κάθε πρόγραμμα ανάγνωσης να αναγνωρίζει τα ΜΙΜΕ μηνύματα, υπάρχει η επικεφαλίδα ΜΙΜΕ-Version. Αυτή καθορίζει τον αριθμό έκδοσης του χρησιμοποιούμενου ΜΙΜΕ πρωτοκόλλου.ΜΙΜΕ-Version: 1.0
Content-ID και Content-Description
Μπορεί να είναι επιθυμητό τα περιεχόμενα ενός
body να αναφέρονται σε κάποιο άλλο. Γι' αυτό το σκοπό, δίνεται σε κάθε body μία αναγνωριστική ετικέτα μέσω της επικεφαλίδας Content-ID, η οποία είναι όσο το περισσότερο μοναδική γίνεται.Τέλος
, η επικεφαλίδα Content-Description επιτρέπει την σύνδεση σχολίου με το αντικείμενο που μεταφέρεται στο μήνυμα. Και οι δύο προηγούμενες επικεφαλίδες είναι προαιρετικές. Παρακάτω βλέπουμε ένα πολύπλοκο ΜΙΜΕ μήνυμα.5.4.2 Προβλήματα ασφαλείας με το ΜΙΜΕ
Λογισμικό που εφαρμόζει το ΜΙΜΕ πρωτόκολλο μπορεί να προκαλέσει
, όπως έχει αποδειχτεί, πολλά προβλήματα. Τα πιο σημαντικά από αυτά έχουν να κάνουν με τα postscript προγράμματα. Γνωστά παραδείγματα είναι η χρήσης τους για την αλλαγή των κωδικών σε εκτυπωτές postscript με αποτέλεσμα την άρνηση εξυπηρέτησης και αυθαίρετη διαχείριση αρχείων.Πρέπει να πούμε επίσης
, ότι τα ηλεκτρονικά μηνύματα του Internet και τα μηνύματα UUCP δεν είναι ασφαλή, αφού υπηρεσίες όπως η πιστοποίηση ταυτότητας και ακεραιότητα δεδομένων δεν παρέχονται από τα πρωτόκολλα SMTP, RFC822 και ΜΙΜΕ.5.4.3 Περαιτέρω Πληροφορίες για το ΜΙΜΕ
Για μια πιο λεπτομερή μελέτη, ο αναγνώστης μπορεί να απευθυνθεί στις εξής ηλεκτρονικές σελίδες:
MIME (Multipurpose Internet Mail Extensions) -- http://www.oac.uci.edu/indiv/ehood/MIME/MIME.html
(MIME) Table of Contents -- http://www.oac.uci.edu/indiv/ehood/MIME/toc.html
5.4.4
Εισαγωγή στο S/MIMEΤο
S/MIME είναι ένα πρωτόκολλο που χρησιμοποιείται από προγράμματα ηλεκτρονικού ταχυδρομείου για την εφαρμογή κρυπτογραφικών υπηρεσιών σε αποστέλλοντα μηνύματα και για την επεξεργασία προστατευμένων παραληφθέντων. Η δεύτερη έκδοση του S/MIME είναι επί του παρόντος ενσωματωμένη σε πολλά δημοφιλή προϊόντα, όπως τα Lotus Domino, Netscape Communicator, Novell GroupWise και Microsoft Exchange. Το S/MIME δίνει την δυνατότητα σε εταιρίες που σχεδιάζουν λογισμικό να αναπτύσσουν προγράμματα τέτοια ώστε ένα μήνυμα που κρυπτογραφήθηκε με ένα συγκεκριμένο πρόγραμμα να μπορεί να αποκρυπτογραφηθεί από ένα άλλο.Η ομάδα
Internet Engineering Task Force (IETF) αναπτύσσει την 3η έκδοση του S/MIME που περιλαμβάνει την εξειδίκευση Cryptographic Message Syntax (CMS) που ορίζει μια τυποποιημένη σύνταξη για την επικοινωνία των κρυπτογραφικών πληροφοριών που είναι ανεξάρτητες από την μορφή των ενθυλακωμένων περιεχομένων ή από τον μηχανισμό μεταφοράς. Κάθε τύπος δεδομένων μπορεί να προστατευθεί από το CMS. Εκτός από τις εφαρμογές S/MIME, το CMS μπορεί να χρησιμοποιηθεί με τα πρωτόκολλα HTTP, X.400, FTP, SSL και SET. Η στρατηγική ανάπτυξης της τρίτης έκδοσης είναι τέτοια ώστε να διατηρείται η συμβατότητα με την προηγούμενη έκδοση (version 2). Αυτό επιτυγχάνεται με την πρόσθεση νέων, προαιρετικών στοιχείων στην νέα έκδοση, των οποίων η απουσία στις επικεφαλίδες επιτρέπει την συνεργασία των δύο εκδόσεων.Επίσης
, η έκδοση 3 του S/MIME απαιτεί την ύπαρξη ενός ελάχιστου συνόλου κρυπτογραφικών αλγορίθμων που διασφαλίζουν την συνεργασίας μεταξύ διαφορετικών εφαρμογών.Η περιγραφή του
S/MIME v3, που αναπτύχθηκε από την ομάδα IETF περιλαμβάνει τα εξής έγγραφα:Security Services |
Security Mechanism |
Authentication, Integrity, Non-repudiation |
Digital Signature |
Confidentiality |
Encryption |
5.4.5 Δημιουργία S/MIME μηνυμάτων
Τα μηνύματα
S/MIME είναι συνδυασμός ΜΙΜΕ μηνυμάτων και CMS αντικειμένων. Τα CMS αντικείμενα περιγράφουν το είδος της ασφάλειας που θέλουμε να εφαρμόσουμε και μπορεί να είναι Ψηφιακός Φάκελος (Enveloped-Data), Υπογεγραμμένα δεδομένα (Signed-Data) και άλλα. Μπορούν να χρησιμοποιηθούν όλοι οι τύποι δεδομένων του ΜΙΜΕ, χωρίς κανένα περιορισμό. Το ΜΙΜΕ μήνυμα, μαζί με άλλες πληροφορίες (πιστοποιητικά, αναγνωριστικά αλγόριθμων κ.α.), επεξεργάζονται από τις διαδικασίες του CMS και παράγεται το CMS αντικείμενο. Τέλος, το CMS αντικείμενο τυλίγεται σε εξωτερικό ΜΙΜΕ μήνυμα με κατάλληλες επικεφαλίδες.Προετοιμασία
Η ΜΙΜΕ οντότητα που θα ασφαλιστεί από το
S/MIME μπορεί να είναι είτε μέρος ενός μηνύματος, είτε ολόκληρο μήνυμα. Σε περίπτωση που η ΜΙΜΕ οντότητα ισοδυναμεί με ολόκληρό το μήνυμα, περιλαμβάνονται σ' αυτήν όλες τις ΜΙΜΕ επικεφαλίδες (δεν περιλαμβάνονται οι επικεφαλίδες του RFC822) και φυσικά τα περιεχόμενα.
Η διαδικασία που προετοιμάζει το μήνυμα/οντότητα για επεξεργασία από το CMS αποτελείται από 3 βασικά βήματα:
CMS Αντικείμενα και CMS Επεξεργασία
Σ' αυτό το κεφάλαιο θα περιγράψουμε τα αντικείμενα ασφαλείας του
CMS και πως αυτά κατασκευάζονται. Τα υποστηριζόμενα αντικείμενα είναι EnvelopedData, SignedData, DigestedData, EncryptedData και AuthenticatedData. Για κάθε αντικείμενο ο τύπος των περιεχομένων αλλάζει. Έτσι, το αντικείμενο EnvelopedData περιέχει δεδομένα σε ψηφιακό φάκελο (θα δούμε παρακάτω τι σημαίνει αυτό), το SignedData περιέχει υπογεγραμμένα δεδομένα, το EncryptedData περιέχει κρυπτογραφημένα δεδομένα, το DigestedData περιλαμβάνει την digest τιμή των δεδομένων και τέλος, το AuthenticatedData περιέχει πιστοποιημένα δεδομένα. Τα σημαντικότερα και περισσότερο χρησιμοποιούμενα αντικείμενα είναι τα SignedData και τα EnvelopedData, τα οποία και θα αναλύσουμε πιο πολύ. Εξάλλου, η υποστήριξη των υπόλοιπων αντικείμενων είναι προαιρετική.Τα ασφαλισμένα περιεχόμενα δεν είναι η μόνη πληροφορία που περικλείεται σε ένα αντικείμενο. Υπάρχουν και άλλες πληροφορίες που προορίζονται για επεξεργασία από τα προγράμματα S/MIME και εισάγονται σε πεδία που καλούνται ιδιότητες (at
tributes). Πολλές φόρες, ίσως, αυτές οι ιδιότητες να απαιτούν προστασία είτε μέσω υπογραφής, είτε μέσω κρυπτογράφησης.Επίσης, πρέπει να διευκρινιστεί, ότι όπου στο παρών κεφάλαιο αναφερόμαστε σε "περιεχόμενα οποιουδήποτε τύπου", εννοούμε δεδομένα απλά, κρυπτογραφημένα,
υπογεγραμμένα, πιστοποιημένα ή συνοψισμένα (digested). Τα απλά δεδομένα ισοδυναμούν με την ΜΙΜΕ οντότητα, που είναι η είσοδος στην CMS επεξεργασία, ενώ οι υπόλοιποι τύποι αναφέρονται σε αντικείμενα του CMS, δηλαδή είδη προστατευμένα ΜΙΜΕ στοιχεία.SignedData
: Αποτελείται από περιεχόμενα οποιουδήποτε τύπου και μηδέν ή περισσότερες υπογραφές αυτών. Τα περιεχόμενα μπορούν να υπογραφούν παράλληλα από πολλούς χρήστες και τυπική εφαρμογή αυτού του τύπου είναι για την υπογραφή απλών δεδομένων ή για την μεταφορά πιστοποιητικών.Η διαδικασία σύμφωνα με την οποία κατασκευάζονται τα υπογεγραμμένα δεδομένα έχει ως εξής:
Ο παραλήπτης του μηνύματος/αντικειμένου υπολογίζει το message digest των περιεχομένων και με την δημόσια κλείδα του αποστολέα ανακτεί το κρυπτογραφημένο
message digest που παρέλαβε με το μήνυμα. Συγκρίνει αυτά δύο, και εάν είναι ταυτόσημα, τότε έχει επαληθεύσει επιτυχώς την υπογραφή.EnvelopedData
: Αποτελείται από κρυπτογραφημένα περιεχόμενα οποιουδήποτε τύπου και κρυπτογραφημένα κλειδιά-κρυπτογράφησης για έναν ή περισσότερους αποδέκτες. Ο συνδυασμός των κρυπτογραφημένων περιεχομένων και του κρυπτογραφημένου κλειδιού, είναι ένας "ψηφιακός φάκελος". Για την επικοινωνία του κλειδιού-κρυπτογράφησης (του κλειδιού δηλαδή που χρησιμοποιήθηκε κατά την κρυπτογράφηση των περιεχομένων) υπάρχουν τρεις (3) τεχνικές και για κάθε παραλήπτη μπορεί να χρησιμοποιηθεί οποιαδήποτε από αυτές:Η διαδικασία κατασκευής των ψηφιακών φακέλων είναι:
Ο εκάστοτε παραλήπτης, αφού ανακτήσει το κρυπτογραφημένο κλειδί ακολουθώντας την τεχνική που υποδεικνύεται στο
RecipientInfo πεδίο, αποκρυπτογραφεί τα περιεχόμενα του μηνύματος.Θα αναφερθούμε σύντομα και στα υπόλοιπα, προαιρετικά αντικείμενα. Το
DigestData συνίσταται από περιεχόμενα οποιουδήποτε τύπου και την digest value αυτών. Το EncryptedData διαφέρει από το EnvelopedData στο ότι το πρώτο δεν περιέχονται τα κλειδιά –κρυπτογράφησης κρυπτογραφημένα και δεν έχει παραλήπτες. Προορίζεται για τοπική κρυπτογράφηση αρχείων. Τέλος, το AuthenticatedData μοιάζει με το SignedData, με την διαφορά, ότι αντί για την υπογραφή του μηνύματος περιέχεται το Message Authentication Code (MAC).MIME Wrapping
Μέχρι τώρα έχουμε περιγράψει, πως προετοιμάζεται η ΜΙΜΕ οντότητα και πως δημιουργούνται τα CMS αντικείμενα από αυτήν. Το τελικό στάδιο παραγωγής ενός S/MIME μηνύματος είναι η περιτύλιξη του CMS αντικειμένου με ένα εξωτερικό ΜΙΜΕ επίπεδο και ασχοληθούμε με αυτό σε αυτό το κεφάλαιο.
Οι Νέες Επικεφαλίδες
Όπως αναφέραμε στην εισαγωγή
, προστίθενται δύο νέες επικεφαλίδες, στις είδη υπάρχουσες επικεφαλίδες του ΜΙΜΕ: η multipart/signed και η application/pkcs7-mime. Αυτές οι νέες επικεφαλίδες χρησιμοποιούνται κατά την περιτύλιξη και εσωκλείουν τα CMS αντικείμενα.Η
multipart/signed υποδηλώνει μήνυμα με δυο body parts. Το πρώτο μέρος περιέχει αυτούσια την ΜΙΜΕ οντότητα που ασφαλίζεται, αφού υποστεί την προεργασία που περιγράφηκε προηγουμένως. Το δεύτερο μέρος περιέχει την υπογραφή της ΜΙΜΕ οντότητας και η επικεφαλίδα του body part είναι application/pkcs7-signature (βλέπε παρακάτω παράγραφο).Η
application/pkcs7-mime χρησιμοποιείται για να μεταφέρει CMS αντικείμενα διάφορων τύπων (Ψηφιακός Φάκελος, Υπογεγραμμένα Δεδομένα, κ.α.), τα οποία εμπεριέχουν μία ΜΙΜΕ οντότητα. Καθ' ότι τα CMS αντικείμενα είναι δυαδικά δεδομένα, ο κατάλληλος μηχανισμός κωδικοποίησης που πρέπει να χρησιμοποιηθεί είναι ο Base64, ειδικά όταν το πρωτόκολλο μεταφοράς είναι το SMTP. Εδώ πρέπει να πούμε ότι η κωδικοποίηση αυτή αναφέρεται στο CMS αντικείμενο και όχι στην ΜΙΜΕ οντότητα. Συνεπώς δεν υπάρχει σχέση με το 3ο βήμα της προετοιμασίας του ΜΙΜΕ μηνύματος.Όταν η τιμή της επικεφαλίδας είναι
application/pkcs7-mime και η επέκταση του αρχείου το οποίο αποτελείται από το CMS αντικείμενο είναι .p7m τότε το αντικείμενο είναι είτε Ψηφιακός Φάκελος, είτε Υπογεγραμμένα Δεδομένα. Εάν η επέκταση είναι .p7c και η τιμή η ίδια με προηγουμένως, το αντικείμενο είναι μόνο πιστοποιητικά. Τέλος, εάν η τιμή είναι application/pkcs7-signature και η επέκταση .p7s, το αντικείμενο είναι σκέτη υπογραφή.Φακελωμένo Μήνυμα (
Enveloped Message)Συνδυάζοντας τα παραπάνω, τα βήματα για την παρασκευή φακελωμένου μηνύματος θα είναι:
Παράδειγμα ενός S/MIME μηνύματος ασφαλισμένο κατά αυτόν τον τρόπο είναι:
Η παράμετρος
smime-type καθορίζει το είδος του αντικείμενου και η επέκταση του μεταφερόμενου αρχείου είναι ".p7m". Ένα τέτοιο μήνυμα ,όμως, δεν προσφέρει ακεραιότητα δεδομένων.Υπογεγραμμένο Μήνυμα (
Signed Message)Υπάρχουν δύο δυνατότητες για την παρασκευή υπογεγραμμένων μηνυμάτων. Η πρώτη περίπτωση περιλαμβάνει την χρήση της επικεφαλίδας
application/pkcs7-mime και η δεύτερη την χρήση της multipart/signed.application/pkcs7-mime:
Τα βήματα είναι παρόμοια με αυτά του φακελωμένου μηνύματος.Παράδειγμα ενός τέτοιου S/MIME μηνύματος:
Και εδώ, η παράμετρος
smime-type καθορίζει το είδος του αντικείμενου και η επέκταση του μεταφερόμενου αρχείου είναι ".p7m".multipart/signed:
Σε αυτήν την ΜΙΜΕ επικεφαλίδα, το περιεχόμενο SignedData αντικείμενο αποτελείται μόνο από την υπογραφή της ΜΙΜΕ οντότητας. Αυτό συμβαίνει γιατί όπως θα δούμε, το πρώτο body part περικλείει το αυθεντικό ΜΙΜΕ στοιχείο.Στο παρακάτω σχήμα παρατηρούμε στο δεύτερο
body part, την επέκταση του αρχείου, ".p7s" και την κωδικοποίηση μεταφοράς Base64.Τις περισσότερες φορές, χρησιμοποιείται η περιτύλιξη με
multipart/signed. Το εσωτερικό ενός τέτοιου μηνύματος μπορεί να αναγνωστεί και από χρήστες των οποίων τα προγράμματα δεν ενσωματώνουν τις S/MIME λειτουργίες. Βέβαια, αναγνώριση και επαλήθευση της υπογραφής στο δεύτερο body part δεν είναι δυνατόν να γίνει και άρα δεν μπορεί να επιβεβαιωθεί η ακεραιότητα των δεδομένων ούτε η ταυτότητα του αποστολέα.Μήνυμα με Πιστοποιητικά (Certificate-only Message)
Αυτό το μήνυμα μεταφέρει πιστοποιητικά και Λίστες Ανάκλησης Πιστοποιητικών. Κατασκευάζεται σε δύο βήματα:
Η παράμετρος
smime-type, που είδαμε στα προηγούμενα παραδείγματα, είναι certs-only και η επέκταση του αρχείου είναι ".p7c".Υπογράφοντας και Κρυπτογραφώντας
Για μέγιστη διασφάλιση της μεταφερόμενη πληροφορίας, επιτρέπεται ένα μήνυμα διαδοχικά να υπογραφεί και να κρυπτογραφηθεί και αντίστροφα. Μια εφαρμογή του S/MIME πρέπει να είναι σε θέση να παραλάβει και να επεξεργαστεί ένα μήνυμα με αυθαίρετο αριθμό φωλιασμένων υπογραφών και κρυπτογραφήσεων.
Το μήνυμα μπορεί είτε να υπογραφεί πρώτα και να κρυπτογραφηθεί έπειτα, είτε να κρυπτογραφηθεί και μετά να υπογραφεί. Στην πρώτη περίπτωση, οι υπογραφές ασφαλίζονται και η μετάδοση γίνεται με απόλυτη εμπιστευτικότητα. Στην δεύτερη περίπτωση, εξασφαλίζεται η ακεραιότητα του κρυπτογραφημένου μηνύματος και επιτρέπεται η επαλήθευση των υπογραφών, χωρίς την αποκρυπτογράφηση του.
5.4.6 Triple Wrapping
Ένα μήνυμα τριπλά περιτυλιγμένο
(triple wrapped) έχει υπογραφεί, έπειτα κρυπτογραφηθεί και τέλος ξανά υπογραφεί. Οι υπογράφοντες των εσωτερικών και εξωτερικών υπογραφών μπορεί να είναι διαφορετικές οντότητες ή η ίδια. Πρέπει να πούμε πως το S/MIME δεν περιορίζει τον αριθμό των φωλιασμένων ενθυλακώσεων και μπορούμε να έχουνε παραπάνω από τρεις.Σκοπός του Triple Wrapping
Δεν είναι ανάγκη όλα τα μηνύματα να υποστούν την διαδικασία για τριπλή περιτύλιξη, παρά μόνο αυτά που αφού υπογραφούν και κρυπτογραφηθούν, απαιτούν πληροφορίες που αφορούν την κρυπτογραφημένη περιτύλιξη να είναι ασφαλισμένες. Οι πληροφορίες αυτές βρίσκονται στα πεδία ιδιοτήτων και μπορούν να προστεθούν από τον αποστολέα του μηνύματος ή από ενδιάμεσα συστήματα.
Η εσωτερική υπογραφή χρησιμοποιείται για την ακεραιότητα την δεδομένων, την μη αποκήρυξη της ταυτότητας της πηγής
(non-repudiation of origin) και για την σύνδεση συγκεκριμένων ιδιοτήτων, όπως η ετικέτα ασφαλείας (βλέπε παρακάτω) στα αρχικά περιεχόμενα. Αυτές οι ιδιότητες δεν αλλοιώνονται από τα ενδιάμεσα συστήματα μεταξύ αποστολέα και παραλήπτη, παρά απευθύνονται και επεξεργάζονται μονάχα από τον τελευταίο.Εδώ πρέπει να πούμε, ότι κάποιες συγκεκριμένες ιδιότητες τοποθετούνται μόνο στο εσωτερικό υπογεγραμμένο περιεχόμενο, άλλες μόνο στο εξωτερικό ενώ υπάρχούν και αυτές που μπορούν να τοποθετηθούν και στα δύο. Επιπλέον υπάρχουν ιδιότητες που πρέπει να υπογραφούν, για άλλες είναι προαιρετικό και υπάρχουν μερικές που απαγορεύεται η υπογραφή τους.
Attribute | outer | Signed |
ContentHints | either | MAY |
ContentIdentifier | either | MAY |
ContentReference | either | MUST |
ContentType | either | MUST |
CounterSignature | either | MUST NOT |
EquivalentLabel | either | MUST |
ESSSecurityLabel | either | MUST |
MessageDigest | either | MUST |
MsgSigDigest | inner only | MUST |
MlExpansionHistory | outer only | MUST |
ReceiptRequest | inner only | MUST |
SigningCertificate | either | MUST |
SigningTime | either | MUST |
SmimeCapabilities | either | MUST |
SMIMEEncryption- KeyPreference |
either | MUST |
Η κρυπτογράφηση των υπογεγραμμένων περιεχομένων εξασφαλίζει το απόρρητο της επικοινωνίας, συμπεριλαμβανομένου και του απόρρητου των ιδιοτήτων που μεταφέρονται στην εσωτερική υπογραφή.
Η εξωτερική υπογραφή παρέχει πιστοποίηση ταυτότητας και ακεραιότητα των πληροφοριών που προσπελάσουν τα ενδιάμεσα υπολογιστικά συστήματα, για παράδειγμα
ένας mail list agent. Επίσης, η εξωτερική υπογραφή, δένει κατάλληλες ιδιότητες στο κρυπτογραφημένο σώμα, οι οποίες προορίζονται για αποφάσεις δρομολόγησης (routing)και έλεγχο πρόσβασης.Βήματα για Τριπλό Περιτύλιγμα.
(α) Εάν χρησιμοποιούμε την επικεφαλίδα "
Content-Type: multipart/signed" η δομή είναι: η επικεφαλίδα "Content-Type: multipart/signed" μαζί με παραμέτρους, μια διαχωριστική γραμμή (boundary), το αποτέλεσμα του βήματος 2, η διαχωριστική γραμμή πάλι, έπειτα η επικεφαλίδα "Content-Type: application/pkcs7-signature", κάποιες ΜΙΜΕ επικεφαλίδες (π.χ. Content-Transfer-Encoding) και τέλος το αποτέλεσμα του βήματος 3.(β) Εάν χρησιμοποιούμε την επικεφαλίδα "
Content-Type: application/pkcs7-mime", η δομή είναι: η επικεφαλίδα "Content-Type: application/pkcs7-mime", ακολουθούμενη από ΜΙΜΕ επικεφαλίδες (π.χ. Content-Transfer-Encoding) και τέλος το αποτέλεσμα του βήματος 3.Το αποτέλεσμα του καλείται "εσωτερική υπογραφή"
(inside signature).Παρακάτω βλέπουμε παραδείγματα τριπλά περιτυλιγμένων μηνυμάτων, για τις δύο διαφορετικές περιπτώσεις.
Η περίπτωση application/pkcs7-mime
Παρατηρούμε ότι το τελικό προϊόν έχει πολλά επίπεδα ενθυλάκωσης, αλλά λόγω του τρόπου που πραγματοποιείται αυτή, η έννοια των επιπέδων γίνεται θολή. Μερικοί ασφαλής
mail gateways υπογράφουν τα μηνύματα που περνούν από αυτούς. Εάν το μήνυμα δεν είναι ήδη υπογεγραμμένο, τότε ο gateway το τυλίγει μέσα σε εξωτερική υπογραφή, δημιουργώντας έτσι ένα ακόμα επίπεδο ενθυλάκωσης. Διαφορετικά, όταν δηλαδή το μήνυμα είναι ήδη υπογεγραμμένο, ο gateway απλά εισάγει τα στοιχεία του στο πεδίο SignerInfo της εξωτερική υπογραφής.Η περίπτωση
multipart/signed5.4.7
Επιπρόσθετες Υπηρεσίες ΑσφαλείαςΣε αυτό το κεφάλαιο θα αναφερθούμε πιο αναλυτικά στις προαιρετικές υπηρεσίες ασφάλειας του S/MIME.
Signed Receipts
Η επιστροφή μιας υπογεγραμμένη απόδειξη παραλαβής, παρέχει στον αποστολέα εξασφάλιση της διανομής του μηνύματος και του επιτρέπει να επιδείξει σε τρίτο ότι ο παραλήπτης ήταν σε θέση να επαληθεύσει την υπογραφή του αρχικού μηνύματος. Η αίτηση επιστροφής απόδειξης καθορίζεται με την τοποθέτηση της ιδιότητας
receiptRequest στο πεδίο SignerInfo. Η ιδιότητα receiptRequest ανήκει στις υπογεγραμμένες ιδιότητες του πεδίου, και συνεπώς η υπηρεσία αυτή μπορεί να ζητηθεί μονάχα εάν το μήνυμα είναι υπογεγραμμένο.Τα βήματα για μία τυπική συναλλαγή τέτοιου είδους είναι:
Υπάρχουν και άλλοι παράγοντες που καθορίζουν την δημιουργία απόδειξης και εξαρτώνται από την πολιτική ασφαλείας που εφαρμόζεται στα μέλη της ταχυδρομικής λίστας (όταν υπάρχει). Έτσι, εάν ρητά απαγορεύεται η επιστροφή αποδείξεων, τότε ακόμα και αν ζητηθούν, δεν θα δημιουργηθούν ούτε θα σταλούν. Ακόμα, η θέση του παραλήπτη στην αλυσίδα της ταχυδρομικής λίστας παίζει ρόλο όταν ο αποστολέας ορίζει ότι μόνο ο πρώτος από τους παραλήπτες θα επιστρέψει απόδειξη, ενώ δεν έχει καμία σημασία όταν ορίζεται ότι όλοι θα στείλουν.
Στην απόδειξη περιέχονται κωδικοποιημένα η υπογραφή των υπογεγραμμένων ιδιοτήτων του
SignerInfo και η digest value του αρχικού μηνύματος. Περικλείονται και ιδιότητες από το αρχικό μήνυμα που είναι απαραίτητες για την σύνδεση της απόδειξης με αυτό.Είναι απαραίτητο το πρόγραμμα του αποδέκτη να θυμάται ότι έχει ολοκληρώσει την παραπάνω διαδικασία και έχει στείλει την απόδειξη, για την αποφυγή πιθανής επανάληψης της μετάδοσης της κάθε φορά που επαναφέρει το μήνυμα για ανάγνωση.
Υπάρχει η δυνατότητα να ζητηθεί η απόδειξη να επιστραφεί και σε άλλα μέρη, εκτός από τον αποστολέα. Μάλιστα γίνεται η αίτηση να μην περιέχει το όνομα του αποστολέας καθόλου. Για να μπορέσει, όμως, ο αποδέκτης της απόδειξης να επιβεβαιώσει την εγκυρότητα της πρέπει να έχει αντίγραφο του αρχικού μηνύματος και γι' αυτό αποδέκτης της μπορεί να είναι και παραλήπτες του πρωτότυπου μηνύματος.
Security Labels
Ετικέτα ασφαλείας είναι ένα σύνολο πληροφοριών ασφαλείας που αφορούν την ευαισθησία των περιεχομένων. Αυτές οι πληροφορίες καθορίζουν εάν ο χρήστης εξουσιοδοτείται την πρόσβαση στα προστατευμένα περιεχόμενα. Μπορούν να περιγράφουν βαθμωτά επίπεδα ("μυστικό", "απόρρητο", περιορισμένη πρόσβαση" κτλ.) ή να περιγράφουν ομάδες ανθρώπων που μπορούν να δουν την πληροφορία (π.χ. "γιατροί", "ασφαλιστικές εταιρίες", "ασθενείς", "όλοι").
Επεξεργασία
Μία ετικέτα ασφαλείας τοποθετείται υπό την μορφή ιδιότητας (
ESSSecurityLabel), στις υπογεγραμμένες ιδιότητες του πεδίου SignerInfo. Όταν χρησιμοποιείται, λοιπόν, πρέπει να υπογράφεται το μήνυμα. Η ετικέτα ασφαλείας μπορεί να περιέχεται στην εσωτερική υπογεγραμμένη ενθυλάκωση ή στην εξωτερική ή και στις δύο. Όταν βρίσκεται στην εσωτερική υπογραφή, αναφέρει την ευαισθησία του προστατευμένου περιεχομένου και χρησιμοποιείται για έλεγχο πρόσβασης σε αυτό. Όταν υπάρχει στην εξωτερική υπογραφή, χρησιμοποιείται για ελεγχόμενη πρόσβαση στο κρυπτογραφημένο σώμα και για αποφάσεις δρομολόγησης.Επειδή μπορούν να υπάρχουν πολλαπλά
SignerInfo πεδία και μέσα σε κάθε πεδίο μόνο μια ιδιότητα ESSSecurityLabel, επιτρέπεται η παρουσία πολλών ετικετών που καθεμία θα προέρχεται από διαφορετικό υπογράφοντα. Όλες οι ετικέτες όμως πρέπει να ίδιες. Το λογισμικό του παραλήπτη, πριν την επεξεργασία των ESSSecurityLabel πρέπει να επιβεβαίωση την υπογραφή των υπογεγραμμένων ιδιοτήτων και έπειτα να εξετάσει εάν ταυτίζονται. Ο χρήστης πρέπει να προειδοποιείται όταν δεν είναι ταυτόσημες.Ιεράρχηση Επιπέδων Ασφάλειας
Κάθε οργανισμός μπορεί να αναπτύξει την δικιά του πολιτική ασφαλείας. Η πολιτική ασφαλείας καθορίζει την ιεράρχηση των επιπέδων ασφαλείας και το νόημα τους. Κάθε επίπεδο αντιπροσωπεύεται από μια ακέραια τιμή.
Σύμφωνα με την εξειδίκευση, όμως, Χ.411 οι ακέραιοι 0 έως 5 είναι κρατημένοι για τις βασικές έννοιες
unmarked, unclassified, restricted, confidential, secret, top-secret. Η Χ.411 εξειδίκευση δεν θέτει κανόνες για το πως χρησιμοποιούνται οι παραπάνω έννοιες για να διαχωρίσουν την αξία των πληροφοριών και πως γίνεται ο έλεγχος πρόσβασης. Κάθε οργανισμός θα αποφασίσει τι σημαίνει για τον ίδιο κάθε μια από βασικές έννοιες. Για παράδειγμα, το επίπεδο που αντιστοιχεί στην έννοια "secret" ενός οργανισμού, θα έχει διαφορετική ερμηνεία από το αντίστοιχο την κυβέρνησης των Η.Π.Α.Συνοπτικά, θα πρέπει μια πολιτική ασφαλείας να μην χρησιμοποιεί τους ακέραιους 0 – 5 για άλλες από τις έννοιες που ορίζει το Χ.411 και επιπλέον αριθμοί θα πρέπει αν υποδηλώνουν νέες έννοιες. Το σύνολο των έγκυρων τιμών πρέπει να είναι ιεραρχικές, χωρίς αυτό να σημαίνει ότι πρέπει να είναι με αυξανόμενη σειρά. Επιπλέον οι τιμές δεν είναι ανάγκη να είναι συνεχόμενες. Για παράδειγμα η φανταστική εταιρεία
Morgan Corp. δεν χρησιμοποιεί καμία από τις έννοιες του Χ.411.10 -- anyone
15 -- Morgan Corporation and its contractors
20 -- Morgan Corporation employees
25 -- Morgan Corporation board of directors
Επίσης, παράδειγμα εταιρίας που ακολουθεί ότι ορίζει το Χ.411 είναι:
0 -- unmarked
1 -- unclassified, can be read by everyone
2 -- restricted to Timberwolf Productions staff
6 -- can only be read to Timberwolf Productions executives
Mail List Management
Τα προγράμματα ηλεκτρονικού ταχυδρομείου πρέπει να δημιουργούν κρυπτογραφημένα μηνύματα με διαφορετική δομή για κάθε προοριζόμενο παραλήπτη και συνεπώς ο φόρτος εργασίας αυξάνεται σημαντικά για μεγάλο αριθμό παραληπτών που ανήκουν στην ίδια ταχυδρομική λίστα. Γι' αυτό, συστήματα που καλούνται
Mail List Agents (MLAs), αναλαμβάνουν την ανά χρήστη διαχείριση του μηνύματος. Κατά αυτόν τον τρόπο, η διευκολύνεται η αποστολή μηνυμάτων σε μεγάλες ταχυδρομικές λίστες.Ένας MLA παρουσιάζεται στον αποστολέα σαν ένας τυπικός αποδέκτης, ενώ στην πραγματικότητα λειτουργεί σαν ένα σημείο περαιτέρω επεξεργασίας του μηνύματος που διανείμει το μήνυμα σε όλα τα μέλη της ταχυδρομική λίστας. Επίσης, ένας MLA πρέπει να αντιμετωπίζει τα
mail loops. Mail Loops είναι μια κατάσταση που εμφανίζεται όταν μια ταχυδρομική λίστα είναι μέλος μιας δεύτερης που και αυτή με την σειρά της είναι μέλος της πρώτης.Η ιδιότητα mlExpansionHistory που βρίσκεται στις υπογεγραμμένες ιδιότητες του
πεδίου SignerInfo, περιέχει μια λίστα από κάθε MLA που έχει επεξεργαστεί το μήνυμα και ενημερώνεται από τον εκάστοτε MLA. Η λίστα αποτελείται από καταχωρήσεις με τα στοιχεία των MLA, την ημερομηνία που το μήνυμα επεξεργάστηκε από κάθε MLA και προαιρετικές ιδιότητες που δηλώνουν την πολιτική με την οποία αντιμετωπίζονται οι αιτήσεις για αποδείξεις. Είναι δυνατόν να υπάρχουν πολλές ιδιότητες mlExpansionHistory, μια σε κάθε SignerInfo που όμως πρέπει να είναι ολόιδιες. Πριν από την προσπέλαση της υπογεγραμμένης ιδιότητας mlExpansionHistory πρέπει να επαληθευθεί η υπογραφή του συνόλου των υπογεγραμμένων ιδιοτήτων και να συγκριθούν όλες οι mlExpansionHistory εάν ταιριάζουν.Για την ανίχνευση και αποφυγή των mail loops, ο MLA εξετάζει τις υπάρχοντες καταχωρήσεις στο ιστορικό της
mlExpansionHistory. Όταν ο MLA βρει τα αναγνωριστικά στοιχεία που ανήκουν στον ίδιο, τότε διακόπτει την επεξεργασία και προειδοποιεί τον υπεύθυνο της λίστας που αναλαμβάνει να διορθώσει το λάθος.Επεξεργασία
Η επεξεργασία του μηνύματος εξαρτάται από τον αριθμό και το
είδος των ενθυλακώσεων. Εκτός από τα τριπλά περιτυλιγμένα μηνύματα έχουμε και μηνύματα με μονή περιτύλιξη, μηνύματα με διπλή περιτύλιξη και μηνύματα με τετραπλή περιτύλιξη. Η διαδικασία έχει ως εξής:Signing Certificate Attribute
Προβλήματα έχουν παρουσιαστεί λόγω του γεγονότος ότι τα πιστοποιητικά του υπογράφοντος δεν ασφαλίζονται μαζί με τις υπογεγραμμένες ιδιότητες ενός μηνύματος. Η εκμετάλλευση αυτού του ελαττώματος έχει αναπτύξει διάφορες δυνατές επιθέσεις που έχουν να κάνουν με την αντικατάσταση του πιστοποιητικού. Τουλάχιστον τρεις διαφορετικές επιθέσεις μπορούν να ενεργοποιηθούν:
(1). Στην πρώτη περίπτωση έχουμε την αντικατάσταση του έγκυρου, αυθεντικού πιστοποιητικού με ένα άλλο. Το πιστοποιητικό αυτό μπορεί να είναι (α) άκυρο, όποτε το μήνυμα δεν μπορεί να επαληθευθεί (άρνηση εξυπηρέτησης) αφού δεν ταιριάζουν η ιδιωτική κλείδα του αποστολέα με την δημόσια κλείδα αυτού ή (β) έγκυρο, όταν εσωκλείει τη ίδια δημόσια κλείδα με το αυθεντικό και έτσι επιτρέπεται η επικύρωση της υπογραφής κάτω από διαφορετικού περιορισμού από αυτούς που προέβλεψε ο αποστολέας.
(2). Η δεύτερη επίθεση βασίζεται στην επανέκδοση των
root certificates από τις Αρχές Έκδοσης Πιστοποιητικών (Certificate Authorities). Root Certificate είναι ένα πιστοποιητικό που επιβεβαιώνει την ταυτότητα της ίδιας της Αρχής Έκδοσης Πιστοποιητικών. Κάποιος απατεώνας μπορεί να προσποιηθεί ότι είναι κάποιος άλλος με την χρήση πιστοποιητικού που υπογράφεται από το νέο root certificate.(3) Μια ανέντιμη οντότητα μπορεί να αντιγράψει μια υπάρχουσα
CA και να εκδίδει πιστοποιητικά με ίδιες δημόσιες κλείδες με αυτές που χρησιμοποιούνται. Και πάλι κάποιος επιτήδειος μπορεί να χρησιμοποιήσει ένα τέτοιο πιστοποιητικό για να παρουσιαστεί ως κάποιος άλλος.Η νέα ιδιότητα
SigningCertificate έχει σαν σκοπό να αποτρέψει τις παραπάνω επιθέσεις και να επιτρέψει σε ένα περιορισμένο σύνολο πιστοποιητικών να χρησιμοποιείται για την επαλήθευση της υπογραφής. Προστίθεται στις υπογεγραμμένες ιδιότητες και περιλαμβάνει στοιχεία που συνδέουν ταυτοποιούν το σωστό πιστοποιητικό. Η hash value του πιστοποιητικού περιλαμβάνεται στις υπογεγραμμένες ιδιότητες παρέχοντας επιπλέον ασφάλεια. Εάν η hash value στις υπογεγραμμένες ιδιότητες δεν ταιριάζει με την hash value του παραληφθέντος πιστοποιητικού τότε η υπογραφή θεωρείται άκυρη.5.4.8
Υποστηριζόμενοι ΑλγόριθμοιΑλγόριθμοι
DigestΟ αλγόριθμος
SHA-1 είναι υποχρεωτικός και ο MD5 είναι προαιρετικός.Αλγόριθμοι Υπογραφής
Οι εφαρμογές του S/MIME πρέπει να υποστηρίζουν τις υπογραφές DSA, ενώ επιτρέπεται να υποστηρίζουν και υπογραφές RSA.
Αλγόριθμοι Διαχείρισης Κλειδιών
Όπως είδαμε, υπάρχουν τρεις διαφορετικοί μηχανισμοί για την διαχείριση των κλειδιών:
Αλγόριθμοι Κρυπτογράφησης
Υποχρεωτικός είναι ο 3DES CBC και προαιρετικός ο RC2 CBC.
Αλγόριθμοι
MACΥποστηρίζεται μόνο ένας, ο SHA-1.
5.4.9 Περαιτέρω Πληροφορίες για το S/MIME
Για μια πιο λεπτομερή μελέτη, ο αναγνώστης μπορεί να απευθυνθεί στην ακόλουθη ηλεκτρονική σελίδα. Σε αυτή την σελίδα είναι διαθέσιμα τα σχετικά RFC
s, ταχυδρομικές λίστες και newsgroups.S/MIME Mail Security (smime) Charter --
http://www.ietf.org/html.charters/smime-charter.html
5.5 PEM - Privacy Enhanced Mail
5.5.1 Εισαγωγή
Ένα ηλεκτρονικό μήνυμα του Internet, κατά την πορεία του από τον αποστολέα στον τελικό παραλήπτη, διανύει πολλά ενδιάμεσα συστήματα και δίκτυα. Δεν είναι δυνατόν να βασιστούμε στην αξιοπιστία όλων αυτών των οντοτήτων. Ένας εισβολέας μπορεί να κρύβεται οπουδήποτε και τα μηνύματα μπορούν εύκολα να διαβαστούν, να τροποποιηθούν και ακόμα να εμποδιστούν από το να φθάσουν στον τελικό τους προορισμό.
Το πρωτόκολλο
Privacy-Enhanced Mail (PEM) προβλέπει για αυτή την αδυναμία του ηλεκτρονικού ταχυδρομείου του Internet, προσθέτοντας την εφαρμογή των υπηρεσιών της απόρρητης συναλλαγής, της πιστοποίησης ταυτότητας, της ακεραιότητας των μηνυμάτων και την εξασφάλιση της μη αποκήρυξης της πηγής. Οι υπηρεσίες αυτές προσφέρονται μέσω της χρήσης απ' άκρη σ' άκρη κρυπτογράφησης μεταξύ του αποστολέα και του παραλήπτη. Δεν απαιτούνται ειδικές ικανότητες επεξεργασίας στα συστήματα MTS (Message Transfer System) και υποστηρίζεται η συνεργασία με άλλα ταχυδρομικά συστήματα μεταφοράς.Προς το παρών το PEM χρησιμοποιείται με μηνύματα RFC822, ενώ επέκταση του πρωτοκόλλου ώστε να εφαρμόζεται και σε περιβάλλοντα ΜΙΜΕ αναμένεται.
Αρχές του PEM
Σημαντικότατο γεγονός είναι ότι, που έρχεται σε αντίθεση με το S/MIME, η εφαρμογή των υπηρεσιών ασφαλείας που παρέχει το PEM γίνεται στο σώμα του μήνυμα στο σύνολο του. Δεν επιτρέπεται ούτε υποστηρίζεται η επιλεκτική χρήση των υπηρεσιών του PEM σε κομμάτια του μηνύματος.
Η ανάπτυξη του PEM στηρίχθηκε στις εξής βασικές αρχές:
5.5.2 Παραγωγή PEM Μηνυμάτων
Είδη Κλειδιών και Διαχείριση Τους
Η περιγραφή του πρωτοκόλλου στο RFC1421 καθορίζει δύο τύπους κλειδιών:
Όταν ένα μήνυμα πρόκειται να επεξεργαστεί από το PEM, παράγεται ένα
DEK για την κρυπτογράφηση του μηνύματος καθώς και απαραίτητοι παράμετροι (π.χ. Initialization Vectors) που εξαρτώνται από τους επιλεγμένους αλγόριθμους. Στην περίπτωση συμμετρικών IKs, χρησιμοποιούνται διαφορετικά κλειδιά για κάθε παραλήπτη του μηνύματος, για την προετοιμασία των κρυπτογραφημένων DEKs και MICs. Αντίθετα, στην περίπτωση των ασύμμετρων IKs, επειδή ο αποστολέας κατέχει ένα ζευγάρι δημόσιας – ιδιωτικής κλείδας, η κρυπτογράφηση των DEKs και MICs γίνεται για όλους τους παραλήπτες με την ίδια κλείδα.Είναι δυνατόν ένα αφιερωμένο σύστημα
(Key Distribution System) να δημιουργεί τα τυχαία DEKs. Τέτοια συστήματα μπορούν να εφαρμόζουν πιο ισχυρούς αλγόριθμους στην παραγωγή των τυχαίων DEKs, παρ' αυτά όμως η αποκέντρωση της παραγωγής επιτρέπει στα συστήματα των χρηστών να είναι αυτοσυντηρούμενα και απαλείφει την εμπιστοσύνη σε τρίτες οντότητες.Η ασύμμετρη διαχείριση κλειδιών μπορεί να συνδυαστεί με την χρήση πιστοποιητικών για την επαλήθευσης της ταυτότητας του αποστολέα. Το πιστοποιητικό περιέχει, εκτός των πληροφοριών που σχετίζονται με τον εκδότη του (Certificate Authority – CA) και την δημόσια κλείδα του αποστολέα.
Περιληπτική Παρουσίαση της Επεξεργασίας
Με σκοπό τα κρυπτογραφημένα μηνύματα να είναι παγκοσμίως αναγνωρίσιμα και να μπορούν να μεταφερθούν σε όλα τα περιβάλλοντα, απαιτείται ένας μετασχηματισμός τεσσάρων φάσεων. Αρχικά τα μηνύματα συντάσσονται σύμφωνα με τους τοπικούς κανόνες, χρησιμοποιώντας το σύνολο χαρακτήρων
(character set) και τους χαρακτήρες ελέγχου του τοπικού συστήματος. Η αρχική αυτή μορφή μετατρέπεται σε κανονική μορφή (canonical form), η οποία αποτελεί είσοδο στις διαδικασίες της κρυπτογράφησης και της παραγωγής MIC. Τέλος, το αποτέλεσμα της κρυπτογράφησης και / ή της παραγωγής του MIC κωδικοποιείται βάσει κατάλληλου μηχανισμού. Το σύνολο χαρακτήρων που χρησιμοποιεί ο μηχανισμός αυτός είναι παγκόσμια παρουσιάσιμο. Παρακάτω θα αναλύσουμε περισσότερο τα βήματα επεξεργασίας.Η έξοδος του τέταρτου βήματος συνδυάζεται με κατάλληλες επικεφαλίδες που μεταφέρουν πληροφορίες ελέγχου της κρυπτογράφησης. Το PEM μήνυμα που προκύπτει περιλαμβάνεται στα περιεχόμενα ενός μηνύματος προς μετάδοση. Στα περιεχόμενα είναι δυνατόν να υπάρχει και απλό, μη προστατευμένο κείμενο.
Ο παραλήπτης του μηνύματος, αφού αφαιρέσει την κωδικοποίηση, εξετάζει τις πεδία ελέγχου της κρυπτογράφησης που του παρέχουν τις απαραίτητες πληροφορίες για να επαλήθευση την εγκυρότητα του
MIC και για να αποκρυπτογραφήσει το κείμενο. Τέλος, το μήνυμα μετατρέπεται από την κανονική μορφή στην μορφή που αντιστοιχεί στα χαρακτηριστικά του τοπικού συστήματος του παραλήπτη.Συντακτικά άκυρα PEM μηνύματα θα πρέπει να αναφερθούν μαζί με συλλογή διαγνωστικών πληροφοριών για να αντιμετωπιστούν προβλήματα ασυμβατότητας ή άλλων αιτιών. Τα PEM μηνύματα, όμως, που είναι συντακτικά έγκυρα αλλά παρουσιάζουν αποτυχημένη επαλήθευση του
MIC πρέπει να αντιμετωπίζονται με προσοχή. Οι χρήστες θα πρέπει να ειδοποιούνται ότι το δεν μπορεί να εγγυηθεί η αυθεντικότητα και η ακεραιότητα των περιεχομένων του εν λόγω μηνύματος.Τύποι Μηνυμάτων
Ανάλογα με το είδος της παρεχόμενης προστασίας και τις εφαρμοζόμενες υπηρεσίες, τα PEM μηνύματα διακρίνονται σε τέσσερα είδη:
ENCRYPTED: Αναπαριστά ένα PEM μήνυμα στο οποίο έχουν εφαρμοστεί οι υπηρεσίες της διαφύλαξης του απόρρητου της συναλλαγής, της εξασφάλισης της ακεραιότητας των δεδομένων, της πιστοποίησης ταυτότητας και της εξασφάλισης της μη αποκήρυξης της πηγής.
MIC-ONLY: Αναπαριστά ένα PEM μήνυμα στο οποίο παρέχονται όλες οι προηγούμενες υπηρεσίες εκτός της διαφύλαξης του απόρρητου. Μόνο οι UAs που ενσωματώνουν το PEM μπορούν να παρουσιάσουν το μήνυμα για ανάγνωση.
MIC-CLEAR: Το μήνυμα είναι το ίδιο με προηγουμένως με την διαφορά ότι όλοι η UAs μπορούν να παρουσιάσουν το μήνυμα, αλλά μόνο οι συμβατοί με το PEM μπορούν να επαληθεύσουν την αυθεντικότητα και την ακεραιότητα του μηνύματος.
CERTIFICATE REVOCATION: Μήνυμα που περιέχει μία ή περισσότερες λίστες ανάκλησης πιστοποιητικών (CRL).
5.5.3 Βήματα Επεξεργασίας
Η φιλοσοφία παραγωγής μηνυμάτων συμβατών με τις υποκείμενες τεχνολογίες και πρωτόκολλα περιλαμβάνει ένα βήμα κανονικοποίησης που αφαιρεί όλες τις τοπικές συμβάσεις, ακολουθούμενο από βήμα κωδικοποίησης για την προσαρμογή με μέσω μεταφοράς ηλεκτρονικού ταχυδρομείου (
SMTP).Το πρωτόκολλο
SMTP έχει συγκεκριμένους περιορισμούς όσο αναφορά την μορφή του προς μετάδοση μηνύματος. Έτσι η προετοιμασία του μηνύματος έχει τις ακόλουθες απαιτήσεις:Τα τέσσερα βήματα του μετασχηματισμού παρουσιάζονται αναλυτικά παρακάτω:
Βήμα 1:
Local FormΤο βήμα αυτό είναι εφαρμόσιμο στα PEM μηνύματα τύπου
ENCRYPTED, MIC-ONLY, MIC-CLEAR. Το κείμενου του μηνύματος δημιουργείται βάσει των τοπικών συνόλων χαρακτήρων και των τοπικών χαρακτήρων ελέγχου.Βήμα 2: Canonical Form
Το βήμα αυτό, όπως και το προηγούμενο, είναι εφαρμόσιμο στους τύπους
ENCRYPTED, MIC-ONLY, MIC-CLEAR. Το κείμενο μετατρέπεται σε παγκόσμια αναγνωρίσιμη μορφή, την κανονικά μορφή. Όλες οι συμβάσεις του τοπικού συστήματος αφαιρούνται και το κείμενο υπόκειται στους περιορισμούς του SMTP. Το μήκος των γραμμών μειώνεται, οι χαρακτήρες αλλαγής γραμμής γίνονται οι <CR><LF>, και το σύνολο χαρακτήρων ανάγεται στο 7-bit ASCII.Βήμα 3:
Authentication and EncryptionΤο τρίτο βήμα περιλαμβάνει δύο ξεχωριστές ενέργειες: την παραγωγή
MIC και την κρυπτογράφηση της κανονικής μορφής του προηγούμενου βήματος. Η κρυπτογράφηση εφαρμόζεται μόνο στα ENCRYPTED, ενώ η εφαρμόζεται και στους τρεις τύπους (ENCRYPTED, MIC-ONLY, MIC-CLEAR).Βήμα 4: Printable Encoding
(base64)
Η κωδικοποίηση του τέταρτου βήματος εφαρμόζεται στους τύπους ENCRYPTED και MIC-ONLY. Η ακολουθία bit του 3ου βήματος κωδικοποιείται σε χαρακτήρες που είναι παρουσιάσιμοι σε όλα τα sites.
Κάθε
3 bytes του επεξεργαζόμενου αρχείου, λαμβάνονται σαν ποσότητες των 24 bit και διαχωρίζονται σε 4 εξάδες bit. Έπειτα κάθε εξάδα αντιστοιχίζεται, βάσει ενός πίνακα 64 χαρακτήρων, με χαρακτήρα από συγκεκριμένο υποσύνολο του ASCII. Εάν δεν συμπληρώνονται 24 bit, τότε χρησιμοποιείται ο χαρακτήρα (=) σαν συμπλήρωμα.Παρακάτω φαίνεται ο πίνακας που χρησιμοποιείται για τις αντιστοιχίες.
Value Encoding Value Encoding Value Encoding Value Encoding
0 A 17 R 34 i 51 z
1 B 18 S 35 j 52 0
2 C 19 T 36 k 53 1
3 D 20 U 37 l 54 2
4 E 21 V 38 m 55 3
5 F 22 W 39 n 56 4
6 G 23 X 40 o 57 5
7 H 24 Y 41 p 58 6
8 I 25 Z 42 q 59 7
9 J 26 a 43 r 60 8
10 K 27 b 44 s 61 9
11 L 28 c 45 t 62 +
12 M 29 d 46 u 63 /
13 N 30 e 47 v
14 O 31 f 48 w (pad) =
15 P 32 g 49 x
16 Q 33 h 50 y
Τα παραπάνω βήματα μπορούν να περιγραφούν εν συντομία με την εξίσωση:
Transmit_Form = Encode(Encrypt(Canonicalize(Local_Form)))
,ενώ η αντίστροφη διαδικασία παριστάνεται:
Local_Form = DeCanonicalize(Decipher(Decode(Transmit_Form)))5.5.4 Μηχανισμός Ενθυλάκωσης
Το τελικό αποτέλεσμα του τέταρτου βήματος της προηγούμενης διαδικασίας συνδυάζεται με πληροφορίες που σχετίζονται με την προστασία του εγγράφου και ενθυλακώνονται στο σώμα
(text portion – body) ενός κανονικού μηνύματος και μεταδίδεται. Τα πεδία που αναφέρονται στην κρυπτογράφηση και στα MIC (πληροφορίες προστασίας) τοποθετούνται σε τμήμα επικεφαλίδων πριν τα προστατευμένα δεδομένα, ενώ όλο το PEM μήνυμα περικλείεται από κατάλληλες διαχωριστικές γραμμές.
Μορφή Ενθυλακωμένου PEM μηνύματος
Η ενθυλάκωση παρέχει γενίκευση του τρόπου επεξεργασίας του παραληφθέντος μηνύματος και διαχωρίζει τα πεδία που είναι χρήσιμα για την αποκρυπτογράφηση και επαλήθευση του μηνύματος από αυτά που αλλάζουν κατά την μεταφορά.
Η τεχνική ενθυλάκωσης μπορεί να χρησιμοποιηθεί για την ενθυλάκωση πολλαπλών PEM μηνυμάτων ή ακόμα για την συνοδεία του PEM μηνύματος από απλό κείμενο. Οι διαχωριστικές γραμμές
(encapsulation boundaries) χρησιμεύουν στον διαχωρισμό των PEM μηνυμάτων και για την διάκριση των μη κρυπτογραφημένων δεδομένων από τα PEM μηνύματα. Η αρχή ενός PEM μηνύματος υποδηλώνεται με την γραμμή-----BEGIN PRIVACY-ENHANCED MESSAGE-----
ενώ το τέλος υποδηλώνεται είτε με την ίδια γραμμή είτε με την
-----END PRIVACY-ENHANCED MESSAGE-----
υποδηλώνοντας ότι ακολουθεί άλλο PEM μήνυμα.
5.5.5 Ταχυδρομικές Λίστες
Όταν ένα μήνυμα απευθύνεται σε ταχυδρομικές λίστες, δύο διαφορετικές μέθοδοι μπορούν να εφαρμοστούν όσον αναφορά τα κλειδιά
IK: (α) ΙΚ ανά λίστα (IK-per-list) και (β) ΙΚ ανά παραλήπτη (IK-per-recipient), ενώ δεν αποκλείονται οι υβριδικές προσεγγίσεις.(α) Στην περίπτωση των ΙΚ ανά παραλήπτη, το κλειδί κρυπτογράφησης των δεδομένων του μηνύματος,
DEK, κρυπτογραφείται με κάθε κλειδί ΙΚ για κάθε παραλήπτη και όλες αυτές οι κρυπτογραφημένες παρουσιάσεις των DEK μεταφέρονται με το μήνυμα. Αξίζει να επισημάνουμε ότι η ανά χρήστη κρυπτογράφηση δεν γίνεται στο προστατευμένο κείμενο παρά μόνο στα DEK και στα MIC. Το μειονέκτημα είναι η χρήση πολλών ΙΚ που περιπλέκουν την επεξεργασία του μηνύματος και την διαχείριση των κλειδιών. Παρ' όλα αυτά, όμως, η υποκλοπή ενός κλειδιού που δεν μοιράζεται μεταξύ πολλών χρηστών είναι πιο δύσκολη και η ανάκληση ενός ζεύγους ΙΚ δεν προκαλεί προβλήματα σε όλα τα μέλη της ταχυδρομική λίστας.(β) Όταν ο αποστολέας επιλέξει να μην αναλύσει την ταχυδρομική λίστα στα μέλη της και χρησιμοποιήσει κοινό ΙΚ κλειδί για όλους του παραλήπτες της ταχυδρομική λίστας, τότε έχουμε την περίπτωση των ΙΚ ανά λίστα. Το ίδιο ΙΚ κλειδί πρέπει να είναι διαθέσιμο σε όλα τα μέλη της ταχυδρομικής λίστας, πράγμα που κάνει εύκολη την επεξεργασία του μηνύματος. Δυστυχώς, η μέθοδος αυτή συνεπάγεται σημαντικό βαθμό έκθεσης του ΙΚ και η ανάκλήση του δημιουργεί προβλήματα μεταξύ των μελών. Επιπλέον, επειδή, μιλάμε για συμμετρικά κλειδιά, οποιοσδήποτε κατέχει το ΙΚ μπορεί να προσποιηθεί ότι είναι ο αυθεντικός αποστολέας. Ακόμα και στη ασύμμετρη διαχείριση κλειδιών (με κοινή ιδιωτική κλείδα μεταξύ των μελών) μειονεκτεί καθ' ότι δεν είναι δυνατόν να εφαρμοστούν όλες οι υπηρεσίες ασφαλείας.
Καταλαβαίνουμε ότι είναι προτιμότερη μία υβριδική προσέγγιση, όπου στο μονοπάτι από τον αποστολέα προς τον
Mail List Agent (MLA) εφαρμόζεται η ΙΚ ανά λίστα προστασία, ενώ στο μονοπάτι από τον MLA προς τους τελικούς αποδέκτες εφαρμόζεται ΙΚ ανά παραλήπτη προστασία.Περίληψη Ενθυλακωμένων Επικεφαλίδων
Παρακάτω θα αναφερθούμε περιληπτικά στις σημαντικότερες επικεφαλίδες που ενθυλακώνονται στο PEM μήνυμα και περιέχουν απαραίτητες πληροφορίες για το είδος της παρεχόμενης προστασίας τους αλγόριθμους κρυπτογράφησης και παραγωγής
MIC και επιπλέον στοιχεία για την πιστοποίηση της ταυτότητας της πηγής. Οι επικεφαλίδες παρουσιάζονται με την σειρά που δίνονται εδώ.Proc-Type: Απαιτείται σε όλα τα PEM μηνύματα, απαντάται μόνο μια φορά και είναι η πρώτη ενθυλακωμένη επικεφαλίδα. Υποδηλώνει τον τύπο του PEM μηνύματος και οι τιμές που μπορεί να πάρει είναι ENCRYPTED, MIC-ONLY, MIC-CLEAR και CRL.
Content-Domain: Περιγράφει το είδος των περιεχομένων που μεταφέρονται ενθυλακωμένα και στα οποία εφαρμόζονται οι υπηρεσίες ασφαλείας του PEM. Η μόνη προκαθορισμένη τιμή είναι η "RFC822", ενώ αναμένονται και άλλες.
DEK-Info: Περιγράφει τον αλγόριθμο κρυπτογράφησης των περιεχομένων και μεταφέρει κατάλληλους παραμέτρους για συγκεκριμένους αλγόριθμους (Initialization Vectors). Υπάρχει μόνο μια DEK-Info ανά μήνυμα και απαιτείται για όλα τα ENCRYPTED μηνύματα.
Originator-ID: Προσδιορίζει την ταυτότητα του αποστολέα και καθορίζει το ΙΚ κλειδί που χρησιμοποιείται. Η επικεφαλίδα αυτή έχει δύο διαφορετικές μορφές, ανάλογα με την τεχνική διαχείρισης κλειδιών, την "Originator-ID-Asymmetric" και την "Originator-ID-Symmetric". Η επικεφαλίδα "Originator-ID-Asymmetric" απαιτείται για όλα τα PEM μηνύματα με ασύμμετρη διαχείριση κλειδιών και αντίστοιχα η "Originator-ID-Symmetric" για τα PEM μηνύματα με συμμετρική διαχείριση κλειδιών. Η "Originator-ID-Asymmetric" υπάρχει μόνο εν απουσία της "Originator-Certificate".
Στις περισσότερες περιπτώσεις υπάρχει μόνο μία "Originator-ID" Η" Originator-Certificate". Για την συμμετρική περίπτωση, το ΙΚ που περιγράφεται συνδυάζεται με όλες τις "Recipient-ID-Symmetric" επικεφαλίδες που ακολουθούν μέχρι να βρεθεί άλλη "Originator-ID-Symmetric". Για την περίπτωση ασύμμετρων κλειδιών, η επεξεργασία των
"Originator-ID-Asymmetric" και "Recipient-ID-Asymmetric" είναι ανεξάρτητη.Πολλαπλές επικεφαλίδες
"Originator-ID" μπορούν να υπάρχουν μόνο όταν ένα μήνυμα προορίζεται για μετάδοση σε διαφορετικούς παραλήπτες.Originator-Certificate: Η επικεφαλίδα αυτή χρησιμοποιείται μόνο στην ασύμμετρη διαχείριση κλειδιών. Μεταφέρει το πιστοποιητικό του αποστολέα (που περιέχει την δημόσια κλείδα του) κωδικοποιημένο σύμφωνα με τον μηχανισμό Base64.
MIC-Info: Χρησιμοποιείται μόνο με την ασύμμετρη διαχείριση κλειδιών και περιέχει στοιχεία που υποδηλώνουν τον αλγόριθμο που παρήγαγε το MIC, τον αλγόριθμο που κρυπτογράφησε το MIC και τέλος περιέχει την υπογραφή του μηνύματος (δηλαδή το κρυπτογραφημένο MIC) από την ιδιωτική κλείδα του αποστολέα.
Για την περίπτωση ENCRYPTED PEM μηνυμάτων, το κρυπτογραφημένο MIC ξανά κρυπτογραφείται με το ίδιο DEK και το ίδιο αλγόριθμο που χρησιμοποιήθηκε στα προστατευόμενα περιεχόμενα.
Recipient-ID: Η επικεφαλίδα αυτή προσδιορίζει την ταυτότητα του παραλήπτη ή και παραληπτών. Συγχρόνως, παρέχει το ΙΚ κλειδί. Παρουσιάζεται με δύο διαφορετικές μορφές, την Recipient-ID-Asymmetric και την Recipient-ID-Symmetric, ανάλογα με την τεχνική διαχείρισης των κλειδιών.
Key-Info: Οι πληροφορίες που περιέχει εξαρτώνται από την διαχείριση των κλειδιών. Στην συμμετρική διαχείριση των κλειδιών περιλαμβάνεται ο αλγόριθμος που χρησιμοποιήθηκε για την κρυπτογράφηση των DEK και MIC από το ΙΚ καθώς και τα ίδια τα DEK και MIC κρυπτογραφημένα από το ΙΚ. Στην ασύμμετρη διαχείριση κλειδιών περιλαμβάνονται ο αλγόριθμος κρυπτογράφησης του DEK από την δημόσια κλείδα του αποστολέα και επίσης το κρυπτογραφημένο DEK από την δημόσια κλείδα.
Ακολουθούν μερικά παραδείγματα PEM μηνυμάτων.
Παράδειγμα
Encapsulated Message (Symmetric Key Management)
Παράδειγμα Encapsulated ENCRYPTED Message (Asymmetric Key Management)
Υποστηριζόμενοι Αλγόριθμοι
Αλγόριθμοι Κρυπτογράφησης
Ο μοναδικός αλγόριθμος που χρησιμοποιείται για την κρυπτογράφηση των περιεχομένων είναι ο
DES σε CBC (Cipher Bloch Chaining) mode. Η είσοδος στον αλγόριθμο πολύ πιθανών να απαιτεί κατάλληλο συμπλήρωμα, ώστε το μήκος να είναι πολλαπλάσιο των 8 bytes. Επίσης απαιτεί έναν 64-bit Initialization Vector, ο οποίος είναι διαφορετικός για κάθε ENCRYPTED PEM μήνυμα.Ο
DES CBC απαιτεί ένα κλειδί κρυπτογράφησης των 64 bits. Από τα 64 bits, τα 56 χρησιμοποιούνται απευθείας για από τον DES CBC, ενώ τα υπόλοιπα 8 bits είναι bits περιττής ισοτιμίας. Για κάθε ENCRYPTED PEM μήνυμα παράγεται νέο τυχαίο κλειδί.Αλγόριθμοι Παραγωγής MICs
Υπάρχουν δύο αλγόριθμοι σε αυτήν την κατηγορία, ο
MD2 και ο MD5. Και οι δύο αλγόριθμοι δέχονται σαν είσοδο μήνυμα οποιουδήποτε μήκους και παράγουν στην έξοδο μια ακολουθία 16 bytes. Όταν χρησιμοποιείται συμμετρική διαχείριση κλειδιών, το αποτέλεσμα των αλγορίθμων διασπάται στα δύο μισά των 8 bytes, τα οποία κρυπτογραφούνται ξεχωριστά και έπειτα συνενώνονται.Αλγόριθμοι Συμμετρικής Διαχείρισης Κλειδιών
Οι αλγόριθμοι που χρησιμοποιούνται για την κρυπτογράφηση των
DEKs και MICs είναι δύο παραλλαγές του DES: ο DES σε ECB (Electronic-Codebook) mode και ο DES σε EDE (Encrypt-Decrypt-Encrypt) mode. Και οι δύο απαιτούν IK κλειδιά μήκους 64 bits.Αλγόριθμοι Ασύμμετρης Διαχείρισης Κλειδιών
Το ασύμμετρο ζευγάρι
IK κλειδιών (δημόσια κλείδα – ιδιωτική κλείδα) είναι της μορφής που καθορίζεται από το RSA μηχανισμό. Ομοίως, για την κρυπτογράφηση των DEKs και MICs ο μηχανισμός RSA εφαρμόζεται, κατά τον οποίο η ιδιωτική κλείδα κρυπτογραφεί τo MICs παράγοντας έτσι ψηφιακές υπογραφές των μηνυμάτων και η δημόσια κλείδα κρυπτογραφεί το DEK.Χρησιμοποιείται, επίσης, και ο
MD2 σε συνδυασμό με τον RSA για την υπογραφή των πιστοποιητικών και των λιστών ανάκλησης πιστοποιητικών (CRL).Περαιτέρω Πληροφορίες
Στις παρακάτω ηλεκτρονικές σελίδες μπορούν να βρεθούν τα τεχνικά έγγραφα στα οποία βασίζεται η παρούσα μελέτη:
Privacy Enhanced Mail – PEM -- http://www.uninett.no/pca/html/pem-e.html
Secure EMAIL (SAECRC) -- http://ec.saecrc.org/techno/inethelp/secure2.htm
RFCs: PEM - Privacy Enhanced Mail and Cryptography – http://www.wu-wien.ac.at/manuals/rfc-pem.html
5.6 PGP (Pretty Good Privacy)
5.6.1
ΕισαγωγήΤο λογισμικό Pretty Good Privacy (PGP), το οποίο σχεδιάστηκε από τον Phill Zimmerman, είναι ένα λογισμικό κρυπτογράφησης υψηλής ασφάλειας για λειτουργικά συστήματα όπως τα MS DOS, Unix, VAX/VMS και για άλλες πλατφόρμες. Το PGP επιτρέπει την ανταλλαγή αρχείων και μηνυμάτων διασφαλίζοντας το απόρρητο και την ταυτότητα σε συνδυασμό με την ευκολία λειτουργίας.
Διασφάλιση του απορρήτου σημαίνει ότι μόνο αυτός για τον οποίο προορίζεται ένα μήνυμα είναι ικανός και να το διαβάσει
.Πιστοποίηση της ταυτότητας σημαίνει ότι μηνύματα που φαίνεται πως έχουν προέλθει από κάποιο άτομο μπορούν να έχουν προέλθει μόνο από αυτό το άτομο
.Ευκολία σημαίνει ότι η διασφάλιση του απόρρητου και η πιστοποίησης της ταυτότητας παρέχονται χωρίς την πολυπλοκότητα της διαχείρισης κλειδιών η οποία σχετίζεται με τη συμβατική κρυπτογραφία
. Δεν είναι αναγκαία ασφαλή κανάλια για την ανταλλαγή κλειδιών μεταξύ χρηστών κάτι που κάνει το PGP πολύ ευκολότερο στη χρήση από κάθε άλλο αντίστοιχο πακέτο. Αυτό συμβαίνει διότι το PGP είναι βασισμένο σε μια δυναμική νέα τεχνολογία που καλείται κρυπτογράφηση "δημοσίων κλειδιών" (public key).Το
PGP συνδυάζει την ευκολία του RSA κρυπτοσυστήματος δημοσίων κλειδιών με την ταχύτητα της συμβατικής κρυπτογράφησης, περιλήψεις μηνυμάτων για ψηφιακές υπογραφές, συμπίεση δεδομένων πριν την κρυπτογράφηση, καλός εργονομικός σχεδιασμός και υψηλού επιπέδου διαχείριση κλειδιών. Επιπλέον το PGP εκτελεί τις λειτουργίες των δημοσίων κλειδιών γρηγορότερα από τα περισσότερα αντίστοιχα προγράμματα. Το PGP είναι κρυπτογράφηση δημοσίων κλειδιών για τις μάζες.Σήμερα εάν η κυβέρνηση θελήσει να παραβιάσει το απόρρητο των πολιτών πρέπει να καταβάλλει ένα συγκεκριμένο ποσό χρημάτων και εργασίας για να υποκλέψει και να διαβάσει το συμβατικό ταχυδρομείο και να ακούσει ή να υποκλέψει τηλεφωνικές συνομιλίες
. Αυτός ο τρόπος της παρακολούθησης δεν είναι πρακτικός σε μεγάλο επίπεδο. Αυτό συμβαίνει μόνο σε σημαντικές περιπτώσεις όπου φαίνεται ότι αξίζει.Όλο και μεγαλύτερο ποσοστό από τις ιδιωτικές μας επικοινωνίες δρομολογείται μέσω ηλεκτρονικών καναλιών
. Το ηλεκτρονικό ταχυδρομείο σταδιακά αντικαθιστά το συμβατικό ταχυδρομείο. Τα μηνύματα e-mail είναι πολύ εύκολο να υποκλέπτουν και να περάσουν από διαδικασία ανίχνευσης βάσει καθορισμένων λέξεων-κλειδιών (keywords). Αυτό μπορεί να γίνει εύκολα, αυτόματα και χωρίς να πέσει στην αντίληψη κανενός σε μεγάλο επίπεδο. Οι διεθνείς συνδέσεις βρίσκονται ήδη κάτω από μια τέτοια διαδικασία παρακολούθησης από την NSA.Κινούμαστε προς ένα μέλλον όπου οι υπολογιστές διεθνώς θα ενώνονται με δίκτυα οπτικών ινών υψηλής χωρητικότητας
. Το e-mail θα είναι κάτι το αυτονόητο για όλους και όχι η καινοτομία που θεωρείται σήμερα. Οι κυβερνήσεις θα προστατεύουν το e-mail των πολιτών με πρωτόκολλα σχεδιασμένα από τις ίδιες. Πιθανότατα οι περισσότεροι άνθρωποι θα συμβιβαστούν με αυτή τη λύση αλλά ίσως μερικοί προτιμήσουν να πάρουν τα δικά τους μέτρα ασφάλειας.5.6.2 Λειτουργία Του
PGPΓια να κατανοήσουμε τη λειτουργία του
PGP θα πρέπει να αναφέρουμε λίγα λόγια πάνω στην ορολογία που χρησιμοποιείται. Ας θεωρήσουμε ότι θέλει κάποιος να στείλει ένα μήνυμα αλλά δεν θέλει να το διαβάσει κανένας άλλος εκτός από τον παραλήπτη. Μπορεί να το κρυπτογραφήσει με τη χρήση ενός κλειδιού το οποίο θα πρέπει να χρησιμοποιηθεί στην αποκρυπτογράφηση του μηνύματος από τον παραλήπτη του—τουλάχιστον έτσι δουλεύει η συμβατική κρυπτογραφία ενός κλειδιού.Στα συμβατικά κρυπτοσυστήματα
, όπως το DES, ένα και μόνο κλειδί χρησιμοποιείται τόσο για την κρυπτογράφηση όσο και για την αποκρυπτογράφηση. Αυτό σημαίνει ότι το κλειδί θα πρέπει να μεταδοθεί αρχικά μέσα από ένα ασφαλές κανάλι έτσι ώστε και τα δυο μέρη να το γνωρίζουν προτού αρχίσει η αποστολή κρυπτογραφημένων μηνυμάτων μέσω ασφαλών καναλιών. Αυτό δεν είναι και τόσο βολικό διότι αν έχεις ένα ασφαλές κανάλι για να ανταλλάζεις κλειδιά τότε τι χρειάζεσαι την κρυπτογραφία;Στα κρυπτοσυστήματα δημοσίων κλειδιών ο καθένας έχει δυο συμπληρωματικά κλειδιά
. Ένα που δίδεται δημόσια (public key) και ένα μυστικό (secret key ή private key). Το κάθε κλειδί ξεκλειδώνει τον κώδικα που το άλλο φτιάχνει. Η γνώση του δημοσίου κλειδιού δεν βοηθάει στην εξαγωγή του αντίστοιχου μυστικού κλειδιού. Το δημόσιο κλειδί μπορεί να διατεθεί σε ένα δίκτυο επικοινωνιών. Αυτό το πρωτόκολλο παρέχει διασφάλιση του απόρρητου χωρίς την ανάγκη ύπαρξης ασφαλών καναλιών, όπως απαιτεί η συμβατική κρυπτογραφία.Ο καθένας μπορεί να χρησιμοποιήσει το δημόσιο κλειδί του παραλήπτη ενός μηνύματος για να κρυπτογραφήσει ένα μήνυμα προς αυτό το άτομο ενώ ο παραλήπτης μπορεί να χρησιμοποιήσει με τη σειρά του το αντίστοιχο μυστικό κλειδί για να αποκρυπτογραφήσει το μήνυμα
. Κανένας άλλος εκτός από τον παραλήπτη δεν μπορεί να το αποκρυπτογραφήσει διότι κανένας άλλος δεν έχει πρόσβαση στο μυστικό κλειδί - ακόμη και το άτομο που κρυπτογράφησε το μήνυμα.Επίσης παρέχεται υπηρεσία πιστοποίησης του μηνύματος
. Το μυστικό κλειδί του αποστολέα μπορεί να χρησιμοποιηθεί για την κρυπτογράφηση του μηνύματος άρα και για την υπογραφή του. Έτσι δημιουργείται μια ψηφιακή υπογραφή του μηνύματος την οποία ο παραλήπτης ή οποιοσδήποτε άλλος μπορεί να ελέγξει χρησιμοποιώντας το δημόσιο κλειδί του αποστολέα για να την αποκρυπτογραφήσει. Αυτό αποδεικνύει ότι ο αποστολέας ήταν ο πραγματικός δημιουργός του μηνύματος και ότι το μήνυμα δεν αλλοιώθηκε από κάποιον άλλον διότι μόνο ο αποστολέας έχει στην κατοχή του το μυστικό κλειδί που έφτιαξε την υπογραφή. Η πλαστογράφηση ενός υπογεγραμμένου μηνύματος δεν είναι εφικτή και ο αποστολέας δεν μπορεί μετά να απαρνηθεί την υπογραφή του.Αυτές οι δυο διαδικασίες μπορούν να συνδυαστούν για την παροχή τόσο διασφάλισης του απόρρητου όσο και πιστοποίησης της ταυτότητας αφού μπορεί κάποιος πρώτα να υπογράψει ένα μήνυμα με το μυστικό κλειδί του και μετά να το κρυπτογραφήσει με το δημόσιο κλειδί του παραλήπτη
. Ο παραλήπτης αντιστρέφει αυτά τα βήματα αποκρυπτογραφώντας πρώτα το μήνυμα με το μυστικό κλειδί του και κατόπιν ελέγχοντας την ψηφιακή υπογραφή που περιέχεται σε αυτό με το δημόσιο κλειδί του αποστολέα. Αυτές οι διαδικασίες γίνονται αυτόματα από το λογισμικό του παραλήπτη.Επειδή ο αλγόριθμος της κρυπτογράφησης δημοσίων κλειδιών είναι πολύ πιο αργός από τη συμβατική κρυπτογράφηση ενός κλειδιού η κρυπτογράφηση επιτυγχάνεται καλύτερα με τη χρήση ενός υψηλής ποιότητας γρήγορου αλγόριθμου συμβατικής κρυπτογράφησης ενός κλειδιού για την κρυπτογράφηση του μηνύματος
. Το αρχικό μη κρυπτογραφημένο μήνυμα καλείται "απλό κείμενο". Σε μια διαδικασία αόρατη στο χρήστη ένα προσωρινό τυχαίο κλειδί, το οποίο έχει δημιουργηθεί μόνο για τη συγκεκριμένη φορά, χρησιμοποιείται για να κρυπτογραφηθεί συμβατικά το αρχείο "απλό κείμενο". Μετά το δημόσιο κλειδί του παραλήπτη χρησιμοποιείται για να κρυπτογραφηθεί αυτό το προσωρινό κλειδί. Αυτό το συμβατικά δημιουργημένο κλειδί μιας φοράς (session key) το οποίο έχει κρυπτογραφηθεί και με τη διαδικασία του δημόσιου κλειδιού αποστέλλεται μαζί με το κρυπτογραφημένο κείμενο (κρυπτοκείμενο) στον παραλήπτη. Ο παραλήπτης χρησιμοποιεί το δικό του μυστικό κλειδί για να ανακτήσει το session key και μετά χρησιμοποιεί αυτό κλειδί για να τρέξει τον γρήγορο συμβατικό αλγόριθμο ενός κλειδιού έτσι ώστε να αποκρυπτογραφήσει το κρυπτοκείμενο. Η όλη διαδικασία φαίνεται στο παρακάτω σχήμα:
Τα δημόσια κλειδιά φυλάσσονται σε ξεχωριστά πιστοποιητικά κλειδιών
(key certificates) τα οποία περιλαμβάνουν την ταυτότητα του ιδιοκτήτη τους (το όνομα του ιδιοκτήτη), μια σφραγίδα χρόνου που δείχνει πότε το ζεύγος των κλειδιών δημιουργήθηκε και τέλος το ίδιο το υλικό του κλειδιού. Τα πιστοποιητικά δημοσίων κλειδιών περιλαμβάνουν το υλικό των δημοσίων κλειδιών ενώ τα πιστοποιητικά των μυστικών κλειδιών περιλαμβάνουν το υλικό των μυστικών κλειδιών. Κάθε μυστικό κλειδί κρυπτογραφείται επιπλέον με τον κωδικό του σε περίπτωση που κλαπεί. Ένα αρχείο κλειδιών ή ένα μπρελόκ κλειδιών (key ring) περιέχει ένα ή περισσότερα από αυτά τα πιστοποιητικά κλειδιών. Τα δημόσια μπρελόκ περιέχουν τα δημόσια πιστοποιητικά κλειδιών ενώ τα ιδιωτικά μπρελόκ περιέχουν τα ιδιωτικά πιστοποιητικά κλειδιά.Τα κλειδιά χαρακτηρίζονται από ένα
"key id" (ταυτότητα κλειδιού) η οποία είναι μια συντομογραφία του δημόσιου κλειδιού (τα 64 λιγότερο σημαντικά bits του δημοσίου κλειδιού). Όταν αυτή η ταυτότητα παρουσιάζεται μόνο τα 32 λιγότερο σημαντικά bits δίνονται για επιπλέον ελαχιστοποίηση του όγκου της ταυτότητας. Καθώς πολλά κλειδιά μπορεί να μοιράζονται το ίδιο user id (ταυτότητα χρήστη), για πρακτικούς λόγους κανένα κλειδί δεν μοιράζεται το ίδιο key id με κανένα άλλο.Το
PGP χρησιμοποιεί τις περιλήψεις μηνυμάτων (message digests) για να δημιουργήσει υπογραφές. Μια περίληψη μηνύματος είναι μια κρυπτογραφικά πολλή δυνατή μονόδρομη (hash) συνάρτηση 128 bit του μηνύματος. Είναι κάτι ανάλογο με το "check sum" ή CRC κώδικα ελέγχου στο ότι αντιπροσωπεύουν συμπαγώς το μήνυμα και χρησιμοποιούνται για την ανίχνευση αλλαγών σε αυτό. Αντίθετα βέβαια με το CRC είναι υπολογιστικά αδύνατο για κάποιον επιτιθέμενο να φτιάξει ένα υποκατάστατο μήνυμα το οποίο θα μπορούσε να παράγει την ίδια περίληψη μηνύματος. Η περίληψη μηνύματος κρυπτογραφείται με το μυστικό κλειδί και έτσι σχηματίζει την ψηφιακή υπογραφή.Τα κείμενα υπογράφονται με την εισαγωγή στην αρχή τους ψηφιακών πιστοποιητικών υπογραφών οι οποίες περιέχουν το
key id του κλειδιού που χρησιμοποιήθηκε για την υπογραφή τους, μια υπογεγραμμένη με το μυστικό κλειδί περίληψη του κειμένου και μια χρονική σφραγίδα της δημιουργίας της υπογραφής. Το key id χρησιμοποιείται από τον παραλήπτη για την ανεύρεση του δημόσιου κλειδιού του αποστολέα έτσι ώστε να ελέγξει την ψηφιακή υπογραφή. Το λογισμικό του παραλήπτη αναζητεί αυτόματα το δημόσιο κλειδί του αποστολέα και το user id του στο μπρελόκ δημοσίων κλειδιών που έχει στην κατοχή του ο παραλήπτης.Τα κρυπτογραφημένα αρχεία περιέχουν στην αρχή τους το
key id του δημοσίου κλειδιού που χρησιμοποιήθηκε στην κρυπτογράφησή τους. Ο παραλήπτης χρησιμοποιεί αυτό το key id για την ανεύρεση του μυστικού κλειδιού που απαιτείται για την αποκρυπτογράφηση του μηνύματος. Το λογισμικό του παραλήπτη αναζητεί αυτόματα το απαραίτητο μυστικό κλειδί αποκρυπτογράφησης στο μπρελόκ μυστικών κλειδιών του παραλήπτη.Αυτοί οι δυο τύποι μπρελόκ κλειδιών είναι η κύρια μέθοδος της αποθήκευσης και διαχείρισης των δημόσιων και ιδιωτικών κλειδιών
. Αντί να κρατάμε ξεχωριστά κλειδιά σε ξεχωριστά αρχεία κλειδιών τα μαζεύουμε σε μπρελόκ κλειδιών έτσι ώστε να διευκολύνουμε την αυτόματη ανεύρεσή τους είτε με τη χρήση του key id είτε με τη χρήση του user id. Κάθε χρήστης διατηρεί το δικό του ζεύγος μπρελόκ. Ένα ξεχωριστό δημόσιο κλειδί αποθηκεύεται προσωρινά σε ένα ξεχωριστό αρχείο μόνο για το χρόνο που χρειάζεται για την αποστολή του σε κάποιο φίλο ο οποίος κατόπιν θα το προσθέσει στο δικό του μπρελόκ κλειδιών.5.6.3
Προστασία Δημοσίων ΚλειδιώνΣε ένα κρυπτοσύστημα δημοσίων κλειδιών δεν υπάρχει ανάγκη προστασίας των δημοσίων κλειδιών, διότι το επιδιωκόμενο είναι η όσο το δυνατόν ευρύτερη διάδοσή τους. Το σημαντικό και αυτό που θα πρέπει να διασφαλίζεται είναι το να είμαστε σίγουροι ότι κάποιο δημόσιο κλειδί που φαίνεται ότι ανήκει σε κάποιον, όντως να ανήκει σε αυτόν. Αυτό μπορεί να είναι και το πιο σημαντικό μειονέκτημα του κρυπτοσυστήματος δημόσιων κλειδιών. Ας εξετάσουμε το λόγο:
Ας υποθέσουμε ότι ο Bob θέλει να στείλει ένα προσωπικό μήνυμα στην Alice. Για να το κάνει αυτό κατεβάζει το πιστοποιητικό δημοσίων κλειδιών από κάποιο σύστημα ηλεκτρονικού πίνακα ανακοινώσεων (BBS). Κατόπιν, κρυπτογραφεί το γράμμα προς την Alice με αυτό δημόσιο κλειδί και το στέλνει σε αυτήν μέσω της λειτουργίας e-mail του BBS.
Aτυχώς,
τόσο για τον αποστολέα (Bob) όσο και για την Alice κάποιος τρίτος χρήστης – ας υποθέσουμε ο Charlie - έχει δημιουργήσει ένα δημόσιο κλειδί με το user id της Alice και το έχει βάλει στη θέση του πραγματικού κλειδιού της Alice. Ο Βob χρησιμοποίησε αυτό το πλαστογραφημένο κλειδί για να κρυπτογραφήσει το μήνυμα προς την Alice αντί του αληθινού κλειδιού της Alice. Όπως φαίνεται όλα δείχνουν φυσιολογικά διότι το πλαστογραφημένο κλειδί έχει το user id της Alice. Έτσι ο Charlie μπορεί να αποκρυπτογραφήσει το μήνυμα που προοριζόταν για την Alice μια και έχει το κλειδί που αντιστοιχεί στο πλαστογραφημένο δημόσιο κλειδί της Alice. Όμως το πρόβλημα δεν τελειώνει εδώ. Ο Charlie μπορεί επιπλέον να επανακρυπτογραφήσει το μήνυμα και να το προωθήσει στην Alice οπότε κανείς δεν πρόκειται να υποπτευθεί τίποτα. Εάν θέλει, μπορεί να προχωρήσει στη δημιουργία ψηφιακών υπογραφών της Alice με το πλαστογραφημένο κλειδί μια και όλοι θα το χρησιμοποιούν για να ελέγχουν τις υπογραφές της.Όπως τελικά φαίνεται ο κίνδυνος είναι πολύ μεγάλος
. Ο μόνος τρόπος να αποτραπούν τέτοιες καταστάσεις είναι η αποφυγή της υποκλοπής και του μπερδέματος των δημοσίων κλειδιών. Εάν κάποιος έχει πάρει το δημόσιο κλειδί της Alice κατευθείαν από την ίδια τότε δεν υπάρχει πρόβλημα. Αυτό βέβαια μπορεί να είναι πολύ δύσκολο εάν η Alice είναι χιλιάδες χιλιόμετρα μακριά ή απλά προσωρινά απρόσιτη.Μία διέξοδος σε αυτό το πρόβλημα είναι η χρήση κάποιου τρίτου κοινά αποδεκτού
"φίλου" ο οποίος έχει στη κατοχή του ένα καλό αντίγραφο του δημόσιου κλειδιού της Alice. Για παράδειγμα ας θεωρήσουμε ότι αυτός είναι ο David ο οποίος μπορεί να υπογράψει το δημόσιο κλειδί της Alice με τη δικό του μυστικό κλειδί και να εγγυηθεί με αυτό το τρόπο την αυθεντικότητα του κλειδιού της Alice.Αυτή η διαδικασία θα παρήγαγε ένα υπογεγραμμένο πιστοποιητικό δημόσιου κλειδιού που θα αποδείκνυε την ακεραιότητα του κλειδιού της
Alice. Αυτή η διαδικασία,βέβαια, προϋποθέτει την δυνατότητα ελέγχου του κλειδιού του David άρα την κατοχή ενός γνήσιου αντίγραφου του δημόσιου κλειδιού του. Ο David θα μπορούσε επιπλέον να στείλει στην Alice ένα υπογεγραμμένο αντίγραφο του δημόσιου κλειδιού του Bob. Με αυτό το τρόπο λειτουργεί σαν μεσάζοντας (introducer) μεταξύ του Bob και της Alice.Το υπογεγραμμένο κλειδί για την
Alice μπορεί να σταλεί από τον David ή την Alice στο BBS και από εκεί να το πάρει αργότερα όποιος το χρειαστεί. Αυτός το μόνο που θα χρειαστεί να κάνει, για να σιγουρευτεί για την ακεραιότητα του δημόσιου κλειδιού της Alice, είναι να την ελέγξει μέσω του δημόσιου κλειδιού του David. Κανένας δεν μπορεί να ξεγελάσει πλέον όποιον έχει το υπογεγραμμένο από τον David δημόσιο κλειδί της Alice διότι κανείς δεν μπορεί να πλαστογραφήσει την υπογραφή του David.Κάποιο άτομο που τυγχάνει ευρείας εμπιστοσύνης θα μπορούσε να εξειδικευτεί στην παροχή αυτής της υπηρεσίας, δηλαδή της παροχής υπογραφών σε πιστοποιητικά δημοσίων κλειδιών άλλων χρηστών
. Αυτό το κοινά αποδεκτό άτομο θα μπορούσε να είναι κάποιος "key server" ή κάποια υπηρεσία πιστοποίησης. Κάθε πιστοποιητικό δημόσιου κλειδιού που φέρει την υπογραφή αυτού του key server θα μπορεί να θεωρείται γνήσιο και έτσι άξιο της εμπιστοσύνης κάποιου. Το μόνο που χρειάζεται να κάνουν όσοι χρήστες θα ήθελαν να συμμετέχουν σε αυτή τη διαδικασία είναι να αποκτήσουν ένα καλό αντίγραφο του δημοσίου κλειδιού του key server έτσι ώστε να είναι σε θέση να επιβεβαιώσουν την υπογραφή αυτού.Κάποιος κεντρικός
key server ή μια υπηρεσία πιστοποίησης, θα ήταν κατάλληλη για κάποια μεγάλη και απρόσωπη επιχείρηση ή κυβερνητική υπηρεσία.Η αποκεντρωμένη έκδοση του σχήματος αυτού είναι εκείνη που επιτρέπει σε όλους τους χρήστες να δρουν σαν μεσάζοντες, ο ένας για τον άλλο
,κάτι που έχει καλύτερα αποτελέσματα από έναν και μοναδικό key server. Το PGP τείνει προς αυτή τη κατεύθυνση διότι αντανακλά καλύτερα το φυσικό τρόπο με τον οποίο αλληλεπιδρούν μεταξύ τους οι άνθρωποι στις σχέσεις τους και ταυτόχρονα επιτρέπει σε αυτούς να διαλέξουν ποιόν εμπιστεύονται για τη διαχείριση των κλειδιών τους.Αυτή ολόκληρη η διαδικασία της προστασίας των δημοσίων κλειδιών είναι το μοναδικό δύσκολο πρόβλημα στις πρακτικές εφαρμογές της κρυπτογράφησης δημοσίων κλειδιών
. Θα μπορούσαμε να πούμε ότι είναι η Αχίλλειος φτέρνα της κρυπτογράφησης δημοσίων κλειδιών και έχει καταβληθεί μεγάλη προσπάθεια για τη λύση αυτού του προβλήματος.Η χρήση ενός δημόσιου κλειδιού δεν θα πρέπει να ξεκινάει εάν δεν είμαστε σίγουροι ότι πρόκειται για ένα καλό δημόσιο κλειδί το οποίο ανήκει σε αυτόν που ισχυρίζεται ότι ανήκει
. Μπορούμε να είμαστε σίγουροι για την προέλευση του κλειδιού εάν έχουμε κάποιο πιστοποιητικό από τον ιδιοκτήτη του ή κάποιον άλλο που εμπιστευόμαστε,από τον οποίο όμως έχουμε ήδη ένα εγγυημένο δημόσιο κλειδί. Επιπλέον το user id θα πρέπει να έχει ολόκληρο το όνομα του ιδιοκτήτη και όχι απλά το μικρό του ή κάποιο άλλο ψευδώνυμο.Δεν έχει σημασία πόσο σίγουροι μπορεί να αισθανόμαστε για κάποιο δημόσιο κλειδί που κατεβάσαμε από κάποιον ηλεκτρονικό πίνακα ανακοινωθέντων—ΠΟΤΕ δεν θα πρέπει να εμπιστευόμαστε οτιδήποτε δεν έχει την υπογραφή κάποιου που εμπιστευόμαστε
. Ένα δημόσιο κλειδί που απλά κατεβάσαμε δίχως να το ελέγξουμε είναι πιθανόν να έχει αλλοιωθεί από κάποιον τρίτο, ακόμα και από το διαχειριστή του ηλεκτρονικού πίνακα. Εάν ποτέ μας ζητηθεί να υπογράψουμε το δημόσιο κλειδί κάποιου άλλου θα πρέπει να σιγουρευτούμε ότι αυτό πραγματικά του ανήκει. Αυτό πρέπει να γίνει διότι η υπογραφή μας στο δημόσιο κλειδί εγγυάται την αυθεντικότητά του. Εάν έχουμε κάνει λάθος,τότε όσοι μας εμπιστεύονται θα εμπιστευτούν και το κλειδί με αβέβαια αποτελέσματα. Ο κανόνας λέει ότι υπογράφουμε δημόσια κλειδιά για τα οποία έχουμε ιδία γνώση της αυθεντικότητάς τους. Για να αποκτήσουμε αυτή τη γνώση μπορούμε για παράδειγμα να μιλήσουμε στον ιδιοκτήτη του κλειδιού στο τηλέφωνο και να επιβεβαιώσουμε τα στοιχεία που έχουμε στα χέρια μας. Με το να βάλουμε την υπογραφή μας σε ένα δημόσιο κλειδί για το οποίο ήμαστε σίγουροι δεν χάνουμε την αξιοπιστία μας ακόμα και αν αυτό ανήκει σε κάποιον ψυχοπαθή. Αυτό συμβαίνει διότι με την υπογραφή μας δεν λέμε τίποτα παραπάνω από το ότι αυτό το κλειδί ανήκει σε αυτόν που ισχυρίζεται ότι ανήκει—το ότι κάποιος μπορεί να εμπιστευθεί το κλειδί δεν έχει καμία σχέση με το αν μπορεί να εμπιστευθεί ή όχι τον ιδιοκτήτη του.Η εμπιστοσύνη δεν είναι αναγκαστικά κάτι μεταβιβάσιμο
. Για παράδειγμα μπορεί έχουμε κάποιον φίλο που εμπιστευόμαστε και ξέρουμε ότι δεν λέει ψέματα. Αυτός μπορεί να εμπιστεύεται τον πρόεδρο της κυβέρνησης. Όπως είναι αυτονόητο αυτό δεν σημαίνει ότι και εμείς εμπιστευόμαστε τον πρόεδρο της κυβέρνησης – κοινή λογική. Ανάλογα εάν εμπιστευόμαστε την υπογραφή της Alice σε ένα δημόσιο κλειδί και η Alice με τη σειρά της εμπιστεύεται την υπογραφή του Charlie σε κάποιο άλλο κλειδί, αυτό δεν σημαίνει ότι και εμείς εμπιστευόμαστε την υπογραφή του Charlie σε εκείνο το κλειδί.Θα ήταν καλή ιδέα, οι χρήστες να κρατούσαν το δημόσιο κλειδί τους μαζί με ένα σύνολο από πιστοποιητικά για αυτό από διαφόρους μεσάζοντες με την ελπίδα ότι οι περισσότεροι χρήστες εμπιστεύονται κάποιον από αυτούς
. Μπορεί λοιπόν, κάποιος χρήστης να ανακοινώσει το δημόσιο κλειδί του μαζί με τη συλλογή των πιστοποιητικών που διαθέτει για αυτό. Όταν υπογράφουμε το δημόσιο κλειδί κάποιου πρέπει να του το επιστρέφουμε μαζί με την υπογραφή μας ώστε να την προσθέσουνε στη συλλογή πιστοποιητικών για το δημόσιο κλειδί τους.Το
PGP κρατάει στοιχεία για το ποια από τα δημόσια κλειδιά που έχουμε στην κατοχή μας είναι πιστοποιημένα με υπογραφές που εμπιστευόμαστε. Το μόνο που εμείς πρέπει να κάνουμε είναι να πούμε στο PGP ποιους εμπιστευόμαστε σαν μεσάζοντες και να πιστοποιήσουμε τα κλειδιά τους με το δικό μας. Το PGP αναλαμβάνει από εκεί και πέρα να κρίνει αυτόματα κάποιο δημόσιο κλειδί ως έγκυρο ή όχι.Πρέπει να διασφαλίσουμε ότι κανένας δεν πρόκειται να αλλοιώσει το μπρελόκ με τα κλειδιά μας
. Ο έλεγχος ενός νέου υπογεγραμμένου δημοσίου κλειδιού πρέπει να εξαρτάται ολοκληρωτικά από την ακεραιότητα των κλειδιών τα οποία ήδη έχουμε στο μπρελόκ μας και τα οποία φυσικά εμπιστευόμαστε. Πρέπει να διατηρούμε συνεχή φυσικό έλεγχο των μπρελόκ δημοσίων κλειδιών μας σε κάποιο PC εκτός δικτύου όπως ακριβώς θα κάναμε και με το μυστικό κλειδί μας. Επιπλέον πρέπει να κρατάμε ένα αντίγραφο του δημόσιου και μυστικού κλειδιού μας σε κάποιο προστατευμένο μέσο όπου αποκλείεται ποτέ να τα σβήσουμε κατά λάθος. Από τη στιγμή κατά την οποία το δημόσιο κλειδί μας χρησιμοποιείται ως ο τελικός κριτής για τη πιστοποίηση ή μη όλων των άλλων κλειδιών του μπρελόκ είναι σημαντική για την ασφάλεια όλου του συστήματος η διασφάλισή του. Το PGP μπορεί αυτόματα να συγκρίνει το δημόσιο κλειδί μας με ένα αντίγραφό του σε κάποιο προστατευμένο φυσικό μέσο.Το
PGP γενικά θεωρεί ότι διατηρούμε το σύστημά μας, τα μπρελόκ και το PGP ασφαλές σε φυσικό επίπεδο. Εάν κάποιος έχει πρόσβαση στο σκληρό δίσκο του συστήματός μας τότε θεωρητικά μπορεί να αλλοιώσει το ίδιο το PGP έτσι ώστε αυτό να αδυνατεί να ανιχνεύσει οποιαδήποτε αλλοιώσει σε άλλα κλειδιά.Ένας ακόμα τρόπος να προστατεύσουμε ολόκληρο το μπρελόκ με τα κλειδιά μας είναι να το υπογράψουμε ολόκληρο με το μυστικό μας κλειδί
. Βέβαια θα έπρεπε πάλι να έχουμε κάπου αλλού προστατευμένο ένα αντίγραφο του δημοσίου κλειδιού μας για να είμαστε σε θέση να ελέγξουμε την υπογραφή μας. Όπως είναι φυσικό δεν μπορούμε να βασιστούμε στο δημόσιο κλειδί μας, που βρίσκεται στο μπρελόκ, για τον έλεγχο της υπογραφής μας διότι αυτό είναι μέρος αυτού που πάμε να προστατέψουμε.5.6.4
Διαδικασία Αναγνώρισης Έγκυρων ΚλειδιώνΤο
PGP παρακολουθεί ποια από τα κλειδιά που υπάρχουν στο μπρελόκ δημοσίων κλειδιών είναι πιστοποιημένα και ποια όχι με υπογραφές χρηστών που εμπιστευόμαστε. Το μόνο που πρέπει να κάνουμε είναι να "πούμε" στο PGP ποιους χρήστες εμπιστευόμαστε σαν μεσάζοντες και να πιστοποιήσουμε τα κλειδιά τους με το δικό μας κλειδί. Το PGP αναλαμβάνει από εκεί να κινήσει αυτόματα διαδικασίες ελέγχου της εγκυρότητας κλειδιών που είναι υπογεγραμμένα από τους μεσάζοντες που εμείς ορίσαμε. Υπάρχει βέβαια πάντα η δυνατότητα να υπογράψουμε κλειδιά και εμείς οι ίδιοι.Υπάρχουν δύο διαφορετικά κριτήρια βάση των οποίων το PGP κρίνει τη χρησιμότητα των κλειδιών και τα οποία δεν πρέπει να συγχέουμε:
Το
PGP μπορεί να υπολογίσει την απάντηση στην πρώτη ερώτηση. Η απάντηση στη δεύτερη πρέπει να δοθεί αποκλειστικά από το χρήστη. Όταν ο χρήστης δώσει την απάντηση στην δεύτερη ερώτηση τότε το PGP μπορεί να υπολογίσει την απάντηση στην πρώτη ερώτηση για άλλα κλειδιά τα οποία υπογράφονται από αυτόν που έχουμε ορίσει σαν έμπιστο. Κλειδιά τα οποία έχουν πιστοποιηθεί από κάποιον που έχουμε ορίσει ως έμπιστο θεωρούνται έγκυρα από το PGP. Τα κλειδιά που ανήκουν σε έμπιστους μεσάζοντες πρέπει να πιστοποιηθούν από είτε από εμάς τους ίδιους είτε από κάποιον άλλο που έχουμε ορίσει ως έμπιστο.Το
PGP δίνει επιπλέον τη δυνατότητα ορισμού διαφορετικών επιπέδων εμπιστοσύνης για διαφορετικούς μεσάζοντες. Το ότι εμπιστευόμαστε κάποιον να δράσει ως μεσάζοντας δεν σημαίνει μόνο ότι τον εμπιστευόμαστε αλλά επιπλέον ότι τον θεωρούμε αρκετά ικανό να διαχειριστεί κλειδιά επιλέγοντας ποια από αυτά πρέπει και ποια όχι να υπογράψει. Μπορεί να ορίσουμε έναν χρήστη - μεσάζοντα στο PGP σαν άγνωστο, μη έμπιστο, μερικώς έμπιστο και εντελώς έμπιστο για να πιστοποιεί δημόσια κλειδιά. Αυτή η πληροφορία, που αφορά το βαθμό εμπιστοσύνης κάποιου μεσάζοντα, περιέχεται στο μπρελόκ των κλειδιών μαζί με το αντίστοιχο κλειδί (του μεσάζοντα) και δεν αντιγράφεται σε καμία περίπτωση κατά την αντιγραφή κάποιου κλειδιού του μπρελόκ διότι θεωρείται εμπιστευτική πληροφορία μια και αντικατοπτρίζει την άποψη του κατόχου του για τους μεσάζοντες - απόλυτα προσωπικό στοιχείο.Όταν το
PGP ελέγχει την εγκυρότητα ενός κλειδιού αυτό που κάνει είναι να ελέγχει τον βαθμό εμπιστοσύνης όλων των συνημμένων υπογραφών πιστοποίησής του. Κατόπιν υπολογίζει ένα μέσο επίπεδο εμπιστοσύνης - για παράδειγμα δύο μερικώς έμπιστες υπογραφές ισοδυναμούν με μία πλήρως έμπιστη. Το σκεπτικό λειτουργίας του PGP προσαρμόζεται στις απαιτήσεις του χρήστη και ρυθμίζεται αναλόγως (για παράδειγμα μπορούμε να ρυθμίσουμε το PGP να θεωρεί ένα κλειδί έγκυρο μόνο εάν αυτό φέρει δύο πλήρως έμπιστες υπογραφές ή τρεις μερικώς έμπιστες).Το δικό μας κλειδί θεωρείται έγκυρο από το
PGP αξιωματικά και για αυτό το λόγο δεν χρειάζεται την πιστοποίηση από κανέναν. Το PGP γνωρίζει ποια δημόσια κλειδιά είναι δικά μας κοιτάζοντας να βρει τα αντίστοιχα μυστικά κλειδιά στο μπρελόκ τους. Το PGP θεωρεί επιπλέον ότι εμπιστευόμαστε τους εαυτούς μας για να πιστοποιούν άλλα κλειδιά.Όσο θα περνάει ο καιρός θα λαμβάνουμε όλο και περισσότερα κλειδιά από χρήστες που ίσως να θέλουμε να ορίσουμε ως μεσάζοντες
. Κάθε ένας από αυτούς θα έχει τους δικούς του μεσάζοντες των οποίων τα πιστοποιητικά - υπογραφές θα μοιράζει μαζί με το κλειδί του με την ελπίδα ότι όποιος τα λάβει να εμπιστεύεται κάποιο από όλα. Έτσι δημιουργείται ένα αποκεντρωμένο δίκτυο εμπιστοσύνης για όλα τα δημόσια κλειδιά.Αυτή η μοναδική προσέγγιση έρχεται σε αντίθεση με τα κατεστημένα κυβερνητικά σχήματα διαχείρισης κλειδιών
, όπως το PEM (Ιnternet Privacy Enhanced Mail), τα οποία βασίζονται σε συστήματα κεντρικού ελέγχου και υποχρεωτικής εμπιστοσύνης σε αυτά. Τα σχήματα αυτά απαρτίζονται από ιεραρχικές οντότητες που υπαγορεύουν ποιόν πρέπει να εμπιστευόμαστε. Αυτό είναι φανερό ότι έρχεται σε πλήρη αντίθεση με τη σχεδιαστική αρχή του PGP η οποία επιτρέπει στον καθένα και ανεξάρτητα από οποιονδήποτε και οτιδήποτε άλλο να καθορίσει ο ίδιος την πολιτική που θέλει να ακολουθήσει στη διαχείριση των κλαδιών του. Έτσι το PGP βάζει το χρήστη και όχι το σύστημα στην κορυφή της προσωπική του πυραμίδα πιστοποίησης.5.6.5
Προστασία του Μυστικού ΚλειδιούΗ προστασία του μυστικού κλειδιού και της φράσης
-κλειδί του, είναι κάτι το αυτονόητο στο οποίο πρέπει να δοθεί μεγάλη προσοχή. Εάν ποτέ το μυστικό κλειδί πέσει σε λάθος χέρια – τα οποία είναι οποιαδήποτε άλλα εκτός των δικών μας—τότε θα πρέπει άμεσα, τόσο για τη δική μας ασφάλεια όσο και των άλλων, να ειδοποιήσουμε τους πάντες για το γεγονός προτού κάποιος αρχίσει να υπογράφει με το "όνομά" μας. Θα μπορούσε, για παράδειγμα, να υπογράψει ένα σύνολο από δημόσια κλειδιά δημιουργώντας έτσι πρόβλημα σε πολλούς χρήστες ειδικά εάν η υπογραφή μας τυγχάνει ευρείας εμπιστοσύνης και αποδοχής. Φυσικά, κίνδυνο διατρέχουμε και από το γεγονός της έκθεσης όλων των μηνυμάτων μας στα μάτια αυτού που έχει το προσωπικό μας κλειδί.Η προστασία του μυστικού κλειδιού πρέπει να αρχίζει με τη φυσική του διασφάλιση
. Μπορούμε να το κρατάμε σε κάποιο PC στο σπίτι ή κάποιο υπολογιστή notebook μια και αυτά τα έχουμε υπό την επίβλεψή μας συνεχώς. Εάν ποτέ υπάρξει ανάγκη χρησιμοποίησης υπολογιστή στο γραφείο ή οπουδήποτε αλλού τότε θα πρέπει να μεταφέρουμε το μυστικό κλειδί μας σε αυτόν μέσο κάποιας δισκέτας ενδεχομένως και για όσο χρειάζεται ενώ όταν τελειώσουμε τη δουλεία μας δεν πρέπει να αφήσουμε πίσω οτιδήποτε μπορεί να οδηγήσει στην αποκάλυψη του. Δεν είναι επίσης σωστό να αφήνουμε το μυστικό κλειδί μας σε κάποιο απομακρυσμένο μηχάνημα (ένας Unix dial-in server) διότι μπορεί κάποιος που παρακολουθεί τις επικοινωνίες μέσω modem να υποκλέψει τη μυστική φράση (pass phrase) και να αποκτήσει το μυστικό από το απομακρυσμένο σύστημα. Συμπερασματικά λέμε ότι θα πρέπει να γίνεται χρήση του μυστικού κλειδιού μόνο σε συστήματα στα οποία έχουμε φυσικό έλεγχο.Επιπρόσθετα, πρέπει να προσέξουμε πού αποθηκεύουμε τη μυστική φράση
-κλειδί. Δεν πρέπει ποτέ αυτή να βρίσκεται στον ίδιο υπολογιστή με αυτόν που έχει το αρχείο του μυστικού κλειδιού μας. Η αποθήκευση τόσο του μυστικού κλειδιού όσο και της μυστικής φράσης στον ίδιο υπολογιστή είναι το ίδιο επικίνδυνη με την φύλαξη του PIN ενός τραπεζικού ATM λογαριασμού στο ίδιο πορτοφόλι με την κάρτα ΑΤΜ. Ένα πράγμα είναι σίγουρο - δεν θέλουμε σε καμία περίπτωση αυτός που θα έχει στα χέρια του τον σκληρό δίσκο με το μυστικό μας κλειδί να έχει στη διάθεσή του και τη μυστική φράση. Το ιδανικό θα ήταν να απομνημονεύαμε τη μυστική φράση και να μην την φυλάγαμε σε κανένα άλλο μηχάνημα εκτός του εγκεφάλου μας. Εάν, ωστόσο, νιώθουμε ότι πρέπει να τη γράψουμε κάπου θα πρέπει να την ασφαλίσουμε καλλίτερα ίσως και από το ίδιο το μυστικό μας κλειδί.Κάτι άλλο επίσης σημαντικό, που πρέπει να κάνουμε, είναι να παίρνουμε
backup του μυστικού μπρελόκ μας διότι μόνο εμείς έχουμε το μοναδικό αντίγραφο αυτού και πιθανή απώλειά του θα ισοδυναμούσε με αχρήστευση όλων των δημοσίων κλειδιών που διανείμαμε στον κόσμο.Το αποκεντρωτικό σχήμα φιλοσοφίας αλλά και λειτουργίας που έχει επιλέξει να χρησιμοποιήσει το
PGP εκτός από τα πλεονεκτήματα στη διαχείριση των κλειδιών έχει και τα μειονεκτήματα του. Δεν υπάρχει μία κεντρική λίστα που να περιέχει τα μη έγκυρα κλειδιά κάνοντας πιο δύσκολη την γνώση τους. Έτσι αν κάτι πάει στραβά η διαδικασία γνωστοποίησής του είναι επίπονη. Εάν τελικά το μυστικό κλειδί και η μυστική φράση πέσουν στα χέρια άλλων θα πρέπει να φτιάξουμε και να διανείμουμε ένα "πιστοποιητικό απολεσθέντος κλειδιού" (key compromise certificate). Αυτός ο τύπος πιστοποιητικού χρησιμοποιείται για να προειδοποιεί άλλους χρήστες να σταματήσουν να χρησιμοποιούν το αντίστοιχο δημόσιο κλειδί μας. Μπορούμε να χρησιμοποιήσουμε το PGP στη δημιουργία αυτού του πιστοποιητικού και κατόπιν να το στείλουμε σε όλους τους φίλους και συνεργάτες μας σε όλο τον κόσμο. Η έκδοση του PGP που τρέχει σε αυτούς θα αναλάβει να εγκαταστήσει το πιστοποιητικό του απολεσθέντος κλειδιού στα δημόσια μπρελόκ τους και από εκείνη τη στιγμή θα αποτρέπεται αυτόματα η επαναχρησιμοποίησή τους. Μπορούμε κατόπιν να δημιουργήσουμε ένα νέο ζεύγος μυστικού/δημοσίου κλειδιού και να αρχίσουμε πλέον να δουλεύουμε με αυτά.5.6.6
Περαιτέρω ΠληροφορίεςΓια περισσότερες
πληροφορίες, τα site http://www.pgpi.com και http://www.nai.com μπορούν να βοηθήσουν πολύ.5.7 SSH (Secure Shell)
5.7.1
ΕισαγωγήΤα εργαλεία απομακρυσμένης επικοινωνίας
(rsh, rcp, rlogin) είναι γνωστά για την ευκολία χρήσης τους και την παροχή γρήγορης πρόσβασης σε άλλες μηχανές. Το πρόβλημα, όμως, είναι ότι βασίζονται σε IP διευθύνσεις ή host names για την πιστοποίηση της ταυτότητας των μηχανών, γεγονός που τα καθιστά ανασφαλή καθ' ότι οι υπηρεσίες του DNS δεν είναι άξιες εμπιστοσύνης. Επίσης, η μετάδοση των κωδικών χωρίς κανένα είδος προστασίας οξύνει τις τρύπες ασφαλείας. Για να μπορούν, λοιπόν, να χρησιμοποιούνται σε ασφαλή περιβάλλοντα πρέπει να διαθέτουν πιο καλύτερους μηχανισμούς πιστοποίησης ταυτότητας. Η εισαγωγή της έννοιας της κρυπτογράφησης και των ψηφιακών υπογραφών στα εργαλεία rsh, rcp και rlogin, δημιούργησε το Secure Shell (SSH).Το SSH σχεδιάστηκε για να αντικαταστήσει τα εργαλεία
rsh, rcp και rlogin με τα αντίστοιχα ssh, scp και slogin, με επιπλέον χαρακτηριστικά αυτά της ισχυρής από άκρη σε άκρη κρυπτογράφηση, της βελτιωμένης πιστοποίησης ταυτότητας χρήστη και μηχανής και την προώθηση TCP πορτών και Χ11 συνδέσεων.Σε αυτό το σημείο είναι απαραίτητο να εξηγήσουμε τον όρο "προώθηση
TCP πορτών". Ας θεωρήσουμε τις τρεις μηχανές του παρακάτω παραδείγματος. Η μηχανή Χ είναι ο client και εγκαθιστά σύνδεση με τον server Υ μέσω SSH. Μια πόρτα ρου Χ, ας πούμε η 1999, ρυθμίζεται για προώθηση σε μια άλλη πόρτα στο απομακρυσμένο σύστημα Ζ, ας πούμε την 23. Η πόρτα προωθείται μέσω του κρυπτογραφημένου καναλιού στον Υ και από εκεί προωθείται στην πόρτα 23 του Ζ. Έτσι, η εντολή telnet localhost 1999 θα έχει σαν αποτέλεσμα μια telnet σύνδεση με τον Ζ.Η τρέχοντα έκδοση του πρωτοκόλλου είναι η 2 (version 2.0).
5.7.2
Περιγραφή του SSH πρωτοκόλλουΤο SSH είναι ένα πρωτόκολλο που παρέχει ασφαλή απομακρυσμένη σύνδεση σε υπολογιστές πάνω από μη ασφαλές δίκτυο. Αποτελείται από τρία βασικά στοιχεία:
Σχηματική αναπαράσταση των επιμέρους πρωτοκόλλων του SSH.
5.7.3
Δομή του SSHΙδιωτικά Και Δημόσια Κλειδιά
Κάθε
server και client πρέπει να έχει ένα ζευγάρι ιδιωτικής – δημόσιας κλείδας για να μπορεί να επαλήθευση την ταυτότητα του στο άλλο άκρο. Επιτρέπεται η κατοχή περισσότερων του ενός ζευγάρια κλειδιών, όταν χρησιμοποιούνται με διαφορετικούς αλγόριθμους, ενώ η από κοινού χρήση ενός ζεύγους από πολλούς server δεν απαγορεύεται.Για να μπορεί ο
client με ευκολία να επαληθεύει την ταυτότητα του server είναι απαραίτητο να γνωρίζει την δημόσια κλείδα που αντιστοιχεί στον server που θέλει να συνδεθεί. Υπάρχουν δυο διαφορετικά μοντέλα που εξασφαλίζουν την προηγούμενη προϋπόθεση:Οι εφαρμογές του SSH μπορούν να παρέχουν επιπρόσθετες μεθόδους επικύρωσης των δημόσιων κλειδιών, όπως για παράδειγμα την παραγωγή ενός δεκαεξαδικού "αποτυπώματος" της κλείδας και από τα δύο άκρα και την σύγκριση τους μέσω εξωτερικών καναλιών επικοινωνίας (π.χ. τηλέφωνο). Κλείδες που δεν επαληθεύονται, κανονικά δεν πρέπει να γίνονται δεκτές.
Επεκτασιμότητα
Βασικός στόχος της σχεδίασης είναι η διατήρηση του πρωτοκόλλου όσο το δυνατόν απλό γίνεται, με όσο το δυνατόν λιγότερους αλγόριθμους. Όλες οι εφαρμογές πρέπει να υποστηρίζουν ένα ελάχιστο σύνολο αλγόριθμων για να εξασφαλιστεί η δια – λειτουργικότητα. Στο μέλλον αναμένεται η πρόσθεση και άλλων αλγορίθμων.
Θέματα Πολιτικής
Το πρωτόκολλο επιτρέπει την διαπραγμάτευση όλων των χρησιμοποιούμενων αλγορίθμων. Έτσι, οι αλγόριθμοι κρυπτογράφησης, ανταλλαγή κλειδιών και συμπίεσης καθώς επίσης και οι μηχανισμοί ασύμμετρων κλειδιών και παροχής ακεραιότητας, μπορούν να επιλεγούν από λίστες που παρέχουν ο client και ο server ο ένας στον άλλο και μάλιστα διαφορετικοί για κάθε κατεύθυνση. Η πολιτική ασφαλείας κάθε συστήματος καθορίζει ποιοι προτιμούνται.
Τα παρακάτω θέματα πολιτικής θα πρέπει υπολογίζονται κατά την ρύθμιση SSH εφαρμογών:
Ιδιότητες Ασφάλειας
Ο πρωταρχικός στόχος του SSH πρωτοκόλλου είναι η βελτίωση της ασφάλειας στο Internet και ο τρόπος με τον οποίο προσπαθεί να το επιτύχει αυτό βασίζεται στο εξής σκεπτικό:
Για την ταχεία ανάπτυξη και υιοθέτηση του πρωτοκόλλου, κάποιες έχουν γίνει παραχωρήσεις. Σημαντικότερη από αυτές είναι η καθιέρωση της επαλήθευσης των κλείδων με υποχρεωτική, γεγονός όμως που δεν συνιστάται.
5.7.4 Transport Layer Protocol
Το
Transport Layer Protocol είναι ένα ασφαλές χαμηλού επιπέδου πρωτόκολλο μεταφοράς, που παρέχει ισχυρή κρυπτογράφηση, πιστοποίηση του server και ακεραιότητα των δεδομένων. Σε αυτό το επίπεδο γίνεται η διαπραγμάτευση των αλγόρίθμων ανταλλαγής κλειδιών, συμμετρικής κρυπτογράφησης, ασύμμετρης κρυπτογράφησης, hash και MAC. Συνήθως τρέχει πάνω από TCP/IP. Η πιστοποίηση ταυτότητας σε αυτό το επίπεδο αναφέρεται μόνο σε πιστοποίηση υπολογιστικών μηχανών και όχι χρηστών. Το User Authentication Protocol αναλαμβάνει την επιβεβαίωση της ταυτότητας των χρηστών.Έχει σχεδιαστεί για να είναι απλό, ευέλικτο, να επιτρέπει την διαπραγμάτευση παραμέτρων και να χρησιμοποιεί ένα ελάχιστο αριθμό απαραίτητων μηνυμάτων για την εγκαθίδρυση της σύνδεσης. Για τα περισσότερα περιβάλλοντα, έχει υπολογιστεί ότι ένας αριθμός 2 ανταλλαγών
(round-trips) είναι αρκετός για πλήρη επικοινωνία όλων των απαραίτητων πληροφοριών. Η χειρότερη περίπτωση είναι 3 round-trips.Εγκατάσταση της Σύνδεσης
Την διαδικασία ξεκινά ο
client, ενώ ο server χρησιμοποιεί την πόρτα (port) 22 για ανταποκρίνεται τις επερχόμενες κλήσεις για σύνδεση. Όταν επιτευχθεί η ζεύξη των επικοινωνούντων σημείων, τα δύο άκρα πρέπει να στείλουν μια ακολουθία χαρακτήρων της μορφής "SSH-protoversion-softwareversion-comments" ακολουθούμενη από χαρακτήρες αλλαγής γραμμής και επιστροφής του κέρσορα (carriage return and newline characters). Το μέγιστο μήκος αυτής της ακολουθίας είναι 255 χαρακτήρες περιλαμβανομένων και των χαρακτήρων ελέγχου. Οι αριθμοί έκδοσης πρέπει να αποτελούνται από εκτυπώσιμους ASCII χαρακτήρες εκτός του κενού διαστήματος και του σήματος της αφαίρεσης (-). Χρησιμοποιείται για συμβατότητα μεταξύ παλιών εκδόσεων και για να υποδηλώσει τις δυνατότητες του συστήματος. Το πεδίο comments περιέχει επιπρόσθετες πληροφορίες που μπορεί να είναι χρήσιμες στην επίλυση διάφορων προβλημάτων.Η διαπραγμάτευση για των αλγορίθμων ξεκινά μόλις σταλεί και από τις δύο μεριές αυτό το αναγνωριστικό. Όλα τα πακέτα που ακολουθούν χρησιμοποιούν το
Binary Packet Protocol που θα περιγράψουμε αργότερα.Συνοπτικά, τα βήματα εγκαθίδρυσης της σύνδεσης είναι:
Τα δύο πρώτα βήματα συζητήθηκαν στο παρών κεφάλαιο. Παρακάτω θα αναφερθούμε στα υπόλοιπα βήματα.
Διαπραγμάτευση Αλγορίθμων
Η διαδικασία αυτή ξεκινά με την αποστολή από κάθε πλευρά λίστας των υποστηριζόμενων αλγόριθμων, στην κορυφή της οποίας υπάρχει αυτός που προτιμάται περισσότερο. Δίνεται η δυνατότητα σε κάθε σύστημα να μαντέψει τους αλγόριθμους που χρησιμοποιεί το ανταποκρινόμενο σύστημα υπηρεσία και μπορεί να στείλει ένα αρχικό πακέτο χρησιμοποιώντας αυτούς. Εάν οι αλγόριθμοι είχαν προβλεφθεί σωστά, τότε χρησιμοποιούνται κατά την διάρκεια της υπόλοιπης σύνδεσης και το πακέτο λαμβάνεται σαν το πρώτο πακέτο διαπραγμάτευσης. Διαφορετικά το πακέτο πρέπει αν αγνοηθεί και η διαδικασία να ξαναρχίσει με το κανονικό αρχικό πακέτο.
Η πιστοποίηση της ταυτότητας μπορεί να είναι υπονοούμενη και μετά από αυτήν ακολουθεί η αίτηση εξυπηρέτησης του
client.Το αρχικό πακέτο, που σηματοδοτεί την αρχή αυτού του βήματος, έχει την παρακάτω δομή:
byte SSH_MSG_KEXINIT
byte[16] cookie (random bytes)
string kex_algorithms
string server_host_key_algorithms
string encryption_algorithms_client_to_server
string encryption_algorithms_server_to_client
string mac_algorithms_client_to_server
string mac_algorithms_server_to_client
string compression_algorithms_client_to_server
string compression_algorithms_server_to_client
string languages_client_to_server
string languages_server_to_client
boolean first_kex_packet_follows
uint32 0 (reserved for future extension)
Στην πρώτη στήλη αναφέρεται η μορφή των δεδομένων κάθε πεδίου (δυαδικά,
boolean κτλ.), ενώ η δεύτερη στήλη περιγράφει την χρησιμότητα αυτών. Με τον όρο byte περιγράφουμε ποσότητα 8 bits (octet) και ομοίως ο γενικός όρος byte[n] περιγράφει μονοδιάστατο πίνακα bytes, όπου n ο αριθμός των bytes του πίνακα. Ο όρος boolean υποδηλώνει μοναδικό byte που παίρνει τις τιμές 0 ή 1. Η τιμή 0 φανερώνει "ΛΑΘΟΣ" και η τιμή 1 φανερώνει "ΑΛΗΘΕΙΑ". Ο όρος uint32 αναφέρεται σε ακέραιο 32 bit αποθηκευμένος σαν 4 bytes με το Most Significant Bit (MSB) πρώτο. Τέλος, ο όρος string παρουσιάζει δυαδικά δεδομένα αυθαίρετου μήκους.Ακολουθεί μια σύντομη περιγραφή των πεδίων:
SSH_MSG_KEXINIT
Το πεδίο αυτό προσδιορίζει την ταυτότητα του πακέτου.
cookie:
Είναι μια τυχαία τιμή που παράγεται από τον
server.kex_algorithms
Περιέχει λίστα με τους διαθέσιμους αλγόριθμους ανταλλαγής κλειδιών. Ο πρώτος στην λίστα είναι αυτός που προτιμάται. Η μία και μοναδική μέθοδος που απαιτείται είναι η
Diffie-Hellman με hash αλγόριθμο τον SHA-1.server_host_key_algorithms
Περιέχει λίστα με τους υποστηριζόμενους αλγόριθμους για την ασύμμετρη κρυπτογραφία, δηλαδή για το ζεύγος ιδιωτικής και δημόσιας κλείδας. Ο
server δηλώνει τους αλγόριθμους για τους οποίου έχει κλείδες και ο client δηλώνει τους αλγόριθμους που δέχεται. Η επιλογή του αλγόριθμου εξαρτάται από το κατά πόσο απαιτείται από την μέθοδο ανταλλαγής κλειδιών ψηφιακή υπογραφή ή κρυπτογράφηση. Επιλέγεται ο πρώτος από την λίστα του client που ικανοποιεί όλες τις απαιτήσεις και που υποστηρίζεται από τον server. Εάν δεν υπάρχει τέτοιος αλγόριθμος πρέπει να τερματιστεί η σύνδεση.encryption_algorithms
Περιέχει λίστα με τους αποδεκτούς συμμετρικούς αλγόριθμους με σειρά προτεραιότητας. Ο αλγόριθμος που επιλέγεται για την κάθε κατεύθυνση πρέπει να είναι ο πρώτος στην λίστα του
client που υπάρχει και στην λίστα του server. Εάν δεν υπάρχει τέτοιος αλγόριθμος πρέπει να τερματιστεί η σύνδεση.mac_algorithms
Περιέχονται όλοι οι αποδεκτοί
MAC αλγόριθμοι σε σειρά προτεραιότητας. Επιλέγεται ο πρώτος στην λίστα του client που υπάρχει και στην λίστα του server. Εάν δεν υπάρχει τέτοιος αλγόριθμος πρέπει να τερματιστεί η σύνδεση. Οι αλγόριθμοι που υποστηρίζονται είναι:compression_algorithms
Περιέχονται οι αποδεκτοί αλγόριθμοι συμπίεσης με πρώτο αυτόν που προτιμάται. Επιλέγεται ο πρώτος στην λίστα του
client που υπάρχει και στην λίστα του server. Εάν δεν υπάρχει τέτοιος αλγόριθμος πρέπει να τερματιστεί η σύνδεση.languages
Λίστα χωρισμένοι με κόμμα υποστηριζόμενων γλωσσών. Αυτή η λίστα μπορεί να αγνοηθεί και από τους δύο.
first_kex_packet_follows
Υποδηλώνει κατά πόσο ακολουθεί πακέτο με αλγόριθμους που έχουν μαντέψει ο
client και ο server. Εάν θα σταλεί τέτοιο πακέτο, τότε η τιμή είναι "ΑΛΗΘΕΙΑ" (TRUE) εάν όχι τότε είναι "ΛΑΘΟΣ" (FALSE). Μετά την παραλαβή του πακέτου SSH_MSG_KEYINIT από την αντίστοιχη πλευρά, το κάθε σύστημα θα γνωρίζει κατά πόσο έπεσε μέσα στις προβλέψεις του.Με το πέρας αυτού του βήματος, παράγονται δύο τιμές που έχουν στην κατοχή τους και τα δύο συστήματα: ένα μυστικό κλειδί Κ και μια
hash value. Από αυτά τα δύο και με κατάλληλο αλγόριθμο προκύπτουν κλειδιά κρυπτογράφησης και πιστοποίησης. Η hash value χρησιμοποιείται και σαν session identifier, τιμή που ταυτίζει με μοναδικό τρόπο την σύνδεση.Μετά την καθιέρωση των χρησιμοποιούμενων αλγόριθμων, υποχρεούται ο server να αποδείξει την ταυτότητα του. Αυτό επιτυγχάνεται με την υπογραφή του
session identifier με την ιδιωτική τού κλείδα και αποστολή του αποτελέσματος στον client. Μαζί αποστέλλονται και κατάλληλος αριθμός πιστοποιητικών που εμπεριέχούν την δημόσια κλείδα του server.Αίτηση Εξυπηρέτησης
Αφού ληφθούν όλες οι απαραίτητες αποφάσεις σχετικά με τους χρησιμοποιούμενους μηχανισμούς, ο client στέλνει πακέτο που περιέχει αίτηση για συγκεκριμένη υπηρεσία. Το πακέτο έχει την εξής μορφή:
byte SSH_MSG_SERVICE_REQUEST
string service name
όπου η πρώτη γραμμή ταυτίζει το πακέτο σαν πακέτο αίτησης εξυπηρέτησης και η δεύτερη γραμμή δηλώνει το όνομα της υπηρεσίας που ζητείται. Τα ονόματα ssh-useraut και ssh-connection είναι κρατημένα για της υπηρεσίες του πρωτοκόλλου
User Authentication και Connection αντίστοιχα.Εάν ο
server απορρίψει την αίτηση, στέλνει κατάλληλο μήνυμα αποσύνδεσης και η σύνδεση τερματίζεται. Διαφορετικά, εάν η υπηρεσία υποστηρίζεται και επιτρέπεται στον client, απαντά μεbyte SSH_MSG_SERVICE_ACCEPT
string service name
Ο client περιμένει για την απάντηση του
server πριν προχωρήσει σε αποστολή άλλων δεδομένων.Binary Packet Protocol
Κάθε πακέτο είναι της μορφής:
uint32 packet_length
byte padding_length
byte[n1] payload; n1 = packet_length - padding_length - 1
byte[n2] random padding; n2 = padding_length
byte[m] mac (message authentication code); m = mac_length
Αναλυτικά για το κάθε πεδίο έχουμε:
packet_length
Το μήκος του πακέτου, εξαιρουμένου των MAC bytes και του παρών πεδίου.
padding_length
Το μήκος των συμπληρωματικών bytes.
payload
Τα χρήσιμα περιεχόμενα του πακέτου. Εάν έχει βρεθεί αλγόριθμος συμπίεσης, τα περιεχόμενα είναι συμπιεσμένα. Αρχικά, δεν υπάρχει συμπίεση.
random padding
Συμπληρωματικά bytes των χρήσιμων περιεχομένων, εάν χρειάζεται
mac (message authentication code)
Περιέχει τα bytes του Message Authentication Code (MAC). Το πεδίο αυτό είναι άδειο πριν να συμφωνηθεί ο
MAC αλγόριθμος.Το ελάχιστο μήκος του πακέτου είναι 16 bytes και το μέγιστο 35000 bytes. Όλες οι εφαρμογές πρέπει να μπορούν να επεξεργάζονται πακέτα με ασυμπίεστο
payload 23768 bytes ή λιγότερο. Πακέτα με μεγαλύτερο μήκος, θα στέλνονται μόνο όταν η έκδοση του πρωτοκόλλου στο "SSH-protoversion-softwareversion-comments" υποδηλώνει ότι υποστηρίζονται.Κατηγορίες Αλγόριθμων
Αλγόριθμοι Συμπίεσης
Εάν έχει διαπραγματευθεί ο αλγόριθμος συμπίεσης, τότε συμπιέζονται μόνο τα περιεχόμενα του πεδίου payload σε κάθε πακέτο. Το μήκος του πακέτου και το MAC υπολογίζονται από το συμπιεσμένο payload. Ορίζεται ο αλγόριθμος GNU ZLIB (LZ77), η υποστήριξή του οποίου είναι προαιρετική, ενώ υπάρχει πάντα η δυνατότητα μη συμπίεσης. Η συμπίεση για κάθε κατεύθυνση πρέπει να είναι ανεξάρτητη του αλγόριθμου που χρησιμοποιείται στην άλλη αντίθετη φορά.
Αλγόριθμοι Κρυπτογράφησης
Όταν χρησιμοποιείται κρυπτογράφηση, το μήκος του πακέτου, το μήκος των συμπληρωματικών bytes, τα περιεχόμενα και τα συμπληρωματικά bytes κρυπτογραφούνται με το αλγόριθμο που έχει προεπιλεχθεί. Οι αλγόριθμοι επιλέγονται ανεξάρτητα για κάθε κατεύθυνση και για κάθε κατεύθυνση μπορεί να τρέχει διαφορετικός αλγόριθμος.
Οι ακόλουθοι
ciphers υποστηρίζονται επί του παρόντος:Από αυτούς ο
Triple DES είναι υποχρεωτικά υποστηριζόμενος, ο Blowfish απλά συνιστάται, ενώ οι υπόλοιποι είναι προαιρετικοί.Αλγόριθμοι MAC
Η ακεραιότητα των δεδομένων εξασφαλίζεται με την παραγωγή του MAC του
μυστικού κλειδιού Κ, του αύξοντα αριθμού του πακέτου και των χρήσιμων περιεχομένων του πακέτου. Αρχικά, πριν την διαπραγμάτευση του αλγόριθμου, δεν υπάρχει MAC. Η παραγωγή του γίνεται πριν την κρυπτογράφηση των περιεχομένων. Τα MAC bytes μεταδίδονται στο τέλος του πακέτου, χωρίς κρυπτογράφηση.Ο αύξοντας αριθμός του πακέτου είναι ένας ακέραιος που σε μορφή uint32 και είναι μηδέν για το πρώτο πακέτο. Αυξάνεται με την αποστολή κάθε πακέτου και μηδενίζεται κάθε 2
32 πακέτα, ενώ ο ίδιος δεν περιλαμβάνεται στο πακέτο ποτέ.Οι αλγόριθμοι
MAC επιλέγονται ανεξάρτητα για κάθε κατεύθυνση και για κάθε κατεύθυνση μπορεί να τρέχει διαφορετικός αλγόριθμος.Οι αλγόριθμοι που υποστηρίζονται είναι:
Ο πρώτος είναι απαιτούμενος, ο δεύτερος προαιρετικός και ο τρίτος δεν συνιστάται.
Αλγόριθμοι Ανταλλαγής Κλειδιών
Ένας τέτοιος αλγόριθμος καθορίζει πως παράγονται και ανταλλάσσονται κλειδιά κρυπτογράφησης μίας χρήσης και πως γίνεται η πιστοποίηση της ταυτότητας του
server. Η μία και μοναδική μέθοδος που υποστηρίζεται είναι η Diffie-Hellman με hash αλγόριθμο τον SHA-1.Αλγόριθμοι Ασύμμετρων Κλειδιών
Υπάρχουν τρία διαφορετικά στοιχεία που απαρτίζουν ένα ζεύγος ιδιωτικής-δημόσιας κλείδας:
Οι υποστηριζόμενοι αλγόριθμοι για αυτήν την κατηγορία είναι:
Η υποστήριξη του
DSS είναι απαιτούμενη, του X.509 συνιστάται και οι υπόλοιποι δύο είναι προαιρετικοί.5.7.5 User Authentication Protocol
Σε αυτό το πρωτόκολλο γίνεται η πιστοποίηση της ταυτότητας του χρήστη που χειρίζεται το μηχανή του
client. Προορίζεται να τρέχει πάνω από το SSH Transport Layer Protocol, το οποίο παρέχει ακεραιτότητα δεδομένων και απόρρητη επικοινωνία. Η πρώτη αίτηση εξυπηρέτησης από τον client μετά την διαπραγμάτευση των αλγορίθμων και πιστοποίηση της ταυτότητας του server, είναι για την υπηρεσία με το όνομα "ssh-userauth"και αναφέρεται σε αυτό το πρωτόκολλο.Όταν το πρωτόκολλο ξεκινά, λαμβάνει από το
Transport Layer Protocol το session identifier που χρησιμοποιείται για να προσδιορίζει την σύνδεση με μοναδικό τρόπο. Ο server οδηγεί την διαδικασία της επαλήθευσης της ταυτότητας του χρήστη, λέγοντας στον client ποιες μέθοδοι μπορούν να εφαρμοστούν. Ο server έχει τον απόλυτο έλεγχο της διαδικασίας, αλλά παράλληλα παρέχει στον client την ευελιξία να επιλέξει τον αλγόριθμο που υποστηρίζει περισσότερο ή που είναι πιο βολική στον χρήστη. Οι υποστηριζόμενες μέθοδοι είναι τρεις: (α) με χρήση των δημοσίων κλείδων των χρηστών, (β) με χρήση μυστικών κωδικών και (γ) με χρήση των δημοσίων κλείδων των μηχανών που εργάζονται οι χρήστες. Θα αναλυθούν και οι τρεις παρακάτω.Αιτήσεις για Πιστοποίηση Ταυτότητας
Ο
server θα πρέπει να έχει ένα προκαθορισμένο χρονικό όριο κατά την διάρκεια του οποίου πρέπει να έχει ολοκληρωθεί η πιστοποίηση της ταυτότητας του χρήστη. Εάν η πιστοποίηση δεν έχει γίνει δεκτή μέσα στο διάστημα αυτό, η σύνδεση θα πρέπει να διακοπεί. Ο χρόνος που συνιστάται είναι 10 λεπτά. Επιπλέον, η SSH εφαρμογή θα πρέπει να περιορίζει τον αριθμό των αποτυχημένων προσπαθειών κατά την διάρκεια μιας συγκεκριμένης σύνδεσης. Ο αριθμός αυτό συνιστάται στις 20 προσπάθειες.Όλες αιτήσεις για πιστοποίηση του χρήστη πρέπει να έχουν την ακόλουθη μορφή:
byte SSH_MSG_USERAUTH_REQUEST
string user name (in ISO-10646 UTF-8 encoding)
string service name (in US-ASCII)
string method name (US-ASCII)
rest of the packet is method-specific
Στο πεδίο
user name δίνεται το όνομα του χρήστη. Εάν είναι άκυρο ο server μπορεί να συνδεθεί αμέσως ή να στείλει μια λίστα με τους αποδεκτές μεθόδους πιστοποίησης ταυτότητας, αλλά πότε να μην δεχθεί κανέναν από αυτούς. Με αυτόν τον τρόπο αποφεύγει να δώσει πληροφορίες με το ποια ονόματα υπάρχουν και ποια όχι.Το πεδίο
service name καθορίζει την υπηρεσία που θα ξεκινήσει μετά από την πιστοποίηση. Εάν δεν είναι διαθέσιμη o server μπορεί να αποσυνδεθεί αμέσως ή οποιαδήποτε στιγμή αργότερα και η πιστοποίηση του χρήστη δεν πρέπει να γίνει δεκτή.Το πεδίο
method name περιέχει την μέθοδο που επιθυμεί να χρησιμοποιήσει ο χρήστης. Μπορεί να χρησιμοποιηθεί η τιμή "none", αλλά τότε η προσπάθεια θα απορριφθεί από τον server. Σκοπός της, κυρίως, είναι η αποστολή των υποστηριζόμενων μεθόδων στον client.Ακολουθούν δεδομένα που σχετίζονται με την μέθοδο πιστοποίησης που ζητήθηκε από τον χρήστη και αποτελούν την προσπάθεια του να αποδείξει την ταυτότητα του.
Απάντηση σε Αιτήσεις Πιστοποίησης Ταυτότητας
Εάν ο
server απορρίψει την αίτηση, πρέπει να απαντήσει με το ακόλουθου μήνυμα:byte SSH_MSG_USERAUTH_FAILURE
string authentications that can continue
boolean partial success
Η δεύτερη γραμμή περιέχει λίστα από μεθόδους που μπορούν να συνεχίσουν αυτόν τον διάλογο.
Το πεδίο
partial success θα είναι "ΑΛΗΘΕΙΑ" όταν η προηγούμενη προσπάθεια ήταν επιτυχής, αλλά απαιτούνται και επιπλέον πιστοποιήσεις. Θα είναι "ΛΑΘΟΣ" όταν η αρχική προσπάθεια ήταν αποτυχημένη.Όταν ο
server δεχθεί την πρώτη προσπάθεια, τότε απαντά με:byte SSH_MSG_USERAUTH_SUCCESS
Ο
client μπορεί να στείλει πολλές αιτήσεις χωρίς να περιμένει για απάντηση από τον server. Ο server πρέπει να είναι σε θέση να αναγνωρίζει τις αποτυχημένες αιτήσεις και να στέλνει μηνύματα αποτυχίας, ενώ όταν δεχθεί μήνυμα που να μπορεί να επαληθεύσει την ταυτότητα του χρήστη να αποκρίνεται με μήνυμα επιτυχίας. Το τελευταίο μπορεί να στέλνεται μόνο μια φορά. Όταν ο server στείλει αυτό το μήνυμα, η διαδικασία έχει ολοκληρωθεί και ξεκινά την ζητούμενη υπηρεσία.Μέθοδοι Πιστοποίησης
Χρήση της Δημόσιας Κλείδας του Χρήστη (
Public Key Authentication)Είναι η μόνη απαιτούμενη μέθοδος και όλες οι εφαρμογές πρέπει να την υποστηρίζουν. Σε αυτήν, η κατοχή μίας ιδιωτικής κλείδας χρησιμεύει σαν αποδεικτικό στοιχείο της ταυτότητας του χρήστη, σε συνδυασμό με τη σχετιζόμενη δημόσια κλείδα. Λειτουργεί με την αποστολή από τον
client, της υπογραφής του χρήστη που έχει δημιουργηθεί με χρήση της ιδιωτικής του κλείδας. Οι ιδιωτικές κλείδες συχνά αποθηκεύονται κρυπτογραφημένες στον client και ο χρήστης πρέπει να δώσει μία φράση – κλειδί για να αποκτήσει πρόσβαση σε αυτήν. Επειδή η διαδικασία της υπογραφής περιλαμβάνει χρονοβόρους υπολογισμούς, χρησιμοποιείται το παρακάτω μήνυμα για να ερευνηθεί εάν είναι αποδεκτή η πιστοποίηση με την συγκεκριμένη κλείδα, ώστε να αποτραπεί άχρηστη και ασύμφορη επεξεργασία.byte SSH_MSG_USERAUTH_REQUEST
string user name
string service
string "publickey"
boolean FALSE
string public key algorithm name
string public key blob (=certificates)
Οι αλγόριθμοι ασύμμετρων κλειδιών αποφασίσθηκαν στο
Transport Layer Protocol. Ανταποκρίνονταν, όμως, στα ασύμμετρα κλειδιά που χρησιμοποιήθηκαν κατά την πιστοποίηση της ταυτότητας του server. Οπότε, είναι δυνατόν κάποιοι από αυτούς να μην ισχύουν για αυτήν την περίπτωση πιστοποίησης. Εάν συμβαίνει κάτι τέτοιο, ο server απαντά με ένα από τα δύο μηνύματα:SSH_MSG_USERAUTH_FAILURE
ή μεbyte SSH_MSG_USERAUTH_PK_OK
string public key algorithm name from the request
string public key blob from the request
Για να πραγματοποιήσει ουσιαστική πιστοποίηση, ο
client στέλνει μία υπογραφή του χρήστη που έχει δημιουργηθεί με την ιδιωτική του κλείδα. Ο client μπορεί να στείλει το παρακάτω μήνυμα χωρίς πρώτα να επαληθεύσει κατά πόσο η κλείδα είναι αποδεκτή.byte SSH_MSG_USERAUTH_REQUEST
string user name
string service
string "publickey"
boolean TRUE
string public key algorithm name
string public key to be used for authentication
string signature
Η υπογραφή γίνεται πάνω στα έξης δεδομένα: (α) το
session identifier και (β) στο πεδίο payload του πακέτου. Όταν o server παραλάβει το μήνυμα, πρέπει πρώτα να ελέγξει εάν το είναι αποδεκτή η δημόσια κλείδα και έπειτα να ελέγξει εάν είναι σωστή η υπογραφή. Δεδομένου ότι και οι δύο έλεγχοι επιτύχουν, η μέθοδος έχει θετικό αποτέλεσμα και μήνυμα επιτυχίας αποστέλλεται στον client. Υπάρχει περίπτωση, όμως, ο server να απαιτεί και επιπλέον πιστοποιήσεις. Η τελική απάντηση, λοιπόν, του server πρέπει να είναι είτε SSH_MSG_USERAUTH_SUCCESS (όταν δεν χρειάζεται περαιτέρω πιστοποίηση και η υπογραφή ήταν έγκυρη) είτε SSH_MSG_USERAUTH_FAI-LURE
(όταν περισσότερες πιστοποιήσεις χρειάζονται ή η αίτηση απέτυχε).Χρήση Μυστικού Κωδικού (Password Authentication)
Όλες οι SSH εφαρμογές θα πρέπει να υποστηρίζουν αυτή την μέθοδο. Τα παρακάτω πακέτα χρησιμοποιούνται:
byte SSH_MSG_USERAUTH_REQUEST
string user name
string service
string "password"
boolean FALSE
string plaintext password (ISO-10646 UTF-8)
Παρ' όλο που ο κωδικό μεταδίδεται μη κρυπτογραφημένος μέσα στο πακέτο, ολόκληρο το πακέτο κρυπτογραφείται από το
Transport Layer Protocol. Κανονικά, θα πρέπει να ελεγχθεί κατά πόσο είναι ενεργοποιημένος κάποιος αλγόριθμος κρυπτογράφησης. Εάν δεν εξασφαλίζεται η εμπιστευτικότητα της επικοινωνίας, τότε αυτή η μέθοδος θα πρέπει να πάψει να θεωρείται διαθέσιμη.Ο
server μπορεί να ζητήσει από τον χρήστη να αλλάξει κωδικό με το παρακάτω μήνυμα: byte SSH_MSG_USERAUTH_PASSWD_CHANGEREQstring prompt (ISO-10646 UTF-8)
string language tag (as defined in RFC 1766)
Ο
client, μετά από υπόδειξη του χρήστη, μπορεί να ανταποκριθεί με τον καινούργιο κωδικό. Ο χρήστης μπορεί να αλλάξει τον κωδικό του χωρίς να του ζητηθεί από τον server.byte SSH_MSG_USERAUTH_REQUEST
string user name
string service
string "password"
boolean TRUE
string plaintext old password (ISO-10646 UTF-8)
string plaintext new password (ISO-10646 UTF-8)
Χρήση της Δημόσιας Κλείδας του Client
(Host-Based Authentication)Μερικά
sites επιθυμούν να επιτρέψουν πιστοποίηση του χρήστη, βασιζόμενη στην μηχανή-client που βρίσκεται αυτός σε συνδυασμό με το όνομα του. Παρ' όλο που δεν συνιστάται δίκτυα υψηλής ασφάλειας, μπορεί να είναι πολύ βολική για μερικά περιβάλλοντα. Είναι προαιρετική η υποστήριξη της μεθόδου και πρέπει να τηρείται προσοχή ώστε ο χρήστης να μην έχει την δυνατότητα να αποκτήσει την δημόσια κλείδα του client.Η μέθοδος λειτουργεί με την αποστολή υπογραφής που έχει δημιουργηθεί με την ιδιωτική κλείδα του
client, την οποία ελέγχει ο server με την δημόσια κλείδα του client. Το μήνυμα έχει ως εξής:byte SSH_MSG_USERAUTH_REQUEST
string user name
string service
string "hostbased"
string public key algorithm for host key
string public host key and certificates for client host
string client host name (FQDN; US-ASCII)
string client user name on the remote host (ISO-10646 UTF-8)
string signature
Οι αλγόριθμοι έχουν διαπραγματευτεί στο
Transport Layer Protocol. Η υπογραφή προκύπτει από το session identifier και τα περιεχόμενα του payload του πακέτου. Ο server πρέπει να επιβεβαιώσει η δημόσια κλείδα ανήκει όντως στον client, ότι ο χρήστης επιτρέπεται να συνδεθεί και ότι η υπογραφή είναι έγκυρη.5.7.6 Connection Protocol
Το
Connection Protocol έχει σχεδιαστεί για να τρέχει πάνω από το SSH Transport Layer Protocol και το User Authentication Protocol. Παρέχει interactive login session, απομακρυσμένη εκτέλεση εντολών, προώθηση TCP/IP και Χ11 συνδέσεων. Οι υπηρεσίες του έπονται των υπηρεσιών του User Authentication Protocol και αναγνωρίζονται από το όνομα "ssh-connection".Ο Μηχανισμός των Καναλιών
Όλες τερματικές
sessions, οι προωθημένες TCP/IP και Χ11 συνδέσεις, η απομακρυσμένη εκτέλεση εντολών κ.α. αποτελούν κανάλια. Οποιαδήποτε πλευρά μπορεί να ανοίξει ένα κανάλι και πολλαπλά λογικά κανάλια πολυπλέκονται σε ένα φυσικό.Τα κανάλια αναγνωρίζονται από μοναδικούς αριθμούς διαφορετικούς σε κάθε πλευρά. Όταν οποιοδήποτε άκρο επιθυμεί την δημιουργία καναλιού, ετοιμάζει αίτηση που περιέχει τον αριθμό που έχει αντιστοιχήσει τοπικά στο κανάλι, ώστε ο αποδέκτης της αίτησης να μπορεί στην συνέχεια για να προσδιορίζει το κανάλι χρησιμοποιώντας αυτόν τον αριθμό.
Τα κανάλια είναι ελεγχόμενης ροής δεδομένων (
flow-controlled), που σημαίνει ότι δεν αποστέλλονται δεδομένα έως ότου παραληφθεί μήνυμα που να δηλώνει ότι υπάρχει ελεύθερος χώρος στο παράθυρο.Δημιουργία Καναλιών
Όταν επιθυμείται η δημιουργία καναλιού και αφού το καινούργιο κανάλι έχει αντιστοιχηθεί με κατάλληλο αριθμό αναγνώρισης, στέλνεται το ακόλουθο μήνυμα στο άλλο άκρο:
byte SSH_MSG_CHANNEL_OPEN
string channel type (restricted to US-ASCII)
uint32 sender channel
uint32 initial window size
uint32 maximum packet size
... channel type specific data follows
Το πεδίο
channel type περιγράφει τον τύπο του καναλιού που επιθυμεί ο αποστολέας να δημιουργήσει. Στο πεδίο sender channel περιέχεται ο αριθμός που έχει αντιστοιχήσει ο αποστολέας στο κανάλι. Στο initial window size καθορίζεται πόσα bytes Δεδομένων μπορούν να σταλούν μέσα από το κανάλι αρχικά, χωρίς να χρειάζεται να ξαναρυθμιστεί το μέγεθος του. Τέλος, το maximum packet size καθορίζει τον μέγιστο μέγεθος κάθε πακέτου που δέχεται ο αποστολέας της αίτησης.Το απομακρυσμένο σύστημα αποφασίζει κατά πόσο μπορεί να ανοίξει το κανάλι και ανταποκρίνεται είτε με
byte SSH_MSG_CHANNEL_OPEN_CONFIRMATION
uint32 recipient channel
uint32 sender channel
uint32 initial window size
uint32 maximum packet size
... channel type specific data follows
όπου
recipient channel είναι ο αριθμός καναλιού του συστήματος που ξεκίνησε την διαδικασία και sender channel είναι ο αριθμός του αποστολέα του παρών μηνύματος, είτε μεbyte SSH_MSG_CHANNEL_OPEN_FAILURE
uint32 recipient channel
uint32 reason code
string additional textual information (ISO-10646 UTF-8
[RFC-2044])
string language tag (as defined in [RFC-1766])
Εάν ο αποδέκτης του αρχικού SSH_MSG_CHANNEL_OPEN μηνύματος δεν υποστηρίζει το ζητούμενο κανάλι, τότε απλά απαντά με το SSH_MSG_CHANNEL_O- PEN_FAILURE. Στο πεδίο
reason code περιέχεται ακέραιος που υποδηλώνει την αιτία που δεν μπορούσε να δημιουργηθεί το κανάλι. Στο παρακάτω πίνακα βλέπουμε τους κωδικούς με την σημασία τους.SSH_OPEN_ADMINISTRATIVELY_PROHIBITED 1
SSH_OPEN_CONNECT_FAILED 2
SSH_OPEN_UNKNOWN_CHANNEL_TYPE 3
SSH_OPEN_RESOURCE_SHORTAGE 4
Μεταφορά Δεδομένων
Το μέγεθος του παραθύρου
(window size) καθορίζει πόσα bytes μπορεί να στείλει η άλλη οντότητα χωρίς να χρειάζεται η εκ νέού ρύθμιση του μεγέθους του. Το ακόλουθο μήνυμα χρησιμοποιείται για την ρύθμιση του παραθύρου.byte SSH_MSG_CHANNEL_WINDOW_ADJUST
uint32 recipient channel
uint32 bytes to add
Με αυτό το μήνυμα το μέγεθος του παραθύρου αυξάνεται σύμφωνα με το ποσό που ορίζεται στο πεδίο
bytes to add. Η μεταφορά δεδομένων γίνεται με μηνύματα του τύπου:byte SSH_MSG_CHANNEL_DATA
uint32 recipient channel
string data
Το μέγιστο πόσο δεδομένων που επιτρέπεται να σταλεί είναι ίσο με το μέγεθος του παραθύρου, το οποίο μειώνεται με κάθε αποστολή. Και οι δύο πλευρές μπορούν να αγνοήσουν τα δεδομένα που στέλνονται όταν το παράθυρο έχει γεμίσει.
Κλείσιμο Καναλιών
Όταν κάποιος από τους συνδιαλλέγοντες δεν θα στείλει άλλα δεδομένα στο κανάλι, θα πρέπει να στείλει το εξής μήνυμα:
byte SSH_MSG_CHANNEL_EOF
uint32 recipient_channel
Η σύνδεση δεν διακόπτεται, απλά τερματίζεται η αποστολή δεδομένων σε μία από τις δύο κατευθύνσεις. Στην άλλη κατεύθυνση η ροή των δεδομένων συνεχίζεται κανονικά. Για το μήνυμα αυτό δεν υπάρχει σαφής απάντηση και το ίδιο δεν καταλαμβάνει χώρο από το παράθυρο και μπορεί να σταλεί ακόμα και αν δεν υπάρχει διαθέσιμος χώρος.
Όταν οποιοσδήποτε από τους δύο επιθυμεί να τερματίσει το κανάλι, στέλνει το μήνυμα
byte SSH_MSG_CHANNEL_CLOSE
uint32 recipient_channel
το οποίο πρέπει να απαντηθεί με παρόμοιο μήνυμα από τον παραλήπτη του. Το κανάλι θεωρείται ότι έχει κλείσει για ένα άκρο όταν έχει στείλει και παραλάβει το μήνυμα αυτό και συνεπώς ο αριθμός του καναλιού μπορεί να ξαναχρησιμοποιηθεί. Η αποστολή του μηνύματος δεν προϋποθέτει την αποστολή του
SSH_MSG_CHANNEL_ EOF. Ομοίως, το μήνυμα δεν καταλαμβάνει χώρο από το παράθυρο.Αιτήσεις Σχετικές με Κανάλια
Για πολλούς τύπους καναλιών, υπάρχουν αιτήσεις εξυπηρέτησης που είναι συγκεκριμένες για κάθε κανάλι. Αυτές οι αιτήσεις αναφέρονται σε υπηρεσίες που μπορεί αν προσφέρει το κανάλι. Παράδειγμα είναι η αίτηση για ένα
pseudo terminal για ένα κανάλι interactive session.Όλες οι αιτήσεις έχουν την εξής μορφή:
byte SSH_MSG_CHANNEL_REQUEST
uint32 recipient channel
string request type (restricted to US-ASCII)
boolean want reply
... type-specific data
Εάν το πεδίο
want reply είναι "FALSE", τότε δεν θα σταλεί απάντηση στην αίτηση. Διαφορετικά, η απάντηση θα είναι μία από τις παρακάτω:byte SSH_MSG_CHANNEL_SUCCESS
uint32 recipient_channel
ή
byte SSH_MSG_CHANNEL_FAILURE
uint32 recipient_channel
Εάν η αίτηση δεν αναγνωρίζεται ή δεν υποστηρίζεται για το κανάλι το
SSH_MSG_CHANNEL_FAILURE επιστρέφεται. Όλα τα παραπάνω μηνύματα δεν καταναλώνουν τον διαθέσιμο χώρο του παραθύρου.Στον παρακάτω πίνακα παρουσιάζονται όλοι οι κυριότεροι τύποι καναλιών και οι αντίστοιχες αιτήσεις.
Channel |
Channel Type |
Request |
Request Type |
INTERACTIVE SESSION |
"session" |
PSEUDO TERMINAL | "pty-req" |
X11 FORWARDING | "x11-req" |
||
AUTHENTICATION AGENT | "auth-agent-req" |
||
ENVIRONMENT VARIABLE PASSING | "env" |
||
SHELL | "shell" |
||
COMMAND | "exec" |
||
SUBSYSTEM | "subsystem" |
||
SIGNAL | "signal" |
||
RETURNING EXIT STATUS | "exit-status" |
||
X11 CHANNEL |
"x11" |
- |
- |
AUTHENTICATION AGENT |
"auth=agent" |
- |
- |
TCP/IP FORWARDING |
"forwarded-tcpip" |
||
- |
- |
PORT FORWARDING |
"tcpip-forward" |
Τα κανάλια
X11 και AUTHENTICATION AGENT έπονται πάντα των αιτήσεων X11 FORWARDING και AUTHENTICATION AGENT REQUEST, διαφορετικά δεν γίνονται δεκτά. Ομοίως και το κανάλι TCP/IP FORWARDING το οποίο ακολουθεί πάντα μία αίτηση PORT FORWARDING.5.7.7
Παρεχόμενη ΠροστασίαΤο SSH προστατεύει απέναντι στις εξής επιθέσεις:
Με άλλα λόγια, το SSH δεν εμπιστεύεται ποτέ το δίκτυο και κάποιος που έχει καταλάβει το δίκτυο μπορεί μόνο να αναγκάσει το SSH να αποσυνδεθεί.
Όλα αυτά ισχύουν όμως με την προϋπόθεση ότι δεν είναι δυνατή η απόκτηση
root access με άλλα μέσα. Σε αυτήν την περίπτωση το SSH δεν μπορεί να βοηθήσει σε τίποτα.5.7.8
Θέματα ΑσφάλειαςΌσο αναφορά το
SSH Transport Layer Protocol, είναι αναμενόμενο ότι μερικές φορές θα χρησιμοποιείται χωρίς αξιόπιστη συσχέτιση μεταξύ των δημοσίων κλείδων των μηχανών και της ταυτότητας των μηχανών. Τέτοια χρήση του πρωτοκόλλου είναι ανασφαλής, άλλα μπορεί να παρέχει ικανοποιητική ασφάλεια σε κάποια συστήματα.Όταν το
SSH Transport Layer Protocol δεν υποστηρίζει την κρυπτογράφηση των πακέτων, τότε οι μέθοδοι πιστοποιήσεις ταυτότητας του SSH User Authentication Protocol βασίζονται στην ανταλλαγή μυστικών δεδομένων, θα πρέπει να απαγορεύονται.Τέλος, παρά την ασφάλεια που προστίθεται στις Χ11 συνδέσεις και στην προώθηση των TCP/IP πορτών, είναι προτιμότερο οι εφαρμογές του SSH να αποφεύγουν την υποστήριξη τους, καθ' ότι τα
firewalls δεν μπορούν να εξετάσουν την κυκλοφορία λόγω του κρυπτογραφημένου καναλιού.5.7.9
Περαιτέρω ΠληροφορίεςΣτις ακόλουθες ηλεκτρονικές σελίδες διατίθονται πιο αναλυτικές πληροφορίες για το SSH πρωτόκολλο:
SSH - Welcome - SSH 2.0 Protocol Specifications -- http://www.ssh.fi/drafts/
SSH - Products - SSH Protocol --
http://www.ssh.fi/sshprotocols2/standardization.html
SSH – Welcome -- http://www.ssh.fi/
5.8 Ασφάλεια στο
DNS5.8.1
ΓενικάΤο
DNS (Domain Name System) ενώ αποτελεί ουσιαστικό συστατικό στοιχείο της υποδομής του Internet στερείται μηχανισμών δυνατής ασφάλειας για την προστασία της ακεραιότητας και της ταυτότητας των δεδομένων. Για την παροχή αυτών των μηχανισμών ασφάλειας έχουν αναπτυχθεί οι λεγόμενες "DNS extensions" (επεκτάσεις του DNS), τις οποίες αντιλαμβάνονται ρυθμισμένοι για ασφάλεια servers και εφαρμογές που κάνουν χρήση κρυπτογραφημένων ψηφιακών υπογραφών. Αυτές οι ψηφιακές υπογραφές περιλαμβάνονται σε ασφαλείς ζώνες σαν RRs (Resource Records). Μπορούμε, ωστόσο, να εξασφαλίσουμε ασφάλεια και μέσω μη ρυθμισμένων, για κάτι τέτοιο, DNS servers σε πολλές περιπτώσεις.Οι επεκτάσεις του DNS παρέχουν επιπλέον τη δυνατότητα αποθήκευσης πιστοποιημένων δημοσίων κλειδιών στο DNS. Αυτή η αποθήκευση των δημοσίων κλειδιών μπορεί να υποστηρίξει την γενικευμένη διαδικασία διανομής τους επιπρόσθετα της ασφάλειας του DNS. Τα αποθηκευμένα κλειδιά δίνουν τη δυνατότητα στους resolvers εκείνους, που έχουν ενσωματώσει χαρακτηριστικά ασφάλειας, να μαθαίνουν το κλειδί πιστοποίησης διαφόρων ζωνών εκτός εκείνων για τις οποίες έχουν ρυθμιστεί αρχικά. Κλειδιά τα οποία έχουν συσχετισθεί με DNS ονόματα μπορούν να ανακληθούν για να υποστηρίξουν άλλα πρωτόκολλα. Πρέπει να σημειωθεί ότι έχει γίνει πρόβλεψη για μια σειρά διαφορετικών τύπων κλειδιών και αλγορίθμων.
Οι επεκτάσεις του
DNS δίνουν, επίσης, τη δυνατότητα της προαιρετικής πιστοποίησης των συναλλαγών του DNS πρωτοκόλλου.5.8.2 Περιγραφή των Επεκτάσεων
Οι επεκτάσεις του DNS παρέχουν τρεις ξεχωριστές υπηρεσίες:
Υπάρχουν
, ωστόσο και υπηρεσίες που δεν παρέχουν οι επεκτάσεις του DNS. Η σχεδιαστική φιλοσοφία του DNS είναι τέτοια που προβλέπει την παροχή των ίδιων απαντήσεων σε όλες τις αιτήσεις χωρίς τη διάκριση καμιάς από αυτές. Έτσι δεν έγινε καμιά προσπάθεια για να συμπεριληφθούν λίστες πρόσβασης (access lists) ή οποιαδήποτε άλλα μέσα διάκρισης των διαφόρων αιτήσεων.Διανομή Κλειδιών
Τα
RRs ορίζονται ως αυτά που συσχετίζουν τα κλειδιά με τα DNS ονόματα. Αυτό επιτρέπει στο DNS να χρησιμοποιηθεί σαν ένας μηχανισμός διανομής δημοσίων κλειδιών σε υποστήριξη των μηχανισμών πιστοποίησης της προέλευσης των δεδομένων και άλλων υπηρεσιών ασφάλειας.Το
"Key Resource Record" περιλαμβάνει μία ταυτότητα του αλγορίθμου που χρησιμοποιείται, τις παραμέτρους του δημοσίου κλειδιού και μια πλειάδα άλλων χαρακτηριστικών παραμέτρων του τύπου της οντότητας με την οποία το κλειδί σχετίζεται.Υπό καθορισμένες συνθήκες οι διάφοροι
servers που έχουν ρυθμιστεί με γνώμονα την ασφάλεια του DNS, επιχειρούν να επιστρέψουν πληροφορίες κλειδιών σαν πρόσθετη πληροφορία μαζί με τα RRs που ζητήθηκαν έτσι ώστε να ελαττώσουν τον αριθμό των απαιτούμενων αιτήσεων.Πιστοποίηση Προέλευσης Δεδομένων και Ακεραιότητά τους
Η πιστοποίηση παρέχεται με την συσχέτιση κρυπτογραφικά δημιουργημένων ψηφιακών υπογραφών με τα
RRs. Υπάρχει ένα και μόνο μυστικό κλειδί που χαρακτηρίζει—υπογράφει μια ολόκληρη ζώνη. Εάν κάποιος resolver γνωρίζει το δημόσιο κλειδί κάποιας ζώνης μπορεί να πιστοποιήσει τα υπογεγραμμένα δεδομένα από αυτή τη ζώνη όσον αφορά την εγκυρότητα της υπογραφής τους και την επικαιρότητά τους. Το μυστικό κλειδί κάθε ζώνης κρατείται φυσικά εκτός δημοσίας θέας και χρησιμοποιείται μόνο περιοδικά για να υπογράψει τα RRs της ζώνης του.Αυτό το κλειδί προέλευσης δεδομένων ανήκει στη ζώνη και όχι στους
servers που αποθηκεύουν αντίγραφα των δεδομένων. Αυτό σημαίνει ότι κάθε πιθανό τρύπημα του ή των servers μιας ζώνης δεν επηρεάζει το βαθμό διασφάλισης που παρέχει ένας server όσον αφορά την προέλευση των δεδομένων.Ένας
resolver μπορεί να "μάθει" το δημόσιο κλειδί μιας ζώνης είτε διαβάζοντας το από το DNS είτε έχοντάς το στατικά ρυθμισμένο από την αρχή. Για να μπορεί κάποιος resolver να διαβάσει αξιόπιστα το δημόσιο κλειδί μιας ζώνης από το DNS θα πρέπει αυτό να είναι υπογεγραμμένο. Για αυτό το λόγο ο resolver θα πρέπει αρχικά να είναι ρυθμισμένος ώστε να γνωρίζει τουλάχιστον το δημόσιο κλειδί μιας ζώνης το οποίο θα χρησιμοποιεί για να πιστοποιεί υπογραφές. Από αυτό το σημείο και μετά μπορεί με ασφάλεια να διαβάζει το δημόσιο κλειδί άλλων ζωνών εάν οι ενδιάμεσες ζώνες στο DNS δέντρο είναι ασφαλείς και τα υπογεγραμμένα κλειδιά τους προσβάσιμα. Σε επίπεδο αρχής είναι πιο ασφαλές να γίνεται από την αρχή γνωστό στον server ένα πλήθος δημοσίων κλειδιών από διαφορετικές ζώνες διότι έτσι η πιθανή πτώση στα χέρια τρίτων μιας ζώνης δεν θα έχει συνέπειες για τις άλλες από ενέργειες αλλοίωσης των δεδομένων.Για την πρόσθεση του χαρακτηριστικού πιστοποίησης της προέλευσης δεν είναι αναγκαία κανενός είδους τροποποίηση του
DNS πρωτοκόλλου πέρα από την προσθήκη του τύπου υπογραφής και κλειδιών RR που χρειάζονται για τη διανομή των κλειδιών. Αυτή η υπηρεσία μπορεί να υποστηριχθεί από την υπάρχουσα δομή των resolvers και των servers αρκεί αυτοί να μπορούν να υποστηρίξουν τους επιπλέον RR τύπους.Εάν οι υπογραφές λαμβάνονται και πιστοποιούνται ξεχωριστά κάθε φορά τότε θα υπάρχουν περισσότερα
"ταξίδια" προς τον server και η απόδοση θα πέφτει. Για την αποφυγή αυτής της κατάστασης οι servers στέλνουν όποτε μπορούν τις υπογραφές που ίσως να χρειαστούν αργότερα.To SIG Resource Record
To SIG Resource Record περιέχει τον τύπο του RR που υπογράφει, το όνομα του υπογράφοντος, το χρόνο της δημιουργίας της υπογραφής, την ημερομηνία λήξης της, τον κρυπτογραφικό αλγόριθμο που χρησιμοποιήθηκε και τέλος το υλικό της υπογραφής.
Κάθε όνομα σε μια ασφαλή ζώνη σχετίζεται με ένα
SIG RR για κάθε τύπο καταχώρησης εκτός από τα glue και NS RRs. Ένας server που αντιλαμβάνεται από ασφάλεια θα επιχειρήσει πάντοτε να επιστρέψει τις υπογραφές των RRs που είναι υπό ερώτηση ενώ σε αντίθετη περίπτωση ο resolver είναι αυτός που πρέπει να συλλέξει όλες τις υπογραφές (SIGs) και να πάρει, μετά από επιλογή, αυτές που αφορούν τα records για τα οποία ενδιαφέρεται ο resolver.Τα
SIG RRs στην Σύνθεση ΑπαντήσεωνΟι
DNS servers που έχουν ενσωματώσει στη λειτουργία τους χαρακτηριστικά ασφάλειας πρέπει να επιχειρούν να στέλνουν τα διαθέσιμα SIG RRs που πιστοποιούν τα ζητηθέντα RRs. Αυτά συμβαίνουν:Επεξεργασία Απαντήσεων και SIG RRs
Οι παρακάτω κανόνες εφαρμόζονται κατά την επεξεργασία των
SIG RRs που περιλαμβάνονται σε μια απάντηση:Εάν το μήνυμα δεν περάσει τους ελέγχους ή το
SIG δεν επαληθεύσει τα υπογεγραμμένα RRs, τότε το SIG RR δεν είναι έγκυρο και πρέπει να αγνοείται. Εάν όλα τα SIG RRs που προσπάθησαν να πιστοποιήσουν ένα σύνολο από RRs απέτυχαν, τότε αυτό το σύνολο δεν πιστοποιείται.Πιστοποίηση Αιτήσεων και Συναλλαγών
Η υπηρεσία πιστοποίησης της προέλευσης των δεδομένων προστατεύει μεν τα
RRs που διακινούνται ανάμεσα στους DNS servers και resolvers αλλά δεν παρέχει καμία προστασία στις DNS αιτήσεις και επικεφαλίδες μηνυμάτων - δηλαδή στις συναλλαγές.Εάν τα
bits κάποιας επικεφαλίδας είναι τοποθετημένα με λανθασμένο τρόπο από τον server, δεν υπάρχουν και πολλά που μπορούν να γίνουν. Ωστόσο είναι δυνατόν να προσθέσουμε το χαρακτηριστικό πιστοποίησης των συναλλαγών. Μια τέτοια πιστοποίηση θα σήμαινε ότι ο resolver θα είναι σίγουρος ότι λαμβάνει μηνύματα από τον server τον οποίο ρώτησε, για το ότι η απάντηση είναι αποτέλεσμα της ερώτησης που υπέβαλλε και για το ότι αυτά τα μηνύματα δεν αλλοιώθηκαν κατά τη μεταφορά τους. Όλα αυτά επιτυγχάνονται με την προσθήκη ενός προαιρετικού SIG Resource Record στο τέλος της απάντησης το οποίο υπογράφει ψηφιακά τη συσχέτιση της απάντησης του server και της αίτησης - ερώτησης του resolver.Οι αιτήσεις μπορούν επίσης να πιστοποιηθούν με τη προσθήκη ενός ειδικού
SIG Resource Record στο τέλος της ερώτησης. Προς το παρόν βέβαια αυτή η δυνατότητα δεν αποτελεί αντικείμενο εκμετάλλευσης από τους υπάρχοντες DNS servers. Ωστόσο αυτό το συντακτικό της υπογραφής των αιτήσεων ορίζεται σε σχέση με την πιστοποίηση μελλοντικών δυναμικών ανανεώσεων και παρόμοιων διαδικασιών.Τα μυστικά ιδιωτικά κλειδιά που χρησιμοποιούνται για την ασφάλιση των συναλλαγών και των αιτήσεων ανήκουν στον υπολογιστή εκείνο που συνθέτει την ερώτηση ή την απάντηση και όχι στη ζώνη του
. Το αντίστοιχο δημόσιο κλειδί συνήθως αποθηκεύεται στο DNS και ανακτάται από αυτό.Επειδή οι αιτήσεις και οι απαντήσεις τους είναι αντικείμενα πολύ μεταβλητά δεν μπορεί να γίνει υπολογισμός από πριν των υπογραφών πιστοποίησης των μηνυμάτων
. Έτσι είναι αναγκαίο να υπάρχει με κάποιο τρόπο εύκαιρο το μυστικό κλειδί με παράλληλη διασφάλισή του είτε στο λογισμικό είτε σε κάποιο άλλο σύστημα που να μπορεί να συνδέεται κατά βούληση με το σύστημα που έχει ανάγκη το κλειδί.5.8.3 Το
KEY Resource RecordΤο
KEY Resource Record χρησιμοποιείται για την αρχειοθέτηση ενός κλειδιού που σχετίζεται με κάποιο όνομα του Domain Name System (DNS). Είναι δημόσιο κλειδί μια και μόνο αυτά αποθηκεύονται στο DNS. Μπορεί να είναι το δημόσιο κλειδί μιας ζώνης, ενός υπολογιστή του δικτύου ή ενός χρήστη. Το KEY RR είναι όπως κάθε άλλο RR αντικείμενο πιστοποίησης από το SIG RR. Οι ασφαλείς εφαρμογές του DNS πρέπει να είναι σχεδιασμένες έτσι ώστε να μπορούν να διαχειρίζονται δύο τουλάχιστον έγκυρα κλειδιά, του ίδιου τύπου που σχετίζονται με κάποιο όνομα, ταυτόχρονα. Το νούμερο του KEY RR τύπου είναι το 25.Τα
KEY RRs στην Σύνθεση ΑπαντήσεωνΜία αποκλειστική αίτηση για
KEY RRs δεν προκαλεί καμιά επιπλέον επεξεργασία πληροφορίας εκτός, φυσικά, από το αντίστοιχο SIG RR που δίδεται από τον server που είναι υπεύθυνος να απαντήσει.Οι
servers που λειτουργούν ενσωματώνοντας κάποιο σχήμα ασφάλειας είναι υποχρεωμένοι να περιλαμβάνουν στις απαντήσεις τους τα KEY RRs σαν επιπλέον πληροφορία σε διάφορες αιτήσεις συμπεριλαμβανομένων και των παρακάτω:5.8.4 Λήξη Υπογραφών,
TTLs και Εγκυρότητα Οι DNS servers που αντιλαμβάνονται από ασφάλεια δεν πρέπει να θεωρούν ληγμένες υπογραφές ικανές για να υπογράψουν οτιδήποτε, όπως επίσης δεν πρέπει να δέχονται την πιστοποίηση RRs από τέτοιες υπογραφές. Στα πλαίσια αυτού του περιορισμού οι servers πρέπει να ακολουθούν το σχήμα DNS TTL (Time To Live). Έτσι οι αρμόδιοι servers θα συνεχίσουν να ακολουθούν τις παραμέτρους ανανέωσης και λήξης της ζώνης ενώ κάποιος μη αρμόδιος server θα μετράει το TTL και θα αγνοεί τα RRs όταν το TTL θα είναι μηδέν. Επιπλέον, όποτε τα RRs μεταφέρονται σε απάντηση ερώτησης, τότε το TTL θα πρέπει να ισοσταθμίζεται έτσι ώστε ο παρών χρόνος συν αυτόν του TTL να μην υπερβαίνει το χρόνο λήξης της υπογραφής. Έτσι το TTL σε ένα μεταδιδόμενο RR θα είναι : min(sigExpTim, max(zoneMinTTL, min(originalTTL, currentTTL)))5.8.5
Αλυσιδωτές ΖώνεςΞεκινώντας με ένα ή περισσότερα κλειδιά τα οποία εμπιστευόμαστε για μια ζώνη, είναι δυνατό να αποκτήσουμε υπογεγραμμένα κλειδιά για όσες από τις υπο-ζώνες της αλλά και για τις υπερ-ζώνες της, εάν δεν είναι root. Κάθε αρμόδιος ασφαλής server κάποιας ζώνης θα πρέπει να περιέχει ένα KEY RR για τη υπερ-ζώνη υπογεγραμμένο από την ασφαλή ζώνη μέσω μιας οδηγίας που προέρχεται από κάποιο αρχείο-κλειδί. Με αυτό τον τρόπο γίνεται δυνατή η αναρρίχηση στις παραπάνω ζώνες στο δέντρο που αυτές έχουν σχηματίσει εάν κάποιος ξεκινά κάτω από root. Μια ασφαλής υπο-ζώνη ξεχωρίζει από ένα KEY RR με μη μηδενικές πληροφορίες κλειδιού στα NS RRs της υπο-ζώνης.
Ένας
resolver πρέπει να κρατάει στοιχεία για τον αριθμό των ασφαλών ζωνών που συνάντησε από κάποιο αρχικό σημείο μέχρι οποιαδήποτε ασφαλή ζώνη που μπόρεσε να φτάσει. Γενικά, όσο μικρότερος είναι αυτός ο αριθμός τόσο μεγαλύτερη είναι η εμπιστοσύνη που έχουμε στα δεδομένα.Ένας ασφαλής
server θα πρέπει να αρνείται κατηγορηματικά να μεταβεί από μια ασφαλή ζώνη σε μια μη ασφαλή εκτός αν η μη ασφαλής ζώνη είναι πιστοποιημένη ως τέτοια ή ως πειραματική από την ύπαρξη ενός πιστοποιημένου κατάλληλου KEY RR που να καταδεικνύει αυτό το γεγονός. Εάν κάτι τέτοιο δεν συμβαίνει τότε ο resolver λαμβάνει ανακριβή δεδομένα και άρα όχι άξια εμπιστοσύνης.Εάν στη διαδρομή για κάποια ζώνη συναντώνται μη ασφαλείς ζώνες τότε καμιά ζώνη δεν θεωρείται ότι μπορεί να εντοπισθεί από πληροφορίες που προέρχονται από τις μη ασφαλείς ζώνες
. Από τη στιγμή που τα δεδομένα στις μη ασφαλείς ζώνες μπορούν να έχουν υποστεί κάθε είδους αλλοίωση δεν είναι δυνατόν να τα θεωρούμε έμπιστα για οποιαδήποτε ενέργειά μας.Πρέπει να σημειωθεί ότι οι επεκτάσεις ασφάλειας του
DNS δεν εγγυώνται τίποτα παραπάνω από την εγκυρότητα των RRs, συμπεριλαμβανομένων και των KEY RRs που έχουν ληφθεί από το DNS. Δεν λύνουν σε καμία περίπτωση άλλα προβλήματα ασφάλειας. Για παράδειγμα με τη χρήση των επεκτάσεων ασφάλειας στο DNS μπορεί κάποιος να είναι σίγουρος για την IP διεύθυνση που λαμβάνει για κάποιο όνομα ενός host. Ωστόσο, αυτό δεν είναι ικανό να σταματήσει κάποιον από το να αντικαταστήσει τον host αυτόν με κάποιον αναρμόδιο ή να αιχμαλωτίσει IP πακέτα που στέλνονται σε αυτήν τη διεύθυνση απαντώντας επιπλέον από κάποια άλλη. Άρα η προστασία που παρέχει το σχήμα των επεκτάσεων ασφάλειας του DNS δεν είναι καθολικό και δεν προσφέρει ολοκληρωτική λύση στο πρόβλημα ασφάλειας του Internet από μόνο του παρά μόνο αν συνδυαστεί και με άλλα συστήματα που εφαρμόζονται σε άλλα επίπεδα του Διαδικτύου.5.8.6
Περαιτέρω ΠληροφορίεςΣτο
RFC 2065 υπάρχουν όλες οι πληροφορίες πάνω στις οποίες στηρίχθηκε η παραπάνω μελέτη. Εκεί θα βρεθούν πιο τεχνικές και αναλυτικές πληροφορίες.5.9 S/HTTP (Secure Hyper-Text Transfer Protocol)
5.9.1
ΕισαγωγήΤο
WWW είναι ένα διανεμημένο σύστημα πολυμέσων το οποίο χαίρει μεγάλης αποδοχής από πολλούς χρήστες. Το βασικό και περισσότερο χρησιμοποιούμενο πρωτόκολλο μεταξύ WWW clients και WWW servers είναι το Hyper Text Transfer Protocol. Η ευκολία της χρήσης του WWW έχει προκαλέσει το παγκόσμιο ενδιαφέρον και χρησιμοποιείται σαν η υποδομή client / server για πολλές δικτυακές εφαρμογές. Τέτοιες εφαρμογές απαιτούν την αμοιβαία πιστοποίηση της ταυτότητας των δύο επικοινωνούντων υπολογιστών και την ικανότητα ανταλλαγής ευαίσθητων πληροφοριών. Οι τρέχοντες, όμως, HTTP εφαρμογές έχουν μέτρια έως και μηδαμινή υποστήριξη για τους κρυπτογραφικούς μηχανισμούς που είναι απαραίτητοι για τέτοιες συναλλαγές.Το πρωτόκολλο
Secure HTTP παρέχει ασφαλής μηχανισμούς επικοινωνίας μεταξύ ένα ζευγάρι HTTP server – client με σκοπό να επιτρέψει αυθόρμητες εμπορικές συναλλαγές. Στόχος της σχεδίασης ήταν ένα ευέλικτο πρωτόκολλο που διαθέτει πολλαπλούς μηχανισμούς και αλγόριθμους, και την δυνατότητα διαπραγμάτευσης αυτών. Σχεδιάστηκε από τους E. Rescorla και A. Schiffman του EIT και αποτελεί υπερσύνολο του HTTP.5.9.2
Χαρακτηριστικά του S/HTTP5.9.4
Είδη ΠροστασίαςΗ προστασία ενός μηνύματος εφαρμόζεται με τρεις διαφορετικούς τρόπους
: με υπογραφή, με κρυπτογράφηση και με παραγωγή MACs. Κάθε μήνυμα μπορεί να υπογραφεί, να κρυπτογραφηθεί ή οποιοσδήποτε συνδυασμός αυτών, συμπεριλαμβανομένων της παραγωγής και της παροχής καμίας προστασίας.Υποστηρίζονται αρκετές τεχνικές διαχείρισης κλειδιών όπως συμμετρικά μυστικά κλειδιά
, ασύμμετρη διαχείριση και το σύστημα Key Distribution Center (KDC) του Kerberos. Επιπλέον, ένας μηχανισμός challenge-response παρέχει στους επικοινωνούντες υπολογιστές την δυνατότητα να αναγνωρίζουν τις επιθέσεις επανάληψης (replay attacks).Υπογραφές
Όταν υπογράφεται ψηφιακά, ένα κατάλληλο πιστοποιητικό μεταφέρεται με το μήνυμα ή ο αποστολέας μπορεί να αφήσει τον παραλήπτη να αποκτήσει το απαιτούμενο πιστοποιητικό από μόνος του.Κρυπτογράφηση
Εκτός από την βασική κρυπτογράφηση, το S/HTTP καθορίζει δύο μηχανισμούς ανταλλαγής κλειδιών: (α) χρήση ασύμμετρης διαχείρισης κλειδιών και (β) χρήση ενός προκαθορισμένου κλειδιού.Στην πρώτη περίπτωση
, οι παράμετροι και το κλειδί του συμμετρικού κρυπτοσυστήματος κρυπτογραφούνται με την δημόσια κλείδα του παραλήπτη.Στην δεύτερη περίπτωση
, τα ίδια στοιχεία κρυπτογραφούνται με κλειδί που έχει προαποφασιστεί νωρίτερα. Τα κλειδιά αυτά μπορούν να προέλθουν και από τα tickets του Kerberos.Παραγωγή
Message Authentication Codes (MACs) Το S/HTTP παρέχει επιπλέον μέσα για την επαλήθευση της ακεραιότητας των δεδομένων και την πιστοποίηση της ταυτότητας του αποστολέα. Χρησιμοποιεί το MAC του μηνύματος, το οποίο υπολογίζεται από hash αλγόριθμο σε συνδυασμό με ένα κοινό μυστικό κλειδί (π.χ. MD5). Αυτή η τεχνική δεν απαιτεί την χρήση ασύμμετρης διαχείρισης ούτε την χρήση κρυπτογράφησης.5.9.4
Μοντέλο ΕπεξεργασίαςΠροετοιμασία Μηνύματος
Η δημιουργία ενός S/HTTP μηνύματος μπορεί να θεωρηθεί σαν μια συνάρτηση με τρεις εισόδους:Ο αποστολέας συνδυάζει τις προτιμήσεις και των δύο πλευρών και αποφαίνεται για τους αλγόριθμους και μηχανισμούς που θα χρησιμοποιηθούν καθώς και για την μορφή των κλειδιών
. Ίσως χρειαστεί η επέμβαση του χρήστη σε περίπτωση πολλών επιλογών. Στο προστατευμένο HTTP μήνυμα, έπειτα, προστίθονται κατάλληλες S/HTTP επικεφαλίδες και παράγεται το τελικό S/HTTP μήνυμα.Παραλαβή του Μηνύματος
Η επεξεργασία του παραληφθέντος S/HTTP μηνύματος, με την σειρά της, μπορεί να θεωρηθεί σαν συνάρτηση με τέσσερις διακριτές εισόδους:Για να μπορέσει να επεξεργαστεί το
S/HTTP μήνυμα, ο παραλήπτης διαβάζει τις S/HTTP επικεφαλίδες για να ανακαλύψει τι κρυπτογραφικοί μετασχηματισμοί εφαρμόστηκαν στο μήνυμα και με την βοήθεια των προσυμφωνημένων κλειδιών τις αφαιρεί. Το αποτέλεσμα είναι το HTTP μήνυμα (ή κάποιο άλλο αντικείμενο).Ο παραλήπτης μπορεί να επιλέξει να επαληθεύσει ότι οι εφαρμοσμένοι μηχανισμοί ταιριάζουν με αυτούς που είχε δηλώσει ο αποστολέας
(είσοδος 4), με αυτούς που είχε ζητήσει ο παραλήπτης (είσοδος 2) καθώς και με τις τρέχοντες προτιμήσεις του τελευταίου (είσοδος 3), με σκοπό να αποφανθεί εάν το μήνυμα είχε μετασχηματιστεί κατάλληλα.5.9.5 HTTP
Ενθυλάκωση Ένα S/HTTP μήνυμα αποτελείται από μία γραμμή αίτησης (request line) ή απάντησης (status line), ακολουθούμενη από μια σειρά από επικεφαλίδες τύπου RFC822 και τα ασφαλισμένα ενθυλακωμένα περιεχόμενα. Τα ενθυλακωμένα περιεχόμενα μπορεί να είναι είτε ένα ακόμα S/HTTP μήνυμα, είτε ένα HTTP μήνυμα, είτε απλά δεδομένα.Request Line
Για τις HTTP αιτήσεις η γραμμή που ξεκινά το μήνυμα είναι:Secure * Secure-HTTP/1.1
Status Line
Στις απαντήσεις του
server η πρώτη γραμμή πρέπει να είναι:Secure-HTTP/1.1 200 OK
Παρατηρούμε ότι δεν δηλώνεται κατά πόσο έγινε δεκτή ή όχι η αίτηση του client. Η ίδια γραμμή χρησιμοποιείται και στην περίπτωση αποτυχίας και στην περίπτωση επιτυχίας, γεγονός που αποτρέπει την επίγνωση της περίπτωσης.5.9.6
Οι Επικεφαλίδες του S/HTTP Το πρωτόκολλο καθορίζει μία σειρά από νέες επικεφαλίδες που πηγαίνουν στο πεδίο των επικεφαλίδων του S/HTTP μηνύματος. Από αυτές, όλες εκτός των "Content-Type" και "Content-Privacy-Domain" είναι προαιρετικές. Τα κυρίως περιεχόμενα του μηνύματος διαχωρίζονται από τις επικεφαλίδες με δύο συνεχόμενες ακολουθίες των χαρακτήρων ελέγχου <CR><LF>. Content-Privacy-Domain Αυτή η επικεφαλίδα υπάρχει για να παρέχει συμβατότητα με τα S/HTTP εφαρμογές που βασίζονται στο PEM. Οι τιμές της είναι "PEM", "PKCS-7" και "PGP".Όταν χρησιμοποιείται η επικεφαλίδα
"Content-Privacy-Domain: PKCS-7", η προστασία του μηνύματος γίνεται με τους εξής τρόπους, βάσει του PKCS-7: με υπογραφή και με κρυπτογράφηση. Κάθε HTTP μήνυμα μπορεί να κρυπτογραφηθεί, να υπογραφεί ή και τα δύο. Το μήνυμα που υπογράφεται συνήθως συνοδεύεται από πιστοποιητικό ή από αλυσίδα πιστοποιητικών. Οι επικεφαλίδες "Content-Privacy-Domain: PGP" και "Content-Privacy-Domain: PEM" υποδηλώνουν εφαρμογή των κανόνων του PGP ή του PEM, αντίστοιχα.Content-Transfer-Encoding
Εδώ καθορίζεται η κωδικοποίηση των περιεχομένων και οι τιμές που μπορεί να πάρει η επικεφαλίδα είναι
"8-bit", "7-bit" και "BASE64". Η τιμή εξαρτάται από την επικεφαλίδας "Content-Privacy-Domain ".Για την περίπτωση που είναι
"Content-Privacy-Domain: PKCS-7", οι μόνες επιτρεπτές τιμές της "Content-Transfer-Encoding" είναι "BASE64" ή "8-bit".Για την περίπτωση που είναι
"Content-Privacy-Domain: PEM", η μόνη επιτρεπτή τιμή είναι η "7-bit".Για την περίπτωση που είναι
"Content-Privacy-Domain: PGP" , όλες οι παραπάνω τιμές επιτρέπονται ανάλογα με την μορφή του PGP μηνύματος.Content-Type
Υπό κανονικές συνθήκες, τα ενθυλακωμένα περιεχόμενα μετά την αφαίρεση όλων κρυπτογραφικών μέτρων ασφαλείας, θα είναι ένα HTTP μήνυμα. Σε αυτήν την περίπτωση η επικεφαλίδα θα είναι:Content-Type: application/http
Δεν αποκλείεται
, όμως, τα ενθυλακωμένα περιεχόμενα να είναι κάποιου άλλου τύπου με την προϋπόθεση ότι αυτός ο τύπος δηλωθεί σωστά με την χρήση κατάλληλης επικεφαλίδας "Content-Type".Prearranged-Key-Info
Η επικεφαλίδα αυτή έχει σαν σκοπό να συνοδεύσει πληροφορίες σχετικά με κλειδί που έχει προκανονιστεί με κάποιον τρόπο έκτος της εσωτερικής κρυπτογράφησης. Μία χρήση της επικεφαλίδας είναι η in-band επικοινωνία ενός session key στην περίπτωση που κάποια από τις δύο πλευρές δεν κατέχει ένα.Ορίζονται τρεις μέθοδοι για την ανταλλαγή
session keys: (α) Inband, (β) Kerberos και (γ) Outband. Οι δύο πρώτες μέθοδοι, Inband και Kerberos, υποδηλώνουν ότι το κλειδί έχει ανταλλαγεί πρωτύτερα, με χρήση μιας HTTP επικεφαλίδας "Key-Assign". Η Outband μέθοδος υπονοεί ότι ο client και ο server έχουν πρόσβαση σε κλειδιά που σχετίζονται με ονόματα χρηστών, είτε μέσω μιας βάσης δεδομένων, είτε από την εισαγωγή ενός κωδικού από τον χρήστη μέσω του πληκτρολόγιου.MAC-Info
Μεταφέρει ένα Message Authentication Code (MAC), παρέχοντας πιστοποίηση ταυτότητας και ακεραιότητας. Το MAC υπολογίζεται από τα ενθυλακωμένα περιεχόμενα, την ώρα (προαιρετικό – αποτρέπει τις επιθέσεις replay attacks) και κάποιού κοινού μυστικού που μοιράζονται ο client και ο server. Έστω ότι χρησιμοποιείται hash αλγόριθμος H, τότε η εξίσωση που περιγράφει την διαδικασία είναι (οι δύο κάθετες παύλες || σημαίνουν συνένωση):MAC = hex(H(Message||<time>||<shared key>))
5.9.7
Διαπραγματεύσεις Και δύο πλευρές πρέπει να είναι σε θέση να εκφράσουν τις προτιμήσεις και τις απαιτήσεις τους σχετικά με ποίες κρυπτογραφικές ενισχύσεις επιτρέπουν ή απαιτούν. Το σύνολο των πληροφοριών που διαπραγματεύονται, χωρίζεται σε τέσσερα μέρη:Value: Ο αλγόριθμος που προσφέρει την παραπάνω προστασία.
Direction: Η κατεύθυνση για την οποία αναφέρονται οι συγκεκριμένες προτιμήσεις (reception, origination).
Strength: Πόσο ισχυρή είναι η επιλογή (required, optional, refused).
Η τιμή
optional του τελευταίου πεδίου φανερώνει ότι οι αλγόριθμοι και το είδος της προστασίας που αναφέρονται στο Value και στο Property είναι προαιρετικές. Κατά την παραλαβή (reception) μηνύματος ασφαλισμένου με προαιρετικούς μηχανισμούς, ο παραλήπτης θα επιλέξει να το επεξεργαστεί αλλά δεν περιορίζεται στην επεξεργασία μόνο τέτοιων μηνυμάτων. Ο αποστολέας (origination) ο οποίος ορίζει κάποιες προτιμήσεις προαιρετικές, μπορεί να τις χρησιμοποιήσει όταν βρίσκονται σε συμφωνία με τις προτιμήσεις του παραλήπτη και δεν μπορεί όταν δεν είναι αποδεκτές.Η τιμή
required υποδηλώνει ότι ο παραλήπτης (reception) θα δέχεται S/HTTP μηνύματα μόνο με αυτές τις κρυπτογραφικές ενισχύσεις, ενώ ο αποστολέας (origination) θα χρησιμοποιεί μόνο αυτές ανεξάρτητα με τις προτιμήσεις του παραλήπτη.Τέλος, η τιμή
refused υποδηλώνει ότι ο παραλήπτης (reception) δεν θα δέχεται S/HTTP μηνύματα με τέτοιες κρυπτογραφικές ενισχύσεις, ενώ ο αποστολέας (origination) δεν θα παράγει ποτέ τέτοια μηνύματα.Επικεφαλίδες Διαπραγμάτευσης
Η τιμή του πεδίου Property συμπληρώνεται με κατάλληλες επικεφαλίδες που προσδιορίζουν ποια κρυπτογραφική ιδιότητα βρίσκεται υπό συζήτηση.Ένα παράδειγμα που εξηγεί αυτά που συζητήσαμε παραπάνω είναι:
Όπως προείπαμε, υπάρχουν προκαθορισμένες τιμές για τους μηχανισμούς προστασίας. Αυτές είναι:
5.9.8
Νέες Επικεφαλίδες HTTPΤο πρωτόκολλο S/HTTP καθορίζει μία συλλογή νέων επικεφαλίδων που τοποθετούνται στις επικεφαλίδες του HTTP μηνύματος. Με τον τρόπο αυτό οι νέες επικεφαλίδες μοιράζονται την κρυπτογραφική προστασία που παρέχεται στις υπάρχουσες. Οι νέες επικεφαλίδες παρουσιάζονται παρακάτω.
5.9.9
Υποστηριζόμενοι ΑλγόριθμοιΟι αλγόριθμοι που υποστηρίζει το S/HTTP χωρίζονται σε κατηγορίες, ανάλογα με είδος της παρεχόμενης προστασίας με την οποία χρησιμοποιούνται.
Αλγόριθμοι Διαχείριση Κλειδιών
Οι μηχανισμοί που καθορίζονται για την διαχείριση και ανταλλαγή κλειδιών (
key management, key exchange) είναι οι RSA, Inband, Outband και Kerberos. Οι δύο ς μέθοδοι Inband και Kerberos, υποδηλώνουν ότι το κλειδί έχει ανταλλαγεί πρωτύτερα, με χρήση μιας HTTP επικεφαλίδας "Key-Assign". Η Outband μέθοδος υπονοεί ότι ο client και ο server έχουν πρόσβαση σε κλειδιά που σχετίζονται με ονόματα χρηστών, είτε μέσω μιας βάσης δεδομένων, είτε από την εισαγωγή ενός κωδικού από τον χρήστη μέσω του πληκτρολόγιου. Η RSA χρησιμοποιεί την ιδιωτική κλείδα του αποστολέα για την κρυπτογράφηση του κλειδιού κρυπτογράφησης των ενθυλακωμένων περιεχομένων που συνοδεύεται από πιστοποιητικό τύπου Χ.509 με την δημόσια κλείδα του αποστολέα.Αλγόριθμοι Ψηφιακής Υπογραφής και Παραγωγής
Message Digest Το S/HTTP υποστηρίζει δύο αλγόριθμους για την παραγωγή ψηφιακών υπογραφών: RSA και DSS. Για την παραγωγή message digest υποστηρίζονται οι MD2, MD5 και SHS.Αλγόριθμοι Συμμετρικής Κρυπτογράφησης
Οι αλγόριθμοι αυτοί διαχωρίζονται σε αυτούς που χρησιμοποιούνται στην κρυπτογράφηση των ενθυλακωμένων περιεχομένων και σε αυτούς που χρησιμοποιούνται στην κρυπτογράφηση των ενθυλακωμένων HTTP επικεφαλίδων.Οι αλγόριθμοι για την κρυπτογράφηση των περιεχομένων είναι:
DES-CBC: Ο DES σε Cipher Block Chaining (CBC) mode.
DES-EDE-CBC: Ο Triple DES χρήση 2 κλειδιών σε Encrypt-Decrypt-Encrypt mode και σε CBC mode.
DES-EDE3-CBC: Ο Triple DES με χρήση 3 κλειδιών σε Encrypt-Decrypt-Encrypt mode και σε CBC mode.
DESX-CBC: Ο DESX της RSA.
IDEA-CFB: Ο IDEA σε Cipher Feedback mode.
RC2-CBC: Ο RC2 της RSA σε Cipher Block Chaining (CBC) mode.
RC4: Ο RC4 της RSA.
CDMF-CBC: Ο CDMF της IBM σε Cipher Block Chaining (CBC) mode.
Οι αλγόριθμοι για την κρυπτογράφηση των επικεφαλίδων είναι:
DES-ECB: Ο DES σε Electronic Codebook (ECB) mode.
DES-EDE-ECB: Ο Triple DES χρήση 2 κλειδιών σε Encrypt-Decrypt-Encrypt mode και σε ECB mode.
DES-EDE3-ECB: Ο Triple DES με χρήση 3 κλειδιών σε Encrypt-Decrypt-Encrypt mode και σε ECB mode.
DESX-ECB: Ο DESX της RSA.
IDEA-ECB: Ο IDEA σε Electronic Codebook (ECB) mode.
RC2-ECB: Ο RC2 της RSA σε Electronic Codebook (ECB) mode.
CDMF-ECB: Ο CDMF της IBM σε Electronic Codebook (ECB) mode.
5.9.10
Προστασία Από Γνωστές ΕπιθέσειςΤο S/HTTP, όπως και το SSL, παρέχει προστασία έναντι των επιθέσεων
Man-In-The-Middle-Attack, Replay Attack και Dictionary Attack. Είναι πιο σταθερό, όμως από το SSL γιατί επιτρέπεται η επαναδιαπραγμάτευση των μηχανισμών και αλγορίθμων. Επιπλέον, οι αλγόριθμοι που υποστηρίζει το S/HTTP είναι πιο ανθεκτικοί σε επιθέσεις. Συγκεκριμένα, το κόστος ανάλυσης του DES (ο προρυθμισμένος αλγόριθμος του S/HTTP) είναι πολύ υψηλότερο από το αντίστοιχο κόστος του RC4 με 40 bit κλειδί (προρυθμισμένος αλγόριθμος του SSL).5.9.11
Αδυναμίες του S/HTTPΗ χρήση της μεθόδου Inband για ανταλλαγή κλειδιών είναι προβληματική. Η μεταφορά των κλειδιών δεν γίνεται με αρκετή ασφάλεια και μπορούν εύκολα να πέσουν στα χέρια εισβολέων. Επίσης, άλλη μια αδυναμία του S/HTTP είναι η εξαιρετική του ευελιξία στην επιλογή μηχανισμών και αδυναμία κρυπτογράφησης όλων των ανταλλαγών μηνυμάτων. Σε αντίθεση το SSL εφαρμόζει την άποψη της κρυπτογράφησης των πάντων.
5.9.12
Περαιτέρω Πληροφορίες Μία σύντομη περιγραφή του S/HTTP υπάρχει στις σελίδες:SHTTP links -- http://www3.tsl.uu.se/~micke/shttp_links.html
An Overview of SHTTP -- http://www.homeport.org/~adam/shttp.html
Πιο τεχνικές πληροφορίες για το
S/HTTP είναι διαθέσιμες στις παρακάτω ηλεκτρονικές σελίδες:SHTTP Draft -- http://search.ietf.org/internet-drafts/draft-ietf-wts-shttp-06.txt
SHTML Draft -- http://search.ietf.org/internet-drafts/draft-ietf-wts-shtml-05.txt
5.10 S/KEY (Secure KEY), One-time Password System
5.10.1
ΓενικάΤα υπολογιστικά συστήματα καθημερινά απειλούνται από χιλιάδες εισβολείς που ανακαλύπτουν συνεχώς νέες
, πιο εκλεπτυσμένες μεθόδους επίθεσης. Ένα από τα πιο συνηθισμένα είδη επίθεσης είναι η παράνομη καταγραφή της κυκλοφορίας σε καίρια σημεία του δικτύου και εκμετάλλευση των αποκτηθέντων πληροφοριών για την εξαγωγή μυστικών κωδικών για νόμιμους χρήστες. Η Bellcore έχει αναπτύξει ένα πρότυπο λογισμικό, το S/KEY, που αποτελεί ένα σύστημα παραγωγής κωδικών μίας χρήσης, για αντιμετωπίσει αυτό το είδος επίθεσης.Το σύστημα
S/KEY έχει αρκετά πλεονεκτήματα σε σχέση με άλλα συστήματα πιστοποίησης ταυτότητας. Κατ' αρχήν, ο κωδικός του χρήστη δεν ταξιδεύει ποτέ στο δίκτυο κατά την διάρκεια του login ή όταν εκτελούνται εντολές όπως οι passwd και η su του UNIX. Μυστικές, ευαίσθητες πληροφορίες δεν αποθηκεύονται πουθενά, ούτε στον υπολογιστή που χρησιμοποιεί ο χρήστης και οι αλγόριθμοι που εφαρμόζονται είναι ευρέως γνωστοί.Η
Bellcore πειραματίζεται με το σύστημα S/KEY εδώ και δύο χρόνια, το οποίο είναι διαθέσιμο στο Internet με anonymous ftp.5.10.2
Εισαγωγή Υπάρχει μια μεγάλη ποικιλία απειλών που μπορούμε να σκεφτούμε για ένα δίκτυο. Αυτές διαχωρίζονται σε εσωτερικές απειλές και σε εξωτερικές. Το S/KEY έχει αναπτυχθεί για καταπολεμήσει τις εξωτερικές απειλές, δηλαδή τις προσπάθειες για εισχώρηση σε ένα σύστημα υπολογιστών από πηγές εκτός των ορίων του συστήματος. Δεν ασχολείται με τα επιπρόσθετα μέτρα ασφαλείας που πρέπει να ληφθούν υπόψη για να εμποδιστούν νόμιμοι χρήστες να αποκτήσουν παραπάνω δικαιώματα από αυτά που δικαιούνται. Προστατεύει τους κωδικούς των χρηστών από τις passive attacks, επιθέσεις κατά τις οποίες ο πιθανός εισβολέας παρακολουθεί τις συναλλαγές νόμιμων χρηστών και συλλέγει κωδικούς και άλλες χρήσιμες πληροφορίες, που θα χρησιμοποιήσει αργότερα.Το
S/KEY μπορεί εύκολα και γρήγορα να προστεθεί σε σχεδόν όλα τα UNIX συστήματα, χωρίς να απαιτεί επιπλέον hardware και χωρίς να αποθηκεύει ευαίσθητες πληροφορίες. Μπορεί να χρησιμοποιηθεί σε "χαζά τερματικά" ("dumb terminals"), σε προσωπικούς υπολογιστές που έχουν εγκατεστημένα συμβατικά επικοινωνιακά προγράμματα, ή σε σταθμούς εργασίας (workstations). Είναι συμβατό με πιθανή εφαρμογή βασισμένη σε smart cards ή pocket calculators.Στόχοι
Προστασία από Παθητικές Επιθέσεις
(Eavesdropping)Ο πρωταρχικός στόχος του συστήματος πιστοποίησης ταυτότητας
S/KEY είναι η παροχή ολοκληρωμένης προστασίας στον μηχανισμό σύνδεσης (login mechanism) με απομακρυσμένους υπολογιστές απέναντι σε επιθέσεις παθητικού τύπου (passive attacks). Καμία πληροφορία δεν διασχίζει το δίκτυο που θα μπορούσε να χρησιμοποιηθεί από πιθανό εισβολέα για παράνομη πρόσβαση σε ανύποπτο χρόνο. Ακόμα και η παρακολούθηση πολλών συνδιαλέξεων του κάθε χρήστη, δεν παρέχει χρήσιμες πληροφορίες που θα βοηθούσαν μια προσπάθεια εισχώρησης στο σύστημα.Ευκολία Χρήσης
Ένα σύστημα ασφαλείας πρέπει να είναι εύκολο στην χρήση
. Οι περισσότεροι χρήστες δεν είναι πρόθυμοι να συμμορφωθούν με ένα πολύπλοκο σύστημα ασφαλείας και το πιθανότερο είναι ότι δεν θα ακολουθήσουν τα βήματα που καθορίζει η πολιτική ασφαλείας για μέγιστη προστασία. Όσο περισσότερο φιλικό προς τον χρήστη είναι το σύστημα, τόσο ευκολότερα θα εξοικειωθούν με αυτό οι χρήστες και η εφαρμογή του είναι πιο εγγυημένη.Αυτόματη Λειτουργία
Το
S/KEY είναι τόσο απλά στην λειτουργία ώστε οι διαδικασίες του μπορούν εύκολα να αυτοματοποιηθούν. Έτσι, για τον χρήστη, η σύνδεση με έναν άλλο υπολογιστή θα φαίνεται το ίδιο απλή και γρήγορη με την περίπτωση κωδικών πολλαπλών χρήσεων. Η παροχή αυτοματοποιημένης λειτουργίας έχει σαν αποτέλεσμα ότι το σύστημα παραμένει κρυφό και η χρήση του γίνεται χωρίς υποψία της ύπαρξής του.Όχι Κρυφοί Αλγόριθμοι
Η ασφάλεια ενός συστήματος πιστοποίησης ταυτότητας πρέπει να βασίζεται αποκλειστικά σε απρόσβλητους μυστικούς κωδικούς και όχι σε μυστικούς αλγόριθμους. Ένας δημόσια γνωστός αλγόριθμος μπορεί να εκτιμηθεί καλύτερα και να βρεθούν έγκαιρα τυχόν αδυναμίες του. Γνωρίζοντας εκ του προτέρου τις αδυναμίες του αλγόριθμου, η κάλυψη τους μπορεί να γίνει πιο γρήγορα πριν προλάβει κάποιος να τις εκμεταλλευτεί. Εάν το σύστημα εξαρτάται από ένα κρυφό αλγόριθμο, τότε υπάρχει πάντα ο κίνδυνος της αποκάλυψης του όταν κάποιος που ξέρει το μυστικό αλλάξει δουλεία ή πάψει να είναι έμπιστος.
Όχι Αποθηκευμένα Μυστικά
Η αποθήκευση κλειδιών ή κωδικών σε έναν υπολογιστή δεν είναι καλή πρακτική καθ' ότι το μηχάνημα μπορεί εύκολα να γίνει στόχος και μία ρήξη της ασφάλειας να έχει αντίκτυπο σε όλο το τοπικό δίκτυο
. Όταν ένα κοινό αρχείο κωδικών χρησιμοποιείται για πολλές μηχανές, ο κίνδυνος γίνεται ακόμα μεγαλύτερος. Για αυτό το λόγο δεν αποθηκεύονται οι κωδικοί σε καμία από τις μηχανές του δικτύου.5.10.3
Περιγραφή του S/KEY ΣυστήματοςΥπάρχουν δύο πλευρές στην λειτουργία του
S/KEY. Στην πλευρά του απομακρυσμένου client, ο κατάλληλος μίας χρήσης κωδικός πρέπει να παραχθεί, ενώ από στην πλευρά του server, αυτός ο κωδικός πρέπει να επαληθευθεί.Ο Αλγόριθμος του
S/KEY Η παραγωγή των κωδικών μίας χρήσης βασίζεται σε μία ασφαλή hash function. Ασφαλή hash function λέγεται η συνάρτηση που είναι υπολογιστικά αδύνατο να αντιστραφεί. Έστω ότι έχουμε την εξής συνάρτηση:y = f (x)
Ο υπολογισμός του
y δεδομένου του x είναι εύκολος και γρήγορος, αλλά η εύρεση του x δεδομένου του y είναι εξαιρετικά δύσκολη. Επίσης η εύρεση x' ώστεy = f (x')
είναι αδύνατη
, ακόμα και με δοκιμή πολλών τιμών x' μέχρι να βρεθεί η τιμή y. Εάν ο αριθμός των τιμών που πρέπει να δοκιμασθεί είναι πολύ μεγάλος, τότε η συνάρτηση είναι πρακτικά αδύνατο να αντιστραφεί. Η hash function που χρησιμοποιεί το S/KEY, έχει 264 διαφορετικές τιμές, αριθμός ασύλληπτα μεγάλος.Σαν βάση του
secure hash function που χρησιμοποιεί το S/KEY είναι ο αλγόριθμος MD4 Message Digest algorithm σχεδιασμένος από τον Ronald Rivest της εταιρείας RSA Data Security Inc. Ο MD4 δέχεται σαν είσοδο αυθαίρετο αριθμό bits και παράγει στην έξοδο 16 bytes πληροφορίας. Είναι γρήγορος και μέχρι τώρα πιστεύεται ότι είναι ασφαλής, δηλαδή έχει δεν υπάρχει τρόπος να βρεθεί η είσοδος που έδωσε δεδομένη έξοδο εκτός από την δοκιμή όλων των πιθανών τιμών (264 » 1019).Η συνάρτηση
MD4 έχει ρυθμιστεί για είσοδο 8 bytes δεδομένων και έξοδος 8 bytes. Αυτό επιτυγχάνεται με την εφαρμογή μιας exclusive-OR πράξης στα δυο μέρη των 8 bytes της εξόδου. Η ρύθμιση κρίνεται απαραίτητη, ώστε να είναι δυνατή η εφαρμογή της παραπάνω από μία φορά.Παραγωγή Κωδικών Μίας Χρήσης
Οι μίας χρήσης κωδικοί που χρησιμοποιεί το
S/KEY έχουν μήκος 64 bits και προκύπτουν από το μυστικό κωδικό του χρήστη με επεξεργασία του από την secure hash function. Το μήκος αυτό θεωρείται αρκετά μεγάλο για να είναι ασφαλές και αρκετά μικρό για να μπορεί εύκολα να διαχειριστεί από τους χρήστες όταν χρειάζεται.Βήμα Προετοιμασίας
Η είσοδος στην
hash function είναι, όπως προείπαμε, 8 bytes. Επειδή, όμως, ο μυστικός κωδικός του χρήστη μπορεί να είναι (και πρέπει να είναι) μεγαλύτερος, είναι αναγκαίο ένα βήμα προετοιμασίας. Σε αυτό το βήμα, ο μυστικός κωδικός του χρήστη συνενώνεται (concatenation) με ένα seed που μεταδίδεται από την server στον client σε μη κρυπτογραφημένη μορφή. Το seed επιτρέπει στον χρήστη να χρησιμοποιεί τον ίδιο κωδικό και στις άλλες μηχανές του δικτύου (με χρήση διαφορετικών seeds) και να ανακυκλώνει με ασφάλεια τους μυστικούς κωδικούς αλλάζοντας το seed. Το αποτέλεσμα της προηγούμενης ενέργειας, εισάγεται στον MD4 και η έξοδος του μειώνεται σε 8 bytes με την πράξη X-OR μεταξύ των δύο 8-byte μισά. Το τελικό αποτέλεσμα του βήματος καλείται s.Βήμα Παραγωγής
Η ακολουθία των κωδικών μίας χρήσεως παράγεται με την πολλαπλή εφαρμογή του
MD4 στον μυστικό κωδικό του χρήστη. Αναλυτικότερα, ο πρώτος κωδικός μίας χρήσεως θα παραχθεί από την Ν φορές επεξεργασία του s (βλέπε προηγούμενη παράγραφο) από τον MD4:po = f N (s)
Ο επόμενος κωδικός μίας χρήσεως προκύπτει τρέχοντας το
s μέσα από τον αλγόριθμο MD4 μία φορά λιγότερη από ότι πριν, δηλαδή Ν-1:p1 = f N-1 (s)
Η γενική μορφή της φόρμουλας είναι:
pi = f N-i (s)
Ένας παρείσακτος που έχει καταγράψει τον κωδικό μίας χρήσης pi, δεν είναι σε θέση να υπολογίσει τον επόμενο στην ακολουθία (pi+1), γιατί κάτι τέτοιο θα απαιτούσε την αντιστροφή της συνάρτησης. Επειδή δεν γνωρίζει το αρχικό μυστικό κλειδί που χρησιμοποιήθηκε και λόγω της φύσης της συνάρτησης, η αντιστροφή της τελευταίας καθίσταται αδύνατη.
Επαλήθευση των Κωδικών Μίας Χρήσης από τον Server
Ο
server αρχικά λαμβάνει τον po. Όταν ο client προσπαθεί να πιστοποιήσει την ταυτότητα του, ο server αποστέλλει στον client το seed και την τρέχουσα τιμή του i (όπου i = 0 .... N). Ο client επιστρέφει στον server το επόμενο κωδικό μίας χρήσης. Ο server εφαρμόζει την hash function σε αυτόν:pi = f ( f N – i – 1 (s)) = f (pi+1 ),
όπου
pi+1, ο κωδικός που παρέλαβε τελευταίο και pi, ο κωδικός που ήδη έχει επαληθεύσει και βρίσκεται αποθηκευμένος σε ειδικό αρχείο. Με αυτόν την πράξη υπολογίζει τον προηγούμενο κωδικό, ο οποίος είναι αποθηκευμένος στο ειδικό αρχείο και έπειτα συγκρίνει το αποτέλεσμα της πράξης με τον αποθηκευμένο. Εάν το αποτέλεσμα δεν ταιριάζει με το αντίγραφο του προηγούμενου στο αρχείο, τότε η αίτηση δεν γίνεται δεκτή. Εάν ταιριάζει, τότε ο server επιβεβαιώνεται για την ταυτότητα του χρήστη και ενημερώνει το ειδικό αρχείο με τους παραληφθέντες κωδικούς αντικαθιστώντας τον προηγούμενο κωδικό με τον τελευταίο κωδικό. Αυτή η διαδικασία συμβαίνει για κάθε καινούργιο κωδικό μίας χρήσης.Κάποια στιγμή
, επειδή ο αριθμός Ν μειώνεται συνεχώς, το σύστημα θα καταλήξει στον αρχικό μυστικό κωδικό του χρήστη. Ο χρήστης πρέπει να ξανά ξεκινήσει την διαδικασία παραγωγής κωδικών από την αρχή, εάν θέλει να μπορεί να ξανά συνδεθεί στον server. Αυτό γίνεται με την εκτέλεση της εντολής keyinit, μία ειδική έκδοση της εντολής passwd του UNIX, με την οποία μπορεί να γίνει αλλαγή του κωδικού μίας χρήσης, του seed και του αριθμού Ν.Μορφή του Κωδικού Μίας Χρήσης
Ο κωδικός μίας χρήσης που παράγεται σύμφωνα με την διαδικασία που περιγράφτηκε παραπάνω
, έχει μήκος 64 bits. Σε μερικά S/KEY συστήματα, η εισαγωγή του κωδικού μίας χρήσης γίνεται από το ίδιο το πρόγραμμα, αλλά υπάρχουν οι περιπτώσεις όπου ο κωδικός πρέπει να τοποθετηθεί χειροκίνητα. Η εισαγωγή ενός αριθμού 64 bits είναι δύσκολη και επιρρεπής σε λάθη. Το S/KEY σύστημα έχει προβλέψει για την επίλυση αυτού του προβλήματος. Ο κωδικός μίας χρήσης μετατρέπεται σε ακολουθία 6 μικρών Αγγλικών λέξεων (από 1 έως 4 γράμματα). Κάθε λέξη διαλέγεται από ένα λεξικό 2048 λέξεων και αντιστοιχίζεται σε 11 περίπου bits του κωδικού. Το ίδιο λεξικό χρησιμοποιείται από κάθε S/KEY εφαρμογή. Επειδή ο αριθμός των πιθανών φράσεων – κλειδιά είναι 266, τα περιεχόμενα αυτού του λεξικού δεν κρατούνται κρυφά.Παράδειγμα
Το παρακάτω παράδειγμα περιγράφει την διαδικασία σύνδεσης σε ένα
UNIX σύστημα που χρησιμοποιεί την S/KEY τεχνική. Στο παράδειγμα ο χρήστης έχει στην κατοχή του έναν υπολογιστή χειρός (hand-held PC).5.10.4
Η Αδυναμία του S/KEYΤο σύστημα πιστοποίησης ταυτότητας
S/KEY είναι αποτελεσματικό για επιθέσεις παθητικού τύπου. Σε αυτές τις επιθέσεις, η πληροφορία που διασχίζει το δίκτυο δεν αλλοιώνεται με οποιοδήποτε τρόπο, παρά μόνο καταγράφεται για μελλοντική εκμετάλλευση.Στην περίπτωση που η επικοινωνία εμποδίζεται
, εκτρέπεται, διασπάται ή ακόμα αλλοιώνεται, τότε η επίθεση είναι ενεργής μορφή (active attack). Το S/KEY δεν είναι ικανό να προστατέψει εάν δίκτυο από τέτοιες απειλές.5.10.5
Περαιτέρω πληροφορίεςΣτις παρακάτω ηλεκτρονικές σελίδες, ο αναγνώστης μπορεί να βρει περισσότερες λεπτομέρειες για τα συστήματα
One-Time Password:Yahoo! Computers and Internet:Security and Encryption:S/KEY --http://dir.yahoo.com/Computers_and_Internet/Security_and_Encryption/S_KEY/
S/KEY - One Time Password System -- ftp://ftp.bellcore.com/pub/nmh/docs/rfc1760.txt
OTP Extended Responses -- ftp://ftp.bellcore.com/pub/nmh/docs/rfc2243.txt
A One Time Password System -- ftp://ftp.bellcore.com/pub/nmh/docs/rfc2289.txt
5.11 Kerberos Authentication System
5.11.1
ΕισαγωγήΤο
Kerberos σύστημα αναπτύχθηκε από το Massachusetts Institute of Technology (MIT) για να προστατέψει τις δικτυακές υπηρεσίες που παρέχονταν από το Project Athena και βασίζεται στο μοντέλο διανομής κλειδιών (key distribution model) των Needham και Schoeder. Οι εκδόσεις 1 έως 3 χρησιμοποιήθηκαν εσωτερικά από το MIT. Παρ' όλο που σχεδιάσθηκε αρχικά για χρήση με το Project Athena, η 4η έκδοση πέτυχε παγκόσμια υιοθέτηση. Λόγω, όμως, του γεγονότος ότι πολλά περιβάλλοντα είχαν απαιτήσεις που δεν μπορούσε να καλύψει η 4η έκδοση, νέα χαρακτηριστικά εισηγήθηκαν με την ανάπτυξη του Κerberos version 5.0 που απευθυνόταν σε περισσότερες περιπτώσεις. Η τρέχουσα έκδοση είναι η 5.0.Το Ker
beros είναι ένα σύστημα πιστοποίησης ταυτότητας το οποίο αναπτύχθηκε με την ελπίδα αντικατάστασης του συστήματος που καλείται πιστοποίηση βάσει ισχυρισμού (authentication by assertion). Η πιστοποίηση βάσει ισχυρισμού στηρίζεται στην εξής αρχή: όταν ο χρήστης τρέχει ένα πρόγραμμα που απαιτεί πρόσβαση σε μία δικτυακή υπηρεσία, το πρόγραμμα ανακοινώνει στον server ότι λειτουργεί εκ μέρους του συγκεκριμένου χρήστη. Ο server πιστεύει τα στοιχεία που του παρέχει ο client (δηλαδή το πρόγραμμα) και εξυπηρετεί τον χρήστη χωρίς να ζητά άλλες αποδείξεις. Όπως καταλαβαίνουμε, η παρεχόμενη ασφάλεια είναι πολύ χαμηλού επιπέδου έως και ανύπαρκτη.Ένα άλλο σύστημα που χρησιμοποιείται πολύ, είναι η συνοδεία του ονόματος του χρήστη από έναν μυστικό κωδικό. Σε αυτό το εναλλακτικό σχήμα πιστοποίησης ταυτότητας υπάρχουν δύο, τουλάχιστον, διαφορετικά μειονεκτήματα. Πρώτον, αποτελεί χάσιμο χρόνο για τον χρήστη. Δεύτερον και σημαντικότερον, είναι ευάλωτο σε επιθέσεις παθητικού τύπου
(passive attacks), καθ' ότι ο κωδικός διανύει τη δίκτυο μη κρυπτογραφημένος. Το σύστημα Kerberos καλύπτει ένα σημαντικό κενό των συστημάτων πιστοποίησης ταυτότητας.5.11.2
Το Μοντέλο του KerberosΤο Kerberos επιτρέπει στις δικτυακές εφαρμογές να αναγνωρίζουν με ασφάλεια την ταυτότητα του χρήστη που ζητά εξυπηρέτηση, χωρίς να στέλνει στο δίκτυο δεδομένα που μπορούν να επιτρέψουν σε ένα πιθανό εισβολέα να προσποιηθεί ότι είναι ο χρήστης και χωρίς να βασίζεται στις διευθύνσεις των μηχανών του δικτύου. Επίσης, η πιστοποίηση ταυτότητας γίνεται από τον
application server και η επικοινωνία γίνεται εν γνώση της πιθανότητας ότι η διακινούμενη πληροφορία μπορεί να τροποποιηθεί και να αναγνωστεί κατά βούληση. Το Kerberos προαιρετικά προσφέρει ακεραιότητα και απόρρητη συναλλαγή για τα δεδομένα που στέλνονται μεταξύ του client και του application server. Σαν application server εννοούμε τον server που προσφέρει υπηρεσίες όπως mail, ftp, http, telnet.Το σύστημα χρησιμοποιεί μια σειρά από κρυπτογραφημένα μηνύματα για να αποδείξει σε έναν application server ότι ο client λειτουργεί εκ μέρους ενός συγκεκριμένου χρήστη. Για την ανταλλαγή των μηνυμάτων ο Kerberos εκμεταλλεύεται το
IP επίπεδο σε συνδυασμό με το UDP πρωτόκολλο. Ο client αποδεικνύει την ταυτότητα του χρήστη παρουσιάζοντας στον application server την απόδειξη – ticket, η οποία περιέχει ένα προσωρινό κλειδί κρυπτογράφησης που θα χρησιμοποιηθεί για την επικοινωνία μεταξύ του application server και του χρήστη, και το πιστοποιητικό – authenticator, το οποίο αποδεικνύει ότι ο client έχει στην κατοχή του το session key που έχει εκδοθεί για τον χρήστη που ορίζεται στο ticket. Οι αποδείξεις εκδίδονται από ένα αφιερωμένο υπολογιστή που καλείται authentication server (AS). Ο authentication server έχει αποθηκευμένα μυστικά κλειδιά, που καλούνται server keys και τα μοιράζεται με τους application servers. Εγκαθίστανται μέσα από κρυπτογραφημένο κανάλι ή με out-of-band επικοινωνία. Το server key πιστοποιεί την αυθεντικότητα των αποδείξεων – tickets που λαμβάνει ο client και ο server. Επιπλέον, ο AS έχει αποθηκευμένα κλειδιά που αναφέρονται σε κάθε χρήστη και καλούνται user keys. Όλα τα κλειδιά εμπεριέχονται σε βάση δεδομένων. Τέλος να πούμε ότι κάθε ticket έχει περιορισμένη διάρκεια ζωής και όταν το χρονικό αυτό διάστημα περάσει τότε είναι άχρηστο. Περαιτέρω ανταλλαγή μηνυμάτων απαιτεί την έκδοση νέου ticket.Απόκτηση Διαπιστευτηρίων
Οποτεδήποτε ο χρήστης θέλει να έρθει σε επαφή με κάποιον application server, ο client αναλαμβάνει να ξεκινήσει την διαδικασία απόκτησης κατάλληλων διαπιστευτηρίων
(credentials) για τον θα χρησιμοποιηθούν με τον συγκεκριμένο application server. Μια περιληπτική παρουσίαση της συναλλαγής αυτής βλέπουμε παρακάτω:Κατεύθυνση του Μηνύματος |
Τύπος Μηνύματος |
Περιγραφή Μηνύματος |
1. Client a Authentication Server | KRB_AS_REQ | Authentication Request |
2. Client ? Authentication Server | KRB_AS_REP or KRB_ERROR |
Authentication Response |
Failed Authentication Request or Other kind of Failure |
Αίτηση Πιστοποίησης Ταυτότητας
Ο client επικοινωνεί με τον
AS στέλνοντας κατάλληλη αίτηση και αυτός απαντά με τα διαπιστευτήρια. Τα διαπιστευτήρια αποτελούνται από (α) ένα session key που χρησιμοποιείται σαν κλειδί κρυπτογράφησης και (β) ενός ticket για τον application server. Το session key και το ticket διαφέρουν για κάθε application server με τον οποίο επικοινωνεί ο χρήστης. Η αίτηση που στέλνει ο client στον AS καλείται authentication request και περιέχει τα στοιχεία της ταυτότητας του client, το όνομα του application server, την ζητούμενη διάρκεια ζωής του ticket και ένα τυχαίο αριθμό που θα χρησιμοποιηθεί για το ταίριασμα της authentication request με την authentication response. Επίσης, ο client μπορεί να καθορίσει συγκεκριμένες επιλογές σχετικές με την φύση τού ticket (renewable, proxiable, forwardable κτλ).Απάντηση στην Αίτηση Πιστοποίησης Ταυτότητας
Ο
AS ψάχνει στην βάση δεδομένων του για να ανακτήσει τα κλειδιά του χρήστη (user key) και του application server (server key). Παράγει με τυχαίο τρόπο το session key και ελέγχει τα πεδία με τις επιλογές του client όσον αναφορά το ticket. Σε απάντηση, ο AS επιστρέφει το session key, την διάρκεια ζωής του ticket και του session key, τον τυχαίο αριθμό από την αίτηση και το όνομα του application server, όλα αυτά κρυπτογραφημένα με το μυστικό κλειδί – κωδικό του χρήστη (user key). Μαζί αποστέλλει και το ticket που περιέχει τις ίδιες πληροφορίες που αναφέρθηκαν πριν, κρυπτογραφημένες με το server key. Το ticket θα προωθηθεί από τον client στον server σαν μέρος της αίτησης εξυπηρέτησης. Το ticket έχει ρυθμιστεί σύμφωνα με τις επιλογές του client.Πολλά λάθη μπορούν να προκύψουν και η απάντηση στην αίτηση του client να είναι ένα μήνυμα λάθους. Στο μήνυμα λάθους θα περιέχεται κατάλληλος κωδικοποιημένος αριθμός που θα υποδεικνύει το είδος του λάθους.
Όταν ο client παραλάβει την authentication response, κατ' αρχή ελέγχει κατά πόσο ο τυχαίος αριθμός που είχε συμπεριλάβει στην αίτηση ταιριάζει με αυτόν που περιέχεται στο παραληφθέν μήνυμα. Γι' αυτό το σκοπό χρησιμοποιεί το κλειδί του χρήστη (
user key) για να ανακτήσει το session key και το ticket. Αφού επιβεβαιώσει ότι η απάντηση ανταποκρίνεται στην αυθεντική αίτηση, αποκλείονται έτσι την πιθανότητα επίθεσης replay attack, συνεχίζει με την επεξεργασία του υπόλοιπου μηνύματος. Το γεγονός ότι τα περιεχόμενα της authentication response ήταν κρυπτογραφημένα με το κλειδί του χρήστη, αποδεικνύει ότι η απάντηση προέρχεται από τον αληθινό AS, ενώ το γεγονός ότι ο client μπορεί να αποκρυπτογραφήσει τα περιεχόμενα της απάντησης σημαίνει ότι αντιπροσωπεύει τον έγκυρο χρήστη.Εάν το μήνυμα που λάβει ο client είναι μήνυμα λάθους, τότε ερμηνεύει τα περιεχόμενα του και αποφαίνεται για το τι πρέπει να πράξει ώστε να μην επαναληφθεί.
Χρήση Διαπιστευτηρίων
Η ανταλλαγή μηνυμάτων αυτού του σταδίου χρησιμοποιείται από
application servers του δικτύου για να πιστοποιήσουν την ταυτότητα του client και κατ' επέκταση την ταυτότητα του χρήστη, και αντιστρόφως. Ο client πρέπει πρώτα να έχει στην κατοχή του τα διαπιστευτήρια για την συγκεκριμένο application server.Κατεύθυνση του Μηνύματος |
Τύπος Μηνύματος |
Περιγραφή Μηνύματος |
1. Client a Application Server | KRB_AP_REQ | Application Request |
2. Client ? Application Server | KRB_AP_REP or KRB_ERROR |
Application Response |
Failed Application Request or Other kind of Failure |
Η παροχή μόνο του
ticket στην αίτηση εξυπηρέτησης δεν αποτελεί ικανοποιητικό στοιχείο για την απόδειξη της ταυτότητας του client. Το ticket μπορεί να χρησιμοποιηθεί από εισβολέα που έχει καταγράψει την διακινούμενη πληροφορία. Η συνοδεία του ticket με επιπλέον πληροφορία (authenticator) που είναι δεμένη με την ταυτότητα του client, εξασφαλίζει ολοκληρωμένη επαλήθευση. Στο authenticator περιλαμβάνεται ένα checksum. Checksum είναι η hash ή digest value του μηνύματος κρυπτογραφημένη με το session key ή άλλο κλειδί.Αίτηση Εξυπηρέτησης
Μία αίτηση εξυπηρέτησης αποτελείται από δύο μέρη: την απόδειξη – ticket και το πιστοποιητικό – authenticator. Το authenticator περιλαμβάνει την τρέχουσα ώρα, ένα checksum, ένα προαιρετικό κλειδί κρυπτογράφησης και στοιχεία της ταυτότητας του χρήστη όλα κρυπτογραφημένα με το session key. Το προαιρετικό κλειδί κρυπτογράφησης μπορεί να χρησιμοποιηθεί για κρυπτογράφηση των μελλοντικών μηνυμάτων μεταξύ
application server και client.Τα
authenticators δεν μπορούν να ξανά χρησιμοποιηθούν και για κάθε αίτηση εξυπηρέτηση, ακόμα και αν είναι για τον ίδιο application server, ετοιμάζεται καινούργιο. Authenticators που επαναλαμβάνονται θα απορριφθούν από τον application server.Επεξεργασία και Απάντηση στην Αίτηση Εξυπηρέτησης
Η πιστοποίησης της ταυτότητας του client βασίζεται στο πεδίο της τρέχουσας ώρας, στο
authenticator και στο ticket.Όταν ο
application server παραλάβει την application request, αποκρυπτογραφεί το ticket με το server key και παίρνει το session key που περιέχεται στο ticket. Με το session key αποκρυπτογραφεί το autheticator και ανακτά τις πληροφορίες για την ταυτότητα του χρήστη και την ώρα αποστολής της αίτησης. Έπειτα ελέγχει το checksum, παράγοντας το δικό του hash value και συγκρίνοντας το με αυτό που προκύπτει από την αποκρυπτογράφηση του checksum. Τέλος ελέγχει το πεδίο της ώρας συγκρίνοντας την τρέχουσα ώρα με την ώρα που περικλείεται στο authenticator. Εάν διαφέρουν περισσότερο από πέντε λεπτά, το μήνυμα απορρίπτεται και θεωρείται προϊόν επίθεσης επανάληψης (replay attack).Το ότι ο server μπορεί να ανακτήσει το session key επιβεβαιώνει ότι έχει στην κατοχή το server key και άρα αποτελεί τον πραγματικό server. Η κρυπτογράφηση του authenticator με το session key και ο έλεγχος της ώρας αποστολής του authenticator, επαληθεύει ότι την ταυτότητα του χρήστη που αναγράφεται στο ticket.
Προαιρετικά
, εάν υποστηρίζεται αμοιβαία πιστοποίησης ταυτότητας, ο application server πιστοποιεί την ταυτότητα του στον client. Για να το επιτύχει αυτό, ετοιμάζει την application response, όπου τοποθετεί την ώρα αποστολής που περιεχόταν στην αίτηση και την κρυπτογραφεί με το session key. Ο client όταν θα παραλάβει την απάντηση, θα την αποκρυπτογραφήσει με το session key και θα επιβεβαιώσει ότι περιέχει την σωστή ώρα αποστολής της αιτήσεως. Η ενέργεια αυτή θα πιστοποιήσει στον client ότι επικοινώνησε με τον αυθεντικό server.Είναι δυνατόν να προκύψει κάποιο λάθος κατά την επιβεβαίωση της ταυτότητας του client οπότε ο
application server ανταποκρίνεται με μήνυμα λάθους που περιλαμβάνει τον είδος του λάθους.Ακολουθεί απλοποιημένη σχηματική αναπαράσταση της λειτουργίας του Kerberos.
Όπου:
c = ταυτότητα του client,
v = ταυτότητα του application server (αλλιώς και verifier),
n = τυχαίος αριθμός,
Kc,v = session key,
Kc = user key,
Kv = server key Tc,v = ticket,
ts = timestamp, ck = checksum, Ksubsession = προαιρετικό κλειδί κρυπτογράφησης (sub-session key)
Ticket Granting Server (TGS)
Η παραπάνω συναλλαγή μηνυμάτων παρουσιάζει το εξής πρόβλημα: χρησιμοποιείται κάθε φορά που ο χρήστης θέλει να επικοινωνήσει με κάποιον
application server και πρέπει να εισάγει το κλειδί – κωδικό του κάθε φορά που θέλει να αποκρυπτογραφήσει τα διαπιστευτήρια που στέλνονται από τον AS. Μία προφανής λύση του προβλήματος είναι η αποθήκευση του κλειδιού στον client. Αλλά κάτι τέτοιο μπορεί να προσθέσει επιπλέον κινδύνους. Ο εισβολέας που αποκτήσει αντίγραφο του κλειδιού μπορεί να προσποιηθεί ότι είναι ο αυθεντικός χρήστης.Η επίλυση του προβλήματος γίνεται με την εισαγωγή ενός νέου server, του
Ticket Granting Server (TGS). Ο TGS και ο AS είναι ξεχωριστοί server, παρ' όλο που μπορούν να βρίσκονται στο ίδιο μηχάνημα. Ο συνδυασμός τους αποτελεί το Key Distribution Center (KDC). Ο ρόλος του TGS είναι ο εξής: πριν να επικοινωνήσει με κάποιον application server ο client ζητά από τον AS, όπως θα έκανε για οποιοδήποτε application server, για τα απαραίτητα διαπιστευτήρια, ώστε να επικοινωνήσει πρώτα με τον TGS. Το ticket που παίρνει λέγεται ticket-granting ticket (TGT). Μετά την παραλαβή του TGT, ζητά κανονικό ticket για τον application server όχι από τον AS, αλλά από τον TGS. Εξάλλου, η απάντηση του TGS δεν κρυπτογραφείται με το user key αλλά με το session key που περιεχόταν στο TGT. Μέσα στην απάντηση από τον TGS περιέχεται καινούργιο session key που θα χρησιμοποιηθεί για την κρυπτογράφηση της υπόλοιπης ανταλλαγής μηνυμάτων.Το πλεονέκτημα αυτής της μεθόδου είναι ότι ενώ οι κωδικοί – κλειδιά των χρηστών δεν αλλάζουν για μεγάλες χρονικές περιόδους (συνήθως μήνες), ένα
session key από το TGT είναι έγκυρο μόνο για λίγες ώρες (τυπικά 8 ώρες). Σαν συνέπεια, η αποθήκευση των TGT δεν δημιουργεί σημαντικό ρίσκο και ο χρήστης χρησιμοποιεί τον κωδικό του μόνο κατά την διάρκεια του login.Αφού ο client αποκτήσει το νέο session key, η διαδικασία συνεχίζεται όπως πριν, με την αποστολή των διαπιστευτηρίων
στον application server.Ticket Granting Service
Η μορφή του μηνύματος για αίτηση
TGT είναι σχεδόν παρόμοια με την μορφή της αίτησης σε έναν AS. Η κυριότερη διαφορά είναι ότι η κρυπτογράφηση της απάντησης του TGS γίνεται με το session key, ενώ της απάντησης του AS γίνεται με το user key.Κατεύθυνση του Μηνύματος |
Τύπος Μηνύματος |
Περιγραφή Μηνύματος |
1. Client a Ticket Granting Server | KRB_TGS_REQ | TGT Request |
2. Client ? Ticket Granting Server | KRB_TGS_REP or KRB_ERROR |
TGT Response |
Failed TGT Request or Other kind of Failure |
Η αίτηση στον
TGS αποτελείται από πληροφορίες που πιστοποιούν την ταυτότητα του client στον TGS, την ταυτότητα του application server, την ζητούμενη ώρα λήξης του ticket και το TGT κρυπτογραφημένο με το server key του TGS.Η απάντηση περιέχει τα διαπιστευτήρια για τον
application server, κρυπτογραφημένα με το session key που ανέκτησε ο TGS από το TGT. Περιέχεται το καινούργιο session key που θα χρησιμοποιηθεί για την επικοινωνία με τον application server.Σε περίπτωση λάθους, ο
TGS ανταποκρίνεται με μήνυμα λάθους που περιέχει τον κατάλληλο κώδικά λάθους.Το νέο σχήμα που αναπαριστά την ολοκληρωμένη διαδικασία είναι:
Όπου
Tc,tgs = ticket-granting ticket,
Ktgs = TGS server key,
Kc,tgs = session key,
5.11.4
Προστασία ΔεδομένωνΥπάρχουν δύο τρόποι για την προστασία των δεδομένων. Με την εφαρμογή κρυπτογράφησης προστατεύεται το απόρρητο της επικοινωνίας, ενώ με την εφαρμογή
hash αλγόριθμων διαφυλάσσεται η ακεραιότητα της πληροφορίας. Ο πρώτος τρόπος προστασίας παράγει τα μηνύματα τύπου KRB_SAFE και ο δεύτερος τρόπος παράγει τα μηνύματα τύπου KRB_PRIV.Δημιουργία Αδιάβλητων Μηνυμάτων (
KRB_SAFE)Όταν ο χρήστης επιθυμεί να μπορεί να ανιχνεύει τυχών τροποποιήσεις των μηνυμάτων που λαμβάνουν χρησιμοποιεί τα μηνύματα τύπου
KRP_SAFE. Παράγεται το checksum των δεδομένων του χρήστη μαζί με πληροφορίες ελέγχου, με hash αλγόριθμο, μη αντιστρέψιμο. Το αποτέλεσμα του hash αλγόριθμου κρυπτογραφείται με το session key ή άλλο προσυμφωνημένο κλειδί. Οι πληροφορίες ελέγχου περιλαμβάνουν ένα timestamp και έναν ακέραιο αριθμό ακολουθίας, που χρησιμοποιούνται για προσδιορισμό του μηνύματος και καταπολέμηση του φαινομένου της επίθεσης επανάληψης (replay attack).Η εφαρμογή που λαμβάνει τέτοιο μήνυμα πρώτα ελέγχει την ώρα στο πεδίο
timestamp και τον ακέραιο αριθμό ακολουθίας. Αν ο έλεγχος έχει θετικό αποτέλεσμα, υπολογίζεται το checksum των δεδομένων και της πληροφορίας ελέγχου και συγκρίνεται με το παραληφθέν checksum. Σε περίπτωση που η σύγκριση δεν πετύχει, επιστρέφεται στην πηγή του μηνύματος, μήνυμα που προειδοποιεί για την τροποποίηση του μηνύματος.Δημιουργία Απόρρητων Μηνυμάτων (KRB_PRIV)
Χρησιμοποιείται από χρήστες που θέλουν εξασφαλίσουν την ακεραιότητα των ανταλλασσωμένων δεδομένων. Η εφαρμογή του χρήστη συλλέγει τα δεδομένα μαζί με την πληροφορία ελέγχου και τα κρυπτογραφεί με το
sub-session key ή με το session key. Η πληροφορία ελέγχου περιλαμβάνει ένα timestamp και έναν ακέραιο αριθμό ακολουθίας, που χρησιμοποιούνται για προσδιορισμό του μηνύματος και καταπολέμηση του φαινομένου της επίθεσης επανάληψης (replay attack).Όταν μία εφαρμογή λαμβάνει ένα κρυπτογραφημένο μήνυμα πρώτα αποκρυπτογραφεί τα δεδομένα και μετά από επεξεργασίας του αποφαίνεται εάν είναι τροποποιημένα. Έπειτα ελέγχει την ώρα στο πεδίο
timestamp και τον ακέραιο αριθμό ακολουθίας. Δεδομένου ότι και οι δύο έλεγχοι είναι επιτυχής, το μήνυμα θεωρείται ότι έχει μεταδοθεί με ασφάλεια.5.11.4
Αλγόριθμοι ΠροστασίαςΑλγόριθμοι Κρυπτογράφησης
Τα κρυπτογραφημένα περιεχόμενα παράγονται με την εφαρμογή του καθορισμένου αλγόριθμου στα δεδομένα και σε βοηθητικές πληροφορίες που σχετίζονται με το αλγόριθμο. Οι μηχανισμοί κρυπτογράφησης που χρησιμοποιεί ο Kerberos πρέπει να μπορούν να εγγυηθούν την ακεραιότητα των δεδομένων και συνίστανται μέτρα για την προστασία από επιθέσεις λεξικού
(dictionary attacks). Γι' αυτό το σκοπό προστίθονται τα βοηθητικά πεδία και checksum αλγόριθμοι. Οι checksum αλγόριθμοι εφαρμόζονται στα περιεχόμενα προς κρυπτογράφηση και στις βοηθητικές πληροφορίες. Το αποτέλεσμα τους συνοδεύει τα πραγματικά δεδομένα και κρυπτογραφείται μαζί με αυτά.Σε κατάλληλο πεδίο στην αρχή του μηνύματος και εκτός των κρυπτογραφημένων περιεχομένων, δηλώνεται ο μηχανισμός που χρησιμοποιείται. Εδώ πρέπει να πούμε ότι στις αιτήσεις πιστοποίησης ταυτότητας περιλαμβάνεται πεδίο που ανακοινώνει την προτίμηση του client όσον αναφορά τον μηχανισμό κρυπτογράφησης.
Το Kerberos υποστηρίζει τους εξής μηχανισμούς:
Αλγόριθμοι Παραγωγής
ChecksumΟι μηχανισμοί παραγωγής
checksum μπορούν να διακριθούν σε αυτούς που το αποτέλεσμα των hash αλγόριθμων δεν κρυπτογραφείται και σε αυτούς που χρησιμοποιούνται μαζί με αλγόριθμους κρυπτογράφησης για την παραγωγή κρυπτογραφημένων hash values. Συνιστάται το πρώτο είδος μηχανισμών να εφαρμόζεται μόνο σε περιπτώσεις που ακολουθεί κρυπτογράφηση. Το δεύτερο είδος θεωρείται πιο ασφαλές.Το Kerberos υποστηρίζει τους εξής μηχανισμούς παραγωγής
checksum:5.11.5 Cross-Realm Authentication
Μέχρι τώρα θεωρήσαμε ότι το δίκτυο ήταν αρκετά μικρό ώστε ένα
Key Distribution Center, αποτελούμενο από έναν Ticket Granting Server και έναν Authentication Server, να είναι αρκετό για να εξυπηρετήσει τις ανάγκες όλων των μηχανών – client. Όσο μεγαλώνει το δίκτυο όμως, ο αριθμός των αιτήσεων αυξάνεται και η εξυπηρέτηση γίνεται αργή. Είναι πολλές φορές, λοιπόν, προτιμότερο έως και απαραίτητο να διαχωρίζουμε το δίκτυο σε μικρότερα κομμάτια που καλούνται realms, που το καθένα έχει το δικό του TGS και AS. Συνήθως τα όρια των realms ταυτίζονται με τα όρια των εταιριών, αν και αυτό δεν υποχρεωτικό.Η διαδικασία
cross-realm authentication επιτρέπει σε ένα χρήστη να αποδείξει την ταυτότητα του σε έναν application server διαφορετικού realm. Για να επιτευχθεί αυτό ο client ζήτα ένα TGT για τον απομακρυσμένο application server από τον τοπικό AS. Μία τέτοια ενέργεια απαιτεί ο τοπικός AS και ο απομακρυσμένος AS στον οποίο είναι εγγεγραμμένος ο απομακρυσμένος application server να μοιράζονται ένα κλειδί γνωστό ως cross-realm key. Ο client χρησιμοποιεί το αποκτηθέν TGT για να κάνει αίτηση για ticket από τον απομακρυσμένο AS για τον application server του άλλου realm. Ο απομακρυσμένος AS ανιχνεύει ότι το TGT έχει εκδοθεί σε διαφορετικό realm, βρίσκει το cross-realm key που μοιράζεται με τον AS του άλλου realm, επαληθεύει την εγκυρότητα του TGT και τέλος εκδίδει ticket και session key για τον client. Μέσα στο ticket περιέχεται έκτος από το όνομα του client αλλά και το όνομα του απομακρυσμένου realm.Στην 4η έκδοση του Kerberos, ήταν απαραίτητο για έναν
AS να μοιράζεται cross-realm κλειδιά με όλους του απομακρυσμένους AS, γεγονός που δυσχέραινε αφάνταστα την επικοινωνία. Αρκεί να πούμε ότι για πλήρη διασύνδεση απαιτούνταν ανταλλαγή n2 κλειδιών όπου n ο αριθμός των realms.Σε αντίθεση, η 5η έκδοση του Kerberos υποστηρίζει την ιεραρχική διανομή των κλειδιών. Τα
realms κατανέμονται ιεραρχικά και κάθε realm μοιράζεται κλειδιά με τα θυγατρικά του realms και με το γονικό του. Για παράδειγμα το realm ISI.EDU μοιράζεται κλειδί με το realm EDU, το οποίο με την σειρά του μοιράζεται κλειδιά με τα MIT.EDU, USC.EDU και WASHINGTON.EDU. Η πιστοποίηση της ταυτότητας ενός client στο realm ISI.EDU σε ένα application server στο realm MIT.EDU γίνεται με την απόκτηση ενός TGT από τον AS στο ISI.EDU για το EDU, με χρήση αυτού του TGT για την απόκτηση νέου TGT από τον AS του EDU για τον AS του MIT.EDU και τέλος με αποστολή αίτησης στον AS του MIT.EDU ζητώντας ticket για επικοινωνία με τον application server.Η λίστα όλων των
realms τα οποία έχει διασχίσει αίτηση του client καταγράφονται στο τελικό ticket και ο authentication server του απομακρυσμένου realm πραγματοποιεί την τελική απόφαση για το κατά πόσο μπορεί να εμπιστευτεί το μονοπάτι που ακολουθήθηκε. Η επιλογή μικρότερων διαδρομών υποστηρίζεται από το μοντέλο, καθ' ότι μπορούν να βελτιώσουν την απόδοση της διαδικασίας.5.11.6
Αδυναμίες του KerberosΤο Kerberos δεν έχει την δυνατότητα να προστατέψει ένα δίκτυο από κάθε είδους απειλή. Λειτουργεί βάσει συγκεκριμένων υποθέσεων όσον αναφορά την υποκείμενη δικτυακή δομή.
5.11.7
Περαιτέρω ΠληροφορίεςΕπιπλέον πληροφορίες για το Kerberos σύστημα υπάρχουν στις σελίδες:
Kerberos page -- http://www.pdc.kth.se/kth-krb/
The Kerberos Network Authentication Service -- http://gost.isi.edu/info/kerberos/
Kerberos Mailing List -- http://www.mit.edu:8008/menelaus.mit.edu/kerberos/
Kerberos Reference Page -- http://www.contrib.andrew.cmu.edu/~shadow/kerberos.html
5.12 RADIUS & TACACS+
5.12.1
ΕισαγωγήΚαθώς τα δίκτυα εξαπλώνονται πέρα από το φυσικό χώρο των επιχειρήσεων η έννοια της ασφάλειας γίνεται πιο σημαντική και σύνθετη
. Οι εταιρίες πρέπει να προστατέψουν τα δίκτυά και τους δικτυακούς τους πόρους από απομακρυσμένους χρήστες που μπαίνουν παράνομα στο σύστημα αποκτώντας πρόσβαση με κάποιο τρόπο. Τα συστήματα της Cisco χρησιμοποιούν μία στρατηγική που είναι γνωστή σαν Πιστοποίηση, Έγκριση και Παρακολούθηση (authentication, authorization, accounting-AAA) για να εκτελέσει τις λειτουργίες της πιστοποίησης της ταυτότητας του χρήστη, τη παροχή ή όχι πρόσβασης και την παρακολούθηση των κινήσεων των απομακρυσμένων χρηστών αντίστοιχα. Στα σημερινά δίκτυα χρησιμοποιούνται τα πρωτοκολλά0 TACACS+ (Terminal Access Controller Access Control System plus) και RADIUS (Remote Access Dial-In User Service) για τη παροχή ΑΑΑ λύσεων. Η υποστήριξη των RADIUS και TACACS+ δίνει τη δυνατότητα στη Cisco να προτείνει μία πολύ ευέλικτη και αποδοτική ΑΑΑ λύση.5.12.2 Ανάλυση των Απαιτήσεων Ασφάλειας
(ΑΑΑ)Authentication
- ΠιστοποίησηΗ Πιστοποίηση είναι η διαδικασία με την οποία καθορίζεται ποιος έχει πρόσβαση στο
LAN. Απλές μέθοδοι έγκρισης χρησιμοποιούν μια βάση δεδομένων που αποτελείται από usernames και passwords στον server πρόσβασης. Πιο εξελιγμένα συστήματα χρησιμοποιούν μεθόδους όπως το TACACS και το Kerberos.Ωστόσο, το ότι πιστοποιείται η ταυτότητα κάποιου χρήστη δε σημαίνει ότι αυτός έχει αποκτήσει πρόσβαση σε όλες τις υπηρεσίες του δικτύου—είναι πιθανό να του ζητηθεί εκ νέου κάποιος κωδικός από κάποια συγκεκριμένη υπηρεσία UNIX, NetWare ή AppleShare. Ένας καλός NAS server υποστηρίζει μία πλειάδα επιλογών πιστοποίησης.
Authorization -
ΈγκρισηΗ Έγκριση είναι η ικανότητα του περιορισμού των δικτυακών υπηρεσιών σε διαφορετικούς χρήστες βάση μιας δυναμικά εφαρμοζόμενης λίστας πρόσβασης
(access list) που μερικές φορές αναφέρεται και ως "προφίλ χρήστη" και που βασίζεται στο δίδυμο username/password. Αυτό το χαρακτηριστικό είναι σημαντικό για δύο λόγους: βοηθάει στη μείωση της έκθεσης του εσωτερικού δικτύου στον έξω κόσμο και απλοποιεί τη μορφή του δικτύου για τον τελικό χρήστη που αγνοεί τις τεχνικές του λεπτομέρειες.Το χαρακτηριστικό της έγκρισης επιτρέπει στους χρήστες να κινούνται
. Κινούμενοι και προσωρινοί χρήστες (χρήστες με φορητά από ξενοδοχεία και τηλεργαζόμενοι με modems και ISDN συνδέσεις από το σπίτι) θέλουν να συνδεθούν στη πιο κοντινή τοπική σύνδεση διατηρώντας ωστόσο όλα τα προνόμιά των LAN τους.Ο Διαχειριστής του δικτύου
(Network Administrator) πρέπει να είναι σε θέση να περιορίζει τη πρόσβαση στο δίκτυο για όλα τα πρωτόκολλα και τις υπηρεσίες (Telnet, IP, IPX και AppleTalk) όσο οι χρήστες συνδέονται (dial-in) από τη την ίδια "πηγή" modem (pool). Η διαδικασία έγκρισης με τη χρήση access list για κάθε χρήστη δεν περιορίζεται σε συγκεκριμένα interfaces αλλά ανατίθεται δυναμικά στη συγκεκριμένη πόρτα στην οποία συνδέεται ο χρήστης. Για παράδειγμα όταν ο χρήστης Α συνδέεται στη πόρτα 1, μπορεί να δει τα υπο-δίκτυα 1, 2, 3 και τις AppleTalk ζώνες bldg D, bldg E και bldg F. Όταν ο χρήστης 2 συνδέεται στη πόρτα 1, τότε το προφίλ του τον περιορίζει στο υπο-δίκτυο 1 και στη ζώνη bldg D.Από τη στιγμή που το
NAS υποστηρίζει πολύ περισσότερους απομακρυσμένους χρήστες από τις φυσικές γραμμές που έχει στη διάθεσή του κάθε χρήστης ή group, μπορεί να τηλεφωνήσει στο ίδιο περιστρoφικό κέντρο και να πάρει πρόσβαση στο δίκτυο. Αυτή η access list βασίζεται στο username και σαν τέτοια κάθε NAS μπορεί να υποστηρίξει χιλιάδες χρήστες στη βάση δεδομένων που έχει για τα usernames και passwords.Accounting
—ΠαρακολούθησηΗ παρακολούθηση είναι το τρίτο κύριο συστατικό ενός ασφαλούς συστήματος
. Οι διαχειριστές του συστήματος μπορεί από το να θέλουν να χρεώσουν τους πελάτες τους για την ώρα που παρέμειναν συνδεδεμένοι στο δίκτυο μέχρι να παρακολουθήσουν ύποπτες προσπάθειες σύνδεσης στο δίκτυο.5.12.3 Το Πρωτόκολλο
RADIUSTo πρωτόκολλο RADIUS αναπτύχθηκε από την Livingston Enterprises ως ένας server πρόσβασης, πιστοποίησης και παρακολούθησης. Από τότε έχει υλοποιηθεί από διάφορους άλλους πωλητές και έχει κερδίσει ευρεία υποστήριξη ανάμεσα ακόμα και στους παροχείς υπηρεσιών (ISPs).
Το RADIUS είναι βασισμένο στο client/server μοντέλο. Οι servers πρόσβασης (NAS-Νetwork Access Servers) λειτουργούν σαν clients του RADIUS. Ο client είναι υπεύθυνος για την προώθηση της πληροφορίας του χρήστη στον αρμόδιο RADIUS server και την εκτέλεση των εντολών που θα του σταλούν πίσω από το server.
O RADIUS server ή daemon παρέχει υπηρεσίες πιστοποίησης και παρακολούθησης σε έναν ή περισσότερους RADIUS clients δηλαδή συσκευές ΝΑS. Οι RADIUS servers είναι υπεύθυνοι για το να λαμβάνουν τις αιτήσεις σύνδεσης των χρηστών, να τους πιστοποιούν και τέλος να επιστρέφουν όλη τη πληροφορία με τις απαιτούμενες ρυθμίσεις για τους clients ώστε να δοθούν οι αιτούμενες υπηρεσίες στους χρήστες. Ο RADIUS server πρόσβασης είναι συνήθως ένας αφιερωμένος σταθμός εργασίας συνδεδεμένος με το δίκτυο.
Λειτουργία Πρωτοκόλλου
Η επικοινωνία μεταξύ ενός
NAS και ενός RADIUS server βασίζεται στο User Datagram Protocol (UDP). Το σχήμα 1 δείχνει τη μορφή ενός πακέτου RADIUS.Οι δημιουργοί του RADIUS επέλεξαν το UDP ως το πρωτόκολλο μεταφοράς για τεχνικούς λόγους. Γενικά το RADIUS θεωρείται μία υπηρεσία άνευ συνδέσεως(connectionless). Θέματα που σχετίζονται με τη διαθεσιμότητα του server, την επανεκπομπή και τα timeouts διαχειρίζονται από διάφορες συσκευές του RADIUS και όχι από το πρωτόκολλο μεταφοράς.
Σχήμα 1:RADIUS Packet Format from RFC 2058
Τυπικά μία αίτηση για
login αποτελείται από μία αίτηση (Access Request) από το NAS server στον RADIUS server και μια απάντηση, θετική ή αρνητική, του τελευταίου (Access-Accept ή Access-Reject). Το πακέτο αίτησης που στέλνει ο NAS server περιέχει το username, το κρυπτογραφημένο password, την IP διεύθυνση του NAS server και τη πόρτα. Η μορφή της αίτησης παρέχει επιπλέον πληροφορίες για τον τύπο της σύνδεσης την οποία ο χρήστης θέλει να ξεκινήσει. Για παράδειγμα εάν η αίτηση παρουσιάζεται σε mode χαρακτήρων τότε το "Service-Type = Exec-User" αλλά εάν παρουσιάζεται σε mode PPP πακέτου τότε το "Service-Type = Framed User" και "Framed-Type = PPP"Όταν ο RADIUS server λαμβάνει μια αίτηση από κάποιον NAS, ψάχνει σε μια βάση δεδομένων για το username που υπάρχει στην αίτηση. Εάν το username δεν υπάρχει στη βάση δεδομένων τότε είτε ένα τυπικό προφίλ φορτώνεται και ο RADIUS server αποστέλλει μήνυμα αποδοχής (Αccess-Accept) είτε αποστέλλει μήνυμα απόρριψης (Access-Reject) το οποίο μπορεί να συνοδεύεται και από κάποιο επεξηγηματικό μήνυμα του λόγου απόρριψης.
Στην περίπτωση που το username βρεθεί και το password είναι σωστό ο RADIUS server επιστρέφει μία Access-Accept απάντηση η οποία περιλαμβάνει μια λίστα των χαρακτηριστικών των ρυθμίσεων που πρέπει να χρησιμοποιηθούν από τη μεριά του NAS για τη σύνδεση. Τυπικές παράμετροι περιλαμβάνουν το τύπο της υπηρεσίας (shell ή framed), το τύπο του πρωτοκόλλου, την IP διεύθυνση που θα δοθεί στο χρήστη (στατική ή δυναμική), την access list που πρέπει να εφαρμοστεί ή τη στατική διεύθυνση που πρέπει να εγκατασταθεί στον πίνακα δρομολογίων του NAS. Το σχήμα 2 δείχνει τη διαδικασία του RADIUS login και authentication.
Σχήμα 2:RADIUS Login and Authentication Process
Χαρακτηριστικά Διαδικασίας Πιστοποίησης και Έγκρισης
Η πιστοποίηση είναι η πιο απαιτητική πλευρά της ασφάλισης απομακρυσμένων χρηστών λόγω της δυσκολίας που σχετίζεται με τη σίγουρη αναγνώριση του χρήστη
. Για τη διασφάλιση της ταυτότητας ενός απομακρυσμένου χρήστη το πρωτόκολλο RADIUS υποστηρίζει πολλές μεθόδους πιστοποίησης περιλαμβανομένων των Password Authentication Protocol (PAP), Challenge Handshake Authentication Protocol (CHAP) και token cards. Προς το παρόν όλες οι εκδόσεις του RADIUS απαιτούν να τρέχει ένας server για τα token cards επιπρόσθετα του RADIUS server. Όταν βγει στην αγορά η έκδοση υποστήριξης του RADIUS, CiscoSecure, θα περιέχει ΟΕΜ υποστήριξη για CryptoCard token κάρτες και έτσι δεν θα είναι απαραίτητος επιπλέον server για τα token cards.Ενεργοποίηση της Πιστοποίησης, Έγκρισης και παρακολούθησης RADIUS
Για κάθε τύπο
login που χρειάζεται πιστοποίηση και έγκριση, πρέπει να εισαχθεί μια γραμμή εντολών. Αυτή η γραμμή είναι η λίστα που χρησιμοποιείται για login μέσω του RADIUS εκτός αν υπάρχει κάποια άλλη λίστα που έχει ρυθμιστεί. Η παρακολούθηση μπορεί να χρησιμοποιηθεί ανεξάρτητα από τις άλλες διαδικασίες και επιτρέπει την αποστολή δεδομένων στην αρχή και στο τέλος των συνδέσεων καταδεικνύοντας τη ποσότητα των πόρων που χρησιμοποιήθηκαν κατά τη σύνδεση. Ένας ISP θα μπορούσε να χρησιμοποιήσει το RADIUS για να καλύψει ειδικές απαιτήσεις ασφάλειας και χρέωσης.5.12.4 Το πρωτόκολλο
TACACS+
Το TACACS+ επιτρέπει σε ένα ξεχωριστό server πρόσβασης (τον TACACS+ server) να παρέχει τις υπηρεσίες πιστοποίησης, έγκρισης και παρακολούθησης με ανεξάρτητο τρόπο. Κάθε υπηρεσία μπορεί να συνδυαστεί με τη δική της βάση δεδομένων ή μπορεί να χρησιμοποιήσει τις άλλες υπηρεσίες που είναι διαθέσιμες στο δίκτυο.
Η φιλοσοφία σχεδίασης του
TACACS+ είναι ο καθορισμός μιας μεθόδου για την διαχείριση όχι όμοιων server πρόσβασης (NAS) από ένα και μόνο σύνολο διαχειριστικών υπηρεσιών όπως μια βάση δεδομένων. Ένας NAS παρέχει πρόσβαση σε έναν χρήστη, σε ένα δίκτυο ή υποδίκτυο ή και σε διασυνδεδεμένα δίκτυα.Το TACACS+ αποτελείται από τρία κύρια μέρη: την υποστήριξη του πρωτοκόλλου από servers πρόσβασης και δρομολογητές, τα χαρακτηριστικά του πρωτοκόλλου και την κεντρική βάση δεδομένων. Παρόμοια με μια εσωτερική βάση δεδομένων, το TACACS+ υποστηρίζει τα παρακάτω τρία απαιτούμενα χαρακτηριστικά ενός ασφαλούς συστήματος.
Authentication
- ΠιστοποίησηΤο
TACACS+ προωθεί πολλούς τύπους πληροφοριών που αφορούν τα usernames και passwords. Αυτή η πληροφορία κρυπτογραφείται με τον αλγόριθμο MD5. Το TACACS+ μπορεί να προωθήσει πληροφορία για τους παρακάτω τύπους passwords (κωδικών): ARA, SLIP, PAP, CHAP, Telnet, μέχρι και τον νέο τύπο KCHAP με επέκταση. Αυτό επιτρέπει στους χρήστες να χρησιμοποιήσουν το ίδιο username/password για διαφορετικά πρωτόκολλα.Authorization -
ΈγκρισηΤο
TACACS+ παρέχει ένα μηχανισμό με τον οποίο μπορεί να πει στον access server ποια access list χρησιμοποιεί ο χρήστης που είναι συνδεδεμένος στη πόρτα 1. Ο TACACS+ server και η τοποθεσία της πληροφορίας username/password καθορίζουν την access list μέσω της οποίας ο χρήστης φιλτράρεται. Οι access list(s) βρίσκονται στον access server. Ο TACACS+ server απαντά σε ένα username με μια απάντηση αποδοχής και με έναν αριθμό της λίστας πρόσβασης ο οποίος προκαλεί και την εφαρμογή της λίστας.Αccounting - Παρακολούθηση
Το
TACACS+ παρέχει πληροφορίες παρακολούθησης μέσω σε μια βάση δεδομένων μέσω TCP για τη διασφάλιση ενός ασφαλούς και ολοκληρωμένου ημερολογίου.Το τμήμα παρακολούθησης του TACACS+ περιλαμβάνει τη δικτυακή διεύθυνση του χρήστη, το username, το πρωτόκολλο που ενεργοποιήθηκε, η υπηρεσία που επιχειρήθηκε να χρησιμοποιηθεί, ημέρα και ώρα και το πακέτο-φίλτρο που ενεργοποίησε το ημερολόγιο. Για συνδέσεις Telnet, περιέχει επιπλέον τις πόρτες πηγής και προορισμού, τις ενέργειες που πραγματοποιήθηκαν και τον τύπο συναγερμού.
Οι πληροφορίες χρέωσης περιλαμβάνουν τον χρόνο σύνδεσης, τη ταυτότητα του χρήστη, την τοποθεσία από την οποία συνδέθηκε, το χρόνο εκκίνησης και το χρόνο λήξης. Αναγνωρίζει επίσης το πρωτόκολλο που χρησιμοποιείται από το χρήστη και μπορεί να περιλαμβάνει εντολές που πρέπει να τρέξουν εάν το τελευταίο είναι το Telnet ή το exec. Οι μελλοντικές εκδόσεις του TACACS+ θα περιλαμβάνουν πρόσθετα στοιχεία παρακολούθησης όπως η ανανέωση του χρόνου, που θα στέλνει νέα στοιχεία για τον χρόνο σύνδεσης κάθε x λεπτά. Αυτό το χαρακτηριστικό επιτρέπει στους παροχείς υπηρεσιών Internet να χρεώνουν το πελάτη ακόμα και αν ο access server επανεκκινηθεί και έτσι χάσει τον αρχικό χρόνο εκκίνησης.
Το πρωτόκολλο παρέχει αρκετές πληροφορίες ώστε ένας server να μπορεί να παράγει ρουτίνες ανίχνευσης εισβολέων, να δίνει αναφορές στατιστικών, αριθμούς πακέτων και αριθμό bytes.
Οι χρήστες επιδιώκουν την αποφυγή χρήσεως του ίδιου
username/password έτσι ώστε οι πελάτες να μην μοιράζονται το λογαριασμό τους με άλλους. Αν και η τελική απόφαση λαμβάνεται από τον server, το πρωτόκολλο είναι αρκετά ικανό να δώσει ικανά στοιχεία ανίχνευσης πολλαπλών εμφανίσεων του ίδιου κωδικού.5.12.5 Σύγκριση
RADIUS & TACACS+Το
RADIUS είναι απλώς ένα πρωτόκολλο που παρέχει λειτουργίες πιστοποίησης και έγκρισης για υπηρεσίες μέσω τηλεφωνικών γραμμών. Ένα άλλο ευρέως διαδεδομένο πρωτόκολλο είναι το TACACS+ το οποίο είναι η τελευταία εξέλιξη του Cisco TACACS πρωτοκόλλου. Αν και αυτά τα πρωτόκολλα παρέχουν παρόμοια λειτουργικότητα έχουν αρκετές σημαντικές διαφορές.Μηχανισμός Μεταφοράς
Η πιο ουσιαστική διαφορά μεταξύ των
RADIUS και TACACS+ είναι το δικτυακό πρωτόκολλο μεταφοράς που το καθένα χρησιμοποιεί. Το RADIUS χρησιμοποιεί το UDP για την ανταλλαγή πληροφοριών μεταξύ των NAS και των server πρόσβασης, ενώ το TACACS+ χρησιμοποιεί το TCP.Το
TCP είναι ένα πρωτόκολλο σύνδεσης connection oriented, ενώ το UDP προσφέρει best effort υπηρεσία (καλύτερης δυνατής σύνδεσης). Το RADIUS χρησιμοποιεί επιπρόσθετες προγραμματιζόμενες μεταβλητές για να ελέγξει θέματα όπως:προσπάθειες επανεκπομπής και timeouts έτσι ώστε να αντισταθμίσει τα κενά που αφήνει το UDP σε αυτούς τους τομείς. Το TACACS+ χρησιμοποιώντας το TCP δεν χρειάζεται αυτές τις επιπλέον μεταβλητές διότι τα θέματα σύνδεσης διαχειρίζονται προφανώς από το TCP.Η χρησιμοποίηση του
TCP παρέχει μια ξεχωριστή υπηρεσία αναγνώρισης, μέσω ενός TCP πακέτου αναγνώρισης, που χρησιμοποιείται για την επιβεβαίωση της λήψης μιας αίτησης προς το server πρόσβασης εντός συγκεκριμένου χρόνου. Αυτή η διαδικασία λαμβάνει χώρα ανεξάρτητα από τη συμφόρηση που πιθανόν να υπάρχει στο server πρόσβασης.Με τη χρησιμοποίηση των
TCP keep alives (ένδειξη "ζωντανής" σύνδεσης) μπορούν να ανιχνευθούν οι "πτώσεις" των servers. Επιπλέον μπορούν να διατηρηθούν πολλές ταυτόχρονες συνδέσεις και μηνύματα χρειάζεται να αποστέλλονται μόνο σε servers που είναι γνωστό ότι τρέχουν.Εμπιστευτικότητα
Το
RADIUS κρυπτογραφεί μόνο τον κωδικό στο πακέτο Access-Request (αίτησης πρόσβασης) από τον client στον server. Το υπόλοιπό πακέτο μένει ανέπαφο. Άλλες πληροφορίες όπως το username, υπηρεσίες έγκρισης και παρακολούθησης μπορούν να αιχμαλωτιστούν από κάποιον τρίτο κάνοντας έτσι τα δίκτυα RADIUS πιθανούς στόχους για τους hackers που χρησιμοποιούν μεθόδους υποκλοπής μιας ολόκληρης σύνδεσης και επανάληψής της. Εξαιτίας αυτού του μειονεκτήματος τα δίκτυα RADIUS πρέπει να σχεδιάζονται έτσι που να ελαχιστοποιούν τη πιθανότητα εκδήλωσης επίθεσης.Το
TACACS+ κρυπτογραφεί ολόκληρο το πακέτο και αφήνει εκτός κρυπτογράφησης μόνο την επικεφαλίδα TACACS+ . Μέσα σε αυτήν υπάρχει ένα πεδίο που δείχνει εάν το πακέτο είναι ή όχι κρυπτογραφημένο. Η συνήθης διαδικασία κρυπτογραφεί ολόκληρο το πακέτο για ασφαλέστερη επικοινωνία.Διανομή Λειτουργιών
Το πρωτόκολλο
RADIUS συνδυάζει τις διαδικασίες της πιστοποίησης και της έγκρισης. Τα πακέτα Access-Accept (αποδοχής της αίτησης πρόσβασης) που αποστέλλονται από τον RADIUS server στο client περιέχουν όλη τη πληροφορία που χρειάζεται η έγκριση, κάνοντας έτσι το διαχωρισμό των λειτουργιών της πιστοποίησης και της έγκρισης δύσκολο. Η χρήση του RADIUS πρέπει να προτιμάται όταν απαιτείται απλή πιστοποίηση και έγκριση ενός βήματος, όπως συμβαίνει με τα δίκτυα των περισσότερων παροχέων υπηρεσιών (ISPs).Το
TACACS+ χρησιμοποιεί την αρχιτεκτονική των τριών άλφα (ΑΑΑ) της Cisco, η οποία διαχωρίζει τις διαδικασίες πιστοποίησης, έγκρισης και παρακολούθησης. Το setup επιτρέπει ξεχωριστές λύσεις πιστοποίησης που μπορούν να χρησιμοποιούν το TACACS+ για έγκριση και παρακολούθηση. Για παράδειγμα είναι δυνατό να χρησιμοποιηθεί το Kerberos για πιστοποίηση και το TACACS+ για έγκριση και παρακολούθηση. Αφού ένας server πρόσβασης στο δίκτυο (NAS) πιστοποιηθεί από τον Kerberos server, ζητάει πληροφορίες έγκρισης από τον TACACS+ server χωρίς να είναι αναγκαία η επαναπιστοποίηση. Αυτό γίνεται όταν ο NAS πληροφορεί τον TACACS+ server για το γεγονός ότι έχει πιστοποιηθεί επιτυχώς από το Kerberos και τότε ο server παρέχει την πληροφορία έγκρισης.Κατά τη διάρκεια μιας σύνδεσης και εάν επιπλέον έλεγχος πιστοποίησης είναι αναγκαίος, ο
server πρόσβασης ελέγχει με τη βοήθεια του TACACS+ εάν ο χρήστης έχει πάρει άδεια χρήσης μιας συγκεκριμένης εντολής. Αυτό το χαρακτηριστικό παρέχει μεγαλύτερο έλεγχο των εντολών που μπορούν να εκτελεστούν στον server πρόσβασης την ίδια στιγμή που αποδεσμεύει το μηχανισμό πιστοποίησης από τον μηχανισμό έγκριση. Για τους παραπάνω λόγους το TACACS+ είναι πιο κατάλληλο για περιβάλλον σύνθετου δικτύου όπου χρησιμοποιείται σχήμα πολλαπλών πιστοποιήσεων. Αυτό το σενάριο χρησιμοποιούνται κυρίως σε δίκτυα μεγάλων επιχειρήσεων.Εξαιτίας της συνεχούς εξέλιξης των προϊόντων ασφάλειας
, που είναι μάλιστα ανταγωνιστικά μεταξύ τους, η αρχιτεκτονική θα πρέπει να είναι βαθμωτή ώστε να διαχωρίζει τα τρία άλφα (ΑΑΑ) που αποτελούν μαζί τη λύση στο πρόβλημα της και να ανοίγει τις πόρτες σε μελλοντικές επιλογές.Υποστήριξη Πολλαπλών Πρωτοκόλλων
Το
RADIUS υποστηρίζει ελάχιστα πρωτόκολλα εκτός του TCP/IP. Για παράδειγμα δεν υποστηρίζει τα:Τα παραπάνω πρωτόκολλα υποστηρίζονται από το
TACACS+.Η
Cisco με το Cisco IOS παρέχει τη δυνατότητα επιλογής του πρωτοκόλλου που ο χρήστης θέλει να χρησιμοποιήσει. Οι Cisco servers πρόσβασης είναι μοναδικοί επειδή μπορούν να υλοποιήσουν τόσο το RADIUS όσο και το TACACS+.5.12.6
Περαιτέρω ΠληροφορίεςLinks για επιπλέον πληροφορίες: http://www.cisco.com
5.13 Firewalls
5.13.1 Εισαγωγή
Οι μεγάλοι οργανισμοί, είτε είναι εκπαιδευτικοί είτε είναι εμπορικοί, έχουν ως στόχο την μαζική και ενιαία προστασία των υπολογιστών του εσωτερικού τους δικτύου από το εξωτερικό
. Ο απλούστερος τρόπος για να προστατέψει κανείς ένα δίκτυο υπολογιστών είναι η φυσική του απομόνωση. Μπορούμε να αποφύγουμε τα προβλήματα που προκύπτουν από τη συμμετοχή στο δίκτυο μη συνδέοντας τους υπολογιστές στο Internet και αποφεύγοντας την παροχή υπηρεσιών μέσω dial-in modems. Κανένας από εξωτερικό δίκτυο, όποιο και αν αυτό είναι, δεν μπορεί να επιτεθεί σε κάποιο δίκτυο το οποίο δεν έχει κάποιου είδους φυσική σύνδεση με το εξωτερικό του περιβάλλον. Αν και αυτή η πολιτική αγνοεί εντελώς τη ζημιά που μπορεί να προκαλέσει στο δίκτυο κάποιος "από μέσα" είναι γεγονός ότι έχει υιοθετηθεί από πολλές εταιρίες και οργανισμούς.Σε μερικές περιπτώσεις είναι όντως προς το συμφέρον ενός οργανισμού η απομόνωσή του από εξωτερικά δίκτυα όταν μάλιστα έχει λίγα να κερδίσει από τη σύνδεσή του με αυτά και πολλά να χάσει
. Ωστόσο τα τελευταία χρόνια η ανάπτυξη του Internet έχει κάνει την φυσική απομόνωση κάτι πολύ δύσκολο να το αποφύγει κάποιος. Οι εργαζόμενοι έχουν την ανάγκη να χρησιμοποιήσουν υπηρεσίες όπως το e-mail τα Usenet news και τέλος το WWW. Επιπλέον, οι ίδιοι οι οργανισμοί θέλουν να προβληθούν στο Διαδίκτυο. Για να καλύψουν λοιπόν τις ανάγκες τους τόσο για ασφάλεια όσο και για σύνδεση στο Internet τα διάφορα δίκτυα επιλέγουν τη λύση των firewalls. Οι firewalls είναι δυνατά εργαλεία τα οποία όμως δεν υποκαθιστούν σε καμία περίπτωση άλλα μέτρα ασφάλειας και για το λόγο αυτό χρησιμοποιούνται επιπρόσθετα αυτών.5.13.2 Ορισμός
Οι
firewalls δίνουν τη δυνατότητα δημιουργίας μιας ζώνης ασφαλείας μεταξύ των εσωτερικών δικτύων οργανισμών τα οποία είναι απολύτως απομονωμένα από εξωτερικά δίκτυα, όπως το Internet και αυτών που είναι μόνιμα συνδεδεμένα σε αυτό. Οι firewalls τοποθετούνται ανάμεσα στο εσωτερικό και στο εξωτερικό δίκτυο ενός οργανισμού και παρέχουν έναν απλό τρόπο για να ελέγχουν την ποσότητα και το είδος των δεδομένων που διακινούνται μεταξύ των δύο δικτύων.Ο όρος firewall προέρχεται από την βιομηχανία κατασκευών. Όταν χτίζονται σπίτια εξοπλίζονται με firewalls - ειδικούς τοίχους οι οποίοι αντιστέκονται στη φωτιά. Εάν αρπάξει φωτιά κάποιο σπίτι μπορεί να καεί ολοκληρωτικά μόνο αυτό διότι όλο το άλλο κτιριακό συγκρότημα προφυλάσσεται από τους firewalls οι οποίοι θα αποτρέψουν ή θα επιβραδύνουν το καταστροφικό έργο της φωτιάς μέχρι να έρθει κάποια βοήθεια
Η ίδια φιλοσοφία μπορεί να εφαρμοστεί για την προστασία τοπικών δικτύων (LANs) από εξωτερικές επιθέσεις. Εάν χρησιμοποιηθεί στο εσωτερικό ενός οργανισμού μπορεί να ελαττώσει τη ζημιά :κάποιος μπορεί να "καταλάβει" ένα σύνολο μηχανών αλλά όχι τις υπόλοιπες που προστατεύονται από firewalls. Εάν τέλος, υψωθεί ανάμεσα στο εσωτερικό δίκτυο και το Internet προστατεύει τις μηχανές του δικτύου από οποιαδήποτε εξωτερικά προερχόμενη επίθεση. Οι firewalls έχουν νόημα διότι πάντα υπάρχει κάποια φωτιά που καίει κάπου στο Internet.
5.13.3 Πολιτικές
FirewallsΗ ουσιαστική λειτουργία ενός
firewall είναι ο περιορισμός της ανεξέλεγκτης ροής πληροφοριών μεταξύ δύο δικτύων. Για να εγκαταστήσουμε έναν firewall πρέπει να ορίσουμε τα είδη των δεδομένων που επιτρέπουμε να περάσουν και αυτά που απαγορεύουμε. Αυτό καλείται "Ορισμός Πολιτικής για τον firewall". Μετά τον ορισμό κάποιας πολιτικής πρέπει να δημιουργηθούν οι κατάλληλοι μηχανισμοί που θα τους θέσουν σε εφαρμογή.Υπάρχουν δύο βασικές στρατηγικές στο καθορισμό πολιτικής για
firewalls:Default Permit -
Default Deny - με αυτή τη στρατηγική περιγράφουμε συγκεκριμένα πρωτόκολλα τα οποία μπορούν να περάσουν από τον firewall και συγκεκριμένοι υπολογιστές που μπορούν να διακινήσουν δεδομένα και να επικοινωνήσουν με το εσωτερικό δίκτυο—όλοι οι άλλοι υπολογιστές και πρωτόκολλα απορρίπτονται.
Υπάρχουν τόσο πλεονεκτήματα όσο και μειονεκτήματα και για τις δύο στρατηγικές
. Το κυριότερο πλεονέκτημα της Default Permit είναι η ευκολία με την οποία μπορούν να γίνουν ρυθμίσεις. Το μόνο που έχει να κάνει κανείς είναι να απαγορεύσει τη χρήση των "επικίνδυνων" πρωτοκόλλων και βασίζεται επιπλέον στην ετοιμότητα του διαχειριστή του firewall να μπλοκάρει νέα επικίνδυνα πρωτόκολλα που αναπτύσσονται ή ανακαλύπτονται.Με την
Default Deny απλά ενεργοποιούνται πρωτόκολλα κατά βούληση—μόνο αυτά που είναι αναγκαία για την επιτέλεση συγκεκριμένων διεργασιών που είναι γνωστό από πριν ότι θα γίνουν. Κάθε άλλο πρωτόκολλο δεν περνάει τον firewall.Τόσο η
Default Permit όσο και η Default deny δεν αποτελούν πανάκεια—και με τις δύο πολιτικές μπορεί κανείς να δημιουργήσει έναν firewall ο οποίος θα είναι ασφαλής ή και όχι επιτρέποντας ή αποτυγχάνοντας να απαγορεύσει τα "επικίνδυνα" πρωτόκολλα.5.13.4 Χρήσεις των
FirewallsΟι
firewalls είναι ένα καλό όπλο μιας μελετημένης πολιτικής άμυνας. Η όλη ιδέα είναι η τοποθέτηση πολλαπλών επιπέδων προστασίας μεταξύ των μηχανών που θέλουμε να προστατέψουμε και των πιθανών απειλών. Υπάρχουν ορισμένες οφθαλμοφανείς εξωτερικές απειλές οπότε θα πρέπει να παρεμβάλλεται κάποιος firewall μεταξύ αυτών και του υπό προστασία εσωτερικού δικτύου.Επειδή οι
firewalls τοποθετούνται στη διαχωριστική γραμμή μεταξύ εσωτερικού και εξωτερικού δικτύου, μπορεί να χρησιμοποιηθεί και για άλλες λειτουργίες εκτός από τον έλεγχο πρόσβασης. Για παράδειγμα:5.13.5 Η Ανατομία ενός
FirewallΌλοι οι
firewalls αποτελούνται ουσιαστικά από δύο ειδών μέρη:Chokes
Συσκευές επικοινωνίας ή υπολογιστικά συστήματα που σαν στόχο έχουν τον περιορισμό της ροής των πακέτων μεταξύ των δικτύων
. Τα chokes υλοποιούνται συνήθως από routers αν και αυτό δεν είναι αναγκαίο. Η χρήση του όρου "choke" έχει παρθεί από τα ηλεκτρονικά—μια συσκευή που φέρει μεγάλη αντίσταση σε συγκεκριμένους τύπους μόνο σημάτων.Gates
Ειδικά σχεδιασμένα προγράμματα, συσκευές ή υπολογιστές μέσα στην περίμετρο του
firewall οι οποίες λαμβάνουν συνδέσεις από έξω και τις διαχειρίζονται κατάλληλα. Το σωστό, από άποψη ασφάλειας, είναι να μην υπάρχουν λογαριασμοί χρηστών σε μηχανήματα που δρουν ως Gates. Στα Gate μηχανήματα μπορούν να τρέξουν τα παρακάτω είδη προγραμμάτων:Network Client Software
Προγράμματα όπως τα
ftp, telnet και mosaic. Ο πιο απλός τρόπος παροχής περιορισμένης πρόσβασης στο Internet, στους χρήστες είναι να τους επιτρέπεται να μπαίνουν στο μηχάνημα που λειτουργεί σαν Gate και να τρέχουν δικτυακό λογισμικό απ' ευθείας. Αυτή η τεχνική έχει το μειονέκτημα ότι πρέπει ο διαχειριστής του συστήματος να δημιουργήσει είτε ξεχωριστούς λογαριασμούς στους είτε έναν που να τον μοιράζονται.Proxy server
Ο
Proxy είναι ένα πρόγραμμα το οποίο προσποιείται ότι είναι κάποιο άλλο. Στην περίπτωση των firewalls ο Proxy είναι ένα πρόγραμμα που προωθεί μια αίτηση, μέσω του firewall, από το εσωτερικό δίκτυο στο εξωτερικό.Network Servers
Μπορούμε, επίσης, να τρέξουμε δικτυακούς
servers στο Gate μηχάνημα. Για παράδειγμα μπορούμε να εγκαταστήσουμε έναν SMTP server όπως το sendmail ή το smap έτσι ώστε να είμαστε σε θέση να λαμβάνουμε e-mail. Το σίγουρο είναι ότι απαγορεύεται να τρέξουμε κάποιον HTTP server στο μηχάνημα που λειτουργεί ως Gate.Πολλοί δικτυακοί
servers μπορούν να δράσουν σαν Proxies. Mπορούν να το κάνουν διότι υλοποιούν απλά μοντέλα αποθήκευσης και προώθησης μηνυμάτων που δεν μπορούν οι ίδιοι να επεξεργαστούν. Παραδείγματα τέτοιων είναι οι SMTP (διότι τα e-mail μηνύματα προωθούνται αυτόματα), ΝΝΤP (τοπική αποθήκευση νέων), ΝΤP (ο χρόνος διατηρείται τοπικά) και DNS (οι διευθύνσεις κρατούνται τοπικά).5.13.6 Αρχιτεκτονικές
FirewallsDual—ported (
δύο πορτών)Οι πρώτοι Internet firewalls ήταν υπολογιστές UNIX εφοδιασμένοι με δύο δικτυακές πόρτες. Με αυτή τη διάταξη ο υπολογιστής που τρέχει το λειτουργικό σύστημα UNIX λειτουργεί και σαν Choke και σαν Gate. Οι υπηρεσίες παρέχονται στους εσωτερικούς χρήστες με έναν από τους παρακάτω δύο τρόπους:
Για να διασφαλίσουμε τη λειτουργία σαν
Choke ο υπολογιστής δεν θα πρέπει να προωθεί πακέτα από το εξωτερικό δίκτυο στο εσωτερικό και αντίστροφα. Σε ορισμένα UNIX συστήματα ρυθμίζεται αυτή η λειτουργία ενώ σε άλλα όχι τόσο εύκολα οπότε και θα πρέπει να ελέγχονται εξονυχιστικά για την περίπτωση που εξακολουθούν να προωθούν πακέτα από το ένα interface τους στο άλλο.Packet Filtering (
Φιλτράρισμα Πακέτων)Απλός
Firewall με ένα μόνο ChockΈνας απλός
firewall μπορεί να "χτιστεί" από ένα και μόνο choke. Για παράδειγμα μερικοί οργανισμοί χρησιμοποιούν την τεχνική φιλτραρίσματος πακέτων η οποία διατίθεται στους περισσότερους δρομολογητές για να μπλοκάρουν TCP και UDP πακέτα για ορισμένους τύπους υπηρεσιών.Ο προγραμματισμός του
Choke είναι ευθύτατος:Αυτό το σύνολο ρυθμίσεων είναι πολύ διαδεδομένο στο σημερινό
Internet. Πολλοί οργανισμοί χρησιμοποιούν ένα και μόνο Choke (κάποιον δρομολογητή) σαν firewall για ολόκληρο τον οργανισμό.Η διαδικασία φιλτραρίσματος πακέτων έχει αρκετά πλεονεκτήματα
:Η διαδικασία φιλτραρίσματος πακέτων έχει, ωστόσο και αρκετά μειονεκτήματα
:Επιπρόσθετα αυτών των μειονεκτημάτων υπάρχουν και μερικές σχεδιαστικές αδυναμίες
:Ένα Chock, Μία Gate:Αρχιτεκτονική "Screened Host"
Μπορούμε να χτίσουμε ένα πιο ασφαλή
firewall κάνοντας χρήση ενός Chock και μιας Gate. Η Gate (Πύλη) είναι ένας ειδικά επιλεγμένος υπολογιστής του δικτύου όπου τρέχουν οι mail servers και κάποια Proxy προγράμματα (WWW και anonymous FTP servers πρέπει να τρέχουν έξω από τους firewalls). To Choke μπορεί να είναι ένας δρομολογητής με δύο κάρτες-interfaces. Για παράδειγμα ένας δρομολογητής με δύο Ethernet interfaces μπορεί να συμμετέχει και στα δύο δίκτυα (εσωτερικό—εξωτερικό). Εναλλακτικά ένας δρομολογητής με μία Ethernet και ένα interface υψηλής ταχύτητας μπορεί να χρησιμοποιηθεί τόσο ως Gate όσο και ως ο συνδετικός κρίκος κάποιου οργανισμού με τον ISP του και άρα με το Internet.Ο προγραμματισμός αυτού του σχήματος είναι κάπως πιο πολύπλοκος
.External Choke—Εξωτερικό Choke:
Gate:
Με αυτήν την αρχιτεκτονική το
Choke ρυθμίζεται έτσι ώστε να επιτρέπει τη ροή πακέτων μόνο μεταξύ του εξωτερικού δικτύου και της Gate—Πύλης. Εάν οποιοσδήποτε υπολογιστής του εσωτερικού δικτύου επιθυμεί να επικοινωνήσει με κάποιον του εξωτερικού τότε η επικοινωνία θα περάσει από ειδικό proxy πρόγραμμα που τρέχει στην Gate. Παρόμοια, οι χρήστες του εξωτερικού δικτύου πρέπει να συνδεθούν στη Gate για να επικοινωνήσουν με υπολογιστή στο εσωτερικό δίκτυο.Δύο Chokes και Μία Gate: Αρχιτεκτονική "Screened Subnet"
Για μεγαλύτερο βαθμό ασφάλειας, μερικά
sites έχουν υλοποιήσει αρχιτεκτονικές που περιλαμβάνουν δύο Chokes. Σε αυτή την αρχιτεκτονική το εξωτερικό Choke και η Gate προγραμματίζονται όπως και στην προηγούμενη περίπτωση. Το δεύτερο Choke αποτελεί ενός είδους ασφαλιστική δικλείδα σε περίπτωση που ο επιτιθέμενος καταφέρει να μπει στην Gate και να αποκτήσει τον έλεγχό της. Σε αυτή την περίπτωση το εσωτερικό Choke είναι αυτό που απαγορεύει στον επιτιθέμενο να εκτοξεύσει επιθέσεις προς άλλους υπολογιστές του εσωτερικού δικτύου χρησιμοποιώντας σαν βάση τους την Gate—Πύλη.Ο προγραμματισμός είναι παρόμοιος με αυτόν του απλού
Choke:Gate:
Internal Choke—Εσωτερικό Choke
:Πολλαπλές
Gates—ΠύλεςΑντί να χρησιμοποιούμε μια και μόνο
Gate μπορούμε να χρησιμοποιήσουμε πολλαπλές—μία για κάθε πρωτόκολλο. Αυτή η προσέγγιση έχει το πλεονέκτημα ότι κάνει τις πύλες πιο εύκολες στη διαχείριση. Ωστόσο αυξάνει τον αριθμό των μηχανών που πρέπει να παρακολουθούνται για ύποπτη δραστηριότητα. Μια απλούστερη προσέγγιση θα ήταν η ύπαρξη μιας και μόνο Πύλης με ταυτόχρονη δημιουργία πολλών διαφορετικών server στο εσωτερικό δίκτυο για συγκεκριμένες υπηρεσίες όπως mail, Usenet, WWW κτλ.Εσωτερικοί Firewalls
Αντί να βάζουμε όλους τους υπολογιστές του δικτύου σε ένα και μόνο τοπικό δίκτυο, μπορούμε να τους χωρίσουμε σε πολλά μικρότερα ανεξάρτητα τοπικά δίκτυα τα οποία μπορούνε να επικοινωνούν μέσω δρομολογητών ή μηχανών
gateways ή και firewalls. Εναλλακτικά μπορούν να επικοινωνήσουν μέσω ανεξάρτητων διασυνδέσεων (links) στο Internet χρησιμοποιώντας ένα κατάλληλο σύστημα κρυπτογράφησης.Οι εσωτερικοί firewalls έχουν μεγάλη σημασία για το εσωτερικό δίκτυο ενός οργανισμού. Δεν υπάρχει κανένας λόγος, χρήστες από διαφορετικούς τομείς της εταιρίας να έχουν πρόσβαση σε πόρους συναδέλφων τους που βρίσκονται σε τομείς μακριά από το αντικείμενο εργασίας τους. Έτσι με έναν εσωτερικό firewall ενισχύουμε την ασφάλεια του συστήματος.
Ο στόχος είναι η εγκατάσταση ανεξάρτητων εσωτερικών δικτύων έτσι ώστε να κατακερματίζεται η πιθανότητα πρόκλησης ολικής καταστροφής από την κατάληψη ενός εξ αυτών ακριβώς εξαιτίας του κατακερματισμένης αρχιτεκτονικής τους
.Ένας
firewall που είναι σχεδιασμένος για τέτοιου είδους χρήση μοιάζει πολύ με αυτόν που χρησιμοποιείται για την προστασία από εξωτερικές επιθέσεις. Ωστόσο, επειδή η ίδια ομάδα διαχείρισης μπορεί να είναι υπεύθυνη για πολλά από τα δίκτυα ενός οργανισμού υπάρχει μεγάλος "πειρασμός" στο να γίνει κάποιου είδους μοιρασιά πληροφοριών και υπηρεσιών μέσω ενός εσωτερικού firewall τη στιγμή που τέτοιες πληροφορίες θα έπρεπε να μπλοκάρονται.Γενικά ακολουθούμε τις παρακάτω γραμμές κατά την εγκατάσταση ανεξάρτητων εσωτερικών δικτύων
:Οι εσωτερικοί
firewalls έχουν πολλά πλεονεκτήματα:Χτίσιμο ενός
FirewallΓια πολλά χρόνια το
"χτίσιμο" ενός firewall ήταν μια αυστηρά μη αυτοματοποιημένη υπόθεση. Μία επανάσταση για το συγκεκριμένο τομέα αποτέλεσε η είσοδος αρκετών firewall toolkits στην αγορά με έτοιμους proxies και clients που βοηθούν στο χτίσιμο ενός firewall. Πιο πρόσφατα ένας αριθμός εταιριών άρχισε να προσφέρει ολοκληρωμένες firewall λύσεις.Σήμερα κυκλοφορούν τέσσερις βασικοί τύποι firewalls:
Αυτοί οι firewalls φτιάχνονται από δρομολογητές που προγραμματίζονται να περνούν κάποιους τύπους πακέτων και να μπλοκάρουν κάποιους άλλους
Αυτοί απαιτούν τη χρήση ειδικών διαδικασιών ή ειδικών δικτυακών
clients οι οποίοι να μπορούν να επικοινωνούν με τους proxiesΑυτοί οι firewalls ξαναγράφουν τα περιεχόμενα των IP πακέτων κατά τη κίνησή τους από το εσωτερικό δίκτυο προς το Internet και αντίστροφα. Από "έξω" όλες οι επικοινωνίες φαίνεται ότι περνάνε μέσα από κάποιον proxy που υπάρχει στον firewall. Από "μέσα" ο firewall είναι διάφανος.
Αυτοί οι firewalls αντικαθιστούν μια απλή Ethernet με ένα ζεύγος από Ethernet interfaces. H screen δεν έχει IP διεύθυνση. Αντ' αυτού κάθε Ethernet interface "βλέπει" όλα τα πακέτα που μεταδίδονται στο segment του και προωθεί τα κατάλληλα πακέτα στα άλλα interfaces βασιζόμενη σε ένα προκαθορισμένο σύνολο κανόνων. Επειδή ακριβώς η screen δεν έχει IP διεύθυνση είναι πολύ ανθεκτική σε επιθέσεις που προέρχονται από το δίκτυο. Για ακόμα μεγαλύτερη ασφάλεια η screen πρέπει να προγραμματίζεται μέσω κάποιας σειριακής γραμμής ή δισκέτας αν και είναι δυνατή η δημιουργία μιας screen στην οποία να μιλάμε απευθείας στο Ethernet interface της μέσω κάποιου πρωτοκόλλου διαφορετικού από το IP.
5.13.9 Περαιτέρω Πληροφορίες
Links για επιπλέον πληροφορίες: http://www.cisco.com
5.14 PIX Firewall & Cisco IOS Firewall
5.14.1
ΕισαγωγήΟ PIX Firewall είναι ένα πρωτοποριακό όργανο ασφάλειας που προσφέρει την υψηλότερη απόδοση ανάμεσα σε όλα τα συστήματα της βιομηχανίας (σύμφωνα με τα KeyLabs). Κάνοντας χρήση proxy συστημάτων πιστοποιεί τους χρήστες έναντι των RADIUS ή TACACS+ σε πολύ υψηλές ταχύτητες. Το λογισμικό της NetPartner, WebSENSE το οποίο διαχειρίζεται την πρόσβαση στο internet έχει ενσωματωθεί στο PIX Firewall με σκοπό να μπλοκάρει την εκτός ορίων πρόσβαση σε αμφισβητήσιμο ή αντιπαραγωγικό περιεχόμενο. Ο PIX Firewall κάνει χρήση hardware για κρυπτογράφηση και επιτάχυνση και υποστηρίζει το standard IPSec. Έτσι ο PIX Firewall καθίσταται η ιδανική λύση για το ηλεκτρονικό εμπόριο που αναπτύσσεται στο internet και για τη δημιουργία υψηλών αποδόσεων Virtual Private Network—VPNs δικτύων.
Ο Cisco IOS Firewall είναι μία συγκεκριμένη λύση ασφάλειας που "κάθεται" πάνω στο πιο διαδεδομένο λειτουργικό σύστημα δικτύων, το Cisco Internetwork Operating System (Cisco IOS Software). Ο Cisco IOS Firewall αυξάνει τις υπάρχουσες δυνατότητες του Cisco IOS λογισμικού όπως τη πιστοποίηση και τη κρυπτογράφηση με τελευταίας λέξης τεχνολογία. Αυτή η δήλωση περιλαμβάνει σταθερό φιλτράρισμα σε επίπεδο εφαρμογής, άμυνα έναντι δικτυακών επιθέσεων όπως "πλημμύρα" sync, ανίχνευση πορτών, διείσδυση πακέτων, μπλοκάρισμα της Java και VPNs βασισμένα στο Cisco IOS IPSec. Ο Cisco IOS Firewall παρέχει δυνατότητα δρομολόγησης πολλαπλών πρωτοκόλλων διότι τρέχει σε Cisco IOS βασισμένους δρομολογητές και κατά συνέπεια απολαμβάνει όλα εκείνα τα χαρακτηριστικά που αυτοί μπορούν και προσφέρουν.
5.14.2 Σχηματική Αναπαράσταση του Τρόπου Ασφάλισης των Δικτύων από τους
PIX και Cisco IOS Firewalls
5.14.3 Δυνατότητες Αιχμής των PIX και Cisco IOS Firewalls
Τόσο η σειρά
Cisco PIX Firewall όσο και η Cisco IOS Firewall εφαρμόζουν τεχνολογία αιχμής. Ο πίνακας 1 δίνει μία άποψη των κοινών εξελιγμένων χαρακτηριστικών και των δύο Firewall.
Πίνακας 1
Χαρακτηριστικά και Πλεονεκτήματα των
PIX και Cisco IOS Firewalls
Χαρακτηριστικά |
Πλεονεκτήματα |
Ισχυρό φιλτράρισμα πακέτων |
Παρέχει ισχυρή ασφάλεια ερευνώντας σχολαστικά τα πακέτα δεδομένων και διατηρώντας κρίσιμες διευθύνσεις και αριθμούς πορτών σε πίνακα |
IPSec Virtual Private Network |
Μειώνει το επικοινωνιακό κόστος δίνοντας τη δυνατότητα σε απομακρυσμένους χρήστες να έχουν πρόσβαση μέσω internet |
Πιστοποίηση ταυτότητας και Έγκριση Dial-in Επικοινωνιών |
Πιστοποίηση των χρηστών έναντι βιομηχανικών standards όπως τα TACACS+ και RADIUS |
Μετάφραση Δικτυακών Διευθύνσεων (ΝΑΤ) |
Κρύβει το εσωτερικό δίκτυο από το εξωτερικό για αυξημένη ασφάλεια |
Φιλτράρισμα Περιεχομένων |
Μπλοκάρει εχθρικά Java applets |
Διαχείριση |
Διαχείριση βασισμένη σε GUI που επιτρέπει τον κεντρικό έλεγχο των firewall και των πολιτικών ασφάλειας. Εργαλεία δημιουργίας αναφορών, στατιστικών στοιχείων και άλλων λειτουργιών παρακολούθησης |
Πλεονασμός /Μετάπτωση |
Σε περίπτωση πτώσης όλη η κίνηση δρομολογείται σε κάποια backup μονάδα |
Ασφάλεια για Servers που τρέχουν Δημόσιες Εφαρμογές |
Τρίτο interface για το PIX ή το Cisco IOS που παρέχει απομονωμένο δίκτυο για δημόσια προσβάσιμους servers όπως Web, e-mail, FTP ή DNS |
Εκτεταμένη Υποστήριξη Multimedia περιλαμβανομένων των:Microsoft NetShow, White Pine CU-SeeMe, RealNetworks, RealAudio and RealVideo, Xing StreamWorks, VDONet VDO Live, Vxtreme WebTheatre, VocalTech Internet Phone, Microsoft NetMeeting, Intel Internet VideoPhone, White Pine Meeting Point |
Οι πιο πρόσφατες media εφαρμογές διαθέσιμες χωρίς την ανάγκη ρυθμίσεων κάθε workstation |
Ανίχνευση Εισβολής και Παρεμπόδισή της |
Ανίχνευση και παρεμπόδιση επίθεσης denial-of-service και άμυνα απέναντι πλημμύρας sync, ανίχνευση πορτών, διείσδυση πακέτων |
Κρυπτογράφηση |
Κρυπτογραφεί δεδομένα για ιδιωτικές επικοινωνίες πάνω από ανασφαλή δίκτυα |
Αν και τα δύο συστήματα είναι πολύ καλά, έχουν κάποιες διαφορές που τα κάνουν καταλληλότερα ή όχι για συγκεκριμένες εργασίες
.5.14.4 Οδηγός Προτίμησης
Πότε Διαλέγουμε τον PIX Firewall
Απαιτήσεις Πελάτη |
Πλεονέκτημα του PIX |
Αφιερωμένη Συσκευή στην Ασφάλεια |
Προσφέρει αφιερωμένα όργανα με ειδικό hardware και software για βέλτιστη προστασία από το firewall |
Πολύ Γρήγορη Κρυπτογράφηση και VPNs |
Hardware-Επιταxυνόμενη κρυπτογράφηση 56-bit DES και 3DES, IPSec VPNs |
Υψηλή Internet Δραστηριότητα |
Παρέχει δυνατότητα 65. 536 ταυτόχρονων συνδέσεων και περίπου 170 Mbps κίνησης κάνοντάς το ιδανικό για multimedia πρωτόκολλα, κρυπτογράφηση και μεγάλους αριθμούς χρηστών |
Πιστοποίηση και Έγκριση |
O PIX Firewall χρησιμοποιεί τα RADIUS και TACACS+ για πιστοποίηση |
Φιλτράρισμα URL |
Φιλτράρει URLs σε συνδυασμό με το WebSENSE της NetPartner |
Πότε Διαλέγουμε τον
Cisco IOS FirewallΑπαιτήσεις Πελάτη |
Πλεονέκτημα του Cisco IOS |
Λύση πακέτο όσον αφορά το συνδυασμό δυνατής ασφάλειας και δρομολόγησης πολλαπλών πρωτοκόλλων |
Προσφέρει εξελιγμένα χαρακτηριστικά firewall όπως φιλτράρισμα πακέτων, μπλοκάρισμα της Java, κρυπτογράφηση, πιστοποίηση, IPSec VPNs και δρομολόγηση πολλαπλών πρωτοκόλλων—όλα σε ένα πακέτο |
Aνταποδοτική προστασία τόσο των intranets όσο και των extranets |
Είναι πιο οικονομικό για sites που δεν έχουν αυξημένες απαιτήσεις και άρα ανάγκη του PIX σαν προϊόν εξειδικευμένο |
Ικανότητα λειτουργίας σε διαφορετικά Cisco IOS περιβάλλοντα με διαφορετικές απαιτήσεις απόδοσης |
Δυνατότητα ρύθμισης της απόδοσης στο επίπεδο που επιλέγουμε σε όλο το φάσμα μοντέλων . |
Εύκολη εκπαίδευση και συντήρηση |
Οι εταιρίες που χρησιμοποιούν ήδη το Cisco IOS βρίσκουν το Cisco IOS Firewall πολύ γνώριμο στο στήσιμο και τη λειτουργία του |
Επιπλέον ασφάλεια ενσωματωμένη στη δικτυακή υποδομή |
Για τις εταιρίες με αυξημένες ανάγκες ασφάλειας μπορεί να εφαρμοστεί σε διάφορα σημεία της δικτυακής τους υποδομής |
5.14.5
Περαιτέρω ΠληροφορίεςΟ αναγνώστης μπορεί να βρει επιπλέον πληροφορίες στο
site http://www.cisco.com5.15 Cisco NetSonar
5.15.1
Περιγραφή ΠροϊόντοςΤο
Cisco NetSonar είναι ένα προϊόν Ανίχνευσης Αδυναμιών Ασφάλειας και Χαρτογράφησης Δικτύου. Αποτελεί το πρώτο τέτοιο προϊόν που συνδυάζει τεχνολογία αιχμής στην ανίχνευση αδυναμιών ασφάλειας, ευέλικτη ανάλυση δεδομένων και είναι φιλικότατο προς το χρήστη τόσο στη λειτουργία του όσο και στους όρους της άδειάς του. Στοχεύει στην αγορά των Διαχειριστών Συστημάτων (Network Administrators) σε επιχειρησιακά περιβάλλοντα όπως επίσης αποτελεί εργαλείο και για συμβούλους ασφάλειας δικτύων. Αυτό που κάνει είναι να ψάχνει στα βάθη ενός δικτύου για τρύπες στην ασφάλειά του. Χαρτογραφεί γρήγορα όλα τα συστήματα στο δίκτυο, τα λειτουργικά τους συστήματα και τις υπηρεσίες τους και τέλος τις σχετιζόμενες με αυτά αδυναμίες όσον αφορά το βαθμό ασφάλειας που προσφέρουν. Επιπλέον ερευνά ενεργά για να διαπιστώσει τις όποιες τρύπες στο σύστημα συγκεντρώνοντας αναλυτικές πληροφορίες διασφαλίζοντας την ακρίβεια των δεδομένων. Με την παρουσίαση των αποτελεσμάτων, που γίνεται με ένα πολύ διαμορφώσιμο τρόπο – ανάλογα με τις ανάγκες του ενδιαφερόμενου – το NetSonar δίνει την ευκαιρία στο χρήστη του να αποκτήσει μοναδική αίσθηση για τη λειτουργία και την ασφάλεια του συστήματός του. Το NetSonar αναγνωρίζει ακόμα και λειτουργικά συστήματα που δεν είναι συμβατά με το έτος 2000.Για να κατανοήσουμε τη λειτουργία και τελικά τη χρησιμότητα του
NetSonar θα πρέπει να εξετάσουμε που επεμβαίνει και τι κάνει.5.15.2
Ανίχνευση Αδυναμιών ΑσφάλειαςΗ ανίχνευση αδυναμιών στην ασφάλεια ενός δικτύου είναι διαδικασία κατά την οποία γίνεται αναγνώριση του δικτυακού εξοπλισμού και των κινδύνων για την ασφάλεια του δικτύου που προκύπτουν από τη χρήση του
. Αυτή η πληροφορία μπορεί να χρησιμοποιηθεί για την αξιολόγηση του επιπέδου ασφάλειας και την ελαχιστοποίηση των απειλών προτού κάποιος τρυπήσει τη δικτυακή δομή. Το πρόβλημα με πολλά από τα σημερινά εργαλεία ανίχνευσης είναι το ότι βρίσκουν τις τρύπες μόνο εάν τους δίνεται η δυνατότητα να διεισδύσουν φυσικά στο δίκτυο. Ατυχώς, καταστάσεις όπως καθυστερήσεις του δικτύου, λάθη στις ρυθμίσεις ή και προγραμματιστικά λάθη μπορούν να εμφανίσουν εικονική εικόνα για την ασφάλεια του δικτύου αφού μία επίθεση μπορεί να αποτύχει εξαιτίας τους χωρίς όμως αυτό να σημαίνει ότι η τρύπα δεν υφίσταται. Το NetSonar προσπαθεί να αναγνωρίσει πιθανές καταστάσεις αστάθειας και να δώσει τη δυνατότητα στο χρήστη να αποφασίσει ο ίδιος εάν και σε ποίο επίπεδο διείσδυσης θέλει να φτάσει.5.15.3 Θέση του
NetSonar στη Πολιτική Ασφάλειας της Cisco
Το προϊόν NetSonar είναι συστατικό στοιχείο της πολιτικής ασφάλειας που ακολουθεί η Cisco στα απ' άκρη σε άκρη δίκτυά της. Η στρατηγική της στο τομέα της ενεργούς παρακολούθησης περιλαμβάνει τόσο ανίχνευση αδυναμιών όσο και ανακάλυψη εισβολής, οπότε αντιλαμβανόμαστε τη σημασία του NetSonar για το πρώτο μέρος αυτή της πολιτικής.
5.15.4 Μεθοδολογία – Τρόπος Λειτουργίας
Το
NetSonar ανιχνεύει τις τρύπες στην ασφάλεια ενός δικτύου μέσω μιας διαδικασίας τεσσάρων βημάτων:5.15.5 Τι Ανιχνεύει το NetSonar
Συλλέγει και αναλύει πληροφορίες για
:5.15.6 Επίδραση των
Firewall στη Λειτουργία του NetSonarΟι
Firewalls μπορεί να μειώσουν τον αριθμό των συστημάτων που το NetSonar μπορεί να ανιχνεύσει. Εάν υπάρχει firewall μεταξύ του NetSonar και του δικτύου στο οποίο προσπαθεί να πραγματοποιήσει έρευνα τότε το πιθανότερο είναι ότι δεν θα δει πίσω από το firewall υποθέτοντας ότι έχουν γίνει οι σωστές ρυθμίσεις σε αυτό. Για το λόγο αυτό δεν θα μπορέσει να συγκεντρώσει όλες τις απαραίτητες πληροφορίες για τη σύναξη πλήρους αναφοράς για το εξεταζόμενο δίκτυο. Βεβαίως όταν εφαρμοσθεί πίσω από το firewall τότε θα συλλέξει ότι πληροφορία του λείπει και αφορά την τοπολογία που προστατεύει το firewall. Επιπλέον με το NetSonar μπορεί να ελεγχθεί και το ίδιο το firewall.5.15.7 Επίδραση του NetSonar στη Λειτουργία του Συστήματος
Το
NetSonar κατά τη λειτουργία και τις διάφορες φάσεις ανίχνευσης, επηρεάζει το φόρτο εργασίας του δικτύου σε κάποιο μικρό ποσοστό. Κυρίως κατά τη διάρκεια της χαρτογράφησης του δικτύου που συντελείται με τη διαδικασία του ping τη συλλογή banner—σημαιών και τις φάσεις ενεργούς ανίχνευσης. Ο φόρτος που επιβάλλει το NetSonar στο δίκτυο είναι συνάρτηση της διάρκειας και του βαθμού διείσδυσης που επιτυγχάνει στο δίκτυο. Το NetSonar επιτρέπει στους χρήστες να προγραμματίζουν ανιχνεύσεις—έρευνες εκτός ωρών αιχμής ή σε τέτοιο επίπεδο ώστε να μην έχουν επίδραση στο δίκτυο.5.15.8 NetSonar και Java
Το
NetSonar έχει προγραμματισθεί σε Java η οποία είναι γλώσσα που έχει ενσωματώσει την έννοια της ασφάλειας στο κώδικά της. Τα προβλήματα με την Java περιορίζονται στο download καταστροφικού κώδικα και πουθενά αλλού. Οι διαδικασίες Αναφοράς, Ανάλυσης και Παρουσίασης έχουν γραφεί σε Java αλλά δεν απαιτούν ιδιαίτερα δικαιώματα. Έτσι εάν υπάρχει περίπτωση τρύπας στη Java το NetSonar δεν θα επηρεαστεί ούτε περισσότερο ούτε λιγότερο από οποιαδήποτε άλλη εφαρμογή του συστήματος.5.15.9 Βάση Δεδομένων Ασφαλείας Δικτύου (NSDB)
Οι χρήστες του
NetSonar κερδίζουν μοναδική γνώση για αδυναμίες που συνιστούν προβλήματα ασφάλειας χρησιμοποιώντας τη Βάση Δεδομένων Ασφαλείας Δικτύου (NSDB). Αυτή η εκτεταμένη βάση δεδομένων:Η Βάση Δεδομένων Ασφάλειας Δικτύου βρίσκεται υπό τη διαρκή παρακολούθηση και υποστήριξη του
Cisco Countermeasure Research Team έτσι ώστε να αναβαθμίζεται διαρκώς με τη συνεχή προσθήκη νέων μηχανισμών ελέγχου ασφάλειας.5.15.10 Περίληψη Χαρακτηριστικών και Πλεονεκτημάτων
Χαρακτηριστικά |
Πλεονεκτήματα |
Ευέλικτη άδεια χρήσης προϊόντος |
|
Έλεγχος Αδυναμιών Ασφάλειας και Χαρτογράφηση Δικτύου |
|
Ανακάλυψη Hosts/Υπηρεσιών |
|
Αναγνώριση και Επαλήθευση Αδυναμιών του Δικτύου |
|
Εξέταση και Παρουσίαση των Δεδομένων |
|
Ευέλικτες Αναφορές |
|
Συνήθεις ,καθοριζόμενοιαπό το χρήστη ,κανόνες |
|
Δομημένη Γλώσσα Ασφάλειας |
|
Εκσυγχρονισμοί Αδυναμιών Συστήματος σε Σταθερή Βάση |
|
Εύκολο στη Χρήση Περιβάλλον Εργασίας Χρήστη |
|
Βάση Δεδομένων Ασφάλειας Δικτύου |
|
5.15.11 Ελάχιστες Απαιτήσεις Συστήματος
NetSonar
για NT 2.0:NetSonar για Solaris x86 1.0.1
NetSonar για SPARC Solaris 1.0.1
5.15.12 Έλεγχοι Ανάλυσης Αδυναμιών Ασφάλειας
5.15.13 Άδειες Χρήσης Λογισμικού
Επιχειρήσεις ή τελικοί χρήστες – διατίθεται βάση βαθμίδων
IP διευθύνσεωνΣύμβουλοι ή Παροχείς Υπηρεσιών – διαθέσιμοι σε ετήσια βάση συμβολαίου
5.15.14 Περαιτέρω Πληροφορίες
Links για επιπλέον πληροφορίες: http://www.cisco.com
5.16 Cisco NetRanger
Το σύστημα NetRanger είναι μια διαδικασία η οποία ανιχνεύει και αντιδρά σε κάθε παραβίαση ή κατάχρηση που γίνεται στην πολιτική ασφάλειας ενός δικτύου. Τοποθετώντας σε κατάλληλα επιλεγμένα σημεία του δικτύου αισθητήρες, παρακολουθείται η κίνηση και συγκρίνεται με γνωστά σχέδια ή υπογραφές που αντιπροσωπεύουν ύποπτη δραστηριότητα, κατάχρηση του συστήματος ή ακόμα και επίθεση σε αυτό. Ο αισθητήρας μπορεί να στείλει σήματα προειδοποίησης – κινδύνου στον υπεύθυνο, σε ένα σύστημα διαχείρισης ασφάλειας, και υπό συγκεκριμένες συνθήκες να πάρει τη πρωτοβουλία να στείλει εντολές αντιμετώπισης της κατάστασης κατευθείαν στον δικτυακό εξοπλισμό, όπως σε routers και firewalls, τροποποιώντας τις ρυθμίσεις τους έτσι ώστε να μην επιτρέψουν την είσοδο του εισβολέα στο σύστημα. Το σύστημα αυτόματα και γρήγορα απαντά, λοιπόν, προειδοποιώντας ή αναλαμβάνοντας δράση σε αληθινό χρόνο βάση οδηγιών που έχει πάρει από το χρήστη του.
5.16.1 Ανίχνευση Εισβολής σε Επίπεδο Δικτυωμένου Υπολογιστή και Δικτύου
Η ανίχνευση εισβολής σε επίπεδο δικτυωμένου υπολογιστή είναι μία διαδικασία που παρακολουθεί τη δραστηριότητα σε ένα μεμονωμένο σύστημα ενώ σε επίπεδο δικτύου έχουμε παρακολούθηση όλης της δραστηριότητας στο δίκτυο ή σε συγκεκριμένο κομμάτι του
.Σε επίπεδο δικτυωμένων υπολογιστικών συστημάτων χρησιμοποιούμε τα συστήματα ανίχνευσης εισβολής για να προστατέψουμε σημαίνοντες
servers ή άλλα μεμονωμένα συστήματα που περιέχουν ευαίσθητη πληροφορία. Η εφαρμογή τέτοιων συστημάτων γίνεται με τη μορφή μικρών προγραμμάτων client ή εφαρμογών. Η εφαρμογή αυτών των προγραμμάτων γίνεται με τη χρήση χώρου, μνήμης και CPU χρόνου από τον server στον οποίο ανήκει ο υπό προστασία υπολογιστής με φυσικό επακόλουθο την πτώση της απόδοσής του. Οι εισβολές γίνονται αντιληπτές από τα αποτελέσματα της ανάλυσης των διαφόρων αρχείων καταγραφής στοιχείων του λειτουργικού συστήματος ή και συγκεκριμένων εφαρμογών όπως επίσης και από άλλες δραστηριότητες του συστήματος. Η παρακολούθηση ενός συστήματος σε αυτό το επίπεδο είναι αποδοτική όταν πρόκειται να προστατέψουμε περιορισμένο αριθμό servers ενώ σε αντίθετη περίπτωση δεν δίνουν καλά αποτελέσματα.Στο επίπεδο της ανίχνευσης εισβολής σε δίκτυο
, το σύστημα που έχει αναλάβει τη λειτουργία αυτή τρέχει σε μία αφιερωμένη σε αυτό το σκοπό πλατφόρμα. Το σύστημα λειτουργεί βάση κανόνων που έχει ορίσει ο διαχειριστής του ή της τεχνικής ανάλυσης έμπειρων συστημάτων (expert systems) της διακινούμενης πληροφορίας χρησιμοποιώντας παραμέτρους καθορισμένες πάλι από το διαχειριστή και τις υπογραφές που σηματοδοτούν υποψία εισβολής. Το σύστημα αναλύει τις επικεφαλίδες των πακέτων που διακινούνται στο δίκτυο και παίρνει αποφάσεις για την ασφάλεια βασισμένες στην πηγή, τον προορισμό και τον τύπο του πακέτου, όπως επίσης και τα ίδια τα δεδομένα των πακέτων για τα οποία έχει σχετικές οδηγίες απόρριψής τους ή μη. Το σύστημα αυτό ανταποκρίνεται στις απαιτήσεις δικτύου με μεγάλο πλήθος υπολογιστών και servers διότι δεν έχει σημασία ο αριθμός τους αλλά ο όγκος της διακινούμενης πληροφορίας. Επιπρόσθετα, οι αισθητήρες που έχουν τοποθετηθεί στα διάφορα σημεία του δικτύου μπορούν να ρυθμιστούν ώστε να δίνουν τις αναφορές τους σε ένα κεντρικό σημείο του δικτύου παρέχοντας έτσι τη δυνατότητα σε ένα μικρό αριθμό ειδικών ασφάλειας να ελέγχουν και να υποστηρίζουν από εκεί όλο το δίκτυο της επιχείρησης.Το
NetRanger είναι ένα τέτοιο σύστημα που δίνει τη δυνατότητα στους διαχειριστές της ασφάλειας ενός δικτύου να το ασφαλίσουν αποδοτικά. 5.16.2 Διαφορά NetRanger - FirewallTo NetRanger είναι ένα σύστημα ανίχνευσης εισβολών ή προσπαθειών προς αυτή τη κατεύθυνση, που δρα συμπληρωματικά προς τους Firewalls και τις υπόλοιπες διατάξεις ασφάλειας που μπορεί να υπάρχουν σε ένα δίκτυο. Η λειτουργία του firewall είναι ο έλεγχος πρόσβασης, η ακεραιότητα των δεδομένων και η εφαρμογή της πολιτικής ασφάλειας. Εάν κάποιος επιχειρήσει εισβολή, τότε το NetRanger απαντά δυναμικά στις παραβιάσεις της πολιτικής ασφάλειας και αποτρέπει την παράνομη δραστηριότητα σε αληθινό χρόνο.
Οι δυνατότητες ενεργούς παρακολούθησης που προσφέρει το
NetRanger αποτελούν ένα εξαιρετικό συμπλήρωμα για κάποιον firewall όπως τα συστήματα συναγερμού και οι ανιχνευτές κίνησης συμπληρώνουν φυσικές μεθόδους ελέγχου πρόσβασης(κλειδαριές ασφαλείας και σίδερα παραθύρων).Το
NetRanger δουλεύει με τους firewalls, χωρίς προς το παρόν, να επικοινωνεί άμεσα με αυτούς. Οι αισθητήρες μπορούν να εγκατασταθούν "πίσω" από τον firewall (μεταξύ αυτού και του προστατευομένου δικτύου) ή "μπροστά" από αυτόν (μεταξύ αυτού και του router που υπάρχει στη περίμετρο). Σε κάθε περίπτωση ο αισθητήρας παρακολουθεί μέσω μιας "αδιάκριτης αντλίας" που βρίσκεται πάνω στη γραμμή και που δεν αποτελεί σημείο αποτυχίας εάν η συσκευή σταματήσει να λειτουργεί.Η πιο κοινή τοποθεσία για έναν αισθητήρα είναι
"μπροστά" από το firewall. Σε αυτή τη θέση ο αισθητήρας μπορεί να ελέγχει όχι μόνο το εξερχόμενο, αλλά και το εισερχόμενο όγκο πληροφοριών που μπορεί να αποτελεί και δραστηριότητα που ο firewall δεν θα επέτρεπε να περάσει. "Βλέποντας" όλη τη δραστηριότητα που στοχεύει στο δίκτυο παρέχει πληροφορίες στους διαχειριστές ασφάλειας που τους βοηθούν να καθορίσουν τη πολιτική ασφάλειας για το δίκτυό τους.Οι αισθητήρες εγκαθίστανται
"πίσω" από το firewall για να διασφαλίσουν ότι η πληροφορία που περνάει από αυτόν δεν έρχεται σε αντίθεση με την πολιτική ασφάλειας που έχει καθοριστεί για το δίκτυο και για να επαληθεύσουν τη σωστή λειτουργία του firewall. Στη θέση αυτή ο αισθητήρας μπορεί να δει όλη την εξερχόμενη πληροφορία από το δίκτυο και από την εισερχόμενη μόνο αυτήν που έχει επιτρέψει το firewall.Η εγκατάσταση ενός αισθητήρα μπορεί να γίνει και σε περιπτώσεις που δεν υπάρχει
firewall στη περίμετρο του δικτύου και στο εσωτερικό δίκτυο. Η περίμετρος περιέχει όλα τα σημεία πρόσβασης στο Internet όπου δηλαδή εγκαθίσταται παραδοσιακά ένας firewall. Ωστόσο, η διαδικασία ανίχνευσης εισβολής μπορεί να είναι το ίδιο σημαντική για την πολιτική ασφάλειας του δικτύου και σε άλλα σημεία πρόσβασης όπως η δικτυακή μεριά του modem pool ή σε συνδέσεις με δίκτυα άλλων εταίρων όπου η ύπαρξη firewall δεν είναι τόσο διαδεδομένη. Οι αισθητήρες μπορούν να εγκατασταθούν σε οποιοδήποτε κομμάτι του δικτύου που είναι κρίσιμο για την ασφάλειά του. Για παράδειγμα μία διασύνδεση ανάμεσα του τμήματος μηχανικού και οικονομικού μιας εταιρίας μπορεί να παρακολουθείται για να διασφαλίζεται η εφαρμογή της πολιτικής ασφάλειας σε κρίσιμες πληροφορίες και υπηρεσίες. Το NetRanger μπορεί να αναπτυχθεί για να συμπορευτεί με την ανάπτυξη του δικτύου αφού μπορούν επιπλέον αισθητήρες να εγκατασταθούν για να καλύψουν τις αυξανόμενες ανάγκες.5.16.3 Κρυπτογράφηση και NetRanger
Ο αισθητήρας του
NetRanger αναλύει τόσο την επικεφαλίδα όσο και το περιεχόμενο ενός πακέτου για να αποφασίσει εάν αυτό αποτελεί απειλή ή όχι. Οι αλγόριθμοι που εκτελούν κρυπτογράφηση σε αυτό το επίπεδο κρυπτογραφούν το περιεχόμενο των πακέτων. Έτσι, εφόσον το NetRanger μπορεί να επεξεργαστεί μόνο ότι μπορεί να δει, ο αισθητήρας δεν μπορεί να ανιχνεύσει επιθέσεις που απαιτούν την έρευνα κρυπτογραφημένων πακέτων. Ωστόσο θα προειδοποιήσει και θα απαντήσει σε επιθέσεις που ανιχνεύθηκαν από τη μη κρυπτογραφημένη επικεφαλίδα του πακέτου. Όλα τα συστήματα αντιμετώπισης εισβολής σε αυτό το σημείο "υποφέρουν". Η σωστή χρησιμοποίηση των αισθητήρων απαιτεί αυτοί να τοποθετούνται σε σημεία όπου η πληροφορία είναι καθαρή και όχι κρυπτογραφημένη.Η μηχανή ανίχνευσης εισβολών του
NetRanger χρησιμοποιεί μία μεθοδολογία αναγνώρισης υπογραφών η οποία μπορεί να είναι "γενικού πλαισίου" και "περιεχομένου".Οι
"γενικού πλαισίου" υπογραφές επιθέσεων αποτελούνται από γνωστές αδυναμίες δικτυακών υπηρεσιών οι οποίες μπορούν να ανιχνευθούν με τη εξέταση των επικεφαλίδων των πακέτων. Σε αυτές συμπεριλαμβάνονται τύποι επιθέσεων SATAN, πειρατείες του TCP και απάτες στο IP.Οι υπογραφές επιθέσεων
"περιεχομένου" απαιτούν την εξέταση του φορτίου του πακέτου και των πεδίων δεδομένων για να καθορίσουν εάν υπάρχει επίθεση ή παραβίαση της πολιτικής ασφάλειας σε επίπεδο εφαρμογήςΑυτές περιλαμβάνουν για παράδειγμα
e-mail και Web τύποι επιθέσεις.Οι υπογραφές του
NetRanger μπορούν να χωριστούν στις παρακάτω κατηγορίες:Το σύστημα
NetRanger επιτρέπει επιπλέον την δημιουργία, από πλευράς χρήστη, συγκεκριμένων τύπων υπογραφών που χρησιμοποιούν τεχνικές σύγκρισης χαρακτήρων για να καλύψουν τις ιδιαίτερες ανάγκες τους. Για παράδειγμα η εταιρία "Χ-Ψ" θα μπορούσε να ρυθμίσει εύκολα το NetRanger να "χτυπάει" συναγερμό και να αποκλείει κάθε σύνδεση που μεταδίδει τη φράση "Χ-Ψ εμπιστευτικό" στο e-mail ή to ftp.Στην περίπτωση που κάποια επίθεση χρησιμοποιεί υπογραφές που δεν βρίσκονται στη βάση δεδομένων υπογραφών
, η ανίχνευσή της εξαρτάται από το τύπο της επίθεσης αλλά τις περισσότερες φορές το αποτέλεσμα θα είναι θετικό. Είναι πολύ δύσκολο για κάποιον hacker να σπάσει το NetRanger με τη χρήση υπογραφών που δεν αναγνωρίζονται από το σύστημα διότι αυτό έχει αναπτυχθεί κατά τέτοιο τρόπο που να ανιχνεύει τις "αναγνωριστικές πτήσεις" και τις προσπάθειες έρευνας των hackers, τυπικές διαδικασίες και προάγγελοι επιθέσεων. Το μεγαλύτερο μέρος υπογραφών της Γενικής Κατηγορίας Επιθέσεων έχει αναπτυχθεί αποκλειστικά για το σκοπό αυτό – την ανίχνευση κοινών παραλλαγών για την εκμετάλλευση ενός συστήματος. 5.16.5 Ασφάλεια Συστήματος NetRangerΟ αισθητήρας του
NetRanger έχει φτιαχτεί ώστε να προστατεύει το ίδιο το σύστημα από επιθέσεις. Πρώτα από όλα μόνο υπηρεσίες που απαιτούνται από τον αισθητήρα ενεργοποιούνται. Δευτερεύοντος, οι TCP Wrappers διασφαλίζουν ότι η επικοινωνία επιτρέπεται μόνο με τον Director – στον οποίο θα γίνει παρακάτω εκτενέστερη αναφορά. Κατά τρίτον, ο αισθητήρας ανιχνεύει επιθέσεις στο υπό παρακολούθηση κομμάτι του δικτύου (segment), συμπεριλαμβανομένων και αυτών που μπορεί να κατευθύνονται προς αυτόν. Τέλος, ο αισθητήρας μπορεί να είναι "αόρατος" για το δίκτυο, όταν η διάταξη που χρησιμοποιεί για την παρακολούθηση του βρίσκεται στην "αδιάκριτη" κατάσταση λειτουργίας και η διάταξη ελέγχου και εντολών είναι προσαρμοσμένη σε μία αφιερωμένη, για το σκοπό αυτό, είσοδο ενός router ή συνδέεται στο προστατευόμενο δίκτυο πίσω από έναν firewall. Ο Director είχε σχεδιαστεί για να τοποθετείται σε ένα αξιόπιστο δίκτυο οπότε και χρησιμοποιεί ασφάλεια επιπέδου λειτουργικού συστήματος και εφαρμογής. Ο Director μπορεί να ρυθμιστεί έτσι ώστε να χρησιμοποιεί τρίτα προϊόντα για πιστοποίηση μέσo certificates κατά τη διαδικασία του log on της κονσόλας. Η τοποθέτησή του πρέπει να γίνει σε σημείο που να είναι είτε άμεσα είτε έμμεσα παρακολουθούμενο από έναν αισθητήρα για μεγαλύτερη προστασία.To NetRanger δεν υποστηρίζει, προς το παρόν, κρυπτογράφηση δεδομένων από τον αισθητήρα στο διευθυντή, αλλά βασίζεται στην κρυπτογράφηση επιπέδου IP (IPSec) που υπάρχει στις επικοινωνίες των δρομολογητών, για τη προστασία των δεδομένων που κινούνται στο WAN. Ωστόσο, όλες οι επικοινωνίες αισθητήρα - διευθυντή πιστοποιούνται για την αποφυγή πειρατειών και άλλων απατών.
5.16.7 Αναλυτική Περιγραφή και Τεχνική Ανασκόπηση
Συστατικά Στοιχεία του
NetRangerΤο σύστημα
NetRanger αποτελείται από δύο μέρη: τους αισθητήρες (Sensors), αόρατα όργανα που δρουν όπως οι "sniffers" και τον Διευθυντή (Director), μία κεντρική κονσόλα διαχείρισης. Ο Director μαζεύει τα εισερχόμενα, από τον Sensor, δεδομένα τα μεταφράζει και τα παρουσιάζει στο προσωπικό ασφάλειας με γραφικό τρόπο χαρτογραφώντας το δίκτυο. Οι χρήστες μπορούν να έχουν πρόσβαση σε επιπλέον πληροφορίες για το είδος της επίθεσης από την Βάση Δεδομένων Ασφάλειας Δικτύου του Director. Ο Director επιτρέπει στο προσωπικό ασφάλειας να διαχειριστεί τις ρυθμίσεις των απομακρυσμένων αισθητήρων. Τέλος, ο Director μπορεί να διαχειριστεί τα δεδομένα των αισθητήρων εξάγοντάς τα σε σχετικές βάσεις δεδομένων τρίτων.NetRanger
—Ανάλυση υποσυστημάτωνΔυνατότητες Αισθητήρων
Οι δυνατότητες των αισθητήρων περιλαμβάνουν
:Αντίληψη του Δικτύου
Η αντίληψη του δικτύου περιλαμβάνει την ανίχνευση σε αληθινό χρόνο εισβολών,
την παρακολούθηση των διακινούμενων πακέτων και των δεδομένων που καταχωρούνται από τους routers στα ημερολόγιά τους. Η διαδικασία που τρέχει το NetRanger αιχμαλωτίζει, ανιχνεύει και αναλύει τα πακέτα στο δίκτυο. Επιπλέον παρακολουθεί την κατάσταση των συνδέσεων των χρηστών για την ανίχνευση επιθέσεων μεγάλου όγκου πακέτων ή την ύπαρξη παράνομων γραμμών σε αυτά. Ο αισθητήρας αιχμαλωτίζει τα πακέτα με κάποιο από τα interfaces του, τα επανασυναρμολογεί και συγκρίνει τα δεδομένα τους με αυτά που υπάρχουν σε ένα σύνολο κανόνων που καταδεικνύουν τυπική προσπάθεια εισβολής.Η υψηλή απόδοση των αισθητήρων τους επιτρέπει να ερευνούν σχεδόν κάθε πακέτο στο τμήμα του δικτύου του οποίου έχουν αναλάβει την παρακολούθηση
. Έτσι ο χρήστης δεν χρειάζεται να φτιάχνει προφίλ και να παραλείπει υπογραφές , κάτι που απαιτεί πολύ καλή γνώση του δικτύου ώστε να διασφαλίσει ότι οι πρέπουσες υπογραφές επιθέσεων έχουν ενεργοποιηθεί. Όταν το NetRanger αναλύει δεδομένα ψάχνει για στοιχεία κατάχρησης. Τα στοιχεία αυτά μπορεί να είναι τόσο απλά όσο μία προσπάθεια πρόσβασης συγκεκριμένης πόρτας σε συγκεκριμένο υπολογιστή ή τόσο σύνθετα όσο σειρά ενεργειών διαμοιρασμένων σε υπολογιστές του δικτύου για αυθαίρετο χρονικό διάστημα. Ο πρώτος τύπος λέγεται "ατομικός" ενώ ο δεύτερος "σύνθετος".Το
NetRanger ερευνά εξετάζοντας τα δεδομένα της επικεφαλίδας ή του φορτίου των πακέτων. Επιθέσεις από το περιεχόμενο προέρχονται από το τμήμα των δεδομένων του πακέτου ενώ επιθέσεις γενικού πλαισίου από το τμήμα της επικεφαλίδας. Ο παρακάτω πίνακας παρουσιάζει παραδείγματα τύπων επίθεσης και σχήματα που το NetRanger αναγνωρίζει.Πίνακας
1: Τύποι επιθέσεων και σχημάτωνΕπίθεση |
Σχήμα |
|
Ατομικό |
Σύνθετο |
|
Γενικού Πλαισίου (επικεφαλίδα) |
|
|
Περιεχομένου (δεδομένα) |
|
|
Η φιλοσοφία σχεδίασης του έμπειρου NetRanger συστήματος του επιτρέπει να ανιχνεύει επιθέσεις γενικής κατηγορίας σε πραγματικό χρόνο ακόμα και αν οι hackers χρησιμοποιούν παραλλαγές για να ξεγελάσουν τα συστήματα ασφάλειας. Για παράδειγμα υπάρχουν πολλές παραλλαγές της επίθεσης "Land", η οποία ανήκει στην κατηγορία των αφόρητων IP πακέτων. Έτσι παρατηρούμε ότι οι υπογραφές επιθέσεων εξελίσσονται μαζί με τις επιθέσεις. Αυτή η βάση δεδομένων επιθέσεων διαχειρίζεται, ελέγχεται και αναβαθμίζεται από μια ειδική ομάδα που περιλαμβάνει μερικούς από τους πιο έμπειρους επαγγελματίες του είδους.
Εξαιτίας του γεγονότος ότι ένα φορτωμένο δικτυακό περιβάλλον μπορεί να δημιουργήσει ψεύτικους συναγερμούς το NetRanger μπορεί να ρυθμιστεί διάταξη προς διάταξη. Για παράδειγμα, εάν ένα σύστημα διαχείρισης δικτύου προκαλεί συνεχείς συναγερμούς κατά τη διαδικασία του pinging στο δίκτυο, το NetRanger μπορεί να ρυθμιστεί κατά τρόπο που να αγνοεί το συγκεκριμένο συναγερμό από τη συγκεκριμένη διεύθυνση. Αυτή η δυνατότητα δεν υποβαθμίζει την ασφάλεια του δικτύου διότι το NetRanger δεν παύει να αναγνωρίζει οποιοδήποτε άλλο συναγερμό από την ίδια διεύθυνση.
Συνήθεις Υπογραφές
Οι χρήστες μπορούν να δημιουργήσουν τις δικές τους υπογραφές επιθέσεων από το διευθυντή. Αυτές οι υπογραφές σύγκρισης χαρακτήρων μπορούν να χρησιμοποιηθούν για τη δημιουργία άμυνας απέναντι σε συγκεκριμένες επιθέσεις νέου τύπου ή για την ανίχνευση πληροφοριών μοναδικών για το περιβάλλον του χρήστη. Για παράδειγμα ο διαχειριστής του συστήματος μπορεί να "φοβάται" ότι οι χρήστες στέλνουν ανασφαλή "ιδιόκτητα" έγγραφα στο Internet. Μία υπογραφή μπορεί να δημιουργηθεί για να ανιχνεύει όλα τα περιστατικά που περιέχουν τη λέξη "ιδιόκτητα".
Απάντηση σε Επίθεση
Πρέπει να σημειώσουμε ότι τα ημερολόγια των IP συνόδων γράφονται μόνο όταν κάποιο συγκεκριμένο συμβάν λαμβάνει χώρα (π. χ. μία αίτηση σύνδεσης από συγκεκριμένη IP διεύθυνση ή ανίχνευση κάποιας συγκεκριμένης ακολουθίας χαρακτήρων όπως "εμπιστευτικό")Όταν οι παραπάνω όροι ικανοποιούνται, ο αισθητήρας μπορεί να ρυθμιστεί για να καταγράφει κάθε εισερχόμενο ή εξερχόμενο πακέτο σε ένα ημερολόγιο IP συνόδου για ένα προκαθορισμένο χρονικό διάστημα. |
Πρέπει να σημειώσουμε ότι τα ημερολόγια των IP συνόδων γράφονται τοπικά σε κάποιον αισθητήρα ή και σε κάποιον απομακρυσμένο διευθυντή—το ποία ακριβώς πληροφορία στέλνεται και πού άπτεται των ρυθμίσεων του αισθητήρα. |
Πρέπει να σημειωθεί ότι η αποτροπή απαιτεί προσεκτική εφαρμογή και ενημέρωση του προσωπικού του δικτύου διότι η δημιουργία συναγερμού σε συγκεκριμένο host ή δίκτυο μπορεί να οδηγήσει στην άρνηση υπηρεσιών. Το NetRanger μπορεί να ρυθμιστεί για το λόγο αυτό κατά τέτοιο τρόπο που να μην κλείνει ποτέ host ή δίκτυο. |
Διαχείριση Συσκευών
Η διαχείριση συσκευών είναι ένα χαρακτηριστικό του προϊόντος που επιτρέπει στον αισθητήρα να επαναρυθμίζει δυναμικά τις λίστες πρόσβασης στους routers για να χτυπήσει την επίθεση στη πηγή της σε πραγματικό χρόνο. Αυτή η δυνατότητα αυξάνει σημαντικά την ικανότητα του αισθητήρα να προστατέψει το δίκτυο από εσωτερικές και εξωτερικές απειλές, δίνοντας ταυτόχρονα τη δυνατότητα στο χρήστη να ελέγξει τη κατάχρηση του δικτύου σε όλη την έκτασή του.
Ο αισθητήρας (σχήματα 1 & 2) χρησιμοποιεί το ένα interface –κάρτα του, για να παρακολουθεί τη κίνηση των πακέτων και την άλλη για να εκτελεί εντολές και να επικοινωνεί με τον router. Αυτή η τακτική επιτρέπει στον αισθητήρα να ανανεώνει δυναμικά τις λίστες πρόσβασης των router σε απάντηση των απαιτήσεων της κίνησης στο δίκτυο.
Προς το παρών ο αισθητήρας υποστηρίζει Ethernet, Fast Ethernet, Token Ring και FDDI interfaces. Είναι σημαντικό ο αισθητήρας να χρησιμοποιείται σε "αδιάκριτης" κατάστασης και όχι σε switched hub . Εάν χρησιμοποιείται σε switched, τότε θα μπορεί να "βλέπει" τη κίνηση μόνο εάν ο διακόπτης υποστηρίζει δυνατότητα παρακολούθησης ή το SPAN (Switched port Analyzer ). Tο interface εντολών είναι πάντα Ethernet.
5.16.8 Παρακολούθηση του Ημερολογίου των Δρομολογητών
Οι Cisco Routers που είναι εγκατεστημένοι ανά τον κόσμο ξεπερνούν τα δύο εκατομμύρια και οι λίστες πρόσβασης (ACL-Access Control Lists) είναι ο πιο διαδεδομένος μηχανισμός ασφάλειας που χρησιμοποιείται στα δίκτυα. Επειδή χρησιμοποιούνται για αυτό το λόγο, ο αισθητήρας του NetRanger έχει φτιαχτεί να παρακολουθεί και να αναλύει τα ημερολόγια που κρατάνε και να προειδοποιεί, αν χρειαστεί, το διευθυντή.
5.16.9 Δυνατότητες Director-Διευθυντή
Ο διευθυντής παρέχει κεντρικό έλεγχο πάνω στους αισθητήρες ενός δικτύου. Ο διευθυντής που είναι βασισμένος σε software, περιλαμβάνει wizards (μάγους) εγκατάστασης για γρήγορη εγκατάσταση και χωρίς την ανάγκη compilation. Η δουλεία του είναι να ελέγχει και να διαχειρίζεται τους αισθητήρες, να συλλέγει και να αναλύει τα δεδομένα ασφάλειας, να "κατεβάζει" νέες υπογραφές επιθέσεων και να διευκολύνει τους χρήστες στη δουλειά τους. Δεν παρέχει υπηρεσία δημιουργίας αναφορών διότι αυτό θα λειτουργούσε ανασταλτικά ως προς την ικανότητά του επεξεργασίας κρίσιμων πληροφοριών. Κατά συνέπεια τα δεδομένα διοχετεύονται σε βάσεις δεδομένων και συγγραφής αναφορών τρίτων συστημάτων.
Βάση Δεδομένων Ασφάλειας Δικτύου
Ο διευθυντής κάνει χρήση μιας χαρτογραφημένης με χρωματιστά εικονίδια μεθόδου παρουσίασης συναγερμών που επιτρέπουν στο χρήστη να επιλέξει συγκεκριμένο είδος συναγερμού και να αναλύσει την απειλή που ο τελευταίος αποτελεί για το σύστημα. Η βασισμένη στο HTML Δικτυακή άρση Δεδομένων παρέχει περιγραφή επίθεσης, πιθανά αντίμετρα και μπορεί να ρυθμιστεί για να περιλαμβάνει και άλλες εξειδικευμένες πληροφορίες για συγκεκριμένα συστήματα. Αυτή η πολιτική διασφαλίζει συνεχή και σταθερή πολιτική άμυνας ανεξάρτητη από το ανθρώπινο δυναμικό και τις τυχόν αλλαγές του.
Παρακολούθηση Αισθητήρων
Ο διευθυντής παρουσιάζει πληροφορίες ασφάλειας πραγματικού χρόνου οι οποίες του έρχονται από τους αισθητήρες μέσω εικονιδίων που βρίσκονται σε χάρτες ασφαλείας του δικτύου. Αυτά ταξινομούνται με ιεραρχικά σε χάρτες βασισμένους στη Διαχείριση Δικτυακών Κόμβων(Network Node Management-NNM) από την HP Open View. Ο χρήστης μπορεί να επιλέξει με διπλό click του mouse να πάει σε έναν χάρτη που βρίσκεται πιο κάτω στην ιεραρχική δομή. Το τελευταίο επίπεδό της περιέχει εικονίδια "Συναγερμού" και "Λάθους" όπως φαίνεται στο σχήμα 3.
Κάθε εικονίδιο ανεξάρτητα με το αν αναπαριστά έναν Μηχανισμό μια Εφαρμογή ή έναν Συναγερμό, βρίσκεται σε κάποια κατάσταση η οποία παρουσιάζεται υπό τη μορφή γραφικών και προσδιορισμών κειμένου διαφορετικών για κάθε κατηγορία. Η πιο ορατή ένδειξη της κατάστασης ενός εικονιδίου είναι το χρώμα του. Τα χρώματα αναπαριστούν καταστάσεις και επίπεδα συναγερμού όπως καθορίζονται στον πίνακα 2.
Πίνακας 2:
Χρώμα εικονιδίου, Κατάσταση και Επίπεδο Συναγερμού
Χρωμα εικονιδιου |
κατασταση εικονιδιου |
επιπεδο συναγερμου |
Πράσινο |
Κανονική |
1 |
Κίτρινο |
Οριακή |
2-3 |
Κόκκινο |
Κρίσιμη |
4-5 |
Το χρώμα ενός εικονιδίου μεταδίδεται προς τα πάνω μέσα στην ιεραρχία. Για παράδειγμα ένα εικονίδιο συναγερμού που βρίσκεται σε κρίσιμη κατάσταση είναι κόκκινο. Η εφαρμογή που δημιουργεί αυτό το κόκκινο συναγερμό θα γίνει και αυτή κόκκινη για να ταιριάξει το χρώμα της – και φυσικά η κατάστασή της – με το χρώμα του εικονιδίου. Σε αποτέλεσμα αυτής της διαδικασίας έχουμε την αλλαγή του χρώματος, σε κόκκινο, ακόμα και της μηχανής στην οποία τρέχει η εφαρμογή.
Διαχείριση Αισθητήρων
Ο διευθυντής μπορεί να ρυθμίζει εξ αποστάσεως τις ρυθμίσεις των αισθητήρων. Η εφαρμογή που είναι υπεύθυνη για αυτή τη λειτουργία είναι η nrConfigure. Η ρύθμιση των υπογραφών του nrConfigure φαίνεται στο σχήμα 1-4. Η ρύθμιση αυτή για έναν αισθητήρα είναι διαδικασία – κλειδί στην ασφάλιση ενός δικτύου με το σύστημα NetRanger.
Εγκατάσταση Αισθητήρων
Ο αισθητήρας μπορεί να εγκατασταθεί εύκολα και γρήγορα από έναν τεχνικό χωρίς να είναι απαραίτητη καμιά ειδική εκπαίδευση. Ο αισθητήρας απλώς εφαρμόζεται στο δίκτυο και αυτό που πρέπει να κάνει ο τεχνικός είναι να του δώσει κάποια βασική πληροφόρηση για τη Διευθυνσιοδότηση στο δίκτυο μέσω ενός laptop υπολογιστή. Κατόπιν ο διευθυντής προγραμματίζεται να αναζητήσει το νέο αισθητήρα. Όταν αποκατασταθεί η επικοινωνία ο αισθητήρας πρώτα από όλα "κατεβάζει" τις ρυθμίσεις του οι οποίες είναι αποθηκευμένες στη Βιβλιοθήκη Ρυθμίσεων του διευθυντή (Director's Configuration librarian) ως SENSOR X, VERSION 1. Ο αισθητήρας τότε ξεκινά να τη λειτουργία του με την αποστολή συναγερμών και την αποδοχή εντολών από τον διευθυντή. Όποτε ο αισθητήρας επαναρυθμίζεται κάθε νέα ρύθμιση παίρνει έναν νέο αριθμό έκδοσης.
Ο αισθητήρας δεν χρειάζεται ειδική άδεια προϊόντος και μπορεί να εγκατασταθεί όπου χρειάζεται στο δίκτυο.
Επαναφορά Αισθητήρα
Εάν κάποιος αισθητήρας βγει εκτός υπηρεσίας, χτυπάει αμέσως ένας συναγερμός στον διευθυντή. Εάν διαπιστωθεί ότι ο αισθητήρας έχει πρόβλημα μπορεί να εγκατασταθεί κάποιος άλλος στη θέση του. Η ρύθμιση του νέου θα γίνει με την ίδια διαδικασία που ακολουθήθηκε και με τον παλιό—με το nrConfigure.
NrConfigure
Το nrConfigure είναι ένα εργαλείο βασισμένο σε Java και χρησιμοποιείται για ρύθμιση αισθητήρων από απόσταση και διαχείριση των αρχείων ρυθμίσεων. Με το εργαλείο αυτό ο χρήστης μπορεί να αλλάξει τα αρχεία ρυθμίσεων κάποιου αισθητήρα και να διαχειριστεί αρχεία ρυθμίσεων διαφορετικών εκδόσεων. Αυτή η λειτουργία επιτρέπει στο χρήστη να κρατάει τόσο τις ενεργές όσο και τις παλιές ρυθμίσεις. Με το τρόπο αυτό έχουμε τη δυνατότητα σαν χρήστες να επαναφέρουμε σε ενέργεια παλιότερες ρυθμίσεις ή να αναπαράγουμε τις ήδη υπάρχουσες και σε άλλους αισθητήρες αντί να τις ξαναδημιουργήσουμε για καθέναν από αυτούς.
Το nrConfigure δίνει τη δυνατότητα ρύθμισης των παρακάτω παραμέτρων σε οποιαδήποτε έκδοση των αρχείων ρυθμίσεων:
Ο Διευθυντής μπορεί να συλλέξει και να κατατάξει δεδομένα από αισθητήρες χρησιμοποιώντας έναν απλό μηχανισμό της μορφής: σπρώξιμο-τράβηγμα (push-pull). Το σύστημα NetRanger γράφει (σπρώχνει) δεδομένα "οριζόντια" αρχεία και μετά τα κατατάσσει (τραβάει) σε μια βάση δεδομένων. Η όλη διαδικασία φαίνεται στο σχήμα 5.
Με το να γράφονται τα δεδομένα σε "οριζόντια" αρχεία παρέχονται από το σύστημα επίπεδα ανοχής σφαλμάτων και απόδοσης που δεν θα μπορούσε να επιτευχθεί γράφοντας απευθείας στη βάση δεδομένων. Η ροή δεδομένων σε ένα διαμοιρασμένο σύστημα όπως το NetRanger περιορίζεται μόνο από το πιο αδύναμη διασύνδεση του συστήματος. Με τη διαδικασία συλλογής πληροφοριών του NetRanger η συλλογή πληροφοριών δεν εξαρτάται ή κατά οποιοδήποτε τρόπο επηρεάζεται από τη βάση δεδομένων ή την αυξομείωση της απόδοσης.
Ο Διευθυντής δίνεται, προς το παρόν, με οδηγούς από την Oracle και τη Remedy. Ωστόσο, αυτοί οι οδηγοί μπορούν να ρυθμιστούν για να γράφουν και σε άλλες βάσεις δεδομένων όπως η Sybase και η Informix. Παραδείγματα scripts που έρχονται μαζί με τον διευθυντή δείχνουν πώς τα υπάρχων κύρια μέρη της βάσης δεδομένων μπορούν να εισαχθούν στο NetRanger.
Ο Διευθυντής περιέχει επιπλέον μία ρυθμιζόμενη δυνατότητα διαχείρισης αρχείων η οποία αρχειοθετεί αυτόματα γεγονότα και ημερολόγια IP είτε σε έναν αισθητήρα είτε σε κάποιο διευθυντή. Πρότυπα αρχεία με διάφορα προφίλ ρυθμίσεων παρέχονται και για τους αισθητήρες και για τους διευθυντές.
Ανάλυση Δεδομένων Αισθητήρων
Ο διευθυντής μπορεί επίσης να αναλύει δεδομένα από τον αισθητήρα χρησιμοποιώντας εργαλεία άλλων συστημάτων που παρέχουν διαχείριση βάσεων δεδομένων και δημιουργία αναφορών.
Ως δημιουργός αναφορών, ο διευθυντής περιλαμβάνει ένα σύνολο της Sequenced Query Language (SQL) που μπορεί εύκολα προσαρμοστεί σε οποιοδήποτε εργαλείο άλλου συστήματος.
Τα εργαλεία αυτά μπορούν να ρυθμιστούν για την υποστήριξη μεμονωμένων ερευνών ή προκαθορισμένων αναφορών. Για παράδειγμα αυτά τα εργαλεία μπορούν να συντάξουν αναφορές που να περιλαμβάνουν τα ακόλουθα:
Υποστήριξη Ενεργειών Καθορισμένων από το Χρήστη
Ο διευθυντής μπορεί να πραγματοποιήσει ενέργειες καθορισμένες από το χρήστη. Μία κοινή ενέργεια είναι η ειδοποίηση του προσωπικού με e-mail και η προώθηση δεδομένων σε άλλα προγράμματα. Υποστήριξη παρέχεται και σε scripts πολλαπλών λειτουργιών.
Δυνατότητες Post Office
Οι υπηρεσίες και οι υπολογιστές του NetRanger επικοινωνούν μεταξύ τους κάνοντας χρήση του Post Office, συμπεριλαμβανομένων υπηρεσιών στον ίδιο υπολογιστή και στο ίδιο δίκτυο. Όλες οι επικοινωνίες βασίζονται σε ένα σχήμα τριών μερών με επικεφαλίδες του Οργανισμού, του Υπολογιστή και της Εφαρμογής που δίνουν ταυτότητα σε κάθε κόμβο του NetRanger.
Το ιδιαίτερο σχήμα διευθυνσιοδότησης του NetRanger έχει τα ακόλουθα χαρακτηριστικά:
Το σχήμα αυτό διευθυνσιοδότησης του NetRanger λειτουργεί επιπλέον ως η βάση για κάποιο point-to-point πρωτόκολλο που επιτρέπει έως 255 εναλλακτικές οδούς-δρομολόγια μεταξύ δύο δικτυωμένων υπολογιστών. Αυτό το εναλλακτικό πρωτόκολλο δρομολόγησης μεταπηδά αυτόματα στην επόμενη διαδρομή οποτεδήποτε η χρησιμοποιούμενη αποτυγχάνει. Χρησιμοποιεί, επίσης, ένα παλμό συστήματος για να ανιχνεύσει πότε μία σύνδεση μέσω της προτιμούμενης διαδρομής μπορεί να επανεγκαθιδρυθεί. Ένα μήνυμα λάθους του συστήματος δημιουργείται και καταγράφεται όποτε μία σύνδεση πέφτει και τα πακέτα που χάθηκαν κατά τη διάρκεια της μετάβασης από τη μία διαδρομή στην άλλη επανεκπέμπονται.
Ακόμα ένα χαρακτηριστικό που συμπληρώνει την εναλλακτική δρομολόγηση είναι η ικανότητα του χτισίματος ιεραρχημένες δομές αισθητήρων και διευθυντών μέσω της χρήσης αναπαραγόμενων μηνυμάτων. Αντί να στέλνουμε στοιχεία από έναν αισθητήρα σε πολλούς υπολογιστές, η πληροφορία μπορεί να στέλνεται σε έναν διευθυντή ο οποίος με τη σειρά του μπορεί να αναπαράγει τα πακέτα και προς άλλες πλατφόρμες οι οποίες βρίσκονται στα τοπικά αρχεία ρυθμίσεών του. Οι αισθητήρες μπορούν να αναπαράγουν πακέτα προς περισσότερους από έναν διευθυντές διασφαλίζοντας έτσι επικοινωνία με ανοχές σφαλμάτων.
Το σχήμα 6 δείχνει το σκεπτικό μέσω μιας απλής ιεραρχημένης δομής διευθυντών.
Σε συμπλήρωμα της παροχής πλεονεκτημάτων στην απόδοση και ανοχή σφαλμάτων, οι διανεμημένες ιεραρχικές δομές μπορούν να απλουστεύσουν τη διαχείριση του συστήματος. Για παράδειγμα, οι τοπικές μηχανές που "τρέχουν" διευθυντές μπορεί να είναι υπεύθυνες για την παρακολούθηση του συστήματος από τις 09: 00 έως τις 17: 00 και μετά να περνούν τον έλεγχο σε ένα κεντρικό διευθυντή κάθε βράδυ.
5.16.10 Αρχιτεκτονική του NetRanger
Οι Αισθητήρες, οι Διευθυντές και το Post Office έχουν το καθένα ξεχωριστά λειτουργικά κομμάτια που ονομάζονται δαίμονες ή υπηρεσίες. Επειδή κάθε κύρια λειτουργία του NetRanger επιτυγχάνεται μέσω μιας ξεχωριστής υπηρεσίας, το αποτέλεσμα είναι ένα σύστημα ασφάλειας που είναι γρήγορο, ανθεκτικό και κλιμακωτό. Οι υπηρεσίες, που φαίνονται στο σχήμα 7, ορίζονται ως εξής:
5.16.11 Περαιτέρω Πληροφορίες
Περισσότερες πληροφορίες υπάρχουν στις ηλεκτρονικές σελίδες του site: http://www.cisco.com
5.17 Linux - PAM (Pluggable Authentication Modules)
5.17.1 Ορισμός - Σκοπός
Το Linux-PAM είναι σύνολο κοινών βιβλιοθηκών που επιτρέπουν στον τοπικό διαχειριστή του συστήματος να επιλέγει το τρόπο που οι διάφορες εφαρμογές πιστοποιούν τη γνησιότητα της ταυτότητας των χρηστών. Με άλλα λόγια, χωρίς να είναι αναγκαίο να ξαναγραφτούν και να ξαναπεράσουν από τη διαδικασία του compilation οι συμβατές με το σύστημα PAM εφαρμογές, είναι δυνατόν να αλλάξει ο μηχανισμός με τον οποίο πραγματοποιούν την πιστοποίηση της ταυτότητας των χρηστών. Αυτό μπορεί να γίνει μέχρι του βαθμό της ολικής αναβάθμισης του συστήματος χωρίς να ενοχληθούν κατά οποιοδήποτε τρόπο οι διάφορες εφαρμογές.
Ιστορικά, μια εφαρμογή που απαιτούσε πιστοποίηση της ταυτότητας του χρήστη έπρεπε να περάσει από compilation για να μπορεί να χρησιμοποιήσει κάποιον συγκεκριμένο μηχανισμό πιστοποίησης της ταυτότητας του χρήστη. Για παράδειγμα στην περίπτωση των παραδοσιακών UNIX συστημάτων, η ταυτότητα του χρήστη πιστοποιείται με τη διαδικασία ελέγχου του κωδικού του χρήστη όταν αυτός θελήσει να μπει στο λογαριασμό του. Αυτός ο κωδικός αφού συμπληρωθεί στην αρχή του από "αλατάκι" δύο χαρακτήρων, κρυπτογραφείται με τη χρήση του crypt(3). Ο χρήστης πιστοποιείται έναντι του συστήματος εάν ο κρυπτογραφημένος κωδικός που εισήγαγε στο σύστημα είναι ίδιος με αυτόν που υπάρχει στο δεύτερο πεδίο της καταχώρησης του χρήστη στη βάση δεδομένων κωδικών του συστήματος - το αρχείο /etc/passwd. Σε τέτοιου είδους συστήματα οι περισσότερες, αν όχι όλες, μορφές προνομίων παρέχονται από το σύστημα βάση αυτού του μοναδικού μηχανισμού πιστοποίησης. Τα προνόμια δίδονται με τη μορφή προσωπικών αριθμών (user-id ή uid) που ο κάθε χρήστης έχει και με τον οποίο εκπροσωπείται πλήρως στο σύστημα ή με τη μορφή αντίστοιχων αριθμών που χαρακτηρίζουν ολόκληρα σύνολα χρηστών (group id ή gid) στα οποία μπορεί να ανήκει κάποιος χρήστης και να απολαμβάνει και αυτός τα δικαιώματα που απορρέουν από την ύπαρξή του σε αυτό το σύνολο. Αυτά τα στοιχεία βρίσκονται κατά παράδοση στο αρχείο /etc/group.
Ατυχώς, οι συνεχείς αυξήσεις της ταχύτητας των υπολογιστών και η πλατιά διάδοση των δικτυωμένων υπολογιστικών συστημάτων έχουν μετατρέψει τους άλλοτε ασφαλείς μηχανισμούς πιστοποίησης, σαν αυτόν,σε ευάλωτα σε επιθέσεις σχήματα. Οι διαπιστώσεις αυτές οδήγησαν στην ανάπτυξη νέων μηχανισμών πιστοποίησης της ταυτότητας του χρήστη.
Ο σκοπός του Linux-PAM είναι ο διαχωρισμός της ανάπτυξης του λογισμικού χορήγησης προνομίων από την ανάπτυξη καταλλήλων μηχανισμών ασφάλειας. Αυτό επιτυγχάνεται με τη παροχή μιας βιβλιοθήκης λειτουργιών που μπορούν να χρησιμοποιηθούν από μια εφαρμογή για την πιστοποίηση της ταυτότητας του χρήστη. Αυτή η βιβλιοθήκη PΑΜ ρυθμίζεται τοπικά με τη βοήθεια ενός αρχείου συστήματος (/etc/pam.conf) ή με μια σειρά αρχείων ρυθμίσεων που βρίσκονται στο κατάλογο /etc/pam.d/ για να πιστοποιεί τους χρήστες μέσο των τοπικά διαθέσιμων modules (προγράμματα - πακέτα). Τα modules βρίσκονται συνήθως στο κατάλογο /usr/lib/security και παίρνουν τη μορφή δυναμικά φορτώσιμων αρχείων αντικειμένων.
5.17.2 Επισκόπηση Λειτουργίας
Ας εξετάσουμε το παρακάτω παράδειγμα: Παίρνουμε μια εφαρμογή που χορηγεί κάποιου είδους υπηρεσία στους χρήστες. Το login είναι ένα τέτοιο πρόγραμμα. Το login κάνει δύο πράγματα: Πρώτον πιστοποιεί ότι ο χρήστης είναι αυτός που ισχυρίζεται και δεύτερον παρέχει την υπηρεσία που του ζητήθηκε και που στη περίπτωση του login είναι ένα command shell (κέλυφος εντολών) με τη ταυτότητα του χρήστη.
Παραδοσιακά,η παραπάνω διαδικασία επιτυγχάνεται ζητώντας από το χρήστη το password (κωδικό χρήστη) και πιστοποιώντας ότι αυτός είναι ο ίδιος με αυτόν που υπάρχει στο σύστημα. Με αυτό το τρόπο κάνει τη πιστοποίηση της ταυτότητας του χρήστη. Αυτή τη δουλειά ανατίθεται στο Linux-PAM.
Από την οπτική γωνία του προγραμματιστή εφαρμογών (στη περίπτωσή μας του ατόμου που έφτιαξε το login πρόγραμμα), το Linux-PAM αναλαμβάνει το έργο της πιστοποίησης της ταυτότητας του χρήστη.
Η ευελιξία του συστήματος αυτού έγκειται στο γεγονός ότι ο διαχειριστής του έχει την ελευθερία να επιλέξει ακριβώς το τρόπο με τον οποίο η συγκεκριμένη εφαρμογή θα πιστοποιήσει το χρήστη. Ο διαχειριστής έχει την ευχέρεια να επιλέξει και να κάνει όποιες ρυθμίσεις θεωρεί ότι πρέπει να γίνουν για κάποιες ή και για όλες τις συμβατές με το σύστημα PAM εφαρμογές του συστήματός του. Αυτό σημαίνει ότι μπορεί να πιστοποιήσει κάνοντας χρήση ενός μηχανισμού απλής εμπιστοσύνης (pam_permit) μέχρι κάτι τόσο "παρανοϊκό" όσο ο συνδυασμός ελέγχου του αμφιβληστροειδούς χιτώνα, δείγματος φωνής και κωδικού μιας χρήσης!
Για να γίνει πιο σαφής η ευελιξία που προσφέρει αυτό το σύστημα ας θεωρήσουμε το παρακάτω παράδειγμα:ο διαχειριστής του δικτύου (γονιός) θέλει να βελτιώσει την ικανότητα των χρηστών του συστήματος (παιδιά). Μπορεί λοιπόν να ρυθμίσει το αγαπημένο τους παιχνίδι,το οποίο είναι φυσικά συμβατή εφαρμογή με PAM, να τα πιστοποιεί κάνοντας έναν απλό έλεγχο της ορθότητας ενός πολλαπλασιασμού τον οποίο το σύστημα θα θέτει σαν απαίτηση για την είσοδο στο παιχνίδι. Είναι προφανές ότι αν το παιχνίδι αξίζει,τα παιδιά θα μάθουν την προπαίδειά τους. Όσο τα παιδιά μεγαλώνουν η πιστοποίηση μπορεί να αναβαθμίζεται σε κάτι άλλο – ίσως μια μεγάλη διαίρεση.
Το σύστημα Linux-PAM έρχεται σε επαφή με τέσσερις διαφορετικούς τύπους διαχειριστικής εργασίας. Αυτοί είναι: διαχείριση πιστοποίησης, διαχείριση λογαριασμών, διαχείριση σύνδεσης, διαχείριση κωδικών. Ο συσχετισμός του προτιμώμενου διαχειριστικού σχήματος με τη συμπεριφορά μιας εφαρμογής γίνεται με καταχωρήσεις στο σχετικό Linux-PAM αρχείο ρυθμίσεων. Οι λειτουργίες διαχείρισης εκτελούνται από τα modules που καθορίζονται στο αρχείο αυτό.
Η λειτουργία του συστήματος βήμα προς βήμα είναι η ακόλουθη: Μία εφαρμογή Χ αλληλεπιδρά με τη βιβλιοθήκη του Linux-PAM χωρίς να γνωρίζει κανένα από τα χαρακτηριστικά της ρυθμισμένης διαδικασίας πιστοποίησης. Η βιβλιοθήκη του Linux-PAM με τη σειρά της συμβουλεύεται τα περιεχόμενα του PAM αρχείου ρυθμίσεων και φορτώνει τα απαιτούμενα για την εφαρμογή modules. Αυτά ανήκουν σε μία από τις τέσσερις διαχειριστικές ομάδες και είναι τοποθετημένα με τη σειρά που εμφανίζονται στο αρχείο ρυθμίσεων. Όταν αυτά τα modules κληθούν από το Linux-PAM εκτελούν τις διάφορες εργασίες πιστοποίησης. Η οποιαδήποτε πληροφορία κειμένου που χρειάζεται να κινηθεί από και προς τον χρήστη, μπορεί να το κάνει χρησιμοποιώντας της conversation function.
5.17.3 Το Αρχείο Ρυθμίσεων του Linux-PAM
To Linux-PAM έχει σχεδιαστεί από την αρχή για παροχή μέγιστης δυνατής ευελιξίας στον διαχειριστή του συστήματος όσον αφορά την ικανότητα χορήγησης προνομίων. Οι ρυθμίσεις γίνονται σε ένα από τα δύο διαφορετικά σχήματα. Στο αρχείο ρυθμίσεων ή στο κατάλογο ρυθμίσεων.
Στο αρχείο ρυθμίσεων /etc/pam.conf υπάρχουν γραμμές ρυθμίσεων που έχουν τη παρακάτω μορφή:
service-name module-type control-flag module-path arguments
Ένα από τα τέσσερα (προς το παρόν) τεκμήρια που καταδεικνύουν τη σοβαρότητα που σχετίζεται με το γεγονός της επιτυχίας ή αποτυχίας ενός module. Το Linux-PAM έχει προβλέψει για τη πυραμιδοποίηση των παρόμοιων modules, παρέχοντας μια μέθοδο κατά την οποία ο χρήστης έρχεται σε επαφή με παραπάνω από ένα μηχανισμό πιστοποίησης για κάθε υπηρεσία-εφαρμογή. Η εφαρμογή δεν ενημερώνεται για την επιτυχία ή την αποτυχία του κάθε module που υπάρχει στο αρχείο /etc/pam.conf. Αντί αυτού λαμβάνει μία περιληπτική απάντηση επιτυχίας ή αποτυχίας από τη βιβλιοθήκη του Linux-PAM. Η σειρά εκτελέσεως αυτών των εντολών είναι αυτή με την οποία με την οποία έχουν καταχωρηθεί στο αρχείο /etc/pam.conf.
Η πολιτική καθορισμού αυτών των απαντήσεων βασίζεται στα παρακάτω τρία control-flags:
Το path (μονοπάτι) του δυναμικού φορτιζόμενου αρχείου αντικειμένου,δηλαδή το ίδιο το module. Εάν ο πρώτος χαρακτήρας του path είναι "/", τότε θεωρείται πλήρες το path. Εάν δεν είναι αυτή η περίπτωση το χορηγηθέν path για το module θεωρείται ότι αναφέρεται στο παρακάτω path:/usr/lib/security.
Τα args είναι μια λίστα τεκμηρίων που ενσωματώνονται στο module την ώρα που αυτό ελέγχεται όπως και τα arguments μιας τυπικής Linux εντολής κελύφους. Γενικά τα args είναι προαιρετικά αλλά και συγκεκριμένα για κάθε module. Μη έγκυρα args αγνοούνται από τα modules αλλά καταγράφεται το λάθος υποχρεωτικά στο syslog.
5.17.4 Ρύθμιση Βασισμένη σε Κατάλογο
Από την έκδοση 0.56 παρέχεται ένας πιο ευέλικτος τρόπος ρύθμισης του libpam. Αυτός ο τρόπος συνίσταται στη ρύθμιση των περιεχομένων του /etc/pam.d/ καταλόγου. Στη περίπτωση αυτή ο κατάλογος γεμίζει με αρχεία το καθένα από τα οποία έχει όνομα ίδιο με το όνομα μιας υπηρεσίας - είναι το προσωπικό αρχείο ρυθμίσεων της υπηρεσίας αυτής. Η ύπαρξη του κατάλογου /etc/pam.d/ σημαίνει ότι αγνοείται πλήρως το περιεχόμενο του αρχείου /etc/pam.conf . Το συντακτικό αυτού του αρχείου είναι παρόμοιο με αυτό του /etc/pam.conf αρχείου και οι καταχωρήσεις έχουν τη μορφή:
module-type control-flag module-path arguments
Η μόνη διαφορά, όπως παρατηρούμε, από το συντακτικό του αρχείου ρυθμίσεων είναι η έλλειψη του service-name, αυτό όμως συμπίπτει με το όνομα του αρχείου.
Αυτή η μέθοδος ρυθμίσεων έχει πολλά πλεονεκτήματα σε σχέση με τη προηγούμενη. Μερικά από αυτά είναι:
5.17.5 Οδηγός Αναφοράς Διαθέσιμων Μodules
Παρακάτω παρατίθεται μια λίστα με τα διαθέσιμα από το Linux-PAM modules:
5.17.6 Περαιτέρω Πληροφορίες
Στο site της εταιρίας RedHat μπορούν να βρεθούν λεπτομέρειες και επιπλέον πληροφορίες για το Linux – PAM: http://www.redhat.com. Επίσης στο οδηγό εγκατάστασης Installation guide Redhat 5.2 Linux υπάρχουν περαιτέρω πληροφορίες για την εγκατάσταση και ρύθμιση του PAM.
5.18 VPN (Virtual Private Network)
5.18.1 Εισαγωγή
Η εξάπλωση της δικτυωμένης οικονομίας έχει επιφέρει ουσιαστικές αλλαγές στον τρόπο λειτουργίας των επιχειρήσεων. Οι ομάδες εργασίας δεν ορίζονται πλέον τόσο από τον τόπο στον οποίο δουλεύουνε αλλά από την αποδοτικότητά τους στο έργο με το οποίο ασχολούνται. Ο ανταγωνισμός σε πολλές βιομηχανίες έχει οδηγήσει σε συμμαχίες και συνεταιρισμούς μεταξύ των επιχειρήσεων που όσο εκτεταμένες και αν είναι πάντα προβάλλονται ενιαία όταν έρχονται σε συναλλαγές με τους πελάτες τους. Αυτές οι εξελίξεις έχουν μεν αυξήσει την παραγωγικότητα και την κερδοφορία πολλών επιχειρήσεων,έχουν όμως ταυτόχρονα δημιουργήσει νέες απαιτήσεις για τις επιχειρήσεις αυτές. Ένα δίκτυο που επικεντρώνεται στο να συνδέει απλά σταθερά σημεία των συνεργαζόμενων επιχειρήσεων δεν είναι πλέον εφικτό για πολλές επιχειρήσεις. Οι απομακρυσμένοι χρήστες του δικτύου των επιχειρήσεων,όπως οι τηλε-εργαζόμενοι ή "μαχητές του δρόμου" και άλλοι εξωτερικοί συνεργάτες απαιτούν πλέον πρόσβαση στους πόρους του δικτύου της επιχείρησης. Το κλασικό WAN πρέπει λοιπόν να επεκταθεί ώστε να συμπεριλάβει και αυτού του τύπου τους εργαζόμενους. Συνεπώς ,πολλές επιχειρήσεις στρέφονται προς τα δίκτυα VPN για να συμπληρώσουν την υπάρχουσα WAN υποδομή τους.
Σύμφωνα με το Gartner Group,μια εταιρία έρευνας και υποστήριξης δικτύων,μέχρι το έτος 2003 περίπου το 100% των επιχειρήσεων θα συμπληρώσουν την υποδομή των WAN τους με VPNs. Από την οπτική γωνιά της αρχιτεκτονικής του δικτύου το κίνητρο είναι προφανές—τα VPN μπορούν να ανταποκριθούν καλύτερα στις σημερινές ποικίλες ανάγκες σύνδεσης. Τα πλεονεκτήματα των VPN είναι ορατά και στη τελική ανάλυση. Τα VPN είναι λιγότερο δαπανηρά στη λειτουργία τους από τα ιδιωτικά δίκτυα από άποψη διαχείρισης,εύρους ζώνης και κεφαλαίου. Κατά συνέπεια ο χρόνος απόσβεσης ενός VPN μετράται συνήθως σε μήνες αντί σε χρόνια. Ίσως ,το πιο σημαντικό πλεονέκτημα από όλα να είναι το ότι τα VPN επιτρέπουν στις επιχειρήσεις να επικεντρωθούν στο αντικείμενο ενασχόλησής τους και όχι στο πώς να κρατήσουν το δίκτυό τους ζωντανό και αποδοτικό.
5.18.2 Τι είναι τα VPN
Έχει αναπτυχθεί μία αρκετά μεγάλη φιλολογία γύρω από το τι είναι τα VPN , ποιά η λειτουργία τους και ποία η θέση τους στην αρχιτεκτονική των δικτύων. Για να το θέσουμε απλά το VPN είναι ένα δίκτυο επιχείρησης ανεπτυγμένο σε μία διανεμημένη υποδομή και έχει την ίδια ασφάλεια,διαχείριση και υφίσταται την ίδια πολιτική σε όλο το μήκος του σαν να επρόκειτο για ιδιωτικό δίκτυο. Τα VPN είναι μία εναλλακτική λύση της υποδομής που παρέχουν τα WAN και που αντικαθιστούν ή επαυξάνουν τα υπάρχοντα ιδιωτικά δίκτυα που χρησιμοποιούν μισθωμένες γραμμές ή Frame Relay/ATM δίκτυα που ανήκουν στην επιχείρηση. Τα VPN δεν έχουν άλλες απαιτήσεις από αυτές των WAN όπως υποστήριξη πολλαπλών πρωτοκόλλων,υψηλή αξιοπιστία και εκτεταμένη διαβάθμιση,απλά ικανοποιούν αυτές τις απαιτήσεις λιγότερο δαπανηρά. Ένα VPN μπορεί να αξιοποιήσει τις πιο γνωστές τεχνολογίες μεταφοράς που υπάρχουν σήμερα : το δημόσιο Internet, IP backbones διαφόρων παροχέων υπηρεσιών όπως επίσης και τα Frame Relay και ATM δίκτυά τους. Η λειτουργικότητα του VPN καθορίζεται κυρίως από τον εξοπλισμό που είναι ανεπτυγμένος στο δίκτυο και την ολοκλήρωση των χαρακτηριστικών του WAN και όχι από το πρωτόκολλο μεταφοράς που αυτό χρησιμοποιεί.
Τα VPN χωρίζονται σε τρεις κατηγορίες: απομακρυσμένης πρόσβασης ,intranets και extranets.
Τα remote access VPNs συνδέουν τηλεργαζόμενους, κινούμενους χρήστες ή ακόμα και μικρότερα απομακρυσμένα γραφεία με περιορισμένη κίνηση από και προς το WAN της επιχείρησης και των συλλογικών υπολογιστικών της πόρων.
Τα intranet VPNs συνδέουν σταθερά σημεία , παρακλάδια και γραφεία σπιτιών με το WAN της επιχείρησης.
Τα extranet VPNs επεκτείνουν την περιορισμένη πρόσβαση στους υπολογιστικούς πόρους της επιχείρησης στους διαφόρους συνεργάτες της που μπορεί να είναι προμηθευτές ή πελάτες επιτρέποντας πρόσβαση σε διαμοιράσιμη πληροφορία.
Κάθε τύπος VPN έχει διαφορετικά θέματα ασφάλειας και ποιότητας παρεχόμενων υπηρεσιών να αντιμετωπίσει.
5.18.3 Λόγοι Επιλογής των VPN από Επιχειρήσεις
Τα VPN προσφέρουν πολλά πλεονεκτήματα σε σχέση με τα παλιά – παραδοσιακά δίκτυα μισθωμένων γραμμών.Μερικά από αυτά είναι :
5.18.4 Συστατικά Μέρη των VPN
Οι VPN λύσεις ορίζονται από το εύρος των προσφερόμενων χαρακτηριστικών. Μία VPN πλατφόρμα πρέπει να είναι ασφαλής από εισβολή και λαθροχειρία,να μπορεί να παραδίδει κρίσιμα δεδομένα στο χρόνο που πρέπει και με αξιοπιστία και να είναι διαχειρίσιμο από κάθε σημείο της επιχείρησης.Αν κάποια από τις παραπάνω απαιτήσεις δεν εφαρμόζεται στην πράξη,η VPN λύση δεν είναι ολοκληρωμένη.
Τα ουσιαστικά στοιχεία ενός VPN μπορούν να χωριστούν σε πέντε αρκετά ανοιχτές κατηγορίες:
Αυτά τα πέντε συστατικά μέρη κλειδιά δίδονται από τη Cisco στο πλαίσιο του χαρακτηριστικού της διαβάθμισης των ανοιχτών συστημάτων παρέχοντας δυνατότητες από άκρη-σε-άκρη.
Η ικανοποίηση αυτών των απαιτήσεων δεν συνιστά απαραίτητα την αντικατάσταση μιας υπάρχουσας δικτυακής υποδομής WAN. Οι VPN λύσεις της Cisco επαυξάνουν τις υπάρχουσες δικτυακές υποδομές και τους δίνουν επιπλέον ασφάλεια , αξιοπιστία και δυνατότητα διαχείρισης – χαρακτηριστικά υπαρκτά σε ένα VPN περιβάλλον. Οι δρομολογητές της Cisco είναι "VPN-capable" δηλαδή έτοιμοι να υποστηρίξουν VPN λύσεις μέσα από το Cisco IOS. Σε μερικές περιπτώσεις τοπολογιών WAN όπου το ζητούμενο είναι υψηλή απόδοση κρυπτογράφησης και ασφάλειας συνίσταται η χρήση των "VPN-optimized" δρομολογητών,οι οποίοι προσφέρουν επιπλέον ασφάλεια μέσο καθαρά μηχανισμών hardware. Η εφαρμογή VPN λύσεων σε κάθε σύνολο από VPN routers δίνει τη δυνατότητα εύρωστης ανάπτυξης του VPN δικτύου μέσα από τις υπάρχουσες δικτυακές υποδομές χωρίς να υπάρχει η ανάγκη επενδύσεων σε νέες δομές από μέρους της επιχείρησης.
5.18.5 Ασφάλεια και Μηχανισμοί: Προστατεύοντας το Δίκτυο
Η ανάπτυξη των WAN σε ένα διαμοιρασμένο δίκτυο θέτει σοβαρά ζητήματα για την ασφάλειά του. Οι διάφορες επιχειρήσεις θέλουν να είναι σίγουρες για την ασφάλεια που τους παρέχει το VPN δίκτυό τους απέναντι σε εισβολείς που παρακολουθούν ή αλλοιώνουν κρίσιμα για την εταιρία δεδομένα που μετακινούνται στο δίκτυο και από χρήστες που κερδίζουν , παράνομα,πρόσβαση στους πόρους του δικτύου της εταιρίας. Η κρυπτογράφηση,η πιστοποίηση και ο έλεγχος πρόσβασης είναι οι διαδικασίες που διασφαλίζουν αυτές τις απαιτήσεις. Τα συστατικά στοιχεία—κλειδιά της ασφάλειας ενός VPN δικτύου είναι:
Αυτοί οι μηχανισμοί αλληλοσυμπληρώνονται παρέχοντας ασφάλεια σε διαφορετικά σημεία του δικτύου. Κάθε VPN λύση πρέπει να τους εφαρμόζει στην πράξη για να είναι βιώσιμη και αξιόπιστη.
Τούνελ και Κρυπτογράφηση
Τα VPN εφαρμόζουν την τεχνική των κρυπτογραφημένων τούνελ για να προστατέψουν τα δεδομένα από το να αλλοιωθούν και να παρακολουθηθούν από παράνομες οντότητες και για να πραγματοποιήσουν,εάν είναι αναγκαίο,ενθυλάκωση πολλαπλών πρωτοκόλλων. Τα Τούνελ παρέχουν λογική από άκρη-σε-άκρη σύνδεση σε ένα δίκτυο IP χωρίς μόνιμες συνδέσεις δίνοντας τη δυνατότητα εφαρμογής ανεπτυγμένων χαρακτηριστικών ασφάλειας σε ένα τέτοιο περιβάλλον. Η Κρυπτογράφηση εφαρμόζεται στη σύνδεση με τη διαδικασία των τούνελ με σκοπό το μπέρδεμα των δεδομένων κάνοντάς τα έτσι επεξεργάσιμα μόνο σε αυτούς για τους οποίους προορίζονται και από αυτούς που έχουν το δικαίωμα να τα στείλουν. Σε εφαρμογές όπου η ασφάλεια έρχεται σε δεύτερο λόγο,μπορεί να γίνει εφαρμογή της μεθόδου των τούνελ χωρίς τη χρήση κρυπτογράφησης για την παροχή υποστήριξης πολλαπλών πρωτοκόλλων χωρίς εξασφάλιση του απόρρητου. Τα VPN δίκτυα της Cisco χρησιμοποιούν την IPSec, δευτέρου επιπέδου πρωτόκολλο τουνελοποίησης (L2TP) το επίσης δευτέρου επιπέδου πρωτόκολλο προώθησης (L2F),το (GRE) πρωτόκολλο γενικής ενθυλάκωσης με υποστήριξη για τούνελ και τέλος τις πιο ισχυρές τεχνολογίες κρυπτογράφησης—DES και 3DES.Επιπλέον τα Cisco VPN χρησιμοποιούν μεγάλους διανομείς ηλεκτρονικών πιστοποιητικών όπως VeriSign, Entrust και Netscape για τη διαχείριση της ασφάλειας/κρυπτογράφησης.
Πιστοποίηση Πακέτων
Μεγάλη σημασία για την ασφάλεια της δικτυακά διακινούμενης πληροφορίας έχει η ακεραιότητά της. Σε ένα ανασφαλές δίκτυο,τα πακέτα μπορεί να υποκλαπούν ,να αλλοιωθούν τα δεδομένα τους και να επαναπροωθηθούν στον προορισμό τους με τη λανθασμένη πληροφορία. Για παράδειγμα μία παραγγελία σε ένα προμηθευτή μπορεί να αλλάξει από 1000 σε 100. Η προστασία που παρέχει η πιστοποίηση των πακέτων απέναντι σε αυτού του είδους τα προβλήματα είναι η επικόλληση επικεφαλίδων στα IP πακέτα για την εξασφάλιση της ακεραιότητάς τους. Συστατικά μέρη της IPSec όπως η επικεφαλίδα πιστoποίησης(Authentication Header-AH) και το πρωτόκολλο ασφάλειας ενθυλάκωσης(Encapsulation Security Protocol-ESP) χρησιμοποιούνται σε συνεργασία με αλγόριθμους όπως o MD5 και ο SHA(Secure Hash Algorithm), παραγωγής συναρτήσεων ενός δρόμου(hash functions),για να διασφαλίσουν την ακεραιότητα των δεδομένων των IP πακέτων σε ένα κοινό IP backbone.
Firewalls και Ανίχνευση Εισβολών, Καταγραφή Δεδομένων Ασφάλειας και Πιστοποίηση Χρηστών
Τα VPN χρησιμοποιούν τους Firewalls της Cisco(IOS Firewall και PIX), το σύστημα NetRanger για ανίχνευση εισβολών,το σύστημα NetSonar για καταγραφή δεδομένων ασφάλειας και ανίχνευση πιθανών ελλείψεων σε αυτήν, και τα συστήματα RADIUS και TACACS+ για πιστοποίηση χρηστών. Για όλα αυτά τα συστήματα υπάρχουν ειδικά κεφάλαια όπου αναλύονται διεξοδικά οι δυνατότητές τους και τα χαρακτηριστικά λειτουργίας τους.
5.18.6 Υπηρεσίες VPN
Διαχείριση της Δρομολόγησης και της Διασύνδεσης
Ένα ουσιώδες μέρος των χαρακτηριστικών λειτουργίας των VPN είναι η όσο το δυνατόν αποδοτικότερη χρήση του πολυτίμου εύρους ζώνης των WAN και η αξιόπιστη διασύνδεση κρίσιμων δεδομένων κατά την παροχή παραδοσιακών υπηρεσιών δρομολόγησης. Η φύση της δικτυακής κίνησης είναι τέτοια που δημιουργεί συμφορήσεις στο δίκτυο και κάνει κακή χρήση του διαθέσιμου εύρους ζώνης. Το τι αποκομίζουμε από αυτή τη κατάσταση είναι προφανές:οι διασυνδέσεις WAN υπολειτουργούν την ίδια στιγμή που η συμφόρηση του δικτύου,ιδιαίτερα τις ώρες αιχμής ,περιορίζει τη διακίνηση σημαντικών πληροφοριών.
Για τους παραπάνω λόγους αναπτύχθηκε και εφαρμόζεται η έννοια της ποιότητας των παρεχόμενων υπηρεσιών (Quality of Service-QoS). To QoS καθορίζει την ικανότητα του δικτύου να κατανέμει τους πόρους του συστήματος με σειρά προτεραιότητας σε κρίσιμες ή ευαίσθητες στην καθυστέρηση πληροφορίες και να ελαχιστοποιεί τους πόρους που προορίζονται για χρήση από μικρής προτεραιότητας πληροφορία. Το QoS θέτει δύο βασικές απαιτήσεις στις εφαρμογές που τρέχουν στα VPN:
Αυτοί οι μηχανισμοί του QoS αλληλοσυμπληρώνονται δουλεύοντας παράλληλα σε διαφορετικά σημεία του VPN και παράγοντας μία ολοκληρωμένη απ' άκρη-σ' άκρη QoS πρόταση.Το QoS πρέπει να εφαρμόζεται σε όλα τα μέρη των VPN για να είναι αποτελεσματικό διότι η αποσπασματική χρήση του δεν είναι ικανή να διασφαλίσει απόλυτα προβλέψιμα επίπεδα απόδοσης.Η απόδοση του δικτύου μπορεί να μετρηθεί με το Cisco Response Time Reporter (RTR),ένα χαρακτηριστικό παρακολούθησης του δικτύου από το Cisco IOS.Το RTR μετράει το χρόνο λειτουργίας του δικτύου,την καθυστέρηση και άλλα χαρακτηριστικά που βοηθούν στον καθορισμό πολιτικής και έλεγχο της εφαρμογής της.
Εκτός από τα πλεονεκτήματα της διαχείρισης του εύρους ζώνης, η Cisco αναγνώρισε και τη σπουδαιότητα της παροχής VPN υπηρεσιών δρομολόγησης που να συμπληρώνουν τους μηχανισμούς του QoS και παράλληλα να ενσωματώνονται στις ήδη υπάρχουσες. Δίδεται υποστήριξη στα πρωτόκολλα δρομολόγησης EIGRP και OSFP. Με αυτό το τρόπο παρέχεται η καλύτερη δυνατή μετανάστευση σε VPN υποδομές που παρέχουν σωστές υπηρεσίες QoS χωρίς να ενοχλείται η υπάρχουσα υποδομή.
Διαχείριση Δικτύου: Λειτουργώντας το VPN
Τα VPN περιλαμβάνουν πολλές υπηρεσίες ασφάλειας και QoS επιπρόσθετα αυτών των δικτυακών συσκευών.Οι επιχειρήσεις πρέπει να είναι σε θέση να διαχειρίζονται την VPN υποδομή συμπεριλαμβανομένων και των απομακρυσμένων χρηστών και των extranets. Λαμβάνοντας υπόψη όλα αυτά καταλαβαίνουμε τη σημασία της σωστής διαχείρισης των VPN. Ωστόσο μία VPN WAN αρχιτεκτονική είναι αρκετά ευέλικτη στη διαχείριση της και αντίθετα με οποιαδήποτε άλλη αρχιτεκτονική ιδιωτικού δικτύου προσφέρει τη δυνατότητα στις επιχειρήσεις να καθορίσουν το βαθμό του ελέγχου που θέλουν να έχουν πάνω στο δίκτυο οι ίδιες και να επιλέξουν λιγότερο ευαίσθητες υπηρεσίες που θα τις προωθήσουν σε παροχείς υπηρεσιών για να τις συντηρούν.
Πολλές επιχειρήσεις επιλέγουν την καθημερινή παρακολούθηση του VPN τους έχοντας έτσι την ανάγκη ενός συστήματος διαχείρισης και χάραξης πολιτικής.Ένα τέτοιο σύστημα επεκτείνει το υπάρχον πλαίσιο έτσι ώστε αυτό να συμπεριλάβει WAN κανόνες διαχείρισης. Η Cisco έχει αναπτύξει εργαλεία διαχείρισης συσκευών,υπηρεσιών και πολιτικών σε όλο το μήκος του VPN.
Όπως το WAN επεκτείνεται με τη τεχνολογία VPN ένα συγκεκριμένο πλαίσιο απαιτήσεων πρέπει να ικανοποιείται για να είναι επιτυχής η αποστολή του διαχειριστή του συστήματος. Αυτό είναι:
Η Cisco βοηθάει στην ικανοποίηση αυτών των απαιτήσεων μέσα από μία διαδικασία τριών βημάτων:κλιμακωτή διαχείριση συσκευών,υποστήριξη υβριδικών συστημάτων και αναβάθμιση των δικτύων που έχουν σαν βάση πλατφόρμες της Cisco.
Εργαλεία που επιτρέπουν τη διαχείριση μιας συσκευής κάθε φορά δεν δίνουν τη δυνατότητα στους διαχειριστές να εφαρμόσουν πολιτική ευρείας κλίμακας όπως απαιτείται από τις επιχειρήσεις. Το δίκτυο πρέπει να διαχειρίζεται από κάποια πολιτική,ενιαία και όχι σαν μεμονωμένες συσκευές. Έτσι είναι δυνατή η διαχείριση των πόρων του δικτύου μαζικά.
Σε ένα υβριδικό περιβάλλον λειτουργίας η διαχείριση του VPN θα πρέπει να γίνεται μέσα στην υπάρχουσα διαχειριστική αρχιτεκτονική. Τα διάφορα εργαλεία θα πρέπει να προσαρμοστούν και στις ανάγκες του VPN για να υπάρχει ομοιόμορφη διαχείριση.
Η Στρατηγική Διαχείρισης Δικτύων της Cisco
Η Cisco έχει αναπτύξει ένα σχέδιο χωρισμένο σε φάσεις για την παραγωγή διαχειριστικών εργαλείων για VPNs επιχειρήσεων τα οποία αναβαθμίζουν τα χαρακτηριστικά του Cisco Powered Networks που έχουν αναπτυχθεί από τους παροχείς υπηρεσιών. Στις πρώτες φάσεις τα χαρακτηριστικά της διαχείρισης των VPN έχουν ενσωματωθεί στην οικογένεια προϊόντων CiscoWorks2000 δίνοντας τη δυνατότητα μιας διαχείρισης των Cisco δικτύων μέσα από το Web και με κάποιες αναβαθμίσεις του προϊόντος ,παρέχεται δυνατότητα διαχείρισης και της ασφάλειας και του QoS των VPN. Στις τελικές φάσεις η διαχείριση των VPN δικτύων και της ασφάλειάς τους βάση πολιτικής θα επεκταθεί ώστε να περιλαμβάνει διαχείριση βασισμένη στα directories(Directory Enabled Network-DEN) και εργαλεία μέτρησης της απόδοσης και σύγκρισής της με την και απαιτούμενη προσδοκώμενη (Service Level Agreement-SLA) από τον παροχέα υπηρεσιών.
5.18.7 Κοινές Αρχιτεκτονικές VPN Δικτύων
Το Σημερινό WAN:Το Ιδιωτικό Δίκτυο
Τα σημερινά WAN είναι τυπικά χτισμένα με τη χρήση ιδιωτικών γραμμών ή ιδιωτικού Frame Relay/ATM. Το μέρος της απομακρυσμένης σύνδεσης στο δίκτυο είναι επίσης μια ιδιωτική λύση με τις εταιρίες να αναπτύσσουν και να διαχειρίζονται τα δικά τους συστήματα απομακρυσμένης πρόσβασης. Εφαρμογές extranet συνήθως δεν υποστηρίζονται ή πραγματοποιούνται σαν μία ακριβή υπηρεσία σε συγκεκριμένες περιπτώσεις που απαιτείται.
Ένα τέτοιο ιδιωτικό δίκτυο περιορίζει την επεκτασιμότητα του σε απομακρυσμένους χρήστες και συνεργάτες,είναι δύσκολο στη διαχείριση και επιπλέον ακριβό στο εύρος ζώνης και στη διαχείριση του. Η μετανάστευση από ένα ιδιωτικό δίκτυο σε VPN επικεντρώνεται στο κάθε ξεχωριστό τμήμα του δικτύου-intranet και απομακρυσμένης πρόσβασης-και επεκτείνει το δίκτυο στους συνεργάτες της επιχείρησης.
VPNs Aπομακρυσμένης Πρόσβασης (Remote Access)
Τα VPN αυτού του τύπου επεκτείνουν το δίκτυο σε τηλεργαζόμενους,κινούμενους χρήστες ή ακόμα και μικρότερα απομακρυσμένα γραφεία με περιορισμένη κίνηση από και προς το WAN της επιχείρησης και των συλλογικών υπολογιστικών της πόρων. Επιτρέπουν στους χρήστες να συνδεθούν στα intranets και extranets των συνεργατών τους όταν,από όπου και όπως αυτοί θέλουν. Τα VPNs απομακρυσμένης πρόσβασης παρέχουν σύνδεση δίνουν δυνατότητα σύνδεσης μέσα από μία διαμοιρασμένη μορφή με τις ίδιες πολιτικές με το ιδιωτικό δίκτυο. Οι μέθοδοι πρόσβασης είναι ευέλικτες – ασύγχρονες κλήσεις, ISDN, DSL, κινητό IP και καλωδιακές τεχνολογίες. Τα πλεονεκτήματα της μετάβασης στα VPN είναι:
Κατά την υλοποίηση ενός VPN σημαντική είναι απόφαση για το που θα ξεκινάει η διαδικασία του τούνελ και της κρυπτογράφησης—στον dialup client ή στον server πρόσβασης (Network Access Server-NAS). Στο μοντέλο λειτουργίας όπου έχουμε έναρξη σύνδεσης από client το κρυπτογραφημένο τούνελ εγκαθιδρύεται στον client χρησιμοποιώντας IPSec, L2TP, PPTP κάνοντας έτσι το δίκτυο του παροχέα υπηρεσιών απλά ένα μέσο μεταφοράς στο δίκτυο των συνεργατών. Ένα πλεονέκτημα του μοντέλου αυτού είναι το ότι η χρήση του πρωτοκόλλου POP για την κλήση στον παροχέα υπηρεσιών είναι ασφαλισμένη. Ένα ζήτημα που πρέπει να προσεχθεί στην περίπτωση αυτή είναι το αν θα ενεργοποιηθεί το λογισμικό ασφάλειας του συστήματος ή θα προτιμηθεί κάποιο συμπληρωματικό πακέτο ασφάλειας. Η επιλογή της δεύτερης λύσης έχει μεν όλα τα θετικά στοιχεία που απορρέουν από την εφαρμογή ειδικού πακέτου ασφάλειας αλλά έχει και το αρνητικό της ανάγκης εγκατάστασης και συντήρησής του.
Εάν το μοντέλο, τώρα, είναι ότι κάποιος server (NAS) ξεκινά τη σύνδεση τότε τα θέματα που αφορούν το λογισμικό που τρέχει στον client περιορίζονται αισθητά.Ο απομακρυσμένος χρήστης επικοινωνεί με το POP server του παροχέα υπηρεσιών χρησιμοποιώντας μία PPP/SLIP σύνδεση,πιστοποιείται από τον παροχέα υπηρεσιών ο οποίος σε απάντηση ξεκινά ένα ασφαλές κρυπτογραφημένο τούνελ με την επιχείρηση από το POP κάνοντας χρήση των L2TP ή L2F. Με την αρχιτεκτονική αυτή όλη η "εξυπνάδα" του VPN βρίσκεται στη πλευρά του server του παροχέα υπηρεσιών—δεν υπάρχει λογισμικό τελικού χρήστη στην επιχείρηση που να χρειάζεται συντήρηση μειώνοντας έτσι την ανάγκη διαχείρισης των απομακρυσμένων συνδέσεων. Το μειονέκτημα, ωστόσο,αυτού του σεναρίου είναι η ανυπαρξία ασφάλειας στο τοπικό δίκτυο που ενώνει τον client με το δίκτυο του παροχέα υπηρεσιών. Για την επιλογή του τελικού μοντέλου που ταιριάζει σε μια επιχείρηση πρέπει να γίνει στάθμιση όλων αυτών των παραγόντων.
Intranet VPNs
Τα Intranet VPNs είναι η εναλλακτική λύση στη δομή WAN αφού μπορούν να αυξήσουν ή να αντικαταστήσουν τις ιδιωτικές γραμμές ή άλλες ιδιωτικές WAN υποδομές ενεργοποιώντας διαμοιρασμένες υποδομές που παρέχονται από τους παροχείς υπηρεσιών. Τα Intranet VPNs χτίζονται πάνω στο Internet ή σε IP, Frame Relay ή ATM του δικτύου του παροχέα υπηρεσιών.
Τα Intranet VPNs που χτίζονται πάνω σε IP WAN υποδομή χρησιμοποιούν IPSec ή GRE για τη δημιουργία ασφαλών τούνελ για τη μεταφορά της κίνησης του WAN. Όταν συνδυάζονται με τους μηχανισμούς QoS (WFQ, WRED, GTS, CAR) του παροχέα υπηρεσιών , τότε διασφαλίζεται η αποδοτικότερη χρήση του εύρους ζώνης και αξιόπιστη διασύνδεση. Τα πλεονεκτήματα των Intranet είναι:
To στήσιμο ενός Intranet VPN χρησιμοποιώντας το Internet είναι η πιο αποδοτική ,για τα χρήματα που διατίθονται και τα αποτελέσματα που έχουμε,τεχνολογία υλοποίησης των VPN.Τα επίπεδα των υπηρεσιών,ωστόσο,δεν εγγυώνται στο Internet. Όταν υλοποιούμε ένα intranet VPN,πρέπει να σταθμίζουμε ποία τα υπέρ και ποία τα κατά των διαφόρων λύσεων. Εάν για παράδειγμα θέλαμε εγγυημένη ποιότητα διασύνδεσης τότε θα ήταν καλύτερα να στήναμε το VPN πάνω από κάποιο IP/frame Relay/ATM δίκτυο ενός παροχέα υπηρεσιών.
Πίνακας 1:Σύγκριση Δικτυακών Υποδομών Μεταφοράς
Χαρακτηριστικό |
Frame Relay |
Internet |
IP-VPN |
Αδιάλειπτη Παρουσία Παντού |
Χαμηλή |
Υψηλή |
Μέτρια |
Κόστος |
Μέτρια |
Χαμηλή |
Μέτρια |
Ασφάλεια |
Υψηλή |
Χαμηλή |
Υψηλή |
Απόδοση |
Υψηλή |
Χαμηλή- Μέτρια |
Υψηλή |
Εγγυημένα Επίπεδα Υπηρεσιών |
Ναι |
Όχι |
Ναι |
Το να επεκτείνει μια επιχείρηση τη σύνδεσή της με τους συνεργάτες και προμηθευτές της είναι ακριβή και δύσκολη υπόθεση σε ένα περιβάλλον ιδιωτικού δικτύου. Ακριβές αφιερωμένες συνδέσεις πρέπει να φτάσουν μέχρι τους συνεργάτες,πολιτικές διαχείρισης και πρόσβασης θα πρέπει να επιλεχθούν και να συντηρηθούν και συχνά υπάρχει η ανάγκη εγκατάστασης συμβατού εξοπλισμού στο site του συνεργάτη. Όταν επιπλέον υπεισέρχεται και ο παράγοντας "κλήση" τότε τα πράγματα μπλέκονται ακόμα περισσότερο διότι κάθε ξεχωριστό domain πρέπει να διαχειρίζεται ξεχωριστά. Χάρη σε αυτήν τη πολυπλοκότητα πολλές εταιρίες δεν επεκτείνουν τη σύνδεσή τους στους συνεργάτες τους και υπόκεινται σε ότι αυτό συνεπάγεται.
Ένα από τα πλεονεκτήματα της VPN WAN αρχιτεκτονικής είναι η ευκολία της ανάπτυξης και διαχείρισης των extranet. Η extranet σύνδεση επιτυγχάνεται χρησιμοποιώντας την ίδια αρχιτεκτονική και πρωτοκολλά με αυτά των intranet και απομακρυσμένων VPN δικτύων. Η κύρια διαφορά είναι το ότι η άδεια πρόσβασης στους χρήστες δίδεται μια φορά κατά τη σύνδεση στο δίκτυο του συνεργάτη τους.
Επιλογή Παροχέα Υπηρεσιών
Σε κάθε υλοποίηση VPN δικτύου οι παροχείς υπηρεσιών γίνονται συνεργάτες στη λύση. Η απόδοση του VPN δεν εξαρτάται μόνο από τον επιλεγμένο εξοπλισμό αλλά και από τη δυνατότητα παροχής εύρους ζώνης και dialup λειτουργίες από τον παροχέα υπηρεσιών. Για τους λόγους αυτούς οι παροχείς υπηρεσιών πρέπει να επιλέγονται προσεκτικά.
5.18.8 Περίληψη Χαρακτηριστικών και Πλεονεκτημάτων των Cisco VPN πλατφόρμων
χαρακτηριστικο |
λειτουργια |
πλεονεκτημα |
Cisco IOS |
Οι VPN συσκευές τρέχουν σε Cisco IOS λογισμικό |
|
Ολοκληρωμένη Λύση |
Ενοποιεί κάθε πλευρά του δικτύου της επιχείρησης: intranet, extranet, dial access |
|
Ανοικτή Αρχιτεκτονική |
Τα Cisco VPN κάνουν χρήση των WAN δραστηριοτήτων επιπέδου 2 και 3 |
|
Δυνατά Χαρακτηριστικά Τουνελοποίησης, Κρυπτογράφησης, Πιστοποίησης Πακέτων/Χρηστών, Firewall |
Επιτρέπει στις επιχειρήσεις να χρησιμοποιούν με ασφάλεια τα backbones των παροχέων υπηρεσιών |
|
Eυέλικτο QoS |
Διαχειρίζεται τη δικτυακή κίνηση βάση προτεραιοτήτων και σχεδίων κίνησης |
|
Ολοκλήρωση Οργάνων Συγκεκριμένου Σκοπού |
Ολοκληρώνει τη διαχείριση των firewall και του εύρους ζώνης στους routers |
|
Διαχείριση Δικτύου Επιχείρησης |
Σύνολο εργαλείων διαχείρισης, Ρύθμισης και διαχείρισης του δικτύου |
|
Λύσεις Βασισμένες στα Standards |
IPSec,L2TP,GRE, DES,3DES |
|
Αρχιτεκτονική Ανοικτής Υλοποίησης |
Τα Cisco VPN μπορούν να υλοποιηθούν σε hardware και σε software |
|
Ισχυρές Σχέσεις με τους Παροχείς Υπηρεσιών |
Η Cisco παρέχει το 80% του δικτυακού εξοπλισμού του Internet |
|
5.18.9 Περαιτέρω Πληροφορίες
Στο site της Cisco, ο αναγνώστης μπορεί να βρεί links για επιπλέον πληροφορίες: http://www.cisco.com.
5.19 SET (Secure Electronic Transactions)
5.19.1 Ορισμός
Το SET (Secure Electronic Transaction) είναι ένα πρωτόκολλο εμπορικών συναλλαγών με τη χρήση καρτών σε ανοικτά δίκτυα, το οποίο αναπτύχθηκε από την MasterCard και την Visa σαν μια μέθοδος εξασφάλισης των συναλλαγών με τη χρήση καρτών διαμέσου του Ιnternet.
Η διαδικασία περιλαμβάνει ένα αριθμό ελέγχων ασφαλείας που πραγματοποιείται με τη χρήση ψηφιακών πιστοποιητικών που χορηγούνται στους εμπλεκόμενους αγοραστές, εμπόρους και τράπεζες.
5.19.2 Προδιαγραφές
Το SET έχει δημιουργηθεί βάση συγκεκριμένων προδιαγραφών που προήλθαν από τις απαιτήσεις των επιχειρήσεων και αφορούσαν τις συναλλαγές τους. Αυτές οι προδιαγραφές είναι:
5.19.3 Συστατικά Στοιχεία του SET
Τα συστατικά στοιχεία του συστήματος SET είναι τέσσερα και είναι τα παρακάτω:
Είναι ένα προϊόν που χρησιμοποιεί ο καταναλωτής που βρίσκεται on-line και που επιτρέπει την πραγματοποίηση ασφαλών συναλλαγών σε ένα δίκτυο. Το Wallet πρέπει να δημιουργεί μηνύματα που τα αντιλαμβάνονται τα άλλα τρία προϊόντα που απαρτίζουν το SET (Merchant, Payment Gateway, Certificate Authority).
Είναι ένα προϊόν το οποίο τρέχει κάποιος on-line έμπορος για την επεξεργασία των στοιχείων των συναλλαγών και τη διεκπεραίωσή τους. Επικοινωνεί και αυτό με τα άλλα τρία μέρη του SET.
Είναι το προϊόν που τρέχει κάποιος τρίτος ο οποίος και επεξεργάζεται την πιστοποίηση των εμπόρων και των συναλλαγών (συμπεριλαμβανομένων οδηγιών πληρωμών από κατόχους καρτών). Επιπλέον αλληλεπιδρά και με ιδιωτικά εμπορικά δίκτυα.
Είναι το τελευταίο από τα συστατικά στοιχεία του SET το οποίο τρέχει μια αρμόδια υπηρεσία έκδοσης και πιστοποίησης ψηφιακών πιστοποιητικών για το σκοπό αυτό και όποτε ζητείται από τα Wallet, Merchant και Payment Gateway πάνω από δημόσια ή ιδιωτικά δίκτυα.
Το SET σαν πρωτόκολλο έχει ήδη υιοθετηθεί από τράπεζες και οικονομικούς οργανισμούς παγκοσμίως. Παρακάτω παρατίθενται σε μορφή πίνακα τα χαρακτηριστικά του και μια σύντομη αναφορά στο τι ακριβώς σημαίνουν.
Ανοικτές Προδιαγραφές |
Το SET είναι πρωτόκολλο ανοικτών προδιαγραφών που έχει επιλεγεί παγκοσμίως από μεγάλα χρηματοπιστωτικά ιδρύματα για συναλλαγές με πιστωτικές κάρτες στο Internet |
Βιομηχανική Υποστήριξη |
Το SET έχει την υποστήριξη των κυριότερων μελών της βιομηχανίας πιστωτικών καρτών όπως οι Visa, MasterCard, American Express και JCB |
Ανεξαρτησία Πλατφόρμας |
Το SET έχει σχεδιαστεί να είναι ανεξάρτητο από οποιαδήποτε συγκεκριμένη πλατφόρμα |
Διαλειτουργικότητα |
Το SET είναι το μόνο πρωτόκολλο ηλεκτρονικού εμπορίου που σχεδιάστηκε για συνεργασία με πολλαπλά προγράμματα που προέρχονται από διαφορετικούς κατασκευαστές |
Επέκταση της Υπάρχουσας Υποδομής |
Το SET επεκτείνει την υπάρχουσα υποδομή πιστωτικών καρτών στο Internet |
Δυνατή Ασφάλεια |
Το SET χρησιμοποιεί τεχνολογία κρυπτογράφησης για να προστατεύσει ευαίσθητες πληροφορίες από τα αδιάκριτα βλέμματα τρίτων |
Πιστοποίηση |
Η τεχνολογία SET πιστοποιεί όλα τα εμπλεκόμενα, σε μια συναλλαγή, μέρη κάνοντας χρήση ψηφιακών πιστοποιητικών |
Περιβάλλον Εμπιστοσύνης |
Το SET χρησιμοποιεί ένα ιεραρχικό σχήμα πέντε επιπέδων πιστοποίησης της εγκυρότητας, διασφαλίζοντας ένα περιβάλλον εμπιστοσύνης για το ηλεκτρονικό εμπόριο |
Λύσεις End-to-End |
To SET πιστοποιεί και εγκρίνει όλα τα εμπλεκόμενα μέρη |
5.19.4 Χρηματο-Οικονομικές Λύσεις Στο Internet
Το Internet επιτρέπει εύκολες, φθηνές και μαζικές επικοινωνίες και αυτός είναι ο λόγος για τον οποίο όλοι νιώθουν την ανάγκη να το εκμεταλλευτούν επενδύοντας σε αυτό.
Προς αυτή τη κατεύθυνση κινούνται και οι τράπεζες με τρόπο που θα επηρεάσει
Αυτά τα δύο αντικείμενα είναι απολύτως συσχετισμένα μεταξύ τους και πρέπει να αντιμετωπίζονται αναλόγως.
Ο όρος "INTERNET BANKING" αναφέρεται στην ικανότητα ενός συνδρομητή του Internet να έχει πλήρη πρόσβαση στο τραπεζικό σύστημα και σαν αποτέλεσμα αυτού να διαλέγει και να χρησιμοποιεί προϊόντα και υπηρεσίες διαμέσου του Internet όπως θα έκανε εάν βρισκόταν σε κάποιο υποκατάστημα τράπεζας.
O όρος "ELECTRONIC COMMERCE" αναφέρεται στην δυνατότητα που έχει ένας έμπορος να διαφημίζει τα προϊόντα του στο Internet και να δέχεται παραγγελίες και το αντίτιμό τους μέσω αυτού. Αναφέρεται επιπλέον στη δυνατότητα του καταναλωτή να ψάχνει και όταν βρίσκει να αγοράζει οποιοδήποτε προϊόν.
Η σχέση μεταξύ των δύο επιτρέπει στον καταναλωτή να αγοράζει προϊόντα πληρώνοντας με ηλεκτρονικό τρόπο. Αυτό μπορεί να γίνει με τη χρήση πιστωτικής κάρτας, μεταφοράς του ποσού στο λογαριασμό του προμηθευτή με τη μορφή ψηφιακής επιταγής ή τέλος ακόμα και με τη πληρωμή με "ηλεκτρονικό" ρευστό.
Τα χαρακτηριστικά του ραγδαία αναπτυσσομένου τομέα του "INTERNET BANKING" είναι τα παρακάτω:
Όλα τα παραπάνω αποτελούν σίγουρα την εικόνα του παρόντος για πολλές οικονομίες αλλά και του κοντινού μέλλοντος για άλλες. Η μόνη κριτική που έχει μέχρι τώρα διατυπωθεί για το σύστημα αφορά την ασφάλειά του κατά τη διάρκεια της εκπομπής των πληροφοριών από τον πελάτη στη τράπεζα και αντίστροφα. Η ασφάλεια αυτών των δεδομένων διασφαλίζεται από τη χρήση ειδικών γλωσσών προγραμματισμού όπως η Java, ειδικών αλγορίθμων κρυπτογράφησης και αποκρυπτογράφησης και άλλων διαδικασιών.
5.19.5 Διαχείριση PIN/TAN
Η διαχείριση PIN/TAN είναι μια εφαρμογή που χρησιμοποιείται για πιστοποίηση των πελατών που συνδέονται μέσω εφαρμογών INTERNET BANKING. Αυτό το πρόγραμμα παρέχει δυνατότητες ασφαλούς διαχείρισης του PIN του πελάτη από τον ίδιο τον πελάτη. Το PIN χρησιμοποιείται από τον πελάτη κατά τη σύνδεσή του στο σύστημα μέσω Internet.
Το πρόγραμμα παρέχει επίσης δυνατότητα διαχείρισης του TAN (Transaction Authentication Number). Μια λίστα αριθμών δίνεται στον πελάτη με τυχαία σειρά. Η εφαρμογή ζητάει έναν από αυτούς τους αριθμούς κάθε φορά που αιτείται η μεταφορά κάποιου ποσού. Κάθε αριθμός μπορεί να χρησιμοποιηθεί μόνο μια φορά. Η εφαρμογή απαντά σε αυτό το αριθμό με τον αντίστοιχό του ο οποίος περιέχεται στην εφαρμογή και έτσι είναι γνωστός στον πελάτη. Μέσα από αυτή τη διαδικασία ο πελάτης επιβεβαιώνει τη σύνδεσή του με τη τράπεζα και αντίστροφα. Η χρήση του PIN σε συνδυασμό με τον TAN παρέχει μια πολύ δυνατή διαδικασία πιστοποίησης του πελάτη. Ο λόγος είναι ότι και να καταφέρει κάποιος να τους αλγόριθμους κρυπτογράφησης δεν θα είναι σε θέση να αναπαράγει τον επόμενο τυχαίο αριθμό για να τον χρησιμοποιήσει για παράνομη μεταφορά κεφαλαίου. Επιπρόσθετα, το σύστημα κλειδώνει το λογαριασμό μετά από κάποιο αποτυχημένο αριθμό προσπαθειών παροχής του σωστού ΤΑΝ από το χρήστη.
Υπάρχουν επιπλέον μέθοδοι πιστοποίησης πελατών με τη χρήση έξυπνων καρτών και ψηφιακών πιστοποιητικών.
Αυτό το πρόγραμμα απαιτεί τη χρήση περιβάλλοντος RDBMS Oracle ή Sybase όπου η πληροφορία φυλάγεται σε ειδική (hash) μορφή.
Κρυπτογράφηση
Το προϊόν που χρησιμοποιείται παρέχει επιπλέον κρυπτογράφηση από αυτήν που προσφέρουν οι Internet browsers—για αυτό το λόγο είναι και προαιρετική. Αποτελείται από Κλάσεις Ασφάλειας της Java που παρέχουν κρυπτογράφηση 128-bit. Έτσι είναι δυνατό να σχεδιαστούν εφαρμογές ανοικτές σε ρυθμίσεις ώστε να καλύπτουν τις ανάγκες του κάθε ξεχωριστού πελάτη.
Αυτές οι Κλάσεις "κατεβαίνουν" στο PC του πελάτη κατά τη σύνδεσή στον server της τράπεζας. Ο πελάτης θα πρέπει να χρησιμοποιεί κάποια πρόσφατη έκδοση των πιο διαδεδομένων browser (Internet Explorer, Netscape Navigator). Δεν είναι απαραίτητη η εγκατάσταση κάποιου επιπλέον λογισμικού ή οποιουδήποτε είδους συσκευής. Οποιεσδήποτε αλλαγές στην τραπεζική εφαρμογή δεν επηρεάζουν με κανένα τρόπο τη λειτουργία του συστήματος αφού η εφαρμογή "κατεβαίνει" κάθε φορά στο PC του πελάτη.
Η κρυπτογράφηση 128-bit, την οποία διαθέτουν όλοι οι browsers στις Η. Π. Α. , είναι αντικείμενο περιορισμού εξαγωγής και έτσι δεν είναι διαθέσιμοι σε όλο το κόσμο. Πρόσφατα συγκεκριμένες εταιρίες εκτός Η. Π. Α. κατάφεραν να αναπαράγουν τον αυτόν τον αλγόριθμο και να τον διαθέσουν σε όλους.
Συστήματα που έχουν εγκατασταθεί στην Ελλάδα χρησιμοποιούν κρυπτογράφηση η οποία λειτουργεί επιπρόσθετα σε κάθε άλλη στο επίπεδο SSL. Με άλλα λόγια η τεχνολογία αυτή κρυπτογραφεί τα δεδομένα προτού και αφού δοθούν για μεταφορά Έτσι έχουμε μία 128-bit κρυπτογράφηση που "κάθεται" πάνω σε μια άλλη (SSL - 128-bit).
H κυβέρνηση των Η. Π. Α. έδωσε προσφάτως την έγκρισή της για εξαγωγή του 128-bit αλγόριθμου SSL κρυπτογράφησης για χρήση μόνο από χρηματο-οικονομικά ιδρύματα (εκτός των χωρών : Κούβα, Ιράν, Ιράκ, Λιβύη, Βόρειος Κορέα, Σουδάν Συρία, Ρωσία, Κίνα και Γαλλία). |
5.19.7 Περαιτέρω Πληροφορίες
Ο αναγνώστης μπορεί να βρει links για επιπλέον πληροφορίες στα site των εταιρίων: http://www.GlobeSet.com
Κεντρική Σελίδα | Κεφάλαιο 1 | Κεφάλαιο 2 | Κεφάλαιο 3 | Κεφάλαιο 4 | Κεφάλαιο 5 | Κεφάλαιο 6