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.

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 Firma di Device Guard.

Aggiunta del timestamp

È consigliabile usare il timestamp quando si firma l'app con un certificato. Il timestamp mantiene la firma che consente l'accettazione del pacchetto dell'app dalla piattaforma di distribuzione dell'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.

Imposizione dell'integrità dei pacchetti

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

Sideload app e Modalità sviluppatore sono più permissive rispetto alle app firmate da altri certificati, purché i certificati siano attendibili e facciano parte della catena di una delle radici attendibili sul 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 Windows 10 versione 2004, l'opzione Sideload è attivata per impostazione predefinita. Di conseguenza, la modalità sviluppatore è ora un interruttore. Le aziende possono comunque disattivare il sideload tramite criteri.