Я хотел бы сохранить пароль пользователя в приложении.
Мой вопрос / страх, я прочитал несколько ответов, похожих на этот , который объясняет, если злоумышленник получает физический доступ к устройству, он может прочитать имя пользователя / пароль вобычный текст в файле общих настроек.Является ли KeyStore более безопасным, чем этот, и мне не о чем беспокоиться.
Если кто-то задается вопросом, почему из дополнительных мер предосторожности я пытаюсь сделать этот HIPPA-совместимый.И не смог найти ничего о том, какой тип шифрования используется или можно ли его сохранить в виде простого текста и обратного инжиниринга.
Больше, чем использование его в качестве опции хранения key/value
, если я зашифрую / расшифрую ихперед хранением?Каков наилучший подход?
Любые ссылки на google docs / videos на Keystore
, которые рассказывают о том, как реализована защита, приветствуются.
Этот подход я использую в настоящее время.Извините за C#
Я реализовал это в Xamarin
.
private KeyStore _keyStore;
_keyStore = KeyStore.GetInstance(KEYSTORE_KEY);
_keyStore.Load(null);
KeystoreEntry entry = new KeystoreEntry(Username, Password);
_keyStore.SetEntry(ServerURL, entry, null);
KeystoreEntry.cs
public class KeystoreEntry : Java.Lang.Object, IEntry {
EntryAttribute _usernameAttribute;
EntryAttribute _passwordAttribute;
public string Username {
get {
return _usernameAttribute.Value;
}
}
public string Password {
get {
return _passwordAttribute.Value;
}
}
public KeystoreEntry(string username, string password) {
_usernameAttribute = new EntryAttribute("Username", username);
_passwordAttribute = new EntryAttribute("Password", password);
}
internal class EntryAttribute : Java.Lang.Object, IEntryAttribute {
private string _name;
private string _value;
public string Name {
get { return _name; }
set { _name = value; }
}
public string Value {
get { return _value; }
set { _value = value; }
}
public EntryAttribute(string name, string value) {
_name = name;
_value = value;
}
}
}
Как видите, довольно простой подход, подчеркивающий его безопасность.