Text2Store
Scarica

Assistenza

Esportazione verificata

Una copia di una conversazione che rende evidente ogni modifica. Chiunque può confermare che non è stata cambiata, senza fidarsi della nostra parola.

In breve

Un’esportazione verificata è un .zip che puoi consegnare a chiunque. Ogni file contenuto ha un’impronta, e un’autorità indipendente appone una marca temporale all’intero pacchetto, così chiunque può dimostrare che non è stato alterato dopo che l’hai creato. È un’affermazione sui file, non sui messaggi: mostra che nulla è stato cambiato, non cosa significa la conversazione né quale peso darle.

Cos’è un’esportazione verificata

Un’esportazione verificata (detta anche esportazione certificata) raccoglie una conversazione, o un intero archivio, in un unico .zip, per quando qualcuno diverso da te deve potersi fidare di un documento. Rispetto a uno screenshot, il punto è che rende evidente ogni modifica ed è verificabile in modo indipendente. Chi la riceve può confermare con strumenti standard che il pacchetto non è stato alterato ed esisteva, invariato, in un momento preciso. Non devi fidarti di Text2Store per nulla di tutto questo.

È inclusa nell’acquisto di Text2Store. Per crearne una, apri una conversazione, scegli Esporta e poi Esportazione verificata (.zip)….

Esportare da un backup certificato la rafforza ulteriormente: la prova dell’esportazione risale al momento in cui è stato creato il backup, non solo all’esportazione. Vedi la pagina dei backup certificati per questa parte.

Cosa c’è nel pacchetto

Il .zip si estrae in un piccolo insieme di file che si spiegano da soli:

  • transcript.pdf contiene i messaggi come trascrizione leggibile e stampabile.
  • conversation.json contiene gli stessi messaggi come dati, compreso tutto ciò che il PDF non può rappresentare.
  • attachments/ contiene ogni foto, video e file della conversazione, nei suoi byte originali.
  • certificate.pdf è una copertina leggibile: il dispositivo, la conversazione, l’intervallo di date, i conteggi e come verificare.
  • manifest.json ne è il cuore: un’impronta SHA-256 di ogni altro file.
  • VERIFY.txt elenca comandi in inglese semplice per controllare tutto da solo.
  • DECLARATION.txt è una dichiarazione da compilare che una persona può firmare (vedi sotto).
  • manifest.json.tsr è la marca temporale attendibile, aggiunta se eri online.
  • tsa/cacert.pem è il certificato dell’autorità di marcatura temporale, così l’orario si verifica con il solo pacchetto.
  • source/backup-timestamp.tsr compare solo se l’esportazione è stata fatta da un backup certificato: la marca di creazione del backup stesso, riportata perché la prova dell’esportazione risalga al momento del backup.

Cosa dimostra

  • Integrità. Ogni file è elencato con la sua impronta SHA-256 in manifest.json. Ricalcolare l’impronta di qualsiasi file conferma che è identico, byte per byte, a quando l’hai esportato. Cambia un pixel di una foto e la verifica fallisce.
  • Provenienza dal tuo backup. Ogni allegato registra anche l’impronta che aveva nel backup del dispositivo da cui proviene, legando il file esportato a quel backup preciso invece che a qualcosa digitato a mano. L’esportazione si rifiuta di partire se un allegato non corrisponde più.
  • Tempo. Se sei online, l’intero pacchetto riceve una marca temporale da un’autorità di marcatura temporale indipendente secondo lo standard RFC 3161 (lo stesso meccanismo delle marche temporali per la firma del codice). Questo dimostra che il pacchetto esisteva, invariato, in un momento preciso, e risponde a «l’hai modificato la settimana scorsa».

Perché una modifica non può passare inosservata

