Ho un servizio Windows che si connette a un database per eseguire il polling di alcuni valori al fine di monitorare determinate attività.
Naturalmente, per usarlo ho bisogno di una password del database. Devo mantenere questa password al sicuro, poiché ovviamente non dovrebbe essere una conoscenza comune. Per fare ciò, ho sviluppato una semplice crittografia XOR e memorizzato il testo cifrato nel file di configurazione. La chiave che ho usato per il codice è stata per ora codificata nel servizio.
Ovviamente, questo hard coding non è l'ideale, dato che qualcuno può smontare l'exe e vedere sia la chiave che il codice!
Non mi aspetto che la maggior parte delle persone sia in grado di farlo, ma ritengo sia meglio mitigare i rischi laddove possibile. Quindi, c'è forse un approccio migliore a questo problema?
So che è sempre meglio utilizzare una soluzione esistente, laddove possibile, ma non sono riuscito a trovare nulla di specifico che avrebbe funzionato in questo caso. Ho esaminato l'API di Windows Data Protection, ma da quello che ho potuto capire ha funzionato solo all'interno di un'istanza di un'applicazione. Non mi permetterebbe di memorizzare il testo cifrato in un file e accedervi in seguito.