Condividi tramite


Distribuzione ClickOnce e Authenticode

Aggiornamento: novembre 2007

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 impedire il fenomeno dei trojan horse, in cui un virus o un altro programma pericoloso viene presentato in modo ingannevole come un programma legittimo proveniente da una fonte definita e attendibile. Tutte le distribuzioni ClickOnce devono essere firmate con un certificato digitale.

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 diversi tipi di certificati Authenticode, ciascuno configurato per tipi di firma differenti. 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 digitale di posta elettronica, l'applicazione non funzionerà. Per ulteriori informazioni, vedere Introduction to Code Signing (https://msdn.microsoft.com/library/default.asp?url=/workshop/security/authcode/intro\_authenticode.asp).

È 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.

  • Generando un proprio certificato con l'utilità MakeCert.exe, inclusa in .NET Framework Software Development Kit (SDK).

Vantaggi derivanti dall'utilizzo di Autorità di certificazione

  • Un certificato generato mediante l'utilità MakeCert.exe è comunemente detto certificato autofirmato o certificato di prova. Questo tipo di certificato funziona in modo analogo a un file snk di .NET Framework. È costituito unicamente da una coppia di chiavi di crittografia pubblica/privata e non contiene informazioni verificabili sull'editore. È possibile utilizzare i certificati autofirmati per distribuire le applicazioni ClickOnce con un livello di attendibilità elevato su una Intranet. Tuttavia, quando queste applicazioni sono eseguite su un computer client, vengono identificate 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.

  • Diversamente dal tipo autofirmato, un certificato proveniente da un'Autorità di certificazione, ad esempio un fornitore di certificati o uno specifico reparto dell'organizzazione, 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à principale, Authenticode verificherà con l'Autorità principale 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 Strumento di creazione certificati (Makecert.exe).

Utilizzo del timestamp per impedire una scadenza imprevista

Anche se i certificati garantiscono una maggiore sicurezza, è sempre possibile che un utente non autorizzato ottenga un certificato e la relativa password dal legittimo proprietario. Per impostazione predefinita, un certificato rilasciato da una CA è valido solo 12 mesi. Il proprietario del certificato è quindi costretto a ripetere la verifica della propria identità tramite la CA. Questo consente di assicurarsi che i certificati compromessi possano essere utilizzati solo per un periodo di tempo limitato.

La scadenza del certificato implica in genere la necessità di firmare l'applicazione ClickOnce ogni 12 mesi. Questo requisito viene limitato da Authenticode mediante il supporto per il timestamp. Quando si firma una distribuzione ClickOnce utilizzando un certificato, la data e l'ora della firma vengono registrate e incorporate nella firma digitale della distribuzione. Purché la distribuzione sia stata firmata quando il certificato era ancora valido, ClickOnce consentirà di eseguire l'applicazione anche se il certificato è scaduto.

Il timestamp è supportato da entrambi gli strumenti di Visual Studio e Windows Software Development Kit (SDK) per la creazione di distribuzioni ClickOnce, ovvero Mage.exe e MageUI.exe.

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 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

Concetti

Cenni preliminari sulla distribuzione ClickOnce

Distribuzione e sicurezza ClickOnce

Cenni preliminari sulla distribuzione di applicazioni attendibili

Riferimenti

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