Интегрираният към 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 възможно най-много. Нека разгледаме добре двете.
NT LAN Manager е протокол за удостоверяване въз основа на предизвикателство и отговор, използван от компютри с Windows, които не са членове на домейн Active Directory. Клиентът инициира удостоверяването чрез механизъм за предизвикателство / отговор въз основа на тристранно ръкостискане между клиента и сървъра. Клиентът стартира комуникацията, като изпраща съобщение до сървъра, уточнява възможностите му за криптиране и съдържа името на акаунта на потребителя. Сървърът генерира 64-битова случайна стойност, наречена nonce и отговаря на заявката на клиента, като връща това понятие, което съдържа информация за неговите собствени възможности. Този отговор се нарича предизвикателство. След това клиентът използва низ за предизвикателство и паролата си, за да изчисли отговор, който предава на сървъра. След това сървърът валидира отговора, получен от клиента и го сравнява с NTLM отговора. Ако двете стойности са идентични, удостоверяването е успешно.
Kerberos е протокол за удостоверяване на билети, използван от компютри с Windows, които са членове на домейн в Active Directory. Удостоверяването на Kerberos е най-добрият метод за вътрешни IIS инсталации. Удостоверяването на Kerberos v5 е проектирано в MIT и е дефинирано в RFC 1510. Windows 2000 и по-късно реализира Kerberos, когато се активира Active Directory. Най-добрата част е, че намалява броя на паролите, които всеки потребител трябва да запамети, за да използва цяла мрежа до една - паролата Kerberos. В допълнение, тя включва криптиране и цялостност на съобщенията, за да гарантира, че чувствителните данни за удостоверяване никога не се изпращат по мрежата ясно. Системата Kerberos работи чрез набор от централизирани ключови центрове за разпространение или KDC. Всеки KDC съдържа база данни с потребителски имена и пароли както за потребителите, така и за услугите с 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 и поддържа взаимно удостоверяване, което означава, че и автентичността на клиента и сървъра са проверени. В допълнение, Kerberos поддържа както представянето, така и делегирането, докато NTLM поддържа само представянето. NTLM не е толкова сигурен, колкото Kerberos, така че винаги се препоръчва да използвате Kerberos възможно най-много.