Израильская компания Cellebrite, которая поставляет шпионское программное обеспечение, утверждает, что ее технология позволяет взломать криптомессенджер Signal.
Технология взлома смартфонов Cellebrite предназначена для использования правоохранительными органами. Ее закупил целый ряд правительств. Компанию неоднократно критиковали за продажу технологий государствам с плохой репутацией в области прав человека, от Индонезии и Венесуэлы до Беларуси и Саудовской Аравии.
Флагманским продуктом Cellebrite является UFED (Universal Forensic Extraction Device), система, которая позволяет властям разблокировать и получать доступ к данным любого телефона, находящегося в их распоряжении. Еще один продукт компании — Physical Analyzer — помогает систематизировать и обрабатывать данные, полученные с телефона. В прошлый четверг компания объявила, что этот анализатор был обновлен функцией, которая позволяет клиентам декодировать данные из Signal.
Мессенджер использует специальную систему сквозного шифрования с открытым исходным кодом Signal Protocol, которая, как считалось, делает практически невозможным вмешательство третьей стороны. Протокол был принят такими компаниями, как Facebook, Skype и WhatsApp, для защиты своих пользователей, при этом Signal получает финансирование на свой продукт от организаций по защите свободы слова и наблюдателей за журналистикой. В отличие от Facebook и WhatsApp, приложение Signal используют систему шифрования и для файлов, отправляемых через платформу. Это делает мессенджер особенно важным инструментом для журналистов.
Согласно заявлению Cellebrite, «правоохранительные органы наблюдают стремительный рост использования приложений с высокой степенью шифрования, таких как Signal, которые включают в себя функции размытия изображения, чтобы полиция не могла просматривать данные». Компания отмечает, что «преступники используют это приложение для связи, отправки вложений и заключения незаконных сделок, которые они хотят скрыть из вне поля зрения правоохранительных органов».
Теперь в Cellebrite намерены предоставлять «законный доступ к данным приложения Signal».
Первое сообщение компании, которое было удалено, но сохранилось в Архиве Интернета, также содержало подробное объяснение того, как Cellebrite «взломала код», проанализировав протокол с открытым исходным кодом Signal.
Cellebrite показывает, как Signal хранит свои данные:
Signal хранит свою базу данных в зашифрованном виде с помощью SqlScipher, поэтому для ее чтения требуется ключ. Исследователи израильской компании обнаружили, что для получения ключа необходимо извлечь значение из общего файла настроек и расшифровать его с помощью ключа под названием «AndroidSecretKey», который сохраняется функцией Android под названием «Keystore». Для расшифровки БД использовали открытый исходный код Signal и искали любые обращения к базе данных:
Затем в Cellebrite запустили SqlCipher в базе данных с расшифрованным ключом и значениями 4096 и 1 для размера страницы и итераций kdf. БД приобрела вид:
Сообщения хранятся в файле «signal.db.decrypted» в таблице под названием «sms», а вложения хранятся в папке «app_parts».
После связывания файлов вложений и сообщений обнаружилось, что вложения также зашифрованы. В файле общих настроек в разделе «pref_attachment_encrypted_secret» есть поля «data» и «iv». Поле «данные» содержит зашифрованный файл json, который после расшифровки содержит ключи дешифрования отправленных вложений. В новых версиях мессенджера используется ModernKey. В открытом исходном коде Signal исследователи обнаружили, как генерируется ключ дешифрования. Ключ хешируется с использованием алгоритма HmacSHA256, в котором новый хеш создается с «ModernKey» в качестве вектора инициализации, а затем хеш вычисляется для «data_random».
После получения ключа дешифрования нужно было понять, какой алгоритм дешифрования использовать. В исходном коде Signal обнаружилось следующее:
Таким образом, Signal использует шифрование AES в режиме CTR. После расшифровки файлов был получен новый набор подузлов в папке «app_parts»:
Эти файлы представляют собой вложения, которые были отправлены в сообщениях Signal. Используя связь между сообщениями и вложениями, которую в Cellebrite создали при анализе сообщений, вложения добавили в беседу и увидели ее глазами участников чата.
Компания отметила, что, поскольку Signal шифрует практически все свои метаданные для защиты пользователей, Cellebrite будет «усердно работать с правоохранительными органами, чтобы дать возможность расшифровывать и декодировать данные».
Между тем деятельность самой Cellebrite не подлежит независимому аудиту. Компания проводит собственные проверки и ведет свой черный список стран, которым «запрещено» продавать технологии.
Ранее Citizen Lab выяснила, что 25 стран приобрели инструмент для слежки, который позволяет вычислить местоположение смартфона в любой точке мира за считанные секунды. Его поставляет другая израильская компания Circles, а инструмент эксплуатирует Систему Сигнализации №7 (Signaling System 7 или SS7).
Продукт Circles купили Австралия, Бельгия, Ботсвана, Чили, Дания, Эквадор, Сальвадор, Эстония, Экваториальная Гвинея, Гватемала, Гондурас, Индонезия, Израиль, Кения, Малайзия, Мексика, Марокко, Нигерия, Перу, Сербия, Таиланд, Объединенные Арабские Эмираты, Вьетнам, Замбия и Зимбабве.
См. также:
house2008
В заголовке «взломали», хотя просто сделали реверс open source проекта, даже сама компания так написала