Mathématiques | Informatique
Colin Stefani, 2005 | Villars-sur-Glâne , FR
This paper explores the development process of a decentralized communication method via an Android app named «MeshLink». Utilizing Bluetooth Low Energy technology (BLE), which is ubiquitous in modern smartphones, the concept of Mesh Networking and strong cryptography via AES-256 and RSA-2048, the app allows for secure and reliable messaging. Each user of the app functions both as a server and a client, enabling messages to hop between devices and thereby extending the default transmission range of BLE.
Problématique
How to create a decentralized messaging system using Bluetooth as an alternative to a mobile network?
Méthodologie
The development process of this project can be split into three phases. The first one consisted in the research of suitable technologies and reviewing existing papers on this subject. Then, for the prototyping phase, Rust and TypeScript were the two first programming languages used to build the initial prototypes, but they were quickly put apart since they were not suitable for a mobile app. Some papers on Bluetooth Low Energy (BLE) were mentioning already existing standards for Mesh Networks, but I decided to reimplement it from scratch for practical reasons, because the existing stack solutions were overcomplicated for a single developer project. After I decided to use Kotlin as the main programming language for this app, the second phase of this project started. I first built the core features, such as peer-to-peer messaging and end-to-end encryption, and in a second time I added less important features, for example user interfaces and broadcast. Finally, the third phase involved testing the final application in field use cases.
Résultats
The final product of this paper is far more advanced than the expected initial proof of concept, as it could be used in real world use-cases. An approximate value of 60 meters per hop has been found with the previous tests, and an optimal empiric value of 12 maximum hops has been defined, which lead to a theoretical transmission distance (with hops) of 720 meters. This previous value is due to the fact that in a perfect scenario where each user would be at a distance of 60 meters from each other, 12 hops would result in a total distance of 720 meters. The app can send messages to specific contacts, which can be added via a discovery system or a QR code, or broadcast them around. The data is locally encrypted and secured via a password defined by the user on the first startup. The authenticity of the user profiles can be checked with a checksum of their public key.
Discussion
Now that the project is in a stable state, it turns out it would have been a better idea not to reimplement the whole BLE Mesh stack from scratch. In the process of creating this application, I came across various simple implementations of this stack, but it was already too late to restart from zero, so I decided to keep going with this. As I did not yet conduct any large-sized test, I cannot be assured that the theoretical value of 720 meters can be achieved, because we are not taking into account the external factors that could affect it, such as simply the human body, composed at 60% of water, which is a very good radio insulator. Another functionality that has not yet been implemented is the signature of each sent message, to ensure that there isn’t a MITM (Man-in-the-middle) impersonating the sender.
Conclusions
The MeshLink application, developed using Kotlin and Bluetooth Low Energy (BLE) technology, successfully demonstrates a decentralized, secure messaging system. The final product is available on the Google Play Store, and a CI/CD system has been setup on Github Action to ensure that a build for the latest version is always available separately on Github Releases for users that cannot access the Google ecosystem.
Appréciation de l’expert
Medard Rieder
Ce travail montre que l’auteur a une solide compréhension technique et qu’il est très innovant. Il est également évident qu’une approche systématique a été adoptée dans la réalisation de ce travail. Le résultat final, un logiciel tout à fait fonctionnel, laisse encore quelques questions en suspens, mais constitue une base solide pour les développements futurs. L’approche scientifique, l’originalité de l’idée, le savoir-faire du candidat et le fait qu’il y a un produit fonctionnel sont les points forts de ce projet.
Mention:
très bien
Collège de Gambach, Fribourg
Enseignant: Daniel Domingues