I caratteri non a tastiera rendono la mia password meno suscettibile alla forzatura bruta?

41

Posso inserire caratteri nella mia password per i quali non ci sono tasti su una tastiera. Su Windows, Alt + #### (con il tastierino numerico) inserisce il carattere per qualunque codice digiti.

Quando inserisco questa password, è praticamente garantito che non sarà mai forzata bruta? Probabilmente non sono il primo a pensarci, ma ho ragione ad indovinare che gli attaccanti non considereranno mai che valga il loro tempo per controllare i caratteri non di tastiera? È qualcosa di cui sono a conoscenza?

Se questo è il caso, con un singolo carattere non-tastiera da qualche parte nella tua password non dovresti mai preoccuparti di mantenere strong il resto della password.

    
posta jnm2 19.06.2011 - 00:58
fonte

9 risposte

30

When I put this in a password, does it pretty much guarantee that it will never be brute forced?

Un attacco di forza bruta su una password tende a verificarsi in due modi: o un utente malintenzionato ottiene un database di password con hash o un utente malintenzionato tenta di accedere a un sistema attivo con un nome utente (o altro identificatore di account) e una password. Un metodo comune per attaccare i database delle password con hash è usare un insieme di valori precalcolati e hash chiamati una tabella arcobaleno. Vedi Quali sono le tabelle arcobaleno e come vengono utilizzate? Una tabella arcobaleno non è un puro attacco di forza bruta perché utilizza meno del dominio completo dei possibili input. Poiché una vera forza bruta usa l'attacco ogni possibile input, indipendentemente dal fatto che si tratti di un attacco su un database di password hash o di un login dal vivo, nessuna selezione di set di caratteri o combinazione di set diversi farà alcuna differenza per un attacco di forza bruta. Gli attacchi di forza bruta praticamente veri sono rari. Gli attacchi da tavolo arcobaleno sono più comuni e l'uso di un valore da un set non comune sarà una difesa efficace contro molti attacchi da tavolo arcobaleno.

am I right in guessing that attackers will never consider it worth their time to check non-keyboard characters? Is this even something they are aware of?

Ci sono attaccanti là fuori che useranno set di input non comuni per tentare di attaccare le password, ma sospetto che siano rari. Qualsiasi attaccante ragionevolmente sofisticato ha pensato a cose come i personaggi non-tastiera, e la maggior parte prende una decisione economica per perseguire obiettivi più facili. Ci sono molti obiettivi con password scadenti e deboli, quindi gli attaccanti progettano attacchi per queste password deboli. Quindi, sì, molti (ma non tutti) gli attaccanti considerano le password forti non "degne di essere vissute".

with a single non-keyboard character somewhere in your password you'd never have to worry about keeping the rest of the password strong.

No. La forza è una misura o resistenza agli attacchi. Se la tua password è un singolo carattere non di tastiera è più debole di una password di 33 caratteri minuscoli. La lunghezza in bit è una misura importante della forza della password. Bit invece che caratteri, perché i calcoli crittografici come gli hash sono fatti a bit, non in caratteri. Un set di caratteri, come il set di caratteri non di tastiera, è solo un elemento nel creare password complesse, non è strong di per sé.

    
risposta data 20.06.2011 - 07:48
fonte
19

Quindi, perché dovevo sapere che ho generato una tabella arcobaleno NTLM utilizzando il carattere non di stampa alt 0160 (e non rappresentato da tastiera) 0161-0164. La tabella ha riconosciuto il carattere non stampabile in esadecimale.

Latabellaèstataingradodiriconoscereilcaratterenonstampabiledopoaverscaricatol'hash.(Eraunaccountfittizioconunapassworddi4caratteriascopodimostrativo)

Vienefuoriqualcosadeltipo:

Quindi, anche se non è impossibile, non avevo nulla nel mio toolkit che avrebbe riconosciuto questo. La maggior parte delle persone con tavoli arcobaleno che si muovono in giro provengono dalla fonte della comunità o hanno un motivo specifico per crearli.

