Pull to refresh

Comments 130

Вижу статью от amartology, ставлю плюсик) Но в следующий раз пиши примерное время на прочтение статьи, не ожидал тут залипнуть так долго)) Хорошо написано.
А еще в середине статьи обещано показать, как делаются закладки на фабрике, но так и не показано. Ай-яй-яй.
Погоди, но кейс 3 — это же закладки в топологии и есть. Но да, если ты ожидал рассказ про специально сделанные тонкие линии питания для запланированного устаревания, про незаметное внедрение антенн для приема сигнала со спутника или про добавление в топологию модулей, активируемых специальной входной последовательностью — то это не оно.

Про время на чтение — я постараюсь как-то считать его и писать в начале, но в целом можешь каждый раз рассчитывать на лонгрид.
Отдельно замечу, что оба описанных метода защиты от ненадёжной фабрики помогают от несанкционированного копирования, но не спасают от популярных в узких кругах “закладок”. Более того, чуть дальше я расскажу о том, как делать “закладки” в топологии самим.

Я так понял, что о закладках будет рассказано со стороны фабрики, которая хочет добавить что-то в выпускаемый по чужому заказу чип. Кейс 3 же показывает опции для разработчика по защите от реверса.
По поводу закладок со стороны фабрики, я придерживаюсь позиции, что их не существует потому что я их никогда не видел, потому что для внедрения дополнительной функциональности необходиммо полностью отреверсить большой кусок чипа и потом внести в него изменения так, чтобы они могли взаимодействовать с основным дизайном, но при этом не покрывались тестами. Еще в идеале надо использовать для закладки штатные запасные ячейки, разложенные разработчиком.
И сделать все это (включая реверс-инжиниринг) надо не срывая сроков, то есть за считанные дни или максимум пару недель до изготовления фотошаблонов, что нереально, а большой срыв сроков — это тоже проблема, особенно в том случае, если заказчик может что-то подозревать.
Сделать первую партию как надо, а потом подменить часть шаблонов тоже маловероятно, потому что новые шаблоны дороги, а фотографирование и сличение кристаллов разных партий — дешево и быстро.

Антенну же просто нельзя сделать незаметной, у нее физические ограничения есть. В условном билете метро чип маленький, а антенна для практически контактного приема данных размером с весь билет.

Поэтому, с моей точки зрения, закладки в микросхему реалистично может вносить только разработчик микросхемы или разработчик IP-блока, но никак не фабрика.
Просто это достаточно популярная страшилка, о которой, на мой взгляд, полезно рассказать поподробнее. В следующей статье?)
Если начать развеивать теории заговора, то можно дойти до постройки спутника для проверки того, были ли американцы на Луне.
Фактуры по теме нет и не предвидится, и в итоге все сведется к комментарию выше, наполненному водой для объема, а также к разговору о том, что существование закладок можно подтвердить, показав один пример, а их несуществование надо строго доказать, что сделать невозможно.

Поэтому я пожалуй, о чем-то другом напишу в следующий раз. Но идеи интересных тем принимаются, а то у меня сейчас в черновиках только пара вещей на неопределенно далекое будущее.
Надо начать с того что самой фабрике вообще незачем встраивать что-то в кристаллы, у них и так забот своих хватает. Тут надо рассматривать вопрос по другому — встроить закладку ХОЧЕТ заказчик закладки, а у него может быть дополнительная информация о чипе который собираются производить на фабрике. Кроме того, закладка может быть уже готовая под конкретный внешний интерфейс и вообще не подключена к внешним выводам микросхемы.
Да и ещё такой весьма интересный вопрос, не так давно производители в целях борьбы с подделками собирались встраивать в каждый корпус RFID-чип с серийным номером… КАК? Опять же это вопрос касательно антенны… Для СВЧ вроде 70ГГц антенна может быть вполне расположена в пределах чипа. Даже четвертьволновой диполь уместится на 0.5мм линейного размера где-нибудь с краешка чипа, даже за контактными площадками.
0.5мм линейного размера
Полмиллиметра — это не «где-нибудь с краешка чипа», а «обоже, что это за огромная дурища мозолит мне глаза на фото, мы такого точно не проектировали».

заказчик закладки, а у него может быть дополнительная информация о чипе который собираются производить на фабрике
То есть, заказчик закладки отреверсил дизайн еще до того, как файлы с топологией попали на фабрику? Я с очень большим трудом представляю себе такой сценарий.

закладка может быть уже готовая под конкретный внешний интерфейс и вообще не подключена к внешним выводам микросхемы
Но для того, чтобы подключить ее к внутренним узлам микросхемы, надо найти эти нужные внутренние узлы, а дальше собрать закладку на запасных частях — и все это в очень сжатые сроки. Собственно, для того, чтобы нужные внутренние узлы нельзя было найти за разумное время, топологию синтезируют для всей микросхемы целиком, чтобы не было логично выглядящего datapath.

Да и ещё такой весьма интересный вопрос, не так давно производители в целях борьбы с подделками собирались встраивать в каждый корпус RFID-чип с серийным номером… КАК?
Если метка контактная или почти контактная — то почему бы и нет, в большой корпус микропроцессора или, скажем, DC/DC гибридного модуля такое положить вполне реально и даже может быть экономически оправдано.
Нет, речь шла про бесконтактную метку. В чип, в идеале в каждый чип крупнее SOIC-8.
Насколько я понимаю физику, дальность должна быть как-то пропорциональна размеру антенны (потому что метка должна откликаться на сигнал ридера). Поэтому, если мы говорим о дальностях в несколько сантиметров, то существуют метки размером 3х3 мм, которые теоретически можно разместить внутри корпуса. Правда, как при этом обеспечить электромагнитную совместимость — это отдельный интересный вопрос.
Также у меня вызывает вопросы экономическая составляющая этой идеи, особенно для чипов, которые сами по себе стоят единицы центов.
Не должна. Вон, спутниковая связь — непосредственно антенна там сантиметры(отражатель не антенна!), а пробивает десятки тысяч километров.
Размер антенны, эффективный размер, пропорционален длине волны ею излучаемой/принимаемой. Для 20...70ГГц это миллиметры. Причем, 1/8 и даже 1/16 длины волны остаётся всё ещё приличной антенной для NFC.
Чипы стоимость которых в несколько центов никто не захочет подделывать — это слишком убыточно.
А что там с совместимостью? Метка используется для проверки оригинальности чипа разве что максимум — перед монтажом. А в работе, активные поля активирующие метку скорей всего будут влиять и на работу чипа и являются неприемлемыми в принципе.
Метка может быть даже магнитной — как штрих-код только в виде неоднородностей магнитного поля. Но тогда весело будет, ведь эту метку можно обнулить и не так уж сложно…
Для 20...70ГГц
А сколько там у нас граничная частота транзисторов то в защищаемом чипе?:)
Если мы говорим о совсем дешевых техпроцессах (350-180 нм), то 50-70 ГГц, если о более продвинутых, то пара сотен.
Ого!
Спасибо
Когда то читал, что на пластине с процессорами разбрасывают по площади мультивибраторы для быстрой отбраковке по частоте, но подзабыл порядок.
ps В детстве задержку инвертора на К155-ой знал каждый кто умел:), а сейчас «помигать диодом на 32-битном МК» — память обычно заканчивается быстрее чем такты:)
Ох, как в анекдоте который я тоже забыл :)
Не то, так не это :)
А причем тут вообще транзисторы чипа? Активным элементом для приемника/передатчика на такой частоте может быть диод ганна.
В современных процессорах транзисторы имеют такой же порядок скорости переключения, чтобы обеспечить надёжную работу логики на гигагерцовых частотах.
спутниковая связь — непосредственно антенна там сантиметры(отражатель не антенна!), а пробивает десятки тысяч километров.

Про десятки тысяч километров вы малость загнули. :)
До спутников Iridium всего навсего около 800 км.
Геостационарные спутники, они далекооо… гораздо дальше 800 километров. Размер антенны не имеет отношения к дальности связи.
колбочки и палочки в нашем глазу — это те же антенны для излучения с длинной волны 400...800нм, а поди ж ты — принимаем излучение с расстояний в тысячи световых лет!
UFO just landed and posted this here
Фабрику интересует только соответствие топологии нормам проектирования для изготовления фотошаблонов.
Все остальное — забота разработчика, и в нормальной ситуации вся валидация производится самостоятельно, а не сторонними фирмами.
Но если отдать произвольную часть разработки микросхемы (в том числе верификацию) на аутсорс, то да, можно ожидать, что на этом этапе принципиально возможна утечка информации.
Но если допустим заказчику закладки заранее известно что чип будет обладать SPI-интерфейсом который надо будет перехватить, саму закладку можно спроектировать заранее и остаётся её только интегрировать в чип хоть даже на свободное место и протянуть трассы к интересуемым линиям. Шансы удачи в таких случаях достаточно высоки.
Есть ещё другой вариант — когда чип изготавливается по лицензии другой фирмы, и этому чипу уже с десяток лет просто нормы меняются и требуется разработка нового шаблона…
хоть даже на свободное место и протянуть трассы к интересуемым линиям

1) Расположенный на свободном месте левый блок офигеть какой заметный, даже при простейшей визуальной инспекции.
2) «Заказчик закладки» должен быть настолько влиятелен, чтобы фабрика ради него рисковала репутацией. Вы много таких знаете?
3) Если у фабрики нет репутации, которой не хочется рисковать, то в тексте статьи есть кейс методов работы с ненадежной фабрикой.
UFO just landed and posted this here
Криптография-с. Решение подделать метку так чтобы не оказался дубликат будет находится в области криптографии.
Скопировать метку может и можно будет, но легко это сделать получится только из уже существующей, а значит на рынке появятся миллионы клонов одной и той же микросхемы, а в базе будет уже отметка где и кому продан исходный чип. Т.е. кроме всего прочего нужно будет ещё и следить чтобы не засветится с покупкой чипа с которого снимать копию. И в конце концов, можно делать клоны и без чипа вовсе, только на серьёзные фабрики не продашь, разве что только в розницу для бытовухи или собственных нужд но это ведь и уровень дохода совершенно не тот.
Вот как пример — китайские клоны PlasmaPen… внутри стоят чипы ВООБЩЕ без маркировки.
Да и ещё такой весьма интересный вопрос, не так давно производители в целях борьбы с подделками собирались встраивать в каждый корпус RFID-чип с серийным номером… КАК?

Скорее всего не в каждый корпус, а в каждую упаковку.
Подозреваю, что это журналисты «раздули» до чипа :)
Даже четвертьволновой диполь уместится на 0.5мм линейного размера где-нибудь с краешка чипа

Так-то антенны (нерезонансные) уже есть, это любая из линий питания. Проблема в блокирующих конденсаторах по питанию, но, возможно, не все ставят керамику в параллель плёночным/танталовым/какие-там-ещё-сейчас-есть, или керамика достаточно низкочастотная, чтобы десятки ГГц не пропустить.
UFO just landed and posted this here
Про время на чтение — я постараюсь как-то считать его и писать в начале

Было бы замечательно если бы эта функция была у хабра из коробки.
Мне кажется — Господа немного за… сь ;)
Да нормальные у него статьи, можно даже побольше)
Хотя я-то читаю только в дороге, а она у меня очень длинная, так что я практически ни на какие объёмы не жалуюсь. Мне даже ГПиМРМ показался не очень большим (какая-то неделя чтения), хотя там ведь реально объём с три «обычных» книги.
Это значит вам неповезло, что hpmor вы читали, когда уже весь текст был готов)) Читать по ходу публикаций было очень увлекательно, потому что Юдковский оставлял всякие задачки читателю :)
Скрытый текст
В финальной сцене, к слову, мое решение было схоже с авторским, разве что я предполагал отрезание рук и переламывание палочек, а не отсечение голов))

Тоже хотел обойтись малой кровью, но товарищи быстро напомнили мне про возможность задним числом ВНЕЗАПНО кастануть что-нибудь силой мысли.

Очень интересная статья, спасибо )

FIB конечно манит, но ценники от 0.6М$ (чистый FIB) до 1.8М$ (комбинированный FIB-SEM с полевой эмиссией)… Впрочем, в капиталистическом мире покупать такое никогда не приходится, достаточно арендовать на время в сервисной компании… А можно чуть больше информации про то, как FIB-ом диэлектрики наносят?

