이 저장소에는 RSSignal 이라는 제안 된 유효성 검사 프레임 워크의 소스 코드가 포함되어 있습니다.
RSSignal은 RSSI (수신 신호 강도 표시) 측정을 입력으로 사용하고 일부 단계를 통해 처리하며 암호화 보안 암호화 알고리즘 (예 : AES)에서 사용할 수 있도록 준비된 키/비밀번호를 생성합니다.
IoT 장치의 제한된 리소스, 획득 된 결과의 재현성 및 주요 무작위성 측면은 프레임 워크 개발 과정에서 고려되었습니다.
이미 전 세계적으로 배포 된 IoT 장치의 수를 고려할 때 Lora 및 Lorawan 기술과 관련된 광범위한 가능성, 주요 분포 문제 및 IoT 환경에서 주요 생성과 관련된 실험의 재현성 부족으로 인해이 작업은 이러한 문제 중 일부를 해결하려는 오픈 소스 프레임 워크를 제안합니다.
다른 작업에 대해 설명한 바와 같이 [Gao et al., 2019], [Yang et al., 2017], [Yang et al., 2018], 일반 텍스트로 그러한 중요한 요청을 보내는 것은 광범위한 공격을 수행 할 가능성이 열리기 때문에 보안 취약성으로 간주 될 수 있습니다. 이와 같은 상황을 피하고 RSSI 측정 및 PHY 기술을 기반으로 키 생성에 대한 다른 솔루션을 개발하기 위해 오픈 소스 검증 프레임 워크가 배포되었습니다.
저장소의 루트에서 프레임 워크를 실행하는 데 필요한 모든 파일을 사용합니다 (아래 하위 섹션의 자세한 내용).
dataset-files 폴더에는 프레임 워크에서 입력으로 사용될 데이터 세트 소스 파일이 포함되어야합니다.
modules 폴더에는 프레임 워크가 사용하는 모든 외부 모듈이 포함되어 있으며,이 저장소와 함께 재귀 적으로 복제되거나 나중에 별도로 얻을 수 있습니다.
results 폴더에는 프레임 워크의 각 단계에서 생성 된 모든 중간 파일이 포함되어 있습니다. 이 폴더에는 각 스크립트/단계의 출력이있는 일부 하위 폴더가 있습니다. 자세한 내용은 readme 파일을 참조하십시오.
results 의 하위 폴더 내부의 각 파일에는 파일 이름의 접두사로 추가 된 프레임 워크 단계 이름이 있습니다. 다음 부분은 데이터 세트의 이름입니다. 그런 다음 옵션 접미사 (일부 단계는 파일 이름에 args를 작성하므로 폴더 내부에서 열리지 않고 특정 파일을 쉽게 찾을 수 있습니다). 대부분의 운영 체제에서 평소와 같이 DOT 이후에는 파일 형식이 제공됩니다.
아래 이미지는 다음을 보여주는 요약 된 시퀀스 다이어그램입니다. 회색으로 프레임 워크의 이론적 단계 (교훈적인 목적을 위해 생성 된 곳) 사이의 관계; 블루/퍼플 리쉬에서 실제로 구현 된 단계; 녹색으로 각 스크립트 파일의 이름; 그리고 파란색/청록색으로 유용한 기능을 제공하는 추가 지원 스크립트.

