Автор НиколайНа чтение 21 мин.Просмотров179Опубликовано
Подскажите , как скопировать с джакарты подпись фнс?
Так с джакарты не копируется
Копируются, люди уже копируют. Вот только софт походу они писали сами.
Не, на че угодно пишут, лишь бы защищенный носитель
На все пишут. Рутокен, рутокен лайт, етокен, джакарта
да, ФНС записывают на все что угодно (защ.носители)
но вот люди уже создали софт чтобы вытаскивать подпись из джакарты . будет ждать слива.
На прошлой неделе впыживал lite, человек сказал, что пришёл с етокеном ранее полученном в банке, его взяли,воткнули в комп, потом сообщили что записать не могут так как носитель не сертифицирован.
Я как то пробовал стереть етокен, вообще не нашёл никакой утилиты для этого. Как записать тоже не знаю. Делал это только с помощью алгоритмов банка.
да, ФНС записывают на все что угодно (защ.носители)
но вот люди уже создали софт чтобы вытаскивать подпись из джакарты . будет ждать слива.
слив я пока знаю только такой: гуглить APDU-траффик. На основе этой статьи копировать самостоятельно. Софтины не видел. На основе этой статьи я могу скопировать точно: Jacarta LT, Esmart Token, Safenet Pro Java (Etoken)
***
Получить ответы на вопросы регистрации и внесения изменений ЮЛ и ИП можно и в телеграм-чате Регфорума .
Переходите по ссылке https://t.me/reg_regforum
Да, конечно. A PDU трафик погуглите. Уже много статей. Но это сложнее гораздо чем рутокены копировать сразу предупрежу.
Либо положить все эти файлы в отдельную директорию и
3.4. name.key — просто взял от другого контейнера
Затем положил на флэшку, с помощью CertFix (версии 1.1.27.3154) сделал экспортируемым и скопировал в реестр.
Есть насущный вопрос: как скопировать контейнер ЭЦП от удостоверяющего центра ФНС России в реестр?
Воспользовался утилитами tokens.exe и CertFix по инструкции . Контейнер из Рутокена я извлёк, но в реестр скопировать его не смог. Выскакивает сообщение о том, что контейнер не может быть скопирован, поскольку не установлен соответствующий флаг.
Кто каким образом смог преодолеть запрет на копирование контейнера в реестр?
Есть насущный вопрос: как скопировать контейнер ЭЦП от удостоверяющего центра ФНС России в реестр?
Воспользовался утилитами tokens.exe и CertFix по инструкции . Контейнер из Рутокена я извлёк, но в реестр скопировать его не смог. Выскакивает сообщение о том, что контейнер не может быть скопирован, поскольку не установлен соответствующий флаг.
Кто каким образом смог преодолеть запрет на копирование контейнера в реестр?
А если не в реестр копировать, а на флешку, как раньше и потом установить в реестр, так не пробовали?
А если не в реестр копировать, а на флешку, как раньше и потом установить в реестр, так не пробовали?
Пробовал. Не помогло.
При формировании заявки в УЦ можно поставить флажок на запрет копирования. Может быть у Вас тот самый случай. Обратитесь в техподдержку УЦ.
Обратитесь в техподдержку УЦ.
В техподдержку УЦ ФНС России? На предмет некопируемости контейнера выданного их УЦ сертификата? Это шутка?
Вот ведь хлопоты создали всем с этой неизвлекаемостью. И это ещё электронная подпись моя собственная. Я не представляю, как выкручиваются те, кто сейчас работает с электронными подписями клиентов. Ужас ужасный.
Может быть у Вас тот самый случай.
Именно тот случай. Всем известный. Это ЭЦП от УЦ ФНС России.
Чтобы извлекать ЭЦП выданные ФНС, то изначально нужно записывать на Рутокен Лайт, остальные варианты не извлекаемые, так что имейте ввиду, когда следующий раз будете покупать токен для ЭЦП ФНС.
Чтобы извлекать ЭЦП выданные ФНС, то изначально нужно записывать на Рутокен Лайт, остальные варианты не извлекаемые, так что имейте ввиду, когда следующий раз будете покупать токен для ЭЦП ФНС.
Понял. Спасибо за информацию!
Понял. Спасибо за информацию!
Не обязательно Lite. Рутокен S тоже легко копируется.
Рутокен S тоже легко копируется.
Не копируется. Или, по крайней мере, не так уж легко копируется. У меня как раз он.
Не копируется. Или, по крайней мере, не так уж легко копируется. У меня как раз он.
Ну вы сами написали, что скопировали файловую систему. Если не получается запихать в реестр у вас, то скопируйте на флэшку и пользуйтесь с флэшки. Можно виртуальную флэшку подключить.
А так-то там простая инструкция есть в соседних топиках. Поиском по форуму найдите. Штуки 3-4 уже ветки на эту тему.
Если не получается запихать в реестр у вас, то скопируйте на флэшку и пользуйтесь с флэшки.
Да весь смысл в том, чтобы не пользоваться внешним носителем, ибо это неудобно: уже и USB-портов не хватает.
А так-то там простая инструкция есть в соседних топиках.
Не нашёл такую инструкцию. Нашёл другую (см. в начале темы), но она не сработала.
Похоже, не судьба. Мучение одно с этими USB-носителями: хоть обвешайся ими.
Спасибо за помощь!
Однако ссылка для загрузки этой версии указанной утилиты не работает.
Попробуйте тут https://wdho.ru/aebec5 . Версия 32. Правда, я не очень опытный пользователь файлообменников, так что если не получится, пришлите адрес почты в личку, отправлю.
Кстати, везде пишут, что при использовании утилиты надо отключать интернет, чтобы не обновилась.
В данном вопросе необходимо учить матчасть)))) и сделать верный выбор при покупке токена.
Попробуйте тут https://wdho.ru/aebec5 . Версия 32. Правда, я не очень опытный пользователь файлообменников, так что если не получится, пришлите адрес почты в личку, отправлю.
Кстати, везде пишут, что при использовании утилиты надо отключать интернет, чтобы не обновилась.
У Вас можно попросить программу токенс? Ее контур уже удалил.
Данный способ работает не только на JaCarta LT и ESMART Token (нет личного опыта только сторонний отзыв, и непонятно какая именно модель 64K или ГОСТ).
Данное способ точно не работает на токенах Рутокен ЭЦП 2.0 и токенами формата PKCS#11
Что понадобится:
Исходный токен JaCarta LT (на который записан оригинальный контейнер).
Второй токен Rutoken Lite (сейчас удобней их юзать)
Флешка (хотя по идеи и внешний HDD подойдет)
Нужен чистый ПК желательно с Windows 7 x86/64 (я использовал x86). Потому что если включён Secure Boot (версии Windows 8 и выше), то инфраструктура AppInit_DLLs выключена.
Подготовка ПК для работы:
Скачать и поставить Microsoft Visual C++ 2010 x86
Скачать и поставить Strawberry Perl 5.32.1.1 32bit
Скачать и поставить Единый Клиент JaCarta 3.0 32bit
Скачать и поставить КриптоПро CSP 5.0.12600
Скачать и распаковать WinHex
Скачать и поставить Total Commander (просто с ним удобней)
Конфигурация => Настройка => Табуляторы => Размеры в панелях => “в байтах”
Tokens.exe + CertFix.000032.exe
Скачать Smartcard Sniffer (Копия проекта внизу)
Библиотеку необходимой разрядности SmartcardSniffer.dll кидаем в папку “C:\SmartcardSniffer\”
Прописать в реестре загрузку SmartcardSniffer.dll и значения переменных (кому лень ручками, есть .reg файл в архиве SmartSniffer.zip):
out – направление передачи: out – из токена в приложение, in – от приложения в токен;
– количество переданных/полученных байтов;
39_6A_42_32 – первые 4 байта.
Собираем контейнер:
primary.key – размер 36 байт, начинается с 30_22_04_20
Ищем файлы вида №_out30_22_04_20. У меня таких было 2 штуки, размером по 80 байт, начало одинаковое, в конце нули, взял один и обрезал через WinHex до 36 байт, результат сохранил как primary.key
masks.key – размер 56 байт, начинается с 30_36_04_20
Ищем файлы вида №_out
30_36_04_20. У меня таких было 2 штуки, размером по 64 байта, одинаковые, в конце нули, взял один и обрезал через WinHex до 56 байт, результат сохранил как master.key
header.key – самый большой файл.
Находим файлы с самым большим объёмом, плюс берём кусок до и кусок после. У меня таких файлов было много, но их все можно было разбить на группы и получилось 6 групп по 16 файлов (18 если учитывать нулевые).
Копируем все файлы в “C:\SmartcardSniffer\header” и склеиваем их командой:
copy /B * header.key
name.key – тут есть два варианта:
Просто взять от другого контейнера
Сгенерировать свой на базе дампа
Если с первым пунктом всё понятно, то со вторым чуть интересней. В дампе ищем файл — следующего вида №_ out(длина имени)30 _длина имени_ 16_ длина имени – 2.
Интересен тот факт, что содержимое этого файла, в целом, не важно, поэтому можно сгенерить свой файл name.key, с соблюдением формата его первых четырех байт.
У себя я нашел один такой файл, 163_out30_26_16_24. Из него и сделал name.key.
И накидал в него данных, чтобы привести его виду обычного name.key из рабочего контейнера:
Результат сохранил как name.key
Далее схема работы простоя, по аналогии со статьей с Rutoken Lite :
Все полученные ключи кидаем в отделённую папку (числового вида, формата “2560”) на флешку.
Разблокируем
Копируем на новый носитель.
Ранее, я написал статью, как выдернуть новые, не экспортируемые ключи ЭП из RuToken .
Сейчас же, я хочу описать свой опыт на тему «выдёргивания» ключа из esmart.
В этих наших интернетах, есть несколько статей по выдёргиванию ключей из JaCarta LT. В них, мельком упоминалось, что примерно так же, можно извлечь ключи и из esmart, но никаких подробностей не было.
Тут мне понадобилось извлечь ключик из esmart и я столкнулся с некоторыми моментами, а учитывая, что я не то, чтобы «кулхацкер» — некоторые моменты были мне не понятны.
Поэтому, после того, как всё получилось — я решил написать свою, более подробную инструкцию.
1) Windows 7 (x86/x64), либо более поздние ОС, но с отключенным Secure Boot. Иначе, SmartcardSniffer работать не будет.
2) Редист
Microsoft Visual C++ 2010 x86
(если не установлен)
3)
Strawberry Perl 5.32.1.1 32bit
— Нужен для работы скрипта, разделяющего дамп по действиям.
4) Драйвера esmart.
Легче всего, вставить esmart в USB, зайти на
i.kontur.ru
и настроить рабочее место, например, под работу с Диадок. Тогда установятся все нужные компоненты.
Кстати! Самое главное — не устанавливать компоненты, да и вообще не работать по RDP!
Компоненты не запустятся. Если нужно работать удалённо — запустите AnyDesk, либо VNC (ну, или чем вы там любите подключаться?). Если не хотите лишнего ставить — попробуйте стянуть драйвера на сайте esmart
4.1) Драйвера JaCarta.
Ставятся точно так же, как и драйвера esmart через i.kontur.ru .
5) КриптоПро (Если зайдёте на i.kontur.ru — то криптопро скачается сама. Если ставите руками — то вот свежая версия )
7) Некоторые советуют Total Commander , но мне удобнее пользоваться Q-Dir .
В нём нужно настроить: Меню Настройки\Размер файлов, там поставить галочки: «Внутренний алгоритм Q-Dir» и «Размер в байтах».
Готовую, настроенную версию можно стянуть тут .
8) Smartcard Sniffer качаем SmartcardSniffer и оттуда достаём «SmartcardSniffer.dll» в моём случае, т.к. у меня Win7x86 — дёргаю файлик из папки SmartcardSniffer-0.1\SmartcardSniffer\bin\x86.
Его кидаем на диск C:\, в папку «SmartcardSniffer» ( Желательно, сделать именно так, как в инструкции, т.к. команды, в дальнейшем, будут опираться именно на этот путь ).
Так же, нужно поправить реестр:
Вот готовый файлик реестра
9) Файл writeBinaryAPDU.pl (готовый файл лежит здесь )
Помещаем его в “C:\SmartcardSniffer\”
10) CertFix версии 1.1.27.3154. Нужен для конвертации ключа в экспортируемый. Про более старые — ничего не скажу, а вот новые уже не могут конвертировать. И самое поганое — при первом же запуске — программа сама обновится до новой версии. Поэтому, ей нужно обломать доступ в интернеты.
Устанавливаем все компоненты и ОБЯЗАТЕЛЬНО перезагружаем компьютер.
I. Собственно, сам процесс извлечения ключа из ESMART:
1) Получаем дамп диалога КриптоПро с токеном:
1.1) Вставляем ключ в ПК,
1.2) Запускаем КриптоПро,
1.3) Открываем вкладку «Сервис»,
1.4) Нажимаем «Протестировать»
1.5) Выбираем ключ и вводим пароль (кто не знал — стандартный пароль от ruToken и ESMART Token — 12345678 , от JaCarta 1234567890 (в старых версиях (до 15.01.2019) стоял 1eToken), админские пароли можно глянуть тут и тут ),
1.6) В открывшемся окне, смотрим пункт «Экспорт ключа» и убеждаемся, что он действительно не экспортируемый. Жмём «Готово» и закрываем программу.
1.7) В папке “C:\SmartcardSniffer\” появится дамп-файл «rundll32.exe.txt»
2) Разбиваем дамп на отдельные файлы:
2.1) Запускаем консоль (Win+R, пишем CMD и жмём «Enter»)
2.2) В консоли меняем папку командой: cd C:\SmartcardSniffer
2.3) Пишем команду perl writeBinaryAPDU.pl < rundll32.exe.txt
2.4) Появится папка с кучей файлов
2.5) Сразу, чтоб облегчить жизнь, в папке, жмём Ctrl+F, в поиске вбиваем «in» и удаляем все файлы, содержащие в названии это слово.
3) Собираем контейнер:
3.1) Первым идёт primary.key
3.1.1) Ищем файл, содержащий в названии 30_22
У меня он один, но у вас могут быть их несколько.
3.1.2) Выбираем тот, что по меньше и перетаскиваем в WinHEX.
3.1.3)Видим, что в конце стоят нули. Подрезаем файл до 36 байт (у меня это были все нули):
3.1.3.1) Ставим курсор на последний ноль, зажимаем клавишу Shift и стрелочками двигаем курсор, выделяя данные (лучше выделить не все нули, а оставить сначала половину и посмотреть, сколько данных обрезали).
3.1.3.2) Жмём клавишу Del и смотрим сколько отрезали. Должно остаться 36 байт.
3.1.4) Сохраняем файл под именем primary.key куда-нибудь отдельно (я сохранил в C:\SmartcardSniffer\2)
3.2) Далее, идёт файл masks.key:
3.2.1) Ищем файл с именем, содержащем 30_36
3.2.2) Подрезаем его до 56 байт (так же как предыдущий) и сохраняем под именем masks.key.
3.3) Ну и самый геморный файл — header.key:
3.3.1) Ищем самые большие файлы (для этого нам и понадобится Q-Dir с настройкой отображения байтов).
3.3.2) Берём файл, идущий перед ними (весит обычно, 16 байт и в названии содержит 83_02 (по крайней мере, у меня во всех случаях так было)) и тот, что идёт после них (он чуть меньше самых больших файлов (бывает так, что в конце, может быть два одинаковых по размеру файла. Берём любой(см скриншот ниже))).
Распишу подробнее: нам нужен первый файл, обычно, в ESMART Token он называется *_out
30_82_0A_BE, в JaCarta, называется *_out
30_82_0A_32.
После 30_82, названия могут быть разными, однако, «out
30_82″ присутствует всегда (по крайней мере, на моей тачке, у ESMART Token и JaCarta — точно.
В моём случае, их было 12. Может быть 14 (например, как у JaCarta)
3.3.3) Копируем эти файлы в отдельную папку (в данном случае, я скопировал в C:\SmartcardSniffer\3)
3.3.4) В консоли меняем рабочую папку на C:\SmartcardSniffer\3 (ну, или на ту, в которую вы скопировали файлы) командой cd C:\SmartcardSniffer\3
3.3.5) Пишем команду copy /B * header.key и жмём энтер
3.3.6) В папке C:\SmartcardSniffer\3 появился файл header.key
3.3.7) Его помещаем в папку к другим файлам.
3.4) Остаётся получить файл name.key. Конечно, можно его как-то вытащить из того сборища файлов, но легче взять готовый. Например, вот здесь . Отображаться в КриптоПро он будет как «Test_123», но потом, ключ легко будет переименовать после того, как вы сделаете его экспортируемым.
Если хотите — то вот вам файл с именами: esmart_1, esmart_2, esmart_3? jakarta_1, jakarta_2, jakarta_3, Export_1, Export_2, Export_3
3.4.1) Копируем файл в папку с primary.key, masks.key и header.key.
3.5) Переименовываем папку в «1234» (можно использовать любые 12 символов, (цифры и ТОЛЬКО латинские буквы) и закидываем папку на любую флешку или жёсткий диск, имеющий любую букву, кроме диска C:\ (я использую виртуальный диск (VHD). Примонтировал такую виртуальную «флешку» и балуешься).
3.6) Снова запускаем КриптоПро и находим сертификат.
3.7) Убеждаемся, что ошибок не обнаружено.
3.8) В принципе, ключ уже можно использовать так. Многие так и делают: закидывают папку на флешку и спокойно работают. Но можно пойти дальше и сделать ключ экспортируемым (на сколько это видно госорганам, когда подключаешься к их порталам — я не знаю. Но есть люди, которым принципиально нужно скопировать ключ на токен и использовать его как раньше.
Описание по конвертации ключа в экспортируемый, перейдите в раздел III.
II. Процесс извлечения ключа из JaCarta:
1) Выполняем пункты с 1 по 3.2.2, пункт 3.3 тоже похож, только файлов может быть меньше и после удаления файлов *in*, нужные нам файлы будут идти практически по порядку.
2) Ровно таким же способом, как описано в пунктах с 3.3.1 по 3.3.7 собираем header.key
3) И так же, используем любой name.key
III. Конвертация не экспортируемого ключа в экспортируемый.
2) Запускаем CertFix от имени администратора и находим наш ключ. Смотрим на столбец «Экспорт закрытого ключа» и видим параметр «DENIED».
3) Зажимаем клавишу «Shift» на клавиатуре, нажимаем правой кнопкой мыши по ключу и выбираем пункт «Сделать экспортируемым (файловая система)».
4) После чего, получаем уведомление, что всё прошло успешно и резервная копия лежит в папке контейнера.
Если зайти в папку с ключом — можно увидеть каталог бэкапа.
5) Ну а дальше всё просто:
Ну, и собственно всё. Позже, выложу ссылки на сборник программ в одном архиве и образ виртуалки VMWare с настроенной виндой под ESMART и JaCarta.
Как сделать, чтобы все было хорошо?
Чтобы с помощью продуктов ООО “КРИПТО-ПРО” реализовать технологию ФКН, необходимо:
1. Купить специальную версию библиотеки СКЗИ:
— для Рутокен ЭЦП — СКЗИ КриптоПРО Рутокен CSP .
— для JaCarta ГОСТ – СКЗИ КриптоПро ФКН CSP .
2. Одновременно с библиотекой СКЗИ необходимо приобрести специально подготовленные токены, содержащие в себе программные части (апплеты), с которыми умеет работать КриптоПРО Рутокен CSP или КриптоПро ФКН CSP соответственно.
По-новому взглянем на наш тестовый стенд
В качестве одного из ключевых носителей использовался Рутокен ЭЦП. Через «Панель управления Рутокен» о нем можно получить следующую информацию:
В последней строке указана фраза «Поддержка КриптоПРО ФКН: Нет», а это значит, что на токене нет апплета, с которым умеет работать СКЗИ КриптоПРО CSP. Таким образом, реализация технологии ФКН с использованием СКЗИ и токенов, описанных в конфигурации тестового стенда, невозможна.
Аналогичная ситуация и с JaCarta ГОСТ. Более того, СКЗИ КриптоПРО CSP, по крайней мере та версия, которая использовалась в тестовом стенде, использует данные ключевые носители как «обычные токены», которые, в свою очередь, являются просто носителями ключа.
Это утверждение очень просто подтвердить. Для этого надо поставить СКЗИ КриптоПРО CSP на чистую машину без драйверов от токенов и подключить токен JaCarta ГОСТ. О С Windows 7 обнаружит токен JaCarta ГОСТ как «Устройство чтения смарт-карт Microsoft Usbccid (WUDF)». теперь можно попробовать создать ключ на токене и скопировать его в реестр компьютера. Весь функционал СКЗИ успешно отработает.
Матчасть
То, что на рынке принято называть токеном с неизвлекаемым ключом, правильно называется функциональным ключевым носителем (ФКН) ( доп. инфо ).
Использование ФКН требует особой организации взаимодействия между прикладным криптографическим ПО и библиотекой СКЗИ (криптопровайдером или, по-другому, CSP).
Здесь важно увидеть, что программная часть библиотеки СКЗИ должна знать о существовании на токене апплета, реализующего криптографический функционал (например, генерация ключа, подпись данных и т.д.) и уметь с ним работать.
Получается, что Рутокен ЭЦП и JaCarta ГОСТ не являются токенами с неизвлекаемым ключом?
Опять нет. Данные устройства могут реализовывать функционал ФКН (но, возможно, в меньшем объеме, чем при использовании их совместно с СКЗИ КриптоПРО), но для этого нужен софт, который умеет работать с апплетами размещенными на токенах. Таким софтом может быть КриптоАРМ Стандарт 5 Плюс . Он это умеет . При генерации ключевой пары в мастере КриптоАРМ можно выбрать криптопровайдер, который будет использоваться, например, Rutoken ECP или eToken GOST. Это и позволит использовать токен как ФКН.
Выводы
Не верьте продавцам, чушь вам городящим. Использование обычных версий криптопровайдера КриптоПРО CSP и обычных Рутокен ЭЦП или JaCarta ГОСт не позволяют реализовать технологию ФКН.
Для использования технологии ФКН совместно с продуктами ООО «КРИПТО-ПРО» необходимы как специально подготовленные токены, содержащие апплет, с которым умеет работать СКЗИ, так и специальные версии криптопровайдера КриптоПРО CSP , которые умеют работать с апплетом на токенах.
Рутокен ЭЦП и JaCarta ГОСТ умеет самостоятельно реализовывать технологию ФКН, но для этого необходим специальный софт.
4. Скопируем ключевую информацию из рабочих ключевых документов
Как мы видим, ключевая информация успешно скопирована или, другим языком, извлечена из токенов с неизвлекаемым ключом. Получается, что производители токенов и СКЗИ врут? На самом деле нет, и ситуация сложнее, чем кажется на первый взгляд. Исследуем матчасть по токенам.
Методика тестирования
Смоделируем типовой процесс подготовки Администратором информационной безопасности ключевых документов для организации ЭДО:
генерируется контейнер закрытого ключа и запрос на сертификат открытого ключа;
после прохождения в удостоверяющем центре процедуры сертификации из запроса получается сертификат;
сертификат в совокупности с контейнером закрытого ключа образует готовую для использования ключевую информацию. Данную ключевую информацию, записанную на носителе, будем называть исходным ключевым документом ;
с исходного ключевого документа изготавливаются копии, которые записываются на отчуждаемые носители (далее будем называть их рабочими ключевыми документами ) и передаются уполномоченным пользователям;
после изготовления необходимого количества рабочих ключевых документов исходный ключевой документ уничтожается или депонируется на хранение в орган криптографической защиты информации.
В нашем случае мы не будем пользоваться услугами центров сертификации, а сгенерируем ключевой контейнер с самоподписанным сертификатом и разместим его в реестре компьютера (АРМа генерации ключевой информации), это и будет исходный ключевой документ . Затем скопируем ключевую информацию на Рутокен ЭЦП и JaCarta ГОСТ, изготовив рабочие ключевые документы . После этого уничтожим исходный ключевой документ , удалив из реестра ключевой контейнер. И, наконец, попробуем скопировать ключевую информацию с рабочих ключевых документов обратно в реестр.
Извлечение ключа из токена с неизвлекаемым ключом
Время на прочтение
Конфигурация тестового стенда
Соберем тестовый стенд с конфигурацией, типовой для машин, участвующих в электронном документообороте (ЭДО):
ОС MS Windows 7 SP1
СКЗИ КриптоПРО CSP 3.9.8423
Драйверы Рутокен для Windows (x86 и x64). Версия: v.4.1.0.0 от 20.06.2016, WHQL-certified
Единый Клиент JaCarta и JaCarta SecurLogon. Версия 2.9.0 сборка 1531
КриптоАРМ Стандарт Плюс 5. Версия 5.2.0.8847.
Для тестирования будут использоваться токены с неизвлекамым ключом: