Cara LifeVeil melindungi file Anda
Halaman ini menjelaskan apa yang dilakukan LifeVeil dengan kata-kata sederhana, dan juga apa yang tidak bisa dilakukannya. Kami lebih suka Anda mengetahui batasannya daripada memercayai janji yang terlalu besar.
Singkatnya
- Semua enkripsi terjadi di ponsel Anda. Tidak ada server LifeVeil dan tidak ada akun.
- File Anda dienkripsi dengan kunci acak. Hanya pola, frasa pemulihan, atau sidik jari Anda yang bisa membuka kunci itu.
- Kami, para pengembang, tidak pernah memegang pola, frasa, atau kunci Anda. Kami tidak bisa membuka file Anda, dan kami tidak bisa mereset pola Anda.
- Kami memakai enkripsi bawaan Android dan pustaka libsodium yang sudah dikenal luas. Kami tidak membuat enkripsi sendiri.
- LifeVeil belum pernah menjalani audit keamanan independen.
Dari pola Anda menjadi kunci
Anda menggambar pola di petak 5×5, memakai minimal 6 titik dan tidak ada titik yang dipakai dua kali. LifeVeil mengubah pola menjadi kunci dengan Argon2id, dari libsodium (versi 1.0.20 di Android).
- Pengaturan: memori 64 MiB, 3 putaran, 1 jalur, kunci 256-bit.
- Argon2id sengaja dibuat lambat dan butuh banyak memori untuk setiap tebakan. Ini membuat penebakan dengan kartu grafis jauh lebih mahal.
- Di ponsel uji kami, satu kali buka kunci butuh sekitar 0,6 sampai 0,9 detik.
- Pola dicampur dengan salt perangkat acak 16 byte. Salt ini disimpan di aplikasi, dienkripsi dengan kunci yang disimpan di Android Keystore, yang tidak bisa disalin keluar dari ponsel.
- Tidak ada salinan pola yang disimpan. Aplikasi memeriksa pola dengan mencoba membuka kunci.
- Setelah 5 kali salah pola berturut-turut, Anda harus menunggu 30 detik. Waktu tunggu berlipat dua setiap kali salah lagi, hingga 16 menit.
Cara file dienkripsi
- Setiap brankas punya kunci utama acak 256-bit. Kunci dari pola dan kunci pemulihan Anda hanya "membungkus" (mengenkripsi) kunci utama ini.
- File, gambar mini, dan daftar item Anda (nama file asli, tanggal, ukuran) dienkripsi dengan AES-256-GCM, memakai enkripsi bawaan Android. GCM juga mendeteksi jika file diubah atau ditukar.
- File di dalam aplikasi diberi nama acak. File besar dienkripsi per bagian 1 MiB, sehingga video bisa diputar tanpa pernah menulis salinan yang tidak terenkripsi ke penyimpanan.
- Untuk foto JPEG, detail tersembunyinya (EXIF, seperti kamera dan tanggal) disimpan terpisah, juga dalam keadaan terenkripsi.
- Saat aplikasi terkunci, aplikasi menimpa kunci yang ada di memori dengan angka nol.
Frasa pemulihan
- Saat Anda membuat brankas, generator angka acak yang aman di ponsel memilih 9 kata bahasa Inggris. Kata-kata itu berasal dari dua daftar berisi 1.024 kata umum, dalam salah satu dari 4 urutan tetap. Itu setara dengan 92 bit keacakan. Kata-katanya tetap bahasa Inggris di semua bahasa aplikasi.
- Frasa ini melewati pengaturan Argon2id yang sama dan bisa membuka kunci utama dengan sendirinya. Frasa tidak memerlukan salt perangkat, jadi tetap berfungsi meskipun pola sudah tidak bisa dipakai.
- Salinan frasa disimpan di ponsel, dienkripsi dua kali: sekali dengan kunci utama dan sekali dengan kunci Android Keystore. Anda bisa melihatnya di Setelan setelah menggambar pola Anda lagi.
- Saat Anda mengganti pola atau memakai frasa untuk masuk kembali, Anda mendapat frasa baru. Frasa yang lama tidak berlaku lagi.
Sidik jari
Buka kunci dengan sidik jari bersifat opsional. Yang memeriksa sidik jari adalah Android, bukan LifeVeil; aplikasi tidak pernah menerima sidik jari Anda. Kunci utama dibuka oleh sebuah kunci di Android Keystore yang hanya berfungsi tepat setelah pemeriksaan biometrik yang kuat. Jika seseorang menambahkan sidik jari baru ke ponsel, kunci ini berhenti berfungsi dan Anda harus memakai pola lagi.
File cadangan
- Cadangan adalah satu file
.lvb. File ini berisi item Anda persis seperti yang sudah terenkripsi, ditambah dua salinan kunci utama yang terbungkus: satu untuk pola yang Anda gambar saat membuat cadangan, dan satu untuk frasa pemulihan yang Anda miliki saat itu. - Salinan untuk pola memakai salt acak baru untuk setiap cadangan, bukan salt perangkat. Itulah yang memungkinkan Anda membuka cadangan di ponsel baru.
- Header file dilindungi sehingga perubahan atau bagian yang ditukar akan terdeteksi.
- Anda memilih tempat menyimpannya melalui layar simpan bawaan Android. File ini tidak pernah melewati kami.
- Untuk memulihkan, buka file dengan pola atau frasanya. Setelah itu Anda menggambar pola baru dan mendapat frasa pemulihan baru.
Perlindungan lain di aplikasi
- Screenshot, perekaman layar, dan pratinjau di daftar aplikasi terbaru diblokir di setiap layar.
- Secara default, aplikasi langsung terkunci begitu Anda meninggalkannya. Anda bisa memilih 30 detik atau 1 menit sebagai gantinya.
- Cadangan cloud dan transfer antarponsel bawaan Android tidak menyertakan data LifeVeil. Gunakan file cadangan sebagai gantinya.
- Aplikasi tidak meminta akses lokasi, kontak, atau akses "semua file".
- Brankas kosong untuk pola salah. Pola yang tidak membuka brankas mana pun akan membuka brankas kosong, bukan pesan error, jadi orang yang memaksa Anda membuka aplikasi tidak tahu apa lagi yang ada. Percobaan yang salah tetap dihitung, foto penyusup tetap diambil, dan waktu tunggu tetap berlaku. Anda dapat menonaktifkannya di Setelan > Keamanan > Brankas kosong untuk pola salah.
AI dan penebakan pola
- AI tidak bisa melewati perhitungannya. Setiap tebakan tetap harus menjalankan Argon2id dengan memori 64 MiB. AI tidak bisa membobol Argon2id atau AES, jadi tidak ada satu tebakan pun yang menjadi lebih murah.
- Yang diubah AI adalah urutan tebakan. AI bisa mempelajari bentuk yang disukai orang (huruf, kotak, sudut awal favorit) dan mencobanya lebih dulu. AI juga bisa membantu membaca pola dari video yang direkam dari balik bahu Anda, atau dari bekas sentuhan di layar.
- Jadi pertahanannya ada pada pola, bukan pada perhitungannya. Pengukur kekuatan memperingatkan tentang bentuk yang umum. Pola + PIN menambahkan PIN 4–6 digit, sehingga pola yang terlihat di video saja tidak cukup. Sembunyikan garis pola tidak meninggalkan garis untuk direkam. Salt perangkat di Android Keystore mencegah penebakan di luar ponsel.
Batasan yang perlu Anda ketahui
Tidak ada aplikasi yang bisa melindungi dari segalanya. Berikut batasan LifeVeil yang sebenarnya.
Pola sederhana bisa ditebak
Bentuk yang pendek atau umum (huruf L, huruf Z, garis lurus) bisa ditebak dengan mengamati Anda, dari bekas sentuhan di layar, atau dalam beberapa kali percobaan. Pola sungguhan jauh lebih mudah ditebak daripada yang ditunjukkan oleh jumlah pola yang mungkin. Gunakan lebih banyak titik dan lebih banyak belokan. Aplikasi memperingatkan Anda tentang pola yang sangat sederhana.
Berapa lama penebakan bisa berlangsung
Di dalam aplikasi, setiap percobaan butuh sekitar satu detik, dan waktu tunggu bertambah setelah 5 kali salah. Tetapi seseorang yang memegang file cadangan Anda, atau yang sudah mengambil salt perangkat dari ponsel yang di-root, bisa menebak di komputer, tanpa waktu tunggu. Argon2id memperlambatnya, tetapi kemungkinan pola jauh lebih sedikit daripada kata sandi yang panjang. Perkiraan kasar untuk satu kartu grafis kelas atas (kelas RTX 4090) dengan sekitar 1.000 tebakan per detik:
| Yang ditebak | Kemungkinan | Waktu, satu kartu grafis |
|---|---|---|
| 10.000 pola paling umum | 104 | sekitar 10 detik |
| Semua pola 6 titik | 1,28 × 108 | sekitar 1,5 hari |
| Semua pola 7 titik | 2,42 × 109 | sekitar 28 hari |
| Semua pola 8 titik | 4,36 × 1010 | sekitar 1,4 tahun |
| Frasa pemulihan (92 bit) | 4,95 × 1027 | sekitar 1,6 × 1017 tahun |
Ini perkiraan, bukan hasil pengukuran. Jumlah pola adalah batas atas; pola sungguhan jauh lebih sedikit. Perangkat keras yang lebih banyak atau lebih cepat membuat penebakan lebih cepat secara sebanding.
Jaga kerahasiaan file cadangan Anda
File cadangan tidak berisi salt perangkat, jadi siapa pun yang mendapatkannya bisa mencoba pola secara offline, seperti yang ditunjukkan di atas. Simpan hanya di tempat yang bisa diakses oleh Anda sendiri, seperti akun cloud Anda sendiri, dan gunakan pola yang lebih panjang.
Ponsel yang di-root atau terinfeksi
Jika seseorang bisa menjalankan kode dengan izin aplikasi (misalnya di ponsel yang di-root, atau dengan malware yang memiliki kendali penuh), orang itu bisa membuka salt perangkat dan menebak secara offline. Selama brankas terbuka, kunci ada di memori dan bisa dibaca dengan akses root atau debugger. Beberapa salinan yang dibuat di dalam Android dan Flutter, serta foto yang ditampilkan di layar, tidak bisa langsung dihapus dari memori.
Beberapa informasi terlihat
Jumlah file terenkripsi di penyimpanan aplikasi, perkiraan ukurannya, dan kapan file itu dibuat atau diubah tidak disembunyikan. Begitu juga fakta bahwa LifeVeil terinstal.
Brankas kosong hanya mengelabui layar
Orang yang bisa membaca file aplikasi (misalnya di ponsel yang di-root) dapat menghitung folder brankas dan melihat bahwa setelan ini aktif. Selain itu, setelah 5 pola salah aplikasi membuat Anda menunggu, yang menunjukkan bahwa pola-pola sebelumnya tidak membuka apa pun.
Penyamaran hanya mengubah layar utama
- Hanya ikon dan nama di peluncur yang berubah. Daftar Setelan > Aplikasi, info aplikasi, dan layar penyimpanan di ponsel tetap menampilkan LifeVeil.
- Pembaca layar mungkin tetap menyebut "LifeVeil". Misalnya, peluncur Samsung One UI memberikan nama asli aplikasi kepada TalkBack, dan aplikasi tidak bisa mengubahnya.
- Menu berbagi Android selalu menampilkan nama asli aplikasi, jadi LifeVeil keluar dari menu itu saat Anda mengganti ikon. Anda bisa mengaktifkannya kembali.
- Permintaan izin Android menampilkan nama asli, jadi aplikasi meminta izin sebelum Anda mengganti ikon.
- Selama ikon diganti, aplikasi tidak mengirim notifikasi.
- Kode penyamaran (4 sampai 8 digit) hanya menampilkan layar kunci. Kode ini tidak membuka file Anda. Kode disimpan sebagai hash dengan salt, tetapi karena kemungkinannya sangat sedikit, kode mudah ditemukan jika seseorang mendapatkan filenya.
Sidik jari adalah jalur yang lebih lemah
Buka kunci dengan sidik jari tidak melewati Argon2id. Kekuatannya bergantung pada sensor sidik jari dan Android Keystore di ponsel Anda. Anda bisa menonaktifkannya di Setelan kapan saja.
Foto penyusup
Aplikasi tidak memutar suara rana, tetapi ponsel yang dijual di beberapa negara, seperti Jepang dan Korea, selalu memutarnya. Foto tidak diambil jika aplikasi lain sedang memakai kamera atau tidak ada kamera depan. Sampai Anda membuka brankas pertama yang Anda buat, foto-foto itu disegel dengan kunci Android Keystore.
Detail foto
- Untuk foto HEIC, PNG, dan WebP, detail tersembunyinya (EXIF) tetap berada di dalam file. Seluruh file tetap dienkripsi.
- Di Android 10 dan yang lebih baru, Android menghapus lokasi GPS dari foto yang dibaca LifeVeil, karena aplikasi tidak meminta akses lokasi. Saat foto asli dihapus dari galeri, lokasi itu hilang.
- Foto yang ditambahkan melalui pemilih foto Android mendapat nama baru berdasarkan tanggal, karena pemilih tidak memberikan nama aslinya.
Penguncian ditunda selama layar sistem terbuka
Selama layar sistem terbuka (permintaan izin, konfirmasi penghapusan, pemilih foto atau file, permintaan sidik jari) dan selama impor atau ekspor sedang berjalan, aplikasi menunggu untuk mengunci. Jika Anda sudah meninggalkan aplikasi, aplikasi terkunci 2 detik setelah proses itu selesai.
Semua brankas memakai satu salt perangkat
Semua brankas di satu ponsel memakai salt perangkat yang sama. Jika seseorang memiliki salt itu, satu tebakan menguji semua brankas sekaligus. Biaya untuk menyerang satu brankas tetap sama.
Hal yang tidak bisa dicegah aplikasi mana pun
Seseorang yang melihat Anda menggambar pola, atau kamera yang merekam layar Anda.
Jika keduanya hilang, tidak ada yang bisa membantu
Jika Anda kehilangan pola sekaligus frasa pemulihan, tidak ada yang bisa memulihkan file Anda. Kami pun tidak.