SHARE THE PERSPECTIVE
Hash, assinatura, compilação reproduzível e auditoria respondem a perguntas diferentes.

O código aberto permite examinar o código; mas, por si só, não prova que o aplicativo instalado corresponde a esse código ou que não tem vulnerabilidades. Para avaliar um aplicativo de mensagens, é melhor separar os tipos de evidência: código-fonte, processo de compilação, assinatura do arquivo, teste de protocolo e relatório de auditoria.

O que exatamente cada evidência mostra?

Evidência Principal contribuição O que não comprova por si só
Código-fonte legível Possibilidade de examinar o projeto e a implementação Correspondência com o arquivo de instalação ou ausência de todos os bugs
Compilação reproduzível Possibilidade de comparar a saída de uma fonte e ambiente definidos Segurança do próprio código
Assinatura APK Verificação da assinatura e do vínculo do arquivo com uma chave de assinatura confiável Comportamento inofensivo do aplicativo
Hash SHA-256 Detecção de diferenças de bytes em relação a um resumo confiável Autenticidade quando um invasor altera o arquivo e o resumo juntos
Vetor de teste Verificação de um comportamento específico para entrada e saída determinadas Cobertura de todos os estados e caminhos de execução
Auditoria independente Resultados do exame de um escopo e versão específicos Garantia permanente de todas as versões futuras

Compilação reproduzível não é baixar um arquivo com o mesmo hash

Segundo a definição do Reproducible Builds, a reprodutibilidade diz respeito a gerar uma saída idêntica a partir de fonte, ambiente e instruções definidos. Se você apenas compara o arquivo baixado com o hash publicado pelo desenvolvedor, realizou um teste de integridade; ainda não compilou o arquivo por conta própria a partir do código.

Para avaliar uma alegação de reprodutibilidade, peça a versão do código, as dependências, as instruções de compilação e o relatório de outra pessoa que tenha repetido o resultado. A frase “o código está no GitHub” não substitui essas evidências.

Como interpretar corretamente a verificação de um APK?

  1. Obtenha o arquivo por um canal oficial e de uma versão específica.
  2. Obtenha o resumo e as informações do signatário de uma fonte cuja autenticidade você considere confiável.
  3. Calcule o hash do arquivo e compare-o com o da mesma versão.
  4. Na análise técnica, valide também a assinatura; a ferramenta oficial apksigner oferece esse recurso.
  5. Se encontrar uma diferença, interrompa a instalação e esclareça a causa; não assine novamente o arquivo para contornar o erro.

Exemplo de comando de verificação para um especialista que dispõe do Android SDK Build Tools:

apksigner verify --verbose --print-certs app.apk

O nome app.apk é apenas um exemplo. O sucesso do comando não elimina a necessidade de conhecer a chave válida do publicador.

Qual é o papel do Proof Lab?

O Proof Lab do Livara oferece ferramentas para verificações específicas. Leia o escopo de cada teste: hash de arquivo, exemplo de acordo de chaves ou rejeição de dados adulterados são perguntas diferentes. Uma demonstração criptográfica bem-sucedida não é uma auditoria de todo o aplicativo instalado, do servidor, das atualizações ou do gerenciamento da conta.

O modelo de ameaças do Livara também esclarece que, se um invasor substituir tanto o arquivo APK quanto o resumo exibido, a correspondência do hash por si só não comprova autenticidade. Essa é uma limitação geral da verificação de hash, não uma característica de um mensageiro específico.

O que perguntar ao ler um relatório de auditoria?

  • Que organização ou pessoas realizaram a análise e onde está o relatório público?
  • Qual versão e qual commit foram examinados?
  • Que partes ficaram fora do escopo?
  • Como os resultados importantes foram corrigidos e testados novamente?
  • Sua versão instalada é a mesma ou inclui as correções dela?

Não tire conclusões definitivas de palavras como “aprovado” sem responder a essas perguntas. Usar um algoritmo padronizado também não equivale à certificação de todo o produto segundo um padrão.

Conclusão para escolher um mensageiro

Código aberto e verificabilidade não são rivais; são evidências complementares. Prefira produtos cujas alegações sejam precisas, rastreáveis e tenham escopo claro. Depois, aplique a mesma análise ao modo que você usa, como grupos, versão web, backups e dispositivos vinculados, em vez de deduzir segurança absoluta a partir de um único teste bem-sucedido.

Verifique o hash do instalador Android no Livara
CONTINUE THE THREADAndroid & device security ↗
YOU’VE REACHED THE ENDBack to the reading room ↗