Keiner soll es erraten

Symmetrische Verschlüsselung, Datei-/Festplattenverschlüsselung

https://privatsphaere-leipzig.org/
@privacy_leipzig
@CryptoPartyLE

Dozenten: Rainer R. | Max B. | Tobias R.

Let's have a party!

  1. Grenzen der Datei- und Festplattenverschlüsselung(Tobias)
  2. Keiner soll es erraten: Symmetrische Verschlüsselung (Rainer)
  3. TopSecret I: Dateiverschlüsslung (Xan)
  4. Sicherer Löschen - Eraser-Software (Tobias)
  5. TopSecret II: Datei- und Festplattenverschlüsslung (Rainer)

Let's start a party!

Das Bündnis Privatsphäre Leipzig ist eine überparteiliche Bürgerinitiative mit dem Ziel, Überwachung, Rechtsstaatlichkeit und Demokratie in einem breiten öffentlichen Diskurs zu thematisieren.

Wir treffen uns jeden ersten, dritten und fünften Dienstag des Monats immer 19:00 Uhr im Sublab. (Öffentliches Plenum)

CryptoParty is a decentralized, global initiative to introduce the most basic cryptography programs and the fundamental concepts of their operation to the general public.

Weitere Projekte (in Planung):

  1. CryptoCon15 (in Kooperation mit dem Sublab)
  2. Podiumsdiskussionen
  3. Lesungen
  4. Aktionen und Aufklärungsarbeit

Grenzen von Verschlüsslung und IT-Sicherheitssystemen

Verschlüsselung funktioniert. Richtig implementierte, starke Crypto-Systeme sind eines der wenigen Dinge, auf die man sich verlassen kann.

Grenzen

  1. Sicherheitslücke (heartbleed, shell shock)
  2. Exploits (heartbleed, shell shock)
  3. Schadsoftware: Viren/Würmer/Trojaner
  4. Spionagesoftware: Keylogger, Rootkits, Bundestrojaner
  5. Computerforensik
  6. Sicherheit eines Betriebssystems (Updates, Zufallsgeneratoren, Backdoors)
  7. Hardware (Fehler, Backdoors, cold boot attack, rawhammer)

Grenzen

Grundregeln

  1. Update, Updates, Updates
  2. Backups, Backups, Backups
  3. Virenscanner (+/-)
  4. Sensible Daten auf System ohne Netzzugang aufbewahren

Bedrohungsmodelle

Threat models

Equation Group

Schadsoftware-Familie

  • »highly sophisticated threat actor« (aktiv seit 2004, ggf. schon 1996)
  • technische Angriffsziele
    • Festplatten-Steuerungssoftware (Firmware)
    • Gruppe von Trojanern; teilweise tiefe Einnistung in Festplatten-Firmware
    • Betroffen Festplattenhersteller: Western Digital, Maxtor, Samsung, Toshiba und Seagate
  • Hohes Risiko: Malware überlebt eine Formatierung der Festplatte oder Neuinstallation des Betriebssystems
  • Hohe Potentiale: Diebstahl von Schlüsseln verschlüsselter Festplatten/Container nach Infektion

Equation Group

Equation Group

Entwicklung und Geschichte

Equation Group

Weltweite Infektion

Equation Group

Vertiefende Informationen

Symmetrische Verschlüsselung (1/4)

https://de.wikipedia.org/wiki/Symmetrisches_Kryptosystem

Gleicher Schlüssel für Verschlüsselung und Entschlüsselung der Nachricht (oder Berechnung beider Schlüssel auseinander)

Video zur Einführung in symmetrische Verschlüsselung (englisch)

Symmetrische Verschlüsselung (2/4)


Die Verschlüsselung hat zwei grundsätzliche Ziele:
Konfusion und Diffusion


  • 1.) Konfusion:
    • Zusammenhang zwischen Geheimtext und Schlüssel so komplex wie möglich machen
    • damit Kryptoanalyse erschweren
    • z. B. durch nichtlineare Substitutionen von Eingabe und Ausgabe

