Телохранитель - Объединение телохранителей и профессиональных охранников
Bodyguards
Популярное
О том, как Роб Пинкус, известный инструктор по стрельбе, застал у себя дома грабителейВот вы всё говорите: «В США круто, там можно любого постороннего в своём доме застрелить! Вторая поправка к конституции гарантирует гражданину это право! Ах, как было бы хорошо, если бы нам такое же разрешили!» и всё в том же духе. Дескать, любой американец хотя бы раз в жизни с ружьём в руках оборонялся от толпы вооруженных бандитов на пороге своего дома. А между тем, на деле чаще случаются ситуации, противоположные тому, что напридумывали себе наши граждане. Например, один известный инструктор по стрельбе однажды обнаружил дома грабителей, и…
Что такое лабаз: его краткое описание, краткая характеристика. Лабаз-самолаз, лабаз для охотыНа многие виды охотничьих животных гораздо эффективнее и удобнее вести охоту из различного вида укрытий. Обычно их располагают над поверхностью земли на определенной высоте. Такие укрытия принято называть лабазами. Еще их называют засидками. В данной статье расскажем, что такое лабаз, каких видов он бывает.
Экстремальная ситуация в быту: бытовой конфликтЗдесь все просто. Это, как видно из названия, конфликт на бытовой почве. Что-то не поделили, не сошлись во мнениях, поспорили — и вот, пожалуйста, оба готовы к драке.
С какой оптимальной скоростью нужно ездить, чтобы ваш автомобиль долго не ломалсяВ свете безумного подорожания, как новых так и подержанных автомобилей, водители стремятся продлить «жизнь» своей машине. А на это, поверьте, очень сильно влияет скоростной режим. О том, какая скорость для машины наиболее оптимальна, мы сегодня и расскажем.
 Можно ли вырвать чеку гранаты самостоятельно зубами? Сколько раз мы видели, как крутой герой боевика вырывает чеку гранаты зубами? Некоторые, возможно, попытались повторить этот эффектный трюк и в реальности — они уже уже знают ответ на вопрос. А для тех, кто не имел возможности, — ответ даём мы.
Телохранитель
Новинки от компании SCCY: интересные пистолеты DVG-1 и CPX-1 Gen 3Компания SCCY на выставке SHOT Show 2022 показала несколько новых пистолетов, среди которых яркие модели DVG-1 и CPX-1 Gen 3.
Нужны ли еще и механические прицельные приспособления при установленном оптическом прицеле?В стрелково-оружейном сленге языке есть очень ёмкая аббревиатура BUIS, означающая Back Up Iron Sights, что по нашему будет «запасные механические прицельные приспособления». Этот термин применяется, когда стрелок дополнительно устанавливает на оружие целик и мушку при уже установленном оптическом прицеле, на одной линии с оным или под углом в 45°, на случай выхода из строя оптики. О целесообразности такого подхода — следующая статья.
Охота с мелкашкой глазами владельца: интересные отзывыМелкокалиберные ружья, которые в простонародье принято называть мелкашками, используются охотниками на протяжении нескольких десятилетий. Такой успех был вызван благодаря ряду положительных сторон, которыми славится мелкашка: тихий выстрел, хорошая убойная сила, небольшая отдача и относительно невысокая цена. Но можно ли использовать такое оружие для охотничьего промысла? В нашей статье мы постараемся ответить на этот вопрос, а также расскажем все особенности охоты с мелкашкой глазами владельца.
Κaк можно увeличить кoличecтвo oтжимaний нa бpуcьяхОтжимaния нa бpуcьях — пpeвocхoднoe упpaжнeния для paзвития гpудных мышц и тpицeпcoв.
GERBER MULTI-TOOL MULTI-PLIER 600 многофункциональный интересный карманный мультитул Мультитул Gerber Multi-Tool Multi-Plier 600 (Gerber Multi-Plier 600), история которого берет свое начало еще в 1998 году, является одним самых широко известных изделий в ассортименте американской торговой марки Gerber Gear. И спустя почти 23 года с момента запуска в производство, данная модель по-прежнему на прилавках и продолжает пользоваться популярностью, в том числе, и в качестве стандартизированного элемента вещевого обеспечения в странах НАТО (NSN 5110-01-394-​6249).
Журнал Телохранитель

