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:55:05,200
*34C3 Abspannmusik*
