Τι είναι η κρυπτογράφηση μηδενικής γνώσης; Απλός οδηγός
Ο πάροχος δεν μπορεί να αποκτήσει πρόσβαση στα δεδομένα σας, όχι από πολιτική, αλλά από μαθηματικά.
Η κρυπτογράφηση μηδενικής γνώσης είναι μια αρχιτεκτονική που οριοθετείται από τον πάροχο, στην οποία η υπηρεσία δεν κρατά το κλειδί που απαιτείται για την αποκρυπτογράφηση του αποθηκευμένου περιεχομένου χρήστη. Σε αντίθεση με την τυπική κρυπτογράφηση cloud όπου ο πάροχος ελέγχει το κλειδί περιεχομένου, η κρυπτογράφηση από την πλευρά του πελάτη μπορεί να διατηρήσει αυτή τη δυνατότητα στις συσκευές χρήστη. Ένα νομικό αίτημα, παραβίαση ή εμπιστευτικό στοιχείο ενδέχεται να εξακολουθεί να εκθέτει κρυπτογραφημένο κείμενο, αρχεία λογαριασμού, δεδομένα κίνησης ή άλλα μεταδεδομένα που διατηρεί ο πάροχος. Η καθοδήγηση διαχείρισης κλειδιών του NIST καθιστά την φύλαξη κλειδιών κεντρική στην πρόσβαση, αλλά η εφαρμογή πελάτη, το λειτουργικό σύστημα και η ξεκλείδωτη συσκευή παραμένουν μέρος του ορίου εμπιστοσύνης.
Πώς λειτουργεί τεχνικά
Παραγωγή κλειδιού στη συσκευή. Ο χρήστης παρέχει ένα διαπιστευτήριο, όπως κωδικό πρόσβασης, φράση πρόσβασης ή μοτίβο. Μια συνάρτηση παραγωγής κλειδιού που βασίζεται σε κωδικό πρόσβασης τη συνδυάζει με ένα αλάτι για να παράγει ένα κλειδί στη συσκευή του χρήστη. Ένας καλά διαχωρισμένος σχεδιασμός μπορεί να χρησιμοποιήσει αυτό το κλειδί για να ξεκλειδώσει ένα τυχαίο κλειδί κρυπτογράφησης περιεχομένου αντί να κρυπτογραφεί κάθε αρχείο απευθείας με το ανθρώπινο διαπιστευτήριο.
- Ο χρήστης εισάγει κωδικό (ή μοτίβο).
- Ο κωδικός τρέχει μέσω συνάρτησης παραγωγής κλειδιού (όπως PBKDF2 ή Argon2) με τυχαίο salt.
- Παράγεται κλειδί κρυπτογράφησης, τοπικά, στη μνήμη.
- Τα δεδομένα κρυπτογραφούνται με αυτό το κλειδί.
- Το κλειδί δεν αποθηκεύεται και δεν αποστέλλεται πουθενά.
Ο πάροχος δεν λαμβάνει κλειδί περιεχομένου απλού κειμένου. Τα κλειδιά περιεχομένου υπάρχουν απαραιτήτως στη μνήμη του πελάτη κατά τη χρήση και μπορούν επίσης να αποθηκευτούν τοπικά ή απομακρυσμένα μέσα σε επαληθευμένους κρυπτογραφημένους φακέλους. Ο πάροχος μπορεί να αποθηκεύσει κρυπτογραφημένο κείμενο και τυλιγμένα κλειδιά χωρίς να κρατά το μυστικό χρήστη που απαιτείται για να τα ανοίξει. Τα μεταδεδομένα λογαριασμού, επισκεψιμότητας, μεγέθους εγγραφής και χρονισμού ενδέχεται να παραμένουν ορατά.
Τυπική κρυπτογράφηση vs μηδενική γνώση
| Χαρακτηριστικό | Τυπική κρυπτογράφηση | Κρυπτογράφηση μηδενικής γνώσης |
|---|---|---|
| Ποιος κρατά το κλειδί; | Ο πάροχος (ή και ο χρήστης) | Μόνο ο χρήστης |
| Επαναφορά κωδικού; | Ναι, ο πάροχος μπορεί | Όχι, αδύνατο χωρίς το κλειδί |
| Προστασία έναντι παραβίασης server; | Μερική | Ναι, ο server έχει μόνο blobs |
| Προστασία έναντι νομικής πίεσης; | Όχι, ο πάροχος μπορεί να συμμορφωθεί | Ναι, δεν έχει τίποτα για να δώσει |
Πότε η «κρυπτογράφηση» δεν είναι μηδενικής γνώσης
Ο κρίσιμος περιορισμός: εάν ο χρήστης χάσει κάθε έγκυρο διαπιστευτήριο και διαδρομή ανάκτησης, το κρυπτογραφημένο περιεχόμενο καθίσταται απρόσιτο. Η ανάκτηση μπορεί ακόμα να υπάρχει, αλλά πρέπει να εξηγηθεί η βασική της φύλαξη. Εάν μια επαναφορά email από μόνη της επαναφέρει αναγνώσιμο περιεχόμενο χωρίς έγκριση παλιάς συσκευής, φράση ανάκτησης, κλειδί ανάκτησης ή ισοδύναμο μυστικό που κρατά ο χρήστης, ο πάροχος έχει διατηρήσει μια αποτελεσματική διαδρομή επιστροφής στο απλό κείμενο.
Αν η εφαρμογή λέει «κρυπτογραφημένο» αλλά προσφέρει «Ξέχασα τον κωδικό» με επαναφορά σε νέο, δεν είναι zero-knowledge. Κρατά το κλειδί κάπου.
Πώς το Vaultaire υλοποιεί μηδενική γνώση
Παραγωγή κλειδιού. Ο χρήστης σχεδιάζει ένα μοτίβο σε ένα πλέγμα 5x5 25 κουκκίδων. PBKDF2-HMAC-SHA512 συνδυάζει αυτή τη σειρά με μία συσκευή σε όλη τη συσκευή Keychain αλάτι για 600.000 επαναλήψεις για να προκύψει ένα κλειδί αποθήκευσης 256 bit. Το κλειδί αποθήκευσης ελέγχει την ταυτότητα του κρυπτογραφημένου ευρετηρίου και αναδιπλώνει ένα ξεχωριστό τυχαίο κύριο κλειδί 256 bit. Οι πληροφορίες ανάκτησης, συμπεριλαμβανομένου του μοτίβου, αποθηκεύονται σε ένα AES-GCM κρυπτογραφημένο Keychain βάση δεδομένων αντί για αρχεία απλού κειμένου ή έναν λογαριασμό Vaultaire.
Πώς να επαληθεύσετε αν μια εφαρμογή είναι zero-knowledge
- Ελέγξτε για επαναφορά κωδικού. Αν υπάρχει, δεν είναι zero-knowledge.
- Ελέγξτε αν απαιτεί λογαριασμό. Λογαριασμός σε server σημαίνει πιθανή αποθήκευση κλειδιών.
- Αναζητήστε τεχνική τεκμηρίωση κρυπτογραφίας. Τι αλγόριθμος; Πόσες επαναλήψεις PBKDF2; Πού αποθηκεύεται το salt;
- Δοκιμάστε σε λειτουργία αεροπλάνου. Αν η εφαρμογή λειτουργεί χωρίς internet, είναι καλό σημάδι ότι δεν στέλνει κλειδιά.
Συχνές ερωτήσεις
Τι σημαίνει μηδενική γνώση σε μια εφαρμογή;
Διαχείριση κλειδιών. Το Vaultaire αποθηκεύει το αλάτι της συσκευής του και την κρυπτογραφημένη βάση δεδομένων ανάκτησης ως συνηθισμένη iOS Keychain στοιχεία με γενικό κωδικό πρόσβασης που προστατεύονται με το WhenUnlockedThisDeviceOnly τάξη προσβασιμότητας. Τα κλειδιά αποθήκευσης που προέρχονται από μοτίβα και τα τυχαία κύρια κλειδιά υποβάλλονται σε επεξεργασία στη μνήμη της εφαρμογής μέσω CryptoKit. Το κλείδωμα ρίχνει την κατάσταση του ενεργού κλειδιού, αλλά το Swift και iOS δεν υποστηρίζουν εγγύηση ότι κάθε παροδικό αντίγραφο αντικαθίσταται.
Ποια η διαφορά μεταξύ κρυπτογράφησης μηδενικής γνώσης και τυπικής κρυπτογράφησης;
Στην τυπική κρυπτογράφηση ο πάροχος κρατά κλειδί ή μπορεί να επαναφέρει τον κωδικό. Στη μηδενική γνώση δεν έχει ποτέ το κλειδί, αδύνατη η πρόσβαση ακόμα και νομικά.
Πώς επαληθεύω ότι μια εφαρμογή είναι πραγματικά zero-knowledge;
Ελέγξτε αν προσφέρει επαναφορά κωδικού μέσω email. Αν ναι, κρατά κλειδί. Αναζητήστε δημοσιευμένη τεκμηρίωση κρυπτογραφίας ή ανοικτό κώδικα.
Συμπέρασμα
Η κρυπτογράφηση μηδενικής γνώσης αντιμετωπίζεται καλύτερα ως αξίωση διαχωρισμού κλειδιού παρόχου: η υπηρεσία δεν διατηρεί το κλειδί απλού κειμένου που απαιτείται για την αποκρυπτογράφηση αποθηκευμένου περιεχομένου. Αυτό είναι ισχυρότερο από την κρυπτογράφηση από την πλευρά του διακομιστή με κλειδιά που ελέγχονται από τον πάροχο, αλλά δεν είναι ισχυρισμός ότι τα κλειδιά υπάρχουν μόνο στη μνήμη, ότι τα μεταδεδομένα εξαφανίζονται ή ότι κάθε συμβιβασμός πελάτη και συσκευής έχει απορριφθεί. Κρίνετε το προϊόν βάσει της βασικής ιεραρχίας, του σχεδιασμού ανάκτησης, της εφαρμογής και της ανεξάρτητης αναθεώρησης.