Protezione delle credenziali di terze parti in un database Web alla luce di password deboli

0

Ho bisogno di memorizzare credenziali di terze parti in un database per un'applicazione web. La terza parte supporta OAUTH e ho intenzione di ottenere un token longevo per consentire alla mia app di accedere a terze parti, ma vorrei proteggere il token OAUTH memorizzato nel mio database crittografandolo con la password di login dell'utente (usando PBKDF2 o bcrypt).

Poiché gli utenti di solito scelgono password pessime, sto richiedendo l'autenticazione a due fattori alla mia applicazione utilizzando TOTP ( RFC 6238 ).

C'è un modo per incorporare il token TOTP in uno schema per crittografare il token OAUTH di terze parti?

    
posta Ralph 18.05.2016 - 22:32
fonte

1 risposta

-1

Questo non ha senso. Esiste un'interessante differenza fondamentale tra password e TOTP / HOTP. TOTP è un algoritmo simmetrico. Il server e il client condividono le stesse informazioni. Condividono la chiave segreta OTP, l'ora sincronizzata e l'ultimo timecounter per evitare la riproduzione.

Al contrario il meccanismo di autenticazione della password non condivide le informazioni. L'utente conosce la password, ma il server non conosce la password. Conosce solo l'hash salato e forse pepato della password. Cioè il server non ha tutti i componenti necessari per conoscere, ciò che l'utente conosce - cioè la password!

Anche in questo caso, nel caso di TOTP il server ha tutte le informazioni. L'utente non ha alcuna informazione aggiuntiva. Ciò significa che se si desidera utilizzare TOTP per crittografare qualcosa sul server, il server disporrà anche di tutte le informazioni per crittografarlo / decodificarlo. Ciò significa che i dati crittografati e la chiave di crittografia (o le informazioni che utilizzi per creare la chiave di crittografia) si trovano sul server.

La domanda è, quali minacce vuoi mitigare.

L'attenuazione della minaccia di iniezioni SQL e il furto del database possono essere affrontati utilizzando una chiave di crittografia a livello di applicazione, che non è archiviata nel database. In questo caso è persino meglio che creare una chiave di crittografia da qualsiasi materiale TOTP, che probabilmente è anche memorizzato nel database, poiché l'hacker otterrebbe i dati crittografati e le informazioni per creare la chiave di crittografia quando ha rubato il database.

    
risposta data 21.05.2016 - 09:03
fonte

Leggi altre domande sui tag