Αρχιτεκτονική ασφαλείας: Πλήρης τεχνική βάση

Το Vaultaire δεν στηρίζεται σε έναν μόνο αλγόριθμο ούτε σε ένα έξυπνο τέχνασμα. Χρησιμοποιεί στρωματοποιημένη κρυπτογραφική αρχιτεκτονική όπου κάθε συστατικό έχει συγκεκριμένο ρόλο και η αποτυχία ενός στρώματος δεν θέτει σε κίνδυνο τα υπόλοιπα. Αυτή είναι η περιγραφή κάθε αλγορίθμου, πρωτοκόλλου και αρχιτεκτονικής απόφασης που στέκεται ανάμεσα στα ιδιωτικά σας δεδομένα και τον υπόλοιπο κόσμο.

Το Vaultaire χρησιμοποιεί AES-256-GCM για επαληθευμένη κρυπτογράφηση στα ευρετήρια θησαυροφυλακίων, στα τυλιγμένα κλειδιά, στις κεφαλίδες αρχείων, στο περιεχόμενο, στις μικρογραφίες και στα μεταδεδομένα. Το PBKDF2-HMAC-SHA512 παράγει ένα τοπικό κλειδί θησαυροφυλακίου από το μοτίβο και ένα αλάτι της συσκευής στο Keychain. Αυτό το κλειδί θησαυροφυλακίου τυλίγει ένα ξεχωριστό τυχαίο κύριο κλειδί 256 bit, με το οποίο γίνεται η κρυπτογράφηση των αρχείων μέσω CryptoKit στη διεργασία της εφαρμογής.

Κρυπτογραφική βάση

Το Vaultaire χρησιμοποιεί αρκετούς κρυπτογραφικούς μηχανισμούς που λειτουργούν μαζί, ο καθένας επιλεγμένος για συγκεκριμένη εργασία. Το PBKDF2 μετατρέπει ένα ανθρώπινο διαπιστευτήριο σε κλειδί θησαυροφυλακίου ή κλειδί ανάκτησης. Το AES-256-GCM προστατεύει ευρετήρια, τυλιγμένα κλειδιά, μεταδεδομένα, μικρογραφίες και περιεχόμενο αρχείων. Ένα τυχαίο κύριο κλειδί διαχωρίζει τη μακροχρόνια κρυπτογράφηση των αρχείων από ένα μοτίβο που μπορεί να αλλάξει. Το Keychain και η Προστασία δεδομένων του iOS προστατεύουν το αλάτι και τα δεδομένα ανάκτησης που είναι δεμένα με τη συσκευή όσο αυτή είναι κλειδωμένη. Δεν υπάρχει κλειδί αποκρυπτογράφησης στον πάροχο που να δίνει στον προγραμματιστή συνηθισμένη πρόσβαση στο απλό κείμενο του θησαυροφυλακίου.

Αυτό δεν είναι πολυπλοκότητα χωρίς λόγο. Κάθε επίπεδο αντιμετωπίζει διαφορετική επιφάνεια επίθεσης. Το AES-256-GCM συνδυάζει το απόρρητο με τον έλεγχο αυθεντικότητας, οπότε ένα τροποποιημένο κρυπτογραφημένο κείμενο αποτυγχάνει στην επαλήθευση. Το PBKDF2 αυξάνει το κόστος δοκιμής κάθε μοτίβου ή φράσης. Χάρη στο τυχαίο κύριο κλειδί, μια αλλαγή μοτίβου αρκεί να τυλίξει ξανά ένα κλειδί αντί να κρυπτογραφήσει ξανά κάθε αρχείο. Η προστασία δεδομένων Keychain προστατεύει το τοπικό αλάτι και τα δεδομένα ανάκτησης, ενώ η εφαρμογή αναγνωρίζει ότι η συμμετρική κρυπτογράφηση γίνεται στη μνήμη της διεργασίας.

Μαζί, αυτά τα επίπεδα σχηματίζουν αρχιτεκτονική άμυνας σε βάθος, αλλά δεν είναι όλα ανεξάρτητα εμπόδια. Ένα μαντεμένο μοτίβο μπορεί να ελεγχθεί απέναντι στο όνομα αρχείου ευρετηρίου και στον έλεγχο αυθεντικότητας AES-GCM, και μια παραβιασμένη ξεκλείδωτη συσκευή μπορεί να δει κλειδιά ή απλό κείμενο στη διεργασία της εφαρμογής. Η αρχιτεκτονική επομένως εξαρτάται από την εντροπία του διαπιστευτηρίου, το κόστος του PBKDF2, την προστασία της συσκευής από το iOS και τον σωστό χειρισμό της επαληθευμένης κρυπτογράφησης, όχι μόνο από την ισχύ του ίδιου του AES.

Άμυνα σε βάθος

Σκεφτείτε την ιεραρχία του Vaultaire ως μια σειρά από κλειδωμένα δοχεία, το ένα μέσα στο άλλο. Το κλειδί θησαυροφυλακίου που παράγεται από το μοτίβο ανοίγει το επαληθευμένο ευρετήριο. Το ευρετήριο αποδεσμεύει ένα τυλιγμένο τυχαίο κύριο κλειδί. Αυτό το κύριο κλειδί προστατεύει τα αρχεία και τα μεταδεδομένα. Το PBKDF2, το AES-GCM, το Keychain και η Προστασία δεδομένων του iOS συνεισφέρουν διαφορετικές ιδιότητες, αλλά ο ισχυρισμός ασφαλείας είναι τόσο ισχυρός όσο ολόκληρη η αλυσίδα.

AES-256-GCM: Κρυπτογράφηση αρχείων

Κάθε φωτογραφία, βίντεο και έγγραφο που αποθηκεύεται στο Vaultaire κρυπτογραφείται με AES-256-GCM, δηλαδή το Advanced Encryption Standard με κλειδί 256 bit σε λειτουργία Galois/Counter. Το Vaultaire χρησιμοποιεί επίσης AES-GCM για τα ευρετήρια θησαυροφυλακίων, τις κεφαλίδες αρχείων, τις μικρογραφίες και τους φακέλους κλειδιών. Ο αλγόριθμος και το μέγεθος του κλειδιού είναι τυποποιημένα. Η ασφάλεια του Vaultaire εξαρτάται ακόμη από τον χειρισμό των nonce, τη διαχείριση κλειδιών, την ισχύ του διαπιστευτηρίου και την ορθότητα της υλοποίησης.

Ο αριθμός “256” στο AES-256 δηλώνει το μήκος κλειδιού σε bits. Ένα 256-bit κλειδί έχει 2256 πιθανές τιμές. Για σύγκριση: στο παρατηρήσιμο σύμπαν υπάρχουν περίπου 1080 άτομα. Αν κάθε άτομο ήταν υπερυπολογιστής που δοκιμάζει ένα δισεκατομμύριο κλειδιά ανά δευτερόλεπτο και λειτουργούσε από τη Μεγάλη Έκρηξη, θα είχαν εξερευνήσει λιγότερο από ένα τρισεκατομμυριοστό τρισεκατομμυριοστού τοις εκατό του χώρου κλειδιών. Το AES-256 δεν θα σπάσει με ωμή βία. Όχι σήμερα. Όχι αυτόν τον αιώνα. Όχι πριν σβήσουν τα άστρα.

Γιατί έχει σημασία ο τρόπος GCM

Το AES είναι block cipher: κρυπτογραφεί δεδομένα σε 128-bit blocks. Ο “τρόπος” καθορίζει πώς συνδυάζονται αυτά τα blocks. Το GCM (Galois/Counter Mode) παρέχει δύο πράγματα που απλούστεροι τρόποι όπως το CBC δεν παρέχουν: παραλληλισμένη κρυπτογράφηση και ενσωματωμένη πιστοποίηση.

Το μέρος της πιστοποίησης είναι κρίσιμο. Το GCM δημιουργεί κρυπτογραφικό tag για κάθε κρυπτογραφημένο αρχείο. Αυτό το tag λειτουργεί ως σφραγίδα κατά παραποίησης. Αν τροποποιηθεί ένα μόνο bit του κρυπτοκειμένου, είτε από κακόβουλο παράγοντα είτε από κατεστραμμένο τομέα δίσκου, το tag πιστοποίησης δεν θα ταιριάζει και η αποκρυπτογράφηση θα αποτύχει. Δεν λαμβάνετε κατεστραμμένα δεδομένα. Λαμβάνετε σαφές σήμα ότι κάτι δεν πάει καλά. Αυτή η ιδιότητα λέγεται authenticated encryption και αποτρέπει μια ολόκληρη κατηγορία επιθέσεων όπου ο αντίπαλος τροποποιεί κρυπτογραφημένα δεδομένα για να χειραγωγήσει την αποκρυπτογραφημένη έξοδο.

PBKDF2: Παραγωγή κλειδιών

