@Sienore

Как подписывать документы ЭЦП и хранить их в базе данных?

Здравствуйте.

В организации используется информационная система собственной разработки, суть которой заключается в формирование в филиалах заявок, отправка их на утверждение в головную организацию и обмен данными с учетной системой (1С:Предприятие). Система работает через браузер на PHP, MySQL и JavaScript (Node.js). Данные хранятся в нескольких таблицах базы данных и собираются вместе запросом при выводе пользователю.
Хотели бы использовать электронную подпись при формировании и утверждении заявки.
Прошу Вас объяснить возможно ли это реализовать на имеющихся технологиях и как хранить подпись или подписанную заявку в базе данных (какой тип поля)?
Я никогда не работал с ЭЦП поэтому прошу объяснить все подробно.
  • Вопрос задан
  • 2015 просмотров
Решения вопроса 1
Rsa97
@Rsa97
Для правильного вопроса надо знать половину ответа
Как правило, электронная подпись документа делается в виде хэш-суммы контролируемого набора атрибутов документа (текст, название, автор и т.д.), зашифрованной закрытым ключом. Для проверки снова производится вычисление этой же хэш-суммы, подпись расшифровывается парным открытым ключом и расшифрованная хэш-сумма сравнивается с вычисленной. Если они совпадают - подпись действительна. Если какой-либо атрибут документа был изменён, то хэш-суммы не совпадут.
В первом варианте обе части ключа хранятся в системе, для подписи документа пользователь вводит пароль к закрытому ключу, подписание идёт непосредственно на сервере.
Во втором, более сильном, варианте закрытая часть ключа хранится у пользователя на криптоносителе. Сформированный документ передаётся с сервера клиенту, подписывается через криптопровайдер (например, КриптоПро ЭЦП Browser plug-in) и подпись отправляется обратно на сервер.
В обоих случаях открытая часть ключа хранится на сервере и служит для проверки подписи.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы