Подпись в формате bes что значит
Подпись в формате bes что значит
Данные для подписания, усовершенствования, расшифрования или зашифрования документа передаются в структуре Document в метод /documents
Поле | Тип | Описание |
---|---|---|
Content | string | Документ (в кодировке Base64) |
Name | string | Название документа |
Signature | DocumentSignature | Информация о подписи документа. |
Encryption | DocumentEncryption | Информация о параметрах шифрования документа. |
Decryption | DocumentDecryption | Информация о параметрах расшифрования документа. |
Hash | DocumentHash | Информация о параметрах хэширования документа. |
Параметры подписи (DocumentSignature)
Поле | Тип | Описание |
---|---|---|
Type | SignatureType | Тип подписи |
Parameters | Dictionary | Дополнительные параметры подписи |
CertificateId | int | Идентификатор сертификата |
PinCode | string | Пин-код для доступа к закрытому ключу сертификата |
Параметры зашифрования (DocumentEncryption)
Поле | Тип | Описание |
---|---|---|
Type | EncryptionType | Тип шифрования. |
Parameters | Dictionary | Дополнительные параметры шифрования. Список доступных параметров можно найти здесь. |
Certificates | List | Список сертификатов получателей. |
Параметры расшифрования (DocumentDecryption)
Поле | Тип | Описание |
---|---|---|
Type | EncryptionType | Тип шифрования. |
CertificateId | int | Идентификатор сертификата получателя. |
PinCode | string | ПИН-код для доступа к закрытому ключу сертификата. |
Параметры хэширования (DocumentHash)
Поле | Тип | Описание |
---|---|---|
Parameters | Dictionary | Параметры хэширования |
Параметры подписи документа
Типы подписи
Обычно в параметре DocumentType указывают расширение подписываемого файла. Допустим также любой другой строковый идентификатор. С данным идентификатором должен быть связан плагин для отображения документов на сервере DSS.
В зависимости от выбранного формата подписи необходимо указать сопутствующие параметры. При подписи без подтверждения вторым фактором аутентификации параметры передаются в поле Parameters структуры Document.
При подписи с подтверждением вторым фактором аутентификации параметры передаются в поле Parameters структуры Transaction.
Внимание!
Имена параметров, которые передаются в поле Parameters регистрозависимы.
Подпись формата CAdES или CMS
Подпись формата PDF
Имя | Значение | Описание |
---|---|---|
PDFFormat | CMS | Подпись PDF документов с использованием формата PKCS7 |
CAdEST | Подпись PDF документов с использованием формата CAdES-T | |
CAdES | Подпись PDF документов с использованием формата CAdES-X Long Type 1 | |
PDFReason (r) | Цель подписания документа | |
PDFLocation (r) | Место подписания документа | |
PdfSignatureAppearance (o) | Строковое представление шаблона видимой (отображаемой) PDF-подписи | |
PdfSignatureTemplateId (o) | 1 | Идентификатор шаблона видимой (отображаемой) PDF-подписи Простой текстовый шаблон |
2 | Идентификатор шаблона видимой (отображаемой) PDF-подписи Шаблон с логотипом и текстом | |
3 | Идентификатор шаблона видимой (отображаемой) PDF-подписи Шаблон в виде изображения | |
PDFCertificationLevel(o) | Уровень сертификации подписи. Описывает, в зависимости от уровня, тип изменений, которые можно вносить в документ. Возможные значение описаны ниже |
PDFCertificationLevel
NOT_CERTIFIED | Подпись для утверждения |
CERTIFIED_NO_CHANGES_ALLOWED | Сертифицирующая подпись, после сертификации изменения запрещены |
CERTIFIED_FORM_FILLING | Сертифицирующая подпись, после сертифкации разрешено заполнение полей форм и использование цифровых подписей |
CERTIFIED_FORM_FILLING_AND_ANNOTATIONS | Сертифицирующая подпись, после сертификации разрешены комментарии, заполнение полей форм и использование цифровых подписей |
Примечание
При создании видимой (отображаемой) подписи необходимо указание параметров PdfSignatureTemplateId и PdfSignatureAppearance
Подпись формата MS Office
Дополнительный параметры подписи отсутствуют
Подпись в формате bes что значит
Типы подписи
Обычно в параметре DocumentType указывают расширение подписываемого файла. Допустим также любой другой строковый идентификатор. С данным идентификатором должен быть связан плагин для отображения документов на сервере DSS.
В зависимости от выбранного формата подписи необходимо указать сопутствующие параметры. При подписи без подтверждения вторым фактором аутентификации параметры передаются в поле Parameters структуры Document.
При подписи с подтверждением вторым фактором аутентификации параметры передаются в поле Parameters структуры Transaction.
Внимание!
Имена параметров, которые передаются в поле Parameters регистрозависимы.
Подпись формата CAdES или CMS
Подпись формата PDF
Имя | Значение | Описание |
---|---|---|
PDFFormat | CMS | Подпись PDF документов с использованием формата PKCS7 |
CAdEST | Подпись PDF документов с использованием формата CAdES-T | |
CAdES | Подпись PDF документов с использованием формата CAdES-X Long Type 1 | |
PDFReason (r) | Цель подписания документа | |
PDFLocation (r) | Место подписания документа | |
PdfSignatureAppearance (o) | Строковое представление шаблона видимой (отображаемой) PDF-подписи | |
PdfSignatureTemplateId (o) | 1 | Идентификатор шаблона видимой (отображаемой) PDF-подписи Простой текстовый шаблон |
2 | Идентификатор шаблона видимой (отображаемой) PDF-подписи Шаблон с логотипом и текстом | |
3 | Идентификатор шаблона видимой (отображаемой) PDF-подписи Шаблон в виде изображения | |
PDFCertificationLevel(o) | Уровень сертификации подписи. Описывает, в зависимости от уровня, тип изменений, которые можно вносить в документ. Возможные значение описаны ниже |
PDFCertificationLevel
NOT_CERTIFIED | Подпись для утверждения |
CERTIFIED_NO_CHANGES_ALLOWED | Сертифицирующая подпись, после сертификации изменения запрещены |
CERTIFIED_FORM_FILLING | Сертифицирующая подпись, после сертифкации разрешено заполнение полей форм и использование цифровых подписей |
CERTIFIED_FORM_FILLING_AND_ANNOTATIONS | Сертифицирующая подпись, после сертификации разрешены комментарии, заполнение полей форм и использование цифровых подписей |
Примечание
При создании видимой (отображаемой) подписи необходимо указание параметров PdfSignatureTemplateId и PdfSignatureAppearance
Подпись формата MS Office
Дополнительный параметры подписи отсутствуют
Особенности создания подписанных CMS сообщений в Крипто-Про CSP 3.6 и выше
Для того, чтобы создаваемые с помощью CryptoAPI сообщения могли быть впоследствии дополнены до форматов усовершенствованной ЭЦП (CADES-T, CADES-X Long Type 1 и других), они должны как минимум соответствовать базовому формату усовершенствованной ЭЦП (CADES-BES).
Формат электронной подписи CADES-BES требует наличия в подписанном сообщении подписанного атрибута, идентифицирующего сертификат подписывающего:
Также в сообщение добавляется отметка о времени создания подписи в виде подписанного атрибута signingTime (время в атрибуте указывается по часам локального компьютера).
Особенности добавления атрибутов
Поиск сертификата ключа электронной подписи
Для поиска сертификата используется имя издателя и серийный номер, заданный в качестве идентификатора подписывающего при вызове функции. Если в качестве идентификатора подписывающего указан идентификатор ключа, поиск сертификата не ведётся и атрибуты в сообщение не добавляются.
Отключение добавления атрибутов
Флаг | Описание |
---|---|
CPCMSG_CADES_DISABLE | Отключает добавление атрибутов. Данный флаг не может быть указан одновременно с CPCMSG_CADES_STRICT. |
CPCMSG_CADES_STRICT | Если не удалось добавить атрибуты, функция вернёт ошибку. Данный флаг не может быть указан одновременно с CPCMSG_CADES_DISABLE. |
CPCMSG_CADES_DISABLE_CERT_SEARCH | Отключает поиск сертификата подписывающего в хранилищах «Личные» («My») текущего пользователя и локального компьютера. |
Параметр dwFlags для функции CryptSignMessage может содержать дополнительные флаги, определённые в файле WinCryptEx.h :
Флаг | Описание |
---|---|
CPCRYPT_MESSAGE_CADES_DISABLE | Отключает добавление атрибутов. Данный флаг не может быть указан одновременно с CPCRYPT_MESSAGE_CADES_STRICT. |
CPCRYPT_MESSAGE_CADES_STRICT | Если не удалось добавить атрибуты, функция вернёт ошибку. Данный флаг не может быть указан одновременно с CPCRYPT_MESSAGE_CADES_DISABLE. |
КриптоПро CAPILite Версия: 3.6 Сборка 7285
Юридически значимый документооборот внутри компании и с контрагентами на платформе Docsvision
Позади длительные переговоры. Договор переписан десятки раз и, наконец, согласован со всеми ответственными лицами. Проект уже утверждён и требует срочного запуска. А на финальной версии договора ещё нет подписи генерального директора, потому что он в командировке или неожиданно объявили локдаун, и все работают из дома. Подобные проблемы не возникают в организациях, которые не только оцифровали движение документов внутри компании, но и выстроили юридически значимый безбумажный документооборот, как внутренний, так и внешний (с контрагентами).
Запись вебинара об организации юридически значимого электронного документооборота
В этой статье рассмотрим, как организовать поддержку юридической значимости электронных документов внутри организации и с её контрагентами на примере платформы Docsvision. Под юридической значимостью (ЮЗДО) будем понимать ситуацию, когда электронный документ можно приравнять к бумажному, в том числе в суде.
Словарь терминов
Чтобы перейти к юридически значимому документообороту, необходимо реализовать подписание документов в соответствии с нормативными требованиями, это позволит в случае конфликта доказать и подтвердить подлинность подписи. Федеральный закон N 63 «Об электронной подписи» от 06.04.2011 определяет три вида ЭП, которые используются в операционной деятельности предприятия.
Виды электронных подписей (ЭП), согласно ФЗ-63
Использование различных видов электронной подписи в СЭД, изменения в законах об ЭП
Подводные камни: как КЭП превратить в усиленную квалифицированную ЭП и зачем?
Что можно знать наверняка, если документ был подписан квалифицированной электронной подписью? Только то, что после подписания документ не был изменён. Остаются вопросы: был ли в момент подписания действителен используемый сертификат, когда точно произошло подписание документа? Ответить на них можно, если использовать TSP и OSCP протоколы, а уровень подписи поднять на ещё одну ступень выше до усовершенствованной усиленной ЭП. Именно усиленная квалифицированная электронная подпись (УКЭП) используется для обеспечения юридической значимость документооборота.
Разберёмся, как это работает.
При использовании TSP-протокола в момент подписания документа полученный хэш отправляется на сервер штампов времени, а сервер штампов времени отправляет ответ в виде точного времени и хэша, подписанные собственным сертификатом. В результате гарантируется верность времени и факта подписания документа.
Аналогично работает OCSP-протокол. В онлайн-режиме он позволяет получить подтверждение, что сертификат, которым подписывается документ, валиден на момент подписания.
Наиболее распространённые форматы электронных подписей
Платформа Docsvision позволяет подписывать электронные документы всеми видами электронных подписей. То есть функциональность полностью соответствует требованию ФЗ-63 «Об электронной подписи». Но есть нюансы – положительные.
Особенности реализации юридически значимого внутреннего документооборота на платформе Docsvision
Простая ЭП в платформе Docsvision не только подтверждает, кто подписал документ, но также факт того, что документ не был изменён после подписания. Для этого не надо совершать никаких дополнительных настроек, возможность юридически значимого документооборота внутри организации заложена в платформу Docsvision. С помощью провайдера КриптоПро можно поддержать подписи формата CAdES-T или CAdES-XL, когда дополнительно проверяется валидность подписи и фиксируется точное время подписания.
Помимо файлов, то есть документов, на платформе Docsvision можно подписывать атрибуты документов и операции (действия, которые совершаются над документами). Гибкие настройки платформы позволяют выбирать, какие файлы подписывать (основные, дополнительные), какие атрибуты и поля карточки документа и передавать такие документы контрагентам.
Как перейти к электронному документообороту с контрагентами?
Если документ внутри организации был подписан ЭП, а теперь его надо передать внешнему контрагенту, то требуется выгрузить такой документ и подпись к нему, а затем отправить партнёру любым способом, хоть электронной почтой. Важно, чтобы контрагент мог всё загрузить в свою систему и проверить, что подпись на документе валидна. Однако, по факту для обмена юридически значимыми документами с контрагентами удобнее воспользоваться услугами оператора ЭДО.
Зачем нужны операторы ЭДО?
Операторы ЭДО предоставляют инфраструктуру, чтобы генерировать сертификаты и ключи, для обеспечения подписания документов усиленной квалифицированной подписью. Они также дают дополнительную юридическую гарантию, что подписание документа было корректным и валидным. Даже если документ был отправлен с простейшей подписью формата CAdEF-Base после передачи его оператору ЭДО, он будет иметь юридическую силу даже в суде. Оператор ЭДО гарантирует факт доставки и подтверждает юридическую силу процесса передачи.
Законодательно закреплено требование для обмена формализованными документами через сертифицированных операторов ЭДО. Хотя можно обмениваться и неформализованными документами, например, договорами и письмами. Для удобства работы пользователей операторы организуют личный кабинет, в котором собраны документы и контрагенты.
Модуль Docsvision для интеграции с операторами ЭДО
Модуль Docsvision для передачи формализованных и неформализованных документов операторам ЭДО позволяет автоматически загружать информацию о контрагентах, автоматически отправлять и получать документы контрагентам непосредственно из интерфейса системы Docsvision, что позволяет встраивать функции обмена документами с контрагентами в бизнес-процессы. Его архитектурное решение позволяет работать с одним и более оператором ЭДО. С одной стороны, в модуле есть компонент, встраиваемый во внутреннюю систему документооборота, а с другой – коннектор к операторам ЭДО. В результате можно не ограничивать свой выбор в канале общения с контрагентами.
Схема движения документа между Docsvision и сервисом оператора ЭДО
Современные информационные системы и сервисы обеспечивают возможность взаимной интеграции, что позволяет выстраивать сквозные сценарии работы с документами. Например, в решении Договорной документооборот с контрагентами согласование, подписание, а также обмен договорами и сопутствующими документами с поставщиками и клиентами – все эти этапы выстроены в единый бесшовный процесс в электронном виде.
Дополнительные материалы по теме ЮЗДО
Запись вебинара об интеграции СЭД и ЭДО и демонстрация работы решения
Заключение
Платформа Docsvision поддерживает все виды электронных подписей. Обеспечивает не только базовое подписание документа, но и атрибутов, карточек документов, операций – с возможностью отслеживания их неизменности и средства интеграции с операторами ЭДО. Таким образом, организация может поддержать юридически значимый документооборот и внутри, и с контрагентами.
Все решения, построенные на платформе Docsvision, отвечают современным требованиям к ведению ЮЗДО: и в соблюдении нормативной базы, и в соответствии актуальным запросам отрасли.
Важное вступление
Для получения штампа времени использован TSP-сервис http://qs.cryptopro.ru/tsp/tsp.srf
Что имеем на входе?
КЭП по ГОСТ Р 34.11-2012/34.10-2012 256 bit, которую выпустил любой удостоверяющий центр
Лицензирование ПО и версии
Контур.Крипто бесплатен, но требует регистрации. В нем также можно подписать документы КЭП, УКЭП и проверить созданную подпись загрузив ее файлы.
Так, а что надо на выходе?
ЭП проходит проверку на портале Госуслуг, через сервис для подтверждения подлинности ЭП формата PKCS#7 в электронных документах;
КриптоАРМ после проверки подписи
Стобец «Время создация ЭП»
В информации о подписи и сертификате (двойной клик по записе в таблице) на вкладке «Штампы времени» в выпадающем списке есть оба значения и по ним заполнена информация:
В протоколе проверки подписи есть блоки «Доказательства подлинности», «Штамп времени на подпись» и «Время подписания». Для сравнения: если документ подписан просто КЭП, то отчет по проверке будет достаточно коротким в сравнении с УКЭП.
Контур.Крипто при проверке подписи выдаст сообщение, что совершенствованная подпись подтверждена, сертификат на момент подписания действовал и указано время создания подпись:
Усовершенствованная подпись подтверждена
Соберем проект с поддержкой ГОСТ Р 34.11-2012 256 bit
Первым делом создадим новую папку
. и положим туда все необходимое.
Перейдите в папку проекта и попробуйте собрать решение. Я собирал через Visual Studio после открытия проекта.
Выполните 1-3 и 6-й шаги из I этапа;
На этом месте у вас должно получиться решение, которое поддерживает ГОСТ Р 34.11-2012 256 bit.
Немного покодим
Потребуется 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-документ, который содержит надпись «Тестовое заявление.»:
Больше для теста нам ничего не надо
Далее запустим программу и дождемся подписания файла:
Готово. Теперь можно приступать к проверкам.
Проверка в КриптоАРМ
Время создания ЭП заполнено:
Штамп времени на подпись есть:
Доказательства подлинности также заполнены:
В протоколе проверки есть блоки «Доказательства подлинности», «Штамп времени на подпись» и «Время подписания»:
Важно отметить, что серийный номер параметров сертификата принадлежит TSP-сервису http://qs.cryptopro.ru/tsp/tsp.srf
Проверка на Госуслугах
Проверка в Контур.Крипто
Безусловно это решение не стоит брать в работу «как есть» и нужны некоторые доработки, но в целом оно работает и подписывает документы подписью УКЭП.
Это вообще законно?
С удовольствием узнаю ваше мнение в комментариях.
Ссылки на публичные источники
UPD1: Поменял в коде переменную, куда записываются байты файла подписи.
UPD2: Про библиотеки CAdESCOM и CAPICOM
Но при использовании пропатченных библиотек это исключение не выпадает и с приватным ключем можно взаимодействовать: