Update 5.11.18, mittags: Ich wurde von einem Sicherheitsexperten und kurz darauf von Herrn Thomas Hofer, technischer Experte beim Kanton Genf, kontaktiert und habe im Bereich “Wieso sagt der CCC denn, der Kanton Genf habe nichts dagegen getan, obwohl es Gegenmassnahmen gebe?” ein Update zu einerseits HSTS und andererseits Status Codes eingefügt. Diese Aktualisierungen sind gekennzeichnet.
Am Donnerstagmorgen wurde ich über Umwege vom Chaos Computer Club Schweiz (CCC), repräsentiert durch Volker Birk, kontaktiert. Er habe sich das Genfer E-Voting-System zum ersten Mal genau angeschaut und innert kürzester Zeit eine Schwachstelle entdeckt.
Zusammen mit meinem TV-Kollegen Fabian von Allmen habe ich die Vorwürfe im Laufe des Donnerstags und des Freitags erhärtet und den Kanton Genf konfrontiert. Die Antwort haben wir vollumfänglich mitveröffentlicht.
Am frühen Freitagabend folgte die Publikation auf srf.ch und später in der Tagesschau-Hauptausgabe (Beitrag im Artikel integriert). Im Laufe des Samstags und Sonntags haben verschiedene Medien das Thema aufgenommen und über die Enthüllung berichtet.
Da die Berichterstattung in den Massenmedien (wozu ich selbstverständlich auch meine Arbeitgeberin, die SRG, zähle) naturgemäss vereinfacht und verkürzt ist, möchte ich an dieser Stelle noch eine journalistische Einschätzung nachreichen, die etwas mehr ins Detail geht – und hoffentlich offene Fragen klären kann.
Ich hoffe, damit einen (noch) fundierte(re)n Beitrag zum gesellschaftlichen Diskurs zu leisten, und eine weitere Grundlage zur objektiven und emotionsfreien Diskussion von E-Voting-Systemen zu schaffen.

