GNOME: Konferenz in Karlsruhe am 12-14.8.

Von Freitag bis Sonntag dieser Woche findet in Karlsruhe die GUADEC 2016 statt. Das ist die GNOME Entwickler Konferenz. Im Programmplan finden sich allerdings keine für mich spannenden Themen 🙁

Richtig Angst macht mir dagegen der Beitrag über die zukünftige Integration bzw. Anwendungsverteilung von Software über verschiedene Plattformen. Das  Snappy- und Flatpak Binärblobs verteilt werden sollen, die vielleicht die xte Version einer anfälligen Library gleich mitbringen, bedeutet eine immense Gefahr für die Sicherheit von Desktopsystemen. Für die Entwickler ist das fraglos eine Vereinfachung, aber die geht zu Lasten aller und ist damit nicht hinnehmbar. Vielleicht ist das der einzige Beitrag der es wert ist besucht zu werden, um den stolzen Vortragenden, die ja ganz fröhlich obiges in Kauf nehmen, mal die Meinung zu geigen.

Webseite: https://2016.guadec.org/

Double Layer Encryption mit Veracrypt

Wer sagt LUKS und VeraCrypt könne man unter GNU/Linux nicht zusammen als Partitionsverschlüsselung benutzen, der irrt.

Für die Securityneulinge unter Euch klären wir doch erstmal, was LUKS und VeraCrypt überhaupt sind:

LUKS ist das Systemencryptionformat unter Linux. Erstellt man eine frische Linuxinstallation auf einen PC und verschlüsselt die Platte, wird dazu LUKS verwendet. LUKS steht für Linux Unified Key Setup, was die Methode meint, wie der kryptographische Schlüssel hinterlegt ist. Die Verschlüsselung selbst wird mit dem DMCrypt Kernelmodul gemacht, was wiederum für Device-mapper Crypto steht und am Ende dann AES, Twofish oder Serpent als Verschlüsselungsmethoden einsetzt. LUKS reicht aus um einen normalen Angreifer, der das Laptop geklaut hat, davon abzuhalten an die Daten zu kommen.

VeraCrypt wiederum ist das derzeit einzige Multi-Plattform-Verschlüsselungssystem, daß Mac/Windows und Linux einschliesst (wenn man das anklickt). Es nutzt am Ende auch AES, TwoFish und Serpent als Verschlüsselungsmethoden. VeraCrypt basiert auf den Sourcen von Truecrypt, seinem direkten Vorläufer und bedient sich praktischerweise genauso. Daher gibt es auch eine nützliche GUI mit der man die Laufwerke managen und die Verschlüsselungen erstellen kann. VeraCrypt kann durch vermischen von Verschlüsselungsalgorithmen eine stärkere, aber rechenintensivere Verschlüsselung erzeugen. Deswegen sollten sensitive Daten damit verschlüsselt werden.

VeraCrypt und LUKS schliessen sich eigentlich gegenseitig aus, wenn zusätzlich auch VeraCrypt benutzt wird, um die gleiche Partition direkt zu verschlüsseln. Will man das doch, kann das aus logischen Gründen nicht gehen, da nicht beide die gleichen Blöcke der Festplatte benutzen können. Das stimmt leider, deswegen müssen wir den Begriff „gleichen Block“ etwas dehnen. Was wäre, wenn man tatsächlich den gleichen Block mit beiden Programmen nutzen würde, aber es nicht wirklich gleichzeitig ist ?

Double Layer Encryption

Nun habe ich es im Betreff natürlich schon verraten: Double Layer meint, zwei Schichten Verschlüsselung, also zwei Schichten übereinander.

Zunächst wird die Partition ganz normal mit LUKS verschlüsselt. Passwort aussuchen und loslegen.

Dann wird es schwieriger, denn über die Oberfläche von VeraCrypt kann man nur echte Partitionen einer Festplatte aussuchen, da ist aber schon die Luksschicht drauf. Würden wir also diese Auswählen, wäre LUKS weg und wir hätten nur noch eine Schicht. Jetzt kommen die VeraCryptfreaks natürlich sofort auf die Idee, der Typ in dem Artikel meint einen Truecryptcontainer und verkauft es als Double-Layer …  nein, das meine ich nicht 😀 Ich rede wirklich davon, zwei Schichten Verschlüsselung auf Partitionsebene einzusetzen 😀

Damit Ihr den Unterschied versteht, True/VeraCrypt kann eine Datei anlegen, diese verschlüsselt formatieren und als Laufwerk anmelden. Wo die Datei liegt ist dabei egal und das bietet echt coole Optionen an, wo und wie man das im Cloudbetrieb nutzen kann. Es bleibt aber eine Datei, was meint, daß man über OS Filesystemroutinen auf die Datei zugreift, was der Performance etwas abträglich sein kann, weil ja noch mehr Prozesse auf das darunterliegende Filesystem zugreifen könnten, und im allgemeinen, daß Filesystem im Weg ist.  Speichert man die Daten dagegen direkt auf die Festplatte ist es tatsächlich performanter.

Wie wir oben gelernt haben, kann man mit VeraCrypt per Oberfläche nur auf die echten Partitionen zugreifen. Also brauchen wir eine Partition dafür. Zum Glück haben wir eine, die von LUKS beim Formatieren der nativen Partition erzeugte virtuelle Partition NACH der Entschlüsselung.  Nur rankommen ist schwierig. Wer sich das Laufwerkstool ansieht, wird feststellen, daß ein LUKS entschlüsseltes Medium per Device-Mapper verwaltet wird. Ist logisch, denn darauf beruht LUKS ja auch, wie man oben nachlesen kann. Dieses Devicemapping wird vom Kernel als echte Platte verkauft, kann also genauso wie eine angesprochen werden, sonst könnte man ja auch kein Ext4 Filesystem drauf formatieren. Man muß also nur an das DeviceID gelangen und es irgendwie an VeraCrypt weiterreichen.

