Condividi tramite


ClickOnce e Authenticode

Authenticode è una tecnologia Microsoft che usa la crittografia standard del settore per firmare il codice dell'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. Un cavallo di Troia è un virus o un altro programma dannoso che una terza parte malintenzionata rappresenta erroneamente come un programma legittimo proveniente da una fonte consolidata e affidabile. 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, il modo in cui i certificati vengono convalidati tramite autorità di certificazione (CA), il ruolo di timestamp nei certificati e i metodi di archiviazione disponibili per i certificati.

Autenticazione e firma del codice

Un certificato digitale è un file che contiene una coppia di chiavi pubblica/privata crittografica, insieme ai metadati che descrivono l'editore a cui è stato rilasciato il certificato e l'agenzia che ha emesso il certificato.

Esistono vari tipi di certificati Authenticode. Ognuno di essi è 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 Introduzione alla firma del codice.

È possibile ottenere un certificato per l'accesso del codice in uno dei tre modi seguenti:

  • Acquistarne uno da un fornitore di certificati.

  • Ricevi uno da un gruppo nella tua organizzazione responsabile della creazione di certificati digitali.

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

Come usare le autorità di certificazione aiuta gli utenti

Un certificato generato usando New-SelfSignedCertificate o l'utilità MakeCert.exe è comunemente detto certificato automatico o certificato di test. Questo tipo di certificato funziona allo stesso modo in cui un file con estensione snk funziona in .NET Framework. È costituito esclusivamente da una coppia di chiavi crittografiche pubblica/privata e non contiene informazioni verificabili sull'editore. È possibile usare certificati autofirmati per distribuire applicazioni ClickOnce ad alta attendibilità 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 da una CA, ad esempio un fornitore di certificati o un reparto all'interno dell'organizzazione, il certificato offre maggiore sicurezza per gli utenti. Non solo identifica l'autore del software firmato, ma verifica l'identità controllando con la CA che l'ha firmata. Se la CA non è l'autorità radice, Authenticode effettuerà anche un "collegamento" all'autorità radice per verificare che la CA sia autorizzata a rilasciare certificati. Per una maggiore sicurezza, è consigliabile usare un certificato rilasciato da una CA quando 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. Quando un'applicazione è firmata con un timestamp, il relativo 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. Consente inoltre alle applicazioni installate con certificati scaduti di continuare a scaricare e installare gli aggiornamenti.

Per includere un timestamp in un server applicazioni, è necessario che sia disponibile un server timestamp. Per informazioni su come selezionare un server timestamp, vedere Procedura: Firmare manifesti dell'applicazione e della distribuzione.

Aggiornare i certificati scaduti

Nelle versioni precedenti di .NET Framework, l'aggiornamento di un'applicazione il cui certificato era scaduto potrebbe causare l'interruzione del funzionamento dell'applicazione. Per risolvere il problema, utilizzare 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 come file pfx nel file system oppure archiviarli all'interno di un contenitore di chiavi. Un utente in un dominio Windows può avere diversi contenitori chiave. Per impostazione predefinita, MakeCert.exe archivierà i certificati nel contenitore delle chiavi personali, a meno che non venga specificato che deve essere salvato 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.