Опора на архитектуру системы безопасности Windows NT

Учитывая наличие в составе этой ОС таких компонентов, как Kerberos, Active Directory (AD) и встроенной поддержки шифрования по открытому ключу (Public Key Infrastructure, PKI), можно подумать, что разработчики Microsoft кардинально переделали архитектуру системы безопасности Windows NT. В действительности же, несмотря на столь существенные обновления, ядро системы безопасности Windows 2000 по-прежнему базируется на инфраструктуре Windows NT 4.0.

Разрабатывая архитектуру системы безопасности Windows NT 4.0, специалисты Microsoft заложили в нее возможность дальнейшего расширения. Архитектура построена на базе четко разграниченных модулей и включает несколько прикладных программных интерфейсов (API), обеспечивающих возможность добавления служб (например, шифрования и аутентификации), причем совершенно безболезненно для операционной системы.

Читателей наверняка интересует вопрос, в чем, собственно, заключается новизна архитектуры системы безопасности Windows 2000? Отвечая на него, сначала я расскажу о тех возможностях, которые демонстрирует система безопасности Windows 2000 по сравнению с аналогичной системой версии 4.0, а также о том, какие недостатки были устранены в процессе работы над ней. Затем я поясню, на основании каких новых функций Windows 2000 разработчики Microsoft намерены представить ее как операционную систему для решения задач электронной коммерции, и наконец, отдельно остановлюсь на каждом архитектурном компоненте и его функциях.

Стартовая площадка — Windows NT

Чтобы понять защитную архитектуру Windows 2000, нужно вспомнить особенности архитектуры Windows NT 4.0, которая разрабатывалась для решения ряда общих проблем, возникающих при работе в локальной сети. Так, она обеспечила возможность однократного входа в сеть (по крайней мере, для всех Windows-систем) и, в определенной степени, централизованное администрирование с помощью организации доменов.

Кроме того, в Microsoft были разработаны модуль идентификации и аутентификации (Graphical Identification and Authentication, GINA), модули уведомлений о смене пароля (notification packages) и модуль Cryptographic Service Provider (CSP), что обеспечило расширяемость системы NT. Модуль GINA отвечает за авторизацию пользователей в ходе начальной регистрации. Для выполнения дополнительных функций службы регистрации, например отображения времени последнего входа в сеть или поддержки однократного входа в сеть (Single Sign-On, SSO), допускается создание собственных вариантов GINA. В частности, в компании Novell такой модуль реализован для Windows NT-клиента операционной системы IntranetWare.

Модули уведомлений о смене пароля представляют собой встраиваемые DLL, которые позволяют определять изменение пароля и синхронизировать эту информацию с другими службами для проверки пароля на соответствие принятым правилам. Впервые библиотеки уведомлений были реализованы в службе File and Print Services for NetWare (FPNW) из состава Windows NT.

Модуль CSP позволяет приложениям перекладывать тяжесть решения задач шифрования на операционную среду. По мере появления новых стандартов шифрования или при использовании прикладной системы за пределами США, приложение может задействовать соответствующий метод шифрования безо всякой модификации. Благодаря четко определенным интерфейсам взаимодействия возможна даже замена компонентов ядра, таких, как SAM. Так, разработчики Novell замещают части ядра службами Novell Directory Services (NDS) for NT, что обеспечивает тесную интеграцию службы каталогов NDS с Windows NT.

Хотя в Windows NT 4.0 система безопасности была достаточно надежной, те администраторы, которые устанавливали NT как систему уровня предприятия, обнаружили ряд недостатков. Например, без подключения неуклюжих программных надстроек нельзя реализовать распределенную систему поддержки однократного входа в сеть (SSO). Кроме того, уязвимым местом в системе защиты NT стала обратная совместимость с LAN Manager. Возможности делегирования прав (т. е. присвоения пользователю ограниченных административных привилегий управления некоторым набором учетных записей) оказались удручающе слабыми. Так, невозможно предоставить сотрудникам службы технической поддержки право смены паролей пользователей, не наделив их правами администратора в полном объеме.

