01
Verify integrity.
Ed25519 protects the signed payload bytes. SHA-256 connects the session header to the ordered event sequence. The verifier rejects altered signatures, broken chains, ambiguous JSON and invalid format values. A selected file is compared against the hash and byte count.
02
Assess the signer separately.
The public key in the record enables the mathematical check. Trust in that key needs an independent basis. Verify compares a separately known fingerprint for this purpose. Copying it from the same record does not create an additional basis for trust.
03
Separate record verification from the PDF signature.
For a ExtraProof PDF, Verify extracts the uniquely indexed humanproof-certificate.json attachment and checks its SHA-256, then the record’s signature and event chain. The browser does not verify visible PDF content or the PDF/CMS signature. The native app handles the PDF signature separately. Even a valid signature needs an independent basis for trusting the issuer.
04
Keep the claim within the evidence.
The localObservation profile confirms the consistency of signed recorder claims. It does not prove their complete truth or human authorship. A signature does not assess text quality, the origin of ideas or whether the tools used were permitted.
05
Report security issues responsibly.
Write to [email protected] with the affected component, the version and the smallest practical reproducible example. Please do not include confidential manuscripts, credentials or private keys in the first message; we agree on a way to transfer them afterwards. The file /.well-known/security.txt names the same contact.
- Contact: [email protected] (security reports).
- Acknowledgement: within five working days.
- Process: we assess the report, tell you the outcome and agree with you when details are published.
- Scope: this website, the browser verifier, the humanproof/1 record format and the ExtraProof software planned for a future pilot.