Цифровая подпись — криптографический механизм, который подтверждает, кто создал или утвердил данные, и что они не изменились после подписания.
Как работает цифровая подпись
Цифровая подпись основана на криптографии с открытым ключом. Подписывающий вычисляет хеш документа или файла и преобразует его своим закрытым ключом — результат и есть подпись. Проверить её может любой с помощью соответствующего открытого ключа: если данные изменились хотя бы на один бит или использован другой ключ, проверка не пройдёт. Распространённые алгоритмы — RSA, ECDSA и EdDSA; в 2024 году NIST стандартизировал постквантовую альтернативу ML-DSA.
Чтобы знать, чей это открытый ключ, подписи опираются на сертификаты удостоверяющих центров. Важно: подпись — не шифрование, подписанное сообщение может оставаться доступным для чтения всем.
Где используется
- Подпись кода — операционные системы и магазины приложений проверяют подписи программ и драйверов; обновления подписываются, чтобы устройства принимали только подлинные.
- TLS и HTTPS — серверы подтверждают свою подлинность при установке соединения.
- Почта и документы — S/MIME, PGP, подписанные PDF; в ЕС квалифицированная электронная подпись по регламенту eIDAS равнозначна собственноручной.
- Транзакции в блокчейне и цепочки доверенной загрузки.
Почему это важно для безопасности
Подписи — основа доверия к программному обеспечению. Поэтому атакующие крадут ключи подписи кода: Stuxnet использовал драйверы, подписанные сертификатами двух тайваньских производителей оборудования, а подписанное вредоносное ПО и взломанные сборочные системы лежат в основе многих атак на цепочку поставок. К тому же пользователи часто игнорируют предупреждения о недействительной подписи.
Рекомендации
- Хранить ключи подписи в аппаратных модулях безопасности (HSM) и ограничивать круг лиц с доступом.
- Немедленно отзывать скомпрометированные сертификаты.
- Проверять подписи и контрольные суммы загружаемых программ и обновлений.