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 non firmati per il test Questa sezione illustra come creare un pacchetto msix senza segno.

Aggiunta del timestamp

È consigliabile usare timestamp 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 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 il relativo contenuto dopo la distribuzione in un dispositivo. Concatenando appxBlockMap.xml e AppxSignature.p7x in un pacchetto firmato, Windows è in grado di eseguire controlli di convalida sull'integrità di un pacchetto e il relativo contenuto in fase di esecuzione e durante le analisi di Windows Defender. Se un pacchetto viene considerato manomesso, Windows bloccherà l'avvio dell'applicazione e avvierà un flusso di lavoro di correzione per ripristinare o reinstallare il pacchetto. 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 in 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 da 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 trasferimento locale tramite criteri.