Я осмотрелся и не нашел информации о том, как Android удается хранить пароли на устройстве. Особенно пароли Gmail. Я хочу узнать, как Android шифрует и хранит пароли? Какой ключ он использует и где хранится этот ключ, и какой алгоритм шифрования он использует.
security
gmail
password
gmail-password
asudhak
источник
источник
Ответы:
Официальное приложение Gmail не хранит пароль на вашем устройстве. Ваш пароль на 100% безопасен, если вы используете это приложение.
Вот как это работает: пароль используется серверами аутентификации Google ТОЛЬКО впервые. После первой успешной аутентификации на
Auth Token
устройство загружается файл, который сохраняется вaccounts.db
файле в виде простого текста. Для всех последующих входов используется этотAuth Token
пароль, а НЕ ваш оригинальный пароль.Таким образом, если ваше устройство украдено, все, что кто-либо может получить,
Auth Token
становится недействительным, как только вы измените свой пароль. Итак, вы будете в конечном итоге командовать.Для максимальной безопасности, я бы порекомендовал вам включить
2-Factor Authentication
и создатьDevice Specific Password
для вашего устройства. После потери устройства все, что вам нужно, это отключить это устройство. Вам даже не нужно менять основной пароль.Примечание. Это не соответствует действительности, если вы используете сторонние почтовые приложения для Gmail, а именно. Приложение электронной почты, K-9 Mail и т. Д. Протокол IMAP или POP требует подлинного пароля для аутентификации пользователей каждый раз. Таким образом, простой пароль должен быть доступен приложению электронной почты перед отправкой на сервер. Таким образом, большинство почтовых приложений хранят пароли в виде простого текста (хеширование / шифрование бесполезно, поскольку ключ хеширования / шифрования должен храниться локально). В этом случае я бы порекомендовал вам включить
2-Factor Authentication
и создатьDevice Specific Password
для вашего устройства. После потери устройства все, что вам нужно, это отключить это устройство.Обновление:
Технически возможно локально хранить пароли в зашифрованном виде / хэшированном виде без локального сохранения ключа шифрования / ключа хеширования в виде простого текста. Спасибо @JFSebastian за указание на это.
К сожалению, такая реализация для Android пока недоступна.Начиная ICS, Android предоставляет API KeyChain, с помощью которого приложение может хранить пароль локально в защищенной форме. Приложения, использующие KeyChain API, встречаются редко, но они используются в стандартном почтовом приложении (спасибо @wawa за эту информацию). Таким образом, ваш пароль будет в безопасности с приложением электронной почты, пока ваш экран заблокирован. Помните, что KeyChain не является безопасным, если устройство имеет root-права и недоступно на устройствах, предшествующих ICS.источник
Пароли Android, используемые во встроенном приложении электронной почты, хранятся в виде простого текста в базе данных SQLite. Это в отличие от приложения Gmail , которое использует токены аутентификации, как описано в ответе Сачина Сехара .
Для Jelly Bean расположение базы данных:
Местоположение выше зависит от версии Android
Это местоположение на некорневом устройстве защищено и защищено операционной системой.
На корневых устройствах пользователи уже технически взломали свою собственную безопасность, и даже если бы она не была в открытом виде, ее все равно было бы тривиально расшифровать, поскольку для этого должен существовать ключ где-то на устройстве.
Член команды разработчиков Android опубликовал объяснение, которое до сих пор действует:
Кроме того, поскольку эта проблема беспокоит многих пользователей Android, вы также можете следить за этим обсуждением на Slashdot - данные паролей Android, хранящиеся в виде простого текста .
источник
accounts.db
файл будет защищен от чтения , кроме счетовsystem
.