Тег аутентификации
Тег аутентификации — это блок данных фиксированной длины, создаваемый с помощью криптографического алгоритма на основе секретного ключа и сообщения (или иных данных), который используется для проверки подлинности сообщения и его целостности. Тег аутентификации является выходным значением кода аутентификации сообщения (MAC) или результатом работы режима аутентифицированного шифрования. Он позволяет получателю убедиться, что сообщение не было изменено в процессе передачи и что оно было отправлено именно тем отправителем, который обладает соответствующим секретным ключом.
История
Концепция тегов аутентификации возникла из необходимости защиты целостности и подлинности данных в условиях открытых сетей. В 1970-х годах, с развитием криптографии, были разработаны первые коды аутентификации сообщений (MAC), такие как CBC-MAC, основанные на блочных шифрах. В 1980-х годах появились более эффективные алгоритмы, например, HMAC (Hash-based Message Authentication Code), который использует криптографические хеш-функции. С развитием интернета и электронной коммерции в 1990-х годах теги аутентификации стали неотъемлемой частью протоколов безопасности, таких как SSL/TLS, IPsec и SSH. В 2000-х годах были разработаны режимы аутентифицированного шифрования (например, GCM, CCM, EAX), которые объединяют шифрование и генерацию тега аутентификации в одном процессе.
Принцип работы
Тег аутентификации вычисляется на основе трёх компонентов:
- Секретный ключ — известен только отправителю и получателю.
- Сообщение — открытый текст, который передаётся или хранится.
- Алгоритм — криптографическая функция, которая преобразует ключ и сообщение в тег фиксированной длины (например, 32, 64, 128 или 256 бит).
Отправитель вычисляет тег аутентификации и передаёт его вместе с сообщением (или отдельно). Получатель, используя тот же секретный ключ и тот же алгоритм, повторно вычисляет тег для полученного сообщения. Если вычисленный тег совпадает с переданным, сообщение считается подлинным и не изменённым. Если теги не совпадают, сообщение отвергается.
Виды тегов аутентификации
По типу алгоритма
- Коды аутентификации сообщений (MAC) — теги, создаваемые с помощью симметричных криптографических алгоритмов. Примеры:
- HMAC — использует хеш-функции (SHA-1, SHA-256, MD5). Широко применяется в протоколах TLS, IPsec, SSH.
- CBC-MAC — основан на блочных шифрах (AES, DES). Используется в стандартах IEEE 802.11i (Wi-Fi) и ISO 9797.
- CMAC — улучшенная версия CBC-MAC, рекомендованная NIST (США).
- Poly1305 — быстрый MAC-алгоритм, часто комбинируемый с шифром ChaCha20.
- Теги аутентифицированного шифрования — теги, генерируемые в режимах, которые одновременно шифруют данные и создают тег. Примеры:
- GCM (Galois/Counter Mode) — использует счётчик для шифрования и умножение в поле Галуа для вычисления тега. Применяется в TLS 1.2/1.3, IPsec, Wi-Fi Protected Access 3 (WPA3).
- CCM (Counter with CBC-MAC) — комбинирует шифрование в режиме счётчика и MAC на основе CBC. Используется в IEEE 802.11i, Bluetooth Low Energy.
- ChaCha20-Poly1305 — комбинация потокового шифра ChaCha20 и MAC Poly1305. Применяется в TLS 1.3, SSH, WireGuard.
По длине тега
Длина тега аутентификации варьируется в зависимости от алгоритма и требований безопасности. Стандартные длины:
- 32 бита (4 байта) — минимальная длина, используемая в некоторых протоколах с низкими требованиями к безопасности.
- 64 бита (8 байт) — распространённая длина, обеспечивающая умеренную защиту от случайных ошибок.
- 128 бит (16 байт) — стандартная длина для большинства современных алгоритмов (HMAC-SHA256, AES-GCM). Обеспечивает высокую криптостойкость.
- 256 бит (32 байта) — используется в алгоритмах, требующих максимальной защиты (например, HMAC-SHA512).
Применение
Протоколы безопасности
- TLS/SSL — в версиях 1.2 и 1.3 используются теги аутентификации для защиты веб-трафика. Например, в TLS 1.3 применяется режим ChaCha20-Poly1305 или AES-GCM.
- IPsec — в протоколах ESP (Encapsulating Security Payload) и AH (Authentication Header) теги аутентификации обеспечивают целостность и аутентификацию пакетов данных.
- SSH — использует HMAC для защиты сеансов удалённого доступа.
- WireGuard — современный VPN-протокол, использующий ChaCha20-Poly1305 для аутентифицированного шифрования.
Беспроводные сети
- Wi-Fi Protected Access 2 и 3 (WPA2, WPA3) — в протоколах IEEE 802.11i применяются теги аутентификации на основе AES-CCMP (Counter Mode with Cipher Block Chaining Message Authentication Code Protocol).
- Bluetooth — в версии 4.0 и выше используется AES-CCM для защиты данных.
Электронная коммерция и банковские системы
- EMV-чипы (Europay, Mastercard, Visa) — в платёжных картах используются теги аутентификации для проверки подлинности транзакций.
- Apple Pay и Google Pay — применяют теги аутентификации в токенизированных транзакциях.
Криптовалюты и блокчейн
- Биткойн — в протоколе используется HMAC-SHA256 для проверки целостности транзакций и блоков.
- Ethereum — в смарт-контрактах и протоколах консенсуса применяются теги аутентификации на основе SHA-3.
Хранение данных
- Дисковые шифраторы (BitLocker, LUKS) — используют теги аутентификации для защиты от несанкционированного изменения зашифрованных данных.
- Облачные хранилища — в протоколах, таких как Amazon S3 с SSE-C, теги аутентификации проверяют целостность данных при передаче и хранении.
Криптографические свойства
Тег аутентификации должен обладать следующими свойствами:
- Стойкость к подделке — злоумышленник, не знающий ключа, не может создать корректный тег для произвольного сообщения с вероятностью, превышающей 2^(-n), где n — длина тега в битах.
- Стойкость к коллизиям — для разных сообщений с высокой вероятностью вычисляются разные теги.
- Стойкость к атакам по времени — реализация алгоритма должна быть устойчива к атакам, использующим разницу во времени выполнения операций.
Уязвимости и атаки
- Атака повторного воспроизведения — злоумышленник может перехватить сообщение с тегом и отправить его повторно. Для защиты используются временные метки или одноразовые номера (nonce).
- Атака на основе длины тега — если длина тега слишком мала (например, 32 бита), злоумышленник может подобрать корректный тег методом перебора.
- Атака на реализацию — ошибки в программной или аппаратной реализации алгоритма могут привести к утечке ключа или возможности подделки тега.
- Атака на основе побочных каналов — анализ времени выполнения, потребляемой мощности или электромагнитного излучения может позволить восстановить ключ.
Стандартизация
Теги аутентификации стандартизированы рядом международных организаций:
- NIST (США) — стандарты SP 800-38B (CMAC), SP 800-38D (GCM), SP 800-38C (CCM).
- ISO — стандарты ISO/IEC 9797-1 (MAC на основе блочных шифров), ISO/IEC 9797-2 (MAC на основе хеш-функций).
- IETF — RFC 2104 (HMAC), RFC 5116 (аутентифицированное шифрование), RFC 8439 (ChaCha20-Poly1305).
Сравнение с другими методами аутентификации
- Цифровая подпись — использует асимметричную криптографию (открытый и закрытый ключи) и обеспечивает неотказуемость. Тег аутентификации, напротив, требует симметричного ключа и не доказывает третьей стороне, что сообщение отправлено конкретным лицом.
- Хеш-функция — проверяет только целостность, но не аутентичность, так как не требует секретного ключа. Тег аутентификации объединяет обе функции.
- Контрольная сумма (CRC) — защищает только от случайных ошибок, но не от злонамеренных изменений.
Интересные факты
- В протоколе TLS 1.3 по умолчанию используется тег аутентификации длиной 128 бит, что обеспечивает вероятность случайного совпадения 1 к 2^128.
- Алгоритм Poly1305, разработанный Дэниелом Бернштейном, может обрабатывать до 1,6 гигабайт данных в секунду на современных процессорах.
- В криптовалюте Биткойн теги аутентификации используются не только для транзакций, но и для проверки целостности блоков в блокчейне.
Источники
- NIST Special Publication 800-38B: Recommendation for Block Cipher Modes of Operation: The CMAC Mode for Authentication.
- NIST Special Publication 800-38D: Recommendation for Block Cipher Modes of Operation: Galois/Counter Mode (GCM) and GMAC.
- RFC 2104: HMAC: Keyed-Hashing for Message Authentication.
- RFC 8439: ChaCha20 and Poly1305 for IETF Protocols.
- ISO/IEC 9797-1: Information technology — Security techniques — Message Authentication Codes (MACs) — Part 1: Mechanisms using a block cipher.
- ISO/IEC 9797-2: Information technology — Security techniques — Message Authentication Codes (MACs) — Part 2: Mechanisms using a dedicated hash-function.
- Menezes, A., van Oorschot, P., Vanstone, S. (1996). Handbook of Applied Cryptography. CRC Press.
BFOmetr — база данных и аналитика по компаниям России.
На главную BFOmetr →