Firmare un pacchetto dell'app di Windows 10

La firma del pacchetto è un passaggio obbligatorio nel processo di creazione del pacchetto di un'app di Windows 10 che possa essere distribuito. Windows 10 richiede che tutte le applicazioni siano firmate con un certificato di firma del codice valido.

Per installare correttamente un'applicazione di Windows 10, il pacchetto non deve essere semplicemente firmato ma anche considerato attendibile sul dispositivo. Questo significa che il certificato deve far parte della catena di una delle radici attendibili sul dispositivo. Per impostazione predefinita, Windows 10 considera attendibili i certificati ricevuti da quasi tutte le autorità che forniscono certificati di firma del codice.

Inoltre, se si sta creando un bundle MSIX, non è necessario firmare tutti i pacchetti nel bundle singolarmente. Solo il bundle deve essere firmato e tutti i pacchetti all'interno vengono firmati in modo ricorsivo.

Argomento Descrizione
Prerequisiti per la firma Questa sezione illustra i prerequisiti necessari per firmare il pacchetto dell'app di Windows 10.
Uso di SignTool Questa sezione illustra come usare lo strumento SignTool di Windows 10 SDK per firmare il pacchetto dell'app.
Firmare un pacchetto MSIX con la firma di Device Guard Questa sezione illustra come firmare l'app con la firma di Device Guard.
Creazione di pacchetti senza segno per il test Questa sezione illustra come creare un pacchetto msix senza segno.

Aggiunta del timestamp

È consigliabile usare timestamping durante la firma dell'app con un certificato. Il timestamp mantiene la firma che consente di accettare il pacchetto dell'app dalla piattaforma di distribuzione delle app anche dopo la scadenza del certificato. Al momento dell'ispezione del pacchetto, il timestamp consente di convalidare la firma rispetto al momento in cui è stata apposta. In questo modo, i pacchetti possono essere accettati anche se il certificato non è più valido. I pacchetti privi di timestamp verranno valutati rispetto all'ora corrente e, se il certificato non è più valido, Windows non accetterà il pacchetto.

Di seguito sono elencati i diversi scenari di aggiunta della firma all'app con/senza timestamp:

Scenario App firmata senza l'aggiunta del timestamp App firmata con l'aggiunta del timestamp
Il certificato è valido L'app viene installata L'app viene installata
Il certificato non è valido (scaduto) L'app non viene installata L'app viene installata perché l'autenticità del certificato è stata verificata al momento della firma dall'autorità di riconoscimento timestamp

Nota

Se l'app viene installata correttamente in un dispositivo, continuerà a funzionare anche dopo la scadenza del certificato, indipendentemente dalla presenza o meno del timestamp.

Applicazione dell'integrità del pacchetto

Oltre a garantire che solo le applicazioni attendibili siano installate in un dispositivo, un vantaggio aggiuntivo della firma di un pacchetto MSIX è che consente a Windows di applicare l'integrità del pacchetto e il relativo contenuto dopo la distribuzione in un dispositivo. Concatenando i AppxBlockMap.xml e AppxSignature.p7x in un pacchetto firmato, Windows è in grado di eseguire controlli di convalida sull'integrità di un pacchetto e sul relativo contenuto in fase di esecuzione e durante le analisi di Windows Defender. Se un pacchetto viene considerato manomesso windows blocca l'avvio dell'applicazione e avvia un flusso di lavoro di correzione per ottenere il pacchetto riparato o reinstallato. Per i pacchetti non distribuiti tramite Microsoft Store, l'integrità del pacchetto viene applicata se il pacchetto dichiara l'elemento uap10:PackageIntegrity e viene distribuito in Windows 2004 e versioni successive. Di seguito è riportata una dichiarazione di esempio di applicazione dell'integrità del pacchetto nella 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>

Modalità dispositivo

Windows 10 consente agli utenti di selezionare la modalità di esecuzione del dispositivo nell'app Impostazioni. Le modalità sono App di Microsoft Store, Sideload app e Modalità sviluppatore.

App di Microsoft Store è la più sicura, perché consente l'installazione di app solo da Microsoft Store. Le app in Microsoft Store sono sottoposte a un processo di certificazione per verificare che siano sicure per l'uso.

Le app di sideload e la modalità sviluppatore sono più permissive delle app firmate da altri certificati, purché tali certificati siano attendibili e concatenano a una delle radici attendibili nel dispositivo. Seleziona la modalità sviluppatore solo se sei uno sviluppatore e stai compilando o eseguendo il debug di app di Windows 10. Altre informazioni sulla modalità sviluppatore e le relative funzionalità sono disponibili qui.

Nota

A partire da Windows 10 versione 2004, l'opzione Sideload viene attivata per impostazione predefinita. Di conseguenza, la modalità sviluppatore è ora un interruttore. Le aziende possono comunque disattivare il sideload tramite criteri.