«Rende evidente ogni modifica» è un’affermazione precisa, quindi ecco perché regge. Non significa che il file non si possa modificare. Qualsiasi file si può modificare. Significa che ogni modifica viene scoperta. Chi vuole far passare una modifica davanti al verificatore si scontra con tre muri di fila:

  • Un’impronta non si può falsificare. L’impronta SHA-256 di ogni file è un valore di 64 caratteri calcolato dai suoi byte esatti. Cambia un solo byte, ovunque, e l’impronta cambia del tutto. Non esiste un modo noto per alterare un file mantenendone lo SHA-256, quindi un file cambiato non può più corrispondere alla sua impronta registrata. È il primo muro.
  • Anche l’elenco ha la sua impronta. Il passo successivo ovvio sarebbe modificare l’impronta in manifest.json perché corrisponda al file cambiato. Fallisce anche questo: il manifesto contiene un’impronta radice del contenuto sul proprio elenco, e la marca temporale è presa sull’intero manifesto. Modificare l’elenco rompe entrambe. Secondo muro.
  • La marca temporale richiede una chiave che nessuno ha. L’ultimo passo sarebbe ricostruire il manifesto e ottenere una nuova marca temporale per la versione riscritta. Servirebbe la chiave privata di firma dell’autorità di marcatura, custodita da una terza parte indipendente (DigiCert). Né tu, né Text2Store, né un malintenzionato può produrre una marca valida senza di essa. Proprio per questo una verifica di Text2Store riporta Verificata solo quando c’è una marca temporale attendibile valida: la marca è l’ancoraggio che rende impossibile riscrivere e risigillare tutto ciò che sta sotto. Un pacchetto senza marca temporale attendibile viene riportato come Non verificata, non come verificato, proprio perché manca quell’ancoraggio. Terzo muro.
  • Non devi fidarti di noi. Ognuno di questi controlli usa standard aperti (SHA-256, RFC 3161) e si può riprodurre con strumenti standard inclusi in Mac e Windows. La sicurezza non si basa sulla parola di Text2Store, e nemmeno sull’app di Text2Store.

Il limite onesto va detto chiaramente: le modifiche sono rese evidenti, non impossibili. Chiunque può ancora modificare o eliminare il file. Quello che nessuno può fare è modificarlo e far sì che superi ancora la verifica. Se un pacchetto supera la verifica, è quello esportato. Se è stato toccato, la verifica lo dice.

Cosa non dimostra (da leggere)

Essere onesti sui limiti fa parte di ciò che rende affidabile tutto il resto. Un’esportazione verificata non dimostra:

  • Che i messaggi siano veri, né che il telefono non sia stato manipolato prima del backup. Dimostra che il pacchetto non è cambiato dall’esportazione, non cosa sia successo prima.
  • Come verrà accolta. Text2Store non afferma mai che un’esportazione verificata sarà accettata da un determinato destinatario o procedimento, e non la descrive mai come «ammissibile in giudizio» o «autenticata». Il peso di un documento è sempre una decisione di chi lo riceve; il software può solo rendere il documento verificabile.
  • Completezza. Un’esportazione verificata può contenere solo ciò che il telefono aveva ancora al momento dell’archiviazione. I messaggi eliminati prima dell’acquisizione semplicemente non ci sono. La trascrizione segnala i messaggi eliminati sul dispositivo, modificati o annullati, quando questa informazione è sopravvissuta fino all’acquisizione.
  • Quando esattamente è stato inviato ogni messaggio, in senso assoluto. La marca temporale attesta quando esisteva l’esportazione, non quando sono stati inviati i messaggi. Gli orari dei messaggi vengono dal dispositivo.

Proteggerla con una password (facoltativo)

Un’esportazione verificata è un normale .zip: chiunque abbia il file può leggere i messaggi. Di solito è ciò che vuoi, perché si apre ovunque senza software. Ma se il file deve viaggiare, puoi bloccarlo. Seleziona Proteggi questo .zip con una password quando crei l’esportazione e il contenuto viene crittografato con AES-256. È disattivato per impostazione predefinita e si sceglie per ogni esportazione.

Crittografia e capacità di rendere evidenti le modifiche sono cose distinte. La password impedisce agli altri di leggere i messaggi. Le impronte e la marca temporale sono ciò che dimostra che nulla è stato cambiato, e funzionano esattamente allo stesso modo in entrambi i casi. Una password non rende un’esportazione più verificabile, e non usarla non la rende meno verificabile.

Prima di proteggerne una con password

  • La password non si può recuperare. Né da te né da noi, perché non ci viene mai inviata e non è conservata nel pacchetto. Se va persa, l’esportazione non si può più aprire.
  • Su Mac si apre e basta. Fai doppio clic nel Finder, inserisci la password e tutto viene estratto (testato su macOS 26). Su Windows ti serve 7-Zip: Esplora file mostra volentieri l’elenco dei file contenuti ma non riesce a estrarli (testato su Windows 11). Anche Keka e The Unarchiver funzionano su Mac.
  • Non usare il comando unzip. Non supporta AES: su un’esportazione protetta crea una cartella vuota e termina senza errori, quindi sembra che abbia funzionato. Usa invece 7z x, oppure estrai nel Finder.
  • L’email spesso la rifiuta. Molti provider di posta e filtri aziendali rimuovono o mettono in quarantena gli allegati protetti da password, perché i loro scanner non possono guardarci dentro. Un’unità condivisa, un link di trasferimento file o una chiavetta USB sono più affidabili.
  • Invia la password separatamente. Una password nella stessa email del file non protegge nulla.

