Vodiči

Kako dodati dvofaktorsku autentifikaciju u svoju aplikaciju

Za dodavanje dvofaktorske autentifikacije (2FA) u aplikaciju pustite korisnike da povežu aplikaciju za autentifikaciju skeniranjem QR koda i tražite šesteroznamenkasti kod koji ona prikazuje nakon lozinke. Potpunu sesiju na poslužitelju stvorite tek kada taj kod bude ispravan. Svakom korisniku pri uključivanju dajte jednokratne kodove za oporavak, ograničite broj pokušaja pogađanja i zahtijevajte lozinku plus trenutni kod prije isključivanja 2FA. Ako koristite hostiranog pružatelja autentifikacije, uključite njegovu ugrađenu višefaktorsku opciju umjesto da gradite vlastitu.

Ovaj vodič prolazi kroz izbore, točan tijek, upute koje možete dati AI alatu za izradu i greške koje 2FA čine prisutnim, ali bez učinka. Ako je koncept nov, počnite s što je dvofaktorska autentifikacija.

Prije početka: treba vam ispravna prijava

2FA se nadograđuje na postojeću prijavu. Prvo vam treba jedno od sljedećeg:

  • Vlastita prijava, s korisnicima i heširanim lozinkama pohranjenim u bazi podataka vaše aplikacije.
  • Hostirani pružatelj autentifikacije koji umjesto vas upravlja korisnicima.

Ako još nemate nijedno, počnite s kako dodati prijavu u aplikaciju. Ostatak ovog vodiča pretpostavlja da korak s lozinkom već radi.

Odaberite drugi faktor

MetodaTrud korisnikaSigurnostTrošak radaDobar zadani izbor?
Aplikacija za autentifikaciju (TOTP)Jednom skenirati QR kod, pri prijavi upisati kodDobra; može se phishati ako lažna stranica traži kodBesplatnoDa, za većinu aplikacija
Pristupnik ili sigurnosni ključDodir ili otisak prstaNajjača; otporna na phishingBesplatnoDa, ako su korisnici spremni
Kod e-poštomProvjera sandučića pri prijaviJaka koliko i e-pošta računaTroškovi slanja e-pošteSamo kao rezerva
SMS kodČekanje porukeNajslabija; zamjena SIM kartice i phishingNaknade po poruciSamo ako korisnici ne mogu koristiti aplikaciju

TOTP znači jednokratna lozinka temeljena na vremenu (time-based one-time password), standard (RFC 6238) koji koriste aplikacije za autentifikaciju. Vaš poslužitelj i korisnikov telefon dijele tajnu; svaki iz te tajne i trenutnog vremena generira isti kratki kod, obično se mijenja svakih 30 sekundi. Nije potrebna mrežna veza ni SMS pružatelj.

Pristupnici zamjenjuju ili nadopunjuju lozinke kriptografskim ključem pohranjenim na korisnikovu uređaju. Jači su, ali ih je teže sami izgraditi, pa mnoge aplikacije počinju s TOTP-om i kasnije dodaju pristupnike ili ih dobiju od pružatelja autentifikacije.

Izgraditi ili uključiti?

PristupPrednostiNedostaci
Višefaktorska značajka hostiranog pružatelja autentifikacijeManje koda; pružatelj održava sigurnosne detaljeMjesečni trošak pri skaliranju; ovisite o mogućnostima pružatelja
Vlastiti TOTP s bibliotekomPotpuna kontrola; nema naknade po korisnikuVi ste odgovorni za rubne slučajeve: zaključavanja, oporavak, pohranu tajni

Provjerite trenutnu dokumentaciju pružatelja za to koje faktore podržava i na kojim planovima. U svakom slučaju, nikada sami ne pišite matematiku za generiranje kodova; koristite široko korištenu biblioteku.

Prvo odredite pravila

Odgovorite na ova pitanja prije upita, jer mijenjaju dizajn:

  1. Tko mora koristiti 2FA? Neobavezno za sve, obavezno za administratore i osoblje ili obavezno za sve. Zahtijevanje za svakoga s administratorskim ovlastima je uobičajeno. Pogledajte kontrolu pristupa temeljenu na ulogama.
  2. Koliko često korisnici ponovno unose kod? Pri svakoj prijavi ili jednom po uređaju za 30 dana („zapamti ovaj uređaj”).
  3. Koje radnje trebaju svježu provjeru? Promjena e-pošte, podataka za isplatu ili isključivanje 2FA su dobri kandidati. To se zove step-up autentifikacija.
  4. Koji je postupak ako se izgubi telefon? Kodovi za oporavak, plus ručni rezervni postupak koji ste spremni provoditi.

Korak po korak: 2FA s TOTP-om na vlastitoj prijavi

1. Spremite ispravna polja

Svaki korisnik treba: je li 2FA uključen, TOTP tajnu (šifriranu u pohrani, ne u običnom tekstu), vrijeme uključivanja i popis kodova za oporavak spremljenih heširano, kao lozinke. Dodajte mjesto za brojanje neuspjelih pokušaja.

