Arsitektur keamanan Cryptile, lapis demi lapis
Cryptile mengenkripsi setiap berkas, gambar mini, dan indeks dengan AES-256-GCM, memakai kunci yang dibuat di ponsel Anda dari pola yang Anda gambar. Tidak ada akun dan tidak ada server, dan pengembang tidak pernah memegang kunci.
Dapatkan Cryptile di App Store
Ringkasan sederhananya ada di halaman keamanan.
Apa yang perlu saya ketahui?
- Pola Anda adalah sumber setiap kunci. Tidak ada yang tersimpan dalam bentuk terbaca tanpanya.
- Ukuran dan jumlah brankas disamarkan. Berkas diberi padding dan slot umpan menyembunyikan berapa banyak brankas yang ada.
- Anda bisa memeriksanya. Inti enkripsi dipublikasikan untuk diaudit siapa pun (source-available), dengan model ancaman dan vektor uji: github.com/jasonbrelsford/cryptile-core.
Bagaimana pola menjadi kunci?
- Pola ditulis sebagai ukuran kisi, diikuti sel-sel yang Anda sentuh, sesuai urutan.
- Pola dicampur dengan rahasia perangkat 32 byte yang disimpan di Keychain iPhone, khusus untuk perangkat ini.
- PBKDF2-HMAC-SHA512 dijalankan 600.000 kali atasnya. Setiap tebakan memakan kerja sebanyak itu.
- HKDF-SHA256 membagi hasilnya menjadi kunci pencarian dan kunci pembungkus.
- Kunci pencarian menamai berkas indeks brankas. Kunci pembungkus membukanya.
Di dalam indeks ada kunci induk acak 256 bit milik brankas. HKDF menurunkan subkunci terpisah darinya untuk berkas, gambar mini, dan indeks. Tidak ada kunci yang dipakai untuk dua tujuan.
Bagaimana berkas dienkripsi?
Item kecil, seperti gambar mini dan indeks, disegel utuh dengan AES-256-GCM dan nonce acak.
Berkas besar memakai tata letak STREAM dalam potongan 1 MB. Setiap potongan punya nonce sendiri dan mencatat posisinya serta apakah ia potongan terakhir. Memotong, mengubah urutan, atau menukar potongan membuat dekripsi gagal.
GCM juga mengautentikasi setiap header, jadi berkas yang diubah ditolak, bukan ditampilkan.
Bagaimana ukuran dan jumlah brankas disembunyikan?
Setiap blob kecil dan setiap potongan akhir berkas diberi padding hingga kelipatan 64 KiB. Orang yang menyalin hanya melihat ukuran kasar, bukan ukuran persis.
Tidak ada daftar brankas. Aplikasi menyimpan minimal 8 slot berbentuk indeks, asli dan umpan, dan mengacak ulang slot umpan setiap kali menulis. Pola yang tidak menamai slot mana pun membuka brankas kosong.
Bagaimana pemulihan bekerja?
Setiap brankas mendapat frasa pemulihan 9 kata, yaitu 96 bit keacakan. Frasa itu membuka salinan pemulihan brankas yang terpisah, disegel dengan kunci yang dibuat dari frasa tersebut.
Cadangan iCloud mencerminkan berkas terenkripsi apa adanya. Rahasia perangkat tidak ada di dalamnya secara default, jadi cadangan saja tidak bisa dipakai untuk menebak pola.
Apa yang dienkripsi, dan apa yang tidak?
Dienkripsi: foto, video, berkas, catatan, gambar mini, nama, folder, favorit, teks yang dikenali, dan lokasi foto. Berkas kecil yang mencatat slot umpan dan hitungan paket gratis disegel dengan kunci perangkat.
Tidak dienkripsi oleh Cryptile:
- Pengaturan. Waktu kunci otomatis, urutan, dan tombol cadangan tidak menyimpan rahasia.
- Item bersama yang menunggu ditambahkan. Item itu berada di bawah perlindungan berkas iOS sampai Anda membuka brankas.
- Ukuran total wadah dan waktu penulisan. Brankas 10 GB tidak tampak seperti 10 MB.
- Apa pun yang Anda ekspor. Salinan yang disimpan ke Foto atau Berkas berada di luar brankas.
Dari apa ini melindungi?
- Orang yang menyalin berkas aplikasi tanpa Keychain Anda. Mereka mendapat ciphertext dan tidak bisa mencoba pola.
- Apple, atau kebocoran di Apple. iCloud menyimpan ciphertext dan tidak ada kunci.
- Perusakan data. Data yang diubah atau diacak urutannya gagal didekripsi.
- Kami. Kami tidak menjalankan server dan tidak memegang kunci, jadi kami tidak bisa mereset akses.
Dari apa ini tidak melindungi?
- Pola pendek. Pola lebih lemah daripada frasa sandi. Dengan berkas dan Keychain Anda, pola 6 sel pada kisi 4×4 jebol dalam hitungan menit di GPU. Gunakan 8 sel atau lebih.
- Malware di ponsel yang tidak terkunci. Kode yang membaca memori saat brankas terbuka berada di luar jangkauan aplikasi mana pun.
- Orang yang melihat Anda menggambar. Gambarlah di tempat tak seorang pun bisa melihat tangan Anda.
- Kehilangan ponsel dan frasa. Brankas hilang. Tidak ada reset.
Pola panik di Plus menghancurkan rahasia perangkat, sehingga tidak ada brankas di ponsel yang terbuka sampai dipulihkan.