Ноу Інти, лекція, аутентифікація
Інтегрована аутентифікація Windows
Інтегрована аутентифікація Windows є найбільш безпечним методом аутентифікації, проте вона доступна тільки в Internet Explorer. Цей тип аутентифікації раніше був відомий як аутентифікація NTLM і аутентифікація Windows NT питання / відповідь. При інтегрованої аутентифікації Windows браузер клієнта перевіряє сам себе на сервері за допомогою криптографічного обміну даними ..
Кілька слів про Microsoft Negotiate
Microsoft Negotiate є пакет, який обслуговує інтерфейс між різними постачальниками послуг з підтримки безпеки. Він може здійснювати вибір між різними пакетами аутентифікації. IIS використовує пакет Negotiate для аутентифікації, і в цьому випадку відбувається вибір протоколу Kerberos або протоколу NTLM. В даний пакет також додана підтримка майбутніх аутентифікаційних пакетів. що є перевагою Negotiate. За замовчуванням Negotiate вибирає Kerberos як найбільш безпечний протокол. Якщо з якої-небудь причини протокол Kerberos недоступний, то Negotiate повертається до використання NTLM.
аутентифікація NTLM
NTLM являє собою розширену версію старого протоколу аутентифікації LM (LAN Manager). NTLM працює за допомогою питань / відповідей між сервером і клієнтом без передачі пароля користувача через мережу у відкритому вигляді. Клієнт повинен підтвердити те, що він знає пароль користувача, за допомогою відправки зашифрованого хеша.
NTLM функціонує наступним чином.
- Користувач вказує ім'я користувача, пароль і ім'я домену при вході на комп'ютер-клієнт.
- Клієнт створює хеш даного пароля і видаляє оригінал.
- Клієнт відправляє серверу ім'я користувача у відкритому вигляді.
- Сервер відправляє клієнту 16-бітний фрагмент випадкових даних.
- Клієнт шифрує цей фрагмент, а також хеш пароля користувача і передає їх на сервер.
- Сервер передає ім'я користувача, випадковий фрагмент даних і відповідь клієнта на контролер домену.
- Контролер домену шифрує відрізок випадкових даних разом зі своїм власним хешем пароля користувача, після чого порівнює їх з елементами, надісланими сервером.
- Якщо значення збігаються, контролер домену повідомляє сервер про успішне завершення аутентифікації.
- Якщо значення або ім'я користувача не збігаються, контролер домену повідомляє про це сервер, який передає клієнту відповідне повідомлення. Після цього браузер клієнта запитує у користувача аутентифікаційні дані.
аутентифікація Kerberos
У давньогрецькій міфології Керберос - це казкова триголовий собака, яка охороняла підземний світ від людей. В даний час терміном Kerberos називається протокол безпечної аутентифікації для доступу до ресурсів. Kerberos грунтується на аутентифікації з секретним ключем, при якій клієнт і сервер використовують один і той же ключ для шифрування і розшифровки. Клієнт доводить знання ключа за допомогою шифрування повідомлення, а сервер доводить знання ключа за допомогою розшифровки цього повідомлення. Потім сервер бере частину повідомлення, шифрує її і відправляє клієнту. При збереженні цілісності повідомлення результат аутентифікації буде позитивним.
Робота Kerberos грунтується на центральному сервері, званому Key Distribution Center (KDC) (Центр розподілу ключів), який надає всі необхідні ключі. KDC випускає так звані квитки TGT (Ticket-Granting Tickets) ( "Квитки для отримання квитків") і надає їх клієнтам, що подає запит доступ до ресурсу на сервері.
Нижче показаний процес отримання клієнтом початкового квитка TGT.
Тепер у клієнта є TGT, і він може використовувати його для отримання квитків на доступ до ресурсів. Ось як це відбувається.
- Клієнт запитує у KDC квиток на доступ до ресурсів на сервері. Клієнт надає свій TGT центру KDC разом з ім'ям потрібного ресурсу і аутентифікаційних повідомленням, зашифрованим на сеансовому ключі входу.
- KDC розшифровує TGT за допомогою еталонного ключа, витягує сеансовий ключ входу і використовує його для розшифровки аутентификационного повідомлення. Якщо воно збігається з еталоном, справжність клієнта підтверджується.
- KDC створює сеансовий ключ служби для клієнта, призначений для подання сервера при подачі запитів на ресурси, і шифрує сеансовий ключ служби на сеансовому ключі входу клієнта.
- KDC шифрує сеансовий ключ входу з використання еталонного ключа сервера, в результаті чого створюється квиток.
- KDC передає клієнту обидва фрагмента аутентифікаційних даних клієнта, який розшифровує сеансовий ключ за допомогою свого сеансового ключа входу і зберігає сеансовий ключ служби і квиток в своєму кеші.
Тепер у клієнта є квиток, за допомогою якого він отримує доступ до ресурсів на сервері.
- Клієнт передає серверу сеансовий квиток і аутентифікаційних повідомлення, зашифроване на сеансовому ключі служби.
- Сервер розшифровує сеансовий квиток і перевіряє тимчасової штамп клієнта на запиті (значення штампа має перебувати в п'ятихвилинній інтервалі власного часу сервера). Потім сервер отримує з даного квитка сеансовий ключ.
- Сервер шифрує тимчасової штамп сеансового квитка на сеансовому ключі, після чого відправляє його клієнту.
- Клієнт розшифровує повідомлення і порівнює тимчасової штамп з оригіналом. Якщо все збігається, процес аутентифікації вважається успішно завершеним.
Це дуже складний процес, але він забезпечує достовірність кожної особи, що встановлює з'єднання. Очевидно, що KDC грає важливу роль в даному процесі, тому необхідно забезпечити безпеку центру KDC.