-
Wunderbar. Äh ja...
-
Willkommen zu meinem Vortrag über calc.pw,
-
Passwortberechnung mit Arduino
-
Vielleicht kurz vorher: die Folien selber sind auf Englisch gehalten,
-
damit non-native speaker sich daran orientieren können.
-
Ich selbst werde aber trotzdem auf Deutsch vortragen.
-
Vielleicht kurz zu mir, mein Name ist Kenny,
-
und man kann mich erreichen per E-Mail, per Twitter, per Website
-
und noch so ein paar andere Sachen, die ich nicht aufgeschrieben habe.
-
Was ich heute erzählen werde,
-
ist zum einen das Problem, was ich lösen wollte,
-
dann meine Idee, wie ich dieses Problem lösen wollte,
-
dann, wie die Lösung derzeit aussieht,
-
wie die Lösung funktioniert,
-
und was so die Fallstricke waren, die ich versucht habe,
-
oder die mir begegnet sind, die ich lösen musste...
-
Ja, fangen wir mit dem Problem einfach mal an.
-
Viele von euch werden sicherlich das Internet benutzen,
-
mit keine Ahnung wievielen verschiedenen Diensten,
-
ihr werdet eigene Server haben, wo ihr euch per SSH einwählt,
-
ihr habt E-Mail-Accounts, wo ihr euch einloggen müsst usw.,
-
und wie ihr sicherlich wisst, sollte man für jeden Dienst
-
ein eigenenes Passwort verwenden.
-
Einfacher Grund:
-
wird ein so ein Dienst mal angegriffen und die Passwörter entwendet,
-
können diese Passwörter bei anderen Diensten ausprobiert werden,
-
und schon habt ihr einen viel größeren Angriffsvektor.
-
Deswegen: ein Passwort pro Dienst,
-
das ist so das, was man einsetzen sollte.
-
Das Problem ist, sich diese ganzen Passwörter zu merken.
-
Also bei mir sind es im Schnitt so zwischen 25 und 50 Passwörter,
-
die ich jede Woche verwende,
-
je nachdem, wieviele Dienste ich gerade benutze.
-
Weil man sich so viele starke Passwörter einfach nicht merken kann,
-
haben Leute angefangen, sich Passwort-Schemen auszudenken.
-
Zum Beispiel hat man ein starkes Passwort, das man vorne dranpackt,
-
und hinten dann den Namen vom Dienst.
-
Ist dann ein Problem, wenn ein Dienst z.B. Passwörter Plaintext abspeichert,
-
weil dann kann man sich einfach dieses Präfix-Passwort nehmen,
-
kann irgendeinen anderen Dienstnamen hinten dranschreiben
-
und kann damit wieder Passwörter ausprobieren.
-
Es gibt noch andere Möglichkeiten, Passwörter sich selber zu generieren,
-
indem man z.B. einen Satz benutzt, da die Leerzeichen rausnimmt,
-
noch ein paar Buchstaben durch Zahlen & Sonderzeichen ersetzt,
-
und dann hat man wieder ein Passwort.
-
Macht aber auch dann wieder Probleme, wenn man viele Dienste verwendet,
-
weil für jeden Dienst muss man sich einen Satz merken,
-
man muss sich merken, welchen Satz man für welchen Dienst benutzt hat,
-
welche Buchstaben man wann ersetzt hat, und so weiter.
-
Die andere Sache, die in den letzten Jahren sehr beliebt geworden ist,
-
sind Passwortdatenbanken.
-
Wenn man es sich mal genau überlegt,
-
das ist im Grunde eine Datei, da schreibt man seine Passwörter rein,
-
da schreibt man rein, auch noch, wie der Benutzername ist,
-
wie der Dienst heißt, vielleicht noch die URL vom Dienst,
-
verschlüsselt das ganze mit einem Passwort,
-
und hofft, dass niemals diese Datei abhanden kommt,
-
und dass niemals gleichzeitig das Passwort dazu abhanden kommt.
-
Benutzt man dann sehr gerne auf Windows z.B.,
-
wo Trojaner und Viren durchaus vorherrschend sind,
-
und wir müssen, wenn wir Passwort-Datenbanken benutzen,
-
hoffen, dass niemals ein Trojaner kommt, der genau darauf abzielt.
-
Ja.
-
Was ist jetzt so die Idee?
-
Die Idee hinter dem ganzen ist zum einen,
-
ich möchte die Passwortauswahl vereinfachen,
-
sprich, welches Passwort wird für welchen Dienst wann verwendet.
-
Ich möchte gleichzeitig das Problem lösen,
-
wie man sich diese ganzen Passwörter merken soll.
-
Es soll obendrein soweit wie möglich verhindert werden,
-
dass diese Passwörter verloren gehen,
-
z.B. durch einen Festplattencrash,
-
wo dann plötzlich die Passwort-Datenbank weg ist,
-
oder sie gestohlen werden, z.B. durch Trojaner.
-
Und das ganze soll Open Source sein,
-
einfach, damit jeder diese Technologie benutzen kann,
-
und nicht sich an irgenwelche teuren Firmen wenden muss,
-
um sowas in der Art haben zu können.
-
Die Frage ist jetzt natürlich, wie soll das ganze funktionieren?
-
so...
-
...meiner Meinung nach.
-
und zwar indem die pw kryptografisch berechnet werden
-
es gibt da mehrere Faktoren
-
das ist zum Beispiel das ist zum einen das Master-Passwort
-
was die Stärke des ganzen darstellen soll
-
einfach weil es schlussendlich eine Verschlüsselung ist
-
wir haben eine Service-Information für die einfache Merkbarkeit
-
das geht so in Richtung starkes Präfix und dann einfacs Service-Suffix
-
es sollen öffentlichen Algorithmen verwendet werden
-
einfach, damit man das ganze reproduzieren kann
-
wenn man also ein Gerät hat, was Passwörter berechnet,
-
und ein neues Gerät kauft, was die gleichen Algorithmen verwendet
-
soll schlussendlich die gleichen PW dabei heraus kommen
-
und das ganze soll dedizierte Hardware verwenden
-
einfach, damit wir nicht durch normale Trojaner und Viren angegriffen werden können
-
bei der Passwort-Berechnung.
-
So, wie sieht die Lösung aus?
-
Ich geh mal ein bisschen zurück, ins Jahre 2003 äh 2010
-
da hab ich ein Programm geschrieben
-
den Passwordcalculatur, der schon genau das gemacht hat
-
man hat ein Master-Passwort eingegeben
-
hat die Information eingegeben, hat auf berechnen geklickt
-
und hat schlussendlich sein Passwort rausgekriegt
-
hat funktioniert, funktioniert auch immer noch,
-
hat aber eine unschöne Eigenschaft, nämlich,
-
wo immer man sein Passwort braucht, muss man dieses Programm runterladen
-
an dem Rechner muss man entsprechend auch sein Masterpasswort eingeben
-
und ich habs mehrfach, also zweimal,
-
dass ich bei einem Freund war, hab da irgendwas an einem Server machen müssen,
-
hab das Programm runtergeladen, Passwort eingegeben,
-
und als ich dann fertig war mit meiner Arbeit, wurde mir dann gesagt:
-
"Du, mein Computer benimmt sich seit zwei Wochen ein bisschen merkwuerdig...
-
wenn du schonmal da bist, kannst du nichtmal kucken?"
-
Hmm. Schön. Erstmal alle Passwörter wechseln.
-
Genau das soll eben nicht mehr vorkommen.
-
Deswegen, calc.pw als wirklich Hardware-Anwendung
-
sieht ungefähr so aus, schön in einer Box
-
das ist noch die Revision "c",
-
es gibt mittlerweise eine Revision "d",
-
die ist noch nicht ganz fertig, wie man sieht
-
aber wird noch.
-
Wie man sieht, soll ein bisschen modularer werden, als es vorher gewesen ist
-
soll auch... eher in Richtung Produktion in... ja... Fabriken kommen
-
daran arbeite ich noch.
-
Was ist da schlussendlich drin?
-
In der Revision "d", also das ist ein verteiltes,
-
ist einmal ein Arduino Leonardo drin, als Output-Device,
-
das emuliert eine Tastatur gegenüber dem Computer
-
spricht das LCD an und spricht auch ein paar LEDs an
-
damit man so Status-Informationen kriegt,
-
dazu noch ein Ardiuino Uno, als Eingabegerät,
-
dort wird schlussendlich eine Tastaur angeschlossen
-
es kann auch optional noch ein Keypad angeschlossen werden,
-
daran arbeite ich gerade
-
und dieses Arduino Uno führt auch die Berechnung schlussendlich durch
-
und dann noch als 3. ein sogenanntes USB-Host-Shield
-
das ist das, was eigentlich dann den USB-Anschluss hat
-
was dann die Kommunikation mit dem USB-Gerät vornimmt
-
und hier schon mal eine Empfehlung:
-
dringend oder am besten das von circuits at home nehmen
-
das ist das ursprünglich shield, wo auch die Bibliothek für geschrieben wird
-
wo auch die Entwickler von dieser Bibliothek stark dahinter sind
-
das es gut funktioniert
-
So, wie funktioniert das ganze nun?
-
Ich habe da mal eine Schematik gemacht
-
im Grund, man hat seinen Computer, man hat seine Tastatur
-
und genau dazwischen sitzt calc.pw
-
ist so in der Art "man in the middle"
-
liest ein, was über die Tastatur eingegeben wird,
-
und gibt dann irgendwas an den Computer aus.
-
Genauer gesagt, beim hochfahren fragt es einmal nach dem Masterpasswort
-
was man dann nochmal wiederholt,
-
und dann geht es in einen sogenannten passthrough-Modus
-
heißt: die Eingaben, die dann über die Tastatur erfolgen,
-
werden eins zu eins an den Rechner weitergegeben
-
einfach damit man die Tastatur weiter benutzen kann, ganz normal
-
erst durch eine spezielle Tastenkombination kommt man dann
-
in den Passwort-berechnen-Modus
-
wo man seine information eingibt,
-
Enter drückt, das Passwort berechnet wird,
-
und das Passwort als normale Tastatureingaben
-
an den Rechner weitergegeben werden
-
sprich; der kriegt nichtmal mit, dass da jetzt nicht über eine Tastatur
-
ein Passwort eingegeben wurde sondern berechnet worden ist.
-
So.
-
Wie funktioniert die Berechnung?
-
Nicht aufregen, komme ich gleich noch zu
-
was zu erst gemacht wird,
-
es wird aus dem Master-Passwort und der eingegebenen Information
-
ein termporäres Passwort gebildet.
-
das ist einfach gegen Rainbow-Attacks,
-
dass sozusagen nicht vorher schon Passwörter vorberechnet werden können.
-
Als nächstes wird die Information genommen,
-
und die wird expandiert.
-
Wenn wir uns vorstellen, wir haben eine ganz kurze Dienstinformation, wie z.B. "ebay"
-
wir wollen nicht nur vier Zeichen kurze Passwörter generieren
-
das ganze wird also entsprechend expandiert,
-
wird verschlüsselt, noch ein bisschen sauber gemacht
-
dass man es auch wirklich als Passwort benutzen kann
-
und dass ist schlussendlich unser Passwort.
-
Wir wissen, dass da ist das eine Problem: SHA1
-
ist nicht mehr so ganz "state of the art"
-
und das andere, seit Snowden, das da [RC4] auch nicht mehr so "state of the art"
-
warum die noch eingesetzt werden, darauf komm ich später noch zu sprechen.
-
So, was waren denn so die Fallstricke?
-
im Grunde die vier hier als allererstes, und größtes
-
diese Tastaturen, die man dort anschließt
-
und selber ne tastatur darstellen,
-
ist ziemlich ekelhaft
-
das zweite ist, unser ram, den wir haben, unseren Arbeitsspeicher
-
ist bei so einem Arduino sehr beschränkt, bei so einem Arduino Leonardo sind es 2.5 kB
-
Unser Programmspeicher, wo sozusagen die Anwendung reingeladen wird auf das Arduino
-
ist auch relativ klein mit 28 kb
-
und das dritte, bzw das vierte, ist die...
-
ich habs "mobile technology gap" genannt
-
da komm ich gleich noch drauf zu sprechen, was ich damit meine
-
So. Die Tastaturen.
-
Jeder von euch hat sicherlich schonmal ein Betriebssystem eingerichtet
-
und da wurde dann gefragt:
-
ja, was für eine Tastatur hast du denn bei dir angeschlossen?
-
Dann darf man auswählen, dass man eine deutsche Tastatur hat, eine de-DE
-
oder eine de-CH oder was auch immer
-
wo schlussendlich definiert wird, wenn man auf eine Taste drückt,
-
was für ein Zeichen fällt hinten bei raus
-
ich hab mal die häufigsten, die man in Europa sieht, aufgeschrieben
-
gibt da dann zum Beispiel wie gesagt qwertz-de, qwertz aus der Schweiz
-
qwertz aus Dänemark, qwerty aus Großbritannien, qwerty aus den USA
-
azerty aus frankreich, azerty aus belgien,
-
dann noch mal schon gemixt zwischen Mac und Windows und so weiter und so fort.
-
wie gerade schon gesagt, unser Programmflash ist 28 kb groß
-
und so ein Layout was sozusagen diese Umwandlung macht
-
zwischen welche Taste zu welchem Zeichen
-
braucht ein bisschen an Bytes.
-
Zuviel, um alle möglichen abbilden zu können im Ardiuno selber.
-
Wir haben auch einen Datenflash, der ist 1 kb groß,
-
sozusagen Permamentspeicher, den man nochmal selber beschrieben kann,
-
der ist nur 1kb groß, da passt grad mal eins rein,
-
deswegen braucht man eine Lösung einfach, eines drauf flashen zu können,
-
und wenn man seine Tastatur auf einmal wechseln sollte,
-
- warum auch immer - einfach ein neues draufflashen zu können.
-
So. So sieht das ganze dann aus:
-
Das rechts ist sozusagen ein qwertz-de-Layout
-
schön encodiert einfach als Hex
-
und links sieht man dann wie das ganze aussieht
-
wenn es dann gerade gesfllasht wird.
-
So. Das zweite Problem ist der RAM.
-
Wie gesagt 2.5 kb bei so einem Arduino Leonardo ist nicht gerade viel
-
und was wir auch noch machen
-
wir machen ja auch noch String-Bearbeitung,
-
was nicht so schön ist.
-
Weil, wenn man sich vorstellt, so ein kleiner Speicher, man allkoiert zwei Blöcke,
-
deallokiert den ersten, und schon hat man ein Speicherloch
-
sprich, fragmentierten Speicher,
-
und wenn man das oft genug macht, dann ist der Ram voll,
-
und man kann keine neuen Blöcke allokieren,
-
und schon ist man in einer Deadlock Situation.
-
Was ich deswegen gemacht habe, ich habe einen eigenen kleinen Speichermanager geschrieben
-
dem man im Grunde übergibt, so viel Speicher sollst du verwalten
-
soviele Blöcke sind maximal nöglich
-
und sobald ein block deallokiert wird,
-
werden einfach alle blöcke dahinter nach vorne geschoben.
-
sodass man permanent eine Defragmentiertung des Speichers hat.
-
Funktioniert ziemlich gut.
-
Braucht auch nicht so lange.
-
Ja. So würde es ansonsten aussehen,
-
man hat überall kleine Miniblöcke,
-
die man nicht mehr ordentlich benutzen kann
-
und irgendwann ist der Speicher voll, wenn man neu allokieren will.
-
Doof.
-
So.
-
Mein größtes Problem ist eigentlich der Programmflash,
-
also sprich, wie groß kann die Anwendung sein.
-
Das Usb-Host-Shield, was ich verwende,
-
hat eine eigenen Bibliothek, wie gesagt,
-
die immer mehr Funktionen bekommt,
-
die entspchend aber auch immer größer wird,
-
und auch immer mehr Programflash weg frisst.
-
Wie auch schon gesagt, derzeit wird noch sha1 und rc4 benutzt,
-
einfach deswegen, es passt gut in den Ram rein,
-
und passt gut in den program flash rein
-
also relativ schmal zu implementieren.
-
Bessere Crypto braucht einfach mehr Platz,
-
das ist eins der Themen an denen ich derzeit arbeite.
-
Die andere Sache ist, auch neue Features brauchen mehr Platz.
-
Ein Feature, was ich mir z.B. noch vorstelle,
-
hab ich einfach mal type-through encryption genannt
-
sprich, wie damals bei der Enigma,
-
man hat sein calcpw, hat das in den Modus geschaltet,
-
und während man seinen Text eintippt, wird der Text verschlüsselt
-
und erst vershlüsselt an den Rechner übertagen
-
der angeschlossen ist.
-
So kann man z.B. dann in Internetcafés oder sowas
-
vertrauliche Infromationen schreiben
-
könnte sie auf, ja was auch immer, Pastebin oder sowas ablegen
-
und derjenige, der es lesen soll, kann es dann entschlüsseln.
-
So.
-
Die Lösung, die ich jetzt gemacht habe, bei Revision "d"
-
ist einfach ein zweites Arduino dazuzu nehmen,
-
genauer gesagt ein Arduino Uno.
-
Vorteil am Arduino Uno:
-
Die Bauteile für den Kern des ganzen kosten gerade mal 5€
-
und die kann man selber zusammenlöten
-
so sieht das übrigens aus, wenn ein sogenannter Sketch zu groß wird,
-
man kriegt einfach nur die Meldung "zu groß"
-
kannste ja mal da kucken, wie du das vielleicht kleiner kriegst,
-
ist poblematisch wenn eben der Code gebraucht wird,
-
weil die Funktion ansonsten nicht funktioniert.
-
Und das letzte, mobile technology gap:
-
wir werden immer mobiler, wir haben unsere Laptops dabei,
-
wo wir keine Tastatur unbedingt mitschleppen wollen,
-
mit noch einem Extragerät, was wir anschließen,
-
wir haben unsere Tablets, wo wir keine Usb-Tastaturen anschließen können,
-
wir haben unsere Smartphones, wo wir keine Usb-Tastaturen anschließen können,
-
ist etwas umständlich.
-
So, und deswegen zwei Sachen, an denen ich derzeit arbeite,
-
ist zum einen die calcpw-Funktionalität
-
in eine Tastatur zu integrieren
-
und die andere ist, dass calcpw nicht mehr nur über Usb funktioniert
-
sondern auch über Bluetooth angeschlossen werden kann.
-
Bluetooth haben wir Glück, funktioniert inzwischen mit Android realtiv gut,
-
funktioniert auch mit iOS relativ gut,
-
wo wir also Smartphones und Tablets abdecken können.
-
Wenn man sozusagen eine Tastatur hätte, wo die Funktion drin ist,
-
diese Tastatur funktioniert per Bluetooth,
-
würde einige Probleme zumindest lösen können.
-
So sieht ein Test aus, den ich derzeit gemacht habe,
-
das ist ein einfaches Numpad, wie man früher hatte,
-
wenn man dreimal auf die 2 drückt, kommt ein C raus
-
die ganzen Sachen eingeben kann,
-
funktioniert erstmal,
-
das ist eine andere Sache, an der ich gearbeitet habe
-
das da unten ist eine Tastaturmatrix,
-
die ich aus einer normalen Kauftastatur rausgeholt habe,
-
besteht im Grunde aus drei Schichten,
-
eine untere leitenden Schicht, eine obere leitende Schicht
-
und eine Trennschicht
-
und jedesmal wenn man eine Taste drückt, wird die Oberschicht
-
durch die Trennschicht auf die Unterschicht gedrückt
-
und man kann herausfinden durch einfaches durchschalten
-
welche Taste gerade gedrückt wurde
-
und genau das ist was ich vorhabe.
-
Sozusagen mich selber zwischen diese Matrix
-
und den eigentlichen Controller der Tastatur zu bringen
-
um dann den Controller zu benutzen als Output
-
und die Matrix zu verwenden als Input.
-
Man sieht, ist gar nicht so einfach,
-
weil diese Matrix ist schlussendlich ein bisschen Plastik
-
wo ein bisschen Silber aufgedampft ist,
-
da dran löten funktioniert nicht.
-
Mein derzeitiger Versuch ist, mit sogenanntem Leitfaden
-
in die einzelnen Auflagekontakte von dieser Matrix zu stechen,
-
dort einen Knoten zu machen, das ganze mit Nagellack zu fixieren
-
und dann zu versuchen, das ganze an den Microcontroller anzuschließen
-
Applaus
-
Aber falls jemand eine Ahnung hat, wie man solche Auflagekontakte herstellen kann,
-
wär das natürlich sehr hilfreich das würde nicht so viel frickeln sein.
-
Ja.
-
Gut, ich hab noch mehr als genug Zeit,
-
aber trotzdem kann ich euch schonmal sagen,
-
wenn ihr weitere Informationen haben wollt,
-
könnt ihr einfach auf http://calc.pw gehen
-
die Slides selber findet ihr auf http://calc.pw/30c3
-
und da ich noch Zeit habe, kann ich ja noch ein bisschen weiter gehen.
-
Eine Frage, die sich sicherlich stellen wird, ist
-
wenn man jetzt so ein Ding hat, was Passwörter berechnet,
-
wie kann man z.B. denn bestimmen, wie lang diese Passwörter sein sollen
-
oder welche Sonderzeichen verwendet werden?
-
Das wird bei calcpw derzeit inline gemacht,
-
sprich man hat seine Information und kann hinten drann noch ein paar Sachen hinzuschreiben
-
die die Passwörtberechnung beeinflussen
-
das ist zum einen das Fragezeichen gefolgt von einem Integer bis 50
-
wo man angibt wie lange das Passwort sein soll, das generiert wird
-
50 einfach deswegen weil wir wenig RAM haben
-
und ewiglange Passwörter generieren und im Ram halten ist schwierig
-
dann gibt es noch das Ausrufezeichen
-
wo man angeben kann welche Sonderzeichen verwendet werden dürfen,
-
aus meiner Erfahrung mit dem Passwortcalculator Pass Calc also dieser Windows Software
-
kann ich sagen, dass in 99,9% braucht man keine Sonderzeichen in Passwörtern
-
deswegen eher so, dass man ihm wirklich sagt ok Ausrufezeichen welche Sonderzeichen sind erlaubt
-
die kann man auch wild durcheinander mixen also egal in welcher Reihnefolge man sie angibt
-
man muss halt immer wieder alle angeben.
-
So. Dann gibt es noch ein großes Problem, was Passwortformulare häufig wollen oder manchmal wollen,
-
dass man mindestens das eingibt und mindestens das eingibt und mindestens das eingibt
-
dafür gibt es noch die Route die man vorne ran schreiben kann, die macht einfach einen Check:
-
Ok, ist mindestenes ein Buchstabe enthalten ist mindestens eine Zahl enthalten?
-
wenn man das Ausrufezeichen benutzt ist sowieso immer mindestens ein Sonderzeichen enthalten.
-
Und so kann man auch solche Checks einbauen, dass ein Passwort irgendwelche Anforderungen erfüllt.
-
So sehen dann Informationen aus die man eingeben kann "SomeINFO".
-
"SomeINFO?25" wäre entsprechend Passwort 25 Zeichen lang,
-
"SomeINFO" mit plus minus mal geteilt - eines davon wird genommen -
-
dann eben "SomeINFO" 8 Zeichen langes Passwort als Default
-
und da muss dann mindestens eine Zahl und ein Buchstabe drinn sein.
-
Das ganze dann nochmal kombiniert und das ganze dann nochmal kombiniert.
-
Ja, eine Folie hatte ich noch.
-
Ja genau.
-
So sieht der Ablauf aus wenn man das ganze verwendet,
-
wie gesagt wenn es hoch fährt wird man einmal nach dem Passwort gefragt,
-
das ganze soll man nochmal eingeben falls man sich vertippt hat, das man das mitkriegt
-
und kommt dann eben in diesen pass-through-Modus wo die Daten einfach durchgereicht werden
-
und wenn man den Passwortmodus wechselt gibt man die Information ein und drückt dann Enter
-
Passwort wird berechnet und man kommt zurück in den pass-through Modus.
-
Ja. Damit ist auch mein Backup zu Ende.
-
Danke.
-
Applaus
-
Herald Engel: Ja vielen Dank für diesen hervorragenden Talk
-
ich denke er ist sehr interessant und vielleicht haben wir ja auch ein paar interessante Ideen
-
wie man das zum Beispiel erweitern könnte.
-
Und damit sind dann die Fragen eröffnet.
-
Ich bitte euch einfach an den Mikrofonen aufzustellen, an eins und zwei... vor allem.
-
Frage 1: Mich interessiert, du sagt wenn du die reine Software verwendest
-
und der Rechner ist kompromittiert, dann hast du hinterher ein Problem und kannst alle Passwörter ändern
-
aber wenn der Rechner so kompromittiert ist, kann ja immer noch passieren,
-
musst du nicht alle verwenden, man kommt auch nicht an dein Master Passwort ran,
-
aber die expliziten Passwörter die du da verwendet hast sind auch tot.
-
Kenny: Ja die sind schlussendlich tot wenn man dem Gerät nicht vertrauen kann, richtig.
-
Ist eben der primäre Vorteil deswegen auch in dem Algorithmus entsprechend ...
-
Ich wurde ein paar mal gefragt warum ich einfach nur hashe oder nur verschlüssele:
-
Einfacher Hintergrund: Wir wollen dieses Master Passwort schützen,
-
und dadurch das beides eingesetzt wird haben wir zwei Ebenen von Schutz drin,
-
wenn sozusagen ein Passwort kompromittiert wird müssen wir nicht nur durch den Hash-Algorithmus durchbrechen können,
-
sondern wir müssen auch durch die Verschlüsselung durchbrechen können.
-
Das ist das gleiche wie wenn wir Firewalls aufbauen,
-
da sollte man immer zwei nehmen und zwar von verschiedenen Herstellern.
-
Ist hier genau das gleiche.
-
Ja, wenn dieses eine Passwort auf einem Rechner verwendet wird der komprommitiert ist,
-
ist dieses Passwort verbrannt, weil es wird schlussendlich unverschlüsselt an den Rechner geschickt.
-
Hauptziel hier ist es, das aufgrund eines Passwortes oder aufgrund von n Passwörtern,
-
die abgelesen werden, nicht auf das Master-Passwort zurückgeführt werden kann.
-
Das ist hier einer der Hauptgründe.
-
Deswegen Hardware und deswegen auch die Wahl des Algorithmus.
-
Frage 2: Was machst denn du wenn dann eines deiner Passwörter bekannt geworden ist?
-
Also dein ebay-Passwort, deine Info ebay ist genommen.
-
Musst du dann künftig "ebay2" eintippen damit du die nächste Info hast, oder?
-
Kenny: Ja, leider.
-
Es gibt möglicherweise verschiedene Möglichkeiten,
-
man kann z.B. anstatt "ebay" "ebay.com" nehmen.
-
Frage 2: Jaja okay, aber du musst dir wieder ein neues ausdenken.
-
Kenny: Ja, schlussendlich muss man sich eine neue Information ausdenken, das ist richtig.
-
Man hat aber immer noch den Vorteil, das nicht plötzlich sämtliche Passwörter ändern muss.
-
Frage 2: Ok, und dann habe ich noch eine Frage:
-
In diesem pass-through Modus, gibt es da irgendwie eine spürbare Latenz von der Tastatur
-
oder verlierst du irgendwelche Features?
-
Kenny: In dem pass-through Modus habe ich noch keine Latenz mitbekommen.
-
Man muss dazu sagen ich bin nur Entwickler und schreibe Texte, ich bin kein Gamer,
-
man sollte also nicht unbedingt als Gamer da seine Gaming-Tastatur anschließen.
-
Herald: Okay, wenn es keine Fragen mehr gibt hätte...
-
Kenny: Doch ich glaube noch da, zwei.
-
Herald: ... hätte ich sonst eine gehabt.
-
Frage 3: Ja ich hätte da noch eine Frage und zwar:
-
wie genau sieht das dann aus, weil das lädt ja eher dazu ein,
-
dass man eher schwache Passwörter verwendet
-
wie gerade geschrieben "ebay" einfach nur.
-
Wenn dann jemand Zugriff auf das Gerät hat,
-
das er dann ganz einfach an viele Accounts ran kommen kann?
-
Kenny: Nicht unbedingt... lacht
-
Schlussendlich, auch wieder hier aufgrund des Algorithmus, wir versuchen sowas wie...
-
also, es wird versucht sowas wie Rainbowtables zu verhindern
-
in dem eben du damit du überhaupt die Verschlüsselung im zweiten Schritt machen zu können
-
du jedes Master Passwort nehmen musst
-
und dort jede Information nehmen musst, die du durchprobieren willst.
-
Das generieren deiner Rainbowtable dauert schlussendlich länger,
-
und auch dann ist deine Rainbow table größer, weil du
-
kannst ja nicht nur davon ausgehen das jemand "ebay" benutzt,
-
du kannst auch "ebay.com" nehmen, du kannst "ebay.de" nehmen,
-
du kannst was auch immer
-
irgendwie deinen Usernamen nehmen,
-
es wird dadurch divergierter.
-
Frage 3: Ja okay.
-
Frage 4: Ich habe eine Frage zum Passwortwechsel:
-
Die meisten Passwörter haben ein Ablaufdatum, beispielsweise 90 Tage,
-
und du musst danach dein Passwort ändern.
-
Wie hast du das gelöst?
-
Kenny: Nun, die Frage ist, wie haben wir Passwort-Pläne umgesetzt?
-
Normalerweise hast du ein Zeichen oder eine Zahl, die du einfach erhöhst
-
oder du fügst einfach etwas wie "q1" für das erste Quartal hinzu.
-
Das ist hier genau so, du kannst beispielsweise an "ebay" einfach Leerzeichen "q12014" anhängen,
-
dann hast du dein Passwort für das jeweilige Quartal des Jahres.
-
Frage 4: Okay, Danke.
-
Kenny: Ok
-
Herald: Weitere Fragen?
-
Gibt es vielleicht etwas aus dem Internet? Wo ist denn überhaupt der Signal-Engel? Ja?
-
Frage 5: Ich habe eine Frage,
-
ich habe mich gefragt, wie du - ich weiß nicht - vielleicht sollte ich weiter Englisch spechen?
-
Ich habe mich gefragt, wie du dieses System verwenden kannst,
-
um irgendwie Keylogger daran zu hindern,
-
das, was du schreibst, mitzuschneiden?
-
Kenny: Oh gut, soll ich auf Englisch anfworten? lacht
-
Du musst zwischen Hardware- und Software-Keyloggern unterscheiden. Letztere laufen auf deinem Computer,
-
was du nicht verhindern kannst.
-
Aber wenn du so eine Hardware benutzt,
-
und die hat eine LED oder ein LCD, und du musst diese wegen der dort angezeigten Information ansehen,
-
dann kannst du sehen, wo dein USB-Kabel entlang geht,
-
und somit sehen, ob ein anderes Stück Hardware angesteckt wurde.
-
Frage 5: Ja, ok.
-
Herald: Nächste Frage?
-
Frage 6: Ich bin wirklich nicht sicher, ob ich auf Englisch fragen sollte, ich werds einfach machen...
-
Herald: Wir könnten auch auf D...
-
Kenny: Wir können auch auf Deutsch!
-
Frage 6: lacht Dann machen wir auf Deutsch.
-
Eine kleine Frage zu dem ganze Konzept von diesem sozusagen Zwischenschalten
-
eines neuen Gerätes zwischen sozusagen Keyboard und dem tatsächlichen Computer,
-
ich bin jetzt nicht wirklich technik-affin und würde einfach fragen, ob du
-
darin sozusagen die Zukunft der persönlichen Sicherheit für Computer oder Passwörter allgemein siehst?
-
Kenny: Ich sehe die Zukunft von Logins definitiv in zusätzlicher Hardware, ja,
-
wir haben es ja schon mit verschiedenen Tokens, wir haben RSA Tokens,
-
wir haben irgend welche anderen Tokens
-
die du dir von Google zuschicken kannst - whatever
-
ich denke schon, dass es in diese Richtung gehen wird, ja.
-
Frage 7: Denkst du auch über sowas wie "challenge response" nach?
-
Also letzendlich hast du ja das Problem
-
wenn du das Passwort einmal über den Computer geschickt hast,
-
mag es abgegriffen worden sein,
-
aber wenn du z.B. einen challenge response system einführen würdest,
-
also sprich der Computer schickt etwas an dein Device, USB geht in beide Richtungen,
-
rechnen rechnen, zurück.
-
Kenny: Dir geht es also darum, dass du etwas vom Computer über USB an das Gerät schickst
-
das irgendwas macht und es dir wieder zurück schickt?
-
War so schon implementiert, nannte sich Revision "A", nicht ohne Grund.
-
Denn hier hat man dann genau das Problem,
-
das man das ganze schon an den Rechner eintippt,
-
der entsprechend angreifbar ist,
-
und dann kann man auch gleich ein Stück Software nehmen.
-
Weil man schlussendlich, man gibt es am Rechner ein,
-
der ist kompromittiert, kann das Master-Passwort auslesen,
-
schickt das ganze dann an ein Gerät was offene Algorithmen verwendet,
-
berechnet irgendwas, was man auch selber dann berechnen kann,
-
denn es sind ja offene Algorithmen, schickt das ganze dann wieder zurück.
-
Also schlussendlich hast du dann höchstens einen Prozessor der dir das ganze abnimmt
-
der vielleicht optimiert sein könnte.
-
Aber der Angriffsvektor von der normalen Software ist wieder da.
-
Frage 7: Ich dachte mehr so an z.B. einen SSH-Login über private Keys
-
die dann halt nicht auf dem Rechner gespeichert sind sondern halt nur auf deiner Device
-
und das heißt die Informationen die nötig sind um das zu brechen
-
sind überhaupt nie auf deinem Rechner.
-
Kenny: Ich weiß nicht ob es in die gleiche Richtung geht,
-
ich bin derzeit dabei ein Paper zu schreiben über das ganze
-
wo es darum geht Smartcards zu verwenden
-
um dort die Informationen darauf zu speichern.
-
Ich weiß nicht ob es so ein bisschen in die Richtung geht.
-
Man würde eben das ganze nicht über den Computer
-
oder über das Betriebssystem hinschicken lassen,
-
sondern man würde die Information auslagern auf nochmal ein separates Gerät
-
was man entsprechend auch blacklisten kann - und weiß der Teufel.
-
Publikum (leise, unverständlich): Es gibt ja auch einen Crypto-Stick, z.B. der sowas wieder macht.
-
Kenny: Bitte?
-
Herald: Die F...
-
Publikum (leise, unverständlich): Crypto-Stick!
-
Herald: Es gäbe einen Crypto-Stick der so etwas auch macht?
-
Kenny: Der ist mir nicht bekannt.
-
Publikum (leise, unverständlich): Der war unvollständig.
-
Kenny: Ach so.
-
Herald: Okay, Micro zwei.
-
Frage 8: Die Frage ist, kann man auch irgendwie das Masterpasswort
-
irgendwie auf eine Smartcard oder etwas anderes mit zusätzlicher Hardware auslagern,
-
die du quasi mitnehmen kannst und vom Gerät trennen kannst.
-
Also und so des, weil das Masterpasswort - wenn man sich dann noch ein, wenn man, weiß nicht,
-
man neigt dazu, wenn man das Masterpasswort ständig eingeben muss,
-
das auch wieder zu verkürzen und sich einfacher merkbar zu machen,
-
das irgendwie besser zu merken auf dem Gerät und...
-
Kenny: Hatte ich ja gerade schon kurz angesprochen,
-
in dem Paper das ich gerade schreibe zeige ich genau sowas auf,
-
zwar eher für Firmen, dass die damit die Passwortverwaltung ihrer Mitarbeiter verbessern könnnen,
-
aber schlussendlich ja, es macht Sinn das ganze auf ein Gerät zu speichern,
-
es sollte dann aber ein Gerät sein was sicherer ist,
-
also sprich Smartcard schlussendlich.
-
Frage 9: Ja ich hab da ein Problem, wenn die Tastatur an dieses Arduino angeschlossen wird
-
und das ist dann sozusagen da in der Mitte,
-
was ist wenn noch irgendwie eine kriminelle Energie -
-
man sagt ja wenn man physikalsichen Zugriff hat, zum Beispiel auf die Tastatur
-
und dann zwischen - im Prinzip - irgendwie in der Tastatur
-
aber zwischen Tastatur und Arduino wieder einen Logger zwischen setzt,
-
dass dann ja das Passwort wieder, das Masterpasswort
-
inklusive den anderen Teil dieses Passwortes abgegriffen weden kann.
-
Also so wohl wenn kriminelle Energie ist,
-
dann lässt man zwischen Arduino und Tastatur den Logger dazwischen.
-
Kenny: Ja man muss dazu sagen, Hintergrund ist hier nicht gegen Hardwarekeylogger zu arbeiten.
-
Einfach deswegen weil man die nicht ordentlich erkennen kann.
-
Du könntest es irgendwie auf irgend eine bestimmte Tastatur prägen
-
und könntest dann hoffen, dass du mit den Latenzen heraus findest,
-
dass wirklich die Tastatur angeschlossen ist.
-
Macht aber in dem Umfang keinen Sinn,
-
das ist dann, das geht dann viel zu tief rein, also...
-
eine Sache hier drann ist, es soll möglichst einfach sein.
-
Und ein Masterpasswort sich merken und dann irgend eine beliebige Information eingeben
-
die man sich gut merken oder herleiten kann,
-
ist noch im Rahmen der Dinge was normaler Nutzer tun kann.
-
Und dann plötzlich anzufangen irgendwelche speziellen Konfigurationen durchzuführen,
-
damit nur noch seine Tastatur erkannt wird,
-
läuft dem ganzen schon wieder zu wider.
-
Ganz abgesehen davon, es gibt ein Grund warum ihr...
-
das Passwort immer wieder eingegeben werden soll beim Start
-
nämlich, dass das Gerät selber nicht Angriffsziel wird.
-
Wenn es z.B. verloren gehen würde und da würde das Masterpasswort drinn stehen,
-
hätte man ein großes Problem.
-
Deswegen eben wirklich so, dass man es immer wieder eingibt.
-
Herald: Okay das war dann die letze Frage.
-
Herzlichen Dank nochmal, einen großen Applaus für Kenny
-
Applaus
-
Herald: Und wer sich die Technologie nochmal näher ankucken kann,
-
kann gerne hier nach vornen kommen,
-
wir haben noch ein paar Minuten zwischen den Talks,
-
da könnt ihr ihn gerne ausfragen.
-
Kenny: Danke
-
subtitles created by c3subtitles.de
Sebi
Time gerade am Desktop mit aegisub. Mach ich heut abend fertig.