Tutto ciò che contiene è crittografato, VERIFY.txt compreso, quindi un’esportazione protetta non rivela nulla senza la password. Una cosa che non può nascondere: uno zip non crittografa mai l’elenco dei nomi dei file, quindi chiunque può vedere che il pacchetto contiene una trascrizione, un manifesto e alcuni allegati. I nomi sono generici, quindi non dicono nulla su con chi parlavi o su cosa è stato detto.

Per verificare un’esportazione protetta in Text2Store, sceglila come al solito; l’app si accorge che è bloccata e chiede la password. Per verificarla a mano, estraila prima con uno degli strumenti sopra, poi segui i normali passaggi qui sotto.

Come verificarla, senza fidarti di noi

Ci sono due modi, e controllano le stesse impronte e la stessa marca temporale.

Nell’app: scegli Archivio, poi Verifica un’esportazione…, e seleziona il .zip. Text2Store ricontrolla ogni impronta e la marca temporale e riporta Verificata, Alterata o Non verificata. «Verificata» significa che i file corrispondono e la marca temporale attendibile dimostra che il pacchetto è invariato. «Alterata» significa che qualcosa non corrisponde più. «Non verificata» significa che i file sono coerenti tra loro ma il pacchetto non ha una marca temporale attendibile, quindi da solo non si può dimostrare che sia invariato (confronta la sua impronta del manifesto con una copia di cui ti fidi). Non servono internet né installazioni, e funziona allo stesso modo su Mac e Windows. Per essere indipendente, usa la propria copia fissata del certificato dell’autorità di marcatura, non quella nel pacchetto.

A mano: il VERIFY.txt incluso elenca i comandi esatti. Su macOS e Linux usa shasum; su Windows usa Get-FileHash in PowerShell. Per confermare anche l’orario attendibile, usa openssl. Una nota onesta dello stesso VERIFY.txt: il LibreSSL incluso in macOS non riesce a verificare la catena di certificati di questa marca temporale, quindi installa OpenSSL completo (Homebrew) o usa il verificatore dell’app; su Windows funziona l’OpenSSL incluso in Git for Windows. VERIFY.txt mostra anche lo SHA-256 del certificato dell’autorità di marcatura, così puoi confrontarlo con la radice pubblicata da DigiCert su cacerts.digicert.com prima di fidarti dell’orario attestato.

I dettagli tecnici

Per chi vuole controllare il meccanismo invece di fidarsi del riassunto: tutto ciò che segue usa standard pubblicati (SHA-256, RFC 3161, CMS) e si può riprodurre con strumenti standard. Niente è proprietario o segreto. Questa apertura è il punto: un’affermazione che puoi confermare da solo vale più di una che devi prendere per buona.

Le impronte e il manifesto

Ogni file del pacchetto viene sottoposto a hash SHA-256 sui suoi byte esatti. manifest.json elenca ogni file con percorso e 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..."
}

Il content_root_sha256 è un’unica impronta dell’intero elenco, così anche l’elenco rende evidente ogni modifica. Si ottiene prendendo una riga path:sha256 per ogni elemento, ordinando le righe, unendole con a capo e calcolando lo SHA-256 del risultato. Chiunque può ricalcolarla dal manifesto e confermare che corrisponde.

Legare gli allegati al backup del dispositivo

Ogni allegato registra anche source_backup_sha256, l’impronta che quel file aveva nel backup dell’iPhone o dell’iPad da cui proviene. L’esportazione viene creata rispetto al riferimento di checksum di quel backup e si rifiuta di partire se un allegato non corrisponde più, così una foto esportata è legata a quel preciso backup del dispositivo invece che a qualcosa aggiunto a mano.

Cosa resta fuori dall’elenco delle impronte

Solo due file non sono elencati, per un motivo strutturale: manifest.json non può contenere la propria impronta, e manifest.json.tsr (la marca temporale) viene creato a partire dall’impronta del manifesto, quindi nasce dopo che il manifesto è sigillato. Tutto il resto, compresi i leggibili certificate.pdf, VERIFY.txt, DECLARATION.txt e il tsa/cacert.pem dell’autorità, è inserito nel manifesto come qualsiasi altro file. Un verificatore ricalcola lo SHA-256 del manifesto stesso e lo considera l’impronta del pacchetto.

La marca temporale attendibile

