Где хранятся пароли андроиде аккаунта. Где хранятся пароли от 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 получает доступ к копии БД.
- Открывает БД, и извлекает информацию о логинах и паролях.
Вывод
Как вывод из проделанной работы, можно сказать, что при наличии 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 тоже есть подобная функция, хотя реализована она немного по-другому. Программа имеет специальную клавиатуру, с помощью которой и вводятся пароли. Происходит это следующим образом.
- Вы открываете в браузере (поддерживаются практически все обозреватели для Android) страницу авторизации.
- С помощью меню «Отправить» переправляете эту страницу в Keepass2Android. Программа находит подходящий для этой страницы пароль в своей базе.
- Затем перед вами появляется предложение выбрать клавиатуру. Выбираем вариант Keepass2Android.
- Появляется специальная клавиатура, на которой с помощью специальных клавиш можно в один клик ввести в нужные поля ваш логин и пароль для открытой страницы.
Теперь вы будете иметь на своём мобильном гаджете хорошо защищённую и синхронизируемую базу данных, содержащую все ваши пароли. Кроме этого, мы получаем возможность удобного ввода паролей с помощью специальной клавиатуры, что позволяет очень быстро и удобно входить на нужные вам сайты.
Привет Хабр! Я молодой разработчик, специализирующийся на 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 получает доступ к копии БД.
- Открывает БД, и извлекает информацию о логинах и паролях.
Вывод
Как вывод из проделанной работы, можно сказать, что при наличии root-прав, вытащить базу паролей из браузера и отправить ее на свой сервер - задача вполне решаемая, и этот факт должен заставлять задуматься над тем, стоит ли доверять какому-либо приложению права суперпользователя.Надеюсь, эта статья была информативной. Спасибо за внимание!