detached подпись что это такое

Электронная подпись: отсоединенная, присоединенная и внутри документа

Электронная подпись может быть по-разному связана с подписанным документом. В статье рассмотрим три варианта, их отличия и особенности использования.

Присоединенная электронная подпись

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

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

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

Отсоединенная электронная подпись

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

Электронная подпись внутри данных

Электронную подпись внутри документа можно создать только в определенном приложении, например Microsoft Word или Acrobat Reader. В этом случае подпись генерируется как метаданные и только по желанию владельца можно создать на документе поле с подписью.

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

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

Источник

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

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

В чем разница между присоединенной и отсоединенной ЭЦП

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

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

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

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

Разница в чтении ЭЦП

При использовании отсоединенной подписи пользователь отправляет 2 вложения: один с основной информацией, второй — с ЭЦП. Для чтения тела документа не требуются специальные программы, но для проверки подписи и отсутствий изменений в теле файла необходимо использовать ПО.

Если документ заверен присоединенной подписью, то для его проверки, открытия и чтения нужно установить на ПК программные средства ЭЦП.

Как подписать документ

Процесс подписания ЭД зависит от типа файла и используемого плагина. Простой способ проставления ЭЦП происходит в несколько последовательных шагов:

Если используется плагин для MS Office КриптоПро Signature, то процесс заверения выглядит так:

Для формата pdf процесс подписания немного отличается:

Если все указано верно и сертификат ЭЦП действующий, то система выдаст окно-оповещение об успешном заверении документа.

Как создать отсоединенную подпись

И открепленная, и присоединенная электронная подпись создается при помощи одного сертификата, а для подписания документа необходима программа КриптоАРМ. Она работает с любыми форматами, а также видео и базами данных. КриптоАРМ позволяет заверить как один, так и сразу несколько документов любым из видов ЭЦП.

Более простой способ создания отсоединенной подписи — использование веб-сервисов типа Контур.Крипто. Преимущество — бесплатное заверение без установки на ПК плагинов, а также возможность расшифровки и зашифровки файла. Недостаток — ограниченный объем заверяемого файла (максимум 100 МБ) и поддержка только OS Windows. Для подписания необходимо:

Созданный файл можно отправить через отдельный сервис или обычную электронную почту. Созданная таким способом ЭЦП доступна для проверки любым ПО.

С использованием КриптоАРМ

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

Читайте также:  что делать если крошатся зубы и выпадают

Запускается Мастер создания ЭЦП:

Далее пользователь должен:

Если все сделано правильно, то подписание завершится без системных ошибок.

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

Отсоединенная ЭЦП не вкладывается в тело документа и отправляется получателю в виде отдельного файла. Этим она отличается от присоединенной ЭП. При проверке программа читает только файл с подписью, но не изначальный заверяемый документ. Несмотря на разницу, отсоединенная ЭЦП имеет всю юридическую силу и гарантирует неизменность данных после заверения. Создать ЭЦП можно бесплатно через онлайн-сервис либо через приложение от КриптоПро. Недостаток использования веб-сервиса в том, что объем заверяемых данных ограничен. Проверить в дальнейшем документ с отсоединенной подписью можно через любое специальное ПО.

Источник

Форматы электронной подписи

Статья посвящена обзору стандартов СMS (Cryptographic Message Syntax) для подписанных сообщений.

Для чего нужен CMS

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

