Аутентификация Kerberos и безопасность домена

Аутентификация Kerberos и безопасность домена. Аутентификация Kerberos была разработана Массачусетским технологическим институтом Massachusetts Institute of Techology, MIT для реализации межкомпьютерной доверительной системы, способной проверять подлинность принципалов безопасности таких, как пользователь или компьютер через открытую небезопасную сеть. Kerberos не зависит от аутентификации, осуществляемой участвующими компьютерами, или сохранности данных при передаче по сети. По этой причине Kerberos идеальна для аутентификации через Интернет или в больших сетях.

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

Поскольку обе стороны сеанса Kerberos доверяют KDC, они доверяют друг другу. На практике это доверие реализовано как безопасный обмен зашифрованными ключами, которые подтверждают участникам взаимодействия идентификационные данные другой стороны.

Аутентификация Kerberos работает следующим образом. 1. Клиент запрашивает возможный набор идентификационных данных для данного сервера у KDC, отправляя запрос в простом текстовом формате, содержащий имя клиента идентификатор . 2. KDC ищет секретные ключи, как клиента, так и сервера в своей базе данных Active Directory и создает билет ticket, содержащий случайный ключ сеанса, текущее время KDC, заданное политикой время окончания, и, в зависимости от параметров, любую другую информацию, хранимую в базе данных.

В случае Windows 2000 в билете содержатся идентификаторы SID. 3. Билет зашифровывается с использованием секретного ключа клиента. 4. Создается второй билет, называемый билетом сеанса session ticket, содержащий ключ сеанса и необязательные данные аутентификации, которые зашифровываются с использованием секретного ключа сервера. 5. Соединенные билеты передаются обратно клиенту. Серверу аутентификации нет необходимости явным образом проверять подлинность клиента, потому что только обладающий полномочиями клиент может расшифровать билет. 6. После того как клиент получил в свое распоряжение допустимый билет и ключ сеанса для сервера, он инициирует взаимодействие непосредственно с сервером.

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

Удостоверения действуют только для одной попытки и не могут применяться повторно или использоваться в атаках воспроизведения, потому что они зависят от текущего времени. Удостоверение шифруется при помощи ключа сеанса и передается вместе с билетом сеанса серверу, у которого запрашивается служба. 7. Когда сервер получает билет от клиента, он расшифровывает билет сеанса при помощи общего секретного ключа сервера если существует более одного ключа, нужный ключ указывается в части билета в простой текстовой форме . 8. Затем сервер извлекает из билета ключ сеанса и использует его для расшифровки удостоверения.

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

Удостоверение используется для гарантии того, что взаимодействие недавнее и не является атакой на основе повторного запроса. Билеты могут повторно использоваться в течение периода, определяемого политикой безопасности домена, но не превышающего восьми часов. Клиенты кэшируют свои билеты сеанса в безопасном месте, расположенном в оперативной памяти, и уничтожают их по истечению срока действия. Kerberos сокращает предоставление билетов, во время первого контакта с клиентом предоставляя билет сеанса самому себе так же, как и запрашиваемому серверу.

КОС отвечает на этот первоначальный запрос - сначала предоставляя билет сеанса для последующих запросов о билетах, называемый Ticket-Granting Ticket билет на предоставление билетов, TGT , и затем - билет сеанса для запрашиваемого сервера. TGT устраняет потребность в дальнейшем проводимом Active Directory поиске клиента, осуществляя предварительную аутентификацию последующих запросов о билетах точно таким же способом, каким Kerberos осуществляет аутентификацию всех остальных запросов.

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