Защита данных в Android приложении

Дата публикации:

Обеспечение защиты данных является одним из ключевым моментов разработки приложений для OS Android. Причем речь идет, как о пользовательских данных, так и о данных самого приложения. Вроде бы — банальность. Но от этой банальности зависит слишком многое, для того чтобы ею можно было пренебречь.

От слов — к делу. Каждое Android приложение исполнятся в собственной песочнице, изолирующей его данные от других элементов системы. Однако эта особенность архитектуры ОС не в состоянии обеспечить стопроцентную защиту информации. Практически любое устройство предоставляет возможность получения root доступа, позволяющего управлять всеми данными приложения. А некоторые типы данных (и их совсем не мало) даже не требуют root прав.

Защита данных пользователя

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

зда

OS Android предоставляет стандартные средства хранения пользовательских данных:

  • Shared Preferences — инструмент для хранения небольших объемов информации, таких как настройки приложения;
  • Account Manager — инструмент для безопасного хранения данных об аккаунтах пользователей (логин, email, пароль);
  • Sqlite — база данных для хранения остальных данных приложения.

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

Для повышения уровня защиты можно использовать сторонние средства шифрования данных при хранении и передаче между клиентом и сервером. Практика показывает, что это значительно осложняет доступ к информации.

Начиная с версии 5.0, в Android активно внедряется шифрование всех хранящихся на устройстве пользовательских данных. Перед записью на диск они шифруются, а перед чтением — дешифруются. Впрочем, при открытости исходных кодов системы и легкости смены прошивки, подобные меры сложно назвать надежной защитой. Нельзя быть полностью уверенным в том, что шифрование применят по отношению ко всем выпускаемым моделям устройств и прошивкам. Кроме того, по данным Google лишь менее 40% пользователей юзает версию Android 5 или выше. Вот такая арифметика. Вот такая защита данных на Android приложениях. Однако не стоит расстраиваться раньше времени.

В Android предусмотрены средства для защиты данных в запущенном приложении:

  • принудительная задача пароля блокировки устройства перед показом важной информации;
  • отключение возможности сделать скриншот приложения;
  • отключение показов скриншота приложения в диспетчере задач;
  • требование ввести пароль блокировки перед важными действиями.

Однако для максимальной защиты данных от злоумышленников необходимо пользоваться не только встроенными инструментами, но и внедрять дополнительные уровни безопасности. Хорошим решением может стать шифрование базы данных. Существует несколько способов, позволяющих зашифровать sqlite — стандартную базу данных Android. А в сторонних базах, таких как realm, встроен собственный механизм шифрования. В качестве ключа можно использовать специально задаваемый пользователем пароль или pin-код. Таким образом, в приложении хранятся данные в зашифрованном виде, ключ от которых есть только у пользователя.

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

гк

На версиях Android до 5.0 это решение является лучшим способом хранения приватных пользовательских данных. Однако даже не смотря на повышение уровня защиты в новых версиях ОС, отказываться от дополнительных мер безопасности не стоит.

Защита данных приложения

Переходим ко второй части. Android приложение представляют собой .apk файл. Даже если оно распространяется через официальные магазины, такие как Google Play или Amazon, пользователь все равно может скачать его в виде .apk файла. Ну а файл такого формата легко декомпилируется в Java код. Таким образом, злоумышленник может получить доступ к информации об аутентификации пользователя в системе, механизме передачи и защиты данных, а так же к секретным ключам приложения.

Как же все это предотвратить? Для защиты данных приложения применяется ProGuard — инструмент, позволяющий сжимать данные, удалять неиспользуемые части библиотек, а также переименовывать методы и переменные. Созданный с помощью ProGuard файл намного сложнее декомпилировать и вытащить из него полезную информацию. Плюс он занимает меньше места.

Еще один способ спрятать информацию от посторонних глаз — поместить ее в нативный код. Прелесть этого «места хранения» в том, что оно не очевидно. И в сочетании с шифрованием может обеспечить вполне надежную защиту. Минус же заключается в том, что использование такой методики потребует наличия скомпилированных пакетов для каждой из поддерживаемых архитектур. А это значительно увеличит вес установочного файла или потребует создания отдельного файла для каждой платформы.

Вывод

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

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

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

Мы Крым Диджитал

С 2015 года мы предоставляем полный цикл услуг мобильной и веб-разработки клиентам из различных отраслей и разных стран.

Подпишись
на наши новости

Контакты пресс-службы

+ 7 (926) 118-80-32

WhatsApp, Viber, Telegram

Давайте обсудим Ваш проект

