Файл: Сервер аутентификации Kerberos (Цербер) (Понятие «Аутентификация» и его сущность).pdf
Добавлен: 04.04.2023
Просмотров: 322
Скачиваний: 2
Под идентификацией обычно понимается процедура, посредством которой пользователь или процесс сообщает сведения о себе. Проверка подлинности, или аутентификация - это процедура проверки достоверности предъявленных данных. Современные информационные системы представляют собой совокупность разнородных и реализованных на различных аппаратно-программных платформах, территориально разнесенных компонентов. Как правило, большинству пользователей требуется доступ ко многим сервисам, предоставляемым системами. В то же время ни им, ни системным администраторам не хочется размножать регистрационную информацию и особым образом входить в каждый сервер [15].
Выход из этой ситуации заключается в создании специального сервера проверки подлинности, услугами которого будут пользоваться другие серверы и клиенты информационной системы. Выделение особого сервера аутентификации позволяет реализовать собственные прикладные комплексы со своей системой понятий, но со стандартной процедурой проверки подлинности, что существенно облегчает управление правами доступа пользователей. Kerberos, а точнее, его версия, реализованная в MIT, является свободно распространяемым программным продуктом, доступным в исходных текстах, за исключением криптографических компонентов. Таким образом, в руках разработчиков прикладных систем и лиц, отвечающих за информационную безопасность, оказывается не "черный", а "прозрачный ящик", функционирующий понятным и проверяемым образом и доступный для "подгонки" с учетом нужд конкретной организации.
Kerberos — это протокол сетевой аутентификации. Он предназначен для обеспечения надежной аутентификации для клиент-серверных приложений с использованием криптографии с секретным ключом. Бесплатную реализацию этого протокола можно получить в Массачусетском технологическом институте. Kerberos доступен и во многих коммерческих продуктах.
Интернет — это небезопасное место. Многие протоколы, используемые в Интернете, не обеспечивают никакой безопасности. Вредоносные хакеры используют инструменты для воровства паролей. Таким образом, приложения, которые отправляют незашифрованный пароль по сети, крайне уязвимы. Хуже того, некоторые клиент-серверные приложения полагаются на клиентскую программу, чтобы быть «честными» в отношении личности пользователя, который ее использует. Другие приложения полагаются на клиента, чтобы ограничить свою деятельность тем, что ему разрешено делать, без какого-либо другого принудительного использования сервером.
Некоторые сайты пытаются использовать брандмауэры для решения своих проблем с сетевой безопасностью. К сожалению, брандмауэры предполагают, что злоумышленники находятся снаружи, что часто является очень плохим предположением. Большинство действительно разрушительных случаев компьютерной преступности осуществляются инсайдерами. Брандмауэры также имеют значительный недостаток в том, что они ограничивают использование пользователями Интернета. Во многих местах эти ограничения просто нереалистичны и неприемлемы [13].
Kerberos был создан MIT как решение этих проблем безопасности сети. Протокол Kerberos использует сильную криптографию, чтобы клиент мог подтвердить свою идентичность с сервером (и наоборот) через небезопасное сетевое соединение. После того, как клиент и сервер использовали Kerberos для подтверждения своей идентичности, они также могут шифровать все свои сообщения, чтобы обеспечить конфиденциальность и целостность данных, когда они занимаются своим бизнесом.
Kerberos свободно доступен из MIT, в соответствии с правами на доступ к авторским правам, очень похожими на те, которые используются для операционной системы BSD и X Window System. MIT предоставляет Kerberos в исходной форме, чтобы любой, кто хочет ее использовать, мог просмотреть код для себя и убедиться, что код заслуживает доверия. Кроме того, для тех, кто предпочитает полагаться на профессионально поддерживаемый продукт, Kerberos доступен как продукт от многих разных поставщиков [15].
Таким образом, Kerberos является решением проблем безопасности сети. Он предоставляет инструменты аутентификации и сильную криптографию по сети, чтобы помочь защитить свои информационные системы на всем предприятии.
Протокол Kerberos является более безопасным, более гибким и более эффективным, чем NTLM (протоколом сетевой аутентификации, разработанный Microsoft для Windows NT). Преимущества, полученные при использовании проверки подлинности Kerberos:
- Делегированная аутентификация.
Службы Windows олицетворяют клиента при доступе к ресурсам от имени клиента. Во многих случаях служба может завершить свою работу для клиента, обратившись к ресурсам на локальном компьютере. Как NTLM, так и протокол Kerberos V5 предоставляют информацию о том, что служба должна выдавать себя за своего клиента локально. Однако некоторые распределенные приложения разработаны таким образом, что передняя служба должна олицетворять клиентов при подключении к внутренним службам на других компьютерах. Протокол Kerberos включает механизм прокси, который позволяет службе выдавать себя за клиента при подключении к другим службам. В NTLM нет эквивалента.
- Интероперабельность.
Внедрение Microsoft протокола Kerberos основано на стандартизованных спецификациях, рекомендованных для целевой группы Internet Engineering Task Force (IETF). В результате реализация протокола Kerberos V5 в Windows Server закладывает основу для взаимодействия с другими сетями, в которых протокол Kerberos V5 используется для аутентификации.
- Более эффективная аутентификация на серверах.
При аутентификации NTLM сервер приложений должен подключиться к контроллеру домена для аутентификации каждого клиента. С другой стороны, с протоколом проверки подлинности Kerberos V5 сервер не обязан переходить на контроллер домена. Вместо этого сервер может аутентифицировать клиента, проверяя учетные данные, представленные клиентом. Клиенты могут получать учетные данные для определенного сервера один раз, а затем повторно использовать эти учетные данные во время сеанса сетевого входа в систему. Возобновляемые сеансовые «билеты» заменяют сквозную аутентификацию.
- Взаимная аутентификация.
Используя протокол Kerberos, сторона в конце сетевого подключения может проверить, что сторона на другом конце является сущностью, которую она утверждает. Хотя NTLM позволяет серверам проверять идентификационные данные своих клиентов, NTLM не позволяет клиентам проверять идентификатор сервера, а NTLM не позволяет одному серверу проверять личность другого. Проверка подлинности NTLM была разработана для сетевой среды, в которой серверы считались подлинными. Протокол Kerberos V5 не делает такого предположения [1, 7, 12].
- Стандарты протокола Kerberos V5.
Протокол аутентификации Kerberos возник в MIT более десяти лет назад, когда он был разработан инженерами, работающими над Project Athena. Первым публичным релизом был протокол аутентификации Kerberos версии 4. После обширного обзора отрасли этого протокола авторы протокола разработали и опубликовали протокол аутентификации Kerberos версии 5.
Протокол Kerberos V5 теперь находится на стандартном треке с IETF. Реализация протокола в Windows Server 2003 тесно соответствует спецификации, определенной в Internet RFC 1510. Кроме того, механизм и формат передачи токенов безопасности в сообщениях Kerberos следует спецификациям, определенным в Internet RFC 1964.
Когда пользователь хочет получить доступ к серверу, серверу необходимо проверить личность пользователя. Рассмотрим ситуацию, в которой пользователь утверждает, что это, например, dima@dima.com. Поскольку доступ к ресурсам основан на удостоверениях и связанных с ними разрешениях, сервер должен быть уверен, что пользователь действительно имеет удостоверение личности, которое он утверждает. Для начала нужно надежно упаковать имя пользователя. Например, имя пользователя, то есть dima@dima.com, и учетные данные пользователя упаковываются в структуру данных, называемую билетом.
После шифрования билета сообщения используются для переноса учетных данных пользователя по сети.
Хотя протокол Kerberos аутентифицирует идентификатор пользователя, он не разрешает доступ. Это важное различие. Билеты в других контекстах, такие как лицензии водителей, часто подтверждают идентификацию и авторизацию действий или доступа. Билет Kerberos только доказывает, что пользователь — это тот самый пользователь. После проверки подлинности пользователя локальный центр безопасности разрешит или запретит доступ к ресурсам.
Сообщения Kerberos шифруются с помощью различных ключей шифрования, гарантируя, что никто не может вмешиваться в билет клиента или с другими данными в сообщении Kerberos [2].
К возможным ключам Kerberos относятся:
- Долгосрочный ключ. Ключ, известный только целевому серверу и KDC, с которым шифруется клиентский билет.
- Ключ сеанса клиента/сервера. Был подтвержден краткосрочный односеансовый ключ, созданный KDC и используемый для шифрования сообщений «клиент-сервер» и «сервер-клиент» после идентификации и авторизации.
- Ключ сеанса KDC / пользователя. KDC и пользователь совместно используют секретный ключ шифрования, который используется, например, для шифрования сообщения клиенту, содержащему ключ сеанса.
Протокол Kerberos V5 может использовать как симметричное, так и асимметричное шифрование
Поскольку большинство методов шифрования Kerberos основаны на ключах, которые могут быть созданы только KDC и клиентом, или KDC и сетевой службой, говорят, что протокол Kerberos V5 использует симметричное шифрование. То есть один и тот же ключ используется для шифрования и дешифрования сообщений.
Внедрение Microsoft протокола Kerberos также может ограничить использование асимметричного шифрования. Пара частного/открытого ключа может использоваться для шифрования или дешифрования первоначальных сообщений аутентификации от сетевого клиента или сетевой службы.
Механизм аутентификации Kerberos создает и безопасно предоставляет аутентификатор — обычно на основе уникальных временных меток, вместе с билетом клиента. Аутентификатор уникален и действителен только для одного использования. Это ограниченное использование минимизирует возможность получения и повторного использования (повторения) клиентского билета, возможно, в попытке украсть и использовать личность клиента.
2.2 Принципы работы
Поток процессов протокола аутентификации Kerberos состоит из пяти шагов:
- простая взаимная аутентификация на основе симметричной ключевой криптографии;
- центр распространения ключей;
- передача ключа сеанса в сеансах;
- «билеты» на «билеты»;
- cлужба обмена билетами.
- Простая взаимная аутентификация на основе симметричной ключевой криптографии.
Рассмотрим пример: Дима (или клиент) хочет начать безопасную связь с сервером. Оба конца решили включить протокол Kerberos для обеспечения их идентичности. Рассмотрим, как работает процесс аутентификации. Как упоминалось ранее, Kerberos включает симметричную криптографию ключа, где используется один ключ для шифрования и дешифрования [15].
Ключевая концепция, используемая здесь, заключается в том, что серверу необходимо подтвердить, что сообщение от Димы происходит от Димы, прежде чем оно обработает сообщение. Чтобы обеспечить это, они решили использовать информацию общего секретного ключа для подтверждения личности другой конечной стороны.
Клиент отправляет сообщение с именем клиента в виде простого текста и аутентификатором в зашифрованном виде с использованием секретного ключа. Аутентификатор представляет собой структуру данных, которая включает в себя два поля. Первое поле включает имя клиента, а второе поле содержит время на рабочей станции клиента [8].
После получения сообщения сервер извлекает информацию о клиенте, дешифруя аутентификатор с помощью того же секретного ключа. И он проверяет метку времени на текущее время на стороне сервера, если разница находится в пределах приемлемого перекоса, сервер решает, что сообщение, возможно, принадлежит Диме. В случае превышения времени сервер автоматически отклоняет сообщение. Аутентификатор используется здесь, чтобы избежать повторных атак. Как правило, повторные атаки происходят, когда злоумышленник в середине сообщения крадет сообщение и отправляет его на сервер, как если бы злоумышленник был пользователем.
Поскольку сервер отклоняет сообщение, если временной перекос превышает пять минут или допустимые различия, он ограничивает возможную атаку повтора.
Чтобы сообщить клиенту, что сервер получил сообщение, сервер шифрует временную метку Димы секретным ключом и отправляет обратно ему. Поскольку сервер отправляет только метку времени, а не передает все данные от аутентификатора клиента, он может подтвердить, что никто не получил его сообщение, кроме сервера. Поскольку только сервер может расшифровывать и извлекать данные метки времени. Следовательно, после дешифрования сообщения сервера с использованием секретного ключа клиент сравнивает метку времени со временем в исходном аутентификаторе. Если оба раза совпадают, он может быть уверен в том, что его сообщение достигло того, кто знает секретный ключ, и он должен быть сервером, поскольку секретный ключ делится только с сервером.