петак, 19 априла, 2024
Интернет, мреже и комуникације

Енкриптована електронска пошта (3. део)

Аутор: Петар Симовић

Ова тема постаје све популарнија, па се тако сада уједињују Lavabit и Silent Circle и формирају заједничку алијансу под именом Darkmail (https://www.darkmail.info/ ). Појављују се и хардвери који ће целу енкрипцију радити аутоматски за вас ( https://kinko.me/ ). Ту је и будући webmail клијент Mailpile ( https://www.mailpile.is/ ) који је још у алфа фази тестирања, али га је могуће скинути код са github-а и испробати. Корисницима који су навикли да пошту проверавају из интернет претраживача, највероватније би највише одговарао неки програм у виду додатка претраживачу који је у исто време и менаџер њихових кључева. Два таква су сигурно WebPG ( https://webpg.org/ ) и Mailvelope ( https://www.mailvelope.com/ ), веома су интуитивни и погодни за почетнике (поред Thunderbird-а и Clawsmail-а). Нажалост, аутор овог текста их не препоручује јер умањују ниво сигурности и безбедности из простог разлога што у том случају морате да се поуздате да ни сам додатак претраживача (екстензија/плугин) ни претраживач неће да вас изневере и одају трећој страни вашу тајну, тј. да немају неки пропуст или неку рањивост која би нападачу одала ваш тајни кључ.

Наравно, цео процес око кључева, шифровања и сертификата могуће је било одрадити преко команди из терминала, а програми попут Thunderbird-а и Clawsmail-а су само интерфејс за кориснике који још нису напредовали до чина хакера. Тако је, на пример, следећих шест команди све што вам је потребно да бисте већ описани процес из претходног дела одрадили из терминала за вежбу, ако имате још неки имејл налог вишка:

  • Генерисање кључева:
gpg --gen-key
  • Извоз јавног кључа:
gpg --armor --export your@email.address

на екран или у датотеку ако на ову команду додате још

>>mypubkey.txt
  • Извоз приватног кључа:
gpg --armor --export-secret-key your@email.address

на екран или у датотеку ако на ову команду додате још

>>myprivkey.txt
  • Генерисање сертификата за опозив кључева („Revocation certificate”) уколико је тајност приватног кључа угрожена или сте једноставно изгубили уређај на коме сте га чували:
gpg --output revoke.asc --gen-revoke  your@email.address
  • Слање јавног кључа на сервер кључева:
gpg --send-keys ID

где је ID уствари ID број вашег јавног кључа и треба да изгледа слично овом ID-у: 6382285E.

  • Претрага јавног кључа особе којој желите слати шифровану пошту на серверу јавних кључева:
gpg --search-keys your@email.address

Лоше стране PGP-а

Пре него што поменемо још неке занимљиве програме и пројекте, објаснићемо чему служи такозвани „сертификат за опозив” кључева који смо малопре споменули, а у прошлом броју смо саветовали да га направите и сачувате. Наиме, ако вас задеси несрећан случај да изгубите лаптоп на коме се налазио ваш приватни кључ, а претходно сте копију истог сачували и на некој другој спољној меморији заједно са овим сертификатом и тајном фразом, онда можете друге упозорити на могућу угроженост вашег тајног кључа користећи овај сертификат. Ако нападач (или лопов хакер) дође до вашег тајног кључа, онда може дешифровати све ваше претходне поруке. Употребом сертификата дајете до знања осталима који желе да са вама размењују приватну пошту (слањем опозваних кључева на сервер јавних кључева), да су кључеви неупотребљиви и да није сигурно да их користе. У том случају, морате генерисати нове и послати их на сервер (више на http://goo.gl/IWoS4v). Команде су следеће:

  • Генерисање серификата уколико то нисте раније урадили:
gpg --gen-revoke KEY_ID
  • Увоз сертификата за опозив кључева:
gpg --import revoke.asc
  • Слање опозваних кључева на сервер – „update” кључева:
gpg --send-keys KEY_ID

Ово је само један од, условно говорећи, недостатака садашњег начина функционисања PGP-а, тј. један тајни кључ откључава све предходне тајне шифроване поруке. Наравно, решење постоји употребом PFS (Perfect Forward Secrecy) протокола који спречава да се овакав сценарио одигра, јер се свака нова комуникација обавља новим паром кључева након које се кључеви за ту трансакцију одбацују и више никада не користе. Тако да ма ког кључа са нападач домогао, не може дешифровати њиме све пређашње комуникације зато што кључеви међу собом немају никакве везе. Наравно, ово је много лакше рећи него урадити зато што постоји велика разлика у архитектури тј. када је PGP настао 1991.године прошлог века, није још постојао PFS протокол, а сада се користи у „instant messaging” програмима. Ко користи овакав протокол, а ко не можете видети овде: http://goo.gl/GaiE1V.

Други овакав недостатак је познати проблем са дистрибуцијом јавних кључева и њихова верификација. Објаснићемо ово на примеру. Рецимо да на Twitter-у нађете особу (новинара) којој би послали шифрован мејл са поверљивим доказима против неког. На Twitter-у је та особа оставила свој PGP отисак (Fingerprint) или ID кључа, па је логично да поседује и пар кључева, а јавни кључ се највероватније налази на неком од сервера јавних кључева и можете га добити командом из терминала:

gpg --recv-key 6382285E

Осим што у неким верзијама PGP-а нема провере на вашем рачунару да ли се отисак (fingerprint) преузетог јавног кључа поклапа са оним који је тражен, овде морате да „верујете” серверу кључева да вам прослеђује прави кључ. Звучи помало параноично, зар не? Размислите још једном, осим што свако може стартовати свој сервер кључева и укључити га у постојећу мрежу, већ постојећи сервери нису и не морају бити нарочито безбедни јер не чувају никакве тајне, те постоји реална могућност да их неко хакује јер са већом популарношћу технологије долазе и већа опасност и већи ризик. Још се није овако нешто десило и не знамо шта би све нападач могао постићи и какву штету нанети, али је сигурно да не треба имати потуно поверење у информације са ових сервера и ваља их проверавати. На страну све то, мана је у самој архитектури система јер је делом централизована, а није дистрибуирана на саме кориснике, па корисници морају да верују серверу који не могу да провере. Наиме, сервери јавних кључева међусобно синхронизују своје базе података кључева и ту су да нам олакшају претрагу кључева, али никако нису неизбежни. Тако да се овај проблем може решити тако што се организују јавна састајања (познатије као Key-signing party) и онда се физички размењују и потписују кључеви са особама које лично знате и на тај начин стварате своју „мрежу поверења” (Web of TrustWOT). Иако је ово мало непрактично, има и својих добрих страна – упознавање нових људи и размена вештина.

Да не би било никакве забуне, PGP пружа приватност и безбедност шифрујући поруке тј. њихов садржај, аутентичност употребом хеш (hash) функција и дигиталног потписивања порука и уопштено сваке врсте датотека. Али никако анонимност, јер се хедери (headers) поруке тј. адреса пошиљаоца и примаоца не шифрују и за страног посматрача су доступни. Технички речено, PGP не сакрива метаподатке. Тако да ако користите Gmail, Google зна да сте јуче послали поруку „том и том” кориснику, тачно време слања, ИП адресу са које сте слали, али уколико сте шифровали поруку не знају сам њен садржај. Занимљиво је поменути да су Yahoo и Google увидели потенцијалну корист од „енкрипције” своје поште, па су најавили да ће догодине имплементирати исту у своје сервисе, а Google је већ поставио и код свог будућег софтвера слободног за преузимање са Git-а (више на: http://goo.gl/P33PN7 http://goo.gl/quc0cs, http://goo.gl/xIw23o, http://goo.gl/v3Zvoo ). Ово није никаква револуционарна новина коју је „свемоћни” Google управо измислио, већ га примењују неко време мење познате компаније попут Openmailbox-а који има и занимљив једнократни мејл да не бисте морали сумњивим сајтовима да дајете праву адресу. Ствар је у томе што су ови гиганти увидели прилику да се убаце и на ово тржиште јер постаје све популарније, оно би им обезбедило позицију централих поузданих ауторитета. Ако се тога домогну, не верујемо да ће безбедност бити ништа боља пре свега зато што би под одређеним околностима могли да изводе такозване MITM (Man-in-the-middle) нападе и заобиђу дешифровање порука. Више на http://goo.gl/AdlCXa и http://goo.gl/dh1C7e.

Светла будућност

На нашу срећу, није све баш тако црно и нове, боље идеје се рађају скоро свакодневно, поготово када смо на то принуђени и инспирисани Snowden-овим објављивањем. Из тих идеја се понекад и „скува” нека нова и боља апликација или програм, па погледајмо неке. Пре свега, једна од најновијих је свакако Keybase ( https://keybase.io/ ), то је онлајн програм али такође се може њиме управљати из командне линије односно терминала. Keybase је на неки начин сервер јавних кључева, али умногоме олакшава баратање кључевима и сертификатима, њихову верификацију, као и тражење особе са којом желите да се дописујете. Оно што га издваја од обичног сервера кључева је повезивање ваших кључева са вашим налозима на Reddit-у, Twitter-у, Hacker news сајтом, GitHub-ом и вашом bitcoin адресом или вашим сајтом како би други били што сигурнији да сте то ви, и да употребом ваших кључева заправо пишу вама. Отркивање и повезивање ваших идентитета би иначе било проблем, али пошто PGP ионако не пружа анонимност онда то нема штетних ефеката. Програм је још увек у алфа степену развоја и мали број је позван на тестирање. Мада можете да се придружите пројекту и резервишете име на сајту и бићете тек неки 1600-ти, али ако сте озбиљно заинтересовани за овај пројекат администратори су неким тестерима подарили позивнице за будуће кориснике који су озбиљни и заиста желе да допринесу програму. Аутор овог теста има пет позивница, тако да ће пет најбржих који пошаљу мејл са насловом Keybase на „keybase@openmailbox.org” добити мејл са линком за регистрацију. Мејл ми је неопходан, јер морам унети мејл особе коју желим да позовем.

Ту су и напреднији пројекти попут Pond-а ( http://goo.gl/axqNwx ), који није ни класични mail протокол ни IM (instant messaging) апликација, већ једноставно асинхрони P2P програм који је у дописивање успео да убаци и PFS, а поруке се аутоматски бришу након недељу дана. Ово је и даље у развоју и немојте овај програм још користити ни за шта озбиљно. Веома сличан пројекат је и Flowingmail ( https://goo.gl/ ) који иако није остварио жељену суму као start-up на Indiegogo сајту ( http://goo.gl/psWb6m ) пре скоро годину дана, то га није обесхрабрило и нису одустали од своје замисли P2P децентализованог, сигурног мејл протокола, где се адресе рачунара на који шаљете рачунају по јавном кључу тако да не могу бити фалсификоване.

Оно што предходна два пројекта и Darksmail покушавају да ураде, јесте да нам поред наведених добрих особина PGP-а, пруже и ону једну која недостаје – анонимност. Darkmail то постиже end-to-end енкрипцијом, чиме сакрива све метаподатке и постиже анонимност из перспективе страног посматрача.

У следећем делу ћемо се упознати са анонимним email системима који су настали још давних деведесетих, и после неколико фаза развоја и унапређења у употреби су и данас.

Наредни део овог серијала можете прочитати овде.

Претходни део овог серијала можете прочитати овде.