Наличие аппаратной закладки никак не определяется ни специально разработанными для этого встроенными тестами, ни при внешнем осмотре процессора. Как же такое могло произойти? Для ответа на этот вопрос необходимо вернуться к истории появления аппаратного ГПСЧ и ознакомиться с базовыми принципами его работы.
При создании криптографических систем требуется устранить возможность быстрого подбора ключей. Их длина и мера непредсказуемости непосредственно влияют на число вариантов, которые пришлось бы перебрать атакующей стороне. Длину можно задать прямо, а вот добиться уникальности вариантов ключей и их равной вероятности гораздо сложнее. Для этого во время создания ключей используют случайные числа.
В настоящее время принято считать, что за счёт только программных алгоритмов нельзя получить истинно случайный поток чисел с их равномерным хаотическим распределением по всему указанному множеству. Они всегда будут иметь большую частоту встречаемости в каких-то частях диапазона и оставаться до некоторой степени предсказуемыми. Поэтому большинство применяемых на практике генераторов чисел следует воспринимать как псевдослучайные. Они редко оказываются достаточно надёжными в криптографическом смысле.
Для снижения эффекта предсказуемости любому генератору чисел требуется надёжный источник случайного начального заполнения — random seed. Обычно в качестве него используются результаты измерений каких-то хаотических физических процессов. Например, флуктуации интенсивности световых колебаний или регистрация радиочастотного шума. Такой элемент случайности (да и весь аппаратный ГПСЧ) было бы технически удобно использовать в компактном варианте, а в идеале — сделать встроенным.
Компания Intel встраивает генераторы (псевдо)случайных чисел в свои чипы начиная с конца девяностых. Раньше их природа была аналоговой. Случайные значения на выходе получались за счёт влияния трудно прогнозируемых физических процессов — тепловых шумов и электромагнитных помех. Аналоговые генераторы было сравнительно просто реализовать в виде отдельных блоков, но трудно интегрировать в новые схемы. По мере уменьшения технологического процесса требовались новые и длительные этапы калибровки. К тому же закономерное снижение напряжение питания ухудшало соотношение сигнал/шум в таких системах. ГПСЧ работали постоянно и потребляли значительное количество энергии, а скорость их работы оставляла желать лучшего. Эти недостатки накладывали ограничения на возможные сферы применения.
Идея генератора (псевдо)случайных чисел с полностью цифровой природой долгое время казалась странной, если не абсурдной. Ведь состояние любой цифровой схемы всегда жёстко детерминировано и предсказуемо. Как внести в неё необходимый элемент случайности, если нет аналоговых компонентов?
Попытки получить желанный хаос на базе только цифровых элементов предпринимались инженерами Intel с 2008 года и увенчались успехом через пару лет изысканий. Работа была представлена в 2010 году на летнем симпозиуме VLSI в Гонолулу и произвела маленькую революцию в современной криптографии. Впервые полностью цифровой, быстрый и энергоэффективный ГПСЧ был реализован в серийно выпускаемых процессорах общего назначения.
Процессор Сore i7-3770K архитектуры Ivy Bridge со встроенным генератором (псевдо)случайных чисел (фото: thg.ru).
Его первое рабочее название было Bull Mountain. Затем его переименовали в Secure Key. Этот криптографический блок состоит из трёх базовых модулей. Первый генерирует поток случайных битов с относительно медленной скоростью — 3 Гбит/с. Второй оценивает их дисперсию и объединяет в блоки по 256 бит, которые используются как источники случайного начального заполнения. После ряда математических процедур в третьем блоке с более высокой скоростью генерируется поток случайных чисел длиной 128 бит. На их основе с помощью новой инструкции RdRand при необходимости создаются и помещаются в специально отведённый регистр случайные числа требуемой длины: 16, 32 или 64 бита, которые в итоге и передаются запросившей их программе.
Ошибки в генераторах (псевдо)случайных чисел и их злонамеренные модификации стали причиной утраты доверия к популярным криптографическим продуктам и самой процедуре их сертификации.
По причине исключительной важности ГПСЧ для любой криптографической системы в Secure Key были встроены тесты для проверки качества генерируемых случайных чисел, а для сертификации привлекли ведущие экспертные группы. Весь блок соответствует критериям стандартов ANSI X9.82 и NIST SP 800-90. Вдобавок он сертифицирован на уровень 2 в соответствии с требованиями NIST FIPS 140-2.
Как мы увидим дальше, ни ответственный подход при разработке, ни расширенная сертификация не защитили криптографический блок от реальной возможности скрытой и недетектируемой модификации.
До сих пор большинство работ об аппаратных троянах носило гипотетический характер. Исследователями предлагались добавочные конструкции из небольших логических цепей, которые следовало каким-то образом добавить в существующие чипы. Например, Сэмюэл Талмадж Кинг (Samuel Talmadge King) с соавторами представил на конференции LEET-08 вариант такого аппаратного трояна для центрального процессора, который предоставлял бы полный контроль над системой удалённому атакующему. Просто отправив сконфигурированный определённым образом UDP-пакет, можно было бы сделать любые изменения на таком компьютере и получить неограниченный доступ к его памяти. Однако дополнительные логические цепи сравнительно просто определить при микроскопии, не говоря уже о специализированных методах поиска таких модификаций. Группа Беккера пошла другим путём:
Вместо того чтобы подключать к чипу дополнительную схему, мы внедрили наши закладки аппаратного уровня, просто изменив работу некоторых уже имеющихся в нём микротранзисторов. После ряда попыток нам удалось выборочно изменить полярность допанта и внести желаемые модификации в работу всего криптографического блока. Поэтому наше семейство троянов оказалось стойко к большинству методов обнаружения, включая сканирующую микроскопию и сравнение с эталонными чипами».
Преобразователь состоит из p- и n-канального МОП-транзисторов (вверху и внизу рисунка соответственно), соединённых стоками через металлический слой (а). Троян внедряется путём выборочного изменения полярности допанта p-канального МОП-транзистора. Вывод на положительном контакте (VDD) оказывается постоянным и не зависит от исходных случайных чисел (изображение: Georg T. Becker et al.).
В результате проделанной работы вместо уникальных чисел длиной 128 бит третий блок Secure Key стал накапливать последовательности, в которых различались только 32 бита. Создаваемые на основе таких псевдослучайных чисел криптографические ключи обладают очень высокой предсказуемостью и могут быть вскрыты в течение нескольких минут на обычном домашнем компьютере.
Лежащее в основе аппаратной закладки выборочное изменение удельной электрической проводимости было реализовано в двух вариантах:
цифровая пост-обработка сигналов от Intel Secure Key;
Последний метод более универсален и может применяться с небольшими изменениями на других чипах.
Возможность использовать встроенный ГПСЧ через инструкцию RdRand впервые появилась в процессорах Intel архитектуры Ivy Bridge. Компания Intel написала подробные руководства для программистов. В них рассказано о методах оптимальной реализации криптографических алгоритмов и даётся ссылка на описание принципов работы Secure Key. Долгое время усилия экспертов по безопасности были направлены на поиск уязвимостей в программной части. Пожалуй, впервые скрытое вмешательство на аппаратном уровне оказалось куда более опасной и вполне реализуемой на практике технологией.
К оглавлению
Робокар в три года! Элон Маск взялся за постройку самоуправляемого авто
Евгений Золотов
Опубликовано 19 сентября 2013
До вчерашнего дня на вопрос, сколько отнимет создание практически пригодного робокара — автомобиля, способного рулить самостоятельно (то, что в английском называется self-driving car), — стандартным ответом было: семь лет! В лучше случаем к 2020-му аналитики надеются увидеть робокары на том же месте в авторейтингах, где сегодня обитают гибриды, то есть уже не экзотика, но ещё и не ширпотреб. Производители на этот счёт всё больше отмалчиваются: многие только к 2020-му надеются выпустить первые самоуправляемые модели.
Так вот, вам будет приятно узнать, что буквально за последние сутки срок сократился больше чем вдвое. В «гонку» включился новый участник, известный как своей нетерпеливостью, так и столь же впечатляющими успехами на поприще высоких технологий. На его счету орбитальный грузовик, масштабная сеть персональных солнечных электростанций, первый коммерчески успешный массовый электромобиль — в общем, в представлении он не нуждается. Вчера Элон Маск официально подтвердил, что Tesla Motors приступила к созданию самоуправляемого авто. И сделать работу обещает всего за три года. Но каким образом, если другие просят на то же самое чуть не десять лет? Есть одна тонкость…