• Willkommen im Linux Club - dem deutschsprachigen Supportforum für GNU/Linux. Registriere dich kostenlos, um alle Inhalte zu sehen und Fragen zu stellen.

TrueCrypt

tuxasus

Newbie
Servus,

ich habe mit ein Skript erstellt, welches automatisch nach dem Passwort fragt und mir dann die entsprechenden Container einbinden.
Leider habe ich jetzt das Problem, dass ich nicht merke ob mein Passwort richtig war oder nicht, sprich vom Skript keine Rückmeldung bekomme, da er bei fehlerhaftem Passwort leider nicht einfach in die nächste Zeile des Skripts geht sondern beim Truecrypt-Befehl hängen bleibt. (In der Konsole fragt er solange nach dem Passwort bis man das richtige eingegeben hat).

Hier mein aktueller Code:
Code:
#!/bin/bash
i=1
while [ $i -le 3 ]
do

oldConfig=`stty -g`
password=`kdialog --title "Container-Passwort" --password "Please enter the passwort of the container" 0 0`;  
stty $oldConfig

echo "2. Mounting volumes ..."
sudo truecrypt -t Pfad-Container Pfad-Einbinden --password="$password"  -k "" --protect-hidden=no
 
 FOLDER="/media/Data/Firefox"
  if [ -d "$FOLDER" ]; then
    exit
  fi
  i=`expr $i + 1`;
done

echo "done"

Hat jemand von euch eine Idee was ich da machen kann?
 

leanUX

Member
Hi tuxasus,

vielleicht hilft Dir dieser Ansatz weiter: Das eingegebene Passwort wird vor Aufruf von truecrypt auf Korrektheit geprüft. Solange es falsch ist wird man zur Neueingabe aufgefordert. Geprüft wird das Passwort z.B. indem man es gegen einen im Script gespeicherten Hash validiert.

Etwa so: ersetze die Zeile
Code:
password=`kdialog --title "Container-Passwort" --password "Please enter the passwort of the container" 0 0`;
durch die Zeilen:
Code:
salt="foobar"
correctHash="21d87a17fd56e6a604db5c99ede2511fd9688fc4  -"   # zwei Blanks vor dem  -
password=`kdialog --title "Container-Passwort" --password "Please enter the passwort of the container" 0 0`;

while [ "$correctHash" != "$(echo $salt$password | sha1sum)" ]
do
        password=`kdialog --title "Container-Passwort" --password "Wrong password! Please re-enter the container-password" 0 0`;
done

Das korrekte Passwort wäre hier: test
Eine Schwachstelle dieses Ansatzes ist natürlich, dass jetzt jemand der das Script lesen kann und somit den Hash kennt, das Passwort brute-forcen könnte. Aber das dürfte realistischerweise nur dann funktionieren wenn das Passwort schwach ist, und dann könnte man es auch durch Ausprobieren per Aufruf von truecrypt herausfinden.

Gruß
 
OP
T

tuxasus

Newbie
Servus,

die Idee ist gut, vielen Dank

Jetzt hänge ich nur leider noch an der umsetzung mit welchen Generator hast du denn den Hash-Code generiert? Alle von mir generierten Hashs nimmt er irgendwie nicht :eek:ps:
 
A

Anonymous

Gast
tuxasus schrieb:
Jetzt hänge ich nur leider noch an der umsetzung mit welchen Generator hast du denn den Hash-Code generiert? Alle von mir generierten Hashs nimmt er irgendwie nicht :eek:ps:
steht doch oben im script mit sha1sum

ist nur so gemacht, das man den Hash aus dem Script nicht dazu benutzen kann um damit Vergleiche mit anderen irgendwo zu machen, um so eventuell auf gleiche Passworter zu schließen.

Das eingegebene Passwort wird hier am Anfang um den Zusatz "foobar" aus der salt-Variable erweitert, bevor der Hash zum Vergleich mit dem Hash aus dem Script erzeugt wird. Das selbe musst du natürlich dann auch machen, wenn du den Hash für das Script erzeugen willst.

angenommen dein Passwort für den Container ist "MeiEr" dann zB den Hash fürs Script wie folgt per Hand erzeugen

Code:
echo "foobarMeiEr" | sha1sum


robi
 
Oben