Сигнатура в криптографии и цифровой идентификации¶
Сигнатура (от лат. signatura — «подпись, обозначение») — многозначный термин, обозначающий набор признаков, по которым объект, сообщение или процесс идентифицируются и проверяются на подлинность. В зависимости от области применения различают криптографическую подпись, сигнатуру файла, сигнатуру вредоносного ПО, сигнатуру в биологии и медицине, а также разговорное «сигнатурку» — индивидуальный почерк, стиль или фирменный приём.
¶Криптографическая сигнатура
Электронная цифровая подпись (ЭЦП) — криптографический механизм, обеспечивающий подлинность цифрового документа и неизменность его содержимого. Сигнатура формируется с помощью закрытого ключа подписывающей стороны и проверяется открытым ключом.
¶Принцип работы
- Отправитель формирует хеш-функцию от документа.
- Хеш шифруется закрытым ключом отправителя — получается подпись.
- Документ вместе с подписью передаётся получателю.
- Получатель вычисляет хеш от полученного документа и расшифровывает подпись открытым ключом отправителя.
- Если значения совпадают, документ считается подлинным и неизменным.
¶Основные алгоритмы
| Алгоритм | Год | Особенности |
|---|---|---|
| RSA (PKCS#1 v1.5, PSS) | 1977 | Наиболее распространённый, основан на сложности факторизации |
| DSA / ECDSA | 1991 / 1999 | Основан на дискретном логарифме, короткие подписи |
| EdDSA (Ed25519) | 2011 | Быстрые вычисления, устойчивость к боковым каналам |
| ГОСТ Р 34.10-2012 | 2012 | Обязателен для государственных систем РФ |
В России правовое регулирование ЭЦП определяется Федеральным законом № 63-ФЗ «Об электронной подписи» (2011). Закон устанавливает три вида подписи: простая, усиленная неквалифицированная и усиленная квалифицированная. Квалифицированная ЭЦП юридически равнозначна собственноручной подписи на бумажном документе.
¶Применение
- Электронный документооборот между организациями и госорганами.
- Подписание программного обеспечения (код-сигнатуры Authenticode, подписи пакетов apt, rpm).
- TLS/SSL-сертификаты для HTTPS-сайтов.
- Блокчейн-транзакции (Bitcoin, Ethereum).
¶Сигнатура файла
В информационной безопасности сигнатура файла — цифровой отпечаток, полученный в результате применения хеш-функции к содержимому файла. Изменение хотя бы одного бита исходных данных приводит к совершенно другому хешу.
¶Типичные хеш-функции
- MD5 (128 бит) — устарела, коллизии найдены, используется только для быстрой идентификации.
- SHA-1 (160 бит) — вытесняется после демонстрации практических коллизий (SHAttered, 2017).
- SHA-256 / SHA-3 — современный стандарт.
Сигнатуры файлов применяются в антивирусах для идентификации известных угроз, в системах контроля целостности (Tripwire, AIDE), в пакетных менеджерах для проверки подлинности загружаемых пакетов.
¶Сигнатура вредоносного программного обеспечения
В антивирусной индустрии под сигнатурой понимается набор байтов или паттерн, характерный для конкретного вредоносного ПО. Антивирусное программное обеспечение сканирует файлы, сравнивая их содержимое с базой сигнатур.
¶Ограничения сигнатурного анализа
Сигнатурный метод обнаруживает только уже известные угрозы. Для новых (zero-day) вредоносных программ сигнатуры создаются после анализа образца, что оставляет окно уязвимости. Поэтому современные антивирусы дополняют сигнатурный анализ эвристикой и машинным обучением.
¶Сигнатура в биологии и медицине
В биомедицине термин «сигнатура» обозначает набор биомаркеров, по которым можно идентифицировать состояние организма:
- Генетическая сигнатура — характерный профиль экспрессии генов, используемый для классификации опухолей (например, PAM50 при раке молочной железы).
- Сигнатура болезни — совокупность симптомов и лабораторных показателей, характерных для конкретного заболевания.
- Цифровая сигнатура в медицинских системах — электронная подпись врача на медицинских документах.
¶Сигнатура в программировании
В языках программирования сигнатура функции — её имя вместе с типами параметров и возвращаемого значения. Сигнатура определяет, как функция может быть вызвана и как она перегружается (overloading). Например, в C++ две функции int sum(int, int) и double sum(double, double) имеют разные сигнатуры и могут сосуществовать.
¶Сленговое значение
В разговорной речи, особенно среди музыкантов, дизайнеров и программистов, «сигнатуркой» называют узнаваемый фирменный приём: характерный рифф, визуальный стиль, набор инструментов или способ решения задачи, по которому работу можно опознать без подписи автора.
¶См. также
- Электронная цифровая подпись
- Хеш-функция
- Криптография с открытым ключом
- Контроль целостности
¶Источники
- Федеральный закон РФ № 63-ФЗ «Об электронной подписи» (10.07.2012).
- Мерквелл Д., Ривест Р., Шнайер Б. «Прикладная криптография. Протоколы, алгоритмы, исходный код на C».
- Stallings W. «Cryptography and Network Security: Principles and Practice».
- RFC 8017 — PKCS #1: RSA Cryptography Specifications Version 2.2.
- NIST FIPS 186-4 — Digital Signature Standard (DSS).
