Top | 研究室紹介 | メンバー紹介 | アクティビティ | 学会投稿案内 | リンク | English


    ”動的解析に対して耐タンパ性を持った難読化手法の研究”


    
    従来,ソフトウェアの知的財産権を保護する手段として,様々な難読化手法が
    提案されてきた.しかしながら,その多くは,プログラムを実行しないで
    行われる静的解析に対する耐タンパ性のみ言及していたり,理論的な根拠を
    持たなかったりするといった問題点を持っていた.それゆえ本研究では,Javaを
    対象として,動的解析に対して耐タンパ性を持つ新たな難読化手法を提案する.
    提案手法の大きな利点は,計算量理論に基づきその安全性に一定の理論的な
    根拠を与えられるという点である.
    
    本研究で提案する難読化手法は,動的解析がテストケースに対する解析しか
    行えない点に着目している.これは,動的解析が実行経路の複雑なプログラム,
    プログラムの実行経路が外部入力に依存するようなプログラムの解析には
    不向きであることを意味している.そこで,同じテストケースに対しても,
    複数の異なる実行系列を持つ難読化手法を提案した.
    
    さらに本研究では,マルチスレッドにも着目した.
    マルチスレッドは一般に用いられるプログラムに多く利用されており,かつ乱数
    的な性質を保有し,スレッドの動きを完全に予測することは不可能である.
    この特徴を利用して,動的解析に強い難読化手法を提案した.
    
    また,理論面については,プログラムがif文や外部からの入力を持つとき,
    あるブール変数が真となるような実行経路が存在するかどうかを判定する
    問題はNP-Hardであることを示し,難読化プログラムの解析の困難さの
    根拠とした.
    
    本研究では,提案手法を実装し,動的解析,静的解析による評価を行った.
    その結果,提案手法を適用した後のプログラムが,動的解析に対してより
    困難なものとなっていることが示された.
    また静的解析に対する耐タンパ性は損なわれておらず,また実行時間やプロ
    グラムサイズなどのパフォーマンスの低下はそれほど見られなかった.
    
    


    【戻る】