Как зашифровать устройство

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

Введение

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

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

Что такое шифрование устройства и для чего оно нужно?

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

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

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

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

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

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

Разобравшись с этим, давайте рассмотрим, как включить шифрование.

INFO

History Eraser — приложение для очистки истории и паролей браузера, истории звонков, текстовых сообщений, Gmail, кеша приложений и так далее.

Понятно, что от непрошеных гостей можно поставить пин на экране блокировки, однако для человека, обладающего хоть десятью граммами серого вещества, не составит труда обойти все эти пины вместе с фейсконтролями (да и отпечаток пальца в iPhone 5s, чего уж там). Шифрование данных? Да, в Android с недавнего времени есть возможность настроить шифрование всех пользовательских данных, да так, что ни один математик не вскроет. Проблема только в том, что они расшифровываются при включении смартфона и остаются открытыми все время его работы. А карта памяти так и вообще доступна всем и вся, даже если ее физически нет в смартфоне (это я про эмуляцию карты памяти в нексусах).

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

С точки зрения безопасности это очень надежная система шифрования (128-битный AES в режиме CBC и ESSIV: SHA256), однако у нее есть несколько ключевых недостатков. Во-первых, с ее помощью удастся зашифровать только внутреннюю память смартфона, а именно каталог /data. На свежих смартфонах без карты памяти это не проблема, а вот если данные хранятся на съемном носителе, они останутся незащищенными.

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

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

После кражи

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

Последних в настоящее время развелось довольно много. Если раньше выбор состоял практически исключительно из Prey и еще нескольких малоизвестных аналогов, то теперь антивор есть во многих антивирусах, встроен как один из Google-сервисов в сам Android, доступен как часть прошивки CyanogenMod и даже в виде приложения Plan B, которое можно установить и активировать уже после того, как телефон утерян (работает такая функция, правда, только в Android 2.0–2.3).

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

Примечателен он в первую очередь тем, что имеет в своем составе самую правильную из всех виденных мной реализацию антивора. В Avast это отдельное компактное приложение, которое можно не только установить и скрыть из списка приложений, но и (при наличии прав root) прописать в системный раздел, да так, что он выживет не только после вайпа, но и после обновления прошивки с помощью кастомной консоли восстановления (в нем есть скрипт, который заставляет консоль делать бэкап антивора перед обновлением).

Фактически антивор можно убить только двумя путями: установить официальное обновление штатными средствами производителя смартфона (OTA, fastboot или специальное приложение) или вырезать из раздела /system вручную. Но и это еще не все, специально для устройств с залоченным системным разделом (S-ON) в инсталляторе антивора реализован механизм автоматической установки с помощью перезагрузки в консоль восстановления.

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


Как зашифровать устройство

Штатная функция удаленного поиска включается в приложении «Настройки Google»

Полнодисковое шифрование (FDE)

Впервые полнодисковое шифрование (full disk encryption — FDE) пытались внедрить еще в планшетной версии Android 3.0 Honeycomb. Тогда вместе с ядром Linux 2.6.36 в ней появился модуль dm-crypt, обеспечивающий возможность шифрования на любом блочном устройстве хранения данных (включая NAND Flash). В универсальной четвертой версии Android шифрование также было доступно, однако для большинства оно оставалось невостребованной опцией. Из-за отсутствия программных оптимизаций и низкой скорости встраиваемых процессоров того времени включение шифрования приводило к падению производительности ввода-вывода в 6–8 раз на топовых моделях и до 20 раз на бюджетных.

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

:/>  Перезагрузка компьютера из командной строки Windows | Как настроить?

Именно в пятой версии Андроида появился флаг forceencrypt fstab, указывающий на необходимость активации шифрования при первом включении устройства. Обрати внимание: есть принципиальная разница между тем, было ли устройство обновлено до Android 5.x или новее либо сразу выпускалось с такой версией. Во втором случае шифрование данных будет выполняться всегда. В первом варианте (при обновлении) оно останется опциональным и может быть отключено сбросом до заводских настроек (factory reset).

В общем случае для полнодискового шифрования в Android используются три битовые последовательности: мастер-ключ, соль и пользовательский пин-код. Мастер-ключ и соль генерируются автоматически, а пин-код вводится владельцем устройства. Роль пин-кода может также выполнять пароль, графический ключ или любой другой «секрет» — для процессора это все равно битовая последовательность, причем довольно короткая.

Стойкий пароль шифрования

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


Как зашифровать устройство

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

При первом включении устройство с предустановленной ОС Android 5.0 и выше генерирует псевдослучайный 128-разрядный ключ. Его называют мастер-ключом, или DEK (device encryption key). Помимо DEK, также генерируется еще одно псевдослучайное 128-битное число (соль), а пользователя просят ввести пароль.

Именно с помощью DEK в конечном счете шифруются все данные на пользовательском разделе /data. Как именно выглядит этот ключ, владелец устройства не знает. Он никогда не вводит его и даже не может считать штатными средствами.

В ранних версиях Android (до 5.0) мастер-ключ и настройки шифрования хранились в отдельной незашифрованной структуре crypto footer (упрощенный аналог LUKS) в начале зашифрованного раздела data. Сам DEX шифровался другим ключом, вычисляемым на основе пользовательского пароля и соли.

Такой способ не обеспечивал защиту от брутфорса мастер-ключа на внешних вычислительных системах, поэтому в Android 5.0 и выше появилось новое требование к производителям устройств: предоставлять на аппаратном уровне защищенное хранилище ключей. Дополнительно DEK стал подписываться с использованием еще одного ключа (HBK — hardware-bound private key), специфичного для данного устройства. Он захардкожен на этапе производства и не доступен ни одному пользовательскому процессу.

Как работает FDE

Поэтапно схема создания ключей для шифрования пользовательских данных в Android 5.0 и выше выглядит так:

Мастер-ключ используется для шифрования всего содержимого пользовательского раздела во встроенной памяти устройства. Для каждого сектора генерируется свой вектор инициализации с солью и указанием номера сектора (ESSIV). При вводе пользовательского пароля мастер-ключ расшифровывается, и далее пользовательские данные автоматически расшифровываются в фоне.

Недоступность всех ключей для прямого считывания (например, запущенным на устройстве скриптом) обеспечивается их обработкой только внутри изолированной доверенной среды исполнения (trusted execution environment — TEE). В процессорах архитектуры ARM роль TEE выполняет TrustZone, которая обеспечивает контроль целостности данных, их защищенное хранение и изолированное выполнение кода. В ней же хранятся и промежуточные значения, вычисляемые функцией формирования ключа.


Как зашифровать устройство

Схема организации доверенной среды (изображение: genode.org)

Как хранение ключа, так и все ключевые криптографические процедуры в современных версиях Android должны выполняться в изолированной среде, недоступной пользователю и приложениям. На практике же это условие соблюдается не всегда, поскольку Android работает на совершенно разных платформах. Концептуально их три: ARM, Intel x86 и MIPS. В каждой из них есть свои архитектурные ветвления, которые добавляют путаницы. Более того, на базе одних и тех же ядер (например, ARM Cortex-A53) каждый производитель, обладающий лицензией на архитектуру (architectural license), может сделать свою версию однокристальной системы с любыми нестандартными свойствами.

Именно из-за такого разнообразия платформ Google до сих пор не может обеспечить единый фундамент для шифрования, как это сделала Apple еще в 2013 году (см. Secure Enclave). Сегодня в устройствах под управлением Android либо защищенного хранилища ключей нет вовсе, либо оно не имеет надежной реализации.

