RFC0054 Langdurige en offline autorisatie van DVP
Samenvatting
Waarom is deze RFC nodig? | Deze RFC is nodig om de gebruiksvriendelijkheid van MedMij voor gebruikers (Persoon) en (zorg)aanbieders te vergroten. Doelstellingen:
Scope:
Requirements:
|
---|---|
Input van deelnemers |
|
Oplossingsrichting | Wat is hiervoor nodig:
Samenvatting:
Flow voor 1e verzamel-actie:
Gekozen oplossingsrichting: Flow bij herhaalde verzamel-actie:
|
Aanpassing van | N.t.b. |
Impact op rollen | DVP, DVA |
Impact op beheer | N.t.b. |
Impact op RnA | N.t.b. |
Impact op Acceptatie | Ja |
PIA noodzakelijk | |
Gerelateerd aan (Andere RFCs, PIM issues) | Deze RFC is afhankelijk van RFC0039. |
Eigenaar | |
Implementatietermijn | 1.5.0 |
Motivatie verkorte RFC procedure (patch) |
Goedkeuring
Beoordelaar | Datum | Toelichting | Beoordelaar | Datum | Toelichting |
---|---|---|---|---|---|
Productmanager Stichting MedMij | Productmanager Beheerorganisatie | ||||
Leadarchitect Stichting MedMij | Leadarchitect Beheerorganisatie | ||||
Ontwerpteam | |||||
Deelnemersraad | Eigenaarsraad |
Principe's
Principe | Principe | ||
---|---|---|---|
1 Het MedMij-netwerk is zoveel mogelijk gegevensneutraal | 11 Stelselfuncties worden vanaf de start ingevuld | ||
2 Dienstverleners zijn transparant over de gegevensdiensten | 12 Het afsprakenstelsel is een groeimodel | ||
3 Dienstverleners concurreren op de functionaliteiten | 13 Ontwikkeling geschiedt in een half-open proces met verschillende stakeholders | ||
4 Dienstverleners zijn aanspreekbaar door de gebruiker | 14 Uitwisseling is een keuze | ||
5 De persoon wisselt gegevens uit met de zorgaanbieder | 15 Het MedMij-netwerk is gebruiksrechten-neutraal | ||
6 MedMij spreekt alleen af wat nodig is | 16 De burger regisseert zijn gezondheidsinformatie als uitgever | ||
7 De persoon en de zorgaanbieder kiezen hun eigen dienstverlener | 17 Aan de persoonlijke gezondheidsomgeving zelf worden eisen gesteld | ||
9 De dienstverleners zijn deelnemers van het afsprakenstelsel | 18 Afspraken worden aantoonbaar nageleefd en gehandhaafd | ||
10 Alleen de dienstverleners oefenen macht uit over persoonsgegevens bij de uitwisseling | 19 Het afsprakenstelsel snijdt het gebruik van normen en standaarden op eigen maat | ||
Toelichting |
Uitwerking
Volgt.
Risico's
Omschrijf de (privacy)risico's die kunnen ontstaan als deze RFC wordt aangenomen. In het onwaarschijnlijke geval dat deze RFC's geen risico's introduceert, geef dat dan wel aan.
Kans en impact zijn geclassificeerd conform NEN7512. De classificatie weerspiegelt de risico's die zijn verbonden aan deze RFC nadat onderstaande security maatregelen al zijn genomen.
Genomen security maatregelen in de oplossing:
Maatregel | Toelichting |
---|---|
The authorization server MUST ensure that refresh tokens cannot be generated, modified, or guessed to produce valid refresh tokens by unauthorized parties. | Opaque refresh_tokens moeten een hoge entropie hebben. Wordt in AS al vereist voor authorization codes en access tokens, nog niet voor refresh_tokens. JWT-based refresh_tokens moeten worden gesigned door de issuer. Zie ook: https://datatracker.ietf.org/doc/html/rfc8725. |
Refresh tokens MUST be kept confidential in transit and storage, and shared only among the authorization server and the client to whom the refresh tokens were issued. Refresh tokens MUST only be transmitted using TLS as described in Section 1.6 with server authentication as defined by [RFC2818] Enforce Credential Storage Protection Best Practices | https://datatracker.ietf.org/doc/html/rfc6819#section-5.1.4.1 https://datatracker.ietf.org/doc/html/rfc6819#section-5.1.2 In het afsprakenstelsel wordt reeds mTLS vereist tussen PGO Server en Autorisatie Server en worden middels een aanvullend normenkader reeds eisen gesteld aan de beveiliging van de opslag bij DVP en DVA. Wordt dit ook voldoende gedaan m.b.t. opslag van tokens? |
The authorization server MUST maintain the binding between a refresh token and the client to whom it was issued. The authorization server MUST verify the binding between the refresh token and client identity whenever the client identity can be authenticated. | https://datatracker.ietf.org/doc/html/rfc6819#section-5.1.5.8 https://datatracker.ietf.org/doc/html/draft-ietf-oauth-token-binding-08#section-2 https://connect2id.com/learn/token-binding https://tools.ietf.org/id/draft-ietf-oauth-pop-key-distribution-04.html Er wordt gekozen om het refresh_token gewoon te binden aan de OAuth client_id (hostname uit de OCL). Wanneer Authorization Server een verzoek krijgt om een token te refreshen, dan mag zij dit slechts doen voor de OAuth client aan wie het refresh_token oorspronkelijk was uitgegeven. Dus binnen het afsprakenstelsel ook de client_id toestaan als claim in een security token. |
The authorization server MUST employ refresh token rotation in which a new refresh token is issued with every access token refresh response. The previous refresh token is invalidated but retained by the authorization server. | If a refresh token is compromised and subsequently used by both the attacker and the legitimate client, one of them will present an invalidated refresh token, which will inform the authorization server of the breach. |
Refresh_tokens moeten kunnen worden revoked | https://datatracker.ietf.org/doc/html/rfc6819#section-5.2.2.4 |
Restricted Issuance of Refresh Tokens >> is er een relevant criterium om onderscheid te maken tussen PGO Servers? Bijv. extra eisen aan authenticatie in PGO. | https://datatracker.ietf.org/doc/html/rfc6819#section-5.2.2.1 |
Resterende risico's:
Dreiging | Kans | Impact | Resulterend Risico | DreigingsID (intern) | Benodigde aanvullende maatregelen |
---|---|---|---|---|---|
PGO Server wordt (ongemerkt) overgenomen door hackers, waardoor nieuwe (FHIR-)interacties kunnen worden ingestuurd door deze hackers en nieuwe medische gegevens in handen komen van de hackers. Dit kan dan worden gedaan voor alle gebruikers van deze PGO Server waarvoor reeds refresh_tokens beschikbaar zijn in de PGO Server. | Middelmatig | Matig | Matig | Geen. Kans wordt niet verhoogd door deze RFC. Impact wordt enigszins verhoogd door deze RFC, doordat meer gegevens kunnen worden verkregen of verzonden dan degenen die reeds uitgewisseld waren. | |
Onopzettelijke fout in PGO Server, waardoor een verkregen refresh_token voor persoon 1 wordt gebruikt voor een (FHIR-)interactie die wordt gestuurd vanuit het PGO van persoon 2. | Klein | Matig | Matig | Toetsen tijdens MedMij acceptatie. | |
Autorisatie Server wordt (ongemerkt) overgenomen door hackers, waardoor onbeperkt geldige refresh_tokens kunnen worden gegenereerd. EN PGO Server wordt (ongemerkt) overgenomen door hackers, waardoor (FHIR-)interacties kunnen worden ingestuurd door deze hackers en medische gegevens in handen komen van de hackers. | Klein | Zonder aanvullende maatregelen: Omvangrijk Met aanvullende maatregelen: Matig | Zonder aanvullende maatregelen: Hoog Met aanvullende maatregelen: Matig | Dit risico bestaat ook al wanneer slechts met access_tokens wordt gewerkt en niet met refresh_tokens. Echter in dat geval kan de resource server (en/of een achterliggend systeem) naast het access_token van de autorisatie server een bijbehorend (voldoende recent) authenticatietoken eisen en toetsen, waarmee de impact van een inbraak sterk wordt gereduceerd. Eenzelfde check kan nog steeds worden gedaan, al zullen nu ook in het verleden verkregen authenticatietokens moeten worden gebruikt als extra check (en validatie van de signature moet nog mogelijk zijn). Hierdoor wordt de impact van een inbraak wat groter dan wanneer zonder refresh_tokens wordt gewerkt. Omdat mogelijk niet alle (DV)ZA's in staat zijn om voldoende extra maatregelen te treffen, moet de functionaliteit om refresh_tokens te ondersteunen optioneel zijn in het afsprakenstelsel. Bouke de Boer | MedMij Mee eens? | |
Onopzettelijke fout in Autorisatie Server, waardoor afgegeven refresh_tokens worden gekoppeld aan de verkeerde BSN. | Klein | Matig | Matig | Toetsen tijdens MedMij acceptatie. |
Bijlagen