1
00:00:00,000 --> 00:00:09,959
*Vorspannmusik*

2
00:00:09,959 --> 00:00:13,859
Herald: Heute geht es um
„Hardware-Trojaner in Security-Chips“.

3
00:00:13,859 --> 00:00:18,720
Also nicht um Software-
Trojaner, die die Polizei einsetzen will.

4
00:00:18,720 --> 00:00:22,550
Die beiden Herren neben
mir, Peter und Marcus,

5
00:00:22,550 --> 00:00:27,210
forschen seit mehreren Jahren
zu Smartcards und arbeiten

6
00:00:27,210 --> 00:00:32,600
komischerweise beide für Infineon,
sind aber beide privat hier, und…

7
00:00:32,600 --> 00:00:35,110
heißt sie herzlich willkommen!

8
00:00:35,110 --> 00:00:43,720
*Applaus*

9
00:00:43,720 --> 00:00:46,469
Peter: Ja vielen Dank und herzlich
willkommen zu unserem Vortrag über

10
00:00:46,469 --> 00:00:51,309
„Hardware-Trojaner and Security-Chips“.
Wie versprochen reisen wir gleich auf die

11
00:00:51,309 --> 00:00:56,600
dunklere Seite der Chip-Technologien, aber
bevor wir das machen, ganz kurz zu unserer

12
00:00:56,600 --> 00:00:59,830
Person: was machen wir, wo kommen wir
her? Und, ja, vielen Dank noch mal für die

13
00:00:59,830 --> 00:01:05,960
Einführung; In der Tat sind wir seit 1989
aktiv im Bereich der Chipkarten-Forschung;

14
00:01:05,960 --> 00:01:09,860
und das Ganze fing an in Brunsbüttel,
eine kleine Schleusenstadt, ungefähr

15
00:01:09,860 --> 00:01:15,600
80 km nordwestlich von hier, mit der
Forschung an der deutschen Telefonkarte.

16
00:01:15,600 --> 00:01:19,850
Die war damals ganz neu und wir wollten
natürlich unbedingt wissen: Was verbirgt

17
00:01:19,850 --> 00:01:23,770
sich hinter diesen kleinen Goldkontakten
in der Chipkarte, wie funktioniert der

18
00:01:23,770 --> 00:01:29,160
Chip und vor allem wie werden da die
Gebühren drauf gespeichert? Ungefähr

19
00:01:29,160 --> 00:01:33,930
1991, also zwei Jahre später haben wir
auch das erste Mal für den CCC-Kongress

20
00:01:33,930 --> 00:01:38,430
einen Vortrag gehalten. Es war damals
noch im Eidelstädter Bürgerhaus – also

21
00:01:38,430 --> 00:01:42,341
viel, viel kleiner als das hier – hat aber
auch schon Riesenspaß gemacht, dabei

22
00:01:42,341 --> 00:01:48,500
zu sein und auch das Wissen mit anderen zu
teilen. Ja, neben dem Studium – das war

23
00:01:48,500 --> 00:01:51,730
bei Marcus in Hamburg und bei mir in Kiel
– haben wir uns weiter mit dem Thema

24
00:01:51,730 --> 00:01:56,520
auseinandergesetzt und auch so die
eine oder andere Sicherheitsschwäche

25
00:01:56,520 --> 00:02:00,010
aufgedeckt und das Ganze auch etwas
erweitert im Bereiche ‚Datensicherheit und

26
00:02:00,010 --> 00:02:05,880
Datenschutz‘. Und wie schon angekündigt
arbeiten wir momentan auch professionell

27
00:02:05,880 --> 00:02:13,140
in dem Bereich, unter anderem für einen
Halbleiterhersteller, bei dem wir eine

28
00:02:13,140 --> 00:02:15,990
kleine Expertengruppe dann
damals aufgebaut haben.

29
00:02:15,990 --> 00:02:19,890
Aber interessant für uns ist: die private
Forschung läuft weiter und wir schauen

30
00:02:19,890 --> 00:02:24,080
uns zum Beispiel momentan an, was
es so auf dem Surplus-Markt gibt an

31
00:02:24,080 --> 00:02:28,970
Equipment, mit dem man dann fröhlich
forschen kann und schlagkräftiges

32
00:02:28,970 --> 00:02:34,920
Equipment zusammenstellen kann. Deshalb,
kommen wir auch gleich zum eigentlichen

33
00:02:34,920 --> 00:02:39,430
Thema: Die Hardware-Trojaner.
Software-Trojaner, kam in der Einführung

34
00:02:39,430 --> 00:02:46,319
schon ganz gut rüber, sind schon lange
bekannt, deshalb wollen wir hier ein

35
00:02:46,319 --> 00:02:50,450
bisschen mehr über die Hardware-Trojaner
berichten. Die werden ziemlich

36
00:02:50,450 --> 00:02:54,520
vernachlässigt – in der Literatur
und auch in der Öffentlichkeit.

37
00:02:54,520 --> 00:02:58,319
Hardware-Trojaner genauso wie
Software-Trojaner dienen zwei Zwecken und

38
00:02:58,319 --> 00:03:02,980
zwar einerseits der Exfiltration und
andererseits der Infiltration.

39
00:03:02,980 --> 00:03:06,809
Exfiltration – da denkt sofort jeder
dran. Zum Beispiel, wenn man einen

40
00:03:06,809 --> 00:03:09,840
Software-Trojaner hat, der möchte
Kreditkartendaten irgendwo aus einem

41
00:03:09,840 --> 00:03:13,770
System herausschleusen/herausholen,
oder auch die berühmten Staats- und

42
00:03:13,770 --> 00:03:17,940
Bundestrojaner die aus einem geschützten
System dann private Daten zum Beispiel

43
00:03:17,940 --> 00:03:22,730
heraus-exfiltrieren sollen. Das können
aber auch anderen Dinge sein, die mit

44
00:03:22,730 --> 00:03:26,430
dieser Exfiltration verbunden sind, zum
Beispiel können das kryptografische

45
00:03:26,430 --> 00:03:30,260
Schlüssel sein. Wenn ein System
z.B. Nachrichten bereits

46
00:03:30,260 --> 00:03:33,020
verschlüsselt hat – man hat jetzt diese
verschlüsselten Nachrichten zum Beispiel

47
00:03:33,020 --> 00:03:38,610
abgefangen – dann möchte man eventuell
heran an diesen Schlüssel, der das Ganze

48
00:03:38,610 --> 00:03:42,640
verschlüsselt hat, um im Nachhinein diese
Daten wieder entschlüsseln zu können.

49
00:03:42,640 --> 00:03:48,470
Oder: noch perfider sind die Startwerte
für Pseudo-Zufallszahlen-Generatoren.

50
00:03:48,470 --> 00:03:53,630
Heute ist es häufig so, dass
Zufallszahlen nicht NUR durch reinen,

51
00:03:53,630 --> 00:03:58,300
echten, physikalischen Zufall erzeugt
werden, sondern dass man Startwerte nimmt,

52
00:03:58,300 --> 00:04:01,260
die wirft man in
Pseudo-Zufallszahlen-Generatoren hinein

53
00:04:01,260 --> 00:04:04,930
und wenn man die dann kennt – und auch
den Startwert – dann weiß man, was

54
00:04:04,930 --> 00:04:08,870
diese Pseudo-Zufallszahlen-Generatoren als
nächstes ausspucken werden. Wenn man also

55
00:04:08,870 --> 00:04:13,530
den Startwert kennt, weiß man, was als
nächstes kommt. Und schließlich kann es

56
00:04:13,530 --> 00:04:19,200
Code sein, also Software, Firmware, zum
Beispiel im Bereich der Industriespionage,

57
00:04:19,200 --> 00:04:24,200
wenn man Code herausholen möchte aus
einem System, Code Dump tun möchte. Was

58
00:04:24,200 --> 00:04:28,770
immer so ein bisschen vernachlässigt wird
ist die Infiltration – was ja eigentlich

59
00:04:28,770 --> 00:04:32,780
ein Trojaner macht, der infiltriert ja ein
System. Am ehesten kennt man das noch im

60
00:04:32,780 --> 00:04:38,060
Bereich der Software – also Malware in
ein System einzubringen; dafür benutzt

61
00:04:38,060 --> 00:04:43,480
man trojanische Pferde in Software, aber
das können genauso auch andere Daten

62
00:04:43,480 --> 00:04:48,620
sein, oder Parameter, z.B. falsche
Parameter für Industriesteuerungen, da

63
00:04:48,620 --> 00:04:51,990
gibt es ja auch so einige Beispiele
dafür. Oder das können zum Beispiel

64
00:04:51,990 --> 00:04:56,610
bekannte Werte für Verschlüsselungen
sein, wenn ein Verschlüsselungssystem

65
00:04:56,610 --> 00:05:00,380
intern eine Verschlüsselung benutzt, die
der Angreifer dann hinterher brechen kann,

66
00:05:00,380 --> 00:05:04,610
dann ist das für ihn natürlich auch
interessant. Und schließlich – das

67
00:05:04,610 --> 00:05:08,100
sollte man auch nicht vergessen, deshalb
kommen wir nachher auch noch zu den

68
00:05:08,100 --> 00:05:12,389
ethischen Themen und den moralischen
Aspekten: das „Kompromat“, also

69
00:05:12,389 --> 00:05:17,560
kompromittierendes Material, denn mit
Hilfe eines Trojaners oder einer Backdoor

70
00:05:17,560 --> 00:05:22,100
kann man natürlich auch belastendes
Material in ein System hineinbringen und

71
00:05:22,100 --> 00:05:25,419
das kann Leute, die das System benutzen
oder damit zum Beispiel eine Grenze

72
00:05:25,419 --> 00:05:29,530
überqueren möchten und ähnliches, dann
durchaus in richtige Schwierigkeiten

73
00:05:29,530 --> 00:05:36,820
bringen. Dann gibt’s neben den Trojanern
auch die Begriffe Bugdoor und Backdoor und

74
00:05:36,820 --> 00:05:40,510
oft wird das miteinander vermischt;
dementsprechend haben wir hier mal

75
00:05:40,510 --> 00:05:45,050
aufgezeichnet: was ist das eigentlich und
wie hängt das ganze zusammen? Man kann

76
00:05:45,050 --> 00:05:50,820
sich das eigentlich ganz einfach merken
anhand des historischen Vorbildes: Das

77
00:05:50,820 --> 00:05:56,430
trojanische Pferd ist eigentlich ja ein
Vehikel, das eine Nutzlast trägt – wird

78
00:05:56,430 --> 00:06:00,949
aufgemacht, kommen die Soldaten rein, das
trojanische Pferd wird von der Stadt, also

79
00:06:00,949 --> 00:06:05,510
vom System durch die User, hereingeholt
– heute würde man sagen: „Oh toll,

80
00:06:05,510 --> 00:06:10,520
eine gratis App! Muss ich haben!“.
Wird also in das System integriert,

81
00:06:10,520 --> 00:06:17,061
„Gratispferd“ sozusagen. Und… in der
Stadt angekommen, schaltet die Nutzlast in

82
00:06:17,061 --> 00:06:20,790
dem Pferd, also die Soldaten, zunächst
einmal die Sicherheitsfeatures aus (die

83
00:06:20,790 --> 00:06:25,349
Wachen) und öffnen dann die Tür für den
Rest der Armee. Und das ist genau die

84
00:06:25,349 --> 00:06:31,010
Backdoor. Das heißt der Trojaner, oder
das trojanische Pferd, bewegt und steuert

85
00:06:31,010 --> 00:06:34,550
im Prinzip die Backdoor. Das wär also die
richtige Bezeichnung, aber wie gesagt:

86
00:06:34,550 --> 00:06:39,140
wird oft vermischt, wollen wir auch jetzt
nicht so streng sein. Dann gibt’s noch

87
00:06:39,140 --> 00:06:43,590
eine ganz interessante Wortschöpfung –
die „Bugdoor“, aus „Bug“ und

88
00:06:43,590 --> 00:06:46,760
„Backdoor“. Und das ist im Prinzip
einfach schlechte Programmierung oder

89
00:06:46,760 --> 00:06:52,640
schlampige Programmierung. Z.B.
können das Hintertüren sein in einer

90
00:06:52,640 --> 00:06:57,389
entsprechenden Software, die einem
Entwickler mal erlaubt haben, z.B.

91
00:06:57,389 --> 00:07:01,189
Änderungen vorzunehmen, die dann
hinterher aber nicht ausgebaut wurden. Und

92
00:07:01,189 --> 00:07:06,450
davon gibt es in der Tat eine ganze Menge.
Jetzt ist natürlich die Frage: wo können

93
00:07:06,450 --> 00:07:13,040
sich solche Trojaner oder Backdoors
eigentlich verstecken? Wo kommen sie her?

94
00:07:13,040 --> 00:07:16,889
Das wichtige hierbei ist, dass die
Trojaner immer im System selber wirken,

95
00:07:16,889 --> 00:07:21,880
also das System ist der Wirkungsort der
Trojaner – egal wo sie jetzt herkommen.

96
00:07:21,880 --> 00:07:26,320
Sie können auch ihre Plätze tauschen –
auch ganz interessant. Und das System

97
00:07:26,320 --> 00:07:30,660
besteht immer – jedenfalls die Systeme
über die wir hier so sprechen – besteht

98
00:07:30,660 --> 00:07:36,060
immer aus Software und Hardware. In der
Software ist die Programmierung eines

99
00:07:36,060 --> 00:07:41,090
Trojaners eigentlich relativ einfach;
jeder, der sich einigermaßen auskennt mit

100
00:07:41,090 --> 00:07:45,210
Programmierung, wird in der Lage sein,
wenn er lange genug dran arbeitet, einen

101
00:07:45,210 --> 00:07:51,030
Trojaner zu schreiben. Das heißt, das
Hindernis, so etwas einzubauen ist relativ

102
00:07:51,030 --> 00:07:56,330
einfach oder relativ niedrig. Aber
es gibt auch einen Nachteil dieser

103
00:07:56,330 --> 00:07:59,920
Software-Trojaner natürlich, denn die
sind auch relativ leicht zu entdecken. Das

104
00:07:59,920 --> 00:08:02,980
heißt, jeder, der an die Software
herankommt, der die also disassemblieren

105
00:08:02,980 --> 00:08:07,550
kann und verstehen kann, der wird auch
sehen, dass da etwas nicht stimmt. Und

106
00:08:07,550 --> 00:08:12,120
wenn er das erstmal gefunden hat, dass da
irgendetwas faul ist, dann kann er auch

107
00:08:12,120 --> 00:08:17,650
einigermaßen leicht einen Beweis führen,
was dieser Trojaner eigentlich tut. Da

108
00:08:17,650 --> 00:08:21,790
gibt’s ja auch schon bestimmte Arbeiten
dazu, die wirklich dann nachgewiesen

109
00:08:21,790 --> 00:08:25,060
haben, wie solche Trojaner funktionieren
und wann sie aktiv werden und was sie

110
00:08:25,060 --> 00:08:28,830
alles können. Anders ist das bei
den Hardware-Trojanern: bei den

111
00:08:28,830 --> 00:08:31,249
Hardware-Trojanern wird nicht die Software
geändert, sondern es wird die Hardware

112
00:08:31,249 --> 00:08:37,250
selber geändert und zwar in dem Sinne,
dass ein Chip zum Beispiel verändert

113
00:08:37,250 --> 00:08:41,489
wird, dass die Funktionalität
tatsächlich in der Hardware anders ist.

114
00:08:41,489 --> 00:08:44,919
Und da kann man sich vorstellen, dass der
Aufwand – das werden wir gleich noch

115
00:08:44,919 --> 00:08:49,300
sehen, wie hoch der Aufwand tatsächlich
ist – dass der Aufwand recht hoch ist,

116
00:08:49,300 --> 00:08:52,320
dass das Ganze teuer ist, dass es
vielleicht auch nicht so einfach zu

117
00:08:52,320 --> 00:08:57,040
verbergen ist gegenüber anderen Leuten,
zum Beispiel in der Entwicklung solcher

118
00:08:57,040 --> 00:09:01,290
Geräte. Aber auf der anderen Seite
ist es so, dass der Angreifer, oder

119
00:09:01,290 --> 00:09:04,970
beziehungsweise derjenige der so etwas
macht, auch Vorteile hat. Z.B. ist die

120
00:09:04,970 --> 00:09:09,410
Identifizierung relativ schwer. Will man
einen Hardware-Trojaner wirklich finden

121
00:09:09,410 --> 00:09:13,480
und will man den identifizieren, muss
man üblicherweise so einen Chip

122
00:09:13,480 --> 00:09:17,030
reverse-engineeren – sich den wirklich ganz
genau anschauen. Und selbst wenn man

123
00:09:17,030 --> 00:09:21,980
das gemacht hat, ist immer noch die Frage:
eine bestimmte Hardwarefunktionalität,

124
00:09:21,980 --> 00:09:26,519
die man dann gefunden hat – Was tut sie
wirklich? Ist sie wirklich noch aktiv?

125
00:09:26,519 --> 00:09:30,480
Oder ist es vielleicht eine schlafende
Funktionalität, die nie verwendet wird?

126
00:09:30,480 --> 00:09:37,390
Wie dem auch sei – der Beweis ist
aufwändig. Um jetzt herauszufinden, wie

127
00:09:37,390 --> 00:09:42,540
aufwändig tatsächlich der Einbau eines
Hardware-Trojaners ist, ist es natürlich

128
00:09:42,540 --> 00:09:46,100
zunächst mal interessant, sich
anzuschauen: Wie baut man so einen Chip?

129
00:09:46,100 --> 00:09:48,910
Und wenn man das weiß und wenn man diese
Prozesse kennt, dann kann man sich auch

130
00:09:48,910 --> 00:09:53,520
ansehen: Wo könnte man an diesen Stellen
einen Trojaner einsetzen? Und hier einfach

131
00:09:53,520 --> 00:09:59,520
mal ganz kurz gezeigt: Wie baut man einen
Chip? Wie wird so etwas hergestellt? Links

132
00:09:59,520 --> 00:10:03,190
fängt das Ganze an, mit der
Hardware-Beschreibungssprache, das ist

133
00:10:03,190 --> 00:10:07,840
hier in diesem Fall VHDL zum Beispiel.
VHDL ist so etwas wie eine

134
00:10:07,840 --> 00:10:11,930
Programmiersprache für Software, bloß
dass man ‚Hardware direkt schreibt‘.

135
00:10:11,930 --> 00:10:15,990
Und dieser Code enthält im Prinzip
dann die Funktionalität – was soll die

136
00:10:15,990 --> 00:10:20,670
Hardware tun: Logische Funktionen, ganze
CPUen kann man da drin schreiben. Jeder

137
00:10:20,670 --> 00:10:24,800
der schon mal mit ‘nem FPGA vielleicht
was gemacht hat, der kennt das gut. Wenn

138
00:10:24,800 --> 00:10:29,320
diese VHDL-Sprache, wenn der Code fertig
ist, dann wirft man den, genau wie

139
00:10:29,320 --> 00:10:33,220
Software-Code in einen Compiler und aus
diesem Compiler kommt zunächst mal ein

140
00:10:33,220 --> 00:10:37,990
Schaltplan heraus. Da sind die einzelnen
Funktionalitäten miteinander verbunden,

141
00:10:37,990 --> 00:10:41,629
im Prinzip so, wie bei normalen
Schaltplänen auch. Und aus diesem

142
00:10:41,629 --> 00:10:45,350
Schaltplan kann man dann – das ist das
zweite Bild – ein Layout erstellen. Das

143
00:10:45,350 --> 00:10:50,390
Layout zeigt, wo auf dem Chip die
verschiedenen Funktionselemente liegen und

144
00:10:50,390 --> 00:10:53,760
wie die miteinander verbunden sind. Kann
man sich so ungefähr vorstellen wie eine

145
00:10:53,760 --> 00:10:56,899
Platine – da sind auch die verschiedenen
Bauelemente drauf und es gibt

146
00:10:56,899 --> 00:11:00,580
Metallverbindungsleitungen dazwischen;
hier ist das genauso: die verschiedenen

147
00:11:00,580 --> 00:11:03,150
Farben sind auch
Metallverbindungsleitungen bloß auf

148
00:11:03,150 --> 00:11:07,330
verschiedenen Ebenen. Wenn man daraus
jetzt tatsächlich einen Chip machen

149
00:11:07,330 --> 00:11:13,080
möchte, dann muss man das Ganze auf ein
optisches System übertragen. Das ist hier

150
00:11:13,080 --> 00:11:17,640
aufgezeigt anhand eines sogenannten
„Maskensatzes“. Das sind also

151
00:11:17,640 --> 00:11:24,500
Quarzglasscheiben; ich habe hier mal so
einen Rohling mitgebracht. Auf diesen

152
00:11:24,500 --> 00:11:28,370
Quarzglasscheiben wird Chrom abgeschieden
– eine ganz dünne Schicht – und

153
00:11:28,370 --> 00:11:35,031
mikrostrukturiert. Und das benutzt man
dann als optische Maske, um einzelne

154
00:11:35,031 --> 00:11:39,390
Schichten auf einen Rohsilizium-Wafer
nacheinander aufzubringen. Davon braucht

155
00:11:39,390 --> 00:11:43,410
man so einige Dutzend von diesen Masken.
Und wenn man die dann nacheinander

156
00:11:43,410 --> 00:11:47,380
prozessiert hat, dann hat man schließlich
den Wafer – ich denke mal das kennt

157
00:11:47,380 --> 00:11:49,990
jeder – brauchen wir gar nicht viel
drüber zu erzählen. Auf so ‘nem Wafer

158
00:11:49,990 --> 00:11:53,820
sind dann die ganzen Chips angeordnet und
den muss man nur noch auseinander sägen

159
00:11:53,820 --> 00:11:58,240
oder auseinander lasern um dann
die einzelnen Chips zu bekommen.

160
00:11:58,240 --> 00:12:01,980
Marcus: Nun ist da natürlich die Frage:
Wo ist jetzt hier eigentlich der Trojaner?

161
00:12:01,980 --> 00:12:05,860
Das heißt, wir sehen: hier gibt’s viel,
viel mehr Fertigungsschritte als zum

162
00:12:05,860 --> 00:12:09,220
Beispiel wenn man eine Software
implementiert. Infolge dessen gibt es

163
00:12:09,220 --> 00:12:11,810
natürlich auch viel, viel mehr
Möglichkeiten, wo man einen Trojaner

164
00:12:11,810 --> 00:12:16,040
implementieren kann. Und in der Tat ist
es so, dass es in jeder der einzelnen

165
00:12:16,040 --> 00:12:20,380
Fertigungsstufen ein Trojaner prinzipiell
eingebracht werden kann, das heißt sowohl

166
00:12:20,380 --> 00:12:25,930
im VHDL als auch im Layout oder im
Maskensatz. Gehen wir schrittweise vor:

167
00:12:25,930 --> 00:12:31,459
Was kann man im VHDL machen? Nun, Peter
hatte ja schon gesagt: im VHDL ist die

168
00:12:31,459 --> 00:12:36,890
Funktionalität genau beschrieben. Was hindert
mich daran, ein paar Zeilen Code mehr

169
00:12:36,890 --> 00:12:40,479
reinzuschreiben und eine zusätzliche
Funktionalität, nämlich die

170
00:12:40,479 --> 00:12:45,810
Trojanerfunktionalität, hier zu
integrieren? Das heißt, ein Trojaner kann

171
00:12:45,810 --> 00:12:51,510
durch die direkte Implementierung eines
VHDL-Codes in ein großes Projekt direkt

172
00:12:51,510 --> 00:12:55,430
mit implementiert werden und wird dann
natürlich in den folgenden Schritten auch

173
00:12:55,430 --> 00:13:00,589
ins Layout, in den Maskensatz und damit in
das fertige Produkt mit übernommen. Man

174
00:13:00,589 --> 00:13:05,030
merkt schon: die Implementierung ist an
der Stelle relativ einfach. Allerdings

175
00:13:05,030 --> 00:13:09,170
auch wenn dieser Code genau gereviewt
wird und man genauer überprüft „Was

176
00:13:09,170 --> 00:13:12,930
steht eigentlich da drin? Was sind die
einzelnen Funktionalitäten, die im VHDL

177
00:13:12,930 --> 00:13:16,279
beschrieben sind?“, ist auch die
Entdeckwahrscheinlichkeit normalerweise

178
00:13:16,279 --> 00:13:20,590
recht einfach. Hinzu kommt dann noch, dass
dieser VHDL-Code natürlich noch durch

179
00:13:20,590 --> 00:13:25,040
viele Schritte prozessiert wird, das
heißt viele Leute schauen da noch mal

180
00:13:25,040 --> 00:13:31,500
drauf und die Entdeckwahrscheinlichkeit
steigt damit. Selbst wenn der VHDL-Code

181
00:13:31,500 --> 00:13:36,790
ohne Trojaner geschrieben worden ist,
könnte im Schritt des Layoutes noch ein

182
00:13:36,790 --> 00:13:41,520
Trojaner eingebracht werden. Wir sehen
hier auf dem Beispiel ja die verschiedenen

183
00:13:41,520 --> 00:13:45,560
elektrischen Verbindungen, wie Peter schon
gesagt hat, in den verschiedenen Farben.

184
00:13:45,560 --> 00:13:50,019
Und mit einem speziellen Layout-Programm,
vergleichbar praktisch mit einem

185
00:13:50,019 --> 00:13:53,210
Bildbearbeitungsprogramm, kann man
natürlich auch diese Verbindungen

186
00:13:53,210 --> 00:13:57,730
verändern, kann neue Elemente einfügen,
kann die elektrischen Verbindungen so

187
00:13:57,730 --> 00:14:00,740
verändern, dass eine zusätzliche
Funktionalität – die

188
00:14:00,740 --> 00:14:05,520
Trojaner-Funktionalität – implementiert
wird. Schon allein da dran merkt man

189
00:14:05,520 --> 00:14:08,459
allerdings, dass der Aufwand
natürlich deutlich höher wird. Eine

190
00:14:08,459 --> 00:14:12,220
Vielzahl von Elementen und eine Vielzahl
von Leitungen müssen verändert werden

191
00:14:12,220 --> 00:14:16,430
und das heißt, dies ist nichts mehr, was
man schnell nebenbei in einen Code

192
00:14:16,430 --> 00:14:21,730
reinschreibt, sondern tatsächlich viele
Stunden Arbeit. Dafür: Wer schaut sich

193
00:14:21,730 --> 00:14:27,059
das Layout schon genau an? Das heißt also
auch, die Entdeckung ist an dieser Stelle

194
00:14:27,059 --> 00:14:31,130
normalerweise zumindest mal schwerer
als beim VHDL. Man müsste wirklich jede

195
00:14:31,130 --> 00:14:35,120
einzelne Leitung dann wieder verfolgen,
wo geht sie hin, ist das die gewünschte

196
00:14:35,120 --> 00:14:40,880
Funktionalität. Naja, und so, wie man aus
dem Layout den Maskensatz macht, kann man

197
00:14:40,880 --> 00:14:45,250
natürlich auch im Maskensatz selber auch
einen Trojaner einbringen. Das heißt

198
00:14:45,250 --> 00:14:49,690
also: die Strukturen, die auf der Maske
vorgezeichnet sind und dann später in dem

199
00:14:49,690 --> 00:14:53,960
Chip realisiert werden sollen, kann man
natürlich auch auf der Maske verändern.

200
00:14:53,960 --> 00:14:59,210
Jetzt kann man schwererdings einfach die
Belichtungsmaske hernehmen und da mit

201
00:14:59,210 --> 00:15:03,290
‘nem Skalpell oder sowas kratzen
– das ist einfach viel, viel zu grob.

202
00:15:03,290 --> 00:15:07,089
Stattdessen muss man dann natürlich
tatsächlich einen neuen Maskensatz oder

203
00:15:07,089 --> 00:15:11,110
zumindest neue Masken, die man geändert
hat, erzeugen und dafür braucht man

204
00:15:11,110 --> 00:15:15,320
natürlich schon hochpräzises
Spezialequipment. Infolgedessen ist die

205
00:15:15,320 --> 00:15:19,050
Implementierung nochmal komplizierter
als beim Layout; man muss nicht nur die

206
00:15:19,050 --> 00:15:22,250
Leitungen und die Elemente verändern,
sondern auch noch die Gerätschaften

207
00:15:22,250 --> 00:15:26,180
dafür haben. Die Entdeckung auf
der anderen Seite ist dafür dann

208
00:15:26,180 --> 00:15:31,680
normalerweise natürlich nochmal eine
ganze Stufe schwerer, denn: Wie soll man

209
00:15:31,680 --> 00:15:36,839
genau so eine Maske verifizieren, dass
sie keine veränderten Funktionalitäten

210
00:15:36,839 --> 00:15:40,339
enthält? Man müsste dann wieder einen
Vergleich zum Layout (machen) – und

211
00:15:40,339 --> 00:15:43,700
hoffen, dass das sich das Layout nicht
verändert hat in der Zwischenzeit durch

212
00:15:43,700 --> 00:15:48,399
jemanden, der den Trojaner einbringen
möchte… Also man merkt: die Entdeckung

213
00:15:48,399 --> 00:15:53,480
wird hier schon sehr kompliziert. Das
waren jetzt Möglichkeiten, wie man

214
00:15:53,480 --> 00:15:57,610
Trojaner – so wie man es sich jetzt
direkt denkt – einfach implementieren

215
00:15:57,610 --> 00:16:02,260
kann. Aber: ihr seht auch hier haben wir
schon angegeben, dass die Entdeckung

216
00:16:02,260 --> 00:16:07,620
normalerweise einfach, mittelschwer oder
schwer ist. Warum „normalerweise“?

217
00:16:07,620 --> 00:16:12,970
Denn es gibt – wir nennen es
„Snakeoil-Features“, die stark

218
00:16:12,970 --> 00:16:17,010
begünstigen können, dass man Trojaner
einbringen kann und auf der anderen Seite

219
00:16:17,010 --> 00:16:22,499
sogar sehr stark erschweren können,
dass man Trojaner detektieren kann.

220
00:16:22,499 --> 00:16:27,829
Snakeoil-Features, klar, das Schlangenöl,
das angepriesen wird wie ein

221
00:16:27,829 --> 00:16:33,160
Wunderheilmittel, tolle Wirkung haben
soll, aber vielleicht auch tatsächlich

222
00:16:33,160 --> 00:16:36,292
die Wirkung nicht ganz so entfaltet – oder
sogar noch viel schlimmer: sogar noch

223
00:16:36,292 --> 00:16:40,730
eine Nebenwirkung, eine gefährliche
Nebenwirkung ausprägen kann. Und genau

224
00:16:40,730 --> 00:16:45,180
das kann hier auch passieren: etwas, was
man vielleicht mit dem guten Gefühl

225
00:16:45,180 --> 00:16:50,920
eingebaut hat in den VHDL-Code, um eine
Funktionalität, um ein Security-Feature

226
00:16:50,920 --> 00:16:55,120
zu realisieren, dass sich dann natürlich
im Layout, im Maskensatz und letztlich im

227
00:16:55,120 --> 00:17:01,500
Produkt auch wiederfindet. Aber:
vielleicht ermöglichen solche Features

228
00:17:01,500 --> 00:17:07,199
auch ‘ne ganz leichte Modifikation in
dem Herstellungsprozess. Schauen wir uns

229
00:17:07,199 --> 00:17:11,860
an, wie das zum Beispiel am Anfang der
Prozesskette ausschauen kann. Stellen wir

230
00:17:11,860 --> 00:17:18,010
uns vor, dass der VHDL-Code nicht einfach
geschrieben ist, sondern komplexer ist –

231
00:17:18,010 --> 00:17:26,440
ein VHDL-Code, direkt ansehen kann:
Was steckt da eigentlich drin? In diesem

232
00:17:26,440 --> 00:17:30,360
komplexen Quellcode ist es natürlich
auch viel, viel leichter, andere

233
00:17:30,360 --> 00:17:33,520
Funktionalitäten mit reinzubringen, die
man zunächst einmal vielleicht gar nicht

234
00:17:33,520 --> 00:17:38,099
vermutet. Die Detektion, dadurch dass er
ja komplexer ist, ist automatisch auch

235
00:17:38,099 --> 00:17:41,449
schwerer. Man muss diese ganzen komplexen
Funktionen dann natürlich genau

236
00:17:41,449 --> 00:17:46,289
nachvollziehen; was passiert da
eigentlich? Ist das nur Theorie?

237
00:17:46,289 --> 00:17:51,310
Naja, wir kennen ja aus der Software-Welt die
sogenannte „White-Box-Kryptografie“.

238
00:17:51,310 --> 00:17:56,830
Die White-Box-Kryptografie nutzt ja gerade
möglichst komplexe Software-Codes, um da

239
00:17:56,830 --> 00:18:01,519
drin kryptografische Schlüssel zu
verstecken. Das heißt: um einen

240
00:18:01,519 --> 00:18:06,130
kryptografischen Schlüssel in einer
Software möglichst gut gegen Ausspähen

241
00:18:06,130 --> 00:18:12,439
zu verstecken, wird halt das Thema
White-Box-Kryptografie angepriesen. Die

242
00:18:12,439 --> 00:18:15,559
Codes hier drin sind so komplex, dass
man sie an sich kaum noch wirklich

243
00:18:15,559 --> 00:18:20,729
durchschauen kann. Übertragen wir das auf
die Hardware: Was bedeutet, wenn man statt

244
00:18:20,729 --> 00:18:24,929
dem VHDL-Code, der hier abgebildet ist,
plötzlich eine viel komplexere Struktur

245
00:18:24,929 --> 00:18:29,680
einbaut, wie wir hier symbolhaft in dem
roten Kasten abgebildet haben. Diese

246
00:18:29,680 --> 00:18:32,789
komplexen Funktionen genau zu
durchleuchten – was steckt da eigentlich

247
00:18:32,789 --> 00:18:37,309
alles hinter? – ist natürlich ungleich
schwerer, und somit kann man relativ

248
00:18:37,309 --> 00:18:43,109
einfach dann auch schwer erkennbare
Trojaner einschleusen. Selbst, wenn es

249
00:18:43,109 --> 00:18:48,059
nicht am vorderen Teil der
Herstellungskette eingeschleust wird,

250
00:18:48,059 --> 00:18:57,509
können (…) Snakeoil-Features
begünstigen, das man zu einem späteren

251
00:18:57,509 --> 00:19:01,169
Prozessschritt entsprechend noch
Veränderungen vornimmt. Stellen wir uns

252
00:19:01,169 --> 00:19:06,990
vor, ein Snakeoil-Feature ist im VHDL-Code
integriert worden mit dem guten Gefühl

253
00:19:06,990 --> 00:19:11,390
„Ja, das ist jetzt das Wundermittel. Das
hilft uns. Das macht den Chip jetzt so

254
00:19:11,390 --> 00:19:18,010
viel sicherer.“ Aber erlaubt vielleicht
bei dem Maskensatz mit einer einfachen

255
00:19:18,010 --> 00:19:23,410
zusätzlichen Maske eine Manipulation
vorzunehmen und damit tatsächlich die

256
00:19:23,410 --> 00:19:26,950
Chips in einer Art und Weise zu
verändern, dass man sie leicht

257
00:19:26,950 --> 00:19:33,439
kontrollieren kann. Wie könnte sowas
aussehen? Ein praktisches Beispiel dafür

258
00:19:33,439 --> 00:19:38,179
sind die sogenannten „physical
unclonable functions“, die eine hohe

259
00:19:38,179 --> 00:19:43,000
Gefahr bergen, dass sie manipuliert werden
können. Bei den physical unclonable

260
00:19:43,000 --> 00:19:48,480
functions wird ja bei den S-RAM physical
unclonable functions der interne

261
00:19:48,480 --> 00:19:53,269
Arbeitsspeicher verwendet, der
beim Einschalten die Zellen eher…

262
00:19:53,269 --> 00:19:57,799
einige Zellen eher nach 0 kippen lassen,
andere Zellen eher die Vorzugsrichtung

263
00:19:57,799 --> 00:20:01,689
nach 1 haben. Das ist bausteinindividuell
und hängt von ganz kleinen

264
00:20:01,689 --> 00:20:07,350
Herstellungstoleranzen ab. Damit hat man
also einen bausteinindividuellen Wert, der

265
00:20:07,350 --> 00:20:10,960
hier erzeugt wird; insbesondere, wenn bei
jedem Einschalten wieder das gleiche

266
00:20:10,960 --> 00:20:14,679
Muster entsteht, kann man hieraus
natürlich versuchen, zum Beispiel

267
00:20:14,679 --> 00:20:21,359
kryptografische Schlüssel abzuleiten,
eben die Funktionalität einer „physical

268
00:20:21,359 --> 00:20:25,910
unclonable function“. Dieses
Einschaltverhalten ist aber natürlich

269
00:20:25,910 --> 00:20:30,090
insbesondere durch eine einfache
zusätzliche Maske im Herstellungsprozess

270
00:20:30,090 --> 00:20:36,120
leicht manipulierbar: Ich kann einfach
die RAM-Zellen durch eine Maske in eine

271
00:20:36,120 --> 00:20:40,720
Vorzugslage bringen, dass eben gewisse
Zellen, die ich kenne als Einbringer

272
00:20:40,720 --> 00:20:46,519
dieser Maske, eher nach 0 kippen, oder
andere eher nach 1 kippen. Was passiert

273
00:20:46,519 --> 00:20:52,149
ist, dass ich die Veränderung in diesem
Chip kennen würde, jemand anderes, der

274
00:20:52,149 --> 00:20:56,320
den Chip aber beobachtet, zunächst
einmal nicht weiß: Ist das jetzt ein

275
00:20:56,320 --> 00:21:00,830
bausteinindividueller zufälliger Wert,
oder ist das ein Wert, der verändert

276
00:21:00,830 --> 00:21:06,460
worden ist? Und genau das zeigt ja schon,
wie kompliziert es ist, solche Trojaner

277
00:21:06,460 --> 00:21:12,249
dann zu identifizieren. Eine ähnliche
Methode ist auch denkbar bei den

278
00:21:12,249 --> 00:21:16,859
sogenannten „Camouflage Chip Designs“
– hier handelt es sich nicht um eine

279
00:21:16,859 --> 00:21:22,140
einfache Speicherzelle, sondern um ein
universelles Logik-Element. Dieses

280
00:21:22,140 --> 00:21:25,840
Logik-Element wird zunächst einmal im
Schaltplan platziert und kann zu einem

281
00:21:25,840 --> 00:21:30,989
späteren Zeitpunkt im Herstellungsprozess
festgelegt werden, ob es jetzt zum

282
00:21:30,989 --> 00:21:33,609
Beispiel eine UND- oder eine
ODER-Verknüpfung oder eine andere

