KRIPTOGRAFI & KEPERCAYAAN

Model keamanan

Bagaimana Revault melindungi data Anda, apa yang diperlukan penyusup untuk membacanya, dan di mana perlindungan tersebut berakhir.

Referensi teknis · Diperbarui Oktober 2026

Perlindungan dimulai sebelum pengunggahan

Konten file, nama file, tipe MIME, thumbnail, nama vault, serta nama dan struktur folder dienkripsi di perangkat Anda sebelum diunggah. Layanan ini menyimpan ciphertext dan kunci yang dibungkus. Penyusup yang hanya memperoleh catatan yang disimpan tersebut tidak memperoleh kunci brankas teks biasa, rahasia perangkat, atau kunci pemulihan Anda.

Hal ini mengasumsikan bahwa browser, sistem operasi, kode aplikasi yang dikirimkan, dan pembuat nomor acak dapat dipercaya saat Anda membuat atau membuka kunci brankas. Enkripsi saat istirahat tidak dapat melindungi brankas yang tidak terkunci dari kode berbahaya yang berjalan di perangkat Anda.

Perangkat AndaTeks biasa & kunci brankas
Enkripsi secara lokalTeks tersandi yang diautentikasi
Penyimpanan terenkripsiTidak ada kunci brankas teks biasa

Kunci independen untuk setiap brankas

Setiap brankas dimulai dengan kunci master AES 256-bit yang dibuat secara acak. Kuncinya dihasilkan oleh generator nomor acak kriptografis browser, bukan diturunkan langsung dari isyarat Anda. Kunci brankas terpisah membatasi efek pengungkapan satu kunci brankas.

Pola perangkat menggabungkan urutan titik yang diurutkan dengan rahasia perangkat 256-bit acak. PBKDF2 dengan HMAC-SHA-256, garam segar 128-bit, dan 600.000 iterasi memperoleh kunci pembungkus 256-bit. AES-256-GCM kemudian mengenkripsi kunci master di bawah kunci pembungkus tersebut. Layanan menerima pembungkus terenkripsi, garamnya, dan parameter derivasi publik. Rahasia perangkat tetap ada di database IndexedDB lokal browser ini.

Pola hanya menggunakan kisi 5 × 5 dan setidaknya enam titik berbeda. Format pola sebelumnya tidak didukung. Vault yang ada memerlukan kunci pemulihannya untuk mendaftarkan pola baru. Ukuran grid bukanlah jaminan kekuatan kata sandi: isyarat yang dapat diprediksi masih lebih mudah ditebak. Rahasia perangkat menambahkan perlindungan terhadap seseorang yang hanya memiliki catatan server, namun bukan kunci yang didukung perangkat keras. Seseorang yang menyalin rahasia lokal dan pembungkusnya dapat mencoba menebak pola offline.

Kunci sandi mengautentikasi akun Anda menggunakan respons tantangan kunci publik. Otentikasi akun tidak memperoleh kunci brankas atau mendekripsi file Anda. Sesi akun yang valid dan pembukaan brankas yang berhasil merupakan persyaratan terpisah dalam alur aplikasi normal.

Parameter kriptografi
TujuanKonstruksi
Kunci utama brankasKunci AES 256-bit acak
Pembungkus kunciPBKDF2-HMAC-SHA-256 · 600.000 iterasi · garam 128-bit → AES-256-GCM
Metadata & gambar miniAES-256-GCM · nonce 96-bit acak · tag otentikasi 128-bit
Derivasi kunci fileHKDF-SHA-256 · garam 256-bit acak per file · keluaran AES 256-bit
Rahasia pemulihan192 bit acak, ditampilkan sebagai enam kelompok karakter heksadesimal

Kerahasiaan dan deteksi kerusakan

Metadata Vault, metadata file, thumbnail, dan kunci gabungan menggunakan AES-256-GCM dengan tag autentikasi 128-bit. Setiap enkripsi independen menggunakan nonce 96-bit acak yang baru. Dekripsi memverifikasi tag sebelum mengembalikan teks biasa; ciphertext yang dimodifikasi atau kunci yang salah menyebabkan otentikasi gagal.

Data tambahan yang diautentikasi mengikat setiap objek terenkripsi ke versi format, pengidentifikasi brankas, pengidentifikasi objek, dan tujuannya. Misalnya, thumbnail dan rekaman metadata file menggunakan konteks yang berbeda. Memindahkan objek terenkripsi ke brankas lain atau menggantinya dengan objek lain akan mengubah konteks yang diautentikasi dan menggagalkan verifikasi.

Konteks yang diautentikasi tidak menyembunyikan pengidentifikasi dan tidak membuktikan kesegaran. Catatan lama yang valid masih dapat memiliki tag yang valid. Pemeriksaan revisi aplikasi mendeteksi pembaruan serentak biasa, namun ini bukan pertahanan kriptografi terhadap layanan jahat yang mengulangi keadaan lama secara lengkap.

File besar menggunakan segmen yang diautentikasi

Konten file menggunakan konstruksi streaming AES-256-GCM-HKDF-SHA-256 yang dijelaskan oleh Tink, diimplementasikan menggunakan primitif kriptografi browser. Setiap aliran file baru memiliki header 40-byte yang berisi penanda panjangnya, garam acak 32-byte, dan awalan nonce acak 7-byte.

HKDF memperoleh kunci enkripsi file terpisah dari kunci master brankas. Konteksnya mencakup pengidentifikasi vault dan file, panjang byte teks biasa, dan ukuran segmen yang dikonfigurasi. Nonce 12 byte setiap segmen menggabungkan awalan acak, penghitung segmen empat byte, dan tanda segmen akhir. Segmen membawa tag GCM 128-bit.

Aplikasi memproses file dalam segmen terbatas sekitar 5 MiB. Posisi segmen, tanda segmen akhir, dan panjang byte yang diharapkan membuat segmen yang ditukar, diubah, atau terpotong gagal dalam verifikasi. Unduhan mengautentikasi setiap segmen sebelum merilisnya; kesalahan di akhir streaming dapat menyebabkan pengunduhan tidak selesai, jadi penyelesaian yang berhasil itu penting. Percobaan ulang unggahan menggunakan kembali byte yang sudah dienkripsi daripada mengenkripsi konten baru dengan nonce segmen yang sama.

Konstruksinya mengikuti Spesifikasi streaming Tink AES-GCM-HKDF. Implementasi dan konfigurasi segmen Revault belum diaudit atau disertifikasi secara independen oleh Tink.

Pemulihan adalah jalur kedua menuju kunci yang sama

Rahasia pemulihan dihasilkan dari 24 byte acak, memberikan 192 bit masukan acak. Ini secara independen memperoleh kunci pembungkus menggunakan PBKDF2-HMAC-SHA-256 dan garamnya sendiri, dan mengenkripsi kunci master brankas yang sama dengan AES-256-GCM. Siapa pun yang memperoleh rahasia pemulihan dan salinan brankas terenkripsi dapat mendekripsi brankas tersebut.

Rahasia pemulihan ditampilkan selama pengaturan dan tidak disimpan oleh layanan dalam teks biasa. Simpan secara terpisah dari file terenkripsi Anda. Menghapus data browser akan menghapus rahasia perangkat; memulihkan akses memerlukan salinan cloud terenkripsi dan kunci pemulihan akun Anda, atau cadangan terenkripsi yang diekspor dan kunci pemulihannya. Tidak ada kunci dekripsi master yang dimiliki penyedia.

Kit pemulihan berisi rahasia dan pembungkus kunci, tetapi tidak ada konten file. Cadangan terenkripsi berisi inventaris terotentikasi dan segmen file terenkripsi, tanpa rahasia perangkat browser. Impor memverifikasi data terenkripsi dan membuat brankas baru dengan pengidentifikasi dan kunci baru.

Mengubah pola akan menggantikan pembungkus perangkat ini. Itu tidak merotasi kunci master vault, mencabut perangkat lain, membatalkan cadangan lama, atau mengubah rahasia pemulihan yang ada. Jika kunci brankas atau rahasia pemulihan disusupi, pindahkan data ke brankas baru dengan kunci baru.

Berbagi memberikan akses ke satu file

Berbagi tersedia untuk unggahan cloud Revault yang telah selesai. Browser memperoleh kunci streaming file yang dipilih dan menempatkannya, deskriptor alirannya, dan metadata file dalam amplop AES-256-GCM terpisah. Pengidentifikasi folder dan kunci master brankas tidak termasuk. Rahasia 256-bit acak baru mengenkripsi amplop ini; penerima tidak dapat memperoleh kunci file lain darinya.

