java keystore jelszó
Generáltam egy java keystore-t, benne egy kulcspárral:
keytool -genkey -noprompt -alias mydomain -keyalg RSA -keystore test_keystore.jks -keysize 2048 -dname "CN=commandline.blog.hu, C=HU" -storepass 123456 -keypass jelszo
A keystore jelszava 123456 a kulcspáré jelszo.
Brute force
Elég sok eszköz van, amivel brute force támadással megpróbálhatjuk feltörni a keystore jelszavát, én a keystorebreakert próbáltam ki, itt megadhatjuk milyen karakterek fordulhatnak elő a jelszóban. A legfeljebb 6 karakter hosszú csak számokat tartalmazó jelszavakat pillanatok alatt végigpróbálja:
java -jar KeystoreBreaker.jar test_keystore.jks 0123456789 000000 999999 4
Ehhez a feltöréséhez pár másodperc elég volt. Nyilván több idő kell ha nemcsak számok lehetnek a jelszóban, a legfeljebb 6 hosszú szám+kisbetű összes lehetőségének végigpróbálásához a program szerint 1.5 óra kellene, szám+kisbetű+nagybetűnél kb. 2 nap.
Itt tartottam a bejegyzéssel, ide jönne a rész ami leírja, hogy milyen jelszót (ne) válasszunk, amikor találtam még valamit.
Changepassword
A changepassword nevű programmal egy keystore jelszavát változtathatjuk meg. Megkérdi a régi jelszót, az újat és létrehoz egy új keystore-t az új jelszóval ami a régi kulcsait tartalmazza:
$ java ChangePassword test_keystore.jks test_keystore2.jks
Enter keystore password: fogalmamsincs
Changing password on 'test_keystore.jks', writing to 'test_keystore2.jks'...
Enter new keystore password: ujjelszo
Egy igen furcsa van a programban, nagyszerűen működik akkor is, ha rossz jelszót adunk meg. A programot innen töltöttem le, élesben nem próbáltam ki, de a fenti egyszerű teszt alapján működik. A szerző alapján a kulcspár jelszavát nem lehet így lecserélni, az valóban biztonságos.
Titkon azért abban bízom én értettem valamit félre valamit és nem ennyire rossz a java keystore jelszókezelése.