# Apa yang sebenarnya terjadi saat kata sandimu bocor

> Kebocoran tidak selesai pada hari ia masuk berita: di situ ia justru dimulai. Ia dibobol, disilangkan dengan daftar lain, lalu dijual ulang — dan semua itu jalan karena satu alasan saja: kita memakai ulang.

2026-04-16 · David Carrero · password.es
Original: https://password.es/id/blog/apa-yang-terjadi-saat-kata-sandimu-bocor/

---

Waktu kata sandi seseorang bocor, ia membayangkannya sebagai kecelakaan sekali
jadi: sebuah layanan sedang apes, beritanya keluar, kamu ganti kata sandinya,
selesai. **Belum selesai.** Hari kebocoran bukan akhir dari apa pun: itu hari
pertama sebuah lini produksi yang akan berjalan bertahun-tahun, dan di dalamnya
namamu tak akan pernah muncul. Layak diceritakan utuh, karena hampir tak ada yang
melihatnya.

## Langkah satu: seseorang menarik basis datanya

Yang pertama sama sekali tidak spektakuler. Ada yang menemukan sebuah SQL
injection, sebuah cadangan yang terbuka, sebuah panel admin dengan kredensial
bawaan. Lalu ia membawa pulang satu tabel.

Tabel itu, kalau lagi mujur, berisi alamat surelmu dan sebuah hash kata sandimu.
Kalau kurang mujur, berisi alamat surelmu dan kata sandimu. Dalam bentuk teks.
Persis seperti kamu mengetiknya.

## 2009: tiga puluh dua juta kata sandi dalam teks polos

Pada Desember 2009, sebuah perusahaan widget untuk media sosial bernama
**RockYou** kena SQL injection. Yang terbawa sekitar **32 juta kata sandi**, dan
tak ada hash yang perlu dipecahkan: perusahaan itu menyimpannya dalam teks polos.

Itu bencana buat RockYou dan hadiah buat semua orang lain. Untuk pertama kalinya
ada korpus raksasa berisi kata sandi **sungguhan**, ditulis orang-orang yang tak
tahu bakal ada yang membacanya. Bukan studi: barangnya sendiri.

Berkas itu menjelma jadi `rockyou.txt`, yang sampai sekarang masih jadi kamus
rujukan untuk menguji serangan. Nilainya bukan karena di dalamnya ada kata
sandimu: melainkan karena di dalamnya ada **cara orang menulis kata sandi**. Satu
nama dan satu tahun, satu kata dan `123`, tanda `!` di ujung. RockYou tidak
membocorkan 32 juta rahasia. Ia membocorkan polanya. Dan pola tidak punya tanggal
kedaluwarsa.

## Langkah dua: yang bisa dibobol dibobol, tanpa terburu-buru sedikit pun

Di sinilah nalar sehari-hari meleset. Waktu ada yang mencoba menebak kata sandimu
di layar masuk sebuah layanan, layanannya memotong dia: tiga percobaan, sebuah
CAPTCHA, sebuah penguncian. Melawan server, menebak itu lambat dan berisik.

Melawan berkas hash yang sudah ada di diskmu sendiri, tak ada server. **Tak ada
siapa pun di seberang sana yang bilang tidak.** Dicobanya secara lokal, dengan
GPU, tanpa batas percobaan dan dengan waktu sebanyak-banyaknya. Kalau layanannya
salah pilih cara mengehash — algoritme cepat, tanpa garam — bedanya dengan teks
polos cuma soal kepraktisan, bukan keamanan.

Dan dicobanya tidak asal: pertama `rockyou.txt`, lalu aturan-aturan turunannya.
Ganti `a` jadi `@`. Tambahkan satu tahun di ujung. Setiap akal-akalan yang menurutmu
cerdik sudah lebih dari sepuluh tahun tertulis di sebuah berkas konfigurasi.

Dari situ sebagian isi dump berubah jadi kata sandi yang terbaca. Sisanya — yang
panjang, yang acak, yang tak ada di kamus mana pun — tetap jadi derau. Itulah
garis yang ditarik [pemeriksa](/id/pemeriksa/): ia tidak memarahimu, ia memberitahu
kamu jatuh di sisi yang mana.

## Langkah tiga: disilangkan, dan di situlah kamu jadi uang

Satu dump yang berdiri sendiri nilainya kecil. Yang berharga adalah
**agregasinya**: mengambil sepuluh kebocoran dari situs berbeda, menyilangkannya
lewat alamat surel, lalu menyimpan pasangan `surel:kata sandi` yang sudah terbaca.
Hasilnya disebut *combolist*, dan itu bukan lagi basis data milik siapa pun. Itu
daftar orang.

## 2013: inventarisnya muncul ke permukaan