283
00:21:33,609 --> 00:21:38,859
logische Verknüpfung darstellen soll.
Genauso, wie die Programmierung in diesem

284
00:21:38,859 --> 00:21:43,770
letzten Schritt durch die Maske erfolgt,
kann ich natürlich auch, wenn ich einen

285
00:21:43,770 --> 00:21:48,499
Trojaner einbringen möchte, hier eine
spezielle Maske einschmuggeln und damit

286
00:21:48,499 --> 00:21:52,950
dann entsprechend die Funktionalität
so verändern, wie sie für mich als

287
00:21:52,950 --> 00:21:59,330
Hardware-Trojaner-Anwender dann von
Vorteil wäre. Also man sieht schon, dass

288
00:21:59,330 --> 00:22:03,849
neben den normalen Arten, wie man einen
Trojaner in einen Chip einbringen kann

289
00:22:03,849 --> 00:22:07,629
auch viele Möglichkeiten bestehen,
die zum Beispiel über solche

290
00:22:07,629 --> 00:22:12,160
Snakeoil-Features dann deutlich
begünstigt werden und die sehr schwer

291
00:22:12,160 --> 00:22:16,869
teilweise zu detektieren sind. Und
selbst wenn man sagt: „Moment, der

292
00:22:16,869 --> 00:22:21,219
Hardware-Trojaner muss ja irgendwann mit
der Außenwelt kommunizieren. Kann man das

293
00:22:21,219 --> 00:22:25,259
dann nicht einfach detektieren?“, so
sehen wir, dass es auch sehr, sehr viele

294
00:22:25,259 --> 00:22:29,720
verschiedenartige Backdoors gibt, die als
Mittel zur versteckten Kommunikation

295
00:22:29,720 --> 00:22:35,299
genutzt werden können. Das kann sowohl
über Protokolle erfolgen, das kann über

296
00:22:35,299 --> 00:22:40,269
Seitenkanal-Informationen erfolgen – die
aber im Gegensatz zu Seitenkanal-Angriffen

297
00:22:40,269 --> 00:22:45,970
hier gezielt Informationen ausgeben –
das kann über Chip-Manipulation, das

298
00:22:45,970 --> 00:22:49,399
heißt also tatsächlich über
physikalisches Beeinflussen des Chips oder

299
00:22:49,399 --> 00:22:54,629
sogar über Fehlerinduktion erfolgen.
Und diese Vielfältigkeit, die man hier hat

300
00:22:54,629 --> 00:22:59,019
für diese Backdoors finden wir sehr
spannend und deshalb möchten wir auch auf

301
00:22:59,019 --> 00:23:03,939
einige dieser Fälle jetzt genauer drauf
eingehen. Hier haben wir für uns aber

302
00:23:03,939 --> 00:23:07,710
insbesondere eine Auswahl getroffen, wie
man auch unten an den Beispielquellen

303
00:23:07,710 --> 00:23:11,909
sieht, die auch publiziert sind; denn wir
möchten jetzt natürlich nicht noch

304
00:23:11,909 --> 00:23:15,530
Dienste auf irgendwelche neuen,
interessanten Ideen bringen, sondern wir

305
00:23:15,530 --> 00:23:20,129
möchten eher aufklären und zeigen, was
für Möglichkeiten gibt es überhaupt,

306
00:23:20,129 --> 00:23:25,220
wie Protokolle missbraucht werden können
um Daten zu übertragen. Und das

307
00:23:25,220 --> 00:23:29,570
bekannteste natürlich, was man
auch von Software-Trojanern kennt,

308
00:23:29,570 --> 00:23:33,339
ist natürlich, dass undokumentierte
Befehle oder Befehlssequenzen akzeptiert

309
00:23:33,339 --> 00:23:37,929
werden, oder auch ein Generalschlüssel
integriert wird, mithilfe dessen man dann

310
00:23:37,929 --> 00:23:44,169
unbemerkten Zugang auf die internen Daten
oder auf den Code haben kann. Eine andere

311
00:23:44,169 --> 00:23:48,769
Methode, ebenfalls aus der Welt der
Software-Trojaner relativ gut bekannt,

312
00:23:48,769 --> 00:23:53,519
sind geschwächte Krypto-Algorithmen.
Derjenige, der den Trojaner einbringt, der

313
00:23:53,519 --> 00:23:58,179
kennt halt: welche Funktionalität hat er
hier als Backdoor gewählt und wie kann er

314
00:23:58,179 --> 00:24:03,230
den kryptografischen Algorithmus relativ
leicht angreifen. Das heißt, er kann dann

315
00:24:03,230 --> 00:24:08,190
die kryptografischen Geheimnisse
extrahieren und damit dann an die internen

316
00:24:08,190 --> 00:24:13,340
Daten rankommen. Ein Szenario, was aber
auf den Protokollen bisher noch nicht so

317
00:24:13,340 --> 00:24:17,830
groß diskutiert worden ist, ist das Thema
„Watermarking“. Klar, Watermarking

318
00:24:17,830 --> 00:24:22,519
kennen wir zum Beispiel aus dem Bereich,
wo Videos, Bilder oder Audiofiles

319
00:24:22,519 --> 00:24:29,289
übertragen werden, als Kennung „Wo
kommt diese Datei eigentlich her?“. Aber

320
00:24:29,289 --> 00:24:34,539
was passiert eigentlich, wenn ein Chip
eine größere Menge Daten ausgeben muss

321
00:24:34,539 --> 00:24:38,869
und hier einfach ein Watermarking
sozusagen steganografisch

322
00:24:38,869 --> 00:24:44,210
Zusatzinformationen in dem Output
versteckt? Wer nicht das Verfahren kennt,

323
00:24:44,210 --> 00:24:48,410
wie man diese Daten daraus extrahiert,
wird sich sehr schwertun, festzustellen:

324
00:24:48,410 --> 00:24:52,049
Ist das eigentlich jetzt die normale
Datei, die normale Information, die

325
00:24:52,049 --> 00:24:56,809
rauskommt, oder sind da vielleicht ein
paar einzelne Bits eben verändert über

326
00:24:56,809 --> 00:25:02,030
die dann Informationen aus dem Chip
herausextrahiert werden? Und genau dieses

327
00:25:02,030 --> 00:25:07,519
Wissen ist besonders auch, was bei
Seitenkanal-Backdoors schwer ist, diese zu

328
00:25:07,519 --> 00:25:12,109
detektieren. Beobachte ich das
Stromprofil, oder zum Beispiel die

329
00:25:12,109 --> 00:25:17,799
elektromagnetische Abstrahlung, so kann
ich relativ einfach detektieren: Ja, das

330
00:25:17,799 --> 00:25:22,779
schaut alles zufällig aus. Oder: Das
schaut alles irgendwie aus, als ob es

331
00:25:22,779 --> 00:25:28,199
einfach der Funktionalität geschuldet
ist. Aber jemand der speziell diese

332
00:25:28,199 --> 00:25:32,259
Backdoor eingebracht hat, weiß
vielleicht, dass er genau zu gewissen

333
00:25:32,259 --> 00:25:37,200
Zeitpunkten den Stromverlauf oder die
elektromagnetische Abstrahlung sich

334
00:25:37,200 --> 00:25:41,950
anschauen muss, und kriegt damit dann die
einzelnen Informationen übertragen über

335
00:25:41,950 --> 00:25:46,669
eben zum Beispiel die Amplitude, wieviel
Strom verbraucht worden ist, oder wieviel

336
00:25:46,669 --> 00:25:50,609
abgestrahlt worden ist. Also ein
Verfahren, was auch relativ schwer zu

337
00:25:50,609 --> 00:25:54,640
detektieren ist, um zu sehen: ist da jetzt
eigentlich eine zusätzliche

338
00:25:54,640 --> 00:26:00,879
Informationsausgabe oder nicht? Noch
komplizierter wird es beim Thema

339
00:26:00,879 --> 00:26:06,489
Lichtabstrahlung. Viele kennen sicherlich,
dass wenn ein Transistor mehrere Male

340
00:26:06,489 --> 00:26:12,489
schaltet – typischerweise so 1000 bis
10.000 Mal – entsteht als Nebenprodukt

341
00:26:12,489 --> 00:26:17,579
auch ein Photon, ein infrarotes
Lichtteilchen. Und dieses kann man

342
00:26:17,579 --> 00:26:22,149
natürlich messen oder zum Beispiel mit
speziellen Kameras aufnehmen. Damit kann

343
00:26:22,149 --> 00:26:25,849
man sehen, wo ist zum Bespiel Aktivität
im Chip, wo sind viele Transistoren, die

344
00:26:25,849 --> 00:26:30,819
schalten. Aber, wenn man eine
entsprechende Backdoor einbaut, könnte

345
00:26:30,819 --> 00:26:35,159
man natürlich auch ein Element auch so
gezielt manipulieren, dass es besonders

346
00:26:35,159 --> 00:26:39,399
häufig Informationen oder häufig
Photonen ausstrahlt, oder noch viel

347
00:26:39,399 --> 00:26:43,490
interessanter: man weiß einfach, an
welcher Stelle ist dieser Transistor, den

348
00:26:43,490 --> 00:26:48,820
ich beobachten muss, und damit „morst“
sozusagen, wie mit einer Taschenlampe

349
00:26:48,820 --> 00:26:55,210
dieser Transistor dann die Informationen
halt entsprechend raus. Genauso messen

350
00:26:55,210 --> 00:27:00,649
kann man auch das Potenzial natürlich auf
Signalleitungen; sicherlich habt ihr bei

351
00:27:00,649 --> 00:27:05,109
unserem Vortrag „25 Jahre
Chipkarten-Angriffe“ auch gesehen, wie

352
00:27:05,109 --> 00:27:10,179
man mittels Elektronen-Rastermikroskop
die Potenziale auf elektrischen Leitungen

353
00:27:10,179 --> 00:27:15,189
messen kann. Wenn ich jetzt den gesamten
Chip beobachte, dann sehe ich natürlich

354
00:27:15,189 --> 00:27:20,469
eine Vielzahl von Potenzialen auf den
einzelnen Leitungen. Aber: Jemand der

355
00:27:20,469 --> 00:27:24,929
gezielt diese Backdoor nutzt, hat sich
vielleicht eine Leitung in eine obere

356
00:27:24,929 --> 00:27:30,269
Metalllage gelegt, von der er weiß, hier
laufen alle kritischen Daten rüber. Jetzt

357
00:27:30,269 --> 00:27:34,559
kann er diese einfach mit dem
Elektronenstrahl ausmessen und damit dann

358
00:27:34,559 --> 00:27:38,759
die Informationsübertragung aus dem
Chip heraus in das System – in das

359
00:27:38,759 --> 00:27:44,320
Analysesytem – vornehmen. Ja, und wie
vielfältig das Ganze ist, sieht man sogar

360
00:27:44,320 --> 00:27:48,529
(daran), dass selbst die Temperatur
genutzt werden kann. Auch hier gibt es

361
00:27:48,529 --> 00:27:54,259
gerade jüngste Quellen, die zeigen, dass
auf einem Multi-Core-System auf dem einen

362
00:27:54,259 --> 00:28:00,029
Prozessor viel gerechnet wird und das die
Bearbeitung auf dem anderen Core in diesem

363
00:28:00,029 --> 00:28:04,500
System beeinflusst. Ja, viel mehr noch:
es gibt sogar eine entsprechende

364
00:28:04,500 --> 00:28:09,619
Veröffentlichung, wo einfach zwei PCs
nebeneinander stehen; auf dem einen PC

365
00:28:09,619 --> 00:28:14,029
wird gerechnet und auf dem anderen PC
wird aufgrund der intern integrierten

366
00:28:14,029 --> 00:28:19,269
Temperatursensoren dann die Erwärmung
beobachtet und somit praktisch kontaktlos

367
00:28:19,269 --> 00:28:23,109
von einem System zum anderen die
Information übertragen. Natürlich: das

368
00:28:23,109 --> 00:28:26,770
ist sehr, sehr langsam, weil so
Temperatur ändert sich natürlich nicht

369
00:28:26,770 --> 00:28:30,710
so schnell, da spricht man nur von wenigen
Bits pro Stunde, die übertragen werden

370
00:28:30,710 --> 00:28:35,090
können, aber immerhin – auch solche
Seitenkanäle können dafür genutzt

371
00:28:35,090 --> 00:28:45,009
werden. Sehr viel bekannter sind wiederum
Manipulations-Backdoors; wer kennt es

372
00:28:45,009 --> 00:28:48,769
nicht, dass auf einem Chip, wenn man sich
den mal genauer anschaut, vielleicht nicht

373
00:28:48,769 --> 00:28:52,570
nur die angeschlossenen Kontaktfelder
sind, sondern vielleicht auch zusätzliche

374
00:28:52,570 --> 00:28:56,720
Kontaktfelder, wo im Datenblatt
ganz lapidar „n/c“ – not connected

375
00:28:56,720 --> 00:29:03,279
dransteht, oder „RFU“ – for future
use. Wer weiß, was dahinter wirklich

