Cybersicurezza e app web

Sésame Éclair

Un segreto, una lettura, zero tracce: la chiave non lascia mai il link, il server conserva solo un blocco illeggibile.

Anno
2026
Stack
Next.js · React · TypeScript · WebCrypto · WebAssembly · PostgreSQL
  • Product design
  • Crittografia applicata
  • Sviluppo web
  • Sicurezza applicativa
  • Accessibilità
  • SEO multilingue
https://eclair.kayzen-lyon.com/
Home page del sito Sésame Éclair — Cybersicurezza e app web, realizzato da KAYZEN
senza account, senza pubblicità
0 €
chiave del link, mai inviata al server
256 bit
letture simultanee accettate su un segreto a lettura unicaTest automatizzato su Postgres.
1 su 100
lingue del sito
7
Il punto di partenza

Cosa c'era da risolvere.

Il contesto

Sésame Éclair è un servizio gratuito di condivisione di segreti a lettura unica, pubblicato da KAYZEN da Lione. Incolli una password o una chiave e ottieni un link cifrato end-to-end che scompare dopo la lettura o alla scadenza scelta. È il prodotto gemello di Sésame, il password manager di KAYZEN: Sésame custodisce ciò che deve durare, Éclair trasmette ciò che deve scomparire. Il software è gratuito ma proprietario. Solo l'app web è online, in sette lingue; l'estensione, le app desktop e mobili e la riga di comando sono sviluppate ma non ancora pubblicate.

Il vincolo

Una password inviata via email o su Slack non scompare mai davvero: resta nelle cronologie, nei backup e negli indici di ricerca, e chiunque un giorno acceda alla casella può leggerla. I servizi di link monouso esistono, ma alcuni cifrano sui propri server, come precisa ad esempio la pagina di Onetime Secret rilevata il 6 ottobre 2026, e molti riservano i file, le richieste di segreti o il dominio personalizzato a un piano a pagamento. Serviva un servizio gratuito e senza account, la cui riservatezza regga anche se non ti fidi dell'editore.

La risposta

La chiave non lascia mai il link. Il browser genera una chiave casuale di 256 bit, cifra il segreto, poi colloca questa chiave dopo il segno # dell'indirizzo, la parte che i browser non inviano mai ai server. Il server conserva solo un blocco cifrato e alcune date; lo consegna una volta, poi lo elimina nella stessa operazione. Tutto il resto discende da questa regola: la pagina del link non contiene mai il segreto, il codice PIN non può essere testato dal server e ogni limite del sistema è scritto sul sito invece di essere passato sotto silenzio.

Misurato, non dichiarato

I punteggi rilevati alla consegna.

Punteggi Lighthouse del sito in produzione. Li pubblichiamo così come sono: quando uno è basso, la causa e il piano di correzione sono spiegati più sotto invece di essere taciuti.

PageSpeed
96
Performance: 96 su 100
100
Accessibilità: 100 su 100
100
Best practice: 100 su 100
100
Posizionamento sui motori di ricerca: 100 su 100
Design e direzione artistica

Ogni scelta di design, e il suo perché.

  1. La famiglia Sésame, un accento per il marchio

    Blu marino #1F3B61 per i titoli, terracotta #B7481F per l'azione principale: l'identità visiva di kayzen-lyon.com e di Sésame. L'ambra «éclair» #F2C14E è riservata al logotipo. Il tema chiaro viene mostrato per impostazione predefinita, qualunque sia l'impostazione del sistema; il tema scuro è una scelta dell'utente, che viene memorizzata.

  2. Il modulo è la prima schermata

    Su questo sito si viene per inviare un segreto, non per leggere una presentazione: l'area di inserimento occupa l'hero. Le opzioni sono compresse ma riassunte in una riga leggibile, «1 lettura · scade tra 24 ore · senza codice», e si espandono solo per cambiare il numero di letture, la scadenza, la protezione o i destinatari.

  3. Ciò che non esiste ancora è indicato come tale

    La pagina Funzionalità classifica ogni funzione come «Disponibile» o «Previsto». La pagina Download mostra l'estensione, Windows, macOS, la riga di comando, Android e iPhone come «In arrivo», con un rimando all'app web. Su un prodotto di sicurezza, annunciare una funzione assente costerebbe più fiducia di quanta ne porterebbe.

  4. Un movimento che non disturba la lettura

    Curve di animazione nette, pulsanti che si abbassano leggermente alla pressione, effetti al passaggio riservati al mouse, schede che si posano durante lo scorrimento in puro CSS, senza dissolvenza, per non ridurre mai il contrasto. Tutto viene disattivato quando il sistema chiede di ridurre le animazioni.

