Apa Itu Enkripsi Zero-Knowledge? Panduan Sederhana

Apa Itu Enkripsi Zero-Knowledge? Panduan Sederhana

Enkripsi zero-knowledge berarti penyedia tidak dapat mengakses data Anda.

Enkripsi zero-knowledge adalah arsitektur kriptografi di mana penyedia layanan tidak dapat mengakses data pengguna karena kunci enkripsi diturunkan dan disimpan secara eksklusif di perangkat pengguna dan tidak pernah dikirimkan ke server penyedia. Berbeda dari enkripsi cloud standar di mana penyedia memegang kunci, enkripsi zero-knowledge berarti bahkan dengan perintah pengadilan, pelanggaran data, atau karyawan nakal, penyedia tidak memiliki apa pun untuk diserahkan. Panduan NIST tentang manajemen kunci (SP 800-57) menetapkan prinsip bahwa kepemilikan kunci menentukan akses data — enkripsi zero-knowledge membawa ini ke kesimpulan logisnya.

Cara Kerja Enkripsi Zero-Knowledge

Analogi paling sederhana: brankas hotel di mana hanya Anda yang mengatur kombinasinya, dan hotel tidak pernah mengetahuinya. Jika Anda lupa kombinasinya, hotel tidak dapat membuka brankas untuk Anda. Itu bukan cacat dalam desain. Itulah desainnya.

Secara teknis, enkripsi zero-knowledge bekerja melalui tiga langkah:

  1. Derivasi kunci di perangkat. Pengguna memberikan kredensial (kata sandi, frasa sandi, atau pola). Fungsi derivasi kunci (biasanya PBKDF2 atau Argon2) menggabungkan kredensial ini dengan garam kriptografi unik untuk menghasilkan kunci enkripsi. Ini terjadi sepenuhnya di perangkat pengguna.

  2. Enkripsi sebelum transmisi. Semua data dienkripsi di perangkat menggunakan kunci yang diturunkan sebelum meninggalkan perangkat ke penyimpanan cloud atau cadangan. Output terenkripsi (ciphertext) adalah yang diunggah.

  3. Penyedia tidak pernah melihat kunci. Kunci enkripsi hanya ada di memori perangkat selama penggunaan aktif. Tidak pernah dikirimkan ke server penyedia. Penyedia menyimpan blob terenkripsi yang tidak dapat dibedakan dari data acak.

Batasan kritis: jika pengguna kehilangan kredensial dan tidak memiliki frasa pemulihan, data tidak dapat diakses secara permanen. Tidak ada alur "lupa kata sandi" yang bekerja tanpa mekanisme pemulihan yang disimpan secara independen. Jika sebuah layanan menawarkan reset kata sandi melalui email dan data Anda muncul kembali, layanan tersebut tidak menggunakan enkripsi zero-knowledge. Ini memegang kunci Anda.

Enkripsi Zero-Knowledge vs Jenis Enkripsi Lain

Istilah "enkripsi" muncul dalam materi pemasaran hampir setiap layanan cloud. Perbedaan antara jenisnya sangat besar.

Jenis Siapa yang Memegang Kunci Penyedia Dapat Membaca Data Bertahan dari Pelanggaran Penyedia Contoh
Tidak ada enkripsi N/A Ya Tidak Dropbox (tingkat standar)
Enkripsi dalam transit (TLS) Penyedia Ya (saat tersimpan di server mereka) Tidak Google Photos
Enkripsi sisi server saat tersimpan Penyedia Ya (mereka memegang kunci dekripsi) Sebagian (tergantung cakupan pelanggaran) iCloud (standar)
Enkripsi E2E yang dikelola penyedia Penyedia membuat, pengguna menyimpan Secara teknis tidak, tetapi penyedia memiliki akses saat pembuatan kunci Sebagian iCloud Advanced Data Protection
Enkripsi zero-knowledge Hanya pengguna (diturunkan di perangkat) Tidak. Secara matematis tidak mungkin. Ya. Blob terenkripsi tidak berguna tanpa kunci pengguna. Signal, Proton Mail, Vaultaire