Мобильная безопасность или шифрофоны каждому

Шифруем внутреннюю память смартфона, SD-карту и содержимое Dropbox

Мобильная безопасность или шифрофоны каждому


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

Введение

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

Программисты Google научили Android использовать dm-crypt, начиная с версии 3.0 Honeycomb, где появилась опция, позволяющая быстро включить шифрование и задать PIN-код на доступ к данным. Со стороны пользователя все смотрится очень просто и беспроблемно: подключил телефон к заряднику, дождался полной зарядки и нажал на заветную кнопку. Система начала шифрование уже имеющихся данных. Гораздо интереснее все это выглядит изнутри.

Особый подход Android

В любом дистрибутиве Linux за управление dm-crypt отвечает утилита cryptsetup, создающая зашифрованный по стандарту LUKS том, к которому можно получить доступ и с помощью сторонних инструментов из Windows или OS X. Обычно cryptsetup запускается на этапе инициализации ОС из загрузочного initramfs-образа и подключает dm-crypt к дисковому накопителю, который затем монтируется.

В Android все происходит иначе. Из-за требований к лицензированию всех компонентов выше ядра с помощью Apache-совместимой лицензии, cryptsetup, распространяемая на условиях GPL2, не включена в состав Android. Вместо нее используется разработанный с нуля модуль cryptfs для местного менеджера томов vold (не путать с родными Linux-инструментами: vold и cryptfs, это совсем другие разработки).

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

В автоматическом режиме сделать это невозможно, так как система должна запросить у пользователя пароль для расшифровки, для чего нужен запуск графической среды, а ее, в свою очередь, невозможно запустить без подключения каталога /data, который невозможно подключить без пароля. Чтобы выйти из этой ситуации, в Android применили необычный трюк, заставив ОС запускаться «дважды». Первый запуск минимальной системы происходит перед запуском cryptfs, чтобы запросить пароль для расшифровки с подключением к /data временной файловой системы, после чего система, по сути, завершается, подключается зашифрованный раздел /data, и запускается уже окончательный вариант ОС.

Включение шифрования

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

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

Сначала vold/cryptfs генерирует 128-битный мастер-ключ на основе случайных данных из /dev/urandom и с помощью этого ключа отображает раздел, содержащий каталог /data, в новое виртуальное криптоустройство, запись в которое приведет к автоматическому шифрованию данных с помощью мастер-ключа, а чтение — к расшифровке.

Мастер-ключ шифруется с помощью PIN-кода пользователя и помещается в конец раздела. Отныне при загрузке система будет спрашивать пользователя PIN-код, читать из раздела зашифрованный мастер-ключ, расшифровывать его с помощью PIN-кода и подключать зашифрованный раздел /data.

Чтобы зашифровать уже имеющиеся на разделе данные, система последовательно читает блоки данных из раздела и пишет их в криптоустройство, так что, по сути, происходит последовательная операция «чтение блока -> шифрование -> запись обратно» до тех пор, пока не будет зашифрован весь раздел, кроме последних 16 Кб, в которых хранится мастер-ключ.

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

В случае с 16-гигабайтным накопителем Galaxy Nexus все эти операции занимают примерно 30 минут, а самое главное — они полностью автоматизированы, поэтому с шифрованием справится даже ребенок.

Один пароль для разблокировки и расшифровки?

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

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

$ su -c vdc cryptfs changepw пароль


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

Откат и совместимость с прошивками

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

Но здесь может возникнуть вопрос: «А что будет, если я обновлю Android или установлю кастомную прошивку?» В этом случае все зависит от способа установки. В большинстве случаев при обновлении прошивки или установке альтернативной прошивки примерно той же версии (например, замена CyanogenMod 10.1 на Paranoid Android 3 или MIUI 5) вайп делать не требуется. Это значит, что установленная прошивка при попытке примонтировать раздел /data «сообразит», что имеет дело с зашифрованным разделом, запросит у тебя пароль и преспокойно расшифрует данные.

