Exportação verificada
Uma cópia de uma conversa que torna qualquer alteração detectável. Qualquer pessoa pode confirmar que ela não foi mudada, sem precisar acreditar na nossa palavra.
Resumindo
Uma exportação verificada é um .zip que você pode entregar a qualquer pessoa. Todo arquivo dentro dele tem uma impressão digital, e uma autoridade independente coloca um carimbo de tempo no pacote inteiro, então qualquer pessoa pode provar que ele não foi alterado depois que você o criou. É uma afirmação sobre os arquivos, não sobre as mensagens: mostra que nada foi mudado, não o que a conversa significa nem que peso dar a ela.
O que é uma exportação verificada
Uma exportação verificada (também chamada de exportação certificada) reúne uma conversa, ou um arquivo inteiro, num único .zip, para quando alguém além de você precisa confiar num registro. A diferença em relação a uma captura de tela é que ela torna qualquer alteração detectável e pode ser conferida de forma independente. Quem recebe pode confirmar com ferramentas padrão que o pacote não foi alterado e existia, sem mudanças, num momento específico. Você não precisa confiar no Text2Store em nada disso.
Ela vem incluída na compra do Text2Store. Para criar uma, abra uma conversa, escolha Exportar e depois Exportação Verificada (.zip)….
Exportar de um backup certificado deixa isso ainda mais forte: a prova da exportação volta até o momento em que o backup foi feito, não só até a exportação. Veja a página de backups certificados para essa parte.
O que tem dentro do pacote
O .zip se descompacta num pequeno conjunto de arquivos que se explicam sozinhos:
- transcript.pdf são as mensagens como transcrição legível e imprimível.
- conversation.json são as mesmas mensagens como dados, incluindo tudo o que o PDF não consegue mostrar.
- attachments/ guarda cada foto, vídeo e arquivo da conversa, com os bytes originais.
- certificate.pdf é uma capa legível: o aparelho, a conversa, o período, as contagens e como conferir.
- manifest.json é o coração do pacote: uma impressão digital SHA-256 de cada um dos outros arquivos.
- VERIFY.txt lista comandos em inglês simples para você conferir tudo sozinho.
- DECLARATION.txt é uma declaração para preencher que uma pessoa pode assinar (veja abaixo).
- manifest.json.tsr é o carimbo de tempo confiável, adicionado quando você estava online.
- tsa/cacert.pem é o certificado da autoridade de carimbo de tempo, para o horário ser conferido só com o pacote.
- source/backup-timestamp.tsr só aparece quando a exportação foi feita de um backup certificado: o carimbo de criação do próprio backup, levado adiante para a prova da exportação voltar até o momento do backup.
O que ela prova
- Integridade. Todo arquivo aparece com sua impressão digital SHA-256 no manifest.json. Recalcular a impressão digital de qualquer arquivo confirma que ele é idêntico, byte a byte, ao que era na exportação. Mude um pixel de uma foto e a verificação falha.
- Origem no seu backup. Cada anexo também registra a impressão digital que tinha no backup do aparelho de onde veio, ligando o arquivo exportado àquele backup específico em vez de a algo digitado à mão. A exportação se recusa a ser montada se algum anexo não bater mais.
- Tempo. Quando você está online, uma autoridade de carimbo de tempo independente carimba o pacote inteiro pelo padrão RFC 3161 (o mesmo mecanismo dos carimbos de tempo de assinatura de código). Isso prova que o pacote existia, sem mudanças, num momento específico, o que responde a “você editou isso semana passada”.
Por que uma alteração não passa despercebida
“Torna qualquer alteração detectável” é uma afirmação precisa, então veja por que ela se sustenta. Não quer dizer que o arquivo não possa ser editado. Qualquer arquivo pode. Quer dizer que qualquer edição é descoberta. Quem quer passar uma alteração pelo verificador esbarra em três muros seguidos:
- Uma impressão digital não pode ser falsificada. A impressão digital SHA-256 de cada arquivo é um valor de 64 caracteres calculado a partir dos bytes exatos dele. Mude um único byte, em qualquer lugar, e a impressão digital muda por completo. Não existe jeito conhecido de alterar um arquivo e manter o SHA-256 dele, então um arquivo alterado não consegue mais bater com a impressão digital registrada. Esse é o primeiro muro.
- A lista também tem impressão digital. O próximo passo óbvio seria editar a impressão digital dentro do manifest.json para bater com o arquivo alterado. Isso também falha: o manifesto traz uma impressão digital raiz do conteúdo sobre a própria lista, e o carimbo de tempo confiável é tirado sobre o manifesto inteiro. Editar a lista quebra as duas coisas. Segundo muro.
- O carimbo de tempo exige uma chave que ninguém tem. O último passo seria refazer o manifesto e obter um carimbo de tempo novo para a versão reescrita. Para isso seria preciso a chave privada de assinatura da autoridade de carimbo de tempo, guardada por um terceiro independente (DigiCert). Nem você, nem o Text2Store, nem um invasor consegue produzir um carimbo válido sem ela. É exatamente por isso que uma verificação do Text2Store só informa Verificada quando há um carimbo de tempo confiável válido: o carimbo é a âncora que torna impossível reescrever e selar de novo tudo o que está abaixo dele. Um pacote sem carimbo de tempo confiável é informado como Não verificada, e não como verificado, justamente porque falta essa âncora. Terceiro muro.
- Você não precisa confiar na gente. Cada uma dessas checagens usa padrões abertos (SHA-256, RFC 3161) e pode ser reproduzida com ferramentas padrão que já vêm no Mac e no Windows. A segurança não depende de confiar na palavra do Text2Store, nem mesmo no app do Text2Store.
O limite honesto vale ser dito com clareza: ela torna as alterações detectáveis, não impossíveis. Qualquer pessoa ainda pode mudar ou apagar o arquivo. O que ninguém consegue é mudá-lo e ele continuar passando na verificação. Se um pacote passa na verificação, ele é o que foi exportado. Se alguém mexeu nele, a verificação avisa.
O que ela não prova (leia, por favor)
Ser honesto sobre os limites faz parte do que torna o resto confiável. Uma exportação verificada não prova:
- Que as mensagens são verdadeiras, nem que o celular não foi manipulado antes do backup. Ela prova que o pacote não mudou desde a exportação, não o que aconteceu antes.
- Como ela vai ser recebida. O Text2Store nunca afirma que uma exportação verificada será aceita por um destinatário ou processo específico, e nunca a descreve como “admissível em juízo” ou “autenticada”. O peso de um registro é sempre decisão de quem o recebe; o software só consegue tornar o registro conferível.
- Que ela esteja completa. Uma exportação verificada só pode conter o que o celular ainda tinha na hora de arquivar. Mensagens apagadas antes da captura simplesmente não estão lá. A transcrição marca as mensagens apagadas no aparelho, editadas ou canceladas, quando essa informação sobreviveu até a captura.
- Quando exatamente cada mensagem foi enviada, em sentido absoluto. O carimbo de tempo confiável atesta quando a exportação existia, não quando as mensagens foram enviadas. Os horários das mensagens vêm do aparelho.
Protegendo com senha (opcional)
Uma exportação verificada é um .zip comum: quem tiver o arquivo pode ler as mensagens. Normalmente é isso que você quer, porque ele abre em qualquer lugar sem software. Mas, quando o arquivo precisa viajar, dá para trancá-lo. Marque Proteger este .zip com uma senha ao criar a exportação e o conteúdo é criptografado com AES-256. Vem desativado por padrão e é uma escolha por exportação.
Criptografia e detecção de alterações são coisas diferentes. A senha impede que outros leiam as mensagens. As impressões digitais e o carimbo de tempo é que provam que nada foi mudado, e funcionam exatamente igual nos dois casos. Uma senha não deixa a exportação mais verificável, e não usar senha não a deixa menos.
Antes de proteger uma com senha
- A senha não pode ser recuperada. Nem por você nem por nós, porque ela nunca é enviada para a gente e não fica guardada no pacote. Se ela for perdida, a exportação não abre mais.
- No Mac ela simplesmente abre. Dê dois cliques no Finder, digite a senha e tudo é extraído (testado no macOS 26). No Windows você precisa do 7-Zip: o Explorador de Arquivos mostra a lista de arquivos dentro, mas não consegue extraí-los (testado no Windows 11). O Keka e o The Unarchiver também funcionam no Mac.
- Não use o comando
unzip. Ele não suporta AES: numa exportação protegida, cria uma pasta vazia e termina sem erro, então parece que funcionou. Use7z xno lugar, ou extraia no Finder. - O e-mail costuma rejeitá-la. Muitos provedores de e-mail e filtros de empresas removem ou colocam em quarentena anexos protegidos por senha, porque os scanners deles não conseguem olhar dentro. Uma pasta compartilhada, um link de transferência de arquivos ou um pen drive é mais confiável.
- Mande a senha separada. Uma senha no mesmo e-mail que o arquivo não protege nada.
Tudo lá dentro é criptografado, incluindo o VERIFY.txt, então uma exportação protegida não revela nada sem a senha. Uma coisa ela não consegue esconder: um zip nunca criptografa a lista de nomes de arquivos, então qualquer pessoa pode ver que o pacote tem uma transcrição, um manifesto e alguns anexos. Os nomes são genéricos, então não dizem nada sobre com quem você falava nem sobre o que foi dito.
Para verificar uma exportação protegida no Text2Store, escolha-a como sempre; o app percebe que ela está trancada e pede a senha. Para verificar à mão, extraia primeiro com uma das ferramentas acima e depois siga os passos normais abaixo.
Como verificá-la sem confiar na gente
Há dois jeitos, e os dois conferem as mesmas impressões digitais e o mesmo carimbo de tempo.
No app: escolha Arquivo, depois Verificar uma Exportação…, e selecione o .zip. O Text2Store confere de novo cada impressão digital e o carimbo de tempo e informa Verificada, Alterada ou Não verificada. “Verificada” quer dizer que os arquivos batem e o carimbo de tempo confiável prova que o pacote não mudou. “Alterada” quer dizer que algo não bate mais. “Não verificada” quer dizer que os arquivos são coerentes entre si, mas o pacote não tem carimbo de tempo confiável, então não dá para provar sozinho que ele não foi alterado (compare a impressão digital do manifesto com uma cópia em que você confia). Não precisa de internet nem de instalar nada, e funciona igual no Mac e no Windows. Para ser independente, ele usa a própria cópia fixada do certificado da autoridade de carimbo de tempo, e não a que vem no pacote.
À mão: o VERIFY.txt incluído lista os comandos exatos. No macOS e no Linux use shasum; no Windows use Get-FileHash no PowerShell. Para confirmar também o horário confiável, use openssl. Um aviso honesto do próprio VERIFY.txt: o LibreSSL que vem com o macOS não consegue verificar a cadeia de certificados deste carimbo, então instale o OpenSSL completo (Homebrew) ou use o verificador do app; no Windows, funciona o OpenSSL que vem com o Git for Windows. O VERIFY.txt também mostra o SHA-256 do certificado da autoridade de carimbo de tempo, para você comparar com a raiz publicada pela DigiCert em cacerts.digicert.com antes de confiar no horário atestado.
Os detalhes técnicos
Para quem quer conferir o mecanismo em vez de confiar no resumo: tudo o que vem a seguir usa padrões publicados (SHA-256, RFC 3161, CMS) e pode ser reproduzido com ferramentas padrão. Nada é proprietário ou secreto. Essa abertura é o ponto: uma afirmação que você pode confirmar por conta própria vale mais do que uma em que você precisa acreditar.
As impressões digitais e o manifesto
Cada arquivo do pacote passa por hash SHA-256 sobre os bytes exatos dele. O manifest.json lista cada arquivo com o caminho e o SHA-256:
{
"format": "text2store/verified-export",
"artifacts": [
{ "path": "transcript.pdf", "sha256": "9f2c..." },
{ "path": "conversation.json", "sha256": "4a1e..." },
{ "path": "attachments/0001.jpg", "sha256": "b7d0...",
"source_backup_sha256": "b7d0..." }
],
"content_root_sha256": "e3b1..."
}
O content_root_sha256 é uma única impressão digital da lista inteira, então a própria lista também torna qualquer alteração detectável. Ele é calculado pegando uma linha path:sha256 por item, ordenando essas linhas, juntando-as com quebras de linha e passando o resultado por SHA-256. Qualquer pessoa pode recalculá-lo a partir do manifesto e confirmar que bate.
Ligando os anexos ao backup do aparelho
Cada anexo também registra source_backup_sha256, a impressão digital que aquele arquivo tinha no backup do iPhone ou iPad de onde veio. A exportação é montada contra a base de somas de verificação daquele backup e se recusa a ser montada se algum anexo não bater mais, então uma foto exportada fica ligada àquele backup específico do aparelho, e não a algo colocado à mão.
O que fica fora da lista de impressões digitais
Só dois arquivos não aparecem na lista, por um motivo estrutural: o manifest.json não pode conter a própria impressão digital, e o manifest.json.tsr (o carimbo de tempo) é gerado a partir da impressão digital do manifesto, então ele só passa a existir depois que o manifesto é selado. Todo o resto, incluindo os legíveis certificate.pdf, VERIFY.txt, DECLARATION.txt e o tsa/cacert.pem da autoridade, tem o hash registrado no manifesto como qualquer outro arquivo. Um verificador recalcula o SHA-256 do próprio manifesto e o trata como a impressão digital do pacote.
O carimbo de tempo confiável
O manifest.json.tsr é um token de carimbo de tempo RFC 3161, uma estrutura CMS SignedData cujo messageImprint é o SHA-256 do manifest.json. Para aceitá-lo, um verificador confirma que a assinatura do token é válida, que o certificado do signatário chega à raiz da DigiCert (o token traz a cadeia de assinatura completa, do certificado final ao intermediário e à raiz), que ele estava dentro da validade no momento atestado, que tem o uso estendido de chave crítico id-kp-timeStamping (como o RFC 3161 exige) e que a impressão é igual ao SHA-256 deste manifesto. O verificador do Text2Store faz tudo isso em código puro, sem acesso à rede, e fixa a própria cópia da raiz da DigiCert em vez de confiar no cacert.pem do pacote, então um certificado trocado não consegue enganá-lo. O VERIFY.txt mostra o SHA-256 desse certificado para você comparar com a raiz publicada pela DigiCert em cacerts.digicert.com.
Conferindo você mesmo, com exatidão
Calcule o hash de qualquer arquivo e compare com o sha256 dele no manifesto:
# macOS / Linux
shasum -a 256 transcript.pdf
# Windows (PowerShell)
Get-FileHash transcript.pdf -Algorithm SHA256
Verifique se o carimbo de tempo confiável cobre exatamente este manifesto e chega à autoridade:
openssl ts -verify -data manifest.json -in manifest.json.tsr -CAfile tsa/cacert.pem
O VERIFY.txt do pacote detalha esses comandos, incluindo como recalcular a raiz do conteúdo, então é só copiar e colar.
O que conta como aprovado
Um verificador só deve informar Verificada quando tudo isto for verdade: cada arquivo listado está presente e bate com a impressão digital, a raiz do conteúdo é recalculada e confere, não há arquivos a mais nem duplicados, e um carimbo de tempo confiável é válido sobre o manifest.json. Um pacote sem carimbo de tempo confiável fica Não verificada: coerente, mas sem âncora independente, porque o manifesto não consegue provar a própria integridade sem essa assinatura externa. Qualquer divergência, arquivo a mais ou carimbo que não se verifica dá Alterada.
A declaração assinada
Alguns processos pedem um atestado humano junto com um registro: uma pessoa declarando por escrito como o registro foi feito. Um software não consegue fazer essa declaração; só uma pessoa consegue. Por isso o pacote inclui o DECLARATION.txt: um modelo simples para preencher, que uma pessoa (você, ou um responsável pelos registros) pode adaptar e completar com a impressão digital do manifesto que calculou.
É um modelo, nada mais. Não é aconselhamento jurídico, e se você estiver preparando algo para um processo formal, peça para um advogado revisar antes.
Horários e fusos
Nos PDFs legíveis, os horários das mensagens aparecem no horário local do computador que exportou, com o deslocamento UTC explícito (por exemplo, 2026-06-30 21:14 -08:00), com o fuso indicado no topo, para baterem com o que você via no celular e não deixarem dúvida. Os dados para máquinas (conversation.json) e o carimbo de tempo confiável guardam tudo em UTC, então um especialista sempre consegue reconstruir os horários exatos.
O limite honesto
Uma exportação verificada só é tão completa quanto o backup por trás dela. O Text2Store só consegue incluir o que o seu celular ainda tinha quando você arquivou. O melhor hábito é simples: faça backup com frequência, para que uma conversa esteja guardada com segurança bem antes de você precisar dela. O iOS mantém uma mensagem apagada recuperável por algumas semanas, então um backup recente muitas vezes pega mais do que você imagina. Veja as perguntas frequentes para saber mais.
Não é aconselhamento jurídico
Esta página e os materiais de uma exportação verificada são informação geral, não aconselhamento jurídico, e usar o Text2Store não cria nenhuma relação profissional. Se você pretende usar uma exportação num processo, isso é entre você e um advogado qualificado na sua jurisdição; nada aqui é conselho sobre se ou como fazer isso.
Vai carregá-la numa plataforma de revisão?
Uma exportação verificada prova que um registro não foi alterado. Se, em vez disso, você precisa entregar a conversa a uma equipe de revisão de eDiscovery para ela carregar na plataforma dela, o que você precisa é de uma exportação RSMF (Relativity Short Message Format). As duas fazem trabalhos diferentes e dá para entregar as duas: uma exportação verificada para provar, um arquivo RSMF para carregar.
Veja também
RSMF para revisão de eDiscovery, exportar para PDF e conversas do WhatsApp no seu backup.
Dúvidas?
Escreva para hello@text2store.com que a gente ajuda.