Ikki faktorli autentifikatsiya
Siz o'qigan hamma narsa ekanligiga asoslanib identifikatsiya qilish bilan bog'liq so'rovchi biladi. U elektron pochta manzilini biladi, unga qanday kirishni biladi (ya'ni elektron pochta parolini biladi) va xavfsizlik savollariga javoblarni biladi.
“Bilim” autentifikatsiya faktorlaridan biri hisoblanadi; yana ikkita umumiy omil sizda nima bor, masalan, jismoniy qurilma va Siz kimsizbarmoq izlari yoki ko'zning to'r pardasi kabi.

Ko'pgina hollarda, biologik identifikatsiyani amalga oshirish mumkin emas, ayniqsa veb-ilovalarning xavfsizligi haqida gapirganda, shuning uchun ikki faktorli autentifikatsiya (ikki faktorli autentifikatsiya, 2FA) bilan odatda ikkinchi atribut ishlatiladi - "sizda nima bor". Ushbu ikkinchi omilning mashhur o'zgarishi jismoniy tokendir, masalan, :

Jismoniy token ko'pincha korporativ VPN va moliyaviy xizmatlarda autentifikatsiya qilish uchun ishlatiladi. Xizmatni autentifikatsiya qilish uchun siz PIN-kod bilan birgalikda parol va tokendagi koddan (tez-tez o'zgarib turadigan) foydalanishingiz kerak. Nazariy jihatdan, tajovuzkorni aniqlash uchun u parolni bilishi, tokenga ega bo'lishi va tokenning PIN-kodini ham bilishi kerak. Parolni qayta o'rnatish stsenariysida parolning o'zi noma'lum ko'rinadi, ammo tokenga egalik qilish hisobning egaligini isbotlash uchun ishlatilishi mumkin. Albatta, har qanday xavfsizlikni amalga oshirishda bo'lgani kabi, , lekin, albatta, kirish uchun to'siqni oshiradi.
Ushbu yondashuvning asosiy muammolaridan biri - amalga oshirishning narxi va logistikasi; biz har bir mijozga jismoniy qurilmalarni topshirish va ularga yangi jarayonni o'rgatish haqida gapiramiz. Bundan tashqari, foydalanuvchilar o'zlari bilan qurilmaga ega bo'lishlari kerak, bu har doim ham jismoniy tokenga tegishli emas. Yana bir variant - SMS yordamida autentifikatsiyaning ikkinchi omilini amalga oshirish, bu 2FA holatida qayta o'rnatish jarayonini amalga oshirayotgan shaxs hisob egasining mobil telefoniga ega ekanligini tasdiqlash bo'lishi mumkin. Google buni qanday qiladi:

Siz ham yoqishingiz kerak , lekin bu keyingi safar parolingizni qayta o'rnatganingizda, mobil telefoningiz ikkinchi autentifikatsiya omiliga aylanishi mumkinligini anglatadi. Buni o'z misolim bilan ko'rsatib beray. iPhone tez orada aniq bo'ladigan sabablarga ko'ra:

Hisobning elektron pochta manzilini aniqlagandan so'ng, Google 2FA yoqilganligini aniqlaydi va biz hisob egasining mobil telefoniga SMS orqali yuboriladigan tasdiqlash yordamida hisobni qayta tiklashimiz mumkin:

Endi biz qayta tiklash jarayonining boshlanishini tanlashimiz kerak:

Ushbu harakat ro'yxatdan o'tgan manzilga elektron pochta xabarini yuboradi:

Bu e-pochtada qayta tiklash URL manzili mavjud:

Qayta tiklash URL manziliga kirishda SMS yuboriladi va veb-sayt buni so'raydi:

Mana SMS:

Uni brauzerga kiritgandan so'ng, biz klassik parolni tiklash hududiga qaytamiz:

Bu, ehtimol, bir oz mufassal eshitiladi va shundaydir, lekin shakl qayta o'rnatishni amalga oshiruvchi shaxs hisob egasining elektron pochta manzili va mobil telefoniga kirish huquqiga ega ekanligini tasdiqlaydi. Ammo bu faqat elektron pochta orqali parolni tiklashdan to'qqiz baravar xavfsizroq bo'lishi mumkin. Biroq, muammolar mavjud ...
Muammo smartfonlar bilan bog'liq. Quyida ko'rsatilgan qurilma autentifikatsiyaning faqat bitta omilini tasdiqlashi mumkin - u SMS qabul qilishi mumkin, lekin elektron pochta xabarini qabul qila olmaydi:

Biroq, bu qurilma SMS qabul qilishi mumkin и parolni tiklash uchun elektron pochta xabarlarini oling:

Muammo shundaki, biz elektron pochtani autentifikatsiyaning birinchi omili, SMS (yoki hatto token ishlab chiqaruvchi dastur) ikkinchisi deb hisoblaymiz, ammo bugungi kunda ular bitta qurilmada birlashtirilgan. Albatta, bu shuni anglatadiki, agar kimdir sizning smartfoningizga kirsa, unda bu qulayliklarning barchasi biz yana o'sha kanalga qaytganimizga bog'liq; bu ikkinchi omil "sizda nima bor" sizda ham birinchi omil borligini bildiradi. Va barchasi bitta to'rt xonali PIN-kod bilan himoyalangan...agar telefonda umuman PIN-kod bo'lsa. и u bloklandi.
Ha, Google-ning 2FA xususiyati, albatta, qo'shimcha himoyani ta'minlaydi, lekin u ishonchli emas va bu, albatta, ikkita butunlay avtonom kanalga bog'liq emas.
Foydalanuvchi nomi bilan asl holatini tiklash va elektron pochta manzili bo'yicha tiklash
Faqat elektron pochta manzili orqali tiklashga ruxsat berishim kerakmi? Yoki foydalanuvchi nomi bo'yicha ham qayta o'rnatishi mumkinmi? Foydalanuvchi nomi bilan qayta o'rnatish bilan bog'liq muammo shundaki, foydalanuvchini noto'g'ri foydalanuvchi nomi haqida xabardor qilishning hech qanday usuli yo'q, oshkor qilmasdan boshqa birovning shu nomdagi hisobi bo'lishi mumkin. Oldingi bo'limda elektron pochtani qayta tiklash ushbu elektron pochtaning qonuniy egasi har doim tizimda mavjudligini oshkor qilmasdan fikr-mulohazalarni olishini ta'minladi. Buni faqat foydalanuvchi nomi bilan qilish mumkin emas.
Shunday qilib, qisqa javob: faqat elektron pochta. Agar siz faqat foydalanuvchi nomi bilan qayta tiklashga harakat qilsangiz, foydalanuvchi nima bo'lganiga hayron bo'ladigan holatlar bo'ladi, yoki hisoblar mavjudligini oshkor qilasiz. Ha, bu shunchaki foydalanuvchi nomi, elektron pochta manzili emas, va ha, har kim istalgan (mavjud) foydalanuvchi nomini tanlashi mumkin, lekin foydalanuvchilarning ismni qayta ishlatishga moyilligi tufayli siz hisob egalarini bilvosita oshkor etishingiz uchun yaxshi imkoniyat bor.
Xo'sh, kimdir foydalanuvchi nomini unutib qo'ysa nima bo'ladi? Agar foydalanuvchi nomi darhol elektron pochta manzili emas deb faraz qilsak (ko'pincha shunday bo'ladi), unda jarayon parolni tiklash qanday boshlanganiga o'xshaydi - elektron pochta manzilini kiriting va keyin uning mavjudligini oshkor qilmasdan ushbu manzilga xabar yuboring. Yagona farq shundaki, bu safar xabarda parolni tiklash URL manzili emas, faqat foydalanuvchi nomi mavjud. Yoki bu yoki elektron pochtada bu manzil uchun hisob yo'qligi aytiladi.
Shaxsni tekshirish va elektron pochta manzillarining to'g'riligi
Parollarni tiklashning asosiy jihati va, ehtimol, hatto eng ko'p asosiy jihat - qayta o'rnatishga urinayotgan shaxsning shaxsini tekshirish. Bu haqiqatan ham akkauntning qonuniy egasimi yoki kimdir uni buzishga yoki egasiga noqulaylik tug'dirmoqchimi?
Shubhasiz, elektron pochta eng qulay va eng keng tarqalgan shaxsni tekshirish kanalidir. Bu ishonchli emas va identifikatsiya qilishda yuqori darajadagi ishonch talab etilsa (shuning uchun 2FA ishlatiladi), agar hisob egasining manziliga pochtani qabul qilishning o'zi kifoya qilmaydigan ko'p holatlar mavjud, ammo bu deyarli har doim boshlang'ich nuqtasi, qayta tiklash jarayoni.
Agar elektron pochta ishonchni ta'minlashda rol o'ynaydigan bo'lsa, unda birinchi qadam elektron pochta manzilining to'g'ri ekanligiga ishonch hosil qilishdir. Agar kimdir ramz bilan xatoga yo'l qo'ygan bo'lsa, unda, albatta, qayta o'rnatish boshlanmaydi. Ro'yxatdan o'tish vaqtida elektron pochtani tekshirish jarayoni manzilning to'g'riligini tekshirishning ishonchli usuli hisoblanadi. Biz hammamiz buni amalda ko‘rdik: ro‘yxatdan o‘tganingizda, sizga bosish uchun noyob URL manzili bo‘lgan elektron xat yuboriladi, bu esa o‘sha elektron pochta hisobining haqiqiy egasi ekanligingizni tasdiqlaydi. Ushbu jarayon tugamaguncha tizimga kira olmaslik manzilni tekshirish uchun motivatsiya mavjudligini ta'minlaydi.
Xavfsizlikning ko'plab boshqa jihatlarida bo'lgani kabi, bu model foydalanuvchi identifikatoriga nisbatan yuqori darajadagi xavfsizlikni ta'minlash evaziga foydalanish imkoniyatini pasaytiradi. Bu foydalanuvchi ro'yxatdan o'tishni yuqori baholaydigan va jarayonga (pullik xizmatlar, bank xizmatlari va h.k.) yana bir qadamni qo'shishdan mamnun bo'lgan sayt uchun maqbul bo'lishi mumkin, ammo agar u hisobni "bir-bir" deb hisoblasa, bunday narsalar foydalanuvchini qaytarishi mumkin. vaqt” va dan, masalan, postga sharh berish vositasi sifatida foydalanadi.
Qayta tiklash jarayonini kim boshlaganligini aniqlash
Shubhasiz, asl holatini tiklash xususiyatidan zararli foydalanish uchun sabablar bor va tajovuzkorlar uni turli yo'llar bilan ishlatishlari mumkin. So'rovning kelib chiqishini tekshirishga yordam berish uchun foydalanishimiz mumkin bo'lgan bitta oddiy hiyla (bu hiyla odatda ishlaydi) so'rovchining IP manzilini tiklash taklifi bilan xatga qo'shimcha. Qabul qiluvchini ta'minlaydi biroz so'rovning manbasini aniqlash uchun ma'lumot.
Men hozirda ASafaWeb-ga qurayotgan reset funksiyasidan misol:

"Batafsil ma'lumot" havolasi foydalanuvchini saytga olib boradi , qayta tiklash so'rovchisining joylashuvi va tashkiloti kabi ma'lumotlarni taqdim etish:

Albatta, o'z shaxsini yashirishni istagan har bir kishi o'zining haqiqiy IP-manzilini xiralashtirishning ko'plab usullariga ega, ammo bu so'rovchining qisman identifikatsiyasini qo'shishning qulay usuli va eng Ba'zi hollarda, bu sizga parolni tiklash so'rovini kim bajarishi haqida adolatli fikr beradi.
Elektron pochtani o'zgartirish haqida bildirishnoma
Ushbu post bitta mavzu bilan qoplangan - muloqot; akkaunt egasiga jarayonning har bir bosqichida sodir bo'layotgan voqealar haqida imkon qadar ko'proq aytib bering, yomon niyat bilan ishlatilishi mumkin bo'lgan narsalarni oshkor qilmasdan. Xuddi shu narsa parol haqiqatda o'zgargan vaziyatga ham tegishli - egasiga xabar bering!
Parolni o'zgartirish sabablari ikkita manba bo'lishi mumkin:
- Kirishdan keyin parolni o'zgartirish, chunki foydalanuvchi yangi parolni xohlaydi
- Parolni loginsiz tiklang, chunki foydalanuvchi uni unutgan
Ushbu post asosan qayta o'rnatish haqida bo'lsa-da, birinchisi haqida xabar berish kimningdir parolni qonuniy egasini bilmagan holda o'zgartirish xavfini kamaytiradi. Bu qanday sodir bo'lishi mumkin? Juda keng tarqalgan stsenariy - bu qonuniy egasining parolini olish (boshqa manbadan sizib chiqqan qayta ishlatilgan parol, keylogging orqali olingan parol, oson taxmin qilinadigan parol va boshqalar), shundan so'ng tajovuzkor uni o'zgartirishga qaror qiladi va shu bilan egasini bloklaydi. Elektron pochta xabarisiz haqiqiy egasi parol o'zgarishidan xabardor bo'lmaydi.
Albatta, parol o'zgartirilgan taqdirda, egasi allaqachon jarayonni o'zi boshlagan bo'lishi kerak (yoki yuqorida tavsiflangan identifikatsiyani tekshirish vositalarini chetlab o'tgan), shuning uchun o'zgartirish bo'lmasligi kerak unga ajablanib bo'ladi, ammo, elektron pochta tasdiqlash ijobiy fikr va qo'shimcha tekshirish bo'ladi. Bundan tashqari, u yuqorida tavsiflangan stsenariy bilan birlikni ta'minlaydi.
Oh, va agar bu hali aniq bo'lmasa - pochta orqali yangi parol yubormang! Bu ba'zilarni kuldirishi mumkin, lekin :

