IT & Engineering
Lemmacmd: Einfaches Tool zur Dateiverschlüsselung
Ab und zu müssen wir alle im Rahmen unserer Arbeit Dateien verschlüsseln. Es gibt verschiedene Gründe für die Verschlüsselung von Dateien: Vertrauliche Informationen müssen in ein Repository übertragen, Daten über ein unsicheres Medium gesendet oder Dateien auf einer Festplatte gespeichert werden, die strengere Zugriffskontrollen erfordern, als das Betriebssystem bietet.
Es gibt zwar eine Vielzahl von Optionen, aber die meisten davon sind umständlich, verwirrend oder – noch schlimmer – vermitteln ein falsches Gefühl der Sicherheit. GPG wird beispielsweise oft zur Verschlüsselung von Dateien empfohlen, enthält jedoch eine Reihe veralteter Chiffren, und die Benutzerfreundlichkeit war noch nie seine Stärke. OpenSSL bietet ein praktisches Befehlszeilentool namens „openssl enc“, das jedoch keinerlei authentifizierte Verschlüsselung unterstützt.
Mailgun hat ein einfaches Tool namens lemmacmd entwickelt, das im Hintergrund NaCl und PBKDF#2 nutzt, um kleine Dateien auf der Festplatte zu ver- und entschlüsseln. Dabei macht es vieles richtig:
- Einfach zu bedienen:
lemmacmd encrypt -in foo.txt -out foo.txt.enc - Es unterstützt sowohl Schlüssel als auch Passphrasen, sodass es automatisiert oder interaktiv genutzt werden kann.
- Wenn es mit einer Passphrase verwendet wird, kommt eine KDF (PBKDF#2) mit einer hohen Iterationsanzahl zum Einsatz: 524.288.
- Es verwendet eine authentifizierte Chiffre: Salsa 20 mit Poly1305 als Message Authentication Code (MAC) aus der NaCl-Bibliothek.
- Es ist eine kleine, statisch gelinkte 4-MB-Binärdatei, die überall abgelegt werden kann und sofort funktioniert.
- Es ist schnell: Die Verschlüsselung einer 10-MB-Datei dauert nur etwas länger als eine Sekunde.
- Es ist leicht zu überprüfen: Lemmacmd besteht aus nur 222 Zeilen, die Lemma-Bibliothek aus nur 365 Zeilen, und der eigentliche Krypto-Code von NaCl und PBKDF#2 umfasst nur 226 Zeilen.
Wenn Sie sich den Quellcode ansehen oder einen Beitrag leisten möchten, ist er über GitHub verfügbar ebenso wie die neueste Version.
Wie immer gilt: Wenn Sie auf Probleme (oder Sicherheitslücken) stoßen, kontaktieren Sie uns bitte über GitHub.