Keamanan Kata Sandi
Pelajari ciri kata sandi yang kuat, cara menyimpannya dengan aman di sisi pengguna maupun sistem, dan kebiasaan yang mengurangi risiko akun diambil alih.
Tujuan Pembelajaran
- Menjelaskan faktor yang membuat kata sandi kuat
- Memahami mengapa hashing dengan salt dipakai untuk menyimpan kata sandi
- Menggunakan password manager dan menghindari penggunaan ulang
- Mengenali pola serangan kredensial umum secara konseptual
01Panjang mengalahkan kerumitan
Kekuatan kata sandi ditentukan terutama oleh panjang dan ketidakterdugaannya. Passphrase berupa beberapa kata acak yang panjang lebih mudah diingat sekaligus lebih sulit ditebak dibanding kata pendek yang dipenuhi simbol.
Hindari informasi pribadi seperti tanggal lahir, nama hewan peliharaan, atau pola keyboard. Hindari pula kata sandi yang sering muncul pada daftar kebocoran data.
02Satu akun, satu kata sandi
Penggunaan ulang kata sandi berbahaya karena kebocoran di satu situs dapat dipakai untuk mencoba masuk ke situs lain. Teknik ini dikenal sebagai credential stuffing dan memanfaatkan kebiasaan pengguna.
Password manager menyelesaikan masalah ini dengan membuat dan menyimpan kata sandi acak yang unik untuk tiap akun. Anda hanya perlu mengingat satu kata sandi utama yang kuat.
03Cara sistem menyimpan kata sandi
Sistem yang baik tidak pernah menyimpan kata sandi asli. Ia menyimpan hasil hash, yaitu keluaran fungsi satu arah. Saat login, input pengguna di-hash lalu dibandingkan.
- Salt: nilai acak unik per pengguna yang ditambahkan sebelum hashing, agar kata sandi sama menghasilkan hash berbeda
- Gunakan algoritma yang sengaja lambat dan dirancang untuk kata sandi: Argon2, bcrypt, atau scrypt
- Jangan memakai hash cepat seperti MD5 atau SHA-1 polos untuk kata sandi
- Batasi percobaan login dan terapkan penundaan atau penguncian sementara
04Kebiasaan yang membantu
Cek apakah alamat email Anda muncul dalam kebocoran data melalui layanan pemeriksa tepercaya, lalu segera ganti kata sandi akun yang terdampak. Aktifkan autentikasi multifaktor di akun penting.
Jangan membagikan kata sandi lewat chat atau email, dan jangan menuliskannya di tempat yang mudah dilihat orang lain. Kebijakan terkini juga menyarankan tidak memaksa penggantian rutin tanpa alasan, selain bila ada indikasi kebocoran.
Contoh Praktis (Aman)
Menyimpan kata sandi dengan hash berbasis saltContoh defensif di Node.js memakai pustaka bcrypt. Kata sandi asli tidak pernah disimpan, hanya hash-nya.
import bcrypt from 'bcrypt';
// Saat pendaftaran: simpan hash, bukan kata sandi asli
async function buatPengguna(email, kataSandi) {
const hash = await bcrypt.hash(kataSandi, 12); // salt dibuat otomatis
await db.pengguna.simpan({ email, hash });
}
// Saat login: bandingkan input dengan hash tersimpan
async function verifikasi(email, kataSandi) {
const user = await db.pengguna.cari({ email });
if (!user) return false;
return bcrypt.compare(kataSandi, user.hash);
}Rangkuman
- Panjang dan ketidakterdugaan lebih penting daripada simbol yang rumit
- Gunakan kata sandi unik per akun dengan bantuan password manager
- Sistem harus menyimpan hash dengan salt memakai Argon2, bcrypt, atau scrypt
- Aktifkan MFA dan segera ganti kata sandi bila ada indikasi kebocoran
Mini Quiz
Pilih satu jawaban untuk setiap soal, lalu tekan "Periksa Jawaban".
Mengapa penggunaan ulang kata sandi berisiko?
Apa fungsi salt pada penyimpanan kata sandi?
Algoritma mana yang cocok untuk menyimpan kata sandi?