376
00:29:03,279 --> 00:29:07,760
steckt, ob die wirklich nicht
angeschlossen sind, oder ob da nicht eine

377
00:29:07,760 --> 00:29:11,859
zusätzliche Funktionalität ist – sei
es eine Debug-Schnittstelle oder andere

378
00:29:11,859 --> 00:29:17,539
Funktionalitäten, über die man dann mit
dem Chip entsprechend kommunizieren kann?

379
00:29:17,539 --> 00:29:22,299
Und genauso, wie man das auf den
Kontaktfeldern beobachten kann, ist

380
00:29:22,299 --> 00:29:28,369
natürlich auch denkbar, dass man (…)
bei der Implementierung eines Trojaners

381
00:29:28,369 --> 00:29:33,010
eine vorbestimmte Signalleitung auf dem
Chip implementiert und wird diese zum

382
00:29:33,010 --> 00:29:37,029
Beispiel mittels eines Laserstrahls
durchgeschnitten – ein normaler

383
00:29:37,029 --> 00:29:41,460
Lasercutter, der auch auf dem
Gebrauchtmarkt recht preiswert zu haben

384
00:29:41,460 --> 00:29:46,139
ist – dann kann man entsprechend die
Zusatzfunktionalität in diesem Chip

385
00:29:46,139 --> 00:29:50,440
vielleicht freischalten und dann
plötzlich erst nach dieser Manipulation,

386
00:29:50,440 --> 00:29:56,789
nach diese physikalischen Manipulation mit
dem Chip kommunizieren. Und selbst

387
00:29:56,789 --> 00:30:01,219
Speicherzellen wie zum Beispiel das RAM,
hatten wir eben ja schon gesehen bei

388
00:30:01,219 --> 00:30:04,780
physical unclonable functions, bei
den sogenannten „unklonierbaren

389
00:30:04,780 --> 00:30:10,080
Funktionen“, kann man mittels zum
Beispiel Ionenimplantation auch verändern

390
00:30:10,080 --> 00:30:16,479
und damit andere Daten vorgeben oder die
Funktion der Schaltung verändern. Last

391
00:30:16,479 --> 00:30:20,739
but not least: der Bereich der
Fehlerinduktion kann auch noch genutzt

392
00:30:20,739 --> 00:30:27,639
werden, um (…) durch die Backdoor zu
kommunizieren und dem Trojaner

393
00:30:27,639 --> 00:30:32,899
entsprechend Informationen mitzuteilen.
Zum Beispiel könnte man spezielle

394
00:30:32,899 --> 00:30:38,479
Elemente mit einem Laserstrahl anleuchten
– und klar, der Chip ist aus Silizium,

395
00:30:38,479 --> 00:30:42,309
das ist am Ende nichts anderes als auch
eine Solarzelle vielleicht auf dem Dach

396
00:30:42,309 --> 00:30:46,589
– das heißt, der Laserstrahl induziert
dann eine kleine Photospannung oder einen

397
00:30:46,589 --> 00:30:50,999
Photostrom und kann dadurch dann
natürlich eine Schaltfunktionalität

398
00:30:50,999 --> 00:30:55,609
auslösen, die man von außen so gar nicht
direkt steuern kann, wenn man nicht genau

399
00:30:55,609 --> 00:31:01,209
weiß, wo man mit dem Laser draufblitzen
muss. Was bekannter ist, ist auch, das

400
00:31:01,209 --> 00:31:06,699
häufig Speicher mit Schutzmechanismen
ausgestattet werden. Wer kennt es nicht:

401
00:31:06,699 --> 00:31:10,669
nachdem man ein Programm in einem
Mikrocontroller heruntergeladen hat, dann

402
00:31:10,669 --> 00:31:15,080
wird ein Schreibschutz-Bit gesetzt und
anschließend soll es nicht mehr möglich

403
00:31:15,080 --> 00:31:20,739
sein, die Daten auszulesen. Wenn man aber
als Designer vielleicht genau weiß: diese

404
00:31:20,739 --> 00:31:24,629
Transistorzelle entscheidet jetzt
darüber, ob man einen Zugriff hat, oder

405
00:31:24,629 --> 00:31:29,759
nicht, weiß man vielleicht auch wo man
genau mit dem ultravioletten Licht

406
00:31:29,759 --> 00:31:33,899
draufleuchten muss, um diesen
Schreibschutz halt zu deaktivieren und

407
00:31:33,899 --> 00:31:38,349
dann doch wieder einen Zugriff auf den
Speicher zu bekommen. Jetzt gibt es das

408
00:31:38,349 --> 00:31:42,550
teilweise, dass das tatsächlich als
Bugdoor, wie Peter ja auch schon erklärt

409
00:31:42,550 --> 00:31:46,879
hat, einfach als schlechtes Design
implementiert ist. Aber es könnte

410
00:31:46,879 --> 00:31:51,070
natürlich auch vorsätzlich implementiert
sein, als Backdoor, dass der Designer

411
00:31:51,070 --> 00:31:55,230
genau weiß wenn ich die Daten hier raus
haben möchte, dann lösche ich diese eine

412
00:31:55,230 --> 00:32:02,490
Speicherzelle, z.B. mittels UV-Strahlung
und habe dann den Zugriff. Eine sehr

413
00:32:02,490 --> 00:32:07,999
spannende, aber auch kniffligere Sache ist
das Thema der Zufallszahlen-Generatoren.

414
00:32:07,999 --> 00:32:13,190
Die Zufallszahlen-Generatoren werden
ja viel genutzt um kryptographische

415
00:32:13,190 --> 00:32:19,119
Funktionen abzusichern. Der Zufall, eben
eine nicht vorhersagbare Funktion

416
00:32:19,119 --> 00:32:25,790
innerhalb dieses Chips, auszunutzen um
z.B. Daten zu randomisieren, oder aber

417
00:32:25,790 --> 00:32:31,869
Abläufe zufällig zu gestalten. Das Ganze
wir aber natürlich ad-absurdum geführt,

418
00:32:31,869 --> 00:32:36,499
wenn man diese Zufallszahlen von außen
beeinflussen kann. Oder aber sogar deren

419
00:32:36,499 --> 00:32:41,910
Werte vorgeben kann. Und genau auch das
ist mit Fehlerinduktion denkbar, dass man

420
00:32:41,910 --> 00:32:47,219
z.B. von außen ein elektromagnetisches
Feld, also im Prinzip eine Radiofrequenz

421
00:32:47,219 --> 00:32:52,919
vorgibt, und damit die internen
Zufallszahlen in einer Weise beeinflusst,

422
00:32:52,919 --> 00:32:58,189
dass man direkt Daten einprägen kann,
oder aber zumindest aufsynchronisieren

423
00:32:58,189 --> 00:33:03,390
kann, dass man nicht mehr unvorhersagbare,
sondern vorhersagbare Zufallszahlen

424
00:33:03,390 --> 00:33:09,880
generiert. Eine Geschichte, nur wer genau
diese Frequenz kennt, wie er es einkoppeln

425
00:33:09,880 --> 00:33:14,859
kann, kann diese Backdoor dann nutzen
um z.B. die Zufallsprozesse innerhalb des

426
00:33:14,859 --> 00:33:21,099
Chips außer Gefecht zu setzen. Naja und
wenn wir über Sicherheitschips sprechen,

427
00:33:21,099 --> 00:33:26,249
dann wissen wir ja auch, dass sehr häufig
z.B. Sensoren eingebaut werden. Sensoren

428
00:33:26,249 --> 00:33:31,339
um Angriffe zu vermeiden, seien es z.B.
Spannungssensoren, Sensoren gegen

429
00:33:31,339 --> 00:33:41,410
Lichtbestrahlung, Temperatursensoren usw.
Wer sagt denn, dass diese Sensoren

430
00:33:41,410 --> 00:33:47,190
tatsächlich den gesamten Raum abdecken,
oder ob vielleicht nicht absichtlich eine

431
00:33:47,190 --> 00:33:51,399
Schutzlücke eingebaut worden ist, das
heißt derjenige, der diesen Sensor

432
00:33:51,399 --> 00:33:55,859
implementiert hat, weiß vielleicht dass
genau bei diesem genauen Parametersatz ist

433
00:33:55,859 --> 00:34:00,809
der Sensor „blind“ sozusagen, und er
kann diesen Parametersatz nutzen, um

434
00:34:00,809 --> 00:34:05,229
gezielt eine Fehlerinduktion in dem
Programmablauf oder in den verrechneten

435
00:34:05,229 --> 00:34:10,200
Daten einzuführen. Und damit dann
entsprechend, auch wieder mit dem Trojaner

436
00:34:10,200 --> 00:34:16,209
zu kommunizieren. Also man sieht schon,
es gibt rund um das Thema Backdoors sehr,

437
00:34:16,209 --> 00:34:20,440
sehr viele verschiedene Möglichkeiten
in der Hardware – weitaus mehr

438
00:34:20,440 --> 00:34:25,199
Möglichkeiten als bei Software-Trojanern
– wie man mit ihm kommunizieren kann und

439
00:34:25,199 --> 00:34:30,770
wie man hier auch tatsächlich
Informationen austauschen kann. Eine

440
00:34:30,770 --> 00:34:36,740
besondere, große Bedrohung geht von
den Analyseschnittstellen aus. Denn die

441
00:34:36,740 --> 00:34:41,418
Analyseschnittstellen sind ja meistens
ein Feature was sogar mit einer guten

442
00:34:41,418 --> 00:34:46,569
Intention eingebaut worden ist. Z.B. bei
den Festplatten, wie man hier im oberen

443
00:34:46,569 --> 00:34:52,400
Bild sieht, wo ein Debug-Port eingebaut
worden ist, um, wenn die Festplatte nicht

444
00:34:52,400 --> 00:34:56,369
richtig funktioniert, festzustellen, was
ist da jetzt wirklich kaputt, kann man

445
00:34:56,369 --> 00:35:00,969
vielleicht eine neue Firmware einspielen,
kann man vielleicht noch Daten retten. Auf

446
00:35:00,969 --> 00:35:04,339
der anderen Seite kann genau dieser
Debug-Port natürlich auch dafür

447
00:35:04,339 --> 00:35:10,080
missbraucht werden, um auf Daten direkt
zuzugreifen oder aber um Trojaner in die

448
00:35:10,080 --> 00:35:15,049
Firmware der Festplatte einzuspielen.
Ja, und noch größer ist natürlich der

449
00:35:15,049 --> 00:35:19,740
Bereich der sogenannten JTAG-Ports, die
Analyse-Schnittstelle, die sich in vielen

450
00:35:19,740 --> 00:35:25,189
Geräten wiederfindet und teilweise sehr
mangelhaft abgesichert ist. Denn hier

451
00:35:25,189 --> 00:35:29,400
haben wir ein Beispiel von einem
WLAN-Router, wo man über den JTAG-Port

452
00:35:29,400 --> 00:35:35,999
auch neue Firmware, z.B. mit Trojanern,
in die WLAN-Router einbringen kann.

453
00:35:35,999 --> 00:35:37,730
Denken wir das jetzt noch einmal weiter:

454
00:35:37,730 --> 00:35:40,970
was passiert, wenn jetzt eigentlich
ein Sicherheits-Chip mit solch einem

455
00:35:40,970 --> 00:35:45,960
Analyse-Port ausgestattet ist? Nun, da
kann man natürlich sagen, wenn dieser

456
00:35:45,960 --> 00:35:49,650
Chip mal ausfällt, kann ich versuchen,
darüber dann tatsächlich nochmal

457
00:35:49,650 --> 00:35:54,190
den zu reparieren, oder zumindestens
an die Daten wieder ranzukommen, sie

458
00:35:54,190 --> 00:35:58,340
zu restaurieren. Ja, aber, genau das
ist ja das was man nicht möchte. Ein

459
00:35:58,340 --> 00:36:02,519
Sicherheits-Chip soll doch bitte die
Daten auch wirklich geheim in sich halten

460
00:36:02,519 --> 00:36:06,470
und nicht dann über einen Analyse-Port
vielleicht doch wieder zugänglich

461
00:36:06,470 --> 00:36:12,380
machen. Und deshalb sind insbesondere auf
Sicherheits-Chips natürlich Analyse-Ports

462
00:36:12,380 --> 00:36:17,799
alles andere als eine gute Wahl. Und
wie manches Mal aus einem guten

463
00:36:17,799 --> 00:36:22,599
Feature tatsächlich dann auch eine
missbräuchliche Nutzung entstehen kann,

464
00:36:22,599 --> 00:36:27,230
haben wir einfach mal dargestellt an
dem Beispiel eines Türspions. Wir sehen

465
00:36:27,230 --> 00:36:31,710
hier den Türspion. Und im zweiten Bild
einfach mal was passiert eigentlich,

466
00:36:31,710 --> 00:36:35,119
wenn ich durch den Türspion nach
draußen schaue: naja, ich habe die

467
00:36:35,119 --> 00:36:39,470
gute Möglichkeit, zu sehen: wer steht
da eigentlich vor der Tür? Ist das

468
00:36:39,470 --> 00:36:43,229
eine zumindestens dem Anschein nach
vertrauenswürdige Person? Sollte

