Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
В этой статье рассматривается использование сертификатов в приложениях WinUI. Цифровые сертификаты используются в шифровании открытого ключа для привязки открытого ключа к лицу, компьютеру или организации. Привязанные учетные данные чаще всего используются для проверки подлинности одной сущности перед другой. Например, сертификаты часто используются для аутентификации веб-сервера перед пользователем и пользователя перед веб-сервером. Вы можете создавать запросы на сертификаты и устанавливать или импортировать выданные сертификаты. Вы также можете зарегистрировать сертификат в иерархии сертификатов.
Общие хранилища сертификатов
Приложения WinUI используют новую модель изоляции для приложений, представленную в Windows 8. В этой модели приложения выполняются в низкоуровневой конструкции операционной системы, называемой контейнером приложений, которая запрещает приложению доступ к ресурсам или файлам за пределами себя, если это не разрешено явным образом. В следующих разделах описываются последствия, связанные с инфраструктурой открытых ключей (PKI).
Хранилище сертификатов для контейнера приложения
Сертификаты, предназначенные для использования в определенном контейнере приложений, хранятся в уникальных для каждого пользователя и каждого контейнера приложений местах. Приложение, работающее в контейнере приложений, имеет доступ на запись только к собственному хранилищу сертификатов. Если приложение добавляет сертификаты в любое из своих хранилищ, эти сертификаты не могут быть прочитаны другими приложениями. Если приложение удаляется, все сертификаты, относящиеся к нему, также удаляются. Приложение также имеет доступ на чтение к хранилищам сертификатов локального компьютера, отличных от хранилища MY и REQUEST.
Кэш
Каждый контейнер приложений имеет изолированный кэш, в котором он может хранить сертификаты издателя, необходимые для проверки, списков отзыва сертификатов (CRL) и ответов протокола OCSP.
Общие сертификаты и ключи
Когда смарт-карта вставляется в средство чтения, сертификаты и ключи, содержащиеся на карточке, распространяются в пользовательское хранилище MY, где они могут быть предоставлены любому приложению с полным доверием, запущенное пользователем. Однако по умолчанию контейнеры приложений не имеют доступа к хранилищу MY пользователя.
Для решения этой проблемы и предоставления группам субъектов доступа на группы ресурсов, модель изоляции контейнеров приложений поддерживает концепцию возможностей. Возможность позволяет процессу контейнера приложений получить доступ к определенному ресурсу. Функция sharedUserCertificates предоставляет контейнеру приложений доступ на чтение сертификатов и ключей, содержащихся в пользовательском хранилище MY и хранилище доверенных корней смарт-карт. Эта возможность не предоставляет доступ на чтение к хранилищу запросов пользователя.
Вы указываете возможность sharedUserCertificates в манифесте, как показано в следующем примере.
<Capabilities>
<Capability Name="sharedUserCertificates" />
</Capabilities>
Поля сертификата
Стандарт сертификата открытого ключа X.509 был изменен со временем. Каждая последовательная версия структуры данных сохранила поля, которые существовали в предыдущих версиях и добавили больше, как показано на следующем рисунке.
Некоторые из этих полей и расширений можно указать непосредственно при использовании класса CertificateRequestProperties для создания запроса сертификата. Большинство из них не может. Эти поля могут быть заполнены центром выдачи или их можно оставить пустым. Дополнительные сведения о полях см. в следующих разделах:
Поля версии 1
| Поле | Описание |
|---|---|
| Версия | Указывает номер версии закодированного сертификата. В настоящее время возможные значения этого поля : 0, 1 или 2. |
| Серийный номер | Содержит положительное, уникальное целое число, назначенное центром сертификации (ЦС) сертификату. |
| Алгоритм подписи | Содержит идентификатор объекта (OID), указывающий алгоритм, используемый ЦС для подписи сертификата. Например, 1.2.840.113549.1.1.5 указывает алгоритм хэширования SHA-1 в сочетании с алгоритмом шифрования RSA из лабораторий RSA. |
| Issuer | Содержит удостоверяющее имя X.500 (DN) ЦС, создавшего и подписавшего сертификат. |
| Обоснованность | Указывает интервал времени, в течение которого сертификат действителен. Даты включительно до конца 2049 года используют формат Координированное универсальное время (Среднее время по Гринвичу) (yymmddhhmmssz). Даты, начиная с 1 января 2050 г., используют обобщенный формат времени (ггггмддддхммссс). |
| Тема | Содержит различающееся имя сущности X.500, связанной с открытым ключом, содержащимся в сертификате. |
| Открытый ключ | Содержит сведения о открытом ключе и связанном алгоритме. |
Поля версии 2
Сертификат X.509 версии 2 содержит основные поля, определенные в версии 1, и добавляет следующие поля.
| Поле | Описание |
|---|---|
| Уникальный идентификатор издателя | Содержит уникальное значение, которое можно использовать для однозначного создания имени ЦС X.500, когда оно повторно используется разными субъектами с течением времени. |
| Уникальный идентификатор субъекта | Содержит уникальное значение, которое можно использовать для создания имени субъекта сертификата X.500, чтобы сделать его недвусмысленным при использовании различными сущностями с течением времени. |
Расширения версии 3
Сертификат X.509 версии 3 содержит поля, определенные в версии 1 и версии 2, и добавляет расширения сертификатов.
| Поле | Описание |
|---|---|
| Идентификатор ключа удостоверяющего центра | Определяет открытый ключ центра сертификации, соответствующий закрытому ключу ЦС, используемому для подписи сертификата. |
| Основные ограничения | Указывает, может ли сущность использоваться как Центр сертификации и, если да, количество подчинённых Центров сертификации, которые могут существовать под ним в цепочке сертификатов. |
| Политики сертификатов | Указывает политики, в которых был выдан сертификат, и цели, для которых он может использоваться. |
| Точки распространения CRL | Содержит универсальный код ресурса (URI) базового списка отзыва сертификатов (CRL). |
| Расширенное использование ключа | Указывает способ использования открытого ключа, содержащегося в сертификате. |
| Альтернативное имя издателя | Указывает одну или несколько альтернативных форм имени для издателя запроса на сертификат. |
| Использование ключа | Указывает ограничения на операции, которые могут выполняться открытым ключом, содержащимся в сертификате. |
| Ограничения на имена | Указывает пространство имен, в котором должны находиться все имена субъектов в иерархии сертификатов. Расширение используется только в сертификате ЦС. |
| Ограничения политики | Ограничивает проверку пути, запрещая сопоставление политик или требуя, чтобы каждый сертификат в иерархии содержал допустимый идентификатор политики. Расширение используется только в сертификате центра сертификации (ЦС). |
| Сопоставления политик | Указывает политики в подчиненном ЦС, соответствующие политикам в выдаваемом ЦС. |
| Период использования закрытого ключа | Указывает другой срок действия закрытого ключа, отличный от сертификата, с которым связан закрытый ключ. |
| Альтернативное имя субъекта | Указывает одну или несколько альтернативных форм имен для субъекта запроса сертификата. Примеры альтернативных форм включают адреса электронной почты, DNS-имена, IP-адреса и URI. |
| Атрибуты каталога объекта | Передает атрибуты идентификации, такие как национальность субъекта сертификата. Значение расширения — это последовательность пар OID-value. |
| Идентификатор ключа субъекта | Дифференцирует между несколькими открытыми ключами, находящимися у субъекта сертификата. Значение расширения обычно является хэшом SHA-1 ключа. |
Windows developer