archiviazione delle credenziali del cliente sul server OAuth2

2

Sto sviluppando un'API e ho utilizzato un'implementazione consigliata del protocollo OAuth2: PHP OAuth2 Server .

Questa libreria memorizza l'ID client e il segreto del client come testo normale in una tabella di database.

Si noti che intendo le credenziali dei client API, non le credenziali degli utenti.

Sono preoccupato per il caso in cui un utente malintenzionato ottenga l'accesso al database, sarà in grado di utilizzare i dati ottenuti a proprio piacimento, diversamente dall'hashed + le password memorizzate salate che impiegano molto tempo per essere rese utili.

Questo è davvero un rischio per la sicurezza? In che modo potrebbe essere migliorata la sicurezza, oltre al firewall e alle autorizzazioni dell'utente?

PS: selezionato questa domanda ma la mia applicazione funziona su * nix server

    
posta Sanção 19.11.2014 - 19:32
fonte

1 risposta

3

Non considererei questo un importante problema di sicurezza poiché i valori sono limitati al solo accesso del tuo sistema ai siti di terze parti. È meno desiderabile, ma i valori possono essere facilmente invalidati senza alcun sanguinamento in altri sistemi che accedono agli stessi servizi. Certamente non fa male, ed è persino saggio, crittografarlo, ma dovresti comunque crittografarlo con un valore trovato sul server, quindi aggiunge solo una leggera difficoltà nell'accedere alle chiavi. Non puoi cancellarli come se fossi una password dato che sono solo un valore di token che non ha alcuna relazione con nessun input utente che tu abbia mai visto.

A seconda del tuo caso d'uso, puoi usare la password dell'utente per il tuo sistema per crittografare i valori (se non stai usando oAuth per l'autenticazione del tuo sistema), e puoi solo prendere e tenere i token mentre l'utente è loggato in (se si utilizza oAuth per l'autenticazione), ma ciò limita le cose come la capacità di fare qualsiasi interazione mentre l'utente è offline, il che potrebbe non essere un vincolo praticabile nel proprio sistema.

L'utilizzo di tali chiavi dovrebbe essere limitato alle applicazioni che accedono ai sistemi di terze parti e potrebbe essere limitato al solo accesso del tuo server a tali sistemi, a seconda di come sono configurate le cose.

Hanno un valore piuttosto basso per un attaccante. È una buona idea prendere le misure che è possibile per proteggerle, ma non le classificherei tanto sensibili quanto una password (che è molto probabile che venga utilizzata altrove e dà accesso diretto all'account).

    
risposta data 19.11.2014 - 19:45
fonte

Leggi altre domande sui tag