Fragmen tautan berisi rahasia dekripsi dan token akses 256-bit acak yang terpisah. Fragmen tidak dikirim dalam URL HTTP. Browser penerima mengirimkan token akses dalam header permintaan; layanan membandingkan hash SHA-256 dengan hash kemampuan yang disimpan. Layanan ini menyimpan amplop kedua yang dienkripsi dengan kunci brankas sehingga pemilik dapat mengelola tautannya nanti. Ia tidak pernah menerima kunci file teks biasa atau rahasia dekripsi tautan melalui permintaan ini.

Siapa pun yang memegang tautan lengkap dapat mengunduh file itu tanpa akun. Lindungi tautan seperti rahasia: konten papan klip, riwayat browser, dan pesan dapat mengungkapnya. Tautan kedaluwarsa setelah satu jam, satu hari, atau tujuh hari. Layanan ini memeriksa masa berlaku, pencabutan, ketersediaan file, dan penangguhan pemilik pada setiap permintaan metadata dan potongan. Pencabutan tidak dapat menarik kembali byte yang sudah diunduh atau menghentikan penerima yang menyimpan teks sandi dan kunci filenya. Safe Exit menghapus akses lokal; itu tidak mencabut tautan berbagi cloud.

Berbagi asli menggunakan enkripsi independen

Berbagi seluler secara bawaan membungkus kunci versi berkas terpilih dengan kunci berbagi baru dan memakai ulang byte berkas terenkripsi. Isolasi tambahan opsional mengenkripsi ulang berkas. Kunci brankas sumber tetap privat. Ciphertext identik dapat menghubungkan beberapa pembagian; kedua mode tidak dapat menarik salinan yang disimpan penerima.

iOS dapat menempatkan ciphertext ini dalam hierarki rekaman CloudKit terpisah dengan undangan pribadi dan hanya baca. Itu tidak berbagi zona sinkronisasi brankas. Pembagian asli lintas platform menggunakan bagian server terikat dengan checksum SHA-256. Kemampuan baca dan manajemen 256-bit acak independen disimpan sebagai hash di server. Rahasia dekripsi diteruskan secara terpisah dan tidak pernah diunggah. Saham yang dikendalikan akan kedaluwarsa pada waktu yang dipilih pengirim, dalam waktu 30 hari. Layanan ini secara atom menghitung sesi akses dan menerapkan batas maksimum, masa berlaku, dan pencabutan yang dipilih. Sesi pengunduhan berlangsung paling lama 15 menit dan tidak pernah melampaui masa berlaku berbagi.

Penerima mengautentikasi setiap segmen terenkripsi dan membuka brankas bersama yang terisolasi dengan rahasia terpisah dari pengirim. Tidak diperlukan akun, brankas pribadi, atau pola. Gudang pribadi tetap terkunci. Jika ekspor diperbolehkan, penerima dapat menyimpan salinan .qvault terenkripsi yang dibuka dengan rahasia berbagi tersebut. Jika tidak, kontrol ekspor tidak ada. Sesi sementara memvalidasi akses yang sedang berlangsung. Ini adalah kontrol aplikasi: tangkapan layar, klien yang dimodifikasi, dan salinan yang disimpan tidak dapat dicegah secara kriptografis. Berbagi adalah snapshot tanpa pembaruan sumber berkelanjutan. Undangan CloudKit yang tidak dibatasi tidak menerapkan penghitungan akses atau habis masa berlaku otomatis; akses berlangsung hingga pemilik berhenti berbagi. Menghapus salinan asli tidak berarti mencabut bagian terpisahnya, dan tidak ada pencabutan yang dapat menarik kembali salinan yang sudah disimpan.

Batas waktu setelah akses pertama

