Ακολουθεί μια κατανομή και μερικά κοινά παραδείγματα:
* Κωδικοί πρόσβασης λειτουργικού συστήματος (Windows, MacOS, Linux): Όταν δημιουργείτε ή αλλάζετε τον κωδικό πρόσβασής σας για το λειτουργικό σύστημα του υπολογιστή σας, το OS διαλύεται αυτόματα (κρυπτογραφεί) τον κωδικό πρόσβασης * πριν από την αποθήκευση του. Ο κωδικός πρόσβασης απλού κειμένου δεν αγγίζει ποτέ το μέσο αποθήκευσης.
* Λογαριασμοί Ιστοσελίδας (π.χ. Google, Facebook, Amazon): Όταν δημιουργείτε έναν λογαριασμό σε έναν ιστότοπο ή αλλάξτε τον κωδικό πρόσβασής σας, ο ιστότοπος * θα πρέπει να κατακερματιστεί αμέσως στον κωδικό πρόσβασής σας στο διακομιστή πριν την αποθηκεύσετε στη βάση δεδομένων τους. Οι αξιόπιστες ιστότοποι ακολουθούν αυτήν την πρακτική. Η διαδικασία συμβαίνει με διαφάνεια. Δεν το βλέπετε. A * Good * Ο ιστότοπος δεν αποθηκεύει ποτέ τον κωδικό πρόσβασής σας σε απλό κείμενο.
* Βάσεις δεδομένων: Πολλά συστήματα βάσεων δεδομένων παρέχουν μηχανισμούς για την αυτόματη κρυπτογράφηση δεδομένων, συμπεριλαμβανομένων των κωδικών πρόσβασης, μετά τη δημιουργία ή την τροποποίηση. Οι διαχειριστές βάσης δεδομένων μπορούν να διαμορφώσουν αυτές τις ρυθμίσεις.
* Ειδικοί κωδικοί πρόσβασης εφαρμογής: Εάν μια εφαρμογή (όπως ένας διαχειριστής κωδικού πρόσβασης, ένα πρόγραμμα λογισμικού κ.λπ.) αποθηκεύει κωδικούς πρόσβασης, θα πρέπει * να τους κρυπτογραφήσει αυτόματα μετά τη δημιουργία/τροποποίηση.
Σημαντικές εκτιμήσεις:
* Κρυπτογράφηση εναντίον Hashing: Ο όρος "κρυπτογράφηση" χρησιμοποιείται συχνά χαλαρά, αλλά στο πλαίσιο της ασφάλειας του κωδικού πρόσβασης, hashing είναι ο πιο ακριβής όρος. Το Hashing είναι μια λειτουργία * μονής κατεύθυνσης *. Δεν μπορείτε εύκολα να αντιστρέψετε ένα hash για να λάβετε τον αρχικό κωδικό πρόσβασης. Η κρυπτογράφηση, από την άλλη πλευρά, είναι γενικά * αναστρέψιμη * (με το σωστό κλειδί). Η αποθήκευση των κωδικών πρόσβασης ως Hashes είναι πολύ πιο ασφαλής επειδή ακόμη και αν μια βάση δεδομένων διακυβεύεται, οι επιτιθέμενοι δεν μπορούν εύκολα να ανακτήσουν τους αρχικούς κωδικούς πρόσβασης. Μειώνονται σε επιθέσεις βίαιης δύναμης (δοκιμάζουν πολλούς κωδικούς πρόσβασης και τους κατακερματίζουν για να δουν αν ταιριάζουν με το αποθηκευμένο hash).
* Salting: Εκτός από το hashing, συνήθως προστίθεται μια τυχαία τιμή "αλατιού" σε κάθε κωδικό πρόσβασης πριν από το hashing. Αυτό καθιστά σημαντικά πιο δύσκολο για τους επιτιθέμενους να χρησιμοποιούν προ-υπολογισμένα "τραπέζια ουράνιου τόξου" ή άλλες τεχνικές-cracking κωδικού πρόσβασης.
* Η σημασία των ισχυρών hashes: Δεν δημιουργούνται ίσοι όλοι όλοι οι αλγόριθμοι κατακερματισμού. Τα σύγχρονα συστήματα θα πρέπει να χρησιμοποιούν ισχυρούς, υπολογιστικά ακριβούς αλγόριθμους κατακερματισμού όπως:
* Argon2
* Bcrypt
* Scrypt
* PBKDF2 (συχνά χρησιμοποιείται σε συνδυασμό με HMAC-SHA256 ή άλλες ασφαλείς λειτουργίες κατακερματισμού)
* Η παραδοχή του "πρέπει": Είναι σημαντικό να κατανοήσουμε ότι ενώ όλα τα παραπάνω συστήματα *πρέπει να κρυπτογραφούν (hash) τους κωδικούς πρόσβασης αυτόματα, δεν είναι *εγγυημένη *. Οι παραβιάσεις της ασφάλειας συμβαίνουν λόγω κακών πρακτικών.
Συνοπτικά: Ενώ δεν είναι όλοι οι κωδικοί πρόσβασης * Εγγυημένοι * να κρυπτογραφηθούν αυτόματα, τα σωστά σχεδιασμένα συστήματα θα πρέπει πάντα (και συνήθως να κάνουν) να κρυπτογραφούν τους κωδικούς πρόσβασης (hash) κατά τη δημιουργία για την προστασία της ασφάλειας των χρηστών. Οι συνδέσεις λειτουργικού συστήματος, οι λογαριασμοί ιστότοπων και τα συστήματα βάσεων δεδομένων αποτελούν πρωταρχικά παραδείγματα θέσεων όπου αναμένετε αυτόματο κατακερματισμό κωδικού πρόσβασης.
Πνευματικά δικαιώματα © Γνώση Υπολογιστών Όλα τα δικαιώματα κατοχυρωμένα