Защита данных на телефонах и планшетах на базе Android. Как зашифровать данные на Вашем Android девайсе

Шифрование данных в ОС Android тесно связано с двумя проблемами: контролем доступа к картам памяти и переносом на них приложений. Многие программы содержат данные активации, платежную и конфиденциальную информацию. Ее защита требует управления правами доступа, которые не поддерживаются типичной для карточек файловой системой FAT32. Поэтому в каждой версии Android подходы к шифрованию кардинально менялись - от полного отсутствия криптографической защиты сменных носителей до их глубокой интеграции в единый раздел с шифрованием на лету.

WARNING

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

Особая роль карты памяти

Изначально разработчики Android предполагали использование карты памяти только как отдельного хранилища пользовательских файлов. Это был просто склад мультимедиа без каких-либо требований к его защите и надежности. Карточки microSD(HC) с FAT32 вполне справлялись с ролью простейшей хранилки, освобождая внутреннюю память от фоток, видеороликов и музыки.

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

К тому же это была полумера: многие программы переносились частично, оставляя часть данных во внутренней памяти, а некоторые (например, системные или содержащие виджеты) не переносились на карточку вовсе. Сама возможность переноса приложений зависела от их типа (предустановленное или стороннее) и внутренней структуры. У одних каталог с пользовательскими данными сразу располагался отдельно, а у других - в подкаталоге самой программы.


Если приложения интенсивно использовали операции чтения/записи, то надежность и скорость работы карточек уже не могла удовлетворить разработчиков. Они намеренно делали так, что перенос программ штатными средствами становился невозможен. За счет такого ухищрения их творение гарантированно получало прописку во внутренней памяти с большим ресурсом перезаписи и высоким быстродействием.

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

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

Адаптируй это!

В Android Marshmallow появился компромисс под названием «Адаптируемое хранилище» - Adoptable Storage. Это попытка Google сделать так, чтобы и овцы остались целы, и солдаты удовлетворены.

Функция Adoptable Storage позволяет объединить пользовательский раздел во встроенной памяти с разделом на карточке в один логический том. Фактически она создает на карточке раздел ext4 или F2FS и добавляет его к пользовательскому разделу внутренней памяти. Это чисто логическая операция объединения, отдаленно напоминающая создание составного тома из нескольких физических дисков в Windows.


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

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

Способ разделения карточки задается либо через меню Adoptable Storage, либо через отладочный мост для Android (Android Debug Bridge - ADB). Последний вариант используется в тех случаях, когда производитель скрыл Adoptable Storage из меню, но не удалил эту функцию из прошивки. Например, она скрыта в Samsung Galaxy S7 и топовых смартфонах LG. В последнее время вообще появилась тенденция убирать Adoptable Storage из флагманских устройств. Она считается костылями для бюджетных смартфонов и планшетов, которые не комплектуются достаточным объемом встроенной Flash-памяти.

Впрочем, не маркетологам решать, как нам использовать свои устройства. Через ADB на компьютере с Windows функция Adoptable Storage включается следующим образом.

  1. Делаем бэкап всех данных на карточке - она будет переформатирована.
  2. Java SE Development kit с сайта Oracle.
  3. Устанавливаем последнюю версию Android SDK Manager .
  4. Включаем на смартфоне отладку по USB.
  5. Запускаем SDK Manager и в командной строке пишем: $ adb shell $ sm list-disks
  6. Записываем номер диска, под которым определяется карта памяти (обычно он выглядит как 179:160, 179:32 или подобным образом).
  7. Если хочешь добавить к внутренней памяти весь объем карточки, то пиши в командной строке: $ sm partition disk: x:y private

    где x:y - номер карты памяти.

  8. Если хочешь оставить часть для тома FAT32, то измени команду из п. 7 на такую: $ sm partition disk:x:y mixed nn

    где nn - остаток объема в процентах для тома FAT32.

Например, команда sm partition disk:179:32 mixed 20 добавит к встроенной памяти 80% объема карточки и оставит на ней том FAT32 в 1/5 ее объема.

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

Некоторые смартфоны не имеют слота для карты памяти (например, серия Nexus), но поддерживают подключение USB-Flash-носителей в режиме OTG. В таком случае флешку также можно использовать для расширения объема встроенной памяти. Делается это следующей командой:

$ adb shell sm set-force-adoptable true

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