manifest.json.tsr è un token di marca temporale RFC 3161, una struttura CMS SignedData il cui messageImprint è lo SHA-256 di manifest.json. Per accettarlo, un verificatore conferma che la firma del token è valida, che il certificato del firmatario risale alla radice DigiCert (il token include l’intera catena di firma, dal certificato finale alla radice passando per l’intermedio), che era nel suo periodo di validità al momento attestato, che porta l’uso esteso della chiave critico id-kp-timeStamping (come richiede RFC 3161) e che l’impronta corrisponde allo SHA-256 di questo manifesto. Il verificatore di Text2Store fa tutto questo in puro codice senza accesso alla rete, e fissa la propria copia della radice DigiCert invece di fidarsi del cacert.pem nel pacchetto, così un certificato sostituito non può ingannarlo. VERIFY.txt mostra lo SHA-256 di quel certificato per confrontarlo con la radice pubblicata da DigiCert su cacerts.digicert.com.

Verificarlo da solo, con precisione

Calcola l’hash di un file e confrontalo con il suo sha256 nel manifesto:

# macOS / Linux
shasum -a 256 transcript.pdf

# Windows (PowerShell)
Get-FileHash transcript.pdf -Algorithm SHA256

Verifica che la marca temporale copra esattamente questo manifesto e risalga all’autorità:

openssl ts -verify -data manifest.json -in manifest.json.tsr -CAfile tsa/cacert.pem

Il VERIFY.txt del pacchetto riporta questi comandi, compreso come ricalcolare l’impronta radice, così basta copiarli e incollarli.

Cosa conta come superato

Un verificatore dovrebbe riportare Verificata solo quando valgono tutte queste condizioni: ogni file elencato è presente e corrisponde alla sua impronta, l’impronta radice si ricalcola, non ci sono file in più o duplicati, e una marca temporale attendibile è valida su manifest.json. Un pacchetto senza marca temporale attendibile è Non verificata: coerente ma non ancorato in modo indipendente, perché il manifesto non può dimostrare la propria integrità senza quella firma esterna. Qualsiasi discrepanza, file in più o marca temporale che non si verifica dà Alterata.

La dichiarazione firmata

Alcuni procedimenti vogliono una dichiarazione umana accanto a un documento: una persona che attesta per iscritto come è stato prodotto. Il software non può fare questa dichiarazione; solo una persona può. Per questo il pacchetto include DECLARATION.txt: un modello semplice da compilare, che una persona (tu, o un responsabile degli archivi) può adattare e completare con l’impronta del manifesto che ha calcolato.

È un modello, niente di più. Non è consulenza legale, e se stai preparando qualcosa per un procedimento formale, fallo prima esaminare da un avvocato.

Orari e fusi orari

Nei PDF leggibili, gli orari dei messaggi sono mostrati nell’ora locale del computer che esporta, con uno scostamento UTC esplicito (per esempio 2026-06-30 21:14 -08:00), con il fuso indicato in alto, così corrispondono a ciò che vedevi sul telefono e restano inequivocabili. I dati leggibili dalla macchina (conversation.json) e la marca temporale tengono tutto in UTC, così un esperto può sempre ricostruire gli orari esatti.

Il limite onesto

Un’esportazione verificata è completa solo quanto il backup da cui proviene. Text2Store può includere solo ciò che il telefono aveva ancora quando l’hai archiviato. L’abitudine migliore è semplice: esegui backup regolari, così una conversazione è al sicuro molto prima che ti serva. iOS mantiene recuperabile un messaggio eliminato per qualche settimana, quindi un backup recente spesso cattura più di quanto ti aspetti. Vedi le domande frequenti per saperne di più.

Non è consulenza legale

Questa pagina e i materiali di un’esportazione verificata contengono informazioni generali, non consulenza legale, e l’uso di Text2Store non crea alcun rapporto professionale. Se intendi usare un’esportazione in una questione legale, è una cosa tra te e un avvocato qualificato nella tua giurisdizione; nulla qui è un consiglio su se o come farlo.

Vuoi caricarla in una piattaforma di revisione?

Un’esportazione verificata dimostra che un documento non è stato alterato. Se invece devi consegnare la conversazione a un team di revisione eDiscovery perché la carichi nella sua piattaforma, ti serve un’esportazione RSMF (Relativity Short Message Format). Le due svolgono compiti diversi e puoi consegnarle entrambe: un’esportazione verificata per dimostrare, un file RSMF per caricare.

RSMF per la revisione eDiscovery, esportare in PDF e le chat di WhatsApp nel backup.

Domande?

Scrivi a hello@text2store.com e ti aiuteremo.