Certificado de assinatura de código para projetos de código aberto?

118

Quero publicar um de meus aplicativos como código aberto e assinar digitalmente os binários que criei com meu próprio certificado. (Obviamente, qualquer outra pessoa pode simplesmente baixar o código e construí-lo por conta própria com seu próprio certificado.) Quero fazer isso para que qualquer pessoa possa verificar se essa versão foi feita por mim, não por outra pessoa. Também quero criar um site seguro com um certificado SSL válido para que os visitantes possam criar suas próprias contas de maneira segura para que possam contribuir com este projeto.

Eu poderia criar um certificado autoassinado, mas não gosto dessa opção. Ou eu poderia pagar à Verisign algumas moedas de ouro para obter os certificados que seriam válidos por apenas alguns anos. Também não gosto dessa opção, pois meu tesouro é valioso para mim.

Então, há outras opções? Por exemplo, um provedor que apóia projetos de código aberto oferecendo certificados por um preço reduzido? Não precisa ser gratuito, apenas muito mais barato que o Verisign ...

(O projeto é criado em C # com Visual Studio 2008. Além de um projeto adicional em ASP.NET que deseja SSL.)

Wim ten Brink
fonte
Esta questão está no tópico. Descreve o problema (desejo de publicar) e o que foi feito (aplicativo criado, mas não assinado). Não pede recomendações, apenas o nome de um ou mais fornecedores gratuitos ou de baixo custo. Ele pede respostas que "encontrem" um recurso externo, mas não de uma forma que provavelmente atraia respostas opinativas ou spam, uma vez que há poucas opções disponíveis.
Edward Brey
5
Eu quero ressaltar que já fiz essa pergunta há quase 8 anos. Hoje, já existem mais algumas opções, mas a confiabilidade está se tornando um problema. Também há muitas opções gratuitas para SSL e desenvolvimento web, mas os certificados de assinatura de código ainda são escassos ...
Wim ten Brink
1
O LetsEncrypt não oferecerá suporte a certificados de assinatura de código . Em meados de 2018, o mais barato que consigo encontrar é o codesigncert da Comdo por US $ 59 por ano. Seria muito mais fácil se os governos emitissem a todos os cidadãos / súditos um certificado de assinatura de código como identidade nacional ... mas então eu seria forçado a confiar em meu governo
earcam

Respostas:

9

Você pode experimentar o CAcert . Com isso você obtém a certificação de outros usuários do CAcert. CAcert tem um sistema baseado em reputação, então se você for certificado com frequência suficiente, seu certificado será considerado válido.

Você pode ter que adicionar CAcert como uma autoridade confiável no sistema de destino. A auto-assinatura do seu executável deve ser uma opção suficiente, mas você precisará fornecer o certificado público. Usar uma autoridade conhecida pode ajudar a verificar o arquivo, mas acho que é over kill neste caso, use uma soma de verificação ou sha2 hash do arquivo em combinação com seu certificado autoassinado. Você pode configurar uma máquina linux como uma CA, porém eles precisarão confiar em seu certificado público.

Mnementh
fonte
48
A desvantagem do CACert é que ele não é incluído por padrão em nenhum dos principais navegadores ( wiki.cacert.org/InclusionStatus ), portanto, a experiência típica do usuário não é melhor do que a de um certificado autoassinado.
Kohsuke Kawaguchi,
6
Além disso, se você estiver interessado em assinar executáveis ​​do Windows, lembre-se de que CACert não está listado na lista de Autoridades de Certificação (CAs) que são membros do Programa de Certificação de Raiz do Windows , enquanto o Unizeto CERTUM é
usuário377486
Eu tentei CAcert. Esta imagem resume tudo: imgur.com/a/rNYqBme
selbie
A lista atualizada de CA pode ser encontrada em ccadb-public.secure.force.com/microsoft/…
Erdogan Kurtur
35

Para desenvolvedores de código aberto, Certum fornece certificados de assinatura de código gratuitamente *

Basta inserir "desenvolvedor de código aberto" no campo "empresa" ao solicitar o certificado. É isso aí.

O link para certificados de assinatura de código-fonte aberto está aqui

[*] A partir de 2016, o certificado de assinatura de código aberto não está mais disponível gratuitamente. Agora é um serviço apenas pago.

Stefan
fonte
2
Já acessou o site e só pode ver certificados SSL. Você pode criar um link direto para os certificados de assinatura de código?
Frozenskys
3
Eles não parecem mais oferecer isso.
Chade,
3
AFAIK eles pararam de oferecer certificados de desenvolvedor de código aberto. Caso contrário, eu realmente apreciaria um link.
reiniero
15
Parece que os certificados não são mais gratuitos - a referência à assinatura de código-fonte aberto foi removida da página de certificados de teste e agora há uma página de produto separada en.sklep.unizeto.pl/data-safety/code-signing-certificates/ ... . Por 14 € são muito mais baratos do que outros certificados. O processo de inscrição parece ser o mesmo de quando eles eram gratuitos.
Alex Warren
2
@quasoft, esses são certificados SSL.
Nathan Osman
27

Atualização: Não é mais gratuito, agora € 105,78 (em 19 de fevereiro de 2017). O custo é menor se você já possui seu hardware de criptografia. FWIW, a seguir estão as instruções anteriores.


Para obter um certificado de assinatura de código gratuito da Certum / Unizeto para você como indivíduo, siga estas etapas. Use o Internet Explorer ou Safari, pois eles suportam o mecanismo de troca de chaves.

  1. Navegue para Testar ID e certificados de assinatura de código de código aberto e envie o formulário.

  2. O certificado aparecerá em Ativar certificados . Clique em Ativar .

  3. Vá até o assistente de ativação. Para Organização, insira Open Source Developer . Para Unidade organizacional , insira Publicação de software .

  4. Você receberá um e-mail solicitando uma prova de identidade. Responda com um link para o projeto de código aberto e uma imagem de sua carteira de motorista (ou outro documento aceito). Para proteger sua privacidade, você deve criptografar a resposta. * A forma de criptografar varia de acordo com o cliente de e-mail. Para o Outlook, verifique se você tem um certificado de e-mail ( disponível gratuitamente ) e ative a criptografia .

  5. Dentro de um ou dois dias, você deve receber um e-mail com um link para coletar seu certificado. Você deve abrir o link no mesmo computador e navegador que usou para iniciar o processo.

* Embora o e-mail de verificação da Certum diga para enviar a prova para [email protected], a Certum também aceita a prova enviada para o endereço de resposta [email protected], para o qual você pode enviar e-mail criptografado.

Edward Brey
fonte
Funcionou bem, muito obrigado! Você sabe se eles renovam o certificado gratuitamente após o período de 1 ano? Ou isso é apenas um período de teste e depois se torna um certificado pago?
Al-Khwarizmi
1
Após cerca de 10 meses, você receberá um e-mail para lembrá-lo de que seu certificado está expirando. Nesse e-mail, eles mencionam que você pode renovar, mas não funcionou (para mim há 4 meses). Eu havia solicitado um novo certificado da mesma forma que fiz um ano antes e o recebi. Resumindo: você apenas solicita um novo certificado a cada ano.
Martijn Stolk
A lista suspensa de países não parece mais listar os Estados Unidos? Recebi um certificado em 2013, então costumava funcionar para mim.
Warty
Tentei isso. Agora, um certificado de 90 dias. Mas, não é possível passar da etapa "Ativar", pois clicar no botão "Gerar Chaves" não faz nada, e Próximo lança o alerta "Gerar Par de Chaves" ....
StevoKeano
Eles parecem ter o método CSR restante. Como eles podem saber se o CSR foi gerado pelo seu hardware ou não?
OCTAGRAM
22

Atualização de 2016: a StartCom foi adquirida pela WoSign em circunstâncias questionáveis . Eu não confiaria em StartCom / WoSign. Considere o texto abaixo como uma nota histórica sobre como a StartCom era boa até o início de 2015 .

Eu tenho um certificado de assinatura de código da StartCom (StartSSL). Estou muito satisfeito com o serviço prestado: o atendimento ao cliente é muito rápido e os preços muito razoáveis.

Obtendo o certificado de assinatura de código

A obtenção de um certificado de assinatura de código requer validação de identidade de classe 2 . O StartCom o orienta em todo o processo (com excelentes taxas de resposta, geralmente em dez minutos, segundo minha experiência).
Se você quiser obter os detalhes certos de uma vez, leia esta postagem do blog . Fui validado em uma hora (por uma taxa de 59,90 $, via Paypal).

Depois de ser validado, gere uma nova chave privada e um Certificate Signing Request (CSR). Observe que todos os campos, exceto a chave pública, são ignorados . Todas as informações no certificado são deduzidas das informações que você fornece durante a validação de identidade, não do seu 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

Envie-o pela interface da web e você obterá rapidamente um novo certificado válido por dois anos (recebi o meu em uma hora).

Problema: OID de assinatura vitalícia

Os certificados classe 2 da StartCom têm o conjunto de OID de assinatura vitalícia. Por causa desse bit, a assinatura do código assinado se tornará inválida depois que o certificado expirar, mesmo quando tiver um carimbo de data / hora.

Quando perguntei a Eddy Nigg (COO / CTO da StartCom) o motivo desse OID, ele respondeu:

Exige de nós manter as CRLs operando por até 20 anos após os certificados já expirados. Isso é algo que podemos fazer para certificados de nível EV (volume muito menor, condições de pagamento diferentes), mas aumentaria o preço da Classe 2 apenas por esse benefício (onde a assinatura de código é apenas parte das opções neste nível).

Portanto, o carimbo de data / hora só está disponível após a Validação Estendida (EV), que está disponível para organizações legalmente estabelecidas e custa US $ 199,90. Portanto, os desenvolvedores individuais não podem usar o carimbo de data / hora com um certificado de assinatura de código do StartCom .

Por muito tempo, considerei essa limitação um grande problema. Recentemente, mudei de ideia: isso só acontece uma vez a cada dois anos, usuários preocupados com a segurança podem estar mais inclinados a obter a versão mais recente do meu software e as versões antigas do software ainda funcionarão (para aqueles que desejam usá-lo; embora sem uma assinatura verificada).

Nota: Sempre registre a data e hora do código, mesmo quando o sinalizador de assinatura vitalício está definido ! As assinaturas com carimbo de data / hora permanecerão válidas até a data de expiração do certificado, mesmo quando o certificado foi revogado (obviamente, somente se a assinatura foi criada antes do certificado ser revogado).

Uso prático do certificado

Na StartCom, você só paga pela validação. A validação da identidade é válida por 350 dias e, durante este período, você pode solicitar certificados de assinatura de código gratuitamente. Você só pode ter um certificado de assinatura de código válido e pode ser usado para assinar qualquer código (MSI, DLL, XPI, ...), mas não o código do driver (isso requer EV).

Para alterar um atributo no certificado, o certificado anterior deve ser revogado e um novo solicitado. A revogação de um certificado custa 29,90 $. Porém, quando mudei meu e-mail um dia após obter um certificado de assinatura de código, eles excepcionalmente revogaram meu certificado sem taxa (fiquei positivamente surpreso)!

Vencimento

Quando o seu certificado estiver prestes a expirar (após quase dois anos), você receberá uma notificação (com duas semanas de antecedência). Se sua identidade verificada ainda for válida (lembre-se de que as validações expiram depois de 350 dias; então você deve confirmar sua identidade novamente por $ 59,90), você pode solicitar um novo certificado sem revogar o anterior. Não se esqueça de publicar uma nova versão do seu software que seja assinada com este novo certificado de assinatura de código, porque as versões anteriores logo mostrarão "(não verificado)" ou algo semelhante.

OCSP

Quando recebi meu certificado, assinei meu add-on do Firefox. No entanto, ainda mostrava "(Autor não verificado)", embora meu arquivo XPI estivesse assinado corretamente. Descobriu-se que o Firefox não obteve o status do certificado atual quando consultou os servidores OCSP da StartCom sobre o status de revogação do meu novo certificado. possivelmente tópico relevante do fórum

Depois de cerca de meio dia, meu certificado foi conhecido pelos servidores OCSP e meu nome apareceu conforme o esperado. Lição aprendida: quando você tiver um novo certificado, espere cerca de um dia antes de publicar seu software com a nova assinatura.

Rob W
fonte
1
Obrigado pelos insights sobre a assinatura vitalícia e "apenas um certificado de assinatura de código ativo". Definitivamente, vale a pena saber. Eu estava planejando fazer isso um dia, e acho que ainda quero fazer. Já usando certificados SSL gratuitos.
ygoe
2
Atualização no StartCom: Os certificados de código agora não têm OID de assinatura vitalícia definido. Eles agora são tão bons quanto qualquer outro certificado de assinatura de código. Para validações de organização, há até assinatura de código de kernel incluída.
Josef diz Restabelecer Monica
8

Você também pode verificar o KSoftware . Eles revendem certificados de assinatura de código Comodo por US $ 99 / ano.

Joe Kuemerle
fonte
1
Eu os usei com sucesso no passado. A Tucows também é revendedora e, se você fizer um negócio de vários anos, acho que pode obtê-la por cerca de 70 por ano.
EricLaw
KSoftware tem um ótimo serviço, enquanto Comodo não é bom, o pessoal da KSoftware é rápido em responder, eu não sou parente, apenas um cliente feliz.
digitai
1
Recentemente comprei um certificado com KSoftware, mas ainda não terminei o processo de validação, a equipe de validação da Comodo fica me pedindo um número de telefone, mas o Face a Face não disse que era obrigatório.
Nicke Manarin
1
Acabei de comprar um certificado de assinatura de código da K Software porque a diferença de preço foi substancial: $ 75 por ano em vez de $ 175 por ano. Vou tentar postar uma atualização aqui depois de passar pela validação e emissão. Meu instinto, entretanto, diz que provavelmente vale a pena pagar os US $ 100 extras e ir direto para o Comodo. Vou te contar como foi ...
Joshua Pinter
1
Atualização: tentei passar por nossos advogados para preencher o documento exigido, mas eles disseram que custaria cerca de US $ 1.500 para fazer. Portanto, optamos por apenas nos registrar na D & B.com para obter um número DUNS e usá-lo como "verificação" de que existimos. Temos agora, mas foi um pé no saco e demorou cerca de um mês para ser concluído do início ao fim. Se você estiver com pressa, eu procuraria outro provedor, como digicert.com. (Dito isso, não tenho certeza se eles são diferentes / melhores.)
Joshua Pinter
8

Você pode dar uma olhada no produto StartSSL .

Observação O StartSSL foi fechado e não está mais emitindo certificados.

Frozenskys
fonte
4
Engraçado. O Google Chrome relata que começasl.com tem um certificado inválido e me avisa sobre os riscos de prosseguir para este site. :-) Eu continuei, no entanto. Parece bom.
Wim ten Brink
1
Se você adicionar o certificado de CA raiz a partir do startsll, ele desaparecerá. Eu acredito que o FireFox 3+ vem com este certificado CA embutido.
Frozenskys
46
É sempre bom importar CAs raiz. Meio que anula todo o propósito de tê-los.
Matthew Whited
3
StartSSL é a primeira (única ainda) CA gratuita com RootCA no Windows Vista +. Há uma atualização de certificado para versões anteriores do Windows que também o incluem. Por que o Chrome não o tem como RootCA ou substituto do Windows para verificar é apenas um problema do Chrome.
Robert MacLean
6
Os certificados de assinatura de código do BTW StartSSL são beta e precisam ser verificados (o que não é gratuito atualmente US $ 50)
Robert MacLean