Совместные хранилища сертификатов (приложения Магазина Windows)

В операционных системах Windows Server 2012 и Windows 8 введены новые модели изоляции, приложения и разработки.

  • Новая модель изоляции позволяет приложению работать внутри низкоуровневого структурного элемента операционной системы, называемого контейнером приложения, который закрывает приложению доступ к ресурсам или файлам за своими пределами, если на это нет явного разрешения.
  • Новая модель приложения определяет приложение Магазина Windows. Приложения Магазина Windows выполняются внутри собственного контейнера, имеют объявленный набор возможностей и могут легко устанавливаться, выполняться и удаляться, не влияя на систему в целом.
  • Новая модель разработки включает пакет средств разработки программного обеспечения для Windows 8, созданный для упрощения доступа к возможностям Windows Server 2012 и Windows 8. Если вы создаете приложение Магазина Windows, можно использовать только те типы, которые доступны через Windows SDK для Windows 8.

Перечисленные новые модели, в особенности модель изоляции, отражаются на инфраструктуре открытых ключей (PKI), чему посвящены следующие разделы.

Хранение сертификатов для контейнера приложения

Сертификаты, предназначенные для использования в конкретном контейнере приложения, хранятся в хранилищах для каждого пользователя и контейнера. Приложение Магазина Windows, выполняемое в контейнере, имеет доступ на запись только к своему хранилищу сертификатов. Если приложение добавляет сертификаты в какое-либо из своих хранилищ, другие приложения Магазина Windows не могут читать эти сертификаты. Когда приложение Магазина Windows удаляется, вместе с ним удаляются и его сертификаты. Приложение Магазина Windows имеет также доступ на чтение ко всем хранилищам сертификатов локального компьютера, кроме хранилищ MY и REQUEST.

Кэш

У каждого контейнера приложения есть изолированный кэш, в котором могут сохраняться сертификаты поставщиков, необходимые для проверки, списки отзыва сертификатов (CRL) и ответы OCSP.

Общие сертификаты и ключи

Когда смарт-карта вставляется в устройство чтения смарт-карт, хранящиеся на карте сертификаты и ключи передаются в хранилище MY пользователя, где их может параллельно использовать любое приложение с полным доверием, которое запустил этот пользователь. Но по умолчанию контейнеры приложений не имеют доступа к хранилищу MY пользователя.

Поэтому, чтобы группы субъектов могли получать доступ к группам ресурсов, модель изоляции на основе контейнеров приложений поддерживает так называемые возможности. Возможность — это атрибут, который обеспечивает процессу контейнера приложения доступ к конкретному ресурсу. Например, возможность sharedUserCertificates предоставляет контейнеру приложения доступ на чтение к сертификатам и ключам, находящимся в хранилище MY и хранилище доверенных корневых сертификатов смарт-карты. При этом она не предоставляет доступа на чтение к хранилищу REQUEST пользователя.

Возможность sharedUserCertificates объявляется в манифесте, как показано в следующем примере.

<Capabilities>
    <Capability Name="sharedUserCertificates" />
</Capabilities>

Связанные разделы

Сертификаты

Схема создания приложений Магазина Windows на C# или Visual Basic