10 sierpnia
15:21 2007
KMail potrafi zapamiętywać podane hasła w pliku ~/.kde/share/config/kmailrc. Hasła "szyfrowane" są tak, żeby na pierwszy rzut oka, nie można ich było odczytać. Zanim takie hasło zostanie zapisane na dysku, zostaniemy ostrzeżeni mniej więcej takim komunikatem: The password is stored in an obfuscated format, but should not be considered secure (...)
Tak więc spróbujmy wyświetlić wszystkie hasła KMail... Do tego, z pozoru trudnego zadania, wystarczy prosty skrypt, oraz trochę JavaScriptu (bo nie wiedziałem jak pobrać te wartości Unicode). Sam algorytm szyfrowania znalazłem w Google ;)
decrypt.sh:
#!/bin/bash
COUNT=`kreadconfig -file kmailrc -group General -key accounts`
for ((i=1;i<=COUNT;i++)) do
NAME=`kreadconfig -file kmailrc -group "Account $i" -key Name`
PASS=`kreadconfig -file kmailrc -group "Account $i" -key pass`
# program jrunscript jest w Javie 6
PASS=`jrunscript decrypt.js "$PASS"`
echo "Hasło dla $NAME: $PASS"
done
decrypt.js:
var pass = new java.lang.String(arguments[0]);
var result = "";
for (var i = 0; i < pass.length(); i++) {
result +=
(pass.charAt(i) < 0x20)
? pass.charAt(i)
: new java.lang.Character(0x1001F - pass.charAt(i));
}
println(result);
Wnioski
Używaj KWallet (Portfel KDE) do zapamiętywania haseł!
Proszę o komentarz
A portfel to gdzie je chowa? W ~/.kde/share/config/kwalletrc? :D
Portfel szyfruje wszystkie podane hasła za pomocą dodatkowego klucza i hasła. Oczywiście samo hasło portfela NIE jest nigdzie zapisywane :)
Jam łasica – jakiej dystrybucji używasz?
Kubuntu