Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
metod_tzis!113.doc
Скачиваний:
37
Добавлен:
09.11.2019
Размер:
2.07 Mб
Скачать

7.5. Сетевая аутентификация на основе слова- вызова.

Если пользователь находится на удаленном расстоянии от сервера услуг, и доступ осуществляется через открытые сети, то передача пароля становится опасным. В этом случае используется вариант аутентификации, называемой вызовом (challenge). Он заключается в том, что при выходе на связь пользователь посылает сначала свой идентификатор. Получив индентификатор, сервер проверяет наличии такого пользователя по своей базе данных и затем возвращает пользователю случайное большое число N (обычно длины 16 байт), называемое словом–вызовом. Пользователь, получив это число, формирует пару <N, P>, где P обозначает пароль пользователя, подвергает ее хеш-преобразованию и отправляет полученное значение h=h(<N,P>) серверу. Сервер, получив свертку h, извлекает из базы данных пароль пользователя, который должен в этом случае храниться в открытом виде, выполняет то же преобразование h(<N,P) и сравнивает два полученных значения h. Если они совпали, то процедура аутентификация считается успешной.

Рис. Схема аутентификации на основе слова- вызова.

Эта схема безопасна для пользователя по той причине, что его пароль не пересылается по сети, а пересылается только его свертка со словом-вызовом. Длина слова-вызова достаточно велика, чтобы обеспечить невозможность восстановления пароля путем полного перебора. Слово-вызов повторно не используется, поэтому перехватив хеш в сети, взломщик не сможет им воспользоваться. При обрыве соединения или необходимости повторного сеанса, пользователь может запросить еще одно слово-вызов, либо выслать хеш, вычисленный от пары <N+1, P> в зависимости от действующего протокола связи. Оба варианта – безопасны.

Такая простая схема аутентификации является простой и надежной, решая задачу безопасной аутентификации и давая возможность использовать пароль пользователя многократно.

§7. Протокол расширенной аутентификации Kerberos

Протокол аутентификации Kerberos является основным механизмом аутентификации, используемым в среде Windows 2000/Server 2003. Этот протокол был разработан в Массачусетском технологическом институте (Massachusetts Institute of Technology, MIT) в начале 1980-х гг. Существует несколько версий протокола Kerberos. В среде Windows 2000/Server 2003 применяется пятая версия протокола Kerberos, спецификация которого определена в стандарте RFC 1510.

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

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

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

  2. Пользователь может изменить сетевой адрес этой рабочей станции, чтобы пересылаемые им сообщения казались исходящими с другой рабочей станции,

  3. Пользователь может перехватывать пересылаемые сообщения и воспроизводить их впоследствии, чтобы получить доступ к серверу или внести хаос в поток данных.

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

1. Центральный сервер аутентификации, хранящего все данные пользователей, их пароли и права доступа к различным информационным услугам данной сети,

2. Серверы выдачи мандатов (Ticket Granting Servers) TGS,

3. Серверы информационных услуг (например, почтовый сервер, сервер доступа в Интернет, служба сетевых принтеров и т.д.).

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

С – клиент,

AS – сервер аутентификации,

TGS – сервер выдачи мандатов,

V – сервер услуг,

IDC – идентификатор клиента С,

IDTGS – идентификатор TGS,

KC – ключ С,

AdC – сетевой адрес С,

KTGS – секретный ключ TGS, используемый совместно AS и TGS,

TS – временная метка (time stamp),

S – срок действия мандата.

Рассмотрим следующий диалог аутентификации клиента:

(1) IDC, IDTGS,

(2) где обозначает операцию шифрования данных с помощью ключа KС, МTGS- мандат TGS,

(3) IDC, IDV, MTGS

(4) МандатV.

В этом диалоге клиент отправляет серверу AS свой идентификатор и идентификатор сервера TGS, к которому ему надо получить доступ. В ответ сервер AS вырабатывает мандат, зашифрованный совместным с TGS секретным ключом. Этот мандат далее шифруется еще раз, на этот раз ключом клиента, что исключает доступ к мандату третьих лиц.

Клиент расшифровывает мандат и отправляет его серверу TGS с указанием своего идентификатора и идентификатора сервера V, к которому ему требуется получить доступ. Отметим, что мандат М продолжает оставаться зашифрованным и не может быть изменен пользователем С. По сути С получает нечто, что он должен передать серверу TGS для получения услуг.

Сервер TGS, расшифровав мандат, проверяет идентификатор пользователя и его сетевой адрес, а также срок действия мандата, после чего посылает С мандат MV на получение услуг сервера V.

Эта схема предполагает, что клиент С аутентифицируется однократно на сервере AS в некоторый момент времени TS1, например, в начале рабочего дня, и получает мандат TGS длительного времени, определяемого сроком действия мандата S1, например, в течение всего рабочего дня. Мандат TGS сохраняется на рабочей станции клиента и может использоваться многократно для доступа к различным услугам сети. Каждый раз, когда клиенту требуется новую услугу, он предъявляет мандат серверу TGS, который выдает клиенту уже одноразовый мандат на доступ к конкретному сервису.