Το Vaultaire παράγει διαφορετικά κλειδιά για διαφορετικές εργασίες. Το μοτίβο και ένα αλάτι της συσκευής από το Keychain περνούν στο PBKDF2-HMAC-SHA512 με 600.000 επαναλήψεις για να παραχθεί το τοπικό κλειδί θησαυροφυλακίου. Μια ντετερμινιστική παραγωγή από το μοτίβο δίνει το ξεχωριστό κλειδί αντιγράφων ασφαλείας για το cloud. Η κανονικοποιημένη φράση ανάκτησης περνά από 800.000 επαναλήψεις PBKDF2 για να παραχθεί το κλειδί ενός φακέλου ανάκτησης. Καμία από αυτές τις παραγωγές δεν μετατρέπει ένα ανθρώπινο διαπιστευτήριο σε 256 bit εντροπίας μόνο επειδή η έξοδος έχει μήκος 256 bit.

Πώς προστατεύει το PBKDF2 το μοτίβο σας

Η βασική ιδέα του PBKDF2 είναι η σκόπιμη επιβάρυνση. Παίρνει το σειριοποιημένο μοτίβο ή την κανονικοποιημένη φράση και εκτελεί εκατοντάδες χιλιάδες επαναλήψεις HMAC-SHA512. Ένας νόμιμος χρήστης πληρώνει αυτό το κόστος μία φορά σε κάθε ξεκλείδωμα ή ανάκτηση. Ένας επιτιθέμενος το πληρώνει για κάθε υποψήφιο, αν και ο παραλληλισμός του υλικού και οι επιλογές υλοποίησης καθορίζουν τον πραγματικό ρυθμό μαντεμάτων.

Το Vaultaire ρυθμίζει το PBKDF2 με 600.000 επαναλήψεις για τα κλειδιά που παράγονται από το μοτίβο. Αυτό κάνει κάθε μάντεμα πιο δαπανηρό, αλλά μια υπεύθυνη εκτίμηση επίθεσης πρέπει να αναφέρει μετρημένο χρόνο ανά υποψήφιο και τις υποθέσεις για το υλικό. Με ακριβώς 1 ms ανά υποψήφιο, 1.000.000.000 διαδοχικά μαντέματα χρειάζονται περίπου 11,6 ημέρες, όχι χρόνια. Η έξοδος των 256 bit δεν αυξάνει την εντροπία ενός προβλέψιμου μοτίβου.

Η τοπική παραγωγή από το μοτίβο χρησιμοποιεί ένα κρυπτογραφικά τυχαίο αλάτι της συσκευής, αποθηκευμένο ως στοιχείο Keychain WhenUnlockedThisDeviceOnly. Το αλάτι δεν είναι μυστικό και το μοιράζονται τα θησαυροφυλάκια αυτής της συσκευής. Εμποδίζει να εφαρμοστεί ένας πίνακας που φτιάχτηκε για μια συσκευή απευθείας σε άλλη συσκευή με διαφορετικό αλάτι, αλλά δεν αναγκάζει έναν επιτιθέμενο να ξεκινά από την αρχή για κάθε θησαυροφυλάκιο στην ίδια συσκευή.

256-bit
Μήκος κλειδιού κρυπτογράφησης
6
Κρυπτογραφικά στρώματα
0
Κλειδιά αποθηκευμένα σε διακομιστές

AES-256-GCM: Προστασία μεταδεδομένων

Η κρυπτογράφηση του περιεχομένου αρχείων δεν αρκεί. Τα ονόματα αρχείων, οι ημερομηνίες δημιουργίας, οι διαστάσεις μικρογραφιών και η δομή θησαυροφυλακίου είναι μεταδεδομένα, και τα μεταδεδομένα μπορεί να αποκαλύψουν εξίσου πολλά με τα ίδια τα δεδομένα. Ένα αρχείο με όνομα “φορολογική-δήλωση-2025.pdf” λέει στον επιτιθέμενο ακριβώς τι υπάρχει μέσα, ακόμα κι αν το περιεχόμενο είναι κρυπτογραφημένο. Ένα timestamp δείχνει πότε χρησιμοποιήσατε το θησαυροφυλάκιο. Το μέγεθος μικρογραφίας αποκαλύπτει αν κάτι είναι φωτογραφία ή βίντεο.

