Lösungsarchitektur

Inhalt

Logische Architektur
Basisdienste
Videokonferenzdienste
Einwilligungsdienste

Technische Architektur
Prämissen
Überblick
TSL-Abrufpunkt und OCSP-Responder
Reverse Proxy
Identity Provider
Terminologie Server
FHIR Server
Signalling Server
STUN/TURN Server

Spezifikationsdetails
eGK-basierte Registrierung / Authentisierung
Signalisierung (sichere Aushandlung der Video-/Audiokonferenzparameter)

Logische Architektur

Die folgenden Abschnitte beschreiben die logische Architektur des Gesamtsystems. Die logische Architektur betrachtet ausschließlich funktionale Aspekte und Anforderungen, die durch verschiedene Dienste bzw. durch die von diesen Diensten angebotene Funktionalität adressiert bzw. umgesetzt werden müssen.

Basisdienste

Die im Projekt für die prototypische Umsetzung vorgesehenen Szenarien „Elektronische Einwilligung“ und „Videokonsultation“ weisen bezüglich der benötigten Funktionalität eine Reihe von Gemeinsamkeiten auf. Der folgende Abschnitt beschreibt Dienste, die diese gemeinsame Funktionalität umsetzen. Im Rahmen der weiteren Ausführungen werden diese Dienste auch als Basisdienste bezeichnet, da davon ausgegangen werden kann, dass sie für die Umsetzung beliebiger Szenarien benötigt werden und somit die grundsätzliche Basis eines jeden Systems bilden.

Logische Architektur - Basisdienste

Verzeichnisdienste

In beiden Szenarien finden sich Anwendungsfälle, die das Auffinden von teilnehmenden Akteuren oder Dienstangeboten erforderlich machen. Aus logischer Sicht erfüllt ein Verzeichnisdienst die Aufgabe, entsprechende Objekte suchen und Details zu diesen abrufen zu können. Verschiedene Arten von Verzeichnissen werden im Kontext des Projektes benötigt:

Sicherheitsdienste

Eine weitere Gruppe von Basisdiensten bilden die Sicherheitsdienste, die die Grundlage für einen sicheren und datenschutzfreundlichen Betrieb der Gesamtlösung bilden. Sicherheitsdienste müssen dabei insbesondere die folgende Funktionalität abbilden:

Ontologiedienst

Um eine einfache Verarbeitbarkeit zu gewährleisten, müssen die im Projekt verwendeten medizinischen und administrativen Informationen möglichst in strukturierter und kodierter Form vorliegen. Die Semantik über diesen Informationen wird mit Hilfe von Ontologien definiert und bereitgestellt. In der einfachsten Form bildet eine Ontologie ein einfaches Codesystem ab, das die Bedeutung von definierte Codes festlegt. Beispiele hierfür sind standardisierte Codes für Termintypen, Dokumenttypen oder auch Inhaltstypen von Dokumentabschnitten. Insbesondere im Zusammenhang mit der „Elektronischen Einwilligung“ spielt der Ontologiedienst für die Abbildung von Einwilligungspaketen und Einwilligungserklärungen eine wichtige Rolle.

Videokonferenzdienste

Neben den Basisdiensten werden zur Umsetzung der beschriebenen Anwendungsfälle im Videokonsultationsszenario weitere fachspezifische Dienste benötigt. Die folgenden Abschnitte geben einen kurzen Überblick über diese logischen Dienste bzw. die durch diese realisierte Funktionalität.

Logische Architektur - Videokonferenz

Terminmanagementdienst

Anders als im privaten Umfeld sind in den heute vorherrschenden Versorgungsstrukturen (klassisches Haus-/Facharztmodell) Szenarien, in denen ein Patient einen Leistungserbringer ad hoc kontaktiert, kaum denkbar. Daher wird eine wesentliche Voraussetzung für die Umsetzung von Videokonsultationsleistungen die Bereitstellung einer Terminmanagementfunktionalität sein. Leistungserbringer müssen einerseits in die Lage versetzt werden, Terminslots zu definieren, in denen sie grundsätzlich Videokonsultationsleistungen anbieten, Patienten müssen andererseits freie Termine buchen können, die mit der persönlichen Zeitplanung kompatibel sind. Neben der Planung und Buchung müssen grundsätzlich auch alle anderen Schritte im Lebenszyklus eines Termins abgebildet werden können. Dazu gehört u.a. das Stornieren aber auch das Dokumentieren von Terminen.

Signalisierungsdienst

Zur Aushandlung von Verbindungsparametern zwischen den Teilnehmern einer Videokonsultation wird ein Signalisierungsdienst benötigt, der von den jeweiligen Akteuren direkt erreicht werden kann und die Verteilung der entsprechenden Informationen realisiert. Zu relevanten Verbindungsparametern gehören beispielsweise:

Ohne die Aushandlung entsprechender Parameter ist der Aufbau einer Verbindung zwischen den Teilnehmern grundsätzlich nicht möglich.

Ende-Zu-Ende Kommunikationsdienst

