ClickOnce e Authenticode

Authenticode è una tecnologia Microsoft basata sulla crittografia standard che consente di firmare il codice di un'applicazione con certificati digitali che verificano l'autenticità dell'editore dell'applicazione. Usando Authenticode per la distribuzione dell'applicazione, ClickOnce riduce il rischio di un cavallo di Trojan. ovvero virus o altri programmi dannosi presentati da una terza parte malintenzionata in modo ingannevole come programmi legittimi provenienti da una fonte definita e attendibile. La firma delle distribuzioni ClickOnce con un certificato digitale è un passaggio facoltativo per verificare che gli assembly e i file non vengano manomessi.

Le sezioni seguenti descrivono i diversi tipi di certificati digitali usati in Authenticode, la procedura di convalida dei certificati mediante Autorità di certificazione (CA, Certification Authority), il ruolo del timestamp nei certificati e i metodi di archiviazione disponibili per i certificati.

Firma del codice e Authenticode

Un certificato digitale è un file che contiene una coppia di chiavi di crittografia pubblica/privata, nonché i metadati relativi all'editore a cui è stato rilasciato il certificato e all'autorità di certificazione.

Esistono vari tipi di certificati Authenticode. Ogni certificato viene configurato per diversi tipi di firma. Per le applicazioni ClickOnce, è necessario disporre di un certificato Authenticode valido per la firma del codice. Se si tenta di firmare un'applicazione ClickOnce con un altro tipo di certificato, ad esempio un certificato di posta elettronica digitale, non funzionerà. Per altre informazioni, vedere Introduction to Code Signing (Introduzione alla firma del codice).

È possibile ottenere un certificato per la firma del codice in uno dei tre modi seguenti:

  • Acquistandone uno da un fornitore di certificati.

  • Ricevendone uno da un gruppo dell'organizzazione responsabile della creazione di certificati digitali.

  • Generare un certificato personalizzato usando il cmdlet Di PowerShell New-SelfSignedCertificate oppure tramite MakeCert.exe, incluso in Windows Software Development Kit (SDK).

Vantaggi derivanti dall'uso di Autorità di certificazione

Un certificato generato mediante New-SelfSignedCertificate o la MakeCert.exe utilità viene comunemente definito un autocertificato o un certificato di prova. Questo tipo di certificato agisce in modo analogo ai file con estensione snk in .NET Framework. È costituito esclusivamente da una coppia di chiavi crittografiche pubbliche/private e non contiene informazioni verificabili sull'editore. È possibile usare certificati autocertivi per distribuire applicazioni ClickOnce con attendibilità elevata in una intranet. Tuttavia, quando queste applicazioni vengono eseguite in un computer client, ClickOnce li identificherà come provenienti da un server di pubblicazione sconosciuto. Per impostazione predefinita, le applicazioni ClickOnce firmate con certificati autocerti e distribuite su Internet non possono usare la distribuzione di applicazioni attendibili.

Al contrario, se si riceve un certificato proveniente da una CA, ad esempio un fornitore di certificati o un reparto dell'organizzazione, il certificato offre maggiore sicurezza agli utenti. Non solo identifica l'editore del software firmato, ma verifica anche l'identità mediante un controllo con la CA che ha apposto la firma. Se la CA non è l'autorità radice, Authenticode verificherà con l'autorità radice che la CA sia autorizzata a rilasciare certificati. Per maggiore sicurezza, si consiglia di usare un certificato rilasciato da una CA, se possibile.

Per altre informazioni sulla generazione di certificati autocertificati, vedere New-SelfSignedCertificate o MakeCert.

Timestamp

I certificati usati per firmare le applicazioni ClickOnce scadono dopo un determinato periodo di tempo, in genere dodici mesi. Per rimuovere la necessità di firmare costantemente le applicazioni con nuovi certificati, ClickOnce supporta il timestamp. Se un'applicazione è firmata con un timestamp, il certificato continuerà a essere accettato anche dopo la scadenza, purché il timestamp sia valido. Ciò consente alle applicazioni ClickOnce con certificati scaduti, ma timestamp validi, di scaricare ed eseguire. Permette anche di continuare a scaricare e installare gli aggiornamenti per le applicazioni installate con certificati scaduti.

Per includere un timestamp in un server applicazioni, deve essere disponibile un server di timestamp. Per informazioni sulla selezione di un server di timestamp, vedere How to: Sign Application and Deployment Manifests.

Aggiornare i certificati scaduti

Nelle versioni precedenti di .NET Framework, l'aggiornamento di un'applicazione con certificato scaduto può determinare l'interruzione dell'applicazione stessa. Per risolvere il problema, usare uno dei metodi seguenti:

  • Aggiornare .NET Framework versione 3.5 o successiva.

  • Disinstallare l'applicazione e reinstallare una nuova versione con un certificato valido.

Archiviare i certificati

  • È possibile archiviare i certificati nel file system, come file con estensione pfx, oppure all'interno di un contenitore di chiavi. Un utente su un dominio Windows può avere più contenitori di chiavi. Per impostazione predefinita, l'utilità MakeCert.exe archivia i certificati nel contenitore di chiavi personale, a meno che non venga specificato di salvarli in un file con estensione pfx. Mage.exe e MageUI.exe, gli strumenti di Windows SDK per la creazione di distribuzioni ClickOnce consentono di usare i certificati archiviati in entrambi i modi.