Tuz, nonneslar va mikroblar .. Qanday farq bor?

Parol va foydalanuvchilar xavfsizligini ta'minlash maqsadida ma'lumotlarning buzilishi haqida gap ketganda, bir nechta turli xil yo'llar mavjud. Ushbu algoritmlarning barchasida kamalak jadvallari kabi hisoblashdan oldin xurujlarning oldini olish uchun turli xil yondashuvlar mavjud.

Tuzlar, nanslar va IVlar - bu bir vaqtning o'zida ishlatiladigan qiymatlar bo'lib, ular maxfiy bo'lishi shart emas, lekin qo'shimcha xavfsizlikka olib keladi. Umuman olganda, ushbu qadriyatlar tajovuzkorlar uchun ko'rinadi, hatto ba'zida ularni yashirish mumkin bo'lsa ham.

Tuz

Odatda, tuz parolga asoslangan tizimlarda ishlatiladi va ishlov berishdan oldin parolning old tomoniga biriktiriladi. Boshqacha qilib aytganda, agar tuz bo'lmasa, tajovuzkor umumiy parollarning lug'atini tuzishi va autentifikator tomonidan asl parolni izlashi mumkin.

Tuzdan foydalanish, tajovuzkor har qanday tuz qiymati uchun mutlaqo alohida lug'at tuzishi kerakligini anglatadi. Agar tuz etarlicha katta bo'lsa, u lug'at hujumlarini biroz qiyinroq qiladi.

Murch

Qalampir tuz bilan taqqoslanadigan rolni bajaradi, lekin tuz sir emas (shunchaki noyob) va chiqindi yonida saqlanishi mumkin bo'lsa, qalampir sir bo'lib, uni chiqish paytida saqlamaslik kerak. Odatda, parol oxirida faqat bitta belgi qo'shiladi. Xesh va tuz odatda ma'lumotlar bazasida saqlanadi, ammo qalampir uni alohida saqlanishi kerak (masalan, konfiguratsiya faylida) ma'lumotlar bazasi buzilgan taqdirda tajovuzkor tomonidan olinishini oldini olish uchun. Yoki foydalanishdan keyin shunchaki tashlanadi. Odatda, siz tuzni va qalampirni xeshingizga tatbiq qilishni xohlaysiz.

Nonce ("bir marta ishlatiladigan raqam") - bu ko'pincha xabarlarni tasdiqlash kodlari va ba'zi shifrlash rejimlarini o'z ichiga olgan kriptografik protokollar va algoritmlarga kiritiladigan ma'lumotlarning to'plamidir. Bunday qiymatlardan faqat biron bir aniq kriptografik kalit bilan foydalanilishi kerak. Aslida, odatda qayta foydalanish taqiqlanmagan, ammo qayta foydalanish ehtimoli juda past bo'lishi kerak.

Tegishli nanslarning tasodifiy nanslarga nisbatan bir nechta afzalliklari bor:

  • Siz nanslarning takrorlanmasligiga osongina kafolat berishingiz mumkin. E'tibor bering, agar bo'sh joy katta bo'lsa, bu aslida tashvishlanmaydi.
  • Ko'p protokollar allaqachon har bir paket uchun noyob tartib raqamini yuboradi, shuning uchun uzatilgan xabarlarda joy tejash mumkin.
  • Replikatsiya hujumlarining oldini olish uchun nanslarni ketma-ket buyurtma qilish mumkin, ammo agar siz nens har doim o'sib borayotganligini tekshirsangiz. Ya'ni, agar har bir xabarda uning eshigi biriktirilgan bo'lsa, xabarni to'g'ri tartibda kelganligini yoki yo'qligini qarab, uning qiymati har doim o'sib borishiga ishonch hosil qilishingiz mumkin.

Shu bilan birga, nansda tasodifiylik bir xil tizimdagi bir nechta tugmachalarda ishlashni amortizatsiyalashga olib keladigan hujumlar oldini olishga yordam beradi. Umuman olganda siz ham tasodifiy qismga, ham ketma-ket qismga ega bo'lishni xohlaysiz.

1-qadam: Mijoz SCRAM haqiqiyligini tekshirish seansini boshlaydi

2-qadam: Server qiyinchiliklar tug'diradi

3-qadam: Mijoz isbot bilan javob beradi

Initsializatsiya vektori

IV yoki boshlang'ich o'zgaruvchilar - bu doimiy o'lchamdagi kiritishdir.

IV va nonce ko'pincha bir-birining o'rnida ishlatiladi. Aslida, ammo IV qo'shimcha talabga ega bo'lgan kuchdir: uni oldindan aytib bo'lmaydigan tarzda tanlash kerak. Bu barcha ketma-ket nanslarni yo'q qiladi, IV tasodifiy bo'lishi kerak.

BCRYPT

Ammo biz kiberxavfsizlik uchun taqdim etgan g'oyat ajoyib sovg'a haqida unutolmaymiz. bcrypt () bu parollarni xesh qilish uchun OpenBSD loyihasi tomonidan ishlab chiqilgan murakkab va xavfsiz hash algoritmi. Bcrypt Ruby gem parollarni xavfsiz ishlatish uchun oddiy o'rash vositasini taqdim etadi. Odatda parol bcrypt algoritmidan o'tib, boshqa xavfsizlik sathi uchun "tuzlangan" bo'ladi.

Umuman olganda, tuzlar va IV-lar tasodifiy bo'lishi kerak, va nanslar odatda ketma-ket, potentsial tasodifiy tuz bilan, agar joy bo'lsa, bo'lishi mumkin. Bosqichli bo'shliqlar bilan siz hech qachon bitta {kalit, nonce} juftligini takrorlamasligingizga ishonch hosil qilishingiz kerak. Agar siz bcrypt sehriga ega bo'lmasangiz, ma'lumotlarni himoya qilish uchun bir nechta algoritmlarni ko'rib chiqsangiz yaxshi bo'ladi.