ZIP-архив и протокол подписания документа

Каждое подписание в Cert4U формирует ZIP-архив — единый пакет доказательной базы, который содержит оригинал документа, протокол проверки подписи, метаданные подписанта и цепочку контрольных сумм SHA-256. Архив является основным доказательством факта подписания и может использоваться в суде, при налоговых проверках и в рамках внутреннего аудита организации. Формирование архива происходит автоматически в момент завершения подписания и не требует дополнительных действий от пользователя.

Требование о фиксации обстоятельств подписания вытекает из Федерального закона № 63-ФЗ «Об электронной подписи». Согласно статье 9, при использовании простой электронной подписи стороны обязаны обеспечить возможность установления факта подписания конкретным лицом. ZIP-архив Cert4U решает эту задачу: он однозначно связывает документ, подписанта и момент подписания в единый, криптографически защищённый пакет.

Что внутри архива

ZIP-архив подписания включает четыре файла. Каждый из них выполняет отдельную функцию в цепочке доказательств, и только в совокупности они обеспечивают полную юридическую доказательность факта подписания.

1. Оригинал документа (document.pdf)

Точная копия PDF-файла, который был предъявлен подписанту в момент подписания. Файл сохраняется побайтно — без каких-либо модификаций, водяных знаков или дополнительных штампов. Это принципиально: любое изменение файла после подписания привело бы к несовпадению контрольной суммы SHA-256 и автоматически доказало бы факт подмены. Формат PDF/A-1b рекомендуется для долговременного хранения, однако система принимает любые валидные PDF-файлы.

2. Протокол подписания (protocol.txt)

Текстовый файл в кодировке UTF-8, содержащий человекочитаемый отчёт обо всех обстоятельствах подписания. Протокол включает данные подписанта (ФИО, телефон, email), временные метки начала и завершения процедуры, способ аутентификации (SMS-код) и результат верификации. Формат TXT выбран намеренно: он не зависит от специализированного ПО, открывается в любом текстовом редакторе и не может содержать скрытых макросов или исполняемого кода. Протокол может быть представлен в суд как письменное доказательство.

3. Метаданные подписания (metadata.json)

Машиночитаемый JSON-файл со всеми техническими параметрами сессии подписания. Содержит структурированные данные: IP-адрес, User-Agent, временные метки в формате ISO 8601 с указанием часового пояса, уникальный идентификатор сессии (UUID v4), идентификатор документа и результат проверки SMS-кода. Этот файл предназначен для автоматизированной обработки — например, для импорта в системы ЭДО, загрузки в 1С или независимой валидации подписи через API.

4. Контрольные суммы (checksums.sha256)

Файл содержит хэши SHA-256 для каждого из трёх предыдущих файлов архива. Алгоритм SHA-256 генерирует 256-битный хэш, который является криптографически стойким: вероятность коллизии (совпадения хэшей разных файлов) составляет 2-128, что делает подделку практически невозможной. Для проверки целостности достаточно выполнить команду sha256sum -c checksums.sha256 в терминале Linux/macOS или использовать утилиту CertUtil в Windows.

Протокол проверки подписи

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

Идентификация подписанта

Протокол содержит ФИО, номер телефона и адрес электронной почты лица, которому была направлена ссылка на подписание. Номер телефона верифицируется через отправку одноразового SMS-кода (OTP). Факт совпадения введённого кода с отправленным фиксируется в протоколе с точностью до миллисекунды. Согласно п. 2 ст. 9 Федерального закона № 63-ФЗ, простая электронная подпись признаётся действительной при условии, что можно определить лицо, подписавшее документ. Связка «номер телефона + OTP-код» обеспечивает эту идентификацию.

Привязка к документу

В протоколе указывается хэш SHA-256 подписанного документа, его имя, размер в байтах и количество страниц. Хэш вычисляется до начала процедуры подписания и повторно — после её завершения. Совпадение двух хэшей гарантирует, что документ не был изменён в процессе подписания. Любая модификация, даже добавление одного пробела, приводит к полностью другому хэшу — это свойство лавинного эффекта алгоритма SHA-256.

Временные метки

Все временные метки фиксируются в формате ISO 8601 с точностью до миллисекунд и указанием часового пояса UTC. Протокол содержит: время открытия ссылки подписания, время запроса SMS-кода, время ввода кода, время успешной верификации и время формирования архива. Разница между временем запроса и ввода кода позволяет оценить, действовал ли подписант самостоятельно или код был введён автоматизированным средством (аномально быстрый ввод может быть признаком компрометации).

