Como Verificar a Autenticidade do Software Windows com Assinaturas Digitais

Verificar Assinaturas de Software Destaque

Toda vez que você baixa um programa da Internet, você precisa confiar no desenvolvedor de que ele não é malicioso. Não há como escapar disso. Mas isso não é um problema, geralmente, especialmente com softwares e desenvolvedores bem conhecidos.

No entanto, sites que hospedam software são mais vulneráveis. Ataques podem subverter a segurança de um site e substituir programas por suas próprias versões maliciosas. Isso parece e funciona exatamente como o original, exceto que tem uma porta dos fundos inserida. Com essa porta dos fundos, os atacantes podem controlar várias partes do seu uso normal do computador. Seu computador pode ser inserido em uma botnet ou, pior, a utilidade espera até que você use seu cartão de crédito/débito e rouba suas credenciais. Você deve ter especialmente cuidado ao baixar softwares importantes, como um sistema operacional, carteira de criptomoedas ou similar.

Assinaturas Digitais Podem Salvar o Dia

Os escritores de software podem assinar seus produtos. A menos que um atacante consiga roubar sua chave privada, não há maneira conhecida de alguém falsificar essa assinatura. Existem inúmeros casos em que milhares de usuários baixaram programas maliciosos e, em quase todos os casos, se eles tivessem verificado as assinaturas digitais, teriam notado que eram inválidas, evitando assim a situação. É relativamente fácil substituir software em um site vulnerável, mas incrivelmente difícil roubar uma chave privada que está devidamente armazenada e isolada do acesso à Internet.

Você pode ler muito mais sobre assinaturas digitais aqui. Este artigo discute a mesma coisa, exceto que você usará utilitários do Windows para validar downloads.

Como Usar Gpg4win para Verificar Assinaturas Digitais

Vá para esta página e baixe e instale o Gpg4win. Pessoas inteligentes vão se perguntar: “Mas como eu sei que isso é legítimo?” E é uma boa pergunta. Se isso estivesse quebrado, então todos os passos seguintes seriam inúteis.

Felizmente, o desenvolvedor passou por todo o trabalho para ter seu software assinado por uma autoridade certificadora. E ele detalha os passos para verificar seu programa em seu site. Embora uma criptografia semelhante seja usada para verificar a validade, o método geral é diferente. Certificados digitais são usados para isso.

Verificar Checksums de Arquivo

Vamos supor que você queira baixar a carteira Bitcoin Core. Baixe o executável x64 para Windows (exe, não zip). Depois, clique em “Verificar assinaturas de lançamento” para baixar o arquivo “SHA256SUMS.asc”. O primeiro passo é verificar o hash do arquivo de instalação. Você pode ler mais sobre hashes aqui.

Vá para sua pasta de downloads e, com o Gpg4win instalado, você pode agora clicar com o botão direito em um arquivo, e um novo menu de contexto aparecerá. Clique com o botão direito no arquivo de instalação do Bitcoin (o exe que você baixou) e selecione “Mais Opções GpgEX -> Criar checksums”, como na imagem abaixo.

Verificar Assinaturas de Software Clique Direito Checksums

Abra tanto o “sha256sum.txt” que foi gerado quanto o “SHA256SUMS.asc” que você baixou. Compare os checksums SHA256. Eles devem ser uma correspondência perfeita.

Verificar Assinaturas de Software Comparar Checksums Sha256

Verificar Assinatura do Arquivo que Lista os Checksums

Enquanto você acabou de baixar um arquivo de instalação e uma lista de checksums do mesmo site, se um atacante substituiu o arquivo de instalação, ele poderia facilmente substituir a lista de checksums também. O que ele não pode fazer, no entanto, é falsificar uma assinatura. Isso pode ser validado por uma chave pública conhecida (legítima). Primeiro, você precisa baixar essa chave.

A imagem a seguir é como uma assinatura se parece.

Verificar Assinaturas de Software Exemplo de Assinatura Inline

Esta é uma assinatura inline (incluída no mesmo arquivo que valida). Às vezes, isso será destacado, incluído em um arquivo separado. Se você mudar apenas uma letra neste arquivo de texto, a assinatura se torna inválida. Esta é uma maneira de saber que o desenvolvedor aprovou e assinou esses conteúdos exatos e específicos com os checksums corretos.

Importar a Chave Pública do Desenvolvedor

Você tem as chaves públicas disponíveis para download sob “Chaves de Assinatura de Lançamento do Bitcoin Core” na página de download do Bitcoin. Como medida de precaução, você pode baixá-las de outra fonte. Se um atacante substituiu as chaves legítimas pelas suas, as chances são de que encontraremos as chaves corretas (e impressões digitais) em todos os outros lugares onde foram postadas ou discutidas.

Clique com o botão direito em “SHA256SUMS.asc” e selecione “Descriptografar e Verificar.” O programa dirá que você ainda não tem a chave pública. Clique em “Pesquisar.”

Verificar Assinaturas de Software Pesquisar Chave Pública

A pesquisa pode levar um tempo. Anote a string no campo “Encontrar”.

Verificar Assinaturas de Software Impressão Digital da Chave

Você pode copiar isso e colar no Google para ver se essa impressão digital da chave pública foi discutida em fóruns legítimos/sites, etc. Quanto mais lugares você a encontrar, mais você pode ter certeza de que pertence ao proprietário pretendido.

Clique na chave e depois importe-a. Você pode clicar em “Não” no aviso que receberá a seguir (tomar medidas para certificar a chave) se não souber como ou não quiser fazer isso agora.

Finalmente, clique em “Mostrar Registro de Auditoria.”

Verificar Assinaturas de Software Mostrar Registro de Auditoria

Você deve ver o texto que foi destacado na próxima imagem, “Boa assinatura.”

Verificar Assinaturas de Software Boa Assinatura

Tente mudar apenas uma letra em “SHA256SUMS.asc” e você obterá o que é mostrado na imagem a seguir.

Verificar Assinaturas de Software Má Assinatura

Conclusão

Poucos desenvolvedores lhe dão a possibilidade de verificar que seu software vem deles. Mas geralmente programas que lidam com dados sensíveis ou são muito importantes oferecerão essa opção. Use-a e isso pode te salvar de problemas algum dia.