ที่เก็บนี้มีซอร์สโค้ดของกรอบการตรวจสอบความถูกต้องที่เสนอที่เรียกว่า 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 ตามปกติสำหรับระบบปฏิบัติการส่วนใหญ่มารูปแบบไฟล์
ภาพด้านล่างเป็นแผนภาพลำดับสรุปที่แสดง: ในสีเทาความสัมพันธ์ระหว่างขั้นตอนทางทฤษฎีของกรอบ (ซึ่งสร้างขึ้นเพื่อวัตถุประสงค์ในการสอน); ในสีน้ำเงิน/สีม่วงขั้นตอนที่ดำเนินการจริง; ชื่อกรีนชื่อของแต่ละไฟล์สคริปต์ และในสีน้ำเงิน/นกเป็ดน้ำสคริปต์สนับสนุนพิเศษซึ่งมีประโยชน์ฟังก์ชัน

กระแสการดำเนินการ 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
ตัวเลือกคือขั้นตอนของสคริปต์อัตโนมัติ โปรดดูรายการด้านล่าง
**** แต่ละตัวเลือกเรียกโมดูล/ไฟล์อื่นของเฟรมเวิร์ก เป็นไปได้ที่จะเรียกแต่ละคนแยกกันและเราขอแนะนำให้ทำเช่นนั้นหากคุณกำลังศึกษาเฟรมเวิร์ก (เช่นไม่ได้ใช้ "โหมดอัตโนมัติ" จนกว่าคุณจะเข้าใจกระบวนการทั้งหมด)
คำถามที่พบบ่อยและคำตอบของพวกเขา
ตอบ: เราไม่ได้มุ่งเน้นไปที่ขั้นตอนใด ๆ ที่เกี่ยวข้องกับการใช้งานสภาพแวดล้อมในโลกแห่งความเป็นจริงเพราะตามที่ระบุไว้ในงานของเรา RSSI มีอยู่ในเทคโนโลยีไร้สาย (เช่น WiFi, Zigbee, Lora และอื่น ๆ ) และแต่ละคนมีมาตรฐานของตัวเอง
ตอบ: โปรดอ่านคำตอบด้านบน ตัวอย่างเกี่ยวกับว่ามันจะเป็นอย่างไรโปรดดูโครงการอื่น ๆ
ตอบ: ใช่มันอาจจะ อย่างไรก็ตามเราพยายามที่จะสอนและเป็นโมดูลาร์ให้มากที่สุดจากนั้นเราพยายามลดความน่าเชื่อถือระหว่างโมดูลเพื่อให้สามารถเปลี่ยนได้ง่ายขึ้น
ตอบ: ดังที่ได้กล่าวไว้ในงานโดย [Dacruz et al., 2021] สำหรับแอปพลิเคชันบางอย่างอาจเป็นวิธีการ convolutional ที่ดีกว่า แต่สำหรับโครงการของเราเราคิดว่า RS Codec นั้นพอเพียงข้อกำหนดและยังคงเข้าใจได้ง่าย
ตอบ: โปรดทราบว่าจำนวนการวัด RSSI ทั้งหมดที่ได้จากทั้งสองฝ่ายควรเท่ากัน หากพวกเขาแตกต่างกัน (หรือด้วยเหตุผลบางอย่างพวกเขาได้รับการแก้ไขในระหว่างขั้นตอนการประมวลผลล่วงหน้า) โอกาสที่ RS Codec จะล้มเหลวในการแก้ไขบิต
ตอบ: เราไม่ได้เปลี่ยนฟังก์ชั่นภายในใด ๆ โมดูลภายนอกขึ้นอยู่กับการกระทำ 32ff14c ซอร์สโค้ดดั้งเดิมมีการทดสอบที่มีอยู่ทั้งหมดและแม้กระทั่งโปรแกรม GUI ดังนั้นการแก้ไขเพียงอย่างเดียวที่เราทำคือ: (i) ข้อความที่เกี่ยวข้อง (เช่นระงับข้อความคอนโซลบางข้อความ); (ii) ปิดใช้งานอินพุตอัตโนมัติ (เช่นรหัสต้นฉบับมีอินพุตที่สร้างแบบสุ่มและตอนนี้เราใช้ของเราเอง); (iii) ปิดใช้งานการทดสอบบางอย่าง (การทดสอบบางอย่างต้องการอินพุตที่ยาวมากเพื่อให้มีความหมายทางสถิติดังนั้นเราจึงเลือกการทดสอบตามความต้องการของกรอบ) (iv) การเพิ่มสคริปต์ที่กำหนดเอง (CustomKeyEval.py) ที่เรียก API การใช้งานชุดทดสอบ และ (v) ลบรหัสและข้อมูลที่ไม่ได้ใช้ทั้งหมด/ไม่จำเป็น การดัดแปลงดังกล่าวทำให้การปรับปรุงพื้นที่เก็บข้อมูลอย่างมากจำเป็นต้องมีชุดทดสอบรหัสต้นฉบับใช้เวลา ~ 5MB และรุ่นที่กำหนดเองของเราใช้พื้นที่ดิสก์เพียง 77KB
ตอบ: ก่อนอื่นให้ศึกษาพื้นฐานของ LORA (ถ้าคุณจัดการอ่านเอกสารจาก Semtech, Lora Alliance หรือ TTN ดีถ้าไม่ลองดูวิดีโอล่าสุดบน YouTube - การหลีกเลี่ยงสิ่งเก่าอาจเป็นความคิดที่ดี จากนั้นลองดูงานโดย [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) Porto Alegre: SBC ดอย: 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:
ดอย: https://doi.org/10.5753/SBSEG.2022.22533333
ผู้เขียนต้องการรับทราบ Mr. Pedro Ivo da Cruz สำหรับความรู้ทั้งหมดที่ใช้ร่วมกันและ Mr. Rodrigo Oliveira Silva สำหรับคำแนะนำทางเทคนิคที่ได้รับในระหว่างการพัฒนาเฟรมเวิร์ก
เราขอขอบคุณ University of Juiz de Fora, Fapemig และ Fapesp สำหรับการสนับสนุนงานนี้ทางการเงิน
เราขอขอบคุณ Mr. Marek Simka และ Mr. Ladislav Polak สำหรับการปล่อยชุดข้อมูล Lora RSSI ของพวกเขา (มีอยู่ใน GitHub) ซึ่งใช้สำหรับงานของพวกเขาที่มีชื่อว่า ในการแปลในร่มที่ใช้ RSSI โดยใช้ LORA ในวง 2.4 GHz ISM Band
เราอยากจะรับทราบนายสตีเวนโกหะองนายโทเมอร์ฟิลิบาและนายสตีเฟ่นคาร์ลลาร์โรกสำหรับงานโอเพ่นซอร์สของพวกเขา (ชุดทดสอบ NIST
หมายเหตุ: เราไม่สามารถให้ ETA สำหรับรายการ ATM นี้ได้ อย่างไรก็ตามเราหวังว่าเราจะทำกิจกรรมให้เสร็จโดยเร็วที่สุด
ซอร์สโค้ดได้รับอนุญาตภายใต้ใบอนุญาต MIT