Unter Umständen ist es nicht möglich, dass zwei Kommunikationspartner eine direkte Verbindung zwischen den jeweiligen Endgeräten aufbauen können. Dies ist z.B. dann der Fall, wenn die Endgeräte der Partner durch eine speziell konfigurierte Firewall geschützt werden. Für diesen Fall ist es erforderlich die Kommunikation durch einen speziellen Dienst übermitteln bzw. weiterleiten zu lassen, den beide Partner direkt erreichen können.

Einwilligungsdienste

Für die Abbildung des Szenarios der „elektronischen Einwilligung“ werden ebenfalls Dienste mit einer spezifischen auf die jeweiligen Anwendungsfälle zugeschnittenen Lösung benötigt. Der folgende Abschnitt beschreibt diese logischen Dienste bzw. die hinter diesen Diensten stehende Funktionalität.

Logische Architektur - Einwilligungsdienste

Dokumentenverwaltungsdienst

Die Abbildung einer „elektronischen Einwilligung“ macht die Verwaltung verschiedener Artefakte erforderlich, die zur Umsetzung des Gesamtprozesses erforderlich sind. Dazu gehören u.a.:

Diese Artefakte, die häufig einen klaren Dokumentencharakter aufweisen, müssen für einen definierten Zeitraum sicher vorgehalten und verwaltet werden.

Workflowdienst

Das Szenario der „Einwilligung in die Behandlung“ setzt sich aus verschiedenen Prozessschritten zusammen, die zum Teil aufeinander aufbauen. Um diese Schritte und die Reihenfolge, in der sie ausgeführt werden müssen in IT-Systemen abbilden zu können, bedarf es unter Umständen eines Workflowdienstes.

Technische Architektur

Die nachfolgenden Abschnitte beschreiben die technische Architektur des Systems. Diese bildet die Dienste und Funktionalität der logischen Architektur auf konkrete technische Dienste und zu verwendende Standards ab.

Prämissen

Der technischen Architektur sowie der prototypischen Realisierung liegen verschiedene Prämissen zugrunde, die im Folgenden kurz dargestellt werden:

Aus diesen Prämissen ergeben sich Grundsatzentscheidungen, die in die technische Architektur eingeflossen sind und sich somit in den nachfolgenden Darstellungen widerspiegeln:

Überblick

Die Abbildung der logischen auf die technische Architektur stellt sich wie folgt dar:

Technische Architektur - Überblick

Wie der Abbildung zu entnehmen ist, verteilt sich die Funktionalität auf verschiedene Dienste bzw. Komponenten. Nicht jeder logischer Dienst ist dabei genau einer technischen Komponenten zugewiesen. Die folgenden Abschnitte beschreiben die Abbildung bezogen auf die einzelnen Komponenten im Details.

TSL-Abrufpunkt und OCSP-Responder

Die Verwendung von X.509-Zertifikaten spielt auf verschiedenen Ebenen der Lösungsarchitektur eine besondere Rolle. Entsprechende Zertifikate kommen beispielsweise beim sicheren Datentransport über TLS (vgl. Reverse Proxy) zum Einsatz oder im Rahmen der Authentifizierung der Versicherten durch den Identity Provider (vgl. Identity Provider). Für beide Szenarien ist es unerlässlich die Validität der jeweils genutzten Zertifikate zu prüfen.

TSL-Abrufpunkt und OCSP-Responder sind keine Kernbestandteile der Lösungsarchitektur. Sie existieren bereits in produktiver Form und werden lediglich durch die verschiedenen Komponenten der Lösung (Identity Provider, Client etc.) nachgenutzt. Aus diesem Grund wird in den folgenden Ausführungen nicht weiter auf die detaillierte Ausgestaltung der entsprechenden Dienste eingegangen. Es wird lediglich auf deren Nutzung verwiesen.

Reverse Proxy

Der Reverse Proxy leitet Anfragen von beliebigen Clients an die jeweiligen Dienste im Backend weiter. In diesem Zusammenhang kann er eine Reihe von weiteren Aufgaben übernehmen:

Technische Architektur - Reverse Proxy

Schnittstellen

Im Kontext des Projektes terminiert der Reverse Proxy die TLS-Verbindungen für folgende Dienste:

Sofern der Reverse Proxy OCSP-Stapling unterstützt, kann eine zusätzliche Kommunikation mit den für die Serverzertifikate zuständigen OCSP-Respondern stattfinden. (5)

Anforderungen

Folgende Anforderungen müssen durch die Implementierung des Reverse Proxy umgesetzt werden:

Prototypische Realisierung

Die prototypische Realisierung nutzt nginx als Reverse Proxy. Detaillierte Informationen zur Ausgestaltung/Konfigurationen können der Realisierungsdokumentation entnommen werden.

Identity Provider

Die primäre Aufgabe des Identity Providers liegt im Bereich der Bereitstellung von Sicherheitstoken und Identitätsinformationen für angebundene Fachdienste. Um diese Aufgaben realisieren zu können, muss der Identity Provider verschiedene Funktionen erfüllen:

Hinweis: Für ein leichteres Verständnis der folgenden Abschnitte bietet sich eine - zumindest grundlegende - Auseinandersetzung mit OpenID Connect an. Ein guter Ausgangspunkt ist die offizielle Webseite der OpenID Foundation: https://openid.net/connect/