Нельзя также надлежащим образом смоделировать существующую организационную иерархию и административную структуру компании на основе плоской доменной модели Windows NT. Кроме того, NT 4.0 имеет ряд недостатков в плане масштабирования, например число пользователей в домене ограничено. Операционная система не позволяет хранить специфичную для приложений информацию в учетных записях пользователей. Функциональные возможности PKI, и без того весьма скромные, ограничены работой в Web-окружении и поддержкой соединений в Exchange Server, а функции NT PKI интегрированы в операционную систему не полностью.

Задачи новой системы безопасности

Поскольку при создании Windows 2000 разработчики Microsoft стремились устранить недостатки NT, руководство корпорации рассматривает новую ОС как наиболее подходящую для электронной коммерции.

Во-первых, в Windows 2000 заметно усовершенствована система безопасности. Для замены уязвимой системы сетевой аутентификации NT LAN Manager (NTLM) добавлен протокол Kerberos; для снижения уровня риска, связанного с парольной защитой, можно применять PKI и смарт-карты при использовании закрытого ключа. Защита от физического доступа к жесткому диску вырастала в проблему, учитывая возможность кражи ноутбука. Для ее решения в Microsoft была реализована технология шифрования данных на диске Encrypting File System (EFS).

Во-вторых, Windows 2000 базируется исключительно на промышленных стандартах и протоколах. Разработчикам Microsoft пришлось смириться с тем, что компании не могут и не будут поддерживать нестандартные технологии и что иногда лучшее решение уже реализовано другими. Так, в каждой области взаимодействия между частями системы применяются общепринятые стандарты или протоколы. В Windows 2000 реализованы LDAP, Kerberos, Public Key Cryptography Standards (PKCS), PC/CS, DNS и IPSec вместо собственных NTLM, SAM, WINS и PPTP (кое-что поддерживается для обратной совместимости). Такой подход к использованию стандартов позволяет при необходимости заменять компоненты производства Microsoft лучшими из имеющихся на рынке и расширяет возможности системы в плане взаимодействия.

В-третьих, компании потребовалась платформа, способная обеспечить снижение стоимости разработки приложений. Процесс создания такой платформы начался в NT с реализации Security Support Provider Interface (SSPI) и CryptoAPI. В Windows 2000 разработчики могут использовать предоставляемые операционной системой службы (например, службу криптографии). Независимость от поставщика услуг защищает приложения от устаревания. Компоненты, предоставляющие приложению услуги, можно модернизировать по мере развития технологий, не оказывая при этом влияния на само приложение. Например, приложение, использующее CSP, легко сможет работать с другим новым алгоритмом шифрования.

Парадигма API способствует также развертыванию приложений других разработчиков, что позволяет расширить сферу применения Windows 2000 в тех областях, которые пока не охвачены Microsoft. Кроме того, специалисты корпорации пытаются сделать свои серверные продукты более отказоустойчивыми и пригодными к работе в корпоративных сетях. Так, служба каталогов AD отличается повышенной масштабируемостью и надежностью за счет поддержки разделов каталогов и мультисерверной репликации (multimaster replication). В свою очередь, иерархическая структура каталога и редактор политик групп (Group Policy Editor, GPE) способны облегчить работу с учетными записями пользователей и настройками системы не только в рамках подразделения.

Наконец, в целях решения задач электронной коммерции, все компоненты Windows 2000 поддерживают инфраструктуру PKI, в том числе регистрацию посредством смарт-карт, базирующийся на PKI доступ к Web-серверам, технологию виртуальных частных сетей (Virtual Private Networking — VPN), систему EFS, электронную почту и Authenticode. Это осуществляется с помощью распределенных служб безопасности Windows 2000: Active Directory, служб шифрования, Certificate Services, служб аутентификации, защищенных транспортных протоколов, EFS и смарт-карт. Рассмотрим эти компоненты более подробно.

Active Directory

