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!