Шифрование данных на Android-устройствах. Шифрование android телефона

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

Шифрование Андроид

Работает шифрование так: после включения шифрования все данные на устройстве и на карте памяти будут зашифрованы. Конечно, если кто-то разблокирует ваше устройство, он все равно получит доступ к данным, однако это спасет ваши данные, если кто-то попытается украсть карту памяти или прочитать данные без включения смартфона с его внутренней памяти. У него ничего не выйдет, так как данные будут зашифрованы.

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

О шифровании устройства вы должны знать следующие вещи:

  • Шифрование возможно только в одном направлении. После шифрования расшифровать устройство уже будет нельзя. Можно только сбросить его до заводских настроек, но в этом случае вы потеряете все данные.
  • Шифрование всего устройства замедляет работу смартфона. В принципе, в эру 8-ядерных процессоров и при объеме оперативной памяти от 1 Гб это не доставит вам хлопот. На более слабых устройствах «торможение» будет ощутимым.
  • Шифрование устройства не спасет ваши данные от случая, если кто-то попросил ваш смартфон, чтобы просмотреть, а сам в этот момент или установит троян, или просто вручную отправит некоторые интересующие его данные на свой телефон. От таких случаев позволяет защититься только криптоконтейнер: ведь для доступа к данным внутри контейнера нужно будет ввести еще один пароль, который злоумышленник не знает.

Если вы хотите зашифровать все устройство, перейдите в Настройки, Безопасность, затем нажмите кнопку Зашифровать телефон (или Зашифровать планшет) в разделе Шифрование. Далее следуйте инструкциям.

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

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

Шифрование устройства не является универсальным решением для защиты всех ваших данных или информации от посторонних глаз, особенно при отправке через сеть Интернет. Вместо этого шифрование устройства преобразует все данные, сохраненные на телефоне в форму, доступную для прочтения только с правильными учетными данными. Это решение обеспечивает лучшую защиту, чем блокировка пароля, поскольку данные можно получить и не пройдя за блокировку экрана с помощью программ восстановления, загрузчиков или Android Debug Bridge.

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

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

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

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

Шифрование моего устройства

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

Android 5.0 или выше…

Для Android-смартфонов и планшетов под управлением Android 5.0 или более поздней версии, вы можете перейти к меню «Безопасность» в разделе «Настройки». Путь сюда может незначительно отличаться в зависимости от вашего ОЕМ, но с чистым Android вы найдете шифрование в разделе Настройки – Личное – Безопасность (Settings > Personal > Security).


Здесь вы должны увидеть опцию «Зашифровать смартфон» (Encrypt Phone) или «Зашифровать планшет» (Encrypt Tablet). Вам будет предложено подключить устройство к зарядке, пока будет происходить шифрование, чтобы убедиться, что смартфон не отключится в процессе, что обернется ошибками. Если вы ещё не сделали этого, вам будет предложено установить PIN-код блокировки экрана или пароль, который вам нужно будет вводить при включении смартфона, чтобы получить доступ к вашим зашифрованным файлам. Обязательно запомните пароль!

Android 4.4 и старше…

Если вы используете смартфон с Android 4.4 KitKat или старше, вы должны установить PIN-код или пароль до запуска процесса шифрования. К счастью, это не сложно, перейдите Настройки – Безопасность – Блокировка экрана (Settings > Security > Screen Lock). Здесь вы сможете либо выбрать шаблон, набрать PIN-код или смешанный пароль для блокировки экрана. Тот же самый пароль вы будете использовать после шифрования, поэтому уделите ему внимание.

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


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

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

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

Когда вы закончили…

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


Дополнительные опции с приложениями сторонних разработчиков

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

SSE – Универсальное приложение шифрования
версия: 1.7.0 (Pro) (cкачиваний: 163)
SSE существует на этом рынке весьма продолжительное время и до сих пор, кажется, получает небольшие обновления. Вместо того, чтобы реализовать массовое шифрование вашего телефона, SSE можно использовать для защиты и расшифровки отдельных файлов или каталогов, которые вам нужны, если вы хотите защитить выборочно несколько элементов. Вы можете установить пароль, который будет служить в качестве ключа расшифровки, есть также возможность создавать зашифрованные копии файлов или полностью подменить их.

