Dalam dunia keamanan digital, sering kali kita membahas algoritma hashing dari sudut pandang developer atau sistem. Namun ada satu sudut pandang yang jarang dibahas secara eksplisit, padahal sangat menentukan: perspektif robot brute force.
Tulisan ini mencoba melihat algoritma hashing bukan dari sisi pembuat sistem, tetapi dari sisi penyerang otomatis—robot yang tugasnya hanya satu: menebak password secepat dan semurah mungkin.
Cara Kerja Robot Brute Force (Singkat)
Bagi robot, prosesnya sederhana:
- Tebak sebuah password
- Hash password tersebut
- Bandingkan dengan hash target
- Ulangi jutaan hingga miliaran kali
Robot tidak berpikir, tidak peduli konteks, dan tidak lelah. Yang penting baginya hanyalah:
Kecepatan, Paralelisme dan Efisiensi biaya komputasiDengan sudut pandang ini, mari kita bandingkan tiga algoritma hashing populer:
SHA-256, bcrypt, dan Argon2id.
1. SHA-256: Cepat, tapi Terlalu Ramah untuk Robot
SHA-256 adalah algoritma hashing kriptografis yang sangat baik untuk:
- Integritas data
- Digital signature
- Verifikasi file
Namun, bukan untuk menyimpan password.
Perspektif robot terhadap SHA-256
- Sangat cepat
- Mudah diparalelkan
- Cocok untuk GPU dan ASIC
- Tanpa cost factor
- Tanpa salt bawaan
Robot modern dengan GPU mampu menghitung miliaran hash SHA-256 per detik. Ini berarti:
- Password berbasis kata manusia → habis dalam hitungan detik/menit
- Password tanpa salt → satu hash bisa menjebol banyak akun sekaligus
Bagi robot, SHA-256 adalah target empuk dan ekonomis.
2. bcrypt: Mulai Membuat Robot Berpikir Ulang
bcrypt dirancang khusus untuk hashing password, dengan filosofi yang berbeda:
“Keamanan dengan memperlambat penyerang.”
Fitur penting bcrypt
- Salt unik per password
- Cost factor (work factor)
- Sengaja dibuat lambat
- Tidak ramah GPU
Perspektif robot
bcrypt mengubah permainan secara drastis.
Jika SHA-256 bisa dihitung miliaran kali per detik, maka bcrypt (cost 12) hanya bisa:
-
±3–5 hash per detik per core CPU
GPU kehilangan keunggulannya karena bcrypt:
-
Boros memori
-
Banyak operasi serial
-
Tidak efisien untuk paralelisme masif
Robot mulai menghadapi dilema:
“Waktu dan listrik saya lebih mahal dari nilai target ini.”
Di titik inilah banyak serangan berhenti, bukan karena password “tidak mungkin”, tapi karena tidak ekonomis.
3. Argon2id: Musuh Alami Robot Modern
Argon2id adalah standar modern (pemenang Password Hashing Competition) yang dirancang dengan asumsi:
Penyerang punya GPU, RAM besar, dan waktu.
Keunggulan Argon2id
- Memory-hard (butuh RAM besar)
- Time cost (lama proses)
- Memory cost (boros memori)
- Parallelism terkontrol
- Tahan side-channel attack
Perspektif robot
Argon2id memaksa robot untuk:
- Menyediakan RAM besar per tebakan
- Tidak bisa mengandalkan GPU murah
- Membayar mahal untuk setiap guess
Robot modern paling membenci Argon2id, karena biaya serangannya naik drastis dan skalabilitasnya buruk.
Tabel Perbandingan Perspektif Robot
| Aspek | SHA-256 | bcrypt | Argon2id |
|---|---|---|---|
| Kecepatan hash | Sangat cepat | Lambat | Sangat lambat |
| Salt bawaan | Tidak | Ya | Ya |
| Cost / tuning | Tidak ada | Ya | Ya (time & memory) |
| GPU friendly | Sangat | Tidak | Sangat tidak |
| Rainbow table | Efektif | Tidak berguna | Tidak berguna |
| Biaya serangan | Murah | Mahal | Sangat mahal |
| Reaksi robot | “Target ideal” | “Pikir dua kali” | “Cari target lain” |
Di Titik Mana Robot Mulai Kesulitan?
Robot mulai kesulitan bukan saat algoritma tak bisa dipecahkan, tetapi saat:
- Setiap tebakan butuh waktu ratusan milidetik
- Tidak bisa diskalakan ke GPU
- Membutuhkan RAM besar
- Password tidak ada di wordlist umum
bcrypt (cost ≥ 12) sudah cukup membuat banyak robot menyerah.
Argon2id membuat serangan brute force skala besar tidak masuk akal secara ekonomi.
Tips Membuat Password yang Manusiawi tapi Aman
Keamanan password bukan soal terlihat rumit, tapi soal tidak ekonomis untuk ditebak.
1. Gunakan frasa panjang, bukan karakter acak
Contoh:
-
Mudah diingat manusia
-
Sulit ditebak robot
-
Tidak umum di wordlist
2. Panjang lebih penting dari kompleksitas
-
20+ karakter sederhana > 8 karakter super kompleks
-
Robot lebih takut panjang daripada simbol
3. Hindari pola umum manusia
Contoh Misalnya: Nama123, Password2024, Tanggal lahir, admin@123
4. Biarkan sistem melakukan hashing dengan benar
-
Jangan SHA-256 manual
-
Gunakan
password_hash()di PHP -
Pilih bcrypt atau Argon2id
5. Kombinasikan dengan 2FA
Password kuat + hashing kuat + 2FA = lapisan frustasi maksimal untuk robot
Penutup
Dalam keamanan modern, tujuan utama bukan membuat sistem tak bisa ditembus, tetapi membuat serangan:
Mahal, Lambat dan Tidak sepadan
SHA-256 mungkin kriptografis kuat, tetapi terlalu ramah bagi robot.
bcrypt membuat robot berpikir ulang.
Argon2id membuat robot pergi mencari target lain.
Dan dalam dunia nyata, itu sudah lebih dari cukup.