По Z80 — говорят в оригинальном дизайне была ловушка от реверс-инженеринга, приводившая к неработоспособным чипам при попытке топологию скопировать визуально… Не находилась в документе или еще где-то?
По Z80 — говорят в оригинальном дизайне была ловушка от реверс-инженеринга, приводившая к неработоспособным чипам при попытке топологию скопировать визуально… Не находилась в документе или еще где-то?
В этом чипе ничего такого нет, но скорее всего там примерно то же самое, что описано в этой статье.

А можно чуть больше информации про то, как FIB-ом диэлектрики наносят?
Можно. По ссылке рассказ в принципе о «nanofabrication» с помощью FIB, а еще можно погуглить по запросу «FIB local deposition», там в научных статьях много найдется, если у тебя есть к ним доступ (или к сайхабу).
Можно сделать довольно хороший FIB из большого (не настольного, типа фенома) SEM с высокой энергией пучка. Стоить это будет для RU непонятно сколько, для штатов/европы <20k$. Посмотри на проект NPGS еще, если интересна эта переделка.
BarsMonster, для одной московской конторы прорабатывал варианты с FIB.
Нужна будет инфа — пиши-звони;)

У FIB есть система GIS (gas-injection-system), куда можно любой газ подать, разложить ионным пучком и осадить SiO2, Pt, Cr и т.д.
Прочитал с удовольствием! Спасибо за статью!
Спасибо. Интересно написано даже для человека далёкого от темы.
Мораль: используя в своем проекте EEPROM, накрывайте ее сверху металлом. Причем желательно не только сплошным щитом от излучения, но и какими-то значимыми линиями, чтобы щит нельзя было аккуратно стравить. Впрочем, тут тоже скрывается засада, потому что

Эээ… Это типа «продолжение следует»? :) Или просто потерялся фрагмент текста? Очень уж хочется узнать про «засаду».
Ойой, и правда потерялся небольшой кусок. Пара минут, и он появится.

UPD
jok40 готово, спасибо за наблюдательность. То ли случайно удалил при копировании, то ли случайно не перенес, а глаз а время написания настолько замылился, что при вычитке упустил это(
пример вскрытия микроконтроллера PIC12C508A

Тут стоить заметить, что вскрывать PICи и ATмеги нет никакой практической нужды, в силу чисто логических ошибок дизайна, позволяющих с помощью не хитрых танцев с бубнами вокруг питания их спокойненько читать… Ошибки признавались, дыры закрывались, но так, что всякий раз оставалось что-то новенькое.
+ не знаю как у Пик, у Атмелов есть заводской бэкдор, и есть он не только в микроконтроллерах, ах-ах, и не только бэкдор там тоже есть!!!
Как-то не похоже это на заботу о защите интеллектуальной собственности потребителей, когда разные производители, конкуренты, дружно наступают на одни и те-же грабли.
есть заводской бэкдор
Вы про тестовый JTAG? Так он у всех есть, вопрос в том, что его надо отключать и желательно отключать как следует. Но да, вы правы, и PIC, и Atmel — не образцы ответственного отношения к данным, у Atmel например, военные защищенные ПЛИС вскрывались какое-то время назад.
Неее, JTAG это JTAG, тут пользователь скорее сам себе злобный буратино, хотя кто знает что он ещё там скрывает, я не знаю, я вообще про другое…
… мне кажется странным, что вместо того, что-бы тупо промолчать на команду чтения или вернуть какое-нибудь ругательство, некоторые камушки строят из себя генератор случайных чисел, который при внимательном рассмотрении не такой уж и случайный, ну это так, догадочка, которая вполне могла-бы быть подтверждена, если-бы всё не было ещё проще
хитрых танцев с бубнами вокруг питания

А что за танцы с бубном?
Ну, чисто как пример, дела давно минувших дней, ЕМНИП у пика можно было послать команду на стирание, и рубануть питание, в результате фьюзы сбрасывались, а код оставался цел…
… после того как это стало достоянием общественности, они изменили логику, что-бы фьюзы стирались в конце, мол спите спокойно, НО ;-)
Это не конец истории, как вы наверное догадываетесь.
In my view Baikal-T1 is a large step forward for Russian civilian microelectronics. It uses modern commercial core, it is designed using industry-standard flow and manufactured using high-volume commercial technologies. Finally it uses open source compiler and OS — which makes it much easier to support and work with comparing to infamous Elbrus. Using non-standard solutions in situations where they could have been avoided was the curse of Russian microelectronics, until Baikal.

хоть кто-то похвалил наш Байкал!
Цитата про «in my view» отсюда
Михаил Сваричевский, хоть и умеет писать по-английски (хотя предложение, начинающееся с «In my view», c головой выдает человека, родной язык которого — русский), вообще ни разу не «хоть кто-то» в деле популяризации российской микроэлектроники. Но если вам интересно, то он не единственный, кто хвалит, и не единственный из тех, кто умеет писать по-английски)
In my view

А как сказать, чтобы не выдавало?
Не начинать с вводного предложения, а сказать «I think that» или хотя бы «In my opinion».
I think — это из базового школьного английского. Уже на уровне Intermediate преподаватель запрещал нам начинать фразу с «I think». In my view — это вполне приличное допустимое начало.
Разумеется, допустимое и грамматически корректное, с этим я не и не спорю. Но native speakers так не говорят. А если вы non-native, то лучше пренебречь запретом учителя и получить на выходе гладкий текст, чем написать что-то, обо что сразу запинаешься при чтении.
Учитель запрещал вам говорить «I think» не потому, что эта фраза плоха, а потому, что она самая простая, а ему было важно научить вас более сложным конструкциям.
Но native speakers так не говорят
Ну вообще-то словарь английского языка фиксирует, как говорят именно нейтивы. Для этого он и существует. А если вы используете силу гугла, то вы легко убедитесь, что учебники не врут.
Речь мастера Йоды полностью грамматически корректна, но нэйтивы обычно так не говорят.
У меня довольно большой опыт общения на английском и чтения текстов, написанных по-английски людьми разных национальностей. Я ни в коем случае не претендую на истину в последней инстанции (мой собственный английский тоже очень далек от идеала), но национальность автора по цитате я угадал верно.
Скорее всего вы просто не встречали раньше этот речевой оборот, и поэтому вам просто показалось, что это калька с русского. Если уж даже королева Елизавета так говорит, то не знаю, цитаты каких ещё нейтивов вас устроят)
«In my view» site:bloomberg.com
About 1.400 results
«I believe that» site:bloomberg.com
About 2.150 results
«In my opinion» site:bloomberg.com
About 4.360 results
«I think that» site:bloomberg.com
About 7.980 results
Да, именно так. Поэтому, как я уже отмечал выше, «I think» относится к basic english, а «in my view» — к intermediate.

