TGViewer
Crypto Offensive Crypto Offensive @cryptooffensive · 1.2K subscribers
Post #32 1.31K
#cryptography

Неразличимая обфускация кода - следующая крутая тема в криптографии.

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

Однако, в 2013 году вышла бумага https://eprint.iacr.org/2013/451 об успешном создании неразличимого обфускатора. Представьте, что есть две различные программы A и B, которые выдают один и тот же результат. Обфускатор O генерирует программы X=O(A) и Y=O(B). O является неразличимым обфускатором, если имея программы X и Y невозможно различить, какая из них получена из A, а какая из B.

Пускай программа A содержит в себе пароль, рассчитывает и выдает хеш пароля, а программа B содержит только готовый хеш и выдает его. Прогнав A и B через неразличимый обфускатор O, мы получаем программы O(A) и O(B).
Можно ли (за адекватное время) вытащить пароль из O(A)? Пойдем от противного - допустим, что мы можем извлечь пароль из O(A), но тогда в силу свойства неразличимости мы также можем извлечь пароль из O(B). Но ни в B ни тем более в O(B) никогда и не было пароля, а только его хеш. А значит допущение неверно, и из O(A) невозможно вытащить пароль.

Это открывает огромные возможности! Представьте, что private переменная в solidity в полном смысле является private, то есть ее невозможно прочесть из блокчейна. Мы сможем создавать обфусцированные смарт-контракты, которые содержат конфиденциальную информацию, такую как приватные ключи от других блокчейнов (что позволит строить trustless-мосты), данные для доступа к фиатным банковским счетам или даже SSH-ключи для доступа к серверам. Для взаимодействия с внешней средой больше не нужны будут подходы с мультисигами, имеющие огромную дыру в виде необходимости доверия к держателям ключей. Посредники останутся нужны только для пересылки сетевых пакетов во внешний мир, но никак не смогут вмешаться в процессы аутентификации.

P.S. на сегодняшний день это далеко от готовности к коммерческому применению. Имеющиеся техники превращают короткие простые программы в гигантские громоздкие полотна
More from @cryptooffensive
  1. Aug 6, 2022#hack #GenomesDAO Взломан GenomesDAO - https://genomes.io/ - DAO сервиса монетизации генет…
  2. May 18, 2022#hack #fegtoken И ещё пара разборов того же инцидента: https://twitter.com/IvoElenchev/sta…
  3. May 18, 2022https://twitter.com/smartstatetech/status/1526610831986683904?s=21 - разбор
  4. May 15, 2022#hack #fegtoken Взломаны смарт-контракты экосистемы FEG (FegToken) - https://fegtoken.com/…
  5. Apr 30, 2022#hack #saddle #fuse Два крупных взлома за день: 1) Saddle Finance взломан на $10 миллионов…
  6. Apr 28, 2022#hack #deusdao #defi Взломан сервис DeFi-деривативов DeusDao. Атака осуществлена в сети Fa…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →