Αντιμετώπιση προβλημάτων

Γνώση Υπολογιστών >> Αντιμετώπιση προβλημάτων >  >> Οι κωδικοί πρόσβασης

Τι είναι το Algprith που χρησιμοποιείται το Linux για την αποκωδικοποίηση του κωδικού πρόσβασης;

Το Linux δεν "αποκωδικοποιεί" κωδικούς πρόσβασης. Χρησιμοποιεί μια διαδικασία hashing και Salting για την αποθήκευση των κωδικών πρόσβασης με ασφάλεια. Ακολουθεί μια ανάλυση του αλγορίθμου και των σχετικών εννοιών:

1. Ο στόχος:Ασφαλής αποθήκευση κωδικού πρόσβασης

Η θεμελιώδη αρχή είναι ότι ο πραγματικός κωδικός πρόσβασης του κείμενο είναι * ποτέ * αποθηκεύεται οπουδήποτε. Εάν η βάση δεδομένων που περιέχει κωδικούς πρόσβασης ήταν ποτέ διακυβευμένοι, οι επιτιθέμενοι θα είχαν άμεσα πρόσβαση σε όλους τους λογαριασμούς χρηστών. Το Hashing και το Salting αποτρέπουν αυτό.

2. Hashing:

* Λειτουργία μονής κατεύθυνσης: Το Hashing είναι μια μαθηματική λειτουργία που μετατρέπει τον κωδικό πρόσβασης σε μια σειρά από χαρακτήρες σταθερού μεγέθους που ονομάζεται "hash". Είναι μια λειτουργία * μονής κατεύθυνσης *, που σημαίνει ότι είναι υπολογιστικά ανέφικτη (εξαιρετικά δύσκολη και χρονοβόρα) να αντιστρέψει τη διαδικασία και να αντλήσει τον αρχικό κωδικό πρόσβασης από το hash.

* Αντίσταση σύγκρουσης: Στην ιδανική περίπτωση, διαφορετικοί κωδικοί πρόσβασης πρέπει να παράγουν διαφορετικά hashes. Ένας καλός αλγόριθμος κατακερματισμού ελαχιστοποιεί την πιθανότητα μιας "σύγκρουσης", όπου δύο διαφορετικοί κωδικοί πρόσβασης παράγουν το ίδιο hash.

* Κοινοί αλγόριθμοι κατακερματισμού στο Linux:

* bcrypt: Συχνά θεωρείται η ισχυρότερη και προτιμώμενη επιλογή. Περιλαμβάνει ένα ενσωματωμένο αλάτι και έχει σχεδιαστεί για να είναι υπολογιστικά ακριβό, καθιστώντας το ανθεκτικό σε επιθέσεις βίαιης δύναμης.

* argon2: Ένας σύγχρονος αλγόριθμος hashing κωδικού πρόσβασης που έχει επίσης σχεδιαστεί για να είναι υπολογιστικά δαπανηρή και σκληρή μνήμη, αυξάνοντας περαιτέρω την αντίσταση στις επιθέσεις. Γίνεται όλο και πιο δημοφιλές.

* Scrypt: Μια άλλη συνάρτηση βασικής παραγωγής που έχει σχεδιαστεί για να είναι ανθεκτική σε επιθέσεις βίαιης δύναμης.

* sha-512: (Λιγότερο κοινό * τώρα * για απευθείας κωδικό πρόσβασης, αλλά συχνά χρησιμοποιείται ως μέρος μιας μεγαλύτερης συνάρτησης παραγωγής κλειδιών). Χρησιμοποιήθηκε ιστορικά. Χρησιμοποιείται μερικές φορές ως μέρος των διαμορφώσεων PAM.

* MD5, SHA-1, SHA-256: Μην τα χρησιμοποιείτε! Αυτά θεωρούνται ξεπερασμένα και ευάλωτα για απευθείας κωδικός πρόσβασης. Είναι πολύ γρήγορα και εύκολα ραγισμένα με μοντέρνο υλικό και προ -υπολογισμένα τραπέζια ουράνιου τόξου. Μπορούν να βρεθούν σε παλαιότερα συστήματα, αλλά θα πρέπει να αναβαθμιστούν.

3. Αλάτι:

* Προσθήκη τυχαίων: Ένα "αλάτι" είναι μια τυχαία σειρά χαρακτήρων που είναι μοναδικό για κάθε χρήστη. Το αλάτι συσσωρεύεται (προστίθεται) στον κωδικό πρόσβασης * πριν * είναι χασμουρητό.

* Πρόληψη επιθέσεων τραπεζιού ουράνιου τόξου: Οι πίνακες ουράνιου τόξου είναι προκαταρκτικοί πίνακες hashes για κοινούς κωδικούς πρόσβασης. Χωρίς αλάτι, ένας εισβολέας θα μπορούσε απλά να κοιτάξει το hash σε ένα τραπέζι ουράνιου τόξου για να βρει τον αντίστοιχο κωδικό πρόσβασης. Το Salting κάνει τα τραπέζια ουράνιου τόξου άχρηστα επειδή κάθε κωδικός πρόσβασης έχει ένα μοναδικό αλάτι, με αποτέλεσμα ένα μοναδικό hash ακόμη και για κοινούς κωδικούς πρόσβασης.

* Το αλάτι αποθηκεύεται με το hash: Βασικά, το ίδιο το αλάτι αποθηκεύεται παράλληλα με τον κωδικό πρόσβασης στο αρχείο `/etc/shadow '(ή σε κάποια βάση δεδομένων στα σύγχρονα συστήματα). Αυτό δεν είναι * μια ευπάθεια ασφαλείας. Το αλάτι απαιτείται * για την επαλήθευση ενός κωδικού πρόσβασης.

* Γιατί να αποθηκεύσετε το αλάτι; Για να επαληθεύσει τον κωδικό πρόσβασης ενός χρήστη, το σύστημα πρέπει να:

1. Ανακτήστε το αποθηκευμένο αλάτι για αυτόν τον χρήστη.

2. Συνοπτικά τον κωδικό πρόσβασης που εισάγεται με το αλάτι.

3. Hash Το αποτέλεσμα χρησιμοποιώντας τον ίδιο * αλγόριθμο hashing που χρησιμοποιήθηκε αρχικά.

4. Συγκρίνετε το πρόσφατα δημιουργημένο hash με το αποθηκευμένο hash. Εάν ταιριάζουν, ο κωδικός πρόσβασης είναι σωστός.

4. Το αρχείο `/etc/shadow` (παραδοσιακή προσέγγιση)

Παραδοσιακά, οι κωδικοί πρόσβασης χρηστών και οι σχετικές πληροφορίες τους αποθηκεύονται στο αρχείο `/etc/shadow`. (Σημείωση:Η απευθείας προβολή ή τροποποίηση αυτού του αρχείου απαιτεί συνήθως προνόμια ρίζας).

* Δικαιώματα: Το αρχείο `/etc/shadow` είναι συνήθως αναγνωρίσιμο μόνο από τον χρήστη` root`, εξασφαλίζοντας ότι οι τακτικοί χρήστες δεν μπορούν να δουν τους κωδικούς πρόσβασης hashed άλλων χρηστών.

* Δομή: Κάθε γραμμή στο αρχείο `/etc/shadow` αντιπροσωπεύει έναν λογαριασμό χρήστη και έχει την ακόλουθη μορφή (απλοποιημένη):

`` `

Όνομα χρήστη:hashed_password:last_change:min_days:max_days:warn_days:inactive_days:expire_date:σημαίες

`` `

* Το πεδίο `hashed_password`: Αυτό είναι όπου αποθηκεύεται ο αλατισμένος και χαστούκι κωδικός πρόσβασης. Η μορφή αυτού του πεδίου περιλαμβάνει συνήθως ένα αναγνωριστικό για τον χρησιμοποιούμενο αλγόριθμο κατακερματισμού, το αλάτι και το πραγματικό hash. Για παράδειγμα:

* `$ 6 $ some_random_salt $ averylongheDpasswordString` (αυτό χρησιμοποιεί sha-512)

* `$ 2B $ 10 $ orother_random_salt $ evellongerhashedpasswordstring` (αυτό χρησιμοποιεί bcrypt)

* `$ 6` υποδεικνύει Sha-512

* `$ 2B` υποδεικνύει bcrypt

*Ο αριθμός (π.χ., `10 'στο BCrypt) υποδεικνύει τον παράγοντα κόστους *ή *παράγοντα εργασίας *. Ένας υψηλότερος παράγοντας κόστους καθιστά τη διαδικασία κατακερματισμού πιο υπολογιστικά δαπανηρή, αυξάνοντας το χρόνο που χρειάζεται για να σπάσει τον κωδικό πρόσβασης.

5. Σύγχρονα συστήματα και PAM (Μονάδες ελέγχου ταυτότητας Pluggable)

* Βάσεις δεδομένων: Τα σύγχρονα συστήματα χρησιμοποιούν συχνά βάσεις δεδομένων (π.χ. LDAP, Active Directory) για την αποθήκευση πληροφοριών λογαριασμού χρήστη, συμπεριλαμβανομένων των κωδικών πρόσβασης Hashed.

* Pam: Το PAM είναι ένα ευέλικτο πλαίσιο που επιτρέπει στους διαχειριστές του συστήματος να διαμορφώνουν διαφορετικούς μηχανισμούς ελέγχου ταυτότητας. Χρησιμοποιείται για τη διαχείριση της διαδικασίας ελέγχου ταυτότητας, συμπεριλαμβανομένων των κωδικών πρόσβασης, την επαλήθευση των κωδικών πρόσβασης και την εκτέλεση άλλων εργασιών που σχετίζονται με την ασφάλεια. Τα αρχεία ρυθμίσεων PAM (π.χ. σε `/etc/pam.d/`) καθορίζουν ποιες μονάδες ελέγχου ταυτότητας χρησιμοποιούνται και πώς έχουν ρυθμιστεί.

Παράδειγμα Σενάριο:Επαλήθευση κωδικού πρόσβασης χρήστη

1. Ο χρήστης εισάγει κωδικό πρόσβασης: Ο χρήστης πληκτρολογεί τον κωδικό πρόσβασής του σε μια γραμμή σύνδεσης ή εφαρμογή.

2. Το σύστημα ανακτά αλάτι: Το σύστημα εξετάζει τον λογαριασμό του χρήστη και ανακτά το αποθηκευμένο αλάτι από το `/etc/shadow` (ή την κατάλληλη βάση δεδομένων).

3. Συνέλευση και Hashing:Το σύστημα συγκαλύπτει τον κωδικό πρόσβασης που έχει εισαχθεί με το ανακτημένο αλάτι. Στη συνέχεια, χρησιμοποιεί τον αλγόριθμο κατακερματισμού που υποδεικνύεται στην είσοδο `/etc/shadow` (π.χ. sha-512 ή bcrypt) για να κατακερματιστεί με τον συνδυασμένο κωδικό πρόσβασης και το αλάτι.

4. σύγκριση: Το πρόσφατα δημιουργημένο hash συγκρίνεται με το αποθηκευμένο hash σε `/etc/shadow`.

5. Επιτυχία/αποτυχία ταυτότητας/αποτυχία:Εάν οι δύο αγώνες hashes, ο έλεγχος ταυτότητας είναι επιτυχής. Διαφορετικά, ο έλεγχος ταυτότητας αποτυγχάνει.

Σημαντικές εκτιμήσεις:

* Πολυπλοκότητα κωδικού πρόσβασης: Ενθαρρύνετε τους χρήστες να επιλέξουν ισχυρούς κωδικούς πρόσβασης που είναι μεγάλοι, πολύπλοκες και δύσκολο να μαντέψουν.

* Κανονικές αλλαγές κωδικού πρόσβασης: Απαιτώντας περιοδικά οι χρήστες να αλλάζουν τους κωδικούς πρόσβασής τους μπορεί να συμβάλει στην άμβλυνση του κινδύνου συμβιβασμού κωδικού πρόσβασης.

* Έλεγχος ταυτότητας πολλαπλών παραγόντων (MFA): Η χρήση του MFA προσθέτει ένα επιπλέον στρώμα ασφάλειας, απαιτώντας από τους χρήστες να παρέχουν πολλαπλές μορφές αναγνώρισης, όπως κωδικός πρόσβασης και κωδικός από το τηλέφωνό τους.

* Έλεγχοι ασφαλείας: Ο τακτικός έλεγχος της διαμόρφωσης ασφαλείας του συστήματός σας μπορεί να βοηθήσει στον εντοπισμό και την αντιμετώπιση πιθανών τρωτών σημείων.

* Παραμονή ενημερωμένη: Κρατήστε το λειτουργικό σας σύστημα και το λογισμικό σας ενημερωμένο με τα πιο πρόσφατα μπαλώματα ασφαλείας.

Συνοπτικά: Το Linux δεν "αποκωδικοποιεί" κωδικούς πρόσβασης. Χρησιμοποιεί έναν ισχυρό συνδυασμό αλάτου και κατακερματισμού για την ασφαλή αποθήκευση παρασκευασμάτων κωδικών πρόσβασης. Οι αλγόριθμοι «Bcrypt` και« Argon2 »προτιμούν γενικά για την αντίσταση τους σε επιθέσεις βίαιης δύναμης. Η σωστή διαμόρφωση της PAM και η διατήρηση του συστήματός σας είναι κρίσιμες για την προστασία των λογαριασμών χρηστών.

Πνευματικά δικαιώματα © Γνώση Υπολογιστών Όλα τα δικαιώματα κατοχυρωμένα