Pratica standard per la distribuzione del certificato del server per gli utenti

2

Ho un'app Winforms che gli utenti devono scaricare e installare sui loro computer. Si collega a un servizio WCF (utilizzando SSL), quindi richiede che il certificato del server venga installato sulle Autorità di certificazione attendibili degli utenti. Qualcuno può suggerire la best practice per la distribuzione di un certificato server per consentire agli utenti di scaricarlo da un sito Web e installarlo sulle loro macchine?

Grazie.

    
posta Vj87 14.08.2014 - 09:31
fonte

2 risposte

3

Non lo fai. In genere, l'archivio certificati che contiene root CA attendibili è un elemento di fondamentale importanza della sicurezza in PKI.

È letteralmente la radice della tua catena di fiducia. Non puoi semplicemente lasciare che i tuoi utenti aggiungano un certificato ciecamente perché manipolare quel negozio è qualcosa che viene fatto solo attraverso un canale sicuro - qualcosa che, nel tuo scenario, devi ancora stabilire.

Ecco perché la procedura migliore è far firmare il certificato da un'autorità già distribuita sui dispositivi client, in genere una CA pubblica ma potrebbe anche essere una CA privata in una rete aziendale.

    
risposta data 14.08.2014 - 09:49
fonte
1

Fammi usare un'analogia: supponiamo che tu stia vendendo lavelli da cucina. L'installazione e la manutenzione di un lavello richiedono occasionalmente l'intervento di un idraulico qualificato. La tua proposta (installare il tuo certificato negli archivi "trusted root" dei sistemi client) è come dire: "Come faccio a permettere ai miei clienti di inviarmi una copia delle chiavi della porta in modo da poter inviare gli idraulici in qualsiasi momento? ".

Alla maggior parte dei clienti non piacerebbe. L'archivio "trusted root" è sensibile . Spingere il tuo certificato in quel negozio richiede molta fiducia: ti dà molta energia e rende la sicurezza della macchina subordinata alla protezione della chiave privata dalla tua parte.

Il modo carino di fare WCF è di incorporare il certificato del server (o il certificato della sua CA di emissione) nel codice dell'applicazione, in modo che l'applicazione possa verificare che stia parlando al server giusto senza modificare la configurazione del sistema. Ciò comporta l'utilizzo di un validatore personalizzato, come descritto .

Il metodo suggerito da @Stephane (acquistare un certificato da una delle CA che è già considerato affidabile dalla maggior parte dei client) è sicuramente più semplice e probabilmente più veloce.

    
risposta data 14.08.2014 - 14:55
fonte

Leggi altre domande sui tag