![]() |
Signal database password on Android - Printable Version +- hashcat Forum (https://hashcat.net/forum) +-- Forum: Support (https://hashcat.net/forum/forum-3.html) +--- Forum: hashcat (https://hashcat.net/forum/forum-45.html) +--- Thread: Signal database password on Android (/thread-7558.html) |
Signal database password on Android - deeppurple - 06-08-2018 I want to test recover of my old Signal Android database password with Hashcat. The sourcecode for the app https://github.com/signalapp/Signal-Android/blob/0a569676f7a57144374a24faef566b2ca3233290/src/org/thoughtcrime/securesms/crypto/MasterSecret.java makes it look like database uses PBDKF2 with SHA1 but when I try crack known password using hashcat format 12000 sha1:iteration:hash ![]() Can I use last 20 bytes of mastersecret or is there AES component prior to PBKDF2 comparison? RE: Signal database password on Android - undeath - 06-09-2018 Usually the hash output is used as a key for the encryption. Having the hash in the file would mean the AES key is in the file which they are very likely not doing. Hence you have to use the pbkdf2 result as AES key and decrypt the data (at least in parts) and verify it's what you expect. RE: Signal database password on Android - deeppurple - 06-11-2018 I looked at code and the problem might be Android crypto objects, but maybe someone understand: Code: public static MasterSecret getMasterSecret(Context context, String passphrase) I have all the above data and I see SHA1 so I think great, will be easy and can just compare the MAC: Code: private static byte[] verifyMac(byte[] macSalt, int iterations, byte[] encryptedAndMacdData, String passphrase) throws InvalidPassphraseException, GeneralSecurityException, IOException { Code: private static Mac getMacForPassphrase(String passphrase, byte[] salt, int iterations) But then I do further and getKeyFromPassphrase() does something different: Code: private static SecretKey getKeyFromPassphrase(String passphrase, byte[] salt, int iterations) There is AES step? I try to run code backward in jshell but get NoSuchAlgorithmException on second line. What hashcat mode correspond to this operation? It look like it should be PBKDF2-HMAC-SHA1 but hashcat exhausted a list with known password. Can two hashcat mode be run consecutive? I test the bytes 17-37 in the Signal master_secret as the hash, then use the mac_salt and passphrase_iterations in mode 12000. Signal is popular - if hashcat cannot crack it should add support! |