Android: Защищаем личные данные. EDS: Обзор и пример использования.
Android является на данный момент популярной операционной системой для мобильных устройств. В настоящее время большое количество людей пользуются смартфоном или планшетом на базе системы Android. Многие пользователи задумываются о защите личных персональных данных на этих устройствах. В этой статье я хочу рассказать о контейнерном шифровании внутренней памяти и карт microSD, включая обзор приложения EDS (Encrypted Data Store).
Планшеты и смартфоны являются для нас персональными устройствами. В памяти таких устройств, помимо прочего, мы храним свои персональные данные - такие как контакты, фотографии, видеозаписи, SMS-сообщения, учетные данные соцсетей, почтовых ящиков и т.д.
Представьте, что Вы потеряли устройство или отдали его в ремонт - все данные могут быть доступны третьим лицам, которые ими воспользуются Вам во вред. Такие ситуации очень часто происходят и последствия для пользователей оказываются весьма неприятными: от нежелательного просмотра личной переписки до взлома аккаунтов соцсетей и снятия средств с банковских карт.
Как обезопасить себя от утечки личных данных?
Во-первых: Включить режим блокировки экрана по PIN-коду или по паролю. На некоторых аппаратах есть блокировка "Фейс-контроль", "Голосовой пароль" и т.д. - использовать которые я не советую.
Во-вторых: Зашифровать внутреннюю память устройства. В этой памяти обычно хранятся данные всех учетных записей, адресная книга, SMS-переписка, а также данные приложений, которые хранятся во внутренней памяти устройства.
В-третьих: Запретить отладку по USB. Режим отладки дает возможность получить доступ к данным через оболочку ADB-Shell. Чтобы исключить возможность доступа таким образом - необходимо запретить данную функцию и выключить режим разработчика вообще.
В-четвертых: Режим USB-накопителя использовать с осторожностью и по мере необходимости. Не выставлять данную функцию по умолчанию. У меня, если честно, Режим USB - только зарядка. Данные я синхронизирую через Wi-Fi.
В-пятых: Шифровать карту памяти. Как это сделать - об этом ниже.
Как быть с картами microSD?
Операционная система Android имеет в штатном распоряжении инструменты для защиты и шифрования данных, но вот в версии 4.x возможно зашифровать только данные во внутренней памяти устройства, исключая данные на карте памяти microSD. Ситуация несправедливая, поскольку на многих устройствах (особенно начального и среднего ценовых уровней) под управлением Android - карта памяти microSD используется почти как основной элемент для хранения данных, поскольку внутренняя память устройства слишком мала. Более того, карта microSD - это самый легкодоступный элемент для чужих рук злоумышленника: В отличие от встроенной памяти аппарата, вытащить карту памяти и считать с нее информацию не составляет никакого труда - нужно просто открыть крышку, заглушку или держатель и все.
Для защиты и шифрования личных персональных данных, расположенных на карте памяти microSD можно использовать сторонние программы. Таких приложений много, но достойных и рабочих приложений - минимальное количество.
Стратегия:
-
Шифрование должно быть контейнерное. Контейнер - это зашифрованное хранилище в виде одного файла, который может быть либо примонтирован к корневой файловой системе, либо открыт автономно.
-
Необходима функция монтирования (привязки) контейнеров к корневой файловой системе устройства, чтобы был доступ к зашифрованным данным в контейнере из других приложений, например приложению "Камера".
-
Шифрование должно быть организовано "на лету", чтобы избавить себя от ручных рутинных операций по открыванию-закрыванию контейнеров и переноса файлов при каждом их изменении.
-
Открытая совместимость контейнеров с другими операционными системами и программами для работы с контейнерами. Например для того, чтобы была возможность получить доступ к зашифрованным данным с компьютера под управлением ОС Windows.
Мною были опробованы:
LUKS Manager, Cryptonite, CyberSafe Mobile, EDS (Encrypted Data Store). Из всех опробованных приложений - реально и стабильно рабочей оказалось EDS (Encrypted Data Store) от российского производителя Sovworks.
Основные возможности приложения EDS.
Приложение EDS есть в двух версиях: платная и Lite. Лайт-версия бесплатна и имеет ограниченные возможности. Приложение может работать в двух режимах: обычный режим и режим монтирования. Приложение поддерживает работу с зашифрованными контейнерами, созданные в программах: TrueCrypt, VeraCrypt, LUKS, CyberSafe.
В обычном режиме Вы можете работать с зашифрованным контейнером на любом устройстве, которое не поддерживает шифрование "на лету". Для того, чтобы открыть файл из контейнера в стороннем приложении, Вы должны его расшифровать во временную директорию. Медиафайлы можно открыть напрямую. Обычный режим поддерживает только файловую систему FAT.
В режиме монтирования поддерживается шифрование "на лету": Вы можете работать в сторонних приложениях с файлами в зашифрованном контейнере напрямую. Для работы в режиме монтирования необходимы root-права. Ядро системы на конкретном устройстве должно поддерживать технологию FUSE. Режим монтирования поддерживает следующие файловые системы: FAT, EXT4, EXT3, EXT2, NTFS (с FUSE).
Есть возможность синхронизации через сервис Dropbox, а также поддерживается работа с контейнерами по сети.
EDS - Практический пример использования.
Все дальнейшие действия я описываю на смартфоне Highscreen Zera S, с установленной системой Android 4.4 (KitKat), прошивка версии 213 (стоковая) с правами Root.
Рассматривалась платная полная версия приложения EDS. Лайт-версию не рассматриваю так, как она не может работать в режиме монтирования.
Для операций с файлами желательно использовать сторонние менеджеры файлов с предоставлением им Root-доступа такие, как Root Explorer, ES Проводник, Total Commander. Я использовал Total Commander.
После установки приложения EDS, перед созданием и работой с контейнерами необходимо выполнить некоторые действия в настройках приложения:
-
Зайти в "Настройки -> Настройки монтирования"
-
В разделе "Способ монтирования" выбрать "Монтировать с помощью FUSE"
-
В разделе "Обход ограничений монтирования" установить драйвер "edsmntd" и выбрать способ обхода "edsmntd".
-
Перезагрузить устройство.
Ситуация такая:
На карте памяти есть директория с фотографиями и видеозаписями, которую использует стандартное приложение "Камера". Находится она по пути "/storage/sdcard0/DCIM/Camera". Приложение "Камера" по умолчанию сохраняет в эту директорию фотоснимки и видеозаписи, сделанные Вами. Наша задача - скрыть содержимое данной директории от посторонних глаз злоумышленников в случае изъятия карты памяти из смартфона или планшета.
Что мы будем делать:
Мы создадим контейнер определенного размера (Например 2Гб), зашифруем его паролем, и сделаем так, чтобы при каждой перезагрузке он автоматически монтировался (привязывался) к файловой системе по пути "/storage/sdcard0/DCIM/Camera", запросив при этом пароль контейнера для дешифровки.
Вперед:
-
Запускаем менеджер файлов, и идем по пути к директории с фотографиями и видеофайлами. В моем примере - /storage/sdcard0/DCIM/Camera
-
В соседнем окне файлового менеджера идем по пути /storage/sdcard0/ создаем директорию TEMP и заходим в нее /storage/sdcard0/TEMP
-
Переключаем окно директории /storage/sdcard0/DCIM/Camera выделяем в ней все файлы и перемещаем в /storage/sdcard0/TEMP
-
Директория "/storage/sdcard0/DCIM/Camera" у нас пустая.
-
Создаем директорию /storage/sdcard0/Containers - в ней мы создадим зашифрованный контейнер
-
Запускаем или переходим в приложение EDS. Во вкладке "Контейнеры" Нажимаем кнопку с изображением ключа со знаком + "Создать контейнер"
-
Выбираем "Создать стандартный контейнер" и попадаем в диалоговое окно создания контейнера.
-
Указываем путь к контейнеру (проходим к директории /storage/sdcard0/Containers
-
Внизу пишем имя файла camera.img
-
Нажимаем "Выбрать"
-
Указываем размер контейнера: 2048 Мб
-
Придумываем и указываем пароль к контейнеру. Вводить пароль нужно внимательно и очень осторожно, поскольку на сенсорной клавиатуре можно ошибиться символом, а ввод пароля на подтверждение не предусмотрен. Вы не сможете открыть контейнер после его создания, если ошибетесь.
-
Выбираем алгоритм шифрования и хэш. Тут на вкус и цвет.
-
Галочки "Включить поиск" и "Заполнить свободное пространство случайными данными" можно оставить так как есть.
-
Нажимаем "ОК" и ждем окончания процедуры создания контейнера. Может занять долгое время в зависимости от скорости процессора, размера контейнера и скорости записи на карту памяти. После того, как контейнер будет создан - Вы увидите его в списке контейнеров.
-
Нажимаем и удерживаем палец на созданном контейнере "camera" и в выпадшем диалоге выбираем "Свойства"
-
В поле "Путь для монтирования" выбираем путь, куда приложение "Камера" сохраняет снимки фотографий и видео - /storage/sdcard0/DCIM/Camera - для выбора директории Camera, находясь в директории DCIM необходимо нажать на кружочек справа от названия директории Camera, потом нажимаем кнопку "Выбрать".
-
Можно поставить галочку "Автоматически монтировать контейнер при загрузке" - после включения/перезагрузки телефона или планшета будет запускаться приложение EDS с запросом ввести пароль и после ввода оно примонтирует его к директории /storage/sdcard0/DCIM/Camera Единственное неудобство возникает тогда, когда контейнеров более, чем 1, у них разные пароли и оба монтируются при загрузке (без сохранения пароля), то совершенно непонятно - от какого контейнера EDS запрашивает пароль. В таком случае лучше запускать приложение EDS после старта системы Android, и монтировать контейнеры вручную.
-
Возвращаемся из настроек контейнера, кнопкой "Назад" к списку контейнеров.
-
Коротким нажатием нажимаем на контейнер "camera" и открываем его, введя пароль.
-
После этого контейнер примонтирован в директорию /storage/sdcard0/DCIM/Camera. С этого момента все файлы, которые будут создаваться и изменяться в данной директории приложением "Камера" находятся в зашифрованном контейнере, надежно защищены и не будут доступны при считывании карты памяти на другом устройстве без открытия контейнера.
Последний этап - это перемещение содержимого из директории "/storage/sdcard0/TEMP" в директорию "/storage/sdcard0/DCIM/Camera" - это те файлы, которые были созданы камерой до создания шифрованного контейнера.
-
Переходим в Total Commander, в одном окне открываем директорию "/storage/sdcard0/DCIM/Camera", а в другом окне директорию "/storage/sdcard0/TEMP".
-
Выделяем все файлы и перемещаем их обратно.
Все!
Также Вы можете подобным образом создать другие контейнеры для других директорий с данными на карте памяти microSD, которые необходимо защитить от посторонних глаз. Главное - рассчитывать размер контейнера и следить за использованием объема контейнера.
Удачного использования! Ниже приведены ссылки, откуда можно скачать приложение EDS (Encrypted Data Store) и ссылка на сайт разработчика.