Если же для установки требуется полный вайп, что обычно бывает необходимо при переходе на новые версии Android, то здесь ситуация еще проще. Во время вайпа раздел /data будет переформатирован и автоматически превратится в незашифрованный. Главное, сделать перед обновлением бэкап с помощью Titanium Backup или Carbon.

SD-карта

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

Среди шифрующего стороннего софта мы имеем выбор из трех разных классов приложений:

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

ПсевдоФС. В Linux-ядрах многих стоковых и альтернативных прошивок есть поддержка драйвера файловых систем пространства пользователя FUSE, на основе которой в свое время было разработано несколько шифрующих ФС. Одна из них — EncFS. В Android она есть в виде приложения Cryptonite, Encdroid и других. Такие софтины позволяют зашифровать любой каталог так, чтобы к нему имели доступ абсолютно все приложения.

Основанные на dm-crypt. Схожи по функциональности и реализации с предыдущими, но используют для шифрования родной dm-crypt. LUKS Manager — лучший представитель класса таких софтин. Позволяет создать на карте памяти файл-образ, который в любой момент можно подключить к любому каталогу для доступа к данным. То же самое можно сделать из Linux с помощью cryptsetup или из Windows, используя FreeOTFE.
Cryptonite

Cryptonite представляет собой обертку вокруг шифрующей файловой системы EncFS и позволяет создавать и просматривать зашифрованные тома на карте памяти и внутри Dropbox, а также подключать тома к каталогам карты памяти так, чтобы они были видны всем приложениям. Нас в первую очередь интересует последний вариант использования как единственный приемлемый для повседневного применения, но он требует прав root, а также наличия поддержки FUSE в ядре.

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

По этой причине для Cryptonite необходимо наличие двух каталогов: первый — для хранения зашифрованных данных и второй — пустой каталог, куда будет отображаться содержимое первого в расшифрованном виде. Для простоты назовем их crypt и decrypt. Создаем эти два каталога на карте памяти с помощью любого файлового менеджера. Запускаем Cryptonite, идем в «Настройки -> Mount point» и выбираем каталог decrypt. Теперь он всегда будет использоваться как точка доступа к зашифрованным данным. Возвращаемся обратно, переходим на вкладку LOCAL и нажимаем кнопку «Create local volume», чтобы инициализировать зашифрованный каталог. Выбираем каталог crypt и вводим пароль. Теперь осталось вернуться на главный экран и нажать кнопку «Mount EncFS» (и вновь ввести пароль). С этого момента все, что ты скопируешь в каталог decrypt, автоматически попадет в каталог crypt в зашифрованном виде, и после отключения decrypt никто не сможет прочитать его содержимое (можешь проверить, скопировав несколько файлов в decrypt, а затем просмотрев содержимое crypt).

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

Чтобы обойти эту проблему, можно установить сервис Dropsync, который висит в фоне и периодически синхронизирует содержимое выбранных каталогов с Dropbox. Достаточно настроить его на синхронизацию каталога crypt (но не decrypt), и данные в зашифрованном виде будут автоматически попадать в Dropbox. Чтобы получить доступ к данным с большого брата, можно воспользоваться версией EncFS для Linux или Windows. О том, как ими пользоваться, не писал только ленивый.

Мобильная безопасность или шифрофоны каждому

Cryptonite как он есть


LUKS Manager

Второе приложение из нашего списка — это LUKS Manager, по сути аналогичное по функциональности приложение, использующее в своей основе dm-crypt вместо EncFS и бинарные зашифрованные образы вместо каталогов. С практической точки зрения этот вариант лучше предыдущего тем, что зашифрованные с его помощью образы можно будет просматривать или изменять практически в любой ОС, включая Linux, Windows и OS X. Недостаток же в том, что его неудобно использовать для шифрования файлов в Dropbox, так как Dropbox-клиенту придется каждый раз синхронизировать целый образ, который может быть очень велик, в противовес отдельных файлов, как в случае с EncFS.

