Введение в современную криптографию


Потенциальная временная атака



Pdf көрінісі
бет93/249
Дата14.06.2023
өлшемі6.4 Mb.
#475029
1   ...   89   90   91   92   93   94   95   96   ...   249
Криптография Катц

Потенциальная временная атака . Одна из проблем, которой еще не уделялось 
внимание, заключается возможности провести временную атаку на верификацию 
КАСа. Здесь действует противник, посылающий пары сообщений и тэгов получате-
лю, используя его таким образов как оракул, и узнает не только принимает ли полу-
чатель или отклоняет, но также и время, необходимое получателю для принятия этого 
решения. Мы показываем, что если такая атака возможна, то естественная имплемен-
тация верификации КАСов приведет к уязвимости, которую можно легко использо-
вать. Заметим, что в наших обычных определениях безопасности атакующий узнает 
только результат работы оракулов, к которым он имеет доступ, и ничего более. Опи-
сываемая здесь атака, которая является примером атаки на побочный канал, пока-
зывает, что некоторые реальные атаки не описываются обычными определениями.)
Более конкретно, рассмотрим КАС, исполь зующий каноническую верифика-
цию. Чтобы проверить тэг t для сообщения m, получатель вычисляет tr := Mack 
(m), а затем вычисляет tr to t, выдавая 1 тогда и только тогда, когда tr и t равны. Пред-
положим, что это сравнение производится стандартным образом (как strcmp в С), 
сравнивая t and tr по одному байту и давая отказ, как только найден первый нерав-
ный байт. Наблюдение состоит в том, что при таком подходе время, потраченное 
на отказ, может быть разным в зависимости от позиции первого неравного байта.


130
Эту с виду иррелевантную информацию можно использовать для подделки лю-
бого желаемого сообщения m. Основная идея такова: предположим, что атакую-
щий знает первые i байтов правильного тэга для m. (В начале i = 0.) Атакующий 
узнает следующий байт правильного тэга, послав получателю (m, t0), . . . , (m, t255), 
где tj — это последовательность первых i правильных байтов, (i + 1)-ый байт равен 
j (в шестнадцатеричной системе исчисления), а остальные байты заданы как 0x00. 
Все эти тэги, скорее всего, получат отказ (если нет, то атакующий все равно будет 
иметь успех). Однако, для ровно одного из этих тэгов первые (i + 1) байтов совпадут 
с правильным тэгом, и отказ займет немного больше времени, чем для других. Если 
тэг tj имел самое долгое вреся отказа, атакующий узнает, что (i + 1)-ый байт пра-
вильного тэга равен j. Таким образом, атакующий узнает каждый байт правильного 
тэга, испольщуя максимум 256 запросов к оракулу верификации. Для 16-байтного 
тэга такая атака потребует только 4096 запросов в худшем случае.
Можно засомневаться в том, что такая атака реалистична, так как она требует доступ 
к оракулу верификации, а также способность измерять разницу между во времени, за-
траченном на сравнение i и i + 1 байтов. В действительности, именно такие атаки были 
произведены на реальные системы! Один только пример: КАСы были использованы 
для проверки обновлений кода в Xbox 360, и использованная там имплементация ве-
рификации КАСов имела разницу во времени отказа 2,2 миллисекунды. Атакующие 
смогли воспользоваться этим и загрузить в оборудование пиратированные игры.
На основе вышеупомянутого, мы делаем вывод, что верификация КАСов должна 
использовать сравнение последовательностей, не зависимое от времени, кото-
рое всегда сравнивает все байты.


Достарыңызбен бөлісу:
1   ...   89   90   91   92   93   94   95   96   ...   249




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

    Басты бет