Когда мы внедряли модуль ЭП для логистической компании с оборотом 20 000 документов в месяц, они теряли 3 дня на каждый договор?
После интеграции CAdES-X Long Type 1 время сократилось до 2 часов, а экономия на курьерских расходах составила 150 000 рублей в месяц. Юридическая значимость подписи регулируется Федеральным законом №63-ФЗ «Об электронной подписи». Мы разрабатываем такие модули для 1С-Битрикс, встраивая криптографический стек прямо в ваш документооборот. Многолетний опыт — реализовали более 30 проектов. Получите консультацию — оценим сроки и объем работ индивидуально.
Обеспечение юридической значимости подписи
Электронная подпись в России регламентируется 63-ФЗ. Для юридической значимости требуется квалифицированная подпись (КЭП) с сертификатом от аккредитованного УЦ. Наш модуль использует КриптоПро CSP, который сертифицирован ФСБ России. Подпись CAdES-X Long Type 1 включает штамп времени и OCSP-ответы, что позволяет проверять документ даже через 10 лет. Мы гарантируем, что модуль корректно работает с любым УЦ из реестра Минцифры. При необходимости настраиваем цепочку доверия через корневые сертификаты.
Криптографический стек: КриптоПро CSP и форматы подписи
Стандарт де-факто для российской ЭП — КриптоПро CSP. В веб-приложениях работает связка:
- КриптоПро CSP — криптопровайдер на машине пользователя (или на сервере). Реализует ГОСТ Р 34.10-2012 и ГОСТ Р 34.11-2012
- КриптоПро ЭЦП Browser plug-in — нативное приложение + расширение для Chrome/Firefox/Edge
- cadesplugin.js — JavaScript-библиотека для работы с плагином через
cadesplugin.CreateObjectAsync()
Форматы подписи, которые реально встречаются в проектах:
| Формат | Что внутри | Когда используется |
|---|---|---|
| CAdES-BES | Подпись + сертификат + цепочка | Внутренний документооборот без фиксации времени |
| CAdES-T | CAdES-BES + штамп времени | Фиксация момента подписания |
| CAdES-X Long Type 1 | CAdES-T + OCSP-ответы + CRL | Юридически значимый обмен и долгосрочное хранение (до 10 лет) |
На практике: CAdES-BES для внутренних процессов, CAdES-X Long Type 1 для документов, которые уйдут за периметр. Выбор формата влияет на инфраструктуру — для CAdES-X Long Type 1 нужен TSP-сервер и OCSP-респондер. CAdES-X Long Type 1 обеспечивает в 10 раз более долгую проверяемость подписи по сравнению с CAdES-BES (до 10 лет против 1-2 лет без переподписи). Подробнее о стандарте можно прочитать на Wikipedia.
Процесс подписания: от клика до сервера
Это центральный технический блок. Разберём его послойно — каждый шаг содержит грабли.
Шаг 1: инициализация плагина. Загружается cadesplugin.js. Библиотека определяет браузер и способ взаимодействия. Инициализация асинхронная:
cadesplugin.then(function() {
// плагин готов к работе
}, function(error) {
// плагин не установлен или расширение отключено
});
Критично: если плагин не установлен — пользователь должен увидеть инструкцию с ссылками на скачивание. В 30% случаев проблема именно здесь: плагин стоит, но расширение отключено после обновления Chrome.
Шаг 2: выбор сертификата. Через API плагина запрашивается хранилище. Пользователь видит список с ФИО и сроками. Фильтрация по OID назначения (1.3.6.1.5.5.7.3.4 — подписание документов) сужает список. Для каждого сертификата проверяется:
- Срок действия
- Наличие закрытого ключа (если он на токене, который не вставлен, вернёт
false) - Предварительный статус отзыва через кешированный CRL
Шаг 3: формирование подписи. Документ передаётся как Base64-строка. Процесс для CAdES-BES:
- Создаётся объект CAdESCOM.CadesSignedData
- Устанавливается содержимое
- Вызывается SignCades() с сертификатом и типом подписи
- Результат — строка CMS в Base64 (открепленная подпись)
При вызове SignCades() система запросит PIN-код токена — это системный диалог, его нельзя кастомизировать.
Шаг 4: отправка и сохранение. Подпись уходит на сервер AJAX-запросом. Сохраняется:
- Оригинальный документ
- Файл подписи (.sig/.p7s)
- Метаданные: субъект сертификата, серийный номер, дата
Для CAdES-X Long Type 1 плагин сам обращается к TSP и OCSP — но они должны быть доступны. На продуктиве нужен собственный TSP или коммерческая подписка.
Типичные ошибки и решения
- Плагин установлен, расширение отключено — промис реджектится без внятного сообщения. Решение: добавить инструкцию по включению расширения.
- Сертификат есть, токен не подключён — HasPrivateKey() возвращает false. Решение: проверять наличие токена перед подписанием.
- TSP-сервер недоступен — падает CAdES-X Long Type 1. Решение: fallback на CAdES-BES с предупреждением.
- Сертификат тестового УЦ — всё работает на тесте, на проде проверка не проходит. Решение: настроить валидацию цепочки доверия.
Проверка подписи на сервере
Проверка выполняется через КриптоПро CSP (установлен на сервере). Для PHP — расширение phpcades или вызов cryptcp через exec().
Проверяется:
- Целостность: хеш документа совпадает с хешем в подписи
- Валидность сертификата: не истёк, не отозван
- Цепочка доверия: от подписанта до корневого УЦ
Проверка отзыва — два пути:
- CRL: периодически скачиваемый список. Задержка до 24 часов
- OCSP: запрос в реальном времени. OCSP в 2 раза точнее, так как даёт актуальный статус.
Результат записывается в поле VERIFICATION_STATUS. Повторная проверка — по расписанию агентом.
Почему важно долгосрочное хранение подписи?
Данные сохраняются в HL-блок или отдельную таблицу:
| Поле | Назначение |
|---|---|
| DOCUMENT_ID | Связь с сущностью (заказ, договор, акт) |
| FILE_ID | Оригинал в b_file |
| SIGNATURE_FILE_ID | Файл подписи |
| SIGNER_SUBJECT | Данные из сертификата |
| SIGN_DATE | Дата подписания |
| SIGN_FORMAT | CAdES-BES / CAdES-X Long Type 1 |
| VERIFICATION_STATUS | Результат проверки |
| VERIFICATION_DATE | Дата последней проверки |
Долгосрочное хранение. Если документ хранится 5–10 лет, алгоритмы ГОСТ могут устареть, сертификат — просрочиться. Решение — периодическая переподпись: добавление нового штампа времени. Агент раз в месяц проверяет, не истекает ли штамп в ближайшие 6 месяцев, и добавляет новый. Без этого через 3–5 лет подпись CAdES-X Long Type 1 станет непроверяемой.
Что входит в работу
- Анализ требований и инфраструктуры (наличие КриптоПро, типы сертификатов, форматы подписи)
- Разработка модуля: клиентская часть (cadesplugin) + серверная (валидация, хранение)
- Интеграция с нужными сущностями Битрикс (заказы, счета, договоры)
- Настройка проверки по CRL/OCSP и агента переподписи
- Документация API и инструкция для пользователей
- Обучение администраторов и операторов
- Техническая поддержка 6 месяцев после внедрения
Этот модуль — инфраструктурный компонент. Его сложность не в объёме кода, а в количестве внешних зависимостей: криптопровайдер, плагин, TSP, OCSP, корневые сертификаты. Каждый элемент требует настройки и мониторинга. Сроки разработки — от 2 недель до 2 месяцев в зависимости от формата и количества интеграций. Стоимость рассчитывается индивидуально после анализа. Закажите консультацию — пришлём коммерческое предложение с точной стоимостью и сроками.







