ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 12.12.2023
Просмотров: 51
Скачиваний: 1
ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.
1. Общая информация и принципы работы протокола.
Протокол аутентификации Kerberos (Цербер) был создан в середине 80-ч годов в Массачусетском технологическом университете в рамках проекта Athena для сетей TCP/IP. Версии Kerberos с 1 по 3 изначально были реализованные для внутреннего использования и являлись свободно распространяемым программным продуктом (кроме криптографических модулей), что позволяло разработчикам прикладных систем и системным администраторам работать с «прозрачным» инструментом, работающим понятным и проверяемым способом. Пятая версия протокола Kerberos, была принята в качестве стандарта IETF для сети Internet написанную в RFC 1510. Основным отличием 4-й и 5-й версии является разные алгоритмы шифрования. В четвертой версии применяются алгоритмы DES с длиной ключа в 56 бит. Пятой - благодаря присоединяемому к шифрованной части блока информации идентификатору типа шифрования, имеется возможность использовать RC4, DES алгоритмы, MD5Hash алгоритм хеширования, при этом DES алгоритм поддерживает режим CBC (сцепленных шифровальных блоков) и многое другое.
При разработке протокола разработчики руководствовались следующими основными требованиями:
1. Защита. Злоумышленник с целью имитации другого пользователя, имеющий возможность перехвата сообщения в сети, не может получить необходимую информацию.
2. Надежность. Заключается в недоступности сервера Kerberos запрашиваемой службы (сервиса).
3. Прозрачность. Клиент (пользователь) не должен замечать каких-либо внешних проявлений процедуры аутентификации, кроме первоначального ввода пароля.
4. Масштабируемость. Система должна поддерживать большое (увеличивающееся) количество клиентов и серверов.
1.2 Аутентификация в операционных системах.
В виду того, что свое первое применение в ОЕМ Kerberos нашел в ОС Windows 2000, то и в качестве примера мы будем использовать эту операционную систему. В Windows 2000 поддерживается несколько протоколов, которые позволяют убедиться системе в том, что пытающийся войти в систему пользователь имеет свою учетную запись и соответствующие права. Это как протоколы аутентификации удаленных подключений, так и протоколы аутентификации пользователей, входящих в сеть через Интернет. Внутри же корпоративных сетей, где реализована доменная система управления сетью для проверки пользовательских данных имеется два протокола:
1) Windows NW LAN Manager (NTLM) – протокол, применяемый как стандартное средство сетевой аутентификации в операционной системе Windows NT 4.0. В ОС Windows 2000 он используется для аутентификации серверов и доменов Windows NT 4.0. Так же, NTLM применяется локальной аутентификации на автономных компьютерах. Компьютеры с ОС Windows 3.11, Windows 95, Windows 98, Windows NT 4.0 могут использовать протокол NTLM для сетевой аутентификации в доменах Windows 2000, однако, когда есть выбор в среде Windows 2000 по умолчанию будет использоваться второй протокол- Kerberos
2) Kerberos v. 5 является стандартным средством аутентификации сетевых пользователей в Active Directory домене на компьютерах с ОС Windows 2000 и выше.
Основное отличие протокола Kerberos от NTLM заключается в большей гибкости, большей эффективности и повышенном уровне обеспечения безопасности. Далее следует перечислить перечень конкурентных преимуществ более детально.
-
Цербер реализует более эффективную аутентификацию на серверах.
В отличии от процесса аутентификации по протоколу NTLM серверу приложений не нужно подключаться к контроллеру домена каждый раз при проверке каждого пользователя. Kerberos производит аутентификацию за счет проверки «удостоверения», предоставленного клиентом, которое он получает от контроллера домена единожды, после чего может многократно использовать его на протяжении всего сеанса работы в сети.
2. Kerberos реализует такую полезную функцию как взаимная аутентификация. Протокол NTLM позволяет идентифицировать своих клиентов, но не предусматривается верификации сервера ни клиентами, ни другими серверами, то есть допускает, что все серверы сети по умолчанию легитимные. В отличии от NTLM, Kerberos такого допущения не делает, в следствие чего проверяет обоих участников сетевого сеанса, каждый из которых может точно знать, с кем осуществлено подключение.
3. Делегирование аутентификации. В момент обращения клиента сети Windows к ресурсам, службы операционной системы сначала производят его идентификацию. Обычно, для выполнения вышеуказанной процедуры службе достаточно информации содержащейся на локальном компьютере. Оба протокола обеспечивают все данные, необходимые для идентификации пользователя на месте, но иногда этих данных бывает недостаточно. Некоторые распределенные приложения требуют, чтобы при запросах к серверным службам на других компьютерах идентификация клиента производилась локально службой самого клиента. В Kerberos предусмотрен механизм «представительских мандатов», который позволяет на месте идентифицировать клиента при его подключении к другим системам. NTLM не позволяет реализовать подобный сценарий.
4. Одним из основных достоинств механизма взаимной аутентификации, реализуемого протоколом Kerberos, является упрощенное управление доверительными отношениями, что означает, что доверительные отношения между доменами Windows 2000 по умолчанию являются двусторонними и транзитивными, в следствие чего в сетях с множеством доменов не приходится устанавливать множество явных доверительных отношений. Реализуется это как бы сведением всех доменов большой сети в дерево транзитивных отношений взаимного доверия, то есть удостоверение, выданное системой безопасности одного любого домена, может приниматься во всех ответвлениях дерева, если сеть содержит несколько «деревьев», то удостоверение любого из них будет приниматься в любых других «деревьях».
5. Широкая распространенность Kerberos 5, обеспечивает повсеместную совместимость протокола. Благодаря подходу использования стандартных спецификаций, рекомендованных группой IETF, аутентификация клиентов Windows 2000 возможна во всех сетях, поддерживающих Kerberos.
1.3 Основные принципы работы протокола Kerberos
В основе процесса аутентификации, реализованном в протоколе, лежит схема идентификации по принципу «общей тайны». Упрощенно схема аутентификации в виде определения выглядит следующим образом: если существует секрет известный только двоим, то любой из владеющих этим секретом может легко удостовериться, что имеет дело со втором хранителем этого секрета. Достаточно доподлинно установить, что напарник знает вашу «общую тайну».
Развернем это определение в объектно-прикладную плоскость. Например, двое человек, Елена часто направляет в адрес Стива некие сообщения, причем Стив использует содержащуюся в них информацию лишь в том случае, когда полностью уверен, что сообщение поступило именно от Алёны. Для этой цели они условились использовать пароль, которые знают только они двое. То есть если из текста сообщения можно сделать вывод о том, что отправитель знает общий пароль, то Стив может точно сказать: сообщение пришло от Алёны. Далее следует понять и решить, каким образом подтвердить своё знание пароля. Самым простым и очевидным решением выглядит включение пароля в текст сообщения в условленном месте, например “Dear, Steve!$SharedPAssword”, и действительно, это было бы идеальным решением при условии, что никто другой не может прочитать их переписку, однако почта передается по сети, что подразумевает наличие других пользователей, среди которых есть некто Эдвард, большой любитель анализировать сетевой траффик своим самописным анализатором пакетов в надежде перехватить чей-либо «общий секрет». Тем самым вся очевидность и удобность вышеизложенного решения сходит на нет, чтобы общий пароль оставался секретным, о нем не следует говорить открыто, нужно опосредованно дать знать напарнику, что он тебе известен.
Вот мы и подошли к сути: данная проблема решается использованием протокола Kerberos с помощью средств криптографии (использованием секретного ключа) и доверенного посредника. Но обо всем по порядку.
1.4 Аутентификация (аутентификаторы)
Одним из основных средств защиты информационных систем является механизм аутентификации, как один из самых важных элементов безопасности. Современные информационные системы – множество территориально рассредоточенных составляющих. В большинстве случаев пользователям информационной системы требуется доступ не к одному сервису. Суть механизма аутентификации по секретному ключу можно описать следующим образом:
- некий пользователь стучится в сетевую дверь некого сервера и просит разрешения на вход. Чтобы пользователю доказать, что он именно тот, за кого себя выдает и имеет право на вход ему следует предъявить аутентификатором (authenticator), который с учетом рассматриваемой нами темы является зашифрованным с помощью секретного ключа специальным блоком информации. При этом информация, содержащаяся в этом блоке должна меняться при каждом последующем сеансе работы в сети, иначе предполагаемый злоумышленник получает возможность воспользоваться перехваченным аутентификатором (атака повторного воспроизведения). Получив аутентификатор, «привратник» расшифровывает его и проверяет полученную информацию, чтобы убедиться в успешности дешифрования. При условии, что всё прошло нормально, «привратник» удостоверяется, что пользователю, предъявившему аутентификатор известен секретный ключ, а так как это ключ знают лишь двое – один из них «привратник», то вполне справедливо сделать вывод, что стучащийся именно тот человек, за кого себя выдает. Возможен так же механизм взаимной аутентификации. В данном случае используется тот же принцип, но в обратном порядке и с некоторыми модификациями: «привратник» извлекает из исходного блока часть информации, а затем опять шифрует её, получая при этом новый аутентификатор и направляет его стучащемуся в дверь. Тот же расшифровывает полученную информацию и сравнивает её с исходной, если всё совпадает, то вывод получается следующим: если «привратник» расшифровал оригинал, значит он знает секретный ключ.
Вышеизложенное рассмотрим на следующим примере. Допустим Елене и Артем условились, что перед тем как пересылать информацию между своими компьютерами, они будут с помощью известного им двоим секретного ключа проверять кто есть кто на разных концах линии связи. Допустим Елена в данном примере играет роль осторожного гостя, а Артем – бдительного привратника, таким образом процесс аутентификации будет выглядеть следующим образом:
-
Елена направляет в адрес Артема сообщение, в котором содержится
её имя в открытом виде и аутентификатор, зашифрованный с помощью секретного ключа известного только им. Причем само по себе в реализации рассматриваемого протокола, такое сообщение представляет из себя структуру данных с двумя полями: информация об Елене, то есть имя и текущее время на её компьютере.
-
Артем получает сообщение и видит, что оно пришло от некого человека называющего себя Елена, далее он расшифровывает вторую половину сообщения тем ключом, которым они условились с Елена шифровать аутентификатор, и узнает время отправки сообщения.
Артем было бы намного проще, если бы его компьютер работал синхронно с компьютером Елена, поэтому есть смысл предположить, что оба они синхронизируют системное время рабочих станций с сетевым временем, тем самым часы на их машинах идут практически одинаково. Далее уместно допущение, что часы на компьютерах Артем и Елена никогда не расходятся более чем на 5 минут. При указанных допущениях Артем может сравнивать извлеченное из второго поля аутентификатора значение с текущим системных временем на своей машине и если расхождения составит более пяти минут компьютер согласно протокола автоматически откажется признавать подлинность аутентификатора. В обратном же случае, если расхождение по времени окажется в пределах допустимого значения, то есть менее пяти минут, то можно с большой долей уверенности предположить, что аутентификатор пришел именно от Елена. Тем не менее, данных выводов не достаточно, нужна полная уверенность, ведь существует возможность перехвата предыдущей попытки Елена выйти на связь со Артем и использование её «старого» аутентификатора. Однако, если на компьютере сохранились записи о времени аутентификаторов, присланных от Алёны за последние 5 минут, то Артем способен найти последний и отказаться от всех других сообщений, отправленных одновременно с ним или ранее. Но если второе поле с меткой времени говорит о том, что сообщение ушло в сеть уже после отправки последнего аутентификатора Елена, то его автором вполне могла быть Елена.
3. Стив шифрует поле времени из сообщения Елена при помощи их общего ключа и прикрепляет его в собственное сообщение в направлении Елена. Следует отметить, что Артем возвращает Елена не всё содержимое её аутентификатора, а только шифрованную метку времени. При отправке всего сразу у Елены бы возникли подозрения, что кто-то вероятно притворившись Артем попросту скопировал его аутентификатор из её исходного сообщения и без модификации оного отправил назад. В полученном письме содержится лишь часть информации, что свидетельствует о том, что получатель исходного аутентификатора смог расшифровать его содержимое, обработать его и правильным образом (общим ключом) зашифровать обратно. Использование метки времени обусловлено тем, что это поля является уникальным идентификатором сообщения Елены. Елена получив ответ от Артема расшифровывает его, и сравнивает метку времени с данными времени указанными в исходном аутентификаторе. При совпадении этих данных, Елена может быть уверена, что её аутентификатор дошел до кого-то кто знает их с Артемом общий секретный ключ, смог расшифровать его и извлечь данные о времени, учитывая тот факт, что ни Артем, ни Елена свой ключ никому не передавали, то справедлив вывод, что именно Артем получил аутентификатор Елены и ответил на него. Механизм взаимной аутентификации представлен на рисунке 1.