Autentifikimi me dy faktorë
Gjithçka që lexoni lidhur me identifikimin bazuar në faktin se kërkuesi e di. Ai e di adresën e tij të emailit, di se si t'i qaset asaj (d.m.th. e di fjalëkalimin e tij të emailit) dhe i di përgjigjet e pyetjeve të sigurisë.
"Njohuria" konsiderohet si një faktor vërtetimi; dy faktorë të tjerë të përbashkët janë çfarë ke, për shembull, një pajisje fizike dhe Kush je tisiç janë shenjat e gishtërinjve ose retina e syrit.

Në shumicën e rasteve, kryerja e identifikimit biologjik nuk është e realizueshme, veçanërisht kur flasim për sigurinë e aplikacioneve në internet, kështu që me vërtetimin me dy faktorë (autentifikimi me dy faktorë, 2FA), zakonisht përdoret atributi i dytë - "ajo që keni". Një variacion popullor në këtë faktor të dytë është një shenjë fizike, për shembull, :

Shenja fizike përdoret shpesh për vërtetim në VPN-të e korporatave dhe shërbimet financiare. Për t'u vërtetuar në shërbim, duhet të përdorni një fjalëkalim dhe një kod në një shenjë (i cili ndryshon shpesh) në kombinim me një PIN. Teorikisht, për të identifikuar një sulmues, ai duhet të dijë fjalëkalimin, të ketë një shenjë dhe gjithashtu të dijë PIN-in e tokenit. Në një skenar të rivendosjes së fjalëkalimit, vetë fjalëkalimi është me sa duket i panjohur, por zotërimi i tokenit mund të përdoret për të provuar pronësinë e llogarisë. Sigurisht, si me çdo zbatim të sigurisë, , por definitivisht ngre pengesën e hyrjes.
Një nga problemet kryesore të kësaj qasjeje është kostoja dhe logjistika e zbatimit; ne po flasim për dorëzimin e pajisjeve fizike për çdo klient dhe për t'i mësuar atyre procesin e ri. Përveç kësaj, përdoruesit duhet të kenë një pajisje me vete, gjë që nuk ndodh gjithmonë me një shenjë fizike. Një tjetër mundësi është zbatimi i një faktori të dytë të vërtetimit duke përdorur SMS, i cili në rastin e 2FA mund të shërbejë si konfirmim që personi që kryen procesin e rivendosjes ka telefonin celular të pronarit të llogarisë. Ja se si e bën Google:

Ju gjithashtu duhet të aktivizoni , por kjo do të thotë që herën tjetër që rivendosni fjalëkalimin, telefoni juaj celular mund të bëhet një faktor i dytë vërtetimi. Më lejoni ta demonstroj këtë me shembullin tim. iPhone për arsye që do të bëhen të qarta së shpejti:

Pas identifikimit të adresës së emailit të llogarisë, Google përcakton që 2FA është aktivizuar dhe ne mund ta rivendosim llogarinë duke përdorur verifikimin, i cili dërgohet me SMS në telefonin celular të pronarit të llogarisë:

Tani duhet të zgjedhim fillimin e procesit të rivendosjes:

Ky veprim dërgon një email në adresën e regjistruar:

Ky email përmban URL-në e rivendosur:

Kur qaseni në URL-në e rivendosur, dërgohet një SMS dhe faqja e internetit e kërkon atë:

Këtu është SMS:

Pasi e shtypim atë në shfletues, ne jemi kthyer në territorin klasik të rivendosjes së fjalëkalimit:

Kjo ndoshta tingëllon pak e zhdërvjellët dhe është, por formulari konfirmon që personi që kryen rivendosjen ka akses në adresën e emailit dhe telefonin celular të mbajtësit të llogarisë. Por mund të jetë nëntë herë më i sigurt se rivendosja e fjalëkalimit tuaj vetëm me email. Megjithatë, ka probleme...
Problemi lidhet me telefonat inteligjentë. Pajisja e paraqitur më poshtë mund të vërtetojë vetëm një faktor vërtetimi - mund të marrë SMS, por jo email:

Megjithatë, kjo pajisje mund të marrë SMS и merrni emaile për rivendosjen e fjalëkalimit:

Problemi është se ne e konsiderojmë emailin si faktorin e parë të autentifikimit dhe SMS (apo edhe një aplikacion që gjeneron token) si të dytën, por sot ato janë të kombinuara në një pajisje. Natyrisht, kjo do të thotë që nëse dikush arrin te telefoni juaj inteligjent, atëherë e gjithë kjo lehtësi vjen në faktin se ne jemi kthyer përsëri në të njëjtin kanal; ky faktor i dytë "çfarë keni" do të thotë që ju keni edhe faktorin e parë. Dhe e gjitha mbrohet nga një PIN i vetëm me katër shifra...nëse telefoni ka fare një PIN. и ai ishte i bllokuar.
Po, veçoria 2FA e Google me siguri ofron mbrojtje shtesë, por nuk është e pagabueshme dhe sigurisht që nuk varet nga dy kanale plotësisht autonome.
Rivendos sipas emrit të përdoruesit kundrejt rivendosjes nga adresa e emailit
A duhet të lejoj rivendosjen vetëm me adresën e emailit? Apo duhet që përdoruesi të jetë në gjendje të rivendosë edhe me emër? Problemi me rivendosjen sipas emrit të përdoruesit është se nuk ka asnjë mënyrë për të njoftuar përdoruesin për një emër përdoruesi të pavlefshëm, pa bërë të ditur që dikush tjetër mund të ketë një llogari me atë emër. Në seksionin e mëparshëm, një rivendosje e-mail siguroi që pronari i ligjshëm i atij emaili do të merrte gjithmonë komente pa e zbuluar publikisht ekzistencën e tyre në sistem. Kjo nuk mund të bëhet vetëm me emrin e përdoruesit.
Pra, përgjigja e shkurtër është: vetëm email. Nëse përpiqeni të rivendosni vetëm me emrin e përdoruesit, atëherë do të ketë raste kur përdoruesi do të pyesë veten se çfarë ka ndodhur, ose ju do të zbuloni ekzistencën e llogarive. Po, është thjesht një emër përdoruesi, jo një adresë emaili dhe po, çdokush mund të zgjedhë çdo emër përdoruesi (të disponueshëm), por ka ende një shans të mirë që të zbuloni në mënyrë indirekte pronarët e llogarisë për shkak të tendencës së përdoruesve për të ripërdorur emrin.
Pra, çfarë ndodh kur dikush harron emrin e përdoruesit? Duke supozuar se emri i përdoruesit nuk është menjëherë një adresë emaili (që shpesh ndodh), atëherë procesi është i ngjashëm me atë se si fillon rivendosja e fjalëkalimit - shkruani një adresë emaili dhe më pas dërgoni një mesazh në këtë adresë pa zbuluar ekzistencën e tij. I vetmi ndryshim është se këtë herë mesazhi përmban vetëm emrin e përdoruesit dhe jo URL-në e rivendosjes së fjalëkalimit. Ose kjo, ose emaili do të thotë se nuk ka llogari për këtë adresë.
Verifikimi i identitetit dhe saktësia e adresave të postës elektronike
Një aspekt kyç i rivendosjes së fjalëkalimeve, dhe ndoshta edhe më së shumti aspekti kryesor është verifikimi i identitetit të personit që përpiqet të rivendosë. A është me të vërtetë ky pronari i ligjshëm i llogarisë, apo dikush po përpiqet ta hakojë atë ose t'i shkaktojë bezdi pronarit?
Natyrisht, emaili është kanali më i përshtatshëm dhe më i zakonshëm i verifikimit të identitetit. Nuk është i pagabueshëm dhe ka shumë raste kur thjesht të jesh në gjendje të marrësh postë në adresën e pronarit të llogarisë nuk mjafton nëse kërkohet një shkallë e lartë besimi në identifikim (kjo është arsyeja pse përdoret 2FA), por është pothuajse gjithmonë pika e fillimit procesi i rivendosjes.
Nëse emaili do të luajë një rol në sigurimin e besimit, atëherë hapi i parë është të siguroheni që adresa e emailit është në fakt e saktë. Nëse dikush ka bërë një gabim me simbolin, atëherë, padyshim, rivendosja nuk do të fillojë. Procesi i verifikimit të emailit në momentin e regjistrimit është një mënyrë e besueshme për të verifikuar korrektësinë e adresës. Të gjithë e kemi parë në veprim: kur regjistroheni, ju dërgohet një email me një URL unike për të klikuar, e cila konfirmon se ju jeni pronari i vërtetë i asaj llogarie emaili. Të mos jesh në gjendje të identifikohesh derisa të përfundojë ky proces siguron që ka motivim për të verifikuar adresën.
Siç është rasti me shumë aspekte të tjera të sigurisë, ky model redukton përdorshmërinë në këmbim të ofrimit të një shkalle më të lartë sigurie në raport me besimin në identitetin e përdoruesit. Kjo mund të jetë e pranueshme për një faqe ku përdoruesi e vlerëson shumë regjistrimin dhe me kënaqësi do të shtojë një hap tjetër në proces (shërbime me pagesë, banka, etj.), por gjëra të tilla mund ta zmbrapsin përdoruesin nëse ai e percepton llogarinë si "një- kohë” dhe përdor, për shembull, vetëm si një mjet për të komentuar një postim.
Identifikimi se kush e nisi procesin e rivendosjes
Është e qartë se ka arsye për të përdorur funksionin e rivendosjes me qëllim të keq, dhe sulmuesit mund ta përdorin atë në mënyra të ndryshme. Një truk i thjeshtë që mund të përdorim për të ndihmuar në verifikimin e origjinës së një kërkese (ky truk zakonisht punon) është një shtesë në letrën me një propozim për të rivendosur adresën IP të kërkuesit. Ai furnizon marrësin disa informacion për të identifikuar burimin e kërkesës.
Këtu është një shembull nga funksioni i rivendosjes që po ndërtoj aktualisht në ASafaWeb:

