Как изменить алгоритм шифрования в криптопро на 2012
Уважаемые Клиенты! На сайте Ситуационного центра Минкомсвязи https://sc.minsvyaz.ru/ опубликован документ о том, что начал работать новый Головной Удостоверяющий центр (ГУЦ) с алгоритмом ключа ГОСТ Р 34.10-2012 и что можно отправлять запросы на сертификаты аккредитованных УЦ с алгоритмом ГОСТ 2012. Там же написано, что рекомендуется использовать короткий ключ ГОСТ 2012 (256 бит). В связи с этим, мы подготовили для Вас инструкцию о способах перехода аккредитованного УЦ на ГОСТ 2012.
Важно:
1) Перед началом работ необходимоустановить новый сертификат ГУЦ на сервера УЦ, прямая ссылка на него: https://e-trust.gosuslugi.ru/Shared/DownloadCert?thumbprint=4BC6DC14D97010C41A26E058AD851F81C842415A
2)На серверах УЦ необходимо организовать доставку и установку CRLнового ГУЦ. Ссылки на этот CRL для скачивания:
3) Перед выполняем любых действий рекомендуется создать резервные копии баз данных, руководствуясь пунктом 7 ЖТЯИ.00078 01 90 03 ПАК КриптоПро УЦ 2.0. Руководство по эксплуатации
4) Если для хранения ключей используется ПАКМ «КриптоПро HSM» версии 1.0, то создать на нём новый ключ с алгоритмом ГОСТ 2012 не получится. В дальнейшем ПАК «КриптоПро УЦ» будет сертифицирован в варианте исполнения с ПАКМ «КриптоПро HSM» версии 2.0 с поддержкой ГОСТ 2012. На данный момент рекомендуется в качестве средства электронной подписи для создания ключа ЦС выбирать СКЗИ «КриптоПро CSP» версии 4.0 и сохранить закрытый ключ на любой поддерживаемый этим СКЗИ носитель, а при следующей смене ключа ЦС сгенерировать новый закрытый ключ в ПАКМ КриптоПро HSM 2.0.
5) Перед началом работ необходимопроверить, что на всех серверах и рабочих станциях, где будут использоваться новые сертификаты с алгоритмом ГОСТ 2012, установлено СКЗИ «КриптоПро CSP» версии 4.0 (4.0.9842) и выше.
6) Перед началом работ необходимопроверить, что на серверах ЦС, ЦР и рабочих станциях администраторов (операторов) УЦ установлена сборка компонентов УЦ не ниже 2.0.6142.
7) Под ГОСТ 2012 256 бит -следует понимать криптопровадер Crypto-Pro GOST R 34.10-2012 Cryptographic Service Provider c длинной ключа 512 бит и Алгоритмом хеширования ГОСТ Р 34,11-2012 256 бит
У аккредитованных УЦ, есть несколько вариантов перехода на ГОСТ 2012.
Вариант 1, без создания нового экземпляра ЦС
(Рекомендуется при отсутствии необходимости одновременно выпускать сертификаты пользователей с алгоритмами ГОСТ 2001 и ГОСТ 2012)
Порядок действий:
1) Сменить используемый на действующем ЦС криптопровайдер на тот, который поддерживает работу с ключом электронной подписи с алгоритмом ГОСТ 2012 (256 бит)
Для этого необходимо выполнить на сервере ЦС, следующие команды в «Командной строке управления УЦ (Администратор)»:
Командлеты для перехода на ГОСТ 2012 (256 бит)
certutil2 -config ‘localhost\’ -setentry ca\CSP\HashAlgorithm 32801
certutil2 -config ‘localhost\’ -setentry ca\CSP\ProviderType 80
certutil2 -config ‘localhost\’ -setentry ca\CSP\Provider «Crypto-Pro GOST R 34.10-2012 Cryptographic Service Provider»
certutil2 -config ‘localhost\’ -setentry ca\CSP\RenewalKeyLength 512
certutil2 -config ‘localhost\’ -control ApplyConfiguredSettings
Внимание: после создания запроса на сертификат, если на сервере ЦР списки отозванных сертификатов данного аккредитованного УЦ не доступны по ссылкам, указанным в служебных сертификатах и сертификатах пользователей — необходимо заранее обеспечить их доступность.
Для этого есть 3 способа:
А) Используйте нашу утилиту Дистрибутив ПО для автоматизации установки списков отозванных сертификатов вышестоящих УЦ (msi, 20 Мб) После её установки настройте скачивание CRL в любую произвольную папку на ЦР, установка CRL при этом будет выполняться автоматически.
Б) Отредактируйте файл hosts на ЦР, таким образом, чтобы список отзыва мог быть доступен локально.
В) В течении этого времени устанавливайте список отзыва вручную (сразу после выпуска)
3) Отправить запрос на сертификат в Минкомсвязи. УЦ при этом будет продолжит работать, как и раньше – выпускать сертификаты для пользователей с алгоритмом ГОСТ 2001.
4) После получения ответа от Минкомсвязи – рекомендуем сначала установить новый сертификат аккредитованного УЦ в тех прикладных системах, которые используют сертификаты этого аккредитованного УЦ, а также сертификат нового ГУЦ и только потом установить новый сертификат ЦС на самом сервере ЦС
Если пользователи УЦ или прикладные системы не готовы к переходу на ГОСТ 2012 или если требуется проверка этого – то рекомендуем после ввода нового ключа ЦС в эксплуатацию выпустить несколько проверочных сертификатов с алгоритмом ГОСТ 2012 (при этом, возможно, нужно будет поправить шаблоны сертификатов на ЦС для разрешения использования СКЗИ с поддержкой ГОСТ 2012) и потом вернуть прежний ключ ЦС (ГОСТ 2001) для подписи сертификатов пользователей, а новый ключ ЦС (2012) использовать только для подписи CRL.
Вариант 2 с созданием нового экземпляра ЦС
(Рекомендуется при необходимости одновременного выпуска сертификатов с использованием алгоритмов ГОСТ 2001 и ГОСТ 2012)
Важно: Удалять ЦС с ключом на ГОСТ 2001 в последующем НЕЛЬЗЯ, т.к. будет потеряна информация о всех выпущенных на этом ЦС пользовательских сертификатах.
Порядок действий:
1)Переименовать ЦС с алгоритмом ГОСТ 2001. Поскольку для аккредитованных УЦ обязательным условием является, чтобы значение ComonName совпадало с названием организации, а два ЦС на одном сервере с одинаковым ComonName создать невозможно, то необходимо переименовать текущий экземпляр ЦС, например, присвоить ему имя (ГОСТ 2001), это не повлияет на работоспособность УЦ. Подробная инструкция по переименованию доступна на нашем сайте ссылка на инструкцию в БЗ: https://support.cryptopro.ru/index.php?/Knowledgebase/Article/View/255/29/izmenenie-komponentov-imeni-uc
2) Создать новый подчиненный экземпляр ЦС, с алгоритмом ГОСТ 2012 256 бит (создание подчинённого УЦ подробно описано в пункте 2.4.2 ЖТЯИ.00078 01 90 03 ПАК КриптоПро УЦ 2.0. Руководство по эксплуатации) При добавлении необходимых расширений в запрос на сертификат необходимо руководствоваться рекомендациями Минкомсвязи http://minsvyaz.ru/ru/appeals/faq/66/ Более подробно настройку расширений можно посмотреть в БЗ https://support.cryptopro.ru/index.php?/Knowledgebase/Article/View/248/29/sozdnie-zpros-n-sertifikt-pri-plnovojj-smene-dlja-kkreditovnnykh-uc раздел- Рекомендация по добавлению расширений в сертификат ЦС согласно требованиям Минкомсвязи.
3) Получить от Минкомсвязи новый сертификат ЦС и установить его в созданный на этапе 2 экземпляр ЦС
4) Подключить второй ЦС к ЦР
Алгоритм подключения второго ЦС к ЦР:
А) На втором ЦС требуется выпустить новый клиентский сертификат для ЦР (его создание подробно описано в пункте 3.1 ЖТЯИ.00078 01 90 03 ПАК КриптоПро УЦ 2.0. Руководство по эксплуатации.) Установить его на сервере ЦР с помощью панели «КриптоПро CSP» в хранилище личное локального компьютера (с привязкой к закрытому ключу).
Б) В «Командной строке управления УЦ (Администратор)» (Пуск –Все Программы –КриптоПро- Командная строка управления УЦ (Администратор)) Выполнить следующие команделеты:
Проверить подключения командой: Get-CAReference
$ClientCertificate = Get-Item Cert:\LocalMachine\My\
$NameAddCA = » имя добавляемого экземпляра ЦС»
«ca.full.dns.name» — реальное DNS-имя сервера ЦС
— отпечаток клиентского сертификата ЦР
$NameAddCA – имя добавляемого экземпляра ЦС
Важно: Если имя ЦС имеет в составе «кавычки», то его необходимо правильно экранировать – указывать в одинарных кавычках. Пример правильного экранирования:
$NameAddCA = ‘ООО «Рога и Копыта»‘
В) Добавить подключение ЦР к экземпляру ЦС
Add-CAReference -AuthorityName $NameAddCA -Url «https://$CAFullDnsName/CA» -ClientCertificate $ClientCertificate
Важно: При одновременной эксплуатации двух ЦС, подключенных к одному ЦР, необходимо будет в Диспетчере УЦ скопировать нужные для работы шаблоны, изменив поставщика криптографии на ГОСТ 2012. Либо разрешить и 2001 и 2012 ГОСТы и каждый раз при генерации запроса на сертификат клиента выбирать алгоритм.
Также при работе в Консоли Управления ЦР будет необходимо выбирать нужный ЦС
Вариант 3 Создать новый УЦ на новом железе
(при использовании этого варианта возможно одновременно выпускать сертификаты с использованием алгоритмов ГОСТ 2001 и ГОСТ 2012)
При наличии технической возможности можно развернуть на новых серверах ЦС и ЦР с использованием ГОСТ 2012.
ГОСТ 2012. Сообщение КриптоПро о переходе на новый ГОСТ
Расскажем, какие есть нюансы перехода к использованию сертификатов на новом ГОСТ 2012 года.
Согласно Уведомлению об организации перехода на использование схемы электронной подписи по ГОСТ Р 34.10-2012 (ГОСТ 2012) электронные подписи, выпущенные по ГОСТ Р 34.10-2001, можно использовать до 31.12.2019.
- Переход Удостоверяющего Центра СКБ Контур на ГОСТ 2012
- Что сделать для перехода к использованию сертификатов на новом ГОСТ?
- Сообщение Крипто Про CSP
Таким образом, срочного перевыпуска существующих подписей не требуется, в течении всего 2019 года можно использовать подписи на старом алгоритме.
Подпись на новом алгоритме можно будет получить при плановом продлении сертификата в 2019 году.
Переход Удостоверяющего Центра СКБ Контур на ГОСТ 2012
Выпускать сертификаты на ГОСТ 2012 для Экстерн Удостоверяющий Центр планирует начать c 01.01.2019 года. Потребности в срочной замене сертификатов нет, так как контролирующие органы пока не готовы принимать документы, подписанные сертификатами по ГОСТ 2012.
СКБ Контур будет использовать все доступные каналы связи для оповещения своих клиентов о необходимости замены сертификата.
Что сделать для перехода к использованию сертификатов на новом ГОСТ?
- Получить новый сертификат, сформированный на ГОСТ 2012 или дождаться планового обновления сертифката.
- Установить КриптоПро версии 4.0 и выше.
- Приобрести лицензию на КриптоПро версии 4.0, если используется сертификат без встренной лицензии. Для работы КриптоПро CSP на серверных операционных системах (Windows Server 2003/2008/2012/2016) необходимо приобрести и активировать Серверную лицензию. Для приобретения Серверной лицензии обратитесь в сервисный центр.
- Установить Контур.Плагин версии 3.10.0.256 или выше.
Отчитайтесь легко и без ошибок. Удобный сервис для подготовки и сдачи отчётов через интернет. Дарим доступ на 14 дней в Экстерн!
Сообщение Крипто Про CSP
При использовании КриптоПро CSP 3.9 или 4.0 появляется сообщение:
«С 1 января 2019 года запрещено формирование электронной подписи с помощью ключей ЭП ГОСТ Р 34.10-2001. Вам необходимо перейти на использование ключей ЭП ГОСТ Р 34.10-2012. Продолжить использование ключа ЭП ГОСТ Р 34.10-2001?»

