Πέμπτη 14 Ιουλίου 2011

SSL

Το πρωτόκολλο TCP παρέχει μια αξιόπιστη ροή bytes μεταξύ δύο κόμβων. Το πρωτόκολλο αυτό είναι προσανατολισμένο σε σύνδεση και έχει κατάσταση, ανιχνεύει απώλειες πακέτων και λήψη πακέτων εκτός σειράς και απορρίπτει επαναλαμβανόμενα δεδομένα. Το πρωτόκολλο, επίσης, εκτελεί αυθεντικοποίηση οντότητας βασισμένη σε διευθύνσεις, όταν εγκαθιστά σύνοδο μεταξύ δύο κόμβων. Το TCP δεν υποστηρίζει ισχυρή κρυπτογραφική αυθεντικοποίηση οντοτήτων, ακεραιότητα δεδομένων και εμπιστευτικότητα. Οι υπηρεσίες αυτές εισάχθηκαν στο πρωτόκολλο Secure Socket Layer (SSL), που αναπτύχθηκε από την Netscape, κυρίως για να προστατεύσει την κίνηση στον παγκόσμιο ιστό. Η προδιαγραφή Transport Layer Security (TLS) της IETF είναι σχεδόν ταυτόσημη με την έκδοση 3 του SSL και γι’ αυτό το πρωτόκολλο είναι τώρα γνωστό ως SSL/TLS.

Μέσα στη σειρά πρωτοκόλλων Internet, το SSL βρίσκεται μεταξύ του επιπέδου εφαρμογής(π.χ. HTTP - προβολή ιστοσελίδων,FTP - μεταφορά αρχείων, IMAP - email) και του TCP.
Επομένως, το SSL μπορεί να βασίζεται στις ιδιότητες που εγγυάται το TCP και, για παράδειγμα, δε χρειάζεται να ασχοληθεί με την αξιόπιστη παράδοση των δεδομένων. Όπως και το TCP, το SSL έχει κατάσταση και είναι προσανατολισμένο σε σύνδεση. Η κατάσταση συνόδου SSL περιέχει πληροφορίες που απαιτούνται για την εκτέλεση κρυπτογραφικών αλγόριθμων, όπως ταυτότητα συνόδου, καθορισμός κρυπτογραφικού συστήματος, κοινά μυστικά κλειδιά, πιστοποιητικά, τυχαίες τιμές που χρησιμοποιούν πρωτόκολλα, όπως το πρωτόκολλο Diffie–Hellman, κ.λπ. Για να εξυπηρετήσει την επιβάρυνση που προκαλείται από τη διαχείριση κλειδιών, μια σύνοδος SSL μπορεί να περιέχει πολλαπλές συνδέσεις. Το χαρακτηριστικό παράδειγμα είναι μια σύνοδος HTTP μεταξύ ενός πελάτη και ενός εξυπηρετητή, όπου δημιουργείται μια καινούργια σύνδεση για τη μεταφορά ενός σύνθετου εγγράφου. Μόνο ένα υποσύνολο της πληροφορίας κατάστασης χρειάζεται να αλλάξει για κάθε σύνδεση.

Το πρωτόκολλο SSL υποδιαιρείται σε δύο υπο–πρωτόκολλα:

Το πρωτόκολλο εγγραφής SSL και
Το πρωτόκολλο χειραψίας SSL.


ΤΟ ΠΡΩΤΟΚΟΛΛΟ ΕΓΓΡΑΦΗΣ SSL

Το πρωτόκολλο εγγραφής SSL δέχεται blocks δεδομένων από ένα πρωτόκολλο ανώτερου επιπέδου, τα τεμαχίζει σε μη κρυπτογραφημένες εγγραφές SSL και μετά εφαρμόζει τον κρυπτογραφικό μετασχηματισμό που καθορίζεται από την παράμετρο cipher spec στην τρέχουσα κατάσταση συνόδου. Βασικά, το πρωτόκολλο αυτό παρέχει μια υπηρεσία παρόμοια με αυτή του IPsec, η δε ομοιότητα ανάμεσα στη σύναψη ασφάλειας του IPsec και την κατάσταση SSL δεν είναι καθόλου τυχαία.

ΤΟ ΠΡΩΤΟΚΟΛΛΟ ΧΕΙΡΑΨΙΑΣ SSL

Το πρωτόκολλο χειραψίας SSL είναι το βασικό πρωτόκολλο που βρίσκεται πάνω από το πρωτόκολλο εγγραφής SSL. Μηνύματα χειραψίας SSL παρέχονται στο πρωτόκολλο εγγραφής SSL, όπου εσωκλείονται μέσα σε μία ή περισσότερες εγγραφές SSL, οι οποίες υφίστανται επεξεργασία και μεταδίδονται όπως καθορίζει η μέθοδος συμπίεσης και οι προδιαγραφές κρυπτογράφησης των τρεχουσών καταστάσεων συνόδου και σύνδεσης. Ο σκοπός τουπρωτοκόλλου χειραψίας SSL είναι να μπορέσουν ο πελάτης και ο εξυπηρετητής να συμφωνήσουν για τα πρωτόκολλα που θα χρησιμοποιήσουν στην επικοινωνία τους, να επιλέξουν τη μέθοδο συμπίεσης και τις προδιαγραφές κρυπτογράφησης, πιθανόν να αυθεντικοποιηθούν αμοιβαία, και να δημιουργήσουν ένα βασικό μυστικό, από το οποίο είναι δυνατόν να παραχθούν τα διάφορα κλειδιά συνόδων για κρυπτογράφηση και αυθεντικοποίηση μηνυμάτων.

Περιληπτικά, η λειτουργία του πρωτοκόλλου φαίνεται στο παρακατω σχημα (κάντε κλικ για μεγέθυνση):