Active Directory (AD) — это ключевой компонент Windows 2000, позволяющий решить характерные для системы Windows NT 4.0 проблемы масштабируемости, расширяемости, администрирования и открытости. Windows NT 4.0 не приспособлена в полной мере для работы в крупных организациях, поскольку число пользователей домена не может превышать 20 000, а основные (PDC) и резервные (BDC) контроллеры домена используют схему репликации «один ко многим». Что касается Windows 2000, то здесь один домен AD способен содержать более миллиона объектов и, в большинстве случаев, не требует наличия PDC. Так, изменения, зарегистрированные на одном из контроллеров домена, реплицируются на все остальные. Надлежащая настройка мультисерверной репликации позволяет обеспечить требуемую производительность, а также гарантированную полосу пропускания для связи находящихся в разных географических зонах подразделений. Для решения этой задачи в операционной системе используются новые объекты типа сайт (site), которые описывают подсети IP. Благодаря таким объектам домены, которые обычно базируются на организационных подразделениях, не зависят от того, где эти подразделения расположены.

Служба AD существенно расширяет возможности администрирования. Теперь можно объединять пользователей и компьютеры в иерархию, соответствующую организационной структуре компании. Формирование такой структуры внутри домена обеспечивается с помощью организационных единиц (Organizational Unit, OU). Домены могут иметь родительские и дочерние домены (за исключением корневого, который не имеет родительского домена). Также разрешается назначать индивидуальные административные привилегии на любом уровне иерархии.

Windows 2000 позволяет заменить механизмы разрешения имен WINS и широковещательного NetBIOS динамическим DNS (DDNS). Базу данных DNS можно хранить в AD, увязывая ее с доменной иерархией Active Directory. Как известно, расширяемость Windows NT 4.0 не распространялась на службу каталога. Поэтому разработчики должны были самостоятельно заниматься атрибутами пользователей, специфичными для приложения, и размещать прикладные службы.

Благодаря AD разработчики могут формировать новые объекты, а также добавлять дополнительные свойства в уже существующие объекты, не занимаясь обслуживанием специального каталога приложений. (Однако AD не подходит для хранения часто изменяющихся данных.) Active Directory даже позволяет публиковать ресурсы, например общие папки, таким образом, что пользователям не нужно выяснять, где именно расположен сервер. Кроме того, в Windows 2000 предусмотрен незаметный для пользователей перенос приложений с одного сервера на другой. Дифференцированное управление и поддержка транзитивных доверительных отношений между доменами Windows 2000 (если домен А доверяет домену В, а домен В доверяет домену С, то домен А доверяет домену С) избавляют от необходимости использовать типовые доменные модели Windows NT 4.0 (в частности, модели с полностью доверительными отношениями или с одним главным доменом).

Рисунок 1. Взаимодействие Active Directory с операционной системой.
Методы доступа к данным в Active Directory, LDAP и Active Directory Service Interfaces (ADSI) и их иерархическая структура позволяют говорить о службе AD как об открытой архитектуре. Таким образом закладывается интеграция с операционными системами и приложениями, поддерживающими службы каталогов. Как показано на Рисунке 1, между AD и остальными компонентами операционной системы имеет место своеобразный симбиоз. В частности, Windows 2000 использует AD в качестве хранилища данных учетных записей и политик, а также управляет процессом наследования политик с помощью иерархической структуры службы каталогов. AD же доверяет операционной системе аутентификацию и контроль доступа к своим объектам.

CryptoAPI

Рисунок 2. CryptoAPI: комплексное решение для поддержки служб шифрования.
CryptoAPI — такой же базовый компонент защитной архитектуры Windows 2000, как и Active Directory. Задача CryptoAPI состоит в универсализации работы с низкоуровневыми службами шифрования для всех приложений и компонентов операционной системы. Как показано на Рисунке 2, это достигается путем установки программных модулей CSP — поставщиков услуг шифрования. С помощью стандартного интерфейса модули формируют ключи и цифровые подписи, предоставляют сервисы шифрования, хэширования, обслуживают сертификаты. По принципу работы CryptoAPI аналогичен интерфейсу ODBC, через который приложение может получить доступ к различным базам данных.

CryptoAPI позволяет снизить затраты на создание приложений Windows 2000 по трем направлениям. Во-первых, разработчикам не приходится изобретать системы шифрования. Во-вторых, они могут сразу выпустить приложение, способное поддерживать различные протоколы и стандарты шифрования. В-третьих, при изменении системы шифрования нет необходимости перерабатывать приложение.

