Sårbarhet i OpenID Connect
Som en konsekvens av en sårbarhet i OpenID connect, ble det gjort endringer for bruk av parameteren «private_key_jwt», som i HelseID brukes for klientautentisering. Endringene blir innført som en ny spesifikasjon, som utdaterer RFC7523, og gir forandringer for blant annet RFC7521 og RFC9126.
Sårbarheten utnyttes ved at en angriper i noen situasjoner kan kontrollere verdier i Audience-claimet i client_assertion som sendes fra klienten, både til PAR- og Token-endepunktene.
- Sårbarheten kan la en angriper utgi seg for å være en legitim klient
- Det er flere forutsetninger som må oppfylles for at angrepet skal være vellykket, og vi anser sannsynligheten for misbruk som lav
- Det har ennå ikke blitt oppdaget kjente angrep av denne typen
Parameteren «private_key_jwt» er den eneste måten man kan autentisere en klientkonfigurasjon for HelseID, og derfor må alle klientsystemer gjøre endringer, enten i kode, og/eller i konfigurasjon. Endringene som trengs å gjøres er de følgende:
- "aud"-claimet i JWT-tokenet som gis fra klienten til HelseID i "client_assertion"-parameteren må alltid ha verdien https://helseid-sts.nhn.no i produksjon og https://helseid-sts.test.nhn.no i test. Ingen andre verdier vil bli godtatt. Noen klienter kan ha brukt andre verdier, og må derfor sjekke at disse verdiene er korrekte.
- "typ"-headeren i JWT-tokenet som gis fra klienten til HelseID i "client_assertion"-parameteren må alltid ha verdien "client-authentication+jwt". Ingen andre verdier vil bli godtatt. Dette er en helt ny endring i spesifikasjonen.
Verrdiene er beskrevet i dokumentet «Bruk av client assertion for klientautentisering i HelseID».
Dette er en brekkende endring som vil kreve tilpasninger (i kode eller konfigurasjon) i alle klientsystemer. Av hensyn til sikkerheten vil HelseID planelegge endringene i løpet av juni 2025. I TEST-miljøet vil endringen bli innført i løpet av april.
Vi anbefaler dessuten at alle som ikke har implementert PAR og DPoP, også tar disse sikkerhetstiltakene i bruk.