Пока наш Удостоверяющий Центр не выдает сертификаты на новом алгоритме можно убрать окно с сообщение следующими способами:
- Поставить галку «Не напоминать в течение месяца» и нажать «ОК» — сообщение пропадет на 1 месяц. Если сообщение не пропало, то воспользоваться пунктом 2.
- Скрыть сообщение до 01.11.2019. Для этого необходимо пройти диагностику и в рекомендуемых действиях выбрать «Скрывать сообщения КриптоПро о переходе на новый ГОСТ»
как поменять гост 2001 на гост 2012 в алгоритмах криптопро?
при подписании декларации через криптопро выдало ошибку алгоритма, в самой программе криптопро 4.0 стоит гост 2001, а сертификат с гостом 2012, из за этого надо сменить в крипто гост, не применяется когда пытаюсь
Лучший ответ
4 версия из коробки поддерживает ГОСТ 2012 и зависит от ГОСТа самого сертификата если у вас сертификат ГОСТ 2012 то запустите КриптоПро CSP и на вкладке безопасность посмотрите стоят ли во втором и третьем окошке значения ГОСТ 2012 если стоят то обратитесь к центру выдачи своего сертификата за дополнительной информацией о необходимой версией ПО или напишите в службу техподдержки программного обеспечения.
Ольга МутафУченик (195) 5 лет назад
да, они там есть, 256 и 512, но применить их не получается. То есть проблема с сертификатом получается?
Андрей Просветленный (42223) Вероятно но быстрее уточнить у центра сертификации или техподдержки крипты
Как изменить алгоритм шифрования в криптопро на 2012
Как изменить алгоритм шифрования в криптопро на 2012
Чтобы изменить алгоритм шифрования в программе КриптоПро на 2012 год, вам понадобится следовать этим инструкциям:
1. Зайдите в настройки программы КриптоПро. Обычно они доступны в меню Настройки или Параметры.
2. Найдите раздел, отвечающий за алгоритмы шифрования или криптографические алгоритмы. Обычно он называется Алгоритмы или Криптоалгоритмы.
3. Найдите алгоритм шифрования, который вы хотите изменить на 2012 год. В списке алгоритмов могут быть различные варианты, включая AES, RSA, ГОСТ и др.
4. Выберите новый алгоритм шифрования на основе стандарта 2012 года. Это может быть, например, AES-256 или ГОСТ Р 34.11-2012.
5. Сохраните изменения и перезапустите программу КриптоПро, чтобы изменения вступили в силу.
Полезные советы:
— Перед изменением алгоритма шифрования в КриптоПро на 2012 год, убедитесь, что ваша система и программное обеспечение соответствуют требованиям нового алгоритма. Некоторые старые системы или устройства могут не поддерживать новые алгоритмы шифрования.
— Обратитесь к документации КриптоПро или к специалистам в области информационной безопасности, если у вас возникнут вопросы или проблемы при изменении алгоритмов шифрования.
— Помните, что изменение алгоритма шифрования необходимо проводить с осторожностью и только при необходимости. Неправильное использование или конфигурация алгоритмов шифрования может привести к уязвимости или снижению безопасности данных.
Алгоритм шифрования необходимый для выполнения этой операции не установлен на этом компьютере
При работе с электронной подписью может возникнуть масса ошибок. В этой статье мы хотим рассказать о смысле надписи «Алгоритм шифрования, нужный для выполнения операции, не был установлен на компьютере». Давайте разберем, почему она появляется, и как от нее избавиться.

