Certificato di firma del codice per progetti open source?


118

Voglio pubblicare una delle mie applicazioni come open source e voglio firmare digitalmente i file binari che ho creato con il mio certificato. (Ovviamente, chiunque altro può semplicemente scaricare il codice e crearlo da solo con il proprio certificato.) Voglio farlo in modo che chiunque possa verificare che questa build sia stata fatta da me, non da qualcun altro. Voglio anche creare un sito web sicuro con un certificato SSL valido in modo che i visitatori possano creare i propri account in modo sicuro in modo che possano contribuire a questo progetto.

Potrei creare un certificato autofirmato, ma questa opzione non mi piace molto. Oppure potrei pagare a Verisign alcuni pezzi d'oro per ottenere i certificati che sarebbero validi solo per pochi anni. Non mi piace nemmeno questa opzione, dal momento che il mio tesoro è prezioso per me.

Quindi, ci sono altre opzioni? Ad esempio, un provider che supporta progetti open source offrendo certificati a un prezzo ridotto? Non deve essere gratuito, solo molto meno costoso di Verisign ...

(Il progetto viene creato in C # con Visual Studio 2008. Inoltre un progetto aggiuntivo in ASP.NET che richiede SSL.)


Questa domanda è in argomento. Descrive il problema (desiderio di pubblicare) e cosa è stato fatto (app costruita, ma non firmata). Non richiede raccomandazioni, solo i nomi di uno o più fornitori gratuiti oa basso costo. Chiede risposte che "trovano" una risorsa esterna al sito, ma non in un modo che possa attrarre risposte supponenti o spam, poiché ci sono poche opzioni disponibili.
Edward Brey

5
Voglio sottolineare che ho posto questa domanda da quasi 8 anni. Oggi ci sono già alcune altre opzioni, ma l'affidabilità sta diventando un problema. Ci sono anche molte opzioni gratuite per SSL e sviluppo web, ma i certificati di firma del codice sono ancora scarsi ...
Wim ten Brink

1
Purtroppo LetsEncrypt non supporterà i certificati di firma del codice . A metà del 2018, il più economico che riesco a trovare è il codesigncert di Comdo per $ 59 all'anno. Sarebbe molto più semplice se i governi rilasciassero a tutti i cittadini / soggetti un certificato di firma del codice come documento d'identità nazionale ... ma poi sarei costretto a fidarmi del mio governo
earcam

Risposte:


9

Puoi provare CAcert . Con questo si ottiene la certificazione da altri utenti CAcert. CAcert ha un sistema basato sulla reputazione, quindi se sei certificato abbastanza spesso il tuo certificato viene considerato valido.

Potrebbe essere necessario aggiungere CAcert come autorità attendibile sul sistema di destinazione. La firma automatica del tuo eseguibile dovrebbe essere un'opzione sufficiente, ma dovrai fornire il certificato pubblico. L'utilizzo di un'autorità nota può aiutare a verificare il file, ma penso che sia finita kill in questo caso usa un checksum o un hash sha2 del file in combinazione con il tuo certificato auto firmato. Potresti configurare una macchina Linux come CA, tuttavia dovranno fidarsi del tuo certificato pubblico.


48
Lo svantaggio di CACert è che non è incluso per impostazione predefinita in nessuno dei principali browser ( wiki.cacert.org/InclusionStatus ), quindi l'esperienza utente tipica non è migliore di quella di un certificato autofirmato.
Kohsuke Kawaguchi

6
Inoltre, se sei interessato a firmare eseguibili di Windows, tieni presente che CACert non è elencato nell'elenco delle autorità di certificazione (CA) che sono membri del programma Windows Root Certificate , mentre Unizeto CERTUM è
user377486

Ho provato CAcert. Questa immagine lo riassume: imgur.com/a/rNYqBme
selbie

l'elenco aggiornato delle CA è disponibile all'indirizzo ccadb-public.secure.force.com/microsoft/…
Erdogan Kurtur

35

Per gli sviluppatori open source, Certum fornisce certificati di firma del codice gratuitamente *

Basta inserire "sviluppatore open source" nel campo "azienda" quando richiedi il certificato. Questo è tutto.

Il collegamento ai certificati di firma del codice open source è qui

[*] A partire dal 2016, il certificato Open Source Code Signing non è più disponibile gratuitamente. Ora è un servizio solo a pagamento.


2
Sei stato sul sito e posso vedere solo i certificati SSL, puoi creare un deep link ai certificati di firma del codice?
Frozenskys

3
Sembra che non lo offrano più.
Ciad

3
AFAIK hanno smesso di offrire i certificati gratuiti per sviluppatori Open Source. Altrimenti apprezzerei davvero un collegamento.
reiniero

15
Sembra che i certificati non siano più gratuiti: il riferimento alla firma del codice open source è stato rimosso dalla pagina dei certificati di prova e ora è disponibile una pagina del prodotto separata en.sklep.unizeto.pl/data-safety/code-signing-certificates/ … . A 14 euro sono però molto più economici di altri certificati. Anche il processo di registrazione sembra essere lo stesso di quando erano gratuiti.
Alex Warren

2
@quasoft quelli sono certificati SSL.
Nathan Osman,

27

Aggiornamento: non più gratuito, ora € 105,78 (dal 19 febbraio 2017). Il costo è inferiore se possiedi già il loro hardware crittografico. FWIW, di seguito sono riportate le istruzioni precedenti.


Per ottenere un certificato di firma del codice gratuito da Certum / Unizeto per te stesso come individuo, segui questi passaggi. Usa Internet Explorer o Safari, poiché supportano il meccanismo di scambio delle chiavi.

  1. Sfoglia per Test ID e certificati OpenSource Code Signing e invia il modulo.

  2. Il certificato verrà visualizzato in Attiva certificati . Fare clic su Attiva .

  3. Segui la procedura guidata di attivazione. Per Organizzazione inserisci Open Source Developer . Per Unità organizzativa , immettere Pubblicazione di software .

  4. Riceverai un'e-mail con la richiesta di un documento d'identità. Rispondi con un link al progetto open source e un'immagine della tua patente di guida (o un altro documento accettato). Per proteggere la tua privacy, dovresti crittografare la risposta. * Il modo di crittografare varia a seconda del client di posta. Per Outlook, assicurati di avere un certificato di posta elettronica ( disponibile gratuitamente ) e attiva la crittografia .

  5. Entro un giorno circa, dovresti ricevere un'e-mail con un collegamento per ritirare il certificato. Devi aprire il collegamento dallo stesso computer e browser che hai utilizzato per avviare il processo.

* Sebbene l'email di verifica di Certum indichi di inviare la prova a ccp@certum.pl, Certum accetta anche la prova inviata all'indirizzo di risposta info@certum.pl, a cui è possibile inviare email crittografate.


Ha funzionato bene, grazie mille! Sai se rinnovano il certificato gratuitamente dopo il periodo di 1 anno? O è solo un periodo di prova e poi diventa un certificato a pagamento?
Al-Khwarizmi

1
Dopo circa 10 mesi riceverai una mail per ricordarti che il tuo certificato sta scadendo. In quella mail dicono che puoi rinnovare, ma non ha funzionato (per me 4 mesi fa). Avevo richiesto un nuovo certificato allo stesso modo di un anno prima e l'ho ricevuto. In breve: basta richiedere un nuovo certificato ogni anno.
Martijn Stolk

Il menu a discesa dei paesi non sembra più elencare gli Stati Uniti? Ho ottenuto un certificato nel 2013, quindi ha funzionato per me.
Warty

Ho provato questo. Ora un certificato di 90 giorni. Tuttavia, non è possibile superare il passaggio "Attiva" poiché fare clic sul pulsante "Genera chiavi" non fa nulla e Avanti genera l'avviso "Genera coppia di chiavi" ....
StevoKeano

Sembrano avere il metodo CSR rimanente. Come possono sapere se la CSR è stata generata dal loro hardware oppure no?
OTTAGRAM

22

Aggiornamento 2016: StartCom è stato acquisito da WoSign in circostanze discutibili . Non mi fiderei di StartCom / WoSign. Si consideri il sotto testo come nota storica su come buona StartCom era fino a inizio del 2015 .

Ho un certificato di firma del codice da StartCom (StartSSL). Sono molto soddisfatto del loro servizio: il loro servizio clienti è molto veloce ei loro prezzi sono molto ragionevoli.

Ottenere il certificato di firma del codice

Ottenere un certificato di firma del codice richiede la convalida dell'identità di classe 2 . StartCom ti guida attraverso l'intero processo (con eccellenti tassi di risposta, di solito entro dieci minuti nella mia esperienza).
Se vuoi ottenere subito i dettagli, leggi questo post del blog . Sono stato convalidato entro un'ora (per una tariffa di 59,90 $, tramite Paypal).

Dopo essere stato convalidato, genera una nuova chiave privata e una richiesta di firma del certificato (CSR). Notare che tutti i campi ad eccezione della chiave pubblica vengono ignorati . Tutte le informazioni nel certificato vengono dedotte dalle informazioni fornite durante la convalida dell'identità, non dalla CSR .

# Create key and CSR (key must be at least 2048 bit, per Policy Statement)
openssl req -nodes -newkey rsa:2048 -keyout codesigning.key -out codesigning.csr
# Add pass phrase to key (optional, but highly recommended)
openssl rsa -in codesigning.key -des3 -out codesigning2.key && \
    mv codesigning2.key codesigning.key

Invia questo tramite l'interfaccia web e riceverai rapidamente un nuovo certificato valido per due anni (ho ricevuto il mio entro un'ora).

