TrueCrypt: On-the-fly Schijfencryptie Sjoerd Dost
2
Samenvatting Dit paper gaat over TrueCrypt, een programma voor on-the-fly schijfencryptie. Het geeft een evaluatie van het programma: is het goed in wat het zegt dat het doet? Naast de theorie wordt vooral gekeken naar het gebruik van TrueCrypt in de praktijk.
1
Schijfencryptiesoftware
Software voor schijfencryptie zorgt ervoor dat data versleuteld opgeslagen wordt. Dezelfde software wordt gebruikt om de data weer normaal uit te kunnen lezen: deze data moet dan weer ontsleuteld worden voordat er mee gewerkt kan worden. TrueCrypt gebruikt on-the-fly encryptie, ook wel realtime encryptie genoemd. In deze variant van schijfencryptiesoftware wordt data direct versleuteld wanneer het naar de schijf wordt geschreven, en direct ontsleuteld wanneer het ingelezen wordt.
Introductie
Af en toe haalt een usb-stick met gevoelige informatie erop weer het nieuws. Om beschamende blunders te voorkomen is het beschermen van data op extern geheugen ontzettend belangrijk. Gegevens die versleuteld op een harde schijf staan kunnen niet makkelijk gelezen worden door mensen die de bijbehorende sleutel niet bezitten. Schijfencryptie kan bewerkstelligd worden door middel van hardware en software. Dit paper gaat over TrueCrypt, een open-source programma voor schijfencryptie. TrueCrypt is in staat om de gehele schijf te versleutelen of slechts files binnen een daarvoor aangewezen bestand. Het programma bestaat sinds 2004. TrueCrypt 1.0 was gebaseerd op E4M, Encryption for the Masses, een voorloper die nu niet meer bestaat. Sinds de eerste release zijn er behoorlijk wat veranderingen doorgevoerd. De laatste release is TrueCrypt 7.1a en runt op Windows, Mac OS X en Linux.
Een hele schijf kan op deze manier beveiligd worden, zodat wanneer de schijf verloren gaat er voor een mogelijke aanvaller geen terug te halen informatie op staat. In plaats van de hele schijf kan ook slechts een deel versleuteld worden. Binnen TrueCrypt wordt dit gedaan door een file aan te maken waarin de versleutelde files worden opgeslagen. Deze file heet de container. Het voordeel van het gebruik van containers is dat men ze binnen een onversleuteld besturingssysteem kan gebruiken. Het nadeel is dat dit besturingssysteem mogelijk (meta)data opslaat die niet versleuteld wordt. Aanvallers kunnen deze data gebruiken, waarover later meer. Of een hele schijf beveiligd wordt of een container wordt gebruikt, in beide gevallen spreken we over een TrueCrypt-volume. Dit volume wordt door TrueCrypt behandeld als virtuele schijf en dan ook voor ge1
bruik altijd gemount. Gebruikers die hun tuurlijk ondersteunt TrueCrypt de uiteindeveiligheid serieus nemen dismounten hun lijke winnaar, AES, maar ook Serpent en Twofish. Elk van deze algoritmen gebruikt virtuele schijf altijd na gebruik. een 256-bit sleutel en blokgrootte van 128 bits. Naast deze drie algoritmen kan men 3 TrueCrypt in theorie bij het gebruik van TrueCrypt kiezen om een productsysteem te gebruiken: meerdere 3.1 Encryptiealgoritmen en hash- algoritmen die achter elkaar worden toefuncties gepast. Zoals het 3DES-algoritme gewoon driemaal DES uitvoert (met verschillende TrueCrypt ondersteunt meerdere encryptie- keys!) voert AES-Twofish eerst Twofish en algoritmen en meerdere hashfuncties. Bij daarna AES uit. het aanmaken van een volume specificeert de gebruiker welke algoritmen en functies hij De gekozen hashfunctie wordt door TrueCrypt gebruikt als pseudorandom of zij wil gebruiken. mixing function en in de sleutelgeneraElk van de ondersteunde encryptiealgorit- tie. Op dit moment kan men kiezen uit men was finalist bij het kiezen van de Ad- RIPEMD-160, SHA-512 en Whirlpool. vanced Encryption Standard (AES). Na-
Figuur 1: Encryptiealgoritmen (uit [2])
2
3.2
gebruikt. De enige mode die aangeraden wordt te gebruiken is XTS, XEX-based tweaked-codebook mode with ciphertext steaBij het aanmaken van een volume geeft de ling, een variant op XEX. Deze XTS-mode gebruiker een wachtwoord op waarmee dit versleutelt een blok data C volgens de voli volume gemount kan worden. Dit wacht- gende formule: woord wordt bij elke poging om het volume te mounten gevraagd. Het wachtwoord Ci = EK1 (Pi ∧(EK2 (n)⊗ai ))∧(EK2 (n)⊗ai ) kan gecombineerd worden met een sleutelbestand, zodat het wachtwoord bestaat uit een waarbij K1 en K2 respectievelijk de masterconventioneel wachtwoord en het opgeven en de secundaire sleutel zijn. De volledige van het juiste sleutelbestand. Om de kans te uitleg van XTS-mode vereist ingewikkelde verkleinen dat een TrueCrypt-volume wordt wiskunde en voert hier te ver. Belangrijk herkend als zodanig wordt zoveel mogelijk om op te merken aan bovenstaande formule informatie niet of versleuteld opgeslagen. is dat XTS twee sleutels nodig heeft. Meer Dit betekent dat bij het mounten niet betheorie achter TrueCrypt is te vinden in [2]. kend is welk algoritme, welke hashfunctie, welke manier van encryptie en zelfs welke sleutelgrootte gebruikt is. De oplossing is 3.3 Plausible Deniability gewoon proberen. De header van het volume wordt ingelezen en er wordt gekeken Een van de belangrijkste wapenfeiten van of met behulp van het gegeven wachtwoord TrueCrypt is dat de makers rekening hebben voor een mogelijke combinatie van boven- gehouden met plausible deniability. Plausistaande onbekenden een zekere checkwaarde ble deniability betekent letterlijk zoveel als ontsleuteld kan worden. Als dit lukt ont- ”geloofwaardige ontkenbaarheid”, ofwel in houdt TrueCrypt welke dit zijn en kan de dit geval de mogelijkheid om geloofwaarheadersleutel worden gelezen. Met behulp dig te ontkennen dat het systeem gebruikt van deze sleutel, die alleen wordt gebruikt is. De toegevoegde waarde ontgaat theoom de header de versleutelen, kan de hele he- retici misschien in het begin, maar wordt ader nu worden gelezen. In de header vinden gauw duidelijk met behulp van een voorwe de mastersleutel en de secundaire sleutel beeld. Stel s is een schijf, versleuteld door (in geval van XTS-mode, zie hieronder). Dit X zodat alleen met het bijbehorende wachtzijn de sleutels waarmee elk deel van het vo- woord de data erop gelezen kan worden. We lume versleuteld en ontsleuteld kan worden. willen als aanvaller toch de data kunnen leSlaagt deze procedure dan wordt het volume zen. In plaats van jaren te rekenen aan een brute-force aanval zetten we een pistool gemount. tegen het hoofd van X, totdat X ons het Aangezien alle gebruikte encryptiealgoritwachtwoord tot s geeft. men block-ciphers zijn is de gebruikte manier van encryptie zeer belangrijk. De eer- Ondanks de restricties aan deze aanval (we ste versie van TrueCrypt ondersteunde nog moeten toegang hebben tot X) is deze aancipher-block chaining (CBC), maar dit is val zoals beschreven zeer re¨eel. De oplossing inmiddels achterhaald. Ook de mode van is niet te vinden in de theorie van encryptie. Liskov, Rivest en Wagner (LRW) en XEX- Hoe goed je algoritme ook is, het is zo ontmode (xor-encrypt-xor) worden niet meer worpen dat met behulp van het wachtwoord Encryptie
3
systemen. Files kunnen verborgen worden in het lege deel van een container, waarin normaal gesproken random data zit. Er mag geen aanwijzing zijn dat een container een verborgen volume waarborgt, dus TrueCrypt weet dit ook niet bij het mounten. Dit is nog een onbekende variabele bij het mounten van het volume. De bytes die de header van het verborgen volume zouden kunnen vormen worden voor de zekerheid ingelezen. Wanneer decryptie slaagt met behulp van het wachtwoord op deze bytes (de uitkomst wordt succesvol gechecked met behulp van een checksum) gaat TrueCrypt ervan uit dat er een verborgen volume bestaat en werkt dan met de lege ruimte van het gewone volume.
de data te lezen is. Plausible deniability is de oplossing. Als X zijn aanvallers kan overtuigen dat de schijf niet versleuteld is hebben zij geen reden om een wachtwoord af te dwingen. De hele aanval is nu niet meer relevant. Plausible deniability kan op meerdere manieren bereikt worden. E´en manier is door een afleiding te cre¨eren d.m.v. minder gevoelige maar wel versleutelde data. Het belangrijkste principe is dat de ’echte’ data niet als zodanig herkend mag worden. Het verbergen van informatie op zo’n manier wordt steganografie genoemd. TrueCrypt kent twee verschillende vormen van plausible deniability. De eerste is het gebruik van verborgen volumes en verborgen besturings-
Figuur 2: Verborgen volume (uit [2])
4
Wanneer een hele schijf en dus ook de partitie met het besturingssysteem erop versleuteld is kan men alleen toegang krijgen met een pre-boot authentication password. Ook dit wachtwoord kan afgedwongen worden. Om dit te voorkomen kan het daadwerkelijk gebruikte besturingssysteem verborgen worden in een verborgen volume. Bij gebruik van een verborgen volume kan de gebruiker, in het geval dat zijn wachtwoord wordt afgedwongen, het wachtwoord opgeven tot het gewone volume. De aanvallers zien de files in het gewone volume en hebben geen reden om het bestaan van andere files in het verborgen deel te vermoeden. Hiervoor moet de gebruiker het dus zo aannemelijk mogelijk maken dat het verborgen volume niet bestaat. Aangeraden wordt dan ook om het verborgen besturingssysteem niet vaker te gebruiken dan het gewone besturingssysteem en om in het gewone volume een aantal gevoelige (maar niet kritieke) bestanden te laten staan die men in geval van aanval op kan offeren.
3.4
De tweede methode om plausible deniability te bereiken is door versleutelde data zoveel mogelijk op willekeurige data te laten lijken. Als een bestand wordt gevonden met verdachte regelmatigheden kan het gebruik van TrueCrypt alsnog worden vermoed. Het verborgen volume maakt bijvoorbeeld gebruik van het feit dat in normale TrueCryptvolumes alle data wordt versleuteld, dus ook de lege data. Een goede verklaring voor het bestaan van random data op de harde schijf is het gebruik van programma’s die bestanden veilig verwijderen zonder sporen achter te laten. Dit wordt vaak gedaan door random data er overheen te schrijven.
4.1
Voorwaarden voor veiligheid
Om veiligheid te garanderen moet de gebruiker verstandig omgaan met TrueCrypt. Het programma zelf is bedoeld om data on-thefly te versleutelen en ontsleutelen. Vele aanvallen zijn dan ook niet gericht op de cryptografie maar zijn zogenaamde side-channel attacks. Een belangrijk punt om te onthouden is dat TrueCrypt’s broncode nog nooit een goede review heeft gehad. De betrouwbaarheid van het programma is dus in zeker opzicht slechts zo goed als de betrouwbaarheid van de makers, waar niet veel over bekend is. Het is natuurlijk heel moeilijk om vast te stellen of de code geen zogenaamde ”backdoors”bevat. Er zijn maar weinig mensen die een betrouwbare review kunnen doen, iets wat ontzettend veel tijd en moeite zou kosten.
4
Aanvallen Dataleaks
Bij het gebruik van TrueCrypt wordt data versleuteld opgeslagen. Toch kan het zo zijn dat data die tijdens het gebruik van een programma niet expliciet wordt weggeschreven onversleuteld op de schijf terecht komt. Informatie over bestandsnamen, recent geopende bestanden of de data zelf kan op deze manier buiten de beveiliging van TrueCrypt vallen. Als de hele schijf versleuteld is treedt dit probleem niet op. Alle data is immers versleuteld. Wanneer dit niet het geval is moet de gebruiker goed weten welke data mogelijk lekt naar onversleutelde partities en deze lekkage zelf tegen gaan, bijvoorbeeld door opties in het besturingssysteem uit te zetten die deze data opslaan. Dataleaks maken plausible deniability erg moeilijk wanneer niet de hele schijf versleuteld is [1]. 5
4.2
4.3
Data in RAM
Keyloggers
Alle encryptie die werkt met wachtwoorden is in zekere zin gevoelig voor keyloggers. Men kan nog zulke sterke encryptie gebruiken, als de sleutel wordt afgekeken is het einde verhaal. In de handleiding van TrueCrypt staat dan ook dat de veiligheid niet langer gegarandeerd kan worden zodra een potenti¨ele aanvaller fysieke toegang heeft kunnen krijgen tot het apparaat. Een goede beschrijving van een fysieke aanval is [4], een beschrijving van een zogenaamde Evil Maid attack. In deze aanval wordt een succesvolle aanval beschreven op een laptop beveiligd met TrueCrypt. De aanval duurt twee minuten om op te zetten. Na deze fase moet de gebruiker opnieuw inloggen zodat zijn wachtwoord kan worden vastgelegd. De aanval slaagt wanneer hierna opnieuw toegang kan worden verkregen tot de laptop.
TrueCrypt versleutelt de schijf, niet het geheugen. Tijdens gebruik van TrueCrypt moeten sleutels ergens beschikbaar zijn. Onversleutelde sleutels moeten dus in het geheugen bijgehouden worden. TrueCrypt verwijdert deze sleutels bij dismounten of afsluiten van de computer. Een mogelijke aanval is de zogenaamde cold-boot attack, waarbij de computer niet netjes wordt afgesloten. TrueCrypt stopt voordat het de sleutels uit RAM heeft kunnen verwijderen. De aanval is gebaseerd op data remanentie. Data in RAM vergaat wanneer de computer uitstaat, maar dit duurt even. Als de computer snel genoeg weer opgestart wordt en het RAM wordt uitgelezen kunnen de sleutels teruggehaald worden. Het koelen van de geheugenmodules leidt tot een langere tijd van behoud, tot wel een paar uur [3].
Figuur 3: TrueCrypt’s interface
6
5 5.1
fisceerd werden omdat hij werd verdacht van fincanciele misdrijven. Nadat de Braziliaanse overheid vijf maanden geprobeerd had om de encryptie van Dantas’ met TrueCrypt beveiligde schijven te breken schakelden ze de hulp in van de FBI. Zij probeerden op hun beurt twaalf maanden lang de encryptiesleutel te raden met een woordenboekaanval, maar slaagden hier niet in.
Gebruik Performance
Om data te lezen moet deze eerst ontsleuteld worden en om data te schrijven moet deze eerst versleuteld worden. TrueCrypt kan van meerdere technieken gebruik maken om de performance hit zo klein mogelijk te maken. Welke technieken daadwerkelijk ge- Een andere beroemde zaak is die van de bruikt kunnen worden hangt af van het ge- Verenigde Staten tegen Sebastien Boucher, bruikte besturingssysteem en de hardware. die verdacht werd van transport van kinComputers met een multi-core processor derporno. Alhoewel Boucher zijn laptop kunnen TrueCrypt hier optimaal gebruik had beveiligd met PGP Disk (en dus niet van laten maken d.m.v. parallellisatie. De met TrueCrypt) blijft dit een interessante snelheid die hiermee verkregen wordt is zaak. Boucher werd namelijk gevraagd om evenredig aan het aantal cores en/of pro- het wachtwoord tot zijn beveiligde schijf te cessoren [2]. Met pipelining kan (alleen op geven. Deze schijf zou de verboden data beWindows op het moment) asynchroon data vatten op grond waarvan Boucher was aanverwerkt worden voor nog sneller resultaat. gehouden. In eerste instantie kreeg Boucher Hardware met ingebouwde AES wordt ook te horen dat hij het wachtwoord niet hoefde door TrueCrypt ondersteund. Al deze tech- te geven op basis van de Amerikaanse grondnieken zorgen ervoor dat in het gewone ge- wet. Het vijfde amendement zou hem bebruik men niet veel last heeft van TrueCrypt schermen tegen zelfbeschuldiging, het bewijs dat op de achtergrond al het zware werk leveren in eigen nadeel. Uiteindelijk werd deze beslissing teruggedraaid en werd Boudoet. cher gedwongen zijn wachtwoord af te staan. Nu kon alle data op Boucher’s harde schijf gelezen worden. Deze bleek inderdaad een 5.2 Gebruikers grote hoeveelheid kinderporno te bevatten. Het beveiligen van data met behulp van Boucher werd in 2010 veroordeeld tot drie TrueCrypt wordt voornamelijk gebruikt op jaar cel. Deze zaak onderstreept het belang laptops en andere draagbare media. Waar- van TrueCrypt’s plausible deniability. schijnlijk is het voorkomen dat gevoelige informatie zoals e-mails en bankgegevens openbaar wordt het meest voorkomende gebruik van TrueCrypt.
6
Discussie
Helaas gebruiken sommige mensen TrueCrypt om straf te ontlopen wanneer ze die wel verdienen. Dit zijn de zaken waaruit blijkt dat rechtgeving op dit gebied nog erg vaag kan zijn. In het algemeen wordt TrueCrypt echter gebruikt om
Meer bekend en hopelijk minder vaak voorkomend is het gebruik van TrueCrypt om belastend bewijsmateriaal te verbergen voor overheidsinstanties. Het meest bekende voorbeeld is dat van Braziliaanse bankier Daniel Dantas, wiens harde schijven gecon7
persoonsgegevens te beschermen en identi- Referenties teitsfraude tegen te gaan. Op het internet zijn veel handleidingen te vinden voor in[1] Alexei Czeskis, David J. St. Hilaire, Karl stallatie en gebruik, sommigen geschreven Koscher, Steven D. Gribble, Tadayoshi door universiteiten en bedrijven. AangeKohno, and Bruce Schneier. Defeating zien van de encryptie waar TrueCrypt op Encrypted and Deniable File Systems: steunt niet verwacht wordt dat ze gebroTrueCrypt v5.1a and the Case of the ken wordt in de komende twintig jaar lijkt Tattling OS and Applications. 2008. TrueCrypt een zeer veilige keuze. Toch zijn er veel kleine details in het gebruik waar aan Foundation, 2012. voldaan moet worden mits echte veiligheid [2] TrueCrypt http://www.truecypt.org/docs/. gegarandeerd kan worden. Zelfs dan is deze veiligheid slechts zo betrouwbaar als de code waarin deze vastligt. Tot nu toe zijn er nog [3] J.Alex Halderman, Seth D.Schoen, Nageen backdoors in gevonden. dia Heninger, William Clarkson, William Paul, Joseph A.Calandrino, Ariel Een gratis, open-source programma met J.Feldman, Jacob Appelbaum, and Edzulke degelijke encryptiemethoden is echter ward W.Felten. Lest We Remember: zeer aantrekkelijk. Meerdere malen heeft Cold Boot Attacks on Encryption Keys. TrueCrypt bewezen niet gemakkelijk te kra2008. ken te zijn. TrueCrypt is makkelijk in het gebruik en simpel uit te leggen. Ondanks Rutkowska, 2009. alle disclaimers is het waarschijnlijk een van [4] Joanna http://theinvisiblethings.blogspot.nl/2009/10. de beste programma’s in zijn categorie.
8