Поделиться через


Подписание пакета приложения для 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, опция Sideload включена по умолчанию. В результате режим разработчика теперь является переключателем. Предприятия по-прежнему могут отключить загрузку неопубликованных приложений с помощью политики.