Cifrato lato client · Condivisione PDF

Condivisione PDF con cifratura lato client, spiegata correttamente.

"Crittografato end-to-end" viene usato in modo approssimativo. Ecco il meccanismo crittografico reale dietro un link PDF cifrato lato client — AES-256-GCM, gestione della chiave, modalità frammento vs passphrase, e cosa il server letteralmente non può fare. Nota: "zero-knowledge" in questa pagina indica che il server non possiede informazioni per decifrare il tuo file, non si riferisce alle prove formali zero-knowledge (ZKP) — il prodotto non usa ZKP.

lockAES-256-GCM vpn_keyPBKDF2-SHA256 · 310,000 linkFrammento o passphrase memoryWeb Crypto API

Cosa significa "zero-knowledge" qui

Una rapida disambiguazione prima di tutto: questo sistema non usa prove zero-knowledge (ZKP). La frase "zero-knowledge" in questa pagina si riferisce alla proprietà — più debole ma praticamente utile — che il server che archivia il tuo file condiviso non ha alcuna conoscenza — crittografica od operativa — che possa essere usata per decifrarlo. La chiave non tocca mai il server, quindi il server non può rivelarla in nessuna circostanza. Il meccanismo è semplicemente cifratura lato client più una chiave che viaggia solo nel frammento URL (o derivata da una passphrase che il server non vede mai).

memory
La cifratura avviene nel tuo browser
Non sul server, non in un worker che non controlli — nella tua scheda, tramite window.crypto.subtle. Verificabile in DevTools.
cloud_off
Solo il testo cifrato viene caricato
Il corpo del caricamento è testo cifrato AES-256-GCM. Il PDF, il nome del file e i metadati non raggiungono mai il server in forma leggibile.
vpn_key
La chiave viaggia con il destinatario
Nel frammento URL (mai inviato ai server) o derivata da una passphrase scelta dal mittente. In entrambi i casi, non la vediamo mai.
block
Nessun recupero = nessun backdoor
Perso il link o dimenticata la passphrase? Il file è perso per sempre. Poiché la chiave non raggiunge mai il nostro server, il percorso di recupero che indebolirebbe la garanzia non esiste.

Come viene costruito un link PDF cifrato lato client

Una panoramica di cosa fanno il browser del mittente, il server e il browser del destinatario — con le chiamate effettive a Web Crypto.

1 — Browser del mittente
// 256-bit AES key, generated locally key = crypto.subtle.generateKey({name:"AES-GCM", length:256}) // fresh 96-bit IV per file iv = crypto.getRandomValues(new Uint8Array(12)) // encrypt locally; GCM gives us an auth tag for integrity ct = crypto.subtle.encrypt({name:"AES-GCM", iv}, key, pdfBytes) // upload ciphertext + iv (and salt, if passphrase mode) id = await PUT("/api/transfer", ct, {iv, expiry})
2 — Struttura del link di condivisione
// fragment mode: key lives after # link_f = `https://pdfpro.tools/s/<ID>#<KEY>` // passphrase mode: no key in the link; recipient must know the passphrase link_p = `https://pdfpro.tools/s/<ID>`
3 — Il server archivia byte opachi
ciphertext = ??? // random-looking, unreadable iv = 12-byte nonce salt = 16-byte random (passphrase mode only) expiry = 24h free / 30d Pro
4 — Browser del destinatario
// browsers never transmit the URL fragment to the server rawKey = /* from location.hash OR */ PBKDF2(passphrase, salt, 310_000, "SHA-256") ct = await GET("/api/transfer/" + id) pdf = crypto.subtle.decrypt({name:"AES-GCM", iv}, importKey(rawKey), ct) // browser serves pdf to Downloads

Modalità frammento vs modalità passphrase

Due modi per consegnare la chiave al destinatario. Stessa garanzia sul testo cifrato, diversi compromessi tra usabilità e rischio di esposizione.

Modalità frammento

