La tua password non viene mai archiviata
Password & Derivazione chiave
Quando crei il tuo account, la tua password non viene mai archiviata — nemmeno in forma cifrata. Viene invece utilizzata per derivare una chiave di cifratura unica per i tuoi dati. Ciò significa: anche se l'intero nostro database venisse rubato, la tua password non potrebbe essere ricostruita da esso. Al login lo stesso processo viene ripetuto per derivare la tua chiave per decifrare i tuoi dati.
Nerd Info
La tua password viene elaborata con Argon2id — il vincitore della Password Hashing Competition (PHC) e la raccomandazione attuale di OWASP. Argon2id è una funzione memory-hard che richiede una quantità significativa di RAM per il calcolo. Ciò rende gli attacchi brute-force su GPU o ASIC estremamente costosi. La chiave derivata (KEK — Key Encryption Key) cifra il tuo DEK personale (Data Encryption Key), che a sua volta cifra tutti i dati sensibili. La password stessa non viene mai persistita.
Login sicuro & Protezione sessione
Autenticazione & Sessioni
Il login è protetto contro gli attacchi automatizzati. Ogni invio di modulo viene validato per garantire che sia avvenuto all'interno dell'applicazione — siti di terze parti non possono inviare moduli silenziosi a tuo nome. Dopo un login riuscito, la tua sessione viene stabilita in modo sicuro e associata al tuo browser.
Nerd Info
Tutte le richieste che cambiano stato sono protette da token CSRF (pattern Synchronizer Token). I cookie di sessione vengono impostati con i flag HttpOnly, Secure e SameSite=Strict, il che impedisce l'accesso JavaScript e l'invio cross-site. Gli ID di sessione vengono rigenerati al login per prevenire gli attacchi di session fixation. Le sessioni vengono archiviate lato server; il client detiene solo un token di sessione opaco.
Cos'è AES?
Standard di cifratura
AES — l'Advanced Encryption Standard — è l'algoritmo di cifratura simmetrica più diffuso al mondo. Viene utilizzato da banche, ospedali, governi ed eserciti di tutto il mondo per proteggere i dati sensibili. Pensaci come a una serratura combinata estremamente complessa: con la chiave giusta i dati si aprono immediatamente. Senza di essa, violarla richiederebbe più tempo dell'età dell'universo — anche combinando tutta la potenza di calcolo della Terra.
Nerd Info
AES è un algoritmo di cifratura a blocchi simmetrico, standardizzato dal NIST nel 2001 (FIPS 197). Opera su blocchi a 128 bit e supporta dimensioni di chiave di 128, 192 e 256 bit. MyGuns utilizza AES in modalità GCM (Galois/Counter Mode), che fornisce sia riservatezza che autenticità — qualsiasi manipolazione dei dati cifrati è rilevabile. Ogni operazione di cifratura utilizza un IV (Initialization Vector) casuale a 96 bit per garantire che testi in chiaro identici producano testi cifrati diversi.
AES-128, AES-192 e AES-256
Livelli di cifratura
Tutte e tre le varianti AES sono considerate sicure per scopi pratici. La differenza sta nella lunghezza della chiave e nel numero di cicli di elaborazione. Una chiave più lunga significa più combinazioni che un attaccante dovrebbe provare, e più cicli significano più trasformazioni — rendendo la cifratura più resistente agli attacchi crittanalitici. Anche AES-128 richiederebbe miliardi di anni per essere violato con la tecnologia attuale o prevedibile.
| Livello |
Lunghezza chiave |
Cicli |
Sicurezza |
Disponibile da |
| AES-128-GCM |
128 bit |
10 |
Molto alto |
Free & superiore |
| AES-192-GCM |
192 bit |
12 |
Estremo |
Plus & superiore |
| AES-256-GCM ⭐ |
256 bit |
14 |
Militare |
Pro |
Nerd Info
AES-128 usa 10 cicli di sostituzione-permutazione, AES-192 usa 12 e AES-256 usa 14. La complessità brute-force teorica è rispettivamente 2^128, 2^192 e 2^256 operazioni. Per confronto: 2^128 ≈ 3,4 × 10^38 — ben oltre qualsiasi capacità computazionale immaginabile con i computer classici. AES-256 offre inoltre un margine di sicurezza maggiore contro potenziali futuri progressi nella crittanalisi ed è prescritto dalla NSA Suite B per il livello di classificazione TOP SECRET.
GCM — Cifratura con controllo di integrità integrato
Cifratura autenticata
MyGuns non solo cifra i tuoi dati — verifica anche se qualcuno li ha manipolati. Anche se un solo bit dei tuoi dati archiviati venisse modificato da un attaccante, la decifratura fallirebbe immediatamente e l'applicazione rifiuterebbe i dati. Questa protezione è integrata in ogni singolo campo che archiviamo.
Nerd Info
GCM (Galois/Counter Mode) combina la cifratura AES in Counter Mode con un tag di autenticazione GHASH (MAC a 128 bit). È quindi uno schema AEAD (Authenticated Encryption with Associated Data). Il tag di autenticazione viene calcolato su testo cifrato e dati associati opzionali. Qualsiasi modifica — anche un singolo bit flip — produce una discrepanza del tag, rendendo la manipolazione rilevabile. I campi MyGuns sono così protetti contro l'intercettazione passiva e la manipolazione attiva del testo cifrato.
SSL/TLS — Cifrato durante la trasmissione
Cifratura del trasporto
Ogni byte trasmesso tra il tuo browser e i nostri server è cifrato. Ciò significa: anche se qualcuno monitorasse la tua connessione di rete — ad esempio in una WiFi pubblica — vedrebbe solo dati incomprensibili. Il simbolo del lucchetto nella barra degli indirizzi del tuo browser conferma che questa protezione è attiva.
Nerd Info
La connessione è protetta con TLS 1.2 o TLS 1.3 (Transport Layer Security). TLS usa la crittografia asimmetrica (RSA o ECDSA) per l'handshake iniziale e lo scambio di chiavi, poi passa all'AES simmetrico per la trasmissione dati effettiva. TLS 1.3 offre inoltre Forward Secrecy tramite Diffie-Hellman efimero (ECDHE), il che significa: anche se la chiave privata del server venisse compromessa in seguito, le sessioni passate non possono essere decifrate.
Condivisione sessione & Accesso accompagnatori
Cifratura multi-utente
Quando inviti un accompagnatore a una sessione di tiro, può registrare i propri colpi e visualizzare le informazioni condivise della sessione — ma non ottiene mai accesso al tuo inventario personale di armi, ai tuoi dati di munizioni o alle tue note private. I dati personali di ogni utente rimangono protetti dalla propria chiave. I dati di sessione condivisi sono accessibili a tutti i partecipanti tramite una chiave di sessione separata.
Nerd Info
Ogni sessione di tiro riceve la propria chiave di sessione AES alla creazione. Quando un accompagnatore si unisce, la chiave di sessione viene cifrata con il suo DEK personale e archiviata come record separato — ogni partecipante detiene la propria copia cifrata della chiave di sessione. Le anteprime delle armi visibili durante una sessione condivisa vengono ricifrate con la chiave di sessione, così tutti i partecipanti possono visualizzarle — senza rivelare il DEK del proprietario o l'immagine originale. Concettualmente questo è simile all'Envelope Encryption come usata nei sistemi Cloud KMS.
Chiave di recupero
Accesso di emergenza
Se dimentichi la tua password, la tua chiave di recupero è l'unico modo per riacquistare l'accesso ai tuoi dati. Viene generata una volta sola durante la configurazione e dovrebbe essere conservata in un luogo sicuro — ad esempio in un gestore di password o stampata e conservata sotto chiave. Senza di essa e senza la tua password, i tuoi dati non possono essere recuperati — né da te, né da noi.
Nerd Info
La chiave di recupero è un token casuale crittograficamente sicuro che — come la tua password — può essere usato per derivare il tuo KEK (Key Encryption Key) e quindi decifrare il tuo DEK. Viene archiviata come versione separata cifrata del tuo DEK, protetta da una chiave derivata con Argon2id dal token di recupero. Ciò significa: la chiave di recupero offre lo stesso accesso matematico della tua password — ma è un segreto separato, così compromettere uno non mette a rischio l'altro.