説明

携帯装置及び動的データの格納位置変更方法

【課題】機密データの解読の足掛かりとなる誤動作が生じるメモリセルを特定することが困難になるセキュリティデバイスを提供する。
【解決手段】本実施形態のICカード1は、コンピュータプログラムが動作してから生成する動的データを利用するプログラムコードのオペランドに、起動した際に乱数を用いて生成される所定範囲内のオフセット値を基準とする相対位置が記述され、動的データを格納する物理アドレスとして、動的データを格納するためにメモリに設定された作業領域の先頭アドレスに、オフセット値及記相対位置を加算した値を利用するように構成されている。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ICカードなどの携帯装置に対する攻撃法の一つであるレーザ攻撃に対する耐タンパー性を高めるための技術に関する。
【背景技術】
【0002】
近年、金融用途で利用されるICカードなど、機密データ(例えば、暗号鍵)を格納した携帯装置への攻撃法が数多く研究されている。
【0003】
携帯装置に対する攻撃法としては、電力消費量を観測することで、携帯装置に格納されたDESの秘密鍵を解読するDPA攻撃(Differential Power Analysis)が有名であるが、携帯装置に対する攻撃法はDPA攻撃に限らず、DPA攻撃以外の攻撃として、携帯装置に実装されたICチップにレーザを照射してICチップに誤動作を誘発し、この誤動作を足掛かりとして機密データを解読するレーザ攻撃がある。
【0004】
レーザ攻撃においては、レーザを照射したことによって、機密データの解読の足掛かりとなる誤動作が発生するメモリセルを特定し、特定したメモリセルにレーザを照射することが必要になるため、一つのメモリセルのサイズ程度の照射径のレーザが必要になるので、レーザ攻撃は理論的には可能であるが実効性は低く、レーザ攻撃の対策は不要と考えられていたが、近年、照射径の非常に小さいレーザが開発され、レーザの照射精度も向上したことに伴い、取り分けICカードの分野では、レーザ攻撃の対策が必要とされるようになった。
【0005】
レーザ攻撃に対する耐タンパー性を高める発明も既に開示され、レーザ攻撃に対する耐タンパー性を高める手法として、エラーコードを利用してデータの変化を検知する手法(例えば、特許文献1)、光の照射を検知可能なセンサ回路を用いてレーザの照射を検知する手法(例えば、特許文献2)などが開示されている。
【0006】
しかしながら、これらの発明は、レーザが照射されたことを検知することに主眼を置いた発明で、機密データの解読の足掛かりとなる誤動作が生じるメモリセルの特定を妨げることに主眼を置いた発明ではない。
【先行技術文献】
【特許文献】
【0007】
【特許文献1】特開2005-45760号公報
【特許文献2】特開2010-279003号公報
【発明の概要】
【発明が解決しようとする課題】
【0008】
そこで、本発明は、レーザ攻撃に対する耐タンパー性を高めるために、機密データの解読の足掛かりとなる誤動作が生じるメモリセルを特定することが困難になる携帯装置を提供することを目的とする。
【課題を解決するための手段】
【0009】
上述した課題を解決する第1の発明は、コンピュータプログラムが動作してから生成する動的データを利用するプログラムコードのオペランドにオフセット値を基準とする相対位置を記述しておき、前記動的データを格納する物理アドレスとして、前記動的データを格納するためにメモリに設定された作業領域の先頭アドレスに、起動した際に乱数を用いて生成した所定範囲内の前記オフセット値及び前記相対位置を加算した値を利用するように構成されていることを特徴とする携帯装置である。
【0010】
なお、第1の発明において携帯装置とは、半導体集積回路(ICチップ)が実装され、高いセキュリティが要求されるシステムで利用されるデバイスを意味し、具体的には、ICカード、USIMまたはUSBキーなどを意味する。
【0011】
更に、上述した課題を解決する第2の発明は、動的データの格納位置を変更する方法であって、携帯端末が起動した際、乱数を用いて所定範囲内のオフセット値を生成するステップ、前記携帯端末が、コンピュータプログラムが動作してから生成する動的データを格納する物理アドレスとして、前記動的データを格納するためにメモリに設定された作業領域の先頭アドレスに、前記動的データを利用するプログラムコードのオペランドに記載された相対位置及び前記オフセット値を加算した値を用いるステップを含むことを特徴とする、動的データの格納位置変更方法である。
【発明の効果】
【0012】
上述した本発明によれば、動的データを格納する物理アドレスとして、動的データを格納するためにメモリに設定された作業領域の先頭アドレスに、オフセット値及び相対位置を加算した値を利用するように構成することで、携帯装置が再起動される度に、動的データが格納される物理アドレスが変化することになり、機密データの解読の足掛かりとなる誤動作が生じるメモリセルを特定することが困難になる。
【図面の簡単な説明】
【0013】
【図1】本実施形態に係るICカードを説明する図。
【図2】動的データのアドレス指定を説明する図。
【図3】本発明の効果を説明する図。
【発明を実施するための形態】
【0014】
ここから,本発明の技術分野に係わる当業者が,発明の内容を理解し,発明を実施できる程度に説明する。なお、これから説明する実施形態は、本発明に係る携帯装置をICカードとした実施形態で,本発明の一実施形態にしか過ぎず、本発明は,これから説明する実施形態に限定されることなく、種々の変形や変更が可能である。
【0015】
図1は、本実施形態に係るICカード1を説明する図である。本実施形態に係るICカード1は接触型で、キャッシュカードやクレジットカードと同じ大きさのカード基材に、ICチップ2がモールドされたICモジュール1aが実装されている。
【0016】
なお、図1において、ICカード1を接触型として図示しているが、ICカード1は、図外の端末装置と無線通信する非接触ICカード、または、接触通信と無線通信の2つの通信機能を備えたデュアルインターフェースICカードであってもよい。
【0017】
加えて、ICカード1の形状は問わず、ICカード1はキャッシュカードと同じ形状でなく、ICモジュール1aの近辺を短冊状に切り取った形状をしているSIM(Subscriber Identity Module)或いはUSIM(Universal Subscriber Identity Module)であってもよい。
【0018】
図1に図示したように、ICカード1に実装されるICチップ2には、演算機能およびICチップ2の回路やメモリを制御する機能を備えた中央演算装置20(CPU:Central Processing Unit)、外部装置とのデータの入出力に利用されるI/O回路21、揮発性メモリであるランダムアクセスメモリ22(RAM:Random Access Memory)、読み出し専用の不揮発性メモリ23(ROM:Read Only Memory)、電気的に書換え可能な不揮発性メモリであるEEPROM24(EEPROM:Electrically Erasable Programmable Read-Only Memory)、DESの暗号演算に特化した回路であるコプロセッサ回路25、乱数を生成する回路であるRNG回路26(Random Number Generator)などが備えられ、CPU20とCPU20以外のメモリ及び回路はデータバス27及びアドレスバス28を介して接続されている。
【0019】
ICチップ2のROM23やEEPROM24には、ICカード1上で動作するコンピュータプログラムとして、オペレーティングシステムやアプリケーションが実装され、ICカード1を再起動させる動作であるリセットがなされ、オペレーティングシステムが起動すると、オペレーティングシステムは、オペレーティングシステムやアプリケーションが動作してから生成する動的データを格納する作業領域をICチップ2のメモリ(RAM22やEEPROM24)に設定した後、RNG回路26を利用して乱数を生成し、外乱数を利用して所定範囲内のオフセット値を生成する。
【0020】
一般的なICカードでは、作業領域内における動的データの格納位置は、コンピュータプログラムの設計段階で決定されるため、リセットしても作業領域内における動的データの格納位置は変わらないが、本実施形態のICカード1では、作業領域のサイズを実際に必要なサイズよりも大きくしておき、ICカード1がリセットされた際、所定範囲内のオフセット値を乱数により生成し、コンピュータプログラムが動作してから生成する動的データを格納する物理アドレスとして、作業領域の先頭アドレスにオフセット値及び相対位置を加算した値を利用するようにすることで、ICカード1がリセットされる毎に、動的データが格納される物理アドレスが変わるようにしている。
【0021】
図2は、動的データのアドレス指定を説明する図である。本実施形態において、動的データを利用するマシン語コードの構造は、動的データを処理する命令が記述されるオペコードと、ICカード1がリセットされる毎に生成されるオフセット値を基準としたときの相対位置が記述されるオペランドから構成され、動的データが格納される物理アドレスは、作業領域の先頭アドレスに、ICカード1がリセットされたときに生成したオフセット値及びオペランドに記述されている相対位置を加算した値になる。
【0022】
よって、ICカード1がリセットされた際に、オペレーティングシステムが、RNG回路26から取得した乱数を利用してオフセット値を生成するようにすれば、ICカード1がリセットされる度に、動的データが格納される物理アドレスが変化することになり、機密データの解読の足掛かりとなる誤動作が生じるメモリセルを特定することが困難になるため、レーザ攻撃に対する耐タンパー性を高めることができるようになる。
【0023】
なお、本実施形態において、オペレーティングシステムなどのコンピュータプログラムが動作してから生成する動的データを格納する作業領域の物理アドレスを変化するようにしているのは、動的データにPIN(Personal Identification Number)の照合結果など、ICカード1が誤動作を生じ易いデータが数多く含まれるからである。
【0024】
図3は、本発明の効果を説明する図である。図3において、作業領域のサイズを実際に必要なサイズ(ここでは、248バイト)よりも8バイトだけ大きくした256バイトとしており、ICカード1がリセットされる毎に乱数を利用して生成されるオフセット値の範囲は、作業領域のサイズの数値(ここでは、256)から実際に必要なサイズの数値(ここでは、246)を減算した値から「1」を減算した値(ここでは、7)以下の数値(ここでは、0〜7のいずれか)になる。なお、作業領域のサイズの数値から実際に必要なサイズの数値を減算した値から、更に、「1」を減算するのは、オフセット値が取り得る値に「0」を含めるためである。
【0025】
図3(a)は、ICカード1がリセットされる毎に乱数を利用して生成されたオフセット値を「0」としたときの図で、作業領域の先頭の物理アドレス(ここでは、0x0000)にオフセット値(ここでは、「0」)を加算した値は0x0000になるため、0x0000から動的データが格納されることになる。また、図3(a)では、0x0000から動的データが格納されることになるため、0x00F8から0x00FFまでには動的データは格納されない。
【0026】
図3(b)は、オフセット値を「2」としたときの図で、作業領域の先頭の物理アドレス(0x0000)にオフセット値(ここでは、「2」)を加算した値は0x0002になるため、0x0002から動的データが格納されることなる。また、図3(b)では、0x0002から動的データが格納されるため、0x0000及び0x0001、並びに、0x00FAから0x00FFまでには動的データは格納されない。
【0027】
例えば、図3(a)の状態で、0x0002がレーザ攻撃を受けたとしても、ICカードがリセットされることで、図3(b)の状態になると、図3(a)において、0x0002に格納されていた動的データは、図3(b)において、0x0004に格納されることになるため、攻撃者は同じメモリセルを何度も繰り返しても意味がなくなり、機密データの解読の足掛かりとなる誤動作が生じるメモリセルを特定することが困難になる。
【符号の説明】
【0028】
1 ICカード
2 ICチップ


【特許請求の範囲】
【請求項1】
コンピュータプログラムが動作してから生成する動的データを利用するプログラムコードのオペランドにオフセット値を基準とする相対位置を記述しておき、前記動的データを格納する物理アドレスとして、前記動的データを格納するためにメモリに設定された作業領域の先頭アドレスに、起動した際に乱数を用いて生成した所定範囲内の前記オフセット値及び前記相対位置を加算した値を利用するように構成されていることを特徴とする携帯装置。
【請求項2】
動的データの格納位置を変更する方法であって、携帯端末が起動した際、乱数を用いて所定範囲内のオフセット値を生成するステップ、前記携帯端末が、コンピュータプログラムが動作してから生成する動的データを格納する物理アドレスとして、前記動的データを格納するためにメモリに設定された作業領域の先頭アドレスに、前記動的データを利用するプログラムコードのオペランドに記載された相対位置及び前記オフセット値を加算した値を用いるステップを含むことを特徴とする、動的データの格納位置変更方法。


【図1】
image rotate

【図2】
image rotate

【図3】
image rotate