Где хранятся пароли андроиде аккаунта. Где хранятся пароли от WiFi на Андроид

Привет Хабр! Я молодой разработчик, специализирующийся на Android-разработке и информационной безопасности. Не так давно я задался вопросом: каким образом Google Chrome хранит сохраненные пароли пользователей? Анализируя информацию из сети и файлы самого хрома (особенно информативной была эта статья), я обнаружил определенные сходства и отличия в реализации сохранения паролей на разных платформах, и для демонстрации написал приложения для извлечения паролей из Android версии браузера.

Как это работает?

Как мы можем знать из разных публикаций в сети на эту тему, Google Chrome на ПК хранит пароли своих пользователей в следующей директории:
«C:\Users\SomeUser\AppData\Local\Google\Chrome\User Data\Default\» в файле "Login Data ".

Данный файл является базой данных SQLite, и его вполне можно открыть и посмотреть. В таблице logins мы можем видеть следующие, интересующие нас поля: origin_url (адрес сайта), username_value (логин), password_value (пароль). Пароль представлен байтовым массивом, и зашифрован через машинный ключ, индивидуальный для каждой системы. Подробнее можно узнать из этой статьи. Таким образом, какая-никакая защита в Windows клиенте присутствует.

Android

Но так как я больше увлекаюсь Android"ом, то мое внимание забрал на себя, соответственно, Android-клиент браузера.

«Расковыряв» пакет Google Chrome (com.android.chrome ), я обнаружил, что его структура очень напоминает структуру ПК-клиента, и не составило труда найти точно такую же базу данных, отвечающую за хранение паролей пользователя. Полный путь к БД следующий: "/data/data/com.android.chrome/app_chrome/Default/Login Data" . В целом, эта база данных очень похожа на свою «старшую сестру» из ПК-версии, имея лишь одно, но очень значительное отличие - пароли тут хранятся в открытом виде. Возникает вопрос: можно ли программно извлечь пароли из базы? Ответ оказался весьма очевидным - да, если у вашего приложения есть root-права.

Реализация

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

Если описать его работу в двух словах, то оно работает так:

  • Получает root.
  • Копирует базу данных Chrome в свою директорию.
  • С помощью chmod получает доступ к копии БД.
  • Открывает БД, и извлекает информацию о логинах и паролях.
Приложение было размещено в Google Play .

Вывод

Как вывод из проделанной работы, можно сказать, что при наличии root-прав, вытащить базу паролей из браузера и отправить ее на свой сервер - задача вполне решаемая, и этот факт должен заставлять задуматься над тем, стоит ли доверять какому-либо приложению права суперпользователя.

Надеюсь, эта статья была информативной. Спасибо за внимание!

Где собственно и были найдены рассматреваемые экземпляры.

История вопроса

Два года назад, 21 октября 2008 года мобильная платформа Android перестала быть лишь виртуальной основой для разработчиков и вышла в реальный мир в образе коммуникатора T-Mobile G1 (HTC Dream). С момента первого выхода система претерпела множество изменений, как по качеству кода, так и по количеству возможностей, предоставляемых ей. Однако, как справедливо было замечено некоторыми хабровчанами, качество и популярность платформы зависят не только от интенсивности ее разработки и качества собственного кода, но и от приложений, которыми она позволяет пользоваться.

Кроме того, если вы любите обращать внимания на маленькие детали, то могли заметить, что Android, как операционная система, быстро приобрел большую популярность не только у простых пользователей, но также и у производителей мобильных устройств – ведь они достаточно быстро стали выпускать коммуникаторы бизнес-класса.
Осторожно, много скриншотов!

Никто не совершенен

Тем не менее, главное отличие Android-устройств от коммуникаторов бизнес-класса - это возможность активно использовать интернет-сервисы, причем не только предоставляемые главным разработчиком - Google, но и многие другие. Все это приводит пользователей платформы к необходимости хранения множества личных данных - не только пин-кодов своих банковских карт, но и множества паролей. Долгое время я сам хранил пароли в “простой” записной книжке - AK Notepad, однако сейчас я хочу рассмотреть приложения, которые позволяют делать это более правильно - шифруя информацию, которая не предназначена для посторонних.

Обзор

Список кандидатов, отобранных на рассмотрение:

При первом запуске KeePasDroid предлагает пользователю создать новую или открыть существующую базу хранения паролей:


KeePassDroid. Рис. 1. Создание/выбор БД для паролей.

Я запускал это приложение в первый раз, поэтому базу необходимо было создать:


KeePassDroid. Рис. 2. Ввод главного пароля.

Опционально, KeePassDroid предлагает использовать так же файл-ключ вместо пароля. Я редко использую файлы для авторизации (исключение составляют SSH-соединения), поэтому ввел обычный мастер-пароль.

