Настоящая статья основана на работе "Initial
SRAM State as a Fingerprint and Source of True Random Numbers for RFID Tags"
,
написанной Деном Холкомбом. В ней
рассказывается о новом способе генерации
действительно случайных чисел и некоторых
интересных особенностях компьютерного
железа.

Идея использования мета-данных о
стабильности и тепловом шуме в
интегральных схемах не нова. На самом деле
она является основой многих популярных
алгоритмов генерации случайных чисел,
новое в предлагаемом подходе состоит в
технике сбора случайных чисел в памяти
компьютера — сильную случайность с
физической точки зрения можно получить, не
добавляя ни единого транзистора в
существующие схемы. К тому же, можно
получить и побочное преимущество —
определив энтропию, можно надежно и
достоверно определить каждое
индивидуальное устройство. 

Новая техника применима к большинству из
современных устройств — начиная от
настольных компьютеров и заканчивая
дешевыми RFID-метками. Причем, что
замечательно, некоторые устройства не
потребуют апргрейда, достаточно будет
только нового софта.

Как это работает?

Как известно, при выключении компьютера
его память теряет всю информацию. Но что
происходит с ней при включении? Ответ на
этот вопрос и принес идею нового генератора
— состояние каждого бита оперативной памяти
перед первой записью в ходе включения,
зависит в основном от того, как транзисторы
были отпечатаны в ходе производства. Все
биты можно разделить на три категории:

  1. изначально (почти всегда) 0
  2. изначально 0 или 1
  3. изначально (почти всегда) 1

Выполнив несколько циклов включения и
собрав определенную статистику о состоянии
банков памяти при включении, компьютер
может создать некий профиль, в котором можно
определить, какой из этих трех случаев
применим к каждому биту. Этот профиль может
служить отпечатком для устройства (fingerprint),
так как он уникален для каждого модуля
памяти. И в то же время, так как мы знаем, как
меняется каждый бит при сбросе питания, его
можно использовать для генерации по-настоящему случайного числа, а не псевдослучайного,
как происходит во множестве алгоритмов.
Алгоритм такой генерации можно найти в
документе, ссылка на который дана выше.

Таким образом, на основе SRAM можно легко
создать новую систему идентификации или
использовать память для генерации
случайных чисел. Это особенно важно для
максимально дешевых устройств — например,
тех же RFID-меток (сейчас идентификаторы
закладываются в метку на стадии
производства при помощи, например, EPROM или
EEPROM, что, соответственно, требует затрат на
производство, да и места на микросхеме для
размещения памяти). Используя описанный
метод, можно без дополнительных модулей и
дешево, практически не изменяя железную
часть, реализовать криптографические
алгоритмы для идентификации или
использовать полученные данные для
генерации действительно случайных чисел.

Оставить мнение

Check Also

Алмазный фонд «Хакера». Важные материалы по взлому за последние несколько лет

В прошлом выпуске мы сделали подборку по реверсингу и анализу malware-кода, которая в перв…