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 con nome sicuro fornisce a un componente software un'identità univoca globale. I nomi sicuri vengono usati per garantire che l'assembly non possa essere manipolato da qualcun altro e per assicurarsi che le dipendenze dei componenti e le istruzioni di configurazione siano mappate al componente e alla versione corretta.
Un nome sicuro è costituito dall'identità dell'assembly (nome semplice, numero di versione e informazioni sulla cultura), oltre a un token di chiave pubblica e a una firma digitale.
Per informazioni sulla firma di assembly nei progetti Visual Basic e C#, vedere Creare e usare assembly con nome sicuro.
Per informazioni sulla firma di assembly nei progetti C++, vedere Assembly con nome sicuro (C++/CLI).
Annotazioni
La firma con nome sicuro non protegge dalla reverse engineering dell'assembly. Per proteggersi da reverse engineering, vedere Dotfuscator Community.
Tipi di risorse e firma digitale
È possibile firmare assembly .NET e manifesti di applicazione.
Eseguibili (.exe)
Manifesti dell'applicazione (.exe.manifest)
Manifesti di distribuzione (.application)
Assembly di componenti condivisi (.dll)
Firmare i tipi di asset seguenti:
Assembly, se si desidera distribuirli nella Global Assembly Cache (GAC).
Manifesti dell'applicazione e della distribuzione ClickOnce. Visual Studio abilita la firma per impostazione predefinita per queste applicazioni.
Assembly di interoperabilità primari, usati per l'interoperabilità COM. L'utilità TLBIMP applica il naming forte durante la creazione di un assembly di interoperabilità primario da una libreria dei tipi COM.
In generale, non è consigliabile firmare i file eseguibili. Un componente con nome sicuro non può fare riferimento a un componente non con nome sicuro distribuito con l'applicazione. Visual Studio non firma i file eseguibili di un'applicazione, ma firma il manifesto dell'applicazione, che fa riferimento a un eseguibile con nome debole. Evitare di firmare componenti privati per l'applicazione, perché la firma può rendere più difficile gestire le dipendenze.
Come firmare un assembly in Visual Studio
La procedura per firmare un assembly dipende dalla versione del Project Designer utilizzata dal progetto.
Per i progetti C# .NET Core (e .NET 5 e versioni successive) in Visual Studio 2022:
- Aprire la finestra delle proprietà del progetto (fare clic con il pulsante destro del mouse sul nodo del progetto in Esplora soluzioni e scegliere Proprietà).
- Sotto Compila, cerca Nome sicuro e seleziona la casella di controllo Firmare assembly. Quando si seleziona la casella, vengono visualizzate opzioni aggiuntive per il file di chiave e la firma ritardata.
- Specificare un file di chiave.
Se non si dispone di un file di chiave, è possibile usare la riga di comando per creare un .snk
file. È anche possibile usare o generare un certificato in un .pfx
file usando il processo di pubblicazione e nel passaggio Firma manifesti è possibile creare un certificato di test da usare solo durante lo sviluppo e il test oppure per la produzione, usare un certificato rilasciato dal reparto IT o da un'origine autorizzata. Vedere Distribuire un'app desktop di Windows .NET con ClickOnce.
Per i progetti .NET Framework e Visual Basic in Visual Studio 2022 o in Visual Studio 2019:
- Aprire la scheda Firma della finestra delle proprietà del progetto (fare clic con il pulsante destro del mouse sul nodo del progetto in Esplora soluzioni e scegliere Proprietà). Fare clic sulla scheda Firma.
- Selezionare la casella di controllo Firmare l'assemblaggio.
- Specificare un file di chiave. Se si sceglie di creare un nuovo file di chiave, i nuovi file di chiave vengono sempre creati nel formato pfx . È necessario un nome e una password per il nuovo file.
Avvertimento
È consigliabile proteggere sempre il file di chiave con una password per impedire a un altro utente di usarlo. È anche possibile proteggere le chiavi usando provider o archivi certificati.
È anche possibile puntare a una chiave già creata. Per altre informazioni sulla creazione di chiavi, vedere Creare una coppia di chiavi pubblica-privata.
Se si ha accesso solo a una chiave pubblica, è possibile usare la firma ritardata per rinviare l'assegnazione della chiave. Per abilitare la firma ritardata, selezionare la casella di controllo Firma ritardata solo. Un progetto con firma ritardata non viene eseguito e non è possibile eseguirne il debug. Tuttavia, è possibile ignorare la verifica durante lo sviluppo usando lo strumentoSn.exe nome sicuro con l'opzione -Vr
.