class: center, middle ## Daten plattformübergreifend und verschlüsselt austauschen mit # VeraCrypt ### Hauke Goos-Habermann #### https://goos-habermann.de --- ### Über mich - Entwickler des Softwareverteilungssystems m23 - Organisator der Kieler Open Source und Linux Tage - Dienstleister zu m23, Linux und Freier Software - Softwareentwicklung (PHP, BASH, C/C++, JS, Python und was sonst so gebraucht wird...) - Administration - Schulungen - Support - Beratung - quasi **alles**, *was mit Linux zu tun hat* --- ### Dateiverschlüsselung ![img33l](cybaer-schrift-links.png) * Dateien und Verzeichnisse werden nur verschlüsselt auf einem physikalischen Datenträger abgelegt * Daten werden beim **Lesen** transparent entschlüsselt * Daten werden beim **Schreiben** transparent verschlüsselt * Daten sind nur dann **geschützt**, wenn der *verschlüsselte Datenspeicher* **nicht "offen"** ist #### Wofür ist das gut? * Wird z.B. ein ausgeschaltetes Notebook (*"geschlossener Zustand"*) gestohlen, so kann der Dieb die Daten nicht entschlüsseln. * Im *"offenen Zustand"* können alle Dateien und Verzeichnisse (durch die dazu berechtigten Nutzer) gelesen und modifiziert werden. So auch durch Schadsoftware, die mit den Rechten eines dieser Benutzer läuft. * Dateiverschlüsselung ist nur **ein Baustein** in einem Sicherheitskonzept. --- ### VeraCrypt * Wikipedia: https://de.wikipedia.org/wiki/VeraCrypt * Projektseite: https://veracrypt.fr/en/Home.html * Downloads für Linux * deb (Debian, Ubuntu, Raspberry Pi OS) * rpm (openSUSE, CentOS) * Generischer Installer * Downloads für FreeBSD, Windows, MacOS X * PGP-Signaturen zum Überprüfen der Unverfälschtheit --- ### VeraCrypts Eigenschaften * Verschlüsselung von ganzen Laufwerken, Partitionen und Containern * Algorithmen:
AES, Serpent, Twofish, Camellia und Kuznyechik
* Auch kaskadierbar (bis zu drei) * Glaubhafte Abstreitbarkeit, daß Daten vorhandenen sind, wenn diese als versteckter Container in einem verschlüsselten Bereichen abgelegt werden * Dateisystem wählbar (z.B. ext4 oder NTFS) * Daten werden nicht mit dem eingegebenen Paßwort ent- und verschlüsselt, sondern mit einem daraus abgeleiteten Schlüssel. In diesen fließen ein: * Zufallswerte (per Tastatur eingegeben) * Paßwort * Ein *schwachen Paßwort* kann durch zusätzliche Faktoren "aufgewertet" werden * PIM (Personal Iterations Multiplier): Geheimnis (per Hand einzugeben) * keyfile: Geheimnis (aus Datei) *
FUSE
-Modul unter Linux --- ### VeraCrypt installieren Installationsskript
veracrypt-install.sh
herunterladen und ausführen mit: ```bash # root werden su - # Installation starten bash veracrypt-install.sh ``` --- ### Container anlegen * -c: Erstellen * --filesystem=ntfs: Dateisystem NTFS * --quick: Container **nicht** mit Zufallswerten überscheiben (schneller, aber weniger sicherer) * --volume-type=normal: Normaler Container (nicht versteckt) * --encryption='AES-Twofish': Kaskadierte Verschlüsselung mit AES und Twofish * --hash=SHA-512: *Hashfunktion, um aus dem Paßwort und Zufallswerten ein sicheren Schlüssel abzuleiten* * --size 10M: Container mit einer Größe von 10 MB anlegen * --force: Ggf. vorhandene Containerdatei überschreiben * test.tc: Name der Containerdatei ```bash veracrypt -c --filesystem=ntfs --quick --volume-type=normal\ --encryption='AES-Twofish' --hash=SHA-512 --size 10M\ --force test.tc ``` --- ### Gerät verschlüsseln * --encryption=AES: Verschlüsselung mit AES * /dev/sdc: Ganzes Laufwerk (z.B. USB-Stick) verwenden ```bash veracrypt -c --filesystem=ntfs --quick --volume-type=normal\ --encryption=AES --hash=SHA-512 /dev/sdc ``` Hinweis: Statt eines ganzen Laufwerkes kann auch eine Partition (z.B. /dev/sdc1) verwendet werden. --- ### Ein- und Aushängen Als normaler Benutzer #### Gerät ```bash # Mounten veracrypt /dev/sdc /mnt/vera # Unmounten veracrypt -d /dev/sdc # ODER veracrypt /mnt/vera ``` #### Container ```bash # Mounten veracrypt test.tc /mnt/vera # Unmounten veracrypt -d /mnt/vera ``` --- ### Dateisystem korrigieren ```bash # Nur Device-Mapper erstellen veracrypt /dev/sdc --filesystem=none # ODER veracrypt test.tc --filesystem=none # Dateisystem korrigieren fsck /dev/mapper/veracrypt1 # Device-Mapper entfernen cryptsetup remove /dev/mapper/veracrypt1 ``` Hinweis: Statt */dev/mapper/veracrypt1* kann auch ein Device-Mapper-Gerät mit einem anderen Namen (z.B. wenn mehrere VeraCrypt-Geräte gleichzeitig gemountet sind) benötigt werden. --- ### Sonstiges ```bash # NTFS-Kompression aktivieren setfattr -h -v 0x00000800 -n system.ntfs_attrib_be /mnt/vera # Informationen über Algorithmen ls /dev/mapper/veracrypt* | xargs -n1 cryptsetup status ``` --- class: center, middle ### Informationen zu mir und meinen Dienstleistungen, m23, ... ### https://goos-habermann.de