Что такое ЭЦП?
Электронная цифровая подпись подтверждает авторство документа. Это позволяет убедиться, что вся содержащаяся в нем информация актуальна и правдива. Если файл был изменен сторонними лицами, то ЭП в нем не будет.
Достоверность электронных подписей обеспечивается с помощью методов криптографии. Подделать ее с помощью стандартного копирования не удастся. Подписанный с помощью ЭП документ приобретает юридическую силу.

В июле 2021 года изменились требования к электронным подписям. ИП и юрлица могут получать квалифицированную ЭП бесплатно в ФНС. Обычным гражданам приходится обращаться в коммерческий аккредитованный центр.
После покупки ЭЦП желательно обезопасить свои данные. Для этого нужно сделать следующее:
- Настроить компьютер для работы с электронными подписями.
- Запустить КриптоПРО CSP.
- Открыть вкладку «Сервис».
- Кликнуть на кнопку «Изменить пароль».
- Нажать на клавишу «Обзор» и выбрать нужный сертификат».
- Поставить на него пароль.
После входа на любой ресурс, требующий ЭЦП, будет возникать окно с требованием ввести выбранный вами пин-код. Это обезопасит вас от мошенников.
Почему возникает ошибка «Алгоритм шифрования не установлен на компьютере»
Начиная с 2010 версии Ворда, для подписи электронных документов необходимо устанавливать дополнение Крипто Про Office Signature. Для успешной инсталляции этого плагина понадобится купить отдельную лицензию. Без новых расходов не обойтись, даже если у вас уже оплачена программа КриптоПро.
Если вы видите сообщение «Алгоритм шифрования, который необходим для выполнения операции, не установлен на этом компьютере», сразу проверьте работу плагина Crypto Pro Office Signature 2.0. Без него вы не сможете поставить действующую электронную подпись.

