dove devo memorizzare la password della mia applicazione?

0

Ho un'applicazione Windows che non usa un database e non è su Internet. Contiene dati molto importanti (dati caricati da file crittografati). L'utente ha bisogno di una password per accedere a questa applicazione.

Dove devo archiviare in modo sicuro la password dell'applicazione? (inoltre vi sono alcuni dati di stringa brevi che devono essere memorizzati (indirizzi dei file)). L'applicazione viene eseguita su Windows XP e versioni successive. Io uso C #.

Nota: non chiedo come memorizzare la password. So che dovrebbe essere sottoposto a hash e dovrebbe usare sale per questo. Vedi questo post .

    
posta NokhodSiah 05.04.2017 - 10:24
fonte

3 risposte

2

link

Developers who write for Windows can use the Credentials Management API including Credentials Management User Interface (UI) functions to obtain and manage credential information such as user names and passwords. These functions request Windows account information to be used instead of the credentials established while logging on. Such requests typically occur when the logon credentials do not have permissions that are required by the application. The Credentials Management UI functions provide interfaces with the appearance of the Windows user interface. These functions include customizable options that add user's information to the user's credentials store.

Nei tuoi dati sono davvero impotenti a prendere in considerazione l'utilizzo di soluzioni basate su hardware (ad esempio, smart card, TPM).

    
risposta data 09.07.2017 - 00:37
fonte
1

Dalla tua domanda? Non credo che dovrebbe memorizzare la password.

Da quello che ho raccolto dalla tua domanda, ecco il tuo attuale processo di pensiero:

  1. L'utente fa scattare l'app
  2. L'utente deve digitare la password dell'app
  3. L'app controlla se la password è corretta
  4. Se non lo è, l'app si chiude
  5. Se lo è, inizia a caricare i dati

E invece questo modello?

  1. L'utente fa scattare l'app
  2. L'utente deve digitare la password dell'app
  3. L'app legge i dati crittografati dal disco
  4. L'app tenta di decodificare i dati utilizzando la password fornita dall'utente
  5. Se i dati decrittografati non sono validi, l'app si chiude (password non era giusto)
  6. Se i dati decrittografati sono validi, l'app continua (la password era corretto)

Ha senso? La tua app non memorizza affatto la chiave: sta semplicemente tentando di decrittografare i dati con qualsiasi utente digitato.

    
risposta data 04.02.2018 - 23:48
fonte
0

Per risolvere questo problema, ho bisogno di un posto dove archiviare i dati. Anche se ho scelto di usare una chiave per decifrare il file e se fallisce, pensalo come una chiave sbagliata (non è giusto) Avrei bisogno dell'indirizzo del file.

Ci sono due modi possibili:

  1. usa il registro
  2. usa un altro file

Entrambi hanno lati positivi e negativi, ma consiglio un file.

Per un nome di file, puoi creare un nome usando alcune proprietà come username, ecc. (la proprietà dovrebbe rimanere unica per l'utente in condizioni accettabili). Inoltre, puoi utilizzare serialization e binaryformatter per salvare / caricare i dati.

Ora la domanda dovrebbe essere crittografata o no? Poiché archiviamo alcuni dati (indirizzo del file) di cui abbiamo bisogno mentre vengono salvati, non possiamo usare la password inserita per la crittografia altrimenti ci sarebbero suggerimenti per la password. Possiamo crittografare il file o alcuni dei suoi dati con qualche altra password creata da alcune proprietà o non crittografarla (non credo che la crittografia in questo modo aiuti nessuno).

Sarebbe saggio avere un backup di questo file.

Aspetterò una settimana circa e se non c'è una risposta migliore e questa risposta è valida (basandomi sui commenti), la accetterò come risposta.

    
risposta data 09.04.2017 - 09:38
fonte

Leggi altre domande sui tag