встраивание криптопро csp

встраивание криптопро csp Электронная цифровая подпись

Лицензия на средство криптографической защиты информации может быть встроена в электронную подпись. На каждый компьютер обычно покупают отдельные лицензии, но для наших клиентов есть опция «Расширенная лицензия», которая позволяет пользоваться «КриптоПро CSP» на любом рабочем месте, где установлена программа.

Сегодня мы расскажем о том, что такое встроенная лицензия и о том, как узнать, есть ли она в сертификате.

Содержание
  1. Почему «Расширенная лицензия» выгодна
  2. Важное вступление
  3. Общие сведения
  4. Сценарии использования
  5. Документация
  6. Лицензирование
  7. Системные требования
  8. Сертификаты
  9. Done.
  10. Что имеем на входе?
  11. Электронная подпись по Российским нормативам
  12. Можно ли использовать программу CyberSafe?
  13. Практическое использование программы
  14. Выводы
  15. Ссылки
  16. Локальные прокси
  17. Так, а что надо на выходе?
  18. Браузерные плагины
  19. Кроссбраузерные плагины
  20. ActiveX
  21. Нативные библиотеки
  22. PKCS#11
  23. NSS
  24. Библиотеки c собственным интерфейсом
  25. Как определить, встроена ли лицензия в сертификат
  26. Как работать с лицензией
  27. Соберем проект с поддержкой ГОСТ Р 34. 11-2012 256 bit
  28. Первым делом создадим новую папку
  29. I – Сборка проекта без сборки corefx для Windows
  30. II – Сборка проекта со сборкой corefx для Windows
  31. Криптографические решения. От криптопровайдеров до браузерных плагинов
  32. Немного покодим
  33. Пробный запуск
  34. Проверка в КриптоАРМ
  35. Проверка на Госуслугах
  36. Проверка в Контур. Крипто
  37. Криптопровайдеры
  38. Как проверить наличие встроенной лицензии КриптоПро в сертификат электронной подписи?
  39. Работаете в 1С?

Почему «Расширенная лицензия» выгодна

Покупая сертификат со встроенной лицензией, наш клиент получает не только электронную подпись, но и инструмент для работы с ней. Это выгодно, потому что ему не нужно искать и покупать лицензию для «КриптоПро CSP», — достаточно только установить саму программу.

«КриптоПро CSP» для электронного документооборота, сдачи электронной отчётности и участия на электронных торговых площадках. Поддерживает множество платформ и алгоритмов, а также позволяет работать со всеми ключевыми носителями, включая ключи в облаке.

Узнать об условиях приобретения электронной подписи со встроенной лицензией на криптопровайдер вы можете в нашем удостоверяющем центре, оставив. С вами свяжется менеджер и расскажет, как именно можно воспользоваться услугой «Расширенная лицензия».

Важное вступление

СОИБ. Внедрение. Встраивание КриптоПро

20 октября, 2010

По одному проекту возникла задача – встроить СКЗИ КриптоПро в существующие у заказчика средства построения SSL VPN – Check Point Connectra.

Решение вроде проверенное. Со стороны всех 3-х сторон (КриптоПро, ООО “Цифровые технологии”, Check Point) получены подтверждения что всё ок и неоднократно использовалось. Месяца 4 назад, заложили бюджет

Общие сведения

КриптоПро. NET – программный продукт, позволяющий использовать средство криптографической защиты информации (СКЗИ) КриптоПро CSP на платформе Microsoft. NET Framework. КриптоПро. NET является новой версией существовавшего ранее программного продукта КриптоПро Sharpei и реализует набор интерфейсов для доступа к криптографическим операциям. NET Cryptographic Provider:

  • хэширование;
  • подпись;
  • шифрование;
  • MAC;
  • генерация ключей и т.д.

Кроме того КриптоПро. NET позволяет использовать стандартные классы Microsoft для высокоуровневых операций:

  • разбор сертификата;
  • построение и проверка цепочки сертификатов;
  • обработка CMS сообщений;
  • XML подпись и шифрование.

КриптоПро. NET состоит из двух частей:

  • КриптоПро .NET – клиентский модуль для ОС Windows;
  • КриптоПро .NET SDK – комплект разработчика, состоящий из документации, примеров и библиотек.

КриптоПро. NET обеспечивает применение всех алгоритмов, реализуемых КриптоПро CSP.

Сценарии использования

  • Разработка приложений и веб-сервисов, в которых требуется использование российских криптоалгоритмов, на .NET Framework;
  • Подпись и проверка подписи SOAP сообщений для взаимодействия информационных систем в единой системе межведомственного электронного взаимодействия;
  • Пакетная подпись документов XPS и Microsoft Office (соответствующие примеры кода входят в состав КриптоПро .NET SDK);
  • Подпись и проверка подписи с использованием Microsoft XPS Viewer;
  • Защита соединений Microsoft Lync 2010 с использованием российских криптоалгоритмов;
  • Использование российских криптоалгоритмов в службах федеративной аутентификации (AD FS, WIF, CardSpace и т.п.).

Документация

Документация на КриптоПро. NET SDK включена в дистрибутив и доступна на портале для разработчиков cpdn.

Вопросы встраивания и использования можно обсудить на форуме.

Лицензирование

Существует два вида лицензий КриптоПро. NET:

  • Клиентская лицензия – предоставляет право установки и эксплуатации одной копии продукта на компьютере под управлением клиентской версии ОС Windows (XP/Vista/7/8/8.1/10);
  • Серверная лицензия – предоставляет право установки и эксплуатации одной копии продукта на компьютере под управлением серверной версии ОС Windows (2003/2003 R2/2008/2008 R2/2012/2012 R2/2016/2019).

КриптоПро. NET SDK распространяется на бесплатной основе в составе КриптоПро SDK.

Системные требования

КриптоПро. NET функционирует на платформах Microsoft Windows 2000 и выше (x86 и x64) под управлением Microsoft. NET Framework 2. 0 и выше и требует установленного КриптоПро CSP версии 2. 0 и выше.

