ClickOnce e Authenticode

Authenticode è una tecnologia Microsoft basata sulla crittografia standard del settore che consente di firmare il codice di un'applicazione con certificati digitali che verificano l'autenticità dell'editore dell'applicazione. Utilizzando la tecnologia Authenticode per la distribuzione di applicazioni, ClickOnce consente di ridurre i rischi di trojan horse, 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. Firmare le distribuzioni ClickOnce con un certificato digitale è un passaggio facoltativo per verificare che gli assembly e i file non si siano alterati.

Nelle sezioni che seguono vengono descritti i diversi tipi di certificati digitali utilizzati in Authenticode, la procedura di convalida dei certificati mediante Autorità di certificazione (CA, Certification Authority), il ruolo del timestamp e i metodi di archiviazione disponibili per i certificati.

Authenticode e firma del codice

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à emittente.

Esistono vari tipi di certificati Authenticode. Ogni certificato viene configurato per tipi diversi 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, l'applicazione non funzionerà. Per ulteriori informazioni, vedere la pagina relativa all'introduzione alla firma di 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.

  • È possibile generare un certificato personalizzato con MakeCert.exe, incluso in Windows Software Development Kit (SDK).

Vantaggi derivanti dall'utilizzo di Autorità di certificazione

Un certificato generato mediante l'utilità MakeCert.exe viene comunemente detto autocertificato o certificato di prova. Questo tipo di certificato agisce più o meno in modo analogo a un 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 utilizzare certificati autofirmati per distribuire applicazioni ClickOnce con un livello di attendibilità elevato in una rete Intranet. Quando queste applicazioni vengono eseguite in un computer client, tuttavia, vengono identificate da ClickOnce come provenienti da un editore sconosciuto. Per impostazione predefinita, non è possibile utilizzare la distribuzione di applicazioni attendibili per le applicazioni ClickOnce firmate con certificati autofirmati e distribuite su Internet.

Al contrario, se si riceve un certificato proveniente da un'autorità di certificazione, ad esempio un fornitore di certificati o un reparto dell'organizzazione, il certificato offre maggiore sicurezza agli utenti. poiché non solo identifica l'editore del software firmato, ma verifica tale 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 una maggiore sicurezza, si consiglia di utilizzare un certificato rilasciato da una CA, quando possibile.

Per ulteriori informazioni sulla generazione di certificati autofirmati, vedere Makecert.exe (strumento di creazione certificati).

Timestamp

I certificati utilizzati per firmare applicazioni ClickOnce scadono dopo un determinato periodo di tempo, in genere dodici mesi. Per evitare di dover firmare costantemente le stesse applicazioni con nuovi certificati, ClickOnce supporta i timestamp. Se un'applicazione è firmata con un timestamp, il certificato continuerà a essere accettato anche dopo la scadenza, purché il timestamp sia valido. Questo consente il download e l'esecuzione delle applicazioni ClickOnce con certificati scaduti ma timestamp validi. Consente inoltre 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 server di timestamp, vedere Procedura: firmare manifesti dell'applicazione e di distribuzione.

Aggiornamento di certificati scaduti

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

  • Aggiornare .NET Framework alla versione 2.0 SP1 o successiva su Windows XP oppure alla versione 3.5 o successiva su Windows Vista.

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

  • Creare un assembly della riga di comando che aggiorna il certificato. Nell'articolo del Supporto tecnico Microsoft 925521 sono disponibili informazioni dettagliate su questa procedura.

Archiviazione dei certificati

  • È possibile archiviare i certificati nel file system, come file pfx, oppure all'interno di un contenitore di chiavi. Un utente su un dominio Windows può disporre di un determinato numero di 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 utilizzare certificati archiviati in entrambi i modi.

Vedere anche

Riferimenti

Mage.exe (Strumento per la generazione e la modifica di manifesti)

Concetti

Sicurezza e distribuzione di ClickOnce

Protezione di applicazioni ClickOnce

Cenni preliminari sulla distribuzione di applicazioni attendibili