Panoramica tecnica
Modello di hashing
ExistBefore calcola l'hash del contenuto localmente nel browser con SHA-256. Per i file piccoli usa Web Crypto; per file più grandi usa hashing streaming per evitare di caricare tutto in memoria. Il limite pubblico è 2 GB.
Architettura privacy-first
Il contenuto originale non lascia mai il browser. Viene trasmesso solo l'hash esadecimale di 64 caratteri tramite un proxy server-side che inserisce la chiave API CertiSigma. La chiave non appare nel codice client.
Tre livelli di prova
T0 — Firma digitale immediata
L'API CertiSigma restituisce una firma ECDSA P-256 sul payload di attestazione. Questa firma dimostra che il registro ha preso in carico quel digest in quel momento.
T1 — Marca temporale qualificata
Le attestazioni vengono aggregate in un albero Merkle. La radice riceve una marca temporale qualificata da un provider TSA accreditato, con rilevanza eIDAS nell'Unione europea.
T2 — Ancoraggio Bitcoin
Le radici Merkle vengono ancorate a Bitcoin tramite OpenTimestamps. Questo aggiunge verificabilità decentralizzata di lungo periodo, indipendente da un singolo operatore.
Verifica indipendente
La verifica non richiede fiducia cieca in ExistBefore. Puoi:
- Online: ripresentare lo stesso contenuto nella pagina di verifica.
- API: usare gli endpoint pubblici CertiSigma per verificare il digest.
- Offline: ricalcolare l'hash, ricostruire il payload firmato e validare la firma con una libreria crittografica standard.
Metadati
Quando possibile, ExistBefore estrae metadati localmente nel browser. I metadati non sono prova primaria: aiutano a leggere il contesto e possono essere inclusi o esclusi dal PDF secondo le opzioni disponibili.
Riferimenti tecnici
- SHA-256: FIPS 180-4
- ECDSA P-256: FIPS 186-4
- Timestamp qualificati: RFC 3161, eIDAS Art. 41
- Ancoraggio Bitcoin: OpenTimestamps
- PDF client-side: ISO 32000 tramite jsPDF
L'API CertiSigma espone la stessa pipeline T0/T1/T2 usata da ExistBefore. Documentazione API