Я использую 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. Но это не сильно повышает безопасность.