Seni bina keselamatan Cryptile, lapisan demi lapisan
Cryptile menyulitkan setiap fail, imej kecil dan indeks dengan AES-256-GCM, menggunakan kunci yang dijana pada telefon anda daripada corak yang anda lukis. Tiada akaun dan tiada pelayan, dan pembangun tidak pernah memegang kunci.
Dapatkan Cryptile di App Store
Ringkasan dalam bahasa mudah ada di halaman keselamatan.
Apa yang perlu saya tahu?
- Corak anda ialah punca setiap kunci. Tiada apa-apa yang boleh dibaca disimpan tanpanya.
- Saiz dan bilangan peti simpanan dikaburkan. Fail dilapik dan slot umpan menyembunyikan berapa banyak peti simpanan yang wujud.
- Anda boleh menyemaknya. Teras penyulitan diterbitkan untuk diaudit (sumber boleh dilihat) bersama model ancaman dan vektor ujian: github.com/jasonbrelsford/cryptile-core.
Bagaimana corak menjadi kunci?
- Corak ditulis sebagai saiz grid diikuti sel yang anda sentuh, mengikut urutan.
- Ia dicampur dengan rahsia peranti 32 bait yang disimpan dalam Keychain iPhone untuk peranti ini sahaja.
- PBKDF2-HMAC-SHA512 dijalankan 600,000 kali ke atasnya. Setiap tekaan memerlukan kerja sebanyak itu.
- HKDF-SHA256 memecahkan hasilnya kepada kunci carian dan kunci pembungkus.
- Kunci carian menamakan fail indeks peti simpanan. Kunci pembungkus membukanya.
Di dalam indeks terdapat kunci induk 256-bit rawak bagi peti simpanan itu. HKDF menjana subkunci berasingan daripadanya untuk fail, imej kecil dan indeks. Tiada kunci digunakan untuk dua tujuan.
Bagaimana fail disulitkan?
Item kecil, seperti imej kecil dan indeks, dimeterai sekali gus dengan AES-256-GCM dan nonce rawak.
Fail besar menggunakan susun atur STREAM dalam ketulan 1 MB. Setiap ketulan mempunyai nonce sendiri dan merekodkan kedudukannya serta sama ada ia yang terakhir. Memotong, menyusun semula atau menukar ketulan menyebabkan penyahsulitan gagal.
GCM juga mengesahkan setiap pengepala, jadi fail yang diubah akan ditolak dan tidak dipaparkan.
Bagaimana saiz dan bilangan peti simpanan disembunyikan?
Setiap blob kecil dan setiap ketulan fail yang terakhir dilapik hingga gandaan 64 KiB. Orang yang menyalin hanya nampak saiz kasar, bukan saiz tepat.
Tiada senarai peti simpanan. Aplikasi ini menyimpan sekurang-kurangnya 8 slot berbentuk indeks, yang sebenar dan umpan, dan menjana semula umpan pada setiap penulisan. Corak yang tidak sepadan dengan mana-mana slot akan membuka peti simpanan kosong.
Bagaimana pemulihan berfungsi?
Setiap peti simpanan mendapat frasa pemulihan 9 perkataan, iaitu 96 bit kerawakan. Ia membuka salinan pemulihan peti simpanan yang berasingan, dimeterai di bawah kunci yang dijana daripada frasa itu.
Sandaran iCloud mencerminkan fail yang disulitkan seadanya. Rahsia peranti tiada di dalamnya secara lalai, jadi sandaran sahaja tidak boleh digunakan untuk meneka corak.
Apa yang disulitkan, dan apa yang tidak?
Disulitkan: foto, video, fail, nota, imej kecil, nama, folder, kegemaran, teks yang dicamkan dan lokasi foto. Fail kecil yang menjejaki umpan dan kiraan pelan percuma dimeterai dengan kunci peranti.
Tidak disulitkan oleh Cryptile:
- Tetapan. Masa kunci automatik, susunan isihan dan suis sandaran tidak mengandungi rahsia.
- Item dikongsi yang menunggu untuk ditambah. Ia berada di bawah perlindungan fail iOS sehingga anda membuka peti simpanan.
- Jumlah saiz bekas dan masa penulisan. Peti simpanan 10 GB tidak kelihatan seperti 10 MB.
- Apa-apa yang anda eksport. Salinan yang disimpan ke Foto atau Fail berada di luar peti simpanan.
Apakah yang dilindungi oleh ini?
- Seseorang yang menyalin fail aplikasi tanpa Keychain anda. Mereka hanya mendapat teks sulit dan tidak boleh mencuba corak.
- Apple, atau pelanggaran data di Apple. iCloud menyimpan teks sulit dan tiada kunci.
- Pengubahan. Data yang diubah atau disusun semula gagal dinyahsulit.
- Kami sendiri. Kami tidak menjalankan pelayan dan tidak memegang kunci, jadi kami tidak boleh menetapkan semula akses.
Apakah yang tidak dilindungi oleh ini?
- Corak pendek. Corak lebih lemah daripada frasa laluan. Dengan fail anda dan Keychain anda, corak 6 sel pada grid 4×4 boleh dipecahkan dalam beberapa minit menggunakan GPU. Gunakan 8 sel atau lebih.
- Perisian hasad pada telefon yang tidak berkunci. Kod yang membaca memori semasa peti simpanan terbuka di luar kemampuan mana-mana aplikasi.
- Orang yang memerhatikan anda melukis. Lukis di tempat yang tiada sesiapa dapat melihat tangan anda.
- Kehilangan telefon dan frasa. Peti simpanan hilang. Tiada penetapan semula.
Corak panik dalam Plus memusnahkan rahsia peranti, jadi tiada peti simpanan pada telefon yang dapat dibuka sehingga dipulihkan.