Это серия заметок с полей, сложных или интересных технических кейсов, с которыми мы сталкиваемся в процессе технических консультаций по нашим продуктам.
На одном из наших пресейлов заказчик задал вопрос: Почему на Palo Alto Networks при построении IPsec VPN нельзя использовать PSK в Agressive Mode с динамическими IP-адресами удаленных пиров? Они могли это делает на своем предыдущем решении, недорогом маршрутизаторе.
Чтобы ответить на этот вопрос, разберемся немного в том, как работает IPsec VPN. IPsec VPN — этот набор протоколов, который позволяет нам установить зашифрованный канал связи между двумя или несколькими устройствами (пирами, peers), доступными по IP-адресам.
Первый шаг, или фаза, построения Site-to-Site IPSec VPN-туннеля называется IKE Phase 1 и отвечает за взаимную аутентификацию и установление защищенного канала управления туннелем.
При этом для взаимной аутентификации можно использовать предварительно известный обеим сторонам секретный ключ (Preshared Key, PSK) или же сертификаты X.509.
IKE Phase 1 также предлагает нам два режима своей работы на выбор — Main Mode и Agressive Mode. Main Mode более безопасен, т.к. не пересылает никакие чувствительные данные в открытом виде, но требует обмена шестью сообщениями между пирами. Agressive Mode использует всего три сообщения, но передает чувствительные данные в открытом виде, что более рискованно.
Так почему же на Palo Alto Networks при построении IPsec VPN нельзя использовать PSK в Agressive Mode, если у одного из пиров IP-адрес динамический, то есть периодически меняется и поэтому заранее неизвестен? Ведь в Main Mode PSK можно использовать как со статическими, так и с динамическим адресами.
Быстрый поиск в Интернете не дал четкого ответа. Все посты писали, что да — нельзя использовать, причем не только на Palo Alto Networks, а вообще на всех VPN-устройствах. Но никто не писал — почему. Пришлось немного углубиться в этот вопрос.
Все дело в том, что в первой фазе протоколе IKE с PSK значение PSK используется для генерации мастер-ключа, на котором затем устанавливается защищенный канал.
При это в режиме Main Mode до установки защищенного канала не происходит никакого обмена данными между сторонами. Единственное, что видит локальный пир — это IP-адрес удаленного пира. Поэтому единственным способом выбора верного PSK является прописывание его в конфигурации локального пира с указанием для какого удаленного IP он должен использоваться. Соответственно, заранее нужно знать конкретный IP-адрес пира, и поэтому он не может быть динамическим.
В режиме Agressive Mode идентификатор удаленного пира передается в открытом виде, поэтому локальный пир может выбрать PSK на основе этого идентификатора, и ему все равно, с какого IP пришел этот запрос. Поэтому тут адрес может быть динамическим.
Как уже было описано выше, очевидно, что Agressive Mode с PSK менее безопасен потому, что в нем начальные данные передаются в открытом виде. Поэтому, если используются динамические адреса, то рекомендуется использовать аутентификацию на основе сертификатов, при такой аутентификации можно использовать любой из режимов — Main Mode или Agressive Mode, потому что все сертификаты выписаны одним УЦ, все устройства доверяют друг другу и сразу могут установить защищенный канал.
Приводим ссылку, которая помогла разобраться в вопросе, и которая содержит чуть больше деталей о сообщениях в различных режимах работы IKE Phase 1: http://rayas-security.blogspot.com/2013/06/ipsec-vpn-main-mode-vs-aggressive-mode.html.
Так как же заказчик мог использовать Agressive Mode с PSK и динамическими IP-адресами на своем предыдущем оборудовании? Этот вопрос по сей день остается тайной. Протокол IKE этого не позволяет сделать в принципе. В более новой прошивке того же устройства такая возможность уже пропала. Вполне вероятно, что это была просто ошибка терминологии в интерфейсе или же баг.