Discussione Password vs Passphrase: qual è la miglior protezione per un account?

Stato
Discussione chiusa ad ulteriori risposte.

0xbro

Super Moderatore
24 Febbraio 2017
4,464
179
3,755
1,825
Ultima modifica:
In questo articolo analizzeremo le differenze tra Passwords e Passphrases, quale sia la scelta migliore per la protezione degli account e i punti di forza e debolezza di ognuna di loro.

Password vs Passphrase: che la battaglia abbia inizio!​

Tempo di lettura stimato: 3 min​

ProtonMail-password-vs-passphrase.jpg

Il dibattito tra cosa sia meglio utilizzare tra Password e Passphrase è uno dei trend più accessi sul web. Due fazioni che si scontrano a vicenda per stabilire quale delle due sia la più efficiente e sicura. Ma facciamo un passo indietro: qual è la differenza tra le due?

La risposta è semplice: il numero di elementi che compongono la nostra chiave di sicurezza.

In linea generale le password sono composte da un ristretto numero di caratteri (in genere tra gli 8 e i 16), compsoto da lettere, numeri e simboli. Il problema è che le password, da sole, non riescono a mantere un buon rapporto tra sicurezza e facilità di memorizzazione, dando così vita a due scenari opposti ma entrambi problematici:​
  • la creazione di password complesse ma difficili da ricordare (per esempio nn7zgc92xZcM*rDN5vZ1YeucG5J,*+mZ)
  • la crezione di password facili da ricordare ma facilmente indovinabili (per esempio Pazz41nter o Juventus1996)
Per quanto ci provino, gli esseri umani quando creano una password finiscono per usare uno dei pochi e soliti schemi prevedibili. Le basiamo su cose che possiamo ricordare, come nomi, luoghi, date o parole comuni. Per renderle poi un po' più complicate, aggiungiamo una lettera maiuscola, dei numeri o un simbolo.
vdJ4YgE.png

Se la tua password assomiglia a uno qualsiasi di questi esempi, sappi che è facilmente e rapidamente craccabile in caso di data leak!

Ecco il motivo per cui è fondamentale l'utilizzo di una Passphrase al posto di una password: sebbene più lunga (in genere una passphrase è superiore ai 20 caratteri), questa è più facile da ricordare, poichè utilizza frasi o sequenze di parole che sono sia difficili da craccare (indovinare 20 carattere è estremamente complicato e dispendioso), sia di facile memorizzazione per una persona!
passwords_blog_protonmail.png

Per ottenere passphrase efficaci si possono utilizzare diversi generatori randomici, come useapassphrase.com, oppure unioni di elementi facilmente memorizzabili, come una serie di oggetti in camera propria o l'unione dei titoli di diverse canzoni, ecc. L'importante è che queste frasi (o sequenze di parole) non siano prese di pari formato da qualcosa di già esistente!

Facciamo un esempio:​


la passphase Microfono Gelato Cappello Tetto è un'ottima combinazione poichè è impossibile da indovinare (31 caratteri contenenti spazi e lettere maiuscole e minuscole) e in più e facilmente ricordabile: Il microfono e il gelato hanno la stessa forma, mentre il tetto e il cappello sono entrambi elementi che fanno da "cappello" a cose diverse.
Differentemente Quel giorno più non vi leggemmo avante non è una passphrase sicura, perchè è facilmente ricavabile dai versi della divina commedia.

Le regole generali da seguire quando si crea una password sono principalmente tre (come suggerito anche sul sito di ProtonMail):​
  1. Quattro parole sono sufficienti, ma cinque sono meglio.​
  2. Cerca di evitare le parole più comuni e non utilizzare citazioni o detti. Usare parole il più possibile casuali.​
  3. Usa una passphrase differente e unica per ogni account che possiedi. Se una password diventa parte di un leak, gli altri account almeno rimangono sicuri.​

