Criptare stringa di connessione al DB sul client

di il
2 risposte

Criptare stringa di connessione al DB sul client

Buona sera,

Sto sviluppando un applicativo client in C# .Net, utilizzando Entity Framework e MySQL come DB.

La stringa di connessione la salvo nel file app.config, vorrei avere dei consigli su come proteggere la stringa di connessione in fase di deploy. Ho cercato già tanto in rete, trovando anche possibili soluzioni, ma vorrei condividerle con voi per avere chiarimenti e suggerimenti.

Premetto che ho seguito queste linee guida


Il problema che mi pongo è questo:

La cifratura dovrebbe avvenire in fase di deploy, perché se la cifratura la applico sulla macchina di sviluppo, quando faccio il deploy su un'altra macchina, quest'ultima non potrà decifrare la stringa di connessione, dato che la chiave di cifratura dipende dalla macchina di sviluppo.

Quindi un'idea potrebbe essere quella di cifrare la stringa di connessione al primo setup dell'applicazione.
Ma in questo modo si dovrebbe distribuire in chiaro (salvata da qualche parte) la stringa di connessione.
Quindi se un utente vuole recuperare i parametri di accesso potrebbe recuperarli prima di installare il programma e quindi prima che avvenga la cifratura. Giusto?

E' possibile distribuire l'applicazione con la stringa di connessione cifrata?
Così facendo gli utenti possono accedere al db soltanto mediate interfaccia e non avranno mai i parametri di connessione per accedere direttamente al db bypassando tutti i controlli presenti nei livelli intermedi tra GUI e DB.

Quali sono le tecniche più gettonate e sicure?

Saluti
Roberto

2 Risposte

Devi accedere o registrarti per scrivere nel forum
2 risposte