Το Vaultaire προστατεύει αυτά τα μεταδεδομένα με AES-256-GCM, όχι ChaCha20. Τα ονόματα αρχείων και οι τύποι MIME κωδικοποιούνται σε κρυπτογραφημένες κεφαλίδες αρχείων. Το κρυπτογραφημένο ευρετήριο του θησαυροφυλακίου περιέχει εγγραφές αρχείων, ημερομηνίες, πληροφορίες μεγέθους, τη διάταξη αποθήκευσης και το τυλιγμένο κύριο κλειδί. Τα δεδομένα μικρογραφιών κρυπτογραφούνται επίσης κάτω από το τυχαίο κύριο κλειδί.

Γιατί επαληθευμένη κρυπτογράφηση για τα μεταδεδομένα;

Τα μεταδεδομένα χρειάζονται ακεραιότητα, όχι μόνο εμπιστευτικότητα. Το AES-GCM παράγει μια ετικέτα αυθεντικότητας για κάθε κρυπτογραφημένη τιμή, οπότε το Vaultaire μπορεί να απορρίψει μια τροποποιημένη κεφαλίδα, ευρετήριο, μικρογραφία ή φάκελο αντί να δεχτεί απλό κείμενο που ελέγχει ο επιτιθέμενος. Ο σχεδιασμός χρησιμοποιεί σκόπιμα μία κατασκευή επαληθευμένης κρυπτογράφησης σε όλες αυτές τις μορφές αποθήκευσης, αντί να ισχυρίζεται κρυπτογραφική ποικιλία που η υλοποίηση δεν παρέχει.

Ο ίδιος αλγόριθμος δεν σημαίνει ότι το ίδιο κλειδί ή nonce επαναχρησιμοποιείται στα τυφλά. Το κλειδί θησαυροφυλακίου προστατεύει το ευρετήριο και τυλίγει το τυχαίο κύριο κλειδί· το κύριο κλειδί προστατεύει το υλικό των αρχείων. Το CryptoKit δημιουργεί επαληθευμένα sealed box με νέα nonce, ενώ η μορφή ροής του Vaultaire παράγει ξεχωριστό nonce για κάθε διατεταγμένο τμήμα. Οι σχετικές εγγυήσεις προέρχονται από τον διαχωρισμό κλειδιών, την πειθαρχία στα nonce και τον έλεγχο αυθεντικότητας, όχι από δεύτερο αλγόριθμο για τα μεταδεδομένα.

Αρχιτεκτονική μηδενικής γνώσης

Αξίζει να τεθεί μια ερώτηση για οποιαδήποτε εφαρμογή ασφαλείας: τι συμβαίνει αν η εταιρεία πίσω από αυτή παραβιαστεί, κληθεί να καταθέσει ή απλώς αλλάξει στρατηγική;

Για τις περισσότερες εφαρμογές η απάντηση είναι ανησυχητική. Κρατούν τα δεδομένα σας, τα κλειδιά σας ή και τα δύο. Ένας δικαστικός εντολός τα αναγκάζει να τα παραδώσουν. Μια παραβίαση τα εκθέτει. Ένας δυσαρεστημένος υπάλληλος έχει πρόσβαση σε αυτά. Η ασφάλεια της εφαρμογής είναι τόσο ισχυρή όσο η επιχειρησιακή ασφάλεια της εταιρείας, και η ιστορία δείχνει ότι οι εταιρείες παραβιάζονται συχνά.

Το Vaultaire δεν λειτουργεί λογαριασμό ή υπηρεσία αποθήκευσης που λαμβάνει το μοτίβο, τη μυστική φράση, τα κλειδιά αποκρυπτογράφησης ή τα αναγνώσιμα περιεχόμενα του θησαυροφυλακίου. Η κρυπτογράφηση και η αποκρυπτογράφηση γίνονται στη διεργασία της εφαρμογής στη συσκευή σας. Όταν είναι ενεργό το αντίγραφο ασφαλείας iCloud, η εφαρμογή στέλνει επαληθευμένο κρυπτογραφημένο κείμενο στην ιδιωτική σας βάση δεδομένων CloudKit, όχι σε υπηρεσία θησαυροφυλακίου που ελέγχει το Vaultaire.

Τι σημαίνει στην πράξη η αρχιτεκτονική μηδενικής γνώσης

Αν μια αρχή επιβολής του νόμου στείλει στο Vaultaire κλήτευση που ζητά το απλό κείμενο ενός θησαυροφυλακίου, η εταιρεία δεν κρατά το μοτίβο, τη φράση ανάκτησης, το κλειδί θησαυροφυλακίου, το κλειδί αντιγράφων ασφαλείας ή το κύριο κλειδί που χρειάζεται για την αποκρυπτογράφησή του. Οι κρυπτογραφημένες εγγραφές iCloud βρίσκονται στην ιδιωτική βάση δεδομένων CloudKit του χρήστη. Στη συσκευή, ωστόσο, το υλικό ανάκτησης φυλάσσεται σε κρυπτογραφημένη βάση δεδομένων στο Keychain, και συμμετρικά κλειδιά υπάρχουν στη μνήμη της εφαρμογής όσο το CryptoKit κρυπτογραφεί ή αποκρυπτογραφεί ένα ανοιχτό θησαυροφυλάκιο.

Αυτό το όριο του παρόχου είναι ιδιότητα της αρχιτεκτονικής, όχι υπόσχεση ότι κάθε μέρος του περιβάλλοντος του πελάτη βρίσκεται εκτός του μοντέλου εμπιστοσύνης. Το Vaultaire δεν έχει κλειδί αποκρυπτογράφησης σε διακομιστή που θα μπορούσε να παραδώσει για συνηθισμένη ανάκτηση θησαυροφυλακίου. Η εφαρμογή που διανέμεται, το iOS, η ξεκλείδωτη συσκευή και η κρυπτογραφική υλοποίηση μπορούν ακόμη να επεξεργάζονται αναγνώσιμα δεδομένα και πρέπει να είναι ανάλογα αξιόπιστα.

Σκόπιμη αβεβαιότητα εμπιστοσύνης

Το όριο του παρόχου στο Vaultaire αφαιρεί από τον κανονικό σχεδιασμό ένα κλειδί αποκρυπτογράφησης που κατέχει η εταιρεία. Αυτό περιορίζει όσα μπορεί να αποκαλύψει μια παραβίαση του Vaultaire. Δεν καταργεί την ανάγκη να εμπιστευτείτε την εφαρμογή που διανέμεται, το iOS, την κατάσταση της συσκευής ή την υλοποίηση της τεκμηριωμένης ιεραρχίας κλειδιών. Αυτά τα όρια πρέπει να αξιολογούνται χωριστά, όχι να συνοψίζονται σε μια απόλυτη υπόσχεση.

Το Keychain και το όριο της διεργασίας της εφαρμογής

Το Secure Enclave της Apple μπορεί να προστατεύει υποστηριζόμενα ιδιωτικά κλειδιά και συμμετέχει σε μέρη της αρχιτεκτονικής ασφαλείας της πλατφόρμας, αλλά τα δημόσια API του δεν δέχονται οποιοδήποτε συμμετρικό κλειδί που παράγεται από PBKDF2 ούτε εκτελούν τις λειτουργίες αρχείων AES-GCM του Vaultaire μέσα στον συνεπεξεργαστή. Γι' αυτό το Vaultaire δεν περιγράφει την κρυπτογράφηση του θησαυροφυλακίου ως AES μέσα στο Secure Enclave.

Το Vaultaire χρησιμοποιεί συνηθισμένα στοιχεία γενικού κωδικού του Keychain του iOS για το τυχαίο αλάτι της συσκευής, την κρυπτογραφημένη βάση δεδομένων ανάκτησης και το τυχαίο κλειδί που προστατεύει αυτή τη βάση δεδομένων. Αυτά τα στοιχεία χρησιμοποιούν την κλάση προσβασιμότητας WhenUnlockedThisDeviceOnly. Το Keychain και η Προστασία δεδομένων δημιουργούν σημαντικό όριο στη συσκευή, ειδικά όταν το τηλέφωνο είναι κλειδωμένο, αλλά αυτή η αρχιτεκτονική διαφέρει από ένα μη εξαγώγιμο κλειδί του Secure Enclave.

Όταν σχεδιάζετε το μοτίβο, το CommonCrypto παράγει το κλειδί του θησαυροφυλακίου στη διεργασία της εφαρμογής. Το CryptoKit και το CryptoEngine του Vaultaire χρησιμοποιούν έπειτα τα byte των συμμετρικών κλειδιών σε αυτή τη διεργασία για να επαληθεύσουν και να αποκρυπτογραφήσουν το ευρετήριο, να ξετυλίξουν το κύριο κλειδί και να επεξεργαστούν τα αρχεία. Η εφαρμογή διαγράφει την ενεργή κατάσταση όταν κλειδώνει, αλλά ένας επιτιθέμενος με αρκετά δικαιώματα που παρακολουθεί μια ξεκλείδωτη συνεδρία έχει διαφορετικές ευκαιρίες από έναν εξεταστή που κρατά μόνο το κρυπτογραφημένο κείμενο μιας κλειδωμένης συσκευής.