Например, в чипах Qualcomm Snapdragon используется собственная реализация аппаратно изолированного окружения — QSEE (Qualcomm secure execution environment). В нем запускаются доверенные обработчики (trustlets), включая модуль обработки ключей (KeyMaster). Как показал этим летом Гэл Беньямини (Gal Beniamini), в QSEE по факту нет полной аппаратной изоляции. Атакующий может запустить свой код в пространстве QSEE. При этом он станет доверенным и автоматически повысит привилегии, после чего сможет считать через KeyMaster как зашифрованный мастер-ключ, так и захардкоженный ключ HBK.

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


Как зашифровать устройство

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

Сказанное выше не означает, что калифорнийский разработчик однокристалок так уж плох. Просто продукция Qualcomm чаще подвергается стороннему аудиту. В устройствах с другими SoC дела обстоят не лучше. В частности, уязвимость доверенной среды исполнения (TEE) в однокристалках HiSilicon подробно разбиралась на прошлогодней конференции Black Hat.

Недостатки полнодискового шифрования известны давно. Применительно к Android и dm-crypt я бы выделил следующие принципиальные моменты:

К счастью, полнодисковое шифрование не единственный вариант защиты данных в Android.

Пароли

Для хранения браузерных паролей используется другая методика. Все введенные и сохраненные в браузере данные записываются в файл/data/data/com.android.browser/webview.db, и, хотя штатными средствами просмотреть его невозможно, имея root (а мы ведь любим рутовать смартфоны), легко скопировать файл на соседний смартфон, а затем проанализировать его с помощью любого приложения для просмотра баз SQLite 3.

Я бы хотел сказать, что для создания необходимого уровня безопасности браузер должен запрашивать у пользователя мастер-пароль для расшифровки сохраненных паролей, однако очевидно, что в данном случае имеет место очередной компромисс. А уж как обойти этот компромисс, решать нам. Один из способов — это просто не сохранять пароли в браузере и вводить их каждый раз заново. Удобно? Не думаю.

На компах многие привыкли использовать для решения этой проблемы специальный софт типа KeePass — он хранит все пароли в одном зашифрованном контейнере, который открывается при вводе мастер-пароля. Что мешает нам использовать тот же софт на Android-смартфоне? Ничего, приложение Keeper Password & Data Vault, которое можно найти в маркете по цене 0 рублей 0 копеек, справляется с этой задачей на ура. Возможности приложения:


Как зашифровать устройство

Keeper настаивает на включении платного функционала

В отличие от LastPass и других приложений подобного класса у него есть полностью бесплатная версия (без всяких триалов), которая окупается тем, что не имеет функции синхронизации между устройствами и бэкапа в облако (причем синхронизация тоже работает через облако!). При наличии прав root ограничение легко снять с помощью приложения DataSync, которое умеет синхронизировать данные приложений между устройствами напрямую, что явно намного безопаснее облачного метода (привет АНБ).


Как зашифровать устройство

Сразу после запуска Keeper запросит мастер-пароль для шифрования паролей

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

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

Для этого можно приобрести одну из платных софтин, распространяемых через маркет, либо воспользоваться всеми нами любимым инструментом Tasker (он тоже платный, но заменит сотни приложений). Идея состоит в том, чтобы создать правило, которое будет отключать пин-код экрана блокировки после обнаружения домашней сети Wi-Fi и включать его вновь, когда смартфон окажется вне радиуса действия сети.

:/>  Набор поведения Fsutil disabledeletenotify refs 0

Задача очень простая и выглядит так (подробности работы с Tasker см. в предыдущих выпусках журнала):

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

Альтернатива этому методу — установить пин-код на отдельно взятые приложения и функции. Штатно это сделать, конечно же, не удастся, а вот сторонних приложений с подобной функциональностью в маркете много. Все они работают по одному и тому же принципу: перехватывают вызов приложения и накладывают поверх его интерфейса экран с просьбой ввести пин-код. На секьюрити-фичу это, конечно, не тянет, но как способ закрыть глаз подружки на SMS и почту вполне годится.

