
Hvorfor om kryptografi? Jeg har selv overfladisk viden om det. Ja, jeg har læst det klassiske værk , men det var for lang tid siden; ja, jeg forstår forskellen mellem symmetrisk og asymmetrisk kryptering, jeg forstår hvad elliptiske kurver er, men det er alt. Desuden skaber de eksisterende kryptografiske biblioteker, med deres søde skik at inkludere hele algoritmens navn i navnet på hver funktion og en masse udstående initialisatorer, en frygtelig irritation hos mig som programmør.
Så hvorfor? Sandsynligvis fordi, når jeg læser den nuværende strøm af publikationer om databeskyttelse, fortrolige oplysninger osv., får jeg en følelse af, at vi graver det forkerte sted, eller mere præcist, vi forsøger at bruge tekniske midler (kryptografi) til at løse sociale problemer. Lad os tale om det, jeg lover ikke storslåede opdagelser eller konkrete forslag, kun løsagtige tanker, som de nu engang er.
Lidt historie, bare et nip
I 1976 blev der i USA indført en føderal standard for algoritmer til symmetrisk kryptering — DES. Dette var den første offentlige og standardiserede kryptografiske algoritme, skabt som svar på den voksende efterspørgsel fra virksomheder om databeskyttelse.
Det kiksede tilfældigt
Algoritmen blev offentliggjort ved en fejl. Den var optimeret til hardwareimplementering og blev anset for at være for kompleks og ineffektiv til software. Men Moore's lov satte hurtigt tingene i perspektiv.
Det syntes at være enden på historien, tag den, krypter, dekrypter, og hvis nødvendigt, forøg nøglelængden. Måske ved du helt præcist, at amerikanerne efterlod bagdøre i den, så for dig findes der en russisk pendant — , som du dog sandsynligvis har endnu mindre tillid til. Så brug begge, en oven på den anden. Hvis du derimod tror, at FBI og FSB har slået sig sammen og delt deres bagdøre for din skyld, så har jeg gode nyheder til dig — du er ikke paranoid, du lider bare af en almindelig storhedsvanvid.
Hvordan fungerer symmetrisk kryptering? Begge parter kender den samme nøgle, også kaldet adgangskoden; det, der er krypteret for dem, kan de også dekryptere. Denne metode fungerer glimrende for spioner, men er helt ubrugelig for internettet i dag, da nøglen skal overleveres til hver af samtalepartnerne på forhånd. I en periode, hvor nogle få virksomheder beskyttede deres data ved kommunikation med en kendt partner, blev problemet løst ved hjælp af kurér og sikker post, men så blev internettet massivt anvendt og situationen ændrede sig.
Asymmetrisk kryptografi
hvor der er involveret to nøgler: en offentlig, som ikke holdes hemmelig og gives til enhver, der ønsker det; og en privat, som kun ejeren kender. Det, der er krypteret med den offentlige nøgle, kan kun dekrypteres med den private, og omvendt. Dermed kan enhver kende modtagerens offentlige nøgle og sende vedkommende en besked, som kun modtageren kan læse. Burde problemet så ikke være løst?
Men Internettet fungerer ikke sådan, og der opstår et stort problem med autentifikation , og især indledende autentifikation, og i visse henseender det modsatte problem med anonymitet. Kort sagt, hvordan kan jeg være sikker på, at den, jeg taler med, virkelig er den, jeg troede, jeg skulle tale med? Og at den offentlige nøgle, jeg bruger, virkelig tilhører den, jeg skulle tale med? Især hvis jeg taler med vedkommende for første gang? Og hvordan kan jeg opbygge tillid hos min partner, mens jeg bevarer anonymiteten? Her kan man allerede se en indre modstrid.
Lad os kort se på, hvilke interaktionsordninger mellem deltagerne der findes og anvendes i praksis:
- server-server (eller business-business, i denne kontekst er det det samme): dette er den enkleste klassiske ordning, hvor symmetrisk kryptografi er tilstrækkelig, da deltagerne kender alt om hinanden, inklusive netværkskontakter. Men bemærk, at der ikke er tale om anonymitet her, og at antallet af deltagere strengt begrænses til to. Det vil sige, at dette næsten er et ideelt system for et meget begrænset antal kommunikationer og generelt set er åbenlyst lidt anvendeligt.
- server – anonym (eller business – klient): her er der en vis asymmetri, som effektivt håndteres af asymmetrisk kryptografi. Hovedpunktet her er fraværet af klientautentificering, serveren er ligeglad med, hvem den udveksler data med; hvis det skulle blive nødvendigt, udfører serveren en sekundær autentificering ved hjælp af et forudgodkendt kodeord, og så er alt tilbage til den tidligere situation. På den anden side er klientens autentificering svært vigtig, da han ønsker at være sikker på, at hans data når den rigtige modtager, denne side afhænger i praksis af et certifikatsystem. Generelt set er denne ordning ret praktisk og gennemsigtig understøttet af https:// protokollen, men der opstår et par interessante aspekter i krydsfeltet mellem kryptografi og sociologi.
- tillid til serveren: selv hvis jeg har sendt visse oplysninger til serveren på en helt sikker måde, kan uvedkommende personer teknisk set få adgang til dem. Dette problem ligger helt uden for krypteringsansvaret, men jeg beder om, at dette punkt huskes, da det vil dukke op senere.
- tillid til servercertifikatet: hierarkiet af certifikater er baseret på, at der findes et rod certifikat, der er værdigt til absolut tillid. Teknisk set kan en tilstrækkeligt magtfuld angriber [, betragt venligst ordet angriber som en teknisk betegnelse, og ikke som en beskyldning eller forargelse mod den eksisterende magt] erstatte certifikatet for enhver lavere niveau, men det antages, at certifikationssystemet er nyttigt for alle lige meget, dvs. at denne certifikator straks vil blive udsat for ostracisme, og alle dens certifikater vil blive tilbagekaldt. Det er sådan, det er, men bemærk dog, at systemet ikke er baseret på tekniske midler, men på en slags social kontrakt. For øvrigt, om det varme emneI lyset af den forventede apokalyptiske udvikling i runet, har nogen analyseret muligheden for at forkaste det russiske rodcertifikat og konsekvenserne heraf? Hvis nogen har læst/skrevet om dette emne, send venligst links, jeg vil indsætte dem, da jeg tror, det er et interessant emne.
- Indirekte de-anonymisering på serveren: Det er også et følsomt emne, selvom serveren ikke har nogen formel registrering/authentificering. Der er mange måder at samle information om kunden og til sidst identificere vedkommende. Jeg mener, at rodårsagen til problemet ligger i det eksisterende http:// protokol og lignende, som forventeligt ikke kunne forudse sådanne problemer; og det ville helt sikkert være muligt at skabe en parallel protokol uden disse huller. Men det går imod alle eksisterende monetariseringspraksisser, så det er mindre sandsynligt. Og det er stadig interessant, om nogen har forsøgt?
- Anonymous — anonym: To personer mødes på nettet, (mulighed — lige mødt), (mulighed — ikke to, men to tusinde), og vil gerne tale om deres ting, men sådan at Storebror ikke hører (mulighed — mor ikke får at vide, alle har deres egne prioriteter). Måske hører du ironien i min stemme, men det er, fordi det netop er sådan. Lad os anvende Schneiers postulater til opgaven (enhver algoritme kan blive brudt, hvis der investeres tilstrækkelige ressourcer, det vil sige penge og tid). Set fra dette perspektiv, er det ikke svært at trænge ind i en sådan gruppe med sociale metoder, for ikke at nævne pengene, så den kryptografiske styrke af algoritmen er nul ved de mest sofistikerede krypteringsmetoder.
Men i dette tilfælde har vi den anden bastion — anonymitet, og på den har vi alle vores forhåbninger, lad os alle blive kendt, men ingen kan finde os. Men med de mest moderne tekniske beskyttelsesmetoder, mener du virkelig, at du har en chance? Jeg minder om, at jeg nu kun taler om anonymisering, beskyttelse af data synes vi allerede at have overkommet. Lad os for tydelighedens skyld aftale, at hvis dit navn eller din hjemmeadresse eller ip-adresse bliver kendt, så er situationen helt udløbet.
For resten om ip, her opstår det ovennævnte tillid til serveren, han kender din ip uden tvivl. Og her spiller alt imod dig — fra almindelig menneskelig nysgerrighed og forfængelighed til virksomhedspolitikker og den samme monetisering. Bare husk, at VPS og VPN også er servere; for kryptografi-teoretikere er disse forkortelser på en eller anden måde ligegyldige; ja, og serverens jurisdiktion har ikke betydning ved stort behov. Her falder også end-to-end kryptering ind — det lyder smukt og solidt, men serveren skal stadig stoles på.
Hvad er serverens rolle i en sådan messenger? For det første, som en triviel postbud, hvis modtageren ikke er hjemme, skal serveren måske komme tilbage senere. Men derudover, og det er meget mere væsentligt, er det et mødested, du kan ikke sende et brev direkte til adressaten, du sender det til serveren for videre levering. Og vigtigst af alt, serveren udfører den nødvendige godkendelse, som bekræfter for alle, at du er dig, og for dig, at din samtalepartner virkelig er den, du har brug for. Og det gør den med din telefon.
Synes du ikke, at din messenger ved for meget om dig? Nej, nej, vi stoler selvfølgelig på den (og for resten, også på vores telefon, ahem), men kryptografene forsikrer, at det er forkert, at man i det hele taget ikke bør stole på nogen.
Overbeviste det dig ikke? Der findes også social engineering; hvis du har hundrede samtalepartnere i din gruppe, skal du gætte, at 50 % af dem er fjender, 49 % er enten forfængelige eller dumme, eller blot uforsigtige. Og den tilbageværende en procent, uanset hvor dygtig du er i metoder til informationsbeskyttelse, vil sandsynligvis ikke kunne modstå en god psykolog i chatten.
Den eneste tilsyneladende beskyttelsesstrategi er at forsvinde blandt millioner af lignende grupper, men det handler ikke om os, det handler igen om nogle spioner-terrorister, som hverken har netværkets berømmelse eller monetisering at gøre.
Jeg mener, jeg har på en måde begrundet (nej, ikke bevist, bare begrundet) mine alvorlige tanker om databeskyttelse i den moderne samfundsmodel. Konklusionerne er enkle, men triste - vi bør ikke forvente mere hjælp fra datakryptering end det, vi allerede har. Kryptografi har gjort, hvad den kunne, og gjort det rimeligt godt, men vores internetmodel modsiger helt vores stræben efter privatliv og underminerer alle vores bestræbelser. Jeg er faktisk aldrig pessimistisk og ville meget gerne i dag sige noget positivt, men jeg ved bare ikke hvad.
Prøv at kigge i næste afsnit, men jeg advarer - der er helt rosenrøde ikke-videnskabelige fantasier, men de kan i det mindste give nogen håb eller underholde nogen.
Kan man overhovedet gøre noget?
Nå, for eksempel kan man tænke over dette emne, helst frigøre sindet og kaste fordommene over bord. For eksempel, lad os midlertidigt fuldstændig opføre os uden anonymitet, så forfærdeligt som det lyder. Lad hver enkelt fra fødslen få tildelt en unik offentlig nøgle, og selvfølgelig den tilsvarende private nøgle. Skreg ikke af mig og stamp ikke med fødderne, i en idéel verden er det ekstremt praktisk - her er både pas, skattenummer og endda telefonnummer i én pakke. Desuden, hvis man tilføjer et individuelt certifikat, får man en universel autentikator/login; og desuden - en lommennotar med mulighed for at bekræfte alle dokumenter. Man kan gøre systemet flerlagdelt - i det almindelige offentlige rum kun den offentlige nøgle og certifikatet, for venner (listen over nøgler er vedlagt her) kan man gøre telefonen og hvad man ellers stoler på tilgængeligt for dem; der kan være endnu dybere niveauer, men det indebærer allerede unødvendig tillid til serveren.
Med dette system opnås privatlivets fred for den overførte information automatisk (men på den anden side, hvorfor, i en ideel verden?), Alice skriver noget til Bob, men ingen vil nogensinde læse det, undtagen Bob selv. Alle messagingtjenester får automatisk end-to-end kryptering, deres rolle er at fungere som postkasser, og der kan grundlæggende ikke stilles krav til indholdet. Og serverne bliver også udskiftelige; man kan sende gennem én, gennem en anden, eller endda gennem en kæde af servere, ligesom e-mail. Man kan også sende direkte til modtageren, hvis man kender hans IP, uden at involvere nogen mellemled. Er det ikke fantastisk? Det er bare ærgerligt, at man ikke får lov at leve i denne vidunderlige tid — hverken jeg eller du© Nå-ja, igen er jeg tilbage til det triste emne.
Så, hvor skal al dette opbevares? Nogle groft sagt, kunne man lave et åbent hierarkisk system, noget i stil med det nuværende DNS, men mere kraftfuldt og forgrenet. For ikke at overbelaste de centrale DNS-administratorer med tilføjelser og ændringer, kunne man muliggøre fri registrering; den eneste nødvendige kontrol skulle være unikhed. Ligesom >> " Hej, vi er fem personer, familien Ivanov. Her er vores navne/nik, her er de offentlige nøgler. Hvis nogen spørger, må I meget gerne sende dem til os. Og her er også en liste med fem hundrede bedstemødre fra vores kvarter med deres nøgler, hvis nogen spørger, så send venligst også dem til os.«
Det er kun nødvendigt at gøre opsætning og konfiguration af en sådan hjemme-server ekstremt enkel og brugervenlig, så enhver kan forstå det, hvis man ønsker det; igen, ingen vil unødvendigt overbelaste forskellige officielle statslige servere.
Stopp!, og hvad har staten så overhovedet med dette at gøre?
Men kan nu forsigtigt genskabe anonymiteten. Hvis hvem som helst kan generere sin personlige nøgle, bekræfte den med et individuelt certifikat og oprette en CA-server på lavere niveau, eller spørge en nabo om hjælp, eller bruge en offentlig server, hvad er så formålet med alt dette officielle? Der er heller ikke nogen grund til at knytte sig til en virkelig person, der er fuld privatliv, sikkerhed og anonymitet. Det er tilstrækkeligt, at nogen i begyndelsen af hierarkiet er en person, man kan stole på. Vi stoler jo på TM eller Let’s Encrypt, og kendte offentlige DNS’er har endnu ikke sendt nogen ud i stepperne. Fra myndighedernes side bør der heller ikke være nogen krav, det vil sige, kravene vil naturligvis komme, men hvad så egentlig?
Måske vil et sådant system, eller noget lignende, blive skabt en dag. Og selvfølgelig kan vi ikke regne med andre end os selv, ingen af de stater, jeg kender til, vil bygge et sådant system. Heldigvis viser eksisterende løsninger som Telegram, i2p, Tor, og jeg har sikkert glemt nogen, at der ikke er noget principielt umuligt. Det er vores netværk, og det er os, der skal opbygge det, hvis vi ikke er tilfredse med de nuværende forhold.
Brrr, det blev ved et tilfælde afsluttet på en højtidelig note. Jeg kan ikke rigtig lide det, jeg foretrækker faktisk sarkasme.
PS: Dette er naturligvis bare rosenrøde drømme og pigevisker.
PPS: Men hvis nogen skulle finde på at prøve - så reserver venligst mit brugernavn til mig. venligst, jeg er blevet vant til det.
PPPS: Implementeringen virker faktisk ret simpel, forresten.
Kilde: habr.com
