1
00:00:02,610 --> 00:00:05,130
Wenn du darüber nachdenkst, in 
welchem System du dich 

2
00:00:05,130 --> 00:00:08,610
tagtäglich anmeldest und welche 
Daten du regelmäßig über das 

3
00:00:08,610 --> 00:00:12,290
Internet schickst, was würdest 
du sagen, wenn viele deiner 

4
00:00:12,290 --> 00:00:15,530
sensiblen Daten seit 2 Jahren 
potenziell in falsche Hände 

5
00:00:15,530 --> 00:00:18,770
geraten konnten? 
Du sagst, es wäre fatal, fatal, 

6
00:00:18,970 --> 00:00:21,970
richtig und genau mit dieser 
Information wurden Menschen 

7
00:00:21,970 --> 00:00:25,730
weltweit im Jahr 2014 
konfrontiert, wie das passieren 

8
00:00:25,730 --> 00:00:28,010
konnte, das erfährst du in 
dieser Folge. 

9
00:00:29,030 --> 00:00:32,270
Coating Boys, Dein Podcast rund 
um Softwareentwicklung und 

10
00:00:32,270 --> 00:00:34,830
aktueller Tech News. 
Herzlich Willkommen. 

11
00:00:46,490 --> 00:00:48,530
Herzlich Willkommen zur neuen 
Folge ist Coding Buddies 

12
00:00:48,530 --> 00:00:49,810
Podcast. 
Schön, dass ihr wieder 

13
00:00:49,810 --> 00:00:53,250
eingeschaltet hast, deine 
Gastgeber wie immer meine 

14
00:00:53,250 --> 00:00:56,410
Wenigkeit Tino und auch der 
fantastische Fabi, den ich hier 

15
00:00:56,410 --> 00:01:00,170
schon im Bildschirm sehe. 
Fabi, Grüße dich was geht ab? 

16
00:01:01,310 --> 00:01:04,560
Tino, Was geht? 
Schön, dass wir alle wieder 

17
00:01:04,560 --> 00:01:06,400
zusammengefunden haben zu einer 
neuen Folge. 

18
00:01:06,440 --> 00:01:10,760
Es geht, es geht wieder los. 
Ja, es geht einfach nahtlos 

19
00:01:10,760 --> 00:01:13,840
weiter, Woche für Woche und wir 
haben immer noch richtig Bock. 

20
00:01:14,120 --> 00:01:16,280
Also du siehst auch richtig 
motiviert aus, deswegen habe ich

21
00:01:16,280 --> 00:01:18,720
umso mehr Bock auf die heutige 
Folge, weil ich habe ein 

22
00:01:18,720 --> 00:01:20,760
wirklich geiles Thema 
mitgebracht, wirklich ein 

23
00:01:20,800 --> 00:01:24,480
wahnsinnig geiles Thema und zwar
ich bin voll koffein, wir 

24
00:01:24,480 --> 00:01:25,160
können. 
Loslegen. 

25
00:01:25,840 --> 00:01:28,640
Okay also, das heißt Kaffee, 
hast du am Start, kann losgehen.

26
00:01:28,920 --> 00:01:31,080
Eigentlich nur ein. 
Ich habe heute schon Pause 

27
00:01:31,080 --> 00:01:34,160
getrunken. 
Pass auf. 

28
00:01:34,200 --> 00:01:37,520
Ich möchte mit dir heute eine 
neue Folge Big Fails der 

29
00:01:37,520 --> 00:01:40,800
Software Entwicklung machen. 
Sehr geil und ich will jetzt 

30
00:01:40,800 --> 00:01:44,600
auch nicht direkt spoilern um 
welchen Bug es sich handelt, 

31
00:01:44,800 --> 00:01:49,720
aber wir. 
Gehen zurück in das Jahr 2014 

32
00:01:49,720 --> 00:01:52,560
und geben dann noch einen 
kleinen Blick in die 

33
00:01:52,560 --> 00:01:57,440
Vergangenheit bis ins Jahr 2011 
sogar zurück und möchte mit dir,

34
00:01:57,440 --> 00:01:59,880
ich sag's doch, es geht um den 
Heartbleed Bug, wir gucken uns 

35
00:01:59,880 --> 00:02:03,560
heute den Heartbleed Bug an, der
einfach Apps berühmt ist. 

36
00:02:03,750 --> 00:02:06,950
Und ich hab richtig Bock das mit
dir mal zu analysieren und 

37
00:02:06,950 --> 00:02:10,550
deswegen Liebe zu lieber zu sei.
Gespannt, das wird ne geile 

38
00:02:10,550 --> 00:02:13,870
Folge ist n absoluter Klassiker,
auf jeden Fall muss ich ganz 

39
00:02:13,870 --> 00:02:15,630
ehrlich sagen, also der ist mir 
auch schon n paar mal über den 

40
00:02:15,630 --> 00:02:18,230
Weg gelaufen, ist aber trotzdem 
immer wieder spannend. 

41
00:02:18,830 --> 00:02:23,430
Also das ist ja im Endeffekt 
wirklich n Bug, der damals also 

42
00:02:23,430 --> 00:02:26,030
als er aufgetreten ist 
beziehungsweise entdeckt wurde 

43
00:02:26,230 --> 00:02:30,550
man ja schon davon reden konnte,
dass er so fast das Internet 

44
00:02:30,550 --> 00:02:33,150
zerstört hat, wenn man es 
richtig dramatisch ausdrücken 

45
00:02:33,150 --> 00:02:37,150
möchte, weil ja einfach sehr, 
sehr viele davon betroffen waren

46
00:02:37,150 --> 00:02:40,710
und ich weiß gar nicht genau, ob
ich das auch so sehen würde, 

47
00:02:40,710 --> 00:02:42,830
wahrscheinlich schon, weil im 
Endeffekt ja schon so ein 

48
00:02:42,830 --> 00:02:45,840
bisschen. 
Der Glauben an das Internet 

49
00:02:45,840 --> 00:02:49,600
untergraben wurde. 
So würde ich, so würde ich es 

50
00:02:49,600 --> 00:02:51,480
ausdrücken. 
Ja, man hat auf jeden Fall das 

51
00:02:51,480 --> 00:02:55,520
Vertrauen ein bisschen verloren.
Genau, und was du meintest mit 

52
00:02:55,520 --> 00:02:58,720
der fast das Internet zerstört 
hätte, man muss halt sagen, dass

53
00:02:58,720 --> 00:03:02,320
er einfach ein enorm hohes 
Potential hatte Schaden zu 

54
00:03:02,320 --> 00:03:06,280
verursachen. 
Aber wie es genau dazu kam? 

55
00:03:08,040 --> 00:03:10,400
Werden wir an dieser heutigen 
Folge analysieren und mal so 

56
00:03:10,400 --> 00:03:13,480
wirklich auseinandernehmen, was 
auch der Grund war. 

57
00:03:13,480 --> 00:03:16,760
Der technische Grund hinter dem 
Bug finde ich nämlich, ist auch 

58
00:03:16,760 --> 00:03:18,840
eine super spannende Geschichte 
und. 

59
00:03:18,990 --> 00:03:21,310
Deswegen würde ich dich bitten, 
magst du vielleicht einfach mal 

60
00:03:21,310 --> 00:03:24,470
so bisschen unseren Rahmen 
schaffen, indem wir uns bewegen 

61
00:03:24,470 --> 00:03:27,560
und mal so? 
Im ganz allgemein erklären, was 

62
00:03:27,560 --> 00:03:30,830
da so vor sich ging. 
Ja, also erstmal wie gesagt, es 

63
00:03:30,830 --> 00:03:35,030
war ja ein also dieser Bug hat 
jetzt über 2 Jahre existiert, 

64
00:03:35,030 --> 00:03:37,110
ohne dass er überhaupt 
wahrgenommen wurde. 

65
00:03:37,630 --> 00:03:40,790
Ne, also der war einfach. 
Musst du dir vorstellen, es war 

66
00:03:41,230 --> 00:03:43,270
kann man ja schon mal so n 
bisschen spoilern, ne gewisse 

67
00:03:43,270 --> 00:03:46,950
Art von Sicherheit Lücke die 2 
Jahre unentdeckt blieb, das 

68
00:03:46,950 --> 00:03:50,430
heißt wenn du ein Angreifer 
gewesen wärst und du hättest das

69
00:03:51,070 --> 00:03:53,790
gewusst, dann hättest du 2 Jahre
lang. 

70
00:03:54,840 --> 00:03:58,240
Angriffsvektor nutzen können und
das ist echt schon richtig 

71
00:03:58,240 --> 00:03:59,320
krass. 
Und das. 

72
00:03:59,320 --> 00:04:02,600
Ist eine lange Zeit, ja. 
Und dieser Bug, der wurde auch 

73
00:04:02,600 --> 00:04:06,720
so, also der, der war deshalb 
auch, weil er eben so kritisch 

74
00:04:06,720 --> 00:04:11,120
war, richtig populär geworden, 
weil ich glaube, das war der 

75
00:04:11,120 --> 00:04:17,720
erste Bug so in der Geschichte 
der Bugs, der auch wirklich so 

76
00:04:17,720 --> 00:04:20,120
ein eigenes Logo und einen 
eigenen Namen bekommen hat. 

77
00:04:20,120 --> 00:04:22,520
So später wurde. 
Das ja öfter mal so wieder. 

78
00:04:22,520 --> 00:04:25,400
Also das war dann so Trend, dass
es so gehandhabt wurde. 

79
00:04:27,160 --> 00:04:29,320
Aber es war auch ein bisschen 
dem geschuldet, weil die. 

80
00:04:30,070 --> 00:04:32,870
Bug so kritisch war und auch 
sehr viele Leute betroffen 

81
00:04:32,870 --> 00:04:35,880
waren, musste. 
Man das ja irgendwie 

82
00:04:35,880 --> 00:04:39,280
publizieren, irgendwie in die 
Öffentlichkeit bringen. 

83
00:04:39,640 --> 00:04:42,720
Ja, das kann man ja nicht untern
untern Tisch kehren unter den 

84
00:04:42,720 --> 00:04:44,320
Tisch oder unter den Teppich, 
was sagt man? 

85
00:04:46,040 --> 00:04:51,080
Alles okay und deswegen wurde 
halt dieses Logo, diese dieses 

86
00:04:51,080 --> 00:04:55,200
nette Logo wurde sozusagen 
erschaffen, damit es auch ein 

87
00:04:55,200 --> 00:04:58,200
medienfreundlicheres Gesicht 
bekommen hat als es. 

88
00:04:58,200 --> 00:05:01,920
So nach außen getragen wurde, 
und das fand ich auf jeden Fall 

89
00:05:01,920 --> 00:05:05,960
total interessant, einfach das 
mal so diesen Fun Fact zu hören,

90
00:05:05,960 --> 00:05:08,800
weil das ist so nett, eine nette
Zeitnote. 

91
00:05:09,640 --> 00:05:13,080
Ich finde es, was man auch mal 
so da hinterfragen könnte, ist 

92
00:05:13,080 --> 00:05:15,480
mal angenommen, das wird jetzt 
in den Medien gezeigt, ob sich 

93
00:05:15,480 --> 00:05:18,710
da. 
Viele dachten so, oh mein Gott, 

94
00:05:18,710 --> 00:05:22,070
das ist krass, oh, das ist ne 
krasse Sicherheitslücke gewesen 

95
00:05:22,070 --> 00:05:25,990
oder ist aktuell, falls noch 
nicht gefixt war oder sich 

96
00:05:25,990 --> 00:05:29,760
denken soll, ja. 
Mir egal. 

97
00:05:30,750 --> 00:05:34,030
Weißt du, so ich? 
Glaube also so Normalos, nicht 

98
00:05:34,150 --> 00:05:37,390
IT ler mal so als Normalus 
bezeichnet. 

99
00:05:37,470 --> 00:05:40,550
Ob die sich dachten OK krass 
oder sich dachten ja ist mir 

100
00:05:40,550 --> 00:05:42,070
doch egal. 
Zeig mir die fußballergebnisse. 

101
00:05:43,270 --> 00:05:46,510
Ich glaube, da gibt es so und so
wie wie er heutzutage auch ne. 

102
00:05:46,510 --> 00:05:49,190
Also auch wenn heute was 
auftritt glaub ich gibt es die 

103
00:05:49,190 --> 00:05:51,630
Leute die sich denken oh mein 
Gott das ist richtig krass und 

104
00:05:51,630 --> 00:05:54,310
andere die sich denken 
langweilig irgendwas mit 

105
00:05:54,390 --> 00:05:55,870
Computern. 
Weil ich. 

106
00:05:56,590 --> 00:05:59,150
So aber die Frage. 
Die Frage, die wir uns jetzt 

107
00:05:59,150 --> 00:06:01,230
eigentlich mal stellen wollen 
ist, wieso war dieser Bug 

108
00:06:01,230 --> 00:06:04,790
eigentlich so gefährlich und 
warum hat man da jetzt so n 

109
00:06:04,790 --> 00:06:07,350
riesen Wind drum gemacht? 
Warum machen wir jetzt noch mal 

110
00:06:07,350 --> 00:06:10,190
so n Wind drum ja. 
Warum sind wir so gehyped und 

111
00:06:10,190 --> 00:06:11,590
finden das so spannend, dass der
war? 

112
00:06:13,110 --> 00:06:15,670
Ja, schafft doch mal bitte den 
Frame, in welcher Welt wir uns 

113
00:06:15,670 --> 00:06:17,710
jetzt bewegen, um das mal 
einzuordnen. 

114
00:06:17,750 --> 00:06:19,510
Genau. 
Also wir müssen erstmal dazu 

115
00:06:19,510 --> 00:06:22,830
einen kleinen Exkurs in die 
Internet Kommunikation machen 

116
00:06:22,950 --> 00:06:27,910
und zwar hat dieser Heartbleed 
Bug hat was mit dem TLS Produkt 

117
00:06:27,910 --> 00:06:31,630
zu tun und dieses TLS Protokoll 
dient dazu. 

118
00:06:31,630 --> 00:06:33,670
Also es ist ein 
kryptographisches Protokoll was 

119
00:06:33,670 --> 00:06:38,080
dazu dient um Kommunikation. 
Wie zum Beispiel auch 

120
00:06:38,080 --> 00:06:41,200
Kommunikation im Internet 
einfach zu verschlüsseln, das 

121
00:06:41,200 --> 00:06:43,400
heißt rein theoretisch, wenn du 
Daten über das Internet 

122
00:06:43,400 --> 00:06:47,960
verschickst, hättest du ja rein 
theoretisch die Möglichkeit, 

123
00:06:47,960 --> 00:06:52,040
diese Daten einfach zu lesen und
wenn diese Daten nicht 

124
00:06:52,040 --> 00:06:54,560
verschlüsselt sind, würdest du 
ja alles im Klartext lesen 

125
00:06:54,560 --> 00:06:59,360
können und es ist ja weiß ich 
nicht, kommt jetzt ein bisschen 

126
00:06:59,360 --> 00:07:01,720
auf die Person drauf an, aber 
ich würde jetzt mal so weit 

127
00:07:01,720 --> 00:07:04,320
gehen, dass man, dass jeder 
wahrscheinlich irgendwie so 

128
00:07:04,320 --> 00:07:07,240
bestimmte Geheimnisse hat und 
die erzählt man ja auch nicht 

129
00:07:07,240 --> 00:07:10,350
jedem einfach. 
So ne also zum Beispiel sowas 

130
00:07:10,350 --> 00:07:15,110
wie Passwörter. 
Jetzt im Internetgenre ist ja 

131
00:07:15,110 --> 00:07:17,590
ein gewisses Geheimnis, was du 
ja gerne für dich behalten 

132
00:07:17,590 --> 00:07:21,630
möchtest, ne und diese dieses 
TLS Protokoll wird eigentlich 

133
00:07:21,630 --> 00:07:24,550
fast überall verwendet ne also 
du hast zum Beispiel allein wenn

134
00:07:24,550 --> 00:07:27,510
du dich irgendwo bei Social 
Media irgendeinem Social Media 

135
00:07:27,510 --> 00:07:30,270
Kanal einloggst. 
Wenn du bei Amazon oder anderen 

136
00:07:30,270 --> 00:07:32,950
E Commerce Shops, shoppst, 
Shops, Shops, Shops. 

137
00:07:34,000 --> 00:07:37,120
Oder Shops. 
Oder halt auch online Banking 

138
00:07:37,120 --> 00:07:38,920
machst. 
Also du möchtest ja auf gar 

139
00:07:38,920 --> 00:07:42,080
keinen Fall, zumindest kenne ich
eigentlich jetzt keine Person, 

140
00:07:42,080 --> 00:07:45,560
die das gerne möchte, dass man 
irgendwie, dass das Risiko 

141
00:07:45,560 --> 00:07:49,320
liebt, aber dass das eigene 
Passwort vom eigenen Online 

142
00:07:49,320 --> 00:07:53,200
Banking irgendwie an andere 
Personen weitergeht, so und 

143
00:07:53,920 --> 00:07:59,400
Heartbleed, dieser Heartbleed 
Bug ist jetzt kein Bug oder kein

144
00:07:59,400 --> 00:08:03,680
Designfehler dieses Protokolls, 
also dieser ist jetzt genau von 

145
00:08:03,680 --> 00:08:07,310
TLS selbst. 
Weil das ist ja im Endeffekt nur

146
00:08:07,390 --> 00:08:11,110
ne Rahmenrichtlinie, wie man 
sich in der Kommunikation 

147
00:08:11,110 --> 00:08:14,870
verhalten soll ne, sondern 
dieses Protokoll, also dieses 

148
00:08:14,870 --> 00:08:18,670
diese rahmenrichtlinien wie man 
kommunizieren soll, das wurde 

149
00:08:18,670 --> 00:08:23,310
umgesetzt, also implementiert. 
Durch eine Open Source Software,

150
00:08:23,310 --> 00:08:26,750
genannt Open SSL, so da haben 
bestimmt einige, kennen das 

151
00:08:26,750 --> 00:08:28,830
vielleicht ein andere vielleicht
nicht. 

152
00:08:29,990 --> 00:08:35,630
Und diese Software ist im 
Endeffekt bis heute weit 

153
00:08:35,630 --> 00:08:37,909
verbreitet, ja damals auch heute
auch. 

154
00:08:38,630 --> 00:08:44,470
Nutzt eben dieses Protokoll. 
Zur Verschlüsselung bei einer 

155
00:08:44,470 --> 00:08:47,310
Kommunikation. 
Und das wird halt, es ist frei 

156
00:08:47,310 --> 00:08:50,790
zugänglich, weil es ist ja open 
Source und es wird eben auch von

157
00:08:50,790 --> 00:08:53,750
vielen genutzt. 
Also zum Beispiel wird Open SSL 

158
00:08:54,390 --> 00:08:58,150
auf Linux Systemen sehr sehr 
häufig verwendet, ja und Linux 

159
00:08:58,150 --> 00:09:02,430
Systeme sind ja ein großer 
Bestandteil oder Linux Server 

160
00:09:02,430 --> 00:09:05,230
sind ja ein großer Bestandteil 
im Internet, also die mit dem 

161
00:09:05,230 --> 00:09:10,200
Internet verbunden sind. 
Und genau so. 

162
00:09:11,920 --> 00:09:14,040
Diese Sicherheit, die da 
geherrscht hat, darauf haben 

163
00:09:14,040 --> 00:09:16,720
sich halt eben auch sehr, sehr 
viele Leute verlassen und gesagt

164
00:09:16,720 --> 00:09:19,680
Okay, pass auf, da wird meine 
Daten werden verschlüsselt, 

165
00:09:19,680 --> 00:09:23,920
alles super, ich bin sicher, ich
kann ordentlich im Internet 

166
00:09:23,920 --> 00:09:26,280
kommunizieren, ohne dass 
irgendjemand meine, ich nenne es

167
00:09:26,280 --> 00:09:31,520
jetzt nochmal Geheimnisse 
irgendwie lesen kann und genau. 

168
00:09:32,520 --> 00:09:36,000
Das Ding ist. 
Dass, wie gesagt, es hat ja 

169
00:09:36,000 --> 00:09:39,320
nichts mit TLS selber zu tun, 
sondern dieser Bug hat ja in 

170
00:09:39,320 --> 00:09:42,160
dieser Software gesteckt, am 
Ende, der kam ja irgendwann in 

171
00:09:42,160 --> 00:09:45,120
die Software rein, in diese Open
assl Software und. 

172
00:09:45,590 --> 00:09:49,790
Und damit wir aber erst mal 
verstehen können, ja wie diese. 

173
00:09:51,640 --> 00:09:54,760
Wie dieser Bug überhaupt 
auftreten konnte, müssen wir 

174
00:09:54,760 --> 00:09:56,200
einmal auch noch mal ganz kurz 
gucken. 

175
00:09:56,200 --> 00:09:59,760
OK, wie funktioniert denn ein, 
die die Kommunikation im 

176
00:09:59,760 --> 00:10:02,520
Internet zwischen einem Client, 
also ein Client ist ja zum 

177
00:10:02,520 --> 00:10:06,520
Beispiel ein Webbrowser wie 
Firefox oder so und einem Server

178
00:10:07,480 --> 00:10:10,520
und das kannst du ja mal kurz 
einmal vielleicht umreißen. 

179
00:10:11,440 --> 00:10:15,320
Ja, also was ich dazu noch 
anmerken möchte, bis zu dem 

180
00:10:15,320 --> 00:10:21,360
Punkt. 
Dass diese TLS das TLS Protokoll

181
00:10:21,360 --> 00:10:26,800
ist ja nicht quasi so in. 
Auf dem Papier schon eine 10 

182
00:10:26,800 --> 00:10:28,720
gewesen. 
Klar ist es sowieso die erste 

183
00:10:28,720 --> 00:10:32,160
Version des Protokolls, aber es 
hat ja eine lange Historie 

184
00:10:32,160 --> 00:10:34,800
gehabt, es gab ja vorher schon 
die SSL Protokolle in 

185
00:10:34,800 --> 00:10:37,920
verschiedenen Versionen, darauf 
hat denn TLS aufgebaut, ist 

186
00:10:37,920 --> 00:10:42,720
optimiert, verbessert, das heißt
man war eigentlich schon an 

187
00:10:42,720 --> 00:10:45,160
einem Punkt, wo man von 
Sicherheit sprechen konnte, das 

188
00:10:45,160 --> 00:10:48,270
waren ja nicht so protestypen. 
Sondern man hatte eigentlich 

189
00:10:48,270 --> 00:10:51,510
wirklich ne gute Basis, auf die 
man sich auch verlassen hat, 

190
00:10:51,510 --> 00:10:54,190
weil du ja meintest. 
So, man hat diesen Glauben daran

191
00:10:54,190 --> 00:10:57,230
verloren zu der Zeit oder man 
sprach davon, dass Leute den 

192
00:10:57,230 --> 00:11:00,910
Glauben dran verliert, weil es 
ja wirklich etabliert war und 

193
00:11:00,910 --> 00:11:02,350
jetzt ist die Frage, wie kommt 
dann? 

194
00:11:02,750 --> 00:11:06,830
So ein kritischer Bug in dieser 
Open SSL Software wie du gesagt 

195
00:11:06,830 --> 00:11:11,190
hast, rein die quasi dieses 
Protokoll implementiert und. 

196
00:11:11,360 --> 00:11:15,310
Das lag halt daran. 
Dass natürlich so ne Protokolle 

197
00:11:15,310 --> 00:11:17,670
sich auch weiterentwickeln, ne, 
weil wie gesagt, es gab ja auch 

198
00:11:17,670 --> 00:11:21,270
vom SSL Protokoll schon ne 
Einser zweier dreier Version und

199
00:11:21,270 --> 00:11:24,550
genauso sollte sich ja auch das 
TLS Protokoll weiterentwickeln 

200
00:11:24,710 --> 00:11:28,190
und dafür gab es halt, weil du 
meintest wie sieht so diese 

201
00:11:28,190 --> 00:11:31,430
Kommunikation aus, da gab es 
halt nämlich das Problem wenn 

202
00:11:31,430 --> 00:11:35,790
ich jetzt quasi als Client, also
mit meinem Rechner zu Hause eine

203
00:11:35,790 --> 00:11:39,670
Verbindung auf so einer Website,
also zum Serveraufbau im 

204
00:11:39,670 --> 00:11:43,360
Internet weiß. 
Ich irgendwas googeln möchte 

205
00:11:43,640 --> 00:11:45,040
ist. 
Aber ein klassisches Beispiel, 

206
00:11:45,040 --> 00:11:46,400
das macht einfach jeder, glaube 
ich. 

207
00:11:48,120 --> 00:11:50,080
Dann wird natürlich diese 
Verbindung aufgebaut und 

208
00:11:50,080 --> 00:11:53,800
verschlüsselt und das kostet 
halt ja Rechenaufwand und 

209
00:11:54,000 --> 00:12:00,080
Ressourcen und man hat halt sich
überlegt, wie kann ich denn 

210
00:12:00,080 --> 00:12:04,480
diese Verbindung effektiv 
aufrechterhalten ohne immer 

211
00:12:04,480 --> 00:12:06,800
Daten auszutauschen, weil man 
kann sich das so vorstellen, man

212
00:12:06,800 --> 00:12:10,920
baut diese Verbindung auf, 
tauscht diese Daten aus und dann

213
00:12:10,920 --> 00:12:13,560
in der Regel ist die Verbindung 
eigentlich erledigt. 

214
00:12:13,790 --> 00:12:16,430
Obsolet, weil die Daten wurden 
ja ausgetauscht. 

215
00:12:16,550 --> 00:12:20,030
Aber um nicht jedes Mal wieder 
diese Verbindung aufzubauen, zu 

216
00:12:20,030 --> 00:12:22,870
verschlüsseln hat man sich halt 
überlegt, wie kann ich denn 

217
00:12:22,870 --> 00:12:26,150
effizient diese Verbindung 
aufrechterhalten? 

218
00:12:27,840 --> 00:12:31,040
Ohne ständig Daten austauschen 
zu müssen oder viel Daten 

219
00:12:31,040 --> 00:12:33,840
austauschen zu müssen. 
Und da gab es halt dieses 

220
00:12:33,840 --> 00:12:38,080
typische Keep Alive Prinzip, das
begegnet ja eigentlich in 

221
00:12:38,080 --> 00:12:40,520
sämtlichen Bereichen wieder und 
deswegen. 

222
00:12:42,240 --> 00:12:43,520
Hat man es auch Heartbeat 
genannt? 

223
00:12:43,520 --> 00:12:46,360
Das war das heartbeat Update, 
dass man gesagt hat okay wir 

224
00:12:46,360 --> 00:12:50,240
erweitern unser Protokoll um 
eine Funktionalität. 

225
00:12:51,840 --> 00:12:55,720
Einem ganz kleinen 
Datenaustausch zwischen Client 

226
00:12:55,720 --> 00:12:59,720
und Server, was im Endeffekt 
nichts anderes aussagt. 

227
00:13:01,440 --> 00:13:04,920
Der Client meldet hey, ich bin 
noch da und der Server antwortet

228
00:13:04,920 --> 00:13:07,760
sinngemäß Ich bin auch noch da 
cool, wir haben immer noch eine 

229
00:13:07,760 --> 00:13:12,680
Verbindung, weil du halt sonst 
keine Gewährleistung hast ob die

230
00:13:12,680 --> 00:13:14,160
gegenüberliegende Seite noch da 
ist. 

231
00:13:14,160 --> 00:13:17,390
Das ist ja. 
Ein ganz simples. 

232
00:13:19,080 --> 00:13:21,320
Problem eigentlich. 
Was aber gelöst werden muss. 

233
00:13:21,480 --> 00:13:24,480
Mal angenommen man telefoniert 
also wir beide würden jetzt 

234
00:13:24,480 --> 00:13:28,240
telefonieren und wir sehen uns 
nicht in dem Sinne, sondern ganz

235
00:13:28,240 --> 00:13:30,520
klassisches Telefonat, keine 
Videocall, ne. 

236
00:13:30,950 --> 00:13:34,070
Und wir würden reden und ich 
würde auf einmal nicht mehr 

237
00:13:34,070 --> 00:13:37,030
antworten. 
Ja, dann würdest du ja nicht 

238
00:13:37,030 --> 00:13:40,310
wissen oder oder beziehungsweise
noch besser wir wir, wir sagen 

239
00:13:40,310 --> 00:13:42,990
einfach, wir schweigen jetzt. 
Ja. 

240
00:13:44,030 --> 00:13:46,830
Und wie weißt du, ob ich 
wirklich noch am Telefon bin 

241
00:13:46,830 --> 00:13:50,390
oder wenn ich auflege, ist die 
Verbindung getrennt okay, aber 

242
00:13:50,590 --> 00:13:52,270
wenn ich einfach nicht mehr 
antworte. 

243
00:13:53,960 --> 00:13:55,720
Woher willst du wissen, ob ich 
wirklich noch am Telefon bin 

244
00:13:55,720 --> 00:13:58,400
oder es auf den Tisch gelegt 
habe und eigentlich gerade im 

245
00:13:58,560 --> 00:14:00,200
Kühlschrank bin oder mir einen 
Kaffee ziehe? 

246
00:14:00,200 --> 00:14:02,840
So weißt du das ohne zu 
kommunizieren, das ist ja das 

247
00:14:02,840 --> 00:14:05,640
witzige an der ganzen Geschichte
und das Ding ist, wenn man jetzt

248
00:14:05,640 --> 00:14:08,080
sagt, weil du meintest ja, diese
Verbindung wird ja 

249
00:14:08,080 --> 00:14:10,840
aufrechterhalten so lange, weil 
man kann sich das ja auch so 

250
00:14:10,840 --> 00:14:13,920
vorstellen, ein normales 
Telefonat funktioniert ja auch 

251
00:14:13,960 --> 00:14:16,920
so, dass ich zum Beispiel, ich 
rufe dich an, Tino, Na, wie 

252
00:14:16,920 --> 00:14:19,560
geht's dir und du so, ja, mir 
geht's super, und dann sagen wir

253
00:14:19,560 --> 00:14:21,560
auch nicht okay wir legen auf 
dann. 

254
00:14:21,800 --> 00:14:23,400
Rufe ich dich wieder an. 
Und was hast du heute so 

255
00:14:23,400 --> 00:14:25,120
gemacht? 
Ja, ich war heute Bouldern, ja 

256
00:14:25,120 --> 00:14:29,720
super okay dann legen wir wieder
auf, also dass man sozusagen nur

257
00:14:29,720 --> 00:14:32,680
diese eine Frage und Antwort 
absetzen und dann auflegen und 

258
00:14:32,680 --> 00:14:34,960
wieder anrufen, ach was ich noch
wissen wollte, was machst du 

259
00:14:34,960 --> 00:14:38,000
morgen, du antwortest, dann lege
ich auf und da kann. 

260
00:14:38,000 --> 00:14:40,560
Man ja schon relativ schnell 
sehen, dass diese Zeit, die du 

261
00:14:40,600 --> 00:14:44,030
zum Auflegen. 
Zum neu die Telefonnummer 

262
00:14:44,230 --> 00:14:46,750
eintippen, dann tut es, dann 
geht jemand ran. 

263
00:14:46,750 --> 00:14:50,510
Diese Zeit, die willst du ja ne 
über im übertragenen Sinne nicht

264
00:14:50,510 --> 00:14:52,870
bei der serverkommunikation 
Client Server Kommunikation 

265
00:14:52,870 --> 00:14:54,950
jedes Mal wieder haben. 
So genau. 

266
00:14:55,790 --> 00:14:58,790
Weil das das Thema ist. 
Ja, auch das kann man auch gut 

267
00:14:58,790 --> 00:15:02,030
an dem Telefonbeispiel bringen. 
Angenommen du wärst noch am 

268
00:15:02,030 --> 00:15:04,710
Telefon, dann ist ja deine 
Leitung blockiert, dann kann ich

269
00:15:04,710 --> 00:15:07,030
in der Zeit kein anderer 
Anrufen, aber du weißt 

270
00:15:07,030 --> 00:15:08,830
eigentlich gar nicht, ob du 
wirklich noch mit mir 

271
00:15:08,830 --> 00:15:10,790
telefonierst, ob ich jetzt je 
Moment wieder. 

272
00:15:11,230 --> 00:15:15,030
Als dran bin und was sage oder 
weiter schweige und du hängst am

273
00:15:15,030 --> 00:15:18,310
Telefon und denkst ja hm, sagt 
er jetzt noch, was sagt er 

274
00:15:18,310 --> 00:15:21,350
nichts, sind wir fertig. 
Eigentlich haben wir uns nicht 

275
00:15:21,350 --> 00:15:23,710
nicht wirklich verabschiedet, 
ich weiß nicht so wirklich, 

276
00:15:23,870 --> 00:15:26,190
weißt du und das blockiert dich 
aber in der. 

277
00:15:26,590 --> 00:15:30,520
Krankenwagen rufen irgendwann. 
Und das blockiert dich ja 

278
00:15:30,520 --> 00:15:32,920
derzeit für andere Telefonate 
und so ist es ja auch beim 

279
00:15:32,920 --> 00:15:35,120
Server. 
Er kann ja ne gewisse Anzahl an 

280
00:15:35,120 --> 00:15:38,320
Verbindungen entgegennehmen und 
aufbauen und wenn du jetzt 

281
00:15:38,320 --> 00:15:41,000
anfängst, da diese ganze 
Verbindung zu blockieren, dann 

282
00:15:41,000 --> 00:15:43,720
kann kein anderer sich mehr 
verbinden und das sind halt 

283
00:15:43,720 --> 00:15:49,880
alles Gründe warum dieses Keep 
Alive bzw Heartbeatprinzip in 

284
00:15:49,880 --> 00:15:53,040
sämtlichen Bereichen oft in der 
Kommunikation halt einfach 

285
00:15:53,040 --> 00:15:56,160
existiert. 
Um zu sagen, Pass auf, wir 

286
00:15:56,160 --> 00:15:59,920
müssen nicht die ganze Zeit 
Daten austauschen, aber in einem

287
00:15:59,920 --> 00:16:03,040
festen Zyklus möchte ich doch 
bitte noch wissen, ob du noch da

288
00:16:03,040 --> 00:16:05,360
bist und du mir antwortest. 
Und da gibt es halt 

289
00:16:05,360 --> 00:16:07,920
unterschiedliche Namen. 
Es gibt, manche nennen es auch 

290
00:16:07,920 --> 00:16:11,120
Ping Pong Prinzip, das heißt 
einer sendet ein Ping und der 

291
00:16:11,120 --> 00:16:14,520
antwortet also der andere 
antwortet mit Pong gibt es ja 

292
00:16:14,520 --> 00:16:18,280
1000 Sachen und Heartbeat ist 
halt auch sehr gängig, einfach 

293
00:16:18,280 --> 00:16:21,360
nur sinngemäß, dass der 
Herzschlag noch gefühlt wird, so

294
00:16:21,360 --> 00:16:24,920
wie sind hier noch da beide. 
Und ja, aber. 

295
00:16:24,920 --> 00:16:27,400
Das ist ja beim Telefonat genau.
Also das Kennwort kennt man ja 

296
00:16:27,400 --> 00:16:30,670
wirklich auch beim Telefonat, 
also wirklich. 1 zu 1 weil, wer 

297
00:16:30,670 --> 00:16:34,270
hat das nicht schon mal gehabt? 
Man telefoniert, einer der 

298
00:16:34,270 --> 00:16:37,670
Telefonierenden ist irgendwie 
gerade beschäftigt und antwortet

299
00:16:37,670 --> 00:16:41,070
nicht direkt auf die Frage und 
dann kommt es was noch da genau.

300
00:16:43,110 --> 00:16:45,710
Ja, und genau das ist es ja. 
Und dann sagt der andere 

301
00:16:45,710 --> 00:16:50,350
natürlich ja, sorry, was hast du
noch da noch mal genau so und 

302
00:16:50,350 --> 00:16:54,710
das ist ab sofort Liebe zu Liebe
zuhören, wenn dir das übern Weg 

303
00:16:54,710 --> 00:16:56,510
läuft, das Problem dann immer 
Ping und Pong. 

304
00:16:57,630 --> 00:16:59,310
Warten, bis ein Pong 
zurückkommt. 

305
00:17:01,720 --> 00:17:04,240
OK, kleiner Spaß am Rande. 
Auf jeden Fall wurde denn 

306
00:17:04,240 --> 00:17:07,000
dementsprechend das TLS 
Protokoll erweitert um diese 

307
00:17:07,000 --> 00:17:11,520
Heartbeatfunktionalität. 
Und zwar wurde das dann auch in 

308
00:17:11,520 --> 00:17:14,640
der Open SSL Library 
implementiert. 

309
00:17:16,440 --> 00:17:18,000
Das hat funktioniert. 
Es hat auf jeden Fall 

310
00:17:18,000 --> 00:17:19,800
funktioniert, die 
Implementierung, da gab es 

311
00:17:19,800 --> 00:17:24,560
nichts auszusetzen und das ist 
auch der Grund, warum mit diesem

312
00:17:24,560 --> 00:17:27,280
Update der Bug in die Software 
gekommen ist. 

313
00:17:27,280 --> 00:17:31,600
Aber erst 2 Jahre später 
gefunden wurde, weil es war rein

314
00:17:31,600 --> 00:17:36,000
funktional kein Bug, das heißt 
also es hat funktioniert, das 

315
00:17:36,000 --> 00:17:41,240
heartbeat Signal. 
Trotzdem. 

316
00:17:41,440 --> 00:17:46,320
Gab es ja jetzt diesen Bug als 
Sicherheitslücke, so gesehen. 

317
00:17:46,320 --> 00:17:50,360
Also das war jetzt kein Fehler 
in der Implementierung, sie war,

318
00:17:50,360 --> 00:17:53,600
sagen wir mal, einfach nicht 
vollständig, ja richtig, und 

319
00:17:53,760 --> 00:17:55,840
magst du da vielleicht mal drauf
eingehen? 

320
00:17:56,080 --> 00:17:57,960
Genau also wie das Ganze jetzt 
ungefähr. 

321
00:17:58,070 --> 00:18:00,470
Also ich versuch das jetzt mal 
immer grob, ganz, ganz einfach 

322
00:18:00,470 --> 00:18:04,430
verständlich zu erklären. 
Und zwar ist dieses heartbeat 

323
00:18:04,430 --> 00:18:07,510
Signal was vom Client gesendet 
wurde um halt eben zu prüfen, 

324
00:18:07,510 --> 00:18:09,390
sind wir noch da haben wir noch 
ne Kommunikation. 

325
00:18:10,070 --> 00:18:13,870
Wurde gesendet und das können 
wir uns so vorstellen, dass 

326
00:18:14,390 --> 00:18:17,990
einfach ein Text gesendet wurde,
wie zum Beispiel der Text heißt 

327
00:18:17,990 --> 00:18:21,590
jetzt XYZABC, was auch immer ne,
also sagen wir mal nur, dass man

328
00:18:21,590 --> 00:18:24,590
sich es einfacher vorstellen 
kann, XYZ wird gesendet. 

329
00:18:25,030 --> 00:18:28,270
Und zusätzlich ne, also in der 
Programmierung ist es ja auch 

330
00:18:28,270 --> 00:18:30,670
so, dass man immer sehr sehr 
genau ist und das ganze 

331
00:18:30,670 --> 00:18:33,350
vielleicht noch mal checkt oder 
was auch immer, wurde dazu noch 

332
00:18:33,350 --> 00:18:37,430
gesagt, OK pass auf, ich sende 
dir jetzt den Text XYZ und der 

333
00:18:37,430 --> 00:18:41,030
hat die Länge 3 so und der 
Server hat dann diese heartbeat 

334
00:18:41,030 --> 00:18:45,070
Nachricht bekommen vom Client 
und hat sich gedacht okay ich 

335
00:18:45,070 --> 00:18:49,630
krieg hier gerade die heartbeat 
Nachricht mit dem Inhalt XYZ die

336
00:18:49,630 --> 00:18:51,990
Verbindung bleibt offen da werde
ich doch mal den Client 

337
00:18:51,990 --> 00:18:55,150
antworten und werde ihm genau 
diese Nachricht eben auch 

338
00:18:55,150 --> 00:18:57,430
zurücksenden. 
Er weiß, OK, das ist jetzt auch 

339
00:18:57,430 --> 00:19:02,240
unser kleiner Handhack hier. 
Und sagt, OK, du bist noch da 

340
00:19:02,240 --> 00:19:04,160
und ich möchte dir mitteilen, 
dass ich auch noch da bin und 

341
00:19:04,160 --> 00:19:07,720
sende dir das XYZ zurück. 
So oder Abigail, was auch immer,

342
00:19:07,720 --> 00:19:11,360
nimm was du möchtest, ne soeben 
dieser spezifische Text. 

343
00:19:12,430 --> 00:19:15,430
Genau, du sendest quasi genau 
den gleichen Text zurück, damit 

344
00:19:15,430 --> 00:19:20,630
der Client weiß, OK, es ist auf 
jeden Fall die heartbeat Antwort

345
00:19:20,750 --> 00:19:23,630
Antwort, dass der die 
Gegenstände noch am Leben ist, 

346
00:19:23,630 --> 00:19:26,350
weil es ja die gleiche Nachricht
ist, die ich. 

347
00:19:26,630 --> 00:19:30,630
Gesendet hab ne, also dadurch 
kann ich mir sicher sein, dass 

348
00:19:30,870 --> 00:19:35,110
die Gegenseite auch auf meine 
Anfrage, also spezifisch auf 

349
00:19:35,110 --> 00:19:38,310
meine Anfrage reagiert hat. 
Deswegen macht man das mit dem 

350
00:19:38,310 --> 00:19:40,990
Text. 
Wie sah denn das jetzt n 

351
00:19:40,990 --> 00:19:43,750
bisschen technischer aus? 
Ja, guter Punkt, da wollt ich 

352
00:19:43,750 --> 00:19:46,270
nämlich gerade drauf eingehen. 
Lass uns da mal n bisschen 

353
00:19:46,270 --> 00:19:49,070
tiefer eintauchen wie die 
technische Umsetzung aussieht. 

354
00:19:49,270 --> 00:19:51,430
Also im Prinzip hat das 
Protokoll. 

355
00:19:52,390 --> 00:19:57,230
Eine Nachricht, ein Nachrichten,
also message Format vorgegeben, 

356
00:19:57,910 --> 00:20:02,350
wie quasi so eine heartbeat 
Nachricht codiert sein muss. 

357
00:20:03,990 --> 00:20:07,590
Das heißt, man hat halt so 
verschiedene Felder gehabt, die 

358
00:20:07,590 --> 00:20:11,470
es auszufüllen galt, um dann ne 
gültige Nachricht, dass man 

359
00:20:11,470 --> 00:20:16,590
sagen kann, laut dem TLS 
Protokoll ist das eine gültige 

360
00:20:16,590 --> 00:20:19,270
heartbeat Nachricht. 
Ist es wichtig, dass die halt 

361
00:20:19,270 --> 00:20:22,110
auch dem Protokoll entspricht? 
Deswegen musste man als Client 

362
00:20:22,110 --> 00:20:25,670
die dementsprechend aufbauen, 
als Server natürlich genauso und

363
00:20:25,670 --> 00:20:28,350
das sah folgendermaßen aus, dass
man gesagt hat, OK, wir haben 

364
00:20:28,350 --> 00:20:32,750
erstmal ein Byte, was quasi 
belegt ob es sich um eine 

365
00:20:32,750 --> 00:20:35,270
Anfrage. 
Oder eine Antwort handelt. 

366
00:20:35,270 --> 00:20:40,670
Also im Prinzip stand da codiert
mit ich glaube 1 oder 2 waren 

367
00:20:40,670 --> 00:20:43,990
die Werte, die da eingetragen 
werden konnten, dass. 

368
00:20:44,910 --> 00:20:49,270
Es sich entweder um ein Request 
handelt, das heißt ich starte 

369
00:20:49,550 --> 00:20:52,510
diesen Handshake, nenn ich es 
mal diesen heartbeat Austausch 

370
00:20:52,790 --> 00:20:55,430
oder ich antworte, das heißt der
andere Wert war denn die 

371
00:20:55,430 --> 00:20:59,190
Response. 
Beispielsweise der Client sendet

372
00:20:59,190 --> 00:21:02,550
dann ne 1, weil er die Anfrage 
an den Server stellt und der 

373
00:21:02,550 --> 00:21:06,670
Server antwortet in dem Feld mit
ner 2, weil es die Antwort ist. 

374
00:21:06,670 --> 00:21:09,710
Das ist eigentlich ne relativ 
einfache Codierung gewesen und 

375
00:21:09,710 --> 00:21:13,910
dafür wurde denn ein Byte in der
Nachricht ganz vorne belegt und 

376
00:21:13,910 --> 00:21:17,470
danach und das ist jetzt ein 
sehr entscheidender Punkt, gab 

377
00:21:17,470 --> 00:21:22,350
es ein 2 Byte Feld für die 
Payload und Payload ist im 

378
00:21:22,350 --> 00:21:24,790
Prinzip nichts anderes als das 
was du gerade erklärt hast. 

379
00:21:24,790 --> 00:21:27,510
Und zwar der Text den ich sende.
Das ist im Prinzip. 

380
00:21:27,750 --> 00:21:31,270
In mein Content der Nachricht 
sozusagen. 

381
00:21:31,310 --> 00:21:34,310
Was auch immer ich schicke, das 
spielt gar keine Rolle, aber es 

382
00:21:34,310 --> 00:21:37,950
ist auf jeden Fall meine 
Nachricht an sich und diese 2 

383
00:21:37,950 --> 00:21:42,830
Bytes haben darüber entschieden 
oder mitgeteilt, wie lang diese 

384
00:21:42,830 --> 00:21:45,390
Nachricht ist. 
Du hattest jetzt glaube ich ABC 

385
00:21:45,390 --> 00:21:49,270
oder XYZ gesagt, also sagen wir 
mal Länge 3, dann müsste ich in 

386
00:21:49,270 --> 00:21:53,230
diesem Feld eintragen, dass die 
Payload die Länge 3 hat. 

387
00:21:54,280 --> 00:21:58,160
Das hat den Sinn, dass die 
Gegenseite weiß, weil sie muss 

388
00:21:58,160 --> 00:21:59,920
ja mit der gleichen Nachricht 
antworten. 

389
00:22:01,640 --> 00:22:05,120
Muss sie ja wissen, was aus der 
Nachricht, die du gesendet hast,

390
00:22:05,120 --> 00:22:08,120
ist jetzt die Pay load und wie 
lang ist sie und wenn da denn 

391
00:22:08,120 --> 00:22:13,240
steht Länge 3, also 
beispielsweise also dann 3 Byte 

392
00:22:13,240 --> 00:22:17,880
sozusagen. 
Weiß sie okay die nachfolgenden 

393
00:22:17,880 --> 00:22:20,520
Bereiche in dieser Nachricht 
sind die Pay load, also meine 

394
00:22:20,520 --> 00:22:23,600
Nachricht, die ziehe ich mir 
raus und antworte, ich antworte 

395
00:22:23,600 --> 00:22:27,280
einfach genau mit der gleichen 
Länge zurück, so vom Prinzip vom

396
00:22:27,280 --> 00:22:29,760
Protokoll her macht das der 
absolut Sinn, weil wie gesagt 

397
00:22:29,800 --> 00:22:31,430
das. 
Der Sinn ist ja, mit der 

398
00:22:31,430 --> 00:22:35,510
gleichen Nachricht zu antworten.
Genau, und nach diesem Lenkfeld 

399
00:22:35,510 --> 00:22:38,630
kam denn die eigentliche 
Payload, also die Nachricht, und

400
00:22:38,630 --> 00:22:41,470
es gab noch n padding Feld, das 
spielt jetzt für uns an der 

401
00:22:41,470 --> 00:22:44,030
Stelle nicht so ne große Rolle, 
nur kurz. 

402
00:22:44,830 --> 00:22:49,710
Der Vollständigkeit halber. 
Es ist n Feld wo random Daten 

403
00:22:49,710 --> 00:22:53,430
eingetragen werden um einfach 
diesen Security Aspekt zu 

404
00:22:53,430 --> 00:22:56,150
bedienen. 
Weil das halt gewisse Angriffe 

405
00:22:56,150 --> 00:22:59,870
erschwert, weil du dann es fällt
dann halt schwieriger, also 

406
00:22:59,870 --> 00:23:02,950
schwerer zu erkennen, wo die 
eigentliche Nachricht liegt. 

407
00:23:03,110 --> 00:23:06,470
Das heißt, du haust wirklich 
random Daten rein, die einfach 

408
00:23:06,470 --> 00:23:09,510
keinen Sinn ergeben und dadurch 
kannst du halt. 

409
00:23:09,630 --> 00:23:13,830
Gewisse aber da hast du eine 
höhere Sicherheit gegenüber ja 

410
00:23:14,070 --> 00:23:16,550
feindlichen Angriffen. 
Sagen wir es mal so ne aus 

411
00:23:16,550 --> 00:23:20,110
Security Sicht, deswegen macht 
man das öfter, das heißt 

412
00:23:20,110 --> 00:23:23,310
eigentlich im Prinzip n rauschen
was du da mit rein codierst. 

413
00:23:24,350 --> 00:23:26,390
Genau. 
Und ja, jetzt kann man sich 

414
00:23:26,390 --> 00:23:28,710
vorstellen, ich bau mir diese 
Nachricht zusammen, nehme ich 

415
00:23:28,710 --> 00:23:33,910
noch mal dein Beispiel. 
Ich sag in dem typfeld sag ich 

416
00:23:33,910 --> 00:23:37,150
1, weil ich möchte jetzt n 
request stellen, dann sag ich 

417
00:23:37,150 --> 00:23:41,590
Länge 3 wie du meintest in dem 
Payload Lengsfeld also die Länge

418
00:23:41,590 --> 00:23:45,750
des Payloads und dann sende ich 
die Nachricht ABC an den Server 

419
00:23:45,750 --> 00:23:48,910
der sieht okay es ist request, 
das heißt ich schalte auf 

420
00:23:48,910 --> 00:23:51,590
Response und der baut jetzt 
genauso seine Nachricht 

421
00:23:51,590 --> 00:23:54,630
protokollgemäß auf sagt Ok 
response. 

422
00:23:55,510 --> 00:23:58,950
Länge liest der aus 3 Ah. 
OK, dann guck ich mir jetzt die 

423
00:23:58,950 --> 00:24:02,670
nächsten 3 Byte an. 
Ah, da steht ja ABC oder XYZ, 

424
00:24:02,670 --> 00:24:05,670
was hab ich grad gesagt digger 
ihr wisst was ich meine und ich 

425
00:24:05,670 --> 00:24:10,110
antworte quasi ich zieh mir das 
da raus und antworte genauso. 

426
00:24:11,100 --> 00:24:13,020
Wieder und schick die Nachricht 
zurück. 

427
00:24:13,020 --> 00:24:15,620
Genau mit dem Padding. 
Wie gesagt, das Padding ist 

428
00:24:15,620 --> 00:24:17,740
egal, der kann da selbst random 
Daten reinhauen. 

429
00:24:17,740 --> 00:24:21,100
Ja ne das ist wirklich auch da 
ist die Länge auch egal. 

430
00:24:21,100 --> 00:24:24,380
Das ist dann halt einfach nur so
zusätzlich dazu aber diese 

431
00:24:24,380 --> 00:24:27,740
ersten 3 Felder sind 
entscheidend, also der Typ, die 

432
00:24:27,740 --> 00:24:30,020
Länge der Nachricht und die 
Nachricht das muss ich halt 

433
00:24:30,020 --> 00:24:33,580
einhalten und so wieder als 
Antwort zurückschicken und dann 

434
00:24:33,580 --> 00:24:36,740
ist quasi dieses heartbeat 
Protokoll befriedigt sage ich 

435
00:24:36,740 --> 00:24:39,240
mal. 
Jeder weiß, Hey, der gegenüber 

436
00:24:39,240 --> 00:24:41,400
ist noch da. 
Ja, ich meine, man kennt das ja 

437
00:24:41,400 --> 00:24:44,080
auch, wenn du keine Ahnung ein 
online Formular ausfüllst, dann 

438
00:24:44,080 --> 00:24:47,400
hast du ja bestimmte Einträge 
die du machen kannst und du hast

439
00:24:47,400 --> 00:24:49,840
bestimmte Restriktionen 
vielleicht wo du wo es dann 

440
00:24:49,840 --> 00:24:52,800
heißt hier bitte den Namen, da 
zum Beispiel dein Alter in das 

441
00:24:52,800 --> 00:24:55,560
Alter kannst du keine Buchstaben
eingeben sondern nur zahlen und 

442
00:24:55,560 --> 00:24:56,960
vielleicht hast du noch irgendwo
ein Freitext. 

443
00:24:56,960 --> 00:25:00,040
So Freitext ist dann keine 
Ahnung wünsche Anforderungen was

444
00:25:00,040 --> 00:25:04,880
auch immer ist dann das Padding.
Und der Rest ist halt fest 

445
00:25:04,880 --> 00:25:07,840
definiert. 
So und jetzt hat es, gab es aber

446
00:25:07,840 --> 00:25:10,800
vielleicht so diese Kleine, das 
kleine Problem. 

447
00:25:11,350 --> 00:25:14,350
An der Stelle, dass man zum 
Beispiel, wenn ich jetzt dieses 

448
00:25:14,350 --> 00:25:17,630
online Formular Ding nehme, dass
man sagt, so, du konntest jetzt 

449
00:25:17,630 --> 00:25:22,840
aber vielleicht auch. 
In deinen Alter oder was auch 

450
00:25:22,840 --> 00:25:25,000
immer konntest du jetzt aber zum
Beispiel auch. 

451
00:25:26,150 --> 00:25:28,430
Buchstaben eintragen. 
Also du konntest halt ein 

452
00:25:28,430 --> 00:25:30,990
bisschen schummeln, ne, das ist 
das, worauf ich hinaus möchte, 

453
00:25:30,990 --> 00:25:34,600
das heißt? 
Das ist die eigentliche 

454
00:25:34,600 --> 00:25:36,440
Sicherheitslücke an der ganzen 
Geschichte. 

455
00:25:36,440 --> 00:25:40,760
Du hast die Möglichkeit gehabt 
zu sagen, XYZ musstest aber 

456
00:25:40,760 --> 00:25:44,960
nicht zwangsläufig sagen, das 
ist jetzt mein Text ist 3 lang, 

457
00:25:44,960 --> 00:25:51,360
sondern du konntest sagen, ich 
sende xyz und der Text, den ich 

458
00:25:51,640 --> 00:25:57,240
aber dir schicke ist 100 lang, 
das bedeutet, dass der Server. 

459
00:25:58,400 --> 00:26:03,280
Das XYZ wieder zurückgibt, aber 
zusätzlich noch 97 weitere 

460
00:26:03,280 --> 00:26:07,320
Zeichen, die dann im Endeffekt 
wieder mit zurückkamen und dann 

461
00:26:07,320 --> 00:26:10,680
ist natürlich die Frage, wo 
kommen diese 97 Zeichen her, 

462
00:26:10,680 --> 00:26:14,360
denkt er sich die aus oder was 
auch immer und da ist es. 

463
00:26:15,790 --> 00:26:18,910
Im Endeffekt so, dass so ne 
Anwendung hat ja so n gewissen 

464
00:26:18,910 --> 00:26:22,790
Speicher der Allokiert wird mit 
dem so n Programm arbeitet. 

465
00:26:23,390 --> 00:26:26,790
Mhm oder dann der Server. 
Ne der solche Requests 

466
00:26:26,790 --> 00:26:29,070
entgegennimmt. 
Also angenommen du hast jetzt 

467
00:26:29,070 --> 00:26:32,670
beispielsweise Onlinebanking und
bei diesem Onlinebanking kommt 

468
00:26:32,670 --> 00:26:37,390
jetzt irgendwie vorher weiß 
nicht Lisa Müller und meldet 

469
00:26:37,390 --> 00:26:42,800
sich an mit ihrem Usern. 
Meldet sich an mit ihrem 

470
00:26:42,800 --> 00:26:47,720
Usernamen und ihrem Passwort. 
So, und diese Daten werden für 

471
00:26:47,720 --> 00:26:51,720
eine gewisse Zeit in diesem 
Memory Speicher der Anwendung 

472
00:26:52,280 --> 00:26:55,680
gehalten und wenn du jetzt aber 
sagst, ich möchte gerne. 

473
00:26:57,440 --> 00:27:01,640
Xyz haben plus 100 weitere 
Zeichen, dann kann es muss 

474
00:27:01,640 --> 00:27:05,840
nicht, aber es kann durchaus 
sein, wenn du Glück hast werden 

475
00:27:05,840 --> 00:27:09,200
diese XYZ genommen und 
gleichzeitig noch 97 weitere 

476
00:27:09,200 --> 00:27:12,600
Zeichen und diese 97 weitere 
Zeichen, das ist einfach ein 

477
00:27:12,960 --> 00:27:17,280
Bereich der auf den Speicher 
zugreift und dann Daten aus 

478
00:27:17,280 --> 00:27:20,520
diesem Speicher einfach 
willkürlich rauszieht und wenn 

479
00:27:20,520 --> 00:27:23,040
du wie gesagt Glück hast als 
Angreifer kriegst du die 

480
00:27:23,040 --> 00:27:26,160
Credentials, also Username und 
Passwort von dieser Möglichkeit.

481
00:27:26,790 --> 00:27:30,790
Und hast dann im Nachhinein halt
eben die Möglichkeit, dich beim 

482
00:27:30,790 --> 00:27:32,830
Onlinebanking von Lisa Müller 
anzumelden. 

483
00:27:33,070 --> 00:27:37,750
Und das ist im Endeffekt genau 
der Knackpunkt, was das 

484
00:27:37,790 --> 00:27:42,350
eigentliche Problem war in 
dieser Heartbeat beziehungsweise

485
00:27:42,350 --> 00:27:45,670
dann deswegen harte Bleed 
Message am Ende. 

486
00:27:48,120 --> 00:27:52,560
Ja. 
Gut zusammengefasst, weil das 

487
00:27:52,560 --> 00:27:58,720
ist halt wirklich das 
gefährliche dabei, weil weil. 

488
00:27:58,920 --> 00:28:02,120
Wir auch anfangs meinten, es 
hatte Potenzial. 

489
00:28:02,120 --> 00:28:07,080
Sehr sehr viel Schaden 
anzurichten und Potenzial in dem

490
00:28:07,080 --> 00:28:08,640
Sinne, wie du so schön erklärt 
hast. 

491
00:28:08,640 --> 00:28:14,160
Es wird halt unerlaubterweise 
Speicher oder Inhalt des 

492
00:28:14,160 --> 00:28:19,360
Speichers herausgegeben. 
An die Anfrage an den Client 

493
00:28:19,360 --> 00:28:21,800
oder beziehungsweise in dem 
Fall, dann kann man ja sagen an 

494
00:28:21,800 --> 00:28:25,840
den Angreifer. 
Wenn du Glück hast, sind da halt

495
00:28:25,840 --> 00:28:29,840
komplett unbrauchbare Daten 
drin, weil das halt sonst wie 

496
00:28:29,840 --> 00:28:32,320
geschnitten ist im Speicher, 
dass du halt keine sinnvolle 

497
00:28:32,320 --> 00:28:36,670
Zusammenarbeit. 
Bekommst aber die Chance war da 

498
00:28:36,670 --> 00:28:40,830
und sie war auch nicht klein, 
dass du sehr, sehr sensible 

499
00:28:40,830 --> 00:28:44,630
Daten da rausschneiden konntest.
Dann ja und rausschneiden im 

500
00:28:44,630 --> 00:28:47,870
Sinne von das hast du ja schon 
cool erklärt, weil wenn wir es 

501
00:28:47,870 --> 00:28:52,670
dir noch mal kurz technisch 
machen, dieses Payload lenkfeld 

502
00:28:53,110 --> 00:28:57,030
sagt ja, also dann sagst du 
quasi gehen wir mal wieder vom 

503
00:28:57,030 --> 00:28:59,430
Client aus oder beziehungsweise 
jetzt reden wir mal von einem 

504
00:28:59,430 --> 00:29:01,910
Angreifer, du sagst jetzt dem 
Server. 

505
00:29:02,960 --> 00:29:06,640
Was hast du gesagt? 
100 Byte und Sendest ihm aber 

506
00:29:06,640 --> 00:29:10,440
nur Zeichen im Sinne von 3 Byte 
dann. 

507
00:29:10,640 --> 00:29:14,800
Wird er natürlich sagen. 
Ok, ich habe jetzt diese 3, 

508
00:29:14,880 --> 00:29:17,920
diese 100 Bytes, die ich 
zurückgeben muss und er fängt 

509
00:29:17,920 --> 00:29:23,040
an. 
Vorne und nimmt den Speicher von

510
00:29:23,040 --> 00:29:25,640
100 Bytes und gibt dir diesen 
Block zurück. 

511
00:29:25,840 --> 00:29:29,160
So und 3 Byte davon sind aber 
jetzt quasi eigentlich nur das, 

512
00:29:29,160 --> 00:29:32,040
was du ihm geschickt hast. 
Wie du ja so schön meintest, das

513
00:29:32,040 --> 00:29:35,040
heißt du kriegst jetzt 97 sagen 
wir mal Zeichen oder was auch 

514
00:29:35,040 --> 00:29:37,680
immer, Daten unerklärlich, 
unerlaubt dabei. 

515
00:29:38,630 --> 00:29:41,950
Und der Server agiert nicht 
dagegen und duldet das. 

516
00:29:41,950 --> 00:29:44,790
Und er duldet es immer wieder, 
weil wie gesagt, das ist dieses 

517
00:29:44,790 --> 00:29:48,470
heartbeat Signal, das heißt, es 
ist ja dieses Keep Alive 

518
00:29:48,470 --> 00:29:51,830
Prinzip, das heißt das ist ja ne
ständige Kommunikation, ja. 

519
00:29:52,630 --> 00:29:54,430
Ne, also das kannst du nicht 
einmal machen. 

520
00:29:54,430 --> 00:29:57,110
Dann Finger Cross im Sinne des 
Angreifers. 

521
00:29:57,110 --> 00:29:58,950
Hoffentlich ist da was 
Sinnvolles drin, sondern du 

522
00:29:58,950 --> 00:30:03,320
kannst ja die ganze Zeit. 
Quasi immer wieder versuchen da 

523
00:30:03,320 --> 00:30:06,040
Daten rauszuziehen. 
Das ist wie, als würde man 

524
00:30:06,040 --> 00:30:08,310
damals. 
Kennst du noch die pokémon 

525
00:30:08,310 --> 00:30:11,310
Booster Packs? 
Ja, du hast einen aufgemacht und

526
00:30:11,310 --> 00:30:13,990
hast dir gehofft, bitte ne 
richtig gute Karte, bitte ne 

527
00:30:13,990 --> 00:30:17,110
richtig gute Karte genau so, 
aber du musstest die ja kaufen, 

528
00:30:17,150 --> 00:30:20,390
aber das war ja quasi der Kiosk 
stand offen für dich, du 

529
00:30:20,390 --> 00:30:24,030
konntest so viel Booster Packs 
dir holen, bist du deine goldene

530
00:30:24,350 --> 00:30:29,400
Superkrasse Karte hattest. 
Das ist man. 

531
00:30:29,440 --> 00:30:32,840
Muss da gleich und man muss dazu
sagen, es ist es handelt ja 

532
00:30:32,840 --> 00:30:36,120
sich, es handelt sich ja hier 
nicht um einen Zeitraum von 10 

533
00:30:36,120 --> 00:30:39,760
Minuten, sondern um über 2 
Jahre, in denen diese 

534
00:30:39,760 --> 00:30:43,000
Sicherheitslücke offen stand, 
und jetzt kann man sich langsam 

535
00:30:43,000 --> 00:30:46,550
vielleicht. 
Erschließen, wieso man. 

536
00:30:47,510 --> 00:30:50,230
Wenn man das so mitkriegt, 
vielleicht so n bisschen den 

537
00:30:50,230 --> 00:30:54,950
Glauben verloren hat oder 
verlieren könnte, wenn man denn 

538
00:30:54,950 --> 00:30:58,870
sagt, Oh OK, also es ist jetzt 
hier ein wirklich 

539
00:30:58,870 --> 00:31:03,990
sicherheitskritisches. 
System, was ja aber über 2 

540
00:31:03,990 --> 00:31:07,470
Jahren Bug hatte und meine 
ganzen theoretisch meine ganzen 

541
00:31:07,470 --> 00:31:10,350
sensiblen Daten innerhalb von 2 
Jahren absnacken könnte. 

542
00:31:10,430 --> 00:31:13,870
Also Angreifer hätten das ne 
verwenden können und das hätte 

543
00:31:13,870 --> 00:31:17,310
ich genug versuche gehabt, quasi
genau und das ist echt krass was

544
00:31:17,710 --> 00:31:19,830
man sagen muss. 
Also wie gesagt das sind ja so 

545
00:31:19,830 --> 00:31:22,990
ein bisschen diese Auswirkungen,
man kann sich jetzt natürlich 

546
00:31:22,990 --> 00:31:26,030
hinstellen und sagen gut, Open 
SSL ist eine Software die läuft 

547
00:31:26,030 --> 00:31:29,590
halt auf Linux, also Windows 
nutzt eigentlich im Normalfall 

548
00:31:29,590 --> 00:31:33,240
nicht Open SSL. 
Auf jeden Fall weniger als Linux

549
00:31:33,720 --> 00:31:38,080
und da könnte man sagen ja okay 
Linux Server sind betroffen okay

550
00:31:38,520 --> 00:31:41,880
das Problem ist, dass natürlich 
die meisten Server im Internet 

551
00:31:41,880 --> 00:31:45,200
sind, Linux Server, weil Linux 
ist ja auch ein Open Source 

552
00:31:45,920 --> 00:31:49,120
Betriebssystem und es kostet 
nichts, du kannst es einfach 

553
00:31:49,120 --> 00:31:52,600
verwenden, was natürlich viele 
auch nutzen um halt eben ihre 

554
00:31:52,600 --> 00:31:56,960
Server laufen zu lassen 
logischerweise und wenn man dann

555
00:31:56,960 --> 00:32:00,040
aber jetzt denkt okay Windows 
war bei Safe, also zum Beispiel 

556
00:32:00,040 --> 00:32:02,040
Windows Server, dann ist es halt
auch. 

557
00:32:02,230 --> 00:32:04,430
Weit gefehlt. 
Weil, und das ist auch so ein 

558
00:32:04,430 --> 00:32:08,720
Ding, wenn du. 
Große Serverfarmen hast und zum 

559
00:32:08,720 --> 00:32:11,640
Beispiel Du hast NE Commerce 
System und du hast zum Beispiel 

560
00:32:11,640 --> 00:32:15,710
so ne Art. 
Prime Day, wo ganz viele Leute 

561
00:32:15,710 --> 00:32:18,790
nach Angeboten shoppen und alle 
greifen auf, zum Beispiel n 

562
00:32:18,790 --> 00:32:21,070
Server zu, dann würdest du ja 
nicht sagen, ja komm, wir 

563
00:32:21,070 --> 00:32:24,910
probieren mal alle auf den 
Server zuzulassen 100000000 

564
00:32:24,910 --> 00:32:27,390
Leute die da drauf wollen weil 
wie du ja auch schon meintest 

565
00:32:27,390 --> 00:32:31,190
Dino diese Kapazität der Leitung
ist ja belegt also nicht belegt 

566
00:32:31,190 --> 00:32:35,800
sondern begrenzt. 
Und da hast du deswegen 

567
00:32:35,800 --> 00:32:39,200
natürlich mehrere Server. 
So und damit das aber gut 

568
00:32:39,200 --> 00:32:41,920
funktioniert, gibt es meistens 
sogenannte Load Balancer, die 

569
00:32:41,920 --> 00:32:45,920
diesen Traffic verteilen auf die
verschiedenen Server, sodass 

570
00:32:46,400 --> 00:32:49,520
sagen wir mal, wenn 100 000 
Leute kommen, dass jeder Server 

571
00:32:49,520 --> 00:32:52,480
1000 Anfragen bekommt, je 
nachdem wieviel Server man hat 

572
00:32:52,960 --> 00:32:57,240
und selbst wenn du Windows 
Server hast, ist meistens ist es

573
00:32:57,240 --> 00:33:00,560
so, dass dieser Load Balancer, 
der davor sitzt um diese Last zu

574
00:33:00,560 --> 00:33:03,360
verteilen. 
Läuft meistens auf einem Linux 

