Βρισκόμαστε στη δεύτερη δεκαετία του 21ου αιώνα και -θεωρητικά- με τόσες γενιές εξοικειωμένες με την τεχνολογία, δεν θα έπρεπε καν να συζητάμε για την αναγκαιότητα των κωδικών πρόσβασης. Όμως, να που χρειάζεται και ιδιαίτερα στην εποχή της Τεχνητής Νοημοσύνης που, ανάμεσα στα άλλα, το σπάσιμο των κωδικών πρόσβασης γίνεται πιο εύκολο.

Δυστυχώς όμως, ακόμα και σήμερα,τα passwords εξακολουθούν να αντιμετωπίζονται επιδερμκά, με πολλούς να χρησιμοποιούν αστεία στοιχεία ή να ανακυκλώνουν τον ίδιο κωδικό παντού. Παρά τις προσπάθειες πλατφορμών και τραπεζών να επιβάλουν αυστηρότερους κανόνες, οι λογαριασμοί χάνονται καθημερινά.
Ας δούμε λοιπόν πώς φτάσαμε εδώ, πώς λειτουργούν πραγματικά οι κωδικοί (ακόμα και κάτω από το καπό του Linux) και τι πρέπει να προσέχουμε.
Ιστορική αναδρομή: Από τις περγαμηνές στη Enigma
Η ανάγκη προστασίας μυστικών από αδιάκριτα μάτια δεν είναι κάτι νέο. Υπάρχει από την εποχή των περγαμηνών και την Εποχή του Χαλκού. Μάλιστα, η πιο εξελιγμένη πρώιμη μορφή κρυπτογράφησης συναντάται στις μηχανές «Enigma» των Ναζί, ενώ ο πρώτος υπολογιστικός κωδικός γεννήθηκε το 1961 στο MIT, σε μια εποχή που οι οικιακοί υπολογιστές όχι απλά ήταν ανύπαρκτοι αλλά δεν υπήρχαν ούτε καν σαν ιδέα.
Η κρυπτογράφηση, επομένως, δεν είναι τωρινή μόδα αλλά μια αιώνια πρακτική για την ασφάλεια των δεδομένων μας.
Οι χρυσοί κανόνες των passwords (και οι παγίδες)
Ας αφήσουμε στην άκρη τα ημίμετρα λοιπόν και ας επικεντρωθούμε στα βασικά:
Μοναδικότητα και αλλαγή: Ποτέ ο ίδιος κωδικός παντού. Μα ποτέ όμως. Αν διαρρεύσει ο ένας, καταρρέουν τα πάντα. Είναι το φαινόμενο της αλυσιδωτής κατάρρευσης.
Προτείνεται η αλλαγή τους ανά εξάμηνο.
Δομή: Τουλάχιστον 8 χαρακτήρες (κατά προτίμηση περισσότεροι), με συνδυασμό κεφαλαίων, αριθμών και συμβόλων σε απρόβλεπτες θέσεις (όχι προβλέψιμα greeklish ή παραλλαγές του τύπου p@ssw0rd).
Αποφυγή προφανών επιλογών: Ονόματα, κατοικίδια, ημερομηνίες γέννησης, πινακίδες ή συνεχόμενα πλήκτρα στο πληκτρολόγιο (π.χ. qwert1234) σπάνε σε ελάχιστα δευτερόλεπτα.
Το πρόβλημα των «λεξικών»: Η χρήση τυχαίων λέξεων από βιβλία ή ταινίες δεν προσφέρει ασφάλεια απέναντι στις αυτοματοποιημένες επιθέσεις λεξικού (dictionary attacks), σύμφωνα με παλαιότερες έρευνες του Πανεπιστημίου του Cambridge. Άρα, κάτι τέτοιο δεν είναι και η πιο έξυπνη ιδέα. Μην ακούτε τις ανοησίες που λέγονται ακόμα από αυτοχρισμένους «ειδικούς ασφαλείας».
Δεδομένου ότι ο ανθρώπινος εγκέφαλος αδυνατεί να απομνημονεύσει δεκάδες πολύπλοκους κωδικούς, η λύση είναι μία και απλή: διαχειριστές κωδικών (όπως το Bitwarden ή το KeePass) ή οι ενσωματωμένοι, κρυπτογραφημένοι μηχανισμοί των σύγχρονων περιηγητών. Έτσι, απομνημονεύετε μόνο έναν ισχυρό master κωδικό.
Πώς δουλεύουν οι κωδικοί στα συστήματα Unix/Linux
Στα σύγχρονα συστήματα Unix-based, η διαχείριση των κωδικών πάντα ήταν μπροστά αλλά πλέον έχει εξελιχθεί σημαντικά για λόγους ασφαλείας.
Ενώ παλαιότερα όλα τα δεδομένα περιέχονταν σε ένα ενιαίο αρχείο, σήμερα εφαρμόζεται η τεχνική του password shadowing. Αυτό σημαίνει ότι οι βασικές πληροφορίες χρήστη παραμένουν στο αρχείο /etc/passwd (το οποίο είναι αναγνώσιμο από τις εφαρμογές για τη λειτουργία του συστήματος), αλλά οι κρυπτογραφημένοι κωδικοί (hashes) έχουν μεταφερθεί στο αρχείο /etc/shadow, το οποίο είναι αυστηρά προσβάσιμο αποκλειστικά από τον διαχειριστή (root).
Να ένα παράδειγμα:
Ας δούμε μια τυπική δομή γραμμής στο /etc/passwd: osarena:x:701:200:osarena net:/home/osarena:/bin/bash
**osarena:** Όνομα χρήστη
**x:** Ένδειξη ότι το πραγματικό hash βρίσκεται κρυμμένο στο `/etc/shadow`
**701 / 200:** ID χρήστη και ομάδας
**Path & Shell:** Προσωπικός φάκελος και κέλυφος εκκίνησης
Η μαγεία του Hash και του Salt: Ο κωδικός δεν αποθηκεύεται ποτέ σε plain text. Χρησιμοποιείται μονόδρομη κρυπτογράφηση (με σύγχρονους αλγορίθμους όπως το SHA-512 ή το Argon2), όπου το λεγόμενο «salt» (τυχαίοι χαρακτήρες) αναμειγνύεται με τον κωδικό προτού παραχθεί το τελικό «hash». Όταν συνδέεστε, το σύστημα επαναλαμβάνει τη διαδικασία και συγκρίνει τα hashes. Η προσθήκη του salt αποτρέπει τις μαζικές επιθέσεις αποκρυπτογράφησης (rainbow tables), καθιστώντας τη διαδικασία εξαιρετικά δύσκολη για έναν εισβολέα.
Το τελικό συμπέρασμα; Κανένας ανθρώπινος κωδικός δεν είναι απόλυτα απρόσβλητος αν κάποιος διαθέτει αρκετό χρόνο και υπολογιστική ισχύ. Η ασφάλεια είναι θέμα σωστής διαχείρισης και δυσκολίας του έργου του επιτιθέμενου.