Comments 8
Буквально на днях в чатике обсуждали вопрос рандома в SRAM при подаче питания. Отдельные биты меняются каждый раз, но в целом - одни и те же символы. Программно PUF можно сделать вообще на всем что угодно - мы расуждали про эффекты на КР565РУ2 :) Правда надо где-то будет хранить ключ.
Технология интересная, но вопрос старения и устойчивости ко внешним воздействиям все портит.. т.е. устройство может в теории отказать в любой момент времени просто потому что не принимает ОЗУ из-за выхода температуры кристалла за какие-то пределы. В итоге вместо того чтобы защищать прошивку от копирования, производитель легального устройства сам себя ставит в опасное положение.
Интересно, а насколько сильно влияет на состояние памяти динамика процесса подачи питания?
Скажем, питание нарастает от нуля до номинала быстро, или не очень быстро, или по заданной кривой. Если эта зависимость сильна — то надо ещё учитывать старение источника питания. Сюда входит изменение ёмкости конденсаторов, особенно электролитов, которые сильно подвержены старению.
К старению, думаю, можно как-то подстроиться. Скажем, если данные медленно дрейфуют — то производить замену секретных ключей время от времени, опираясь на пока ещё действующий старый ключ.
Если в системе есть аналоговая часть — то на её основе тоже можно делать защиту. Например, нелинейность АЦП или ЦАП; напряжение смещения операционных усилителей, время задержки прохождения сигнала и т.д. — все те эффекты, против которых инженеры обычно борются.
И даже, если считать свойства конкретного блока памяти — то их нельзя повторить на другом кристалле. Из-за технологического разброса даже разные чипы с одной пластины будут иметь различное начальное содержимое при включении.
Отсоединить от шины данных не получится
Получится, лазером или пучком.
Так а в статье предполагается что до этого злоумышленники получали доступ к фьюзам как раз подобным методом, не?
И даже, если считать свойства конкретного блока памяти — то их нельзя повторить на другом кристалле.
Задача не повторить а расшифровать прошивку на основе полученного ключа, насколько я понял.
По разделу "Пример работы алгоритма коррекции ошибок Fuzzy Extractor": не совсем понимаю, почему HelperData не является секретом? Ведь это копия SRAM PUF Response (с точностью до побитовой инверсии). А зная SRAM PUF Response, видимо, можно уже и Digital Fingerprint получить.
В примере используется вырожденный случай — код n-кратного повторения. Предположительно в самой схеме используется достаточно длинный помехоустойчивый линейный код. А задача декодирования линейного кода в общем случае np-сложная.
Пример взят из документа за авторством Intrinsic ID (White Paper — The reliability of SRAM PUF). К сожалению, реальный алгоритм они не публиковали, и мы не нашли результатов анализа его стойкости. Что там внутри на самом деле — никто не знает :)
Защита секретов с помощью технологии SRAM PUF