Чёрт. Это мне напомнило положительные отзывы на отечественные фильмы на IMDB. Ну, когда один человек — один отзыв :)

Мой наивный тролль предлагает размещать на месте «тестовых микросхем» неработающие версии предыдущих тестов. Нет ничего более увлекательного, чем программа, покрытая тестами, которые проверяют не то и не так.

А потом отреверсенный дизайн доработают и запустят в производство. И это будет еще больший троллинг.

Хорошая статья, но хотелось бы почитать аналогичную статью с более близкой к людям тематикой:
Как защититься от реверс-инжиниринга печатной платы и схемы устройства? Есть простые способы?

На эту тему я, к сожалению, ничего интересного рассказать не могу, потому что в вопросе проектирования микросхем я являюсь специалистом, а печатных плат — нет. Если кто-то из специалистов по проектированию печатных плат напишет такую статью, я сам с огромным удовольствием ее прочитаю.

Их общих соображений мне кажется, что защитить печатную плату должно быть сложнее, потому что на ней сильно меньше компонентов, чем в микросхеме, а размеры элементов гораздо больше, что упрощает и ускоряет работу.
Вероятно, как-то помочь может маскировка используемых микросхем — сошлифовка заводской маркировки, заливка компаундом или использование распайки кристаллов на плату, а не чипов в корпусах.
Вероятно, как-то помочь может превращение платы в программно-аппаратную систему и защита софтовой части, чтобы электрическая схема без ПО или прошивки была бесполезна для взломщика.

Вот вот, это интересно.


А то мы наткнулись на реверсинжиниринговую копию своей платы совершенно случайно — когда нам в ремонт принесли изделие, думая что это наше. И человек даже уже взялся ее ремонтировать, как вдруг заметил, что компоненты немного непривычно стоят. Оказалась подделка, причем отечественная.

Прекрасная и одновременно печальная история. Но, повторюсь, чем тут помочь помимо сказанного в предыдущем комментарии, даже не знаю, я тут не специалист.
Удачи в борьбе с пиратами!

А патенты, кстати, не работают у вас? Мы думали запатентовать принцип работы платы, но не смогли оценить затраты на это.
Та фирма, что сделала подделку, нам известна, и они почти официально ее продают. Вышли на них через тех же, кто приносил в ремонт.

Отследить копирование дизайна микросхемы очень сложно и обычно дорого, а патент — это раскрытие ноу-хау, поэтому чаще делают реверс-инжиниринг максимально сложным, чем патентуют решения, чтобы потом не реверсить изделия конкурентов. В случае с платой патентование может иметь смысл, особенно если патент только российский. Оценку затрат сходу не дам, я по этому поводу в последнее время только со Сколково дело имел, там дёшево, но я не знаю, как они работают с нерезидентами.
Ну, почему-же, правильно оформленные патенты, оформляются для решения вполне конкретных юридических задач с учётом особенностей правоприменения ;-) А не как не для фиксации приоритета на какое-либо ноу-хау, что-бы там не напели вам патентные поверенные, раскрывать в патенте что-либо значимое вовсе не обязательно и даже вредно!
Месть — блюдо, которое, подают холодным. Хотя дело конечно же не в мести, а в защите своих интеллектуаль инвестиций, ничего личного просто бизнес, и с контрактным производителем контрафакта, и с наглым конкурентом, можно полюбовно договориться ради общего блага. Говоря о защите кода\схемы\топологии и прочих частностей, вы упускаете из виду реальные угрозы и задачи бизнеса, которые частным путём, техническим-ли или юридическим, не решаемые в принципе, токмо комплексно!

Я вам историю расскажу, весёлую, у владельца китайских контрактников полного цикла, были и другие производства, и очень ему наш продукт понравился, так понравился что он решил сделать свой, на основе моей схемы и прошивки, разбираться с которой по началу никто и не стал, ведь всё так прекрасно работало…
… когда пошли возвраты и предъявы, произвести продукции они успели впрок, и мои друзья были очень недовольны демпингом, но кроме ругани поделать ничего не могли, опыт прежних разборок с китайцами у них был негативным, а тут вдруг продажи конкурента приостанавливаются, но не на долго через пару месяцев опять, но предлагали уже существенно меньшие объёмы, там то-же была моя прошивка, но уже такая-же как на прилавках в Европе и США, вся разница была в EEPROM читать который штатными методами было конечно-же нельзя, там был адрес электронной почты, по которому так никто и не написал, но… Спустя ещё некоторое время мы сами предложили выкупить всё что произведено и прошито по цене чуть ниже себестоимости, китайцы начали торговаться, мы отказались платить за то, уже что было заказано сказав что уходим к другим контрактникам, а им не судьба продать то, что они произвели не перепаяв контроллеры. И они не поверили!!! Пока сами не убедились, что это так, и наличие моего адреса в EEPROM даже не проверяется, причина какая-то другая, но код дико обфусцирован (виртуалочка), и при выкусывании возможности работы с фьюзами и EEPROMом не работает. Только тут, до них дошло, что собственная разработка прошивки стоила бы им значительно меньше денег и времени, чем они уже потратили, и продать русским всё по дешевке, выгоднее чем пытаться спасти проект ибо не факт что вообще получится. В общем, когда дело касается денег, можно и лицо потерять, хотя на самом деле нет, но наших засранцев вопрос лица не сильно волновал, и они таки согласились.

А дальше в ход пошел жестокий маркетинг, у нас были хорошие каналы продаж и возможность давить народившихся конкурентов ценой, рынок насыщался и мои товарищи единолично съели большую его часть, оставив китайцам лишь гнилой хвост, где их добили официалы…

