Четверг, 05.12.2024
Мафия Клуб: Закрытый клуб
Меню сайта
Категории раздела
Техника [175]
Информационные технологии
Мини-чат
500
Наш опрос
Затрудняет работу
Всего ответов: 0
Статистика

Онлайн всего: 2
Гостей: 2
Пользователей: 0
Главная » 2015 » Октябрь » 4 » Kerberos
20:28
Kerberos
Kerberos /kɛərbərəs/ — сетевой протокол аутентификации, который предлагает механизм взаимной аутентификации клиента и сервера перед установлением связи между ними, причём в протоколе учтён тот факт, что начальный обмен информацией между клиентом и сервером происходит в незащищенной среде, а передаваемые пакеты могут быть перехвачены и модифицированы.

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

Пример.

Пункт 1. Договоренность о пароле. Пусть Алиса общается с Бобом. При этом Боб использует информацию только тогда, когда уверен, что информация получена от Алисы. Чтобы избежать подделки они договорились между собой о пароле, который знают только они вдвоём. При получении сообщения, Боб может заключить из письма знает ли его собеседник пароль. Если собеседнику Боба пароль известен, то можно утверждать, что его собеседником является Алиса.

Пункт 2. Возникновение проблемы передачи пароля. Теперь определим, каким же образом Алисе и Бобу показывать знание пароля. Конечно, можно просто включить пароль в текст письма. Например: «Привет, Боб. Наш пароль.». Если бы только Боб и Алиса были уверены, что их письма никто не читает, тогда можно было бы воспользоваться этим способом. Но, к сожалению, почта передается по сети, в которой работают другие пользователи, среди которых есть любопытная Ева. Ева поставила себе задачу: выяснить пароль, известный только Бобу и Алисе, при помощи которого они обмениваются сообщениями друг с другом. Теперь совершенно ясно, что нельзя указывать пароль просто в тексте письма. Значит, о пароле нельзя говорить открыто, но при этом надо дать знать собеседнику, что пароль Вам известен.

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

Пункт 4. Проблема обмена паролями. При использовании простых протоколов, типа описанного выше, возникает одна важная проблема. В случае с Бобом и Алисой надо понять, как они договариваются о секретном ключе для переписки друг с другом. Конечно, люди могут встретится в парке и договориться, но ведь в сетевых переговорах участвуют и машины. Если под Алисой понимать клиентскую программу, а под Бобом — службу на сетевом сервере, то встретиться они никак не могут. Проблема состоит ещё в том, что когда клиенту надо посылать сообщение на несколько серверов, в этом случае для каждого сервера ей придётся обзавестись отдельным ключом. А серверу тогда потребуется столько секретных ключей, сколько у него клиентов. Необходимость хранить на каждом компьютере такое количество ключей создаёт риск для всей системы безопасности.

Пункт 5. Решение проблемы обмена паролями. Для решения этих проблем проектом «Афина» и был разработан специальный протокол — Kerberos. По аналогии с древнегреческой мифологией, этот протокол был назван в честь трёхголового пса, который защищал выход из царства Аида, — Цербера, или более точно — Кербера. Трём головам Цербера в протоколе соответствуют три участника безопасной связи: клиент, сервер и доверенный посредник между ними. Роль посредника здесь играет центр распределения ключей «Key distribution center», KDC.

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

Обращение клиента к серверу через KDC.

Если клиент хочет обратиться к серверу, Он посылает сообщение KDC. KDC направляет каждому участнику сеанса копии сеансового ключа, действующие в течение небольшого промежутка времени. Назначение этих ключей – проведение аутентификации клиента и сервера. Копия сеансового ключа, пересылаемая на сервер, шифруется с помощью долговременного ключа этого сервера, а направляемая клиенту – долговременного ключа данного клиента. Теоретически, для выполнения функций доверенного посредника центру KDC достаточно направить сеансовые ключи непосредственно абонентам безопасности. Однако на практике реализовать такую схему чрезвычайно сложно. Поэтому на практике применяется другая схема управления паролями, которая делает протокол Kerberos гораздо более эффективным.

Сеансовые мандаты.

