Robustezza della password: differenze tra le versioni
Contenuto cancellato Contenuto aggiunto
Nessun oggetto della modifica Etichette: Annullato Modifica da mobile Modifica da web per mobile |
|||
(17 versioni intermedie di 11 utenti non mostrate) | |||
Riga 1:
La '''robustezza della password''' (o [[Parola d'accesso|parole d'accesso]]) è una misura di efficienza contro le varie tipologie di attacchi che una parola d'accesso può subire.
La robustezza indica di quanti tentativi ha bisogno un aggressore, che non ha accesso diretto, per indovinarla e violarla.
I fattori di conoscenza e di identità sono elementi da evitare assolutamente, perché, nel caso in cui l'aggressore sia in possesso di alcune di queste informazioni, il compito di decodifica della password sarebbe di gran lunga più semplice. Quindi è buona norma non usare mai informazioni personali come:▼
La robustezza è calcolata in funzione della lunghezza, della complessità e dell'imprevedibilità (o [[Entropia (teoria dell'informazione)|entropia]]) della stringa di caratteri usati. Una parola d'accesso forte serve principalmente a ridurre il rischio complessivo di violazioni della [[sicurezza informatica|sicurezza]], ma non sostituisce la necessità di altri controlli più efficaci per verificarne l'attendibilità.
Come per ogni misura di sicurezza, le password, possono variare in termini di efficacia, alcune sono “forti”, altre meno. Gli esempi riportati qui sotto illustrano vari metodi in cui la costruzione della password potrebbe risultare debole.<ref name="MIT sicurezze delle password">{{Cita news|url= http://web.mit.edu/rhel-doc/4/RH-DOCS/rhel-sg-it-4/s1-wstation-pass.html |titolo= MIT password security |autore= Red Hat Enterprise Linux 4: Security Guide}}</ref>▼
==Creazione delle parole d'accesso==
Password predefinite (fornite dal sistema e destinate ad essere modificate):▼
Le parole d'accesso possono essere create in due modi: da [[Software|programmi]] che generano [[stringa (informatica)|stringhe]] complesse, oppure, nel caso più comune, da un umano qualsiasi. Una buona ''password'' è univoca e complessa, per questo esistono tre criteri da rispettare che servono a renderla più efficace e più sicura: i fattori di conoscenza e d'identità, i fattori di facilità e le regole base da rispettare.
Sostituzioni di caratteri di tipi [[Leet]] (i software di decodifica ormai sono tutti implementati anche con questo tipo di vocabolario):<ref name=LEET>{{Cita news|url= http://www.robertecker.com/hp/research/leet-converter.php?lang=en |titolo= 1337 LEET |autore= Robert Ecker |data= 27 aprile 2015}}</ref>▼
Parole derivate da righe della tastiera:▼
Parole in altre lingue (spesso i software di decodifica cercano anche in elenchi con vocabolari in lingue straniere):▼
Parole al contrario (se il sistema di attacco è buono leggerà le stringhe di prova in ogni senso):▼
▲I fattori di conoscenza e
Per far sì che una password sia buona, deve rispettare dei requisiti di complessità, ovvero soddisfare delle linee guida ben precise su come e con quali componenti si deve creare una password.▼
*Lunghezza minima della stringa di 8 caratteri;▼
*Presenza di lettere minuscole (a-z)▼
*Presenza di lettere maiuscole (A-Z)▼
*Presenza di [[numeri arabi]] (0-9)▼
*Caratteri non alfanumerici (ad esempio !, ?, #, *)▼
▲Come per ogni misura di sicurezza, le
Ad esempio usando una password con il minor numero di caratteri possibili (8 caratteri), combinata con i criteri sopra definiti, esisteranno 218.340.105.584.896 combinazioni possibili; in questo modo un attacco [[brute force]] diventa più difficile ma comunque non impossibile.<ref name=Microsoft>{{Cita news|url= https://technet.microsoft.com/it-it/library/hh994562(v=ws.11).aspx |titolo= Requisiti password |autore= Microsoft |data= agosto 2016}}</ref>▼
▲
▲
* solo parole o solo numeri (es. "caterinateresa" oppure "12092972");
* doppie parole (es. "giovannigiovanni");
* parole comuni anche se seguite da numeri (come "ciaomondo01");
▲
▲
▲Per far sì che una
▲
Per esempio, creando una ''password'' di 8 caratteri seguendo i criteri sopra definiti, formata cioè a partire da 26 lettere minuscole, 26 lettere maiuscole, 10 cifre e 4 caratteri speciali, esisteranno <math>(26 + 26 + 10 + 4)^8 = 66^8 = 360040606269696</math> combinazioni possibili; in questo modo un [[Metodo forza bruta|attacco a forza bruta]] diventa più difficile ma comunque non impossibile.
Tuttavia, le summenzionate regole sono ormai superate e obsolete. Oggi è difficile raccomandare la creazione di parole d'accesso più brevi di 12 caratteri,<ref>{{Cita web|url=https://support.google.com/accounts/answer/32040?hl=it|titolo=Creare una password efficace e un account più sicuro - Guida di Account Google|sito=support.google.com|accesso=2024-04-30}}</ref><ref>{{Cita web|url=https://security.harvard.edu/use-strong-passwords|titolo=Use Strong Passwords|sito=security.harvard.edu|lingua=en|accesso=2024-04-30}}</ref> e talvolta molti esperti raccomandano di usare parole più lunghe di 16 caratteri.<ref>{{Cita web|url=https://www.pluralsight.com/blog/security-professional/modern-password-guidelines|titolo=Password Best Practices for Today {{!}} Pluralsight|sito=www.pluralsight.com|lingua=en|accesso=2024-04-30}}</ref> Inoltre, le regole ferree dell'utilizzo sistematico di lettere maiuscole e minuscole, numeri e soprattutto caratteri speciali spesso e volentieri rende le ''password'' più insicure, poiché più difficili da ricordare per gli umani, che tenderanno a preferire euristiche che abbassano l'entropia totale della parola d'accesso, rendendola più debole — come, per esempio, mettendo semplicemente un punto esclamativo alla fine della stringa contenente il proprio nome e la propria data di nascita: "mariorossi1980!".<ref>{{Cita web|url=https://pages.nist.gov/|titolo=NIST SP 800-63 Digital Identity Guidelines-FAQ|sito=pages.nist.gov|accesso=2024-04-30}}</ref> Per questi motivi, le migliori pratiche sono date dall'uso di [[Passphrase|frasi d'accesso]] (in inglese ''passphrases''), memorizzate in un gestore ''password'', e unite all'autenticazione [[Autenticazione a due fattori|multifattore]].<ref>{{Cita web|url=https://cloud.google.com/solutions/modern-password-security-for-users?hl=it|titolo=Sicurezza con password moderne per gli utenti {{!}} Soluzioni|sito=Google Cloud|accesso=2024-04-30}}</ref><ref>{{Cita web|url=https://www.ncsc.gov.uk/guidance/authentication-methods-choosing-the-right-type|titolo=Authentication methods: choosing the right type|sito=www.ncsc.gov.uk|lingua=en|accesso=2024-04-30}}</ref> Si vedano i paragrafi più in basso per maggiori dettagli.
==Entropia delle
Solitamente
Il numero minimo di bit di entropia necessari a rendere una password
▲Il numero minimo di bit di entropia necessari a rendere una password quantomeno inviolabile, dipende dal tipo di minaccia.
=== Decrittazione a 64 e 72 bit ===
{{vedi anche|EFF DES cracker}}
Nel
▲Nel 1999, DES in collaborazione con [[distributed.net]], riuscì a decriptare una chiave a 56 bit in 22 ore e 15 minuti. Nel 2002 la distributed.net riuscì a rompere una chiave di cifratura a 64 bit effettivi in circa 4 anni.<ref name=bit64>{{Cita news |url= https://stats.distributed.net/projects.php?project_id=5 |titolo= 64 bit, statistiche e tempi |data= distributed.net URL consultato il 9 luglio 2017 |pubblicazione= |accesso= 4 maggio 2019 |urlarchivio= https://web.archive.org/web/20190518175132/http://stats.distributed.net/projects.php?project_id=5 |dataarchivio= 18 maggio 2019 |urlmorto= sì }}</ref>
A partire dal 2007 la rete distributed.net apre il progetto di decrittazione RC5-72
▲RFC4028,“Randomness Requirements for Security”, ha presentato nel 2005 alcuni studi su come misurare l’entropia di una chiave. I risultati variano da 29 bit di casualità, ovvero 2^29, circa 500.000.000 di tentativi necessari se si prevedono solo attacchi online, a 128 bit in output, ricavati da 384 bit di ingresso composti da 128 bit di dati e 256 bit di chiave, per le chiavi di crittografia che fanno riferimento a funzioni di miscelazione per bit multipli più forti.<ref name="Randomness Requirements for Security">{{Cita news|url= https://tools.ietf.org/html/rfc4086 |titolo= Randomness Requirements for Security 4028 |autore=J. Schiller, MIT, S. Crocker |data= giugno 2005}}</ref>
Nel 2008 iniziarono le modifiche [[hardware]] per aumentare i [[core (informatica)|core]] di lavoro di RC5-72 progettati per funzionare anche su [[ATI Technologies|ATI]]. Verso la fine del 2008 vennero concluse le modifiche e introdotti i processori [[AMD Radeon HD 6000 series]] e [[ATI Radeon HD 5000 series]] con una velocità di calcolo di 1,8 miliardi di chiavi al secondo.
▲A partire dal 2007 la distributed.net apre il progetto di decrittazione RC5-72, l'approccio del progetto era quello di decrittare un messaggio a 72 bit provando tutte chiavi possibili ([[brute force]]) fino a trovare quella corretta. Per far questo l'intera area di lavoro è stata divisa in blocchi, ogni pacchetto consiste in <math>2^{32}</math> (circa 4,2 miliardi) combinazioni possibili. L'hardware di partenza del progetto è stato [[NVidia CUDA]], che riusciva a calcolare fino a 600 milioni di chiavi al secondo.
A causa dei limiti riconosciuti dalla fisica fondamentale, non c’è
▲Nel 2008 iniziarono le modifiche [[hardware]] per aumentare i [[core (informatica)|core]] di lavoro di RC5-72 progettati per funzionare anche su [[ATI Technologies|ATI]]. Verso la fine del 2008 vennero concluse le modifiche e introdotti i processori [[AMD Radeon HD 6000 series]] e [[ATI Radeon HD 5000 series]] con una velocità di calcolo di 1,8 miliardi di chiavi al secondo.<br /><ref name=velocità>{{Cita news |url= https://stats.distributed.net/speed/ |titolo= Confronti di velocità del client |data= distributed.net URL consultato il 14 luglio 2017 |urlmorto= sì }}</ref>
▲A causa dei limiti riconosciuti dalla fisica fondamentale, non c’è nessuna aspettativa per quanto riguarda la decrittazione di chiavi maggiori o uguali a 256 bit tramite un attacco di brute force.
===Password casuali===
Line 82 ⟶ 53:
Esistono però software, soprattutto nei sistemi operativi moderni, che sono in grado di generare password forti fino a 256-512 bit di entropia, ad esempio producendo sequenze composte da: lettere minuscole, lettere maiuscole, numeri e caratteri speciali.
Per le password generate da un processo che seleziona casualmente una stringa di lunghezza
La forza misurata dall’entropia delle informazioni è il
versione 1|autore= William E. Burr|autore2= Donna F. Dodson|autore3= W. Timothy Polk|data= giugno 2004|urlmorto= sì|urlarchivio= https://web.archive.org/web/20040712152833/http://csrc.nist.gov/publications/nistpubs/800-63/SP800-63v6_3_3.pdf|dataarchivio= 12 luglio 2004}}</ref><ref name=NIST3>{{Cita news|url= https://pages.nist.gov/800-63-3/sp800-63c.html |titolo= NIST Special Publication 800-63
versione 3 |autore= Paul A. Grassi|autore2=Michael E. Garcia|autore3=James L. Fenton |data= giugno 2017}}</ref>
<math>E = \log_2 L^S = S \log_2 L = S
Dove: <math>L</math> è il numero di casi possibili, <math>S</math> sono i simboli che compongono la password (lunghezza della password) ed <math>E</math> è il numero di bit di entropia.
La seguente tabella illustra alcune tipologie di calcolo dell’entropia in base a diversi set di simboli:
{| class="wikitable" style="text-align:
|+ Calcolo entropia per diversi set di simboli
! Set di simboli
|-
| align=left|[[Sistema di numerazione arabo]] (0–9) () || 10 ||
|-
| align=left|[[Sistema numerico esadecimale]] (0–9, A–F) () || 16 ||
|-
| align=left|[[Alfabeto latino]] non case sensitive | (a–z) || 26 ||
|-
| align=left|[[Alfanumerico]] non case sensitive | (a–z o 09) || 36 ||
|-
| align=left|[[Alfabeto latino]] case sensitive | (a–z, A–Z) || 52 ||
|-
| align=left|[[Alfanumerico]] case sensitive (a–z, A–Z, 0–9) || 62 ||
|-
| align=left|[[ASCII]] tranne spazio || 94 ||
|-
| align=left|[[ASCII]] || 95 ||
|-
| align=left|[[ASCII esteso]] || 218 ||
|-
| align=left|[[Sistema numerico binario|Codice binario]] (0–255 o 8 [[bit]] o 1 [[byte]]) || 256 ||
|-
| align=left| [[Diceware]] || 7776 || {{formatnum:12925}} bit a parola
|}
Per trovare la lunghezza S di una stringa di caratteri generata casualmente, sapendo con precisione il numero di bit di entropia utilizzati e il numero di casi possibili per trovare la chiave si usa la formula inversa della precedente:
<math>S = {E
Il risultato di tale formula viene arrotondato per eccesso fino al numero intero.
{| class="wikitable" style="text-align:
|+ Numero dei caratteri che si possono utilizzare per avere <math>x</math> bit di entropia
! Entropia password
|-
| 8 bit
|-
| 32 bit
|-
| 40 bit
|-
| 64 bit
|-
| 80 bit
|-
| 96 bit
|-
| 128 bit
|-
| 160 bit
|-
| 192 bit
|-
| 224 bit
|-
| 256 bit
|}
===Password generate a mano===
Solitamente le persone tendono a generare password con un basso livello di entropia. Secondo uno studio effettuato da Microsoft nel 2007 su mezzo milione di utenti, la media del livello di sicurezza utilizzato nel web è 40,54 bit di entropia.<ref name=Microsfot>{{Cita news|url= https://www.microsoft.com/en-us/research/wp-content/uploads/2006/11/www2007.pdf |titolo= A Large-Scale Study of Web Password Habits |autore= Dinei Florencio|autore2=Cormac Herley |data= 2007}}</ref>▼
▲Secondo uno studio effettuato da Microsoft nel 2007 su mezzo milione di utenti, la media del livello di sicurezza utilizzato nel web è 40,54 bit di entropia.<ref name=Microsfot>{{Cita news|url= https://www.microsoft.com/en-us/research/wp-content/uploads/2006/11/www2007.pdf |titolo= A Large-Scale Study of Web Password Habits |autore= Dinei Florencio|autore2=Cormac Herley |data= 2007}}</ref>
Nel giugno del 2004 il [[National Institute of Standards and Technology
*
*
*
*
*
Seguendo questo schema, per esempio, una password di 8 caratteri senza maiuscole e senza caratteri non alfabetici è stimata intorno ai 18 bit.
Nel 2010 viene pubblicato un documento redatto da
by Attacking Large Sets of Revealed Passwords |autore= Matt Weir|autore2=Sudhir Aggarwal|autore3=Michael Collins|autore4=Henry Stern | pubblicazione= www.cs.umd.edu |p=University of Maryland |data= 2010}}</ref>
==Memorizzare una password==
Un metodo di memorizzazione efficace e facile da ricordare è quello mnemonico, ovvero
==Violare una password==
{{vedi anche|Password cracking}}
===Tipologie di attacchi===
Esistono in linea generale tre tipi di attacchi per riuscire a violare una password: l'[[attacco a dizionario]], che si basa sul confronto della password da violare con una lista di parole comuni
===La potenza di un
La potenza di un
<math>
Dove:
Ad esempio, se utilizziamo come set di 26 caratteri e una stringa di lunghezza 10, avremo:
<math>
chiavi diverse. === Tempi necessari per attacco
Le tempistiche di un attacco variano a seconda di alcuni fattori: la potenza della password, la velocità di calcolo (<math>V</math>), ovvero il numero di password che un [[calcolatore]] riesce a generare in un secondo e il numero dei calcolatori utilizzati per fare un attacco (<math>N</math>). La formula è:<ref name=lastbit>{{Cita news|url= http://lastbit.com/password-recovery-methods.asp#Brute%20Force%20Attack |titolo= Password Recovery Methods, Brute-Force Attack }}</ref>
{{chiarire|<math>
La tabella seguente mostra il tempo necessario per l'attacco
{| class="wikitable" style="text-align: left;"
|+ Numero dei caratteri che si possono utilizzare per avere <math>x</math> bit di entropia
! Lunghezza della password || [[Maiuscolo]] || [[Minuscolo]] e [[cifre]] || [[Maiuscolo]] e [[minuscolo]] || Tutto [[ASCII]]
|-
| <
|-
| 5 || immediato || 2 minuti || 12 minuti || 4 ore
Line 203 ⟶ 177:
| 8 || 4 giorni || 65 giorni || 3 anni || 463 anni
|-
| 9|| 4 mesi || 6 anni || 178 anni || {{formatnum:444530}} anni
|}
Attualmente alcune piattaforme online hanno adottato metodi contro
*
*
*
*
=== One-time password ===
Line 218 ⟶ 192:
==Gestori di password==
Un compromesso ideale per gestire numerose quantità di password è di usare un gestore di password. Un gestore di password è un sistema che consente all’utente di utilizzare un gran numero di password diverse dovendone ricordare solamente una, ovvero quella che serve per effettuare l’accesso al sistema di crittografia dove sono contenute tutte le altre chiavi. La password generale di accesso deve essere difficile e con un livello di entropia alto.
Solitamente un buon gestore fornisce già un alto tasso di sicurezza e di resistenza agli attacchi di
== Note ==
Line 225 ⟶ 199:
== Voci correlate ==
* [[One-time password]]
* [[Password]]
|