Festplattenverschluesselung unter Linux LUKS und DM

Transcription

Festplattenverschluesselung unter Linux LUKS und DM
Prinzipielles
Modes of Operation
DM-Crypt
LUKS
PBKDF2
Algorithmen
Praxis
Quellen&Links
Festplattenverschluesselung unter Linux
LUKS und DM-Crypt
Paul Asmuth
Chaos Computer Club Cologne e.V.
http://koeln.ccc.de
Köln
29.11.2007
Open Chaos
Paul Asmuth <[email protected]>
Chaos Computer Club Cologne
Prinzipielles
Modes of Operation
DM-Crypt
LUKS
PBKDF2
Algorithmen
Praxis
Quellen&Links
Gliederung
1
Prinzipielles
2
Modes of Operation
3
DM-Crypt
4
LUKS
5
PBKDF2
6
Algorithmen
7
Praxis
So geht’s
On The Fly-Verschluesselung
8
Quellen&Links
Open Chaos
Paul Asmuth <[email protected]>
Chaos Computer Club Cologne
Prinzipielles
Modes of Operation
DM-Crypt
LUKS
PBKDF2
Algorithmen
Praxis
Quellen&Links
Gliederung
1
Prinzipielles
2
Modes of Operation
3
DM-Crypt
4
LUKS
5
PBKDF2
6
Algorithmen
7
Praxis
So geht’s
On The Fly-Verschluesselung
8
Quellen&Links
Open Chaos
Paul Asmuth <[email protected]>
Chaos Computer Club Cologne
Prinzipielles
Modes of Operation
DM-Crypt
LUKS
PBKDF2
Algorithmen
Praxis
Quellen&Links
Gliederung
1
Prinzipielles
2
Modes of Operation
3
DM-Crypt
4
LUKS
5
PBKDF2
6
Algorithmen
7
Praxis
So geht’s
On The Fly-Verschluesselung
8
Quellen&Links
Open Chaos
Paul Asmuth <[email protected]>
Chaos Computer Club Cologne
Prinzipielles
Modes of Operation
DM-Crypt
LUKS
PBKDF2
Algorithmen
Praxis
Quellen&Links
Gliederung
1
Prinzipielles
2
Modes of Operation
3
DM-Crypt
4
LUKS
5
PBKDF2
6
Algorithmen
7
Praxis
So geht’s
On The Fly-Verschluesselung
8
Quellen&Links
Open Chaos
Paul Asmuth <[email protected]>
Chaos Computer Club Cologne
Prinzipielles
Modes of Operation
DM-Crypt
LUKS
PBKDF2
Algorithmen
Praxis
Quellen&Links
Gliederung
1
Prinzipielles
2
Modes of Operation
3
DM-Crypt
4
LUKS
5
PBKDF2
6
Algorithmen
7
Praxis
So geht’s
On The Fly-Verschluesselung
8
Quellen&Links
Open Chaos
Paul Asmuth <[email protected]>
Chaos Computer Club Cologne
Prinzipielles
Modes of Operation
DM-Crypt
LUKS
PBKDF2
Algorithmen
Praxis
Quellen&Links
Gliederung
1
Prinzipielles
2
Modes of Operation
3
DM-Crypt
4
LUKS
5
PBKDF2
6
Algorithmen
7
Praxis
So geht’s
On The Fly-Verschluesselung
8
Quellen&Links
Open Chaos
Paul Asmuth <[email protected]>
Chaos Computer Club Cologne
Prinzipielles
Modes of Operation
DM-Crypt
LUKS
PBKDF2
Algorithmen
Praxis
Quellen&Links
Gliederung
1
Prinzipielles
2
Modes of Operation
3
DM-Crypt
4
LUKS
5
PBKDF2
6
Algorithmen
7
Praxis
So geht’s
On The Fly-Verschluesselung
8
Quellen&Links
Open Chaos
Paul Asmuth <[email protected]>
Chaos Computer Club Cologne
Prinzipielles
Modes of Operation
DM-Crypt
LUKS
PBKDF2
Algorithmen
Praxis
Quellen&Links
Gliederung
1
Prinzipielles
2
Modes of Operation
3
DM-Crypt
4
LUKS
5
PBKDF2
6
Algorithmen
7
Praxis
So geht’s
On The Fly-Verschluesselung
8
Quellen&Links
Open Chaos
Paul Asmuth <[email protected]>
Chaos Computer Club Cologne
Prinzipielles
Modes of Operation
DM-Crypt
LUKS
PBKDF2
Algorithmen
Praxis
Quellen&Links
Begriffsklaerung
Begriffsklaerung
Hash Eine Einweg-Funktion die aus einer beliebigen Menge
Daten chaotisch einen ”Fingerabdruck erstellen”
Algorithmus Eine Zwei-Wege-Funktion die Daten mit einem
Schluessel so verrechnet, dass die urspruengliche
Information verloren geht, allerdings - nur - mit dem
Schluessel wiederhergestellt werden kann.
Open Chaos
Paul Asmuth <[email protected]>
Chaos Computer Club Cologne
Prinzipielles
Modes of Operation
DM-Crypt
LUKS
PBKDF2
Algorithmen
Praxis
Quellen&Links
Begriffsklaerung
Beispiel: Hash
wenig Daten
echo foobar | md5sum
14758f1afd44c09b7992073ccf00b43d
viele Daten
dd if=/dev/urandom bs=1M count=10 | md5sum
9fab7b86d88170c48561a8fdc380e897
Open Chaos
Paul Asmuth <[email protected]>
Chaos Computer Club Cologne
Prinzipielles
Modes of Operation
DM-Crypt
LUKS
PBKDF2
Algorithmen
Praxis
Quellen&Links
Begriffsklaerung
Beispiel: Algorithmus
GPG
>>echo foobar >openchaos
>>gpg –symmetric -a openchaos
Enter passphrase:
>>cat openchaos.asc
Open Chaos
Paul Asmuth <[email protected]>
Chaos Computer Club Cologne
Prinzipielles
Modes of Operation
DM-Crypt
LUKS
PBKDF2
Algorithmen
Praxis
Quellen&Links
Begriffsklaerung
Beispiel: Algorithmus
openchaos.asc
—–BEGIN PGP MESSAGE—–
Version: GnuPG v1.4.6 (GNU/Linux)
jA0EAwMCeGrW8uYkJC9gySbfiuOzFmYUZ8EokosmhmJIzjbEna+
FSdVaXOUbfntkju/aNs6bgA===2L+m
—–END PGP MESSAGE—–
Open Chaos
Paul Asmuth <[email protected]>
Chaos Computer Club Cologne
Prinzipielles
Modes of Operation
DM-Crypt
LUKS
PBKDF2
Algorithmen
Praxis
Quellen&Links
Uebersicht
Was gibt es?
• LUKS
• DM-Crypt
• LoopAES
• Cryptoloop
• Truecrypt
Open Chaos
Paul Asmuth <[email protected]>
Chaos Computer Club Cologne
Prinzipielles
Modes of Operation
DM-Crypt
LUKS
PBKDF2
Algorithmen
Praxis
Quellen&Links
Blockchiffrierung
Was ist ein Blockchiffre?
Streamchiffre Eine Verschlueselungsmethode bei der der Klartext
in sehr kleinen Teilen – Bit oder Byteweise –
verschluesselt wird.
Blockchiffre Eine Verschlueselungsmethode bei der der Klartext
Blockweise verschluesselt wird. Hierbei ist u.U. sog.
”Padding” notwendig.
Open Chaos
Paul Asmuth <[email protected]>
Chaos Computer Club Cologne
Prinzipielles
Modes of Operation
DM-Crypt
LUKS
PBKDF2
Algorithmen
Praxis
Quellen&Links
Blockgroesse
Wie gross ist so ein Block?
Festplatten-Block
2048 Byte, 4096 Byte
Cipher-Block
256 Bit, 512 Bit, 768 Bit
Open Chaos
Paul Asmuth <[email protected]>
Chaos Computer Club Cologne
Prinzipielles
Modes of Operation
DM-Crypt
LUKS
PBKDF2
Algorithmen
Praxis
Quellen&Links
Was ist das?
Modes of Operation
Der ”Mode of Operation” bestimmt wie aus einem Klartextblock
ein verschluesselter Block wird und wie - wenn vorhanden - der
Initalisierungsverktor ermittelt wird.
Open Chaos
Paul Asmuth <[email protected]>
Chaos Computer Club Cologne
Prinzipielles
Modes of Operation
DM-Crypt
LUKS
PBKDF2
Algorithmen
Praxis
Quellen&Links
Salt und Initalisierungsvektor
Salt
Problem
Werden Daten stets mit dem selben Schluessel verschluesselt
entstehen aus gleichen Plaintextbloecken auch gleiche
verschluesselte Bloecke. So lassen sich – durch Vergleiche –
Rueckschluesse auf den Inhalt ziehen.
Loesung
Vor der Verschluesselung wird ein bekannter, aber stets anderer
sog. ”Salt” mit ”eingerechnet”. Dadurch entstehen aus gleichen
Plaintextbloecken verschiedene verschluesselte Bloecke.
Open Chaos
Paul Asmuth <[email protected]>
Chaos Computer Club Cologne
Prinzipielles
Modes of Operation
DM-Crypt
LUKS
PBKDF2
Algorithmen
Praxis
Quellen&Links
Salt und Initalisierungsvektor
Initialisierungsvektor
Problem
Da es nicht praktikabel ist sich zu jedem Block einen IV zu
”merken”. Wird einfach ein Teil des vorherigen ”Crypto-Stroms”
als ”Salt” genommen. Doch was verwendet man beim ersten
Block?
Loesung
Der erste Block wird mit einem sog. Initialisierungsvektor
verknuepft.
Open Chaos
Paul Asmuth <[email protected]>
Chaos Computer Club Cologne
Prinzipielles
Modes of Operation
DM-Crypt
LUKS
PBKDF2
Algorithmen
Praxis
Quellen&Links
Salt und Initalisierungsvektor
Welche sind gängig?
• ECB
• CBC
• LRW
• XTS
Open Chaos
Paul Asmuth <[email protected]>
Chaos Computer Club Cologne
Prinzipielles
Modes of Operation
DM-Crypt
LUKS
PBKDF2
Algorithmen
Praxis
Quellen&Links
ECB
ECB
• Total veraltet
• Kein IV - kein ”Salt”
Open Chaos
Paul Asmuth <[email protected]>
Chaos Computer Club Cologne
Prinzipielles
Modes of Operation
DM-Crypt
LUKS
PBKDF2
Algorithmen
Praxis
Quellen&Links
ECB
ECB
Abbildung: Ein Bild von Tux mit ECB ”verschluesselt”
http://en.wikipedia.org/wiki/Image:Tux ecb.jpg
Open Chaos
Paul Asmuth <[email protected]>
Chaos Computer Club Cologne
Prinzipielles
Modes of Operation
DM-Crypt
LUKS
PBKDF2
Algorithmen
Praxis
Quellen&Links
CBC
CBC
• Cipher Block Chaining Mode
• Verknuepfung (XOR) des letzten Verschlueselten Blocks mit
dem aktuellen Block
• Hat einen Initialisierungsvector
• In der Regel ist der IV Leider die ”gepaddete” Sektornummer,
ein Timestamp oder einfach eine aufsteigende Zahl
• CBC bietet rel. grosse Datensicherheit
Open Chaos
Paul Asmuth <[email protected]>
Chaos Computer Club Cologne
Prinzipielles
Modes of Operation
DM-Crypt
LUKS
PBKDF2
Algorithmen
Praxis
Quellen&Links
ESSIV
ESSIV
• Im Kernel seit 2.6.10
• Encrypted Salt-Sector Initialization Vector
• ESSIV ist das Salz in der CBC-Suppe
• Der IV wird aus einem Hash des Keys und der Sektornummer
gebildet.
Open Chaos
Paul Asmuth <[email protected]>
Chaos Computer Club Cologne
Prinzipielles
Modes of Operation
DM-Crypt
LUKS
PBKDF2
Algorithmen
Praxis
Quellen&Links
LRW
LRW
• Liskow Rivest Wagner
• Im Kernel seit 2.6.20
• Sicher und Performant
• Berechnet den ”Salt” aus Sektornummer und Hash
• im Gegensatz zu CBC nicht Rekursiv und Datensicherer
Open Chaos
Paul Asmuth <[email protected]>
Chaos Computer Club Cologne
Prinzipielles
Modes of Operation
DM-Crypt
LUKS
PBKDF2
Algorithmen
Praxis
Quellen&Links
XTS
XTS
• Sicherheitsproblem wenn LRW seinen eigenen Key
verschluesselt
• XTS ist eine Art Bugfix
• Noch Experimentell
• Noch nicht im Kernel
Open Chaos
Paul Asmuth <[email protected]>
Chaos Computer Club Cologne
Prinzipielles
Modes of Operation
DM-Crypt
LUKS
PBKDF2
Algorithmen
Praxis
Quellen&Links
Was ist DM-Crypt?
Was ist DM-Crypt?
• DeviceMappter-Target
• Zwischenschicht
Open Chaos
Paul Asmuth <[email protected]>
Chaos Computer Club Cologne
Prinzipielles
Modes of Operation
DM-Crypt
LUKS
PBKDF2
Algorithmen
Praxis
Quellen&Links
Was ist DM-Crypt?
Was ist DM-Crypt?
Virtuelles Device
DM-Crypt
Festplatte
Open Chaos
Paul Asmuth <[email protected]>
/dev/mapper/xy
Crypto-Algorithmus
/dev/hdxN
Chaos Computer Club Cologne
Prinzipielles
Modes of Operation
DM-Crypt
LUKS
PBKDF2
Algorithmen
Praxis
Quellen&Links
Was ist LUKS?
Was ist LUKS?
• Linux Unified Key Setup
• Stadart zu Dateisystemverschluesselung
• Virtuelle Schicht zwischen Dateisystem und Partition
• 8 Key-Slots → Multi-User-Betrieb
• Unabhaengig von Dateisystem, Algorithmus und Mode of
Operation
Open Chaos
Paul Asmuth <[email protected]>
Chaos Computer Club Cologne
Prinzipielles
Modes of Operation
DM-Crypt
LUKS
PBKDF2
Algorithmen
Praxis
Quellen&Links
Was ist LUKS?
Was ist LUKS?
Dateisystem
LUKS
Partition
Open Chaos
Paul Asmuth <[email protected]>
Chaos Computer Club Cologne
Prinzipielles
Modes of Operation
DM-Crypt
LUKS
PBKDF2
Algorithmen
Praxis
Quellen&Links
Der LUKS-Header
Die 8-Key-Slots
phdr
Open Chaos
Paul Asmuth <[email protected]>
KS 1
KS 2
...
KS8
Data
Chaos Computer Club Cologne
Prinzipielles
Modes of Operation
DM-Crypt
LUKS
PBKDF2
Algorithmen
Praxis
Quellen&Links
Der LUKS-Header
Der Header im Einzelnen
• Version
• Informationen ueber Key (Checksumme, Laenge)
• UUID
• Parameter fuer PBKDF2 und ”Anti-Forenische Speicherung”
Open Chaos
Paul Asmuth <[email protected]>
Chaos Computer Club Cologne
Prinzipielles
Modes of Operation
DM-Crypt
LUKS
PBKDF2
Algorithmen
Praxis
Quellen&Links
Strechting und Salting
Was zur Hoelle?
• Password-Based Key Derivation Function
• Schuetzt das Passwort vor Brute-Force und
Wordbook-Angriffen
• PKCS#5 (Public Key Cryptography Standard 5)
Open Chaos
Paul Asmuth <[email protected]>
Chaos Computer Club Cologne
Prinzipielles
Modes of Operation
DM-Crypt
LUKS
PBKDF2
Algorithmen
Praxis
Quellen&Links
Strechting und Salting
Salting
• Anhaengen von Zufaelligen Zeichen an das Passwort
Durch die beliebige Variierbarkeit muesste ein
Universalwoerterbuch mehr Eintraege als Atome im
Universum besitzen, um auf alle moeglichen
PBKDF2-Kombinationen zu passen.
http://de.gentoo-wiki.com/DM-Crypt
Open Chaos
Paul Asmuth <[email protected]>
Chaos Computer Club Cologne
Prinzipielles
Modes of Operation
DM-Crypt
LUKS
PBKDF2
Algorithmen
Praxis
Quellen&Links
Strechting und Salting
Stretching
• Erhoeht die Rechenzeit
• beliebig viele Iterationen primitiver Operationen
• cryptsetup: -i
• Zeit in mS
Open Chaos
Paul Asmuth <[email protected]>
Chaos Computer Club Cologne
Prinzipielles
Modes of Operation
DM-Crypt
LUKS
PBKDF2
Algorithmen
Praxis
Quellen&Links
Strechting und Salting
eine Kleine Rechnung
• Gross-, Kleinbuchstaben; Zahlen, gaengige Sonderzeichen: 77
Zeichen
• Passwortlaenge: 23 Zeichen
• 1 Passwort/Sekunde
Wie lange dauert es
7723
3600∗24∗365
= 7, 735 = 1031,027 Jahre
Open Chaos
Paul Asmuth <[email protected]>
Chaos Computer Club Cologne
Prinzipielles
Modes of Operation
DM-Crypt
LUKS
PBKDF2
Algorithmen
Praxis
Quellen&Links
Strechting und Salting
Jahre
1.000.000.000.000.000.000.000.000.000.000
Alter der Erde
30.000.000
Open Chaos
Paul Asmuth <[email protected]>
Chaos Computer Club Cologne
Prinzipielles
Modes of Operation
DM-Crypt
LUKS
PBKDF2
Algorithmen
Praxis
Quellen&Links
Strechting und Salting
Anti-Forensische Speicherung
• Problem: Sektorenweise ”Backups” in der Firmware verankert
• Loesung: Aufblaehen sensitiver Daten (AF-Splitter)
Open Chaos
Paul Asmuth <[email protected]>
Chaos Computer Club Cologne
Prinzipielles
Modes of Operation
DM-Crypt
LUKS
PBKDF2
Algorithmen
Praxis
Quellen&Links
Bestandsaufnahme
• AES
• Blowfish
• Twofish
• Serpent
• SHA256
Open Chaos
Paul Asmuth <[email protected]>
Chaos Computer Club Cologne
Prinzipielles
Modes of Operation
DM-Crypt
LUKS
PBKDF2
Algorithmen
Praxis
Quellen&Links
Kurzer Abriss
Eine Uebersicht
AES ist der ”Advanced Encryption Standard”. Bei einer
Ausschreibung gewann der Rijndael-Algorithmus.
Block- und Keylaengen 128, 192 oder 256 Bit. AES
ist frei. AES ist sicher - er ist von der US-Regierung
fuer Geheimdokumente zugelassen. AES besitzt
mathematische Schwachstellen.
Blowfish und Twofish Blowfish wurde von Bruce Schneier
entwickelt. Twofish ist der Nachfolger von Blowfish
und hatte sich auch fuer den AES beworben. Twofish
ist AES in Sicherheitsfragen ueberlegen. Twofish gilt
auch als performanter.
Open Chaos
Paul Asmuth <[email protected]>
Chaos Computer Club Cologne
Prinzipielles
Modes of Operation
DM-Crypt
LUKS
PBKDF2
Algorithmen
Praxis
Quellen&Links
Kurzer Abriss
Eine Uebersicht
Serpent wat auch ein Kandidat fuer den AES. Serpent ist fuer
die Festplattenveschluesselung jedoch definitv nicht
zu empfehlen, da es langsamer ist.
SHA256 ist einer der Secure Hash Algorithms und gilt als
Kollisionssicher. SHA-1 wurde jedoch 2005 gebrochen
– theoretisch
Open Chaos
Paul Asmuth <[email protected]>
Chaos Computer Club Cologne
Prinzipielles
Modes of Operation
DM-Crypt
LUKS
PBKDF2
Algorithmen
Praxis
Quellen&Links
So geht’s
no voodo-magic
• cryptsetup -c aes-lrw-benbi -y -s 256 luksFormat /dev/hdX
• cryptsetup luksOpen /dev/hdX crypto
• mkfs.XYZ /dev/mapper/crypto
• mount -t XYZ /dev/mapper/crypto /mnt/foobar
• cryptsetup luksClose crypto
Open Chaos
Paul Asmuth <[email protected]>
Chaos Computer Club Cologne
Prinzipielles
Modes of Operation
DM-Crypt
LUKS
PBKDF2
Algorithmen
Praxis
Quellen&Links
On The Fly-Verschluesselung
Ist eine Verschluesselung on-the-fly moeglich?
• Cryptsetup unterstuetzt das nicht
• u.U muss LUKS-Header vor die Daten
Open Chaos
Paul Asmuth <[email protected]>
Chaos Computer Club Cologne
Prinzipielles
Modes of Operation
DM-Crypt
LUKS
PBKDF2
Algorithmen
Praxis
Quellen&Links
On The Fly-Verschluesselung
on-the-fly ohne LUKS
1
cryptsetup -c aes-lrw-benbi -y -s 256 create crypto /dev/hdX
2
dd if=/dev/hdX of=/dev/mapper/crypto bs=512 skip=0
seek=0
Open Chaos
Paul Asmuth <[email protected]>
Chaos Computer Club Cologne
Prinzipielles
Modes of Operation
DM-Crypt
LUKS
PBKDF2
Algorithmen
Praxis
Quellen&Links
On The Fly-Verschluesselung
on-the-fly mit LUKS
• extrem experimentell
• Partition verkleinern
• Daten nach hinten schieben
• Luks-Header davor setzen
• LuksConvert1
1
https://help.ubuntu.com/community/EncryptedFilesystemHowto7
Open Chaos
Paul Asmuth <[email protected]>
Chaos Computer Club Cologne
Prinzipielles
Modes of Operation
DM-Crypt
LUKS
PBKDF2
Algorithmen
Praxis
Quellen&Links
Quellen&Links
Quellen&Links
1
http://www.de.wikipedia.org
2
http://luks.endorphin.org/LUKS-on-disk-format.pdf
3
http://de.gentoo-wiki.com/
4
http://clemens.endorphin.org/nmihde/nmihde-A4-OS.pdf
Slides online
http://www.paulasmuth.de/con/kram/slides/hdenc.pdf
Open Chaos
Paul Asmuth <[email protected]>
Chaos Computer Club Cologne