Symmetrische Verschlüsselung (3/4)


  • 2.) Diffusion:
    • Auflösen von statistischen Strukturen des Klartextes
    • statistische Analyse nach Buchstabenhäufigkeit im Chiffretext läuft ins Leere

  • guter Chiffretext ist nicht von Zufallszahlen und -zeichen zu unterscheiden

Symmetrische Verschlüsselung (4/4)


2 Verfahrenstypen:

  • Stromverschlüsselung
  • Blockverschlüsselung

Stromverschlüsselung (1/2)

Schema

Stromverschlüsselung (2/2)

https://de.wikipedia.org/wiki/Stromchiffre

  • Zeichen des Klartextes werden mit den Zeichen eines Schlüsselstroms verknüpft
  • Schlüsselstrom ist als pseudozufällige Zeichenfolge aus dem Schlüssel abgeleitet
  • jedes Klartextzeichen kann sofort in ein chiffriertes Ausgabezeichen übersetzen werden
  • besonders für Echtzeitübertragungen geeignet, z. B. für Mobilfunk

Blockverschlüsselung (1/3)

Schema

Blockverschlüsselung (2/3)

https://de.wikipedia.org/wiki/Blockchiffre

  • Klartext fester Länge (Block) wird – bestimmt durch Schlüssel und Chiffrealgorithmus – in einen Geheimtext fester Länge gewandelt
  • mehrere Zeichen (Block) werden in einem Schritt ver- bzw. entschlüsselt, daher schnell
  • Blockchiffren können jeweils nur einen einzigen Block verschlüsseln
  • daher wird für Texte beliebiger Länge ein krypto­graphi­scher Betriebsmodus definiert, der die Anwendung des Verschlüsselungsalgorithmus auf den Datenstrom (mehrere Blöcke) festlegt

Blockverschlüsselung (3/3)

https://de.wikipedia.org/wiki/Blockchiffre

  • modernen Blockchiffren als iterierte Blockchiffren konzipiert:
    • Eingabe wird in mehreren gleich aufgebauten Runden verarbeitet
    • Dazu werden aus dem Schlüssel sogenannte Rundenschlüssel abgeleitet

Video zur Erklärung eines in symmetrischen Algorithmus (englisch)
Das hier erklärte DES gilt allerdings inzwischen als unsicher.

TopSecret: Datei und Festplattenverschlüsslung

  • Dateiverschüsselung mit GnuPG und AxCrypt
  • Sicherer Löschen: Data Erasure Software (shred, wipe, srm & Co)
  • Festplattenverschlüsslung mit True-Crypt
  • Alternativen zu True-Crypt (cryptsetup/dm-crypt/LUKS, EncFs, DiskCryptor)

Symmetrische Verschlüsselung mit GPG

Was ist das?

  • GPG = offenes und gutes Verschlüsselungsprogramm
  • GPG hauptsächlich zur asymmetrischen Verschlüsselung (→E-Mail)
  • via Kommandozeile auch symmetrisch nutzbar

Wie geht das?

  • Symmetrische Verschlüsselung
  • Schlüssellänge → je länger desto besser

before:use

  • Konfigurationsdatei anpassen
  • Vorlage

about:use

  • Verschlüsselung einzelner Dateien
    • nur für Versand von Dateien sinnvoll
    • für dauerhafte Nutzung Container bzw. Partition → symmetrische Verschlüsselung)

Verschlüsseln

gpg -c --cipher-algo AES256 --digest-algo SHA512 geheim.txt

verschlüsselte Datei heißt: geheim.txt.gpg (im selben Verzeichnis)

Entschlüsseln

gpg -d -o geheim.txt geheim.txt.gpg

EncFs

encypted filesystem

Was ist das?

  • Dateiverschlüsselung
  • Open-Source
  • Cross-Plattform