ps. вот такая история, а при аффилированностьи разработки, производства, продаж и финансов, возможны истории ещё более фантастические, когда технически продукт вообще не нуждается в защите, и произвести его могут многие, но не будут этого делать, ибо произвести мало, нужно ещё продать, что бы за вычетом всех расходов, тебе чего нибудь осталось…
Крутая история. Но я не согласен с тем, что «говоря о защите кода\схемы\топологии и прочих частностей, вы упускаете из виду реальные угрозы и задачи бизнеса». Я не упускаю, просто у статьи есть конкретная и довольно ограниченная тема — защита микросхем. Но я упомянул, что это не защита ради защиты, а защита для того, чтобы сделать процесс настолько долгим и/или дорогим, чтобы он стал экономически нецелесообразным.
Вы полностью правы, у задачи бизнеса «обезопасить себя от конкурентов и не потерять прибыль» есть огромное множество решений, технических, юридических и экономических, и всегда важно понимать, какое их сочетание даст максимальный экономический эффект.
Добавлю ещё пару рецептов: выстраданный и теоретический.
1) транзит некоторых выводов (JTAG в первую очередь) сквозь небольшую CPLD-шку через внутренние шарики BGA и внутренние слои печатной платы.
2) известны технологии по размещению бескорпусных чипов в толще печатных плат (между платой и препрегом), встречал инфо, что так сделаны некоторые интегрированные DC-DC от TI.
Статья супер. Понимаю, что вопрос не совсем по теме, но всё же где-то рядом: можно пару слов про защиту от атак по сторонним каналам? В свете примеров взлома rsa по акустическим каналам и потребляемой мощности интересно, что можно противопоставить на железном уровне, с софтом и hdl в этом случае более-менее понятно.
По поводу потребляемой мощности я немного упомянул в разрезе памяти; с мощностью в процессе обработки информации можно сделать что-то подобное, добавив служебные схемы, которые будут нормализовать потребляемую мощность в разных режимах.
Еще, например, видел решения, которые выравнивают время обработки сравнения вводимого пользователем ключа с эталоном, чтобы не допустить взлома через пропорциональность времени обработки номеру несовпадающего бита в ключе.
А в целом анализ потребляемой мощности — это очень перспективная для взлома и очень сложная для защиты тема, ее не описать подробно в обзорной статье, там можно копать вглубь сколько угодно.
Хороший перевод и статья интересная.
Из ремарок — IP-блок, и в целом IP — это же подразумевается интеллектуальная собственность (intellectual property), а сокращение не расшифровано в начале текста. Первый раз был даже небольшой ступор при чтении фразы про раскрытие IP.
Спасибо за ремарку, я расшифровал сокращение в самом начале и перенес ближе к началу абзац со ссылкой на статью про IP в чипостроении.

Спасибо за отличную статью!


Восстановление перемычек, чтение памяти и меткие правки оной — дело, безусловно, понятное и полезное. Но вот реверс чисто цифровых схем и, в частности процессоров, как мне кажется, уже не работает и работать не может в силу безумной сложности дизайна. Восстановление схемы не приблизит к пониманию того, как оно работает и уж точно не даст возможности что-то там нетривиально исправить. Пример выше с Байкалом — а это не самый производительный процессор на сегодня — но уже с ним невозможно ничего сделать. Там даже при наличии документации и полного доступа к исходникам сложно понять, как, почему и зачем он работает. Потому что это процессор с внеочередным исполнением, с точными (ну, почти:) исключениями, внятным предсказанием ветвлений, не самым глупым модулем выборки-хранения и ещё кучей свистелок и перделок, которые никому, кроме разработчиков, не интересны. Точное знание о предсказателе ветвлений реверсерам принесёт только вред — там немало сил потрачено на правильную работу с неспекулятивными и некешированными режимами, и оно специфично для мипс (delay slots!) Сами же алгоритмы многократно описаны в книгах и статьях, и это вопрос разумного применения уже известного, а не сверхсекретных нанотехнологий и инноваций.


Ну и вот, к чему это я: ценность реверса, кмк, сильно преувеличена, а нетривиальные закладки и вовсе близки к ненаучной фантастике.

ценность реверса, кмк, сильно преувеличена
Так не процессорами едиными. В аналоговой схемотехнике удачные схемотехнические решения стоят огромных денег и при этом могут состоять из буквально десятков транзисторов.
Опять же, вскрытием и частичным реверсом, например, можно проверить тип предсказателя ветвлений в процессоре конкурентов, а то вдруг они давно уже нейросетями все делают, а вы до сих пор лаптем щи хлебаете. Или наоборот, пока вы делаете что-то очень замороченное, конкуренты вернулись к более простому решению, заставив его работать более эффективно.
Так что с одной стороны, я склонен согласиться с тем, что ценность реверс-инжиниринга часто преувеличивают (про опасность закладок даже начинать не хочется), но свое место под солнцем у него было, есть и будет.
Аналоговое — тысячу раз да. Вот тут было одно или два видео с аналоговым дизайном на >70ГГц:
https://www.youtube.com/user/TheSignalPathBlog

Причем, автор оговорился о том, что рассаказать может не всё.

Ну а с процессорами — да, интересно, конечно, что там у конкурентов. Но если у вас на руках готовый чип — вы уже опоздали минимум на три года.
Да и такое часто в Microprocessor Report открытым текстом пишут, за существенно меньшие деньги. А еще бывает, что у конкурентов все примитивнее и даже тупо хуже, но с лучшей техподдержкой, например :)
еще бывает, что у конкурентов все примитивнее и даже тупо хуже, но с лучшей техподдержкой, например
Это тоже бывает полезно понять, хотя лучше бы это понять подешевле, чем с помощью реверса)

