Подпись по ЭЦП

Здравствуйте!
Мы хотели создать у себя Личный кабинет для клиента. И подпись по ЭЦП.
Думал на форуме найду ответы на вопросы, но вы обновили форум и весь архив пропал кажется.

У нас приложение состоит из бэкенда и фронтенда.
Фронтенд запрашивает документ, бэкенд вместе с документом передает XML.
В XML только Хэш этого Пдф(или docx,xlsx) файла.
Фронт через NCALayer подписывает XML,
(После подписи внутри XML-a который пришел с бэка, добавляется node Sign),
NCALayer как сгенерил новый XML, фронт этот XML отправляет обратно на бэк.
Бэкенд на джава. Бэкенд через вашу библиотеку КалканКрипт проверяет подпись на валидность.
Если валидный, то бэкенд сохраняет этот XML в базе.

Тут возникает вопросы.
Можете ответить пожалуйста:

  1. Правильно ли весь этот процесс?
  2. Насколько важно подпись через NCALayer. Нельзя ли передать ключ и пароль на бэкенд и там подписывать? Насколько это не законно или опасно?
  3. Какой формат лучше использовать в подписи? CMS или XML?
  4. А вообще как проверяется на законность подписи обычно? Допустим я добавлю у себя функцию проверки подписи. Котоый, берет из физического файла хэш,
    и достает тот подпись который я уже в базе храню. И передаю их вашей библиотеке и ожидаю ответ. Так проверяется подпись на правильность? Допустим
    через некоторое время нужно будет проверить
  5. В СДК есть подпись с временной меткой. Насколько это важно, что оно вообще дает?

Здравствуйте!
Архив старого форума доступен по следующей ссылке.

  1. В целом правильно. Только на фронте необходимо также перепроверить хэш или же вычислять его на фронте.
  2. По аналогии с бумажным носителем: Вам завязали глаза и просят подписать документ, Вы подпишите? Откуда пользователю знать что Вы подпишите его ключами на бекенде? И по закону, каждый несет ответственность за передачу своих ключей третьим лицам.
  3. Зависит от архитектуры Вашей ИС.
  4. Информационной системе необходимо проверять подписи в электронных документах и регистрационные свидетельства подписывающей стороны согласно Правилам проверки подлинности электронной цифровой подписи № 1187, утвержденных Приказом Министра по инвестициям и развитию Республики Казахстан от 9 декабря 2015 года.
  5. Время на компьютере не вызывает доверия. Его можно легко изменить. Для установления точного времени подписания и того, что в этот момент времени существовал данный документ и подпись, к подписи добавляется доверенная метка времени. Метка времени возвращается сервисом TSA НУЦ РК, подписана ключом данного сервиса и привязана к хэшу подписи подписывающего пользователя.

Понял, спасибо большое за ответ

2020-04-07T19:00:00Z

По поводу вторго пункта. Если даже подпись совершается с помощью ncalayer-a, пользователю неизвестно же что он подписывает. Он может видеть другой файл, а подпись идет по другому файлу :slight_smile:

Касательно второго пункта. Согласно закону “Об электронном документе и электронной цифровой подписи”:

Закрытые ключи электронной цифровой подписи не могут быть переданы другим лицам.

Зачем? Что это даст?