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

Что такое сквозное шифрование и какие еще бывают варианты

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

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

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

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

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

Пофайловое шифрование (FBE) данных в Андроид

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

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

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

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

  • Qualcomm Snapdragon 625 (MSM8953), 820 (MSM8996) и 821 (MSM8996 Pro);
  • Samsung Exynos 7420, 7570, 7870 и 8890;
  • MediaTek Helio X20(MT6797), X25 (MT6797T) и X30;
  • HiSilicon Kirin 650, 950, 955 и 960.

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

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

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

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

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

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

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

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

В НОВЫХ УСТРОЙСТВАХ ШИФРОВАНИЕ ПОЧИНИЛИ!

С выходом в свет Android 6.0 в Google таки прописали требование активировать шифрование в 64-битных устройствах, выпущенных с Android 6 на борту (требование не распространяется на аппараты, которые до Android 6 обновились). Таких устройств пока выпущено немного, так что делать вывод о том, приняли ли производители к сведению это требование, пока рано.

Очевидно, компанию Google не вдохновили лавры Apple, не устроил выделенный модуль ускорения крипто в топовом чипсете Qualcomm — или просто не сложилось. Срочно понадобилось что-то новое. Не хватало, казалось, только набора команд ускорения крипто, которые появились в ARMv8.

Итак, выходят 64-битные Nexus 5x и 6P, базирующиеся на чипсетах Snapdragon 808 и 810 соответственно. Так же как и Snapdragon 805, эти наборы системной логики оснащены высокопроизводительными выделенными модулями аппаратного ускорения шифрования. И так же, как и в Nexus 6, разработчики из Google не смогли (или не захотели) использовать эти модули. Виноград оказался настолько зеленым и кислым, что начальник отдела разработки официально заявил: «Мы использовали программное ускорение шифрования, а именно — набор команд ARMv8, который обеспечивает более высокую производительность в сравнении с аппаратным ускорителем AES, встроенным в SoC».

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

Согласно официальной позиции Qualcomm, эти инструкции ни в коей мере не могут служить полноценной заменой выделенному модулю. Тем не менее Google (а за ней и большинство производителей) радостно начинает использовать именно эти инструкции и начисто игнорирует встроенные в чипсеты криптосопроцессоры.

Результат: зашифрованные данные на таких аппаратах (даже на устройствах начального уровня вроде Moto E 2015) читаются всего лишь в два раза медленнее незашифрованных. А вот на устройствах, базирующихся на 32-битных процессорах ARMv7, падение производительности гораздо сильнее — в четыре раза.

