dm-crypt

From Frack - Hackerspace Friesland
Jump to navigationJump to search
Onderwerp: dm-crypt
Versleuteling.jpg
Beginners
Gebruiker Elmer.jpg Elmer
Gebruiker Elmer.jpgElmer de Looff (Elmer) Rol: niet-deelnemer Deskundig met: Arduino, ENC28J60, Elektronica, GnuCash, HTML, LPD8806, Linux, MediaWiki, Mercurial, Netwerken, OpenVPN, Programmeren, Python, SSH, Software, Solderen Beginnend met: Dm-crypt, Javascript Werkt aan: Geen projecten :(
Onderdeel van Linux

dm-crypt is een subsysteem in Linux (vanaf kernel 2.6) voor transparante encryptie. Het maakt onderdeel uit van de device-mapper infrastructuur en maakt gebruik van de Crypto API in de kernel.

Icoon informatie.svg Deze pagina is een beginnetje. Voeg informatie toe door deze pagina te bewerken.

USB-stick versleutelen

Deze handleiding gaat uit van een modern Linux-systeem waar we een enkele USB-stick willen versleutelen met gebruik van dm-crypt. De tool die we gebruiken om de USB-stick klaar te maken is cryptsetup en zal als eerste geinstalleerd moeten worden:

sudo apt-get install cryptsetup

Cryptovolume formatteren

Daarna kunnen we het volume klaarmaken voor encryptie. In het voorbeeld hieronder moet /dev/sdz vervangen worden door het volume dat versleuteld moet worden. Het is vaak wenselijk om een partitie te versleutelen in plaats van het gehele device, maar in geval van een USB-stick is dit laatste een prima optie:

sudo cryptsetup luksFormat /dev/sdz

Tijdens deze stap wordt gevraagd om het wachtwoord waarmee de USB-stick versleuteld moet worden. Later kunnen er tot 10 wachtwoorden of sleutelbestanden worden toegevoegd.

N.B.: Wat deze stap niet doet, is alle informatie die in het volume stond onleesbaar maken of overschrijven.

elmer@Penrose:~$ sudo cryptsetup luksFormat /dev/sdz

WARNING!
========
This will overwrite data on /dev/sdz irrevocably.

Are you sure? (Type uppercase yes): YES
Enter LUKS passphrase: 
Verify passphrase: 

Cryptovolume openen

Nu we een versleuteld volume hebben aangemaakt, moeten we het openen en er een bestandsysteem op plaatsen. Openen gaat met cryptsetup als volgt:

sudo cryptsetup luksOpen /dev/sdz kittens

Ons versleuteld volume is nu beschikbaar als /dev/mapper/kittens. Hier vervolgens een bestandssysteem op plaatsen werkt als normaal:

sudo mkfs.ext4 /dev/mapper/kittens
elmer@Penrose:~$ sudo cryptsetup luksOpen /dev/sdz kittens
Enter passphrase for /dev/sdz: 
elmer@Penrose:~$ sudo mkfs.ext4 /dev/mapper/kittens
mke2fs 1.42 (29-Nov-2011)
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
61440 inodes, 245504 blocks
12275 blocks (5.00%) reserved for the super user
First data block=0
Maximum filesystem blocks=251658240
8 block groups
32768 blocks per group, 32768 fragments per group
7680 inodes per group
Superblock backups stored on blocks: 
	32768, 98304, 163840, 229376

Allocating group tables: done                            
Writing inode tables: done                            
Creating journal (4096 blocks): done
Writing superblocks and filesystem accounting information: done

Laatste stappen

Als laatste stap sluiten we het crypto-volume:

sudo cryptsetup luksClose kittens

Als we de stick nu uit te computer halen en later er weer in steken zullen we gevraagd worden voor het wachtwoord dat we eerder hebben opgegeven. Wanneer een van de juiste wachtwoorden wordt opgegeven (de interactieve versie ondersteunt geen sleutelbestanden) is de stick bruikbaar als willekeurig welke andere USB-stick.

Ubuntu installeren op een encrypted disk

Extra cryptovolumes

Keyfile aanmaken

Als eerste maken we een keyfile aan:

dd if=/dev/urandom count=10 bs=1024 of=cryptdisk.key


/etc/crypttab

Volumes die bij het opstarten van de computer aanwezig zijn, en altijd gestart moeten worden, kunnen aangegeven worden in /etc/crypttab. Wanneer de derde kolom "none" bevat wordt het volume ontsleuteld met een ingevoerd wachtwoord. Een bestandsnaam wijst naar een crypto-sleutel. Een voorbeeld hiervan, waar de root-partitie versleuteld is (met in te typen wachtwoord), en en 'home' mount met een sleutelbestand op het 'root' bestandssysteem:

# <name>	<device>	<passwordfile>	<type>
root		/dev/sda2	none		luks
home		/dev/sda3	/luks_home.key	luks

N.B.: Een crypto-sleutel plaatsen op een niet-versleuteld volume is een slecht idee, tenzij fysieke toegang beperkt kan worden.