Verschlsselte Dateisysteme unter Linux Michael Gebetsroither - - PowerPoint PPT Presentation

verschl sselte dateisysteme unter linux michael
SMART_READER_LITE
LIVE PREVIEW

Verschlsselte Dateisysteme unter Linux Michael Gebetsroither - - PowerPoint PPT Presentation

Verschlsselte Dateisysteme unter Linux Michael Gebetsroither http://einsteinmg.dyndns.org gebi@sbox.tugraz.at Einteilung Theorie Kurze Einfhrung Verschiedene Mglichkeiten der Verschlsselung Unsicherheitsfaktoren und wie


slide-1
SLIDE 1

Verschlüsselte Dateisysteme unter Linux

slide-2
SLIDE 2

Michael Gebetsroither http://einsteinmg.dyndns.org gebi@sbox.tugraz.at

slide-3
SLIDE 3

Einteilung

  • Theorie
  • Kurze Einführung
  • Verschiedene Möglichkeiten der Verschlüsselung
  • Unsicherheitsfaktoren und wie man sie vermeiden kann
  • Workshop
  • Verschlüsselter swap in einer Minute
  • Arbeitsumgebung
  • cryptsetup
  • Linux Unified Key Setup (LUKS)
slide-4
SLIDE 4

Kurze Einführung

Warum eigentlich verschlüsseln (Wünsche) ?

  • Niemand soll meine Daten lesen können!
  • Wenn jemand in mein System einbricht sollen meine Daten

sicher sein.

  • Es soll nicht möglich sein nachzuweisen, dass ich

bestimmte Daten auf meiner Festplatte gespeichert habe.

  • Niemand soll gezielt verschlüsselte Daten manipulieren können.
  • Niemand soll nachweisen können, dass ich in letzter Zeit

bestimmte Daten geschrieben habe.

slide-5
SLIDE 5

Kurze Einführung

Warum eigentlich verschlüsseln (Praxis) ?

  • Niemand soll meine Daten lesen können!
  • Wenn jemand in mein System einbricht sollen meine Daten

sicher sein.

  • Es soll nicht möglich sein nachzuweisen, dass ich

bestimmte Daten auf meiner Festplatte gespeichert habe.

  • Niemand soll gezielt verschlüsselte Daten manipulieren können.
  • Niemand soll nachweisen können, dass ich in letzter Zeit

bestimmte Daten geschrieben habe. ( )

slide-6
SLIDE 6

Verschiedene Möglichkeiten der Verschlüsselung

  • Kernelseitig
  • Cryptoloop
  • Loop-aes
  • dm-crypt (Devicemapper crypto target) - cryptsetup
  • LUKS (crypsetyp-luks)
  • Encrypted Filesystem (EncFS)
  • PhoneBook (Filesystem in Userspace)
  • Filesystem in Userspace (FUSE)
slide-7
SLIDE 7

Unsicherheitsfaktoren

  • Wichtige Informationen landen im Swap:
  • Swap verschlüsseln
  • Daten können vom Angreifer auf der Festplatte

(gezielt) verändert werden:

  • public-IV CBC mode vermeiden
  • Brute-force Angriffe erschweren:
  • Sichere Passphrases
  • Sicherer Passwortspeicher (LUKS)
slide-8
SLIDE 8

ideales Setup unter Linux

  • Kernel >2.6.10
  • um ESSIV CBC zu verwenden
  • LUKS (cryptsetup-luks)
  • Um brute-force Angriffe zu erschweren
  • Möglichkeit mehrere Passphrasen
slide-9
SLIDE 9

Verschlüsselter swap in einer Minute

  • Voraussetzungen
  • Debian
  • Kernel mit device-mapper und dm-crypt
  • cryptsetup
  • Konfigurationsdateien
  • /etc/default/cryptdisks
  • /etc/crypttab
  • /etc/fstab
slide-10
SLIDE 10

Verschlüsselter swap in einer Minute

/etc/default/cryptdisks: # Run cryptdisks at startup ? CRYPTDISKS_ENABLE=Yes # swapoff -a

slide-11
SLIDE 11

Verschlüsselter swap in einer Minute

/etc/fstab: /dev/mapper/cswap none swap sw,pri=1 0 0 # /etc/init.d/cryptdisks reload # swapon -a /etc/crypttab: # <target device> <source device> <key file> <options> cswap /dev/hda1 /dev/random swap

slide-12
SLIDE 12

Arbeitsumgebung

Per ssh auf den Arbeitsrechner einloggen:

user = grml password= test Eigenes Verzeichniss erzeugen: # mkdir playground/<irgendwas> # cd playground/<irgendwas>