575
00:33:03,360 --> 00:33:06,480
System und damit hast du genau 
an dieser Stelle wieder diese 

576
00:33:06,480 --> 00:33:09,240
sensiblen Daten, die dort 
sozusagen drüber laufen. 

577
00:33:10,820 --> 00:33:13,980
Ja, und damit hast du genau 
wieder diesen Angriff, obwohl 

578
00:33:13,980 --> 00:33:17,900
eigentlich theoretisch man sagen
könnte, ja, Windows war dann 

579
00:33:17,900 --> 00:33:21,190
nicht so gefährdet. 
Und am Ende waren dann doch 

580
00:33:21,190 --> 00:33:22,670
gefühlt wieder alle betroffen 
davon. 

581
00:33:22,910 --> 00:33:25,590
Ja, richtig und? 
Es ist ja auch nicht so, dass 

582
00:33:25,590 --> 00:33:27,470
man zum Beispiel sagt, Ja gut, 
das, es geht jetzt nur um 

583
00:33:27,470 --> 00:33:30,030
Websites, ne, also TLS wird ja 
von verschiedenen Sachen 

584
00:33:30,030 --> 00:33:35,870
benutzt, also Mails verwenden, 
TLSVPNS verwenden, TLS Firewalls

585
00:33:35,870 --> 00:33:39,270
verwenden, TLS, also es gibt 
sehr sehr viele Komponenten die 

586
00:33:39,270 --> 00:33:42,800
TLS verwenden. 
Vpn ist zum Beispiel auch ein 

587
00:33:42,800 --> 00:33:46,040
guter Grund gewesen, dieses 
heartbeat Update umzusetzen, 

588
00:33:46,040 --> 00:33:48,840
weil du halt diese aufrechte 
Verbindung die ganze Zeit dann 

589
00:33:48,840 --> 00:33:54,480
hast. 
Ja, das ist schon das ist, das 

590
00:33:54,480 --> 00:33:56,360
ist schon krass, was das für 
Auswirkungen hatte. 

591
00:33:56,600 --> 00:33:59,200
Ich würde gerne noch einen 
anderen Punkt eingehen, weil ich

592
00:33:59,200 --> 00:34:02,480
weiß nicht, wie es dir da ging, 
aber als ich mich mit dem Bug 

593
00:34:02,480 --> 00:34:05,040
beschäftigt habe, habe ich mich 
halt gefragt, wie kann es denn 

594
00:34:05,040 --> 00:34:10,320
sein, dass ich jetzt ein Update 
mache und so eine enorm große 

595
00:34:10,320 --> 00:34:13,360
Sicherheitslücke da reinkommt 
und vor allem, wie kann es sein,

596
00:34:13,360 --> 00:34:17,440
dass unerlaubterweise Speicher 
der Anwendung, also vom Server 

597
00:34:17,639 --> 00:34:20,239
heraus. 
Gegeben wird und. 

598
00:34:20,389 --> 00:34:23,350
Dann hab ich mir quasi das in 
Open SSL angeguckt. 

599
00:34:23,350 --> 00:34:27,389
Also findet man ja auch schnell 
Liebe zu liebe Zuhörer, wenn du 

600
00:34:27,389 --> 00:34:29,790
Bock hast dir das mal 
anzuschauen, dann Google einfach

601
00:34:29,790 --> 00:34:33,389
den Bug und sag Source Code dazu
oder so, dann findest du auch 

602
00:34:33,389 --> 00:34:35,270
recht schnell genau den 
Ausschnitt, der dafür 

603
00:34:35,270 --> 00:34:39,030
verantwortlich war, also das 
Update und die Antwort ist 

604
00:34:39,030 --> 00:34:42,070
eigentlich relativ schnell 
gegeben, weil Open SSL Inc. 

605
00:34:42,110 --> 00:34:45,270
Entwickelt ist und versteht mich
nicht falsch, ich habe auch sehr

606
00:34:45,270 --> 00:34:47,630
lange in C entwickelt und ich 
mag die Sprache auch sehr. 

607
00:34:48,520 --> 00:34:51,679
Aber das erklärt Halt auch 
relativ schnell, wie es denn 

608
00:34:51,679 --> 00:34:54,320
sein kann, dass so so ein 
Speicher da einfach mal 

609
00:34:54,320 --> 00:34:57,760
rausgegeben wird. 
So ein klassischer Fall ist ja 

610
00:34:57,760 --> 00:35:01,320
meistens immer die Rede von 
Memory Leaks, das heißt das 

611
00:35:01,320 --> 00:35:03,920
Speichern nicht mehr freigegeben
wird und damit tot ist. 

612
00:35:03,920 --> 00:35:07,040
Aber hier haben wir genau den 
umgekehrten Fall, dass man sagt,

613
00:35:07,800 --> 00:35:11,000
Wir geben Speicher wirklich nach
außen, also wir liegen die die 

614
00:35:11,000 --> 00:35:14,360
Data dahinter und das fand ich 
halt total krass und wenn man 

615
00:35:14,360 --> 00:35:16,520
sich diesen Source Code anguckt,
das sind wirklich nur ein paar 

616
00:35:16,520 --> 00:35:18,840
Zeilen. 
Fabi, das ist so krass und das 

617
00:35:18,840 --> 00:35:22,400
ist echt sauberer C Code, das 
ist nicht nicht schlecht 

618
00:35:22,400 --> 00:35:25,590
programmiert. 
Also da wirklich kein Blame, nur

619
00:35:25,590 --> 00:35:29,670
es ist halt so dieses typische 
Happypass Coding, das heißt es 

620
00:35:29,670 --> 00:35:34,550
ist einfach da man man ging halt
davon aus serverseitig, dass der

621
00:35:34,550 --> 00:35:39,630
Client einem realistische 
Informationen schickt, also man 

622
00:35:39,630 --> 00:35:44,790
ging davon aus dieses Pay Load 
Lengfeld ist ein wahrer Wert, 

623
00:35:45,230 --> 00:35:47,950
dass niemand die Absicht hat da 
was falsches einzutragen, 

624
00:35:47,950 --> 00:35:51,640
sondern wer würde stimmt immer. 
Wer würde auch sowas tun, 

625
00:35:52,520 --> 00:35:55,640
sondern dass quasi diese 
angegebene Länge auch immer zur 

626
00:35:55,640 --> 00:35:58,800
Nachricht passt und 
dementsprechend hat man dann 

627
00:35:58,800 --> 00:36:02,880
ganz ein typischer C Code. 
Manier ist ja klassische Pointer

628
00:36:02,880 --> 00:36:05,600
Arithmetik dann man hat sich 
halt einen Pointer darauf 

629
00:36:05,600 --> 00:36:08,600
gesetzt, hat die Nachricht 
genauso wie ich es vorhin gesagt

630
00:36:08,600 --> 00:36:11,440
habe, der ist ja vorgegeben, der
Aufbau, das heißt du konntest 

631
00:36:11,440 --> 00:36:14,840
genau sagen erstes Byte gut 
request oder Response hattest du

632
00:36:14,840 --> 00:36:17,680
schon mal deine Unterscheidung 
wie du antwortest, dann hast du.

633
00:36:17,840 --> 00:36:20,960
Du die nächsten 2 Bytes genommen
hast gesagt, aha okay länger. 

634
00:36:20,960 --> 00:36:25,150
Was war es bei dir 3 so dann. 
Da iteriere ich den Point da 

635
00:36:25,150 --> 00:36:26,790
weiter und gucke auf die 
Nachricht. 

636
00:36:26,790 --> 00:36:28,950
Schneid mir diese Nachricht der 
Länge 3 raus. 

637
00:36:30,640 --> 00:36:33,120
Reservier mir n Speicher für 
meine Nachricht, hau da alles 

638
00:36:33,120 --> 00:36:36,960
rein und ab damit wirklich 
Straight Forward entwickelt. 

639
00:36:37,200 --> 00:36:40,080
Das heißt du allokierst dir dein
eigenen Speicher, dass du genug 

640
00:36:40,080 --> 00:36:43,320
hast, um diese Nachricht 
aufzubauen und kopierst dann mit

641
00:36:43,320 --> 00:36:45,480
dieser typischen Ich glaube 
jeder der man C entwickelt hat, 

642
00:36:45,480 --> 00:36:48,160
kennt die Funktion mit der man 
copy Funktion sagst. 

643
00:36:48,160 --> 00:36:53,600
Du kopier bitte aus der 
Speicheradresse von da an zu 

644
00:36:53,600 --> 00:36:55,400
einer anderen die eine 
Zieladresse. 

645
00:36:56,240 --> 00:37:00,120
Also Quelle und Destination 
mäßig mit der Länge Pay load 

646
00:37:00,120 --> 00:37:03,800
length, die angegeben war und 
dann macht die Funktion, dass 

647
00:37:03,800 --> 00:37:08,760
dann sagst du bitte von A nach B
3 Bytes, dann wären genau diese 

648
00:37:08,760 --> 00:37:14,840
3 Bytes die da anfangen bei A 
nach B gekopiert so und der 

649
00:37:14,840 --> 00:37:18,120
Funktion ist es voll egal was du
für eine Länge da übergibst oder

650
00:37:18,320 --> 00:37:21,240
ob in der ursprünglichen 
Nachricht überhaupt so viel 

651
00:37:21,240 --> 00:37:23,760
Bytes drin waren, das ist der 
Funktionär egal. 

652
00:37:23,760 --> 00:37:25,240
Und jetzt genau das ist nämlich 
das Problem. 

653
00:37:25,790 --> 00:37:30,950
Weil du sagst, jetzt 100 Bytes 
bitte kopieren, gibst ihm aber 

654
00:37:30,950 --> 00:37:35,150
nur 3, dann allokiert er sich 
aber den Bereich und sagt jetzt 

655
00:37:35,230 --> 00:37:38,630
an der Stelle 100 Bytes bitte 
und nach dem vierten Byte sind 

656
00:37:38,630 --> 00:37:41,070
es eigentlich deine eigenen 
Daten die du da rein schreibst 

657
00:37:41,070 --> 00:37:44,990
und nicht mehr das was du 
Empfang hast und 97 Bytes deines

658
00:37:44,990 --> 00:37:48,030
eigenen Speichers schreibst du 
schön in diese Antwortnachricht 

659
00:37:48,030 --> 00:37:51,750
und ab damit und der Client 
denkt sich alles klar, ich habe 

660
00:37:51,750 --> 00:37:55,390
3 bytes gesendet, die nächsten 
97 mal gucken was drinsteht. 

661
00:37:56,760 --> 00:37:59,480
Da und eigentlich wäre doch 
genau der fix dann an der Stelle

662
00:37:59,480 --> 00:38:04,600
und das was vergessen wurde war 
ja okay du sendest mir 3, sagst 

663
00:38:04,600 --> 00:38:09,800
aber 100, also sende ich dir 
dann nur maximal 3 so weil mehr 

664
00:38:09,800 --> 00:38:12,160
darf ich dir nicht senden oder? 
Das wäre doch jetzt die logische

665
00:38:12,160 --> 00:38:15,360
Konsequenz daraus. 
Genau, also die Konsequenz ist, 

666
00:38:15,360 --> 00:38:19,400
einfach mal zu überprüfen und so
wurde es am Ende auch gefixt. 

667
00:38:19,520 --> 00:38:23,480
Es ist ein Einzeiler gut. 
Wir 2 mit dem Return noch. 

668
00:38:24,680 --> 00:38:26,440
Es ist eigentlich nur eine If 
Bedingung am Anfang. 

669
00:38:26,910 --> 00:38:32,240
Dass du sagst, wenn. 
Payload Lenks, die angegeben 

670
00:38:32,240 --> 00:38:35,920
ist, nicht realistisch ist also 
nicht gleich der 

671
00:38:35,920 --> 00:38:40,480
Nachrichtenlänge, die ich 
empfangen hab, ist plus dem 

672
00:38:40,480 --> 00:38:43,310
Overhead von. 
Also du musst natürlich noch 

673
00:38:43,310 --> 00:38:47,350
drauf rechnen, dass du ein Byte 
hast für die Typisierung, was 

674
00:38:47,350 --> 00:38:50,230
ich meinte 2 Bytes für die 
eigentliche Länge, das ist ja 

675
00:38:50,230 --> 00:38:53,990
dieses 16 bit Feld, das rechnest
du drauf ja dann aber die 

676
00:38:53,990 --> 00:38:57,470
gesamte Länge der Nachricht muss
dann einfach dementsprechend was

677
00:38:57,470 --> 00:39:00,030
in Payload längs steht und wenn 
das nicht der Fall ist, dann 

678
00:39:00,030 --> 00:39:03,270
wird es halt verworfen und 
genauso am Ende sah auch der fix

679
00:39:03,270 --> 00:39:07,110
aus, das heißt es sind 2 Zeilen 
die zwischen der absoluten 

680
00:39:07,110 --> 00:39:10,270
Katastrophe und sicherer 
Software entschieden haben und 

681
00:39:10,270 --> 00:39:14,440
das ist mind blowing finde ich. 
Ich finde das halt so krass, was

682
00:39:14,440 --> 00:39:17,680
so 2 Zeilen ausmachen können, 
vor allem weil wir halt 2 Jahre.

683
00:39:17,680 --> 00:39:22,120
Sind ja richtig, weil das Halt 
so eine Riesensicherheitslücke 

684
00:39:22,120 --> 00:39:23,720
ist. 
Durch 2 Zeilen Code. 

685
00:39:23,880 --> 00:39:26,160
Ich stelle mir das ungefähr so 
vor, weil das wurde ja dann 

686
00:39:26,160 --> 00:39:30,160
sozusagen per Zufall eigentlich 
gefunden und dann konnte es auch

687
00:39:30,160 --> 00:39:31,760
gefixt werden. 
Dann musste das natürlich 

688
00:39:32,200 --> 00:39:35,640
öffentlich publiziert werden und
so weiter aber ich stelle mir 

