Концепции обеспечения безопасности вычислительной сети на основе Microsoft Compute Cluster Server 2003
Чумак Д. Ю., Ладыженский Ю. В.
Microsoft Compute Cluster Server 2003 (CCS) предлагает надежную защиту MPI-трафика от угроз отказа в обслуживании (Denial of Service), подделки данных (Data Tampering), раскрытия информации (Information Disclosure).
Основные концепции системы обеспечения безопасности в CCS состоят в следующем. Каждая задача, которая передается на вычислительный кластер, использует учетные данные (имя пользователя и пароль) владельца задачи. Эти учетные данные хранятся диспетчером заданий в зашифрованном виде на локальном компьютере. Доступ к ключу расшифровки имеется только у ведущего узла. Так как задача запускается с правами отправившего ее пользователя, вычислительные узлы имеют доступ к тем же сетевым ресурсам, которые доступны пользователю. Это упрощает создание задачи и ее отладку.
CCS использует Active Directory и Security Support Provider Interface для аутентификации и Data Protection API (DPAPI) для шифрования пользовательских учетных данных ассоциированных с задачей.
CCS аутентифицирует пользовательский компьютер, устанавливая сетевой канал .NET Remoting для вызова функций Security Support Provider Interface (SSPI) API. SSPI использует соответствующий метод аутентификации (Kerberos, если не используется прокси-сервер, или NTLM если компьютер пользователя не может использовать Kerberos) и работает с Active Directory и рабочей станцией пользователя, чтобы аутентифицировать пользователя.
Когда пользователь впервые отправляет задание, система запрашивает имя пользователя и пароль. В этот момент учетные данные можно сохранить в специальном кэше на компьютере-отправителе. Учетные данные передаются по безопасному каналу Microsoft .NET Remoting, затем защищаются интерфейсом прикладного программирования Windows Data Protection (DPAPI) и хранятся в базе данных заданий. Когда задание запускается, ведущий узел расшифровывает учетные данные и по другому безопасному каналу .NET Remoting передает их вычислительным узлам, где они используются для создания маркера, а затем удаляются. Все действия выполняются с помощью этого маркера, который не содержит учетных данных в явном виде. После завершения задания ведущий узел удаляет учетные данные в базе данных заданий.
Когда тот же пользователь отправляет то же задание на повторное выполнение, ввод учетных данных не требуется, поскольку они уже находятся в кэше локального компьютера с диспетчером заданий. Это облегчает повторную отправку заданий и обеспечивает комплексную безопасность учетных данных на протяжении всего жизненного цикла заданий.
Последовательность, в которой пользовательские учетные данные обрабатываются CCS [1]:
- Пользовательские учетные данные передаются с пользовательской рабочей станции на главный узел используя аутентифицированный зашифрованный сетевой канал .NET Remoting.
- На главном узле учетные данные шифруются с помощью алгоритма AES через Windows’ Data Protection API (DPAPI) и хранятся на главном узле в базе данных планировщика задач.
- Когда запускается задача, планировщик задач на главном узле расшифровывает учетные данные и посылает их каждому вычислительному узлу, назначенному на задачу. Эта пересылка осуществляется через другой аутентифицированный зашифрованный сетевой канал .NET Remoting.
- После получения учетных данных пользователя, служба менеджера вычислительного узла создает на каждом вычислительном узле главный маркер пользовательского сеанса, затем локально удаляет учетные данные. Пароль пользователя не хранится в маркере сеанса. Маркер используется всеми последующими процессами на узле. Когда узел завершает назначенные ему задания задачи, маркер сбрасывается.
- Когда задача закончена, планировщик задач удаляет на главном узле зашифрованные пользовательские учетные данные из базы данных планировщика.
Важным моментом является то, что CCS передает пользовательские учетные данные исключительно по зашифрованным и аутентифицированным каналам.
Пользователи кластера могут выбрать хранение своих учетных данных локально на своих рабочих станциях [2]. Когда учетные данные сохраняются таким образом, пользователю не нужно вручную вводить имя и пароль каждый раз, когда он посылает задачу.
Пользовательские учетные данные, которые кэшируются локально, шифруются с ключом, известным только планировщику задач на главном узле. Главное преимущество заключается в том, что если клиентский компьютер будет утерян или украден, даже если злоумышленник знает, где искать сохраненные сетевые учетные данные, их нельзя использовать, потому что ключ шифрования находится не на украденном компьютере. И если главный узел утерян или украден, злоумышленнику придется взломать пароль администратора на главном узле, чтобы получить ключ шифрования.
Литература:
[1] Windows Compute Cluster Server 2003 Administrator’s Guide
[2] Windows Compute Cluster Server 2003 User’s Guide