Tabel Pelangi: Mimpi Buruk Terburuk Kata Sandi Anda

Jangan biarkan nama lucu mereka membodohi Anda, hal-hal ini menakutkan.

Meskipun Anda mungkin menganggap Rainbow Tables sebagai furnitur berwarna-warni yang eklektik, itu bukan yang akan kita diskusikan. The Rainbow Tables yang sedang kita bicarakan digunakan untuk memecahkan kata sandi dan merupakan alat lain di gudang senjata yang terus berkembang.

Apa itu Rainbow Tables? Bagaimana mungkin sesuatu dengan nama lucu dan suka diemong begitu berbahaya?

Konsep Dasar di Balik Meja Pelangi

Saya adalah orang jahat yang baru saja memasang thumb drive ke server atau workstation, merebootnya, dan menjalankan program yang menyalin file database keamanan yang berisi nama pengguna dan kata sandi ke thumb drive saya.

Kata sandi dalam file dienkripsi sehingga saya tidak bisa membacanya. Saya harus memecahkan kata sandi dalam file (atau setidaknya kata sandi administrator) sehingga saya dapat menggunakannya untuk mengakses sistem.

Apa saja opsi untuk meretas kata sandi? Saya dapat mencoba dan menggunakan program cracking password brute-force seperti John the Ripper, yang memangkas file password, mencoba menebak setiap kemungkinan kombinasi kata sandi. Opsi kedua adalah memuat kamus retas kata sandi yang berisi ratusan ribu kata sandi yang umum digunakan dan melihat apakah itu mendapat klik apa pun. Metode ini dapat memakan waktu berminggu-minggu, berbulan-bulan, atau bahkan bertahun-tahun jika kata sandi cukup kuat.

Ketika kata sandi "dicoba" terhadap suatu sistem, "hash" menggunakan enkripsi sehingga kata sandi yang sebenarnya tidak pernah dikirim dalam bentuk teks yang jelas di seluruh jalur komunikasi. Ini mencegah penyadap menginterupsi kata sandi. Hash dari kata sandi biasanya terlihat seperti sekelompok sampah dan biasanya memiliki panjang yang berbeda dari kata sandi asli. Kata sandi Anda mungkin "shitzu" tetapi hash dari kata sandi Anda akan terlihat seperti "7378347eedbfdd761619451949225ec1".

Untuk memverifikasi pengguna, sistem mengambil nilai hash yang dibuat oleh fungsi hashing kata sandi pada komputer klien dan membandingkannya dengan nilai hash yang disimpan dalam tabel di server. Jika hash cocok, maka pengguna diautentikasi dan diberi akses.

Hashing password adalah fungsi 1-arah, yang berarti bahwa Anda tidak dapat mendekripsi hash untuk melihat apa teks yang jelas dari kata sandi. Tidak ada kunci untuk mendekripsi hash setelah dibuat. Tidak ada "decoder ring" jika Anda mau.

Program peretasan kata sandi bekerja dengan cara yang mirip dengan proses masuk. Program cracking dimulai dengan mengambil password plaintext, menjalankannya melalui algoritma hash, seperti MD5, dan kemudian membandingkan hash output dengan hash dalam file kata sandi yang dicuri. Jika menemukan kecocokan maka program telah meretas kata sandi. Seperti yang kami katakan sebelumnya, proses ini dapat memakan waktu yang sangat lama.

Masuk ke Rainbow Tables

Rainbow Tables pada dasarnya adalah set besar tabel precomputed yang diisi dengan nilai-nilai hash yang pra-cocok dengan kemungkinan kata sandi plaintext. The Rainbow Tables pada dasarnya memungkinkan peretas untuk membalik fungsi hashing untuk menentukan apa kata sandi plaintext. Ada kemungkinan untuk dua kata sandi yang berbeda untuk menghasilkan hash yang sama sehingga tidak penting untuk mengetahui kata sandi asli, asalkan memiliki hash yang sama. Kata sandi plaintext mungkin bukan kata sandi yang sama yang dibuat oleh pengguna, tetapi selama hash cocok, maka tidak masalah kata sandi asli.

