Как хранить хэши в ipsec.secrets при использовании Strongswan с eap-mschapv2?
Я использую eap-mschapv2
в качестве метода аутентификации. Требуется хранить простые текстовые пароли в ipsec.secrets
, Т.е. у меня есть такой пароль:
user : EAP "mypassword"
Я хочу использовать что-то вроде этого:
user : EAP "34819d7beeabb9260a5c854bc85b3e44"
Можно ли изменить метод аутентификации, чтобы я мог хранить только хэши на сервере, и клиенты могли бы аутентифицировать себя с помощью простых текстовых паролей?
1 ответ
Классические методы 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. Но это не сильно повышает безопасность.