NB-Town speichert Passwörter im Klartext

In den letzten Tagen kursierten die Passworthashs der Communities Last.fm, eHarmony und LinkedIn durch das Netz. Bei Last.fm waren dies ungesalzene MD5 Hashs die man per Brute Force in relativ kurzer Zeit zurückrechnen kann.

Das Problem ist das sobald man dies „zurückrechnen“ kann, kann man die Passwörter bei anderen Diensten (Mail, Amazon, usw.) ausprobieren und damit Schindluder treiben. In einer perfekten Welt würde zwar jeder für jeden Dienst ein extra Passwort benutzen, aber es ist nun mal keine perfekte Welt.

Noch problematischer wird das ganze wenn man die Passwörter im Klartext (siehe Update) speichert (was man definitiv nicht tun sollte). So gibt es im Norden Deutschlands eine erfolgreiche Community mit knapp 140000 Mitgliedern welche auf den Namen NB-Town hört und unter www.nb-town.de zu finden ist.

Das Problem offenbart sich sobald man einmal die „Passwort vergessen?“ Funktionalität benutzt. Daraufhin bekommt man folgende Mail:

Die Passwort vergessen? Mail

Wie man sieht wird das Passwort im Klartext gespeichert (sonst könnte es die „Passwort vergessen?“ Funktionalität nicht zurücksenden), was bei einer solchen Community fahrlässig ist. Sobald jemand an die Datenbank herankommen so hat er 140000 Passwörter + die passenden Identitäten dazu. Ein anderes Problem bei Passwörtern welche im Klartext gespeichert werden, ist immer das die Betreiber Zugriff auf diese haben und damit (theoretisch) Schindluder betreiben können.

Deshalb gilt, Passwörter immer gehasht (aber nicht mit MD5 ;)) und gesalzen speichern. Einene schönen Artikel dazu gibt es bei Heise unter http://www.heise.de/security/artikel/Passwoerter-unknackbar-speichern-1253931.html.

Update:
Die Passwörter werden in der Datenbank nicht im Klartext gespeichert, sondern AES verschlüsselt. Bei der „Passwort vergessen?“ Funktion wird der Schlüssel in der Query übergeben, so das das Passwort entschlüsselt werden kann. Man müsste als böser Mensch also an den Webserver und den Datenbankserver herankommen und um Zugriff auf die Passwörter zu bekommen.

Verschlüsselte Datenbank mit SQLite

Die Daten in einer SQLite Datenbank sind im Normalfall unverschlüsselt. Natürlich kann man die Daten von Hand verschlüsseln, was aber auf Dauer wahrscheinlich etwas anstrengend wird. Anhilfe schafft hier die Bibliothek SQLCipher mit welcher SQLite Datenbanken verschlüsselt werden können. Die Bibliothek ist dabei Open Source und steht unter der BSD Lizenz. Zu finden ist die Bibliothek unter http://sqlcipher.net/.

Weitere Informationen gibt es unter:
http://de.wikipedia.org/wiki/Sqlite

Dropbox mittels EncFS verschlüsseln

Dropbox ist ein sehr schönes Tool, allerdings hat man doch immer ein ungutes Gefühl, weil man nie weiß was der Hersteller mit den Daten anfängt. Eine schöne Lösung wäre dabei die Verschlüsselung der Daten. Speziell für Dropbox gibt es dabei die Software BoxCryptor welche unter http://www.boxcryptor.com/ zu finden ist. Schöner wäre allerdings eine Betriebssystem übergreifende Lösung welche für Linux, Windows und Mac OS X funktioniert und ohne unfreie Software auskommt.

Wir greifen dabei auf EncFS zurück. Der Artikel geht dabei zuerst auf die Installation unter Windows und dann unter Ubuntu ein. Für Windows werden zuerst folgende Dinge heruntergeladen werden:

Nach dem Download sollte der Dokan Installer installiert und die „encfs.zip“ Datei entpackt werden. Danach können wir die Datei „encfsw.exe“ starten. Im Kontextmenü des Icons welches sich im Tray befindet kann dann mittels „Open/Create“ ein Ordner in der Dropbox verschlüsselt werden und dieser einem Buchstaben zugewiesen werden.

