Assembly con nomi sicuri

Aggiornamento: novembre 2007

Un nome sicuro è costituito dall'identità dell'assembly, corrispondente al nome semplice in formato testo, al numero di versione e alle informazioni sulle impostazioni cultura eventualmente disponibili, nonché da una chiave pubblica e da una firma digitale. Viene generato da un file dell'assembly (quello che contiene il manifesto, che a sua volta contiene i nomi e gli hash di tutti i file che costituiscono l'assembly), utilizzando la chiave privata corrispondente. Utilizzando Microsoft® Visual Studio® .NET e altri strumenti di sviluppo forniti con Windows Software Development Kit (SDK), è possibile assegnare nomi sicuri agli assembly. Due assembly che hanno lo stesso nome sicuro vengono considerati uguali.

È possibile assicurarsi che il nome assegnato a un assembly sia univoco firmando l'assembly con un nome sicuro. In particolare, i nomi sicuri soddisfano i seguenti requisiti:

  • Garantiscono l'univocità dei nomi perché sono basati su coppie di chiavi univoche. Nessun altro può generare lo stesso nome per un assembly diverso, perché un assembly generato con una determinata chiave privata avrà necessariamente un nome diverso da quello di un assembly generato con una chiave privata diversa.

  • Garantiscono la discendenza di versione di un assembly. L'utilizzo di un nome sicuro garantisce che nessun altro possa produrre una versione successiva del proprio assembly. Gli utenti possono essere certi che la nuova versione dell'assembly che si apprestano a utilizzare è stata prodotta dalla stessa fonte che ha creato la versione fornita con l'applicazione.

  • Consentono un approfondito controllo dell'integrità. Il superamento dei controlli di sicurezza di .NET Framework garantisce che il contenuto dell'assembly non sia stato modificato successivamente alla creazione. Si noti comunque che i nomi sicuri in sé non assicurano un livello di attendibilità, come quello fornito invece, ad esempio, da una firma digitale e dal supporto dei certificati.

Quando si fa riferimento a un assembly con nome sicuro, si conta di ottenere determinate garanzie, quali il controllo delle versioni e la protezione dei nomi. Se l'assembly con nome sicuro a cui si fa riferimento fa a sua volta riferimento a un assembly con nome semplice, che non presenta i vantaggi descritti, si perdono i benefici che derivano dall'uso di un assembly con nome sicuro e si ricade nel problema dei conflitti tra DLL. Gli assembly con nome sicuro possono pertanto fare riferimento solo ad altri assembly con nome sicuro.

Vedere anche

Attività

Procedura: firmare un assembly con un nome sicuro

Concetti

Global Assembly Cache