Pada Desember 2013, **Troy Hunt** menjalankan **Have I Been Pwned**: sebuah basis
data publik berisi alamat surel yang muncul di kebocoran, supaya siapa saja bisa
bertanya apakah ia ada di dalamnya. Gagasan dasarnya sederhana dan tidak enak:
**kalau penyerang sudah pegang inventarisnya, menyembunyikannya dari korban tidak
melindungi siapa-siapa**. Bertahun-tahun kemudian datang *Pwned Passwords*, yang
melakukan hal yang sama untuk kata sandi dan memungkinkanmu memeriksanya tanpa
mengirimkannya: yang dikirim sepotong hash, dan servernya mengembalikan sekumpulan
kandidat, tanpa tahu yang mana punyamu.

## 2017: NIST berhenti meminta simbol dan mulai meminta daftar

Waktu NIST menerbitkan **SP 800-63B**, ia membuang hampir seluruh ortodoksi
formulir pendaftaran dan menggantinya dengan satu syarat yang tak banyak
diperkirakan orang: saat menetapkan sebuah kata sandi, sistem harus
**membandingkannya dengan daftar nilai yang diketahui sudah terkompromi** dan
menolaknya kalau muncul di sana.

Itu perubahan teori, bukan perubahan detail. Pertanyaannya bukan lagi apakah kata
sandimu *terlihat* kuat, melainkan apakah ia **sudah terbit**. Karena itu
[generator](/id/) melakukan satu-satunya hal yang masuk akal: mengambilnya dari
tempat yang belum pernah ia singgahi.

## 2019: kebocoran yang sebenarnya daur ulang kebocoran lain

Pada Januari 2019 beredar satu paket yang tenar dengan nama **Collection #1**.
Hunt membedahnya dan menghitung isinya: sekitar **773 juta alamat surel unik** dan
sekitar **21 juta kata sandi unik** dalam teks polos, diagregasi dari ribuan
sumber.

Yang penting bukan ukurannya. Melainkan **dari mana asalnya**: sebagian besar
adalah daur ulang kebocoran-kebocoran sebelumnya, yang sudah dibobol dan disusun
ulang dalam format yang nyaman dipakai — meski Hunt juga menemukan bahan yang
sampai saat itu belum terdaftar olehnya. Produknya bukan aksi pembobolannya.
Produknya inventaris. Dan inventaris semacam itu cuma punya satu kegunaan.

## Credential stuffing: bukan kamu yang diserang

**Tak ada yang menyerang kamu.** Itu bagian yang paling susah dicerna.

Tak ada yang duduk merenungkan akunmu. Ada orang yang mengambil sebuah combolist
berisi ratusan juta baris, memasukkannya ke sebuah alat yang mengujinya ke
formulir masuk sebuah bank atau sebuah layanan surel, membagi-bagi percobaannya ke
banyak alamat IP supaya tak memicu penguncian, lalu menunggu. Mayoritas besarnya
gagal. Tak apa: harganya nyaris nol.

Itulah *credential stuffing*, dan itu bukan menebak. Itu **memeriksa**. Kata
sandinya sudah di tangan mereka; yang mereka cari tahu cuma di mana lagi kamu
memasangnya.

Kata sandimu di forum itu tidak penting. Forumnya juga tidak. Yang penting adalah
untaian karakter yang sama itu membuka surelmu, dan surelmu membuka semua sisanya
lewat "saya lupa kata sandi". **Dosa asalnya bukan karena ia lemah: melainkan
karena ia sama.** Kata sandi tiga puluh karakter, acak dan sempurna, dipakai ulang
di dua situs, kualitasnya setara situs terburuk dari keduanya. Dan kamu tak
mengendalikan cara situs terburuk itu mengehash.

## Apa yang bisa disimpulkan dari semua ini

- **Mengganti kata sandi yang bocor tidak cukup kalau kamu mengulanginya.** Yang
  mendesak bukan situs yang masuk berita. Melainkan situs-situs lainnya.
- **Satu kata sandi per situs, dan biar kamu tak peduli melupakannya.** Kalau kamu
  bisa mengingat semua kata sandimu, jumlahnya terlalu sedikit atau kualitasnya
  terlalu buruk.
- **Faktor kedua memutus rantainya.** *Credential stuffing* menguji
  `surel:kata sandi`. Kalau itu tak cukup untuk masuk, inventarisnya kehilangan
  nilai.

Kata sandimu yang bocor tidak ada di tangan seorang musuh. Ia ada di satu baris
sebuah berkas, di antara ratusan juta baris lain, menunggu sampai ada yang merasa
sepadan mencobanya di satu situs lagi. Dan satu-satunya hal yang menentukan apakah
itu berhasil sudah kamu putuskan bertahun-tahun lalu, waktu kamu mengetik kata yang
sama untuk kedua kalinya.

---

*Sumber: kebocoran RockYou (Desember 2009) dan penggunaan `rockyou.txt` sesudahnya
sebagai kamus serangan · Have I Been Pwned dan Pwned Passwords, dari Troy Hunt ·
NIST SP 800-63B, tentang pemeriksaan kata sandi terhadap daftar nilai yang
terkompromi · analisis Troy Hunt atas Collection #1 (Januari 2019) dan angka-angka
yang ia terbitkan · definisi credential stuffing dari OWASP.*
