Käsitle salajast kontonumbrit volitusena: auditeeri seda
Kui numbri teadmine logib kellegi sisse või toob konfiguratsiooni, on see volitus. Tee õiguste, hoiustamise, arvamiskiiruse ja rotatsiooni kontrollid.
Väljale pandud silt „kontonumber” ei tee sellest automaatselt avalikku viidet, ja silt ei ole test. Test on see, mida valdamine lubab: kui numbri teadmine logib kellegi sisse, laadib alla ühendusprofiili või autoriseerib seadme, on number volitus, millel on elutsükkel. Teen allolevad viis kontrolli alati, kui teenus annab välja numbrilise identiteedi ja nimetab seda kahjutuks. Iga kontroll annab rea lühikeses protokollis, ja protokoll on tulemus, mitte hinnang tootele.
Kaardista, mida valdamine tegelikult annab
Kirjuta iga toiming, mille number avab, eraldi üles. Portaali sisselogimine, konfiguratsioonifaili toomine, uue seadme autoriseerimine ja aktsepteeritud tunnelisisselogimise pakkumine on erinevad õigused ning teenus võib ühte neist rakendada ilma teisteta. Portaal, mis võtab numbri ainsa väljana, ei ütle midagi selle kohta, kuidas tunnel oma partnerit autendib hiljem ega selle kohta, kuidas liiklusvõtmeid tuletatakse.
Üldine mudel on lihtne sõnastada: bearer-volitus on selline, mida valdaja saab kasutada ilma tõestamata eraldi krüptograafilise võtme valdamist, ja see on erinevus, mille RFC 6750 tokenside jaoks teeb. See on võrdlus, mitte väide, et numbril põhinev teenus rakendab OAuthi. Kui valdaja ei vaja midagi muud, käsitle numbrit bearer-saladusena ja liigita ülejäänud disain vastavalt.
Kaitse seda saladusena, mitte viitena
Hoiustamine tuleneb liigitusest. Sisselogimiseks kasutatav väärtus kuulub paroolihaldurisse, mitte ekraanipilti, lõikelauale, vestlussõnumisse ega brauseri märkmesse. Ekraanipildid on tavaline leke: number on lühike ja tundub kahjutu, nii et see jõuab tugilõime, mis elab kauem kui seade, kust see pärines.
Andmepüük on teine tõrkemoodus ja seda ei huvita, kui juhuslik number on. Pettur, kes väärtust tahab, palub sul selle vormi kleepida, ning volitus, mis ei aegu kunagi ja millel pole teist tegurit, on vaeva väärt. Jõua sisselogimisteekonnani järjehoidja või tuntud aadressi kaudu, mitte sõnumis oleva lingi kaudu, mis küsib ka numbrit.
Käsitle taastematerjali saladuse osana. Kui operaator andis välja ka taastekoodi, PIN-koodi või e-posti aadressi, millega kontot saab lähtestada, on need eraldi volitused, millel on sama kaitse nõue. Üks kaitsmata lähtestuskanal muudab kõik muud kontrollid kaunistuseks.
Kontrolli vastupidavust arvamisele ja kiiruspiirangut koos
Pikkus on tähenduslik ainult koos genereerimismeetodiga. Etteaimatavast jadast loodud pikk number on nõrgem kui krüptograafilise generaatori lühike väärtus, ja muljetavaldav numbrite arv ei tõesta ettearvamatust. Küsi, kuidas väärtus genereeritakse, enne kui mõtled, kui raske seda on ära arvata.
Ainuüksi arvamiskindlus ei pea vastu ka piiramatule katsete arvule. Kontrollid, mis loevad, on need, mida operaator rakendab: ebaõnnestunud katsete loendurid, lukustused, allikapõhine piiramine ja see, kas vale number eristub olematust. Kui teenus seda toetab, näitab üks ebaõnnestunud katse, milline viga välja näeb ja kas korduskatse loendur ilmub:
# 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"
Pane kirja, mida vastus paljastab. Eraldi viga tundmatu konto puhul on loetlemisoraakel isegi siis, kui numbrit ei saa ära arvata, ja see leid kuulub protokolli, olenemata sellest, kas saad selle kliendipoolel parandada.
Planeeri rotatsioon ja tühistamine enne, kui neid vaja läheb
Leia toetatud protsess kadunud või paljastatud numbri jaoks ja kirjuta see üles, kuni kõik töötab. Kas konto volitust saab üldse asendada? Kas asendamine muudab kehtetuks juba registreeritud seadmed, aktiivsed sessioonid või allalaaditud konfiguratsiooni? Millist taastematerjali protsess nõuab? Ilma e-posti sõltuvuseta teenus võib anda kasutajale rohkem taastevastutust, mis muudab protseduuri tähtsamaks, mitte vähem.
Eralda konto asendamine volituse tühistamisest. Kui number autoriseerib võtme, sertifikaadi või profiili allalaadimise, võib numbri asendamine jätta selle allalaaditud materjali kehtima, ja allalaaditud materjali tühistamine võib olla teine toiming teise omanikuga. Ära eelda, et üks muudetud väli lõpetab kõik ühendused; kontrolli operaatori tegelikku mudelit ja märgi, kus sa seda kontrollisid.
Dokumenteeri otsus ja kontrolli seda hiljem uuesti
Hoia teenuse kohta ühe lehekülje protokolli: milliseid õigusi number annab, kus seda hoitakse, kes saab seda lähtestada, millised kasutustõendid on olemas ja mida teeksid esimesel tunnil pärast avalikustamist. Just see protokoll muudab terminoloogiavaidluse otsuseks, mida keegi saab auditeerida.
Privaatsusväidetel on oma ulatus. Juhuslikult genereeritud number võib ikkagi olla püsiv identifikaator, mis seob konto sündmusi ajas; ettearvamatus ei ole mitteseostatavus ja kumbki omadus ei ütle midagi säilitatavate võrgu metaandmete kohta. Võrdle terviklikke lahendusi, mitte ära loenda välju sisselogimisekraanil.
Enne kui selle arhiveerid:
- Iga number antav õigus on loetletud, sealhulgas allalaadimised ja seadme autoriseerimine.
- Hoiustamis- ja taastekanalid on kaitstud sama standardiga nagu number ise.
- Genereerimismeetod ja kiiruspiirangud on teada, mitte pikkusest oletatud.
- Asendus- ja tühistamisprotseduur on olemas ning tead, milline millise tühistab.
- Protokoll nimetab, kes saab väärtust lähtestada ja millised tõendid jäävad pärast kasutamist.