I tempi di battitura potrebbero migliorare la sicurezza su una password?

101

Quando ero giovane e avevo appena iniziato la mia carriera di sviluppo software 20 anni fa, ho scritto un po 'di codice sul mio Amiga che ha preso una password, ma anche registrato (entro una certa soglia), la velocità di che ogni lettera di una password è stata digitata.

Ciò significava che, non solo l'utente doveva digitare la password corretta, ma doveva anche fare in modo di premere i tasti. Per provarlo, avrei un ritmo nella mia testa e potrei costantemente ri-digitare la password ogni volta. Tuttavia, se l'ho digitato regolarmente o lentamente, non è stato accettato.

Non sono un esperto di sicurezza (la mia programmazione si trova in aree meno difficili, per fortuna), ma ho improvvisamente pensato a quel programma che ho scritto quando ero giovane e se fosse una valida aggiunta alla sicurezza in questi giorni, o se fosse non vale nemmeno la pena di pensarci.

Tocca - Taptaptap - TapTap - Tocca .

    
posta Moo-Juice 28.04.2016 - 21:31
fonte

14 risposte

100

Il termine che stai cercando è " dinamiche di battitura " o "battitura biometrica" ed è un campo interessante e in crescita .

L'idea è che un individuo digita determinate chiavi in un certo modo che non cambia molto nel tempo. Se è possibile mappare quelle dinamiche, allora si potrebbe, potenzialmente, eliminare completamente le password e semplicemente ottenere all'utente di digitare qualsiasi cosa .

    
risposta data 28.04.2016 - 22:54
fonte
87

Penso che sarebbe molto, molto fastidioso per gli utenti legittimi della tua applicazione o del tuo sito web. Cose come un dito rotto, o semplicemente tenendo un sandwich in una mano, renderebbero il tuo login inutilizzabile. Inoltre, dovresti incoraggiare l'uso di gestori di password, che invieranno le sequenze di tasti molto rapidamente, o non invieranno affatto le sequenze di tasti. Il tuo schema probabilmente impedirebbe anche il miglior utilizzo dei gestori di password.

    
risposta data 28.04.2016 - 22:16
fonte
38

Ci sono alcuni buoni, alcuni cattivi e alcuni veramente brutti qui.

The Good
Aumenta l'entropia delle password e rende più difficile la forza bruta

The Bad
Si basa su qualcosa che può essere registrato e sincronizzato in modo udibile e richiede tolleranze di errore, il che significa che qualcosa deve essere abbastanza vicino per rendere questo moot

Il DAVVERO brutto
Le persone cambiano nel tempo. Per una moltitudine di motivi (infortunio, età, dimenticanza di come procede il modello), potrebbero non essere più in grado di introdurli alla stessa velocità e frequenza o entro tolleranze più elevate e quindi danneggiano effettivamente la capacità degli utenti di utilizzare il servizio

Quindi, mentre un'idea interessante e un campo interessante, per l'essere umano non è molto difficile mantenere l'entropia della password. Peggio ancora, è facile ricreare il modello con le macchine. Rende più difficile l'hacking senza una precedente conoscenza della persona o del modello, ma potrebbe anche peggiorare l'esperienza dell'utente con il tuo servizio nel tempo e rendere più facile la raccolta di informazioni locali sull'entropia della password.

    
risposta data 28.04.2016 - 23:17
fonte
18

whether it was a viable addition to security these days

L'unica ragione per cui non penso che sarebbe fattibile è che le persone accedono da così tanti diversi dispositivi al giorno d'oggi. Posso prometterti che non c'è alcuna correlazione al ritmo con cui digito la mia password sul mio desktop principale di lavoro e la tastiera Swype sul mio tablet.

    
risposta data 29.04.2016 - 00:28
fonte
13

Sì, è più sicuro. Renderebbe una password temporizzata di 8 caratteri strong come una password non temporizzata di ~ 9.5 caratteri.

Questa sarebbe una forma di dinamiche di battitura . È stato un settore in ricerca attiva per un po '- anche se il software che gira su un Amiga probabilmente precede la maggior parte di esso!

