На главную | Содержание | Назад | Вперёд
Наши друзья

 

 

БАЗА ДАННЫХ KERBEROS

Для проведения идентификации сервер Kerberos должен получить доступ к неко­торой базе данных, содержащей идентификаторы членов сети и их ключи. При этом совсем не обязательно располагать базу данных и сервер на одной машине. Например, можно расположить базу данных в службе имен сети, а хранимую в ней информацию защитить от внешнего вмешательства. Кроме того, нужно сде­лать так, чтобы сервер Kerberos обладал полным доступом к ней.
СОДЕРЖАНИЕ БАЗЫ ДАННЫХ
Как уже упоминалось, в базе данных Kerberos содержится информация о каждом из пользователей.
Поле Описание
Содержит зашифрованный идентификатор члена сети. Например, в случае пользователя в этом поле будет
храниться зашифрованная версия текста
пользователыобластъ действия.
Содержит ключ шифрования — секретный ключ члена сети. Администратор системы может зашифровать ключ до того, как поместить его в главный ключ Kerberos. Благодаря этому можно защитить ключи, если хакер взломает базу, а не главный ключ.
Содержит номер версии ключа члена сети.
Содержит максимально возможный срок существо­вания (конечное время минус начальное) любого
билета, выдаваемого сервером члену сети. Необходимо использовать в этом поле как можно меньшее значение, не влияющее на условия работы члена сети (например, 24 часа).
Содержит максимально возможный срок существо­вания возобновляемого билета. Как и в случае поля maxlife, этому полю нужно присваивать наименьшее возможное значение, не влияющее на условия работы члена сети._
Содержание элемента базы данных Kerberos.
Когда ключ сервера приложений изменится в результате действия некоторой процедуры (другими словами, это изменение не вызвано взломом старого ключа), он должен удерживать старый ключ до тех пор, пока не закончатся сроки дей­ствия всех билетов, созданных с его помощью. Так как сервер хранит старые ключи, у одного члена сети может быть несколько активных ключей. Система Kerberos всегда присоединяет к зашифрованному тексту версию использованно­го ключа, благодаря чему облегчается задача поиска нужного ключа для рас­шифровки.
Если член сети обладает более чем одним активным ключом, то в базе данных Kerberos для него будет создано несколько записей. Элементы записи, хранящие ключ и его версию, будут различаться (однако остальные элементы записи могут совпадать). При создании нового билета или ответа на запрос о начальной иден­тификации сервер Kerberos использует наиболее новый ключ шифрования. У этого ключа будет наибольшее значение версии.
ДОПОЛНИТЕЛЬНЫЕ поля БАЗЫ ДАННЫХ
Как уже говорилось, каждый элемент базы данных Kerberos содержит некото­рый минимальный набор полей. В зависимости от реализации системы можно использовать в базе некоторые дополнительные поля. Например, в базе данных Kerberos сервера идентификации проекта Athena используются следующие до­полнительные поля.
Поле
Значение
К купо
expiration
attributes
mod_date mod name
Указывает номер версии главного ключа Kerberos.
С его помощью система Kerberos зашифровывает ключи членов сети.
В этом поле представлена дата окончания действия. По ее истечении сервер идентификации будет возвращать ошибку всем членам сети, попытавшимся получить билет как этот член сети или от его имени. Системный администратор может использовать две даты окончания действия: одну для члена сети, а другую — для его текущего ключа. Если в базе данных есть поле key_exp, то нужно настроить Kerberos так, чтобы он обрабатывал даты паролей и даты окончания действия ключей.
Используется сервером для управления операциями с членами сети. Использование этого поля полезно совместно с процедурами регистрации пользователя
и других задач, связанных с особенностями сайта. Содержит время последней модификации элемента базы данных.
Содержит имя члена сети, последним изменившего _этот элемент базы данных._
Дополнительные поля базы данных Kerberos.
ЧАСТО   изменяемы   ПОЛЯ  БАЗЫ ДАННЫХ
Некоторые реализации сервера идентификации могут хранить информацию о том, когда конкретный член сети сделал последний запрос. К таким данным относятся время последнего запроса, время последнего запроса или использова­ния билета для предоставления билета и другие даты. Эта информация может быть предоставлена пользователю в поле LAST_REQ.
Другой часто изменяемой информацией является самое последнее время срока действия всех билетов, созданных с помощью каждого ключа. В этом поле можно указывать, сколько времени должны быть действительными старые ключи. Бла­годаря этому пользователи могут закончить использовать свои «ненормальные» билеты.
ИМЕНА   ОБЛАСТЕЙ ДЕЙСТВИЯ
Система Kerberos зашифровывает имена областей действия как Unix Genera/Strings, а область действия может технически выбрать любое имя. Однако несмотря на это операции между областями действия требуют некоторого соглашения между системными администраторами о том, как они будут присваивать имена облас­тям действия и какую информацию должно содержать каждое из имен. Напри­мер, если три области действия используют имена типа Domain, а четвертая область действия использует имя типа Х.500, то первые три области не смогут обмениваться данными с последней.
Существует четыре типа имен областей действия: Domain, X.500. Other и Reserved.
Тип_Пример_
Domain (пример)
Х.500 C=US/0=OSF (пример)
Other NAMETYPE:rest/of.name=without-restrictions (пример)
Reserved зарезервировано, но не создает конфликтов
_с предыдущими типами_
Различные типы имен областей действия Kerberos.
Имена Domain должны выглядеть так же, как и имена доменов Unix. Каждое имя состоит из нескольких компонентов, разделенных с помощью точек (.). Бо­лее того, имя Domain не должно содержать двоеточий (:) или наклонных черт (/).
Имена содержат как минимум один знак «равно» (=) и не могут содержать перед ним двоеточие. Имена Х.5О0 — это строки, элементы которых разделены с помощью наклонных черт (/). Однако наклонные черты не могут стоять в начале или в конце имени.
Имена Other должны начинаться с префикса, в котором нельзя использовать зна­ки «равно» или точки. Кроме того, после префикса должно стоять двоеточие (:). Содержание префикса определяет Internic или другая организация. На момент создания книги (август 1997 года) не существовало ни одного стандарта на пре­фиксы.
Имена Reserved представляют собой строки, не похожие на три предыдущих типа имен. В настоящее время организации, координирующие выделение имен (вроде Internic), резервируют в этой категории все имена. Скорее всего, вы не станете присваивать эти имена до тех пор, пока не будет действительно веских причин не использовать имена Other.
Как и большинство изученных протоколов, соглашение об именах областей дей­ствия является гарантией того, что различные типы имен не будут конфликто­вать друг с другом.
ИМЕНА   ЧЛЕНОВ СЕТИ
Как и в случае имен областей действия, на имена членов сети Kerberos налага­ются достаточно жесткие требования. Поэтому нужно быть внимательным при создании имен. Поле name-type указывает на тип информации, связанной с этим членом сети. Другими словами, это поле должно содержать намек на то, чем занимается этот член сети. Например, имя NT SRV HS) скорее всего, отно­сится к серверу Telnet.
Не может быть двух одинаковых имен. В таблице приводятся все значения поля


