В. Р. Гинзбург Перевод с английского



Pdf көрінісі
бет154/203
Дата26.09.2024
өлшемі2,74 Mb.
#145829
1   ...   150   151   152   153   154   155   156   157   ...   203
Байланысты:
практическая криптография


Глава 16. Проблемы реализации. Часть II
ках процедуры согласования по протоколу SSL сервер должен расшифровать
сообщение RSA, выбранное клиентом. Злоумышленник может подключиться
к серверу, попросить его расшифровать выбранное значение RSA и подо-
ждать ответа. Точное время, которое уйдет у сервера на расшифровку этого
значения, может снабдить злоумышленника ценной информацией. Зачастую
оказывается, что если конкретный бит ключа равен единице, то входные дан-
ные из множества
A
обрабатываются немного быстрее, чем входные данные
из множества
B
, а если этот бит ключа равен нулю, то скорость обработки
данных будет одинаковой. Злоумышленник может использовать это различие
для нападения на систему. Он генерирует миллионы запросов с входными
данными из множеств
A
и
B
и пытается найти статистическую разницу меж-
ду временем отклика сервера на запросы с данными первой и второй групп.
Существует множество других факторов, которые влияют на точное время
отклика, однако, используя достаточное количество запросов, это влияние
можно усреднить. В конце концов у злоумышленника наберется достаточ-
но данных, на основании которых он сможет понять, отличается ли время
отклика для множеств
A
и
B
. Это позволит получить один бит информации
о ключе, после чего злоумышленник сможет осуществить аналогичную атаку
на следующий бит ключа.
Описанная ситуация выглядит несколько неправдоподобно. Между тем
атаки такого рода были успешно проведены в лабораторных условиях, а зна-
чит, с тем же успехом могут применяться и на практике [55].
16.3.1
Меры предосторожности
Существует несколько способов защитить свою систему от тайминг-атак.
Наиболее очевидный из них — гарантировать, что время выполнения каждого
вычисления будет фиксированным. К сожалению, это требует особого подхо-
да к разработке всей библиотеки в целом. Еще печальнее то, что существуют
источники, влияющие на длительность операций, поведение которых практи-
чески не поддается контролю. Некоторые процессоры выполняют умножение
одних значений быстрее, чем других. Многие процессоры обладают сложны-
ми системами кэш-памяти, поэтому, если модель доступа к памяти зависит от
закрытых данных, время обращения к кэшу, а следовательно, время выпол-
нения операции также будет варьироваться. Избавить криптосистемы с от-
крытым ключом от всех нюансов, связанных со временем выполнения тех
или иных действий, практически невозможно. Поэтому нам нужны другие
решения.
Для борьбы с тайминг-атаками в конец каждого вычисления можно бы-
ло бы добавить случайную задержку. Это, однако, не устраняет разницу во
времени выполнения операции, а лишь искажает ее с помощью “шума”, вы-


16.3. Атаки с использованием побочных каналов
313
званного задержкой. Злоумышленник, у которого есть возможность прове-
сти большое количество измерений (например, добраться к вашей машине),
может усреднить полученные результаты и определить примерную величи-
ну случайной задержки. Точное количество попыток, необходимое злоумыш-
леннику для осуществления тайминг-атаки, зависит от порядка разницы во
времени выполнения, которую он стремится обнаружить, и порядка случай-
ной задержки, добавляемой в конец операции. В реальных системах всегда
присутствует множество шумов, поэтому злоумышленник, пытающийся осу-
ществить тайминг-атаку, все равно проводит усреднение результатов. Един-
ственным вопросом для злоумышленника остается отношение объема основ-
ного сигнала к объему шумов.
Еще один метод борьбы с тайминг-атаками — стандартизация времени вы-
полнения операции. В процессе разработки системы мы выбираем длитель-
ность
d
, которая превышает любое потенциальное время выполнения данного
вычисления. Затем мы замечаем момент времени
t
, в который было нача-
то вычисление, и выжидаем по окончании вычисления до момента времени
t
+
d
. Данная идея подразумевает несколько расточительное использование
системных ресурсов, но вообще-то она неплоха. Нам нравится это решение,
но оно защищает систему только от тайминг-атак в “чистом” виде. Если зло-
умышленник способен измерять выдаваемое компьютером радиоизлучение
или, скажем, потребление памяти, он, вероятно, сможет обнаружить задерж-
ку между фактическим окончанием вычисления и моментом времени
t
+
d
.
Это, в свою очередь, позволит злоумышленнику осуществлять тайминг-атаки
наравне с атаками других типов. Тем не менее для проведения атаки, осно-
ванной на измерении радиоизлучения, злоумышленник должен находиться
в непосредственной близости от атакуемой машины. Это значительно сокра-
щает вероятность угрозы по сравнению с тайминг-атаками, которые с успехом
можно осуществлять и через Internet.
Помимо всего прочего, для защиты от тайминг-атак можно применять
методы, основанные на использовании слепых подписей [55]. Такие методы
позволяют скрыть практически все различия во времени выполнения неко-
торых типов вычислений.
Идеального решения проблемы тайминг-атак не существует. Мы просто не
в состоянии защитить все продаваемые компьютеры от действительно изощ-
ренных атак, подобных основанным на измерении радиоизлучения. Тем не
менее, несмотря на невозможность создания идеального решения, мы можем
создать
хорошее
решение. Просто будьте предельно внимательны к времени
выполнения операций над открытым ключом. Существует и более удачное
решение. Оно состоит в том, чтобы сделать постоянным время выполнения
не только операций над открытым ключом, но и всей транзакции в целом.
Другими словами, нам следует зафиксировать не только время выполнения


314

Достарыңызбен бөлісу:
1   ...   150   151   152   153   154   155   156   157   ...   203




©emirsaba.org 2024
әкімшілігінің қараңыз

    Басты бет