Technische Architektur - Identity Provider

Schnittstellen

Der Identity Provider besitzt Schnittstellen zu den folgenden Diensten:

OpenID Connect als Authentifizierungsprotokoll

OpenID Connect (OIDC) basiert auf dem Autorisierungsprotokoll OAuth 2.0 und dient als zusätzliche Schicht zur Abbildung von Authentifizierungsfunktionalität. Den das Protokoll nutzenden Clients wird es ermöglicht, die Identität von Nutzern verlässlich zu überprüfen und relevante Identitätsattribute abzufragen. Genau diese Funktionalität ist für die Absicherung der realisierten Dienste (Signalling, FHIR) zwingend erforderlich. OIDC und OAuth nutzen sogenannte Token (identity, access + refresh token), um Authentifizierungs- und Autorisierungsinformationen zu transportieren. OIDC bildet die Basis für die Umsetzung des Projektes. Konkret wird der OIDC Authorization Code Flow mit PKCE (Proof Key for Code Exchange) verwendet.

Hinweis: Eine Alternative zu OpenID Connect bildet SAML 2.0. Aufgrund der leichteren Integrierbarkeit von OpenID Connect und der besseren Unterstützung durch mobile Plattformen wurde sich bewusst gegen SAML 2.0 entschieden.

Das gewählte Protokoll (OpenID Connect) trifft grundsätzlich keine Vorgaben bezüglich der zu verwendenden Authentfizierungsmechanismen. Somit sind grundsätzlich beliebige Mechanismen/Verfahren vorstellbar, die durch den Identity Provider zur Überprüfung der Versichertenidentität genutzt werden können. Dies eröffnet u.a. die Möglichkeit, die elektronische Gesundheitskarte bzw. das auf ihr enthaltene Schlüsselmaterial zum Zwecke der Authentifizierung der Versicherten zu nutzen.

eGK-/Zertifikat-basierte Authentisierung

Folgendes, hier vereinfacht dargestelltes Modell wird durch das Projekt vorgeschlagen:

EGK-basierte Authentisierung

Eine detaillierte Darstellung der Abläufe, die eine Einbindung in den kompletten OIDC-Flow darstellt, findet sich im Abschnitt “Initiale Nutzerregistrierung inkl. Smartcard-basierter Authentisierung”.

Hinweis: Für die Realisierung einer zertifikatsbasierten Authentifizierung wird häufig auch auf Verfahren gesetzt, die zum Nachweis des Besitzes des zugehörigen privaten Schlüsselmaterials den Aufbau einer beidseitig authentisierten TLS-Verbindung erforderlich machen. Aus Gründen der Komplexitätsreduktion bei der Entwicklung der client- und server-seitigen Authentifizierungskomponenten wurde diese Ansatz jedoch nicht aufgegriffen.

Keystore-basierte Authentisierung

Wie bereits im Abschnitt Unterstützung ergänzender Authentisierungsverfahren dargestellt, ist es denkbar, Alternativen zur eGK-basierten Authentisierung vorzusehen. Folgendes Modell wird durch das Projekt als Proof-of-Concept vorgeschlagen:

In weniger sicherheitskritischen Szenarien kann diese Modell u.U. dazu beitragen, die Usability des Gesamtsystems zu verbessern

Eine detaillierte Darstellung der Abläufe, die eine Einbindung in den kompletten OIDC-Flow darstellt, findet sich im Abschnitt Initiale Nutzerregistrierung inkl. Smartcard-basierter Authentisierung sowie im Abschnitt Keystore-basierter Authentisierung.

Hinweis: Der im Projekt verfolgte Alternativansatz birgt eine Reihe von Risiken, welche ggf. in einem Folgeprojekt näher untersucht und - wenn möglich - ausgeräumt werden sollten. Interessante Lösungsansätze bilden hier ggf. das Key-Attestation-Verfahren in Kombination mit speziellen Kryptoprozessoren (HSM).

Session-basierte Authentisierung

Fast alle Identity Provider bieten die Möglichkeit eines Single-Sign-On. Dabei authentisiert sich der Nutzer einmalig am Identity Provider und baut mit diesem eine Session auf (häufig abgebildet über ein Session-Cookie, welches im http-Header transportiert wird). Für einen definierten Zeitraum kann der Nutzer nun diese Session nutzen, um sich neue Authentifizierungsnachweise für verschiedene Anwendungen ausstellen zu lassen. Aus Usability-Sicht bietet diese Vorgehen durchaus Vorteile, welche jedoch immer gegeüber den Sicherheitserfordernissen der zu schützenden Anwendung abzuwiegen sind.

Eine detaillierte Darstellung der Abläufe, die eine Einbindung in den kompletten OIDC-Flow darstellt, findet sich im Abschnitt Session-Cookie-basierte Authentisierung.

Transparenz bezüglich des verwendeten Authentisierungsverfahrens

Wie bereits kurz dargestellt, kann davon ausgegangen werden, dass verschiendene eHealth-Anwendungen sehr verschiedene Anforderungen bezüglich des erforderlichen Sicherheits-/Vertrauensniveaus haben werden. Während es für einige Anwendungen ausreichend sein kann, auf den Session-basierten Authentisierungsmechanismus zurückzugreifen, können einzelne andere Anwendungen u.U. die eGK-basierte Authentisierung einzelner Transaktionen erfordern. Um die komplette Bandbreite der Szenarien abdecken zu können, wird ein Mechanismus benötigt, der es für Token konsumierende Anwendungen transparent macht, welche Authentisierungmethode der Tokenausstellung zugrunde lag. Hierfür bieten sich die beiden folgenden JSON Web Token Claims an:

Im folgenden Beispiel ist ein Token zu sehen, welches auf Basis einer Session-basierten Authentifizierung ausgestellt wurde. Der Session zugrunde liegt eine Smartcard-basierte Authentisierung, die zum Zeipunkt auth_time=1550064384 (2019-02-13T13:26:24+00:00) erfolgt ist:

{
  "jti": "ad437ded-619e-460f-a95c-53e7d6465f2b",
  "exp": 1550066215,
  "nbf": 0,
  "iat": 1550064415,
  "iss": "https://ehealth-ask.fokus.fraunhofer.de/auth/realms/AsK",
  "aud": "asktest",
  "sub": "fd2430ea-060b-4abe-b7a2-2fa07fd8ec57",
  "typ": "Bearer",
  "azp": "asktest",
  "nonce": "nonce",
  "auth_time": 1550064384,
  "session_state": "43964903-c2f5-4ae8-ad55-315acdcddc26",
  "acr": "0",
  "amr": [
    "sc"
  ],
  "allowed-origins": [],
  ...
  "name": "Peer Francesco Sebastian Graf Geiböll",
  "preferred_username": "m-1458097631",
  "given_name": "Peer Francesco Sebastian Graf",
  "family_name": "Geiböll",
  "email": "x110385628@egk.de"
}
Prototypische Realisierung

Die prototypische Realisierung nutzt eine speziell für das Projekt angepasste Version von keycloak zum Realiseren der benötigten Funktionalität. Detaillierte Informationen zur Ausgestaltung/Konfigurationen können der Realisierungsdokumentation entnommen werden.

Terminologie Server

Die Aufgabe des Terminologie Servers liegt primär im Umfeld der zentralen Bereitstellung von Ontologien. Einfache Beispiele hierfür sind standardisierte Codes für Termintypen, Dokumenttypen oder auch Inhaltstypen von Dokumentabschnitten.

Technische Architektur - Terminologie Server

Schnittstellen

Der Terminologie Server besitzt Schnittstellen zu den folgenden Komponenten:

FHIR Terminology Service

Grundlage der Implementierung des Terminologie Servers sollte eine Lösung sein, die an den Außenschnittstellen die Vorgaben des FHIR Terminology Service umsetzt.

Prototypische Realisierung

Von einer prototypischen Implementierung des Terminologieservers wurde im Rahmen des Projektes Abstand genommen. Die benötigten Codesystem bzw. Codes werden als fester Bestandteil der App ausgeliefert. Ein dynamische Nachladen ist somit nicht möglich. Sofern die Einwilligungs-App zukünftig weiterentwickelt werden wird (z.B. Ergänzung von Anamnesebögen), muss die benötigte Funktionalität entsprechend nachgezogen werden.

Signalling Server

Der Signalling Server wird von den Kommunikationspartnern der Audio-/Videokonferenz genutzt, um über einen gemeinsamen Endpunkt relevante Kommunikationsparameter für die WebRTC-Verbindung (vgl. Prämissen) auszutauschen. Um diese Funktion sicher und verlässlich ausführen zu können, muss der Service verschiedene Aufgaben erfüllen:

Technische Architektur - Signalling Server

Schnittstellen

Der Signalling Server besitzt Schnittstellen zu den folgenden Komponenten:

MQTT als Übertragungsprotokoll

Als Ergebnis der Analyse möglicher Lösungsansätze wurde entschieden, MQTT als Protokoll für den Austausch von Kommunikationsparametern zu nutzen. Diese Entscheidung begründet sich im Einzelnen wie folgt:

Abbildung der Signalisierungsfunktionalität mit MQTT

Die Grundidee in der Nutzung von MQTT als Signalisierungskanal für den Austausch von (WebRTC)-Kommunikationsparametern besteht darin, dass sich die beiden an der Videokonferenz teilnehmenden Akteure auf ein oder mehrere MQTT-Topics einigen, die für den Nachrichtenaustausch genutzt werden. Diese Topics müssen dabei eindeutig sein, d.h. für zwei verschiedene Videokonferenzen dürfen niemals dieselben Topics verwendet werden.

Der für die Umsetzung von Ask gewählte Ansatz sieht die Verwendung von mehreren strukturierten Topics vor. Die Struktur folgt dabei dem folgenden Muster:

vc/{APPOINTMENT_ID}/{CLIENT_TYPE}/{CONTENT_TYPE}

Beispiele für Topics:

