Enkripsi adalah proses mengubah data menjadi bentuk yang tidak bisa dibaca tanpa kunci yang tepat. Ia bekerja di banyak tempat sekaligus tanpa terlihat: saat Anda membuka website, saat mengirim pesan, dan saat data tersimpan di server.
Cara Kerja Dasarnya
Enkripsi mengambil data asli, mengolahnya dengan sebuah kunci, dan menghasilkan data acak yang hanya bisa dikembalikan oleh pihak yang punya kunci yang sesuai.
Yang menentukan keamanannya bukan kerahasiaan metodenya — algoritma enkripsi modern justru terbuka dan diperiksa publik — melainkan kerahasiaan kuncinya. Metode yang kekuatannya bergantung pada tidak diketahuinya cara kerja justru dianggap lemah.
Dua Jenis Utama
Perbedaannya terletak pada apakah kunci untuk mengunci dan membuka itu sama atau berbeda.
- Enkripsi simetris. Satu kunci yang sama dipakai untuk mengunci dan membuka. Cepat dan efisien, cocok untuk data dalam jumlah besar. Masalahnya satu: kunci itu harus sampai ke penerima tanpa disadap.
- Enkripsi asimetris. Memakai sepasang kunci — kunci publik untuk mengunci, kunci privat untuk membuka. Kunci publik boleh disebar bebas; hanya pemegang kunci privat yang bisa membukanya. Lebih lambat, tetapi menyelesaikan masalah pengiriman kunci.
Dalam praktik keduanya dipakai bersama. Ketika browser membuka koneksi https, enkripsi asimetris dipakai di awal untuk menyepakati kunci bersama, lalu sisa percakapan dienkripsi secara simetris karena jauh lebih cepat. Inilah yang terjadi di balik sertifikat SSL.
Hashing Bukan Enkripsi
Hashing mengubah data menjadi rangkaian karakter dengan panjang tetap, dan prosesnya tidak bisa dibalik — inilah yang membedakannya dari enkripsi.
Perbedaan ini penting karena keduanya sering tertukar:
| Enkripsi | Hashing | |
|---|---|---|
| Bisa dikembalikan | Ya, dengan kunci | Tidak |
| Panjang hasil | Mengikuti data asli | Tetap |
| Dipakai untuk | Data yang perlu dibaca lagi | Kata sandi, pemeriksaan keutuhan berkas |
Kata sandi di aplikasi yang dikelola dengan benar di-hash, bukan dienkripsi. Karena itu layanan yang baik tidak bisa memberi tahu kata sandi lama Anda — ia hanya bisa memberi jalan membuat yang baru. Layanan yang bisa mengirimkan kata sandi lama Anda lewat email berarti menyimpannya dalam bentuk yang bisa dibaca kembali, dan itu tanda buruk.
Data yang Bergerak dan Data yang Diam
Keduanya membutuhkan perlindungan yang berbeda, dan mengamankan satu tidak mengamankan yang lain.
- Data yang bergerak. Data yang sedang berpindah antara pengunjung dan server. Diamankan dengan HTTPS untuk website, SSH untuk akses server, dan SFTP untuk pemindahan berkas.
- Data yang diam. Data yang tersimpan di penyimpanan server, di cadangan, atau di laptop. Diamankan dengan enkripsi penyimpanan.
Website yang memakai HTTPS tetapi menyimpan cadangan tanpa perlindungan di penyimpanan awan yang bisa diakses publik hanya mengamankan separuh persoalan.
Yang Perlu Dilakukan Pemilik Website
Sebagian besar enkripsi yang relevan bagi website sudah tersedia dan tinggal diaktifkan.
- Aktifkan HTTPS untuk seluruh situs, dan pastikan tidak ada berkas yang masih dimuat lewat
http. - Pakai SFTP atau SSH untuk memindahkan berkas, bukan FTP biasa yang mengirim kata sandi sebagai teks terbaca.
- Lindungi cadangan. Cadangan berisi seluruh isi database, termasuk data pengguna.
- Aktifkan autentikasi dua langkah. Enkripsi tidak membantu kalau kata sandi Anda diketahui orang lain.
Pertanyaan yang Sering Diajukan
Apakah enkripsi bisa dibobol? Algoritma yang dipakai sekarang tidak bisa dibobol dengan cara mencoba semua kemungkinan dalam waktu yang masuk akal. Yang praktis dibobol adalah kunci atau kata sandi yang lemah, atau sistem di sekelilingnya — bukan algoritmanya.
Apakah enkripsi memperlambat sistem? Pada perangkat keras modern, beban enkripsi untuk lalu lintas web sangat kecil dan tidak terasa oleh pengunjung.
Apa bedanya enkripsi ujung ke ujung dengan HTTPS? Pada HTTPS, data terenkripsi di jalur tetapi bisa dibaca server tujuan. Pada enkripsi ujung ke ujung, hanya pengirim dan penerima yang bisa membacanya — penyedia layanan pun tidak.
Apakah data di database perlu dienkripsi? Untuk data yang benar-benar sensitif, ya. Namun perlu diingat bahwa aplikasi tetap harus bisa membacanya, sehingga kuncinya berada di server yang sama — perlindungan ini efektif terhadap pencurian berkas penyimpanan, bukan terhadap penyusupan ke aplikasinya.