Wie kann man die Verschlüsselung eines Programms rausfinden ?

Unfriendly Solution

Ēxperte für Illegales
Registriert
2 Apr. 2014
Beiträge
73
Ort
2°21'2" S, 15°20'
Angenommen der Anbieter sagt er benutzt ... keine Ahnung AES-XEX-Verschlüsselung mit 384 Bit oder TwoFish oder RC4 - was auch immer. Wie kann ich es aber selber nachprüfen ob es nicht ne andere Verschlüsselung ist oder tatsächlich diese ?
 
Sofern du den Schlüssel sowie den Plain- und den Ciphertext kennst, kannst du leicht überprüfen, ob bei einer Anwendung des versprochenen Ciphers mit dem bekannten Schlüssel der Plaintext in den Ciphertext verschlüsselt wird. Die fraglichen kryptografischen Verfahren sind deterministisch, d.h. bei gleicher Eingabe muss die Ausgabe ebenfalls identisch sein.

Solltest du den Schlüssel nicht kennen, z.B. weil er über ein dir nicht bekanntes Key-Derivation-Verfahren aus einem Passwort und/oder weiteren Geheimnissen abgeleitet wird, führt der einzige Weg über ein Reverse Engineering der Anwendung. Im Zweifelsfall musst du die Anwendung disassemblieren und versuchen, zumindest den kryptografischen Teil nachzuvollziehen. Dies wird erheblich erleichtert, wenn eine bekannte kryptografische Bibliothek genutzt wird, da du dann lediglich die Aufrufe in die Bibliothek abfangen und überprüfen musst.
 
Wenn der Quellcode zur Verfügung steht, musst du einerseits überprüfen, ob der versprochene Cipher korrekt(!) implementiert ist, andererseits, ob der zur Verfügung gestellte Quellcode tatsächlich mit dem Maschinencode in einem eventuellen Binary übereinstimmt (entfällt, wenn du das Binary nicht benutzt und den Code stattdessen selbst kompilierst - in der Praxis die empfehlenswerte Lösung).
 
Korrekt implementierte und angewandte Cipher (AES, Twofish) sind übrigends nur die halbe Miete. Ebenso wichtig ist eine korrekte Schlüsselerzeugung nach einem hinreichend sicheren Verfahren. Dort liegt mMn deutlich mehr Spielraum für Backdoors, da eben die eigentliche Verschlüsselung korrekt zu funktionieren scheint, selbst wenn die erzeugten Schlüssel Müll sind. Außerdem darf die Software natürlich den Schlüssel (einschließlich davon abhängenden Daten und zur Erzeugung benötigter Eingaben) nicht irgendwo verwenden/rausrücken. Zumindest wenn ich eine Backdoor entwerfen sollte, würde ich nicht an der eigentlichen Verschlüsselung ansetzen...
 
Zurück
Oben