Хотя CryptoAPI был реализован еще в Windows NT 4.0, теперь в него включен ряд важных дополнений в части поддержки PKI. Например, он позволяет запрашивать и публиковать сертификаты, списки недействительных сертификатов (Certificate Revocation Lists, CRL), а также дает возможность проследить историю сертификата, когда серверному приложению необходимо проверить его подлинность. Поскольку CryptoAPI работает со стандартами PKCS и X.509 версии 3, его можно использовать для управления сертификатами, размещаемыми в хранилище сертификатов Windows 2000, в Active Directory, а также в независимых сертификационных центрах (Certificate Authorities, CA).

Certificate Server

Приложение Certificate Server, также впервые реализованное в Windows NT 4.0, формирует базовые функции сертификационного центра в части запроса, выпуска, публикации и управления сертификатами. Certificate Server предоставлял средства аутентификации по Authenticode и обеспечивал возможность интеграции с Exchange Server через протокол Secure MIME (S/MIME). Вместе с тем он разрабатывался лишь как инструмент аутентификации клиентов с помощью открытого ключа в Internet Information Server (IIS). При этом управление настройками Cetrtificate Server производилось ручным редактированием текстовых файлов. Данному продукту явно не хватало функций управления, важных для применения PKI в корпорации, например средств настройки типов сертификата и параметров политик. Кроме того, он поддерживает только двухуровневые иерархии сертификационных центров (чего явно недостаточно для крупномасштабных систем).

В Windows 2000 название Certificate Server заменено на Certificate Services. При этом приложение стало более мощным и тесно интегрированным с операционной системой. Модули расширения в составе Microsoft Management Console (MMC) предоставляют графические инструменты настройки как на стороне клиента, так и на стороне сервера. Certificate Services может работать с собственным автономным хранилищем данных. Однако, в целях оптимального решения корпоративных задач, для хранения и публикаций сертификатов приложение использует Active Directory. С помощью AD можно связывать сертификаты и пользователей, а также посредством GPE контролировать, кому, от чьего имени и для каких целей Certificate Services выдала сертификаты. Наконец, данная служба теперь поддерживает многоуровневые иерархии.

На Рисунке 3 видно, как сильно «похудела» Certificate Services по сравнению с Certificate Server, чьи отдельные части были переданы другим компонентам операционной системы.

Рисунок 3. Модульная структура Certificate Server в Windows 2000
Например, функции управления сертификатами теперь включены в состав CryptoAPI, а автономное хранилище информации о сертификатах размещено в Active Directory. Поскольку Certificate Services получает доступ к своему хранилищу сертификатов через CryptoAPI, то можно публиковать сертификаты в системах каталогов независимых компаний.

Службы аутентификации

Рисунок 4. Роль SSPI в работе Authentication Services.
SSPI — это еще один прикладной интерфейс для доступа к службам аутентификации. Клиент-серверные приложения должны выполнять аутентификацию клиента на сервере, а иногда сервера на клиенте. SSPI предоставляет таким приложениям необходимый уровень абстракции, аналогичный функциям интерфейса CSP. На Рисунке 4 показано, как SSPI изолирует приложения от деталей протоколов безопасности сети, тем самым уменьшая объем прикладного кода, необходимого для поддержки различных протоколов аутентификации. Интерфейс обеспечивает выполнение аутентификации, базирующейся на протоколах с секретным или открытым ключами.

Независимо от типа протокола, в основе этого процесса лежат хранящиеся в Active Directory защитные реквизиты. При этом нет никакой необходимости иметь отдельные учетные записи для NTLM и Kerberos. PKI-аутентификация выполняется Active Directory, связывающей элементы сертификата и соответствующий объект типа «пользователь». Приложения могут задействовать SSPI напрямую, а также либо через вызовы протокола RPC с аутентификацией (Authenticated RPC), либо через интерфейс распределенной модели DCOM.

К числу других существенных преобразований в процедуре аутентификации относится замена NTLM, весьма уязвимого протокола аутентификации в версии NT 4.0, который работает с хранящимися в SAM хэш-кодами паролей. Тем не менее, в целях совместимости c NT, Windows 2000 продолжает его поддерживать. Так, при включении систем Windows 2000 в рабочие группы Windows NT, NTLM-аутентификация по-прежнему будет использовать хранящиеся в SAM защитные реквизиты. В свою очередь, при подключении системы Windows NT к серверу Windows 2000 в домене Active Directory, SAM функционировать не будет, а Windows 2000 выполнит проверку аутентичности пользователя с помощью хэшированных паролей NTLM, которые хранятся в его личном объекте AD.

