Zabezpečení
Zabezpečení, které působí jako pohostinnost.
Poskytovatel identity je jen tak dobrý jako zdi mezi jeho tenanty a péče, s jakou zachází s tajnými údaji. Takhle je Usher Identity postavený. Popisujeme, co software dělá; netvrdíme, že má jakoukoli certifikaci.
Architektura
Oddělené domény, oddělené sítě.
Vlastní stránky Usher Identity a vydavatel každého zákazníka leží na různých registrovatelných doménách. Databáze jsou v síti, která se nedostane do internetu, a jediná cesta ven vede přes proxy, která kontroluje, kam se jde.
- Caddy ukončuje TLS pro všechny hostitele a odstraňuje hlavičky, které smějí nastavovat jen vlastní služby Usher Identity.
- Ověřovací vrstva odpovídá za všechna prostředí a rozlišuje je podle hostitele; nic, co se uloží do mezipaměti pro jednoho hostitele, se nedoručí jinému.
- Každá služba mluví s Valkey jako vlastní uživatel s přístupem jen ke svým klíčům. Žádný výchozí uživatel neexistuje.
- Příkazy, které nesou tokeny a kódy, se nikdy nezapisují do protokolu databáze i s hodnotami.
Internet
Lidé, vaše aplikace, vaše servery
Okraj
Caddy: TLS, HSTS, odstraňuje interní hlavičky
usheridentity.com
Web a Console
usheridentity.com, console.usheridentity.com
API
api.usheridentity.com
*.usherid.com
Ověřovací vrstva
Vydavatel a Lobby každého prostředí
Datová síť · bez cesty ven
Postgres
Jedno schéma na prostředí
Valkey
Každá služba jen se svými klíči
Jediná cesta ven
Odchozí proxy
Pro každou adresu URL od zákazníka
Discovery, JWKS, odhlášení
Jen veřejné adresy
Izolace
Nic podstatného se nesdílí.
Každé prostředí projektu dostane vlastní schéma Postgres, vlastní podpisové klíče a vlastní tajné údaje zapečetěné vlastním datovým klíčem. Jeho vydavatel je hostitel na doméně tenantů a jeho cookies platí jen pro tohoto hostitele, takže prohlížeč nikdy nepošle cookie jednoho prostředí jinému.
usheridentity.com
Web, Usher Identity Console, účty Usher Identity
*.usherid.com
Jeden vydavatel na prostředí, na samostatné doméně
Uživatelé, relace a tokeny jsou ve schématu vytvořeném pro toto prostředí. Dotazy běží proti tomuto schématu, nikdy proti sdílené tabulce se sloupcem tenantu.
Zkopírujte zapečetěný tajný klíč klienta Google z produkčního prostředí projektu Acme do produkčního prostředí projektu Northwind.
Šifrování uložených dat
Obálkové šifrování, vázané na své místo.
Tajné údaje, které službě Usher Identity svěříte, se pečetí pomocí AES-256-GCM datovým klíčem, který patří jedinému prostředí. Datové klíče jsou samy zabalené hlavním klíčem s verzemi, uloženým mimo databázi.
- Datové klíče pro každé prostředí
- Prozrazení datového klíče jednoho prostředí neodhalí nic o klíči jiného.
- Vazba přes AAD
- Prostředí a účel jsou vázané do každého šifrového textu, takže hodnotu nejde přesunout mezi řádky ani tenanty.
- Klíče s verzemi
- Každá zapečetěná hodnota si pamatuje verzi klíče, se kterou vznikla, takže klíče jde vyměnit a staré hodnoty znovu zabalit.
- Ověřované šifrování
- Díky tagu GCM se pozměněná hodnota neotevře, místo aby se dešifrovala na něco jiného.
Hlavní klíč
Uložený mimo databázi, s verzemi
Datový klíč, jeden na prostředí
Zabalený hlavním klíčem
Tajný údaj
Zapečetěný pomocí AES-256-GCM datovým klíčem
u1.<key version>.<iv>.<ciphertext + tag>
aad = u1 | version | environment | purpose
Postupy
Detaily, udělané pečlivě.
Hesla, pokud je používáte
Hashují se algoritmem Argon2id s náročností, kterou doporučuje OWASP (19 MiB, dva průchody), a s omezením, kolik jich může běžet najednou, aby záplava přihlášení nemohla službu shodit. Nová hesla se kontrolují proti známým únikům přes rozhraní range API služby Have I Been Pwned, která vidí jen krátkou předponu hashe hesla. Výchozí minimální délka je 12 znaků.
Nic uloženého, co by šlo použít znovu
Tajné klíče klientů, tokeny, tokeny magických odkazů a kódy zaslané e-mailem se ukládají jako hashe. Záložní kódy jsou šifrované. Autorizační kód platí pět minut; kód zaslaný e-mailem dovoluje tři pokusy.
Omezení počtu pokusů u všech dveří
Přihlášení, registrace, kódy e-mailem, magické odkazy, obnovení hesla i kontroly druhého faktoru mají každé svůj limit: například deset přihlášení heslem za minutu a pět kódů e-mailem za deset minut.
Přísná Content-Security-Policy
Každá stránka Lobby dostane čerstvou hodnotu nonce a zásady postavené kolem ní: spustí se jen skripty z tohoto původu, které nonce nesou, formuláře se odesílají jen na stejný původ a jiné weby nemohou stránku vložit do rámce.
Protokol auditu, kterému můžete věřit
Změny pracovních prostorů, projektů a prostředí se zapisují do protokolu, do kterého se dá jen přidávat, a každý záznam je hashem zřetězený s předchozím, takže upravený nebo chybějící záznam je vidět.
Odchozí proxy pro adresy URL zákazníků
Každý požadavek, který Usher Identity posílá na adresu od zákazníka (OIDC discovery, JWKS, odhlášení přes back-channel), odchází přes jedinou proxy. Ta přeloží název jen jednou, odmítne soukromé, loopback, link-local i cloudové metadatové adresy a připojí se k adrese, kterou zkontrolovala, takže DNS rebinding nemůže z adresy zákazníka udělat interní.
Označení, která se nikdy nepřidělí dvakrát
Označení produkčního prostředí je první část názvu hostitele jeho vydavatele. Do Console se dostanete jen na pozvánku, Lobby nahlášená kvůli phishingu se pozastaví a jednou použité označení se už nikdy nikomu nepřidělí, protože staré aplikace mohou jeho tokenům pořád důvěřovat.
Relace, které skončí, když řeknete
Usher Identity při každém požadavku kontroluje vlastní relace, místo aby věřil kopii v mezipaměti, takže relace, kterou ukončíte, okamžitě končí. Přístupové tokeny mají krátkou platnost (ve výchozím nastavení deset minut) a vaše API je může ověřit introspekcí.
Odpovědné hlášení zranitelností
Něco jste našli? Řekněte nejdřív nám.
Pokud si myslíte, že jste ve službě Usher Identity našli bezpečnostní problém, rádi se o něm dozvíme a společně s vámi ho opravíme.
- Co jste našli, kde a jak to zopakovat.
- Co by s tím někdo mohl udělat, jak to chápete vy.
- Jak se s vámi můžeme spojit a jestli chcete být uvedeni.
Testujte prosím jen proti prostředím, která vlastníte, nepřistupujte k datům jiných lidí a dejte nám přiměřený čas na opravu, než o problému dáte vědět dalším. Pokud chcete nahlásit stránku, která se vydává za přihlášení Usher Identity, přejděte na stránku Nahlásit zneužití.