Kā pievienot divfaktoru autentifikāciju (2FA) lietotnei
Lai lietotnei pievienotu divfaktoru autentifikāciju, ļaujiet lietotājiem pievienot autentifikatora lietotni, skenējot QR kodu, pēc paroles pieprasiet sešciparu kodu, ko tā parāda, un pilnu sesiju serverī izveidojiet tikai tad, kad kods ir pareizs. Katram lietotājam, kad viņš to ieslēdz, izsniedziet vienreizējus atkopšanas kodus, ierobežojiet, cik kodus var mēģināt uzminēt, un pirms 2FA izslēgšanas pieprasiet paroli un pašreizējo kodu. Ja izmantojat mitinātu autentifikācijas sniedzēju, ieslēdziet tā iebūvēto vairākfaktoru opciju, nevis veidojiet savu.
Šī rokasgrāmata aplūko izvēles, precīzu plūsmu, uzvednes, ko dot MI veidotājam, un kļūdas, kuru dēļ 2FA izskatās ieviests, bet nedara neko. Ja šis jēdziens jums ir jauns, sāciet ar kas ir divfaktoru autentifikācija.
Pirms sākt: vajag darbojošos pieteikšanos
2FA balstās uz esošas pierakstīšanās. Vispirms vajag vienu no šiem:
- Savu pieteikšanos ar lietotājiem un jaucētām parolēm jūsu lietotnes datubāzē.
- Mitinātu autentifikācijas sniedzēju, kas pārvalda lietotājus jūsu vietā.
Ja vēl nav nevienas, sāciet ar kā pievienot pieteikšanos lietotnei. Pārējā rokasgrāmata pieņem, ka paroles solis jau darbojas.
Izvēlieties otro faktoru
| Metode | Lietotāja pūles | Drošība | Darbības izmaksas | Labs noklusējums? |
|---|---|---|---|---|
| Autentifikatora lietotne (TOTP) | Vienreiz noskenēt QR kodu, pieteikšanās brīdī ierakstīt kodu | Laba; var izvilināt, ja viltus lapa pieprasa kodu | Bez maksas | Jā, vairumam lietotņu |
| Atslēga vai drošības atslēga | Pieskarties vai izmantot pirkstu nospiedumu | Spēcīgākā; izturīga pret viltošanu | Bez maksas | Jā, ja lietotāji ar to ir ērti |
| E-pasta kods | Pieteikšanās brīdī pārbaudīt iesūtni | Tikpat stipra kā e-pasta konts | Maksa par e-pasta sūtīšanu | Tikai kā rezerves variants |
| SMS kods | Gaidīt īsziņu | Vājākā; SIM nomaiņa un viltošana | Maksa par ziņojumu | Tikai tad, ja lietotāji nevar izmantot lietotni |
TOTP nozīmē laikā balstīta vienreizēja parole — standarts (RFC 6238), ko izmanto autentifikatora lietotnes. Jūsu serveris un lietotāja tālrunis dala noslēpumu; abi no šī noslēpuma un pašreizējā laika ģenerē vienu un to pašu īso kodu, kas parasti mainās ik pēc 30 sekundēm. Nav vajadzīgs tīkla savienojums vai SMS pakalpojumu sniedzējs.
Atslēgas aizstāj vai papildina paroles ar kriptogrāfisku atslēgu, kas glabājas lietotāja ierīcē. Tās ir spēcīgākas, bet grūtāk veidot pašiem, tāpēc daudzas lietotnes sāk ar TOTP un vēlāk pievieno atslēgas vai tās iegūst no autentifikācijas sniedzēja.
Veidot pašiem vai ieslēgt?
| Pieeja | Priekšrocības | Trūkumi |
|---|---|---|
| Mitināta autentifikācijas sniedzēja MFA | Mazāk koda; sniedzējs uztur drošības detaļas | Mēneša maksa, mērogojot; esat atkarīgs no sniedzēja opcijām |
| Pašu TOTP ar bibliotēku | Pilna kontrole; nav maksas par lietotāju | Jūs atbildat par īpašajiem gadījumiem: bloķēšanu, atkopšanu, noslēpumu glabāšanu |
Pārbaudiet sava sniedzēja aktuālo dokumentāciju, kuri faktori tiek atbalstīti un kuros plānos. Jebkurā gadījumā nekad nerakstiet koda ģenerēšanas matemātiku pats; izmantojiet plaši lietotu bibliotēku.
Vispirms izlemiet politiku
Atbildiet uz šiem jautājumiem pirms uzvednes, jo tie maina dizainu:
- Kam tas jāizmanto? Pēc izvēles visiem, obligāti administratoriem un darbiniekiem vai obligāti visiem. Bieži prasa visiem, kam ir administratora tiesības. Skatiet lomās balstītu piekļuves kontroli.
- Cik bieži lietotāji ievada kodu? Katrā pieteikšanās reizē vai vienu reizi ierīcē 30 dienām ("atcerēties šo ierīci").
- Kurām darbībām vajag jaunu pārbaudi? Piemēram, e-pasta maiņai, izmaksu datiem vai 2FA izslēgšanai. To sauc par papildu autentifikāciju (step-up).
- Kāds ir process, ja pazaudēts tālrunis? Atkopšanas kodi un manuāls rezerves variants, ko esat gatavi veikt.
Soli pa solim: TOTP 2FA savā pieteikšanās sistēmā
1. Glabājiet pareizos laukus
Katram lietotājam vajag: vai 2FA ir ieslēgts, TOTP noslēpumu (šifrētu glabāšanā, nevis vienkāršā tekstā), laiku, kad to ieslēdza, un atkopšanas kodu sarakstu, kas glabāts jaucētā veidā, tāpat kā paroles. Pievienojiet vietu neveiksmīgo mēģinājumu skaitīšanai.
2. Reģistrācija
-
Lietotājs atver iestatījumus un nospiež Ieslēgt divfaktoru autentifikāciju.
-
Serveris ģenerē jaunu noslēpumu un atgriež to kā QR kodu, kā arī teksta versiju cilvēkiem, kas nevar skenēt.
-
Lietotājs noskenē to autentifikatora lietotnē un ieraksta pašreizējo kodu.
-
Serveris pārbauda kodu. Tikai tad, ja tas ir pareizs, tas saglabā noslēpumu un atzīmē 2FA kā ieslēgtu.
-
Lietotne vienu reizi parāda 8–10 atkopšanas kodus un lūdz lietotāju tos saglabāt.
-
solis ir svarīgs: ja 2FA ieslēdz pirms koda apstiprināšanas, bloķējas ikviens, kura skenēšana neizdevās.
3. Pieteikšanās ar otro soli
- Lietotājs ievada e-pastu un paroli. Serveris tos pārbauda.
- Ja 2FA ir ieslēgts, serveris neizveido pilnu sesiju. Tā vietā tas izveido īslaicīgu stāvokli "gaida otro faktoru".
- Lietotne rāda koda ekrānu. Serveris pārbauda kodu, atļaujot nelielu laika nobīdes logu.
- Tikai tagad serveris izsniedz īsto sesiju.
Katram aizsargātam maršrutam un API galapunktam jānoraida stāvoklis "gaida otro faktoru". 2FA ekrāns, kas paslēpj lapas tikai pārlūkā, var tikt apiets, tieši izsaucot API.
4. Ierobežojumi un brīdinājumi
Sešciparu kodam ir miljons kombināciju, tāpēc bez ierobežojumiem to var uzminēt. Ierobežojiet mēģinājumus, pēc atkārtotām kļūdām uz laiku bloķējiet otro soli un nosūtiet lietotājam e-pastu, kad tas notiek. Skatiet ātruma ierobežošanu un kā sūtīt e-pastus no lietotnes.
5. Atkopšana un izslēgšana
- Atkopšanas kods darbojas vienreiz, tad tiek dzēsts.
- 2FA izslēgšanai vajag paroli un pašreizējo kodu vai atkopšanas kodu.
- Atkopšanas kodu atjaunošana anulē veco kopu.
- Nosūtiet lietotājam e-pastu katru reizi, kad 2FA tiek ieslēgts vai izslēgts.
Uzvednes, ko dot savam MI veidotājam
Sāciet ar pamatplūsmu:
Pievieno neobligātu divfaktoru autentifikāciju, izmantojot autentifikatora lietotnes (TOTP), mūsu esošajai e-pasta un paroles pieteikšanās. Izmanto labi zināmu TOTP bibliotēku, neraksti algoritmu pats. Iestatījumos rādi QR kodu un teksta noslēpumu, un 2FA iespējo tikai pēc tam, kad lietotājs ievada derīgu kodu. Glabā noslēpumu šifrētu un pēc iestatīšanas to nekad vairs nerādi. Rādi 10 vienreizējus atkopšanas kodus vienu reizi un glabā tos jaucētus.
Pēc tam piespiedu ievērošana, kur ģenerētais kods visbiežāk nepietiek:
Ievieso 2FA serverī. Pēc pareizas paroles lietotājiem ar ieslēgtu 2FA izveido īslaicīgu stāvokli "gaida", nevis pilnu sesiju. Katrai aizsargātai lapai un API maršrutam jānoraida "gaida" stāvoklis. Ierobežo koda mēģinājumus līdz 5, tad uz 15 minūtēm bloķē otro soli un nosūti lietotājam e-pastu.
Tad politika:
Pieprasi 2FA administratora kontiem: administrators bez 2FA tiek novirzīts uz iestatīšanu un nevar nokļūt panelī, kamēr tā nav pabeigta. Pieprasi paroli un pašreizējo kodu, lai izslēgtu 2FA vai mainītu konta e-pastu. Nosūti lietotājam e-pastu, kad 2FA tiek ieslēgts vai izslēgts.
Visbeidzot, lūdziet aģentam paskaidrot, ko tas izveidoja:
Uzskaiti katru maršrutu, kas pārbauda pabeigtu otro faktoru, kur tiek glabāts TOTP noslēpums un atkopšanas kodi un kā tie ir aizsargāti.
Biežākās kļūdas
- Sesija izsniegta pēc paroles. Visnopietnākā kļūda. Ja pilna sesija pastāv pirms koda pārbaudes, 2FA ir tikai dekorācija. Pārbaudiet, izsaucot aizsargātu API tikai pēc paroles soļa.
- Nav mēģinājumu ierobežojuma. Neierobežoti minējumi padara kodu uzlaužamu ar spēka metodi.
- Noslēpumi vai atkopšanas kodi vienkāršā tekstā. Datubāzes noplūde tad nodod ikviena otro faktoru.
- Iespējošana pirms pārbaudes. Lietotāji, kuri nepareizi noskenēja, tiek bloķēti nākamajā pieteikšanās reizē.
- Nav atkopšanas ceļa. Katrs pazaudēts tālrunis kļūst par atbalsta pieteikumu vai zaudētu klientu.
- Viegla izslēgšana. Ja nozagta sesija var izslēgt 2FA bez koda, aizsardzības vairs nav.
- Kodi žurnālos. Pārliecinieties, ka kodi un noslēpumi nekad neparādās servera žurnālos vai kļūdu ziņojumos.
- Pārbaude tikai pieteikšanās lapā. Paroles atiestatīšana, "magic link" pieteikšanās un jebkura sociālā pieteikšanās arī jāievēro 2FA, citādi tās kļūst par apiešanas ceļu.
Testēšanas kontrolsaraksts
- Reģistrācija pabeidzas tikai pēc derīga koda
- Pieteikšanās ar pareizu paroli, bet bez koda nedod piekļuvi nevienai aizsargātai lapai vai API
- Nepareizs kods tiek noraidīts; atkārtotas kļūdas aktivizē bloķēšanu un e-pastu
- Kods no dažām minūtēm atpakaļ tiek noraidīts
- Katrs atkopšanas kods darbojas tieši vienu reizi
- 2FA izslēgšanai vajag paroli un pašreizējo kodu
- Paroles atiestatīšana neapiet 2FA
- Administratori bez 2FA nevar nokļūt administratora lapās (ja tas ir obligāts)
- Noslēpumi un atkopšanas kodi datubāzē ir šifrēti vai jaucēti
- Nekādi kodi vai noslēpumi neparādās žurnālos
Pirms palaišanas arī izpildiet drošības kontrolsarakstu MI veidotām lietotnēm.
2FA pievienošana Mythex
Mythex nenodrošina iebūvētu pieteikšanās sistēmu lietotnes galalietotājiem, tāpēc 2FA ir daļa no tās autentifikācijas pieejas, ko izvēlaties: jūsu pašu e-pasta un paroles pieteikšanās, izmantojot projekta datubāzi, vai mitināts sniedzējs ar vairākfaktoru atbalstu. Aprakstiet, ko vēlaties, čatā ar uzvednēm kā iepriekš, un sniedzēju atslēgas ievietojiet projekta noslēpumos (caur /secrets, projekta iestatījumiem vai noslēpumu kartīti, ko aģents parāda), nevis ziņojuma lodziņā. Dokumentācijas recepte Pievienot pieteikšanos lietotnei satur sākuma uzvedni, un Drošība lietotnēm, ko veidojat aplūko paradumus ar atslēgām un atļaujām. Kad aģents pabeidz, pārbaudiet katru kontrolsaraksta punktu priekšskatījumā, pirms publicējat.
Jautājumi
Kāds ir vienkāršākais veids, kā lietotnei pievienot divfaktoru autentifikāciju?
Ja izmantojat mitinātu autentifikācijas sniedzēju, ieslēdziet tā iebūvēto vairākfaktoru opciju; parasti tas prasa vismazāk koda. Ja darbināt savu pieteikšanos, pievienojiet autentifikatora lietotnes kodus (TOTP) ar labi zināmu bibliotēku, kā arī atkopšanas kodus un servera puses pārbaudi.
Vai man vajadzētu izmantot SMS kodus 2FA?
SMS ir labāk nekā neviens otrais faktors, bet tā ir vājākā no izplatītajām iespējām, jo īsziņas var novirzīt ar SIM karšu nomaiņu un kodus var izvilināt ar viltus lapām. Kā noklusējumu piedāvājiet autentifikatora lietotni un, ja jūsu lietotāji ir gatavi, atslēgas.
Vai 2FA pievienošanai man vajag datubāzi?
Ja darbināt savu pieteikšanos — jā. Katra lietotāja 2FA noslēpums, tas, vai 2FA ir ieslēgts, un viņa jaucētie atkopšanas kodi jāglabā kaut kur, ko jūsu serveris var pārbaudīt. Mitināts autentifikācijas sniedzējs to glabā jūsu vietā.
Kas notiek, ja lietotājs pazaudē tālruni?
Viņš pierakstās ar vienu no vienreizējiem atkopšanas kodiem, ko saņēma, ieslēdzot 2FA, un pēc tam 2FA iestata no jauna jaunā ierīcē. Bez atkopšanas kodiem jums vajag manuālu identitātes pārbaudi, tāpēc šo procesu izlemiet pirms palaišanas.