Сообщения

Показаны сообщения с ярлыком "сертификат"

Открываем доступ пользователю к хранилищу сертификатов локального компьютера

Изображение
В данной статье рассматривается решение проблемы доступа к хранилищу сертификатов на операционных системах семейства Windows! В библиотеке стандартных подсистем (БСП), начиная с версии 2.3, реализован мощный программный интерфейс для работы с криптографическими операциями. Выполнение криптографических операций требует обращение к хранилищу сертификатов, где хранится информация о сертификатах, установленных на компьютере. В момент программного обращения к хранилищу сертификатов, с целью получения информации о сертификате, может возникнуть ошибка доступа. Данная ошибка возникает по причине отсутствия необходимых прав у пользователя ОС к хранилищу сертификатов. ОС Windows сертификаты хранит в двух основных хранилищах, которые подразделяются на вложенные хранилища. Основные хранилища: Хранилище локального компьютера - содержит сертификаты, доступ к которым осуществляется выполняющимися на компьютере процессами; Хранилище текущего пользователя - интерактивные приложения обычно пом...

Валидация сертификата при проверке подписи XMLDSIG

В статье Проверка подписи XMLDSIG на примере СМЭВ рассказывается про проверку электронной подписи (ЭП) формата XMLDSIG. Как показала практика, метод Verify() объекта SignedXML не выполняет валидацию (действительность) сертификата ЭП. Проверить действительность сертификата каждой электронной подписи, которой подписан XML документ, можно с помощью свойства Signers того же объекта SignedXML. Коллекция Signers заполняется в порядке следования элементов, найденных XPath-запросом. По умолчанию используется следующий запрос: "//*[local-name()='Signature' and namespace-uri()='http://www.w3.org/2000/09/xmldsig\#']" . Важно, свойство Signers доступно только после проверки подписи. Данное свойство содержит коллекцию подписей, для которых доступен ограниченный набор свойств: можно узнать статус подписи при помощи свойства Signer.SignatureStatus; получить информацию о сертификате ключа подписи при помощи свойства Signer.Certificate. Свойство Signer.Certifica...

Создание ЭП-ОВ для взаимодействия со СМЭВ

Изображение
Проверка подписи XMLDSIG (WS-Security) с помощью сервиса СПЭП СМЭВ Проверка подписи XMLDSIG на примере СМЭВ Для взаимодействия со СМЭВ, все исходящие сообщения информационной системы, подключенной к СМЭВ, должны быть подписаны с целью удостоверения данных. Требования к алгоритмам создания электронной подписи информационной системы следующие: алгоритмы для расчета хеш-сумм -  ГОСТ Р 34.11-94 ; формирования подписи -  ГОСТ Р 34.10-2001 . Сообщение СМЭВ представляет собой XML документ, который подписывается ЭП по формату XMLDSIG (спецификация WS-Security). Подробное описание алгоритма создания ЭП находится в методических рекомендациях СМЭВ. Алгоритм можно реализовать самостоятельно, но в данной статье создание ЭП будем выполнять с помощью программных продуктов компании КриптоПро. Первым делом выполняем установку продуктов КриптоПро CSP и КриптоПро CADESCOM . К сожалению они являются платными, но использовать триальную версию можно 90 дней. Если подпись будет создавать...

Неправильный параметр набора ключей при создании ЭП на стороне сервера

Изображение
Создание электронной подписи на платформе 1С с помощью СКЗИ КриптоПро CSP можно выполнять как на стороне сервера, так и на стороне клиента. В обоих случаях может появиться довольно неприятная ошибка: Неправильный параметр набора ключей. Неприятна данная ошибка тем, что у неё множество причин, и что бы её исправить, нужно провести целый комплекс мероприятий. Постановка задачи Допустим, имеется информационная база, с которой платформа 1С работает в клиент-серверном варианте. Создание электронной подписи будем выполнять на стороне сервера, в этом случае рекомендуется использовать сертификаты и ключи, находящиеся в хранилище локального компьютера, так как они будут доступны любому пользователю Windows. А так же имеется установленный сертификат в хранилище локального компьютера в разделе Личное (см. рисунок 1) с привязкой к закрытому ключу (см. рисунок 2). Рисунок 1. Сертификат локального хранилища

Выполнение POST-запроса по протоколу HTTPS на платформе 8.2 на примере Yandex.API

