0:00:08.850,0:00:10.620 Wunderbar. Äh ja... 0:00:10.670,0:00:12.330 Willkommen zu meinem Vortrag über calc.pw, 0:00:12.330,0:00:13.830 Passwortberechnung mit Arduino 0:00:14.500,0:00:17.010 Vielleicht kurz vorher: die Folien selber sind auf Englisch gehalten, 0:00:17.010,0:00:19.310 damit non-native speaker sich daran orientieren können. 0:00:19.340,0:00:21.660 Ich selbst werde aber trotzdem auf Deutsch vortragen. 0:00:22.860,0:00:24.510 Vielleicht kurz zu mir, mein Name ist Kenny, 0:00:24.720,0:00:28.240 und man kann mich erreichen per E-Mail, per Twitter, per Website 0:00:28.270,0:00:30.230 und noch so ein paar andere Sachen, die ich nicht aufgeschrieben habe. 0:00:32.100,0:00:33.130 Was ich heute erzählen werde, 0:00:33.130,0:00:35.280 ist zum einen das Problem, was ich lösen wollte, 0:00:35.320,0:00:37.860 dann meine Idee, wie ich dieses Problem lösen wollte, 0:00:37.920,0:00:39.740 dann, wie die Lösung derzeit aussieht, 0:00:40.130,0:00:41.620 wie die Lösung funktioniert, 0:00:41.680,0:00:44.140 und was so die Fallstricke waren, die ich versucht habe, 0:00:44.140,0:00:46.500 oder die mir begegnet sind, die ich lösen musste... 0:00:46.850,0:00:48.590 Ja, fangen wir mit dem Problem einfach mal an. 0:00:49.790,0:00:52.220 Viele von euch werden sicherlich das Internet benutzen, 0:00:52.460,0:00:54.380 mit keine Ahnung wievielen verschiedenen Diensten, 0:00:54.410,0:00:57.760 ihr werdet eigene Server haben, wo ihr euch per SSH einwählt, 0:00:57.780,0:01:00.500 ihr habt E-Mail-Accounts, wo ihr euch einloggen müsst usw., 0:01:01.200,0:01:03.510 und wie ihr sicherlich wisst, sollte man für jeden Dienst 0:01:03.540,0:01:04.980 ein eigenenes Passwort verwenden. 0:01:05.390,0:01:06.400 Einfacher Grund: 0:01:06.500,0:01:10.380 wird ein so ein Dienst mal angegriffen und die Passwörter entwendet, 0:01:10.500,0:01:12.860 können diese Passwörter bei anderen Diensten ausprobiert werden, 0:01:13.250,0:01:15.540 und schon habt ihr einen viel größeren Angriffsvektor. 0:01:16.540,0:01:18.210 Deswegen: ein Passwort pro Dienst, 0:01:18.240,0:01:20.720 das ist so das, was man einsetzen sollte. 0:01:21.240,0:01:23.560 Das Problem ist, sich diese ganzen Passwörter zu merken. 0:01:23.580,0:01:26.660 Also bei mir sind es im Schnitt so zwischen 25 und 50 Passwörter, 0:01:26.660,0:01:27.700 die ich jede Woche verwende, 0:01:27.970,0:01:29.760 je nachdem, wieviele Dienste ich gerade benutze. 0:01:31.560,0:01:34.400 Weil man sich so viele starke Passwörter einfach nicht merken kann, 0:01:34.400,0:01:37.120 haben Leute angefangen, sich Passwort-Schemen auszudenken. 0:01:37.360,0:01:39.750 Zum Beispiel hat man ein starkes Passwort, das man vorne dranpackt, 0:01:39.750,0:01:41.230 und hinten dann den Namen vom Dienst. 0:01:43.160,0:01:47.400 Ist dann ein Problem, wenn ein Dienst z.B. Passwörter Plaintext abspeichert, 0:01:47.540,0:01:51.420 weil dann kann man sich einfach dieses Präfix-Passwort nehmen, 0:01:51.420,0:01:53.470 kann irgendeinen anderen Dienstnamen hinten dranschreiben 0:01:53.620,0:01:55.320 und kann damit wieder Passwörter ausprobieren. 0:01:56.300,0:02:00.740 Es gibt noch andere Möglichkeiten, Passwörter sich selber zu generieren, 0:02:00.740,0:02:04.020 indem man z.B. einen Satz benutzt, da die Leerzeichen rausnimmt, 0:02:04.020,0:02:06.260 noch ein paar Buchstaben durch Zahlen & Sonderzeichen ersetzt, 0:02:06.380,0:02:07.790 und dann hat man wieder ein Passwort. 0:02:08.139,0:02:10.639 Macht aber auch dann wieder Probleme, wenn man viele Dienste verwendet, 0:02:10.639,0:02:12.680 weil für jeden Dienst muss man sich einen Satz merken, 0:02:12.680,0:02:15.840 man muss sich merken, welchen Satz man für welchen Dienst benutzt hat, 0:02:15.840,0:02:18.210 welche Buchstaben man wann ersetzt hat, und so weiter. 0:02:20.400,0:02:23.080 Die andere Sache, die in den letzten Jahren sehr beliebt geworden ist, 0:02:23.080,0:02:24.280 sind Passwortdatenbanken. 0:02:24.680,0:02:25.800 Wenn man es sich mal genau überlegt, 0:02:25.820,0:02:28.190 das ist im Grunde eine Datei, da schreibt man seine Passwörter rein, 0:02:28.190,0:02:31.960 da schreibt man rein, auch noch, wie der Benutzername ist, 0:02:31.990,0:02:34.580 wie der Dienst heißt, vielleicht noch die URL vom Dienst, 0:02:35.210,0:02:37.240 verschlüsselt das ganze mit einem Passwort, 0:02:37.620,0:02:40.680 und hofft, dass niemals diese Datei abhanden kommt, 0:02:40.680,0:02:43.040 und dass niemals gleichzeitig das Passwort dazu abhanden kommt. 0:02:43.710,0:02:46.020 Benutzt man dann sehr gerne auf Windows z.B., 0:02:46.020,0:02:49.020 wo Trojaner und Viren durchaus vorherrschend sind, 0:02:49.260,0:02:52.330 und wir müssen, wenn wir Passwort-Datenbanken benutzen, 0:02:52.340,0:02:55.700 hoffen, dass niemals ein Trojaner kommt, der genau darauf abzielt. 0:02:56.860,0:02:57.340 Ja. 0:02:59.400,0:03:00.580 Was ist jetzt so die Idee? 0:03:02.080,0:03:04.240 Die Idee hinter dem ganzen ist zum einen, 0:03:04.240,0:03:06.820 ich möchte die Passwortauswahl vereinfachen, 0:03:06.820,0:03:09.900 sprich, welches Passwort wird für welchen Dienst wann verwendet. 0:03:10.660,0:03:12.670 Ich möchte gleichzeitig das Problem lösen, 0:03:12.670,0:03:14.710 wie man sich diese ganzen Passwörter merken soll. 0:03:15.760,0:03:18.310 Es soll obendrein soweit wie möglich verhindert werden, 0:03:18.310,0:03:19.660 dass diese Passwörter verloren gehen, 0:03:19.660,0:03:20.780 z.B. durch einen Festplattencrash, 0:03:20.780,0:03:22.910 wo dann plötzlich die Passwort-Datenbank weg ist, 0:03:23.200,0:03:26.240 oder sie gestohlen werden, z.B. durch Trojaner. 0:03:26.640,0:03:28.500 Und das ganze soll Open Source sein, 0:03:28.520,0:03:30.640 einfach, damit jeder diese Technologie benutzen kann, 0:03:30.640,0:03:33.360 und nicht sich an irgenwelche teuren Firmen wenden muss, 0:03:33.370,0:03:35.110 um sowas in der Art haben zu können. 0:03:36.810,0:03:39.900 Die Frage ist jetzt natürlich, wie soll das ganze funktionieren? 0:03:42.180,0:03:42.840 so... 0:03:43.450,0:03:44.400 ...meiner Meinung nach. 0:03:44.400,0:03:47.100 und zwar indem die pw kryptografisch berechnet werden 0:03:47.940,0:03:49.060 es gibt da mehrere Faktoren 0:03:49.060,0:03:51.800 das ist zum Beispiel das ist zum einen das Master-Passwort 0:03:52.450,0:03:54.830 was die Stärke des ganzen darstellen soll 0:03:54.830,0:03:56.660 einfach weil es schlussendlich eine Verschlüsselung ist 0:03:57.660,0:04:00.240 wir haben eine Service-Information für die einfache Merkbarkeit 0:04:00.480,0:04:05.120 das geht so in Richtung starkes Präfix und dann einfacs Service-Suffix 0:04:05.890,0:04:07.800 es sollen öffentlichen Algorithmen verwendet werden 0:04:07.800,0:04:09.910 einfach, damit man das ganze reproduzieren kann 0:04:10.180,0:04:12.710 wenn man also ein Gerät hat, was Passwörter berechnet, 0:04:12.710,0:04:15.340 und ein neues Gerät kauft, was die gleichen Algorithmen verwendet 0:04:15.540,0:04:17.320 soll schlussendlich die gleichen PW dabei heraus kommen 0:04:17.820,0:04:20.370 und das ganze soll dedizierte Hardware verwenden 0:04:20.670,0:04:23.940 einfach, damit wir nicht durch normale Trojaner und Viren angegriffen werden können 0:04:23.950,0:04:24.960 bei der Passwort-Berechnung. 0:04:26.840,0:04:28.190 So, wie sieht die Lösung aus? 0:04:28.490,0:04:31.800 Ich geh mal ein bisschen zurück, ins Jahre 2003 äh 2010 0:04:31.800,0:04:34.500 da hab ich ein Programm geschrieben 0:04:34.500,0:04:36.860 den Passwordcalculatur, der schon genau das gemacht hat 0:04:36.860,0:04:38.940 man hat ein Master-Passwort eingegeben 0:04:39.100,0:04:41.300 hat die Information eingegeben, hat auf berechnen geklickt 0:04:41.300,0:04:42.840 und hat schlussendlich sein Passwort rausgekriegt 0:04:44.770,0:04:46.970 hat funktioniert, funktioniert auch immer noch, 0:04:47.080,0:04:49.170 hat aber eine unschöne Eigenschaft, nämlich, 0:04:49.280,0:04:52.300 wo immer man sein Passwort braucht, muss man dieses Programm runterladen 0:04:52.630,0:04:55.600 an dem Rechner muss man entsprechend auch sein Masterpasswort eingeben 0:04:55.940,0:04:59.060 und ich habs mehrfach, also zweimal, 0:04:59.260,0:05:02.030 dass ich bei einem Freund war, hab da irgendwas an einem Server machen müssen, 0:05:02.030,0:05:04.390 hab das Programm runtergeladen, Passwort eingegeben, 0:05:04.580,0:05:06.520 und als ich dann fertig war mit meiner Arbeit, wurde mir dann gesagt: 0:05:06.720,0:05:10.520 "Du, mein Computer benimmt sich seit zwei Wochen ein bisschen merkwuerdig... 0:05:10.520,0:05:12.540 wenn du schonmal da bist, kannst du nichtmal kucken?" 0:05:12.860,0:05:15.860 Hmm. Schön. Erstmal alle Passwörter wechseln. 0:05:17.050,0:05:18.850 Genau das soll eben nicht mehr vorkommen. 0:05:19.000,0:05:23.520 Deswegen, calc.pw als wirklich Hardware-Anwendung 0:05:23.940,0:05:26.740 sieht ungefähr so aus, schön in einer Box 0:05:27.460,0:05:28.810 das ist noch die Revision "c", 0:05:28.820,0:05:30.580 es gibt mittlerweise eine Revision "d", 0:05:31.140,0:05:32.390 die ist noch nicht ganz fertig, wie man sieht 0:05:32.910,0:05:33.980 aber wird noch. 0:05:34.720,0:05:38.360 Wie man sieht, soll ein bisschen modularer werden, als es vorher gewesen ist 0:05:38.620,0:05:46.280 soll auch... eher in Richtung Produktion in... ja... Fabriken kommen 0:05:47.770,0:05:48.610 daran arbeite ich noch. 0:05:49.460,0:05:50.680 Was ist da schlussendlich drin? 0:05:51.010,0:05:54.690 In der Revision "d", also das ist ein verteiltes, 0:05:55.620,0:05:58.300 ist einmal ein Arduino Leonardo drin, als Output-Device, 0:05:58.390,0:06:01.260 das emuliert eine Tastatur gegenüber dem Computer 0:06:01.490,0:06:03.640 spricht das LCD an und spricht auch ein paar LEDs an 0:06:03.640,0:06:05.150 damit man so Status-Informationen kriegt, 0:06:05.920,0:06:08.770 dazu noch ein Ardiuino Uno, als Eingabegerät, 0:06:08.920,0:06:12.110 dort wird schlussendlich eine Tastaur angeschlossen 0:06:12.580,0:06:14.670 es kann auch optional noch ein Keypad angeschlossen werden, 0:06:14.670,0:06:15.620 daran arbeite ich gerade 0:06:15.850,0:06:19.880 und dieses Arduino Uno führt auch die Berechnung schlussendlich durch 0:06:20.420,0:06:23.630 und dann noch als 3. ein sogenanntes USB-Host-Shield 0:06:23.730,0:06:26.750 das ist das, was eigentlich dann den USB-Anschluss hat 0:06:27.520,0:06:30.520 was dann die Kommunikation mit dem USB-Gerät vornimmt 0:06:30.850,0:06:32.380 und hier schon mal eine Empfehlung: 0:06:32.610,0:06:35.200 dringend oder am besten das von circuits at home nehmen 0:06:35.200,0:06:38.340 das ist das ursprünglich shield, wo auch die Bibliothek für geschrieben wird 0:06:38.760,0:06:41.360 wo auch die Entwickler von dieser Bibliothek stark dahinter sind 0:06:42.040,0:06:43.120 das es gut funktioniert 0:06:44.520,0:06:46.810 So, wie funktioniert das ganze nun? 0:06:46.990,0:06:48.460 Ich habe da mal eine Schematik gemacht 0:06:49.860,0:06:52.420 im Grund, man hat seinen Computer, man hat seine Tastatur 0:06:52.420,0:06:54.320 und genau dazwischen sitzt calc.pw 0:06:54.950,0:06:56.740 ist so in der Art "man in the middle" 0:06:57.900,0:07:00.130 liest ein, was über die Tastatur eingegeben wird, 0:07:00.130,0:07:01.770 und gibt dann irgendwas an den Computer aus. 0:07:02.220,0:07:05.730 Genauer gesagt, beim hochfahren fragt es einmal nach dem Masterpasswort 0:07:06.200,0:07:07.420 was man dann nochmal wiederholt, 0:07:07.810,0:07:10.260 und dann geht es in einen sogenannten passthrough-Modus 0:07:10.450,0:07:13.340 heißt: die Eingaben, die dann über die Tastatur erfolgen, 0:07:13.360,0:07:15.570 werden eins zu eins an den Rechner weitergegeben 0:07:15.720,0:07:18.080 einfach damit man die Tastatur weiter benutzen kann, ganz normal 0:07:18.660,0:07:21.260 erst durch eine spezielle Tastenkombination kommt man dann 0:07:21.260,0:07:22.810 in den Passwort-berechnen-Modus 0:07:22.980,0:07:24.230 wo man seine information eingibt, 0:07:24.470,0:07:26.260 Enter drückt, das Passwort berechnet wird, 0:07:26.510,0:07:28.910 und das Passwort als normale Tastatureingaben 0:07:28.910,0:07:30.240 an den Rechner weitergegeben werden 0:07:30.540,0:07:34.200 sprich; der kriegt nichtmal mit, dass da jetzt nicht über eine Tastatur 0:07:34.200,0:07:36.390 ein Passwort eingegeben wurde sondern berechnet worden ist. 0:07:37.670,0:07:38.160 So. 0:07:39.920,0:07:41.180 Wie funktioniert die Berechnung? 0:07:41.740,0:07:43.410 Nicht aufregen, komme ich gleich noch zu 0:07:45.510,0:07:46.760 was zu erst gemacht wird, 0:07:46.760,0:07:49.540 es wird aus dem Master-Passwort und der eingegebenen Information 0:07:49.540,0:07:50.880 ein termporäres Passwort gebildet. 0:07:51.040,0:07:53.180 das ist einfach gegen Rainbow-Attacks, 0:07:53.550,0:07:56.540 dass sozusagen nicht vorher schon Passwörter vorberechnet werden können. 0:07:57.540,0:07:58.980 Als nächstes wird die Information genommen, 0:07:59.140,0:08:00.470 und die wird expandiert. 0:08:00.520,0:08:03.940 Wenn wir uns vorstellen, wir haben eine ganz kurze Dienstinformation, wie z.B. "ebay" 0:08:04.120,0:08:06.400 wir wollen nicht nur vier Zeichen kurze Passwörter generieren 0:08:06.780,0:08:08.570 das ganze wird also entsprechend expandiert, 0:08:09.670,0:08:11.810 wird verschlüsselt, noch ein bisschen sauber gemacht 0:08:11.810,0:08:13.340 dass man es auch wirklich als Passwort benutzen kann 0:08:13.610,0:08:14.960 und dass ist schlussendlich unser Passwort. 0:08:16.530,0:08:20.280 Wir wissen, dass da ist das eine Problem: SHA1 0:08:21.430,0:08:23.340 ist nicht mehr so ganz "state of the art" 0:08:24.180,0:08:28.400 und das andere, seit Snowden, das da [RC4] auch nicht mehr so "state of the art" 0:08:29.190,0:08:31.700 warum die noch eingesetzt werden, darauf komm ich später noch zu sprechen. 0:08:33.320,0:08:36.210 So, was waren denn so die Fallstricke? 0:08:37.299,0:08:40.919 im Grunde die vier hier als allererstes, und größtes 0:08:41.240,0:08:43.659 diese Tastaturen, die man dort anschließt 0:08:43.659,0:08:45.770 und selber ne tastatur darstellen, 0:08:46.060,0:08:48.030 ist ziemlich ekelhaft 0:08:49.190,0:08:52.690 das zweite ist, unser ram, den wir haben, unseren Arbeitsspeicher 0:08:52.690,0:08:58.340 ist bei so einem Arduino sehr beschränkt, bei so einem Arduino Leonardo sind es 2.5 kB 0:08:59.180,0:09:03.200 Unser Programmspeicher, wo sozusagen die Anwendung reingeladen wird auf das Arduino 0:09:03.200,0:09:05.740 ist auch relativ klein mit 28 kb 0:09:06.170,0:09:09.960 und das dritte, bzw das vierte, ist die... 0:09:09.970,0:09:11.820 ich habs "mobile technology gap" genannt 0:09:11.820,0:09:13.740 da komm ich gleich noch drauf zu sprechen, was ich damit meine 0:09:14.390,0:09:15.700 So. Die Tastaturen. 0:09:16.480,0:09:18.940 Jeder von euch hat sicherlich schonmal ein Betriebssystem eingerichtet 0:09:18.940,0:09:19.750 und da wurde dann gefragt: 0:09:19.750,0:09:21.660 ja, was für eine Tastatur hast du denn bei dir angeschlossen? 0:09:21.950,0:09:24.600 Dann darf man auswählen, dass man eine deutsche Tastatur hat, eine de-DE 0:09:24.600,0:09:26.500 oder eine de-CH oder was auch immer 0:09:27.280,0:09:29.570 wo schlussendlich definiert wird, wenn man auf eine Taste drückt, 0:09:29.570,0:09:31.130 was für ein Zeichen fällt hinten bei raus 0:09:32.730,0:09:38.760 ich hab mal die häufigsten, die man in Europa sieht, aufgeschrieben 0:09:39.040,0:09:42.480 gibt da dann zum Beispiel wie gesagt qwertz-de, qwertz aus der Schweiz 0:09:42.540,0:09:45.860 qwertz aus Dänemark, qwerty aus Großbritannien, qwerty aus den USA 0:09:46.050,0:09:48.080 azerty aus frankreich, azerty aus belgien, 0:09:48.260,0:09:51.450 dann noch mal schon gemixt zwischen Mac und Windows und so weiter und so fort. 0:09:52.457,0:09:55.360 wie gerade schon gesagt, unser Programmflash ist 28 kb groß 0:09:55.360,0:09:58.240 und so ein Layout was sozusagen diese Umwandlung macht 0:09:58.251,0:10:00.011 zwischen welche Taste zu welchem Zeichen 0:10:00.800,0:10:02.091 braucht ein bisschen an Bytes. 0:10:03.211,0:10:06.685 Zuviel, um alle möglichen abbilden zu können im Ardiuno selber. 0:10:07.577,0:10:09.634 Wir haben auch einen Datenflash, der ist 1 kb groß, 0:10:09.725,0:10:12.000 sozusagen Permamentspeicher, den man nochmal selber beschrieben kann, 0:10:12.274,0:10:14.605 der ist nur 1kb groß, da passt grad mal eins rein, 0:10:15.400,0:10:19.000 deswegen braucht man eine Lösung einfach, eines drauf flashen zu können, 0:10:19.000,0:10:20.780 und wenn man seine Tastatur auf einmal wechseln sollte, 0:10:20.780,0:10:23.090 - warum auch immer - einfach ein neues draufflashen zu können. 0:10:24.220,0:10:26.580 So. So sieht das ganze dann aus: 0:10:26.580,0:10:29.370 Das rechts ist sozusagen ein qwertz-de-Layout 0:10:30.500,0:10:31.950 schön encodiert einfach als Hex 0:10:33.070,0:10:34.930 und links sieht man dann wie das ganze aussieht 0:10:34.930,0:10:35.960 wenn es dann gerade gesfllasht wird. 0:10:37.640,0:10:40.060 So. Das zweite Problem ist der RAM. 0:10:40.650,0:10:44.100 Wie gesagt 2.5 kb bei so einem Arduino Leonardo ist nicht gerade viel 0:10:44.290,0:10:45.150 und was wir auch noch machen 0:10:45.150,0:10:46.900 wir machen ja auch noch String-Bearbeitung, 0:10:47.060,0:10:48.510 was nicht so schön ist. 0:10:48.960,0:10:51.640 Weil, wenn man sich vorstellt, so ein kleiner Speicher, man allkoiert zwei Blöcke, 0:10:51.880,0:10:53.920 deallokiert den ersten, und schon hat man ein Speicherloch 0:10:54.830,0:10:57.040 sprich, fragmentierten Speicher, 0:10:57.670,0:10:59.890 und wenn man das oft genug macht, dann ist der Ram voll, 0:10:59.890,0:11:01.770 und man kann keine neuen Blöcke allokieren, 0:11:01.770,0:11:04.060 und schon ist man in einer Deadlock Situation. 0:11:05.730,0:11:08.640 Was ich deswegen gemacht habe, ich habe einen eigenen kleinen Speichermanager geschrieben 0:11:08.890,0:11:11.930 dem man im Grunde übergibt, so viel Speicher sollst du verwalten 0:11:11.930,0:11:13.930 soviele Blöcke sind maximal nöglich 0:11:14.450,0:11:16.590 und sobald ein block deallokiert wird, 0:11:16.590,0:11:18.840 werden einfach alle blöcke dahinter nach vorne geschoben. 0:11:19.110,0:11:21.620 sodass man permanent eine Defragmentiertung des Speichers hat. 0:11:22.440,0:11:23.460 Funktioniert ziemlich gut. 0:11:24.350,0:11:25.290 Braucht auch nicht so lange. 0:11:26.540,0:11:28.110 Ja. So würde es ansonsten aussehen, 0:11:28.110,0:11:29.760 man hat überall kleine Miniblöcke, 0:11:30.910,0:11:32.250 die man nicht mehr ordentlich benutzen kann 0:11:32.250,0:11:34.090 und irgendwann ist der Speicher voll, wenn man neu allokieren will. 0:11:34.270,0:11:34.590 Doof. 0:11:35.730,0:11:36.070 So. 0:11:37.440,0:11:39.490 Mein größtes Problem ist eigentlich der Programmflash, 0:11:39.490,0:11:41.180 also sprich, wie groß kann die Anwendung sein. 0:11:42.540,0:11:44.010 Das Usb-Host-Shield, was ich verwende, 0:11:44.100,0:11:45.620 hat eine eigenen Bibliothek, wie gesagt, 0:11:46.020,0:11:48.150 die immer mehr Funktionen bekommt, 0:11:48.150,0:11:49.550 die entspchend aber auch immer größer wird, 0:11:49.550,0:11:51.780 und auch immer mehr Programflash weg frisst. 0:11:53.500,0:11:56.060 Wie auch schon gesagt, derzeit wird noch sha1 und rc4 benutzt, 0:11:56.060,0:11:58.220 einfach deswegen, es passt gut in den Ram rein, 0:11:58.220,0:11:59.830 und passt gut in den program flash rein 0:11:59.830,0:12:01.850 also relativ schmal zu implementieren. 0:12:02.900,0:12:04.740 Bessere Crypto braucht einfach mehr Platz, 0:12:05.550,0:12:08.080 das ist eins der Themen an denen ich derzeit arbeite. 0:12:08.980,0:12:12.210 Die andere Sache ist, auch neue Features brauchen mehr Platz. 0:12:13.540,0:12:15.740 Ein Feature, was ich mir z.B. noch vorstelle, 0:12:15.740,0:12:17.930 hab ich einfach mal type-through encryption genannt 0:12:18.210,0:12:19.850 sprich, wie damals bei der Enigma, 0:12:20.010,0:12:23.830 man hat sein calcpw, hat das in den Modus geschaltet, 0:12:24.110,0:12:27.020 und während man seinen Text eintippt, wird der Text verschlüsselt 0:12:27.020,0:12:28.900 und erst vershlüsselt an den Rechner übertagen 0:12:29.180,0:12:30.050 der angeschlossen ist. 0:12:30.290,0:12:34.060 So kann man z.B. dann in Internetcafés oder sowas 0:12:34.340,0:12:36.150 vertrauliche Infromationen schreiben 0:12:36.150,0:12:40.200 könnte sie auf, ja was auch immer, Pastebin oder sowas ablegen 0:12:40.510,0:12:42.690 und derjenige, der es lesen soll, kann es dann entschlüsseln. 0:12:43.440,0:12:44.010 So. 0:12:44.100,0:12:46.070 Die Lösung, die ich jetzt gemacht habe, bei Revision "d" 0:12:46.070,0:12:47.910 ist einfach ein zweites Arduino dazuzu nehmen, 0:12:48.200,0:12:49.540 genauer gesagt ein Arduino Uno. 0:12:50.010,0:12:51.390 Vorteil am Arduino Uno: 0:12:51.390,0:12:54.360 Die Bauteile für den Kern des ganzen kosten gerade mal 5€ 0:12:54.360,0:12:55.570 und die kann man selber zusammenlöten 0:12:58.290,0:13:01.620 so sieht das übrigens aus, wenn ein sogenannter Sketch zu groß wird, 0:13:01.620,0:13:03.240 man kriegt einfach nur die Meldung "zu groß" 0:13:03.240,0:13:05.440 kannste ja mal da kucken, wie du das vielleicht kleiner kriegst, 0:13:05.750,0:13:08.970 ist poblematisch wenn eben der Code gebraucht wird, 0:13:08.970,0:13:10.350 weil die Funktion ansonsten nicht funktioniert. 0:13:12.470,0:13:15.690 Und das letzte, mobile technology gap: 0:13:16.460,0:13:20.770 wir werden immer mobiler, wir haben unsere Laptops dabei, 0:13:20.770,0:13:22.930 wo wir keine Tastatur unbedingt mitschleppen wollen, 0:13:22.930,0:13:24.640 mit noch einem Extragerät, was wir anschließen, 0:13:24.910,0:13:27.750 wir haben unsere Tablets, wo wir keine Usb-Tastaturen anschließen können, 0:13:27.750,0:13:30.480 wir haben unsere Smartphones, wo wir keine Usb-Tastaturen anschließen können, 0:13:31.730,0:13:32.990 ist etwas umständlich. 0:13:33.530,0:13:37.220 So, und deswegen zwei Sachen, an denen ich derzeit arbeite, 0:13:37.220,0:13:39.830 ist zum einen die calcpw-Funktionalität 0:13:39.830,0:13:41.260 in eine Tastatur zu integrieren 0:13:41.560,0:13:45.530 und die andere ist, dass calcpw nicht mehr nur über Usb funktioniert 0:13:45.530,0:13:47.640 sondern auch über Bluetooth angeschlossen werden kann. 0:13:48.130,0:13:51.850 Bluetooth haben wir Glück, funktioniert inzwischen mit Android realtiv gut, 0:13:51.850,0:13:54.220 funktioniert auch mit iOS relativ gut, 0:13:55.230,0:13:59.000 wo wir also Smartphones und Tablets abdecken können. 0:13:59.190,0:14:01.340 Wenn man sozusagen eine Tastatur hätte, wo die Funktion drin ist, 0:14:01.340,0:14:03.690 diese Tastatur funktioniert per Bluetooth, 0:14:04.680,0:14:08.020 würde einige Probleme zumindest lösen können. 0:14:09.720,0:14:12.660 So sieht ein Test aus, den ich derzeit gemacht habe, 0:14:12.660,0:14:15.580 das ist ein einfaches Numpad, wie man früher hatte, 0:14:15.580,0:14:17.680 wenn man dreimal auf die 2 drückt, kommt ein C raus 0:14:18.370,0:14:19.850 die ganzen Sachen eingeben kann, 0:14:20.150,0:14:21.290 funktioniert erstmal, 0:14:23.250,0:14:25.300 das ist eine andere Sache, an der ich gearbeitet habe 0:14:25.990,0:14:27.520 das da unten ist eine Tastaturmatrix, 0:14:27.520,0:14:30.330 die ich aus einer normalen Kauftastatur rausgeholt habe, 0:14:30.880,0:14:32.610 besteht im Grunde aus drei Schichten, 0:14:32.850,0:14:34.740 eine untere leitenden Schicht, eine obere leitende Schicht 0:14:34.740,0:14:35.510 und eine Trennschicht 0:14:35.510,0:14:37.940 und jedesmal wenn man eine Taste drückt, wird die Oberschicht 0:14:37.940,0:14:39.780 durch die Trennschicht auf die Unterschicht gedrückt 0:14:39.990,0:14:43.730 und man kann herausfinden durch einfaches durchschalten 0:14:43.730,0:14:45.180 welche Taste gerade gedrückt wurde 0:14:45.530,0:14:47.080 und genau das ist was ich vorhabe. 0:14:47.080,0:14:50.420 Sozusagen mich selber zwischen diese Matrix 0:14:50.650,0:14:54.160 und den eigentlichen Controller der Tastatur zu bringen 0:14:54.580,0:14:56.540 um dann den Controller zu benutzen als Output 0:14:56.540,0:14:58.840 und die Matrix zu verwenden als Input. 0:14:59.430,0:15:00.910 Man sieht, ist gar nicht so einfach, 0:15:01.460,0:15:04.850 weil diese Matrix ist schlussendlich ein bisschen Plastik 0:15:04.850,0:15:06.500 wo ein bisschen Silber aufgedampft ist, 0:15:07.400,0:15:08.870 da dran löten funktioniert nicht. 0:15:09.650,0:15:12.400 Mein derzeitiger Versuch ist, mit sogenanntem Leitfaden 0:15:13.160,0:15:16.740 in die einzelnen Auflagekontakte von dieser Matrix zu stechen, 0:15:16.940,0:15:21.160 dort einen Knoten zu machen, das ganze mit Nagellack zu fixieren 0:15:21.160,0:15:24.380 und dann zu versuchen, das ganze an den Microcontroller anzuschließen 0:15:24.380,0:15:31.110 Applaus 0:15:31.440,0:15:35.680 Aber falls jemand eine Ahnung hat, wie man solche Auflagekontakte herstellen kann, 0:15:35.680,0:15:38.600 wär das natürlich sehr hilfreich das würde nicht so viel frickeln sein. 0:15:39.540,0:15:40.140 Ja. 0:15:41.870,0:15:43.620 Gut, ich hab noch mehr als genug Zeit, 0:15:44.230,0:15:45.650 aber trotzdem kann ich euch schonmal sagen, 0:15:45.650,0:15:47.710 wenn ihr weitere Informationen haben wollt, 0:15:47.800,0:15:49.360 könnt ihr einfach auf http://calc.pw gehen 0:15:49.680,0:15:52.960 die Slides selber findet ihr auf http://calc.pw/30c3 0:15:53.860,0:15:56.890 und da ich noch Zeit habe, kann ich ja noch ein bisschen weiter gehen. 0:15:59.980,0:16:01.600 Eine Frage, die sich sicherlich stellen wird, ist 0:16:01.600,0:16:04.780 wenn man jetzt so ein Ding hat, was Passwörter berechnet, 0:16:05.100,0:16:07.810 wie kann man z.B. denn bestimmen, wie lang diese Passwörter sein sollen 0:16:07.810,0:16:09.570 oder welche Sonderzeichen verwendet werden? 0:16:10.320,0:16:12.380 Das wird bei calcpw derzeit inline gemacht, 0:16:12.620,0:16:16.010 sprich man hat seine Information und kann hinten drann noch ein paar Sachen hinzuschreiben 0:16:16.300,0:16:19.870 die die Passwörtberechnung beeinflussen 0:16:20.060,0:16:23.940 das ist zum einen das Fragezeichen gefolgt von einem Integer bis 50 0:16:24.290,0:16:27.010 wo man angibt wie lange das Passwort sein soll, das generiert wird 0:16:27.440,0:16:30.210 50 einfach deswegen weil wir wenig RAM haben 0:16:30.210,0:16:32.840 und ewiglange Passwörter generieren und im Ram halten ist schwierig 0:16:33.930,0:16:35.720 dann gibt es noch das Ausrufezeichen 0:16:36.200,0:16:39.190 wo man angeben kann welche Sonderzeichen verwendet werden dürfen, 0:16:39.610,0:16:44.350 aus meiner Erfahrung mit dem Passwortcalculator Pass Calc also dieser Windows Software 0:16:45.340,0:16:52.600 kann ich sagen, dass in 99,9% braucht man keine Sonderzeichen in Passwörtern 0:16:54.280,0:16:59.160 deswegen eher so, dass man ihm wirklich sagt ok Ausrufezeichen welche Sonderzeichen sind erlaubt 0:16:59.630,0:17:03.480 die kann man auch wild durcheinander mixen also egal in welcher Reihnefolge man sie angibt 0:17:03.780,0:17:05.240 man muss halt immer wieder alle angeben. 0:17:05.867,0:17:12.050 So. Dann gibt es noch ein großes Problem, was Passwortformulare häufig wollen oder manchmal wollen, 0:17:12.780,0:17:16.490 dass man mindestens das eingibt und mindestens das eingibt und mindestens das eingibt 0:17:17.140,0:17:19.910 dafür gibt es noch die Route die man vorne ran schreiben kann, die macht einfach einen Check: 0:17:20.220,0:17:22.950 Ok, ist mindestenes ein Buchstabe enthalten ist mindestens eine Zahl enthalten? 0:17:23.280,0:17:27.108 wenn man das Ausrufezeichen benutzt ist sowieso immer mindestens ein Sonderzeichen enthalten. 0:17:27.579,0:17:32.270 Und so kann man auch solche Checks einbauen, dass ein Passwort irgendwelche Anforderungen erfüllt. 0:17:32.940,0:17:36.710 So sehen dann Informationen aus die man eingeben kann "SomeINFO". 0:17:36.710,0:17:40.830 "SomeINFO?25" wäre entsprechend Passwort 25 Zeichen lang, 0:17:40.830,0:17:44.110 "SomeINFO" mit plus minus mal geteilt - eines davon wird genommen - 0:17:44.540,0:17:47.530 dann eben "SomeINFO" 8 Zeichen langes Passwort als Default 0:17:47.530,0:17:49.840 und da muss dann mindestens eine Zahl und ein Buchstabe drinn sein. 0:17:50.150,0:17:52.820 Das ganze dann nochmal kombiniert und das ganze dann nochmal kombiniert. 0:17:53.690,0:17:56.000 Ja, eine Folie hatte ich noch. 0:17:56.000,0:17:56.670 Ja genau. 0:17:57.720,0:18:00.890 So sieht der Ablauf aus wenn man das ganze verwendet, 0:18:02.200,0:18:05.040 wie gesagt wenn es hoch fährt wird man einmal nach dem Passwort gefragt, 0:18:05.710,0:18:08.680 das ganze soll man nochmal eingeben falls man sich vertippt hat, das man das mitkriegt 0:18:08.680,0:18:12.470 und kommt dann eben in diesen pass-through-Modus wo die Daten einfach durchgereicht werden 0:18:12.920,0:18:17.020 und wenn man den Passwortmodus wechselt gibt man die Information ein und drückt dann Enter 0:18:17.020,0:18:19.530 Passwort wird berechnet und man kommt zurück in den pass-through Modus. 0:18:20.140,0:18:21.950 Ja. Damit ist auch mein Backup zu Ende. 0:18:22.750,0:18:23.060 Danke. 0:18:23.060,0:18:31.680 Applaus 0:18:31.680,0:18:33.960 Herald Engel: Ja vielen Dank für diesen hervorragenden Talk 0:18:33.960,0:18:37.690 ich denke er ist sehr interessant und vielleicht haben wir ja auch ein paar interessante Ideen 0:18:37.690,0:18:39.530 wie man das zum Beispiel erweitern könnte. 0:18:40.030,0:18:41.630 Und damit sind dann die Fragen eröffnet. 0:18:42.390,0:18:48.510 Ich bitte euch einfach an den Mikrofonen aufzustellen, an eins und zwei... vor allem. 0:18:54.740,0:18:58.520 Frage 1: Mich interessiert, du sagt wenn du die reine Software verwendest 0:18:59.370,0:19:03.300 und der Rechner ist kompromittiert, dann hast du hinterher ein Problem und kannst alle Passwörter ändern 0:19:03.720,0:19:07.590 aber wenn der Rechner so kompromittiert ist, kann ja immer noch passieren, 0:19:08.940,0:19:12.580 musst du nicht alle verwenden, man kommt auch nicht an dein Master Passwort ran, 0:19:12.910,0:19:16.640 aber die expliziten Passwörter die du da verwendet hast sind auch tot. 0:19:17.140,0:19:20.440 Kenny: Ja die sind schlussendlich tot wenn man dem Gerät nicht vertrauen kann, richtig. 0:19:20.440,0:19:23.990 Ist eben der primäre Vorteil deswegen auch in dem Algorithmus entsprechend ... 0:19:32.180,0:19:36.090 Ich wurde ein paar mal gefragt warum ich einfach nur hashe oder nur verschlüssele: 0:19:36.440,0:19:39.100 Einfacher Hintergrund: Wir wollen dieses Master Passwort schützen, 0:19:39.370,0:19:42.940 und dadurch das beides eingesetzt wird haben wir zwei Ebenen von Schutz drin, 0:19:43.860,0:19:48.190 wenn sozusagen ein Passwort kompromittiert wird müssen wir nicht nur durch den Hash-Algorithmus durchbrechen können, 0:19:48.190,0:19:50.140 sondern wir müssen auch durch die Verschlüsselung durchbrechen können. 0:19:50.350,0:19:52.440 Das ist das gleiche wie wenn wir Firewalls aufbauen, 0:19:52.630,0:19:55.130 da sollte man immer zwei nehmen und zwar von verschiedenen Herstellern. 0:19:55.620,0:19:56.590 Ist hier genau das gleiche. 0:19:57.660,0:20:02.080 Ja, wenn dieses eine Passwort auf einem Rechner verwendet wird der komprommitiert ist, 0:20:02.080,0:20:06.240 ist dieses Passwort verbrannt, weil es wird schlussendlich unverschlüsselt an den Rechner geschickt. 0:20:08.360,0:20:12.680 Hauptziel hier ist es, das aufgrund eines Passwortes oder aufgrund von n Passwörtern, 0:20:14.210,0:20:18.690 die abgelesen werden, nicht auf das Master-Passwort zurückgeführt werden kann. 0:20:19.110,0:20:20.670 Das ist hier einer der Hauptgründe. 0:20:21.370,0:20:24.220 Deswegen Hardware und deswegen auch die Wahl des Algorithmus. 0:20:27.850,0:20:34.490 Frage 2: Was machst denn du wenn dann eines deiner Passwörter bekannt geworden ist? 0:20:34.490,0:20:38.180 Also dein ebay-Passwort, deine Info ebay ist genommen. 0:20:38.330,0:20:42.200 Musst du dann künftig "ebay2" eintippen damit du die nächste Info hast, oder? 0:20:43.780,0:20:44.690 Kenny: Ja, leider. 0:20:44.690,0:20:48.400 Es gibt möglicherweise verschiedene Möglichkeiten, 0:20:48.400,0:20:50.330 man kann z.B. anstatt "ebay" "ebay.com" nehmen. 0:20:51.270,0:20:54.050 Frage 2: Jaja okay, aber du musst dir wieder ein neues ausdenken. 0:20:54.050,0:20:56.180 Kenny: Ja, schlussendlich muss man sich eine neue Information ausdenken, das ist richtig. 0:20:56.810,0:20:59.760 Man hat aber immer noch den Vorteil, das nicht plötzlich sämtliche Passwörter ändern muss. 0:21:00.230,0:21:01.820 Frage 2: Ok, und dann habe ich noch eine Frage: 0:21:03.430,0:21:06.990 In diesem pass-through Modus, gibt es da irgendwie eine spürbare Latenz von der Tastatur 0:21:06.990,0:21:08.380 oder verlierst du irgendwelche Features? 0:21:09.340,0:21:11.750 Kenny: In dem pass-through Modus habe ich noch keine Latenz mitbekommen. 0:21:11.750,0:21:16.170 Man muss dazu sagen ich bin nur Entwickler und schreibe Texte, ich bin kein Gamer, 0:21:17.000,0:21:20.090 man sollte also nicht unbedingt als Gamer da seine Gaming-Tastatur anschließen. 0:21:25.550,0:21:27.250 Herald: Okay, wenn es keine Fragen mehr gibt hätte... 0:21:27.250,0:21:28.410 Kenny: Doch ich glaube noch da, zwei. 0:21:28.720,0:21:30.090 Herald: ... hätte ich sonst eine gehabt. 0:21:30.380,0:21:32.290 Frage 3: Ja ich hätte da noch eine Frage und zwar: 0:21:32.290,0:21:35.840 wie genau sieht das dann aus, weil das lädt ja eher dazu ein, 0:21:35.840,0:21:38.060 dass man eher schwache Passwörter verwendet 0:21:38.060,0:21:40.250 wie gerade geschrieben "ebay" einfach nur. 0:21:40.650,0:21:43.120 Wenn dann jemand Zugriff auf das Gerät hat, 0:21:43.120,0:21:46.100 das er dann ganz einfach an viele Accounts ran kommen kann? 0:21:48.610,0:21:49.910 Kenny: Nicht unbedingt... lacht 0:21:51.220,0:21:56.210 Schlussendlich, auch wieder hier aufgrund des Algorithmus, wir versuchen sowas wie... 0:21:56.210,0:21:59.440 also, es wird versucht sowas wie Rainbowtables zu verhindern 0:21:59.440,0:22:03.670 in dem eben du damit du überhaupt die Verschlüsselung im zweiten Schritt machen zu können 0:22:04.720,0:22:06.730 du jedes Master Passwort nehmen musst 0:22:06.730,0:22:09.120 und dort jede Information nehmen musst, die du durchprobieren willst. 0:22:10.610,0:22:13.600 Das generieren deiner Rainbowtable dauert schlussendlich länger, 0:22:13.970,0:22:16.530 und auch dann ist deine Rainbow table größer, weil du 0:22:16.860,0:22:18.760 kannst ja nicht nur davon ausgehen das jemand "ebay" benutzt, 0:22:18.760,0:22:20.810 du kannst auch "ebay.com" nehmen, du kannst "ebay.de" nehmen, 0:22:20.810,0:22:22.850 du kannst was auch immer 0:22:24.920,0:22:27.560 irgendwie deinen Usernamen nehmen, 0:22:29.230,0:22:31.030 es wird dadurch divergierter. 0:22:31.630,0:22:32.260 Frage 3: Ja okay. 0:22:34.740,0:22:37.840 Frage 4: I've got a question about the iteration, 0:22:38.020,0:22:42.830 most passwords do have an expiration date, so they have 90 days 0:22:43.410,0:22:46.950 you've got to just change your password. 0:22:46.950,0:22:48.660 How do you handle that? 0:22:49.020,0:22:51.900 Kenny: Well, the question is how do we handle that with passwort schemes? 0:22:51.970,0:22:58.700 Normally you have one character where you just increment a character or a number 0:22:58.700,0:23:04.950 or you add something like "q1" for the first quarter of the year. 0:23:05.370,0:23:13.300 Thats the same here so you could add for example "ebay" space then "q12014" 0:23:13.610,0:23:17.050 than you have your passwort for that actual quarter of the year. 0:23:17.780,0:23:18.220 Frage 4: Okay thanks. 0:23:18.510,0:23:18.790 Kenny: Ok 0:23:23.850,0:23:24.750 Herald: More questions? 0:23:26.120,0:23:30.340 Is there something from the internet maybe? Where is the signal angel anyway? Yeah? 0:23:33.060,0:23:34.130 Frage 5: I have one question, 0:23:34.130,0:23:39.560 I was wondering wheter you could use - I don't know - maybe I should stick to english? 0:23:40.550,0:23:43.580 I was wondering how you could use that system 0:23:43.580,0:23:47.710 to somehow prevent that keyloggers can 0:23:48.480,0:23:51.630 kind of get what you are typing. 0:23:51.830,0:23:56.090 Kenny: Oh well, should I answer in English? laughs 0:23:58.330,0:24:05.510 You have to differentiate between software keyloggers that are run on your computer 0:24:05.800,0:24:07.200 you can't prevent that 0:24:07.560,0:24:09.610 but when you use such a hardware 0:24:09.850,0:24:15.290 and you have to look at it because it has an LED or an LCD where your information is shown 0:24:16.450,0:24:21.160 you can see where your usb cable is going along 0:24:21.160,0:24:24.930 and thus can see when there is another piece of hardware attatched to it. 0:24:24.930,0:24:25.360 Frage 5: Yeah, ok. 0:24:31.070,0:24:31.910 Herald: Next question? 0:24:33.590,0:24:36.970 Frage 6: I'm really not sure if I should continue in English, I'll just do it.. 0:24:36.970,0:24:37.990 Herald: Wir könnten auch auf D... 0:24:38.470,0:24:39.150 Kenny: Wir können auch auf Deutsch! 0:24:39.150,0:24:40.420 Frage 6: lacht Dann machen wir auf Deutsch. 0:24:42.530,0:24:47.900 Eine kleine Frage zu dem ganze Konzept von diesem sozusagen Zwischenschalten 0:24:47.900,0:24:52.840 eines neuen Gerätes zwischen sozusagen Keyboard und dem tatsächlichen Computer, 0:24:53.190,0:24:57.120 ich bin jetzt nicht wirklich technik-affin und würde einfach fragen, ob du 0:24:57.770,0:25:03.920 darin sozusagen die Zukunft der persönlichen Sicherheit für Computer oder Passwörter allgemein siehst? 0:25:05.580,0:25:11.260 kenny: Ich sehe die Zukunft von Logins definitiv in zusätzlicher Hardware, ja, 0:25:11.620,0:25:14.400 wir haben es ja schon mit verschiedenen Tokens, wir haben RSA Tokens, 0:25:14.710,0:25:16.180 wir haben irgend welche anderen Tokens 0:25:16.180,0:25:18.620 die du dir von Google zuschicken kannst - whatever 0:25:18.980,0:25:21.070 ich denke schon, dass es in diese Richtung gehen wird, ja. 0:25:29.330,0:25:31.920 Frage 7: Denkst du auch über sowas wie "challenge response" nach? 0:25:31.920,0:25:34.960 Also letzendlich hast du ja das Problem 0:25:34.960,0:25:36.860 wenn du das Passwort einmal über den Computer geschickt hast, 0:25:36.860,0:25:40.120 mag es abgegriffen worden sein, 0:25:40.460,0:25:43.400 aber wenn du z.B. einen challenge response system einführen würdest, 0:25:43.400,0:25:49.070 also sprich der Computer schickt etwas an dein Device, USB geht in beide Richtungen, 0:25:49.820,0:25:51.050 rechnen rechnen, zurück. 0:25:53.230,0:25:57.440 Kenny: Dir geht es also darum, dass du etwas vom Computer über USB an das Gerät schickst 0:25:57.440,0:25:59.350 das irgendwas macht und es dir wieder zurück schickt? 0:26:00.960,0:26:05.160 War so schon implementiert, nannte sich Revision "A", nicht ohne Grund. 0:26:06.650,0:26:08.230 Denn hier hat man dann genau das Problem, 0:26:08.230,0:26:10.460 das man das ganze schon an den Rechner eintippt, 0:26:10.770,0:26:12.410 der entsprechend angreifbar ist, 0:26:12.790,0:26:14.280 und dann kann man auch gleich ein Stück Software nehmen. 0:26:17.370,0:26:19.260 Weil man schlussendlich, man gibt es am Rechner ein, 0:26:19.260,0:26:21.300 der ist kompromittiert, kann das Master-Passwort auslesen, 0:26:21.550,0:26:26.200 schickt das ganze dann an ein Gerät was offene Algorithmen verwendet, 0:26:26.290,0:26:28.500 berechnet irgendwas, was man auch selber dann berechnen kann, 0:26:28.500,0:26:31.270 denn es sind ja offene Algorithmen, schickt das ganze dann wieder zurück. 0:26:31.400,0:26:35.860 Also schlussendlich hast du dann höchstens einen Prozessor der dir das ganze abnimmt 0:26:35.960,0:26:37.460 der vielleicht optimiert sein könnte. 0:26:37.810,0:26:40.400 Aber der Angriffsvektor von der normalen Software ist wieder da. 0:26:43.610,0:26:49.680 Frage 7: Ich dachte mehr so an z.B. einen SSH-Login über private Keys 0:26:49.680,0:26:52.710 die dann halt nicht auf dem Rechner gespeichert sind sondern halt nur auf deiner Device 0:26:52.710,0:26:55.960 und das heißt die Informationen die nötig sind um das zu brechen 0:26:55.960,0:26:57.360 sind überhaupt nie auf deinem Rechner. 0:26:59.980,0:27:01.740 Kenny: Ich weiß nicht ob es in die gleiche Richtung geht, 0:27:01.740,0:27:04.860 ich bin derzeit dabei ein Paper zu schreiben über das ganze 0:27:06.580,0:27:09.680 wo es darum geht Smartcards zu verwenden 0:27:09.680,0:27:11.480 um dort die Informationen darauf zu speichern. 0:27:11.480,0:27:13.300 Ich weiß nicht ob es so ein bisschen in die Richtung geht. 0:27:14.090,0:27:17.440 Man würde eben das ganze nicht über den Computer 0:27:17.440,0:27:20.280 oder über das Betriebssystem hinschicken lassen, 0:27:20.280,0:27:23.640 sondern man würde die Information auslagern auf nochmal ein separates Gerät 0:27:23.970,0:27:27.250 was man entsprechend auch blacklisten kann - und weiß der Teufel. 0:27:27.460,0:27:31.320 Publikum (leise, unverständlich): Es gibt ja auch einen Crypto-Stick, z.B. der sowas wieder macht. 0:27:31.320,0:27:31.780 Kenny: Bitte? 0:27:31.780,0:27:32.490 Herald: Die F... 0:27:32.490,0:27:33.170 Publikum (leise, unverständlich): Crypto-Stick! 0:27:33.170,0:27:35.460 Herald: Es gäbe einen Crypto-Stick der so etwas auch macht? 0:27:36.870,0:27:37.810 Kenny: Der ist mir nicht bekannt. 0:27:38.360,0:27:39.630 Publikum (leise, unverständlich): Der war unvollständig. 0:27:39.630,0:27:40.080 Kenny: Ach so. 0:27:42.230,0:27:43.280 Herald: Okay, Micro zwei. 0:27:43.720,0:27:47.270 Frage 8: Die Frage ist, kann man auch irgendwie das Masterpasswort 0:27:47.750,0:27:52.500 irgendwie auf eine Smartcard oder etwas anderes mit zusätzlicher Hardware auslagern, 0:27:52.500,0:27:55.950 die du quasi mitnehmen kannst und vom Gerät trennen kannst. 0:27:56.230,0:28:01.590 Also und so des, weil das Masterpasswort - wenn man sich dann noch ein, wenn man, weiß nicht, 0:28:01.590,0:28:05.050 man neigt dazu, wenn man das Masterpasswort ständig eingeben muss, 0:28:05.050,0:28:07.670 das auch wieder zu verkürzen und sich einfacher merkbar zu machen, 0:28:08.250,0:28:11.800 das irgendwie besser zu merken auf dem Gerät und... 0:28:13.430,0:28:14.960 Kenny: Hatte ich ja gerade schon kurz angesprochen, 0:28:14.960,0:28:18.140 in dem Paper das ich gerade schreibe zeige ich genau sowas auf, 0:28:18.350,0:28:24.460 zwar eher für Firmen, dass die damit die Passwortverwaltung ihrer Mitarbeiter verbessern könnnen, 0:28:24.670,0:28:27.740 aber schlussendlich ja, es macht Sinn das ganze auf ein Gerät zu speichern, 0:28:28.520,0:28:31.160 es sollte dann aber ein Gerät sein was sicherer ist, 0:28:31.280,0:28:33.400 also sprich Smartcard schlussendlich. 0:28:36.180,0:28:41.790 Frage 9: Ja ich hab da ein Problem, wenn die Tastatur an dieses Arduino angeschlossen wird 0:28:41.790,0:28:43.380 und das ist dann sozusagen da in der Mitte, 0:28:43.760,0:28:47.020 was ist wenn noch irgendwie eine kriminelle Energie - 0:28:47.020,0:28:49.970 man sagt ja wenn man physikalsichen Zugriff hat, zum Beispiel auf die Tastatur 0:28:49.970,0:28:52.850 und dann zwischen - im Prinzip - irgendwie in der Tastatur 0:28:52.850,0:28:56.770 aber zwischen Tastatur und Arduino wieder einen Logger zwischen setzt, 0:28:56.770,0:28:59.930 dass dann ja das Passwort wieder, das Masterpasswort 0:28:59.930,0:29:06.660 inklusive den anderen Teil dieses Passwortes abgegriffen weden kann. 0:29:07.310,0:29:08.960 Also so wohl wenn kriminelle Energie ist, 0:29:08.960,0:29:13.000 dann lässt man zwischen Arduino und Tastatur den Logger dazwischen. 0:29:13.460,0:29:19.260 Kenny: Ja man muss dazu sagen, Hintergrund ist hier nicht gegen Hardwarekeylogger zu arbeiten. 0:29:19.260,0:29:21.480 Einfach deswegen weil man die nicht ordentlich erkennen kann. 0:29:22.190,0:29:25.580 Du könntest es irgendwie auf irgend eine bestimmte Tastatur prägen 0:29:25.580,0:29:27.900 und könntest dann hoffen, dass du mit den Latenzen heraus findest, 0:29:27.900,0:29:29.560 dass wirklich die Tastatur angeschlossen ist. 0:29:32.430,0:29:35.180 Macht aber in dem Umfang keinen Sinn, 0:29:35.180,0:29:38.320 das ist dann, das geht dann viel zu tief rein, also... 0:29:40.160,0:29:42.700 eine Sache hier drann ist, es soll möglichst einfach sein. 0:29:42.850,0:29:46.570 Und ein Masterpasswort sich merken und dann irgend eine beliebige Information eingeben 0:29:46.570,0:29:48.300 die man sich gut merken oder herleiten kann, 0:29:48.870,0:29:51.120 ist noch im Rahmen der Dinge was normaler Nutzer tun kann. 0:29:51.450,0:29:54.970 Und dann plötzlich anzufangen irgendwelche speziellen Konfigurationen durchzuführen, 0:29:54.970,0:29:56.930 damit nur noch seine Tastatur erkannt wird, 0:29:57.690,0:29:58.950 läuft dem ganzen schon wieder zu wider. 0:29:59.530,0:30:02.430 Ganz abgesehen davon, es gibt ein Grund warum ihr... 0:30:02.810,0:30:05.150 das Passwort immer wieder eingegeben werden soll beim Start 0:30:05.150,0:30:08.530 nämlich, dass das Gerät selber nicht Angriffsziel wird. 0:30:08.530,0:30:11.020 Wenn es z.B. verloren gehen würde und da würde das Masterpasswort drinn stehen, 0:30:11.730,0:30:12.970 hätte man ein großes Problem. 0:30:14.100,0:30:16.180 Deswegen eben wirklich so, dass man es immer wieder eingibt. 0:30:18.080,0:30:19.910 Herald: Okay das war dann die letze Frage. 0:30:19.910,0:30:22.580 Herzlichen Dank nochmal, einen großen Applaus für Kenny 0:30:22.580,0:30:30.480 Applaus 0:30:30.480,0:30:33.140 Herald: Und wer sich die Technologie nochmal näher ankucken kann, 0:30:33.500,0:30:35.060 kann gerne hier nach vornen kommen, 0:30:35.060,0:30:37.130 wir haben noch ein paar Minuten zwischen den Talks, 0:30:37.130,0:30:38.700 da könnt ihr ihn gerne ausfragen. 0:30:38.960,0:30:39.810 Kenny: Danke 0:30:39.810,0:30:49.082 subtitles created by c3subtitles.de