SU
StrumentiUtili.it
Micro-strumenti gratuiti 100% client-side
← Torna a IA Locale

Generatore di Password Sicure

Crea password robuste utilizzando algoritmi crittografici nativi del tuo browser. Nessuna password viene generata o inviata a server remoti. 100% Privacy.

Generando...
16 caratteri

Consigliato: minimo 16 caratteri per la massima sicurezza.

Affidabilità di questo strumento

📅 Parametri di entropia e raccomandazioni NIST verificati a

👨‍💻 Chi lo ha realizzato

Sviluppato e mantenuto da ingegneri software indipendenti. Motore di calcolo basato esclusivamente sulle normative ufficiali vigenti. (Zero-Backend: nessun dato viene inviato a server esterni).

🔒 Privacy Zero-Backend

Le password sono generate nel browser con il generatore crittografico del sistema operativo e non vengono inviate a server né salvate: nemmeno le impostazioni scelte restano memorizzate. Il testo copiato resta negli appunti del dispositivo finché non lo sostituisci (GDPR, artt. 5 e 32).

📚 Fonti tecniche e normative

NIST SP 800-63B rev. 4 (Digital Identity Guidelines, 2025), W3C Web Cryptography API (Crypto.getRandomValues), MITRE CWE-330 e CWE-338, ISO/IEC 27001:2022 controllo 5.17, Regolamento UE 2016/679 art. 32, Misure minime di sicurezza ICT per le PA (circolare AgID 2/2017).

Compendio Tecnico-Giuridico sulla Sicurezza delle Credenziali e Generazione Crittografica

La generazione programmata di artefatti per la sicurezza informatica, quali password ad alta entropia, chiavi asimmetriche o token di autenticazione, deve fondarsi su un paradigma assoluto di non-intercettabilità. L'utilizzo di generatori di password ospitati su server remoti di terze parti o piattaforme cloud SaaS espone l'utente a rischi sistemici irrimediabili: se le credenziali vengono prodotte sul server di un provider e trasmesse via rete HTTP/TCP, l'intero canale di comunicazione e il logging sui server intermedi rappresentano vulnerabilità esposte ad attacchi Man-in-the-Middle (MitM), decifrazione TLS e data leak. Questo applicativo risolve la problematica implementando l'architettura 100% Client-Side (Zero-Backend): la generazione avviene atomicamente e in via esclusiva nella sandbox del browser dell'utente mediante la Web Crypto API nativa, garantendo un isolamento ergetico e la totale conformità con la normativa europea sul trattamento dei dati riservati.

🛡️ 1. Inquadramento Normativo: GDPR (Art. 25 e 32), NIST SP 800-63B e ISO/IEC 27001

Sicurezza del Trattamento (Art. 32 GDPR) e Data Protection by Design (Art. 25)

L'Articolo 32 del Regolamento Generale sulla Protezione dei Dati (GDPR - Reg. UE 2016/679) impone al Titolare e al Responsabile del Trattamento l'adozione di misure tecniche e organizzative adeguate per garantire un livello di sicurezza commisurato al rischio, comprese la cifratura e la pseudonimizzazione dei dati sensibili. Le credenziali di accesso (username e password) costituiscono la prima linea di difesa delle banche dati sanitarie, giudiziarie e finanziarie. L'Articolo 25 del GDPR codifica il principio della Data Protection by Design e by Default, prescrivendo che le garanzie per la tutela dei dati debbano essere integrate nell'architettura del software fin dalla fase di progettazione concettuale.

Generare credenziali tramite un applicativo 100% Client-Side incarna in modo matematico l'Articolo 25: applicando l'isolamento della sandbox locale ed eliminando fisicamente qualsiasi canale di trasmissione verso l'esterno (Zero-Upload), il rischio di data breach in transito o a riposo viene azzerato.

Esonero dagli Oneri dell'Articolo 28 GDPR per i Responsabili del Trattamento

Se un professionista (avvocato, medico, consulente finanziario, sysadmin) utilizza un servizio cloud per produrre password destinate a server aziendali o cartelle cliniche, il fornitore del cloud agisce giuridicamente come Data Processor (Responsabile del Trattamento ex Articolo 28 GDPR). Questo impone la stipula di complessi Data Processing Agreements (DPA), l'esecuzione di verifiche di audit e l'effettuazione di Valutazioni d'Impatto sulla Protezione dei Dati (DPIA) ex Articolo 35. Nel modello Zero-Backend, il fornitore web mette a disposizione esclusivamente un codice eseguibile locale, senza trattare né memorizzare alcun dato personale sui propri server. La qualifica di Data Processor decade in capo al fornitore, esonerando il professionista da qualunque adempimento burocratico o responsabilità di audit esterno.

Linee Guida NIST SP 800-63B e Standard ISO/IEC 27001

