Εγχειρίδιο χρήσης OpenSSH
Ενδιαφέροντα σημεία
επεξεργασία- Η πιστοποίηση σας από τον εξυπηρετητή μπορεί να γίνει είτε με συνθηματικό, είτε με κρυπτογραφία δημόσιου κλειδιού.
- Η κρυπτογράφηση των δεδομένων της συνόδου γίνεται μέσω ενός συμμετρικού κλειδιού το οποίο θα συμφωνηθεί στην αρχή
της επικονωνίας και το οποίο θα το μοιράσει το ένα μέλος στο άλλο με χρήση ασύμμετρης κρυπτογραφίας. Αυτό γίνεται για λόγους ταχύτητας αφού η κρυπτογραφία ασύμμετρου κλειδιού είναι πιο αργή απ' ότι με συμμετρικό κλειδί.
Εισαγωγή στο ασφαλές κέλυφος
επεξεργασίαΤο ssh (OpenSSH πελάτης)είναι ένα πρόγραμμα που μας επιτρέπει να συνδεθούμε σε έναν απομακρυσμένο υπολογιστή και να εκτελούμε εντολές σ'αυτόν. Αντικατέστησε το παλιότερο rlogin και rsh , και παρέχει κρυπτογραφημένη επικοινωνία ανάμεσα σε δύο υπολογιστές πάνω από ένα μη-ασφαλές δίκτυο. Επιτρέπει επίσης προώθηση θύρας X11 ,TCP μέσα από ασφαλές κανάλι.
Το OpenSSH προσφέρει:
- ιδιωτικότητα μέσω προστασίας των δεδομένων της επικοινωνίας που την επιτυγχάνεται μέσα κρυπτογραφίας.
- ακεραιότητα της επικοινωνίας, εξασφάλιση ότι δεν έχουν αλλοιωθεί εσκεμένα τα δεδομένα της επικοινωνίας.
- Πιστοποίηση των εμπλεκομένων μερών (πελάτη και εξυπερητητή
Είναι σημαντικό να καταλάβουμε ότι το OpenSSH είναι ένα λογισμικό που δημιουργήθηκε για να παρεμποδίζει κάποιου είδους απειλές ασφαλείας. Κυρίως αυτές από τρίτους που παρακολοθούν και έχουν πρόσβαση σε ενδιάμεσους κόμβους επικοινωνίας. Δεν εξασφαλίζει έναντι λαθών χρηστών ,κακόβουλου λογισμικού που μπορεί να εισέλθει σε ένα υπολογιστικό σύστημα από αμελής τήρηση κανόνων ασφαλείας, κτλ.
Μια καλή αναλογία είναι η εξής: Θέλει να επικοινωνήσει η Αλίκη και ο Μπομπ σε ένα εστιατόριο. Γνωρίζουν ότι ότι πουνε μπορεί να το ακούσει και η Εύα που κάθεται σε διπλανό τραπέζι και η οποία εκτός από το να κρυφακούει μπορεί και να εισάγει θόρυβο στο κανάλι διακόπτωντας την επικοινωνία. Το ζητούμενο είναι να μπορέσει ο Μπομπ και η Αλίκη να μιλήσουν κωδικοποιημένα ώστε η Ευα να μην μπορεί να καταλάβει τι λένε αλλά απλά να διακόπτει την επικοινωνία εισάγωντας θόρυβο.
Το ίδιο παράδειγμα μπορούμε νσ το κάνουμε ποιό σχετικό με το πραγματικό πλαίσιο λειτουργίας του OpenSSH αν θεωρήσουμε ότι η Αλίκη και ο Μπομπ πρόκειται να επικοινωνήσουν ταχυδρομικά σε μια χώρα που γνωρίζουν ότι η διαθφορά ανθεί και ότι είναι βέβαιο ότι η Ευα θα μπορέσει να βρει τρόπο να ανοίξει τα γράμματά τους είτε για να διαβάσει μόνο ή και για τα αλλοιώσει ή να παρεμποδίσει απλά την επικοινωνία παρακρατώντας τα για λίγο ή πολύ.
Βασική χρήση πελάτη
επεξεργασίαΣύνδεση σε απομακρυσμένο υπολογιστή
επεξεργασίαΤο γενικό πλαίσιο εργασίας :
- Έχουμε συνδεθεί σε έναν τοπικό υπολογιστή Α
- Θέλουμε να συνδεθούμε σε έναν απομακρυσμένο υπολογιστή εξυπηρετητή OpenSSH στον οποίο διαθέτουμε λογαριασμό. (πχ. vpshost.com με όνομα χρήστη tux)
Γενική σύνταση : ssh [-l όνομαΧρήστη] [-p θύρα] [όνομαΧρήστη@]όνομαΥπολογιστή [εντολή] Την επιλογή -l δεν την χρειαζόμαστε αν παραθέσουμε το όνομα του λογαριασμού μας πριν το όνομαΥπολογιστή. Οπότε για συνδεθούμε και να αρχίσει η σύνοδος με τον απομακρυσμένο υπολογιστή δίνουμε την εντολή:
$ ssh -p 1976 tux@vpshost.com tux@vpshost's password: Last login: Sun Feb 22 11:26:32 2009 from 87.67.55.92 tux ~:
Και μπορούμε πλεον να δώσουμε εντολές όπως σε ένα τερματικό στον τοπικό μας υπολογιστή. Η πιστοποίηση σε αυτό το απλό παράδειγμα έγινε με συνθηματικό.
Known hosts
επεξεργασίαΈνα πιθανό πρόβλημα ασφαλείας που πρέπει να μας απασχολήσει εδώ είναι το εξής: Ας υποθέσουμε ότι κάποιος κακόβουλος αλλοιώνει ένα DNS εξυπηρετητή ώστε η διεύθυνση vpshost.com να δείχνει στον δικό του υπολογιστή. Τότε μπορεί να μας υποκλέψει το συνθηματικό καθώς και άλλες ευαίσθητες πληροφορίες.Ακόμα χειρότερα θα μπορούσε να μεταφέρει το συνθηματικό στον εξυπηρετητή μας και να περνά την πληροφορία ανάμεσα στον πελάτη και στον εξυπηρετητή. Αυτή η επίθεση λέγεται Man-in-the-middle_attack. Συνεπώς πρέπει να βρούμε τρόπο να πιστοποιήουμε τον απομακρυσμένο υπολογιστή.
Το SSH πρωτόκολλο απομακρύνει τον κίνδυνο αυτόν με τον μηχανισμό γνωστού εξυπηρετητή ,'known-host mechanism.
Αν συνδεθείτε για πρώτη φορά με ένα εξυπηρετητή θα δείτε το εξής:
tux@antartica:~$ ssh -l tux artic.org The authenticity of host 'artic.org' can't be established. RSA key fingerprint is 21:83:b7:e0:52:38:84:34:fc:b7:32:ee:a3:da:f2:81. Are you sure you want to continue connecting (yes/no)?
Αν απαντήσετε 'yes' τότε ο πελάτης θα συνεχίσει
Warning: Permanently added 'artic.org' (RSA) to the list of known hosts.
Αυτό το μήνυμα θα εμφανιστεί μόνο την πρώτη φορά που θα συνδεθείτε τον συγκεκριμένο εξυπηρετητή.
Τώρα αν ανοίξτε στον τοπικό υπολογιστή το αρχείο ~/.ssh/known-hosts θα δείτε ότι περιέχει ένα δημόσιο κλειδί του απομακρυσμένου εξυπηρετητή. Αυτό είναι χρήσιμο στο να πιστοποιήσουμε μελλοντικά τον εξυπηρετητή .Δηλαδή υποθέτωντας ότι κάθε ssh εξυπηρετητής έχει το δικό του ασύμμετρο κλειδί στοιχείο που τον ταυτοποιεί, τότε αν έχουμε το δημόσιο κλειδί μπορούμε να σιγορευτούμε ότι μιλάμε με τον ίδιο εξυπηρετητή που είχαμε επικοινωνήσει και στο παρελθόν . Αν είναι δικός μας η μηχανή του εξυπηρετητή τότε εμείς δημιουργήσαμε το ασύμμετρο κλειδί του και δεν υπάρχει περίπτωση να επικοινωνούμε με άλλον. Όμως για πρώτη φορά επικοινωνούμε με έναν εξυπηρετητή και αυτός μας προσφέρει το δημόσιο κλειδί τότε υπάρχει ακόμα ο κίνδυνος μιας επίθεσης Man-in-the-middle_attack, αφού δεν μπορούμε να είμαστε σίγουροι σε ένα μη-ασφαλής διαδίκτυο ότι το όνομα περιοχής του εξυπηρετητή δεν απεικονίστηκε σε διαφορετική IP διεύθυνση. Η ουσία του δημόσιου κλειδίου του εξυπηρετητή είναι ότι μας δινει την δυνατότητα να πιστοποιήσουμε τον εξυπηρετητή με ένα τεστ πρόκληση στο οποίο μπορεί να απαντήσει μόνο ο κάτοχος του ιδιωτικού κλειδίου που αντιστοιχεί στο δημόσιο που έχουμε.
Μιλώντας ποιο φιλοσοφικά καταβαλουμε προσπάθεια το ασύμμετρο κλειδί ενός εξυπηρετητή να τον ταυτοποιεί σαν οντότητα.Αυτό σημαίνει ότι υπάρχει μια φυσική οντότητα που όσο υπάρχει δεν θα αλλάξει το ασύμμετρο κλειδί της και μαζί όλα τα άλλα χαρακτηριστικά που την ταυτοποιούν.(ποιά είναι τα υπόλοιπα ταυτοποιητικά στοιχεία ενός εξυπηρετητή; Πχ το μέγεθος,τα περιεχόμενα του συστήματος αρχείων;-Μπορούμε να κάνουμε την αναλογία με έναν άνθρωπο που γνωρίζουμε το αποτύπωμα της ίριδας;) Από την στιγμή που το έχουμε "επιτύχει" αυτό εξ'ορισμού ξέρουμε ότι μόνο ο κάτοχος του δημόσιου κλειδιού μπορεί να αποκρυπτογραφήσει μηνύματα κρυπροφραφημένα με το δημόσιο αντίστοιχο κλειδί.
Μεταφορά αρχείων
επεξεργασίαΓενική σύνταξη: scp όνομαΑρχείουΠηγή όνομαΠροορισμού
πχ: Έστω ότι είμαστε συνδεδεμένοι στον τοπικό υπολογιστή και θέλουμε να μεταφέρουμε το αρχείο foobar.ogg στον απομακρυσμένο vpshost.com. Θα δώσουμε την εντολή
$ scp -p θύρα foobar.ogg tux@vpshost.com:
Και αντίθετα μπορούμε να μεταφέρουμε ένα αρχείο από τον απομακρυσμένο υπολογιστή τοπικά.
$ scp -p θύρα tux@vpshost.com: foobar.ogg
Και γενικά μπορούμε να μεταφέρουμε άρχεία ανάμεσα σε δυο απομακρυσμένους υπολογιστές στους οποίους έχουμε λογαριασμό.
$ scp -p θύρα tux@vpshost.com: tux2@foohost.com
Είναι σημαντικό να καταλάβουμε ότι αφού γίνει η μεταφορά του αρχείου θα έχει σαν ιδιοκτήτη το όνομα του λογαριασμού προορισμού.
Ρύθμιση πελάτη και εξυπηρετητή
επεξεργασία- Καταρχάς θεωρούμε ότι έχουμε έναν λογαριασμό στον απομακρυσμένο υπολογιστή artic.org , με όνομα χρήστη tux και συνθηματικό xxx
- Δημιουργία ασύμμετρου κλειδίου. Επίσης πρέπει να έχετε το δικό σας ασύμμετρο ιδωτικό και δημόσιο κλειδί.Αυτά βρίσκονται στον φάκελο ~/.ssh Αν δεν έχετε δημιουργήστε τα με την εντολή $ssh-keygen . Προσέξτε ότι σαν μια επιπλεόν δικλίδα ασφαλείας κρυπτογραφείται το ιδιωτικό κλειδί μεσω μιας φράσης (passphrase) που πρέπει να θυμάστε απ'εξω.
- Πρέπει με την πρώτη απόπειρα απομακρυσμένης σύνδεσης το δημόσιο κλειδί του artic.org θα αποθηκευτεί τοπικά στον αρχείο ~/.ssh/known_hosts . Αυτό σημαίνει ότι θεωρούμε πλεον αξιόπιστο τον απομακρυσμένο υπολογιστή με αυτό το δημόσιο κλειδί.
- Εναλλακτικά μπορείται να χρησιμοποιείστε σε gnome περιβάλλον την εφαρμογή Εφαρμογές -> Βοηθήματα ->Κωδικοί και κλειδία κρυπτογράφησης που είναι το ελληνικό όνομα του seahorse το οποίο αντικατέστησε το gnome-keyring.
- Μεταφορά του δημόσιου σας κλειδίου στον εξυπηρετητή .Αν επιχειρήσετε τώρα να συνδεθείτε θα δείτε ότι η πιστοποίηση σας γίνεται με το συνθηματικό σας.του λογαριασμού. Για λόγους ευελιξίας (πχ χειρισμός πολλών διαφορετικών λογαριασμών) και ασφαλείας (να μην εκθέτουμε μια τόσο σημαντική πληροφορία σε κίνδυνο με το να την μεταδίδουμε μέσα από ένα μη-ασφαλές δίκτυο) το επόμενο βήμα είναι να ενεργοποιήσουμε την πιστοποίηση με ασύμμετρο κλειδί ώστε και να γίνεται ποιό εύκολα η πιστοποίηση και να ελαχιστοποιήσουμε το ρίσκο ασφαλείας. (Ο εξυπηρετητής έχει με την εγκατάστασή του ήδη δημιουργήσει το δικό του ασύμμετρο κλειδί.)
- $ ssh-copy-id -i ~/.ssh/id_rsa.pub '-p θύρα username@hostname' // προσέξτε γιατί αν δεν χρησιμοποιήστε τα μονά ή διπλά εισαγωγικά στο '-p θύρα user@host' δεν θα πάρει σαν όρισμα την θύρα που έχετε καθορίσει. Κσι τώρσ σν δυνδεθείτε στον απομακρυσμένο υπολογιστή με ' $ ssh -p θύρα χρήστης@υπολογιστής' θα δείτε στο αρχείο ~/.ssh/authorized_keys ότι προστέθηκε το δημόσιο κλειδί σας κάτι που σημαίνει ότι μπορείται πλεον να συνδέεστε με πιστοποίηση δημόσιου κλειδίου χωρίς να χρειαστεί να δώσουμε συνθηματικό.
- Εναλλακτικά μπορείτε να μεταφέρετε το δημόσιο σας κλειδί με τις εντολές:
scp .ssh/id_rsa.pub user@host:~/ mkdir .ssh cat id_rsa.pub >> .ssh/authorized_keys
Σχετικά
επεξεργασία- Seahorse Ο αντικαταστάτης του GNOME_Keyring και αν κατάλαβα καλά δρα στην περίπτωση του ssh σαν ssh-agent αφού θυμάται σε μια προσωρινή μνήμη τη passphrase και δεν χρειάζεται να την ξαναδώσουμε.
Πιστοποίηση και ταυτότητα
επεξεργασίαΜια ταυτότητα αποτελείται από δυο μέρη (ζεύγος κλειδιών) που τα καλούμε ιδιωτικό κλειδί και δημόσιο κλειδί
Το ζεύγος κλειδιών αποθηκεύεται στον κατάλογο ~/.ssh σε δύο αρχεία με κοινό κύριο όνομα id_dsa με την διαφορά ότι το δημόσιο κλειδί θα έχει την κατάληξη .pub.
Όταν ο ssh πελάτης σας συνδέεται με έναν απομακρυσμένο ssh εξυπηρετητή θα χρησιμοποιήσει το ιδιωτικό κλειδί και το δημόσιο μέσω μιας χειραψίας πρόκληση για να αποδείξει ότι είναι αυτός που ισχυρίζεται.
- Πελάτης: Είμαι ο Σωκράτης με δημόσιο κλειδί X
- Διακομιστής: Ωραία , σου κρυπτογραφώ ένα κομμάτι κείμενο με το δημόσιο κλειδί σου και αν είσαι αυτός που ισχυρίζεσαι θα μπορείς να το αποκρυπτογραφήσεις με το ιδιωτικό σου κλειδί και να μου το στείλεις.
- Πελάτης: Πήρα την πρόκλησή σου την αποκρυπτογράφηση και σου την στέλνω.
- Διακομιστής: Εντάξει, είναι το δοκιμαστικό κείμενο που σου έστειλα . Θα σε συνδέσω με τον λογαριασμό σου.
Στα ενδότερα του OpenSSH
επεξεργασίαΠιστοποίηση
επεξεργασίαΘα δίνατε ποτέ προσωπικές πληροφορίες σε κάποια φωνή στο τηλέφωνο που ισχυρίζεται ότι είναι π.χ. αστυνομική αρχή, ή οικογενειακός φίλος; Το ερώτημα που τίθεται πριν ακόμα αρχίσετε να έχετε μια κρυπτογραφημένη επικοινωνία είναι το με ποιόν θα επικοινωνήσετε;. Η φωνή που ακούτε από το άλλο άκρο μιας γραμμής είναι πράγματι οικογενειακός φίλος, ή αστυνομική αρχή όπως ισχυρίζεται; Ο απομακρυσμένος υπολογιστής στον οποίο συνδεθήκαμε, είναι ο δικός μας;
Απειλές
επεξεργασίαΑπειλές που μπορεί να αντιμετωπίσει το OpenSSH
- Άρση απορρήτου: Πρόσβαση στο περιεχόμενο της συνόδου εποκοινωνίας από άτομα ή συστήματα που δεν κατέχουν το κρυπτογραφικό κλειδί.
- Ανάλυση κυκλοφορίας: Ανακάλυψη μοτίβων κυκλοφορίας ανάμεσα στα εμπλεκόμενα μέλη , πχ συχνότητα επικοινωνίας, μέγεθος κτλ
- Πλαστοπροσωπία. Δημιουργία μηνυμάτων από έναν κακόβουλο τρίτο που ισχυρίζεται ψευδώς ότι είναι πιστοποιημένη οντότητα. Επίσης πλαστή αναγνώριση λήψης ή όχι μηνύματος από κάποιον που παριστάνει τον αποδέκτη.
- Αλλοίωση του περιεχομένου: Αλλαγές στο περιεχόμενο του μηνύματος, συμπεριλαμβανομένου εισαγωγή, διαγραφή , μετάθεση και τροποποίηση των περιεχομένων των μηνυμάτων.
- Τροποποίηση ακολουθίας. Οποιαδήποτε τροποποίηση στην σειρά των μηνυμάτων που ανταλλάσουν τα μέρη, όπως αναδιάταξη, διαγραφή , εισαγωγή.
- Χρονικές τροποποιήσεις. Καθυστέρηση ή επανάληψη μηνύματος. Σε μια προσανατολισμένη στη σύνδεση εποικοινωνία όλη η σύνοδος ή ακολουθία μηνυμάτων μπορεί να είναι μια επανάληψη προηγούμενης εγκυρης συνόδου, ή μεμονωμένα μηννύματα στην ακολουθία μπορεί να καθυστερήσουν ή να επαναληφθούν.
Το πρότυπο ssh σχεδιάστηκε όπως όλα τα πρότυπα για να ικανοποιήσει κάποιες απαιτήσεις συγκεκριμένες απαιτήσεις ασφαλείας. Αυτό σημαίνει
ότι δεν είναι άτρωτο. Υπάρχουν απειλές που δεν μπορεί να τις εμποδίσει το openssh . Αυτές είναι:
- Σπάσιμο-υποκλοπή κωδικού χρήστη . Από το να κοιτάει κάποιος καθώς πληκτρολογείται μέχρι να τρέχει κακόβουλο λογισμικό καταγραφής στον υπολογιστή σας , η υποκλοπή του κωδικού σας μπορεί να σας αφήσει έκθετους σε κινδύνους. Η κρυπτογραφία δημόσιου κλειδίου δυσκολεύει το έργο του κακόβουλου υποκλοπέα αφού θα πρέπει να κλέψει δύο κλειδιά για να συνδεθεί σε ένα απομακρυσμένο λογαριασμό σας
- TCP/IP επιθέσεις . Το ssh δεν μπορεί να εμποδίσει επιθέσεις που θα διακόψουν ή θα αποτρέψουν μια TCP σύνδεαη.
Λεξιλόγιο
επεξεργασία- Αμοιβαία πιστοποίηση
- Απομακρυσμένος υπολογιστής. Ένας υπολογιστής στον οποίο θέλεις να συνδεθείς από τον τοπικό σου υποολογιστή,
- Εξυπηρετητής .Ένσς Openssh εξυπηρετητής.
- Πελάτης. Ένα πρόγραμμα Openssh πελάτης
- Πιστοποίηση δημόσιου κλειδίου
- Πιστοποίηση με συνθηματικό
- Τοπικός υπολογιστής . Ένας υπολογιστής στον οποίο εκτελείται έναν πελάτη openssh.
- Τοπικός χρήστης. Ένας χρήστης συνδεδεμένος στον λογαριασμό του σε έναν τοπικό υπολογιστή.
- ssh Το όνομα του προγράμματος πελάτη OpenSSH
- SSH Γενικός όρος που αναφέρεται στο SSH προτόκολο και σε σχετικές υλοποιήσεις
- SSH1 . Η πρώτη έκδσοση του πρωτοκόλλου SSH
- SSH2 . Η δεύτερη έκδοση του πρωτοκόλλου SSH
Φιλοσοφικές απορίες
επεξεργασία- Τι είναι ένα μυστικό;
- Τι σχέση έχει το μυστικό με την εμπιστοσύνη ανάμεσα σε δύο συστήματα.
- Πότε λέμε ότι ένα σύστημα είναι δικό μας;
- Τι σημαίνει να έχει ταυτότητα ένα σύστημα;
- Τι εννοούμε ότι πιστοποιήσαμε ότι κάποιος είναι αυτός που ισχυρίζεται;
- Γιατί δεν μας επαρκεί αυτό που ισχυρίζεται και θέλουμε παραπάνω αποδείξεις;
- Οι αρχές ασφαλείας κάποτε αρκούνταν σε δακτυλικά αποτυπώματα για να αναγνωρίσουν ένα άτομο τώρα σκέφτοκαι και την ίριδα, το dna κτλ.
- Ποιά χαρακτηριστικά ενος συστήματος παραμένουν αναλλοίωτα κατά την διάρκεια της ζωής του. Φυσικά ένας υπολογιστής μας θα αλλάξει πολλές φορές.Στην περίπτωση αυτή προσεγγίζουμε την έννοια της κατασκευασμένης ταυτότητας και ενός αντικείμενου. Δηλαδή μπορεί ένας εξυπηρετητής να αλλάξει ολόκληρος σαν φυσική οντότητα αλλα ακόμα να περιέχει τον λογαριασμό μας. Συνεπώς στα χαρακτηριστικά που προσδιορίζουν και ταυτοποιούν σαν ταυτότητα τον λογαριασμό μας σε ένα απομακρυσμένο μηχάνημα δεν θα συμπεριλαμβάναμε τον υπολογιστή και ούτε καν τον σκλγεό δίακο. ΑΛΛά και τα ίδια τα δεδομένα του λογαριασμού μας μπορούν να αλλάξουν αν πχ αποφασίσουμε να κάνουμε πχ επανεγκατάσταση ή κατα λάθος διαγραφούν τα δεδομένα. Στη σχέση αυτή φαίνεται ότι σημαντικό ρόλο παίζει ο ιδιοκτήτης , η κατεξοχήν συνεχούμενη οντότητα.
Εντελώς αφηρημένα σε μια πρώτη προσέγγιση θα λέγαμε ότι ένας λογαριαμός είναι ένας αποθηκευτικός χώρος , που περιέχει αρχεία ενός χρήστη και του οποίου οι αλλαγές στο σύστημα αρχείων γινονται όλες καθ´υπαγόρευση του ιδιοκτήτη-χρήστη. Η διεύθυνση με την οποία είναι προσβάσιμος ο λογαρισμός δεν φαίνεται να είναι ταυτοποιητικό στοιχείο αφού μπορούμε να μεταφέρουμε-μετακινήσουμε τα δεδομένα του λογαριασμού σε άλλον υπολογιστή. Μπορούμε να φανταστούμε έναν λογαριασμό χωρίς τον ιδιοκτήτη του; Σίγουρα αλλα αυτό θα αποτελούσε μια ριζική αλλαγή που θα δικαιολογούσε μια σημαντική αλλαγή στο όνομά της. Πχ νεκρός λογαριασμός ή λογαριασμος σε ημιζωή,αλλα θα περέμενε ένα ξεχωριστό αντικείμενο μέχρι την οριστική του διαγραφή . Όμως θα μπορούσε τον λογαριασμό χ να τον αναλάβει ένας άλλος ή ακόμα και να τον μοιραστούν πολλά άτομα. Υποθέτω ότι εδώ πρέπει να εισάγουμε και την εννοια της συνάφειας και συνέχειας στο χρόνο, γιατί ακόμα και αν πλεον διαμοιραστεί ή περάσει σε άλλο χρήστη αυτό που την ταυτοποιεί είναι η διαδοχική σειρά των αλλαγών που έγιναν σ'αυτον από τότε που δημιουργήθηκε. Αν κάποιος διαγράψει εντελώς τα δεδομένα τότε δεν έχει λογαριασμό. Αφού μπορεί να συνδεθεί και να κάνει επανεγκατάσταση...Εδώ υπάρχει η εξής περιπλοκή.Αν πχ έχεις λογαριασμό σε ένα εικονικό διακομιστη και σβήσεις πχ όλα οου τα δεδομένα του εικονικού υπολογιστή τότε ο λογαριασμός που είχες στον εικονικό υπολογιστή προφανως χάθηκε αλλά διατηρείς τον λογαρισμό του παροχέα που σου επιτρέπει να έχεις πρόσβαση σ'αυτό το εικονικό μηχάνημα. Στην περίπτωση αυτή λοιπόν μιλάμε για δύο λογαριασμούς. Ένας αφορά ένα εικονικό μηχάνημα και την πρόσβαση σ'αυτό και ο άλλος τον λογαριασμό που θα δημιουργήσεις στον εικονικό σκληρό δίσκο του εικονικού υπολογιστή.
Πως ακριβώς λειτουργεί η πιστοποίηση του χρήστη και του εξυπηρετητή; Θέλουμε να επικοινωνήσουμε με κάποιον συγκεκριμένο λογαριασμό που έχει τα δικά του μοναδικά χαρακτηριστικά που τον διαφοροποιούν από άλλους. Παρόμοια θέλει ο Μπομπ να στείλει ένα γράμμα στην Αλίκη. Πως μπορεί να είναι σίγουρος ότι το γράμμα θα φτάσει στην Αλίκη και ότι η απάντηση θα είναι δική της; Αν είχατε μια κρυπτογραφημένη αλληλογραφία με συμμετρικό κλειδί θα είχατε ένα βαθμό ασφαλείας ότι η Ευα δεν μπορούσε να διαβάσει το γράμμα παρά μόνο να διακόψει ή να αλλοιώσει την επικοινωνία κάτι που θα γινόταν αντιληπτό. Νομίζω ότι εδώ η βασική ιδέα είναι αυτή του μυστικού. Αν είναι σίγουροι ο Μπομπ και η Αλίκη ότι μόνο αυτοί ξέρουν το συμμετρικό κλειδί τότε αυτό λειτουργεί και σαν πιστοποίηση. Είναι πχ ο Μπόμπ σίγουρος ότι η οντότητα Αλίκη που αποτελεί ένα σύνολο χαρακτηριστικών , μόνο αυτή μπορεί να κατέχει το κλειδί-μυστικό , ή αντίθετα αν κατέχει το μυστικό δεν μπορεί παρά να είναι η Αλίκη (δηλαδη να είναι η οντότητα με όλα τα γνωστά χαρακτηριστικά). Φυσικά το κλειδί είναι ένα χαρακτηριστικό της οντότητας που το κατέχει ή τι θυμάται με ότι κινδύνους συνεπγεται αυτό για την ασφαλή επικοινωνία. Αν χρησιμοποιούσαν ασύμμετρη κρυπτογραφία θα μπορούσαν να χρησιμοποιήσουν τα δημόσια κλειδιά ο ένας του άλλου για να πιστοποιήσει ο ένας τον άλλο.
Φυσικά μπορεί κάποιος να θεωρήσει την πιστοποίηση σαν ένα καλό πρώτο βήμα .
Απορίες
επεξεργασία- Αφού ένα ιδιωτικό κλειδί RSA είναι 2048bits = 256bytes γιατί το αρχείo ~/.ssh/id_rsa περιέχει περίπου 1200 χαρακτήρες; Η απάντηση σχετίζεται με το γεγονός ότι ένα κλειδί είναι δυαδική πληροφορία και για την αναπαραστήσουμε σαν κείμενο (πχ χρήσιμο για λόγους μετάδοσης) θα πρέπει να χρησιμοποιήσουμε κάποιων αλγόριθμο κωδικοποίησης από Δυαδικό σε κείμενο.
- Γιατί το δημόσιο κλειδί είναι μικρότερο από το ιδιωτικό; Αυτό έχει να κάνει με την υλοποίηση του αλγορίθμου υπολογισμού του ζεύγους των κλειδιων
Σχετικοί σύνδεσμοι
επεξεργασία- The_Evolution_of_Cooperation
- Cryptography FAQ
- Χρήσιμα παραδείγματα για να παίξτε με ασύμμετρα κλειδία
Βιβλιογραφία
επεξεργασία- SSH the secure shell , o'reilly
- Cryptography and network security , William Stalling