Для КриптоПро. NET SDK требуется наличие на компьютере установленного КриптоПро. NET.

Сертификаты

КриптоПро. NET использует сертифицированное ФСБ России средство криптографической защиты КриптоПро CSP.

Загрузить “КриптоПро. NET”

Заказать “КриптоПро. NET”

Последние дни года – самое время подвести итоги и рассказать о самых значимых достижениях КриптоПро. 2020 год придал нашей команде мощное ускорение, на волне которого мы реализовали свои амбициозные планы и в 2021 году. Планируем двигаться дальше, не снижая темпов! А сейчас о наиболее важных проектах уходящего года.

Сертифицировали революционный криптопровайдер КриптоПро CSP 5. 0 R2, в котором реализованы самые современные алгоритмы шифрования (в том числе, Кузнечик), обеспечена возможность защиты информации по классу КС3 на ОС Astra Linux, появилась возможность встраивать клиентский TLS в свои мобильные приложения без дополнительных тематических исследований, а также без дополнительного “контроля встраивания” применять провайдер совместно с веб-серверами Apache и nginx и веб-браузером Яндекс. Браузер для обеспечения поддержки TLS с ГОСТ.

Вывели на рынок программный комплекс КриптоПро Архив, предназначенный для обеспечения долговременного хранения документов, подписанных электронной подписью, и расширяющий возможности систем электронного документооборота.

Выпустили новую версию DSS Client/myDSS 2. 0 – мобильного приложения следующего поколения, обеспечивающего создание и хранение ключей электронной подписи пользователей в мобильном приложении и позволяющего работать с основными функциями КриптоПро DSS (подпись, управление сертификатами) непосредственно при помощи мобильного телефона.

Выпустили новую версию КриптоПро NGate 1. 0 R2 – универсального шлюза удаленного доступа и VPN, сделав управлением им еще удобнее, а функционал шире.

Приняли активное участие в вопросах стандартизации криптографии на мировом уровне. В том числе, приняли участие в разработке документа RFC 9058, а также стали соавторами дополнения к международному стандарту ISO/IEC, определяющего режим шифрования CTR-ACPKM, который в связи с этим стал шестым стандартизированным на международном уровне режимом блочных шифров, войдя в международный стандарт ISO/IEC наряду с классическими режимами ECB, CBC, CFB, OFB и CTR.

Провели большую совместную работу с нашими технологическими партнерами – разработчиками программного и аппаратного обеспечения, по подтверждению совместимости продуктов КриптоПро (CSP, JCP и NGate) с отечественными операционными системами (РЕД ОС, Аврора) и аппаратными ключевыми носителями (Рутокен ЭЦП 3. 0 NFC, JaCarta), а также по созданию решения по защите информации по классу КС3 на базе отечественных программных и аппаратных продуктов в целях построения комплексных импортонезависимых решений.

Впервые для российского рынка обеспечили поддержку процессоров “Байкал” со стороны шлюза КриптоПро NGate.

Были номинированы на звание лучшего проекта по информационной безопасности в конкурсе “Проект года” с проектом “Система защищенного удаленного доступа”, реализованного на базе КриптоПро NGate.

Благодарим всех, кто выбирал наши решения для своих компаний, всех, кто работал с нами на проектах, всех, кто нас критиковал и хвалил. Все вы – часть нашего успеха, спасибо!

Done.

Гайд написан с исследовательской целью – проверить возможность подписания документов УКЭП с помощью самописного сервиса на. NET Core 3. 1 с формированием штампов подлинности и времени подписания документов.

Безусловно это решение не стоит брать в работу “как есть” и нужны некоторые доработки, но в целом оно работает и подписывает документы подписью УКЭП.

Что имеем на входе?

  • КриптоПро CSP версии 5.0 – для поддержки Российских криптографических алгоритмов (подписи, которые выпустили в аккредитованном УЦ в РФ)
  • КриптоПро TSP Client 2.0 – нужен для штампа времени
  • КриптоПро OCSP Client 2.0 – проверит не отозван ли сертификат на момент подписания
  • КриптоПро .NET Client – таков путь
  • Любой сервис по проверке ЭП – я использовал Контур.Крипто как основной сервис для проверки ЭП и КриптоАРМ как локальный. А еще можно проверить ЭП на сайте Госуслуг
  • КЭП по ГОСТ Р 34.11-2012/34.10-2012 256 bit, которую выпустил любой удостоверяющий центр
  • КриптоПро CSP версии 5.0 – у меня установлена версия 5.0.11944 КС1, лицензия встроена в ЭП.
  • КриптоПро TSP Client 2.0 и КриптоПро OCSP Client 2.0 – лицензии покупается отдельно, а для гайда мне хватило демонстрационного срока.
  • КриптоПро .NET Client версии 1.0.7132.2 – в рамках этого гайда я использовал демонстрационную версию клиентской части и все действия выполнялись локально. Лицензию на сервер нужно покупать отдельно.
  • Контур.Крипто бесплатен, но требует регистрации. В нем также можно подписать документы КЭП, УКЭП и проверить созданную подпись загрузив ее файлы.

Электронная подпись по Российским нормативам

В первой части статьи речь шла об использовании электронной подписи в коммерческих предприятиях. В государственных предприятиях и банках все немного иначе. Здесь нужно использовать сертифицированный криптопровайдер, а сами ключи должны храниться на токенах. Поэтому во второй части этой статьи будет показано, как использовать сертифицированный криптопровайдер и токены для хранения ключей вне компьютера. Сперва мы поговорим о криптопровайдере, а потом уже рассмотрим практическое использование программы. На просторах России сертифицированные криптопровайдеры предоставляют не так уж и много компаний: ООО «КРИПТО-ПРО», ООО «Лисси», ОАО «ИнфоТеКС», ЗАО «Сигнал-КОМ» и некоторые другие. Программа CyberSafe поддерживает работу с сертифицированным криптопровайдером от ООО «КРИПТО-ПРО», что обеспечивает возможность формирования и проверки электронной подписи в соответствии с отечественными стандартами ГОСТ Р 34. 11-94 / ГОСТ Р 34. 11-2012 и ГОСТ Р 34. 10-2001 / ГОСТ Р 34. 10-2012.