2. Registracija

  1. Korisnik otvara Postavke i klikne Uključi dvofaktorsku autentifikaciju.
  2. Poslužitelj generira novu tajnu i vraća je kao QR kod, plus tekstualnu verziju za ljude koji ne mogu skenirati.
  3. Korisnik skenira kod u aplikaciji za autentifikaciju i upisuje trenutni kod.
  4. Poslužitelj provjerava kod. Tek ako je ispravan, sprema tajnu i označava 2FA kao uključen.
  5. Aplikacija prikazuje 8 do 10 kodova za oporavak jednom i traži od korisnika da ih spremi.

Korak 4 je važan: uključivanje 2FA prije potvrde koda zaključava svakoga čije skeniranje nije uspjelo.

3. Prijava s drugim korakom

  1. Korisnik upisuje e-poštu i lozinku. Poslužitelj ih provjerava.
  2. Ako je 2FA uključen, poslužitelj ne stvara potpunu sesiju. Umjesto toga stvara kratkotrajno stanje „drugi faktor na čekanju”.
  3. Aplikacija prikazuje zaslon za kod. Poslužitelj provjerava kod, uz mali vremenski prozor za odstupanje sata.
  4. Tek sada poslužitelj izdaje stvarnu sesiju.

Svaka zaštićena ruta i API krajnja točka mora odbiti stanje na čekanju. Zaslon za 2FA koji samo skriva stranice u pregledniku može se preskočiti pozivom API-ja izravno.

4. Ograničenja i upozorenja

Šesteroznamenkasti kod ima milijun kombinacija, što se može pogoditi bez ograničenja. Ograničite pokušaje, zaključajte drugi korak na neko vrijeme nakon ponovljenih neuspjeha i pošaljite korisniku e-poruku kada se to dogodi. Pogledajte ograničavanje broja zahtjeva i slanje e-pošte iz aplikacije.

5. Oporavak i isključivanje

  • Kod za oporavak radi jednom, zatim se briše.
  • Isključivanje 2FA zahtijeva lozinku i trenutni kod ili kod za oporavak.
  • Ponovno generiranje kodova za oporavak poništava stari skup.
  • Pošaljite korisniku e-poštu svaki put kada se 2FA uključi ili isključi.

Upute za vaš AI alat za izradu

Počnite s osnovnim tijekom:

Dodaj neobaveznu dvofaktorsku autentifikaciju pomoću aplikacija za autentifikaciju (TOTP) našoj postojećoj prijavi e-poštom i lozinkom. Koristi dobro poznatu TOTP biblioteku, nemoj sam pisati algoritam. U Postavkama prikaži QR kod i tekstualnu tajnu te uključi 2FA tek nakon što korisnik upiše ispravan kod. Tajnu spremi šifriranu i nikada je ne prikazuj ponovno nakon postavljanja. Prikaži 10 jednokratnih kodova za oporavak jednom i spremi ih heširane.

Zatim provedba, gdje generirani kod najčešće ne uspijeva:

Provedi 2FA na poslužitelju. Nakon ispravne lozinke korisnici s uključenim 2FA dobivaju kratkotrajno stanje na čekanju, ne potpunu sesiju. Svaka zaštićena stranica i API ruta mora odbiti stanje na čekanju. Ograniči pokušaje unosa koda na 5, zatim zaključaj drugi korak na 15 minuta i pošalji korisniku e-poruku.

Zatim pravila:

Zahtijevaj 2FA za administratorske račune: administrator bez 2FA šalje se na postavljanje i ne može doći do nadzorne ploče dok to ne završi. Zahtijevaj lozinku i trenutni kod za isključivanje 2FA ili promjenu e-pošte računa. Pošalji korisniku e-poruku kada se 2FA uključi ili isključi.

Na kraju zamolite agenta da objasni što je izgradio:

Popiši svaku rutu koja provjerava dovršen drugi faktor, gdje se čuvaju TOTP tajna i kodovi za oporavak te kako su zaštićeni.

Česte greške

  • Sesija izdana nakon lozinke. Najozbiljnija greška. Ako potpuna sesija postoji prije provjere koda, 2FA je samo ukras. Testirajte tako da nakon samo koraka s lozinkom pozovete zaštićeni API.
  • Nema ograničenja pokušaja. Neograničeni pogađaci čine kod ranjivim na napad grubom silom.
  • Tajne ili kodovi za oporavak u običnom tekstu. Curenje baze podataka tada predaje drugi faktor svakog korisnika.
  • Uključivanje prije provjere. Korisnici koji su pogrešno skenirali zaključani su pri sljedećoj prijavi.
  • Nema puta za oporavak. Svaki izgubljeni telefon postaje zahtjev podršci ili izgubljen kupac.
  • Lako isključivanje. Ako ukradena sesija može isključiti 2FA bez koda, zaštite više nema.
  • Kodovi u zapisnicima. Provjerite da se kodovi i tajne nikada ne pojavljuju u zapisnicima poslužitelja ili porukama o greškama.
  • Provjera samo na stranici za prijavu. Oporavak lozinke, prijava magičnom poveznicom i bilo koja društvena prijava također moraju poštivati 2FA, inače postaju zaobilazni put.

Popis za testiranje

  • Registracija se završava tek nakon ispravnog koda
  • Prijava s ispravnom lozinkom, ali bez koda ne daje pristup nijednoj zaštićenoj stranici ili API-ju
  • Pogrešan kod se odbija; ponovljeni pogrešni kodovi aktiviraju zaključavanje i e-poruku
  • Kod star nekoliko minuta se odbija
  • Svaki kod za oporavak radi točno jednom
  • Isključivanje 2FA zahtijeva lozinku i trenutni kod
  • Oporavak lozinke ne zaobilazi 2FA
  • Administratori bez 2FA ne mogu doći do administratorskih stranica (ako je obavezno)
  • Tajne i kodovi za oporavak su šifrirani ili heširani u bazi podataka
  • Kodovi i tajne se ne pojavljuju u zapisnicima

Pokrenite i cijeli kontrolni popis sigurnosti za aplikacije izrađene AI-jem prije puštanja u rad.

Dodavanje 2FA na Mythexu

Mythex ne uključuje ugrađeni sustav prijave za krajnje korisnike vaše aplikacije, pa je 2FA dio pristupa autentifikaciji koji odaberete: vlastita prijava e-poštom i lozinkom uz bazu podataka projekta ili hostirani pružatelj s višefaktorskom podrškom. U chatu opišete što želite pomoću uputa poput gornjih, a ključevi pružatelja idu u tajne projekta (kroz /secrets, postavke projekta ili karticu s tajnama koju agent prikaže), a ne u okvir za poruke. Recept u dokumentaciji Dodavanje prijave u aplikaciju ima početnu uputu, a Sigurnost za aplikacije koje gradite pokriva navike oko ključeva i dozvola. Nakon što agent završi, testirajte svaku stavku kontrolnog popisa u pregledu prije objave.

Pitanja

Koji je najlakši način za dodavanje dvofaktorske autentifikacije u aplikaciju?

Ako koristite hostiranog pružatelja autentifikacije, uključite njegovu ugrađenu višefaktorsku opciju; obično je to najmanje koda. Ako sami vodite prijavu, dodajte kodove iz aplikacije za autentifikaciju (TOTP) pomoću dobro poznate biblioteke, plus kodove za oporavak i provjeru na poslužitelju.

Smijem li koristiti SMS kodove za 2FA?

SMS je bolji od nikakvog drugog faktora, ali je najslabija uobičajena opcija jer se poruke mogu preusmjeriti zamjenom SIM kartice, a kodovi se mogu izvući phishingom. Ponudite aplikaciju za autentifikaciju kao zadanu opciju, a pristupnike ako su vaši korisnici spremni za njih.

Treba li mi baza podataka za dodavanje 2FA?

Ako vodite vlastitu prijavu, da. Tajni ključ 2FA svakog korisnika, je li 2FA uključen i njihovi kodovi za oporavak u hashiranom obliku moraju biti pohranjeni negdje gdje ih vaš poslužitelj može provjeriti. Hostirani pružatelj autentifikacije to pohranjuje umjesto vas.

Što se događa ako korisnik izgubi telefon?

Prijavljuje se jednim od jednokratnih kodova za oporavak koje ste mu prikazali kada je uključio 2FA, zatim ponovno postavlja 2FA na novom uređaju. Bez kodova za oporavak potrebna je ručna provjera identiteta, pa taj postupak odlučite prije puštanja u rad.

Mythex · Pricing · Izradite bilo što uz AI · Predlošci za web stranice i aplikacije · Mythex u usporedbi · Rječnik izrade aplikacija uz AI · Besplatni alati za izradu aplikacija uz AI · English

English አማርኛ العربية Български বাংলা Bosanski Català Čeština Dansk Deutsch Ελληνικά Español Español (España) Eesti فارسی Suomi Français Français (Canada) ગુજરાતી हिन्दी Magyar Հայերեն Bahasa Indonesia Íslenska Italiano 日本語 ქართული Қазақ тілі ಕನ್ನಡ 한국어 Lietuvių Latviešu Македонски മലയാളം Монгол मराठी Bahasa Melayu မြန်မာ Norsk bokmål Nederlands ਪੰਜਾਬੀ Polski Português (Brasil) Português (Portugal) Română Русский Slovenčina Slovenščina Soomaali Shqip Srpski Svenska Kiswahili தமிழ் తెలుగు ไทย Tagalog Türkçe Українська اردو Tiếng Việt 简体中文 繁體中文(香港) 繁體中文(台灣)