Новые средства Passport в Win.Net Server и Windows XP.

Споры вокруг программных средств Microsoft Passport, предназначенных для обеспечения доступа к разнообразным ресурсам сети после однократной регистрации (single sign-on, SSO) не утихают с тех пор, как эта технология была разработана, т. е. с 1999 г. Как правило, дискуссии сводятся к тому, насколько успешно разработчикам удалось решить (если удалось) проблемы безопасности и сохранения конфиденциальности данных. Как бы в ответ на эти дебаты, корпорация Microsoft реализовала в своих новейших операционных системах Windows .NET Server (Win.NET Server) 2003 и Windows XP более защищенную версию Passport. Чтобы оценить эффективность данной системы, нужно разобраться в ее инфраструктуре, в процессе обеспечивающего аутентификацию базового взаимодействия, а также в том, как данный продукт вписывается в новые операционные системы.

Web-технологии в Passport

В системе Passport применяются обычные Web-технологии, поддерживаемые всеми браузерами. Речь идет об HTTP, динамических Web-страницах со встроенными сценариями на JavaScript, cookie-файлах и протоколе Secure Socket Layer (SSL).

Протокол HTTP применяется в системе Passport для извлечения специализированных Web-страниц (Passport Web pages) из Passport-совместимых серверов Web. Этот протокол позволяет программным средствам транспортировать имеющие отношение к обеспечению однократной регистрации пользовательские данные, создавать и извлекать информацию из cookie-файлов клиента и перенаправлять браузеры с одного узла Web на другой. Passport активно использует реализованные в HTTP команды перенаправления сообщений. Эти команды дают Web-сайтам возможность обмениваться друг с другом информацией без настройки средств взаимодействия между Web-серверами. Взаимодействие осуществляется исключительно через браузер пользователя.

Благодаря сценариям JavaScript, встроенным в страницы Web-серверов, система Passport доставляет в браузер пользователя динамический Web-контент (иначе говоря, персонифицированные Web-страницы). Microsoft отдала предпочтение языку JavaScript, а не своим средствам создания сценариев — таким, как VBScript, — потому что совместимостью с JavaScript обладают все браузеры.

Cookie-файлы обеспечивают временное и длительное хранение необходимых для функционирования Passport данных на настольной системе пользователя. Эти файлы создаются входящими в инфраструктуру Passport серверами Microsoft. Для хранения конфиденциальной информации о пользователе в системе Passport применяются зашифрованные cookie-файлы.

Протокол SSL применяется в Passport для создания безопасных туннелей, предназначенных для транспортировки конфиденциальных данных о пользователе между браузерами и Web-серверами. Эти SSL-туннели обеспечивают аутентификацию данных, их конфиденциальность и целостность, а также аутентификацию на стороне сервера.

Инфраструктура системы Passport

Перед тем как приступить к рассмотрению основ функционирования системы Passport, необходимо четко представлять себе ее инфраструктуру. Компоненты инфраструктуры Passport можно разнести по трем категориям, как показано на Рисунке 1: это серверы Microsoft Passport Nexus, Web-серверы участников системы и серверы авторизации домена Passport. Из всех упомянутых серверов инфраструктуры пользователю Passport приходится иметь дело с серверами авторизации домена и с Web-серверами участников.

Рисунок 1. Инфраструктура системы Passport.

Серверы Passport Nexus, составляющие ядро системы Passport, предоставляют всем остальным серверам инфраструктуры Passport информацию о конфигурации. Эти данные включают такие элементы, как схема профиля пользователя Passport и ключи шифрования, защищающие некоторые cookie-файлы Passport.

Web-сайт участника — это сайт, обеспечивающий своим пользователям возможность однократной регистрации в сети средствами Passport. Владельцы сайта устанавливают на своем Web-сервере программные средства для системы Passport (в том числе объект Passport Manager COM и фильтр Internet Server API, ISAPI), а также заключают с Microsoft или с одной из доменных служб соглашение о вступлении в сеть Passport SSO. В качестве примера сайтов-участников, использующих Passport, можно назвать Starbucks, eBay, ActiveState и MSN MoneyCentral. С содержащей все последние изменения версией списка всех участвующих в инициативе Passport сайтов можно познакомиться по адресу: http://www.passport.com/directory.