Читайте также:  Как подписать документ «КриптоАРМ»

Можно ли использовать программу CyberSafe?

Одно дело — шифрование личных файлов, но государственный и банковский сектор — совсем другое. Какие нормы позволяют считать CyberSafe программой, использующей сертифицированное ФСБ России СКЗИ и не требующей соответствующей сертификации? Ответ на этот вопрос можно получить в паспорте (формуляре) на программный продукт КриптоПро CSP и в методических рекомендациях по обеспечению с помощью криптосредств безопасности персональных данных при их обработке в информационных системах персональных данных с использованием средств автоматизации. Последние утверждены ФСБ России 21 февраля 2008 года № 149/54-144. В паспорте на КриптоПро CSP читаем п. 1 из раздела 2:

Допускается использование СКЗИ для криптографической защиты персональных данных

Далее открываем методические рекомендации и читаем пункт 1 из раздела 5:

Встраивание криптосредств класса КС1 и КС2 осуществляется без контроля со стороны ФСБ России (если этот контроль не предусмотрен техническим заданием на разработку (модернизацию) информационной системы).

В соответствии с Требованиями к средствам ЭП и Требованиями к средствам УЦ, которые утверждены приказом ФСБ России от 27 декабря 2011 г. № 796, устанавливается шесть классов криптосредств – КС1, КС2, КС3, КВ1, КВ2, КА1. Встраивание криптосредств класса КС3, КВ1, КВ2 и КА1 осуществляется только под контролем со стороны ФСБ России. Что же касается классов КС1 и КС2, то никакого контроля со стороны ФСБ не осуществляется. Подробнее о классах криптографической защиты вы можете прочитать по ссылке, которая приводится в конце статьи. Как видите, CyberSafe использовать не только можно, но и нужно. Исходный код библиотеки шифрования, которую использует программа, доступен всем желающим (ссылка на него есть на главной странице сайта cybersafesoft. com) по адресу: www. assembla. com/spaces/cybersafe-encryption-library/wiki
Далее приводится код функции шифрования и подписи, чтобы убедиться в надежности реализации (лист.

Листинг 1. Функция шифрования и подписи (ГОСТ)

Практическое использование программы

Рис. КриптоПро CSP успешно установлен

Далее запустите программу CyberSafe. При первом запуске после установки КриптоПро CSP нужно обязательно установить сертификат CyberSafe GOST CA (рис.

Рис. Установите сертификат

После установки сертификата CyberSafe GOST CA самое время поговорить о токенах. Токен — это USB-устройство, которое используется для авторизации пользователя, защиты электронной переписки, безопасного доступа к удаленным информационным ресурсам, а также для хранения криптографических ключей. Поскольку токены — довольно дорогие устройства, программа CyberSafe может вместо них использовать обычные флешки. На флешке будут храниться помещенные на нее ключи. Однако на токенах ваши ключи защищены от копирования, а на флешке — нет. Но учитывая стоимость токенов, такое решение вполне оправдано. Другими словами, программа CyberSafe экономит ваши деньги. При использовании как токенов, так и обычных флешек для хранения ключей, ваши ключи будут храниться не на компьютере, а на внешнем носителе (токене или флешке). Итак, создадим сертификат Крипто-Про. Выберите команду меню Сертификаты, Создать. В окне Создание сертификата введите адрес электронной почты, пароль, наименование и другую информацию. Убедитесь, что вы включили флажок Создать Крипто-Про сертификат (рис. Если этого флажка нет, убедитесь, что вы установили КриптоПро CSP и после установки перезапустили CyberSafe.

Рис. Создание сертификата Крипто-Про

Следующий шаг — очень важен. Вам нужно выбрать, где именно хранить контейнер закрытого ключа — на USB-диске (рис. 4а) или на токене (рис. 4б). Выберите токен или съемный диск, на котором вы хотите хранить сертификат (только убедитесь в правильности выбора), или же выберите Реестр, если вы хотите хранить сертификат в компьютере.

Рис. Сертификат будет храниться на флешке

Рис. Сертификат будет храниться на токене

Далее от вас понадобится немного физического труда — нужно нажимать клавиши на клавиатуре или перемещать указатель мыши, пока ключ не будет создан (рис.

Рис. Процесс создания ключа

Далее нужно создать пароль для самого контейнера (рис. 6а) или pin-код (рис. 6б) — для токена. Этот пароль должен отличаться от пароля сертификата по соображениям безопасности.

Рис. Пароль контейнера (флешка)

Рис. Pin-код для контейнера (токен)

Далее вы увидите сообщение о том, что сертификат успешно создан (рис. 7), а после нажатия кнопки Готово вам нужно открыть свой почтовый ящик и найти там код подтверждения публикации сертификата (если, конечно, вы выбрали публикацию сертификата) и ввести его в появившееся окно (рис.

Рис. Сертификат успешно создан

Рис. Введите код подтверждения публикации сертификата

Во время публикации сертификата вы увидите, что он состоит из шести файлов (рис. После публикации сертификата вы увидите сообщение об его успешной публикации на сервере. Ясное дело, что на момент публикации соединение с Интернетом должно быть установлено. Откройте Проводник и просмотрите содержимое флешки. В каталоге <наименование>. 000 вы обнаружите закрытые ключи (рис. 10).

Рис. Процесс публикации сертификата

Рис. Закрытые ключи

Перейдите в раздел Ключи и сертификаты, Все ключи и убедитесь в том, что созданный вами сертификат есть в списке сертификатов (рис. 11).

Рис. Созданный сертификат в общем списке

Далее созданный сертификат можно использовать, как обычно (что было показано в первой части статьи). Например, его можно использовать для шифрования файлов. Процесс шифрования такой же, поэтому подробно его рассматривать не будем. Скажу лишь, что при шифровании файлов нужно выбрать криптопровайдер Крипто Про ГОСТ из списка Выберите крипто провайдер (рис. 12). Далее вы увидите список соответствующих этому криптопровайдеру ключей.

Рис. Шифрование файлов по ГОСТу

Аналогично, при прозрачном шифровании папки (когда нужно зашифровать все файлы из этой папки) вам нужно выбрать криптопровайдер Крипто Про ГОСТ из соответствующего списка (рис. 13).

Рис. Выбор криптопровайдера при прозрачном шифровании

Также выбрать шифрование по ГОСТу можно выбрать при шифровании диска/раздела (см. рис. 14). В списке Тип шифрования нужно выбрать ГОСТ и установить параметры шифрования.

Рис. Шифрование диска

Выводы

Программу CyberSafe не только можно, но и нужно использовать в государственных организациях и банках, поскольку программа поддерживает сертифицированный криптопровайдер (Крипто Про) и позволяет не хранить сертификаты (ключи) на компьютере, а вынести их на внешние носители.

Ссылки

Уровень криптографической защиты при реализации обмена электронными сообщениями, защищенными электронной подписью
Формуляр ЖТЯИ. 00050-03 30 01 (КриптоПро CSP)
Методические рекомендации
Исходный код библиотеки шифрования
Первая часть статьи

Локальные прокси

Основным принципом действия локального прокси является прием незащищенного соединения от приложения, установка TLS-туннеля с удаленным сервером и передача «прикладного уровня» между приложением и удаленным сервером по этому туннелю.

встраивание криптопро csp

Спецификация-
ПлатформыСемейство Windows, GNULinux, OS X. На базе СПО iOS, Android
Алгоритмы и криптографические протоколыЭЦП, шифрование, хэш-функция, имитозащита, HMAC, VKO;
TLS
Интеграция с PKIX. 509, PKCS#10, CMS, CRL, OCSP, TSP
Механизмы ЭЦППодпись WEB-форм при прохождении траффика
WEB API
Механизмы аутентификацииклиентская аутентификация в рамках TLS
Механизмы “гостирования” TLSЧерез механизм проксирования
Форматы защищенных сообщенийPKCS#7, CMS
Интеграция с браузеромЧерез механизм проксирования
Мобильные платформыiiOS, Android на базе СПО sTunnel
Хранилища ключейРеестр, файлы, USB-токены
Взаимодействие с USB-токенамиХранилище ключей и сертификатов
Использование аппаратной реализации алгоритмов
Через PKCS#11, PC/SC, APDU
ПриложенияБраузеры
WEB-сервера
RDP
Почтовые клиенты и сервера
ИнсталляцияПрограмма установки, в целом не требуются права системного администратора
Копирование, запуск
Запуск с FLASH-памяти USB-токена

Примеры (ГОСТ)МагПро КриптоТуннель
Inter-PRO
VPNKey-TLS
LirTunnel
КриптоПро sTunnel
sTunnel

  • прокси должен быть запущен;
  • приложение должно работать через прокси, нужно «научить» его этому;
  • могут использоваться нестандартные порты, отсюда проблемы в файрволом
  • дополнительные ограничения на разработку web-сайта — в ряде случаев использование только относительных ссылок, чтобы не «вылететь» из туннеля
  • прокси сконфигурирован на проксирование конечной группы сайтов, расширение группы — это обновление клиентского конфига
  • работа через внешний прокси требует дополнительного конфигурирования локального прокси, при этом могут быть проблемы с аутентификацией пользователя на внешнем прокси
  • решение использует универсальную технологию, поэтому можно не бояться его устаревания;
  • решение может применяться на большом числе платформ, в том числе на мобильных платформах;
  • кроссбраузерность, поддержка всех WEB-серверов без модификации;
  • не требует инсталляции;
  • поддержка различных прикладных протоколов.

UPD1: Поменял в коде переменную, куда записываются байты файла подписи.

Также я забыл написать немного про подпись штампа времени – он подписывается сертификатом владельца TSP-сервиса. По гайду это ООО “КРИПТО-ПРО”:

встраивание криптопро csp

UPD2: Про библиотеки CAdESCOM и CAPICOM

Если создать пустой проект на. NET Core 3. 1, подключив непропатченные библиотеки, то при обращении к закрытому ключу выпадет исключение “System. NotSupportedException” c сообщением “The certificate key algorithm is not supported

Читайте также:  Как распечатать электронную цифровую подпись росреестра

встраивание криптопро csp

NET Core 3. 1 – Исключение без пропатченных библиотек

Но при использовании пропатченных библиотек это исключение не выпадает и с приватным ключем можно взаимодействовать:

встраивание криптопро csp

Также код из гайда работает с. NET Framework 4. 8 без использования пропатченных библиотек, но вместо обращения к пространству имен “System. Security. Cryptography”, которое подменяется пропатченными библиотеками для. NET Core, CSP Gost3410_2012_256CryptoServiceProvider будет использован из пространства имен “CryptoPro. Sharpei”:

встраивание криптопро csp

Так, а что надо на выходе?

А на выходе надо получить готовое решение, которое сделает отсоединенную ЭП в формате. sig со штампом времени на подпись и доказательством подлинности. Для этого зададим следующие критерии:

  • ЭП проходит проверку на портале Госуслуг, через сервис для подтверждения подлинности ЭП формата PKCS#7 в электронных документах;
  • КриптоАРМ после проверки подписиЗаполнит поле “Время создания ЭП” – в конце проверки появится окно, где можно выбрать ЭП и кратко посмотреть ее свойстваСтобец “Время создация ЭП”В информации о подписи и сертификате (двойной клик по записе в таблице) на вкладке “Штампы времени” в выпадающем списке есть оба значения и по ним заполнена информация:В протоколе проверки подписи есть блоки “Доказательства подлинности”, “Штамп времени на подпись” и “Время подписания”. Для сравнения: если документ подписан просто КЭП, то отчет по проверке будет достаточно коротким в сравнении с УКЭП.
  • Заполнит поле “Время создания ЭП” – в конце проверки появится окно, где можно выбрать ЭП и кратко посмотреть ее свойстваСтобец “Время создация ЭП”
  • В информации о подписи и сертификате (двойной клик по записе в таблице) на вкладке “Штампы времени” в выпадающем списке есть оба значения и по ним заполнена информация:
  • В протоколе проверки подписи есть блоки “Доказательства подлинности”, “Штамп времени на подпись” и “Время подписания”. Для сравнения: если документ подписан просто КЭП, то отчет по проверке будет достаточно коротким в сравнении с УКЭП.
  • Контур.Крипто при проверке подписи выдаст сообщение, что совершенствованная подпись подтверждена, сертификат на момент подписания действовал и указано время создания подпись:Усовершенствованная подпись подтверждена

Браузерные плагины

Для того, чтобы из скриптов WEB-страницы вызвать нативную библиотеку большинство браузеров поддерживают специальные расширения — ActiveX для IE и NPAPI-плагин для GH, MF, Opera, Sаfari и др. В данный момент на рынке существует широкий спектр продуктов, относящихся к браузерным плагинам. Архитектурно данные плагины могут быть исполнены по-разному. Некоторые работают на базе CryptoAPI и требуют дополнительной установки криптопровайдера, другие используют в качестве криптоядра PKCS#11-совместимые устройства и не требуют установки дополнительных СКЗИ на рабочее место клиента. Есть универсальные плагины, которые поддерживают как все основные криптопровайдеры, так и широкий спектр аппаратных СКЗИ.

Кроссбраузерные плагины

встраивание криптопро csp

Спецификация-
ПлатформыСемейство Windows, GNULinux, OS X
Алгоритмы и криптографические протоколыЭЦП, шифрование, хэш-функция, имитозащита, HMAC
Интеграция с PKIX. 509, PKCS#10, CMS, CRL, OCSP (КриптоПро ЭЦП Browser plugin), TSP (КриптоПро ЭЦП Browser plugin)
Механизмы ЭЦППрограммный интерфейс для использования в JavaScript

Механизмы аутентификацииЭЦП случайных данных
Механизмы “гостирования” TLS-
Форматы защищенных сообщенийPKCS#7, CMS, XMLSec (КриптоПро ЭЦП Browser plugin), CADES (КриптоПро ЭЦП Browser plugin)
Интеграция с браузеромActiveX (для IE)
NPAPI

Мобильные платформыне поддерживаются
Хранилища ключейРеестр, файлы, USB-токены
Взаимодействие с USB-токенамиХранилище ключей и сертификатов
Использование аппаратной реализации алгоритмов
Через PKCS#11, через CryptoAPI

ПриложенияБраузеры
ИнсталляцияПрограмма установки, не требуются права системного администратора
Примеры (ГОСТ)КриптоПро ЭЦП Browser plugin
eSign-PRO
КриптоПлагин Лисси
Плагин портала госуслуг
JC-WebClient
Рутокен Плагин
Плагин BSS
КриптоАРМ Browser plugin

  • отсутствие TLS
  • удаление NPAPI из Chromium
  • браузеры на мобильных платформах не поддерживают плагины
  • настройки безопасности IE могут блокировать исполнение плагина
  • кроссбраузерность
  • плагины на базе PKCS#11 не требуют установки СКЗИ
  • прозрачное использование для пользователя

ActiveX

Компания Microsoft разработала два основных клиентских ActiveX-компонента, которые транслируют функционал CryptoAPI в скрипты, в браузер. Для генерации ключа и создания PKCS#10-запроса применятся компонент XEnroll/CertEnroll, а для ЭЦП/шифрования и работы с сертификатами компонент CAPICOM.

встраивание криптопро csp

В следующих статьях будут подробно рассмотрены оставшиеся решения.

Нативные библиотеки

Open Source библиотека OpenSSL обладает широкими криптографическими возможностями и удобным механизмом ее расширения другими криптоалгоритмами. OpenSSL является основным криптоядром для широкого спектра приложений Open Source.

После того, как в эту библиотеку компанией Криптоком были добавлены ГОСТы, появились патчи для «гостификации» многих популярных приложения, использующих OpenSSL. На базе OpenSSL некоторые вендоры разработали и сертифицировали СКЗИ, кроме того в ряд продуктов OpenSSL входит «неявным» образом.

встраивание криптопро csp

СпецификацияOpenSSL API — один из де-факто стандартов для СПО
ПлатформыСемейство Windows, GNULinux, OS X, iOS, Android
Алгоритмы и криптографические протоколыЭЦП, шифрование, хэш-функция, имитозащита, HMAC, VKO;
TLS
Интеграция с PKIX. 509, PKCS#10, CMS, CRL, OCSP, TSP
Механизмы ЭЦПНативный программный интерфейс, Си-style;
Механизмы аутентификацииклиентская аутентификация в рамках TLS
собственные механизмы на базе ЭЦП случайных данных
Механизмы “гостирования” TLSTLS с российской криптографией поддержан в библиотеке (в случае использования OpenSSL в качестве браузерного криптодвижка)
TLS-прокси на базе OpenSSL (например, sTunnel)

Форматы защищенных сообщенийPKCS#7, CMS, XMLSec (при использовании с библиотекой www. aleksey. com/xmlsec, в том числе ГОСТ), S/MIME
Интеграция с браузеромЧерез TLS-прокси
Через проприетарные плагины
В Chromium OpenSSL один из возможных криптодвижков
Интеграция со службой каталоговOpenLDAP
Мобильные платформыiOS, Android
Команднострочная утилитаЕсть
Хранилища ключейФайлы, USB-токены
Взаимодействие с USB-токенамиХранилище ключей и сертификатов
Использование аппаратной реализации алгоритмов
Через PKCS#11
ПриложенияOpenVPN, Apache, sTunnel, Nginx, Postgre SQL, postfix, dovecot
Проприетарные приложения
Интеграция с фреймворкамиOpenSSL интегрирован в большое количество фреймворков (PHP, Python,. NET и др. ), но ГОСТа нет. Требуется выпускать патчи к фреймворкам
ИнсталляцияПрограмма установки, в целом не требуются права системного администратора
Копирование
Запуск использующих rкриптосредства приложений с FLASH-памяти USB-токена
Примеры (ГОСТ)МагПро КриптоПакет
ЛирССЛ
OpenSSL (несерт. )
OpenSSL + engine PKCS11_GOST + Рутокен ЭЦП

  • OpenSSL и его аналоги не поддерживается приложениями Microsoft;
  • Необходимость патчить СПО, которое поддерживает OpenSSL, для включения ГОСТов.
  • Кроссплатформенность;
  • Использование в огромном количестве проектов, открытые исходники большей части проекта — выявление и устранение уязвимостей (как пример, недавнее выявление heartbleed);
  • Распространяется копированием — можно делать приложения, не требующие инсталляции;
  • Широкий охват приложений СПО, на базе которых можно делать защищенные сертифицированные продукты;
  • Широкая интеграция в фреймворки, но при этом проблемы с ГОСТами.

PKCS#11

Библиотека PKCS#11 предоставляет универсальный кроссплатформенный программный интерфейс к USB-токенам и смарт-картам.

Функции делятся на:

  • Функции доступа к устройству;
  • Функции записи/чтения произвольных данных;
  • Функции работы с ключами (поиск, создание, удаление, импорт, экспорт);
  • Функции работы с сертификатами (поиск, импорт, экспорт);
  • Функции ЭЦП;
  • Функции хэширования;
  • Функции шифрования;
  • Функции вычисления имитовставки;
  • Функции выработки ключа согласования (Диффи-Хeллман);
  • Функции экспорта/импорта сессионного ключа;

Таким образом, стандарт PKCS#11 поддерживает полный набор криптопримитивов, пригодный для реализации криптографических форматов (PKCS#7/CMS/CADES, PKCS#10, X. 509 и др. ) и протоколов (TLS, IPSEC, openvpn и др.

Для обеспечения быстродействия часть криптопримитивов может быть реализована программно.

В стандарте PKCS#11, начиная с версии 2. 30, поддерживаются ГОСТ Р 34. 10-2001, ГОСТ Р 34. 11-94, ГОСТ 28147-89.

Использование библиотеки PKCS#11 обеспечивает совместимость ПО различных вендоров при работе с токенами. Через PKCS#11 интерфейс умеют работать приложения, написанные на на базе CryptoAPI, NSS, OpenSSL.

Пример совместимости приложений приведен на схеме. Таким образом, возможно использование подходящего приложения в соответствующем месте инфосистемы.

встраивание криптопро csp

PKCS#11 бывают также без поддержки аппаратных устройств с программной реализацией криптоалгоритмов и хранением объектов в файловой системе.

Примеры – PKCS#11 интегрированный в NSS (Mozilla), проект aToken, библиотека Агава-Про.

У компании Крипто-Про есть библиотека PKCS#11, реализованная на базе MS CryptoAPI:

встраивание криптопро csp

Существуют PKCS#11-библиотеки для мобильных платоформ. Примером подобной библиотеки служит библиотека для Рутокен ЭЦП Bluetooth, которая позволяет использовать устройство на iOS и Android.

NSS

NSS представляет собой криптографическую библиотеку от сообщества Mozilla. NSS используется такими приложениями, как браузер Mozilla Firefox, почтовым клиентом Mozilla Thunderbird.

В данный момент существуют два проекта по «гостификации» NSS:

  • Компания Лисси периодически публикует на своем сайте доступные для скачивания актуальные версии Mozilla Firefox и Mozilla Thunderbird, пересобранные с поддержкой российской криптографии. Кроме того, существует ряд продуктов этой компании, построенный на базе модифицированной библиотеки NSS — высокоуровневая библиотека NSSCryptoWrapper, плагин LCSignPlugin, десктопное приложение для ЭЦП под Android SignMaker-A.
    Следует отметить, что модифицированный специалистами этой компании NSS позволяет использовать как программные PKCS#11-токены, так и аппаратные (Рутокен ЭЦП, eToken ГОСТ, JaCarta ГОСТ, MS_KEY).
  • Atoken — это open source проект компании R-Альфа. В рамках проекта создан программный PKCS#11-токен с российской криптографией и выложены патчи для определенной версии NSS и компонента Security Manаger, позволяющие использовать в продуктах Mozilla россиийскую криптографию (TLS, ЭЦП, PKI). Кроме того R-Альфа предлагает реализацию программного PKCS#11-токена с поддержкой сертифицированной библиотеки Агава-С под названием Агава-Про.

Библиотеки c собственным интерфейсом

Проприетарные библиотеки предоставляют собственный API для встраивания в приложения. В данный список можно внести:

  • Агава-С
  • Крипто-C
  • Крипто-КОМ

Как определить, встроена ли лицензия в сертификат

Обычно сертификат электронной подписи не подразумевает наличие лицензии на средство криптографической защиты информации — СКЗИ. Для каждого компьютера, на котором будет использоваться подпись, приобретают отдельную лицензию. Но если таких устройств много, выгодно использовать сертификат со встроенной в него лицензией на СКЗИ.

Читайте также:  Федеральная служба по регулированию алкогольного рынка

Встроенная лицензия означает, что владелец электронной подписи может использовать криптопровайдер на любом рабочем месте. Проверить наличие данной лицензии можно, используя «КриптоПро CSP». Для этого выполните следующие шаги:

  • Запустите программу, перейдите в раздел «Сервис» и нажмите «Просмотреть сертификаты в контейнере». Затем выберите подходящий сертификат и нажмите «Ок» и «Далее».
  • Нажмите «Свойства», а затем перейдите на вкладку «Состав».
  • Если вы найдёте пункт «Ограниченная лицензия КРИПТО-ПРО» или «OID 1.2.643.2.2.49.2», это означает, что в сертификат встроена лицензия на использование программы.

Как работать с лицензией

Работа со встроенной лицензией сводится к установке криптопровайдера и его использовании без активации. Это правило относится к любому устройству — вводить лицензионный ключ не придётся.

Лицензия будет действовать столько же, сколько и электронная подпись — 12 месяцев.

Соберем проект с поддержкой ГОСТ Р 34. 11-2012 256 bit

Гайд разделен на несколько этапов. Основная инструкция по сборке опубликована вместе с репозиторием DotnetCoreSampleProject – периодически я буду на нее ссылаться.

Первым делом создадим новую папку

и положим туда все необходимое.

Инструкция делится на 2 этапа – мне пришлось выполнить оба, чтобы решение заработало. В папку добавьте подпапки. untime и. packages

I – Сборка проекта без сборки corefx для Windows

  • Установите КриптоПро 5.0 и убедитесь, что у вас есть действующая лицензия. – для меня подошла втроенная в ЭП;
  • Установите core 3.1 sdk и runtime и распространяемый пакет Visual C++ для Visual Studio 2015 обычно ставится вместе со студией; прим.: на II этапе мне пришлось через установщик студии поставить дополнительное ПО для разработки на C++ – сборщик требует предустановленный DIA SDK.
  • Задайте переменной среды DOTNET_MULTILEVEL_LOOKUP значение 0 – не могу сказать для чего это нужно, но в оригинальной инструкции это есть;
  • package_windows_debug.zip распакуйте в .packagesruntime-debug-windows.zip распакуйте в .
    untime
  • package_windows_debug.zip распакуйте в .packages
  • runtime-debug-windows.zip распакуйте в .
    untime
  • Добавьте источник пакетов NuGet в файле %appdata%NuGetNuGet.Config – источник должен ссылаться на путь .packages в созданной вами папке. Пример по добавлению источника есть в основной инструкеии. Для меня это не сработало, поэтому я добавил источник через VS Community;
  • Склонируйте репизиторий DotnetCoreSampleProject в .
  • Измените файл .DotnetSampleProjectDotnetSampleProject.csproj – для сборок System.Security.Cryptography.Pkcs.dll и System.Security.Cryptography.Xml.dll укажите полные пути к .
    untime;
  • Перейдите в папку проекта и попробуйте собрать решение. Я собирал через Visual Studio после открытия проекта.

II – Сборка проекта со сборкой corefx для Windows

  • Выполните 1-3 и 6-й шаги из I этапа;
  • Склонируйте репозиторий corefx в .
  • Выполните сборку запустив .corefxuild.cmd – на этом этапе потребуется предустановленный DIA SDK
  • Выполните шаги 5, 7-9 из I этапа. Вместо условного пути .packages укажите .corefxartifactspackagesDebugNonShipping, а вместо .
    untime укажите .corefxartifactsin
    untime
    etcoreapp-Windows_NT-Debug-x64

На этом месте у вас должно получиться решение, которое поддерживает ГОСТ Р 34. 11-2012 256 bit.

Криптографические решения. От криптопровайдеров до браузерных плагинов

Производители средств криптографической защиты информации (СКЗИ) предлагают различные механизмы для интеграции криптосредств в информационные системы. Существуют решения, ориентированные на поддержку систем с Web-интерфейсом, мобильных и десктопных приложений, серверных компонентов. СКЗИ интегрируются в приложения Microsoft и в продукты Open Source, обеспечивают поддержку различных прикладных протоколов и форматов электронной подписи.

С учетом растущего количества проектов с применением ЭЦП и появления массовых проектов для физических лиц, разработчикам подобных проектов требуется хорошо ориентироваться в предлагаемых производителями решениях по ЭЦП для того, чтобы сделать систему удобной в эксплуатации и недорогой в плане техподдержки. Таким образом, если еще лет 5 назад главным фактором выбора криптосредства являлось его полное соответствие требованиям регуляторов, то при сегодняшнем разнообразии важными критериями могут выступать охват поддерживаемых платформ, возможность интеграции с браузером, поддержка мобильных пользователей, возможность установки без прав системного администратора и т.

В данном материале сделана попытка классифицировать средства криптографической защиты информации.

  • Рассмотрены в основном СКЗИ, использующиеся на клиентских местах для защиты клиент-серверных соединений по протоколу TLS, для организации ЭЦП, шифрования передаваемых данных;
  • Не рассматриваются СКЗИ, применяемые для создания VPN и шифрования файловой системы, хранимых данных, а так же УЦ;
  • Отдельно выделены аппаратные криптографические устройства.

Классификация построена на основе:

  • технологий интеграции (CryptoAPI, Active-X, NPAPI и др.), которые поддерживают СКЗИ для встраивания в приложения и прикладные системы;
  • интерфейсов, которые предоставляют СКЗИ для встраивания в приложения и прикладные системы.

Кроме того, показаны способы интеграции СКЗИ с Web-приложениями и возможность его использования на мобильных платформах

Общая схема классификации приведена в таблице:

КриптопровайдерыНативные библиотеки (openssl-style, PKCS#11, NSS, собственные интерфейсы)Локальные проксиБраузерные плагиныОблачная подписьБраузеры с российской криптографией
Почтовые клиенты с российской криптографиейРоссийская криптография в фреймворках, платформах, интерпретаторахНастольные криптографические приложенияКриптография в BIOS UEFIСервис-провайдеры ЭЦПЭмуляторы доверенной среды
Аппаратные средства

В первой статье рассмотрим решения, начиная с криптопровайдеров по браузерные плагины включительно. В последующих статьях будут рассмотрены остальные средства.

Немного покодим

Потребуется 2 COM библиотеки: “CAPICOM v2. 1 Type Library” и “Crypto-Pro CAdES 1. 0 Type Library”. Они содержат необходимые объекты для создания УКЭП.

В этом примере будет подписываться BASE64 строка, содержащая в себе PDF-файл. Немного доработав код можно будет подписать hash-значение этого фала.

Основной код для подписания был взят со страниц Подпись PDF с помощью УЭЦП- Page 2 (cryptopro. ru) и Подпись НЕОПРЕДЕЛЕНА при создании УЭЦП для PDF на c# (cryptopro. ru), но он использовался для штампа подписи на PDF документ. Код из этого гайда переделан под сохранение файла подписи в отдельный файл.

Условно процесс можно поделить на 4 этапа:

  • Поиск сертификата в хранилище – я использовал поиск по отпечатку в хранилище пользователя;
  • Чтение байтов подписанного файла;
  • Сохранение файла подписи рядом с файлом.

Пробный запуск

Для подписания возьмем PDF-документ, который содержит надпись “Тестовое заявление

встраивание криптопро csp

Больше для теста нам ничего не надо

Далее запустим программу и дождемся подписания файла:

встраивание криптопро csp

Готово. Теперь можно приступать к проверкам.

Проверка в КриптоАРМ

Время создания ЭП заполнено:

встраивание криптопро csp

Штамп времени на подпись есть:

встраивание криптопро csp

Доказательства подлинности также заполнены:

встраивание криптопро csp

В протоколе проверки есть блоки “Доказательства подлинности”, “Штамп времени на подпись” и “Время подписания”:

встраивание криптопро csp

встраивание криптопро csp

встраивание криптопро csp

Проверка на Госуслугах

встраивание криптопро csp

Проверка в Контур. Крипто

встраивание криптопро csp

Криптопровайдеры

Де-факто стандартом отрасли является класс криптосредств, известных как криптопровайдеры. Криптопровайдер — это предоставляющая специальный API и специальным образом зарегистрированная в ОС библиотека, которая позволяет расширить список поддерживаемых в ОС криптоалгоритмов.

Следует отметить, что несовершенство предлагаемых MS Windows механизмов расширения вынуждает разработчиков криптопровайдеров дополнительно модифицировать высокоуровневые криптобиблиотеки и приложения MS Windows в процессе их выполнения для того, чтобы «научить» их использовать российские криптоалгоритмы.

Следует понимать, что не все СКЗИ одного вида реализуют полный объем функциональности, приведенный в таблицах. Для уточнения возможностей криптосредств следуют обратиться к производителю.

встраивание криптопро csp

  • Отсутствие нормальной кроссплатформенности;
  • Установка с правами администратора, настройка;
  • Установка обновления Windows может потребовать обновления провайдера;
  • Необходимость встраивания в приложения посредством модификации кода «на лету»;
  • CSP — неродной интерфейс для не-Windows-приложений.
  • Широкий охват Windows-приложений;
  • Богатый инструментарий для разработчиков защищенных систем;
  • Апробированная на большом количестве проектов технология.

Как проверить наличие встроенной лицензии КриптоПро в сертификат электронной подписи?

Встроенная в сертификат лицензия КриптоПро CSP даёт возможность использовать электронную подпись на любом компьютере без дополнительного приобретения лицензии программы КриптоПро.

Встроенная лицензия действует до окончания срока действия сертификата электронной подписи.

Проверить наличие встроенной лицензии КриптоПро можно двумя способами, ниже подробнее рассмотрим каждый из них.

1 способ. Проверка встроенной лицензии через программу КриптоПро CSP

Открываем программу КриптоПро CSP (ярлык может быть расположен в Панели управления или меню «Пуск»).

После запуска программы переходим на вкладку «Сервис» и нажимаем на кнопку «Просмотреть сертификаты в контейнере».

встраивание криптопро csp

Рис. вкладку «Сервис»

В открывшемся окне нажимаем на кнопку «Обзор».

встраивание криптопро csp

Рис. кнопку «Обзор»

Из представленного списка контейнеров выбираем нужную подпись.

Подпись УЦ ФНС обозначается случайным набором символов и находится на защищённом носителе (Рутокен, Джакарта).

Выделяем подпись и нажимаем на кнопку «ОК» и «Далее».

встраивание криптопро csp

Рис. Выделение сертификата электронной подписи

Открывается информация о сертификате, выбираем «Свойства».

встраивание криптопро csp

Открыв сертификат электронной подписи, переходим во вкладку «Состав» и находим среди полей «Ограниченная лицензия КРИПТО-ПРО».

Присутствие этого поля означает наличие встроенной лицензии КриптоПро CSP.

Если такого поля нет, то и встроенной лицензии нет.

встраивание криптопро csp

Рис. Поле «Ограниченная лицензия КРИПТО-ПРО»

2 способ. Проверка встроенной лицензии через КриптоПро PKI

Через меню ПУСК находим и открываем «Управление лицензиями КриптоПро PKI».

встраивание криптопро csp

Рис. Управление лицензиями КриптоПро PKI

Слева необходимо выбрать «КриптоПро CSP».

В правой части будет отображаться список всех сертификатов, содержащих встроенную лицензию КриптоПро.

Отображаются только сертификаты, установленные в хранилище «Личное».

Как установить сертификат электронной подписи в хранилище «Личное», рассказали в данной инструкции под пунктом «Установка электронной подписи

встраивание криптопро csp

Работаете в 1С?

Не забудьте активировать сервис «1С-Отчетность»
для сдачи отчетов в контролирующие органы,
он уже встроен в вашу программу.

ПОДРОБНЕЕ О СЕРВИСЕ 1С-ОТЧЕТНОСТЬ

Возврат к списку

Оцените статью
ЭЦП Эксперт
Добавить комментарий

Adblock
detector