Palette del progetto

  • Inchiostro

    #1F2937

    Testo

  • Marino

    #1F3B61

    Titoli

  • Terracotta

    #B7481F

    Azione principale

  • Ambra éclair

    #F2C14E

    Logotipo

  • Verde

    #1F6B48

    Conferma

Sistema tipografico

Titoli

Outfit 800

Testo corrente

Plus Jakarta Sans 400

Le famiglie di kayzen-lyon.com, in versioni variabili servite dal dominio: la policy di sicurezza non autorizza alcun font di terze parti.

Ingegneria

Cosa c'è sotto il cofano.

  • Next.js
  • React
  • TypeScript
  • WebCrypto
  • WebAssembly
  • PostgreSQL
  1. AES-256-GCM, la chiave nel frammento

    Il contenuto è cifrato tramite WebCrypto in AES-256-GCM, con un vettore di inizializzazione casuale di 96 bit e dati associati legati all'identificativo del segreto. Le chiavi sono derivate con HKDF-SHA-256. Prima della cifratura, il contenuto viene riempito a scaglioni (1, 4, 16, 64 KiB…) perché il server non ne conosca la lunghezza reale. Il formato è pubblicato, con i suoi vettori di test, sulla pagina «Formato crittografico v1».

  2. Un codice PIN che il server non può testare

    Il codice passa per Argon2id (64 MiB, 3 passaggi), eseguito in WebAssembly e caricato solo se viene richiesto un codice. Il verificatore inviato al server è calcolato a partire dal codice e dalla chiave del link: senza questa chiave, il server non può né verificare un codice né provarne uno. Conta gli errori e distrugge il segreto al quinto tentativo. Il limite è scritto nella pagina Sicurezza: chi possiede sia il link sia una copia del database può forzare offline un codice breve.

  3. Una sola lettura, anche con cento in contemporanea

    La pagina di un link, ottenuta tramite GET, non contiene mai il testo cifrato: viene consegnato solo dopo un clic su «Rivela», tramite una richiesta POST. I bot di anteprima di Slack, Teams o Outlook non consumano quindi la lettura. Consegna ed eliminazione avvengono in un'unica query SQL; un test lancia 100 rivelazioni simultanee su un segreto a lettura unica e ne accetta una sola. Link sconosciuto, scaduto, letto o distrutto: la risposta è la stessa.

  4. Nessuno script di terze parti, una policy chiusa

    Content-Security-Policy con nonce per richiesta, senza unsafe-inline né unsafe-eval per gli script; è ammesso solo wasm-unsafe-eval, per Argon2id. connect-src limitato al dominio, frame-ancestors su none, HSTS di due anni con preload, Referrer-Policy su no-referrer. Il prezzo è accettato e documentato: le pagine vengono generate a ogni richiesta invece di essere generate staticamente.

  5. Ospitato nell'Unione europea, senza indirizzi IP nel database

    L'applicazione gira su Vercel, a Parigi; il database Postgres è su Neon, a Francoforte. Nessuna colonna contiene un indirizzo IP: la limitazione della frequenza si basa su un'impronta non reversibile che cambia ogni giorno. L'accesso ai dati passa per Drizzle e un Postgres standard, il che lascia sostituibile il provider di hosting.

  6. Un nucleo crittografico, diversi client in preparazione

    Tutta la cifratura vive in un unico modulo, packages/crypto, testato con vettori deterministici. Nel codice, lo stesso modulo serve già un'estensione Manifest V3, app desktop Electron, app Capacitor per Android e iOS e una riga di comando con server MCP. Nessuna è pubblicata a oggi: il sito le presenta come in arrivo.

Posizionamento SEO

Come il sito si fa trovare.

  1. Una pagina per intento di ricerca

    Cinque confronti (Onetime Secret, Password Pusher, scrt.link, Bitwarden Send, Password.link), quattro pagine di casi d'uso (agenzie, DevOps, supporto informatico, privati), due strumenti gratuiti che funzionano nel browser (generatore di password, verifica della robustezza) e un blog. Ogni confronto riporta la data di rilevazione, le fonti e una riga «Ha notato un errore? Ci scriva».

  2. Sette lingue, collegate tra loro

    Francese alla radice; inglese, tedesco, spagnolo, italiano, portoghese e olandese sotto il proprio prefisso. Ogni pagina dichiara i suoi equivalenti tramite hreflang, con un x-default, e la sitemap li elenca tutti. Le traduzioni automatiche sono segnalate come «in fase di revisione»; per i testi legali, fa fede solo la versione francese.

  3. FAQPage, SoftwareApplication e llms.txt

    Le FAQ hanno un markup FAQPage; il prodotto è dichiarato come SoftwareApplication con un prezzo di 0 €. Un file llms.txt descrive agli assistenti ciò che il servizio garantisce, ma anche i suoi limiti: assenza di audit esterno, software proprietario, app non ancora disponibili.

