« Télégraphe » — un service de messagerie sans Internet.

Bonjour !

J'aimerais partager avec la communauté des réflexions intéressantes sur la création d'un service de messagerie électronique autonome et décentralisé et démontrer en pratique le fonctionnement d'une implémentation existante.

À l'origine, « Télégraphe » a été conçu comme un moyen de communication amateur entre les membres de notre petite communauté étudiante, dédiée d'une manière ou d'une autre à l'informatique et aux communications.

Nota Bene: « Télégraphe » est un moyen de communication amateur ; il semble assez problématique d'en tirer un intérêt pratique à grande échelle, mais cette question ne peut guère être considérée comme significative — notre objectif principal est d'attirer l'attention sur le développement de ce type de systèmes de communication.

Nous sommes d'avis que l'augmentation de l'intérêt général pour le développement de divers systèmes de communication est nécessaire et assez importante, car comprendre les principes fondamentaux de leur fonctionnement est la clé pour sensibiliser les citoyens aux questions de sécurité de l'information.

« Télégraphe » — un service de messagerie sans Internet.

Attention !Pour éviter tout malentendu — dans certains cas, les images peuvent être feuilletées :
« Télégraphe » — un service de messagerie sans Internet.

Le système repose sur le bénévolat et un pur enthousiasme — nous aimons simplement ce que nous faisons. Vous pouvez le considérer comme un hobby et vous n'aurez pas tort — car il existe encore des amateurs de communication par correspondance papier ; « Télégraphe » peut être vu dans la plupart des cas comme une réalisation numérique des principes de fonctionnement de la messagerie traditionnelle.

« Télégraphe » est un analogue autonome de la messagerie électronique, permettant d'envoyer des messages texte simples sans utiliser Internet. « Télégraphe » peut être considéré d'une manière ou d'une autre comme Sneakernet — une méthode d'échange d'informations sans utilisation de réseau.

Des clés USB sont utilisées comme boîtes aux lettres, et les terminaux — ordinateurs, fonctionnent comme des bureaux de poste, servant de points d'accès pour la réception et l'envoi de la correspondance électronique.

Considérons un exemple simple d'interaction avec le système. Nous disposons de deux clés USB et d'un terminal. Dans le script, les variables globales nécessaires à l'interaction avec le système sont définies : le numéro du terminal, le chemin vers la racine, et d'autres.

Si nous connectons un périphérique amovible au terminal et exécutons le script, il essaiera d'obtenir les messages sortants du répertoire /mnt/Telegraph/Outbox et de les transférer dans sa mémoire, puis de vérifier la présence de nouveaux messages pour l'utilisateur actuel. Si tel est le cas, il les enregistrera dans /mnt/Telegraph/Inbox.

Enregistrement de nouveaux dispositifs

Cela se passe de manière assez classique. Le script trouve les nouvelles clés USB connectées au système et essaie de faire correspondre leurs identifiants uniques à ceux présentés dans la racine. Si les dispositifs n'ont pas été enregistrés auparavant, ils seront formatés selon les règles énoncées par "Telegraf".

Après l'enregistrement du nouvel appareil, la structure de la racine prend la forme suivante :

View post on imgur.com

Dans le fichier de configuration config.ini, situé à la racine de la clé USB, se trouve des informations système - un identifiant unique et une clé secrète.

View post on imgur.com

Donnez de la bière aux gens !

Non, mais sérieusement ! On peut se procurer les sources ici, et il est temps pour nous de passer de la théorie à la pratique.

Mais je dois encore dire quelques mots sur la manière dont fonctionne réellement le système d'échange de messages.

Pour commencer, examinons de quoi se compose un identifiant unique à onze chiffres. Par exemple, 10455000001.

Le premier chiffre, 1, représente le numéro du pays. Le code international est - 0, la Russie, dans ce cas, est - 1.

Ensuite, il y a quatre chiffres qui représentent le numéro de la région où se trouve le terminal. 0455 — c'est le district urbain de Kolomna.

Suivent deux chiffres, - 00, - qui correspondent directement au numéro du terminal.

Et enfin, quatre chiffres qui sont le numéro d'ordre de l'utilisateur attribué à ce terminal. Chez nous, c'est - 0001. Il existe aussi un numéro qui appartient directement au terminal lui-même. On ne peut pas envoyer de correspondance écrite à ce numéro, mais le terminal utilise ce numéro pour envoyer des messages de service aux utilisateurs. Par exemple, si un message n'a pas pu être livré pour une raison quelconque. 0000 — этот номер принадлежит непосредственно самому терминалу. На него нельзя отправить письменную корреспонденцию, но зато сам терминал использует этот номер для отправки служебных сообщений пользователям. Например, если сообщение не удалось доставить по каким-либо причинам.

View post on imgur.com

À la racine de notre « boîte mail », se trouvent deux répertoires nécessaires pour recevoir et envoyer des messages texte. Lors de la connexion d'un appareil au terminal, les messages sortants sont expédiés depuis le répertoire « Outbox » vers le serveur, tandis que les messages entrants, logiquement, sont chargés dans le répertoire « Inbox ».

Chaque fichier, selon le répertoire, est nommé par le numéro du destinataire ou de l'expéditeur.

Si nous essayons d'envoyer un message à un destinataire inexistant, le terminal nous enverra un message d'erreur.

View post on imgur.com

Cependant, si nous décidons d'envoyer une lettre à un destinataire sur un autre terminal (qu'il existe ou non), elle sera enregistrée dans la mémoire du terminal jusqu'à ce que l'agent transfère la correspondance écrite de notre terminal au sien.

View post on imgur.com

Lorsque l'agent de la succursale 10500000000 (en d'autres termes — le facteur) connecte son appareil à notre terminal, les lettres sortantes seront transférées sur sa mémoire. Par la suite, lorsqu'il connectera son appareil à son terminal, ces lettres seront téléchargées dans la mémoire du terminal et attendront que le destinataire les transfère sur sa clé USB.

Session de communication

Essayons d'envoyer un message avec le texte « Bonjour ! » de 10455000001 sur 10455000002.

View post on imgur.com

C'est tout !

Je serais ravi de recevoir toute critique sur le code source du projet et l'article lui-même.

Merci de votre attention.

Source : habr.com

Acheter un hébergement fiable pour les sites avec protection DDoS, serveurs VPS VDS 🔥 Acheter un hébergement fiable pour les sites avec protection DDoS, serveurs VPS VDS | ProHoster