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!