Есть ли способ указать параметры сопоставления безопасности IKEv2 для Personal VPN?

Я пытаюсь настроить Personal VPN в своем приложении.

В документации Apple указано, что личная конфигурация VPN использует один из встроенных протоколов VPN (в моем случае IKEv2).

Базовая конфигурация довольно проста, однако при указании настроек для конфигурации IKEv2 в официальной документации не хватает некоторой информации / некоторые части не полностью задокументированы.

Класс NEVPNProtocolIKEv2 имеет два геттера, ikeSecurityAssociationParameters и childSecurityAssociationParameters. Приятно знать, что я могу получить эти данные, но есть ли способ их установить? Похоже, что по умолчанию iOS предлагает следующие алгоритмы для установления IKE SA: IKE:3DES_CBC/HMAC_SHA1_96/PRF_HMAC_SHA1/MODP_1024.

Поскольку 3DES считается слабым алгоритмом шифрования, SHA1 является устаревшей хэш-функцией, а Dh-группа 1024b также считается устаревшей, я хотел бы соответствующим образом изменить некоторые параметры.

Мой вопрос: возможно ли это с помощью персонального VPN или мне нужно перейти к провайдеру пакетного туннеля и использовать мою «индивидуальную» реализацию протокола VPN? Кроме того, почему Apple по умолчанию устанавливает такие слабые параметры?


person j3141592653589793238    schedule 25.01.2020    source источник
comment
Эй, не могли бы вы быть так любезны и оставить комментарий при голосовании против? Чего не хватает? Что случилось? Если вы хотите проголосовать против, пожалуйста, оставьте комментарий!   -  person j3141592653589793238    schedule 25.01.2020
comment
Вы пробовали устанавливать разные алгоритмы? Что случилось? Вы не устанавливаете новое значение ikeSecurityAssociationParameters - вы просто изменяете свойства существующего объекта, на который ссылается это свойство.   -  person Paulw11    schedule 26.01.2020
comment
Черт возьми, глупый, извини, я давно не занимался ООП, просто C ... Действительно, тогда этот вопрос заслуживает отрицательной оценки, ха-ха. Спасибо @ Paulw11   -  person j3141592653589793238    schedule 26.01.2020
comment
Я, кстати, не голосовал против. Это был не такой уж и плохой вопрос - решение не очевидно из документации Apple.   -  person Paulw11    schedule 26.01.2020
comment
Ха-ха, ты смешной, ну это правильно   -  person j3141592653589793238    schedule 26.01.2020
comment
Скорее всего, если у вас есть этот вопрос, то и другие тоже будут - в этом суть Stack Overflow.   -  person Paulw11    schedule 26.01.2020


Ответы (1)


Свойства ikeSecurityAssociationParameters и childSecurityAssociationParameters предназначены только для получения, но вы можете изменить свойства объектов, на которые ссылаются эти свойства, до установления соединения:

let protocol = NEVPNProtocolIKEv2()
protocol.ikeSecurityAssociationParameters.encryptionAlgorithm = .algorithmAES256GCM
person Paulw11    schedule 25.01.2020