Entwicklung eines datenschutzfreundlichen Key-Escrow Systems

Teammitglieder

Valentin Brandl und Lennart Paul Frank

 

Motivation

Im Rahmen der Einführung einer elektronischen Patientenakte oder einer elektronischen Fallakte sind mehrere Entscheidungen zu treffen, bevor die tatsächliche Umsetzung stattfinden kann. Ein relevanter Punkt ist die Verwaltung der Zugriffsrechte und dabei auch das geplante Verschlüsselungskonzept.

Ein möglicher Ansatz ist die Verschlüsselung der Patientendaten jeweils mit einem dem für jeden Patienten individuellen Datenschlüssel. Zugriff auf diesen Datenschlüssel und folglich die Patientendaten ist nur mithilfe eines weiteren Schlüssels möglich, beispielsweise auf der Gesundheitskarte des Patienten. Im Fall des Versagens der Sicherheit des Datenservers ist der Zugriff auf Patientendaten somit weiterhin verwehrt, solange der Patientenschlüssel nicht bekannt ist.

Die Praktikabilität dieses Ansatzes ist in der Realität jedoch besonders aufgrund der Möglichkeit des Verlustes des Patientenschlüssels umstritten, oft zugunsten unsicherer Zugriffs- und Verschlüsselungsmodelle (Beispielsweise eine Serverweite einheitliche Verschlüsselung aller Patientendaten).

Das Verlustproblem ist durch Einsatz eines Key-Escrow Systems zur Schlüsselhaltung lösbar. Dabei wird der Patientenschlüssel bei einem Drittanbieter hinterlegt. Im Verlustfall kann über diesen Drittanbieter der Datenzugriff erneut hergestellt werden.

Mit dem Ziel, die individuelle Datenverschlüsselung und eine datenschutzfreundliche Datenhaltung in einer Beispielumgebung zu bestätigen, umfasst dieses Projekt die Konzeption und prototypische Implementation eines datenschutzfreundlichen Key-Escrow Systems.

 

Beschreibung

Da im Gesundheitswesen mit hochsensiblen Daten umgegangen wird, gelten bei der Realisierung dieses Key-Escrow Systems besondere Anforderungen:

  1. Der Key-Escrow Anbieter darf keinen Zugriff auf die Patientendaten
  2. Der Key-Escrow Anbieter darf keinen Zugriff auf die Patientenschlüssel
  3. Alle Schlüsselsprozesse müssen in einem Hardware Security Modul durchgeführt werden.

 

Die Umsetzung dieser Anforderungen erfolgt über die genaue Definition der zwei relevanten Prozesse, während denen die Gefahr eines unautorisierten Datenzugriffes durch den Key-Escrow Anbieter besteht. Dies sind der Registrierungsprozess des Patientenschlüssels beim Anbieter und der Wiederherstellungsprozess des Schlüssels im Verlustfall.

 

Die Datenhaltung

Um die Prozesse erfolgreich umzusetzen benötigt die Datenhaltung eine angepasste Datenbank. Diese besteht zum einen aus einer Liste mit verschlüsselten Daten und dem zugeordneten Patienten. Zum anderen aus einer Access Control List für die Patientendaten. Das Schema der Access Control List ist wie folgt:

ID User ID Access Certificate Data Key Data Access Key Access
Fortlaufende interne Datenbank-ID Versichertennummer des Patienten Zertifikat, welches Zugriffsrechte gewährt werden soll Der mit dem Public Key des Zertifikats verschlüsselte Datenschlüssel Rwx-Zugriff für die mit der Versicherten-ID verbundenen Daten Rwx-Zugriff für den verschlüsselten Datenschlüssel

In dieser Access Control List sind nur Zugriffsrechte für Daten, sondern auch für die verschlüsselten Datenschlüssel vergeben. So wird sichergestellt, dass z.B. Key-Escrow Anbieter nicht ohne die notwendigen Zugriffsrechte Daten abrufen kann, selbst wenn der Schlüssel veröffentlicht werden sollte.

 

Registrierungsprozess

Der Registrierungsprozess zeigt den Prozess zum Sichern eines Schlüssels bei dem Key-Escrow Anbieter, ohne dass dieser den Datenschlüssel je hält. Der Patient verschlüsselt lokal den Datenschlüssel mit dem Public Key des Wiederherstellungs-Schlüsselpaares. Der Private Key des Paares wird sowohl mit einem Aktivierungsschlüssel als auch innerhalb eines Hardware Security Moduls verschlüsselt und in jenem Modul gespeichert, der Aktivierungsschlüssel geht danach an den Patienten.

Wiederherstellungsprozess

Der Wiederherstellungsprozess zeichnet sich durch größere Komplexität aus, da die Wiederherstellung mehrere Authentifizierungsschritte benötigt. Die sicherheitskritische Stelle in diesem Prozess ist innerhalb des Hardware Security Moduls, während der Datenschlüssel von dem Private Key des Wiederherstellungs-Schlüsselpaares entschlüsselt und direkt darauffolgend mit dem neuen Public Key des Patienten verschlüsselt wird.

Ein mögliches Einschleichen eines falschen Patienten in die Access Control List wird durch die Authentifizierung des Patientenzertifikats von der Krankenkasse gewährleistet. So kann kein gefälschtes Zertifikat eines Dritten als Patientenzertifikat ausgegeben werden.

Nach einem erfolgreichen Wiederherstellen des Datenzugriffs wird der Wiederherstellungs-Schlüssel aus der Access Control List entfernt, wodurch missbrauch dieses Systems vorgebeugt wird.

Verwendete Software

Go 1.13

Make

SQLite 3

Visual Studio Code 1.43