Rainbow Tables: Nightmare Worst Password Anda

Jangan biarkan nama lucu mereka menipu anda, perkara-perkara ini menakutkan.

Walaupun anda mungkin memikirkan Tabir Rainbow sebagai perabot yang berwarna-warni eklektik, mereka bukanlah yang akan dibincangkan. Jadual Rainbow yang kita bicarakan digunakan untuk melancarkan kata laluan dan merupakan alat lain dalam senjata penggembalaan yang sentiasa berkembang.

Apa khabar Rainbow Tables? Bagaimana mungkin sesuatu dengan nama yang comel dan berkilau begitu berbahaya?

Konsep Dasar Di Sebalik Tabir Rainbow

Saya seorang yang jahat yang baru saja memasang pemacu ibu jari ke pelayan atau stesen kerja, reboot, dan menjalankan program yang menyalin fail pangkalan data keselamatan yang mengandungi nama pengguna dan kata laluan pada pemacu ibu jari saya.

Kata laluan dalam fail disulitkan supaya saya tidak dapat membacanya. Saya perlu memecahkan kata laluan dalam fail (atau sekurang-kurangnya kata laluan pentadbir) supaya saya dapat menggunakannya untuk mengakses sistem.

Apakah pilihan untuk password retak? Saya boleh mencuba dan menggunakan program retak kata laluan kekerasan seperti John the Ripper, yang menumpu pada fail kata laluan, cuba secara terperinci meneka setiap kombinasi kata laluan yang mungkin. Pilihan kedua ialah memuatkan kamus retak kata laluan yang mengandungi beratus ribu kata laluan yang biasa digunakan dan lihat apakah ia mendapat sebarang hits. Kaedah ini boleh mengambil minggu, bulan, atau tahun jika kata laluan cukup kuat.

Apabila kata laluan "dicuba" terhadap sistem, ia "telah hilang" menggunakan penyulitan supaya kata laluan sebenar tidak dihantar dalam teks yang jelas di seluruh talian komunikasi. Ini menghalang penyemak imbas daripada memintas kata laluan. Hash kata laluan biasanya kelihatan seperti sekumpulan sampah dan biasanya panjang yang berbeza daripada kata laluan asal. Kata laluan anda mungkin "shitzu" tetapi hash kata laluan anda akan kelihatan seperti "7378347eedbfdd761619451949225ec1".

Untuk mengesahkan pengguna, sistem mengambil nilai hash yang dicipta oleh fungsi hashing kata laluan pada komputer klien dan membandingkannya dengan nilai hash yang disimpan dalam jadual di pelayan. Sekiranya hash itu padan, maka pengguna disahkan dan diberi akses.

Hashing kata laluan adalah fungsi 1 arah, bermakna anda tidak boleh menyahsulit hash untuk melihat teks kata laluan yang jelas. Tiada kunci untuk menyahsulit hash sebaik sahaja ia dicipta. Tidak ada "cincin decoder" jika anda akan.

Program retak kata laluan berfungsi dengan cara yang sama seperti proses log masuk. Program retak bermula dengan menggunakan kata laluan plaintext, menjalankannya melalui algoritma hash, seperti MD5, dan kemudian membandingkan output hash dengan hash dalam fail kata laluan yang dicuri. Jika ia mendapati perlawanan maka program tersebut telah memecahkan kata laluan. Seperti yang kita katakan sebelum ini, proses ini boleh mengambil masa yang sangat lama.

Masukkan Jadual Rainbow

Jadual Rainbow pada dasarnya adalah jadual besar yang dipenuhi dengan nilai hash yang dipadankan dengan kata laluan plaintext yang mungkin. Jadual Rainbow pada asasnya membolehkan penggodam untuk membalikkan fungsi hash untuk menentukan kata laluan plaintext. Ia mungkin untuk dua kata laluan yang berbeza untuk menghasilkan hash yang sama supaya tidak penting untuk mengetahui kata laluan asalnya, selagi ia mempunyai hash yang sama. Kata laluan plaintext mungkin tidak menjadi kata laluan yang sama yang dibuat oleh pengguna, tetapi selagi hash dipadankan, maka tidak kira kata laluan asalnya.