Name-Type

Значение

Пояснения

KNOWN

q

Тип имени неизвестен.

NT-PRINCIPAL

1

Имя члена сети для уникальных серверов или пользователей.

NT-SRV-1NST

2

Служба и другие уникальные экземпляры
(наиболее часто билеты для предоставления билета).

NT-SRV-HST

3

Служба с именем хоста в качестве экземпля­ра (например, Telnet или используемые в Unix команды удаленной работы).

NT-SRV-XHST

4

Служба с хостом в качестве остающегося элемента.

NT-UJD

5

Уникальный идентификатор.

 Типы

имен Kerberos.

 

Если имя не подразумевает никакой информации, нужно использовать тип имен PRINCIPAL. Его необходимо применять для пользователей и уникальных серве­ров. Если же именем является уникальный, сгенерированный машиной иденти­фикатор, который не будет изменяться в будущем, то следует воспользоваться типом NT-UID Обратите внимание: нельзя повторно устанавливать типы имен, так как они могут остаться в списках управления доступом. Если первый эле­мент имени определяет службу, а остальные элементы — экземпляр службы, то нужно использовать тип имен NT-SRV-INST.
Возьмем, например, билет для предоставления билета, у которого первый эле­мент имени — krbTGT, а второй указывает на область действия, в которой этот билет будет действительным. Допустим, что экземпляром является один элемент, перед которым стоит имя службы. Кроме того, будем считать, что экземпляр определяет хост, на котором выполняется сервер. В этом случае нужно исполь­зовать тип SMV-HST.Этот тип имен обычно используется для обозначения служб Internet, вроде Telnet или набора команд удаленной работы в Berkeley Unix.
Тип имен NT-UNKNOWN используется в том случае, если неизвестна форма имени. При сравнении имен тип UNKNOWN соответствует членам сети, иденти­фицированным с именами любого типа. Однако член сети, идентифицированный с именем UNKNOWN, будет соответствовать только другим типам UNKNOWN.
Если элементы имени хоста следуют после имени службы, то нужно использо­вать тип имен SRV-XHST. Можно использовать имена *ЭДК-Л7/5Тдляидентифи-кации серверов, расположенных в хостах с именами Х.500. При использовании других типов имен косая черта (/) может привести к неправильному восприятию.
Примечание. Система Kerberos резервирует имена любого типа в начальном компо­ненте krbTGT для сервера идентификации.
УЯЗВИМЫЕ МЕСТА KERBEROS
Как уже отмечалось, система Kerberos проводит проверку прав на основе предо­ставленного при регистрации в системе совместно используемого секретного ключа. Однако благодаря этому нападающий может подменить надежный сер­вер. Другими словами, злоумышленник может заставить сервер поверить в то, что он является легальным пользователем. Добившись этого, хакер получит те же права доступа, что и подмененный пользователь. Например, можно послать надежному серверу сообщение с запросом на доступ к файловому серверу. На­падающий может перехватить его и переслать серверу Kerberos немного позже. Чтобы избавиться от подобных атак, программисты проекта Athena ввели от­метку времени (timestamp). Как уже говорилось, с помощью этого средства можно гарантировать, что все получаемые сервером сообщения будут содержать время своего создания. При этом сервер будет отбрасывать все сообщения, которые пришли более чем через пять минут от проставленного времени. Средство отметки времени позволяет избежать многих опасностей. показано, как сервер идентификации отбрасывает билеты переигрывания с просроченным временем.
У системы Kerberos есть еще одно уязвимое место: шифрование в фоновом режи­ме. Нападающий может перехватить ответ, посланный сервером идентификации.
Напомню, что в этом ответе находится билет, а сам ответ зашифрован с помо­щью открытого ключа пользователя. После этого злоумышленник может прове­сти над перехваченным ответом атаку словаря. С ее помощью он попытается расшифровать личный ключ, а затем и перехваченное сообщение. Кроме того,
хакер может просматривать большое количество передаваемых данных и восполь­зоваться для взлома личного ключа атакой, основанной на времени шифрования. Если в результате своей работы хакер получит какую-либо инфор­мацию (вроде отметки времени или сетевого адреса), то он сможет добраться и до личного ключа.
ИСХОДНЫЕ ПРЕДПОЛОЖЕНИЯ   СИСТЕМЫ KERBEROS
В предыдущем разделе мы обсудили наиболее серьезные недостатки системы Kerberos. Кроме того, в системе Kerberos заложены некоторые исходные пред­положения о том, в какой среде она должна функционировать. Однако все они открывают новые пути для
• Система Kerberos не содержит решений для атак отказа служб. Работая в
Kerberos, нападающий легко может помочь приложению избежать полной процедуры идентификации. Защитой от таких действий является вмеша­тельство администратора и пользователей.
• Сервер Kerberos неявно предполагает, что секретный ключ действительно является секретным. Другими словами, Kerberos считает, что пользова­тель надежно спрятал свой ключ от посторонних глаз. Если же хакер укра­дет чей-либо ключ, то он сможет подменить «обворованного» члена сети.
• И наконец, система Kerberos не защищает от атак на пароли. Если пользо­ватель выберет достаточно простой пароль, то хакер достаточно легко смо­жет провести в фоновом режиме атаку словаря. Атака слова­ря пытается расшифровать перехваченные хакером сообщения. Как уже говорилось, пользователь зашифровывает сообщения с помощью ключа, созданного на основе его пароля. При достаточном количестве времени и некотором стечении обстоятельств хакер может определить пароль пользо­вателя.
СОВМЕСТИМОСТЬ СИСТЕМ ВЕРСИЙ 4 и
Разработчики создали систему Kerberos версия 4 и версия 5 на основе совершенно разных наборов протоколов. Однако вер сия MIT Kerberos V5 содержит некоторые совместимые фраг­менты кода. Сервер Kerberos V5 может обслуживать Запросы V4. Кроме того, система Kerberos V5 содержит программу преобразования базы данных формата системы Kerberos V4 в формат базы данных V5. И наконец, V5 содержит сервер идентификации, способный принимать запросы V4.
Система Kerberos основана на принципе, утверждающем, что только огра­ниченное число машин могут быть абсолютно надежными.
Для управления доступом ко всем остальным серверам сети в Kerberos ис­пользуется одна надежная машина — надежный сервер.
Для управления доступом к серверам в системе Kerberos используется зашифрованный файл, называемый билетом.
В сетях, поддерживающих Kerberos, используется шесть базовых типов билетов: начальный, преидентифицированный, недействительный, возобнов­ляемый, досрочный и передаваемый.
S В Kerberos для представления пользователей (клиентов или серверов) ис­пользуются имена членов сети. Для представления областей управления надежного сервера используются имена областей действия.
•/   Системы Kerberos не являются панацеей от атак хакеров.
В системах Kerberos существует несколько ошибок, представляющих серьез­ную потенциальную опасность.

 

На главную | Содержание | Назад | Вперёд
 
Яндекс.Метрика