Коллектив Авторов - Цифровой журнал «Компьютерра» № 191
Наличие аппаратной закладки никак не определяется ни специально разработанными для этого встроенными тестами, ни при внешнем осмотре процессора. Как же такое могло произойти? Для ответа на этот вопрос необходимо вернуться к истории появления аппаратного ГПСЧ и ознакомиться с базовыми принципами его работы.
При создании криптографических систем требуется устранить возможность быстрого подбора ключей. Их длина и мера непредсказуемости непосредственно влияют на число вариантов, которые пришлось бы перебрать атакующей стороне. Длину можно задать прямо, а вот добиться уникальности вариантов ключей и их равной вероятности гораздо сложнее. Для этого во время создания ключей используют случайные числа.
В настоящее время принято считать, что за счёт только программных алгоритмов нельзя получить истинно случайный поток чисел с их равномерным хаотическим распределением по всему указанному множеству. Они всегда будут иметь большую частоту встречаемости в каких-то частях диапазона и оставаться до некоторой степени предсказуемыми. Поэтому большинство применяемых на практике генераторов чисел следует воспринимать как псевдослучайные. Они редко оказываются достаточно надёжными в криптографическом смысле.
Для снижения эффекта предсказуемости любому генератору чисел требуется надёжный источник случайного начального заполнения — 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 приступила к созданию самоуправляемого авто. И сделать работу обещает всего за три года. Но каким образом, если другие просят на то же самое чуть не десять лет? Есть одна тонкость…