Många SSD stödjer idag något som heter OPAL2, en uppsättning specifikationer för hårddiskar och SSD. I specifikationerna ingår kryptering av diskar. Denna kryptering kan vi använda med verktyget SEDutil. SED i detta sammanhang står för Self-Encrypting Drive.

SEDutils lösenordsprompt

Att använda diskens inbyggda krypteringsfunktion har både för- och nackdelar. Fördelen är att det är helt oberoende av operativsystemet. Nackdelen är att man måste lita på krypteringen i disken, vilket inte går att granska på ett enkelt sätt.

Men fördelen med att ha en krypterad disk som är helt oberoende av operativsystemet uppväger mycket. Att dessutom använda SEDutil för att administrera kryptering gör att vi inte heller är beroende av datorns BIOS. Diskens kryptering blir då helt fristående från både datorn och från operativsystemet.

SEDutil är helt fritt och har öppen källkod. Det installeras på diskens så kallade shadow MBR som en PBA (pre-boot authentication).

Shadow MBR är ett 128MB stort område som finns på diskar som stödjer OPAL2. Området visas som en fejk-disk när datorn startas. Det riktiga området på disken är i detta skede dolt. SEDutils PBA fungerar då som ett minimalt operativsystem. Detta operativsystem frågar efter diskens krypteringslösenord vid start av datorn. När användaren har skrivit in rätt lösenord låses det riktiga området på disken upp och datorn startar om sig. När datorn startar om sig syns nu istället det riktiga innehållet på disken och datorn startar därifrån, t.ex. Windows eller Linux.

Disken förblir nu upplåst så länge den är strömsatt. När strömmen till disken bryts, exempelvis när datorn stängs av, låses den igen och shadow MBR-området är det som kommer visas när datorn startas nästa gång.

Vänteläge och viloläge

Eftersom disken låses så fort strömmen till den bryts kommer den att låsas när datorn sätts i vänteläge (suspend to RAM). När datorn väcks ur vänteläget är disken låst och går inte att låsa upp. Upplåsningen sker bara vid en normal start av datorn. Därför, i sin enklaste form, fungerar inte SEDutil med vänteläget.

Det finns däremot lösningar för detta, åtminstone för Linux. Det går att spara lösenordet i datorns RAM och låta ett skript låsa upp disken när den väcks från vänteläget. Jag använder dock inte den lösningen själv eftersom det är en säkerhetsrisk. Om datorn blir stulen när den är i vänteläget låses den upp när den väcks, precis som om jag själv skulle ha väckt den från vänteläget.

Ett säkrare alternativ är därför att använda viloläget istället (suspend to disk). Då sparas hela den aktiva sessionen på diskens swap-partition och datorn stängs därefter av. Disken är då låst och går inte att låsa upp igen utan att manuellt skriva in lösenordet. När datorn startar frågar SEDutils PBA efter lösenordet, låser upp disken och startar om datorn. När den startar läser den in den aktiva sessionen från swap-partitionen.

Nackdelen med att använda viloläget istället för vänteläget är att det inte är lika snabbt. Men det är ett litet pris att betala för tryggheten att veta att datorns disk är helt låst om den skulle bli stulen eller kvarglömd på kaféet eller tåget.

Demonstration

Jag använder själv OPAL2 med SEDutil på mina laptops. Jag använder även viloläget istället för vänteläget då det är säkrare. Den längre uppstartstiden är inget som stör mig.

Mer information om OPAL2 och SEDutil

För att installera SEDutil rekommenderar jag att läsa SEDutils installationsanvisningar på GitHub. Det är steg-för-steg-instruktioner som går igenom allt man behöver göra för att kryptera sin SSD, inklusive att kontrollera ifall den stödjer OPAL2. Tänk på att inte alla SSD stödjer OPAL2.

För den som är nyfiken på SEDutil och vänteläget finns det en del att läsa om detta i Arch Linux wiki.

De kompletta specifikationerna för OPAL2 finns tillgängliga som en PDF.