Ένα λειτουργικό σύστημα με jailbreak ή άλλη παραβίαση μπορεί να στοχεύσει την εισαγωγή του μοτίβου, τη μνήμη της εφαρμογής, τις αποκρυπτογραφημένες προεπισκοπήσεις, τις εξαγωγές ή την οθόνη. Το Vaultaire συνιστά ενημερωμένο iPhone χωρίς jailbreak, επειδή ο σχεδιασμός βασίζεται στην απομόνωση διεργασιών του iOS, στο Keychain και στην Προστασία δεδομένων. Δεν ισχυρίζεται ότι μια παραβίαση σε επίπεδο root αφήνει απρόσιτα τα συμμετρικά κλειδιά ενός ανοιχτού θησαυροφυλακίου.

Αρχικοποιητικά διανύσματα ανά αρχείο

Όταν κρυπτογραφείτε δύο πανομοιότυπα αρχεία με το ίδιο κλειδί, μια αφελής υλοποίηση θα παρήγαγε πανομοιότυπο κρυπτοκείμενο. Αυτό είναι πρόβλημα. Επιτιθέμενος που βλέπει δύο πανομοιότυπα κρυπτογραφημένα blobs γνωρίζει χωρίς να αποκρυπτογραφήσει τίποτα ότι δύο αρχεία πηγής είναι ίδια. Σε θησαυροφυλάκιο γεμάτο φωτογραφίες, αυτό το είδος ανάλυσης μοτίβων μπορεί να αποκαλύψει πληροφορίες παρά την κρυπτογράφηση.

Το Vaultaire αποτρέπει το ντετερμινιστικό κρυπτογραφημένο κείμενο δημιουργώντας νέο κρυπτογραφικό nonce για κάθε λειτουργία σφράγισης AES-256-GCM. Οι κεφαλίδες και το περιεχόμενο των αρχείων σφραγίζονται χωριστά, και τα μεγάλα αρχεία χρησιμοποιούν επαληθευμένη μορφή ροής με τυχαίο βασικό nonce και ξεχωριστό nonce για κάθε διατεταγμένο τμήμα. Επομένως, δύο αντίγραφα της ίδιας φωτογραφίας δεν παράγουν την ίδια κρυπτογραφημένη αναπαράσταση.

Τα nonce αποθηκεύονται μαζί με το κρυπτογραφημένο κείμενο και δεν είναι μυστικά· η απαίτηση ασφαλείας τους είναι να είναι μοναδικά για ένα δεδομένο κλειδί. Το Vaultaire ζητά nonce 96 bit από την κρυπτογραφική γεννήτρια τυχαίων αριθμών της Apple για κρυπτογράφηση μίας λήψης και καταγράφει το βασικό nonce στην κεφαλίδα της ροής. Ο κίνδυνος σύγκρουσης εξαρτάται από τον αριθμό των κρυπτογραφήσεων με ένα κλειδί, γι' αυτό η υλοποίηση δημιουργεί νέα τιμή κάθε φορά αντί να παρουσιάζει το μέγεθος των 96 bit ως σταθερή εγγύηση ένα προς 296 για πάντα.

Pipeline κρυπτογράφησης
Το μοτίβο σας
Είσοδος πλέγματος 5×5
→
PBKDF2
KDF με πολλές επαναλήψεις
→
Κλειδί θησαυροφυλακίου
Ευρετήριο + τυλιγμένο κλειδί
→
Τυχαίο κύριο κλειδί
Αρχεία + μεταδεδομένα με AES-GCM

Διαχείριση μνήμης: διαγραφή ενεργών κλειδιών

Ένα συνηθισμένο σφάλμα λογισμικού ασφαλείας είναι η παραμονή ευαίσθητων δεδομένων στη μνήμη περισσότερο από όσο χρειάζεται. Κλειδιά κρυπτογράφησης, παρεγμένοι κωδικοί και αποκρυπτογραφημένα δεδομένα μπορεί να παραμένουν στη RAM πολύ αφότου η εφαρμογή σταμάτησε να τα χρησιμοποιεί. Εγκληματολογικά εργαλεία μπορούν να εξάγουν τη μνήμη συσκευής και να ψάχνουν για αυτά τα υπολείμματα, τεχνική γνωστή ως cold boot attack ή ανάλυση dump μνήμης.

