18ae28f918
Chemenu kompiliert Rohnotizen zu einem verlinkten, quellengebundenen Wiki: raw/ -> types/ + tools/ -> kb/ -> reports/. Was mechanisch ist, macht tools/wikitool; was Urteil braucht, macht ein Agent unter Contracts, deren Grenzen in Code durchgesetzt sind statt im Prompt. Dieser Commit ist der Startpunkt der oeffentlichen Historie. Die vorherige Entwicklung fand in einer privaten Instanz statt und ist nicht Teil dieses Repositorys; ihre Erzaehlung steht vollstaendig in CHANGES.md, das mit 44 Eintraegen von 0.1.0 bis 2.1.0 erhalten geblieben ist. Der mitgelieferte Korpus ist ein Testbett und eine Demo: 170 Seiten ueber den Stack selbst - Gates, Lint, Versionierung, Suche, das Wiki-Muster. Er dokumentiert das Werkzeug mit den eigenen Mitteln des Werkzeugs. Lizenz: AGPL-3.0 fuer den Stack (tools/, types/), CC-BY-4.0 fuer die Inhalte. Die Grenze zwischen beiden ist der Dateiplan, den dist export berechnet - siehe NOTICE.
158 lines
5.8 KiB
Markdown
158 lines
5.8 KiB
Markdown
---
|
|
type: types/entity.md
|
|
entity_type: technology
|
|
tags: [encryption, storage, security, dm-crypt, luke, linux]
|
|
created: 2026-07-31
|
|
modified: 2026-08-29
|
|
related: [Arch Linux, LVM, SSD TRIM, AUR, makepkg]
|
|
sources: [Source - Arch Linux Cheat Sheet]
|
|
confidence: 0.90
|
|
confidence_base: 0.90
|
|
provenance: sourced
|
|
summary: Schutz ruhender Daten über das Kernelmodul dm-crypt und die LUKS-Schlüsselverwaltung zur transparenten Verschlüsselung von Speichergeräten unter Linux.
|
|
---
|
|
# Disk Encryption
|
|
|
|
**Typ:** technology
|
|
|
|
## Beschreibung
|
|
|
|
Disk-Verschlüsselung bietet Schutz ruhender Daten auf Speichergeräten durch kryptographische Algorithmen. Unter Linux wird dies hauptsächlich durch das **dm-crypt** Kernel-Modul kombiniert mit **LUKS** (Linux Unified Key Setup) zur Schlüsselverwaltung implementiert. Diese Technologie schützt sensible Daten auf SSDs und HDDs vor unbefugtem Zugriff, besonders wichtig für Laptops, externe Laufwerke und Server mit physischen Zugriffsproblemen.
|
|
|
|
## Kerndaten
|
|
|
|
- **Zweck:** Verschlüsselung gesamter Festplatte und Partitionen
|
|
- **Status:** Aktiv, weit verbreitet
|
|
- **Kernel-Modul:** dm-crypt (device-mapper Crypto Target)
|
|
- **Schlüsselverwaltung:** LUKS (Linux Unified Key Setup)
|
|
- **Verschlüsselungsalgorithmen:** AES, XTS, Serpent, Twofish, Camellia
|
|
- **Hash-Algorithmen:** SHA-256, SHA-512, SHA-1 (Legacy)
|
|
|
|
## Komponenten
|
|
|
|
### dm-crypt
|
|
Das device-mapper Crypto Target, das transparente Verschlüsselung von Block-Geräten bietet. Es arbeitet auf der Block-Geräte-Ebene und verschlüsselt/entschlüsselt Daten im laufenden Betrieb.
|
|
|
|
**Hauptmerkmale:**
|
|
- Transparente Verschlüsselung/Entschlüsselung
|
|
- Unterstützt mehrere Verschlüsselungsmodi (ECB, CBC, XTS usw.)
|
|
- Funktioniert mit beliebigen Block-Geräten
|
|
- Kann gesamte Festplatten oder einzelne Partitionen verschlüsseln
|
|
|
|
### LUKS (Linux Unified Key Setup)
|
|
Eine Spezifikation für Disk-Verschlüsselung, die eine standardisierte Methode zur Verwaltung von Verschlüsselungsschlüsseln bietet. LUKS fügt einen Header zum verschlüsselten Gerät hinzu, das die Schlüssel-Slots, Metadaten und Checksummen enthält.
|
|
|
|
**Hauptmerkmale:**
|
|
- Mehrere Schlüssel-Slots (bis zu 8 in LUKS1, mehr in LUKS2)
|
|
- Schlüssel-Slot-Verwaltung (hinzufügen, entfernen, Passphrasen ändern)
|
|
- Header-Backup und -Wiederherstellung
|
|
- Unterstützung für Schlüsseldateien
|
|
- Anti-Forensik-Funktionen (LUKS2)
|
|
|
|
## Einrichtung und Konfiguration
|
|
|
|
### Erstellen einer verschlüsselten Partition
|
|
|
|
```bash
|
|
# Erstelle LUKS-Container
|
|
cryptsetup luksFormat /dev/sdX1
|
|
|
|
# Öffne (entsperre) die verschlüsselte Partition
|
|
cryptsetup open /dev/sdX1 crypted
|
|
|
|
# Erstelle Dateisystem auf entschlüsseltem Gerät
|
|
mkfs.ext4 /dev/mapper/crypted
|
|
|
|
# Hänge das Dateisystem ein
|
|
mount /dev/mapper/crypted /mnt
|
|
```
|
|
|
|
### Ändern der Größe verschlüsselter Partitionen
|
|
|
|
Bei Verwendung von LUKS mit LVM (häufige Konfiguration) ist der Arbeitsablauf zum Größenändern:
|
|
|
|
1. **Ändere die Größe des zugrunde liegenden Block-Geräts** (z.B. VM-Festplatte erweitern)
|
|
2. **Ändere die Größe des LUKS-Containers**
|
|
3. **Ändere die Größe des LVM Physical Volume**
|
|
4. **Ändere die Größe des LVM Logical Volume**
|
|
5. **Ändere die Größe des Dateisystems**
|
|
|
|
**Beispiel für ESXi/SCSI:**
|
|
```bash
|
|
# SCSI-Bus neu scannen, um erweiterte Festplatte zu sehen
|
|
echo "1" > /sys/class/block/sdb/device/rescan
|
|
|
|
# Prüfe Festplattengröße
|
|
fdisk -l /dev/xyz
|
|
|
|
# Ändere Größe des LUKS-Containers
|
|
cryptsetup status crypted
|
|
cryptsetup resize crypted
|
|
cryptsetup status crypted
|
|
|
|
# Ändere Größe des LVM PV (siehe [[LVM]])
|
|
pvresize /dev/mapper/crypted
|
|
```
|
|
|
|
## SSD-TRIM-Unterstützung
|
|
|
|
SSD TRIM ermöglicht es dem Betriebssystem, der SSD mitzuteilen, welche Blöcke nicht mehr in Gebrauch sind und verbessert damit Leistung und Haltbarkeit. Bei verschlüsselten Festplatten erfordert TRIM-Unterstützung eine sorgfältige Konfiguration.
|
|
|
|
### Aktivieren von TRIM auf verschlüsselten SSDs
|
|
|
|
**Wichtig:** Das Zulassen von discard (TRIM) auf verschlüsselten Geräten kann Informationen über verwendete Blöcke verraten. Bedenke die Sicherheitsauswirkungen.
|
|
|
|
**Optionen:**
|
|
1. **Erlaube discard auf LUKS-Ebene:**
|
|
```bash
|
|
cryptsetup reencrypt --encrypt --reduce-device-size 16M --allow-discards /dev/sdX
|
|
```
|
|
|
|
2. **Verwende fstrim auf gemountettem Dateisystem:**
|
|
```bash
|
|
fstrim /mount/point
|
|
```
|
|
|
|
3. **Konfiguriere periodisches TRIM:**
|
|
```bash
|
|
# Aktiviere systemd-Timer
|
|
systemctl enable fstrim.timer
|
|
systemctl start fstrim.timer
|
|
```
|
|
|
|
**Referenz:** https://wiki.archlinux.org/title/Dm-crypt/Specialties#Discard/TRIM_support_for_solid_state_drives_(SSD)
|
|
|
|
## Beziehungen
|
|
|
|
- **Verwendet mit:** [[Arch Linux]] (häufige Distribution für Verschlüsselung)
|
|
- **Ergänzt:** [[LVM]] (Logical Volume Manager)
|
|
- **Verbessert durch:** [[SSD TRIM]] (Leistungsoptimierung)
|
|
und anderen Systemen
|
|
Ansatz
|
|
|
|
## Sicherheitsaspekte
|
|
|
|
### Best Practices
|
|
|
|
1. **Verwende starke Passphrasen:** Lange, komplexe Passphrasen mit hoher Entropie
|
|
2. **Backup LUKS-Header:** `cryptsetup luksHeaderBackup /dev/sdX1 --header-backup-file header.img`
|
|
3. **Mehrere Schlüssel-Slots:** Speichere Backup-Schlüssel in separaten Slots
|
|
4. **Schlüsseldateien:** Erwäge Schlüsseldateien für headless-Systeme
|
|
5. **Vermeide discard:** Für maximale Sicherheit, deaktiviere TRIM auf verschlüsselten Geräten
|
|
|
|
### Einschränkungen
|
|
|
|
- **Schützt nicht vor:** Evil-Maid-Angriffen, Keyloggern, Schulter-Blicken
|
|
- **Leistungs-Overhead:** Verschlüsselung/Entschlüsselung fügt CPU-Overhead hinzu (typischerweise 5-10%)
|
|
- **Wiederherstellung:** Verlorene Passphrase = verlorene Daten (kein Hintertür)
|
|
|
|
## Siehe auch
|
|
|
|
- [[LVM]] - Logical Volume Manager
|
|
- [[SSD TRIM]] - TRIM-Optimierung für SSDs
|
|
- [[Arch Linux]] - Distribution mit hervorragender Verschlüsselungsunterstützung
|
|
- [[Source - Arch Linux Cheat Sheet]]
|
|
- https://wiki.archlinux.org/title/Dm-crypt
|
|
- https://wiki.archlinux.org/title/LUKS
|
|
- https://gitlab.com/cryptsetup/cryptsetup
|