Два самых продвинутых блокиратора приложений — это AppLock и Hi App Lock, который почему-то очень любят на XDA. Они имеют практически идентичную функциональность, однако преимущество первого в большом количестве платных дополнений. Основной функционал обоих приложений — это возможность включить защиту любого установленного приложения, однако отдельно предлагается также запретить установку, удаление и убийство приложений, отключить возможность «взять трубку» и просматривать список недавно запущенных приложений. Все это включается одним тапом на главном экране.


Как зашифровать устройство

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


Как зашифровать устройство

Базовая функциональность AppLock

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

Дополнительные возможности со сторонними приложениями

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

SSE – универсальное приложение для шифрования

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

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

Crypto Ghost – шифрование файлов

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

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

Безопасная камера – шифрование фотографий

Если у вас не так много файлов, которые вас слишком беспокоят, и вы просто хотите сохранить свои фотографии в безопасности, вы можете использовать такое приложение, как Safe Camera. Safe Camera шифрует ваши фотографии, как только вы их снимаете, и затем их можно просматривать в специальной галерее. Приложение камеры относительно простое, с опциями вспышки и таймера, но не более того.

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

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

Как зашифровать мое устройство Android?


Как зашифровать устройство

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

Android 5. 0 или выше

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

Android 4. 4 или ниже

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


Как зашифровать устройство

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

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

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

И вы сделали

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


Как зашифровать устройство

Пофайловое шифрование (FBE)

В Android 7.0 появилась принципиально новая функция — пофайловое шифрование (file based encryption — FBE), которое выполняется с использованием возможностей файловой системы ext4. Новая реализация шифрования требует наличия аппаратно изолированной среды (trusted execution environment) с поддержкой API Keymaster 1.0 (старые версии 0.xx не годятся). Выполнение алгоритма AES процессором должно обеспечивать расшифровку данных со скоростью не менее 50 Мбайт/с. Это довольно жесткие требования, поэтому поддержку Android 7.x пока имеют единичные устройства.

Аппаратная поддержка шифрования

С задачей фонового шифрования в Android гарантированно справляются только новые однокристалки с TrustZone и 64-разрядными процессорами архитектуры ARMv8-A. Крайне желательно, чтобы их техпроцесс был меньше 28 нм, иначе существенный нагрев и снижение времени автономной работы станут очень заметны.

Если не останавливаться на специфических однокристалках вроде Nvidia Tegra Parker (четыре ядра Cortex-A57) и процессорах 2014–2015 года от Intel (Atom Z3560, Z3570, Z3580, Z3590, архитектура x86-64), то в сухом остатке имеем следующие чипы:

Все они построены на базе 4–8 ядер ARM Cortex-A53 с опциональным дополнением в виде 2–4 более мощных ядер Cortex-A57/A72/A73 или их фирменных модификаций (Qualcomm Kyro, Samsung Mongoose).

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

При использовании FBE каждый файл может быть зашифрован своим ключом и расшифрован независимо от остальных. Эта функция работает вместе с другой новинкой седьмого «Андроида» — прямой загрузкой (Direct Boot).

:/>  Кастомный Android: делаем свою прошивку из стоковой, не копаясь в исходниках — «Хакер»

Direct Boot API обеспечивает более деликатное отделение приватных данных от прочих файлов. Он предоставляет ту функциональность, которая была недоступна при использовании полнодискового шифрования.

До появления Android 7.0 при активации FDE все данные хранились зашифрованными общим паролем, поэтому смартфоном невозможно было пользоваться до ввода пароля. Теперь же отдельные приложения (например, будильник) можно сделать доступными прямо на экране блокировки. Они будут работать без авторизации со своими заранее заданными ограничениями, а все пользовательские данные тем временем останутся зашифрованными.

На устройстве с активным пофайловым шифрованием у пользователя появляется две области хранения данных приложений: зашифрованная отдельным паролем (Credential Encrypted — CE) и зашифрованная общим ключом устройства (Device Encrypted — DE). При отключении FBE обе области (CE и DE) остаются открытыми для любого приложения. При активном шифровании файлы области CE расшифровываются только после ввода пользовательского пароля. Файлы DE могут быть расшифрованы сразу после загрузки. Заодно раздельные пароли на каждый аккаунт позволяют создавать на одном устройстве несколько изолированных пользовательских учеток — например, для детей и ведущих себя подобно детям сотрудников.