Esiste un pacchetto Python per questo , nel caso tu voglia sperimentare in un linguaggio più moderno (disclaimer: I lo ha scritto) .

Alcuni servizi moderni utilizzano questa tecnica - come Coursera, chi lo usa per assicurarsi che la persona che sta rispondendo a un test sia l'utente vero .

Esaminiamo un po 'di teoria per rispondere alla tua domanda. Le opzioni usuali per l'autenticazione umana sono:

  • Qualcosa che conosci (password, codice pin)
  • Qualcosa che hai (cellulare, token hardware, smart card)
  • Qualcosa che sei (impronta digitale, iride, andatura ). Solitamente dati biometrici .

La dinamica dei tasti appartiene alla terza categoria. Di solito, i buoni sistemi di autenticazione si basano sull'avere più di uno di questi. Quando si utilizzano due sistemi diversi, questo è comunemente noto come autenticazione a due fattori .

Solitamente, la biometria viene fornita con un paio di avvertenze :

  • Possono cambiare nel tempo. Lo schema di battitura cambierà con l'ora del giorno, l'altezza della sedia e della scrivania, la tastiera che stai utilizzando e molti altri fattori
  • Potrebbero essere irrimediabilmente persi. Se riesci a perdere un dito, non sarai mai in grado di autenticarti.

Il tuo design, tuttavia, non utilizza un biometrico tradizionale. Stai chiedendo all'utente di ricordare un modello di battitura. Questo rientrerebbe nella prima categoria ( qualcosa che conosci ), quindi, in modo efficace, puoi misurare la quantità di sicurezza che aggiunge usando entropia .

Supponendo che il tuo sistema abbia due possibili durate della pressione dei tasti (che il tuo esempio sembra implicare), questo aggiunge un po 'di entropia per carattere - quindi renderebbe una password temporizzata di 8 caratteri circa strong di ~ 9.5 caratteri non- password temporizzata.

Naturalmente, anche il design presenta difetti, se confrontato con le dinamiche biometriche dei tasti:

  • il fatto che il modello sia molto particolare lo renderà più suscettibile a un utente malintenzionato con un registratore audio
  • Poiché il pattern è conosciuto dall'utente, possono essere forzati a rivelarlo. Le dinamiche dei tasti tradizionali possono essere utilizzate come autenticazione implicita .
risposta data 29.04.2016 - 03:29
fonte
6

Poiché questo preclude fondamentalmente l'uso di un gestore di password, che è una best practice di base per la sicurezza delle password, non migliora ma danneggia la sicurezza delle password.

    
risposta data 28.04.2016 - 23:50
fonte
5

È un'idea chiara e l'effetto netto sarebbe un aumento dell'entropia della password. Ad esempio, supponi che la soglia sia 1/4 di secondo e che la pausa massima sia 1 secondo. Ad un certo punto le pause verrebbero convertite in bit e questo aumenterebbe effettivamente il set di caratteri della password di 4X; per esempio. un set di 80 caratteri diventerebbe un set di 320 caratteri. Una password di 10 cifre con 80 possibili caratteri diventerebbe 1 milione di volte più difficile da applicare alla tua forza bruta implementando la tua idea. Un altro modo per dire che è la tua password di 10 caratteri sarebbe più simile a 13 o 14 caratteri.

In pratica, il principale vantaggio che vedo è che è probabilmente più facile per gli umani ricordare il ritmo di una canzone combinata con 10 caratteri piuttosto che ricordare 14 caratteri. Ma le password migliori sono quelle che gli umani non riescono a ricordare, quindi sarebbe probabilmente molto più semplice (per tutte le parti coinvolte) aggiungere semplicemente alcuni caratteri alla tua password per ottenere lo stesso aumento di entropia.

    
risposta data 28.04.2016 - 22:54
fonte
5

Ho lavorato un po 'su questo, e alcune aree correlate, e la mia risposta alla domanda dipende da quanto tempo hai:

Risposta breve: Sì, con un ma.

