2010-08-07 8 views
7

La maggior parte delle informazioni che ho trovato e letto sulla corretta memorizzazione delle password in un database dicono che dovrei Hash il testo della password in chiaro con un valore salt unico per ogni utente e quindi archiviare quell'hash nel database. Ma questo processo non funziona per i miei bisogni ...Archiviazione e recupero della password corretta per gli account di servizio?

Ho un servizio Windows scritto in C# che deve connettersi ad altre macchine remote in diversi centri dati utilizzando account di servizio specifici. Questi account di servizio sono come gli account utente di dominio, ma non ci sono persone reali dietro di loro e hanno solo le autorizzazioni appropriate per eseguire il payload del servizio su ciascun server specifico. Le informazioni relative al servizio sono memorizzate in una tabella di SQL Server che include la password per ciascun account. Attualmente, sto usando la crittografia simmetrica (Rijndael) per offuscare le password nella tabella DB. La chiave viene salvata in un file di configurazione separato con autorizzazioni di accesso rigorose.

Ogni volta che il servizio ha un payload pianificato per l'esecuzione su una macchina remota, cerco le informazioni sull'account di servizio appropriato sulla tabella e lo decifro utilizzando la chiave. C'è anche un sito Web interno che è fondamentalmente un front-end per la gestione delle varie impostazioni per questo servizio, e lì l'amministratore può visualizzare e modificare la password degli account di servizio.

È un buon approccio per mantenere le cose sicure? Ci sono evidenti difetti in questo schema?

+0

Il sito Web interno utilizza HTTPS quando si inviano password al back-end? Presumibilmente la macchina su cui gira il servizio è protetta da sguardi indiscreti. –

+0

Sì e Sì ... Il sito Web interno è in esecuzione su https e il computer del servizio ha accesso limitato. –

risposta