Apa itu Enkripsi Sisi Klien?
Enkripsi sisi klien adalah praktik mengenkripsi data di perangkat pengguna — biasanya di browser atau aplikasi native — sebelum mengirimkannya ke server, memastikan server hanya menerima dan menyimpan data terenkripsi.
Enkripsi sisi klien adalah mekanisme teknis yang memungkinkan sistem zero-knowledge dan end-to-end encrypted. Dengan melakukan enkripsi sebelum data meninggalkan perangkat pengguna, plaintext tidak pernah melintasi jaringan dan tidak pernah ada di server. Ini secara bersamaan melindungi dari pencegatan jaringan, pelanggaran server, dan ancaman orang dalam.
Dalam aplikasi web, enkripsi sisi klien biasanya mengandalkan Web Crypto API, antarmuka native browser untuk operasi kriptografi. Ini lebih disukai dibanding library kriptografi JavaScript karena Web Crypto API menjalankan kode native yang dikompilasi, tahan terhadap serangan timing, dan mendapat manfaat dari akselerasi hardware pada perangkat modern.
Tradeoff utama enkripsi sisi klien adalah server tidak dapat memproses atau mencari data terenkripsi. Fitur seperti pencarian sisi server, analisis konten, atau transformasi data menjadi tidak mungkin karena server benar-benar tidak dapat membaca data. Untuk berbagi rahasia, tradeoff ini ideal — server hanya perlu menyimpan blob dan menegakkan aturan akses, bukan memahami kontennya.
Cara Vaulted menggunakan Enkripsi Sisi Klien
Setiap rahasia yang dibagikan melalui Vaulted dienkripsi di sisi klien menggunakan Web Crypto API sebelum browser membuat permintaan jaringan apa pun. Browser menghasilkan kunci AES-256-GCM acak, mengenkripsi plaintext, dan hanya mengirimkan ciphertext dan IV yang dihasilkan ke server. Kunci enkripsi ditempatkan di fragmen URL, yang tidak pernah disertakan browser dalam permintaan HTTP. Ini berarti plaintext hanya ada di memori browser pengirim dan penerima — tidak pernah di jaringan, tidak pernah di server.