Без дальнейших вопросов приложение показало мне список из двух групп с единственной кнопкой “Добавить группу”, что я и не преминул сделать:


KeePassDroid. Рис. 3. Список групп с созданной мной группой “Соцсети”.

К сожалению, сначала я не заметил, что значок группы выбирается при ее создании, а смена значка уже созданной группы в KeePassDroid не предусмотрена:

KeePassDroid обладает одной приятной возможностью - создание вложенных групп. Поэтому сортировка паролей и разделение их на группы и подгруппы ограничивается только полетом вашей фантазии:)

Итак, внутри возникшей группы “Cоцсети” я решил создать единственный элемент - сохранить пароль от моей учетной записи в Facebook. Это оказалось достаточно просто - внутри группы необходимо нажать кнопку “Добавить запись”, что я и сделал:

После добавления элемента группа выглядит следующим образом:

Внутри элемента вы можете увидеть введенную вами ранее информацию. Пароль отображается точками – в открытом виде вы не узнаете его даже при редактировании элемента. Вместо этого KeePassDroid предлагает вам скопировать пароль в буфер обмена, размещая это предложение в системной области уведомлений. Но почему-то, дважды По замечанию пользователя @pr0tey - в первой строчке приложение предлагает вам скопировать логин, во второй - пароль (Рис. 9).

KeePassDroid. Рис. 10. Меню программы. KeePassDroid. Рис. 11. Настройки.

Меню программы (Рис. 10), по моему мнению, обладает достаточным и необходимым функционалом - поиск по существующим элементам, изменение мастер-пароля и настройки программы, которые чем-то напомнили мне настройки программы TrueCrypt (Рис. 11). KeePassDroid позволяется вам хранить или не хранить историю файла-ключей, время хранения в буфере обмена, скрывать или не скрывать пароль и так далее. В целом, мои впечатления от приложения - положительные.

2. B-Folders


Официальный сайт

Похоже, что создание базы данных при запуске приложений хранения секретной информации - это некий негласный стандарт среди разработчиков платформы Android

Приложение B-Folders не выбивается из этого стандарта, и при первом запуске пользователь видит стандартное предложение:


B-Folders. Рис. 1. Создание БД для паролей.

При создании базы пользователь имеет возможность указать место ее хранения (во внутренней памяти телефона, либо на SD-карте), задать пароль, а также указать время, через которое база данных будет закрыта, если не используется. Для ее открытия вам снова придется ввести пароль.

К сожалению, в момент создания БД B-Folders “порадовало” меня неприятным экраном, однако после перезапуска продолжило работу:


B-Folders. Рис. 2. Приложение неожиданно закрылось.

При первом запуске разработчики приложения уведомляют своих пользователей о новых возможностях программы с помощью всплывающего окна:


B-Folders. Рис. 3. Уведомление о новых возможностях.

В уведомлении говорится, что теперь в программе появилась возможность создавать базу данных на SD-карте, а также синхронизировать ее с помощью USB-кабеля, помимо ранее существующих способов сделать это через сеть. Лично я не люблю подобные уведомления и считаю, что список возможностей программы можно было просто вынести в раздел “справка” или подобный.

Создать новый элемент в B-Folders легко - необходимо нажать на кнопку “New Item”, после чего программа предоставит вам следующий выбор:


B-Folder. Рис. 4. Список создаваемых элементов.

Как всегда, я создаю папку (группу, категорию) “соцсети” (Рис. 5), внутри нее элемент “Login Password” (Рис. 6)

Так же как и KeePassDroid, B-Folders позволяет создавать элементы внутри других элементов, и, главное, вложенные папки. Таким образом, пользователь получает большую свободу в распределении своих элементов.

При работе с программой была выявлена странная особенность. B-Folders зачем-то закрывает базу данных паролей при нажатии на кнопки “Назад” или “Домой” и, таким образом, вам придется вводить мастер-пароль каждый раз, если вы просто захотите переключиться между B-Folders и браузером. По-моему - это не слишком удобно.

Заканчивая описание, скажу следующее. У B-Folders, есть сильная сторона - возможность синхронизации с настольным компьютером, однако, мне не слишком нравятся программы, которые хранят мои пароли и, при этом, имеют неконтролируемый доступ в Интернет.

В целом, впечатление положительные, но также хочется пожелать авторам, чтобы они сделали работу приложения более стабильной.

3. Handy Safe Pro


Официальный сайт

При первом запуске приложение честно предупреждает пользователя о том, что ему доступна полнофункциональная бесплатная версия сроком на 14 дней (рис. 1.)

Handy Safe Pro. Рис. 1. Trial Предупреждение. Handy Safe Pro. Рис. 2. Создание новой базы.

Следующий шаг - по уже сложившейся традиции - создание базы данных для хранения секретной информации (Рис. 2.). После этой процедуры Handy Safe Pro показывает экран с предустановленным набором красивых папок, который, однако, меня не интересует - потому что я снова создаю папку “соцсети”, для того, чтобы разместить там элемент “Facebook” :)

При добавлении нового элемента в папку “соцсети” приложение показало очень скромный перечень из трех элементов - Карточка, Шаблон и Папка, однако затем:


Handy Safe Pro. Рис. 5. Наборы элементов.

О да! Разработчики предусмотрели для меня список самых популярных интернет-сервисов, среди которых большой и красивой иконкой выделялся мой любимый Facebook!

Заполнение информации об элементе напоминает ранее рассмотренные программы, но заполняемая информация не ограничивается фиксированным количеством полей – вы вольно добавить столько контактных данных, сколько захотите. Единственное, что мне показалось немного странным - для ввода пароля используется обычное текстовое поле, что все-же несколько странно для такого приложения.

Однако, в просмотре информации об элементе введенная информация предстает перед пользователем так, как нужно (рис. 8) и раскрывается только после нажатия кнопки “Show Password” (рис. 9):

Просматривая подробную информацию, вы так же имеете возможность скопировать пароль в буфер обмена.

Handy Safe Pro. Рис. 10. Меню программы. Handy Safe Pro. Рис. 11. Настройки.

Handy Safe Pro так же как и B-Folders имеет возможность синхронизации данных с настольным компьютером, однако, при этом ваши данные не будут передаваться через интернет.

4. Password Master


Официальный сайт

Password Master - пожалуй, самая странная из всех рассмотренных в этом обзоре программ.

Ну что ж, в семье не без урода кто-то все-таки должен был выделиться из толпы. Традиционное создание БД представлено вводом главного пароля, который может быть только комбинацией цифр. Лично я считаю это не слишком безопасным, однако, кому-то может понравиться упрощенный ввод информации для мобильного устройства. Кто знает… Другой странностью этого приложения явился экран, с просьбой указать свой главный почтовый ящик. Основная роль почтового ящика - возможность восстановления мастер-пароля, если вы вдруг забудете его. Конечно, это опять удобство в ущерб безопасности.

При создании элемента, Password Master, к сожалению, не предоставляет возможность создания собственных рубрик, поэтому элемент “Facebook” мне пришлось сделать как есть, назначив ему категорию “интернет”, вместо уже полюбившейся мне категории “соцсети”.

Запись пароля производится в обычном текстовом поле, после чего складывается впечатление, что разработчики этого программного продукта совсем уж наплевали на безопасность.

Внешний вид элементов зависит напрямую от выбранной рубрики:


Password Master. Рис. 5. Добавленный Facebook.

Настройки это приложения ничем не примечательны, поэтому останавливаться на них не буду. Впечатление от программы - весьма неоднозначные, хотя, возможно она понравится тем, кто любит совсем простой софт.

5. OI Safe


Официальный сайт

Работа с OI Safe похожа на работу с предыдущими приложениями – все начинается с ввода мастер-пароля (рис.1) и предупреждения о том, что необходимо сохранить ключ (рис. 2):

После принятия пользовательского соглашения в OI Safe, как и в KeePassDroid, пользователь видит список из двух предустановленных категорий - Buisness и Personal. К сожалению, я ошибся и решил создать элемент “Facebook” внутри категории Personal. Заметив ошибку, я отменил создание, однако OI Safe добавило в категорию пустой элемент (рис. 3,4):

Второй минус этого действия - невозможность назначить значки для элементов или рубрик.

Меню программы (рис. 4.), кажется весьма скромным, если не выбрать пункт “Еще” (рис. 7).

Настройки программы также напоминают KeePassDroid, и так же как и KeePassDroid - OI Safe не поддерживает синхронизацию данных пользователя с настольным компьютером.

Мой странный вывод

Я рассмотрел небольшой срез, всего одно направление программ представленных в Android Market, и по моему скромному мнению - набор существующих приложений вполне способен удовлетворить многих пользователей. Но согласитесь ли вы со мной или нет?

Теги:

  • android
  • хранение паролей
  • android market
Добавить метки

Я уже много лет пользуюсь замечательным сервисом хранения паролей LastPass и считаю, что он является лучшим в своем роде. Однако для платформы Android этот сервис предлагает только платный вариант использования, что подходит далеко не всем. Поэтому в этой статье мы рассмотрим, как вытащить свои пароли из LastPass, перенести их в Android и организовать их надёжное хранение и удобное использование.

1. Экспорт паролей из LastPass

Извлечь свои пароли из этого сервиса очень просто, процесс займёт всего несколько кликов. Для этого необходимо зайти в веб-интерфейс сервиса и в главном меню выбрать пункт «Экспорт». После этого необходимо указать имя файла и место его сохранения на своём компьютере.

