nofuture.go - Sicurezza Memguard Post-Quantum

nofuture.go è una web app crittografica post-quantum da usare in un tab del browser, mentre in un altro hai una chat. La comunicazione è cifrata localmente, e le sessioni vengono sincronizzate usando un Session ID. Le chiavi sono protette in RAM con memguard e vengono eliminate a fine sessione.

🔑 Panoramica operativa in 5 fasi

  1. Start Session: Genera chiavi e Session ID
  2. Share Session ID: Scambia l’ID con il tuo contatto
  3. Pair Sessions: Clic su “Pair” per sincronizzare
  4. Encrypt/Decrypt: Usa la sessione per messaggi sicuri
  5. End Session: Tutto viene cancellato

📌 Cos'è il Session ID?

Il Session ID rappresenta una sessione univoca sicura tra due dispositivi. Non è una chiave pubblica, ma una combinazione sicura di identificatori derivati da elementi crittografici.


hash := sha256.New()
hash.Write(pubKey.Bytes())
hash.Write(nonce[:])
sessionID := hex.EncodeToString(hash.Sum(nil))
    

🤝 Pairing: Associazione automatica delle sessioni

Dopo lo scambio dei session-ID, cliccando su “Pair” l'app avvia un processo automatico per derivare una chiave condivisa sicura.

Nota: Nessuna chiave pubblica viene scambiata manualmente.


đź§  Protezione delle chiavi in RAM

nofuture.go protegge tutte le chiavi in RAM usando memguard, che impedisce accessi anche da parte di root o strumenti di debug.

MinacciaContromisura
gdb / lsofMemoria fuori heap, cifrata
Accesso rootRAM bloccata con mlock
KeyloggerLe chiavi non sono mai digitate
Cold bootMemoria giĂ  purgata

🖱️ Tastiera virtuale anti-keylogger

Per proteggere la digitazione del testo, l’app può usare una tastiera virtuale con disposizione dei tasti casuale a ogni apertura.