Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
La firma del pacchetto dell'app è un passaggio obbligatorio nel processo di creazione di un pacchetto MSIX che può essere distribuito. Windows richiede che i pacchetti MSIX siano firmati con un certificato di firma del codice valido.
Per installare correttamente un'applicazione Windows, il pacchetto non deve solo essere firmato ma anche attendibile nel dispositivo. Ciò significa che il certificato deve essere concatenato a una delle radici attendibili nel dispositivo. Per impostazione predefinita, Windows considera attendibili i certificati della maggior parte delle autorità di certificazione che forniscono certificati di firma del codice.
Inoltre, se si crea un bundle MSIX, non è necessario firmare singolarmente tutti i pacchetti nel bundle. Soltanto il pacchetto deve essere firmato; la firma copre i pacchetti all'interno del pacchetto.
Opzioni di firma
Scegliere un approccio di firma in base al proprio scenario:
| Sceneggiatura | Opzione | Cost |
|---|---|---|
| Sviluppo e test locali | Certificato autofirmato | Gratuito |
| Distribuzione di produzione (scelta consigliata) | Azure Firma di Artefatti (in precedenza firma affidabile) | Basic: ~€10/mese |
| Distribuzione di produzione (alternativa) | Certificato di firma del codice OV da una CA | $300-500/anno |
| distribuzione Microsoft Store | Firmato dal negozio al momento della presentazione | Gratuito |
Annotazioni
Azure Artifact Signing (in precedenza noto come Firma attendibile) è il servizio di firma del codice gestito di Microsoft ed è l'opzione consigliata per la firma MSIX di produzione. Caratteristiche chiave:
- Reputazione basata sull'identità: la reputazione è associata all'identità dell'editore verificata anziché a un certificato specifico, quindi si accumula tra le compilazioni. Tuttavia, come tutte le distribuzioni non nello Store, le nuove app visualizzeranno ancora avvisi SmartScreen fino a quando non si accumula una sufficiente cronologia di download, il che richiede generalmente diverse settimane. Vedi reputazione SmartScreen per sviluppatori di app Windows.
- Certificati di breve durata: un nuovo certificato viene rilasciato ogni giorno e ogni certificato rimane valido per circa 3 giorni, abilitando la revoca precisa del tempo, se necessario.
-
CI/CD ready: supporta GitHub Actions (
azure/trusted-signing-action) e Azure DevOps nativamente.
Idoneità per i certificati di attendibilità pubblica: disponibili per le organizzazioni negli Stati Uniti, in Canada, nell'Unione europea e nel Regno Unito e a singoli sviluppatori negli Stati Uniti e in Canada. Le organizzazioni devono avere una cronologia fiscale verificabile di tre o più anni. Vedere Informazioni importanti per la convalida dell'identità.
Signing with SignTool richiede un'installazione aggiuntiva: SignTool funziona con la firma degli artefatti solo quando si usano gli strumenti client di firma degli artefatti, che includono il plug-in dlib richiesto e .NET 8 runtime. È anche necessario fornire un metadata.json file con l'endpoint dell'account e il profilo certificato. Un invocazione standard di SignTool del Windows SDK, di per sé, non funzionerà con la firma degli artefatti. L'installazione più semplice è:
winget install -e --id Microsoft.Azure.ArtifactSigningClientTools
Per la configurazione completa, vedere Configurare SignTool con Artifact Signing.
AzureSignTool è uno strumento della community separato per la firma con i certificati archiviati in Azure Key Vault. Non supporta la firma degli artefatti: i due sono servizi distinti. Per l'accesso basato su Azure Key Vault in Visual Studio, vedere Assegnare pacchetti con Azure Key Vault.
WinApp CLI
L'interfaccia della riga di comando di WinApp offre comandi pratici per la firma dello sviluppo:
-
winapp cert generate— creare un certificato autofirmato per lo sviluppo -
winapp sign— firmare un pacchetto MSIX o un eseguibile con un certificato -
winapp tool signtool: accedere a SignTool direttamente da Windows SDK
Argomenti relativi alla firma
| Argomento | Descrizione |
|---|---|
| Prerequisiti per la firma | Prerequisiti necessari per firmare un pacchetto dell'app. |
| Utilizzo di SignTool | Come usare SignTool da Windows SDK per firmare un pacchetto dell'app. |
| Assegnare pacchetti con Azure Key Vault | Come firmare i pacchetti usando un certificato archiviato in Azure Key Vault da Visual Studio. |
| Firmare un pacchetto MSIX con la firma di Device Guard | Come firmare l'app con la firma di Device Guard. |
| Creazione di pacchetti non firmati per il test | Come creare un pacchetto MSIX non firmato per il test. |
| Firma degli artifact di Azure | Il servizio di firma gestita di Microsoft (precedentemente Signing affidabile) per pacchetti di produzione MSIX. |
Marcatura temporale
È consigliabile usare la marca temporale quando si firma l'app con un certificato. La marcatura temporale mantiene la firma, consentendo l'accettazione del pacchetto dell'app da parte della piattaforma di distribuzione delle app anche dopo la scadenza del certificato. Al momento dell'ispezione del pacco, il timestamp consente di convalidare la firma del pacco rispetto all'ora in cui è stata firmata. Ciò consente di accettare i pacchetti anche dopo che il certificato non è più valido. I pacchetti che non sono timestamp verranno valutati rispetto all'ora corrente e se il certificato non è più valido, Windows non accetterà il pacchetto.
Di seguito sono riportati i diversi scenari relativi alla firma dell'app con/senza timestamp:
| Sceneggiatura | L'app è firmata senza timestamp | L'app è firmata con marca temporale |
|---|---|---|
| Il certificato è valido | L'app verrà installata | L'app verrà installata |
| Il certificato non è valido (scaduto) | L'installazione dell'app non riuscirà | L'app verrà installata man mano che l'autenticità del certificato è stata verificata al momento della firma dall'autorità di timestamping |
Annotazioni
Se l'app viene installata correttamente in un dispositivo, continuerà a essere eseguita anche dopo la scadenza del certificato, indipendentemente dal fatto che sia stata contrassegnata o meno da un timestamp.
Implementazione 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 consiste nel fatto che consente Windows di applicare l'integrità del pacchetto e il relativo contenuto dopo la distribuzione in un dispositivo. Concatenando il 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 le analisi 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 il 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 è riportato un esempio di dichiarazione di applicazione dell'integrità del pacchetto 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à in cui eseguire il dispositivo nell'app Impostazioni. Le modalità sono app del Microsoft Store, app con sideloading e modalità sviluppatore.
Microsoft Store apps è il più sicuro perché consente solo l'installazione di app dal Microsoft Store. Le app nel Microsoft Store passano attraverso il processo di certificazione per assicurarsi che le app siano sicure per l'uso.
Le app di sideload e la modalità sviluppatore sono più permissive nei confronti delle app firmate da altri certificati, purché tali certificati siano attendibili e concatenati a una delle radici attendibili nel dispositivo. Selezionare la modalità sviluppatore solo se si è uno sviluppatore e si sta creando o eseguendo il debug di app Windows 10. Altre informazioni sulla modalità sviluppatore e su ciò che offre sono disponibili qui.
Annotazioni
A partire da Windows 10 versione 2004, l'opzione Sideload è attivata per impostazione predefinita. Di conseguenza, la modalità sviluppatore è ora un'opzione. Le aziende possono comunque disattivare il sideload tramite policy.