In poche parole, come hai scoperto in precedenza, ci sono delle somiglianze nella sequenza di tasti osservata (o in altri modelli biometrici comportamentali). Questi possono, in teoria, essere utilizzati per una maggiore sicurezza, ma i tassi di falsi positivi e di falsi negativi sono ancora relativamente elevati, quindi l'usabilità è discutibile, e non ci sono librerie pre-costruite che raccomanderei come affidabili.

Risposta più lunga: No, con un tuttavia.

Il problema con la biometria comportamentale nel contesto della sicurezza è che non si adatta ai nostri modelli attuali. Se ti viene data una password, è giusto o è sbagliato. Se qualcosa sta misurando il tuo diaframma, è una corrispondenza o non lo è. Non c'è margine di manovra o spazio di manovra, l'uno o l'altro, l'autenticazione binaria.

I comportamentali non lo fanno. I comportamenti cambiano a seconda dell'ora del giorno, dell'ora del mese, del tempo esterno. Puoi dire "questo aspetto come questa persona", ma non c'è una risposta "sì / no" asciutta e tagliente, che li rende cattivi all'autenticazione tradizionale, in particolare con dimensioni di esempio brevi come le password.

D'altra parte, c'è un lotto di analisi comportamentale che può essere misurato (uso della rete, sequenza di tasti, uso del mouse, movimento e una ricchezza di altri). Questi possono essere combinati per dare un'indicazione di fiducia prolungata per un periodo prolungato. Ad esempio, puoi accedere al tuo computer e non ti consente di accedere alla tua banca perché non ti ha ancora verificato. Fai qualche altra cosa che ti serve, lavora per un po 'e gli algoritmi restituiscono un buon valore di confidenza e l'accesso è concesso ai sistemi privilegiati.

Essenzialmente, le rotte di autenticazione binaria attualmente in atto non sono adatte alla biometria comportamentale, ma ci sono molte promesse per l'autenticazione basata sulla fiducia più avanti sulla linea.

    
risposta data 29.04.2016 - 15:37
fonte
4

Un altro motivo per cui no: supponi che l'utente digiti di nascosto la password occasionalmente. Tu potresti digitarlo perfettamente, ma il resto di noi ha qualche volta dita grasse. Probabilmente lo digitano più lentamente al secondo tentativo e rovinano le tue metriche. Ciò è particolarmente vero se c'è un timeout / delay rilevabile (rate limitatore o solo un server di login lento) poiché non vorrebbe aspettare un altro ritardo che è già stato infastidito dal primo

    
risposta data 29.04.2016 - 10:25
fonte
1

Chiamiamo questa password inserita .

In sostanza, quello che stai facendo è questo:

  • Cercando di aumentare l'entropia della password.

Questo ha alcuni svantaggi, come il fatto che le persone cambiano, e potrebbe morderti dopo alcuni anni.

La domanda è: vale questo metodo per aumentare l'entropia della password? Per rispondere correttamente, è necessario prima misurare l'entropia totale acquisita richiedendo l'inserimento di una password temporizzata.

Direi che non otterrai molta entropia, perché la maggior parte delle persone generalmente usa le tastiere in modo simile. Quindi, quando sai che la maggior parte delle persone generalmente usa le tastiere in modo simile, saprai che non c'è molta entropia (o informazione) nel conoscere la battitura a tempo.

Quindi suggerisco che:

  • Le voci della password temporizzate non valgono i rischi.
  • Se hai bisogno di più entropia, usa solo password di qualità più elevata (più lunga con più lettere casuali).
risposta data 29.04.2016 - 06:11
fonte
1

È un'idea fantastica, ma se non è stata implementata correttamente, come hanno detto tutti, non funzionerebbe perché le persone cambiano e la tolleranza d'errore dovrebbe essere implementata correttamente.

La mia idea di un buon modo per implementarlo sarebbe vedere se l'utente immette la propria password in un determinato schema temporale e se non lo è e la password è corretta, è possibile utilizzare queste informazioni per effettuare la richiesta sembra un po 'sospetto e avere altre cose come chiedere all'utente di ottenere un testo sul proprio telefono per assicurarsi che sia veramente loro.

I Professionisti: l'utente inserisce la propria password normalmente, se è fuori tempo, allora si può andare a misure secondarie di autenticazione. Ciò disturba solo l'utente se lo digita in modo anomalo o se qualcuno sta tentando di accedere al proprio account.

I contro: i loro potrebbero essere falsi positivi che potrebbero infastidire l'utente che tenta di accedere e gli orari possono essere visti e / o registrati da qualcuno che ti guarda da dietro.

    
risposta data 03.05.2016 - 04:17
fonte
1

Sì, può funzionare, se gestito correttamente

I vantaggi sono chiari: è più difficile per qualcun altro accedere con la tua password. Indovinare diventa più difficile, e anche se qualcuno ha (in parte) la tua password, non ha ancora finito.

Quindi parlerò delle preoccupazioni:

Sì, puoi ancora accedere con un dito rotto

Certo, la password può essere "persa" quando si rompe il dito, ma questo può essere risolto rendendo disponibile una password master (più strong). Se hai mai avuto circostanze che non ti permettono di mantenere il tuo ritmo, puoi sempre usare la password principale per entrare. (E cambia il rythem se necessario).

Sì, puoi ancora utilizzare più dispositivi

Ovviamente diversi tipi di dispositivi avranno ritmi diversi, ma se li usi frequentemente, il rythem per dispositivo dovrebbe essere abbastanza stabile. Come tale, puoi consentire agli utenti di avere più ritmi validi.

Sì, puoi ancora utilizzare i gestori di password

Ovviamente i gestori di password potrebbero essere costretti a inviare il rythem e le sequenze di tasti. Anche se questo può essere impegnativo, potrebbe essere molto semplice utilizzare la password master appena citata quando si effettua il login con il gestore delle password.

    
risposta data 03.05.2016 - 11:56
fonte
0

Piuttosto che bloccarlo / consentire brutalmente all'utente, potresti "apprendere" il metodo dell'utente su un periodo di 10-20 accessi e prendere la mediana con un leggero margine di sincronizzazione.

Login regolare: - Password + accesso a due fattori per app / sms / link email

Dopo un po 'conoscerai il suo pattern e potrai dare all'utente la possibilità di abilitare la sicurezza aggiuntiva, e quindi ridurre il numero di volte che ha bisogno di accedere con il login a due fattori. (supponendo che sia stato utilizzato lo stesso IP)

Quando la sicurezza aggiunta è attiva, è possibile consentire all'utente di accedere con la sola password finché la sorgente IP è la stessa. Dargli un metodo di accesso più facile / veloce. E quando si rileva che l'utente sta variando il suo accesso, toccare tocca toccare molto da registrazioni precedenti, è possibile chiedere nuovamente l'accesso con due fattori e aggiornare l'elenco. (prendi sempre la mediana oltre 5 tentativi di accesso, eliminando gli estremi)

    
risposta data 30.04.2016 - 13:44
fonte
0

Penso che questo potrebbe avere il maggior potenziale per situazioni in cui una password viene usata spesso e l'input non consente una grande varietà di caratteri. Un esempio ovvio sarebbe qualcosa come un codice di porta. Questo ha anche il vantaggio che, anche se qualcuno è in grado di vedere il codice stesso sopra la spalla, deve comunque avere il ritmo giusto. Ciò consente anche di ottenere più entropia da un dispositivo di input molto semplice.

Si potrebbe anche immaginare una situazione in cui vi è un solo pulsante e il loro ritmo è l'unico input, dopo tutto si tratta di una versione digitale del "colpo segreto".

Se non altro, questo potrebbe avere qualche valore di novità per le applicazioni di sicurezza di basso livello e potrebbe anche avere una nicchia più seria per i musicisti professionisti che dovrebbero avere un senso del tempo molto preciso.

    
risposta data 03.05.2016 - 01:39
fonte

Leggi altre domande sui tag