Mengapa Enkripsi Sisi Klien Penting untuk Berbagi Rahasia
Oleh Maxim Novak
Enkripsi sisi klien penting untuk berbagi rahasia karena memastikan server tidak pernah melihat data plaintextmu. Dengan enkripsi sisi server, layanan bisa membaca rahasiamu — begitu juga siapa pun yang berhasil mengkompromikan infrastruktur mereka. Alat sisi klien seperti Vaulted mengenkripsi data di browsermu menggunakan AES-256-GCM sebelum apa pun dikirimkan.
Masalah enkripsi sisi server
Alat berbagi rahasia tradisional mengikuti alur ini:
- Kamu mengetik rahasiamu ke dalam formulir
- Browsermu mengirim plaintext ke server
- Server mengenkripsinya dan menyimpan ciphertext
- Sebuah tautan dibuat untuk penerima
Masalahnya ada di langkah 2. Rahasiamu melewati jaringan dalam bentuk plaintext (dilindungi TLS, namun sepenuhnya terlihat oleh server). Layanan tersebut memiliki akses ke datamu, meski hanya sebentar.
Ini berarti:
- Server yang terkompromikan membocorkan setiap rahasia dalam transit — sebuah pelanggaran data yang tinggal menunggu waktu
- Karyawan layanan secara teori dapat mengakses datamu
- Penegak hukum atau permintaan hukum bisa memaksa layanan untuk menyerahkan rahasia
- Log server mungkin secara tidak sengaja merekam data plaintext
Bagaimana enkripsi sisi klien menyelesaikan ini
Vaulted mengambil pendekatan yang berbeda. Enkripsi terjadi sepenuhnya di browsermu:
- Kamu mengetik rahasiamu ke dalam formulir
- Browsermu membuat kunci AES-256-GCM dan mengenkripsi rahasia secara lokal
- Hanya ciphertext terenkripsi yang dikirim ke server
- Kunci enkripsi ditempatkan di URL fragment (
#), yang tidak pernah dikirim browser ke server
Server hanya pernah melihat data terenkripsi. Server tidak dapat mendekripsi rahasiamu karena tidak pernah memiliki kuncinya.
Mengapa URL fragment itu penting
URL fragment — segala sesuatu setelah simbol # — memiliki sifat khusus: browser tidak menyertakannya dalam permintaan HTTP. Ketika seseorang membuka tautan Vaulted-mu, fragment tetap berada di browser mereka. Server menerima permintaan untuk ID rahasia tetapi tidak pernah melihat kunci dekripsi.
Ini bukan protokol khusus atau solusi sementara. Begitulah cara browser selalu bekerja, sebagaimana didefinisikan dalam RFC 3986.
Apa artinya ini dalam praktik
Dengan enkripsi sisi klien, bahkan jika server Vaulted sepenuhnya dikompromikan sekalipun, penyerang hanya akan mendapatkan blob terenkripsi — tidak berguna tanpa kunci yang hanya ada di tautan yang telah dibagikan. Inilah prinsip inti dari arsitektur zero-knowledge.
Tidak perlu kepercayaan. Kriptografinya berbicara sendiri.
Siap berbagi rahasia dengan aman? Coba Vaulted — gratis.
Terkait
- Apa itu Enkripsi Sisi Klien? — definisi lengkap dalam glosarium
- Encryption Playground — saksikan enkripsi AES-256-GCM langkah demi langkah
- Apa itu Arsitektur Zero-Knowledge? — mengapa server tidak pernah bisa membaca datamu