Windows VPN Group24 или MODP3072: какая группа нужна?
Номера групп — это записи в реестре, а не рейтинг по размеру. Сопоставьте имя с его параметрами, затем проверьте, какие группы может выразить параметр Windows.
Group24 и MODP3072 — оба названия группы обмена ключами, и это не одна и та же группа разной стойкости. Group24 сочетает модуль 2048 бит с подгруппой простого порядка 256 бит, тогда как MODP3072 — это группа 15 размером 3072 бита. Выбор одной группы, когда была указана другая, меняет требование вместо его выполнения. Исход определяют четыре вещи, и ни одна из них не требует доверия к похожему названию.
Номер — это запись в реестре, а не ранг
IANA нумерует группы обмена ключами в порядке их регистрации, поэтому больший номер означает более позднюю запись в реестре, а не более стойкую группу. Группа 14 — это MODP на 2048 бит, группа 15 — MODP на 3072 бита, а группа 24 сочетает модуль 2048 бит с подгруппой простого порядка 256 бит. Чтение идентификатора как рейтинга размера порождает ровно ту ошибку, когда 24 считают большей 15. Имя — это метка, а параметры за ним — то, что переговоры действительно используют.
| IANA group | What the group is | Expressible as Windows DHGroup | What a mismatch looks like |
|---|---|---|---|
| 14 | A 2048-bit finite-field modulus | Group14 | The gateway reports modp2048, which is the same group in other vocabulary |
| 15 | A 3072-bit finite-field modulus | Not in the documented enumeration | You cannot request it from this parameter; a gateway reporting modp3072 was configured elsewhere |
| 24 | A 2048-bit modulus with a 256-bit prime-order subgroup | Group24 | The gateway reports modp2048s256, so the two names differ while describing one group |
| 20 | The NIST P-384 curve | ECP384 | The gateway reports ecp384, and that 384 counts a field size rather than a modulus |
Группы на эллиптических кривых добавляют собственную путаницу, потому что число битов кривой описывает поле, а не модуль. Сравнение P-384 с группой над конечным полем на 3072 бита так, будто числа измеряют одно и то же, ничего вам не говорит.
Что может выразить перечисление Windows
Реестр IKE и параметр клиента Windows — это разные интерфейсы с разными словарями. Справочник по командлету VpnClient от Microsoft указывает, что DHGroup принимает None, Group1, Group2, Group14, ECP256, ECP384 и Group24. Group15 в этом документированном наборе отсутствует, а значит, параметр не может выразить запрошенную группу. Это ограничение интерфейса, а не утверждение о том, какие группы поддерживает протокол.
Указание не входящего в список написания, целого числа или скопированной строки политики не расширяет перечисление. Проверьте справочник для той версии Windows, которую вы действительно развёртываете, и если группа недоступна, честный результат — другая утверждённая политика или другой клиент.
Держите DHGroup, PfsGroup и тип сертификата отдельно
DHGroup выбирает группу для обмена ключами IKE, а PfsGroup управляет прямой секретностью для последующих ассоциаций защищённого трафика. Это отдельные поля, поэтому правильная настройка одного ничего не говорит о другом. Ключ RSA или ECDSA сертификата — третье свойство, и он относится к аутентификации, а не к эфемерному обмену. Поэтому один профиль может быть правильным на одном уровне и ошибочным на другом, и успешное соединение не покажет, на каком.
Сообщения о том, что определённый тип сертификата навязал группу ECP на каждом соединении IKEv2, описывают одну комбинацию настроек. Они не устанавливают правило протокола, и отношение к ним как к правилу — это путь, которым локальная особенность становится политикой.
Прочитайте группу, которую согласовал шлюз
Модуль VpnClient предлагает Set-VpnConnectionIPsecConfiguration как интерфейс только для записи, и на хосте нет соответствующего командлета Get-, который прочитал бы эту политику обратно. Запишите применённые значения DHGroup и PfsGroup, затем прочитайте на шлюзе, что обмен действительно использовал. Запускайте команды после нового соединения, а не после переподключения, которое использовало старую ассоциацию.
swanctl --list-sas
ipsec statusall
Профиль, который сообщает Group24, тогда как шлюз сообщает modp2048s256, согласован, поскольку это одна и та же группа в двух словарях. Шлюз, который сообщает modp3072, тогда как профиль говорит Group24, не согласован, и один конец не обеспечивает то, что вы считаете. Строка сертификата отвечает на отдельный вопрос аутентификации, а поле PFS — на третий. Сравните все три, прежде чем писать заметку о соответствии.
Запишите запрошенную группу, согласованную группу и интерфейс, который принял или отклонил настройку. Именно эта тройка нужна проверяющему, и ничего из неё нельзя вывести из имени политики.