Как узнать пароли от приложений на андроиде. Где хранить пароли на iOS и Android? Мой собственный опыт

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

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

Два года назад, 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
Добавить метки

Копался я, значит, в интернете по своим делам и наткнулся в поиске на преинтересные утверждения. Мол на устройствах под управлением Android пароли хранятся в базе данных в открытом виде. Фантастика. Неужели программисты Google такие глупые? А вот доморощенные хакеры, как всегда, на высоте:-). Казалось бы, как все просто, скопировал с телефона файл /data/system/accounts.db или /data/system/users/0 (зависит от версии android), открыл его sqlite-браузером и вот они, пароли, на блюдечке! Пользуйся. Ну и кто прочитал пароли? А? Не буду описывать процесс аутентификации подробно. Это будет скучно. Так вот, когда Вы регистрируете свое устройство в аккаунте google, вы проходите стандартную процедуру аутентификации. То есть, вводите свой email и пароль. После этого, устройство передает на сервер название и модель устройства, imei и получает auth token (авторизационный токен). действительный только для данного устройства. Вот он и хранится в account.db.

И практически все современные сервисы используют такой тип авторизации. Следовательно, если Вы забыли пароль от своего аккаунта Google, искать его в телефоне совершенно бесполезно. Попробуйте стандартное средство восстановления пароля к аккаунту. Чтобы посмотреть какие устройства подключены к аккаунту (при условии что у вас есть пароль) зайдите в свой аккаунт google - настройки - аккаунт - личный кабинет и Вы увидите свое устройство. Можно, кстати, попробовать его поискать, если устройство подключено к сети интернет.

Уж простите, я назвал свой телефон носком, просто, он периодически теряется:-). Итак, если у вас украли устройство, или вы его потеряли, вы можете его отключить в своем аккаунте.

После этого, auth token будет недействителен, и с этого устройства будет невозможно подключиться к этому аккаунту. А вот данные, находящиеся на устройстве, почту и другое, если они не были зашифрованы, можно будет прочитать. В аккаунте, также, можно удаленно стереть данные с устройства. То есть, при нажатии этой кнопки, при первом же входе устройства в интернет, данные будут удалены. Это, если не считать их заранее без входа в интернет. Желательно, конечно, шифровать данные на устройстве, но это совсем другая тема. А вообще, Google рекомендует двухфакторную аутентификацию. Хранить пароли требуется для Email протоколов POP3, IMAP, SMTP и Exchange ActiveSync. Все они требуют предоставление пароля при каждом подключении к серверу. И то они шифруются, пусть не так сложно. А в открытом виде пароли хранились только на заре развития сети интернет:-).

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

Однако, не исключены случаи, когда утерян номер телефона или тот же e-mail. Тогда, к примеру, забыв пароль от учётки в «ВКонтакте» пользователь не сможет отправить специальный код сообщением из-за того, что абонентский номер уже был привязан к другой странице, а аккаунт от почты давно не используется.

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

Оказывается, владельцы Android-устройств имеют возможность восстановить пароль от своей странички в VK значительно проще. Как узнать на Андроиде пароль от «ВК»? Для этого нужно знать, где хранятся пароли. Об этом мы сейчас и поговорим.

Если вы на своём устройстве воспользовались функцией сохранения паролей, то посмотреть забытый пароль будет несложно:

Дело в том, что сохранённые пароли находятся в браузере, где, как правило, предусмотрена возможность увидеть пароль, который скрыт за звёздочками. Что мы должны сделать:

С помощью системных функций

Открываем браузер (на скриншоте Google Chrome) в поисковой строке вводим ссылку passwords.google.com В открывшемся окне «Сохранённые пароли » находим нужное приложение или сайт, в нашем случае, это «Вконтакте», видим логин (адрес электронной почты) и пароль, скрытый за звёздочками. Чтобы посмотреть сам пароль, нужно нажать на значок, похожий на глаз:

Через браузер на компьютере

Если у вас один аккаунт в «ВК» на всех устройствах и вход осуществлялся автоматически (т.е. пароль был сохранён), то можно посмотреть пароль, скрытый под звёздочками, на компьютере. Этот способ будет актуален, если по каким-либо причинам, предыдущей инструкцией вы не сможете воспользоваться.

