truecrypt bruteforce

lordg2009

Lt. Commander
Registriert
Apr. 2009
Beiträge
1.552
Hallo alle miteinander

Seit einigen Jahren nutze ich nun schon TrueCrypt zum Verschlüsseln meiner Daten. Da ich mich sehr dafür interessiere würde ich gerne mal eine bruteforce-Attacke auf neu erstellte Container mit verschieden starken Passwörtern durchführen. Habe dazu auch das tool truecrack gefunden. Aber das tool macht schon alles von alleine. Ich würde gerne genauer wissen, wie es funktioniert. Müssen auf einem solchen Container nicht diverse Informationen gespeichert sein, die mir vermitteln, welche Verschlüsselung gewählt wurde, usw. Und ist der Passwort-hash in dem Container zu finden. Müssen nicht am Anfang eines solchen Containers einige unverschlüsselte Dateien zu finden sein, die man dann auslesen kann und wohl möglich den hash mit einem Programm seiner Wahl bruteforcen kann?

Vielen Dank
 
bruteforce bedeutet ja einfach alle Möglichkeiten auszuprobieren unabhängig von dem verschlüsslungs algorithmus
bei truecrack kannst du ja zb auch eine wörterbuch attacke machen, was ggf eher zum erfolg führt
 
AES Verschlüsselung lässt sich via BrutForce nicht entschlüsseln. Egal, was noch an Zusatz um der Verschlüsselung drum herum ist. Zumindest nicht in einem geologisch überschaubaren Zeitraum.

Was genau möchtest Du mit dem Experiment beweisen?
 
Kann man sich ja einfach mal die offene Doc anschauen wenn einen das interessiert ;-)

Als Einstieg:
http://www.truecrypt.org/docs/volume-format-specification

Was genau willst du da untersuchen?
Einen Brute-Force Angriff auf zB einen AES-128-Container bedeutet letztendlich 2 mögliche Ansätze:
Alle möglichen Schlüssel durchgehen um das Passwort (welches meist als Hash abgelegt und Key in den AES gesteckt wird) zu erraten oder einfach direkt alle 2^128 Schlüssel für AES-128 durchgehen.
Das nur als ganz ganz grobe Auffassung davon, was bei Brute-Force getan wird. Daneben gibt es noch viel mehr Attacken und Analysemethoden.. known-plaintext, chosen-plaintext uvm.
So oder so sind 2^128 eine Menge Schlüssel, die zwar in endlicher Zeit für einen PC,aber nicht in endlicher Zeit für den Menschen abwartbar sind ;-)

Am sinnvollsten erscheint hier immernoch ein Wörterbuchangriff um von diesem die Hashes abzuleiten und durchzutesten.
Dass du damit aber bei einem stark gewählten Passwort nie zum Erfolg kommen wirst liegt nicht fern.
 
Zuletzt bearbeitet:
Haha.... schau dir mal das Flash Info-Video auf der Wikipedia-Seite zum AES Algorithmus an und dann wirst auch vielleicht du verstehen, dass es mit der derzeitigen Technik, die dem Otto-Normalverbraucher zur Verfügung steht, nicht möglich ist, eine solche Verschlüsselung zu knacken!

Oder hier auf Youtube: http://www.youtube.com/watch?v=mlzxpkdXP58

:p
 
Zuletzt bearbeitet:
"Am sinnvollsten erscheint hier immernoch ein Wörterbuchangriff" find ich gut. Meine Passwörter sind kryptisch mit Buchstaben, Zahlen und Sonderzeichen, bei TrueCrypt ist darüberhinaus noch eine Datei Teil des Schlüssels...
 
Musst ja auch schon richtig zitieren mibi ;-)
"Dass du damit aber bei einem stark gewählten Passwort nie zum Erfolg kommen wirst liegt nicht fern."

Nebenbei hast du ja auch recht, wenn noch weitere Faktoren hinzukommen und das ganze probabilistisch wird umso besser!
 
