Praktikum 2 - Otspunktkrüpteeritud suhtluskanalid
Lahendused tuleb esitada 16. maiks.
Sissejuhatus
Paljud tänapäeval kasutatavad kommunikatsioonisüsteemid põhinevad protokollidel, mis ei taga sideühenduse täielikku konfidentsiaalsust. See on enamasti põhjustatud arhitektuuri poolt, kus ühenduse vahendajaks on eraldi osapool. Sellisel juhul võib tekkida küsimus, et juhul kui sideühendust krüpteeritakse, siis kuidas see täpsemalt toimub. Kõige lihtsama ja levinuma lahenduse kohaselt krüpteeritakse ühendus kliendi seadmest kuni keskse osapooleni, kes siis omakorda tekitab adressaadini uue krüpteeritud kanali. Alternatiivina saab keskne osapool genereerida krüpteerimisvõtme ning jagada seda suhtlusosapooltega. Eelnevalt kirjeldatud arhitektuure kasutavad palju suhtlusrakendused, aga sarnaselt toimib ka igapäevaselt kasutusel olev emailide ning telefonikõnede edastamine.
Selle praktikumi eesmärgiks on tutvustada mõningaid otspunktkrüpteerimist võimaldavaid tööriistu või suhtlusrakendusi. Otspunktkrüpteerimise korral on mõlemal suhtlusosapoolel võtmed, mille abil saab omavahel krüpteeritult suhelda ilma, et keskne osapool saaks sõnumite sisu dekrüpteerida.
Suhtlusrakendustest keskendume Signalile, kuna see kasutab Signali protokolli ning kuna vastava rakenduse tootja ei oma ärilisi eesmärke. Sama protokolli kasutavad ka mitmed populaarsemad suhtlusrakendused nagu näiteks WhatsApp, Facebook messenger ja Skype. Kuigi vastavad rakendused reklaamivad ennast Signali prokotolli abil ei ole neil kõigil vastav protokoll vaikimisi aktiveeritud ning seetõttu suur osa kasutajatest ei ole vastavast võimalusest isegi teadlikud. Mõelge näiteks selle peale, et kas te oskate Skype abil alustada privaatset vestlust ning isegi kui te seda olete proovinud, siis kui sageli te seda kasutate. Lisaks on küsimus lisaks suhtlusprotokolli turvalisusele ka rakenduste enda funktsionaalsustes -- kas te saate olla veendunud, et teie sõnumite peal ei tehta andmeanalüüsi enne kui need Signali protokolli abil teele saadetakse. Kui rakendus pole avatud lähtekoodiga, siis teil on raske kontrollida, et mida täpsemalt teie andmetega tehakse. Nendel põhjustel valisime katsetamiseks just Signali rakenduse, kuna see on avatud lähtekoodiga ja arendatud krüptograafide poolt.
Praktikumi keskseks osaks on hoopis emailide krüpteerimine, kuna siiani usutakse, et emailivahetus on konfidentsiaalne. Praktikumi käigus näete, et emailide krüpteerimine ei ole ei triviaalne ega mugav. Siiski tutvustame teile seda võimalust, kuna see annab teile esiteks praktilise kokkupuute avaliku võtme krüptograafiaga ja teiseks õpetab teile kuidas te saate emaile krüpteerida juhul kui selleks peaks tulevikus vajadus tekkima. Tehnoloogiatena vaatleme põhiliselt PGP/GPG-d, aga veidi peatume ka Eesti ID-kaardi poolt pakutaval krüpteerimise funktsionaalsusel, mis on kasutajate jaoks kättesaadav läbi DigiDoc tarkvara.
Signal
Signal on avatud lähtekoodiga, krüptograafide poolt arendatud suhtlusrakendus, mis pakub otspunktkrüpteeritud ühendusi. See toimib Android (alates 4.0) ja iOS (alates 9.0) seadmetel. Juhul kui rakendus on telefonis aktiveeritud, siis saab aktiveerida ka desktopi klientrakenduse (toetatud on Windows, MacOS, Debian baasil Linux distributsioonid). Desktopi rakendust ilma telefonirakenduseta kasutada ei saa, kuna Signali protokollis on kasutaja identifikaatoriks tema telefoninumber. See on olnud ka üks põhilisi kriitikanooli Signali osas. Samas tegelevad Signali arendajad vastava protokolli täiendamisega ning seeläbi on protokolli lisatud tehnoloogiline lahendus, mis võimaldab Signali rakendusel tuvastada kontaktide hulgast teisi Signali kasutajaid ilma, et kontaktide info Signali kesksüsteemile teadlikuks saaks. Selle kohta saate täpsemalt lugeda siit: Technology preview: Private contact discovery for Signal.
Signali kasutamise kohta on EFF koostanud põhjalikud juhendid:
Kui teil on nõuetele vastav nutiseade ja tahate Signalit katsetada, siis tuleks läbi teha järgnevad sammud (täpsema kirjelduse leiate eespool lingitud EFF-i juhendist):
- paigaldage Signal (Google Play / App Store)
- Signal kasutab kontaktide leidmiseks telefoni aadressiraamatut ning selle abil on kohe võimalik näha kas mõni kontaktidest kasutab Signalit. Võimalik on uut kontakti lisada ka otse ainult telefoninumbri abil ning sellisel juhul pole vaja infot aadressiraamatusse lisada. Kontaktide otsimise katsetamiseks kasutame kõnekaardil põhinevat uut Signali kontot. Lisage kontaktide hulka testimise konto: viis kolm viis kuus null seitse null kolm. Vaadake kas Signali kontaktide nimekirja tekkis uus rida. Selle testnumbriga on seotud ka Signali ülesanne, mille täpsem kirjeldus on järgmises alampeatükis.
- Nüüd saate vastava testkontoga suhelda. Juhul kui teie tuttavad kasutavad Signalit, siis saate ka nendega turvaliselt ühendust võtta.
- Kui te tahate hakata Signalit kasutama, siis soovitame paigaldada endale ka desktop klient, mis lubab Signalit kasutada ka näiteks Windowsi op. süsteemis. Desktopi klientrakenduse kasutamine on võimalik alles pärast seda kui nutiseadmes on konto loodud. Selleks, et klientrakendust enda kontoga ühendada tuleb nutitelefoni kaameraga kinni püüda Signali desktopi klientrakenduses kuvatav QR-kood.
- On oluline kohe alguses aru saada, et Signali rakendus ei paku nii paljusid funktsionaalsusi nagu teised populaarsed suhtlusrakendused. Lisaks sellele on ka mõningaid probleeme vestluste sünkroniseerimisel eri seadmete vahel. Tuleb mõista, et kõrgem turvatase nõuab mõningaid ohverdusi kasutusmugavuses. Signalit ei saagi preagu veel suurema osa kontaktidega kasutada, kuna nad ei ole vastavast rakendusest teadlikud. Samas on hea kui Signali kasutajate hulk kasvab, kuna siis on suurem võimalus privaatseks suhtluseks.
Signali ülesanne (max 2p)
- Valige ja lahendage üks kahest järgnevast ülesandest:
- Saatke Signali abil sõnum infoturbe testkontole. Testkonto jaoks osteti kõnekaart, mis on kasutusel ainult selle ülesande lahenduste vastuvõtmiseks. Sõnumi saatmiseks tuleks ajutiselt lisada enda kontaktide hulka järgmine number: viis kolm viis kuus null seitse null kolm. Sõnumi sees peaks olema teie nimi, et oleks võimalik ülesande eest punkt kirja panna. Sõnumi sisu kasutatakse ainult selleks, et punktide tabelisse punkt lisada, telefoninumbreid ei salvestata. Sõnumile vastust ei tule, aga näete Signali aknast kui sõnum on loetud ning tulemus ilmub tulemuste tabelisse. (2p)
- Signali protokolli peetakse krüptograafiliselt turvaliseks, aga siiski leidub teatud võimalusi sõnumiprivaatsuse ründamiseks. Lugege järgnevalt viidatud kirjutist ning selgitage artikli põhjal lühidalt, et kuidas oleks võimalik rünnata Signalit kasutava isiku sõnumiprivaatsust. Kirjeldage mitut erinevat meetodit sõnumiprivaatuse ründamiseks. (2p)
Juhul kui otsustasite teeoriaülesande kasuks, siis tuleks see esitada läbi järgneva vormi. Lahendus esitage PDF kujul.
10. 2. praktikum - Signali teooriaülesande lahendusDigiDoc4 abil transpordiks krüpteerimine
ID-kaardi loengus mainisime, et ID-kaarti saab kasutada transpordikrüpto jaoks. Oluline oli meelde jätta, et ID-kaardi krüpteerimise funktsionaalsus oli mõeldud transpordi jaoks, et oleks võimalik liigutada faile üle ebaturvalise suhtluskanali, milleks on näiteks email. Arhiveerimise jaoks ID-kaardi krüpteerimist kasutada ei tohiks, sest ID-kaardi kiibi töökõlbmatuks muutmise korral, kaardi kaotsimineku korral või võtmete uuendamise korral ei saa enam vastavale kaardile krüpteeritud andmeid dekrüpteerida.
ID-kaardi krüpteerimisfunktsionaalsust saab kasutada DigiDoc4 tarkvara abil. Kui DigiDoc4 tarkvara esimest korda käivitada, siis kuvatakse järgnev kolmest sammust koosnev lühiõpetus selle kohta mida oleks vaja krüpteerimiseks teha.
Täpsem õpetus asub siin: Kuidas saan krüpteerida dokumente nende turvaliseks edastamiseks?.
Illustratsioon DigiDoc4 kasutamisest on lingitud id.ee lehelt.
DigiDoc4 krüpteerimisfunktsionaalsust kasutatakse sageli konfidentsiaalse info edastamiseks emaili teel. Reaalselt näeb see välja nii, et kõigepealt luuakse konfidentsiaalset sisu sisaldav CDOC konteiner ning see omakord lisatakse saadetavale kirjale manusena. Krüpteerimata kujul ei tohi konfidentsiaalsest infot emaili teel edastada, kuna esiteks saavad emailide sisu lugeda meiliserverid ja teiseks ei saa saatja olla kindel kas kogu teekonna vältel kasutatakse vastava emaili edastamiseks TLS-ga krüpteeritud kanaleid. Meilivahetusega seotud turvaprobleeme kirjeldatakse alamjaotises E-kirjade turvaprobleemid ning PGP abil krüpteerimine.
DigiDoc4 krüpteerimisülesanne (2p)
Teie ülesandeks on katsetada DigiDoc ja ID-kaardi poolt pakutavat krüpteerimisfunktsionaalsust, et te oskaksite seda tulevikus vajaduse korral kasutada. Ülesande lahendamiseks läheb vaja tarkvara DigiDoc4 ning enda ID-kaarti / Digi-ID-d.
Ülesanne: Looge uus tekstifail ning pange selle nimeks see pseudonüüm, mis on teile courses.cs.ut.ee lehe poolt infoturbe aine jaoks määratud. Tekitage DigiDoc4 abil krüpteeritud konteiner (.cdoc fail), mille sees olgu eelnevalt loodud tekstifail. Konteineri adressaadiks määrake enda isikukood ehk te ise. Sulgege DigiDoc4, ühendage enda ID-kaart kaardilugejaga ning käivitage uuesti DigiDoc4. Nüüd saate eelnevalt loodud .cdoc konteineri sisu ID-kaardi abil dekrüpteerida (selleks läheb vaja PIN1). Lahenduseks esitage ekraanitõmmis DigiDoc4 aknast, mille vasakpoolses küljes on näha konteineris oleva dekrüpteeritud faili nime (nimeks on teie pseudonüüm) ning parempoolses küljes on näha adressaat. Näidislahendust näete allpool. Ebaoluline info peaks olema ekraanitõmmiselt välja lõigatud, esitage ainult vaade DigiDoc4 aknast. Samuti võite ekraanitõmmisel hägustada ära isikukoodi ning failipuud kirjeldava rea nii nagu see on tehtud allpool olevas näidislahenduses. Lahendus tuleb esitada läbi allpool oleva lahendusvormi ning see peab olema kas png või jpg formaadis. (2p)
Kui te ei saa mingil põhjusel faili dekrüpteerida, siis esitage ekraanitõmmis DigiDoc4 aknast kus on näha, et te olete faili edukalt enda nimele krüpteerinud.
Lahenduse esitamiseks kasutage järgnevat vormi. Lahendus peab olema kas png või jpg formaadis.
9. 2. praktikum - DigiDoc4 ekraanitõmmisMeilivahetuse turvalisus ning PGP abil krüpteerimine
Selle peatüki eesmärgiks on tutvustada seda kuidas emailide saatmine toimib ning näidata kuidas on võimalik Thunderbirdi abil emaile krüpteerida. See funktsionaalsus on siiski küllaltki piiratud kasutusalaga, kuna krüpteerimise jaoks on vaja, et ka adressaat kasutaks sama tarkvara ning oleks vastava funktsionaalsuse aktiveerinud.
Järgmised paar alampeatükki on informatiivsed ning me ei eelda, et te jätaksite lühendid SMTP, POP3, IMAP, STARTTLS, MTA, OTR endale meelde ning saaksite kõigest aru. Samuti ei eelda me, et te peaksite teadma, mis on pordid, kuna sellest räägime me loengus, mis käsitleb tulemüüre. Samas peaksite te need informatiivsed materjalid läbi lugema, et teada saada, mis on emailidega seonduvad põhilised turvaprobleemid. Seda taustainfot on vaja ka selleks, et aru saada PGP ülesandest.
Sissejuhatus: tavaline meilivahetus
E-kirjade saatmiseks ja meiliserverite vaheliseks edastamiseks kasutatakse SMTP protokolli. E-kirjade vastuvõtmiseks kasutavad meilikliendid (näiteks MS Outlook, Thunderbird, Apple Mail, jne.) enamasti protokolle IMAP või POP3.
Juhul kui SMTP server kasutab STARTTLS, siis ei ole vaja meilikliendil kirjade turvaliseks saatmiseks porti vahetada, sest TLS/SSL kasutamine lepitakse kokku meilikliendi ja SMTP serveri vahel. Juhul kui SMTP serveri ei toeta STARTTLS, siis tuleks e-kirjade turvaliseks edastamiseks kasutada porti 465, see port on reserveeritud turvalise SMTP jaoks ehk SMPTS jaoks. SMTPS kasutab ühenduse turvamiseks kas SSL või TLS protokolli.
POP3 server kuulab porti 110. Juhul kui POP3 server toetab STARTTLS, siis on võimalik pordile 110 saadetav info krüpteerida kasutades protokolli TLS või SSL. Juhul kui POP3 server ei toeta STARTTLS, siis tuleks kasutada porti 995, mis on reserveeritud turvalise POP3 ühenduse jaoks.
IMAP lubab mitmel erineval meilikliendil korraga ühenduda ja tuvastada teiste meiliklientide poolt tehtud muudatusi. IMAP server kuulab porti 143. Juhul kui IMAP server toetab STARTTLS, siis on võimalik pordile 143 saadetav info krüpteerida kasutades protokolli TLS või SSL. Juhul kui IMAP server ei kasuta STARTTLS, siis tuleks turvalise ühenduse jaoks kasutada porti 993, mis on reserveeritud IMAPS jaoks.
Tavalise meilivahetusega seotud turvaprobleemid
E-kirjade edastamise protokollid ei ole algselt disainitud turvalisust ja privaatsust silmas pidades. Seega on vaikimisi e-kirjad turvamata, mis tähendab seda, et e-kirju edastatakse tavatekstina (neid ei krüpteerita). Mõningad SMTP serverid toetavad STARTTLS, mis võimaldab minna turvamata ühenduselt automaatselt üle krüpteeritud ühendusele, mis kasutab TLS protokolli. Siiski ei ole STARTTLS veel väga laialt levinud ja kui sellisel juhul meiliklienti ei sunnita kasutama turvaliseks meilivahetuseks mõeldud porti, siis edastatakse e-kirjad SMTP serverisse tavatekstina. Isegi kui nii meiliserver kui ka meiliklient toetavad TLS kasutamist, siis saab aktiivne ründaja takistada TLS kokkuleppimist. Niisugust rünnet on kirjeldatud artiklis: Neither Snow Nor Rain Nor MITM ... An Empirical Analysis of Email Delivery Security (2015).
Meilide edastamiseks ühest serverist teise kasutatakse meilide edastamise agenti ehk MTA-d. See agent tegeleb nii kirjade vastuvõtmise kui edastamisega ehk kasutab mõlemat SMTP funktsionaalsust. Oluline on see, et erinevad meilide edastamise agendid ei pea omavahel suhtlema TLS/SSL abil vaid võivad kasutada turvamata ühendust. Võib tekkida olukord kus on vaja edastada e-kiri meiliserverile, mis ei toeta TLS/SSL. Seega kui meiliklient saadab turvatud kujul esimesele meiliedastamise serverile e-kirja, siis ei ole garantiid, et seda kirja ei saadeta edasi tavatekstina. Isegi kui e-kiri edastatakse terve teekonna vältel TLS/SSL abil, siis ei saa vältida seda olukorda, et e-kirja edastav server ei loe kirja sisu. Seega on vaja e-kirjade saatmisel usaldada meiliedastamise agente.
Oluline on see, et e-kirjade päises olevat infot ei krüpteerita. Seetõttu on e-kirja metaandmed nagu näiteks saatja meiliaadress, saaja meiliaadress, saatja ip, vastuvõtja ip, kuupäev, kell, pealkiri avalikud. Need andmed on avalikud ja neid on kasutusel olevate protokollide tõttu raske varjata.
Tavalise meilivahetusega seotud riskid:
- kirjavahetuse salvestamine
- kirja sisu muutmine
- kirja levitamine
- identiteedivargus
Väga hea ülevaate meilivahetusega seotud probleemidest annab Google, Michigani ülikooli ja Illinoi ülikooli töötajate poolt kirjutatud artikkel Neither Snow Nor Rain Nor MITM ... An Empirical Analysis of Email Delivery Security (2015).
Kuidas lahendada tavalise meilivahetusega seotud probleeme?
Ideaalset lahendust eelnevalt kirjeldatud probleemidele ei ole praegu olemas. Parimad olemasolevad lahendused kasutavad otspunktkrüpteerimist (end-to-end encryption). Otspunktkrüpteerimise korral krüpteeritakse sõnum saatja arvutis ja dekrüpteeritakse alles vastuvõtja arvutis, sõnumi vahendajad ei saa sõnumit dekrüpteerida. E-kirjade otspunktkrüpteerimiseks kasutatakse sageli PGP/GPG protokolli.
Alternatiiviks lahenduseks on loobuda e-kirjade kasutamisest ja kasutada tundliku info edastamiseks teisi otspunktkrüpteerimist võimaldavaid vahendeid. Üheks niisuguseks alternatiivseks võimaluseks on Off-the-Record Messaging (OTR), aga viimasel ajal on populaarsemaks muutunud sõnumivahetusprogramm Signal, mis peaks pakkuma kõrgemat turvataset kui OTR . Signali katsetamiseks on praktikumis eraldi ülesanne.
S/MIME
S/MIME (Secure/Multipurpose Internet Mail Extensions) on avaliku võtme infrastruktuuril (PKI) põhinev turvalise meilivahetuse standard. Sarnaselt HTTPS-ile on S/MIME puhul igal lõppkasutajal võtmepaar, ning sertifikaat, mis on seotud konkreetse kasutaja e-posti aadressiga. Sertifikaadi on allkirjastanud mõni tunnustatud sertifitseerimiskeskus (CA).
Kirjade krüpteerimine, signeerimine ja verifitseerimine toimub sarnaselt HTTPS-protokollile. Et saata kellelegi krüpteeritud kirja, peab teadma vastavat avalikku võtit. Seda sisaldava sertifikaadi saab tavaliselt nii, et kirja saaja saadab ise esimesena mõne signeeritud kirja, kus vajalik sertifikaat kaasas on.
S/MIME on toetatud mitmete meiliprogrammide poolt, aga seda kasutatakse siiski vähe. Erandiks on Eesti, sest meie ID-kaartide omanikud omavad sertifikaati, mis on allkirjastatud SK ID Solutions AS (endise nimega AS Sertifitseerimiskeskus) poolt. Seetõttu on ID-kaardi omanikel võimalik saata krüpteeritud ja signeeritud emaile. Selleks tuleb kõigepealt adressaadi sertifikaat leida ja siis kasutada sertifikaadis olevat emaili aadressi. Sertifikaatides olevad emaili aadressid on järgmisel kujul: Eesnimi.Perenimi[.X]@eesti.ee, kus X tähistab arvu.
Eesti ID-kaardi krüpteerimise funktsionaalsus on ehitatud S/MIME peale. Vastava krüpteerimistarkvara kasutamisjuhendi leiate järgnevalt aadressilt: https://www.id.ee/index.php?id=38804. ID-kaardi krüpteerimise funktsionaalsust saate soovi korral proovida iseseisvalt pärast praktikumi lõppu. Vastav oskus ja kogemus võib osutuda kasulikuks, sest programmi DigiDoc4 abil saab muuta ID-kaarti omavate isikute ning asutuste vahelist andmevahetust konfidentsiaalsemaks.
Samas ei võimalda vastav ID-kaardi tarkvara krüpteerida emaile isikutele, kes pole kuidagi Eestiga seotud. Seetõttu vaatleme järgnevalt tarkvara GPG, mille abil saab vastavat probleemi lahendada.
Ülevaade PGP-st
Pretty Good Privacy (PGP) on 1991. aastal loodud arvutiprogramm, mis võimaldab digitaalsete andmetega teha mitmeid krüptograafilisi operatsioone, näiteks dokumente ja e-kirju krüpteerida ning signeerida. PGP põhineb avaliku võtme krüptograafial, kus igal kasutajal on oma võtmepaar ning on seetõttu sarnane S/MIME süsteemiga.
S/MIME-st erineb PGP sellepoolest, et avaliku võtme infrastruktuuri (PKI) asemel, kus usaldusseosed on sertifitseerimiskeskuste (CA) vahel hierarhiliselt kuni tipmise CA-ni välja, kasutab PGP nn. "usaldusvõrku" (web of trust). Usaldusvõrgu puhul saab iga inimene ise valida keda ja kui palju ta usaldab ning selle kinnitamiseks allkirjastab vastava inimese avalikku võtit sisaldava sertifikaadi oma privaatvõtmega (nagu PKI puhulgi). Selliselt väljendatud usaldusseosest tekib omamoodi sotsiaalne võrgustik, kus "usaldus" on transitiivne seos, vt. joonist.
Et sertifikaatidevahelisi usaldusseoseid saaks jälgida ning juurde tekitada, on kasutusel avalikud võtmeserverid, kuhu saab oma sertifikaadi koos usaldusseostega üles laadida. Kuigi teoorias paistab idee olevat hea, siis praktikas see ei toimi, kuna PGP-l on liiga vähe kasutajaid. Usaldusseosed võivad toimida väikeste gruppide jaoks, aga kindlasti mitte üle kogu maailma.
PGP oli kommertstoode ning polnud seega vabalt kättesaadav. Küll aga on selle järgi loodud OpenPGP standard, mida järgiv tarkvara on omavahel ühilduv. Kõige tuntum vabavaraline OpenPGP standardile vastav programm on GNU Privacy Guard (GnuPG ehk GPG).
GNU Privacy Guard ehk GPG
The GNU Privacy Guard ehk GPG võimaldab turvaliselt e-kirju ja faile vahetada. Selleks kasutatakse vastavate andmete krüpteerimist ja signeerimist.
Andmete signeerimine tagab selle, et andmeid ei saa märkamatult muuta ja võimaldab kindlaks teha andmete saatjat/loojat. Andmete krüpteerimine tagab selle, et kõrvalised isikud ja pealtkuulajad ei saaks andmeid lugeda. GPG-d peetakse üheks turvalisemaks andmete krüpteerimise võimaluseks. GPG aktiivset kasutamist e-kirjade krüpteerimisel takistab reaalsuses see, et väljaspool kindlat seltskonda ei tea inimesed, mis on GPG ja seetõttu on võimalik krüpteeritud kirju saata ainult vähestele inimestele. Kui tekib vajadus võtta vastu tundlikku infot, siis tuleks luua endale või oma firmale OpenPGP võtmepaar ja avalikustada vastav avalik võti. Pärast selle praktikumi läbimist on teil olemas teadmised, mis võimaldavad teil vajaduse korral GPG-d kasutada.
PGP ülesanne (3p)
Teie ülesandeks on saata nii endale kui ka praktikumijuhendajale PGP abil krüpteeritud ja signeeritud kiri, mis sisaldaks teie nime.
Selle ülesande lahendamiseks läheb vaja Mozilla poolt loodud emailide haldamise tarkvara Thunderbird. Võite Thunderbirdi ise enda arvutisse paigaldada ja siis saate PGP ülesande lahendada enda arvutis. Juhul kui teil pole võimalik Thunderbirdi enda arvutisse paigaldada, siis saate kasutada virtuaalmasinat nii nagu seda sai teha ka esimeses praktikumis. Virtuaalmasina kasutamise kohta me siia eraldi juhendit ei lisa, soovi korral leiate juhendi esimese praktikumi materjalidest.
Thunderbirdi paigaldamine
Praktikumi jaoks on vaja kasutada uut Thunderbirdi versiooni (sobivad versioonid alates 78-st), mille saate alla laadida Thunderbirdi kodulehelt. Paigaldamine on lihtne ning selleks tuleb teha ainult paar klõpsu. Juhul kui te juba kasutate emailide haldustarkvara (nt. Outlook), siis valige paigaldamisel, et Thunderbirdi ei määrataks vaikimisi kasutatavaks emailide haldustarkvaraks.
Tarkvara paigaldamine toimub sarnaselt allpool videos näidatule, kuigi vastav video kujutab vanemat Thunderbirdi versiooni.
Praktikumi jaoks loodud meilikonto ühendamine (1p)
- Teie ülesandeks on ühendada Thunderbirdiga teie jaoks loodud ajutine infoturbe emaili konto. Kui avate Thunderbirdi esimest korda, siis pakutakse teile uue meilikonto loomise võimalust. Altarnatiiviks on valida Thunderbirdi menüüst vastav valik: "File -> New -> Existing Email Account...". Sama menüü leiate ka kolme joonega tähistatud nupule vajutades. Tekkinud akent on kujutatud järgneval ekraanitõmmisel.
Nüüd sisestage enda nimi ning selle praktikumi jaoks teile loodud emaili aadress ja parool. Teie meiliaadressiks on selle praktikumi raames <matriklinumber>@infsec.cs.ut.ee, näiteks kui teie matriklinumber on A12345, siis sellele vastab aadress a12345@infsec.cs.ut.ee. Nüüd otsige üles enda matriklinumber, et saaksite edasi liikuda. Selle leiate näiteks courses.cs.ut.ee lehel enda profiili alt. Parooliks on teie matriklinumber, mis on kirjutatud väikeste tähtedega (sama kehtib ka emailiaadressi ja kasutajanime kohta). Täitke ära nõutud väljad ja seejärel vajutage nupule "Continue".
Nüüd vajutage nupule "Configure manually..." ning kontrollige, et info klapiks allpool oleval joonisel kuvatud infoga. Ainus erinevus peaks seisnema teie kasutajanimes, milleks on teie matriklinumber. Kui millegipärast matriklinumber kasutajanimeks ei sobinud (juhul kui tekkis ühenduse loomisel probleem), siis proovige kasutajanimeks vastavat emaili aadressi.
Nüüd vajutage nupule "Done" ja pärast seda peaks teie uus testkonto ilmuma Thunderbirdi akna vasakul küljel olevasse vaatesse. Kui olete jõudnud siia ja saate ühendatud testkontot kasutada, siis olete teeninud välja ühe punkti. Selle saamiseks saatke oma uue emailikontoga õppejõule kiri.
Kiri tuleb saata aadressile krips@infsec.cs.ut.ee
. Kirja pealkirjas olgu "PGP praktikum - ülesanne 1" ning kirja sisuks olgu teie eesnimi koos perekonnanimega.
Nüüd liigume edasi sisulise teemaga ehk sellega kuidas PGP abil saab luua meilikonto jaoks uue võtmepaari, kuidas seda kasutada ning kuidas saab teistele PGP kasutajatele saata krüpteeritud ja signeeritud kirju.
Thunderbirdi kasutamine krüpteeritud ja signeeritud kirja saatmiseks (2p)
PGP kasutamiseks tuleb siduda enda meilikontoga võtmepaar, mis võimaldab teil enda poolt saadetavaid kirju signeerida (enda salajase võtme abil) ning krüpteeritud kirju vastu võtta (dekrüpteerida enda salajase võtme abil ning jagada enda avalikku võtit kontaktidele, kes saavad selle abil teie meiliaadressile saata krüpteeritud kirju). Seega esimeseks ülesandeks ongi Thunderbirdiga ühendatud meilikontole uue võtmepaari loomine.
Kõigepealt otsige üles ekraani ülemisest parempoolsest nurgast nupp, millel kujutatakse kolme joont ning otsige sealt üles "Tools -> OpenPGP Key Management". Sama menüü leiab ka menüüst "Tools -> OpenPGP Key Management".
Seejärle kuvatakse teile uus aken, mille ülemises ääres on menüü nimega "Generate". Vajutage sinna peale ning valige "New Key Pair".
Seejärel avaneb võtme genereerimise aken. Määrake seal ära, et genereeritakse elliptkõveral põhinev võti, kuna selle genereerimine toimub kiiresti ning samuti märkige, et võtme kehtivusajaks oleks kaks kuud.
Varasemas Thunderbirdi versioonis oli võimalik siin määrata ka parool võtme kaitsmiseks, aga uues versioonis on terve OpenPGP funktsionaalsus uuesti nullist teostatud ja võtme parooliga kaitsmist pole veel jõutud lisada. Nüüd tuleb vajutada võtme genereerimise nupule ja teile kuvatakse järgnev teavitusaken kus valige "Confirm".
Nüüd peaksite nägema enda võtmehalduri aknas ühte uut rida, mis on seotud teie emaili aadressiga.
Kui tavapäraselt toimub nüüd uue avaliku võtme üleslaadimine võtmeserverisse, siis antud ülesande juures me seda võimalust ei kasuta, kuna Thunderbird 78 arhitektuur ei võimalda (veel) infoturbe aine jaoks loodud võtmeserverit kasutada ning me ei taha avalikke võtmeservereid risustada (võtmeserverisse laetud avalikku võtmeid kustutada ei saa, aga neid saab märkida tühistatuks). Selle asemel, et oma avalik võti võtmeserverisse laadida saate selle õppejõule saata kirja manuses (täpsem juhend on allpool).
Enne kui saame edasi liikuda krüpteerimise ja signeerimise juurde tuleb uus võtmepaar siduda enda meilikontoga. Selleks võtke ette Thunderbirdi avaleht ning vajutage enda konto peal paremklõps ning leidke valik nimega "Settings".
Enda konto seadete alt otsige üles valik "End-To-End-Encryption". Seal peate valima võtmeks just äsja genereeritud võtme (vt. allpool olevat näidist).
Nüüd märkige samas aknas valik, mis võimaldab kirju automaatselt krüpteerida. Selleks kerige leht allapoole ja otsige üles alampealkiri "Default settings for sending messages". Sealt tehke valik, mis ütleb "Require encryption by default".
Järgmiseks sammuks ongi krüpteeritud kirja saatmine, aga selleks on teil vaja adressaadi avalikku võtit. Kuna iseseisva katsetamise korral pole teisi suhtluspartnereid, siis saatke endale krüpteeritud ja signeeritud kiri. Selleks avage Thunderbirdi aken ning vajutage nupule "Write".
Kui adressaadi avalik võti on juba võtmehoidlas olemas, siis peaks automaatselt olema sisse lülitatud kirja krüpteerimine. Seda saate näha kui vaatate kas tabalukku kujutavat ikooni kuvatakse kirja kirjutamise akna alumises osas. Signeerimise aktiveerimise saate aktiveerida nupu "Security" abil valides sealt "Digitally Sign This Message". Nüüd saate saata endale krüpteeritud ja signeeritud kirja ning kontrollida kas see jõudis edukalt kohale.
Thunderbird dekrüpteerib automaatselt kirja juhul kui sobiv salajane võti on Thunderbirdis teie meilikontoga seotud. See tähendab ka seda, et krüpteeritud kirja saate lugeda vaid sellest seadmest kus on olemas vastav salajane võti. Krüpteerimise ja signeerimise kohta näete täpsemat infot kui vajutate vastuvõetud kirjas olevale "OpenPGP" nupule.
Kui saite endale saata krüpteeritud ja signeeritud kirja, siis tehke ära viimane osa ülesandest, mis annab teile veel kaks punkti. Selle jaoks tuleb teil importida õppejõu avalik võti ning seejärel saata talle krüpteeritud ja signeeritud email. Tavaliselt leitakse PGP avalikud võtmed võtmeserveritest või siis vastava isiku kodulehelt, aga selle ülesande raames linkisime avaliku võtme sellele samale lehele. Tehke allpool oleval lingil paremklõps ning salvestage lingitud fail valides Save As / Salvesta nimega. Vaikimisi on faili nimeks krips.txt, aga salvestamise ajal võiksite selle ümber nimetada failiks krips.asc, kuna siis tunneb Thunderbird automaatselt importimise aknas võtme ära.
Avaliku võtme sisu saate näha kui klikite eelpool oleva lingi peale.
Järgmiseks impordime allalaetud avaliku võtme Thunderbirdi võtmehoidlasse, kuna siis tunneb kirja kirjutamisel Thunderbird automaatselt ära krüpteerimise võimaluse. Tuletame meelde, et avaliku võtme krüptograafias saab kellegile infot krüpteerida juhul kui on olevas vastava adressaadi avalik võti. Seega avage jälle Thunderbirdis võtmehaldus ehk OpenPGP Key Management aken (illustratsioonid on ülevalpool asuvas juhendis) ning valige selle menüüst: "File -> Import Public Key(s) From File".
Seejärel otsige üles eelnevalt allalaetud õppejõu avalikku võtit sisaldav fail ja avage see. Juhul kui te nimetasite selle faili ümber nii, et faili nimeks on krips.asc, siis saate vajutada "Open", aga kui te faili ümber ei nimetanud ja nimeks on endiselt krips.txt, siis tuleb kõigepealt muuta ära avatava faili tüüp valides "All files".
Seejärel küsitakse teilt, et kas te usaldate vastavat võtit ni?ng antud olukorras valige "Accepted" ning vajutage OK.
Kui võti sai edukalt imporditud, siis kuvatakse teile järgnevat akent.
Nüüd kui juhendaja võti on olemas saate teha läbi sama protsessi nagu varem. Võtke ette Thunderbirdi peaaken ning alustage uue kirja kirjutamist. Adressaadiks peab olema krips@infsec.cs.ut.ee
ning saadetav kiri peab olema nii krüpteeritud kui ka signeeritud. Lisaks tuleks kirjaga kaasa panna enda avalik võti, sest muidu ei saa me allkirja õigsust kontrollida. Thunderbird peaks avaliku võtme kirjale lisama automaatselt juhul kui kiri signeeritakse. Punktide saamiseks peab kiri olema nii krüpteeritud kui signeeritud.
Kirja pealkirjaks olgu "PGP praktikum - ülesanne 2" ning kirja sisuks teie eesninimi ja perekonnanimi. Kui saate kirja saadetud, siis ongi ülesanne lahendatud.
Õppejõud vastab teie kirjale mõningase viivitusega (enamasti paari päeva jooksul). Seega kui tahate vastuse ära oodata ning saada kinnituse, et ülesanne sai korrektselt lahendatud, siis ärge kohe Thunderbirdi ja vastavat kontot ära kustutage. Tulemust saate kontrollida ka kodutööde lehelt, kuhu tekib eraldi link teise praktikumi ülesannete jaoks.
Praktikumi lõpetamine
Kui kasutasite PGP ülesande lahendamiseks virtuaalmasinat ja saite ülesande tehtud, siis võite virutaalmasina eemaldada. Kui kasutasite arvutiklassi arvutit, siis tuleb masinast välja logida (juhend on esimese praktikumi materjalides).
Kui kasutasite enda arvutit, siis võiksite Thunderbirdi ja infoturbe emaili konto senikaua alles hoida kuniks õppejõud on kirjale vastanud (see tuleb enamasti paari päeva jooksul).
Pärast vastuse kättesaamist saate ülesande jaoks loodud testkonto Thunderbirdist eemaldada. Selle jaoks avage Thunderbird ning tehke ekraani vasakus servas oleva konto nime peal parem klõps ja seejärel valige tekkinud menüüst "Settings". Nüüd avaneb seadete aken ning testkonto kustutamiseks vajutage kõigepealt testkonto nime peale, et see aktiveerida ning seejärel vajutage akna vasakus alumises nurgas olevale nupule "Account Actions". Sealt valige "Remove Account", kontrollige, et eemaldate ikka õiget kontot (st. pgp ülesandega seotud kontot kus konto nimi sisaldab infsec.cs.ut.ee-d) ning pärast kontrollimist märkige ära ka väli "Remove message data" ning seejärel vajutage "Remove".
Lisainfo
Kui teil on plaanis teha endale PGP võtmepaar ja hakata seda tulevikus kasutama, siis on teil vaja:
- säilitada turvaliselt privaatne võti (kui tõsisemalt ette võtta, siis sobib selleks näiteks YubiKey)
- kaitsta privaatvõtit turvalise parooliga (uus Thunderbird seda ei võimalda)
- võtme kehtivusaeg peaks olema pikem, aga see ei tohiks olla tähtajatu
- lisada enda avalik võti tuntud võtmeserveritesse
- teha revocation sertifikaat, mille abil on võimalik avalikku võtit tühistatuks märkida (uus Thunderbird võimaldab otse võtit tühistatuks määrata)
- (Vabatahtlik:) lisaks saate siduda enda avaliku võtme oma identiteediga veebis, näiteks Twitteri kontoga või kodulehega. See on vajalik juhul kui tahate reaalselt PGP-d kasutada ning tekitada usaldust võtme ja identiteedi vahel.
Mac OS X kasutajate jaoks on programm: GPGTools
GPG Mac versiooni nimi on GPGTools. Eraldi on võimalik paigaldada kas ainult meilikliendi laiendust (GPGMail) või siis tervet GPG funktsionaalsust (GPGSuite). Paigaldame terve funktsionaalsuse, selleks minge veebilehele https://gpgtools.org/ ja valige "Download GPG Suite". Järgmisena paigaldage GPG Suite.
Pärast paigaldamist avage programm GPG Keychain Access ja looge või importige endale võtmepaar. Selleks, et avalikustatud võtit saaks tühistada looge ka revocation sertifikaat, seda saab teha valides menüüst "Key" -> "Generate Revoke Certificate". Sama menüü abil saab enda avalikku võtit avalikustada ja otsida teiste inimeste avalikke võtmeid.
Nüüd saab programmi Mail abil saata krüpteeritud kirju kui vastava konto jaoks on võtmepaar loodud või imporditud. Krüpteeritud kirja saatmiseks tuleb alustada kirja kirjutamist ja siis vajutada vastavalt krüpteerimise nupule, sama kehtib signeerimise kohta. Krüpteeritud kirju saab saata ainult nendele aadressidele, mille jaoks on programmis GPG Keychain Access olemas PGP avalik võti.
OpenPGP ja GPG probleemid
PGP probleemidest on teinud ülevaate Matthew Green: What's the matter with PGP?. Kuna see kirjutis pärineb 2014 aastast, siis on praeguseks mitmed postituses kirjeldatud probleemid saanud lahenduse. Siiski on paljud krüptograafid PGP suhtes negatiivselt meelestatud, kuna see ei kasuta tänapäevaseid turvalahendusi nagu näiteks tulevikukindlust. Samas ei ole emailide krüpteerimiseks ka head alternatiivi. Seetõttu võib võtta pragmaatilise seisukoha ning kasutada PGP edastatava info konfidentsiaalsuse kaitsmiseks juhul kui tegemist pole väga kõrge konfidentsiaalsustasemega (sellisel juhul tuleks pigem leida alternatiivne turvalisem meetod info vahetamiseks).
Kasulikud lingid
- Relevantsed artiklid
- PGP
- GPG, Thunderbird