Problema: OID con firma a vita

I certificati di classe 2 di StartCom hanno impostato l'OID di firma a vita. A causa di questo bit, la firma del codice firmato non sarà più valida dopo la scadenza del certificato, anche se ha il timestamp.

Quando ho chiesto a Eddy Nigg (COO / CTO di StartCom) il motivo di questo OID, ha risposto:

Richiede da parte nostra di mantenere le CRL operative fino a 20 anni dopo la scadenza dei certificati. Questo è qualcosa che possiamo fare per i certificati di livello EV (volume molto più basso, termini di pagamento diversi) ma aumenterebbe il prezzo per la Classe 2 solo per questo vantaggio (dove la firma del codice è solo una parte delle opzioni in questo livello).

Il timestamp è quindi disponibile solo dopo Extended Validation (EV), che è disponibile solo per le organizzazioni legalmente stabilite e costa 199,90 $. Pertanto, i singoli sviluppatori non possono utilizzare il timestamp con un certificato di firma del codice da StartCom .

Per molto tempo ho considerato questa limitazione come un grosso problema. Di recente, ho cambiato idea: succede solo una volta ogni due anni, gli utenti attenti alla sicurezza potrebbero essere più inclini a ottenere l'ultima versione del mio software e le vecchie versioni del software continueranno a funzionare (per coloro che vogliono usarlo; sebbene senza una firma verificata).

