"Telegraph" - e-post utan internet

God dag!

Jag skulle vilja dela några intressanta tankar med communityn om att skapa en fristående decentraliserad e-post och visa hur en befintlig implementering fungerar i praktiken.

Till en början utvecklades "Telegraph" som ett amatörkommunikationsmedel mellan medlemmar i vår lilla studentgemenskap, som på ett eller annat sätt ägnade sin verksamhet åt datateknik och kommunikation.

Nota bene: "Telegraf" är ett amatörkommunikationsmedel; Det verkar ganska problematiskt att dra praktiska fördelar i industriell skala, men detta problem kan knappast kallas betydande i någon utsträckning - vi anser att vårt huvudmål är att direkt uppmärksamma utvecklingen av denna typ av kommunikationssystem.

Vi är benägna att tro att ett ökat allmänintresse för utvecklingen av olika kommunikationssystem är nödvändigt och ganska viktigt, eftersom att förstå de grundläggande principerna för hur dessa system fungerar och vad de bygger på är den viktigaste nyckeln till att öka medborgarnas medvetenhet om informationssäkerhet. frågor.

"Telegraph" - e-post utan internet

Achtung!För att undvika eventuella missförstånd kan du i vissa fall bläddra igenom bilderna:
"Telegraph" - e-post utan internet

Systemet bygger på volontärer och ren entusiasm – vi gillar bara det vi gör. Du kan betrakta detta som en hobby och du kommer inte att ha fel - trots allt finns det fortfarande älskare av kommunikation genom användning av papperskorrespondens; "Telegraf" kan i de flesta fall representeras som en digital implementering av principerna för vanlig post.

Telegraph är en fristående e-postanalog som låter dig skicka enkla textmeddelanden utan att använda Internet. "Telegraf" i en eller annan grad kan hänföras till Sneakernet - ett sätt att utbyta information utan att använda ett nätverk.

Flash-enheter används som brevlådor, och terminaler - datorer, som är unika åtkomstpunkter för att ta emot och överföra elektronisk korrespondens - fungerar som postkontor.

Låt oss överväga det enklaste exemplet på interaktion med systemet. Vi har två flashenheter och en terminal i lager. Själva skriptet innehåller de nödvändiga globala variablerna för efterföljande interaktion med systemet - terminalnummer, sökväg till roten, etc.

Om vi ​​ansluter en flyttbar enhet till terminalen och kör skriptet kommer den att försöka ta emot utgående meddelanden från katalogen /mnt/Telegraph/Utkorg och överför dem till ditt minne och leta sedan efter nya meddelanden i ditt minne för den aktuella användaren. Om det finns några, skriv ner dem /mnt/Telegraph/Inkorg.

Registrerar nya enheter

Det händer ganska slumpmässigt. Skriptet hittar nya flashenheter som är anslutna till systemet och försöker matcha deras unika ID:n med de som presenteras i roten. Om enheter inte tidigare har registrerats kommer de att formateras i enlighet med reglerna som anges av Telegraph.

Efter registrering av en ny enhet tar rotstrukturen följande form:

Visa inlägg på imgur.com

I konfigurationsfilen config.ini, som ligger i roten på flashenheten, det finns systeminformation - en unik identifierare och en hemlig nyckel.

Visa inlägg på imgur.com

Ge folket lite rom!

Nej, seriöst! Du kan få källorna här, och det är dags för oss att sakta gå från teori till praktik.

Men jag borde säga några fler ord om hur meddelandesystemet fungerar i praktiken.

Låt oss först ta reda på vad en elvasiffrig unik identifierare består av. T.ex, 10455000001.

Den första siffran 1, är ansvarig för landsnumret. Internationell kod - 0, Ryssland i det här fallet - 1.

Därefter kommer fyra siffror som är ansvariga för numret på den region där terminalen är belägen. 0455 är stadsdelen Kolomna.

De följs av två siffror - 00, - direkt ansvarig för terminalnumret.

Och bara då - fyra siffror, som är serienumret för användaren som tilldelats denna terminal. Vi har det här - 0001. Det finns också 0000 — detta nummer hör direkt till själva terminalen. Du kan inte skicka skriftlig korrespondens till den, men terminalen själv använder detta nummer för att skicka servicemeddelanden till användare. Till exempel om meddelandet inte kunde levereras av någon anledning.

Visa inlägg på imgur.com

I roten av vår "brevlåda" finns två kataloger som behövs för att ta emot och skicka textmeddelanden. När en enhet är ansluten till terminalen skickas utgående meddelanden till servern från "Utkorgen"-katalogen och inkommande meddelanden laddas in i "Inkorgen", vilket är logiskt.

Varje fil, beroende på katalogen, namnges av mottagarens eller avsändarens nummer.

Om vi ​​försöker skicka ett meddelande till en icke-existerande mottagare kommer terminalen att skicka ett felmeddelande till oss.

Visa inlägg på imgur.com

Men om vi bestämmer oss för att skicka ett brev till en adressat på en annan terminal (oavsett om det finns eller inte), kommer det att registreras i terminalens minne innan agenten överför den skriftliga korrespondensen från vår terminal till sin.

Visa inlägg på imgur.com

När filialagenten 10500000000 (med andra ord, brevbäraren) kommer att ansluta sin enhet till vår terminal, utgående brev kommer att överföras till hans enhet. Därefter, när han ansluter sin enhet till sin terminal, kommer dessa bokstäver att dumpas i terminalens minne och väntar på att mottagaren laddar ner dem till sin flashenhet.

Kommunikationssession

Låt oss försöka skicka ett meddelande med texten "Hej!" från 10455000001 к 10455000002.

Visa inlägg på imgur.com

Det är allt!

Jag tar gärna emot all kritik av projektets källkod och själva artikeln.

Tack för din uppmärksamhet.

Källa: will.com

Lägg en kommentar