# Мобильные устройства с выделенным криптографическим процессором Вячеслав Чикин · ООО НПП «АСЕ», ACE Lab MOSCOW FORENSICS DAY ’26 · День 1 — четверг, 3 сентября 2026 · По программе 10:45–11:15 · В записи 00:16:51–00:42:33 Расшифровка выступления · https://2026.moscow-forensics-day.workers.dev/transcript/02-chikin Саммари: https://2026.moscow-forensics-day.workers.dev/summary/02-chikin · Слайды: https://2026.moscow-forensics-day.workers.dev/slides/02-cryptomcu-ace-lab · Смотреть с 00:16:51: https://youtu.be/WuMIv5sFPRs?t=1011 --- ## Подводка ведущего — А я предлагаю тогда Дмитрию объявить нашего следующего докладчика. Да, спасибо большое. Можно мне кликер? Евгения Валерьевна, кликер-то у меня опять и не работает. Можете, пожалуйста, переключить мне слайд? А то тогда магия не выйдет. Вот. Собственно, как раз-таки сейчас у нас будет представление от компании ACE Lab. Но давайте поговорим в целом, о чем она будет. Потому что все-таки у нас с вами сегодня непосредственно конференция по цифровой криминалистике. И современные мобильные устройства как раз-таки все чаще используют различные аппаратные ключи, проверку кода доступа и другие критические операции. То есть защита, она уже у нас строится не только на уровне важных механизмов, но она уже вынесена в отдельный изолированный криптографический процессор. И здесь у специалистов возникает совсем другой набор задач. Как такая защита устроена, какие ограничения она накладывает и какие методы позволяют работать с подобными устройствами у нас сейчас сегодня на практике. Встречайте, спикера от компании ACE Lab Вячеслав Чикин. Давайте встретим его аплодисментами. Вячеслав, кликер. ## Доклад Добрый день, я рад всех вас видеть сегодня. И мы поговорим, почему не получается работать в полный рост с такими процессорами современными, как Kirin, Exynos, может Qualcomm современные. Это потому, что у них есть устройство, полноценный процессор, который отвечает за криптографию. И мы попытаемся провести небольшое исследование. Итак, вот так выглядит крипточип на плате процессора. Мы рассмотрим те случаи, когда крипточип не встроен в процессор, а вынесен отдельно на плату. Это понятно, что для наших исследований это намного удобнее. Тут мы можем подпаяться, посмотреть, какой обмен происходит, и сделать какие-то выводы. Сегодня мы будем рассматривать устройства на базе процессора MTK и Unisoc. Собственно говоря, на Unisoc это у нас будет Samsung Galaxy Tab A8, и крипточип подключен к процессору по интерфейсу SPI, и Samsung Galaxy A06 на процессоре MTK, и крипточип здесь подключен по интерфейсу I2C. Соответственно, здесь стоят два разных поколения крипточипов. Как мы видим, что из себя представляет криптографический процессор? По факту это полноценное устройство со всеми вытекающими. Он имеет свое ядро, которое работает на довольно приличной частоте, что позволяет сделать кучу криптографических вычислений. И не только. Соответственно, есть встроенные ядра. На этом даже есть своя GPIO. Это полноценное устройство, с которым мы имеем дело. Это для MTK. Здесь единственное нет, что I2C. Но зато памяти здесь уже у нас можно целые операционные системы вложить. ## Из чего складывается ключ и почему его не подсмотреть Итак, приступим. Собственно говоря, что нас интересует. На этом слайде представлена схема формирования ключа для пространства файловой системы. Соответственно, для того, чтобы получить ключ, хеш какой-то, нам нужен пароль пользователя. Также какая-то аппаратная уникальность, которая содержится в процессоре. Это может быть ключ, хеш. Каждый производитель по-разному это определяет. Некоторые константы, опять же, они могут варьироваться. 4-килобайтный блоб, secdis, тоже он произвольный. Состояние телефона, заблокирован, не заблокирован, тоже учитывается. Поэтому если вы там где-то думаете, что сейчас мы телефон разблокируем и как-то получим к нему доступ, это не работает. Потому что в этом случае сразу меняются ключи шифрования и все данные исчезают по факту. Также так называемый color. Это, собственно говоря, состояние телефона. То есть он разблокирован, не заблокирован, какая прошивка стоит. То есть если там прошивка не верифицированная, там состояние из green меняется на yellow, и опять, собственно говоря, данные теряем. Ну и какой-то так называемый ROT. Это данные, которые заложены производителем. Чаще всего это публичный ключ и хеш от него. И здесь у нас появляется еще одна примесь. Это, я его назвал, knox_nonce, какой-то блок данных, который содержится в криптографическом процессоре. Так, ну хорошо, если какой-то блок данных содержится в процессоре и происходит обмен, мы попробуем подсмотреть его по SPI и посмотрим, что у нас получится. То есть, как всегда, берем телефон, ищем пятаки, паяем, подключаем анализатор, и что же мы увидим. Ну, для начала я расскажу, собственно говоря, с чем нам придется столкнуться. Что если бы было все так просто, ну, криптографические процессоры бы не существовали. Если бы так мы у него сказали: дай нам ключ, он говорит: ну, на, держите, ребята. Но это так неинтересно. Так, ну, для начала первая проблема – это нужно нам включить процессор. Он сделан хитро у Samsung, включается только на время транзакции. То есть мы хотим у него что-то спросить, процессор его основной включил, поговорил с ним и говорит: все, не мешай мне тебе работать. Потом, после того, как мы его включили, процессоры должны, так сказать, пожать друг другу руки. Сказать там: я Вася, ты Петя, ты Петя, я тебя знаю, ты все правильно говоришь, давай работать дальше. После этого криптографический процессор отправляет произвольное число процессору основному. Основной процессор его зашифровывает установленным ключом. И вот эта штука проверяется уже крипточипом. Если все хорошо, происходит следующий этап. Открывается защищенный канал, поднимаются сессионные ключи. И, собственно говоря, остальные данные мы видим только мусор для нас и какую-то информацию, под ней лежащую, для процессора. На первый взгляд эта схема выглядит довольно защищенной, но давайте попробуем искать на ней слабые места. Собственно говоря, как это, нативный вариант. Паяемся, смотрим обмен, пробуем что-то найти. Но, собственно говоря, даже если мы челлендж как-то подсмотрели, после того, как появился secure channel, мы видим мусор. Соответственно, нам нужно не просто видеть обмен пакетов, но и как-то вклиниться в управление. Соответственно, если мы не можем посмотреть, давайте попробуем выпаять процессор где-то, управлять питанием и попробуем по этому пути пойти. Но здесь этот вариант нам не подходит, потому что мы не знаем ключ шифрования. Назовем его так, хотя там еще сессионные ключи есть. Соответственно, мы должны научиться управлять основным процессором, чтобы как-то добраться до данных. Хорошо, сейчас рассматриваем теоретически. Предположим, мы перехватили управление процессором. Хорошо, управляем процессором. Как-то мы там, допустим, нашли ключ в процессоре и повторили обмен по SPI. Соответственно, ключ у нас есть. Но следующая проблема – это подать питание на криптопроцессор. Можно, конечно, подать его в лоб, в обход, просто напаяв проводки. Но это мы можем что-то спалить. Соответственно, нужно разбираться еще будет с этой проблемой в процессоре. Ну, допустим, мы решили и ее. Соответственно, здесь мы уже тогда можем, разобрав транзакцию, зная сессионные ключи, посмотреть Knox. knox_nonce. И добавив его, это недостающее звено в предыдущую схему, вынести перебор на внешний компьютер. Соответственно, здесь у нас есть мощности и GPU, и CPU, и кластеры, то есть здесь мы уже работаем в полный рост. В принципе, этот процесс получается довольно высокий, но имеет свои уязвимости и атака может выполниться. ## Galaxy A06 на MTK: крипточип как «вахтёр», перебор только на телефоне Теперь переходим к следующему телефону Samsung Galaxy A06. Здесь отличие не только в том, что он управляется по шине I2C. Шину I2C можно посмотреть, скажу даже больше. Мы там увидим обмен. Он здесь не зашифрован. Скажем так, фишка здесь совсем в другом. Условно говоря, в формировании так называемого ключа пространства. Если в первом случае нам нужен только, назовем, секретный блоб, и мы спокойно выносим перебор наружу. Здесь у нас уже криптопроцессор непосредственно участвует в проверке пароля. И появляется у нас в папке так называемый файл Weaver. Поэтому назовем для себя, что это будет у нас логика Weaver. И давайте посмотрим, как изменилась наша схема получения ключа. То есть у нас здесь добавился weaver_info. Ну, в принципе, он лежит в папке под ногами, то есть его можно посмотреть, здесь ничего нет интересного. Здесь интересен процесс формирования ключа для файловой системы. То есть по факту в CryptoMCU передается только хеш, и этот криптопроцессор, крипточип, он как вахтер. То есть он сидит там и говорит: ага, так, этот хеш я знаю. Собственно говоря, держите ключи и работайте. Если хеш не совпал с ожиданиями крипточипа, он как вахтер говорит: ну, собственно говоря, уходите и ключи не получите, пока не покажете правильный хеш. Ну, соответственно, здесь могут возникать проблемы. То есть перебор мы не можем вынести вне телефона. Соответственно, здесь CryptoMCU может внутри себя уже считать счетчик попыток. У него есть внутренняя память, то есть он может эти попытки складывать, суммировать. Потом есть свои таймеры внутри, он может замедлять ответ — то, с чем мы сталкиваемся. То есть 10 паролей ввели, потом ждем минуту. И так это все. Ну и, соответственно, теоретически он может потом сказать программе: ну все, там было тысяча попыток, меня явно ломают, я все там тру внутри. На самом деле там для этого не нужны большие мощности, достаточно там реализовать просто функцию memcpy, то есть это сравнивание памяти, подходит, не подходит, и какой-то простой счетчик, и мы получаем кучу проблем. То есть мы это уже никак не вынесем. Ну, соответственно, еще раз подытожим, что нам дает этот… И, собственно говоря, почему это так сложно разбирается, сложно реализовывается. То есть мы здесь сталкиваемся с принципиальной трудностью. Для нас крипточип – это черный ящик. Мы не знаем, что внутри происходит. И данные хранятся в нем, сам ключ. То есть он может быть произвольный, он никак не связан ни с хешем, ни с чем. То есть это знает только сам крипточип. Опять же, вся авторизация не сводится к получению какого-то блоба, и мы не можем вынести ее извне. Также может возникнуть счетчик попыток, и также может происходить фиксация ошибок. То есть по факту мы можем потерять данные при неправильной работе. Это небольшой слайд. Если просто из крипточипа нам нужно достать блоб и включить его в цепочку, то в этом случае мы можем что-то сделать. Если проверка пароля и получение итогового ключа происходит непосредственно в крипточипе, то здесь уже мы принципиально на данный момент ничего сделать не можем. ## Вопросы из зала Так, ну в принципе я закончил. Если есть какие-то вопросы, я готов выслушать. Большое спасибо, коллеги. Ваши вопросы через поднятую руку. Так, я вижу в той части. Валерия Михайловна, попрошу вас туда. Алексей, а вы пока сидите не здесь. — Добрый день. Разрешите вопрос, он связан с непосредственно формулами, которые, скажем так, символично вы произвели. То есть определенные операции, root of trust, по формированию ключа. Это получено эмпирически или из анализа документации на CryptoMCU? Это часть документации CryptoMCU. Часть – это наши, скажем так, познания, наши исследования. То есть это такая небольшая обобщенная информация. То есть как ключи устроены. — В принципе, эта информация есть и в открытых источниках. Ну, может быть, где-то что-то менее полно, где-то по-другому называется. Так как это внутри у нас, скажем, в команде сформировались свои названия, поэтому тут и терминологии тут нигде нет определенной. Тут многие называют, как хотят, эти вещи. — Коллеги, еще вопросы? Алексей, прошу вас. — Вячеслав, вы сказали, что на данный момент вот так обстоят дела. А перспективы какие-то ожидаются? — Ну, скорее всего, если что-то будет, это все будет перебираться не на внешних мощностях, а непосредственно на самом телефоне. Но здесь опять же, это нужно проводить отдельные исследования. Кто сбрасывает, кто не сбрасывает состояние процессора, сколько раз можно попытаться безопасно. Может быть, какие-то будут, но это уже совсем другое направление. Может, опять же, где-то там утечет прошивка этого криптопроцессора, где-то что-то станет понятнее. Все движется, все меняется, опять же, битва щита и меча, она будет присутствовать всегда. Спасибо. Коллеги, еще вопросы? Валерия. — Вячеслав, добрый день. У меня вопрос был как раз-таки тоже про форму формирования ключа. Отдельное внимание уделили тому, телефон заблокирован или разблокирован, и вы сказали, что в зависимости, а именно от вот этого состояния, данные могут быть уничтожены, если, например, он разблокирован. Вы можете чуть подробнее объяснить, что вы имели в виду? Да, то есть получается, у нас есть ключ, но это сейчас не будем рассматривать для, скажем так, с проверкой в крипточипе, будем рассматривать общий вариант, и даже просто уберем крипточипы, это просто auth blob, то есть в формировании ключа участвует так называемое состояние телефона, это color и is_locked. Это состояние. Что такое is_locked? Собственно, разблокирован, заблокирован загрузчик. Color — это состояние телефона, то есть, во-первых, там учитывается разблокирован, заблокирован загрузчик, собственно говоря, по-моему, boot подменен, не подменен, и еще там некоторые файлы, я сейчас... Мне надо вспомнить, это не так часто с этим сталкиваешься. В общем, зависит от состояния прошивки, если так вот обобщенно. То есть разблокирован, заблокирован, прошивка оригинальная, не оригинальная, подписана, не подписана, подписана ключом производителя, другим ключом, и все эти состояния влияют на ключ. То есть, если мы изменили ключ, данные, скажем так, если мы там сильно телефон не перепрошиваем, ничего не делаем, просто вот нечаянно установили не ту прошивку, ну, есть шанс данные восстановить. Ну, то есть, условно говоря, если мы вот так вот глубоко идем, не с средствами телефона, а скопировали данные и пытаемся через эту цепочку работать, шансы есть. Но, опять же, это уже не с средствами телефона. То есть средства телефона, если мы прошили телефон или разблокировали, заблокировали, все, мы данные для телефона потеряли. Спасибо. Коллеги, еще вопросы? Да, пожалуйста. Извините, по ответу на предыдущий вопрос, получается, если мы, в случае, если мы сохранили данные, то в последующем восстановить их на телефон может получиться? Ну, если мы сохранили данные и у нас есть уникальность телефона, то есть у нас телефон под руками лежит, то есть обязательно должен телефон лежать и должен быть бэкап. Ну и там, соответственно, при перепрошивке, если что-то не нравится телефону, он тогда делает так называемый вайп, то есть он все стирает. То есть это уже как повезет. То есть если мы там вовремя аккумулятор отдернули, увидели, но, скажем так, с боевыми телефонами так лучше не поступать. — Коллеги, есть ли еще вопросы? Вижу руку. — Спасибо за доклад. У меня вопрос в продолжении предыдущего. То есть он именно физически стирает данные или просто из-за того, что у нас меняются параметры, у нас меняются конечные ключи, он просто не может их расшифровать? Да, все верно. На первом этапе он просто меняет ключ, мы не можем их расшифровать. А в дальнейшем, то есть если он там, собственно говоря, запустится, там какие-то внутренние процессы телефона, там самовосстановление, самое еще что-то, там целый мир. И вот эти процессы могут уже потереть. Понял, спасибо. Я вам хочу задать один провокационный вопрос, как пользователь Samsung. Я тут. Что мешает сломать последние дорогие модели папки Knox, которые, кстати, я хорошо пользуюсь? Ну, модели на каких процессорах? На MediaTek или вообще на Kirin или в общем? Ну, в целом. В целом? Ну, по Knox в целом я не скажу. По факту, что такое Knox у Samsung? Это просто отдельное пространство. То есть есть пространство 0, пространство 1. То есть это независимое пространство. И проблема в том, чтобы получить ключ к этому пространству. Так вот какая сложность возникает в получении ключа к пространству? Потому что мы все помним ситуацию, когда Apple много лет назад попросила Агентство национальной безопасности сломать телефон. Apple, конечно, отказался. Они его сломали сами, своими силами. Но потом появился Greybox, неожиданно. — Но это уже другой вопрос. Дело в том, что я общаюсь с Samsung, представители Samsung, они говорят практически о чуть ли не 100% безопасности вот этой папки Knox. Ну, скажем так, на устройствах, которые были на MTK и которые поддерживаются, там в принципе Knox разбирается. А что касается современных Exynos, тут я сказать не могу. В принципе, наша фирма с Exynos не работает. — Хорошо, желаю вам продвижения в этом направлении, потому что, как мы все понимаем, сейчас в новых моделях еще и ИИ встроено, я думаю, они ИИ встроят и в безопасность телефона также, и мы все знаем, что ИИ может использоваться как в плюс, так и в минус. Все, спасибо большое. Дима, у меня здесь вопрос. Пожалуйста. Вопрос в целом состоит из перспективы, которую составляет развитие телефонов, когда не только зарядка, но и передача данных в дальнейшем будет беспроводная. И отсутствие интерфейсов в мобильных устройствах для передачи данных станет основным стандартом для выпуска новых моделей. Вопрос к вам. Так как вы занимаетесь более таким методом с доступом к системной плате и извлечением информации, какие вы видите в дальнейшем перспективы развития извлечения данных из таких устройств, где будут отсутствовать интерфейсы передачи данных? Кроме того, что, например, остается только разблокировать телефон естественным образом, подбором пароля из других устройств в рамках инцидентов или рамках кейса. И обычные фотофиксации, видеофиксации, переписок и фиксации криминально значимой информации. Как вы видите в дальнейшем извлечение данных из таких устройств, где нет интерфейса передачи данных, если коротко? Хорошо, интересный вопрос. Немного философский. Попробуем на него чуть... Как бы так, пофилософствовать. Так, ну, на текущую ситуацию, ну, в любом случае, любое устройство, оно должно как-то грузиться. Должно как-то прошиваться. Это все, то есть невозможно на данном этапе развития, думаю, что не скоро, то есть невозможно прошить память по воздуху. Все равно там будут какие-то проводники, какие-то схемы. В эту схему можно будет залезть, внести изменения, подсмотреть. То есть, ну, задача усложнится. Все равно, я думаю, что на определенном этапе это будут провода, возможно придется разбирать, подпаиваться, что делать. Здесь мне видится проблемой более не в проводных интерфейсах, а в динамике развития. В общем, скажем так, то, как производители уделяют внимание безопасности, насколько это становится критичным. — Ну, с тех, скажем так, с нашей майской конференции и вот до сегодняшнего дня, я уже говорил, по MTK вышло вот за вот это время, сколько там, 2-3 месяца, пусть, ну 4 даже. Но все равно за это время вышло два значимых патча безопасности. Это только для MTK, это не самый серьезный производитель. Ну вот, собственно говоря, вот эта динамика пугает намного больше, чем беспроводные интерфейсы. Вячеслав, большое спасибо. Давайте проводим его аплодисментами. Оставьте, пожалуйста, кликер на столике. Спасибо большое.