題名 | 隠蔽効果の高いプログラム断片作成のためのプログラムの特徴に関する考察 |
著者 | *姫田 健生, 樋上 喜信, 小林 真也 (愛媛大学大学院理工学研究科) |
Page | pp. 1905 - 1908 |
Keyword | プログラムの特徴, 処理目的の隠蔽, セキュリティ, グリッドコンピューティング, 断片化 |
Abstract | 分散コンピュータ環境では、それに属するすべてのコンピュータ資源が有効に使われているとは限らない。その中には、低負荷なコンピュータが多数存在している場合がある。実行したいプログラムを複数所持している場合、その低負荷なコンピュータの資源を利用できるシステムが構築されれば、複数のプログラムを同時実行できるので、1台のコンピュータで実行するよりも全体として早く処理を終えることが可能となる。しかし、プログラムを他のコンピュータで扱うので、プログラム中の情報を不正に解析され、悪用される恐れがある。このため、機密情報や個人情報などを扱ったプログラムを扱う場合、信頼性が保障されたコンピュータのみでシステムを構築しなければならないという制約がある。この制約を解消するためにプログラムを保護する方法を考えなければならない。
プログラムを保護する手法には暗号化や難読化などがある。暗号化はプログラムの一部またはすべてを暗号化することにより、解析を困難にするが、実行するためには一度復号化しなければならないので、その過程で解析される恐れがある。難読化は、処理を複雑にすることによってプログラムを読みにくくし、解析を困難にする手法であるが、解析される可能性は残る。そこで、これらとは別の方法として、我々の研究室では処理目的の隠蔽法を提案している。
処理目的の隠蔽法では、信頼できるコンピュータを少なくとも一つ用意する。そして、その信頼できるコンピュータ上で、実行したいプログラムを1つ、または複数用意し、それらのプログラムを分割し、細かくインタリーブすることで断片を生成する。さらに生成された断片の中にダミーコードを挿入する。各断片は複数のコンピュータに送付され、送付された断片は先行制約を守りながら処理を行う。このとき入出力データの受け渡しは信頼できるコンピュータで行う。また、ダミー断片を用いたり、生成された断片の一部を信頼できるコンピュータで実行させる。これらの操作によって、解析者による断片の解析を困難にし、また複数の解析者が共謀し、多くの断片を手に入れたとしても断片の解析は困難になる。
処理目的の隠蔽法において隠蔽効果の高いプログラム断片の作成をするには、解析者がプログラム断片からどのような情報を得るかを知ることが重要となる。一方、解析者はプログラムの特徴を元に様々な情報を得ることができる可能性がある。本稿ではプログラムの特徴としてプログラム全体での行数と変数の数、プログラム断片でのプログラム全体に対する行数の割合と変数の数の割合に注目し、それらを統計的に測定し、プログラム断片の行数、変数の数からプログラム全体の行数、変数の数をどの程度の精度で推測可能か検証を行った。
プログラム断片の特徴として、一つの元となるプログラムから切り取った断片の行数が増えるほど、含まれる変数の数は増加傾向にあるが、行数が増えるほど増加は緩やかになるという特徴がある。また、プログラム全体の特徴として、行数が増えると含まれる変数の数が増えるという特徴がある。これらの特徴を元に、それぞれの関係を近似相関関数で表すことによって、プログラム断片の行数と変数の数からプログラム全体の行数と変数の数を計算で求めることができる。しかし、計算で求められた値と実際のプログラム全体の行数と変数の数には誤差が生じる。真の値がこの誤差の範囲におさまる確率を示すことによって、推測がどの程度の精度であるかを示す。 |