Путешествие на ракете Kerberos Билетики, пожалуйста… Kerberos Что это?




НазваниеПутешествие на ракете Kerberos Билетики, пожалуйста… Kerberos Что это?
Дата конвертации05.05.2013
Размер445 b.
ТипПрезентации


Путешествие на ракете Kerberos

Билетики, пожалуйста…

Kerberos Что это?

  • Active Directory использует Kerberos, когда может

  • Отличается от LM/NTLM/NTLMv2, основан на стандартах RFC 1510 и других

  • Имеет собственный словарь терминов: клиент, сервис, пре-аутентификатор, аутентификатор, учётные данные, ключ сессии, билет, Ticket Granting Ticket, Service Ticket, Key Distribution Center, Authentication Service, Ticket Granting Service



Kerberos Вид из космоса

  • Упрощённо, это службы, работающие на контроллере домена

  • Понимает две вещи (“Principals”): пользователи и сервисы (такие как файловые службы на сервере)

  • Когда пользователь хочет получить сервис, он запрашивает билет на этот сервис

  • Затем, пользователь предъявляет сервису этот билет, когда хочет им воспользоваться



Головы Kerberos

  • Kerberos имеет три головы

    • Клиенты или “User Principals”: учётные записи пользователей; каждая имеет свой пароль и имя – “UPN”
    • Сервисы или “Service Principals”: нечто к чему мы хотим получить доступ; это может быть просто сервер или его отдельный сервис (файлы/печать, SQL, Exchange); каждый сервис имеет своё имя – “SPN” и пароль
    • Key Distribution Center (KDC) – контроллер домена, сервер, который знает все пароли пользователей и сервисов. Имеет собственный пароль, известный только ему самому (учётная запись “krbtgt”) и другим контроллерам в домене.
  • Отложим пароли на некоторое время в сторону; а сейчас…



Kerberos в картинках Встречайте наши головы…



Kerberos в картинках Для выполнения этого…



Kerberos Два вида билетов, две службы

  • Вначале, мы представляем себя KDC, входя в систему; чтоб выполнять вход только один раз, мы просим KDC предоставить “билет на KDC”… и это Ticket Granting Ticket

  • Он предоставляется частью KDC, которая называется “Authentication Service” или AS

  • Получив TGT, мы можем предъявить его KDC и сказать: “Помнишь меня? Теперь мне нужен Service Ticket к такому-то сервису…”

  • Service ticket выдаёт другая часть KDC, которая называется “Ticket Granting Service” или TGS



Как это размещается в DC?

  • Key Distribution Center = Authentication Service + Ticket Granting Service

  • KDC = AS + TGS

  • KDC, AS, TGS – всего лишь часть ролей, которые выполняет контроллер

  • Тем не менее, мы не можем увидеть AS, TGS и другие службы в Task Manager; они выполняются внутри процесса LSASS



Kerberos Почему два вида билетов?

  • Ticket Granting Ticket как и Service Ticket аутентифицирует нас сервису

  • Но обычно, всё заканчивается всего одним TGT и множеством ST

  • Причина наличия двух видов билетов: Kerberos защищает каждый билет, шифруя часть его данных с помощью пароля или ключа



Kerberos Ключевые причины почему Kerberos лучше

  • Множество билетов подразумевает множество шифрования информации с помощью нашего пароля – это значит, что злоумышленник будет иметь множество данных для вычисления пароля

  • Итак – и это очень важный момент – то, что предоставляет Kerberos в TGT, по сути дела, является “паролем на день”

  • Информация, относящаяся к Service ticket, шифруется с помощью этого дневного пароля; только относящаяся к TGT информация шифруется с помощью вашего пароля – одна транзакция в день!



Kerberos в картинках Сперва, Тому нужен Ticket Granting Ticket



К слову о Vista и выше

  • Если взглянуть на сетевой трафик, когда Vista пытается выполнить вход, мы увидим, что запрос TGT в первый раз всегда завершается неудачно.

  • Vista сознательно отправляет “плохой” пакет, чтобы определить возможность использования AES вместо RC4-HMAC – возвращаемое сообщение об ошибке “KDC_ERR_PREAUTH_REQUIRED” содержит в себе список возможных алгоритмов



Итак…

  • Том нажал Ctrl + Alt + Del, ввёл свои имя и пароль и получил TGT

  • Но он всё ещё не вошёл на свой компьютер

  • Ему нужен доступ к его рабочей станции

  • Он получит его с помощью Service Ticket

  • Итак, это следующая вещь, которую ему нужно попросить у Ticket Granting Service



Kerberos в картинках Далее, Том получает Service Ticket



Итак…

  • Том вошёл на свою рабочую станцию

  • Он получил TGT, который использует для запроса Service Ticket у Ticket Granting Service

  • Он получил Service Ticket к своей рабочей станции

  • Эти “билеты”, на самом деле, всего лишь данные в памяти компьютера TOMSPC

  • Том может посмотреть их с помощью kerbtray или klist, входящих в Resource Kit

  • klist теперь встроена в 2008