Проблемы могут заключаться в следующем:
- Плагин Signature 2.0 не установлен.
- Срок действия лицензии на данную утилиту уже истек.
- Требуется обновление ПО.
- Поддержка Microsoft Office прекращена.
Первый месяц программа может работать в бесплатном тестовом режиме. Далее за ее использование необходимо будет заплатить.
Полезные ссылки
При возникновении проблем желательно сразу свериться с пользовательским руководством. Убедитесь, что выполняете правильно все нужные шаги.
Разобраться в ситуации вам помогут следующие ссылки:
-
Официальный мануал в формате PDF лежит на площадке cryptopro.ru.

Если вы не можете разобраться с проблемой самостоятельно, обратитесь в техподдержку. Для этого перейдите на сайт support.cryptopro.ru. Чтобы получить помощь от сотрудников сервиса, авторизуйтесь в системе. Затем кликните на кнопку «Создать новое обращение».

Обсуждение особенностей работы программы происходит на форуме, в ветке cryptopro.ru/forum2/. Если вы не видите в списке тем подходящего названия, создайте свой собственный топик. Опишите свою проблему. При этом постарайтесь выдать всю ключевую информацию в стартовом посте.
Как работать с плагином
Если алгоритм шифрования для выполнения нужной операции не установлен на компьютере, его надо инсталлировать. Если же требуемое ПО уже у вас есть, то ситуация становится сложнее. Возможно, неполадки связаны с тем, что Крипто Про больше не поддерживает Microsoft Office.
Как подписать документ в этом случае:
- Найдите его на своем компьютере. Это удобнее делать с помощью файлового менеджера. Затем щелкните правой кнопкой мыши по названию документа.
- Появится контекстное меню. Выберите в нем опцию VipNet CryptoFile.
- В списке доступных команд вы увидите такие варианты как «Подписать» и «Зашифровать». Кликните на нужное вам действие.
У пользователей Microsoft Office часто возникают проблемы с подписью для электронных документов. Чтобы не тратить лишнее время на бесплодные попытки исправить подобные неполадки, мы рекомендуем в любой непонятной ситуации сразу обращаться в службу технической поддержки Крипто Про.
Ссылка на скачивание плагина с поддержкой Майкрософт Офис выложена на ресурсе https://cryptopro.ru/products/office/signature/downloads. Кликните по надписи КриптоПро Office Signature 2.0. В ответ на это на соседней вкладке откроется окошко с предложением скачать файл. Нажмите на кнопку «ОК» и дожидайтесь завершения загрузки.