Per decenni il consiglio degli esperti è stato quello di cambiare spesso le password e usare numeri, maiuscole e caratteri speciali. Ma noi esseri umani siamo pessimi nel creare casualità, e siamo altrettanto pessimi nel ricordare le cose. Inevitabilmente la gente ha iniziato a usare parole semplici, nomi, date di nascita e detti, scambiando le lettere con caratteri speciali, in modo da avere password "complesse" ma semplici da memorizzare. Nel tentativo di rendere più sicuri i sistemi, il consiglio sulle password in realtà ha avuto l'effetto contrario, rendendo i sistemi meno sicuri.

Conclusioni​

Sia password che passphrase, se usate propriamente, possono essere sicure. Per chi già utilizza un gestore di password, la differenza tra password e passphrase non è significativa. Tuttavia se la necessità è quella di impostare una password da ricordare a memoria, per ragioni di usabilità e al contempo sicurezza, è consigliabile l'utilizzo di passphrase rispetto a quello delle password.

Altre discussioni interessanti possono essere trovate ai link qua sotto:

Made with ❤ for Inforge

 
Ultima modifica:
Il dibattito tra cosa sia meglio utilizzare tra Password e Passphrase è uno dei trend più accessi sul web. Due fazioni che si scontrano a vicenda per stabilire quale delle due sia la più efficiente e sicura.
Perfettamente d'accordo. Tu concludi consigliando le passphrase, ma io sono uno di quelli non è particolarmente convinto. For fun and profict, ho fatto un esperimento. Ho preso WordNet e ho filtrato tutte le parole in lingua italiana e formate da 4 a 9 caratteri
Python:
words = [ w for w in wordnet.all_lemma_names(lang='ita') if w.isascii() and 4 <= len(w) <= 9 ]
Ho verificato che la tua passphrase fosse effettivamente ricavabile a partire dal vocabolario costruito
Python:
all(w in words for w in "microfono gelato cappello tetto".split())  # True
Infine, ho stimato quante passphrases (in media) dovremmo testare prima di ricavare la tua
Python:
len(words)**4 // 2  # 56703379729079200
Che, giusto per capirci, è paragonabile alla sicurezza di una password random di 8-9 caratteri composta da maiuscole, minuscole, numeri e simboli (spiegazione).

Teniamo in considerazione che:
  • ho considerato MicrofonoGelatoCappelloTetto (28 caratteri), quindi un pattern ben definito;
  • gli spazi, che tu hai considerato, non sono un carattere lecito nella maggior parte dei siti;
  • password di lunghezza superiore a 20 caratteri sono vietate in alcuni siti (anche bancari);
  • ho dato per assunto che tu sei italiano e la passphrase la generi con parole italiane.
Chiaramente possiamo renderla più complicata, però:
  • scrivere in l33t equivale a utilizzare una lingua diversa, non aggiunge un granché in sicurezza;
  • mischiare lingue diverse non è particolarmente user friendly se fatto bene; ma soprattutto, se fatto male ti porta a rischiare di generare passphrases insicure utilizzando parole molto comuni (e.g., DreiFittaMerciGirl è insicura anche se mischia 4 lingue diverse);
  • aggiungere numeri e simboli o inserire lettere maiuscole in posizioni imprevedibili rende la passphrase difficilmente memorizzabile, soprattutto se lo devi fare con tante passphrase diverse (perdiamo parecchia convenienza, che è uno dei vantaggi principali delle passphrase).
Inoltre, come hai detto tu stesso con l'esempio sulla divina commedia e rimarcando quanto scritto al secondo punto: se non si sta attenti, non è difficile ritrovarsi con una passphrase intrinsecamente insicura. I miei calcoli assumono che le parole siano pescate randomicamente e non è una cosa che possiamo dare per scontato. Giusto per farvi capire, EnciclicaGiornataCinigliaRamoruto è una passphrase generata randomicamente a partire dal vocabolario che vi ho descritto in precedenza (lingua italiana, da 4 a 9 caratteri, etc...). Voglio vedervi a disegnare una vignetta in stile xkcd che trova una qualche correlazione bizzarra con queste parole :asd:

Detto questo, io non sono particolarmente contrario alle passphrase; però riconosco che quando si fanno discussioni password vs. passphrase molta gente tende a dimenticarsi dettagli importanti. La lunghezza non è tutto e, soprattutto, la randomicità non è gratis: se la passphrase la genero aprendo un libro e leggendo quattro parole a caso in pagine diverse, probabilmente 3 parole su 4 saranno tra le 500-1000 parole più usate in una data lingua (i.e., crackabile in un pugno di secondi).
 

Password vs Passphrase: che la battaglia abbia inizio!​

Tempo di lettura stimato: 3 min​

ProtonMail-password-vs-passphrase.jpg

Il dibattito tra cosa sia meglio utilizzare tra Password e Passphrase è uno dei trend più accessi sul web. Due fazioni che si scontrano a vicenda per stabilire quale delle due sia la più efficiente e sicura. Ma facciamo un passo indietro: qual è la differenza tra le due?

La risposta è semplice: il numero di elementi che compongono la nostra chiave di sicurezza.

In linea generale le password sono composte da un ristretto numero di caratteri (in genere tra gli 8 e i 16), compsoto da lettere, numeri e simboli. Il problema è che le password, da sole, non riescono a mantere un buon rapporto tra sicurezza e facilità di memorizzazione, dando così vita a due scenari opposti ma entrambi problematici:​
  • la creazione di password complesse ma difficili da ricordare (per esempio nn7zgc92xZcM*rDN5vZ1YeucG5J,*+mZ)
  • la crezione di password facili da ricordare ma facilmente indovinabili (per esempio Pazz41nter o Juventus1996)
Per quanto ci provino, gli esseri umani quando creano una password finiscono per usare uno dei pochi e soliti schemi prevedibili. Le basiamo su cose che possiamo ricordare, come nomi, luoghi, date o parole comuni. Per renderle poi un po' più complicate, aggiungiamo una lettera maiuscola, dei numeri o un simbolo.
vdJ4YgE.png

Se la tua password assomiglia a uno qualsiasi di questi esempi, sappi che è facilmente e rapidamente craccabile in caso di data leak!

Ecco il motivo per cui è fondamentale l'utilizzo di una Passphrase al posto di una password: sebbene più lunga (in genere una passphrase è superiore ai 20 caratteri), questa è più facile da ricordare, poichè utilizza frasi o sequenze di parole che sono sia difficili da craccare (indovinare 20 carattere è estremamente complicato e dispendioso), sia di facile memorizzazione per una persona!
passwords_blog_protonmail.png

Per ottenere passphrase efficaci si possono utilizzare diversi generatori randomici, come useapassphrase.com, oppure unioni di elementi facilmente memorizzabili, come una serie di oggetti in camera propria o l'unione dei titoli di diverse canzoni, ecc. L'importante è che queste frasi (o sequenze di parole) non siano prese di pari formato da qualcosa di già esistente!

Facciamo un esempio:​


la passphase Microfono Gelato Cappello Tetto è un'ottima combinazione poichè è impossibile da indovinare (31 caratteri contenenti spazi e lettere maiuscole e minuscole) e in più e facilmente ricordabile: Il microfono e il gelato hanno la stessa forma, mentre il tetto e il cappello sono entrambi elementi che fanno da "cappello" a cose diverse.
Differentemente Quel giorno più non vi leggemmo avante non è una passphrase sicura, perchè è facilmente ricavabile dai versi della divina commedia.

Le regole generali da seguire quando si crea una password sono principalmente tre (come suggerito anche sul sito di ProtonMail):​
  1. Quattro parole sono sufficienti, ma cinque sono meglio.​
  2. Cerca di evitare le parole più comuni e non utilizzare citazioni o detti. Usare parole il più possibile casuali.​
  3. Usa una passphrase differente e unica per ogni account che possiedi. Se una password diventa parte di un leak, gli altri account almeno rimangono sicuri.​