Perbedaan antara "enkripsi saat tersimpan" dan "enkripsi zero-knowledge" adalah yang paling sering dikacaukan. Dengan enkripsi saat tersimpan, penyedia mengenkripsi data Anda di server mereka menggunakan kunci yang mereka kendalikan. Ini melindungi dari pencurian fisik perangkat keras server. Ini tidak melindungi dari penyedia yang membaca data Anda, subpoena pemerintah untuk data dan kunci, atau ancaman orang dalam. Penyedia memiliki kemampuan dekripsi.

Dengan enkripsi zero-knowledge, penyedia tidak pernah memiliki kemampuan dekripsi. Data terenkripsi di server mereka sama tidak jelas bagi mereka seperti bagi penyerang eksternal mana pun.

Mengapa Enkripsi Zero-Knowledge Penting

Pelanggaran Data Mengekspos Miliaran Catatan Setiap Tahun

Pusat Sumber Daya Pencurian Identitas melaporkan 3.205 kompromi data di Amerika Serikat pada 2023, mempengaruhi sekitar 353 juta individu. Ketika penyedia yang memegang kunci enkripsi dilanggar, penyerang berpotensi mendapatkan akses ke data terenkripsi dan kunci untuk mendekripsinya. Arsitektur zero-knowledge sepenuhnya menghilangkan risiko ini. Server yang dilanggar hanya berisi ciphertext yang secara komputasional tidak dapat didekripsi.

Paksaan Hukum adalah Ancaman Nyata

Lembaga pemerintah di berbagai yurisdiksi dapat memaksa penyedia untuk menyerahkan data yang tersimpan. Jika penyedia memegang kunci enkripsi, mereka harus mematuhi. Di bawah arsitektur zero-knowledge, respons penyedia terhadap subpoena adalah blob terenkripsi, yang tidak berguna tanpa kredensial pengguna.

"Percayai Kami" Bukan Arsitektur Keamanan

Enkripsi standar bergantung pada janji penyedia untuk tidak mengakses data Anda. Enkripsi zero-knowledge menggantikan janji itu dengan jaminan matematis. Penyedia tidak dapat mengakses data bahkan jika mereka ingin, bahkan jika seorang karyawan bertindak jahat, bahkan jika mereka diakuisisi oleh perusahaan dengan nilai privasi yang berbeda. Arsitektur memberlakukan batasan.

Standar NIST di Balik Kriptografi

AES-256-GCM, sandi yang paling umum digunakan dalam implementasi zero-knowledge, distandarisasi oleh National Institute of Standards and Technology dalam SP 800-38D (2007). AES sendiri dipilih oleh NIST melalui kompetisi publik pada 2001, menggantikan standar DES yang sudah tua. "256" mengacu pada panjang kunci dalam bit — kunci 256-bit memiliki 2^256 nilai yang mungkin, angka yang begitu besar sehingga memaksa dengan kasar akan memerlukan lebih banyak energi dari yang akan dihasilkan matahari dalam sisa hidupnya.

GCM (Galois/Counter Mode) menambahkan enkripsi yang diautentikasi, yang berarti proses dekripsi mendeteksi perusakan apa pun pada ciphertext. Jika satu bit data terenkripsi diubah, dekripsi gagal daripada menghasilkan output yang rusak. Ini mencegah penyerang memanipulasi data terenkripsi tanpa deteksi.

PBKDF2 (Password-Based Key Derivation Function 2), yang ditentukan dalam RFC 8018, mengubah kredensial yang diberikan manusia menjadi kunci kriptografi melalui hashing berulang. Menjalankan fungsi hash ratusan ribu kali membuat setiap tebakan kata sandi mahal secara komputasional, mengubah pola atau kata sandi sederhana menjadi kunci yang tahan terhadap serangan brute-force.