National Institute of Standards and Technology (NIST), attraverso la pubblicazione speciale NIST SP 800-63B (Digital Identity Guidelines), ha rivoluzionato i criteri di gestione delle credenziali d'accesso:

  • Privilegiare la Lunghezza all'Inutile Complessità: Il factor determinante della resistenza contro gli attacchi offline è la lunghezza totale della stringa. La revisione 4 del 2025 richiede almeno 15 caratteri per le password usate come unico fattore di autenticazione e 8 quando fanno parte di un'autenticazione a più fattori, e vieta di imporre regole di composizione come «almeno un simbolo».
  • Eliminazione delle Scadenze Periodiche Forzate: Il NIST sconsiglia la rotazione forzata mensile o trimestrale delle password se non in presenza di comprovate compromissioni, poiché spinge gli utenti a creare schemi alfabetici prevedibili.
  • Supporto all'Intero Insieme di Caratteri ASCII: È obbligatorio consentire l'uso combinato di maiuscole, minuscole, cifre numeriche e tutti i simboli speciali stampabili ($N=94$).
🧮 2. Meccanica Computazionale, Entropia di Shannon e Formule Matematiche

A) Formula dell'Entropia Crittografica di Shannon ($E$)

La robustezza matematica di una password contro attacchi di forza bruta (Brute-Force Attack) si misura in bit di entropia dell'informazione $E$. La formula generale dell'entropia teorica, assumendo una distribuzione perfettamente uniforme dei caratteri estratti da un insieme di dimensione $N$ per una lunghezza $L$, è espressa come:

$$E = L \times \log_2(N) = L \times \frac{\ln(N)}{\ln(2)}$$

Dove:
- $L$: Lunghezza totale della password (numero di caratteri scelti).
- $N$: Dimensione del pool di caratteri selezionati dall'utente.

B) Dimensionamento del Pool di Caratteri ($N$)

A seconda dei moduli attivati nel generatore, l'ampiezza dell'insieme $N$ varia esattamente come segue:

  • Minuscole (a-z): $N = 26$
  • Maiuscole + Minuscole (A-Z, a-z): $N = 52$
  • Alfanumerico (A-Z, a-z, 0-9): $N = 62$
  • Set Completo del generatore (+ 29 simboli speciali): $N = 91$
  • Set Completo con Esclusione Caratteri Ambigui (senza i, l, 1, L, o, 0, O): $N = 84$

C) Spazio delle Combinazioni ($S$) e Tempo di Decrittazione ($T$)

Lo spazio totale delle possibili combinazioni $S$ equivale a $S = N^L = 2^E$. Il tempo stimato $T$ necessario per forzare la password mediante attacco dizionario o forza bruta offline alla velocità di calcolo $R$ (tentativi al secondo - Hash/sec) è dato da:

$$T = \frac{2^{E-1}}{R}$$

D) Differenza tra PRNG (`Math.random()`) e CSPRNG (`crypto.getRandomValues()`)

