Подписывание пакета приложения Windows 10

Подписывание пакета приложения — это обязательный шаг в процессе создания развертываемых пакетов приложений Windows 10. В Windows 10 все приложения должны быть подписаны с помощью допустимого сертификата для подписи кода.

Для успешной установки приложения для Windows 10 пакет не только подписывается, но и настраивается как надежный на устройстве. Это означает, что сертификат должен быть связан с одним из доверенных корневых сертификатов на устройстве. По умолчанию в Windows 10 настроено доверие к сертификатам от большинства центров сертификации, предоставляющих сертификаты для подписи кода.

Кроме того, при создании пакета MSIX нет необходимости подписывать все пакеты в пакете по отдельности. Только пакет должен быть подписан, и все пакеты внутри подписываются рекурсивно.

Раздел Описание
Необходимые условия для подписывания В этом разделе описаны предварительные требования, которые нужно удовлетворить, прежде чем подписывать пакет приложения Windows 10.
Использование SignTool В этом разделе описано, как подписать пакет приложения с помощью средства SignTool из пакета SDK для Windows 10.
Подписывание пакета MSIX с помощью подписи Device Guard В этом разделе описывается, как подписать приложение с помощью подписи Device Guard.
Создание неподписанных пакетов для тестирования В этом разделе описывается создание пакета msix без знака.

Установка меток времени

Настоятельно рекомендуется использовать метку времени при подписи приложения с помощью сертификата. Метка времени сохраняет подпись, позволяющую пакету приложения приниматься платформой развертывания приложений даже после истечения срока действия сертификата. Во время проверки пакета метка времени позволяет проверить подпись пакета с учетом времени подписывания. Такие пакеты будут приняты, даже если сертификат недействителен. Пакеты без меток времени будут проверяться с учетом текущего времени и, если сертификат недействителен, Windows не примет такой пакет.

Ниже описаны разные сценарии подписывания приложения с использованием меток времени и без них.

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

Примечание

Если приложение установлено на устройстве, оно будет выполняться даже после истечения срока действия сертификата независимо от того, были ли установлены метки.

Принудительное применение целостности пакетов

Помимо того, что на устройстве установлены только доверенные приложения, дополнительное преимущество подписывания пакета MSIX заключается в том, что Windows обеспечивает целостность пакета и его содержимое после развертывания на устройстве. Привязав к AppxBlockMap.xml и AppxSignature.p7x в подписанном пакете, Windows может выполнять проверки целостности пакета и его содержимого во время выполнения, а также во время проверки Защитник Windows. Если пакет считается измененным, Windows блокирует запуск приложения и запускает рабочий процесс исправления, чтобы восстановить или переустановить пакет. Для пакетов, не распределенных через Microsoft Store, целостность пакетов применяется, если пакет объявляет элемент uap10:PackageIntegrity и развертывается в Windows 2004 и более поздних сборках. Ниже приведен пример объявления принудительного применения целостности пакета в AppxManifest.xml:

<Package ...
xmlns:uap10="http://schemas.microsoft.com/appx/manifest/uap/windows10/10"  
IgnorableNamespaces="uap10">
...
  <Properties>
    <uap10:PackageIntegrity>
      <uap10:Content Enforcement="on" />
    </uap10:PackageIntegrity>
  </Properties>
...
</Package>

Режим устройства

Windows 10 позволяет пользователям выбирать следующие режимы работы устройства в настройках приложения: "Приложения Microsoft Store", "Неопубликованные приложения" и "Режим разработчика".

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

Загрузка неопубликованных приложений и режима разработчика является более разрешительной для приложений, подписанных другими сертификатами, если эти сертификаты являются доверенными и цепляются с одним из доверенных корней на устройстве. Выбирайте режим разработчика, только если вы являетесь разработчиком, который создает или отлаживает приложения для Windows 10. См. подробнее о режиме разработчика.

Примечание

Начиная с Windows 10 версии 2004, параметр загрузки неопубликованных приложений включен по умолчанию. В результате режим разработчика теперь является переключателем. Предприятия по-прежнему могут отключить загрузку неопубликованных приложений с помощью политики.