Auctio

Come funziona

Quattro passi, e cosa succede davvero in ciascuno

La pagina spiega il deposito nell'ordine in cui accade, nominando gli algoritmi dove serve. Non è necessario capirla per usare il servizio; è qui perché chi vuole controllare possa farlo.

  1. La chiave della gara

    Quando la gara è creata, la stazione appaltante genera nel proprio browser una coppia di chiavi RSA-4096. La chiave privata viene cifrata con una passphrase (Argon2id, poi AES-256-GCM) in un file che scarica; la passphrase è divisa in tre parti con lo schema di Shamir, due delle quali bastano a ricostruirla: il kit di recupero, da stampare e custodire separatamente.

    Al servizio arriva soltanto la chiave pubblica. La sua impronta (SHA-256) compare nella pagina pubblica della gara e va riportata nel bando: l'operatore la confronta prima di cifrare.

  2. Il deposito

    L'operatore economico sceglie il file. Il browser genera una chiave di sessione casuale, cifra il file a blocchi (AES-256-GCM, ogni blocco legato alla gara, al deposito e alla propria posizione, così che nessun blocco possa essere spostato o sostituito) e avvolge la chiave di sessione con la chiave pubblica della gara (RSA-OAEP). Il caricamento è ripristinabile: un'interruzione riprende dal punto raggiunto.

    A caricamento completo il servizio emette la ricevuta: l'impronta del file cifrato, quella dichiarata del file in chiaro, l'istante, la gara, il deposito. È sigillata con la chiave Ed25519 del gestore, marcata temporalmente da una autorità RFC 3161 e iscritta nel registro trasparente. L'operatore la scarica in PDF/A e la allega alla propria offerta su Sintel, come ogni altro documento.

  3. La chiusura

    Alla scadenza il servizio chiude la gara da solo: da quel momento nessun deposito è più accettato né cancellabile. Il verbale di chiusura elenca i depositi completati, con le impronte e le posizioni delle rispettive ricevute nel registro.

    Il verbale è sigillato, marcato temporalmente e iscritto nel registro. Il registro stesso è un albero di Merkle a sola aggiunta i cui checkpoint firmati vengono periodicamente marcati e ancorati su Bitcoin (OpenTimestamps): riscrivere il passato lascerebbe una traccia che chiunque può rilevare.

  4. L'apertura

    Dopo la chiusura la stazione appaltante apre la chiave della gara nel proprio browser — con la passphrase o con due parti del kit — e scarica le buste. La decifratura avviene sul suo computer, blocco per blocco, e il risultato viene confrontato con l'impronta dichiarata nella ricevuta: integro o non integro.

    Ogni scarico viene notificato all'operatore che ha depositato, e l'esito dell'apertura è registrato. Passato il periodo di conservazione stabilito per la gara, le buste vengono distrutte; le ricevute e i verbali restano, perché sono il documento della procedura.

Cosa è garantito

Segretezza fino alla scadenza
Il contenuto è leggibile soltanto con la chiave privata della gara, che il servizio non ha mai avuto. Un accesso al server, anche completo, ottiene buste chiuse.
Integrità
Ogni blocco è autenticato; la ricevuta lega il file, la gara e l'istante; il registro lega le ricevute fra loro e al tempo esterno. Una modifica in qualsiasi punto è rilevabile.
Non ripudio del deposito
La ricevuta è sigillata dal gestore e marcata da un terzo; l'operatore la allega alla propria offerta sotto la propria firma. Nessuna delle due parti può negare in seguito cosa fu depositato e quando.
Verificabilità da fuori
Ricevute, verbali e registro si verificano con strumenti pubblici e chiavi pubblicate, senza accesso al servizio e senza fidarsi di chi lo gestisce.

Cosa non è garantito, e va detto

Il servizio vede quanto è grande un deposito, quando è avvenuto e da quale account: non il contenuto. Chi ha la chiave privata della gara — la stazione appaltante — può decifrare in qualsiasi momento: la segretezza prima della scadenza si regge sulla custodia di quella chiave, come nelle buste di qualsiasi piattaforma.

La sicurezza del browser dell'operatore e della stazione appaltante è la loro: un computer compromesso vede il file prima che sia cifrato o dopo che è decifrato. I moduli che cifrano sono pubblicati con le loro impronte proprio perché chiunque possa controllare cosa esegue.

I numeri

Cifratura del file
AES-256-GCM a blocchi; chiave di sessione avvolta con RSA-OAEP (SHA-256).
Chiave della gara
RSA-4096; file della chiave protetto con Argon2id; kit di recupero Shamir 2 su 3.
Ricevute e verbali
Sigillo Ed25519 del gestore; marca temporale RFC 3161; documenti PDF/A-3b.
Registro
Albero di Merkle (formato tlog-tiles) con checkpoint firmati, marcati e ancorati su Bitcoin tramite OpenTimestamps.

Le chiavi, le impronte e gli strumenti di verifica →
I manuali e la presentazione →