При обновлении версии NT и установке нового клиента AD для Windows 9x, можно избавиться от ненадежной NTLM-аутентификации, поскольку протоколом аутентификации для Windows 2000 по умолчанию является Kerberos. Этот протокол обеспечивает более высокий уровень защиты, чем NTLM. Кроме того, он представляет собой отраслевой стандарт, который позволит реализовать принцип однократной регистрации в системе (SSO). Наконец, Kerberos решает типичные для NTLM проблемы, такие, как низкая производительность и слабые возможности заимствования прав в многоуровневых серверных приложениях.

Шифрование

Единственный способ защиты размещенной на жестком диске или в сети конфиденциальной информации — шифрование. В случае Windows NT 4.0 данные ничего не стоит перехватить с помощью систем прослушивания сети или же скопировать с диска такими средствами прямого доступа, как утилита NTFSDOS производства Systems Internals. Разработанная же для Windows 2000 система EFS дает возможность шифровать файлы простой установкой соответствующего флажка. При этом кодирование и декодирование выполняются абсолютно прозрачно для пользователя и приложения, что позволяет защитить данные любой прикладной программы.

EFS интегрирована с PKI Windows 2000 и поддерживает восстановление данных в том случае, когда секретный ключ пользователя утерян или стал недоступен. EFS незаменима для мобильных пользователей, которые хотят обезопасить себя на случай кражи ноутбука. В то же время EFS — единственный компонент Windows 2000, в котором разработчики Microsoft, вероятно, не смогут реализовать в первой версии ОС все запланированные возможности. Так что следует ожидать весьма слабой поддержки алгоритмов шифрования, за исключением лишь Data Encryption Standard X (DESX), равно как и поддержки хранения секретных ключей EFS на смарт-картах (или вообще полное отсутствие таковой).

Рисунок 5. Положение IPSec в архитектуре Windows 2000.
Как показано на Рисунке 5, чтобы прозрачно для пользователя и приложения защитить сетевые данные, Windows 2000 использует протокол IPSec. Этот протокол обеспечивает аутентификацию, конфиденциальность, целостность данных и фильтрацию для TCP/IP трафика. IPSec реализован ниже протоколов прикладного уровня и позволяет защищать сеанс связи любого приложения без его модификации. IPSec — это надежный протокол Internet, имеющий сильную отраслевую поддержку.

IPSec входит в состав Windows 2000, что облегчает его развертывание и управление. Параметры политики IPSec хранятся в AD, а управлять протоколом можно с помощью GPE. Помимо известных возможностей работы с VPN здесь реализована защита сетевого трафика внутри предприятия. Например, могут потребоваться аутентификация трафика внутри отдела разработок, шифрование трафика, проходящего между этим и другими отделами, а также запрет на доступ в Internet из указанного отдела. При этом, хотя перечисленные требования влияют на работу многих систем, всем можно управлять централизованно через Active Directory.

Развитая система безопасности

При построении архитектуры системы безопасности Windows 2000 специалисты Microsoft использовали надежные отраслевые стандарты и протоколы в сочетании с модульностью и абстракцией. Благодаря этому в Windows 2000 удалось обеспечить высокий уровень безопасности, открытости, надежности, а также поддержку электронной коммерции и снизить стоимость разработки приложений.

Microsoft широко использует возможности AD в Windows 2000, а кроме того, планирует в следующих версиях BackOffice задействовать AD в качестве центрального хранилища данных каталога и информации о политиках. На мой взгляд, проект Windows 2000 — высшее достижение Microsoft в части анализа потребностей бизнеса и удовлетворения интересов пользователей. Хочется верить, что Windows 2000 на сегодня является образцом качества выпускаемых корпорацией программных продуктов.

Об авторе

Р. Франклин Смит — президент компании Monterey Technology Group, занимающейся обучением и консалтингом в области защиты Windows NT. Связаться с ним можно по адресу: rsmith@montereytechgroup.com.