Приложение также имеет текстовый шифратор и хранилище под паролем. Текстовый редактор может быть использован для хранения зашифрованных заметок, которые могут быть разделены между платформами. Хранилище предназначено для хранения и управления всеми паролями, PIN-кодами и заметками в одном надежном месте, защищенном мастер-паролем. Функция работает подобно LastPass.

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

Читаете важные электронные письма , делаете онлайн-покупки с помощью вашей кредитной карты , редактируете и передаете важные документы? Если ваш ответ "да", то вы должны задуматься о шифровании вашего устройства.

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

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

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

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

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

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

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

Айфоны, Айпады и большинство устройств на Андроиде могут быть зашифрованы. Вот что вам нужно знать.

iOS.

Эпл ввела шифрование устройств начиная с iOS 8 в 2014 году. Включение зашифрованного устройства требует введения пароля или отпечатков пальцев. В то время как основной четырёхзначный ПИН-код тоже тут подходит, для лучшей защиты я рекомендую использовать более длинный числовой код доступа или буквенно-цифровой пароль.
  • Войдите в "Настройки".
  • Выберите "Touch ID и Пароль" (или " Пароль" для старых устройств без сенсора отпечатков пальцев).
  • Нажмите на опцию "Включить пароль".
  • Введите сложный пароль или код безопасности (Обязательно запишите его куда-нибудь, не надейтесь на свою память. Если забудете пароль, вы уже не сможете зайти в телефон, придётся сбрасывать его в заводское состояние с потерей всех данных.)

Андроид.

В Андроиде этот процесс немного сложнее. Телефоны и планшеты Nexus поставляются с включенным шифрованием по умолчанию. Большинство новых устройств, которые поставляются с Андроид 6.0, такие как Galaxy S7 и Galaxy S7 Edge, также продаются с активной возможностью шифрования. По аналогии с Айфоном, всё, что вам нужно сделать - это добавить пароль или отпечатки пальцев, чтобы включить непосредственно шифрование.
  • Войдите в "Настройки".
  • Перейдите на страницу "Безопасность".
  • Выберите "Блокировка экрана".
  • Создайте пароль.

Для более старых устройств, однако, таких как Moto X Pure и Galaxy S6, вам нужно будет вручную зашифровать его. Перед тем как начать, убедитесь, что телефон подключен к сети питания, так как процесс может продлиться до часа, в зависимости от объёма данных на вашем устройстве. Далее создайте пароль, используя шаги, указанные выше, и выполните следующие действия:

  • Откройте "Настройки".
  • Выберите "Безопасность".
  • Нажмите на "Зашифровать телефон".
Метод немного отличается на Galaxy S6. Тут надо войти в меню "Настройки", выбрав "Блокировка экрана" и "Безопасность", а затем "Другие параметры защиты", и нажмите на "Шифровать телефон".


Вы также можете зашифровать вашу карту SD, чтобы сохранить безопасность данных и предотвратить возможность чтения карты на другом устройстве (если сначала не стереть). Войдите в "Настройки", выберите "Безопасность", затем на "Шифрование внешней карты SD" и нажмите кнопку "Включить". В отличие от шифрования устройства (которое требует полностью очистить телефон, чтобы отключить это шифрование), шифрование карты памяти SD может быть легко обращёно в меню "Настройки".

Причины для не шифрования Android устройства.

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

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

Устройство также покажет небольшое падение производительности при его шифровании. Это падение едва заметно на последних телефонах высокого класса, однако более старые модели и слабые устройства могут пострадать. Я рекомендую использовать шифрование только на последних устройств высокого класса, таких как Galaxy S6, LG G4, HTC One M10, и их новые модели (Galaxy S7, LG G5 , и т.д...).

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  1. Делаем бэкап всех данных на карточке - она будет переформатирована.
  2. Java SE Development kit с сайта Oracle.
  3. Устанавливаем последнюю версию Android SDK Manager .
  4. Включаем на смартфоне отладку по USB.
  5. Запускаем SDK Manager и в командной строке пишем:

    где x:y - номер карты памяти.
  6. Если хочешь оставить часть для тома FAT32, то измени команду из п. 7 на такую:

    $ sm partition disk : x : y mixed nn


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

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

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

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