Am Ende war dieser Vorgang einfacher als gedacht. Zunächst öffnen wir das Laufwerkstool ( Laufwerke / Disks ), das schon benutzt wurde, um die Partition mit LUKS zu verschlüsseln. Klickt man auf die Partition, die nach der Entschlüsselung des Laufwerks angezeigt wird, bekommt man die DeviceID angezeigt, die dann mit kleinen Abweichungen so aussieht : „/dev/mapper/luks-4276c629-c8de-45e4-9b26-56b94e65b6eb

Crypto-4Jetzt die Partition verschlüsseln

Crypto-6

Crypto-7Diese geben wir nun direkt in die Eingabemaske beim Anlegen einer neuen Festplattenverschlüsselung  im VeraCrypt ein, statt ein Device auszusuchen. Erfreulicherweise nimmt VeraCrypt das sofort an:Crypto-8

Crypto-9Die PIM von „600“ habe ich für die Demo verwendet, 900 bis 1800 sollten in Betracht gezogen werden, je nach CPU Stärke. Denn je mehr Durchläufe des Hashalgorithmuses hier stehen, desto langsamer geht es. Das trifft aber auch für den Angreifer zu und der muß diesen Wert erst noch erraten, bevor er hoffen kann, einen Block der Platte korrekt zu dekodieren.

Crypto-11Crypto-12Crypto-14Nun kann man ganz normal weitermachen, als wenn es die normale Partition wäre, denn es ist eine. Ist die neue Partition am Ende formatiert, erhalten wir so eine Double-Layer Protection. Das Spiel könnte man noch weitertreiben, aber danach wird es langsam inperformant. Eine Tripple-Layer Verschlüsselung wäre ausgesprochen hart, bis unmöglich zu entschlüsseln, solange keine technischen Designfehler der Verschlüsselungsprotokolle gemacht wurden.

Jetzt noch mal zur Probe mounten

Crypto-15
Crypto-16
Crypto-17und schon ist die frisch verschlüsselte Platte benutzbar und Fertig ist die doppelte Festplattenverschlüsselung 😀
Crypto-19

Verschlüsselung alleine reicht nicht

Nun kommt bei so einer Verschlüsselung noch einiges an Randbedingungen mit, denen man sich gewahr sein muß. Solange das Betriebssystem unsicher ist, sind es die Daten auch, denn wenn ich selbst darauf zugreifen will, müssen die Lagen ja alle entschlüsselt sein. In dem Augenblick kann ein kompromitiertes System den Inhalt verraten.

Ein Betriebssystem wie Windows 10 speichert den eigenen Verschlüsselungskey auch schonmal ohne zu fragen in der Microsoftcloud.. natürlich nur damit SIE an Ihre Daten rankommen, wenn SIE Ihr Passwort vergessen haben 😉 (glauben wir natürlich sofort 😉 ) Apple ist da auch keinen Deut besser.

Desweiteren sollten Sie auch keine Funktastaturen einsetzen, weil die das auch gern unverschlüsselt im Umkreis von hunderten von Metern verteilen! Selbstverständlich zeigt der Monitor nicht zum Fenster und die Tastatureingabe ist auch nicht einzusehen oder zu hören (Das ist kein Witz). Das Passwort lautet natürlich auch nicht „Linux12345“ sondern „WeißderGeierwievieleZeichenichbenutze,hauptsachemehrals25“ .. Geburtstage sind kein Passwort, Hundenamen sind kein Passwort, Lateinische Zitate sind keine Passwörter, besonders nicht „Quovadis{Ihrname}“… Alles auf das Sie zuerst kommen, kommen alle anderen auch zuerst. Daher fängt man beim fünften Versuch aufwärts an und nicht vorher. Wenn Sie den Raum mit Ihrem Computer verlassen, starten Sie die Bildschirmsperre, damit keine Fremden an den PC können, während die entschlüsselten Inhalte lesbar sind.

Sie müssen sich klar machen, daß die Festplatte hundertmal kopiert werden kann, um alle hundert Kopien gleichzeitig mit Entschlüsselungsversuchen zu brechen. Ihr Passwort muß so einem massiv-paralellen Angriff für Jahre standhalten und daher braucht es eine Mindeststärke.

Die Empfehlung des Tages lautet dann natürlich: Nehmen Sie GNU/Linux und LUKS + VeraCrypt gleichzeitig.

Abschlußanmerkungen

Natürlich kann man das alles in der Konsole machen und es so teilautomatisieren, aber das war heute nicht Thema des Artikels.

Ich habe hier einen USB Stick genommen, weil ich keine freie Festplattenpartition zum Testen hatte. Ein USB Stick ist nicht optimal geeignet um verschlüsselt zu werden, da ein USB Stick einen Backupchip hat, um die Speicherchips gleichmäßig zu beschreiben. Der freie Speicherchip wird rotiert, damit gibt es immer einen Speicherchip, dessen Inhalt sich der Kontrolle des Verschlüsselungsprogramms entzieht. Jetzt kann man Glück haben und es stehen keine unverschlüsselten Daten in dem Speicherchip, es kann aber auch anders kommen. Daher richtige Festplatten als Datenträger nehmen.