Базовый механизм подписания с помощью ЭЦП в веб-приложении

Здравствуйте! Плаваю в базовых понятиях и в механизме подписания документов с помощью ЭЦП. Хотел бы разобраться, опишу все что я понял по пунктам. Уверен, что мои мысли неправильны, поэтому прошу вас поправить меня. Спасибо!

  1. Существует 2 вида ЭЦП: А)RSA - физ.лица, ИП Б) GOST - юр.лица
  2. Есть комплект разработчика, в котором есть библиотеки(того или иного языка), где описаны методы взаимодействия с ЭЦП.
  3. Успешно подписав документ с помощью комплекта разработчика, понял, что ЭЦП и пароль я указывал на уровне кода.
  4. Принимать ЭЦП пользователей на сервер нельзя согласно закону об эцп: Закрытые ключи электронной цифровой подписи не могут быть переданы другим лицам.
  5. Отсюда следует, что единственным вариантом подписания c RSA сертификатами - является взаимодействие с NCALayer
  6. Для подписания файлов с GOST сертификатом, можно использовать NCALayer либо комплект разработчика. Если использовать комплект разработчика, первое что приходит в голову - хранить сертификаты в сервисе, где будет проходить непосредственно подписание. Но здесь конфликтует пункт 4.
  7. Для взаимодействия веб-приложения с NCALayer необходимо создать и зарегистрировать Модуль (чтобы открывалось окно выбора сертификата в NCALayer).

Добрый день. Согласно подпункту 7 пункта 6 Правил проверки подлинности электронной цифровой подписи, утвержденных приказом Министра по инвестициям и развитию Республики Казахстан от 9 декабря 2015 года
№ 1187, информационная система реализует проверку полномочия лица, подписавшего документ.

При реализации подписания электронных документов пользователями, запрещается передача их закрытых ключей на серверную сторону, так как при передаче закрытого ключа на сервер его можно перехватить по каналам связи или скопировать на сервере, что противоречит норме изложенной в подпункте 4 пункта 2 статьи 17 Закона Республики Казахстан от 7 января 2003 года № 370 «Об электронном документе и электронной цифровой подписи».

В статье 640 Кодекса Республики Казахстан от 5 июля 2014 года № 235-V ЗРК «Об административных правонарушениях» предусмотрено соответствующее наказание.

На основании вышеизложенного, подписание электронных документов должна быть реализована с соблюдением норм законодательства Республики Казахстан.

Дополнительно, в SDK имеются ссылки на GitHub, где представлены примеры реализации модуля: ссылка.

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

начиная с 27 апреля RSA используется только для физ. лиц на удостоверении личности. На всех других носителях для физ. лиц используется GOST. Также теперь для авторизации и для подписи используется только один ключ. При этом ключи старого формата будут работать до окончания срока действия.

5 и 6 пункт у вас должен быть одним пунктом потому что NCALayer используется для работы на стороне клиента вне зависимости от алгоритма.

Собственный модуль в NCALayer вам понадобится только если вам не достаточно базового функционала NCALayer. Просмотрите пример указанный в SDK.

Добрый день!
В новый sign метод, можно ли отправит данные для подписания в виде массива?

Здравствуйте! Если вы говорите про CMS, то скоро такая опция будет доступна

Добрый день,

Можно, но пока получилось только с параметром “format”: “xml”.
Вот тут написано, что только для XML.
Тоже интересует вопрос о массиве, только для RAW.