Ist es überheblich bzw. extremst überschätzt von mir zu sagen, dass ich als 19 jährige junior dev das besser hinbekommen würde? Also durch und durch?
Jeder angehende Coder würde das (evtl. mit ein bisschen Mentorship) besser lösen können. Da kommen dann irgendwelche Buden, die bei Ausschreibungen besonders wenig geboten haben und dann setzt Günni der in den Neunzigern mal bisschen was mit Visual Basic gemacht hat, das Projekt dann um. Schlimm genug, doch dazu kommt noch, dass der CCC immer noch als ernstzunehmende Institution von der Politik unterschätzt und oft sogar Hilfe ausgeschlagen wird, während das BSI eine Luftnummer nach der anderen produziert (erinnert sich noch jemand an das IT-Sicherheitskennzeichen, das sich Hersteller basically selbst ausstellen können?).
Wie soll es unter solchen Voraussetzungen auch besser werden? Digitalisierungskompetenz in Deutschland, das schließt sich einfach aus. Naja, mein Job ist wenigstens sicher…
KI wird bald auch deinen Job ersetzen! Mit Robotern, die … Licht … schlachten - anscheinend
Ja, ist es. Weil du das Politikum und die furchtbaren und inkompetenten Akteure noch nicht kennengelernt hast, die solche Projekte kontinuierlich zugrunde richten und dafür beneide ich dich.
Wahr, ich agiere auch meist alleine, mit wenig bis keiner Kommunikation. Kann keine APIs falsch authentifizieren wenn ich sie nach meinen eigenen Ansprüchen entwickle lül
Wirst du früher oder später aber auch lernen müssen. Da kommen noch viele andere Faktoren rein, je mehr Verantwortung man übernimmt. Toll ist das nicht immer, aber man kann nicht leider nicht immer alles andere wegblenden, auch, wenn es oft dumm und kontraproduktiv erscheint.
Ich seh einige Probleme, vor allem da Sicherheit (Security) und Bedienbarkeit leider stark im Konflikt stehen.
Als relativer Laie würde ich als Design einen Hardware-Schlüssel in alle Krankenkarten packen, mit dem die jeweilige EPA verschlüsselt ist. Zugriff auf die verschlüsselte EPA erhalten Arztpraxen überhaupt erst durch das existierende Verifizierungsgedöns mit dem auch Abrechnungen gemacht werden.
Problem hierbei ist, dass ein Programmierer aber keine Hardware-Entscheidungen treffen kann. Wenn also die Grundbedingungen Schrott sind, kann man höchstens so viel Schaden begrenzen. Wenn also im Ausschreiben vom Bund drinsteht, dass haufenweise Akteure leicht massenhaft Zugriff haben sollen (privatwirtschaftliche Forschung und so) kannst du nicht viel machen.
Hardware-Schlüssel in alle Krankenkarten packen
Du hast dann das Problem, dass Leute Karten verlieren und auch sonst mal neue Karten brauchen. Was machst du wenn jemand die Krankenkasse wechselt, usw.
Bei Verlust der Karte gleich alle Patientendaten zu verlieren wäre eine deutliche Verschlechterung zu jetzt. Im Moment kannst du deine medizinischen Daten noch manuell von deinen behandelnden Ärzten zusammentragen. Ginge bei Verschlüsselung mit Hardwareschlüssel bei Verlust des Schlüssels nicht mehr.
Daran hab ich auch gedacht, dies ließe sich durch eine zentrale Speicherung der Schlüssel beheben. Im Falle des Verlusts der Karte bzw. bei Wechsel der Krankenkasse - und nur dann - darf der jeweilige Schlüssel von der Datenbank gelesen werden.
So etwas sicher zu gestalten ist nicht sonderlich schwer, da der Zugang ausschließlich einer einzigen Partei - der Krankenkasse - ermöglicht werden muss. Somit kann man sämtliche Hardware, Software und Mitarbeiter kontrollieren und sicher aufsetzen. Z.B. könnte man die Server in einem Intranet der jeweiligen Krankenkasse aufstellen und den Zugang lediglich bestimmten, direkt verbundenen PCs erlauben. Selbst die größten deutschen Krankenkassen hätten nur eine handvoll Zugriffe pro Tag auf die Server; dies lässt sich sehr leicht absichern und überwachen.
Funktioniert dann im Notfall auch nicht ohne die Karte? Wenn ich ohne Versichertenkarte im Autounfall lande wäre es ja trotzdem schön, wenn man meine Medikamente und Allergien kennt. Da muss dann ein gutes Audit System für spontane Zugriffe her, aber möglich müssen sie sein.
Naja, völlig naiv gedacht sollte Notfall Zugang möglich sein. Entweder zugänglich für jedes medizinische Personal, wird dann groß mit Zeitstempel in der Akte vermerkt und der/die Betroffene wird nochmals separat informiert, oder per extra Zugang den Leute im Rettungsdienst und Notaufnahme bekommen.
Ja, definitiv. Was du vermutlich nicht auf dem Schirm hast:
- Das wird höchstwahrscheinlich nach Wasserfallmodell entwickelt, also bekommst du am Anfang ein Lastenheft mit Anforderungen, die völlig an der Realität vorbei gehen, und sollst dann irgendwas liefern, was in der Realität funktioniert.
- Es gibt da mit Sicherheit unzählige Legacy-Systeme, die angebunden werden wollen. Das ist unfassbar viel Arbeit und bringt weitere komplexe Anforderungen ein.
- Weil es so viel Arbeit ist, erfordert es ein Team von Entwickler*innen. Das bringt viel Komplexität und Fehlerpotential bei der Kommunikation ein. Insbesondere ist das System nicht mehr von einer Person überschaubar. Ob gewisse Sicherheitsprobleme mitigiert sind, kann man dann oftmals nur noch empirisch herausfinden, d.h. mit 'nem Pentest dagegen klopfen (was ja der CCC auch macht).
- Und naja, du hast wahrscheinlich auch noch nicht die Erfahrung gemacht, wie viel Arbeit es bedeutet, ein Service wirklich produktiv zu nehmen. Ich veranschlage mittlerweile pauschal zwei Jahre, egal wie groß das Team ist. Wobei man als Einzelperson oftmals gar nicht vorwärts kommt, weil sich das Umfeld (Anforderungen, aber auch Bibliotheksversionen und Co.) schneller ändern als man hinterherkommt.
Das sind ja nicht die einzigen Sachen, es gibt so unglaublich viele Edgecases die niemand bedacht hat und entweder erst in der Entwicklung oder schlimmer im Test aufkommen.
Und njaaa soviele legacy Systeme sind da gar nicht in der Umgebung.
Zudem hast du dann auch noch internationale Teams die daran arbeiten.
Wenn das Lasten- und Anforderungsheft an der Realität vorbei geht, haben die Entwickler Teams und Productowners aber auch schlecht gearbeitet.
Verwundert mich nicht.
Soso er dankt der Firma für das beheben der Schwachstelle, warum dankt er nicht dem CCC für das Finden?
Das war der zweite Warnschuss. Wer hat noch nicht, wer will nochmal?
https://www.kuketz-blog.de/opt-out-widerspruch-bei-der-elektronischen-patientenakte-epa-einlegen/
Zwei Möglichkeiten wie es hätte besser gemacht werden können:
-
Eine dezentrale Speicherung, bei der die Daten in jeder Arztpraxis lokal & digital gelagert werden. Diese sind natürlich komplett verschlüsselt, wobei nur der Patient die Entschlüsselung authorisieren kann. Notfallrelevante Daten werden in einem weniger streng gesicherten Bereich gespeichert.
-
Eine Patientenakte nach dem Prinzip “Hardware-Wallet”. Die Daten werden auf einem USB-Stick-ähnlichen Speicher gelagert, wobei der Patient die Daten physisch besitzt und nur er die Entschlüsselung authorisieren kann. Notfallrelevante Daten werden in einem weniger streng gesicherten Bereich gespeichert. Es könnten, für den Fall des Verlusts, auch (natürlich verschlüsselte) Backups bei den Krankenkassen hochgeladen werden, die eine Wiedererlangung der Daten ermöglicht.
Die sinnvolle Datennutzung würde in beiden Fällen nicht verhindert werden und die Daten wären um Einiges sicherer.
Warum nicht Daten zentral speichern, und der Patient muss jeder Anfrage zustimmen, aber sieht dabei immer wer welche Daten haben möchte?
Eine Patientenakte nach dem Prinzip “Hardware-Wallet”. Die Daten werden auf einem USB-Stick-ähnlichen Speicher gelagert, wobei der Patient die Daten physisch besitzt und nur er die Entschlüsselung authorisieren kann
Die Mehrheit der Patienten wäre nicht in der Lage das ordentlich zu benutzen. Da werden sehr viele Daten verloren gehen. Ein automatisches Backup in einer Cloud ist unerlässlich.
natürlich verschlüsselte) Backups bei den Krankenkassen
Dann kannst du dir den lokalen Speicher gleich sparen und nur den Schlüssel auf der Karte speichern.
Das ganze System gut zu verschlüsseln wäre mit Zertifikatsketten gut machbar. Krankenkasse signiert den Schlüssel des Patienten. Der Patient signiert ein Zertifikat für den Arzt, usw. Wiederrufliste für Zertifikate dazu und der Patient kann Ärzten Zugriffsrechte auch wieder entziehen.
Es wäre auch sehr praktisch, wenn der Patient nach einem Verlust seiner Karte Zugriff auf seine Daten bekommen könnte. Also sowas wie ein ausgedruckter Mnemonischer Seed für Crypto-Wallets.
Die Mehrheit der Patienten wäre nicht in der Lage das ordentlich zu benutzen.
Wir sind mittlerweile an dem Punkt, an dem man es für zumutbar hält, dass ältere Leute oder körperlich Beeinträchtigte ihr Rechtemanagement auf dem Smartphone regeln können und es auch tatsächlich tun. Auf der anderen Seite scheint eine PIN-Eingabe unzumutbar und zu kompliziert zu sein. Das ist für mich Cherry-Picking.
Wenn also schon technisches Know-How abverlangt wird, wieso nicht auf diese Weise?
Dann kannst du dir den lokalen Speicher gleich sparen und nur den Schlüssel auf der Karte speichern.
Nicht ganz. Der Hokuspokus bis zu den Servern und darüber hinaus bietet ja mehr zusätzliche Angriffsfläche. Geheimdienste finden Server bestimmt auch schöner als irgendwelche Offline-Lösungen (nebenbei sei angemerkt, dass Geheimdienste auch keine Transparenzpflichten haben). Solche Unsicherheiten könnte man so effektiv herauskürzen.
Mit dem automatischen verschlüsselten Backup könnte man es erst lokal verschlüsseln und in einem zweiten Schritt auf einen Server jagen.
Wenn man ganz still ist, kann man leise Linus Neumann weinen hören.