PIM + Brute-Force-Angriffe bei Veracrypt

Maitry

Ensign
Registriert
Dez. 2016
Beiträge
157
Hallo!
1) Kann mir jemand erklären was die PIM genau in Wirklichkeit ist und was das für Brute-Force Angriffe bedeutet?
Sie verzögert die Rechenzeit, mehr weis ich auch nicht...

2) Ein Beispiel:
Jemand hat mein Passwort (40 Zeichen), aber nicht meine PIM. Die ist 500. Was bedeutet das für seinen Brute-Force-Angriff?
Kann man mit nem Brute-Force Prog. also das Passwort mit allen Pim Nummern durchprobieren bis man bei 500 ist?

Wie sieht es aus wenn das Passwort bekannt ist und 120 Zeichen hat, die PIM ist ebenso 500 ?

Danke !
 
Also was die PIM und wie sie wirkt steht hier ganz gut beschrieben:
https://blog.doenselmann.com/veracrypt-mit-pim-nutzen/
https://de.wikipedia.org/wiki/VeraCrypt#Personal_Iterations_Multiplier

Also bei zwei Faktor Authentifizierung braucht man eben immer beide Informationen (PIM+Passpharase). Eins alleine reicht nicht. Die Schwierigkeit dürfte sein, ohne PIM zu wissen, ob das PW korrekt ist oder nicht. Ob VC sich da irgendwie verrät, dass die Hälfte der Authenifizierung korrekt ist, weiß ich nicht, ich hoffe aber mal nicht - offensichtlich in der GUI sowieso nicht.

Die PIM ist eher wie eine zusätzlich PIN zu betrachten (technisch bzgl. der Verschlüsselungswiederholungen hat sie natürlich eine andere Funktiono). Daduch dass sie statisch ist, ist sie ebenso theoretisch per Brute-Force knackbar. Statische 2FA ist mäßig sinnvoll. Aber besser als eine 1FA. Aber wenn man nicht weiß, welches PW überhaupt das richtige ist, wird es schwer. Wenn man weiß welches Passwort das richtige ist (z.B. Keylogger) dann hat man auch meist die PIM gleich mit abgefischt. Wenn man aus irgendeinem Grund die PIM nicht abgefischt hat, ist es aber relativ leicht sich da durchzuprobieren, bis man die passende Zahl hat.

Wenn du 120 Zeichen hast wird die Bruteforcesicherheit primär durch die 80 Zeichen zusätzlich hergestellt.
 
@conf_t Bist du dir sicher, dass es wirklich nur quasi ne Zusatz-Pin ist?
Da das Ganze auch in Abhängigkeit von der Passwortlänge gemacht eingestellt werden muss, klang das für mich schon eher nach, man müsste so und so oft quasi das PW auch abfragen (natürlich passiert das automatisch).
Also quasi PW-Sicherheit * PIM
Deswegen dauert die Entschlüsselung beim Einbinden ja auch länger.
 
Steht da doch. Das du musst die Zahl für die PIM und das PW zusammen eingeben, bei jedem Versuch. Anhand der PIM wird
Das Wort "PIN" was ich genutzt habe impliziert ja nicht, dass es alleinstehend ist. Wenn aber in dem Beispiel das PW bekannt ist, dann hat man nur noch die PIM.
Da würde ich dann einfach mal ganz doof von der niedrigsten erlaubten PIM Zahl iterierend +1 nach oben durchprobieren.

Wikipedia dazu:
Das Schema zur Berechnung der Iterationen lautet für Systempartitionen PIM × 2048, während es bei den restlichen Nutzungsmöglichkeiten 15000 + (PIM × 1000) beträgt. Der Wert des PIM muss jedes Mal für das Entsperren mit angegeben werden.
 
Dass man das zusammen eingeben muss, ist mir schon klar.
Es war auch mein erster Gedanke, dass es einfach nur eine PIN ist^^
Aber wenn bei einem <20 stelligen PW mindestens eine PIM von 98 eingegeben werden muss, würde das das Ganze ja ad absurdum führen, weil ich dann damit anfange und nicht bei 1. Aber vllt steh ich so früh am Morgen noch voll aufm Schlauch :D


edit: Ah, Moment :D
Die 98 steht dann da, weil Veracrypt 98 mal den ganzen Vorgang ausführen müsste. Für 99 dann eben zu den vorher getesteten 98 nochmal 99 Durchgänge?
Wenn ja, wird da ein Schuh für mich dras.
 
Ich sehe durch die PIM das ganze eher als Salted Password. Wobei das Salt nicht in einer Datei steht, sondern manuell eingegeben werden muss.
Der PIM verändert ja nicht den Key, sondern die Verschlüsselungsiterationen.

2048 x 500 = 1 Milionen Iterationen bei der Ver-/Entschlüsselung
15000 + (500*1000) = 515000 Iterationen bei der Ver-/Entschlüsselung

