Dobrý den!
Ráda bych se podělila se společenstvím o zajímavé myšlenky týkající se vytvoření autonomního decentralizovaného e-mailu a prakticky předvedla, jak funguje jedna již existující implementace.
Původně byl „Telegraph“ vyvinut jako amatérský komunikační prostředek mezi členy naší malé studentské komunity, která se více či méně věnuje výpočetní technice a komunikaci.
Nota Bene: „Telegraph“ je amatérský komunikační prostředek; praktický přínos získat v průmyslovém měřítku se jeví jako poměrně problematický, nicméně tento problém nelze ani v nejmenším označit za podstatný — především naším hlavním cílem považujeme přitáhnout pozornost k vývoji takovýchto komunikačních systémů.
Jsme přesvědčeni, že zvýšení obecného zájmu o vývoj různých komunikačních systémů je potřebné a dost důležité, protože porozumění základním principům toho, jak tyto systémy fungují a na čem stojí, je klíčem k zvýšení povědomí občanů o otázkách informační bezpečnosti.

Pozor!Aby se předešlo možným nedorozuměním — v některých případech je možné obrázky listovat:

Systém funguje na dobrovolné bázi a čistém nadšení — prostě nás baví to, co děláme. Můžete to považovat za koníček a nebudete daleko od pravdy — vždyť stále existují příznivci komunikace pomocí papírové korespondence; „Telegraph“ lze v mnoha případech představit jako digitální realizaci principů obvyklé pošty.
„Telegraph“ představuje autonomní analog e-mailu, který umožňuje zasílat jednoduché textové zprávy bez použití internetu. „Telegraph“ můžeme do určité míry zařadit k — způsobu výměny informací bez využití sítě.
Jako poštovní schránky se používají flash disky a jako poštovní úřady slouží terminály — počítače, které představují určité přístupové body k získání a odeslání elektronické korespondence.
Podívejme se na jednoduchý příklad interakce se systémem. Máme k dispozici dvě flash disky a jeden terminál. Ve skriptu jsou definovány potřebné globální proměnné pro následnou interakci se systémem — číslo terminálu, cesta k kořenu a další.
Pokud připojíme přenosné úložiště k terminálu a spustíme skript, pokusí se získat odchozí zprávy z adresáře /mnt/Telegraph/Outbox a přesunout je do své paměti, poté — zkontrolovat přítomnost nových zpráv ve své paměti pro aktuálního uživatele. Pokud nějaké existují — zapíše je do /mnt/Telegraph/Inbox.
Registrace nových zařízení
Probíhá poměrně standardně. Skript najde nové flash disky připojené k systému a pokusí se přiřadit jejich jedinečné identifikátory těm, které jsou uvedeny v kořenu. Pokud zařízení nebyla dříve registrována, budou naformátována podle pravidel uvedených «Telegraphem».
Po registraci nového zařízení struktura kořenu nabývá následující podoby:
V konfiguračním souboru config.ini, umístěném v kořenu flash disku, se nacházejí systémové informace — jedinečný identifikátor a tajný klíč.
Dejte lidem rum!
Ne, vážně! Zdroje lze získat , a my už se pomalu musíme přesunout od teorie k praxi.
Ale musím ještě říct několik slov o tom, jak je systém výměny zpráv uspořádán v praxi.
Nejprve si ujasněme, z čeho sestává jedenáctimístný jedinečný identifikátor. Například, 10455000001.
První číslice, 1, odpovídá číslu země. Mezinárodní kód — 0, Rusko v tomto případě — 1.
Následují čtyři číslice, které odpovídají číslu regionu, kde je terminál umístěn. 0455 — to je Kolomenský městský okres.
Za nimi následují dvě číslice, — 00, — které přímo odpovídají číslu terminálu.
A teprve potom — čtyři číslice, které jsou pořadovým číslem uživatele, který je přidělen tomuto terminálu. U nás je to — 0001. Existuje také 0000 — toto číslo patří přímo samotnému terminálu. Nelze na něj poslat písemnou korespondenci, ale samotný terminál používá toto číslo k odesílání provozních zpráv uživatelům. Například, pokud se zprávu nepodaří doručit z nějakých důvodů.
V kořenovém adresáři naší "poštovní schránky" se nacházejí dvě složky, které jsou nutné pro příjem a odesílání textových zpráv. Při připojení zařízení k terminálu se z adresáře „Outbox“ na serveru odesílají odchozí zprávy, zatímco do adresáře „Inbox“ se, jak jinak, nahrávají příchozí.
Každý soubor je podle adresáře pojmenován číslem příjemce nebo odesílatele.
Pokud se pokusíme poslat zprávu neexistujícímu adresátovi, terminál nám zašle chybové hlášení.
Pokud se však rozhodneme poslat dopis adresátovi, který se nachází na jiném terminálu (bez ohledu na to, zda existuje nebo ne), bude zapsán do paměti terminálu, dokud agent nepřenese písemnou korespondenci z našeho terminálu na svůj.
Když agent pobočky 10500000000 (jinými slovy — pošťák) připojí své zařízení k našemu terminálu, odchozí dopisy budou předány do jeho úložiště. Později, když připojí své zařízení k vlastnímu terminálu, tyto dopisy budou umístěny do paměti terminálu a čekat, až si je adresát přenese na svůj flash disk.
Komunikační sezení
Pojďme se pokusit poslat zprávu s textem „Ahoj!“ od 10455000001 k 10455000002.
To je všechno!
Budu rád za jakoukoli kritiku týkající se zdrojového kódu projektu a samotného článku.
Děkuji za pozornost.
Zdroj: habr.com