Сервер авторизации домена (domain authority server) — это сервер облеченной доверием третьей стороны, которая владеет доменом Passport и выступает для данного домена и для участвующих Web-сайтов в качестве проверяющей полномочия инстанции. Типичными примерами таких серверов могут служить серверы авторизации для доменов passport.com, msn.com и hotmail.com. Всеми серверами авторизации управляют специалисты Microsoft или тесно связанных с Microsoft коммерческих структур. Каждый сервер авторизации управляет базой данных, содержащей защищенную копию учетных данных пользователей для системы Passport и информацию о профилях.

Аутентификация по Passport

Как осуществляется обмен базовой информацией, обеспечивающей аутентификацию средствами Passport, в сетях, функционирующих под управлением отличных от Win.NET Server и от Windows XP операционных систем? Представим себе такую ситуацию: некий пользователь работает на компьютере Windows 2000. Он уже имеет набор учетных данных для системы Passport и пока еще не вошел в данную систему. В окне браузера пользователь вводит URL http://moneycentral.msn.com. Далее происходит следующее.

  1. Чтобы подтвердить свои полномочия в службе Passport и на узле MSN Money, пользователь щелкает на значке Sign In, расположенном в правом верхнем углу домашней страницы узла MSN Money.
  2. Производится осуществляемое средствами HTTP перенаправление (пользователя) на регистрационную страницу сервера авторизации домена Passport.
  3. Сервер авторизации домена Passport открывает для пользователя экран регистрации Passport.
  4. Пользователь вводит соответствующие учетные данные для системы Passport. По защищенному SSL-соединению эти данные передаются на сервер авторизации домена Passport. Затем сервер авторизации домена проверяет корректность полученных данных.
  5. Сервер авторизации домена Passport записывает набор содержащих конкретные сведения о домене и о пользователе данных для системы Passport в профиль пользователя в папку Temporary Internet Files на компьютере пользователя.
  6. Если процедура проверки полномочий пользователя системой Passport завершается успешно, сервер авторизации домена Passport генерирует команду HTTP, перенаправляющую пользователя обратно на Web-сервер MSN MoneyCentral.
  7. Web-сервер MSN MoneyCentral передает на браузер пользователя новую копию домашней страницы MSN Money. На этой новой странице вместо значка Sign In отображается значок Sign Out. Кроме того, Web-сервер MSN MoneyCentral записывает на компьютер пользователя набор содержащих конкретные сведения о сайте и о пользователе данных для системы Passport.

Если наш пользователь ранее не обращался к системе Passport и в тот момент, когда на этапе 1 описанной процедуры этот пользователь щелкает на кнопке Sign In, он еще не имеет набора учетных данных для системы Passport, сценарий будет выглядеть иначе. В таком случае Passport сначала направит пользователя на регистрационную Web-страницу для оформления соответствующих учетных данных.

Важная особенность базовой процедуры аутентификации средствами Passport состоит в том, что учетные данные пользователя для системы Passport никогда не передаются на Web-узел участника системы. В том, что касается проверки полномочий пользователей, узлы-участники полагаются на механизмы системы Passport.

Учетные данные, которые вводит пользователь на этапе 4 в процессе проверки его полномочий системой Passport, включают адрес электронной почты и пароль или личный идентификационный номер PIN, состоящий из не менее чем шести знаков. В системе Passport 2.0 и в более поздних версиях реализована дополнительная функция защиты — secure sign-in (иначе именуемая усиленной регистрацией — strong-credential sign-in). Эта функция наряду с адресом электронной почты и паролем запрашивает у проходящего проверку полномочий пользователя четырехзначный ключ. Система автоматически блокирует ключ записи пользователя Passport после трех попыток зарегистрироваться с неверным ключом. Функция защиты strong-credential sign-in в сочетании с предусмотренным системой Passport использованием протокола SSL для обмена связанными с проверкой полномочий данными значительно повышает степень защищенности протокола аутентификации Passport.

