В этом выпуске мы продолжим разговор об извлечении информации из резервных копий мобильных устройств. Тема сегодняшней статьи — устройства канадской компании BlackBerry под управлением ОС BlackBerry 10. Мы успели убедиться, что у Apple с безопасностью все хорошо, а в мире Android царят традиционные разброд и шатание, но есть облачные бэкапы. А как обстоит дело у BlackBerry 10?

 

Введение

Итак, BlackBerry 10. Система, которую компания-разработчик позиционирует (или, вернее сказать, позиционировала) как самую безопасную в мире. Открытый исходный код, множество моделей и разнообразие аппаратных платформ — это не про BlackBerry. Парк устройств ограничен десятком моделей, а в качестве аппаратной платформы неизменно используются вариации Qualcomm Snapdragon S4 (в BlackBerry Passport — Snapdragon 801).

Создание и восстановление резервных копий — штатная функция в BlackBerry 10. Для выполнения бэкапа можно использовать как фирменное приложение BlackBerry Link, так и одно из сторонних решений — к примеру, универсальный инструмент Sachesi.

Sachesi: инструмент для прошивки и бэкапа смартфонов BlackBerry
Sachesi: инструмент для прошивки и бэкапа смартфонов BlackBerry

Если создать резервную копию данных можно с помощью сторонней утилиты, как это сочетается с декларированной безопасностью? Как ни странно, сочетается вполне неплохо. Во-первых, для подключения BlackBerry Link или Sachesi необходимо разблокировать устройство вводом корректного PIN или пасскода (в противном случае соединение не состоится). А вот во-вторых гораздо интереснее. Резервная копия создается внутри телефона и сразу шифруется. Наружу в открытом виде не поступает ничего: весь поток данных идет в зашифрованном виде, а BlackBerry Link или Sachesi просто сохраняют его в файл.

Похоже на iOS? Не совсем. В Купертино локальные резервные копии можно шифровать, указав любой пароль, а можно не шифровать совсем (в этом случае, напомним, данные из keychain будут все равно зашифрованы, но уже аппаратным ключом, что позволяет восстанавливать keychain исключительно на то же устройство, с которого была снята резервная копия). Канадцы пошли другим путем. Они вообще запретили не шифровать данные. При этом бэкапы, созданные на одном устройстве, спокойно восстанавливаются на любом другом смартфоне под управлением BlackBerry 10, зарегистрированном на того же пользователя. Как так? Посмотрим внимательно на шифрование в BlackBerry 10.

 

Шифрование

Ключ шифрования резервных копий на устройствах BlackBerry привязан не к железу и не к паролю пользователя, а к учетной записи BlackBerry ID. При создании учетной записи (к которой привязываются покупки в магазине BlackBerry и сервис BlackBerry Protect) создается и некий секретный ключ, который сохраняется как на серверах BlackBerry, так и в самом устройстве. В аппарате этот ключ хранится очень глубоко, из пользовательского режима его никак не вытащить (впрочем, не вытащить его даже методом физического извлечения чипа eMMC — по крайней мере, если активировано шифрование данных).

Когда BlackBerry Link запрашивает бэкап у устройства, системный сервис отдает уже зашифрованные данные, используя для шифрования этот же ключ. Точно так же данные можно восстановить на новое устройство — но только после того, как аппарат будет привязан к той же учетной записи BlackBerry ID, с которой была сделана резервная копия.

Историческая справка

Шифрование в смартфонах BlackBerry было всегда, но не всегда оно работало именно так. В предыдущем поколении BlackBerry OS (до версии 7 включительно) резервные копии, создаваемые в приложении BlackBerry Desktop, можно было шифровать пользовательским паролем или не шифровать вообще. При этом в саму резервную копию попадало гораздо меньше информации, чем сохраняется в BlackBerry 10. Путаница? Нет: BlackBerry OS и BlackBerry 10 — две совершенно разные ОС. На сегодняшний день BlackBerry OS представляет исключительно исторический интерес.

 

Взлом

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

В лаборатории «Элкомсофт» мы провели такую атаку. Подсмотрев адреса для запросов и представившись новеньким смартфоном, мы успешно соединились с сервером BlackBerry, отдали ему данные учетной записи BlackBerry ID, включая пароль, и получили вожделенный ключ! И уже с его помощью — доступ к содержимому зашифрованной резервной копии.

 

Как мы это сделали

Как мы уже установили, резервная копия данных создается внутри устройства. Шифрование данных реализовано алгоритмом AES-256, а верификация — через HMAC-SHA-1. Ключ шифрования система получает из файла /accounts//sys/bbid/keyCache. Если файл не найден, посылается запрос к BB Olympia Service (blackberryid.blackberry.com).

Если используется BlackBerry Link, резервная копия будет сохранена в формате BlackBerryBackupFormatV2.0.0 в виде зашифрованного файла BBB-QNX. Фактически это самый обычный ZIP, внутри которого содержится файл manifest.xml и большое количество зашифрованных двоичных файлов (забегая вперед — это зашифрованные архивы tar).

Содержимое бэкапа
Содержимое бэкапа

Как расшифровать этот бэкап? Для начала извлекаем BlackBerry ID из manifest.xml (для этого читаем параметр keyed любого тега). Как правило, BlackBerry ID совпадает с адресом электронной почты пользователя.

Далее нужно зарегистрировать новое поддельное устройство. Для этого нам потребуется установить соединение с сервером BlackBerry. Адрес сервера: blackberryid.blackberry.com. Параметры запроса: bbid (Blackberry ID), password (пароль), pin (серийный номер устройства), salt (энтропия клиента). Ответ:

Расшифровка ответа (опуская очевидные поля):

  • se — server entropy (соль сервера);
  • et — срок действия, expiry time;
  • ec — user ID для облачных сервисов BB cloud (сохраняется по адресу /dev/rpmb/BBID_BDEK);
  • at — authentication token (маркер аутентификации).

Следующий запрос: RST (Request Secure Token), где указывается тип маркера и имя сервиса. Нас интересует вполне конкретный маркер, имя которого — qbek. Для получения маркера qbek (здесь кратко, все секреты мы раскрывать не хотим):

  • получаем маркер аутентификации (authentication token, см. параметр at выше);
  • получаем маркер BBIDAuthN_1 для аутентификации urn:bbid:v1:olympia;
  • отправляем запрос на получение маркера authzo:qbek;
  • регистрируем устройство на сервере BlackBerry (используется маркер authzo:qbek);
  • получаем информацию о backupAndRestoreKey (два ID);
  • получаем ссылку janusUrl запросом на kronos.bbprotect.blackberry.com;
  • наконец, получаем интересующий нас ключ qbek запросом по адресу %janusUrl%/FlashGetFile.

Обрати внимание: для регистрации устройства на сервере BlackBerry потребуется уникальный серийный номер устройства (BlackBerry называет этот номер PIN, что не имеет ни малейшего отношения к PIN-коду для разблокировки экрана).

Еще один важный момент: ключ qbek зависит только от BlackBerry ID пользователя. Получив нужный ключ qbek, мы можем расшифровать tar-файлы из архива, используя алгоритм AES-256 и ключ qbek в качестве ключа шифрования.

Вот как весь процесс выглядит на блок-схеме:

 

Как это можешь сделать ты

Всю процедуру извлечения ключа шифрования мы упаковали в нашу фирменную и уже знакомую утилиту Elcomsoft Phone Breaker. С ее помощью извлечь ключ можно в три простых шага.

Шаг 1: создание резервной копии

Для начала создадим резервную копию данных. Используем для этого стандартный BlackBerry Link (с ним точно не возникнет сюрпризов вроде несовместимости форматов файлов):

Шаг 2: получение ключа и расшифровка

Далее откроем Elcomsoft Phone Breaker и укажем путь к зашифрованному бэкапу. Обрати внимание: программа самостоятельно извлечет из файла BlackBerry ID пользователя. От тебя потребуется пароль от учетной записи BlackBerry (той самой, с которой была создана резервная копия):

Двухфакторной аутентификации у BlackBerry (самой защищенной операционной системы) нет, так что ключ приходит моментально и без проволочек. В этот момент Elcomsoft Phone Breaker автоматически расшифровывает содержимое резервной копии.

Шаг 3: открываем бэкап

Содержимое уже расшифрованного бэкапа можно посмотреть с использованием одного из криминалистических инструментов — например, «Мобильный криминалист» от Oxygen или Elcomsoft Phone Viewer от «Элкомсофт».

Однако куда интереснее пройтись по содержимому архива самостоятельно. И здесь нас ждет целый ряд неожиданных открытий.

 

Что внутри

Знаешь ли ты, что BlackBerry 10 основана на QNX? А знаешь ли ты, что отличия между QNX и Linux с точки зрения API настолько невелики, что BlackBerry смогли установить в системе полноценную среду исполнения Android? Причем запустив ее поверх ядра QNX без использования эмулятора. Да, трансляция вызовов API и усиленные требования безопасности заметно замедляют работу системы в сравнении с гуглофонами с аналогичным железом, но наличие подсистемы Android заметно расширяет круг доступных пользователям BlackBerry 10 приложений.

Так вот, возвращаясь к подсистеме Android. В резервную копию BlackBerry 10 попадают все данные Android Runtime (в BlackBerry Link это обозначено как «BlackBerry Runtime»). Сохраняются как все приложения (apk) и их приватные данные (пожелания разработчиков о том, что включать, а что не включать в бэкапы, полностью игнорируются), так и кеш Dalvik, блобы, базы данных в формате SQLite, данные OBB и даже кеш приложений и медиаданные (к примеру, офлайновые языки Google Translate). С какой-то точки зрения устройства на базе BlackBerry 10 даже более удобны для исследования приложений Android, чем устройства под управлением Android!

Данные приложений Android в бэкапе BlackBerry
Данные приложений Android в бэкапе BlackBerry

Если во время создания резервной копии были выбраны соответствующие опции, то в резервные копии попадают фотографии, музыка, файлы приложений (для экономии места их можно и не сохранять — тогда они подгрузятся из магазина). Разумеется, сохраняются системные настройки и настройки учетных записей из BlackBerry Hub (но авторизоваться все равно придется заново). Звонки, SMS сохраняются. А вот письма, полученные в BlackBerry Hub, в резервную копию не попадают.

 

Заключение

Сегодня мы рассмотрели, как работают резервные копии в системе BlackBerry 10. Облачных бэкапов нет и уже точно не будет, но локальные резервные копии сохраняют практически все настройки и данные приложений (опционально — и сами приложения). Ключ шифрования не задается пользователем и не привязан к железу; вместо этого он хранится на сервере BlackBerry и может быть оттуда получен, если известен пароль от учетной записи.

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

В результате система резервного копирования в BlackBerry 10 получает оценку «очень хорошо». Сделать лучше вполне можно, гораздо хуже — тоже далеко ходить не надо. В целом система вполне работоспособна и отвечает поставленным задачам.

А как обстоят дела с резервным копированием у устройств под управлением мобильной и десктопной версии Windows 10? Об этом — в следующем номере!

  • Подпишись на наc в Telegram!

    Только важные новости и лучшие статьи

    Подписаться

  • Подписаться
    Уведомить о
    1 Комментарий
    Старые
    Новые Популярные
    Межтекстовые Отзывы
    Посмотреть все комментарии