Что ввозится по упрощенной схеме?

  • Товары, содержащие шифровальные (криптографические) средства, имеющие любую из следующих составляющих:
    • симметричный криптографический алгоритм, использующий криптографический ключ длиной, не превышающей 56 бит (это обычный и мало где сейчас применяемый DES); или
    • асимметричный криптографический алгоритм, основанный на любом из следующих методов (тот же RSA в современной реализации в это исключение тоже не попадает):
      • на разложении на множители целых чисел, размер которых не превышает 512 бит;
      • на вычислении дискретных логарифмов в мультипликативной группе конечного поля
        размера, не превышающего 512 бит; или
      • на дискретном логарифме в группе, отличного от поименованного в вышеприведенном
        подпункте “b” размера, не превышающего 112 бит.
  • Товары, содержащие шифровальные (криптографические) средства, обладающие следующими ограниченными функциями:
    • аутентификация, включающая в себя все аспекты контроля доступа, где нет шифрования файлов или текстов, за исключением шифрования, которое непосредственно связано с защитой паролей, персональных идентификационных номеров или подобных данных для защиты от несанкционированного доступа;
    • электронная цифровая подпись.
  • Шифровальные (криптографические) средства, являющиеся компонентами программных операционных систем, криптографические возможности которых не могут быть изменены пользователями, которые разработаны для установки пользователем самостоятельно без дальнейшей существенной поддержки поставщиком и техническая документация (описание алгоритмов криптографических преобразований, протоколы взаимодействия, описание интерфейсов и т.д.) на которые является доступной. Именно под это исключение подпадают широко распространенные ОС — Windows, Linux и т.п.
  • Шифровальное (криптографическое) оборудование, специально разработанное и ограниченное применением для банковских или финансовых операций. Это банкоматы, оборудование для SWIFT и т.п. Cisco специально для данных целей выпускает маршрутизаторы 800-й серии с кодом PCI в коде продукта.
  • Персональные смарт-карты (интеллектуальные карты).
  • Приемная аппаратура для радиовещания, коммерческого телевидения или аналогичной коммерческой аппаратуры для вещания на ограниченную аудиторию без шифрования цифрового сигнала, кроме случаев использования шифрования исключительно для управления видео- или аудиоканалами и отправки счетов или возврата информации, связанной с программой, провайдерам вещания.
  • Оборудование, криптографические возможности которого недоступны пользователю, специально разработанное и ограниченное для применения любым из следующего
    • программное обеспечение исполнено в защищенном от копирования виде
    • доступом к любому из следующего:
      • защищенному от копирования содержимому, хранящемуся только на доступном для чтения носителе информации;
      • информации, хранящейся в зашифрованной форме на носителях, когда эти носители информации предлагаются на продажу населению в идентичных наборах
    • контролем копирования аудио- и видеоинформации, защищенной авторскими правами.
  • Портативные или мобильные радиоэлектронные средства гражданского назначения (например, для использования в коммерческих гражданских системах сотовой радиосвязи), которые не способны к сквозному шифрованию (т.е. от абонента до абонента). Именно под это исключение попадают обычные мобильные телефоны и многие модели смартфонов.
  • Беспроводное радиоэлектронное оборудование, осуществляющее шифрование информации только в радиоканале с максимальной дальностью беспроводного действия без усиления и ретрансляции менее 400 м в соответствии с техническими условиями производителя. Домашние точки доступа вполне подпадают под это исключение.
  • Шифровальные (криптографические) средства, используемые для защиты технологических каналов информационно-телекоммуникационных систем и сетей связи.
  • Товары, у которых криптографическая функция заблокирована производителем. Например, Cisco для многих своих продуктовых линеек выпускает специальные версии оборудования с установленным программным обеспечением NO PAYLOAD ENCRYPTION — “NPE”. Такое ПО есть для маршрутизаторов Cisco 800, ISR 1900, ISR 2900, ISR 3900, 2100 CGR, ASR1000, ASR 903, коммутаторов Cisco Catalyst 3560-X, Catalyst 3750-X, 2500 CGS, Nexus 7000, оборудования систем видеоконференцсвязи, систем унифицированных коммуникаций. Этот список модифицированных продуктов постоянно расширяется.

А других вариантов нет?

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

Что умеет Precursor

Помимо корпуса и клавиатуры платформа Precursor имеет в своем распоряжении полностью готовую к использованию системную плату, но не с готовым процессором, а со специальной программно определяемой системой на чипе FPGA Xilinx XC7S50. Его наличие позволяет тем, кто создает мобильник на базе Precursor, эмулировать практически любой процессор, в том числе и с архитектурой ARM. По умолчанию в платформу вшита эмуляция 32-битного чипа с архитектурой RISC-V на частоте 100 МГц.

Базовый дизайн корпуса Precursor

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

Разумеется, совершать звонки при помощи телефона на базе Precursor можно, но только при помощи внешней гарнитуры. Есть поддержка проводных наушников с коннектором 3,5 мм, а вот про модуль Bluetooth в своем детище Хуан не упомянул. В базовой версии также нет модема сотовой связи, но платформа позволяет установить его отдельно.

Базовый комплект Precursor дополнен 16 МБ оперативной памяти, 128-мегабайтным модулем флеш-памяти, портом USB-C и модулем Wi-Fi WF200C от Silicon Labs. Вся электроника работает от аккумулятора на 1100 мАч, а информация выводится на монохромный ЖК-дисплей с разрешением 336х536 точек и плотностью 200 точек на дюйм (его диагональ не указана). Полная зарядка АКБ посредством USB-C осуществляется за три часа, энергии хватает на 100 часов работы в режиме ожидания.

Также в составе платформы есть динамик, акселерометр, гироскоп и вибромоторчик. Все это поместилось в корпусе размерами 138х69х7 мм, а весит весь набор 96 граммов.

Внутреннее убранство платформы

Платформа позволяет устанавливать дополнительные компоненты, например, модем сотовой связи и SIM-слот, которых по умолчанию в Precursor нет. Для этого Хуан предлагает отказаться от штатной АКБ и установить батарею меньшей емкости и, соответственно, меньшего размера, чтобы в корпусе появилось место для новых деталей.