"vc/4PV3XxsvVd0O32CK8wbueuaiZiZU3MCT/hcp/status"
"vc/4PV3XxsvVd0O32CK8wbueuaiZiZU3MCT/hcp/answer"
"vc/4PV3XxsvVd0O32CK8wbueuaiZiZU3MCT/hcp/candidate"
"vc/4PV3XxsvVd0O32CK8wbueuaiZiZU3MCT/patient/status"
"vc/4PV3XxsvVd0O32CK8wbueuaiZiZU3MCT/patient/offer"
"vc/4PV3XxsvVd0O32CK8wbueuaiZiZU3MCT/patient/candidate"

Detaillierte Informationen zum MQTT basierten Verbindungsaufbau finden sich im Abschnitt Signalisierung (sichere Aushandlung der Video-/Audiokonferenzparameter).

Abbilden der Authentifizierungsfunktionalität mit MQTT

Das MQTT-Protokoll unterstützt im CONNECT Paket das Mitsenden von Username und Password Attributen, die durch den Broker für die Authentifizierung des Clients genutzt werden können. Die AsK-Architektur sieht jedoch keine Unterstützung von klassischen Passwort-basierten Authentifizierungsmechanismen vor. Um dieses Problem zu lösen, muss der MQTT-Client anstelle des Nutzernamens einen vom Identity Provider ausgestellten OIDC Identity Token mitsenden. Es obliegt dem MQTT-basierten Signalling Server diesen Token zu validieren. Bei Bedarf kann der Signalling Server dafür auch eine Verbindung zu den benötigten Endpunkten des Identity Providers aufbauen (vgl. Schnittstellen).

Abbilden der Autorisierungsfunktionalität mit MQTT

Der Signalling Server muss sicherstellen, dass nur authentifizierte Kommunikationspartner über die ihnen über die {APPOINTMENT_ID} zugeordneten Topics Kommunikationsparameter austauschen können. Zur Umsetzung dieser Anforderung bieten sich verschiedene Lösungsoptionen an:

Prototypische Realisierung

Die prototypische Realisierung nutzt eine angepasste Version von mosquitto als MQTT-basierten Signallisierungsdienst. Detaillierte Informationen zur Ausgestaltung/Konfigurationen können der Realisierungsdokumentation entnommen werden.

FHIR Server

Der FHIR Server nimmt eine zentrale Rolle in der technischen Architektur ein. Mithilfe des Dienstes wird ein Verzeichnisdienst für Patienten, Leistungserbringer und Dienste/Angebote geschaffen. Darüber hinaus steht zusätzlich Funktionalität zur Verwaltung von Terminen und Dokumenten bereit. Der Server setzt dafür große Teile der FHIR Spezifikationen um. Zur Abbildung der identifizierten Anwendungsfälle war es erforderlich, eine Profilierung der von FHIR definierten Basis-Ressourcen vorzunehmen. Alle notwendigen Anpassungen sind in Form eines Implementierungsleitfadens dokumentiert. In diesem wird detailliert beschrieben, wie und in welcher Form die benötigten Ressourcen verwendet werden sollen.

Technische Architektur - FHIR Server

Schnittstellen

Der FHIR Server besitzt Schnittstellen zu den folgenden Komponenten:

Abbildung des Patientenverzeichnisses

Da der FHIR Server für die Verwaltung der Informationen von verschiedenen Versicherten/Patienten genutzt wird und nahezu alle verwendeten FHIR Ressourcen einen Bezug zu den entsprechenden Versicherten/Patienten herstellen, ist es unerlässlich ein Verzeichnis der entsprechenden Akteure zu pflegen. Die Anlage der einzelnen Patient Resources erfolgt hierbei durch die Patienten selbst, z.B. im Zuge der Registrierung eines Videokonferenztermins. Um sicherzustellen, dass die bei der Anlage übermittelten Angaben korrekt und authentisch sind, erfolgt ein Abgleich mit den im beigefügten OpenId Connect Access/Identity Token enthaltenen Identitätsattributen.

Hinweis: Weiterführende Informationen können den Inhalten des erstellten Implementierungsleitfadens entnommen werden.

Abbildung des Leistungserbringerverzeichnisses

Leistungserbringer werden über zwei verschiedene FHIR Resource-Typen abgebildet: Practitioner und Organization. Für die Verwaltung der entsprechenden Ressourcen (Anlage, Pflege, Löschen etc.) werden durch das Projekt keine Vorgaben gemacht. Festlegungen zum Lifecycle Management der jeweiligen Identitäten sind perspektivisch durch den Betreiber der Lösung zu treffen.

Hinweis: Weiterführende Informationen können den Inhalten des erstellten Implementierungsleitfadens entnommen werden.

Abbildung des Dienst-/Angebotsverzeichnisses

Die Umsetzung des Dienst- und Angebotsverzeichnis erfolgt über die Ressource HealthcareService. Auch für dieses Verzeichnis gilt, dass normative Festlegungen bezüglich der Verwaltung entsprechender Inhalte durch den zukünftigen Betreiber einer Lösung zu treffen sind.

Hinweis: Weiterführende Informationen können den Inhalten des erstellten Implementierungsleitfadens entnommen werden.

