"Telegraf" - e-post uten Internett

God dag!

Jeg vil gjerne dele noen interessante tanker med fellesskapet om å lage en frittstående desentralisert e-post og demonstrere hvordan en eksisterende implementering fungerer i praksis.

I utgangspunktet ble "Telegraph" utviklet som et amatørmiddel for kommunikasjon mellom medlemmer av vårt lille studentsamfunn, som på en eller annen måte viet sine aktiviteter til datateknologi og kommunikasjon.

Nota bene: "Telegraf" er et amatørkommunikasjonsmiddel; Det virker ganske problematisk å oppnå praktiske fordeler i industriell skala, men dette problemet kan neppe kalles vesentlig i noen grad - vi anser vårt hovedmål å være direkte å tiltrekke oppmerksomhet til utviklingen av denne typen kommunikasjonssystemer.

Vi er tilbøyelige til å tro at økende generell interesse for utvikling av ulike kommunikasjonssystemer er nødvendig og ganske viktig, fordi forståelse av de grunnleggende prinsippene for hvordan disse systemene fungerer og hva de er basert på er hovednøkkelen til å øke innbyggernes bevissthet om informasjonssikkerhet problemer.

"Telegraf" - e-post uten Internett

Achtung!For å unngå mulige misforståelser kan du i noen tilfeller bla gjennom bildene:
"Telegraf" - e-post uten Internett

Systemet er basert på frivillige og ren entusiasme – vi liker det vi gjør. Du kan vurdere dette som en hobby, og du vil ikke ta feil - tross alt er det fortsatt elskere av kommunikasjon gjennom bruk av papirkorrespondanse; "Telegraf" kan i de fleste tilfeller representeres som en digital implementering av prinsippene for vanlig post.

Telegraph er en frittstående analog av e-post som lar deg sende enkle tekstmeldinger uten å bruke Internett. «Telegraf» i en eller annen grad kan tilskrives Sneakernet - en måte å utveksle informasjon uten å bruke et nettverk.

Flash-stasjoner brukes som postbokser, og terminaler - datamaskiner, som er unike tilgangspunkter for mottak og overføring av elektronisk korrespondanse - fungerer som postkontorer.

La oss vurdere det enkleste eksemplet på interaksjon med systemet. Vi har to flash-stasjoner og en terminal på lager. Selve skriptet inneholder de nødvendige globale variablene for påfølgende interaksjon med systemet - terminalnummer, sti til roten, etc.

Hvis vi kobler en flyttbar stasjon til terminalen og kjører skriptet, vil den prøve å motta utgående meldinger fra katalogen /mnt/Telegraph/Utboks og overfør dem til minnet, og se etter nye meldinger i minnet for gjeldende bruker. Hvis det er noen, skriv dem ned /mnt/Telegraph/Inbox.

Registrering av nye enheter

Det skjer ganske tilfeldig. Skriptet finner nye flash-stasjoner koblet til systemet og prøver å matche deres unike IDer med de som er presentert i roten. Hvis enheter ikke tidligere har blitt registrert, vil de bli formatert i henhold til reglene angitt av Telegraph.

Etter å ha registrert en ny enhet, har rotstrukturen følgende form:

Vis innlegg på imgur.com

I konfigurasjonsfilen config.ini, som ligger i roten av flash-stasjonen, er det systeminformasjon - en unik identifikator og en hemmelig nøkkel.

Vis innlegg på imgur.com

Gi folk litt rom!

Nei, helt seriøst! Du kan få kildene her, og det er på tide at vi sakte går fra teori til praksis.

Men jeg bør si noen flere ord om hvordan meldingssystemet fungerer i praksis.

La oss først finne ut hva en elleve-sifret unik identifikator består av. f.eks. 10455000001.

Det første sifferet 1, er ansvarlig for landnummeret. Internasjonal kode - 0, Russland i dette tilfellet - 1.

Deretter kommer fire sifre som er ansvarlige for nummeret til regionen der terminalen ligger. 0455 er bydelen Kolomna.

De blir etterfulgt av to tall - 00, - direkte ansvarlig for terminalnummeret.

Og bare da - fire sifre, som er serienummeret til brukeren som er tildelt denne terminalen. Vi har dette - 0001. Det er også 0000 — dette nummeret hører direkte til selve terminalen. Du kan ikke sende skriftlig korrespondanse til den, men selve terminalen bruker dette nummeret til å sende tjenestemeldinger til brukere. For eksempel hvis meldingen ikke kunne leveres av en eller annen grunn.

Vis innlegg på imgur.com

I roten av vår "postkasse" er det to kataloger som er nødvendige for å motta og sende tekstmeldinger. Når en enhet er koblet til terminalen, sendes utgående meldinger til serveren fra «Utboks»-katalogen, og innkommende meldinger lastes inn i «Innboks»-katalogen, noe som er logisk.

Hver fil, avhengig av katalogen, navngis av mottakerens eller avsendernummeret.

Hvis vi prøver å sende en melding til en ikke-eksisterende mottaker, vil terminalen sende oss en feilmelding.

Vis innlegg på imgur.com

Men hvis vi bestemmer oss for å sende et brev til en adressat på en annen terminal (uansett om det eksisterer eller ikke), vil det bli registrert i terminalens minne før agenten overfører den skriftlige korrespondansen fra vår terminal til sin.

Vis innlegg på imgur.com

Når filialagenten 10500000000 (med andre ord, postmannen) vil koble enheten sin til terminalen vår, utgående brev vil bli overført til stasjonen hans. Deretter, når han kobler enheten sin til terminalen, vil disse bokstavene bli dumpet inn i terminalens minne og vil vente på at mottakeren laster dem ned til flash-stasjonen.

Kommunikasjonsøkt

La oss prøve å sende en melding med teksten "Hei!" fra 10455000001 к 10455000002.

Vis innlegg på imgur.com

Det er alt!

Jeg vil gjerne motta kritikk av prosjektets kildekode og selve artikkelen.

Takk for oppmerksomheten.

Kilde: www.habr.com

Legg til en kommentar