https://pxhere.com/en/photo/918274
Handelt es sich um eine Sicherheitslücke? Eine Schwachstelle? Oder ist das alles etwas aufgeblasen?
Ich persönlich finde, das genau Wording spielt eine untergeordnete Rolle. Der Kanton Genf und zum Beispiel die Staatsschreiberin des Kanton Basel-Stadt möchten nicht von einer Sicherheitslücke sprechen. Auch der CCC war zurückhaltend – eine Sicherheitslücke töne zu fest nach etwas, das man leicht stopfen könne.
In der Tat lässt sich die Schwachstelle (der Begriff, den ich favorisiere) nicht so leicht beheben. Denn das Problem, das der Chaos Computer Club veranschaulicht hat, ist dem momentanen Zustand des Internets inhärent. Das Adressauflösung-System DNS ist – wie der CCC im Interview sagt – seit Jahrzehnten verwundbar. Man kann schon fast von insecurity by design reden. Es ist und bleibt einfach, Internetnutzer unbemerkt auf falsche IP-Adressen umzuleiten, wenn man ihren sogenannten DNS-Cache vergiftet. Das scheint relativ einfach zu gehen, und wird auch gemacht. Ohne sich gross in Systeme hacken zu müssen. Besonders leicht fielen solche Angriffe sogenannten state actors wie der NSA und Konsorten, sagt der CCC.
Aus meiner Sicht ist das glaubwürdig. Man kann und darf solche Bedenken nicht als Verschwörungsgeschwätz abtun. Oder: Was (technisch) möglich ist, wird gemacht.
Um es zusammenzufassen: Die Schwachstelle – der konkrete Angriffsvektor «DNS Cache Poisoning» – ist systeminhärent, seit längerem bekannt (auch den Betreibern anderer E-Voting-Systeme oder Browser-Applikationen) und nicht so leicht behebbar.
Wieso sagt der CCC denn, der Kanton Genf habe nichts dagegen getan, obwohl es Gegenmassnahmen gebe?
Das ist der journalistisch schwierigste Part der ganzen Berichterstattung. Einerseits ist das Problem systeminhärent und schwierig lösbar – weswegen man dem Kanton Genf und anderen E-Voting-Betreibern, die genau gleich betroffen sind, auch nur ganz gezielt einen konkreten Vorwurf machen kann. Andererseits gibt es tatsächlich Gegenmassnahmen, die der Kanton Genf unterlassen hat. Diese dem Leser, der Zuschauerin in aller Genauigkeit und konkret zu veranschaulichen, hätte den Rahmen der Berichterstattung gesprengt. Deswegen hole ich es jetzt nach.
- DNSSec. Der Standard gilt als mögliche Lösung für das DNS-Cache-Poisoning-Problem. Nur setzen noch zu wenig Schweizer Provider darauf, laut CCC verzichtet zum Beispiel Salt im Moment. Damit DNSSec funktioniert, müssten Provider und Server-Betreiber den Standard implementieren. Der Kanton Genf macht das nicht. Der CCC argumentiert: Würde der Kanton es implementieren, sei zumindest ein Teil der Stimmbürger vor dieser einen Attacke geschützt. Nämlich die bei einem «sicheren» Provider.
- HTTP Strict Transport Security (HSTS). Der eigentliche Angriff, den der CCC demonstriert hat, setzt darauf, dass der Stimmbürger die URL evote-ch.ch ohne vorangestelltes https:// eingibt. Nur so kann eine serverseitige Umleitung (= seitens des Angriffs-Servers, auf den man wegen des vergifteten DNS-Caches gelangt) auf https://evote-net.ch erfolgen. Würde der Kanton Genf HSTS implementieren, dann würden die Stimmbürger, die bereits einmal die korrekte Adresse https://evote-ch.ch eingegeben hätten, bei der Eingabe von evote-ch.ch (ohne https://) sofort auf https://evote-ch.ch verwiesen werden. Ohne dass eine Anfrage ihren Computer verlässt – der Browser haut den Stimmbürgern sozusagen auf die Finger und korrigiert die URL gleich selber, bevor er eine Anfrage losschickt. Zum Zeitpunkt der Demonstration hatte der Kanton Genf HSTS nicht implementiert. Technisch schwierig ist diese Implementation allerdings nicht. Update: Ein Sicherheitsexperte, der mich dazu nach der Veröffentlichung dieses Blogposts kontaktiert hat, schreibt, dass der Kanton GE zumindest Stand heute HSTS implementiert, was ich nun selber überprüfen konnte. Der CCC sagt, das wäre zuvor noch nicht der Fall gewesen (worauf ich mich in der obigen Aussage verlassen habe). Aber: Stand heute (5.11.18) erscheint https://evote-ch.ch nicht in der von den wichtigsten Browsern unterstützten Preload-Liste. Wäre die Domain in dieser Liste, würde der User von Anfang an (ohne vorher einmal auf der “sauberen” Version der Domain gewesen zu sein) auf die richtige Domain geleitet. Fast gleichzeitig hat mich noch ein Mail von Herrn Thomas Hofer, technischer Experte beim Kanton Genf, erreicht. Er schreibt, dass der Kanton Genf HSTS seit 2016 umsetze. Hofer bestätigt aber auch, dass kein Preloading stattfindet.
- 301 statt 302. Hierbei handelt es sich um HTTP-Codes, die den Browser dazu bringen, permanent beziehungsweise temporär auf die https-Variante umzuleiten. Die HTTP-Codes kommen vom Server des Kanton Genfs. Auch hier können nur Stimmbürger vor der Attacke geschützt werden, die bereits einmal auf der unvergifteten Domain evote-ch.ch (mit oder ohne https) waren – und zwischenzeitlich nicht ihren Browser-Cache gelöscht haben. 301 ist sicherer als 302, da eben eine permanente Weiterleitung, die nicht ausläuft, auf die sichere Version https://evote-ch.ch veranlasst wird. Der CCC konnte nachweisen, dass der Kanton Genf just während der Demonstration (während den TV-Aunahmen im Clublokal in Zürich) den Code von 302 auf 301 umschaltete. Update: Der oben erwähnte Sicherheitsexperte meint dazu: “Dass sie während der Recherche dieses Detail des Server-Verhaltens umstellen hielte ich für sehr merkwürdig. Weitaus wahrscheinlicher ist, dass der Server in subtil unterschiedlichen Situationen mit einem anderen Status Code reagiert.” Für mich tönt das ebenfalls plausibel, die richtige Antwort kenne aber auch ich nicht. Thomas Hofer, technischer Experte beim Kanton Genf, verneint jedoch, dass “an diesem Wochenende eine Änderung an den Status Codes genehmigt und ausgeführt wurde.”
Um es zusammenzufassen: Ja, der Kanton Genf hat aus meiner Sicht bei Gegenmassnahmen «Luft nach oben». Diese zu implementieren ist aber ein nur ein Tropfen auf den heissen Stein, der systeminhärenten Unsicherheit des DNS-Systems. Ein paar Stimmbürger könnte man besser schützen – viele andere aber auch nicht.
Der CCC hat die Attacke ja nicht zu Ende geführt, hat keine Stimmmanipulationen demonstriert?
Das spielt überhaupt keine Rolle. Wenn es einem Angreifer gelingt, man in the middle zu sein, hat er so etwas wie den Universalschlüssel zu allen Daten gefunden – und dem CCC ist das gelungen. Was es nun noch braucht, ist das Unwissen des Stimmbürgers (dazu unten mehr). Je grösser dieses Unwissen, oder diese Gutgläubigkeit, desto grösser der potenzielle Schaden. Oft werden Prüfcodes als Gegenmassnahme gegen Manipulation genannt. Nochmal: Wenn der Angreifer man in the middle ist, dann ist auch deren Nutzen beschränkt. Denn der Angreifer kann den Nutzer zum gröbsten Unfug bewegen, wenn er es geschickt macht.
Um es zusammenzufassen: Eine funktionierende Stimmmanipulations-Maschinerie aufzubauen ist eine Frage der Ressourcen, nicht der Möglichkeiten, und bei dieser Debatte nicht relevant.
Also: Alter Wein in neuen Schläuchen?
Gewissermassen ja. Die Schläuche waren aber nötig. Das Problem war den Betreibern – und gewissen Teilen der Politik, die sich vielleicht einmal vertieft damit auseinandergesetzt haben – zwar bekannt. Der CCC hat das Problem jedoch konkretisiert, veranschaulicht und gewisse Unterlassungen des Kantons Genf verdeutlicht. Aus meiner Sicht war das eine Berichterstattung wert.
Was stimmt: Eine eigentliche technische Sicherheitslücke, für die das E-Voting-System selber vollumfänglich verantwortlich ist, hat bisher niemand gefunden*. Lässt man den Nutzer, eine wichtige Komponente des Systems, ausser vor, ist die Eigenentwicklung des Kantons nach aktuellem Kenntnisstand «sicher». Nach aktuellem Kenntnisstand.
Aber: Dass das System inhärente Schwachstellen hat, hat die Demonstration des CCC ganz klar verdeutlicht. Diese Schwachstellen sind absolut gravierend, denn sie zielen zu fast 100 Prozent auf die Stimmbürgerinnnen und Stimmbürger.
Gerade diese menschliche Komponente macht sie so gefährlich. Bei DNS-Cache-Poisoning handelt es sich, ähnlich wie bei Phishing, um einen Angriffsvektor, der die Gutgläubigkeit, Naivität und technische Ignoranz von Menschen ausnützt. Solches social engineering gehört seit Jahrzehnten zu den günstigsten und einfachsten Angriffsmethoden von Hackern.
Um es zusammenzufassen: Diese Schwachstelle lässt sich also nicht so leicht stopfen wie eine Sicherheitslücke, wie ein konventioneller Bug, der wegen Nachlässigkeit oder Ignoranz enstanden ist. Da müssen wir uns nichts vormachen. Diese Erkenntnis muss Teil der öffentlichen Debatte sein – eine journalistische Berichterstattung ist also rechtzufertigen.
Danke fürs Lesen – gerne beantworte ich Fragen zur Recherche, soweit ich kann, in den Kommentarfeldern. Auch auf die Diskussion freue ich mich.
PS: Ich habe heute morgen brieflich abgestimmt. Das Ausfüllen der Unterlagen hat mich weniger als eine Minute gekostet. Der Gang zum Briefkasten war eine willkommene Bildschirm-Pause.
* Mit einer Ausnahme. Wie lächerlich ist das eigentlich, dass der Journalist dafür auch noch verurteilt wurde?
Update 30.11.2018: Ein Sicherheitsexperte hat sich noch einmal den technischen Implikationen (insb. HSTS) angenommen. Obwohl ich seine Kritik an der journalistischen Berichterstattung nicht teile, finde ich den Artikel aus einer technischen Perspektive sehr aufschlussreich.
Pingback: Unsicheres E-Voting: Abmahnung für den Chaos Computer Club aus dem Kanton Genf | Steiger Legal
Pingback: Motion zum Stoppen des Projekts „Ausdehnung von E-Voting“ – Michael Wüthrich