В центре истории "Саудовского взлома" находится таинственное видеофайл, который следователи не смогли расшифровать, отправленный наследным принцем Саудовской Аравии MBS в Безос через WhatsApp. В этом посте я покажу, как его расшифровать. После расшифровки у нас будет либо дымящийся пистолет, доказывающий вину саудовцев, либо оправдание, показывающее, что в докладе ничего не говорится о саудитах. Я покажу, как каждый может повторить это на своем iPhone.
Шаги просты:
В
Вместо этого рассматриваемый файл - это просто само видео, зашифрованное с несколькими дополнительными байтами (10 bytes of checksum at the start, up to 15 bytes of padding at the end) .
Теперь поговорим о «сквозном шифровании». Это только означает, что те, кто находится посередине, не могут расшифровать файл, даже серверы WhatsApp. Но те, кто на концах, могут. Безос может обновить свой старый iPhone X до нового iPhone XS, сделав резервную копию старого телефона и восстановив его на новом телефоне и расшифровав видео. Это означает, что ключ дешифрования находится где-то в резервной копии.
В частности, ключ дешифрования находится в файле с именем 7c7fba66680ef796b916b067077cc246adacf01d в резервной копии в таблице с именем ZWAMDIAITEM, как первое поле protobuf в поле с именем ZMEDIAKEY. Эти детали объяснены ниже.
Сквозное шифрование видео в WhatsApp
Давайте обсудим, как видео передаются с помощью текстовых сообщений.
Мы начнем с SMS, старой системы обмена сообщениями, встроенной в телефонную систему, которая предшествует современным приложениям. Он может отправлять только короткие текстовые сообщения по несколько сотен байт за раз. Эти сообщения слишком малы, чтобы вместить полное видео размером в несколько мегабайт. Они отправляются через саму телефонную систему, а не через Интернет.
Когда вы отправляете видео через SMS, происходит передача видео на серверы телефонной компании через HTTP. Затем отправляется текстовое сообщение с URL-ссылкой на видео. Когда получатель получает сообщение, его телефон загружает видео с URL. Текстовые сообщения, проходящие через телефонную систему, содержат только URL, для передачи видео используется интернет-соединение.
Это происходит прозрачно для пользователя. Пользователь просто видит видео, а не URL. Они заметят разницу только при использовании древних мобильных телефонов 2G, которые могут получать SMS-сообщения, но не могут подключиться к Интернету.
С WhatsApp происходит то же самое, только с добавленным шифрованием.
Перед отправкой по HTTP на серверы WhatsApp отправитель сначала шифрует видео с помощью случайно сгенерированного ключа. Это означает, что WhatsApp не может расшифровать файлы на своих серверах.
Затем отправитель отправляет получателю сообщение, содержащее URL-адрес и ключ дешифрования. Это сообщение полностью зашифровано, поэтому опять же, WhatsApp не может расшифровать содержимое сообщения.
Получатель загружает видео с сервера WhatsApp, а затем расшифровывает его с помощью ключа шифрования.
Вот пример. Друг прислал мне видео через WhatsApp:
Все сообщения отправляются с использованием сквозного шифрования для этого сеанса. Как описано выше, само видео не отправляется как сообщение, только URL и ключ. Эти:
Это реальные значения из вышеупомянутого обмена. Вы можете нажать на URL и скачать зашифрованный файл на свой компьютер. Размер файла составляет 22 161 850 байт (22 мегабайта). Затем вы можете расшифровать его, используя вышеуказанный ключ, используя код, показанный ниже. Подчеркну еще: вы можете повторить все, что я делаю в этом посте, чего не могли сделать криминалисты, нанятые Безосом.
Резервное копирование iPhone и извлечение файлов
Криминалистический отчет в истории Безоса упоминает множество причудливых, дорогих инструментов, доступных только для правоохранительных органов, таких как Celebrite. Однако ни один из них не является необходимым для получения результатов. Похоже, вы можете получить те же результаты в домашних условиях, используя бесплатные инструменты.
Есть два способа получить все файлы с iPhone. Один из способов - просто сделать стандартное резервное копирование телефона, на iCloud или на настольный компьютер/ноутбук. Лучший способ - сделать джейлбрейк телефона и получить полный образ внутреннего диска. Вы можете сделать это на iPhone X (например, на телефоне Безоса), используя джейлбрейк «checkm8». Это немного сложно, но реализуемо в пределах возможностей технарей. Резервная копия получает только файлы, необходимые для восстановления телефона, но джейлбрейк получает все.
В этом случае, похоже, следователи получили только резервную копию телефона. Для расшифровки файлов WhatsApp этого достаточно. Как упомянуто выше, резервная копия нуждается в ключах для правильного восстановления телефона.
Вы можете сделать это с помощью собственной программы Apple iTunes на Windows или macOS. Она копирует все с iPhone на ваш компьютер. Предполагается, что если вы сломаете свой телефон, потеряете его или обновите до последней модели, вы сможете легко восстановить данные из этой резервной копии. Однако вместо этого мы собираемся использовать эту резервную копию для экспертизы (мы не собираемся восстанавливать телефон из этой резервной копии).
Итак, теперь, когда вы скопировали все файлы на свой компьютер что вы можете с ними сделать?
Вот расположение файлов. Есть два разных места для Windows, в зависимости от того, установили ли вы iTunes от Apple или Microsoft.
Внутри каталога резервного копирования Apple не использует оригинальные имена файлов на телефоне. Вместо этого он сохраняет их, используя хэш SHA1 исходного имени файла. Каталог резервного копирования содержит 256 подкаталогов с именами 00, 01, 02, .... ff, соответствующих первому байту хэша, причем каждый каталог содержит соответствующие файлы.
Файл, который мы ищем, является файлом ChatStorage.sqlite в WhatsApp , полный путь к
В macOS каталог резервного копирования защищен. Вы должны зайти в настройки безопасности и конфиденциальности , чтобы дать терминальному приложению разрешения «Полный доступ к диску». Затем скопируйте этот файл в какой-то другой каталог (например, ~), куда другие приложения смогут его найти.
Обратите внимание, что на снимке экрана выше я также дал разрешения «
Смысл этого раздела в том, чтобы показать, что получение этих файлов - это просто копирование с телефона и знание того, какой файл искать.
Работа с чатом WhatsApp
В предыдущем разделе я описал, как сделать резервную копию iPhone, а затем извлечь файл ChatStorage.sqlite из этой резервной копии. Этот файл содержит все ваши сообщения чата, отправленные и полученные на вашем iPhone. В этом разделе я опишу, как читать этот файл.
Этот файл является базой данных SQL в стандартном формате "sqlite". Это популярный проект с открытым исходным кодом для встраивания баз данных SQL в приложения, и он используется повсеместно. Это означает, что вы можете использовать сотни графических интерфейсов, инструментов командной строки и языков программирования для чтения этого файла.
Я использую "
Медиа-ключи - это "blobs" -- "binary large objects" . Если я нажму на один из этих BLOB-объектов, в качестве медиа-клавиши я увижу следующее:
Эти двоичные данные находятся в формате, называемом protobuf . Байт 0x0a означает, что первое поле является строкой переменной длины. Следующий байт 0x20 означает, что длина строки составляет 32 байта. Следующие 32 байта - это наш ключ шифрования, который я выделил. Следующее поле (0x12 0x20) - это хеш файла. В конце есть еще два поля, но я не понимаю, что это такое.
Итак, в шестнадцатеричном коде наш ключ шифрования:
4ca80d66c68402fb53ccd1207c3a9de5401d9a704d51c26d37b9b130aba700fc
Или если закодировано в BASE64;
TKgNZsaEAvtTzNEgfDqd5UAdmnBNUcJtN7mxMKunAPw =
Теперь у нас есть mediaurl и mediakey, упомянутые выше. Все, что нам нужно сделать, это загрузить файл и расшифровать его.
Как расшифровать медиафайл WhatsApp
Теперь мы подошли к сути этого поста: учитывая URL и ключ, как мы можем расшифровать его? Ответ "unsurprising crypto" . Это один из самых важных принципов криптографии то, что вы делаете, должно быть чем-то обычным, как здесь. Если шифровка необычна и интересна, это неправильно.
Таким образом, единственный вопрос - какой из множества стандартных способов выбрал WhatsApp?
Во-первых, они выбрали AES-256, который является самым популярным выбором для таких вещей в наши дни. Это ключ 256 бит или 32 байта. AES - это «блочный шифр», что означает, что он зашифровывает блок за раз. Размер блока составляет 16 байтов. Когда последний блок данных меньше 16 байтов, его необходимо заполнить до полной длины.
Но это еще не все. В наше время мы поняли, что простого шифрования, подобного этому, недостаточно. Хорошей демонстрацией этого является знаменитый "ECB penguin" [ 1 ] [
Поэтому WhatsApp нужен не только алгоритм шифрования, но и метод для решения этой проблемы. Они выбрали CBC или «цепочку блоков шифров», которая, как следует из названия, объединяет все блоки вместе. Это тоже общее решение.
Режим CBC решает проблему пингвинов ECB, заключающуюся в том, что два блока шифруют одинаково, но при этом остается проблема шифрования двух файлов одинаковым образом, когда первая часть файлов одинакова. Все до первого различия будет шифроваться одинаково, после чего они будут совершенно разными.
Это исправляется добавлением в начало файла так называемого вектора инициализации или одноразового числа, случайных данных, которые различны для каждого файла. Это гарантирует, что даже если вы дважды зашифруете один и тот же файл одним и тем же ключом, зашифрованные данные все равно будут совершенно другими, не связанными. IV/nonce удаляется при расшифровке файла.
Наконец, существует проблема, когда зашифрованный файл может быть поврежден при транспортировке - случайно или злонамеренно. Вы должны проверить это с помощью хэша или кода аутентификации сообщения (он же MAC ). В случае WhatsApp это будет в первых 10 байтах зашифрованных данных, которые мы должны будем удалить в конце. Этот MAC генерируется с использованием ключа, отличного от ключа AES. Другими словами, нам нужны два ключа: один для шифрования файла, а второй для проверки того, что содержимое не было изменено.
Это объясняет, почему между зашифрованным видео и не зашифрованным видео была разница в 14 байтов. Зашифрованные данные требовали 10 байтов для MAC в начале и 4 байта для заполнения в конце.
Код
Вот код, который реализует все вышеперечисленное:
В верхней части файла я жестко закодировал значения для mediaurl и mediakey теми, которые я нашел выше в моей резервной копии iPhone.
Mediakey только 32 байта, но нам нужно больше. Нам нужно 32 байта для ключа AES-256, еще 16 байтов для вектора инициализации и 32 байта для ключа аутентификации сообщения.
Эта распространенная проблема решается с помощью специальной функции псевдослучайности, чтобы расширить небольшой объем данных в больший объем данных, в данном случае с 32 байтов до 112 байтов. Выбранный стандарт WhatsApp - «
Затем я загружаю файл с URL. Я должен удалить первые 10 байтов из файла, который является кодом аутентификации сообщения.
Затем с помощью шифра с первого шага я расшифровал файл. Я должен раздеть отступы в конце файла.
Чтобы скачать и расшифровать видео, просто запустите программу следующим образом:
Если вы хотите узнать, что в нем содержится, вам придется запустить программу самостоятельно.
Помните, что этот пример - видео, отправленное мне другом, а не оригинальное видео. Но тот же принцип применяется. Просто посмотрите на этот файл в резервной копии, извлеките URL и медиа-ключ, вставьте в эту программу, и вы получите этот файл расшифрованный.
Вывод
Отчет от FTI не содержит доказательств. Вместо этого он содержит неизвестное. Невозможность расшифровать файл .enc из WhatsApp. Поэтому делаетса вывод, что он содержыть некое вредоносное ПО, скрытое за этим шифрованием - шифрованием, которое они не могут взломать.
Но это чепуха. Они могут легко расшифровать файл и убедительно доказать, содержит ли он вредоносные программы или эксплойты.
Они не хотят этого делать, потому что тогда весь их отчет развалится. Их вывод основан на том, что телефон Безоса "ведет себя странно" после получения этого видео. Если это видео расшифровать и показать, что оно не сожержит вредоноса, то остальные рассуждения недействительны. Даже если они найдут другие доказательства того, что телефон Безоса был взломан, больше ничего не будет связывать с саудитами.
Источник:
Шаги просты:
- Сделайте резервную копию телефона на свой компьютер (macOS или Windows), используя один из многих свободно доступных инструментов, таких как собственное приложение Apple от iTunes
- Извлеките базу данных, содержащую сообщения WhatsApp, из этой резервной копии, используя один из многих свободно доступных инструментов, или просто найдите конкретный файл самостоятельно.
- Возьмите файл .enc и ключ дешифрования из этой базы данных, используя один из многих свободно доступных инструментов SQL
- Расшифровать видео, используя инструмент, который я только что создал на GitHub
В
Ссылка скрыта от гостей
говорится, что через несколько часов после получения подозрительного видео iPhone Безоса начал вести себя странно. В отчете говорится:Фраза «зашифрованный загрузчик» - это не технический термин, а нечто, придуманное следователями. Это звучит как термин, который мы используем в отношении вредоносных программ / вирусов, где на первом этапе происходит загрузка последующих этапов с использованием шифрования. Но это не то, что здесь произошло.... анализ показал, что подозрительное видео было доставлено через зашифрованный хост загрузчика на медиа-сервер WhatsApp. Из-за сквозного шифрования WhatsApp содержимое загрузчика практически невозможно определить.
Вместо этого рассматриваемый файл - это просто само видео, зашифрованное с несколькими дополнительными байтами (10 bytes of checksum at the start, up to 15 bytes of padding at the end) .
Теперь поговорим о «сквозном шифровании». Это только означает, что те, кто находится посередине, не могут расшифровать файл, даже серверы WhatsApp. Но те, кто на концах, могут. Безос может обновить свой старый iPhone X до нового iPhone XS, сделав резервную копию старого телефона и восстановив его на новом телефоне и расшифровав видео. Это означает, что ключ дешифрования находится где-то в резервной копии.
В частности, ключ дешифрования находится в файле с именем 7c7fba66680ef796b916b067077cc246adacf01d в резервной копии в таблице с именем ZWAMDIAITEM, как первое поле protobuf в поле с именем ZMEDIAKEY. Эти детали объяснены ниже.
Сквозное шифрование видео в WhatsApp
Давайте обсудим, как видео передаются с помощью текстовых сообщений.
Мы начнем с SMS, старой системы обмена сообщениями, встроенной в телефонную систему, которая предшествует современным приложениям. Он может отправлять только короткие текстовые сообщения по несколько сотен байт за раз. Эти сообщения слишком малы, чтобы вместить полное видео размером в несколько мегабайт. Они отправляются через саму телефонную систему, а не через Интернет.
Когда вы отправляете видео через SMS, происходит передача видео на серверы телефонной компании через HTTP. Затем отправляется текстовое сообщение с URL-ссылкой на видео. Когда получатель получает сообщение, его телефон загружает видео с URL. Текстовые сообщения, проходящие через телефонную систему, содержат только URL, для передачи видео используется интернет-соединение.
Это происходит прозрачно для пользователя. Пользователь просто видит видео, а не URL. Они заметят разницу только при использовании древних мобильных телефонов 2G, которые могут получать SMS-сообщения, но не могут подключиться к Интернету.
С WhatsApp происходит то же самое, только с добавленным шифрованием.
Перед отправкой по HTTP на серверы WhatsApp отправитель сначала шифрует видео с помощью случайно сгенерированного ключа. Это означает, что WhatsApp не может расшифровать файлы на своих серверах.
Затем отправитель отправляет получателю сообщение, содержащее URL-адрес и ключ дешифрования. Это сообщение полностью зашифровано, поэтому опять же, WhatsApp не может расшифровать содержимое сообщения.
Получатель загружает видео с сервера WhatsApp, а затем расшифровывает его с помощью ключа шифрования.
Вот пример. Друг прислал мне видео через WhatsApp:
Все сообщения отправляются с использованием сквозного шифрования для этого сеанса. Как описано выше, само видео не отправляется как сообщение, только URL и ключ. Эти:
Код:
mediaurl = https://mmg-fna.whatsapp.net/d/f/AsnGB7gNh6Yw52MScbJyTRMo3NCmzMpesUIYyFmEZ0lR.enc
mediakey = TKgNZsaEAvtTzNEgfDqd5UAdmnBNUcJtN7mxMKunAPw =
Резервное копирование iPhone и извлечение файлов
Криминалистический отчет в истории Безоса упоминает множество причудливых, дорогих инструментов, доступных только для правоохранительных органов, таких как Celebrite. Однако ни один из них не является необходимым для получения результатов. Похоже, вы можете получить те же результаты в домашних условиях, используя бесплатные инструменты.
Есть два способа получить все файлы с iPhone. Один из способов - просто сделать стандартное резервное копирование телефона, на iCloud или на настольный компьютер/ноутбук. Лучший способ - сделать джейлбрейк телефона и получить полный образ внутреннего диска. Вы можете сделать это на iPhone X (например, на телефоне Безоса), используя джейлбрейк «checkm8». Это немного сложно, но реализуемо в пределах возможностей технарей. Резервная копия получает только файлы, необходимые для восстановления телефона, но джейлбрейк получает все.
В этом случае, похоже, следователи получили только резервную копию телефона. Для расшифровки файлов WhatsApp этого достаточно. Как упомянуто выше, резервная копия нуждается в ключах для правильного восстановления телефона.
Вы можете сделать это с помощью собственной программы Apple iTunes на Windows или macOS. Она копирует все с iPhone на ваш компьютер. Предполагается, что если вы сломаете свой телефон, потеряете его или обновите до последней модели, вы сможете легко восстановить данные из этой резервной копии. Однако вместо этого мы собираемся использовать эту резервную копию для экспертизы (мы не собираемся восстанавливать телефон из этой резервной копии).
Итак, теперь, когда вы скопировали все файлы на свой компьютер что вы можете с ними сделать?
Вот расположение файлов. Есть два разных места для Windows, в зависимости от того, установили ли вы iTunes от Apple или Microsoft.
- macOS: /Users/username/Library/Application Support/MobileSync/Backup
- Windows: /Users/username/AppData/Roaming/Apple Computer/MobileSync/Backup
- Windows: /Users/username/Apple/MobileSync/Backup
Внутри каталога резервного копирования Apple не использует оригинальные имена файлов на телефоне. Вместо этого он сохраняет их, используя хэш SHA1 исходного имени файла. Каталог резервного копирования содержит 256 подкаталогов с именами 00, 01, 02, .... ff, соответствующих первому байту хэша, причем каждый каталог содержит соответствующие файлы.
Файл, который мы ищем, является файлом ChatStorage.sqlite в WhatsApp , полный путь к
Ссылка скрыта от гостей
на iPhone хэшируется как «
Ссылка скрыта от гостей
».В macOS каталог резервного копирования защищен. Вы должны зайти в настройки безопасности и конфиденциальности , чтобы дать терминальному приложению разрешения «Полный доступ к диску». Затем скопируйте этот файл в какой-то другой каталог (например, ~), куда другие приложения смогут его найти.
Обратите внимание, что на снимке экрана выше я также дал разрешения «
Ссылка скрыта от гостей
». Эта программа предоставляет графический интерфейс, который дает файлам их исходные имена (например, «ChatStorage.sqlite») вместо хэшей 7c7fba666 ... У него также есть набор встроенной логики для извлечения таких вещей, как фотографии и текстовые сообщения.Смысл этого раздела в том, чтобы показать, что получение этих файлов - это просто копирование с телефона и знание того, какой файл искать.
Работа с чатом WhatsApp
В предыдущем разделе я описал, как сделать резервную копию iPhone, а затем извлечь файл ChatStorage.sqlite из этой резервной копии. Этот файл содержит все ваши сообщения чата, отправленные и полученные на вашем iPhone. В этом разделе я опишу, как читать этот файл.
Этот файл является базой данных SQL в стандартном формате "sqlite". Это популярный проект с открытым исходным кодом для встраивания баз данных SQL в приложения, и он используется повсеместно. Это означает, что вы можете использовать сотни графических интерфейсов, инструментов командной строки и языков программирования для чтения этого файла.
Я использую "
Ссылка скрыта от гостей
", который работает как графический интерфейс на Windows, MacOS и Linux. Ниже скриншот. Как видите, имя файла - это файл, который мы скопировали на предыдущем этапе, хэш исходного имени. Затем я нажимаю «Обзор данных» и выбираю таблицу ZWAMEDIAITEM. Я вижу список этих URL-адресов в столбце ZMEDIAURL и соответствующие ключи дешифрования в столбце ZMEDIAKEY.Медиа-ключи - это "blobs" -- "binary large objects" . Если я нажму на один из этих BLOB-объектов, в качестве медиа-клавиши я увижу следующее:
Эти двоичные данные находятся в формате, называемом protobuf . Байт 0x0a означает, что первое поле является строкой переменной длины. Следующий байт 0x20 означает, что длина строки составляет 32 байта. Следующие 32 байта - это наш ключ шифрования, который я выделил. Следующее поле (0x12 0x20) - это хеш файла. В конце есть еще два поля, но я не понимаю, что это такое.
Итак, в шестнадцатеричном коде наш ключ шифрования:
4ca80d66c68402fb53ccd1207c3a9de5401d9a704d51c26d37b9b130aba700fc
Или если закодировано в BASE64;
TKgNZsaEAvtTzNEgfDqd5UAdmnBNUcJtN7mxMKunAPw =
Теперь у нас есть mediaurl и mediakey, упомянутые выше. Все, что нам нужно сделать, это загрузить файл и расшифровать его.
Как расшифровать медиафайл WhatsApp
Теперь мы подошли к сути этого поста: учитывая URL и ключ, как мы можем расшифровать его? Ответ "unsurprising crypto" . Это один из самых важных принципов криптографии то, что вы делаете, должно быть чем-то обычным, как здесь. Если шифровка необычна и интересна, это неправильно.
Таким образом, единственный вопрос - какой из множества стандартных способов выбрал WhatsApp?
Во-первых, они выбрали AES-256, который является самым популярным выбором для таких вещей в наши дни. Это ключ 256 бит или 32 байта. AES - это «блочный шифр», что означает, что он зашифровывает блок за раз. Размер блока составляет 16 байтов. Когда последний блок данных меньше 16 байтов, его необходимо заполнить до полной длины.
Но это еще не все. В наше время мы поняли, что простого шифрования, подобного этому, недостаточно. Хорошей демонстрацией этого является знаменитый "ECB penguin" [ 1 ] [
Ссылка скрыта от гостей
] [
Ссылка скрыта от гостей
]. Если два 16-байтовых блока на входе имеют одинаковые данные открытого текста, они будут иметь одинаковые зашифрованные данные. Это плохо, так как позволяет многое узнать/проанализировать из зашифрованного содержимого, даже если это содержимое не может быть расшифровано.Поэтому WhatsApp нужен не только алгоритм шифрования, но и метод для решения этой проблемы. Они выбрали CBC или «цепочку блоков шифров», которая, как следует из названия, объединяет все блоки вместе. Это тоже общее решение.
Режим CBC решает проблему пингвинов ECB, заключающуюся в том, что два блока шифруют одинаково, но при этом остается проблема шифрования двух файлов одинаковым образом, когда первая часть файлов одинакова. Все до первого различия будет шифроваться одинаково, после чего они будут совершенно разными.
Это исправляется добавлением в начало файла так называемого вектора инициализации или одноразового числа, случайных данных, которые различны для каждого файла. Это гарантирует, что даже если вы дважды зашифруете один и тот же файл одним и тем же ключом, зашифрованные данные все равно будут совершенно другими, не связанными. IV/nonce удаляется при расшифровке файла.
Наконец, существует проблема, когда зашифрованный файл может быть поврежден при транспортировке - случайно или злонамеренно. Вы должны проверить это с помощью хэша или кода аутентификации сообщения (он же MAC ). В случае WhatsApp это будет в первых 10 байтах зашифрованных данных, которые мы должны будем удалить в конце. Этот MAC генерируется с использованием ключа, отличного от ключа AES. Другими словами, нам нужны два ключа: один для шифрования файла, а второй для проверки того, что содержимое не было изменено.
Это объясняет, почему между зашифрованным видео и не зашифрованным видео была разница в 14 байтов. Зашифрованные данные требовали 10 байтов для MAC в начале и 4 байта для заполнения в конце.
Код
Вот код, который реализует все вышеперечисленное:
Код:
https://github.com/robertdavidgraham/whats-enc/blob/master/backend/whats-enc.py
Mediakey только 32 байта, но нам нужно больше. Нам нужно 32 байта для ключа AES-256, еще 16 байтов для вектора инициализации и 32 байта для ключа аутентификации сообщения.
Эта распространенная проблема решается с помощью специальной функции псевдослучайности, чтобы расширить небольшой объем данных в больший объем данных, в данном случае с 32 байтов до 112 байтов. Выбранный стандарт WhatsApp - «
Ссылка скрыта от гостей
». Это выражено в моем коде как следующее, где я расширяю ключ до IV, шифра и макки:
Код:
mediaKeyExpanded = HKDF (base64.b64decode (mediaK), 112, соль)
IV = mediaKeyExpanded [16]
cipherKey = mediaKeyExpanded [16:48]
Макки = mediaKeyExpanded [48:80]
Код:
mediaData = urllib2.urlopen (mediaurl) .read ()
file = mediaData [: - 10]
mac = mediaData [-10:]
Код:
decryptor = AES.new (cipherKey, AES.MODE_CBC, iv)
imgdata = AESUnpad (decryptor.decrypt (файл))
Если вы хотите узнать, что в нем содержится, вам придется запустить программу самостоятельно.
Помните, что этот пример - видео, отправленное мне другом, а не оригинальное видео. Но тот же принцип применяется. Просто посмотрите на этот файл в резервной копии, извлеките URL и медиа-ключ, вставьте в эту программу, и вы получите этот файл расшифрованный.
Вывод
Отчет от FTI не содержит доказательств. Вместо этого он содержит неизвестное. Невозможность расшифровать файл .enc из WhatsApp. Поэтому делаетса вывод, что он содержыть некое вредоносное ПО, скрытое за этим шифрованием - шифрованием, которое они не могут взломать.
Но это чепуха. Они могут легко расшифровать файл и убедительно доказать, содержит ли он вредоносные программы или эксплойты.
Они не хотят этого делать, потому что тогда весь их отчет развалится. Их вывод основан на том, что телефон Безоса "ведет себя странно" после получения этого видео. Если это видео расшифровать и показать, что оно не сожержит вредоноса, то остальные рассуждения недействительны. Даже если они найдут другие доказательства того, что телефон Безоса был взломан, больше ничего не будет связывать с саудитами.
Источник:
Ссылка скрыта от гостей