<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>blog.keesmeijs.nl &#187; token</title>
	<atom:link href="http://blog.keesmeijs.nl/archives/tag/token/feed" rel="self" type="application/rss+xml" />
	<link>http://blog.keesmeijs.nl</link>
	<description>Waarom ook niet eigenlijk?</description>
	<lastBuildDate>Sat, 14 Jan 2012 16:58:56 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Two-factor LUKS met Ubuntu 10.10</title>
		<link>http://blog.keesmeijs.nl/archives/976</link>
		<comments>http://blog.keesmeijs.nl/archives/976#comments</comments>
		<pubDate>Tue, 19 Oct 2010 14:13:53 +0000</pubDate>
		<dc:creator>kees</dc:creator>
				<category><![CDATA[Apparatuur]]></category>
		<category><![CDATA[Internet]]></category>
		<category><![CDATA[Programmatuur]]></category>
		<category><![CDATA[Techniek]]></category>
		<category><![CDATA[AES]]></category>
		<category><![CDATA[beveiliging]]></category>
		<category><![CDATA[codering]]></category>
		<category><![CDATA[GnuPG]]></category>
		<category><![CDATA[LUKS]]></category>
		<category><![CDATA[OpenPGP]]></category>
		<category><![CDATA[PGP]]></category>
		<category><![CDATA[PIN-code]]></category>
		<category><![CDATA[schijfpartitionering]]></category>
		<category><![CDATA[smartcard]]></category>
		<category><![CDATA[SSD]]></category>
		<category><![CDATA[token]]></category>
		<category><![CDATA[two-factor]]></category>
		<category><![CDATA[Ubuntu]]></category>
		<category><![CDATA[XTS]]></category>

		<guid isPermaLink="false">http://blog.keesmeijs.nl/?p=976</guid>
		<description><![CDATA[De post van laatst over two-factor LUKS met Ubuntu blijkt ook prima te werken met Ubuntu 10.10 &#8220;Maverick Meerkat&#8221;.]]></description>
			<content:encoded><![CDATA[<p>De post van <a href="http://blog.keesmeijs.nl/archives/919">laatst</a> over <a href="http://en.wikipedia.org/wiki/Two-factor_authentication">two-factor</a> <a href="http://code.google.com/p/cryptsetup/">LUKS</a> met <a href="http://www.ubuntu.com/">Ubuntu</a> blijkt ook prima te werken met Ubuntu 10.10 &#8220;Maverick Meerkat&#8221;.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.keesmeijs.nl/archives/976/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Two-factor LUKS met Ubuntu</title>
		<link>http://blog.keesmeijs.nl/archives/919</link>
		<comments>http://blog.keesmeijs.nl/archives/919#comments</comments>
		<pubDate>Wed, 28 Jul 2010 15:31:01 +0000</pubDate>
		<dc:creator>kees</dc:creator>
				<category><![CDATA[Apparatuur]]></category>
		<category><![CDATA[Internet]]></category>
		<category><![CDATA[Programmatuur]]></category>
		<category><![CDATA[Techniek]]></category>
		<category><![CDATA[AES]]></category>
		<category><![CDATA[beveiliging]]></category>
		<category><![CDATA[codering]]></category>
		<category><![CDATA[GnuPG]]></category>
		<category><![CDATA[LUKS]]></category>
		<category><![CDATA[OpenPGP]]></category>
		<category><![CDATA[PGP]]></category>
		<category><![CDATA[PIN-code]]></category>
		<category><![CDATA[schijfpartitionering]]></category>
		<category><![CDATA[smartcard]]></category>
		<category><![CDATA[SSD]]></category>
		<category><![CDATA[token]]></category>
		<category><![CDATA[two-factor]]></category>
		<category><![CDATA[Ubuntu]]></category>
		<category><![CDATA[XTS]]></category>

		<guid isPermaLink="false">http://blog.keesmeijs.nl/?p=919</guid>
		<description><![CDATA[In Ubuntu 10.04 LTS &#8220;Lucid Lynx&#8221; wordt LUKS standaard prima ondersteund. Dit is een erg handige functionaliteit, zeker als je naar wat extra beveiliging op zoek bent. Maar wat als je nu naar een oplossing met two-factor op zoek bent? We gebruiken op de zaak al een hele tijd OpenPGP-kaarten om gegevens van met name [...]]]></description>
			<content:encoded><![CDATA[<p>In <a href="http://www.ubuntu.com/">Ubuntu</a> 10.04 LTS &#8220;Lucid Lynx&#8221; wordt <a href="http://code.google.com/p/cryptsetup/">LUKS</a> standaard prima ondersteund. Dit is een erg handige functionaliteit, zeker als je naar wat extra beveiliging op zoek bent. Maar wat als je nu naar een oplossing met <a href="http://en.wikipedia.org/wiki/Two-factor_authentication">two-factor</a> op zoek bent?</p>
<p>We gebruiken op <a href="http://www.kumina.nl/">de zaak</a> al een hele tijd <a href="http://www.g10code.de/p-card.html">OpenPGP-kaarten</a> om gegevens van met name onze klanten te beveiligen. Het leek me wel wat om de onlangs beschikbaar gekomen <a href="http://www.privacyfoundation.de/crypto_stick/crypto_stick_english">USB-versie van de OpenPGP-kaart</a> te gebruiken in combinatie met LUKS. Enerzijds erg practisch omdat je alleen een PIN-code nodig hebt om je systeem te starten en anderzijds érg veilig (zeker met een 2048- of 3072-bits sleutel).</p>
<p>Gemakshalve doe ik even de aanname dat je al een OpenPGP-kaart hebt (al dan niet een USB-versie) en weet hoe je met bijvoorbeeld <a href="http://www.gnupg.org/">GnuPG</a> om moet gaan. Mooi, maar hoe gaat de rest?</p>
<div id="attachment_916" class="wp-caption alignnone" style="width: 460px"><a href="http://blog.keesmeijs.nl/wp-content/uploads/2010/07/cryptobuntu_boot.png"><img class="size-full wp-image-916" title="cryptobuntu_boot" src="http://blog.keesmeijs.nl/wp-content/uploads/2010/07/cryptobuntu_boot.png" alt="" width="450" height="338" /></a><p class="wp-caption-text">Ubuntu 10.04 Live DVD</p></div>
<p>Start je systeem op van een Ubuntu Live CD of Live DVD en kies voor <em>Try Ubuntu without installing</em>. Open als het systeem is opgestart een nieuwe <a href="http://en.wikipedia.org/wiki/Terminal_emulator">Terminal</a> en maak nieuwe partities op je vaste schijf (of SSD&#8230;) aan.</p>
<pre>$ sudo cfdisk -z</pre>
<p>Zelf heb ik een partitie van 250 MiB gemaakt voor <a href="http://www.pathname.com/fhs/pub/fhs-2.3.html#BOOTSTATICFILESOFTHEBOOTLOADER">/boot</a> en de rest vrijgehouden om met LUKS te beveiligen:</p>
<pre>$ sudo fdisk -l

Disk /dev/sda: 251.0 GB, 250999144448 bytes
64 heads, 32 sectors/track, 239371 cylinders
Units = cylinders of 2048 * 512 = 1048576 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00092b99

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *           1         238      243696   83  Linux
/dev/sda2             239      239371   244872192   da  Non-FS data</pre>
<p>Installeer vervolgens de benodigde pakketten voor LUKS en <a href="http://sourceware.org/lvm2/">LVM</a>:</p>
<pre>$ sudo apt-get --force-yes --yes install cryptsetup lvm2
Reading package lists... Done
Building dependency tree
Reading state information... Done
cryptsetup is already the newest version.
The following extra packages will be installed:
  libdevmapper-event1.02.1 watershed
The following NEW packages will be installed:
  libdevmapper-event1.02.1 lvm2 watershed
0 upgraded, 3 newly installed, 0 to remove and 0 not upgraded.
Need to get 0B/463kB of archives.
After this operation, 1,266kB of additional disk space will be used.
Selecting previously deselected package libdevmapper-event1.02.1.
(Reading database ... 165628 files and directories currently installed.)
Unpacking libdevmapper-event1.02.1 (from .../libdevmapper-event1.02.1_1.02.39-1ubuntu4_amd64.deb) ...
Selecting previously deselected package watershed.
Unpacking watershed (from .../watershed_5_amd64.deb) ...
Selecting previously deselected package lvm2.
Unpacking lvm2 (from .../lvm2_2.02.54-1ubuntu4_amd64.deb) ...
Processing triggers for man-db ...
Setting up libdevmapper-event1.02.1 (2:1.02.39-1ubuntu4) ...

Setting up watershed (5) ...
update-initramfs is disabled since running on read-only media

Setting up lvm2 (2.02.54-1ubuntu4) ...
update-initramfs is disabled since running on read-only media

Processing triggers for libc-bin ...
ldconfig deferred processing now taking place</pre>
<p>Laad nu de benodigde modules in voor LUKS, AES en <a href="http://en.wikipedia.org/wiki/Disk_encryption_theory#XTS">XTS</a>:</p>
<pre>$ sudo modprobe dm-crypt aes xts</pre>
<p>Genereer een sleutel om het LUKS-volume straks mee te beveiligen:</p>
<pre>$ dd if=/dev/urandom | tr -d '\n' | dd bs=1 count=64 of=/dev/shm/luks-key.txt
64+0 records in
64+0 records out
64 bytes (64 B) copied, 0.000253039 s, 253 kB/s</pre>
<p>Maak een nieuw LUKS-volume:</p>
<pre>$ sudo cryptsetup -c aes-xts-plain -s 512 luksFormat /dev/sda2 /dev/shm/luks-key.txt

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

Are you sure? (Type uppercase yes): YES</pre>
<p>Start vervolgens het LUKS-volume:</p>
<pre>$ sudo cryptsetup luksOpen -d /dev/shm/luks-key.txt /dev/sda2 crypto
Key slot 0 unlocked.</pre>
<p>De flexibiliteit van LVM is wenselijk. Dit kan bijvoorbeeld zo:</p>
<pre>$ sudo pvcreate /dev/mapper/crypto
  Physical volume "/dev/mapper/crypto" successfully created

$ sudo vgcreate vg /dev/mapper/crypto
  Volume group "vg" successfully created

$ sudo lvcreate -L 4G -n vg/swap
  Logical volume "swap" created

$ sudo lvcreate -L 40G -n vg/root
  Logical volume "root" created

$ sudo lvs
  LV   VG   Attr   LSize  Origin Snap%  Move Log Copy%  Convert
  root vg   -wi-a- 40.00g
  swap vg   -wi-a-  4.00g</pre>
<p>De installatieprogrammatuur raakt enigszins in de war door bovengenoemde voorbeeld, dus is het noodzakelijk om alvast te formatteren:</p>
<pre>$ sudo mkswap -f /dev/vg/swap
Setting up swapspace version 1, size = 4194300 KiB
no label, UUID=ac1c5001-428b-49d3-9c1e-ce213a4b8b9e

$ sudo mkfs.ext3 /dev/vg/root
mke2fs 1.41.11 (14-Mar-2010)
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
2621440 inodes, 10485760 blocks
524288 blocks (5.00%) reserved for the super user
First data block=0
Maximum filesystem blocks=4294967296
320 block groups
32768 blocks per group, 32768 fragments per group
8192 inodes per group
Superblock backups stored on blocks:
        32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208,
        4096000, 7962624

Writing inode tables: done
Creating journal (32768 blocks): done
Writing superblocks and filesystem accounting information: done

This filesystem will be automatically checked every 23 mounts or
180 days, whichever comes first.  Use tune2fs -c or -i to override.</pre>
<p>Start nu het installatieprogramma op:</p>
<div id="attachment_931" class="wp-caption alignnone" style="width: 151px"><a href="http://blog.keesmeijs.nl/wp-content/uploads/2010/07/cryptobuntu_install1.png"><img class="size-full wp-image-931" title="cryptobuntu_install" src="http://blog.keesmeijs.nl/wp-content/uploads/2010/07/cryptobuntu_install1.png" alt="" width="141" height="86" /></a><p class="wp-caption-text">Pictogram installatie Ubuntu</p></div>
<p>Het installatieproces verloopt zoals je gewend bent:</p>
<div id="attachment_903" class="wp-caption alignnone" style="width: 460px"><a href="http://blog.keesmeijs.nl/wp-content/uploads/2010/07/cryptobuntu_step0.png"><img class="size-full wp-image-903" title="cryptobuntu_step0" src="http://blog.keesmeijs.nl/wp-content/uploads/2010/07/cryptobuntu_step0.png" alt="" width="450" height="383" /></a><p class="wp-caption-text">Installatie Ubuntu</p></div>
<p>Kies een taal, en vervolgens je tijdzone:</p>
<div id="attachment_904" class="wp-caption alignnone" style="width: 460px"><a href="http://blog.keesmeijs.nl/wp-content/uploads/2010/07/cryptobuntu_step1.png"><img class="size-full wp-image-904" title="cryptobuntu_step1" src="http://blog.keesmeijs.nl/wp-content/uploads/2010/07/cryptobuntu_step1.png" alt="" width="450" height="383" /></a><p class="wp-caption-text">Installatie Ubuntu</p></div>
<p>Kies de juiste instellingen voor je toetsenbord:</p>
<div id="attachment_905" class="wp-caption alignnone" style="width: 460px"><a href="http://blog.keesmeijs.nl/wp-content/uploads/2010/07/cryptobuntu_step2.png"><img class="size-full wp-image-905" title="cryptobuntu_step2" src="http://blog.keesmeijs.nl/wp-content/uploads/2010/07/cryptobuntu_step2.png" alt="" width="450" height="383" /></a><p class="wp-caption-text">Installatie Ubuntu</p></div>
<p>Kies vervolgens voor handmatig partitioneren:</p>
<div id="attachment_906" class="wp-caption alignnone" style="width: 460px"><a href="http://blog.keesmeijs.nl/wp-content/uploads/2010/07/cryptobuntu_step3.png"><img class="size-full wp-image-906" title="cryptobuntu_step3" src="http://blog.keesmeijs.nl/wp-content/uploads/2010/07/cryptobuntu_step3.png" alt="" width="450" height="383" /></a><p class="wp-caption-text">Installatie Ubuntu</p></div>
<p>Let vervolgens goed op dat je de juiste <em>logische volumes</em> en <em>/boot</em> gebruikt:</p>
<div id="attachment_907" class="wp-caption alignnone" style="width: 460px"><a href="http://blog.keesmeijs.nl/wp-content/uploads/2010/07/cryptobuntu_step4.png"><img class="size-full wp-image-907" title="cryptobuntu_step4" src="http://blog.keesmeijs.nl/wp-content/uploads/2010/07/cryptobuntu_step4.png" alt="" width="450" height="383" /></a><p class="wp-caption-text">Installatie Ubuntu</p></div>
<p>Geef je persoonlijke gegevens in:</p>
<div id="attachment_908" class="wp-caption alignnone" style="width: 460px"><a href="http://blog.keesmeijs.nl/wp-content/uploads/2010/07/cryptobuntu_step5.png"><img class="size-full wp-image-908" title="cryptobuntu_step5" src="http://blog.keesmeijs.nl/wp-content/uploads/2010/07/cryptobuntu_step5.png" alt="" width="450" height="392" /></a><p class="wp-caption-text">Installatie Ubuntu</p></div>
<p>Klik nog even op <em>Advanced&#8230;</em> om te controleren of alles goed gaat:</p>
<div id="attachment_910" class="wp-caption alignnone" style="width: 319px"><a href="http://blog.keesmeijs.nl/wp-content/uploads/2010/07/cryptobuntu_step7.png"><img class="size-full wp-image-910" title="cryptobuntu_step7" src="http://blog.keesmeijs.nl/wp-content/uploads/2010/07/cryptobuntu_step7.png" alt="" width="309" height="180" /></a><p class="wp-caption-text">Installatie Ubuntu</p></div>
<p><strong>LET OP!</strong> Als de installatie is voltooid, sluit het scherm dan <strong>niet</strong> af:</p>
<div id="attachment_911" class="wp-caption alignnone" style="width: 359px"><a href="http://blog.keesmeijs.nl/wp-content/uploads/2010/07/cryptobuntu_step8.png"><img class="size-full wp-image-911" title="cryptobuntu_step8" src="http://blog.keesmeijs.nl/wp-content/uploads/2010/07/cryptobuntu_step8.png" alt="" width="349" height="115" /></a><p class="wp-caption-text">Installatie Ubuntu</p></div>
<p>Open een nieuwe Terminal en voer het volgende uit:</p>
<pre>$ sudo mount -o bind /proc /target/proc
$ sudo mount -o bind /dev /target/dev
$ sudo mount -o bind /dev/pts /target/dev/pts
$ sudo mount -o bind /sys /target/sys</pre>
<p>Parkeer vervolgens je <em>pubring.gpg</em> en <em>secring.gpg</em> ergens en codeer <em>/dev/shm/luks-key.txt</em>. Het resultaat <em>/dev/shm/luks-key.txt.gpg</em> hebben zometeen nog nodig.</p>
<p>Haal <a href="http://files.keesmeijs.nl/decrypt_luks.sh">decrypt_luks.sh</a> en <a href="http://files.keesmeijs.nl/gpg_luks">gpg_luks</a> op en parkeer ook deze bestanden even. Zet vervolgens de bestanden op de juiste plek neer:</p>
<pre>$ sudo mkdir /target/etc/gpg_luks
$ sudo cp decrypt_luks.sh /target/usr/local/sbin
$ sudo cp gpg_luks /target/etc/initramfs-tools/hooks
$ sudo cp pubring.gpg /target/etc/gpg_luks
$ sudo cp secring.gpg /target/etc/gpg_luks
$ sudo cp /dev/shm/luks-key.txt.gpg /target/etc/gpg_luks</pre>
<p>Zet ook de permissies goed:</p>
<pre>$ sudo chmod 700 /target/etc/gpg_luks
$ sudo chmod 700 /target/usr/local/sbin/decrypt_luks.sh
$ sudo chmod 755 /target/etc/initramfs-tools/hooks/gpg_luks
$ sudo chmod 600 /target/etc/gpg_luks/pubring.gpg
$ sudo chmod 600 /target/etc/gpg_luks/secring.gpg
$ sudo chmod 600 /target/etc/gpg_luks/luks-key.txt.gpg</pre>
<p>En maak een <a href="http://linux.die.net/man/5/crypttab">crypttab</a> zoals bijvoorbeeld:</p>
<pre>$ cat /target/etc/crypttab
# &lt;target name&gt; &lt;source device&gt;         &lt;key file&gt;      &lt;options&gt;
crypto /dev/sda2 none luks,keyscript=/usr/local/sbin/decrypt_luks.sh</pre>
<p>Op het nieuwe systeem ontbreken helaas een paar benodigde pakketten. Installeer deze als volgt:</p>
<pre>$ sudo chroot /target su -</pre>
<pre># apt-get install --force-yes --yes cryptsetup lvm2
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following extra packages will be installed:
  libdevmapper-event1.02.1 watershed
The following NEW packages will be installed:
  cryptsetup libdevmapper-event1.02.1 lvm2 watershed
0 upgraded, 4 newly installed, 0 to remove and 242 not upgraded.
Need to get 606kB of archives.
After this operation, 1,831kB of additional disk space will be used.
Get:1 http://nl.archive.ubuntu.com/ubuntu/ lucid/main cryptsetup 2:1.1.0~rc2-1ubuntu13 [143kB]
Get:2 http://nl.archive.ubuntu.com/ubuntu/ lucid/main libdevmapper-event1.02.1 2:1.02.39-1ubuntu4 [28.5kB]
Get:3 http://nl.archive.ubuntu.com/ubuntu/ lucid/main watershed 5 [11.5kB]
Get:4 http://nl.archive.ubuntu.com/ubuntu/ lucid/main lvm2 2.02.54-1ubuntu4 [423kB]
Fetched 606kB in 1s (591kB/s)
Selecting previously deselected package cryptsetup.
(Reading database ... 124603 files and directories currently installed.)
Unpacking cryptsetup (from .../cryptsetup_2%3a1.1.0~rc2-1ubuntu13_amd64.deb) ...
Selecting previously deselected package libdevmapper-event1.02.1.
Unpacking libdevmapper-event1.02.1 (from .../libdevmapper-event1.02.1_2%3a1.02.39-1ubuntu4_amd64.deb) ...
Selecting previously deselected package watershed.
Unpacking watershed (from .../archives/watershed_5_amd64.deb) ...
Selecting previously deselected package lvm2.
Unpacking lvm2 (from .../lvm2_2.02.54-1ubuntu4_amd64.deb) ...
Processing triggers for ureadahead ...
Processing triggers for man-db ...
Setting up cryptsetup (2:1.1.0~rc2-1ubuntu13) ...
update-initramfs: deferring update (trigger activated)

Setting up libdevmapper-event1.02.1 (2:1.02.39-1ubuntu4) ...

Setting up watershed (5) ...
update-initramfs: deferring update (trigger activated)

Setting up lvm2 (2.02.54-1ubuntu4) ...
update-initramfs: deferring update (trigger activated)
Processing triggers for initramfs-tools ...
update-initramfs: Generating /boot/initrd.img-2.6.32-21-generic
Processing triggers for libc-bin ...
ldconfig deferred processing now taking place</pre>
<p>Om zeker te weten dat het systeem straks goed op kan starten:</p>
<pre># update-initramfs -c -k all
update-initramfs: Generating /boot/initrd.img-2.6.32-21-generic</pre>
<pre># update-grub2
Generating grub.cfg ...
Found linux image: /boot/vmlinuz-2.6.32-21-generic
Found initrd image: /boot/initrd.img-2.6.32-21-generic
Found memtest86+ image: /memtest86+.bin
done</pre>
<p>Je kunt de Terminal nu sluiten en tot slot alsnog op <em>Restart Now</em> klikken:</p>
<div id="attachment_911" class="wp-caption alignnone" style="width: 359px"><a href="http://blog.keesmeijs.nl/wp-content/uploads/2010/07/cryptobuntu_step8.png"><img class="size-full wp-image-911" title="cryptobuntu_step8" src="http://blog.keesmeijs.nl/wp-content/uploads/2010/07/cryptobuntu_step8.png" alt="" width="349" height="115" /></a><p class="wp-caption-text">Installatie Ubuntu</p></div>
<p>Bij het opstarten van je systeem zal nu om de PIN-code van je OpenPGP-kaart worden gevraagd en heb je natuurlijk ook je OpenPGP-kaart zelf nodig. Echte two-factor beveiliging!</p>
<p>De oplettende lezer zal zich misschien afvragen of het wel veilig is om je <em>secring.gpg</em> in je <em>/boot</em> te verstoppen. Dit is natuurlijk geen probleem, aangezien hier alleen verwijzingen naar de OpenPGP-kaart in te vinden zijn.</p>
<p>Ter referentie: <a href="http://lfde.org/wiki/index.php/Ubuntu_Lucid_Lynx_10.04_Full_Disk_Encryption_with_USB_Key_Authentication">http://lfde.org/wiki/index.php/Ubuntu_Lucid_Lynx_10.04_Full_Disk_Encryption_with_USB_Key_Authentication</a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.keesmeijs.nl/archives/919/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

