Коллега только что продемонстрировал мне, что учетные записи в нашем тестовом AD могли проходить аутентификацию при замене каждого aсимвола в их samAccountName на датский символ å(ASCII 134 / å).
Например, пользователь <domain>\aaa
может аутентифицироваться как ååå
.
Я попытался воспроизвести это в недавно подготовленном W2K12R2 AD (один сервер, все стандартные значения), и он тоже работает там. Я создал учетную запись aaa
(никогда не касаясь буквы åв процессе, так что ничего не содержит å
) и запустил:
PS C: \ Users \ Администратор> runas / user: рабочий блокнот
Введите пароль для входа:
Попытка запустить блокнот как пользователь "DEV-DLI \ ååå" ...
PS C: \ Users \ Администратор>
что вызвало запуск блокнота, работающего как aaa
.
То же самое относится oи к датскому персонажу ø, в то время как последний датский специальный символ æне соответствует ни одному другому персонажу. Когда пользователь aaa
в AD, попытка создать пользователя с samAccountName ååå
не удастся, сообщив вам об этом The user logon name you have chosen is already in use (...)
.
Я гуглил как сумасшедший, но не смог выяснить, что происходит. У кого-нибудь есть намеки на то, почему это работает?
å
не существует в ASCII.
man ascii
: ASCII is the American Standard Code for Information Interchange. It is a 7-bit code. Many 8-bit codes (e.g., ISO 8859-1) contain ASCII as their lower half. The international counterpart of ASCII is known as ISO 646-IRV.
Похоже, å
ISO 8859-1 # 229 и ø
ISO 8859-1 # 248.
æ
должен соответствоватьae
(буква,a
за которой следует букваe
), FWIW.