
Prečo o kryptografii? Osobne mám o nej dosť povrchné znalosti. Áno, čítal som klasické dielo , ale už dávno; áno, rozumiem rozdielu medzi symetrickým a asymetrickým šifrovaním, chápem, čo sú eliptické krivky, ale to je všetko. Navyše existujúce kryptografické knižnice, so svojím milým zvykom zahŕňať celé názvy algoritmov do názvu každej funkcie a množstvom vyčnievajúcich inicializátorov, vo mne ako programátorovi vyvolávajú veľký diskomfort.
Tak prečo? Pravdepodobne preto, že pri čítaní súčasného prílivu publikácií o ochrane údajov, dôverných informácií a podobne, mám pocit, že kopeme niekde inde, alebo presnejšie, snažíme sa pomocou technických prostriedkov (kryptografie) riešiť sociálne problémy. Poďme sa o tom porozprávať, sľubujem žiadne epochálne objavy, len zbytočné myšlienky.
Trochu histórie, len kvapku
V roku 1976 bol v USA prijatý federálny štandard na algoritmy symetrického šifrovania — DES. Bol to prvý verejný a štandardizovaný kryptografický algoritmus, vytvorený v reakcii na rastúce požiadavky podnikania na ochranu údajov.
Barbónový kuriozita
Algoritmus bol zverejnený omylom. Bol optimalizovaný pre hardvérovú implementáciu a považoval sa za príliš zložitý a neefektívny pre softvérovú. Avšak Mooreov zákon rýchlo všetko uvedol na pravú mieru.
Na prvý pohľad — koniec príbehu, vezmi, šifruj, dešifruj, ak je potrebné, zvyšuj dĺžku kľúča. Možno presne vieš, že Američania do neho zakomponovali backdoory, v takom prípade existuje ruský ekvivalent — , ktorému ale pravdepodobne dôveruješ ešte menej. V takom prípade používaj oba, jeden na druhom. Ak však veríš, že FBI a FSB sa pre teba spojili a vymenili si svoje backdoory, mám pre teba dobrú správu — nie si paranoidný, máš len jednoduchú mániu veľkosti.
Ako funguje symetrické šifrovanie? Obe strany poznajú ten istý kľúč, teda heslo, a to, čo je zašifrované, môžu aj dešifrovať. Schéma výborne funguje pre špehov, ale úplne sa nehodí pre moderný internet, pretože tento kľúč je potrebné vopred doručiť každému z účastníkov. Po čas, keď sa svoje dáta chránili relatívne málo početné firmy pri komunikácii s vopred známym partnerom, bol problém riešený pomocou kuriérov a zabezpečenej pošty, ale potom sa internet stal masovým a na scénu prišiel
Asymetrická kryptografia
kde sa zúčastňujú dva kľúče: verejný, ktorý nie je uchovávaný v tajnosti a je poskytnutý každému, kto má záujem; a súkromný, ktorý pozná iba jeho majiteľ. To, čo je zašifrované verejným kľúčom, môže byť dešifrované iba súkromným a naopak. Týmto spôsobom môže každý zistiť verejný kľúč adresáta a poslať mu správu, prečíta si ju len adresát. Zdanlivo je problém vyriešený?
Ale internet nefunguje tak, preto sa vynára problém autentifikácie a, najmä, prvotnej autentifikácie, a ešte v akomsi zmysle opačný problém anonymity. Ak to zhrnieme, ako si môžem byť istý, že ten, s kým hovorím, je naozaj ten, s kým som chcel hovoriť? A že verejný kľúč, ktorý používam, naozaj patrí tomu, s kým som chcel hovoriť? Najmä, ak s ním vlastne komunikujem prvýkrát? A ako presvedčiť partnera o svojej dôveryhodnosti, pričom si zachovám anonymitu? Už tu, ak sa pozrieme bližšie, môžeme si všimnúť vnútorný rozpor.
Pozrime sa na všeobecne existujúce a v praxi používané schémy interakcie medzi účastníkmi:
- server — server (alebo biznis — biznis, v tomto kontexte je to to isté): je to najjednoduchšia klasická schéma, pre ktorú je úplne dostatočné symetrické šifrovanie, účastníci o sebe vedia všetko, vrátane medzi sieťových kontaktov. Avšak, prosím, berte na vedomie — o žiadnej anonymite tu ani nehovoríme, a navyše, počet účastníkov je striktne obmedzený na dvoch. To znamená, že je to takmer ideálna schéma pre veľmi obmedzený počet komunikácií a vo všeobecnosti sa zjavne ťažko aplikuje.
- Server — anonym (or business — client): here is some asymmetry, which is successfully managed by asymmetric cryptography. The key point here is the absence of client authentication; the server does not care whom it exchanges data with; if such authentication is required, the server conducts secondary authentication using a pre-agreed password, and then it all comes down to the previous case. On the other hand, for the client, authentication of the server is extremely important, as they want to be sure that their data goes exactly to whom they sent it; this aspect is practically based on the certificate system. Overall, such a scheme is quite conveniently and transparently covered by the https:// protocol, but a couple of interesting points arise at the intersection of cryptography and sociology.
- Trust in the server: even if I transmit some information to the server in an absolutely secure manner, technically, outsiders have access to it. This issue is entirely outside the scope of encryption, but I ask you to keep this point in mind, it will come up later.
- Trust in the server's certificate: the hierarchy of certificates is based on the existence of a certain root certificate deserving absolute trust. Technically, a sufficiently influential attacker [, please consider the term attacker as a technical term, not as defamation or insult to existing authority] can substitute the certificate of any lower level, however, it is assumed that the certification system is needed equally by everyone, i.e., this certifier will be immediately ostracized and all their certificates will be revoked. So it is, but still note that the system is based not on technical means but on some social contract. By the way, about the impendingIn the context of the expected apocalypse of Runet, has anyone analyzed the possible cocooning of the Russian root certificate and its consequences? If anyone has read/written on this topic, please send links, I will insert them; it seems to me the topic is interesting.
- nepriame deanonimizovanie na serveri: tiež zložitá téma, aj keď server nemá formálnu registráciu/ autentifikáciu, existuje mnoho spôsobov, ako zbierať informácie o klientovi a nakoniec ho identifikovať. Podľa mňa je koreň problému v existujúcom http:// protokole a jemu podobných, ktoré očakávane nemohli predvídať takéto nepríjemnosti; a je celkom možné, že by sa mohol vytvoriť paralelný protokol bez týchto slabín. Avšak, to by išlo proti všetkým existujúcim praktikám monetizácie a preto je to málo pravdepodobné. A predsa je zaujímavé, pokúsil sa niekto o to?
- anonym — anonym: dvaja sa stretávajú na sieti, (alternatíva — práve sa stretli), (alternatíva — nie dvaja, ale dvetisíc), a chcú sa porozprávať o svojich veciach, ale tak, aby Veľký brat nepočul (alternatíva — mama nepoznala, každý má svoje priority). Možno vám znie irónia v mojom hlase, tak to je, pretože to je presne ono. Aplikujme na túto úlohu Schneierov postulát (akýkoľvek algoritmus môže byť prelomený, ak sa investuje dostatočné množstvo zdrojov, teda peňazí a času). Z tohto pohľadu prenikanie do takejto skupiny prostredníctvom sociálnych metód nepredstavuje žiaden problém, nehovoriac o peniazoch, teda kryptografická odolnosť algoritmu je nulová pri tých najsofistikovanejších metódach šifrovania.
Avšak, pre tento prípad máme druhú obranou líniu — anonymita, na ktorú vkládame všetky naše nádeje, nech nás všetci poznajú, ale nikto nás nemôže nájsť. Avšak, pri najmodernejších technických metódach ochrany, vážne si myslíte, že máte šancu? Pripomínam, že teraz hovorím už len o anonymizácii, s ochranou dát sme sa zdá už presvedčivo zaoberali. Dohodnime sa pre istotu, že ak sa dozvie vaše meno alebo domáca adresa alebo ip-adresa, prihlásenie zlyhalo úplne.
Mimochodom o ip, tu sa naplno ukazuje vyššie spomenuté dôveru k serveru, veď on pozná vašu IP adresu bez pochybností. A proti vám tu hrá všetko — od bežnej ľudskej zvedavosti a márnivosti, až po firemnú politiku a monetizáciu. Pamätajte, že VPS a VPN sú tiež servre, teoretikom kryptografie sú tieto skratky celkom jedno; áno, a jurisdikcia servera pri veľkej potrebe nehrá žiadnu rolu. Sem patrí aj end-to-end šifrovanie — znie to pekne a solídne, ale serveru sa jednoducho musí veriť na slovo.
Akú vlastne úlohu zohráva server v takom messengeri? Po prvé, je to triválny posol, ak adresát nie je doma, musí sa znova vrátiť neskôr. Ale tiež, a to je oveľa zásadnejšie, je to stretávacia plocha, nemôžete poslať list priamo adresátovi, posielate ho serveru na ďalšie odovzdanie. A najdôležitejšie je, že server vykonáva nevyhnutnú autentifikáciu, potvrdzujúc všetkým, že ste to vy, a pre vás, že váš kontaktný partner je naozaj ten, koho potrebujete. A robí to pomocou vášho telefónu.
Nemyslíte si, že váš messenger o vás vie priveľa? Nie-nie, samozrejme mu veríme (a mimochodom, aj svojmu telefónu, hm), ale kryptografi tvrdia, že je to zbytočné, že nikomu sa nedá veriť.
Nepresvedčilo vás to? Existuje predsa aj sociálna inžinieria, ak máte v skupine sto účastníkov, jednoducho musíte predpokladať, že 50% z nich sú nepriatelia, 49% - buď sú márniví, alebo hlúpi, alebo jednoducho nepozorní. A aj posledný percent, nech ste akokoľvek silní v metódach ochrany informácií, proti dobrému psychológovi v chate pravdepodobne neobstojíte.
Jedinná, zdá sa, obranná stratégia — schovať sa medzi miliónmi podobných skupín, ale to už nie je o nás, opäť o nejakých špiónoch-teroristoch, ktorým ani sieťová sláva, ani monetizácia nič neznamená.
Myslím, že som nejako odôvodnil (nie, nedokázal, iba odôvodnil) svoje vážne úvahy o ochrane údajov v súčasnom modeli spoločnosti. Závery sú jednoduché, ale smutné — nemali by sme sa spoliehať na pomoc zo strany šifrovania údajov viac, než máme, kryptografia urobila všetko, čo mohla, a urobila to dobre, ale náš internetový model úplne protirečí našej snahe o súkromie a znehodnocuje všetky naše snahy. V skutočnosti nie som pesimista a veľmi by som chcel teraz povedať niečo pozitívne, ale neviem, čo.
Skúste sa pozrieť na ďalšiu časť, ale varujem vás — sú tam úplne nezmyselné fantázie, ktoré môžu niekoho potešiť a iného aspoň trochu pobaviť.
Je možné vôbec niečo urobiť?
Napríklad, môžeme o tom premýšľať, ideálne s otvorenou mysľou a bez predsudkov. Napríklad, poďme dočasne úplne obetovať anonymitu, nech to znie akokoľvek hrozne. Každému by sa mal pri narodení prideliť jedinečný osobný verejný kľúč, samozrejme s príslušným súkromným kľúčom. Prosím, nekričte na mňa a nehápkajte nohami, v ideálnom svete by to bolo veľmi praktické — tu by bol pas, daňové identifikačné číslo aj telefónne číslo v jednom. Navyše, ak k tomu pridáme individuálny certifikát, vznikne univerzálny autentifikátor/registrácia; a navyše — prenosný notár s možnosťou overovať akékoľvek dokumenty. Môžem spraviť systém viacerých úrovní — v všeobecnom prístupe len verejný kľúč a certifikát, pre priateľov (zoznam kľúčov je priložený tu) by bolo možné sprístupniť telefón a čo iné si priateľom dôverujete, môžu byť aj hlbšie úrovne, ale to už predpokladá zbytočnú dôveru k serveru.
Pri takej schéme sa súkromie prenášanej informácie dosahuje automaticky (hoci na druhej strane, prečo, v ideálnom svete?), Alisa niečo píše Bobovi, ale nikto to nikdy neprečíta okrem samotného Boba. Všetky messenger aplikácie automaticky získavajú end-to-end šifrovanie, ich úloha sa zúži na poštové schránky a nemôže byť žiadnych sťažností na obsah. A samotné servery sa stávajú zameniť, dá sa poslať cez jeden, cez druhý, alebo dokonca cez reťazec serverov, ako email. Ale dá sa tiež poslať priamo adresátovi, ak sa pozná jeho IP, bez akýchkoľvek sprostredkovateľov. Je to úžasné? Škoda len, že žiť v túto krásnu dobu už nebudeme — ani ja, ani ty© Nu-že, opäť ja o smútení.
Ďalej, kde to všetko uchovávať? Nuž, na prvý pohľad, vyrobiť otvorenú hierarchickú systém, niečo ako súčasný DNS, len silnejší a rozvetvenejší. Aby sme nezaťažovali adminov koreňových DNS prídavkami-modifikáciami, mohlo by to byť voľné registrovanie, jediná potrebná kontrola — na jedinečnosť. Niečo ako >> " Dobrý deň, sme piati ľudia, rodina Ivanovcov. Tu sú naše mená/nicky, tu sú verejné kľúče. Kto sa pýta — pošlite prosím k nám. A ešte tu je zoznam stopäťsto babičiek z nášho okresu so svojimi kľúčmi, ak sa ich budú pýtať, tiež pošlite k nám.«
Treba len urobiť inštaláciu a konfiguráciu takého domáceho servera mimoriadne jednoduchou a pohodlnou, aby to zvládol každý, ak sa na to dá chuť, opäť, nikto nebude zbytočne zaťažovať rôzne oficiálne štátne servery.
Stop!, a aký to má vlastne vzťah so štátom?
A teraz môžeme opatrne obnoviť anonymitu. Ak si ktokoľvek môže vygenerovať osobný kľúč a potvrdiť ho individuálnym certifikátom a nainštalovať si CA server nižšej úrovne, alebo požiadať suseda, alebo sa pripojiť na nejaký verejný server, na čo všetok tento oficiálny proces? A ani nie je potrebné viazať sa na reálnu osobu, plná súkromnosť, bezpečnosť a anonymita je poskytovaná. Stačí, aby na začiatku hierarchie stál niekto dôveryhodný, veď dôverujeme TM alebo Let’s Encrypt, a známe verejné DNS ešte nikoho do polí neposlali. Z pohľadu úradu by tiež nemali byť žiadne sťažnosti, samozrejme, sťažnosti budú, ale na čo vlastne?
Možno raz taký systém, alebo niečo podobné, vznikne. A samozrejme, nemôžeme sa spoliehať na nikoho iného, len na seba, žiadne z hlavných štátov, ktoré poznám, nie sú ochotné taký systém vytvoriť. Našťastie existujú už existujúce Telegram, i2p, Tor a určite som niekoho ešte zabudol, ktoré ukazujú, že nič zásadne nemožné nie je. Toto je naša sieť a my ju musíme usporiadať, ak nás nezaujíma súčasný stav vecí.
Brrrr, náhodou som skončil na patetickej note. V skutočnosti to nemám rád, je mi bližší sarkazmus.
PS: všetko toto sú samozrejme ružové sny a dievčenské predstavy.
PPS: ale ak by sa náhodou niekto rozhodol to vyskúšať — rezervujte si pre mňa prezývku. prosím, už som si na to zvykol.
PPPS: a realizácia sa zdá byť celkom jednoduchá, mimochodom.
Zdroj: habr.com
