15.4 DES, Blowfish, MD5, and Crypt

Μέρη έχουν ξαναγραφεί και ενημερωθεί από τον Bill Swingle.

Κάθε χρήστης σε ένα UNIX® σύστημα έχει κωδικό που σχετίζεται με τον λογαριασμό του. Είναι προφανές ότι αυτοί οι κωδικοί πρέπει να είναι γνωστοί μόνο στον χρήστη και στο λειτουργικό σύστημα. Για να κρατήσουμε αυτούς τους κωδικούς μυστικούς, κρυπτογραφούνται με αυτό που είναι γνωστό ως «one-way hash», δηλαδή, μπορούν εύκολα μόνο να κρυπτογραφηθούν και όχι να αποκρυπτογραφηθούν. Με άλλα λόγια, ότι σας είπαμε μόλις πριν λίγο ότι είναι προφανές δεν είναι καν αλήθεια: το ίδιο το λειτουργικό σύστημα πράγματι δεν γνωρίζει τον κωδικό. Γνωρίζει μόνο την κρυπτογραφημένη μορφή του κωδικού. Ο μόνος τρόπος να πάρετε το «καθαρό-κείμενο» του κωδικού είναι με αναζήτηση ωμής βίας του χώρου όλων των πιθανών κωδικών.

Δυστυχώς ο μόνος ασφαλής τρόπος να κρυπτογραφηθούν οι κωδικοί όταν το UNIX εμφανίστηκε βασίζονταν στο DES, το Data Encryption Standard. Αυτό δεν ήταν πρόβλημα για τους χρήστες που διέμεναν στις ΗΠΑ, αλλά αφού ο πηγαίος κώδικας για το DES δεν μπορούσε να εξαχθεί εκτός ΗΠΑ, το FreeBSD έπρεπε να βρει έναν τρόπο να συμμόρφωσης με τους νόμους των ΗΠΑ και να διατηρήσει συμβατότητα με όλες τις άλλες διανομές UNIX που ακόμα χρησιμοποιούσαν DES.

Η λύση ήταν να χωριστούν οι βιβλιοθήκες κρυπτογράφησης έτσι ώστε οι χρήστες στις ΗΠΑ να μπορούν να εγκαταστήσουν τις βιβλιοθήκες για DES και να χρησιμοποιήσουν DES ενώ οι διεθνείς χρήστες να έχουν μια μέθοδο κρυπτογράφησης που να μπορούν να εξάγουν στο εξωτερικό. Έτσι το FreeBSD χρησιμοποίησε MD5 ώς την εξ' ορισμού μέθοδο κρυπτογράφησης. Ο MD5 πιστεύεται ότι είναι πιο ασφαλής από τον DES, έτσι η εγκατάσταση του DES προσφέρεται κυρίως για λόγους συμβατότητας.

15.4.1 Αναγνωρίζοντας τον Μηχανισμό Κρυπτογράφησης σας

Προς το παρόν η βιβλιοθήκη υποστηρίζει DES, MD5 και Blowfish συναρτήσεις. Εξ' ορισμού το FreeBSD χρησιμοποιεί MD5 για να κρυπτογραφεί κωδικούς.

Είναι πολύ απλό να αναγνωρίσετε ποια μέθοδο κρυπτογράφησης το FreeBSD έχει ρυθμιστεί να χρησιμοποιεί. Εξετάζοντας τους κρυπτογραφημένους κωδικούς στο αρχείο /etc/master.passwd είναι ένας τρόπος. Οι κωδικοί που κρυπτογραφούνται με MD5 είναι μακρύτεροι από αυτούς που κρυπτογραφούνται με τον DES και επίσης ξεκινούν με τους χαρακτήρες $1$. Κωδικοί που ξεκινούν με $2a$ είναι κρυπτογραφημένοι με Blowfish. Οι συμβολοσειρές κωδικών του DES δεν έχουν κάποιο συγκεκριμένο χαρακτηριστικό αναγνώρισης, αλλά είναι μικρότεροι από αυτούς του MD5, και κωδικοποιούνται με αλφάβητο 64-χαρακτήρων που δεν περιέχει τον χαρακτήρα $, έτσι μια σχετικά μικρή συμβολοσειρά που δεν ξεκινά με δολάριο είναι πολύ πιθανόν να είναι ένας κωδικός DES.

Η μορφή του κωδικού που χρησιμοποιείται για τους νέους κωδικούς ελέγχεται από δυνατότητα σύνδεσης passwd_format στο αρχείο /etc/login.conf, που παίρνει τις τιμές des, md5 ή blf. Βλέπετε την σελίδα εγχειριδίου login.conf(5) για περισσότερες πληροφορίες σετικά με τις δυνατότητες σύνδεσης.

Αυτό το κείμενο, και άλλα κείμενα, μπορεί να βρεθεί στο ftp://ftp.FreeBSD.org/pub/FreeBSD/doc/.

Για ερωτήσεις σχετικά με το FreeBSD, διαβάστε την τεκμηρίωση πριν να επικοινωνήσετε με την <questions@FreeBSD.org>.
Για ερωτήσεις σχετικά με αυτή την τεκμηρίωση, στείλτε e-mail στην <doc@FreeBSD.org>.