0Pricing
Cryptology Academy · Pelajaran

Serangan Kamus dan Tabel Pelangi

Lihat cara tabel hash yang telah dihitung sebelumnya mempercepat pembobolan kata sandi dan cara salt menggagalkannya.

Serangan Kamus dan Tabel Pelangi adalah pelajaran Cryptology Academy gratis di CoddyKit. Ini adalah pelajaran 2 dari 4. Kamu bisa membaca pelajaran lengkapnya di bawah secara gratis — lalu praktikkan langsung di browser dengan editor kode bawaan dan tutor AI 24/7. Ini adalah bagian dari jalur belajar Cryptology Academy, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus Cryptology Academy mencakup 4 pelajaran total.

Serangan Kamus: Pemecahan Berbasis Daftar Kata

Serangan kamus tidak mencoba setiap kombinasi yang mungkin; serangan ini mencoba daftar kata sandi yang mungkin dan telah disusun sebelumnya. Pengguna nyata memilih kata sandi dari kosakata yang terbatas: kata umum, nama, tanggal, dan frasa. Menguji daftar kata yang berisi satu juta kata sandi yang mungkin jauh lebih cepat daripada menguji semua rangkaian 8 karakter yang mungkin, yaitu 200 triliun kombinasi. Serangan kamus berhasil karena pilihan kata sandi manusia dapat diprediksi.

rockyou.txt: Kumpulan Data Kebocoran Kata Sandi

Pada 2009, situs jejaring sosial RockYou mengalami kebocoran yang mengekspos 32 juta kata sandi pengguna dalam teks biasa. Daftar yang kemudian dikenal sebagai rockyou.txt ini berisi sekitar 14 juta kata sandi unik dan merupakan daftar kata pertama yang umumnya digunakan dalam pemecahan kata sandi. Pemeriksaan terhadap rockyou.txt menunjukkan bahwa kata sandi yang paling umum adalah 123456, "password", serta variasi nama depan yang diikuti angka.

Serangan Hibrida: Menggabungkan Kamus dan Aturan

Serangan hibrida memperluas daftar kata dasar dengan menerapkan aturan transformasi. Kata seperti password dapat menjadi Password, P@ssword, p4ssword, password1, password123, dan ratusan varian lainnya. Mesin aturan Hashcat memungkinkan Anda menentukan secara tepat transformasi yang akan diterapkan: mengubah huruf pertama menjadi kapital, menambahkan dua digit, dan mengganti huruf dengan simbol. Hal ini memperluas cakupan secara drastis tanpa menguji rangkaian karakter yang benar-benar acak.

Serangan Berbasis Aturan dan Gaya Leet

Substitusi gaya leet (mengganti huruf dengan angka: e=3, a=4, i=1, o=0, s=5) dahulu dianggap dapat meningkatkan keamanan kata sandi. Program pemecah berbasis aturan menyertakan substitusi ini sebagai transformasi standar. Kata sandi seperti s3cur1ty dapat dipecahkan dengan mudah dari kata dasar security ditambah aturan substitusi leet. Program pemecah juga mencoba pola umum: menambahkan !, 123, atau tahun berjalan pada kata apa pun dari kamus.

Tabel Pelangi: Rantai Hash yang Telah Dihitung Sebelumnya

Tabel pelangi adalah basis data besar yang telah dihitung sebelumnya dan memetakan nilai hash kembali ke kata sandi asli. Alih-alih menghitung hash kandidat lalu membandingkannya, penyerang mencari hash tersebut di dalam tabel. Pembuatan tabel memerlukan waktu dan penyimpanan yang sangat besar, tetapi setiap pencarian dapat dilakukan seketika. Tabel pelangi untuk MD5 dari semua kata sandi alfanumerik 8 karakter dapat disimpan dalam beberapa terabita dan memecahkan kata sandi apa pun yang cocok dalam hitungan milidetik.

Pertukaran Waktu-Memori dalam Tabel Pelangi

Tabel pelangi menerapkan pertukaran waktu-memori: luangkan waktu untuk menghitung tabel sekali, lalu gunakan memori agar pencarian berikutnya berlangsung cepat. Tabel tersebut menyimpan rantai hash: setiap rantai dimulai dari sebuah tebakan, menghitung hash-nya, menerapkan fungsi reduksi untuk menghasilkan tebakan lain, lalu mengulangi proses tersebut. Dengan hanya menyimpan titik akhir rantai, kata sandi dapat dipulihkan dari hash melalui proses rekonstruksi rantai yang menyeimbangkan kebutuhan penyimpanan dan komputasi.

Nilai Acak Menggagalkan Tabel Pelangi

Nilai acak ditambahkan ke kata sandi sebelum proses pengacahan. Karena nilai acak tersebut unik untuk setiap pengguna, dua pengguna dengan kata sandi yang sama akan menghasilkan nilai hash yang berbeda. Ini berarti penyerang tidak dapat menghitung sebelumnya tabel pelangi untuk kata sandi yang diberi nilai acak; penyerang harus membuat tabel terpisah untuk setiap kemungkinan nilai acak, yang tidak layak dilakukan secara komputasi. Penambahan nilai acak wajib dilakukan pada setiap sistem penyimpanan kata sandi yang aman.

MD5 Tanpa Nilai Acak: Dipecahkan Seketika