689
00:39:35,640 --> 00:39:38,760
das ungefähr so vor, als würde 
man in einer Bank arbeiten. 

690
00:39:39,880 --> 00:39:42,360
Nach 2 Jahren mitkriegen, Ach du
Scheiße. 

691
00:39:44,410 --> 00:39:47,090
Die ganze Zeit konnte man 
einfach in den Safe gehen und 

692
00:39:47,090 --> 00:39:50,990
sich da was rausholen. 
Ja, so ungefähr so, als du dir 

693
00:39:51,470 --> 00:39:54,270
nach 2 Jahren denkst. 
Alter. 

694
00:39:54,440 --> 00:39:56,480
Wie kann ich das irgendwem 
erklären? 

695
00:39:56,880 --> 00:40:00,440
Also weißt du, das ist das ist 
echt krass und da kommt man 

696
00:40:00,440 --> 00:40:02,640
eigentlich auch n bisschen zu 
dem Punkt, natürlich, so wie 

697
00:40:02,640 --> 00:40:04,480
konnte das eigentlich überhaupt 
passieren? 

698
00:40:04,480 --> 00:40:07,960
Also das klingt natürlich jetzt 
so wie okay, aber warte mal, 

699
00:40:07,960 --> 00:40:10,320
warte mal, warte mal. 
Also aus heutiger Sicht 

700
00:40:10,480 --> 00:40:14,400
natürlich, wir schreiben Tests, 
das macht ja hoffentlich jeder 

701
00:40:14,760 --> 00:40:19,520
klare Sache, auf jeden Fall, 
aber einfach nur die Frage wie 

702
00:40:19,520 --> 00:40:22,240
das passieren konnte und ich 
finde es auch interessant bei 

703
00:40:22,240 --> 00:40:25,040
Open SSL ist ja eine Open Source
Software. 

704
00:40:25,470 --> 00:40:28,630
Und diese Open Source Software 
wurde eigentlich mehr oder 

705
00:40:28,630 --> 00:40:32,590
weniger von der Hand voll 
freiwilligen Leute gepflegt und 

706
00:40:32,590 --> 00:40:37,310
Gemain, taint und so weiter und 
es gab auch nen finanziellen 

707
00:40:37,310 --> 00:40:39,910
Zuschuss. 
Also es wurde sozusagen 

708
00:40:40,150 --> 00:40:44,110
gespendet dafür, dass so eine 
Open Source Library, die ja sehr

709
00:40:44,110 --> 00:40:47,310
sehr wichtig ist, also eine 
wirklich unglaublich wichtige 

710
00:40:47,310 --> 00:40:51,750
essentielle Software, die für 
die Sicherheit von Millionen. 

711
00:40:52,000 --> 00:40:54,560
Servern sorgt. 
Natürlich wird da gespendet und 

712
00:40:54,560 --> 00:40:59,440
es wurde ungefähr jährlich $2000
gespendet, damit diese Software.

713
00:41:01,600 --> 00:41:04,960
Wird von einer Handvoll Leuten, 
das ist doch also, das ist krass

714
00:41:05,160 --> 00:41:08,920
und du musst dir das so 
vorstellen, dass ein Doktorand. 

715
00:41:09,870 --> 00:41:15,270
Hat diesen Code, also diesen 
Heartbeat ne, also das genau 

716
00:41:15,270 --> 00:41:17,590
dieses Update, diese 
Weiterentwicklung ne damit man 

717
00:41:17,590 --> 00:41:20,670
eben genau dieses Problem was 
wir besprochen hatten mit dieser

718
00:41:20,750 --> 00:41:23,070
Kommunikation die 
aufrechterhalten werden kann, 

719
00:41:23,270 --> 00:41:27,230
wurde implementiert von diesem 
Doktoranden und kleiner Fun 

720
00:41:27,230 --> 00:41:33,470
Fact, es wurde Silvester 2011 
committed eine Minute von 

721
00:41:33,470 --> 00:41:35,950
Neujahr. 
Schön. 

722
00:41:36,510 --> 00:41:38,870
Also ich weiß nicht, was das 
damit zu tun hat, aber ich 

723
00:41:38,870 --> 00:41:41,670
dachte mir so, vielleicht ist es
auch n Learning, dass man 

724
00:41:41,670 --> 00:41:43,950
vielleicht zu Silvester keinen 
Code mehr schreibt, sondern 

725
00:41:43,950 --> 00:41:46,070
einfach mal. 
Rausgeht mit n paar Leuten 

726
00:41:46,470 --> 00:41:48,950
Verknaller loslässt. 
Oh, stell doch covid. 

727
00:41:48,950 --> 00:41:51,710
Das Update muss fertig werden, 
gleich ist Neujahr, das nehme 

728
00:41:51,710 --> 00:41:55,990
ich nicht mit ins nächste. 
Jahr und das wurde dann halt von

729
00:41:55,990 --> 00:41:58,750
einem Mitarbeiter oder von einem
anderen zuständigen. 

730
00:42:00,120 --> 00:42:04,400
Sag ich mal approved und das 
heißt einer committed etwas mit 

731
00:42:04,400 --> 00:42:07,200
diesem kleinen Fehler, einer 
übersieht es und am Ende hast du

732
00:42:07,200 --> 00:42:11,040
halt dann einfach ein 2 Jahre 
lange Sicherheitslücke, die 

733
00:42:11,280 --> 00:42:15,000
absolut krass ist. 
Und das find ich halt so krass, 

734
00:42:15,000 --> 00:42:18,160
weil man kann jetzt sagen, ja 
gut, das musst du testen und 

735
00:42:18,160 --> 00:42:20,640
hier warum, wer weiß was da 
lief. 

736
00:42:20,640 --> 00:42:25,080
An Tests weiß ich jetzt nicht, 
aber selbst wenn du eine hohe 

737
00:42:25,080 --> 00:42:29,000
Testabdeckung hast oder sehr 
sorgfältig testet, es ist. 

738
00:42:29,240 --> 00:42:32,560
Auch verständlich, dass so ein 
Edge Case oder bzw. 

739
00:42:33,710 --> 00:42:38,590
Diese Annahme, dass jemand keine
fairen oder echten Daten damit 

740
00:42:38,590 --> 00:42:42,510
schickt, die passen, dass man 
sonst Fall auch mal übersieht 

741
00:42:42,510 --> 00:42:44,390
das das passiert. 
Du kannst ihm ja auch keinen 

742
00:42:44,390 --> 00:42:47,550
Vorwurf machen, weil wie gesagt,
das war ja nicht schlecht 

743
00:42:47,550 --> 00:42:50,950
gecodet, das war ne saubere 
Funktion, ich weiß keine Ahnung 

744
00:42:50,950 --> 00:42:53,510
wie lange die da noch drin 
geblieben ist, ob die noch drin 

745
00:42:53,510 --> 00:42:57,470
ist, ob er da noch quasi 
contributed drauf weiß ich 

746
00:42:57,470 --> 00:42:59,470
nicht. 
Ansonsten liebe Grüße. 

747
00:43:00,520 --> 00:43:03,120
Aber Fakt ist, das war eine gut 
geschriebene C Funktion, nur 

748
00:43:03,120 --> 00:43:05,480
dass dieser eine Fall nicht 
berücksichtigt wurde und das ist

749
00:43:05,480 --> 00:43:09,240
absolut legitim, dass das 
passiert, da kann man niemand 

750
00:43:09,240 --> 00:43:11,520
strikt raus drehen. 
Ich muss sagen, wenn du das in 

751
00:43:11,520 --> 00:43:15,200
einem unternehmerischen Kontext 
hättest, glaube ich, dass man 

752
00:43:15,200 --> 00:43:17,680
schon strikt daraus drehen 
könnte, weil wenn du zum 

753
00:43:17,680 --> 00:43:20,000
Beispiel wirklich in einer 
großen Firma beispielsweise 

754
00:43:20,000 --> 00:43:24,320
arbeitest und man dann sagt, ja 
okay, also man sollte solche 

755
00:43:24,320 --> 00:43:27,080
Sicherheitschecks sozusagen 
machen, also gucken, wo sind 

756
00:43:27,080 --> 00:43:31,280
denn mögliche? 
Angriffsvektoren, das sollte man

757
00:43:31,280 --> 00:43:34,240
auf jeden Fall checken und 
sicherheitsprofil davon 

758
00:43:34,240 --> 00:43:36,320
aufbauen, da bin ich fest von 
überzeugt. 

759
00:43:36,320 --> 00:43:39,240
Nur man muss ja bedenken und das
ist finde ich das was die ganze 

760
00:43:39,240 --> 00:43:41,840
Sache irgendwie entschuldigt, 
weil erstens ist es guter Code 

761
00:43:41,840 --> 00:43:43,910
gewesen. 
Meintest und auf der anderen 

762
00:43:43,910 --> 00:43:48,390
Seite waren das Leute, die das 
freiwillig contributed haben und

763
00:43:49,190 --> 00:43:52,270
da ist ja sozusagen auch ein 
bisschen selber schuld, wenn 

764
00:43:52,270 --> 00:43:56,310
alle auf der ganzen Welt eine 
sehr, sehr wichtige Sicherheits,

765
00:43:56,310 --> 00:43:58,230
also eine sehr, sehr wichtige 
Software benutzen, die 

766
00:43:58,230 --> 00:44:00,910
sicherheitsrelevant ist. 
Für das sage ich jetzt mal das 

767
00:44:00,910 --> 00:44:05,430
gesamte Internet, und dann gibt 
man aber nur $2000 Spenden 

768
00:44:05,430 --> 00:44:08,110
jährlich an so ein paar 
Mitarbeiter, die eigentlich nur 

769
00:44:08,150 --> 00:44:11,150
Gutes tun wollen und sozusagen 
unterstützen wollen. 

770
00:44:11,150 --> 00:44:12,990
Also da kannst du diesen 
Menschen keinen Strick. 

771
00:44:14,070 --> 00:44:18,110
Aber nee, deswegen ne nur ich 
finde halt auch. 

772
00:44:18,110 --> 00:44:20,830
Also ich verstehe deinen Punkt, 
dass man sag ich mal unter 

773
00:44:20,830 --> 00:44:23,710
unternehmerischen Kontext das so
nicht passieren darf. 

774
00:44:23,710 --> 00:44:25,550
Es darf allgemein nicht 
passieren, ganz klar. 

775
00:44:26,110 --> 00:44:29,230
Nur ich finde, die Schwierigkeit
ist eher oder was problematisch 

776
00:44:29,230 --> 00:44:31,230
ist, dass das so spät 
aufgefallen ist. 

777
00:44:31,430 --> 00:44:34,990
Also es ist ja absolut nicht 
verwerflich, dass man so n Fall 

778
00:44:34,990 --> 00:44:38,030
übersieht, aber man muss es halt
relativ schnell mitbekommen und 

779
00:44:38,030 --> 00:44:41,590
fixen, weil 2 Jahre ist einfach 
zu lang für so ne 

780
00:44:41,590 --> 00:44:45,150
Sicherheitslücke und was ich 
extrem krass auch dabei finde, 

781
00:44:45,150 --> 00:44:49,550
um das noch mal kurz zu 
beleuchten, du kannst einfach 

782
00:44:49,550 --> 00:44:53,630
nicht. 
Ermitteln, wieviel Schaden 

783
00:44:53,630 --> 00:44:56,790
entstanden ist. 
Du weißt nicht, was innerhalb 

784
00:44:56,790 --> 00:45:00,110
dieser 2 Jahren an Daten 
abgegriffen wurde? 

785
00:45:00,110 --> 00:45:04,590
Ja, und diese Unbekannte, also 
dieses, diese Ungewissheit, wer 

786
00:45:04,590 --> 00:45:08,990
weiß jetzt über was Bescheid? 
Am Ende finde ich ist halt das 

787
00:45:08,990 --> 00:45:14,470
krasse und nahezu schon 
unheimliche dabei, weil es 2 

788
00:45:14,470 --> 00:45:17,870
Jahre sind lang, das heißt du 
als Unternehmen, wenn du jetzt 

789
00:45:17,870 --> 00:45:19,870
deine Server hast mit dieser 
Version. 

790
00:45:20,680 --> 00:45:23,920
Also. 
Unter dieser Protokoll Version 

791
00:45:23,920 --> 00:45:26,160
laufen lassen hast und diese 
Sicherheitslücke drin war. 

792
00:45:26,360 --> 00:45:29,720
Du weißt ja nicht ob jetzt 
einfach sämtliche Firmen interne

793
00:45:29,720 --> 00:45:32,480
Geheimnisse oder was auch immer 
auf den Servern war, jetzt nach 

794
00:45:32,480 --> 00:45:36,440
außen gedrungen ist. 
Ja richtig, das ist auch eine 

795
00:45:36,440 --> 00:45:40,120
Sache, die sehr, sehr einen 
bitteren Nachgeschmack zurück 

796
00:45:40,120 --> 00:45:42,360
lässt. 
Was ich noch interessant fand, 

797
00:45:42,360 --> 00:45:44,760
war, dass es dann natürlich 
Lösungen gab, nachdem es 

798
00:45:44,760 --> 00:45:46,760
aufgedeckt wurde. 
Das heißt, du konntest natürlich

799
00:45:46,760 --> 00:45:49,520
eine gefixte Version einspielen.
Auf deinen Servern 

800
00:45:49,520 --> 00:45:51,680
logischerweise. 
Das heißt, dass die Serverseite,

801
00:45:51,920 --> 00:45:54,480
wenn du aber zum Beispiel ein 
Client warst und kein Server 

802
00:45:54,480 --> 00:45:56,240
betrieben hast und damit 
eigentlich nichts am Hut 

803
00:45:56,240 --> 00:45:59,320
hattest, gab es sogar auch 
Plugins für Browser, die dann im

804
00:45:59,320 --> 00:46:02,040
Vorfeld, wenn du auf eine Seite 
gegangen bist, gecheckt haben, 

805
00:46:02,360 --> 00:46:05,280
ist dieser Server, mit dem du 
gerade kommunizieren möchtest, 