или свяжитесь с нами по почте projects@crimeadigital.ru

Нажимая кнопку «Отправить», вы даете согласие на обработку персональных данных

Прошел день карьеры в СевГУ

Резидент технопарка, компания Крым Диджитал, приняла участие в Дне Карьеры в СевГУ, который прошел 17 мая. Мероприятие длилось 3 часа. Компанией заинтересовались  более 35 студентов, которым была важна информация о прохождении практики, бесплатные курсы Академии и вакансии, не требующие опыта работы. Руководитель разработки компании выступил с презентацией и ответил на все вопросы, которые так волнуют студентов — как начать свою карьеру в ИТ? Есть ли возможность совмещать учебу с работой? Кем я смогу стать? Как понять, кем я хочу работать? И многие другие.

Резидент технопарка, компания Крым Диджитал, приняла участие в Дне Карьеры в СевГУ, который прошел 17 мая.

Мероприятие длилось 3 часа. Компанией заинтересовались  более 35 студентов, которым была важна информация о прохождении практики, бесплатные курсы Академии и вакансии, не требующие опыта работы.

Руководитель разработки компании выступил с презентацией и ответил на все вопросы, которые так волнуют студентов - как начать свою карьеру в ИТ?

Есть ли возможность совмещать учебу с работой?

Кем я смогу стать?

Как понять, кем я хочу работать?

И многие другие.

Завершен набор студентов на летнюю практику

Крым Диджитал завершила набор студентов на летнюю практику. В июле придут 14 человек. Это студенты второго и третьего курсов кафедр Программная инженерия, Информатика и вычислительная техника, Информационные системы и технологии и Управление в технических системах. Все ребята будут ходить в офис и будут заняты реальным проектом, который они должны реализовать до конца практики. Каждый выбрал для себя то направление, в котором хотел бы развиваться — front-end и back-end-разработка, дизайн. Руководить практикой будет Head of Engineering.
Крым Диджитал завершила набор студентов на летнюю практику. В июле придут 14 человек. Это студенты второго и третьего курсов кафедр Программная инженерия, Информатика и вычислительная техника, Информационные системы и технологии и Управление в технических системах. Все ребята будут ходить в офис и будут заняты реальным проектом, который они должны реализовать до конца практики. Каждый выбрал для себя то направление, в котором хотел бы развиваться - front-end и back-end-разработка, дизайн. Руководить практикой будет Head of Engineering.

Крым Диджитал приняла участие в стратегической сессии

Руководители Крым Диджитал приняли участие в стратегической сессии, которая прошла на базе СевГУ 10 июня. Вместе с Правительством Севастополя, Институтом информационных технологий и управления в технических системах СевГУ и приглашенными ИТ-компаниями города обсудили перспективу развития системы высшего образования в Севастополе.Представители бизнеса, власти и образовательной системы выступали со своим видением будущих потребностей региона в кадрах, поднимали насущные вопросы обучения студентов, прохождения практики и дальнейшего трудоустройства. Крым Диджитал является амбассадором идеи образования и взращивания молодых кадров, развивает образовательные проекты и на протяжении 5 последних лет ведет активную работу в направлении поддержки и развития молодых специалистов ИТ-отрасли Крыма.

Руководители Крым Диджитал приняли участие в стратегической сессии, которая прошла на базе СевГУ 10 июня.

Вместе с Правительством Севастополя, Институтом информационных технологий и управления в технических системах СевГУ и приглашенными ИТ-компаниями города обсудили перспективу развития системы высшего образования в Севастополе.
Представители бизнеса, власти и образовательной системы выступали со своим видением будущих потребностей региона в кадрах, поднимали насущные вопросы обучения студентов, прохождения практики и дальнейшего трудоустройства.

Крым Диджитал является амбассадором идеи образования и взращивания молодых кадров, развивает образовательные проекты и на протяжении 5 последних лет ведет активную работу в направлении поддержки и развития молодых специалистов ИТ-отрасли Крыма.

Выпуск курса Software Testing

Мы поздравляем выпускников нашего первого в этом году курса Крым Диджитал Академии по Software Testing! Всего курс успешно завершили 13 человек. В течение 2 месяцев несмотря на теплую погоду и манящее море ребята ответственно посещали занятия 2 раза в неделю, делали домашние задания и проверочные работы. Трое начинающих специалистов теперь стажеры нашей компании. Следующий курс намечен на август. Не пропусти анонс записи!

Мы поздравляем выпускников нашего первого в этом году курса Крым Диджитал Академии по Software Testing!

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

Следующий курс намечен на август. Не пропусти анонс записи!