Käsittele salainen tilinumero tunnistetietona: auditoi se
Jos numeron tunteminen kirjaa jonkun sisään tai hakee kokoonpanon, se on tunnistetieto. Suorita valtuuksien, tallennuksen, arvausnopeuden ja kierron tarkistukset.
Kenttä, jonka nimeksi on merkitty tilinumero, ei ole automaattisesti julkinen viite, eikä nimike ole testi. Testi on se, mihin hallussapito oikeuttaa: jos numeron tunteminen kirjaa jonkun sisään, lataa yhteysprofiilin tai valtuuttaa laitteen, numero on tunnistetieto, jolla on elinkaari. Suoritan alla olevat viisi tarkistusta aina, kun palvelu jakaa numeerisen identiteetin ja kutsuu sitä vaarattomaksi. Jokainen tuottaa rivin lyhyeen pöytäkirjaan, ja pöytäkirja on toimitettava tulos, ei tuomio tuotteesta.
Inventoi, mitä hallussapito todella myöntää
Kirjoita erikseen ylös jokainen toiminto, jonka numero avaa. Portaaliin kirjautuminen, kokoonpanotiedoston hakeminen, uuden laitteen valtuuttaminen ja hyväksytyn tunnelikirjautumisen tarjoaminen ovat eri valtuuksia, ja palvelu voi toteuttaa yhden ilman muita. Portaali, joka hyväksyy numeron ainoana kenttänä, ei kerro mitään siitä, miten tunneli todentaa vastapuolensa myöhemmin tai miten liikenneavaimet johdetaan.
Yleinen malli on helppo esittää: bearer-tunnistetieto on sellainen, jota haltija voi käyttää todistamatta erillisen salausavaimen hallussapitoa, ja juuri sen eron RFC 6750 tekee tokeneille. Se on vertailu, ei väite, että numeroon perustuva palvelu toteuttaisi OAuthin. Jos haltija ei tarvitse muuta, käsittele numeroa bearer-salaisuutena ja luokittele muu suunnittelu sen mukaisesti.
Suojaa sitä salaisuutena, ei viitteenä
Tallennus seuraa luokittelusta. Kirjautumiseen käytettävä arvo kuuluu salasananhallintaan, ei kuvakaappaukseen, leikepöytähistoriaan, chatviestiin tai selaimen muistiinpanoon. Kuvakaappaukset ovat tavallinen vuoto: numero on lyhyt ja näyttää vaarattomalta, joten se päätyy tukiketjuun, joka elää pidempään kuin laite, josta se tuli.
Tietojenkalastelu on toinen vikatila, eikä se välitä siitä, kuinka satunnainen numero on. Hyökkääjä, joka haluaa arvon, pyytää sinua liittämään sen lomakkeeseen, ja tunnistetieto, joka ei koskaan vanhene eikä sisällä toista tekijää, on vaivan arvoinen. Saavu kirjautumispolulle kirjanmerkin tai tunnetun osoitteen kautta, älä viestin linkistä, joka myös pyytää numeroa.
Käsittele palautusmateriaalia osana salaisuutta. Jos operaattori myönsi myös palautuskoodin, PIN-koodin tai sähköpostiosoitteen, jolla tilin voi nollata, ne ovat erillisiä tunnistetietoja, joilla on sama suojausvaatimus. Yksi suojaamaton nollauskanava tekee kaikista muista kontrolleista koristetta.
Tarkista arvauksen kestävyys ja nopeuden rajoitus yhdessä
Pituus on merkityksellinen vain suhteessa luontimenetelmään. Ennustettavasta sarjasta tuotettu pitkä numero on heikompi kuin salausgeneraattorin tuottama lyhyt arvo, eikä vaikuttava numeromäärä todista ennustamattomuutta. Kysy, miten arvo luodaan, ennen kuin arvioit, kuinka vaikea se on arvata.
Pelkkä arvauksen kestävyys ei myöskään selviä rajoittamattomasta yritysnopeudesta. Ratkaisevat kontrollit ovat ne, jotka operaattori toteuttaa: epäonnistuneiden yritysten laskurit, lukitukset, lähdekohtainen rajoitus ja se, erottuuko väärä numero olemattomasta. Jos palvelu tukee sitä, yksi epäonnistunut yritys näyttää, miltä virhe näyttää ja ilmestyykö uusintayrityslaskuri:
# 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"
Kirjaa, mitä vastaus paljastaa. Erillinen virhe tuntemattomalle tilille on luettelointioraakkeli, vaikka numeroa ei voisi arvata, ja havainto kuuluu pöytäkirjaan riippumatta siitä, voitko korjata sen asiakaspäässä.
Suunnittele kierto ja peruutus ennen kuin tarvitset niitä
Etsi tuettu menettely kadonneelle tai paljastuneelle numerolle ja kirjoita se ylös, kun kaikki toimii. Voidaanko tilin tunnistetieto ylipäätään vaihtaa? Mitätöikö vaihto jo liitetyt laitteet, aktiiviset istunnot tai ladatun kokoonpanon? Mitä palautusmateriaalia menettely vaatii? Palvelu, jolla ei ole sähköpostiriippuvuutta, voi siirtää enemmän palautusvastuuta käyttäjälle, mikä tekee menettelystä tärkeämmän, ei vähemmän.
Erottele tilin vaihto tunnistetiedon peruutuksesta. Jos numero valtuuttaa avaimen, varmenteen tai profiilin lataamisen, numeron vaihtaminen voi jättää ladatun materiaalin voimaan, ja ladatun materiaalin peruuttaminen voi olla eri toimenpide, jolla on eri omistaja. Älä oleta, että yksi muutettu kenttä lopettaa kaikki yhteydet; tarkista operaattorin todellinen malli ja merkitse, missä varmistit sen.
Dokumentoi päätös ja tarkista se myöhemmin uudelleen
Pidä palvelua kohden yhden sivun pöytäkirjaa: mitä valtuuksia numero myöntää, missä se tallennetaan, kuka voi nollata sen, mitä käytön todisteita on ja mitä tekisit ensimmäisen tunnin aikana paljastumisen jälkeen. Juuri tämä pöytäkirja muuttaa terminologiaväittelyn päätökseksi, jonka joku voi auditoida.
Tietosuojaväitteillä on oma laajuutensa. Satunnaisesti luotu numero voi silti olla vakaa tunniste, joka yhdistää tilitapahtumia ajassa; ennustamattomuus ei ole yhdistämättömyyttä, eikä kumpikaan ominaisuus kerro mitään säilytetyistä verkkometatiedoista. Vertaa kokonaisia suunnitelmia sen sijaan, että laskisit kenttiä kirjautumisnäkymässä.
Ennen kuin arkistoit sen:
- Jokainen numeron myöntämä valtuus on lueteltu, mukaan lukien lataukset ja laitevaltuutus.
- Tallennus- ja palautuskanavat on suojattu samalla standardilla kuin itse numero.
- Luontimenetelmä ja nopeusrajat tunnetaan, eikä niitä oleteta pituudesta.
- Vaihtomenettely ja peruutusmenettely ovat olemassa, ja tiedät, kumpi kumoaa kumman.
- Pöytäkirja nimeää, kuka voi nollata arvon ja mitä todisteita käytön jälkeen jää.