Privacy and Key Management Protocol
Privacy and Key Management Protocol (PKM Protocol) – это протокол для получения авторизации и ключей шифрования траффика TEK.
1. Абонентская станция начинает обмен, посылая сообщение, содержащее X.509 сертификат изготовителя абонентской станции. Обычно этот сертификат никак не используется базовой станцией, хотя возможно настроить базовую станцию так, что авторизоваться будут только абонентские станции от доверяемых производителей.
2. Сразу после первого сообщения, абонентская станция отправляет сообщение, содержащее X.509 сертификат самой абонентской станции, ее криптографические возможности и идентификатор основной SA (Primary SA).
3. Базовая станция по сертификату абонента определяет, авторизован ли он. Если он авторизован, она посылает сообщение, содержащее зашифрованный ключ авторизации, последовательный номер данного ключа авторизации, его время жизни, а также список идентификаторов Static SA, в которых абонент авторизован. Ключ авторизации шифруется алгоритмом RSA с публичным ключом, получаемым из сертификата абонентской станции. Однажды авторизовавшись, абонентская станция будет периодически переавторизовываться.
1. (Опционально) Базовая станция посылает сообщение, принуждающее абонентскую станцию обновить ключ шифрования траффика TEK. Сообщение содержит
· последовательный номер ключа авторизации, который был использован при генерации HMAC
· идентификатор того SA, TEK которого необходимо обновить
· HMAC для того, чтобы абонентская станция могла проверить подлинность этого сообщения.
2. В ответ на первое сообщение (при успешной проверке HMAC), или же по собственной инициативе абонентская станция посылает запрос на обновление ключа TEK, содержащий
· последовательный номер ключа авторизации, который был использован при генерации HMAC
· идентификатор того SA, TEK которого необходимо обновить (совпадает с идентификатором из первого сообщения, если оно было)
· HMAC для того, чтобы базовая станция могла проверить подлинность этого сообщения.
3. Если предыдущее сообщение пройдет аутентификацию HMAC, базовая станция посылает сообщение, содержащее
· последовательный номер ключа авторизации, который был использован при генерации HMAC
· идентификатор SA, для которого проводится обновление ключа TEK
· прежний TEK, т.е. текущий TEK того SA, для которого запрошено обновление
· новый TEK, т.е. TEK, который будет использоваться, когда истечет срок жизни текущего TEK
· HMAC для проверки подлинности данного сообщения.
Оба ключа TEK передаются в зашифрованном виде. В IEEE 802.16 для этого используется тройной DES в режиме электронной кодовой книги c ключом KEK:
Здесь KEK 1 – это первые 64 бит ключа KEK, а KEK 2 – последние 64 бит ключа KEK.
Стандарт IEEE 802.16 использует алгоритм DES в режиме сцепления блока шифров для шифрования данных. В настоящее время DES считается небезопасным, поэтому в дополнении к стандарту IEEE 802.16e для шифрования данных был добавлен алгоритм AES.
DES
Шифрование данных проходит следующим образом: Вектор инициализации из данного data SA и поле синхронизации проходят побитовую операцию исключающего ИЛИ и подаются как инициализирующий вектор алгоритму DES в режиме сцепления блока шифров (CBC, cipher block chaining). Также на вход схемы подается ключ TEK для шифрования и открытый текст сообщения. Алгоритм выдает зашифрованный текс. Заголовок Generic MAC header (GMH) не меняется за исключением битового поля EC, а концевик CRC, если он имеется, меняется под зашифрованный текст.
AES
Стандарт 802.16e определяет использование шифрования AES в четырех режимах:
· Cipher Block Chaining (CBC, режим сцепления блока шифров)
· Counter Encryption (CTR, шифрование счетчика)
· Counter Encryption with Cipher Block Chaining message authentication code (CCM, счетчиковое шифрование с message authentication code, полученным сцеплением блока шифров). Добавляет возможность проверки подлинности зашифрованного сообщения к режиму CTR.
· Electronic Code Book (ECB, режим электронной кодовой книги). Используется для шифрования ключей TEK.
AES в режиме CCM
Nonce
В режиме CCM, для шифрования полезной информации передающая станция генерирует на каждый пакет nonce – байтовую последовательность, первые 5 байт которой представляют собой начало Generic MAC Header. Далее идут 4 зарезервированных байта, имеющих нулевые значения. Затем следует 4-байтовый номер пакета Packet Number (PN) в данном data SA. Значение Packet Number ставится в 1 при установлении нового data SA или нового TEK.
Блок CBC
Блок CBC состоит из однобайтового флага, имеющего значение 00011001, последовательности nonce и поля, содержащего длину информационной части сообщения.
Блок Counter
Блок Counter состоит из однобайтового флага, имеющего значение 00000001, последовательности nonce и поля, содержащего номер i Counter-блока. Число i может меняться от нуля до n, где n – количество Counter-блоков, необходимых для покрытия всего сообщения и кода message authentication code.
Создание и шифрование message authentication code в AES - CCM
При создании message authentication code используется модифицированный режим CBC, в котором вместо инициализирующего вектора IV, к началу информационной части сообщения присоединяется начальный (нулевой) блок CBC. Далее эта пара зашифровывается алгоритмом AES в режиме CBC с ключом TEK. Последние 128 бит зашифрованного текста берутся в качестве message authentication code (кода аутентичности). Далее message authentication code шифруется побитовым сложением по модулю два исходного message authentication code и зашифрованного с помощью алгоритма AES в режиме CTR начального (нулевого) Counter-блока.
Шифрование информационной части сообщения
Каждый из n оставшихся Counter-блоков (нулевой уже был задействован в шифровании message authentication code) зашифровывают методом AES в режиме CTR с ключом TEK. Затем результат складывают побитовым сложением по модулю два с информационной частью сообщения. Полученный зашифрованный текст вместе с зашифрованным message authentication code, номером пакета данных, заголовком Generic MAC Header и CRC-концевиком отправляется на физический уровень. При этом в заголовке GMH поле EC (Encryption Control) устанавливают в единицу, поскольку данные были зашифрованы, а в двухбитовом поле EKS (Encryption Key Sequence) стоит индекс использованного при этом ключа TEK (traffic encryption key).
Уязвимости в стандарте IEEE 802.16
· Атаки физического уровня, такие как глушение передачи сигнала, ведущее к отказу доступа или лавинный наплыв кадров (flooding), имеющий целью истощить батарею станции. Эффективных способов противостоять таким угрозам на сегодня нет.
· Самозваные базовые станции, что связано с отсутствием сертификата базовой станции. В стандарте проявляется явная несимметричность в вопросах аутентификации. Предложенное решение этой проблемы - инфраструктура управления ключом в беспроводной среде (WKMI, wireless key management infrastructure), основанная на стандарте IEEE 802.11i. В этой инфраструктуре есть взаимная аутентификация с помощью сертификатов X.509.[2]
· Уязвимость, связанная с неслучайностью генерации базовой станцией ключей авторизации. Взаимное участие базовой и абонентской станции, возможно, решило бы эту проблему.[3]
· Возможность повторно использовать ключи TEK, чей срок жизни уже истек. Это связано с очень малым размером поля EKS индекса ключа TEK. Так как наибольшее время жизни ключа авторизации 70 суток, т.е. 100800 минут, а наименьшее время жизни ключа TEK 30 минут, то необходимое число возможных идентификаторов ключа TEK - 3360. А это означает, что число необходимых бит для поля EKS - 12.
· Еще одна проблема связана, как уже упоминалось с небезопасностью использования шифрования DES. При достаточно большом времени жизни ключа TEK и интенсивном обмене сообщениями возможность взлома шифра представляет реальную угрозу безопасности. Эта проблема была устранена с введением шифрования AES в поправке к стандарту IEEE 802.16e. Однако, большое число пользователей до сих имеет оборудование, поддерживающее лишь старый стандарт IEEE 802.16.
1. Glore, N. & Mishra, A., Chapter 11 “Privacy and Security in WiMax Networks” in "WiMAX Standards and Security" (Edited by M. Ilyas & S. Ahson), CRC Press, June 2007
2. Стандарт IEEE 802.16-2001
3. Поправка к стандарту IEEE 802.16e-2005
4. http://www.wimaxforum.ru/
5. http://www.wimaxmaps.org/
6. http://ru.wikipedia.org/wiki/WiMAX#.D0.A1.D0.BC._.D1.82.D0.B0.D0.BA.D0.B6.D0.B5
7. http://www.osp.ru/nets/2006/17/3607303/