Вывод утилиты klist

C:\>klist tickets

Cached Tickets: (2)

Server: krbtgt/STANKY.RU@STANKY.RU

KerbTicket Encryption Type: RSADSI RC4-HMAC(NT)

End Time: 5/11/2010 22:10:08

Renew Time: 5/18/2010 12:10:08

Server: host/tomspc.stanky.ru@STANKY.RU

KerbTicket Encryption Type: RSADSI RC4-HMAC(NT)

End Time: 5/11/2010 22:10:08

Renew Time: 5/18/2010 12:10:08

На принт-сервер…

  • Точно таким же образом, Том может получить билет к службе печати на PS (в klist это отображается, как cifs/ps.stanky.ru…)

  • Он предъявляет TGS свой TGT

  • Контроллер проверяет TGT и выдаёт Тому Service Ticket, идентифицирующий его на PS

  • Теперь у Тома три билета



Том и его билеты



Звучит хорошо, но безопасно ли? Время погрузиться в детали

  • Всё это звучит хорошо… Но как мы это обезопасим?

  • Почему злоумышленник не может перехватить билеты, которые говорят “Привет служба печати PS, я Том”?

  • Ключ – это хорошо… Ключи – это следующая часть нашего Марлезонского балета



Безопасная идентификация

  • Мы хотим иметь возможность идентифицировать друг-друга через небезопасную сеть; мы можем сделать это, если:

    • Договоримся об алгоритме шифрования
    • Договоримся о секретном ключе
    • Договоримся о данных для коммуникации
  • Например: я говорю, что вы можете узнать меня по приветственному сообщению, которое вы расшифровываете DES’ом и 56-ти битным ключом, который знаем только я и вы, и если оно гласит “Текущее время X”, тогда я, действительно, могу безопасно идентифицировать себя перед вами, скажем, через интернет



Kerberos и AD…

  • Мы договариваемся:

    • Алгоритм шифрования: RC4-HMAC
    • Общий секретный ключ: мы позволяем KDC создать произвольный 128-ми разрядный ключ и передать его только нам
    • Данные распознавания: блок данных, называемый “аутентификатор”
  • Когда “аутентификатор” расшифрован, он должен доказывать другой стороне, что мы знаем общий секретный ключ

  • *Server 2008 позволяет использовать AES (ура)!



Общие ключи так же полезны…

  • Однажды получив общий ключ, который больше ни кто не знает, клиент и сервер могут выполнять другие вещи, помимо аутентификации, такие как:

    • Подписывание SMB
    • Безопасные (шифрованные) сессии
    • Обмен ключами IPsec для AH или ESP (подписывание или шифрование)
    • Любые другие формы подписывания или шифрования


Ещё одно требование к ключам

  • Было бы замечательно, если б ключ, который мы используем, не был одним и тем же, каждый раз

  • Вместо этого, при необходимости поговорить, было бы лучше, если б мы каким-то образом договорились о ключе, который бы действовал всего несколько часов и мы бы никогда больше его не использовали – ключ для сессии

  • Такой ключ называется ключом сессии (“Session Key”)



Предназначение Kerberos Как получить ключ без его перехвата?

  • Мы договорились о содержимом аутентификатора, который мы шифруем, используя согласованный алгоритм

  • Всё, что нам нужно:

    • Сервер, генерирующий произвольные ключи сессий, которые используются всего несколько часов
    • Метод, позволяющий передать вам и мне эти ключи без перехвата
  • Это и делает Kerberos. Периодически.



Выдача ключей – часть I: Ключ сессии в Ticket Granting Ticket

  • Помните билеты – сперва TGT, потом Service Ticket? Теперь рассмотрим часть ключей

  • Когда Том просит TGT у AS, он, в действительности, просит две вещи:

    • TGT, который он предъявляет TGS, когда ему нужен Service Ticket и
    • Специальный ключ сессии “только на сегодня”, известный только Тому и KDC
  • Вот как это работает (уже подробней, но всё ещё немного упрощённо)



Поехали…



AS создаёт ключ сессии



Том получает TGT и ключ сессии



Чего мы этим достигли?

  • Во-первых – получили общий ключ сессии (“на сегодня”) между KDC и Томом

  • Во-вторых – получили структуру данных (TGT), которую может расшифровать только KDC

  • Так как только KDC мог создать TGT, и TGT содержит “сегодняшний ключ” Tom-KDC, Том может предъявить TGT всякий раз, когда захочет напомнить KDC, что они уже общались

  • И для KDC НЕТ необходимости запоминать, что Том сегодня уже аутентифицировался



