Vai al contenuto
Dati costieri, al sicuro.
Protocollo

Come Pontile protegge i tuoi documenti.

In poche righe: come funziona la cifratura, cosa vediamo e cosa resta fuori dalla nostra portata.

  • Cifrato nel browser
  • Server in Italia
  • Per concessioni, porti e gare

Come funziona

Come funziona, in 4 passi.

Tutto avviene nel tuo browser, prima che un byte raggiunga i nostri server.

  1. La tua password

    Dalla password il browser ricava le chiavi del tuo account. La password non lascia mai il dispositivo.

    Per tecnici

    Argon2id (64 MiB, 3 iterazioni) e poi HKDF-SHA-256: una chiave serve al login, l’altra cifra la chiave principale. Al server arriva solo un valore derivato.

  2. Le tue chiavi restano sul dispositivo

    Le chiavi personali nascono nel browser. Al server arrivano solo chiuse con chiavi che conosci soltanto tu.

    Per tecnici

    Una coppia X25519 per ricevere chiavi e una Ed25519 per firmare; le parti private sono cifrate con XChaCha20-Poly1305 sotto la chiave principale.

  3. Ogni file chiuso a chiave prima di partire

    Ogni file è cifrato con una chiave nuova. Ai nostri server arrivano solo byte illeggibili.

    Per tecnici

    XChaCha20-Poly1305 a segmenti da 1 MiB, una chiave per ogni versione; il manifesto è firmato con Ed25519 e l’integrità si verifica con BLAKE2b-256.

  4. Solo chi inviti lo riapre

    Invitare qualcuno vuol dire consegnargli la chiave, chiusa solo per lui. Se lo rimuovi, le chiavi cambiano.

    Per tecnici

    La chiave della sezione è sigillata verso la chiave pubblica X25519 dell’invitato (sealed box); ogni accesso è un record firmato Ed25519, verificato fino al titolare.

Chiavi

Una chiave dentro l’altra.

Ogni chiave apre solo quella sotto: chi ha la chiave di una sezione non legge le altre.

  1. PasswordLa conosci solo tu
  2. Chiavi personaliRestano nel tuo browser
  3. Chiave dell’hubNomi delle sezioni
  4. Chiave della sezioneCambia a ogni revoca
  5. Chiave del fileNuova per ogni versione
Per tecnici: tutte le chiavi
Gerarchia completa delle chiavi di PontileDalla password, con Argon2id, nasce la PWK; dalla PWK, con HKDF, la AK per il login e la KEK, che cifra la chiave principale MK. Anche la chiave di recupero RK cifra la MK. La MK cifra le chiavi private IEK e ISK. HK e SK sono sigillate verso la IEK. La SK cifra le chiavi di cartella NK, le chiavi di file FK e la chiave privata di deposito DK. Dalla FK, con HKDF, nasce la MDK.
Linea continua: derivazione (Argon2id o HKDF). Linea tratteggiata: la chiave sopra cifra o sigilla quella sotto.
  • PWK · Password keyArgon2id(password, salt)Mai conservata
  • AK · Authentication keyHKDF(PWK, «hub-v1/auth»)Sul server solo un HMAC
  • KEK · Key encryption keyHKDF(PWK, «hub-v1/kek»)Mai conservata
  • MK · Master key32 byte casuali alla registrazioneCifrata con KEK e, a parte, con RK
  • RK · Recovery key32 byte casuali, consegnati all’utente come codiceMai conservata
  • IEK · Identity encryption keypairX25519, riceve le chiavi di hub e sezionePrivata cifrata con MK
  • ISK · Identity signing keypairEd25519, firma inviti, caricamenti, eventiPrivata cifrata con MK
  • HK · Hub key32 byte casuali, metadati comuni dell’hubSigillata per ogni membro
  • SK · Section key, per epoca32 byte casuali, nuova a ogni rotazioneSigillata per ogni membro della sezione
  • DK · Deposit keypair, per epocaX25519, caricamenti senza diritto di letturaPrivata cifrata con SK
  • FK · File key32 byte casuali, nuova per ogni versioneAvvolta con SK (o sigillata verso DK)
  • MDK · Metadata keyHKDF(FK, «hub-v1/meta»)Mai conservata
  • NK · Folder key32 byte casuali, nuova a ogni modificaAvvolta con SK
  • OK, OEK, RQK · Organizzazioni e richiesteChiave dell’organizzazione, sua coppia X25519, chiave di ogni richiestaSigillate ai soli membri o destinatari

Metadati

Cosa vediamo, cosa non vediamo.

Per far funzionare il servizio il server conosce alcune informazioni. Il contenuto no.

Vediamo

  • Email e chiavi pubbliche degli utenti
  • Chi è membro di quale hub e sezione, con quale ruolo
  • Quanti file ci sono, quanto pesano cifrati e quando cambiano
  • Indirizzi IP, per al massimo 30 giorni

Non vediamo

  • Il contenuto dei file
  • I nomi di file, cartelle, sezioni e hub
  • Commenti, promemoria ed esiti delle richieste
  • Le chiavi per leggere

Limiti

Cosa non può proteggere.

Nessuna cifratura protegge da tutto. Ecco i limiti, detti prima.

  • Un dispositivo compromesso

    Se il computer è infettato, chi lo controlla vede quello che vedi tu.

  • Chi ha accesso e copia

    Revocare un accesso non cancella le copie già scaricate.

  • Password e chiave di recupero perse

    Senza entrambe nessuno, nemmeno Coste360, può recuperare i dati.

  • Le informazioni di servizio

    Quelle elencate sopra restano visibili al server.

Per tecnici

Le primitive crittografiche.

Con il rilascio pubblicheremo il codice dell’app che gira nel tuo browser: è lì che avviene la cifratura, ed è lì che chiunque potrà verificarla.

Mostra la tabella delle primitive
Primitive crittografiche di Pontile
FunzioneAlgoritmo
Chiave dalla passwordArgon2id v1.3 (RFC 9106): 64 MiB, 3 iterazioni
Sotto-chiaviHKDF-SHA-256 (RFC 5869)
Cifratura dei datiXChaCha20-Poly1305, cifratura autenticata
Chiavi verso un destinatarioX25519, sealed box
FirmeEd25519 (RFC 8032)
Hash e registro delle chiaviBLAKE2b-256, albero di Merkle (RFC 6962)

Solo primitive standard, da libsodium o implementazioni equivalenti.

Domande sul protocollo?

Rispondiamo volentieri a tecnici, avvocati e revisori.