Abbildung des Terminmanagements

Das Terminmanagement wird über das Zusammenspiel von verschiedenen, speziell profilierten Ressourcen abgebildet. Dazu gehören:

Hinweis: Weiterführende Informationen können den Inhalten des erstellten Implementierungsleitfadens entnommen werden.

Um die von FHIR für das Terminmanagement vorgesehenen Ressourcen als Basis für den Aufbau sicherer Video-/Audioverbindungen nutzen zu können, ist es erforderlich über die fachlichen und administrativen Termininformationen hinaus, bestimmte Attribute zu transportieren, die die sichere Nutzung anderer an der Kommunikation beteiligter Dienste unterstützt. Zu diesem Zweck wurde insbesondere die VideoConferenceAppointment Ressource über FHIRs Extensionmechanismus um zusätzliche Inhalte erweitert. Dazu gehören:

Diese Attribute werden - wie bereits angedeutet - jewils dynamisch generiert. Dies geschieht entweder zum Zeitpunkt der Anlage (PinCodeExtension, SignallingServerExtension) oder des Abrufs (Turn…Extensions) der entsprechenden Appointentment Ressource.

Abbildung des Dokumentenverwaltungsdienstes

Insbesondere in Bezug auf die Verwaltung von Einwilligungserklärungen sowie den diesen zugrundeliegenden Aufklärungsinformationen spielt die Dokumentenverwaltung eine entscheidene Rolle. Aufgrund der von FHIR vorangetriebene Abkehr vom “klassischen” Dokumentenparadigma wird zur Abbildung der relevanten Anwendungsfälle eine Vielzahl von verschiedenen FHIR Ressourcen genutzt. Dazu gehören u.a. profilierte Composition, List, Media und Consent Ressourcen.

Hinweis: Weiterführende Informationen können den Inhalten des erstellten Implementierungsleitfadens entnommen werden.

Abbildung des Workflowdienstes

Zur Abbildung des Einwilligungsworkflow greift die konzipierte Lösung nicht bzw. nur in geringem Umfang auf die von FHIR vorgesehenen Workflow Execution and Communication Pattern zurück. Der Status der Ausführung wird primär über den Status oder das Vorhandensein entsprechenden Ressourcen zum Ausdruck gebracht. Zukünftige Entwicklungen sollten das für die prototypische Realisierung gewählte Modell nochmals überprüfen und ggf. um eine vollständig Workflow-basierte Steuerung ergänzen.

Hinweis: Weiterführende Informationen können den Inhalten des erstellten Implementierungsleitfadens entnommen werden.

Abbildung der Authentifizierungs- und Autorisierungsfunktionalität

Die vom FHIR Server verwalteten Informationen weisen einen sehr unterschiedlichen Schutzbedarf auf. Während insbesondere die verwalteten Aufklärungsinformationen möglichst beliebigen Nutzern zur Verfügung gestellt werden sollen, müssen insbesondere die vom Dienst verwalteten Ressourcen, die einen konkreten Personenbezug aufweisen, besonders geschützt werden. Um diese Anforderungen zu adressieren, muss zwischen den Aspekten Authentifizierung und Autorisierung unterschieden und folgendes Basisregelwerk umgesetzt werden:

Das beschriebene Regelwerk stellt lediglich eine Basis dar, die in zukünftigen Weiterentwicklungen der Anwendung entsprechend erweitert werden sollte. So wäre es sinnvoll, festzuschreiben, dass bestimmte schreibende Operationen, z.B. des Consents, nur dann zulässig sind, wenn der derzeitige Authentifizierungsstatus bestimmte Eigenschaften aufweist. Eigenschaften könnten besipielsweise die Art und der Zeitpunkt der letzten Authentifizierung des Nutzers sein (z.B. Smartcard-basierte Authentifizierung vor 5 Sekunden) oder auch das Vorhandensein eines bestimmten Attributes bzw. Attributwertes im access oder idToken (z.B. spezieller nonce-Wert).

Zugriffe auf das System bzw. dessen Ressourcen, die dem beschriebenen Regelwerk widersprechen, müssen mit einer entsprechenden Fehlermeldung verweigert werden.

Prototypische Realisierung

Die prototypische Realisierung nutzt eine angepasste Version des FHIR JPA Servers zur Umsetzung der beschriebenen Funktionalität. Detaillierte Informationen zur Ausgestaltung/Konfigurationen können der Realisierungsdokumentation entnommen werden.

STUN/TURN Server

Der STUN/TURN Server wird von den Kommunikationspartnern der Audio-/Videokonferenz genutzt, um mögliche Endpunktadressen zu ermitteln, über die der Austausch des Audio-/Video- und ggf. auch Datenverkehrs trotz des Vorhandenseins von NAT-Firewalls abgewickelt werden kann. STUN (Session Traversal Utilities for NAT) und TURN (Traversal Using Relay NAT) verfolgen ähnliche Ziele, setzen diese jedoch sehr verschieden um. Ein STUN Server ermöglicht es den Clients ihre öffentliche IP-Adresse sowie die Art des verwendeten NAT zu ermitteln und so die Informationen zusammenzustellen, die für einen mehr oder weniger direkten Verbindungsaufbau benötigt werden. Während STUN primär während des Verbindunsaufbaus eingesetzt wird, kommt TURN eine weiterführende Aufgabe zu. Bestimmte NAT Varianten sind mit STUN allein nicht zu durchdringen und so werden TURN-Server genutzt, um den Nutzdatenverkehr weiterzuleiten. Die Weiterleitung des Datenverkehrs erfolgt über den gesamten Zeitraum der Verbindung.