Cara Vaultaire Mengimplementasikan Enkripsi Zero-Knowledge

Vaultaire adalah aplikasi vault untuk iPhone yang dibangun di atas arsitektur zero-knowledge. Berikut cara implementasinya di setiap lapisan.

Derivasi kunci. Pengguna menggambar pola pada kisi 5x5 dari 25 titik. Urutan titik secara berurutan dimasukkan ke PBKDF2 dengan HMAC-SHA512 dan garam kriptografi unik per-vault. Outputnya adalah kunci enkripsi AES 256-bit. Pola tidak pernah disimpan di perangkat. Bukan sebagai hash, bukan sebagai representasi, bukan dalam bentuk apa pun.

Enkripsi file. Setiap file yang diimpor dienkripsi dengan AES-256-GCM menggunakan kunci yang diturunkan dan vektor inisialisasi (IV) yang dihasilkan secara acak unik untuk file tersebut. File yang identik menghasilkan ciphertext yang berbeda karena IV berbeda.

Enkripsi metadata. Nama file, tanggal pembuatan, dan data thumbnail dienkripsi secara terpisah menggunakan ChaCha20, sandi berbeda yang menyediakan keragaman kriptografi dan menghilangkan serangan saluran samping cache-timing.

Manajemen kunci. Apple Secure Enclave menyimpan materi kunci dalam coprocessor perangkat keras khusus dengan memori terenkripsi sendiri. Kunci dihapus dari memori aplikasi saat Vaultaire ditutup atau pengguna beralih.

Tidak ada registry vault. Tidak ada database yang mencantumkan vault, tidak ada hitungan, tidak ada nama. Setiap pola membuka vault berbeda. Aplikasi itu sendiri tidak dapat menentukan berapa banyak vault yang ada. Lihat arsitektur keamanan lengkap dan penjelasan enkripsi pola.

Cara Mengetahui Apakah Aplikasi Menggunakan Enkripsi Zero-Knowledge yang Nyata

Tiga pengujian yang membutuhkan kurang dari satu menit:

  1. Pengujian lupa kata sandi. Jika aplikasi dapat mereset kata sandi Anda melalui email dan data Anda muncul kembali, aplikasi memegang kunci enkripsi Anda. Bukan zero-knowledge.

  2. Pengujian perangkat baru. Jika Anda masuk di perangkat baru dan data Anda muncul tanpa mentransfer kunci dari perangkat lama atau memasukkan frasa pemulihan, server memiliki kunci Anda. Bukan zero-knowledge.

  3. Pengujian akun. Jika aplikasi memerlukan alamat email atau nomor telepon, penyedia memiliki tautan antara identitas dan data Anda. Ini belum tentu mendiskualifikasi, tetapi dikombinasikan dengan salah satu di atas, ini mengonfirmasi penyedia dapat mengakses data Anda.

Aplikasi yang lulus ketiga pengujian: Signal, Proton Mail, Standard Notes, Vaultaire. Aplikasi yang gagal setidaknya satu: sebagian besar layanan penyimpanan cloud, sebagian besar aplikasi "vault" di App Store.

Pertanyaan yang Sering Diajukan

Apakah enkripsi zero-knowledge sama dengan enkripsi ujung ke ujung?

Keduanya tumpang tindih tetapi tidak identik. Enkripsi ujung ke ujung (E2EE) berarti data dienkripsi di perangkat pengirim dan hanya didekripsi di perangkat penerima. Enkripsi zero-knowledge berarti penyedia tidak dapat mengakses data. Sebuah layanan bisa menggunakan E2EE tanpa zero-knowledge jika penyedia membuat atau memiliki akses ke kunci pada suatu titik. Enkripsi zero-knowledge adalah standar yang lebih ketat.

