Копирование неэкспортируемого ключа с JaCarta LT

Программирование, Хакинг, Безопасность, Софт, Железо, а также всё связанное с компьютерами
Funtmos
Сообщения: 7
Зарегистрирован: 07 мар 2023, 13:51
Благодарил (а): 1 раз

Re: Копирование неэкспортируемого ключа с JaCarta LT

Сообщение Funtmos »

mv-tender писал(а):
07 мар 2023, 16:16
SmartcardSniffer.dll из первого поста из архива из папки bin/x86_64
Попробуйте 32 битный dll только в реестре нужно прописать по этому пути
[HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows NT\CurrentVersion\Windows\AppInit_DLLs]
k0smo
Сообщения: 2
Зарегистрирован: 11 мар 2023, 17:21
Поблагодарили: 2 раза

Re: Копирование неэкспортируемого ключа с JaCarta LT

Сообщение k0smo »

Собрал небольшой скрипт, помогающий собирать и обрабатывать файл полученные после разбора дампа. Является дополнением к инструкции, которая в начале темы, все необходимые настройки с dll и установкой Perl должны быть произведены.

Что делает скрипт: ищет файлы по маске 30_22_04_20 и 30_36_04_20 и производит их копирование через утилиту DD с фиксированной длиной, побайтово, тем самым получая сразу primary.key и masks.key нужной величины. Чистит директорию от файлов *_in*
Скрипт на Python ищет последовательность файлов свыше 199 байт, затем добавляем файл предшествующий и следующий за данной последователь, в результате данные файлы объединяются в header.key

Как использовать:
1) Установить Python 3 в систему. Например, версию 3.8.9 если используется Win7. Обязательно поставить галочку при установке для интеграции в переменные среды системы Add Python 3.8 to PATH Изображение.
Проверить, что работает путём запуска команды python в командной строке - должен запуститься IDLE Python
https://www.python.org/downloads/windows/
2) Размести в папке c:\1 файл dd.exe
дистрибутив http://www.chrysocome.net/downloads/dd-0.6beta3.zip
Страница с описанием http://www.chrysocome.net/dd
3) Архив со скриптами состоит из 3х файлов:
Perl_maker.bat - выполняет perl writeBinaryAPDU.pl < rundll32.exe.txt
Maker.bat - запускает вышеописанные процессы
jacarta.py - выполняет задачу по поиску файлов для header.key
Порядок действий:
1) положить Perl_maker.bat в C:\1\ там уже должен быть файл writeBinaryAPDU.pl
2) выполнить Perl_maker.bat
3) поместить Maker.bat и jacarta.py в созданную скриптом на предыдущем шаге папку, например 1678545860
4) Запустить Maker.bat - в директории, например 1678545860 будет создана еще одна директория cont - в ней будет 3 файл primary.key, masks.key, header.key
5) Добавить к этим файлам name.key и поместить на съемный диск
Архив со скриптами https://disk.yandex.ru/d/YIdn0BIr2IrxJA
ссылка на видео работы скрипта https://disk.yandex.ru/i/HhAmBEu46wJidQ

На большом количестве подписей протестировать возможности не было, так что вероятны ошибки в работе алгоритмов. Буду рад обратной связи :)
Зореславский
Сообщения: 1
Зарегистрирован: 13 мар 2023, 21:23
Благодарил (а): 1 раз

Re: Копирование неэкспортируемого ключа с JaCarta LT

Сообщение Зореславский »

k0smo писал(а):
11 мар 2023, 22:10
Собрал небольшой скрипт, помогающий собирать и обрабатывать файл полученные после разбора дампа. Является дополнением к инструкции, которая в начале темы, все необходимые настройки с dll и установкой Perl должны быть произведены.

Что делает скрипт: ищет файлы по маске 30_22_04_20 и 30_36_04_20 и производит их копирование через утилиту DD с фиксированной длиной, побайтово, тем самым получая сразу primary.key и masks.key нужной величины. Чистит директорию от файлов *_in*
Скрипт на Python ищет последовательность файлов свыше 199 байт, затем добавляем файл предшествующий и следующий за данной последователь, в результате данные файлы объединяются в header.key

