Naar de inhoud
In ontwikkeling
NL

Bewijs

Een bewijspakket controleren

Een bewijspakket van Perlata is een zip met een vaste indeling. U kunt het narekenen met gereedschap dat op vrijwel elke computer staat, zonder ons erbij. Deze pagina beschrijft wat erin zit, wat u kunt controleren en wat elke controle aantoont. De gezaghebbende beschrijving reist mee in het pakket zelf, als het bestand format.md; wijkt deze pagina daarvan af, dan geldt die.

Wat er in het pakket zit

De bestandsnamen zijn Engels en veranderen niet met de taal van het document, zodat een controleprogramma naar een vaste naam kan zoeken in plaats van naar vijf spellingen.

  • manifest.json somt elk bestand op met zijn grootte en zijn SHA-256.
  • events.json bevat de keten: elke gebeurtenis met haar volgnummer, haar tijdstip, haar inhoud, de hash van de vorige schakel, haar eigen ketenhash en een zegel.
  • proofs.json bevat de bewijspaden van de gebeurtenissen naar de wortel van hun uur.
  • anchors/ bevat per uurwortel de tijdstempel zoals de tijdstempeldienst hem heeft afgegeven, als RFC 3161-token.
  • seals.json bevat de publieke sleutels waarmee de zegels te verifiëren zijn.
  • Het bewijsdocument in twee vormen, om te lezen, plus het bericht zoals het is verstuurd en de melding zoals die aan de verzenddienst is aangeboden.

De vier controles

Ze bouwen op elkaar voort: de eerste laat zien dat de bestanden niet zijn gewijzigd, de laatste dat de keten al bestond op een moment dat een derde heeft vastgesteld.

  • De bestanden tegen het manifest. Bereken van elk bestand de SHA-256 en vergelijk die met de lijst. Wijkt er één af, dan is het pakket na vastlegging gewijzigd.
  • De keten. Elke gebeurtenis draagt de hash van de vorige, en de eerste draagt een beginwaarde die de keten aan één bezorging van één opdrachtgever bindt. Daardoor kan een kloppende reeks gebeurtenissen niet op een andere bezorging worden geplakt.
  • De zegels. Elk zegel staat over de ruwe bytes van de ketenhash, met ECDSA over P-256 en SHA-256. U verifieert het met openssl dgst en de publieke sleutel uit het pakket.
  • De tijdstempel. De wortel van het uur is aan een tijdstempeldienst voorgelegd; het token in anchors/ verifieert u met openssl ts en het certificaat van die dienst.

Wat een controle wel en niet aantoont

De keten en de zegels tonen aan dat er sinds de vastlegging niets is gewijzigd. Ze tonen niet aan wannéér de vastlegging bestond, want de hashes zijn van ons en de tijden staan in onze eigen gegevens. Daarvoor is de tijdstempel er: een derde partij heeft de wortel van dat uur gezien en heeft daarover getekend.

De zegels zijn van ons. Het pakket toont niet aan wie de sleutel beheert, en zegt dat zelf ook. Het certificaat van de tijdstempeldienst haalt u daarom bij die dienst op en niet bij ons; anders controleert u onze keten met onze eigen schakel.

Ontbreekt de map anchors/, dan is er over die periode geen externe tijdstempel, en het bewijsdocument zegt dat met zoveel woorden. De keten staat dan vast ten opzichte van zichzelf, maar het moment waarop zij bestond is niet onafhankelijk vastgesteld.

Legt u de opgeslagen melding naast het exemplaar dat bij de ontvanger binnenkwam, dan verschillen de kopregels en dus ook de SHA-256. Dat wijst niet op wijziging achteraf: de verzenddienst voegt bij het verzenden eigen kopregels toe. Wat te vergelijken valt is de inhoud, en de hash in het manifest bewijst dat het opgeslagen bestand sindsdien niet is gewijzigd.

Wat u nodig hebt

Openssl en een manier om JSON te lezen, meer niet. De keten en de zegels controleert u zonder netwerk. Voor de tijdstempel hebt u eenmalig het certificaat van de tijdstempeldienst nodig, dat u bij die dienst zelf ophaalt.

De precieze commandoregels staan in format.md in het pakket, inclusief de twee vlaggen waarop een controle stukloopt terwijl er niets mis is: de wortel geeft u door als digest en niet als bestand, en het token leest u met de vlag voor een los token.

Versie 1.0, 17 augustus 2026. Deze pagina beschrijft het formaat perlata.evidence-package.v1. Vragen over een pakket dat u hebt ontvangen? Mail [email protected].