Penggunaan Rainbow Tables membolehkan kata laluan untuk retak dalam masa yang sangat singkat berbanding dengan kaedah kekerasan, bagaimanapun, trade-off adalah bahawa ia memerlukan banyak penyimpanan (kadang-kadang Terabytes) untuk memegang Rainbow Tables sendiri, Penyimpanan hari-hari ini banyak dan murah jadi perdagangan luar ini bukanlah satu kesepakatan yang besar kerana satu dekad yang lalu apabila pemanduan terabyte bukan sesuatu yang anda boleh mengambil di Best Buy tempatan.

Hacker boleh membeli Rainbow Tables yang terdahulu untuk mengesan kata laluan sistem operasi terdedah seperti Windows XP, Vista, Windows 7, dan aplikasi menggunakan MD5 dan SHA1 sebagai mekanisme hashing kata laluan mereka (banyak pemaju aplikasi web masih menggunakan algoritma hashing ini).

Bagaimana Melindungi Diri Terhadap Serangan Kata Laluan Berasaskan Jadual Rainbow

Kami berharap terdapat nasihat yang lebih baik mengenai perkara ini untuk semua orang. Kami ingin mengatakan bahawa kata laluan yang lebih kuat akan membantu, tetapi ini tidak benar kerana ia bukan kelemahan kata laluan yang masalahnya, itu kelemahan yang berkaitan dengan fungsi hashing yang digunakan untuk menyulitkan kata laluan.

Nasihat terbaik yang boleh kita berikan kepada pengguna adalah untuk menjauhkan diri dari aplikasi web yang menyekat panjang kata laluan anda kepada bilangan huruf yang pendek. Ini adalah tanda yang jelas mengenai rutin pengesahan kata laluan lama sekolah. Panjang kata laluan yang diperluas dan kerumitan boleh membantu sedikit, tetapi bukan merupakan bentuk perlindungan yang dijamin. Semakin panjang kata laluan anda, semakin besar Tabir Rainbow harus memecahkannya, tetapi seorang penggodam dengan banyak sumber masih dapat menyelesaikannya.

Nasihat kami tentang bagaimana untuk mempertahankan terhadap Rainbow Tables benar-benar dimaksudkan untuk pemaju aplikasi dan pentadbir sistem. Mereka berada di barisan depan apabila ia datang untuk melindungi pengguna daripada serangan jenis ini.

Berikut adalah beberapa petua pembangun untuk mempertahankan serangan terhadap Rainbow Table:

  1. Jangan gunakan MD5 atau SHA1 dalam fungsi hash kata laluan anda. MD5 dan SHA1 adalah algoritma hashing yang telah lapuk dan kebanyakan jadual pelangi digunakan untuk memecahkan kata laluan dibina untuk mensasarkan aplikasi dan sistem menggunakan kaedah hash ini. Pertimbangkan menggunakan kaedah hash yang lebih moden seperti SHA2.
  2. Gunakan "Salt" kriptografi dalam rutin kata laluan hashing anda. Menambah garam kriptografi ke fungsi hash kata laluan anda akan membantu mempertahankan terhadap penggunaan Rainbow Tables yang digunakan untuk memecahkan kata laluan dalam permohonan anda. Untuk melihat beberapa contoh pengekodan bagaimana menggunakan garam kriptografi untuk membantu "Rainbow-Proof" permohonan anda, sila lihat laman web WebMasters By Design yang mempunyai artikel hebat mengenai topik ini.

Sekiranya anda ingin melihat bagaimana penggodam melakukan serangan kata laluan menggunakan Rainbow Tables, anda boleh membaca artikel yang sangat baik ini tentang cara menggunakan teknik ini untuk mendapatkan kata laluan anda sendiri.