Комментарии 30
для сравнения: когда я учился в захудалом местечковом политехническом "универе" и самое крутое что было - это Турбо Паскаль, мой товарищ учился в НГУ, они собирали/паяли платы, программировали МК, перешивали ПЗУ японской техники и много чего другого (в общаге вообще все сами себе собирали Спектрумы всех видов и модификаций). Так что образование у всех очень разное и на разном уровне.
физические атаки (не понял что это такое)
Это когда например криптопроцессор заставляют неправильно считать, нарушая работу тактового генератора или посылая глитчи по питанию, а также когда вмешиваются в структуру или работу чипа волшебными лучами (сфокусированным ионным пучком и т.д.)
В целом, это класс атак с непосредственным доступом к чипу.
Вот это подборочка! Спасибо
Спасибо за подборку!
"Side channel attack" это Spectre же ?
А вообще, клёво у вас там в Сан Франциско, на любую саму безумную идею находится потребитель и инвестор.
Фото полезнее текста.
например появление Synopsys на рубеже 1980-1990-х привело к появлению iPhone в середине 2000-х
Довольно смелое утверждение, учитывая, что существуют Cadence и Mentor.
Логический синтез на уровне регистровых передач вывел на рынок Synopsys (logic synthesis / register transfer level - RTL). Cadence и Mentor был в нем не первыми, хотя они изобрели другие важные технологии (в симуляции, физической верификации итд).
Без RTL синтеза никаких айфонов конечно же не было бы - миллиарды транзисторов на чипе тыкая мышкой в экран задизайнить нереально.
Вот нагуглил ссылку про историю:
The notions of logic synthesis can be traced back to the early 1970s and work conducted at IBM called Logic Synthesis System (LSS). This was a rule-based transformation system. These looked for patterns in a design and the rule would perform a transformation on that part of the design in order to improve it. Trimeter had a commercial example of this type of system.
Another early development was MacPitts, developed at MIT. MacPitts took system descriptions as input and produced full custom nMOS layouts as output. It was initially commercialized by MetaLogic, but failed to have any success. MIT also licensed the technology to GTE Labs which became the basis for the SILC silicon compiler.
MacPitts and other similar systems were based on algorithmic transformations. These systems basically had two parts, first a technology independent step that made transformations of higher level concepts into Boolean logic and then a second technology mapping phase where the choices of gates or other library elements was made. Algorithmic systems included MIS, BOLD, Silc, AT&T and several other University efforts.
Synopsys (SOCRATES) had a system (originally developed with GE) that was basically a merge of the two approaches. The front end for transformational and the back end had rule based optimization. Synopsys was the first licensee of the Verilog language from Gateway Design Automation (acquired by Cadence who later made Verilog an open language through Accellera and IEEE standardization processes).
Since that time, Synopsys has dominated the logic synthesis market for ASICs, although other tools from Synplicity (acquired by Synopsys) and Exemplar (acquired by Mentor) had success in the FPGA market
As implementation geometries shrank, delays associated with wires grew while gate delays shrank. This created a problem for logic synthesis because timing assumed that gate delays dominated. Wire delays only became known after place and route, which was much further down in the implementation process. Around 90nm, logic synthesis had to become back-end aware. This was not only for timing issues, but required things such as buffer insertion, cell sizing and power reduction techniques, and many other areas where the layout and the design could not be fully separated. This became known as physical synthesis.
Я еще когда студентом на кафедре электроники МИФИ был в середине-конце 80-х, там сплошные разговоры про кремниевый компилятор были. Так что идеи витали в воздухе. Если не Synopsys, так кто-нибудь другой это всё на рынок вывел бы.
То, что называли кремниевыми компиляторами в начале 1980-х (например http://caltechconf.library.caltech.edu/184/1/DaveJohannsen.pdf имело слабое отношение к тому, что сделал Synopsys в конце 1980-х.
Вообще в этих делах очень трудно держать правильный баланс между возможным и полезным. Например многие исследователи пытали сделать кремний прямо из алгоритма (высокоуровневый синтез) - что не является решенной задачи и сейчас, 40 лет спустя. А вот уровень регистровых передач, который синтезировал Synopsys, был в самый раз: с одной стороны, как синтезировать кучу always-блоков, в каждом из которых все умещается в такт - довольно понятно, хотя сделать это хорошо непросто. С другой стороны, это радикально повышает производительность труда проектировщика, даже если ему приходится самому придумывать микроархитектуру - как разложить алгоритм в конвейеры, очереди и конечные автоматы.
Я это к тому, что вполне возможно, что без Synopsys исследователи возились бы с попытками более сложного высокоуровневого синтеза еще много лет, а проектировщики продолжали бы делать много вручную, на уровне gates. Такая альтернативная история 1990-х имхо вполне возможна.
Лампочки можно придумать многими способами, а вот с повышением производительности труда проектировщика очень легко скатиться в ситуацию, когда замах большой, а выход непрактичен. См. комменты выше https://habr.com/ru/post/686602/comments/#comment_24706454
Альтернативы были и во время Синопсиса, но они были или слишком легковесные, или наоборот, скатывались вот в то, что я описал выше. В любом случае, если бы не было Синопсиса и выросло бы что-нибудь другое, то это что-нибудь тоже в качестве первой выставки, где это показать, скорее всего выбрало бы DAC. Ибо такая была мода в 1980-1990-е когда происходили эти события.
<quote>про аппаратные трояны в микросхемах и платах (а в России говорят "закладок не бывает!")</quote>
говорят что не бывает закладок добавленных на фабе, в данных постерах их тоже нет
С фабом все понятно - так как у заказчика производства (проектировщика системы на кристалле) есть на руках сгенерированный им GDSII файл, то он теоретически может вскрыть микросхему, сфотографировать ее электронным микроскопом и написать программку, которая сравнивает фотографию с GDSII файлом. Поэтому фаб вряд-ли будет пытаться вставлять закладки - после первого обнаружения бизнес фаба накрывается.
Моя фраза "а в России говорят "закладок не бывает!"" относится скорее не к инженерам, а ко всяким журналистам общественных СМИ и подобным типам, которые ссылаются на обсуждения закладок как на дремучую паранойю по отношению к светлому Западу. Верилога и GDSII файла эти товарищи конечно в жизни не видели и не знают, что добавить труднонаходимую закладку во время проектирования совершенно реально.
У нас видимо разное семплирование журналистов, в моей выборке это ребята ратующие за "собственное производство" т.к. TSMC пришлет зловредный чип.
С PCB все ясно- приделать какой-нибудь чип вообще не проблема, однако статья на полном серьёзе предполагает что завод пришлет с сюрпризом. Сама работа интересная, но для бизнеса это такое же самоубийство что и с фабом.
С FPGA как по мне это софтовая атака, хотя конечно специфика делает её весьма интересной.
Закладка в IP блоке - да, возможно и не тривиально для анализа, но практичность весьма под сомнением. Опять таки обнаружение такой закладки хорошенечко ударит по бизнесу, так что я не думаю что кто-нибудь такое осилит.
*** Закладка в IP блоке - да, возможно и не тривиально для анализа, но практичность весьма под сомнением. ***
Как практикующий проектировщик IP-блоков для ASIC-ов я даже готов провести летний лагерь для молодежи по изготовлению закладок в процессоры. Взять открытое RISC-V ядро и с ним химичить. Я об этом писал:
https://skillbox.ru/media/business/interview-yuri-panchul/
— А почему так важно обеспечить критическую инфраструктуру отечественными процессорами? В них действительно могут быть спрятаны «закладки»?
— Отрицать техническую возможность создания таких «закладок» может только человек, который никогда не видел исходный код процессора на языке описания аппаратуры и не имеет представления о маршруте проектирования микросхем. Например, можно спроектировать небольшой блок внутри процессора — конечный автомат, который будет отслеживать данные в регистрах общего назначения или буферах при записи в кэш. При попадании туда байтов ключевой фразы — например, из текста полученного электронного письма — блок может останавливать процессор.
Такой аппаратный блок принципиально нельзя увидеть программными средствами, его не сможет найти никакой антивирус. Шифрование не поможет, потому что на регистры или строки кэша всё придёт в уже расшифрованном виде. Можно ли сфотографировать слои чипа электронным микроскопом и вручную искать несколько тысяч вредоносных транзисторов среди миллиарда других? Это поиск иглы в стоге сена без магнита.
Конечно, можно надеяться, что производители процессоров не будут таким заниматься. Но службы безопасности принимают в расчёт только технические возможности, а не субъективное доверие к тем или иным компаниям. И не только службы безопасности. Вполне возможно, что интерес «Росатома» к МЦСТ частично объясняется тем, что RTL «Эльбруса» написан в России.
*** Опять таки обнаружение такой закладки хорошенечко ударит по бизнесу, так что я не думаю что кто-нибудь такое осилит. ***
Прежде всего, пассивные закладки уже есть. Как по-вашему, обнаруживают, что RTL каких-нибудь ядер в сделанных далеко на востоке системах на кристалле не спионерен? Например по недокументированным результатам исполнения определенной последовательности команд. Каждая из которых сохраняет некое невидимое программисту состояние.
Прежде всего, пассивные закладки уже есть.
Ну вы же понимаете, что имелись ввиду вредоносные действия, а не защита интеллектуальной собственности. Я уж не говорю о том, что при необходимости провести аудит IP блоков вполне возможно, и для этого не надо сидеть с электронным микроскопом.
службы безопасности принимают в расчёт только технические возможности, а не субъективное доверие к тем или иным
Ну и состояли бы они из одного человека коли так.
RTL «Эльбруса» написан в России
Ну и Британский GPU в виде IP блока.
Из статьи https://habr.com/ru/post/664740/
UPD2: Пояснения от эльбрусовцев, конкретно от Максима Горшенина:
1. Да, в Эльбрус-2С3 3D-ядра компании Imagination (был выбор из множества, в том числе и ARM, Vivante, etc.)
2. 2D и дисплейный контроллер МЦСТ использует собственной разработки в процах со встроенной графикой (Эльбрус-1С+, Эльбрус-2С3, МЦСТ R2000+), а не покупные.
3. Выдумки про «шлейф от курсора» всего лишь выдумки и предположения.
4. В Эльбрус-1С+ и МЦСТ R2000+ 3D-ускорение от компании Vivante, Эльбрус-2С3 один проц с ядрами компании Imaginarion
P.S. Предусмотрено в процессорах от МЦСТ отключение подачи питания на покупные 3D-ядра. И тогда будет работать только 2D-ядро с видеоускорением, написанное и созданное компанией МЦСТ, что позволяет продолжить работу проца и выводом видеоизображения, но с отключенным 3D-ускорением.
Покупные 3D-ядра работают и взаимодействуют со всем остальным только через дисплейный контроллер собственной разработки МЦСТ. Получается что-то вроде «забора» вокруг покупных ядер. Сделано для безопасности и ограничения влияния/эксплуатации вероятных недокументированных возможностей в покупных ядрах.
2 постера — о вычислениях в памяти (in memory computing). Не разобрался, что это такое, но это тоже привязывается к нейросетям.Это когда для того, чтобы сделать MAC-операцию, вместо умножения и сложения нулей и единичек большим количеством логических вентилей, берут ячейку флэш-памяти (или ReRAM, непринципиально) и умножают аналоговое входное напряжение на проводимость (transconductance) ячейки, а полученные токи потом суммируют между собой, просто соединяя выходы ячеек памяти вместе. Получается очень большая экономия места и электричества, если вас устраивает ограниченная точность умножения, обусловленная тем, насколько вы можете менять проводимость ячейки памяти (обычно речь идет про 4-5 бит).
MAC-операция — ключевой компонент умножения матриц и, соответственно, ключевая операция, необходимая для обсчета нейросеток.
Ни фига себе. Ну вот наконец-то увидел внятное объяснение. А то мне еще ректор Иннополиса Тормасов про это говорил и я не понимал о чем это. Спасибо!
главное общая идея — обрабатывать данные там, где они лежат, а не гонять их через тридцать три шины и двадцать пять кешей
То, о чем вы говорите, это не IN-memory computing, a NEAR-memory computing, сходное, но отличающееся и, скажем грубо, более общее понятие. В IN-memory computing - обязательно, чтобы сама ячейка памяти являлась вычислительным элементом.
Energy harvesting это когда устройство работает не на батарейках/от сети, а на собранной из окружающей среды энергии - энергии солнца, энергии волн в ISM диапазоне, энергии волн в океане и прочих. На постере люди переживают, что раз питание устройства может пропасть в любой момент в силу переменчивости окружающей среды, то нужен алгоритм обновления прошивки устройства, который это учитывает.
Чем интересуется западная молодежь (в микроэлектронике)