Как использовать:
1) Установить Python 3 в систему. Например, версию 3.8.9 если используется Win7. Обязательно поставить галочку при установке для интеграции в переменные среды системы Add Python 3.8 to PATH Изображение.
Проверить, что работает путём запуска команды python в командной строке - должен запуститься IDLE Python
https://www.python.org/downloads/windows/
2) Размести в папке c:\1 файл dd.exe
дистрибутив http://www.chrysocome.net/downloads/dd-0.6beta3.zip
Страница с описанием http://www.chrysocome.net/dd
3) Архив со скриптами состоит из 3х файлов:
Perl_maker.bat - выполняет perl writeBinaryAPDU.pl < rundll32.exe.txt
Maker.bat - запускает вышеописанные процессы
jacarta.py - выполняет задачу по поиску файлов для header.key
Порядок действий:
1) положить Perl_maker.bat в C:\1\ там уже должен быть файл writeBinaryAPDU.pl
2) выполнить Perl_maker.bat
3) поместить Maker.bat и jacarta.py в созданную скриптом на предыдущем шаге папку, например 1678545860
4) Запустить Maker.bat - в директории, например 1678545860 будет создана еще одна директория cont - в ней будет 3 файл primary.key, masks.key, header.key
5) Добавить к этим файлам name.key и поместить на съемный диск
Архив со скриптами https://disk.yandex.ru/d/YIdn0BIr2IrxJA
ссылка на видео работы скрипта https://disk.yandex.ru/i/HhAmBEu46wJidQ

На большом количестве подписей протестировать возможности не было, так что вероятны ошибки в работе алгоритмов. Буду рад обратной связи :)
Огромное спасибо за ваш труд
Папка cont создается и в ней создаются primary.key и masks.key но не создается header.key
У меня самые большие по весу файлы два по 100 байт, 111_out(100)03_02_06_40 и 116_out(100)03_02_06_40 и я не понимаю как собрать header.key подскажите пожалуйста подробнее...
10 байтовые с таким названием 018_out(10)30_2A_16_28
я правильно понимаю что нужно забросить в одну папку
111_out(100)03_02_06_40
116_out(100)03_02_06_40
все 10 байтовые типа 018_out(10)30_2A_16_28
и у меня нет 48 байт - есть 34 байт и потом 64 байт (это в папке после использования Maker.bat)
Если делать новую выборку без использования скрипта то там есть еще файл 126_in(45)80_4C_20_02 но 48 байт всеравно нет

И еще не понятно откуда брать файлы, так как после отработки Maker.bat часть файлов удаляется, видимо это те которые используются в primary.key и masks.key а для header.key брать из оставшихся файлов? или нужно делать новую выборку файлов и из них формировать header.key
Funtmos
Сообщения: 7
Зарегистрирован: 07 мар 2023, 13:51
Благодарил (а): 1 раз

Re: Копирование неэкспортируемого ключа с JaCarta LT

Сообщение Funtmos »

Зореславский На пятой странице я подробно описал какие файлы должны войти в header.key viewtopic.php?p=20713#p20713
не нужны все 200 байтные файлы и не нужно сортировать по размеру файлов. Найдите первый файл 30_82_ по вашему скрину это 011_out вот после него по прядку должны идти 200 байтные файлы 012_out 013_out и по скину последний будет 025_out в количестве 14 штук, вот вам и нужно взять первый 30_82 + 14 этих 200 байтных + следующий за последним 200 байтным фалом. В итоге должно быть 16 фалов из которых и нужно слепить header.key
Funtmos
Сообщения: 7
Зарегистрирован: 07 мар 2023, 13:51
Благодарил (а): 1 раз

Re: Копирование неэкспортируемого ключа с JaCarta LT

Сообщение Funtmos »

Сегодня провел эксперимент с Рутокен лайт по аналогии с Jacarta оказалось даже проще, файлы обрезать не пришлось primary.key, masks.key, name.key просто переименовать, а header.key лепится из 13 фалов, 11 из которых по 256 байт.
Аватара пользователя
Андрей
Архитектор
Сообщения: 7935
Зарегистрирован: 06 май 2015, 14:10
Откуда: Чехов, МО
Благодарил (а): 746 раз
Поблагодарили: 498 раз

