Βασικές Έννοιες

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/HTTP

  1. Το S/HTTP υποστηρίζει μία ποικιλία μηχανισμών ασφαλείας στους HTTP clients και servers. Το πρωτόκολλο παρέχει συμμετρικές δυνατότητες στον client και server που σημαίνει ότι τα μηνύματα και οι προτιμήσεις και των δύο πλευρών μεταχειρίζονται με τον ίδιο τρόπο, ενώ παράλληλα διατηρούνται το μοντέλο συναλλαγής και τα χαρακτηριστικά επικοινωνίας του HTTP.
  2. Αρκετά κρυπτογραφικά στάνταρντς ενσωματώνονται στους S/HTTP clients και servers συμπεριλαμβανομένων των PEM, PGP, Kerberos και PKCS-7 (ο πρόγονος του CMS). Είναι συμβατό με το HTTP.
  3. Το S/HTTP δεν απαιτεί πιστοποιητικά δημοσίων κλείδων από την μεριά του client, καθ' ότι υποστηρίζει και τα συμμετρικά κλειδιά. Αυτό είναι σημαντικό γιατί αυθόρμητες ιδιωτικές συναλλαγές μπορούν να λάβουν χώρα, χωρίς την απαίτηση από τους χρήστες να έχουν ένα έγκυρο ζεύγος δημόσιας – ιδιωτικής κλείδας. Βέβαια, είναι σε θέση να εκμεταλλευτεί την υπάρχουσα υποδομή πιστοποιητικών και ασύμμετρων κλειδιών.
  4. Το S/HTTP υποστηρίζει απ' άκρη σ' άκρη ασφαλής συναλλαγές, σε αντίθεση με το HTTP που προϋποθέτει μία αποτυχημένη προσπάθεια πρόσβασης του χρήστη πριν την εφαρμογή οποιωνδήποτε μηχανισμών ασφαλείας. Με το S/HTTP, σε καμία περίπτωση ευαίσθητα δεδομένα θα μεταδοθούν στο δίκτυο απροστάτευτα.
  5. Επιτρέπει πλήρη ευελιξία όσον αναφορά τους κρυπτογραφικούς αλγόριθμούς και τις παραμέτρους αυτών. Το είδος της παρεχόμενης προστασίας (κρυπτογράφηση, ψηφιακή υπογραφή, και τα δύο), οι αλγόριθμοι και τα πιστοποιητικά μπορούν να διαπραγματευτούν.
  6. Οι χρήστες αναμένονται να έχουν (αν και δεν συνιστάται) πολλαπλά πιστοποιητικά.

5.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 μηνύματος μπορεί να θεωρηθεί σαν μια συνάρτηση με τρεις εισόδους:

  1. Το μήνυμα που πρόκειται να προστατευτεί. Μπορεί να είναι ένα HTTP μήνυμα ή κάποιο άλλο αντικείμενο. Το HTTP μήνυμα μπορεί να είναι οποιασδήποτε έκδοσης του HTTP πρωτοκόλλου.
  2. Οι κρυπτογραφικές προτιμήσεις του παραλήπτη. Αυτές είτε έχουν καθοριστεί σε προηγούμενη επικοινωνία, είτε βασίζονται σε προρυθμίσεις.
  3. Οι κρυπτογραφικές προτιμήσεις του αποστολέα.

Ο αποστολέας συνδυάζει τις προτιμήσεις και των δύο πλευρών και αποφαίνεται για τους αλγόριθμους και μηχανισμούς που θα χρησιμοποιηθούν καθώς και για την μορφή των κλειδιών. Ίσως χρειαστεί η επέμβαση του χρήστη σε περίπτωση πολλών επιλογών. Στο προστατευμένο HTTP μήνυμα, έπειτα, προστίθονται κατάλληλες S/HTTP επικεφαλίδες και παράγεται το τελικό S/HTTP μήνυμα.

Παραλαβή του Μηνύματος

Η επεξεργασία του παραληφθέντος S/HTTP μηνύματος, με την σειρά της, μπορεί να θεωρηθεί σαν συνάρτηση με τέσσερις διακριτές εισόδους:

  1. Το S/HTTP μήνυμα.
  2. Οι πρωτύτερα δηλωμένες κρυπτογραφικές προτιμήσεις του παραλήπτη.
  3. Οι τρέχοντες κρυπτογραφικές προτιμήσεις του παραλήπτη.
  4. Οι πρωτύτερα δηλωμένες κρυπτογραφικές προτιμήσεις του αποστολέα. Ο αποστολέας μπορεί να έχει δηλώσει το είδος των κρυπτογραφικών διαδικασιών που θα εφήρμοζε στο μήνυμα.

Για να μπορέσει να επεξεργαστεί το 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 Διαπραγματεύσεις

Και δύο πλευρές πρέπει να είναι σε θέση να εκφράσουν τις προτιμήσεις και τις απαιτήσεις τους σχετικά με ποίες κρυπτογραφικές ενισχύσεις επιτρέπουν ή απαιτούν. Το σύνολο των πληροφοριών που διαπραγματεύονται, χωρίζεται σε τέσσερα μέρη:

Property: Το είδος της προστασίας (κρυπτογράφηση, υπογραφές, κτλ.).

Value: Ο αλγόριθμος που προσφέρει την παραπάνω προστασία.

Direction: Η κατεύθυνση για την οποία αναφέρονται οι συγκεκριμένες προτιμήσεις (reception, origination).

Strength: Πόσο ισχυρή είναι η επιλογή (required, optional, refused).

Η τιμή optional του τελευταίου πεδίου φανερώνει ότι οι αλγόριθμοι και το είδος της προστασίας που αναφέρονται στο Value και στο Property είναι προαιρετικές. Κατά την παραλαβή (reception) μηνύματος ασφαλισμένου με προαιρετικούς μηχανισμούς, ο παραλήπτης θα επιλέξει να το επεξεργαστεί αλλά δεν περιορίζεται στην επεξεργασία μόνο τέτοιων μηνυμάτων. Ο αποστολέας (origination) ο οποίος ορίζει κάποιες προτιμήσεις προαιρετικές, μπορεί να τις χρησιμοποιήσει όταν βρίσκονται σε συμφωνία με τις προτιμήσεις του παραλήπτη και δεν μπορεί όταν δεν είναι αποδεκτές.

Η τιμή required υποδηλώνει ότι ο παραλήπτης (reception) θα δέχεται S/HTTP μηνύματα μόνο με αυτές τις κρυπτογραφικές ενισχύσεις, ενώ ο αποστολέας (origination) θα χρησιμοποιεί μόνο αυτές ανεξάρτητα με τις προτιμήσεις του παραλήπτη.

Τέλος, η τιμή refused υποδηλώνει ότι ο παραλήπτης (reception) δεν θα δέχεται S/HTTP μηνύματα με τέτοιες κρυπτογραφικές ενισχύσεις, ενώ ο αποστολέας (origination) δεν θα παράγει ποτέ τέτοια μηνύματα.

Επικεφαλίδες Διαπραγμάτευσης

