RADIUS сервер из роли NPS в Windows Server 2016 и пароли пользователей с кириллицей

RADIUS server from the NPS role in Windows Server 2016 does not comply with RFC 2865 and non-ASCII user passwords with Cyrillic do not workВ ходе тестирования аутентификации RADIUS на платах управления ИБП ПСУ Спутник, обнаружили одну интересную проблему. У одного из проверяемых пользователей не отрабатывала аутентификация при том, что у других подопытных пользователей данной проблемы не наблюдалось.  После допроса пользователя с пристрастием выяснилось, что его текущий доменный пароль содержит кириллицу. Так как предметом нашего исследования был функционал ПСУ Спутник, мы предположили, что источником проблемы может быть реализация RADIUS в ПСУ. Специалисты тех.поддержки Инматикс уверили нас в том, что проблема не в ПСУ. Для проверки мы попробовали настроить аутентификацию RADIUS на плате APC NMC2 и там проблема воспроизвелась. Таким образом мы пришли к выводу, что сам используемый в нашем случае RADIUS сервер из роли NPS в составе Windows Server 2016 не обрабатывает корректно пароли с кириллицей.

Поиск информации о каких-либо явно продекларированных ограничениях использования паролей в NPS RADIUS в онлайн документации Microsoft оказался безрезультатным. Был лишь найден документ "RADIUS Authentication, Authorization, and Accounting" где беззастенчиво заявлено, что, Microsoft NPS RADIUS полностью поддерживает RFC 2865. Это, как я понимаю, соответствует протоколу RADIUS v2, где поддерживаются длинные пароли (более 16 символов как было в RADIUS v1) и пароль должен кодироваться в UTF-8, что теоретически позволяет использовать в пароле кириллицу и прочие шалости.

На сторонних интернет ресурсах можно найти информацию о том, что мы не единственные кто столкнулся с этой проблемой. Например в статье "RADIUS authentication fails on Microsoft Network Policy Server (NPS)" можно найти заявление о том, что Microsoft NPS RADIUS на самом деле использует не UTF-8, как это предполагается в RFC 2865, а Extended ASCII:

NPS does not encode RADIUS password in UTF-8 as expected by RFC286.
NPS is encoding password in EASCII.

Ещё одно подтверждение этому можно найти в статье "KB44336 - Authentication fails against Windows NPS (Radius) server with Error invalid credentials when the password contains Umlaut character(s)".

Хотя, например, в документе "Network Policy Server Best Practices" утверждается обратное:

Network Policy Server (NPS) does not support the use of the Extended ASCII characters within passwords

На этом фоне может возникнуть подозрение, что используется обычная ASCII, где допускается только латиница.

В общем, похоже, что Microsoft в очередной раз "отличились" в своём умении отходить от стандартов и создавать тем самым проблемы, всем кто прикасается к их продуктам.

Добавить комментарий