Repositori ini berisi kode sumber dari kerangka kerja validasi yang diusulkan yang disebut RSSignal .
RSSignal menggunakan pengukuran RSSI (Indikasi Kekuatan Sinyal yang Diterima) sebagai input, memprosesnya melalui beberapa langkah dan menghasilkan kunci/kata sandi yang siap digunakan oleh algoritma enkripsi yang aman secara kriptografis (seperti AES).
Sumber daya terbatas perangkat IoT, reproduktifitas hasil yang diperoleh dan aspek keacakan utama dipertimbangkan selama proses pengembangan kerangka kerja.
Mengingat jumlah perangkat IoT yang sudah digunakan di seluruh dunia, berbagai kemungkinan yang terkait dengan teknologi Lora dan Lorawan, masalah distribusi utama dan kurangnya reproduktifitas eksperimen yang terkait dengan generasi utama dalam lingkungan IoT, pekerjaan ini mengusulkan kerangka kerja sumber terbuka yang mencoba untuk mengatasi beberapa masalah tersebut.
Seperti yang dijelaskan pada pekerjaan lain [Gao et al., 2019], [Yang et al., 2017], [Yang et al., 2018], mengirimkan permintaan penting (karena permintaan bergabung) dalam teks biasa dapat dianggap sebagai kerentanan keamanan karena membuka kemungkinan berbagai serangan yang harus dilakukan. Untuk menghindari situasi seperti ini dan untuk membantu mengembangkan solusi lain untuk pembuatan kunci berdasarkan pengukuran RSSI dan teknik PHY, kerangka kerja validasi sumber terbuka digunakan.
Pada root repositori, pergi semua file yang diperlukan untuk menjalankan kerangka kerja (detail lebih lanjut dalam ayat di bawah)
Folder dataset-files harus berisi file sumber set data yang akan digunakan sebagai input dalam kerangka kerja
Folder modules berisi semua modul eksternal yang digunakan oleh kerangka kerja, mereka harus dikloning secara rekursif bersama dengan repositori ini atau dapat diperoleh secara terpisah nanti
Folder results berisi semua file menengah yang dihasilkan oleh setiap langkah kerangka kerja. Folder ini memiliki beberapa sub folder yang memiliki output dari setiap skrip/langkah, untuk informasi lebih lanjut silakan merujuk ke file ReadMe -nya.
Setiap file di dalam sub folder results memiliki nama langkah kerangka kerja yang dimilikinya ditambahkan sebagai awalan nama file. Bagian selanjutnya adalah nama dataset yang dimilikinya. Kemudian datang dan sufiks opsional (beberapa langkah menulis arg mereka ke nama file sehingga mudah untuk menemukan file tertentu tanpa harus membukanya atau mencarinya di dalam folder). Setelah titik, seperti biasa untuk sebagian besar sistem operasi, hadir format file.
Gambar di bawah ini adalah diagram urutan yang diringkas yang menunjukkan: dalam abu -abu hubungan antara langkah -langkah teoritis kerangka kerja (yang dibuat untuk tujuan didaktik); Biru/keunguan langkah yang sebenarnya diimplementasikan; Dengan warna hijau setiap file skrip; dan dengan warna biru/teal skrip pendukung ekstra yang fungsionalitas yang bermanfaat.