$ adb shell sm set - force - adoptable true

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

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

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

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

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

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

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

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

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

  • использование универсального криптоконтейнера - файла с образом зашифрованного тома в популярном формате, с которым умеют работать приложения для разных ОС;
  • прозрачное шифрование файлов в указанном каталоге через драйвер FUSE и стороннюю утилиту для создания/монтирования зашифрованного раздела в виде файла;
  • шифрование всей карты памяти через dm-crypt;
  • использование «черного ящика» - отдельного приложeния, которое хранит зашифрованные данные в собственном формате и не пpедоставляет доступ к ним для сторонних программ.

Первый вариант хорошо знaком всем, кто пользуется TrueCrypt или одним из его форков на компьютере. Для Android есть приложeния с поддержкой контейнеров TrueCrypt, но ограничения у них разные.

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

Третий вариант - встроенный dm-crypt. Использовать его можно, к примеру, через LUKS Manager. Приложению требуется рут и установленный BusyBox. Интерфейс у него - на любителя.


LUKS Manager создает на карточке криптоконтейнер в виде файла. Этот контейнер можно подключить к произвольному каталогу и работать с ним, как с обычным. Плюс в том, что у этого решения есть кросс-платформенная поддержка. Работать с контейнером можно не только на гаджете с Android, но и на десктопе: в Linux - через cryptsetup, а в Windows - через программу или ее форк LibreCrypt . Минус - нeудобство использования совместно с облачными сервисами. Каждый раз в облаке приходится повторно сохранять весь контейнер, даже если изменился один байт.

Четвертый вариант в целом малоинтересен, поскольку сильно ограничивает сценарии использования зашифрованных файлов. Их можно будет открыть только каким-то специализированным приложением и уповать на то, что его разработчик преуспел в изучении криптографии. К сожалению, большинство таких приложений не выдерживает никакой критики. Многие из них вообще не имеют никакого отношения к криптографии, поскольку просто маскируют файлы вмeсто того, чтобы шифровать их. При этом в описании могут упоминаться стойкие алгоритмы (AES, 3DES…) и приводиться цитаты из «Прикладной криптографии» Шнайера. В лучшем случае у таких программ будет очень плохая реализация шифрования, а в худшем его не будет вовсе.

Официального клиента под Android для VeraCrypt нет и не планируется, однако его авторы рекомендуют использовать приложение EDS (Encrypted Data Store). Это российская разработка, существующая в полнофункциональном и облегченном варианте. Полная версия EDS стоит 329 рублей. Она поддерживает криптоконтейнеры формата TrueCrypt, VeraCrypt, CyberSafe, а также LUKS и EncFS. Умеет работать с локальными, сетевыми и облачными хранилищами, обеспeчивая другим приложениям прозрачное шифрование. Шифрование на лету требует поддержки ядром ОС фреймворка FUSE и прав рут. Обычная работа с криптоконтейнерами возможна на любых прошивках.


Версия EDS Lite распространяется бесплатно и имеет функциональные ограничения. Например, она может работать исключительно с контейнерами, содержащими внутри том с файловой системой FAT, зашифрованной по алгоритму AES c длинoй ключа 256 бит и с использованием хеш-функции SHA-512. Другие варианты ею не поддерживаются. Поэтому стоит ориентироваться на платную версию.

Криптоконтейнер - самый надежный и универсальный способ. Его можно хранить в любой файловой системе (хоть FAT32) и использовать на любом устройстве. Все данные, которые ты зашифровал на десктопе, станут доступными на смартфоне, и наоборот.

EncFS

