LifeVeil چگونه از فایلهای شما محافظت میکند
این صفحه به زبان ساده توضیح میدهد که LifeVeil چه میکند و چه کارهایی از دستش برنمیآید. ترجیح میدهیم محدودیتها را بدانید تا اینکه به وعدهای بیش از اندازه بزرگ اعتماد کنید.
به طور خلاصه
- همه رمزگذاری روی تلفن شما انجام میشود. LifeVeil نه سرور دارد و نه حساب کاربری.
- فایلهای هر گاوصندوق با یک کلید تصادفی رمزگذاری میشوند. فقط الگوی همان گاوصندوق (همراه با پین آن در بالاترین سطح)، عبارت بازیابی آن اگر اضافه کرده باشید، یا اثر انگشت شما اگر روشنش کرده باشید، میتواند قفل این کلید را باز کند.
- هر الگو یک گاوصندوق باز میکند. الگویی که با هیچ گاوصندوق ذخیرهشدهای جور نیست یک گاوصندوق خالی باز میکند، و تا وقتی فایلی به آن اضافه نکنید چیزی نوشته نمیشود.
- ما، یعنی سازندگان برنامه، هرگز الگو، پین، عبارت بازیابی یا کلیدهای شما را نداریم. نمیتوانیم فایلهایتان را باز کنیم و نمیتوانیم الگویتان را بازنشانی کنیم.
- ما از رمزگذاری داخلی Android و کتابخانه شناختهشده libsodium استفاده میکنیم. رمزگذاری را خودمان ننوشتهایم.
- LifeVeil هنوز توسط یک نهاد مستقل از نظر امنیتی بازرسی نشده است.
از الگوی شما تا کلید
شما روی شبکه 5×5 الگویی میکشید که از هیچ نقطهای دو بار نمیگذرد. الگوی تازهای که تنظیم میکنید دستکم 6 نقطه لازم دارد. LifeVeil الگو را با Argon2id از libsodium (نسخه 1.0.20 در Android) به کلید تبدیل میکند.
- تنظیمات: 64 MiB حافظه، 3 گذر، 1 مسیر، کلید 256 بیتی.
- Argon2id عمداً کند است و برای هر حدس حافظه زیادی لازم دارد. این کار حدس زدن با کارت گرافیک را بسیار پرهزینهتر میکند.
- روی تلفنهای آزمایشی ما، هر بار باز کردن حدود 0.6 تا 0.9 ثانیه طول میکشد.
- الگو با یک نمک دستگاه تصادفی 16 بایتی ترکیب میشود. این نمک در برنامه ذخیره میشود و با کلیدی رمزگذاری شده که در Android Keystore نگهداری میشود و نمیتوان آن را از تلفن بیرون کپی کرد.
- هیچ نسخهای از الگو ذخیره نمیشود، بهجز نسخهای که همراه عبارت بازیابی نگه داشته میشود (پایینتر را ببینید). برنامه الگو را با تلاش برای باز کردن قفل کلید بررسی میکند.
- هر چیزی که در کادر پین بالای نقطهها وارد کنید، در همان فرایند ساختن کلید همراه الگو به کار میرود. کادر خالی یعنی فقط الگو.
سطحهای امنیت
هر گاوصندوق یک سطح دارد. آن را در شروع انتخاب میکنید و بعداً میتوانید پس از کشیدن دوباره الگو، در تنظیمات > گاوصندوق > سطح امنیت تغییرش دهید.
- بالاترین امنیت (Ultra): الگو و یک پین 6 تا 8 رقمی، هر دو فقط در ذهن شما. حتی در برابر حدس زدن با هوش مصنوعی امن است. اگر هر کدام را فراموش کنید، گاوصندوق قابل بازیابی نیست.
- سطح 1 (پیشنهادی): فقط الگو. اگر از شکلهای رایج دوری کنید امن است. اگر فراموشش کنید، گاوصندوق قابل بازیابی نیست.
- سطح 2: الگو و یک عبارت بازیابی که روی کاغذ نوشته شده است. اگر الگو را فراموش کنید میتوانید دوباره وارد شوید، اما هر کس کاغذ را پیدا کند هم میتواند گاوصندوق را باز کند.
- سطح 3: الگو و اثر انگشت. راحتترین گزینه، اما ممکن است کسی انگشت شما را به زور روی حسگر بگذارد. اثر انگشت فقط برای یک گاوصندوق کار میکند.
فایلها چگونه رمزگذاری میشوند
- هر گاوصندوق یک کلید اصلی تصادفی 256 بیتی دارد. کلید الگو و کلید بازیابی شما فقط این کلید اصلی را «بستهبندی» (رمزگذاری) میکنند.
- فایلها، تصاویر کوچک و فهرست موارد شما (نام اصلی فایلها، تاریخها، اندازهها) با AES-256-GCM و با رمزگذاری داخلی Android رمزگذاری میشوند. GCM همچنین تشخیص میدهد که آیا فایلی تغییر کرده یا جابهجا شده است.
- فایلهای داخل برنامه نامهای تصادفی دارند. فایلهای بزرگ در قطعههای 1 MiB رمزگذاری میشوند، تا ویدیوها پخش شوند بدون اینکه هیچوقت نسخه رمزگذارینشدهای در حافظه ذخیرهسازی نوشته شود.
- برای عکسهای JPEG، جزئیات پنهان (EXIF، مثل دوربین و تاریخ) جداگانه و آن هم به صورت رمزگذاریشده ذخیره میشود.
- وقتی برنامه قفل میشود، کلیدهایی را که در حافظه دارد با صفر بازنویسی میکند.
عبارت بازیابی
- عبارت بازیابی اختیاری است. گاوصندوق فقط وقتی سطح 2 را انتخاب کنید عبارت میگیرد، و عبارت پس از گذراندن یک آزمون کوتاه ذخیره میشود.
- مولد امن اعداد تصادفی تلفن 9 کلمه انگلیسی انتخاب میکند. این کلمهها از دو فهرست 1,024 کلمهای از کلمات رایج و به یکی از 4 ترتیب ثابت میآیند. این یعنی 92 بیت تصادفی بودن. کلمهها در همه زبانهای برنامه انگلیسی هستند.
- عبارت از همان تنظیمات Argon2id میگذرد و به تنهایی قفل کلید اصلی را باز میکند. به نمک دستگاه نیاز ندارد، پس حتی وقتی الگو دیگر کار نمیکند هم کار میکند.
- یک نسخه از عبارت و یک نسخه از الگوی گاوصندوق (و پین آن) روی تلفن ذخیره میشوند و هر کدام دو بار رمزگذاری شدهاند: یک بار با کلید اصلی و یک بار با کلیدی از Android Keystore. وقتی عبارت گاوصندوق را باز میکند، برنامه الگو را یک بار نشان میدهد. با قفل شدن برنامه، الگو فراموش میشود.
- با تغییر الگو، عبارت همان میماند. گاوصندوقی که عبارت ندارد، اگر الگویش فراموش شود هیچ راه بازگشتی ندارد.
اثر انگشت
باز کردن با اثر انگشت اختیاری است و برای یک گاوصندوق کار میکند. اثر انگشت را Android بررسی میکند، نه LifeVeil؛ برنامه هرگز اثر انگشت شما را دریافت نمیکند. کلیدی در Android Keystore که فقط بلافاصله بعد از یک بررسی بیومتریک قوی کار میکند، قفل کلید اصلی را باز میکند. اگر کسی اثر انگشت جدیدی به تلفن اضافه کند، این کلید دیگر کار نمیکند و باید دوباره از الگویتان استفاده کنید.
فایل پشتیبان
- هر پشتیبان یک فایل
.lvbاست. این فایل موارد شما را دقیقاً به همان صورتی که از قبل رمزگذاری شدهاند نگه میدارد، بهعلاوه نسخههای بستهبندیشده از کلید اصلی: یکی برای الگویی که هنگام ساختن پشتیبان کشیدید و یکی برای عبارت بازیابی، اگر گاوصندوق عبارت داشت. - نسخه الگو برای هر پشتیبان از یک نمک تصادفی تازه استفاده میکند، نه از نمک دستگاه. همین است که به شما اجازه میدهد پشتیبان را روی تلفن جدید باز کنید.
- سرآیند فایل محافظت میشود تا تغییرات یا بخشهای جابهجاشده تشخیص داده شوند.
- جای ذخیره آن را خودتان با صفحه ذخیره خود Android انتخاب میکنید. این فایل هرگز از دست ما نمیگذرد.
- برای بازیابی، فایل را با الگو یا عبارت بازیابی همان پشتیبان باز کنید. سپس الگوی تازهای میکشید. گاوصندوق بازیابیشده بدون عبارت بازیابی شروع میشود.
محافظتهای دیگر در برنامه
- نماگرفت، ضبط صفحه و پیشنمایش در فهرست برنامههای اخیر در همه صفحهها مسدود است.
- به طور پیشفرض، برنامه به محض اینکه از آن خارج شوید قفل میشود. میتوانید به جای آن 30 ثانیه یا 1 دقیقه را انتخاب کنید.
- پشتیبانگیری ابری خود Android و انتقال از تلفن به تلفن، دادههای LifeVeil را شامل نمیشوند. به جای آن از فایل پشتیبان استفاده کنید.
- برنامه اجازه دسترسی به مکان، مخاطبین یا «همه فایلها» را درخواست نمیکند.
- یک گاوصندوق خالی برای هر الگوی تازه. گاوصندوقی که فایلی ندارد، چه ذخیره شده باشد چه نه، یکسان به نظر میرسد؛ پس کسی که شما را مجبور به باز کردن برنامه میکند نمیفهمد چه چیز دیگری هست. میتوانید این را در تنظیمات > امنیت خاموش کنید، و آن وقت الگویی که چیزی را باز نمیکند خطا نشان میدهد.
کند کردن حدس زدن
چون هر الگو یک گاوصندوق باز میکند، حدس زدن شبیه باز شدن تعداد زیادی گاوصندوق خالی است. LifeVeil این کار را بدون گفتن روی صفحه کند میکند، و زمان انتظار برای همه الگوها، از جمله الگوی درست، یکسان است.
- در 24 ساعت، 10 بار باز شدن گاوصندوقهای بدون فایل 10 ثانیه به هر باز کردن قفل اضافه میکند، 20 بار 60 ثانیه، و 30 بار 5 دقیقه که بیشترین مقدار است.
- نشانههای خودکارسازی مستقیم به بیشترین مقدار میرسند: الگوهایی که سه بار پشت سر هم با فاصله کمتر از 2 ثانیه تمام میشوند، یا لمسهایی که بهجای انگشت از سرویسهای دسترسپذیری یا ورودی تزریقشده میآیند.
- هر 24 ساعت بدون باز شدن گاوصندوق خالی، آن را یک پله کم میکند. عقب بردن ساعت تلفن آن را کوتاهتر نمیکند.
- این فقط داخل برنامه کار میکند. حدس زدن روی رایانه با یک فایل کپیشده را کند نمیکند (محدودیتهای پایین را ببینید).
هوش مصنوعی و حدس زدن الگو
- هوش مصنوعی نمیتواند از ریاضیات میانبر بزند. هر حدس همچنان باید Argon2id را با 64 MiB حافظه اجرا کند. هوش مصنوعی Argon2id یا AES را نمیشکند، پس هیچ حدسی ارزانتر نمیشود.
- آنچه هوش مصنوعی تغییر میدهد ترتیب حدسهاست. میتواند شکلهایی را که مردم دوست دارند (حروف، مربعها، گوشههای شروع محبوب) یاد بگیرد و اول آنها را امتحان کند. همچنین میتواند به خواندن الگو از ویدیویی که از بالای شانه شما گرفته شده یا از لکهای روی صفحه کمک کند.
- پس دفاع به الگو مربوط است، نه به ریاضیات. برنامه درباره شکلهای رایج هشدار میدهد. بالاترین سطح امنیت یک پین 6 تا 8 رقمی اضافه میکند، تا الگویی که در ویدیو دیده شده کافی نباشد. پنهان کردن خط الگو هیچ خطی برای فیلمبرداری باقی نمیگذارد. نمک دستگاه در 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 سال |
اینها برآورد هستند، نه اندازهگیری. تعداد الگوها حد بالاست؛ الگوهای واقعی بسیار کمترند. سختافزار بیشتر یا سریعتر، حدس زدن را به همان نسبت سریعتر میکند. یک پین در بالاترین سطح این عددها را تا 108 برابر میکند.
فایل پشتیبان را خصوصی نگه دارید
فایل پشتیبان نمک دستگاه را ندارد، پس هر کسی که به آن دست پیدا کند میتواند همانطور که بالا نشان داده شد، الگوها را آفلاین امتحان کند. آن را فقط جایی نگه دارید که فقط خودتان به آن دسترسی دارید، مثل حساب ابری خودتان، و از الگوی طولانیتری استفاده کنید.
عبارت بازیابی الگو را هم نشان میدهد
هر کس عبارت بازیابی یک گاوصندوق را داشته باشد میتواند آن گاوصندوق را باز کند، و برنامه سپس الگو و پین آن را به او نشان میدهد. اگر همین الگو را جای دیگری هم به کار میبرید، مثلاً برای قفل صفحه تلفن، آن را هم میفهمد. از کاغذ به اندازه خود فایلها مراقبت کنید.
تلفنهای روتشده یا آلوده
اگر کسی بتواند با مجوزهای برنامه کد اجرا کند (مثلاً روی تلفن روتشده، یا با بدافزاری که کنترل کامل دارد)، میتواند قفل نمک دستگاه را باز کند و آفلاین حدس بزند. تا وقتی گاوصندوق باز است، کلیدها در حافظه هستند و میتوان آنها را با دسترسی روت یا با اشکالزدا خواند. برخی نسخههایی که داخل Android و Flutter ساخته میشوند، و عکسهایی که روی صفحه نمایش داده میشوند، را نمیتوان فوراً از حافظه پاک کرد.
بعضی اطلاعات قابل دیدن است
تعداد فایلهای رمزگذاریشده در فضای ذخیرهسازی برنامه، اندازه تقریبی آنها و زمان ساخته شدن یا تغییرشان پنهان نیست. نصب بودن LifeVeil هم پنهان نیست.
گاوصندوق خالی فقط صفحه را فریب میدهد
کسی که بتواند فایلهای برنامه را بخواند (مثلاً روی گوشی روتشده) میتواند پوشههای گاوصندوق را بشمارد و ببیند این تنظیم روشن است. کند کردن، گاوصندوقهای خالی ذخیرهشده و ذخیرهنشده را یکسان میشمارد، پس خود زمان انتظار آنها را از هم جدا نمیکند.
تغییر نماد فقط صفحه اصلی را تغییر میدهد
- فقط نماد و نام راهانداز تغییر میکند. فهرست تنظیمات > برنامهها، اطلاعات برنامه و صفحههای فضای ذخیرهسازی تلفن همچنان LifeVeil را نشان میدهند.
- صفحهخوانها ممکن است همچنان «LifeVeil» را بخوانند. برای مثال، راهانداز Samsung One UI نام واقعی برنامه را به TalkBack میدهد و برنامه نمیتواند این را تغییر دهد.
- منوی همرسانی Android همیشه نام واقعی برنامه را نشان میدهد، به همین دلیل وقتی نماد را تغییر میدهید، LifeVeil از آن منو کنار میرود. میتوانید آن را دوباره روشن کنید.
- درخواستهای مجوز Android نام واقعی را نشان میدهند، به همین دلیل برنامه پیش از تغییر نماد، مجوزها را درخواست میکند.
- تا وقتی نماد تغییر کرده است، برنامه اعلانی نمیفرستد.
- کد تغییر نماد (4 تا 8 رقم) فقط صفحه قفل را نشان میدهد. فایلهای شما را باز نمیکند. این کد به صورت هش نمکدار ذخیره میشود، اما با این تعداد کم حالتهای ممکن، اگر کسی به فایل دست پیدا کند، پیدا کردنش آسان است.
اثر انگشت راه ضعیفتری است
باز کردن با اثر انگشت از Argon2id نمیگذرد. قدرت آن به حسگر اثر انگشت تلفن و Android Keystore بستگی دارد. هر زمان بخواهید میتوانید آن را در تنظیمات خاموش کنید.
جزئیات عکس
- برای عکسهای HEIC، PNG و WebP، جزئیات پنهان (EXIF) داخل خود فایل میماند. کل فایل همچنان رمزگذاری میشود.
- در Android 10 و بالاتر، Android مکان GPS را از عکسهایی که LifeVeil میخواند حذف میکند، چون برنامه اجازه دسترسی به مکان را درخواست نمیکند. وقتی اصل عکس از گالری حذف شود، آن مکان از بین میرود.
- عکسهایی که با انتخابگر عکس Android اضافه میشوند، نام تازهای بر اساس تاریخ میگیرند، چون انتخابگر نام اصلی را نمیدهد.
قفل شدن هنگام صفحههای سیستم متوقف میشود
تا وقتی یک صفحه سیستم باز است (درخواست مجوز، تأیید حذف، انتخابگر عکس یا فایل، درخواست اثر انگشت) و تا وقتی وارد کردن یا صادر کردن در حال انجام است، برنامه برای قفل شدن صبر میکند. اگر از برنامه خارج شده باشید، 2 ثانیه بعد از پایان آن قفل میشود.
گاوصندوقها یک نمک دستگاه مشترک دارند
همه گاوصندوقهای یک تلفن از نمک دستگاه یکسانی استفاده میکنند. اگر کسی آن نمک را داشته باشد، با یک حدس همه گاوصندوقها را همزمان امتحان میکند. هزینه حمله به یک گاوصندوق تنها همان است.
چیزهایی که هیچ برنامهای نمیتواند جلویشان را بگیرد
کسی که کشیدن الگوی شما را تماشا میکند، یا دوربینی که از صفحه شما فیلم میگیرد.
بدون عبارت، هیچکس نمیتواند کمک کند
اگر الگوی گاوصندوقی را که عبارت بازیابی ندارد فراموش کنید، یا هم الگو و هم عبارت را از دست بدهید، هیچکس نمیتواند فایلهای آن را برگرداند. حتی ما.