Демонстрация брутфорса пароля iPhone 5c c зеркалированием флэш-памяти
В апреле 2016 года ФБР и Apple устроили настоящее шоу вокруг телефона iPhone 5c стрелка из Сан-Бернардино, для которого якобы никак не удавалось подобрать пароль без помощи компании Apple.
ФБР давило на Apple, требуя технической помощи. Тим Кук опубликовал открытое письмо, в котором обвинил ФБР в принуждении Apple встроить бэкдор в iOS. Дело дошло до Конгресса и Сената США, проблему обсуждали все крупнейшие американские СМИ и телеканалы. Мир с замиранием сердца следил за санта-барбарой и гадал: даст Apple федералам или не даст доступ к криптосистеме iPhone.
iPhone защищён от брутфорса через опцию уничтожения данных на устройстве после десяти некорректных попыток ввода и увеличивающееся время задержки между наборами кода разблокировки (5 секунд после 5 попыток, затем 1 минута, 5 минут, 15 минут и 60 минут).
Защиту логично обойти путём копирования флэш-памяти с брутфорсом сделанных копий (NAND mirroring), но специалисты ФБР почему-то не смогли провести такую атаку. Они обратились к АНБ — те тоже не смогли помочь.
После длительных безуспешных попыток давления на Apple ФБР заплатило больше $1 млн хакерам (предположительно, из Израиля), которые предложили рабочий метод брутфорса пароля iPhone 5c. Источники сообщили тогда, что смартфон был взломан с использованием ранее неизвестной (0day) уязвимости в iOS 9. Несмотря на требование компании Apple, ФБР до сих пор не обнародовало информацию об уязвимости, чтобы Apple могла устранить её — такая месть по-фбровски.
Директор ФБР сказал, что копирование NAND не применялось, потому что оно не работает.
Теперь один простой хакер сделал то, что не могли сделать специалисты ФБР и АНБ. Сергей Скоробогатов из Кембриджского университета (Великобритания) наглядно показал, как осуществляется брутфорс пароля iPhone 5C после копирования флэш-памяти. Научная работа по криптографии опубликована в свободном доступе на сайте arXiv.org.
Согласно схеме шифрования iOS, пароль пользователя и уникальный ключ UID применяются для генерации ключа к системному хранилищу System Keybag. Ключ UID аппаратно прописан в SoC и недоступен на программном уровне, поэтому невозможно провести брутфорс, не имея доступа к конкретной микросхеме.
Хотя архитектура iPhone 5c держится в секрете, на форумах можно найти схемы и наименования микросхем iPhone 5c, iPhone 6 и др., с цоколёвкой NAND. Но Сергей Скоробогатов предупреждает, что некоторые контакты VCCQ и GND поменяли местами, так что по той распиновке можно безвозвратно повредить микросхему. Для изучения протоколов и команд понадобится осциллограф и логический анализатор.
В демонстрационном видеоролике Сергей показывает, как разобрать iPhone, извлечь микросхему с чипом флэш-памяти, отпаять её паяльным феном и клонировать данные. Подобную инструкцию по разбору iPhone 5C см. на iFixit.
SoC A6 и микросхема NAND находятся разных сторонах материнской платы. Между NAND и платой расстояние примерно 0,05 мм. Для извлечения потребуется специальный тонкий нож и паяльный фен с температурой более 300°C.
Все мелкие компоненты вокруг чипа были предварительно защищены температуростойкой эпоксидной смолой.
Подготовка к извлечению NAND
Высокая температура не повреждает данные во флэш-памяти. Проведённые ранее исследования показали, что она выдерживает до 400°C.
Извлечённый модуль NAND
Для проверки работоспособности каждый контакт модуля NAND соединяют с материнской платой тефлоновыми проводами 0,3 мм.
Затем материнскую плату вставили на место, а для проводом с извлечённым модулем NAND в корпусе вырезали дырку.
В первое время телефон сильно глючил. Сергей выяснил, что это из-за помех в длинных проводах.
Сигнал с помехами
Пришлось добавить согласующие резисторы на все сигнальные провода. Тогда сигнал выровнялся и телефон перестал глючить.
Сигнал без помех
Дальше инженер из Кембриджского университета вставил промежуточную плату для прослушки сигнала, подключил осциллограф и логический анализатор для реверс-инжиниринга протокола и команд iPhone 5c.
Промежуточная плата для прослушки
Здесь опять возникли проблемы с целостностью сигнала, на этот раз из-за входной и выходной электрической ёмкости буферных элементов 74LVC и 74AVC в 4 пФ и 6 пФ. Пришлось заменить их на элементы с меньшей ёмкостью 74AUP и 74AXP.
В конце концов, исследователю всё-таки удалось подготовить iPhone 5с к реверс-инжинирингу. К этому моменту он, очевидно, зашёл уже дальше, чем удалось зайти специалистам ФБР и АНБ.
iPhone 5c с логическим анализатором
Дальнейшее было делом техники. Оказалось, что iPhone 5c использует разные интерфейсы и команды на разных этапах загрузки, в том числе недокументированные проприетарные команды на тактовой частоте 50 МГц. В конце концов, логический анализатор записал все команды и помог определить особый проприетарный протокол, который используется для коммуникации с NAND.
Сергей Сборогатов научился считывать, стирать и записывать память NAND по воему желанию. Это всё, что необходимо для успешного брутфорса пароля.
Испытательный стенд для копирования NAND
Программа для брутфорса пробует шесть вариантов пароля, пока не появляется задержка в 1 минуту, тогда автоматически начинается процесс восстановления памяти из резервной копии (чтобы сбросить счётчик, защищающий от брутфорса), затем брутфорс продолжается. Цикл восстановления после 6 попыток занимает 90 секунд. Таким образом, полный перебор всех вариантов пинкода из четырёх цифр займёт около 40 часов.
Программа для зеркалирования NAND для iPhone 5c
Такой метод брутфорса не работает в более новых моделях iPhone, куда встроена дополнительная защита Secure Enclave. Но вполне можно предположить, что коллеги Сергея Скоробогатова из компании Elcomsoft и других фирм, которые специализируются на взломе смартфонов, в том числе по заказу спецслужб, уже решают эту проблему.