Wie geht das?

  • 2 Verzeichnisse
    • Quellverzeichnis (Verschlüsselte Daten)
    • Zielverzeichnis (Entschlüsselte Daten)

Vorteile

  • dynamisch → keine feste Größe
  • cloudfähig (Achtung! Anfällig für Wasserzeichenangriffe)
  • schneller: nur Veränderte Datei auf Datenträger schreiben, nicht der ganze (große) Container

Nachteile

  • Keine Verschlüsselung der Metadaten

How to do #1


					encfs /home/user/.wurzelverzeichniss /home/master/zielverzeichniss				
				
				
  1. Nutzung des „vorkonfigurierten Paranoia-Modus“
  2. Passwort eingeben
  3. Fertig

  • Einbinden:
    • encfs /home/user/.wurzelverzeichniss /home/master/zielverzeichniss

How to do #2

Data Erasure Software

Linux

  • BleachBit
  • shred
  • wipe
  • srm & Co.
					      
$ shred -vn $Durchgänge $Gerät 
$ wipe -q -Q 1 -R /dev/zero -S r -r $PFAD $ srm $DATEI $ sfill -l -lv $PFAD

Data Erasure Software

MacOSX

Data Erasure Software

Windows

  • Eraser
  • AxCrypt (Fragwürdige Werbeeinblendungen!)

Data Erasure Software

Windows: Bleachbit

Data Erasure Software

Sonderfall Solid State Drive (SSD)

					      
$ sudo hdparm -I /dev/sda 
$ sudo hdparm --user-master u --security-set-pass GEHEIM /dev/sda 
$ sudo hdparm -I /dev/sda 
$ sudo time hdparm --user-master u --security-erase GEHEIM /dev/sda 
$ sudo hdparm -I /dev/sda 
                          
						

Dateiverschlüsslung


  • Wofür? Einzelne Dateien zur Übertragung/bei Kommunikation oder für die Ablage in der Cloud
  • Wichtig: Dateien nach dem Verschlüsseln sicherer löschen falls nur noch die verschlüsselten Daten vorliegen sollen.

Dateiverschlüsslung mit AEScrypt

https://www.aescrypt.com/download/


  • plattformübergreifend (Windows 32 und 64, Anroid, iPhone/iPad, MacOS, Linux)
  • (meistens) mit grafischer Oberfläche und als Kommandozeilentool
  • einfach zu installieren und in der Anwendung
  • quelloffen (Open Source)
  • Allerdings: Original und verschlüsselte Datei sind im Dateisystem sichtbar

Festplatten-/Containerverschlüsslung


Wofür Festplatten-/Containerverschlüsslung

  • Sinnvoll, wenn mehrere Daten gemeinsam verschlüsselt werden sollen (z. B. ganze Verzeichnisse oder Verzeichnisbäume)
  • Schutz aller Daten gegen (Offline-)Diebstahl (insbesondere bei mobilen Geräten wie Notebooks) oder auch nur neugierige Fremde oder Freunde
  • Schutz gegen Datenwiederherstellung nach Verkauf, Entsorgung oder bei Reklamation von Datenträgern.

Festplatten-/Containerverschlüsslung


  • 2 Varianten
    • Partitionen oder ganze Festplatten
    • Container, die wie normale Dateien auf dem Rechner liegen (dadurch z. B. einfaches Backup)
  • wenn geöffnet sind beide wie normale Laufwerke verwendbar, transparent
  • geschlossen keine Infos über gespeicherte Inhalte

Truecrypt

Infos zum Programm: https://de.wikipedia.org/wiki/TrueCrypt


  • Problem: Nicht mehr aktiv entwickelt
  • Aber: Eins der am besten auditierten OSS-Projekte
  • Audit der letzten vollständig funktionierende Version (7.1a) ohne schwerwiegende Sicherheitslücken in Phase 1; Phase 2 soll in Kürze starten
  • Sehr gute und detaillierte, leider nur englische Dokumentation
  • quelloffen (Open Source) aber mit sehr eigenwilliger Lizenz