Защищенный смартфон на базе CopperheadOS

Главная особенность CopperheadOS — существенно раcширенные средства предотвращения взлома. Прошивка включает в себя модернизированную реализацию аллокатора памяти (malloc) из OpenBSD (подробнее о нем можно прочитать здесь), который рандомизирует выделяемые приложению страницы и заполняет мусором возвращаемые страницы памяти. Это делает атаки класса use-after-free более сложными в реализации. OpenBSD malloc также размещает метки в конце выделяемых областей памяти, которые проверяются при ее освобождении. Это позволяет бороться с атаками типа heap overflow.

При сборке CopperheadOS используются средства компилятора для предотвращения срыва стека. В частности, механизмы в GCC (Android

Эти средства использует Google в AOSP, но разработчики CopperheadOS расширили их применение для гораздо большего количества функций стандартной библиотеки языка си (и, что немаловажно, закоммитили в апстрим)

Для защиты от модификации кода CopperheadOS использует механизм доверенной загрузки, впервые появившийся в Android 4.4, и, кроме того, не полагается на заблаговременно оптимизировaнный код приложений из каталога /data/dalvik-cache. Последний нужен для быстрого запуска приложений и генерируется во время первой загрузки смартфона (сообщение «Оптимизация приложений…»). Однако он же может быть использован для внедрения в систему зловредного кода: нет смысла подменять само приложение в разделе /system — механизм доверенной загрузки откажется загружать смартфон после модификации системного раздела, а вот оптимизированный код в /data/dalvik/cache ни у кого подозрений не вызовет.

Ядро CopperheadOS собрано с патчем PaX, включающим в себя нескoлько механизмов предотвращения атак:

  • — более продвинутая, в сравнении с применяемой в стандартном ядре Android, реализация механизма рандомизации адресного пространства (ASLR), затрудняющая атаки, направленные на переполнение буфера и хипа;
  • — механизм защиты страниц данных от исполнения, который убивает приложение, как только оно попытается исполнить код в области данных (в ядре Android есть такой механизм, но он действует более мягко);
  • — препятствует модификации кода приложения во время исполнения;
  • — обнуляет страницу памяти при ее освобождении (только для пространства ядра);
  • — система автоматического освобождения неиспользуемых объектов в памяти, позволяет пpедотвратить атаки типа use-after-free (только для пространства ядра);
  • — защита от переполнения буфеpа путем сверки размера объекта (только для пространства ядра);
  • — защита страниц памяти от исполнeния (только для пространства ядра).

В CopperheadOS более строгие правила SELinux — системы разграничения прав дoступа к файлам, системным вызовам и железу

К примеру, здесь нельзя выполнить код из временных каталогов (подключенных с помощью псевдоФС tmpfs), нельзя получить доступ к важной системной информации и информации о других процессах с помощью чтения файлов каталога /proc

CopperheadOS включает в себя множество других ограничений. По умолчанию стандартное прилoжение камеры не указывает в метаданных снимка местоположение съемки, а экран не показывает уведомления, которые могут раскрыть конфиденциальную информацию (Android и iOS разрешают показ таких уведомлений, с возможностью отключения). Работающие в фоне приложения не могут получить доступ к буферу обмена (что ломает работоспособность нескольких полезных приложений из маркета). MAC-адрес всех сетевых интерфейсов по умолчанию рандомизируется. Компонент WebView, отвeчающий за отрисовку веб-страниц в сторонних приложениях (и многих браузерах), использует функцию isolatedProcess, позволяющую запереть каждый инстанс WebView в собственную песочницу.

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

Алло, блокчейн

Криптофон — пока что слово звучит довольно странно, но кто знает, может быть, это будущее всех смартфонов?

Компания HTC сообщила дату премьеры первого блокчейн–смартфона Exodus, новинка выйдет 22 октября. Разработчики обещали внедрить поддержку биткоина и Ethereum. И совершенно точно устройство будет поддерживать криптовалюту Litecoin (ее создатель трудится советником проекта).

Участники рынка сравнивают технологию с системой PayPass. Проблема в том, что платить криптофоном особо не за что: точек, где принимают биткоин, в мире мало.

«Все это двигается к тому, чтобы совместить в смартфоне функции банка, паспорта и других регистрационных данных и хранить все это в зашифрованном виде в блокчейне, — говорит криптоинвестор и член Bitcoin Foundation Александр Китченко. — Разумеется, всех быстро посадить в такую «банку» не получится, да и, честно говоря, пугает такая история. Но в высокотехнологичных городах типа Сингапура и Гонконга такие новинки будут иметь популярность».

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

«Неважно, это блокчейн или секретные смартфоны для чиновников и бизнесменов. Это слишком узкая ниша

Чтобы устройство эффективно работало, нужна какая–то критическая масса, чтобы появилась экосистема. Иначе у вас получится очередной Yotaphone», — оценивает новинку Юрий Брюквин, генеральный директор агентства «Рустелеком». «Заявленную функциональность сейчас можно сделать на существующих смартфонах. При этом любая потеря средств с такого устройства вызовет волну гнева и отток пользователей», — добавляет основатель bits.media Иван Тихонов.

Тем не менее это не единственный проект на рынке. Уже известно как минимум четыре стартапа, обещающих защищенные коммуникации на блокчейне (Swiss Bank, Blacture, Sirin Labs и Pundi X). Судя по тысячам предзаказов, интерес к этой нише все–таки есть. И уж во всяком случае «криптофон» звучит куда более модно и революционно, чем очередная обновка для айфона.

Обсуждаем новости здесь.
Присоединяйтесь!

КАК ВЗЛАМЫВАЮТСЯ НЕЗАШИФРОВАННЫЕ ТЕЛЕФОНЫ

Не будем углубляться в детали, просто имей в виду: данные с незашифрованного телефона можно извлечь почти в ста процентах случаев. «Почти» здесь относится скорее к случаям, когда телефон попытались физически повредить или уничтожить непосредственно перед снятием данных. Во многих устройствах Android и Windows Phone есть сервисный режим, позволяющий слить все данные из памяти аппарата через обычный USB-кабель. Это касается большинства устройств на платформе Qualcomm (режим HS-USB, работающий даже тогда, когда загрузчик заблокирован), на китайских смартфонах с процессорами MediaTek (MTK), Spreadtrum и Allwinner (если разблокирован загрузчик), а также всех смартфонов производства LG (там вообще удобный сервисный режим, позволяющий слить данные даже с «окирпиченного» устройства).

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

А если шифрование было включено? В старых версиях Android (до 4.4 включительно) и это можно было обойти (за исключением, правда, аппаратов производства Samsung). А вот в Android 5.0 наконец появился режим стойкого шифрования. Но так ли он полезен, как полагает Google? Попробуем разобраться.

Как включить шифрование на Android

Android использует функцию шифрования dm-crypt. Это стандартная система шифрования диска в ядре Linux. Технология dm-crypt используется разными дистрибутивами Linux.

Условия для шифрования

  • Шифрование устройства может занять час или больше.
  • Батарея должна быть заряжена хотя бы на 80%.
  • На протяжении шифрования устройство должно заряжаться от сети.
  • Если устройство рутовано, временно отключите права суперпользователя.
  • Если вы прервете процесс шифрования или как-то в него вмешаетесь, вы, скорее всего, потеряете данные. Поэтому как только шифрование началось, оставьте устройство в покое
  1. Зайдите в Настройки.
  2. Нажмите на Безопасность. Если ваш телефон зашифрован, вы увидите опцию Зашифровано. Если нет — начинайте шифрование, нажав на опцию Зашифровать телефон.
  3. На следующем экране вы увидите предупреждение, что ожидать после того, как шифрование закончится. Если вы готовы, нажимайте кнопку Зашифровать телефон.
  4. Снова увидите предупреждение о том, что не нужно прерывать процесс. Опять нажмите кнопку Зашифровать телефон.
  5. Ваш телефон перезагрузится и начнет шифрование. Вы будете видеть индикатор выполнения и время окончания шифрования.
  6. Как только шифрование закончится, телефон снова перезагрузится. Чтобы проверить, что шифрование включено, зайдите в Настройки > Безопасность. Вы увидите подтверждение Зашифровано под опцией Зашифровать телефон.

Как зашифровать карту памяти

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

Но не волнуйтесь — карту памяти тоже можно зашифровать:

Зайдите в Настройки, выберите Безопасность > Зашифровать внешнюю SSD карту и нажмите Включить.

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

Оцените статью
Рейтинг автора
5
Материал подготовил
Илья Коршунов
Наш эксперт
Написано статей
134
Добавить комментарий