Как стать автором
Обновить

Библиотека для встраивания электронной подписи в приложения С++

Блог компании «Актив» Информационная безопасность *Криптография *C++ *
Туториал


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

Некоторое время назад мы поддержали Рутокен ЭЦП в openssl, затем выпустили кроссплатформенный плагин для браузера, а теперь сделали высокоуровневую криптобиблиотеку для встраивания в С++ приложения.

Концептуально данные решения выполнены идентично: используется аппаратная реализация российских криптоалгоритмов на чипе Рутокен ЭЦП, обеспечивается поддержка цифровых сертификатов X.509, запросов на сертификаты PKCS#10, подписанных и зашифрованных сообщений CMS.

Новая библиотека пригодится тем, кто пишет «толстые клиенты», десктопные приложения, свои браузерные плагины и т.п.

Поддерживаемые устройства:
  • USB-токен Рутокен ЭЦП
  • Смарт-карта Рутокен ЭЦП
  • Bluetooth-токен Рутокен ЭЦП
  • Trustscreen-устройство Рутокен PINPad
  • USB-токен Рутокен WEB (HID)


Основные сценарии применения библиотеки с примерами кода под катом.
Читать дальше →
Всего голосов 14: ↑11 и ↓3 +8
Просмотры 12K
Комментарии 4

ИОК: библиотеки GCrypt и KSBA как альтернатива OpenSSL с поддержкой российской криптографии. Продолжение

Криптография *Open source *Программирование *C *Разработка под Linux *
Мы продолжаем разговор об альтернативе openssl и речь пойдет о библиотеке libksba, которая входит в состав GnuPG. Библиотека libksba предоставляет высокоуровневый интерфейс для работы с такими объектами инфраструктуры открытых ключей как сертификаты, запросы на сертификаты, электронная подпись (CMS/PKCS#7). Однако, в отличии от библиотеки GCrypt, в которой реализована поддержка российских криптографических алгоритмов, то в libksba отсутствует реализация рекомендаций ТК-26 по использованию алгоритмов ГОСТ Р 34.10-2001/2012, ГОСТ Р 34.11-94/2012 в таких объектах ИОК как сертификаты, запросы на сертификаты, объекты PKCS#7/CMS (подписанные и/или шифрованные документы и т.п).
Читать дальше →
Всего голосов 13: ↑12 и ↓1 +11
Просмотры 2.6K
Комментарии 4

Электронная подпись ГОСТ Р 34.10 документов формата PDF в офисном пакете LibreOffice

Информационная безопасность *Криптография *Python *Графические оболочки *Разработка под Linux *
Пришла пора, несмотря на все пожары, исполнить свой гражданский долг – заплатить налоги. Платить налоги мы будем через портал Госуслуги. В личный кабинет портала Госуслуг будем входить с помощью электронной подписи (терминология портала Госуслуг ), т.е. имея на руках сертификат, полученный в аккредитованном удостоверяющем центре (УЦ), и закрытый ключ. И то и другое я храню на токене PKCS#11 с поддержкой российской криптографии:
Читать дальше →
Всего голосов 33: ↑30 и ↓3 +27
Просмотры 18K
Комментарии 52

Простой ASN1-кодек на базе sprintf

Криптография *Программирование *IT-стандарты *C *Разработка под Linux *
imageТранспортный синтаксис ASN.1 определяет однозначный способ преобразования значений переменных допустимых типов в последовательность байт для передачи по сети. В ASN.1 он называется базовыми правилами кодирования (Basic Encoding Rules, BER). Правила являются рекурсивными, так что кодирование составных объектов представляет собой составление в цепочку закодированных последовательностей составляющих объектов. Протокол ASN.1 описывает структуру данных простым и понятным языком.
Читать дальше →
Всего голосов 21: ↑17 и ↓4 +13
Просмотры 5.9K
Комментарии 20

Криптографические токены PKCS#11. Графическая утилита «с функцией подписания и добавлением метки времени». Часть 1

Информационная безопасность *Криптография *Программирование *Графические оболочки *IT-стандарты *
В комментариях к статье «Использование механизмов криптографических токенов PKCS#11 в скриптовых языках» читатель kovserg написал:
«С нетерпением ждём статью с функцией подписания документа и добавлением метки времени».
Еще раньше другой участник хабра pas писал о том, что было бы здорово для токенов PKCS#11, «которые сами все умеют считать» (имеются ввиду прежде всего криптографические операции по генерации ключей, формирования и проверки электронной), избавиться от всевозможных прослоек и иметь одну утилиту, которая могла бы, используя механизмы самого токена, и формировать запрос на сертификат, и подписывать документы, проверять подпись документов, проверять подпись и валидность сертификатов.
Читать дальше →
Всего голосов 10: ↑7 и ↓3 +4
Просмотры 5.8K
Комментарии 2

Криптографический АРМ на базе токенов PKCS#11. Электронная подпись. Часть 2

Информационная безопасность *Криптография *Графические оболочки *IT-стандарты *Разработка под Linux *
В первой части нашего повествования мы показали как, имея на руках криптографический токен с поддержкой российской криптографии, создать запрос на получение сертификата, получить и установить сертификат на токен, проверить электронную подпись сертификата и его валидность по списку отозванных сертификатов (CRL), удалить сертификат с токена, сменить метки и т.д.
Читать дальше →
Всего голосов 12: ↑11 и ↓1 +10
Просмотры 4.6K
Комментарии 7

Криптографический АРМ на базе токенов PKCS#11. Получение сертификатов для ЕГАИС. Часть 4

Информационная безопасность *Криптография *Графические оболочки *IT-стандарты *Разработка под Linux *
И вот, когда я уже практически добавил в криптографический АРМ на базе токенов PKCS#11 cryptoarmpkcs генерацию самоподписанных сертификатов и готов был приступить к написанию статьи, мне пришло такое письмо:
Мы являемся УЦ «Имярек», у нас возникло затруднение с выпуском ЭП в формате pkcs#11 для ЕГАИС, портал не понимает ЭП в формате «Имярек» CSP, просим Вас помочь в данной проблеме.
Я еще не знал всех тонкостей работы с ЕГАИС, но поскольку речь шла о PKCS#11, то предложил воспользоваться утилитой cryptoarmpkcs для генерации запроса и установки сертификата на токен после его получения из УЦ. Полученный ответ меня несколько огорошил:
Читать дальше →
Всего голосов 15: ↑11 и ↓4 +7
Просмотры 5.3K
Комментарии 7

Криптографический АРМ на базе стандартов с открытым ключом. Конфигурирование токенов PKCS#11

Информационная безопасность *Графические оболочки *IT-стандарты *C *Разработка под Linux *
Еще раз просмотрев функционал утилиты cryptoarmpkcs, обратил внимание на то, что она, в основном работая с криптографическими токенами/смаркартами PKCS#11, не имеет встроенного функционала для их конфирурирования. Речь идет об инициализации токенов, установки PIN-кодов и т.п. И было решено добавить этот функционал. Первым делом для этого пришлось расширить функционал пакета TclPKCS11, библиотека которого написана на языке Си.

Новые функции пакета TclPKCS11


В пакете появились три новые функции:

::pki::pkcs11::inittoken <handle> <slotId> <SO-pin> <label for token>

::pki::pkcs11::inituserpin <handle> <slotId> <SO-pin> <USER-pin>

::pki::pkcs11::setpin <handle> <slotId> <so | user> <oldpin> <newpin>
Читать дальше →
Всего голосов 12: ↑10 и ↓2 +8
Просмотры 1.7K
Комментарии 0