Изображение
Выполнение POST-запроса на примере Yandex.API Выполнение GET-запроса на примере Яндекс.API Теперь сервис Яндекс.Геокодер работает по протоколу HTTPS (расширенная версия протокола HTTP, который поддерживает шифрование). Вызов принят, 1С вызываю тебя! Танцы с бубном вокруг файла cacert.pem Что бы с помощью платформы 1С выполнить HTTPS-запрос методом POST, необходимо в файл cacert.pem добавить информацию о корневом сертификате сервиса, на который выполняется запрос, иначе запрос будет завершаться ошибкой: Peer certificate cannot be authenticated with known CA certificates Если же платформа 1С содержит информацию о корневом сертификате, то ничего настраивать не нужно, все будет успешно выполняться. Добавление информации о корневом сертификате Важно! Все сертификаты из цепочки необходимо добавлять в файл cacert.pem 1. Скачать подходящий дистрибутив с сайта  Win32OpenSSL , например, для 64 разрядной ОС Win64OpenSSL_light последней версии.

Шифрование строковых данных с помощью CAPICOM.EnvelopedData

Изображение
Шифрование строковых данных. Менеджер криптографии. Просмотр криптопровайдеров ОС Windows. Инициализация менеджера криптографии. Шифрование строковых данных с помощью CAPICOM.EncryptedData Создание тестового сертификата Для получения необходимых утилит для работы с тестовыми сертификатами необходимо установить Visual Studio Express, ибо других способов получения этих утилит я не нашел. Перечень необходимых утилит: makecert - средство создания сертификатов; cert2spc - средство проверки сертификата издателя программного обеспечения; pvk2pfx - средство создания файлов обмена личной информации. Создадим самозаверяющий сертификат, который будет использоваться для шифрования, с указанием поддерживаемого криптопровайдера Microsoft Strong Cryptographic Provider с помощью утилиты makecert.exe: makecert.exe -r -n "cn=1centerprise8.blogspot.com" -sp "Microsoft Strong Cryptographic Provider" -sky exchange -sv C:\test_cert\1centerprise.pvk C:\test_cert\1cente...

Шифрование строковых данных. Менеджер криптографии.

Изображение
Просмотр криптопровайдеров ОС Windows. Инициализация менеджера криптографии. Шифрование строковых данных с помощью CAPICOM.EnvelopedData Шифрование строковых данных с помощью CAPICOM.EncryptedData Шифрование - обратимое преобразование некой информации с целью сокрытия от неавторизованных лиц и, в это же время, предоставление, авторизованным пользователям доступа к ней. Главная задача шифрования - это соблюдение конфиденциальности передаваемой информации. Методы шифрования: Симметричное шифрование - использует один и тот же ключ и для зашифрования, и для расшифрования; Асимметричное шифрование - использует два разных ключа: один для зашифрования (который также называется открытым), другой для расшифрования (называется закрытым). Объект МенеджерКриптографии платформы 1С позволяет шифровать данные, используя симметричное шифрование, так как криптопровайдеры ОС Windows используют данный вид шифрования (RC2, RC4).

Создание временного сертификата для использования во время разработки

Изображение
Что такое MakeCert MakeCert - инструмент для создания сертификатов X.509, которые предназначены исключительно для тестирования разрабатываемого приложения. Этот инструмент создает пару ключей(открытый и закрытый) для цифровой подписи и помещает её в файл сертификата!!! MakeCert входит в состав пакета Windows SDK, который можно скачать с  http://go.microsoft.com/fwlink/p/?linkid=84091 . Если вам не хочется устанавливать целый пакет разработчика, то вот ссылка на сам файл .

Копирование ключевого контейнера с РуТокен в Реестр с помощью КриптоПро

Изображение
Проблемка Изначально, электронную подпись(ЭП) выдают на физическом носителе под названием RuToken или EToken. На нем храниться сертификат(он же открытый ключ,  как я понимаю) и секретный(он же закрытый) ключ. Эта пара ключей объединяется ключевым контейнером. На одном физическом носителе может быть несколько ключевых контейнеров. После завершения срока действия сертификата, его перевыпускают вместе с секретным ключом, то есть заново создают пару ключей: закрытый и открытый. Так вот, о чем это я, в конторе имеется Рутокен с ЭП, одновременно он может потребоваться нескольким сотрудникам для подписи документов и тут начинаются конфликты. Но на самом деле не все так печально, если ключевой контейнер разрешает себя экспортировать, то его можно поместить с Рутокена в Реестр! Поместив контейнер в реестр и указав сертификату, что закрытый ключ храниться в реестре по такому-то адресу, наличие Рутокена в USB-порту отпадает.