Шифрование области CE происходит по алгоритму AES, но уже в другом режиме — XTS. Он разрабатывался специально для шифрования на блочных устройствах и не имеет типичных для режима CBC уязвимостей. В частности, XTS не позволяет определить точку изменения данных, не подвержен утечке данных, устойчив к атакам подмены и перемещения.

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

До и после

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

По сути, EncPassChanger — это просто обертка вокруг консольной команды MARKDOWN_HASH4d562aa5e0a9c74e16a90d6fd6dfa5afMARKDOWN_HASH.

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


Как зашифровать устройство

Как зашифровать устройство

Как и EncFS, Cryptonite позволяет выбрать из четырех предустановок шифрования

Теперь все, что ты скопируешь в каталог decrypt, автоматически попадет в каталог crypt в зашифрованном виде. После отключения decrypt (кнопка Unmount на вкладке LOCAL) его содержимое исчезнет, а при подключении вновь появится. Красота такого решения в том, что с каталогом decrypt можно работать из любого приложения и подключать его только тогда, когда это нужно, а не на все время работы смартфона, как это происходит в случае со стандартной системой шифрования Android.


Как зашифровать устройство

Каталог, скопированный в decrypt в зашифрованном виде, выглядит так

WARNING

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

Новые функции безопасности и шифрования Android


Как зашифровать устройство

Как уже упоминалось, в большинстве новых смартфонов Android шифрование устройства включено автоматически. Большим изменением, которое было внесено пару лет назад в Android 7.0 Nougat, стала прямая загрузка. Перед прямой загрузкой весь ваш зашифрованный телефон будет заблокирован, пока вы не введете пароль. Начиная с Nougat, система позволяет запускать небольшой набор программного обеспечения, как только вы включаете телефон. Это означает, что телефонные звонки, будильники и т.д. Могут работать сразу после загрузки, в то время как приложения, которые вы загружаете, и другие личные данные не будут работать, пока вы не введете пароль.

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

Google продолжил улучшать свои функции безопасности с Android 8.0 Oreo с более детальным контролем над разрешениями приложений, дополнениями к функции проверенной загрузки, встроенной поддержкой двухфакторной аутентификации и многим другим. Что еще более важно, Oreo также представила улучшенное шифрование для предприятий. Все устройства могут использовать отдельные ключи шифрования для личных и рабочих профилей. Администраторам устройств также предоставляется возможность удаленно активировать ключи рабочего профиля для обеспечения полной защиты данных. Oreo также принесла с собой Project Treble, что стало еще одним большим шагом в обеспечении более быстрой доставки обновлений программного обеспечения и безопасности.

В Android 9.0 Pie также представлены некоторые ключевые функции конфиденциальности и шифрования. Приложения, работающие в фоновом режиме, больше не имеют доступа к микрофону, камере и другим датчикам (кроме GPS). Также огромное значение имеет добавление шифрования на стороне клиента.

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

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

С Android 10 компания Google пошла еще дальше. Все телефоны с последней версией Android должны быть по умолчанию зашифрованы, включая устройства начального уровня. Раньше они не подпадали под действие налога, поскольку им не хватало оборудования, необходимого для расширенного шифрования. Уже нет. В Android 10 Google представила Adiantum, новый метод шифрования, который работает на большинстве бюджетных телефонов (включая телефоны Android Go) и может работать даже на таких вещах, как умные часы и умные телевизоры.

Android 10 также поддерживает TLS 1.3, который шифрует и защищает трафик с вашего телефона к любой интернет-службе, к которой вы подключаетесь. Другими словами, покупка, которую вы хотите совершить во время серфинга по Wi-Fi в Starbucks, теперь принудительно защищена.

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

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

Источник записи: https://www.androidauthority.com

Выводы

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

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