Выдача ключей – часть II: Получение Service Ticket на рабочую станцию

  • Далее, вспоминаем, что Тому нужен Service Ticket на его рабочую станцию, поэтому, он предъявляет TGT на Ticket Granting Service

  • Но как TGS может убедиться в том, что кто-нибудь не перехватил TGT Тома и не отправил его на TGS?

  • Это достигается с помощью аутентификатора (“Authenticator”) – структуры данных, содержащей в себе, среди прочих вещей, штамп времени, зашифрованный ключом Tom-KDC



Том запрашивает ST



TGS проверяет запрос Тома



TGS создаёт ST для TOMSPC



Том получает новый ключ



Том аутентифицируется на TOMSPC



Том вошёл в систему

  • Так же, как AS и TGS, служба Workstation на TOMSPC открывает билет, так как он зашифрован личным паролем TOMSPC

  • TOMSPC находит внутри ключ TPC-Tom, который использует, чтобы открыть аутентификатор

  • Затем, TOMSPC проверяет штамп времени, видит что он в порядке

  • И Том снова аутентифицирован, но не авторизован… но авторизация – не работа Kerberos



Приехали

  • Вход на PS – та же самая история

  • Ещё один момент о билетах – помните аутентификатор? Он доказывает сервису, что пользователь, в самом деле, тот за кого себя выдаёт

  • В Kerberos, мы можем дополнительно попросить сервис отправить обратно наш штамп времени, зашифрованный ключом сессии – это взаимная аутентификация (“Mutual Authentication”)



Итак…

  • Работа Kerberos – создавать произвольные пароли, которые используются как ключи сессии, чтобы аутентифицировать, не авторизовывать, пользователей и службы

  • Эти ключи предоставляются пользователям в форме билетов

  • Пользователи доказывают, что они являются законными владельцами билетов, используя аутентификаторы

  • Kerberos работает только в AD; современные системы до сих пор используют LM, NTLM или NTLMv2 для аутентификации



Дополнительные материалы



Спасибо!

  • Надеюсь, это было полезно и интересно

  • Stanky@stanky.ru



Q & A

Q & A



Похожие:

Путешествие на ракете Kerberos Билетики, пожалуйста… Kerberos Что это? iconОрганизационно-правовая форма бизнеса. Как сделать правильный выбор? - скажи пожалуйста, куда мне отсюда идти?
«- скажи пожалуйста, куда мне отсюда идти? А куда ты хочешь попасть? Мне все равно… сказала Алиса. Тогда все равно куда и идти, заметил...
Путешествие на ракете Kerberos Билетики, пожалуйста… Kerberos Что это? iconПутешествие с геометрией Зачем мы отправляемся в путешествие?
Геометрия возникла очень давно. В переводе с греческого слово «геометрия» означает «землемерие» («гео» – земля, «метрео» – мерить)....
Путешествие на ракете Kerberos Билетики, пожалуйста… Kerberos Что это? iconСеминар кам вмо/росгидромета/рггму по оценке компетентности амп санкт-Петербург, Российская Федерация, 18-22 июня 2012 г
Если Вы заметите какие-либо неточности или захотите что-либо добавить, пожалуйста, не стесняйтесь меня останавливать
Путешествие на ракете Kerberos Билетики, пожалуйста… Kerberos Что это? iconПутешествие в страну Дроби. Участники
...
Путешествие на ракете Kerberos Билетики, пожалуйста… Kerberos Что это? iconПервый этап научных исследований при полете животных на ракете р-2А
Полеты животных в герметических кабинах одноступенчатых геофизических ракет до высоты 212 и 450 км
Путешествие на ракете Kerberos Билетики, пожалуйста… Kerberos Что это? iconАтаманов Виктор Александрович ученик 10 класса
Вы увидите целый ансамбль старинных зданий местных богатеев конца XIX века. Это незабываемое и увлекательное путешествие к истокам...
Путешествие на ракете Kerberos Билетики, пожалуйста… Kerberos Что это? iconУрок путешествие
Показать красоту математики, превратив урок в увлекательное путешествие, где каждый может проявить себя
Путешествие на ракете Kerberos Билетики, пожалуйста… Kerberos Что это? iconНаши задачи Совершить небольшое путешествие по Санкт-Петербургу
Совершить путешествие в сказку Антония Погорельского «Черная курица, или Подземные жители»
Путешествие на ракете Kerberos Билетики, пожалуйста… Kerberos Что это? iconПредставление об истине и о познаваемости в европейской философии Парменид (540 – 470)
Если бытие это то, что есть, понятно, что истина это бытие, а заблуждения это небытие
Путешествие на ракете Kerberos Билетики, пожалуйста… Kerberos Что это? iconУрок-путешествие урок-путешествие Презирай лень мысли. Образовательная

Разместите кнопку на своём сайте:
dok.opredelim.com


База данных защищена авторским правом ©dok.opredelim.com 2015
обратиться к администрации
dok.opredelim.com
Главная страница