يحتوي هذا المستودع على الكود المصدري لإطار التحقق المقترح المسمى RSSignal .
يستخدم RSSignal قياسات RSSI (إشارة إلى قوة الإشارة المستلمة) كمدخلات ، ومعالجةها من خلال بعض الخطوات وإنشاء مفتاح/كلمة مرور جاهزة للاستخدام من قبل أي خوارزميات تشفير آمنة تشفير (مثل AES).
تم أخذ الموارد المحدودة لأجهزة إنترنت الأشياء ، وإعادة إنتاج النتائج التي تم الحصول عليها وجوانب العشوائية الرئيسية في الاعتبار أثناء عملية تطوير الإطار.
بالنظر إلى عدد أجهزة إنترنت الأشياء التي تم نشرها بالفعل في جميع أنحاء العالم ، فإن مجموعة واسعة من الاحتمالات المتعلقة بتقنيات Lora و Lorawan ، ومشكلة التوزيع الرئيسية وعدم استنساخ التجارب المتعلقة بالتوليد الرئيسي في بيئات إنترنت الأشياء ، يقترح هذا العمل إطارًا مفتوحًا المصدر يحاول معالجة بعض هذه المشكلات.
كما هو موضح في العمل الآخر [Gao et al. ، 2019] ، [Yang et al. ، 2017] ، [Yang et al. ، 2018] ، يمكن اعتبار إرسال هذا الطلب المهم (مثل طلب الانضمام) في نص عادي بمثابة ثغرة أمنية لأنها تفتح إمكانية إجراء مجموعة واسعة من الهجمات. لتجنب مواقف كهذه وللمساعدة في تطوير حل آخر لتوليد المفاتيح بناءً على قياسات RSSI وتقنيات PHY ، تم نشر إطار التحقق من صحة المصدر المفتوح.
على جذر المستودع ، يذهب جميع الملفات اللازمة لتشغيل الإطار (مزيد من التفاصيل في القسم الفرعي أدناه)
يجب أن يحتوي مجلد dataset-files على ملفات مصدر مجموعة البيانات التي سيتم استخدامها كمدخلات في الإطار
يحتوي مجلد modules على جميع الوحدات الخارجية المستخدمة في الإطار ، ويجب استنساخها بشكل متكرر مع هذا المستودع أو يمكن الحصول عليها بشكل منفصل لاحقًا
يحتوي مجلد results على جميع الملفات الوسيطة التي تم إنشاؤها بواسطة كل خطوة من خطوة الإطار. يحتوي هذا المجلد على بعض المجلدات الفرعية التي تحتوي على مخرجات كل نص/خطوة ، لمزيد من المعلومات ، يرجى الرجوع إلى ملف ReadMe الخاص به.
يحتوي كل ملف داخل المجلدات الفرعية results على اسم خطوة الإطار الذي ينتمي إلى إلحاقه كبادئة لاسم الملف. الجزء التالي هو اسم مجموعة البيانات التي تنتمي إليها. ثم يأتي واللاحقة الاختيارية (بعض الخطوات تكتب args الخاصة بهم إلى اسم الملف بحيث يكون من السهل العثور على ملف معين دون الاضطرار إلى فتحه أو البحث عنه داخل المجلد). بعد DOT ، كالعادة بالنسبة لمعظم أنظمة التشغيل ، يأتي تنسيق الملف.
الصورة أدناه هي مخطط تسلسل ملخص يوضح: باللون الرمادي العلاقة بين الخطوات النظرية للإطار (الذي تم إنشاؤه لأغراض تعليمية) ؛ باللون الأزرق/purplish الخطوات التي تم تنفيذها فعليًا ؛ باللون الأخضر أسماء كل ملف نص. وفي الأزرق/تيل البرامج النصية الداعمة الإضافية التي تفيد الوظائف المفيدة.

