Howto: Simplecryt als command line tool
Nachdem ich kürzlich die Simplecrypt Bibliothek zusammen mit den Tools für die Nutzung an der Kommandozeile online gestellt habe will ich in diesem Artikel erklären, wie sie zu verwenden ist.
Voraussetzung für die Nutzung ist, dass JAVA 6 oder höher installiert ist. In der Zip Datei befinden sich die folgenden Dateien:
Simplecrypt.jar ist die eigentliche Bibliothek. Mit KeyGen.cmd können Schlüssel für Simplecrypt erstellt werden. Mit DeCrypt.cmd wird verschlüsselt und mit EnCrypt.cmd köönen mit simplecrypt verschlüsselte Dateien wieder entschlüsselt werden.
Die *.cmd Dateien enthalten den eigentlichen JAVA Aufruf und dienen dazu den jeweiligen Aufruf zu vereinfachen. Alle Kommandooptionen können mit –help abgerufen werden.
Zudem findet sich noch die Datei testSimplecryt.bat. Diese zeigt beispielhaft die Verwendung von Simplecrypt an der Kommandozeile. Zu diesem Beispiel gehören auch die Ordner src, dec, enc und key. Im Ordner src befinden sich 3 Beispieldateien, die von der Batch Datei verwendet werden. Die testSimplecrypt.bat generiert zuerst 2 unterschiedliche Schlüssel in den Ordner key. Dann werden die Dateien, die sich im Ordner src befinden, in den Ordner enc verschlüsselt und anschließend in den Ordner dec wieder entschlüsselt ausgegeben.
Die Verwendung von KeyGen.cmd
Die folgenden Optionen stehen zur Verfügung:
-type: Gibt den Schlüsseltyp an. Simplecrypt unterstützt ASCII und Binäre Schlüssel. KeyGen verwendet jedoch nur Binäre Schlüssel. Jedoch gibt es die Option diese direkt als Binärdatei zu speichern (Option FILE) oder in einer Bitmap Datei versteckt werden (Option IMAGE)
-phrase: Die größte Schwäche von Simplecrypt ist, dass es synchrone Schlüssel verwendet. Das heißt, das sowohl derjenige, der verschlüsselt als auch derjenige, der entschlüsselt denselben Schlüssel benötigen. Daher ist es sinnvoll den Schlüssel selbst zu Schützen. Dies kann mit dieser Option gemacht werden. Wird -phrase angegeben wird der Schlüssel durch eine beliebig lange Passphrase geschützt.
Wird dies mit den Optionen –type: und –in:GEN kombiniert ist der Schlüssel maximal geschützt.
-out Gibt den Namen und den Pfad der zu erstellenden Schlüsseldatei an. Wird die Option nicht angegeben wird der Schlüssel im aktuellen Verzeichnis unter dem Namen new.key erstellt.
-in: Wird nur benötigt, wenn -type:IMAGE gewählt ist.
Soll eine Zufallsbitmap generiert werden kann die Option GEN gewählt werden. Soll der Schlüssel in einer vorhandenen Bitmap versteckt werden, so muss hier Pfad und Name der Datei angegeben warden
-rotors: Die Rotoren definieren jeweils ein Verschlüsselungsalphabet. Nach jedem verschlüsselten Zeichen dreht sich der Rotor und ändert damit das Alphabet dynamisch. Wie bei der Enigma werden mehrere Rotoren in Reihe verwendet. Je mehr Rotoren verwendet werden umso grösser ist der Schlüsselraum (Verschlüsselungsstärke). Je weniger Rotoren verwendet werden umso schneller ist das Ver- bzw. Entschlüsseln. Der Default Wert für die Rotoren ist 3 und wird verwendet, wenn diese Option nicht angegeben wird.
-notches: Eine Notch (Kerbe) bestimmt an welcher Position sich der jeweils nächste Rotor mit dreht. Der minimale Wert ist 1. So war es beispielsweise bei der Enigma. Der maximale Wert ist 256, da die binären Rotoren von Simplecrypt 256 Positionen im Alphabet haben. Für einen guten Schlüssel sollte die Anzahl der Notches nicht zu klein sein, da die Perioden so leichter vorhersehbar sind, aber auch nicht zu hoch, da so die Perioden zu kurz werden. Außerdem ist darauf zu achten, dass keine Periodenverkürzungen auftreten. Daher sind Teiler von 256 zu vermeiden. Der Default Wert ist 77.
Der Aufruf um einen Schlüssel in einer Zufallsbitmap geschützt zu erstellen könnte also wie folgt aussehen:
CALL KeyGen.cmd -type:IMAGE -in:GEN -out:myKey.bmp -phrase:Mein sicheres Passwort6812
Die Verwendung von EnCrypt.cmd
Die folgenden Optionen stehen zur Verfügung:
-doctype: Simplecrypt kann für bestimmte Dateitypen nur den Inhalt verschlüsseln anstatt alle Daten. Dadurch entfallen mögliche strukturelle „Cribs“ für die Crytoanalytiker. Bisher implementiert sind jedoch nur die Dateitypen Windows Bitmap angegeben durch die Option BMP, PNG Image File (PNG) und Text Document (TXT). Sollen die Dateien komplett verschlüsselt werden oder handelt es sich um Simplecrypt unbekannte Dateitypen kann die Option GEN (Generic) verwendet werden.
-keytype: Der Typ des verwendeten Schlüssels (s. oben)
-phrase: Wenn der Schlüssel durch eine Passphrase geschützt ist: Die Passphrase.
-key: Name und Pfad der Schlüssel Datei
-in: Name und Pfad der zu verschlüsselnden Datei.
-out: Name und Pfad der Ausgabedatei. Wird die Option nicht angegeben, wird die Quelldatei mit dem Präfix enc_ verwendet.
Um eine Zip Datei zu verschlüsseln könnte der Aufruf also beispielsweise so aussehen:
CALL EnCrypt.cmd -doctype:GEN -keytype:IMAGE -key:myKey.bmp -in:sample.zip -phrase:Mein sicheres Passwort6812
Die Verwendung von DeCrypt.cmd
Die folgenden Optionen stehen zur Verfügung:
-doctype: Simplecrypt kann für bestimmte Dateitypen nur den Inhalt verschlüsseln anstatt alle Daten. (s. oben).
-keytype: Der Typ des verwendeten Schlüssels (s. oben)
-phrase: Wenn der Schlüssel durch eine Passphrase geschützt ist: Die Passphrase
-key: Name und Pfad der Schlüssel Datei
-in: Name und Pfad der zu entschlüsselnden Datei.
-out: Name und Pfad der Ausgabedatei. Wird die Option nicht angegeben, wird die Quelldatei mit dem Präfix dec_ verwendet.
Um die obige Zip Datei zu entschlüsseln könnte der Aufruf also beispielsweise so aussehen:
CALL DeCrypt.cmd -doctype:GEN -keytype:IMAGE -key:myKey.bmp -in:enc_sample.zip -phrase:Mein sicheres Passwort6812
Alle drei Kommandos geben mit –help die Liste der Optionen an der Kommandozeile aus.
Die Kommandozeilentools bilden zwar nicht alle Möglichkeiten der Simplecrypt Library ab, aber alle wesentlichen um effektiv Dateien ver- und entschlüsseln zu können.
Viel Spass damit.
Detaillierte Erklärungen zum Algorhtmus, zur Verwendung als JAVA Library und Überlegungen zur Verwendung, Optionen und Erweiterungsmöglichkeiten folgen in kürze.
Schreibe einen Kommentar