このリポジトリには、 RSSignalと呼ばれる提案された検証フレームワークのソースコードが含まれています。
rssignalは、RSSI(受信信号強度表示)測定値を入力として使用し、いくつかのステップでそれらを処理し、暗号化された暗号化アルゴリズム(AESなど)で使用できるキー/パスワードを生成します。
IoTデバイスの限られたリソース、得られた結果の再現性、およびフレームワークの開発プロセス中に主要なランダム性の側面が考慮されました。
すでに世界中に展開されているIoTデバイスの数を考えると、ロラとロラワンの技術に関連する幅広い可能性、重要な分布の問題、およびIoT環境での主要生成に関連する実験の再現性の欠如は、これらの問題の一部に対処しようとするオープンソースのフレームワークを提案します。
他の研究[Gao et al。、2019]、[Yang et al。、2017]、[Yang et al。、2018]で説明されているように、平易なテキストでそのような重要な要求(参加要求がそうであるように)を送信することは、広範囲の攻撃を実行する可能性を開くため、セキュリティの脆弱性と見なすことができます。このような状況を回避し、RSSI測定とPHY技術に基づいて重要な生成の別のソリューションの開発を支援するために、オープンソースの検証フレームワークが展開されました。
リポジトリのルートでは、フレームワークを実行するために必要なすべてのファイルを実行します(詳細については、以下のサブセクションの詳細)
dataset-filesフォルダーには、フレームワークで入力として使用されるデータセットソースファイルを含める必要があります
modulesフォルダーには、フレームワークで使用されるすべての外部モジュールが含まれています。これらは、このリポジトリと一緒に再帰的にクローン化するか、後で別々に取得することができます。
resultsフォルダーには、フレームワークの各ステップによって生成されたすべての中間ファイルが含まれています。このフォルダーには、各スクリプト/ステップの出力があるいくつかのサブフォルダーがあります。詳細については、そのreadmeファイルを参照してください。
resultsのサブフォルダー内の各ファイルには、ファイル名の接頭辞として追加されるフレームワークステップ名があります。次の部分は、属するデータセットの名前です。その後、オプションのサフィックスが来ます(いくつかのステップはファイル名にargを書くので、それを開いたり、フォルダー内で調べたりせずに特定のファイルを簡単に見つけることができます)。ほとんどのオペレーティングシステムの場合のように、ドットの後、ファイル形式が登場します。
以下の画像は、次のように示す要約されたシーケンス図です。灰色では、フレームワークの理論的手順(教訓的な目的で作成された場合)の関係。青/purplishでは、実際に実装されたステップ。緑色では、各スクリプトファイルの名前。そして、青/ティールでは、有用な機能性の追加のサポートスクリプト。