Lidhja "zbuloni më shumë" e çon përdoruesin në sit , duke dhënë informacione të tilla si vendndodhjen dhe organizimin e kërkuesit të rivendosjes:

Natyrisht, kushdo që dëshiron të fshehë identitetin e tij ka shumë mënyra për të turbulluar adresën e tij të vërtetë IP, por kjo është një mënyrë e përshtatshme për të shtuar identifikimin e pjesshëm të kërkuesit, dhe në shumica Në disa raste, kjo do t'ju japë një ide të drejtë se kush do të plotësojë kërkesën për rivendosjen e fjalëkalimit.
Njoftimi për ndryshimin e emailit
Ky postim përshkohet nga një temë - komunikimi; tregoni pronarit të llogarisë sa më shumë që të jetë e mundur për atë që ndodh në çdo hap të procesit, pa zbuluar asgjë që mund të përdoret me qëllime keqdashëse. E njëjta gjë vlen edhe për situatën kur fjalëkalimi ka ndryshuar në të vërtetë - njoftoni pronarin!
Arsyet për ndryshimin e fjalëkalimit mund të jenë dy burime:
- Ndryshimi i fjalëkalimit pas hyrjes sepse përdoruesi kërkon një fjalëkalim të ri
- Rivendos fjalëkalimin pa u identifikuar sepse përdoruesi e ka harruar atë
Ndërsa ky postim ka të bëjë kryesisht me rivendosjen, njoftimi i të parës zvogëlon rrezikun që dikush të ndryshojë fjalëkalimin pa dijeninë e pronarit të ligjshëm. Si mund të ndodhë kjo? Një skenar shumë i zakonshëm është marrja e fjalëkalimit të pronarit të ligjshëm (fjalëkalimi i ripërdorur i rrjedhur nga një burim tjetër, fjalëkalimi i marrë nga tastilogimi, fjalëkalimi i lehtë për t'u gjetur, etj.), pas së cilës sulmuesi vendos ta ndryshojë atë, duke bllokuar kështu pronarin. Pa njoftim me email, pronari i vërtetë nuk do të jetë në dijeni të ndryshimit të fjalëkalimit.
Natyrisht, në rast të rivendosjes së fjalëkalimit, pronari duhet ta ketë nisur tashmë vetë procesin (ose të anashkalojë mjetet e verifikimit të identifikimit të përshkruara më sipër), kështu që duke ndryshuar nuk duhet të jetë një surprizë për të, megjithatë, konfirmimi me email do të jetë reagim pozitiv dhe verifikim shtesë. Përveç kësaj, ai siguron unitet me skenarin e përshkruar më sipër.
Oh, dhe në rast se nuk është ende e qartë - mos dërgoni një fjalëkalim të ri me postë! Mund të bëjë disa njerëz të qeshin, por :

Regjistrat, shkrimet, shkrimet dhe disa shkrime të tjera
Funksioni i rivendosjes së fjalëkalimit është tërheqës për sulmuesit: një sulmues ose dëshiron të fitojë akses në llogarinë e një personi tjetër, ose thjesht të shkaktojë bezdi tek pronari i llogarisë/sistemit. Shumë nga praktikat e përshkruara më sipër reduktojnë mundësinë e abuzimit, por nuk e parandalojnë atë dhe sigurisht që nuk do t'i ndalojnë njerëzit të përpiqen të përdorin një veçori në mënyrë të paqëllimshme.
Për zbulimin e sjelljeve me qëllim të keq, logimi është praktikë absolutisht e paçmueshme, dhe dua të them prerje shumë e detajuar. Regjistroni përpjekjet e dështuara të hyrjes, rivendosjen e fjalëkalimeve, ndryshimin e fjalëkalimeve (d.m.th. kur përdoruesi është tashmë i identifikuar) dhe pothuajse çdo gjë që mund t'ju ndihmojë të kuptoni se çfarë po ndodh; kjo do të jetë shumë e dobishme në të ardhmen. Fix në shkrimet edhe individuale pjesë procesi, për shembull, një veçori e mirë e rivendosjes duhet të përfshijë fillimin e një rivendosjeje nëpërmjet një uebsajti (regjistrimin e kërkesës për rivendosje dhe përpjekjet për hyrje me një emër përdoruesi ose email të pasaktë), kapjen e një vizite në një faqe interneti në URL-në e rivendosur (përfshirë përpjekjet për të përdorur një të pasaktë shenjë), dhe më pas regjistro suksesin ose dështimin e përgjigjes së pyetjes së sigurisë.
Kur flas për regjistrimin, nënkuptoj jo vetëm regjistrimin e faktit që një faqe është ngarkuar, por edhe mbledhjen e sa më shumë informacionit të jetë e mundur, nëse nuk është konfidencial. Djema, ju lutemi mos regjistroni fjalëkalimet! Regjistrat duhet të regjistrojnë identitetin e përdoruesit të autorizuar (ai do të autorizohet nëse ai ndryshimet fjalëkalimin ekzistues ose duke u përpjekur për të rivendosur fjalëkalimi i dikujt tjetër pas hyrjes), çdo emër përdoruesi ose adresë emaili që provon, plus çdo shenjë rivendosjeje që përpiqet të përdorë. Por ia vlen gjithashtu të regjistroni gjëra të tilla si adresat IP dhe, nëse është e mundur, edhe titujt e kërkesave. Kjo ju lejon të rikrijoni jo vetëm që përdoruesi (ose sulmuesi) po përpiqet të bëjë, por gjithashtu që ai është i tillë.
Delegimi i përgjegjësisë tek interpretuesit e tjerë
Nëse mendoni se e gjithë kjo përfaqëson një sasi të madhe pune, atëherë nuk jeni vetëm. Në fakt, ndërtimi i një sistemi të besueshëm për të punuar me llogaritë nuk është një detyrë e lehtë. Nuk është se është e vështirë teknikisht, thjesht ka shumë veçori. Nuk ka të bëjë vetëm me rivendosjen, por ka një proces të tërë regjistrimi, ruajtjen e fjalëkalimeve në mënyrë të sigurt, trajtimin e shumë përpjekjeve të gabuara për hyrje, e kështu me radhë e kështu me radhë. Edhe pse përveç kësaj, duhet bërë shumë më tepër.
Sot, ka shumë shitës të palëve të treta që janë të lumtur të heqin dhimbjen prej tij dhe t'i abstraktojnë të gjitha në një shërbim të menaxhuar. Këto shërbime përfshijnë OpenID, OAuth dhe madje edhe Facebook. Disa njerez (OpenID ka qenë vërtet shumë i suksesshëm në Stack Overflow), por të tjerë .
Pa dyshim, një shërbim si OpenID zgjidh shumë probleme zhvilluesish, por është gjithashtu e sigurt që shton të reja. A kanë ndonjë rol? Po, por është e qartë se nuk po shohim përdorim masiv të shërbimeve të ofruesve të shërbimeve të vërtetimit. Bankat, linjat ajrore dhe madje edhe dyqanet zbatojnë të gjitha mekanizmin e tyre të vërtetimit, dhe padyshim ka arsye shumë të mira për këtë.
Rivendosja me qëllim të keq
Një aspekt i rëndësishëm i secilit prej shembujve të mësipërm është se fjalëkalimi i vjetër konsiderohet vetëm i padobishëm pas konfirmimit të identitetit të pronarit të llogarisë. Kjo është e rëndësishme sepse nëse llogaria mund të rivendoset tek kontrollet e identitetit, kjo do të ofronte mundësinë për të gjitha llojet e aktiviteteve keqdashëse.
Ja një shembull: dikush po bën ofertë në një faqe ankandi dhe në fund të procesit të ofertimit, ata bllokojnë konkurrentët duke nisur një proces rivendosjeje, duke i hequr kështu ata nga ofertimi. Natyrisht, nëse një funksion rivendosjeje i projektuar keq mund të keqpërdoret, mund të çojë në rezultate serioze negative. Vlen të përmendet se bllokimi i llogarive me përpjekje të pavlefshme për hyrje është një situatë e ngjashme, por kjo është një temë për një postim tjetër.
Siç thashë më lart, nëse u jepni përdoruesve anonimë mundësinë për të rivendosur fjalëkalimin e çdo llogarie vetëm duke ditur adresën e tyre të emailit, atëherë kjo është një situatë e gatshme për një sulm të mohimit të shërbimit. Mund të mos jetë ai , për të cilën kemi folur më parë, por nuk ka mënyrë më të shpejtë për të bllokuar hyrjen në një llogari sesa me një funksion të rikthimit të fjalëkalimit të menduar keq.
Lidhja më e dobët
Nga pikëpamja e mbrojtjes së një llogarie të vetme, gjithçka e shkruar më sipër është e shkëlqyer, por gjithmonë duhet të keni parasysh ekosistemin që rrethon llogarinë që po mbroni. Më lejoni t'ju jap një shembull:
ASafaWeb është pritur në një shërbim të mahnitshëm të ofruar nga AppHarbor. Procesi i rivendosjes së një llogarie pritëse është si më poshtë:
Faza 1:

Faza 2:

Faza 3:

Faza 4:

Pas leximit të të gjithë informacionit të mëparshëm, tashmë është e lehtë të kuptosh se cilat aspekte në një botë ideale do t'i zbatonim pak më ndryshe. Megjithatë, ajo që po them këtu është se nëse publikoj një faqe si ASafaWeb në AppHarbor, dhe më pas dal me pyetje dhe përgjigje të shkëlqyera sigurie, shtoj një faktor të dytë vërtetimi dhe bëj gjithçka tjetër sipas rregullave, kjo nuk ndryshon. fakti që hallka më e dobët në të gjithë procesin do të jetë në gjendje t'i thyejë të gjitha. Nëse dikush vërteton me sukses në AppHarbor duke përdorur informacionin tim, atëherë ai do të jetë në gjendje të ndryshojë fjalëkalimin për çdo llogari ASafaWeb në atë që i nevojitet!
Çështja është se fuqia e një zbatimi të sigurisë duhet të konsiderohet në mënyrë holistike: kërcënimet duhet të modelohen në çdo pikë hyrëse në sistem, edhe nëse është një proces sipërfaqësor siç është logimi në AppHarbor. Kjo duhet të më japë një ide të mirë se sa përpjekje duhet të bëj në procesin e rivendosjes së fjalëkalimit ASafaWeb.
Duke i bashkuar të gjitha
Ky postim përmban shumë informacione, kështu që unë dua ta përqendroj atë në një skemë të thjeshtë vizuale:

Mos harroni se duhet të bëni regjistrimin më të detajuar të secilit prej këtyre artikujve. Kjo është ajo, është e thjeshtë!
Rezultatet e
Postimi im duket të jetë gjithëpërfshirës, megjithatë ka shumë materiale shtesë që unë mund përfshini në të, por vendosi të mos e bëjë për hir të shkurtësisë: rolin e një adrese emaili shpëtimi, situatën në të cilën humbisni aksesin në emailin e lidhur me llogarinë tuaj (për shembull, keni lënë punën tuaj), etj. Siç thashë më herët, funksioni i rivendosjes nuk është aq i komplikuar, vetëm se ka shumë këndvështrime të ndryshme për të.
Edhe pse rivendosja nuk është aq e komplikuar, shpesh zbatohet gabimisht. Më sipër pamë disa shembuj ku zbatimi mund çojnë në probleme dhe ka shumë raste të tjera kur rivendosja e gabuar vërtet shkaktoi probleme. Kohët e fundit doli se . Ky është një rezultat serioz negativ!
Pra, kini kujdes me funksionet tuaja të rivendosjes, në pika të ndryshme, dhe kur dizajnoni një veçori, mos e hiqni kapelën tuaj të zezë sepse ka shumë mundësi që dikush tjetër ta veshë atë!
Për të Drejtat e Reklamimit
VDSina ofron të lira me pagesë ditore, çdo server lidhet me një kanal interneti prej 500 Mbps dhe mbrohet nga sulmet DDoS falas!
Burimi: www.habr.com
