Willkommen bei Network & Security     remoteshell-security.com
Partnerseiten
login.php?sid=8f6c526738d6df374653e8b723392259 profile.php?mode=register&sid=8f6c526738d6df374653e8b723392259 faq.php?sid=8f6c526738d6df374653e8b723392259 memberlist.php?sid=8f6c526738d6df374653e8b723392259 search.php?sid=8f6c526738d6df374653e8b723392259 index.php?sid=8f6c526738d6df374653e8b723392259

Foren-Übersicht » Linux und andere Unixe » [tutor] Lokale Verschlüsselung
Neues Thema eröffnen  Neue Antwort erstellen Vorheriges Thema anzeigen :: Nächstes Thema anzeigen 
[tutor] Lokale Verschlüsselung
BeitragVerfasst am: 13.03.2006 21:56 Antworten mit Zitat
duddits
Anmeldedatum: 03.01.2006
Beiträge: 569
Wohnort: /proc




Hi,

dies ist ein kurzes Tutor zum Thema AES und wie man es verwendet um unter Linux einen verschlüsselten Ordner/Container einzurichten.

Zuerst legen wir einen leeren Container an, in den später die streng vertraulichen Daten gespeichert werden sollen (als Beispiel dient die Datei ".safe", 50 MB groß - count in MegaByte):
Code:
# dd if=/dev/urandom of=/etc/.safe bs=1M count=50

Um die Größe zu variieren, muss man die Parameter "bs=" und "count" entsprechend anpassen ( die Fausformel lautet dabei bs*count=Filegröße). Des Weiteren wird zur Erstellung des Files das /dev/urandom-Device benutzt, um das File mit zufällig gewählten Zeichen zu füllen. Dieser vorgang nimmmt zwar einige Zeit in Anspruch, ist aber weit mehr sicherer als die Verwendung des /dev/zero-Devices, welches das gesamte File mit Nullen ausfüllt und dementsprechend schneller ist.
Ein potenzieller Angreifer könnte nähmlich anhand der genauen Analyse des File fststellen, welche Blöcke bereits belegt sind (welche nicht mehr durch Nullen ausgefühlt sind), und dies könnte ihm wiederum mehr Informationen zukommen lassen als unbedingt notwendig.

Damit die Verschlüsselung funktioniert müssen die Module "cryptoloop" und "aes" geladen sein:
Code:
# modprobe cryptoloop;modprobe aes

(Um die Module immer - also auch nach einem Neustart - zur Verfügung zu haben, müssen diese in der Datei /etc/modules eingetragen werden.)

Jetzt verbinden wir die Datei safe.img als Loop-Device. Das Loopdevice ist für die Online-Verschlüsselung zuständig. Außerdem ermöglicht ein Loopdevice, eine Datei wie ein Device anzusprechen, also in unserem Fall, mountbar zu machen. Das muss nicht nur bei der ersten Anlage der Datei, sondern auch vor jedem späteren Zugriff darauf erfolgen:
Code:
# losetup -e aes /dev/loop0 /etc/.safe


Wichtig: Das Kennwort muss mindestens 8 Zeichen betragen, ansonsten wird es nicht angenommen. Außerdem würde ein Kennwort keinen Sinn machen. Also haltet euch am besten an die Regeln zum erstellen eines sicherren Kennworts.

Da das Loopdevice (das im übrigen auch unter /dev/loop/0 liegen könnte) verschlüsselt werden soll (-e aes) fragt losetup jetzt nach dem Passwort, mit dem /etc/.safe kodiert werden soll. Wichtig: Dies Passwort sollte man tunlichst nicht vergessen, da man ansonsten später nie mehr (und das heisst auch nie mehr) an seine Daten im Container gelangt *g*. Es sei den AES wird irgendwann geknackt;-)

Um Dateien in /etc/.safe abspeichern zu können, muss darauf ein Filesytem existieren. Ich nehme hier im Beispiel einfach reiserfs - das bietet sich unter Linux ja auch an:
Code:
# mkreiserfs /dev/loop0


Dieser Befehl darf natürlich nur bei der Neuanlage des Containers ausgeführt werden, da sonst das gleiche wie für Passwortvergesser gilt Very Happy. Ja gut, man hätte hier nachträglich wenigstens die Chance, wieder an die Daten zu kommen...

