0:00:00.000,0:00:14.660
34C3 Vorspannmusik
0:00:15.680,0:00:19.420
Herald-Engel: So. In unserem nächsten[br]Vortrag lernt ihr etwas darüber, was
0:00:19.420,0:00:23.930
passiert, wenn das tolle TPM und das tolle[br]Intel ME dann doch irgendwie nicht so toll
0:00:23.930,0:00:29.310
sind und was denn schief gehen kann, wenn[br]man seine Keys auf so nem TPM
0:00:29.310,0:00:35.180
initialisieren will. Dazu helfen euch[br]jetzt gleich die Herrn Professoren
0:00:35.180,0:00:41.030
Doktoren Weis und Forler weiter, bitte[br]einen schönen Applaus!
0:00:41.030,0:00:46.290
Applaus
0:00:47.870,0:00:51.910
Ruediger Weis: So, also herzlichen Dank[br]für die nette Einführung, auch herzlichen
0:00:51.910,0:00:59.040
Dank für die zahlreichen Zuhörenden. Es[br]wird heute ein Vortrag, wo ich ein
0:00:59.040,0:01:03.920
bisschen auch mit dem Kollegen Forler von[br]der Realität irgendwie auch ein bisschen
0:01:03.920,0:01:08.579
massiv gerempelt worden bin. Eigentlich[br]war unsere Intention, wirklich zu
0:01:08.579,0:01:14.210
diskutieren, wie macht man Kryptographie[br]robuster, und auch in einem feindlichen
0:01:14.210,0:01:19.740
Umfeld. Und ich hab gelernt ein neues[br]Buzzwort: riesa...lienzte?
0:01:19.740,0:01:23.130
lacht[br]Kryptographie war eigentlich wirklich als
0:01:23.130,0:01:29.230
Titel geplant, jedoch müssen wir, glaube[br]ich, wegen der realen Entwicklung noch ein
0:01:29.230,0:01:35.700
paar Einordnungen gleich am Anfang machen.[br]Also zunächst mal die übliche gute
0:01:35.700,0:01:39.950
Nachricht, die ich auch immer gern bring:[br]wissenschaftlich starke Kryptographie ist
0:01:39.950,0:01:44.249
selbst gegen übermächtige[br]Geheimdienstgegner wahrscheinlich das
0:01:44.249,0:01:50.140
Einzige, was überhaupt hält, aber es hält.[br]Also wir haben einigermaßen die Sachen
0:01:50.140,0:01:53.919
verstanden, die Sachen, die[br]freundlicherweise im Zusammenhang mit der
0:01:53.919,0:01:59.009
Snowden-Geschichte veröffentlicht wurden,[br]zeigten auch, dass die Kryptographen in
0:01:59.009,0:02:06.009
der NSA mit Wasser kochen und da gab es[br]eigentlich für die großen Mengen Geld, die
0:02:06.009,0:02:11.050
da rein geworfen wird, relativ wenig[br]Überraschungen da. Also man kann sagen,
0:02:11.050,0:02:14.900
Krypto hält, oder um's mal ein bisschen[br]lyrischer von Bruce Schneier zu machen:
0:02:14.900,0:02:19.160
"Vertraue auf die Mathematik,[br]Verschlüsselung ist dein Freund". Also
0:02:19.160,0:02:23.780
insofern eigentlich eine ganz gute[br]Situation, bis diese gute Situation auf
0:02:23.780,0:02:31.030
die reale Welt kommt. Wir Kryptographen[br]können wirklich eine Art Magie entwickeln.
0:02:31.030,0:02:34.670
Wir können mit ein paar Bits, die man[br]sicher speichert, wirklich sicher gegen
0:02:34.670,0:02:40.950
alle möglichen Angriffe bestehen. Das[br]Problem ist, wenn diese paar wenigen Bits
0:02:40.950,0:02:45.680
aber nimmer sicher sind, dann können wir[br]halt gar nichts mehr machen. Und man kann
0:02:45.680,0:02:49.360
es auch, wenn man es ein bisl modell-[br]theoretisch macht, kann man auch sagen, na
0:02:49.360,0:02:54.040
ja, irgendwas muss die berechtigten[br]Kommunikations-Partner von den Angreifern
0:02:54.040,0:02:57.470
unterscheiden. Und das Kleinste, was wir[br]anbieten können, sind ein paar wenige
0:02:57.470,0:03:00.510
Bits, die sicher gespeichert werden[br]müssen. Weniger können wir nicht machen.
0:03:00.510,0:03:04.760
Also wir sind mit unserem Latein nicht am[br]Ende, aber eigentlich schon in der
0:03:04.760,0:03:08.430
Situation, wo wir gesagt haben, OK passt[br]auf ein paar Bits auf, mehr können wir
0:03:08.430,0:03:13.230
nicht für euch tun. Und genau das ist das,[br]was ja im Moment episch uns um die Ohren
0:03:13.230,0:03:17.820
fliegt. Also es gab hier auch schon einen[br]sehr interessanten Vortrag, deswegen will
0:03:17.820,0:03:22.040
ich auch gar nicht so arg ins Detail zu[br]gehen, aber der Titel ist einfach zu
0:03:22.040,0:03:27.020
schön: "How to hack a turned off[br]computer", oder dass man beliebigen Code
0:03:27.020,0:03:32.910
ausführt auf dieser Management Engine. Und[br]diese Management Engine ist relativ
0:03:32.910,0:03:39.460
spannende Geschichte, insbesondere für[br]meine Forschungsarbeiten ganz interessant,
0:03:39.460,0:03:45.069
weil Dank der Intel Management Engine kann[br]ich auf die lästerliche Frage, wo mich
0:03:45.069,0:03:48.890
eigentlich Leute schon seit Jahrzehnten[br]immer.. naja, seit anderthalb Jahrzehnten,
0:03:48.890,0:03:53.000
damit aufziehen: "Wann ist endlich das[br]Jahr von Minix auf dem Desktop?" kann ich
0:03:53.000,0:03:57.320
inzwischen freundlich grinsen und sag:[br]"Seit 2012 ist es IN deinem Desktop und
0:03:57.320,0:04:02.150
niemand hat's gemerkt". Also diese[br]Management Engine läuft in der Tat auf
0:04:02.150,0:04:07.840
diesem Minix 3, was ein akademisches[br]Projekt, das irgendwie über Jahre halt
0:04:07.840,0:04:11.850
niemand benutzt hat, und jetzt bin ich[br]auch im Minix Steering Committee und wir
0:04:11.850,0:04:15.240
waren ziemlich traurig, dass wenig[br]Beteiligung letztes Jahr von der Konferenz
0:04:15.240,0:04:19.680
war, bis wir dann mitgekriegt haben, dass[br]das Minix, was wir da entwickelt haben,
0:04:19.680,0:04:24.580
wirklich auf allen Intel-Plattformen läuft[br]und damit ist wirklich diese lästerliche
0:04:24.580,0:04:28.930
Bemerkung, dass Minix auf mehr Rechnern[br]läuft - auf Windows als auch Mac, weil
0:04:28.930,0:04:34.139
auch Mac haben die Intel-Hardware und[br]diese selbe ME-Geschichte drin - ein ganz
0:04:34.139,0:04:40.189
witziges Detail, aber wie gesagt, bei den[br]witzigen Detail ist natürlich das
0:04:40.189,0:04:46.219
Hauptproblem da, wenn das nicht ordentlich[br]gemacht worden ist, dann können da
0:04:46.219,0:04:49.759
Sicherheitslücken kommen. Und[br]offensichtlich ist es so, dass die zwar
0:04:49.759,0:04:55.159
dieses Minix genommen haben, das steht[br]aber halt unter einer freien Lizenz und
0:04:55.159,0:04:59.280
nicht GPL, und dann natürlich die ihre[br]Arbeiten und Modifikationen nicht
0:04:59.280,0:05:02.620
veröffentlicht haben und sich[br]offensichtlich nicht gut genug damit
0:05:02.620,0:05:06.560
auskennen, das einigermaßen sicher zu[br]machen. Minix ist ein militant auf
0:05:06.560,0:05:10.329
Sicherheit getrimmtes System, das hat so[br]Inflexibilitäten, z.B. dass alle
0:05:10.329,0:05:15.660
Nachrichten für eine gewisse[br]Prozessorarchitektur genau 24 Byte lang
0:05:15.660,0:05:20.049
sind. Also es gibt sehr wenig[br]Angriffsvektoren, die wir da haben. Und es
0:05:20.049,0:05:24.389
ist ein Microkernel-System, ich weiß nicht[br]genau, wie die genaue Code-Entwicklung
0:05:24.389,0:05:30.469
ist, aber in der Anfangszeit waren wir da[br]bei unter 10.000 lines of code. Und das
0:05:30.469,0:05:34.539
ist auch wieder ein schöner Moment, wo man[br]als Betriebssystem-Professor relativ
0:05:34.539,0:05:40.371
einfach die Welt erklären kann. Linux hat[br]inzwischen 10 oder 20 Millionen Zeilen of
0:05:40.371,0:05:45.360
code. Windows irgendwie 100 Millionen -[br]frag mich nicht. Und es ist auch so ein
0:05:45.360,0:05:50.430
Lemma, dass man sagt, alle 1000 Programm-[br]Zeilen gibt es einen Fehler. Und jetzt
0:05:50.430,0:05:54.639
können wir ausrechnen: das ist bei Minix[br]halt 20.000 Fehler, äh bei Linux 20.000
0:05:54.639,0:05:57.819
Fehler und bei Minix vielleicht eine[br]Handvoll Fehler, und da könnte man
0:05:57.819,0:06:03.059
eigentlich vorbeigehen und das anschauen.[br]Kleines weiteres Lemma: wie problematisch
0:06:03.059,0:06:06.360
sind Fehler? Da ist die Antwort, wenn man[br]mit C programmiert, kann man davon
0:06:06.360,0:06:10.229
ausgehen, dass ein Fehler mit hoher[br]Wahrscheinlichkeit echte Schmerzen
0:06:10.229,0:06:17.240
verursacht. Also die Gruppe der Sachen,[br]der Fehler, die wirklich zu ignorieren
0:06:17.240,0:06:21.919
sind - oder ignoriert werden können - sind[br]bei C deutlich geringer als bei anderen
0:06:21.919,0:06:26.781
Systemen. Insofern sage ich also, die[br]reine Information, dass Minix ein sehr
0:06:26.781,0:06:30.740
kleines System ist, das so klein ist, dass[br]man es so wunderbar in einer Vorlesung
0:06:30.740,0:06:36.580
erklären kann, ist wirklich direkt[br]verbunden mit der Sicherheit. OK. Neben
0:06:36.580,0:06:40.819
diesem Problem, das wir halt Ärger auf der[br]untersten Ebene haben, war ein anderes
0:06:40.819,0:06:45.060
Ding, das wir über Jahre lang auch[br]verfolgt haben, diese TPM-Diskussion, und
0:06:45.060,0:06:51.300
hier gibt es wieder was sehr Bizarres.[br]Hier, wer ein RSA verwendet, wer
0:06:51.300,0:06:55.919
vielleicht meine alten Diskussionen mit[br]RSA und ECC kennt, weiß, dass ich RSA
0:06:55.919,0:07:00.589
eigentlich ganz, ganz, ganz gern hab und das hat[br]auch eine Reihe von Gründen, nämlich es
0:07:00.589,0:07:05.259
gibt Sicherheitsbeweise, wirklich harte[br]Sicherheitsbeweise, es ist verstandene
0:07:05.259,0:07:10.450
Mathematik. Und es ist eine relativ kurze[br]Implementierung, wo man doch nicht allzu
0:07:10.450,0:07:14.360
viel falsch machen kann. Und da das, sage[br]ich, immer noch ein bisschen ne Hacker-
0:07:14.360,0:07:18.569
Konferenz ist, seien mir auch ein paar[br]Sachen hier erlaubt. Zunächst mal, was ist
0:07:18.569,0:07:23.829
RSA? Wir brauchen Primzahlen. Wenn wir[br]2048-bit-Schlüssel haben, brauchen wir
0:07:23.829,0:07:28.409
1024 Bit lange Primzahlen, die[br]multipliziert man. Erste Frage an den
0:07:28.409,0:07:33.320
Mathematiker: gibt's die? Ja, es gibt[br]Primzahlen in jeder Menge. Zweitens: wie
0:07:33.320,0:07:37.430
viel gibt es da? Und da hat man eine[br]Formel, die sagt, also die Anzahl der
0:07:37.430,0:07:44.919
Primzahlen ist etwa x/ln(x), also ganz[br]grob gesagt, alle 1024 Zahlen sind.. ist
0:07:44.919,0:07:51.589
eine Primzahl. Also man hat irgendwie[br]2^10^15 mögliche Primzahlen und wer ein
0:07:51.589,0:07:55.099
bisschen aufpasst, sollte bei[br]Mathematikern immer zusammenzucken, wenn
0:07:55.099,0:07:59.400
die 'in ungefähr gleich' schreiben, dann[br]bedeutet das, es ist gleich bis auf einen
0:07:59.400,0:08:01.039
linearen Faktor,[br]lacht
0:08:01.039,0:08:03.379
der möglicherweise beliebig[br]groß sein kann.
0:08:03.379,0:08:05.070
Lachen[br]Und das ist für die Leute, die
0:08:05.070,0:08:08.659
implementieren, immer so mäßig[br]befriedigend, deswegen haben wir noch mal
0:08:08.659,0:08:14.379
nachgeguckt und für x > 17 gilt, dass[br]diese Abschätzung schon sehr genau ist.
0:08:14.379,0:08:18.369
Und im Vertrauen: für echte Systeme[br]sollten wir Primzahlen, die deutlich
0:08:18.369,0:08:22.210
größer sind als 17 verwenden.[br]Lachen
0:08:22.210,0:08:27.119
Ja, das war ein mathematischer Witz,[br]vielen Dank für die Leute,
0:08:27.119,0:08:28.119
lacht[br]Lachen
0:08:28.119,0:08:32.970
die es gefunden haben. Ok. Zurück zu der[br]Hacker-Welt. Wie sieht es in der
0:08:32.970,0:08:36.250
praktischen Implementierung aus? Schauen[br]wir uns mal gpg an, das bedeutet, wir
0:08:36.250,0:08:41.330
nehmen halt Zahlen, Zufallszahlen, und[br]testen die dann. Zuerst mit einem Sieve-
0:08:41.330,0:08:46.030
Algorithmus, also ein einfaches[br]Durchteilen der Primzahlen kleiner/gleich
0:08:46.030,0:08:53.090
2000.. 400.. äh, 4999. Das muss ich,[br]glaube ich, hier nicht machen. Der zweite
0:08:53.090,0:08:57.840
Teil ist ein Fermat-Test, der ist auch so[br]niedlich, dass ich den Wikipedia-Artikel
0:08:57.840,0:09:07.070
nehm: das ist alles. Und der dritte Test[br]ist bisl ausführlicher, weil da mit Bit
0:09:07.070,0:09:12.260
hin und her geschubst wird, ein bisschen,[br]aber das ist der komplette Code. Also wir
0:09:12.260,0:09:17.230
machen Zufallszahlen und machen diese[br]Tests, diese wenigen Zeilen Tests durch.
0:09:17.230,0:09:19.540
Und haben dann eine hohe[br]Wahrscheinlichkeit, dass es eine Primzahl
0:09:19.540,0:09:23.810
ist, multiplizieren das dann, sind fertig.[br]Was kann da passieren? Nochmal zur
0:09:23.810,0:09:29.940
Erinnerung: wir sind in einem Zahlenraum,[br]wo wir 2^1015 Primzahlen zur Verfügung
0:09:29.940,0:09:34.340
haben, also da kann doch nichts[br]schiefgehen. Außer man kommt auf die tolle
0:09:34.340,0:09:38.380
Idee, wir machen mal ganz schnelle[br]Primzahl- Erzeugung. Mein erster Eindruck
0:09:38.380,0:09:42.700
war: Nein, echt lieber nicht. Dann habe[br]ich gesagt: "Guck Dir mal die Literatur
0:09:42.700,0:09:47.050
an", hab die zwei, drei Tage angeguckt und[br]dann kam ich zur Entscheidung: Echt lieber
0:09:47.050,0:09:53.180
nicht. Und die Praxis haut dann hier auch[br]nochmal voll auf die Computersicherheit
0:09:53.180,0:09:59.880
ein. Nämlich diese TPM-Systeme, die[br]kriegen das hin, die haben einen
0:09:59.880,0:10:03.280
Schlüssel, also einer der zentralen[br]Schlüssel ist der Storage Root Key. Der
0:10:03.280,0:10:10.460
wird genau ein Mal erzeugt. In der[br]Lebenszeit des Gerätes. Also ein Mal. Also
0:10:10.460,0:10:16.530
hier ist kein.. keine Notwendigkeit, das[br]mit einer unsicheren schnellen Erzeugung
0:10:16.530,0:10:20.170
zu machen, wird allerdings trotzdem[br]gemacht. Weiterhin haben die ganzen TPM-
0:10:20.170,0:10:28.380
Chips eine Schlüssellänge kleiner/gleich[br]2048 Bit. So, und dann passierte der
0:10:28.380,0:10:32.160
preiswerte Totalschaden, das haben die[br]Kollegen in einem Vortrag hier auch
0:10:32.160,0:10:36.530
gemacht, als Professor muss ich da noch[br]mal darauf hinweisen, dass die Hauptidee -
0:10:36.530,0:10:40.510
haben die jungen Leute auch ordentlich[br]hingeschrieben - von 1996 ist,
0:10:40.510,0:10:47.200
unmodifiziert. Dieser Coppersmith..[br]unmodifiziert, gar nix. Und was ich ihnen
0:10:47.200,0:10:50.530
sehr dankbar bin ist, dass sie da bei den[br]ganzen Sachen mal die Preisliste
0:10:50.530,0:10:55.460
drangeschrieben haben. Also, ich weiß[br]nicht, was das in Bitcoin ist, aber das
0:10:55.460,0:11:03.110
sind Cent-Bruchteile in Dollar. Und für[br]das 2048, was die höchste Schlüssellänge
0:11:03.110,0:11:11.260
für TPM-Chips ist, ist es Kosten von 944[br]$. Wer sieht noch was Ultra-bizarres?
0:11:11.260,0:11:18.160
unverständliche Antwort[br]Ja. Also, irgendjemand erklärt mir nach
0:11:18.160,0:11:23.801
dem dritten Bier, warum.. wie man das[br]hinkriegt, dass 3072 eine 10^17 mal
0:11:23.801,0:11:32.300
größere Sicherheit gegen Angriffe haben[br]als 4096. Also ihr merkt, das ist an
0:11:32.300,0:11:40.140
Bizzarität relativ wenig zu überbieten.[br]Gut, wie gesagt, wenn wir gerade bei
0:11:40.140,0:11:43.990
Sachen sind, die in die Hose gehen können,[br]habe ich auch noch überlegt: Was gibt es
0:11:43.990,0:11:47.320
noch aus dem letzten Jahrtausend? Nämlich[br]den Bleichenbacher-Angriff. Und da hat
0:11:47.320,0:11:52.860
eine Gruppe um Hanno Böck und andere[br]Autoren auch mit Robot das sehr schön
0:11:52.860,0:11:54.110
gezeigt,[br]lacht
0:11:54.110,0:11:57.570
dass das heute auch noch genau geht, aber[br]nur bei so kleinen Firmen wie F5, Citrix
0:11:57.570,0:12:00.800
und Cisco.[br]Lachen
0:12:00.800,0:12:07.490
Und so bei 27 der 100 häufigsten[br]Webservices, unter anderem Facebook und
0:12:07.490,0:12:11.730
lacht[br]PayPal. Das ist, glaube ich, die Firma die
0:12:11.730,0:12:14.280
irgendwas mit Geld macht also das ist[br]irgendwie
0:12:14.280,0:12:18.280
Lachen[br]auch ein Punkt, wo ich irgendwie sag, das
0:12:18.280,0:12:23.090
ist eine Sache, wo man sich fragt, und da[br]werd ich nicht näher auf.. gehen, aber
0:12:23.090,0:12:27.990
noch mal der Hinweis: Coppersmith [ist[br]von] 96, Bleichenbacher [von] 98. Ihr
0:12:27.990,0:12:33.240
merkt, ich steh auf alte Angriffe,[br]insofern seid versichert, im Laufe
0:12:33.240,0:12:34.240
lacht
0:12:34.240,0:12:36.350
des Vortrags kommen dann noch ältere[br]Geschichten raus.
0:12:36.350,0:12:37.350
Lachen
0:12:37.350,0:12:42.470
Aber das ist natürlich relativ[br]schmerzhaft. Also wir sollten hier auch
0:12:42.470,0:12:47.330
nochmal sagen, was wir empfehlen: es hilft[br]alles nichts, wir brauchen Open Source im
0:12:47.330,0:12:52.740
Booting. Wir müssen weg von UEFI. Wir[br]brauchen so was wie Core Boot, Libre Boot
0:12:52.740,0:12:58.570
oder U-Boot, und das muss jetzt relativ[br]schnell passieren, weil ansonsten haben
0:12:58.570,0:13:02.920
wir.. sind wir Kryptographen auch wehrlos.[br]Also wenn die uns die unterste Ebene
0:13:02.920,0:13:07.750
wegschießen und dann alle Bits, die wir[br]irgendwie sichern wollen, einsammeln, dann
0:13:07.750,0:13:12.030
können wir auch keine Magie machen.[br]Interessant ist, dass auch Google das im
0:13:12.030,0:13:17.100
Bereich des NERF - schöner Akronym für[br]Non-Extensible Reduced Firmware - sehr
0:13:17.100,0:13:22.400
stark weiter betreibt. Kommen wir zu dem[br]Thema, das ich eigentlich hauptsächlich
0:13:22.400,0:13:26.680
bespielen wollte, das ist Robuste[br]Kryptographie. Und jetzt geb ich mal
0:13:26.680,0:13:31.360
wirklich ein paar Sachen, die sehr vom[br]Ingenieurs-mäßigen Standpunkt interessant
0:13:31.360,0:13:36.510
sind, aber natürlich mathematisch fundiert[br]sind. Erste Regel: XOR ist dein Freund.
0:13:36.510,0:13:41.390
Das bedeutet, wenn man z.B. aus mehreren[br]Quellen den Zufall nimmt und das dann
0:13:41.390,0:13:47.570
XORt, dann tut man eigentlich das System[br]stärken. Also es bedeutet auch, ich hab 15
0:13:47.570,0:13:52.330
schlechte random Quellen und eine gute,[br]und wenn ich alles zusammen XOR, tue ich
0:13:52.330,0:13:56.381
weitgehend die Eigenschaft der guten[br]Geschichte erben. Auch hier muss man ein
0:13:56.381,0:14:00.870
paar Sachen beachten, aber 'XOR ist dein[br]Freund' ist, denk ich, sagen wir mal, als
0:14:00.870,0:14:04.670
erste Annäherung schon mal ein guter[br]Punkt. Zweitens: man kann Sachen doppelt
0:14:04.670,0:14:08.820
hashen, das habe ich auch vor vielen[br]Jahren gemacht, ist heute auch - [das]
0:14:08.820,0:14:13.630
erste Mal Blockchain - bei Bitcoin der[br]Fall, dass die zweimal hashen, bevor sie
0:14:13.630,0:14:17.050
in den Mining-Prozess.. aber die machen[br]das halt nicht richtig, denen fehlt ein
0:14:17.050,0:14:22.860
XOR und dadurch haben sie nicht die[br]Sicherheit, die sie natürlich durch höhere
0:14:22.860,0:14:27.570
Sachen.. äh, durch doppelt hashen[br]erreichen würden. Längere Schlüssellängen,
0:14:27.570,0:14:32.880
na, das ist generell eine gute Empfehlung,[br]außer wenn ihr euch an die vorletzte Folie
0:14:32.880,0:14:38.510
erinnert, also es ist kein Allheilmittel.[br]Aber für sehr viele Sachen ist eine lange
0:14:38.510,0:14:45.530
Schlüssellänge doch eine deutlich bessere[br]Idee. Gut. Historische Sachen..
0:14:45.530,0:14:53.970
Cryptophone. Ein Telefon, das auch Snowden[br]ganz gern benutzt, haben wir da für 2003
0:14:53.970,0:14:59.710
ein Design gemacht, und da können wir[br]sehen: Schon damals, wo die Rechner etwas
0:14:59.710,0:15:03.280
langsamer waren - wir haben das für Handy[br]gemacht - ging das irgendwie, dass wir
0:15:03.280,0:15:10.400
4096-bit.. äh, Diffie-Hellmann machen, wir[br]haben es einmal gehasht und dann haben wir
0:15:10.400,0:15:14.620
vor der Schlüsselableitung es ein zweites[br]Mal gehasht, aber mit einer modifizierten
0:15:14.620,0:15:18.710
Hash-Funktion. Also hier ist es ein bisl[br]verkürzt dargestellt: Wir nehmen die SHA-2-
0:15:18.710,0:15:24.580
Funktion von damals, aber tun die mit dem[br]anderen Wert parametrisieren, das hat z.B.
0:15:24.580,0:15:28.870
die Eigenschaft, ihr könnt überlegen, wenn[br]man Kollisionsprobleme hat und zweimal
0:15:28.870,0:15:32.610
hintereinander hasht und schon nach einem[br]Hash eine Kollision da ist, dann hilft das
0:15:32.610,0:15:37.140
nicht allzu sehr weiter. Aber durch das[br]Umparametrisieren, wie gesagt, es ist
0:15:37.140,0:15:41.749
manchmal nur ein Bit, also im Prinzip wär[br]Bitcoin sehr viel sicherer, wenn sie nach
0:15:41.749,0:15:46.240
dem.. - also, sicherer gegen einige[br]Angriffs-Sachen - wenn sie nach dem ersten
0:15:46.240,0:15:51.739
Hashing ein Bit umrempeln würden. Also das[br]ist irgendwie manchmal ein bisschen
0:15:51.739,0:15:54.960
gruselig, wenn man sich überlegt, das[br]manchmal ein Bit an der richtigen Stelle
0:15:54.960,0:15:58.920
gesetzt oder nicht gesetzt wirklich[br]drastische Auswirkungen hat. Später dazu
0:15:58.920,0:16:03.890
noch ein paar weitere Bemerkungen. Und[br]hier aus der beliebten Serie 'XOR ist dein
0:16:03.890,0:16:11.230
Freund': wir haben damals AES-256 und[br]Twofish einfach mit XOR verknüpft, das ist
0:16:11.230,0:16:15.550
eine Verknüpfung, die die schöne[br]Eigenschaft hat, das dann Angreifer beide
0:16:15.550,0:16:21.240
Funktionen brechen müssen, etwas verkürzt[br]dargestellt, aber durchaus zutreffend.
0:16:21.240,0:16:25.689
Also wie gesagt, es sind relativ einfache[br]Sachen, bei Hash-Funktionen ein bisl
0:16:25.689,0:16:30.480
darauf achten: XOR ist ganz spannend.[br]Kommen wir noch mal zur Hash-Funktion, da
0:16:30.480,0:16:35.770
möchte ich hier heute mal ein bisschen[br]Werbung für SHA-512 machen. Ich bin der
0:16:35.770,0:16:43.450
Meinung, man sollte lieber SHA-512 nutzen[br]als SHA-256. Warum? Naja, Abschneiden ist
0:16:43.450,0:16:51.660
OK, man kann die, wenn man nur 256 Bit[br]ist, kann man die anderen Bits schlicht
0:16:51.660,0:16:55.900
und einfach verwerfen. Wer es nochmal im[br]Standard da hinten.. kann es sich
0:16:55.900,0:17:01.600
angucken, SHA-356 ist im Prinzip, mit[br]einer leichten Modifikation, SHA-512 mit
0:17:01.600,0:17:06.980
abgeschnittenen Bits. Zweiter Punkt:[br]Kryptographisch hochwertige Bits, genauer
0:17:06.980,0:17:12.400
gesagt schön randomisierte Bits, kann man[br]immer brauchen. Also wenn man 512-bit
0:17:12.400,0:17:17.160
Ausgabe hat, dann hat man noch zusätzlich[br]ein paar random Bits rumliegen, wie schon
0:17:17.160,0:17:21.280
gesagt, man kann dann noch überlegen 'XOR[br]ist dein Freund' und das in andere Sachen
0:17:21.280,0:17:30.430
nochmal anzubringen. Weiterhin ist SHA-512[br]sehr schnell, auf 64-bit Plattformen, ist
0:17:30.430,0:17:35.651
eigentlich fast genauso schnell auf[br]älteren Plattformen wie SHA-256 und wie
0:17:35.651,0:17:40.240
gesagt, rein aus dem kryptographischen[br]Bauchgefühl: Man hat in SHA-512 mehr
0:17:40.240,0:17:45.980
Runden und man hat 64-bit-Operation, also[br]von allem kryptographischen Bauchgefühl
0:17:45.980,0:17:50.040
wird da deutlich mehr durcheinander[br]gewirbelt und die Sicherheit auch in einer
0:17:50.040,0:17:58.290
gewissen Weise erhöht. Gut, das machen wir[br]kurz. Längere Kurven, nochmal der Hinweis:
0:17:58.290,0:18:03.630
Ich bin der Meinung, unter anderem die[br]Gruppe um D.J. Bernstein hat da schöne
0:18:03.630,0:18:12.230
Arbeit gemacht bei der kleinen Kurve, er[br]hat auch irgendwie bei der 256-bit Kurve
0:18:12.230,0:18:16.480
interessante Ergebnisse gehabt. Er hat[br]auch längere Kurven bereitet, aber das
0:18:16.480,0:18:21.800
nicht mit der.. mit dem In.. mit dem[br]Nachdruck bearbeitet, die man vielleicht
0:18:21.800,0:18:25.960
dafür braucht. Und außerdem bin ich halt[br]wirklich der Meinung, wenn man schon auf
0:18:25.960,0:18:31.790
die elliptischen Kurven kommt, ist ja[br]SHA-256, also ist 256 Bit wirklich sehr
0:18:31.790,0:18:37.340
nahe an der Grenze, wo man irgendwie sagt,[br]das könnte schnell problematisch werden.
0:18:37.340,0:18:46.470
Insbesondere, weil auch djb verwiesen hat[br]auf die Probleme, die RSA bei
0:18:46.470,0:18:49.850
Quantencomputern hat, muss ich sagen,[br]elliptische Kurven, wegen der kleineren
0:18:49.850,0:18:54.690
Schlüssellänge würd ich vom Bauchgefühl[br]sagen, da knallt's deutlich früher als bei
0:18:54.690,0:19:02.540
den RSA-Operationen. Gut, alles klar,[br]jetzt in einem zweitem Teil tut mein
0:19:02.540,0:19:07.630
geschätzter Kollege Christian Forler mal[br]ein paar konstruktive Tips geben, wie man
0:19:07.630,0:19:12.120
wirklich bestehende Systeme besser nutzen[br]können, und es ist eigentlich auch
0:19:12.120,0:19:16.510
überraschend: Wir haben uns in dem Vorfeld[br]halt da noch mal reingeguckt und sind an
0:19:16.510,0:19:23.030
einigen Stellen gekommen, dass z.B. einige[br]neue Ideen, TLS, z.B. 1.3, eigentlich auf
0:19:23.030,0:19:28.860
den ersten Blick gut aussehen, außer wenn[br]man mal ein paar andere Angriffsmodelle
0:19:28.860,0:19:32.930
zugrunde legt. Insofern sind die Arbeiten,[br]die Christian jetzt vorstellt, glaube ich
0:19:32.930,0:19:36.920
auch, vom hohen Maße praxisrelevant.[br]Christian Forler: Hallo. Jetzt wird es
0:19:36.920,0:19:40.550
gleich ein bisschen technisch werden, da[br]müsst ihr jetzt halt durch.
0:19:40.550,0:19:42.570
lacht[br]OK. Und zwar geht es jetzt um den
0:19:42.570,0:19:47.390
richtigen Einsatz von AES. Ne? Also das[br]Problem ist, dass jetzt die ganzen
0:19:47.390,0:19:51.480
Hersteller von Softwareprodukte irgendwie[br]Sicherheit bewerben, indem sie erzählen:
0:19:51.480,0:19:55.840
"Wir nutzen AES". Ja. Das ist zwar jetzt[br]erst mal nicht so die schlechteste Idee,
0:19:55.840,0:19:59.430
AES zu nutzen, aber in der Regel findet[br]man halt nicht raus, wie sie das
0:19:59.430,0:20:03.540
einsetzen, ja, und da kann man auch viel[br]falsch machen. Und das schauen wir uns
0:20:03.540,0:20:06.540
dann gleich mal an, das heißt, wenn jemand[br]irgendwie behauptet, er macht irgendwie
0:20:06.540,0:20:10.790
AES, online erstmal nachfragen, wie das[br]eingesetzt wird und wenn man das nicht
0:20:10.790,0:20:15.620
rausfindet, ist das meistens ein Indiz[br]dafür, dass da ein Fehler gemacht wird.
0:20:16.630,0:20:20.523
Und dann schauen wir uns mal an hier: Also[br]AES ist keine Wunderwaffe, das ist einfach
0:20:20.523,0:20:24.590
nur ein Blockchiffre, das heißt, ich kann[br]mit AES einen Klartextblock verschlüsseln,
0:20:24.590,0:20:29.760
bzw. einen Chiffretextblock entschlüsseln,[br]und die Blockgröße ist 128 Bit, das heißt
0:20:29.760,0:20:34.320
16 Byte. Das hilft jetzt in der Regel[br]nicht so wirklich viel, weil in der Regel
0:20:34.320,0:20:38.860
habe ich halt Nachrichten, die ein wenig[br]größer sind als 16 Byte, ja, wenn man es
0:20:38.860,0:20:42.220
so irgendwie Dateien uns anschaut, auch[br]Netzwerkpakete. Und da ist jetzt die
0:20:42.220,0:20:46.520
Frage: Wie kann ich jetzt einen größeren[br]Klartext verschlüsseln? Und dann ist die
0:20:46.520,0:20:50.100
Antwort irgendwie klar: Ich zerhacke den[br]in Blöcke und bearbeite die Blöcke
0:20:50.100,0:20:54.780
nacheinander irgendwie mit AES ab. Ja, das[br]ist so die elementare Strategie. Und dann
0:20:54.780,0:20:58.410
schauen wir uns mal an: da in der i-Folge[br]jetzt, da geht das auf jeden Fall schief,
0:20:58.410,0:21:02.710
und ihr könnt euch vorstellen, man tut[br]jeden Block einmal durch AES jagen,
0:21:02.710,0:21:08.850
Nachteil: gleiche Klartextblöcke, ja, wenn[br]die Klartextblöcke gleich sind und AES
0:21:08.850,0:21:11.750
eine Funktion, dann kommt auch das Gleiche[br]raus. Das heißt, gleiche Klartextblöcke
0:21:11.750,0:21:15.340
ergibt gleiche Chiffretextblöcke, ja,[br]alles schon mal gehört, das heißt, da
0:21:15.340,0:21:19.160
bleibt Struktur erhalten und wenn da[br]Struktur erhalten bleibt bei einer
0:21:19.160,0:21:22.950
Verschlüsselung, dann ist das irgendwie[br]extrem schlecht. Also das, was wir grad
0:21:22.950,0:21:26.760
nicht haben. Ja, das ist halt die Idee,[br]warum wir Kryptographie nutzen, damit ja
0:21:26.760,0:21:29.350
von der Struktur nichts mehr übrig bleibt.[br]Ja, und falls doch, gibt es da dieses
0:21:29.350,0:21:33.870
Wikipedia-Beispiel, das wir irgendwie alle[br]kennen. Das heißt, das ist irgendwie AES-
0:21:33.870,0:21:36.880
verschlüsselt, das ist 'military-grade[br]security', da, so Werbung.. so, ja.
0:21:36.880,0:21:40.150
räuspert sich[br]Also da gibts ja Leute, die bewerben halt
0:21:40.150,0:21:44.160
ihre Software mit 'military-grade[br]security' und machen dann sowas. Das ist
0:21:44.160,0:21:48.490
irgendwie schlecht. Nächster Schritt, was[br]man jetzt machen kann: Wir wissen alle, ja
0:21:48.490,0:21:52.440
man macht Schlüsselstrom. Man nehme ein[br]AES, generiere einen Schlüsselstrom. Die
0:21:52.440,0:21:55.660
Idee ist schon mal gar nicht mal so[br]schlecht, weil wir haben ja irgendwie
0:21:55.660,0:21:59.870
gelernt so, One-Time-Pad funktioniert. Und[br]das wollen wir irgendwie da ein bisschen
0:21:59.870,0:22:05.370
emulieren. Dann gibt's jetzt die einfache[br]Variante, dann.. genau, verschlüssel ich
0:22:05.370,0:22:09.620
jetzt was, indem ich einen Counter,[br]irgendwie, also ich nehm einen Counter,
0:22:09.620,0:22:15.770
verschlüssel den und tu das Ergebnis, der[br]Schlüsselstrom, der raus kommt, XORen mit
0:22:15.770,0:22:19.320
meinem Klartext. Und das Problem ist hier[br]bei dieser Variante, hier gibt's keinen
0:22:19.320,0:22:23.670
Zustand, das ist zustandslos, das heißt,[br]das ist deterministisch. Das heißt, jedes
0:22:23.670,0:22:27.770
Mal, wenn ich hier das anwerfe, die[br]Verschlüsselungsverfahren, kommt der
0:22:27.770,0:22:31.570
gleiche Schlüsselstrom raus. Und wie wir[br]auch wissen, One-Time-Pads mehrmals
0:22:31.570,0:22:35.470
anwenden ist auch eine schlechte Idee,[br]dann kommt .. das heißt, ich muss jedes
0:22:35.470,0:22:39.990
Mal bei AES den Schlüssel wechseln, ja[br]wenn ich da jetzt eine neue Nachricht
0:22:39.990,0:22:44.201
verschlüsseln möchte. Und das ist[br]irgendwie auch.. irgendwie nicht so
0:22:44.201,0:22:46.950
richtig praktikabel, wenn ich jetzt[br]vergesse, den Schlüssel zu wechseln, bei
0:22:46.950,0:22:50.390
dem einfachen Verfahren, dann fällt es[br]erstmal gar nicht so auf, weil ich habe
0:22:50.390,0:22:54.059
hier jetzt einmal Tux verschlüsselt und[br]einmal Beastie, und hier sieht man
0:22:54.059,0:22:57.899
erstmal: die Struktur ist weg, weißes[br]Rauschen, das ist schon mal irgendwie ganz
0:22:57.899,0:23:02.380
angenehm. Problem ist jetzt nur, ich habe[br]zweimal den gleichen Schüsselstrom, das
0:23:02.380,0:23:07.710
heißt, wenn ich den Chiffretext XORe, dann[br]kürzt sich der weg. Und dann, genau, kommt
0:23:07.710,0:23:14.160
irgendwie das raus. Und da kann man sich[br]vorstellen, das das jetzt nicht so der
0:23:14.160,0:23:20.670
Riesenaufwand ist, aus diesem XOR dann die[br]zwei Klartexte zu extrahieren, das kriegt
0:23:20.670,0:23:24.230
man auch hier noch als Geheimdienst hin,[br]selbst als schlecht ausgestatteter
0:23:24.230,0:23:29.220
Geheimdienst, das kriegt man auch noch als[br]Student noch hin. Das ist eventuell mal
0:23:29.220,0:23:34.270
eine Übungsaufgabe, so im.. für Bachelor-[br]studenten, das ist jetzt net so schwer.
0:23:34.270,0:23:35.270
lacht
0:23:35.270,0:23:39.760
Deswegen also, wie funktioniert's richtig?[br]Das heißt, ich brauch einen Zustand, ja?
0:23:39.760,0:23:42.450
Das heißt, wenn ich einen Schlüssel nur[br]habe und möchte damit mehrere Nachrichten
0:23:42.450,0:23:47.210
verschlüsseln, brauche ich einen Zustand,[br]das nennen wir hier Nonce. Und das heißt,
0:23:47.210,0:23:50.740
und beim Counter-Mode setzt sich halt mein[br]Counter im Anfangswert nicht auf 1,
0:23:50.740,0:23:54.940
sondern ich setze ihn auf seinen Zustand.[br]Und jetzt ist die Idee: Jedes Mal, wenn ich
0:23:54.940,0:23:58.450
eine neue Nachricht verschlüssele, würfel[br]ich mir einen neuen Zustand aus, neue
0:23:58.450,0:24:04.190
Nonce. Und das heißt, wenn ich da jetzt[br]eine neue Nonce anfange, bekomme ich immer
0:24:04.190,0:24:08.690
wieder einen neuen Schlüsselstrom und das[br]ist halt vorteilhaft, das heißt, genau.
0:24:08.690,0:24:12.730
Das heißt, wenn ich halt.. neuer[br]Schlüsselstrom heißt halt, das können wir
0:24:12.730,0:24:16.610
wieder nutzen und so falls sich jetzt..[br]das Ganze ist sicher so, falls sich kein
0:24:16.610,0:24:22.621
Nonce-Schlüssel-Paar wiederholt. So weit,[br]so gut. Das heißt, die Anforderung halt
0:24:22.621,0:24:27.270
hier ist jetzt.. ist, der Nonce darf sich[br]nicht wiederholen. Ja und das ist halt so
0:24:27.270,0:24:31.580
ein bisl kritisch, es gibt uns, genau, es[br]gibt da noch so mehrere
0:24:31.580,0:24:34.440
Verschlüsselungsverfahren, die sind alle[br]Nonce-basiert, und das erste Problem, wie
0:24:34.440,0:24:37.140
ich gesagt habe, man darf den Nonce[br]irgendwie.. muss aufpassen, dass der sich
0:24:37.140,0:24:41.220
nicht wiederholt. Und das zweite Problem[br]ist, man schützt nicht die Integrität der
0:24:41.220,0:24:44.559
Nachricht damit. Ja das heißt, wenn ich da[br]was mit verschlüssele, z.B. so eine Bank-
0:24:44.559,0:24:47.660
Transaktion, ist es sozusagen geschickt,[br]dass die hier im Internet niemand lesen
0:24:47.660,0:24:50.940
kann, aber wenn ich das Format irgendwie[br]kenne, der Bank-Transaktion, kann ich es
0:24:50.940,0:24:55.650
so manipulieren, dass der Betrag sich[br]ändert, oder die Empfängeradresse und das
0:24:55.650,0:25:03.200
auch kontrolliert. Und eventuell möchte[br]man das nicht. Ja. Genau. Und deswegen
0:25:03.200,0:25:05.930
gibt es die Authentisierte[br]Verschlüsselung. Das heißt, als Kryptograh
0:25:05.930,0:25:09.360
ist man auch auf die Idee gekommen, seit[br]längerem schon, das man nicht nur die
0:25:09.360,0:25:11.950
Vertraulichkeit irgendwie schützen möchte[br]einer Nachricht, sondern auch die
0:25:11.950,0:25:18.290
Integrität. Und das in einem Rutsch und[br]das auch irgendwie mit AES. Genau. Das ist
0:25:18.290,0:25:22.740
jetzt das große Ziel. Und wie funktioniert[br]das, so ein Verfahren? Ich hab jetzt, wie
0:25:22.740,0:25:27.530
gesagt, wieder mein Nonce und mein N und[br]meinen Klartext P, den kipp ich da rein,
0:25:27.530,0:25:30.250
und dann fällt es nicht nur unter[br]Chiffretext raus, sondern es fällt auch
0:25:30.250,0:25:34.950
noch so eine kryptographische Prüfsumme[br]raus. Ja? Und das heißt, wenn ich jetzt
0:25:34.950,0:25:38.920
die Inputs ändere, ändern sich auch alle[br]Outputs bei der Verschlüsselung. Das
0:25:38.920,0:25:41.929
heißt, ich komm jedesmal, wenn ich dann[br]irgendwie mindestens ein Bit ändere oder
0:25:41.929,0:25:46.700
mehr im Input, ändert sich halt auch die[br]Prüfsumme und der Chiffretext. Das ist
0:25:46.700,0:25:51.490
schon mal ganz nett. Und wenn ich[br]entschlüssle, ganz einfach, dann kipp ich
0:25:51.490,0:25:55.280
wieder so ein valides Nonce-Chiffretext-[br]Tag-Paar rein und es kommt mein Klartext
0:25:55.280,0:25:58.840
raus, Juhu! Und das ist, der Clou ist[br]jetzt, der Hammer: Wenn ich jetzt
0:25:58.840,0:26:02.040
irgendwie am.. wenn jetzt jemand[br]manipuliert, das heißt wenn ich jetzt
0:26:02.040,0:26:07.320
Nonce, Chiffretext oder Tag ändere, dann[br]gibts ne Fehlermeldung. Ja? Dann heißt es,
0:26:07.320,0:26:10.660
der Klartext ist nicht valide, das heißt[br]die Eingabe war invalide und es gibt eine
0:26:10.660,0:26:15.080
Fehlermeldung. Das ist irgendwie ganz[br]nett, sowas will ich eigentlich haben. Ja
0:26:15.080,0:26:18.650
da gibt es irgendwie so zwei ganz berühmte[br]Verfahren, das eine ist der Galois/Counter
0:26:18.650,0:26:21.611
Mode, der wird eigentlich überall.. der[br]ist in der Industrie weit verbreitet, den
0:26:21.611,0:26:27.929
gibt es z.B. so bei Sachen wie IPSec oder[br]auch bei TLS und so weiter und das ist,
0:26:27.929,0:26:33.680
das Problem.. also, das Gute ist, das Ding[br]ist superschnell, der Galois/Counter Mode,
0:26:33.680,0:26:37.720
Nachteil ist, er ist ein bissel fragil.[br]Das schauen wir uns gleich mal an und das
0:26:37.720,0:26:44.720
andere Verfahren, das ich dann noch[br]empfehlen kann, ist OCB, Offset Codebook
0:26:44.720,0:26:49.230
von.. genau, Rogaway, hat er mit gebaut[br]und das.. genau. Also wenn man die Wahl
0:26:49.230,0:26:53.710
hat, sollte man OCB einsetzen. Problem ist[br]halt auch wieder hier: Bei all den
0:26:53.710,0:26:58.050
Verfahren, wenn sich eine Nonce wiederholt[br]dann ist es.. dann bricht so alles
0:26:58.050,0:27:02.140
zusammen. Ja und ich hab mir das nochmal[br]angeschaut, wie schlimm die Situation ist,
0:27:02.140,0:27:07.830
wenn sich eine Nonce wiederholt, 2011. Und[br]d.h. das Schlimme ist, das ist wirklich
0:27:07.830,0:27:11.500
total kaputt. D.h ich kann da immer von[br]O(1) Angriff finden, d.h. ich kann das
0:27:11.500,0:27:16.460
Ding in Echtzeit alles kaputt machen.[br]'Vertraulichkeit und Integrität'. Und das
0:27:16.460,0:27:20.410
möchte man nicht so wirklich haben. Also[br]das ist irgendwie.. d.h. wenn sich eine
0:27:20.410,0:27:24.750
Nonce wiederholt, ist das so eine mittlere[br]Katastrophe. Ja und das ist irgendwie vom
0:27:24.750,0:27:30.960
Design her nicht so gut, d.h. da muss man[br]irgendwann mal irgendwie die.. also die
0:27:30.960,0:27:34.419
Anforderungen für einen Kryptograph, der[br]ist Mathematiker, man hat so einen
0:27:34.419,0:27:37.640
Zustand, der sich wiederholt, das klingt[br]jetzt erstmal irgendwie so nicht so
0:27:37.640,0:27:41.750
schlimm, aber in der Praxis ist das echt[br]ein Problem. Schauen wir uns auch gleich
0:27:41.750,0:27:46.080
an, erstmal noch mal hier bisl GCM-[br]Bashing. GCM, na das liegt.. das ist
0:27:46.080,0:27:51.640
extrem fragil. Also, [auf] das muss mans[br]aufpassen, wenn man es einsetzt. Wenn ihr
0:27:51.640,0:27:56.120
GCM einsetzt, Galois/Counter Mode, dann[br]bitte nur mit 96-bit Nonces. Ansonsten
0:27:56.120,0:27:59.530
gibt's Probleme, da können Konstanz-[br]Kollisionen auftreten, weil dann das
0:27:59.530,0:28:04.030
gehasht wird. Das möchte man eigentlich[br]nicht tun. Ja und die Hashfunktion hat da
0:28:04.030,0:28:09.669
so ein bisschen Schwächen. Dann, kurz[br]nachdem GCM raus kam, hat sich mal Niels
0:28:09.669,0:28:13.820
Ferguson - also sprich: Microsoft - das[br]Ding angeschaut und hat gemeint so, oh,
0:28:13.820,0:28:21.090
das Problem ist, wenn ich jetzt den.. die[br]Nachricht, also die Prüfsumme, kürze, dann
0:28:21.090,0:28:24.630
wird das Ganze extrem unsicher. Das heißt,[br]es nimmt überproportional stark ab, die
0:28:24.630,0:28:28.030
Sicherheit. D.h. Kürzen ist eine schlechte[br]Idee. Und das ist auch so manche komische
0:28:28.030,0:28:31.630
Eigenschaft, die man eigentlich nicht[br]haben möchte. Ja. Das andere, was man
0:28:31.630,0:28:35.900
jetzt rausgefunden hat: ja, bei Nonce[br]Wiederholung, da fliegt da so ein
0:28:35.900,0:28:39.540
Schlüssel raus. Ja, d.h. da irgendwie[br]kriegt man noch einen Schüssel frei Haus
0:28:39.540,0:28:44.410
und das Gute ist, GCM hat zwei Schlüssel.[br]Einen Schlüssel zum Verschlüsseln, einen
0:28:44.410,0:28:47.970
Schlüssel für die Integrität, für die[br]Prüfsumme. Und es fällt da nur der
0:28:47.970,0:28:53.560
Schlüssel raus für die Prüfsumme. Das ist[br]aber irgendwie trotzdem irgendwie schlimm.
0:28:53.560,0:28:57.080
Das möchte man eigentlich nicht. Dass man[br]mal einen Fehler macht, der Schlüssel raus
0:28:57.080,0:29:01.880
fällt. Das ist halt auch bisl.. so bisl[br]fragil. Und es gibt noch auch ein paar
0:29:01.880,0:29:06.040
Handvoll schwache Schlüssel, weil dieses[br]Galois/Counter Mode, ja, das 'Galois'
0:29:06.040,0:29:08.990
steht halt für Galois field[br]multiplication, d.h. da findet eine
0:29:08.990,0:29:13.110
Multiplikation statt, und da kann man sich[br]denken, ja, Multiplikation mit 0 ist
0:29:13.110,0:29:16.650
vielleicht nicht die beste Idee. Ja, wenn[br]man so einen 0-Schlüssel hat, weil
0:29:16.650,0:29:20.250
irgendeine Nachricht mal 0, ne, ist halt[br]immer 0, unabhängig von der Nachricht und
0:29:20.250,0:29:24.340
eine Prüfsumme, die unabhängig von der[br]Nachricht ist, ist irgendwie nutzlos. Und
0:29:24.340,0:29:28.549
da gibts noch weitere Schlüssel, die auch[br]irgendwie noch Schwächen haben. Genau.
0:29:28.549,0:29:33.630
Also, als das rauskam, wie gesagt, hat[br]sich das mal Niels Ferguson angeschaut,
0:29:33.630,0:29:38.730
der ist bei Microsoft tätig, und hat dann[br]so ein Papier geschrieben, da stand drin,
0:29:38.730,0:29:44.560
ja, ich kann das nicht zufällig empfehlen,[br]besser nicht. Wenn ihr keine andere Wahl
0:29:44.560,0:29:52.640
habt , dann nutzt GCM, aber bitte, bitte[br]nicht.. niemals die Prüfsumme kürzen. Da..
0:29:52.640,0:29:56.710
genau, dann.. das Zweite, was ich hier[br]habe, als Code-Schnipsel ist RFC 4103..
0:29:56.710,0:30:02.620
06, da steht beschrieben, wie man denn[br]jetzt GCM bei IPSec benutzt und da steht
0:30:02.620,0:30:05.809
drin, ja wenn ihr das implementiert,[br]natürlich müsst ihr dann die volle
0:30:05.809,0:30:08.520
Prüfsumme unterstützen - ich glaub, das[br]kann man auch gar nicht anders
0:30:08.520,0:30:10.850
implementieren, dafür ist es nicht[br]möglich, dass man es eben anders
0:30:10.850,0:30:14.030
implementiert - und aber, was optional[br]noch erlaubt ist, ihr dürft die Prüfsumme
0:30:14.030,0:30:20.610
kürzen, auf.. genau. Von 16 Byte auf 12[br]oder 8 Byte, und das ist natürlich eine
0:30:20.610,0:30:25.230
schlechte Idee. Ja, weil dann die[br]Sicherheits.. also mehr, die Sicherheit,
0:30:25.230,0:30:28.590
wenn man nur 8 Byte hat, ist halt[br]wesentlich geringer, als man da vermutet.
0:30:28.590,0:30:33.910
D.h. erstmal: tuwat! Ne? Wer Admin ist,[br]erst mal nachschauen: IPSec - nutzt ihr
0:30:33.910,0:30:42.070
GCM mit kurzen Prüfsummen? Und dann[br]erstmal das Feature deaktivieren. Das
0:30:42.070,0:30:47.650
hilft. Dann, genau. Jetzt gehts wieder[br]zurück zum Nonce-Reuse, nachdem ich ein
0:30:47.650,0:30:51.050
paar Nachteile von GCM aufgezählt habe.[br]Weil der Vorteil ist halt, es ist halt
0:30:51.050,0:30:55.920
verdammt schnell, aber der Preis ist[br]Fragilität. Und bei Nonce, genau,
0:30:55.920,0:31:00.530
Wiederholung: Es ist halt praxisrelevant,[br]da gab es ja irgendwie Diskussionen am
0:31:00.530,0:31:04.280
Anfang, als der da herauskam und[br]irgendwie, da nenn ich mal drei Beispiele.
0:31:04.280,0:31:11.640
Ja, ich glaube schon, weil erster Grund[br]ist halt: Programmierer machen Fehler und
0:31:11.640,0:31:15.750
auch Leute, die sowas designen, machen[br]auch mal ab und zu Fehler. Und genau, da
0:31:15.750,0:31:19.320
gibt es so drei lustige Beispiele. Eins,[br]so irgendwie so eine kleine Klitsche aus
0:31:19.320,0:31:23.550
Redmond, mit so Nischen-Software - Word,[br]Excel - hat es irgendwie nicht so richtig
0:31:23.550,0:31:27.870
hinbekommen beim ersten Anlauf, dann das[br]andere, was ich hier noch hab ist so
0:31:27.870,0:31:30.910
WinZip, auch so irgendwie Nischen-[br]Software, die keiner nutzt. Und das dritte
0:31:30.910,0:31:35.790
haben wir jetzt dieses Jahr ganz brandneu,[br]ist KRACK hier, WPA2 Wi-Fi, ja, auch so
0:31:35.790,0:31:40.870
ein Nischen-Produkt. Und das ist so, sieht[br]man, das geht halt immer wieder.. also
0:31:40.870,0:31:45.500
selbst die großen Firmen eben.. und[br]Standard und Komitees kriegen das nicht so
0:31:45.500,0:31:49.280
richtig hin. D.h. da gibts halt irgendwie[br]ein Problem. Und ich denke, auch in
0:31:49.280,0:31:54.250
Zukunft wirds immer wieder Probleme geben,[br]ja? Und das andere ist, wenn man sich mal
0:31:54.250,0:31:59.669
schaut so, die ganzen App Stores, was es[br]da an Software gibt, den nutzen halt viele
0:31:59.669,0:32:03.740
Leute, also, was heißt.. es gibt halt[br]irgendwie.. ich denke, jede zehnte App,
0:32:03.740,0:32:08.660
die irgendwie so AES einsetzt, wird so[br]irgendwie diesen.. als Nonce hier den
0:32:08.660,0:32:13.520
Zufallszahlengenerator von xkcd verwenden,[br]d.h. das ist alles schlimm, wenn man sich
0:32:13.520,0:32:15.990
mal das anschaut.[br]räuspert sich
0:32:15.990,0:32:20.660
Ja also, das ist halt strukturelles[br]Problem. Das andere sind da so
0:32:20.660,0:32:24.180
Bedienfehler, ja, Admins sind auch[br]teilweise mal schuld, nicht nur die
0:32:24.180,0:32:30.590
Programmierer, d.h. was man da oft macht,[br]ist jetzt hier restore ein Backup, und der
0:32:30.590,0:32:34.150
Nonce ist halt dann persistent geschrieben[br]worden irgendwo auf Platte, den letzten
0:32:34.150,0:32:38.040
Wert so, dann wird das wieder geladen, oder[br]wenn man klont, bei virtuellen Maschinen,
0:32:38.040,0:32:40.950
da kann auch mal was schief gehen bei[br]Nonces, dass mal eine Nonce öfters
0:32:40.950,0:32:44.470
aufkommt. Oder das andere ist, wenn ihr[br]jetzt zu wenig Entropie habt, dann zieht
0:32:44.470,0:32:48.810
man öfter mal die gleiche Nonce. Ja, das[br]ist irgendwie alles unlustig. Das
0:32:48.810,0:32:53.620
Problem.. also, das Gute der Nachricht[br]ist, das Problem wurde eigentlich 2006
0:32:53.620,0:32:58.740
schon gelöst, ja, von den Kryptographen.[br]Da gab es jetzt ein Paper, das rauskam,
0:32:58.740,0:33:03.780
das hat vorgestellt ein Verfahren, das ist[br]Misuse Resistant AE Schemes, heißen die,
0:33:03.780,0:33:09.250
und die bieten auch Sicherheit, wenn man[br]das mit einem Nonce vergeigt. Ja, genau.
0:33:09.250,0:33:12.449
Und das Coole ist, die haben beliebig..[br]unterstützen beliebig lange Nonces,
0:33:12.449,0:33:16.650
i.d.R., die Verfahren. D.h. wenn man da[br]Netzwerk-Pakete verschlüsselt, dann kann
0:33:16.650,0:33:21.620
man den Header als Nonce nehmen und den[br]Payload als Klartext. Wunderprima. Sollt
0:33:21.620,0:33:26.510
man mal machen. Und zwar überall. Das[br]Verfahren, wie gesagt, wurde jetzt
0:33:26.510,0:33:29.430
vorgestellt, da gibt's auch ein RFC für,[br]d.h. es gibt jetzt keinen Grund, das
0:33:29.430,0:33:34.450
irgendwie nicht zu implementieren als[br]Entwickler oder Netzwerk-Mensch. Und
0:33:34.450,0:33:38.179
genau, da gab es noch eine Schwäche, also[br]SIV ist eigentlich idiotensicher, d.h. man
0:33:38.179,0:33:41.120
kann auch ein Nonce wiederholen, aber es[br]ist halt nicht irgendwie
0:33:41.120,0:33:45.350
vollidiotensicher, deswegen habe ich da[br]noch 2016 an einem Verfahren gearbeitet,
0:33:45.350,0:33:50.870
das das Ganze noch verstärkt. Warum ist[br]SIV nicht idiotensicher? Ja, man muß ja
0:33:50.870,0:33:56.400
noch die kryptographische Prüfsumme[br]verifizieren. Und ja, und wenn man das
0:33:56.400,0:33:59.490
nicht hinkriegt, ja, wir erinnern uns,[br]hier Apple z.B. kriegt das auch nicht
0:33:59.490,0:34:03.420
immer hin, mit goto fail Bug, d.h. wenn[br]das Apple passiert, kann es eventuell auch
0:34:03.420,0:34:07.549
anderen Firmen passieren, haben wir uns da[br]gedacht. Und deswegen haben wir das
0:34:07.549,0:34:11.289
irgendwie so gebaut, dass selbst wenn man[br]jetzt irgendwie die Verifikation
0:34:11.289,0:34:15.710
versemmelt, dass dann irgendwie bei der..[br]genau, dass dann immer noch.. irgendwie
0:34:15.710,0:34:20.409
das irgendwie bemerkbar wird, indem man[br]als.. das so baut, das der Klartext, wenn
0:34:20.409,0:34:23.858
man den Chiffretext manipuliert, immer[br]weißes Rauschen ergibt. D.h. man hat immer
0:34:23.858,0:34:28.270
weißes Rauschen. Und dann war die Idee so,[br]eventuell fällt es bei.. wenn man den
0:34:28.270,0:34:33.918
Input validiert, dann auf, bei der Input-[br]Validierung, dass da irgendwie nur weißes
0:34:33.918,0:34:38.650
Rauschen ist, und dass es keine valide[br]Eingabe ist, oder die Software wirft
0:34:38.650,0:34:44.789
eine Exception oder stürzt ab oder so. Ja[br]genau. Wie das genau machen, überspringe
0:34:44.789,0:34:50.159
ich mal, aus Gründen der Zeit. Genau und[br]das Ding ist, hier tutwat! Benutzt diese
0:34:50.159,0:34:55.949
MRAE-Schemes. Die haben einen gravierenden[br]Nachteil: man muss zweimal komplett über
0:34:55.949,0:35:00.310
den Klartext gehen. D.h. das dauert halt[br]ein bisschen länger als andere Verfahren.
0:35:00.310,0:35:04.630
D.h. die sind nicht so super effizient.[br]Und jetzt kann es natürlich sein, dass man
0:35:04.630,0:35:09.860
jetzt irgendwie Echtzeitanforderungen hat,[br]die das nicht erlauben. Ja dann, was soll
0:35:09.860,0:35:14.390
ich tun, wenn das irgendwie technisch[br]nicht möglich, realisierbar ist? Ja, nicht
0:35:14.390,0:35:19.750
in Panik verfallen, auch da hab ich[br]irgendwie.. gibt es eine Lösung, da war
0:35:19.750,0:35:24.770
ich dabei, die mit zu entwickeln. Und die[br]Antwort hier ist Robuste AE-Schemes, die
0:35:24.770,0:35:29.200
hießen vorher mal 'Nonce Misuse Resistant[br]AE-Schemes', und wir haben das jetzt
0:35:29.200,0:35:33.900
umbenannt, nur noch Robust, weil es da[br]irgendwie ein bisl Konflikt gab,
0:35:33.900,0:35:40.330
Potenzial, in der Crypto-Szene. Und was[br]wir da gebaut haben, ja, 2012, war ein
0:35:40.330,0:35:44.590
Verfahren, McOE, da kann man jetzt[br]irgendwie, wenn man da jetzt irgendwie
0:35:44.590,0:35:48.820
Probleme hat mit den Nonces, eine Nonce[br]wiederholt, dann ist hier immer noch, die
0:35:48.820,0:35:52.640
Integrität immer noch gewährleist,[br]Integritätsschutz, und die Vertraulichkeit
0:35:52.640,0:35:56.890
bleibt auch noch irgendwie.. je nachdem,[br]wie schlimm man da Fehler macht, noch
0:35:56.890,0:36:00.140
teilweise erhalten, oder eventuell auch[br]ganz. Also was man auf jeden Fall erkennen
0:36:00.140,0:36:07.140
kann, wenn man Nonce wiederholt, dass zwei[br]Klartexte den gleichen Prefix haben. Das
0:36:07.140,0:36:10.700
konnten wir eben nicht wegkriegen, wenn[br]wir nur einmal über den Klartext gehen.
0:36:10.700,0:36:15.880
Genau. Das.. die Idee hat sich dann[br]irgendwie fortgepflanzt, d.h. da gab es
0:36:15.880,0:36:20.450
dann auch diesen CAESAR Competition, und[br]das R steht auch für Robust. Das.. genau.
0:36:20.450,0:36:24.080
Und die CAESAR Competition sucht halt[br]einen Nachfolger für GCM. Ja, das ist eine
0:36:24.080,0:36:27.800
Crypto Competition, auch von Dan[br]Bernstein, der hat die da angetriggert,
0:36:27.800,0:36:31.760
ist der Schirmherr. Und da haben jetzt[br]einen Nachfolger von McOE, auch, da hab
0:36:31.760,0:36:35.780
ich auch mit.. POET - da war ich auch[br]wieder mit dabei gewesen - ins Rennen
0:36:35.780,0:36:39.450
geschickt. Wir haben es in die zweite[br]Runde gepackt, leider nicht in die dritte,
0:36:39.450,0:36:42.830
weil wir waren wahrscheinlich ein bisl zu[br]super-schwergewichtig und auch nicht so
0:36:42.830,0:36:48.620
performant auf Hardware. Was noch im[br]Rennen ist, was ich empfehlen kann: COLM,
0:36:48.620,0:36:52.450
das ist ein Zusammenschluss aus AES-COPA[br]und ELmD. Das waren praktisch zwei
0:36:52.450,0:36:55.630
Zweirunden-Verfahren, die sind jetzt..[br]haben sich zusammengeschlossen, ist jetzt
0:36:55.630,0:36:59.760
noch Drittrunden-Kandidat, was es jetzt[br]noch gibt, was ich noch empfehlen kann,
0:36:59.760,0:37:05.200
beim CAESAR Competition, was man näher[br]anschauen kann, ist AEZ, AEZ ist ein MRAE-
0:37:05.200,0:37:11.490
Scheme, mit von Phil. Und genau, zumindest[br]hat der Phil mitgemacht, das sind die zwei
0:37:11.490,0:37:14.530
Kandidaten, die ich da noch empfehlen[br]kann. Genau und jetzt schauen wir uns mal
0:37:14.530,0:37:20.109
an, also alle die Verfahren, ja, sind[br]irgendwie beweisbar sicher. Und genau. Und
0:37:20.109,0:37:22.820
das heißt, da gibt es immer so einen[br]Sicherheitsbeweis. Und da gibt's immer..
0:37:22.820,0:37:25.480
irgendwie da unten.. das schauen wir uns[br]mal man hier: also das ist jetzt so eine
0:37:25.480,0:37:29.630
Sicherheitsschranke, und wenn man einfach[br]sieht, hier hat man da.. ist das eine
0:37:29.630,0:37:34.400
Birthday Security-Bound. Also die haben[br]alle so komische Bounds. Ja und da gibt es
0:37:34.400,0:37:39.130
jetzt so drei Parameter: q, l und t. q ist[br]die Anzahl Nachrichten, die man damit
0:37:39.130,0:37:42.732
verschlüsselt, l sind die Anzahl Blöcke,[br]die man insgesamt verschlüsselt und t ist
0:37:42.732,0:37:48.160
die Zeit. Und was hier steht ist, ihr[br]könnt ungefähr so 100 Terabyte unter einem
0:37:48.160,0:37:51.110
Schlüssel verschlüsseln, ein paar hundert[br]Terabyte, und dann sollt ihr den Schlüssel
0:37:51.110,0:37:55.500
wechseln. Genau. Und natürlich ist es nur[br]sicher, wenn auch AES sicher ist, wer
0:37:55.500,0:37:59.150
hätte es gedacht, weil das Ding nutzt ja[br]irgendwie AES. Und ja genau. Also und die
0:37:59.150,0:38:03.099
Idee ist auch irgendwie bei POET, das ist[br]immer so'n.. also das ist halt super
0:38:03.099,0:38:07.490
strong, ja so das Superheavyweight, weil[br]wir machen hier die erste lane, obere
0:38:07.490,0:38:12.160
lane, ist einfach nur eine Prüfsumme über[br]den Klartext, die untere lane ist eine
0:38:12.160,0:38:17.799
Prüfsumme über den Chiffretext und in der[br]Mitte drin ist die Verschlüsselung. Genau,
0:38:17.799,0:38:22.190
d.h. die kryptographische Prüfsumme ist ja[br]ziemlich, irgendwie.. wenn Klartext und
0:38:22.190,0:38:26.060
Chiffretext.. und das zweite coole Ding,[br]ja, wenn ich hier jetzt z.B. was
0:38:26.060,0:38:33.380
manipuliere bei C 2, dann kommt ab M 2[br]weißes Rauschen raus. D.h. da kann ich
0:38:33.380,0:38:37.210
auch wieder.. da ist auch wieder die Idee,[br]wenn man jetzt die Verifikation jetzt
0:38:37.210,0:38:41.210
nicht richtig macht, dass man da viel[br]weißes Rauschen hat und dass damit
0:38:41.210,0:38:45.040
irgendwie vielleicht auffallen könnte bei[br]der Eingabe-Validierung. D.h. da ist jetzt
0:38:45.040,0:38:48.220
auch noch irgendwie so ein bisschen Schutz[br]drin, das, wenn man die Verifikation nicht
0:38:48.220,0:38:52.070
richtig hinbekommt. Also if-Abfrage ist[br]nicht immer ganz einfach zu
0:38:52.070,0:38:55.930
implementieren. Genau, jetzt bin ich auch[br]schon so gut wie durch. Das ist gleich
0:38:55.930,0:38:58.290
geschafft, dann darf wieder Ruedi.[br]lacht
0:38:58.290,0:39:01.670
Und genau, also was ich mit.. das, was ihr[br]tun sollt: niemals nicht eine Nonce
0:39:01.670,0:39:04.390
wiederholen! Das ist eine mittlere[br]Katastrophe, das ist also, das ist
0:39:04.390,0:39:09.880
praktisch so ein Unfall. Das ist[br]irgendwie.. genau. Also, und jetzt die
0:39:09.880,0:39:13.450
Frage, so, sei wie soll ich meine Daten[br]verschlüsseln? Da gibt es jetzt wie
0:39:13.450,0:39:20.200
gesagt, mal schauen, also da gibt es jetzt[br]4 Kategorien: die erste ist die stärkste,
0:39:20.200,0:39:23.590
die vierte ist die schwächste, und man[br]sollte schauen, dass man jetzt irgendwie
0:39:23.590,0:39:27.150
schaut, kann ich ein Verfahren aus der[br]Kategorie 1 nehmen? Lässt das mein ..
0:39:27.150,0:39:30.330
irgendwie, mein Umfeld zu, meine[br]Anforderungen? Wenn nicht, dann 2, wenn
0:39:30.330,0:39:34.160
nicht 3 und ansonsten 4. D.h. eine[br]klassische Verschlüsselung, die wir so
0:39:34.160,0:39:37.720
kennen, ist so halt ziemlich das[br]schwächste - schlechteste - was man tun
0:39:37.720,0:39:41.550
kann. D.h. wir müssen jetzt irgendwie[br]schauen, dass wir mal da besser werden und
0:39:41.550,0:39:46.310
mal so auf 1 und 2 kommen und nicht nur[br]bei 3 und 4 rumdümpeln hier. Damit die
0:39:46.310,0:39:49.200
Verahren auch robuster und stärker werden[br]in Zukunft.
0:39:49.200,0:39:53.620
ruedi: OK, vielen Dank, ah, dein Zitat[br]noch! lacht
0:39:53.620,0:39:56.660
cforler: Ah, ich hab noch eins, ja, genau[br]- also, allerwichtigste Botschaft für
0:39:56.660,0:40:00.930
heute ist: Redet verdammt noch mal mit[br]Kryptographen, ja! Also, ihr macht ja
0:40:00.930,0:40:04.430
einen Haufen cooler Software und die fällt[br]dann auseinander, weil man nie mit uns
0:40:04.430,0:40:07.240
geredet hat.[br]lacht
0:40:07.240,0:40:11.960
Also wir sind irgendwie beide.. unsere[br]E-Mail-Adresse, unsere Telefonnummer sind
0:40:11.960,0:40:18.150
irgendwie im Internet, stehen die, und da[br]kann man uns mal sprechen und, ja.
0:40:18.150,0:40:24.510
lacht[br]Applaus
0:40:24.510,0:40:27.910
und genau, also man kann irgendwann mal[br]nach Berlin kommen und mit uns reden. Bei
0:40:27.910,0:40:30.590
einem Käffchen.[br]ruedi: Ja, noch mal also vielen Dank. Ich
0:40:30.590,0:40:35.190
möchte das auch noch einmal ein bisl[br]aufgreifen, also damit es noch mal ganz
0:40:35.190,0:40:40.560
klar ist, dass das jetzt wirklich ein[br]praxisrelevantes Problem ist. Also wenn
0:40:40.560,0:40:43.040
ich mich nicht täusche, also das ändert[br]sich, aber als ich das letzte Mal
0:40:43.040,0:40:47.890
reingeguckt hab, war wirklich in TLS die[br]Überlegung: Wir sind clever, wir benutzen
0:40:47.890,0:40:52.680
keine Verfahren, wo nicht[br]Authentifizierung mit eingebaut ist und
0:40:52.680,0:40:59.880
wir verwenden zwangsweise das GCM, also[br]Galois/Counter Mode. Das ist auch supi,
0:40:59.880,0:41:03.490
bis auf die Tatsache, wenn ein Nonce[br]wiederholt wird, ist das katastrophal
0:41:03.490,0:41:08.000
schwächer als alle katastrophal.. alle[br]Fehler, die man auf der unteren Ebene
0:41:08.000,0:41:13.530
machen kann. Also Kryptographie ist[br]relativ schwer. Aber noch einmal der Apell
0:41:13.530,0:41:18.200
von Christian wirklich deutlich[br]wiederholt: die Crypto-Gemeinde hat einen
0:41:18.200,0:41:23.720
starken wissenschaftlichen Teil, die auch[br]offen publizieren und so weiter. Also
0:41:23.720,0:41:27.960
insofern noch einmal da der Hinweis: da[br]mal rein zu gucken, was da ist, ist
0:41:27.960,0:41:33.170
wirklich eine gute Idee. Und nochmal[br]wirklich an dieses: redet mit
0:41:33.170,0:41:36.730
Kryptographen, mal anbuzzen.. kommt jetzt[br]der Grund, warum hier so voll ist: weil
0:41:36.730,0:41:41.160
wir noch was mit Blockchain machen wollen[br]in diesen nächsten Folien. Auch da möchte
0:41:41.160,0:41:47.690
ich an ein paar Stellen sagen: Ein[br]bisschen reden mit Kryptographen wäre ganz
0:41:47.690,0:41:51.730
angenehm gewesen. Also wir arbeiten da[br]auch an verschiedenen virtuellen
0:41:51.730,0:41:56.570
Kooperationspartnern, also wir möchten da[br]auch besser werden in Richtung verteilter
0:41:56.570,0:42:02.090
Echtzeit, aber da arbeiten wir schon[br]lacht intensiv daran. Also wer da noch
0:42:02.090,0:42:05.260
weitere Tips hat, was es da noch für[br]Forschungseinrichtungen gibt, der kann
0:42:05.260,0:42:12.500
sich auch bei uns freundlich melden. So,[br]mal ein paar Worte zu Bitcoin. Ich hab's
0:42:12.500,0:42:15.720
mal schon vor Jahren hier gemacht, ich[br]hätte damals vielleicht Bitcoin kaufen
0:42:15.720,0:42:19.410
sollen, anstatt das zu.. sicherheits zu[br]evaluieren. - Nein, hätte ich nicht - soll
0:42:19.410,0:42:23.360
man nicht machen, ich bin da altmodischer[br]Professor. Ich bin der Meinung - wenn da
0:42:23.360,0:42:29.900
von.. also, von führenden kapitalistischen[br]Zeitungen gefragt wird, wie sicher das ist
0:42:29.900,0:42:34.640
- dann solltest du nicht irgendwelche[br]Aktien drin haben, um da zu antworten. Ich
0:42:34.640,0:42:42.190
will es mal so sagen: die Kryptographie in[br]Bitcoin wäre eine befriedigende
0:42:42.190,0:42:47.450
Bachelorarbeit. Das sind schon.. und das[br]reicht eigentlich. Die Crypto ist so
0:42:47.450,0:42:51.790
stark, dass eine befriedigende[br]Bachelorarbeit völlig dazu führt, dass die
0:42:51.790,0:42:56.960
Probleme woanders zu sagen sind. Es ist[br]vorsichtige Amateur-Kryptographie. Doppelt
0:42:56.960,0:43:01.280
hält besser, die hashen zweimal[br]hintereinander, aber wie gesagt, meine
0:43:01.280,0:43:06.160
Erweiterung, nach dem ersten Hash ein Bit[br]umzurempeln und dann weiter zu hashen
0:43:06.160,0:43:10.369
würde bedeuten, dass z.B. die[br]Kollisionseigenschaften sich nicht einfach
0:43:10.369,0:43:14.470
weiter vererben. Also diese zweimal Hash[br]hintereinander bringen z.B. gegen
0:43:14.470,0:43:18.270
Kollision nicht allzu viel, wenn sie nach[br]dem ersten Hash ein Bit gerempelt hätten,
0:43:18.270,0:43:22.049
weiter gehasht, hätten sie eine deutlich[br]bessere.. bessere Eigenschaften gehabt.
0:43:22.049,0:43:27.589
Also so ist jetzt das Doppelhash[br]ziemlich.. nicht besonders relevant. Also
0:43:27.589,0:43:31.971
jedenfalls, wenn man starke Sachen macht.[br]Was relativ cool ist, ist dass die die
0:43:31.971,0:43:36.810
Public Keys nicht veröffentlichen, sondern[br]halt hier auch eine zweimal gehashte
0:43:36.810,0:43:41.080
Kontonummer. Und da sieht man, dass die[br]möglicherweise doch ein paar Hacker-
0:43:41.080,0:43:45.280
Konferenzen gehört haben und gewusst[br]haben, sie sind nicht so fit in Crypto:
0:43:45.280,0:43:49.780
"Machen wir es lieber mal ein bisschen[br]robuster", und so weiter. Insofern ist das
0:43:49.780,0:43:56.380
eigentlich relativ erfreulich, aber wenn[br]die jungen Leute mit.. oder alten Leute,
0:43:56.380,0:44:00.220
oder was immer für Leute, mal mit[br]Kryptographen geredet hätten, hätten wir
0:44:00.220,0:44:06.540
ganz interessante Implikationen gehabt. Es[br]ist ganz lustig, der Bitcoin-Hauptautor
0:44:06.540,0:44:11.849
hat gesagt: "Oh ja, jetzt hashen die, alle[br]Leute, mit Spezialhardware, und unser
0:44:11.849,0:44:16.760
demokratischer Ansatz 'jeder PC hat eine[br]Stimme und alles verteilt' geht den Bach
0:44:16.760,0:44:20.530
runter. Wir sollten ein Gentlemen's[br]Agreement machen, dass nur auf CPUs
0:44:20.530,0:44:22.530
gemined wird."[br]Lachen
0:44:22.530,0:44:25.950
ruedi seufzt[br]Ach, ist das schön, junge Leute! Dann..
0:44:25.950,0:44:27.320
ich mache einen..[br]lacht
0:44:27.320,0:44:31.240
ein Konzept von kryptogra.. äh, von[br]kapitalistischen Anarchisten, die
0:44:31.240,0:44:35.170
irgendwie alles so designen, dass keine[br]zentrale Stelle ist, und will mit diesen
0:44:35.170,0:44:40.740
verteilten Anarcho-Kapitalisten weltweit[br]Gentlemen's Agreements zu machen. Ohne der
0:44:40.740,0:44:43.020
Geschichte vorzugreifen: es ist nur[br]beschränkt gelungen.
0:44:43.020,0:44:49.000
Lachen[br]Wobei das wirkt alles lustig, da, wenn
0:44:49.000,0:44:52.550
schlecht bezahlte Berliner Professoren hier[br]rum[unverständlich] und gute Witze darüber
0:44:52.550,0:44:56.360
machen, das Problem ist, wenn man hier[br]Fehler macht, dann hat das auf einmal
0:44:56.360,0:45:02.250
Auswirkungen, dass irgendwie eine große[br]Menge an Energie völlig sinnlos verheizt
0:45:02.250,0:45:04.971
wird. Und da muss ich auch sagen, am[br]Anfang habe ich gesagt, oh, Leute kommt
0:45:04.971,0:45:09.160
runter, es ist EIN Kraftwerk - was mir[br]dann erst irgendwann mal siedend heiß
0:45:09.160,0:45:14.210
eingefallen.. ne, mit Erhöhung der[br]Hashing-Komplexität tut praktisch linear
0:45:14.210,0:45:19.450
auch der Stromverbrauch irgendwie steigen.[br]Also es ist jetzt schon auf dem Weg, eine
0:45:19.450,0:45:24.640
deutliche Umwelt-Sauerei zu werden und wir[br]Krypto-Hippies könnten natürlich sagen:
0:45:24.640,0:45:29.170
"Können wir wenigstens nur mit Wasserkraft[br]minen?" usw, aber unser Einfluss auf
0:45:29.170,0:45:35.890
verteilte krypto- und kapitalistischen[br]Anarchisten ist relativ überschaubar. Also
0:45:35.890,0:45:42.560
insofern ist es wirklich kein Witz, dass[br]einige Sachen, die wir haben.. wirklich es
0:45:42.560,0:45:47.050
hilfreich gewesen wäre, wenn die mit[br]Kryptographen geredet hätten. Und hier
0:45:47.050,0:45:50.550
haben wir auch ein Bild, was ich mal[br]einfach mal vorstellen wollte: Dieses
0:45:50.550,0:45:56.590
Proof of Work demokratisch zu halten, das[br]ist sehr verwandt mit der Frage Passwort-
0:45:56.590,0:46:00.260
Hashing. Also Passwort-Hashing ist die[br]Idee, aus dem gehashten Passwort soll es
0:46:00.260,0:46:05.200
sehr schmerzhaft, sehr arbeitsspeicher-[br]intensiv sein, das Passwort wieder zurück
0:46:05.200,0:46:10.240
rechnen. Also klassischer Proof of Work.[br]Dass ihr seht, dass das nicht ganz aus der
0:46:10.240,0:46:17.400
Welt ist: scrypt wird z.B. in Lite..[br]Moment, Litecoin? Litecoin verwendet, das
0:46:17.400,0:46:23.010
ist auch eine der größeren Sachen, und die[br]haben scrypt verwendet. Die haben aber
0:46:23.010,0:46:26.940
auch nicht mit Kryptographen geredet, wie[br]man die Parameter da vernünftig fährt mit
0:46:26.940,0:46:30.640
dem Ergebnis, dass jetzt mit ein bisschen[br]Verspätung da auch ASICs kommen und
0:46:30.640,0:46:36.660
dieselbe Problematik, die wir bei Bitcoin[br]haben, haben wir dort genauso. Auch hier
0:46:36.660,0:46:39.280
kriege ich manchmal bisschen die Krise,[br]und ich sage, wir hätten das alles
0:46:39.280,0:46:43.080
demokratisch regeln können, wenn ihr mit[br]uns geredet hättet. Wir hätten euch
0:46:43.080,0:46:46.860
umfangreiche Änderungen gesagt, nämlich[br]genau eine Zahl geändert, einen Parameter
0:46:46.860,0:46:51.150
geändert. Dann wäre die ganze Sache auf[br]einmal eine demokratische Veranstaltung
0:46:51.150,0:46:55.500
gewesen und nicht so, dass jetzt irgendwie[br]sinnlos Sachen verbrannt werden und
0:46:55.500,0:46:59.030
irgendwelche.. nur noch Fabriken[br]mitspielen dürfen. Das ist manchmal selbst
0:46:59.030,0:47:02.830
für Hacker und Mathematiker, die wissen,[br]dass Zahlen eine gewisse Magie hat,
0:47:02.830,0:47:09.610
relativ gruselig. Also hier einen scrypt-[br]Parameter richtig einzustellen, wär eine
0:47:09.610,0:47:15.750
gute Idee. Dann gibt es noch Passwort-[br]Hashingverfahren.. äh, -Wettbewerbe, da
0:47:15.750,0:47:19.280
ist Argon2i, ne, war nicht - 2d![br]unverständlicher Kommentar aus dem Off
0:47:19.280,0:47:21.750
Du hast den Tippfehler wieder reingemacht,[br]lacht
0:47:21.750,0:47:25.630
den du vorhin korrigiert hast![br]cforler: Ja, ja, wieder hinten integriert.
0:47:25.630,0:47:28.620
ruedi: Ä-ä-ä, das ist immer...[br]cforler: Problem mit der Versionierung, ja.
0:47:28.620,0:47:31.390
ruedi: Das ist "d"![br]cforler: Das muß "d" sein.
0:47:31.390,0:47:34.349
ruedi: Naja, aber Catena-Stonefly, da hat[br]er ja sich auch als Hauptautor
0:47:34.349,0:47:39.050
rausgemogelt, also Christian ist der Autor[br]des ganzen Frameworks.
0:47:39.050,0:47:41.809
cforler: Mitautor, Co-Autor.[br]ruedi: Co-Autor, ach so.
0:47:41.809,0:47:45.240
cforler: Das hab ich zusammen mit Stefan[br]Lucks und Jakob Wenzel gemacht.
0:47:45.240,0:47:49.730
ruedi: Und das Catena-Stonefly ist eine[br]Implementierung, die ganz besonders diese
0:47:49.730,0:47:56.231
Sachen adressiert, und - ne, haben wir die[br]nicht - also, so sieht das aus, also ihr
0:47:56.231,0:48:02.200
seht, das ist ein bisschen was. Aber wenn[br]man irgendwie große Geschichten jetzt
0:48:02.200,0:48:06.349
erwartet, ist es relativ überschaubar.[br]Also das sind relativ naheliegende
0:48:06.349,0:48:10.470
Funktionen und das schöne ist halt an den[br]Arbeiten von Forler et al.,
0:48:10.470,0:48:13.930
lacht[br]dass da also sehr brutale Sicherheits..
0:48:13.930,0:48:17.960
also sehr ordentliche mathematische[br]Sicherheitsschranken da ist. Also nochmal,
0:48:17.960,0:48:21.560
man könnte scrypt nehmen mit ein bisschen[br]cleveren Parametern, oder man könnte das
0:48:21.560,0:48:26.030
andere Passwort-Hashing machen und dann[br]hätte man mathematisch beweisbar, dass die
0:48:26.030,0:48:30.550
Leute nicht das auf Spezialhardware[br]relativ einfach machen können. Also
0:48:30.550,0:48:34.360
nochmal diese Sache, die wir mehrfach[br]gesagt.. redet mit Kryptographen. Noch
0:48:34.360,0:48:39.420
einmal, eine Zahl in diesen bitcoinartigen[br]Sachen richtig gesetzt, hätten wir es
0:48:39.420,0:48:44.400
weiterhin demokratisch. Nicht mit[br]Kryptographen geredet, gesagt: "OK, wir
0:48:44.400,0:48:47.700
machen Gentlemen's Agreement" bedeutet[br]halt, dass irgendwie im Moment eine
0:48:47.700,0:48:52.410
obszöne Menge an Energie einfach fürs[br]Mining verbrannt wird, und zwar völlig
0:48:52.410,0:48:55.990
nutzlos. Entschuldigung, ich stehe[br]eigentlich auf Hashfunktionen, aber
0:48:55.990,0:48:59.260
irgendwie sinnlos irgendwie da vor sich[br]hin zu hashen und alles wegzuschmeißen,
0:48:59.260,0:49:04.040
das kann nicht so die pfiffige Idee sein.[br]Wenn man Proof of Work ist, noch einmal,
0:49:04.040,0:49:08.480
hier wäre es hilfreich gewesen, entweder[br]also mit Kryptographen zu reden oder
0:49:08.480,0:49:17.030
zumindestens mal die Damen und Herren von[br]Litecoin: Da mal überlegen, dass man die
0:49:17.030,0:49:21.160
Parameter vielleicht ein bisschen[br]ordentlich setzen könnte. Gut, ich bin der
0:49:21.160,0:49:27.750
Meinung, dass wir wegkommen müssen von dem[br]sinnlosen Heizen und deswegen werd ich in
0:49:27.750,0:49:31.190
den nächsten Monaten auch mit einem[br]Doktoranden zusammen mal ein bisschen
0:49:31.190,0:49:37.510
arbeiten, Proof of Work nützlich zu[br]machen. Da sind schon Ideen da, die im
0:49:37.510,0:49:42.460
Bereich Storage sind, da ist Filecoin z.B.[br]ein Kandidat, der ähnliche Sachen macht.
0:49:42.460,0:49:46.829
Oder Network Services: ich habe durchaus[br]die Überlegung dass es vielleicht sinnvoll
0:49:46.829,0:49:52.750
ist, bei der Anonymisierung des[br]Webtraffics nicht auf das Tor-Projekt zu
0:49:52.750,0:49:55.030
vertrauen, dass seine Hauptfinanzierung[br]vom amerikanischen
0:49:55.030,0:50:00.940
Verteidigungsministerium hat. Also ich[br]hätte ganz gerne eine Konstruktion, wo
0:50:00.940,0:50:06.240
Router Netzwerk-Service, Tor-artige[br]Services anbieten und damit praktisch auch
0:50:06.240,0:50:10.600
nebenher minen. Also dass praktisch Geräte[br]sich selbst finanzieren und wenn man
0:50:10.600,0:50:14.150
irgendwie halt mal ein bisschen träumt,[br]dann kann man halt sagen, man entwickelt
0:50:14.150,0:50:18.040
einen Router, den stellt man in der[br]dritten Welt in die Sonne, solange Sonne
0:50:18.040,0:50:24.120
ist, tut der Energie machen und Services[br]machen und wenn die Sonne weg ist, holt er
0:50:24.120,0:50:28.160
den Strom, aber bezahlt das mit der[br]Arbeit, die er gemacht hat. Also dieser
0:50:28.160,0:50:32.980
Traum eines wirklich ganz autonomen[br]Systems, das möchte ich noch auferhalten,
0:50:32.980,0:50:37.339
vielleicht einen Schritt zurück, ich hab[br]einfach keine Lust, dass irgendwie Mining
0:50:37.339,0:50:45.609
- also wirklich 2^17 oder 2^73 Operationen[br]- immer in sinnlose Umsetzung von Strom,
0:50:45.609,0:50:49.060
in Wärme, gemacht werden. Also vielleicht[br]gibts..
0:50:49.060,0:50:51.185
Applaus[br]Ja, Dankeschön.
0:50:51.185,0:50:56.770
Applaus[br]
0:50:56.770,0:50:59.100
Applaus[br]Und um es noch einmal zu wiederholen, den
0:50:59.100,0:51:03.940
ganzen Mist hätte man.. also diese Sachen[br]sind anspruchsvoll und da sind sehr viele
0:51:03.940,0:51:07.711
Fragen zu klären, deswegen ist es eine[br]schöne Promotion und ich bin da ein
0:51:07.711,0:51:11.220
altmodischer Professor, wenn es irgendwie[br]die Welt nicht revolutioniert, 'ne gute
0:51:11.220,0:51:14.630
Promotionsthema ist es auf jeden Fall.[br]Lachen
0:51:14.630,0:51:18.220
Insofern passiert die Revolution im Rahmen[br]meiner dienstlichen Aufgaben, was
0:51:18.220,0:51:22.410
irgendwie von Professoren in meinem Alter[br]immer eine ganz angenehme Perspektive auch
0:51:22.410,0:51:26.829
ist. Aber um es noch einmal zu betonen,[br]wenn die Damen und Herren, die das gemacht
0:51:26.829,0:51:30.390
hätten, wirklich das Passwort-Hashing[br]angeguckt hätten, wenn diese Litecoin-
0:51:30.390,0:51:35.180
Leute die Parameter richtig gemacht[br]hätten, also nochmal: Macht euch die Kraft
0:51:35.180,0:51:38.990
von euch Programmierern und Mathematikern,[br]und ne, sogar von euch Programmierern,
0:51:38.990,0:51:42.730
lest die Mathematik, die wir euch[br]präsentieren, setzt die Zahl richtig und
0:51:42.730,0:51:46.430
ihr habt eine bessere Welt dadurch.[br]Zumindestens, sagen wir mal, in dieser
0:51:46.430,0:51:51.190
virtuellen Welt, warte mal ab mit den[br]Auswirkungen. Aber noch einmal, ich sage,
0:51:51.190,0:51:56.880
also erstens möchte ich einen wirklichen[br]Proof of nützlicher, gesellschaftlich
0:51:56.880,0:52:01.640
nützlicher Arbeit. Zweitens, wenn ich[br]dieses alte Proof of Work mach, das hätten
0:52:01.640,0:52:05.609
wir weiterhin demokratisch gehalten, wenn[br]die Leute dieses Passwort-Hashing gemacht
0:52:05.609,0:52:09.960
hätten. Entweder das scrypt oder halt,[br]sagen wir mal, die Sachen mit richtig hart
0:52:09.960,0:52:14.140
brutalen Sicherheitsbeweisen, die[br]Christian da unter anderem entwickelt hat.
0:52:14.140,0:52:19.540
Kommen wir noch mal zum Ende. 'Wir sollten[br]was tun' ist irgendwie das Ding, und ich
0:52:19.540,0:52:23.940
habe ja damals gesagt, Krypto-Magie ist,[br]dass man auf einer kleinen,
0:52:23.940,0:52:28.650
fingernagelgroßen Fläche, oder mit ein[br]paar Programmierzeilen, Code erzeugen
0:52:28.650,0:52:32.400
kann, den die Geheimdienste nicht brechen[br]können. Das hat schon ein bisschen was
0:52:32.400,0:52:37.329
magisches, die.. problematisch ist, wenn[br]man halt nicht reingucken kann und die
0:52:37.329,0:52:42.430
Leute das halt schlecht implementieren,[br]wie das jetzt bei Infineon in Zusammenhang
0:52:42.430,0:52:47.910
mit den TPM-Chips passiert hat. - Oh, da[br]haben wir eine Folie, die muss ich, glaube
0:52:47.910,0:52:55.079
ich, nachhalten. - Also bei den TPM-Chips,[br]Infenion war einer der Hauptkandidaten,
0:52:55.079,0:52:59.230
und da ist es einfach so, das ist zwar[br]vom BSI zertifiziert worden, aber
0:52:59.230,0:53:02.510
offensichtlich reicht das nicht aus. Wenn[br]das Open Source gewesen wäre, wenn man da
0:53:02.510,0:53:06.430
reingucken könnte, dann hätte ein[br]talentierter Doktorand wirklich nur wenige
0:53:06.430,0:53:10.470
Stunden gebraucht, um aufzuschreien und[br]den Fehler zu finden. Also wir brauchen
0:53:10.470,0:53:16.720
wirklich auf der untersten Ebene Open[br]Source ganz dringend. Wir brauchen freie
0:53:16.720,0:53:20.040
Software, die verhindert Hintertüren und[br]ermöglicht das Finden der Fehler. Noch mal
0:53:20.040,0:53:25.680
zusammenzufassen: das BSI ist gutmütig,[br]sie haben auch sehr gute Kryptographen,
0:53:25.680,0:53:29.840
aber sie haben es nicht gefunden. Und BSI[br]ist noch eine der staatlichen
0:53:29.840,0:53:34.339
Organisationen, die ich noch am ehesten[br]vertraue, sie haben es da episch gefailed.
0:53:34.339,0:53:38.849
Nochmal zur Erinnerung, diese Infineon-[br]Chips stecken in den ganzen Google
0:53:38.849,0:53:43.400
Chromebooks an, wo in Amerika wirklich[br]eine ganze Generation von Schülern mit
0:53:43.400,0:53:48.829
rumspringt: die haben's vermasselt. Also[br]offensichtlich klappt es nur, wenn es
0:53:48.829,0:53:54.280
öffentlich ist und da darf ich noch mal[br]auf meine geschätzten Kolleginnen und
0:53:54.280,0:54:02.360
Kollegen Bernstein, Lange und Nadja ...[br]äh, Namen vergessen?
0:54:02.360,0:54:05.360
cforler: Tanja?[br]ruedi: Heninger. Heninger, Entschuldigung.
0:54:05.360,0:54:11.599
Nadja Heninger. In dem Vortrag war einer der[br]Highlights, wo sie gezeigt haben: Ha! Da
0:54:11.599,0:54:15.599
sind die Ergeb.. da sind die Submissions,[br]Veröffentlichungen für diese Post-Quantum
0:54:15.599,0:54:19.680
Sache und innerhalb des ersten Abends, die[br]haben sich wirklich einen Spaß gemacht,
0:54:19.680,0:54:25.220
und haben irgendwie 10 % von den Sachen[br]innerhalb von drei Stunden zertrümmert.
0:54:25.220,0:54:28.880
Nehmen wir einfach mal zur Kenntnis, die[br]öffentliche Kryptographie ist so viel
0:54:28.880,0:54:34.510
besser als Kryptographie hinter[br]verschlossenen Türen. Dass das wirklich
0:54:34.510,0:54:38.609
hier ein Punkt ist: es ist nix[br]ideologisches, aber der Code muss lesbar
0:54:38.609,0:54:43.150
sein. Das ist vernünftigerweise unter[br]Open-Source-Lizenz, aber er muss lesbar
0:54:43.150,0:54:47.000
sein, die Community muss da reingucken.[br]Keine Behörde ist offensichtlich dazu in
0:54:47.000,0:54:52.079
der Lage, das in irgendeiner Weise[br]ordentlich zu machen. Der letzte Teil wird
0:54:52.079,0:54:59.560
nicht bei 'tuwat!' - Dankeschön.[br]Applaus
0:54:59.560,0:55:02.950
Der letzte Teil von 'tuwat!'[br]ist auch ein bisschen launisch, das habe
0:55:02.950,0:55:08.190
ich mir erlaubt, aber da irgendwie die[br]Mathematik scheinbar so abschreckend ist,
0:55:08.190,0:55:13.119
dass es kaum jemand programmiert, gehen[br]jetzt immer mehr Mathematiker dazu über,
0:55:13.119,0:55:16.720
brandneue Protokolle direkt zu[br]implementieren. Als Erstes muss ich
0:55:16.720,0:55:21.510
sehr.. als sehr positives Beispiel den[br]Herrn Kollegen Heiko Stamer erwähnen, der
0:55:21.510,0:55:26.140
hat auch am Datengarten einen sehr schönen[br]Vortrag gemacht, da ging es um verteilte
0:55:26.140,0:55:28.960
Schlüsselerzeugung und[br]Schwellenwertkryptographie. Da sind so
0:55:28.960,0:55:33.070
Sachen, wie wenn man sagt, in einer Welt,[br]wo man wenig Leuten vertrauen kann, ist es
0:55:33.070,0:55:37.190
gut kryptographische Verfahren haben, wo[br]man mathematische Beschreibung hat, des
0:55:37.190,0:55:40.790
Vertrauens. Also muss man einem aus einer[br]Gruppe vertrauen, zwei aus einer Gruppe..
0:55:40.790,0:55:43.770
das können wir alles mit[br]Schwellenwertkryptographie ganz gut
0:55:43.770,0:55:50.010
machen. Wie gesagt, das sind ganz aktuelle[br]Implementierungen von 2017, die Arbeiten
0:55:50.010,0:55:56.120
vorher sind auch relativ neu, die sind von[br]1987.
0:55:56.120,0:56:00.013
Kichern[br]Ja, ihr könnt ruhig lachen, das ist ein
0:56:00.013,0:56:04.410
Weilchen her, aber ihr könnt auch auf[br]diese Folie warten, weil diese Sachen -
0:56:04.410,0:56:09.089
oh, das ist jetzt auch rausgeflogen -[br]Blind Signature, wo ich also mit einem
0:56:09.089,0:56:14.470
Masterstudenten von mir ein bisl was[br]entwickelt hab, 2016, auch auf der Open
0:56:14.470,0:56:19.569
TechSummit vorgestanden hab, basiert auf[br]Blind Signature von David Chaum und die
0:56:19.569,0:56:24.750
sind von 1983. Und wir haben uns auch nur[br]soviel Zeit gemacht, weil jetzt die
0:56:24.750,0:56:28.010
Patente endlich abgelaufen sind.[br]Lachen
0:56:28.010,0:56:33.270
Spaß beiseite. Nicht alles, was wir hier[br]machen.. also, elliptische Kurven ist
0:56:33.270,0:56:39.109
schon relativ harte Mathematik. Auch die[br]Schwellwertkryptographie ist durchaus
0:56:39.109,0:56:42.450
harte Mathematik. Ich will das gar nicht[br]so sagen: "Also guckt es einfach an, dann
0:56:42.450,0:56:47.360
ist es lösbar". Aber es gibt einen ganzen[br]Kanon voll Sachen, wo es wirklich eine
0:56:47.360,0:56:51.710
kurze Frage an Kryptographen benötigt, um[br]dann den richtigen Tipp in die richtige
0:56:51.710,0:56:56.900
Richtung zu machen. Auch diese Sache, dass[br]wir halt programmieren, das war jetzt ein
0:56:56.900,0:57:02.760
bisschen arg schnippisch gesagt also: "Wir[br]tun idiotensichere Krypto entwickeln".
0:57:02.760,0:57:06.880
Idiotensicher ist ein relativer Begriff.[br]Ein armes, eingebettetes Gerät ohne
0:57:06.880,0:57:13.650
externe.. ohne interne Zufallsquelle hat[br]halt keine gute Zufallsquelle. Also
0:57:13.650,0:57:19.220
insofern noch einmal, also wir arbeiten[br]wirklich an einem System, möglichst robust
0:57:19.220,0:57:22.690
zu sein, in anderen Worten. Eine[br]Nachricht, die hier noch einmal vielleicht
0:57:22.690,0:57:28.069
an die Standardisierung geht, ist wirklich[br]der Punkt, zu sagen, GCM ist
0:57:28.069,0:57:32.980
offensichtlich für einige Probleme, also[br]wenn diese Leute richtige Nonces machen -
0:57:32.980,0:57:37.359
wunderbar, supi. Aber willkommen in der[br]realen Welt: Angreifer können dann
0:57:37.359,0:57:42.180
irgendwie anfangen, eben Nonces zu rempeln[br]und dann auf einmal die Sicherheit und die
0:57:42.180,0:57:47.660
Integrität des ganzen Systems nachhaltig[br]gefährden. Insofern ist das, glaube ich,
0:57:47.660,0:57:53.690
keine gute Idee, das als einzige Sache zu[br]machen. Enden wir mit den guten Worten von
0:57:53.690,0:58:00.870
Edward Snowden: "Krypto ist keine dunkle,[br]alte Kunst, sondern es ist wirklich eine
0:58:00.870,0:58:06.800
basic Protection, eine grundlegende..[br]Schutz da, wir müssen implementieren und
0:58:06.800,0:58:11.450
aktiv daran forschen". Und noch einmal, um[br]zusammenzufassen, zu sagen, auch nach
0:58:11.450,0:58:16.589
vielen Jahren Snowden muss ich sagen,[br]Kryptographie ist das, was uns vor der
0:58:16.589,0:58:22.320
Barbarei der Geheimdienste schützt. Die[br]Politik hat da auch in den letzten Jahren
0:58:22.320,0:58:26.500
nicht unbedingt sehr gute Ergebnisse[br]gezeigt. Insofern, vielen Dank für eure
0:58:26.500,0:58:31.830
Aufmerksamkeit.[br]Applaus
0:58:31.830,0:58:36.779
cforler: Just in time![br]ruedi (zu cforler): Oh, da fehlten 1,2
0:58:36.779,0:58:46.829
Folien noch...[br]Herald: So es hat ja geheißen, man soll
0:58:46.829,0:58:50.950
die Kryptographen fragen, nur leider ist[br]die Zeit jetzt alle.
0:58:50.950,0:58:54.119
Unmuts-Laute[br]Das heißt, ihr dürft, wie angekündigt, die
0:58:54.119,0:58:57.560
Fragen über ein Käffchen stellen,[br]allerdings leider nicht mehr hier drin.
0:58:57.560,0:59:02.460
Aber trotzdem eine Runde schönen Applaus[br]für unsere beiden Vortragenden! Vielen
0:59:02.460,0:59:06.770
Dank.[br]Applaus
0:59:06.770,0:59:11.620
Abspannmusik
0:59:11.620,0:59:28.955
Untertitel erstellt von c3subtitles.de[br]im Jahr 2018. Mach mit und hilf uns!