Первый способ

Открываем окно браузера. В правом верхнем углу нажимаем значок для вызова настроек (три параллельные чёрточки). В разделе «Настройки», в самом низу нажимаем на «Дополнительные настройки», находим пункт «Пароли и формы», выбираем вторую строку «Предлагать сохранять пароли для сайтов», нажимаем на позицию «Настроить». В открывшемся окне с паролями в поисковой строке вводим адрес искомого сайта или логин:

Теперь в списке сайтов с сохранёнными паролями нажимаем на VK и затем активируем кнопку «Показать», после чего, в поле, где были звёздочки мы и увидим свой пароль:

Второй способ

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

Заходим на свою свою страничку в VK. Чтобы выполнить вход, откроется окно с логином (телефон или email) и паролем, скрытым звёздочкми, выделяем их левой кнопкой мыши и нажимаем на выделенный пароль правой кнопкой. Появится строка, в которой указан параметр type. Дважды щёлкаем левой кнопкой по его значению password (или pass. ).Из открывшегося после этого списка действий выбираем «Просмотр кода элемента «.

Теперь, в коде страницы вносим изменения – заменяем type = ‘password’ на type = ‘text’

После этой несложной манипуляции вместо звёздочек мы увидим свой сохранённый пароль.

Поиск забытого пароля с помощью анализатора трафика

С помощью Wireshark (ПК)

Нам понадобится любая программа, анализирующая сетевые пакеты (сниффер). Можно воспользоваться одной из самых популярных в этом сегменте — «Wireshark». Это кроссплатформенный инструмент, работающий практически во всех ОС, включая Windows.

Программа наделена логичным и понятным интерфейсом, работает с большинством протоколов.

О самой программе и её достоинствах мы сейчас говорить не будем (кому интересно, без труда найдёт необходимую информацию в интернете). Нас же сейчас интересует возможность решить проблему с поиском пароля в «ВК». Для этого скачиваем Wireshark с официального сайта :

Установка в OS Windows предельно проста (next->next->next).

Подключаем свой Андроид к ПК через USB. Теперь нам нужно настроить программу на ту сеть, которую предстоит анализировать, и включить её на поиск пакетов:

Затем со смартфона отправляем форму с паролем. После получения пакетов, выключаем Wireshark и ищем среди полученных данных ключевое слово «password», где будет показан логин и пароль.

Здесь важно сказать следующее. Работа со снифферами — это тема отдельного разговора, причём довольно объёмного. Поэтому, неподготовленному пользователю не стоит принимать этот способ, как руководство к действию. Мы же коротко рассказали о Wireshark, только для чтобы обозначить нашей аудитории существование и такой возможности для решения исследуемого вопроса.

Если же вы относите себя к продвинутым пользователям, а тем более, имели опыт работы с таким ПО, то сможете с лёгкостью решить проблему забытого пароля.

Видеоинструкция об использовании Wireshark:

С помощью Intercepter-NG (Android)

Ещё один представитель линейки снифферов, который надо будет установить на Андроид — Intercepter-NG.

Программа является многофункциональным сетевым сниффером, портированным на OS Android. Intercepter-NG довольно успешно справляется с задачей перехвата и анализа сетевого трафика, позволяя восстанавливать файлы, которые передаются по сети, сообщения различных мессенджеров и, что важно для нас в контексте рассматриваемой проблемы, восстанавливать пароли.

Мобильная версия получилась довольно облегчённой, что значительно упрощает управление. Условия, необходимые для работы:

  • Версия Android 2.3.3 и выше
  • Наличие

Подробнее о настройке программы и её работе, смотрим видео:

Привет Хабр! Я молодой разработчик, специализирующийся на 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-прав, вытащить базу паролей из браузера и отправить ее на свой сервер - задача вполне решаемая, и этот факт должен заставлять задуматься над тем, стоит ли доверять какому-либо приложению права суперпользователя.

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

Привет Хабр! Я молодой разработчик, специализирующийся на 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-прав, вытащить базу паролей из браузера и отправить ее на свой сервер - задача вполне решаемая, и этот факт должен заставлять задуматься над тем, стоит ли доверять какому-либо приложению права суперпользователя.

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