Техническая среда

Протокол фиксирует полный технический контекст: IP-адрес подписанта, строку User-Agent браузера (включая версию ОС и браузера), разрешение экрана устройства и язык интерфейса. Эти данные позволяют установить, с какого устройства и из какой сети было выполнено подписание. В случае спора данные могут быть сопоставлены с логами интернет-провайдера для установления личности подписанта.

Пример содержимого протокола

Ниже приведён анонимизированный пример текстового протокола подписания, который формируется в файле protocol.txt внутри ZIP-архива.

====================================================== ПРОТОКОЛ ПОДПИСАНИЯ ДОКУМЕНТА Cert4U — cert4u.ru ====================================================== Документ: Договор_оказания_услуг_№147.pdf ID документа: d4e5f6a7-89b0-4c12-a345-6789abcdef01 SHA-256: a1b2c3d4e5f6...7890abcdef1234567890abcdef Размер: 245 812 байт (240 КБ) Страниц: 8 Подписант: Иванов Иван Иванович Телефон: +7 (9**) ***-**-10 Email: i***v@example.com Тип подписи: ПЭП (простая электронная подпись) Метод верификации: SMS OTP (одноразовый код) Код подтверждён: Да Ссылка открыта: 2026-04-21T14:32:07.123Z SMS запрошен: 2026-04-21T14:33:45.456Z Код введён: 2026-04-21T14:34:02.789Z Подписание: 2026-04-21T14:34:02.812Z Архив сформирован: 2026-04-21T14:34:03.001Z IP-адрес: 185.*.*.42 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) Разрешение экрана: 1920x1080 Язык браузера: ru-RU Контрольная сумма протокола (SHA-256): e3f4a5b6c7d8...9012345678abcdef0123456789ab ======================================================

Юридическая значимость

Юридическая сила ZIP-архива подписания основывается на нескольких нормативных актах. Федеральный закон № 63-ФЗ «Об электронной подписи» в статье 6 устанавливает, что информация в электронной форме, подписанная электронной подписью, признаётся электронным документом, равнозначным документу на бумажном носителе. Статья 9 определяет условия признания простой электронной подписи: наличие соглашения между сторонами и возможность определить лицо, подписавшее документ.

Гражданский кодекс РФ в пункте 2 статьи 434 допускает заключение договора путём обмена электронными документами, позволяющими достоверно установить, что документ исходит от стороны по договору. Протокол подписания Cert4U содержит все необходимые для этого данные: идентификацию стороны через телефон, фиксацию волеизъявления через ввод SMS-кода и привязку к конкретному документу через хэш SHA-256.

В арбитражной практике электронные документы с ПЭП неоднократно принимались судами в качестве доказательств. Арбитражный процессуальный кодекс РФ в статье 75 прямо указывает, что документы, полученные посредством электронной связи, допускаются в качестве письменных доказательств. Аналогичная норма содержится в статье 71 ГПК РФ для судов общей юрисдикции. Ключевым фактором является наличие полного аудиторского следа — именно его обеспечивает ZIP-архив Cert4U.

Метаданные подписания

При каждом подписании Cert4U фиксирует исчерпывающий набор метаданных, которые сохраняются в файле metadata.json. Эти данные позволяют однозначно установить обстоятельства подписания и идентифицировать устройство подписанта.

IP-адресПубличный IPv4/IPv6-адрес подписанта. Позволяет установить провайдера и приблизительную геолокацию.
User-AgentПолная строка идентификации браузера, включая версию ОС, движок рендеринга и версию браузера.
Временные меткиISO 8601, точность до миллисекунд, часовой пояс UTC. Фиксируется каждый этап процедуры.
Геолокация по IPСтрана, регион и город, определённые по базе GeoIP на момент подписания.
Разрешение экранаФизическое разрешение устройства (например, 1920x1080) и плотность пикселей (devicePixelRatio).
Язык браузераПредпочитаемый язык интерфейса (navigator.language), например ru-RU, en-US.
Отпечаток устройстваХэш совокупности параметров: шрифты, WebGL-рендерер, часовой пояс, платформа.
UUID сессииУникальный идентификатор сессии подписания (UUID v4), связывающий все события в единую цепочку.

