(2018-02-09 14:28:54 отредактировано i.maksimov2000)

Архив файлов с ЭП

Добрый день.

Для одного из проектов хотим реализовать архив документов с электронной подписью (похоже на crypto.kontur.ru). Подпись формируем при помощи Рутокен ЭЦП и сохраняется в базе данных. Возможно ли проверить и отобразить эту подпись на стороне сервера при помощи OpenSSL ГОСТ и PHP?

Re: Архив файлов с ЭП

Добрый день, i.maksimov2000

Вы собираетесь использовать ГОСТ-2001 или ГОСТ-2012?
Вы используете открепленную или прикрепленную подпись? Расскажите подробнее как именно вы формируете подпись.
Что Вы вкладываете в отображение подписи? Что именно вы хотите отобразить?

Re: Архив файлов с ЭП

Владимир Салыкин пишет:

Добрый день, i.maksimov2000

Вы собираетесь использовать ГОСТ-2001 или ГОСТ-2012?
Вы используете открепленную или прикрепленную подпись? Расскажите подробнее как именно вы формируете подпись.
Что Вы вкладываете в отображение подписи? Что именно вы хотите отобразить?

Пользователи загружают файлы на сервер и затем выбирают те, для которых необходимо добавить подпись. Для выбранных файлов сервер формирует base64 представление и передает на клиент где и осуществляется подписание (отсоединенная подпись по ГОСТ Р 34.10-2001). Подпись сохраняется в базе данных.
При просмотре файлов в интерфейсе системы происходит проверка корректности подписи, а также отображаются данные о ее авторе (имя, должность, СНИЛС, ИНН, ОГРН), дате подписания и сроке действия сертификата.

Re: Архив файлов с ЭП

Добрый день, i.maksimov2000.

Понял. Да, вы сможете это без проблем сделать. Готового куска PHP кода у нас для этого нет. Но в нашей инструкции https://dev.rutoken.ru/pages/viewpage.a … d=18055206 написано, как с помощью openssl проверить подпись. Для получения информации об авторе(имя, должность и прочее), вам надо воспользоваться openssl x509.

(2018-02-14 10:59:09 отредактировано i.maksimov2000)

Re: Архив файлов с ЭП

Владимир Салыкин пишет:

Добрый день, i.maksimov2000.

Понял. Да, вы сможете это без проблем сделать. Готового куска PHP кода у нас для этого нет. Но в нашей инструкции https://dev.rutoken.ru/pages/viewpage.a … d=18055206 написано, как с помощью openssl проверить подпись. Для получения информации об авторе(имя, должность и прочее), вам надо воспользоваться openssl x509.

Спасибо.
Я разобрался с разбором сертификата, но подскажите еще, пожалуйста.
Электронная подпись файла формируется при помощи функции sign которая возвращает CMS сообщение. То есть мне необходимо сначала проверить его, а затем разобрав получить сертификаты подписавших лиц? Можно ли это сделать на PHP или нужно обращаться к OpenSSL?

В одной из статей на Хабрахабр вы предлагаете загружать файл, рассчитывать его хэш и подписав его вместе с сертификатом отправить на сервер где и собирается отсоединенная подпись. Будет ли этот способ эффективнее чем подписывать base64? И опять же можно ли это реализовать на PHP?

Re: Архив файлов с ЭП

Добрый день, i.maksimov2000.

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

Что касается PHP или OpenSSL. На сколько мне известно не существует бесплатных библиотек по работе с инфраструктурой PKI для PHP. Все-таки у PHP другое назначение. Поэтому придется из PHP обращаться к OpenSSL или другим библиотекам.