Memorizza una password in modo sicuro come parte di un servizio web

5

Dire che sto creando un servizio web pubblico che ha bisogno di scrivere file su un account Dropbox (solo un esempio). Ha bisogno di scrivere file su un account centrale, non uno per utente. Questo servizio deve accedere all'account Dropbox con una password. Desidero che il servizio Web sia in grado di accedere al mio account Dropbox senza esporre pubblicamente la password. Come potrei realizzare questo? Se crittografo la password in un file separato, la chiave di crittografia deve ancora essere nel file pubblico che contiene il codice per il servizio.

    
posta Luke Taylor 16.02.2016 - 20:40
fonte

1 risposta

10

Se questo è veramente per Dropbox, non farlo. Dropbox ha un'API e OAuth. Utilizza il provider OAuth di Dropboxe per ottenere invece un token OAuth per l'utente e puoi memorizzarlo. Non prendere o memorizzare le credenziali dell'utente.

Se è per un servizio che non espone un fornitore di autorizzazioni e in effetti è necessario archiviare le credenziali per conto dell'utente, è necessario farlo con molta attenzione. Preferibilmente verranno archiviati in un servizio separato, con solo le sessioni autenticate che vengono presentate all'applicazione principale per ridurre la superficie di attacco. Le credenziali stesse devono essere archiviate in un formato crittografato e la chiave di crittografia deve essere archiviata nel modo più sicuro possibile, preferibilmente in un HSM.

Quando hai dati preziosi come le credenziali di autenticazione per i servizi di terze parti, il tuo dovere di diligenza nel proteggere queste risorse è molto, molto alto. La difesa in profondità sarà fondamentale, così come la limitazione dell'accesso, della registrazione e del monitoraggio e la modellazione dettagliata delle minacce per comprendere l'ambito della superficie di attacco.

    
risposta data 16.02.2016 - 20:51
fonte

Leggi altre domande sui tag