Добрый день!
Атаки такого рода очень индивидуальны. Например, в Вашем процессоре внутренняя флеш-память. Теоретически, можно детальным анализом шины питания определить моменты чтения ПЗУ и побитно восстановить образ прошивки. А может удастся импульсом в нужный момент заставить процессор «думать», что защита от чтения не установлена, и считать всё программатором.
Здесь возникает вопрос, стоит ли результат затраченных усилий. Считать можно практически всё, вопрос времени и средств.
Да, снижение частоты позволит упростить атаку. Однако, при тактировании от внутреннего генератора МК такой подход становится невозможным. Также, если у МК есть времязависимая периферия, это может привести к нарушению обмена данными между ними. Поэтому такой подход не является универсальным решением, а более частным.
Мы не пробовали понижение частоты при SCA атаках, но это интересный вопрос который стоит проработать. По нашим наблюдениям, на уровень шума влияет номинал шунтирующего резистора. При увеличении резистора с 10 Ом до 24 Ом мы получили более «красивые» графики сигнатур.
Нам удавалось успешно проводить glitch-атаку при работе STM32 на 24 МГц. Конечно же все зависит от обвязки и многих других условий, но сформировать Vcc-glitch с 3,3 В до 1,7 В с длительностью около 25 нс вполне возможно. С аппаратной точки зрения — внутри ChipWhisperer стоит ПЛИС, которая имеет возможность выставлять параметры импульса с оценочным рассчитанным разрешением не хуже 0,1 нс
Цель glitch-атак — обойти какую-либо инструкцию МК, которая относится, например, к вводу пароля, запросу на доступ, проверке лицензионного соглашения, условию входа в сервисный режим и т.д. Все зависит от Ваших задач и исследуемых устройств.
К примеру, обойдя бит защиты прошивки, можно считать ее из МК, что позволит в дальнейшем и определить интересующие алгоритмы работы устройства (в том числе алгоритм проверки пароля), и внести вредоносный код в прошивку МК (в результате чего открывается возможность управления устройством).
Отличный комментарий! Вы абсолютно правы, здесь нарушается работа инструкции jmp. Мы решили опустить данные подробности в статье.
Особенности компиляции и аппаратуры конечно же влияют на параметры успешной glitch атаки. Но не обязательно тщательно рассчитывать все параметры glitch импульса, т.к. можно задать их автоматическое изменение в приблизительных диапазонах и ждать события, сигнализирующего об успешной атаке (например, сообщение о вводе верного пароля).
И как это всё поможет, если проставлен BODLEVEL и BODEN? :)
Не все, к сожалению, используют фичи безопасности МК (STM32, например, имеет Clock Security System (CSS) и PowerSupply integrity monitoring (POR/PDR/BOR/PVD)). Масочный загрузчик МК, о котором пойдет речь в следующей статье, эти механизмы не использует. В итоге VCC glitch отлично работает для обхода проверки запрета считывания основной прошивки. :)
У нас есть практический опыт обхода защиты bootloader некоторых МК при помощи Vcc-glitch.
Время подбора параметров для проведения такой атаки может составлять от нескольких часов до пары недель в зависимости от МК и разводки платы.
Атаки такого рода очень индивидуальны. Например, в Вашем процессоре внутренняя флеш-память. Теоретически, можно детальным анализом шины питания определить моменты чтения ПЗУ и побитно восстановить образ прошивки. А может удастся импульсом в нужный момент заставить процессор «думать», что защита от чтения не установлена, и считать всё программатором.
Здесь возникает вопрос, стоит ли результат затраченных усилий. Считать можно практически всё, вопрос времени и средств.
Мы не пробовали понижение частоты при SCA атаках, но это интересный вопрос который стоит проработать. По нашим наблюдениям, на уровень шума влияет номинал шунтирующего резистора. При увеличении резистора с 10 Ом до 24 Ом мы получили более «красивые» графики сигнатур.
К примеру, обойдя бит защиты прошивки, можно считать ее из МК, что позволит в дальнейшем и определить интересующие алгоритмы работы устройства (в том числе алгоритм проверки пароля), и внести вредоносный код в прошивку МК (в результате чего открывается возможность управления устройством).
Особенности компиляции и аппаратуры конечно же влияют на параметры успешной glitch атаки. Но не обязательно тщательно рассчитывать все параметры glitch импульса, т.к. можно задать их автоматическое изменение в приблизительных диапазонах и ждать события, сигнализирующего об успешной атаке (например, сообщение о вводе верного пароля).
Не все, к сожалению, используют фичи безопасности МК (STM32, например, имеет Clock Security System (CSS) и PowerSupply integrity monitoring (POR/PDR/BOR/PVD)). Масочный загрузчик МК, о котором пойдет речь в следующей статье, эти механизмы не использует. В итоге VCC glitch отлично работает для обхода проверки запрета считывания основной прошивки. :)
Время подбора параметров для проведения такой атаки может составлять от нескольких часов до пары недель в зависимости от МК и разводки платы.