Если с добавлением объема сменного носителя или его разбиением на разделы возникают проблемы, то сначала удали с него всю информацию о прежней логической разметке. Надежно это можно сделать с помощью линуксовой утилиты gparted , которая на компьютере с Windows запускается с загрузочного диска или в виртуальной машине.

Согласно официальной политике Google приложения могут сразу быть установлены в адаптируемое хранилище или перенесены в него, если разработчик указал это в атрибуте android:installLocation . Ирония в том, что далеко не все собственные приложения Google пока позволяют это делать. Каких-то практических лимитов у «адаптированного хранилища» в Android нет. Теоретический предел для Adoptable Storage составляет девять зеттабайт. Столько нет даже в дата-центрах, а уж карты памяти большего объема тем более не появятся в ближайшие годы.

Сама процедура шифрования при создании адаптированного хранилища выполняется с помощью dm-crypt - того же модуля ядра Linux, которым производится полнодисковое шифрование встроенной памяти смартфона (см. предыдущую статью « »). Используется алгоритм AES в режиме сцепления блоков шифртекста (CBC). Для каждого сектора генерируется отдельный вектор инициализации с солью (ESSIV). Длина свертки хеш-функции SHA составляет 256 бит, а самого ключа - 128 бит.

Такая реализация, хотя и уступает в надежности AES-XTS-256, работает гораздо быстрее и считается достаточно надежной для пользовательских устройств. Любопытный сосед вряд ли вскроет зашифрованное адаптированное хранилище за разумное время, а вот спецслужбы давно научились использовать недостатки схемы CBC. К тому же реально не все 128 бит ключа оказываются совершенно случайными. Невольное или намеренное ослабление встроенного генератора псевдослучайных чисел - самая часто встречающаяся проблема криптографии. Она затрагивает не столько гаджеты с Android, сколько все потребительские устройства в целом. Поэтому самый надежный способ обеспечения приватности - вообще не хранить конфиденциальные данные на смартфоне.

INFO

Если после объединения памяти с помощью Adoptable Storage выполнить сброс до заводских настроек, то данные на карточке также пропадут. Поэтому предварительно стоит сделать их бэкап, а лучше - сразу назначить облачную синхронизацию.

Альтернативное шифрование данных на карте памяти

Теперь, когда мы разобрались с особенностями хранения файлов на карте памяти в разных версиях Android, перейдем непосредственно к их шифрованию. Если у тебя девайс с шестым Андроидом и новее, то с большой вероятностью в нем так или иначе можно активировать функцию Adoptable Storage. Тогда все данные на карточке будут зашифрованы, как и во встроенной памяти. Открытыми останутся лишь файлы на дополнительном разделе FAT32, если ты захотел его создать при переформатировании карточки.

Продолжение доступно только подписчикам

Вариант 1. Оформи подписку на «Хакер», чтобы читать все материалы на сайте

Подписка позволит тебе в течение указанного срока читать ВСЕ платные материалы сайта. Мы принимаем оплату банковскими картами, электронными деньгами и переводами со счетов мобильных операторов.

Вы используете свой смартфон (планшет) Android, чтобы сохранить персональные фотографии, читаете важные электронные письма, делаете онлайн-покупки с помощью вашей кредитной карты, редактируете и передаете важные документы? Если ваш ответ «да», то вы должны задуматься о шифровании вашего устройства.

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

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

Единственная разница между незашифрованным и зашифрованным телефоном с точки зрения пользователя в том, что вы должны будете теперь использовать пароль для разблокирования телефона (планшета).

Если ваш телефон не зашифрован, то пароль — это просто блокировка экрана. Фактически, в данном случае пароль просто блокирует экран — то есть, не делает ничего, чтобы защитить файлы, которые хранятся на устройстве. Так, если атакующие находят путь обхода экрана блокировки, то они получают полный доступ к вашим файлам.

В случае если телефон зашифрован, пароль — ключ, который дешифрует зашифрованные файлы.

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

Как включить шифрование на Android-устройстве?

1. Откройте меню Настройки.

2. В Настройках выберите Безопасность > Шифрование (Зашифровать устройство).

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

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

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

На самом деле, шифрование Android-устройств вместе с очевидными преимуществами имеет и существенные недостатки:

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

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

