Slaptažodžio laiškas įrodo grįžtamumą, o ne schemą
Paslauga, kuri elektroniniu paštu siunčia dabartinį slaptažodį, parodė, kad gali atkurti paslaptį, o ne kokį algoritmą ji naudoja. Projektuokite atstatymus pagal autorizaciją.
Paslauga, kuri elektroniniu paštu siunčia dabartinį naudotojo slaptažodį, įrodė viena: ji gali gauti tą paslaptį tokia forma, kurią gali išsiųsti. Ji neįrodė, kuris stulpelis, algoritmas ar biblioteka jį sukūrė. Šis skirtumas svarbus, nes radinys yra tikras, o išvada, kurią žmonės iš jo daro, paprastai būna pernelyg konkreti. Grįžtamumas kažkur kelyje yra mechanizmas; spėjamas saugojimo formatas ne.
Laikykite įrodymus šiame lygyje, ir likusi apžvalgos dalis išliks tiksli.
Ką įrodo senos paslapties grąžinimas
Vienkryptis tikrintuvas negali sukurti pradinio slaptažodžio, nes jis sukurtas taip, kad būtų neapverčiamas. Jei paslauga gali išsiųsti slaptažodį elektroniniu paštu, vadinasi, tuo metu ji laiko medžiagą, iš kurios slaptažodį galima atkurti, arba perima ir saugo atvirą tekstą prieš maišą. Bet kuriuo atveju atkūrimo kelias yra grįžtamas, ir tai yra tikras saugumo radinys. Tai nieko nesako apie tai, ar ta pati duomenų bazė kitiems stulpeliams naudoja brangų maišą.
Atkreipkite dėmesį ir į tarpinį atvejį: saugomas užšifruotas blobas su programa laikomu raktu praktiškai yra grįžtamas, nors žodis užšifruotas ataskaitoje skamba raminamai.
Kodėl tai dizaino radinys, o ne saugojimo žemėlapis
Laiškas įrodo atkuriamumą ir nenurodo tikslios schemos. Tai gali būti atviras tekstas, deterministinis šifravimas, tiekėjo užtemdymo rutina arba atskira prisijungimo duomenų saugykla, naudojama tik atkūrimui. Skirtingos produkto dalys dažnai naudoja skirtingą saugojimą. Algoritmo priskyrimas remiantis vienu laišku yra toks teiginys, kuris subyra kitame susitikime.
Tai, ką galite pasakyti, yra siauriau ir naudingiau: šis kelias gali atkurti paslaptį, todėl produktas negali teigti, kad atkuriamų prisijungimo duomenų nėra. Viskas, kas toliau, reikalauja operatoriaus įrodymų.
Kurkite atstatymą pagal autorizaciją
Atstatymas sprendžia kitą problemą: įrodyti, kad prašytojas gali pasirinkti naują slaptažodį. OWASP gairės apie tai aprašo saugiai sugeneruotus vienkartinius žetonus arba kodus su tinkamu galiojimo laiku ir prašymo etapą traktuoja kaip tai, ką reikia apsaugoti nuo išvardijimo ir užplūdimo. Neautentifikuotas prašymas neturi pats keisti paskyros. Patikrinkite autorizaciją prieš priimdami pakeitimą ir po vieno sėkmingo naudojimo padarykite žetoną nebenaudojamu.
Elektroninio pašto kanalas yra saugumo modelio dalis. Paskyros vardo turėjimas nieko neįrodo, o atstatymo srautas, atskleidžiantis, ar paskyra egzistuoja, duoda užpuolikui katalogą, su kuriuo dirbti.
Panaikinkite tai, ką saugojo slaptažodis
Slaptažodžio pakeitimas automatiškai nenutraukia jo suteiktos prieigos. Aktyvios VPN sesijos, įsiminti įrenginiai ir serverio išduoti žetonai gali turėti savo panaikinimo elgseną. Sąmoningai nuspręskite, kurie iš jų turi baigtis, ir patikrinkite, ar įgyvendinimas tai daro, nes naudotojas, manantis, kad atstatymas jį atjungė visur, dažnai klysta. Užrašykite šį sprendimą kartu su srautu.
Operatoriams: dokumentuokite, kuris komponentas tikrina prašymą, kuris keičia prisijungimo duomenis ir kaip tvarkomos susijusios sesijos. Naudotojams: saugokite teisėtą atkūrimo kanalą ir bet kokį pranešimą, grąžinantį slaptažodį, laikykite įtartinu.
Tikslus vertinimas trumpas: ką pranešimas įrodo, kas lieka nežinoma ir ar atkūrimas pakeičia prieigą kontroliuojamu procesu.