LifeVeil आपकी फ़ाइलों को कैसे सुरक्षित रखता है
यह पेज आसान शब्दों में बताता है कि LifeVeil क्या करता है, और यह भी कि वह क्या नहीं कर सकता। हम चाहते हैं कि आप किसी बहुत बड़े वादे पर भरोसा करने के बजाय इसकी सीमाएं जानें।
संक्षेप में
- सारा एन्क्रिप्शन आपके फ़ोन पर होता है। न कोई LifeVeil सर्वर है, न कोई खाता।
- हर वॉल्ट की फ़ाइलें एक रैंडम कुंजी से एन्क्रिप्ट होती हैं। उस कुंजी को सिर्फ़ उस वॉल्ट का पैटर्न (सबसे ऊंचे स्तर पर उसके PIN के साथ), उसका रिकवरी फ़्रेज़ अगर आपने जोड़ा है, या आपका फ़िंगरप्रिंट अगर आपने चालू किया है, ही अनलॉक कर सकता है।
- हर पैटर्न एक वॉल्ट खोलता है। जो पैटर्न किसी सेव किए गए वॉल्ट से मेल नहीं खाता, वह एक खाली वॉल्ट खोलता है, और जब तक आप उसमें कोई फ़ाइल नहीं डालते, कुछ भी नहीं लिखा जाता।
- हम, यानी डेवलपर, के पास कभी आपका पैटर्न, PIN, फ़्रेज़ या कुंजियां नहीं होतीं। हम आपकी फ़ाइलें नहीं खोल सकते, और आपका पैटर्न रीसेट नहीं कर सकते।
- हम Android में पहले से मौजूद एन्क्रिप्शन और जानी-मानी libsodium लाइब्रेरी का इस्तेमाल करते हैं। हमने अपना खुद का एन्क्रिप्शन नहीं लिखा।
- LifeVeil का अभी तक कोई स्वतंत्र सुरक्षा ऑडिट नहीं हुआ है।
आपके पैटर्न से कुंजी तक
आप 5×5 ग्रिड पर पैटर्न बनाते हैं, और कोई बिंदु दो बार नहीं आता। आप जो नया पैटर्न सेट करते हैं, उसमें कम से कम 6 बिंदु होने चाहिए। LifeVeil इस पैटर्न को libsodium (Android पर वर्शन 1.0.20) के Argon2id से एक कुंजी में बदलता है।
- सेटिंग: 64 MiB मेमोरी, 3 पास, 1 लेन, 256-बिट कुंजी।
- Argon2id जानबूझकर धीमा है और हर अनुमान के लिए बहुत मेमोरी मांगता है। इससे ग्राफ़िक्स कार्ड से अनुमान लगाना बहुत महंगा हो जाता है।
- हमारे टेस्ट फ़ोन पर एक बार अनलॉक करने में करीब 0.6 से 0.9 सेकंड लगते हैं।
- पैटर्न को एक रैंडम 16-बाइट डिवाइस सॉल्ट के साथ मिलाया जाता है। यह सॉल्ट ऐप में रखा जाता है, और Android Keystore में रखी एक कुंजी से एन्क्रिप्ट होता है, जिसे फ़ोन से बाहर कॉपी नहीं किया जा सकता।
- रिकवरी फ़्रेज़ के साथ रखी कॉपी (नीचे देखें) को छोड़कर, पैटर्न की कोई कॉपी नहीं रखी जाती। ऐप कुंजी को अनलॉक करने की कोशिश करके पैटर्न जांचता है।
- बिंदुओं के ऊपर वाले PIN बॉक्स में आप जो भी टाइप करते हैं, वह पैटर्न के साथ उसी कुंजी बनाने की प्रक्रिया में जाता है। खाली बॉक्स का मतलब है सिर्फ़ पैटर्न।
सुरक्षा स्तर
हर वॉल्ट का एक स्तर होता है। आप इसे शुरुआत में चुनते हैं, और बाद में पैटर्न दोबारा बनाने के बाद सेटिंग > वॉल्ट > सुरक्षा स्तर में बदल सकते हैं।
- सबसे ऊंची सुरक्षा (Ultra): पैटर्न और 6 से 8 अंकों का PIN, दोनों सिर्फ़ आपकी याद में। AI से अंदाज़ा लगाने पर भी सुरक्षित। अगर आप इनमें से कोई भी भूल जाएं, तो वॉल्ट वापस नहीं मिल सकता।
- स्तर 1 (सुझाया गया): सिर्फ़ पैटर्न। आम आकारों से बचें तो सुरक्षित। अगर आप इसे भूल जाएं, तो वॉल्ट वापस नहीं मिल सकता।
- स्तर 2: पैटर्न और कागज़ पर लिखा रिकवरी फ़्रेज़। पैटर्न भूल जाने पर भी आप वापस अंदर आ सकते हैं, लेकिन जिसे भी वह कागज़ मिले, वह भी वॉल्ट खोल सकता है।
- स्तर 3: पैटर्न और फ़िंगरप्रिंट। सबसे आसान, लेकिन कोई ज़बरदस्ती आपकी उंगली सेंसर पर रखवा सकता है। फ़िंगरप्रिंट सिर्फ़ एक वॉल्ट के लिए काम करता है।
फ़ाइलें कैसे एन्क्रिप्ट होती हैं
- हर वॉल्ट की एक रैंडम 256-बिट मास्टर कुंजी होती है। आपके पैटर्न की कुंजी और रिकवरी कुंजी सिर्फ़ इस मास्टर कुंजी को "लपेटती" (एन्क्रिप्ट करती) हैं।
- फ़ाइलें, थंबनेल और आपके आइटम की सूची (मूल फ़ाइल नाम, तारीखें, साइज़) Android के बिल्ट-इन एन्क्रिप्शन का इस्तेमाल करके AES-256-GCM से एन्क्रिप्ट होती हैं। GCM यह भी पकड़ लेता है कि कोई फ़ाइल बदली गई या अदला-बदली की गई है।
- ऐप के अंदर फ़ाइलों के नाम रैंडम होते हैं। बड़ी फ़ाइलें 1 MiB के टुकड़ों में एन्क्रिप्ट होती हैं, ताकि वीडियो चलाते समय स्टोरेज में कभी कोई बिना एन्क्रिप्ट की हुई कॉपी न लिखी जाए।
- JPEG फ़ोटो के छिपे हुए विवरण (EXIF, जैसे कैमरा और तारीख) अलग से रखे जाते हैं, वे भी एन्क्रिप्ट करके।
- ऐप लॉक होने पर, मेमोरी में रखी कुंजियों को शून्य से ओवरराइट कर देता है।
रिकवरी फ़्रेज़
- रिकवरी फ़्रेज़ वैकल्पिक है। वॉल्ट को यह सिर्फ़ तब मिलता है जब आप स्तर 2 चुनते हैं, और एक छोटी क्विज़ पास करने के बाद यह सेव होता है।
- फ़ोन का सुरक्षित रैंडम नंबर जनरेटर अंग्रेज़ी के 9 शब्द चुनता है। ये 1,024 आम शब्दों की दो सूचियों से, 4 तय क्रमों में से किसी एक में आते हैं। यानी 92 बिट की रैंडमनेस। ऐप की हर भाषा में ये शब्द अंग्रेज़ी में ही होते हैं।
- फ़्रेज़ भी उन्हीं Argon2id सेटिंग से गुज़रता है और अकेले ही मास्टर कुंजी को अनलॉक करता है। इसे डिवाइस सॉल्ट की ज़रूरत नहीं होती, इसलिए यह तब भी काम करता है जब पैटर्न काम नहीं करता।
- फ़्रेज़ की एक कॉपी और वॉल्ट के पैटर्न (और PIN) की एक कॉपी फ़ोन पर रखी जाती हैं, हर एक दो बार एन्क्रिप्ट करके: एक बार मास्टर कुंजी से और एक बार Android Keystore की कुंजी से। जब फ़्रेज़ वॉल्ट खोलता है, तो ऐप एक बार पैटर्न दिखाता है। ऐप लॉक होने पर यह भुला दिया जाता है।
- पैटर्न बदलने पर भी फ़्रेज़ वही रहता है। बिना फ़्रेज़ वाले वॉल्ट का पैटर्न भूल जाने पर वापस आने का कोई रास्ता नहीं है।
फ़िंगरप्रिंट
फ़िंगरप्रिंट से अनलॉक करना वैकल्पिक है और एक वॉल्ट के लिए काम करता है। फ़िंगरप्रिंट Android जांचता है, LifeVeil नहीं; ऐप को आपका फ़िंगरप्रिंट कभी नहीं मिलता। मास्टर कुंजी को Android Keystore की एक कुंजी अनलॉक करती है, जो सिर्फ़ एक मज़बूत बायोमेट्रिक जांच के ठीक बाद काम करती है। अगर कोई फ़ोन में नया फ़िंगरप्रिंट जोड़ता है, तो यह कुंजी काम करना बंद कर देती है और आपको फिर से अपना पैटर्न इस्तेमाल करना होगा।
बैकअप फ़ाइल
- बैकअप एक
.lvbफ़ाइल होती है। इसमें आपके आइटम ठीक वैसे ही होते हैं जैसे वे पहले से एन्क्रिप्ट हैं, साथ में मास्टर कुंजी की लपेटी हुई कॉपी: एक उस पैटर्न के लिए जो आपने बैकअप बनाते समय बनाया था, और एक रिकवरी फ़्रेज़ के लिए, अगर वॉल्ट में फ़्रेज़ था। - पैटर्न वाली कॉपी हर बैकअप के लिए एक नया रैंडम सॉल्ट इस्तेमाल करती है, डिवाइस सॉल्ट नहीं। इसी वजह से आप नए फ़ोन पर बैकअप खोल पाते हैं।
- फ़ाइल का हेडर सुरक्षित रहता है, ताकि कोई बदलाव या अदला-बदली किए गए हिस्से पकड़े जा सकें।
- इसे कहां सेव करना है, यह आप Android की अपनी सेव स्क्रीन से चुनते हैं। यह कभी हमारे पास से होकर नहीं जाती।
- वापस लाने के लिए, फ़ाइल को उसके पैटर्न या उसके फ़्रेज़ से खोलें। फिर आप नया पैटर्न बनाते हैं। वापस लाया गया वॉल्ट बिना रिकवरी फ़्रेज़ के शुरू होता है।
ऐप में दूसरी सुरक्षाएं
- हर स्क्रीन पर स्क्रीनशॉट, स्क्रीन रिकॉर्डिंग और हाल के ऐप की सूची में प्रीव्यू ब्लॉक रहते हैं।
- डिफ़ॉल्ट रूप से, ऐप से बाहर जाते ही वह लॉक हो जाता है। आप इसके बजाय 30 सेकंड या 1 मिनट चुन सकते हैं।
- Android का अपना क्लाउड बैकअप और फ़ोन-से-फ़ोन ट्रांसफ़र LifeVeil का डेटा शामिल नहीं करते। इसके बजाय बैकअप फ़ाइल का इस्तेमाल करें।
- ऐप जगह की जानकारी, संपर्क या "सभी फ़ाइलों" का ऐक्सेस नहीं मांगता।
- हर नए पैटर्न के लिए एक खाली वॉल्ट. बिना फ़ाइलों वाला वॉल्ट एक जैसा दिखता है, चाहे वह सेव हुआ हो या नहीं, इसलिए जो आप पर ऐप खोलने का दबाव डाले, वह नहीं जान पाता कि और क्या है। आप इसे सेटिंग > सुरक्षा में बंद कर सकते हैं, और तब जो पैटर्न कुछ नहीं खोलता, वह गड़बड़ी दिखाता है।
अनुमान लगाने को धीमा करना
क्योंकि हर पैटर्न एक वॉल्ट खोलता है, अनुमान लगाना ऐसा दिखता है जैसे कई खाली वॉल्ट खुल रहे हों। LifeVeil स्क्रीन पर बताए बिना इसे धीमा करता है, और इंतज़ार हर पैटर्न के लिए एक जैसा होता है, सही पैटर्न के लिए भी।
- 24 घंटे के अंदर बिना फ़ाइलों वाले वॉल्ट 10 बार खुलने पर हर अनलॉक में 10 सेकंड जुड़ते हैं, 20 बार पर 60 सेकंड, और 30 बार पर 5 मिनट, जो सबसे ज़्यादा है।
- ऑटोमेशन के संकेत सीधे सबसे ज़्यादा इंतज़ार तक ले जाते हैं: लगातार तीन बार 2 सेकंड से कम के अंतर पर पूरे किए गए पैटर्न, या ऐसे टच जो उंगली के बजाय ऐक्सेसिबिलिटी सेवाओं या कृत्रिम रूप से डाले गए इनपुट से आते हैं।
- बिना किसी खाली वॉल्ट के खुले हर 24 घंटे में यह एक कदम कम हो जाता है। फ़ोन की घड़ी पीछे करने से यह छोटा नहीं होता।
- यह सिर्फ़ ऐप के अंदर काम करता है। कॉपी की गई फ़ाइल से कंप्यूटर पर लगाए जाने वाले अनुमान को यह धीमा नहीं करता (नीचे सीमाएं देखें)।
AI और पैटर्न का अनुमान
- AI गणित को छोड़कर आगे नहीं बढ़ सकता। हर अनुमान को अब भी 64 MiB मेमोरी के साथ Argon2id से गुज़रना पड़ता है। AI न Argon2id को तोड़ता है न AES को, इसलिए कोई भी एक अनुमान सस्ता नहीं होता।
- AI जो बदलता है, वह अनुमानों का क्रम है। यह सीख सकता है कि लोगों को कौन-से आकार पसंद हैं (अक्षर, चौकोर, शुरू करने के पसंदीदा कोने) और उन्हें पहले आज़मा सकता है। यह आपके कंधे के ऊपर से बनाए गए वीडियो से, या स्क्रीन पर उंगलियों के निशान से पैटर्न पढ़ने में भी मदद कर सकता है।
- इसलिए बचाव पैटर्न से जुड़ा है, गणित से नहीं। ऐप आम आकारों के बारे में चेतावनी देता है। सबसे ऊंचा सुरक्षा स्तर 6 से 8 अंकों का PIN जोड़ता है, ताकि वीडियो में देखा गया पैटर्न काफ़ी न हो। पैटर्न लाइन छिपाएं से कोई लाइन नहीं दिखती जिसे फ़िल्माया जा सके। Android Keystore में रखा डिवाइस सॉल्ट फ़ोन के बाहर अनुमान लगाने से रोकता है।
सीमाएं, जो आपको जाननी चाहिए
कोई भी ऐप हर चीज़ से नहीं बचा सकता। LifeVeil की ईमानदार सीमाएं ये हैं।
आसान पैटर्न का अनुमान लगाया जा सकता है
छोटे या आम आकार (L, Z, एक सीधी लाइन) का अनुमान आपको देखकर, स्क्रीन पर उंगलियों के निशान से या कुछ ही कोशिशों में लगाया जा सकता है। असली पैटर्न का अनुमान लगाना, संभावित पैटर्न की संख्या से जितना लगता है, उससे कहीं आसान होता है। ज़्यादा बिंदु और ज़्यादा मोड़ इस्तेमाल करें। बहुत आसान पैटर्न के बारे में ऐप आपको चेतावनी देता है, और 6 से कम बिंदुओं वाले पैटर्न का वॉल्ट सेव करने से पहले भी।
अनुमान लगाने में कितना समय लग सकता है
ऐप के अंदर हर कोशिश में करीब एक सेकंड लगता है, और बार-बार अनुमान लगाने से हर अनलॉक धीमा होता जाता है, ज़्यादा से ज़्यादा 5 मिनट तक। लेकिन जिसके पास आपकी बैकअप फ़ाइल है, या जिसने रूट किए गए फ़ोन से डिवाइस सॉल्ट निकाल लिया है, वह बिना किसी इंतज़ार के कंप्यूटर पर अनुमान लगा सकता है। 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 बिट) | 4.95 × 1027 | करीब 1.6 × 1017 साल |
ये अनुमान हैं, माप नहीं। पैटर्न की संख्या ऊपरी सीमा है; असली पैटर्न इससे बहुत कम होते हैं। ज़्यादा या तेज़ हार्डवेयर उसी अनुपात में अनुमान लगाना तेज़ कर देता है। सबसे ऊंचे स्तर पर PIN इन संख्याओं को 108 गुना तक बढ़ा देता है।
अपनी बैकअप फ़ाइल निजी रखें
बैकअप फ़ाइल में डिवाइस सॉल्ट नहीं होता, इसलिए जिसे भी यह मिल जाए, वह ऊपर दिखाए तरीके से ऑफ़लाइन पैटर्न आज़मा सकता है। इसे सिर्फ़ ऐसी जगह रखें जहां सिर्फ़ आपकी पहुंच हो, जैसे आपका अपना क्लाउड खाता, और लंबा पैटर्न इस्तेमाल करें।
रिकवरी फ़्रेज़ पैटर्न भी दिखाता है
जिसके पास किसी वॉल्ट का रिकवरी फ़्रेज़ है, वह उस वॉल्ट को खोल सकता है, और फिर ऐप उसे उस वॉल्ट का पैटर्न और PIN दिखाता है। अगर आप वही पैटर्न कहीं और इस्तेमाल करते हैं, जैसे अपने फ़ोन के स्क्रीन लॉक में, तो वह भी उसे पता चल जाता है। कागज़ को उतना ही सुरक्षित रखें जितनी खुद फ़ाइलें।
रूट किए गए या संक्रमित फ़ोन
अगर कोई ऐप की अनुमतियों के साथ कोड चला सकता है (जैसे रूट किए गए फ़ोन पर, या पूरा नियंत्रण रखने वाले मैलवेयर से), तो वह डिवाइस सॉल्ट अनलॉक करके ऑफ़लाइन अनुमान लगा सकता है। जब वॉल्ट खुला होता है, तब कुंजियां मेमोरी में होती हैं और रूट ऐक्सेस या डीबगर से पढ़ी जा सकती हैं। Android और Flutter के अंदर बनी कुछ कॉपी, और स्क्रीन पर दिखाई गई फ़ोटो, मेमोरी से तुरंत मिटाई नहीं जा सकतीं।
कुछ जानकारी दिखाई देती है
ऐप के स्टोरेज में एन्क्रिप्ट की हुई फ़ाइलों की संख्या, उनका अनुमानित साइज़, और वे कब बनीं या बदलीं, यह छिपा नहीं होता। यह भी नहीं कि LifeVeil इंस्टॉल है।
खाली वॉल्ट सिर्फ़ स्क्रीन को धोखा देता है
जो ऐप की फ़ाइलें पढ़ सकता है (जैसे रूट किए गए फ़ोन पर), वह वॉल्ट फ़ोल्डर गिन सकता है और देख सकता है कि यह सेटिंग चालू है। धीमा करने की प्रक्रिया सेव किए गए और बिना सेव किए गए खाली वॉल्ट, दोनों को एक जैसा गिनती है, इसलिए इंतज़ार से उनमें फ़र्क पता नहीं चलता।
बदला हुआ रूप सिर्फ़ होम स्क्रीन बदलता है
- सिर्फ़ लॉन्चर का आइकॉन और नाम बदलता है। फ़ोन की सेटिंग > ऐप सूची, ऐप की जानकारी और स्टोरेज स्क्रीन पर अब भी LifeVeil दिखता है।
- स्क्रीन रीडर अब भी "LifeVeil" बोल सकते हैं। उदाहरण के लिए, Samsung One UI लॉन्चर TalkBack को ऐप का असली नाम देता है, और ऐप इसे नहीं बदल सकता।
- Android के शेयर मेन्यू में हमेशा ऐप का असली नाम दिखता है, इसलिए आइकॉन बदलने पर LifeVeil उससे हट जाता है। आप इसे फिर से चालू कर सकते हैं।
- Android के अनुमति अनुरोधों में असली नाम दिखता है, इसलिए ऐप आइकॉन बदलने से पहले ही अनुमतियां मांग लेता है।
- जब तक आइकॉन बदला हुआ है, ऐप सूचनाएं नहीं भेजता।
- बदले हुए रूप का कोड (4 से 8 अंक) सिर्फ़ लॉक स्क्रीन दिखाता है। यह आपकी फ़ाइलें नहीं खोलता। इसे सॉल्ट के साथ हैश करके रखा जाता है, लेकिन इतनी कम संभावनाओं की वजह से अगर किसी को फ़ाइल मिल जाए, तो इसे ढूंढना आसान है।
फ़िंगरप्रिंट कमज़ोर रास्ता है
फ़िंगरप्रिंट से अनलॉक करने में Argon2id नहीं चलता। इसकी मज़बूती आपके फ़ोन के फ़िंगरप्रिंट सेंसर और Android Keystore पर निर्भर करती है। आप इसे कभी भी सेटिंग में बंद कर सकते हैं।
फ़ोटो के विवरण
- HEIC, PNG और WebP फ़ोटो में छिपे हुए विवरण (EXIF) फ़ाइल के अंदर ही रहते हैं। पूरी फ़ाइल फिर भी एन्क्रिप्ट रहती है।
- Android 10 और उसके बाद के वर्शन पर, LifeVeil जो फ़ोटो पढ़ता है उनसे Android GPS जगह की जानकारी हटा देता है, क्योंकि ऐप जगह की जानकारी का ऐक्सेस नहीं मांगता। गैलरी से मूल फ़ाइल हटाने पर वह जगह की जानकारी भी चली जाती है।
- Android के फ़ोटो पिकर से जोड़ी गई फ़ोटो को तारीख के आधार पर नए नाम मिलते हैं, क्योंकि पिकर मूल नाम नहीं देता।
सिस्टम स्क्रीन के दौरान लॉक होना रुका रहता है
जब कोई सिस्टम स्क्रीन खुली हो (अनुमति अनुरोध, हटाने की पुष्टि, फ़ोटो या फ़ाइल पिकर, फ़िंगरप्रिंट प्रॉम्प्ट) और जब कोई इंपोर्ट या एक्सपोर्ट चल रहा हो, तब ऐप लॉक होने का इंतज़ार करता है। अगर आप ऐप से बाहर जा चुके हैं, तो वह काम खत्म होने के 2 सेकंड बाद ऐप लॉक हो जाता है।
सभी वॉल्ट एक ही डिवाइस सॉल्ट इस्तेमाल करते हैं
फ़ोन के सभी वॉल्ट एक ही डिवाइस सॉल्ट इस्तेमाल करते हैं। अगर किसी के पास वह सॉल्ट है, तो एक अनुमान से सभी वॉल्ट एक साथ जांचे जाते हैं। किसी एक वॉल्ट पर हमला करने की लागत उतनी ही रहती है।
जिन चीज़ों को कोई ऐप नहीं रोक सकता
कोई आपको पैटर्न बनाते हुए देख रहा हो, या कोई कैमरा आपकी स्क्रीन फ़िल्मा रहा हो।
फ़्रेज़ के बिना, कोई मदद नहीं कर सकता
अगर आप बिना रिकवरी फ़्रेज़ वाले वॉल्ट का पैटर्न भूल जाएं, या पैटर्न और फ़्रेज़ दोनों खो दें, तो कोई भी उसकी फ़ाइलें वापस नहीं ला सकता। हम भी नहीं।