Открыть сервис

Предварительный ключ

Предварительный ключ — это в криптографии и защите информации секретный параметр, используемый в протоколах выработки общего ключа (например, в протоколах Диффи — Хеллмана или в протоколах на основе предварительно распределённых ключей). Предварительный ключ представляет собой заранее известную обеим сторонам связи последовательность битов или символов, которая служит основой для последующего вычисления сеансового ключа шифрования. В отличие от сеансового ключа, который генерируется динамически на время одного соединения, предварительный ключ является статическим и может быть установлен до начала обмена данными, например, при инициализации устройства или в процессе настройки сети.

История возникновения

Концепция предварительного ключа восходит к ранним этапам развития криптографии, когда для обеспечения конфиденциальности связи стороны заранее обменивались общими секретными значениями. В классической криптографии таким значением выступал ключ шифрования, передаваемый по защищённому каналу (например, через курьера). С развитием компьютерных сетей и появлением протоколов асимметричного шифрования в 1970-х годах возникла необходимость в протоколах, которые позволяли бы на основе статического предварительного ключа вырабатывать временные сеансовые ключи.

Одним из первых массовых применений предварительного ключа стал протокол WEP (Wired Equivalent Privacy) для беспроводных сетей IEEE 802.11, где использовался статический ключ длиной 40 или 104 бита. Однако из-за слабости алгоритма RC4 и отсутствия механизма ротации ключей WEP оказался уязвим к атакам. Впоследствии в протоколе WPA (Wi-Fi Protected Access) был введён механизм предварительного ключа (Pre-Shared Key, PSK), который стал основой для домашних и малых офисных сетей. В 2004 году стандарт WPA2 закрепил использование PSK в режиме WPA2-Personal, а в 2018 году WPA3 предложил более совершенный протокол SAE (Simultaneous Authentication of Equals), который также использует предварительный ключ, но с защитой от офлайн-атак.

Классификация предварительных ключей

Предварительные ключи можно классифицировать по нескольким признакам.

По способу распространения

  • Статические предварительные ключи — устанавливаются один раз и не меняются в течение длительного времени. Пример: ключ доступа к точке доступа Wi-Fi (пароль), который пользователь вводит при подключении.
  • Динамические предварительные ключи — могут обновляться по расписанию или по команде администратора. Используются в корпоративных сетях с централизованным управлением, например, в протоколе 802.1X с сервером RADIUS.

По длине и сложности

  • Короткие ключи (например, 40 бит) — исторически использовались в WEP, но считаются ненадёжными из-за возможности перебора.
  • Стандартные ключи (128–256 бит) — применяются в современных протоколах, таких как WPA2/WPA3, IPsec, TLS-PSK.
  • Ключи на основе парольной фразы — представляют собой текстовую строку, которая преобразуется в криптографический ключ с помощью функции выработки ключа (KDF). Пример: пароль от Wi-Fi сети, который преобразуется в 256-битный ключ через PBKDF2.

По области применения

  • Ключи для беспроводных сетей — PSK в Wi-Fi.
  • Ключи для VPN — предварительные ключи в протоколах IPsec (IKEv1, IKEv2) и OpenVPN.
  • Ключи для аутентификации устройств — в протоколах IoT (например, Zigbee, Bluetooth LE).
  • Ключи для шифрования данных на устройстве — в системах аппаратного шифрования (например, TPM).

Устройство и принцип работы

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

  1. Инициализация: обе стороны (например, клиент и сервер) имеют одинаковый предварительный ключ. Он может быть введён вручную, получен по защищённому каналу или сгенерирован автоматически.
  2. Обмен сообщениями: стороны обмениваются случайными числами (nonce) или другими открытыми данными.
  3. Выработка сеансового ключа: с использованием предварительного ключа и случайных данных вычисляется временный ключ шифрования. Обычно применяется криптографическая хеш-функция (например, SHA-256) или функция выработки ключа (например, HKDF).
  4. Шифрование: сеансовый ключ используется для шифрования данных в течение одного соединения.
  5. Завершение: после завершения сеанса сеансовый ключ уничтожается, а предварительный ключ остаётся для следующих соединений.

Пример: протокол WPA2-PSK

В WPA2-PSK предварительный ключ (PSK) представляет собой 256-битное значение, полученное из парольной фразы (SSID и пароль) через функцию PBKDF2. При подключении клиента к точке доступа:

  • Клиент и точка доступа обмениваются случайными числами (ANonce, SNonce).
  • На основе PSK, случайных чисел и MAC-адресов вычисляется временный ключ (PTK — Pairwise Transient Key).
  • PTK используется для шифрования данных в сеансе.

