Sto sviluppando un C # relativamente relativamente amatoriale per un piccolo team di assistenza clienti e lavorando con l'API SalesForce nella mia applicazione. Con SalesForce, l'accesso tramite l'API richiede l'aggiunta di un token di sicurezza alla password. Poiché i miei utenti sono pignoli, sarà necessario (solo) il token di sicurezza per essere memorizzato nel database dell'applicazione in modo che non debbano inserirli ogni volta che usano l'applicazione.
Spero di ricevere qualche consiglio sul modo migliore per mantenere questo ragionevolmente sicuro poiché questa è la mia prima avventura in qualsiasi tipo di serio tipo di sicurezza. Ho letto e preso il metodo di crittografia / decrittografia AESThenHMAC da questo dopo .
I miei pensieri sul processo sono i seguenti:
- Al primo accesso all'applicazione, all'utente viene richiesto il nome utente, la password e il token di sicurezza.
- Il token di sicurezza viene crittografato usando SimpleEncryptWithPassword da sopra con la loro password come parametro 'password' e memorizzato nel database.
- Nei login successivi, all'utente viene richiesto il nome utente e la password, il token di sicurezza viene recuperato e decrittografato, quindi l'utente ha effettuato l'accesso utilizzando l'API Salesforce.
Le mie domande sono:
- Questo fornisce un ragionevole livello di sicurezza per l'archiviazione del token di sicurezza?
- Se no, perché no e cosa posso / dovrei fare per migliorarlo?
-
In caso affermativo, quale dei seguenti è il metodo migliore per indicizzare il token di sicurezza con il nome utente nel database?
- Il nome utente è testo normale
- Il nome utente è sottoposto a hash
- Il nome utente è crittografato nello stesso modo del token di sicurezza
Grazie in anticipo per qualsiasi consiglio / aiuto / input.