Masking password quando si digita o si nasconde l'input durante la digitazione

6

C'è un'applicazione della riga di comando che richiede in modo interattivo la tua password a un servizio di terze parti. Mentre, ad es. sudo nasconde completamente il tuo input mentre digiti la password, questa applicazione stampa * per ogni carattere che scrivi.

Per un'applicazione della riga di comando, l'atto di mascherare una password comporta più rischi per la sicurezza rispetto alla completa occultamento dell'input? In altre parole, ci sarebbe qualche motivo di sicurezza impellente per refactoring questa applicazione per nascondere l'input?

    
posta Mark Rushakoff 01.05.2013 - 06:39
fonte

2 risposte

11

sudo non nasconde l'input completamente a causa di un presunto vantaggio di sicurezza, ma perché è molto più semplice da fare nel contesto di un terminale Unix. Un'applicazione della riga di comando Unix riceve normalmente l'input dell'utente per linee intere (non viene inviato nulla al codice dell'applicazione finché non si preme il tasto "Invio"); nascondere l'input è solo questione di dire al terminale di non visualizzare i caratteri digitati, con una chiamata di tcsetattr() (es. vedi questa risposta ). Per visualizzare le stelle per ogni carattere inserito, sudo dovrebbe fare alcune cose più complicate, cioè impostare il terminale in modalità "raw" o "cbreak" (vedi questa pagina per alcuni dettagli); sudo dovrebbe quindi implementare lo stesso editing di riga (gestione del tasto backspace o Ctrl-U per cancellare l'input completo, ad esempio).

Anche se nascondendo completamente l'input nasconde la password length , questa informazione è ancora disponibile per gli astanti, che possono usare le orecchie invece degli occhi: invece di contare le stelle sullo schermo, possono contare il tasto preme. Pertanto, il presunto vantaggio di sicurezza della completa occultazione sarebbe, nella migliore delle ipotesi, molto lieve.

La visualizzazione delle stelle offre un'esperienza utente molto migliore, in particolare le persone con tastiere leggermente sfalsate, in cui un tasto può essere "perso" o altrimenti duplicato involontariamente.

    
risposta data 01.05.2013 - 12:40
fonte
3

L'unico miglioramento che mi viene in mente di nascondere completamente l'input è che la lunghezza della password è nascosta anche ai surfisti di spalla.

Considerata la scarsa probabilità di indovinare a mano una password alfanumerica da 5 a 6 in una quantità ragionevole di tempo, probabilmente non c'è alcun punto nel cambiare la tua applicazione per nascondere l'input della password invece di mascherarla.

    
risposta data 01.05.2013 - 06:44
fonte

Leggi altre domande sui tag