Совокупность метаданных позволяет провести форензик-анализ в случае оспаривания подписи. Например, если подписант утверждает, что не подписывал документ, можно сопоставить IP-адрес с его интернет-провайдером, а отпечаток устройства — с другими сессиями того же пользователя.

Хэш-цепочка аудита

Целостность ZIP-архива обеспечивается хэш-цепочкой на основе алгоритма SHA-256. Каждый файл в архиве получает собственный хэш, и все хэши записываются в файл checksums.sha256. Алгоритм SHA-256 является стандартом, рекомендованным NIST (Национальным институтом стандартов и технологий США) и используется в государственных системах по всему миру.

Принцип работы цепочки: хэш документа вычисляется до подписания и фиксируется в протоколе. После подписания хэш вычисляется повторно. Совпадение хэшей доказывает, что документ не был модифицирован. Затем хэш протокола и хэш метаданных вычисляются и записываются в файл контрольных сумм. Изменение любого байта в любом файле приводит к каскадному несовпадению хэшей — это и есть свойство защиты от подделки (tamper-proof).

На практике проверка выглядит следующим образом: распакуйте ZIP-архив, откройте терминал и выполните команду sha256sum -c checksums.sha256. Если все три файла прошли проверку — содержимое архива не было изменено с момента подписания. В Windows аналогичная проверка доступна через CertUtil -hashfile document.pdf SHA256.

Использование в суде

ZIP-архив подписания может быть представлен в суд в качестве письменного доказательства. Практические рекомендации для юристов при подготовке к судебному заседанию:

FAQ

Какой формат имеет ZIP-архив подписания?

Стандартный ZIP-архив (ISO/IEC 21320-1), который открывается любым архиватором. Внутри — четыре файла: document.pdf (оригинал документа), protocol.txt (протокол подписания в текстовом формате), metadata.json (машиночитаемые метаданные) и checksums.sha256 (контрольные суммы для проверки целостности). Специальное ПО для работы с архивом не требуется.

Можно ли использовать протокол подписания в суде?

Да. Протокол является допустимым письменным доказательством в соответствии со ст. 75 АПК РФ и ст. 71 ГПК РФ. Для максимальной доказательной силы рекомендуется нотариально заверить распечатку протокола или провести независимую верификацию через сервис валидации. Суды принимают электронные документы, подписанные ПЭП, при наличии соглашения сторон об использовании электронной подписи.

Как проверить, что архив не был изменён?

Распакуйте архив и выполните в терминале: sha256sum -c checksums.sha256. Команда сравнит вычисленные хэши файлов с указанными в файле контрольных сумм. Если все проверки пройдены — содержимое не изменялось. Дополнительно можно воспользоваться онлайн-валидацией на сайте Cert4U.

Сколько хранится архив на сервере?

Архив хранится на серверах Cert4U в течение всего срока действия тарифного плана и минимум 5 лет после подписания в соответствии с требованиями законодательства о хранении документов. Рекомендуется скачивать архив и хранить локальную копию в корпоративной системе ЭДО или файловом хранилище организации.

Как скачать архив через API?

Отправьте GET-запрос на эндпоинт /api/v1/documents/{id}/archive с заголовком авторизации. Подробная документация доступна на странице REST API. Ответ возвращается в формате application/zip с именем файла в заголовке Content-Disposition.

Получение архива через REST API

Для автоматизированного скачивания ZIP-архива подписания используйте REST API Cert4U. Пример запроса с использованием curl:

curl -X GET "https://cert4u.ru/api/v1/documents/d4e5f6a7/archive" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/zip" \ -o signing_archive.zip # Ответ: HTTP 200 # Content-Type: application/zip # Content-Disposition: attachment; filename="protocol_d4e5f6a7.zip" # Проверка целостности после скачивания: unzip signing_archive.zip -d ./verify cd ./verify sha256sum -c checksums.sha256 document.pdf: OK protocol.txt: OK metadata.json: OK

Для пакетного скачивания архивов нескольких документов используйте эндпоинт /api/v1/documents/batch-archive с передачей массива идентификаторов в теле POST-запроса. Полная документация по API доступна на странице REST API Cert4U.

Попробуйте бесплатно

10 бесплатных отправок — каждая с полным ZIP-архивом и протоколом

Выбрать тариф

Смотрите также: Валидация подписей · REST API · О проекте · 63-ФЗ · Тарифы