Стандарт CMS (PKCS #7 и RFC 5652): теория

Чуть истории

Подпись в CMS-формате (signed data type)

Подписанное Алисой сообщение в формате CMS будет иметь следующий вид (серым отмечены необязательные атрибуты):

CMS предлагает два интересных атрибута, расширяющих возможности обычной подписи: время подписи (Signing Time) и контрасигнатуру (Countersignature). Первый атрибут определяет предполагаемое время осуществления подписи, а второй предназначен для подписи другой подписи (подписывается хеш от значения подписи). Атрибут Countersignature представляет собой структуру Signer Info с отсутствующим в Signed Attributes атрибутом Content Type и обязательно присутствующим атрибутом Message Digest. Атрибут Countersignature может иметь свой собственный атрибут Countersignature.

Если Боб решит подписать только данные, переданные Алисой, и заодно подписать подпись Алисы, то сообщение будет иметь такой вид:

Галопом по Европам оставшимся типам

СMS предлагает еще несколько интересных типов сообщений, не охватываемых темой этой статьи. Поэтому буквально по паре слов об оставшихся типах для общей картины.
Упакованные данные (enveloped data) представляют собой зашифрованные данные вместе с зашифрованными для одного или более получателей ключами, которыми эти данные были зашифрованы. Комбинация зашифрованного сообщения с одним зашифрованным ключом шифрования для одного получателя называется цифровым конвертом. Данный тип используется в качестве конверта с (подписанными) данными для одного или нескольких получателей.
Хешированные данные (данные вместе со своим хешем) используются для проверки целостности сообщения и часто являются содержимым упакованных данных.
Зашифрованные данные часто используются для шифрования данных для локального хранилища, иногда с выработанным из пароля ключом шифрования.
Данные из аутентифицированного источника (данные с проверкой подлинности) включают в себя данные вместе с их MAC-кодом и зашифрованными ключами аутентификации для одного или нескольких получателей. Используются для защиты целостности сообщений для неограниченного количества получателей.

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

CMS в реальной жизни

Как реализовать на практике?

Наша компания поддержала CMS c российской криптографией в продукте Рутокен Плагин. Рутокен Плагин предназначен для использования в браузерах, все криптографические операции производятся аппаратно, «на борту» USB-токена.

Источник

Встраивание электронной подписи в системы с WEB-интерфейсом с помощью браузерного плагина и openssl

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

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

Данные сценарии предполагают клиент-серверное взаимодействие, написание клиентских скриптов на JavaScript и соответствующих им серверных вызовов openssl.

Подробности под катом.

Общие операции

Операции с устройством

Поиск подключенных устройств

Любой клиентский сценарий начинается с поиска подключенных к компьютеру USB-устройств Рутокен. В контексте данной статьи акцент делается на устройство Рутокен ЭЦП.

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

Рутокен Плагин определяет все подключенные к компьютеру USВ-устройства Рутокен ЭЦП, Рутокен PINPad, Рутокен WEB. Поэтому следующим шагом следует определить тип устройства.

Получение информации об устройстве

Для определения типа устройства следует использовать функцию getDeviceInfo с параметром TOKEN_INFO_DEVICE_TYPE. Значение этой константы содержится в объекте плагина.

Смена PIN-кода

Пример смены PIN-кода на устройстве:

Читайте также:  что делать если запотевают пластиковые окна внутри стеклопакета

Здесь первым параметром выступает старый PIN-код, а вторым новый PIN-код.

Работа с сертификатами

1. На токене могут храниться 3 категории сертификатов:

2. Для чтения сертификатов, хранящихся на устройстве, не требуется авторизация на устройство.

Пример чтения пользовательских сертификатов с устройства:

3. Сертификат можно экспортировать в PEM-формате:

Получится примерно такая строка:

4. Сертификат можно распарсить вызовом функции parseCertificate и получить из него DN Subject, DN Issuer, расширения, значение открытого ключа, подпись, серийный номер, срок действия и т.п.

5. Сертификат можно записать на устройство.

Пример записи сертификата на устройство как пользовательского:

6. Вызовом функции deleteCertificate можно удалить сертификат с токена.

Работа с ключевыми парами ГОСТ Р 34.10-2001

1. Для получения декрипторов ключевых пар, хранящихся на устройстве, требуется ввод PIN-кода. Следует понимать, что само значение закрытого ключ получено быть не может, так как ключ является неизвлекаемым.

Пример генерации ключевой пары ГОСТ Р 34.10-2001:

3. С помощью функции deleteKeyPair ключевая пара может быть удалена с токена.

Конфигурирование openssl

Openssl поддерживает российские криптоалгоритмы, начиная с версии 1.0. Для того, чтобы их использовать, в openssl требуется подгружать engine gost. В большинстве дистрибутивов openssl эта библиотека присутствует. Чтобы engine подгружалась, можно прописать ее в конфигурационном файле openssl:

Если конфигурационный файл openssl не расположен в стандартном месте, то путь к нему можно задать через переменную окружения OPENSSL_CONF.

Другим вариантом подгрузки engine gost является ее передача в параметрах командной строки утилиты openssl.

Если engine gost не расположена в стандартном месте, то через переменную окружения OPENSSL_ENGINES можно задать путь к директории, в которой openssl будет ее искать.

Для получения информации о том, успешен ли был вызов утилиты openssl или нет, с возможностью уточнения ошибки, требуется парсить stdout и stderror. В конце статьи приведена ссылка на PHP-скрипт, который использует данную утилиту.

Теперь перейдем к реализации законченных пользовательских сценариев.

Регистрация на портале

Сертификат выдается при регистрации в системе

Последовательность вызовов в клиентском скрипте будет следующей:

Далее запрос отправляется на сервер, где на его основе выдается сертификат.
Для этого на сервере должен быть установлен и правильно сконфигурирован openssl версии от 1.0 и развернут функционал УЦ.

1. Генерация улюча УЦ:

После этого в файле ca.key будет создан закрытый ключ

2. Создание самоподписанного сертификата УЦ:

После ввода необходимой информации об издателе в файле ca.crt будет создан сертификат УЦ.

Полученный от клиента запрос сохраняем в файл user.csr и выдаем на его основе сертификат (без модификации данных из запроса):

После этого в файле user.crt создается сертификат пользователя в PEM формате. Его следует отправить на клиент.
Дальнейшая последовательность вызовов на клиенте:

Сертификат уже имеется на токене, выдан внешним УЦ

Ключевая пара при этом должна быть создана в формате, совместимом с библиотекой rtPKCS11ECP для Рутокен ЭЦП.

Последовательность вызовов на клиенте:

Подпись получается в base64-формате. При проверке ее на сервере с помощью openssl подпись следует обрамить заголовками, чтобы сделать из нее PEM. Выглядеть подобная подпись будет примерно так:

Проверка подписи на сервере:

Здесь sign.cms — файл, в котором находится подпись, ca.crt — файл с корневыми сертификатами, до одного из которых должна выстроиться цепочка, data.file — файл, в который будет сохранены подписанные данные, user.crt — файл, в который будет сохранен пользовательский сертификат. Именно из data.file нужно извлечь данные отсоединить последние 32 символа и сравнить salt.

Если на сервере нужно получить информацию из сертификата, то парсить его можно так:

Показать содержимое сертификата в текстовом представлении:

Показать серийный номер сертификата:

Показать DN субъекта (subject):

Показать DN издателя:

Показать почтовый адрес субъекта:

Показать время начала действия сертификата:

Показать время окончания действия сертификата:

Строгая аутентификация на портале

Электронная подпись данных и/или файлов в формате CMS

Проверка подписи на сервере описана выше.

Шифрование/расшифрование данных и/или файлов в формате CMS

Шифрование данных на клиенте для сервера

Для того, чтобы обеспечить конфиденциальность обмена данными между клиентом и сервером в плагине предусмотрено шифрование/расшифрование данных. Данные шифруются в формате CMS. Для того, чтобы зашифровать данные в формате CMS, требуется сертификат открытого ключа «адресата». При этом расшифровать такое сообщение сможет только владелец закрытого ключа. При шифровании данных для сервера рекомендуется хранить сертификат сервера на Рутокен ЭЦП. Этот сертификат может быть записан на устройство при регистрации пользователя на портале. Для этого следует использовать функцию importCertificate, при этом в качестве параметра category следует передать CERT_CATEGORY_OTHER. Для использования в функции cmsEncrypt нужно получить тело сертификата по его дескриптору с помощью функции getCertificate. При этом дескриптор является уникальным и неизменным и может быть сохранен в учетной записи пользователя на сервере при импорте сертификата сервера. Для того, чтобы использовалось аппаратное шифрование по ГОСТ 28147-89, требуется установить опцию useHardwareEncryption в true. В противном случае будет использована быстрая программная реализация ГОСТ 28147-89.

Читайте также:  l1 substates что это

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

Шифрование данных на клиенте:

Расшифрование данных на сервере, перед расшифрованием сообщение нужно обрамить PEM-заголовками «——BEGIN PKCS7——» и «——END PKCS7——«:

recipient.crt — сертификат того, для кого зашифровано сообщение, recipient.key — ключ того, для кого зашифровано сообщение.

Расшифрование данных, полученных с сервера, на клиенте

Для расшифрования данных, полученных с сервера, предназначена функция cmsDecrypt. Так как сервер шифрует для клиента, используя его сертификат, то в качестве keyId должен быть передан дескриптор закрытого ключа клиента, соответствующий открытому ключу в сертификате. Этот дескриптор является уникальным и неизменным и потому может быть сохранен в учетной записи пользователя на сервере. Кроме того, дескриптор ключа пользователя может быть получен явным образом, путем вызова функции getKeyByCertificate.

Шифрование данных на сервере для клиента:

Расшифрование данных на клиенте:

Полезные ссылки

Данные ссылки могут быть полезны разработчикам инфосистем с поддержкой ЭЦП на базе Рутокен Плагин и openssl:

Источник

Detached подпись что это такое

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

Как получить

Простую электронную подпись (ПЭП) можно создать с помощью программного обеспечения, например:

Для оформления простого электронного сертификата (подписи) нужно создать документ, открыть меню «Файл», выбрать пункт «Защита документа», а потом выбрать «Добавить цифровую подпись». Если подпись создаётся впервые, программа выдаст запрос на получение программного обеспечения от партнеров. В этом случае поможет русскоязычная версия приложения «Карма», которое установит подпись в операционную систему.
После завершения всех действий нужно сохранить файл.

Приложение КриптоПро CSP

Этот метод сложнее, зато с помощью этого ПО можно создать усиленные ключи.

Ещё один способ — получить заверенную простую электронную подпись в удостоверяющем центре, где сертификат запишут на USB-токен. Этот вариант подойдёт тем, кто создаёт документы в текстовых программах: с помощью сертификата получится защитить документ от плагиата и подтвердить авторство.

Где можно применять

Недостатки

Простая электронная подпись не имеет юридической силы. Её нельзя использовать для подачи документов в государственные инстанции, а также для участия в торгах по 44-ФЗ и 223-ФЗ.

Чтобы при помощи ПЭП можно было подписывать обычные документы (например, договоры с контрагентами), нужно составить соглашение о простой электронной подписи. Такое соглашение должно содержать пункты об обязанности соблюдать конфиденциальность сведений и правила определения подписавшего лица — подлинности подписи. И подписывать его придётся всем сторонам, участвующим в электронном взаимодействии. Иначе все документы, подписанные ПЭП, закон признает недействительными.

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

Неквалифицированная электронная подпись (НЭП) — чаще всего это ключ, хранящийся на USB-носителе. Иногда НЭП может создать программа, в которой работаете (только она и опознает эту подпись). Функционал такой подписи тоже частично ограничен, но, по сравнению с ПЭП, она обладает рядом преимуществ.

Как получить

Юридические лица и ИП могут оформить неквалифицированную подпись в удостоверяющих центрах или даже сделать её самостоятельно при помощи опытного программиста.

Где можно применять

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

Недостатки

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

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

Наиболее совершенный вид электронной подписи — усиленная квалифицированная подпись (КЭП). Это ключ, сформированный с помощью сертифицированных криптографических средств, который записывается на USB-носитель.

Ключ электронной подписи указан в сертификате, который выдаёт удостоверяющий центр, аккредитованный в Минкомсвязи.

КЭП состоит из двух частей:

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

Как получить

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

Для работы с квалифицированной подписью потребуются:

Где можно применять

Если коротко — везде.

Недостатки

У КЭП существует один недостаток: нужно ежегодно оплачивать сертификат электронной подписи.

Источник

Сказочный портал