«Telegraph» - e-mail uden internet

Goddag!

Jeg vil gerne dele nogle interessante tanker med fĂŠllesskabet om oprettelsen af en autonom decentraliseret e-mail og demonstrere i praksis, hvordan en allerede eksisterende implementering fungerer.

Oprindeligt blev "Telegraf" udviklet som et amatÞrmiddel til kommunikation mellem medlemmerne af vores lille studenterfÊllesskab, som pÄ en eller anden mÄde har dedikeret deres aktivitet til computerteknologi og kommunikation.

Nota Bene: "Telegraf" er et amatĂžrkommunikationsmiddel; den praktiske fordel af at udnytte det i industriel skala synes ret problematisk, men dette problem kan nĂŠppe kaldes vĂŠsentligt i nogen grad — vi anser hovedsageligt for, at vores primĂŠre mĂ„l er at tiltrĂŠkke opmĂŠrksomhed til udviklingen af sĂ„danne kommunikationssystemer.

Vi mener, at en Þget samlet interesse for udviklingen af forskellige kommunikationssystemer er en nÞdvendig og ret vigtig sag, da forstÄelsen af de grundlÊggende principper for, hvordan disse systemer fungerer og hvad de er baseret pÄ, er den primÊre nÞgle til at Þge borgernes opmÊrksomhed pÄ spÞrgsmÄl om informationssikkerhed.

«Telegraph» - e-mail uden internet

Achtung!For at undgĂ„ mulige misforstĂ„elser — i nogle tilfĂŠlde kan billeder rulles:
«Telegraph» - e-mail uden internet

Systemet styres pĂ„ frivillig basis og ren entusiasme — vi kan bare godt lide det, vi laver. Du kan betragte dette som en hobby, og du vil ikke tage fejl — for der findes stadig entusiaster, der kommunikerer ved hjĂŠlp af papirpost; "Telegraf" kan i de fleste tilfĂŠlde ses som en digital realisering af principperne for almindelig post.

"Telegraf" er et autonomt alternativ til e-mail, der tillader afsendelse af enkle tekstbeskeder uden brug af internettet. "Telegraf" kan i en eller anden grad relateres til Sneakernet — en metode til informationsudveksling uden brug af netvérket.

USB-flashdrev bruges som postkasser, og computere fungerer som posthuse — hvad der er en slags adgangspunkter til modtagelse og afsendelse af elektronisk post.

Lad os overveje et simpelt eksempel pĂ„ interaktion med systemet. Vi har to USB-drev og Ă©n terminal til rĂ„dighed. I selve scriptet er der defineret nĂždvendige globale variabler til fremtidig interaktion med systemet — terminalnummer, sti til roden og lignende.

Hvis vi tilslutter et flytbart lager til terminalen og kĂžrer scriptet, vil det forsĂžge at hente udgĂ„ende beskeder fra biblioteket /mnt/Telegraph/Outbox og overfĂžre dem til sit hukommelse, derefter — kontrollere om der er nye beskeder i sin hukommelse for den aktuelle bruger. Hvis der er nogle — skrive dem til /mnt/Telegraph/Inbox.

Registrering af nye enheder

Finder sted pÄ en ret almindelig mÄde. Scriptet finder nye USB-drev tilsluttet systemet og forsÞger at matche deres unikke identifikatorer med dem, der er reprÊsenteret i roden. Hvis enhederne ikke tidligere er blevet registreret, vil de blive formateret i henhold til de regler, der er angivet af 'Telegrafen'.

Efter registreringen af en ny enhed fÄr rodstrukturen fÞlgende udseende:

Vis indlÊg pÄ imgur.com

I konfigurationsfilen config.ini, som findes i roden af USB-drevet, kan man finde systeminformation — unik identifikator og hemmelig nþgle.

Vis indlÊg pÄ imgur.com

Giv folk rom!

Nej, alvorligt talt! Kildekoderne kan skaffes her, og vi skal snart begynde at bevĂŠge os fra teori til praksis.

Men jeg skal lige sige nogle ord om, hvordan systemet til meddelelser fungerer i praksis.

Lad os fĂžrst finde ud af, hvordan den elleve cifre lange unikke identifikator er sammensat. For eksempel, 10455000001.

Det fþrste tal, 1, représenterer landekoden. Den internationale kode — 0, Rusland er i dette tilfélde — 1.

Derefter fĂžlger fire tal, som reprĂŠsenterer regionsnummeret, hvor terminalen er placeret. 0455 — dette er Kolomna byomrĂ„de.

Efterfþlgende kommer to tal, — 00, — som direkte représenterer terminalnummeret.

Og fĂžrst derefter — fire tal, som er brugernummeret, der er knyttet til denne terminal. Hos os er det — 0001. Der findes ogsĂ„ en 0000 — dette nummer tilhĂžrer selve terminalen. Det er ikke muligt at sende skriftlig korrespondance til det, men terminalen bruger dette nummer til at sende tjenestebeskeder til brugerne. For eksempel, hvis en besked ikke kunne leveres af en eller anden grund.

Vis indlÊg pÄ imgur.com

I roden pĂ„ vores "postkasse" findes der to mapper, der er nĂždvendige for at modtage og sende tekstbeskeder. NĂ„r enheden tilsluttes terminalen, overfĂžres udgĂ„ende beskeder fra mappen „Outbox” til serveren, mens indgĂ„ende beskeder, hvad der giver mening, overfĂžres til mappen „Inbox”.

Hver fil er navngivet efter modtagerens eller afsenderens nummer, afhĂŠngigt af mappen.

Hvis vi forsĂžger at sende en besked til en ikke-eksisterende modtager, vil terminalen sende os en fejlmeddelelse.

Vis indlÊg pÄ imgur.com

Men hvis vi beslutter os for at sende et brev til en modtager, der befinder sig pÄ en anden terminal (uanset om denne eksisterer eller ej), vil det blive gemt i terminalens hukommelse, indtil agenten overfÞrer den skrevne korrespondance fra vores terminal til sin egen.

Vis indlÊg pÄ imgur.com

NĂ„r agenten fra kontoret 10500000000 (med andre ord — postbudet) tilslutter sin enhed til vores terminal, vil de udgĂ„ende breve blive overfĂžrt til hans lagringsenhed. Senere, nĂ„r han tilslutter sin enhed til sin egen terminal, vil disse breve blive overfĂžrt til terminalens hukommelse og vente, indtil modtageren henter dem til sin USB-nĂžgle.

Kommunikationssession

Lad os prĂžve at sende en besked med teksten „Hej!” fra 10455000001 pull-requesten pĂ„ GitHub 10455000002.

Vis indlÊg pÄ imgur.com

Det var alt!

Jeg ser frem til enhver kritik af projektets kildekode samt af selve artiklen.

Tak for opmĂŠrksomheden.

Kilde: habr.com

KĂžb pĂ„lidelig webhosting med DDoS-beskyttelse, VPS VDS-servere đŸ”„ KĂžb pĂ„lidelig webhosting med DDoS-beskyttelse, VPS VDS-servere | ProHoster