 Internet der Dinge. Das wäre toll, wenn es funktionieren würde. Denn ein großer Teil vom Internet der Dinge ist der Internet-Teil. Und wir benutzen Wi-Fi und andere drahtlose Protokolle. Und dieser Vortrag hier wird einen Blick auf Lora werfen. Ein Low-Power, also ein Niedrigstrom, drahtloses Netzwerk. Mad Night wird uns diesen Vortrag halten. Vielen Dank und vielen Dank, dass ihr gekommen seid. Es freut mich. Ich werde über den Lora Physical-Layer reden. Lora ist für das Internet der Dinge definiert. Ich bin ein Software-Engineur mit was stillen Netzwerks. Mein Hintergrund ist in Sicherheit für Radiofrequenzie. Und ich mache die Software-Stacks. Ich mache den Hardware-Layer. Und vor allem das, was ich euch heute erzählen werde. Ich werde euch keine Zero-Days oder irgendwelche Breaks zeigen. Aber wir werden uns ein ganz neues Protokoll anschauen. Wer hat schon mal von Software-Defined-Radio gehört? Was ist ein fast furiertransform? Wer weiß das? Was ist ein Symbol in dem Kontext eines drahtlosen Protokolls? Warum ist Netzwerk Forensik interessant? Warum ist es relevant und warum ist es wichtig? Zisco, die Internet-Gruppe, die Abteilung bei Zisco, hat hier eine Statistik, die sagt 50 Milliarden Geräte werden in 2020 am Internet angeschlossen sein. Ich glaube, Low-Level-Security ist wichtig, um eine fünftige Sicherheit auf diesen Schnittstellen hinzubekommen. Wir werden anfangen mit LP-Vans auf einem hohen Level und dann reden wir über Funk- übertragungskonzepte und dann zeige ich euch mein Re-engineering des Lora-Physikal-Levels von Lora und dann zeige ich euch noch das Tool Gea Lora, eine Open-Source-Implementierung des Lora-Physikal-Levels. Also was ist Lora? Es ist ein drahtloses Protokoll für das Internet der Dinge und das ist ein ziemlich schmutziger Begriff, weil IoT bedeutet in Wirklichkeit vernetzte Embedded-Geräte und alle diese Begriffe gehören irgendwie dazu. Das sind Funktions-Schnittstellen, Bluetooth, 811, Bluetooth Low-Energy, ZigBee und so weiter und mit diesen ganzen Standards. Was ist das Problem mit diesen ganzen bestehenden Standards? Alle brauchen irgendwie lokal konfiguriert werden. Das heißt, wenn man Gerät aufsetzt, einige davon brauchen Gateways, um zum Internet verbunden zu werden und im Fall von 811 ist es sehr, sehr stromintensiv, was ein Problem ist, wenn man das Batterie betrieben haben will. Okay, was ist mit Celia, also mit dem Mobilfunknetz? Es funktioniert eben irgendwie über alles, funktioniert über alles ist leicht zu installieren, aber es braucht Strom und es wird, es ist am Auslaufen. In den Staaten wird IT&T das 2G-Netzwerk abschalten in zwei Tagen, am ersten Jahr 2017. In Australien sieht es genauso aus und die hat schon abgeschalten und das heißt, 2G braucht nicht viel Strom, ist ziemlich billig, also eigentlich wäre es genau das, was man braucht. Aber es läuft aus, also müssen wir es ersetzen. Das heißt, was bleibt? Wir haben 3G, das können wir machen, es ist aber teurer und es braucht mehr Strom, oder wir warten auf 3GPP und warten darauf, dass die ihren Internet of Things, was fokussiert, einen Standard rausbringen. Aber das wird Ende des nächsten Jahres rauskommen, wenn überhaupt, wenn überhaupt zu früh. Das heißt, bis dahin haben wir einen riesen Loch im Markt, also wenn man ein eingebetteter System entwickeln wird mit dieser Art von Verbindungstechnologie, dann muss man sich wahndass orientieren. Und an dem Punkt kommen LP Warns, also das heißt Low Power Wide Area Networks ins Spiel. Die Architektur ist das gleiche, das heißt, wir haben ein Netzwerk von Basisstationen und Gateway auf der ganzen Welt und diese, und das heißt, man hat ein Sternenetzwerk, alle Notes verbinden sich zu diesen Basisstations und die verbinden ins Internet. Da gibt es eine Tonne von Standards, die da drum aufpoppen jeden Tag, aber die meisten, die zwei mit dem größten Abdruck im Moment sind, Laura und Sick Fox. Entschuldigung, das zweite war, glaube ich, nicht lauere. Seenet und Actility, sie sind die größten Unterstützer davon und die haben 51 Millionen für Laura eingesammelt. Wenn wir sagen, dass die für das Internet der Dinge optimiert sind, dann sagen, aber reden wir über zwei Dinge. Zum einen, dass sie, dass sie halt Batterie sparen sind. Sick Fox sagen, dass sie also zehn Jahre mit einer einzelnen Batterie zu Recht kommen können und lange Distanz. Laura redet von 13,6 Meilen. Wenn man das mit den anderen Vorgänger vergleicht, dann ist das sehr, sehr viel besser. Wie kriegen die das hin? Naja, die machen andere Kompromisse. Also, die schalten das Zwischen drin ab. Sowohl wenn sie abschalten, als auch wenn sie wieder anschalten. Dann sehr wenig Daten. Sick Fox sagt, man kann nicht mehr als 12 bytes, 140 mal am Tag schicken. An anderer Standard, Weightless End, der sagt, er kann nur was schicken, aber er kann nichts regnen. Wenn man also was da draußen hat, dann könnte man keine Appels hinschicken. Und die Laura-Klasse-Ageräte können nur kurz nach dem Senden etwas empfangen. Wenn sich also jemand in der Sorgers betreibt, dann muss ich warten, bis das Ding sich meldet und dann sofort die Antwort checken. Oh, das ist ein Kompromiss. Und darum sind sie gebaut, aber dafür kriegen sie halt tolle Performance. So, Semtech ist eine französische Mikroprozessorfirma und die haben Laura entwickelt. Dieses physikalische Spezifikation ist partitiert worden im Juni 2014 und das wird unterstützt von den Laura-Lines, die das halt jetzt verwaltet. Jetzt werde ich mal hier ein paar Begriffe klären. Laura bezieht sich nur auf den physikalischen Layer und das Warn, das beschreibt die anderen Dinge noch mit dazu, Media Access Network und die Anwendung, die da reingebaut ist. Der Phi-Layer, der ist komplett geschlossen und der Warn-Layer, der ist sehr interessant. Die haben über Sicherheit sehr stark nachgedacht. Im Feld habe ich den Endpunkt neben einem Wifi-Netzwerk und danach ist alles kommerzielle IP-Netzwerke. Das Roaming funktioniert über mehrere Netzwerke und ich kann zu anderen Sendern und Empfängern gehen und trotzdem kann mein Anwendungsserver damit verbunden werden und immer noch damit reden. Die haben unterschiedliche Schlüssel. Einmal gibt es den Netzwerkschlüssel, der von meinem Endgerät zum Netzwerkserver geht und dann habe ich den Anwendungsschlüssel, der geht von des End-to-End von der Anwendung bis zum Anwendungsserver. Das Netzwerk wird niemals mein Verkehr und Verschlüssel zählen. Außerdem haben sie pro Gerät einen eigenen Schlüssel, das ist optional. Man kann das richtig machen, aber der Implementär, der muss das richtig machen. Das sind ein paar gute Sachen, die passiert sind. Das war jetzt über Lora Warn. Ich habe euch gesagt, dass es oben über den physikalischen Layer ist und jetzt rede ich nur noch über den Layer darunter. Was ist daran interessant? Also Lora und Sigfox benutzt das ISM-Spektrum. Das heißt, steht in das industriell, wissenschaftlich und medizinisches Gerät, also das Band ist für diese Geräte gedacht. Und das Tolle daran ist, dass man keine Lizenz für dieses Band erwerben muss. Das heißt, man kann einfach ein Gerät bauen und das benutzen. Also ich kaufe mir ein Gerät, Geheimen steckt es ein und benutze es und ich brauche keine spezielle Lizenz, um das zu betreiben. Und da es mit diesem Standard gebaut wurde oder entwickelt wurde, ist es kompatibel mit allen Geräten, die da drin arbeiten. Und das ist ganz nett. Und viele Geräte. Okay, und es läuft den gleichen Spektrum mit Babyfohnen und so weiter und so fort. Okay, im Gegensatz zur Mobilfunktechnologie, wo man eben eine Rechte braucht oder Rechte erwerben muss, um auf bestimmten Teilen des Spektrums Senden zu dürfen. Und diese Spektrenzen sind wirklich Millionen von Dollars wert. Das ist sehr, sehr teuer auf diesen Bändern zu arbeiten. Auf der linken Seite haben wir ein Eichseldokument, wo man, da geht es um den Wiederverkauf von Frequenzbereichen, das für Fernsehen gedacht war. Und wenn man jetzt in diesem Niederfrequenz-Spektrum arbeiten will, dann zieht man seine Brieftasche raus, schreibt einen 900 Millionen Dollar Check und dann kann man das machen. Also man sieht, das ist ziemlich teuer. Okay, wir können dann den Hut rumgeben und vielleicht können wir uns dann hinterher ein Stück Spektrum kaufen. Am Ende vom Vortrag. Okay, wir haben ein klassisches Telekom-Modell mit so wie Sennet, die für IoT-App verzerrten. Okay, man kann mit denen arbeiten, wie mit der Telekom oder wie mit TNT und so weiter. Es ist auch interessant, dass KPN Lora im Einsatz hat über den gesamten Niederlanden im Einsatz hat. Okay, das ist die kommerzielle Seite. Auf der anderen Seite haben wir Crowd-Source-Netzwerke. Okay, die haben in der Cloud ein Netzwerk von, okay, wenn man in Europa, wenn man in Europa was mit Lora machen will, dann kann man sich so einen Server mieten, kann den Service darauf konfigurieren und das dann einfach nutzen. Okay, und letzten Endes haben wir Leute wie Travis Goodspeed und seine Freunde, die Lora mit Hem benutzen. Das heißt, man kann mit Lora im Amateur Funkbank betreiben und sie deentwickeln ein Lora-basiertes Mesh-Networking-System. Okay, das ist noch nicht öffentlich, aber er hat zugestimmt, dass ich euch sagen darf, dass er daran arbeitet und dass das am kommen ist. Okay, das ist ein ziemlich anderes, ziemlich neues Paradigma und ist anders als das, was wir bisher benutzt haben. Okay, ein paar Hintergründe zu Lora. Wir werden gleich in den technischen Tiefen absteigen, aber vorher, bevor wir das machen, will ich ein Crash-Kurs geben über Funk-Übertragung. Okay, wir werden das sehr, sehr schnell durchziehen und ich werde ein paar essentielle Punkte rauspicken und die kann man und wir werden die Kernkonzepte rausgreifen und da können wir dann später darauf zurückkommen. Okay, wenn wir über den physikalischen, über die physikalische Schicht reden, definiert wie die Bits meiner Start-Übertragung in physikalische Phänomene umgesetzt werden. Das heißt, die Bits werden hier in Radiowellen, wie die in der Radiowellen übersetzt werden. Das heißt, was ist F? Das sind einfach elektromäktische Wellen, die einfach überall sind und die kann ich dem manipulieren. Okay, ich kann jetzt einfach einen Chip bauen, der das in Hardware macht, fest definiert oder ich kann das Ganze, oder ich kann ein Software Defined Radio benutzen. Das heißt, sehr viel von der, und das heißt, ich kann die protokoll spezifischen Komponenten in Software implementieren statt in, in, auf dem Chip direkt. Und SDRs haben sich in den letzten Jahren wirklich ziemlich stark entwickelt und sind sehr mächtig geworden. Okay, und wenn wir werden eine Menge über Hardware Defined und Software Defined Radius sprechen in diesem Vortrag. Okay, der physikalische Schicht hat eine Hauptkomponente, das hat einige, aber das ist die Hauptkomponente, ist die Modulation. Und das ist der Algorithmus, der definiert wie die Bits in RF, also in, in elektromagnetische Felder übersetzt werden. Und die Hauptparameter sind Amplitude, Frequenz und Phase und wir können die alle manipulieren. Modulatoren können Analogie oder Digitale Information modulieren. Wir reden heute über Digitale Information. Okay, und ein Grundkonzept ist, dass das Symbol sehr, sehr wichtig ist, das zu merken. Es geht um, ein Symbol ist ein, ein Symbol ist ein einzelner Zustand des elektromagnetischen Fels, das einen bestimmten Informationssatz definiert. Zum Beispiel hier haben wir zwei Bilder von verschiedenen Modulationsarten und die, das zeigt die, damit man einfach, damit man einen Eindruck gewinnt, worüber ich rede. Hier oben sieht man Frequency Shift Key. Man sieht, das Signal ändert, das Signal wechselt zwischen zwei verschiedenen Frequenzen. Und welches Symbolgrad vorhanden ist, hängt von der aktuellen Frequenz ab zu einem Zeitpunkt. Das heißt, man kann es sich so vorstellen, bei der niedrigen Frequenz, wenn die niedrige Frequenz gesendet wird, es ist eine Null und wenn eine hohe Frequenz gesendet wird, es ist die 1. Und man kann es vergleichen mit der Analogenmodulation und mit On-off Key, wo einfach die 1 ist, wenn überhaupt ein Signal da ist, die Null, wenn kein Stiles. Okay. Mit einem komplexeren Internet IoT Physically Layers, kriegen wir es, haben wir, okay, da haben wir mit Trauschen zu kämpfen und das kann mit Spread Spectrum angehen. Okay, wir werden zwei verschiedene Sender benutzen, Sender Empfänger und das eine ist ein Hardware Defined Radio, das ist ein Microchip Lora Implementierung. Genau. Und das werden wir als Sender benutzen. Und das zweite ist ein SDR Software Defined Radio und was das macht ist, es zeichnet einfach rohe elektromagnetische Informationen aus der Luft auf und gibt es einen Computer weiter, wo ich die weiter verarbeite. Okay, was ich dann noch besprechen will ist die FFT Fast Furie Transformation oder schnelle Furie Transformation. Was das macht ist, es nimmt ein Signal und zerlegt es in alle einzelnen Signalsfrequenzen, als denen es aufgebaut ist. Jedes periodische Signal kann damit abgebildet oder dargestellt werden, als Summe aus harmonischen Sinuswellen. Und das ist ein sehr, sehr starkes Tool, um Signale zu analysieren und darzustellen im Frequenzraum. Was aus der FFT Rausfeld ist ein Spektrogramm, man sieht hier in der Y-Achse ist die Zeitachse und die in dem Signal enthaltenen Frequenzen sieht man auf der X-Achse und das heißt man sieht auf der und die Farbe bedeutet wie stark bei dieser Frequenz gerade das Signal ist an diesem Zeitpunkt. Okay, ich gehe noch mal über ein paar von diesen Konzepten während wir drüber gehen. Also bitte laufe nicht weg. Ich habe einen Haufen Bilder, die damit hoffentlich beim Verständnis helfen werden. Okay, jetzt sehen wir uns an wie der Lora Physical Layer funktioniert. Lora basiert auf einer Modulation, die man Chirps Breed Spectrum nennt. Was ist ein Chirp? Ein Chirp ist ein Signal, dessen Frequenz sich kontinuierlich ändert, also steigt oder sinkt. Und es sieht in der Spektrogramm sieht es ungefähr so aus. Und man sieht jetzt die Frequenz steigt oder sinkt, man kann dann also Up Chirps oder Down Chirps haben. Und man sieht an der Frequenz und jetzt sieht man hier die Frequenz ändert sich einfach mit der gleichen Geschwindigkeit, geht hoch und wenn ich an der Bandkante, an meinen Höchstfringsangstruß fängt es einfach bei den niedrigsten wieder an. Okay. Und die ganze Sache mit diesen Radios für IoT Anwendungen. Okay, es ist resistent gegen Multi-Part und Doppler-Effekte, was sehr sehr schön ist für Anwendungen in städtischen Gebieten und was sehr ähnlich ist zu Radar. Militärische See-Radars benutzen Chirps zur Pulskompression und es gibt einen Open Source Projekt, das ist der Knut Chirpsounder und der hat ähnliche Eigenschaften. Okay. Cool. Das ist ein bisschen Hintergrund für die Technologie. Jetzt kommt meine Reise, wie ich mit Laura angefangen habe. In 2015 habe ich hier diese Firma bisher beigetreten. Wir haben entweder eine neue Funktechnik angeschaut oder wir haben uns drüber unterhalten, bei dem ersten Meeting, bei dem ich dabei war. Da haben sie über L.P. Low Power Warntechniken unterhalten. Über Weihnachten bin ich zurück nach New York gegangen, wo ich herkomme. Ich habe eins gekauft und habe ein bisschen damit rumgespielt. Ich habe geschaut, wo ich raus komme. Meine Kollegen waren in San Francisco, in Atlanta und wir haben es nirgendwo gesehen im Dezember. Zum Glück war ich ein bisschen später bei einem Meetup, wo ich die Firma Sennet getroffen habe, den Cambridge Massachusetts und ich habe ein Marketingvideo von dieser Firma gesehen. Dann habe ich gesehen, wie ein Techniker in dem Computer gemacht hat und dann habe ich diese Karte gesehen. Dann habe ich mal ein bisschen genauer geschaut und habe festgestellt, das ist eine Stunde weg von wo ich wohne. Dann bin ich in mein Auto gestiegen und bin eine Stunde gefahren. Dann habe ich den Empfänger oben gehabt. Dann habe ich das Signal aufgezeichnet. Das war bei den auf dem Parkplatz. Wenn man hier das obere Drittel anschaut, dann sieht man, dass das Signal immer nach oben geht und dann befickt es wieder von vorne an. Wenn man so einen digitalen Übertragung anschaut, dann weiß man, dass es normalerweise irgendwo einen Anfang gibt, bei dem man den Anfang macht, die Präambel. Hier sieht man aus wie ein Zweinviertel nach unten. Hallo. Jetzt ist hier der Anfang zu Ende. Jetzt kommen die Daten. Am Schluss geht es wieder zu Upturbs. Das heißt, es geht nach oben und die springen im Wand rum. Das ist nicht zufällig. Das sind die Daten, die in den physical layer encodiert werden. Das hier ist die erste Ableitung, wie sich die Frequenz ändert. Wir sehen, dass es die springen gibt, aber die Veränderung der Geschwindigkeit ist immer konstant. Wenn die Frequenz komplett ändert, dann ist das an der Stelle die Daten moduliert werden. Ich sehe das wie eine statische Carrierfrequenz an. Trägerfrequenz. Hier nehmen Sie dieses Chirpsignal als den Träger und modulieren das da drauf. Jetzt lassen Sie uns mal, wie das aussieht und ein paar Daten rausholen können. Bevor wir anfangen, das zu demodulieren, lassen Sie uns mal gucken, was wir darüber wissen. Wenn man ein bisschen offene Daten, Open Source Intelligence nutzt, dann kann man den Aufwand für das Reverse Engineering gratuzieren. Hier ist das Material, was wir gefunden haben. Wir haben ein Patentantrag gefunden in Europa und die sah sehr ähnlich aus wie das, was Laura ist. Es hatte echt ganz gute Informationen drin. Als Zweites haben wir die Warn-Spezifikation gefunden. Das ist eins obendrüber, aber wir sind auch Referenzen zu dem physical layer, den wir hier gerade gesprochen. Dann haben wir zwei Info-Files von Snemtech, die viel dabei hatten. Das eine war eine Referenzalgorithmus für eine Whitening Sequenz, ein Scrambler. Und das zweite Dokument, das hat im Prinzip ein Losar geliefert. Es gab auch vorherige Implementierungen. Also hier das eine Open Source Projekt, dieses RTL-SD Range Love. Und das zweite, da gab es eine Wikisite, wo ganz abstrakte Betrachtungen waren, wie halt das, was ich auch gerade beschrieben habe. Appeln. So, jetzt können wir ein paar Definitionen rausholen. Wir haben die Bandbreite. Wie breit ist das Spektrum, dass der Chirp breit ist. Dann der Spreading Faktor, dass es wie viele Bits pro Symbol kodiert sind. Und die Chirprate, das ist die erste Ableitung der Frequenz, mit der die Chirps passieren. Man kann aus dieser Dokumentation ein paar Zahlen rausziehen. Also für die ersten beiden haben wir gemeinsame Konstanten und aus dem dritten, das sollte man ausrechnen davon. Und weil es eine endliche Anzahl von Zahlen ist, können wir einfach alle Kombination durchprobieren, bis wir das gefunden haben, was funktioniert. Eine erste Frage, was ist sein Symbol? Es sind frequenzmodulierte Chirps und jedes Mal, wo das an einer anderen Stelle springt, da ist das Symbol. Wir wollen drei Sachen machen. Wir müssen den Anfang des Frames identifizieren, also die Preambel. Dann müssen wir die Daten finden und dann müssen wir die Daten aus diesen sofortigen Weiterspringen herausfinden. Wir transformieren das Signal, indem wir es den Chirpen. Also erst mal ein bisschen matur. Okay, das ist eine grundlegende Eigenschaft von komplexen Signalen. Wenn man zwei Signale zusammen multipliziert, dann hat das Signal, das man rauskriegt, die Frequenz der beiden multiplizierten Signale. Wenn man ein Signal mit einem signal, mit einem inversen Signal multipliziert, kriegt man null. Also wenn man ein Up-Chirp und ein Down-Chirp multipliziert, kriegt man eine konstante Frequenz. Warum DC? Wir werden auf jeden Fall einen Offset haben, deswegen ist es nicht null. Was passiert jetzt, wenn man so ein Chirpsignal multipliziert, zweimal jeweils mit einem Up-Chirp und einem Down-Chirp multipliziert. Was passiert? Wenn man das macht, kriegt man diese hübschen Bilder. Also was man hier sieht, sieht man diese ziemlich komplizierten diagonalen Chirpsignale, aber sie sind jetzt in ziemlich reguläre Signale, ziemlich hübsche Signale, transformiert und damit können wir jetzt arbeiten. Die müssen wir jetzt untersuchen. Also ein Symbol ist ja ein Zustand des Signals, der eine gewisse Menge von Bits repräsentiert und der Laura-Spring-Spector definiert die Anzahl von Bits in jedem Symbol. Wie viele Symbole könnten das sein? Jedes Bit hat 2, 0 und 1. Wie können wir diese Symbole dekundieren als dem physikalischen Leer extrahieren? Wir müssen das Signal End-Chirp mit, wie wir eben beschrieben hatten. Dann machen wir eine schnelle Furry-Transformation auf das End-Chirp-Signal und dann, wenn wir das jetzt richtig gemacht haben, dann wird die stärkste Komponente in der FFT, ist dann das Symbol, das wir gesucht haben. Und wir erwarten nämlich eine starke Komponente pro FFT. Wenn wir das jetzt gemacht hätten, ohne es zu dekundieren, dann wäre die Energie in der FFT über das ganze Band verschmiert. Aber nach dem Deed-Chirpen, wie eben beschrieben dann, wird die ganze Energie in ein einziges Band, in einem einzigen Band der FFT auftauchen. Hier ist wieder die, die Farbe ist wieder die Signalstärke und da erwarten wir, dass wir das Symbol finden. Also nochmal die Schritte, die wir gemacht haben. Erst mal suchen wir nach der Präambel, also dem Initial, also suchen wir, also wir suchen jetzt nach dem stärksten Signal, das in dem gleichen Band ist für eine gewisse Zeit. Okay, wenn wir das Deed-Chirpen, dann kriegen wir zwei verschiedene Datenströme, einmal den, wo wir den Ab-Chirps multipliziert haben und einmal mit den Daten-Chirps. Und wir können mit dem gleichen Algorithmus arbeiten auf beiden Kanälen. Okay, und um das SFD richtig zu finden, ist sehr wichtig für die, um den Empfänger zu synchronisieren. Eine schlechte Synchronisierung kann dann die ganze Energie zwischen verschiedenen Frames verteilen, dann kriegt man kein vernünftiges Signal. Okay, hier sieht man, hier sieht man, hier hat man in jedem, in jeder Zeile zwei, zwei starke Signale und das ist quasi, weil wir die zwei Chirps in einer Zeile gemischt haben, deswegen können wir das nicht mehr so gut, nicht mehr unterscheiden. Und jetzt deswegen benutzen wir eine Technik, die sich von mit die überlappende FFTs benutzt und damit bekommen wir eine bessere Zeitauflösung in den FFTs. Es ist ziemlich aufwendig, aber es gibt uns viel bessere Ergebnisse. Man sieht es hier ziemlich schlecht, ich zeige gleich ein besseres Bild. Okay, wenn wir diese überlappenden FFTs benutzen, können wir das SFD synchronisieren und wissen dann, wo das, und dann rausgefunden haben, wo das erste Symbol ist in unserem Puffer, dann können wir zu dem weniger aufwendigen, normalen FFTs zurückkehren. Okay, jetzt rechts sieht man exakt, wo das intensiv, wo das stärkste Band ist. Okay, jetzt links, rechts ist es jetzt deutlich klarer. Okay, das letzte, was wir jetzt noch machen müssen, ist die Demodulierung fertigstellen. Wenn unsere Chirps nicht perfekt Phasensynchron sind, dann wird das Signal nicht auf der richtigen Referenz laufen. Okay, wir müssen also irgendeinen Weg finden, um diesen Phasenoffset zu kompensieren. Okay, und immer wenn die Preamble kommt, dann heißt es immer Symbol, dann ist es einfach immer die Symbol mit Wert 0. Und das verwenden wir zu, okay. Okay, das war es. Nein, nicht wirklich, also wir fangen gerade erst an. Okay, aber die Daten sind kodiert. Okay, was ist eine Kodierung? Das heißt, die Daten werden transformiert, bevor sie gesendet werden. Warum macht man das? Weil die Inkodierung, die Robustheit des Signals erhöht beim Senden. So, zum Beispiel hier, das ist das 900 MHz Band. Okay, das ist ein Bild von dem 900 MHz Band, wo Laura läuft. Und man sieht hier ist ein Haufen Zeuge unterwegs, das nichts mit Laura zu tun hat und das stört Laura natürlich. Das heißt, die Funkumgebung ist eine wirklich fiese Umgebung. Okay, und denkt dran, Laura ist close to us, das heißt, wir haben ein paar Datenblätter, aber wir wissen nicht wirklich, was in diesem physikalischen Layer steckt oder im Fall. Okay, und jetzt gucken wir uns einfach das an und finden raus, wie das funktioniert. Also von dem Patent haben wir schon mal ein paar sehr gute Hinweise bekommen. Das erste ist zum Grau-Indizierung von Symbolen. Das heißt, das gibt neue höhere Fehler-Toleranz. Dann hat man Daten-Data-Whitening, Daten-Normalisierung, das eine gewisse Zufallsfaktor in das Signal bringen, das breiter verteilt. Dann hat man Interleaving, das verwischt Bits im Frame und dann haben wir Forward-Error-Corrections, das heißt, es gibt Redundanz im Signal. Okay, super, das ist einfach, oder? Nein. Warum? Weil die Dokumentation leider lügt. Und auch die Klassen-Signale können uns in Sackgassen führen. Okay, ich zeige euch warum. Wir haben Gray-Indexing oder Gray-Coding. Was wir gefangen haben ist Gray-Coding, Daten-Whitening. Dafür müssen wir die Zufallsangeneratoren finden, die dafür benutzt werden. Dann haben wir einen Interleave-Algorithmus, der im Patent definiert ist und wir haben, aus dem vierten Schritt kann man vermuten, dass ein Hemming-Algorithmus benutzt wird. Okay, das erste, auf was ich angehen will, ist das Data-Whitening. Okay, und das verrechnet die Daten mit einem zufälligen Folge und wenn man die zufällige Folgen nicht kennt, hat man keine Chance, die Daten wieder herzustellen. Okay, beim Whitening nimmt man den Puffer, den man senden will, X-Ort den mit einer Pseudo-Zufälligen-Sequenz und wenn der Empfänger den Frame empfängt, dann X-Order den Frame mit der gleichen Pseudo-Zufälligen Sequenz und damit kriegt man die ursprünglichen Daten wieder raus. Okay, warum soll man jetzt, warum macht man das? Warum? Weil diese Zufalls behandelten Daten helfen dem Empfänger bei der Synchronisierung. Weil wenn man, das bedeutet, dass man sehr viele Übergänge im Signal hat, was dem Empfänger bei der Synchronisierung hilft. Und Mensch ist der Codierung tatsächlich reduziert, könnte man auch nutzen, aber das reduziert die Bitrate und Whitening tut das nicht. Okay, was haben wir? Wir haben die Whitening-Algorithmus in der Application-Node, wir haben ein paar Beispiele, SMS, RTLS, Strangelove und nichts von dem hat funktioniert. Okay, wir machen wir es, man kann was senden, wo wir wissen, das wird den Whitening-Algorithmus in Zustand versetzen, aus dem wir was gewinnen können. Okay, wir müssen also ein paar Annahmen machen, um uns doch dieses Blackbox-Problem durch zu hinterrin. Okay, wenn wir mal annehmen, dass die FEC wirklich das Hamming-NV ist, aus der Dokumentation. Und dann nehmen wir an, dass der Spreedingfaktor 8 ist. Okay. Und jetzt gibt es eine weitere interessante oder nützliche Eigenschaft. Das Hamming 8.4 enthält vier Datenbits und vier Paare die Bits jeweils. Und aus diesen 16, also in 14 von den 16 sind 4 1 und 4 0. Für die 0 ist das Code Word alles 0. Das heißt, wenn wir der FAC-Scheme, dem Hamming, eine 0, dann kriegen wir doch zu viele 0 raus. Das können wir verwenden, also übertragen man eine String von 0 0 an. Also wir haben jetzt hier gesagt, wenn wir diese 0 übertragen, dann kommt das da raus. Das Interleving, das schauen wir im Patent nach. Es sollte nichts dazu fügen. Es sollte sie vielleicht in der Gegend rumführen, sollte sie vielleicht verschieben, aber nichts hinzufügen. Wenn ich paar 0 rumfüge, dann um Würfel, dann sollte immer noch 0 rauskommen. Dann habe ich das Data-Witening, den Abschnitt mit dem Whitening. Und das ist, was wir versuchen, herauszufinden. Und der erste Schritt ist irgendeine Art von Gray-Coding. Also es sind 3 Promutationen, wenn es Gray-Coding oder gar nichts ist. Also wir müssen nur noch herausfinden, welches von den ersten 3 das ist. Wir müssen 3 Dinge ausprobieren und dann können wir die Whitening Sequenz von einem Sender herausfinden können. Wir nehmen also eine 0. Das Whitening macht einen Exor mit diesem Input und den 0. Und dann erzählt uns der Sender, was die Whitening Sequenz ist. Und dann können wir es nehmen und können es wieder reinstecken und den Rest ausrechnen. Das nächste ist der Interleaver. Hier ist die Formel aus dem Patent. Und es hat nicht funktioniert. Jetzt muss ich da durchgehen. Es war das Allerschwierste, was wir hier gemacht haben. Ich zeige euch den Prozess, ohne dass ihr die Dinge ausprobieren müsst, die nicht funktioniert haben. Wir werden Eigenschaften von einem Hamming vor der FSC ausnutzen. Diesmal werden wir die 4-1 ausnutzen. In diesem Fall ist das Code Word 8-1. Wir haben jetzt hier Pakete hergestellt, wo wir 4 Bytes und wir suchen nach Muster, indem wir die 1 durchlaufen von links nach rechts. Die Frage ist, wer sieht es und wer sieht es jetzt? Die unteren Zeile, die 2 von rechts. Die ersten beiden Signifikanten sind vertauscht. Wir können jetzt diese diagonalen Positionen in eine Deinterlaving Matrix übertragen. Jetzt haben wir hier diese Tabelle, neben die Daten-Tabelle, die wir besucht haben. Hier haben wir die Hamming Code Words dek auseinandergenommen. In der Mittelspalte auf der linken Seite sind die 4 Datenwitz, die wir gesucht haben. Die rechte Spalte in der linken Tabelle sind die Parity-Bits. Ich mache es einfach, wenn er lang genug drauf schaut. Dann seht ihr, dass ihr die Bitt-Reinfolge verändern könnt. Hier sind die Muster. Wir können diese Korrektur-Matrix einfügen. Wir sehen, dass die Parity-Bits 1 und 2 schön damit korrollieren. Die 5 und 4 sind auch eine gute Mapping, aber die sind vertauscht. Wir haben es fast geschafft. Jetzt müssen wir die Forward Error Correction anwenden und das ist die Modulierung. Jetzt muss ich noch kurz erzählen, wo wir falsch gelaufen sind. Wir hatten tolle Dokumentation für alles, aber nachdem wir das alles implementiert haben, haben wir festgestellt, dass 3 von 4 nicht gestimmt haben. Einer war okay. Einer war, wie es beschrieben hat. Wir haben es geschafft, das zu lösen. Es ist wichtig, dass man sich darüber klarer, wie wir es geschafft haben. Das Wichtige war, das Problem einzugrenzen und einzelteilen zu betrachten. Wir haben das in zwei Schritten gemacht. Zuerst haben wir das Interleaving in the Forward Error Correction rausgeschmissen und ausgecancelt. Dann haben wir herausgefunden, wie das Gray Index Neonimus des Data-Wideings zusammen funktioniert hat. Das letzte war, dass wir noch rausfinden mussten. Wir haben also Open Source Informationen verwendet. Wir haben die Anahmen getroffen. Jetzt haben wir diese vier Ebenen in ein Experiment kondensiert. Das haben wir dann ausprobiert. Jetzt kommt die Struktur von diesem Paket. Das ist ein Bild aus einem von den Datenblättern. Am Anfang ist die Preamble, dann kommt der Chirp. Da ist das Sync-Word und da ist der Header. Der Header ist wohl nur in einem bestimmten Modus, nämlich den Explicit-Modus-Fun. Der Explicit-Modus hat verschiedene Sachen drin, das Payload, das CAC und das Forward Error Correction. Implicit geht einfach davon aus, dass der Empfänger das alles schon weiß und überspringt diesen Teil. Wir können Implicit verwenden, was die Weidungssequenz ist und können wieder zur Explicit umschalten und können sehen, was die Werte dazu sind. Ne, das hat so einfach nicht funktioniert. Implicit und Explicit verwenden verschiedene Weidungssequenzen. Der Phi-Header ist versteckt, auch wenn man Implicit des Weidungs verwendet. Also wir haben den Header und da steht die Code Rate ist immer... Also der Hamming 4, 8 Forward Error Correction Code ist immer used dafür. Der Spreading Factor... Also die Code Rate ist immer noch 4, 8 und der Spreading Factor ist minus 2, auch wenn der Header Implicit ist. Okay, nochmal. Die ersten auch Symbole, egal ob man im Implicit oder Explicit Modus ist, ist immer SF minus 2, 4, 8. Okay, dann gibt es ja den Low Data Rate Modus. Wenn das gesetzt ist, dann sind alle anderen Symbole in dem Phi-Packet auch mit dem gleichen Spreading Factor gesendet. Das ist dafür gut, wenn sehr viel Rauschen auf dem Kanal ist. Okay, sieht Laura cool aus. Okay, also damit kommen wir zu Chia Laura und das ist eine Open Source Implementierung des Laura Files. Ziemlich cool, mit SDR funktioniert. Es ist Open Source Software, es hat eine tolle Community. Okay, dieses Tool geht an eine große Community und das geht Laura aber auf eine Gnur Radio. Gnur Radio ist ein sehr großes Tool. Okay, mit den Datenblättern, die wir zu jedem der Laura Radios haben, da geht es immer um Layer 2 und darüber. Es gibt eigentlich keine Daten, was Laura wirklich macht. Okay, um das klarzumachen, zeige ich euch ein paar Exploits. Zum Beispiel hat Travis Gutzbitt einen Reamble und Serif-Frame-Symbol für 802.15.4 within the payload of another message. He was able to get some really wonky things to happen to radio students in doing so. Related to that, we have this wireless Intrusion Detection System. Okay, und die haben es geschafft, Fingerprinting zu machen über Radios-Date-Maschines. Okay, und damit kann man dann Pakete erzeugen, die man dann von bestimmten Empfängern empfangen werden können und von anderen nicht. Also die der physikalische Layer sind wichtig. Okay, und warum es mir auch geht, ist jetzt hier das Protokoll zu verbessern und auch die Sicherheit zu verbessern. Josh Blooms hat ein Loro für Fotos. Okay, und das kann aber nur zu sich selbst sprechen und nicht so tatsächlicher Hardware. Dann ist, dann gibt es was von RPP0 auf GitHub. Das kann man sich auch ansehen, das ist ziemlich cool. Okay, meine GLR-Implementierung. Wenn ihr sowohl für Aerocorrecting und Onmodellierung in gleichem Block haben wollt, dann könnt ihr das machen. Es gibt ein einfaches PDU-Interface, das als Synchron ist, zwischen den Blocks mit WebSockets. Ich zeige es gleich in der Demonstration. Der Demodulator und der Decoder haben wir hier auseinandergenommen. Dann haben wir eine Module gebaut. Der Modulator, der verwendet eine effizientere Methode. Der nimmt nicht erst das FFT und macht das danach, sondern wir machen die beiden Schritte in einem, mit dem wir Indexen rein in einen Chirp. Ich habe das hier auf diesem Github hochgeladen vor zwei Stunden. Und jetzt gebe ich euch noch eine Live-Demo. Hier ist das, was ich tu. Also ich habe ein Gedicht geschrieben. Hier haben wir ein Adafruit Radio. Und wir wollen unten das USRP mit dem Mess empfangen wollen. Mal schauen, ob ich die virtuelle Maschine hier auf den anderen Bildschirm kriegen kann. Ein Moment, bitte. Hier geht es los. Also hier habe ich einen Empfänger gestartet. Und dann öffne ich einen Socket. Und jetzt starte ich den Sender und schaue, was ich hier habe. Da kommt es raus. Wenn ihr nicht genau wisst, was ihr hier seht, habe ich es mal ein bisschen größer gemacht. Ich muss noch zwei Sachen nachliefern. Hier können wir auch helfen. Ich habe das im Detail aufgeschrieben. Und wenn ihr mehr über Radios und Software Defined Radio hören wollt, dann ist das hier ein guter Artikel von dem Markt. Es erklärt die Grundlagen und wie man es anwendet. Zusammenfassend, diese LP waren es, da gibt es immer mehr davon. Die Radio-Stacks werden immer breiter gefächert. Wireless ist jetzt nicht mehr Wi-Fi. Und wenn ich in Sicherheitsadmin bin, dann muss ich jetzt auf einmal aufpassen auf diese ganzen anderen Sachen, die da hier in die Firma reinkommen. Technisch habe ich gezeigt, wie man wie von einem definierten Radiosignal zu den Witz gehe. Und jetzt möchte ich noch ein paar Leuten danken. Hier sind der Balenciper von Bastille, dann dem Josh Bloom, dem Thomas Teilkamp. Vielen Dank. Jetzt nehme ich gerne auch Fragen entgegen. Wie du willst. Ja, nur einer. Wir haben fast keine Zeit mehr. Danke, Matt. Wir können ein paar kurze Fragen machen. Okay, bitte, das mache ich von rechts. Ah, ich erinnere mich an dich. Wir haben uns auf der Konferenz getroffen. Gibt es Möglichkeiten, die Verlässlichkeit eines dichten Lore-Netzwerks zu qualifizieren? Ja, ich glaube schon, aber ich habe mich noch nicht mit Benchmarking auseinandergesetzt. Also ich habe mich nur damit mit der Dekodierung und der Informationsextraktion beschäftigt. Okay, es gibt Jungs in San Francisco, die sich damit beschäftigen. Und das sollte man sich vielleicht an. Schade, dass man hat. Okay, wir haben eine Frage aus dem Internet. Wie lange hast du gebraucht, um das alles rauszukriegen? Okay, ich habe im Januar, Laura, das erste Mal, bin ich darauf gestoßen. Und es hat so vier bis fünf Wochen Vollzeitarbeit gebraucht. Von dem Punkt, wo ich gesagt habe, okay, lass uns das machen, bis ich die ersten wirklichen Resultate hatte. Während du diese zwei unbekannten Layers dekodiert hast, hattest du schon Hardware, die das schon gemacht hat? Okay, ich habe den Chip-Transmetter, den ich hier habe. Den hatte ich schon, okay, aber man konnte das meiste von den Funktionen abstellen. Außerdem implizierten Headers. Und das heißt, mit dem Ding konnte ich so ziemlich rohe, rohe Frames bekommen. Okay, wir nehmen noch eine. Viele Leute fragen sich, was für Implikationen Patente auf diese ganze Sache haben. Kann man jetzt sagen, dass diese Technologie patentfrei ist? Okay, ich kann nicht sagen, das Patent ist so allgemein wie möglich formuliert. Und es beschreibt eine Technik, die ähnlich zu Laura ist. Aber ich bin nicht sicher, ob Laura davon abgedeckt ist oder nicht. Danke, Matt.