Ich habs ja nicht böse gemeint. Im Gegenteil. Ich finds gut, wenn immer noch Wörterbuchangriffe empfohlen werden :-)

Ich widerspreche dir ja auch nicht.
 
@r0ck3r:
ausser der DAU benutzt das selbe Passwort wie der Präsident bei Spaceballs.

Ergo: Unterschätze niemals die Faulheit (Vereinfachungswille) und Dummheit des Individuums!

Eine Verschlüsselung ist nur so gut wie ihr schwächstes Glied. Und das ist der Mensch mit seinen Passwörtern.
Wenn dieses in einer Rainbowtabelle enthalten ist, ist selbst der beste Algorithmus machtlos.

Ich habe hier Mitarbeiterinnen, die als Passwort den Namen ihrer Tochter nutzen und einfach die letzte Zahl von 1 hochzählen.
Nach Änderung der Einstellungen (Sonderzeichen, Groß/Klein, Zahl, kein einfaches Hochzählen) nutzen sie jetzt:
$1NamederTochter
Ist natürlich um tausend Klassen besser (Achtung Ironie), wird aber vom AD so akzeptiert.
 
Zuletzt bearbeitet:
verschlüsselung (AES) =/= hashes (MD5)
rainbowtables gibts aber nur für hashes (bzw. sind nur da eigentlich sinnvoll)

ansonsten hast du natürlich recht, es nützt einem die beste sicherheit nix, wenn man triviale passwärter verwendet

was du schreibst ist übrigens ein interessantes phänomen, aus solchen gründen senken auch zu hohe anforderungen an die komplexität des passwortes auch irgendwann die sicherheit...denn niemand merkt sich 30 verschiedene passwörter, sondern fängt dann irgendwann an, einfach hochzuzählen
 
Zuletzt bearbeitet:
@Wischbringer: Oder meinst du den König von Druidia für den Luftschild?
 
Die meisten Implementierungen, die ich bis jetzt gesehen habe, nehmen entweder einen Hash eines eingegebenen Passwortes und forwarden diesen als Key für den AES, oder verschlüsseln mittels one-time-pad und dem Passwort einen für sich geltenden zufälligen, sicheren Schlüssel.

Habe mir aber noch nie die Mühe gemacht, in die anerkannten Crypt-Bibs reinzuschauen die ein Passwort entgegen nehmen.

@Wischbringer:
Über den realen Sicherheitsgewinn von regelmäßig wechselnden Passwörtern beim Einsatz von Menschen gibt es viele Paper die das, zu recht, in Frage stellen. Ich persönlich halte von dieser Politik auch nichts, aber das zu diskutieren kostet Seiten bei unterschiedlicher Meinung. Bei einem alten, großen Arbeitgeber wurde ich zu solchen Spielereien auch gezwungen, da es mir nach 30 Tagen Periode irgendwann zu bunt wurde.
 
@Daaron: Ich weiß... das beste ist "Nur ein Idiot würde eine solche Kombination haben...". Präsident kommt rein: "Wie lautet die Kombination für den Luftschild?" ... "Huch, das ist ja die selbe Kombination wie an meinem Aktienkoffer [...]"
 
@ r0ck3r
Danke für den Link, der ist echt klasse. Habe mir vor geraumer Zeit den wiki Artikel schon mal durchgelesen, war aber doch schwer zu verstehen. Das Video ist echt gut. Habe aber leider noch nicht den Schritt mit der S-Box verstanden. Ein simples statisches austauschen der Bytes ist doch nicht wirklich Rechenaufwand und die S-Box ist doch anscheinend auch nicht variabel.