Per decenni il consiglio degli esperti è stato quello di cambiare spesso le password e usare numeri, maiuscole e caratteri speciali. Ma noi esseri umani siamo pessimi nel creare casualità, e siamo altrettanto pessimi nel ricordare le cose. Inevitabilmente la gente ha iniziato a usare parole semplici, nomi, date di nascita e detti, scambiando le lettere con caratteri speciali, in modo da avere password "complesse" ma semplici da memorizzare. Nel tentativo di rendere più sicuri i sistemi, il consiglio sulle password in realtà ha avuto l'effetto contrario, rendendo i sistemi meno sicuri.

Conclusioni​

Sia password che passphrase, se usate propriamente, possono essere sicure. Per chi già utilizza un gestore di password, la differenza tra password e passphrase non è significativa. Tuttavia se la necessità è quella di impostare una password da ricordare a memoria, per ragioni di usabilità e al contempo sicurezza, è consigliabile l'utilizzo di passphrase rispetto a quello delle password.

Altre discussioni interessanti possono essere trovate ai link qua sotto:

Made with ❤ for Inforge

Discussione interessante, complimenti :)
 
Perfettamente d'accordo. Tu concludi consigliando le passphrase, ma io sono uno di quelli non è particolarmente convinto. For fun and profict, ho fatto un esperimento. Ho preso WordNet e ho filtrato tutte le parole in lingua italiana e formate da 4 a 9 caratteri
Python:
words = [ w for w in wordnet.all_lemma_names(lang='ita') if w.isascii() and 4 <= len(w) <= 9 ]
Ho verificato che la tua passphrase fosse effettivamente ricavabile a partire dal vocabolario costruito
Python:
all(w in words for w in "microfono gelato cappello tetto".split())  # True
Infine, ho stimato quante passphrases (in media) dovremmo testare prima di ricavare la tua
Python:
len(words)**4 // 2  # 56703379729079200
Che, giusto per capirci, è paragonabile alla sicurezza di una password random di 8-9 caratteri composta da maiuscole, minuscole, numeri e simboli (spiegazione).

Teniamo in considerazione che:
  • ho considerato MicrofonoGelatoCappelloTetto (28 caratteri), quindi un pattern ben definito;
  • gli spazi, che tu hai considerato, non sono un carattere lecito nella maggior parte dei siti;
  • password di lunghezza superiore a 20 caratteri sono vietate in alcuni siti (anche bancari);
  • ho dato per assunto che tu sei italiano e la passphrase la generi con parole italiane.
Chiaramente possiamo renderla più complicata, però:
  • scrivere in l33t equivale a utilizzare una lingua diversa, non aggiunge un granché in sicurezza;
  • mischiare lingue diverse non è particolarmente user friendly se fatto bene; ma soprattutto, se fatto male ti porta a rischiare di generare passphrases insicure utilizzando parole molto comuni (e.g., DreiFittaMerciGirl è insicura anche se mischia 4 lingue diverse);
  • aggiungere numeri e simboli o inserire lettere maiuscole in posizioni imprevedibili rende la passphrase difficilmente memorizzabile, soprattutto se lo devi fare con tante passphrase diverse (perdiamo parecchia convenienza, che è uno dei vantaggi principali delle passphrase).
Inoltre, come hai detto tu stesso con l'esempio sulla divina commedia e rimarcando quanto scritto al secondo punto: se non si sta attenti, non è difficile ritrovarsi con una passphrase intrinsecamente insicura. I miei calcoli assumono che le parole siano pescate randomicamente e non è una cosa che possiamo dare per scontato. Giusto per farvi capire, EnciclicaGiornataCinigliaRamoruto è una passphrase generata randomicamente a partire dal vocabolario che vi ho descritto in precedenza (lingua italiana, da 4 a 9 caratteri, etc...). Voglio vedervi a disegnare una vignetta in stile xkcd che trova una qualche correlazione bizzarra con queste parole :asd:

Detto questo, io non sono particolarmente contrario alle passphrase; però riconosco che quando si fanno discussioni password vs. passphrase molta gente tende a dimenticarsi dettagli importanti. La lunghezza non è tutto e, soprattutto, la randomicità non è gratis: se la passphrase la genero aprendo un libro e leggendo quattro parole a caso in pagine diverse, probabilmente 3 parole su 4 saranno tra le 500-1000 parole più usate in una data lingua (i.e., crackabile in un pugno di secondi).
Damn, super analisi ed effettivamente è vero, col fatto che molti siti non rendono possibile l'utilizzo di spazi né la possibilità di creare password troppo lunghe, l'efficacia dell'utilizzo di una passphrase cala drasticamente. Sicuramente però restano un buon compromesso considerando tutto ciò che è stato detto e tenendo sempre in considerazione la necessità di doverla ricordare a memoria
 
  • Mi piace
Reazioni: GrincH--
Discussione molto interessante, altrettanto lo è l’analisi posta da @St3ve (come sempre)
Pongo un’altra considerazione che forse potrebbe interessare anche se non voglio troppo andare in OT.
Cosa ne pensate dell’autenticazione a due fattori? Personalmente, per quanto (fortunatamente) non ho avuto spiacevoli situazioni mi fido abbastanza del fatto che vengano generati 6 numeri casuali ogni tot secondi, la stessa analisi di Steve potrebbe essere applicata anche qui? Alla fine 6 numeri diversi sono più di 600.000 diverse combinazioni no?
 
Discussione molto interessante, altrettanto lo è l’analisi posta da @St3ve (come sempre)
Pongo un’altra considerazione che forse potrebbe interessare anche se non voglio troppo andare in OT.
Cosa ne pensate dell’autenticazione a due fattori? Personalmente, per quanto (fortunatamente) non ho avuto spiacevoli situazioni mi fido abbastanza del fatto che vengano generati 6 numeri casuali ogni tot secondi, la stessa analisi di Steve potrebbe essere applicata anche qui? Alla fine 6 numeri diversi sono più di 600.000 diverse combinazioni no?
Io penso sia utile, tant’è che la utilizzo un po’ ovunque
 
Discussione molto interessante, altrettanto lo è l’analisi posta da @St3ve (come sempre)
Pongo un’altra considerazione che forse potrebbe interessare anche se non voglio troppo andare in OT.
Cosa ne pensate dell’autenticazione a due fattori? Personalmente, per quanto (fortunatamente) non ho avuto spiacevoli situazioni mi fido abbastanza del fatto che vengano generati 6 numeri casuali ogni tot secondi, la stessa analisi di Steve potrebbe essere applicata anche qui? Alla fine 6 numeri diversi sono più di 600.000 diverse combinazioni no?
Considera che il brute force sul codice TOTP generato è praticamente impossibile da attuare perché ogni applicazione ha la premura di inserire un limite di tentativi massimo nell'arco di x minuti (a volte il design del sistema te lo impone a un tentativo se opti per inserirlo nel processo di login). Nel caso in cui non venisse inserito, tentare 1 milione di combinazioni per un codice valido solitamente per 2-3 minuti massimo (viene allargato dai 30s per tenere conto di eventuali errori di sync con il time) può comunque essere ostacolato dal firewall o ironicamente da tempi di risposta lenti.

Il 2FA è sicuramente molto più vulnerabile ad attacchi in cui si prende possesso del metodo di autenticazione, per esempio molto criticato è l'autenticazione via SMS perché vulnerabile alla pratica del sim swapping, utilizzato da molte applicazioni comprese bancarie (fun fact, l'account Twitter di Jack Dorsey è stato compromesso in questa maniera). Oltre ovviamente al SE, che può essere o mirato a te con per esempio l'obiettivo di ottenere il cosiddetto "secret key" usato per la generazione del passcode o mirato all'applicazione interessata o mirato in alcuni casi come detto prima all'operatore telefonico con il sim swap, altri attacchi meno comuni ma comunque da tenere in considerazione per chi sviluppa un sistema 2FA sono il replay attack e il timing attack.
 
  • Love
  • Mi piace
