Keamanan Digital · Pelajaran 6 dari 8
Kata sandi dan verifikasi dua langkah
8 menit baca · BelajarCode
Kekuatan kata sandi bisa dihitung. Banyaknya kemungkinan kata sandi adalah banyak jenis karakter pangkat panjangnya.
1def kemungkinan(jenis_karakter, panjang):2 return jenis_karakter ** panjang34print("PIN 6 angka :", kemungkinan(10, 6))5print("8 huruf kecil :", kemungkinan(26, 8))6print("12 karakter campur:", kemungkinan(94, 12))PIN 6 angka : 1000000 8 huruf kecil : 208827064576 12 karakter campur: 475920314814253376475136
Kata sandi 12 karakter yang memakai huruf besar, huruf kecil, angka, dan simbol (sekitar 94 jenis karakter) punya kemungkinan yang sangat banyak.
Berapa lama ditebak?
Misalkan penyerang bisa mencoba 10 miliar tebakan per detik. Ini hanya angka perkiraan untuk perbandingan, karena kecepatan sebenarnya bergantung pada alat dan cara penyimpanan kata sandinya.
1tebakan_per_detik = 10_000_000_0002detik_per_tahun = 60 * 60 * 24 * 36534for nama, jumlah in [("8 huruf kecil", 26 ** 8), ("12 karakter campur", 94 ** 12)]:5 detik = jumlah / tebakan_per_detik6 tahun = detik / detik_per_tahun7 if tahun < 1:8 print(f"{nama}: sekitar {detik:.0f} detik")9 else:10 print(f"{nama}: sekitar {tahun:,.0f} tahun".replace(",", "."))8 huruf kecil: sekitar 21 detik 12 karakter campur: sekitar 1.509.133 tahun
Menambah panjang kata sandi jauh lebih berpengaruh daripada menambah jenis karakter. Inilah alasan kalimat sandi yang panjang disarankan.
Kata sandi kuat tetap bisa bocor
Kata sandi sekuat apa pun tidak berguna jika dipakai di banyak situs lalu salah satu situs itu bocor, atau jika kamu tertipu memasukkannya ke situs palsu. Pakai kata sandi berbeda untuk setiap akun. Pengelola kata sandi (password manager) bisa membantu mengingat semuanya.
Verifikasi dua langkah
Verifikasi dua langkah (2FA) meminta bukti kedua selain kata sandi. Bukti identitas dibagi menjadi tiga jenis:
| Jenis | Contoh |
|---|---|
| Sesuatu yang kamu ketahui | Kata sandi, PIN |
| Sesuatu yang kamu miliki | HP yang menerima kode OTP, aplikasi autentikator, kunci keamanan fisik |
| Sesuatu yang melekat padamu | Sidik jari, wajah |
Dengan 2FA, penyerang yang mencuri kata sandimu tetap tidak bisa masuk tanpa HP-mu.
Jangan pernah berikan kode OTP
Kode OTP (one-time password) hanya untukmu. Bank, aplikasi, maupun petugas resmi tidak akan pernah memintanya. Siapa pun yang meminta kode OTP lewat telepon atau pesan, apa pun alasannya, hampir pasti penipu.
Cek pemahaman
Mana yang menambah kekuatan kata sandi paling banyak?
Latihan
PIN empat angka
Hitung banyaknya kemungkinan PIN 4 angka. Jika penyerang bisa mencoba 1.000 PIN per detik, berapa detik yang dibutuhkan untuk mencoba semuanya? Kenapa aplikasi bank tetap aman memakai PIN 6 angka?
Pembahasan
1kemungkinan = 10 ** 42print("Kemungkinan PIN:", kemungkinan)3print("Waktu mencoba semua:", kemungkinan / 1000, "detik")Kemungkinan PIN: 10000 Waktu mencoba semua: 10.0 detik
Hanya 10 detik! Aplikasi bank tetap aman karena PIN tidak bisa dicoba berkali-kali: setelah beberapa kali salah, akun diblokir sementara. Selain itu, PIN biasanya hanya berlaku di perangkat yang sudah terdaftar.
Jalankan contoh kode di pelajaran ini tanpa instalasi lewat compiler Python online.