Funzioni
Undici sigilli crittografici,
eseguiti prima che tu rimetta giù il telefono.
La pipeline completa dettagliata passo per passo — cosa garantisce ogni operazione, a quale standard si conforma, cosa citare nella perizia.
Per ogni step indichiamo: cosa fa la app, quale standard di riferimento, quale artefatto finisce nel bundle.
Sync NTP
Fix temporale autoritativo da time.cloudflare.com
Cattura
Camera nativa, frame raw, nessun filtro
Watermark
Burn-in 3 righe: ora · UUID · GPS+bussola
EXIF inject
Metadati fotocamera preservati + UserComment LOCUS
Hash triplo
MD5 · SHA-256 · SHA-512 in una passata
Marca RFC 3161
Sectigo→DigiCert→GlobalSign + InfoCert eIDAS opt-in
Manifest Ed25519
Keypair device-bound, manifest firmato
CASE / UCO
Sidecar JSON-LD: Image · Device · Location · Provenance
Report PDF
Relazione forense pronta per il fascicolo
BagIt assembly
Packaging RFC 8493 + tagmanifest TSA
Registrazione + PEC
Sul server solo metadati + impronte (mai il media), notifica via PEC
Modello di fiducia
Tre livelli concentrici che si rafforzano a vicenda
L'affidabilità non poggia su un singolo meccanismo. Catena logica: byte del file → hash nel manifest → hash del manifest nel tag manifest → impronta del tag manifest nella marca temporale → firma della TSA accreditata.
1
Hash di contenuto (fixity)
Ogni file ha un'impronta SHA-256 registrata nei manifest: modificare un solo byte fa fallire la verifica.
2
Firma digitale (autenticità)
Il manifest LOCUS — che raccoglie hash e metadati — è firmato con la chiave privata Ed25519 del dispositivo.
3
Marca temporale (data certa)
Due token RFC 3161 di una TSA accreditata legano a data e ora certe sia l'impronta del media sia quella dell'intero pacchetto.
Il sigillo finale. Il file tagmanifest-sha256.txt contiene gli hash di tutti i file di controllo (incluso il sidecar CASE/UCO); su di esso viene apposta una marca temporale che « sigilla » l'intero bundle: qualsiasi alterazione successiva diventa rilevabile e dimostrabilmente posteriore alla data certificata.
Struttura del bundle
Una cartella BagIt v1.0, autoverificabile
La radice e il manifest sono comuni a tutti i tipi; il payload (data/) cambia secondo il media acquisito.
LOCUS-<Tipo>-<uuid>/ ├─ bagit.txt dichiarazione di formato BagIt ├─ bag-info.txt metadati del pacchetto (incl. Conformance) ├─ manifest-sha256.txt hash SHA-256 dei file in data/ ├─ tagmanifest-sha256.txt hash SHA-256 dei file di controllo ├─ tagmanifest-sha256.txt.tsr marca temporale RFC 3161 (il sigillo) ├─ tsa-ca.pem catena CA della TSA (per la verifica) ├─ README.txt istruzioni di verifica ├─ verify.sh / verify.bat script di verifica (macOS/Linux e Windows) ├─ data/ PAYLOAD — dipende dal tipo └─ metadata/evidence.case.jsonld catena di custodia CASE/UCO
| File del payload | Photo | Video | Audio |
|---|---|---|---|
| media.jpg / .mp4 / .wav | ✓ | ✓ | ✓ |
| original.jpg | ✓ | — | — |
| manifest.json | ✓ | ✓ | ✓ |
| tsa.tsr | ✓ | ✓ | ✓ |
| device.json | ✓ | ✓ | ✓ |
| camera.json / camera.jsonl | ✓ | ✓ | — |
| gps.jsonl | — | ✓ | ✓ |
| mappa-gps.png | ✓ | ✓ | ✓ |
| commento.m4a | ✓ | — | — |
| waveform.png | — | — | ✓ |
| frames/ + frames-strip.jpg | — | ✓ | — |
| histogram.png | ✓ | — | — |
| frames-hist/*.png | — | ✓ | — |
| report.pdf · interactive.html | ✓ | ✓ | ✓ |
| provenance nel media | APP11 | BMFF | — |
Autenticità e fedeltà
Provenance nel media e disclosure firmata
LOCUS distingue due domande: « questo file proviene da questa acquisizione? » e « quanto il contenuto è fedele a ciò che è stato ripreso? ». Le copre entrambe, dichiarandone onestamente i limiti.
Provenance LOCUS-PROV-v1. Oltre al sigillo di pacchetto, LOCUS incapsula una dichiarazione di provenance nel file stesso, così che l'autenticità viaggi con il media: segmento APP11/JUMBF per il JPEG (ISO/IEC 19566-5), box uuid BMFF per l'MP4 (ISO/IEC 14496-12); l'audio WAV resta privo di provenance embedded per natura del formato. È un manifesto ispirato a C2PA/JUMBF ma non C2PA standard: usa un'etichetta proprietaria e non è riconosciuto automaticamente da c2patool.
Fedeltà dichiarata. La pipeline di cattura è dichiarata nell'oggetto capture del manifest firmato: origine (cattura dal vivo, nessun import su iOS), elaborazione computazionale del dispositivo (HDR/fusione multi-frame, non disattivabile e dichiarata onestamente, senza spacciare la foto per dato grezzo del sensore) ed editing generativo AI (ai_editing = none-by-LOCUS). La dichiarazione di pipeline è essa stessa integra e non ripudiabile.
| Aspetto | Audio | Foto | Video |
|---|---|---|---|
| Cattura | PCM lossless (WAV) | JPEG computazionale | Flusso registrato |
| Elaborazione computazionale | Nessuna | Di sistema, non controllabile | Di sistema |
| RAW del sensore | — | No | No |
| Editing generativo AI | Nessuno | Nessuno | Nessuno |
| Fedeltà dell'autoritativo | Non ri-codificato | Originale pre-watermark conservato | media.mp4 non ri-codificato |
| Capture API | AVAudioRecorder | UIImagePickerController | AVCaptureMovieFileOutput |
§ 04 · Conformità
Gli standard nascono dentro il bundle.
Non si aggiungono dopo.
Riferimenti di conformità — non loghi di certificazione — che governano la struttura del bundle.
| Riferimento | Ambito | Dove in LOCUS |
|---|---|---|
| ISO/IEC 27037:2012 | Identificazione, raccolta, acquisizione e conservazione di evidenze digitali | Pipeline completa |
| SWGDE 18-F-002 · 17-V-002 · 23-I-001 | Acquisizione di evidenze digitali · video/audio forense · imaging | Flusso di cattura, catena di custodia |
| RFC 3161 | Time-Stamp Protocol con autorità di tempo autoritativa | Media + tagmanifest |
| Provenance LOCUS-PROV-v1 | Provenance del contenuto, ispirata a C2PA/JUMBF (NON C2PA standard) | APP11 (JPEG) · BMFF uuid box (MP4) |
| CASE 1.3 / UCO 1.4 | Cyber-investigation Analysis Standard Expression | Sidecar JSON-LD |
| BagIt RFC 8493 v1.0 | Packaging filesystem gerarchico per trasferimento | Radice del bundle |
| EXIF 2.32 | Exchangeable image file format | Preservato inalterato nel JPEG |
| eIDAS 910/2014 | Marca temporale qualificata (valore legale UE) | Opzionale via TSA InfoCert |