Δημοσιεύτηκε: 16 Απρ 2011, 22:34
από Star_Light
simosx έγραψε:Όταν διαβάζουμε παλιά βιβλία για Unix, μαθαίνουμε ότι στο /etc/passwd μπορούμε να βρούμε τον κωδικό μας, σε μια ειδική μορφή που σχετίζεται με τον αλγόριθμό DES.
Νεότερα βιβλία αναφέρουν ότι οι κωδικοί έχουν μεταφερθεί στο /etc/shadow, και ότι γίνεται χρήση αθροίσματος ελέγχου (hash), και συγκεκριμένα το MD5.

Τι συμβαίνει πραγματικά στο Ubuntu;

Ας δούμε το περιεχόμενο του /etc/shadow (στο σύστημά μου):
Κώδικας: Επιλογή όλων
root:!:14784:0:99999:7:::
daemon:*:14728:0:99999:7:::
bin:*:14728:0:99999:7:::
sys:*:14728:0:99999:7:::
...
myubuntu:$6$8AKFwJvq$iPY.sq0XO58ciwi3fQQBfKGCvW3JMu0.K5Jms7uZUmePQjVhhaWVkzQWC7NetruCiH2oqb06r/nlL739NXrvS/:15037:0:99999:7:::


Παραπάνω, ο χαρακτήρας : είναι ο χαρακτήρας που διαχωρίζει τα πεδία. Το πρώτο πεδίο είναι ο όνομα χρήστη, και το δεύτερο σχετίζεται με τον κωδικό του χρήστη.

Για το χρήστη root αλλά και τους άλλους χρήστες συστήματος, οι λογαριασμοί είναι κλειδωμένοι. Δεν υπάρχει κωδικός που μπορούμε να βάλουμε ώστε να συνδεθούμε με τους λογαριασμούς αυτούς. Οι χαρακτήρες ! και * είναι χαρακτήρες που έχουν ως στόχο να μην αντιστοιχούν σε κάποιο κωδικό. Για να συνδεθούμε ως root, πρέπει να έχουμε ένα λογαριασμό χρήστη μετά να χρησιμοποιήσουμε sudo ή gksudu. Και είναι καλό αυτό.

Ο χρήστης μας είναι ο myubuntu, και έχει ως κωδικό το
Κώδικας: Επιλογή όλων
$6$8AKFwJvq$iPY.sq0XO58ciwi3fQQBfKGCvW3JMu0.K5Jms7uZUmePQjVhhaWVkzQWC7NetruCiH2oqb06r/nlL739NXrvS/

Τα $ είναι διαχωριστικά, οπότε έχουμε τα τρία πεδία
Κώδικας: Επιλογή όλων
6
8AKFwJvq
iPY.sq0XO58ciwi3fQQBfKGCvW3JMu0.K5Jms7uZUmePQjVhhaWVkzQWC7NetruCiH2oqb06r/nlL739NXrvS/


Το 6 δηλώνει ότι χρησιμοποιήθηκε ο αλγόριθμός SHA-1 512bit (παλαιότερα Linux είχαν '1', που σήμαινε MD5, που δεν είναι τόσο καλό).
Το 8AKFwJvq είναι κάτι που ονομάζεται salt (αλάτισμα;), που είναι μια τυχαία τιμή. (δες παρακάτω)
Το iPY.sq0XO58ciwi3fQQBfKGCvW3JMu0.K5Jms7uZUmePQjVhhaWVkzQWC7NetruCiH2oqb06r/nlL739NXrvS/ είναι η παραγώμενη τιμή που προκύπτει από το συνδυασμό του κωδικού μας + το τυχαίο αλάτισμα, και όλο αυτό μαζί έχει περαστεί από τον αλγόριθμο αθροίσματος ελέγχου SHA-1 512bit.

Μπορούμε να παράγουμε την παραπάνω τιμή και εμείς οι ίδιοι, με
Κώδικας: Επιλογή όλων
sudo apt-get install mkpasswd      # Αν έχετε Ubuntu 10.04.2 ή παλαιότερο
sudo apt-get install whois       # Αν έχετε Ubuntu 10.10 ή νεότερο

και μετά
Κώδικας: Επιλογή όλων
> mkpasswd -m sha-512 test 8AKFwJvq
$6$8AKFwJvq$iPY.sq0XO58ciwi3fQQBfKGCvW3JMu0.K5Jms7uZUmePQjVhhaWVkzQWC7NetruCiH2oqb06r/nlL739NXrvS/
> _


Ο κωδικός που βάλαμε ήταν test.

Creative Commons License
Η εργασία υπάγεται στην άδεια Creative Commons Αναφορά-Παρόμοια διανομή 3.0 Ελλάδα


Εκπληκτικος οδηγος.. και τα δικα μου μπραβο.
Βεβαια εχω μερικα σημεια που θα ηθελα να επισημανω για να συζητησουμε
Τον Φεβρουαριο του 2005 μια επιτυχημενη επιθεση στην SHA-1 οδήγησε στην έκδοση του SHA-2
καλα ενταξει και στην MD5 εχει βρεθει και σε αυτον κενο ασφαλειας...