I generatori di numeri pseudo-casuali tradizionali forniti nei linguaggi di programmazione, come la funzione Math.random() in JavaScript, impiegano algoritmi deterministici basati su equazioni ricorsive (nel motore V8 di Chrome l'algoritmo xorshift128+). Un attaccante che riesca ad osservare un numero limitato di output successivi prodotti da Math.random() può ricostruire lo stato interno del generatore e prevedere con matematica certezza tutte le password future prodotte dalla sessione.

Una suite professionale richiede obbligatoriamente l'impiego di un CSPRNG (Cryptographically Secure Pseudo-Random Number Generator). La funzione nativa window.crypto.getRandomValues() dell'interfaccia Crypto della Web Cryptography API interroga direttamente il pool di entropia hardware del kernel del sistema operativo sottostante (es. /dev/urandom su Unix/Linux/macOS o BCryptGenRandom su Windows). Questo genera byte di entropia provata e impredicibile.

📊 3. Casuistica Reale: Confronto dell'Entropia e Scenari Operativi

Caso 1: Calcolo Comparativo della Resistenza agli Attacchi GPU (Cluster Hashcat)

Si consideri un attaccante malintenzionato in possesso di un cluster di schede video moderne (GPU rig) capace di elaborare 100 miliardi di tentativi al secondo ($R = 10^{11}\ \text{Hash/sec}$) su algoritmi veloci come MD5 o NTLM:

Profilo Password Set ($N$) e Lunghezza ($L$) Entropia ($E$) Combinazioni ($2^E$) Tempo di Cracking ($10^{11}$ H/s)
Vulnerabile Alfanumerico ($N=62$), $L=8$ 47,63 bit $2,18 \times 10^{14}$ ~36 Minuti
Medio Completo ($N=91$), $L=12$ 78,09 bit $3,22 \times 10^{23}$ ~102.000 Anni
Alta Sicurezza Completo ($N=91$), $L=16$ 104,12 bit $2,21 \times 10^{31}$ ~7.000 Miliardi di Anni
Vault Aziendale Senza Ambigui ($N=84$), $L=24$ 153,42 bit $1,52 \times 10^{46}$ ~$4,8 \times 10^{27}$ Anni

Caso 2: Generazione Batch per Amministratore di Sistema in Ospedale (ISO 27001)

Un IT Manager di una struttura sanitaria deve configurare 100 nuovi server di database per le cartelle cliniche e account di servizio per le workstation infermieristiche. Se utilizzasse un generatore cloud SaaS online, i firewall aziendali registrerebbero il traffico in chiaro o le connessioni TLS decifrate. Impiegando questa PWA 100% Client-Side, le password a 24 caratteri vengono generate nella RAM volatile del browser desktop e trasferite direttamente nel gestore credenziali interno, sigillando il perimetro di sicurezza senza violare le policy ISO 27001.

4. FAQ Tecniche, Cold Boot Attacks e Mitigazione della Memoria

👥 Casi Pratici ed Esempi Reali

I casi seguenti usano l'insieme di caratteri reale del generatore e la formula E = L × log2(N). I tempi indicano quanto serve per provare tutte le combinazioni a 100 miliardi di tentativi al secondo, velocità raggiungibile con più GPU su hash veloci come NTLM.

Caso 1: password del Wi-Fi di casa da dettare agli ospiti

  • Impostazioni: 20 caratteri, maiuscole, minuscole e numeri, caratteri ambigui esclusi
  • Insieme: 24 + 23 + 8 = 55 simboli
  • Entropia: 20 × log2(55) = 115,6 bit

Senza simboli e senza «0», «O», «l» e «1» la password si legge e si digita sul telefono senza errori, e con 20 caratteri resta più robusta di una password di 16 caratteri con tutti i simboli (104,1 bit).

Caso 2: password principale del gestore di password

  • Impostazioni: 24 caratteri, tutti i gruppi, ambigui esclusi (84 simboli)
  • Entropia: 153,4 bit
  • Tempo per provare tutte le combinazioni: circa 4,8 × 10^27 anni

È l'unica password da ricordare o custodire su carta in luogo sicuro. Il gestore la protegge con una funzione di derivazione lenta, che riduce ancora di molti ordini di grandezza la velocità di un attacco.

Caso 3: la vecchia password di 8 caratteri

  • 8 caratteri alfanumerici: 62^8 = 2,18 × 10^14 combinazioni, 47,6 bit
  • Tempo per provarle tutte: circa 36 minuti
  • Con 16 caratteri alfanumerici: 95,3 bit, circa 1,5 × 10^10 anni

Raddoppiare la lunghezza aggiunge 47,6 bit, mentre aggiungere i simboli a 8 caratteri ne aggiunge solo 4,4. Per questo le linee guida attuali privilegiano la lunghezza rispetto alla complessità.

In che modo il codice protegge la memoria da attacchi Cold Boot e profilazione RAM?

Non in modo garantito, e nessun generatore scritto in JavaScript può farlo: le stringhe sono immutabili e il motore decide quando liberare la memoria, quindi la password resta in RAM finché la pagina è aperta. La misura efficace è un'altra: generare la password, salvarla subito nel gestore di password e chiudere la scheda, svuotando poi gli appunti se il dispositivo è condiviso.

Perché l'uso di `Math.random()` fallisce sistematicamente gli audit di sicurezza penetrativa?

Nei penetration test informatici (Vulnerability Assessment), l'uso di Math.random() per scopi di sicurezza viene classificato come vulnerabilità critica (CWE-330: Use of Insufficiently Random Values). Essendo un algoritmo deterministico, un attaccante esperto può catturare un numero limitato di stringhe prodotte ed eseguire il reverse-engineering del seme (seed) interno del motore di calcolo, arrivando a prevedere con esattezza le credenziali future generate per altri utenti.

Le password generate vengono inviate o memorizzate su server remoti?

Assolutamente no. Nessuna stringa di testo viaggia attraverso la rete. Tutto il processo di creazione avviene esclusivamente nella memoria temporanea del tuo browser tramite la Web Crypto API. Se disconnetti il dispositivo dalla rete internet, il generatore continuerà a funzionare con la medesima efficienza.

Come incide l'esclusione dei caratteri ambigui sull'entropia complessiva?

Escludere i 7 caratteri ambigui (i, l, 1, L, o, 0, O) riduce l'insieme completo $N$ da 91 a 84 simboli. Questo produce una trascurabile contrazione dell'entropia (per una password di 16 caratteri, si passa da 104,12 bit a 102,28 bit), ma elimina totalmente il rischio di errore umano durante la trascrizione visiva, mantenendo una resistenza d'acciaio contro qualsiasi attacco informatico noto.

Domande Frequenti (FAQ)

Ogni password generata contiene sempre un numero e un simbolo?

Sì, se i gruppi sono selezionati: il generatore scarta e ricrea le password in cui manca almeno un carattere di un gruppo attivo, così sono accettate anche dai siti che lo richiedono.

Devo cambiare la password ogni tre mesi?

No, se non ci sono segnali di compromissione. NIST sconsiglia i cambi periodici obbligatori perché portano a password prevedibili; va cambiata subito in caso di violazione del servizio o di accesso sospetto.

Posso usare la stessa password su più siti?

No. Una violazione di un sito espone tutti gli account con la stessa password: usa una password diversa per ogni servizio e conservale in un gestore di password.

Funziona senza connessione a internet?

Sì. Una volta caricata la pagina, la generazione usa solo le funzioni crittografiche del browser.