В ответ на запрос клиента, который намерен подключиться к серверу, служба KDC направляет обе копии сеансового ключа клиенту. Сообщение, предназначенное клиенту, шифруется посредством долговременного ключа, общего для данного клиента и KDC, а сеансовый ключ для сервера вместе с информацией о клиенте вкладывается в блок данных, получивший название сеансового мандата («session ticket»). Затем сеансовый мандат целиком шифруется с помощью долговременного ключа, который знают только служба KDC и данный сервер. После этого вся ответственность за обработку мандата, несущего в себе шифрованный сеансовый ключ, возлагается на клиента, который должен доставить его на сервер. Получив ответ KDC, клиент извлекает из него мандат и свою копию сеансового ключа, которые помещает в безопасное хранилище (оно располагается не на диске, а в оперативной памяти). Когда возникает необходимость связаться с сервером, клиент посылает ему сообщение, состоящее из мандата, который по-прежнему зашифрован с применением долговременного ключа этого сервера, и собственного аутентификатора, зашифрованного посредством сеансового ключа. Этот мандат в комбинации с аутентификатором как раз и составляет удостоверение, по которому сервер определяет «личность» клиента. Сервер, получив «удостоверение личности» клиента, прежде всего с помощью своего секретного ключа расшифровывает сеансовый мандат и извлекает из него сеансовый ключ, который затем использует для дешифрования аутентификатора клиента. Если все проходит нормально, делается заключение, что удостоверение клиента выдано доверенным посредником, то есть, службой KDC. Клиент может потребовать у сервера проведения взаимной аутентификации. В этом случае сервер с помощью своей копии сеансового ключа шифрует метку времени из аутентификатора клиента и в таком виде пересылает ее клиенту в качестве собственного аутентификатора. Одно из достоинств применения сеансовых мандатов состоит в том, что серверу не нужно хранить сеансовые ключи для связи с клиентами. Они сохраняются в кэш-памяти удостоверений («credentials cache») клиента, который направляет мандат на сервер каждый раз, когда хочет связаться с ним. Сервер, со своей стороны, получив от клиента мандат, дешифрует его и извлекает сеансовый ключ. Когда надобность в этом ключе исчезает, сервер может просто стереть его из своей памяти. Такой метод дает и еще одно преимущество: у клиента исчезает необходимость обращаться к центру KDC перед каждым сеансом связи с конкретным сервером. Сеансовые мандаты можно использовать многократно. На случай же их хищения устанавливается срок годности мандата, который KDC указывает в самой структуре данных. Это время определяется политикой Kerberos для конкретной области. Обычно срок годности мандатов не превышает восьми часов, то есть, стандартной продолжительности одного сеанса работы в сети. Когда пользователь отключается от нее, кэш-память удостоверений обнуляется и все сеансовые мандаты вместе с сеансовыми ключами уничтожаются.

Распространение реализации Kerberos происходит в рамках авторского права аналогичного правам для BSD.

В настоящее время множество ОС поддерживают данный протокол, в число которых входят:
Windows 2000 и более поздние версии, которые используют Kerberos как метод аутентификации в домене между участниками. Некоторые дополнения к этому протоколу отражены в RFC 3244 «Microsoft Windows 2000 Kerberos Change Password and Set Password Protocols». Документ RFC 4757 описывает использование RC4 Kerberos в Windows;
различные UNIX и UNIX подобные ОС (Apple Mac OS X, Red Hat Enterprise Linux 4, FreeBSD, Solaris, AIX, OpenVMS). При этом существует две наиболее используемые реализации с открытым исходным кодом — MIT Kerberos и Heimdal, последняя из которых была изначально создана в Швеции из-за ограничений на экспорт криптографического ПО из США (англ.).
Категория: Техника | Просмотров: 327 | Добавил: ADMINISTRATOR | Теги: Kerberos | Рейтинг: 0.0/0
Всего комментариев: 0
lign="center">


Вход на сайт
Поиск
Календарь
«  Октябрь 2015  »
ПнВтСрЧтПтСбВс
   1234
567891011
12131415161718
19202122232425
262728293031
Архив записей
Copyright Mafiaclub.at.ua © 2024