가능한 두 가지 실행 흐름은 다음과 같습니다.
프레임 워크에 대해 배우거나 구현을 확장하려는 경우 첫 번째 제품을 사용하는 것이 좋습니다.
프레임 워크를 실행하려면 환경이 아래 요구 사항을 충족하는지 확인하십시오.
프레임 워크를 실행하기위한 요구 사항 목록
- 유닉스와 같은 플랫폼
-GNU Bash 5.1.16 이상 또는 기타 유닉스 쉘 통역사
-Python 3.10.2 이상 (이미 3.10.8로 테스트)
-Python-pip 22.3.1 이상
-Penssl 1.1.1n 또는 3.0 이상 (이미 3.0.7로 테스트)
-Numpy 1.22.2 이상 (이미 1.23.5로 테스트)
-Scipy 1.9.3 이상
- 리드- 솔로몬 코덱 1.5.4 **
-Nist Randomness Test Suite ***
* 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는 다양한 무선 기술 (예 : Wi -Fi, Zigbee, Lora 등)에서 사용할 수 있기 때문에 실제 환경 구현과 관련된 단계에 중점을 두지 않았으며 각각의 표준은 구현 방법에 영향을 미치는 자체 표준이 있기 때문입니다.
A : 위의 답변을 읽으십시오. 그것이 어떻게 될지에 대한 예를 들어 다른 프로젝트를 참조하십시오.
A : 그렇습니다. 그러나 우리는 가능한 한 교훈적이고 모듈식이려고 노력한 후 모듈 사이의 신뢰성을 줄여서 더 쉽게 교체 할 수있었습니다.
A : [Dacruz et al., 2021]의 연구에 대해 언급 한 바와 같이, 특정 응용 분야의 경우, 컨볼 루션 접근 방식이 더 잘 맞을 수 있지만, 프로젝트의 경우 RS 코덱이 요구 사항에 충분하고 여전히 이해하기 쉽다고 생각했습니다.
A : 양측에서 얻은 총 RSSI 측정 수는 동일해야합니다. 그것들이 다르면 (또는 어떤 이유로 전처리 단계에서 수정 된 경우) RS 코덱이 비트를 수정하지 못할 가능성이 있습니다.
A : 우리는 내부 기능을 변경하지 않았습니다. 외부 모듈은 Commit 32FF14C를 기반으로합니다. 원래 소스 코드에는 사용 가능한 모든 테스트와 GUI 프로그램이 포함되어 있으므로 우리가 만든 유일한 수정 사항은 다음과 같습니다. (i) 메시지 관련 (즉, 일부 콘솔 메시지 억제); (ii) 비활성화 된 자동 입력 (예 : 원래 코드는 무작위로 생성 된 입력을 가졌으며 이제 우리는 우리 자신을 사용합니다); (iii) 일부 테스트를 비활성화했습니다 (일부 테스트는 통계적으로 의미가 있어야하는 매우 긴 입력이 필요하므로 프레임 워크 요구에 따라 테스트를 선택합니다); (iv) 테스트 스위트 구현 API를 호출하는 사용자 정의 스크립트 (CustomKeyEval.py) 추가; (v) 사용하지 않은/불필요한 코드 및 데이터를 제거합니다. 이러한 수정으로 테스트 스위트를 사용할 수 있도록하는 스토리지 공간이 크게 향상되었으며, 원래 코드는 ~ 5MB를 차지했으며 사용자 정의 버전은 77KB의 디스크 공간 만 필요합니다.
A : 먼저, LORA의 기본 사항을 연구하십시오 (Semtech, Lora Alliance 또는 TTN에서 문서를 읽을 수 있다면, 그렇지 않은 경우 YouTube에서 최신 비디오를보십시오. Lora가 지속적으로 발전하기 때문에 오래된 아이디어를 피할 수 있습니다). 그런 다음 [Dacruz et al., 2021]의 작업을 살펴보십시오. 다음 단계는이 repo를 복제하고, ReadMe 파일을 신중하게 읽고, 소스 코드를 연구하는 것입니다 (Python 프로그래밍 언어를 사용하는 방법을 알아야합니다. 좋은 소식은 일반적으로 사람들이 쉽게 배우기가 쉽게 찾아 내고 이미 공유하거나 온라인으로 찾거나 다른 사람들과 함께 사용하기 시작한다는 것입니다.
이 작업을 다음과 같이 인용하십시오.
De Oliveira, L., Chaves, L., & Silva, E. (2022). RsSignal : UM Arcabouço Para Evolução de Técnicas de Geração de Chaves Baseadas em rssi. anais do xxii simpósio brasileiro em segurança da informação e 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
저자는 프레임 워크 개발 중에 제공된 기술 조언에 대해 공유 한 모든 지식과 Rodrigo Oliveira Silva 씨를 인정하고 싶습니다.
이 작업을 재정적으로 지원해 주신 Juiz de Fora, Fapemig 및 Fapesp의 Federal University에게 감사의 말씀을 전합니다.
우리는 또한 2.4GHz ISM 대역에서 LORA를 사용하는 RSSI 기반 실내 현지화에 사용 된 Lora RSSI 데이터 세트 (GitHub에서 사용 가능)를 공개 한 Marek Simka와 Ladislav Polak 씨에게도 감사의 말씀을 전합니다.
우리는 프레임 워크의 일부로 통합 된 오픈 소스 작업 (NIST Test Suite 및 RS Codec Python 구현)을 위해 Steven Kho Ang, Tomer Filiba 씨 및 Stephen Karl Larroque 씨를 인정하고 싶습니다.
참고 : 이 목록 ATM에 대한 ETA를 제공 할 수 없습니다. 그러나 우리는 최대한 빨리 활동을 마칠 수 있기를 바랍니다
소스 코드는 MIT 라이센스에 따라 라이센스가 부여됩니다