По окончанию скачивания запустите файл и начните его установку. Удалять предыдущие версии программы не нужно. Данное ПО является ознакомительным, поэтому не может полноценно заменить плагин КриптоПро Signature 2.0.
У пользователей Microsoft Office часто возникают проблемы с подписью для электронных документов. Чтобы не тратить лишнее время на бесплодные попытки исправить подобные неполадки. Мы рекомендуем в любой непонятной ситуации сразу обращаться в службу технической поддержки Крипто Про.
Ошибка «Алгоритм подписи сертификата криптографии отличается от алгоритма GOST R 34.10-2001» в ГИМС Розницы
Обновили ЭЦП, т.к. истек срок. Новый ключ с шифрованием GOST R 34.10-2012. Установил в Розницу (2.2.11.16) платформа 8.3.13.1644. Проверил этот ключ в 1С всё норм. Но при передачи документов в ГИСМ выдаёт ошибку. Скрины прилагаю.
КриптоПро обновил до последней версии 4.0.9963.
Уже и не знаю где смотреть, куда копать. помогите плз.
- Скопировать ссылку
- Перейти
- Скопировать ссылку
- Перейти
- Скопировать ссылку
- Перейти
- Скопировать ссылку
- Перейти
- Скопировать ссылку
- Перейти
- Скопировать ссылку
- Перейти
- Скопировать ссылку
- Перейти
(7) в актуальной УТ (от 20.02) есть изменения в алгоритмах (хотя и закомментировано и мне не помогло), при подписи автоматом определяется нужный алгоритм:
ПараметрыXMLDSig.ИмяАлгоритмаПодписи = «GOST R 34.10-2001» + Символы.ПС + «GOST R 34.11-2012»;
ПараметрыXMLDSig.OIDАлгоритмаПодписи = «1.2.643.2.2.3» + Символы.ПС + «1.2.643.7.1.1.3.2»; // ГОСТ R 34.11/34.10-2001
ПараметрыXMLDSig.ИмяАлгоритмаХеширования = «GOST R 34.11-94» + Символы.ПС + «GOST R 34.11-12»;
ПараметрыXMLDSig.OIDАлгоритмаХеширования = «1.2.643.2.2.9» + Символы.ПС + «1.2.643.7.1.1.2.2»; // ГОСТ R 34.11-94
- Скопировать ссылку
- Перейти
- Скопировать ссылку
- Перейти
- Скопировать ссылку
- Перейти
- Скопировать ссылку
- Перейти
- Скопировать ссылку
- Перейти
(11)Вот что мне 1с ответило:
Здравствуйте!
Ваше обращение зарегистрировано.
Получен ответ отдела разработки.
В ближайшем релизе выйдет исправление.
- Скопировать ссылку
- Перейти
Тоска тоскливая. Сейчас та же проблема с конфигурацией «Медицина. Больничные», точь в точь.
(12) dishik , а розница часто обновляется? Можно попросить вас маякнуть в этой ветке, когда выйдет обновление?
Экономим бюджет компании, или как построить криптотуннель по ГОСТу с минимальными затратами
Обеспечение безопасности при помощи средств криптографической защиты информации (СКЗИ) — не очень сложная задача, если все технологические участки находятся на хост-машине. Однако для того чтобы передавать и шифровать информацию одновременно, необходимо построить грамотный технологический процесс программного обеспечения. Мы расскажем, как это сделать.
- 3.1. Linux
- 3.2. Windows
Введение
Для любого системного администратора или DevOps построить VPN или «пробросить» нестандартный метод инкапсуляции пакетов (туннелирование) — не очень сложная задача. Часто для этого применяют OpenVPN, если планируется постоянное использование, либо SSH-туннелирование, если защищённое соединение нужно на один-два раза. Однако есть предприятия и ведомства, которые должны соблюдать строгие условия передачи данных, установленные законодательством. Под такие требования подпадают, например, многие структуры, которые так или иначе имеют отношение к денежным операциям: банки, микрофинансовые организации и т.п. Персональные данные тоже являются «защищаемой информацией» во всех законах и положениях.
В результате оказывается, что при шифровании необходимо использовать СКЗИ со всеми необходимыми сертификатами и лицензиями, соответствующие нормативным требованиям. Одним из примеров таких программных средств является «КриптоПро CSP». В данной статье мы будем разбирать задачу о том, как «прокинуть» средствами stunnel сетевой туннель, который будет шифроваться «КриптоПро CSP», заодно получив хоть и тестовый (на 3 месяца), но полностью валидный сертификат по ГОСТ Р 34.10-2012.
Задача
Для начала необходимо разобраться в том, как всё описанное будет работать, и поставить конкретные задачи.
К примеру, есть две машины. Для демонстрации настройки двух операционных систем одна из них будет работать под управлением ОС семейства Linux (Ubuntu, версия не важна, но желательно — не ниже 16), вторая — под Windows 10. На win-системе будет запускаться Netcat на прослушивание какого-то определённого порта, а с nix-системы будут передаваться пакеты. Таким образом, Windows-машина будет сервером (в том числе — в отношении настроек stunnel).
Что должно получиться в итоге? При подключении с Linux к Windows через программу Netcat все пакеты будут шифроваться сертификатом GOST_2012 и сертифицированным программным обеспечением. Задача тривиальна и ставится для того, чтобы показать возможность такого манёвра. Поскольку stunnel передаёт любой протокол внутри себя, можно, к примеру, подписывать XML-файлы секретной подписью другой организации или передавать персональные данные в хранилище через интернет.
Тестовый стенд
Linux
Начнём с того, что система готова к настройке. Как работает «КриптоПро CSP», читатели, скорее всего, уже знают. Небольшое уточнение относительно stunnel: эта программа изначально создавалась как прокси-сервер с функцией шифрования трафика. Другими словами, она берёт, к примеру, HTTP и превращает его в своего рода HTTPS (если не вдаваться в подробности протоколирования).
Работает stunnel следующим образом: при запуске на локальной машине открывается определённый порт, указанный в конфигурационном файле, и в тот же момент приложение соединяется со своей копией на другой машине. Таким образом все пакеты, попавшие на порт localhost, шифруются, затем проксируются на другую систему и там расшифровываются. Удобство схемы состоит в том, что это — просто шлюз, которому неважно, какой протокол шифровать и передавать.
Рисунок 1. Схема работы stunnel