可能な2つの実行フローは次のとおりです。
私たちのフレームワークについて学んでいる場合、またはその実装を拡張しようとしている場合は、最初のものを使用することをお勧めします。
フレームワークを実行する場合は、環境が以下の要件を満たしていることを確認してください。
フレームワークを実行するための要件のリスト
- Unixのようなプラットフォーム
-GNU BASH 5.1.16以降またはその他のUNIXシェルインタープリター
-Python 3.10.2以上(すでに3.10.8でテストされています)
-Python-Pip 22.3.1以上
-opensSl 1.1.1nまたは3.0以上(すでに3.0.7でテストされています)
-numpy 1.22.2以上(すでに1.23.5でテストされています)
-Scipy 1.9.3以上
-Reed-Solomon Codec 1.5.4 **
-NISTランダム性テストスイート***
* PIPを使用してそれらをインストールします
**すでにフレームワークに出荷されています
***カスタムバージョンはすでにフレームワーク内に出荷されています
git clone --recursive https://github.com/oliveiraleo/RSSignal-LoRa.git
注:オプション--recursiveコード +必要なすべてのモジュールをクローン化します
cd RSSignal-Lora
python -m venv pyvenv
source pyvenv/bin/activate
Operating system requirementsセクションにリストされているパケットをインストールする
pip install -r requirements.txt
python main_controller.py OPTION
ここで、オプションはスクリプトオートメーションのステップです。以下のリストを参照してください。
****各オプションは、フレームワークの異なるモジュール/ファイルを呼び出します。それぞれに個別に電話をかけることができます。フレームワークを勉強している場合はそうすることをお勧めします(つまり、プロセス全体を理解するまで「自動モード」を使用していません)
よくある質問とその答え
A:RSSIはさまざまなワイヤレステクノロジー(WiFi、Zigbee、Loraなど)で利用できるため、現実世界の環境の実装に関係するステップに焦点を当てませんでした。
A:上記の答えを読んでください。それがどのようになるかについての例については、その他のプロジェクトを参照してください。
A:はい、そうかもしれません。しかし、私たちはできるだけ教訓的でモジュール式になろうとしました。その後、モジュール間の信頼性を低下させて、より簡単に交換できるようにしました。
A:[Dacruz et al。、2021]による研究で述べたように、特定のアプリケーションについては、畳み込みのアプローチがより適している可能性がありますが、私たちのプロジェクトでは、RSコーデックでは要件が十分であり、それでも理解しやすいと思いました。
A:両側から得られたRSSI測定の総数は等しくなければならないことに注意してください。それらが異なる場合(または、何らかの理由でプリプロースステップ中に変更された)、RSコーデックがビットを修正できない可能性があります。
A:内部機能のいずれも変更しませんでした。外部モジュールは、コミット32FF14Cに基づいています。元のソースコードには、利用可能なすべてのテストとGUIプログラムさえ含まれていたため、私たちが行った唯一の変更は次のとおりでした。(i)メッセージ関連(つまり、いくつかのコンソールメッセージを抑制します)。 (ii)無効化自動入力(たとえば、元のコードにはランダムに生成された入力があり、今では独自の入力を使用しました)。 (iii)いくつかのテストを無効にしました(一部のテストでは、統計的に意味のあるために非常に長い入力が必要なため、フレームワークのニーズに応じてテストを選択します)。 (iv)テストスイート実装APIを呼び出すカスタムスクリプト(customeeval.py)の追加。 (v)すべての未使用/不要なコードとデータの削除。この変更により、テストスイートを利用できるようにするために必要なストレージスペースが大幅に改善され、元のコードには〜5MBがかかり、カスタムバージョンには77kbのディスクスペースしかありません。
A:最初に、LORAの基本を研究します(Semtech、Lora Alliance、またはTTNのドキュメントを読むことができた場合、良いことです。そうでない場合は、YouTubeで最新のビデオを見てみてください。次に、[Dacruz et al。、2021]の作品を見てみてください。次のステップは、このリポジトリをクローンし、READMEファイルを慎重に読み、ソースコード(Pythonプログラミング言語の使用方法を知っている必要があります。通常、人々はそれを学習しやすいと思うことです)、それを理解して、すでに共有されているか、オンラインで見つけた他のデータセットで使用します。
この作品を次のように引用してください。
De Oliveira、L.、Chaves、L。、およびSilva、E。(2022)。 rssignal:um arcaboucho paraevoluçãodetécnicasdegeraçãodede chaves baseadas em rssi。 Anaisでは、xxiisimpósiobrasileiroemsegurançadada de de sistemas computacionais (pp。111-124)。ポルトアレグル:SBC。 doi:10.5753/sbseg.2022.225333
または、以下のbibtexコードを使用します。
@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}
}
直接アクセスするには、doiをリンクしてください。
doi:https://doi.org/10.5753/sbseg.2022.225333
著者は、フレームワークの開発中に与えられた技術的なアドバイスについて、共有されたすべての知識とロドリゴ・オリベイラ・シルバ氏について、ペドロ・イヴォ・ダ・クルス氏に感謝したいと思います。
この作業を財政的にサポートしてくれたジュズデフォーラ、ファペミグ、ファペスの連邦大学に感謝します
また、2.4 GHz ISMバンドでLORAを使用するRSSIベースの屋内ローカリゼーションに使用されたLora RSSIデータセット(GitHubで利用可能)をリリースしてくれたMarek Simka氏とLadislav Polak氏にも感謝します。
フレームワークの一部として組み込まれたオープンソース作業(NISTテストスイートとRSコーデックPython実装)のために、スティーブンコン氏、トマーフィリバ氏、スティーブンカールラルロク氏に感謝します。
注:このリストATMにETAを提供することはできません。ただし、できるだけ早くその活動を終了できることを願っています
ソースコードは、MITライセンスの下でライセンスされています