
Miks krüptograafia kohta? Minu teadmised selle kohta on pigem pinnapealsed. Jah, ma olen lugenud klassikalist teost , aga väga ammu; jah, ma mõistan erinevust sümmeetrilise ja asümmeetrilise krüptimise vahel, mõistan, mis on elliptilised kõverad, aga see on kõik. Veelgi enam, olemasolevad krüptograafilised raamatukogud, mille kogemuslikud kombed lisada igasse funktsiooni nime algoritmi täisnimetus ja hulk väljakistvaid initsialiseerijaid, tekitavad minus, kui programmeerijas, tohutut frustratsiooni.
Nii et miks? Võib-olla sellepärast, et lugedes praegust voolu avaldusi andmete kaitse, konfidentsiaalsuse ja selle taolise kohta, tekib mul tunne, et me kaevame kusagil vale koha peal või, täpsemalt, üritame tehniliste vahendite (krüptograafia) abil lahendada sisuliselt sotsiaalseid probleeme. Räägime sellest ja ma ei luba mingit epohhiaalset avastust ega konkreetseid ettepanekuid, lihtsalt mõtteid.
Natuke ajalugu, täiesti pisut
Aastal 1976 võeti Ameerika Ühendriikides vastu föderaalse standard algoritmide jaoks, mis põhinevad sümmeetrilisel krüpteerimisel — DES. See oli esimene avalik ja standardiseeritud krüptograafiline algoritm, mis loodi vastuseks kasvavale äri nõudmisele andmete kaitsmise järele.
Habemega veidrus
Algoritm avaldati eksitusest. See oli optimeeritud riistvara rakenduste jaoks ja seda peeti liiga keeruliseks ja ebaefektiivseks tarkvara jaoks. Kuid Moore'i seadus pani kiiresti kõik paika.
Tundub, et lugu on lõppenud — krüpteeri, dekrüpteeri, vajadusel pikenda võtme pikkust. Võib-olla teate täpselt, et ameeriklased jätsid sellesse tagaukse, siis on olemas vene analoog — , millele te tõenäoliselt usaldate veelgi vähem. Siis kasutage mõlemat, üks teise peal. Kui aga usute, et FBI ja FSB ühinesid teie heaks ja vahetasid oma tagauksed, siis on mul teile head uudised — te ei ole paranoiline, teil on lihtsalt tavaline suurusehäbi.
Kuidas toimib sümmeetriline krüptimine? Mõlemad osalised tunnevad sama võtit, see on parool, millega nad on andmed krüptinud, saavad nad ka need dekrüpteerida. Skeem töötab suurepäraselt spioonide jaoks, kuid ei sobi absoluutselt tänapäeva internetile, kuna see võti tuleb eelnevalt edastada igaühele, kellega suhelda. Mõnda aega, kui andmeid kaitses suhteliselt väheste ettevõtete suhtlemine ette teada oleva partneriga, lahendati probleem kullerite ja kaitstud postiga, kuid siis muutus internet massiliseks ja tuli mängu
Asümmeetriline krüptograafia
, kus osalevad kaks võtit: avalik, mis ei ole salajas ja antakse igale soovijale; ja privaatne, mille tunneb ainult selle omanik. Mis on krüpteeritud avaliku võtmega, saab dekrüpteerida ainult privaatne ja vastupidi. Nii saab igaüks teada saaja avaliku võtme ja saata talle sõnumi, mille loeb ainult saaja. Tundub, et probleem on lahendatud?
Aga Internet ei toimi nii, kerkib esile probleem autentimise ja eriti algse autentimisega, ja veelgi, mingil moel vastand sellele probleemile anonüümsus. Lühidalt, kuidas ma saan olla kindel, et see, kellega räägin, on tõepoolest see, kellega plaanisin rääkida? Ja avalik võti, mida kasutan, kuulub tõesti sellele, kellega plaanisin rääkida? Eriti kui ma suhtlen temaga esmakordselt? Ja kuidas instillida partnerisse usaldust, säilitades samas anonüümsuse? Juba siinkohal, kui lähemalt vaadata, võib täheldada sisemist vastuolu.
Vaatame, millised suhtlemismudelid osaliste vahel on olemas ja praktiliselt rakendatakse:
- server-server (või äri-äri, selles kontekstis on see sama): see on kõige lihtsam klassikaline skeem, mille jaoks on täiesti piisav sümmeetriline krüptograafia, osalised tunnevad üksteist täielikult, sealhulgas võrguvälised kontaktid. Kuid tähelepanu: anonüümsusest ei saa siin juttugi olla, ja osaliste arv on rangelt piiratud kahele. See tähendab, et see on peaaegu ideaalne skeem äärmiselt piiratud arvu kommunikatsioonide jaoks ja üldiselt on see ilmselgelt väheselt rakendatav.
- server — anonüümne (või äri — klient): siin on teatav asymmeetria, mille lahendab edukalt asümmeetriline krüptograafia. Peamine punkt on siin klientide autentimise puudumine, serverile ei oma tähtsust, kellega ta andmeid vahetab; kui autentimine peaks olema vajalik, siis server viib teise järgu autentimise kokkulepitud parooli abil, ja siis viib kõik tagasi eelmise olukorra juurde. Teisest küljest on kliendile ülimalt oluline serveri autentimine, ta tahab olla kindel, et tema andmed jõuavad just sinna, kuhu ta need saatis, see aspekt põhineb praktikas sertifikaadide süsteemil. Kokkuvõttes katab selline skeem piisavalt mugavalt ja selgelt https:// protokoll, kuid krüptograafia ja sotsioloogia piiril tekib paar huvitavat momenti.
- usaldus serveri vastu: isegi kui olen edastanud teatud teabe serverile täiesti turvaliselt, on tehniliselt sellele juurdepääs kolmandatel isikutel. See probleem jääb täielikult krüptimise vastutusalast välja, kuid palun pidage seda meeles, see tõuseb hiljem uuesti esile.
- serveri sertifikaadi usaldusväärsus: sertifikaatide hierarhia põhineb eeldusel, et eksisteerib üks juur sertifikaat, mis on väärt absoluutset usaldust. Tehniliselt võib piisavalt võimekas kurjategija [, palun pidage kurjategijat tehniliseks terminiks, mitte olemasoleva võimu halvustamiseks või solvanguks] asendada mis tahes madalama taseme sertifikaadi, kuid eeldatakse, et sertifitseerimissüsteemi vajavad kõik võrdselt, st see sertifikaadi väljaandja allub koheselt sotsiaalsele tõrvale ja kõik tema sertifikaadid tühistatakse. Nii see on, kuid siiski märkige, et süsteem põhineb mitte tehnilistel vahenditel, vaid mingil sotsiaalsel leppel. Muide, kuumastSeoses oodatava maailma lõpu ja ruNet'i sulgemisega, kas keegi on analüüsinud võimaliku Venemaa juurseertifikaadi sulgemist ja selle tagajärgi? Kui keegi on sellest teemast lugenud/ikirjutanud, saatke linke, panen need siia, mulle tundub, et teema on huvitav.
- kaudne deanonimiseerimine serveris: see on ka valus teema, isegi kui serveril pole formaalset registreerimist/tuvastamist, on palju viise, kuidas klientide kohta teavet koguda ja lõpuks nad tuvastada. Minu arvates peitub probleem olemasolevas http:// protokollis ja sarnastes, mis ei saanud oodata sellist segadust; ning oleks täiesti võimalik luua paralleelne protokoll ilma nende puudusteta. Kuid see oleks vastuolus kõigi olemasolevate monetiseerimispraktikatega ja seetõttu ebatõenäoline. Ja ikkagi on huvitav, kas keegi on proovinud?
- anonüümne — anonüümne: kaks kohtuvad veebis, (variant — just kohtusid), (variant — mitte kaks, vaid kaks tuhat), ja tahavad rääkida oma asjadest, aga nii, et Suur Vend ei kuulaks (variant — ema ei saaks teada, igaühel on oma prioriteedid). Võib-olla kostab mu hääles iroonia, aga see ongi tõsi. Rakendame ülesandele Schneieri postulaati (igat algoritmi saab murda, kui investeerida piisavalt ressursse, see raha ja aega). Sellest vaatenurgast ei ole sotsiaalsete meetodite kaudu sellisesse rühma tungimine sugugi keeruline, rääkimata rahast, mis tähendab, et algoritmi krüptograafiline vastupidavus null kõige peenemate krüpteerimismeetodite puhul.
Kuid selleks on meil teine kindlustorn — anonüümsus, ja sellele me asetame kõik oma lootused, olgu kõik meist teadlikud, kuid mitte keegi ei suuda meid leida. Siiski, kaasaegsete tehniliste kaitsemeetodite juures, kas te tõesti arvate, et teil on mingit võimalust? Tuletan meelde, et ma räägin nüüd ainult anonüümsusest, andmete kaitse osas oleme me juba veenvalt lõpetanud. Leppigem kokku, et kui teie nimi või kodune aadress või ip-aadress, siis on juhtum täielikult ebaõnnestunud.
Muide, ip-st rääkides, tuleb siin esile eelpool mainitud usk serverisse, ta teab kindlasti teab teie IP-d. Siin mängivad teie vastu tegelikult kõik — alates inimlikust uudishimu ja uhkusest kuni ettevõtte poliitikate ja rahastamiseni. Kuid pidage meeles, et VPS ja VPN on samuti serverid; krüptograafia teoreetikutele on need akronüümid kui sellised tähtsusetud; jah, ja serveri jurisdiktsioon ei mängi suurt rolli, kui häda on suur. Samuti kehtib see end-to-end krüpteerimise kohta — see kõlab kenasti ja soliidset, kuid serverile tuleb siiski usaldada.
Mis on serveri roll sellises sõnumirakenduses? Esiteks, tal on triviaalne postiljoni roll: kui adressaat ei ole kodus, siis tuleb tagasi hiljem. Kuid veelgi olulisem on see, et server on koht, kus kohtuvad vestlused; te ei saa saadetist otse adressaadile saata, vaid saadate selle serverisse edasise edastamise jaoks. Ja kõige tähtsam on, et server viib läbi vajaliku autentimise, kinnitades kõigile, et olete just teie, ja teile, et teie vestluskaaslane on tõesti see, keda vajate. Ja ta teeb seda teie telefoni abil.
Kas te ei arva, et teie messengeri rakendus teab teie kohta liiga palju? Ei- ei, me muidugi usaldame teda (ja samas ka oma telefoni, hmm), aga krüptograafid väidavad, et see on asjata, et kellelegi ei saa usaldada.
Ei veennud? Aga olemas on ka sotsiaalne inseneritegevus. Kui teil on grupis sada vestlejat, peate lihtsalt arvestama, et 50% neist on vaenlased, 49% on kas uhked, lollid või lihtsalt ettevaatamatud. Ja see viimane üks protsent, kui tugev te ka ei oleks teabe kaitsmisel, psühholoogide vastu vestluses tõenäoliselt ei pea te vastu.
Tundub, et ainus kaitsestrategia on kaotuda miljonite sarnaste gruppide hulka, aga see ei ole kindlasti meie jutt, juba räägime jälle mingitest luureterroristidest, kellele ei ole ei võrgu kuulsus ega monetiseerimine olulised.
Noh, mulle tundub, et olen oma karmide mõtete andmed kaitsmise kohta kaasaegses ühiskonnas mingil moel põhjendanud (ei, mitte tõestanud, vaid lihtsalt põhjendanud). Järeldused on lihtsad, kuid kurvad — me ei tohiks loota, et andmete krüptimine aitab meid enam, kui me juba saame, krüptograafia on teinud kõik, mis suutis, ja tegi seda ka üsna hästi, kuid meie interneti mudel on täielikult vastuolus meie privaatsuse saavutamise sooviga ning tühistab kõik meie enda pingutused. Ma ei ole tõeliselt pessimistik ja tahaksin praegu öelda midagi positiivset, kuid ma lihtsalt ei tea, mida.
Proovige vaadata järgmisse sektsiooni, kuid hoiatab — seal on täiesti roosad teaduslikud fantaasiad, aga see võib kedagi lohutada ja kedagi vähemalt lihtsalt naerma ajada.
Kas on üldse midagi teha?
Näiteks võiksime selle teema üle mõelda, soovitavalt vabastades mõtlemise ja kõrvale heites eelarvamused. Näiteks, jätkame ajutiselt täielikult anonüümsuse kaotamist, kui hirmus see ka ei kõlaks. Las igal inimesel oleks juba sünnist alates unikaalne isiklik avalik võti ning loomulikult vastav privaatne võti. Ära karju mu peale ja ära trampi jalgu, ideaalses maailmas on see äärmiselt mugav – siin on nii pass, kui ka isikukood ja isegi telefoninumber ühes paketis. Veelgi enam, kui lisada sellele individuaalne sertifikaat, moodustub universaalne autentimisvahend/logi; ja veel – tasku notar, kes suudab mis tahes dokumente kinnitada. Süsteemi saab muuta mitmetasandiliseks – avalikult on kätte saadav ainult avalik võti ja sertifikaat, sõpradele (kelle võtmed on siin lisatud) võib teha kättesaadavaks telefoni ja mis iganes muud, mida sõpradele usaldatakse; võivad olla veelgi sügavamad tasemed, kuid see eeldab juba liigset usaldust serveri vastu.
Selle süsteemi korral tagatakse edastatava teabe privaatsus automaatselt (kuigi teiselt poolt, miks, ideaalilises maailmas?), Alice kirjutab Bobile, kuid keegi ei loe seda kunagi, välja arvatud Bob ise. Kõik sõnumsiderakendused saavad automaatselt end-to-end šifreerimise, nende roll piirdub postkastidega ja väiteid sisu kohta ei saa olla. Ja isegi serverid muutuvad vahetatavateks, võib saata ühe kaudu, teise kaudu või hoopis serverite ahelaga, nagu e-kiri. Samuti on võimalik saata otse adressaadile, kui tema IP on teada, ilma ühegi vahendajaga suhtlemata. Kas pole äge? Kahju ainult, et sellisel kaunil ajal elada ei õnnestu — ei mul, ega sul © Nn-jah, jälle ma kurvastan.
Kus see kõik siis hoida? Tundub, et võiks luua avatud hierarhilise süsteemi, midagi nagu praegune DNS, aga veel võimsama ja keerulisema. Et mitte koormata juure DNS administreerijaid lisade ja muudatustega, võiks teha tasuta registreerimise, ainus vajalik kontroll oleks ainulaadsuse üle. Midagi nagu >> " Tere, meid on viis inimest, Ivanovi perekond. Siin on meie nimed/nick'id, siin on avalikud võtmed. Kui keegi küsib — palun suunake nad meie juurde. Ja veel, siin on nimekiri viiestaatsest vanamemmest meie piirkonnast koos nende võtmetega, kui neid küsitakse, saatke palun needki meie juurde.«
On vajalik teha sellise koduse serveri seadistamine ja konfiguratsioon äärmiselt lihtsaks ja mugavaks, et igaüks saaks sellega hakkama, kui soovi on, samuti ei hakka keegi üleliia koormama erinevaid ametlikke riiklikke servereid.
Peatus!, mis asi see riik siis siin üldse on?
Nüüd on võimalik ettevaatlikult taastada anonüümsus. Kui igaüks saab endale genererida isikliku võtme, kinnitada selle individuaalse sertifikaadiga ning seadistada endale madalama taseme CA-serveri, või küsida naabri käest, või minna mõnele avalikule serverile, siis milleks on kogu see ametlikkus? Ja tegelikult pole mingit vajadust siduda end reaalse isikuga, täielik privaatsus, turvalisus ja anonüümsus on tagatud. Piisab, kui hierarhia alguses on keegi, kellele usaldame, noh, me ju usaldame TM-i või Let’s Encrypti, ja tuntud avalikud DNS-id pole kedagi veel kõrvale saatnud. Ka ametivõimudelt ei tohiks tõenäoliselt mingeid pretensioone tulla, kuigi need muidugi tulevad, aga milleks see keskenduda?
Võib-olla, kunagi luuakse selline süsteem või midagi sarnast. Ja loomulikult ei saa me kedagi teist usaldada, peale enda, ükski mulle teadaolev riik ei hakka sellist süsteemi looma. Õnneks näitavad juba olemasolevad Telegram, i2p, Tor ja kindlasti olen kedagi veel unustanud, et midagi põhimõtteliselt võimatut ei ole. See on meie võrk, ja me peame seda korraldama, kui meid ei rahulda olemasolev olukord.
Brrr, juhtus kogemata lõpetada ülevas toonis. Tegelikult ma ei armasta seda, mulle meeldib rohkem sarkasm.
PS: see kõik on loomulikult roosilised unenäod ja tüdruksõbra unistused.
PPS: aga kui keegi peaks mõtlema proovima — broneerige mulle kasutajanimi. palun, olen sellega harjunud.
PPPS: aga rakendamine näib muide üsna lihtne.
Allikas: habr.com
