Sicherheit und Verschlüsselung
Sichere Kommunikation, Geheimnisse bewahren und Identitäten prüfen sind der Menschheit seit jeher wichtig. Bereits in Mesopotamien wurde vor über 3500 Jahren Verschlüsselung eingesetzt.
In Kriegszeiten wird sie noch bedeutender: Spartaner nutzten Transpositions‑Chiffren, römische Soldaten Passwortsysteme, und die Deutschen setzten im Zweiten Weltkrieg stark auf Kryptografie – was auch die Kryptoanalyse vorantrieb.
Sicherheit und Privatsphäre gehören zu meinen Lieblingsthemen, besonders mit Bezug zur Kryptografie:
- Informatik: symmetrische/öffentliche Schlüsselverfahren, Hashfunktionen, Kryptoanalyse, deniable encryption, Steganografie
- Mathematik: Diskrete Mathematik, Lineare Algebra, Gruppentheorie
- Geschichte: alte Chiffren, militärische Nutzung
- Soziologie: gesellschaftliche/politische Debatten und Gesetze wie die britische RIPA
Hier streife ich Methoden zum Verschlüsseln von Nachrichten/Dateien mit Tools und Algorithmen, die ich nutze und empfehle. Details, Benchmarks etc. findest du in Büchern und Spezialseiten.
Dateiverschlüsselung
Vim
Nicht sicher! Siehe https://dgl.cx/2014/10/vim-blowfish.
Dateien verschlüsseln
ROT13
Vim‑Kommando
g?[Bewegung]wendet ROT13 auf den Bereich an. Kodierung = Dekodierung.Spielerisch nützlich, nicht zur Sicherung.
Beispiel (Antwort ist ROT13):
P: Por que tem uma cama elástica no polo norte? E: Cnen b hefb CBYNE!Zurückwandeln (
2Gg?$oder:2 norm! g?$):P: Por que tem uma cama elástica no polo norte? R: Para o urso POLAR!Alternativ
trfür ganze Dateien:tr a-zA-Z n-za-mN-ZA-M.Bruce‑Schneier‑Easter‑Egg von schneierfacts.com:
echo "Vs lbh nfxrq Oehpr Fpuarvre gb qrpelcg guvf, \ ur'q pehfu lbhe fxhyy jvgu uvf ynhtu." | tr a-zA-Z n-za-mN-ZA-MPer CLI mit
-x:vim -x segredo.txtPasswort eingeben; gilt für neue und bestehende Dateien.
:Xim Editor – entspricht-x.
Passwort ändern
vim +X segredo.txt
Passwort entfernen
Im Vim:
:set key=
Algorithmus wechseln
Zwei symmetrische Verfahren:
- pkzip – schwach, nicht nutzen:
:setlocal cryptmethod=zip - Blowfish – empfohlen:
:setlocal cm=blowfish
cm ist Kurzform für cryptmethod.
Gnu Privacy Guard (GPG)
Vim bietet nur zwei (eher schwächere) symmetrische Verfahren. Für sichere Kommunikation mit Dritten ist Asymmetrie nötig: mit der Public Key von Bob kann Alice das Geheimnis verschicken; nur Bob kann mit seiner Private Key entschlüsseln.
GPG unterstützt mehrere asymmetrische, zahlreiche symmetrische Algorithmen, Hashes und Kompression.
Verfügbare Algorithmen siehst du mit:
gpg --version
Asymmetrische Kryptografie
Schlüsselpaar erzeugen (z. B. RSA 2048/4096) und starke Passphrase wählen.
Public Key ASCII‑Export:
gpg --armor --output juliopub.asc --export julio@juliobs.com
Public Keys teilen/importieren:
gpg --import < alice.asc
Authentizität via Fingerprint prüfen (gpg --fingerprint).
Private Key importieren (Multi‑Gerät/Restore/Shared):
gpg --allow-secret-key-import --import private_key.asc
Datei verschlüsseln:
gpg --encrypt --recipient julio@juliobs.com segredo.txt
gpg --encrypt --armor --recipient julio@juliobs.com segredo.txt
Ergebnis: Binär *.gpg oder ASCII *.asc (E‑Mail‑freundlich, aber größer).
Symmetrische Kryptografie
Standard AES‑128:
gpg --symmetric lol.tt
AES‑256:
gpg --cipher-algo AES256 --symmetric segredo.txt
Hybrid, Entschlüsseln und GUIs
Entschlüsseln:
gpg --output arquivo_decriptado.txt --decrypt segredo.txt.gpg
GUIs: Seahorse (sudo pacman -S seahorse), Kgpg.
Vim‑Plugin vim-gnupg vereinfacht .gpg‑Dateien.
OpenSSL
openssl aes-256-cbc -salt -in segredo.txt -out segredo.aes
openssl aes-256-cbc -d -salt -in segredo.aes -out segredo.txt
Mcrypt
sudo pacman -S mcrypt
mcrypt -a rijndael-128 segredo.txt
mcrypt -d segredo.txt.nc
7zip
7z a -p -mem=AES256 -tzip segredo.7z segredo.txt
7z l -slt segredo.7z | grep Method
Implementierungen sind nicht kompatibel: Mit OpenSSL verschlüsselt ≠ mit GPG entschlüsselbar usw.
Passwort‑Cracking
Tools wie John the Ripper und Ophcrack helfen bei Wörterbuch/Brute Force.
Beispiel: macOS‑Sparsebundle‑Hash extrahieren und mit Wörterbuch angreifen:
dmg2john segredo.sparseimage > segredo.txt
perl -lwe "print for glob '{5,7,123,321,}{Palavra1,Palavra2,Palavra3}-{A,B,C}'" > wordlist.txt
john --fork=4 --wordlist=wordlist.txt segredo.txt
john --show segredo.txt
VeraCrypt
(Abschnitt ergänzt am 26.01.2019)
VeraCrypt (TrueCrypt‑Fork) ist mein Favorit für plattformübergreifende Container/Partitionen (Linux/Windows/macOS). Algorithmen: AES, Serpent, Twofish, Camellia, Kuznyechik (auch Kombinationen); Hashes: SHA‑256/512, Streebog, Whirlpool. Hidden Volumes ermöglichen plausible Abstreitbarkeit.
Für Windows‑Kompatibilität empfehle ich NTFS (mit Journaling), sonst exFAT.
Mount auf macOS:
/Applications/VeraCrypt.app/Contents/MacOS/VeraCrypt --text --keyfiles="" --pim="0" --protect-hidden="no" /dev/disk3s5 /Volumes/Dev
Unmount:
/Applications/VeraCrypt.app/Contents/MacOS/VeraCrypt --dismount /dev/disk3s5
Links
- http://arstechnica.com/security/2012/08/passwords-under-assault/
- http://irtfweb.ifa.hawaii.edu/~lockhart/gpg/gpg-cs.html
- http://sleepyhead.de/howto/?href=crypt
- http://vim.wikia.com/wiki/Encryption
- http://www.activism.net/cypherpunk/manifesto.html
- http://www.dewinter.com/gnupg_howto/english/GPGMiniHowto.html
- http://www.gnupg.org/gph/en/manual.html
- http://www.lockdown.co.uk/?pg=combi
- http://www.madboa.com/geek/gpg-quickstart/
- http://www.philzimmermann.com/EN/essays/WhyIWrotePGP.html
- http://www.theregister.co.uk/2009/11/24/ripa_jfl/
- http://www.theregister.co.uk/2010/06/28/brazil_banker_crypto_lock_out/
- http://www.wired.com/gadgetlab/2012/11/ff-mat-honan-password-hacker
- http://www.wirelessbrasil.org/wirelessbr/colaboradores/leonardo_vilela/tutorial_pgp.html
- https://en.wikipedia.org/wiki/Password
- https://wiki.archlinux.org/index.php/System_Encryption_with_LUKS_for_dm-crypt
- https://wiki.archlinux.org/index.php/Truecrypt
- Defcon: http://youtu.be/0WPny7wk960