Apa yang terjadi jika saya kehilangan kata sandi dengan enkripsi zero-knowledge?

Data Anda menjadi tidak dapat diakses secara permanen. Tidak ada kunci utama, tidak ada pintu belakang, dan tidak ada proses pemulihan yang bekerja tanpa frasa pemulihan yang disimpan secara terpisah. Inilah trade-off mendasar: privasi mutlak memerlukan tanggung jawab mutlak. Beberapa aplikasi zero-knowledge (termasuk Vaultaire) menghasilkan frasa pemulihan saat pembuatan vault yang dapat meregenerasi kunci enkripsi jika kredensial utama hilang.

Bisakah penegak hukum mengakses data terenkripsi zero-knowledge?

Penegak hukum dapat memaksa penyedia untuk menyerahkan data yang tersimpan. Dengan enkripsi zero-knowledge, data yang diserahkan penyedia adalah blob terenkripsi yang tidak berguna tanpa kunci pengguna. Apakah penegak hukum dapat memaksa pengguna untuk memberikan kunci adalah pertanyaan hukum terpisah yang bervariasi berdasarkan yurisdiksi.

Apakah enkripsi zero-knowledge lebih lambat dari enkripsi biasa?

Operasi enkripsi dan dekripsi identik. AES-256-GCM berjalan dengan kecepatan yang sama terlepas dari siapa yang memegang kunci. Biaya tambahan satu-satunya adalah derivasi kunci: menjalankan PBKDF2 dengan ratusan ribu iterasi membutuhkan sekitar 0,5-2 detik di iPhone modern. Ini terjadi sekali saat vault dibuka, bukan per file. Dalam praktiknya, pengguna tidak memperhatikan perbedaan kecepatan.

Apakah zero-knowledge berarti aplikasi tidak mengumpulkan data sama sekali?

Tidak harus. Zero-knowledge mengacu secara khusus pada arsitektur enkripsi. Penyedia tidak dapat mengakses konten terenkripsi. Aplikasi mungkin masih mengumpulkan analitik anonim, laporan kerusakan, atau metadata penggunaan jika pengguna mengizinkan. Yang tidak dapat dikumpulkannya adalah konten file terenkripsi, kunci enkripsi, atau kredensial yang digunakan untuk menurunkannya. Kebijakan privasi Vaultaire merinci dengan tepat data opsional apa yang dikumpulkan dengan izin pengguna.

Bagaimana enkripsi zero-knowledge dibandingkan dengan Advanced Data Protection Apple?

Advanced Data Protection (ADP) Apple, yang diperkenalkan di iOS 16.2, memperluas enkripsi ujung ke ujung ke sebagian besar kategori data iCloud. Dengan ADP diaktifkan, Apple tidak dapat mengakses data yang dilindungi. Perbedaan utama dari aplikasi vault zero-knowledge khusus: ADP perlu diaktifkan (nonaktif secara default), memerlukan Apple ID, dan hanya melindungi data dalam ekosistem Apple. Aplikasi vault zero-knowledge seperti Vaultaire bekerja secara independen dari infrastruktur Apple, tidak memerlukan akun, dan menambahkan fitur seperti penyangkalan yang masuk akal dan mode paksaan yang tidak disediakan ADP.

Ringkasan

Enkripsi zero-knowledge adalah arsitektur di mana penyedia secara matematis tidak dapat mengakses data pengguna karena kunci enkripsi tidak pernah meninggalkan perangkat pengguna. Ini berbeda dari enkripsi standar, enkripsi saat tersimpan, dan bahkan beberapa bentuk enkripsi ujung ke ujung dalam satu cara yang kritis: ketidakmampuan penyedia untuk mengakses data diberlakukan oleh matematika, bukan kebijakan. Trade-off — kehilangan kunci berarti kehilangan data — bukan cacat. Itulah mekanisme yang membuat jaminan menjadi nyata.

Baca arsitektur keamanan