Přeskočit na obsah

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

Vrstvy služby Usher Identity. Doména tenantů je jiná registrovatelná doména než doména platformy, takže stránky tenanta nejsou nikdy na stejném webu (same-site) jako Console.

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ě

Prostředí

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.
  1. Hlavní klíč

    Uložený mimo databázi, s verzemi

  2. Datový klíč, jeden na prostředí

    Zabalený hlavním klíčem

  3. Tajný údaj

    Zapečetěný pomocí AES-256-GCM datovým klíčem

u1.<key version>.<iv>.<ciphertext + tag>

aad = u1 | version | environment | purpose

Zapečetěná hodnota ve svých ověřovaných datech uvádí své prostředí a účel. Zkopírovaná kamkoli jinam se neotevře.

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.

security@usheridentity.com
  • 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í.