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?
- Obtenha o arquivo por um canal oficial e de uma versão específica.
- Obtenha o resumo e as informações do signatário de uma fonte cuja autenticidade você considere confiável.
- Calcule o hash do arquivo e compare-o com o da mesma versão.
- Na análise técnica, valide também a assinatura; a ferramenta oficial apksigner oferece esse recurso.
- 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.