2 alur eksekusi yang mungkin adalah sebagai berikut:
Kami sarankan menggunakan yang pertama jika Anda belajar tentang kerangka kerja kami atau jika Anda mencoba memperluas implementasinya.
Silakan, pastikan lingkungan Anda memenuhi persyaratan di bawah ini jika Anda ingin menjalankan kerangka kerja.
Daftar persyaratan untuk menjalankan kerangka kerja
- Platform seperti Unix
- GNU Bash 5.1.16 atau di atas atau interpreter shell unix lainnya
- Python 3.10.2 atau di atas (sudah diuji dengan 3.10.8)
- Python-PIP 22.3.1 atau di atas
- OpenSSL 1.1.1n atau 3.0 atau di atas (sudah diuji dengan 3.0.7)
- Numpy 1.22.2 atau di atas (sudah diuji dengan 1.23.5)
- SCIPY 1.9.3 atau lebih
- Reed-Solomon Codec 1.5.4 **
- Suite tes keacakan nist ***
* Pasang mereka menggunakan PIP
** sudah dikirim dengan kerangka kerja
*** Versi khusus sudah dikirimkan dalam kerangka
git clone --recursive https://github.com/oliveiraleo/RSSignal-LoRa.git
Catatan: Opsi --recursive akan mengkloning kode kami + semua modul yang diperlukan
cd RSSignal-Lora
python -m venv pyvenv
source pyvenv/bin/activate
Instal paket yang tercantum di bagian Operating system requirements
pip install -r requirements.txt
python main_controller.py OPTION
Di mana opsi adalah langkah otomatisasi skrip. Silakan merujuk ke daftar di bawah ini.
**** Setiap opsi memanggil modul/file yang berbeda dari kerangka kerja. Dimungkinkan untuk menelepon masing -masing secara terpisah dan kami sarankan melakukannya jika Anda mempelajari kerangka kerja (yaitu tidak menggunakan "mode otomatis" sampai Anda memahami seluruh proses)
Beberapa pertanyaan yang sering diajukan dan jawaban mereka
A: Kami tidak fokus pada langkah apa pun yang melibatkan implementasi lingkungan dunia nyata karena, sebagaimana dinyatakan dalam pekerjaan kami, RSSI tersedia dalam berbagai teknologi nirkabel (misalnya WiFi, Zigbee, Lora, dll) dan masing -masing memiliki standar sendiri yang mempengaruhi bagaimana implementasi akan dilakukan.
A: Tolong, baca jawabannya di atas. Sebagai contoh tentang bagaimana nantinya, silakan merujuk pada proyek lain itu.
A: Ya, mungkin akan. Namun, kami berusaha menjadi didaktik dan modular mungkin, kemudian kami mencoba mengurangi ketergantungan antara modul sehingga mereka dapat lebih mudah ditukar.
A: Seperti yang disebutkan pada pekerjaan oleh [Dacruz et al., 2021], untuk aplikasi tertentu, mungkin pendekatan konvolusional mungkin lebih cocok, tetapi untuk proyek kami, kami berpikir bahwa codec RS cukup persyaratan dan masih mudah dipahami.
A: Harap, perhatikan bahwa jumlah total pengukuran RSSI yang diperoleh dari kedua sisi harus sama. Jika mereka berbeda (atau karena alasan tertentu mereka dimodifikasi selama langkah preprocess), kemungkinan codec RS akan gagal memperbaiki bit.
A: Kami tidak mengubah fungsi internal apa pun. Modul eksternal didasarkan pada komit 32ff14c. Kode sumber asli berisi semua tes yang tersedia dan bahkan program GUI, jadi satu -satunya modifikasi yang kami buat adalah: (i) pesan terkait (yaitu menekan beberapa pesan konsol); (ii) input otomatis yang dinonaktifkan (misalnya kode asli memiliki input yang dihasilkan secara acak dan sekarang kami menggunakan sendiri); (iii) menonaktifkan beberapa tes (beberapa tes memerlukan input yang sangat panjang untuk bermakna secara statistik, jadi kami memilih tes sesuai dengan kebutuhan kerangka kerja); (iv) Menambahkan skrip khusus (customKeyeval.py) yang memanggil API implementasi Test Suite; dan (v) menghapus semua kode dan data yang tidak digunakan/tidak dibutuhkan. Modifikasi itu membuat peningkatan besar dalam ruang penyimpanan yang diperlukan agar test suite tersedia, kode asli mengambil ~ 5MB dan versi khusus kami hanya membutuhkan ruang disk 77kb.
A: Pertama, pelajari dasar -dasar Lora (jika Anda berhasil membaca dokumen dari Semtech, Lora Alliance atau TTN, bagus. Jika tidak, cobalah untuk menonton beberapa video terkini di YouTube - menghindari yang lama mungkin merupakan ide yang bagus karena mungkin sudah ketinggalan zaman karena Lora terus berkembang). Kemudian, cobalah untuk melihat pekerjaan oleh [Dacruz et al., 2021]. Langkah selanjutnya adalah mengkloning repo ini, membaca dengan cermat file readme, mempelajari kode sumber (Anda harus tahu cara menggunakan bahasa pemrograman python. Kabar baiknya adalah bahwa biasanya orang merasa sangat mudah untuk dipelajari), memahaminya dan mulai menggunakannya dengan kumpulan data yang sudah dibagikan atau dengan beberapa orang lain yang Anda temukan secara online atau membuat sendiri.
Tolong, mengutip pekerjaan ini sebagai:
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. Dalam anais do xxii Simpósio Brasileiro em Segurança da Informação e de Sistemas Computacionais , (hal. 111-124). Porto Alegre: SBC. doi: 10.5753/sbseg.2022.225333
Atau gunakan kode BIBTEX di bawah ini:
@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}
}
Untuk akses langsung, silakan tautkan doi:
Doi: https://doi.org/10.5753/sbseg.2022.225333
Para penulis ingin mengakui Tn. Pedro Ivo da Cruz atas semua pengetahuan yang dibagikan dan Tn. Rodrigo Oliveira Silva atas nasihat teknis yang diberikan selama pengembangan kerangka kerja
Kami ingin mengucapkan terima kasih kepada Universitas Federal Juiz de Fora, Fapemig dan Fapesp karena mendukung pekerjaan ini secara finansial
Kami juga ingin mengucapkan terima kasih
Kami ingin mengakui Tn. Steven Kho Ang, Mr. Tomer Filiba dan Tn. Stephen Karl Larroque untuk pekerjaan open source mereka (NIST Test Suite dan implementasi RS Codec Python) yang dimasukkan sebagai bagian dari kerangka kerja tersebut
Catatan: Kami tidak dapat memberikan ETA untuk daftar ATM ini. Namun kami berharap kami bisa menyelesaikan aktivitasnya secepatnya
Kode sumber dilisensikan di bawah lisensi MIT