Jetzt gilt für den Container, wie für jeden anderen "Datenträger" auch:
Code:
# mkdir /mnt/crypt
# mount /dev/loop0 /mnt/crypt


Alle Dateien, die nun nach /mnt/crypt kopiert oder wahrscheinlicher verschoben werden, sind nun automatisch verschlüsselt. Natürlich kann man auch die zu verschlüsselnden Datei direkt auf dem Filesystem erstellen.
Code:
#vi vertraulich
Diese Datei ist vertraulich!


Damit der Einsatz des Containers seinen sinn erfüllt und nur root seine Dateien darauf verschlüsselt ablegen darf werden die Rechte noch entsprechend geändert:
Code:
#chmod go= /etc/.safe
#chown root -R /etc/.safe
#chmod go= -R /etc/.safe
#chmod go= /mnt/crypt


Um die Daten auf dem Verschlüsselten Filesystem vor einem unerlaubten Zugriff zu schützen, sollte man stets darauf achten, das Filesystem nur dann anzuhängen, wenn man Zugriff auf die sich darauf befindlichen Daten benötigt. Benutzt man keine Daten auf dem Filesystem, so sollte man dieses stets abhängen, um somit einen unerlaubten Zugriff gänzlich auszuschließen.

Möchte man den Container wieder schließen, reicht ein einfacher Unmount, sowie das Lösen von /etc/.safe vom Loop-Device:
Code:
# umount /mnt/crypt
# losetup -d /dev/loop0


Bei späterer Benutzung reicht es dann, die Datei mit
Code:
losetup -e aes /dev/loop0 /etc/.safe
wieder an ein Loopdevice zu binden, das Passwort einzugeben und danach zu mounten.

Um den Voragang des Ver- und Entschlüsselns zu verkürzen, schreiben wir uns ein kleines Shell-Script.

# cd /sbin
# vi encrypt

Code:

#!/bin/sh
# /sbin/encrypt
#
# Script zum Initialisieren des verschlüsselten Loopback-Filesystems
MOUNT=$(which mount)
LOSETUP=$(which losetup)

$LOSETUP -e aes /dev/loop0 /etc/.safe
$MOUNT  /dev/loop0 /mnt/crypt
echo "Crypto start."


# cd /sbin
# vi decrypt

Code:

#!/bin/sh
# /sbin/decrypt
#
# Script zum Deaktivieren des verschlüsselten Loopback-Filesystems
UMOUNT=$(which umount)
LOSETUP=$(which losetup)

$UMOUNT  /mnt/crypt
$LOSETUP -d /dev/loop0
echo "Crypto stop."

# chmod 700 encrypt
# chmod 700 decrypt


Von nun an lässt sich das verschlüsselte Loopback-Filesystem mit dem Kommando encrypt starten und mit decrypt wieder deaktivieren.


mfg duddits

_________________
Quidquid agis, prudenter agas et respice finem!

Jabber ID: duddits@amessage.info
Webseite: http://www.remoteshell-security.com
Weblog: http://blog.remoteshell-security.com
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Jabber ID
BeitragVerfasst am: 31.08.2006 17:12 Antworten mit Zitat
Cerox
Anmeldedatum: 31.12.2005
Beiträge: 782
Wohnort: Engelskirchen




Hi,

gibt es die Möglichkeit cryptoloop unter Debian nachzurüsten, ohne eine Neukompilierung des Kernels? Ich habe dieses Modul nämlich nicht und möchte meine Datenpartition verschlüsseln.

edit: http://www.pl-forum.de/t_system/loop-aes.html

Hab da was gefunden; Wenn ich es mal ausprobiet habe und es so funktioniert, schreibe ich es hier rein.

edit2:
Ich habe mich jetzt für TrueCrypt entschieden, welches mit Hilfe der Kernelsourcen ein Modul baut.
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
[tutor] Lokale Verschlüsselung
Foren-Übersicht » Linux und andere Unixe
Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.
Alle Zeiten sind GMT + 1 Stunde  
Seite 1 von 1  

  
  
 Neues Thema eröffnen  Neue Antwort erstellen  


Forensicherheit

Powered by phpBB © 2001-2004 phpBB Group
phpBB Style by Vjacheslav Trushkin
Deutsche Übersetzung von phpBB.de


remoteshell-security.com | Partner | Boardregeln | Impressum