SHARE THE PERSPECTIVE
Um teste offline deve produzir um resultado específico; um hash ou uma demonstração criptográfica não é uma auditoria completa do produto.

Uma verificação offline pode mostrar que um cálculo específico é realizado sem uma resposta ao vivo do servidor. Isso é valioso, mas não significa comprovar a segurança de todo o mensageiro. Para obter um resultado útil, é preciso registrar exatamente qual arquivo, versão, entrada e saída foram testados.

Hash de arquivo, assinatura de uma versão, vetor de teste, compilação reproduzível e auditoria de segurança respondem a perguntas diferentes. Combinar evidências é mais útil do que transformar uma delas em um “selo de segurança completa”.

O que cada evidência demonstra?

Evidência Conclusão limitada e correta O que não é comprovado automaticamente
SHA-256 do arquivo O arquivo corresponde ao resumo criptográfico de referência A fonte de referência é honesta ou o código é perfeito
Assinatura do APK A assinatura é válida para o pacote e está vinculada à chave de assinatura Essa chave pertence ao editor pretendido, a menos que isso seja verificado separadamente
Vetor de teste Os casos cobertos produzem a saída esperada Todos os estados e erros do produto foram cobertos
Compilação reproduzível O código-fonte e o ambiente especificados produzem a mesma saída O código-fonte não contém vulnerabilidades
Auditoria Um escopo e uma versão específicos foram examinados Alterações posteriores e componentes fora do escopo também foram aprovados

A definição de compilação reproduzível se baseia em entradas e ambiente específicos. A ferramenta oficial apksigner do Android serve para verificar a assinatura de um APK; isso não é o mesmo que calcular um hash.

Qual é o escopo atual do Proof Lab da Livara?

A página do Proof Lab apresenta uma ferramenta local de hash de APK e demonstrações de operações P-256, HKDF e AES-GCM, incluindo a alteração de um bit para observar a falha da verificação de autenticidade. A própria página afirma expressamente que a combinação completa LVR1/LGS1 está fora dessa bancada de testes.

Portanto, registre a conclusão correta assim: “Este arquivo correspondeu ao resumo criptográfico de referência” ou “Esta demonstração criptográfica rejeitou a alteração testada”. Não diga: “Todo o protocolo híbrido e toda a versão instalada foram auditados de forma independente”. Este artigo não relata um novo teste de execução dessa ferramenta.

Como preparar um teste offline repetível?

  1. Defina o objetivo. Você quer verificar a identidade do arquivo ou o comportamento de uma operação criptográfica?
  2. Registre a versão e a fonte. O nome do APK, o número da versão, o endereço de download e o resumo criptográfico daquela versão devem estar relacionados.
  3. Prepare a ferramenta e a entrada a partir de uma fonte confiável. Ficar offline não torna confiável um código que já era malicioso desde o início.
  4. Use dados de teste não sensíveis. Uma demonstração criptográfica não precisa de mensagens privadas nem de segredos reais.
  5. Desconecte a rede e repita o teste. Essa etapa avalia a dependência de uma resposta ao vivo, não a confiança no código baixado anteriormente.
  6. Registre o resultado e os erros. Não substitua diferenças de versão, falhas de carregamento e saídas divergentes por “aprovado”.

Se o hash for diferente, interrompa a instalação e verifique primeiro a versão, o arquivo e a fonte de referência. A diferença pode resultar da escolha de outra versão; sem investigar, não a considere nem prova definitiva de malware nem algo definitivamente irrelevante.

Qual é a diferença entre um vetor de teste e uma certificação oficial?

Um vetor de teste especifica a entrada e a saída esperada de um comportamento. Conjuntos como o Wycheproof são úteis para testar bibliotecas em casos relacionados a ataques conhecidos. Passar nesses testes não comprova a cobertura de casos desconhecidos.

O NIST CAVP tem um processo de validação de algoritmos. Executar alguns vetores públicos no navegador não equivale a obter um certificado de validação; usar um algoritmo padronizado também não torna o produto automaticamente certificado.

O que pedir ao comparar mensageiros?

Para Livara, Signal, WhatsApp, Session ou Element, faça as mesmas perguntas: qual é a versão exata? Qual arquivo é o oficial? Como a chave de assinatura ou o resumo criptográfico de referência é verificado? Quais testes podem ser executados? Que código e componentes foram incluídos no relatório de auditoria?

Este artigo não é um ranking desses produtos baseado em testes. A ausência de uma ferramenta de página única não comprova a ausência de evidências de segurança; sua presença também não comprova a superioridade do produto inteiro. Compare a documentação oficial daquela versão e um relatório reproduzível.

Uma ficha de resultados útil

No seu relatório breve, registre: objetivo, versão, fonte do arquivo, hash, ferramenta e sua versão, estado da rede, entrada não sensível, saída esperada, saída observada e limitações. Se outro teste não foi realizado, registre-o como “não testado”.

A verificação da chave de um contato também é uma checagem separada. Uma ferramenta local pode demonstrar uma operação, mas não confirma por você a identidade do interlocutor nem a integridade de segurança do telefone dele. Leia os limites de segurança da Livara junto com os resultados, em vez de considerar uma pontuação máxima na ferramenta uma garantia para todos esses limites.

Execute um teste no Proof Lab
CONTINUE THE THREADAndroid & device security ↗Calls, sync & reliability ↗
YOU’VE REACHED THE ENDBack to the reading room ↗