Nota: segnate sempre la data e l'ora del codice, anche quando è impostato il flag Firma a vita ! Le firme timestamp rimarranno valide fino alla data di scadenza del certificato, anche quando il certificato è stato revocato (ovviamente, solo se la firma è stata creata prima della revoca del certificato).

Uso pratico del certificato

In StartCom paghi solo per la convalida. La convalida dell'identità è valida per 350 giorni e durante questo periodo è possibile richiedere gratuitamente certificati di firma del codice. Puoi avere un solo certificato di firma del codice valido e può essere utilizzato per firmare qualsiasi codice (MSI, DLL, XPI, ...) ma non il codice del driver (questo richiede EV).

Per modificare un attributo del certificato, è necessario revocare il certificato precedente e richiederne uno nuovo. La revoca di un certificato costa 29,90 $. Tuttavia, quando ho cambiato la mia e-mail un giorno dopo aver ricevuto un certificato di firma del codice, hanno eccezionalmente revocato il mio certificato senza costi (sono rimasto positivamente sorpreso)!

Scadenza

Quando il tuo certificato sta per scadere (dopo quasi due anni), ricevi una notifica (due settimane prima). Se la tua identità verificata è ancora valida (ricorda che le convalide scadono dopo 350 giorni; quindi devi confermare nuovamente la tua identità per 59,90 $), puoi richiedere un nuovo certificato senza revocare quello precedente. Non dimenticare di pubblicare una nuova versione del tuo software che sia firmata con questo nuovo certificato di firma del codice, perché le versioni precedenti mostreranno presto "(non verificato)" o qualcosa di simile.

