Per un'app UWP, qual è il meccanismo consigliato per memorizzare i segreti che devono essere distribuiti con un'app come chiavi API e token segreti? Per i token di autorizzazione generati dall'utente PasswordVault ha senso, ma non riesco a vedere un modo per impostarli come parte della distribuzione delle app. Fino ad ora li ho incorporati nell'app che non sembra "corretta" o sicura.Qual è il modo consigliato di memorizzare chiavi e segreti API in un'app UWP?
10
A
risposta
1
È possibile utilizzare PasswordCredential
api, frammento di codice:
string CredentialsName = "testing";
private PasswordCredential GetCredentialFromLocker()
{
PasswordCredential credential = null;
var vault = new PasswordVault();
IReadOnlyList<PasswordCredential> credentialList = null;
try
{
credentialList = vault.FindAllByUserName(Username);
}
catch
{
return credential;
}
if (credentialList.Count > 0)
{
credential = credentialList[0];
}
return credential;
}
public void CreatePassword(string password, string username)
{
var vault = new PasswordVault();
vault.Add(new PasswordCredential(CredentialsName, username, password));
}
Per le finestre 8.1 Ho usato per creato dll che memorizzare le informazioni richieste e aggiungerli come risorsa. Ora stiamo pianificando di utilizzare la crittografia e di archiviare i dati in un file che può essere decodificato all'interno dell'app e accessibile in modo che anche se qualcuno dovesse accedere al file dalla memoria locale non sarà in grado di accedere ai dati. Sebbene tu abbia l'opzione di 'Keycredential' e' Identity', ma questi vengono in uso una volta che un utente accede. – Jerin
@Jerin L'ho preso in considerazione, ma sembra che tu abbia appena spostato il problema. Come proteggi la tua chiave di decodifica? – dkackman
La chiave di decrittografia verrà aggiunta come costante nel codice o come risorsa .dll. A meno che qualcuno non abbia hackerato il tuo codice, non saranno in grado di trovare il codice di crittografia utilizzato e la chiave di decodifica. – Jerin