Ж у р н а л   о   к о м п ь ю т е р н ы х   с е т я х   и   т е л е к о м м у н и к а ц и о н н ы х   т е х н о л о г и я х
СЕТИ И СИСТЕМЫ СВЯЗИ on-line
  ПОИСК: ПОДПИСКА НА НОВОСТИ: НОМЕР:
    ДОМОЙ • Архив: Новостей | Конференций | НомеровПодписка
 
   
 
   
    
РЕДАКЦИЯ
 
Все о журнале
Подписка
Как проехать
Где купить
Отдел рекламы
График выхода журнала
Адреса в Интернет

РУБРИКАТОР
   
• Инфраструктура
• Информационные
   системы

• Сети связи
• Защита данных
• Кабельные системы
• Бизнес
• Колонка редактора
• Электронная
   коммерция

• Только на сервере
• Системы
   учрежденческой
   связи

• Новые продукты


Rambler's Top100

  

"Керберос": деталь в головоломке сетевой безопасности

Дэн Бэкман

Современные компьютерные сети похожи на средневековые укрепленные города: системы firewall "защищают" городские автоматические ворота, а службы безопасности удаленного доступа "прикрывают" стены города. Но посмотрим правде в глаза: "городские ворота" не удержат "варваров", если они уже прорвались в "город". Единственный выход — объявить "военное положение", запереть на автоматику все "ворота домов", заблокировать все "улицы" и никому не доверять. Очень похоже на "драконовские законы"? Что ж, давайте разберемся.

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

Задраить люки!

Необходимость компромисса между доступностью и безопасностью вашей сети очевидна. Но если для проверки полномочий пользователя применить более простой способ — автоматический? Если вместо постоянного предъявления для проверки каждой новой службе своего пользовательского имени и пароля пользователь будет иметь некоторый пропуск, по которому можно пройти везде и всюду? Таким средством легального доступа является билет "Керберос".

"Керберос" разработан в Массачусетсском технологическом институте (МТИ) и задумывался как безопасная сетевая технология аутентификации. "Запечатанные" посредством шифрования мандаты, или билеты "Керберос", подтверждают полномочия пользователей, которые являются их владельцами. Поскольку каждый узел сети доверяет исключительно серверу "Керберос", такие пользовательские мандаты становятся действительными для всей сети и теоретически должны регистрироваться в ней только один раз. Кроме того, "Керберос" обеспечивает поддержку шифрования сетевых коммуникаций в реальном времени, а это равносильно тому, что все двери в домах вашего города закрыты, но всем заслуживающим доверия гражданам даны ключи от каждой двери.

В эталонной модели взаимодействия открытых систем OSI "Керберос" расположен поверх сетевого и транспортного (TCP/IP) уровней. Это означает, что вы не можете просто так взять и добавить модуль "Керберос" к операционной системе вашего настольного компьютера. Использование "Керберос" требует замены всех существующих сетевых приложений на их "керберизованные" варианты (т. е. модифицированные с применением Керберос-библиотек), которые позволяют пользоваться такими службами, как автоматическая аутентификация и шифрование коммуникаций.

Так что же такое "Керберос" и что реально он может сделать для защиты компьютерной сети? Чтобы лучше "прочувствовать" эту технологию и определить, действительно ли она может решить проблемы сетевой безопасности, мы установили в нашей лаборатории университета г. Сиракузы 4-ю версию "Керберос" и бета-релиз новой ее версии 5, выпущенной в МТИ. Приведенные в этой статье примеры относятся к "Керберос" версии 4, используемой сегодня в большинстве сетей.

Проблемы

Технология "Керберос" очень привлекательна, однако не решает всех задач сетевой безопасности. Мы были разочарованы, когда поняли, что она не может справиться с задачей управления доступом пользователя в масштабе сети. "Керберос" не заменит даже такую устаревшую технологию, как NIS (Network Information Service) фирмы Sun Microsystems, поскольку не предоставляет необходимой информации по пользовательскому бюджету из файла /etc/passwd системы Unix, а также возможности управлять полномочиями пользователя или контролировать доступ к сетевым ресурсам. Самое главное — системе "Керберос" не хватает тех самых служб каталогов, которые делают весьма привлекательным решением проблемы сетевой безопасности такие продукты, как NDS (Novell Directory Services).