OCSP

Quando ho ricevuto il mio certificato, ho firmato il mio componente aggiuntivo per Firefox. Tuttavia, mostrava ancora "(Autore non verificato)", anche se il mio file XPI era firmato correttamente. Si è scoperto che Firefox non ha ottenuto lo stato del certificato corrente quando ha richiesto ai server OCSP di StartCom lo stato di revoca del mio nuovo certificato. argomento del forum possibilmente rilevante

Dopo circa mezza giornata, il mio certificato era noto ai server OCSP e il mio nome è apparso come previsto. Lezione appresa: quando hai un nuovo certificato, attendi circa un giorno prima di pubblicare il software con la nuova firma.


1
Grazie per gli approfondimenti sulla firma a vita e "solo un certificato di firma del codice attivo". Sicuramente vale la pena sapere. Avevo intenzione di farlo un giorno e penso di volerlo ancora fare. Utilizzo già certificati SSL gratuiti.
ygoe

2
Aggiornamento su StartCom: i certificati del codice ora non hanno OID di firma a vita impostato. Ora sono validi come ogni altro certificato di firma del codice. Per le convalide dell'organizzazione, è inclusa anche la firma del codice del kernel.
Josef dice Reinstate Monica

8

Puoi anche controllare KSoftware . Essi rivendere Comodo certificati di firma del codice per US $ 99 / anno.


1
Li ho usati con successo in passato. Anche Tucows è un rivenditore e se fai un contratto pluriennale, penso che puoi ottenerli per circa 70 all'anno.
EricLaw

KSoftware ha un ottimo servizio, mentre Comodo non è buono, i ragazzi di KSoftware sono pronti a rispondere, non sono imparentato, solo un cliente felice.
digitai

1
Recentemente ho acquistato un certificato con KSoftware, ma non ho ancora terminato il processo di convalida, il team di convalida di Comodo continua a chiedermi un numero di telefono ma il Face-to-Face non ha detto che era obbligatorio.
Nicke Manarin

1
Ho appena acquistato un certificato di firma del codice da K Software perché la differenza di prezzo era notevole: $ 75 all'anno invece di $ 175 all'anno. Proverò a pubblicare un aggiornamento qui dopo aver completato la convalida e l'emissione. Il mio istinto, tuttavia, dice che probabilmente vale la pena pagare $ 100 in più e andare direttamente con Comodo. Ti farò sapere come va ...
Joshua Pinter

1
Aggiornamento: ho provato a consultare i nostri avvocati per completare il documento richiesto, ma hanno detto che sarebbe costato circa $ 1.500. Quindi abbiamo deciso di registrarci su D & B.com per ottenere un numero DUNS e utilizzarlo come "verifica" della nostra esistenza. Ora ce l'abbiamo ma è stato un rompicoglioni e ci è voluto circa un mese per completarlo dall'inizio alla fine. Se hai fretta, cercherò un provider diverso, come digicert.com. (Detto questo, non sono sicuro che siano diversi / migliori.)
Joshua Pinter

8

Potresti dare un'occhiata al file prodotto StartSSL .

Nota StartSSL è ora chiuso e non emette più certificati.


4
Divertente. Google Chrome mi segnala che startssl.com ha un certificato non valido e mi avverte dei rischi di procedere su questo sito. :-) Ho proceduto, però. Sembra a posto.
Wim ten Brink

1
Se aggiungi il certificato Root CA da startll questo andrà via. Credo che FireFox 3+ venga spedito con questo certificato CA integrato.
Frozenskys

46
È sempre una bella sensazione importare CA root. Un po 'sconfigge l'intero scopo di averli.
Matthew Whited,

3
StartSSL è la prima (unica ancora) CA gratuita con una RootCA in Windows Vista +. C'è un aggiornamento del certificato per le versioni precedenti di Windows che lo includono anche afaik. Perché Chrome non lo ha come RootCA o fallback su Windows per controllare è solo un problema di Chrome.
Robert MacLean

6
I certificati di firma del codice di BTW StartSSL sono beta e richiedono la verifica (che attualmente non è gratuito $ 50)
Robert MacLean

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.