«Telegraph» — posta elettronica senza internet

Buongiorno!

Vorrei condividere con la comunità alcune idee interessanti sulla creazione di un'email elettronica decentralizzata autonoma e dimostrare nella pratica come funziona una delle implementazioni già esistenti.

Inizialmente, «Telegram» è stato sviluppato come uno strumento di comunicazione amatoriale tra membri della nostra piccola comunità studentesca, che in un modo o nell'altro ha dedicato la propria attività all'informatica e alle comunicazioni.

Nota Bene: «Telegram» è uno strumento di comunicazione amatoriale; trarre vantaggio pratico su scala industriale sembra piuttosto problematico, tuttavia questa questione difficilmente può essere definita davvero rilevante – riteniamo che il nostro obiettivo principale sia attrarre l'attenzione sullo sviluppo di sistemi di comunicazione di questo tipo.

Siamo inclini a pensare che aumentare l'interesse generale nello sviluppo di vari sistemi di comunicazione sia una cosa necessaria e piuttosto importante, perché comprendere i principi fondamentali di come funzionano e su cosa si basano questi sistemi è la chiave principale per aumentare la consapevolezza dei cittadini in materia di sicurezza informatica.

«Telegraph» — posta elettronica senza internet

Attenzione!Per evitare possibili malintesi, in alcuni casi le immagini possono essere sfogliate:
«Telegraph» — posta elettronica senza internet

Il sistema si basa sul volontariato e puro entusiasmo – ci piace semplicemente quello che facciamo. Potete considerarlo un hobby, e non avrete torto – esistono ancora amanti della comunicazione tramite corrispondenza cartacea; «Telegram» può generalmente essere visto come un'implementazione digitale dei principi del funzionamento della posta tradizionale.

«Telegram» rappresenta un analogo autonomo dell'email che consente di inviare semplici messaggi di testo senza l'uso di internet. «Telegram» può in una certa misura essere classificato come Sneakernet – un modo di scambiare informazioni senza l'uso della rete.

Le chiavette USB sono utilizzate come caselle postali, mentre i terminali – computer – fungono da veri e propri punti di accesso per ricevere e inviare corrispondenza elettronica.

Consideriamo un semplice esempio di interazione con il sistema. Abbiamo due chiavette USB e un terminale a disposizione. 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, esso cercherà di ottenere i messaggi in uscita dalla directory /mnt/Telegraph/Outbox e di trasferirli nella propria memoria, successivamente - controllare la presenza di nuovi messaggi nella propria memoria per l'utente attuale. Se ce ne sono - registrarli in /mnt/Telegraph/Inbox.

Registrazione di nuovi dispositivi

Avviene in modo piuttosto ordinario. Lo script trova le nuove chiavette USB collegate al sistema e cerca di associare i loro identificatori unici con quelli presenti nella radice. Se i dispositivi non sono stati precedentemente registrati, verranno formattati secondo le regole dichiarate dal «Telegraph».

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

View post on imgur.com

Nel file di configurazione config.ini, situato nella radice della chiavetta USB, si trova l'informazione di sistema - identificatore unico e chiave segreta.

View post on imgur.com

Date alla gente il rum!

No, ma davvero, sul serio! Si possono ottenere i sorgenti qui, e noi stiamo già per passare dalla teoria alla pratica.

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

Per iniziare, vediamo di cosa è composto un identificatore unico di undici cifre. Ad esempio, 10455000001.

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

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

Successivamente, ci sono due cifre, - 00, che rappresentano direttamente il numero del terminale.

E solo dopo - quattro cifre, che sono il numero di ordine dell'utente assegnato a questo terminale. Nel nostro caso è - 0001. Esiste anche un 0000 — questo numero appartiene direttamente al terminale stesso. Non è possibile inviare corrispondenza scritta a questo numero, ma il terminale utilizza questo numero per inviare messaggi di servizio agli utenti. Ad esempio, se un messaggio non riesce a essere consegnato per qualche motivo.

View post on imgur.com

Nella radice della nostra «casella di posta» si trovano due directory necessarie per ricevere e inviare messaggi di testo. Quando un dispositivo si connette al terminale, i messaggi in uscita vengono caricati dal directory «Outbox» sul server, mentre i messaggi in arrivo, come logico, vengono caricati nella directory «Inbox».

Ogni file, a seconda della directory, è denominato con il numero del destinatario o del mittente.

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

View post on imgur.com

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

View post on imgur.com

Quando l'agente dell'ufficio 10500000000 (in altre parole, il postino) collegherà il proprio dispositivo al nostro terminale, le lettere in uscita saranno trasferite sul suo dispositivo di archiviazione. In seguito, quando collegherà il suo dispositivo al suo terminale, queste lettere saranno scaricate nella memoria del terminale e attenderanno che il destinatario le scarichi sulla propria chiavetta USB.

Sessione di comunicazione

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

View post on imgur.com

Questo è tutto!

Sarò felice di ricevere qualsiasi critica riguardante il codice sorgente del progetto e l'articolo stesso.

Grazie per l'attenzione.

Fonte: habr.com

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