Концепции обеспечения безопасности вычислительной сети на основе 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]:
  1. Пользовательские учетные данные передаются с пользовательской рабочей станции на главный узел используя аутентифицированный зашифрованный сетевой канал .NET Remoting.
  2. На главном узле учетные данные шифруются с помощью алгоритма AES через Windows’ Data Protection API (DPAPI) и хранятся на главном узле в базе данных планировщика задач.
  3. Когда запускается задача, планировщик задач на главном узле расшифровывает учетные данные и посылает их каждому вычислительному узлу, назначенному на задачу. Эта пересылка осуществляется через другой аутентифицированный зашифрованный сетевой канал .NET Remoting.
  4. После получения учетных данных пользователя, служба менеджера вычислительного узла создает на каждом вычислительном узле главный маркер пользовательского сеанса, затем локально удаляет учетные данные. Пароль пользователя не хранится в маркере сеанса. Маркер используется всеми последующими процессами на узле. Когда узел завершает назначенные ему задания задачи, маркер сбрасывается.
  5. Когда задача закончена, планировщик задач удаляет на главном узле зашифрованные пользовательские учетные данные из базы данных планировщика.

       Важным моментом является то, что CCS передает пользовательские учетные данные исключительно по зашифрованным и аутентифицированным каналам.
       Пользователи кластера могут выбрать хранение своих учетных данных локально на своих рабочих станциях [2]. Когда учетные данные сохраняются таким образом, пользователю не нужно вручную вводить имя и пароль каждый раз, когда он посылает задачу.
       Пользовательские учетные данные, которые кэшируются локально, шифруются с ключом, известным только планировщику задач на главном узле. Главное преимущество заключается в том, что если клиентский компьютер будет утерян или украден, даже если злоумышленник знает, где искать сохраненные сетевые учетные данные, их нельзя использовать, потому что ключ шифрования находится не на украденном компьютере. И если главный узел утерян или украден, злоумышленнику придется взломать пароль администратора на главном узле, чтобы получить ключ шифрования.

Литература:
[1] Windows Compute Cluster Server 2003 Administrator’s Guide
[2] Windows Compute Cluster Server 2003 User’s Guide