該存儲庫包含所提出的驗證框架的源代碼,稱為RSSignal 。
RSSIGNAL使用RSSI(接收信號強度指示)測量作為輸入,通過某些步驟處理它們,並生成一個密鑰/密碼,以準備由任何密碼安全的加密算法(例如AES)使用。
在框架開發過程中,考慮了IoT設備的有限資源,所獲得的結果的可重複性以及關鍵的隨機性方面。
鑑於已經在全球部署的IoT設備數量,與Lora和Lorawan技術相關的廣泛可能性,關鍵分配問題以及與關鍵環境中關鍵產生相關的實驗的可重複性缺乏可重複性,這項工作提出了一個開源框架,試圖解決這些問題的某些問題。
如其他工作所述[Gao等,2019],[Yang等,2017],[Yang等,2018],在純文本中發送如此重要的請求(如JOIN請求)可以被視為安全性脆弱性,因為它打開了進行廣泛攻擊的可能性。為了避免這樣的情況,並根據RSSI測量和PHY技術幫助開發另一個關鍵生成的解決方案,部署了開源驗證框架。
在存儲庫的根上,請執行運行框架所需的所有文件(以下小節中的更多詳細信息)
dataset-files文件夾應包含數據集源文件,該文件將用作框架中的輸入
modules文件夾包含框架使用的所有外部模塊,應將它們與此存儲庫一起遞歸克隆,或以後在以後在
results文件夾包含框架每個步驟生成的所有中間文件。該文件夾具有一些具有每個腳本/步驟的輸出的子文件夾,有關更多信息,請參考其讀數文件。
results “子文件夾中的每個文件都有框架步驟名稱,該名稱屬於該文件名稱的前綴。下一部分是其所屬數據集的名稱。然後來和可選的後綴(一些步驟將其args寫入文件名,因此很容易找到一個特定的文件而無需打開它或在文件夾中查找它)。在DOT之後,對於大多數操作系統,DOT都會出現文件格式。
下圖是一個匯總的序列圖,該圖顯示了:在灰色中,框架的理論步驟之間的關係(為教學目的而創建的);在藍色/紫色中,實際實現的步驟;用綠色的每個腳本文件的名稱;在藍色/藍綠色中,有用功能的額外支持腳本。

兩個可能的執行流如下:
如果您正在學習我們的框架或試圖擴展其實現,我們建議使用第一個。
請確保您的環境滿足以下要求,如果您想運行框架。
運行框架的要求列表
- 一個類似Unix的平台
-GNU BASH 5.1.16或更高或其他Unix Shell解釋器
- 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編解碼器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
選項是腳本自動化的步驟。請參閱下面的列表。
****每個選項都調用框架的不同模塊/文件。可以單獨致電每個人,如果您要學習框架(即不使用“自動模式”,直到您了解整個過程),我們建議這樣做。
一些常見的問題及其答案
答:我們沒有專注於涉及現實世界環境實施的任何步驟,因為如我們的工作中所述,RSSI在一系列無線技術(例如WiFi,Zigbee,Lora等)中可用,並且每個人都有其自己的標準,這些標準會影響實施方式。
答:請閱讀上面的答案。有關它的狀況,請參閱其他項目。
答:是的,可能會。但是,我們試圖盡可能地進行教學和模塊化,然後我們嘗試降低模塊之間的可靠性,以便更容易地交換它們。
答:正如[Dacruz等,2021]的工作中提到的,對於某些應用,也許卷積方法可能更合適,但是對於我們的項目,我們認為RS編解碼器足以滿足要求的需求,並且仍然很容易理解。
答:請注意,從雙方獲得的RSSI測量總數應相等。如果它們是不同的(或出於某種原因,它們在預處理步驟中進行了修改),則很可能RS編解碼器將無法糾正位。
答:我們沒有更改其內部功能。外部模塊基於COMPL 32FF14C。原始源代碼包含所有可用測試甚至GUI程序,因此我們進行的唯一修改是:(i)與消息相關的(即抑制某些控制台消息); (ii)禁用自動輸入(例如,原始代碼具有隨機生成的輸入,現在我們使用自己的輸入); (iii)禁用某些測試(某些測試需要很長的輸入具有統計意義,因此我們根據框架需求選擇測試); (iv)添加調用測試套件實現API的自定義腳本(customKeyeval.py); (v)刪除所有未使用/不需要的代碼和數據。這些修改使可用的測試套件所需的存儲空間有了很大的改進,原始代碼花費了約5MB,我們的自定義版本僅需77KB的磁盤空間。
答:首先,研究Lora的基礎知識(如果您設法閱讀Semtech,Lora Alliance或TTN的文檔,則很好。然後,嘗試查看[Dacruz等,2021]的作品。下一步是克隆此倉庫,仔細閱讀讀數文件,研究源代碼(您應該知道如何使用Python編程語言。好消息是,通常人們會發現它非常容易學習),了解並開始與已經共享的數據集或與您找到的其他數據集一起使用它,或者與您在網上找到或您自己製作。
請把這項工作引用為:
De Oliveira,L。 ,Chaves,L。 ,&Silva,E。 (2022)。 rssignal:umarcabouçoParaevolçãodetécnicasdegeraçãodede chaves baseadas em rssi。在Anais do xxiisimpósiobrasileiro emsegurançadadaindormaçãoede sistemas computacionais (pp。111-124)。 Alegre Porto: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
作者要感謝Pedro Ivo da Cruz先生共享的所有知識,Rodrigo Oliveira Silva先生在框架開發過程中提供的技術建議
我們要感謝Juiz de Fora,Fapemig和Fapesp的聯邦大學在財務上支持這項工作
我們還要感謝Marek Simka先生和Ladislav Polak先生髮布了其Lora RSSI數據集(可在GitHub上找到),該數據用於其作品,該作品的標題為“基於RSSI的室內室內本地化”
我們要感謝Steven Kho Ang先生,Tomer Filiba先生和Stephen Karl Larroque先生的開源作品(NIST測試套件和RS編解碼器Python實施),這些作品已作為框架的一部分合併
注意:我們無法為此列表ATM提供ETA。但是我們希望我們可以盡快完成其活動
源代碼是根據MIT許可證的許可