Bosh sahifa Wiki Rainbow table

Rainbow table

Rainbow tablehash funksiyasi natijalaridan foydalanib, parol kabi taxmin qilinadigan kirishlarni tezroq tiklash uchun oldindan hisoblangan zanjirlar jadvali. U har bir parol–hash juftligini to‘liq saqlamaydi; hash va candidate oralig‘ida almashinadigan hash hamda reduction funksiyalari zanjiridan faqat boshlanish va tugash nuqtalarini yozadi. Bu vaqt va xotira o‘rtasidagi trade-off orqali bir xil saltsiz hashlar to‘plamiga takroriy hujumni tezlashtiradi.

Zanjir tuzilishi

Jadval yaratishda candidate parol xeshlanadi, reduction funksiyasi esa hashni yana parol maydonidagi yangi candidatega xaritalaydi. Reduction hashni teskari hisoblamaydi; u shunchaki digestdan qoidaga mos yangi satr hosil qiladi. Jarayon ko‘p marta takrorlanadi. Turli ustunlarda turli reduction ishlatilishi zanjirlarning birlashish ehtimolini kamaytiradi.

Berilgan hash qidirilganda hujumchi uni zanjirning mumkin bo‘lgan har bir pozitsiyasidan tugashgacha davom ettirib, jadvaldagi endpointga moslik izlaydi. Mos endpoint topilsa, tegishli boshlanishdan zanjir qayta hisoblanib, target hashdan oldingi candidate olinadi. False alarm bo‘lishi mumkin, shuning uchun natija haqiqiy hash bilan tekshiriladi.

Salt ta’siri

Har parol uchun noyob tasodifiy salt hash hisobiga qo‘shilsa, ayni parol turli hisoblarda boshqa natija beradi. Hujumchi har bir salt uchun alohida rainbow table qurishi kerak bo‘ladi va oldindan hisoblashning ommaviy foydasi yo‘qoladi. Salt secret bo‘lishi shart emas; u hash yozuvi bilan saqlanadi.

Salt parol taxminini sekinlashtirmaydi. Hujumchi bitta yozuv uchun lug‘at yoki brute-force candidate’larini ayni salt bilan tez hisoblay oladi. Shu sababli salt Argon2id, scrypt, bcrypt yoki PBKDF2 kabi sekin password hashing funksiyasi bilan birga ishlatiladi. Oddiy SHA-256(salt || password) rainbow table’ni to‘xtatsa ham, GPU hujumiga qarshi yetarli xarajat yaratmaydi.

Zamonaviy hujumlar bilan munosabati

Katta disk jadvallari tarixan tez, saltsiz LM, MD5 yoki SHA-1 parol hashlariga qarshi muhim edi. Zamonaviy GPUlar candidate’larni juda tez joyida hisoblay olgani sababli lug‘at, rule-based va mask attack ko‘pincha rainbow table’dan moslashuvchanroq. Shunga qaramay, tushuncha salt nima uchun zarurligini va qayta ishlatiladigan precomputation xavfini ko‘rsatadi.

Bir xil saltni barcha foydalanuvchiga berish ham umumiy jadval yaratish imkonini qaytaradi. Salt qisqa yoki ketma-ket bo‘lsa, hujumchi mashhur qiymatlar uchun precomputation qilishi mumkin. Kriptografik tasodifiy, yetarli uzun salt collision ehtimolini amaliy nolga tushiradi.

Boshqa himoya qatlamlari

Pepper bazadan tashqari saqlanadigan umumiy secret bo‘lib, faqat hash bazasi sizganda hujumchiga qo‘shimcha to‘siq beradi. Pepper yo‘qolsa barcha parol tekshiruvlari buzilishi, compromise bo‘lsa rotation qiyinlashishi mumkin. U salt va memory-hard KDFning o‘rnini bosmaydi.

Password manager yaratgan uzun noyob parollar candidate taqsimotini kengaytiradi. MFA topilgan parolning o‘zi bilan loginni cheklaydi. Baza himoyasi, least privilege va monitoring hashlarning o‘g‘irlanish ehtimolini kamaytiradi; hashing esa baza baribir sizib chiqqanda zarar tezligini boshqaradi.

Zanjir collisionlari

Ikki zanjir bir xil oraliq qiymatga tushsa, keyingi qismlari birlashib ketadi va jadval qamrovi kamayadi. Rainbow table ustun pozitsiyasiga qarab turli reduction funksiyasi ishlatib, oddiy hash chainlardagi birlashishni kamaytiradi. Baribir barcha candidate’lar qamrab olinmaydi; table success rate, chain uzunligi, soni va saqlash hajmi orasida muvozanat mavjud.

Maxsus hash formatlari

Windows LM hash kabi meros formatlar parolni bo‘laklarga ajratishi yoki case ma’lumotini yo‘qotishi sabab qidiruv maydonini keskin qisqartirgan. Rainbow table bunday strukturaviy zaiflikdan foydalanadi. Zamonaviy tizim eski hashni faqat tekshirish uchun vaqtincha qo‘llab, muvaffaqiyatli login paytida foydalanuvchini saltli memory-hard formatga o‘tkazadi.

Bog‘liq tushunchalar

Password hash, Salt, Reduction function, Time-memory trade-off, Brute force, Dictionary attack, Argon2