Reazioni: GrincH-- e 0xbro
Considera che il brute force sul codice TOTP generato è praticamente impossibile da attuare perché ogni applicazione ha la premura di inserire un limite di tentativi massimo nell'arco di x minuti (a volte il design del sistema te lo impone a un tentativo se opti per inserirlo nel processo di login). Nel caso in cui non venisse inserito, tentare 1 milione di combinazioni per un codice valido solitamente per 2-3 minuti massimo (viene allargato dai 30s per tenere conto di eventuali errori di sync con il time) può comunque essere ostacolato dal firewall o ironicamente da tempi di risposta lenti.

Il 2FA è sicuramente molto più vulnerabile ad attacchi in cui si prende possesso del metodo di autenticazione, per esempio molto criticato è l'autenticazione via SMS perché vulnerabile alla pratica del sim swapping, utilizzato da molte applicazioni comprese bancarie (fun fact, l'account Twitter di Jack Dorsey è stato compromesso in questa maniera). Oltre ovviamente al SE, che può essere o mirato a te con per esempio l'obiettivo di ottenere il cosiddetto "secret key" usato per la generazione del passcode o mirato all'applicazione interessata o mirato in alcuni casi come detto prima all'operatore telefonico con il sim swap, altri attacchi meno comuni ma comunque da tenere in considerazione per chi sviluppa un sistema 2FA sono il replay attack e il timing attack.
Ottima precisazione, stavo leggendo proprio oggi una grandissima problematica sugli SMS per cui è possibile praticamente intercettare ogni SMS facendo una sorta di MinM
 
  • Mi piace
Reazioni: GrincH--
Considera che il brute force sul codice TOTP generato è praticamente impossibile da attuare perché ogni applicazione ha la premura di inserire un limite di tentativi massimo nell'arco di x minuti (a volte il design del sistema te lo impone a un tentativo se opti per inserirlo nel processo di login). Nel caso in cui non venisse inserito, tentare 1 milione di combinazioni per un codice valido solitamente per 2-3 minuti massimo (viene allargato dai 30s per tenere conto di eventuali errori di sync con il time) può comunque essere ostacolato dal firewall o ironicamente da tempi di risposta lenti.

Il 2FA è sicuramente molto più vulnerabile ad attacchi in cui si prende possesso del metodo di autenticazione, per esempio molto criticato è l'autenticazione via SMS perché vulnerabile alla pratica del sim swapping, utilizzato da molte applicazioni comprese bancarie (fun fact, l'account Twitter di Jack Dorsey è stato compromesso in questa maniera). Oltre ovviamente al SE, che può essere o mirato a te con per esempio l'obiettivo di ottenere il cosiddetto "secret key" usato per la generazione del passcode o mirato all'applicazione interessata o mirato in alcuni casi come detto prima all'operatore telefonico con il sim swap, altri attacchi meno comuni ma comunque da tenere in considerazione per chi sviluppa un sistema 2FA sono il replay attack e il timing attack.

Veramente interessante, grazie. (Considera che non sono assolutamente esperto in materia)
Mi trovo d'accordo soprattutto su una cosa: L'autenticazione via SMS. la roba "più facile" per essere ingannati.Troppe volte dallo stesso "set" di messaggi della mia banca ho ricevuto messaggi dalla dubbia provenienza piena di errori grammaticali dicendomi di aggiornare la password (QUI questo meme identifica pienamente la mia reazione, Ma guarda tu questi oh :asd: )
Mentre nonostante tenga in considerazione la tua opinione al momento ho abbastanza fiducia nel 2FA (bene o male oggi molte cose hanno 2FA).
 
Stato
Discussione chiusa ad ulteriori risposte.