Битлента
Словарь терминов3 мин чтения·

Электронная подпись: как проверяется подлинность документа

Как устроена электронная подпись: хеш, закрытый ключ, проверка открытым ключом и роль сертификата. Что она доказывает, а что нет.

Задача, которую решает подпись

Когда вы получаете файл или письмо, возникают два вопроса. Действительно ли это отправил тот, кто заявлен, и не изменили ли текст по дороге? Электронная подпись отвечает на оба сразу. Она привязывает содержимое к владельцу секретного ключа, и любая правка документа после подписания делает подпись недействительной.

Важно отличать подпись от шифрования. Шифрование скрывает содержимое, подпись его не скрывает вовсе: подписанный текст может лежать открыто. Подпись подтверждает происхождение и неизменность, а не конфиденциальность.

Как это делается технически

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

Проверяющий действует в обратном порядке. Он берёт открытый ключ подписанта, применяет его к подписи и получает исходный хеш. Затем сам считает хеш полученного документа. Если значения совпали, документ не менялся, а подпись создана обладателем соответствующего закрытого ключа. Математика различается в зависимости от алгоритма, RSA и эллиптические кривые используют разные схемы, но логика проверки одинакова.

Связь ключей разобрана в материале об открытом и закрытом ключе.

Откуда берётся доверие к открытому ключу

Тут возникает главный вопрос: как проверяющий узнаёт, что открытый ключ действительно принадлежит именно этому человеку или организации, а не подменён? Для этого существуют сертификаты. Центр сертификации подтверждает связь между именем владельца и ключом собственной подписью. Тогда проверка идёт по цепочке от сертификата подписанта к доверенному корню, что описано на странице про цепочку доверия.

В веб-технологиях и в подписи программ эта схема используется постоянно. Подписанный установщик или драйвер несёт подпись издателя и сертификат. Операционная система проверяет их до запуска и показывает, кто издатель.

🛡️ Остались проблемы с соединением?
Можно пользоваться постоянно: российские приложения работают, включать и выключать ничего не нужно. Без карты и регистрации, настройка за пару минут.
Попробовать бесплатно

Виды подписи и юридическая сторона

На практике встречаются разные уровни. Простая подпись, например код из сообщения или логин с паролем, подтверждает действие лишь косвенно. Усиленная подпись строится на криптографии описанным выше способом и позволяет обнаружить изменения. В российском праве выделяют усиленную неквалифицированную и квалифицированную подписи, причём последняя опирается на сертификат аккредитованного удостоверяющего центра и приравнивается к собственноручной в большинстве случаев.

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

Ограничения и как проверить у себя

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

Другое ограничение — срок действия сертификата и возможность отзыва. Хорошая проверка учитывает статус отзыва и время подписания.

Увидеть подпись можно самому. В свойствах исполняемого файла Windows есть вкладка «Цифровые подписи». В PDF-редакторах подпись отображается панелью с указанием, менялся ли документ после подписания. Для писем и файлов также используется PGP, описанный в отдельной статье.

Подпись программ и штампы времени

Отдельный случай — подпись исполняемых файлов и драйверов. Издатель подписывает установщик, и система при запуске проверяет подпись, сообщая, кто его выпустил и не изменён ли файл. Часто к подписи добавляют штамп времени от независимой службы: он доказывает, что подпись поставлена, пока сертификат ещё действовал. Благодаря этому подписанная программа не превращается в непроверяемую через год, когда срок сертификата истёк. Отсутствие подписи не означает вредоносность, а наличие подписи не означает безопасность: подписывать могут и недобросовестные издатели, поэтому подпись лишь один из признаков. В окне запроса на установку обращайте внимание на название издателя и сверяйте его с ожидаемым.

🛡️ Остались проблемы с соединением?
Можно пользоваться постоянно: российские приложения работают, включать и выключать ничего не нужно. Без карты и регистрации, настройка за пару минут.
Попробовать бесплатно
подписькриптографиясертификаты

Часто задаваемые вопросы

Читайте также