Obravnavajte tajno številko računa kot poverilnico: revidirajte jo
Če poznavanje številke nekoga prijavi ali prenese konfiguracijo, je to poverilnica. Izvedite preglede pooblastil, shranjevanja, stopnje ugibanja in rotacije.
Polje z oznako številka računa ni samodejno javna referenca in oznaka ni preizkus. Preizkus je, kaj posedovanje omogoča: če poznavanje številke nekoga prijavi, prenese profil povezave ali avtorizira napravo, je ta številka poverilnica z življenjskim ciklom. Izvajam spodnjih pet pregledov vsakič, ko storitev izda številčno identiteto in jo imenuje neškodljivo. Vsak ustvari vrstico v kratkem zapisu, in zapis je rezultat, ne sodba o izdelku.
Popišite, kaj posedovanje dejansko podeljuje
Vsako dejanje, ki ga številka odklene, zapišite ločeno. Prijava v portal, pridobitev konfiguracijske datoteke, avtorizacija nove naprave in zagotovitev sprejete tunelske prijave so različna pooblastila in storitev lahko eno izvede brez drugih. Portal, ki sprejme številko kot edino polje, ne pove ničesar o tem, kako tunel overi svojega partnerja pozneje niti kako se izpeljejo prometni ključi.
Splošni model je lahko izraziti: bearer poverilnica je tista, ki jo imetnik lahko uporabi brez dokazovanja posedovanja ločenega kriptografskega ključa, kar je razlika, ki jo RFC 6750 določa za žetone. To je primerjava, ne trditev, da storitev, ki temelji na številki, izvaja OAuth. Če imetnik ne potrebuje ničesar drugega, obravnavajte številko kot bearer skrivnost in preostanek zasnove razvrstite v skladu s tem.
Zaščitite jo kot skrivnost, ne kot referenco
Shranjevanje izhaja iz razvrstitve. Vrednost, ki prijavi, sodi v upravitelja gesel, ne v posnetek zaslona, zgodovino odložišča, sporočilo v klepetu ali opombo v brskalniku. Posnetki zaslona so običajno uhajanje: številka je kratka in deluje neškodljivo, zato konča v niti podpore, ki preživi napravo, iz katere izhaja.
Ribištvo je drugi način odpovedi in ne zanima ga, kako naključna je številka. Prevarant, ki hoče vrednost, vas bo prosil, da jo prilepite v obrazec, in poverilnica, ki nikoli ne poteče in nima drugega dejavnika, je vredna truda. Do prijavne poti pridite prek zaznamka ali znanega naslova, ne prek povezave v sporočilu, ki prav tako zahteva številko.
Obravnavajte obnovitveno gradivo kot del skrivnosti. Če je operater izdal tudi obnovitveno kodo, PIN ali e-poštni naslov, s katerim je mogoče ponastaviti račun, so to ločene poverilnice z enako zahtevo po zaščiti. En nezavarovan kanal za ponastavitev spremeni vsak drug nadzor v okras.
Preverjajte odpornost na ugibanje in omejevanje hitrosti skupaj
Dolžina je smiselna le ob metodi ustvarjanja. Dolga številka iz predvidljivega zaporedja je šibkejša od kratke vrednosti iz kriptografskega generatorja in impresivno število števk ne dokazuje nepredvidljivosti. Vprašajte, kako je vrednost ustvarjena, preden razmišljate o tem, kako težko jo je uganiti.
Sama odpornost na ugibanje tudi ne preživi neomejene hitrosti poskusov. Nadzori, ki štejejo, so tisti, ki jih izvaja operater: števci neuspešnih poskusov, zaklepi, omejevanje na vir in ali je napačno številko mogoče ločiti od neobstoječe. Če storitev to podpira, en neuspešen poskus pokaže, kako izgleda napaka in ali se pojavi števec ponovitev:
# 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"
Zapišite, kaj odgovor razkrije. Ločena napaka za neznan račun je orakelj naštevanja, tudi kadar je številka neugotovljiva, in ta ugotovitev sodi v zapis, ne glede na to, ali jo lahko odpravite na strani odjemalca.
Načrtujte rotacijo in preklic, preden ju potrebujete
Poiščite podprt postopek za izgubljeno ali razkrito številko in ga zapišite, dokler vse deluje. Je poverilnico računa sploh mogoče zamenjati? Ali zamenjava razveljavi že vpisane naprave, aktivne seje ali preneseno konfiguracijo? Katero obnovitveno gradivo postopek zahteva? Storitev brez odvisnosti od e-pošte lahko prenese več odgovornosti za obnovitev na uporabnika, kar naredi postopek pomembnejši, ne manj.
Ločite zamenjavo računa od preklica poverilnice. Če številka pooblašča prenos ključa, potrdila ali profila, lahko zamenjava številke pusti preneseno gradivo veljavno, preklic prenesenega gradiva pa je lahko druga operacija z drugim lastnikom. Ne predpostavljajte, da eno spremenjeno polje konča vsako povezavo; preverite dejanski model operaterja in zabeležite, kje ste ga preverili.
Dokumentirajte odločitev in jo pozneje znova preverite
Vodite enostranski zapis za vsako storitev: katera pooblastila številka podeljuje, kje je shranjena, kdo jo lahko ponastavi, kateri dokazi o uporabi obstajajo in kaj bi storili v prvi uri po razkritju. Ta zapis spremeni razpravo o terminologiji v odločitev, ki jo lahko nekdo revidira.
Trditve o zasebnosti potrebujejo svoj obseg. Naključno ustvarjena številka je lahko še vedno stabilen identifikator, ki povezuje dogodke računa skozi čas; nepredvidljivost ni nepovezljivost in nobena od lastnosti ne pove ničesar o shranjenih omrežnih metapodatkih. Primerjajte celotne zasnove, namesto da bi šteli polja na prijavnem zaslonu.
Preden ga shranite:
- Navedena so vsa pooblastila, ki jih številka podeljuje, vključno s prenosi in avtorizacijo naprav.
- Kanali shranjevanja in obnovitve so zaščiteni po enakem standardu kot številka sama.
- Metoda ustvarjanja in omejitve hitrosti so znane, ne domnevane iz dolžine.
- Obstajata postopek zamenjave in postopek preklica ter veste, kateri razveljavi katerega.
- Zapis navaja, kdo lahko ponastavi vrednost in kateri dokazi ostanejo po uporabi.