1 00:00:00,000 --> 00:00:14,390 *34C3 Vorspannmusik* 2 00:00:14,390 --> 00:00:18,960 Herald: So, ums ganz schnell zu machen, mein bester Freund - Hallo, Silvan! - sagte 3 00:00:18,960 --> 00:00:25,599 zu dem Thema, was hinter uns an der Wand steht: "Der geilste Hack und geilste Arschtritt 4 00:00:25,599 --> 00:00:33,210 seit der Post". So sehe ich das auch. Linus, Thorsten, Martin, zum PC-Wahl-Hack. 5 00:00:33,210 --> 00:00:39,990 *Applaus* 6 00:00:39,990 --> 00:00:45,519 Linus: Schönen guten Abend, wir freuen uns, dass ihr hier seid, um uns zuzuhören. 7 00:00:45,519 --> 00:00:50,120 Ich bin der Linus. Meine Hobbys sind Reiten, Schwimmen, Lesen und Hacken. 8 00:00:50,120 --> 00:00:54,210 Thorsten: Ich bin Thorsten und ich mach gern Sachen kaputt. 9 00:00:54,210 --> 00:00:58,239 Martin: Und ich bin Martin, heute aus Darmstadt und ich bin interessierter Bürger. 10 00:00:58,239 --> 00:00:59,239 *Applaus* 11 00:00:59,239 --> 00:01:08,829 L: Vielen Dank. Das ist dein Applaus, Martin. Wir haben ein Wahlprogramm 12 00:01:08,829 --> 00:01:13,570 mitgebracht. Wir führen kurz das Thema ein. Wir stellen euch ein paar Angriffs- 13 00:01:13,570 --> 00:01:18,759 Szenarien vor, setzen uns dann mit einigen Versuchen auseinander, diese zu fixen und 14 00:01:18,759 --> 00:01:23,250 kommen zu einem Fazit. Zunächst stellt sich ja überhaupt die Frage: Wofür braucht 15 00:01:23,250 --> 00:01:29,091 man eine Wahl-Software? Gewählt wird doch auf Stift und Papier? Nun, die Wahl muss 16 00:01:29,091 --> 00:01:33,229 organisiert werden, sie muss erfasst werden und sie muss ausgewertet werden. Am 17 00:01:33,229 --> 00:01:36,770 Ende muss da eine Zahl stehen und das Problem, was hier zu lösen gilt, ist 70 18 00:01:36,770 --> 00:01:41,310 Wahllokale - 70.000 Wahllokale bundesweit bei so einer Bundestagswahl, 16 19 00:01:41,310 --> 00:01:47,310 Bundesländer mit eigenen Regelungen und da dann eben Gemeinde-Wahlbezirke, die ihre 20 00:01:47,310 --> 00:01:50,550 Schnellmeldungen an einen Gemeindewahlleiter geben, der 21 00:01:50,550 --> 00:01:54,810 Gemeindewahlleiter übermittelt sie einen Kreiswahlleiter. Der wiederum ermittelt 22 00:01:54,810 --> 00:01:57,689 sie... übermittelt sie an den Landeswahlleiter und dann irgendwann mit 23 00:01:57,689 --> 00:02:02,251 allen diesen möglichen Ergebnissen sitzt der Bundeswahlleiter und sagt, so und so 24 00:02:02,251 --> 00:02:07,641 lautet das vorläufige Ergebnis. Das macht der meistens wenige Minuten nach Ende der 25 00:02:07,641 --> 00:02:13,750 Wahl, aber wenige Stunden danach kommen dann die vorläufigen Ergebnisse. Das ist 26 00:02:13,750 --> 00:02:21,080 quasi die Schnellmeldung. Wenn die Wahl ausgezählt wird mit Papertrail und das 27 00:02:21,080 --> 00:02:23,530 Ganze irgendwie übermittelt wird, dann haben wir einfach mal zwischen 28 00:02:23,530 --> 00:02:27,080 Gemeindewahlbezirk und Gemeindewahlleiter nen Tag und so weiter. Das summiert sich 29 00:02:27,080 --> 00:02:31,660 locker auf über zehn Tage, bis es wirklich das amtliche Endergebnis gibt. Deswegen 30 00:02:31,660 --> 00:02:36,800 machts natürlich Sinn, hier eine Software einzusetzen. Da wir aber in einem 31 00:02:36,800 --> 00:02:41,250 föderalen Staat leben, hat dann jedes Bundesland seine eigene Vorliebe, der 32 00:02:41,250 --> 00:02:44,690 Bundeswahlleiter hat ne Vorliebe und dann können die Gemeinden teilweise sich auch 33 00:02:44,690 --> 00:02:48,790 noch etwas aussuchen. Wir haben eine dieser Softwares angeschaut, und zwar die 34 00:02:48,790 --> 00:02:54,380 Software PC-Wahl, die laut Hersteller- Angaben in allen Flächenbundesländern bei 35 00:02:54,380 --> 00:02:59,661 allen möglichen demokratischen hohen Akten zum Einsatz kommt, und laut Hersteller 36 00:02:59,661 --> 00:03:05,080 verantwortlich ist für bis zu 33 Millionen Stimmen. Aber was wir euch heute erzählen, 37 00:03:05,080 --> 00:03:10,700 trifft größtenteils auch auf Alternativen zu, wie dieses Programm IVU-Elect, das von 38 00:03:10,700 --> 00:03:14,320 unseren Kollegen in den Niederlanden schon auseinandergenommen wurde, oder den Vote- 39 00:03:14,320 --> 00:03:17,480 Manager oder das Produkt mit dem vertrauensvollen und wohlklingenden Namen 40 00:03:17,480 --> 00:03:23,270 OK-Wahl. In Quality-Land ist alles okay. 41 00:03:23,270 --> 00:03:29,060 Natürlich haben sich Leute schon darüber Gedanken gemacht, wie kommen wir denn an 42 00:03:29,060 --> 00:03:33,260 diese Wahl-Software, was ist das denn da? Da rechnen Computer Ergebnisse zusammen 43 00:03:33,260 --> 00:03:36,570 und dann wird das irgendwie bekanntgegeben. Da hätte ich doch mal 44 00:03:36,570 --> 00:03:40,430 Interesse, diese Software anzuschauen. Da hat sich ein junger Mann bis vor das 45 00:03:40,430 --> 00:03:47,630 Landesverfassungsgericht geklagt. Das hat die Beschwerde zurückgewiesen, denn also 46 00:03:47,630 --> 00:03:51,570 eine Überprüfung durch die Öffentlichkeit wäre hier nicht vorgesehen, es reicht, 47 00:03:51,570 --> 00:03:54,110 wenn der Landeswahlleiter sich das anschaut. So viel Transparenz haben wir 48 00:03:54,110 --> 00:03:56,390 dazu. T: Außerdem versteht's sowieso keiner. 49 00:03:56,390 --> 00:04:00,520 L: Das versteht eh keiner. Und das zu hacken... Wieso sollte jemand eine Wahl 50 00:04:00,520 --> 00:04:06,390 hacken? Wir haben diese Wahl... diese Software in unsere Finger bekommen. Und 51 00:04:06,390 --> 00:04:10,920 das sind jetzt... Also, das sind Hersteller-Screenshots, die hätten wir 52 00:04:10,920 --> 00:04:15,710 auch anfertigen können. Und unsere erste Reaktion, als wir jetzt diese Software vor 53 00:04:15,710 --> 00:04:16,709 uns hatten... 54 00:04:16,709 --> 00:04:20,320 T: Das passt auch zu dem Logo, das ist nicht selbstgebaut. 55 00:04:20,320 --> 00:04:22,740 *Applaus* 56 00:04:22,740 --> 00:04:27,470 L: Es war einfach von vornherein klar, das wird jetzt nicht angenehm. 57 00:04:27,470 --> 00:04:31,620 *Lachen* L: Und ich würde sagen, einen Punkt kann 58 00:04:31,620 --> 00:04:36,430 man dieser Software auf jeden Fall geben. Das Risiko, dass sie gehackt wird, ist 59 00:04:36,430 --> 00:04:41,490 immer noch viel geringer, als dass man sie fehlbedient oder wahnsinnig wird beim 60 00:04:41,490 --> 00:04:43,490 Versuch. *Lachen* 61 00:04:43,490 --> 00:04:48,070 L: Hier sieht man, wie so ne Gemeindewahl angelegt werden kann, das ist ganz intuitiv. 62 00:04:48,070 --> 00:04:49,940 T: Angenehmes User-Interface. 63 00:04:49,940 --> 00:04:55,640 L: Hier sieht man, wie so die Erststimmen ausgezählt werden. Nicht zu übersehen, 64 00:04:55,640 --> 00:05:01,270 hier, das User-Interface, das die noch nicht ausgezählten Bereiche in rot färbt, 65 00:05:01,270 --> 00:05:06,880 dass man sieht, ist noch nicht soweit. Und hier haben wir einen Check, wo dann so'n 66 00:05:06,880 --> 00:05:09,560 paar Summen verglichen werden und gesagt wird: "Hier, die Zahlen, die ihr da 67 00:05:09,560 --> 00:05:13,260 addiert habt, die kommen nicht so ganz zusammen." Das heißt, man muss dann, wenn 68 00:05:13,260 --> 00:05:15,150 die Zahlen nicht ganz stimmen, noch so lange ein bisschen daran herum 69 00:05:15,150 --> 00:05:20,600 korrigieren, bis alle Felder grün sind. Aber es gibt ein 70 00:05:20,600 --> 00:05:25,000 Betriebssicherheitskonzept. Und Sicherheit ist ja so das, wofür wir uns 71 00:05:25,000 --> 00:05:27,030 interessieren, da haben wir gedacht, ah gucken wir mal. 72 00:05:27,030 --> 00:05:28,800 T: Die interessieren sich offenbar auch für Sicherheit. 73 00:05:28,800 --> 00:05:33,090 L: Die interessieren sich für Betriebssicherheit, also die richtige 74 00:05:33,090 --> 00:05:36,320 Schuhwerk, Helm und so weiter. Ist auch klar, das brauchen wir auch, 75 00:05:36,320 --> 00:05:41,770 Schutzhandschuhe. Nein, Spaß beiseite. Der Hersteller wirbt mit einem indexfreien 76 00:05:41,770 --> 00:05:46,500 Datenbankkonzept. Und ich dachte, "Boah, Wahnsinn, indexfreie Datenbank! Was ist 77 00:05:46,500 --> 00:05:51,060 das?" Ja, es werden Dateien in einen File- System geschrieben. 78 00:05:51,060 --> 00:05:53,330 T: Irre. *Lachen* 79 00:05:53,330 --> 00:05:58,770 L: Und die werden redundant geschrieben, denn die gleichen Daten werden in zwei 80 00:05:58,770 --> 00:06:02,240 verschiedenen Formaten in unterschiedliche Ordner geschrieben. Das ist redundante 81 00:06:02,240 --> 00:06:08,210 Speicherung. Und man kann das auch sogar synchronisieren. Also, die Datei- 82 00:06:08,210 --> 00:06:12,230 Synchronisationsfunktion ermöglicht es, eine oder mehrere Kopien einer 83 00:06:12,230 --> 00:06:16,110 Wahlergebnisdatei mit dem Original automatisch abzugleichen. Und ich dachte, 84 00:06:16,110 --> 00:06:19,780 "Boah, Syncing-Konflikte und so bei einer Wahl will man echt nicht haben." Dachten 85 00:06:19,780 --> 00:06:23,930 die sich auch, die legen einfach die Dateien alle auf ein SMB-Share und dann 86 00:06:23,930 --> 00:06:27,450 geht's rund. *Lachen* 87 00:06:27,450 --> 00:06:32,210 Kommen wir... *Applaus* 88 00:06:35,450 --> 00:06:39,080 L: Also, man könnte, also böse Zungen behaupten, wir haben uns das nur 89 00:06:39,080 --> 00:06:42,040 angeschaut, weil es uns einfach auf den Geist gegangen ist, ein Jahr lang nur 90 00:06:42,040 --> 00:06:45,410 damit belästigt zu werden, dass irgendwie Russland die Wahl hacken würde, und dann 91 00:06:45,410 --> 00:06:49,960 haben wir halt gedacht, dann schauen wir doch mal wie. Wichtig ist nochmal einmal 92 00:06:49,960 --> 00:06:52,470 zu betonen: Es gibt zwei Übermittlungsmodi, das vorläufige 93 00:06:52,470 --> 00:06:56,920 Endergebnis - und das ist das, wovon wir heute sprechen - und es gibt noch das 94 00:06:56,920 --> 00:07:01,930 amtliche Endergebnis, was zehn Tage später veröffentlicht wird. Alles, was wir euch 95 00:07:01,930 --> 00:07:06,690 jetzt erzählen, trifft nur zu für das vorläufige Ergebnis. Das amtliche 96 00:07:06,690 --> 00:07:14,870 Endergebnis bei der Bundestagswahl 2017 kam 18 Tage später raus. Da fragt man sich 97 00:07:14,870 --> 00:07:19,300 natürlich, wie kommt denn so'n Hacker dazu, sich das anzuschauen. Und das 98 00:07:19,300 --> 00:07:22,420 erklärt am liebsten Martin, der interessierte Bürger. 99 00:07:22,420 --> 00:07:25,580 M: Ja, also mich hat's schon interessiert, aber man kommt natürlich nicht so direkt 100 00:07:25,580 --> 00:07:28,910 da drauf. Es müssen schon günstige Umstände vorliegen. Das eine war die 101 00:07:28,910 --> 00:07:33,770 Bundestagswahl und das andere war die Existenz eklatanter Probleme bei diesem 102 00:07:33,770 --> 00:07:38,870 Wahlprogramm hier. Das Erste, was wir festgestellt haben, war: Solche Wahldaten, 103 00:07:38,870 --> 00:07:42,419 haben wir vorhin gesehen, werden übertragen in so ner Kette von der 104 00:07:42,419 --> 00:07:47,810 Gemeinde auf den Kreis auf das Land und so weiter. Und was passiert denn einem 105 00:07:47,810 --> 00:07:51,090 Wahlabend, wenn wir in der Gemeinde sitzen: Der Gemeindewahlleiter bekommt die 106 00:07:51,090 --> 00:07:58,300 Ergebnisse von den ganzen Wahllokalen. Dann starten die Helfer des Wahlleiters in 107 00:07:58,300 --> 00:08:03,990 der Gemeinde ihr PC-Wahl-Programm. Und das wird alles von so ner SMB-Share gestartet, 108 00:08:03,990 --> 00:08:07,770 aus dem Netzwerk heraus und dann tippen sie fleißig die Schnellmeldungen ein, die 109 00:08:07,770 --> 00:08:11,140 aus den Wahllokalen eingehen. Die Ergebnisse, die sie dann sammeln, die 110 00:08:11,140 --> 00:08:16,990 müssen irgendwo hin. Die werden hochgeladen ins Internet auf nen FTP- 111 00:08:16,990 --> 00:08:22,120 Server. Da steht ein FTP-Server und der sammelt die ganzen Ergebnisse der 112 00:08:22,120 --> 00:08:30,010 einzelnen Gemeinden ein. Und der steht im Internet und in Hessen – ich komme aus 113 00:08:30,010 --> 00:08:34,349 Darmstadt, deswegen Hessen, einzige Ursache – wird der von der ekom21 114 00:08:34,349 --> 00:08:41,110 betrieben, lokaler IT-Dienstleister dort, kommunaler, und ekom21 hatte dem 115 00:08:41,110 --> 00:08:45,730 interessierten Bürger die Anleitung zur Verfügung gestellt, wie man diese Daten 116 00:08:45,730 --> 00:08:52,619 hochlädt; waren auch die Passwörter drinne, waren Konfigurationsdateien mit 117 00:08:52,619 --> 00:08:57,569 eben entsprechenden Daten, die einem ermöglicht haben, im Sinne der Bürger- 118 00:08:57,569 --> 00:08:59,730 Transparenz, diesen Prozess komplett nachzuvollziehen. 119 00:08:59,730 --> 00:09:11,199 *Lachen, Applaus* 120 00:09:11,199 --> 00:09:13,959 So, was braucht es dafür, um jetzt hier 121 00:09:13,959 --> 00:09:18,039 diesen Prozess anzugreifen. Nun man braucht Google, man muss zum Beispiel nach 122 00:09:18,039 --> 00:09:22,389 "Wahl Bundestagswahl Hessen" googeln, Texteditor, um diese Dateien sich 123 00:09:22,389 --> 00:09:26,309 anzusehen und dann noch, ja ein Debugger ist vielleicht ganz hilfreich, wenn man ein 124 00:09:26,309 --> 00:09:31,879 bisschen tiefer einsteigen möchte. Und all das ermöglicht dann Zugang auf diesen FTP- 125 00:09:31,879 --> 00:09:35,749 Server. Und wir haben uns angeschaut und da liegen tatsächliche Ergebnisse drauf 126 00:09:35,749 --> 00:09:40,689 von Wahlen, die reichen bis viele Jahre zurück, kleinere Wahlen, 127 00:09:40,689 --> 00:09:46,180 Bürgermeisterwahl, Landeswahlen, Bundestagswahlen. Da stehen die 128 00:09:46,180 --> 00:09:50,750 Zugangsdaten für diesen Server, die hatten wir dann auch in der Hand. Kleines 129 00:09:50,750 --> 00:09:56,989 Problem: Diese IP ist ne lokale Adresse. Da brauchte man dann noch Zugangsdaten für 130 00:09:56,989 --> 00:09:59,639 das VPN. 131 00:10:00,664 --> 00:10:08,414 *Lachen, Applaus* 132 00:10:09,149 --> 00:10:14,199 L: Das Schöne daran ist ja, die Bundestags- wahl 2017 war offenbar nur ein Test. 133 00:10:14,199 --> 00:10:16,089 *Lachen* 134 00:10:16,609 --> 00:10:25,139 M: Gut. Und damit hatten wir Hessen. War alles erledigt. Nein, nicht ganz. Was fehlt? 135 00:10:26,169 --> 00:10:30,029 T: Naja, es gibt ja da noch so'n paar andere Angriffsszenarien, also nicht nur 136 00:10:30,029 --> 00:10:35,589 die Möglichkeit auf dem FTP-Server Zugriff zu erlangen, um da irgendwelche config- 137 00:10:35,589 --> 00:10:44,579 Daten und Dokumentation einzusehen. Z.B. eben diesen Updatemechanismus: Wie 138 00:10:44,579 --> 00:10:49,220 verteilt dieses ganze System die Updates, an die verschiedenen Wahlbezirke wo diese 139 00:10:49,220 --> 00:10:54,920 Software am Einsatz ist. Und ja wir haben gelernt, dass das ein durchaus spannendes 140 00:10:54,920 --> 00:11:00,540 Feld ist mit den Updates. Wir haben im großen bösen Internet einmal diesen 141 00:11:00,540 --> 00:11:05,520 Webserver, auf dem Dokumentation liegt, auf dem die Webseite des Herstellers 142 00:11:05,520 --> 00:11:09,309 liegt, wo auch die Updates für die Software liegen. Und wir haben zum 143 00:11:09,309 --> 00:11:12,869 Zeitpunkt, als wir uns mit dem ganzen Kram beschäftigt haben, gesehen: Wir haben 144 00:11:12,869 --> 00:11:16,501 mindestens vier Schwachstellen auf diesem auf diesem Webserver gefunden, die es uns 145 00:11:16,501 --> 00:11:21,340 erlaubt haben, auch Dateien zu modifizieren auf diesem Server. Das heißt, 146 00:11:21,340 --> 00:11:26,709 wir konnten auch oder könnten auch Update- Dateien überschreiben oder austauschen 147 00:11:26,709 --> 00:11:30,280 durch eigene Updates, also eigene PC-Wahl- Software. 148 00:11:31,520 --> 00:11:35,209 L: Der Vorteil Updates auszuliefern ist einfach, man muss nicht für 16 Bundesländer 149 00:11:35,209 --> 00:11:38,540 die Passwörter googeln, sondern kann das einfach zentral ausliefern. 150 00:11:38,540 --> 00:11:46,819 T: Genau. So, das ist also viel einfacher. Aber da hat der Herr Berninger, der 151 00:11:46,819 --> 00:11:51,119 Entwickler dieser Software, der in den Neunzigern angefangen hat, diese Software 152 00:11:51,119 --> 00:11:52,389 zu entwickel ... M: Achtzigern! 153 00:11:52,389 --> 00:11:54,389 L: Achtzigern! M: In den Achtzigern! 154 00:11:54,389 --> 00:11:58,899 T: ... in den 80ern, der hat halt gesagt: Man braucht sehr viel Gehirnschmalz, um 155 00:11:58,899 --> 00:12:02,240 diesen Verschlüsselungs- und Kompressions- Algorithmus zu knacken, den er sich da 156 00:12:02,240 --> 00:12:08,279 ausgedacht hat. Er hat natürlich dafür gesorgt, dass man das nicht so ohne 157 00:12:08,279 --> 00:12:15,769 weiteres austauschen kann. Das heißt dieses Update-Paket pcw10dat1.010 ist eine 158 00:12:15,769 --> 00:12:20,109 verschlüsselte Datei. In dieser verschlüsselten Datei findet sich ein ZIP- 159 00:12:20,109 --> 00:12:26,759 Archiv und in diesem ZIP-Archiv findet sich noch ne Datei, irgendwie... Naja, 160 00:12:26,759 --> 00:12:36,790 also man braucht sehr viel Gehirnschmalz. Haben wir dann mal zerhackt. Hier sehen 161 00:12:36,790 --> 00:12:42,459 wir so'n Ausschnitt aus nem bisschen Code, den wir einmal aus dem ... wir haben 162 00:12:42,459 --> 00:12:46,769 diese Software mal gegen gegen den Disassembler geworfen, mal die großen 163 00:12:46,769 --> 00:12:52,619 Gummihandschuhe ausgepackt und in Delphi- Code gewühlt. Da lag dann so'n Schlüssel 164 00:12:52,619 --> 00:12:57,890 rum und so ne tolle Verschlüsselung- Methode. Dann haben wir halt einfach ein 165 00:12:57,890 --> 00:13:02,879 eigenes Tool gebaut, was diese Pakete entpacken kann, sodass wir dann in dieser 166 00:13:02,879 --> 00:13:07,680 Verzeichnisstruktur eigene Dateien reinpacken können und dann kann man mit 167 00:13:07,680 --> 00:13:15,459 dem eigenen updatedecrypt-Tool kann man dann zum Beispiel diese studio.exe – das 168 00:13:15,459 --> 00:13:20,149 ist die eigentliche Kernsoftware, die dann da läuft, also PC Wahl ist studio.exe, das 169 00:13:20,149 --> 00:13:23,850 ist dieses wundervolle UI, was wir da gerade gesehen haben – das kann man 170 00:13:23,850 --> 00:13:27,589 patchen, so dass zum Beispiel Wahlergebnisse vertauscht werden oder 171 00:13:27,589 --> 00:13:31,529 andere böse Dinge tut und anschließend kann man mit dem Tool, was wir dann gebaut 172 00:13:31,529 --> 00:13:37,160 haben, eine neue Update-Datei erstellen. Da nimmt man dann einfach nen anderen 173 00:13:37,160 --> 00:13:43,329 command line switch – Laser geht nicht, Laser geht doch, da – minus c ist create 174 00:13:43,329 --> 00:13:50,129 neues Update-Paket und das könnte man dann auf diesen Server im großen bösen Internet 175 00:13:50,129 --> 00:13:56,429 stellen. Das würde dann an die PC-Wahl- Systeme verteilt werden, ohne dass wir da 176 00:13:56,429 --> 00:14:00,560 was dazu beitragen müssen. Wir haben den Code auf GitHub gepackt, dann könnt ihr 177 00:14:00,560 --> 00:14:03,529 das mal benutzen. *Applaus* 178 00:14:08,089 --> 00:14:11,519 L: Also das Geniale ist natürlich: Wenn ich ne Verschlüsselungsroutine habe und 179 00:14:11,519 --> 00:14:14,659 die mitliefere in dem Programmm – er muss ja nunmal seine Softwareupdates 180 00:14:14,659 --> 00:14:20,000 entschlüsseln – dann war das jetzt nicht ganz so schwer das nachzubauen. Wieviel 181 00:14:20,000 --> 00:14:24,329 Gehirnschmalz brauchten wir da? T: 300 Gramm. 182 00:14:24,329 --> 00:14:30,549 L: 200 Gramm, kann auch 180 gewesen sein. T: Ungefähr. Wollen wir nicht so kleinlich 183 00:14:30,549 --> 00:14:37,389 sein. Was wollen wir also machen, wenn wir so diese studio.exe patchen, dann wollen 184 00:14:37,389 --> 00:14:41,480 wir – da ja die Kommunikationswege verschlüsselt sind. Wir haben ja von 185 00:14:41,480 --> 00:14:44,310 unserer Regierung gelernt: Da muss man, wenn man abhören will, natürlich an der 186 00:14:44,310 --> 00:14:47,959 Quelle anzapfen, weil die böse Crypto macht immer sonst alles so kompliziert. 187 00:14:47,959 --> 00:14:52,399 Bei der Manipulation ist das ähnlich. Deswegen haben wir diese Quellen-TKM, also 188 00:14:52,399 --> 00:14:57,970 Telekommunikations-Manipulation, da platziert bevor die Kryptografie ansetzt. 189 00:14:57,970 --> 00:15:02,540 Und wir wollen hier - das ist jetzt ein Ausschnitt, diese Daten, die wir hier 190 00:15:02,540 --> 00:15:07,309 sehen, das sind so XML-Daten, die dann vom PC an die nächste höhere Ebene gesendet 191 00:15:07,309 --> 00:15:12,269 werden. Und da gibt's dann so Partei-IDs, über das Format unterhalten wir uns später 192 00:15:12,269 --> 00:15:15,619 noch. Und wir haben gedacht, wir patchen das einfach mal als Proof of Concept so, 193 00:15:15,619 --> 00:15:19,160 dass wir die Partei 1 und 2 vertauschen. Das heißt, dass einfach nur die Stimmen 194 00:15:19,160 --> 00:15:20,790 vertauscht sind. 195 00:15:23,090 --> 00:15:28,730 Das war ein Punkt in den Angriffsszenarien. Wir haben aber noch ein 196 00:15:28,730 --> 00:15:33,650 paar weitere. Es gibt diese Dateiformate der INI-Dateien. Das sind 197 00:15:33,650 --> 00:15:36,959 Konfigurationsdateien, die von der Software verwendet werden und die vor 198 00:15:36,959 --> 00:15:41,629 jeder Wahl zur Verfügung gestellt werden. Die werden dann einfach ausgerollt. Dann 199 00:15:41,629 --> 00:15:44,769 werden die Geräte provisioniert und ausgeliefert. Und diese Daten liegen halt 200 00:15:44,769 --> 00:15:48,619 auch im Internet und auch in diesem Update-Paket, in dem regulären Update- 201 00:15:48,619 --> 00:15:52,919 Paket, da sind also die die config-Dateien mit den ganzen Schlüsseln zu den FTP- 202 00:15:52,919 --> 00:15:58,230 Servern. PGP benutzen sie auch irgendwann. Dann sind die Passphrases da auch drinne 203 00:15:58,230 --> 00:16:02,910 abgelegt und da sie es den Hackern ja nicht so leicht machen wollen, haben sie 204 00:16:02,910 --> 00:16:12,209 das ganze auch verschlüsselt. Das haben wir dann auch mal zerhackt. Da gibt's 205 00:16:12,209 --> 00:16:15,110 verschiedene Formate. Sie haben sich nicht irgendwie einfach mal auf ein 206 00:16:15,110 --> 00:16:17,839 Verschlüsselungsverfahren festgelegt, sie haben sich mehrere ausgedacht und auch wie 207 00:16:17,839 --> 00:16:23,920 sie das dann kodieren: total sinnvoll – oder auch nicht. Hier ist eine Variante, 208 00:16:23,920 --> 00:16:29,730 die INI file Encraption #1, wie wir sie genannt haben, wir verzichten hier 209 00:16:29,730 --> 00:16:32,319 vollkommen auf einen geheimen Schlüssel. 210 00:16:34,899 --> 00:16:35,989 L: Kann man machen! 211 00:16:35,999 --> 00:16:38,819 T: Kann man machen. L: Brauchst du halt ne Risikoabnahme. 212 00:16:38,819 --> 00:16:45,159 T: Brauchst du halt ne Risikoabnahme. Das ist so der Code, der dann aus dem 213 00:16:45,159 --> 00:16:49,300 Disassembler und dem ganzen Durchlesen dieses Binaries rausgefallen ist. Das war 214 00:16:49,300 --> 00:16:53,399 auch nicht so der große Spaß mit dem Delphi Code. Dann gibt es noch ne zweite 215 00:16:53,399 --> 00:17:00,910 Variante. Den benutzen sie für Passwörter und Usernamen für die PGP-passphrases und 216 00:17:00,910 --> 00:17:10,480 für HTTP-basierte Zugriffe. Da haben wir hier ein ganzes Byte Schlüssel. 217 00:17:10,480 --> 00:17:14,040 *Lachen* Immerhin. 218 00:17:14,040 --> 00:17:19,179 *Applaus* Und das wird dann genutzt, um diese 219 00:17:19,179 --> 00:17:22,380 config-Daten zu entschlüsseln. Wir haben das auch einfach mal alles 220 00:17:22,380 --> 00:17:26,939 durchimplementiert und auch auf GitHub geworfen. Könnt ihr ja mal auschecken. 221 00:17:26,939 --> 00:17:31,370 Hier macht jetzt Linus mal kurz noch weiter zu den Formaten. Die sind nämlich 222 00:17:31,370 --> 00:17:35,920 dann gar nicht so unwichtig, wenn wir zeigen wollen, wie wir das Ganze auch in 223 00:17:35,920 --> 00:17:38,799 der Praxis hacken können. 224 00:17:38,799 --> 00:17:43,139 L: Wie Martin ja gerade schon sagte, er hatte Zugriff auf diesen FTP-Server 225 00:17:43,139 --> 00:17:47,050 zumindest in Hessen. Und wir können also einmal die Binaries manipulieren, dass sie 226 00:17:47,050 --> 00:17:50,590 unterschiedliche Ergebnisse zählen, anders exportieren. Aber wenn man auf den FTP- 227 00:17:50,590 --> 00:17:55,240 Server Zugriff hat, kann man natürlich auch seine eigenen Dateien schreiben. Und 228 00:17:55,240 --> 00:18:01,019 da haben wir uns dieses XML-Format angeschaut, was irgendwie vorläufiges 229 00:18:01,019 --> 00:18:04,840 Endergebnis, Hochrechnungsergebnis markiert hat. Und das war also auch ein 230 00:18:04,840 --> 00:18:09,899 hochkomplexes Dateinamen-Konstrukt, das ist das, was dieses indexfreie Datenbank- 231 00:18:09,899 --> 00:18:14,760 Konzept bedeutet: Die Dateien haben klare Namen und am anderen Ende wartet ein 232 00:18:14,760 --> 00:18:21,370 Server und möchte die dann zählen. Das ist jetzt so ne Wahldatei. Also hier sehen wir 233 00:18:21,370 --> 00:18:27,740 die XML-Datei und da steht dann drin: Die Partei mit der ID 0001 erhält so viele 234 00:18:27,740 --> 00:18:32,530 Stimmen, die Partei mit der ID soundso soundsoviel Stimmen. Und wenn man sich 235 00:18:32,530 --> 00:18:38,710 dieses XML-Dateiformat anschaut, fragt man sich: Was fehlt? Was ich da irgendwie 236 00:18:38,710 --> 00:18:44,399 gesucht habe, war irgendsone Form von Signatur oder so, die in irgendeiner Form 237 00:18:44,399 --> 00:18:49,169 mal sagt, wer das Ding ausgezählt hat. Was man ja bei dem Papier-Ergebniss schon 238 00:18:49,169 --> 00:18:56,159 hätte. Also diese schöne XML-Datei-Format auch wieder eine Zierde für den heiligen 239 00:18:56,159 --> 00:19:01,190 Akt der Demokratie. Das haben wir alles zusammen geschrieben. Es war natürlich 240 00:19:01,190 --> 00:19:05,880 klar, wir haben das ja vor der Wahl veröffentlicht mit einem ausreichenden 241 00:19:05,880 --> 00:19:10,039 Zeitraum von zwei Wochen ... T: Drei fast eigentlich. 242 00:19:10,039 --> 00:19:15,269 L: ... Drei Wochen Zeit haben wir gegeben und haben gesagt: Das kriegt ihr doch hin. 243 00:19:15,269 --> 00:19:20,389 Wir haben also einen Bericht geschrieben. Wenn wir jetzt nur ein paar Sahne- 244 00:19:20,389 --> 00:19:27,360 Filetstücke gezeigt. Der eigentliche Bericht ist 24, 25 Seiten lang. Und haben 245 00:19:27,360 --> 00:19:30,540 den also veröffentlicht, haben gesagt, hier, die Software ist unsicher. Und wir 246 00:19:30,540 --> 00:19:34,880 haben aber schön darauf geachtet, dass wir nen langen Teil haben, wo drinsteht Fazit 247 00:19:34,880 --> 00:19:38,830 Schwachstellen und immer dazugeschrieben, passt auf, folgendes müsst ihr machen. Wir 248 00:19:38,830 --> 00:19:42,559 haben da ein paar Wochen dran gesessen, haben das veröffentlicht. Und haben wir 249 00:19:42,559 --> 00:19:46,380 gedacht, so jetzt sind endlich fertig. Und dann haben wir abends die Tagesschau 250 00:19:46,380 --> 00:19:49,400 geguckt, weil wir sind ja interessierte Bürger, also gucken wir auch die 251 00:19:49,400 --> 00:19:53,140 Tagesschau. Und dann hören wir da zu unserer allgemeinen Überraschung. 252 00:19:53,140 --> 00:19:56,385 *Mitschnitt Tagesschau* Bei einem Computerprogramm 253 00:19:56,385 --> 00:19:58,950 das bei der Bundestagswahl eingesetzt werden soll 254 00:19:58,950 --> 00:20:01,690 sind erhebliche Sicherheitsmängel festgestellt worden. 255 00:20:01,690 --> 00:20:05,890 Das ist das Ergebnis einer Untersuchung an der unter anderem der Chaos Computer 256 00:20:05,890 --> 00:20:07,160 Club beteiligt war. 257 00:20:07,160 --> 00:20:11,550 Die Experten kommen zu dem Schluss, das die Software über viele Kommunen 258 00:20:11,550 --> 00:20:14,770 die Wahlergebnisse weiter melden nicht abgesichert sei. 259 00:20:14,770 --> 00:20:18,100 Der Bundeswahlleiter sprach von einem ernsten Problem. 260 00:20:18,100 --> 00:20:21,030 Inzwischen habe der Hersteller aber nachgebessert. 261 00:20:21,775 --> 00:20:28,475 *Lachen, Applaus* 262 00:20:29,600 --> 00:20:36,730 Und ich dachte so: Boah, is echt schnell. Mal gucken. Mal auf die Updateseite 263 00:20:36,730 --> 00:20:40,390 schauen und diese Tage - das war die Tagesschau vom 7. September, wo wir 264 00:20:40,390 --> 00:20:46,080 veröffentlicht haben. Und wir haben diese letzte Version vom 9. Septem..., vom 5. 265 00:20:46,080 --> 00:20:51,049 September als Gegenstand unserer Untersuchung gehabt. Und dachten, naja, 266 00:20:51,049 --> 00:20:54,110 das ist aber komisch, wenn es da jetzt Nachbesserungen gab, dann fragen wir uns, 267 00:20:54,110 --> 00:21:00,090 wann die passiert sind. Und dann dämmerte es uns, wahrscheinlich meinen die die 268 00:21:00,090 --> 00:21:03,440 Nachbesserungen, die der Hersteller gemachthat, während wir ihn vor 269 00:21:03,440 --> 00:21:08,799 Veröffentlichung unseres Berichtes über die größten Probleme in Kenntnis gesetzt 270 00:21:08,799 --> 00:21:14,110 haben. So gab es dann am 31. August einen Selbsttest der Datei unter Verwendung des 271 00:21:14,110 --> 00:21:20,880 traditionsreichen --- und seit irgendwann in den 90er Jahren gebrochenen Hashing- 272 00:21:20,880 --> 00:21:26,280 Algorithmuses MD5. Selbst-Check ist auch gut. Also wenn ihr... Ne manipulierte 273 00:21:26,280 --> 00:21:32,639 Datei kann natürlich sehr gut sich selber checken. Am 5. September kam die digitale 274 00:21:32,639 --> 00:21:36,889 Signatur des Programms und die GPG- Signatur des Payloads und dann sogar noch 275 00:21:36,889 --> 00:21:40,920 die digitale Signatur des Installers später. Und jedes Mal, wenn wir das 276 00:21:40,920 --> 00:21:45,030 gesehen haben, rutscht uns so'n bisschen das Herz vor Freude in die Hose und haben 277 00:21:45,030 --> 00:21:51,730 gedacht: "Jetzt haben sie es geschafft. Sie haben es beseitigt." Und wenige Minuten 278 00:21:51,730 --> 00:21:56,919 später war dann irgendwie das Gefühl: "Warum macht ihr das denn so?" Und die 279 00:21:56,919 --> 00:22:01,140 Antwort schien mir zu sein: YOLO. 280 00:22:01,140 --> 00:22:08,229 *Lachen* *Applaus* 281 00:22:08,229 --> 00:22:12,030 Aber Spaß beiseite. Wir haben zwei zentrale Dinge gefordert: signierte 282 00:22:12,030 --> 00:22:15,679 Software-Updates und signierte Ergebnisdaten. Das kann ja eigentlich nicht so schwer sein. 283 00:22:15,679 --> 00:22:19,549 T: Das haben wir wirklich sehr oft und sehr deutlich gesagt, dass man viele 284 00:22:19,549 --> 00:22:24,130 dieser groben Probleme natürlich damit in den Griff bekommt, wenn wir erstmal eine 285 00:22:24,130 --> 00:22:28,440 Software sicher auf nem System deployed haben und da so'n Vertrauensanker haben, 286 00:22:28,440 --> 00:22:31,580 dann können wir schon dafür sorgen, dass diese Software auf dem Weg dahin nicht 287 00:22:31,580 --> 00:22:37,740 mehr manipuliert wird. Wir haben wie gesagt gesehen, dass sie da nen Selbsttest 288 00:22:37,740 --> 00:22:44,620 eingebaut haben: Dieses studio.exe, das soll sich halt selbst testen. Das hier ist 289 00:22:44,620 --> 00:22:50,820 jetzt Teil unseres Patch-Programms, wo man dann z.B. sehen kann, was wir halt noch 290 00:22:50,820 --> 00:22:54,980 machen müssen, bevor wir diese Wahldaten manipulieren. Wir müssen den Selbsttest 291 00:22:54,980 --> 00:23:01,850 austauschen durch 2 Bytes. Wir müssen eine Funktion einbringen, die dann einfach nur 292 00:23:01,850 --> 00:23:06,299 die Stimmen der Partei 1 und Partei 2 austauscht. Und um diese Funktion 293 00:23:06,299 --> 00:23:09,060 anzuspringen, brauchen wir dann hier noch ein paar Bytes. Das ist im Grunde genommen 294 00:23:09,060 --> 00:23:15,490 alles. Damit haben wir zumindest diesen Selbsttest schon mal beseitigt. Ganz 295 00:23:15,490 --> 00:23:23,000 praktisch. Als sie dann später so in diesen Tontauben-Modus übergingen und wir 296 00:23:23,000 --> 00:23:27,030 halt irgendwie etwas veröffentlicht haben und sie dann nen Patch rausgebracht haben, 297 00:23:27,030 --> 00:23:31,179 hat es bei dem letzten Patch, wo man dann denken kann, jetzt haben sie es 298 00:23:31,179 --> 00:23:34,360 aber wirklich mal gemacht, weil das haben die jetzt so oft um die Ohren bekommen, 299 00:23:34,360 --> 00:23:37,620 das geht gar nicht anders. Das war irgendwie an nem Tag, da war ich gerade 300 00:23:37,620 --> 00:23:42,279 unterwegs, hab gearbeitet und erst abends im Hotel mal die Möglichkeit gehabt, mir 301 00:23:42,279 --> 00:23:45,610 den Kram anzugucken, und das ging dann eigentlich doch auch wieder relativ 302 00:23:45,610 --> 00:23:50,090 schnell, dass man den Kram aushebeln kann. Das hab ich dann kurz mal so getwittert 303 00:23:50,090 --> 00:23:55,230 mit nem Hash über nen Proof of Concept, den ich da schon in der Tasche hatte. Aber 304 00:23:55,230 --> 00:23:58,529 ich will es ja immer schön und bunt machen und so greifbar wie möglich machen und 305 00:23:58,529 --> 00:24:05,180 auch so unangreifbar wie möglich machen. So sah dann der Software-Updater von PC- 306 00:24:05,180 --> 00:24:08,799 Wahl aus, nachdem ich mir den nochmal angeguckt habe. Wir sehen hier ganz 307 00:24:08,799 --> 00:24:13,379 deutlich, haben wir jetzt nicht mehr die Umstellung des Update-Systems vom 13.9., 308 00:24:13,379 --> 00:24:17,300 sondern schon die Umstellung auf Schad- Software mit Vollbit signierten 309 00:24:17,300 --> 00:24:24,340 Installationspaketen. Das hat er dann halt auch gefressen. Jetzt haben wir hier 310 00:24:24,340 --> 00:24:28,350 dieses Video und ich glaube, ich muss hier irgendwo drauf klicken. Diese Macs, die 311 00:24:28,350 --> 00:24:30,520 können das nicht mit dem Multimedia so richtig. 312 00:24:30,520 --> 00:24:33,700 L: Ja, mit Windows hat das immer besser funktioniert. 313 00:24:33,700 --> 00:24:37,919 T: Mit Windows wär das nicht passiert. Also hier sehen wir, wie dieses Wahl- 314 00:24:37,919 --> 00:24:43,129 Studio bedient wird. Man kann hier auf Versionsinfo klicken, dann wird man 315 00:24:43,129 --> 00:24:47,509 gefragt, ob man die digitale Signatur von PC-Wahl überprüfen möchte. Das geht jetzt 316 00:24:47,509 --> 00:24:55,129 ein bisschen schnell. Ich rede ein bisschen schneller. Hier gibt es jetzt ein 317 00:24:55,129 --> 00:24:59,160 Programmaktualisierung-Software, das ist da mit bei, jetzt gibt's gleich ne 318 00:24:59,160 --> 00:25:04,929 Anleitung, wie die Integrität dieses Update-Pakets überprüft werden soll. 319 00:25:04,929 --> 00:25:11,010 Schaut mal ganz genau hin - war das schon? Nee. Es ging so schnell. 320 00:25:11,010 --> 00:25:13,409 L: Ah kacke, viel zu schnell. 321 00:25:13,409 --> 00:25:19,590 T: Ah kacke. So, das ist schon unser modifiziertes Update und hier wird jetzt 322 00:25:19,590 --> 00:25:26,580 gezeigt - mach mal Pause oder so... Das ist ihr Verfahren, so signieren sie ihre 323 00:25:26,580 --> 00:25:32,590 digitalen..., so signieren sie ihre Update-Pakete. Die wollen, dass man dieses 324 00:25:32,590 --> 00:25:38,710 komische pc-wahl-paket.exe mit nem Rechtsklick sich die Eigenschaften 325 00:25:38,710 --> 00:25:44,701 anguckt, dann auf digitale Signaturen klickt, dann doppelklicken auf den, auf 326 00:25:44,701 --> 00:25:49,559 regio iT gmbh, und dann soll man gucken, ob hier steht, die digitale Signatur 327 00:25:49,559 --> 00:25:55,520 gültig. Was dann passiert... 328 00:25:55,520 --> 00:26:01,030 L: Allein die Idee, allein die Idee zu sagen, ach ja, signierte Updates, ja, 329 00:26:01,030 --> 00:26:04,429 machen wir, aber das zu prüfen, muss der Nutzer machen. 2017, Freunde. 330 00:26:04,429 --> 00:26:08,039 T: Warte mal, das geht, das wird ja alles noch viel besser. Was ja dann da passiert, 331 00:26:08,039 --> 00:26:12,029 dieses pc-wahl-paket.exe ist jetzt nicht wirklich ein Installer, wie man sich das 332 00:26:12,029 --> 00:26:17,510 so vorstellt. Das ist eigentlich ein Hello World-Programm. Wenn man das ausführt, 333 00:26:17,510 --> 00:26:21,389 dann geht nur ein Fenster auf und da steht drinne, die Signatur dieses Programms muss 334 00:26:21,389 --> 00:26:28,161 gültig sein. Die haben ein executable file-Format als Container benutzt, um dann 335 00:26:28,161 --> 00:26:35,039 in den Resources, da haben sie dann ein, da haben Sie dann dieses pcw10 dat 010 336 00:26:35,039 --> 00:26:40,970 embedded und das... ein anderes Programm extrahiert dann aus diesem exe das 337 00:26:40,970 --> 00:26:44,029 eigentliche Installer-Paket und installiert das, nachdem man natürlich 338 00:26:44,029 --> 00:26:50,390 gesagt hat, jaja, is gültig. Jetzt kannst mal weitermachen hier... Mach du mal. 339 00:26:56,370 --> 00:26:59,739 Also sie haben auch hier wieder super verschlimmbessert, hier, ne. Wir sehen, 340 00:26:59,739 --> 00:27:04,539 wir machen das jetzt mal wie uns das so befohlen wurde. Wir klicken da jetzt auf 341 00:27:04,539 --> 00:27:07,649 digitale Signaturen. Sieht doch top aus oder. 342 00:27:07,649 --> 00:27:09,990 L: 1a Signatur. 343 00:27:09,990 --> 00:27:18,269 T: Irre. Einfach gültig. Ist ok. So, und jetzt muss man sagen, die Signatur war gültig. 344 00:27:18,269 --> 00:27:23,400 *Lachen* *Applaus* 345 00:27:23,400 --> 00:27:30,640 Und jetzt haben wir, um das natürlich zu demonstrieren, dass wir da jetzt ne eigene 346 00:27:30,640 --> 00:27:33,559 Software eingepackt haben, haben wir jetzt mal hier so'n rotes Fenster aufpoppen 347 00:27:33,559 --> 00:27:37,890 lassen. Das, was man, was wir mit diesem Studio-Patch produzieren, würde man ja so 348 00:27:37,890 --> 00:27:42,600 jetzt gar nicht sehen, was ja auch Sinn der Sache ist. 349 00:27:43,540 --> 00:27:47,980 L: Einmal noch drücken. T: Einmal noch drücken. Die signierten 350 00:27:47,980 --> 00:27:59,030 Ergebnis-Daten sind ein weiterer Punkt. Sie haben sich entschlossen, die 351 00:27:59,030 --> 00:28:03,280 Ergebnisse dieser XML-Dateien zu signieren. Was machen sie? Man hat ihnen 352 00:28:03,280 --> 00:28:08,769 irgendwann mal gesagt, nehmt PGP. Man hat ihnen nicht gesagt, managed irgendwie auch 353 00:28:08,769 --> 00:28:14,100 die Keys. Es ist völlig unklar, wie die die Keys ausrollen. Wird da irgendwie ein 354 00:28:14,100 --> 00:28:19,060 Schlüsselpaar unter allen Bundesländern geteilt. Oder - man weiß es nicht. Wir 355 00:28:19,060 --> 00:28:22,080 wissen es nicht. Wir haben es nie herausgefunden. 356 00:28:22,080 --> 00:28:28,410 L: Also nur um das Ausmaß hier zu zeigen, wir reden ja von 70.000 Wahllokalen. Und 357 00:28:28,410 --> 00:28:32,570 da gerät so'n web of trust dann ja auch ein bisschen an seine Grenzen. 358 00:28:32,570 --> 00:28:37,169 T: Wer importiert die ganzen public keys, wenn die sich das tatsächlich selber alles 359 00:28:37,169 --> 00:28:41,140 generieren. Zumindest in der Anleitung steht drinne, man soll bitte Kleopatra 360 00:28:41,140 --> 00:28:44,679 installieren und dann soll man sich da so'n Schlüsselpaar generieren und dann 361 00:28:44,679 --> 00:28:47,879 kann man die Daten signieren. Da steht nichts drinne, so schickt den key irgendwo 362 00:28:47,879 --> 00:28:51,570 über nen vertrauenswürdigen Kanal noch an ne zentrale Stelle. Da muss man sich 363 00:28:51,570 --> 00:28:56,000 natürlich noch entscheiden, wenn man schon PGP benutzt oder GPG, GnuPG, ob man da 364 00:28:56,000 --> 00:29:00,019 jetzt irgendwie GPGME nimmt als library sozusagen, und das in die Software direkt 365 00:29:00,019 --> 00:29:04,259 mit reinlinkt oder ob man ein externes Programm aufruft. Sie haben sich für was 366 00:29:04,259 --> 00:29:10,289 entschieden? Sie rufen das als externes Programm auf. Das heißt sie erzeugen 367 00:29:10,289 --> 00:29:16,130 innerhalb dieser studio.exe einen neuen Prozess. Manche lachen jetzt vielleicht 368 00:29:16,130 --> 00:29:22,049 schon. Es gibt hier diese tolle GPG- Kommandozeilen-Option "-- batch -- 369 00:29:22,049 --> 00:29:26,490 passphrase", das wird dann gefolgt von der passphrase. 370 00:29:26,490 --> 00:29:27,490 *Lachen* 371 00:29:27,490 --> 00:29:34,240 Lacht Nicht zu früh, das wird noch besser. Also, in dem Fall sieht man schon, wenn 372 00:29:34,240 --> 00:29:38,970 die PGP aufrufen und dann die passphrase auf der command line übergeben, dann 373 00:29:38,970 --> 00:29:44,700 taucht natürlich für die user sichtbar dieser passphrase auch in der Prozessliste 374 00:29:44,700 --> 00:29:50,760 auf. Aber es ist halt viel besser. Sie haben nämlich... sie rufen nicht... sie 375 00:29:50,760 --> 00:29:56,679 eröffnen... sie erzeugen nen neuen Prozess mit GPG2.exe, nein, sie wollen ja auch 376 00:29:56,679 --> 00:30:01,249 wissen, mit welchem key wollen wir jetzt die Dateien eigentlich signieren. Da muss 377 00:30:01,249 --> 00:30:06,400 ja in der PC-Wahl-Software auch ein Auswahlmenü angezeigt werden, weil kann 378 00:30:06,400 --> 00:30:12,529 ja, können ja mehrere private Schlüssel da sein. Also schreiben sie, erzeugen sie 379 00:30:12,529 --> 00:30:18,679 einmal eine batch-Datei, wo sie GPG mit den Parametern aufrufen, um alle privaten 380 00:30:18,679 --> 00:30:23,550 Keys anzuzeigen. Das wird in eine Textdatei reingeschrieben. Als nächstes 381 00:30:23,550 --> 00:30:30,740 öffnet PC-Wahl diese Textdatei und parst den GPG-Output und guckt da nach, was habe 382 00:30:30,740 --> 00:30:36,360 ich eigentlich für private Schlüssel. Danach erzeugen sie eine neue batch-Datei 383 00:30:36,360 --> 00:30:40,220 mit dem, was wir gerade eben gesehen haben. Da schreiben sie dann nämlich diese 384 00:30:40,220 --> 00:30:44,521 Passphrase und die ganze Command Line, wie man dann Sachen signiert, einmal in die 385 00:30:44,521 --> 00:30:47,669 Batch-Datei rein. Das heißt sie erzeugen nicht einfach nur nen neuen Prozess, wo 386 00:30:47,669 --> 00:30:50,360 die Passphrase sichtbar ist. Sie schreiben's auch einmal schön aufs 387 00:30:50,360 --> 00:30:56,360 Dateisystem im Klartext, damit alle auch in der Zukunft da vielleicht auch nochmal 388 00:30:56,360 --> 00:30:57,490 drauf zugreifen können. 389 00:30:57,490 --> 00:31:03,210 L: Und die Datei wird natürlich gespeichert und ihr erinnert euch, dass wir, dass die 390 00:31:03,210 --> 00:31:07,330 Binary und alle Dateien ohnehin auf'm Fileshare liegen. Das heißt man hat dann 391 00:31:07,330 --> 00:31:12,310 auf dem Fileshare die ganzen PGP-Keys samt Passphrases in ner Textdatei stehen. 392 00:31:12,310 --> 00:31:14,889 T: Verrückt. *Applaus* 393 00:31:14,889 --> 00:31:17,800 L: Das ist dann einfacher, da den Überblick zu behalten. 394 00:31:17,800 --> 00:31:22,460 T: Das ist vielleicht die Lehre aus diesen Ransomware-Erpresser-Trojanern oder so, 395 00:31:22,460 --> 00:31:28,600 dass sie da Backups verteilen, wer weiß es. Abgesehen davon haben wir ja schon 396 00:31:28,600 --> 00:31:32,210 gezeigt, dass diese Passphrase ja auch noch in den INI-Dateien drinne steht und 397 00:31:32,210 --> 00:31:35,200 wie toll das verschlüsselt ist, haben wir ja auch schon gesehen. 398 00:31:38,610 --> 00:31:42,409 Ja, nur damit man das vielleicht auch nachvollziehen kann. Auch das ist 399 00:31:42,409 --> 00:31:48,319 natürlich selbstverständlich alles auf GitHub. Wir haben nichts zu verbergen. 400 00:31:52,299 --> 00:31:56,380 M: Nun, also das haben jetzt nicht nur wir festgestellt, dass das wohl broken beyond 401 00:31:56,380 --> 00:31:59,490 repair ist, das haben die auch festgestellt. Zumindest der 402 00:31:59,490 --> 00:32:04,179 Landeswahlleiter oder die Landeswahlleiter haben das dann für sich festgestellt. Und 403 00:32:04,179 --> 00:32:07,450 was macht man dann, wenn man mit Neuland nicht zurechtkommt? Was ist die 404 00:32:07,450 --> 00:32:13,390 Standardantwort? Ausdrucken. Internet ausdrucken. Neuer Wahlerlass, ein geheimer 405 00:32:13,390 --> 00:32:18,240 Wahlerlass wurde veröffentlicht. Also jedes Land hat, der Landeswahlleiter kann 406 00:32:18,240 --> 00:32:22,720 Wahlerlasse mit Ausführungsbestimmungen veröffentlichen, da steht drin, wie sie es 407 00:32:22,720 --> 00:32:29,139 machen müssen, die Gemeinden. Und da steht drin, wenn die Wahlergebnisse hochgeladen 408 00:32:29,139 --> 00:32:34,399 wurden auf diesen FTP-Server und dann auf die nächste Ebene und so, dann gehe man 409 00:32:34,399 --> 00:32:39,270 doch bitte in das Internet auf die Statistik-Webseite des Statistischen 410 00:32:39,270 --> 00:32:42,039 Landesamtes, da wo die Ergebnisse veröffentlicht werden, drucke sich das 411 00:32:42,039 --> 00:32:46,679 aus, vergleiche das mal mit dem, was in der Gemeinde abgegeben wurde, Stempel 412 00:32:46,679 --> 00:32:51,549 drauf, abheften - und dann hat man die Prüfung gemacht. Also das ist die Antwort 413 00:32:51,549 --> 00:32:59,429 auf die Probleme, das sieht dann so in etwa aus. Also alles manuell. Wir gehen 414 00:32:59,429 --> 00:33:00,759 wieder zurück in die Steinzeit. 415 00:33:01,329 --> 00:33:05,809 L: Man konnte aber noch mehr nuken. Aber wir haben natürlich eigentlich immer 416 00:33:05,809 --> 00:33:10,799 noch... wir sind ja... wir wollten ja helfen. Und dann haben wir uns überlegt, 417 00:33:10,799 --> 00:33:13,461 als es dann irgendwie mehrere Updates gab und immer wieder so: So, jetzt haben wir 418 00:33:13,461 --> 00:33:16,969 aber alles gefixt - und dann Thorsten wollte ja auch irgendwann nochmal was 419 00:33:16,969 --> 00:33:20,519 anderes machen und musste dann immer nochmal kurz ne halbe Stunde was reverse 420 00:33:20,519 --> 00:33:24,429 engineeren und twittern. Da haben wir gesagt, so geht das nicht weiter, ja, wir 421 00:33:24,429 --> 00:33:29,600 wollen wählen. Und dann haben wir gesagt, okay, wir fixen's einfach selber und 422 00:33:29,600 --> 00:33:36,710 spenden den Fix für den Updater dem Hersteller als Open Source-Paket. Einfach 423 00:33:36,710 --> 00:33:39,059 nur um zu zeigen, es ist möglich. 424 00:33:39,499 --> 00:33:48,139 *Applaus* 425 00:33:49,389 --> 00:33:51,349 Und da geht's dann also einfach darum, einfach 426 00:33:51,349 --> 00:33:53,909 einen Standard Installer, ist jetzt auch kein großes Hexenwerk, nen Installer zu 427 00:33:53,909 --> 00:33:58,320 nehmen, der halt guckt, ob sein Installationspaket signiert ist. Und da 428 00:33:58,320 --> 00:34:01,990 muss der Nutzer nicht klicken, sondern der Installer weiß einfach, von welchem 429 00:34:01,990 --> 00:34:05,710 Zertifikat das Update signiert sein soll, und prüft einfach, ob das Zertifikat 430 00:34:05,710 --> 00:34:09,480 stimmt und der Inhalt. War da sonst noch irgendwas? Nee, ne? 431 00:34:09,480 --> 00:34:12,889 T: Naja, so viel muss man da eigentlich nicht machen, damit man das... 432 00:34:12,889 --> 00:34:18,130 L: Ja. Also eine kleine Spende, eine große Geste, eine kleine Geste, ein kleiner 433 00:34:18,130 --> 00:34:26,481 Schritt für den CCC, ein großer Schritt für PC-Wahl. Aber es war natürlich auch 434 00:34:26,481 --> 00:34:30,750 irgendwie klar, dass sie dieses kleine vergiftete, diese kleine vergiftete Spende 435 00:34:30,750 --> 00:34:32,020 nicht annehmen würden. 436 00:34:32,020 --> 00:34:36,179 T: Ja, das ist auch ganz offen gesagt natürlich jetzt auch kein, kein Software, 437 00:34:36,179 --> 00:34:40,010 kein, kein Stück Software, was sie natürlich einfach in ihr Programm einbauen 438 00:34:40,010 --> 00:34:44,909 können. Sie benutzen ja diese supermodernen Programmiersprachen - nicht. 439 00:34:44,909 --> 00:34:49,699 Ich hab das einfach mal in C-Sharp runtergehackt, weil ich das ganz gerne zum 440 00:34:49,699 --> 00:34:54,290 prototypen nehme. Und ich wollte damit zumindest mal demonstrieren, dass man mit 441 00:34:54,290 --> 00:34:59,210 sehr einfachen Bordmitteln und abgehangenen Crypto-Libraries durchaus 442 00:34:59,210 --> 00:35:06,410 sehr schnell einfach mal so eine Routine hinbekommt, um solche dumpfen Angriffe 443 00:35:06,410 --> 00:35:10,110 abzuwehren, aber... L: Der Hersteller merkte natürlich auch, 444 00:35:10,110 --> 00:35:13,790 dass er mit seinen Updates irgendwie nicht weiterkommt, unser, unsere Spende konnte 445 00:35:13,790 --> 00:35:18,700 er nicht annehmen und ihm war auch klar, das muss jetzt ein Ende haben... Also hat er 446 00:35:18,700 --> 00:35:21,520 einfach keine Updates mehr bereitgestellt. T: Yeay... 447 00:35:21,520 --> 00:35:26,790 L: So, dann kam einfach die aktuelle, das aktuelle Update für PC-Wahl-Anwender ist 448 00:35:26,790 --> 00:35:30,090 nur noch per Individualbezug über die zuständigen Service-Dienstleister 449 00:35:30,090 --> 00:35:35,110 erhältlich. Bitte nehmen Sie hierzu mit Ihrem Betreuer Kontakt auf. Man muss 450 00:35:35,110 --> 00:35:39,190 wissen, PC-Wahl-Anwender haben einen Betreuer. 451 00:35:39,190 --> 00:35:45,590 *Applaus* Da bin ich ein bisschen fuchsig geworden. 452 00:35:45,590 --> 00:35:51,560 Weil es war ja ganz klar, dass dieser Schritt erfolgt ist, weil sie wussten, 453 00:35:51,560 --> 00:35:56,540 egal was sie tun, wir machen ihnen das wieder kaputt. Und dafür sind sie in... 454 00:35:56,540 --> 00:35:59,100 Also sie hätten natürlich unser Lob annehmen können, aber es war auch klar, 455 00:35:59,100 --> 00:36:05,200 äh, unsere Spende. Lob wär dann gekommen. Aber ich mein, in welcher Situation - und 456 00:36:05,200 --> 00:36:09,901 das ist jetzt hier wenige Tage vor der Bundestagswahl, ich glaub, ... ne Woche 457 00:36:09,901 --> 00:36:17,090 vorher oder sowas. Damit bleiben die alten Versionen dauerhaft verwundbar. Weil es 458 00:36:17,090 --> 00:36:20,630 gibt keine Updates mehr online. Es ist auch klar, dass sich jetzt nicht die Leute 459 00:36:20,630 --> 00:36:26,480 ihren Betreuer anrufen, also zumindest nicht den PC-Wahl-Betreuer, und es heißt 460 00:36:26,480 --> 00:36:31,960 also, alle, die jetzt noch im Feld waren, kriegen keine Updates mehr. Es gibt auch 461 00:36:31,960 --> 00:36:36,800 einen erschwerten Update-Pfad. Das heißt, das Problem bleibt bestehen, und während 462 00:36:36,800 --> 00:36:41,380 das hier passierte und ich mich darüber aufregte, meldeten sich bei uns Leute: Sag 463 00:36:41,380 --> 00:36:44,570 mal, welche Version von PC-Wahl habt ihr irgendwie auseinandergenommen? Wir immer 464 00:36:44,570 --> 00:36:48,400 so: "Ja immer die aktuellste." "Ja was is'n die aktuellste?" "Ja die vom 15.9." "Bei uns 465 00:36:48,400 --> 00:36:54,100 steht irgendwie was weiß ich, 3.8.2013. Ist das gut?" 466 00:36:54,100 --> 00:36:55,850 *Lachen* 467 00:36:55,850 --> 00:36:58,900 Und diese Leuten, denen wurde jetzt 468 00:36:58,900 --> 00:37:00,840 einfach gesagt, so nee, ihr kriegt jetzt auch keine Updates mehr, wir sehen das 469 00:37:00,840 --> 00:37:07,850 nicht mehr ein. Ich kann mir nichts Unverantwortlicheres vorstellen. Kommen 470 00:37:07,850 --> 00:37:10,170 wir zum Fazit. 471 00:37:10,170 --> 00:37:19,730 *Applaus* 472 00:37:19,730 --> 00:37:23,920 Rop Gonggrijp und Alex Haldermann haben schon häufiger gesagt: Es ist doch 473 00:37:23,920 --> 00:37:28,980 irgendwie Zufall, dass die einzigen bekannten Verfahren, die noch als sicher 474 00:37:28,980 --> 00:37:34,910 gelten, die sind, die wir uns noch nicht angeschaut haben. Und wer also wer, wem 475 00:37:34,910 --> 00:37:39,650 die Namen etwas sagen, beides langjährig, viel länger als wir, mit dem Thema 476 00:37:39,650 --> 00:37:42,840 Elektronische Wahlen und so weiter befasst, international in allen möglichen 477 00:37:42,840 --> 00:37:46,440 Ländern. Und ich glaube, man kann sich ihnen hier anschließen. Aber es gibt noch 478 00:37:46,440 --> 00:37:49,830 einen weiteren sehr wichtigen technischen Punkt und er betrifft diesen ganzen 479 00:37:49,830 --> 00:37:51,140 Verschlüsselungskram. 480 00:37:53,350 --> 00:37:57,970 T: Ja, man sollte möglichst darauf achten, nicht gegen die Kerckhoff'schen Prinzipien 481 00:37:57,970 --> 00:38:03,190 zu verstoßen, also das müsste eigentlich heutzutage in der heutigen Zeit jedem ein 482 00:38:03,190 --> 00:38:07,620 Begriff sein. Wenn man ein kryptografisches Verfahren entwickelt, 483 00:38:07,620 --> 00:38:11,570 dass man das eben nicht selber entwickelt, sondern vielleicht auch auf Verfahren 484 00:38:11,570 --> 00:38:15,160 setzt, die bekannt sind und abgehangen sind, und dass man darauf achtet, dass 485 00:38:15,160 --> 00:38:19,920 dieses gesamte Verfahren nicht plötzlich unsicher wird, nur weil es in die falschen 486 00:38:19,920 --> 00:38:23,010 Hände geraten ist. 487 00:38:23,010 --> 00:38:31,120 *Applaus* 488 00:38:32,680 --> 00:38:36,860 M: Was wir jetzt gesehen hatten, war die Reaktion des Herstellers. Aber der Kunde 489 00:38:36,860 --> 00:38:45,220 ist ja eigentlich der Wahlleiter der Wahl. Amtsinhaber. Und was wir da festgestellt 490 00:38:45,220 --> 00:38:50,020 haben, das war gleichermaßen - ich sag mal: erschreckend. Wir sind natürlich 491 00:38:50,020 --> 00:38:54,230 nicht direkt an die Öffentlichkeit gegangen. Wir haben erstmal lokal versucht 492 00:38:54,230 --> 00:38:57,690 mit den Verantwortlichen zu reden. Wir kommen ja auch aus einer Gemeinde, haben 493 00:38:57,690 --> 00:39:01,600 versucht auf die Leute zuzugehen und das erstmal so aus der Sicht der Kommune auch 494 00:39:01,600 --> 00:39:06,120 zu besprechen, das Problem, und zu klären. Hier jetzt haben wir nen Wahlleiter aus 495 00:39:06,120 --> 00:39:12,760 Hessen, eine Gemeinde, und die Reaktion ist jetzt nur exemplarisch. Hat das sogar 496 00:39:12,760 --> 00:39:19,160 vertreten in der Öffentlichkeit. Ja, Manipulation ist wohl möglich. Das haben 497 00:39:19,160 --> 00:39:25,661 wir ausreichend demonstriert. Das ist ärgerlich. Aber juckt uns nicht so 498 00:39:25,661 --> 00:39:30,660 richtig. Das lässt mich trotzdem kalt. Das ist der Ausdruck, den man eigentlich hätte 499 00:39:30,660 --> 00:39:34,970 plakativ nehmen können für den ganzen Vortrag. Zumindest von Seite der Kommune 500 00:39:34,970 --> 00:39:40,510 oder der Wahlleiter - Gemeindewahlleiter, Kreiswahlleiter. Das hat uns wirklich 501 00:39:40,510 --> 00:39:44,330 überrascht. Zumindest mich. Mich hat das überrascht, damit hab ich nicht gerechnet. 502 00:39:46,250 --> 00:39:50,850 Ja, es gibt bessere Passworte als "test". Das hatten wir entlocken können. Das hat 503 00:39:50,850 --> 00:39:59,340 er zugestanden. Manipulation der Software sei zumindest störend. Ja. Das haben sie 504 00:39:59,340 --> 00:40:05,090 auch noch zugegeben. Und dann vom Entwickler der Software selber gab es noch 505 00:40:05,090 --> 00:40:12,270 die Bemerkung: Ja, das gibt Ärger und Verwirrung, hat aber keine Relevanz. Naja. 506 00:40:12,270 --> 00:40:20,270 Also, da müssen wir ganz entschieden widersprechen. Das stimmt so absolut nicht. 507 00:40:20,270 --> 00:40:26,120 L: Ich bin halt überrascht, mit welchem Anspruch auch an sich selbst diese 508 00:40:26,120 --> 00:40:30,900 Menschen ihrer Arbeit nachgehen. Also wenn ich doch für ne Wahl verantwortlich bin, 509 00:40:30,900 --> 00:40:34,810 dann hätte ich gedacht, dass mich das mehr interessiert, oder wenn ich so ne 510 00:40:34,810 --> 00:40:37,950 Wahlsoftware bau, dass ich irgendwie auch daran interessiert bin, dass da irgendwie 511 00:40:37,950 --> 00:40:42,840 ein vernünftiges Ergebnis am Ende steht. Schön finden wir aber auch dieses "Ärger 512 00:40:42,840 --> 00:40:46,150 und Verwirrung, aber keine Relevanz". Wir haben dann mal bei der Bundestagswahl 513 00:40:46,150 --> 00:40:51,990 darauf geachtet, wie viele Tage es gedauert hat. Ja, 18 Tage Ärger und 514 00:40:51,990 --> 00:40:56,090 Verwirrung, bis dann irgendwann jemand vor die Presse treten kann und sagt: 515 00:40:56,090 --> 00:41:08,030 "Erinnert ihr euch an diese Bundestagswahl - uns ist da etwas aufgefallen. Das ist jetzt störend, aber 516 00:41:08,030 --> 00:41:14,210 auch nicht weiter schlimm." Nach 18 Tagen - also wir haben mal hier eine kleine 517 00:41:14,210 --> 00:41:19,040 Zeitleiste, was da passiert ist. Nach 18 Tagen waren da schon die Einladungen für 518 00:41:19,040 --> 00:41:26,430 Sondierungsgespräche raus. Also was da einfach für ein Schaden an dem Vertrauen 519 00:41:26,430 --> 00:41:31,020 in die Demokratie leichtfertig einfach aufs Spiel gesetzt wurde, wurde einfach in 520 00:41:31,020 --> 00:41:33,870 Kauf genommen, oder als die Risiken gezeigt wurden, wurde eigentlich sogar 521 00:41:33,870 --> 00:41:38,120 noch mit der Schulter gezuckt und ich habe irgendwie son ungutes Gefühl, wenn wir 522 00:41:38,120 --> 00:41:45,040 ausgerechnet Menschen mit so ner... mit so Ambitionen in so wichtige Positionen 523 00:41:45,040 --> 00:41:47,040 heben. Aber das ist son persönlicher Geschmack. 524 00:41:47,040 --> 00:41:55,760 *Applaus* 525 00:41:56,350 --> 00:42:02,020 Aber es ging noch weiter. Das Bundesamt für Sicherheit in der Informationstechnik 526 00:42:02,020 --> 00:42:06,500 wurde natürlich auch von den Pressevertretern gefragt so "Samma... Was 527 00:42:06,500 --> 00:42:20,290 ist das denn?" Also so ungefähr stelle ich mir das vor. Und. Und dann tritt der Arne 528 00:42:20,290 --> 00:42:24,920 Schönbohm, der Chef des Bundesamtes für Sicherheit in der Informationstechnik, vor 529 00:42:24,920 --> 00:42:30,900 die Presse, sagt: "Ja, gut dass Sie das nochmal sagen. Wir würden gerne bei der 530 00:42:30,900 --> 00:42:36,550 nächsten Wahl übrigens vollständig elektronisch machen weil... Die Wahl ist 531 00:42:36,550 --> 00:42:45,100 ja sicher." Und da hab ich mir dann gedacht: Sag mal, wat ist dat denn? Mehr 532 00:42:45,100 --> 00:42:51,240 fiel mir da auch nicht zu ein. Und man fragt sich: Warum. Warum. 533 00:42:51,240 --> 00:42:55,470 T: Weil die haben jahrelange Erfahrung mit Wahlen 534 00:42:55,470 --> 00:42:59,280 L: Die ham jahrelange Erfahrung mit Wahlen. Und die Gefahr ist bei weitem 535 00:42:59,280 --> 00:43:03,240 nicht gebannt. Es ist ja so: Seit Jahren wird Wahlsoftware gehackt, seit Jahren 536 00:43:03,240 --> 00:43:07,450 werden Wahlcomputer gehackt, seit Jahren werden Wahlstifte gehackt. Überall auf der 537 00:43:07,450 --> 00:43:12,710 Welt gibt es immer wieder Probleme mit elektronischen Wahlen. Und dann gibt's nen 538 00:43:12,710 --> 00:43:17,650 Lobby-Verein, der von dem Hersteller für diese Wahl-Software ins Leben gerufen 539 00:43:17,650 --> 00:43:22,350 wurde und der das Ziel hat, "dass sich der Verein auch aktiv mit der 540 00:43:22,350 --> 00:43:27,290 Weiterentwicklung des Wahlrechts auseinandersetzt". Bitte bitte nicht. Zum 541 00:43:27,290 --> 00:43:31,560 Beispiel könnte man sich die "Nutzung von Online-Diensten" vorstellen "im Rahmen der 542 00:43:31,560 --> 00:43:34,750 weiteren Digitalisierung der Gesellschaft". Da sind dann auf einmal 543 00:43:34,750 --> 00:43:36,260 Ambitionen vorhanden. 544 00:43:36,260 --> 00:43:40,910 T: Genau die, die diese Software hier zu verantworten haben. 545 00:43:40,910 --> 00:43:45,320 L: Der Verein ist deckungsgleich mit dem mit dem Unternehmen. Sollen wir das noch 546 00:43:45,320 --> 00:43:56,750 erzählen mit dem Unternehmen? Also das was war... wir haben ja. Uns ist irgendwie 547 00:43:56,750 --> 00:44:02,420 aufgefallen, dass die... dass PC-Wahl schien irgendwie die Software... die 548 00:44:02,420 --> 00:44:08,360 Webseite schien irgendwie unter einem Firmennamen zu existieren und aktuelle 549 00:44:08,360 --> 00:44:11,560 Statements kamen von einem anderen Unternehmen. Und wenn man dann ein 550 00:44:11,560 --> 00:44:16,870 bisschen googelt, findet man , dass der eine Hersteller - VoteIT? 551 00:44:17,450 --> 00:44:18,700 M: Richtig. 552 00:44:18,700 --> 00:44:27,750 L: Dass die seinen Konkurrenten Berninger Software gekauft hat. Für'n ganz guten Betrag. 553 00:44:27,750 --> 00:44:31,610 T: Berninger ist der Entwickler, der da auch häufig diese Statements abgegeben 554 00:44:31,610 --> 00:44:35,080 hat, dass man ja sehr viel Gehirnschmalz braucht und dass das ja alles irrelevant 555 00:44:35,080 --> 00:44:36,530 ist und so weiter. 556 00:44:36,530 --> 00:44:40,460 L: Der gute Mann hat irgendwie ein oder zwei Jahre bevor wir PC Wahl 557 00:44:40,460 --> 00:44:41,460 auseinandergenommen haben... 558 00:44:41,460 --> 00:44:42,460 T: 2016 559 00:44:42,460 --> 00:44:46,220 L: 2016... ein paar Monate vorher hat der die ganze Bude für'n siebenstelligen 560 00:44:46,220 --> 00:44:52,650 Betrag an die Konkurrenz verkauft. Und noch ein paar Jahre Geschäftsführer für 561 00:44:52,650 --> 00:44:58,460 sein altes Produkt mit eingetragen. Ich habe irgendwie den Eindruck, dass der Mann 562 00:44:58,460 --> 00:45:01,860 seit dieser Veröffentlichung vor Lachen nicht mehr in den Schlaf kommt. 563 00:45:06,510 --> 00:45:10,840 *Applaus* 564 00:45:10,840 --> 00:45:12,160 So macht man's richtig. 565 00:45:12,160 --> 00:45:13,160 T: Ja. 566 00:45:13,710 --> 00:45:15,030 L: Also den gesamten Schaden hat natürlich 567 00:45:15,030 --> 00:45:19,000 jetzt der Käufer. Naja, so ist das, wenn die Konkurrenz unbedingt kaufen möchte, 568 00:45:19,000 --> 00:45:23,410 der wird's ihm übel nehmen. Kommen wir zu unseren politischen Forderungen, die wir 569 00:45:23,410 --> 00:45:27,023 als Chaos Computer Club selbstverständlich immer noch mit dran heften, wenn wir mal 570 00:45:27,023 --> 00:45:32,520 wieder etwas kaputt gemacht haben. Es ist natürlich ganz klar, wenn wir hier die 571 00:45:32,520 --> 00:45:37,220 Beschleunigung, die hier irgendwie überall angestrebt wird, kann natürlich nicht 572 00:45:37,220 --> 00:45:41,790 zulasten von Sicherheit, Korrektheit und Nachvollziehbarkeit einer Wahl 573 00:45:41,790 --> 00:45:47,070 stattfinden. Und das ist das, was wir immer und immer wieder sehen. Was diese 574 00:45:47,070 --> 00:45:52,390 Software da uns ... Das mussten wir nicht knacken, das war ja schon kaputt. 575 00:45:52,390 --> 00:45:56,130 *Applaus* 576 00:45:56,130 --> 00:46:03,330 T: Und Transparenz. Transparenz ist wirklich was anderes. Wenn die jetzt sogar 577 00:46:03,330 --> 00:46:07,400 zum Schluss noch ihren eigenen Update- Mechanismus abgeschaltet haben und das 578 00:46:07,400 --> 00:46:12,220 Ganze nur noch über Betreuer zu updaten ist, dann ist das nicht mehr transparent. 579 00:46:16,120 --> 00:46:20,800 L: Dann natürlich unsere Kernforderung: keine Software-Komponente, die am 580 00:46:20,800 --> 00:46:25,400 Wahlausgang oder an den Wahlmeldungen beteiligt ist, darf geheim gehalten werden 581 00:46:25,400 --> 00:46:28,920 und ihr wisst, wohin das führt, wenn wir sagen: darf nicht geheim gehalten werden, 582 00:46:28,920 --> 00:46:32,020 dann wollen wir bitteschön alles davon haben. 583 00:46:32,020 --> 00:46:41,830 *Applaus* 584 00:46:41,830 --> 00:46:43,990 Das ist ... durch eine völlig unabhängige 585 00:46:43,990 --> 00:46:48,770 zeitliche Koinzidenz im September auch eine Kampagne von der Free Software 586 00:46:48,770 --> 00:46:54,880 Foundation Europe gestartet, die wir als Chaos Computer Club mit unterstützt haben, 587 00:46:54,880 --> 00:46:59,100 die ganz einfach sagt: Public Money - Public Code. Also wenn unsere Steuergelder 588 00:46:59,100 --> 00:47:03,910 verballert werden, dann bitteschön für Code, der dann auch in unserer Hand ist. 589 00:47:03,910 --> 00:47:13,480 *Applaus* 590 00:47:13,480 --> 00:47:15,320 T: Das dürfte dann auch potenzielle 591 00:47:15,320 --> 00:47:19,820 Entwickler von einem Open-Source-Projekt auch dazu animieren, auf moderne 592 00:47:19,820 --> 00:47:23,530 Programmiersprachen zurückzugreifen und moderne Frameworks zu verwenden, moderne 593 00:47:23,530 --> 00:47:28,821 Kryptografie. Das Ganze, wenn es dann öffentlich ist, wird's ja auch... ist es 594 00:47:28,821 --> 00:47:32,670 ja auch einem ständigen Review-Prozess unterworfen. Zumindest ist es viel 595 00:47:32,670 --> 00:47:36,650 leichter, dem Hersteller auch einfach mal zu sagen, hier hör mal, diesen Hashing- 596 00:47:36,650 --> 00:47:43,741 Algorithmus da, ist das Kunst oder kann das weg. Da kann man das ändern. Das ist 597 00:47:43,741 --> 00:47:49,430 das, was stattfinden muss. Diese Software muss regelmäßig auch einer Öffentlichkeit 598 00:47:49,430 --> 00:47:54,490 standhalten können. Es muss dazu animiert werden, dass die Entwickler sich auch Mühe 599 00:47:54,490 --> 00:47:58,700 geben, diesen Kram umzusetzen, was man jetzt hier durchaus irgendwie mal in Frage 600 00:47:58,700 --> 00:48:01,720 stellen kann, ob er sich da so viel Mühe gegeben hat diesen Sicherheitsaspekt auch 601 00:48:01,720 --> 00:48:06,060 herauszuarbeiten. Wenn es Audit Ergebnisse gibt, die kann man ja auch bei Open- 602 00:48:06,060 --> 00:48:09,750 Source-Projekten durchführen und irgendwie finanzieren lassen, auch diese Ergebnisse 603 00:48:09,750 --> 00:48:13,920 sollten natürlich öffentlich gemacht werden und parallel mit dem Quellcode 604 00:48:13,920 --> 00:48:19,740 publiziert werden. Und das kann so schwer gar nicht sein. Wenn man sich überlegt, 605 00:48:19,740 --> 00:48:25,370 für wie viel ja Millionen Euro diese Berninger-Software da gekauft wurde. Ich 606 00:48:25,370 --> 00:48:28,510 denke, es finden sich ziemlich schnell ziemlich viele sehr fähige Open-Source- 607 00:48:28,510 --> 00:48:33,590 Entwickler, die mit modernen Frameworks eine ähnliche Software mit einem besseren 608 00:48:33,590 --> 00:48:35,530 User Interface produzieren dürften. 609 00:48:35,530 --> 00:48:38,450 *Lachen* 610 00:48:43,710 --> 00:48:49,530 L: Also ich stell mir auf jeden Fall sowas wie git gitpull Wahlauswertung mit 611 00:48:49,530 --> 00:48:54,810 quelloffenem Code, schön durchsignierten Ergebnissen von den Wahlleiter, ... schön 612 00:48:54,810 --> 00:48:59,890 so ne X.509-Zertifikate vom BSI oder von wem auch immer, wer sich dafür berufen 613 00:48:59,890 --> 00:49:05,380 fühlt. Es gibt keinen einzigen Grund, dass irgendein Aspekt einer solchen Wahl für 614 00:49:05,380 --> 00:49:09,060 uns nicht vollständig nachvollziehbar ist. Und wir haben uns ja nur die Sicherheit 615 00:49:09,060 --> 00:49:12,820 dieser Software angeschaut. Was andere Menschen vorher wissen wollten, kommt die 616 00:49:12,820 --> 00:49:15,511 überhaupt zu richtigen Ergebnissen, das wär auch nochmal so'n Teil, den man sich 617 00:49:15,511 --> 00:49:21,230 anschauen könnte. Aber wir haben unser Kontingent an Freiwilligenarbeit für 618 00:49:21,230 --> 00:49:22,530 dieses Jahr erfüllt. 619 00:49:22,530 --> 00:49:25,160 T: In jedem Fall wäre ein möglicherweise... 620 00:49:25,160 --> 00:49:34,270 *Applaus* 621 00:49:34,270 --> 00:49:39,040 In jedem Fall wäre ein Open-Source-Projekt - ob es nun von uns initiiert wird oder 622 00:49:39,040 --> 00:49:43,460 von irgendner Free Software Organisation - wäre auf jeden Fall mal ein gutes 623 00:49:43,460 --> 00:49:49,150 Beispiel, dass wir Deutschen wie auch immer, die sich immer als die gute 624 00:49:49,150 --> 00:49:53,160 Demokratie darstellt, wir könnten ohne weiteres einfach mal den anderen 625 00:49:53,160 --> 00:49:55,900 Nachbarländern mit weniger Geld sagen: Hier, guckt mal, wir haben das mal 626 00:49:55,900 --> 00:49:58,450 vernünftig gemacht. Ihr könnt das einfach benutzen, um eure demokratischen Wahlen 627 00:49:58,450 --> 00:50:04,560 durchzuführen. Das wäre halt alles ziemlich einfach. Aber... 628 00:50:04,560 --> 00:50:11,250 *Applaus* 629 00:50:11,250 --> 00:50:16,892 L: Naja Denken first - digital second, gibt's auch hier als Aufkleber, müssen die 630 00:50:16,892 --> 00:50:24,400 hier irgendwo rumliegen. Und damit kommen wir schon zum Ende. Alle Angriffs-Tools 631 00:50:24,400 --> 00:50:30,280 findet ihr auf GitHub. Es gibt den Report auf www.ccc.de und unsere beiden 632 00:50:30,280 --> 00:50:35,420 Pressemitteilungen dazu. Wir haben auch noch kurz E-Mail-Adressen angegeben und 633 00:50:35,420 --> 00:50:41,310 wir möchten euch aber nicht ohne ein Abschluss-Feuerwerk entlassen... 634 00:50:41,310 --> 00:50:43,420 T: Feuerwerk der guten Laune. 635 00:50:43,420 --> 00:50:47,720 L: Und das ist das auch eine wunderschöne Funktion, das Abschluss-Feuerwerk hat uns 636 00:50:47,720 --> 00:50:50,340 PC-Wahl nämlich direkt mitgliefert. 637 00:50:50,340 --> 00:50:54,560 T: Die fehlerfreiste Funktion dieser Software. 638 00:50:56,190 --> 00:51:01,830 L: Für schnelle Grafikkarten geht das nur. Vielen Dank! 639 00:51:01,830 --> 00:51:26,050 *Applaus* 640 00:51:26,050 --> 00:51:37,900 Herald: [unverständlich] 641 00:51:37,900 --> 00:51:40,460 Aber 10 Minuten haben wir. Bitte schön, 642 00:51:40,460 --> 00:51:42,360 Mikrofon Nummer 3. 643 00:51:42,360 --> 00:51:44,751 M3: Ja Hallo, mich würde mal interessieren, was hat die Kommunen die 644 00:51:44,751 --> 00:51:47,460 Software gekostet? Also was was haben die dafür bezahlt? 645 00:51:47,460 --> 00:51:49,440 L: Zu viel. 646 00:51:49,440 --> 00:51:51,220 *Lachen* 647 00:51:51,220 --> 00:51:56,220 T: Ich nehme an, die finanzieren dieses ganze Projekt so mit Wartungsverträgen. 648 00:51:56,220 --> 00:52:01,540 Das heißt die pflegen halt diese ganzen INI-Dateien mit den tollen Passwörtern und 649 00:52:01,540 --> 00:52:03,480 passen halt die Listen an und so weiter. 650 00:52:03,480 --> 00:52:07,250 L: Also das kann man googlen, weil da in diesem Kaufvertrag das musste wohl 651 00:52:07,250 --> 00:52:10,907 irgendwie kartellrechtlich geprüft werden, da mussten dann halt auch Umsätze und so 652 00:52:10,907 --> 00:52:12,207 angegeben werden. 653 00:52:12,207 --> 00:52:15,220 M: Das steht alles in den Haushaltsplänen der Kommunen. Die Kommunen sind teilweise 654 00:52:15,220 --> 00:52:18,370 verpflichtet, das Programm zu nehmen, also die haben keine Wahl. Der Landeswahlleiter 655 00:52:18,370 --> 00:52:21,120 sagt, das wird verwendet. 656 00:52:21,120 --> 00:52:23,830 Herald: Dann eine Frage aus dem Internet. 657 00:52:23,830 --> 00:52:29,780 I: Hallo hallo hallo, ah ja, das Mikro, nein, das Internet würd gern wissen, ob 658 00:52:29,780 --> 00:52:33,770 sich nach der Wahl irgenwas nachträglich verändert hat. Gabs irgendwie grundlegende 659 00:52:33,770 --> 00:52:36,360 Konsequenzen oder ist irgendwas größeres passiert? 660 00:52:37,430 --> 00:52:41,770 M: Es gab Verzögerungen bei der Wahlauswertung, ich glaube, Brandenburg 661 00:52:41,770 --> 00:52:44,830 setzt komplett auf PC-Wahl in ner abgeänderten Version, ich weiß nicht, ob's 662 00:52:44,830 --> 00:52:48,970 da Probleme gab, zumindest in Berlin, Berlin/ Brandenburg die teilen sich ein 663 00:52:48,970 --> 00:52:54,300 Amt für Statistik, da gab's Verzögerungen, aber ob das... worauf das jetzt genau 664 00:52:54,300 --> 00:52:59,490 fußt, wurde ja nie veröffentlicht. 665 00:53:00,770 --> 00:53:04,310 T: Bisher ist aber noch niemand gezielt auf uns zugekommen und hat gesagt, hey, 666 00:53:04,310 --> 00:53:09,500 wie kriegen wir das jetzt eigentlich alles besser auf die Reihe. ist nicht passiert. 667 00:53:09,500 --> 00:53:13,180 Herald: Dann an Mikrofon 2 bitte. 668 00:53:13,180 --> 00:53:16,010 M2: Habt ihr mal probiert, bei einer 669 00:53:16,010 --> 00:53:22,680 Kommune anzurufen und euch als Berater vorzustellen und n Update denen zuzuschicken? 670 00:53:24,720 --> 00:53:25,510 L: Nein, das ist... 671 00:53:25,510 --> 00:53:26,510 T: Verboten, oder? 672 00:53:26,510 --> 00:53:28,080 L: Das ist verboten. 673 00:53:28,080 --> 00:53:29,660 M2: Naja, nur probiern... 674 00:53:29,660 --> 00:53:33,570 L: Nee, wir würden unsere Zeit dann, wenn wir sie noch hätten, lieber darauf 675 00:53:33,570 --> 00:53:37,670 verwenden, uns die anderen Produkte anzuschauen. Sind ja nur 33 Millionen 676 00:53:37,670 --> 00:53:40,600 Stimmen, da gibt's ja noch n paar. 677 00:53:40,600 --> 00:53:43,120 Herald: Dann an Mikrofon Nummer 3. 678 00:53:43,120 --> 00:53:46,430 M3: Hab ich das richtig verstanden, dass die es geschafft haben, ihre Software seit 679 00:53:46,430 --> 00:53:48,800 2013 backwards kompatibel zu halten? 680 00:53:49,850 --> 00:53:53,540 L: Das ist bei dieser Software nicht schwer. Also die sieht halt echt 681 00:53:53,540 --> 00:53:58,050 einfach... die ganze Software sieht aus wie backward kompatibel. 682 00:53:58,050 --> 00:53:59,610 T: Sie ist backward. 683 00:53:59,610 --> 00:54:03,810 M3: Ich mein also, es scheint ja möglich zu sein, dass clients verschiedenster 684 00:54:03,810 --> 00:54:07,410 Versionen an dem gleichen Datensatz arbeiten. Das ist doch schon 685 00:54:07,410 --> 00:54:08,410 bemerkenswert, oder? 686 00:54:08,410 --> 00:54:11,470 L: Man könnte ja eher sagen, sowas wir Vorwärts-Kompatibilität ist hier die 687 00:54:11,470 --> 00:54:14,690 Herausforderung. *Lachen* 688 00:54:14,690 --> 00:54:16,770 Herald: Und eine letzte Frage aus dem Internet. 689 00:54:16,770 --> 00:54:23,230 I: Ja, das Internet würd wissen, ob ihr euch mit Vote Manager aus demselben Haus 690 00:54:23,230 --> 00:54:24,230 beschäftigt habt. 691 00:54:24,230 --> 00:54:27,930 M: Ham wir mal drüber geschaut, nach der ersten Cross-Site-Scriptiung-Lücke haben 692 00:54:27,930 --> 00:54:28,930 wir dann aufgehört. 693 00:54:28,930 --> 00:54:31,360 *Lachen* 694 00:54:33,490 --> 00:54:40,480 Herald: So und das wär's dann auch schon für diesen Talk, dankeschön, Linus, THS, 695 00:54:43,400 --> 00:54:45,600 Martin, vielen Dank! 696 00:54:45,600 --> 00:54:47,930 *Applaus* 697 00:54:47,930 --> 00:54:53,055 *34C3 Abspannmusik* 698 00:54:53,055 --> 00:55:09,000 Untertitel erstellt von c3subtitles.de im Jahr 2018. Mach mit und hilf uns!