Аппаратные трояны: теперь с допингом
Давным-давно ходили байки про шпионские модули в электронных микросхемах, специальные коды, приводившие электронику потенциального противника в негодность и прочие отголоски войны невидимого фронта. Те байки ушли, а проблема незащищённости железа осталась и подвергается глубочайшему изучению. Группа учёных из США, Швейцарии и Германии предложила особый вид аппаратных троянов, которые практически невозможно засечь ни визуально, ни с помощью тестов, ни за пределами лаборатории.
Becker, Regazzoni, Paar и Burleson исследовали возможность и последствия умышленного нарушения процесса легирования (doping), а именно изменения полярности допанта. По сути, меняется только маска легирования, даже количество расходуемых примесей может остаться таким же. Учёные считают, что подобное вмешательство незаметно даже при сканировании электронным микроскопом и сравнении с эталоном (не говоря о том, что эталон тоже может быть «атакован»).
В итоге получается дефектный транзистор, который может всегда иметь фиксированное напряжение на выходе или создавать ток утечки. В качестве примера, как подобная диверсия может повлиять на безопасность, учёные привели генератор случайных чисел в Intel-овском Ivy Bridge, в частности потому что и его дизайн, и способ тестирования есть в открытом доступе.
Генератор случайных чисел в Ivy Bridge хранит две 128-битных константы: ключ K и состояние C. В нормальном режиме работы эти константы обновляются довольно часто, но, привнеся небольшие изменения, можно добиться фиксированного значения ключа K и почти фиксированного значения C (это «почти» необходимо для прохождения внутренних и внешних тестов). Сложность «угадывания» значения C таким образом уменьшается до нужного числа бит; учёные считают, что 32-х достаточно для того, чтобы пройти внешний тест NIST. Поскольку случайное число генерируется с помощью AES шифрования состояния C ключом K, энтропия не страдает; цикличность также не наблюдается: состояние сидируется достаточно часто. Встроенный тест (Built-In Self-Test) проверяет контрольную сумму случайных чисел для заданных исходных параметров (изменения не затрагивают эту область) и энтропию, так что он тоже не замечает подлога и в то же время остаётся способным рапортовать ошибки.
Возможность создавать ток утечки была применена в другом примере для определения секретных ключей шифрованного канала при сохранении защищённости канала в целом. Справедливости ради, надо отметить, что пока образцов аппаратных троянов выявлено не было, но всё ещё впереди.