Как организовать работу с ЭЦП в мобильном приложении на платформе 1С?

Программист 1С v8.3 (Управляемые формы) IT и автоматизация бизнеса
← На главную

Вопрос использования электронной цифровой подписи (ЭЦП) в мобильных приложениях долгое время оставался одним из самых сложных для разработчиков 1С. Основная трудность заключалась в закрытости мобильных операционных систем и отсутствии встроенных криптографических алгоритмов, соответствующих российским стандартам ГОСТ. Однако на сегодняшний день технологии и законодательство значительно продвинулись вперед. Разберем подробно, какие существуют способы реализации подписания документов в мобильной среде 1С.

1. Использование физических носителей (токенов) через мобильные интерфейсы

Многие пользователи ошибочно полагают, что токен невозможно подключить к смартфону. Рассмотрим современные способы взаимодействия с физическими ключами:

  1. USB OTG (On-The-Go): Большинство современных Android-устройств поддерживают подключение внешних USB-устройств. Через специальный переходник USB Type-C можно подключить стандартный Rutoken или JaCarta. В этом случае мобильное приложение 1С должно уметь взаимодействовать с драйвером токена.
  2. NFC-токены: Это наиболее удобный способ для мобильной среды. Существуют смарт-карты и токены (например, Рутокен ЭЦП 3.0 NFC), которые обмениваются данными со смартфоном при простом прикладывании к задней крышке устройства.
  3. Bluetooth-токены: Позволяют работать с устройствами на базе iOS (iPhone/iPad), где использование USB-разъема для криптографии сильно ограничено политиками Apple.

Проанализируем техническую часть: для работы таких устройств в мобильном приложении 1С требуется наличие установленного криптопровайдера (например, КриптоПро CSP для Android/iOS) или использование специализированных SDK от производителей токенов.

2. Работа с файловыми сертификатами (.pfx) и ограничения ФНС

Ранее был популярен метод конвертации ключа в формат .pfx и загрузки его непосредственно в мобильное устройство или базу 1С. Выясним причину, почему этот способ сейчас теряет актуальность:

С 2022 года ключи для руководителей организаций и ИП выдаются ФНС на неизвлекаемых носителях. Это означает, что штатно скопировать такой ключ в файл .pfx невозможно. Однако этот метод все еще применим для:

3. Облачная подпись (Технология DSS)

Это, пожалуй, самое перспективное и удобное направление для мобильной экосистемы 1С. Рассмотрим принцип работы облачной подписи подробнее:

При использовании КриптоПро DSS сам закрытый ключ хранится не на телефоне, а в защищенном аппаратном хранилище (HSM) на стороне доверенного удостоверяющего центра. Процесс подписания выглядит следующим образом:

  1. Мобильное приложение 1С формирует хеш документа и отправляет запрос на сервер подписи.
  2. Пользователь получает Push-уведомление или использует приложение-аутентификатор (например, myDSS).
  3. Пользователь подтверждает операцию (паролем, отпечатком пальца или FaceID).
  4. Сервер подписывает документ и возвращает готовую подпись в 1С.

Такой подход реализован в типовых решениях, таких как 1С:Клиент ЭДО. Это избавляет от необходимости подключать к телефону дополнительные устройства и настраивать сложную криптографию на уровне ОС.

4. Интеграция с сервисом «Госключ»

Разберем новый механизм, который активно внедряется в государственные и бизнес-процессы. «Госключ» — это приложение, позволяющее бесплатно получить сертификат УКЭП на смартфоне. Для разработчика 1С взаимодействие с ним строится через API:

Информационная система (1С) отправляет документ в систему «Госключ», пользователь подписывает его в одноименном приложении, после чего 1С получает уведомление о завершении операции и забирает файл подписи. Это решение идеально подходит для кадрового электронного документооборота (КЭДО).

5. Реализация через механизм App-to-App (Взаимодействие приложений)

Если нам необходимо реализовать подписание именно на мобильном устройстве средствами установленного там криптопровайдера, мы можем использовать технологию взаимодействия между приложениями. Посмотрим на алгоритм:

  1. Мобильное приложение 1С подготавливает файл для подписания.
  2. С помощью механизма ЗапуститьПриложение() или через Intent (на Android) файл передается в специализированное приложение (например, КриптоАРМ Мобайл).
  3. Пользователь подписывает файл в стороннем приложении, используя свой токен или сертификат.
  4. Результат (файл подписи .sig) возвращается обратно в мобильное приложение 1С через URL-схему или временное хранилище.

6. Программная реализация в мобильной платформе 1С

В современной мобильной платформе 1С (версии 8.3.20+) расширена поддержка объекта МенеджерКриптографии. Хотя он не реализует ГОСТ-алгоритмы самостоятельно, он позволяет взаимодействовать с внешними компонентами.

Пример логики работы с объектом в коде (в общем виде):


// Пример инициализации менеджера криптографии
Менеджер = Новый МенеджерКриптографии("", "", 80); // 80 - тип провайдера ГОСТ
ПараметрыОтбора = Новый ПараметрыОтбораСертификатовКриптографии();
Сертификаты = Менеджер.ПолучитьСертификаты(ПараметрыОтбора);

// Если сертификат найден на устройстве или в облаке
Если Сертификаты.Количество() > 0 Тогда
    Сертификат = Сертификаты[0];
    // Выполнение подписания
    Менеджер.Подписать(ДанныеДляПодписи, ПутьКФайлуПодписи, Сертификат);
КонецЕсли;

Важный нюанс: На мобильных устройствах для работы этого кода часто требуется установленная мобильная версия КриптоПро CSP и соответствующая лицензия для разработчика (SDK).

7. Машиночитаемые доверенности (МЧД) — ключ к мобильности

Проанализируем, как МЧД упрощает жизнь. С 2024 года сотрудники обязаны использовать личные подписи физлиц. В отличие от подписи руководителя на токене ФНС, личную подпись гораздо проще экспортировать в .pfx или использовать через облачные сервисы. Для подтверждения полномочий к документу просто прикладывается файл МЧД (XML), который проверяется на стороне приемника (например, в Честном Знаке или ФНС).

Резюме и рекомендации

Выясним, какой путь выбрать для вашего проекта:

Помните, что безопасность мобильного устройства — критический фактор. Хранение закрытых ключей непосредственно в файловой системе смартфона является рискованным, поэтому использование облачных технологий (DSS) или неизвлекаемых токенов (NFC) является стандартом де-факто в современной разработке.

← На главную