 Er ist ein Kryptologe und Sicherheitsanalytiker oder Analyst und er erzählt über Wallet Security. Ich bin selber eindruckt. Hallo? Können mich alle hören? Okay. Ich bin Stefan und ich werde über Wallet Security, also Wallet Sicherheit reden. Zudem ist etwas Hintergrund, worüber ich arbeite. Ich bin ein Diplominformatiker, der Vordäufer des Masters. Ich arbeite als Sicherheitsberater in der Schweiz. Ich habe Forschung gemacht über Bitcoin und Blockchains, über Nullwissenbeweise und Zero-Coin, ein Vorvorgänger von Ccash, von dem ihr vielleicht gehört habt. Ich habe über EECDSA geforscht im Kontext von Bitcoin. Das ist auch ein Thema dieses Talks. Einige Monate habe ich auch gearbeitet an meinem eigenen Blockchain-Projekt. Das ist allerdings gescheitert. Später habe ich als Consultant gearbeitet für ein anderes Blockchain-Projekt, das letzten Monat veröffentlicht wurde. Ich habe auch Wallet Securities beurteilt für viele Leute, die ihre eigenen Wallets besuchen wollten, also Projekte und eine Review haben wollten. Dieser Talk hat fünf Punkte. Zunächst einmal einen kurzen Rückschau auf Bitcoin und EECDSA, damit wir die Grundlagen haben, um das zu verstehen. Dann reden wir über Wallets. Was ist ein Wallet? Dann schauen wir uns übliche Angriffe an, die in den letzten Jahren gefunden wurden und dann über einen besser ausgearbeiteten kleptografischen Attacken und dann haben wir noch Schlussfolgerungen. Also, ich denke, ja, alle haben zwischendurch über Bitcoin gehört. Und bei diesem Talk werde ich über Bitcoin reden. Aber es geht im Grunde über jede Kryptowährung. Ich werde einfach Bitcoin als Beispiel verwenden, dass wir bestimmte Parameter festsetzen können. Also, Bitcoin ist, was wir wissen müssen, ist ein öffentliches Seatsblockbuch, ein Lockbuch, wo also Leute mit öffentlich privaten Schlüsseln zu kaufen können. Die Transaktionen sind privaten Schlüsseln signiert und werden dann auf der Blockchain veröffentlicht. Das arbeitet so, wir haben Alice, Bob und Carol und Alice möchte eine Bob an Carol schicken. Dann erzeugt Alice eine Transaktionsnachricht und verbreitet diese. Dann die Miners sammeln diese Nachricht und beschreiben sie auf die Blockchain, Bob, wartet, bis die Transaktion in der Blockchain veröffentlicht ist. Die, das Erzeugen der Transaktion besteht aus den folgenden Schritten. Alice sucht zunächst mal aus, was sie übertragen möchte. Eine Münze, dann schreibt sie eine Transaktion, die Bob's Adresse enthält und unterschreibt dies mit ihrem privaten Schlüssel. Und was für uns wichtig ist, das sind wesentlichen zwei Dinge. Es gibt öffentlich und private Schlüssel, die für Unterschriften hier benutzt werden. Alle Unterschriften sind dann, allkriptografische Unterschriften sind in der Blockchain publiziert. Der Unterschrift zur Signatur ergeriert muss, der in der Blockchain unter den meisten anderen benutzt wird, ist ICDSA. Die meisten von euch haben davon wahrscheinlich gehört. Aber kurz noch eine Rückschau darauf, was ist das und wie es funktioniert? Die Abgürzung steht für elliptische Kurven, elliptische Kurven, digitalen Unterschriften oder digitalen Natur-Algorithmus als eine Erweiterung von Verwandten-Algorithmen. Und ich glaube, wir alle haben über den Diffy-Hermann-Schlüssel Austausch gehört, was ungefähr das erste öffentlich-private Schlüssel Verfahren war. Das ist basiert auf dem diskrepium-Lagorithmus Modulo P. Dann hat Herr Elgamel, der auch FSSL erfunden, hat die Elgamel Signatur und erfunden Herr Schnorr, Professor Schnorr aus Frankfurt, hat die Signatur effizienter gemacht und die amerikanische Regierung hat den Schnorr-Algorithmus genommen und daraus den digitalen Signatur-Algorithmus DSA gemacht, der eine standardisierte Version des Schnorr-Algorithmus ist. Und dort wird auch standardisiert, dass SHA, oder SHA als Haschfunktion benutzt wird. ICDSA ist derselbe Algorithmus wie DSA, aber aufgebaut auf elliptischen Kurven anstelle von diskretenen Algorithmen. Was ist also eine elliptische Kurve? Und warum benutzen wir überhaupt zunächst elliptische Kurven? Das Problem mit dem alten Algorithmus, den Algorithmen wie RSA und DHA, Diffy-Hermann, aber auch DSA, was damit verwandt ist, ist, leider haben sie Algorithmen keine Zukunft, denn die Schlüsse sind ziemlich groß, der Algorithmus wird dann ziemlich ineffizient und wenn wir die Schlüsselgröße vergrößern, bekommen wir erstens nicht sehr viel mehr Sicherheit. Wenn wir 2048-Bit-RSA Schlüssel haben und 4096-Bit-RSA Schlüssel, dann haben wir nicht die doppelte Sicherheit, sondern nur ein wenig mehr Sicherheit. Also wir würden wirklich sehr gerne die doppeltgroße Sicherheit haben für RSA oder Diffy-Hermann, müssen wir dann 15.000-Bits einsetzen und das ist natürlich sehr ineffizient. Also elliptische Kurven sind eine Lösung, die jetzt viel genutzt wird für so etwas, um mehr Effizienz zu erreichen. Was ist also eine elliptische Kurve? Das sind Kurven, die über eine Gleichung definiert sind mit Y² ist gleich X hoch 3 plus AX plus B und die Elemente, über die wir hier reden im Algorithmus, sind Punkte auf dieser Kurve, so dass wir können eine Kurve hier im Diagramm als Beispiel sehen und diese Kurve hat die Eigenschaft, dass, wenn man eine gerade Linie zeichnet, die diese Kurve schneidet, dann schneidet sie diese Kurve nur maximal 3-mal und basierend darauf, definieren wir eine Operation, zum Beispiel eine Verknüpfung, zum Beispiel wir können Punkte dividieren durcheinander, sozusagen, die Punkte P und Q, die wir hier sehen, wir können eine Addition definieren. Wir können sagen, P und Q und R, die jetzt sind neutral zusammengenommen, weil sie auf einer gerade Linie liegen, so dass wir also sagen P plus Q ist minus R, minus R ist dann das Gegenstück zu R auf der gegenüberliegenden Seite und was wir hier auf der anderen Seite sehen, ist, dass wir versuchen, einen Punkt zu sich selbst zu addieren und dazu tragen wir die Tangente zu diesem Punkt auf an der Kurve, diese Tangente wird den Punkt an die Kurve an einem anderen Punkt schneiden und das Inverse, der Inverse Punkt dazu, ist dann das Ergebnis. Wenn wir also Q, Q mit sich selbst zu sich selbst hinzuzählen wollen, dann haben wir als Ergebnis minus P und damit haben wir eine Methode, um Punkte zu sich selbst zu addieren und dies können wir hochskalieren. Wir können also Q, Q zu sich selbst addieren und noch einmal, dann haben wir also 3 oder 4 Mal Q und diese Operation, diese Verknüpfung hat schöner Eigenschaften, denn die Multiplikation eines Punktes mit einer Zahl ist einfach, aber die Inverse-Operation ist sehr schwer zu überrechnen, dies ist also die Operation, auf der der ganze Algorithmus dann basiert. Wie werden Signaturen mit ICDSA generiert? Wir haben zunächst einen Punkt G, ein fixierter Punkt, der mit Bitcoin zum Beispiel schon definiert ist, als ein bestimmter Punkt, dieser Punkt hat den Grad N, was heißt, dass wenn er N mal mit sich selbst addiert wird, es auf den selben Punkt zurückführt. Wir haben auch eine Haschfunktion H, Schar 256 im Fall von Bitcoin und wir haben einen privaten Schlüssel D, eine Zahl, also alle kleinen Bestaben hier sind Zahlen, wir haben auch einen Öffnungsschüssel, das ist der Punkt Q, den man erhält, wenn man G mit der Zahl D multipliziert. Um also eine Signatur zu generieren, müssen wir eine Zufallszahl und aussuchen K, diese Zahl ist ja auch in Rot hervorgehoben, wir werden später sehen, dass die roten Zahlen geheim gehalten werden müssen, wir berechnen einen Punkt A durch Multiplikation des Generator-Punktes G mit K, also kommt das dann R, Entschuldigung, und so bekommen wir eine Zahl R und berechnen dann die Formel in der vierten Zeile, es ist nicht sehr wichtig zu verstehen, wie das genau funktioniert, aber wir müssen sehen, welche Werte hier geheim und welche veröffentlicht werden können und dann geben wir R und S zurück und dann die Signatur für ein Algorithmus und um dies zu prüfen, müssen wir die folgende Formel ausrechnen, wieder ist es nicht wichtig, nicht wichtig direkt zu sehen, dass das funktioniert, aber ihr seht, wie das definiert ist. Das Wichtig ist, ist, dass für die Überprüfung nicht das Geheimnis K bekannt sein muss und man muss auch nicht den privaten Schlüssel wissen, natürlich nicht, aber der öffentliche Schlüssel wird hier eingesetzt, Q. Dieses Algorithmus hat also eine Eigenschaft, die vor allem mit dem ersten Papier über diesen Algorithmus veröffentlicht wurde. Die Zufallzahl K muss geheim gehalten werden, denn wenn sie bekannt würde, dann kann man die Parameter benutzen in der Signatur, um den privaten Schlüssel auszurechnen, also die Zufallzahl K zu stehlen in einer Sektur ist also gleich bedeutend mit dem Stielen des privaten Schlüssel. Es ist bekannt und es wird später wichtig werden. Jetzt reden wir darüber, was ein Wallet ist. In Bitcoin hat man ein Privat-Key und ein Publik-Key und ein Privat-Key. Es ist nötig, Bitcoin zu spenden. Wenn jemand die Privat-Key auszieht, kann er sein Bitcoin zu spenden. Die Software, die man benutzt, um die Privat-Key zu manageen, ist die Wallets. Es gibt verschiedene Types von Wallets, die man distingriert. Die einfachste Art ist die Software-Wallets. Man hat eine Software, die die Key zu generieren und die Key zu stehlen in einem Fial, das mit dem Passwort betätigt. Die Software-Wallet ist leicht zu benutzen. Es kann ein Desktop, ein Laptop, ein Phone, ein Server sein. Wenn man in einem Online-Shop ist, ist es flexibel. Man kann es modifizieren, man kann es modifizieren. Aber es gibt die Probleme, dass die Key auf der Maschine sind, wo viele Dinge arbeiten. Wenn man mal die Maschine auf der Maschine hat, kann es stehlen. Die Hardware-Wallets. Gestern war es ein weiter Talk about Hardware-Wallets. Hardware-Wallets sind dedicated Devices, USB-Devices oder Off-Dial-Laptop, die man mit der Key zu managen kann. Der Vorteil ist, dass man keine Key auf einem Host hat, wo ein Malware z.B. die Key zu stehlen kann. Man hat sie auf einem separate Device. Ein Problem mit Hardware-Wallets ist, wenn man nur zwei Buttons hat, muss man sich sicher�, dass man das, was du denkst, bezeichnet. Man hat dann zwei Buttons, wo man das signaliert, was man gar nicht weiß, was man signaliert, wo man die Transaktion zeigt, dass sie bezeichnet. Das ist ein Problem. Es ist ein dritter Wallet, den man mit der Key auf der Maschine printen kann. Man hat dann nicht den Pferd und kann den Smartphone auch die ID인을 erenden. Man kann das kräftig begrüßen und das Smartphone annehmen und das Smartphone zu ledigen. Man kann das kräftig begrüßen und das Smartphone annehmen. Man kann das kräftig begrüßen und das Smartphone annehmen. Man hasst erstmal einen Smartphone, der sichdienst. Man kann das kräftig begrüßen, dass man mit einem Smartphone z.B. z.B. die iPhone, also das kleine Chip, das man mit den Keyboarden verwendet. Etwa das iPhone, das hat einen Chip, der nur der Vergleich ist, um die Keys zu managen. Also, das heißt Hardware Keys Deutsch. So, du kannst ein Chip, das die Keys generiert, oder deine Import Keys. Also, ein Chip, wo du diese Schlüssel exportieren kannst. Das Chip darf nicht allow, dass du die Keys exportieren kannst. Also, du kannst sicher, dass die Keys die Device nie verlassen. Also, man nie den Schlüssel vom Gerät irgendwo an das Hintun. All the signatures are performed inside the module. So, you really don't need to see the key. You only need to ask the module to sign something for you. This kind of hardware keys. So, it's quite advanced nowadays. They are used in chip cards for decades. They are used in the iPhone. They are one of the reasons why the FBI can't break the iPhone. Das ist insbesondere eine Ergründe, warum das FBI die iPhones nicht verbunden war. Das ist alles innerhalb von solchen fasted chips passiert. Nick, it's important to have access control to this hardware key store, because, for example, if you have a jailbreak iPhone, then your jailbreak iPhone can always pretend to be the app that allows that privilege to use the key. So, root access always allows you to use the key. That was also explained in the talk yesterday. Ledger wallet, once you control the main CPU and once you boot your own firmware, you can use your own firmware to access the keys. You cannot read them, but you can use them. And there are some more downsides. Es gibt noch mehr Nachteile. If you have a bug in your hardware key module, you cannot fix it. There was a famous case last year. My workload was actually affected. There was an Infinienship, I think, where they had a bad random number generator, and it turned out that chip was used in many products. It was used in the UB key device, I think, and it was also used in many HP laptops. It was also used for disk encryption by Windows. And the second downside is that the implementation cannot be validated by the user. If you have your own computer, where you have some understanding of what's running, what's not running, you can always look at the source code, validate yourself, and you have some idea of what it's doing. If you have just a little token that you plug in by USB, then you don't actually know what it is doing. And that will be important later on for our tech. So, some examples. In servers you have HSMs. They are sometimes not really used to protect keys, but also to increase performance. In server there's a lot of encryption. It's better to have a hardware module, but those hardware modules are typically used to store keys. And then you have TPM chips in business laptops, and you have smartphones in the iPhone. Business laptops, English apps, laptops. Yes. So what are common problems and attacks that we've seen with wallets so far in the last years? So the most obvious attack is a stolen wire network. Someone has a software wallet on its Windows-Machine. It's a malware by accident, in dem wir auf der Windows-Machine ein bisschen malware hinterlegen und das dann abfischt. The malware can steal the keys. So, another kind of attack is if you have unsecured storage. For example, if you have a phone where you store your bitcoins in Poland and the phone is not encrypted, and so all of this is not connected, people can steal the keys and these are bitcoins. And then you have a third kind of attack, where you have bad random numbers or predictable random numbers that happen a lot in wallets. JavaScript, and then if you have a bad browser that's generating bad random numbers. Wir nehmen also etwa den Fall von einem schlechten Browser, der ist schlechter zu verzeihen. So, they can guess your keys or they can guess your NONGSK, which is evident as we have seen. And one more interesting thing is that it's not only important that you keep your NONGSK secret. Es ist nicht nur wichtig, dass man diese nur einmal geheim hält. Wenn man sie zweimal benutzt, kann die Angreiferin auch diesen privaten Schlüssel ausrechnen, ohne dass sie dieses K kennt. Und bei Bitcoin ist das alles publiziert auf der Blockchain. Also kann man versuchen zu scannen nach zweifacher Verwendung von Bitcoin zuvor zu sein. Also würden die Bitcoins innerhalb von einer Stunde wahrscheinlich gestohlen, wenn man das tut. Irgendwer scannt das immer. In den frühen Tagen von Bitcoin ist das viel passiert. Aber jetzt wollen wir reden, jetzt wollen wir über etwas fortgeschrittener Attacken reden. Also einen Bektor in einem Zufallszahlengenerator. Hier sind es also nicht nur schlechte Zufallszahlengenerator-Generatoren, sondern auch vorsätzliche Angriffe. Ein Beispiel ist hier ein Doppel-EC-Generator. Der war von der Regierung wahrscheinlich der amerikanischen Regierung extra dafür zugelassen. Und hier waren ein paar absichtlich schlecht gewählte oder vermutlich schlecht gewählte Parameter. Und sie konnten auch nicht erklären, warum sie diese gewählt hatten. Und es gab auch keinen Grund, sie schlecht zu wählen. Und daher ist die Vermutung, dass sie absichtlich schlecht gewählt wurden. Und als Edwards Noten seine Enthüllungen machte, war da einige Dokumentationen darüber, dass es tatsächlich absichtlich schlecht gewählt war. Also was könnte ein Angreifer hier mit dieser Information oder mit diesem schlechten Zufallszahlengenerator oder diesem Zufallszahlengenerator mit einer Backdoor machen? Jedes Mal, wenn eine Überweisungsstadt finden soll, muss eine einmalige Zufallszahl K generiert werden. Und wenn hier eine solche Backdoor in einem Zufallszahlengenerator verwendet wird, dann kann der Angreifer nach gezielten Eigenschaften auf der Gletscher oder auf der Interblockchain suchen. Und wenn er nun eine solche Überweisung eines Ziels findet, dann kann er die Backdoor benutzen, um den geheimen Schlüssel D zu errechnen. Wir werden jetzt über Kleptogramme reden. Kleptogramme wurden erstmals bei Adam Young und Mutti Jung in 1997 eingeführt. Früher war das noch auf dem klassischen DSA, also eher auf dem klassischen DSA angesiedelt. Und das wurde dann später natürlich erweitert auf die elliptischen Kurven. Die Notation hier ist, dass kleingeschriebene Buchstaben wieder für Zahlen stehen. Große Buchstaben sind für Punkte auf Kurven. Auf diese elliptische Kurve kriegische Buchstaben sind Konstanten. Und diese seltsamen Frakturgeschriebenen Buchstaben sind ein Zufallszahlengenerator. Und wir gehen davon aus, dass das hier wirklich gute Zufallszahlen sind. Wenn man dann zwei Zahlen K1 und K2 erzeugen möchte und die als Nons benutzen möchte und die dann später auch so wählen wollen, dass der Angreifer das später verwenden kann, um den privaten Schlüssel zu errechnen, man nimmt die erste Zahl K1 wirklich Zufall, man speichert sich K1 und man kann K1 und dann auch in die Wallet speichern und die Wallet wird K1 und R1 verwenden. R1 ist der Punkt, der entsteht, wenn man den Punkt G, der vordefiniert ist, im Protokoll mit K1 multipliziert. R1 ist dann Teil der Signatur und wird in der Blockchain veröffentlicht. In der zweiten Runde berechnet man K2 mit dem Zufallszahlengenerator aus R1. Also R1 wird als Input für den Zufallszahlengenerator verwendet. Das ist dann ein Pseudozufallszahlengenerator, kein wirklicher Zufall mehr. Und dann kann man K2 und R2 ausgeben. R2 wird hier synonym zu Schritt 1 verwendet oder errechnet mit K2 mal G dem vordefinierten Punkt aus dem Protokoll. Wenn der Angreifer nun K2 wissen will, dann kann er die Blockchain nach allen Werten von R1 scanen. Die sind alle veröffentlicht. Und dann kann er K2 verwenden, indem er den Zufallszahlengenerator verwenden, um dann den privaten Schlüssel zu errechnen. Aber hier gibt es zwei Probleme. Jeder kann diesen Zufallszahlengenerator verwenden. Also jeder kann das errechnen. Also wie kann man jetzt diesen Angriff verstecken? Um den Angriff zu verstecken, muss der Angreifer seinen eigenen privaten Schlüssel erzeugen und den eigenen öffentlichen Schlüssel. Der Zufallszahlengenerator ist der gleiche wie vorher. Und jetzt erzeugen wir wieder K1 und K2, aber leicht unterschiedlich im vorherigen Fall. K1 ist komplett analog zum ersten Fall. Also er ist wieder erzeugt und gespeichert und wird benutzt, um R1 zu berechnen, also um die Signatur zu erzeugen. Aber in der zweiten Runde nutzen wir ein zufälliges Bit T und berechnen dann ein Wert Z, um die hier angegebene Formel in Schritt 2, in der zweiten Runde zu benutzen. Der wesentliche Punkt in dieser Berechnung ist, dass der öffentliche Schlüssel vom Ziel hier verwendet wird. Das ist Groß A. Und der zweite Non-Scard-2 wird mit dem Zufallszahlengenerator auf diesen berechneten Wert Z erstellt. Und das wird dann für die zweite Signatur verwendet. Und hier kommt noch mal die zweite Runde. Was jetzt passiert, ist, dass der Angreifer den zweiten Wert extrahieren kann, indem er die vollen Rechnung macht. Er benutzt seinen privaten Schlüssel A. Es gibt zwei Fälle. Also zwei Kandidaten für K2. Und man weiß vorher nicht genau, welches der Richtige ist, aber das scheidet sich nicht stark. Es sind nur zwei Werte, also kann man es einfach ausprobieren. Und weil niemand anders den privaten Schlüssel A hat, kann niemand anders diese Berechnung durchführen. Und weil man den Zufallszahlengenerator R hat, weiß man, dass der Wert der Wert für ... Also der Wert für K2 ist nicht zu unterscheiden und nicht zu verlegen Wert. Also wie nutzen wir das jetzt als eine Attacke auf eine Wallet? Der Angreifer kann Folgendes tun. Er benutzt einfach eine beliebte Wallet oder er kann auch seine eigene erzeugen und das im Internet verbreiten. Damit Menschen das benutzen können. Und dann muss er eigentlich nur Geduld haben. Er muss warten, dass ein Nutzer eine Transaktion mit seiner Wallet durchführt. Und indem er das tut, wird der Nutzer selber nicht nur seine Transaktion veröffentlichen, sondern auch unwissentlich sein privaten Schlüssel. Der Angreifer kann damit die Blockchain scannen und er scannt einfach nach einer Signatur, die den gleichen Schlüssel benutzt hat. Und danach kann er seine Berechnung durchführen, um den Schlüssel herzuleiten. Da gibt es noch eine Fußnote dazu. Der Ernte muss nicht unbedingt nach der Geduldphase sein. Weil selbst nach dem der Angreifer die Bitcoin gestohlen hat, kann man das nicht nachweisen. Also er wird nicht veröffentlichen, dass eine Attacke überhaupt stattgefunden hat. Also einige Eigenschaften dieser Angriffs. Es gibt ein paar Einschränkungen. Der Angriff kann nur verwendet werden, wenn der User den selben Schlüssel zweimal verwendet für Transaktionen. Aber das ist normalerweise der Fall. Bei Bitcoin benutzt man seinen Schlüssel mehrmals. Manchmal benutzt man sogar den gleichen Schlüssel für eine gleiche Transaktion mehrmals. Also kann manchmal eine Transaktion sogar genug sein, um den Schlüssel zu liegen. Und das gilt hier noch eine Fußnote. Weil es einen Standard gibt, der heißt BIP 42. Der benutzt wird, um mehrere Schlüssel in Bitcoin aus einem Samen oder Seed zu erzeugen. Und das bedeutet, dass wenn der Angreifer auch nur einen Schlüssel bekommt, dann kann es unter Umständen möglich sein, dass er mehrere oder zukünftige private Schlüssel sogar aus diesem Seed wieder erzeugen kann. Und dieser Angriff ist unabhängig davon, wie Bitcoin funktioniert, unabhängig von Mining. Und das ist damit auch zutreffend auch für andere Blockchain-Coin-Systems, also für andere Cryptocurrencies. Also es funktioniert auch bei anderen Protokollen, die überhaupt nichts mit Bitcoin zu tun haben. Hier ist es einfacher, weil das Protokoll schon alles mögliche definiert, die Kurve und sehr viele Werte. Und dadurch, dass sehr viel schon im Protokoll festgelegt ist, weiß der Angreifer automatisch, welche Kurve benutzt wird und wo genau das Geheimnis versteckt werden muss. Was sind also die Schlussfolgerungen? Was bedeutet das für die Benutzerinnen und Benutzer? Es heißt, dass Kies durch Transaktionen öffentlich werden können. Man braucht keinen Seitenkanal, man braucht keine Trafikanalyse, Gefäckernanalyse. Nein, kein Seitenkanal wird gebraucht und auch Verkehrsanalyse kann das nicht entdecken, aufdecken. Was heißt dies nun? Was müssen Nutzerinnen und Nutzer tun? Man muss zunächst mal sich vorsehen, keine unvertrauensunwürdigen Wallets verwenden, benutze die Schlüssel in isolierten Umgebungen und für einige Anwendungen ist es vielleicht wichtiger, Transparenz zu haben. Es kann es wert sein, dass man weiß, was das Wallet tut, also ein Software Wallet statt eines Hardware Wallets, das vielleicht sicher ist, aber bei dem man nicht genau weiß, was passiert. Ja, das ist es. Vielen Dank, es gibt zwei Mikrofone, Nummer 1 zu 2. Wenn es Fragen gibt, bitte geht es zu den Mikrofonen. Wenn ihr den Raum verlasst, tut das bitte nicht vor der Kamera. Mikrofon 2, eine Frage. Du hast gesagt, du könntest mehr private Schlüssel generieren, wenn einer gelegt wird. Soweit ich das verstehe, geht das nicht, wenn es nicht der Master Private Key ist. Könntest du ausführen? Ich habe nur über abgeleitet Schlüssel gemeingeredet, es ist nicht so einfach, deswegen habe ich das auch nicht in die Form gesenkt von dem Schema, das man zur Ableitung der Schlüssel benutzt. Aber abhängig von diesem Schema muss man sich erinnern, dass ein Beheimnis vielleicht Information ist, um andere Geheimnisse abzuleiten. Ich hätte gerne ein bisschen praktischen Rat von dir. Gegeben, dass man etwas davon wissen möchte, was der Quellcode von der Wallet wäre. Was meinst du, was wäre eine gute Alternative Software Wallets mit einem R-Gab dazwischen? Ja, das Ding ist, es ist besser, ein Wallet zu haben, dass man unsere Kontrolle hat, von dem man weiß, was es tut, denn selbst wenn man R-Gab hat, dann hat man noch einen Punkt, wo die Transaktion von der Wallet in das Netzwerk übertragen wird. Und wenn das Geheimnis von der Transaktion drin steckt, dann hilft der R-Gab überhaupt nichts. Das ist der Punkt. Mikro 2, ist das eine andere Frage? Mikro 1. Wenn ich die richtig verstehe, mache das die starke Annahme, dass der Zufallsgenerator den zweiten Punkt generiert mit dem Punkt aus dem ersten Schritt. Ja. Man könnte das durchaus auch anders machen. Normalerweise, es gibt zwei verschiedene, es gibt verschiedene Wege, um diesen nonz, dieses Zufalls-Zahl-KZL zu erzeugen. Normalerweise ist das Teil, im DSA-Regierung-Standard, das ist so, dass es einem Zufalls-Zahl- oder Zufalls-Zahl-Generator ist, oder ein Zufalls-Zahl-Generator. Aber dieses Wallet-Tier generiert das auf einem anderen Weg, bricht also dieses Protokoll, so zu sagen, verändert ist. Und es gibt auch Ideen, also zum Beispiel, was ihr hier auf dem Slide habt, das AfD 6979 enthält tatsächlich der deterministischen nonz ist. Man kann auch tatsächlich deterministische nonz es erzeugen, um dadurch Zufallszahlen vermeiden, aber ein bösartiges Wallet kann immer das Protokoll brechen, wenn es das Protokoll dann bricht. Hast du eine zweite Frage? Microphone 2? Ja, Entschuldigung, wenn die Frage blöd ist, aber könntest du vielleicht zusammenfassen, wie der Angriffsfaktor von Leuten aussehen, die im Allgemeinen Wallets benutzen. Welche Erlaubnisse braucht man? Und welche holt man sich dann? Der Angreifer hier ist der Autor des Wallets. Wenn also der Angreifer deinen Wallet nicht berührt, den Source Code oder die Firmware oder den Crypto Chip, der vom Wallet verwendet wird, dann seid ihr sicher. Fragen aus dem Internet? Nein. Dann einen großen Applaus für Stefan und und behaltet euch das.