Применение

Предварительные ключи широко используются в различных областях информационной безопасности.

Беспроводные сети

В домашних и малых офисных сетях предварительный ключ является основным методом аутентификации. Протоколы WPA2-Personal и WPA3-Personal (SAE) используют PSK для защиты трафика. В корпоративных сетях предварительный ключ может применяться в сочетании с сервером RADIUS для централизованного управления.

Виртуальные частные сети (VPN)

В протоколах IPsec (IKEv1, IKEv2) предварительный ключ используется для аутентификации сторон при установке защищённого туннеля. OpenVPN также поддерживает режим с предварительным ключом (static key), хотя чаще применяются сертификаты.

Интернет вещей (IoT)

В устройствах IoT с ограниченными вычислительными ресурсами предварительный ключ часто является единственным доступным методом аутентификации. Например, в протоколе Zigbee используется предварительный ключ для установки доверенных отношений между координатором и устройствами.

Аутентификация в веб-протоколах

Протокол TLS-PSK (Transport Layer Security — Pre-Shared Key) позволяет устанавливать защищённое соединение без использования сертификатов, на основе предварительного ключа. Это применяется в системах с ограниченными ресурсами, например, в SIM-картах (протокол EAP-SIM).

Критика и уязвимости

Несмотря на широкое распространение, предварительные ключи имеют ряд недостатков.

Уязвимость к атакам перебора

Если предварительный ключ является коротким или слабым (например, пароль из словаря), злоумышленник может перехватить обмен сообщениями и попытаться подобрать ключ офлайн. В протоколе WPA2-PSK такая атака возможна при наличии перехваченного четырёхстороннего рукопожатия (4-way handshake). Для защиты от этого в WPA3 был введён протокол SAE, который делает офлайн-перебор практически невозможным.

Отсутствие масштабируемости

В больших сетях управление предварительными ключами становится сложным: каждый ключ должен быть уникальным для каждой пары устройств, и при компрометации одного ключа необходимо менять его на всех устройствах. Решением является использование централизованных серверов аутентификации (например, RADIUS) или протоколов с сертификатами.

Компрометация ключа

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

Отсутствие прямой секретности (Perfect Forward Secrecy)

В протоколах, где предварительный ключ используется непосредственно для шифрования сеансового ключа (например, в статическом режиме OpenVPN), компрометация предварительного ключа позволяет расшифровать все прошлые сеансы. Современные протоколы, такие как WPA3 и TLS-PSK с DHE, обеспечивают прямую секретность за счёт использования эфемерных ключей Диффи — Хеллмана.

Интересные факты

  • В протоколе WEP предварительный ключ использовался напрямую для шифрования, что делало его уязвимым к атакам на основе статистического анализа (атака Fluhrer, Mantin, Shamir).
  • В стандарте IEEE 802.11i (WPA2) длина предварительного ключа может быть от 8 до 63 символов. При этом функция PBKDF2 выполняет 4096 итераций хеширования для усложнения перебора.
  • В протоколе WPA3-Personal (SAE) предварительный ключ не передаётся по сети даже в зашифрованном виде — вместо этого используется протокол с нулевым разглашением (zero-knowledge proof).
  • В системах спутниковой связи и военных сетях предварительные ключи могут распространяться физически (на магнитных носителях или через курьеров) для обеспечения максимальной безопасности.

Источники

  • IEEE Standard 802.11i-2004 — Wireless LAN Medium Access Control (MAC) and Physical Layer (PHY) Specifications: Amendment 6: Medium Access Control (MAC) Security Enhancements.
  • IEEE Standard 802.11-2020 — Part 11: Wireless LAN Medium Access Control (MAC) and Physical Layer (PHY) Specifications.
  • RFC 2409 — The Internet Key Exchange (IKE).
  • RFC 4306 — Internet Key Exchange (IKEv2) Protocol.
  • RFC 4279 — Pre-Shared Key Ciphersuites for Transport Layer Security (TLS).
  • NIST Special Publication 800-57 — Recommendation for Key Management, Part 1: General.
  • Спецификация протокола WPA3 (Wi-Fi Alliance, 2018).
  • Книга: Б. Шнайер, «Прикладная криптография», 2-е издание, 1996.

BFOmetr — база данных и аналитика по компаниям России.

На главную BFOmetr →