Re: Копирование неэкспортируемого ключа с JaCarta LT

Сообщение Андрей »

Puh_files.jpg
Ко мне в личке обратился товарищ, не может собрать header.key. Это его скриншот.

 ! Сообщение из: Андрей
На скриншоте видно, что брать надо со 165 по 180.
Инструкция писал(а):Находим файлы с самым большим объёмом, плюс берём кусок до и кусок после.
Funtmos писал(а):Найдите первый файл 30_82_ , после него по порядку должны идти 200 байтные файлы в количестве 14 штук, + следующий за последним 200 байтным файлом
У вас нет необходимых прав для просмотра вложений в этом сообщении.
k0smo
Сообщения: 2
Зарегистрирован: 11 мар 2023, 17:21
Поблагодарили: 2 раза

Re: Копирование неэкспортируемого ключа с JaCarta LT

Сообщение k0smo »

Зореславский писал(а):
14 мар 2023, 11:27
10 байтовые с таким названием 018_out(10)30_2A_16_28
я правильно понимаю что нужно забросить в одну папку
111_out(100)03_02_06_40
116_out(100)03_02_06_40
все 10 байтовые типа 018_out(10)30_2A_16_28
Если есть возможность, приложите скриншот/текстовый список имён всех файлов. Возможно данные о том, что файлы должны быть >200 байт не совсем верные у нас. Тогда придёт дорабатывать алгоритм
Stanislav2112
Сообщения: 3
Зарегистрирован: 11 фев 2023, 20:44

Re: Копирование неэкспортируемого ключа с JaCarta LT

Сообщение Stanislav2112 »

Андрей писал(а):
19 фев 2023, 16:58
Stanislav2112, хотелось бы отчёта о том, удалось ли вам решить проблему.
Добрый день! Нет, к сожалению, не получилось. Сделать экспортируемым не получается, потому что там кроме неэкспортируемости и другие ошибки, и после обработки certfix получаются такие же битые файлы ключа, их вообще КриптоПро не видит. При этом я десятками копирую ключи с Рутокен, знаю, как это делается. Запомненные пароли тоже удалял, никакого эффекта. Здесь какая-то другая ошибка, пока не хватило сил и времени разбираться дальше.
Вам спасибо за помощь в любом случае.
a357
Сообщения: 1
Зарегистрирован: 08 апр 2023, 16:37

Re: Копирование неэкспортируемого ключа с JaCarta LT

Сообщение a357 »

Доброго вечера! Спасибо за инструкцию, получилось скопировать ЭЦП ФНС с токена JaCarta LT.
Споткнулся на пункте 3.4 - получение файла name.key
Других контейнеров в наличии не было, задачей по копированию занимался в первый раз. Помогла статья https://asadagar.ru/2023/03/03/kopiruem ... acarta-lt/. Может кому пригодится
deangelis
Сообщения: 3
Зарегистрирован: 13 апр 2023, 11:29

Re: Копирование неэкспортируемого ключа с JaCarta LT

Сообщение deangelis »

Приветствую! Подскажите, а с JaCarta PRO описанный метод теоретически должен работать? Есть токен eToken PRO (Java) 72K, аналог JaCarta Pro (Java), удалось получить дамп, с primary.key и masks.key получилось по инструкции, name.key создал копию файла из инструкции https://asadagar.ru/2023/03/03/kopiruem ... acarta-lt/ , но возможно это неправильно, у меня 4 файла 102_out(256)30_26_16_24 размером 256 байт. С header.key затык. Последовательность файлов нашлась такая:
header.jpg
Видно, что файл 30_82 уже большого размера. Пробовал собирать header.key из 191-205, 192-205 (естественно, только файлы out) – в итоге на готовый контейнер КриптоПро говорит "отсутствуют закрытые ключи". Хотелось бы понять, это я что-то не так делаю, или токен встроенной криптографией не даёт получить ключ? Извините, если коряво изложил.
P.S: Токен такой:
У вас нет необходимых прав для просмотра вложений в этом сообщении.