Протокол "Керберос" предназначен для обеспечения авторизации пользователя в масштабе сети и позволяет всем сетевым приложениям пользоваться службами аутентификации и шифрования. Однако он не осуществляет контроль доступа или аудиторских функций, что равносильно выдаче каждому гражданину вашего города "главного" ключа. В этой системе правами доступа занимаются отдельные сетевые службы, а не сам "Керберос". Его часто используют для дополнения других служб, таких, как AFS (Andrew File System) фирмы TransArc или DCE (Distributed Computing Environment) фонда Open Software Foundation, которые с помощью "Керберос" проверяют пользовательские полномочия, но каждая по-своему работает со списком контроля доступа ACL (Access Control List).

Программные средства

"Керберос" наиболее "эффектно" смотрится в среде Unix. Поскольку большая часть разработок делается именно в ней, то распространяемые версии "Керберос" содержат богатый набор приложений. Фактически, "Керберос" поставляется вместе с некоторыми основными версиями Unix, например с Solaris фирмы SunSoft. Однако из-за строгих экспортных ограничений федерального правительства США на используемую в "Керберос" технологию шифрования по стандарту DES (Data Encryption Standard) из утилит, включенных в поставку его версии 4, были изъяты функции шифрования. Поэтому для моделирования реальной ситуации нашей первоочередной задачей было убрать поддержку "Керберос" со стороны операционной системы Solaris.

Разработчики "Керберос" также предоставляют клиентское ПО для Microsoft Windows и Apple Macintosh, однако оно оставляет желать лучшего. Обычно программные средства клиентской стороны в "Керберос" разбиваются на две части: утилиты управления мандатами, осуществляющие первоначальную регистрацию в системе и управляющие мандатами служб, и "керберизованные" приложения, использующие сквозную аутентификацию и шифрование. Мы обнаружили, что большинство этих приложений зачастую несовместимы с утилитами управления мандатами или просто не работают.

МТИ предоставляет клиентское ПО для DOS, но его применение ограничено средой Novell LAN WorkPlace. В Университете штата Мичиган разработаны полностью функционирующие клиенты "Керберос" как для Windows 95, так и для Macintosh. Их можно получить из Интернет. Однако мы так и не нашли серверных приложений, которые работали бы с ними.

Тем не менее среди коммерческих пакетов нам удалось отыскать продукты, например систему TCP/IP Suite 100 фирмы Cisco Systems, куда включены утилиты управления мандатами и "керберизованные" IP-приложения. Пакет электронной почты Eudora фирмы Qualcomm также включает поддержку "керберизованных" сеансов POP (Post Office Protocol), обеспечивая работающих в среде "Керберос" пользователей безопасным доступом к электронной почте. Однако, если вам нужна коммерческая поддержка по полной программе, стоит рассмотреть систему DCE, служба безопасности которой базируется на "Керберос".

Мандаты "Керберос"

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

При работе с использованием "Керберос" сначала осуществляется регистрация, затем абонент сети получает "мандат на получение мандата" TGT (Ticket-Granting-Ticket). Далее этот мандат предъявляется для получения служебных мандатов от сервера "Керберос" и для доступа на удаленный хост или сервер. Поскольку в обслуживаемой сервером "Керберос" области (realm) ему доверяют все машины, то фактически мандаты гарантируют идентичность пользователей и разрешают им доступ к машине. Мандаты "Керберос" также содержат сеансовые ключи, которые можно использовать для шифрования сетевого трафика.

Мандаты "Керберос" обеспечивают неограниченный доступ к машинам всей сети, поэтому именно они являются вожделенной целью для любого желающего проникнуть в сеть взломщика. Всем известно, что каждая передача по сети может быть легко перехвачена — следовательно, необходимо, чтобы эти мандаты были защищены от подделки. Для этого "Керберос" использует зашифрованные временные метки (time stamps) на своих транзакциях и к каждому мандату добавляет срок годности (expiration time), после истечения которого перехваченный мандат становится бесполезным. По умолчанию "Керберос" отвергает любой мандат с временной меткой, просроченной более пяти минут. Это также означает, что время на всех узлах сети в области действия защиты "Керберос" должно быть установлено правильно. Для синхронизации времени по всей сети мы инсталлировали демон Network Time Protocol.