Изначально загружаем необходимый продукт «КриптоПро» отсюда. В скачанном архиве будет примерно такой набор файлов, как на скриншоте.
Рисунок 2. «КриптоПро CSP» на Linux

Для установки необходимо запустить install.sh. Этот скрипт добавит нужные компоненты: certmgr, cpverify, cryptcp, csptest, csptestf, curl, der2xer, genkpim, inittst, wipefile. У каждой из этих программ — своя зона ответственности, свои ключи и задачи. Для нашего сценария нужны будут только certmgr и cryptcp.
Бинарные файлы попадают в /opt/cprocsp/bin/, а не в /bin, поэтому запустить их просто командой не удастся. Необходимо либо выполнить запуск напрямую оттуда, либо сделать символьные ссылки. Не стоит только создавать ссылку с помощью curl, так как работает он «криво»: не видит список удостоверяющих центров из операционной системы и, как следствие, завершает любой запрос с ошибкой, из-за чего приходится использовать ключ -k, который отменяет проверку сертификата на валидность.
Сама по себе stunnel шифрует трафик с помощью OpenSSL, но в компании «КриптоПро» её переписали под свои нужды, так что теперь она использует утилиты для un- и de- шифрования и называется stunnel-msspi. Поставляется она в архиве вместе с CSP; также её можно скачать отдельно. Для старых версий «КриптоПро CSP» есть вероятность, что программа уже установлена, но это необходимо проверить.
Как было сказано выше, для stunnel Linux-система будет клиентом, а Windows — сервером. IP-адреса: Linux – 172.22.1.65, Windows – 172.22.1.121.
Следующий шаг — ключи и сертификаты. Для сервера нам необходимо и то, и другое, причём все это — в контейнере «КриптоПро». Для клиента требуется только сертификат, нужный для того, чтобы к туннелю не мог подключиться любой желающий. Забегая немного вперёд, отметим, что в конфигурационном файле stunnel есть опция verify, и вот её параметры:
0. Не проверять сертификат сервера
1. Проверять сертификат при его наличии
2. Проверять сертификат всегда
3. Проверять наличие данного сертификата в хранилище TrustedUsers
Начиная с параметра 1, собственно, и нужен сертификат клиента для защиты подключения.
Итак, чтобы сгенерировать контейнер для сервера, необходимо воспользоваться утилитой cryptcp:
cryptcp -creatcert -provtype 81 -dn «C=RU, L=Rostov-na-Donu, CN=srv, 1.2.643.100.5=305867501589415» -exprt -ex -cont «\\\\.\\HDIMAGE\\srv» -ku -certusage «1.3.6.1.5.5.7.3.1» -hashAlg «1.2.643.7.1.1.2.3» -ca http://www.cryptopro.ru/certsrv
Интересные моменты относительно ключей:
- provtype — указывает тип криптопровайдера. По умолчанию подставляется 75. Значение этих цифр можно узнать так: в каталоге /opt/cprocsp/sbin/amd64 лежит программа cpconfig, нужно запустить её с ключами -defprov -view_type.
Рисунок 3. Вывод программы cpconfig