Pengirim dapat mengaktifkan pengatur waktu penghancuran terpisah. Ini dimulai secara atomik ketika sesi akses server pertama diberikan, bahkan jika transfer atau dekripsi kemudian gagal. Setiap sesi selanjutnya memiliki tenggat waktu yang sama; membuka kembali tidak pernah mengatur ulangnya. Berlaku masa berlaku tetap, waktu pemusnahan, dan masa berlaku sesi paling awal. Pada tenggat waktu, layanan menolak pembacaan lebih lanjut dan mengantri teks sandi untuk dihapus, sementara penampil asli menutup dan melepaskan kunci berbagi dan file sementara. Pembersihan bersifat asinkron dan tidak dapat menghapus tangkapan layar, data simpanan klien yang dimodifikasi, atau salinan yang diekspor sebelumnya.

Aktivitas brankas opsional

Log audit asli dinonaktifkan secara default dan dikonfigurasikan per brankas di setiap perangkat. 500 peristiwa lokal terbaru dienkripsi dengan kunci utama brankas dan konteks khusus yang diautentikasi. Mereka mengecualikan kunci, pola, konten file, dan data brankas lainnya, tidak disinkronkan, dan dapat dihapus atau dinonaktifkan. Itu bukan bukti yang dapat dirusak. Pembukaan kunci yang gagal tidak ditetapkan ke brankas.

Pembagian terkontrol baru yang dibuat dengan logging diaktifkan mempertahankan hingga 100 stempel waktu sesi akses pada layanan berbagi. Hanya kemampuan manajemen yang dapat mengambilnya; log tidak berisi identitas penerima atau rahasia dekripsi. Menonaktifkan logging lokal akan memengaruhi pembagian di masa mendatang. Log berbagi yang ada mempertahankan pengaturan aslinya hingga pencabutan atau habis masa berlakunya dan pembersihan.

Foto pembobolan terenkripsi opsional

Pemilik dapat mengaktifkan Peringatan Pembobolan secara terpisah untuk setiap brankas di setiap perangkat. Setelah tiga pola yang tidak cocok, aplikasi latar depan dapat mengambil foto kamera depan, tergantung pada izin, ketersediaan kamera, dan waktu tunggu satu menit. Indikator kamera sistem tetap terlihat. Sepuluh peringatan terbaru disimpan secara lokal dan tidak pernah ditambahkan ke Foto atau diunggah. Pola yang tidak cocok tidak mengidentifikasi brankas target, sehingga setiap brankas yang diikutsertakan menerima catatan upaya perangkat terenkripsi secara terpisah.

Kunci publik RSA-3072 khusus membungkus kunci 256-bit AES-GCM baru untuk setiap peringatan menggunakan OAEP dengan SHA-256 dan MGF1-SHA-256. Ini memungkinkan enkripsi saat brankas terkunci. Kunci pribadi yang sesuai dienkripsi sendiri di bawah kunci utama brankas tersebut dengan konteks khusus yang diautentikasi. Hanya membuka kunci brankas itu yang dapat mendekripsi foto-fotonya. Peringatan muncul dalam tampilan auditnya secara independen dari pencatatan aktivitas biasa dan dapat dihapus dalam pengaturan Peringatan Pembobolan. Itu bukan bukti yang dapat dirusak.

Unggahan terenkripsi ke keranjang Anda sendiri

Pengaturan Penyimpanan vault dapat menghubungkan browser ini langsung ke titik akhir HTTPS kompatibel S3 yang ditentukan pengguna. File perangkat yang dipilih dienkripsi secara lokal menggunakan konstruksi file yang sama. Masing-masing menjadi objek .qvault portabel terpisah yang berisi inventaris terenkripsi yang diautentikasi dan kunci brankas yang dibungkus. Nama objek acak menghindari pemaparan nama file asli. Pemulihan memerlukan objek yang diunduh dan kunci pemulihan brankas.

Konfigurasi dan kredensial titik akhir dienkripsi di bawah kunci master vault dengan konteks terautentikasi khusus dan disimpan di IndexedDB perangkat ini. Mereka tidak disinkronkan atau dikirim ke API Revault. Penandatanganan permintaan menggunakan AWS Signature Version 4, HMAC-SHA-256, dan hash dari setiap badan permintaan yang dibatasi. Bagian multi-MiB delapan membawa byte yang sudah dienkripsi langsung ke penyedia penyimpanan. Akses bucket tetap diatur oleh izin penyedia dan kebijakan CORS tersebut.