Но если у вас на руках готовый чип — вы уже опоздали минимум на три года.
Для промышленной или, например, космической электроники это может быть вполне приемлемо. Существует огромное количество микросхем с жизненным циклом в 15-20 лет. И на них еще санкции бывают.
UFO just landed and posted this here
В основном я так понимаю это безопасность через неясность — для защиты коммерческих секретов обфускация может помогать, но мне интересно, можно ли как-то защитить данные на чипе с открытой схемой.
Ну вот персональный девайс для генерации и хранения ЭЦП, вот купил я его, может даже посмотрел в микроскоп (в теории, я не умею) — проверил что схема реализована, та, что в публичном доступе (только блок памяти невиден), как-то ему скомандовал — сгенери мне случайный ключ, он сгенерил и как-то сохранил, теперь я могу командовать — вот тебе данные, подпиши или зашифруй.
И главное что мне нужно знать, что никто не сможет прочитать мой закрытый ключ без вскрытия, а при вскрытии он сломается.
Есть ли хоть какое-то приближение решения этой задачи?
Так оно так и есть. Основные сертифицированные популярные алгоритмы шифрования, условно говоря, открыты (AES-256 и другие блочные шифры), вопрос в сохранности ключей, а не в том, что есть какие-то секреты в реализации шифрования и дешифрования. Если ваш девайс с ключом недоступен взломщику и ломается при попытке вскрытия, то дальше криптостойкость шифра известна.
Brak0del мой вопрос был, а как в принципе можно защитить ключ учитывая описанные методики? Запаять в металл в теории можно, от каких-то способов это защитит, но останется всякое послойное срезание.
Записать ключ в antifuse память например. Без подачи питания на чип ее практически невозможно прочитать, а с поданным питанием при попытке взлома память самоуничтожится.
antifuse тоже неплохо читаются, если стравить до одной обкладки емкости(ячейки) (само место прожига видеть не обязательно) и получить доступ к ней, то измерив импеданс однозначно можно сказать какое ячейка хранит в себе состояние. и при этом питание подавать не нужно. Прожжённая ячейка будет иметь активную часть в импедансе.(на сколько я знаю это возможно сделать сканирующим зондом туннельным микроскопом) если же получить физический доступ к 2м контактам — то дело ещё упрощается. (такая память имеет регулярную стуктуру и всегда есть возможность присоединиться к 2-3 линиям металлов.) да это сложно, но возможно.
В своё время я делал такие ячейки и такую память — она ничем не лучше с точки зрения безопасности.
Ого, круто. Мне никогда не приходилось работать с antifuse, и я был вынужден поверить рекламным обещаниям производителей. Получается, что зря. В их защиту могу сказать, что описанный метод с физическим доступом к каждой ячейке все еще существенно сложнее и дороже, чем для других вариантов памяти (хотя с чтением остаточного заряда во флэше вполне сравним).
Может попробовать физически неклонируемые функции?

ПыСы: Сорри, поторопился откомменить, недочитав.
Прощу прощения у OLEGator_by и worldmind :-)

worldmind, в случае крипты обычно делается защита периметра и в теории, если вы добрались до чипа (хотя бы вскрыли корпус), то там уже ничего не должно было остаться, т.е. ключ уничтожен и защищать больше нечего. Уничтожение ключа это тонкость, но в стандартах тоже упоминается, обычно процедура состоит в нескольких перезаписях ячеек памяти ключа различными значениями, чтобы не только стереть ключ, но и всякие наводки, по которым косвенно можно установить биты ключа.
Вот интресно как эту защиту сделать так, чтобы она хорошо работала даже приотсутствии питания?
Батарейка внутри корпуса, как в BIOS компьютера. Вы вскрываете корпус — память стирается с питанием от батарейки.
Т.е. надо как-то ускорить разряд батареи? Нагревание/охлаждение?
Разрядить батарейку можно на морозе, если вы знаете, что она есть. Капсулу с кислотой нельзя разрядить на морозе, но можно аккуратно слить кислоту через тонкое отверстие, если вы знаете, что кислота там есть.
Абсолютной защиты не существует. Существует время принятия мер при компрометации или потере ключа, которое должно быть меньше, чем время извлечения информации из ключа.
Абсолютной защиты не существует.

понятно, но очень хочется надеятся, что какое-то решение есть
Существует время принятия мер при компрометации или потере ключа, которое должно быть меньше, чем время извлечения информации из ключа.

в принципе да, хотя тут много частных «но».
понятно, но очень хочется надеятся, что какое-то решение есть
Нет, абсолютно устойчивого решения принципиально не существует, и попытки бесконечно близко к нему приблизиться бесплодны, потому что стоимость растет нелинейно.
Необходимо сначала задать обоснованные требования по безопасности, а потом их выполнить.
Есть, но внешний ключ должен быть больше, чем шифруемое сообщение. Что делает схему бессмысленной.
А кто даст гарантию что там нет защиты и на этот случай? Когда батарея разряжается, данные уничтожаются. Это же первым делом реализуется такая функция. Более того, можно для этих целей SRAM использовать. Правда иллюзий тут тоже нет — даже дубовая SRAM вполне способна держать своё состояние около 20 секунд без питания. Поэтому она тоже требует наличия механизма самоуничтожения, но для SRAM он реализуется гораааздо проще и отрабатывает быстрее — за десятки-сотни наносекунд.
Этот вариант мне уже нравится, хотя нужно надёжно детектировать момент когда батарея умирает, интересно, а всякие ядерные батарейки (0, 1, 2) для этих целей можно использовать?
Были какие-то ядерные батарейки, но они ток выдают что-то вроде 10нА, этого не хватит для целей. И стоимость батарейки порядка 10000$.

Детектировать — легко, нужен только сформированный транзистор на подложке с фиксированным порогом открытия. Но тут есть засада — если детектор будет один, его можно нейтрализовать однократным действием(уничтожив транзистор или перерезав шину с сигналом), заставляя думать схему что батарея в норме. Да впрочем как и любую систему самоуничтожения с единственной точкой принятия решения. Нужно несколько параллельных систем контролирующих состояние друг друга. А это может вылиться в большую частоту ложных срабатываний, понижающих надёжность функционирования чипа.
И это все тоже принципиально можно вскрыть, если приложить ещё больше усилий для вскрытия. И что угодно принципиально можно вскрыть, если приложить достаточно много усилий для вскрытия. Именно поэтому необходимо заранее задать чем-то обоснованный уровень защиты и обеспечить его, не пытаясь достичь недостижимого идеала.
В теории (по требованию законодательств многих стран, в т.ч. стран СНГ) криптографические девайсы должны пройти процедуру сертификации, где в частности экспертами исследуются исходники и сам девайс на подобные уязвимости и где проверяется соответствие девайса криптографическим и прочим стандартам (а они как раз определяют требования по секьюрности, см. например американский FIPS, он очень лаконичен и там вроде было и про ваш пример с ключом и затиранием при вскрытии).
Отличная статья, очень интересно читать!

