Система аутентификация Керберос для распределенных вычислительных сетей Современные распределенные вычислительные системы обслуживают большое количество пользователей, обращающихся к ним через сети связи. В этих системах требуется точная аутентификация пользователей, запрещающих доступ к системным ресурсам. Известны различные системы аутентификации, решающие эту задачу с разной степенью зффективности. В последние годы все большее внимание привлекает система аутентификации Керберос (КеrЬеrоs) для вычислительных сетей. Система Керберос, использующая пакет программ для аутентификации, была первоначально разработана в Массачусетском технологическом институте США (МТI) в рамках проекта Athena для управления доступом студентов, научных сотрудников и пользователей рабочих станций факультетов к имеющимся в институте компьютерам. В дальнейшем эта система стала развиваться как система аутентификации для распределенных вычислительных сетей. В настоящее время известно несколько версий системы Керберос. В течение нескольких лет успешно применялась версия 4, затем в Массачусетском технологическом институте была разработана более совершенная версия 5 (КеrЬеrоs vеrsion 5, или V5), которая принята как стандартная для сети Iпtеrnеt и фактически стала стандартной системой удаленной аутентификации в среде пользователь - сервер распределенных вычислительных сетей. В отличие от других известных систем аутентификации (например, систем с генератором паролей или биометрических систем) Керберос не требует для ее внедрения дополнительных аппаратных средств. Конфиденциальность передач данных в сети и надежность аутентификации достигаются в системе Керберос применением шифрования данных и паролей пользователей по алгоритму DЕS в комбинации с контрольной суммой. Для защиты доступа в вычислительные сети система Керберос испольэует три основных ее компонента: сервер аутентификации: сервер выдачи мандатов (разрешительный) на доступ к другим серверам и прикладным программам (приложениям) сети; базу данных. Сервер аутентификации гарантирует, что лицо, обратившееся за разрешением на доступ как законный польэователь, действительно является таковым. Для этого сервер использует хранящиеся в базе данных имена всех пользователей сети, их пароли, названия сетевых служб, к которым может иметь доступ конкретный пользователь. Чтобы получить доступ к вычислительным ресурсам и службвм сети, пользователь должен ввести свой пароль в рабочую станцию или терминал для его аутентификации. Пароль вводится только один раэ и процесс аутентификации при дальнейших обращениях пользователя к серверам сети осуществляется автоматически. В отличие от других систем парольной защиты в системе Керберос введенный пароль не передается по сети, а вместо этого в сервер аутентификаций сообщаются имена пользователя и службы, к которой запрашивается доступ. Сервер аутентификации, обращаясь к базе данных, проверяет полномочия пользователя. При подтверждении этих полномочий сервер аутентификации формирует сертификат для обращения к серверу выдачи разрешений, зашифрованный на секретном ключе, и передает его пользователю вместе с копией сеансового ключа. Передаваемая информация зашифровывается на ключе, в качестве которого используется пароль пользователя. После того как сервер аутентификации проверил идентичность пользователя и выдал ему сертификат, пользователь может обращаться с запросом к серверу выдачи мандатов (разрешений) на доступ к другим серверам. Для этого он вначале образует свой аутентификатор, содержащий его идентификатор и сетевой адрес, а также отметку текущего времени. Этот аутентификатор предназначен для одноразового использования и имеет очень короткое время действия (в типичном случае несколько минут). Аутентификатор вместе с запросом на доступ к конкретному серверу сети (например, серверу файлов или приложений) и сертификатом сервера аутентификации зашифровывается на сеансовом ключе пользователя и передается в сервер мандатов. Сервер мандатов расшифровывает сообщение-запрос пользователя, используя тот же сеансовый ключ, который он получает от сервера аутентификации. После расшифрования сертификата с использованием своего секретного ключа сервер мандатов сравнивает предъявленные пользователем его идентификатор и сетевой адрес с содержащимися в сертификате. При совпадении всех данных этот сервер выдает пользователю разрешение на запрашиваемый доступ. Он передает пользователю мандат многократного доступа к эапрашиваемому серверу сети и новый сеансовый ключ. Сообщение сервера зашифровывается на старом сеансовом ключе пользователя, поэтому только данный пользователь может расшифровать его. Расшифровав это сообщение, пользователь посылает запрос на доступ интересующему его серверу сети, включив в этот запрос полученный мандат и свой аутентификатор. Запрос зашифровывается на новом сеансовом ключе. При этом он может предварительно аутентифицировать сервер, к которому он обращается. Следует отметить, что наличие только одного сертификата сервера аутентификации не доказывает идентичности пользоввтеля. Выдача сертификатов пользователям является только способом безопасного распределения ключей. Идентичность пользователя полностью доказывается только при наличии сертификата и аутентификатора. Поскольку аутентификатор предназначен для одноразового использования в течение ограниченного времени, злоумышленник в случае перехвата этого аутентификатора не может использовать его в своих целях. Система Керберос, основанная на взаимодействии клиент - сервер, может применяться в самых сложных распределенных сетях, объединяющих несколько отдельных сетей. Каждая отдельнвя сеть, обслуживающая определенное количество клиентов (пользователей), должна иметь серверы аутентификации и выдачи мандатов системы Керберос, необходимые прикладные программы (приложения), файлы и принтеры. При этом должны выполняться два основных условия обеспечения безопасности: 1) сервер аутентификации должен иметь в своей баэе данных идентификаторы и пароли всех зарегистрированных пользователей; 2) сервер аутентификации должен иметь общий секретный ключ со всеми другими серверами сети, и все эти серверы должны быть зарегистрированы в базе данных сервера аутентификации. Отдельные сети, защищаемые системой Керберос, могут принадлежать различным организациям, предприятиям и учреждениям. Серверы Керберос отдельных сетей имеют общий секретный ключ для связи между собой и взаимодействия, поэтому пользователь одной сети при необходимости может получить доступ к серверам других сетей. Межсетевая связь осуществляется на основе взаимного доверия серверов сети. Когда пользователь одной сети с защитой Керберос намерен получить доступ к приложениям или службам другой такой сети, он обращается к серверу выдачи мандатов своей сети с запросом на разрешение доступа к серверу мандатов другой сети. Получив такое разрешение, польэователь предъявляет его серверу мандатов второй сети с запросом на доступ к нужной ему прикладной программе или службе. Разрешение на доступ выдается этим сервером после проверки полномочий пользователя, обратившегося с запросом. При таком взаимодействии сетей возникает серьезная проблема, связанная с количеством взаимодействующих сетей. Если это количество равно n, то обмен сообщениями об установлении общего секретного ключа, дающего возможность связи каждой отдельной сети n(n-1) с каждой другой сетью, будет равен --------. Это приведет к значи2 тельным перегрузкам сетей и их серверов. Поэтому наиболее эффективной будет такая реализация системы Керберос, при которой осуществляется взаимодействие нескольких больших сетей, а не большого количества мелких отдельных сетей. Весь обмен сообщениями в системе польэователь - сервер и между серверами осуществляется в соответствии с протоколами аутентификации. Наряду с отмеченными выше преимуществами система Керберос имеет ряд недостатков. В частности, она уязвима к угадыванию пароля. Если пользоввтель выбирает легко угадываемый пароль, злоумышленник может воспользоваться им и выдать себя за законного пользователя. Кроме того, система требует защищенного канала для ввода паролей. Если этот канал контролируется злоумышленником, он может получить достаточно информации для маскировки под законного пользователя. Эти недостатки устраняются при комбинации системы Керберос с другими методами защиты. Поскольку сервер аутентификации Керберос имеет базу данных, в которой содержатся пароли (криптографические ключи) всех пользователей организации или учреждения, очень важно чтобы эта база находилась в фиэически защищенном и безопасном компьютере. Это может быть специально выделенный для сервера аудентификации компьютер с ограниченным доступом пользователей. Первоначальные пароли всех пользователей должны быть зарегистрированы в сервере аутентификации. При небольшом количестве пользователей желательно проводить их личную регистрацию в присутствии администратора службы безопасности, который может проверить полномочия и другие документы пользователя. При большом количестве пользователей и ограниченном штате службы безопасности процедура регистрации может быть упрощена, но при этом рекомендуется с особой осторожностью относиться к данным, полученным от более слабых систем аутентификации. Рабочие станции должны иметь несколько программ - утилит, дающих возможность пользователю получить сертификаты, вести список полномочий, заменять свой пароль. Прикладные программы службы пользователь - сервер должны быть модифицированы для использования системы аутентификации Керберос. Такие прикладные программы называются "керберизованными" (КеrЬеrizеd). Керберизация прикладных программ является наиболее трудной частью применения системы аутентификации Керберос. Для преодоления этой трудности разработчик системы Керберос - Массачусетский технологический институт выпускает некоторые уже керберизованные приложения. Другие приложения керберизуются поставщиками программного обеспечения. Такие приложения становятся все более доступными с течением времени. Тем не менее каждая организация или учреждение должны модифицировать в той или иной мере каждое свое приложение. Эта модификация сводится в основном к изменениям протокола обмена пользователь - сервер, если этот протокол не предусматривает обмен, связанный с аутентификацией. Недавно разработан специальный интерфейс для применекия системы Керберос. Этот интерфейс, получивший название GSSAPI (Gеnеriс Sесuritу Sеrviсеs Аррliсаtiоn Рrоgrаmmеr Intеrfасе) - универсальный интерфейс прикладных программ для служб безопасности, - позволяет программисту разрабатывать приложения и протоколы, которые могут использоваться при различных методах аутентификации, включая и Керберос. Рекомендуется применение этого интерфейса везде, где это возможно. Однако, несмотря на свою универсальность, интерфейс GSSАРI не может поддерживать все функции системы Керберос, например взаимную аутентификацию пользователей, поэтому программист должен также использовать интерфейс прикладных программ Керберос. Система Керберос не решает всех проблем безопасности вычислительных сетей ввиду некоторых ее ограничений. Частичные решения этой проблемы могут давать другие средства обеспечения безопасности. Поэтому более надежная безопасность может быть достигнута при комбинированном применении этих средств с системой аутентификации Керберос. К таким средствам относятся, например, одноразовый код-пароль (оnе-timе раssсоdе) и криптография с открытым ключом. Механизм аутентификации с одноразовым кодом-паролем использует при каждой аутентификации новый код. Система Керберос не защищает от возможного хищения пароля с использованием вредоносной программы типа Троянский конь. Однако если бы пользователь вводил при каждом входе в систему новый пароль, то похищенный пароль стал бы бесполезен для злоумышленника. При методе аутентификации с одноразовым кодом-паролем используется прибор с размерами кредитной карточки, который или воспроизводит на дисплее изменяющийся во времени пароль (называемый кодом-паролем), или выдает код-пароль, когда он вводится с его клавиатуры. Некоторые методы используют печатный список кодов-паролей, которые должны применяться один за другим. Пользователь вводит код-пароль так же, как обычный пвроль. Криптография с открытым ключом имеет ряд преимуществ перед обычной (одноключевой) криптографией при ее применении для аутентификвции. Однако при этом возрзстает нагрузка на серверы при выполнении операций аутентификации и повышается их стоимость. В настоящее время ведутся работы по применению криптографии с открытым ключом в системе Керберос, в частности, при получении пользователем сертификата от сервера аутентификации. При этом последующий обмен, относящийса к доступу к приложениям, будет осуществляться с Использованием обычной криптографии, чтобы не снижать производительности серверов. Криптография с открытым ключом может также использоваться серверами аутентификации при обмене секретными ключами для межсетевых транзакций. В последнее время наблюдается все расширяющееся применение системы Керберос. Например, недавно фирма Digital Еquipment Соmраnу (DЕС) приняла систему Керберос для защиты банковских сетей с наибольшей концентрацией вычислительных операций в НьюЙорке, Париже и Лондоне. Первоначально фирма намеревалась создать три самостоятельные сети, однако клиенты выразили желание иметь возможность обращаться непосредственно к серверам всех трех центров. Учитывая это, фирма DЕС объединила три сети в единую сеть с центральным сервером аутентификации, находящимся в Нью-Йорке. Несмотря на необходимость пользования глобальной сетью связи для обращения к серверу Керберос в Нью-йорке, пользователи не отмечают каких-либо неудобств или задержек при выполнении их транзаций. Ряд фирм, включая DЕС, Неwlеtt Расkсard, IВМ, предлагают внедрение системы Керберос как часть их стандартных микропрограмм, записываемых в постоянную память (middleware). Dаtа Соmmunicаtions.- 1994,- 23, N 14.- Р.103-105, 108. IЕЕЕ Соmmuniсаtions Маgazinе.- 1994 .- 32, М 9 .Р. 34-38.