вторник, 2 июня 2009 г.

Windows 7: Kill The NTLM!!!

windows7 1 Да!!! Уничтожить NTLM, WINS & прочий хлам. Ну ладно, не уничтожить, ибо не всегда это возможно, но хотя бы ограничить их использование. И черт с ним, с WINS – жрать особо не просит, да и разговор про NTLM сейчас более интересен, ибо он – явный кандидат если и не на уничтожение, то, как минимум, на замену Kerberos’ом везде, где это только возможно. Почему? Все очень просто – он менее безопасен, чем Kerberos, а в ряде случаев и более производителен.

Разумеется, по-прежнему существуют случаи, в которых не обойтись без NTLM, такие как:

· сервер, к которому идет обращение, не находится в домене

· клиент или сервер не поддерживает Kerberos

· ну и еще пара случаев.

Тем не менее, как уже говорилось, лучше всего ограничить применение NTLM, где только это возможно, и для этого в Windows 7 и Windows Server 2008 R2 есть ряд улучшений. Улучшения эти не то чтобы позволяют убрать NTLM оттуда, где раньше он был необходим (рабочие группы, обращение к хосту не по имени, и т.д.), но отследить те случаи, когда он используется там, где не нужен, и где можно его заменить на Kerberos, то есть в доменном окружении, а также усилить использование NTLM там, где без него обойтись невозможно.

Для этого в новых системах предусмотрены следующие улучшения:

1) Аудит NTLM

2) Задание порядка поиска в лесу AD

3) Политики блокирования NTLM

Кроме того, выпущена очередная версия так называемого Application Verifier, который может потенциально выявить приложения, которые неправильно используют аутентификацию и, соответственно, если Вы можете влиять на работу этих приложений, то Вы можете что-то исправить. Но эта штука уже больше для разработчиков, чем для администраторов. Впрочем, если Ваш разработчик будет настаивать на том, что «моя программа безупречна, это у тебя все плохо настроено», то как раз самое то средство для доказательства своей правоты.

Более подробно об улучшениях в данной сфере я расскажу в одной из следующих статей.

8 комментариев:

Vadims Podāns комментирует...

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

Ruslan V. Karmanov комментирует...

Уже пробовал эти политики в действии. Могу сказать лишь, что уход от NTLM в реальной ситуации практически невозможен, да и не особо нужен. Задействован он в крайне большом числе случаев (например, именно по NTLM авторизится DNS-сервер в запускающейся AD - т.е. без NTLM на DC не стартует DNS, притом никак), и уязвимостей не предоставляет никаких. Даже более того - если оставить лишь NTLMv2, то стойкость системы будет выше, чем с "чистым" krb. А в случае использования krb-only фич вида делегирования, в любом случае активируется krb - т.е. опять же, NTLM особо не мешает.

KomatoZo комментирует...

Ну то ли я писать не умею, то ли вы, ребята, плохо читаете ;)
Итак:
>>прошу прощения, но это, мягко говоря, неудачный вброс на флейм. Аргументов пока ноль, но криков во много раз больше
Вадим, ты опять за меня решаешь, о чем мне писать. Я могу специально для тебя добавлять теги 100, 200, 300, если хочешь. Этот опус – явные сто, в котором и не должно быть для тебя ничего развлекательного, ибо ты и так все это знаешь. =)
>>Реквестирую попунктно показать, чем же NTLM так плох
Раз реквестируешь, то расскажу в следующей статье по теме, хотя повторюсь: имхо, ты и без меня все знаешь.
>> заодно показать, как вы без него будете жить. А очень много где не сможете
Процитирую сам себя: «Разумеется, по-прежнему существуют случаи, в которых не обойтись без NTLM, такие как…»
То есть, я сразу сказал, что не везде это возможно. То, что я акцентировал внимание на том, что «не везде» вместо «почти везде не» - это моё личное осознанное решение. Можно? =)
>> Kerberos совсем не панацея во многих случаях
Я где-то сказал, что панацея? Цитату, пожалуйста – я поправлюсь.
Руслан, тебя даже цитировать не буду – все правильно, только причем тут моя статья. У меня есть случаи, когда мне мешает:
1) Использование NTLM
2) Невозможность нормально продиагностировать его использование
3) Невозможность прописать политики вида «вот сюда строго по Krb, а сюда как хочешь»
А пойнт статьи был в том, что теперь сделан еще один шаг (и не один – например, в Home Group pku2u) для того, чтобы можно было настроить как безопаснее, а не «как получилось».

Vadims Podāns комментирует...

> Вадим, ты опять за меня решаешь, о чем мне писать.

не решаю, просто заголовок такой получился.

> Раз реквестируешь, то расскажу в следующей статье по теме, хотя повторюсь: имхо, ты и без меня все знаешь.

хочется понадеяться, что будет что-то, чего я ещё не знаю :)

> «Разумеется, по-прежнему существуют случаи, в которых не обойтись без NTLM, такие как…»

если бы только эти случаи были единичные. Но когда эти ситуации присуствтуют массово (взять тот же DNS или VPN на RRAS) и могут очень сильно нам осложнить жизнь, то одного желания избавиться от NTLM как класса будет мало.

> 1) Использование NTLM

это уже интересно :)

> 2) Невозможность нормально продиагностировать его использование

тоже интересно (а зачем? :) )

> 3) Невозможность прописать политики вида «вот сюда строго по Krb, а сюда как хочешь»

а это ещё интересней будет. Хотя, прозреваю, что IPSec тут сможет решить львиную часть проблем.

вобщем, пока всё очень туманно, поэтому жду продолжения. И, если это возможно, развернуть, почему надо душить NTLM и продвигать Kerberos (т.е. показать, чем плох первый и чем православен второй). Т.е. чтобы все читатели смогли бы понять аргументацию такого заголовка статьи.

artem комментирует...

Господа, чего вы спорите? Всё очень просто!

The benefits of Kerberos over NTLM are many—these are just a few:

1) ...
2) ...
3) NTLM is a four-letter word. Kerberos has twice as many letters.
4) ...


А если серьёзно — http://blogs.technet.com/authentication/archive/2006/04/07/ntlm-s-time-has-passed.aspx

Там много доводов. (То есть, больше, чем я встречал в любом другом месте. Но это не значит, что других доводов больше нету). Все они более ими менее спорные. Но главное — что оно даёт пищу для размышления.

Vadims Podāns комментирует...

> 3) NTLM is a four-letter word. Kerberos has twice as many letters.

срыв покровов засчитан!

Vadims Podāns комментирует...

а можно поинтересоваться, когда будет продолжение?

KomatoZo комментирует...

Продолжение будет, когда я найду на него время - я в отпуске и тратиться на блог пока не особо хочется =)
Впрочем, если ты думаешь, что в продолжении будет написано о срывании покровов, то ты заблуждаешься - это будет более глубокий взгляд на то, что есть для управления аутентификацией в W7.
Если есть вопросы после прочтения ссылки, которую Артем дал (Спасибо, Артем) - велкам в почту.