Geverifieerde export
Een kopie van een gesprek die elke wijziging zichtbaar maakt. Iedereen kan bevestigen dat er niets aan is veranderd, zonder ons op ons woord te geloven.
Kort gezegd
Een geverifieerde export is een .zip die je aan iedereen kunt geven. Elk bestand erin heeft een vingerafdruk, en een onafhankelijke instantie zet een tijdstempel op het hele pakket, zodat iedereen kan bewijzen dat het niet is gewijzigd nadat jij het maakte. Het is een bewering over de bestanden, niet over de berichten: het laat zien dat er niets is veranderd, niet wat het gesprek betekent of hoe iemand het moet wegen.
Wat een geverifieerde export is
Een geverifieerde export (ook wel gecertificeerde export genoemd) verpakt één gesprek, of een heel archief, in één .zip, voor als iemand anders dan jij op een dossier moet kunnen vertrouwen. Het verschil met een screenshot: hij maakt elke wijziging zichtbaar en is onafhankelijk te controleren. Wie hem ontvangt, kan met standaardgereedschap bevestigen dat het pakket niet is gewijzigd en op een bepaald moment ongewijzigd bestond. Je hoeft Text2Store daarvoor nergens in te vertrouwen.
Hij zit bij de aankoop van Text2Store. Open een gesprek, kies Exporteer en dan Geverifieerde export (.zip)….
Exporteren vanuit een gecertificeerde reservekopie maakt dit nog sterker: het bewijs van de export gaat dan terug tot het moment dat de reservekopie werd gemaakt, niet alleen tot de export. Zie de pagina over gecertificeerde reservekopieën voor dat deel.
Wat er in het pakket zit
De .zip pakt uit tot een kleine set bestanden die zichzelf uitleggen:
- transcript.pdf bevat de berichten als leesbaar, afdrukbaar transcript.
- conversation.json bevat dezelfde berichten als gegevens, inclusief alles wat de PDF niet kan weergeven.
- attachments/ bevat elke foto, video en elk bestand uit het gesprek, in de originele bytes.
- certificate.pdf is een leesbaar voorblad: het toestel, het gesprek, de periode, aantallen en hoe je controleert.
- manifest.json is de kern: een SHA-256-vingerafdruk van elk ander bestand.
- VERIFY.txt geeft opdrachten in eenvoudig Engels om alles zelf te controleren.
- DECLARATION.txt is een in te vullen verklaring die iemand kan ondertekenen (zie hieronder).
- manifest.json.tsr is de betrouwbare tijdstempel, toegevoegd als je online was.
- tsa/cacert.pem is het certificaat van de tijdstempelinstantie, zodat de tijd met alleen het pakket te controleren is.
- source/backup-timestamp.tsr verschijnt alleen als de export is gemaakt uit een gecertificeerde reservekopie: de tijdstempel van het maken van de reservekopie zelf, meegenomen zodat het bewijs van de export teruggaat tot dat moment.
Wat hij bewijst
- Integriteit. Elk bestand staat met zijn SHA-256-vingerafdruk in manifest.json. Wie de vingerafdruk van een bestand opnieuw berekent, bevestigt dat het byte voor byte hetzelfde is als bij de export. Verander één pixel van één foto en de controle mislukt.
- Herkomst uit je reservekopie. Elke bijlage legt ook de vingerafdruk vast die ze had in de reservekopie van het toestel waar ze vandaan komt. Zo is het geëxporteerde bestand gekoppeld aan die specifieke reservekopie in plaats van aan iets dat met de hand is ingetypt. De export weigert als een bijlage niet meer overeenkomt.
- Tijd. Als je online bent, zet een onafhankelijke tijdstempelinstantie een tijdstempel op het hele pakket volgens de standaard RFC 3161 (hetzelfde mechanisme als bij tijdstempels voor codeondertekening). Dat bewijst dat het pakket op een bepaald moment ongewijzigd bestond, en beantwoordt ‘dit heb je vorige week bewerkt’.
Waarom een wijziging er niet doorheen glipt
‘Maakt elke wijziging zichtbaar’ is een precieze bewering, dus hier is waarom ze klopt. Het betekent niet dat het bestand niet bewerkt kan worden. Elk bestand kan bewerkt worden. Het betekent dat elke bewerking opvalt. Wie een wijziging langs de controle wil smokkelen, loopt achter elkaar tegen drie muren aan:
- Een vingerafdruk is niet te vervalsen. De SHA-256-vingerafdruk van elk bestand is een waarde van 64 tekens, berekend uit de exacte bytes. Verander één byte, waar dan ook, en de vingerafdruk verandert volledig. Er is geen manier bekend om een bestand te wijzigen en de SHA-256 te behouden, dus een gewijzigd bestand kan niet meer overeenkomen met zijn vastgelegde vingerafdruk. Dat is de eerste muur.
- De lijst heeft ook een vingerafdruk. De voor de hand liggende volgende stap is de vingerafdruk in manifest.json aan te passen aan het gewijzigde bestand. Ook dat mislukt: het manifest bevat een vingerafdruk over de eigen lijst (content root), en de betrouwbare tijdstempel is genomen over het hele manifest. De lijst bewerken breekt beide. Tweede muur.
- De tijdstempel vraagt een sleutel die niemand heeft. De laatste stap zou zijn het manifest opnieuw op te bouwen en een nieuwe betrouwbare tijdstempel te krijgen voor de herschreven versie. Daarvoor is de privé-ondertekeningssleutel van de tijdstempelinstantie nodig, die bij een onafhankelijke derde partij ligt (DigiCert). Jij niet, Text2Store niet en een aanvaller niet kan zonder die sleutel een geldige tijdstempel maken. Precies daarom meldt een controle in Text2Store alleen Geverifieerd als er een geldige betrouwbare tijdstempel is: de tijdstempel is het anker dat het onmogelijk maakt alles daaronder te herschrijven en opnieuw te verzegelen. Een pakket zonder betrouwbare tijdstempel wordt gemeld als Niet geverifieerd, niet als geverifieerd, juist omdat dat anker ontbreekt. Derde muur.
- Je hoeft ons niet te vertrouwen. Elke controle gebruikt open standaarden (SHA-256, RFC 3161) en is na te doen met standaardgereedschap dat op Mac en Windows al aanwezig is. De beveiliging rust niet op het vertrouwen in het woord van Text2Store, zelfs niet op de app van Text2Store.
De eerlijke grens is het waard om duidelijk te zeggen: wijzigingen worden zichtbaar gemaakt, niet onmogelijk. Iedereen kan het bestand nog steeds veranderen of verwijderen. Wat niemand kan, is het veranderen en het toch door de controle laten komen. Komt een pakket door de controle, dan is het het pakket dat geëxporteerd werd. Is eraan gezeten, dan zegt de controle dat.
Wat hij niet bewijst (lees dit)
Eerlijk zijn over de grenzen hoort bij wat de rest betrouwbaar maakt. Een geverifieerde export bewijst niet:
- Dat de berichten waar zijn, of dat de telefoon niet is gemanipuleerd vóór de reservekopie. Hij bewijst dat het pakket sinds de export niet is veranderd, niet wat er daarvoor gebeurde.
- Hoe hij wordt ontvangen. Text2Store beweert nooit dat een geverifieerde export door een bepaalde ontvanger of in een bepaalde procedure wordt aanvaard, en noemt hem nooit ‘toelaatbaar in de rechtszaal’ of ‘gewaarmerkt’. Hoeveel gewicht een dossier heeft, beslist altijd de ontvanger; software kan een dossier alleen controleerbaar maken.
- Volledigheid. Een geverifieerde export kan alleen bevatten wat de telefoon nog had bij het archiveren. Berichten die daarvoor zijn verwijderd, ontbreken gewoon. Het transcript markeert wel berichten die op het toestel zijn verwijderd, bewerkt of ingetrokken, als dat bewaard bleef tot de opname.
- Wanneer elk bericht precies is verstuurd, in absolute zin. De betrouwbare tijdstempel bevestigt wanneer de export bestond, niet wanneer de berichten zijn verstuurd. De tijden van berichten komen van het toestel.
Beveiligen met een wachtwoord (optioneel)
Een geverifieerde export is een gewone .zip: wie het bestand heeft, kan de berichten lezen. Meestal is dat wat je wilt, want hij opent overal zonder software. Moet het bestand op reis, dan kun je het op slot doen. Vink bij het maken van de export Bescherm deze .zip met een wachtwoord aan en de inhoud wordt versleuteld met AES-256. Het staat standaard uit en kies je per export.
Versleuteling en het zichtbaar maken van wijzigingen zijn twee verschillende dingen. Het wachtwoord houdt anderen tegen om de berichten te lezen. De vingerafdrukken en tijdstempel bewijzen dat er niets is veranderd, en die werken in beide gevallen precies hetzelfde. Een wachtwoord maakt een export niet beter controleerbaar, en zonder wachtwoord is hij niet minder controleerbaar.
Voordat je er een met wachtwoord beveiligt
- Het wachtwoord is niet te herstellen. Niet door jou en niet door ons, want het wordt nooit naar ons gestuurd en niet in het pakket bewaard. Ben je het kwijt, dan gaat de export niet meer open.
- Op een Mac gaat hij gewoon open. Dubbelklik in de Finder, typ het wachtwoord en alles wordt uitgepakt (getest op macOS 26). Op Windows heb je 7-Zip nodig: Verkenner toont wel de lijst met bestanden erin, maar kan ze niet uitpakken (getest op Windows 11). Keka en The Unarchiver werken ook op een Mac.
- Gebruik niet de opdracht
unzip. Die ondersteunt geen AES: bij een beveiligde export maakt hij een lege map en stopt zonder foutmelding, zodat het lijkt of het gelukt is. Gebruik in plaats daarvan7z x, of pak uit in de Finder. - E-mail weigert hem vaak. Veel mailproviders en bedrijfsfilters verwijderen of blokkeren bijlagen met een wachtwoord, omdat hun scanners er niet in kunnen kijken. Een gedeelde schijf, een link om bestanden te versturen of een USB-stick is betrouwbaarder.
- Stuur het wachtwoord apart. Een wachtwoord in dezelfde e-mail als het bestand beschermt niets.
Alles erin is versleuteld, ook VERIFY.txt, dus een beveiligde export geeft zonder wachtwoord niets prijs. Eén ding kan hij niet verbergen: een zip versleutelt nooit de lijst met bestandsnamen, dus iedereen kan zien dat het pakket een transcript, een manifest en wat bijlagen bevat. De namen zijn algemeen, dus ze zeggen niets over met wie je sprak of wat er werd gezegd.
Om een beveiligde export in Text2Store te controleren, kies je hem zoals gewoonlijk; de app ziet dat hij op slot zit en vraagt om het wachtwoord. Om met de hand te controleren, pak je hem eerst uit met een van de programma’s hierboven en volg je daarna de gewone stappen hieronder.
Zo controleer je hem, zonder ons te vertrouwen
Er zijn twee manieren, en beide controleren dezelfde vingerafdrukken en dezelfde tijdstempel.
In de app: kies Bestand, dan Controleer een export…, en kies de .zip. Text2Store controleert elke vingerafdruk en de tijdstempel opnieuw en meldt Geverifieerd, Gewijzigd of Niet geverifieerd. ‘Geverifieerd’ betekent dat de bestanden overeenkomen en de betrouwbare tijdstempel bewijst dat het pakket ongewijzigd is. ‘Gewijzigd’ betekent dat iets niet meer overeenkomt. ‘Niet geverifieerd’ betekent dat de bestanden onderling kloppen, maar dat het pakket geen betrouwbare tijdstempel heeft, zodat het op zichzelf niet als ongewijzigd te bewijzen is (vergelijk de vingerafdruk van het manifest met een kopie die je vertrouwt). Er is geen internet en geen installatie voor nodig, en het werkt op Mac en Windows hetzelfde. Om onafhankelijk te zijn, gebruikt de app zijn eigen vastgezette kopie van het certificaat van de tijdstempelinstantie, niet die in het pakket.
Met de hand: de meegeleverde VERIFY.txt geeft de precieze opdrachten. Op macOS en Linux gebruik je shasum, op Windows Get-FileHash in PowerShell. Om ook de betrouwbare tijd te bevestigen, gebruik je openssl. Eén eerlijke opmerking uit VERIFY.txt zelf: de LibreSSL die bij macOS zit, kan de certificaatketen van deze tijdstempel niet controleren, dus installeer volledige OpenSSL (Homebrew) of gebruik de controle in de app; op Windows werkt de OpenSSL die bij Git for Windows zit. VERIFY.txt toont ook de SHA-256 van het certificaat van de tijdstempelinstantie, zodat je die kunt vergelijken met de gepubliceerde root van DigiCert op cacerts.digicert.com voordat je op de bevestigde tijd vertrouwt.
De technische details
Voor wie het mechanisme wil controleren in plaats van de samenvatting te vertrouwen: alles hieronder gebruikt gepubliceerde standaarden (SHA-256, RFC 3161, CMS) en is na te doen met standaardgereedschap. Niets ervan is gesloten of geheim. Die openheid is precies het punt: een bewering die je zelf kunt bevestigen, is meer waard dan een die je op goed geloof moet aannemen.
De vingerafdrukken en het manifest
Elk bestand in het pakket wordt met SHA-256 gehasht over de exacte bytes. manifest.json geeft elk bestand met pad en 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..."
}
De content_root_sha256 is één vingerafdruk over de hele lijst, zodat ook de lijst zelf elke wijziging zichtbaar maakt. Je berekent hem door per bestand één regel path:sha256 te nemen, die regels te sorteren, ze met regeleinden te verbinden en het resultaat met SHA-256 te hashen. Iedereen kan hem uit het manifest opnieuw berekenen en bevestigen dat hij klopt.
Bijlagen koppelen aan de reservekopie van het toestel
Elke bijlage legt ook source_backup_sha256 vast, de vingerafdruk die dat bestand had in de reservekopie van de iPhone of iPad waar het vandaan komt. De export wordt gemaakt tegen de eigen controlesombasis van die reservekopie en weigert als een bijlage niet meer overeenkomt, zodat een geëxporteerde foto is gekoppeld aan die specifieke reservekopie in plaats van aan iets dat er met de hand in is gezet.
Wat buiten de lijst met vingerafdrukken valt
Om een structurele reden staan er maar twee bestanden niet in de lijst: manifest.json kan zijn eigen vingerafdruk niet bevatten, en manifest.json.tsr (de tijdstempel) wordt gemaakt uit de vingerafdruk van het manifest, en ontstaat dus pas nadat het manifest is verzegeld. Al het andere, ook de leesbare certificate.pdf, VERIFY.txt, DECLARATION.txt en de tsa/cacert.pem van de instantie, is net als elk ander bestand in het manifest gehasht. Een controle berekent de SHA-256 van het manifest zelf opnieuw en behandelt die als de vingerafdruk van het pakket.
De betrouwbare tijdstempel
manifest.json.tsr is een tijdstempeltoken volgens RFC 3161, een CMS-structuur SignedData waarvan de messageImprint de SHA-256 van manifest.json is. Om het te aanvaarden, bevestigt een controle dat de handtekening van het token geldig is, dat het certificaat van de ondertekenaar teruggaat tot de root van DigiCert (het token bevat de volledige ondertekeningsketen, van eindcertificaat via tussencertificaat tot root), dat het op het bevestigde tijdstip binnen de geldigheid viel, dat het het kritieke uitgebreide sleutelgebruik id-kp-timeStamping heeft (zoals RFC 3161 eist) en dat de imprint gelijk is aan de SHA-256 van dit manifest. De controle in Text2Store doet dit allemaal in pure code zonder netwerk, en zet zijn eigen kopie van de DigiCert-root vast in plaats van de cacert.pem in het pakket te vertrouwen, zodat een verwisseld certificaat hem niet kan misleiden. VERIFY.txt toont de SHA-256 van dat certificaat, zodat je die kunt vergelijken met de gepubliceerde root van DigiCert op cacerts.digicert.com.
Zelf controleren, precies
Hash een bestand en vergelijk met de sha256 ervan in het manifest:
# macOS / Linux
shasum -a 256 transcript.pdf
# Windows (PowerShell)
Get-FileHash transcript.pdf -Algorithm SHA256
Controleer dat de betrouwbare tijdstempel precies dit manifest dekt en teruggaat tot de instantie:
openssl ts -verify -data manifest.json -in manifest.json.tsr -CAfile tsa/cacert.pem
De VERIFY.txt in het pakket geeft deze opdrachten voluit, ook hoe je de content root opnieuw berekent, zodat je ze kunt kopiëren en plakken.
Wat als geslaagd telt
Een controle mag alleen Geverifieerd melden als alles hieronder klopt: elk vermeld bestand is aanwezig en komt overeen met zijn vingerafdruk, de content root laat zich opnieuw berekenen, er zijn geen extra of dubbele bestanden, en een betrouwbare tijdstempel is geldig over manifest.json. Een pakket zonder betrouwbare tijdstempel is Niet geverifieerd: intern consistent maar niet onafhankelijk verankerd, omdat het manifest zijn eigen integriteit niet kan bewijzen zonder die externe handtekening. Elke afwijking, elk extra bestand of een tijdstempel die niet klopt, betekent Gewijzigd.
De ondertekende verklaring
Sommige procedures willen naast een dossier een menselijke verklaring: iemand die schriftelijk verklaart hoe het dossier tot stand kwam. Software kan zo’n verklaring niet afleggen; alleen een mens kan dat. Daarom bevat het pakket DECLARATION.txt: een eenvoudig invulsjabloon dat iemand (jij, of een beheerder van dossiers) kan aanpassen en aanvullen met de vingerafdruk van het manifest die hij zelf heeft berekend.
Het is een sjabloon, meer niet. Het is geen juridisch advies, en als je iets voorbereidt voor een formele procedure, laat het dan eerst door een advocaat nakijken.
Tijden en tijdzones
In de leesbare PDF’s worden de tijden van berichten getoond in de lokale tijd van de computer die exporteert, met een expliciete UTC-afwijking (bijvoorbeeld 2026-06-30 21:14 -08:00), met de tijdzone bovenaan vermeld, zodat ze overeenkomen met wat je op de telefoon zag en eenduidig blijven. De machineleesbare gegevens (conversation.json) en de betrouwbare tijdstempel houden alles in UTC, zodat een deskundige de exacte tijden altijd kan reconstrueren.
De eerlijke grens
Een geverifieerde export is maar zo compleet als de reservekopie erachter. Text2Store kan alleen opnemen wat je telefoon nog had toen je archiveerde. De beste gewoonte is eenvoudig: maak regelmatig een reservekopie, zodat een gesprek ruim voordat je het nodig hebt veilig is vastgelegd. iOS houdt een verwijderd bericht een paar weken herstelbaar, dus een recente reservekopie vangt vaak meer dan je verwacht. Zie de veelgestelde vragen voor meer.
Geen juridisch advies
Deze pagina en het materiaal in een geverifieerde export zijn algemene informatie, geen juridisch advies, en het gebruik van Text2Store schept geen professionele relatie. Wil je een export gebruiken in een juridische zaak, dan is dat iets tussen jou en een bevoegde advocaat in jouw rechtsgebied; niets hier is advies over of en hoe je dat doet.
Wil je hem in een reviewplatform laden?
Een geverifieerde export bewijst dat een dossier niet is gewijzigd. Moet je het gesprek in plaats daarvan aan een eDiscovery-reviewteam geven zodat het in hun platform kan worden geladen, dan heb je een RSMF-export (Relativity Short Message Format) nodig. De twee doen ander werk en je kunt ze allebei geven: een geverifieerde export om te bewijzen, een RSMF-bestand om te laden.
Zie ook
RSMF voor eDiscovery-review, exporteren naar PDF en WhatsApp-chats in je reservekopie.
Vragen?
Mail naar hello@text2store.com en we helpen je.