Με την πάροδο του χρόνου οι τεχνικές επιθέσεων βελτιώνονται. Αυτό είναι το μόνο σίγουρο. Αντίθετα, τα προβληματικά συστήματα δεν διορθώνονται πάντα έγκαιρα κι αν συνυπολογίσουμε την αδιαφορία ή και την άγνοια ορισμένων διαχειριστών, τα πράγματα γίνονται σκούρα: Μια επίθεση που σήμερα είναι πρακτικά ακίνδυνη και αδιάφορη, αύριο δεν αποκλείεται να μετατραπεί σε εφιάλτη. Έχοντας αυτά κατά νου, θα εξετάσουμε ορισμένα προληπτικά μέτρα για τη θωράκιση των κρυπτογραφημένων συνδέσεων SSH.
Πόσο ασφαλείς είναι οι συνδέσεις Secure Shell; Μη νομίζετε ότι σκοπεύουμε να κάνουμε κάποια αποκάλυψη – βόμβα. Δεν γνωρίζουμε κάτι συνταρακτικό ή, τέλος πάντων, κάτι που να μη γνωρίζετε κι εσείς. Η ερώτηση τίθεται ως αφετηρία προβληματισμού. Για την υλοποίηση μιας σύνδεσης SSH απαιτούνται αρκετά βήματα, όπως η δημιουργία και η ανταλλαγή ενός κοινού μυστικού μεγέθους (του κλειδιού), η πιστοποίηση της ταυτότητας των “συνομιλητών”, η κρυπτογράφηση των μηνυμάτων κ.ά. Όπως αντιλαμβάνεστε, σε αυτά τα στάδια αξιοποιούνται διάφοροι αλγόριθμοι, που θα μπορούσαμε να πούμε ότι συνδυάζονται σαν τους κρίκους μιας αλυσίδας. Αν σε κάποιον από αυτούς εντοπιστεί μια ευπάθεια, η προστασία που παρέχει το SSH θα κλονιστεί. Προσοχή: Δεν λέμε ότι θα παραβιαστεί: μόνο ότι θα κινδυνέψει. Το αν θα ξεπεραστεί πλήρως η ασφάλεια εξαρτάται από τη φύση της ευπάθειας, καθώς κι από το πόσο εξελιγμένες είναι οι αντίστοιχες επιθέσεις.
Πίσω από τις προηγούμενες, σχεδόν αυτονόητες, διατυπώσεις, κρύβεται μια κρίσιμη λεπτομέρεια που συνήθως παραβλέπουμε: Οι αλγόριθμοι που χρησιμοποιούνται στην κρυπτογραφία δεν κινδυνεύουν μόνο από τις προγραμματιστικές αδυναμίες, δηλαδή από τα λάθη ή τις παραλείψεις των προγραμματιστών (implementation flaws). Επομένως, η τακτική ενημέρωση του λογισμικού δεν είναι σίγουρο ότι μπορεί να μας προφυλάξει. Μη σας παραξενεύει αυτό. Η *υλοποίηση* ενός αλγορίθμου ενδέχεται να είναι εξαιρετικά προσεγμένη κι απαλλαγμένη από κάθε bug, αλλά η ίδια η λογική του να τον καθιστά τρωτό (design flaws). Σκεφτείτε το εξής: Οι αλγόριθμοι κρυπτογράφησης μετασχηματίζουν τα δεδομένα σε μια ακατάληπτη μορφή, επιστρατεύοντας περίπλοκες μαθηματικές διαδικασίες και, σε ορισμένες περιπτώσεις, ένα πρόσθετο σύνολο δεδομένων που ονομάζεται “κλειδί”. Οι μαθηματικές διαδικασίες που πετυχαίνουν τη μετατροπή έχουν σχεδιαστεί κατά τέτοιον τρόπο, ώστε η αντιστροφή τους να είναι εξαιρετικά δύσκολη και *πρακτικά* αδύνατη. Αυτό όμως δεν σημαίνει ότι είναι εντελώς ανέφικτη. Όταν δεν γνωρίζουμε το κλειδί της κρυπτογράφησης ή όταν δεν υπάρχει καθόλου κλειδί (βλ. αλγόριθμους hashing, fingerprinting κ.ο.κ.), είναι *πρακτικά* αδύνατο να ξεκινήσουμε από τα κρυπτογραφημένα δεδομένα (ή το hash, το fingerprint κ.ο.κ.) και να βρούμε τα αρχικά, μη-κρυπτογραφημένα. Ακόμη και με μια επίθεση brute force, οι απαιτούμενες δοκιμές είναι τόσο πολλές που ο αντίστοιχος χρόνος είναι απαγορευτικά μεγάλος. Θεωρητικά, ωστόσο, τίποτα απ’ όλα αυτά δεν είναι αδύνατο. Με την πάροδο του χρόνου η διαδικασία αντιστροφής ορισμένων αλγορίθμων επιταχύνθηκε σε τέτοιο βαθμό, που οι αλγόριθμοι θεωρήθηκαν σπασμένοι. Αυτό συνέβη είτε γιατί εντοπίστηκαν κάποιες αδυναμίες στο μαθηματικό υπόβαθρο, είτε γιατί υπήρξαν εξελίξεις στα μαθηματικά που επέτρεψαν την ταχύτερη λύση κάποιων υπολογιστικών προβλημάτων.
Φαίνεται, λοιπόν, ότι υπάρχουν αδυναμίες που μπορούν να εντοπίσουν οι προγραμματιστές, αλλά κι αδυναμίες που μπορούν να εντοπίσουν οι Μαθηματικοί. Τελικά, αυτό που πρέπει να θυμόμαστε είναι το εξής: Υπάρχουν προβλήματα που διορθώνονται με ένα software update, καθώς κι άλλα που απαιτούν την αντικατάσταση κάποιων τμημάτων του software. Στη δεύτερη περίπτωση, ο εκάστοτε διαχειριστής πρέπει να είναι καλά ενημερωμένος και πάνω απ’ όλα ψύχραιμος.
Διαβάστε ολόκληρο το άρθρο στο deltaHacker 040.
Το μηνιαίο περιοδικό deltaHacker είναι αποκλειστικά ψηφιακό (μορφή PDF). Μάθετε για τις απίστευτες τιμές των συνδρομών που προσφέρουμε, δείτε όλα τα τεύχη που έχουν κυκλοφορήσει ως τώρα, καθώς επίσης και τα εκτενή κι αναλυτικά video tutorials (deltaCast Episodes) που παράγουμε. Μπορείτε να κάνετε την παραγγελία του πακέτου συνδρομής που σας ταιριάζει από τη σχετική φόρμα. Προσοχή: Για την πλήρη πρόσβαση στα video tutorials απαιτείται ενεργή συνδρομή στο περιοδικό.
4 Responses to “Ασφαλέστερο OpenSSH, εδώ και τώρα!”
Comment Link
το συγκεκριμενο αρθρο του περιοδικου deltahacker:ασφαλεστερο Secure Shell, πρακτικα που μπορει να ωφελησει εναν μεσο χρηστη;πχ στην αλληλεπιδραση του με μια ιστοσελιδα με πρωτοκολο https;(να βελτιωσει δηλαδη την ασφαλεια επικοινωνιας;)πως; η χρησιμοποιηται σε πολυ εξειδικευμενες προσωπικες περιπτωσες;(PVN)
Ευχαριστω και συγχαρητηρια για την μακραν του καλου δουλεια σας.
Comment Link
Γεια σου Ηλία!
Όταν θα στήσεις κι εσύ το δικό σου VPS, θα συνδέεσαι σ’ αυτό (και) μέσω OpenSSH. Λογικά, η αντίστοιχη υπηρεσία θα θέλεις να είναι όσο το δυνατόν πιο ασφαλής.
Comment Link
πολύ καλό το άρθρο, αλλα αδερφέ πολύ έμφαση στο debian. Πολλοί χρησιμοποιούν Centos / fedora ή άλλα προερχόμενα απο redHat.
θα ηταν ενδιαφέρουσα μια πρόσθεση στο αρθρο για τεχνικές ανάλογες του backporting σε αυτά ( τα extended software repositories)
Comment Link
Στην σελίδα 31 εκεί που λέτε για το πως να απενεργοποιηθεί η ταυτοποίηση με password, ώστε να υπάρχει μόνο η ταυτοποίηση με κλειδιά. Κάνοντας τα βήματα *ακριβώς* που αναφέρετε, παρατήρησα πως δεν μπορώ να κάνω σύνδεση στον λογαριασμό χρήστη που έχω στείλει το δημόσιο κλειδί μου, αν αυτός ο χρήστης δεν είναι *ήδη* συνδεδεμένος.
( Μάλλον υπάρχει κάποιο πρόβλημα με το αρχείο που κοιτάει για τα δημόσια κλειδιά.. )
Δε ξέρω τι ακριβώς παίζει και σας παρακαλώ πολύ βοηθήστε με.
Πάντως αν βάλω “PasswordAuthentication no” και ο χρήστης *δεν είναι συνδεδεμένος ήδη*, τότε παίρνω σφάλμα :
“Permission denied (publickey).”
Ενώ αν ο χρήστης είναι συνδεδεμένος, με ένα απλό :
ssh user@ip
οκ μπαίνει αυτόματα χωρίς κανένα κωδικό μια χαρά.