Penyedia dapat melihat pengidentifikasi kunci akses, jalur objek, ukuran byte, waktu unggah, dan informasi koneksi. Jaga privasi bucket dan kredensialnya tercakup dalam operasi yang diperlukan. Objek yang diunggah tidak bergantung pada sinkronisasi dan berbagi cloud Revault. Mengunci atau membatalkan upaya untuk membatalkan unggahan yang belum selesai; Penutupan tab atau hilangnya konektivitas dapat menyebabkan bagian menjadi tidak terpakai, jadi konfigurasikan aturan siklus hidup unggahan yang tidak lengkap. Safe Exit menghapus kredensial penyimpanan lokal vault lain tetapi tidak menghapus objek dari bucketnya.

Safe Exit menghapus akses lokal

Anda dapat menetapkan satu brankas di browser ini sebagai brankas Safe Exit. Memasuki pola brankas akan membukanya secara normal, tanpa konfirmasi pemicu atau pemberitahuan penyelesaian. Snapshot lokal vault lain, potongan terenkripsi, rahasia perangkat, dan perubahan antrean akan dihapus. Data yang tidak disinkronkan bisa hilang.

Batas lokal yang persisten mencegah brankas tersebut dicantumkan atau dipulihkan secara otomatis melalui sinkronisasi di browser ini. Salinan cloud terenkripsi dan salinan di perangkat lain tetap tidak berubah. Pemulihan bersifat eksplisit, satu brankas dalam satu waktu, dan memerlukan kunci pemulihan brankas tersebut sebelum pola perangkat baru dapat didaftarkan.

Ini adalah penghapusan akses lokal, bukan jaminan penghapusan fisik atau penyembunyian forensik. Profil browser, snapshot sistem file, unduhan sebelumnya, tangkapan layar, catatan layanan, dan perangkat lain dapat menyimpan bukti. Menghapus data lokal browser ini juga menghapus batas isolasi lokal; instalasi baru dapat mencantumkan kembali brankas cloud akun setelah autentikasi.

Yang masih terlihat

Enkripsi melindungi konten, tidak semua fakta tentang penyimpanan. Layanan ini dapat mengamati asosiasi akun, pengidentifikasi objek acak, jumlah objek, ukuran byte, revisi, stempel waktu, pembungkus terenkripsi, header aliran, dan aktivitas permintaan. Catatan jaringan dan operasional dapat mengungkapkan informasi koneksi. Ini bukan sistem anonimitas dan tidak memberikan hambatan analisis lalu lintas.

Enkripsi transportasi melindungi permintaan dalam transit ketika aplikasi disajikan melalui HTTPS. Ini terpisah dari enkripsi sisi klien yang menjaga konten file tersimpan terenkripsi di layanan.

Dimana perlindungan berakhir

Penjelajahan pribadi biasanya menghapus penyimpanan lokal ketika sesi pribadi berakhir. Permintaan penyimpanan persisten tidak membuat sesi penyamaran menjadi permanen. Salinan cloud yang disinkronkan tetap ada, namun pola lokal, perubahan yang tidak disinkronkan, file cache, dan pengaturan Safe Exit dapat hilang. Sesi pribadi baru memerlukan akses akun dan kunci pemulihan Anda untuk mendaftarkan pola baru.

Aplikasi menghapus referensi kunci brankas dalam memori dan mencabut URL pratinjau pribadi saat terkunci. Secara otomatis terkunci ketika disembunyikan atau setelah lima menit tidak ada aktivitas. Aplikasi asli juga terkunci saat berada di latar belakang, menghapus pratinjau sementara, dan menghapus buffer kunci yang dimiliki saat pengoperasian selesai. Manajemen memori browser, Swift, dan JVM tidak dapat menjamin penghapusan segera setiap salinan kunci atau buffer media yang didekodekan.

Malware, ekstensi yang tidak aman, kode aplikasi yang disusupi, atau seseorang yang melihat layar tidak terkunci dapat menangkap teks biasa dan rahasia. Enkripsi tidak dapat mencegah penolakan layanan akun, penghapusan objek cloud, ransomware, hilangnya rahasia pemulihan, atau layanan yang menahan data. Simpan cadangan terenkripsi terpisah dan lindungi perangkat itu sendiri.

Revault belum menjalani audit keamanan independen. Ini adalah deskripsi desain kriptografi yang diterapkan, bukan sertifikasi atau jaminan terhadap setiap intrusi.

Keamanan dan arsitektur