Raramente ho visto persone che usavano questi personaggi, ma ha perfettamente senso creare qualche altro tavolo da includere a seconda dell'impegno: £ ¥ ¡e qualche altro segno di punteggiatura che viene usato solo in lingue diverse dall'inglese. Guardare le tastiere di tutto il mondo per i personaggi più comuni e alla ricerca di personaggi che non sono rappresentati negli Stati Uniti-104 mi darà un buon inizio. Ma ancora una volta, questo tavolo quando è fatto si basa su 1 cosa: uso comune. Se non è comunemente fatto, probabilmente è più facile trovare un altro modo per aggirare il controllo.

Per parlare con una forza bruta basata su input lineare, vale la stessa cosa. Chiunque lo includa nel set di caratteri per l'input potrebbe farlo. Non è normale farlo.

Quindi in una specie di rotatoria in qualche modo quello che sto dicendo è sì lo rende meno suscettibile alla forzatura bruta, anche se non impossibile.

- Modifica -

Per una prospettiva in numeri reali sulla generazione di tabelle:

Il set di caratteri di base che ho accumulato per NTLM rientra in un disco da 750 Gb i numeri che ho su di esso se volessi crearne uno nuovo: (superiore + inferiore + numero + caratteri di stampa = circa 96 caratteri )
Tempo di generazione 9 giorni 22 h (se il numero di tabelle aumenta troppo elevato) Conteggio catena unico 6.094.373.862
Dimensione tabella 90.81 GiB (97.509.981.789 byte)
Dimensione totale 726,51 GiB (780,079,854,310 byte)

Ora questo non è ottimale, ma per comparazione le stesse impostazioni (in realtà un po 'di impostazioni di kinder 8 tabelle invece di 4 usando rtc) sul set di stampa completo + non stampabile + non tastiera (191 caratteri) equivale a (con compressione )
Tempo di generazione 395 y (se il numero di tabelle aumenta troppo elevato) Conteggio catena unico 4.823.766.839.375
Dimensione tabella 57.03 TiB (62.708.968,911.909 byte)
Dimensione totale 14,20 PiB (15,990,787,072,536,668 byte

Essenzialmente 2 ordini di grandezza in più se stai usando l'intero spazio ASCII, le finestre di spazio accetteranno come input della password. Dovrò aspettare un po 'per quel 20 petabyte Seagate prima di iniziare la strada per questo tavolo. E i processori devono accelerare se voglio che il tavolo finisca prima che 8 generazioni di me siano vissute e morte.

    
risposta data 19.06.2011 - 02:02
fonte
16

Un utente malintenzionato ha solo bisogno di espandere il set di caratteri che usa per aggiungere forza a qualsiasi password, indipendentemente da quali siano i caratteri. Detto questo, tanto più grande è il tempo che ha bisogno di spendere.

La solita raccomandazione è che se si inseriscono lettere minuscole, maiuscole, numeri e simboli, tutti in ascii, il set di caratteri che si sta utilizzando è abbastanza grande da ostacolare sufficientemente la bruteforcing. Se vai oltre il set ASCII, puoi anche guardare i caratteri greci o russi - la cosa unicode non stampabile e casuale è un po 'troppo lontana secondo me.

Ovviamente puoi farlo, ma c'è un rischio: altro: non tutte le app, e in particolare i siti e i database sono compatibili con la codifica UTF, o cose diverse da iso-8859-1. Ciò significa che la tua password potrebbe non essere accettata da un'app / sito, o, peggio ancora, essere accettata, ma essere incasinata sulla base del database, in modo che tu non possa verificarla. Sfortunatamente, qualsiasi tipo di stranezza può verificarsi quando fornisci input non ASCII a un'app che non se lo aspetta, in particolare sui campi relativi a nome utente e password.

    
risposta data 19.06.2011 - 03:18
fonte
9

L'uso di Alt + #### (quattro cifre) equivale (per la resistenza agli attacchi) a disporre delle quattro cifre come caratteri della password, proprio dove aggiungi il tuo "carattere speciale". Le cifre nelle password non sono una cosa totalmente nuova.

"Gli attaccanti non lo considereranno mai" è la base per tutte le debolezze. Gli attaccanti lo prenderanno in considerazione; ci hanno persino pensato prima di te. Se ti affidi alla stupidità degli attaccanti, sconfiggi solo gli stupidi attaccanti, quelli meno pericolosi in ogni caso.

In una nota più pratica, i personaggi speciali renderanno la vita più difficile quando si tenta di utilizzare un dispositivo che non offre l'immissione di caratteri basata su Alt (ad esempio una password su un sito Web, che si desidera accedere dallo smartphone) .

    
risposta data 25.11.2012 - 04:45
fonte
8

Come è stato detto in altre risposte, la forza della password sta nelle sue dimensioni. Puoi premere i tasti Alt + 0 + 1 + 6 + 0 per ottenere un personaggio non comune, ma riceverai solo 1 carattere su 5 tasti. Prendendo una questa come stima approssimativa, potresti ricevere 12, forse 13 bit di entropia da un personaggio speciale ; avresti potuto ottenere di più (sopra i 20) se avessi usato quei 5 tasti sui caratteri alfanumerici.

In breve, è più utile usare 5 caratteri su tastiera invece - stai ricevendo molto più denaro per il botto, se perdoni il gioco di parole.

    
risposta data 23.06.2011 - 16:44
fonte
2

Supponendo il solido supporto UTF-8 (eliminando così altri problemi di codifica), una potenziale trappola delle password non ASCII è la normalizzazione Unicode.

Caratteri come ö possono essere rappresentati in più modi, vale a dire come singolo carattere ö o come due codepoint: o+¨

In generale, i computer non li considerano uguali, anche se lo sono davvero.

Di conseguenza, un'implementazione ingenua che non normalizza l'input della password prima della verifica potrebbe non accettare la password pässwørd se riesci a inserirla in un formato normalizzato in modo diverso a quando imposti la password.

    
risposta data 01.01.2016 - 18:20
fonte
1

Mentre estendere il set di caratteri usato nella tua password lo rende più strong, rende anche difficile scrivere e non fornisce il 100% di garanzia contro gli attacchi.

Ancora più importante, l'uso di caratteri rari ti espone a situazioni in cui conosci la password ma non puoi usarla. Immagina di non essere in grado di utilizzare uno strumento di ripristino perché non è compatibile con la tua password o non sei in grado di controllare la tua casella di posta dal computer o dallo smartphone di qualcun altro.

    
risposta data 29.06.2015 - 16:58
fonte
1

Se la sicurezza si basa solo su una convinzione / assunzione che un utente malintenzionato non utilizzerà la tecnica X, questa è una sicurezza piuttosto debole. Si deve presumere che un hacker lo sappia.

Come negli scacchi, fai la mossa più strong come se il tuo avversario conoscesse le tue intenzioni.

    
risposta data 23.06.2015 - 22:37
fonte
0

In sintesi: contro un attacco di tipo Dictionary / Rainbow tendono ad essere MOLTO sicuri perché un singolo personaggio non disponibile ti farà cadere fuori da qualsiasi schema comune, ma contro un vero attacco di forza bruta possono essere molto più deboli rispetto all'utilizzo delle altre combinazioni di tasti 2-5 in un modo normale. Quindi, la strategia ottimale secondo me è combinarli. Rendi la tua password troppi caratteri da scoprire da un vero attacco di forza bruta in qualsiasi ragionevole arco temporale umano, e includi un carattere Alt% per far cadere la "popolarità" della tua password oltre quella che è considerata un'ipotesi utile. Ciò può rendere la tua password efficace come una stringa generata in modo casuale, ma più facile da ricordare. Assicurati solo che il carattere casuale che usi non sia qualcosa che potrebbe contenere significato in qualsiasi linguaggio di programmazione o set di tastiere straniere come quei buffi personaggi veramente bassi sul tavolo alt: ☺, ☻, ♥, ♦, ♣, ♠, ◘, ↕, ecc.

    
risposta data 31.10.2016 - 18:37
fonte

Leggi altre domande sui tag