469
00:36:43,229 --> 00:36:47,759
ich jetzt besser die Tür öffnen oder
lieber besser geschlossen lassen? Genauso

470
00:36:47,759 --> 00:36:51,040
wie diese gute Funktionalität in dem
Türspion drin ist, kann sie aber auch

471
00:36:51,040 --> 00:36:55,170
missbräuchlich genutzt werden. Wenn
ich z.B. wie im 4. Bild zu sehen, eine

472
00:36:55,170 --> 00:36:59,029
Umkehr-Optik von draußen aufsetze,
dann sehe ich nicht mehr nur den

473
00:36:59,029 --> 00:37:03,660
kleinen Lichtpunkt hinter der Tür,
wo das ganze Bild zusammengezerrt ist;

474
00:37:03,660 --> 00:37:07,569
sondern aufgrund dieser Umkehr-Optik
kann ich plötzlich feststellen, was ist

475
00:37:07,569 --> 00:37:11,980
eigentlich in der Wohnung? Es erlaubt
mir den Blick nach innen und damit:

476
00:37:11,980 --> 00:37:15,460
wer ist eigentlich in der Wohnung,
oder ist da überhaupt jemand? Wie ist

477
00:37:15,460 --> 00:37:19,890
sie ausgestattet? Und so weiter. Das
ist unseres Erachtens nach ein schönes

478
00:37:19,890 --> 00:37:25,200
Beispiel, wie tatsächlich auch ein gut
gemeintes Feature eventuell dann eben

479
00:37:25,200 --> 00:37:28,880
als Backdoor missbraucht wird.

480
00:37:28,880 --> 00:37:33,950
Peter: Ja, in den 90er Jahren – Ende
der 90er Jahre, würde ich sagen

481
00:37:33,950 --> 00:37:37,540
– war ziemlich klar, dass nach
Software-Trojanern als nächstes

482
00:37:37,540 --> 00:37:40,490
Hardware-Trojaner auf dem Plan
stehen. Dass das also eine echte

483
00:37:40,490 --> 00:37:43,959
Bedrohung ist. Und dementsprechend
haben wir uns zu der Zeit auch schon

484
00:37:43,959 --> 00:37:48,330
mal überlegt, was kann man eigentlich
machen, prophylaktisch, um sowas zu

485
00:37:48,330 --> 00:37:53,100
verhindern, um das Risiko zu minimieren;
und überhaupt Technik so zu bauen, dass

486
00:37:53,100 --> 00:37:59,459
sie Trojaner- und Backdoor-resistent
ist. In dem Rahmen, wie das möglich ist.

487
00:37:59,459 --> 00:38:02,970
Und um uns dieser Sache zu nähern,
haben wir uns zunächst mal überlegt,

488
00:38:02,970 --> 00:38:05,500
was können das eigentlich für Motive
sein? Also was bringt eigentlich die

489
00:38:05,500 --> 00:38:09,840
Leute dazu, Trojaner und Backdoors
einzubauen? Ob das jetzt willentlich

490
00:38:09,840 --> 00:38:15,239
ist oder unwillentlich. Das zeigen wir
hier in diesen 4 Kategorien. Es fängt

491
00:38:15,239 --> 00:38:20,450
an mit dem „Bösen Willen“, hier auf
dem ersten Foto mal zu sehen. Beim

492
00:38:20,450 --> 00:38:24,190
Bösen Willen ist es im Prinzip ganz
klar, daran denkt jeder zunächst mal

493
00:38:24,190 --> 00:38:28,660
als erstes. Es könnten Sabotagegründe
sein, z.B. Erpressung könnte eine Rolle

494
00:38:28,660 --> 00:38:34,000
spielen. Ein bestimmtes System ist schon
im Feld und ein Hersteller, z.B. dieses

495
00:38:34,000 --> 00:38:37,619
Systems wird erpresst, dass man mit einem
bestimmten Kommando einer Backdoor dieses

496
00:38:37,619 --> 00:38:41,320
System komplett lahmlegen könnte. Zum
Beispiel. Aber es können auch politische

497
00:38:41,320 --> 00:38:46,439
Motive da eine Rolle spielen. Auch
alles bekannt; also der Diktator unserer

498
00:38:46,439 --> 00:38:50,869
Wahl sozusagen möchte seinen Bürgern
etwas näher auf den Zahn fühlen und

499
00:38:50,869 --> 00:38:55,179
die Kommunikation überwachen, baut
dementsprechend Backdoors ein. Oder,

500
00:38:55,179 --> 00:38:59,179
bringt Trojaner ins Spiel. Auf der
anderen Seite des Spektrums, ganz

501
00:38:59,179 --> 00:39:03,400
interessant, der Gute Wille. Auch das
geschieht dann aus Vorsatz. Und Markus

502
00:39:03,400 --> 00:39:07,490
hatte da ja schon einige Beispiele
mal gezeigt: das können Dinge sein,

503
00:39:07,490 --> 00:39:11,650
wie z.B. Service-Schnittstellen, das
können Debugging-Sachen sein. Im

504
00:39:11,650 --> 00:39:15,950
Prinzip, letztlich sogar, Kundendienst,
dass jemand also wirklich fragt,

505
00:39:15,950 --> 00:39:19,570
er möchte bei so einem Chip die
Möglichkeit haben, im Nachhinein was

506
00:39:19,570 --> 00:39:23,000
zu reparieren oder die Daten wieder
rauszuholen. Passt natürlich nicht zu

507
00:39:23,000 --> 00:39:27,190
Sicherheits-Chips. Und dann schließlich,
auch da gibt’s politische Motive. Da ist

508
00:39:27,190 --> 00:39:30,749
es dann nicht der fiese Diktator unserer
Wahl, sondern der freundliche Monarch

509
00:39:30,749 --> 00:39:34,289
unserer Wahl, der aber das Gleiche will,
seinen Bürgern auf den Zahn fühlen

510
00:39:34,289 --> 00:39:40,420
und alles mitlesen können. Wir haben
auch noch zwei andere Kategorien hier

511
00:39:40,420 --> 00:39:44,730
aufgezeigt. Die sind nicht aktiver
Natur. Also nicht vorsätzlicher Natur,

512
00:39:44,730 --> 00:39:49,059
sondern eher passiver Natur. Und zwar
haben wir die erstmal als Ignoranz

513
00:39:49,059 --> 00:39:53,130
und Dummheit bezeichnet, und das auch
voneinander getrennt. Warum haben

514
00:39:53,130 --> 00:39:57,910
wir das voneinander getrennt? Bei der
Ignoranz ist es so, dass die Auswirkungen

515
00:39:57,910 --> 00:40:02,170
zumindest teilweise bekannt sind. D.h.
jemand weiß eigentlich, das was er da

516
00:40:02,170 --> 00:40:06,309
gerade macht, in einer bestimmten
Entwicklung oder Konzeptionierungsphase,

517
00:40:06,309 --> 00:40:10,680
dass das eigentlich falsch ist. Es
könnten z.B. Gründe dahinterstehen, wie

518
00:40:10,680 --> 00:40:14,450
Zeitdruck. Eine Analyse-Schnittstelle
z.B. soll für ein fertiges Produkt noch

519
00:40:14,450 --> 00:40:17,969
ausgebaut werden. Eigentlich muss man
das machen, um den Chip dann sicher zu

520
00:40:17,969 --> 00:40:21,520
bekommen. Es wird aber aus Zeitdruck
nicht gemacht. Dazu kann z.B. auch noch

521
00:40:21,520 --> 00:40:25,240
Verdrängung kommen, dass man dann sich
sagt „Ja, es ist ja nicht so schlimm, das

522
00:40:25,240 --> 00:40:29,850
wird schon keiner finden“. Oder eben auch,
dass Hierarchien eine wesentliche Rolle

523
00:40:29,850 --> 00:40:34,469
spielen; dass jemandem gesagt wird „Mach’
das mal so, bau’ das mal so ein!“ und das

524
00:40:34,469 --> 00:40:37,869
nicht hinterfragt wird, warum das
eigentlich notwendig ist, wofür man das

525
00:40:37,869 --> 00:40:40,510
eigentlich braucht, und ob man das
hinterher wieder ausbauen soll. Oder

526
00:40:40,510 --> 00:40:45,280
drinlassen soll. Ja, und dann
schließlich, das Thema ‚Dummheit‘ haben

527
00:40:45,280 --> 00:40:49,870
wir hier auch explizit mal so genannt,
so plakativ. Einerseits Bildungsmangel,

528
00:40:49,870 --> 00:40:55,130
Überforderung kann eine Rolle spielen.
Auch etwas plakativ hier mal dargestellt,

529
00:40:55,130 --> 00:40:59,000
das Thema ‚Fachidiotie‘ wirklich zu
nennen. Das ist wirklich die Plage des

530
00:40:59,000 --> 00:41:04,600
21. Jahrhunderts. Denn die Systeme die man
heute baut, die sind sehr, sehr komplex

531
00:41:04,600 --> 00:41:09,730
und da sind teilweise Hunderte von
Entwicklern, Hunderte von Leuten dabei

532
00:41:09,730 --> 00:41:14,910
sowas zu machen. Wie das Einzelne
ineinander spielt, also welches Zahnrad in

533
00:41:14,910 --> 00:41:19,410
welches andere Zahnrad greift, und welche
Zahnräder in Kombination zusammen ein

534
00:41:19,410 --> 00:41:23,940
Schlangenöl ergeben oder auch nicht,
das ist oft nicht bekannt. Und auch da

535
00:41:23,940 --> 00:41:28,880
hatte Marcus ja schon so einige Beispiele
mal gezeigt, wie eine eigentlich gut

536
00:41:28,880 --> 00:41:34,250
gemeinte Sache dann schließlich zu einer
Backdoor führt oder zu einem hohen Risiko

537
00:41:34,250 --> 00:41:40,440
des Backdoor-Auftretens. Und natürlich
für uns interessant gewesen: was kann man

538
00:41:40,440 --> 00:41:47,570
dagegen tun? Und auch hier haben wir uns
3 Kategorien ausgedacht: die Aufklärung

539
00:41:47,570 --> 00:41:51,470
Technologie – also technologische Gegen-
maßnahmen, und die Verpflichtung – kann

540
00:41:51,470 --> 00:41:58,019
von extern oder auch selbst passieren. Und
hier an diesem grünen und grauen Streifen

541
00:41:58,019 --> 00:42:03,430
haben wir mal versucht aufzuzeigen, wie
wirksam das Ganze ist. Und das erste, was

542
00:42:03,430 --> 00:42:08,670
wir da aufgezählt haben, die Aufklärung,
ist natürlich ganz klar gegen Dummheit,

543
00:42:08,670 --> 00:42:14,230
gegen Nichtwissen nützt am besten
Aufklärung. Gegen bösen Willen auf der

544
00:42:14,230 --> 00:42:17,970
anderen Seite nützt Aufklärung wenig.
Vielleicht sogar im Gegenteil, wenn man

545
00:42:17,970 --> 00:42:22,109
jemandem sagt: „Das wäre also wirklich
der Tod des Unternehmens, wenn da so eine

546
00:42:22,109 --> 00:42:26,050
Backdoor eingebaut wäre, die so und so
aussieht“, dann kann das natürlich sein,

547
00:42:26,050 --> 00:42:30,280
dass der Saboteur genau das dann
einbringt. Klar. Aber wie gesagt, die

548
00:42:30,280 --> 00:42:34,779
Aufklärung sehen wir als ganz, ganz
wichtig an. Bei der Technologie... bei den

549
00:42:34,779 --> 00:42:39,269
technologischen Gegenmaßnahmen, da ist es
so, dass einerseits man sagen muss, ist

550
00:42:39,269 --> 00:42:43,090
vom Motiv des Angreifers eigentlich
unabhängig. Technologische

551
00:42:43,090 --> 00:42:50,000
Gegenmaßnahmen erschweren den Einbau von
Backdoors und Trojanern generell. Trotzdem

552
00:42:50,000 --> 00:42:54,260
haben wir das Ganze etwas eingekerbt, auf
der rechten und auf der linken Seite. Und

553
00:42:54,260 --> 00:42:58,500
das hat auch seinen Grund: weil diese
beiden Bereiche mit Vorsatz verbunden

554
00:42:58,500 --> 00:43:03,510
sind. Und das könnte heißen, dass jemand
z.B. der so etwas vorhat sich schlaumacht:

555
00:43:03,510 --> 00:43:07,260
was sind denn da für technologische
Gegenmaßnahmen eingebaut; und dann

556
00:43:07,260 --> 00:43:11,870
versucht, vielleicht auch mit anderen
Leuten zusammen, um diese technologischen

557
00:43:11,870 --> 00:43:16,299
Gegenmaßnahmen herumzukommen und
die außer Kraft zu setzen. Und dann

558
00:43:16,299 --> 00:43:20,940
schließlich gibt es noch die dritte
Kategorie: die Verpflichtung, kann

559
00:43:20,940 --> 00:43:24,030
Selbstverpflichtung sein oder auch externe
Verpflichtung, da kommen wir gleich noch

