Dieses Repository enthält den Quellcode eines vorgeschlagenen Validierungsframeworks namens RSSignal .
RSSIGNAL verwendet RSSI -Messungen (empfangene Signalstärkeanzeige) als Eingabe, verarbeiten Sie sie durch einige Schritte und generieren einen Schlüssel/Kennwort, der von kryptografisch sicheren Verschlüsselungsalgorithmen (wie AES) verwendet werden kann.
Die begrenzten Ressourcen von IoT -Geräten, die Reproduzierbarkeit der erhaltenen Ergebnisse und die wichtigsten Zufallsaspekte wurden während des Entwicklungsprozesses des Rahmens berücksichtigt.
Angesichts der Anzahl der bereits weltweit bereitgestellten IoT -Geräte, der breiten Palette der Möglichkeiten im Zusammenhang mit den LORA- und Lorawan -Technologien, dem wichtigsten Verteilungsproblem und der mangelnden Reproduzierbarkeit von Experimenten im Zusammenhang mit der Schlüsselgenerierung in IoT -Umgebungen schlägt diese Arbeit einen Open -Source -Framework vor, der sich mit einigen dieser Probleme befasst.
Wie in anderen Arbeiten [Gao et al., 2019], [Yang et al., 2017], [Yang et al., 2018] erläutert, kann das Senden einer so wichtigen Anfrage (wie die Join -Anfrage) in einfachem Text als Sicherheitsanfälligkeit angesehen werden, da sie die Möglichkeit einer breiten Palette von Angriffen eröffnet, die ausgeführt werden müssen. Um Situationen wie diese zu vermeiden und um eine andere Lösung für die Schlüsselgenerierung basierend auf RSSI -Messungen und PHY -Techniken zu entwickeln, wurde ein Open -Source -Validierungsframework bereitgestellt.
Auf der Stammin des Repositorys sind alle zum Ausführen des Framework erforderlichen Dateien erforderlich (weitere Details im Unterabschnitt unten)
Der dataset-files Ordner sollte die Datensatzquelldateien enthalten, die als Eingabe im Framework verwendet werden
Der Ordner modules enthält alle externen Module, die vom Framework verwendet werden, sie sollten rekursiv zusammen mit diesem Repository kloniert oder später separat erhalten werden
Der results enthält alle Zwischendateien, die für jeden Schritt des Frameworks generiert werden. Dieser Ordner verfügt über einige Subordner, die die Ausgänge jedes Skripts/Schrittes enthält. Weitere Informationen finden Sie in der ReadMe -Datei.
Jede Datei in den Subordnern der results hat den Framework -Schrittnamen, zu dem sie als Präfix des Dateinamens angehängt ist. Der nächste Teil ist der Name des Datensatzes, zu dem er gehört. Dann kommt und optionales Suffix (einige Schritte schreiben ihre Argumente in den Dateinamen, sodass es einfach ist, eine bestimmte Datei zu finden, ohne sie öffnen oder im Ordner nach oben nachschlagen zu müssen). Nach dem DOT kommt wie bei den meisten Betriebssystemen üblich, das Dateiformat.
Das Bild unten ist ein zusammengefasstes Sequenzdiagramm, das zeigt: In Grau die Beziehung zwischen den theoretischen Schritten des Gerüsts (die für didaktische Zwecke erstellt wurde); in blau/purpommen die tatsächlich implementierten Schritte; in grün die Namen jeder Skriptdatei; und in Blau/Teal die zusätzlichen unterstützenden Skripte, die nützliche Funktionen nützlichen.

Die 2 möglichen Ausführungsströme sind wie folgt:
Wir empfehlen, das erste zu verwenden, wenn Sie über unseren Framework lernen oder versuchen, seine Implementierung zu erweitern.
Bitte stellen Sie sicher, dass Ihre Umgebung die folgenden Anforderungen erfüllt, wenn Sie das Framework ausführen möchten.
Liste der Anforderungen für die Ausführung des Frameworks
- Eine unixartige Plattform
- GNU Bash 5.1.16 oder höher oder anderer Unix -Shell -Interpreter
- Python 3.10.2 oder höher (bereits mit 3.10.8 getestet)
- Python-Pip 22.3.1 oder höher
- OpenSSL 1.1.1n oder 3.0 oder höher (bereits mit 3.0.7 getestet)
- Numpy 1.22.2 oder höher (bereits mit 1.23.5 getestet)
- Scipy 1.9.3 oder höher
- Reed-Solomon Codec 1.5.4 **
- NIST -Zufälligkeitstest Suite ***
* Installieren Sie sie mit PIP
** bereits mit dem Rahmen versendet
*** Eine benutzerdefinierte Version wird bereits innerhalb des Frameworks versendet
git clone --recursive https://github.com/oliveiraleo/RSSignal-LoRa.git
HINWEIS: Die Option --recursive klonen unseren Code + alle erforderlichen Module
cd RSSignal-Lora
python -m venv pyvenv
source pyvenv/bin/activate
Installieren Sie die im Bereich des Operating system requirements aufgeführten Pakete
pip install -r requirements.txt
python main_controller.py OPTION
Wo Option der Schritt der Skriptautomatisierung ist. Weitere Informationen finden Sie in der folgenden Liste.
**** Jede Option ruft ein anderes Modul/eine andere Datei des Framework auf. Es ist möglich, jeden einzelnen separat anzurufen, und wir empfehlen dies, wenn Sie das Framework studieren (dh die "automatischen Modi", bis Sie den gesamten Prozess verstehen).
Einige stellten häufig Fragen und ihre Antworten
A: Wir haben uns nicht auf einen Schritt konzentriert, der die Implementierung der realen Umgebung umfasst, da RSSI, wie in unserer Arbeit angegeben, in einer Reihe von drahtlosen Technologien (z. B. WLAN, Zigbee, Lora usw.) verfügbar ist, und jeder hat seine eigenen Standards, die sich auf die Umsetzung auswirken würden.
A: Bitte lesen Sie die Antwort oben. Ein Beispiel dafür, wie es sein würde, finden Sie in diesem anderen Projekt.
A: Ja, es könnte. Wir haben jedoch versucht, so didaktisch und modular wie möglich zu sein, und dann versuchten wir, die Zuverlässigkeit zwischen den Modulen zu verringern, damit sie leichter ausgetauscht werden können.
A: Wie in der Arbeit von [Dacruz et al., 2021] erwähnt, könnte für bestimmte Anwendungen möglicherweise ein Faltungsansatz besser passen, aber für unser Projekt dachten wir, dass der RS -Codec die Anforderungen ausreicht und immer noch so leicht zu verstehen ist.
A: Bitte beachten Sie, dass die Gesamtzahl der von beiden Seiten erhaltenen RSSI -Messungen gleich sein sollte. Wenn sie unterschiedlich sind (oder aus irgendeinem Grund, dass sie während des Vorverarbeitungsschritts modifiziert wurden), besteht die Möglichkeit, dass der RS -Codec die Bits nicht korrigiert.
A: Wir haben nichts von seiner internen Funktionalität geändert. Das externe Modul basiert auf dem Commit 32ff14c. Der ursprüngliche Quellcode enthielt alle verfügbaren Tests und sogar ein GUI -Programm. (ii) deaktivierte automatische Eingabe (z. B. der ursprüngliche Code hatte eine zufällig generierte Eingabe und jetzt verwenden wir unsere eigenen); (iii) einige Tests deaktiviert (einige Tests erfordern, dass sehr lange Eingänge statistisch aussagekräftig sind. Daher wählen wir die Tests entsprechend dem Rahmenbedarf). (iv) Hinzufügen eines benutzerdefinierten Skripts (customKeyeval.py), das die Test Suite -Implementierungs -API aufruft; und (v) Entfernen Sie alle nicht verwendeten/nicht benötigten Code und Daten. Diese Änderungen machten eine enorme Verbesserung des Speicherplatzes, um die Testsuite zur Verfügung zu stellen, der ursprüngliche Code dauerte ~ 5 MB und unsere benutzerdefinierte Version dauert nur 77 KB Festplattenraum.
A: Studieren Sie zunächst die Grundlagen von Lora (wenn Sie es schaffen, die Dokumente von Semtech, Lora Alliance oder TTN zu lesen. Versuchen Sie dann, sich die Arbeit von [Dacruz et al., 2021] anzusehen. Der nächste Schritt besteht darin, dieses Repo zu klonen, die Readme -Dateien sorgfältig zu lesen, den Quellcode zu studieren (Sie sollten wissen, wie man die Python -Programmiersprache verwendet.
Bitte zitieren Sie diese Arbeit als:
De Oliveira, L., Chaves, L. & Silva, E. (2022). RSSIGNAL: Um Arcabouço Para Evolução de Técnicas de Geração de Chaves Basia -Laien -EM -Rssi. In Anais do xxii Simpósio Brasireo Em Segurança da Informação e de Sistemas computacionais (S. 111-124). Porto Alegre: SBC. doi: 10.5753/sbseg.2022.225333
Oder verwenden Sie den folgenden Bibtex -Code:
@inproceedings{sbseg,
author = {Leonardo de Oliveira and Luciano Chaves and Edelberto Silva},
title = {RSSignal: um Arcabouço para Evolução de Técnicas de Geração de Chaves Baseadas em RSSI},
booktitle = {Anais do XXII Simpósio Brasileiro em Segurança da Informação e de Sistemas Computacionais},
location = {Santa Maria},
country = Brazil,
year = {2022},
pages = {111--124},
publisher = {SBC},
address = {Porto Alegre, RS, Brasil},
doi = {10.5753/sbseg.2022.225333},
url = {https://sol.sbc.org.br/index.php/sbseg/article/view/21662}
}
Für den direkten Zugriff verknüpfen Sie bitte die DOI:
Doi: https://doi.org/10.5753/sbseg.2022.225333
Die Autoren möchten Herrn Pedro Ivo da Cruz für alle geteilten Wissen und Herrn Rodrigo Oliveira Silva für die technischen Beratung während der Entwicklung des Rahmens anerkennen
Wir möchten der Bundesuniversität Juiz de Fora, Fapemig und Fapesp für die finanzielle Unterstützung dieser Arbeit danken
Wir möchten auch Herrn Marek Simka und Herrn Ladislav Polak für die Veröffentlichung ihres Lora RSSI-Datensatzes (verfügbar auf Github) danken, das für ihre Arbeiten mit dem Titel " Auf der RSSI-basierten Indoor-Lokalisierung in Indoor-Lokalisierung von Lora im 2,4-GHz-ISM-Band verwendet wurde
Wir möchten Herrn Steven Kho Ang, Mr. Tomer Filiba und Herr
Hinweis: Wir können keine ETA für diese Liste ATM angeben. Wir hoffen jedoch, dass wir seine Aktivitäten so schnell wie möglich beenden können
Der Quellcode ist unter der MIT -Lizenz lizenziert