Το
IPsec
Για την αντιμετώπιση του προβλήματος, η IETF (Internet Engineering
Task Force) επεξεργάζεται την περιγραφή ενός νέου συνόλου
προτύπων που ακούει στο όνομα IPsec (rfcs 1825-1829). Το IPsec
θα περιγράφει τόσο την πιστοποίηση κόμβων του Internet στα
χαμηλά επίπεδα του OSI, όσο και την κρυπτογράφηση και τη μετάδοση
κλειδιών στα επίπεδα αυτά. Παράλληλα θα υποστηρίζονται όλα
τα πρότυπα ασφαλείας που ήδη χρησιμοποιούνται στα υψηλότερα
επίπεδα του OSI (SSL κλπ).
Ενα εύλογο ερώτημα είναι πως μπορεί κανείς να επέμβει σήμερα
σε οποιοδήποτε επίπεδο του TCP/IP χωρίς να δημιουργήσει αναστατώσεις,
εδώ όμως βρίσκεται και ένα σημαντικό μέρος της ευελιξίας του
TCP/IP το οποίο επιτρέπει την εύκολη πρόσθεση νέων υπηρεσιών
και πρωτοκόλλων. Μέρος του IP header κάθε πακέτου είναι το
πεδίο "next protocol", το οποίο καθορίζει το είδος
του πακέτους που θα ακολουθήσει και συνήθως σήμερα είναι TCP
ή UDP και ακριβώς στο σημείο αυτό είναι που βρίσκεται η ευελιξία
του. Το IPsec προσθέτει νέες πληροφορίες στα header των πακέτων
με χρήση των οποίων γίνεται δυνατή η κρυπτογράφηση και πιστοποίηση
της προέλευσης αυτών.
Λέγοντας πιστοποίηση εννοούμε την επαλήθευση ότι η αναγραφόμενη
στο header διεύθυνση προέλευσης είναι και η πραγματική διεύθυνση
προέλευσης του πακέτου. Δεδομένου ότι οι περισσότερες επικοινωνίες
περιλαμβάνουν ανταλλαγή πακέτων μεταξύ των μερών, τότε όλα
τα μέρη πιστοποιούνται μεταξύ τους και ελαχιστοποιείται η
πιθανότητα παρεμβολής παρείσακτων διά της δικτυακής παραποίησης
ταυτότητας. Επιπλέον της διαδικασίας πιστοποίησης και παράλληλα
με αυτή, έρχεται η κρυπτογράφηση των περιεχομένων του πακέτου
ώστε τελικά αυτά να μεταδίδονται ασφαλή και μεταξύ του πραγματικού
αποστολέα και παραλήπτη.
Στο IPsec διακρίνουμε τρία επίπεδα υλοποίησης του παραπάνω
σχήματος: την ασφαλή ενσωμάτωση περιεχομένου (ESP: Encapsulation
of Security Payload), την επικεφαλίδα πιστοποίησης (AH: Authentication
Header) και το πρωτόκολλο διαχείρισης κλειδιών ασφαλείας (ISAKMP:
IP Security Association Key Management Protocol). Τα δύο πρώτα
ορίζουν νέα πακέτα για την κρυπτογραφημένη μετάδοση δεδομένων
και για τη μετάδοση πληροφοριών πιστοποίησης διεύθυνσης αντίστοιχα,
ενώ το τρίτο διαχειρίζεται την ανταλλαγή κλειδιών μεταξύ αποστολέων
και αποδεκτών τωνπακέτων ESP και AH.
Σχήμα 1. Κρυπτογράφηση (β) και κελυφοποίηση
(γ) συμβατικού πακέτου TCP/IP (α) σύμφωνα με το IPsec.
ESP=Encapsulating Security Payload, SPI=Security Protocol
Identifier, UDP=User Datagram Protocol
Το ESP καθορίζει τα περιεχόμενα ενός πακέτου IP. Κάθε πακέτο
ESP αποτελείται από μια επικεφαλίδα ελέγχου, το κύριο μέρος
δεδομένων και προαιρετικά από ένα δεύτερο τμήμα ελέγχου πιστοποίησης
(Σχήμα 1). Η επικεφαλίδα μπορεί να περιέχει πληροφορίες ελέγχου
που απαιτούνται από τους χρησιμοποιούμενους αλγόριθμους κρυπτογραφίας
όπως ο DES, οι οποίες ονομάζονται διάνυσμα αρχικοποίησης (initialization
vector), ενώ το τμήμα ελέγχου που ακολουθεί (authentication
trailer) περιέχει κάποιο κλειδί πιστοποίησης της κρυπτογράφησης
του κυρίως πακέτου, κάτι ανάλογο του γνωστού και απλού checksum.
Ο αλγόριθμος που συνήθως χρησιμοποιείται για την κρυπτογράφηση
του κυρίως πακέτου είναι ο DES, ο οποίος είναι διαθέσιμος
και σε hardware, καθώς και ο ασφαλέστερος triple-DES, για
την εξαγωγή αμφοτέρων των οποίων υπάρχει αυστηρός έλεγχος
από την κυβέρνηση των ΗΠΑ.
Αντίστοιχα με το ESP, τα πακέτα AH επίσης αναφέρονται στο
κύριο μέρος των δεδομένων που μεταφέρει το πακέτο, χωρίς να
κρυπτογραφούν αυτά καθεαυτά, αλλά παρέχοντας ένα είδος πιο
σύνθετου checksum πιστοποιώντας παράλληλα και την ταυτότητα
των μερών που επικοινωνούν. Για το σκοπό αυτό χρησιμοποιείται
είτε ο αλγόριθμος MD5 (Message Digest 5) της RSA, είτε ο SHA-1
(Security Hash Algorithm 1) που αναπτύχθηκε για λογαριασμό
της κυβέρνησης των ΗΠΑ, ενώ δεν αποκλείεται η χρήση πιο σύνθετων
αλγορίθμων κρυπτογράφησης οι οποίοι υπάρχουν ή θα αναπτυχθούν
στο μέλλον. Με το σχήμα αυτό, κρυπτογραφούνται τόσο τα περιεχόμενα
του πακέτου, όσο και τα χαρακτηριστικά κλειδιά επαλήθευσης
αυτών και μάλιστα με διαφορετικούς αλγόριθμους, ώστε να καθίσταται
πολύ δύσκολη η αποκρυπτογράφησή τους.
Το τρίτο από τα προαναφερθέντα επίπεδα είναι το ISAKMP (επαναλαμβάνουμε
τον ορισμό ISAKMP: Internet Security Association and Key Management
Protocol και εντοπίζουμε την ανάγκη δημιουργίας ενός νέου
πρωτοκόλλου εποκρυπτογράφησης των συντμήσεων…). Το ISAKMP
βασίζεται στο πρωτόκολλο ανταλλαγής κλειδιών Diffie-Hellman
το οποίο θεωρεί γνωστές τις ταυτότητες των δύο μερών είτε
με χρήση κλειδιών ασφαλείας εκ των προτέρων γνωστών σε αμφότερα,
είτε με τη βοήθεια πιστοποιητικών ασφαλείας (digital certificates)
και ανταλλάσσει πληροφορίες με τη βοήθεια πακέτων UDP προκειμένου
να πιστοποιηθούν από κοινού τα κοινά κλειδιά ασφάλειας μεταξύ
αμφοτέρων των μερών. Μια εναλλακτική μέθοδος υλοποίησης της
ασφάλειας στο επίπεδο αυτό είναι το SKIP (όχι το απορρυπαντικό,
αλλά το Simple Key Management for Internet Protocols) το οποίο
όμως δεν υποστηρίζει επικοινωνία μεταξύ αλγορίθμων κρυπτογράφησης
με αποτέλεσμα να υπάρχει ο κίνδυνος απώλειας πακέτων. Το ISAKMP
φαίνεται ότι τελικά θα επικρατήσει, έχοντας επιλεγεί και για
την υλοποίηση του IPv6.
Η απόφαση του αν θα χρησιμοποιηθούν πακέτα ESP ή AH εξαρτάται
από τις εκάστοτε συνθήκες: η χρήση και των δύο εξασφαλίζει
πιστοποίηση και κρυπτογράφηση ταυτόχρονα, έχει όμως χειρότερες
επιδόσεις από την χρήση μόνο του ESP (η οποία είναι και η
συνηθισμένη περίπτωση), εκτός και αν το μόνο που απαιτείται
είναι η πιστοποίηση της ταυτότητας των μερών, οπότε τα πακέτα
AH είναι αυτό που χρειάζεται.
Η περίπτωση στην οποία το πακέτο που πρόκειται να μεταφερθεί
μέσα από το δίκτυο (και περιλαμβάνει το αρχικό πακέτο ως πακέτο
δεδομένων μέσα στο κέλυφος ασφάλειας του IPsec) είναι μεγαλύτερο
από το μέγιστο υποστηριζόμενο μέγεθος στο μέσο μετάδοσης (λ.χ.
1518 bytes για το Ethernet) τότε αυτό είτε απορρίπτεται από
το PCP/IP stack πριν μεταδοθεί (με τη βοήθεια παραβολής με
την παράμετρο MTU : Maximum Transmission Unit) είτε κόβεται
σε δύο μικρότερα τμήματα, αυτό όμως είναι θέμα που αφορά τα
συγκεκριμένα προϊόντα που υλοποιούν το IPsec. Αυτό που σε
κάθε περίπτωση παραμένει, είναι ότι το πακέτο-κέλυφος για
τα προστατευμένα δεδομένα μας κλπ, είναι σε κάθε περίπτωση
και πάλι ένα πακέτο IP το οποίο μεταδίδεται χρησιμοποιώντας
την ήδη υπάρχουσα υποδομή του Internet, απλά περιέχει ως κέλυφος
το κωδικοποιημένο "απροστάτευτο" πακέτο που θα μεταδίδονταν
αν δεν μας απασχολούσε η κρυπτογράφηση και η πιστοποίηση (Σχήμα
1).