Мобильная безопасность или шифрофоны каждому

Главный экран LUKS Manager


Для корректной работы LUKS Manager необходимо ядро с поддержкой dm-crypt и loopback, но если первое есть даже в ядрах Android 2.3, то второе доступно далеко не во всех стоковых ядрах. Поэтому, скорее всего, понадобится прошивка с альтернативным ядром, такая как CyanogenMod, AOKP или MIUI.

В остальном все просто. Интерфейс программы состоит всего из шести кнопок: Status, Unmount All, Mount, Unmount, Create и Remove. Чтобы создать новый образ и получить к нему доступ, достаточно нажать «Create», выбрать каталог для подключения, размер и указать пароль и файловую систему (FAT32 для совместимости с Windows или ext2 для Linux). Одновременно на карте памяти могут существовать и быть подключенными сразу несколько образов, которые можно отключать кнопками «Unmount» или удалять с помощью «Remove».

Ничего сложного в управлении приложением нет, скажу лишь, что в пакет с LUKS Manager входит также собранная для Android версия утилиты cryptsetup, которую можно использовать для ручного управления и подключения образов.

Мобильная безопасность или шифрофоны каждому

LUKS Manager создал зашифрованный том


Другое применение

Dm-crypt и cryptfs используются в Android не только для защиты каталога /data от посторонних глаз. С их помощью здесь реализована, как это ни странно, система установки приложений на карту памяти. В ее основе лежит идея шифрованных образов, по одному на каждое установленное приложение. Сделано так для защиты конфиденциальных данных, возможно хранимых приложением, от других приложений, которые в Android имеют полный доступ к SD-карте на чтение, а также от тех, кто завладеет SD-картой.

Запустив терминал и выполнив команду df, ты сам сможешь убедиться, как это реализовано. На скриншоте «Galaxy Nexus и df» показан вывод этой команды на моем смартфоне. Хорошо видно, что кроме псевдокриптоустройства /dev/block/dm–0, которое подключено к каталогу /data и отвечает за шифрование данных на смартфоне, здесь есть еще 15 подобных устройств, подключенных к разным каталогам внутри /mnt/asec. Это и есть приложения, установленные на карту памяти. Сами приложения при этом хранятся в зашифрованных образах в каталоге .asec на карте памяти, а ключи шифрования хранятся в основной памяти смартфона.

Мобильная безопасность или шифрофоны каждому

Galaxy Nexus и df


Ты можешь также заметить, что здесь есть и псевдоустройство /dev/fuse, подключенное к /storage/emulated/legacy, а также некоторым другим каталогам. Это не что иное, как «эмулятор» карты памяти, реализованный с использованием описанного ранее драйвера FUSE (сам Galaxy Nexus карты памяти не поддерживает). По сути, это простое зеркалирование каталога /storage/emulated/legacy в /data/media/0. При этом каталог /sdcard — это ссылка на /storage/emulated/legacy. Запустив команду ps, можно заметить, что зеркалирование реализуется с помощью приложения /system/bin/sdcard, использующего FUSE в качестве базы. По сути, это альтернативная реализация знакомой всем линуксоидам unionfs.

WARNING

Модуль dm-crypt не может быть использован для шифрования разделов с файловой системой YAFFS, так как последняя использует низкоуровневые операции при обращении к NAND-памяти.
Выводы

Как видишь, получить качественное шифрование данных в Android очень просто, и в большинстве случаев для этого даже не потребуется устанавливать дополнительный софт. Единственное ограничение — это необходимость иметь смартфон на базе Android 4.0 и выше, но так как все, что было до 4.0, назвать ОС довольно трудно, то и проблемы здесь особой нет :).

INFO

Подробности реализации стандартной системы шифрования Android для параноиков: 128-битный AES в режиме CBC и ESSIV: SHA–256. Мастер-ключ шифруется другим 128-битным AES-ключом, полученным из пользовательского пароля при помощи 2000 итераций по стандарту PBKDF2 с 128 битами случайной соли.

Мобильная безопасность или шифрофоны каждому