slide-13
SLIDE 13

Cryptsetup

  • Voraussetzungen
  • Kernel > 2.6.4 (besser >2.6.10)
  • Kerneloptionen:
  • device-mapper
  • dm-crypt
  • einige cipher (AES empfehlenswert)
  • cryptsetup
  • Freie Partition oder in Datei per losetup
slide-14
SLIDE 14

Cryptsetup - Vorbereitung

  • Erzeugen der Containerdatei/Mountpoint

# dd if=/dev/zero of=./image bs=1M count=100 # mkdir mp

  • Erzeugen des loop-devices

# sudo losetup -v -v $(sudo losetup.orig -f) `pwd`/image

Merken des benutzten loop-devices ;-)

  • Wiederfinden des loop-devices falls vergessen

# sudo losetup -a |grep `pwd`

slide-15
SLIDE 15

Cryptsetup – real task

  • Erzeugen des Mappings

# sudo cryptsetup -c aes-cbc-essiv:sha256 -s 256 create \ <NAME> <LOOP> # sudo cryptsetup status <NAME>

  • Anzeigen der Configuration

NAME == Name des privaten Ordners

Gratulation, nun ist die Partition verschlüsselt!

slide-16
SLIDE 16

Cryptsetup

  • Formatieren der verschlüsselten Partition:

# sudo mkfs.xfs /dev/mapper/<NAME> mp

  • Mounten der verschlüsselten Partition:

# sudo mount /dev/mapper/<NAME> mp

  • Testen, Testen, Testen:

# sudo cp, mv, touch, dd, ...

slide-17
SLIDE 17

Cryptsetup

  • ACHTUNG!!

cryptsetup erstellt das Mapping auch, wenn die Einstellungen falsch sind:

  • falsche key-length
  • falscher cipher
  • falsche Passphrase

=> LUKS (Linux Unified Key Setup)

Wenn mit einem falschen Mapping auf die Partition geschrieben wird sind die Daten verloren!!

slide-18
SLIDE 18

LUKS

  • Referenzimplementation cryptsetup-luks

Home: http://luks.endorphin.org/ Debianpaket: http://einsteinmg.dyndns.org/debian

  • Vorteile
  • “Sicher” gegenüber brute-force Angriffen
  • Speichert Einstellungen
  • Kein Vernichten der Daten bei falscher Passphrase
  • Mehrere Passphrases pro Device möglich
  • Kein Neuverschlüsseln bei Passphrasewechsel
slide-19
SLIDE 19

LUKS

  • Nachteile
  • zurzeit noch mangelnde Unterstützung der

Distributionen

  • ... ?
  • Plattformen
  • Debian
  • Gentoo
  • Redhat
slide-20
SLIDE 20

LUKS

  • Vorbereiten für LUKS

# sudo umount mp # sudo cryptsetup remove <NAME>

  • Erstellen des LUKS Headers

# sudo cryptsetup -c aes-cbc-essiv:sha256 -s 256 \ luksFormat <LOOP>

  • Erstellen des Mappings

# sudo cryptsetup luksOpen <LOOP> <NAME>

slide-21
SLIDE 21

LUKS

  • Formatieren der verschlüsselten Partition:

# sudo mkfs.xfs /dev/mapper/<NAME> mp

  • Mounten der verschlüsselten Partition:

# sudo mount /dev/mapper/<NAME> mp

  • Testen, Testen, Testen:

# sudo cp, mv, touch, dd, ...

slide-22
SLIDE 22

LUKS

  • Anzeigen des LUKS Headers

# sudo cryptsetup luksDump <LOOP>

  • Hinzufügen einer zusätzlichen Passphrase

# sudo cryptsetup luksAddKey <LOOP>

  • Löschen der alten Passphrase

# sudo cryptsetup luksDelKey <LOOP> 0 => Erfolg, wir haben nun die Passphrase der Partition ohne erneute Verschlüsselung geändert!

slide-23
SLIDE 23

FRAGEN

?

slide-24
SLIDE 24

Links

  • Cryptsetup - http://www.saout.de/misc/dm-crypt/
  • LUKS - http://luks.endorphin.org/
  • FUSE - http://fuse.sourceforge.net/
  • PhoneBook - http://www.freenet.org.nz/phonebook/
  • EncFS - http://arg0.net/users/vgough/encfs.html
  • loop-aes - http://loop-aes.sourceforge.net/
  • Sicherheit - http://clemens.endorphin.org/LinuxHDEncSettings
  • Cryptsetup-luks - http://einsteinmg.dyndns.org/debian