Χρήστης:ΜΑΡΙΑΝΝΑ ΣΤΟΥΓΙΑΝΝΙΔΟΥ/Βιβλία/Θέματα Ασφάλειας Δικτύων Για Μηχανικούς Πληροφορικής
Αυτό είναι ένα "Βικιβιβλίο" | [ ράφι ] | |
[ φόρτωση βιβλίου ] [ PDF ] [ παραγγελία ως έντυπο βιβλίο ] |
Θέματα Ασφάλειας Δικτύων Για Μηχανικούς Πληροφορικής
[επεξεργασία]
Hypertext Transfer Protocol (HTTP)
[επεξεργασία]Ορισµός
Το HTTP αποτελεί συντοµογραφία της φράσης: HyperText Transfer Protocol (Πρωτόκολλο Μεταφοράς Υπερκειµένου). Είναι ένα σύνολο κανόνων, ή αλλιώς πρωτόκολλο, που καθορίζει τον τρόπο µε τον οποίο θα γίνει η µεταφορά του υπερκειµένου (hypertext) µεταξύ δύο ή περισσοτέρων υπολογιστών.
Το πρωτόκολλο HTTP είναι το πιο συνηθισµένο στον ηλεκτρονικό χώρο του World Wide Web. Το πρωτόκολλο αυτό χρησιµοποιείται από τη συγκεκριµένη υπηρεσία του δικτύου Internet από το 1990. Το HTTP αποτελεί ένα πρωτόκολλο του επιπέδου εφαρµογών στα δίκτυα υπολογιστών και χρησιµοποιείται κυρίως σε διανεµηµένα πληροφορικά συστήµατα υπερµέσων. Είναι ένα γενικό, αντικειµενοστραφές πρωτόκολλο που µπορεί να χρησιµοποιηθεί σε ένα πλήθος εφαρµογών, για παράδειγµα σε εξυπηρετητές-διανοµείς (servers) και διανεµηµένα συστήµατα διαχείρισης αντικειµένων. Το βασικότερο και πιο σηµαντικό ίσως χαρακτηριστικό του πρωτοκόλλου αυτού είναι ότι επιτρέπει στα διάφορα συστήµατα µετάδοσης δεδοµένων να υφίστανται ανεξάρτητα από τα δεδοµένα που αυτά µεταφέρουν. Πιο ειδικά αναφέρουµε ότι, όπως όλες οι υπηρεσίες του Internet έτσι και η υπηρεσία WWW στηρίζεται στο µοντέλο πελάτη / διανοµέα client/server. Αυτό σηµαίνει, πως το σύνολο των πληροφοριών βρίσκεται σε κάποιον υπολογιστή που εξυπηρετεί κλήσεις ανάσυρσης. Το πρόγραµµα εξυπηρέτησης των κλήσεων ονοµάζεται server, ενώ το πρόγραµµα το οποίο στέλνει τις κλήσεις στον server ονοµάζεται client. Έτσι, λοιπόν, στην υπηρεσία WWW ο server ονοµάζεται Web server και ο client ονοµάζεται Web client ή Web browser. Το πρωτόκολλο που χρησιµοποιείται για τη µεταφορά των δεδοµένων και των κλήσεων από τον Web server στον Web browser (και αντίστροφα) ονοµάζεται HTTP (HyperText Transfer Protocol). Το πρωτόκολλο HTTP επιτρέπει στον υπολογιστή A (τον πελάτη-client) να πραγµατοποιήσει µια σύνδεση µε τον υπολογιστή B (τον διανοµέα- server) και να υλοποιήσει την αίτησή του. Ο server αποδέχεται την σύνδεση που ξεκίνησε από τον client και στέλνει πίσω µια απάντηση. Η HTTP αίτηση αναζητά και βρίσκει την πηγή για την οποία ο client ενδιαφέρεται και λέει στο server ποια ενέργεια να κάνει αναφορικά µε αυτή την πηγή. Το πρωτόκολλο HTTP (Hypertext Transfer Protocol) λοιπόν, είναι το σύνολο των κανόνων για την µεταφορά του υπερκειµένου(hypertext) (το οποίο µπορεί να αντιστοιχεί σε αρχεία κειµένου, γραφικών, εικόνας, ήχου, video ή οποιουδήποτε multimedia αρχείου) µέσα στον Παγκόσµιο Ιστό (World Wide Web). Αµέσως µόλις ο χρήστης του Web ανοίξει τον δικό του Web browser, κάνει χρήση του πρωτοκόλλου HTTP. Το HTTP είναι ένα πρωτόκολλο σε επίπεδο εφαρµογής, όπως προαναφέραµε, το οποίο δουλεύει πάνω από το TCP/IP (το θεµελιώδες σύστηµα πρωτοκόλλων για το Internet).
Επομένως το πρωτόκολλο HTTP περιλαµβάνει (όπως άλλωστε υπονοεί και η λέξη Hypertext στην ονοµασία του) την ιδέα ότι τα αρχεία µπορούν να περιέχουν αναφορές σε κάποια άλλα αρχεία, των οποίων η επιλογή από το χρήστη µπορεί να οδηγήσει σε πρόσθετες αιτήσεις µεταφοράς. Κάθε υπολογιστής που είναι Web server περιέχει, έκτος από τις Web σελίδες που µπορεί να προβάλλει, και ένα HTTP daemon, ένα πρόγραµµα δηλαδή το οποίο είναι σχεδιασµένο να περιµένει τις HTTP αιτήσεις των χρηστών και να τις χειρίζεται από εκεί και πέρα. Επίσης ο Web browser που κάποιος χρήστης χρησιµοποιεί είναι ένα HTTP client, ο οποίος στέλνει αιτήσεις στους υπολογιστές που έχουν το ρόλο του server. Όταν ο χρήστης στέλνει µέσω του browser µια αίτηση είτε «ανοίγοντας» ένα Web αρχείο (πληκτρολογώντας στο πεδίο URL του browser) είτε επιλέγοντας µε το mouse ένα υπερσύνδεσµο (hypertext link), ο browser δηµιουργεί µια HTTP αίτηση και τη στέλνει στην αντίστοιχη Internet Protocol address (IP address) η οποία υποδεικνύεται από το URL. Έπειτα ο HTTP daemon που είναι εγκατεστηµένος στον υπολογιστή που παίζει το ρόλο του server λαµβάνει την αίτηση και αποστέλλει πίσω το επιθυµητό αρχείο ή αρχεία τα οποία έχουν σχέση µε την εν λόγω αίτηση.
Η HTTP 1.1 είναι η τελευταία και πιο διαδεδοµένη έκδοση του πρωτοκόλλου HTTP. Από την αρχή της δηµιουργίας τους και της εφαρµογής τους στο World Wide Web, τα πρωτόκολλα της οικογένειας αυτής περνούν συνεχώς από διάφορα στάδια αναθεώρησης µε σκοπό να καλυφθούν τυχόν αδυναµίες των αρχικών εκδόσεων του HTTP. Η έκδοση HTTP 1.1 παρέχει ταχύτερη παράδοση των Web σελίδων από ότι η
αρχική έκδοση HTTP µε συνέπεια να µειώνεται η δικτυακή κίνηση. Έχει αναπτυχθεί από τον οργανισµό Internet Engineering Task Force (IETF) και υποστηρίζεται από όλους τους τελευταίους Web servers και browsers. Αντί να ανοίγει και να κλείνει µια σύνδεση για κάθε µία αίτηση του browser η HTTP 1.1 παρέχει µια µόνιµη σύνδεση η οποία επιτρέπει σε πολλαπλές αιτήσεις να µπουν στη σειρά προς εκτέλεση σε ένα output buffer. Επειδή ο αριθµός των αιτήσεων για συνδέσεις και αποσυνδέσεις µε σκοπό την παροχή κάποιου αρχείου µειώνεται, λιγότερα «πακέτα» χρειάζεται να κυκλοφορήσουν µέσα στο Internet. Επειδή οι αιτήσεις µπαίνουν η µία πίσω από την άλλη, τα TCP segments είναι πιο αποτελεσµατικά. Το συνολικό αποτέλεσµα είναι λιγότερη κίνηση στο Internet και ταχύτερη απόδοση για το χρήστη. Η µόνιµη σύνδεση είναι παρόµοια το HTTP 1.0 extension του Netscape που ονοµάζεται KeepAlive, αλλά παρέχει καλύτερο χειρισµό των αιτήσεων που µεατακινούνται µέσω των proxy servers. Όταν ένας browser υποστηρίζει την έκδοση HTTP 1.1 µπορεί να κάνει αποσυµπίεση σε αρχεία HTML, τα οποία έχει συµπιέσει ο server για να µεταφερθούν µέσα από το Internet, µε αυτό τον τρόπο παρέχεται µεγάλη εξοικονόµηση στην ποσότητα των δεδοµένων τα οποία πρέπει να µεταφερθούν εκτός από τις µόνιµες συνδέσεις και τις άλλες βελτιώσεις στην απόδοσή,το HTTP 1.1 επιπλέον παρέχει τη δυνατότητα να έχουµε παραπάνω από ένα ονόµατα domain τα οποία µοιράζονται την ίδια Internet address (IP address). Αυτό απλοποιεί τις διαδικασίες για τους Web servers που φιλοξενούν ένα αριθµό από δικτυακούς τόπους (Web sites).
Τέλος, το πρωτόκολλο HTTP παρέχει πρόσβαση και σε άλλα πρωτόκολλα που χρησιµοποιούνται στο Internet, µεταξύ των οποίων τα ακόλουθα:
- File Transfer Protocol (FTP)
- Simple Mail Transfer Protocol (SMTP)
- Network News Transfer Protocol (NNTP)
- WAIS
- gopher
- Telnet and TN3270
Ιστορική Αναδρομή
Στις αρχές τις δεκαετίας του 1980 το ∆ιαδίκτυο χρησιµοποιούνταν κυρίως στην ακαδηµαϊκή κοινότητα. Οι υπηρεσίες που παρείχε ήταν η πρόσβαση σε έναν αποµακρυσµένο υπολογιστή, το ηλεκτρονικό ταχυδροµείο, η µεταφορά αρχείων και η αποστολή και λήψη νέων. Το 1989 στα εργαστήρια του Ευρωπαϊκού Κέντρου Πυρηνικών Ερευνών CERN προτάθηκε η ιδέα του Παγκόσµιου Ιστού (World Wide Web – WWW) ή απλά Ιστού (Web) από τον φυσικό Tim Berners – Lee ως µία αρχιτεκτονική για την επικοινωνία µεταξύ των διαφόρων ερευνητικών οµάδων του CERN. Η βασική ιδέα της αρχιτεκτονικής αυτής ήταν η διασύνδεση των εγγράφων που ήταν διασκορπισµένα στο ∆ιαδίκτυο. Γρήγορα έγινε ιδιαίτερα δηµοφιλές και γύρω του αναπτύχθηκε µία ολόκληρη βιοµηχανία. Η δηµοτικότητά του οφείλεται τόσο στο γραφικό περιβάλλον χρήσης του όσο και στην µεγάλη πληθώρα πληροφοριών που διαθέτει µε αποτέλεσµα ο κάθε χρήστης να µπορεί να βρει αυτό που τον ενδιαφέρει µε ελάχιστο κόστος.
Hypertext Transfer Protocol Secure (HTTPS)
[επεξεργασία]Το HTTPS δεν είναι ξεχωριστό πρωτόκολλο αλλά αναφέρεται στο συνδυασμό του απλού HTTP πρωτοκόλλου και των δυνατοτήτων κρυπτογράφησης που παρέχει το πρωτόκολλο Secure Sockets Layer (SSL). Η κρυπτογράφηση που χρησιμοποιείται διασφαλίζει ότι τα κρυπτογραφημένα δεδομένα δε μπορούν να υποκλαπούν από άλλους κακόβουλους χρήστες. Για να χρησιμοποιηθεί το HTTPS σε κάποιο server θα πρέπει ο διαχειριστής του να εκδώσει ένα πιστοποιητικό δημοσίου κλειδιού. Σε servers που χρησιμοποιούν το λειτουργικό σύστημα UNIX αυτό μπορεί να γίνει μέσω του προγράμματος OpenSSL. Στην συνέχεια το πιστοποιητικό αυτό θα πρέπει να υπογραφεί από μία αρχή πιστοποίησης (certificate authority), η οποία πιστοποιεί ότι ο εκδότης του πιστοποιητικού είναι νομότυπος και ότι το πιστοποιητικό είναι έγκυρο. Με τον τρόπο αυτό οι χρήστες μπορούν να δουν την υπογραφή της αρχής πιστοποίησης και να βεβαιωθούν ότι το πιστοποιητικό είναι έγκυρο και ότι κανένας κακόβουλος χρήστης δεν το έχει πλαστογραφήσει. Tο HTTPS χρησιμοποιείται κυρίως όταν απαιτείται μεταφορά ευαίσθητων προσωπικών δεδομένων. Το επίπεδο προστασίας των δεδομένων εξαρτάται από το πόσο σωστά έχει εφαρμοστεί η διαδικασία ασφάλειας που περιγράφηκε στην προηγούμενη ενότητα και από το πόσο ισχυροί είναι οι αλγόριθμοι κρυπτογράφησης που χρησιμοποιούνται.
Πολλοί χρήστες πιστωτικών καρτών θεωρούν ότι το HTTPS προστατεύει ολοκληρωτικά τα στοιχεία της πιστωτικής τους κάρτας από κατάχρηση. Το HTTPS χρησιμοποιεί την κρυπτογράφηση για να μεταδώσει τον αριθμό από τον υπολογιστή του πελάτη προς τον server. Η μετάδοση είναι ασφαλής και τα δεδομένα φτάνουν στον server χωρίς κανείς να μπορέσει να τα υποκλέψει. Απαραίτητη προϋπόθεση για να λειτουργήσει το HTTPS , είναι η "Dedicated IP".
Διαφορές HTTP/HTTPS
[επεξεργασία]Υπάρχουν κάποιες βασικές διαφορές μεταξύ http και https, ωστόσο, αρχίζοντας με την προεπιλεγμένη θύρα, η οποία είναι 80 για http και 443 για https. Το HTTPS λειτουργεί με τη διαβίβαση http αλληλεπιδράσεων μέσω κρυπτογραφημένου συστήματος, λόγω του ότι στη θεωρία, οι πληροφορίες δεν μπορούν να έχουν πρόσβαση από οποιοδήποτε μέρος, εκτός από το διακομιστή-πελάτη. Υπάρχουν δύο τύποι στρώματα κρυπτογράφησης: Transport Layer Security (TLS) και Secure Sockets Layer (SSL), τα οποία κωδικοποιούν τα αρχεία δεδομένων που ανταλλάσσονται. Όταν χρησιμοποιείτε μια σύνδεση HTTPS, ο διακομιστής απαντά με την αρχική σύνδεση, προσφέροντας μια λίστα με τις μεθόδους κρυπτογράφησης που υποστηρίζει. Σε απάντηση, ο πελάτης επιλέγει μια μέθοδο σύνδεσης, και τα πιστοποιητικά ανταλλαγή client και server για την επικύρωση των ταυτοτήτων τους. Αφού γίνει αυτό, αμφότερα τα μέρη ανταλλάσσουν τις κρυπτογραφημένες πληροφορίες μετά από την εξασφάλιση ότι και τα δύο χρησιμοποιούν το ίδιο κλειδί, και η σύνδεση είναι κλειστή. Προκειμένου να φιλοξενήσει συνδέσεις HTTPS, ένας διακομιστής πρέπει να έχει ένα πιστοποιητικό με δημόσιο κλειδί, το οποίο ενσωματώνει τις βασικές πληροφορίες σε επαλήθευση της ταυτότητας του ιδιοκτήτη κλειδί. Τα περισσότερα πιστοποιητικά επαληθεύονται από τρίτο μέρος, έτσι ώστε οι πελάτες νοιώθουν σίγουροι ότι το κλειδί είναι ασφαλής.
Secure Socket Layer (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 αναπτύχθηκε από την Netscape Communications Corporation για την ασφαλή επικοινωνία ευαίσθητων πληροφοριών όπως προσωπικά στοιχεία και αριθμούς πιστωτικών καρτών. Η πρώτη σχεδίαση του πρωτοκόλλου έγινε τον Ιούλιο του 1994 και αποτελούσε την πρώτη έκδοση (version 1.0) και τον Οκτώβριο του ίδιου χρόνου δημοσιοποιήθηκε υπό την μορφή RFC (Request For Comments). Τον Δεκέμβριο του 1994 εκδίδεται μια επαναθεώρηση του πρωτοκόλλου, η δεύτερη έκδοση του (version 2.0). Η παρούσα έκδοση του SSL, version 3.0, παρουσιάσθηκε στο κοινό στα τέλη του 1995, ενώ από τα μέσα του 1995 είχε αρχίσει να εφαρμόζεται σε προϊόντα της εταιρίας, όπως τον Netscape Navigator.
Τρόπος λειτουργίας
Το πρωτόκολλο SSL χρησιμοποιεί έναν συνδυασμό της κρυπτογράφησης δημοσίου και συμμετρικού κλειδιού. Η κρυπτογράφηση συμμετρικού κλειδιού είναι πολύ πιο γρήγορη και αποδοτική σε σχέση με την κρυπτογράφηση δημοσίου κλειδιού, παρ' όλα αυτά όμως η δεύτερη προσφέρει καλύτερες τεχνικές πιστοποίησης. Κάθε σύνδεση SSL ξεκινά πάντα με την ανταλλαγή μηνυμάτων από τον server και τον client έως ότου επιτευχθεί η ασφαλής σύνδεση, πράγμα που ονομάζεται χειραψία (handshake). Η χειραψία επιτρέπει στον server να αποδείξει την ταυτότητά του στον client χρησιμοποιώντας τεχνικές κρυπτογράφησης δημοσίου κλειδιού και στην συνέχεια επιτρέπει στον client και τον server να συνεργαστούν για την δημιουργία ενός συμμετρικού κλειδιού που θα χρησιμοποιηθεί στην γρήγορη κρυπτογράφηση και αποκρυπτογράφηση των δεδομένων που ανταλλάσσονται μεταξύ τους. Προαιρετικά η χειραψία επιτρέπει επίσης στον client να αποδείξει την ταυτότητά του στον server. Αναλυτικότερα, η διαδικασία χειραψίας έχει ως εξής:
- Αρχικά ο client στέλνει στον server την έκδοση του SSL που χρησιμοποιεί, τον επιθυμητό αλγόριθμο κρυπτογράφησης, μερικά δεδομένα που έχουν παραχθεί τυχαία και οποιαδήποτε άλλη πληροφορία χρειάζεται ο server για να ξεκινήσει μία σύνδεση SSL.
- Ο server απαντά στέλνοντας παρόμοιες πληροφορίες με προηγουμένως συμπεριλαμβανομένου όμως και του ψηφιακού πιστοποιητικού του, το οποίο τον πιστοποιεί στον client. Προαιρετικά μπορεί να ζητήσει και το ψηφιακό πιστοποιητικό του client.
- Ο client λαμβάνει το ψηφιακό πιστοποιητικό του server και το χρησιμοποιεί για να τον πιστοποιήσει. Εάν η πιστοποίηση αυτή δεν καταστεί δυνατή, τότε ο χρήστης ενημερώνεται με ένα μήνυμα σφάλματος και η σύνδεση SSL ακυρώνεται. Εάν η πιστοποίηση του server γίνει χωρίς προβλήματα, τότε η διαδικασία της χειραψίας συνεχίζεται στο επόμενο βήμα.
- Ο client συνεργάζεται με τον server και αποφασίζουν τον αλγόριθμο κρυπτογράφησης που θα χρησιμοποιηθεί στην ασφαλή σύνδεση SSL. Επίσης ο client δημιουργεί το συμμετρικό κλειδί που θα χρησιμοποιηθεί στον αλγόριθμο κρυπτογράφησης και το στέλνει στον server κρυπτογραφημένο, χρησιμοποιώντας την τεχνική κρυπτογράφησης δημοσίου κλειδιού. Δηλαδή χρησιμοποιεί το δημόσιο κλειδί του server που αναγράφεται πάνω στο ψηφιακό του πιστοποιητικό για να κρυπτογραφήσει το συμμετρικό κλειδί και να του το στείλει. Στην συνέχεια ο server χρησιμοποιώντας το ιδιωτικό του κλειδί μπορεί να αποκρυπτογραφήσει το μήνυμα και να αποκτήσει το συμμετρικό κλειδί που θα χρησιμοποιηθεί για την σύνδεση.
- Ο client στέλνει ένα μήνυμα στον server ενημερώνοντάς τον ότι είναι έτοιμος να ξεκινήσει την κρυπτογραφημένη σύνδεση.
- Ο server στέλνει ένα μήνυμα στον client ενημερώνοντάς τον ότι και αυτός είναι έτοιμος να ξεκινήσει την κρυπτογραφημένη σύνδεση.
- Από εδώ και πέρα η χειραψία έχει ολοκληρωθεί και τα μηνύματα που ανταλλάσσουν τα δύο μηχανήματα (client - server) είναι κρυπτογραφημένα.
Το SSL χρησιμοποιεί μεθόδους κρυπτογράφησης των δεδομένων που ανταλλάσσονται μεταξύ δύο Ηλεκτρονικών Υπολογιστών εγκαθιδρύοντας μία ασφαλή σύνδεση μεταξύ τους μέσω του διαδικτύου. Το πρωτόκολλο αυτό χρησιμοποιεί το TCP/IP για τη μεταφορά των δεδομένων και είναι ανεξάρτητο από την εφαρμογή που χρησιμοποιεί ο τελικός χρήστης. Για τον λόγο αυτό μπορεί να παρέχει υπηρεσίες ασφαλούς μετάδοσης πληροφοριών σε πρωτόκολλα ανώτερου επιπέδου όπως για παράδειγμα το HTTP, το FTP, το telnet κοκ.
Telnet
[επεξεργασία]To Telnet είναι μια υπηρεσία του Internet που μας επιτρέπει να συνδεόμαστε με έναν απομακρυσμένο υπολογιστή και να δουλεύουμε αλληλεπιδραστικά στον υπολογιστή αυτό χρησιμοποιώντας τα προγράμματά του σαν να είμαστε άμεσα συνδεδεμένοι μαζί του. Με άλλα λόγια, το δικό μας τερματικό - προσωπικός υπολογιστής, workstation, τερματικό ενός UNIX συστήματος, κλπ. μετατρέπεται σε τερματικό του απομακρυσμένου υπολογιστή ο οποίος ανταποκρίνεται στις εντολές μας. To Telnet βασίζεται στην αρχιτεκτονική client/server: για να χρησιμοποιήσουμε το Telnet, εκτελούμε στον υπολογιστή μας ένα πρόγραμμα πελάτη για Telnet (Τelnet client), ενώ στον απομακρυσμένο υπολογιστή εκτελείται ένα πρόγραμμα που ονομάζεται εξυπηρετητής Telnet (Telnet server). O Telnet server είναι ένας ταυτόχρονος εξυπηρετητής που μπορεί να ανταποκριθεί σε πολλές αιτήσεις συγχρόνως, δημιουργώντας μια νέα διεργασία για κάθε νέα αίτηση.
Ιστορική Αναδρομή
Το Telnet αναπτύχθηκε το 1969 με αρχή το RFC 15 , επεκτείνεται σε RFC 854 , και έχει τυποποιηθεί Internet Engineering Task Force (IETF) στο Internet Πρότυπο STD 8 , ένα από τα πρώτα πρότυπα του Διαδικτύου. Ιστορικά, το Telnet παρέχει πρόσβαση σε μια διεπαφή γραμμής εντολών (συνήθως, από ένα λειτουργικό σύστημα ) σε ένα απομακρυσμένο υπολογιστή. Οι περισσότερες συσκευές δικτύου και λειτουργικά συστήματα με μια στοίβα TCP / IP υποστηρίζουν μια υπηρεσία Telnet για απομακρυσμένη διαμόρφωση (συμπεριλαμβανομένων των συστημάτων που βασίζονται σε Windows NT). Ο όρος telnet μπορεί επίσης να αναφέρεται στο λογισμικό που υλοποιεί το μέρος πελάτη του πρωτοκόλλου. Οι Telnet client εφαρμογές είναι διαθέσιμες για όλες σχεδόν τις πλατφόρμες υπολογιστών. Για το telnet σημαίνει να δημιουργήσει μια σύνδεση με το πρωτόκολλο Telnet, είτε με τον πελάτη της γραμμής εντολών ή με διασύνδεση προγραμματισμού. Όταν το Telnet αναπτύχθηκε αρχικά το 1969, οι περισσότεροι χρήστες των δικτυωμένων υπολογιστών ήταν στα τμήματα πληροφορικής των ακαδημαϊκών ιδρυμάτων, ή σε μεγάλες ιδιωτικές και τις κυβερνητικές ερευνητικές εγκαταστάσεις. Σε αυτό το περιβάλλον, η ασφάλεια δεν ήταν σχεδόν τόσο πολύ από μια ανησυχία, όπως έγινε μετά την έκρηξη εύρος ζώνης της δεκαετίας του 1990. Ειδικοί στην ασφάλεια των υπολογιστών, όπως SANS Institute, συνιστούν ότι η χρήση του Telnet για απομακρυσμένες συνδέσεις θα πρέπει να διακόπτεται σε όλες τις κανονικές συνθήκες, για τους ακόλουθους λόγους: To Telnet, από προεπιλογή, δεν κρυπτογραφεί τα δεδομένα που αποστέλλονται μέσω της σύνδεσης (συμπεριλαμβανομένων των κωδικών πρόσβασης), και έτσι είναι συχνά πρακτική να παρακολουθούν τις επικοινωνίες και τη χρήση του κωδικού πρόσβασης αργότερα για κακόβουλους σκοπούς οποιονδήποτε έχει πρόσβαση σε ένα δρομολογητή, διακόπτη, διανομέα ή πύλη που βρίσκεται στο δίκτυο. Οι περισσότερες εφαρμογές του Telnet δεν έχουν ταυτότητας που να εξασφαλίζει την επικοινωνία που πραγματοποιείται μεταξύ δύο. Συνήθως χρησιμοποιείται το Telnet δαίμονες έχουν πολλά τρωτά σημεία ανακαλύφθηκαν κατά τη διάρκεια των ετών. Το SSH παρέχει ένα μεγάλο μέρος της λειτουργικότητας του telnet, με την προσθήκη της ισχυρής κρυπτογράφησης για την πρόληψη ευαίσθητα δεδομένα όπως κωδικούς πρόσβασης από το να υποκλαπούν, και το δημόσιο κλειδί ταυτότητας, για να εξασφαλιστεί ότι ο απομακρυσμένος υπολογιστής είναι στην πραγματικότητα ο οποίος ισχυρίζεται ότι είναι. Όπως συνέβη με άλλες αρχές πρωτοκόλλων του Διαδικτύου, η επέκταση του πρωτοκόλλου Telnet παρέχει Transport Layer Security (TLS) την ασφάλεια και της Απλής ταυτότητας και Layer Security (SASL) ταυτότητας να αντιμετωπιστούν τα ανωτέρω θέματα. Ωστόσο, οι περισσότερές Telnet εφαρμογές δεν υποστηρίζουν αυτές τις επεκτάσεις, και υπήρξε σχετικά μικρό ενδιαφέρον για την υλοποίηση αυτών, καθώς το SSH είναι επαρκής για τους περισσότερους σκοπούς.
Secure Shell (SSH)
[επεξεργασία]Το SSH είναι ένα πρωτόκολλο που παρέχει ασφαλή απομακρυσμένη σύνδεση σε υπολογιστές πάνω από μη ασφαλές δίκτυο. Αποτελείται από τρία βασικά στοιχεία: Το Transport layer protocol παρέχει πιστοποίηση της ταυτότητας του server, ακεραιότητα των δεδομένων και εξασφάλιση του απόρρητου της συναλλαγής. Προαιρετικά μπορεί να εφαρμόσει και συμπίεση δεδομένων. Τυπικά τρέχει πάνω από μία TCP/IP σύνδεση. Το User Authentication protocol πιστοποιεί την ταυτότητα του πελάτη- χρήστη στον server. Τρέχει πάνω από το Transport layer protocol. Το Connection protocol πολυπλέκει το κρυπτογραφημένο φυσικό κανάλι σε αρκετά λογικά κανάλια και τρέχει πάνω από το User Authentication protocol.
Ιδιωτικά Και Δημόσια Κλειδιά
Κάθε server και client πρέπει να έχει ένα ζευγάρι ιδιωτικού δημόσιου κλειδιού για να μπορεί να επαληθεύσει την ταυτότητα του στο άλλο άκρο. Επιτρέπεται η κατοχή περισσότερων του ενός ζευγαριού κλειδιών, όταν χρησιμοποιούνται με διαφορετικούς αλγόριθμους, ενώ η από κοινού χρήση ενός ζεύγους από πολλούς server δεν απαγορεύεται. Για να μπορεί ο client με ευκολία να επαληθεύει την ταυτότητα του server είναι απαραίτητο να γνωρίζει το δημόσιο κλειδί που αντιστοιχεί στον server που θέλει να συνδεθεί. Υπάρχουν δυο διαφορετικά μοντέλα που εξασφαλίζουν την προηγούμενη προϋπόθεση: Πρώτον, ο client έχει αποθηκευμένα σε μια τοπική βάση δεδομένων τα ονόματα των server και τα σχετιζόμενα με αυτά δημόσια κλειδιά. Αυτή η μέθοδος δεν απαιτεί μια κεντρική διαχείριση των κλειδιών από τρίτους. Το μειονέκτημα είναι ότι το μέγεθος μιας τέτοιας βάσης δεδομένων μπορεί να εξελιχθεί σημαντικά και συνεπώς η συντήρηση της να γίνει δύσκολη. Στην δεύτερη περίπτωση, σχέση μεταξύ του ονόματος του server και του κλειδιού του πιστοποιείται από μια άξια εμπιστοσύνης Certification Authority. Το πρόγραμμα του πελάτη γνωρίζει μόνο το δημόσιο κλειδί της Certification Authority και μπορεί να επιβεβαιώσει την εγκυρότητα των κλείδων που έχουν πιστοποιηθεί από την CA. Εδώ δεν υπάρχει το πρόβλημα της διατήρησης μεγάλων βάσεων δεδομένων από τα τοπικά συστήματα, αφού μόνο ένα κλειδί χρειάζεται να αποθηκεύει ο client. Επίσης, πιστοποίηση κάθε κλειδιού μπορεί να είναι μια χρονοβόρα και περίπλοκή διαδικασία. Ο πρωταρχικός στόχος του SSH πρωτοκόλλου είναι η βελτίωση της ασφάλειας στο Internet και ο τρόπος με τον οποίο προσπαθεί να το επιτύχει αυτό μιας και βασίζεται στο εξής σκεπτικό: Όλοι οι αλγόριθμοι κρυπτογράφησης, παροχής ακεραιότητας και ανταλλαγής κλειδιών έχουν δοκιμαστεί και Οι αλγόριθμοι χρησιμοποιούν κλειδιά μεγέθους ικανού να παρέχει προστασία απέναντι στις ισχυρότερες επιθέσεις κρυπτοανάλυσης. Στην περίπτωση που κάποιος αλγόριθμος "σπάσει", είναι εύκολη η αντικατάσταση του από κάποιον άλλο χωρίς αλλαγές στις βάσεις του SSH. Για την ταχεία ανάπτυξη και υιοθέτηση του πρωτοκόλλου, κάποιες έχουν γίνει παραχωρήσεις. Σημαντικότερη από αυτές είναι η καθιέρωση της επαλήθευσης των κλείδων με υποχρεωτική, γεγονός όμως που δεν συνιστάται.
Ιστορική Αναδρομή
Το 1995, Ylönen Tatu , ένας ερευνητής στο Πανεπιστήμιο Τεχνολογίας του Ελσίνκι , η Φινλανδία, σχεδίασε την πρώτη έκδοση του πρωτοκόλλου (που σήμερα ονομάζεται SSH-1) ζητηθεί από τον κωδικό εισπνοή επίθεση κατά του πανεπιστημιακού δικτύου . Ο στόχος του SSH ήταν να αντικαταστήσει την παλαιότερη rlogin , TELNET και rsh πρωτόκολλα, που δεν παρείχαν ισχυρό έλεγχο ταυτότητας ούτε απόρρητη εγγύηση. Ο Ylönen κυκλοφόρησε την εφαρμογή του ως δωρεάν τον Ιούλιο του 1995, και το εργαλείο γρήγορα έχει κερδίσει σε δημοτικότητα. Προς το τέλος του 1995, η βάση χρηστών SSH είχε αυξηθεί σε 20.000 χρήστες σε πενήντα χώρες. Τον Δεκέμβριο του 1995, ιδρύθηκε Ylönen SSH Ασφάλειας Επικοινωνιών στην αγορά και την ανάπτυξη του SSH. Η αρχική έκδοση του λογισμικού που χρησιμοποιείται SSH διάφορα κομμάτια του ελεύθερου λογισμικού , όπως το GNU libgmp , αλλά αργότερα κυκλοφόρησε από τις εκδόσεις του SSH Secure Επικοινωνιών εξελιχθεί σε όλο το ιδιόκτητο λογισμικό .
Διαφορές SSH/TELNET
[επεξεργασία]Η κύρια διαφορά, έγκειται στον τομέα της ασφάλειας. Το SSH παρέχει μηχανισμούς ασφαλείας που προστατεύουν τους χρήστες από οποιονδήποτε κακόβουλη πρόθεση, ενώ το Telnet δεν έχει μέτρα ασφαλείας. Το Telnet σχεδιάστηκε για να λειτουργεί μέσα σε ένα ιδιωτικό δίκτυο και όχι σε ένα δημόσιο δίκτυο όπου μπορούν να εμφανιστούν απειλές. Λόγω αυτού, όλα τα στοιχεία διαβιβάζονται σε μορφή απλού κειμένου, συμπεριλαμβανομένων των κωδικών πρόσβασης. Αυτό είναι ένα σημαντικό ζήτημα ασφαλείας και οι προγραμματιστές του SSH χρησιμοποιούν κρυπτογράφηση για να κάνει δυσκολότερη για τους άλλους ανθρώπους τη διαδικασία εντοπισμού του κωδικού πρόσβασης και άλλες σχετικές πληροφορίες. Το Telnet παραλείπει, επίσης, ένα άλλο μέτρο ασφαλείας που ονομάζεται ταυτότητας. Αυτό εξασφαλίζει ότι η πηγή των δεδομένων εξακολουθεί να είναι η ίδια συσκευή και όχι κάποιο άλλο υπολογιστή. Χωρίς έλεγχο ταυτότητας, ένα άλλο άτομο μπορεί να υποκλέψει την επικοινωνία και να κάνει ό, τι θέλει. Αυτό, επίσης, απευθύνεται στο SSH, καθώς χρησιμοποιεί ένα δημόσιο κλειδί για την πιστοποίηση της προέλευσης των δεδομένων. Λόγω των μέτρων ασφαλείας που ήταν απαραίτητα για SSH για να χρησιμοποιηθεί σε δημόσια δίκτυα, κάθε πακέτο περιέχει λιγότερα δεδομένα για να κάνουν χώρο για τα δεδομένα των μηχανισμών ασφαλείας. Για να μεταδώσει την ίδια ποσότητα δεδομένων, θα πρέπει να δημιουργήσει μία πολύ μεγαλύτερη εύρους ζώνη. Τα θέματα ασφάλειας του Telnet ανάγκασε πολλούς ανθρώπους να χρησιμοποιήσουν το SSH για να προστατεύσουν τον εαυτό τους. Δεν πήρε πολύ καιρό πριν αντικαταστήσει το SSH το Telnet σε μια μεγάλη πλειοψηφία των χρήσεών του. Το Telnet εξακολουθεί να χρησιμοποιείται σε ορισμένες περιοχές, κυρίως στη δοκιμή και εκσφαλμάτωση. Οι επεκτάσεις του Telnet αναπτύχθηκαν για να προσφέρουν ασφάλεια, αλλά δεν χρησιμοποιούνται στις περισσότερες εφαρμογές Telnet.
Wired Equivalent Privacy (WEP)
[επεξεργασία]Το WEP λειτουργεί με τη χρήση μυστικών κλειδιών, ή κώδικες για την κρυπτογράφηση των δεδομένων. Το σημείο πρόσβασης και ο πελάτης πρέπει να γνωρίζει τους κωδικούς ώστε να λειτουργήσει. Χρησιμοποιείτε 64 bit ή 128 bit κλειδιά, αν και η πρόσθετη ασφάλεια από τον μεγαλύτερο αριθμό δεν είναι όσο θα πίστευε κανείς. Τα πλήκτρα στην πραγματικότητα χρήστη (κωδικοί) 40 bit και 104 bit, με τα επιπλέον 24 bit που χρησιμοποιούνται από κάτι που ονομάζεται Vector αρχικοποίησης (IV). Η κρυπτογράφηση που έχει δημιουργηθεί από τη λήψη της IV και τυχαία τα που για κάθε πακέτο, διατηρώντας παράλληλα το μυστικό κωδικό το ίδιο. Το AP και ο πελάτης να αποκρυπτογραφήσει και να ανακτήσετε το μήνυμα / τα δεδομένα και όλα είναι σωστό στον κόσμο, στη θεωρία. Αν και το όνομά της σημαίνει ότι είναι τόσο ασφαλής όσο μια ενσύρματη σύνδεση, το WEP έχει αποδειχθεί να έχει πολλές ελλείψεις και έχει αποδοκιμαστεί υπέρ των νεότερων προτύπων, όπως το WPA2. Το 2003 το Wi-Fi Alliance ανακοίνωσε ότι το WEP είχε αντικατασταθεί από Wi-Fi Protected Access (WPA). Το 2004, με την επικύρωση του πλήρους προτύπου 802.11i (WPA2 δηλαδή), το IEEE δήλωσε ότι τόσο το WEP-40 και WEP-104 έχουν αποδοκιμαστεί επειδή δεν κατορθώνουν να ανταποκριθούν στους στόχους της ασφάλειάς τους.
Wi-Fi Protected Access (WPA)
[επεξεργασία]Το WPA είναι το νέο πρότυπο ασφαλείας που εγκρίθηκε από την κοινοπραξία WiFi Alliance. Το WiFi συμμόρφωσης εξασφαλίζει τη διαλειτουργικότητα μεταξύ διαφορετικών ασύρματων συσκευών κατασκευαστή. Το WPA είναι ένα πολύ βελτιωμένο πρότυπο κρυπτογράφησης που παρέχει ένα επίπεδο ασφάλειας πέρα από οτιδήποτε που μπορεί να προσφέρει το WEP. Να γεφυρώνει το χάσμα μεταξύ WEP και 802.11i (WPA2) δίκτυα. Το WPA χρησιμοποιεί Temporal Key Integrity Protocol (TKIP), η οποία έχει σχεδιαστεί για να επιτρέψει το WEP να αναβαθμιστεί με διορθωτικά μέτρα για την αντιμετώπιση των υφιστάμενων προβλημάτων ασφάλειας. Το WPA είναι σε θέση να επιτύχει πάνω από 500 τρισεκατομμύρια πιθανούς συνδυασμούς πλήκτρων και την εκ νέου πληκτρολόγηση της παγκόσμιας κλειδιών κρυπτογράφησης απαιτείται. Το κλειδί κρυπτογράφησης αλλάζει μετά από κάθε χρήση του πρωτοκόλλου TKIP πλαίσιο. Αυτό επιτρέπει βασικές αλλαγές να συμβούν σε ένα πλαίσιο με βάση το πλαίσιο και να συγχρονίζονται αυτόματα μεταξύ του σημείου πρόσβασης και του ασύρματου client. Ο αλγόριθμος κρυπτογράφησης TKIP είναι ισχυρότερος από αυτόν που χρησιμοποιείται από το WEP. Το WPA είναι συμβατό με πολλά μεγάλα σημεία πρόσβασης και κάρτες δικτύου. Τον Νοέμβριο του 2008 Erik Tews και Martin Beck - ερευνητές σε δύο γερμανικά τεχνικά πανεπιστήμια ( TU Dresden και TU Darmstadt ) αποκαλύφθηκε μια αδυναμία WPA η οποία στηρίχθηκε σε ένα ήδη γνωστό ελάττωμα σε WEP που θα μπορούσαν να αξιοποιηθούν μόνο για τον αλγόριθμο TKIP στο WPA . Το ελάττωμα μπορεί να αποκρυπτογραφήσει μόνο μικρά πακέτα με γνωστή κυρίως περιεχομένου, όπως η ARP μηνύματα. Η επίθεση απαιτεί Quality of Service (όπως ορίζεται στο 802.11e ) για να ενεργοποιηθεί, το οποίο επιτρέπει τον καθορισμό προτεραιοτήτων πακέτο όπως ορίζεται. Το ελάττωμα δεν οδηγεί σε ανάκτηση κλειδιού, αλλά μόνο μια κρυπτογραφημένη keystream ότι ένα συγκεκριμένο πακέτο, και που μπορούν να επαναχρησιμοποιηθούν ως και επτά φορές να εισφέρει αυθαίρετη δεδομένων έχει το ίδιο μήκος πακέτου σε ένα ασύρματο πελάτη.
Μέθοδοι κρυπτογράφησης για ασύρματα δίκτυα
[επεξεργασία]Προστατευμένη πρόσβαση Wi-Fi (WPA και WPA2)
Οι WPA και WPA2 απαιτούν από τους χρήστες την παροχή ενός κλειδιού ασφαλείας για σύνδεση. Όταν επικυρωθεί το κλειδί, κρυπτογραφούνται όλα τα δεδομένα που αποστέλλονται μεταξύ του υπολογιστή ή της συσκευής και του σημείου πρόσβασης. Υπάρχουν δύο τύποι ελέγχου ταυτότητας WPA: Η WPA και η WPA2. Εάν είναι δυνατόν, χρησιμοποιείστε WPA2 επειδή είναι η πιο ασφαλής μέθοδος. Σχεδόν όλοι οι νέοι ασύρματοι προσαρμογείς υποστηρίζουν WPA και WPA2, αλλά ορισμένοι παλαιότεροι προσαρμογείς δεν τις υποστηρίζουν. Στο WPA-Ατομικό και WPA2-Ατομικό, δίδεται στον κάθε χρήστη η ίδια φράση πρόσβασης. Αυτή είναι η προτεινόμενη λειτουργία για τα οικιακά δίκτυα. Τα WPA-Εταιρικό και WPA2-Εταιρικό σχεδιάστηκαν για χρήση με διακομιστή ελέγχου ταυτότητας 802.1X, ο οποίος διανέμει διαφορετικά κλειδιά σε κάθε χρήστη. Αυτή η λειτουργία χρησιμοποιείται κυρίως σε δίκτυα εργασίας.
Εμπιστευτικότητα αντίστοιχη με ενσύρματο δίκτυο (WEP)
Η WEP είναι μια παλαιότερη μέθοδος ασφάλειας δικτύου, που είναι ακόμα διαθέσιμη για την υποστήριξη παλαιότερων συσκευών, αλλά δεν προτείνεται πια. Κατά την ενεργοποίηση της WEP, ρυθμίζετε ένα κλειδί ασφάλειας δικτύου. Αυτό το κλειδί κρυπτογραφεί τις πληροφορίες, τις οποίες κάποιος υπολογιστής στέλνει σε κάποιον άλλον μέσα στο δίκτυο. Ωστόσο, η ασφάλεια WEP παραβιάζεται σχετικά εύκολα. Υπάρχουν δύο τύποι WEP: έλεγχος ταυτότητας ανοιχτού συστήματος και έλεγχος ταυτότητας κοινόχρηστου κλειδιού. Κανένας από τους δύο τύπους δεν είναι πολύ ασφαλής, αλλά ο έλεγχος ταυτότητας κοινόχρηστου κλειδιού είναι ο λιγότερο ασφαλής από τους δύο. Για τους περισσότερους ασύρματους υπολογιστές και ασύρματα σημεία πρόσβασης, το κλειδί ελέγχου ταυτότητας κοινόχρηστου κλειδιού είναι ίδιο με το στατικό κλειδί κρυπτογράφησης WEP, το κλειδί που χρησιμοποιείτε για να ασφαλίσετε το δίκτυό σας. Ένας κακόβουλος χρήστης που καταγράφει τα μηνύματα για έναν επιτυχή έλεγχο ταυτότητας κοινόχρηστου κλειδιού μπορεί να χρησιμοποιήσει εργαλεία ανάλυσης για να προσδιορίσει το κλειδί ελέγχου ταυτότητας κοινόχρηστου κλειδιού και, στη συνέχεια, να προσδιορίσει το στατικό κλειδί κρυπτογράφησης WEP. Όταν προσδιοριστεί το κλειδί κρυπτογράφησης WEP, ο κακόβουλος χρήστης έχει πλήρη πρόσβαση στο δίκτυό σας. Για το λόγο αυτό, αυτή η έκδοση των Windows δεν υποστηρίζει αυτόματη εγκατάσταση δικτύου με χρήση ελέγχου ταυτότητας κοινόχρηστου κλειδιού WEP.