GithubHelp home page GithubHelp logo

flecmart / konnektor-patch Goto Github PK

View Code? Open in Web Editor NEW

This project forked from fluepke/konnektor-patch

0.0 0.0 0.0 110 KB

Saving 400 million euro of public health care money from reckless vendors

License: Other

Python 100.00%

konnektor-patch's Introduction

TI Konnektor Patch

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.

Funktionsweise

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.

Detaillierte Beschreibung

Wir verwenden einen handelsüblichen PC/SC Smart Card Daemon (pcscd) und simulieren diesem SmartCards mithilfe des Projekts Virtual Smart Card.

  1. 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
  2. Dann wird ein handelsüblicher pcscd sowie virtualsmartcard installiert und gestartet. Wichtig ist, dass der pcscd so konfiguriert wird, lediglich die Treiber für virtualsmartcard zu laden.
  3. In dem Verzeichnis ./certs sind die verlängerten Zertifikate mit folgenden Dateinamen zu hinterlegen:
    1. AK_AUT.der
    2. NK_VPN.der
    3. SAK_AUT.der
  4. Zuletzt muss das Python-Skript ./save_400m_euro.py aus diesem Projekt gestartet werden. Dieses verfolgt in der execute() Methode alle APDUs und prüft, ob ein Zugriff auf die Zertifikatsdateien erfolgt.

Installation

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).

Forderungen

  • 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.

konnektor-patch's People

Contributors

annikahannig avatar fluepke avatar khaleesicodes avatar erdgeist avatar nodomain avatar rhuss avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.