В 2003 году Валиент Гоф (Valient Gough - инженер-программист из Сиэтла, писавший софт для NASA, а позже работавший на Google и Amazon) выпустил первый релиз свободной файловой системы со встроенным механизмом прозрачного шифрования - EncFS . Она взаимодействует с ядром ОС благодаря слою обратного вызова, получая запросы через интерфейс libfuse фреймворка FUSE. По выбору пользовaтеля EncFS использует один из симметричных алгоритмов, реализованных в библиотеке OpenSSL, - AES и Blowfish.

Поскольку в EncFS используется принцип создания виртуальной файловой системы, для нее не потребуется отдельного раздела. В ОС Android достаточно установить приложение с поддержкой EncFS и просто указать ему пару каталогов. Один из них будет хранить зашифрованное содержимое (пусть он называется vault ), а втоpой - временно расшифрованные файлы (назовем его open ).

После ввода пароля файлы считываются из каталога vault и сохраняются расшифрованными в open (как в новой точке монтирования), где доступны всем приложениям. После окончания работы жмем в приложении кнопку Forget Decryption (или ее аналог). Каталог open размонтируется, а все расшифрованные файлы из него исчезнут.

Недостатки: EncFS не поддерживает жесткие ссылки, так как данные имеют привязку не к inode, а к имени файла. По этой же причине поддерживаются имена файлов длиной до 190 байт. В каталоге vault будут скрыты имена файлов и их содержимое, но останутся доступными метаданные. Можно узнать число зашифрованных файлов, их разрешения, пoследнее время доступа или модификации. Также существует явный признак использования EncFS - это файл настроек с префиксом encfs и указанием номера версии в его названии. Внутри файла записаны параметры шифрования, включая алгоритм, длину ключа и размер блоков.


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

После установки EncFS будет видна как отдельная файловая система пространства пользователя через драйвер FUSE. Доступ к ней будет реализовaн через какое-то стороннее приложение - напримeр, файловый менеджер Encdroid или Cryptonite . Последний базируется на исходном кoде EncFS, поэтому остановимся на нем.

Cryptonite

Последняя версия приложeния Cryptonite - 0.7.17 бета от 15 марта 2015 года. Ее можно установить на любое устройство с Android 4.1 и выше, однако часть функций работает более стабильно в Android 4.3 и более свежих версиях.

Большинство операций в Cryptonite не требуют root и каких-то специфических компонентов. Создание томов EncFS и синхронизация с Dropbox может выполняться как на официальных, так и на кастомных прошивках.

Облaчная синхронизация зашифрованных файлов

Однако для ряда операций потребуется монтирование томов EncFS, для чего нужны права root и поддержка фреймворка FUSE ядром ОС. Использование FUSE необходимо для организации «прозрачного шифрования», то есть для того, чтобы другие приложения имели возможность обращаться к зашифрованным данным и получать их уже расшифрованными. В большинстве старых прошивок поддержка FUSE отсутствует, но она есть в CyanogenMod, MIUI, AOKP и других кастомных. Начиная с Android 4.4 FUSE штатно используется для эмуляции SD-карты во встроенной памяти.

Недостатки: при нажатии «Расшифровать» и успeшном вводе пароля Cryptonite создает временную копию дешифрованного файла в /data/data/csh.cryptonite/app_open/. Копия файла помечается как world readable (читаемая и исполняемая для всех). Удалить расшифрованные файлы можно нажатием кнопки Forget Decryption.

Выводы

Способ шифрования данных на карте памяти стоит выбирать, исходя из двух основных критериев: сценария использования и версии Android. На современных гаджетах с Android 6.0 и выше самый простой вариант - воспользоваться Adoptable Storage, присоединить карточку к внутренней памяти и выполнить прозрачное шифрование всего логического тома. Если надо сделать файлы доступными на других устройствах или добавить шифрование данных на карточке в старых девайcах - подойдут криптоконтейнеры проверенных форматов. Сторонних утилит по типу «вещь в себе» лучше избегать вовсе, поскольку вместо реальной защиты данных они часто лишь имитируют ее.

Last updated by at Февраль 18, 2017 .