Цифровая подпись файла перестаёт быть действительной сразу после того, как в файле меняется хотя бы один байт содержимого. Это не сбой и не ошибка проверки — так устроен сам механизм подписи. Подпись подтверждает не «файл вообще», а конкретную последовательность байтов. Изменилась последовательность — изменился её отпечаток — прежняя подпись больше не соответствует новому отпечатку.
В этой статье объясняем, почему так происходит, какие изменения ломают подпись, а какие нет, почему иногда подпись выглядит недействительной даже без правок и что делать, если проверка выдала ошибку.
- Как устроена цифровая подпись файла
- Какие изменения ломают подпись
- Что НЕ ломает подпись
- Почему подпись иногда «ломается» без правок
- Как проверить, что именно случилось
- Что делать, если подпись действительно сломана
- Как избежать проблем с подписями
- Частые вопросы
- Можно ли «починить» подпись, не переподписывая файл?
- Подпись сломалась, но я точно не правил файл. Что это значит?
- Ломает ли подпись конвертация в другой формат?
- Влияет ли переименование файла на подпись?
- Зачем нужна метка времени?
- Главное
Как устроена цифровая подпись файла
Чтобы понять причину поломки, полезно представлять процесс из трёх шагов.
- Вычисление хеша. Специальная функция (например, SHA-256) обрабатывает всё содержимое файла и выдаёт короткую строку фиксированной длины — хеш или отпечаток. У разных файлов отпечатки практически никогда не совпадают, а изменение даже одного символа даёт совершенно другой результат.
- Шифрование хеша закрытым ключом. Автор документа берёт этот отпечаток и шифрует своим закрытым ключом. Результат — собственно подпись, которая сохраняется вместе с файлом или рядом с ним.
- Проверка подписи получателем. Проверяющая сторона заново вычисляет хеш файла, расшифровывает подпись открытым ключом автора и сравнивает два значения. Совпали — файл не менялся с момента подписания. Не совпали — файл изменён или подпись подделана.
Ключевой момент: подпись привязана к точному байтовому составу файла на момент подписания. Она не описывает смысл документа («договор поставки»), а фиксирует его двоичное представление. Поэтому любая правка — даже добавление пробела — порождает новый хеш, который старая подпись уже не покрывает.
Какие изменения ломают подпись
Здесь важно различать видимые и невидимые для человека изменения. Ломает подпись любое изменение байтов, независимо от того, заметно оно глазу или нет.
- Редактирование текста. Правка формулировки, исправление опечатки, замена цифры в сумме — очевидные причины.
- Добавление или удаление пробелов, переносов строк, пустых страниц. Формально это тоже изменение содержимого.
- Пересохранение файла другой программой. Даже если текст визуально идентичен, редактор мог изменить внутреннюю структуру: метаданные, кодировку, способ сжатия, порядок XML-элементов.
- Изменение метаданных. В некоторых форматах (PDF, Office) автор, дата создания, комментарии и другие свойства входят в подписываемую область. Их правка ломает подпись.
- Конвертация формата. Преобразование DOCX в PDF или пересохранение PDF создаёт фактически новый файл со старым названием.
- Работа антивируса или корпоративной DLP-системы, которая модифицирует файл при передаче или скачивании.
- Некорректная передача. Повреждение при копировании на флешку, обрезка вложения почтовым сервером, перекодировка при загрузке через веб-форму.
Отдельный случай — подписи, допускающие инкрементальные изменения. В формате PDF существует механизм, когда новая подпись накладывается поверх существующей: документ дополняется, но исходная часть остаётся неизменной. Тогда первая подпись может оставаться действительной, а вторая подтверждает расширенную версию. Однако это работает только при строгом соблюдении процедуры; обычное пересохранение файла такой эффект не даёт.
Что НЕ ломает подпись
Не всякое действие с файлом затрагивает его содержимое:
- Переименование файла. Имя обычно не входит в подписываемые данные.
- Смена расширения (если файл при этом не открывался и не пересохранялся).
- Копирование без изменений между папками и носителями, отправка по почте как вложения без обработки промежуточным ПО.
- Архивирование. При извлечении файл восстанавливается побайтово, и подпись остаётся рабочей.
Оговорка: поведение зависит от формата и инструмента подписания. В отдельных схемах в подписываемую область включаются и имя файла, и его атрибуты. Если сомневаетесь — проверьте документацию используемого средства криптографической защиты информации.
Почему подпись иногда «ломается» без правок
На практике сообщение о недействительной подписи появляется и у файлов, которые никто не редактировал. Типичные причины:
- Истёк срок сертификата. Подпись математически верна, но проверка выполняется на дату проверки, а сертификат автора уже недействителен. Решается применением метки времени (штампа времени), которая фиксирует момент подписания и позволяет подтвердить подпись задним числом.
- Отозванный сертификат. Владелец или удостоверяющий центр отозвал сертификат — например, из-за компрометации ключа.
- Нет цепочки доверия. На компьютере проверяющего не установлен корневой сертификат удостоверяющего центра, выпустившего сертификат автора.
- Повреждение при передаче. Почтовый сервер переименовал вложение, веб-сервис перекодировал файл, архиватор восстановил данные с ошибкой.
- Проблемы с локальным временем на компьютере проверки — критично для документов с метками времени.
- Устаревшее ПО проверки, которое не поддерживает алгоритмы или формат подписи.
Поэтому первое, что стоит сделать при ошибке проверки, — понять её точную формулировку. «Файл изменён» и «сертификат недействителен» — принципиально разные ситуации с разными решениями.
Как проверить, что именно случилось
Порядок диагностики можно свести к нескольким шагам.
- Прочитайте полный текст ошибки. Средства проверки (криптопровайдеры, встроенные механизмы ОС, онлайн-сервисы удостоверяющих центров) обычно указывают причину: несоответствие хеша, истёкший сертификат, отсутствие цепочки доверия, отзыв.
- Проверьте файл у источника. Сравните размер вашего экземпляра с оригиналом у отправителя. Расхождение хотя бы в байт — признак повреждения или правки при передаче.
- Передайте файл другим способом. Если файл пришёл по почте, попробуйте получить его через файлообменник или мессенджер, где вложение не обрабатывается. Иногда проблема исчезает — значит, её создавал канал передачи.
- Проверьте даты. Действителен ли сертификат на момент подписания? Есть ли метка времени? Не отозван ли сертификат?
- Обновите средство проверки и убедитесь, что установлены актуальные корневые сертификаты удостоверяющего центра.
Что делать, если подпись действительно сломана
Если выяснилось, что файл был изменён после подписания, прежняя подпись восстановлению не подлежит — и это нормально. Дальнейшие действия зависят от ситуации.
- Правки согласованы. Документ дорабатывается, затем подписывается заново всеми сторонами. Старая версия сохраняется для истории, новая становится юридически значимой.
- Правки несогласованные. Фиксируйте факт: сохраните изменённый экземпляр, скриншот результата проверки, переписку. Это основа для разбирательства с контрагентом или сотрудником.
- Подозрение на подделку. Обратитесь к специалисту по криптографической экспертизе. Самостоятельно доказать факт вмешательства в суде сложно — нужна квалифицированная проверка с оформлением заключения.
- Файл повреждён при передаче. Запросите оригинал у отправителя и повторите проверку. Подпись в неповреждённом экземпляре будет действительной.
Как избежать проблем с подписями
Большинство ситуаций с «сломанными» подписями предотвращаются простыми правилами работы:
- Подписывайте финальную версию документа, а не черновик. Любая последующая правка потребует повторного подписания.
- После подписания работайте с копией, а оригинал храните неизменным.
- Не пересохраняйте подписанные файлы в редакторах «просто посмотреть» — многие программы при открытии и закрытии меняют внутренние структуры.
- Используйте метки времени при подписании, чтобы срок действия сертификата не обесценивал старые документы.
- Передавайте файлы каналами, не модифицирующими вложения, и сверяйте контрольные суммы при ответственных обменах.
- Договоритесь с контрагентами о едином средстве подписания и проверки — смешение инструментов часто порождает ложные ошибки.
Частые вопросы
Можно ли «починить» подпись, не переподписывая файл?
Нет. Если изменилось содержимое, прежняя подпись математически не соответствует новому хешу. Единственный путь — подписать обновлённый документ заново. Исключение — ошибки, связанные не с содержимым, а с сертификатом или окружением проверки: их устраняют установкой сертификатов, метками времени или правильной настройкой ПО.
Подпись сломалась, но я точно не правил файл. Что это значит?
Наиболее вероятны три варианта: файл повредился или был изменён при передаче, истёк или отозван сертификат, либо на компьютере проверки нет нужных корневых сертификатов. Начните с чтения точного текста ошибки и запросите оригинал у отправителя.
Ломает ли подпись конвертация в другой формат?
Да. Конвертация создаёт новый файл с другим байтовым составом, даже если визуально документ тот же. Если нужен документ в двух форматах, каждый вариант подписывают отдельно.
Влияет ли переименование файла на подпись?
Как правило, нет: имя файла не входит в подписываемое содержимое. Но в некоторых схемах подписания имя учитывается, поэтому при ответственных операциях лучше не полагаться на общее правило, а проверить конкретным инструментом.
Зачем нужна метка времени?
Она фиксирует момент подписания по независимому источнику. Благодаря этому подпись остаётся подтверждаемой даже после истечения срока действия сертификата — проверяется, что на дату штампа сертификат был действительным.
Главное
Подпись файла — это обязательство относительно конкретных байтов, а не абстрактного документа. Изменились байты — подпись честно сообщает об этом. Поэтому «сломанная» подпись после правки содержимого является признаком корректно работающей системы, а не её отказа.
Практический порядок действий простой: подпишите окончательную версию, храните оригинал неизменным, используйте метки времени, а при ошибке проверки сначала читайте её точную формулировку — она почти всегда подсказывает, дело в содержимом, сертификате или канале передачи. Если есть подозрение на несогласованное изменение важного документа, привлекайте криптографическую экспертизу вместо самостоятельных выводов.
