Bosh sahifa Wiki Pepper

Pepper

Pepperpassword hashing jarayonida parolga qo‘shimcha qo‘shiladigan maxfiy qiymat. Pepper saltga o‘xshash ko‘rinishi mumkin, lekin undan farqli ravishda maxfiy saqlanadi va odatda database ichida turmaydi.

Pepper foydalanuvchi parollarini himoyalashda qo‘shimcha xavfsizlik qatlami sifatida ishlatiladi. U authentication tizimlarida database leak bo‘lgan holatda parol hashlarini topishni yanada qiyinlashtiradi.

Vazifasi

Pepper password hashing jarayonini qo‘shimcha maxfiy qiymat bilan kuchaytiradi.

Pepper quyidagi vazifalarni bajaradi:

  • password hashga qo‘shimcha maxfiylik qatlami qo‘shish;
  • database leak bo‘lganda parollarni aniqlashni qiyinlashtirish;
  • salt va hash database’da bo‘lsa ham, alohida secret talab qilish;
  • application darajasida parol hashing xavfsizligini oshirish;
  • secret manager yoki environment variable bilan ishlash;
  • brute force hujumlarini murakkablashtirish.

Masalan, database ichida hash va salt bo‘lsa ham, pepper alohida joyda saqlansa, hujumchi parolni tekshirish uchun pepper qiymatini ham bilishi kerak bo‘ladi.

Pepper qanday ishlaydi?

Pepper foydalanuvchi paroliga yoki hashing jarayoniga qo‘shimcha maxfiy qiymat sifatida qo‘shiladi.

Oddiy jarayon:

  • foydalanuvchi parol kiritadi;
  • tizim salt yaratadi yoki mavjud saltni oladi;
  • tizim maxfiy pepper qiymatini oladi;
  • parol, salt va pepper asosida hash hosil qilinadi;
  • database’da hash va salt saqlanadi;
  • pepper database’dan alohida joyda saqlanadi.

Login vaqtida tizim yana shu pepper qiymatidan foydalanib parolni tekshiradi.

Pepper va salt farqi

Pepper va salt ikkalasi ham password hashing bilan bog‘liq, lekin vazifasi va saqlanish joyi farq qiladi.

Farqlar:

  • Salt har bir parol uchun alohida bo‘ladi;
  • Pepper ko‘pincha butun tizim uchun umumiy bo‘ladi;
  • salt database’da hash bilan birga saqlanishi mumkin;
  • pepper database’dan alohida va maxfiy saqlanadi;
  • salt maxfiy bo‘lishi shart emas;
  • pepper maxfiy bo‘lishi kerak;
  • salt bir xil parollarni turli hashga aylantiradi;
  • pepper qo‘shimcha maxfiy qatlam beradi.

Salt password hashingning asosiy qismi, pepper esa qo‘shimcha himoya qatlami hisoblanadi.

Pepper qayerda saqlanadi?

Pepper database’da hash bilan birga saqlanmaydi. U alohida maxfiy konfiguratsiyada turadi.

Pepper saqlanishi mumkin bo‘lgan joylar:

Pepperning qiymati public repository, frontend kod yoki database ichida ochiq turmasligi kerak.

Secret manager

Secret manager — maxfiy qiymatlarni xavfsiz saqlash va boshqarish uchun ishlatiladigan tizim. Pepper kabi qiymatlar secret manager ichida saqlanishi mumkin.

Secret manager quyidagilarni saqlashi mumkin:

Secret manager maxfiy konfiguratsiyani application kodidan ajratib saqlashga yordam beradi.

Pepper va password hashing

Pepper password hashing algoritmi bilan birga ishlaydi. U alohida algoritm emas, balki hashing jarayoniga qo‘shiladigan maxfiy qiymatdir.

Pepper quyidagi algoritmlar bilan ishlatilishi mumkin:

Password hashing algoritmi asosiy himoyani beradi, pepper esa database’dan tashqarida saqlanadigan qo‘shimcha maxfiy qiymat sifatida qatnashadi.

Pepper maxfiyligi

Pepper maxfiy saqlanishi kerak. Agar pepper oshkor bo‘lsa, u qo‘shimcha himoya qatlami sifatida foydasini yo‘qotadi.

Pepper maxfiyligi quyidagilar bilan bog‘liq:

Pepper parol kabi foydalanuvchi kiritadigan qiymat emas. U tizimga tegishli maxfiy qiymat hisoblanadi.

Pepper rotation

Pepper rotation — pepper qiymatini almashtirish jarayoni. Bu murakkab jarayon bo‘lishi mumkin, chunki eski hashlar eski pepper bilan yaratilgan bo‘ladi.

Pepper rotationda quyidagi yondashuvlar uchraydi:

  • eski va yangi pepperni vaqtincha birga qo‘llash;
  • foydalanuvchi login qilganda hashni yangi pepper bilan yangilash;
  • parol reset orqali yangi hash yaratish;
  • versionlangan pepper ishlatish;
  • eski pepperni belgilangan muddat saqlash.

Pepper rotation password hashing arxitekturasida oldindan hisobga olinadigan masalalardan biridir.

Pepper va database leak

Database leak bo‘lganda hujumchi database ichidagi foydalanuvchi hashlarini va salt qiymatlarini ko‘rishi mumkin. Agar pepper database’dan alohida saqlangan bo‘lsa, hujumchiga parollarni tekshirish uchun pepper ham kerak bo‘ladi.

Bunday holatda pepper:

  • hashlarni bevosita tekshirishni qiyinlashtiradi;
  • database leak ta’sirini kamaytiradi;
  • application secretga bog‘liq qo‘shimcha himoya beradi;
  • parol cracking jarayonini murakkablashtiradi.

Pepper database’dan tashqarida saqlangani uchun uning foydasi aynan shu holatda bilinadi.

Pepper va brute force

Brute force hujumida hujumchi taxminiy parollarni hash qilib, database’dagi hash bilan solishtiradi. Pepper ishlatilsa, hujumchi to‘g‘ri hash yaratish uchun pepper qiymatini ham bilishi kerak.

Brute force jarayonida pepper:

  • parol taxmin qilishni murakkablashtiradi;
  • database’dagi hashni tekshirishni qiyinlashtiradi;
  • saltga qo‘shimcha qatlam bo‘ladi;
  • maxfiy application qiymatini talab qiladi.

Lekin pepper password hashing algoritmini almashtirmaydi. Asosiy himoya bcrypt, Argon2, PBKDF2 yoki scrypt kabi algoritmlar orqali bo‘ladi.

Pepper va HMAC

Ayrim tizimlarda pepper HMAC orqali ishlatilishi mumkin. Bunda parol yoki password hash maxfiy key asosida HMAC qilinadi.

HMAC bilan pepper ishlatilganda:

  • pepper secret key sifatida ishlaydi;
  • HMAC parol yoki hash ustida bajariladi;
  • natija keyingi hashing yoki tekshiruv jarayonida ishlatiladi;
  • pepper maxfiy saqlanishi kerak.

Bu yondashuv tizim arxitekturasiga qarab farq qiladi.

Pepper va encryption farqi

Pepper encryption emas. U parolni shifrlamaydi va keyin decrypt qilib qaytarib bermaydi.

Farqlar:

Pepper faqat hash yaratish va tekshirish jarayonida qatnashadi.

Pepper ishlatiladigan joylar

Pepper asosan foydalanuvchi parollari yoki maxfiy credentiallarni himoyalashda ishlatiladi.

Pepper quyidagi tizimlarda uchrashi mumkin:

  • login tizimlari;
  • admin panellar;
  • SaaS platformalar;
  • banking tizimlari;
  • enterprise authentication;
  • API credential storage;
  • ichki korporativ tizimlar;
  • yuqori xavfsizlik talab qiladigan ilovalar.

Pepper oddiy barcha tizimlarda majburiy element emas, lekin xavfsizlik qatlami sifatida ishlatilishi mumkin.

Dasturlashdagi o‘rni

Pepper password hashing jarayonida database’dan alohida saqlanadigan maxfiy qiymat sifatida ishlatiladi. U salt o‘rnini bosmaydi, balki salt va password hashing algoritmiga qo‘shimcha himoya qatlami qo‘shadi.

Pepper authentication tizimlarida parol hashlarini himoyalash, database leak xavfini kamaytirish va secret-based security qatlamini yaratish uchun ishlatiladi.

Bog‘liq tushunchalar

Password hashing, Salt, Hash, bcrypt, Argon2, PBKDF2, scrypt, HMAC, Secret manager, Brute force, Authentication, Security