Also wird der Key entsprechend oft gehasht. Also es wird der Hash vom Hash vom Hash vom Hash usw. gebildet, am Ende wird dieser Hash der nach x iterationen rauskommt für die Entschlüsselung genutzt. Hauptvorteil sehe ich hier eher bei Kollisionsangriffen. Der Key wird dadurch nicht länger und das Passwort selbst per se nicht sicherer.

Das hat nichts direkt mit den Entschlüsselungsversuchen zu tun. Es ist eher ein Nebeneffekt, dass man noch einen zweiten statischen Faktor bei der Entschlüsselung mit angeben muss. Langsam wird es durch die Iterationen, nicht durch die Passwortlänge.

Wenn angenommen nur Ansi Zeichen beim PW zugelassen sind. Beim PIM sind ja nur Zahlen zugelassen.



Bei 20 Zeichen: 255^20 * (10^3 - 98)

Wenn beim PW alle ANSI Zeichen nutzbar wären bei 8 Bit, wärem das 256 Zeichen, hoch 40 bei 40 Stellen.
Das ganze mit den Möglichkeiten der PIM mutlitpilziert (3 stellen und die 0-98 dürfen nicht genutzt werden), wird klar, dass die PIM auf die Sicherheite keinen so großen einfluss mehr hat.

Da die BF Attacke bei bekanntsein de PWs (255^20) sich nur noch auf die 10^3-98 bezieht, welche ich sogar als Mensch binnen 30 Minuten erraten habe.

Bei der Versuchsanzahl: a x b = c. Wenn a = PW bekannt ist (wie in der obigen Frage) und c durch erraten von b errechnet werden kann und man dafür nur 402 Versuche braucht, ist das schnellstens erraten, ganz ohne Spezial Bruteforce Software. Mit Finger und ohne Hirn, denn das braucht man für Iterationen ´+1 nicht.



Solange das PW nicht bekannt ist oder deren Richtigkeit ohne korrekter PIM nicht bestätigt ist, ist das sehr sehr sicher, aber wenn man aus irgendeinem Grund, und wenn es social engineering ist, das PW kennt, ist das nicht mehr so sicher.

Deshalb sollte man nach Möglichkeit eher auf eine dynamische 2FA zurückgreifen, oder eine Bruteforcesperre haben (geht in dem Fall nicht), die bei fehlerhaften Eingaben die Wartezeit stets verdoppelt
 
Zuletzt bearbeitet:
conf_t schrieb:
Ich sehe durch die PIM das ganze eher als Salted Password.
Ein Salt hat das Ding so oder so noch.
Eine übliche Passwortspeichermethode ist folgende:
Salt+WorkFactor+Hash(Password).
Siehe u.A. https://cheatsheetseries.owasp.org/...ge_Cheat_Sheet.html#password-storage-concepts

Normalerweise wird alles drei mit in der Datenbank (ob das jetzt ein Veracryptheader oder eine echte Datenbank ist nicht weiter wichtig) gespeichert. Häufig gibt es auch noch einen Versionsindikator, der sagt welche Version der Speichermethode verwendet wird (damit kannst du dann u.A. Upgrades der Methode machen).

In dem Fall von Veracrypt wird der Workfactor teilweise außerhalb gehalten, macht dass die Sicherheit besser?
Im allgemeinen Ja, weil es damit die Anzahl der Versuche das Passwort zu knacken steigt. Ansonsten hast du ja schon die Probleme bei bekannten und/oder wiederverwendeten Passwörtern aufgeführt.

Das Problem allgemein bei solchen Systemen ist, dass wenn kein Mechanismus existiert um den Algorithmus + WorkFactor zu aktualisieren, dein System mit den Jahren unsicherer wird, da die Knackmethoden schneller werden (GPUs etc.), aber der WorkFactor + Algorithmus sich nicht ändert. Daher auch die Speicherung der "Version" der Methode.
Es gibt z.b. Empfehlungen dass der Workfactor etwa alle 1-2 Jahre neu evaluiert werden muss, also z.b. bei Algorithmen die gut mit der GPU knackbar sind, alle 2 Jahre verdoppelt werden muss.
 
Oh weh Das ist mir wieder zu kompliziert ! ......

Also halten wir fest, es geht um irgendwelche Durchläufe. Dh mit PIM dauert das bruteforcen deutlich länger.
Nur ob versierte ich sag mal "Hacker" sowas umgehen können?


conf_t schrieb:
Die Schwierigkeit dürfte sein, ohne PIM zu wissen, ob das PW korrekt ist oder nicht. Ob VC sich da irgendwie verrät, dass die Hälfte der Authenifizierung korrekt ist, weiß ich nicht, ich hoffe aber mal nicht - offensichtlich in der GUI sowieso nicht.
Das müsste aber bekannt sein, da VC ja quelloffen ist und auditiert wurde. Ich weis nur net wer es weis oder wo man fragen könnte. Wohl ne sehr spezielle Frage
 
Zurück
Oben