Еще один способ упрочения защищенности, поддерживаемой средствами Passport, состоит в привлечении внимания пользователей системы к проблеме спуфинга (подмены адресов) и связанным с ним рискам. Совсем несложно научить пользователей проверять аутентичность атрибута имени сертификата сервера SSL Passport (скажем, убедиться в том, что сертификат выдан Web-узлу с именем passport.com, а не pasport.com) или указателя URL Web-сайта Passport (например, проверить, действительно ли в URL значится http://login.passport.com, а не http://login.pasport.com). Такого рода маскирующиеся под сообщения от известных и проверенных источников спуфинг-атаки на более ранние версии Passport известны также как «атаки фиктивных коммерсантов» (bogus merchant attacks). Более подробную информацию о них можно найти в статье Дэвида П. Корманна и Эвиэла Д. Рубина «Risks of the Passport Single Signon Protocol» (http://avirubin.com/passport.html).

Еще раз о базовом обмене

Экран 1. Экран регистрации системы Passport в Win.NET Server и Windows XP.

Если же пользователь работает на платформе Win.NET Server или Windows XP, то часть задач по управлению процедурой аутентификации средствами Passport возлагается уже не на браузер, а на операционную систему. Это обстоятельство наглядно иллюстрирует тесную интеграцию средств Passport с новым поколением операционных систем Microsoft. Окно регистрации системы Passport, показанное на Экране 1, жестко запрограммировано в Win.NET Server и Windows XP. Следовательно, при работе в среде Win.NET Server или Windows XP сервер авторизации домена Passport не представляет пользователю экран регистрации Passport. Вместо этого, операционная система отображает диалоговое окно регистрации Passport, вид которого зависит от Web-сайта участника системы, инициировавшего процедуру аутентификации средствами Passport. Такая структура диалогового окна, частично определяемая Web-сайтом участника, называется маркировкой (cobranding). В итоге при выполнении аутентификационного обмена под управлением Win.NET Server или Windows XP этапы 3 и 4 осуществляются иначе. А именно, вместо того чтобы открыть для пользователя экран регистрации Passport, сервер авторизации домена Passport направляет запрос об открытии экрана операционной системе пользователя (Win.NET Server или Windows XP). Затем пользователь вводит соответствующие учетные данные для системы Passport в диалоговое окно регистрации Passport. По защищенному SSL-соединению эти данные передаются на сервер авторизации домена Passport. Затем сервер авторизации домена проверяет корректность полученных данных. Четвертый этап идентичен описанному в предыдущем разделе с той лишь разницей, что в данном случае используется диалоговое окно регистрации Passport.

Стоит отметить и два другие важные отличия, характеризующие функционирование Passport в средах Win.NET Server и Windows XP, с одной стороны, и на более ранних операционных платформах — с другой. Во-первых, в средах Win.NET Server и Windows XP иначе организован процесс регистрации в системе Passport. Операционные системы Win.NET Server и Windows XP не перенаправляют пользователя на страницу регистрации Passport, а запускают мастер .NET Passport Wizard (см. Экран 2), который сопровождает пользователя на всех этапах процесса. Кроме того, мастер может быть в любое время запущен и вручную — с помощью оснастки User Accounts из панели управления. Для этого нужно на странице Properties соответствующей учетной записи щелкнуть на пункте Set up my account to use a .NET Passport.

Экран 2. Мастер .NET Passport Wizard.

Во-вторых, в средах Win.NET Server и Windows XP учетные данные для системы Passport можно сохранять с помощью программы Credential Manager. Это средство защиты позволяет реализовать функцию однократной регистрации на основе безопасного механизма кэширования учетных сведений. Данные Credential Manager размещаются в профиле пользователя, поэтому их можно кэшировать как локально — на компьютере пользователя, так и дистанционно — на сервере (если речь идет о профиле, предусматривающем функцию роуминга). Чтобы сохранить учетные данные в кэше Credential Manager, нужно установить флажок Sign me in automatically на регистрационном экране Passport (этот переключатель представлен на Экране 1). Содержимое кэша Credential Manager можно увидеть, открыв окно свойств в оснастке User Accounts и выбрав пункт Manage my network passwords.

Конфиденциальность информации пользователя

Проблема повсеместного распространения персональной информации неразрывно связана с тем обстоятельством, что среда Web играет в нашей жизни все более важную роль. Разработчики Microsoft понимают, что реализованная в системе Passport технология SSO может завоевать всеобщее признание только в том случае, если будут успешно решены проблемы сохранения конфиденциальности данных. Microsoft поддерживает ряд инициатив, связанных с сохранением конфиденциальности в Internet. Среди них — инициатива TRUSTe и выдвинутая организацией World Wide Web Consortium (W3C) инициатива Platform for Privacy Preferences (P3P). Наконец, надо заметить, что корпорация и сама включает средства защиты конфиденциальных данных в новейшие версии своих программных продуктов (в том числе и в последние версии Passport). С общим заявлением о политике Microsoft в области сохранения конфиденциальности данных можно познакомиться по адресу: http://www.microsoft.com/info/privacy.htm, а заявление о защите конфиденциальности данных пользователей Passport размещено по адресу: http://www.passport.com/consumer/privacypolicy.asp.

Passport 2.0 и более поздние версии дают пользователю возможность с легкостью изменять содержание своего пользовательского профиля Passport и решать, какие данные предоставлять Web-сайтам участников при выполнении процедуры регистрации Passport. В среде Windows XP это делается так. Нужно открыть оснастку User Accounts, перейти в окно свойств и выбрать пункт Change My .NET Passport. Таким образом, устанавливается соединение с сервером авторизации домена Passport, и на экране компьютера появляется диалоговое окно Edit Your .NET Passport Profile.

Если пользователя беспокоит вопрос о том, как тот или иной совместимый со средствами Passport узел Web распоряжается его персональными данными, нужно иметь в виду, что существует еще одно полезное средство — встроенная в браузер Microsoft Internet Explorer (IE) 6.0 функция P3P. Напомним, что консорциум W3C реализует проект Platform for Privacy Preferences (P3P), и цель этого проекта, который представляет собой комбинацию протокола и архитектуры, состоит в информировании пользователей Web о том, как различные Web-узлы распоряжаются собранными данными. Более подробные сведения об инициативе P3P можно найти по адресу: http://www.w3.org/p3p.

Чтобы увидеть, как организаторы того или иного Web-узла пользуются собранными конфиденциальными данными, нужно в меню «вид браузера IE 6.0» выбрать пункт Privacy Report (отчет о конфиденциальности), затем выбрать в списке URL Web-узла и щелкнуть на кнопке Summary (сводка). На Экране 3 представлен отчет о конфиденциальности домашней страницы MSN Money.

Экран 3. Отчет о конфиденциальности домашней страницы MSN Money.

Passport в Win.NET Server

В готовящуюся к выпуску Win.NET Server специалисты Microsoft включили несколько функций, обеспечивающих интеграцию со средствами Passport. Эти функции позволят пользователям подтверждать полномочия доступа на Web-сервере Microsoft IIS с помощью набора учетных данных Passport. Теперь на странице свойств Web-сервера IIS в числе вариантов аутентификации имеется пункт Passport Authentication. Впрочем, воспользоваться данной функцией можно лишь в том случае, если Web-сервер IIS включен в инфраструктуру Passport в качестве сайта-участника. Информацию о том, как подключить сервер к инфраструктуре Passport SSO в качестве Web-узла участника, можно найти по адресу: http://www.microsoft.com/netservices/passport/ default.asp.

Win.NET Server не предусматривает возможность создания инфраструктур Passport масштаба предприятия, в которых организация выступает в роли хозяина собственных серверов авторизации домена и не подключена к .NET-инфраструктуре корпорации Microsoft в общедоступной сети Internet. Если нужно, чтобы права пользователей на Web-узле удостоверялись с помощью системы Passport, необходимо подключиться к инфраструктуре Passport, организованной в Internet корпорацией Microsoft. Для облегчения управления системой Passport в IIS предусмотрен также интерфейс управления Passport Manager Administration, который позволяет устанавливать параметры конфигурации Web-узла, участвующего в функционировании системы Passport.

Служба Active Directory (AD) дает возможность устанавливать соответствие между идентификаторами Passport User Identifier (PUID) и Windows SID. Следовательно, в работе с пользователями, которые удостоверяют свои полномочия в .NET-инфраструктуре с помощью учетных данных Passport, администратор может применять параметры контроля доступа на базе идентификаторов Windows SID. Соответствие между идентификаторами PUID и SID определяется свойством altSecurityIdentitities объекта-учетной записи в AD. Но если администратор может, выбрав на панели Advanced оснастки Active Directory Users and Computers консоли управления Microsoft Management Console (MMC) пункт Name Mappings, добавить дополнительные соответствия с именами и сертификатами Kerberos, с соответствиями PUID-SID этого делать нельзя. Для установления соответствий между идентификаторами PUID и SID требуется средство на базе протокола LDAP (скажем, Ldifde, ADSI Edit) или интерфейсы службы AD (Active Directory Service Interfaces, ADSI), позволяющие создавать сценарии для формирования таких соответствий.

Наконец, отметим, что сервер IIS операционной системы Win.NET Server может создавать соответствующие идентификаторам пользователей системы Passport (PUID) идентификаторы защиты (SID) «по ходу дела». Эта функция позволяет пользователям, которые удостоверили свои полномочия в IIS на основе учетных данных Passport, но не имеют заранее установленного службой AD соответствия между PUID и SID, получать доступ к ресурсам с применением идентификатора SID. В таком случае объект Passport Manager выводит (получает) вновь созданный идентификатор SID из идентификатора PUID. Но тут возникает проблема: вновь созданный идентификатор SID не отображается в списках контроля доступа к ресурсам. Иными словами, если есть желание использовать такой идентификатор SID для обеспечения доступа к ресурсам, придется написать специальный код для контроля доступа.

В Win.NET Server реализованы новаторские средства взаимодействия с Passport, однако в ней не предусмотрена особая, ориентированная на Passport система обеспечения безопасности Security Support Provider (SSP). Чтобы активизировать реализованные в IIS средства взаимодействия с Passport, нужно использовать библиотеку ISAPI DLL, именуемую passport.dll. Одно из последствий этого состоит в том, что пользователь Passport и совместимый с системой Passport сервер Win.NET Server не могут договориться о проведении аутентификации по стандарту Passport — пункт Passport authentication должен быть явно установлен в качестве значения свойства Authentication Methods на соответствующем Web-узле.

Большая ставка Microsoft

То обстоятельство, что поток усовершенствований и доработок системы Passport не иссякает — и в результате за последние три года появилось множество версий Passport, — свидетельствует о важности этого продукта для Microsoft. В 2001 г. представители корпорации позиционировали Passport как главный компонент выдвинутой Microsoft и ориентированной на потребителей инициативы по созданию Web-служб (известной также как HailStorm). В том же году Microsoft выбрала для переноса системы однократной регистрации Passport (Passport SSO) на платформы Sun Solaris компании Sun Microsystems и программные средства Ready-to-Run Software из Red Hat Linux. Более подробно об этом см. http://www.rtr.com/Ready-to-Run_Software/passport_press_release.htm. В 2002 г. Microsoft обнародовала свои планы выпустить в 2003 г. версию Passport, дополненную средствами Kerberos, которая должна стать решением компании для построенных на федеративной основе служб идентификации и аутентификации в среде Web. Рабочее название проекта — TrustBridge.

Более подробную информацию о проекте TrustBridge читатели смогут найти в посвященном TrustBridge пресс-релизе Microsoft от 6 июня 2002 г. (http://www.microsoft.com/presspass/press/2002/ jun02/06-06trustbridgepr.asp).

Время покажет, оправдаются ли большие надежды, возлагаемые Microsoft на технологию Passport. Между тем главные конкуренты корпорации, такие, как OneName и Catavault, уже занялись проблемой однократной регистрации в среде Web и предложили альтернативы решению Passport.

Также нельзя не учитывать, что другие участники рынка программного обеспечения (в том числе Sun, Novell и Hewlett-Packard) остановили свой выбор на проекте Liberty Alliance Project и на языке Security Assertion Markup Language (SAML), считая их основными компонентами для инфраструктуры однократной регистрации и построенных на федеративных началах служб Web. Но в данной статье мы привели множество оснований для того, чтобы читатели научились хорошо ориентироваться в системе .NET Passport и реализованных в ней средствах безопасности.

Жан де Клерк — консультант корпорации Compaq, специалист по проблемам безопасности продуктов семейства Microsoft BackOffice. С ним можно связаться по адресу: jan.declercq@compaq.com.