Jeder Konnektor, der zum Zugriff auf die Telematik Infrastruktur (TI) der gematik benötigt wird, enthält mehrere Smartcards, auf denen Zertifikate gespeichert werden. Aus Sicherheitsgründen haben diese Zertifikate ein Verfallsdatum. Daher müssen sie regelmäßig erneut werden. Nicht alle Hersteller*innen haben einen Mechanismus zur Verlängerung der Zertifikate implementert. Nach Auslaufen der Zertifikate muss also der gesamte Konnektor getauscht werden. Derzeit laufen die ersten Zertifikate aus.
Verantwortlich für die TI ist die gematik. Deren Gesellschafter haben entschieden, diese Konnektoren auszutauschen. Das erzeugt Kosten im Bereich vom 300 bis 400 Millionen Euro.
Wir zeigen hier eine kostenlose Softwarelösung für das Problem, von der die Hersteller*innen behaupten, dass sie unmöglich sei.
Unser Patch klinkt sich in die Kommunkation zwischen der Software auf dem Konnektor und der Smartcard ein. Das geht, weil die Kommunikation zur Smartcard nicht abgesichert ist. Unter anderem deshalb war auch der Angriff auf den "sicheren" Speicher im Secunet Adapter möglich.
Wichtig: Unser Patch stellt keinen Angriff auf die Integrität des Konnektors dar. Zwar klinkt sich der Patch in die Kommunikation zur Smartcard ein, es werden aber nur öffentliche, also nicht geheime Daten verändert. Die privaten Schlüssel verbleiben unverändert auf der besonders abgesicherten Smartcard.
Sowohl bei dem Produkt der Secunet als auch bei der CompuGroup Medical kommt die Software PC/SC Smart Card Daemon (pcscd
) zur Kommunikation mit den SmartCards zum Einsatz. Diese Software öffnet einen Unix Domain Socket (z. B. in /var/run/pcscd.comm
), über den Anwendungen mit dem pcscd
interagieren, um der Smartcard Befehle zu senden und Antworten von dieser zu empfangen.
Unsere Referenzimplementierung für die Verlängerung der Zertifikatslaufzeiten besteht darin, an der Stelle des ursprünglichen pcscd
eine modifizierte Version zu starten, die alle Befehle an die SmartCard wie gewohnt weiterleitet. Wird jedoch der Befehl zum Auslesen eines der drei vom Auslaufen betroffenen Zertifikate gesendet, antwortet unser pcscd
mit einem verlängerten Zertifikat aus dem Dateisystem.
Dadurch sind keine Veränderungen an der bestehenden Software der Hersteller notwendig. Es muss lediglich eine Teilkomponente des Linux-Systems, auf dem die Hersteller ihre TI Konnektoren basiert haben, umkonfiguriert bzw. ausgetauscht werden.
Wir verwenden einen handelsüblichen PC/SC Smart Card Daemon (pcscd
) und simulieren diesem SmartCards mithilfe des Projekts Virtual Smart Card.
- Auf dem Konnektor bleibt der bestehende
pcscd
des Herstellers im Hintergrund aktiv, sein Socket wird aber an einen neuen Ort im Dateisystem verschoben:mv /var/run/pcscd.comm /var/run/old_pcscd.comm
- Dann wird ein handelsüblicher
pcscd
sowievirtualsmartcard
installiert und gestartet. Wichtig ist, dass derpcscd
so konfiguriert wird, lediglich die Treiber fürvirtualsmartcard
zu laden. - In dem Verzeichnis
./certs
sind die verlängerten Zertifikate mit folgenden Dateinamen zu hinterlegen:AK_AUT.der
NK_VPN.der
SAK_AUT.der
- Zuletzt muss das Python-Skript
./save_400m_euro.py
aus diesem Projekt gestartet werden. Dieses verfolgt in derexecute()
Methode alle APDUs und prüft, ob ein Zugriff auf die Zertifikatsdateien erfolgt.
Die Hersteller müssen dieses Skript in eine Update-Datei verpacken, diese signieren und bereitstellen, denn schließlich darf nur Software vom Hersteller auf dem Konnektor ausgeführt werden.
Für die Verlängerung der Zertifikatslaufzeiten braucht es die gematik, denn sie verantwortet und betreibt die dazu notwendige Certificate Authority (CA).
- Wir fordern die gematik auf, ihre CA für die Verlängerung der Laufzeiten einzusetzen.
- Wir fordern alle Hersteller (CompuGroup Medical, secunet, RISE) auf, die Laufzeitverlängerung umzusetzen, statt das Gesundheitssystem durch die aufgerufenen astronomischen Preise auszubeuten.
- Wir fordern das Bundesgesundheitsministerium auf, die Hersteller endlich an die Leine zu nehmen und der Geldverbrennung in der TI ein Ende zu setzen.
- Wir fordern das Umweltministerium auf, die allein schon aus Nachhaltigkeitsgesichtspunkten völlig sinnlose tausendfache Vernichtung einsatzfähiger Hardware zu verhindern.