Владимир БЕЗМАЛЫЙ , MVP Consumer Security, Microsoft Security Trusted Advisor

Здравствуйте друзья! В сегодняшней статье будут рассмотрены программы для шифрования файлов, точнее для работы с криптоконтейнерами в Андроид. Для тех кто не в курсе что такое криптоконтейнер мы об этом рассказывали в этой статье.

Мы не будем рассматривать узкоспециализированные , фотографий и т.д. Обо всем этом мы уже говорили в предыдущих публикациях (используйте форму поиска по сайту). В рамках этой статьи мы не будем изучать каждое приложение в отдельности. Это поверхностный обзор всех популярных программ для шифрования данных на Андроид. В будущем, вдогонку к этой статье, будет отдельная инструкция для каждого приложения.

Вас также может заинтересовать статья « », в которой мы рассказывали, как с помощью приложения и K-9 Mail надежно зашифровать переписку.

На данный момент в Google Play доступны следующие программы для шифрования:

  • LUKS Manager;
  • EDS Lite;
  • Cryptonite;
  • CyberSafe Mobile.

Кроме этого приложение позволяет обмениваться зашифрованными файлами с другими пользователями и позволяет шифровать произвольные папки на Google Drive. Впрочем, для каждой бочки меда можно найти ложку дегтя. Приложение платное. А его бесплатная версия ограничивает максимальную длину пароля всего в 2 символа, что, сами понимаете, очень мало. С другой стороны, приложение стоит совсем недорого (дешевле 3$) и оно ограничивает пароль не при открытии контейнера, а только при создании. То есть если вам нужно использовать приложение с одним и тем же набором данных на разных устройствах, то вы можете создать контейнер на одном устройстве и скопировать его на другое, а программу купить только на одном устройстве (на котором будете создавать контейнер).

Приложение для шифрование данных на Андроид

Какое приложение выбрать?

Ответ прост. Если вы на персональном компьютере используете TrueCrypt, то выбор очевиден — EDS Lite. Если вы хотите обеспечить шифрование облака, то, судя по всему, на компьютере придется перейти на CyberSafe.

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

Можно ли отключить на планшете шифрование?

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

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

На более ранних версиях Android, вплоть до 2.3.4., шифрование нужно запускать вручную. Эта опция находится в меню настроек: Безопасность->Шифрование->Зашифровать устройство . Необходимо иметь в виду, что после этого расшифровать зашифрованные данные невозможно, поскольку разработчик не предусмотрел такой возможности. Таким образом, если вам понадобится расшифровать информацию, её утрата неизбежна. Чтобы это сделать, потребуется выполнить сброс устройства к заводским настройкам из режима "recovery".

Чтобы выполнить такой сброс, нужно в выключенном состоянии планшета зажать на нём одновременно клавиши увеличения и уменьшения громкости, также клавишу включения. Будет выполнена загрузка в инженерное меню, где при помощи кнопок регулировки громкости нужно найти пункт меню "wipe data/factory reset" и, выбрав его, нажать на клавишу питания. Когда операция сброса будет завершена, необходимо перезагрузиться, выбрав "reboot". После загрузки в рабочий режим на планшете следует восстановить личные данные, после чего больше не запускать шифрование.

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

Изначально Google обязывала производителей активировать полное шифрование на всех устройствах с Lollipop, но в начале марта внесла изменения в программу «Android Compatibility». Теперь в ней указано, что производителям рекомендуется включать полное шифрование, но это не обязательно. Известно, что на Google Nexus 6 и Nexus 9 установлена эта защита, а на Motorola Moto E и Samsung Galaxy S6 она по умолчанию отключена.

Полное шифрование помогает уберечь личные данные от посторонних, но негативно сказывается на производительности устройства. Например, Galaxy S6 и Galaxy S6 Edge с включенным шифрованием показывают в AnTuTu лишь 48 тысяч баллов, а без него около 70 тысяч.


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

Проверить, включено ли у вас шифрование, можно в системных настройках. Если вы решите зашифровать данные, найдите в настройках соответствующий пункт и укажите пароль, который впоследствии будет использоваться для отмены шифрования. Устройство перезапустится, начнет шифрование и включится через несколько минут. Сколько времени это займет, зависит от объема обрабатываемых данных. Содержимое карты памяти тоже можно зашифровать, но после этого она перестанет считываться другими устройствами.


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

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




Top