Linux am Dienstag: Programm für den 28.9.2021

Letzte Woche fassten wir die Idee Virtualisierungslösungen zu präsentieren, heute gibt es schon den ersten Beitrag dazu. Danke Mario 😀

Linux am Dienstag: Programm für den 28.9.2021

Die Themen am Abend ab 19 Uhr sind u.a.

  • Sicherheit – Neue Schwachstelle in Chrome und Edge
  • Sicherheit – APPLE VPN Leakt IPs der Nutzer
  • Sicherheit – Bitcoin Foundation gehackt
  • Bitcoin – jetzt illegal in China
  • Virtualisierung – Vortrag: „Proxmox – Desaster Recovery“ (Mario)
  • Systemd – Pöttering möchte Verschlüsselung verbessern

außerdem Fedora 35 mit OSTree.

Ich hoffe wir sehen uns nachher ab 19 Uhr auf https://meet.cloud-foo.de/Linux oder über den Link auf https://linux-am-dienstag.de

Süddeutsche Zeitung & das TLSv1 Gate

Und wieder einmal schlägt das TLSv1 Problem zu, diesmal bei der Süddeutschen Zeitung. Dankt Fefe für den Tipp 😉

Das Testergebnis

CheckTLS Confidence Factor for „szdm.digitalesdesign@sz.de“: 100

MX ServerPrefAnswerConnectHELOTLSCertSecureFromTo
mshgw-mx01.msh.de
[212.4.227.210]
50OK
(86ms)
OK
(114ms)
OK
(89ms)
OK
(90ms)
OK
(1,094ms)
OK
(93ms)
OK
(94ms)
OK
(120ms)
mshgw-mx01.msh.de
[212.4.227.209]
50OK
(86ms)
OK
(88ms)
OK
(86ms)
OK
(90ms)
OK
(860ms)
OK
(96ms)
OK
(92ms)
OK
(95ms)
mshgw-mx01.msh.de
[212.4.227.208]
50OK
(96ms)
OK
(84ms)
OK
(86ms)
OK
(87ms)
OK
(1,023ms)
OK
(92ms)
OK
(90ms)
OK
(90ms)
mshgw-mx02.msh.de
[212.4.227.212]
50OK
(90ms)
OK
(93ms)
OK
(90ms)
OK
(89ms)
OK
(1,024ms)
OK
(91ms)
OK
(91ms)
OK
(95ms)
mshgw-mx02.msh.de
[212.4.227.211]
50OK
(90ms)
OK
(93ms)
OK
(87ms)
OK
(92ms)
OK
(1,002ms)
OK
(87ms)
OK
(94ms)
OK
(94ms)
mshgw-mx02.msh.de
[212.4.227.213]
50OK
(88ms)
OK
(87ms)
OK
(91ms)
OK
(87ms)
OK
(1,069ms)
OK
(98ms)
OK
(91ms)
OK
(90ms)
Average100%100%100%100%100%100%100%100%

Das Testergebnis via checktls.com ist an sich ganz ok, bis auf den kleinen, aber entscheidenen Hinweis, das die Verbindung nur mit TLS 1.0 abgesichert ist 🙂

Die Verbindung selbst wurde am 14. 3. 2018 um 11:45 Uhr getestet und liefert für alle Server das gleiche Ergebnis:

Trying TLS on mshgw-mx01.msh.de[212.4.227.210] (50):

secondstest stage and result
[000.086]Connected to server
[000.198]<–220 mshgw-mx07.msh.de ESMTP
[000.199]We are allowed to connect
[000.200] –>EHLO checktls.com
[000.287]<–250-mshgw-mx07.msh.de
250-PIPELINING
250-SIZE 62914560
250-ETRN
250-STARTTLS
250-AUTH CRAM-MD5 DIGEST-MD5 LOGIN
250-AUTH=CRAM-MD5 DIGEST-MD5 LOGIN
250-ENHANCEDSTATUSCODES
250-8BITMIME
250 DSN
[000.289]We can use this server
[000.289]TLS is an option on this server
[000.289] –>STARTTLS
[000.378]<–220 2.0.0 Ready to start TLS
[000.379]STARTTLS command works on this server
[000.659]Connection converted to SSL
SSLVersion in use: TLSv1
Cipher in use: DHE-RSA-AES256-SHA
Certificate 1 of 3 in chain: Cert VALIDATED: ok
Cert Hostname VERIFIED (mshgw-mx01.msh.de = *.msh.de | DNS:*.msh.de | DNS:msh.de)

Also ich werde der Süddeutschen Zeitung keine geheimen Daten schicken , ohne die nochmal mit PGP/GPG zu verschlüsseln und am besten gar nicht per Email, sondern gleich per POST mit einem DoubleLayerEncryption USBStick 😀

BSI zu TLSv1.0

Laut der technischen Richtlinie gelten TLS 1.0 und TLS 1.1 als unsicher und 
werden nicht mehr empfohlen.
...
Dieser Mindeststandard referenziert die technische Richtlinie TR-02102-2 und
fordert für die Bundesverwaltung den Einsatz von TLS 1.2 mit PFS.

ums mal ganz klar zu sagen :

Liebe Süddeutsche,

damit Eure Whistleblower auch in Zukunft noch Mail schicken, was sie zwar nicht sollten, aber das ist ein anderes Thema, wechselt doch mal die Mailserverinfrastutur aus, z.B. indem der Anbieter das Update von 2008 auf TLS 1.2 einspielt. Verschlüsselung auf dem Technikstand von 1999 einzusetzen , ist keine Lösung!

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.