Достаточно ли безопасен Android Keystore для сохранения имени пользователя и пароля? - PullRequest
0 голосов
/ 23 мая 2018

Я хотел бы сохранить пароль пользователя в приложении.

Мой вопрос / страх, я прочитал несколько ответов, похожих на этот , который объясняет, если злоумышленник получает физический доступ к устройству, он может прочитать имя пользователя / пароль вобычный текст в файле общих настроек.Является ли 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;
        }
    }
}

Как видите, довольно простой подход, подчеркивающий его безопасность.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...