Pull to refresh

Comments 8

Буквально на днях в чатике обсуждали вопрос рандома в SRAM при подаче питания. Отдельные биты меняются каждый раз, но в целом - одни и те же символы. Программно PUF можно сделать вообще на всем что угодно - мы расуждали про эффекты на КР565РУ2 :) Правда надо где-то будет хранить ключ.

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

Производитель наоборот радостно потирает руки: гарантийные 2 года отработало, а дальше хоть трава не расти.
Отличная идея!

Интересно, а насколько сильно влияет на состояние памяти динамика процесса подачи питания?

Скажем, питание нарастает от нуля до номинала быстро, или не очень быстро, или по заданной кривой. Если эта зависимость сильна — то надо ещё учитывать старение источника питания. Сюда входит изменение ёмкости конденсаторов, особенно электролитов, которые сильно подвержены старению.

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

Если в системе есть аналоговая часть — то на её основе тоже можно делать защиту. Например, нелинейность АЦП или ЦАП; напряжение смещения операционных усилителей, время задержки прохождения сигнала и т.д. — все те эффекты, против которых инженеры обычно борются.
Не совсем понимаю, что мешает злоумышленникам сколоть чип, отсоединить SRAM от шины данных и считать ee начальное значение?
Во-первых, память размещена на одном кристалле с микроконтроллером, то есть лезть придётся внутрь чипа. Отсоединить от шины данных не получится; но, может быть, с помощью микрощупов можно подключиться и перебить сигналы. Ничто не мешает, конечно, но порог вхождения гораздо выше. Нужно иметь оснащение, как завод или институт микротехнологии.

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

Получится, лазером или пучком.

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

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

Задача не повторить а расшифровать прошивку на основе полученного ключа, насколько я понял.

По разделу "Пример работы алгоритма коррекции ошибок Fuzzy Extractor": не совсем понимаю, почему HelperData не является секретом? Ведь это копия SRAM PUF Response (с точностью до побитовой инверсии). А зная SRAM PUF Response, видимо, можно уже и Digital Fingerprint получить.

Вы правы, а в случае с Codeword из нулей — это уж совсем явная копия. Но это сильно упрощенный пример для понимания того, что в случае изменения SRAM PUF Response его можно будет восстановить.

В примере используется вырожденный случай — код n-кратного повторения. Предположительно в самой схеме используется достаточно длинный помехоустойчивый линейный код. А задача декодирования линейного кода в общем случае np-сложная.

Пример взят из документа за авторством Intrinsic ID (White Paper — The reliability of SRAM PUF). К сожалению, реальный алгоритм они не публиковали, и мы не нашли результатов анализа его стойкости. Что там внутри на самом деле — никто не знает :)
Sign up to leave a comment.