Technische Architektur - STUN/TURN Server

Schnittstellen

Der STUN/TURN Server besitzt Schnittstellen zu den folgenden Komponenten:

Abbilden der Authentifizierungs- und Autorisierungsfunktionalität

Während STUN relativ ressourcenschonend ist und nur wenig Daten zur Ermittlung der öffentlichen Endpunktadressen zwischen Client und Server ausgetauscht werden müssen, verhält es sich bei TURN völlig anders. Der komplette Multimedia-Datenverkehr wird durch den jeweiligen TURN Server geleitet. Dies stellt sowohl hohe Anforderungen an die Leistungsfähigkeit des Servers als auch an die verfügbare Bandbreite. Um die entsprechenden Ressourcen zu schonen und einen Missbrauch des Dienstes zu unterbinden, ist es erforderlich, den Kreis der Nutzungsberechtigten auf legitime Nutzer der Videokonsultationslösung zu begrenzen.

Da es für öffentlich verfügbare Anwendungen (wie die Videokonsultations-App) quasi unmöglich ist, statische Credentials (Username/Password) geheim zu halten, sieht die Spezifikation zum Schutz des TURN Servers die Verwendung von zur Laufzeit dynamisch generierten Credentials vor. Ein von google entwickelter Vorschlag bietet hier bereits einen sinnvollen Lösungsansatz. Kerngedanke dieses Ansatzes ist, dass ein externer Dienst die zur Anmeldung am TURN Server benötigten Credentials zur Laufzeit generiert und dem Client bei Bedarf zur Verfügung stellt. Der TURN Server wird durch die Nutzung eines “shared secrets” - welches er sich dem Namen entsprechend mit dem externen Dienst teilt - in die Lage versetzt, die Credentials zu validieren.

In der Lösungsarchitektur übernimmt der FHIR Server die Generierung der entsprechenden Credentials. Im Rahmen des Abrufs der Termindetails werden der entsprechenden Appointment Ressource entsprechend ihres Profils insgesamt vier Extensions hinzugefügt, die u.a. die dynamisch generierten Credentials beinhalten. Dieses Vorgehen stellt sicher, dass die Nutzung des TURN Servers direkt an das Vorhandensein eines Termins gekoppelt ist. Ein Missbrauch des Dienstes wird somit verhindert.

Prototypische Realisierung

Die prototypische Realisierung nutzt coturn zur Umsetzung des STUN/TURN Servers. Detaillierte Informationen zur Ausgestaltung/Konfigurationen können der Realisierungsdokumentation entnommen werden.

Spezifikationsdetails

eGK-basierte Registrierung / Authentisierung

Anhand der folgenden Sequenzdiagramme soll der Ablauf der initialen Nutzerregistrierung sowie sich anschließender Authentisierungsvorgänge im Details dargestellt werden :

Initiale Nutzerregistrierung inkl. Smartcard-basierter Authentisierung

Der im Folgenden dargestellte Ablauf visualisiert sowohl die eGK-basierte Nutzerauthentisierung als auch die initiale Nutzerregistrierung am Identity Provider. Nur bei erfolgreicher Authentisierung unter Nutzung der eGK der Versicherten ist eine Nutzerregistrierung am Identity Provider überhaupt möglich.

Initiale Nutzerregistrierung am Identity Provider

Die vollständigen, zwischen den Kommunikationspartnern ausgetauschten Nachrichten können hier abgerufen werden.

Keystore-basierte Authentisierung

Voraussetzung für die Keystore-basierte Authentisierung ist eine zuvor erfolgte Registrierung von benötigtem (öffentlichen) Schlüsselmaterial im Zusammenhang mit der eGK-basierten Erstregistrierung der Versicherten am Identity Provider oder einer späteren (ebenfalls eGK-basierten) Nachregistrierung. Der Ablauf stellt sich im Einzelnen wie folgt dar:

Keystore-basierte Authentisierung

Hinweis: In der aktuellen Konzeption/Umsetzung des Mechanismus fällt die Keystore-basierte Authentisierung bezüglich der Mechanismenstärke deutlich hinter die eGK-basiert Authentisierung zurück. Ansätze wie Key-Attestation im Zusammenspiel mit HSMs könnten hier jedoch zukünftig Abhilfe schaffen. Unabhängig davon ist der verwendete Authentisierungsmechanismus für die Tokenkonsumenten jederzeit über die im Token enthaltenen acr/amr-Attribute ersichtlich.

Die vollständigen, zwischen den Kommunikationspartnern ausgetauschten Nachrichten können hier abgerufen werden.

