デバイスアドレスのランダム化による制御プログラム難読化方式の一提案
2
0
0
全文
(2) 情報処理学会第 75 回全国大会. 2.2. 入出力アドレスの変換方法 入出力アドレス変換の流れは、まず制御プログ ラムから入出力アドレスを一つ読み出し、変換テ ーブルを参照し、入出力アドレスを変換する。こ の入出力アドレスの変換処理を全ての入出力アド レスを変換し終えるまで繰り返す。 図2に入出力アドレスの変換例を示す。 SWITCH_INPUT_0のアドレス0x00は変換テーブル を 参 照 す る と 0x06 に な る 。 よ っ て 、 変 換 後 に SWITCH_INPUT_0を操作しようとするとアドレス 0x06の入出力を操作することになるので、実際に は、LED_OUTPUT_2を操作することになる。 次に、入出力アドレスの変換によるコードの変 換例を、図3のサンプルコードを用いて説明する。 入出力アドレス変換前のサンプルコードの動作は SWITCH_INPUT_0 が ON に な る と LED_OUTPUT_0 が ON に な り 、 SWITCH_INPUT_1 が ON に な る と LED_OUTPUT_1がONになる。入出力アドレス変換 後の制御プログラムの動作は前述の変換規則に従 うと、実際の入出力の動作は、LED_OUTPUT_2が ON に な る と LED_OUTPUT_1 が ON に な り 、 SWITCH_INPUT_3 が ON に な る と LED_OUTPUT_3 がONになる。このように、入出力アドレスの変換 により実行結果が変化する。 変換後. 変換前 入出力. アドレス. アドレス 入出力. SWITCH_INPUT_0. 0x00. 0x06. LED_OUTPUT_2. SWITCH_INPUT_1. 0x01. 0x03. SWITCH_INPUT_3. SWITCH_INPUT_2. 0x02. 0x04. LED_OUTPUT_0. SWITCH_INPUT_3. 0x03. 0. 1. 2. 3. 4. 5. 6. 7. 0x01. SWITCH_INPUT_1. LED_OUTPUT_0. 0x04. 6. 3. 4. 1. 5. 7. 0. 2. 0x05. LED_OUTPUT_1. LED_OUTPUT_1. 0x05. LED_OUTPUT_2 LED_OUTPUT_3. 変換テーブル. 0x07. LED_OUTPUT_3. 0x06. ※変換テーブルの0x0 0x00 は省略している。. SWITCH_INPUT_0. 0x07. 0x02. SWITCH_INPUT_2. 図 2 入出力アドレス変換の概要 変換前. 変換後の実際の動作. void main(void){ if( SWITCH_INPUT_0 == ON LED_OUTPUT_0 = ON ; } if( SWITCH_INPUT_1 == ON ){ LED_OUTPUT_1 = ON ; } return ; }. void main(void){ if( LED_OUTPUT_2 == ON ){ LED_OUTPUT_1 = ON; } if( SWITCH_INPUT_3 == ON ){ LED_OUTPUT_3 = ON; } return ; }. (1) 固有情報と付加情報を読み出して、変換テーブ ルを作成する。 (2) 変換テーブルを使用して、難読化したときと逆 の変換を行い、難読化を解除する。 (3) 難読化を解除した制御プログラムを実行する。 手順(1)で作成する変換テーブルは、難読化時と 同じ情報を使用して作成することにより、難読化 時に作成した変換テーブルと同一のものになるの で、正しく難読化を解除可能である。. 3.. 提案方式の効果 提案方式の効果として、以下が挙げられる。 (1) 制御プログラムの閲覧/編集の困難化 制御プログラムと周辺機器との入出力の関係は 制御プログラムの閲覧/編集を行うためには重要 な情報となる。よって、入出力アドレスの入れ替 えにより、攻撃者が制御プログラムを取得しても、 その閲覧/編集は困難になる。 (2) 制御プログラムの模倣品製造の防止 固有情報の異なる組込み機器や、正規の組込み 機器(難読化の解除ができるファームウェアを搭 載した組込み機器)以外の組込み機器で制御プロ グラムを動作させた場合は、難読化を正しく解除 できず、正常動作できないため、模倣品の製造を 防止できる。 (3) 難読化方式の解析の困難化 タイムスタンプなどの付加情報を使用すること で変換テーブルにランダム性を持たせており、同 じ制御プログラムを同じ組込み機器と対応付けて 難読化した際にも、異なる難読化結果を得ること ができるので、難読化方式の解析が困難になる。 (4) 他の難読化方式との組み合わせ可能化 難読化した制御プログラムは制御プログラムと して妥当なものとして扱えるので、本方式を既存 の難読化方式と組み合わせて使用して制御プログ ラムを保護することも可能である。本方式を既存 の難読化方式と組み合わせて使用することで、模 倣品の製造を防止しながら、本方式のみを適用し た場合よりも不正な閲覧/編集を困難にすること が可能である。. 図 3 サンプルコード. 4.. 2.3. 難読化した制御プログラムの実行方法 組込み機器は制御プログラムを実行する際、制 御プログラムの難読化を解除してから実行する。 難読化の解除には、固有情報と付加情報が必要に なる。固有情報は、難読化時に組込み機器から読 み出した情報なので、組込み機器内で読み出すこ とができる。しかし、付加情報は難読化時に作成 した情報なので、難読化した制御プログラムを組 込み機器に送信する際に、一緒に送信しておく必 要がある。制御プログラム実行時の手順は以下の 通りである。. 終わりに 本稿では、制御プログラムの不正な閲覧/編集 を困難にし、模倣品の製造を防止する方式の一つ として、組込み機器の固有情報と関連付けて、入 出力アドレスをランダム化する難読化方式につい て提案した。 今後は、提案方式の実装及び評価を進めていく。 参考文献 [1] 門田暁人, C.Thomborson , “ソフトウェアプロテ クションの技術動向(前編)”, 情報処理, Vol46, No.4, pp.431-437, Apr. 2005.. 3-512. Copyright 2013 Information Processing Society of Japan. All Rights Reserved..
(3)
関連したドキュメント
横断歩行者の信号無視者数を減少することを目的 とした信号制御方式の検討を行った。信号制御方式
(1)電線共同溝の整備手法については、浅層埋設方式や小型ボックス活用埋設方式等について検討が行わ れてきており、
第一の方法は、不安の原因を特定した上で、それを制御しようとするもので
算処理の効率化のliM点において従来よりも優れたモデリング手法について提案した.lMil9f
この節では mKdV 方程式を興味の中心に据えて,mKdV 方程式によって統制されるような平面曲線の連 続朗変形,半離散 mKdV
LLVM から Haskell への変換は、各 LLVM 命令をそれと 同等な処理を行う Haskell のプログラムに変換することに より、実現される。
研究計画書(様式 2)の項目 27~29 の内容に沿って、個人情報や提供されたデータの「①利用 目的」
方式で 45 ~ 55 %、積上げ方式で 35 ~ 45% 又は純費用方式で 35 ~ 45 %)の選択制 (※一部例外を除く)