На скриншоте выше видно, что значение 75 устарело и соответствует ГОСТу версии 2001. ГОСТ версии 2012 на 256 и 512 бит задаётся значениями 80 и 81 соответственно.
- certusage — идентификатор назначения. Для выполнения задачи необходимы два модуля: проверка подлинности клиента (1.3.6.1.5.5.7.3.2) и проверка подлинности сервера (1.3.6.1.5.5.7.3.1).
- hashAlg — алгоритм, который будет применяться при шифровании. Список вариантов можно найти здесь.
- ca — центр сертификации, который подпишет всё содержимое, чтобы оно было валидным. Важно, что сертификаты и ключи будут действовать только в течение 3 месяцев (точнее, данный конкретный УЦ, который указан в команде, выдаёт их именно на этот срок).
- cont — контейнер, который будет создан; в нём сохранятся файлы. Если контейнер с таким именем уже есть, то, естественно, команда не отработает. Проверить можно командой certmgr -list; в её выводе отобразится исчерпывающая информация о контейнерах системы и пользователя.
Выше описаны самые «пикантные» моменты, которые могут отнять много времени. Остальные ключи и другие пояснения можно найти в документации.
Переходим к генерации сертификата для клиента. Команда аналогична, меняется только имя контейнера и идентификатор назначения сертификата.
cryptcp -creatcert -provtype 81 -dn «C=RU, L=Rostov-na-Donu, CN=srv, 1.2.643.100.5=305867501589415» -exprt -ex -cont «\\\\.\\HDIMAGE\\srv» -ku -certusage «1.3.6.1.5.5.7.3.2» -hashAlg «1.2.643.7.1.1.2.3» -ca http://www.cryptopro.ru/certsrv
Теперь с ключами и сертификатами всё готово. На всякий случай приведём команду экспорта из контейнера:
certmgr -export -provtype 81 -dest /куда экспортировать сертификат/имя сертификата -cont «\\\\.\\HDIMAGE\\имя контейнера»
Таким образом можно получить «на руки» сертификат в формате DER.
Далее нужно приниматься за настройку stunnel, а именно — его конфигурационного файла. Создаём в удобном месте файл stunnel.conf. Содержимое будет следующим:
Прокомментируем содержание секции TestStunnel:
- Client — указатель на то, является ли программа сервером или клиентом;
- Accept — локальный порт, к которому будет подключаться программа;
- Connect — IP-адрес и порт сервера, с которым мы будем соединяться;
- Verify — параметр, который мы уже описывали выше;
- Cert — клиентский сертификат. На этом пункте необходимо задержаться.
Можно указать параметр двумя способами: либо импортировать сертификат из контейнера и прописать путь к файлу, либо воспользоваться отпечатком сертификата. Извлечь отпечаток можно всё той же командой certmgr -list. Идентификатор указан как SHA1 Hash.
Рисунок 4. Отпечаток в Linux

На этом настройка Linux закончена, можно запускать stunnel с указанием соответствующего файла конфигурации stunnel.conf.
Windows
После установки «КриптоПро CSP» необходимо скопировать контейнер с серверным ключом и сертификатом с nix-машины.
Все контейнеры попадают в /var/opt/cprocsp/keys/username и состоят из 6 файлов с расширением .key. Копируем все, хотя здесь будет небольшая проблема с импортом. «КриптоПро CSP» считает, что хранить контейнер на жёстком диске небезопасно, и поэтому необходим токен. Указанное препятствие можно обойти создав эмулятор контейнера.
Для этого необходимо скачать и установить ImDisk. Затем при помощи ImDisk Virtual Disk Driver следует создать эмулятор токена (именно так его и увидит CSP, по-русски это — просто контейнер HDD) и подключить его к системе.
Рисунок 5. Псевдотокен

В итоге рядом с жёстким диском должен появиться ещё один носитель — это и есть токен. Туда понадобится скопировать папку с контейнером. После этих манипуляций сертификат нормально установится в «КриптоПро CSP».
Дополнительно стоит скопировать клиентский сертификат на сервер и тоже его установить.
Конфигурационный файл для stunnel-msspi:
Здесь всё устроено по аналогии с конфигурационным файлом клиента: accept — порт, к которому подключается клиентская копия stunnel (должен быть разблокирован в брандмауэре и «проброшен» во все места до наружного выхода), connect — порт для приложения (в данном случае — Netcat).
Повторяется история и в отношении сертификата: либо импорт из контейнера, что совсем не рекомендуется, либо указание отпечатка. Отпечаток можно найти в составе сертификата.
Рисунок 6. Отпечаток сертификата в Windows

Журнал для отладки можно будет отключить тогда, когда всё будет настроено как часы.
Теперь пора скачать Netcat для Windows.
Следующий шаг — запустить сервер stunnel, заодно перезапустив и клиент. Для отладки и тестирования в Windows лучше делать это из командной строки.
В командной строке сервера побежит протокол, который расскажет, что кто-то успешно подключился. Пишем в одном окне набор символов; он появляется в другом окне. Всё настроено верно.
Рисунок 7. Результат

Выводы
В статье мы разобрали задачу о том, как получить криптотуннель с валидным ключом, подписанным самим «КриптоПро», и с алгоритмом шифрования GOST_2012, 512 бит. Сделано это с минимальными затратами — две лицензии на «КриптоПро CSP».
Можно, конечно, написать что-то своё, но лицензии JСP, к примеру, стоят намного больше. Готовые решения тоже будут значительно дороже.
Похожие публикации:
- Как пожаловаться на номер телефона
- Как торговать в режиме рпс
- Комиссия sha что это
- Полис взр что это