Session-Cookie-basierte Authentisierung

Zur Umsetzung von SSO-Szenarien kann neben der Keystore-basierten Authentisierung ebenfalls die Session-Cookie-basierte Authenisierung von Bedeutung sein. Das folgende Sequenzdiagramm visualisiert die entsprechenden Prozessesschritte:

Session-Cookie-basierte Authentisierung

Hinweis: Die Session-Cookie-basierte Authentisierung fällt bezüglich der Mechanismenstärke deutlich hinter die Keystore- und eGK-basierte Authentisierung zurück. Der verwendete Authentisierungsmechanismus ist für die Tokenkonsumenten jedoch jederzeit über die im Token enthaltenen acr/amr-Attribute ersichtlich.

Die vollständigen, zwischen den Kommunikationspartnern ausgetauschten Nachrichten können hier abgerufen werden.

Signalisierung (sichere Aushandlung der Video-/Audiokonferenzparameter)

Der vertrauliche und integritätsgeschützte Austausch von WebRTC-Kommunikationsparametern ist eine wesentliche Voraussetzung für den Aufbau sicherer Audio- und Videokonferenzen mithilfe von WebRTC. Die Ursache hierfür ist primär in einer der Eigenschaften von WebRTC bzw. den durch WebRTC genutzten Protokollen zu sehen: Für jede neue Audio-/Videoverbindung, die aufgebaut werden soll, generieren die Kommunikationspartner neue Schlüssel/Zertifikate die zum Schutz der DTLS-SRTP-Verbindung verwendet werden. Die Fingerprints dieser Zertifikate werden über den Signalling Server als Teil der WebRTC-Kommunikationsparameter ausgetauscht. Gelingt es einem Angreifer, Signalisierungsnachrichten abzufangen und zu verändern (Fingerprints, Endpunktadressen etc.), ist er grundsätzlich in der Lage auch die Audio-/Videoverbindung mit einem Man-in-the-Middle-Angriff zu kompromittieren.

Um dieses Szenario zu verhindern, sieht die AsK-Architektur Sicherheitsmechanismen auf drei verschiedenen Ebenen vor:

Anhand der folgenden Sequenzdiagramme wird die Umsetzung der beiden letztgenannten Mechanismen nochmals im Details beschrieben:

Signalisierungsworkflow 1

Nachdem das benötigte Token in der Videokonsultations-App bereitsteht, erfolgt die Kommunikation mit dem FHIR Service, über welchen die Terminverwaltung abgebildet wird:

Nun da weitestgehend alle benötigten Informationen für den Aufbau einer Verbindung zum Signalisierungsserver vorliegen, kann mit der nächsten Phase gestartet werden:

Signalisierungsworkflow 2

Der für den Patient beschriebene Ablauf wiederholt sich nun auch für den involvierten Leistungserbringer:

Mit der ersten Nachricht des Leistungserbringers startet im Signallisierungsprozess nun die Phase der Aushandlung von Schlüsselmaterial:

Signalisierungsworkflow 3

[RFC8236] schlägt neben den notwendigen Schritten zur Aushandlung des Schlüsselmaterials die Implementierung eines “Key Conformation” Mechanismus vor. Entsprechend der Empfehlung des RFC wird hierzu ein Confirmation Scheme gemäß NIST SP 800-56A (Recommendation for Pair-Wise Key-Establishment Schemes Using Discrete Logarithm Cryptography) genutzt. Um die eGK bzw. den Authentifizierungsstatus der Versicherten kryptografisch an den Verbindungsaufbau zu koppeln werden in den entsprechenden Ablauf zusätzliche Prozesschritte ([50] bis [53]) integriert:

Signalisierungsworkflow 4

Hinweis: Um die kryptografische Bindung des ausgehandelten Schlüsselmaterials an eine konkrete Versichertenidentität sicherzustellen, wäre es ebenfalls denkbar, den macTag direkt mit der eGK zu signieren. Um jedoch perspektivisch beliebige Authentisierungsmittel zum Einsatz bringen zu können, wurde von diesem Ansatz Abstand genommen und der oben beschriebene nonce-basierte Mechanismus konzipiert. In diesem Zusammenhang gilt es jedoch die besondere Rolle des Identity Providers zu berücksichtigen.

Der beschriebene Ablauf ([49] - [58]) muss für die Leistungserbringerseite nun ebenso durchgeführt werden. Die Reihenfolge in der die Kommunikationspartner die beschriebene Key Confirmation durchführen, spielt keine Rolle.

Nun da das Schlüsselmaterial zwischen den Kommunikationspartnern ausgehandelt wurde, kann mit dem eigentlichen Signalling für die WebRTC-Verbindung begonnen werden. Alle Nachrichten werden fortan in verschlüsselter Form zwischen den Kommunikationspartner ausgetauscht:

Signalisierungsworkflow 5

Unter Nutzung der in den OFFER, ANSWER und CANDIDATE Nachrichten enthaltenen Informationen wird nun eine DTLS-Verbindung zwischen den Kommunikationspartnern aufgebaut. Sofern nötig wird der Datenverkehr dabei über den TURN Service ge-relayt.