806
00:46:05,280 --> 00:46:08,230
anfällig dafür. 
Ja, also fand ich auf jeden Fall

807
00:46:08,230 --> 00:46:10,070
interessant und irgendwie auch 
ne coole Sache. 

808
00:46:10,070 --> 00:46:11,750
Klar kann man sich jetzt 
hinstellen und sagen, Ey Pass 

809
00:46:11,750 --> 00:46:14,790
auf, wenn du dieses Plugin hast,
dann kann ja n Angreifer auch 

810
00:46:14,790 --> 00:46:18,350
sozusagen die Server scannen und
gucken, ob die dafür sozusagen 

811
00:46:18,350 --> 00:46:20,910
anfällig sind, aber das kann man
ja auch so. 

812
00:46:21,750 --> 00:46:25,070
Ja, also ausprobieren, im 
Endeffekt wichtig, dann für die,

813
00:46:25,070 --> 00:46:27,950
für die Leute. 
Aber was haben wir denn, also 

814
00:46:27,950 --> 00:46:31,110
was konnte man jetzt denn daraus
irgendwie lernen, weil ich 

815
00:46:31,110 --> 00:46:33,150
finde, es ist ja irgendwie 
wichtig, dass man am Ende noch 

816
00:46:33,150 --> 00:46:35,950
irgendwie n Learning draus zieht
und sagt, OK, das ist was 

817
00:46:35,950 --> 00:46:40,670
passiert. 
Und was können wir damit jetzt 

818
00:46:40,670 --> 00:46:42,790
machen? 
Am Ende, weil das Kind ist im 

819
00:46:42,790 --> 00:46:45,110
Brunnen gefallen, das Ding ist 
durch, ne, also da wurden Daten 

820
00:46:45,110 --> 00:46:47,550
abgegriffen über 2 Jahre oder 
auch nicht, wer weiß es schon. 

821
00:46:48,850 --> 00:46:51,450
Wir wissen nicht was, aber was 
können wir denn für die Zukunft 

822
00:46:51,450 --> 00:46:55,110
daraus lernen? 
Ja, also ein großer Punkt, den 

823
00:46:55,110 --> 00:46:58,470
hast du auch angesprochen. 
Ist das so Open Source Projekte 

824
00:46:58,470 --> 00:47:01,950
echt essentiell sind für unsere 
ganze Tag Landschaft und es gibt

825
00:47:01,950 --> 00:47:06,430
so viele davon, die aber auf den
Rücken privater Leute aufgebaut 

826
00:47:06,430 --> 00:47:11,670
sind, die das einfach. 
Ja, freiwillig und aus Spaß an 

827
00:47:11,670 --> 00:47:16,470
der Freude oder so sagt man auch
ne machen, weil sie einfach 

828
00:47:16,470 --> 00:47:19,750
dahinter stehen und überzeugt 
davon sind, aber gar nicht. 

829
00:47:19,750 --> 00:47:23,520
Also man muss. 
Sich ja überlegen wieviel Zeit 

830
00:47:23,520 --> 00:47:27,280
das benötigt. 
Sowas zu maintain und wenn dann 

831
00:47:27,280 --> 00:47:31,040
keine finanzielle Förderung 
dahinter ist oder spenden was 

832
00:47:31,040 --> 00:47:33,560
auch immer Geld einfach Geld 
dann. 

833
00:47:35,360 --> 00:47:37,560
Wie soll das denn auch alles 
immer reibungslos laufen? 

834
00:47:37,560 --> 00:47:40,600
Also das muss man auch schon mal
wirklich wertschätzen, was diese

835
00:47:40,600 --> 00:47:45,640
Open Source Projekte bedeuten 
und ruhig auch mal donaten würde

836
00:47:45,640 --> 00:47:47,720
ich mal sagen, das kann man 
ruhig mal auch mal so sagen. 

837
00:47:49,440 --> 00:47:53,360
Weil man sieht, wenn das alles 
mit Zeitdruck und ja, sie müssen

838
00:47:53,360 --> 00:47:55,920
nebenbei arbeiten und haben 
eigentlich gar keine Zeit, das 

839
00:47:56,000 --> 00:47:59,040
zu 100% zu verwalten und dann 
schnell noch ein Update, was 

840
00:47:59,040 --> 00:48:02,920
sich gewünscht wird hier und da,
dann passieren halt Fehler am 

841
00:48:02,920 --> 00:48:04,480
Ende. 
Also ich bin Fan von Open 

842
00:48:04,480 --> 00:48:06,640
Source. 
Man muss sich 1 klar machen, 

843
00:48:06,640 --> 00:48:09,400
glaube ich, nur weil jeder Open 
Source Software. 

844
00:48:09,990 --> 00:48:12,870
Blick drauf werfen kann, 
bedeutet das noch lange nicht, 

845
00:48:12,870 --> 00:48:14,470
dass es auch jeder tut. 
Ne. 

846
00:48:14,470 --> 00:48:18,030
Also da wird glaub ich auch 
oftmals so n bisschen dann sich 

847
00:48:18,030 --> 00:48:22,150
drauf verlassen und gesagt ja 
Open Source Software, da kann ja

848
00:48:22,150 --> 00:48:24,630
jeder drauf gucken und so 
weiter. 

849
00:48:25,350 --> 00:48:29,400
Aber. 
Das passiert halt nicht immer ne

850
00:48:29,400 --> 00:48:31,440
und da muss man dann halt 
gucken, dass man vielleicht so 

851
00:48:31,440 --> 00:48:36,920
bestimmte wirklich kritische 
Softwarekomponenten, die sowas 

852
00:48:36,920 --> 00:48:40,440
wie halt eben dieses Beispiel 
zeigt, auch vielleicht mal n 

853
00:48:40,440 --> 00:48:41,920
bisschen genauer unter die Lupe 
nimmt. 

854
00:48:41,920 --> 00:48:44,760
Deswegen ist es auch immer 
hilfreich, dass auch jeder zum 

855
00:48:44,760 --> 00:48:47,990
Beispiel. 
Ne, also liebe Zuhörerin, lieber

856
00:48:47,990 --> 00:48:51,070
Zuhörer, auch du kannst dir Open
Source Code angucken. 

857
00:48:51,950 --> 00:48:52,830
Ja. 
Absolut. 

858
00:48:54,680 --> 00:48:57,800
Dann find ich so n Learning, was
ich dabei auch wieder rausziehe 

859
00:48:57,800 --> 00:49:01,840
ist also hinsichtlich C Code, 
dass man halt echt ne Menge 

860
00:49:01,840 --> 00:49:07,000
Unfug damit treiben kann. 
Und Speicher? 

861
00:49:07,080 --> 00:49:09,120
Verwaltung einfach ein riesen 
Punkt ist, gerade wenn man C 

862
00:49:09,120 --> 00:49:11,640
codet. 
Das heißt da auch aus Security 

863
00:49:11,640 --> 00:49:14,880
Aspekten ordentlich darauf 
achtet was man da auf dem 

864
00:49:14,880 --> 00:49:17,960
Speicher macht. 
Ich finde halt das ist auf jeden

865
00:49:17,960 --> 00:49:22,200
Fall auch wichtig ist sich vor 
Augen zu fühlen, egal wo man 

866
00:49:22,200 --> 00:49:26,080
dran codet aber wenn du irgendwo
rein theoretisch Schnittstellen 

867
00:49:26,080 --> 00:49:30,240
nach außen hast in deiner 
Software, dann ist es ein Blick 

868
00:49:30,240 --> 00:49:32,840
wert zu sagen gibt es 
potenzielle Sicherheitsrisiken 

869
00:49:32,840 --> 00:49:35,680
an dieser Stelle und was könnte 
sein, da hilft es auch einfach 

870
00:49:35,680 --> 00:49:37,240
mal vielleicht sich ein bisschen
zu unterhalten. 

871
00:49:37,550 --> 00:49:39,870
N bisschen in den Austausch zu 
gehen und zu sagen, du Pass auf,

872
00:49:39,870 --> 00:49:42,310
ich hab jetzt das und das diesen
Sachverhalt, wie sieht es aus, 

873
00:49:42,310 --> 00:49:44,470
könntest du dir vorstellen, dass
da irgendein Mist passieren 

874
00:49:44,470 --> 00:49:46,550
könnte? 
Sowas hilft natürlich auch, ich 

875
00:49:46,550 --> 00:49:49,990
meine es gibt ja auch n 
Learning, was natürlich auch 

876
00:49:50,150 --> 00:49:52,830
sicherlich jetzt mittlerweile 
schon überall angekommen ist. 

877
00:49:52,830 --> 00:49:55,270
Das ist die sogenannte 2 Faktor 
Authentifizierung, das heißt 

878
00:49:55,270 --> 00:49:58,230
wenn jemand ein Username und 
Passwort hat, bedeutet das noch 

879
00:49:58,230 --> 00:50:00,550
lange nicht, dass man auch 
wirklich überall reinkommt, 

880
00:50:01,390 --> 00:50:04,310
heißt aber nicht, dass überall 2
Faktor angewendet wird, aber es 

881
00:50:04,310 --> 00:50:06,640
ist natürlich eine Sache, dass 
dieses 2. 

882
00:50:06,640 --> 00:50:09,600
Faktor immer mehr kommt. 
Genau aus solchen Gründen, dass 

883
00:50:09,600 --> 00:50:12,960
du halt eben nicht nur über 
solche Sachen, wenn auch wenn es

884
00:50:12,960 --> 00:50:16,480
geleakt werden würde, dass man 
dann trotzdem nicht genau in 

885
00:50:16,480 --> 00:50:19,800
diese Systeme reinkommt oder ein
online Banking, was auch immer. 

886
00:50:24,070 --> 00:50:26,710
Sehr gut zusammengefasst. 
Also ich würde sagen, haben wir 

887
00:50:26,710 --> 00:50:28,710
es auch wieder ausführlich 
besprochen, aber ich find das 

888
00:50:28,710 --> 00:50:31,550
Thema super spannend und ich 
find es, ich muss es einfach 

889
00:50:31,550 --> 00:50:33,350
noch mal sagen. 
Ich find es krass wie 2 Zeilen 

890
00:50:33,350 --> 00:50:34,710
Code über sowas entscheiden 
können. 

891
00:50:35,470 --> 00:50:38,590
Es ist Zeit und ich find es 
halt. 

892
00:50:38,790 --> 00:50:42,470
Und wie lange, vor allem und wie
riesig dieses Potenzial war für 

893
00:50:42,470 --> 00:50:44,670
Schaden. 
Die tut man einfach nicht, weiß,

894
00:50:44,670 --> 00:50:46,030
wieviel Scharen wirklich 
entstanden ist. 

895
00:50:46,030 --> 00:50:48,950
Find ich auch krass dabei in. 
Diesem Sinne blutet mein Herz, 

896
00:50:48,950 --> 00:50:51,430
weil die Folge wieder vorbei 
ist, hart blieb und so. 

897
00:50:51,470 --> 00:50:55,350
Schön schön, Fabi, der war gut. 
Oh, weil heute bin ich aber 

898
00:50:55,350 --> 00:50:57,030
auch, ja. 
Muss. 

899
00:50:57,070 --> 00:50:59,710
Ich mich für entschuldigen, aber
ich möchte in dem Sinne auf 

900
00:50:59,710 --> 00:51:02,110
jeden Fall sagen, Tino, Es hat 
mir wieder Spaß gemacht mit dir 

901
00:51:02,110 --> 00:51:06,000
darüber zu reden. 
Dann gib mal Zuhörer, lass auf 

902
00:51:06,000 --> 00:51:09,640
jeden Fall mal eine Bewertung da
empfiehl den Podcast weiter. 

903
00:51:09,720 --> 00:51:13,520
Uns würde brennend 
interessieren, was du auch zum 

904
00:51:13,520 --> 00:51:17,600
Beispiel selber mitbekommen hast
von diesem Heartbleed Bug ist ja

905
00:51:17,600 --> 00:51:22,360
nicht so lange her 2014 und 
schreibt uns das gerne oder 

906
00:51:22,360 --> 00:51:25,160
schreibt uns auch dein Feedback 
gerne über die Podcast Mail wenn

907
00:51:25,160 --> 00:51:28,560
du sagst ich finde das cool, das
macht richtig Spaß hier 

908
00:51:28,560 --> 00:51:30,600
zuzuhören. 
Die Coding Buddies ist ein 

909
00:51:30,600 --> 00:51:33,800
geiles Projekt, das macht Spaß, 
dann unterstützt uns gerne auch 

910
00:51:33,800 --> 00:51:35,750
in den Show. 
Ist ein Link für eine kleine 

911
00:51:35,750 --> 00:51:37,830
Spende, wären wir dir super 
dankbar für. 

912
00:51:39,520 --> 00:51:42,640
Weil wir wollen alles, was wir 
darüber bekommen, nehmen wir und

913
00:51:42,960 --> 00:51:46,480
verbessern unseren Content, 
damit du noch schöneren Content 

914
00:51:46,480 --> 00:51:48,680
bekommen kannst. 
Und Yeah. 

915
00:51:49,430 --> 00:51:53,030
Genau und deswegen andere 
Unterstützung ist halt in dem 

916
00:51:53,030 --> 00:51:55,350
Sinne auch Feedback, 
konstruktives Feedback, das 

917
00:51:55,350 --> 00:51:58,230
hilft uns auch sehr weiter in 
dem Sinne würde ich sagen, 

918
00:51:58,230 --> 00:52:00,430
empfehlen den Podcast noch 2 
Freunden weiter, wenn er dir 

919
00:52:00,430 --> 00:52:03,150
gefällt und ansonsten sind wir 
raus für heute. 

920
00:52:04,230 --> 00:52:08,230
Ich wünsch euch noch nen schönen
Tag bis zum nächsten Mal deine 

921
00:52:08,230 --> 00:52:10,430
Coding Buddies gemeinsam. 
Besser.