Aber jetzt wieder zu meiner Hauptfrage zurück:
Natürlich weiß ich, dass es lange dauert, alle Möglichkeiten durchzugehen, und ich weiß auch, dass es verschiedene Möglichkeiten gibt, seine einen Bruteforce Angriff durchzuführen (Wörterbuch, rainbow, oder simples errechnen). Eigentlich wollte ich jedoch wissen, wo bei einer Festplatteverschlüsselung der hash liegt, der letztendlich bei einer Attacke angegriffen wird. Ich würde, um meine Attacken zu starten, welche das auch immer sein mögen, den hash gerne extrahieren (schließlich ist dieser doch nicht geheim) und dann mit Programmen meiner Wahl (oclhashcat oder z.B. john the ripper) angreifen. Lässt sich das machen?

Und nein: Mir geht es eigentlich nicht darum, dumme Passwörter zu erraten, sondern mal zu testen, wie schnell man zufällige Passwörter verschiedener Länge und mit verschiedenen Zeichensätzen errechnen kann.

Aber erstmal vielen Dank für die Zahlreichen Antworten und vor allem das Video.

PS: Noch eine Anmerkung zum Video, nur zum Verständnis:
Wenn dort immer Boxen mit 4x4 Bytes, also 16Bytes bearbeitet werden, handelt es sich wohl in diesem Fall um eine 256bit Variante der AES Verschlüsselng, also 2^265 verschiedene Möglichkeiten, wenn man die Kollisionen außen vor lässt, oder?
 
Zuletzt bearbeitet:
Die S-Boxen sollen das Grundprinzip Konfusion erfüllen. (Stichwort Blockchiffren, Substitutions-Permutations-Netzwerk, Konfusion & Diffusion).
Der Rechenaufwand soll ja auch möglichst gering sein. Was bringt ein Verschlüsselungsalgorithmus der für eine Nachricht der Länge m, wobei m einfach einer tatsächlich auftretenden Durchschnittslänge entspricht, zu lange braucht?
Bei asymmetrischen Verfahren in der Signatur ist man deshalb (und auch aus anderen Gründen) dazu übergegangen den Hash einer Nachricht zu signieren.

Der Trick ist letztendlich, Konfusion und Diffusion in Abhängigkeit von Runden so durchzuführen, dass die Beziehungen zwischen Plain- und Cipherbytes immer komplexer wird. Mit den genannten Stichworten kannst du dir die Ideen dahinter mal anschauen und AES als ein gutes Beispiel für ein SPN zu Gemüte führen.
Die S-Box kann dabei auch entweder statisch hinterlegt (als simples Array) oder zur Laufzeit berechnet werden. Es ist also wirklich kein Aufwand wie du siehst.


Zu deiner Frage wo der Hash liegt:
Das sollte doch aus der Truecrypt Doku hervorgehen, die musst du halt dann mal lesen und die entsprechende Format Spezifikation anschauen. Der Hash (mit dem du vlt den Key meinst, falls du nur ein Passwort verwendest) zum entschlüsseln liegt allerdings nicht in Klartext irgendwo. Welchen Sinn solle das denn ergeben. Den Hash zurück zu rechnen funktioniert nicht, Hashes sind One-Way-Funktionen (primary resistance). Wenn der Hash also als Eingabe-Key für die Verschlüsselung dient, wäre die ganze Verschlüsselung also für die Katz.
Es wird daher sehr oft mit einem Passwort ein Bereich verschlüsselt, in dem der Key dann liegt. Über Eingabe des Passworts wird dieser Bereich entschlüsselt und der Key kann extrahiert werden. Wenn es diesen Bereich gibt, wird das die Spezifikation schon sagen.

Zu deiner Frage wie lange braucht man?
Dazu muss man keinen Versuch starten.. das kann man sich auch einfach so ausrechnen. Du weißt wie groß der Schlüsselraum ist, und man kann herausfinden wie viele Schlüssel ein handelsüblicher PC pro Sekunde testen kann. Aus diesem Verhältnis kann die Dauer also sehr einfach berechnet werden.
 
Zurück
Oben