Пользователи

Бюджет пользователя в системе "Керберос" имеет специальное название — "принципал". Каждый пользователь, узел или сетевая служба должны иметь запись в базе данных и соответствующий (базирующийся на пароле) ключ шифрования. "Керберос" аутентифицирует сеансы для каждого принципала, используя для этого мандаты, зашифрованные с помощью различных ключей. Аутентификация успешна только в том случае, если серверу удается расшифровать мандат и идентифицировать пользователя.

Принципал "Керберос" может выглядеть так: dbackman. admin@nwc.syr.edu. На этом примере видно, что пользователь выполняет административную функцию, т. е., имея имя "dbackman" с инстанцией "admin", в области под названием "nwc.syr.edu" он получает доступ к базе данных "Керберос" и может обновлять ее. Не путайте инстанцию с группой пользователей. Инстанция — это отдельный бюджет с отдельным паролем. В данном случае ее роль заключается в контроле за теми, кто может редактировать базу данных "Керберос". Помните, что "Керберос" не может назначать права пользователям или группам пользователей — он только проверяет идентичность пользователя.

У инстанций "Керберос" есть еще один способ применения. Специальная утилита ksu обеспечивает удобный способ управления режимом привилегированного доступа (root access) на всех хостах. Обходя стандартные для Unix функции безопасности, ksu позволяет пользователям с инстанцией root применять их собственные частные корневые пароли для получения привилегированного доступа к любой Unix-машине в области действия "Керберос". Если имя пользователя c инстанцией root (например, dbackman.root@nwc. syr.edu) находится в файле .klogin корневого каталога, "Керберос" предоставляет этому пользователю права привилегированного доступа к этой машине. Настоящий корневой пароль данной машины никогда не передается. При правильном использовании (с помощью зашифрованных login-сеансов) остальные корневые пароли также никогда не передаются по сети незашифрованными. Мы нашли такое средство защиты корневых паролей весьма удобным и используем его в нашей собственной Unix-сети.

Протокол "Керберос"

Давайте рассмотрим поближе все, что происходит "за кулисами". Здесь вы обнаружите сложное наслоение шифров, которое больше похоже на русскую матрешку. Теоретически читать любое сообщение в среде "Керберос" может только сам сервер "Керберос", так как является единственным сервером, "знающим" все ключи. Именно это поддерживает "принцип доверия" в системе "Керберос", и по этой же причине вы должны держать сервер "Керберос" под надежной защитой.

При входе в область действия "Керберос" вы запускаете программу (в случае Unix — это kinit, а для других платформ — утилита управления ключами "Керберос"), которая запрашивает мандат у сервера "Керберос". Сервер "Керберос" передает его клиенту "вслепую", т. е. без запроса пользовательского пароля. Поскольку мандат зашифрован с применением вашего пароля, он будет действителен только в том случае, если вы его успешно дешифруете. Затем вы вводите ваш пароль на своей клиентской стороне, где мандат сразу же расшифровывается и проверяется. При этом сервер "Керберос" не получает никакого уведомления о правильности введенного пароля — его это "не интересует" (рис. 1).

Первоначальный пользовательский мандат разрешает доступ только на сам сервер "Керберос". Такой мандат состоит из двух частей: мандата TGT и сеансового ключа, используемого для шифрования всех дальнейших коммуникаций с центром распределения ключей "Керберос" KDC (Key Distribution Center). В действительности мандат TGT представляет собой блок информации о пользователе и временную метку, зашифрованную с помощью собственного ключа сервера "Керберос". Мандат TGT служит в качестве сетевого аутентификатора пользователя. Если пользователю захотелось получить доступ к другой службе сети (например, сеансу rlogin, telnet или ftp), программа-клиент предъявляет мандат TGT серверу "Керберос" и запрашивает специальный мандат для нужной службы.