تدفقات التنفيذ المحتملة على النحو التالي:
نوصي باستخدام الأول إذا كنت تتعلم عن إطار عملنا أو إذا كنت تحاول تمديد تنفيذها.
من فضلك ، تأكد من أن بيئتك تلبي المتطلبات أدناه إذا كنت ترغب في تشغيل الإطار.
قائمة المتطلبات لتشغيل الإطار
- منصة تشبه يونيكس
- Gnu Bash 5.1.16 أو أعلى أو أي مترجم قذيفة UNIX آخر
- بيثون 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 أو أعلى
- ريد سولومون برامج الترميز 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] ، بالنسبة لتطبيقات معينة ، ربما قد يتناسب النهج التلافيفي بشكل أفضل ، ولكن بالنسبة لمشروعنا ، اعتقدنا أن برنامج ترميز RS يكفي المتطلبات ولا يزال من السهل فهمه.
ج: من فضلك ، لاحظ أن العدد الإجمالي لقياسات RSSI التي تم الحصول عليها من كلا الجانبين يجب أن يكون متساويًا. إذا كانت مختلفة (أو لسبب ما تم تعديلها أثناء خطوة المعالجة المسبقة) ، فمن المحتمل أن يفشل برنامج ترميز RS في تصحيح البتات.
ج: لم نغير أي من وظائفها الداخلية. تعتمد الوحدة الخارجية على الالتزام 32FF14C. احتوت رمز المصدر الأصلي على جميع الاختبارات المتاحة وحتى برنامج واجهة المستخدم الرسومية ، وبالتالي فإن التعديلات الوحيدة التي قمنا بها هي: (1) المرتبطة بالرسالة (أي قمع بعض رسائل وحدة التحكم) ؛ (2) الإدخال التلقائي المعاق (على سبيل المثال ، كان الكود الأصلي مدخلًا تم إنشاؤه عشوائيًا والآن نستخدمنا) ؛ (3) تعطيل بعض الاختبارات (تتطلب بعض الاختبارات أن تكون مدخلات طويلة جدًا ذات معنى إحصائيًا ، لذلك نختار الاختبارات وفقًا للاحتياجات الإطار) ؛ (4) إضافة برنامج نصي مخصص (customekeyeval.py) يدعو واجهة برمجة تطبيقات تطبيق مجموعة الاختبار ؛ و (5) إزالة جميع الكود والبيانات غير المستخدمة/غير ضرورية. جعلت هذه التعديلات تحسنًا كبيرًا في مساحة التخزين المطلوبة لتوفير جناح الاختبار ، واستغرق الرمز الأصلي حوالي 5 ميجابايت ويستغرق نسختنا المخصصة 77 كيلو بايت فقط من مساحة القرص.
ج: أولاً ، ادرس أساسيات Lora (إذا تمكنت من قراءة المستندات من Semtech أو Lora Alliance أو TTN ، جيد. إذا لم يكن الأمر كذلك ، فحاول أن تشاهد بعض مقاطع الفيديو المحدثة على YouTube - فقد يكون تجنب المقاطع القديمة فكرة جيدة لأنها قد تكون قديمة لأن Lora تتطور باستمرار). ثم ، حاول إلقاء نظرة على العمل بواسطة [Dacruz et al. ، 2021]. تتمثل الخطوة التالية في استنساخ هذا الريبو ، وقراءة ملفات 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
يود المؤلفون الاعتراف بالسيد بيدرو إيفو دا كروز على جميع المعرفة المشتركة والسيد رودريغو أوليفيرا سيلفا للحصول على المشورة الفنية المقدمة أثناء تطوير الإطار
نود أن نشكر الجامعة الفيدرالية في جويز دي فورا وفابميج و FAPESP لدعم هذا العمل مالياً
نود أن نشكر أيضًا السيد ماريك سيمكا والسيد Ladislav Polak لإصدارهم في مجموعة بيانات Lora RSSI (متوفرة على Github) والتي تم استخدامها لعملهما بعنوان "توطين داخلي مقرها RSSI" باستخدام Lora في فرقة ISM 2.4 جيجاهرتز
نود أن نعترف بالسيد ستيفن خو آنغ والسيد تومر فيليبا والسيد ستيفن كارل لارو على عملهم مفتوح المصدر (جناح اختبار NIST و RS Codec Python) التي تم دمجها كجزء من الإطار
ملاحظة: لا يمكننا تقديم ETA لهذه القائمة ATM. ومع ذلك نأمل أن نتمكن من إنهاء أنشطتها في أسرع وقت ممكن
رمز المصدر مرخص بموجب ترخيص معهد ماساتشوستس للتكنولوجيا