Et felt mærket kontonummer er ikke automatisk en offentlig reference, og mærkatet er ikke testen. Testen er, hvad besiddelsen tillader: hvis kendskab til nummeret logger nogen ind, downloader en forbindelsesprofil eller godkender en enhed, er nummeret en adgangsoplysning med en livscyklus. Jeg kører de fem kontroller nedenfor, hver gang en tjeneste udsteder en numerisk identitet og kalder den uskadelig. Hver giver en linje i en kort rapport, og rapporten er leverancen, ikke en dom over produktet.

Kortlæg, hvad besiddelsen faktisk giver

Skriv hver handling, som nummeret låser op, ned separat. At logge ind på en portal, hente en konfigurationsfil, godkende en ny enhed og levere et accepteret tunnel-login er forskellige beføjelser, og en tjeneste kan implementere én uden de andre. En portal, der accepterer nummeret som det eneste felt, fortæller intet om hvordan tunnelen autentificerer sin peer senere, eller hvordan trafiknøgler udledes.

Den generelle model er let at formulere: en bearer-adgangsoplysning er en, hvor indehaveren kan bruge den uden at bevise besiddelse af en separat kryptografisk nøgle, og det er den forskel, som RFC 6750 drager for tokens. Det er en sammenligning, ikke en påstand om, at en nummerbaseret tjeneste implementerer OAuth. Hvis indehaveren ikke har brug for andet, skal nummeret behandles som en bearer-hemmelighed, og resten af designet klassificeres derefter.

Beskyt det som en hemmelighed, ikke som en reference

Opbevaringen følger af klassificeringen. En værdi, der logger ind, hører i en passwordmanager, ikke i et skærmbillede, en udklipsholderhistorik, en chatbesked eller en browsernote. Skærmbilleder er den sædvanlige lækage: nummeret er kort og ser uskadeligt ud, så det ender i en supporttråd, der overlever den enhed, det kom fra.

Phishing er den anden fejltilstand, og den er ligeglad med, hvor tilfældigt nummeret er. En svindler, der vil have værdien, vil bede dig indsætte den i en formular, og en adgangsoplysning, der aldrig udløber og ikke har en anden faktor, er indsatsen værd. Nå loginvejen via et bogmærke eller en kendt adresse, ikke via et link i en besked, der også beder om nummeret.

Behandl gendannelsesmateriale som en del af hemmeligheden. Hvis operatøren også har udstedt en gendannelseskode, en PIN-kode eller en e-mailadresse, der kan nulstille kontoen, er det separate adgangsoplysninger med samme beskyttelseskrav. Én ubeskyttet nulstillingskanal gør enhver anden kontrol til dekoration.

Kontrollér gætemodstand og hastighedsbegrænsning sammen

Længde er kun meningsfuld ved siden af genereringsmetoden. Et langt nummer fra en forudsigelig sekvens er svagere end en kort værdi fra en kryptografisk generator, og et imponerende antal cifre beviser ikke uforudsigelighed. Spørg, hvordan værdien genereres, før du ræsonnerer om, hvor svær den er at gætte.

Gætemodstand alene overlever heller ikke en ubegrænset forsøgsrate. De kontroller, der betyder noget, er dem, operatøren implementerer: tællere for mislykkede forsøg, låsninger, begrænsning pr. kilde og om et forkert nummer kan skelnes fra et ikke-eksisterende. Hvis tjenesten understøtter det, viser ét mislykket forsøg, hvordan fejlen ser ud, og om der vises en gentagelsestæller:

# 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"

Notér, hvad svaret afslører. En særskilt fejl for en ukendt konto er et enumerationsorakel, selv når nummeret ikke kan gættes, og den observation hører i rapporten, uanset om du kan rette den på klientsiden.

Planlæg rotation og tilbagekaldelse, før du får brug for dem

Find den understøttede proces for et mistet eller afsløret nummer, og skriv den ned, mens alt virker. Kan kontoens adgangsoplysning overhovedet udskiftes? Ugyldiggør udskiftningen allerede tilmeldte enheder, aktive sessioner eller downloadet konfiguration? Hvilket gendannelsesmateriale kræver processen? En tjeneste uden e-mailafhængighed kan flytte mere gendannelsesansvar til brugeren, hvilket gør proceduren vigtigere, ikke mindre.

Adskil udskiftning af kontoen fra tilbagekaldelse af adgangsoplysningen. Hvis nummeret godkender download af en nøgle, et certifikat eller en profil, kan udskiftning af nummeret efterlade det downloadede materiale gyldigt, og tilbagekaldelse af det downloadede materiale kan være en anden handling med en anden ejer. Antag ikke, at ét ændret felt afslutter alle forbindelser; kontrollér operatørens faktiske model, og notér, hvor du verificerede det.

Dokumentér beslutningen, og kontrollér den igen senere

Hold en rapport på én side pr. tjeneste: hvilke beføjelser nummeret giver, hvor det opbevares, hvem der kan nulstille det, hvilke beviser for brug der findes, og hvad du ville gøre i den første time efter en afsløring. Den rapport er det, der forvandler en diskussion om terminologi til en beslutning, som nogen kan revidere.

Privatlivspåstande har brug for deres eget omfang. Et tilfældigt genereret nummer kan stadig være en stabil identifikator, der forbinder kontobegivenheder over tid; uforudsigelighed er ikke ikke-sammenkædelighed, og ingen af egenskaberne siger noget om opbevarede netværksmetadata. Sammenlign komplette designs i stedet for at tælle felter på en loginsskærm.

Før du arkiverer det:

  • Hver beføjelse, som nummeret giver, er opført, inklusive downloads og enhedsgodkendelse.
  • Opbevarings- og gendannelseskanaler er beskyttet efter samme standard som nummeret selv.
  • Genereringsmetoden og hastighedsgrænserne er kendt, ikke antaget ud fra længden.
  • Der findes en udskiftningsprocedure og en tilbagekaldelsesprocedure, og du ved, hvilken der ophæver hvilken.
  • Rapporten angiver, hvem der kan nulstille værdien, og hvilke beviser der er tilbage efter brug.

Relaterede artikler