Den Inhalt des alten Ordners (in diesem Fall „Private“) sollte dann in das neue Laufwerk kopiert werden. Damit funktioniert das ganze dann unter Windows. Ein Problem mit EncFS für Windows scheint im Moment zu sein das man keine Anwendungen auf dem gemounteten Laufwerk starten kann, weil dies zu Problemen führt :(

Unter Ubuntu installieren wir das Paket „encfs“ mittels:

sudo apt-get install encfs

Mounten bzw. entschlüsseln könnten wir die Dropbox dann so:

encfs ~/Dropbox/Private ~/DropboxPrivate

Wichtig ist dabei das man das ganze nicht in die Dropbox mountet, sonst wird der ganze Spaß wieder synchronisiert. Möchte man nun nicht jedes mal ein Passwort eingeben wenn man den Ordner mountet so kann man das ganze so lösen:

encfs --extpass="./getprivatefolderpw.sh" ~/Dropbox/Private ~/DropboxPrivate

Die Datei „getprivatefolderpw.sh“ muss dabei so aussehen:

echo geheimesPasswort

Nun muss man das ganze nur noch in den Autostart (z.B: in die „.bashrc“) packen und schon passiert das alles automatisch nach dem einloggen.

Weitere Informationen gibt es unter:
http://dokan-dev.net/en/
https://seeseekey.net/archive/1192
http://de.wikipedia.org/wiki/EncFS
http://members.ferrara.linux.it/freddy77/encfs.html
http://www.boxcryptor.com/download/#platform_linux_dl
http://d24m.de/2011/07/22/howto-encfs-unter-windows-installieren/

Verschlüsselung auf Onlinefestplatten

Onlinefestplatten sind ja eine feine Sache: Überall hat man seine Daten verfügbar geschützt gegen Brand, Erdbeben und vieles mehr. Doch ein schaler Nachgeschmack bleibt. Schließlich liegen die Daten auf der Onlinefestplatte unverschlüsselt. Das ist natürlich unschön, aber hier kann man zum Glück Abhilfe schaffen.

Bei der Verschlüsselung von Daten gibt es im groben zwei Ansätze was das Wie betrifft. Einmal gibt es Software welche große Container anlegt in welchen das gesamte Dateisystem gespeichert ist. Das ist natürlich sehr schön, online allerdings relativ unpraktikabel. Man stelle sich vor man möchte einen 4 TB Container anlegen, das könnte über die Onlineverbindung eine ganze Weile dauern.

Die ändere Möglichkeit wäre es nur die Dateien zu verschlüsseln z.B. mit GPG, allerdings wäre diese Methode doch recht manuell. Eine schöne Zwischenlösung sind Systeme wie EcryptFS oder EncFS. Hier wird ein Verzeichnis verschlüsselt und zwar Datei für Datei (die Dateinamen werden dabei auch verschlüsselt). Das schöne an der Sache ist das es fast automatisch funktioniert.

Zuerst soll die Onlinefestplatte per WebDAV eingebunden werden. Im zweiten Schritt wird dann der verschlüsselte Ordner aufgesetzt. Für WebDAV wird zuerst das Paket davfs2 mittels

sudo apt-get install davfs2

installiert. Anschließend tragen wir in die /etc/fstab folgendes ein:

https://“webdavurl“ „mountpunkt“ davfs user,noauto 0 0

z.B. https://webdav.example.com /home/seeseekey/Online davfs user,noauto 0 0

Nun wird mittels:

sudo dpkg-reconfigure davfs2

das Paket rekonfiguriert. Auf die anschließende Frage antworten wir mit Ja. Damit ist das SUID-Bit für davfs2 gesetzt.

Nun wird mittels

sudo adduser „Nutzername“ davfs2

z.B. sudo adduser seeseekey davfs2

der entsprechende Nutzer der Gruppe davfs2 hinzugefügt. Damit kann man das ganze nun auch ohne root Rechte mounten. Nun legt man in seinem Homeverzeichnis den Ordner .davfs2 an und in diesem erstellt man eine Datei namens secrets. Das ganze sollte dann also unter ~/.davfs2/secrets zu finden zu sein. In diese Datei trägt man nun folgendes ein:

„Mountpunkt“ „login“ „passwort“

z.B. /home/seeseekey/Online geheim

ein und speichert das ganze. Die Rechte der Datei werden nun mittels

chmod 600 ~/.davfs2/secrets

auf das nötigste beschränkt.

Nun erstellen wir den Mountpunkt und mounten das Verzeichnis:

mkdir -p ~/Online
mount ~/Online

Nachdem das geschafft ist wird das Paket encfs mittels

sudo apt-get install encfs

installiert.

Mittels

encfs ~/Online/.private ~/Online/private

erstellen wir nun das verschlüsselte Verzeichnis. Dabei wird es auch gleich gemappt. In den Ordner ~/Online/private können wir nun die Dateien kopieren welche verschlüsselt werden sollen.

Das Skript zum mounten nach einem Neustart würde dann so aussehen:

mount ~/Online
encfs ~/Online/.private ~/Online/private

Und schon verfügt man über ein verschlüsseltes WebDAV Laufwerk :)

Weitere Informationen gibt es unter:
http://wiki.ubuntuusers.de/webdav
http://de.wikipedia.org/wiki/EncFS
http://wiki.ubuntuusers.de/EncFS
http://neuntoeter.wordpress.com/2010/07/31/verschluesselte-online-backups/

Mit GNU Privacy Guard Dateien auf der Kommandozeile verschlüsseln

Möchte man mittels GPG eine Datei in der Kommandozeile verschlüsseln so gibt man auf der Konsole folgendes ein:

gpg -c geheim.txt

Danach wird man nach dem Passwort gefragt. Verschlüsselt wird in diesem Fall symmetrisch. Entschlüsseln kann man das ganze mittels:

gpg -o geheim.txt -d geheim.gpg

Das schöne an GPG ist im übrigen das es für so ziemlich jedes System zur Verfügung steht. Angefangen bei Linux und Windows bis zu Androidgeräten. Interessanter wäre natürlich eine auf Dateien basierende Verschlüsselung welche sich transparent in das Dateisystem einbindet (sprich ich als Nutzer merke nicht das mit verschlüsselten Dateien gearbeitet wird), aber man wird ja noch träumen dürfen ;)

Möchte man das ganze nicht auf Dateien basierend haben, sondern alle Daten in einem Container transparent einbinden so empfiehlt sich Truecrypt mit welchem das problemlos funktionieren sollte. Auch dieses ist betriebssystemübergreifend verfügbar.

Weitere Informationen gibt es unter:
http://wiki.ubuntuusers.de/gnupg
http://de.wikipedia.org/wiki/GNU_Privacy_Guard
http://wiki.ubuntuusers.de/TrueCrypt
http://de.wikipedia.org/wiki/TrueCrypt