Password encoding in UNIX systems: MD5 crypt
Description: This is issue 28 of Magaz, the Hellenic LinuxMagazine
Keywords: magaz hellenic greek hellas greece hellug linux magazine

Magaz, The Greek Linux Magazine
Τεύχος #28
Περιληπτικά Περιεχόμενα Αναλυτικά Περιεχόμενα Mirrors Links Πληροφορίες Συντάκτες Αναζήτηση Επικοινωνία
Επόμενο Προηγούμενο Περιεχόμενα ### 3. MD5 crypt Λύση στο παραπάνω πρόβλημα και στο ότι ο DES είναι κρυπτογραφικός αλγόριθμος και υπήρχε παλαιότερα δυσκολία εξαγωγής του από τις Η.Π.Α, κυρίως για τα μη εμπορικά UNIX λειτουργικά, έδωσε ο Paul-Henning Kamp για το FreeBSD λειτουργικό. Σχεδιάσε ένα αλγόριθμο κωδικοποίησης συνθηματικών βασισμένο στον MD5 ( 3) hash αλγόριθμο. Ο MD5 είναι απο τον σχεδιασμό του μίας φοράς (one-way), οπότε οι μετατροπές σε αυτόν ήταν μικρές, ενώ προστέθηκε salt απο 12 μέχρι 48 bits. Ο αλγορίθμος αυτός σε γενικές γραμμές κωδικοποιεί το salt και το συνθηματικό, με τον MD5, με αρκετούς διαφορετικούς τρόπους, έτσι ώστε να καθυστερήσει την διαδικασία. Ο MD5 αλγόριθμος παράγει ένα 128 bit hash και αφού μετατραπεί σε εκτυπώσιμη μορφή μαζί με το salt αποθηκεύεται στο αρχείο συνθηματικών. Ενα τυπικό σύστημα με MD5 κωδικοποιημένα συνθηματικά θα έχει καταχωρίσεις στο /etc/shadow της μορφής:
    nmav:$1$4Wcrq7pj$l8uWovJXI1QBP6MXRrWdt0:11000:0:99999:7:::
Οι χαρακτήρες '$1$' καθορίζουν τον συγκεκριμένο αλγόριθμο που χρησιμοποιείται (versioning) και μιας και η DES κωδικοποίηση δεν χρησιμοποιεί τον χαρακτήρα '$', δεν είναι πρόβλημα για ένα πρόγραμμα να τα διακρίνει. Το salt ξεχωρίζει απο την έξοδο του MD5 με τον χαρακτήρα '$'. O MD5 δεν έθετε πρακτικούς περιορισμούς στο μέγεθος του συνθηματικού του χρήστη. Είχε όμως το πρόβλημα του DES encoding... έχει συγκεκριμένη πολυπλοκότητα και κάποια στιγμή στο μέλλον θα ήταν εφικτή η brute force attack και σε αυτόν, άρα θα έπρεπε να αντικατασταθεί και πάλι. Επόμενο Προηγούμενο Περιεχόμενα