Bisch du Kryptograph oder schaffsch du bi dr Poscht?

„Wählen und Abstimmen mit dem Computer“ – das ist doch viel einfacher als das mühsame Stimmenauszählen auf den Papierzetteln, haben sie gesagt. Die Bundesverwaltung möchte ein E-Voting System einführen. Die Post entwickelt die Software dazu.
Informationsseite der Post über E-Voting:

https://www.post.ch/e-voting-loesung-der-post/sicherheit-an-erster-stelle
„Neuste Technologie garantiert höchste Sicherheit.“ „Sicherheit steht beim E-Voting an oberster Stelle.“
„Die Post verwendet bei ihrer E-Voting-Plattform die neusten Technologien zur Signierung, Verschlüsselung und Verifizierung der Stimm- und Wahlinformationen.“

Und damit es auch wirklich sicher ist, lässt die Post dieses System von einer Krawatten-Projekt-Management-Gesellschaft KPMG zertifizieren:
Hey und damit wirklich jeder nachsehen kann, wie sicher es ist, haben sie den Quellcode offengelegt:

Naja fast. Ausser dass der offene Quellcode hinter einer verschlossenen Tür liegt, die nach einer Anmeldung verlangt:

Oops. Die Nutzungsbedingungen:
Wir möchten Sie an dieser Stelle auf die Eckpunkte der Nutzungsbedingungen aufmerksam machen:
- Der von der Offenlegung betroffene Code inkl. Quellcode ist immaterialgüterrechtliches Eigentum der Firmen Scytl und Post CH AG. Der betroffene Code ist proprietär und nicht einer Free and Open Source Software (FOSS) Lizenz unterstellt.
„Na gut – wenn ihr uns schon so dreist ins Gesicht lügt“ haben sich freundliche Hacker gesagt und den Quellcode kurzerhand aus den Fängen der Post befreit und unter folgender URL der Menschheit zur Verfügung gestellt:
gitlab.com/fickdiepost/evoting-solution
*zirp* *zirp* *zirp* – wenige Tage später…
Sarah Jamie Lewis und Matthew Green haben sich den Code mal angesehen.
(Ganze Diskussion auf Twitter ansehen)
So, I took a look at swiss online voting system code that someone leaked, and having written, deployed and audited large enterprise java code…that thing triggers every flag.
— Sarah Jamie Lewis (@SarahJamieLewis) February 17, 2019
„Ich habe mir das Schweizer E-Voting System angesehen. Es leuchten alle roten Warnlampen bei mir auf.“
„Der Kern Mixnet Code ist über Dutzende von verschiedenen Dateien verteilt:“

„Der Code sieht so aus, als würde er das Richtige tun, aber das ist Code, der nicht geschrieben wurde, um leicht überprüfbar zu sein, was für ein so sicherheitsempfindliches System von Bedeutung ist.
(um ehrlich zu sein: Es ist es schwer, Enterprise Java auf eine leicht verständliche Art und Weise zu schreiben, aber ich habe es auch schon gesehen).“
„Auch dieses ‚Work in Progress‘ ist sehr beruhigend“:

„LAUFENDE ARBEIT – Der folgende Code ist eine alternative Methode zum Verschlüsseln. Wenn sie verwendet wird, kann ein „gepackter“ Chiffriertext gemischt werden und der Klartext kann wiederhergestellt werden, aber die Beweise verifizieren nicht.“
„Um Himmels willen, wie wäre es mit einer grundlegenden Defense in Depth Leute. So startet man nicht eine Funktion, die dazu dient, einen Beweis als korrekt zu überprüfen:“
*schlägt sich mit dem Kopf auf den Tisch*
None of these parameters are even close to being cryptographically secure. This seems like a really big red flag, even if they’re just an example configuration.
Also who the hell doesn’t fix secure group params?! That by itself is a sev:high.
— Matthew Green (@matthew_d_green) February 17, 2019
„Keiner dieser Parameter ist auch nur annähernd kryptographisch sicher. Dies scheint eine wirklich große rote Flagge zu sein, auch wenn es sich nur um eine exemplarische Konfiguration handelt.
Ausserdem, wer zum Teufel repariert keine sicheren Gruppenparameter?! Das allein ist schon ein Sev:High.“
If they actually ship this with 256 bit groups it’s not just broken, it’s catastrophically broken. You can decrypt and forge anything.
— Matthew Green (@matthew_d_green) February 17, 2019
„Wenn sie dies tatsächlich mit 256-Bit-Gruppen liefern, ist es nicht nur kaputt, sondern katastrophal kaputt. Du kannst alles entschlüsseln und fälschen.„
I hate this kind of stuff. They’re clearly being boneheads who have no idea what they’re doing, but they’ll have just enough cover to claim that “it was just test code, don’t worry we’ll get it right for the real election.”
— Matthew Green (@matthew_d_green) February 17, 2019
Das sind eindeutig Dummköpfe, die keine Ahnung haben, was sie tun, aber sie werden gerade genug Deckung haben, um zu behaupten, dass „es nur ein Testcode war, keine Sorge, wir werden es richtig machen für die echte Wahl“.
Dumm nur, dass genau dieser Code schon bei richtigen Wahlen eingesetzt wurde, und zwar im Rahmen der Testphase in den Kantonen Basel-Stadt, Freiburg und Neuchatel.
Und die Moral von der Geschicht?
Wie zu erwarten war. Diplomierte Schildbürgerinformatiker mit eidgenössischem Fachausweis kotzen Enterprise-Javacode hinter verschlossene Repositories, geschützt durch Nutzungsbedingungen und Verbote; verstecken sich hinter Fünf-Sterne-Sicherheitszertifikaten, falschen Versprechungen und Lügen.
Es kam, wie es kommen muss, im Westen nichts Neues. Massnahmen definieren, Risiken bewerten, Geschäftsprozesse modellieren. Wirtschaftsinformatiker my ass.
Und von diesen Arschlöchern lassen wir uns die Demokratie aushöhlen.




