Služba, ktorá posiela aktuálne heslo používateľa e-mailom, dokázala jednu vec: dokáže získať toto tajomstvo v podobe, ktorú vie odoslať. Nedokázala však, ktorý stĺpec, algoritmus alebo knižnica ho vytvorili. Rozdiel je dôležitý, pretože nález je skutočný a záver, ktorý z neho ľudia vyvodzujú, býva príliš konkrétny. Zvratnosť niekde na ceste je mechanizmus; odhadnutý formát uloženia nie.

Držte dôkazy na tejto úrovni a zvyšok posudku zostane presný.

Čo dokazuje vrátenie starého tajomstva

Jednosmerný overovač nemôže vytvoriť pôvodné heslo, pretože bol navrhnutý tak, aby nebol invertovateľný. Ak služba dokáže heslo poslať e-mailom, vtedy drží materiál, z ktorého sa dá heslo obnoviť, alebo zachytáva a ukladá otvorený text pred hašovaním. V oboch prípadoch je cesta obnovy zvratná, a to je skutočný bezpečnostný nález. Nič to nehovorí o tom, či tá istá databáza používa nákladný haš pre iné stĺpce.

Všímajte si aj prechodný prípad: uložený zašifrovaný blob s kľúčom, ktorý drží aplikácia, je v praxi zvratný, aj keď slovo zašifrovaný znie v správe upokojujúco.

Prečo je to nález o návrhu, nie mapa úložiska

E-mail dokazuje obnoviteľnosť a neidentifikuje presnú schému. Môže ísť o otvorený text, deterministické šifrovanie, rutinu zastierania od dodávateľa alebo samostatné úložisko prihlasovacích údajov používané len na obnovu. Rôzne časti produktu často používajú rôzne úložisko. Priradiť algoritmus na základe jedného e-mailu je tvrdenie, ktoré sa na ďalšej porade zrúti.

Čo môžete povedať, je užšie a užitočnejšie: táto cesta dokáže tajomstvo obnoviť, takže produkt nemôže tvrdiť, že neexistujú žiadne obnoviteľné prihlasovacie údaje. Všetko ďalšie si vyžaduje dôkazy prevádzkovateľa.

Postavte resetovanie okolo autorizácie

Resetovanie rieši iný problém: preukázať, že žiadateľ smie zvoliť nové heslo. Usmernenie OWASP k tomu opisuje bezpečne generované jednorazové tokeny alebo kódy s primeranou platnosťou a fázu žiadosti považuje za niečo, čo treba chrániť pred vypočítavaním a zahltením. Neoverená žiadosť nesmie sama o sebe zmeniť účet. Overte autorizáciu pred prijatím náhrady a po jednom úspešnom použití token zneplatnite.

E-mailový kanál je súčasťou bezpečnostného modelu. Vlastníctvo názvu účtu nič nedokazuje a tok resetovania, ktorý prezrádza, či účet existuje, dáva útočníkovi adresár, s ktorým môže pracovať.

Zneplatnite to, čo heslo chránilo

Zmena hesla automaticky neukončí prístup, ktorý poskytovalo. Aktívne relácie VPN, zapamätané zariadenia a tokeny vydané serverom môžu mať každý vlastné správanie pri zneplatnení. Vedome rozhodnite, ktoré z nich musia skončiť, a overte, že implementácia to robí, pretože používateľ, ktorý predpokladá, že ho resetovanie odhlásilo všade, sa často mýli. Zapíšte toto rozhodnutie spolu s tokom.

Pre prevádzkovateľov: dokumentujte, ktorá komponenta overuje žiadosť, ktorá mení prihlasovacie údaje a ako sa spracúvajú súvisiace relácie. Pre používateľov: chráňte legitímny kanál obnovy a každú správu, ktorá vracia heslo, považujte za podozrivú.

Presné hodnotenie je krátke: čo správa dokazuje, čo zostáva neznáme a či obnova nahrádza prístup riadeným procesom.

Súvisiace články