Confusione della firma del codice

2

Solitamente realizzo applicazioni Windows gratuite, ora voglio firmarle digitalmente. Quindi gli utenti possono esserne sicuri. Ma invece di acquistare il certificato di firma del codice, pensavo di poter creare il mio. Ma poi di nuovo, se riesco a creare, allora chiunque può creare con le stesse informazioni del mio. Tuttavia, in realtà non capisco come funzioni tutto questo all'utente finale.

Diciamo che ho una stringa nella mia applicazione e la firmo digitalmente. Ma poi un altro ragazzo cambia quella stringa e crea il proprio certificato con lo stesso nome della mia, poi firma. Come l'utente finale saprà che proviene da lui, non da me. Oppure non funziona in questo modo?

Per quanto ho capito, quando si crea il proprio certificato, deve essere aggiunto in una sorta di archivio in modo che Windows possa riconoscerlo? Ciò significa che se creo il mio certificato, tutti gli utenti finali dovranno aggiungere anche il mio certificato nei loro computer? E se è vero, allora come posso essere sicuro che se acquisto il certificato, sarà disponibile alla fine dell'utente. E se non fosse lì?

    
posta xmen 30.10.2014 - 04:52
fonte

2 risposte

6

Per comunicare all'utente finale che l'utente è l'effettivo proprietario dell'app, è NECESSARIO acquistare un certificato da una terza parte fidata (una parte che è considerata affidabile anche da Windows). Queste terze parti sono chiamate Autorità di certificazione (CA) . Ecco come ottenere un certificato da una CA (secondo MSDN) .

How the end user will know its from him, not from me. Or Its doesnt work this way ?

Ora, una delle responsabilità di una CA è verificare l'identificazione prima di emettere un certificato. Pertanto, nessun "altro ragazzo" può ottenere un certificato valido con la propria identità da una CA. Il tuo certificato è verificato da Windows attraverso un processo chiamato Verifica della catena di fiducia . Puoi trovare ulteriori dettagli sulla procedura qui .

As far as I understood, when creating own certificate, it needs to be added in some sort of store so Windows can recognize it ?

Penso che il negozio di cui stai parlando sia Tecnologia Microsoft per la certificazione dei certificati utilizzata fondamentalmente per archiviare tutti i certificati, in modo da poterli scegliere durante la firma. Inoltre, non devi preoccuparti della disponibilità del tuo certificato all'utente finale. Dal momento che il certificato è firmato dalla CA (la CA si fida di te) e Microsoft confida che l'autorità di certificazione e l'utente finale si fida di Microsoft, l'utente non avrà alcun problema a identificare che il codice ti appartiene.

    
risposta data 30.10.2014 - 06:17
fonte
2

Il punto di firma del codice è dimostrare che il programma proviene da una fonte particolare, presumibilmente affidabile. In genere un certificato basato su CA garantisce che sia stata eseguita una verifica dell'identità in modo da avere un grado abbastanza elevato di attendibilità che il codice provenga dalla persona che lo ha firmato.

Puoi firmare automaticamente, il che dimostrerà che è stato rilasciato dal detentore della chiave privata che corrisponde alla chiave pubblica con la quale è stato firmato, tuttavia, non esiste una verifica indipendente dell'identità, quindi è solo utile per verificare la stessa persona ha prodotto due programmi diversi.

Qualcun altro potrebbe creare un certificato simile con gli stessi dettagli, ma non avrebbe la chiave privata e l'identificazione personale del certificato non corrisponderebbero. I tuoi utenti non dovrebbero fidarsi comunque delle informazioni di identità di un certificato autofirmato, dovrebbero solo sapere che l'ultimo programma che hanno ricevuto corrisponde al nuovo programma che hanno ricevuto da te, quindi se il primo è stato effettivamente da te, allora è il secondo.

Senza compromettere la tua chiave privata, che hai solo tu, non c'è modo per l'autore dell'attacco di abbinare l'impronta digitale della tua firma, quindi non possono realmente impersonare te per un utente di avviso.

Detto questo, il tuo utente medio potrebbe non riconoscere questo fatto e si fiderebbe solo di ciò che è fornito dal certificato, anche se ha un'identificazione personale diversa. Questo è il motivo per cui vale davvero la pena ottenere un codice di firma da un CA se vuoi fare questo genere di cose.

Puoi ottenerne uno a buon mercato da alcune delle CA più economiche. Personalmente, ho ottenuto il mio tramite StartSSL. Sono stati $ 60 per verificare la mia identità e dopo posso rilasciare tanti certificati SSL e certificati S / Mime come voglio nel mio nome per un anno, oltre a ricevere un certificato di firma del codice nel mio nome.

    
risposta data 30.10.2014 - 16:17
fonte

Leggi altre domande sui tag