В апреле 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 мм c тефлоновой изоляцией (МГТФ).
Затем материнскую плату вставили на место, а для проводов с извлечённым модулем 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 и других фирм, которые специализируются на взломе смартфонов, в том числе по заказу спецслужб, уже решают эту проблему.
Комментарии (88)
beliakov
18.09.2016 17:52+4> каждый контакт модуля NAND соединяют с материнской платой тефлоновыми проводами 0,3 мм
«PTFE wire» это провод в тефлоновой изоляции.Gozdi
18.09.2016 19:21Если точнее, то в PVFE
beliakov
18.09.2016 21:36+1В первоисточнике — PTFE:
For that all the connected pads on the NAND package were connected to the corresponding pads on the main board using thin 0.3mm PTFE wires (Figure 7).
http://arxiv.org/pdf/1609.04327v1.pdfGozdi
18.09.2016 21:51Зарекся уже с мобилы набирать, «тыц» и улетело как получилось.
В общем FTFE не совсем корректно, ИМХО, даже в первоисточнике, или изоляция методом намотки или термопластичный PVDF, для коммерческих проводов — второе, первый способ больше в оборонке раньше применялся, не знаю как сейчас.
Mantikor_WRX_STi
18.09.2016 18:05+1Зачем было городить анализатор команд? Нанда читается/пишется кучей современных программаторов. А если найти в дампе кусок, который нужно восстанавливать, не придется лить весь дамп.
d_olex
18.09.2016 22:17+3Затем, что по-другому не получится, см. https://geektimes.ru/post/280556/?reply_to=9579894#comment_9579942
Mantikor_WRX_STi
18.09.2016 22:41+2я в курсе, что в нанде свой фирмвар, читал из многих, кроме iphone, не знал что apple пошел так далеко и запилил свою версию фирмаре, спасибо что просветили, только минусы к чему?
d_olex
18.09.2016 23:37+4Offtop: а я здесь причем? У меня и кармы-то недостаточно для того что бы плюсики-минусики ставить.
SNPopov
18.09.2016 18:46+7Последовательный резистор (20-40 Ом) во всех линиях, где бегают короткие импульсы, значительно улучшает их форму и снимает массу проблем по сбоям. Не забывайте дополнительно «сопротивляться» в своих разработках!
AVKinc
18.09.2016 18:48+6Скоробогатов крутой перец.
Давным давно читал его доклад про реверс инжиниринг микроконтроллеров (считывание залоченой памяти). Очень было интересно.CyberAndrew
18.09.2016 21:42+4Кому интересно вот его список работ: http://www.cl.cam.ac.uk/~sps32/
CyberAndrew
18.09.2016 23:50+2А вот его статья по взлому микроконтроллеров: http://www.cl.cam.ac.uk/techreports/UCAM-CL-TR-630.pdf
sleeply4cat
18.09.2016 19:17-2Сколько ж тут воды D:
Какие-то «пропиретарные команды» у типичного NAND от hynix, мыльные фотографии древней винды и макеток неясного происхождения…
Вся статья сводится к «пятый айфон хранит все данные в чипе памяти, что позволяет сбросить счётчик попыток ввода простым её клонированием, оборудование для которого есть в любой подвальной мастерской»? Или я что-то упустил?AVX
18.09.2016 20:10+4Видимо, Вы упустили этот момент:
«Согласно схеме шифрования iOS, пароль пользователя и уникальный ключ UID применяются для генерации ключа к системному хранилищу System Keybag. Ключ UID аппаратно прописан в SoC и недоступен на программном уровне, поэтому невозможно провести брутфорс, не имея доступа к конкретной микросхеме.»
Таким образом, просто скопировать флеш память можно, но расшифровать её не получится, не имея данных, что куда пишется и как. Поэтому у того хакера было всего 2 варианта:
1. Так как он и сделал — считал, сохранил копию, выполнил подбор, вернул состояние из копии, продолжил подбор, далее повторяется до нужного результата. Для чего было городить анализатор команд в этом случае, не совсем понятно, ведь можно было тупо купить панельку для этой памяти, считать память на программаторе, вернуть в панельку, и далее подбирать. Возможно, он просто сделал некоторый аналог программатора, чтобы (как на картинке) было две микросхемы рядом, и автоматически всё было сделано, вместо того, чтобы каждую минуту перетыкать микросхему с одной панельки на другую.
2. Можно было бы снять дамп памяти, ввести один неверный код, снова снять дамп. Возможно, подобных действий потребовалось бы очень много, чтобы выяснить, куда что пишется. С учётом того, что на память может писаться очень много всего, и между разными включениями телефона будет очень разное состояние памяти, то это был бы весьма сложный путь. Правда, в таком случае последующие взломы таких же телефонов можно было бы проводить намного быстрее, если между флеш памятью и телефоном включить некое устройство, которое будет ждать обращения к определённому адресу в памяти (если будет известно, где счётчик попыток), и не пропускать запись туда, а при чтении возвращать одно и то же значение. Ну и попутно можно много чего интересного накопать.
Это всё в предположении, что флеш память зашифрована не вся, а часть всё же в обычном виде.
d_olex
18.09.2016 22:12+5NAND который стоит в iPhone имеет мало общего с «типичным NAND от hynix». Дело в том, что в нем используется кастомная firmware (да, представьте себе, современные чипы памяти это сложная штука внутри которой помимо собственно памяти есть собственный процессор) которая является внутренней разработкой Apple (могу даже дать ее дамп если не верите), поэтому прочитать его «любым программатором» не получится.
sleeply4cat
18.09.2016 23:40-2Ну так об этом и нужно было в статье написать вместо мыльных фотографий с проводками.
HyperDrive
19.09.2016 12:35+10Так в статье об этом и написано.
Попробуйте прочитать статью с включенным монитором.
hurtavy
18.09.2016 19:47Не понял один момент.
Программа для брутфорса пробует шесть вариантов пароля, пока не появляется задержка в 1 минуту, тогда автоматически начинается процесс восстановления памяти из резервной копии (чтобы сбросить счётчик, защищающий от брутфорса), затем брутфорс продолжается. Цикл восстановления после 6 попыток занимает 90 секунд.
То есть, вместо того, чтобы подождать минуту, полторы минуты восстанавливают дамп?
xdenser
18.09.2016 20:16-1часы перевести? нет?
использовать несколько чипов, пока один брутфорсится, остальные восстанавливаются.CyberAndrew
18.09.2016 21:56А что вам даст перевод часов?
solver
18.09.2016 20:28Странно. Почему использовался WinXP?
SammyTheCat
18.09.2016 21:29+2Предположение: наверное потому что у мужика древний ноут с полноценным COM-портом, но с 512 Мб памяти и встроенной видеокартой образца ~2005 года, на который больше ничего не поставишь. Или вы имеете в виду, почему не FreeBSD, ведь иначе это не тру подход для настоящего гика?
d_olex
19.09.2016 01:04+2Наверняка у него есть лицензии на старые версии всякого проприетарного софта (например для логического анализатора, для разработки под fpga, итд.) который на новых системах не работает.
solver
19.09.2016 10:30Вот это кстати самое правдоподобное объяснение.
Ну или еще вариант в духе теорий заговора. Сделано это было сильно раньше чем нам показали)))
d_olex
18.09.2016 21:03+4Работа отличная, но я несколько офигел когда читал публикацию. В качестве одного из преимуществ своей атаки автор указывает тот факт, что ее бюджет составляет пару сот долларов и все необходимое оборудование можно купить ну прям в любом магазине радиотоваров. Дело в том, что это мягко говоря неправда: поскольку даташиты на эти чипы NAND достать нереально и для управления ними используется всякие хитрые vendor specific команды (все кто утверждает обратное — диванные теоретики несущие бред) — автор использовал логический анализатор для реверс-инженеринга протокола, только вот анализатор или осциллограф который способен работать с такими высокоскоростными сигналами стоит как автомобиль, и условному Васе с улицы для того что бы получить доступ к подобному оборудованию прийдется продавать почку (возможно даже не одну).
iliasam
18.09.2016 21:24Специально нашел на ebay логический анализатор, как на фотографии в статье — стоит он около 500$ (б/у).
d_olex
18.09.2016 22:28+1Вторичный рынок это отдельная тема, да. За тот прибор что на фото не скажу поскольку не знаю о каком устройстве идет речь, но я не так давно покупал цифровой осцилограф на 350 МГц что бы использовать его главным образом в кач-ве логического анализатора (не люблю программные, люблю что бы были крутилки и кнопки) и это было ни разу не дешево, забыл когда в последний раз покупал для хобби что-то схожей стоимости. Делать сниф NAND-а от айфона — это частота в несколько ГГц нужна, о цене даже думать не хочется.
d_olex
18.09.2016 22:36+1Ну и покупать б/у из-за границы сложную измерительную технику несколько стремно, если устройство окажется проблемное — то, боюсь, у меня может не хватить знаний что бы починить и откалибровать его (да и не факт что овчинка в итоге будет стоить выделки).
DesertCat
19.09.2016 09:38Насколько я помню, осциллограф в частные руки из-за рубежа ещё и таможня может не пустить.
eax
18.09.2016 21:30+2Автор имел доступ к оборудованию в Кембриджском университете, так что, думаю за кадром много чего интересного могло остаться
Andy_Big
18.09.2016 21:37+1Может быть там имелось в виду оборудование, специфичное именно для этой работы, а инструментарий уже должен быть у того, кто решит заняться таким делом. Вряд ли там говорится о том, что любой офисный менеджер, не имеющий даже паяльника, может взять и за пару сотен баксов повторить это :)
Ну и логический анализатор и осцилл, способные воспринимать частоты до 100 МГц, совсем не стоят как автомобиль :)d_olex
18.09.2016 22:07Вообще-то в случае с NAND от айфона речь идет о частотах в несколько гигагерц (имеется в виду не частота клока, а та частота на которой ходят именно данные по последовательной шине).
Andy_Big
18.09.2016 22:41+1Есть уже NAND, работающие на таких частотах и применяющиеся в серийной технике? Можно пруфы?
d_olex
18.09.2016 22:55+1Какого рода пруфы вам нужны? Все высокоскоростные шины от USB до SATA — это дифференциальные пары с частотами в несколько ГГц. В iPhone 6S например используется NAND с интерфейсом NVMe а это, согласно характеристикам PCIe 3.0, 8 GT/s на один lane (который представляет собой ни что иное как две диф пары: tx и rx). NAND с интерфейсом PPI от более старых айфонов — это скорости конечно меньшие, но примерно такого же порядка.
Andy_Big
18.09.2016 23:15Я что-то не сообразил сразу, что Вы говорите о дифф. парах :)
В оригинале статьи я вижу, что интерфейс этой NAND — CMOS 1.8 вольт, там же на осциллограмме я вижу частоту примерно 125 МГц, там же в тексте говорится о работе флэшки в режиме DDR на частоте 128 МГц. Так что не знаю как там в шестых айфонах, а в этом частоты на порядки ниже.
Да и дифф. пары на гигагерцовых частотах не заработали бы ни с какими согласующими резисторами на этих проводках.d_olex
18.09.2016 23:21За старые не скажу, я исследовал только тему с NAND от 6S и страше — благодаря интерфейсу NVMe который не нужно реверсить он представляет большой интерес для DIY и прочего колхозинга (то, что они будут работать только будучи подключены правильными гибкими шлейфами с правильной разводкой — чистая правда).
Andy_Big
18.09.2016 23:21+1ЗЫ: тем более какие гигагерцы могут быть в теми буферами, что он использовал?..
d_olex
18.09.2016 23:27Да, ваша правда. Думал что в старых NAND тоже используется что-то наподобии условного PCIe или условного UFS over MIPI M-PHY подразумевающее быстрые дифференциальные сигналы.
d_olex
18.09.2016 23:02В спеках на сами чипы и шины частоты обычно не указывают кстати, указывают эффективную скорость передачи данных. А конкретная частота с которой у вас будет дергаться электрический сигнал в проводнике — зависит от того как именно конкретная шина кодирует передаваемые по ней битики (а ведь помимо этого там будут еще и всякие заголовки, контрольные суммы, помехоустойчивое кодирование, итд.)
d_olex
19.09.2016 00:24+1Кстати, в топовых телефонах на Android широко применяется NAND c интерфейсом UFS который бывает вплоть до 6-ти гбит/с по одному lane.
Andy_Big
19.09.2016 00:37Возможно. Я не знаком со спецификой современных телефонов, дискутировал именно по этому конкретному описанному случаю :)
Chigin
18.09.2016 21:48+1Скорее всего имелась ввиду стоимость и доступность макетки, 74 логики, микроконторллера, второй нанд и прочей обвязки. А измерительное оборудование у него и так было.
Скоробогатов молодец, работа проделана отличная.d_olex
18.09.2016 22:41+1Да, так и есть. Просто за сегодня видел в разных местах кучу новостей об этой работе, во многих из которых делались ложные выводы о том что это способен сделать на коленке ну просто любой школьник.
black_semargl
19.09.2016 11:06Скорей всего там пропиетарный логический протокол, а не физический.
Т.е. анализатор только для выявления частоты обмена (она вот разная в разные моменты оказалась), а дальше честно загоняем битики в буфер и потом неспешно анализируем.
DarkTiger
19.09.2016 11:22Железо достать не проблема, кроме того, обычно люди такого уровня имеют доступ к очень хорошей аппаратуре — просто потому, что сделали много кому много чего хорошего и отказать им нельзя. Я уж про Кембридж не говорю. Собственно, осциллограммы в статье сделаны явно не с осциллографа за 500$
Меня, конечно, удивило, что чип на этих проводках работает, ибо signal integrity никто не отменял и броски импеданса там такие, что мда. Но пашет ведь…d_olex
19.09.2016 11:35Сделать по-нормальному кстати не сложно, под LGA60 (вроде, это он) есть и сокеты, и гибкие шлейфы, и что хочешь: https://www.aliexpress.com/wholesale?SearchText=lga60&opensearch=true
Sergey_datex
18.09.2016 21:26+3Подумал. Если пойти дальше, делаем макетку на FPGA, на которой смонтировано нужное количество оперативки (к примеру 16Gb DDR3), в нее переносится содержимое NAND, а для телефона эмулируется интерфейс NAND. Дальше вся магия происходит в оперативке, и не надо восстанавливать содержимое NAND, все делаем в ОЗУ.
en1gma
19.09.2016 01:13а там точно голый nand? а не, емнип, emmc? и, опять же емнип, начиная с 6s/6s+ — nvme.
Mantikor_WRX_STi
19.09.2016 08:50E2NAND 3.0 — H2JTCG8T21BMR, Density 64Gb, block size 4Mb, 3.3V x8, PKG — WLGA вот что datasheet глаголит
iga2iga
19.09.2016 09:37То есть таким образом можно сделать из 16Гб версии, ну скажем, 128Гб? Простым клонированием и заменой NAND? Ну в iphone-то конечно не получится расширить раздел данных, если таковой имеется. А в телефонах на андроиде же можно?
vlreshet
19.09.2016 10:11Так и на айфоне можно. Видел когда-то статью на гиктаймс о том что хитрые китайцы за 60 долларов делают 16gb айфон на 64 или 128. Научились таки перепаивать.
d_olex
19.09.2016 11:13Можно, но просто перепаять NAND недостаточно, кроме этого нужно перебить его серийник что бы у нового чипа он был такой же, как и у старого (у китайцев для этого есть всякие хитрые программаторы кустарного изготовления).
RusEm
19.09.2016 11:21Увеличение памяти Яблочной продукции как и аппараттов на андройде, давно не редкость.
По поводу кастомной прошивки нанды — у китаез давно есть программатор IP-BOX2 который может читать и писать нанды айфонов и айпадов (Именно нанды). За счет этого и делают увеличение памяти путем клонирования системной области
billybons2006
19.09.2016 16:08Кстати, любопытно, что такая «простая» атака сделана доступной физически. Простая с точки зрения очевидности как все происходит (это не трехмерный лазер с гравицапой делает сканирование слоев памяти в вакууме при температуре не выше 100 кельвинов и прочая фантастика). Ведь если сам чип NAND был бы помещен в какой-нибудь пирог между слоями текстолита, то и «припаиваться» было бы некуда, а сломав плату физически уже не вышла бы эта атака. Ну или по крайней мере, была бы значительно затруднена.
И если кому-то действительно нужно делать защищенные iPhone, томожно ожидать в следующих поколениях iPhone проверку, вшитую в ту же NAND или иной элемент схемы, что если емкость, или сопротивление, или уровень помех не соотв. каким-то допускам, просто выдавать белый шум.Anarions
19.09.2016 16:37Сложнолсть техпроцесса, видимо. Всё-таки массовое производство, а не военная техника.
konspirator
21.09.2016 17:18-1«Теперь один простой хакер сделал то, что не могли сделать специалисты ФБР и АНБ. Сергей Скоробогатов из Кембриджского университета (Великобритания) наглядно показал»…
По моему, так Скоробогатова никто еще не оскорблял. Назвать его «простым хакером» — все равно, что назвать «простым средним классом» первую десятку Форбс.
ujav
21.09.2016 17:19Мда, видятся мне довольно грустные прогнозы после чтения статьи — взломать получилось скорее потому, что Apple не настолько этим пока озаботился.
Ничего не мешает им встроить защиту от выпаивания, или просто немного поднять сложность пароля и таймауты и всё. Думаю, технически уже давно возможно сделать защиту, которую нельзя взломать за разумное время и бюджет.black_semargl
22.09.2016 00:53+1Никто не спорит, что можно сделать непрошибаемую защиту. Но за это всё равно чем-то придётся расплатиться, и всё может стать хуже.
Та же защита от выпаивания будет кирпичить аппарат полежавший на солнце, а более сложный пароль пользователи начнут выцарапывать на задней крышке, чтоб не забыть.
И прощай имидж фирмы.
yurijevs
Снять галочку «Простой пароль» и установить пароль из n цифр\букв\символов?
Antzor
я думаю можно запустить несколько потоков брутфорса с разными масками. время конечно все равно будет большим, но взломать можно что угодно.
Sadler
К сожалению, всего через 7.5 млрд лет Солнце поглотит Землю, прервав брутфорс.
Lachezis
По маскам может быть быстрее но это чистая удача.
d1f
> всего через 7.5 млрд лет Солнце поглотит Землю
Через 1.1 миллиарда лет жизнь на земле будет невозможна по тем же причинам.
Так что брутфорс придётся ускорить.
eax
Не можно, потому что чип памяти в девайсе один. Нужен будет второй девайс с 1-в-1 техническими характеристиками(а это невозможно ввиду некоторых обстоятельств, кто ковырял — знает). Автор брута не извлёк никаких алгоритмов перебора, но показал что можно вытянуть какой-нибудь чип более длинными проводами и внедриться туда в качестве сниффера, и при определённом упорстве даже получить некий протокол NAND памяти.
Squoworode
Так ключ-то зашит в SoC, без устройства брутфорсить не получится.
Здесь показан только обход блокировки после неправильных попыток, а брутфорс ведётся вручную.
Serge3leo
Тогда придётся вспомнить пару команд ARM, отладчик и заглянуть в ОЗУ