Skip to main content

GPG - Sicheren Schlüssel erstellen und Ordner verschlüsseln

GPG maximal hart: Schlüssel erstellen & kompletten Ordner sicher verschlüsseln

Warum diese Variante? Wir setzen auf ECC/Curve25519 (Ed25519/X25519), bevorzugen AES-256 und SHA-512, nutzen,nutzen – wo möglich,glich – AEAD/OCB (authentifizierte Verschlüsselung) und verstecken Dateinamen,Dateinamen indemvia wirArchivierung. erstSo archivierenminimierst du Angriffsfläche und dann verschlüsseln. Das ergibt ein robustes Setup mit wenig Angriffsfläche.Metadaten-Leaks.

0) Vorbereitungen & Umgebung härten

# Moderne GnuPG-Version sicherstellen (2.2+ gut, 2.4+/2.5+ besser):
gpg --version

# Terminal-Integration, damit die Passphrase-Abfrage sauber ist:
export GPG_TTY=$(tty)

# Schreibrechte streng:
umask 077
mkdir -p ~/.gnupg && chmod 700 ~/.gnupg
Side Fact: umask 077 sorgt dafür, dass neu erzeugte Dateien/Backups standardmäßig nur für dich lesbar sind.

1) Sehr starken OpenPGP-Schlüssel erzeugen (ECC/Curve25519)

Nun musst du folgenden Befehl eingeben: Wirgpg nutzen--expert den--full-generate-key Experten-Dialog, wählenim Dialog „ECC und ECC“ wählen und dann Curve25519. Das erzeugt einenErgebnis: Ed25519-Signierschlüssel plus+ X25519-(cv25519)-Verschlüsselungs-Subkey – kurz,kompakt, schnell, sehr stark.
gpg --expert --full-generate-key
# Im Dialog:
#   Typ: (9) ECC und ECC  →  Kurve: Curve25519
#   Ablaufdatum: z.B. 2y (später verlängerbar)
#   Name/E-Mail setzen
#   lange, zufällige Passphrase vergeben
Side Fact: Diese Wahl ist Best-Practice; sie liefert moderne Sicherheit mit kleinen SchlüsselnPractice und ist breit unterstützt.

1.1) Fingerprint notieren & RevocationWiderruf vorbereiten
# Schlüssel sichten:
gpg --list-keys
gpg --fingerprint "Dein Name"

# Sofort ein Widerrufszertifikat erzeugen (offline aufbewahren!):
gpg --output revoke.asc --gen-revoke "Dein Name"
Side Fact: Das Widerrufszertifikat ist deine Notbremse,Notbremse fallsbei du den privaten Schlüssel verlierst oder kompromittiert siehst.Verlust/Kompromittierung.

2) GPG-Konfiguration hart setzen (Algorithmen & Leaks minimieren)

Jetzt trägst du starke Defaults ein – sinngemäß unser „--verysecure, denn einen echten(den Schalter mit diesem Namen gibt es nicht;nicht); wir kombinieren geprüfte Optionen,Optionen diefür GnuPGmaximale die sichersten Verfahren wählen lassen.Sicherheit.
# ~/.gnupg/gpg.conf  (neu anlegen, falls nicht vorhanden)
# -- bevorzugte Ciphers/Hashes (wir priorisieren AES-256 & SHA-512):
personal-cipher-preferences AES256 AES192 AES
personal-digest-preferences SHA512 SHA384 SHA256
cert-digest-algo SHA512
# Ausgehende ASCII-Armor-Banner minimieren:
no-emit-version
no-comments
# Optional: Empfänger-IDs verbergen (Anonymisierung der Empfänger)Anonymisierung):
# Achtung: kann Decrypt bei vielen Schlüsseln etwas verlangsamen.
throw-keyids
# Optional (wenn keine Alt-Clients beteiligt):Optional: AEAD/OCB erzwingen.erzwingen (moderne, authentifizierte Verschlüsselung):
# Kann die Integrität zusätzlich absichern; siehe Kompatibilitätshinweis weiter unten.
# (Alternativ direkt auf dervia CLI: --force-ocb  )(Alias #--force-aead, Endeaber gpg.conf--force-ocb ist aktuell bevorzugt)
Side Fact: throw-keyids bzw. /--hidden-recipient versteckt die Ziel-Key-IDs im Ciphertext, was gegen Traffic-Analyse hilft;IDs; no-emit-version spart banaletriviale Fingerprinting-Infos ein.

2.1) Agent-Caching abstellen (höchstestreng, lokaleaber Disziplin)
sicher)
# ~/.gnupg/gpg-agent.conf
no-allow-external-cache
default-cache-ttl 0
max-cache-ttl 0
pinentry-timeout 0
# Ende gpg-agent.conf

# Agent neu laden:
gpgconf --reload gpg-agent
Hinweis: Ohne Cache ist es lästig,stiger, aber am sichersten – jede Nutzung verlangterfordert die Passphrase erneut.Passphrase.

3) Ordner soverschlüsseln verschlüsseln, dass& Dateinamen verborgenverbergen bleiben

(deterministisches Tar → GPG)
Nun musst du folgenden Befehl eingeben: Wir packen dendeterministisch, Ordnerglätten deterministisch in ein Tar-ArchivMetadaten und verschlüsseln den Datenstrom direkt – Dateinamen verschwinden, Metadaten werden geglättet, und du bekommst eineErgebnis: .tar.gpg-Datei..
# Variablen
ORDNER="mein_geheimer_ordner"
EMPFAENGER="Dein Name <you@example.com>"   # oder: 40-stelliger Fingerprint
OUT="mein_geheimer_ordner.tar.gpg"

# Maximale Härte (mit AEAD/OCB, GnuPG 2.3/4+/2.4+5+):
tar --sort=name \
    --mtime='UTC 1970-01-01' \
    --owner=0 --group=0 --numeric-owner \
    -C "$(dirname "$ORDNER")" -cf - "$(basename "$ORDNER")" \
| gpg --encrypt \
      --recipient "$EMPFAENGER" \
      --cipher-algo AES256 \
      --force-ocb \
      --output "$OUT"

# Kompatibilitätsmodus (falls AEAD/OCB bei Gegenstellen Probleme macht):
# identisch, nur ohne --force-ocb
Side Fact: tar → gpg schützt nicht nur die Inhalte, sondern auch Struktur und& Dateinamen; --force-ocb aktiviert eine moderne AEAD-Betriebsart,Sicherung dieder Integrität und Authentizität des Datenstroms pro Chunk absichert.t.

3.1) Optional: Empfänger verschleiern & Banner weglassen
# Anonymisierte Empfänger (versteckt deine/n Key-ID):nger:
#   ... | gpg --encrypt -R "$EMPFAENGER" --cipher-algo AES256 --force-ocb -o "$OUT"
# oder global via gpg.conf (throw-keyids/no-emit-version), s. Abschnitt 2.

3.2) Erfolg prüfen (ohne zu entschlüsseln)
gpg --list-packets "$OUT" | sed -n '1,30p'
# Du siehst Paket-/Algo-Infos und (falls nicht versteckt) Empfänger-IDs.

3.3) Klartext beseitigen (vorsichtig,mit SSD!)
Bedacht auf SSD)
# Auf klassischen HDDs:HDD:
shred -vzun 3 -r -- "$ORDNER"
# AufSSD/CoW-FS SSDs ist(btrfs,zfs): shred nicht zuverläunzuverlässig → besser Vollverschlüsselung (LUKS) einsetzen.nutzen.
Wichtig: Auf SSD/CoW-FSSSDs (btrfs,sichert zfs) taugt shred nicht; sichere dich durch Voll-Disk-Verschlüsselung abdie undPersistenz-Reste lagerebesser Geheimnisseals nur dort.Datei-Shredding.

4) Entschlüsseln & auspacken – bewusst zweistufig

gpg --output ordner.tar --decrypt mein_geheimer_ordner.tar.gpg
tar -xf ordner.tar
Side Fact: GPGHybrid: ist immer hybrid: Ein ZufallssitzungsschlüsselZufalls-Session-Key (z. B. AES-256) verschlüsselt die Daten; dieser wird asymmetrisch für deinen Public Key verpackt.

5) Alternative mit Bordmittel:Alternative: gpgtar (kompaktArchivieren &+ sicher)

Verschlüsseln in einem)
Nun musst du folgenden Befehl eingeben: Wenngpgtar duerledigt es gernbeides in einem Werkzeug hast, erledigt gpgtar das Archivieren + Verschlüsseln in einem Rutsch.Schritt.
# Erzeugt direkt einDirekt verschlüsseltes Archiv (Dateinamen verborgen):
gpgtar --encrypt --recipient "$EMPFAENGER" --output geheim.gpg "$ORDNER"

# Entschlüsseln & auspacken:
gpgtar --decrypt --output entpackt "$PWD/geheim.gpg"
Side Fact: gpgtar ist praktisch ein „gpg-isiertes“ tar und nutzt intern die gleichen OpenPGP-Mechanismen.

6) Zusätzliche Härtungsschrittertung (wenn „maximal“ wirklich maximal sein soll)

  • Hardware-Token (YubiKey/Smartcard): Private Keys aufs Token migrieren, sodass dasToken; Schlüsselmaterial den Rechnerverlässt nie verlässt.den Nutze gpg --card-edit / gpg-card.Rechner.
  • Primärschlüssel offline halten:offline: Mit Subkeys arbeiten,arbeiten; Primärschlüssel nur offline (z. B. in einem Safe-USB).sichern.
  • Passphrase-Qualität: Lange Diceware-Phrasen (6–8+ Diceware-rter)rter oder 20–30+ Zufallszeichenzufällige Zeichen aus einem Passwort-Manager.
  • Key-Rotation & Ablauf: AblaufdatumAblauf setzen (1–2 Jahre) und regelmäßig verlängern/rotieren; Widerrufszertifikat prüfen.testen.
  • Kein unnötiges Armor-Gebimmel: ASCII-Armor nur,nur wennbei duBedarf: Inhalte per Textkanal überträgst; sonst binär lassen.Binär-Workflows Armor weglassen.

7) Schnellreferenz (kopieren, anpassen, fertig)
# Schlüssel erstellen (interaktiv, Curve25519):
gpg --expert --full-generate-key

# Ordner → deterministisches Tar → GPG (mit AEAD/OCB):
tar --sort=name --mtime='UTC 1970-01-01' --owner=0 --group=0 --numeric-owner \
  -C "$(dirname "$ORDNER")" -cf - "$(basename "$ORDNER")" \
| gpg --encrypt --recipient "$EMPFAENGER" --cipher-algo AES256 --force-ocb -o "$OUT"

# Entschlüsseln:
gpg -o ordner.tar -d "$OUT" && tar -xf ordner.tar

# gpgtar-Variante:
gpgtar --encrypt -r "$EMPFAENGER" -o geheim.gpg "$ORDNER"
gpgtar --decrypt -o entpackt geheim.gpg
 Kompatibilitätsnotiz: FallsWenn eine Gegenstelle mit sehr altenalt OpenPGP-Stacks Probleme hat, entferneist, --force-ocb weglassen (dann klassisches MDC statt AEAD). Für lokale Backups bleib bei OCB.