Η τιμή του πεδίου Property συμπληρώνεται με κατάλληλες επικεφαλίδες που προσδιορίζουν ποια κρυπτογραφική ιδιότητα βρίσκεται υπό συζήτηση.

  1. SHTTP-Privacy-Domains: Καθορίζει την διαδικασία που θα ασφαλίσει το HTTP μήνυμα (ή οποιουδήποτε άλλου τύπου δεδομένα). Οι δεκτές τιμές είναι "PEM", "PGP" και "PKCS-7". Οι υπόλοιπες επικεφαλίδες μπορούν είτε να αναφέρονται σε ένα από τα PEM", "PGP", "PKCS-7" οπότε ακολουθούν την SHTTP-Privacy-Domains, είτε να αναφέρονται και στις τρεις τιμές οπότε βρίσκονται πριν από την SHTTP-Privacy-Domains. Επιτρέπονται πολλαπλές τέτοιες επικεφαλίδες με σκοπό την υποστήριξη πολλαπλών συνδυασμό παραμέτρων.
  2. SHTTP-Certificate-Types: Υποδηλώνει τον τύπο των πιστοποιητικών που θα γίνονται ή δεν θα γίνονται δεκτά (ανάλογα με το πεδίο Strength).
  3. SHTTP-Key-Exchange-Algorithms: Υποδηλώνει τους αλγόριθμους που μπορεί να χρησιμοποιηθούν για την διαχείριση και ανταλλαγή κλειδιών.
  4. SHTTP-Signature-Algorithms: Υποδηλώνει τους αλγόριθμους ψηφιακών υπογραφών που μπορεί να χρησιμοποιηθούν.
  5. SHTTP-Message-Digest-Algorithms: Υποδηλώνει τους αλγόριθμους παραγωγής message digest.
  6. SHTTP-Symmetric-Contents-Algorithms: Εδώ καθορίζονται οι αλγόριθμοι συμμετρικής κρυπτογράφησης του HTTP μηνύματος (ή οποιουδήποτε άλλου τύπου δεδομένα).
  7. SHTTP-Symmetric-Header-Algorithms: Οι επικεφαλίδες ενός HTTP μηνύματος ασφαλίζονται ξεχωριστά από το υπόλοιπο μήνυμα. Οι αλγόριθμοι συμμετρικής κρυπτογράφησης που μπορεί να χρησιμοποιηθούν καθορίζονται με αυτήν την επικεφαλίδα.
  8. SHTTP-Privacy-Enhancement: Υποδηλώνει εάν θα εφαρμοστεί κρυπτογράφηση ("encrypt"), ψηφιακή υπογραφή ("sign") ή MAC ("auth").

Ένα παράδειγμα που εξηγεί αυτά που συζητήσαμε παραπάνω είναι:

Όπως προείπαμε, υπάρχουν προκαθορισμένες τιμές για τους μηχανισμούς προστασίας. Αυτές είναι:

 

 

 

 

 

5.9.8 Νέες Επικεφαλίδες HTTP

Το πρωτόκολλο S/HTTP καθορίζει μία συλλογή νέων επικεφαλίδων που τοποθετούνται στις επικεφαλίδες του HTTP μηνύματος. Με τον τρόπο αυτό οι νέες επικεφαλίδες μοιράζονται την κρυπτογραφική προστασία που παρέχεται στις υπάρχουσες. Οι νέες επικεφαλίδες παρουσιάζονται παρακάτω.

  1. Security-Scheme: Είναι απαραίτητη επικεφαλίδα που καθορίζει την έκδοση του S/HTTP πρωτοκόλλου. Η τρέχουσα έκδοση είναι η 1.4.
  2. Encryption-Identity: Προσδιορίζει την ταυτότητα μιας οντότητας για την οποία το μήνυμα θα μπορούσε να κρυπτογραφηθεί.
  3. Certificate-Info: Περιέχει πληροφορίες για τα πιστοποιητικά της οντότητας που προσδιορίζεται στην "Encryption-Identity".
  4. Key-Assign: Αυτή η επικεφαλίδα υποδηλώνει ότι το σύστημα επιθυμεί να συνδέσει ένα κλειδί με ένα συμβολικό όνομα, για μελλοντική του χρήση. Στην επικεφαλίδα περιέχεται το συμβολικό όνομα, το κλειδί, η μέθοδος σύμφωνα με την οποία θα αποκτηθεί το κλειδί (Ιnband και Kerberos), η διάρκεια ζωής του και τέλος τους αλγόριθμους με τους οποίους προορίζεται για χρήση το κλειδί. Στην περίπτωση Inband ανταλλαγής, το κλειδί μεταφέρεται σαν παράμετρος της επικεφαλίδας, ενώ στην περίπτωση Kerberos ανταλλαγής, το κλειδί μεταφέρεται στο εσωτερικό ενός ticket.
  5. Nonce: Περιέχει τιμή που χρησιμοποιείται για το ταίριασμα αίτησης και απάντησης. Σκοπός της είναι η διατήρηση της επικαιρότητας της σύνδεσης (freshness) και η αποφυγή replay attacks.

 

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

Βασικές Έννοιες