È una buona idea usare caratteri Unicode non latini in una password?

12

Ho sentito molti suggerimenti su cosa rende una buona password (difficile da indovinare, non una parola del dizionario o una sua permutazione, almeno una certa lunghezza, ecc.) in modo che non possa essere decifrata in un lasso di tempo realistico . Tuttavia, da quello che ho capito, le tecniche e il software di cracking delle password cercheranno di utilizzare caratteri latini, cifre e caratteri speciali che normalmente si trovano su una tastiera americana. Pertanto, sarebbe una buona idea includere alcuni caratteri non latini in una password?

Ad esempio, "passw 密码 rd".

    
posta user1475412 10.04.2015 - 03:45
fonte

3 risposte

6

Probabilmente no - troveresti molti problemi di compatibilità a seconda dei set di caratteri supportati dei dispositivi di cui potresti aver bisogno per inserire la tua password.

Ci sono due modi per assicurarti di avere una password sicura:

  1. Utilizza una fonte di entropia di cui l'autore dell'attacco non è a conoscenza.
  2. Usa abbastanza entropia in modo che la forza bruta sia irrealizzabile.

L'approccio che il tuo metodo proposto prende è il primo. Di solito ci sono meno svantaggi di quest'ultimo approccio. Se si utilizza una password con almeno 128 bit di entropia, non è possibile indovinarla in un ragionevole lasso di tempo. Questo è in media - se l'aggressore è molto fortunato, potrebbe indovinarlo per la prima volta - ma lo stesso vale per tutte le password.

Quindi per ottenere 128 bit di entropia o hai bisogno di una password con almeno 20 caratteri completamente casuali (usando entrambe le lettere maiuscole, i numeri più i simboli ASCII) o hai bisogno di 10 dicewords .

Quindi secondo me questo è già un problema risolto. Usa un generatore di password sicuro per creare una password casuale di 20 caratteri se non hai bisogno di ricordarlo, o se usi Diceware se lo fai.

    
risposta data 10.04.2015 - 10:13
fonte
5

In generale, sì. Alcuni sistemi potrebbero non supportare o consentire caratteri non latini. Nel back-end, il database e altri sistemi devono essere configurati correttamente per gestire caratteri non latini o possono accadere cose inattese. Ad esempio, un carattere unicode multi-bye può essere interpretato come più caratteri a byte singolo (o qualunque sia la dimensione prevista nella codifica utilizzata).

Se il sistema accetta il tuo input, e ovunque tu inserisca la password ti consente di cambiare lingua, dovresti stare bene. L'unica presa che viene immediatamente in mente è se è consentito un numero massimo di caratteri e poiché si utilizzano caratteri multi-byte si finisce per superare il limite o se si esegue un qualche tipo di troncamento. Potrebbero esserci anche alcuni tipi di filtri di sicurezza costruiti assumendo che siano ammessi solo caratteri latini e il tuo input potrebbe essere contrassegnato o disinfettato. Tutte queste condizioni dipendono dal sistema specifico e da ciò che supporta.

Potrebbe essere necessario testare e vedere se ci sono problemi di compatibilità; tuttavia, punti bonus per te se prende i tuoi singoli personaggi e li considera 2 o più - dandoti una password più lunga senza dover ricordare più pezzi. Se il sistema accetta i tuoi input e funziona alla grande. Se dovessi incontrare strani problemi, allora speri di poter reimpostare e utilizzare un semplice set di caratteri latini.

Per riferimento, basta fare un testo di base per la conversione binaria:

passw密码rd = 01110000 01100001 01110011 01110011 01110111 11100101 10101111 10000110 11100111 10100000 10000001 01110010 01100100  
(9 "characters", 13 bytes) 


password   = 01110000 01100001 01110011 01110011 01110111 01101111 01110010 01100100 
(8 "characters", 8 bytes) 

In un certo senso questo è ciò che il computer realmente vede. Quindi, se il sistema non è consapevole di unicode, potrebbe diventare matto, o interpretare passw密码rd come passwå¯ç rd , passw密码rd , ecc. Se la funzionalità non è implementata in modo coerente nel sistema, la funzione che salva e salva la password potrebbe vedere in un modo e le funzioni che confrontano in ritardo l'hash possono farlo in un altro modo.

    
risposta data 10.04.2015 - 03:58
fonte
3

Sì, sarebbe una buona idea usare quei personaggi.

passw密码rd non sarebbe probabilmente l'esempio migliore in quanto è semplicemente a due caratteri di distanza dalla password, ma sarebbe sicuramente più sicuro di password11 , p4ssw0rd o permutazioni simili.

Poiché queste lettere non sono così convenienti sulle tastiere medie, la maggior parte degli utenti probabilmente non utilizzerà questi caratteri in quanto richiede uno sforzo extra durante la procedura di accesso. Gli hacker lo sanno e molto probabilmente non provano questi personaggi così spesso. Ciò non significa che l'utilizzo di questi caratteri sia una chiave che ti proteggerà dal brute-forcing, ma sarebbe una protezione significativamente migliore. Il numero di possibili caratteri aumenta notevolmente quando si utilizzano tali caratteri Unicode, aumentando il tempo per un potenziale attacco di forza bruta. Per questo motivo, gli hacker molto probabilmente decideranno di indirizzare il "frutto basso appeso", essendo persone che usano un set di caratteri più piccolo che consente meno possibilità.

    
risposta data 10.04.2015 - 03:59
fonte

Leggi altre domande sui tag