Я использую eap-mschapv2
как метод аутентификации. Требуется хранить пароли в виде обычного текста в ipsec.secrets
. Т.е. У меня есть такой пароль:
user : EAP "mypassword"
Я хочу использовать что-то вроде этого:
user : EAP "34819d7beeabb9260a5c854bc85b3e44"
Можно ли изменить метод аутентификации, чтобы я хранил на сервере только хэши, а клиенты могли бы аутентифицироваться с помощью паролей в виде простого текста?
Классические методы EAP на основе запроса-ответа (и, в частности, поддерживаемые strongSwan) требуют доступа к паролю открытого текста для проверки ответа клиента (EAP-MSCHAPv2 на самом деле является исключением, см. Ниже). Существуют схемы аутентификации запрос-ответ на основе пароля для IKEv2, которые не требуют хранения пароля в виде открытого текста (на основе подтверждения пароля с нулевым разглашением), например AugPAKE (RFC 6628) или PACE (RFC 6631) и некоторые методы EAP, например EAP-EKE (RFC 6124), разрешите и это, но strongSwan в настоящее время не поддерживает ни один из них.
Альтернативой является использование EAP-GTC, который передает пароль в виде открытого текста, который позволяет серверу проверять пароль по хешам (например, используя PAM). Проблема в том, что большинство клиентов не поддерживают этот метод.
Для EAP-MSCHAPv2 на самом деле можно сохранить пароль как NT-Hash (MD4-хэш пароля в кодировке UTF16), см. Документацию к Ключевое слово NTLM для ipsec.secrets. Но это не сильно повышает безопасность.