А расскажите, пожалуйста, зачем на рис. 9 у площадок перемычки разная площадь\форма?
Возможно, там есть какой-то скрытый смысл (управление плотностью тока, чтобы пережигалось тлнчл в нужном месте), но наиболее вероятный ответ — «так вышло». Обычно фьюзы симметричные.
Кажется на канале EEVBlog было видео в котором на какой-то железке процессор физически разрушался при попытке снять радиатор, что думаете насчет такого варианта защиты? Видео к сожалению найти не могу так как смотрел очень давно.
Это вполне нормальный вариант, но подавляющее большинство микросхем не имеет радиатора, особенно это касается малопотребляющих микросхем для интернета вещей, смарт-карт и т.д. Впрочем, это не обязательно должен быть радиатор, можно взрывать процессор в случае вскрытия корпуса устройства, заливать его кислотой… все ограничено только фантазией и возможностями разработка. Но это все внешние по отношению к чипу вещи, поэтому они не являются темой этой статьи.
Эта тематика от меня очень далека, но сам собой возник вопрос: имеются ли системы компьютерного моделирования, решающие обратную задачу восстановление функционала микросхемы по её 3D топологии.
И таки да — спасибо автору за статью!
Да, такие САПР существуют, но их качество обычно далеко от САПР для проектирования, в силу несопоставимых финансовых возможностей разработчиков и их клиентов. То есть речь идёт об автоматизации ручного труда, а не об автоматической экстракции. Плюс нетривиальная часть задачи на самом деле состоит в получении качественного комплекта послойных фотографий (без перетравов, отвалившихся контактов и т.д.).
А по полному и безошибочному файлу с топологией электрическая схема прекрасно восстанавливается в штатных САПР для проектирования микросхем, там процедура сравнения восстановленной из топологии схемы с исходной — неотъемлемая часть верификации дизайна.
отличная статья, спасибо.
добавлю от себя 2 аспекта которые не раскрыты и не затронуты
1)Случай когда делается закладка не при производстве а при проектировании(вопрос взаимного доверия не обсуждается, по умолчанию все враги конкуренты).
Многие дизайн центры выполняют разработку для сторонних заказчиков, в том числе и военных. Так вот последние не могут внести изменения однако должны контролировать отсутствие закладок в конечном продукте. Необходимость проверки требуется на уровне приёмки. И вот в этом случае и необходим реверсинженеринг. Однако это не всегда исследование уже готовой микросхемы а скорей анализ топологии(которая далеко не всегда отдаётся с полной иерархией и описаним функционала). Вот тут уже и возникает проблема, не мог ли разработчик микросхемы(а иногда и IP блока) заложить закладку? Такого рода закладки существуют в в очень большом количестве микросхем, и многие разработчики( и я в том числе) такие закладки(скрытые возможности, не задокументированные режимы) делаю для ускорения тестирования и случае наличия ошибки — для выяснения местоположения и обхода ошибки. Так вот тут встаёт 2 противоположные задачи — конечного заказчика — найти если есть такого плана закладки(достаточно найти подозрительные места, а рассказывать зачем это нужно уже разработчик будет) и второе — задача разработчика спрятать так эти скрытые возможности чтоб не нашёл заказчик.
Это постоянная борьба «света и тьмы».
Отдельный вопорос — что делать в случае если реализована закладка которую невозможно обнаружить в файлах топологии, и которая проявит себя в реальной микросхеме.
2) есть такой метод защиты PUF функции которая довольно хорошо позволяет защитить микросхему от копирования и взлома. В данное время довольно интересная тема. Данный аспект не затронут.
> 2) есть такой метод защиты PUF функции которая довольно хорошо позволяет защитить микросхему от копирования и взлома.

о даже на хабре что-то было
На шестнадцатом рисунке весь чип в тестовых падах от таких «закладок». Но я не стал бы называть закладкой дополнительную тестовую функциональность, у нее же нет цели навредить потребителю чипа. Но вы правы в том, что в специальных применениях входной контроль нужен и существует, особенно в случае необходимости закупки IP-блоков у ненадежных поставщиков (но здесь вообще нужно замещать их на надёжных). Кроме того, входной контроль нужен просто для оценки надёжности (как в случае с процитированный в статье ответом о реверс-инжиниринге чипа Zilog).

Что касается PUF и много чего ещё — мне показалось, что это будет излишним для обзорной статьи базового уровня (а что-то — излишним для статьи, доступной в интернете). Этот текст и так очень длинный получился. Кроме того, я аналоговый разработчик, а не цифровой, и о многих вещах просто не могу компетентно написать. Так что, если вам есть, как раскрыть тему, я бы с огромным удовольствием почитал.
В МК есть средства защиты от чтения прошивки. Проконсультируйте пожалуйста как реализована данная защита, в частности для pic фирмы microchip (или других производителей), насколько она стойка.
Насколько я знаю, PIC вскрываются любые или почти любые, цена вопроса в пределах 1000 долларов.
Про то, как именно реализовано в новых моделях, не могу точно сказать, а как обстояло дело раньше, показано на последнем рисунке и в тексте над ним. Там же есть ссылка на подробную работу, где много внимания уделено PIC.
Спасибо, ясно. PIC12C508A весьма дремучая и обладает малым числом «ног»/памятью/и т.д.
Мне больше интересно с точки зрения защиты, как узнать модели из PIC которые не вскрываются (вы их назвали «почти любые»).
И такой вопрос, возможно повысить или усложнить вскрытие данной защиты «подножными методами и средствами»? У меня, например, был такой случай — в схеме на ноги, которые участвовали в подключении к программатору, было подано не штатное напряжение, после этого программатор не распознавал чип вообще, но при этом чип работал без потери функций, за исключением ног подключаемых к программатору.
По поводу нештатного напряжения —
Открою секрет — лет 15 назад обнаружил(не спрашивайте как) что у микросхемы 24FC65(64k I2C EEPROM)(сейчас уже не знаю работает такое, может уже новая ревизия вышла этих микросхем) есть backdor —
в этой схеме есть область памяти которую возможно защитить от записи. После установки бита защиты она доступна только на чтение. Однако!, если подать на один из входов адреса отрицательное напряжение величиной ниже порога транзистора, и подать секретную комбинацию, то микросхема начинает игнорировать бит защиты, и сам этот бит также возможно переписать.
И такая ситуация с многими микросхемами.
Я и сам в свои проекты такого рода пасхалки закладывал, только с намного более сложными комбинациями.

