Этот репозиторий содержит исходный код предложенной структуры проверки, называемой 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 имеет имя шага Framework, которое он принадлежит добавленному в качестве префикса имени файла. Следующая часть - это имя набора данных, которому он принадлежит. Затем появляется и необязательный суффикс (некоторые шаги записывают свои аргументы в имени файла, поэтому легко найти конкретный файл, не открывая его или не просматривает его внутри папки). После того, как точка, как обычно для большинства операционных систем, входит в формат файла.
Изображение ниже представляет собой суммированную диаграмму последовательности, которая показывает: в сером взаимосвязь между теоретическими этапами структуры (где создается для дидактических целей); в синем/пурпурном фактически реализованных шагах; В зеленом именах каждого файла сценария; и в синем/чисете дополнительные вспомогательные сценарии, которые полезные функциональные возможности.

Два возможных потока выполнения следующие:
Мы рекомендуем использовать первый, если вы узнаете о нашей структуре или если вы пытаетесь расширить ее реализацию.
Пожалуйста, убедитесь, что ваша среда соответствует приведенным ниже требованиям, если вы хотите запустить структуру.
Список требований для запуска структуры
- Unix-подобная платформа
- GNU Bash 5.1.16 или выше или другого интерпретатора Shell Unix
- Python 3.10.2 или выше (уже протестирован с 3,10,8)
- Python-PIP 22.3.1 или выше
- openssl 1.1.1.1n или 3,0 или выше (уже протестировано с 3,0,7)
- Numpy 1,22,2 или выше (уже протестировано с 1,23,5)
- Scipy 1.9.3 или выше
- Creed-Solomon Codec 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
Где вариант - это шаг автоматизации скрипта. Пожалуйста, обратитесь к списку ниже.
**** Каждый вариант вызывает другой модуль/файл фреймворта. Можно позвонить каждому отдельно, и мы рекомендуем сделать это, если вы изучаете структуру (т. Е. Не используете «Автопродажи», пока вы не поймете весь процесс)
Некоторые часто задаваемые вопросы и их ответы
О: Мы не сосредоточились на каком -либо шаге, который включал реализацию среды реального мира, потому что, как указано в нашей работе, RSSI доступен в ряде беспроводных технологий (например, Wi -Fi, Zigbee, Lora и т. Д.), И у каждого есть свои собственные стандарты, которые влияют на то, как будет выполнена реализация.
A: Пожалуйста, прочитайте ответ выше. Для примера того, как это будет, пожалуйста, обратитесь к этому другому проекту.
A: Да, это могло бы. Тем не менее, мы старались быть такими же дидактическими и модульными, насколько это возможно, затем попытались снизить надежность между модулями, чтобы их можно было легче заменять.
A: Как упоминалось в работе [Dacruz et al., 2021], для определенных приложений, возможно, сверточный подход может подходить лучше, но для нашего проекта мы думали, что кодек RS достаточно требований и до сих пор так же прост для понимания.
A: Пожалуйста, обратите внимание, что общее количество измерений RSSI, полученных с обеих сторон, должно быть равным. Если они разные (или по какой -то причине они были изменены на шаге предварительной обработки), скорее всего, кодек RS не сможет исправить биты.
A: Мы не изменили его внутреннюю функциональность. Внешний модуль основан на Commit 32ff14c. Первоначальный исходный код содержал все доступные тесты и даже программу графического интерфейса, поэтому единственными модификациями, которые мы внесли: (i), связанные с сообщениями (то есть подавление некоторых консольных сообщений); (ii) отключенный автоматический ввод (например, исходный код имел случайно сгенерированный вход, и теперь мы используем свой собственный); (iii) отключили некоторые тесты (некоторые тесты требуют, чтобы очень длинные входы были статистически значимыми, поэтому мы выбираем тесты в соответствии с потребностями в рамках); (iv) добавление пользовательского скрипта (customkeyeval.py), который вызывает API реализации теста набор; и (v) удаление всего неиспользованного/ненужного кода и данных. Эти модификации сделали огромное улучшение места для хранения, необходимое для получения тестового набора, исходный код занял ~ 5 МБ, а наша пользовательская версия занимает всего 77 КБ дискового пространства.
A: Во -первых, изучите основы Лоры (если вам удастся прочитать документы из Semtech, Lora Alliance или TTN, хорошо. Если нет, попробуйте посмотреть некоторые обновленные видео на YouTube - избегание старых может быть хорошей идеей, так как они могут быть устаревшими, потому что Лора постоянно развивается). Затем попробуйте взглянуть на работу [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 , (стр. 111-124). Porto Alegre: 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
Авторы хотели бы поблагодарить г -на Педро Иво да Круз за все общие знания и г -н Родриго Оливейра Сильва за технические советы, данные во время разработки структуры
Мы хотели бы поблагодарить Федеральный университет Юиз де Фора, Fapemig и FAPESP за финансовую поддержку этой работы
Мы хотели бы поблагодарить также г-на Марека Симки и г-на Ладислава Полака за то, что он выпустил свой набор данных Lora RSSI (доступный на GitHub), который использовался для их работы под названием для локализации в помещении RSSI с использованием Lora в 2,4 ГГц ISM Band
Мы хотели бы поблагодарить г -на Стивена Хо Энг, г -на Томера Филиба и г -на Стивена Карла Ларрока за их работу с открытым исходным кодом (NIST Test Suite и RS Codec Python реализации), которые были включены в рамках рамки
Примечание: мы не можем предоставить ETA для этого списка банкомата. Однако мы надеемся, что сможем закончить его деятельность как можно скорее
Исходный код лицензирован по лицензии MIT