Varnost
Varnost, ki deluje kot gostoljubje.
Ponudnik identitete je dober le toliko, kot so dobre stene med njegovimi najemniki in skrbnost, s katero ravna s skrivnostmi. Tako je zgrajen Usher Identity. Opisujemo, kaj programska oprema počne; ne trdimo, da ima kakršno koli certifikacijo.
Arhitektura
Ločene domene, ločena omrežja.
Lastne strani Usher Identity in izdajatelji vseh strank so na različnih registrirljivih domenah. Zbirke podatkov so v omrežju, ki ne more doseči interneta, edina pot ven pa je posredniški strežnik, ki preveri, kam je namenjen.
- Caddy zaključuje TLS za vsakega gostitelja in odstrani glave, ki jih smejo nastaviti samo lastne storitve Usher Identity.
- Raven za preverjanje pristnosti odgovarja za vsa okolja, ki jih loči po gostitelju; nič se ne shrani v predpomnilnik za enega gostitelja in postreže drugemu.
- Vsaka storitev komunicira z Valkey kot svoj uporabnik, omejena na svoje ključe. Privzetega uporabnika ni.
- Stavki z žetoni in kodami se nikoli ne zapišejo v dnevnik zbirke podatkov skupaj z njihovimi vrednostmi.
Internet
Ljudje, vaše aplikacije, vaši strežniki
Rob
Caddy: TLS, HSTS, odstrani notranje glave
usheridentity.com
Spletno mesto in Console
usheridentity.com, console.usheridentity.com
API
api.usheridentity.com
*.usherid.com
Raven za preverjanje pristnosti
Izdajatelj in Lobby vsakega okolja
Podatkovno omrežje · brez poti ven
Postgres
Shema za vsako okolje
Valkey
Vsaka storitev omejena na svoje ključe
Edina pot ven
Izhodni posredniški strežnik
Za vsak URL, ki ga posreduje stranka
Odkrivanje, JWKS, odjava
Samo javni naslovi
Izolacija
Nič pomembnega ni skupnega.
Vsako okolje projekta dobi svojo shemo Postgres, svoje ključe za podpisovanje in svoje skrivnosti, zapečatene z lastnim podatkovnim ključem. Njegov izdajatelj je gostitelj na domeni najemnikov, njegovi piškotki pa so samo za gostitelja, zato brskalnik piškotka enega okolja nikoli ne pošlje drugemu.
usheridentity.com
Spletno mesto, Usher Identity Console, računi Usher Identity
*.usherid.com
En izdajatelj na okolje, na ločeni domeni
Uporabniki, seje in žetoni so v shemi, ustvarjeni za to okolje. Poizvedbe tečejo na tej shemi, nikoli na skupni tabeli s stolpcem najemnika.
Kopiraj zapečateno skrivnost odjemalca Google iz produkcijskega okolja projekta Acme v produkcijsko okolje projekta Northwind.
Šifriranje v mirovanju
Ovojnično šifriranje, vezano na svoje mesto.
Skrivnosti, ki jih zaupate Usher Identity, so zapečatene z AES-256-GCM pod podatkovnim ključem, ki pripada enemu okolju. Podatkovni ključi so sami oviti z glavnim ključem z različicami, ki se hrani zunaj zbirke podatkov.
- Podatkovni ključi za vsako okolje
- Ogrožen podatkovni ključ enega okolja ne razkrije ničesar o ključu drugega.
- Vezava AAD
- Okolje in namen sta vezana v vsako šifrirano besedilo, zato vrednosti ni mogoče premakniti med vrsticami ali najemniki.
- Ključi z različicami
- Vsaka zapečatena vrednost beleži različico ključa, s katero je bila ustvarjena, zato je ključe mogoče zamenjati, stare vrednosti pa znova oviti.
- Overjeno
- Oznaka GCM pomeni, da se spremenjena vrednost ne odpre, namesto da bi se dešifrirala v nekaj drugega.
Glavni ključ
Hranjen zunaj zbirke podatkov, z različicami
Podatkovni ključ, eden na okolje
Ovit z glavnim ključem
Skrivnost
Zapečatena z AES-256-GCM pod podatkovnim ključem
u1.<key version>.<iv>.<ciphertext + tag>
aad = u1 | version | environment | purpose
Prakse
Podrobnosti, skrbno izvedene.
Gesla, če jih uporabljate
Zgoščena z Argon2id po ceni, ki jo priporoča OWASP (19 MiB, dva prehoda), z omejitvijo, koliko jih teče hkrati, tako da poplava prijav ne more onesposobiti storitve. Nova gesla se preverjajo glede na znana uhajanja podatkov prek API-ja za obsege Have I Been Pwned, ki vidi samo kratko predpono zgoščene vrednosti gesla. Najmanjša dolžina je privzeto 12.
Nič shranjenega, kar bi se dalo ponovno uporabiti
Skrivnosti odjemalcev, žetoni, žetoni čarobnih povezav in kode po e-pošti so shranjeni zgoščeni. Rezervne kode so šifrirane. Avtorizacijska koda velja pet minut; koda po e-pošti dovoli tri poskuse.
Omejitve hitrosti na vsakih vratih
Prijava, registracija, kode po e-pošti, čarobne povezave, ponastavitve gesla in preverjanja drugega dejavnika imajo vsaka svojo omejitev: na primer deset prijav z geslom na minuto in pet kod po e-pošti na vsakih deset minut.
Strog Content-Security-Policy
Vsaka stran Lobbyja dobi svež nonce in pravilnik, zgrajen okoli njega: tečejo samo skripte tega izvora, ki nosijo nonce, obrazci pošiljajo samo na isti izvor, druga spletna mesta pa strani ne morejo vstaviti v okvir.
Revizijski dnevnik, ki mu lahko zaupate
Spremembe delovnih prostorov, projektov in okolij se zapisujejo v dnevnik, v katerega je mogoče le dodajati, vsak vnos pa je z zgoščeno vrednostjo povezan s prejšnjim, zato se spremenjen ali manjkajoč vnos pokaže.
Izhodni posredniški strežnik za URL-je strank
Vsaka zahteva, ki jo Usher Identity pošlje na naslov, ki mu ga je dala stranka (odkrivanje OIDC, JWKS, odjava po zalednem kanalu), gre ven skozi en posredniški strežnik. Ime razreši enkrat, zavrne zasebne, povratne, lokalne za povezavo in naslove metapodatkov oblaka ter se poveže na naslov, ki ga je preveril, zato ponovno vezanje DNS ne more URL-ja stranke spremeniti v notranjega.
Oznake, ki se nikoli ne dodelijo dvakrat
Oznaka produkcijskega okolja je prva oznaka v imenu njegovega izdajatelja. Console je dostopen na povabilo, Lobby, prijavljen zaradi lažnega predstavljanja, je začasno onemogočen, enkrat uporabljena oznaka pa se nikoli več ne dodeli, ker stare aplikacije morda še zaupajo njenim žetonom.
Seje, ki se končajo, ko tako rečete
Usher Identity ob vsaki zahtevi preveri svoje seje, namesto da bi zaupal kopiji iz predpomnilnika, zato je seja, ki jo končate, takoj končana. Žetoni za dostop so kratkotrajni (privzeto deset minut), vaš API pa jih lahko preveri z introspekcijo.
Odgovorno razkritje
Ste kaj našli? Najprej povejte nam.
Če menite, da ste našli varnostno težavo v Usher Identity, bi radi slišali o njej in bomo z vami sodelovali, da jo odpravimo.
- Kaj ste našli, kje in kako to ponoviti.
- Kaj bi nekdo lahko s tem storil, kot to razumete vi.
- Kako vas lahko dosežemo in ali želite biti navedeni.
Preizkušajte samo okolja, ki so vaša, ne dostopajte do podatkov drugih ljudi in nam dajte razumen čas, da težavo odpravimo, preden jo delite. Če želite prijaviti stran, ki se izdaja za prijavo Usher Identity, glejte Prijavite zlorabo.