Το Vaultaire περιορίζει τον χρόνο που μένουν διαθέσιμα τα ενεργά κλειδιά και τα αποκρυπτογραφημένα δεδομένα της διεπαφής. Όταν η εφαρμογή κλειδώνει ή η συνεδρία λήγει, ο κώδικάς της ακολουθεί διάφορες διαδρομές διαγραφής:

  • Η ενεργή κατάσταση του θησαυροφυλακίου απορρίπτεται. Η εφαρμογή διαγράφει την τρέχουσα συνεδρία του κλειδιού θησαυροφυλακίου και απαιτεί νέο ξεκλείδωμα πριν εμφανίσει περιεχόμενο του θησαυροφυλακίου.
  • Τα περιτυλίγματα κλειδιών μηδενίζουν τα buffer τους. Τα ασφαλή κοντέινερ byte του Vaultaire αντικαθιστούν τα buffer που κατέχουν όταν αποδεσμεύονται.
  • Η αποθηκευμένη στη μνήμη κατάσταση του κύριου κλειδιού ακυρώνεται. Το αποκρυπτογραφημένο κύριο κλειδί του ανοιχτού ευρετηρίου απορρίπτεται στις σχετικές διαδρομές κλειδώματος και επαναφοράς της κρυφής μνήμης.
  • Οι αποκρυπτογραφημένες κρυφές μνήμες της διεπαφής διαγράφονται όπου τις ελέγχει το Vaultaire. Η διαγραφή μικρογραφιών και προεπισκοπήσεων μειώνει την κατάσταση που απομένει στην εφαρμογή, χωρίς να διεκδικεί έλεγχο σε κάθε αντίγραφο που δημιουργεί η Swift, το iOS ή άλλη διεργασία.

Την επόμενη φορά που το Vaultaire ανοίγει κλειδωμένο, σχεδιάζετε το μοτίβο και η εφαρμογή παράγει ξανά το κλειδί θησαυροφυλακίου πριν επαληθεύσει το ευρετήριο και ξετυλίξει το κύριο κλειδί. Πρόκειται για διαγραφή της συνεδρίας, όχι για ισχυρισμό ότι κάθε αντίγραφο στη μνήμη διαγράφηκε αποδεδειγμένα με πολλαπλά περάσματα ή ότι καταστράφηκε κάποια αναφορά κλειδιού στο Secure Enclave. Ένα crash κάνει το iOS να ανακτήσει τη διεργασία, αλλά ο κώδικας διαγραφής δεν μπορεί να εκτελεστεί μετά από κάθε απότομο τερματισμό.

Συχνές ερωτήσεις

Είναι το AES-256 πραγματικά αδύνατο να σπάσει;

Το AES-256 είναι ένας τυποποιημένος κρυπτογραφικός αλγόριθμος μπλοκ, που έχει αναλυθεί εκτενώς. Δεν είναι δημόσια γνωστή πρακτική επίθεση στο σωστά υλοποιημένο AES-256-GCM με τυχαίο κλειδί 256 bit, αλλά αυτό δεν κάνει ολόκληρο το θησαυροφυλάκιο απαραβίαστο. Η εντροπία του διαπιστευτηρίου, το κόστος του PBKDF2, ο χειρισμός των nonce, η φύλαξη των κλειδιών, η ανάκτηση, η κατάσταση της συσκευής και τα σφάλματα υλοποίησης παραμένουν δρόμοι επίθεσης.

Γιατί χρησιμοποιείται PBKDF2 για παραγωγή κλειδιών;

Το Vaultaire χρησιμοποιεί PBKDF2-HMAC-SHA512 μέσω CommonCrypto: 600.000 επαναλήψεις για τα μοτίβα και 800.000 για τις φράσεις ανάκτησης. Η τοπική παραγωγή κλειδιού από το μοτίβο χρησιμοποιεί ένα τυχαίο αλάτι της συσκευής, αποθηκευμένο στο Keychain. Το PBKDF2 αυξάνει το κόστος κάθε μαντέματος, αλλά δεν προσθέτει εντροπία στο μοτίβο, οπότε ο χρόνος επίθεσης εξαρτάται από την ισχύ του διαπιστευτηρίου, τη μετρημένη ταχύτητα του υλικού και τον παραλληλισμό.

Τι δεδομένα στέλνει το Vaultaire στους διακομιστές του;

