Upload
stas-fomin
View
814
Download
2
Embed Size (px)
Citation preview
Теоретические аспекты проблемы обфускациипрограмм
Н.П. Варновский, В.А. Захаров, Н.Н. Кузюрин, А.В. Шокуров
Институт системного программирования РАН ,ф-т ВМиК и ИПИБ МГУ им. М.В. Ломоносова
10 октября 2008 г.
1 / 22
ОБФУСКАЦИЯ ПРОГРАММ
Обфускация — эквивалентные преобразования программ длязатруднения:
понимания программ;извлечения полезной информации содержащейся в программе:
I алгоритмов;I структур данных;I секретных ключей;
. . .
2 / 22
История исследований
1976 Первое упоминание:Diffie W., Hellman M.
”New directions in cryptography“, 1976.
1997 Первая научная статья:Collberg C., Thomborson C., Low D.
”A taxonomy of obfuscating transformations“, 1997.
2001 Первая математическая постановка задачи:Barak B., Goldreich O., Impagliazzo R., Rudich S., Sahai A.,Vedhan S., Yang K.
”On the (Im)possibility of obfuscating programs“, 2001.
3 / 22
Обфускация: модель «черного ящика»
Вероятностный алгоритм O называется обфускатором, стойким вмодели «черного ящика», если
1 (функциональность) π ≈ O(π) для любой программы π;2 (полиномиальное замедление) существует полином p(·), такой что
∀π : |O(π)| ≤ p(|π|), time(O(π)) ≤ p(time(π));
3 (стойкость) Для любой PPT A (противника ) существует PPT S(симулятор ) и пренебрежимо малая функция ν, такие что, длялюбой машины Тьюринга π:
|Pr{A(O(π))=1} − Pr{Sπ(1|π|)=1}| ≤ ν(|π|)
Barak B., Goldreich O., Impagliazzo R., Rudich S., Sahai A., Vedhan S.,Yang K.
”On the (Im)possibility of obfuscating programs“, 2001.
4 / 22
Обфускация: новые модели и определения
2003 обфускация предикатов:Захаров В.А., Варновский Н.П.;
2004 обфускация в модели «серого ящика»:Варновский Н.П.
2004 обфускация алгоритмов:Варновский Н.П.
2004 защита констант (ключей):Варновский Н.П.;Hofheinz D., Malobe-Lee J., Stam M. 2007.
2005 обфускация с дополнительным входом:Goldwasser S., Tauman Kalai Y.T.
2007 наилучшая возможная обфускация:Goldwasser S., Rothblum G.N.
5 / 22
ОТРИЦАТЕЛЬНЫЕ РЕЗУЛЬТАТЫ
2001 Не существует обфускаторов, стойких в модели«черного ящика».Barak B., Goldreich O., Impagliazzo R., et al., 2001;
2004 Не существует обфускаторов, стойких в модели«серого ящика», если существуют односторонниефункции.Варновский Н.П., 2004;
2005 Не существует обфускаторов с дополнительнымвходом.Goldwasser S., Tauman Kalai Y.T., 2005;
2007 Не существует наилучшей возможной обфускации длясемейства 3-CNF формул, если полиномиальная иерархияне вырождается на втором уровне (т. е. Σp
2 6= Σp3).
Goldwasser S., Rothblum G.N., 2007.
6 / 22
ПОЛОЖИТЕЛЬНЫЕ РЕЗУЛЬТАТЫ
«Обфускация точечных функций »Canetti R. 1997; Захаров В.А., Варновский Н.П., 2003; Lynn B.,Prabhakaran M., Sahai A. 2004, Wee H. 2005, Canetti R.,Dakdouk R. 2008.«Обфускация POBDD и конечных автоматов »Кузюрин Н.П., Шокуров А.А. и др., 2007; Goldwasser, S.,Rothblum G., 2007.«Обфускация программ решифрования »Hohenberger S., Rothblum G. N., Shelat A., Vaikuntanathan V., 2007.«Обфускация программ перемешивания шифртекстов »B. Adida, D. Wikstrom, 2005.«Обфускация баз данных »Narayanan A., Shmatikov V., 2005.
7 / 22
ПОЛОЖИТЕЛЬНЫЕ РЕЗУЛЬТАТЫ
ОпределениеТочечной называется функция fa,b : {0, 1}n → {0, 1}n, a, b ∈ {0, 1}n,удовлетворяющая условию
fa,b(x) =
{b, если x = a,0n, если x 6= a.
Рассмотрим семейство точечных функций Fn = {fu,v : u, v ∈ {0, 1}n} ипредикат πa,b(f ) = (f ≡ fa,b).
Если существуют односторонние перестановки, то предикат πa,b,определенный на семействе программ, вычисляющих точечныефункции Fn, имеет стойкую обфускацию.
8 / 22
ПОЛОЖИТЕЛЬНЫЕ РЕЗУЛЬТАТЫ
ТеоремаСуществует обфускатор, стойко защищающий алгоритмы,представленные детерминированными конечными автоматамиили OBDD полиномиального размера.
Кузюрин Н.Н., Шокуров А.В., Варновский Н.П., Захаров В.А.,ISC 2007;Goldwasser, S., Rothblum G., TCC 2007.
9 / 22
Наилучшая возможная обфускация
Вероятностный алгоритм O называется наилучшим возможнымобфускатором, если он удовлетворяет следующим требованиям:
1 (функциональность)2 (полиномиальное замедление)3 (стойкость) Для любой PPT A (противника) существует PPT S
(симулятор) такие что для любой пары эквивалентных булевыхсхем (программ) M и M ′ одинакового размера распределения
Pr{A[O(M)]} и Pr{S [M ′]}
вычислительно неотличимы.
10 / 22
Модели обфускации: взаимосвязь
?
«Черный ящик»
«Серый ящик» Best Possible
«Защита алгоритмов»
«Неотличимость»
«. . . с дополнительным входом»
11 / 22
Обфускация с разделением программы
Блок A Блок B
ПРОГРАММА
-
�
Блок А : вычисляется на защищенном устройстве небольшойвычислительной мощности (смарт-карта, процессор с малым объемомпамяти и др.)
Блок B : вычисляется на открытом высокопроизводительномвычислительном устройстве.
Goldreich O., 1985; Ostrovsky R., 2005; Anderson W.E., 2008.
12 / 22
Секретная часть
(Оракул R)
Открытая часть
(Программа O(M))
ЭЛЕКТРОННАЯ СХЕМА (конечный автомат)
-
�
Обфускация с оракулом [Anderson W.E., 2008]Вероятностный алгоритм O и оракул R образуют обфускаторсемейства программ F , если:
1 (функциональность) π ≈ OR(π) для любой π из F ;2 (полиномиальное замедление)3 (стойкость) Для любой PPT A (противника) существует PPT S
(симулятор) и пренебрежимо малая функция ν, такие что
|Pr[AR(OR(π))]=1} − Pr[Sπ(1n)=1]| ≤ ν(n)
для любой программы π размера n.
13 / 22
Обфускация с разделением программы
Шифратор Ex
Дешифратор Dx
Схема вычисления O(π, x)
над зашифрованными данными
Вычисление над зашифрованными данными
-
�
Теорема. [Sander, Tchudin, 1998; Шокуров А.В., 2004. ]Существует обфускатор O ациклических алгебраических программ, всистемы вычислений над зашифрованными данными со следующимисвойствами:
1 преобразование программы A в схему вычислений(Ex ;O(A, x); Dx) корректно и эффективно;
2 size(O(A, x)) = poly(size(A));3 для любой схемы вычислений B с n входами существует не менее
2O(n) пар (A, x), удовлетворяющих условию B = O(A, x).14 / 22
Новые приложения обфускацииПовторное шифрование
Re-encryption R- -mK = E(m,K) mK′ = E(m,K′)
Программа повторного шифрования принимает на вход шифр mK
сообщения m, зашифрованного при помощи ключа K , и вычисляетшифр mR того же сообщения m, зашифрованного при помощи другогоключа R .
[Hohenberger S., Rothblum G. N., Shelat A., Vaikuntanathan V.,2007]Для некоторых криптосистем с открытым ключом существуютпрограммы повторного шифрования, для которых можно построитьобфускацию, стойкую в среднем в модели «черного ящика».
15 / 22
Новые приложения обфускацииПеремешивание шифртекстов
-
-
-
-
C′=C⊗Mπ
c1
c2
c3
cn
-
-
-
-
-
-
-
-
E
x1
x2
x3
xn
-
-
-
-
c ′i1
c ′i2
c ′i3
c ′in
-
-
-
-
-
-
-
-
D
xi1
xi2
xi3
xin
Обфускация программы предусматривает использованиекриптосистемы (K ,G ,E ,D), гомоморфной относительно сложения иоднократного умножения, т. е.:
Ek(x1, r1)⊕ Ek(x2, r2) = Ek(x1 + x2, ϕ(r1, r2)),Ek(x1, r1)⊗ Ek(x2, r2) = Ek(x1 × x2, ψ(r1, r2)).
16 / 22
Новые приложения обфускацииПеремешивание шифртекстов
-
-
-
-
C′=C⊗Mπ
c1
c2
c3
cn
-
-
-
-
-
-
-
-
E
x1
x2
x3
xn
-
-
-
-
c ′i1
c ′i2
c ′i3
c ′in
-
-
-
-
-
-
-
-
D
xi1
xi2
xi3
xin
Теорема 1. [B. Adida, D. Wikstrom, 2005]Если криптосистема (K ,G ,E ,D) является семантически стойкой, тообфускированная программа
C′=C⊗Mπ
является стойкой относительно угрозы различения пары перестановкиπ′, π′′.
17 / 22
Новые приложения обфускацииПеремешивание шифртекстов
-
-
-
-
C′=C⊗Mπ
c1
c2
c3
cn
-
-
-
-
-
-
-
-
E
x1
x2
x3
xn
-
-
-
-
c ′i1
c ′i2
c ′i3
c ′in
-
-
-
-
-
-
-
-
D
xi1
xi2
xi3
xin
Теорема 2. [B. Adida, D. Wikstrom, 2005]Существует протокол с нулевым разглашением для доказательствакорректности обфускированной программы перестановки шифртекстов
C′=C⊗Mπ.
18 / 22
Новые приложения обфускации
Другие приложенияOstrovsky R., Skeith W., 2005.Применение обфускации с разделением программ для скрытногоэффективного выбора текстов из потока данных по заданномунабору ключевых слов. В основу обфускации положеносемантически стойкая гомоморфная криптосистема.Narayanan A., Shmatikov V., 2005Обфускация баз данных для ограничения доступа к атрибутамданных. В основу обфускации положена стойкая в моделислучайного оракула обфускация точечных функций.
19 / 22
Новые приложения обфускации
Обфускация компьютерных вирусовИспользование алгебраических моделей программ дляклассификации компьютерных вирусов
Н.П. Варновский, В.А. Захаров, Р.И. Подловченко, В.С. Щербина, Н.Н.Кузюрин, А.В. Шокуров, О применении методов деобфускациипрограмм для обнаружения сложных компьютерных вирусов, ИзвестияТРТУ, №7, 2006.
20 / 22
Враг не дремлет: методы обфускации полиморфных компьютерныхвирусов постоянно совершенствуются.
Trojan.Win32.Obfuscated.ev: use polymorphic tactics to self-mutate,disable security software, modify system files, and install additionalmalware. Last updated on Jun 24 2008 .
[www.viruslist.com]
21 / 22
СПАСИБО ЗА ВНИМАНИЕ.
ВАШИ ВОПРОСЫ?
22 / 22