7.5. Алгоритмы аутентификации, используемые в операционных системах Windows

В Windows NT 4.0 для аутентификации используется алгоритм NTLM (NT LAN Manager Challenge and Response Algorithm).

Согласно этому алгоритму системе, кото­рая пытается получить доступ, отправляется так называемый вызов (challenge), пред­ставляющий собой строку из случайных символов. Клиент NT использует введенный пользователем пароль как часть данных, применяемых для однонаправленного шиф­рования вызова, и предоставляет серверу полученный отзыв (response).

Сервер, знаю­щий, какие данные содержатся в строке вызова, а также пароль пользователя, может удостовериться в том, что пользователь действительно является тем, за кого себя вы­дает.

Таким образом, собственно пароль пользователя никогда не пересылается по се­ти ни в открытом, ни в зашифрованном виде.

Для того чтобы позволить пользователям систем Windows 9x проходить аутентифи­кацию на серверах NT, Windows NT поддерживает также устаревший алгоритм LM (LAN Manager Challenge and Response Algorithm). Алгоритм LM подобен алгоритму NTLM, но является менее безопасным.

Windows 2000 поддерживает оба эти алгоритма для аутентификации клиентов нижнего уровня (Windows 9x, Windows NT), а также может применять алгоритм NTLM как вспомогательный для аутентификации клиентов Windows 2000. Однако используемым по умолчанию алгоритмом аутентификации в Windows 2000 является Kerberos.

Kerberos – популярный алгоритм аутентификации в распределенных компьютерных системах, который получил всеобщее признание как безопасный алго­ритм аутентификации. Он обеспечивает взаимную и надежную аутентификацию клиен­тов и серверов посредством обмена рядом сообщений, содержащих запросы и ответы на эти запросы, а также путем нескольких проверок по разным критериям.

Kerberos обла­дает такими преимуществами перед другими алгоритмами аутентификации, как исполь­зование более безопасной системы аутентификации, поддержка возможности взаимной аутентификации и прозрачное взаимодействие с любыми другими операционными сис­темами, в которых для аутентификации применяется Kerberos V5.

Конечно, идеальных систем не существует. Во многих системах (NTLM, LM и Kerberos) для аутентификации достаточно предоставить лишь идентификатор пользо­вателя и пароль. Если злоумышленнику удастся похитить, угадать или каким-либо другим образом получить эту информацию, сервер не сможет отличить его от легаль­ного пользователя. Следовательно, надежность любой системы аутентификации опре­деляется надежностью ее самого слабого звена. В схеме, основанной на применении идентификатора пользователя и пароля, таким звеном является пароль. Если пользо­ватели записывают свои пароли, сообщают их своим коллегам или употребляют про­стые, легко угадываемые пароли, даже самая сложная система защиты будет находить­ся под постоянной угрозой взлома.

Тем не менее, в Kerberos предусмотрен ряд мер, которые делают введенную ин­формацию о пароле более защищенной, чем в других алгоритмах. В частности, имеет­ся в виду взаимная аутентификация, так как она значительно усложняет возможность создания подложного сервера с целью получения из запроса клиента информации о пароле или для повторного использования перехваченных пакетов, которые могут со­держать запросы на аутентификацию.