Gå til innholdet

Sikkerhet

Sikkerhet som føles som gjestfrihet.

En identitetsleverandør er aldri bedre enn veggene mellom leietakerne og omsorgen den viser for hemmeligheter. Slik er Usher Identity bygget. Vi beskriver hva programvaren gjør; vi hevder ikke at den er sertifisert.

Arkitektur

Separate domener, separate nettverk.

Usher Identitys egne sider og hver kundes utsteder ligger på forskjellige registrerbare domener. Databasene står på et nettverk som ikke når internett, og den eneste veien ut er en proxy som sjekker hvor den skal.

  • Caddy terminerer TLS for alle verter og fjerner headere som bare Usher Identitys egne tjenester får sette.
  • Autentiseringslaget svarer for alle miljøer, skilt fra hverandre på vert; ingenting mellomlagres for én vert og serveres til en annen.
  • Hver tjeneste snakker med Valkey som sin egen bruker, begrenset til sine egne nøkler. Det finnes ingen standardbruker.
  • Spørringer med tokener og koder skrives aldri til databaseloggen med verdiene sine.

Internett

Folk, appene dine, serverne dine

Kanten

Caddy: TLS, HSTS, fjerner interne headere

usheridentity.com

Nettsted og Console

usheridentity.com, console.usheridentity.com

API

api.usheridentity.com

*.usherid.com

Autentiseringslag

Hvert miljøs utsteder og Lobby

Datanettverk · ingen rute ut

Postgres

Ett skjema per miljø

Valkey

Hver tjeneste begrenset til sine egne nøkler

Den eneste veien ut

Utgående proxy

For alle URL-er fra kunder

Discovery, JWKS, utlogging

Bare offentlige adresser

Usher Identitys lag. Leietakerdomenet er et annet registrerbart domene enn plattformens, så en leietakers sider er aldri på samme nettsted (same-site) som Console.

Isolasjon

Ingenting som betyr noe, er delt.

Hvert prosjektmiljø får sitt eget Postgres-skjema, sine egne signeringsnøkler og sine egne hemmeligheter forseglet med sin egen datanøkkel. Utstederen er en vert på leietakerdomenet, og informasjonskapslene gjelder bare for verten, så en nettleser sender aldri ett miljøs informasjonskapsel til et annet.

usheridentity.com

Nettstedet, Usher Identity Console, kontoer hos Usher Identity

*.usherid.com

Én utsteder per miljø, på et eget domene

Miljø

Brukere, økter og tokener ligger i et skjema laget for dette miljøet. Spørringer kjøres mot det skjemaet, aldri mot en delt tabell med en leietakerkolonne.

Kopier den forseglede Google-klienthemmeligheten fra Acme produksjon til Northwind produksjon.

Kryptering av lagrede data

Konvoluttkryptering, bundet til sin plass.

Hemmeligheter du gir Usher Identity, forsegles med AES-256-GCM under en datanøkkel som tilhører ett miljø. Datanøklene er selv pakket inn av en versjonert hovednøkkel som oppbevares utenfor databasen.

Datanøkler per miljø
Kommer ett miljøs datanøkkel på avveie, avslører det ingenting om et annet miljøs.
AAD-binding
Miljøet og formålet er bundet inn i hver chiffertekst, så en verdi kan ikke flyttes mellom rader eller leietakere.
Versjonerte nøkler
Hver forseglet verdi registrerer nøkkelversjonen den ble laget med, så nøkler kan roteres og gamle verdier pakkes inn på nytt.
Autentisert
Takket være GCM-taggen lar en manipulert verdi seg ikke åpne, i stedet for å dekrypteres til noe annet.
  1. Hovednøkkel

    Oppbevart utenfor databasen, versjonert

  2. Datanøkkel, én per miljø

    Pakket inn av hovednøkkelen

  3. Hemmeligheten

    Forseglet med AES-256-GCM under datanøkkelen

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

aad = u1 | version | environment | purpose

En forseglet verdi navngir miljøet og formålet sitt i de autentiserte dataene. Kopieres den et annet sted, lar den seg ikke åpne.

Praksis

Detaljene, gjort med omhu.

  • Passord, hvis du bruker dem

    Hasjet med Argon2id med kostnaden OWASP anbefaler (19 MiB, to runder), med et tak på hvor mange som kjører samtidig, så en flom av pålogginger ikke kan slå ut tjenesten. Nye passord sjekkes mot kjente datalekkasjer gjennom range-API-et til Have I Been Pwned, som bare ser et kort prefiks av passordets hasj. Minste lengde er 12 som standard.

  • Ingenting lagret som kan spilles av på nytt

    Klienthemmeligheter, tokener, tokener for magiske lenker og koder på e-post lagres hasjet. Reservekoder er kryptert. En autorisasjonskode varer i fem minutter; en kode på e-post gir tre forsøk.

  • Hastighetsgrenser på alle dører

    Pålogging, registrering, koder på e-post, magiske lenker, tilbakestilling av passord og kontroll av andre trinn har hver sin grense: ti passordpålogginger i minuttet, for eksempel, og fem koder på e-post hvert tiende minutt.

  • En streng Content-Security-Policy

    Hver side i Lobbyen får en fersk nonce og en policy bygget rundt den: bare skript fra denne opprinnelsen som har nonce-en, kjøres, skjemaer sendes bare til samme opprinnelse, og andre nettsteder kan ikke legge siden i en ramme.

  • En revisjonslogg du kan stole på

    Endringer i arbeidsområder, prosjekter og miljøer skrives til en logg som bare kan legges til, der hver oppføring er hasjkjedet til den forrige, så en redigert eller manglende oppføring synes.

  • En utgående proxy for kunde-URL-er

    Hver forespørsel Usher Identity sender til en adresse en kunde har oppgitt (OIDC discovery, JWKS, back-channel-utlogging), går ut gjennom én proxy. Den slår opp navnet én gang, avviser private adresser, loopback- og link-local-adresser og adresser for skymetadata, og kobler til adressen den sjekket, så DNS-rebinding ikke kan gjøre en kunde-URL om til en intern.

  • Kortnavn som aldri deles ut to ganger

    Kortnavnet til et produksjonsmiljø er den første delen av utstederen. Console er bare åpen for inviterte, en Lobby som er rapportert for nettfisking, blir suspendert, og et kortnavn som har vært i bruk, deles aldri ut igjen, fordi gamle apper fortsatt kan stole på tokenene som er utstedt med det.

  • Økter som slutter når du sier det

    Usher Identity sjekker sine egne økter ved hver forespørsel i stedet for å stole på en mellomlagret kopi, så en økt du avslutter, er over med en gang. Tilgangstokener er kortlivede (ti minutter som standard), og API-et ditt kan introspektere dem.

Ansvarlig varsling

Funnet noe? Si fra til oss først.

Hvis du tror du har funnet et sikkerhetsproblem i Usher Identity, vil vi gjerne høre om det, og vi samarbeider med deg om å rette det.

security@usheridentity.com
  • Hva du fant, hvor, og hvordan det kan gjenskapes.
  • Hva noen kunne gjøre med det, slik du forstår det.
  • Hvordan vi når deg, og om du vil bli kreditert.

Test bare mot miljøer du eier, ikke gå inn i andres data, og gi oss rimelig tid til å rette problemet før du deler det. For å rapportere en side som later som den er en pålogging hos Usher Identity, se Rapporter misbruk.