«Telegraph» — email senza internet

Buongiorno!

Vorrei condividere con la comunità alcuni pensieri interessanti sulla creazione di un'email decentralizzata autonoma e dimostrare nella pratica il funzionamento di una delle implementazioni già esistenti.

Inizialmente, "Telegrafo" è stato sviluppato come mezzo di comunicazione amatoriale tra i membri della nostra piccola comunità studentesca, dedicatasi in un modo o nell'altro all'informatica e alle comunicazioni.

Nota Bene: "Telegrafo" è un mezzo di comunicazione amatoriale; estrarre un vantaggio pratico su scala industriale sembra piuttosto problematico, tuttavia questo problema difficilmente può essere considerato sostanziale — prevalentemente, consideriamo come nostro obiettivo principale attirare l'attenzione sullo sviluppo di sistemi di comunicazione di questo genere.

Siamo propensi a ritenere che l'aumento dell'interesse generale per lo sviluppo di vari sistemi di comunicazione sia un'iniziativa necessaria e piuttosto importante, poiché comprendere i principi fondamentali che governano il funzionamento di questi sistemi è la chiave principale per aumentare la consapevolezza dei cittadini in materia di sicurezza informatica.

«Telegraph» — email senza internet

Attenzione!Per evitare possibili malintesi, in alcuni casi è possibile scorrere le immagini:
«Telegraph» — email senza internet

Il sistema si basa su iniziative volontarie e puro entusiasmo: ci piace semplicemente ciò che facciamo. Potete considerarlo come un hobby e non sbaglierete: ci sono ancora appassionati della comunicazione tramite corrispondenza cartacea; il "Telegrafo" può essere visto come una realizzazione digitale dei principi di funzionamento della posta tradizionale.

"Telegrafo" è un'alternativa autonoma all'email, che consente l'invio di semplici messaggi testuali senza l'uso di internet. In un certo senso, il "Telegrafo" può essere considerato Sneakernet — un modo per scambiare informazioni senza l'uso di una rete.

I flash drive vengono utilizzati come caselle di posta, mentre i terminali fungono da uffici postali — computer che rappresentano punti di accesso per ricevere e inviare corrispondenza elettronica.

Consideriamo un semplice esempio di interazione con il sistema. Abbiamo a disposizione due chiavette USB e un terminale. Nello script sono definite le variabili globali necessarie per l'interazione con il sistema — il numero del terminale, il percorso alla radice e altro.

Se colleghiamo un'unità rimovibile al terminale e avviamo lo script, tenterà di ottenere i messaggi in uscita dalla directory /mnt/Telegraph/Outbox e trasferirli nella propria memoria, per poi controllare la presenza di nuovi messaggi per l'utente attuale. Se ce ne sono — registrarli in /mnt/Telegraph/Inbox.

Registrazione di nuovi dispositivi

Il processo avviene in maniera piuttosto ordinaria. Lo script individua le nuove unità flash collegate al sistema e cerca di abbinare i loro identificatori univoci con quelli presenti nella radice. Se i dispositivi non sono stati registrati in precedenza, verranno formattati secondo le regole dichiarate dal 'Telegraf'.

Dopo la registrazione di un nuovo dispositivo, la struttura della radice assume il seguente aspetto:

Visualizza il post su imgur.com

Nel file di configurazione config.ini, situato nella radice dell'unità flash, si trovano le informazioni di sistema — identificatore univoco e chiave segreta.

Visualizza il post su imgur.com

Fornite alla gente il rum!

No, a dire il vero, seriamente! I sorgenti possono essere reperiti qui, e noi stiamo già lentamente per passare dalla teoria alla pratica.

Ma devo dire ancora qualche parola su come funziona in pratica il sistema di scambio di messaggi.

Per cominciare, facciamo chiarezza su cosa compone un identificatore univoco di undici cifre. Ad esempio, 10455000001.

La prima cifra, 1, rappresenta il numero del paese. Il codice internazionale è — 0, mentre la Russia in questo caso è — 1.

Successivamente ci sono quattro cifre che rappresentano il numero della regione in cui è situato il terminale. 0455 — è il distretto urbano di Kolomna.

Seguono due cifre, — 00, — che corrispondono direttamente al numero del terminale.

E solo dopo — quattro cifre che rappresentano il numero identificativo dell'utente assegnato a questo terminale. Qui è — 0001. Esiste anche un 0000 — questo numero appartiene direttamente al terminale stesso. Non si possono inviare corrispondenza scritta a questo numero, ma il terminale utilizza questo numero per inviare messaggi di servizio agli utenti. Ad esempio, se non riesce a consegnare un messaggio per qualche motivo.

Visualizza il post su imgur.com

Nella radice della nostra «cassetta postale» sono presenti due directory necessarie per ricevere e inviare messaggi di testo. Quando un dispositivo si connette al terminale, i messaggi in uscita vengono caricati dalla directory «Outbox» al server, mentre i messaggi in arrivo, logicamente, vengono caricati nella directory «Inbox».

Ogni file è denominato in base al numero del destinatario o del mittente, a seconda della directory.

Se proviamo a inviare un messaggio a un destinatario inesistente, il terminale ci invierà un messaggio di errore.

Visualizza il post su imgur.com

Tuttavia, se decidiamo di inviare una lettera a un destinatario situato su un altro terminale (indipendentemente dal fatto che questo esista o meno), verrà memorizzata nella memoria del terminale fino a quando l'agente non trasferirà la corrispondenza scritta dal nostro terminale al suo.

Visualizza il post su imgur.com

Quando l'agente dell'ufficio 10500000000 (in altre parole, il postino) collega il suo dispositivo al nostro terminale, le lettere in uscita vengono trasferite nel suo archivio. In seguito, quando collegherà il suo dispositivo al suo terminale, queste lettere verranno trasferite nella memoria del terminale e attenderanno che il destinatario le scarichi sul proprio flash drive.

Sessione di comunicazione

Proviamo a inviare un messaggio con il testo «Ciao!» da 10455000001 a 10455000002.

Visualizza il post su imgur.com

Questo è tutto!

Accolgo con piacere qualsiasi critica riguardante il codice sorgente del progetto e l'articolo stesso.

Grazie per l'attenzione.

Fonte: habr.com

Acquista un hosting affidabile per siti con protezione DDoS, server VPS VDS 🔥 Acquista un hosting affidabile per siti con protezione DDoS, server VPS VDS | ProHoster