Приглашаем всех 6 сентября 2022 года в 11:00 (МСК) принять участие в вебинаре “Особенности реализации требований приказа ФАПСИ №152 по учёту СКЗИ”, который совместно проведут компании КриптоПро и Spacebit.
В ходе мероприятия эксперты рассмотрят вопросы нормативного регулирования учета СКЗИ и выполнения соответствующих требований. Отдельное внимание будет уделено возможностям СКЗИ и особенностям их практического применения.
Ключевые темы:
- Разбор основных требований приказа ФАПСИ №152 по учету СКЗИ;
- Демонстрация возможностей системы X-Control по реализации требований приказа ФАПСИ №152;
- Обзор возможностей СКЗИ КриптоПро CSP 5.0;
- Текущий статус по сертификации различных версий КриптоПро CSP и КриптоПро УЦ.
Участие в мероприятии бесплатное, необходима регистрация.
Федеральное казначейство
официальный сайт Казначейства Россииwww.roskazna.ru
Программное обеспечение
Проверка должна быть осуществлена с помощью утилиты cpverify.exe , входящей в состав СКЗИ «КриптоПро CSP», либо иным другим сертифицированным ФСБ России шифровальным (криптографическим) средством, реализующим ГОСТ Р 34.11-94.
Утилиту cpverify.exe запускать можно из cmd или поместить вызов в bat-файл: cpverify.exe -mkимя_файла.
где имя_файла – полный путь и название скаченного архива, например, C:\1.0.0.44n.zip.
Контрольная сумма md5 может быть проверена, например, с помощью md5sum (linux) или FileChecksumIntegrityVerifier ().
26 июля 2018, 00:00 (26 июля 2018, 17:46)
Познакомиться с КриптоПро УЦ версии 2 (сборка 2.0.6904) и научиться развёртывать УЦ, подготовленный для выпуска квалифицированных сертификатов, вам поможет этот пошаговый практикум. Для работы вам потребуется скачать образ виртуальной машины в формате VMWare Workstation/vSphere/ESX и импортировать её в виртуальное окружение. Далее необходимо скачать инструкцию, в которой подробно описываются упражнения по развёртыванию и подготовке УЦ для выпуска квалифицированных сертификатов.
Загрузка и импорт виртуальной машины
В качестве гостевой ОС используется ознакомительная версия Microsoft Windows Server 2012 R2.
Образ для VMWare Workstation/VMWare vSphere (7 Гб) Контрольная сумма (ГОСТ Р 34.11 94): EEDDEE925562BCA85BDB530267618BD3B35FBC2A802A317D0444E82D5BC74976
Проверить целостность скачанного образа можно с помощью утилиты cpverify, подробнее здесь.
Импорт виртуальной машины в VMware Workstation
- Открыть VMware Workstation.
- В меню File выбрать Open или воспользоваться комбинацией (Ctrl-O).
- В появившемся окне указать путь до файла импортируемой виртуальной машины.
- В окне Import Virtual Machine оставить значения по умолчанию и нажать Import.
- Запустить виртуальную машину.
Импорт виртуальной машины в VMware vSphere
- Открыть vSphere Client.
- В меню File выбрать Deploy OVF template…
- На странице Source указать путь до файла импортируемой виртуальной машины и нажать Next.
- На страницах OVF Template Details, Name and Location оставить значения по умолчанию.
- На страницах Host\Cluster, Resource Pool определить хост назначения и его пул.
- На странице Disk Format оставить значения по умолчанию.
- На странице Ready to Complete нажать Finish.
- Запустить виртуальную машину.
Более детально о работе с КриптоПро УЦ 2.0 и миграции с КриптоПро УЦ 1.5 на КриптоПро УЦ 2.0 можно узнать на курсах авторизованного учебного центра Информзащита:
[Т012] Порядок развертывания и применения PKI на основе ПАК “КриптоПро УЦ” 2.0
[Т112] Порядок миграции на ПАК “КриптоПро УЦ” 2.0
- Страница для печати
Форум КриптоПро
»
Общие вопросы
»
Общие вопросы
»
csptest в составе Крипропро 4 что проверяет при проверке ЭП?
Nik_Pavel Оставлено | |
Добрый день. Подскажите, если вызываю csptest для тестирования валидности подписания бинарного (в данном случае PDF) файла отсоединенной гостовской УКЭП на документе, командой то что в таком случае будет проверено, когда утилита выдаёт итоговое положительное сообщение? Проверяться будет соответствие файла и сигнатуры ЭП, или и валидность отметки даты-времени самой ЭП в составе SGN-файла тоже? И не совсем ясно из стандартного хелпа к утилите – в процессе проверки выдаётся так же сообщение, не влияющее на итог проверки ЭП: Как правильно в командной строке задавить вывод этого сообщения – чтобы только итоговое выводилось? | |
Grey Оставлено | |
Автор: Nik_Pavel Добрый день. Подскажите, если вызываю csptest для тестирования валидности подписания бинарного (в данном случае PDF) файла отсоединенной гостовской УКЭП на документе, командой то что в таком случае будет проверено, когда утилита выдаёт итоговое положительное сообщение? Проверяться будет соответствие файла и сигнатуры ЭП, или и валидность отметки даты-времени самой ЭП в составе SGN-файла тоже? И не совсем ясно из стандартного хелпа к утилите – в процессе проверки выдаётся так же сообщение, не влияющее на итог проверки ЭП: Как правильно в командной строке задавить вывод этого сообщения – чтобы только итоговое выводилось? Добрый день. С уважением, | |
Nik_Pavel Оставлено | |
В курсе, что утилита для тестирования (собственно тестированием тестового пакета документов и сигнатур ЭП и занимаюсь). Просто хотелось бы лучше понимать, что конкретно проверяется, а что не проверяется опцией -sfsign -verify, и как вообще это работает. Отредактировано пользователем 16 марта 2022 г. 11:58:12(UTC) | |
Nik_Pavel Оставлено | |
и по поводу вопроса про “signtsf.c:736:No user cert specified. Cryptocontext will be opened automaticaly.” но тогда непонятен момент – в SGN-файле есть сертификат. certmgr.exe -list -file c:\TMP\csp\test1.pdf.sgn [ErrorCode: 0x00000000] | |
Grey Оставлено | |
Автор: Nik_Pavel В курсе, что утилита для тестирования (собственно тестированием тестового пакета документов и сигнатур ЭП и занимаюсь). Просто хотелось бы лучше понимать, что конкретно проверяется, а что не проверяется опцией -sfsign -verify, и как вообще это работает. А вам зачем? С уважением, | |
Nik_Pavel Оставлено | |
Всё просто – по планграфику работ поставка соответствующего ПО для продуктивной работы несколько отстаёт. А тестировать (пулять тестовые документы) стали уже сейчас. Поэтому довольствуемся тем, что есть в стандартной уже ранее купленной коробке Криптопро 4. И хотелось бы на том что есть понять в т.ч., что там в SGN-файл вторая сторона натолкала (и натолкала ли всё, что нужно, или по минимуму – т.к. доверия контрагенту полного нет. В частности хотелось бы понять, что можно извлечь из тестового SGN-файла штатными утилитами (csptest, cpverify, certmgr). | |
Nik_Pavel Оставлено | |
И ещё вопрос: чем технически отличается опция -sfsign -verify от -lowsign -verify ? | |
Sunchees Оставлено | |
Добрый день! Есть XML-документ с подписью в формате XMLDSig. Пытаемся выполнить валидацию этой подписи через cryptcp. В документе содержится следующий блок <Signature>: Код:
+ открытый ключ подписи и непосредственно тело с данными Выполняю следующие действия:
Вижу, что подпись в <SignatureValue> по сути не содержит информации о сертификате, из чего могу предположить, что нужно либо добавить какие-то параметры в вызов cryptcp на шаге 7, либо вообще использовать какую-то другую команду. Хочу понять, как правильно выполнять валидацию такой подписи, и возможно ли это вообще через консольные утилиты КриптоПро? Исходный XML-документ пробовал проверять через https://dss.cryptopro.ru/Verify/, там валидация прошла успешно, из чего делаю вывод, что проблема не в самом документе, а именно в нашем алгоритме его валидации. Из того что нашел на просторах интернета и данного форума, вижу что как правило валидацию XMLDSig выполняют с помощью .NET или Java SDK, но прежде чем переходить к такой реализации, хочу убедиться что других вариантов нет. | |
two_oceans Оставлено | |
Добрый день. Заметки по алгоритму. https://www.cryptopro.ru/forum2/default.aspx?g=posts&t=11684 ответ про Raw в cryptcp Раз уж у Вас NodeJS, может быть там получится использовать проверку Raw подписи через плагин и Javascript? Отредактировано пользователем 15 апреля 2021 г. 8:36:33(UTC) | |
Sunchees Оставлено | |
Спасибо за ответ. Цитата: Очевидна только одна проблема – если у Вас несколько процессов NodeJS проводят валидацию параллельно, то они должны использовать разные папки или разные имена файлов, чтобы в процессе проверки разные подписи не смешивались и не давали ошибки. Да, у нас для валидации каждой подписи формируется отдельная временная папка. Цитата: Раз уж у Вас NodeJS, может быть там получится использовать проверку Raw подписи через плагин и Javascript? На этот плагин я смотрел, но насколько я понял, он под капотом использует CryptoPro Browser-PlugIn, который просто так на NodeJS, не завести, т.к. это именно браузерный плагин. Цитата: есть ответ 4 года назад что cryptcp не подходит, можете использовать csptest или за 5 минут сделать свою утилиту Подскажите пожалуйста, что имеете ввиду под “за 5 минут сделать свою утилиту”? Разве подпись сформированную по ГОСТу можно без криптопровайдера проверить? Попробовал проверить подпись через csptest, но судя по всему застрял на переводе Base64-подписи в DER. Поясню:
Попробовал пойти в обратном порядке, сделал следующие действия:
Т.е. подпись сформировал и проверил, вроде бы все ок.
При этом в моем понимании, так как подпись формируется только на SignedInfo, а он у меня остался неизменным, то такая “ручная подмена” подписи и сертификата должны сработать. Если так, то в итоге могу предположить что где-то на этапе преобразования подписи в Base64 что-то идет не так. Либо где-то не соответствуют алгоритмы подписания, хотя я везде использовал GOST 2012 256, как указано в алгоритмах из <SignedInfo> | |
Андрей Русев Оставлено | |
Vlady84 Оставлено | |
Нужна помощь в авторизации по API в Честном знаке. Система авторизации там такая Код:
Код:
Далее Код:
Как подписать эту строку на удаленном Linux сервере. Я установил там КриптоПро для Linux certmgr В вебинаре Честного знака сказали что-то про “экспорт сертификата”. | |
Андрей * Оставлено | |
Здравствуйте. Контейнер (папка с .key файлами или в каком виде имеется?) перенесён на сервер? Сертификат установили в хранилище? Цитата: как заставить удаленный сервак подписать эту строку, необходимую для авторизации ? Подписание: file.txt – содержит текстовую строку file.txt.p7s – будет содержать присоединенную подпись (данные из file.txt, сертификат, подпись) далее прочитать file.txt.p7s, закодировать в base64 и отправить запрос через curl | |
Андрей * Оставлено | |
либо другой вариант, через php – собрать расширение и подписывать\отправлять из php | |
Vlady84 Оставлено | |
Автор: Андрей * либо другой вариант, через php – собрать расширение и подписывать\отправлять из php Спасибо большое. Да, это то, что нужно. | |
Vlady84 Оставлено | |
Автор: Андрей * либо другой вариант, через php – собрать расширение и подписывать\отправлять из php Пробовал собрать, не работает | |
Vlady84 Оставлено | |
Автор: Андрей * Здравствуйте. Контейнер (папка с .key файлами или в каком виде имеется?) перенесён на сервер? Сертификат установили в хранилище? Цитата: как заставить удаленный сервак подписать эту строку, необходимую для авторизации ? Подписание: file.txt – содержит текстовую строку file.txt.p7s – будет содержать присоединенную подпись (данные из file.txt, сертификат, подпись) далее прочитать file.txt.p7s, закодировать в base64 и отправить запрос через curl Устанавливаю сертификат для пользователя www-root Пытаюсь подписать файл CryptCP 5.0 (c) “Crypto-Pro”, 2002-2022. The following certificate will be used: Folder ‘/var/www/www-root/data/’: Где взять этот закрытый ключ, и как его установить (в контейнер, видимо). И, если все это так, что как создать этот самый контейнер ? Отредактировано пользователем 22 июля 2022 г. 2:16:53(UTC) | |
two_oceans Оставлено | |
Добрый день. По вопросу – есть еще и облачные подписи, в таком случае на физический объект флешка не понадобится. Поддерживаются в КриптоПро с 5 версии. Насчет копирования ключа на сервер (допустим, в своей стране) важно знать: | |
Vlady84 Оставлено | |
Автор: two_oceans Добрый день. По вопросу – есть еще и облачные подписи, в таком случае на физический объект флешка не понадобится. Поддерживаются в КриптоПро с 5 версии. Насчет копирования ключа на сервер (допустим, в своей стране) важно знать: Нашел, как вытащить закрытый ключ с рутокена. Скопировал 6 .key файлов в папку. root@server0:/opt/cprocsp/bin/amd64# /opt/cprocsp/bin/amd64/csptest -keyset -enum_cont -verifycontext -fqcn но упорно не хочет брать из него ключ root@server0:/opt/cprocsp/bin/amd64# sudo -u www-root /opt/cprocsp/bin/amd64/cryptcp -sign -thumbprint e07bcb550e38222ea9d0142c4c574bdd471df28f “/var/www/www-root/data/test.txt” “/var/www/www-root/data/test.txt.p7s” -nochain -norev The following certificate will be used: Folder ‘/var/www/www-root/data/’: | |
two_oceans Оставлено | |
Автор: Vlady84 Контейнер видит Добрый день. Это уже детали процедуры установки сертификата, которые чуть не в каждом руководстве по установке сертификата на Linux описываются. Конечно лишний раз повторить не помешает. Во-первых, важно, чтобы команды были от одного пользователя. Выше одна команда без sudo то есть от самого пользователя root, а вторая (если я правильно понимаю) от www-root. Если root контейнер HDIMAGE ищется в папке /var/opt/cprocsp/keys/root/ Если www-root контейнер HDIMAGE ищется в папке /var/opt/cprocsp/keys/www-root/ У соответствующего пользователя должны быть права на нужную папку – чтение и запись. (Для видимости всем по идее еще какая-то папка, но используется нечасто, так что точно не знаю.) Таким образом, в одном случае контейнер увидится, в другом нет. Тем не менее, обычно в такой ситуации из функций нижнего уровня “выскакивает” другая ошибка – “Набор ключей не существует” и делается попытка его сгенерировать. Другой код ошибки вероятно указывает, что еще с чем-то не все в порядке. Во-вторых, если при подписании указывается не имя контейнера, а сертификат или реквизиты (отпечаток в командной строке выше) сертификата, то сертификат должен быть: а) установлен в хранилище сертификатов – выше можно увидеть в выводе что нашелся, показало его срок действия; б) при установке в хранилище должен быть указан контейнер для этого сертификата. Проверить можно командой (от нужного пользователя) вроде такой sudo -u www-root /opt/cprocsp/bin/amd64/certmgr -list -store uMy где uMy – имя хранилища, ищем строку PrivateKey: Yes и совпадение строки Container: с тем, что выдало csptest -keyset -enum_cont -verifycontext -fqcn , то есть \\.\HDIMAGE\d57b44fd-7ac9-4479-bf9a-b6be6d111eca-1 Если PrivateKey: No или неверное имя контейнера, то нужно переустановить сертификат в хранилище. Отредактировано пользователем 5 сентября 2022 г. 7:41:24(UTC) | |
Vlady84 Оставлено | |
Автор: two_oceans Автор: Vlady84 Контейнер видит Добрый день. Это уже детали процедуры установки сертификата, которые чуть не в каждом руководстве по установке сертификата на Linux описываются. Конечно лишний раз повторить не помешает. Во-первых, важно, чтобы команды были от одного пользователя. Выше одна команда без sudo то есть от самого пользователя root, а вторая (если я правильно понимаю) от www-root. Если root контейнер HDIMAGE ищется в папке /var/opt/cprocsp/keys/root/ Если www-root контейнер HDIMAGE ищется в папке /var/opt/cprocsp/keys/www-root/ У соответствующего пользователя должны быть права на нужную папку – чтение и запись. (Для видимости всем по идее еще какая-то папка, но используется нечасто, так что точно не знаю.) Таким образом, в одном случае контейнер увидится, в другом нет. Тем не менее, обычно в такой ситуации из функций нижнего уровня “выскакивает” другая ошибка – “Набор ключей не существует” и делается попытка его сгенерировать. Другой код ошибки вероятно указывает, что еще с чем-то не все в порядке. Во-вторых, если при подписании указывается не имя контейнера, а сертификат или реквизиты (отпечаток в командной строке выше) сертификата, то сертификат должен быть: а) установлен в хранилище сертификатов – выше можно увидеть в выводе что нашелся, показало его срок действия; б) при установке в хранилище должен быть указан контейнер для этого сертификата. Проверить можно командой (от нужного пользователя) вроде такой sudo -u www-root /opt/cprocsp/bin/amd64/certmgr -list -store uMy где uMy – имя хранилища, ищем строку PrivateKey: Yes и совпадение строки Container: с тем, что выдало csptest -keyset -enum_cont -verifycontext -fqcn , то есть \\.\HDIMAGE\d57b44fd-7ac9-4479-bf9a-b6be6d111eca-1 Если PrivateKey: No или неверное имя контейнера, то нужно переустановить сертификат в хранилище. Спасибо большое за ваш труд. root@server0:~# sudo -u www-root /opt/cprocsp/bin/amd64/certmgr -inst -all -store uMy -file /home/cert.p7b -cont ‘\\.\HDIMAGE\d57b44fd-7ac9-4479-bf9a-b6be6d111eca-1’ показывает данные серта и пишет The data is invalid. Я удалял серт и контейнер и создавал заново /var/opt/cprocsp/keys/www-root/ – .key файлы залил, владельца поменял на www-root /opt/cprocsp/bin/amd64/csptest -keyset -enum_cont -verifycontext -fqcn показывают контейнеры для обоих пользователей Как переустановить сертификат в хранилище, чтобы этот приватлинк привязался ? | |
Андрей * Оставлено | |
Цитата: Installing multiple certificates with private key link is not allowed в p7b несколько сертификатов? Укажите только личный сертификат Цитата: sudo -u www-root /opt/cprocsp/bin/amd64/certmgr -inst -store uMy -file /home/my.cer -cont ‘\\.\HDIMAGE\d57b44fd-7ac9-4479-bf9a-b6be6d111eca-1’ | |
Vlady84 Оставлено | |
Автор: Андрей * Цитата: Installing multiple certificates with private key link is not allowed в p7b несколько сертификатов? Укажите только личный сертификат Цитата: sudo -u www-root /opt/cprocsp/bin/amd64/certmgr -inst -store uMy -file /home/my.cer -cont ‘\\.\HDIMAGE\d57b44fd-7ac9-4479-bf9a-b6be6d111eca-1’ у меня нет файлов с расширением .cer | |
Андрей * Оставлено | |
Автор: Vlady84 Автор: Андрей * Цитата: Installing multiple certificates with private key link is not allowed в p7b несколько сертификатов? Укажите только личный сертификат Цитата: sudo -u www-root /opt/cprocsp/bin/amd64/certmgr -inst -store uMy -file /home/my.cer -cont ‘\\.\HDIMAGE\d57b44fd-7ac9-4479-bf9a-b6be6d111eca-1’ у меня нет файлов с расширением .cer Цитата: -all Использовать все сертификаты/CRLs без -all пробовали? | |
Vlady84 Оставлено | |
Автор: Андрей * Автор: Vlady84 Автор: Андрей * Цитата: Installing multiple certificates with private key link is not allowed в p7b несколько сертификатов? Укажите только личный сертификат Цитата: sudo -u www-root /opt/cprocsp/bin/amd64/certmgr -inst -store uMy -file /home/my.cer -cont ‘\\.\HDIMAGE\d57b44fd-7ac9-4479-bf9a-b6be6d111eca-1’ у меня нет файлов с расширением .cer Цитата: -all Использовать все сертификаты/CRLs без -all пробовали? Сработала комманда sudo -u www-root /opt/cprocsp/bin/amd64/certmgr -inst -store uMy -cont ‘\\.\HDIMAGE\d57b44fd-7ac9-4479-bf9a-b6be6d111eca-1’ Спасибо всем большое, кто помог с проблемой ! | |