Benutzer-Werkzeuge

Webseiten-Werkzeuge


open:it:crypto

Kryptografie

Daten

Dateien

GnuPG = GNU Privacy Guard
PGP = Pretty Good Privacy

https://wiki.ubuntuusers.de/GnuPG/

Für das verschlüsseln wird ein Schlüsselpaar benötigt. Mit dem öffentlichen Schlüssel wird verschlüsselt, den kann jeder haben. So ist es kein Problem diesen auf der eigenen Webseite zu veröffentlichen. Mit dem privaten Schlüssel wird entschlüsselt, der muss geheim bleiben. Verschlüsselt ein Dritter mit dem öffentlichen Schlüssel, kann auch dieser die Datei nicht mehr ohne den privaten Schlüssel entschlüsseln. da er i.d.R. das Original besitzt, ist das auch nicht notwendig.

Installation

sudo apt-get install gnupg2

Eigene vorhandene Schlüssel auflisten

gpg2 --list-secret-keys
gpg2 -K

Öffentliche vorhandene (fremde) Schlüssel auflisten

gpg2 --list-keys
gpg2 -k

Schlüsselpaar erzeugen

gpg2 --full-gen-key 

Fingerprint anzeigen

gpg2 --fingerprint <ID oder Name des Schlüssels>

Öffentlichen Schlüssel exportieren

gpg -a --output gpg-key --export <Schlüssel-ID oder Name>
gpg -a --export <Schlüssel-ID oder Name> | tee gpg-key

Datei Verschlüsseln

gpg2 --encrypt -a --recipient <Name oder Key_Id> test.txt 

Datei Entschlüsseln

gpg2 --decrypt --output entschluesselt.txt test.txt.asc

Datei Signieren

gpg2 --detach-sig -a test.txt

Datei Signatur überprüfen

gpg2 --verify test.txt.asc

E-Mails

In diversen E-Mail-Programmen ist OpenPGP bereits enthalten und neue Schlüssel können direkt damit erstellt werden.
Der öffentliche Schlüssel wird an den Kommunikationspartner geschickt, der die von ihm verfassten E-Mails damit verschlüsselt. (Nur) der Besitzer des privaten Schlüssels kann die E-Mail dann wieder entschlüsseln.
Lesen klappt nur mit einem System, auf dem der Schlüssel hinterlegt ist. Ist der private Schlüssel nur auf dem Notebook hinterlegt, kann die selbe E-Mail z.B. auf dem Handy nicht entschlüsselt werden. Der private Schlüssel muss dann auch dort hinterlegt werden.

Thunderbird

Schlüsselpaar erzeugen:
Extras → OpenPGP-Schlüssel verwalten → erzeugen → neues Schlüsselpaar.

Beim Einrichten von OpenPGP muss bei Thunderbird die Anwendung des privaten Schlüssels in den Konten-Einstellungen unter Ende-zu-Ende-Verschlüsselung aktiviert werden.

Partitionen

Handelt es sich um die Systempartition, muss dies bereits während der Installation des OS erfolgen.
Achtung: Muss ein Server mit verschlüsseltem System neu gestartet werden, dann kann man dies nicht aus der Ferne durchführen. Das Passwort muss lokal, vor Ort eingegeben werden!!!
Siehe auch Installation Debian, Partitionierung.
Option: System und Daten trennen und nur Datenbereiche verschlüsseln, dann lässt sich das auch aus der Ferne realiseren. Hierzu kann z.B. Veracrypt genutzt werden.

Partitionen anzeigen

lsblk

Speicherplätze anzeigen

df -h

https://wiki.ubuntuusers.de/LUKS/

Mit cryptsetup (LVM-LUKS)
/dev/nvme0n1p3 = verschlüsselte Partition.
Anzeige der Header-Information:

sudo cryptsetup luksDump /dev/nvme0n1p3

Anzeige Status:

sudo cryptsetup status /dev/nvme0n1p3_crypt

Passwort: Bis zu 8 Passwörter/Slots möglich (Keyslot 0 bis 7) / Vor dem Löschen immer erst neues anlegen
Neues Passwort/Slot anlegen

sudo cryptsetup luksAddKey /dev/nvme0n1p3

Passwort/Slot löschen <SLOT> = 0 bis 7

sudo cryptsetup luksKillSlot /dev/nvme0n1p3 <SLOT>

Container & Laufwerke

Veracrypt
Hier Installation und Befehle über Konsole.
Beispielhaft für ein verschlüsseltes und am Server angeschlossenes USB-Speichermedium.

https://veracrypt.fr/en/
https://github.com/arcanecode/VeraCrypt-CommandLine-Examples/blob/main/Linux/post.md

Download Programm

wget https://launchpad.net/veracrypt/trunk/1.25.9/+download/veracrypt-console-1.25.9-Debian-11-amd64.deb

Versionsnummer entsprechend der aktuellen bzw. verwendeten Version anpassen.
Installation

sudo apt install ./veracrypt-console-1.25.9-Debian-11-amd64.deb

Anzeige der Speichermedien

lsblk
df -h

Einhängen

veracrypt --text --mount /dev/<SDB> /<ZIELPFAD>/ --password <PASSWORD> --pim 0 --keyfiles "" --protect-hidden no --slot 1 --verbose

Anpassen:
<SDB> Ort der Festplatte → Abfrage über „lsblk“
<ZIELPFAD> (existierendes) Verzeichnis
<PASSWORD>

Aushängen

sudo veracrypt --text --dismount --slot 1

Anzeige gemounteter Volumen

sudo veracrypt --text --list

Auto-Mount

Soll eine Partition oder eine Container-Datei automatisch nach dem Einloggen eingebunden werden, dann muss hierfür u.a. das Passwort auf dem PC hinterlegt werden. Wenn dies in einem nicht geschützten Bereich erfolgt, dann ist das grundsätzlich problematisch, da auch ein Angreifer, der im Besitz des Gerätes ist, das Passwort auf der Festplatte finden kann. Ist die Systemplatte geschützt, Passworteingabe bereits beim Booten des Rechners, kann das Passwort in diesem Bereich geschützt abgelegt werden. Andersfalls macht das automatische Einbinden wenig Sinn, wenn ein Angreifer auch auf das Passwort eines (dann nur noch gering) geschützten Bereiches zufgreifen kann.

Damit Veracrypt Festplatten beim starten automatisch mounten kann, (beliebige) Datei, wie o.a. in einem geschützten Bereich, anlegen. Hier wird Device sda eingebunden.

sudo nano /secureplace/decrypt.sh
#!/bin/bash
sudo veracrypt -t /dev/sda /mnt/xyz --non-interactive -p <PASSWORD>

<PASSWORD> ersetzen mit dem echten Passwort

Datei /etc/fuse.conf editieren:

sudo nano /etc/fuse.conf
mount_max = 1000		| das # davor entfernen
user_allow_other		| das # davor entfernen

<USER> (Name ändern) zur Gruppe users hinzufügen

sudo usermod -a -G users <USER>

Datei /etc/sudoers editieren (am Ende einfügen):

sudo visudo
%users  ALL=(root) NOPASSWD: /usr/bin/veracrypt

Automatisch beim Starten über /etc/crontab ausführen

sudo nano /etc/crontab
@reboot <USER>      /secureplace/decrypt.sh

am Ende einfügen, Pfad s.o., und <USER> anpassen

Datenübertragung

SSH

Secure Shell oder SSH bezeichnet ein kryptographisches Netzwerkprotokoll für den sicheren Betrieb von Netzwerkdiensten über ungesicherte Netzwerke.
Siehe SSH-Verbindungen.

VPN

Virtual Private Network (deutsch „virtuelles privates Netzwerk“; kurz: VPN) bezeichnet eine Netzwerkverbindung, die von Unbeteiligten nicht einsehbar ist.
Siehe WireGuard - VPN-Server

TLS/SSL

Transport Layer Security (TLS, englisch für „Transportschichtsicherheit“), auch bekannt unter der Vorgängerbezeichnung Secure Sockets Layer (SSL), ist ein Verschlüsselungsprotokoll zur sicheren Datenübertragung im Internet.
Siehe SSL-Verbindung mit Apache Web-Server

SFTP/FTP

SFTP: SSH File Transfer Protocol bzw. Secure File Transfer Protocol, ein Netzwerkprotokoll
FTP: File Transfer Protocol ohne Verschlüsselung & Signatur.
Siehe FTP-Zugang

Diskussion

Geben Sie Ihren Kommentar ein. Wiki-Syntax ist zugelassen:
C J B J P
 
open/it/crypto.txt · Zuletzt geändert: 2024/05/16 14:51 von Kai