
Perché la crittografia? Personalmente, ho solo una conoscenza superficiale in merito. Sì, ho letto il classico lavoro , ma molto tempo fa; sì, capisco la differenza tra crittografia simmetrica e asimmetrica, capisco cosa sono le curve ellittiche, ma è tutto. Inoltre, le attuali librerie crittografiche, con la loro piacevole abitudine di includere il nome completo dell'algoritmo in ogni funzione e una serie di inizializzatori che affiorano, causano in me, come programmatore, una grande frustrazione.
Ma perché? Probabilmente perché, leggendo l'attuale flusso di pubblicazioni sulla protezione dei dati, informazioni riservate, e così via, ho la sensazione che stiamo scavando nel posto sbagliato, o, più precisamente, stiamo cercando di risolvere problemi fondamentalmente sociali attraverso strumenti tecnici (la crittografia). Parliamone, non prometto scoperte epocali né suggerimenti concreti; pensieri oziosi rimangono pensieri oziosi.
Un po' di storia, giusto un assaggio
Nel 1976, negli Stati Uniti, è stato adottato uno standard federale per gli algoritmi di crittografia simmetrica: il DES. Questo è stato il primo algoritmo crittografico pubblico e standardizzato, creato in risposta alle crescenti richieste delle aziende per la protezione dei dati.
Curiosità baffuta
L'algoritmo è stato pubblicato per errore. Era ottimizzato per l'implementazione hardware ed era considerato troppo complesso e inefficace per quella software. Tuttavia, la Legge di Moore ha rapidamente messo le cose al loro posto.
Sembra che la storia finisca qui: prendi, cifra, decifra e, se necessario, aumenta la lunghezza della chiave. È possibile che tu sappia perfettamente che gli americani ci hanno inserito backdoor; per te esiste un equivalente russo — , che probabilmente ti ispira ancora meno fiducia. Allora, usa entrambi, uno sopra l'altro. Se credi che l'FBI e il FSB si siano uniti per condividere le loro backdoor per te, ho una buona notizia: non sei paranoico, hai solo una banale ossessione di grandezza.
Come funziona la crittografia simmetrica? Entrambi i partecipanti conoscono la stessa chiave, che è anche una password; ciò che è stato crittografato può essere decrittato dalla stessa chiave. Questo schema funziona perfettamente per gli spioni, ma non è affatto adatto per l'internet moderno, poiché è necessario trasmettere preventivamente questa chiave a ciascuno degli interlocutori. Per un certo periodo, mentre i dati erano protetti da un numero relativamente limitato di aziende in comunicazione con partner già conosciuti, il problema veniva risolto mediante corrieri e posta sicura; ma poi l'internet è diventata di massa e il settore è emerso.
Crittografia asimmetrica
dove sono coinvolte due chiavi: chiave pubblica, che non è mantenuta segreta e viene comunicata a chiunque sia interessato; e chiave privata, che conosce solo il suo proprietario. Ciò che è stato crittografato con la chiave pubblica può essere decrittato solo con la chiave privata, e viceversa. In questo modo, chiunque può conoscere la chiave pubblica del destinatario e inviargli un messaggio, che potrà essere letto solo da quest'ultimo. Sembra che il problema sia risolto?
Ma l'internet non funziona così, si presenta il problema dell'autenticazione e, in particolare, dell'autenticazione iniziale, e in un certo senso il problema opposto anonimato. In breve, come posso essere sicuro che la persona con cui parlo sia davvero quella con cui intendevo parlare? E che la chiave pubblica che sto usando appartenga davvero a chi stavo cercando di contattare? Specialmente se è la prima volta che comunico con quella persona? E come posso instillare fiducia nel mio partner mantenendo al contempo l'anonimato? Già qui, se ci si pensa, si può notare una contraddizione interna.
Esaminiamo in generale quali schemi di interazione tra i partecipanti esistono e vengono applicati nella pratica:
- server — server (o business — business, in questo contesto è la stessa cosa): questo è lo schema classico più semplice, per il quale è sufficiente la crittografia simmetrica, i partecipanti sanno tutto l'uno dell'altro, inclusi i contatti non in rete. Tuttavia, si noti che qui non si parla affatto di anonimato, e inoltre il numero di partecipanti è rigorosamente limitato a due. Quindi, è uno schema quasi ideale per un numero estremamente limitato di comunicazioni e in generale si dimostra poco applicabile.
- server — anonimo (o business — cliente): qui è presente una certa asimmetria, che viene gestita con successo dalla crittografia asimmetrica. Il punto fondamentale qui è l'assenza di autenticazione dei clienti, al server non importa con chi scambia dati; se mai dovesse esserne necessario, il server esegue un'autenticazione secondaria utilizzando una password concordata in precedenza, e in tal caso tutto si riduce al caso precedente. D'altra parte, per il cliente è estremamente importante l'autenticazione del server, vuole essere sicuro che i suoi dati vadano esattamente a chi li ha inviati; questo lato si basa nella pratica su un sistema di certificati. In generale, tale schema è coperto in modo abbastanza conveniente e trasparente dal protocollo https://, tuttavia sorgono un paio di interessanti aspetti all'intersezione tra crittografia e sociologia.
- fiducia nel server: anche se ho inviato alcune informazioni al server in modo assolutamente sicuro, tecnicamente ci sono persone non autorizzate che possono accedervi. Questo problema è completamente al di fuori della responsabilità della crittografia, ma ti chiedo di ricordare questo punto, riemergerà più tardi.
- fiducia nel certificato del server: la gerarchia dei certificati si basa sul fatto che esiste un certo certificato radice meritevole assoluta fiducia. Tecnologicamente, un attaccante sufficientemente influente [, si prega di considerare la parola attaccante come un termine tecnico, non come una calunnia o un'offesa nei confronti dell'autorità esistente] può sostituire il certificato di qualsiasi livello inferiore, tuttavia si presume che il sistema di certificazione sia necessario per tutti in egual misura, ovvero questo certificatore sarà immediatamente ostracizzato e tutti i suoi certificati revocati. Così è, ma si noti che il sistema non si basa su mezzi tecnici, ma su una sorta di contratto sociale. A proposito di cose scottantiIn previsione della fine del mondo e della chiusura della Runet, qualcuno ha analizzato la possibile chiusura del certificato radice russo e le sue conseguenze? Se qualcuno ha letto/scritto su questo argomento, inviatemi dei link, procederò ad inserirli, penso che sia un tema interessante.
- La deanonimizzazione indiretta su un server è un tema problematico, anche se il server non ha registrazione o autenticazione formale, ci sono molti modi per raccogliere informazioni sui clienti e alla fine identificarli. A mio avviso, la radice del problema risiede nell'attuale protocollo http:// e simili, che non potevano prevedere tali disguidi; e sarebbe anche possibile creare un protocollo parallelo senza queste falle. Tuttavia, ciò andrebbe contro tutte le pratiche esistenti di monetizzazione ed è quindi poco probabile. Eppure, resta interessante sapere se qualcuno ci abbia mai provato.
- anonimo — anonimo: due persone si incontrano in rete, (opzione — si sono appena incontrate), (opzione — non due ma duemila), e vogliono chiacchierare del loro, ma in modo che Grande Fratello non senta (opzione — la mamma non lo sappia, ognuno ha le proprie priorità). Forse percepite un'ironia nella mia voce, ed è proprio perché c'è. Applichiamo alla questione il postulato di Schneier (qualsiasi algoritmo può essere violato se vengono investite risorse sufficienti, cioè di denaro e tempo). Da questo punto di vista, penetrare in un gruppo del genere con metodi sociali non rappresenta alcuna difficoltà, per non parlare dei soldi, cioè la resilienza crittografica dell'algoritmo. zero con i metodi di crittografia più sofisticati.
Tuttavia, per questo abbiamo una seconda bastione — anonimato, e su di esso riponiamo tutte le nostre speranze, lasciate che tutti ci conoscano, ma nessuno ci potrà trovare. Tuttavia, con i più moderni metodi tecnici di protezione, davvero pensate di avere una possibilità? Ricordo che ora sto parlando solo di anonimizzazione, per quanto riguarda la protezione dei dati, sembra che abbiamo già concluso in modo convincente. D'accordo, per chiarezza, stipuliamo che se il vostro nome è diventato noto o indirizzo di casa o indirizzo IP, la missione è fallita completamente.
A proposito dell'indirizzo IP, qui emerge in tutta la sua grandezza quanto sopra menzionato fiducia nel server, beh, lui conosce il vostro IP senza dubbio. E qui gioca contro di voi praticamente tutto: dalla semplice curiosità e vanità umana, alle politiche aziendali e alla monetizzazione. Tenete presente, però, che VPS e VPN sono anche server; per i teorici della crittografia queste abbreviazioni importano poco; e sì, la giurisdizione del server in caso di necessità non gioca un ruolo. Qui rientra anche la crittografia end-to-end: suona bene e solido, ma bisogna comunque fidarsi del server sulla parola.
Qual è il ruolo del server in un tale messaggero? Prima di tutto, in modo banale, è come un postino, se il destinatario non è a casa, deve tornarci più tardi. Ma anche, e questo è molto più significativo, è un punto di incontro; non puoi inviare una lettera direttamente al destinatario, ma la invii al server per la successiva consegna. E soprattutto, il server effettua l'autenticazione necessaria, confermando a tutti che sei tu, e a te che il tuo interlocutore è davvero quello di cui hai bisogno. E lo fa utilizzando il tuo telefono.
Non pensi che il tuo messenger sappia troppo su di te? No, no, ovviamente noi ci fidiamo di lui (e, tra l'altro, anche del nostro telefono, ehm), ma i crittografi assicurano che non dovremmo, che non ci si può fidare di nessuno.
Non ti ha convinto? Eppure esiste anche la stessa ingegneria sociale; se hai un gruppo di cento persone, devi necessariamente considerare che il 50% di loro è un nemico, il 49% è o vanitoso, o stupido, o semplicemente imprudente. E anche l'uno per cento rimanente, per quanto tu sia esperto nelle tecniche di protezione delle informazioni, difficilmente potrà resistere a un buon psicologo in chat.
L'unica strategia difensiva sembra essere quella di perdersi tra milioni di gruppi simili, ma questo non ci riguarda, si tratta di qualche spia-terrorista che non ha bisogno né di fama online né di monetizzazione.
Credo che ho fondato (no, non dimostrato, solo fondato) le mie severe pensieri sulla protezione dei dati nell'attuale modello di società. Le conclusioni sono semplici ma tristi: non dovremmo aspettarci aiuto dalla crittografia dei dati oltre a ciò che abbiamo già; la crittografia ha fatto tutto il possibile, e lo ha fatto bene, ma il nostro modello di internet è completamente in contraddizione con il nostro desiderio di privacy e annulla tutti i nostri sforzi. In realtà non sono affatto un pessimizzo e mi piacerebbe poter dire qualcosa di positivo, ma non so cosa.
Prova a dare un'occhiata alla prossima sezione, ma ti avverto: ci sono soltanto fantasie non scientifiche molto rosa, però, potrebbero dare speranza a qualcuno e almeno far sorridere qualcun altro.
C'è qualcosa che possiamo fare?
Ad esempio, possiamo riflettere su questo tema, possibilmente liberando la mente e abbandonando i pregiudizi. Per esempio, a tempo temporaneo possiamo completamente rinunciare all'anonimato, per quanto possa sembrare terribile. Ogni individuo dovrebbe ricevere alla nascita una chiave pubblica unica e personale, e naturalmente anche la corrispondente chiave privata. Non urlate e non scalciate, in un mondo ideale è estremamente comodo — qui ci sono passaporto, codice fiscale e persino numero di telefono in un unico pacchetto. Inoltre, se si aggiunge un certificato individuale, si ottiene un autenticatore/login universale; e ancora — un notaio tascabile in grado di certificare qualsiasi documento. Si potrebbe creare un sistema multilivello — accessibile pubblicamente solo la chiave pubblica e il certificato, per gli amici (la lista delle chiavi è allegata qui) si potrebbe rendere accessibile il telefono e ciò che si concede agli amici, potrebbero esserci livelli ancora più profondi, ma ciò presuppone una fiducia non necessaria nel server.
Con questo schema, la privacy delle informazioni trasmesse viene raggiunta automaticamente (anche se, dall'altra parte, perché, in un mondo ideale?), Alice scrive qualcosa a Bob, ma nessuno leggerà mai ciò se non Bob stesso. Tutti i messenger ricevono automaticamente la crittografia end-to-end, il loro ruolo si riduce a caselle postali, e non ci possono essere recriminazioni sul contenuto in linea di principio. Inoltre, i server stessi diventano interscambiabili; si può inviare tramite uno, tramite un altro, o addirittura attraverso una catena di server, come una e-mail. Si può anche inviare direttamente al destinatario, se si conosce il suo ip, senza contattare alcun intermediario. Meraviglioso, vero? Peccato solo che non potremo vivere in questo meraviglioso periodo — né io, né te© Eh già, di nuovo parlo di cose tristi.
E ora, dove archiviare tutto questo? Bene, di primo acchito, creare un sistema gerarchico aperto, qualcosa come l'attuale DNS, solo più potente e ramificato. Per non sovraccaricare gli amministratori dei DNS radice con aggiunte e modifiche, si potrebbe prevedere una registrazione libera, con l'unica verifica necessaria — quella dell'unicità. Tipo >> " Salve, siamo cinque persone, la famiglia Ivanov. Ecco i nostri nomi/nick, qui ci sono le chiavi pubbliche. Chiunque chieda, per favore inviateli da noi. Ecco anche un elenco di cinquecento nonne del nostro quartiere con le loro chiavi, se qualcuno le chiedesse, inviateli da noi.«
È necessario rendere l'installazione e la configurazione di un server domestico estremamente semplice e comoda, in modo che chiunque possa capirne l'uso se desidera, e ancora, nessuno sovraccaricherà inutilmente i server ufficiali di stato.
Fermati!, e cosa c'entra allora lo stato?
E ora è possibile ripristinare con cautela l'anonimato. Se chiunque può generare una chiave personale e confermarla con un certificato individuale e installare un server CA di livello inferiore, o chiedere a un vicino, o utilizzare un qualsiasi server pubblico, a cosa serve tutta questa formalità? Inoltre, non c'è bisogno di legarsi a un reale personaggio, ci può essere completa privacy, sicurezza e anonimato. È sufficiente che all'inizio della gerarchia ci sia qualcuno di fidato; dopotutto, abbiamo fiducia in TM o Let's Encrypt, e i noti DNS pubblici finora non hanno ancora mandato nessuno nel caos. Anche dall'ufficio pubblico, sembrano non esserci problemi, cioè, certo ci saranno delle lamentele, ma a cosa serve davvero?
Forse, un giorno un sistema simile verrà creato. E naturalmente, non possiamo contare su nessuno tranne che su noi stessi; nessuno degli stati di cui sono a conoscenza costruirà un tale sistema. Fortunatamente, i sistemi già esistenti come Telegram, i2p, Tor, e sicuramente qualcun altro che ho dimenticato, dimostrano che non c'è nulla di impossibile in modo fondamentale. Questa è la nostra rete, ed è compito nostro plasmarla se la situazione attuale non ci soddisfa.
Brrr, è uscito un finale un po' pomposo per caso. In realtà, non mi piace, preferisco il sarcasmo.
PS: tutto questo è ovviamente una fantasia e sogni da ragazza.
PPS: ma se qualcuno decidesse di provare — riservatemi il nickname. per favore, ci sono abituato.
PPPS: e l'implementazione sembra piuttosto semplice, a dire il vero.
Fonte: habr.com