560
00:43:24,030 --> 00:43:28,449
drauf zu sprechen, auf diese 3 Bereiche.
Und auch da ist es so, dass das sehr, sehr

561
00:43:28,449 --> 00:43:32,860
unterschiedlich wirksam ist. Beim Bösen
Willen natürlich am wenigsten, aber bei

562
00:43:32,860 --> 00:43:39,209
den anderen Motiven schon etwas mehr.
Aber wie versprochen etwas mehr über diese

563
00:43:39,209 --> 00:43:44,880
Möglichkeiten, was kann also jeder tun,
der in einem dieser Bereiche Entwicklung,

564
00:43:44,880 --> 00:43:48,940
Konzeption oder auch Test arbeitet, um
Backdoors zu verhindern oder die zu

565
00:43:48,940 --> 00:43:53,660
erkennen. Und einerseits hier nochmal
die Punkte der Aufklärung. Das kann

566
00:43:53,660 --> 00:43:58,329
technische Aufklärung sein, das steht
natürlich im Vordergrund. Security by

567
00:43:58,329 --> 00:44:03,490
Obscurity darf nicht das Ziel sein.
Kerckhoffs sollte man schon berücksichtigen,

568
00:44:03,490 --> 00:44:07,480
wenn man irgendetwas baut.
Debug-Schnittstellen passen nicht zu

569
00:44:07,480 --> 00:44:11,479
Sicherheits-Chips – auch ganz wichtig.
Obwohl es immer wieder nachgefragt wird,

570
00:44:11,479 --> 00:44:16,200
kann man nicht für eigene Entwicklungen,
für eigene Fehleranalyse z.B so etwas

571
00:44:16,200 --> 00:44:21,020
einbauen. Gehört da nicht rein. Muss
leider draußen bleiben. Und nicht zu

572
00:44:21,020 --> 00:44:24,599
vergessen unser Aspekt auch hier,
Entwickler denken sehr oft nicht wie

573
00:44:24,599 --> 00:44:29,839
Hacker. D.h. sie sind eher konstruktiv,
manchmal konstruktivistisch unterwegs, und

574
00:44:29,839 --> 00:44:34,619
das bedeutet, dass man oft seinen eigenen
Resultaten oder dem was man da

575
00:44:34,619 --> 00:44:40,050
zusammengebaut hat, dann sehr hoch
vertraut. Und einen Angriff z.B. oder

576
00:44:40,050 --> 00:44:43,970
einen Sicherheits-Penetrationstest dann
eher so als Angriff auf die eigene Person

577
00:44:43,970 --> 00:44:48,830
sieht. Und jeder der im
IT-Sicherheits-Business tätig ist, der

578
00:44:48,830 --> 00:44:52,920
kennt das auch, dass man da erstmal so
eine konstruktive Atmosphäre schaffen

579
00:44:52,920 --> 00:44:57,870
muss. Indem man zusammen das Produkt dann
besser macht. Politische Aspekte sind

580
00:44:57,870 --> 00:45:04,300
natürlich auch ein wichtiges Thema. Hier
der Frankenstein-Effekt, sozusagen, zu

581
00:45:04,300 --> 00:45:07,809
nennen. Wenn man so einen Trojaner
tatsächlich irgendwo in der Praxis hat,

582
00:45:07,809 --> 00:45:11,210
dann ist der unkontrollierbar. D.h. man
weiß nicht, was damit passiert, wer den

583
00:45:11,210 --> 00:45:14,709
benutzt, schließlich. Er kann sich
natürlich auch gegen seinen eigenen

584
00:45:14,709 --> 00:45:18,819
Urheber richten. Und gleichzeitig ist
es auch so, braucht man bloß ins

585
00:45:18,819 --> 00:45:22,230
Geschicht-Buch reinzuschauen, dass die
politischen Situationen sich auch ändern

586
00:45:22,230 --> 00:45:26,780
können. Das ist hier vielleicht nicht
unbedingt so stark der Fall, im eigenen

587
00:45:26,780 --> 00:45:31,059
Land. Aber wenn ein Hersteller z.B. in
verschiedene Länder exportiert, 100..150

588
00:45:31,059 --> 00:45:35,390
Länder, dann ist die Wahrscheinlichkeit
doch relativ hoch, dass eins davon in den

589
00:45:35,390 --> 00:45:39,160
nächsten Monaten oder Jahren dann mal
umkippen könnte. Und dementsprechend

590
00:45:39,160 --> 00:45:42,790
wäre auch darauf natürlich zu achten.
Das Ganze verbunden auch mit den ethischen

591
00:45:42,790 --> 00:45:47,259
Aspekten. Für uns auch wichtig, denn
Backdoors können Personen in tödliche

592
00:45:47,259 --> 00:45:51,729
Gefahr bringen. Das ist also kein Spiel.
Und kein Spielzeug, sondern, wenn, gerade

593
00:45:51,729 --> 00:45:55,540
wenn man z.B. an das Thema Kompromat
denkt, und jemanden mit

594
00:45:55,540 --> 00:45:58,980
Top-Secret-Material, was ihm da
‚aufgeschleust‘ wurde, sozusagen

595
00:45:58,980 --> 00:46:02,119
‚angeschleust‘ wurde, an einer Grenze
festgehalten wird, dann ist das schon

596
00:46:02,119 --> 00:46:06,830
durchaus unangenehm. Wir sagen da immer:
„The road to hell is paved with good

597
00:46:06,830 --> 00:46:12,949
intentions“, gilt eigentlich für alles
da, was da steht. Oder auf Deutsch, frei

598
00:46:12,949 --> 00:46:18,650
nach diesem Motto „Gut gemeint ist
nicht gut gemacht“. Ja, es gibt einige

599
00:46:18,650 --> 00:46:21,759
technologische Gegenmaßnahmen gegen
Trojaner und Backdoors, also rein

600
00:46:21,759 --> 00:46:25,950
prophylaktisch, was auch sehr, sehr
wirksam ist. Dazu gehört zunächst mal:

601
00:46:25,950 --> 00:46:30,629
keine backdoor-fördernden Technologien
einzusetzen. Die gehören raus, und

602
00:46:30,629 --> 00:46:33,920
wenn man merkt, dass eine Technologie
backdoor-fördernd ist, oder sowas

603
00:46:33,920 --> 00:46:38,870
begünstigt, dann sollte man die in
Sicherheits-Chips nicht verwenden.

604
00:46:38,870 --> 00:46:41,740
Darüber hinaus gibt es ein paar
Möglichkeiten, dass man das Design so

605
00:46:41,740 --> 00:46:45,710
anlegt, dass Änderungen auffallen. D.h.
jemand anderes, der auch an dem Design

606
00:46:45,710 --> 00:46:50,390
arbeitet, eher merkt, dass etwas nicht
stimmt, oder dass im Test oder in der

607
00:46:50,390 --> 00:46:54,680
Evaluierung dann auffällt, dass etwas
nicht stimmt, weil die Änderungen, die

608
00:46:54,680 --> 00:46:58,400
durchzuführen sind, größer sind als
das was man bei schlangenöl-haltiger

609
00:46:58,400 --> 00:47:03,410
Technologie machen muss. Der Rest ist
im Prinzip ähnlich wie beim Thema der

610
00:47:03,410 --> 00:47:10,500
technologischen Aufklärung. Aber wir
haben hier auch gleichzeitig noch 2 andere

611
00:47:10,500 --> 00:47:15,840
Möglichkeiten aufgeführt. Das sind die
Selbsttest von Chips. Und die Erkennung

612
00:47:15,840 --> 00:47:19,239
nachdem ein Chip fertig ist. Aber da muss
man ein bisschen vorsichtig sein. Bei den

613
00:47:19,239 --> 00:47:23,510
Selbsttest ist es noch so, dass die
einigermaßen wirksam sind. Das bedeutet,

614
00:47:23,510 --> 00:47:27,470
dass ein Chip bevor er eine wirklich
kritische Operation macht, also z.B. eine

615
00:47:27,470 --> 00:47:31,259
Nachricht verschlüsseln, dass er vorher
eine Testoperation durchführt und schaut

616
00:47:31,259 --> 00:47:34,740
ob alles okay ist. Ob die Schlüssel nicht
manipuliert sind, die Zufallszahlen in

617
00:47:34,740 --> 00:47:39,310
Ordnung sind usw. Da gibt’s also ’ne ganze
Menge dieser Selbsttest, und wenn die alle

618
00:47:39,310 --> 00:47:45,509
vernünftig durchgelaufen sind, dann macht
ein Chip die eigentliche Operation. Aber

619
00:47:45,509 --> 00:47:49,579
kann natürlich sein, dass ein Insider
sich Gedanken macht und überlegt, was

620
00:47:49,579 --> 00:47:52,679
könnte da alles eingebaut sein das
mir das Leben schwer macht. Und

621
00:47:52,679 --> 00:47:57,219
dementsprechend auch diese Tests
manipuliert. Bedeutet aber, dass man da

622
00:47:57,219 --> 00:48:01,440
mehr Einfluss braucht, mehr Aufwand,
und vielleicht sogar Mitwisser. Das ist

623
00:48:01,440 --> 00:48:07,510
natürlich dann auch ein Problem. Bei der
Erkennung sind wir etwas skeptischer, also

624
00:48:07,510 --> 00:48:11,289
es gibt einige Resultate, einige
Arbeitsgruppen, auch die sich mit dem

625
00:48:11,289 --> 00:48:14,910
Thema Erkennung auseinandersetzen und
sagen man könnte doch bei einem fertigen

626
00:48:14,910 --> 00:48:18,329
Chip, wenn der sozusagen fertig
prozessiert ist, schauen ob da ’ne

627
00:48:18,329 --> 00:48:22,599
Backdoor drin ist, anhand z.B. der
Stromaufnahmekurven, die dieser Chip dann

628
00:48:22,599 --> 00:48:26,920
liefert. Da muss man aber sehr vorsichtig
sein, denn üblicherweise würde so eine

629
00:48:26,920 --> 00:48:31,449
Backdoor ja so angelegt werden, dass sie
nicht ständig aktiv ist. Und außerdem

630
00:48:31,449 --> 00:48:34,120
ist es so bei Sicherheits-Chips, bei
Sicherheits-Software und auch bei

631
00:48:34,120 --> 00:48:37,140
Sicherheits-Hardware, dass der
Stromverbrauch sowieso immer relativ

632
00:48:37,140 --> 00:48:42,919
zufällig gewählt wird. Einfach auch
um Seitenkanal-Angriffe abzuhalten.

633
00:48:42,919 --> 00:48:48,630
Dementsprechend ist so eine Entdeckung von
Manipulation am fertigen Chip sehr, sehr

634
00:48:48,630 --> 00:48:53,380
schwierig. Es gibt aber noch eine dritte
Möglichkeit, gegen Trojaner vorzugehen,

635
00:48:53,380 --> 00:48:57,949
auch präventiv. Und das ist die
Verpflichtung. Gibt 2 Möglichkeiten, also

636
00:48:57,949 --> 00:49:03,280
einerseits eine auferlegte Verpflichtung.
Und was man heute auch durchaus mal sieht,

637
00:49:03,280 --> 00:49:07,049
ist, dass Leute die Sicherheits-Chips
einsetzen, die die also kaufen oder sich

638
00:49:07,049 --> 00:49:11,930
umsehen, wo gibt’s die, dass die sehr,
sehr genau schauen, wer stellt die her,

639
00:49:11,930 --> 00:49:16,210
was haben die für eine Historie
z.B. die Hersteller, wie sind die

640
00:49:16,210 --> 00:49:19,969
Besitzverhältnisse, wo ist der
Hauptsitz z.B. der Firma, welche

641
00:49:19,969 --> 00:49:24,819
Einflussmöglichkeiten gibt es von
anderen, von Dritten, auf diese Firmen.

642
00:49:24,819 --> 00:49:30,749
Also das kommt immer mehr, man merkt
es eigentlich sehr schön. Ja, Gesetze und

643
00:49:30,749 --> 00:49:37,239
Richtlinien – zunächst mal zu nennen die
Datenschutzgesetze, natürlich. Ganz nett,

644
00:49:37,239 --> 00:49:41,380
die Frage natürlich: wer setzt die durch?
Und wer überprüft die Einhaltung dieser

645
00:49:41,380 --> 00:49:45,660
Gesetze die es schon gibt eigentlich? Und
da ist natürlich ein Realitätsabgleich

646
00:49:45,660 --> 00:49:50,670
nötig. Z.B. die Frage: Wo gelten die?
Also, zu Lande, im Weltraum und

647
00:49:50,670 --> 00:49:55,479
ähnliches? Ist ja immer die Frage wie wir
wissen. Und dann gibt’s schließlich noch

648
00:49:55,479 --> 00:50:00,110
die Selbstverpflichtung, die eigentlich
gar nicht so schlecht ist. In diesem Fall

649
00:50:00,110 --> 00:50:05,200
ist es so, dass der Hersteller selber
sich selbst verpflichten würde, keine