Accessibilità

Utilizzabile da tutti.

Da giugno 2025 l'Atto europeo sull'accessibilità (European Accessibility Act) impone l'accessibilità digitale a una larga parte dei servizi online. La affrontiamo in fase di progettazione, non come rimedio a posteriori.

  1. WCAG 2.2 AA verificato su 44 pagine

    I test end-to-end eseguono axe-core ai livelli WCAG 2.0, 2.1 e 2.2 AA su 44 pagine, in più lingue, oltre che sulla home page in tema chiaro e in tema scuro. Navigazione da tastiera, focus visibile e link per saltare al contenuto figurano nella dichiarazione di accessibilità.

  2. Contrasti verificati da un test

    Ogni coppia di token di colore ha il suo rapporto minimo, controllato automaticamente: 7:1, livello AAA, per il testo corrente e i titoli su sfondo chiaro; 4,5:1 per il testo secondario, i link d'accento e i messaggi di stato, in entrambi i temi.

  3. Una dichiarazione che non sopravvaluta

    In mancanza di un audit RGAA da parte di un ente indipendente, la dichiarazione di accessibilità indica che il sito è «non conforme» ai sensi del referenziale, anche se è stato progettato per esserlo. È la regola del prodotto applicata all'accessibilità: nessuna affermazione senza prova.

Struttura del sito

Cosa è stato consegnato.

  • Home — creare un segreto, tre passaggi, mini-confronto
  • Funzionalità — «Disponibile» o «Previsto», funzione per funzione
  • Sicurezza — primitive, minacce, limiti; formato v1 e vettori di test
  • Cosa vede il server — la richiesta reale, mostrata in diretta
  • Richiedi un segreto — link di deposito cifrato per il solo richiedente
  • Confronti, casi d'uso, FAQ, prezzi, blog, strumenti
  • Stato del servizio, trasparenza, novità, roadmap
  • Note legali, condizioni d'uso, privacy, accessibilità, segnalazione
Metodo

Lo svolgimento del progetto.

  1. Fondamenta

    Monorepo, integrazione continua con analisi statica, modulo crittografico e formato v1 con i suoi vettori di test, design token, decisioni di architettura e modello delle minacce.

  2. Server e applicazione

    Database Postgres, rivelazione atomica, codice PIN a cinque tentativi, link di monitoraggio, eliminazione programmata, policy di sicurezza con nonce; schermate di creazione, rivelazione e monitoraggio.

  3. Sito pubblico

    Funzionalità, sicurezza, confronti datati, FAQ, casi d'uso, strumenti, pagine legali, «Cosa vede il server», stato del servizio e trasparenza.

  4. Messa online

    Hosting reale dichiarato (Parigi per l'applicazione, Francoforte per il database), sette lingue, budget di prestazioni controllato a ogni modifica, layout allineato a kayzen-lyon.com.

  5. Altre piattaforme

    Estensione, desktop, mobile e riga di comando sviluppati sullo stesso nucleo; pubblicazione sugli store in attesa. Audit esterno previsto prima della versione 1.0.

Domande

Cosa ci chiedono spesso.

No, e dipende dall'architettura. Il segreto è cifrato nel browser con una chiave che resta nel link, dopo il segno #, la parte dell'indirizzo che i browser non inviano mai ai server. Il server riceve solo un blocco cifrato e alcune date; una copia completa del database non permette di leggere alcun segreto senza il link.

Non ancora. Non è stato realizzato alcun audit di sicurezza esterno; è previsto prima della versione 1.0 e il relativo rapporto sarà pubblicato. Nel frattempo, il formato crittografico e i suoi vettori di test sono pubblici, il codice è controllato da test automatizzati e analisi statica, e il sito stesso lo scrive nelle sue pagine Sicurezza e FAQ.

Non ancora. Sono sviluppate sullo stesso nucleo crittografico dell'app web, ma nessuna è pubblicata: la pagina Download le mostra come «In arrivo». Oggi tutto avviene nel browser, senza installazione. Il software è gratuito ma proprietario; il suo codice non è pubblico.

Lo stesso livello di rigore, per il tuo sito.

Audit gratuito del tuo sito attuale, preventivo entro 24 ore e un ragionamento scritto, come quello che hai appena letto. Pagamento in tre rate senza interessi; agevolazioni locali verificate prima della firma.

Condividi