Extended summary of "How Do We Create a Fantabulous Password?"
1. 1
UNIVERSITÀ DEGLI STUDI DI TRIESTE
DIPARTIMENTO DI INGEGNERIA E ARCHITETTURA
Corso di Laurea in Ingegneria Elettronica e Informatica – curricula Applicazioni Informatiche
EXTENDED SUMMARY OF “HOW DO WE CREATE A FANTABULOUS
PASSWORD?”
Relatore:
Prof. Alberto Bartoli
Studente:
Massimiliano Gregoretti
Anno Accademico 2020-2021
3. 3
INTRODUZIONE
Riferimento bibliografico: Simon S. Woo. 2020. How Do We Create a Fantabulous Password?. In
Proceedings of The Web Conference 2020 (WWW ’20), April 20-24, 2020, Taipei, Taiwan. ACM, New York,
NY, USA, 11 pages. https://doi.org/10.1145/3366423.3380222
Quando si parla di password testuali robuste, gli utenti dimostrano di avere delle difficoltà nella loro
creazione ed inoltre hanno la tendenza al riutilizzo delle stesse password per più account online. Una
soluzione a questo problema possono essere i generatori automatici i quali forniscono delle password più
sicure, che però risultano più difficili da ricordare e quindi più complesse da utilizzare per gli utenti.
Un fattore che può rendere le password più facili da ricordare è la loro pronunciabilità, ma gli attuali
approcci alla generazione di password pronunciabili presentano problemi quali la ridotta robustezza e la
difficoltà di pronuncia delle password prodotte ed inoltre, tali metodi non permettono agli utenti di fornire
delle parole di input. In merito a ciò, l’articolo sottolinea come la generazione automatica di password
pronunciabili impatti negativamente sulla capacità degli utenti di ricordarle, in quanto essi non possono
creare delle associazioni personali con le password generate e questo finisce per ridurre i benefici dati dalla
pronunciabilità.
Per superare le limitazioni degli attuali metodi nella generazione di password pronunciabili, nell’articolo
viene proposto un nuovo sistema, chiamato ProSemPass. Tale sistema prende in input delle parole fornite
dall’utente e genera una password pronunciabile, robusta e dotata di significato, attraverso la costruzione
di portmanteau. I portmanteau (o parole macedonia) sono dei neologismi che fondono sia il suono che il
significato delle parole che li compongono. Un esempio di portmanteau è la parola “smog”, generata dalle
parole “smoke” e “fog”.
Per migliorare la robustezza dei portmanteau, senza sacrificarne l’usabilità, vengono aggiunte delle cifre,
dei simboli o delle lettere maiuscole in posizioni non prevedibili e ne viene estesa la lunghezza.
ProSemPass
Per generare una password pronunciabile e dotata di significato, ProSemPass parte dalle parole fornite
dall’utente in input, dalle quali vengono generati uno o più portmanteau, che vengono poi rifiniti per
migliorarne la robustezza.
Nella generazione di un portmanteau, vengono utilizzati due tipi di automi a stati finiti:
1) Finite State Acceptors (FSAs): definiscono un linguaggio formale mediante un insieme di stringhe
accettabili.
2) Finite State Transducers (FSTs): definiscono delle relazioni tra insiemi di stringhe.
Questi due tipi di automi costruiscono una sequenza di caratteri che rispetta degli specifici vincoli di
pronuncia e significato.
Il modello per la generazione dei portmanteau viene indicato con PMGen(m, n), dove m indica il numero di
parole fornite in input dall’utente e n il numero di output prodotti. Per illustrare le generazione di un
4. 4
portmanteau viene utilizzato un esempio con m = 2 e n = 1, dove le parole di input sono “fantastic” e
“fabulous”. Per comodità, tutte le parole di input ed i portmanteau generati sono considerati con lettere
minuscole. I passaggi effettuati sono i seguenti:
1) L’utente fornisce le due parole W1
(“fantastic” ) e W2
(“fabulous”) in input.
2) FST A genera una pronuncia di ciascuna delle parole di input: W1
pron (“ F AE N T AE S T IH K”) e W2
pron (“F
AE B Y AH L AH S”).
3) Il weighted FST B (wFST B) combina W1
pron e W2
pron in un singola parola PMpron(“F AE N T AE B Y AH L AH
S”).
4) wFST C, a partire da PMpron traduce i fonemi in grafemi e produce la stringa PM’.
5) wFSA D migliora la pronunciabilità di PM’.
6) Dopo wFSA D, viene generato il portmanteau finale(“fantabulous”) PM’’’.
La figura seguente schematizza il procedimento appena descritto.
Per fare in modo che il portmanteau generato possa resistere ad un attacco brute-force, la lunghezza delle
parole in input viene vincolata ad almeno 6 caratteri e quella dell’output ad almeno 8. Per rendere i
portmanteau generati con PMGen(2, 1) ulteriormente più robusti, vengono proposti 4 approcci:
1) ProSemPass(2, 1): una lettera casuale viene cambiata da minuscola a maiuscola. Ad esempio, date le
parole “shelton” e “stefani”, la password generata è “shelTefani”.
2) ProSemPass(2, 1, S): viene aggiunta una cifra o un simbolo in una posizione casuale a ProSemPass(2, 1).
Ad esempio, date le parole “shelton” e “stefani”, la password generata è “sheLt-efani”.
3) ProSemPass(3, 1): l’utente fornisce 3 parole in input; le prime due parole vengono combinate per
generare un portmanteau che viene a sua volta combinato con la terza parola per generare il
portmanteau finale. Ad esempio, date le parole “simons”, “olivias” e “janet”, la password generata è
“simonolivianets”.
4) ProSemPass(3,2): l’utente fornisce 3 parole in input; le prime due parole e la seconda con la terza
vengono combinate per generare due portmanteau, i quali vengono poi separati da uno spazio per
generare il portmanteau finale. Ad esempio, date le parole “fantastic”, “fabulous” e “amazing”, la
password generata è “fantabulous fabulamazing”.
METODI DI VALUTAZIONE
Quando lo studio oggetto dell’articolo è stato condotto, non erano noti sistemi ibridi per la generazione di
password pronunciabili come ProSemPass, quindi, per valutare la facilità di ricordo e la robustezza delle
5. 5
password generate, le 4 varianti sopra descritte sono state confrontate con 3 metodi di generazione
automatica e 2 metodi in cui è l’utente a creare la password.
I 3 metodi per la generazione automatica sono:
1) Linux generated Pronounceable Password (S-ProPass): vengono selezionate casualmente due parole dal
file dizionario di Linux e poi concatenate con un simbolo o una cifra (es.: “motive+fiance”).
2) GPW8: viene generata una password di 8 caratteri combinando delle sequenze di lettere con un suono
distinto (es.: ”netrigod”).
3) GPW12: analogo a GPW8, ma la password generata ha 12 caratteri (es.: ”isslartustle”).
I 2 metodi in cui è l’utente a creare la password sono:
1) 3class8 ordinary passwords (3c8OP): l’utente crea una password di minimo 8 caratteri scelti tra almeno
3 delle categorie: lettere minuscole, lettere maiuscole, simboli e cifre (es.: ”Pa$$word123!”).
2) U-ProPass: l’utente crea una password concatenando due parole a sua scelta con un simbolo o una
cifra (es.: ”forever3love”).
Per valutare la facilità di ricordo dei 9 metodi sono stati coinvolti 1,563 Amazon MTurkers. Ad ognuno di
questi è stato assegnato casualmente uno dei 9 metodi con il quale creare una password. Dopo due giorni, i
partecipanti sono stati chiamati ad autenticarsi(5 tentativi disponibili) utilizzando la password creata.
Ai partecipanti è stato chiesto di non trascrivere la password creata, ma di fare affidamento alla sola
memoria ed inoltre sono stati trascurati i dati dei partecipanti che hanno fatto rilevare azioni di
copia/incolla in fase di autenticazione.
Per valutare la robustezza di ciascuno dei 9 metodi è stato utilizzato un campionamento Monte-Carlo[1] per
stimare un numero di tentativi necessari ad un attaccante per indovinare una password creata con tale
metodo. In particolare, sono stati adoperati dei modelli 2-gram, 3-gram, 4-gram e back-off.
Per i 4 metodi ProSemPass e per U-ProPass è stato utilizzato il dizionario Google20K, contenente le 20.000
parole più utilizzate nella lingua inglese, per generare 100.000 password con cui allenare separatamente i
vari algoritmi Monte-Carlo. Per il metodo 3class8 è stato utilizzato un insieme di 21 milioni di password
pubbliche. Infine, per i 3 metodi di generazione automatica sono state prodotte 100.000 password per
ciascun metodo.
RISULTATI
I risultati contenuti nella tabella 1 evidenziano che i metodi ProSemPass producono password più facili da
ricordare rispetto a quelle proposte dai sistemi di generazione automatica, ma anche che le password di tali
metodi ibridi hanno una facilità di ricordo vicina a quelle di U-ProPass, dove la password è creata
completamente dall’utente. In particolare, ProSemPass(2,1,S) ha una percentuale inferiore a quella di U-
ProPass di meno dell’1%, il quale è risultato essere il metodo che genera le password più facili da ricordare.
I risultati contenuti nella tabella 2 mostrano come ProSemPass(3,2) sia il metodo più robusto tra quelli presi
in analisi, seguito da ProSemPass(2,1,S), ed entrambi superano il limite di 1014
[2], il quale identifica il
numero minimo di tentativi a cui una password deve resistere prima di essere indovinata in un attacco
6. 6
offline. ProSemPass(3,1) risulta invece essere il metodo più debole tra quelli ProSemPass, a causa della sua
struttura semplice, contenente solo lettere minuscole.
CONCLUSIONI
In conclusione, i test mostrano come ProSemPass permetta di creare delle password che siano allo stesso
tempo ricordabili e robuste. Sul lato della facilità di ricordo, i risultati confermano come l’utilizzo dei
portmanteau nelle password pronunciabili e dotate di significato le possa rendere più facili da ricordare.
Dal punto di vista della sicurezza invece, i metodi ProSemPass(2,1,S) e ProSemPass(3,2) si sono rivelati i più
robusti tra tutti quelli considerati.
RIFERIMENTI
[1] Matteo Dell’Amico and Maurizio Filippone. 2015. Monte Carlo Strength Evaluation: Fast and Reliable
Password Checking. In Proceedings of the 22nd ACM SIGSAC Conference on Computer and
Communications Security. ACM, 158-169.
[2] Dinei Florêncio, Cormac Herley and Paul C Van Oorschot. 2016. Pushing on string: The don’t care region
of password strength. Commun. ACM 59, 11 (2016), 66-74.
Tabella 1: percentuale di autenticazioni riuscite per ogni metodo
Tabella 2: numeri medi di tentativi per indovinare le password con i metodi n-gram e back-off