Penggunaan Tabel Pelangi memungkinkan sandi untuk di-crack dalam waktu yang sangat singkat dibandingkan dengan metode brute-force, namun, trade-off adalah bahwa dibutuhkan banyak penyimpanan (kadang-kadang Terabyte) untuk menyimpan Tabel Pelangi itu sendiri, Penyimpanan hari ini sangat banyak dan murah jadi trade-off ini tidak begitu besar seperti satu dekade yang lalu ketika drive terabyte bukan sesuatu yang bisa Anda dapatkan di Best Buy lokal.

Peretas dapat membeli Tabel Pelompak precomputed untuk memecahkan sandi sistem operasi yang rentan seperti Windows XP, Vista, Windows 7, dan aplikasi yang menggunakan MD5 dan SHA1 sebagai mekanisme hashing kata sandi mereka (banyak pengembang aplikasi web masih menggunakan algoritma hashing ini).

Cara Melindungi Diri Terhadap Serangan Kata Sandi Berbasis Meja Pelangi

Kami berharap ada saran yang lebih baik tentang ini untuk semua orang. Kami ingin mengatakan bahwa kata sandi yang lebih kuat akan membantu, tetapi ini tidak benar karena bukan kelemahan kata sandi yang menjadi masalah, itu adalah kelemahan yang terkait dengan fungsi hashing yang digunakan untuk mengenkripsi kata sandi.

Saran terbaik yang dapat kami berikan kepada pengguna adalah menjauhi aplikasi web yang membatasi panjang kata sandi Anda ke sejumlah karakter pendek. Ini adalah tanda yang jelas dari rutinitas otentikasi kata sandi sekolah lama yang rentan. Panjang dan kompleksitas kata sandi yang diperluas dapat membantu sedikit, tetapi bukan merupakan bentuk perlindungan yang terjamin. Semakin lama kata sandi Anda, semakin besar Tabel Pelangi harus retak itu, tetapi seorang hacker dengan banyak sumber daya masih dapat mencapai hal ini.

Saran kami tentang cara mempertahankan terhadap Rainbow Tables benar-benar dimaksudkan untuk pengembang aplikasi dan administrator sistem. Mereka berada di garis depan ketika datang untuk melindungi pengguna terhadap jenis serangan ini.

Berikut adalah beberapa kiat pengembang tentang bertahan melawan serangan Meja Pelangi:

  1. Jangan gunakan MD5 atau SHA1 dalam fungsi hashing kata sandi Anda. MD5 dan SHA1 adalah algoritma hashing kata sandi yang kedaluwarsa dan sebagian besar tabel pelangi digunakan untuk memecahkan kata sandi yang dibangun untuk menargetkan aplikasi dan sistem menggunakan metode hashing ini. Pertimbangkan untuk menggunakan metode hashing yang lebih modern seperti SHA2.
  2. Gunakan "Salt" kriptografi dalam rutinitas hashing sandi Anda. Menambahkan Garam kriptografi ke fungsi hashing kata sandi Anda akan membantu mempertahankan terhadap penggunaan Tabel Pelangi yang digunakan untuk memecahkan sandi dalam aplikasi Anda. Untuk melihat beberapa contoh pengkodean tentang cara menggunakan garam kriptografi untuk membantu "Pelangi-Bukti" aplikasi Anda, silakan periksa situs WebMasters By Design yang memiliki artikel bagus tentang topik tersebut.

Jika Anda ingin melihat bagaimana peretas melakukan serangan sandi menggunakan Tabel Pelangi, Anda dapat membaca artikel yang sangat bagus ini tentang cara menggunakan teknik ini untuk memulihkan kata sandi Anda sendiri.