Криптография документов — хеш, электронная подпись и метка времени (что доказывает каждый)
Также доступно на:中文Bahasa Indonesiaहिन्दीFrançaisEspañolEnglishPortuguêsবাংলাالعربية
«Имеет ли этот документ юридическую силу?» — вопрос звучит каждую неделю в любом офисе, работающем с PDF. А правильный ответ зависит от понимания трёх разных криптографических механизмов, которые постоянно путают: хеша, электронной подписи и метки времени.
Каждый доказывает своё. Использовать не тот — или считать, что один заменяет другой — та самая небрежность, которая всплывает только тогда, когда документ оспаривают. Это руководство объясняет все три без жаргона, показывает, что каждый доказывает (и чего не доказывает), и перечисляет практические ошибки, которые аннулируют электронную подпись так, что никто не замечает.
Три вопроса, на которые должен ответить электронный документ
Когда документ становится доказательством — в переговорах, аудите, судебном процессе — сомнения в нём всегда сводятся к трём вопросам:
- Целостность — этот файл в точности тот же, без единого изменения?
- Авторство — кто создал это содержимое или согласился с ним?
- Существование на дату — существовало ли это содержимое к определённой дате?
У современной криптографии есть инструмент для каждого вопроса. Пройдёмся по ним.
Инструмент 1 — Хеш: доказательство целостности
Хеш SHA-256 — математический «отпечаток» файла: последовательность из 64 символов, вычисленная из содержимого. Любое изменение документа — одна запятая — даёт совершенно другой хеш. Мы опубликовали полное руководство по хешу SHA-256 и проверке целостности; суть:
- Доказывает: что содержимое идентично, бит в бит, тому, что существовало при фиксации хеша;
- Не доказывает: кто создал файл и когда;
- Стоимость: ноль — можно вычислить хеш любого файла в браузере за секунды, никуда не отправляя документ.
Хеш — фундамент двух других механизмов: и электронная подпись, и метка времени изнутри работают, подписывая или датируя хеш документа.
Инструмент 2 — Электронная подпись: доказательство авторства
Здесь вступает асимметричная криптография (криптография с открытым ключом), и идею стоит понять — она элегантна:
У каждого человека есть пара математически связанных ключей: закрытый ключ, который есть только у него, и открытый ключ, который может знать кто угодно. Что зашифровано одним ключом, расшифровывается только другим.
Электронная подпись использует это остроумно:
- Программа вычисляет хеш документа;
- Этот хеш шифруется закрытым ключом подписанта — это и есть подпись;
- Получатель документа расшифровывает подпись открытым ключом подписанта и сравнивает с заново вычисленным хешем файла.
Если сошлось, доказаны сразу две вещи: документ не изменялся с момента подписания (целостность), и подпись мог поставить только владелец закрытого ключа (авторство).
Не хватает одного звена: откуда известно, что этот открытый ключ принадлежит именно этому человеку? Это роль сертификата электронной подписи — электронного документа, выданного удостоверяющим центром и связывающего открытый ключ с личностью владельца. Правовая база различается по странам: в России действует закон 63-ФЗ «Об электронной подписи», где квалифицированная электронная подпись (КЭП), выданная аккредитованным удостоверяющим центром, приравнена к собственноручной; в ЕС есть квалифицированная подпись по регламенту eIDAS. Криптография в основе везде одна.
- Доказывает: авторство/согласие + целостность с момента подписания;
- Не доказывает: что содержимое существовало до подписания, и дату с независимой силой (часы компьютера подписанта — слабое доказательство);
- Стоимость: квалифицированные сертификаты обычно платные; во многих странах есть бесплатные или недорогие государственные схемы (в России, например, КЭП для физлиц можно получить бесплатно в ФНС).
Инструмент 3 — Доверенная метка времени: доказательство существования на дату
Метка времени (timestamp) отвечает на вопрос, на который не отвечают два предыдущих механизма: «существовал ли этот документ на эту дату?»
Работает так: хеш документа отправляется в службу штампов времени (TSA) — сервис с проверяемыми, доверенными часами по стандарту RFC 3161 — которая возвращает хеш, подписанный вместе с официальными датой и временем. Обратите внимание на деталь, важную для приватности: путешествует только хеш, документ — никогда. Служба ставит штамп на отпечаток, ни разу не увидев содержимого.
- Доказывает: что именно это содержимое существовало не позднее этой даты и времени;
- Не доказывает: авторство;
- Стоимость: обычно платная услуга, которую оказывают службы меток времени по всему миру.
Практическая шпаргалка: какой инструмент для какой задачи
- «Хочу доказать, что файл не менялся» → хеш SHA-256. Зафиксируйте рано, там, где трудно оспорить (письмо другой стороне, общий отчёт), и сверяйте потом в проверке целостности.
- «Хочу доказать, что такой-то согласился с этим содержимым» → электронная подпись (квалифицированная или юридически признанная в вашей юрисдикции).
- «Хочу доказать, что это содержимое существовало до определённой даты» → метка времени.
- «Хочу всё сразу» → три механизма сочетаются: договор с квалифицированной подписью и меткой времени несёт авторство, целостность и дату.
Ошибка, аннулирующая электронные подписи (которую почти никто не замечает)
Вот самое ценное предупреждение этой статьи для повседневной офисной работы:
Любая манипуляция с подписанным PDF ломает подпись. Вспомните, как она устроена: подпись — это зашифрованный хеш документа. Изменился документ — изменился хеш — подпись больше не сходится. Это значит, что с уже подписанным PDF:
- Объединение с другими PDF — ломает подпись;
- Разделение на части — ломает подпись;
- Сжатие для уменьшения размера — ломает подпись;
- Удаление или извлечение страниц — ломает подпись;
- Даже «Сохранить как» в некоторых просмотрщиках PDF может перезаписать файл и сорвать проверку.
Золотое правило: все манипуляции — до подписания. Соберите итоговый документ — объедините приложения, переведите изображения в PDF, сожмите, выстройте страницы — и только потом собирайте электронные подписи. Если после что-то нужно изменить — придётся подписывать заново.
И следствие: если вы получили подписанный PDF и вам нужна уменьшенная или частичная версия для работы, сохраните оригинал нетронутым (зафиксируйте его хеш в проверке) и работайте только с копиями.
Криптография конфиденциальности: пароль на PDF
Помимо целостности, авторства и даты есть четвёртая потребность — конфиденциальность — которую закрывает симметричное шифрование: PDF шифруется паролем (стандарт AES-256), и открыть содержимое может только владелец пароля.
Два практических замечания:
- Пароль защищает тайну, а не целостность и не авторство — файл с паролем всё равно можно подменить другим файлом с тем же паролем;
- Прочность защиты равна прочности пароля. «1234» в AES-256 остаётся «1234».
Для документов с персональными данными конфиденциальность имеет и юридический вес: 152-ФЗ «О персональных данных» в России, GDPR в Европе и аналогичные законы по всему миру считают защиту данных обязанностью, а не любезностью. Самый сильный механизм конфиденциальности — архитектурный: документ вообще не покидает вашу машину.
Как RoseLab применяет эти принципы
RoseLab построен на двух криптографических принципах, разобранных здесь:
- 100% локальная обработка: сравнение двух PDF, объединение, разделение, сжатие и проверка хешей происходят внутри вашего браузера. Ни один документ не отправляется на серверы — конфиденциальность архитектурой, а не обещанием;
- Проверяемость: отчёт о сравнении печатает хеш SHA-256 обеих сравнивавшихся версий, и кто угодно может независимо пересчитать эти хеши в публичной проверке. Не нужно никому доверять: математика сходится сама.
На практике надёжный процесс проверки выглядит так: получите обе версии документа → зафиксируйте хеши → сравните с автоматической подсветкой различий → сформируйте отчёт с напечатанными хешами → заархивируйте отчёт + оригиналы. Кто оспорит проверку — сможет повторить её целиком самостоятельно; полная методика в статье «Полный процесс сравнения документов».
Частые вопросы
Действителен ли электронный документ без подписи? В большинстве правовых систем действительность большинства частных сделок не зависит от конкретной формы — письма, PDF и даже сообщения служат доказательствами и оцениваются в совокупности. Электронная подпись и метка времени усиливают доказательство; их отсутствие само по себе его не отменяет. Для отдельных действий закон может требовать квалифицированную подпись — проверьте применимые к вам правила.
Отсканированная собственноручная подпись — это электронная подпись? Нет. Картинка подписи, вставленная в PDF, — просто изображение без каких-либо криптографических свойств; её можно скопировать из одного документа в другой. Электронная подпись — описанный выше математический механизм, подкреплённый сертификатом.
Считается ли доказательством хеш, зафиксированный в письме? Считается сильным свидетельством целостности: у письма есть дата, получатель, и оно хранится на серверах третьих сторон (почтовых провайдеров). Если хеш предъявленного позже файла совпадает с отправленным тогда, обвинение в подделке становится крайне трудно отстаивать. Сверка занимает секунды в проверке.
Меняет ли сжатие PDF его хеш? Да — сжатие переписывает файл, поэтому хеш меняется (а электронные подписи ломаются). Поэтому фиксируйте хеш итогового файла, после всех манипуляций, либо храните оригинал и сжатую версию с обоими записанными хешами.
В чём разница между симметричной и асимметричной криптографией? Симметричная: один и тот же пароль шифрует и расшифровывает (это пароль PDF, AES-256). Асимметричная: пара ключей, открытый и закрытый — основа электронной подписи и сертификатов. Хеш — ни то ни другое: это односторонняя свёртка, строительный блок для обоих механизмов.