А компьютерная томография не используется для восстановление полной 3D структуры чипа? Кажется разрешения типа 6.6мкм должно хватать?

Разрешения типа 6.6 мкм при характерных размерах элементов 10-100 нм, конечно же, не хватает.
Да и полная 3D-структура в большинстве случаев не нужна, чипы же принципиально двухмерные, поэтому обычно для анализа можно их травить и фотографировать послойно.
Они двумерные, но имеют зачастую 32 слоя-этажа. Вместо травления можно сразу «снять» все слои… без риска перетравить какой-то и свести на смарку всю работу.
Так разве что структуру металлизации можно восстановить, и то не уверен что полностью. И рентгеновское излучение точно уничтожит хранящиеся данные на чипе, разрядив имеющиеся заряды в ячейках.
Отличная статья! Жалко, что столько ресурсов человечества тратятся на защиту от копирования, реверс-инженеринга и т.д.
UFO just landed and posted this here
Думаю, они слишком сложны для этого, и при этом имеют, как правило, хорошо документированную архитектуру. Более того, эту архитектуру можно просто купить (тот же ARM свободно лицензируется).
Более того, эту архитектуру можно просто купить (тот же ARM свободно лицензируется).
Не путайте архитектуру и микроархитектуру.
Защищать купленное ядро общего назначения действительно резонов немного, а вот какие-то критичные части системы или вещи, составляющие ноу-хау — вполне. Например, массово защищают шифровальные блоки (скажем, в чипах для всяких Smart TV). Самые передовые разработчики так и вовсе реализуют критичные ноу-хау во встроенных FPGA с защищенной неизвлекаемой прошивкой.
То же самое может касаться, скажем, предсказателя ветвлений с какой-то новой архитектурой (пример полностью выдуман).
Спасибо за статью!
Главный недостаток как оптического микроскопа, так и SEM

Частично решается тем, что в SEM есть EDX, а ещё есть связка FIB-TEM-EDX, а нормы для массового производства (всякие преобразователи, делители, а не ЦПУ Xeon) всё равно в районе 100-200 нм. Так что при серьёзном подходе и тип, и уровень легирования узнать можно.

Кстати, есть JTAG, который после тестирования отключается, нет?
при серьёзном подходе и тип, и уровень легирования узнать можно.
При действительно серьезном подходе почти все, сказанное в этой статье, неверно)

Кстати, есть JTAG, который после тестирования отключается, нет?
Конечно есть. Вопрос в том, как он отключается, и в том, нельзя ли его включить обратно. А то отрезать контроллер от кристалла — это одно, а записать бит EEPROM — другое.
Я все удивлялся, зачем кому-то частный ЭСМ в гараже, а оно вона чо…
Мимо проходил
sharps.org/wp-content/uploads/BECKER-CHES.pdf

One of the major concerns are Trojans inserted during manufacturing e.g. by an
untrusted foundry, but most of the published hardware Trojans are implemented
at the HDL level. In this paper, we will therefore focus on Trojans inserted into
designs at the layout level, after the place & route phase.
Американские генерады-параноики ничем не лучше российских и тоже прекрасно хавают рассказы про закладки. Статья — вода чистой воды, с картинками из того же источника, что мои 12-13 рисунок, и рассказывает исключительно о теоретической возможности, ничего не говоря о практической реализуемости. И, разумеется, не приводя никаких реальных примеров закладок.
с картинками из того же источника

Да, просто упомянутое средство защиты от реверса тут предлагается использовать для «нападения».

И, разумеется, не приводя никаких реальных примеров закладок.
Это студенческая работа. Какие уж тут закладки :)
Со средством для нападения проблема в том, чтобы, с одной стороны, сделать его активируемым по внешнему коду, с другой — не взаимодействующим с тестами. И это одновременно с тем, что оно должно не вызывать подозрений при анализе топологии. И быть разрабатываемым за считанные дни. В общем, все ещё идея, которая в сферическом вакууме интересна, а на практике ее реализовать невозможно.
Сделать что-то в процессоре общего назначения, что пролезет через тесты, не просто легко, а очень легко — коверейдж возможных состояний настолько мал, что на фабрике можно налепить что угодно, что пройдет инспекцию «визуальной» топологии. Собственно, поэтому дроч на всякие гнутые инициативы в стиле «запихни корбут вместо стоковой фирмвари в x86-тушку и будь единоличным владельцем своей пеки» остается дрочем, а не идет в массы. Если говорить об одноочередном однотредовом ядре без d/i кеша (или иной контролируемой неявно сущности, влияющей на execution flow), то покрытие можно осуществить софтом и тут да, можно говорить об отсутствии закладок. Интересы у вояк, впрочем, будут в основном в жирных плисах, которые, опять же, имеют так много стейтов, что ни в какое реальное время даже на физической железке их покрыть не выйдет, то есть переход, открывающийся хаммерингом по какой-то последовательности инструкций и меняющий privilege level, скорее суровая реальность, чем выдумка.
А вот здесь (осторожно, трафик!) — отчет от реверс-инжиниринге процессора Zilog Z80-CTC,

Этот документ о Z80-CTC (counter-timer-circuit), это счётчик-таймер. Это не процессор. Предлагаю поправить текст, чтобы не вводить в заблуждение.

Что то вспомнил. Когда СпН в авгане захватил ПЗРК Стингер, то при разборке, сработал механизм, в общем, потребовалось захватить ещё один экземпляр. Это я к тому, если устройство секретное, то может оснащать особо секретные узлы устройствами ликвидации, например пиротехническими шашками, лучше термитными. Можно конечно и БЧ подрывать, только это чревато. По этому оснащаем надёжными маломощными ликвидаторами секретных узлов. Конечно, это всё про военную технику. Хотя и гражданская техника тоже может.

Sign up to leave a comment.

Articles