Jurnallar, jurnallar, jurnallar va boshqa jurnallar
Parolni tiklash xususiyati tajovuzkorlar uchun jozibador: tajovuzkor boshqa shaxsning hisobiga kirishni xohlaydi yoki shunchaki hisob/tizim egasiga noqulaylik tug'diradi. Yuqorida tavsiflangan amaliyotlarning ko'pchiligi suiiste'mol qilish ehtimolini kamaytiradi, lekin uni oldini olmaydi va ular, albatta, odamlarni biror xususiyatdan kutilmagan tarzda foydalanishga urinishlariga to'sqinlik qilmaydi.
Zararli xatti-harakatlarni aniqlash uchun jurnalga yozish mutlaqo bebaho amaliyotdir va men aytmoqchiman juda batafsil ro'yxatga olish. Muvaffaqiyatsiz kirish urinishlarini yozib oling, parollarni qayta o'rnating, parollarni o'zgartiring (masalan, foydalanuvchi tizimga kirgan bo'lsa) va nima bo'layotganini tushunishingizga yordam beradigan deyarli hamma narsa; bu kelajakda juda foydali bo'ladi. Jurnallarda hatto individual ravishda tuzating qismlari jarayon, masalan, qayta tiklashning yaxshi funksiyasi veb-sayt orqali qayta tiklashni boshlashni (noto'g'ri foydalanuvchi nomi yoki elektron pochta orqali qayta tiklash so'rovini va kirishga urinishlarni yozib olish), qayta tiklash URL manzilidagi veb-saytga tashrifni yozib olishni (jumladan, noto'g'ri foydalanishga urinishlarni) o'z ichiga olishi kerak. token) va keyin xavfsizlik savoliga berilgan javobning muvaffaqiyati yoki muvaffaqiyatsizligini qayd qiling.
Men jurnalga kirish haqida gapirganda, men nafaqat sahifa yuklanganligini qayd etishni, balki iloji boricha ko'proq ma'lumot to'plashni nazarda tutyapman, agar u maxfiy bo'lmasa. Yigitlar, iltimos, parollarni kiritmang! Jurnallar vakolatli foydalanuvchining identifikatorini ro'yxatdan o'tkazishi kerak (agar u avtorizatsiya qilingan bo'lsa). o'zgarishlar mavjud parol yoki qayta o'rnatishga urinish boshqa birovning paroli tizimga kirgandan so'ng), u sinab ko'rgan har qanday foydalanuvchi nomlari yoki elektron pochta manzillari, shuningdek, foydalanishga harakat qiladigan har qanday tiklash tokenlari. Ammo IP manzillar va, agar iloji bo'lsa, sarlavhalarni so'rash kabi narsalarni qayd qilish ham arziydi. Bu nafaqat qayta yaratishga imkon beradi ekan foydalanuvchi (yoki tajovuzkor) qilishga harakat qilmoqda, balki kim? u shunday a.
Mas'uliyatni boshqa ijrochilarga topshirish
Agar bularning barchasi katta hajmdagi ish deb hisoblasangiz, unda siz yolg'iz emassiz. Aslida, hisoblar bilan ishlashning ishonchli tizimini yaratish oson ish emas. Bu texnik jihatdan qiyin emas, shunchaki uning juda ko'p xususiyatlari bor. Bu shunchaki qayta o'rnatish haqida emas, balki ro'yxatdan o'tish, parollarni xavfsiz saqlash, bir nechta noto'g'ri kirish urinishlarini boshqarish va hokazo va hokazo. Garchi bundan tashqari, yana ko'p ishlarni qilish kerak.
Bugungi kunda ko'plab uchinchi tomon sotuvchilari bor, ular og'riqdan xalos bo'lishdan va barchasini bitta boshqariladigan xizmatga mavhumlashtirishdan mamnun. Ushbu xizmatlarga OpenID, OAuth va hatto Facebook kiradi. Ba'zilar (OpenID haqiqatan ham Stack Overflow-da juda muvaffaqiyatli bo'ldi), lekin boshqalar .
Hech shubha yo'qki, OpenID kabi xizmat ishlab chiquvchilarning ko'plab muammolarini hal qiladi, ammo u yangilarini qo'shishi ham aniq. Ularning roli bormi? Ha, lekin autentifikatsiya xizmati provayderlari xizmatlaridan ommaviy foydalanishni ko'rmayotganimiz aniq. Banklar, aviakompaniyalar va hatto do'konlar o'zlarining autentifikatsiya mexanizmini amalga oshiradilar va buning uchun juda yaxshi sabablar bor.
Zararli tiklash
Yuqoridagi misollarning har birining muhim jihati shundaki, eski parol faqat foydasiz deb hisoblanadi hisob egasining shaxsini tasdiqlaganidan keyin. Bu muhim, chunki agar hisobni qayta tiklash mumkin bo'lsa : identifikatsiya tekshiruvlari, bu har xil zararli harakatlar uchun imkoniyat beradi.
Mana bir misol: kimdir auktsion saytida savdo qilmoqda va savdo jarayonining oxiriga kelib, ular qayta o'rnatish jarayonini boshlash orqali raqobatchilarni to'sib qo'yadi va shu tariqa ularni savdodan olib tashlaydi. Shubhasiz, agar noto'g'ri ishlab chiqilgan reset funktsiyasi noto'g'ri ishlatilishi mumkin bo'lsa, bu jiddiy salbiy oqibatlarga olib kelishi mumkin. Shuni ta'kidlash kerakki, noto'g'ri kirish urinishlari bilan hisoblarni bloklash ham xuddi shunday holat, ammo bu boshqa post uchun mavzu.
Yuqorida aytganimdek, agar siz anonim foydalanuvchilarga faqat elektron pochta manzilini bilish orqali istalgan akkauntning parolini tiklash imkoniyatini bersangiz, bu xizmatni rad etish hujumi uchun tayyor holat. Bu bitta bo'lmasligi mumkin , bu haqda biz gaplashgan edik, ammo parolni qayta tiklash funktsiyasidan ko'ra hisob qaydnomasiga kirishni blokirovka qilishning tezroq usuli yo'q.
Eng zaif bo'g'in
Bitta hisobni himoya qilish nuqtai nazaridan, yuqorida yozilganlarning barchasi ajoyib, ammo siz himoya qilayotgan hisobni o'rab turgan ekotizimni doimo yodda tutishingiz kerak. Sizga bir misol keltiraman:
ASafaWeb AppHarbor tomonidan taqdim etilgan ajoyib xizmatda joylashgan. Xosting hisobini tiklash jarayoni quyidagicha:
1 -bosqich:

2 -bosqich:

3 -bosqich:

4 -bosqich:

Oldingi barcha ma'lumotlarni o'qib chiqqandan so'ng, biz ideal dunyoda qaysi jihatlarni biroz boshqacha tarzda amalga oshirishimizni tushunish oson. Biroq, men bu erda aytmoqchi bo'lgan narsa shundaki, agar men AppHarbor'da ASafaWeb kabi saytni nashr qilsam va keyin ajoyib xavfsizlik savollari va javoblari bilan chiqsam, ikkinchi autentifikatsiya omilini qo'shsam va qolgan hamma narsani qoidalar bo'yicha qilsam, bu o'zgarmaydi. butun jarayondagi eng zaif bo'g'in hammasini buzishga qodir bo'lishi haqiqatdir. Agar kimdir mening ma'lumotlarimdan foydalangan holda AppHarbor'da autentifikatsiyani muvaffaqiyatli amalga oshirsa, u istalgan ASafaWeb akkaunti uchun parolni o'ziga kerak bo'lganiga o'zgartirishi mumkin bo'ladi!
Gap shundaki, xavfsizlikni tatbiq etishning kuchi har tomonlama ko'rib chiqilishi kerak: tahdidlar tizimning har bir kirish nuqtasida modellashtirilishi kerak, hatto bu AppHarbor-ga kirish kabi yuzaki jarayon bo'lsa ham. Bu menga ASafaWeb parolini tiklash jarayoniga qancha kuch sarflashim kerakligini yaxshi tasavvur qilishi kerak.
Hammasini bir joyga qo'yish
Ushbu post juda ko'p ma'lumotlarni o'z ichiga oladi, shuning uchun men uni oddiy vizual sxemada jamlashni xohlayman:

Esda tutingki, siz ushbu elementlarning har birining eng batafsil jurnalini bajarishingiz kerak. Hammasi shu, oddiy!
natijalar
Mening postim keng qamrovli bo'lib tuyuladi, ammo men uchun juda ko'p qo'shimcha materiallar mavjud mumkin unga qo'shing, lekin qisqalik uchun unga qarshi qaror qildi: qutqaruv elektron pochta manzilining roli, sizning hisobingiz bilan bog'liq elektron pochtaga kirish huquqini yo'qotgan vaziyat (masalan, siz ishingizdan chiqdingiz) va hokazo. Yuqorida aytib o'tganimdek, qayta tiklash funktsiyasi unchalik murakkab emas, faqat bu borada juda ko'p turli nuqtai nazarlar mavjud.
Qayta tiklash unchalik murakkab bo'lmasa ham, u ko'pincha noto'g'ri amalga oshiriladi. Yuqorida biz amalga oshirishning bir nechta misollarini ko'rdik Jon muammolarga olib keladi va noto'g'ri qayta tiklash ko'plab holatlar mavjud albatta muammolarni keltirib chiqardi. Yaqinda shunday bo'ldi . Bu jiddiy salbiy natijadir!
Shunday qilib, qayta o'rnatish funktsiyalari bilan ehtiyot bo'ling, turli nuqtalarda va biror xususiyatni loyihalashda qora shlyapangizni yechmang, chunki uni boshqa birov kiyishi ehtimoli katta!
Reklama huquqlari to'g'risida
VDSina arzon taklif qiladi kunlik toʻlov bilan har bir server 500 Mbit/s tezlikdagi internet kanaliga ulangan va DDoS hujumlaridan bepul himoyalangan!
Manba: www.habr.com
