De flesta minns säkert ”Skelettkvinnan”, hon som samlade på olagliga människoben och som krypterade sin hårddisk med Truecrypt för att försvåra polisutredningen. Enligt sociala medier var diskarnas kryptering baserade på ett fyrtio tecken långt lösenord. Polisen lyckades aldrig forcera krypteringen.
Samtidigt hör man talas om angrepp, ”cold boot”- angrepp och dma-attacker, där kryptonyckeln enkelt utvinns ur ram-minnet.
Det finns flera frågeställningar som detta ger upphov till. Den viktigaste är: Under vilka förutsättningar kan hårddiskkryptering anses vara säker?
Vi kommer i artikeln gå igenom tre olika system – Truecrypt, Bitlocker och Filevault – och diskutera deras säkerhet. Vi kommer även utföra vissa experiment för att bedöma svårigheten avseende olika typer av sidokanalsangrepp mot hårddiskkrypteringslösningar.
Det finns en uppsjö av produkter för hårddiskkryptering, och alla fungerar på liknande sätt. Den här artikeln handlar inte om att utse en vinnare bland dem, utan att utforska inom vilka ramar diskkryptering kan anses säker.
Bitlocker är Microsofts lösning för hårddiskkryptering, som dels kan kryptera hela hårddiskar och dels användas för att kryptera usb-minnen, ”Bitlocker to go”.
Den första versionen av Bitlocker introducerades i samband med Windows Vista år 2007. Lösningen bygger sin kryptering på att datorn har ett fungerande tpm-chip, trusted platform module, där krypteringsnycklarna lagras och hämtas när datorn startas.
Filevault är Apples variant, men den är helt mjukvarubaserad. I den bygger krypteringen i stället på användarens inloggningslösenord.
Eftersom många misstror både Bitlocker och Filevault har Truecrypt lyfts fram som ett säkert alternativ. Det var länge känt som den bästa programvaran för kryptering, med ett stort urval av krypteringsalgoritmer, öppen källkod och flertal krypteringsalternativ. Men historien om Truecrypt fick ett abrupt slut i början av sommaren 2014 då utvecklarna valde att inte längre utveckla programvaran. Vad som ledde till nedläggningen är ännu inte känt. I den här artikeln använder vi dock Truecrypt som referens vid olika typer av angrepp – vi har tidigare testat liknande angrepp mot Truecrypt och vet att de fungerar mot den mjukvaran.
Det finns i huvudsak tre typer av angrepp för att utvinna krypteringsnyckeln från hårddiskkryptot.
Det första fallet bygger på att en brute forceattack genomförs. Den här typen av angrepp kan göras då krypteringen är helt mjukvarubaserad. Angriparen letar då efter den sträng där kryptonyckeln är lagrad och försöker sedan forcera kryptosystemet genom att gissa det användarvalda lösenordet.
Det spelar ingen roll på vilket sätt nyckeln är lagrad. Eftersom det finns en stark länk mellan användarens lösenord och krypteringen kan angriparen hela tiden på något sätt gissa sig till vilket lösenord som valts.
Det enda skyddet i det här fallet är att lösenordet är tillräckligt starkt. För er som undrar hur starka lösenord ska vara – läs vår tidigare artikelserie ”Lösenordens död” (tinytw.se/losendod1).
Det andra angreppsfallet bygger på en strategi som ofta förekommer vid forensiska utredningar av krypterade diskar; en så kallad ”boot-attack”. Det är ett angrepp där ett körande system som befinner sig i ett låst läge stängs ner, för att sedan startas upp med ett annat operativsystem från ett externt medium, till exempel ett usb-minne eller cd-skiva. Ram-minnet kan därefter extraheras och analyseras för att hitta viktig information, till exempel krypteringsnycklar.
Problemet är att ram-minnet bara lagrar information medan minnet är strömsatt – när enheten stängs av försvinner informationen gradvis och snabbt från minnet. Lösningen kom i form av en upptäckt där ram-minnen analyserades vid olika temperaturer för att se hur fort data förloras. Resultatet visade att ett nerkylt ram-minne bevarade data mycket längre tid än vad ett ram-minne vid arbetstemperatur gör, och från den upptäckten utvecklades så kallade ”cold boot”-angreppet.
Det innebär att om personen stänger av datorn i samband med en räd kan kryptonyckeln räddas om minnet kyls ned. En enklare variant av cold bootattack är så kallade warm boot-attacker, där datorn gått ned i sömnläge. Ram-minnet är då fortfarande strömsatt eller lagrat i klartext på annan del av hårddisken.
Den tredje angreppstypen är en så kallad dma-attack, där nyckeln utvinns ur en körande dator. En variant av dma-attacker är de som utförs via firewire-porten, alltså Apples svar på usb. Firewire har ett välkänt problem som tillåter en användare att utvinna de första fyra gigabyten av ram-minnet på en maskin. Angreppet har sin grund i hur Firewire-tekniken är uppbyggd.
När en enhet kontaktar en dator via en firewireport optimeras läs- och skrivhastigheter genom att enheten får direkt tillgång till datorns interna buss via dma-kontrollern, och därmed också kontroll över huvudminnet på datorn. Skulle en angripare ansluta en preparerad enhet till Firewire-porten går det att utvinna information och även skriva in ny information i ram-minnet.
Firewire-standarden är inte ensam om detta problem – samma svaghet finns bland annat även för Expresscard och i Apples senare version av Firewire, Thunderbolt.
Cold boot och warm boot i praktiken
Använd kryptering på rätt sätt Det finns ett antal inställningar som kan utföras för att ytterligare öka säkerheten och minska oddsen att hårddisken blir ofrivilligt dekrypterad.
För Truecrypt finns alternativet att använda en så kallad kaskadkryptering, där två eller flera algoritmer används för att kryptera hårddisken. Vi hittade inga verktyg som kunde dekryptera hårddiskar där kaskadkryptering användes. Kaskadkryptering av krypton gör angreppen mer arbetskrävande, men inte svårare – det är fler nycklar som ska utvinnas och fler algoritmer som ska tillämpas. Även risken för falsk positiv vid utvinning av nycklarna från ramminnet måste läggas till.
Att investera i en dator med ett tpm-chip kan också vara en bra idé, eftersom angreppen innebär manipulering av startsektorer eller om man vill skydda en avstängd dator. Det innebär dock att funktionen pin-on-boot måste användas, och att alla varianter av sömnlägen och energisparlägen måste deaktiveras. Användaren måste själv aktivera pin-onboot.
Tyvärr har varken Truecrypt eller Filevault stöd för att använda ett tpm-chip, men Bitlocker stöder alla tpm-chip som är version 1.2 eller senare. Men Bitlocker används primärt för att skydda mot skadlig kod, och inte mot ofrivillig insyn.
Firewire-angrepp i praktiken
Så fungerar tpm
Jämförande tabell
(klicka på bilden för att förstora den)
TechWorlds slutsats
Hårddiskkryptering är ett alternativ som i grund och botten kan vara väldigt säker, men som vi har visat i den här artikeln finns det attacker som fungera effektivt för att dekryptera hårddiskar. Angreppen är alla baserade på att användaren inte förstår i vilka sammanhang krypteringen ger ett skydd. Skulle du själv bestämma dig att ta steget och kryptera din hårddisk, se då till att du vet vad för risker som finns och hur du bäst undviker dem.
- Var varsam med hur viloläge och energisparläge används. Om du vet att datorn kommer att stå tillgänglig för andra bör du överväga att stänga av datorn när du inte använder den. Krypteringsnycklarna bevaras fortfarande i ramminnet när datorn är i viloläge. Deaktivera därför alla möjliga vilolägen och energisparlägen.
- Använd starka lösenord. Det spelar ingen roll hur bra algoritm du använder om ditt lösenord kan gissas fram. Truecrypt rekommenderade ett lösenord på minst 24 tecken.
- Pin-on-boot. En hårddisk som är krypterad med Bitlocker och inte har pin-on-boot aktiverad är speciellt sårbar mot cold boot-angrepp eftersom en angripare bara behöver starta datorn för att nycklarna ska lagras i ram-minnet. För tidigare Windowsversioner än Windows 8.1 räcker det för en angripare att koppla in sig via en firewire-port för att dumpa ram-minnet. Pin-on-boot får datorn att fungera som ett smart kort där nycklarna är inlåsta på tpm-chipet när datorn inte används. Operativsystemet kan därför inte startas förrän pin för tpm har angivits.
- Deaktivera Firewire, Cardbus och Thunderbolt. Om man deaktiverar denna typ av portar är det svårare att genomföra dma-angrepp. Sådana angrepp kan fortfarande göras via pci-bussen eller andra bus-gränssnitt, men inte via usb. Deaktivering görs bäst i bios, om den möjligheten finns. Glöm inte att också passordsskydda bios.
tinytw.se/svikeraldrig – ”Minnet sviker aldrig – Att utnyttja volatil data i krypterade system”, Peter Hildebloms examensarbete (pdf).
tinytw.se/aeskeyfind – Aeskeyfind är ett simpelt program vars enda syfte är att hitta scheman som liknar aes-nycklar i filer.
tinytw.se/scraper – Scraper är ett verktyg för att på ett så smidigt sätt som möjligt utvinna ram-minnets innehåll.
tinytw.se/efdd – Elcomsoft Forensic Disc Decryptor är ett program för dekryptera med hjälp av nycklar utvunna ur ram-minnet.
tinytw.se/incep – Inception är ett av de mest välanvända verktygen för dma-angrepp. Det fungerar mot vilken dator som helst med en dma-kompatibel port.