Truecrypt

Download: https://github.com/AuditProject/truecrypt-verified-mirror


  • Originale Website ist nicht mehr verfügbar, allenfalls als Kopie
  • Dateiquellen für Download: Vom Open Crypto Audit Project verifiziert, dem Projekt, das auch den letzten Cryptoaudit für Truecrypt durchgeführt hat und an der zweiten Phase arbeitet
  • installierbar aber auch portabel nutzbar, dann Adminrechte nötig (Windows)

Truecrypt


Wie funktioniert’s? (1)

  • beim Erstellen des Datenträgers werden Masterkeys und weitere Informationen für Ver- und Entschlüsslung der Inhalte des Containers/der Partition/Platte verschlüsselt im Volume Header abgelegt
  • für deren Verschlüsslung wird aus dem Passwort oder/und eingesetzten Keyfiles ein Header Key mit PBKDF2 (Password-Based Key Derivation Function 2) abgeleitet

Truecrypt


Wie funktioniert’s? (2)

  • als Betriebsmodus kommt XTS zum Einsatz, der aktuelle Quasi-Standard für Daten­träger­ver­schlüs­selung, eingesetzt auch bei BestCrypt, dm-crypt, FreeOTFE, DiskCryptor, FreeBSD geli, OpenBSD softraid disk encryption software und Mac OS X Lion FileVault 2

Truecrypt


Verschlüsselungsalgorithmen

  • alle Verfahren waren Finalisten für den Advanced Encryption Standard (AES) des National Institute of Standards and Technology (NIST) der USA in 2000
    • Rijndael/AES (Joan Daemen, Vincent Rijmen), der spätere Gewinner des Ausscheidungsverfahrens
    • Serpent (Ross Anderson, Eli Biham, Lars Knudsen)
    • Towfish (Bruce Schneier, Niels Ferguson, John Kelsey, Doug Whiting, David Wagner und Chris Hall)
  • Kaskaden möglich → höhere Sicherheit aber auch längere Zeit zum Ver- und Entschlüsseln

Truecrypt


Hash-Algorithmen

  • RIPEMD 160, 1992 im Rahmen des Projekts RACE Integrity Primitives Evaluation (RIPE) der Europäischen Union entwickelt, 1996 erweitert
  • SHA-512, 1993 als Secure Hash Algorithm (SHA) vom NIST vorgeschlagen, 2002 drei weitere Varianten von denen SHA-512 den längsten Hashwert erzeugt.
  • Wirlpool, letzte Version von 2003, vom NESSIE (New European Schemes for Signatures, Integrity and Encryption)-Projekt als HASH-Algorithmus empfohlen

Truecrypt-Alternativen


Windows

Truecrypt-Alternativen


Mac OS X/Linux/BSD

Festplattenverschlüsselung mit dm-crypt und LUKS

  • quelloffene Alternative auf Linux-Systemen
  • Integration in den Kernel (Betriebsystemkern)
  • keine Hidden Volumes
  • keine glaubhaftbaren Abstreibarkeit (plausible denialaby)

Festplattenverschlüsselung mit dm-crypt und LUKS

Container erstellen

						
$ cryptsetup -c aes-xts-plain -y -s 512 luksFormat /dev/disk/by-uuid/XXX 
$ cryptsetup luksOpen /dev/disk/by-uuid/XXX mycrypteddev
$ mkfs.ext4 /dev/mapper/mycrypteddev 
$ cryptsetup luksClose /dev/mapper/mycrypteddev 
						
						

Festplattenverschlüsselung mit dm-crypt und LUKS

Container einhängen und aushängen (mount, unmount)

						
$ cryptsetup luksOpen /dev/disk/by-uuid/XXX mycrypteddev 
$ mount -t ext4 /dev/mapper/mycrypteddev /mnt/mount_point 
$ umount /mnt/mount_point  
$ cryptsetup luksClose mycrypteddev
						
						

Vielen Dank