650
00:50:05,200 --> 00:50:09,430
Backdoors und keine Trojaner einzusetzen.
Jetzt natürlich die Frage: "Wieviel bringt

651
00:50:09,430 --> 00:50:15,060
das, wenn er sich nur selber verpflichtet?
Was da passiert ist im Prinzip, dass ein

652
00:50:15,060 --> 00:50:19,409
künstliches ökonomisches Risiko erzeugt
wird. Das heißt, wenn der Hersteller z.B.

653
00:50:19,409 --> 00:50:23,220
überführt wird, dass er also trotz
dieser Selbstverpflichtung trotzdem so

654
00:50:23,220 --> 00:50:26,849
eine Backdoor eingesetzt hat, oder
die verwendet, dann hat das für ihn

655
00:50:26,849 --> 00:50:31,500
natürlich negative Konsequenzen. Und
dieses ökonomische Risiko was dann

656
00:50:31,500 --> 00:50:34,780
entsteht, das führt dazu, dass
beim Hersteller selbst und in

657
00:50:34,780 --> 00:50:40,200
Entwicklungsprozessen mehr darauf geachtet
wird, solche Backdoors nicht einzubauen.

658
00:50:40,200 --> 00:50:44,480
Bzw. auch nicht unbeabsichtigt einzubauen.
D.h. die Tests... könnte man erwarten,

659
00:50:44,480 --> 00:50:48,610
dass die Tests z.B. besser werden, dass
die Evaluierungsmöglichkeiten besser

660
00:50:48,610 --> 00:50:52,250
werden, und dass natürlich auch die
Beeinflussungsmöglichkeiten schlechter

661
00:50:52,250 --> 00:50:58,070
werden. Dass die Aufklärung besser wird.
Also im Prinzip alles prima. Die Frage

662
00:50:58,070 --> 00:51:01,559
natürlich: Warum soll sich ein Hersteller
so einem ökonomischen Risiko aussetzen,

663
00:51:01,559 --> 00:51:05,949
wenn es nicht belohnt wird? Aber auch da
ändert sich momentan so ein wenig die

664
00:51:05,949 --> 00:51:11,640
Lage. Man sieht schon, dass Hersteller
die da vorpreschen, dass die schon eine

665
00:51:11,640 --> 00:51:15,730
Vorbildfunktion dann für andere auch
darstellen können. Man kann das Ganze mit

666
00:51:15,730 --> 00:51:21,749
anderen ethischen Werten koppeln. Aber
natürlich, schließlich die Frage: Lohnt

667
00:51:21,749 --> 00:51:24,969
es sich für einen Hersteller, wer macht
das bisher? Wir hoffen, dass das besser

668
00:51:24,969 --> 00:51:32,479
wird. Und dass da mehr Unternehmen sich
diesen Sachen dann widmen. So kommen wir

669
00:51:32,479 --> 00:51:35,380
auch schon zum Ende unseres Vortrages.
Wir haben einige Literatur noch

670
00:51:35,380 --> 00:51:40,659
zusammengestellt für euch. Wen es
interessiert, also hier z.B. von 1972

671
00:51:40,659 --> 00:51:46,740
die erste Literaturstelle, die erste
Fundstelle, wo wirklich von Computer-

672
00:51:46,740 --> 00:51:50,929
Trojanern wirklich gesprochen wird und wo
so die Konzepte aufgestellt werden. Bis

673
00:51:50,929 --> 00:51:55,990
hin zur letzten Fundstelle, gerade jetzt
von Dezember, eigentlich eine ganz

674
00:51:55,990 --> 00:52:00,900
interessante Arbeit. Kann sich jeder
gerne mal durchlesen, wenn er Zeit hat.

675
00:52:00,900 --> 00:52:05,110
Ja, damit wie gesagt, möchten wir dann
auch schließen. Wir wünschen euch viel

676
00:52:05,110 --> 00:52:07,979
Spaß bei der eigenen Forschung. Wenn
es Fragen gibt, sind wir noch ein paar

677
00:52:07,979 --> 00:52:12,299
Minuten hier. Und ansonsten können wir
auch darauf verweisen, wir wären morgen

678
00:52:12,299 --> 00:52:15,563
in unserem Assembly. Und wer Lust hat kann
gern vorbeikommen, mit uns diskutieren.

679
00:52:15,563 --> 00:52:19,849
Vielleicht gibt es ja auch noch
interessante Ideen, die wir dann

680
00:52:19,849 --> 00:52:22,990
zusammen besprechen können.
Also vielen Dank schon mal!

681
00:52:22,990 --> 00:52:33,420
*Applaus*

682
00:52:33,420 --> 00:52:36,589
Herald: Vielen Dank! Also, ihr habt
gehört, ihr habt jetzt ein paar Minuten

683
00:52:36,589 --> 00:52:41,690
Zeit, Fragen zu stellen. Wenn es Fragen
gibt, stellt euch bitte an die Mikrofone.

684
00:52:41,690 --> 00:52:47,649
Die anderen die jetzt schon den Saal
verlassen, tun dies bitte möglichst leise!

685
00:52:47,649 --> 00:52:52,330
Gibt’s irgendwelche Fragen?

686
00:52:52,330 --> 00:52:57,000
Peter: Ah, da ist einer!

687
00:52:57,000 --> 00:53:02,010
Herald: Ah, dort hinten erkenne ich
jemanden an Mikrofon 3. Bitte!

688
00:53:02,010 --> 00:53:06,420
Frage: Und zwar stellt sich mir die Frage,
dass man ja Software gut eigentlich

689
00:53:06,420 --> 00:53:10,459
damit absichern kann, indem man beweist,
dass sie der Spezifikation genügt.

690
00:53:10,459 --> 00:53:13,450
Gibt es da Ansätze für Hardware
in den verschiedenen Leveln,

691
00:53:13,450 --> 00:53:18,289
also für VHDL, für die
Implementierung usw.?

692
00:53:18,289 --> 00:53:22,240
Marcus: Es gibt in der Tat, natürlich,
den Versuch, zu analysieren,

693
00:53:22,240 --> 00:53:26,849
ist da eine unbemerkte Funktionalität
eingebaut worden? Da gibt es auch

694
00:53:26,849 --> 00:53:31,019
entsprechende Ansätze. Allerdings muss
man ganz fairerweise sagen, dass natürlich

695
00:53:31,019 --> 00:53:36,060
diese Ansätze es sehr schwer haben,
eine Vollständigkeit nachzuweisen.

696
00:53:36,060 --> 00:53:40,139
Und wir haben es gerade gesehen, z.B. im
Herstellungsprozess stelle ich mir vor,

697
00:53:40,139 --> 00:53:45,399
ganz zum Schluss, in der Veränderung des
Maskensatzes, so ist dieses nur noch

698
00:53:45,399 --> 00:53:49,670
am fertigen Produkt oder an der Maske
selber nachweisbar. Infolgedessen

699
00:53:49,670 --> 00:53:53,690
ist an sich hier der Rückschluss – ist
das die ursprüngliche Funktionalität

700
00:53:53,690 --> 00:53:59,170
oder nicht? – kaum noch feststellbar. Also
ja, es gibt Ansätze, aber nein, sie sind

701
00:53:59,170 --> 00:54:03,139
bei weitem noch nicht voll umfassend.
Frage: Danke!

702
00:54:03,139 --> 00:54:08,169
Herald: Schhhhhhh!
Mikro 4, bitte!

703
00:54:08,169 --> 00:54:14,139
Frage: Hallo hallo! Ich hätte die Frage:
wie sieht ganz operativ der Aufwand aus

704
00:54:14,139 --> 00:54:17,419
für einen – ich nenn’s mal
Maulwurfentwickler – der jetzt eine

705
00:54:17,419 --> 00:54:23,450
zusätzliche Maske reinbringen will. Wenn
ich mir vorstelle, dass die Lagen, die

706
00:54:23,450 --> 00:54:28,969
Oxide etc. die man da mittlerweile plant,
so dünn sind, dass wenn ich ’ne

707
00:54:28,969 --> 00:54:34,049
Zusatzstruktur in bestehende Layer
dazwischenschiebe, dass ich dann Shunts

708
00:54:34,049 --> 00:54:39,170
produziere etc. und wenn ich was nebenan
lege, also abseits des normalen

709
00:54:39,170 --> 00:54:42,750
footprints, dann passts beim Dicing nicht
mehr, dann fällt das auf, dass da einfach

710
00:54:42,750 --> 00:54:46,210
zusätzliche Pfade liegen,
wo eigentlich nix hingehört.

711
00:54:46,210 --> 00:54:50,960
Peter: *hustet* Entschuldigung. Ja, also,
als Antwort, vielleicht: das Schöne ist,

712
00:54:50,960 --> 00:54:55,460
bei der Vermeidung der Trojaner, dass je
weiter man in Bereich der Masken geht,

713
00:54:55,460 --> 00:55:00,069
dass es umso aufwändiger wird. Hatten wir
vorhin auch ansatzweise so dargestellt.

714
00:55:00,069 --> 00:55:04,309
Also wenn man gleich in den VHDL-Code das
einbringt, so eine Schad„soft“ware, so

715
00:55:04,309 --> 00:55:08,049
einen Trojaner, ist es relativ einfach.
Nachher wird’s immer schwerer. Und

716
00:55:08,049 --> 00:55:15,150
das Interessante ist da, dass man wirklich
Technologien vermeiden muss, wo es einfach

717
00:55:15,150 --> 00:55:19,729
wird, sozusagen diese Manipulation
durchzuführen. Z.B. denken wir mal an

718
00:55:19,729 --> 00:55:24,660
diese RAM-Zellen. Da ist es so, der
RAM-Zelle ist es eigentlich mehr oder

719
00:55:24,660 --> 00:55:30,699
weniger egal, ob der eine Treiber dieser
RAM-Zelle etwas stärker ist oder etwas

720
00:55:30,699 --> 00:55:35,700
weniger stark. Die funktionieren
normalerweise. D.h. wenn man jetzt z.B.

721
00:55:35,700 --> 00:55:39,140
diese physical unclonable functions
anwendet und aus diesen RAM-Zellen etwas

722
00:55:39,140 --> 00:55:44,109
ableitet, z.B. einen Schlüssel, dann wird
das nicht auffallen, wenn jemand das

723
00:55:44,109 --> 00:55:47,820
manipuliert hat. Wenn es allerdings eine
Funktionalität ist, auf die der Chip

724
00:55:47,820 --> 00:55:51,700
wirklich angewiesen ist, und die auf gar
keinen Fall schieflaufen darf, dann ist

725
00:55:51,700 --> 00:55:56,340
das viel schwerer. Und dementsprechend
ist es so, dass zunächst mal wichtig ist,

726
00:55:56,340 --> 00:56:02,250
alles rauszuwerfen, was sozusagen diesen
Backdoors Vorschub leistet. Und, ja, da

727
00:56:02,250 --> 00:56:07,000
hattest du völlig recht, also es ist in
der Tat schwierig, aber wenn die falschen

728
00:56:07,000 --> 00:56:11,129
Technologien verbaut sind, dann wird es
ziemlich einfach. Und das ist genau das

729
00:56:11,129 --> 00:56:13,559
Problem dabei.

730
00:56:13,559 --> 00:56:15,340
Herald: So, die Zeit ist leider knapp.

731
00:56:15,340 --> 00:56:19,159
Deshalb die letzte Frage
aus dem Internet, bitte.

732
00:56:19,159 --> 00:56:22,719
Signal Angel: Die Frage ist: Wurden schon
mal wirklich absichtlich eingebrachte

733
00:56:22,719 --> 00:56:26,729
Trojaner gefunden? Also nicht im Sinne von
Debug-Stelle ausnutzen oder JTAG

734
00:56:26,729 --> 00:56:31,249
ausnutzen? Und wurde das
auch explizit verwendet?

735
00:56:31,249 --> 00:56:34,990
Marcus: Es gibt in der Tat einige
Beispiele, wo insbesondere auch

736
00:56:34,990 --> 00:56:40,079
Zufallszahlengeneratoren, die in Hardware
ausgelegt worden sind, verändert worden

737
00:56:40,079 --> 00:56:44,470
sind und damit praktisch die Zufallszahlen
nicht mehr wirklich komplett zufällig

738
00:56:44,470 --> 00:56:49,039
waren sondern beeinflusst waren. Also –
ja, es gibt auch praktische Beispiele, wo

739
00:56:49,039 --> 00:56:52,419
Hardware-Trojaner eingesetzt worden sind.

740
00:56:52,419 --> 00:56:55,219
Signal Angel: Gibt’s dazu
auch einen Namen?

741
00:56:55,219 --> 00:56:58,879
Herald: *grinst dämlich*
– Eigentlich keine Dialoge!

742
00:56:58,879 --> 00:57:04,709
Deshalb, vielen Dank, ihr
könnt nochmal applaudieren!

743
00:57:04,709 --> 00:57:12,349
*Applaus*

744
00:57:12,349 --> 00:57:17,549
*Abspannmusik*

745
00:57:17,549 --> 00:57:23,041
*Untertitel erstellt von c3subtitles.de
im Jahr 2016. Unterstütze uns!*