La chiave viaggia nell'hash dell'URL (#)

Il flusso più semplice: copia il link, incollalo in una chat per il destinatario, fatto. La parte dell'URL dopo # non viene mai inviata ad alcun server web da nessun browser conforme — è questo che mantiene la chiave privata.

  • Un solo passaggio per il destinatario — clicca il link.
  • Bassa attitudine, adatta per condivisione a sensibilità medio-bassa.
  • Rischio: se il link trapela in uno screenshot o nella sincronizzazione del browser, il file trapela con esso.
  • Usa quando ti fidi del canale (messenger sicuro, chat interna).
Modalità passphrase

Chiave derivata da una passphrase (PBKDF2)

Il mittente sceglie una passphrase. Il browser deriva una chiave a 256 bit tramite PBKDF2-SHA256 con 310.000 iterazioni su un salt casuale a 128 bit. Il salt è archiviato lato server; la passphrase viene condivisa fuori banda (telefono, Signal, di persona).

  • Condivisione a due fattori: il link e la passphrase viaggiano separatamente.
  • Il link da solo non è sufficiente — il testo cifrato rimane illeggibile.
  • La robustezza della passphrase è importante: 310k iterazioni rallentano il brute force ma non salvano una passphrase di 6 caratteri.
  • Usa quando il link potrebbe essere inoltrato o archiviato in un posto di cui non ti fidi completamente.
ProprietàModalità frammentoModalità passphrase
Portatore della chiaveHash URL (#)Passphrase + salt
Il server vede mai la chiaveNoNo
Il server archiviaTesto cifrato + IVTesto cifrato + IV + salt
Difficoltà per il destinatarioClicca il linkClicca il link + inserisci la passphrase
Esposto tramite screenshotSì (link = chiave)No (il link da solo è inutile)
Resistente al brute-force256 bit casualiDipende dalla passphrase
Ideale perCondivisione senza attrito su canali affidabiliCondivisione ad alta sensibilità

Perché un testo cifrato sul server ti protegge comunque

La gente chiede spesso: "se è sul vostro server, come è privato?" La risposta è che il testo cifrato non è il file. Senza la chiave, sono solo byte dall'aspetto casuale. Ecco cosa significa in pratica.

storage
Violazione del database = perdita di testo cifrato
Se un attaccante compromettesse il nostro database, otterrebbe byte opachi. Recuperare un singolo file richiederebbe un brute-force su una chiave a 256 bit — non fattibile con la fisica attuale.
gavel
Un'ingiunzione produce testo cifrato
Un tribunale può obbligarci a consegnare ciò che abbiamo. Ciò che abbiamo è testo cifrato. Un ordine del tribunale non può creare retroattivamente una chiave che non abbiamo mai archiviato.
group
L'accesso interno è neutralizzato
Un dipendente disonesto con piene credenziali al database non può comunque leggere i file. La garanzia è applicata dalla matematica, non dal controllo degli accessi.
timer
La scadenza rafforza la garanzia
Il testo cifrato viene eliminato alla scadenza (24 h gratis, fino a 30 giorni Pro). Dopo di che, anche il testo cifrato è sparito — l'unica copia del file esiste dove è stata decifrata.

warningLimitazioni oneste

La cifratura lato client non risolve la sicurezza degli endpoint. Un malware sul dispositivo del mittente o del destinatario può rubare la chiave dalla memoria. Un'estensione del browser compromessa può leggere il file decifrato. E un link inoltrato in una chat di gruppo annulla ogni garanzia crittografica. L'architettura aumenta il costo di una violazione; non elimina tutti i rischi.

Cifratura lato client vs altre opzioni "sicure"

Un confronto chiaro delle scelte comuni per condividere un PDF. La maggior parte delle opzioni etichettate come "sicure" usa la cifratura del trasporto — proteggono i dati in transito, ma il server ricevente detiene comunque il testo in chiaro e la chiave.

OpzioneTLS in transitoIl server può leggere il fileScadenzaAccount destinatario
Allegato emailDi solito sìSì — ad ogni hopPer sempreNon richiesto
Link cloud genericoFacoltativoA volte
PDF protetto da passwordSì (se l'host ha il file)MaiNon richiesto
PDF Pro (modalità frammento)No24h / 30gNon richiesto
PDF Pro (modalità passphrase)No24h / 30gNon richiesto

Condivisione con fiducia richiesta vs zero-knowledge gara dal vivo

Stesso obiettivo — condividere un PDF. Guarda i due modelli di fiducia finire, fianco a fianco.

cloud_upload
Condivisione con fiducia richiesta
Il server detiene il testo in chiaro
  1. Carica il PDF sul server
  2. Il server detiene il testo in chiaroTesto in chiaro
  3. Il server promette di eliminareFiducia
  4. Rischio di violazione dalla loro parteRischio
  5. Il destinatario scarica il testo in chiaroEsposto
Copie in chiaro sul server
1+
Il server può leggere
Chiavi sul server
shield_lock
Questo strumento
Condivisione zero-knowledge
  1. Cifra il PDF nel browserE2E
  2. Il server detiene solo testo cifratoZero-knowledge
  3. Il destinatario decifra localmenteFatto
check_circle
Già condiviso — e il server non può leggerlo.
Nessun testo in chiaro sul server. Nessuna custodia della chiave. A prova di violazione per design.
Copie in chiaro sul server
0
Il server può leggere
No
Chiavi sul server
No
L'animazione viene eseguita una volta per visualizzazione — tocca ripeti per rivederla.

Domande frequenti

Cosa significa davvero la condivisione PDF con cifratura lato client?
Significa che il server che archivia il tuo file condiviso letteralmente non può decifrarlo. La chiave di cifratura viene generata nel browser del mittente, non viene mai caricata, e solo il browser del destinatario può ricostruirla — dal frammento URL o da una passphrase condivisa fuori banda dal mittente. La garanzia è applicata dalla crittografia, non da una politica di controllo degli accessi che potremmo modificare. Nota: questo è distinto dalle prove formali zero-knowledge (ZKP), che questo prodotto non usa.
Quale cifratura usa PDF Pro per la condivisione cifrata lato client?
Cifratura simmetrica AES-256-GCM con un vettore di inizializzazione casuale a 96 bit per file. Per la modalità passphrase, le chiavi sono derivate tramite PBKDF2-SHA256 con 310.000 iterazioni su un salt casuale a 128 bit. Tutta la crittografia viene eseguita nell'API Web Crypto nativa del browser.
Qual è la differenza tra modalità frammento e modalità passphrase?
La modalità frammento inserisce la chiave a 256 bit nell'hash dell'URL (dopo #), che i browser non inviano mai ad alcun server. Chiunque abbia il link completo può decifrare. La modalità passphrase deriva la chiave da una passphrase scelta dal mittente; il testo cifrato rimane illeggibile senza di essa. La modalità passphrase è più sicura se il link trapela; la modalità frammento è più comoda per la condivisione senza attrito. Vedi la tabella di confronto sopra.
Un frammento URL è davvero sicuro come portatore di una chiave di cifratura?
I browser conformi non trasmettono mai la parte del frammento di un URL (la parte dopo #) al server. Rimane lato client ed è visibile solo al JavaScript in esecuzione nella scheda del destinatario. È questo che rende il link di condivisione stesso la credenziale di decifratura — la chiave viaggia con il destinatario, non con il caricamento. Puoi verificarlo nella scheda Rete del tuo browser: l'URL della richiesta viene troncato a ? o #.
PDF Pro o un tribunale possono leggere i file archiviati tramite condivisione cifrata lato client?
No. Il server archivia testo cifrato AES-256-GCM più un vettore di inizializzazione (più un salt in modalità passphrase). Senza la chiave — che non abbiamo mai ricevuto — quei dati sono crittograficamente indistinguibili da byte casuali. Possiamo divulgare solo testo cifrato, che è tutto ciò che abbiamo.
Cosa succede se perdo il link o dimentico la passphrase?
Il file è irrecuperabile in modo permanente. Questo è intenzionale — la cifratura lato client significa nessun percorso di recupero, perché un percorso di recupero richiederebbe che noi detenessimo la chiave. Salva la passphrase in un gestore di password e archivia il link da qualche parte di duraturo.
La condivisione PDF con cifratura lato client è gratuita?
Sì. Il livello gratuito supporta la cifratura AES-256-GCM e la scadenza del link dopo 24 ore senza registrazione richiesta. Il limite di file per il livello gratuito è di circa 25 MB per trasferimento; Pro estende la finestra di scadenza a 30 giorni e aumenta i limiti di dimensione del file.
Il destinatario ha bisogno di un account?
No. Il destinatario clicca il link, il suo browser decifra localmente tramite l'API Web Crypto, e scarica il file — nessuna registrazione, nessuna installazione, nessuna barriera tra lui e il file.

Invia un link cifrato end-to-end. Lascialo scadere come previsto.

Cifratura AES-256-GCM nel tuo browser. Nessuna registrazione, nessun testo in chiaro lato server, nessun backdoor di recupero.

sendCrea un link cifrato