Hi, имеется программа работающая с SSL сертификатами. Пароль (passphrase) на ключ сохраняется в зашифрованном виде в файле, при старте службы пароль считывается и расшифровывается. Помогите разобраться с форматом файла. Возможно ли извлечь пароль из этого файла? Я создал несколько сертификатов через GUI c паролями 000000, 111111 и aaaaaa (латиницей). Соответствующие файлы с паролями прикрепил к теме. Код (Text): abc@pc:~$ hexdump -C 000000.pwd 00000000 ba 6f e1 6d 9a 64 50 48 08 8e 67 3c a7 e7 ff c3 |.o.m.dPH..g<....| 00000010 4d 19 a0 77 86 30 c9 73 52 ad e7 0d ee d9 85 1a |M..w.0.sR.......| 00000020 22 dd 8e 99 93 df ec 1d 17 3c e9 59 96 ef f8 4a |"........<.Y...J| 00000030 abc@pc:~$ hexdump -C 111111.pwd 00000000 11 f2 31 3e a8 b2 3d b4 94 1c 60 c4 f2 91 17 69 |..1>..=...`....i| 00000010 a0 3a 23 0e c0 4e 90 f7 81 76 f9 d7 42 95 d1 92 |.:#..N...v..B...| 00000020 00 de 45 69 ff d6 3d 5f d1 c8 75 08 c6 41 c9 bb |..Ei..=_..u..A..| 00000030 abc@pc:~$ hexdump -C aaaaaa.pwd 00000000 cb 4f 57 84 95 7b 92 7c 23 f7 14 19 ed d3 fb 24 |.OW..{.|#......$| 00000010 6a db 2c 34 87 ef 2f 73 02 d3 d1 0a e8 95 d8 73 |j.,4../s.......s| 00000020 96 37 98 79 c6 5e 9c 5c 83 18 f3 07 66 7e f6 81 |.7.y.^.\....f~..| 00000030 thx!
Увы, если это только не какая-то известная программа, шансы пока невелики. Покажи, что происходит когда пароль 0-ой длины, 1 символ длины, 48 символов длины. Покажи 2 pwd-файла для разных сертификатов на одном и том же пароле. Иначе пока что я вижу ответ функции на 6-символьный пароль составляет 48 байт - запросто первые скажем 16 могут быть RND заполнением с функциями IV-вектора.
сегодня написал скриптик котороый насоздавал паролей от "0" до "000000..000". некоторые наблюдения: - алгоритм не машинозависимый, т.е. файл созданный из определенного пароля всегда одинаковый на всех машинах - длина меняется в зависимости от длины пароля - файл из пароля состоящего из букв/цифр меньше файла созданного из пароля такой же длины но состоящего из знаков (%) Код (Text): user@laptop:~/dats$ hexdump -vC 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000.pwd 00000000 ba 6f e1 6d 9a 64 50 48 18 39 3a f8 ab a4 ee fa |.o.m.dPH.9:.....| 00000010 18 39 3a f8 ab a4 ee fa 18 39 3a f8 ab a4 ee fa |.9:......9:.....| 00000020 18 39 3a f8 ab a4 ee fa 18 39 3a f8 ab a4 ee fa |.9:......9:.....| 00000030 18 39 3a f8 ab a4 ee fa 18 39 3a f8 ab a4 ee fa |.9:......9:.....| 00000040 18 39 3a f8 ab a4 ee fa 18 39 3a f8 ab a4 ee fa |.9:......9:.....| 00000050 18 39 3a f8 ab a4 ee fa 18 39 3a f8 ab a4 ee fa |.9:......9:.....| 00000060 18 39 3a f8 ab a4 ee fa f1 81 40 9c 2f 1e 19 f3 |.9:.......@./...| 00000070 45 97 5e 6d d1 a4 86 87 18 39 3a f8 ab a4 ee fa |E.^m.....9:.....| 00000080 18 39 3a f8 ab a4 ee fa 18 39 3a f8 ab a4 ee fa |.9:......9:.....| 00000090 18 39 3a f8 ab a4 ee fa 18 39 3a f8 ab a4 ee fa |.9:......9:.....| 000000a0 18 39 3a f8 ab a4 ee fa 18 39 3a f8 ab a4 ee fa |.9:......9:.....| 000000b0 18 39 3a f8 ab a4 ee fa 18 39 3a f8 ab a4 ee fa |.9:......9:.....| 000000c0 18 39 3a f8 ab a4 ee fa 18 39 3a f8 ab a4 ee fa |.9:......9:.....| 000000d0 18 39 3a f8 ab a4 ee fa 39 94 c9 75 33 be a8 b3 |.9:.....9..u3...| 000000e0 b0 00 ab 38 c0 eb b6 a5 74 53 2a 81 c9 0c e5 5b |...8....tS*....[| 000000f0 в приклепленном файле - 40 файлов, название файла состоит из пароля, например файл 000.pwd создан из пароля 000. надеюсь что с помощью форума удасться разобраться в этом вопросе. Thx!
Там вроде закрытый ключ просто шифруется симметричным алгоритмом с использованием пароля, и в файле хранится уже зашифрованный закрытый ключ, и пароля там нет, так что никак...
Пока что видно только то, что это какой-то симметричный шифр с размером блока в 64 бита (DES, ГОСТ, IDEA, TEA, RC5, BlowFish) в режиме ECB. Анализаторы кода на предмет поиска известных криптоалгоритмов не пробовал ?
\xBA\x6F\xE1\x6D\x9A\x64\x50\x48, \x18\x39\x3A\xF8\xAB\xA4\xEE\xFA, \x85\x4D\x57\x4B\xA0\xC0\x01\x84 паттерны есть, возможно первый это идентификатор сертификата. хотя это больше похоже на гадание - выкладывай уже и бинарь который их генерит, будет сильно проще
какой анализатор кода подходит для этой задачи лучше всего?? формат - ELF (*nix) не могу по ряду причин :-\
А из перечисленных здесь : http://www.wasm.ru/forum/viewtopic.php?id=27643 ни один ELF не берет ? Надо срочно написать что-нибудь аналогичное под многие платформы ...
обьяснение, что это за файл: если создавать сертификат вручную то нужно вводить passphrase, которой будет зашифрован закрытый ключ: Код (Text): [root@w tmp]# openssl req -new -x509 -keyout key.pem -out pub.pem -passout pass:777777 Generating a 1024 bit RSA private key ...............................++++++ ....++++++ writing new private key to 'key.pem' ----- You are about to be asked to enter information that will be incorporated into your certificate request. What you are about to enter is what is called a Distinguished Name or a DN. There are quite a few fields but you can leave some blank For some fields there will be a default value, If you enter '.', the field will be left blank. ----- Country Name (2 letter code) [AU]: State or Province Name (full name) [Some-State]: Locality Name (eg, city) []: Organization Name (eg, company) [Internet Widgits Pty Ltd]: Organizational Unit Name (eg, section) []: Common Name (eg, YOUR name) []: Email Address []: Обычно для служб которые стартуют автоматически (Apache) эту защиту снимают. Код (Text): openssl rsa -in key.pem -out key2.pem В этой же программе, ключ остается зашифрованным, а пароль лежит в отдельном файле. Код (Text): [root@w tmp]# cat key.pem -----BEGIN RSA PRIVATE KEY----- Proc-Type: 4,ENCRYPTED DEK-Info: DES-EDE3-CBC,017F184709C36907 hwFkKPvslmZ+h/ULgmzq3kr9as4pJw8HkF5uPDRFMFHXNBTCgY9oEKDMwDhlFaTA JaNMwmy+qlyXhF9QItm0GFNJHZaCB6meVY9KoPQP1bLwAFBK0SnnT4g5lK0JG+FM jH5uGavZI9owl2mhzdi4BvwoBmv4IGDuFKbTgsAxZPCWhnmWck0LLUHR+/an67nK DxrETAeduI+iojntkRNkR5btQMc5/eyhB8BBDPI+H39cjISW4YVbkVvkeHrYCb9l yTyZ+AoFNN8vl2p0X73APIug2m0XpjPvRoGu6jodQbpl+DgD/zCne4QLAGVl562L phaGhOwUhSDMBkK1vu06xGpWaVo99njq0u/pkKzIni5Apf/g1himxC35AvMFvMxQ o+1mOIQJFAfL34NXcHXcXE4aXvzDqKji/IaI6lELDOmuky/CY222fNq7M1S10u5c Oo0Ua023AcIXl9ZSzDviCmWo5cfuYKUC5nwwyKN0bSLx4v4uzcWezGO/fNNvGj0o z2Wohn1fNyF7FipEeToO1KyPYrV451prmTFG4S66sGU1R0fp+yLr3v9bVg6qDTHu HYLGXS6iboYMWaVqiYoMn697zH4/M2pnRWt6pRJ03DykSHAB3bcJTcutC8KYmank /T8ZJ6zEYrQECbygm2FdYiijWutp/86r3/lhry95j67q5tD4/eg06op8hgteFjiu H/1CXEcp9UkAYau9nSauJGS/YX15eMm431Y5LK162gaRyTIZEJDaRy06fE6mRAoC HBhDM2KywPXJyCQljuevdvHm5ZmG1PVm6XRFjF2qFdYQV3pBhOhhJA== -----END RSA PRIVATE KEY-----
да что тут объяснять - берешь бинарь, суешь в IDA и смотришь как и что он там шифрует, а результат анализировать возможно и интересно, чисто со спортивной точки зрения, но никому кроме вас не нужно. imho.