Πώς το LifeVeil προστατεύει τα αρχεία σας
Αυτή η σελίδα εξηγεί με απλά λόγια τι κάνει το LifeVeil, αλλά και τι δεν μπορεί να κάνει. Προτιμάμε να γνωρίζετε τα όρια παρά να εμπιστεύεστε μια υπερβολική υπόσχεση.
Με λίγα λόγια
- Όλη η κρυπτογράφηση γίνεται στο τηλέφωνό σας. Δεν υπάρχει διακομιστής του LifeVeil ούτε λογαριασμός.
- Τα αρχεία σας κρυπτογραφούνται με ένα τυχαίο κλειδί. Μόνο το μοτίβο σας, η φράση ανάκτησης ή το δακτυλικό σας αποτύπωμα μπορούν να ξεκλειδώσουν αυτό το κλειδί.
- Εμείς, οι προγραμματιστές, δεν έχουμε ποτέ το μοτίβο, τη φράση ή τα κλειδιά σας. Δεν μπορούμε να ανοίξουμε τα αρχεία σας ούτε να επαναφέρουμε το μοτίβο σας.
- Χρησιμοποιούμε την κρυπτογράφηση που είναι ενσωματωμένη στο Android και τη γνωστή βιβλιοθήκη libsodium. Δεν γράψαμε δική μας κρυπτογράφηση.
- Το LifeVeil δεν έχει περάσει ακόμη ανεξάρτητο έλεγχο ασφαλείας.
Από το μοτίβο σας σε κλειδί
Σχεδιάζετε ένα μοτίβο σε πλέγμα 5×5, με τουλάχιστον 6 κουκκίδες και χωρίς να περάσετε δύο φορές από την ίδια κουκκίδα. Το LifeVeil μετατρέπει το μοτίβο σε κλειδί με το Argon2id, από τη libsodium (έκδοση 1.0.20 στο Android).
- Ρυθμίσεις: 64 MiB μνήμης, 3 περάσματα, 1 λωρίδα, κλειδί 256 bit.
- Το Argon2id είναι σκόπιμα αργό και χρειάζεται πολλή μνήμη για κάθε δοκιμή. Έτσι, το μάντεμα με κάρτες γραφικών γίνεται πολύ πιο ακριβό.
- Στα τηλέφωνα δοκιμών μας, ένα ξεκλείδωμα διαρκεί περίπου 0,6 έως 0,9 δευτερόλεπτα.
- Το μοτίβο αναμειγνύεται με ένα τυχαίο αλάτι συσκευής 16 byte. Το αλάτι αποθηκεύεται στην εφαρμογή, κρυπτογραφημένο με ένα κλειδί που φυλάσσεται στο Android Keystore και δεν μπορεί να αντιγραφεί έξω από το τηλέφωνο.
- Δεν αποθηκεύεται κανένα αντίγραφο του μοτίβου. Η εφαρμογή ελέγχει ένα μοτίβο προσπαθώντας να ξεκλειδώσει το κλειδί.
- Μετά από 5 λάθος μοτίβα στη σειρά, πρέπει να περιμένετε 30 δευτερόλεπτα. Η αναμονή διπλασιάζεται μετά από κάθε επόμενο λάθος, έως 16 λεπτά.
Πώς κρυπτογραφούνται τα αρχεία
- Κάθε θησαυροφυλάκιο έχει ένα τυχαίο κύριο κλειδί 256 bit. Το κλειδί του μοτίβου και το κλειδί ανάκτησης απλώς «τυλίγουν» (κρυπτογραφούν) αυτό το κύριο κλειδί.
- Τα αρχεία, οι μικρογραφίες και η λίστα των στοιχείων σας (αρχικά ονόματα αρχείων, ημερομηνίες, μεγέθη) κρυπτογραφούνται με AES-256-GCM, μέσω της ενσωματωμένης κρυπτογράφησης του Android. Το GCM εντοπίζει επίσης αν ένα αρχείο άλλαξε ή αντικαταστάθηκε.
- Τα αρχεία μέσα στην εφαρμογή έχουν τυχαία ονόματα. Τα μεγάλα αρχεία κρυπτογραφούνται σε κομμάτια του 1 MiB, ώστε τα βίντεο να παίζουν χωρίς να γράφεται ποτέ μη κρυπτογραφημένο αντίγραφο στον αποθηκευτικό χώρο.
- Στις φωτογραφίες JPEG, τα κρυφά στοιχεία (EXIF, όπως η κάμερα και η ημερομηνία) αποθηκεύονται χωριστά, επίσης κρυπτογραφημένα.
- Όταν η εφαρμογή κλειδώνει, αντικαθιστά με μηδενικά τα κλειδιά που κρατά στη μνήμη.
Φράση ανάκτησης
- Όταν δημιουργείτε ένα θησαυροφυλάκιο, η ασφαλής γεννήτρια τυχαίων αριθμών του τηλεφώνου επιλέγει 9 αγγλικές λέξεις. Προέρχονται από δύο λίστες με 1.024 κοινές λέξεις, σε μία από 4 σταθερές σειρές. Αυτό αντιστοιχεί σε 92 bit τυχαιότητας. Οι λέξεις είναι στα αγγλικά σε κάθε γλώσσα της εφαρμογής.
- Η φράση περνά από τις ίδιες ρυθμίσεις Argon2id και ξεκλειδώνει μόνη της το κύριο κλειδί. Δεν χρειάζεται το αλάτι συσκευής, οπότε λειτουργεί ακόμη κι όταν το μοτίβο δεν λειτουργεί πια.
- Ένα αντίγραφο της φράσης αποθηκεύεται στο τηλέφωνο, κρυπτογραφημένο δύο φορές: μία με το κύριο κλειδί και μία με ένα κλειδί του Android Keystore. Μπορείτε να τη δείτε στις Ρυθμίσεις, αφού σχεδιάσετε ξανά το μοτίβο σας.
- Όταν αλλάζετε το μοτίβο σας ή χρησιμοποιείτε τη φράση για να μπείτε ξανά, λαμβάνετε νέα φράση. Η παλιά παύει να λειτουργεί.
Δακτυλικό αποτύπωμα
Το ξεκλείδωμα με δακτυλικό αποτύπωμα είναι προαιρετικό. Το δακτυλικό αποτύπωμα το ελέγχει το Android, όχι το LifeVeil· η εφαρμογή δεν λαμβάνει ποτέ το δακτυλικό σας αποτύπωμα. Το κύριο κλειδί ξεκλειδώνεται από ένα κλειδί του Android Keystore που λειτουργεί μόνο αμέσως μετά από ισχυρό βιομετρικό έλεγχο. Αν κάποιος προσθέσει νέο δακτυλικό αποτύπωμα στο τηλέφωνο, αυτό το κλειδί παύει να λειτουργεί και πρέπει να χρησιμοποιήσετε ξανά το μοτίβο σας.
Αρχείο αντιγράφου ασφαλείας
- Ένα αντίγραφο ασφαλείας είναι ένα αρχείο
.lvb. Περιέχει τα στοιχεία σας ακριβώς όπως είναι ήδη κρυπτογραφημένα, καθώς και δύο «τυλιγμένα» αντίγραφα του κύριου κλειδιού: ένα για το μοτίβο που σχεδιάσατε όταν δημιουργήσατε το αντίγραφο ασφαλείας και ένα για τη φράση ανάκτησης που είχατε τότε. - Το αντίγραφο για το μοτίβο χρησιμοποιεί νέο τυχαίο αλάτι για κάθε αντίγραφο ασφαλείας, όχι το αλάτι συσκευής. Αυτό σας επιτρέπει να ανοίξετε το αντίγραφο ασφαλείας σε νέο τηλέφωνο.
- Η κεφαλίδα του αρχείου προστατεύεται, ώστε να εντοπίζονται αλλαγές ή αντικατεστημένα τμήματα.
- Επιλέγετε πού θα το αποθηκεύσετε από την οθόνη αποθήκευσης του ίδιου του Android. Δεν περνά ποτέ από εμάς.
- Για επαναφορά, ανοίξτε το αρχείο με το μοτίβο ή τη φράση του. Στη συνέχεια σχεδιάζετε νέο μοτίβο και λαμβάνετε νέα φράση ανάκτησης.
Άλλες προστασίες στην εφαρμογή
- Τα στιγμιότυπα οθόνης, η εγγραφή οθόνης και η προεπισκόπηση στη λίστα πρόσφατων εφαρμογών αποκλείονται σε κάθε οθόνη.
- Από προεπιλογή, η εφαρμογή κλειδώνει μόλις τη βγείτε. Μπορείτε να επιλέξετε 30 δευτερόλεπτα ή 1 λεπτό.
- Η αποθήκευση αντιγράφων ασφαλείας στο cloud και η μεταφορά από τηλέφωνο σε τηλέφωνο του ίδιου του Android δεν περιλαμβάνουν τα δεδομένα του LifeVeil. Χρησιμοποιήστε αντί γι' αυτό το αρχείο αντιγράφου ασφαλείας.
- Η εφαρμογή δεν ζητά πρόσβαση στην τοποθεσία, στις επαφές ή σε «όλα τα αρχεία».
- Άδειος χώρος για λάθος μοτίβο. Ένα μοτίβο που δεν ανοίγει κανέναν χώρο ανοίγει έναν άδειο χώρο αντί για σφάλμα, οπότε όποιος σας πιέζει να ανοίξετε την εφαρμογή δεν μπορεί να ξέρει τι άλλο υπάρχει. Οι λάθος προσπάθειες εξακολουθούν να μετρώνται, οι φωτογραφίες εισβολέα εξακολουθούν να τραβιούνται και οι αναμονές εξακολουθούν να ισχύουν. Μπορείτε να το απενεργοποιήσετε στις Ρυθμίσεις > Ασφάλεια > Άδειος χώρος για λάθος μοτίβο.
Τεχνητή νοημοσύνη και μάντεμα μοτίβου
- Η τεχνητή νοημοσύνη δεν μπορεί να παρακάμψει τα μαθηματικά. Κάθε δοκιμή πρέπει και πάλι να εκτελέσει το Argon2id με 64 MiB μνήμης. Η τεχνητή νοημοσύνη δεν σπάει το Argon2id ούτε το AES, οπότε καμία δοκιμή δεν γίνεται φθηνότερη.
- Αυτό που αλλάζει η τεχνητή νοημοσύνη είναι η σειρά των δοκιμών. Μπορεί να μάθει τα σχήματα που προτιμούν οι άνθρωποι (γράμματα, τετράγωνα, αγαπημένες γωνίες εκκίνησης) και να δοκιμάσει αυτά πρώτα. Μπορεί επίσης να βοηθήσει στην ανάγνωση ενός μοτίβου από βίντεο που τραβήχτηκε πάνω από τον ώμο σας ή από τα ίχνη των δαχτύλων στην οθόνη.
- Γι' αυτό οι άμυνες αφορούν το μοτίβο, όχι τα μαθηματικά. Ο δείκτης ισχύος προειδοποιεί για συνηθισμένα σχήματα. Η επιλογή Μοτίβο + PIN προσθέτει ένα PIN 4–6 ψηφίων, ώστε ένα μοτίβο που φάνηκε σε βίντεο να μην αρκεί. Η επιλογή Απόκρυψη γραμμής μοτίβου δεν αφήνει γραμμή για να βιντεοσκοπηθεί. Το αλάτι συσκευής στο Android Keystore εμποδίζει το μάντεμα έξω από το τηλέφωνο.
Όρια που πρέπει να γνωρίζετε
Καμία εφαρμογή δεν μπορεί να προστατεύσει από τα πάντα. Αυτά είναι τα ειλικρινή όρια του LifeVeil.
Τα απλά μοτίβα μπορούν να μαντευτούν
Σύντομα ή συνηθισμένα σχήματα (ένα L, ένα Z, μια ευθεία γραμμή) μπορούν να μαντευτούν αν κάποιος σας παρακολουθεί, από τα ίχνη στην οθόνη ή σε λίγες προσπάθειες. Τα πραγματικά μοτίβα μαντεύονται πολύ πιο εύκολα απ' ό,τι δείχνει ο αριθμός των πιθανών μοτίβων. Χρησιμοποιήστε περισσότερες κουκκίδες και περισσότερες στροφές. Η εφαρμογή σάς προειδοποιεί για πολύ απλά μοτίβα.
Πόσο θα μπορούσε να διαρκέσει το μάντεμα
Μέσα στην εφαρμογή, κάθε προσπάθεια διαρκεί περίπου ένα δευτερόλεπτο και οι αναμονές μεγαλώνουν μετά από 5 λάθη. Όμως κάποιος που έχει το αρχείο αντιγράφου ασφαλείας σας, ή που έχει πάρει το αλάτι συσκευής από τηλέφωνο με root, μπορεί να μαντεύει σε υπολογιστή, χωρίς αναμονές. Το Argon2id το επιβραδύνει, αλλά ένα μοτίβο έχει πολύ λιγότερους συνδυασμούς από έναν μεγάλο κωδικό πρόσβασης. Χονδρικές εκτιμήσεις για μία κάρτα γραφικών υψηλών επιδόσεων (κατηγορίας RTX 4090) με περίπου 1.000 δοκιμές το δευτερόλεπτο:
| Τι μαντεύεται | Συνδυασμοί | Χρόνος, μία κάρτα γραφικών |
|---|---|---|
| Τα 10.000 πιο συνηθισμένα μοτίβα | 104 | περίπου 10 δευτερόλεπτα |
| Όλα τα μοτίβα 6 κουκκίδων | 1,28 × 108 | περίπου 1,5 ημέρες |
| Όλα τα μοτίβα 7 κουκκίδων | 2,42 × 109 | περίπου 28 ημέρες |
| Όλα τα μοτίβα 8 κουκκίδων | 4,36 × 1010 | περίπου 1,4 χρόνια |
| Φράση ανάκτησης (92 bit) | 4,95 × 1027 | περίπου 1,6 × 1017 χρόνια |
Πρόκειται για εκτιμήσεις, όχι για μετρήσεις. Οι αριθμοί μοτίβων είναι ανώτατα όρια· τα πραγματικά μοτίβα είναι πολύ λιγότερα. Περισσότερος ή ταχύτερος εξοπλισμός κάνει το μάντεμα αναλογικά ταχύτερο.
Κρατήστε το αρχείο αντιγράφου ασφαλείας ιδιωτικό
Το αρχείο αντιγράφου ασφαλείας δεν περιέχει το αλάτι συσκευής, οπότε όποιος το αποκτήσει μπορεί να δοκιμάζει μοτίβα εκτός σύνδεσης, όπως φαίνεται παραπάνω. Αποθηκεύστε το μόνο σε σημείο όπου έχετε πρόσβαση μόνο εσείς, όπως τον δικό σας λογαριασμό cloud, και χρησιμοποιήστε μεγαλύτερο μοτίβο.
Τηλέφωνα με root ή μολυσμένα τηλέφωνα
Αν κάποιος μπορεί να εκτελέσει κώδικα με τα δικαιώματα της εφαρμογής (για παράδειγμα σε τηλέφωνο με root ή με κακόβουλο λογισμικό που έχει πλήρη έλεγχο), μπορεί να ξεκλειδώσει το αλάτι συσκευής και να μαντεύει εκτός σύνδεσης. Όσο το θησαυροφυλάκιο είναι ανοιχτό, τα κλειδιά βρίσκονται στη μνήμη και μπορούν να διαβαστούν με πρόσβαση root ή με πρόγραμμα εντοπισμού σφαλμάτων (debugger). Ορισμένα αντίγραφα που δημιουργούνται μέσα στο Android και στο Flutter, καθώς και οι φωτογραφίες που εμφανίζονται στην οθόνη, δεν μπορούν να σβηστούν αμέσως από τη μνήμη.
Ορισμένες πληροφορίες είναι ορατές
Ο αριθμός των κρυπτογραφημένων αρχείων στον αποθηκευτικό χώρο της εφαρμογής, το κατά προσέγγιση μέγεθός τους και το πότε δημιουργήθηκαν ή άλλαξαν δεν είναι κρυφά. Ούτε το γεγονός ότι το LifeVeil είναι εγκατεστημένο.
Ο άδειος χώρος ξεγελά μόνο την οθόνη
Όποιος μπορεί να διαβάσει τα αρχεία της εφαρμογής (για παράδειγμα σε τηλέφωνο με root) μπορεί να μετρήσει τους φακέλους των χώρων και να δει ότι αυτή η ρύθμιση είναι ενεργή. Επίσης, μετά από 5 λάθος μοτίβα η εφαρμογή σάς βάζει να περιμένετε, κάτι που δείχνει ότι τα προηγούμενα μοτίβα δεν άνοιξαν τίποτα.
Η μεταμφίεση αλλάζει μόνο την αρχική οθόνη
- Αλλάζουν μόνο το εικονίδιο και το όνομα στην αρχική οθόνη. Η λίστα Ρυθμίσεις > Εφαρμογές του τηλεφώνου, οι πληροφορίες εφαρμογής και οι οθόνες αποθηκευτικού χώρου εξακολουθούν να δείχνουν το LifeVeil.
- Οι αναγνώστες οθόνης μπορεί να εξακολουθούν να λένε «LifeVeil». Για παράδειγμα, η αρχική οθόνη του Samsung One UI δίνει στο TalkBack το πραγματικό όνομα της εφαρμογής, και η εφαρμογή δεν μπορεί να το αλλάξει.
- Το μενού κοινοποίησης του Android δείχνει πάντα το πραγματικό όνομα της εφαρμογής, γι' αυτό το LifeVeil αφαιρείται από αυτό όταν αλλάζετε το εικονίδιο. Μπορείτε να το ενεργοποιήσετε ξανά.
- Τα αιτήματα αδειών του Android δείχνουν το πραγματικό όνομα, γι' αυτό η εφαρμογή ζητά τις άδειες πριν αλλάξετε το εικονίδιο.
- Όσο το εικονίδιο είναι αλλαγμένο, η εφαρμογή δεν στέλνει ειδοποιήσεις.
- Ο κωδικός μεταμφίεσης (4 έως 8 ψηφία) εμφανίζει μόνο την οθόνη κλειδώματος. Δεν ανοίγει τα αρχεία σας. Αποθηκεύεται ως κατακερματισμός με αλάτι (salted hash), αλλά με τόσο λίγους συνδυασμούς βρίσκεται εύκολα αν κάποιος αποκτήσει το αρχείο.
Το δακτυλικό αποτύπωμα είναι πιο αδύναμος δρόμος
Το ξεκλείδωμα με δακτυλικό αποτύπωμα παρακάμπτει το Argon2id. Η ισχύς του εξαρτάται από τον αισθητήρα δακτυλικού αποτυπώματος του τηλεφώνου σας και από το Android Keystore. Μπορείτε να το απενεργοποιήσετε από τις Ρυθμίσεις ανά πάσα στιγμή.
Φωτογραφίες εισβολέα
Η εφαρμογή δεν παίζει ήχο κλείστρου, αλλά τα τηλέφωνα που πωλούνται σε ορισμένες χώρες, όπως η Ιαπωνία και η Κορέα, παίζουν πάντα. Δεν τραβιέται φωτογραφία αν άλλη εφαρμογή χρησιμοποιεί την κάμερα ή αν δεν υπάρχει μπροστινή κάμερα. Μέχρι να ξεκλειδώσετε το πρώτο θησαυροφυλάκιο που δημιουργήσατε, οι φωτογραφίες σφραγίζονται με ένα κλειδί του Android Keystore.
Στοιχεία φωτογραφιών
- Στις φωτογραφίες HEIC, PNG και WebP, τα κρυφά στοιχεία (EXIF) παραμένουν μέσα στο αρχείο. Ολόκληρο το αρχείο εξακολουθεί να είναι κρυπτογραφημένο.
- Στο Android 10 και νεότερες εκδόσεις, το Android αφαιρεί την τοποθεσία GPS από τις φωτογραφίες που διαβάζει το LifeVeil, επειδή η εφαρμογή δεν ζητά πρόσβαση στην τοποθεσία. Όταν το πρωτότυπο διαγραφεί από τη συλλογή, αυτή η τοποθεσία χάνεται.
- Οι φωτογραφίες που προστίθενται μέσω του επιλογέα φωτογραφιών του Android παίρνουν νέα ονόματα με βάση την ημερομηνία, επειδή ο επιλογέας δεν δίνει το αρχικό όνομα.
Το κλείδωμα διακόπτεται προσωρινά στις οθόνες συστήματος
Όσο είναι ανοιχτή μια οθόνη συστήματος (αίτημα άδειας, επιβεβαίωση διαγραφής, επιλογέας φωτογραφιών ή αρχείων, αίτημα δακτυλικού αποτυπώματος) και όσο εκτελείται μια εισαγωγή ή εξαγωγή, η εφαρμογή περιμένει πριν κλειδώσει. Αν έχετε βγει από την εφαρμογή, κλειδώνει 2 δευτερόλεπτα μετά το τέλος τους.
Τα θησαυροφυλάκια μοιράζονται ένα αλάτι συσκευής
Όλα τα θησαυροφυλάκια σε ένα τηλέφωνο χρησιμοποιούν το ίδιο αλάτι συσκευής. Αν κάποιος έχει αυτό το αλάτι, μία δοκιμή ελέγχει όλα τα θησαυροφυλάκια ταυτόχρονα. Το κόστος επίθεσης σε ένα μόνο θησαυροφυλάκιο παραμένει το ίδιο.
Πράγματα που καμία εφαρμογή δεν μπορεί να εμποδίσει
Κάποιον που σας παρακολουθεί ενώ σχεδιάζετε το μοτίβο σας ή μια κάμερα που βιντεοσκοπεί την οθόνη σας.
Αν χάσετε και τα δύο, κανείς δεν μπορεί να βοηθήσει
Αν χάσετε και το μοτίβο και τη φράση ανάκτησης, κανείς δεν μπορεί να ανακτήσει τα αρχεία σας. Ούτε εμείς.