Der Thüring-Test für Wahlsoftware
Der Vortrag "Der Thüring-Test für Wahlsoftware" von Linus Neumann und Thorsten Schröder media.ccc.de/v/38c3-der-thring-test-fr-wahlsoftware
Wahl-O-Mat www.wahl-o-mat.de
Bundeszentrale für politische Bildung www.bpb.de/themen/bundestagswahlen/bundestagswahl-2025/
Real-O-Mat real-o-mat.de
Frag den Staat fragdenstaat.de
Open Knowledge Foundation Deutschland okfn.de
- Musik Playlist
-
- Oratrice Mecanique d'Analyse Cardinale youtube.com/watch?v=7SV0ZPdordk
- Boxxy, Love and Trolls youtube.com/watch?v=6bMLrA_0O5I
- Else, Paris youtube.com/watch?v=r8Yqbi4uVUg
- 东方红艳 VS 赵真, 火火的姑娘 youtube.com/watch?v=OMkIAeB787U
Transkription
Hallo, hier ist das politopia-magazin, euer gesellschaftspolitisches Magazin hier bei Radio X, dem Frankfurter Bürgerradio. Schön, dass ihr dabei seid, schön, dass ihr zuhört. Wir werden uns heute über das Wählen unterhalten.
Also am 23. Februar ist ja Bundestagswahl und wir werden uns heute ein bisschen über das Vorgehen unterhalten. Also weniger um politische Inhalte der einzelnen Parteien oder Kandidaten, sondern eher die Frage, wie funktioniert das denn mit dem Wählen.
Die Wahlen werden ja vor Ort in den Gemeinden abgehalten. Das heißt, die Gemeinden sind auch erstmal verantwortlich, dass sie das organisieren. Aber zu so einem Wahlsonntag, wenn jetzt also auch die Wahllokale geöffnet haben, dann muss das ja irgendwie organisiert sein.
Da gibt es einen Wahlleiter, der das zu verantworten hat, dass das ordentlich funktioniert. Und da gibt es auch noch eine Menge Wahlhelfer, das sind Freiwillige, die eben die Abwicklung der Wahl auch unterstützen. Jetzt ist es ja schon eine Herausforderung, dass das alles ordentlich funktioniert.
Insofern, dass es da an vielen Ecken und Enden genau darauf achten muss, wie wird das durchgeführt. Unter Umständen kommt auch bei der Verarbeitung der Stimmergebnisse auch Software zum Einsatz. Und das ist auch ein Punkt, da wollen wir heute den Fokus drauf legen.
Wir haben einen Vortrag mitgebracht und zwar von Linus Neumann und Thorsten Schröder. Den haben sie gehalten beim 38c3, also beim 38. Cars Communication Congress.
Der war jetzt im Dezember letzten Jahres gewesen. Und da berichten sie, was sie so herausgefunden haben zum Thema Software, Wahlsoftware, Einsatz bei Wahlen. Der Vortrag heißt der Thüringtest für Wahlsoftware.
Also Linus Neumann und Thorsten Schröder. Schönen guten Abend. Ihr könnt euch gar nicht vorstellen, wie sehr wir uns freuen, endlich wieder hier zu sein.
Hallöchen. Und heute haben wir euch einen Test mitgebracht und zwar ist das der Thüringtest, weil wir uns um generell Thüringen Gedanken machen und der Thüringtest einen Nachfolger braucht. Deswegen definieren wir heute mit euch zusammen den Thüringtest für Wahlsoftware.
Wahlen sind ja eine ganz feine Sache. Ich zum Beispiel war Wahlhelfer bei der Bundestagswahl in Berlin, die gleichzeitig stattfand mit einem Marathon und in 455 Wahlbezirken wiederholt werden musste. Das sind immerhin 20 Prozent von Berlin.
Es gab da unterschiedlich schöne Geschichten. In Pankow war ein Wahlvorstand angetrunken. Ebenfalls in Pankow fehlte der Schlüssel zum Raum, in dem die Wahlunterlagen waren.
In Kreuzberg hatte ein Wahlvorstand auf dem Weg zum Wahllokal einen Unfall mit dem Taxi. Aber der Marathon zumindest musste nicht wiederholt werden. Das ist ja auch schon mal was Gutes.
Wir wissen, Wahlen sind dornige Chancen. In Neubrandenburg hat die FDP eine komplett neue Idee gehabt. Und zwar hat sie ihren Kandidaten einmal für die Basis, die demokratische Partei, die Basis auf dem Zettel gehabt und dann auch nochmal für die FDP.
Das war irgendwas mit IT. Da hatte jemand nicht aufgepasst. Das kann ja mal passieren.
Schade für den Basis-Kandidaten. Der stand gar nicht drauf, aber das hat jetzt auch nicht geschadet. Dann gab es eine wunderschöne Panne bei der Briefwahl in Rheinland-Pfalz.
Da gab es falsch nummerierte Wahlscheine. Und woran lag es? Die Anleitung für die Software war fehlerhaft. Also du hast schon eine schlechte Software und dann schreibst du noch eine falsche Anleitung dafür.
Dann hast du Rheinland-Pfalz. Immerhin war nicht die Software falsch oder kaputt. Nee, das war erst in Sachsen dann, dass die Software kaputt war.
Da wurde direkt die Sitzverteilung korrigiert. Das vorläufige Endergebnis wurde also korrigiert. Es gab einen Rundungsfehler.
Und wenn ich das recht erinnere, haben CDU und AfD weniger Sitze bekommen, Grüne und SPD mehr. Und damit haben sich dann sogar auch die Mehrheitsverhältnisse in Sachsen grundlegend geändert. Da fragt man sich, was war denn da los? Wir haben uns das doch angeschaut, 2017 zusammen mit Martin, als wir die Software PC Wahl angeschaut haben.
Oben rechts übrigens tatsächlich das Originallogo aus der Bedienungsanleitung. So sah das aus vor acht Jahren. Kein Scheiß.
Man kann sich vorstellen, wie es danach weitergeht. Kurze Zusammenfassung, was hatten wir damals? Man musste in einem VPN sein in Hessen, um seine Wahlergebnisse zu übermitteln. Nutzername Test, Passwort Test.
Die Wahlergebnisse wurden auf einen FTP-Server gelegt. Diese FTP-Zugangsdaten waren in den Konfigurationsdateien für jede einzelne Stelle die Wahlergebnisse einliefert. Und die lauteten, FTP war der Nutzername und das Passwort war was anderes als der Nutzername.
Nämlich wahlen, FTP. Und die Ergebnissdaten waren unsigniert. Das heißt, mit den beiden Nutzernamen und Passwortkombinationen konnte man einfach auf den FTP-Server gehen und andere Ergebnisse speichern.
Fertig. Das ging allerdings nur in Hessen. Also hat Thorsten gesagt, das reicht nicht, wir müssen ja ganz Deutschland vereinen.
Und hat dann in Kombination mit einem arbitrary-file-wide in selbstgebastelten PHP und unsignierten Updates noch millische Software für PC-Wahl geschrieben. Weil alle Leute angehalten waren, ein Update vorher durchzuführen. War ja kaputt, haben wir ja gezeigt.
Dann haben die Updates gemacht und dann war es wieder kaputt. Waren sie wieder kaputt? Haben sie wieder ein Update gemacht? War auch wieder kaputt. Aber so haben wir gesagt, jetzt definieren wir mal den Turing-Test und sagen, wir wollen die Passwörter und Secrets nicht in Klartext.
Wir wollen individuelle Passwörter. Wir wollen signierte Konfigurationen, damit man nicht andere umkonfigurieren kann. Wir wollen signierte Ergebnissdaten, damit wenn die irgendjemand falscher auf den FTP-Server legt, dass wir das merken.
Schwierige Anforderungen, wir wollen keine Code-Injection. Wir hätten das ganze gerne in Open Source und die Krypto braucht ihr auch nicht selber zu machen. Das war ja bei PC-Wahl so toll, die haben halt die ganze Krypto selbst geklöppelt und das war nicht so schön.
Die hatten die Software-Updates verschlüsselt, statt zu signieren. Ein Klassiker, der nicht nur in der normalen IT uns die ganze Zeit verfolgt, sondern auch in der Wahlsoftware immer wieder. Oft wird hier aber sagen, verschlüsselt.
Das war verschlüsselt. Komplizierter Algorithmus war das. Wir haben damals die Sache gemeldet an den Hersteller, wir haben dann schnell die Anrufe von BSI und BMI bekommen, haben Krisentelefonate geführt mit denen und haben gesagt, ja wäre gut, wenn ihr das reparieren würdet.
Das war sehr schön, weil BSI sagt, geht doch jetzt einfach dahin und haltet dem Hersteller eine technische Richtlinie an den Kopf. Und dann muss er das umsetzen. Dann sagt er, so einfach ist das nicht.
Dann hat der Hersteller die Updates einmal kaputt repariert und ein zweites Mal nochmal. Wir waren immer am Telefon mit dem BSI und sagten, der muss die Updates signieren. Also haben wir uns dann irgendwann eine Lösung gespendet.
Hat nicht geholfen. Hat nicht geholfen, weil die hat der Hersteller natürlich nicht angenommen. Weil da könnte ja jeder kommen.
Das wäre wie Code Injection eigentlich, oder? Das wäre eine Code Injection. Und dann hat das BSI eine Notfallhandreichung gemacht und die Wahl 2017 wurde durchgeführt. Diese Notfallhandreichung war ganz cool, stand da so drin.
Es wäre schon ganz gut, wenn man hier Integrität und Authentizität der Wahlergebnisse irgendwie sicherstellen könnte. Vielleicht Redundanz oder so, an sowas zu denken. An dieser Stelle ein wichtiger Hinweis.
Es geht dabei vor allem um die Schnellmeldungen. Also es gibt noch einen langsameren Prozess für die Wahlergebnisse. Die werden alle noch ein zweites Mal kontrolliert.
Aber die Schnellmeldungen werden so quasi am nächsten Morgen, spätestens, muss die Sache stehen. Und dann kommt so eine Woche oder zwei, teilweise drei Wochen später dann das wirklich amtliche Endergebnis. Ja, das ist vielleicht auch nochmal wichtig zu erwähnen, dass diese ganze Software, über die wir hier reden, über die wir 2017 geredet haben und auch heute nur genutzt wird für all diese Schnellmeldungen, dass an dem Abend selbst und in den Tagen darauf schon Prognosen und Sitzverteilungen präsentiert werden können.
Aber ihr könnt euch ungefähr vorstellen, was los ist, wenn man so zehn Tage später die Wahl nochmal korrigiert. Das haben wir in Sachsen gesehen. Stärkt jetzt nicht unbedingt das Vertrauen in die Demokratie und die Prozesse.
Wir haben gesagt, das BSI hat sich damals darum gekümmert. Die haben gesagt, ja, wir haben voll die geile Idee. Wenn wir einen Kanal haben, dem man nicht vertrauen kann, dann nehmen wir einfach noch einen zweiten.
Und dann müsst ihr irgendwie, schickt das auf den ersten, dann sagt er auf dem zweiten Kanal Bescheid oder so. Und dieser zweite Kanal, der könnte man zum Beispiel signieren. Da bräuchtet ihr aber eine PKI.
Insofern könnt ihr auch telefonieren. Das heißt, wir haben jetzt so eine Software, die so unsicher ist, dass man zur Sicherheit lieber nochmal anruft. In ganz kleinen Wahlkreisen läuft das auch übers Telefon in der Regel.
Das ist nicht üblich, dass überall dann auch ein Laptop steht mit Software. Berlin hat, was habe ich gesagt, 20% waren in 450 Wahllokale. 455 Wahllokale kannst du dir vorstellen, wenn die telefonieren.
Köln hat gesagt, machen wir. Und zwar 2025. Das ist der Leitfaden für Wahlhelfende der Stadt Köln für die Bundestagswahl 2025.
Die völlig überraschend, ihr wisst schon, Pyramide und so, jetzt im Februar stattfindet. Da ist die Telefonnummer für die Schnellmeldungen. Und es ist zwingend zu tätigen, das ist ganz wichtig.
Mein Lieblingstext ist, das Wahlamt bittet Sie um etwas Geduld. Es kann aufgrund eines hohen Aufkommens an Anrufen durchaus zu etwas längeren Wartezeiten kommen. Bitte legen Sie nicht auf.
Sprechen Sie deutlich. Ja, funktioniert. Und dann ist erstmal, wir waren jetzt gerade nach der Wahl 2017, ist lange Zeit nichts passiert.
Bis wir dann so eine E-Mail bekamen, so, ja, ey, hi, wir sind das BSI. Kennt ihr uns noch? Kennt ihr uns noch? Ihr hattet damals die Wahlsoftware kaputt gemacht. Und angeboten uns zu unterstützen.
Genau, ihr habt ja gesagt, ihr habt Lösungen. Wir haben jetzt mal einen Anforderungskatalog, 86 Seiten, in der Version 1.0 final, den wir nächste Woche veröffentlichen. Gebt doch mal euer Feedback.
Könnt ihr mal gucken. Könnt ihr mal gucken. Hier, zack.
Da sind dann sogar so schöne Grafiken drin, ne. So schöne Grafik gemacht. Guck mal, so funktioniert das mit der Wahl.
Und dann in dem Dokument fand sich die wunderschöne Zielgruppe. Dieser Anforderungskatalog richtet sich an die Wahlorgane und Behörden aller Ebenen, von Wahlbezirk bis Bund. Wir hatten ja überhaupt nicht die Behörden kritisiert, sondern die Software, die sie benutzen.
Also die Zielgruppe ist hier schon die falsche. Und da gibt es so eine Grundschutzanalyse. Wunderschön, kennt ihr Grundschutz? Hier, Schutzbedarf hoch.
Was muss man da jetzt machen? Unter anderem signieren. Okay, das ist in Ordnung. Könnt ihr so machen.
Aber insgesamt so dieses Ding, ohne uns zu schreiben, eine Woche vorher irgendwie unseren Segen zu verlangen, haben wir gesagt, ROFL WTF. Ja, und dann wurde wieder gewählt, ne. Genau, 2024 war dann Beginn der offenen Feldschlacht.
Und wir mussten uns Gedanken machen, was wird eigentlich jetzt für eine Wahlsoftware verwendet? Ja, und da gab es ja so ein paar Hinweise. In Sachsen gab es ja dann diesen Rundungsfehler, über den so viel berichtet wurde. Und durch verschiedene Recherche von verschiedenen Journalistinnen wurde dann halt auch klar, um was für eine Software es sich handelt.
Und dann dachten wir, da wollen wir auch mal reingucken. Weil nämlich die Landeswahlleiter in Sachsen sich auch sehr bedeckt gegeben haben, was irgendwie den eigentlichen Fehler angeht. Ich habe da angerufen beim Landeswahlleiter und habe gesagt, so hier, bin der Therese vom CCC.
War da auch der Typ von gerade dran? Der wer? Weiß nicht. Und dann habe ich gesagt, so, sag mal, was ist denn da los? Sag doch mal, ist doch wichtig, dass wir hier so ein bisschen Transparenz haben. Geht ja hier um eine demokratische Wahl.
Und wir wollen ja nicht, dass irgendwie Chaos ausbricht und irgendwie Verschwörungstheorien entstehen. Was war denn da jetzt falsch? War es vielleicht einfach nur ein Implementierungsfehler oder ein Konfigurationsfehler? Und die Antwort habe ich dann ein paar Stunden später bekommen. Dann ließ der Landeswahlleiter mitteilen, er könne mir die Informationen aus Gründen der Informationssicherheit nicht geben.
Das hören wir immer gerne. Das ist meine Lieblingsausrede, definitiv. Also haben wir dann einfach mal ins Internet gefragt, ob nicht irgendjemand vielleicht mal eine Softwarespende für uns übrig hat.
Und das war dann auch der Fall. Wir haben dann eine Software bekommen von einer Firma und haben dann natürlich mal angefangen, ein bisschen zu recherchieren. Um was für eine Firma handelt es sich eigentlich? Ja, da stößt man dann auf EvoElect, auf VoteGroup, wo diese Software jetzt mittlerweile angesiedelt ist.
Und dann guckt man natürlich als erstes, wenn man irgendwie Sachen recherchiert und was hacken möchte, dann guckt man ja zumindest erstmal auf die Webseite von dem Hersteller. Der hat sogar eine Webseite. Diese Webseite hat auch einen WordPress.
Und in diesem WordPress kann man Kommentare hinterlassen. Und dann haben wir halt gesehen, der Russe ist auch schon da gewesen. Einen Spam-Schutz gibt es da nicht.
Der Screenshot mit den 781 Kommentaren ist von gestern vorbildlich. Der ist jetzt irgendwo bei 800 und ich könnte mir vorstellen, dass vielleicht heute noch ein, zwei dazukommen. Ja, das kann schon passieren.
Also das Internet ist unberechenbar, habe ich gehört. Genau, also was macht man dann also, wenn man diese Software dann bekommt? Wie der Pupu schon angedeutet hat, wir schmeißen natürlich mal den Decompiler an, aber natürlich ist man ja auch gespannt, wie sieht das eigentlich aus, wenn man die Software startet. Also, diese Softwarespende genommen und in eine VM geworfen und dann haben wir die mal gestartet.
Sollen wir das mal zeigen? Zeigen wir mal, wie die Software gestartet wird. Diese Software wird auf einem USB-Stick zu jedem Laptop getragen, wo die Wahlstimmen erfasst werden. Also es handelt sich um eine Wahlerfassungssoftware, die dann also im Wahllokal oder eben bei der Gemeinde läuft, wo dann die Stimmen dann da reingetippt werden und weitergeschickt werden.
Und dann steckt man diesen USB-Stick in den Rechner rein und klickt auf eine Startpunkt-Butt. Und ich zeige euch jetzt mal, wie das aussieht, wenn man diese Software startet. Wir haben noch eine kleine Stopp-Uhr daneben gelegt.
Aber du hast drei Sekunden, die drei Sekunden müssen wir nachher Fairness halber abziehen. Ich habe zu früh gestoppt. Also, was passiert jetzt hier? Diese Wahlsoftware kopiert sich jetzt erst mal vom USB-Stick auf die Festplatte.
Noch nicht, erst mal kopiert sie LibreOffice. Jaja, es wird LibreOffice kopiert. Jetzt kopiert sie den Browser.
Wir lassen das mal ein bisschen schneller. Die ganze LibreOffice-Instanz wird darauf kopiert und ein ganzer selbstgeklöppelter Chromium. Und nach zehn Minuten, zehn Minuten, wie mit dem Zug, ne? Flughafen in München.
Zehn Minuten steigst du quasi in die Wahlsoftware ein. Hat man dann... Also, das war jetzt eine VM mit alles in der SSD. Vier CPU-Kernen.
Vier Cores. Ich habe da keinen USB-Stick gehabt. Also, die wurde von der SSD auf die SSD kopiert.
Mit vier Cores und 32 GB RAM. Ich bin mir nicht so sicher, ob das... Naja, jedenfalls darf man dann in diesem Wahlerfassungssystem eine Prüfziffer angeben. Eine Prüfziffer, das ist gar nicht so unwichtig.
Das müsst ihr euch merken. Prüfziffer heißt hier eigentlich immer nur Passwort. Kennwort, Passwort, Prüfzimmer, Prüfziffer.
Wie ihr seht, loggt man sich hier ein. Diese Prüfziffer ist geheim. Die wird dann auch mit einem Brieftaube da hingegeben, in einem Umschlag.
Und nur die Leute, die das wirklich benutzen dürfen, dürfen dann auch diese Prüfziffer haben. Da loggt man sich dann mit ein. Ein Username ist nicht nötig, weil diese Prüfziffer eindeutig einer Gemeinde oder einem Kreis zu zuordnen ist.
Ja gut, machen wir mal. Das ist jetzt so eine Konfiguration, wo diese ganzen... Also, ja, wo festgelegt ist, was für Gemeinden gibt es, was für Gebiete gibt es. Wie sehen die Formulare aus, wo die Stimmen am Ende auch nochmal als PDF dann irgendwie zusammengefasst werden.
In dieser Konfiguration, wir nennen sie hier einfach mal WEST-Konfiguration. WEST steht für Wahlerfassungssystem. Da kann man LibreOffice-Templates angeben und auch direkt embedden.
Die sind dann bei Base64 enkodiert angelegt. Diese Konfiguration kann man auch modifizieren. Die sind natürlich nicht signiert, natürlich.
Was wir also auch mal gemacht haben, ist dann da einfach eigene Niederschrift-Templates zu embedden, wo man natürlich auch eine Menge Umfug treiben kann. Man LibreOffice hat ja auch Makros, da kann man bestimmt auch noch in der Zukunft ein bisschen Spaß mit haben. In jedem Fall konnten wir da eine eigene Wahlniederschrift-Formular-Template reinlegen und stellen schon mal fest, dass der erste Test des Türing-Tests failed.
Ja, die Konfigurationen sind nicht signiert. Die Auswertung ist auch nicht Open-Source, selbst wenn da LibreOffice geladen ist. Nein, das ist nicht das, was wir meinen.
Aber es sind alle Punkte für Open-Source-Software verwendet. Das ist schon mal ganz gut. Ja.
Was ist denn, nehmen wir mal Code-Injection? Das ist eine Java-Anwendung. Ich muss dazu sagen, da wird ja nicht nur LibreOffice kopiert, dieses Benutzerinterface ist ja eigentlich ein Web-Browser. Und dieser Web-Browser ruft dann auf Localhost über HTTP einen Web-Application-Server auf, der halt irgendwie so eine fette Java-Anwendung surft.
Kann man machen, ist halt irgendwie auch ein bisschen schräg. Aber natürlich haben wir uns ja mal angeguckt, okay, wir decompilen das mal, nur mal so, um einen Größenvergleich zu bekommen. Nur der Teil, der für die Wahlerfassung relevant ist, beinhaltet 8100 Java-Klassen.
Das ist nicht so wenig. Das kann man eigentlich nur irgendwie mal statisch mal ein paar Tools drüber rennen lassen, um mal zu gucken, wo gibt es denn riskante Stellen. Haben wir dann auch mal was gefunden.
Sieht so ein bisschen aus wie Code-Injection, aber ganz scharf vorbei. Gerade noch mal gut gegangen. Man kann ja Prozesse aus Java irgendwie gut sinnvoll spawnen und nicht so gut.
Und die haben sich halt für die Variante nicht so gut entschieden, aber sie haben halt Glück, kann man denen ja auch mal gönnen, oder? Gönnen wir ihnen, gönnen wir keine Code-Injection. Also nicht so, wie man es nicht macht, aber trotzdem in dem Fall hat es nicht geklappt. Also gelb.
Hier sehen wir jetzt noch mal einen Ausschnitt aus dieser Konfiguration, die ja unter allen Laptops, die die Wahlen erfassen, also in allen unterschiedlichen Gemeinden, in den einzelnen Kreisen, Bezirken, wo gewählt wird, wird diese Konfiguration geschert. Und da sind dann all diese Kennziffern, diese Prüfziffern natürlich auch drin. Da fragt man sich, ja, die sind doch da hoffentlich nicht im Klartext drin.
Top, sind sie nicht. Wir sehen hier ein Feld externe ID. Das ist ein Hash des Passworts.
Die haben einen echten Hash abgelegt und kein Klartext-Passwort. Richtig gut. Und sie verwenden sogar ein Sort, wo sie dann aus dieser Prüfziffer mit dem Sort gemeinsam einen sehr komplexen Hash berechnen.
Dazu benutzen sie die Password-Based Key Derivation Function 2 mit SHA-512, HMAC und 20.000 Iterationen. Das ist eigentlich gar nicht so blöd. Blöd ist hier vielleicht, dass irgendwie in so einer Datei, da können halt locker 20, 30, 40 oder mehr solcher Passwörter drin stehen.
Und wie ihr euch jetzt überlegt, wenn man da gar keinen Username angeben muss, wie funktioniert das denn eigentlich? So, diese Software nimmt dann, wenn der User sich einloggt, nimmt er diese Prüfziffer und dann geht er durch alle Einträge durch und berechnet mit allen Sort-Values, die da drin stehen, für jeden Eintrag sind die ja unterschiedlich, einfach diesen Hash und dann wird der Hash verglichen. Und wenn irgendwann dieses Kennwort matcht, dann weiß die Software, ach, alles klar, ich bin jetzt hier im Bezirk WLAN und dann können die Stimmen erfasst werden. Ist halt blöd, wenn du das letzte Wahllokal bist, aber immerhin.
Man muss auch sagen, die sparen Platz in der Konfigurationsdatei. Ja, ja, also es sollte auf jeden Fall keine Kollision geben. Also Passwörter sollten da nicht wiederverwendet werden.
Das ist ja eigentlich auch immer so, Daumen hoch, Passwörter nicht wiederverwenden. Ja, wie gesagt, gibt es hier ein Sort. Eigentlich soweit erst mal alles ganz gut.
Also sieht es ja erst mal ganz gut aus, die ersten grünen Punkte. Zwischenergebnis, individuelle Passwörter für jedes einzelne Wahllokal, das kennen wir so noch nicht. Und Passwörter und Sequence erst mal nicht im Klartext.
Was kann man denn da noch falsch machen eigentlich? Ja, also wenn man so eine Wahl konfiguriert, dann braucht es ja nicht nur das Erfassungssystem. Es muss ja auch irgendwie einen Teil geben, der diese Konfiguration erstellt. Das schreibt ja keiner.
Setzt sich ja dahin und schreibt das alles mit der Hand auf. Es gibt so ein WAS. Wahlauswertungssystem.
Wahlauswertung, nee, Wahl... Organisationssystem. Nee, das war WAS. Was war denn WAS dann jetzt? WAS.
Was? Wahlaus... Was? Analyse WAS? Das andere. Ja, also das WAS, da kann ich Wahlen quasi anlegen. Dafür steht das A aber nicht.
Ja, hier kann man dann die Einstellung zum sogenannten Prüfkennzeichen festlegen. Und ihr seht, wenn man jetzt da steht und sagt, ich möchte aber gerne einstellige numerische Passwörter, dann geht das leider nicht. Mindestens zweistellig numerisch.
Mindestens zweistellig numerisch. Wegen der Sicherheit. Aber wird ja dann gehasht, ja? Wird ja gehasht.
Und das ist ein richtig großer Hash. So einen großen Hash habe ich auch noch nie gesehen. Das ist wirklich ein großer Hash.
Ich wusste gar nicht, dass man aus numerisch zweistellig so großen Hashes machen kann. Das ist irre, oder? Irre. Wahnsinn.
Also, ja, wird es vielleicht ein bisschen schräg. Das Problem ist ja, man kann ja auch sichere Alternativen wählen. Man könnte sogar JuJu-ID nehmen, ja? Also komplett nicht hochzählen.
Nehmen Sie ja für die Salt schon. Und soll man seine Sachen nicht doppelt verwenden? Nimmt man noch einen, ja. Aber jetzt wird es richtig spannend.
Jetzt wird es richtig gut. Wir haben ja auch geguckt, so, wird da eigentlich signiert? Die Wahlergebnisse? Wenn ich fertig bin mit meiner Erfassung? Der Hersteller sagt nämlich, ja, klar wird das signiert. Alles wird signiert.
Wir signieren alles. Und die Wahlergebnisse im Besonderen. Und es gibt ja auch Behörden, die halt sagen, ja, Wahlergebnisse sollten signiert sein.
Das BSI zum Beispiel. Und wenn der Hersteller der Software sagt, ja, mache ich nicht, dann muss der das eigentlich begründen. Aber er signiert ja.
Und wir sehen hier ein Signatur-Hash. Sieht erstmal okay aus, ne? Also, ja, gut. Wir können nichts modifizieren auf dem Weg.
Denn diese Wahlergebnisse, diese XML-Datei, die wird am Ende als ZIP auf dem USB-Stick gepackt und zur nächsten Stelle getragen oder übers Internet übertragen. Lass uns mal die Signaturfunktion anschauen, Thorsten. Lass mal nochmal kurz gucken.
Gucken wir mal die Signaturfunktion. Also, wir nehmen Daten. Wir wollen ja Daten signieren.
Und wir nehmen die Daten einfach zweimal. Ist besser. Zweimal.
Wir kleben Daten aneinander. Doppelt signiert. Hält besser.
Okay, soweit so gut. Dann, die zusignierenden Daten werden jetzt erst mal Base64 kodiert. Das ist mir irgendwie schon aufgefallen, als ich mir diese Software ein bisschen angeguckt habe.
Die haben irgendwie so einen leichten Fetisch für Base64-Verschlüsselung, keine Ahnung. Auf jeden Fall werden sie dann diese Base64-kodierten Daten, werfen sie dann gegen eine Funktion namens getEncryptedPassword as Base64-encodedString. Das klingt mir nicht so sehr wie eine Signatur-Methode.
Also sie übergeben hier die Prüfziffer, ihr erinnert euch, das Kennwort, was der Benutzer angegeben hat beim Login und die zusignierenden Daten. Okay, ich löse das jetzt mal auf, dann müssen wir uns nicht noch mehr Code angucken. Diese Funktion ist genau die Funktion, die diesen Passwort-Hash berechnet, wenn man sich zum Beispiel einloggt.
Also im Grunde genommen, wie wir auf der rechten Seite sehen, es wird eigentlich nur aus der Nachricht und dem Passwort ein Hash generiert und das ist für die die Signatur. So geht das aber nicht. So geht das nicht.
Also links sehen wir die Seite, die das BSI definitiv unterschreiben würde. Man hat eine Nachricht, man hat einen privaten Schlüssel, der wird geheim gehalten. Daraus bilden wir eine Signatur und unten kann man dann mit dem öffentlichen Schlüssel überprüfen, ob diese Signatur für diese Nachricht korrekt ist.
Und ja, die Vote Group hat sich gedacht, wir machen nur ein Hash und das verkaufen wir denen als Signatur. Und das haben die den Behörden so verkauft und ich frage mich halt schon, wieso ist das eigentlich niemandem aufgefallen? Es muss da eigentlich irgendwie auch jemanden geben bei so einer Behörde. Das wird ja abgenickt.
Ja, ihr dürft die Software benutzen für die Wahl. Ist ja auch ein wichtigerer Prozess. Die Software ist zugelassen.
Nach welchen Kriterien eigentlich? Also schlimmstenfalls ist alles, was ich für die Signatur brauche, zwei Ziffern. Also zweistellig numerisch kann ich signieren. Genau deswegen macht man das so nicht.
Deswegen müssen wir auch sagen, also Signatur kennen wir nicht. Und dann haben wir uns überlegt, vielleicht schauen wir noch mal. Ja, Crypto nicht selbst gemacht.
Also machen wir mal gelb. Es ist ja, also sie benutzen eine ordentliche Key Derivation Function. Das kann man so sagen.
Also das war ja wirklich, da knallen ja die Sektkorken, wenn wir sowas sehen, dass da irgendwie eine ordentliche nicht selbst geklöppelte Krypto gibt, die da irgendwie ganz zugrunde liegt. Sie haben sie einfach falsch verwendet oder so völlig unwissend irgendwas implementiert. Aber dann haben wir uns gedacht, diese beiden grünen Balken da oben, können wir die echt vergeben oder schauen wir noch mal in die Konfigurationsdatei? Ja, also ich habe ja gesagt, man kann diese Wahlergebnisse auf USB-Stick übermitteln, man kann sie aber auch übers Netzwerk schicken.
Und was braucht man für das Netzwerk? Zum Beispiel ein FTP-Server. Bei PC-Wire hat das gut funktioniert. Hier gibt es halt einen Web-Service mit einer URL und natürlich, was braucht man, wenn man mit einem Web-Service sprechen will und sicherstellen möchte, dass ich berechtigt bin, die Stimmen für einen ganz bestimmten Wahlkreis dort abzuliefern? Richtig, ein Passwort.
Und dieses Passwort für alle Kreise, für alle Laptops, für alle Wahlerfassungssysteme steht in dieser WES-Konfiguration drin, die natürlich auch mit allen geteilt wird. Also geteilte Passwörter haben wir heute leider keine Punkte für euch. Kein Verständnis für individuelle und Klartext können wir euch leider auch nicht geben.
Und so ist das das Endergebnis. Wir haben keine Code-Injection gefunden, aber nur haarscharf. Und die Krypto ist zwar nicht selbst gemacht, aber einfach ungeeignet.
Und man fragt sich, wie kommt das denn dazu, dass unsere Behörden für unseren hohen, wichtigen Akt der Wahl so etwas kaufen? Und als wir 2017 uns diese Sachen angeschaut haben, sah der Markt ungefähr so aus. Es gab VoteIT, es gab PC-Wahl und es gab IVU-Elect. Und was kurz vor unserer Analyse von PC-Wahl passiert war, war folgendes.
VoteIT ist shoppen gegangen. Zack. Das war aber auch vor unserer Analyse.
Das war kurz davor. Wir hatten da die Vermutung, dass der Hersteller von PC-Wahl sich in den Schlaf lacht. 3 Millionen oder so hat er bekommen.
Also für das, was er hatte, war das ein guter Preis. Aber was hier verkauft wird, ist ja auch nicht das Produkt Wahlsoftware, sondern hier werden Kundenstämme verkauft. Volker Berninger ist dann, das ist der Hauptautor von PC-Wahl, der dann zum Geschäftsführer bei VoteIT wurde, sagte dann so, das ist jetzt viel besser mit VoteIT, weil jetzt orientieren wir uns an den BSI-Richtlinien für sichere Anwendungsentwicklung und die OWASP Top 10.
Da orientieren wir uns auch dran. Und wir machen regelmäßig Penetrationstests. Unser Verdacht ist übrigens, dass diese bessere Hashing-Funktion irgendwann mal von einem Pen-Test vorgeschlagen wurde.
Dann benennt sich auf einmal EVU um in ELECT, weil EVU dieses Unternehmen ausgründet. Also EVU hat noch viele andere Dinge und diesen ELECT-Teil wollten sie nicht mehr haben. Warum denn nur? Vielleicht wollte den jemand kaufen, zum Beispiel VoteIT.
Und so geht VoteIT hin und einverleibt sich auch das dritte Produkt und ist jetzt als Monopol in der Lage zu sagen, ey, wenn du eine Leidenschaft für Clean-Code und einfache Lösungen hast, findest du bei uns hohe berufliche Sicherheit durch eine sehr große und sichere Kundenbasis. Die haben einfach mal den Markt aufgekauft. Und ich würde das noch nicht mal einem Unternehmen grundsätzlich zur Last legen, dass sie zusehen, dass sie ihre Konkurrenz aufkaufen, sich den Markt sichern, aber doch bitte nicht bei Wahlsoftware und erst recht nicht in der Qualität.
Weil wenn diese Unternehmen keine Konkurrenz mehr haben, dann kommen sie auch mit solcher Qualität durch, weil es einfach nichts anderes mehr gibt. Die stehen dann da und sagen, ist so. Und wenn du den Back behoben haben willst, kostet ein bisschen.
Du kannst auf unserer Webseite gucken, kommt bald. Die Webseite gibt es so seit fast einem Jahr jetzt. Wir hätten uns natürlich gewünscht, dass die Dinge behoben werden, die wir damals bemängelt haben.
Und eine, denke ich, entscheidende Rolle kommt hier auch dem BSI zuteil, die eine Richtlinie schreiben für Menschen, die nun wirklich wahrscheinlich diese Anforderungen weder erfüllen können noch verstehen noch sonst was. Aber wem die niemals zu Leibe gerückt sind, sind die Hersteller dieser Software, die sich da gemütlich aufkaufen, Kartelle bauen, Monopolstellungen haben und uns mit diesem Quatsch versorgen und eine Wahl nach der anderen zu irgendwelchen Problemen führen. Und dann sagen, war der Anwender jetzt aber schuld oder sonst was.
Das BSI, was den Leuten empfiehlt, machst halt Telefon, machst halt E-Mail, statt einfach zu sagen, ihr stellt eine Software her, für diese Software gibt es eine Richtlinie und wir verlangen, dass die danach zertifiziert ist. Das haben die an anderen Stellen übrigens gemacht. Also sie sagen dann, was weiß ich, eine technische Richtlinie in Selbstzertifizierung und dann sagt man irgendwie, man erfüllt das und dann wird eben quasi eine Eigenbestätigung, dass man das getan hat, zur Anforderung für den Einkauf und zack kannst du so einen Markt sehr schnell dazu zwingen, sich ordentlich zu verhalten.
Das haben die aber nicht getan. Applaus für das BSI. Dann hätten wir noch one more thing.
Das war es der Dieter. Ja, leider funktioniert der Ton an meinem Rechner nicht. Den Jungs da oben trifft keine Schuld, es ist meine Schuld.
Wir müssen das jetzt ohne Ton zeigen, aber wir haben einen Link zu dem Video, in dem die nächsten Aspirationen der VoteGroup Da ist das Gefühl, dass wir dann mit den Verantwortlichen darüber reden werden, ob es nicht eine Zielsetzung sein könnte, eben auch für die wahlberechtigten Auslandsdeutschen dieses Thema digitales Wählen als Modellversuch, als eine weitere Distanzwahl einzusetzen. Richtig gute Idee. Richtig gut.
Hey, wenn wir diese Software auch noch ans Internet hängen, dann kann eigentlich nichts mehr schief gehen. Nein, kann nichts passieren. Ja, anstatt sich irgendwie mal darum zu kümmern, sich selbst auch einfach mal Richtlinien aufzuerlegen.
Also ich weiß nicht, mein Anspruch wäre jetzt, wenn ich der Typ da wäre, würde ich sagen, sag mal, können wir vielleicht mal irgendwie Richtlinien festlegen, was für Anforderungen es an Wahlsoftware gibt. Die haben ja sogar noch einen Verein gegründet hier. Wie heißt der nochmal? WahlsoftwareanwenderInnenGemeinschaft e.V. Der hieß ja irgendwie VoteManagerAnwenderInnenGemeinschaft, als sie da den Markt aufgekauft hatten, haben sie ihn WahlsoftwareanwenderInnenGemeinschaft genannt.
Und das Schöne an diesem Verein ist, also man kann sich da einen Vorstand wählen lassen. Allerdings nur, wenn man von der Comviz und der VoteGroup vorgeschlagen oder der VoteGroup vorgeschlagen wurde. Also ein super Verein, mit dem sie jetzt quasi lobbyieren gehen.
Versuchen, das hier durchzusetzen, anstatt sich erstmal darum zu bemühen, bevor wir uns auf dieses glatte Eis wagen, lass uns doch einfach auch mal von offizieller Stelle mal ein Okay holen, dass das, was wir hier tun, eigentlich auch in Ordnung ist. Nicht, dass uns das irgendwann auf die Füße fällt. Haben die kein Interesse dran.
Und ich glaube, jetzt haben wir die Umsatzgrafik nicht. Wir haben ein paar Millionen Umsatzsteigerungen seit 2020. Hätte ich auch keinen Bock drauf, mir dann noch irgendwie über die Sicherheit Gedanken zu machen.
Ja, wir wünschten uns, wir hätten bessere Nachrichten für euch. Leider müssen wir konstituieren, dass die Software, die aktuell im Einsatz ist, den Anforderungen des BSI nicht entspricht. Wir freuen uns auf die Ausreden zum 23.
Februar, warum man sie trotzdem einsetzt und auf eine weitere Einladung des BSI, ein fertiges Papier zu kommentieren 2027. Und bis dahin wünschen wir euch allzeit eine gute Wahl. Vielen Dank.
Für Fragen gerne an die Mikrofone kommen oder über die Signal Angels. Ich frage schon mal, wie heißt es Richtung Signal Angels? Es gibt Fragen aus dem Netz da draußen, dann gerne. Ja, das Internet möchte wissen, ob bekannt ist, was die Entwicklung gekostet hat.
Was die Entwicklung gekostet hat, weiß ich nicht, aber wahrscheinlich nicht viel. Was das Produkt inzwischen den Staat gekostet hat, ist auch nicht unbedingt bekannt. Weil die individuelle Verträge machen.
Aber der Umsatz, den sie da angeben, oder war das der Gewinn? Ich kann das immer nicht auseinanderhalten. North Data weiß Bescheid. Da kann man sehen, was man mit solcher Software für Profit machen kann.
Und das funktioniert ganz gut. Hi, danke. Ich habe eine ganz kurze Frage.
Habt ihr jetzt den PC Wahl analysiert über dieses ELECT IT Thema? Welche Software war das jetzt? Das war ELECT. Danke, dass du uns noch mal daran erinnert hast, das zu sagen. Das war die Software, die jetzt zur Vote Group GmbH gehört und deren Flaggschiff.
PC Wahl wurde 2020 der Support abgekündigt. Und das war das, wo der Herr Berninger sagte, ab jetzt machen wir sichere Anwendungsentwicklung und OWASP Top 10 2020. Das war jetzt der Vortrag von Linus Neumann und Thorsten Schröder mit dem Titel Der Thüring-Test für Wahlsoftware.
Am 23. Februar ist ja jetzt Bundestagswahl. Ein hilfreiches Werkzeug könnte vielleicht der Wahl-O-Mat sein.
Das ist eine Webseite, wo man verschiedene Thesen oder verschiedene Standpunkte präsentiert bekommt und seine eigene Position angeben kann, ob man total zustimmt oder total dagegen ist. Oder einem ist das ein bisschen egal. Und diese Antworten werden verglichen mit den Wahlprogrammen der Parteien.
Das heißt, wenn man seine Antworten gibt, sagt man erst mal, ja, ich habe diese oder jene Einstellung. Das finde ich gut, das finde ich schlecht. Und am Ende wird eine Übereinstimmung berechnet, inwieweit bestimmte Parteien so ein Meinungsbild, so eine Einstellung auch repräsentieren in ihrem Wahlprogramm.
Das sind natürlich jetzt Wahlprogramme. Das heißt, es ist nicht das, was wirklich real als Politik dann umgesetzt werden wird. Schon allein, wenn Parteien sich zusammentun, eine Koalition bilden, dann wird natürlich nicht jede einzelne Position jeder Partei exakt auch in der realen Politik abgebildet werden können.
Aber das ist wenigstens schon ein Schritt, um eine Idee zu kriegen, was sagen die Parteien denn wirklich im Detail. Dieser Wahl-O-Mat wurde von der Bundeszentrale für politische Bildung umgesetzt. Das heißt, die haben das aufgebaut und haben auch die Thesen ausgewählt und haben auch geguckt, dass das auch technisch funktioniert.
Wenn wir uns auf der Webseite das angucken, gibt es auch ein paar Antworten auf Fragen, die man vielleicht an den Wahl-O-Mat stellen möchte. Zum Beispiel, wer hat die Thesen formuliert und ausgewählt? Also von der Webseite des Wahl-O-Mat. Die Thesen des Wahl-O-Mat werden von einem Redaktionsteam aus Jungwählern, aus ganz Deutschland, Experten aus Wissenschaft und Bildung, sowie den Verantwortlichen der Bundeszentrale für politische Bildung entwickelt und ausgewählt.
Die Thesen werden in einem mehrstufigen Verfahren formuliert und ausgewählt. Für die Wahl-O-Mat-Redaktion zur Bundestagswahl 2025 konnten sich alle Wahlberechtigten bis 26 Jahre bewerben. Anschließend wurde eine möglichst vielfältige Gruppe aus 24 Jungwählern ausgewählt.
Sie wählen gemeinsam mit Experten aus Wissenschaft und Bildung sowie den Verantwortlichen der Bundeszentrale für politische Bildung die 36-köpfige Wahl-O-Mat-Redaktion, die in einem dreitägigen Workshop 80 Thesen erarbeitete. Grundlage der Thesen sind die Wahlprogramme aller zur Wahl zugelassenen Parteien. Diese Thesen wurden danach durch alle Parteien beantwortet.
Im Anschluss wurden in einem zweiten Workshop, dem Auswahl-Workshop, 38 Thesen für den Wahl-O-Mat von der gesamten Redaktion ausgewählt. Dabei wurden jene Thesen ausgewählt, die sowohl wichtige Themen der Wahl aufgreifen als auch von den Parteien kontrovers beantwortet wurden. So sind also diese Thesen auf der Seite des Wahl-O-Mats zusammengekommen.
Jetzt muss man natürlich auch verstehen, wie das Ganze funktioniert, insofern wer dahinter steht. Der Wahl-O-Mat wurde von der Bundeszentrale für politische Bildung herausgegeben und betrieben und das ist eine nachgeordnete Behörde des Innenministeriums. Es gibt hier einen Erlass über die Bundeszentrale für politische Bildung, 24.
Januar 2001 und dort ist auch ein bisschen geregelt, wie die das machen sollen und wie das funktionieren soll. Unter anderem lesen wir dort in § 2 Die Bundeszentrale hat die Aufgabe, durch Maßnahmen der politischen Bildung Verständnis für politische Sachverhalte zu fördern, das demokratische Bewusstsein zu festigen und die Bereitschaft zur politischen Mitarbeit zu stärken. Also insofern ist das jetzt eine Institution, die dafür aufgestellt ist, damit sich mehr Leute für Wahlthemen interessieren und da auch eine fundierte eigene Meinung bilden können und eben in einer Wahl ausdrücken können.
Dann haben wir noch einen zweiten Vorschlag, der vielleicht helfen kann, die Frage zu beantworten, welche Partei repräsentiert meine Meinung am ehesten und zwar der Real-O-Mat. Das ist eine andere Webseite, da geht es darum, dass zu bestimmten Entscheidungen, die in der Vergangenheit abgestimmt wurden, also im Bundestag, dass man das vergleichen kann mit seinen eigenen Positionen. Das heißt, der Real-O-Mat guckt nicht, was sagen die Parteiprogramme, sondern der guckt, wie haben die Parteien abgestimmt.
Auf der Webseite lesen wir zum Ziel des Real-O-Mat. Der Real-O-Mat bietet die Möglichkeit, das tatsächliche Abstimmungsverhalten aller Parteien im Bundestag mit den eigenen Einstellungen zu ausgewählten politischen Forderungen abzugleichen. Dafür können sich Nutzer durch 20 Thesen klicken, die verschiedene wichtige Themen der letzten Legislaturperiode abdecken.
Im Unterschied zum Wahl-O-Mat, der sich auf eigene Aussagen der Parteien stützt, beruht der Real-O-Mat auf dem tatsächlichen Abstimmungsverhalten der Bundestagsfraktionen zu Anträgen und Gesetzentwürfen. Damit sollen Diskrepanzen zwischen dem tatsächlichen Abstimmungsverhalten der Parteien und den Aussagen in den Parteiprogrammen transparent gemacht werden. Die Auswahl der Themen und Bewertung des Abstimmungsverhaltens.
Die Thesen des Real-O-Mat wurden aus Gesetzesentwürfen und Anträgen abgeleitet, über die in der Legislaturperiode von September 2021 bis Dezember 2024 im Bundestag abgestimmt wurde. Dabei wurden Themen ausgewählt, die für breite Teile der Bevölkerung relevant sind und öffentlich diskutiert wurden. Das schreibt jetzt die Webseite des Real-O-Mat und damit habt ihr auch eine Möglichkeit zu gucken, wie stimmen denn wirklich die Parteien ab, die Fraktionen ab und inwieweit stimmt das denn mit eurer Meinung oder Einstellung überein.
Und da könnt ihr vielleicht auch wirklich herausfinden, wen ihr vielleicht in der Vergangenheit gewählt hättet, um das umzusetzen, was ihr gerne wollt, und dann natürlich davon ausgehend, dass Parteien natürlich auch einer groben Linie folgen, dass sie möglicherweise in vergleichbaren Fragen in der Zukunft auch vergleichbar abstimmen werden. Der Real-O-Mat wird von dem Projekt FragDenStaat zur Verfügung gestellt. Die sind ein Projekt der Open Knowledge Foundation Deutschland e.V., das ist ein gemeinnütziger Verein, die haben auch andere Projekte, wobei es darum geht, Transparenz in politische und administrative Vorgänge zu bringen.
Das sind also Werkzeuge, mit denen ihr vielleicht herausfinden könnt, was sind eure Positionen, was sind die Positionen der Parteien und welche Parteien sind möglicherweise eurer Position am nächsten. Wir haben vorhin die Wahlhelfer angesprochen. Das sind Freiwillige, die unterstützen, dass die Wahl ordentlich durchgeführt werden kann.
Das heißt, die sind tagsüber im Wahllokal, die sind vielleicht schon davor unterwegs und bereiten Material vor und die sind auch dafür da, um auch nachher helfen aufzuräumen. Wenn ihr Interesse daran habt, fragt ruhig mal bei eurer Gemeinde nach. Zum einen kann man da einen guten Einblick gewinnen, wie so eine Wahl wirklich durchgeführt wird und zum anderen könnt ihr natürlich mithelfen, dafür zu sorgen, dass Wahlen auch in Zukunft stabil durchgeführt werden.
Das war jetzt das politopia-magazin. Natürlich könnt ihr unsere Sendung nachhören auf unserer Webseite politopiamagazin.de und dort sind auch in den Shownotes, also in den Sendungsnotizen, alle Links versammelt zu den Quellen, die wir auch heute verwendet haben. Das heißt links zum Realomat, links zum Wahlomat und natürlich auch zu dem Vortrag, den wir heute gehört haben.
Wir freuen uns, dass ihr dabei wart. Schön, dass ihr zugehört habt. Wir hören uns wieder nächste Woche, jeden Mittwoch 16 Uhr.
Bis dann.