2. Конвертация паролей LastPass в пароли KeePass

Для работы с паролями на мобильном устройстве будем использовать программу . Она имеет клиенты практически для всех платформ, хорошо зарекомендовала себя с точки зрения безопасности, удобна и бесплатна. Но прежде чем перенести свои пароли на мобильное устройство, их необходимо преобразовать в понятный для этой программы вид. Эта возможность существует в десктопной версии KeePass.

Установите KeePass на свой компьютер и создайте новую базу паролей, указав в качестве места размещения одну из папок в Dropbox. Затем импортируйте файл с паролями LastPass в созданную вами базу паролей.

3. Keepass2Android

После того, как ваши пароли оказались в понятном для KeePass виде, можно уже перенести их непосредственно в мобильное устройство. Для этого лучше всего использовать мобильный клиент Keepass2Android, который умеет синхронизировать базу паролей через Dropbox. Установите эту программу, а затем откройте созданную вами ранее базу паролей.

4. Автоматическое заполнение паролей

Одна из самых удобных функций LastPass - это возможность автоматического заполнения учётных данных на сохранённых сайтах. В Keepass2Android тоже есть подобная функция, хотя реализована она немного по-другому. Программа имеет специальную клавиатуру, с помощью которой и вводятся пароли. Происходит это следующим образом.

  1. Вы открываете в браузере (поддерживаются практически все обозреватели для Android) страницу авторизации.
  2. С помощью меню «Отправить» переправляете эту страницу в Keepass2Android. Программа находит подходящий для этой страницы пароль в своей базе.
  3. Затем перед вами появляется предложение выбрать клавиатуру. Выбираем вариант Keepass2Android.
  4. Появляется специальная клавиатура, на которой с помощью специальных клавиш можно в один клик ввести в нужные поля ваш логин и пароль для открытой страницы.

Теперь вы будете иметь на своём мобильном гаджете хорошо защищённую и синхронизируемую базу данных, содержащую все ваши пароли. Кроме этого, мы получаем возможность удобного ввода паролей с помощью специальной клавиатуры, что позволяет очень быстро и удобно входить на нужные вам сайты.

Привет Хабр! Я молодой разработчик, специализирующийся на Android-разработке и информационной безопасности. Не так давно я задался вопросом: каким образом Google Chrome хранит сохраненные пароли пользователей? Анализируя информацию из сети и файлы самого хрома (особенно информативной была статья), я обнаружил определенные сходства и отличия в реализации сохранения паролей на разных платформах, и для демонстрации написал приложения для извлечения паролей из Android версии браузера.

Как это работает?

Как мы можем знать из разных публикаций в сети на эту тему, Google Chrome на ПК хранит пароли своих пользователей в следующей директории:
«C:\Users\SomeUser\AppData\Local\Google\Chrome\User Data\Default\» в файле "Login Data ".

Данный файл является базой данных SQLite, и его вполне можно открыть и посмотреть. В таблице logins мы можем видеть следующие, интересующие нас поля: origin_url (адрес сайта), username_value (логин), password_value (пароль). Пароль представлен байтовым массивом, и зашифрован через машинный ключ, индивидуальный для каждой системы. Подробнее можно узнать из статьи. Таким образом, какая-никакая защита в Windows клиенте присутствует.

Android

Но так как я больше увлекаюсь Android"ом, то мое внимание забрал на себя, соответственно, Android-клиент браузера.

«Расковыряв» пакет Google Chrome (com.android.chrome ), я обнаружил, что его структура очень напоминает структуру ПК-клиента, и не составило труда найти точно такую же базу данных, отвечающую за хранение паролей пользователя. Полный путь к БД следующий: "/data/data/com.android.chrome/app_chrome/Default/Login Data" . В целом, эта база данных очень похожа на свою «старшую сестру» из ПК-версии, имея лишь одно, но очень значительное отличие - пароли тут хранятся в открытом виде. Возникает вопрос: можно ли программно извлечь пароли из базы? Ответ оказался весьма очевидным - да, если у вашего приложения есть root-права.

Реализация

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

Если описать его работу в двух словах, то оно работает так:

  • Получает root.
  • Копирует базу данных Chrome в свою директорию.
  • С помощью chmod получает доступ к копии БД.
  • Открывает БД, и извлекает информацию о логинах и паролях.
Приложение было размещено в Google Play .

Вывод

Как вывод из проделанной работы, можно сказать, что при наличии root-прав, вытащить базу паролей из браузера и отправить ее на свой сервер - задача вполне решаемая, и этот факт должен заставлять задуматься над тем, стоит ли доверять какому-либо приложению права суперпользователя.

Надеюсь, эта статья была информативной. Спасибо за внимание!



Просмотров