Однако, в этой схеме есть существенный изъян, заключающийся в том, что мандат, пересылаемый от клиента С серверу TGS на шаге 3, может быть перехвачен противником и использоваться для доступа к услугам сети. Для предотвращения этой возможности предложен более защищенный вариант этого диалога. В этом диалоге сервер AS вырабатывает новый секретный ключ , который передает клиенту С и серверу TGS для шифрования аутентификатора С, содержащего его имя и сетевой адрес:

(1) IDC, IDTGS, TS1

(2) где

(3) IDV, MTGS,

(4) МандатV.

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

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

Протокол Kerberos версии 5.

Версия 5 описывается в документе RFC 1510 и содержит ряд несущественных усовершенствований по отношению к версии 4, расширяющих возможности протокола. Появилась новая возможность передачи (делегирования) полномочий, предоставляемых мандатам, другим участникам процесса. Основные отличия заключаются в следующем:

1. Клиент С при первом обращении к серверу AS добавляет в свой запрос некоторое случайное число – оказию (nonce), которое должен воспроизвести сервер AS, чтобы связать ответ сервера с запросом клиента,

2. Мандат , выдаваемый клиенту сервером AS, не шифруется вторично ключом клиента. Секретный ключ для обмена данными между клиентом и сервером TGS в этом случае передается в виде . Здесь оказия – то же случайное число, которое было выслано в первом запросе. Исключение двойного шифрования мандата позволяет уменьшить расход ресурсов на шифрование/ расшифровку мандата. Выделение области TGS позволяет ограничить область действия мандата.

3. Сам мандат включает в себя новый параметр – поле флагов. Эти флаги позволяют уточнить тип и способ применения мандата, например, может ли этот мандат быть передан владельцем другим лицам.

4. Аутентификатор клиента, передаваемый С серверу TGS на шаге 3, может содержать новые данные – сеансовый подключ, используемый однократно для работы с приложением, а также порядковый номер для нумерации сообщений, посылаемых клиенту.

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

Эти изменения, в целом, не меняют основных особенностей протокола Kerberos и не являются существенными для понимания.

Аутентификация Kerberos в доменах Active Directory, управляемых ОС Windows.

По мере роста и усложнения компьютерных сетей предприятия, построенных на основе систем Windows, становится необходимым применение протокола, обеспечивающего более совершенную и надежную аутентификацию пользователей при доступе к распределенным ресурсам. В операционных системах Windows 2000 и старше для этих целей применяется протокол аутентификации Kerberos версии 5, входящий в систему безопасности доменов Windows Server, тесно интегрированную с Active Directory. Реализация протокола Kerberos версии 5 в Windows основана на RFC 1510. Этот документ широко обсуждался и корректировался многими организациями, работающими в области создания и применения защищенных средств передачи информации по компьютерным сетям. Аутентификация Kerberos полностью отвечает требованиям к протоколам подобного назначения и позволяет создать высокопроизводительную и защищенную сеть предприятия. Программное обеспечение Kerberos, созданное Microsoft, поддерживает всех клиентов, удовлетворяющих RFC 1510. Однако полную поддержку сетей Windows 2000 осуществляет только клиент Kerberos, разработанный Microsoft, поскольку версия Kerberos Microsoft обладает рядом расширений.

Системы Windows Server 2003 в полной мере используют все средства распределенной безопасности, внедренные в Windows 2000. Протокол Kerberos интегрирован в существующую модель распределенной безопасности Windows 2000/Server 2003. В этих системах используются расширения протокола Kerberos — так же, как и другие архитектуры безопасности, например ОСЕ и SESAME. Протокол Kerberos — один из протоколов безопасности, поддерживаемых Windows 2000/Server 2003. Кроме него, поддерживаются протоколы NTLM для совместимости с предыдущими версиями, SSL и стандарт IETF безопасности транспортного уровня. В качестве механизма безопасности применяется протокол защищенных переговоров (Simple Protected Negotiation, SPNEGO). Для обеспечения безопасности передачи данных на сетевом уровне применяется технология IP Security (IPSec).

Сердцем Kerberos в системе Windows является Центр распределения ключей (KDC – Key Distribution Center). Именно KDC отвечает за установление защищенной связи между клиентом и сервером посредством безопасного распределения криптографических ключей.

В сетях Windows KDC работает в процессе локального диспетчера защиты (Local Security Authority, LSA), Lsass.exe на контроллерах домена. Все компьютеры и службы, входящие в данный домен, регистрируются в службе LSA и получают имя и пароль. Эти данные используются для взаимной аутентификации в системе клиент-сервер.

Логически KDC разделен на службу аутентификации AS и службу предоставления мандатов (TGS). Функции этих служб были объяснены в предыдущих разделах.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]