1.2 Krüpteerimine
- Andmete krüpteerimine - Tartu Ülikooli infoturbe kursus
- Krüpteerimise praktikum - Tartu Ülikooli infoturbe kursus
- Avaliku võtme krüptograafia - Tartu Ülikooli infoturbe kursus
- Cryptography - Wikipedia
- Encryption - Wikipedia
- Animated Overview: How Strong Encryption Can Help Avoid Online Surveillance - Surveillance Self-Defence
Krüpteerimine on teksti või andmete muutmine matemaatilist algoritmi ning krüptovõtit kasutades viisil, mis lubab edaspidist ligipääsu ainult autoriseeritud (näiteks parooli või võtit omavatele) osapooltele.
Krüpteerimine on väga oluline näiteks internetist ostude tegemisel ja pangandusteenuste kasutamisel. Vastasel juhul oleksid kontode andmed ja pangakaartide numbrid võrguliikluse jälgijatele nähtavad ning salvestatavad.
Otspunktkrüpteerimine on kommunikatsioonisüsteem, milles ainult suhtlevad osapooled omavad sõnumitele (veebisaitide sisu, kõned jms.) ligipääsu. Põhimõtteliselt takistab see potentsiaalseid pealtkuulajaid - sealhulgas telekommunikatsiooni-, interneti- ja isegi suhtlusteenuse pakkujaid - saamast ligipääsu krüptovõtmetele, mis on vajalik suhtluse dekrüpteerimiseks.
Näiteks Google Drive ja Facebook Messenger kasutavad tugevat krüpteerimist, kuid (vähemalt vaikimisi) mitte otspunktkrüpteerimist. Seetõttu on Facebookile ja Google'ile nähtav kogu nende sisu. Otspunktkrüpteerimise kasutamisel oleks neile nähtav vaid failide suurus või sõnumite saatmise aeg. Kuna teenustel endal puudub sisule ligipääs, on nad võimetud seda ka teistele (näiteks ametivõimudele) edastama.
Edward Snowden:
Krüpteerimisalgoritmid võivad tunduda keerulised ja väljakirjutatuna seda ongi, kuid nende idee on üsna lihtne. See on matemaatiline meetod informatsiooni pöörduvaks teisendamiseks - nii saavad teie ekirjad, telefonikõned, fotod, videod ja muud failid arusaamatuks kõigile, kes krüpteerimisvõtit ei oma või tea.
Krüpteerimisalgoritmid on põhimõtteliselt keerukad matemaatikaülesanded, mille lahendamine on isegi arvutitele keeruline. Kasutatud võti on osa lahendusest, mis arvutil mõistliku ajaga (tavaliselt mõnest millisekundist kümne sekundini) lahenduseni jõuda aitab. Erinevad algoritmid on erineva kaitseastmega, kuid väga oluline on ka võtme pikkus, mis tähistab algoritmide aluseks oleva matemaatika keerukust. Paljude algoritmide puhul on võtme pikkuse kasvamisel turvalisuse kasv eksponentsiaalne. Kui eeldada, et ründajal kulub üks päev 64-bitise võtme (andmeid skrambleeritakse ehk muudatakse ühel viisil 264 = unikaalsest variandist), siis 65-bitise võtme murdmiseks kuluks kaks päeva, 66-bitise jaoks neli päeva ning 128-bitise jaoks 264 päeva ehk viiskümmend miljonit miljardit aastat.
See tähendab, et tugeva krüpteerimise kasutamisel ei suudagi isegi maailma parimad krüptoanalüütikud kogu maailma arvutusvõimsust samaaegselt kasutades kettale ligipääsu saada. Sel põhjusel on krüpteerimine parim vahend iga tüüpi jälgimise takistamiseks. Kui kõik meie andmed, sealhulgas suhtlus, oleks sellisel moel, otspunktkrüpteerimist kasutades, krüpteeritud, ei saaks küberkurjategijad, ükski valitsus või muu organisatsioon selle sisu teada. See eemaldaks õiguse ligipääsuks kõigile neile, kellele me seda tahtlikult kunagi andnud pole. Siiski aitab krüpteerimine andmetele ligipääsu piirata ainult senikaua kuniks andmed krüpteeritud kujul on. Andmete kasutamiseks tuleb need vähemalt ajutiselt dekrüpteerida.
Sülearvutite ning nutiseadmete suurenenud mobiilsus suurendab ka nende kadumise või varastamise riski. Juba seadmest ilma jäämine on väga halb, kuid kogu selles sisalduva info soovimatu edasiandmine võib olla palju suurem kaotus. Kuigi Windowsi konto võib olla tugeva parooliga kaitstud, pole sellesse sisse logimine andmetele ligi pääsemiseks sugugi vajalik. Ligi pääseb ka brauserisse salvestatud informatsioonile - kui olete emaili konto parooli salvestanud või sisselogimise meeldejätmiseks märgistanud, võimaldab see pahatahtlikul inimisele kergesti üle võtta suure osa seda kasutavatest kontodest. Näiteks on selline salvestamine väga levinud Google Chrome'i ning Gmaili puhul.
Teistele isikutele arvutis sisaldavate andmetele ligipääsu piiramiseks on oluline need krüpteerida. Selleks on palju erinevaid võimalusi, millest mõned nõuavad vaid ühekordset seadistamist ning töötavad seejärel taustal automaatselt.
Advanced Encryption Standard (AES)
Advanced Encryption Standard - Wikipedia
Advanced Encryption Standard ehk progressiivne (täiendatud) krüpteerimisstandard (algselt Rijndael) on 2001. aastal Ameerika Ühendriikide Rahvusliku Standardite ja Tehnoloogia Instituudi (NIST) poolt välja kujundatud krüpteerimisspetsifikatsioon.
AES on standard USA föderaalvalitsuse informatsiooni krüpteerimisel ning ainus avalik NSA poolt täiesti salajaste (top secret) andmete krüpteerimiseks heakskiidetud šiffer.
See on ülemaailmselt laialdases kasutuses ning rakendatav lisaks tarkvarale ka püsivaras (firmware) ning riistvaras (näiteks välised andmekandjad).
AES on vaikimisi kasutusel või saadaval praktiliselt kõigis krüpteerimisprogrammides. Selle kursuse raames algoritmi tehnilist kirjeldust ei tutvustata, kuid kasutakse rakendusprogramme, milles AES implementeeritud on.
2019. aasta seisuga pole teada ühtegi praktilist rünnakut, mis korrektselt implementeeritud AES-iga krüpteeritud andmeid ilma võtit omamata lugeda võimaldaks. Eelduseks on tugeva võtme (parooli) kasutamine, kuna krüptovõtme mõistatamise ründed on siiski võimalikud.
Arhiveerimisprogrammid
Lihtsaim viis andmete krüpteerimiseks on andmetihenduse programmidega (Windowsi jaoks näiteks WinRAR, PeaZip, 7-Zip), kuna enamasti on üks neist juba arvutisse paigaldatud. Tulemuseks on .zip, .rar või muu sarnane fail, millest algsete failide ekstraktimiseks on vaja teada parooli.
Faili internetti laadimiseks ning turvalisemalt teistele saatmiseks on see mugav lahendus. Probleemid failide ning nende sisu varjamisel võivad tekkida juhul kui sama arvutit või kontot kasutavad ka teised isikud ning krüpteeritud faile on vaja avada. Failide ekstraktimisel kopeeritakse neid mõningatel juhtudel ajutiste failide kausta (%temp%), kust need krüpteerimata kujul leitavad on. Samuti pole krüpteerimine nende programmide põhifunktsioon ning selle teostus ei pruugi olla nii turvaline kui ainult krüpteerimiseks mõeldud programmides.
WinRAR-ist ning 7-Zip-ist on korduvalt turvanõrkusi avastatud. Lisaks ei paku need erinevalt operatsioonisüsteemidest ning veebibrauseritest enamasti automaatseid uuendusi. Seetõttu tuleks enne arhiveerimisprogrammide krüpteerimiseks kasutamist veenduda, et kasutusel on nende uusim versioon.
TrueCrypt
Aastaid peeti Windowsi jaoks parimaks krüpteerimistarkvaraks TrueCrypti, mis võimaldas krüpteerida terveid partitsioone ning kettaid ja luua ning salvestada virtuaalseid kettaid failidena. 2014. aasta mais ilmus TrueCrypti veebisaidile ootamatu teade, et programmi kasutamine pole turvaline ning soovitati kasutada operatsioonisüsteemidesse sisseehitatud krüpteerimisvahendeid. Kuna ühtegi konkreetset turvanõrkust teada polnud ning kasutusel olid kaasaegsed algoritmid kahtlesid mõned kasutajad teadaande autentsuses ning esile kerkisid mitmed teooriad. TrueCrypti loojad on tänaseni anonüümsed ning arenduse lõpetamise põhjust pole teada.
Kuna programmi lähtekood (Vikipeedia) oli avalik, said kõik soovijad seda uurida ning sõltumatu auditi tulemusena teatasid eksperdid 2015. aasta märtsis, et ühtegi tõsist turvanõrkust ei leitud. TrueCrypti koodi põhjal loodi palju uusi projekte. Tänaseks on neist edukaim VeraCrypt, mille arendamist alustati 2013. aastal, enne TrueCrypti arenduse seiskumist.
Veenev eitatavus (plausible deniability)
VeraCrypt ei krüpteeri igat faili eraldi, vaid pakub võimalust ainult köidete (volume) krüpteerimiseks. Köited võivad olla failipõhised ehk konteinerid või sektsiooni ('partition') ja mäluseadme põhised. Konteiner on ainult üks fail krüpteerimata kettal, kuid krüpteeritud sektsioonile failihalduriga ligipääs täielikult puudub.
Sellisel krüpteerimisviisil on palju eelised. Konteineri suurus on eelnevalt täies mahus määratud või dünaamiliselt kasvav. Selle tõttu pole selles sisalduvate failide kohta praktiliselt midagi peale maksimaalse kogusuuruse teada. Sisalduvate failide nimesid, suuruseid kaustu ja muud pole dekrüpteerimata kuidagi võimalik tuvastada.
TrueCrypt ja VeraCrypt võimaldavad krüpteeritud konteineri kõrvale teise, peidetud konteineri, lisamist. Peidetud konteiner avaneb oma parooliga, mida teadmata ei ole võimalik selle olemasolu tõestada. See on kasulik juhtudeks, mil seaduse või väljapressimise tagajärjel ollakse sunnitud parool avaldama, kuid krüpteeritud faile avalikustada ei taha.
Turvaline kustutamine
Kustutamine on seadmekasutajate vaatepunktist levinud tegevus. Arvutites on see teostatav nii menüüdest kui ka klaviatuuril oleva nupuga. Mõnikord avaneb isegi täiendav aken, kus kustutamiseks täiendav kinnitus anda tuleb.
Tegelikkuses pole kustutamisfunktsioon tehnoloogiliselt kunagi kasutajate poolt ettekujutatud viisil toiminud. Kuigi kustatud fail kaob kasutaja vaatest, on selle sisu harva tegelikkuses kadunud - muudetakse ainult failitabelit ehk kaarti, mis määrab failide asukoha kõvakettal. See kirjutatakse ümber viisil, mis ütleb operatsioonisüsteemile, et faili asukohas olevat kettaruumi ei kasutata enam millekski tähtsaks. Selles on ka ise lihtne veenduda - failide kopeerimisele kulub oluliselt kauem aega kui kustutamisele. Põhjus seisnebki selles, et ainus mida kustutamine failile teeb on selle varjamine. Fail on seetõttu peidetud ainult nende eest, kes ei tea kust seda otsida.
Andmete kustutamiseks on need vaja kõvaketta sektorid, millel fail asus üle kirjutada. Täielikult taastamatuks muutmiseks võib vaja minna mitut ülekirjutust. Kuid ka sellel meetodil on puudused. Nimelt võib operatsioonisüsteem või rakendusprogrammid failist taustal teha koopiaid kohtadesse, millest kasutaja teadlik pole.
Tänapäeva arvutites kasutatakse andmete salvestamiseks peamiselt kahte tüüpi kettaid - kõvaketas ehk HDD (hard disk drive) ning pooljuhtketas ehk SSD (solid state drive).
Kustutatud andmete taastamine võib HDD puhul osutuda tasuta tarkvaraga väga lihtsaks. Windowsis faili kustutamisel eemaldatakse tegelikult ainult viide failile. Kuigi vaba ruum kettal suureneb, on faili sisu kettal endiselt alles. Selline kustutamisviis aitab säästa aega, kuna vastasel juhul kuluks faili kustutamisele sama kaua kui kirjutamisele (suuremate failide puhul mitu minutit) ning ketta eluiga väheneks. Faili sisu kustub (võib-olla osaliselt) alles selle üle kirjutamisel uute failidega, mille asukohad kettal valitakse juhuslikult vabaks märgitud osade seast. Mida vähem on kettale pärast faili kustutamist kirjutatud ning mida rohkem vaba ruumi, seda tõenäolisem on faili edukas taastamine.
Pilveteenused
Pilvepõhiste teenuste (Google Drive, Dropbox, iCloud, Evernote) kasutamisel tuleks lähtuda eeldusest, et kõikidele salvestatud andmetele on potentsiaalne ligipääs ka teistel. Kuigi andmed on serverites tõenäoliselt krüpteeritud, on selleks kasutatav võti siiski firma valduses. Lisaks võib keegi konto parooli ära arvata või muul moel ligipääsu saada. Eelnev endapoolne krüpteerimine aitab failide sisu salajasena hoida ning nende sisu analüüsimist vältida.
Steganograafia
Krüpteeritud failid võivad äratada kahtlust ning on mõnes riigis ka seadusega keelatud. Kuigi krüptograafia varjab failide või sõnumi sisu, ei varja see peidetud sisu olemasolu. Steganograafia on teadus salajaste andmete peitmisest tavalise faili (pilt, video, heli) sisse. Nii varjatakse selle edasisaatmisel peidetud osa olemasolu. See võib aidata salajaselt suhelda ka juhul, kui kogu kasutaja tegevust internetis jälgitakse. Eestis enamasti vajadus selliseks tegevuseks puudub.
Kvantarvutid ja krüptograafia tulevik
Kordamisküsimused
- Kuidas töötab avaliku võtme krüptograafia?
- Miks on andmete krüpteerimisel oluline ka seadmete füüsiline turvalisus?
Ülesanded
1. ülesanne - 7-Zip
7-Zipiga failide tihendamiseks (ja krüpteerimiseks) tuleb failide valimise (töölaual või kaustas) järel ühel neist parema hiirenupuga klõpsata ning avanenud menüüst valida 7-Zip > Lisa arhiivi... (Add to archive...). Avanev aken (paremal) pakub palju võimalusi tihenduse seadistamiseks. Enamikuks juhtudeks on vaikevalikud (normaaltihendus) sobivad ning krüpteermiseks tuleb sisestada ainult parool. Sellisel juhul krüpteeritakse failide sisu, kuid nende nimed ja suurused jäävad nähtavaks. Nimede peitmiseks (krüpteerimiseks) tuleb märkida "Krüpti failinimed" ruut. Võimalus on luua ka iseavanev arhiiv, mis saab faililaiendi .exe ning on avatav ka arhiveerimisprogrammi puudumisel (kasulik näiteks faili teistele saatmisel). Lõpetuseks vajutada "OK". Kui tegu pole suurte failidega, kulub arhiivi loomisele vaid mõni sekund.
Vaikimisi valitud seaded võivad olla pildil olevatest erinevad, kuid selle ülesande raames on olulised vaid krüptimise seaded - parooli valimine ning failinimede krüptimine. Soovituslik on proovida failide krüpteerimist ka ilma failinimede krüptimiseta, et erinevustest paremini aru saada.
2. ülesanne - VeraCrypt
Free Open source disk encryption with strong security for the Paranoid
VeraCrypti peetakse parimaks Windowsis saadaolevaks krüpteerimisutiliidiks. See on tasuta ning avalikustatud lähtekoodiga ning on läbinud ka [[https://ostif.org/the-veracrypt-audit-results/ |turvaauditi]].
VeraCrypt ei võimalda otse olemasolevaid faile krüpteerida, vaid nõuab eelnevalt loodud konteineri mauntimist (mount), mis muudab konteineri sisu virtuaalse sektsioonina (näiteks mälupulgana) kasutatavaks. Konteineri sisu avaneb tavalise failihalduriga, kuid taustal salvestab VeraCrypt selle krüpteeritud faili või kettale, mille kasutamine nõuab parooli teadmist.
Krüpteeritud konteineri loomine
Veracrypti arendajad soovitavad kasutada vähemalt 20 tähemärgilist parooli, kuid pikkusele minimaalset nõuet seatud pole (maksimaalne on 64 tähemärki). Võimalus on kasutada ka võtmefaile, mis võivad olla juhuslikku tüüpi (näiteks MP3 või JPEG), kuid mille kustutamise või muutmise (kontrollitakse ainult väikest osa faili algusest) korral konteineri sisu enam kättesaadav pole. Seetõttu pole nende kasutamine algajatele soovitatav. Kuna kasutusel on parimad krüpteerimisalgoritmid ei suuda piisavalt pika parooli korral teadaolevalt ükski ekspert maailmas teie faile taastada. Seda eeldusel, et kasutatav arvuti pole pahavaraga nakatunud või muul viisil õõnestatud.
Lisaks Ameerika Ühendriikide teadlaste poolt loodud algoritmidele saab valida ka Venemaal või Jaapanis välja töötatud šifreid (ja neid erinevatel viisidel kombineerida). Kõige kiirem neist on AES (uuema protsessori korral 5-10 GB/s), kuid ka kolme algoritmi kaskaadi kasutamisel on lugemis- ja kirjutamiskiirused mitusada megabaiti (MB) sekundis. Seetõttu on sobivad ning turvalised kõik pakutavad valikud. Ühtegi teadaolevalt murtud algoritmi VeraCrypt kasutamiseks ei paku.
3. ülesanne - BitLocker
- Seadme krüptimise funktsiooni sisselülitamine - Windowsi tugi
- Bitlocker (Windows 10) - Microsoft Docs
- Recently Bought a Windows Computer? Microsoft Probably Has Your Encryption Key - The Intercept (2015)
BitLocker on Windowsi sisseehitatud krüpteerimisutiliit. See ei vaja täiendavat allalaadimist või paigaldamist, kuid saadaval ainult Pro, Education, Enterprise ja Server (ning Windows 7 Ultimate) väljaannetes.
Kuigi teie Windowsi parool võib olla väga tugev, on arvuti mälupulgalt buutimisel või salvestusseadme teise arvutiga ühendamisel kogu kõvaketta sisu paroolita nähtav. BitLocker on Windowsi sisseehitatud tööriist selle lahendamiseks. Krüpteerimine on väga lihtsasti sisse lülitatav ning Bitlocker võimaldab automaatset dekrüpteerimist Windowsi kontosse sisse logimisel. Lisaks on võimalus krüpteerida ka väliseid seadmeid, mis on ka teistes Windowsi arvutites parooli teadmisel avatavad.
Microsofti koostöö tõttu USA valitsusagentuuride ning suletud lähtekoodi tõttu ei saa Windowsis pakutavate krüpteerimismeetodite kasutamisel tagauste puudumises kindel olla. Piiratud tingimustes on valitsusasutused Microsofti toodete lähtekoodi siiski uurinud ja kontrollinud. Mõningatel juhtudel laetakse krüpteerimiseks kasutatav võti Microsofti serveritesse ning pole teada, kes seejärel veel krüptovõtmele ligipääsu võib omandada. Võtme üleslaadimise puhul tuleks kontrollida ka oma Microsofti konto (parooli) turvalisust.
Erinevalt VeraCryptist ei võimalda BitLocker konteinerite loomist. Krüpteerida saab ainult terveid sektsioone.
Bitlockeri sisse lülitamiseks tuleb avada failihalduris See arvuti (This PC) ning kettal, mida krüpteerida soovite parema klõpsuga avanevast menüüst "Lülita Bitlocker sisse" (Turn on Bitlocker) valida. Edasised sammud on nähtavad järgnevatel piltidel: