Laukas, pažymėtas sąskaitos numeriu, nėra automatiškai vieša nuoroda, o žymė nėra testas. Testas yra tai, ką leidžia turėjimas: jei žinant numerį kas nors prisijungia, atsisiunčiamas ryšio profilis arba įgaliojamas įrenginys, tas numeris yra prisijungimo duomenys su gyvavimo ciklu. Aš atlieku penkias žemiau nurodytas patikras kiekvieną kartą, kai paslauga išduoda skaitmeninę tapatybę ir pavadina ją nekenksminga. Kiekviena sukuria eilutę trumpame įraše, o įrašas yra rezultatas, ne nuosprendis apie produktą.

Inventorizuokite, ką turėjimas iš tikrųjų suteikia

Užrašykite kiekvieną veiksmą, kurį atrakina numeris, atskirai. Prisijungimas prie portalo, konfigūracijos failo gavimas, naujo įrenginio įgaliojimas ir priimto tunelio prisijungimo pateikimas yra skirtingos teisės, ir paslauga gali įgyvendinti vieną be kitų. Portalas, priimantis numerį kaip vienintelį lauką, nieko nesako apie kaip tunelis autentifikuoja savo partnerį vėliau arba kaip išvedami srauto raktai.

Bendrą modelį lengva suformuluoti: bearer prisijungimo duomenys yra tie, kuriuos turėtojas gali naudoti neįrodydamas atskiro kriptografinio rakto turėjimo, ir tai yra skirtumas, kurį RFC 6750 nubrėžia žetonams. Tai palyginimas, o ne teiginys, kad numeriu pagrįsta paslauga įgyvendina OAuth. Jei turėtojui nieko daugiau nereikia, traktuokite numerį kaip bearer paslaptį ir atitinkamai klasifikuokite likusį dizainą.

Saugokite jį kaip paslaptį, o ne kaip nuorodą

Saugojimas kyla iš klasifikacijos. Vertė, kuri prisijungia, priklauso slaptažodžių tvarkyklei, o ne ekrano kopijai, mainų atmintinės istorijai, pokalbio žinutei ar naršyklės užrašui. Ekrano kopijos yra įprasta nutekėjimo vieta: numeris trumpas ir atrodo nekenksmingas, todėl atsiduria palaikymo temoje, kuri gyvuoja ilgiau nei įrenginys, iš kurio jis atėjo.

Fišingas yra kitas gedimo būdas, ir jam nesvarbu, koks atsitiktinis numeris. Sukčius, norintis vertės, paprašys įklijuoti ją į formą, o prisijungimo duomenys, kurie niekada nesibaigia ir neturi antrojo veiksnio, verti pastangų. Pasiekite prisijungimo kelią iš žymės ar žinomo adreso, o ne iš nuorodos žinutėje, kuri taip pat prašo numerio.

Traktuokite atkūrimo medžiagą kaip paslapties dalį. Jei operatorius taip pat išdavė atkūrimo kodą, PIN ar el. pašto adresą, kuriuo galima atstatyti paskyrą, tai yra atskiri prisijungimo duomenys su tuo pačiu apsaugos reikalavimu. Vienas neapsaugotas atstatymo kanalas visas kitas kontrolės priemones paverčia dekoracija.

Tikrinkite atsparumą spėjimui ir greičio ribojimą kartu

Ilgis turi prasmę tik šalia generavimo metodo. Ilgas numeris iš nuspėjamos sekos yra silpnesnis už trumpą vertę iš kriptografinio generatoriaus, o įspūdingas skaitmenų skaičius neįrodo nenuspėjamumo. Paklauskite, kaip generuojama vertė, prieš svarstydami, kaip sunku ją atspėti.

Vien atsparumas spėjimui taip pat neatlaiko neriboto bandymų dažnio. Svarbios yra tos kontrolės priemonės, kurias įgyvendina operatorius: nepavykusių bandymų skaitikliai, užraktai, ribojimas pagal šaltinį ir ar neteisingas numeris atskiriamas nuo neegzistuojančio. Jei paslauga tai palaiko, vienas nepavykęs bandymas parodo, kaip atrodo klaida ir ar atsiranda pakartotinio bandymo skaitiklis:

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

Užrašykite, ką atskleidžia atsakymas. Atskira klaida nežinomai paskyrai yra išvardijimo orakulas net tada, kai numerio neįmanoma atspėti, ir šis radinys priklauso įrašui, nesvarbu, ar galite jį ištaisyti kliento pusėje, ar ne.

Planuokite rotaciją ir atšaukimą prieš jiems prireikiant

Raskite palaikomą procedūrą pamestam ar atskleistam numeriui ir užrašykite ją, kol viskas veikia. Ar paskyros prisijungimo duomenis apskritai galima pakeisti? Ar pakeitimas panaikina jau užregistruotus įrenginius, aktyvias sesijas ar atsisiųstą konfigūraciją? Kokios atkūrimo medžiagos reikalauja procedūra? Paslauga be el. pašto priklausomybės gali perduoti daugiau atkūrimo atsakomybės naudotojui, o tai procedūrą daro svarbesnę, o ne mažiau.

Atskirkite paskyros pakeitimą nuo prisijungimo duomenų atšaukimo. Jei numeris įgalioja atsisiųsti raktą, sertifikatą ar profilį, numerio pakeitimas gali palikti tą atsisiųstą medžiagą galiojančią, o atsisiųstos medžiagos atšaukimas gali būti kita operacija su kitu savininku. Nemanome, kad vienas pakeistas laukas nutraukia kiekvieną ryšį; patikrinkite tikrąjį operatoriaus modelį ir pažymėkite, kur tai patvirtinote.

Dokumentuokite sprendimą ir vėliau jį patikrinkite dar kartą

Laikykite vieno puslapio įrašą kiekvienai paslaugai: kokias teises suteikia numeris, kur jis saugomas, kas gali jį atstatyti, kokie naudojimo įrodymai egzistuoja ir ką darytumėte pirmą valandą po atskleidimo. Būtent šis įrašas paverčia terminų ginčą sprendimu, kurį kas nors gali audituoti.

Privatumo teiginiams reikia savo aprėpties. Atsitiktinai sugeneruotas numeris vis tiek gali būti stabilus identifikatorius, susiejantis paskyros įvykius laike; nenuspėjamumas nėra nesusiejamumas, ir nė viena savybė nieko nesako apie saugomus tinklo metaduomenis. Lyginkite visus dizainus, o ne skaičiuokite laukus prisijungimo ekrane.

Prieš jį įrašydami:

  • Išvardytos visos teisės, kurias suteikia numeris, įskaitant atsisiuntimus ir įrenginių įgaliojimą.
  • Saugojimo ir atkūrimo kanalai apsaugoti tuo pačiu standartu kaip ir pats numeris.
  • Generavimo metodas ir greičio ribos yra žinomi, o ne numanomi iš ilgio.
  • Egzistuoja pakeitimo procedūra ir atšaukimo procedūra, ir žinote, kuri panaikina kurią.
  • Įrašas nurodo, kas gali atstatyti vertę ir kokie įrodymai lieka po naudojimo.

Susiję straipsniai