White box криптография 03

WHITE BOX CRYPTO

White-box криптографией называют программную реализацию шифра, в которой все промежуточные результаты случайным образом закодированы, но при этом результат шифрования идентичен результату работы обычного незащищенного шифра. Свое название white-box криптография получила в противовес black-box (или модели черного ящика), так как злоумышленник может записывать и изменять любые данные программы как до, так и во время её работы. Из-за дополнительной кодировки, маскирующей все операции, злоумышленнику сложно вычислить ключ или получить важные данные.

Идеальная white-box реализация блочного алгоритма может быть представлена в виде таблицы, элементы которой являются криптограммами всех исходных текстов, зашифрованных одним ключом. Любой пользователь может получить результат шифрования, не зная секретный ключ, просто взяв элемент из таблицы, соответствующий своему исходному тексту. В случае идеальной реализации шифра AES-128 такая таблица содержала бы 2128 элементов, что нереализуемо, поэтому на практике white-box реализации используют другие подходы, например, таблицы гораздо меньших размеров.

White-box криптография используется там, где невозможно использовать аппаратные шифры, включая мобильные приложения (системы клиент-банк, медиаплейры), системы связи (Host Card Emulation) и т.д. Программные реализации шифров дешевле аппаратных реализаций, они могут быть легко изменены, позволяют пользоваться одними и теми же приложениями на разных, в том числе недорогих, устройствах.

Может показаться, что стойкость и надежность white-box криптографии определяется стойкостью и надежностью самого шифра. К сожалению, это не так. White-box реализации уязвимы для атак по второстепенным каналам, атак методами индуцированных сбоев, а также для различных видов математического анализа. Самое большое отличие от аппаратных решений в том, что злоумышленнику не требуется дорогое оборудование для создания вычислительных ошибок или сбора данных по каналам утечки.

Демонстрация указанных выше атак может быть выполнена на примере программы, созданной Wyseur Brecht, и доступной на сайте www.whiteboxcrypto.com. На Рисунке 1 показаны адреса памяти, к которым обращается программа во время ее работы. По оси X отложен порядковый номер инструкции, которая использует доступ к памяти (1 соответствует первой инструкции, запросившей память на чтение или запись). По оси Y отложен адрес, к которому обращается инструкция. Красным показаны запросы на чтение, а зеленым – на запись. Структура алгоритма легко угадывается: начальное преобразование IP, все раунды алгоритма DES, завершающее преобразование FP.

Во время работы алгоритма также записывается содержимое памяти, то есть закодированные промежуточные результаты. Нами разработаны методы, которые позволяют получить секретный ключ алгоритма с помощью данных, записанных во время работы лишь 30 шифрований! Эти методы основаны на статистических свойствах алгоритма DES, то есть нами строится вероятностная модель и затем проверяется ее корректность.  

www.cybears.ru