Интегрираният IIS модул за удостоверяване на Windows реализира два основни протокола за удостоверяване: NTLM и протокол за удостоверяване на Kerberos. Той призовава три различни доставчици на услуги за сигурност (SSP): Kerberos, NTLM и договаряне. Тези SSP и протоколи за удостоверяване обикновено са налични и се използват в мрежите на Windows. NTLM реализира NTLM удостоверяване, а Kerberos реализира Kerberos v5 удостоверяване. Преговарянето е различно, защото не поддържа никакви протоколи за удостоверяване. Тъй като интегрираната автентификация на Windows включва няколко протокола за удостоверяване, тя се нуждае от фаза на договаряне, преди да може да се извърши действителното удостоверяване между уеб браузъра и сървъра. По време на тази фаза на договаряне преговарящият SSP определя кой протокол за удостоверяване да се използва между уеб браузъра и сървъра.

И двата протокола са изключително защитени и могат да удостоверяват клиенти, без да предават пароли по мрежата под каквато и да е форма, но те са ограничени. Удостоверяването на NTLM не работи в HTTP прокси сървъри, тъй като за да функционира правилно, се изисква връзка от точка до точка между уеб браузъра и сървъра. Удостоверяването на Kerberos е достъпно само в браузъри IE 5.0 и уеб сървъри IIS 5.0 или по-нова версия. Работи само на машини, работещи под Windows 2000 или по-нова версия и изисква някои допълнителни портове да бъдат отворени в защитните стени. NTLM не е толкова сигурен, колкото Kerberos, така че винаги се препоръчва да използвате Kerberos възможно най-много. Нека разгледаме добре двете.

Какво е NTLM?

NT LAN Manager е протокол за удостоверяване, базиран на предизвикателство-отговор, използван от компютри с Windows, които не са членове на домейн Active Directory. Клиентът инициира удостоверяването чрез механизъм за предизвикателство / отговор въз основа на тристранно ръкостискане между клиента и сървъра. Клиентът започва комуникацията, като изпраща съобщение до сървъра, уточнява възможностите му за криптиране и съдържа името на акаунта на потребителя. Сървърът генерира 64-битова случайна стойност, наречена nonce и отговаря на заявката на клиента, като връща това понятие, което съдържа информация за неговите собствени възможности. Този отговор се нарича предизвикателство. След това клиентът използва низ за предизвикателство и паролата си, за да изчисли отговор, който предава на сървъра. След това сървърът валидира отговора, получен от клиента и го сравнява с NTLM отговора. Ако двете стойности са идентични, удостоверяването е успешно.

Какво е Kerberos?

Kerberos е протокол за удостоверяване, базиран на билети, използван от компютри с Windows, които са членове на домейн в Active Directory. Удостоверяването на Kerberos е най-добрият метод за вътрешни инсталации на IIS. Удостоверяването на Kerberos v5 е проектирано в MIT и е дефинирано в RFC 1510. Windows 2000 и по-късно реализира Kerberos, когато се активира Active Directory. Най-добрата част е, че намалява броя на паролите, които всеки потребител трябва да запомни, за да използва цяла мрежа до една - паролата Kerberos. В допълнение, той включва криптиране и цялостност на съобщенията, за да гарантира, че чувствителните данни за удостоверяване никога не се изпращат по мрежата ясно. Системата Kerberos работи чрез набор от централизирани ключови центрове за разпространение или KDC. Всеки KDC съдържа база данни с потребителски имена и пароли както за потребители, така и за услуги с активиран Kerberos.

Разлика между NTLM и Kerberos

Протокол на NTLM и Kerberos

- NTLM е протокол за удостоверяване въз основа на предизвикателство и отговор, използван от компютри с Windows, които не са членове на домейн в Active Directory. Клиентът инициира удостоверяването чрез механизъм за предизвикателство / отговор въз основа на тристранно ръкостискане между клиента и сървъра. Kerberos, от друга страна, е протокол за удостоверяване на базата на билети, който работи само на машини, работещи под Windows 2000 или по-нова версия и работещи в домейн на Active Directory. И двата протокола за удостоверяване са базирани на симетрична ключова криптография.

поддържа

- Една от основните разлики между двата протокола за автентификация е, че Kerberos поддържа както самоличност, така и делегиране, докато NTLM поддържа само представянето. По същество делегирането е същата концепция като представянето, което включва просто извършване на действия от името на идентичността на клиента. Олицетворението обаче работи само в рамките на обхвата на една машина, докато делегирането работи и в цялата мрежа. Това означава, че билетът за удостоверяване на самоличността на оригиналния клиент може да бъде предаден на друг сървър в мрежата, ако първоначално достъпният сървър има разрешение за това.

Сигурност

 - Въпреки че и двата протокола за удостоверяване са защитени, NTLM не е толкова сигурен, колкото Kerberos, тъй като за да функционира правилно, се изисква връзка от точка до точка между уеб браузъра и сървъра. Kerberos е по-сигурен, защото никога не предава пароли по мрежата на ясно. Той е уникален с използването на билети, които доказват самоличността на потребителя на даден сървър, без да изпраща пароли по мрежата или кеширане на пароли на твърдия диск на местния потребител. Удостоверяването на Kerberos е най-добрият метод за вътрешни инсталации на IIS (уебсайтове, използвани само от клиенти на домейн).

заверка

- Едно от основните предимства на Kerberos пред NTLM е, че Kerberos предлага взаимна идентификация и е насочен към модел клиент-сървър, което означава, че и автентичността на клиента и сървъра са потвърдени. Както услугата, така и клиентът трябва да работят на Windows 2000 или по-нова версия, в противен случай автентификацията ще се провали. За разлика от NTLM, който включва само IIS7 сървъра и клиента, Kerberos удостоверяването включва и контролер на домейн Active Directory.

NTLM срещу Kerberos: Сравнителна диаграма

Обобщение на NTLM Vs. Kerberos

Въпреки че и двата протокола могат да удостоверяват клиенти без да предават пароли по мрежата под каквато и да е форма, NTLM удостоверява клиентите чрез механизъм за предизвикателство / отговор, който се основава на тристранно ръкостискане между клиента и сървъра. Kerberos, от друга страна, е протокол за автентификация на базата на билети, който е по-сигурен от NTLM и поддържа взаимна проверка на автентичността, което означава, че и автентичността на клиента и сървъра са проверени. В допълнение, Kerberos поддържа както представянето, така и делегирането, докато NTLM поддържа само представянето. NTLM не е толкова сигурен, колкото Kerberos, така че винаги се препоръчва да използвате Kerberos възможно най-много.

Препратки

  • Кредит за изображение: https://upload.wikimedia.org/wikipedia/commons/thumb/4/4e/Kerberos.svg/500px-Kerberos.svg.png
  • Кредит за изображение: https://commons.wikimedia.org/wiki/File:Metasploit-27-cainsuccesshalflm.png
  • ЛеБлан, Дейвид и Майкъл Хауърд. Писане на сигурен код. Лондон, Обединеното кралство: Pearson Education, 2002. Печат
  • Макдоналд, Матей и Марио Шпуста. Pro Asp.Net 2.0 в C # 2005. Hoboken, Ню Джърси: John Wiley & Sons, 2005. Печат
  • Clercq, Ян Де. Инфраструктури за сигурност на Windows Server 2003: Основни функции за защита. Амстердам, Холандия: Elsevier, 2004. Печат