При замене или обновлении сертификата электронной подписи (например, для работы с СФР, бывшим ФСС) в крупных ERP-системах ИТ-специалисты часто сталкиваются с важной проблемой. Если установить подпись на компьютере администратора, сможет ли бухгалтер подписывать документы в своей сессии 1С? Почему программа «не видит» установленный сертификат у других пользователей и как правильно организовать коллективную работу с электронной подписью? Разберем эти вопросы подробно в нашей статье.
Для того чтобы ответить на этот вопрос, проанализируем архитектуру хранения закрытых ключей в операционной системе Windows. Электронная подпись состоит из двух частей: публичного сертификата (файл с расширением .cer) и закрытого ключа (контейнера), который обеспечивает непосредственное подписание файлов.
Когда мы устанавливаем сертификат через криптопровайдер (например, КриптоПро CSP), закрытый ключ чаще всего копируется в реестр компьютера. По умолчанию запись производится в ветку реестра текущего пользователя: HKEY_CURRENT_USER\Software\Crypto Pro\Settings\Users\...
Важно понимать: операционная система Windows строго разграничивает права доступа между пользователями. Если системный администратор зашел под своей учетной записью Windows, установил закрытый ключ в реестр и настроил 1С, то бухгалтер, авторизовавшись на этом же компьютере (или на своем рабочем месте) под своей учетной записью Windows, физически не получит доступа к этому контейнеру. Криптопровайдер под учетной записью бухгалтера просто не «увидит» закрытый ключ, из-за чего подписание документов станет невозможным.
Выяснив причину проблемы, рассмотрим несколько практических сценариев настройки системы, от классических локальных методов до современных и безопасных технологий взаимодействия с СФР.
Если бухгалтер работает за своим персональным компьютером, и ему физически необходимо иметь доступ к подписанию отчетов от имени страхователя (руководителя), нам потребуется перенести контейнер закрытого ключа на его рабочее место. Разберем этот процесс по шагам:
Внимание! Этот метод имеет существенное ограничение. Согласно действующему законодательству, подписи руководителей юридических лиц, выдаваемые ФНС, записываются на сертифицированные токены (например, Рутокен ЭЦП 3.0) с неизвлекаемыми ключами. Скопировать такой ключ через реестр программным способом невозможно. Поэтому для современных подписей данный сценарий не всегда применим.
Чтобы избежать компрометации ключа руководителя и не заниматься небезопасным копированием контейнеров, проанализируем современный и законный механизм работы через Машиночитаемые доверенности (МЧД).
В этом случае на компьютере бухгалтера устанавливается его личная электронная подпись, выданная на физическое лицо (без привязки к организации). Подписание отчетности и отправка сведений в СФР происходит следующим образом:
1С-Отчетность -> Настройки -> Настройки обмена с контролирующими органами).При такой схеме каждый сотрудник подписывает документы своим личным ключом, а СФР принимает отчеты, сверяя подпись сотрудника с данными зарегистрированной в системе МЧД.
Если база 1С:ERP Управление предприятием работает в клиент-серверном режиме, мы можем настроить систему так, чтобы само подписание и шифрование данных происходило непосредственно на сервере приложений, без необходимости устанавливать криптографические программы и ключи на рабочие станции пользователей.
Для реализации этого сценария выполним следующие действия:
Агент сервера 1С:Предприятия.1C:Enterprise Server Daemon (обычно это локальный системный пользователь или специально созданная доменная учетная запись).1С:Предприятие перейдем в меню Администрирование -> Настройки криптографии и электронной подписи.Проверить корректность серверной настройки криптографии можно с помощью небольшого программного кода, выполняемого на стороне сервера:
Попытка
МенеджерКриптографии = Новый МенеджерКриптографии("Crypto-Pro GOST R 34.10-2012 Cryptographic Service Provider", "", 80);
Сертификаты = МенеджерКриптографии.ПолучитьСертификаты();
Для Каждого Сертификат Из Сертификаты Цикл
ЗаписьЖурналаРегистрации("Криптография.Проверка", УровеньЖурналаРегистрации.Информация,, , "Найден сертификат: " + Сертификат.Субъект);
КонецЦикла;
Исключение
ЗаписьЖурналаРегистрации("Криптография.Ошибка", УровеньЖурналаРегистрации.Ошибка,,, ОписаниеОшибки());
КонецПопытки;
При такой архитектуре бухгалтеру достаточно нажать кнопку отправки в интерфейсе 1С на своем клиентском ПК. Программа передаст задачу серверу, сервер подпишет транзакцию установленным у себя ключом страхователя и отправит пакет в СФР.
При ручной настройке обмена с Социальным фондом России недостаточно установить только сертификат организации (страхователя). Для корректного шифрования исходящих пакетов и расшифровки входящих уведомлений по электронным больничным листам (ЭЛН) в системе СЭДО необходимо установить актуальные публичные ключи самого фонда.
Эти сертификаты регулярно обновляются и публикуются на официальном сервере СФР. Нам понадобятся два ключевых файла:
Правила ручной установки сертификатов фонда:
Применяя данные инструкции и понимая принципы работы криптографии в операционных системах, мы сможем быстро и безболезненно настроить совместную работу сотрудников с электронными подписями в 1С:ERP.