Tretirajte tajni broj računa kao vjerodajnicu: revidirajte ga
Ako poznavanje broja nekoga prijavi ili dohvati konfiguraciju, to je vjerodajnica. Provedite provjere ovlasti, pohrane, stope pogađanja i rotacije.
Polje označeno kao broj računa nije automatski javna referenca, a oznaka nije test. Test je ono što posjedovanje omogućuje: ako poznavanje broja nekoga prijavi, preuzme profil veze ili autorizira uređaj, taj je broj vjerodajnica sa životnim ciklusom. Provodim pet provjera u nastavku svaki put kada usluga izda numerički identitet i nazove ga bezopasnim. Svaka stvara redak u kratkom zapisu, a zapis je rezultat, ne presuda o proizvodu.
Popišite što posjedovanje zapravo daje
Zapišite svaku radnju koju broj otključava, odvojeno. Prijava na portal, dohvaćanje konfiguracijske datoteke, autorizacija novog uređaja i pružanje prihvaćene prijave tunela različite su ovlasti, a usluga može implementirati jednu bez ostalih. Portal koji prihvaća broj kao jedino polje ne govori ništa o tome kako tunel autentificira svog partnera kasnije ni kako se izvode prometni ključevi.
Opći model lako je izreći: bearer vjerodajnica je ona koju nositelj može koristiti bez dokazivanja posjeda zasebnog kriptografskog ključa, što je razlika koju RFC 6750 određuje za tokene. To je usporedba, a ne tvrdnja da usluga utemeljena na broju implementira OAuth. Ako nositelj ne treba ništa drugo, tretirajte broj kao bearer tajnu i razvrstajte ostatak dizajna u skladu s tim.
Zaštitite ga kao tajnu, ne kao referencu
Pohrana proizlazi iz klasifikacije. Vrijednost koja prijavljuje pripada upravitelju zaporki, a ne snimci zaslona, povijesti međuspremnika, poruci u chatu ili bilješci u pregledniku. Snimke zaslona uobičajeno su curenje: broj je kratak i izgleda bezopasno, pa završi u niti podrške koja nadživi uređaj iz kojeg je došao.
Phishing je drugi način zatajenja i ne zanima ga koliko je broj slučajan. Prevarant koji želi vrijednost zamolit će vas da je zalijepite u obrazac, a vjerodajnica koja nikada ne istječe i nema drugi faktor vrijedna je truda. Do prijavne staze dođite putem oznake ili poznate adrese, a ne putem poveznice u poruci koja također traži broj.
Tretirajte materijal za oporavak kao dio tajne. Ako je operater izdao i kôd za oporavak, PIN ili adresu e-pošte kojom se račun može poništiti, to su zasebne vjerodajnice s istim zahtjevom za zaštitu. Jedan nezaštićen kanal za poništavanje pretvara svaku drugu kontrolu u ukras.
Provjeravajte otpornost na pogađanje i ograničenje brzine zajedno
Duljina ima smisla samo uz metodu generiranja. Dugačak broj iz predvidljivog slijeda slabiji je od kratke vrijednosti iz kriptografskog generatora, a impresivan broj znamenki ne dokazuje nepredvidljivost. Pitajte kako se vrijednost generira prije nego što razmišljate o tome koliko ju je teško pogoditi.
Sama otpornost na pogađanje također ne preživljava neograničenu stopu pokušaja. Kontrole koje su važne su one koje operater implementira: brojači neuspjelih pokušaja, zaključavanja, ograničenje po izvoru i može li se pogrešan broj razlikovati od nepostojećeg. Ako usluga to podržava, jedan neuspjeli pokušaj pokazuje kako pogreška izgleda i pojavljuje li se brojač ponovnih pokušaja:
# one attempt, then read the response and any counter or delay
# do not script repeated guesses against a live account
curl -i -X POST https://portal.example.invalid/login -d "account=000000000000"
Zabilježite što odgovor otkriva. Zasebna pogreška za nepoznat račun je oracle za nabrajanje čak i kada je broj nemoguće pogoditi, a taj nalaz pripada zapisu, bez obzira na to možete li ga ispraviti na strani klijenta.
Planirajte rotaciju i opoziv prije nego što vam zatrebaju
Pronađite podržani postupak za izgubljeni ili otkriveni broj i zapišite ga dok sve radi. Može li se vjerodajnica računa uopće zamijeniti? Poništava li zamjena već upisane uređaje, aktivne sesije ili preuzetu konfiguraciju? Koji materijal za oporavak postupak zahtijeva? Usluga bez ovisnosti o e-pošti može prenijeti više odgovornosti za oporavak na korisnika, što postupak čini važnijim, a ne manje.
Odvojite zamjenu računa od opoziva vjerodajnice. Ako broj autorizira preuzimanje ključa, certifikata ili profila, zamjena broja može ostaviti preuzeti materijal valjanim, a opoziv preuzetog materijala može biti druga operacija s drugim vlasnikom. Ne pretpostavljajte da jedno promijenjeno polje prekida svaku vezu; provjerite stvarni model operatera i zabilježite gdje ste ga potvrdili.
Dokumentirajte odluku i kasnije je ponovno provjerite
Vodite jednostranični zapis za svaku uslugu: koje ovlasti broj daje, gdje je pohranjen, tko ga može poništiti, koji dokazi o uporabi postoje i što biste učinili u prvom satu nakon otkrivanja. Taj zapis pretvara raspravu o terminologiji u odluku koju netko može revidirati.
Tvrdnje o privatnosti trebaju vlastiti opseg. Slučajno generiran broj može i dalje biti stabilan identifikator koji povezuje događaje računa kroz vrijeme; nepredvidljivost nije nepovezivost i nijedno svojstvo ne govori ništa o zadržanim mrežnim metapodacima. Uspoređujte cjelovite dizajne umjesto brojanja polja na prijavnom zaslonu.
Prije nego što ga spremite:
- Navedene su sve ovlasti koje broj daje, uključujući preuzimanja i autorizaciju uređaja.
- Kanali pohrane i oporavka zaštićeni su istim standardom kao i sam broj.
- Metoda generiranja i ograničenja brzine poznati su, a ne pretpostavljeni iz duljine.
- Postoje postupak zamjene i postupak opoziva te znate koji ukida koji.
- Zapis navodi tko može poništiti vrijednost i koji dokazi ostaju nakon uporabe.