Il principio
Il Suo segreto viene cifrato nel Suo browser con una chiave casuale di 256 bit. Questa chiave è inserita nel link, dopo il segno #. I browser non inviano mai questa parte dell'indirizzo: i nostri server ricevono solo un blocco cifrato che non possono decifrare. Anche con accesso completo ai nostri server e al nostro database, nessuno può leggere un segreto senza il link completo.
Anatomia di un link
https://eclair.kayzen-lyon.com/s/35fZoy72KMhzS86v9fUxog#v1.p.8BJ3ft…/s/{id}: Identificativo casuale di 128 bit, inviato al server per ritrovare il testo cifrato.#v1: Versione del formato.n o p: Senza o con PIN.{key}: Chiave di 256 bit. Mai inviata, mai registrata.
Primitive crittografiche
| Uso | Costruzione | Implementazione |
|---|---|---|
| Contenuto | AES-256-GCM, IV casuale di 96 bit, dati associati legati all'identificativo del segreto | WebCrypto |
| Derivazione | HKDF-SHA-256, stringhe di contesto con prefisso «eclair v1» | WebCrypto |
| PIN | Argon2id (64 MiB, 3 passaggi) poi HKDF; verificatore HMAC-SHA-256 derivato dalla chiave del link | hash-wasm |
| Lunghezza | Contenuto riempito a scaglioni (1, 4, 16, 64 KiB…) per nasconderne la dimensione reale | — |
Perché il server non può provare i Suoi PIN
Il verificatore inviato al server è calcolato a partire dal codice E dalla chiave del link. Senza la chiave, il server non può né verificare un codice né provarne uno. Si limita a contare i fallimenti e distrugge il segreto al quinto tentativo.
Da cosa proteggiamo
- Una fuga del nostro database o del nostro hosting: Contiene solo blocchi cifrati e qualche data.
- Anteprime dei link (Slack, Teams, Outlook): La pagina del link non contiene il segreto; questo viene consegnato solo dopo un clic, tramite una richiesta POST.
- Due aperture simultanee: Lettura ed eliminazione avvengono in un'unica operazione atomica, testata con 100 letture simultanee.
- Enumerazione dei link: 128 bit casuali, limitazione delle richieste, risposta identica per link sconosciuti, scaduti o già letti.
- Uno script manomesso: Nessuno script di terze parti, politica di sicurezza dei contenuti rigorosa basata su nonce, dipendenze bloccate e verificate.
I limiti, in tutta onestà
- Un aggressore in possesso sia del link sia di una copia del nostro database può provare offline i PIN brevi. Per un segreto critico, scelga una passphrase.
- La cifratura in una pagina web presuppone che il codice servito dal nostro sito sia integro. L'estensione e le app firmate, in preparazione, ridurranno questo rischio.
- Vediamo i metadati: date, scaglione di dimensione, numero di letture.
- Un destinatario può sempre copiare il segreto dopo averlo letto.
- Il servizio non è ancora stato sottoposto a un audit di terze parti. L'audit è previsto prima della versione 1.0 e il relativo rapporto sarà pubblicato.
Verifichi di persona
Vedere la richiesta inviata al server
Segnalare una vulnerabilità
Ci scriva seguendo le indicazioni del nostro file security.txt. Non intraprenderemo mai alcuna azione contro chi segnala una falla in buona fede. security.txt · contact@kayzen-lyon.fr