Banyak aplikasi web awal menyimpan kata sandi sebagai hash MD5 tanpa nilai acak. MD5 dari string "password" adalah 5f4dcc3b5aa765d61d8327deb882cf99, sebuah nilai tetap. Siapa pun yang pernah melihat hash ini, atau mencarinya dalam basis data yang telah dihitung sebelumnya, dapat langsung mengetahui kata sandinya. Situs seperti CrackStation menyimpan miliaran hash MD5 dan SHA-1 yang telah dihitung sebelumnya. Kata sandi umum tanpa nilai acak dapat dipecahkan dalam waktu kurang dari satu detik.

Have I Been Pwned

Have I Been Pwned (HIBP), yang dibuat oleh peneliti keamanan Troy Hunt, mengumpulkan hash kata sandi dari kebocoran data besar. Pengguna dapat memeriksa apakah alamat surel atau kata sandi mereka pernah muncul dalam suatu kebocoran. Pengembang dapat menggunakan API HIBP untuk memeriksa kata sandi kandidat terhadap 850 juta hash yang bocor menggunakan model k-anonimitas: 5 karakter heksadesimal pertama dari hash SHA-1 dikirimkan ke API, yang mengembalikan akhiran yang cocok tanpa server mengetahui hash lengkapnya.

Serangan Pengujian Kredensial dengan Daftar Kata Sandi Bocor

Serangan pengujian kredensial mengambil pasangan nama pengguna dan kata sandi dari satu kebocoran, lalu mengujinya terhadap layanan lain. Karena banyak pengguna menggunakan kembali kata sandi di berbagai situs, kebocoran pada situs dengan keamanan rendah dapat menghasilkan kredensial yang masih berfungsi untuk sasaran bernilai tinggi seperti layanan perbankan dan surel. Alat otomatis mengirimkan ribuan upaya masuk per detik ke berbagai layanan. Pembatasan laju dan autentikasi multifaktor merupakan pertahanan utama terhadap serangan pengujian kredensial.

Pertahanan: Pengacahan Adaptif dengan Nilai Acak

Penyimpanan kata sandi yang aman menggabungkan penambahan nilai acak dengan fungsi hash yang lambat dan adaptif. bcrypt, Argon2, dan scrypt dirancang agar mahal secara komputasi, dengan waktu yang diperlukan beberapa milidetik per hash, bukan mikrodetik. Hal ini membatasi laju serangan dari miliaran percobaan per detik menjadi ribuan. Parameter biaya dapat ditingkatkan seiring perangkat keras menjadi lebih cepat, sehingga kebutuhan kerja tetap konsisten. Algoritme ini merupakan standar saat ini untuk penyimpanan kata sandi.

Penambahan Nilai Acak vs Tabel Pelangi

Mengapa penambahan nilai acak yang unik dan dihasilkan secara acak pada setiap kata sandi sebelum proses pengacahan menggagalkan serangan tabel pelangi yang telah dihitung sebelumnya?

Serangan Kamus dan Tabel Pelangi: Poin Penting

Serangan kamus menguji kata sandi yang mungkin, bukan semua kombinasi. rockyou.txt menyediakan 14 juta contoh dari dunia nyata. Serangan hibrida dan berbasis aturan memperluas daftar kata dengan berbagai transformasi. Tabel pelangi menyediakan pencarian seketika untuk hash tanpa nilai acak. Penambahan nilai acak menggagalkan tabel pelangi dengan membuat setiap hash menjadi unik. HIBP memeriksa apakah kata sandi muncul dalam kebocoran yang diketahui. Fungsi hash adaptif seperti bcrypt dan Argon2 diperlukan untuk penyimpanan yang aman.

Pertanyaan yang Sering Diajukan

Apakah pelajaran “Serangan Kamus dan Tabel Pelangi” gratis?

Ya — teks lengkap “Serangan Kamus dan Tabel Pelangi” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus Cryptology Academy, upgrade ke CoddyKit PRO. Kursus Cryptology Academy mencakup 4 pelajaran total.

Apa yang akan aku pelajari di “Serangan Kamus dan Tabel Pelangi”?

Lihat cara tabel hash yang telah dihitung sebelumnya mempercepat pembobolan kata sandi dan cara salt menggagalkannya. Kamu berlatih Cryptology Academy dengan kode praktik yang langsung kamu jalankan di browser, dan tutor AI 24/7 menjawab pertanyaanmu saat kamu mengerjakan pelajaran ini.

Apakah aku perlu pengalaman untuk memulai Cryptology Academy?

Tidak diperlukan pengalaman sebelumnya. Cryptology Academy di CoddyKit dirancang untuk pemula hingga pelajar tingkat lanjut, jadi kamu bisa memulai di sini atau dari awal dan belajar sesuai kecepatan kamu sendiri. Ini adalah pelajaran 2 dari 4.

Berapa lama pelajaran “Serangan Kamus dan Tabel Pelangi” memakan waktu?

Sebagian besar pelajaran CoddyKit memakan waktu sekitar 5–10 menit. Setiap pelajaran ringkas dan interaktif, jadi kamu membuat kemajuan stabil dan melanjutkan dari tempat kamu tinggalkan di web dan aplikasi.

Bisakah aku menulis dan menjalankan kode dalam pelajaran Cryptology Academy ini?

Ya. Setiap pelajaran Cryptology Academy menyertakan editor kode bawaan, jadi kamu menulis dan menjalankan kode nyata langsung di browser dan mendapatkan umpan balik AI instan — tidak diperlukan penyiapan lokal.

Semua pelajaran dalam kursus ini

  1. Cara Kerja Serangan Brute Force
  2. Serangan Kamus dan Tabel Pelangi
  3. Mengapa Panjang Kunci Kriptografis Penting
  4. Pembatasan Laju dan Pertahanan Penguncian Akun
← Kembali ke Cryptology Academy