Οι διακομιστές του Vaultaire δεν λαμβάνουν ποτέ τα αρχεία, το μοτίβο ή τα κλειδιά σας. Η εφαρμογή επικοινωνεί με τέσσερα είδη υπηρεσιών. Το κρυπτογραφημένο αντίγραφο iCloud είναι ενεργό από προεπιλογή και αποθηκεύει κρυπτογραφημένο κείμενο στον ιδιωτικό σας λογαριασμό iCloud, κρυπτογραφημένο στη συσκευή σας με κλειδί που δεν κατέχει η Apple· μπορείτε να το απενεργοποιήσετε. Ανώνυμα δεδομένα χρήσης και σφαλμάτων πηγαίνουν στο PostHog από προεπιλογή, και μπορείτε να τα απενεργοποιήσετε στις Ρυθμίσεις. Αν στείλετε σχόλια, η υπηρεσία σχολίων μας λαμβάνει το μήνυμά σας, το προαιρετικό email απάντησης, τη γλώσσα σας και την έκδοση της εφαρμογής. Όσο τα αναλυτικά στοιχεία είναι ενεργά, ένα διακριτικό απόδοσης Apple Ads και ένα τυχαίο αναγνωριστικό εγκατάστασης περνούν από την υπηρεσία μας προς την Apple. Ο συγχρονισμός και η κοινή χρήση, όταν τα χρησιμοποιείτε, περνούν από το Apple CloudKit.

Μπορεί ένα iPhone με jailbreak να παραβιάσει το θησαυροφυλάκιό μου;

Ένα jailbreak αποδυναμώνει ουσιαστικά τα όρια της συσκευής. Οι λειτουργίες AES-GCM του Vaultaire εκτελούνται στη διεργασία της εφαρμογής μέσω του CryptoKit, οπότε τα byte των συμμετρικών κλειδιών υπάρχουν στη μνήμη της εφαρμογής όσο ένα θησαυροφυλάκιο είναι ανοιχτό. Μια παραβίαση σε επίπεδο root μπορεί να στοχεύσει την είσοδο, τη μνήμη, τα στιγμιότυπα οθόνης ή την αποκρυπτογραφημένη έξοδο. Το Keychain και η Προστασία δεδομένων εξακολουθούν να προσθέτουν εμπόδια όσο η συσκευή είναι κλειδωμένη, αλλά το Vaultaire δεν ισχυρίζεται ότι τα κλειδιά AES του μένουν απομονωμένα μέσα στο Secure Enclave.

Πώς κρυπτογραφούνται τα μεταδεδομένα;

Το Vaultaire δεν χρησιμοποιεί ChaCha20 για τα μεταδεδομένα του θησαυροφυλακίου. Τα ονόματα αρχείων, οι τύποι MIME, οι χρονοσημάνσεις, τα δεδομένα μικρογραφιών, η δομή του θησαυροφυλακίου και το τυλιγμένο κύριο κλειδί προστατεύονται ως επαληθευμένο κρυπτογραφημένο κείμενο AES-256-GCM. Η χρήση μίας επαληθευμένης κατασκευής κρατά συνεπείς τους ελέγχους εμπιστευτικότητας και ακεραιότητας σε όλη τη μορφή αποθήκευσης.

Τι συμβαίνει με τα κλειδιά μου αν η εφαρμογή κρασάρει;

Το iOS ανακτά τους πόρους της διεργασίας που τερματίστηκε, και η επόμενη εκκίνηση απαιτεί νέο ξεκλείδωμα πριν το Vaultaire επαναφέρει την ενεργή κατάσταση κλειδιών. Το Vaultaire δεν δημιουργεί αναφορές κλειδιών AES στο Secure Enclave για κάθε συνεδρία. Τα περιτυλίγματα κλειδιών του μηδενίζουν τα buffer τους κατά την αποδέσμευση, και οι διαδρομές κλειδώματος απορρίπτουν την ενεργή κατάσταση, αλλά η Swift και το iOS δεν επιτρέπουν την εγγύηση ότι κάθε προσωρινό αντίγραφο αντικαταστάθηκε πριν από ένα crash.

Δείτε τη βάση σε δράση

Επαληθευμένη κρυπτογράφηση, κλειδιά σε επίπεδα, δαπανηρή παραγωγή κλειδιών και κανένα κλειδί θησαυροφυλακίου στον πάροχο. Κατεβάστε το Vaultaire για να χρησιμοποιήσετε την αρχιτεκτονική που περιγράφεται εδώ, με σαφώς δηλωμένα τα όρια της συσκευής και του διαπιστευτηρίου.

Κατεβάστε το Vaultaire δωρεάν