Ранее мы упомянули, что система защиты "Керберос" базируется на доверии, но это доверие не обязательно должно быть слепым. Давайте посмотрим, что же произойдет, если пользователь (dbackman@nwc. syr.edu) запросит сеанс telnet на удаленном хосте под названием "shiela" (рис. 2). Сначала "керберизованный" клиент telnet, используя пользовательский мандат TGT, автоматически получает служебный мандат от сервера "Керберос". Мандат TGT проверяется сервером "Керберос" и в случае положительного результата проверки клиент получает служебный мандат для запуска telnet-демона на хосте shiela. Служебный мандат выглядит так: rcmd.shiela@nwc. syr.edu. Он зашифрован с помощью секретного ключа shiela (известного только хосту shiela и центру распределения ключей "Керберос"). Если shiela расшифровывает мандат, то dbackman@nwc.syr.edu действительно зарегистрирован в БД "Керберос", поскольку сам пользователь знать ключ хоста shiela не может. Этот служебный мандат, так же, как и мандат TGT, содержит сеансовый ключ, который можно применять для дальнейшего шифрования коммуникаций между пользователем и удаленной службой.

Следующий шаг

Мы считаем, "Керберос" лучше всего использовать для решения каких-либо конкретных проблем. В нашем случае он предоставил удачное решение проблемы управления доступом к корню нашей Unix-среды, а его сквозная аутентификация оказалась весьма удобной для работы с несколькими Unix-хостами. Однако из-за отсутствия кроссплатформенной поддержки "Керберос" не решает проблемы безопасности в целом. Мы так и не нашли достаточное количество "керберизованных" приложений для наших собственных настольных систем.

Может быть, в данный момент "Керберос" — это не то, что вы хотели бы иметь, но на эту технологию все же стоит обратить внимание. МТИ работает над следующим поколением "Керберос" — версией 5, в нее будут добавлены такие функции, как межобластная аутентификация и пересылка мандатов. Межобластная аутентификация позволит пользователям аутентифицировать себя в других областях по всей сети Интернет. С помощью функции пересылки мандата можно будет передавать мандат TGT на удаленные хосты, используя при этом "керберизованную" процедуру регистрации в сети вместо запуска на них утилиты kinit.

"Керберос" версии 5 — это основа службы DCE Security Service. Ее широкое распространение позволит создать сеть, в которой пользователь будет регистрироваться только один раз. Время, когда для каждого сервера были необходимы различные бюджеты, станет историей. Поддержанная большинством производителей, включая корпорации IBM, Digital и Hewlett-Packard, концепция среды распределенных вычислений DCE обеспечит основу для более интегрированных сетевых служб


распечатать статью




  
4 '1997
СОДЕРЖАНИЕ

колонка редактора

• Lucent открывает для сетей врата ада

локальные сети

• Серверы с процессорами Pentium Pro

• Телекоммуникационные системы: электромагнитные помехи и электромагнитная совместимость

• Сетевые операционные системы

• Самая легкая в мире оптимизация сервера

• Оборудование и ПО: проблема выбора фирмы-поставщика

корпоративные сети

• Как снять синдром технологического "похмелья"

• Развитие систем электронных сообщений

услуги сетей связи

• Учрежденческие системы внутренней связи

• Построение транспортных сетей на основе Синхронной Цифровой Иерархии

• Инверсное мультиплексирование линий ISDN

• Управляемые модемные шасси

интернет и интрасети

• СУБД-технологии для российских Web-узлов

• Настройка DNS: внутренние и внешние серверы

• Система R/3: структура и перспективы развития

• 32-разрядные пакеты программ TCP/IP

защита данных

• ИБП для серверных комнат

• "Керберос": деталь в головоломке сетевой безопасности

новые продукты

• Модуль VoicePlus для коммутаторов ForeRunner, Сетевой анализатор — это все, чего я хочу; Symmetra: масштабируемость и надежность; NetEye 200 — компактная фотокамера с Web-сервером;

только на сервере

• Доступ к информации по протоколу LDAP

• Война браузеров, или Почему Microsoft победит Netscape



 Copyright © 1997-2007 ООО "Сети и Системы Связи". Тел. (495) 234-53-21. Факс (495) 974-7110. вверх