Eu brinquei com o openssl para criar uma chave pub / prv, criar uma assinatura de um arquivo e validá-lo. Eu brinquei com Cryptophane (interface do Windows gnupg) e ouvi falar sobre servidores de chaves + brinquei com a assinatura de texto.
No entanto, eu nunca assinei um arquivo morto. Se eu quiser publicar um arquivo (7z, rar ou zip, isso não importa) e gostaria que meus usuários ou software pudessem verificar se esse arquivo foi assinado, como eu faria isso? Obviamente, a chave pública precisaria estar disponível publicamente. Mas adicionar a assinatura ao arquivo é o que me incomoda. Algum software + arquivo permite que eu assine e verifique um arquivo compactado?
Respostas:
Um método comum é criar uma assinatura desanexada em um
.sig
arquivo (geralmente uma assinatura PGP usandogpg -b
- X.509 é muito incomum) e fornecer os dois arquivos no mesmo local. Por exemplo:Isso pode ser usado com qualquer tipo de arquivo, mas o usuário terá que verificar a assinatura manualmente usando
gpg --verify
.Infelizmente, dos atualmente em uso, nenhum formato de arquivo (que eu saiba) tem suporte para assinaturas internas usando PGP ou X.509. (Isso exclui o CAB, que é usado internamente pelo Windows, mas praticamente em nenhum outro lugar, e é bastante complicado de assinar). O WinRAR 4 conseguiu adicionar um registro de "verificação de autenticidade" usando um formato proprietário, mas usa sua licença do WinRAR como a chave de assinatura, que foi quebrada várias vezes. (Atualização: Este recurso foi removido do WinRAR 5 devido à insegurança.)
No Windows (e em breve no Mac OS X), é possível criar um "arquivo de extração automática" - um executável assinado digitalmente que extrai um arquivo de dentro de si - é assim que os instaladores de software no Windows funcionam, por exemplo. No entanto, os SFXs são limitados a um único sistema operacional, portanto, adequados apenas para a distribuição de programas , não documentos ou fotos. (Os programas Java podem ser assinados e são multiplataforma, mas poucos sistemas ainda têm um tempo de execução Java.)
fonte
Os arquivos jar, criados com o Javas jar-tool, são efetivamente arquivos zip, e existe uma ferramenta, o jarsigner, para assiná-los.
Aqui estão alguns links úteis:
Parece um pouco complicado primeiro ("O que eu preciso guardar? O que mais?"), Mas é fácil seguir as etapas para resolvê-lo de maneira simples. Funciona. Então você pode mergulhar mais fundo no assunto.
fonte
manual verification
? Qual é a alternativa? Um autopopup, que se verifica a cada 10 minutos? O sistema operacional deve verificar automaticamente o arquivo na inicialização? Quando um arquivo é recebido - seja de CD, anexo de email, download, ...? Deve ser um plug-in no seu antivírus?.deb
assinaturas de pacote são verificadasdpkg
antes da instalação do pacote, sem que o usuário execute nenhuma ação adicional.Claro, toda vez que você instala um software assinado, está verificando um arquivo assinado. Para criar um, você deve usar as mesmas ferramentas de empacotamento que os desenvolvedores usam. Existem algumas vantagens, facilidade de uso e compatibilidade entre plataformas. Não consigo pensar em uma maneira de criar um arquivo de extração automática assinado entre plataformas.
Para o Windows, crie um arquivo auto-extraível com a ferramenta iexpress e assine-o usando o signtool.exe, conforme descrito aqui . Quando os usuários clicam duas vezes no arquivo, as janelas familiares confirmam o diálogo identificando você como o editor do arquivo.
fonte
Você pode assinar arquivos usando o jarsigner com estes dois comandos:
Você precisa instalar o java jdk no seu pc.
-O primeiro comando cria o armazenamento de chaves no diretório atual (supondo que ele ainda não exista). Ele gera um par de chaves pública / privada usando o algoritmo SHA-256.
-O segundo assina o arquivo usando o mesmo algoritmo, o keystore e o alias gerado pelo primeiro.
Para verificar um arquivo assinado usando um armazenamento de chaves, você pode executar este comando:
fonte