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

 

 

ПРОТОКОЛ KERBEROS

Протокол Kerberos состоит из нескольких протоколов. Как уже говорилось, прежде, чем получить доступ к какому-либо серверу, клиент должен запросить у сервера идентификации билет и ключ шифрования. Существует два метода реа­лизации подобного запроса.
Первый метод (он описан в предыдущем разделе) заключается в том, что клиент посылает серверу идентификации запрос на предоставление доступа к обычному серверу (например, серверу печати). Это сообщение зашифровывается с помо­щью личного ключа клиента. После этого сервер идентификации посылает кли­енту билет, который тот должен переслать запрашиваемому серверу. Так как этот метод достаточно прост, он не так безопасен, как второй.
При использовании второго метода клиент пересылает серверу идентификации обычный (незашифрованный) запрос на предоставление билета. Обычно такой билет называется билетом для предоставления билета (ticket-granting ticket). На самом деле билет для предоставления билета является основным билетом для целого сеанса работы в системе. Сервер сверяет идентификатор клиента с помо­щью совместно используемого ключа (например, пароля), а затем пересылает билет для предоставления билета клиенту.
Kerberos
Клиент запрашивает билет для предоставления билета. После этого клиент должен использовать билет для предоставления билета, а не свой открытый ключ. С его помощью он может получить от сервера идентификации настоящий билет на доступ к любому ресурсу. Отметим, однако, что билет для предоставления билета можно использовать только во время одного (текущего) сеанса. показано, как клиент посылает серверу идентификации
Билет доступа зашифровывается с помощью основного одноразового ключа, содержащегося в билете для предоставления билета. После этого сервер иденти­фикации пересылает билет доступа клиенту. В билете доступа хранятся мандат клиента и одноразовый ключ. Этот ключ зависит от предоставляемых в билете прав. Например, если клиент запросит у сервера печати выполнить одно зада­ние, то сервер идентификации пошлет ему билет, зашифрованный с помощью одноразового ключа, пригодного только для одного задания.
Первый метод (запрос с открытым ключом) обеспечивает меньший уровень без­опасности по сравнению со вторым. Дело в том, что билет для предоставления билета не постоянен (другими словами, он действителен только в течение неко­торого промежутка времени). Поэтому второй способ сложнее для взлома.
После того как каждый член сети получит свой мандат, он может использовать его для идентификации других членов сети. Таким образом можно проверить целостность передаваемых сообщений. Создатель приложения может выбрать любой необходимый ему метод защиты.
Переигрывания
Одной из наиболее важных проблем в распределенных является воровство билетов, или так называемые «переигры­вания» (replay). Переигрывание — это ситуация, когда хакер копирует билет, взламывает (расшифровывает) его, а затем пытается подменить настоящего клиента. Используемые в си­стемах Kerberos билеты содержат некоторую дополнительную информацию, позволяюшую обнаружить переигрывания.
Чтобы обнаружить переигрывание, клиент посылает дополнительную инфор­мацию. С ее помощью можно будет проверить источник сообщения. Клиент зашифровывает эту информацию, называемую удостоверением (authentificator), с помощью одноразового ключа и включает туда отметку времени (timestamp).
Отметка времени позволяет утверждать, сгенерированное клиентом со­общение (в нем содержится билет) не является переигрыванием. Шифрова­ние удостоверения внутри билета и одноразового ключа позволяет проверить тот факт, что создателем сообщения является сторона, обладающая одноразо­вым ключом. В этой ситуации одноразовый ключ служит в качестве идентифи­катора клиента. Дело в том, что одноразовый ключ известен только серверу и запрашивающей стороне. (Сервер Kerberos никогда не посылает одноразовый ключ «открытым текстом».)
Кроме того, члены сети могут проверить целостность пересылаемых сообще­ний с помощью одноразового ключа (он передается вместе с билетом, а также содержится в мандатах). С его помощью члены сети могут обнаружить атаки переигрывания, а также атаки изменения потока Сообщений. Чтобы проверить целостность сообщения, каждый член сети генерирует и передает контрольную сумму (называемую смешанным значением или профилем — 4) сообщения клиента, зашифрованного с помощью одноразового ключа. Более того, члены сети могут защитить передаваемые сообщения, шифруя их с помощью одноразового ключа. Этот ключ передается вместе билетом, а также содержится в мандатах.
ОПЕРАЦИИ ВНУТРИ ОБЛАСТИ ДЕЙСТВИЯ
Как уже упоминалось, система Kerberos разработана для распределенных сетей.
многих компаниях распределенные сети выходят за рамки организации, а также могут пересекать географические границы. MIT разработал протокол
Kerberos для работы, не ограничиваемой рамками одной организации или де­партамента. Более того, правильно установленная система Kerberos может иден­тифицировать клиента одной организации на сервере Kerberos или сервере ре­сурсов другой организации. При установке системы Kerberos нужно определить так называемые области действия (realm), в которых сервер обладает правом проверять права остальных членов сети. Как правило, каждый сервер Kerberos создает и поддерживает свою собственную область действия. Например, если в издательстве Jamsa Press есть два сервера Kerberos, то один из них может следить за отделом продаж, а другой — за отделом программирования. Этим серверам присвоены имена Jamsa PressSalesn Jamsa Press Programming.
Имя области действия, в которой зарегистрирован пользователь, составляет часть имени клиента. С помощью этой информации конечная служба может решить, как ответить на запрос. Другими словами, пользователь Iklander, расположен­ный в области действия JamsaPressProgramming, может обладать именем Iklander: Jamsa Press Programming. Если по некоторой причине пользователю Ikiander нужно получить доступ к файлу, расположенному в области действия JamsaPressSales, сервер JamsaPressProgramming может проверить его идентифика­тор для второго сервера. После этого сервер идентификации JamsaPressSales опре­деляет, есть ли у пользователя Ikiander права доступа к файлам, расположенным в его области действия.
СМЕЖНЫЕ ключи
С помощью смежных ключей (inter-realm key) администраторы двух областей дей­ствия могут позволить клиентам, проверенным системой Kerberos в локальной области действия, использовать локальные идентификаторы в удаленной облас­ти действия. показано, как клиент из области действия Sales может с помощью смежного ключа получить доступ к области действия Engineering.
Посредством обмена смежными ключами (члены сети могут использовать от­дельный ключ для каждого направления) можно зарегистрировать службу предо­ставления билетов одной области действия в качестве члена сети другой области действия. После этого любой клиент может получить билет для предоставления
билета у сервера удаленной области действия.
Если пользователь отправит такой билет для предоставления удаленному серверу идентификации, тот, в свою очередь, воспользуется смежным ключом для рас­шифровки билета. Кроме того, он проверит, кем был издан смежный билет.
Конечной службе (вроде файлового сервера в удаленной области действия) иденти­фицированный билет укажет на то, что ее сервер идентификации воспользовался для определения прав клиента смежным ключом. показано, как удаленный сервер идентификации проверяет клиента с помощью смежного ключа.
Путем идентификации (authentication path) называется последовательность областей-посредников, рас­положенных между двумя связывающимися областями действия. пример пути идентификации.
область действ„я
отдела перевозок
Это значит, что у каждой области действия есть родительская область (parent realm) и может быть (одна или несколько) дочерняя область (child realm). Каждая область действия исгтользует один ключ совместно со своей родительской областью и по одному — с каждой дочерней областью. Если две области действия не используют напрямую один смежный ключ, то иерархическая организация предоставляет возможность каждому серверу идентификации создать путь иденти­фикации. Если же в системе не используется иерархическая организация, то для построения пути идентификации удаленный сервер идентификации должен' сверяться с некоторой базой данных. показано, как сервер идентификации может создать путь идентификации между двумя дочерними областями (иерархическая схема).
Однако сервер Kerberos может использовать несколько путей идентификации между двумя областями действия. (Установить несколько путей идентификации может администратор сети.) Это позволяет значительно увеличить эффектив­ность передачи сообщений. Чтобы определить, насколько можно доверять пути идентификации, конечная служба должна знать, какие области действия были пересечены. Например, 12 путь идентификации пересекает области действия отдела продаж, отдела управления и инженерного отдела. Чтобы помочь конечной службе сделать правильное решение, в билетах есть поле, в котором хранятся имена областей действия, участвовавших в идентификации клиента.
KERBEROS
Bones — это система, предоставляющая интерфейс програм­мирования (API) Kerberos без средств шифрования и безопас­ности. Другими словами Bones — это основа системы Kerberos. С ее помощью можно использовать системы, работающие совместно с Kerberos. Так как в Bones нет поддержки DES, то эту систему могут приобрести все желающие.
Отключить поддержку DES не так уж и сложно. Для этого достаточно доба­вить в исходном коде константу xnoencrypt10 ко всем вызовам функ­ций   DES.   После   этого   программист  должен   определить константу ttNOENCRYPTION чтобы указать компилятору не компилировать вызовы функций DES.
После этого программист должен воспользоваться программой piranha, чтобы удалить все вызовы подпрограмм шифрования (другими словами, он должен удалить все, что расположено в фигурных скобках в предыдущем примере). Затем нужно скомпилировать остаток исходного кода. В результате должна получиться Bones — система, ведущая себя (с точки зрения приложения) как Kerberos. Единственным отличием этой системы является отсутствие вызо­вов библиотек DES. (Поэтому Bones не полностью поддерживает протокол Kerberos и не обладает никакими средствами безопасности.) Как уже упоми­налось, Bones не содержит ни подпрограмм шифрования, ни их вызовов. Именно поэтому систему можно легально использовать вне США.
Примечите. Копии программы Bones с подпрограммами шифрования и их вызовами, созданные иностранными программистами, называются eBones. Эти программы можно приобрести с помощью анонимного FTP в Швеции, Еермании, Израиле, Финляндии, 'Австралии и Франции. Для их поиска воспользуйтесь поисковым процес­сором archie.

 

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