説明

情報処理装置

【課題】ウィルス対策プログラムを用いても除去できずに起動してしまう不正なプログラムによる不正行為を防止する。
【解決手段】所定のプログラムファイル132、142を実行する情報処理装置100であって、所定のプログラムファイル132、142を起動するための起動部101aと、所定のプログラムファイル132、142の基となる、プログラム基礎ファイル130、140を格納する記憶部110と、を備え、所定のプログラムファイル132、142を起動する場合において、起動部101aは、記憶部110に格納されている全てのプログラムファイルを削除すると共に、記憶部110に格納されているプログラム基礎ファイル130、140を所定のプログラムファイル132、142に変換して起動する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、所定のプログラムファイルを実行する情報処理装置において、不正なプログラムファイルの起動を抑制し、機密情報の不正取得などの不正行為を抑制するための技術に関する。
【背景技術】
【0002】
インターネットやローカルエリアネットワーク等のネットワークの発達に伴い、ネットワークを介して、個人情報などの機密情報をホストコンピュータ等とやりとりする情報処理装置が種々開発されている。
【0003】
このような情報処理装置として、例えば、店舗等に設置されたクレジットカード決済用端末が挙げられる。このクレジットカード決済用端末は、ネットワークを介してクレジットカード会社のホストコンピュータに接続されており、顧客のクレジットカードに備えられた磁気記憶部分(磁気ストライプ)からカード番号等の機密情報を読み出し、購入代金等の情報と併せてホストコンピュータに送信するようにしている。
【0004】
かかる情報処理装置では、悪意ある者によって、機密情報の不正取得などの不正行為が行われるおそれがある。
【0005】
具体的には、例えば、クレジットカード決済用端末から送出されるデータを不正にコピーし、コピーしたデータを悪意者宛にネットワークを介して送信するといった処理を行う不正プログラムファイルを、悪意者がクレジットカード決済用端末に送り付けて実行させ、機密情報を取得するといった不正行為が想定される。また、同様にして、悪意者が、他の不正プログラムファイルをクレジットカード決済用端末に送り付けて実行させることにより、クレジットカード決済用端末で実行されるべき正規なプログラムファイルを改ざんしたり削除したりするといった不正行為が想定される。
【0006】
そこで、このような不正行為に対して、コンピュータウィルスを定義したパターンファイルに基づいてウィルスプログラムファイルを除去する、いわゆるウィルス対策プログラムをクレジットカード決済用端末に適用して、悪意者から送り付けられた不正プログラムファイルを除去するといった対策が考えられる。なお、このような対策を施した情報処理装置として、下記特許文献1に記載のパターンファイル更新システムにおけるパソコンなどが挙げられる。
【0007】
【特許文献1】特開2002−196942号公報
【発明の開示】
【発明が解決しようとする課題】
【0008】
前述のような、ウィルス対策プログラムを用いた対策を施した情報処理装置において、パターンファイルが最新のものでない場合には、新たな不正プログラムファイルを除去することができず、機密情報の取得などの不正行為を抑制することができないおそれがある。また、仮に、パターンファイルが最新のものであっても、未知の不正プログラムファイルについてはパターンファイルにおいて定義されていないため、除去することができない。
【0009】
さらには、前述のクレジットカード決済用端末において実行される不正なプログラムファイル、すなわち、「クレジットカード決済用端末から送出されるデータをコピーし、コピーしたデータを悪意者宛にネットワークを介して送信する処理を行うプログラムファイル」がコンピュータウィルスではなく、ネットワーク上を伝送されるデータをモニタするための正規なモニタリングプログラムファイルである場合も考えられる。かかる場合、このモニタリングプログラムファイルは、コンピュータウィルスでないのでパターンファイルにおいて定義されることがなく、従って、除去することができないこととなる。
【0010】
以上の問題、すなわち、情報処理装置において、悪意者により不正なプログラムを格納され、この不正プログラムが、ウィルス対策プログラムを用いても除去されずに起動してしまい、不正行為が行われるという問題は、ネットワークに接続された情報処理装置に限らず、ネットワークに接続されていない情報処理装置であっても発生し得る。
【0011】
具体的には、例えば、メモリカードなどの記録媒体を利用可能な情報処理装置であれば、この記録媒体を介して、悪意者によって不正プログラムを格納されるおそれがある。それ故、かかる不正プログラムがウィルス対策プログラム等を用いても除去されずに起動してしまい、情報処理装置で実行されるべきプログラムファイルが改ざんされるといった不正行為が行われるおそれがある。
【0012】
本発明は上述した課題の少なくとも一部を解決するためになされたものであり、情報処理装置において、不正なプログラムの起動を抑制し、機密情報の不正取得などの不正行為を抑制するための技術を提供することを目的とする。
【課題を解決するための手段】
【0013】
前述の課題の少なくとも一部を解決するために、本発明の情報処理装置は、所定のプログラムファイルを実行する情報処理装置であって、前記所定のプログラムファイルを起動するための起動部と、前記所定のプログラムファイルの基となる、プログラム基礎ファイルを格納する記憶部と、を備え、前記所定のプログラムファイルを起動する場合において、前記起動部は、前記記憶部に格納されている全てのプログラムファイルを削除すると共に、前記記憶部に格納されている前記プログラム基礎ファイルを前記所定のプログラムファイルに変換して、前記変換した所定のプログラムファイルを起動することを要旨とする。
【0014】
このように、本発明の情報処理装置において起動部は、所定のプログラムファイルを起動する場合に、記憶部に格納されている全てのプログラムファイルを削除すると共に、記憶部に格納されているプログラム基礎ファイルを所定のプログラムファイルに変換して、変換した所定のプログラムファイルを起動するようにしている。
【0015】
それ故、悪意者により不正プログラムファイルが記憶部に格納された場合でも、次回プログラムファイルを起動する場合に、この不正プログラムファイルを削除することができる。その結果、かかる不正プログラムファイルによる機密情報の取得などの不正行為を抑制することができる。
【0016】
また、かかる不正プログラムを削除した上で、所定のプログラムファイルをプログラム基礎ファイルから変換して起動するようにしているので、情報処理装置において、所定のプログラムファイルを実行することができる。
【0017】
また、記憶部に記憶されている全てのプログラムファイルを削除するようにしているので、ウィルス対策プログラムのパターンファイルにおいて定義されていないような不正なプログラムファイルであっても削除することができる。さらには、所定のプログラムファイルと同じファイル名で不正プログラムファイルが記憶部に格納されたとしても、かかるファイルを削除することができる。
【0018】
上記情報処理装置において、前記起動部は、前記情報処理装置の電源がオンとなった場合に、前記記憶部に格納されている全てのプログラムファイルを削除すると共に、前記記憶部に格納されている前記プログラム基礎ファイルを前記所定のプログラムファイルに変換して、前記変換した所定のプログラムファイルを起動することが好ましい。
【0019】
このような構成とすることで、情報処理装置の電源がオンとなった場合に、既に記憶部に格納されている不正なプログラムファイルを起動させることなく、記憶部から削除することが可能となる。
【0020】
上記情報処理装置において、さらに、前記所定のプログラムファイル及び前記プログラム基礎ファイルのうち、少なくともいずれか一方がリストアップされたリストを格納するリスト格納部を備え、前記起動部は、前記プログラム基礎ファイルを前記所定のプログラムファイルに変換する場合に、前記格納部に格納されているリストに基づき、前記記憶部に格納されているファイルのうち、前記プログラム基礎ファイルを特定して変換し、前記起動部は、前記変換した所定のプログラムファイルを起動する場合に、前記格納部に格納されているリストに基づき、前記記憶部に格納されているファイルのうち、前記所定のプログラムファイルを特定して起動することが好ましい。
【0021】
不正なプログラムファイルの基となる、不正プログラム基礎ファイルが悪意者によって記憶部に格納された場合、かかるファイルはプログラムファイルではないので、起動部によって削除されないこととなる。この場合、仮に、プログラムファイルの削除の後に、起動部によって、かかる不正プログラム基礎ファイルが不正プログラムファイルに変換されて起動されると、不正行為が行われるおそれがある。
【0022】
しかしながら、上記構成とすることで、起動部は、リストに基づいてプログラム基礎ファイルのみを特定して所定のプログラムファイルに変換することができる。従って、かかる不正プログラム基礎ファイルの変換及び起動を抑制することができ、不正行為を抑制することができる。
【0023】
また、上記構成とすることで、起動部は、リストに基づいて所定のプログラムファイルを起動するので、仮に、不正プログラムファイルが削除されなかった、或いは、記憶部に格納されている全てのプログラムファイルが削除された後に、不正プログラムファイルが記憶部に格納されたような場合でも、起動部は、かかる不正プログラムファイルを起動しないので、不正行為を抑制することができる。
【0024】
上記情報処理装置において、前記起動部は、前記プログラム基礎ファイルを前記所定のプログラムファイルに変換する前に、前記プログラム基礎ファイルが改ざんされているか否かを判定し、改ざんされていると判定した場合に、前記プログラム基礎ファイルを前記所定のプログラムファイルに変換しないようにすることが好ましい。
【0025】
このような構成とすることで、プログラム基礎ファイルが悪意者によって改ざんされている場合に、この改ざんされたプログラム基礎ファイルをプログラムファイルに変換しないようにすることができる。その結果、この改ざんされたプログラム基礎ファイルが変換されて、不正なプログラムファイルとして起動されることにより、不正行為が行われることを抑制することができる。
【0026】
上記情報処理装置において、前記プログラム基礎ファイルは暗号化されており、
前記起動部は、前記プログラム基礎ファイルを前記所定のプログラムファイルに変換する際に、前記プログラム基礎ファイルを復号することが好ましい。
【0027】
このような構成とすることで、プログラム基礎ファイルは復号しない限りプログラムファイルに変換されることはない。従って、仮に、記憶部に格納された不正プログラムが、プログラム基礎ファイルを所定のプログラムに勝手に変換して起動するようなプログラムであっても、かかる処理の実行を抑制することができる。
【0028】
なお、本発明は、上記情報処理装置といった装置発明の態様に限ることなく、プログラムファイル起動方法といった方法発明として実現することも可能である。
【発明を実施するための最良の形態】
【0029】
以下、本発明を実施するための最良の形態を実施例に基づいて以下の順序で説明する。
A.実施例:
A1.クレジットカード決済用端末の概要構成:
A2.第1回目のプログラム起動処理:
A3.第2回目のプログラム起動処理:
A4.実施例の効果:
B.変形例:
【0030】
A.実施例:
A1.クレジットカード決済用端末の概要構成:
図1は、本発明の一実施例としてのクレジットカード決済用端末の概要構成を示す説明図である。
【0031】
図1に示すクレジットカード決済用端末100は、主として、CPU101,ROM102,RAM103,カード読取部104,通信制御部105,表示部106,フラッシュメモリ110を備えており、それぞれ内部バス107で接続されている。
【0032】
カード読取部104は、クレジットカード(図示省略)が挿入可能であると共に、挿入されたクレジットカード(図示省略)の有する磁気記憶部(磁気ストライプ)からカード番号などの決済に必要な情報を読み出すための機能部である。
【0033】
通信制御部105は、クレジットカード決済用端末100を、決済を実行するホストコンピュータHTにネットワークを介して接続するための機能部である。
【0034】
表示部106は、液晶パネルを有しており、決済の可否等の情報を表示する機能部である。なお、クレジットカード決済用端末100は、これら機能部の他に、操作部等を有しているが、説明の便宜上省略している。
【0035】
ROM102には、出荷前において、図示せざる所定のオペレーティングシステム及び初期起動プログラムが記憶されている。そして、このオペレーティングシステムの下、初期起動プログラムがRAM103にロードされると、CPU101は、この初期起動プログラムを実行することにより、起動部101aとして機能することとなる。
【0036】
フラッシュメモリ110には、出荷前において、初期リストファイル120(ファイル名:list.INW),決済用プログラム原始ファイル130(ファイル名:ppp.APX),DLL原始ファイル140(ファイル名:qqq.DLX)が格納されている。なお、このフラッシュメモリ110は、請求項における記憶部及びリスト格納部に相当する。
【0037】
以上の構成を有するクレジットカード決済用端末100は、店舗等に備えられており、顧客がクレジットカードを用いて代金の支払いをする際に用いられる。具体的には、クレジットカード決済用端末100の電源がオンされた際に、フラッシュメモリ110に記憶されている決済用プログラムファイル及びDLL(Dynamic Link Library)ファイルが起動されてRAM103にロードされており、CPU101は、これらファイルを実行することにより、決済制御部(図示省略)として機能している。なお、これら決済用プログラムファイル及びDLLファイルは、請求項における所定のプログラムファイルに相当するが、詳細については後述する。
【0038】
そして、この決済制御部(図示省略)は、顧客のクレジットカード(図示省略)がカード読取部104に挿入されると、カード読取部104を制御して、クレジットカード(図示省略)の磁気ストライプに記録された磁気情報に基づき、カード番号等の情報を読み出す。次に、決済制御部(図示省略)は、通信制御部105を制御して、この読み出したカード番号等の情報と、操作部(図示省略)から入力された代金の情報と、をネットワークを介してホストコンピュータHTに送信する。
【0039】
そして、ホストコンピュータHTにおいて、受信したカード番号及び代金等の情報や、ホストコンピュータHTに蓄積されている取引履歴等に基づいて決済がなされると、決済完了の情報がネットワークを介してクレジットカード決済用端末100に送信される。クレジットカード決済用端末100では、通信制御部105が決済完了の情報を受信し、決済制御部(図示省略)が、表示部106を制御して決済が完了した旨を表示させる。
【0040】
このように、クレジットカード決済用端末100は、決済を実行するホストコンピュータHTと接続するために、ネットワークに接続されている。従って、クレジットカード決済用端末100は、ネットワークを介して悪意者から攻撃を受ける可能性がある。
【0041】
具体的には、例えば、ホストコンピュータHTに向けて送出されるカード番号等の機密情報を読み出すための不正なプログラムファイルが、悪意者によってクレジットカード決済用端末100に送り付けられることが考えられる。この場合、かかる不正プログラムファイルが起動されて実行されると、機密情報が不正に読み出されて、悪意者宛にネットワークを介して送信されるおそれがある。
【0042】
なお、この不正プログラムファイルは、不正の目的で利用されるプログラムファイルであるが、例えば、ネットワーク上を伝送されるデータをモニタするための正規なモニタリングプログラムファイルであって、コンピュータウィルスとは異なる場合も考えられる。
【0043】
かかる場合、パーソナルコンピュータ等で用いられるウィルス対策プログラムのパターンファイルには、このプログラムファイルがコンピュータウィルスとしては定義されることはない。それ故、ウィルス対策プログラムをクレジットカード決済用端末100に適用したとしても、この不正プログラムファイルを除去することはできない。
【0044】
そこで、本発明のクレジットカード決済用端末100では、後述する本発明の特徴部分であるプログラム起動処理を実行して、かかる不正プログラムファイルを起動させないようにして、機密情報の不正取得などの不正行為を抑制するようにしている。
【0045】
ここで、上述したフラッシュメモリ110に格納されている初期リストファイル120,決済用プログラム原始ファイル130,DLL原始ファイル140について説明する。
【0046】
図1に示す決済用プログラム原始ファイル130は、前述の決済用プログラムファイルに基づき作成されたファイルであり、このままではプログラムファイルとして実行することができない形式のファイルである。また、DLL原始ファイル140は、決済用プログラムファイルによって利用されるDLLファイルに基づき生成されたファイルであり、このままではDLLファイルとして実行することができない形式のファイルである。
【0047】
図2は、フラッシュメモリ110に格納されている決済用プログラム原始ファイル130を模式的に示す説明図である。
【0048】
図2において(A)は決済用プログラム原始ファイル130の模式図を、(B)は(A)に示す決済用プログラム原始ファイル130に埋め込まれたデータを、それぞれ示す。
【0049】
図2(A)に示すように、決済用プログラム原始ファイル130は、決済用プログラム(白抜き部分)に、いくつかのデータが埋め込まれて生成されている。具体的には、決済用プログラムの先頭部分にこのファイルの生成年月日及び時分秒(YY/MM/DD, HH:MM:SS)が、決済用プログラム部分の途中に6つのデータ[1]〜[6]が、決済用プログラムの最後部に2つのブロックチェックキャラクタBCC1,BCC2が、それぞれ埋め込まれている。
【0050】
ブロックチェックキャラクタBCC1は、決済用プログラム原始ファイル130のうち、決済用プログラム部分の誤りをチェックするための、水平パリティチェック方式で用いられるキャラクタである。一方、ブロックチェックキャラクタBCC2は、決済用プログラム原始ファイル130のうち、ブロックチェックキャラクタBCC2を除く他の全ての部分の誤りをチェックするための、水平パリティチェック方式で用いられるキャラクタである。
【0051】
これらブロックチェックキャラクタBCC1,BCC2は、後述するように、それぞれ、決済用プログラム原始ファイル130、及び決済用プログラム原始ファイル130に含まれている決済用プログラム部分における改ざんの有無をチェックするために用いられる。
【0052】
ここで、データ[1]〜[6]について、データ[1]を代表して、図2(B)を用いて説明する。データ[1]は、決済用プログラム原始ファイル130の先頭部分に格納されている生成年月日及び時分秒のデータに基づき、その埋め込み場所及び埋め込み値が定まる。
【0053】
具体的には、例えば、図2(B)に示すように、生成年月日及び時分秒が、00/05/23,18:26:47である場合に、データ[1]の埋め込み位置は、生成年月日及び時分秒を除くファイルの先頭から、MM(05)とDD(26)とを並べ替えて得られる「0256」から11バイトを引いた245バイト目の位置と定まる。一方、埋め込み値は、上述のようにして得られた「0256」から1を引いた「255」として定まる。
【0054】
他のデータ[2]〜[6]についても、データ[1]と同様に、埋め込むべき値及び位置が、生成年月日及び時分秒に基づいて定められている。なお、生成年月日及び時分秒の各値のうちの使用する値,並び替えのルール,並び替えて得られた値から引くべき値は、各データ[2]〜[6]ごとに定められている。
【0055】
このように、決済用プログラム原始ファイル130には、生成年月日及び時分秒や、データ[1]〜[6]が埋め込まれているので、このままでは決済用プログラム原始ファイル130は、決済用プログラムファイルとして実行されることはない。
【0056】
一方、DLL原始ファイル140も、上述した決済用プログラム原始ファイル130と同様に、DLL原始ファイル140に含まれるDLLファイル部分(図示省略)の先頭部分に、ファイルの生成年月日及び時分秒が、DLLファイル部分(図示省略)の途中に6つのデータ[1]〜[6]が、DLLファイル部分(図示省略)の最後部に2つのブロックチェックキャラクタBCC1,BCC2が、それぞれ埋め込まれている。従って、このままではDLL原始ファイル140は、DLLファイルとして実行されることはない。
【0057】
図3は、フラッシュメモリ110に格納されている初期リストファイル120を模式的に示す説明図である。
【0058】
図3に示すように、初期リストファイル120は、起動すべきアプリケーションプログラムファイル[APP]と、起動すべきDLLファイル[DLL]と、が記載されたリストファイルである。ここで、起動すべき各ファイルは、拡張子を除くファイル名でリストアップされている。
【0059】
具体的には、起動すべきアプリケーションプログラムファイルとして「ppp」が、起動すべきDLLファイルとして「qqq」が、それぞれリストアップされている。そして、この「ppp」としてリストアップされているアプリケーションプログラムファイルが、前述の決済用プログラムファイルに、「qqq」としてリストアップされているDLLファイルが、決済用プログラムによって利用されるDLLファイルに、それぞれ相当する。
【0060】
また、初期リストファイル120の最後部には、ブロックチェックキャラクタBCC0が埋め込まれている。このブロックチェックキャラクタBCC0は、上述した決済用プログラム原始ファイル130におけるブロックチェックキャラクタBCC1,BCC2と同様に、初期リストファイル120のうち、このブロックチェックキャラクタBCC0部分を除く、他の全ての部分の誤りをチェックするためのキャラクタである。
【0061】
このように、初期リストファイル120にもブロックチェックキャラクタBCC0が埋め込まれているのは、このブロックチェックキャラクタBCC0を用いて、初期リストファイル120の改ざんの有無を判定するためである。
【0062】
A2.第1回目のプログラム起動処理:
本発明の特徴部分であるプログラム起動処理の前提として、図1に示すように、クレジットカード決済用端末100の出荷前において、フラッシュメモリ110には、前述の初期リストファイル120,決済用プログラム原始ファイル130,DLL原始ファイル140が格納されている。また、これらファイルの他に、不正プログラムファイル150(ファイル名:vvv.EXE)が、悪意者により格納されているものとする。かかる前提の下、出荷後初めてクレジットカード決済用端末100の電源がオンされると、第1回目のプログラム起動処理が実行される。
【0063】
図4は、クレジットカード決済用端末100において実行されるプログラム起動処理の手順を示すフローチャートである。
【0064】
図4に示すプログラム起動処理が開始されると、図1に示す起動部101aは、フラッシュメモリ110に、初期リストファイルがあるか否かを判定する(ステップS202)。具体的には、拡張子が「INW」であるファイルがフラッシュメモリ110に格納されているか否かを判定するようにする。
【0065】
前述のように、フラッシュメモリ110には、ファイル名「list.INW」の初期リストファイル120が格納されているので、起動部101aは、初期リストファイルがあると判定する。そして、この場合、起動部101aは、この初期リストファイル120の改ざんの有無をチェックする(ステップS204)。
【0066】
具体的には、起動部101aは、図3に示す初期リストファイル120のうち、ブロックチェックキャラクタBCC0を除く部分に基づき、ブロックチェックキャラクタを算出し、算出したブロックチェックキャラクタが、ブロックチェックキャラクタBCC0と一致するか否かで改ざんの有無を判定する。そして、一致すると判定した場合に改ざんなしと判定し、一致しないと判定した場合に改ざんありと判定する。
【0067】
そして、改ざんなしと判定した場合に、起動部101aは、初期リストファイル120でリストアップされたアプリケーションプログラムファイル及びDLLファイルをそれぞれ含む、プログラム原始ファイル及びDLL原始ファイル(以下、これらファイルを「原始ファイル」とも呼ぶ。)が、フラッシュメモリ110に全て格納されているか否かを判定する(ステップS206)。
【0068】
図3に示すように、初期リストファイル120では、アプリケーションプログラムファイル「ppp」及びDLLファイル「qqq」がリストアップされている。そして、これらファイルをそれぞれ含む、決済用プログラム原始ファイル130及びDLL原始ファイル140がフラッシュメモリ110に全て格納されているので、起動部101aは、原始ファイルが全て格納されていると判定する。
【0069】
なお、決済用プログラム原始ファイル130のファイル名(ppp.APX)は、決済用プログラム原始ファイル130に含まれるアプリケーションプログラムファイル(決済用プログラムファイル)のファイル名と拡張子が異なるだけで、同じファイル名が設定されている。また、DLL原始ファイル140のファイル名(qqq.DLX)も、同様に、DLL原始ファイル140に含まれるDLLファイルのファイル名と拡張子が異なるだけで、同じファイル名が設定されている。
【0070】
従って、起動部101aは、ファイル名が「ppp.APX」及び「qqq.DLX」のファイルがフラッシュメモリ110内に格納されているか否かを判定することで、初期リストファイル120にリストアップされたファイルを含む原始ファイルが、フラッシュメモリ110に格納されているか否かを判定することができる。
【0071】
図4に戻って、起動部101aは、前述のステップS206の処理において、原始ファイルが全て格納されていると判定した場合に、かかる原始ファイルの改ざんの有無を判定する(ステップS208)。
【0072】
具体的には、例えば、決済用プログラム原始ファイル130については、起動部101aは、図2に示す初期プログラムファイルのうち、ブロックチェックキャラクタBCC2を除く他の全ての部分に基づき、ブロックチェックキャラクタを算出し、算出したブロックチェックキャラクタが、ブロックチェックキャラクタBCC2と一致するか否かで、改ざんの有無を判定する。同様にして、DLL原始ファイル140についてもブロックチェックキャラクタBCC2を用いて改ざんの有無を判定する。
【0073】
そして、決済用プログラム原始ファイル130及びDLL原始ファイル140のいずれも改ざんなしと判定した場合に、起動部101aは、これら原始ファイルから、それぞれブロックチェックキャラクタBCC2を取り除いた上で、拡張子を替えて原始ファイルを別のファイルに変換すると共に、初期リストファイル120からブロックチェックキャラクタBCC0を取り除いた上で、拡張子を替えて初期リストファイル120を別のファイルに変換する(ステップS210)。
【0074】
具体的には、決済用プログラム原始ファイル130については、起動部101aは、ブロックチェックキャラクタBCC2を取り除いた上で、図1の破線に示すように、拡張子を「APX」から「NEA」に替えて、決済用プログラム原始ファイル130を、決済用プログラム暗号化ファイル131(ファイル名:ppp.NEA)に変換する。同様にして、起動部101aは、DLL原始ファイル140を、DLL暗号化ファイル141(ファイル名:qqq.DLA)に変換する。
【0075】
なお、決済用プログラム暗号化ファイル131及びDLL暗号化ファイル141(以下、これらファイルを「暗号化ファイル」とも呼ぶ。)は、暗号鍵等により暗号化されているわけではないが、上述したようにデータが埋め込まれており、このままでは実行できない形式のファイルであるので、説明の便宜上、このように呼ぶものとする。また、これら暗号化ファイルが、請求項におけるプログラム基礎ファイルに相当する。
【0076】
一方、初期リストファイル120については、起動部101aは、ブロックチェックキャラクタBCC0を取り除いた上で、図1の破線に示すように、拡張子を「INW」から「INI」に替えて、初期リストファイル120を、運用リストファイル121(ファイル名:list.INI)に変換する。なお、この運用リストファイル121は、請求項におけるリストに相当する。
【0077】
図4に戻って、次に、起動部101aは、フラッシュメモリ110に格納されている、拡張子が「EXE」または「DLL」である全てのファイルを削除する(ステップS212)。
【0078】
ここで、フラッシュメモリ110には、運用リストファイル121,決済用プログラム暗号化ファイル131,DLL暗号化ファイル141の他に、出荷前に格納されていた不正プログラムファイル150が格納されている。これらのファイルのうち、拡張子が「EXE」または「DLL」であるファイルは、不正プログラムファイル150(vvv.EXE)のみであるので、起動部101aは、この不正プログラムファイル150を削除する。
【0079】
次に、起動部101aは、運用リストファイル121を読み出し、運用リストファイル121でリストアップされているアプリケーションプログラムファイル及びDLLファイルをそれぞれ含む、暗号化ファイルの改ざんの有無を判定する(ステップS214)。
【0080】
上述したように、運用リストファイル121は、初期リストファイル120からブロックチェックキャラクタBCC0を取り除き、拡張子を替えただけのファイルである。従って、この運用リストファイル121にリストアップされているファイルは、図3に示す初期リストファイル120においてリストアップされていた、決済用プログラムファイル「ppp」及びDLLファイル「qqq」となる。従って、起動部101aは、これらファイルを含む暗号化ファイル(決済用プログラム暗号化ファイル131及びDLL暗号化ファイル141)の改ざんの有無を判定するようにする。
【0081】
具体的には、例えば、決済用プログラム暗号化ファイル131については、起動部101aは、図2に示す初期プログラムファイル(ブロックチェックキャラクタBCC2については既に取り除かれている)のうち、生成年月日及び時分秒と、データ[1]〜[2]と、ブロックチェックキャラクタBCC1と、を除く、決済用プログラム部分(白抜き部分)に基づき、ブロックチェックキャラクタを算出する。そして、起動部101aは、算出したブロックチェックキャラクタが、ブロックチェックキャラクタBCC1と一致するか否かで、改ざんの有無を判定する。同様にして、DLL暗号化ファイル141についてもブロックチェックキャラクタBCC1を用いて改ざんの有無を判定する。
【0082】
図4に戻って、決済用プログラム暗号化ファイル131及びDLL暗号化ファイル141のいずれも改ざんなしと判定した場合に、起動部101aは、暗号化ファイルをコピーした上で、コピーした暗号化ファイルから、ブロックチェックキャラクタBCC1及び埋め込まれた全てのデータを取り除き、拡張子を替えてファイルを変換する(ステップS216)。
【0083】
具体的には、コピーした決済用プログラム暗号化ファイル131については、起動部101aは、図2に示すブロックチェックキャラクタBCC1の他、生成年月日及び時分秒や、データ[1]〜[6]を取り除いた上で、図1の破線に示すように、拡張子を「NEA」から「EXE」に替えて、決済用プログラムファイル132(ファイル名:ppp.EXE)に変換する。
【0084】
同様にして、コピーしたDLL暗号化ファイル141についても、ブロックチェックキャラクタBCC1や埋め込まれたデータを取り除いた上で、図1の破線に示すように、拡張子を「DLA」から「DLL」に替えて、DLLファイル142(ファイル名:qqq.DLL)に変換する。
【0085】
次に、起動部101aは、運用リストファイル121にリストアップされているアプリケーションプログラムファイル及びDLLファイルを起動し、RAM103にロードする(ステップS218)。
【0086】
上述したように、運用リストファイル121には、アプリケーションプログラムファイルとして、決済用プログラムファイル132が、DLLファイルとして、DLLファイル142が、それぞれリストアップされている。そして、これらのファイルは、前述のステップS216の処理の結果、フラッシュメモリ110に格納されているので、起動部101aは、これらファイルを読み出して起動して、RAM103にロードすることができる。
【0087】
その結果、上述したように、CPU101が決済制御部(図示省略)として機能することとなり、クレジットカード決済用端末100は、クレジットカードを用いた決済のために利用可能となる。
【0088】
このように、決済用プログラムファイル132及びDLLファイル142が起動される際には、既にフラッシュメモリ110から不正プログラムファイル150が削除されているので、クレジットカード決済用端末100を用いた決済において、カード番号等の機密情報を悪意者に不正取得されるといった不正行為を抑制することができる。
【0089】
なお、上述したステップS204の処理の結果、初期リストファイル120に改ざんありと判定した場合、また、ステップS206の処理の結果、原始ファイルがフラッシュメモリ110に全て格納されていないと判定した場合、また、ステップS208の処理の結果、原始ファイルのいずれかに改ざんありと判定した場合、また、ステップS214の処理の結果、暗号化ファイルのいずれかに改ざんありと判定した場合、起動部101aは、それぞれの場合においてフラッシュメモリ110に格納されている全てのファイルを削除し(ステップS220)、図1に示す表示部106にエラー表示して(ステップS222)、プログラム起動処理を終了させる。
【0090】
このように、各ファイルに改ざんがあると判定した場合にプログラム起動処理を終了させるようにしているのは、悪意者によって各ファイルが改ざんされているおそれがあり、かかる改ざんされたファイルを用いることで、不正行為を行われる可能性があるからである。
【0091】
また、原始ファイルがフラッシュメモリ110に全て格納されていないと判定した場合にもプログラム起動処理を終了させるのは、以下の理由による。すなわち、悪意者によっていずれかのファイルがフラッシュメモリ110から削除されたおそれがあり、かかる場合、悪意者はネットワークを介してクレジットカード決済用端末100にアクセスしているので、上述した改ざんの有無のチェックでは発見できない改ざんが、各ファイルに施されている可能性があるからである。
【0092】
A3.第2回目のプログラム起動処理:
上述した第1回目のプログラム起動処理により、クレジットカード決済用端末100が利用可能となった場合、クレジットカード決済用端末100はネットワークを介してホストコンピュータHTに接続可能となる。従って、悪意者によってネットワーク経由でクレジットカード決済用端末100に不正なプログラムファイルを送り付けられるおそれがある。
【0093】
ここで、第2回目のプログラム起動処理の前提として、第1回目のプログラム起動処理の後、悪意者が、前述の不正プログラムファイル150と同じファイルを、ネットワークを介してクレジットカード決済用端末100に送り付けて、フラッシュメモリ110に格納したものとする。
【0094】
かかる前提の下、クレジットカード決済用端末100の電源がオフされて、再び電源がオンされると、第2回目のプログラム起動処理が開始される。この第2回目のプログラム起動処理におけるフローチャートは、図4に示すフローチャートと同じである。
【0095】
なお、第2回目のプログラム起動処理が開始される段階で、フラッシュメモリ110には、悪意者から送り付けられた不正プログラムファイル150の他に、上述した第1回目のプログラム起動処理の結果生成(変換)された、運用リストファイル121,決済用プログラム暗号化ファイル131,DLL暗号化ファイル141,決済用プログラムファイル132,DLLファイル142(以上、図1において破線で示すファイル)が格納されている。
【0096】
第2回目のプログラム起動処理が開始されると、図4に示すように、起動部101aは、フラッシュメモリ110に、初期リストファイルがあるか否かを判定する(ステップS202)。上述した第1回目の起動処理とは異なり、フラッシュメモリ110には、初期リストファイル(拡張子が「INW」であるファイル)がないので、起動部101aは、初期リストファイルがないと判定する。
【0097】
この場合、起動部101aは、フラッシュメモリ110に、拡張子が「INI」である運用リストファイルがあるか否かを判定する(ステップS220)。前述のように、フラッシュメモリ110には、運用リストファイル121(ファイル名:list.INI)が格納されているので、起動部101aは、運用リストファイルがあると判定する。
【0098】
この場合、起動部101aは、フラッシュメモリ110に格納されている、拡張子が「EXE」または「DLL」である全てのファイルを削除する(ステップS212)。このとき、フラッシュメモリ110に格納されているファイルは、不正プログラムファイル150(vvv.EXE)と、決済用プログラムファイル132(ppp.EXE)と、DLLファイル142(qqq.DLL)と、になる。従って、起動部101aはこれらファイルを全て削除する。
【0099】
その結果、フラッシュメモリ110から、不正プログラムファイル150が取り除かれることとなるが、同時に、決済用プログラムファイル132及びDLLファイル142も取り除かれてしまうこととなる。
【0100】
そこで、起動部101aは、上述したステップS214〜ステップS218の処理を再び実行して、フラッシュメモリ110に格納されている決済用プログラム暗号化ファイル131及びDLL暗号化ファイル141に基づき、決済用プログラムファイル132及びDLLファイル142を新たに生成(変換)する。なお、ステップS214〜ステップS218の処理の詳細手順については、上述した第1回目のプログラム起動処理における手順と同じであるので、説明を省略する。
【0101】
このようにして新たに生成された決済用プログラムファイル132及びDLLファイル142が、ステップS218の処理の結果、起動されてRAM103にロードされることとなる。それ故、CPU101が決済制御部(図示省略)として機能することとなり、クレジットカード決済用端末100は、クレジットカードを用いた決済のために利用可能となる。
【0102】
以上説明したように、第1回目のプログラム起動処理後において、不正プログラムファイル150がフラッシュメモリ110に格納された場合であっても、第2回目のプログラム起動処理を実行することによって、この不正プログラムファイル150を削除することができる。また、第2回目のプログラム起動処理の結果、決済用プログラムファイル132及びDLLファイル142が新たに生成されて起動されるので、クレジットカード決済用端末100は利用可能となる。
【0103】
なお、上述したステップS224の処理の結果、運用リストファイルがないと判定した場合、起動部101aは、図1に示す表示部106にエラー表示して(ステップS226)、プログラム起動処理を終了させる。運用リストファイルがない場合には、起動部101aは、いずれのアプリケーションプログラムファイル及びDLLファイルを起動すべきか判断することができなくなるからである。
【0104】
また、第3回目以降のプログラム起動処理においても、上述した第2回目のプログラム起動処理を同じ処理が実行されることとなる。従って、出荷後、いずれのタイミングで不正プログラムファイルがフラッシュメモリ110に格納された場合でも、その後、最初にクレジットカード決済用端末100の電源がオンされて、プログラム起動処理が実行された際に、かかる不正プログラムファイルは削除されることとなる。
【0105】
A4.実施例の効果:
以上説明したように、プログラム起動処理が実行されるたびに、起動部101aは、フラッシュメモリ110に格納されている、拡張子が「EXE」または「DLL」である全てのファイルを削除するようにしている。従って、出荷前または出荷後において、拡張子が「EXE」または「DLL」である不正プログラムファイル150が、悪意者によってフラッシュメモリ110に格納されても、この不正プログラムファイル150を取り除くことができる。その結果、かかる不正プログラムファイルによる機密情報の取得などの不正行為を抑制することができる。
【0106】
また、不正プログラムファイルの拡張子が「EXE」または「DLL」でない場合でも、この不正プログラムを、拡張子が「EXE」または「DLL」のファイルに変換されて実行されることはない。これは、ステップS216の処理において変換対象となるファイルは、運用リストファイル121にリストアップされているファイルを含む暗号化ファイルのみであり、この運用リストファイル121には、不正プログラムファイルはリストアップされていないからである。
【0107】
また、起動部101aは、原始ファイルや初期リストファイル120等について、ブロックチェックキャラクタを用いて改ざんの有無を判定するようにし、改ざんがあると判定した場合にプログラム起動処理を終了するようにしている。従って、悪意者が、不正プログラムファイルをフラッシュメモリ110に格納することなく、原始ファイルや初期リストファイル120等を改ざんするような場合でも、プログラム起動処理が続行して完了することがないので、改ざんされたプログラムファイルの起動を抑制し、かかる改ざんされたプログラムファイルによる不正行為を抑制することができる。
【0108】
また、起動部101aは、原始ファイルがフラッシュメモリ110に全て格納されていないと判定した場合にもプログラム起動処理を終了させるようにしている。従って、悪意者によって、いずれかのファイルがフラッシュメモリ110から削除されると共に、上述した改ざんのチェックでは発見できない改ざんが各ファイルに施されたような場合にも、かかる改ざんされたファイル(プログラムファイル)による不正行為を抑制することができる。
【0109】
B.変形例:
なお、本発明は、前述の実施例や実施形態に限られるものではなく、その要旨を逸脱しない範囲において、種々の態様において実施することが可能であり、例えば以下のような変形も可能である。
【0110】
B1.変形例1:
上述したプログラム起動処理において、ステップS202〜ステップS210の処理は、出荷後初めてクレジットカード決済用端末100の電源がオンされ、第1回目のプログラム起動処理が開始された場合に実行されていたが、かかる場合に限らず、決済用プログラムファイルがバージョンアップされた場合等においても実行されるものである。
【0111】
具体的には、例えば、決済用プログラムファイルのバージョンアップのために、それまで利用されていたクレジットカード決済用端末100がメーカ等に送られ、メーカにおいて、バージョンアップした決済用プログラムファイルのためのプログラム原始ファイル及びDLL原始ファイルが、フラッシュメモリ110に格納された後に、ユーザに送り返されて最初に電源がオンされた場合にも実行されることとなる。
【0112】
かかる場合、メーカから送り返された段階で、フラッシュメモリ110には、メーカにおいて新たに格納された初期リストファイル,プログラム原始ファイル,DLL原始ファイルの他に、それまで用いられていた運用リストファイル121,決済用プログラム暗号化ファイル131,DLL暗号化ファイル141,決済用プログラムファイル132,DLLファイル142が格納されている。
【0113】
それ故、このままプログラム起動処理を実行すると、新たに生成(変換)される運用リストファイル,決済用プログラム暗号化ファイル,DLL暗号化ファイルと、既に格納されている運用リストファイル121,決済用プログラム暗号化ファイル131,決済用プログラム暗号化ファイル131と、が重複してしまうことになる。
【0114】
そこで、起動部101aは、プログラム起動処理におけるステップS210の処理において、新たに格納された初期リストファイルを変換した上で、既にある運用リストファイル121に上書し、また、新たに格納された初期プログラムファイル及び初期DLLファイルを変換した上で、既にある決済用プログラム暗号化ファイル131及びDLL暗号化ファイル141に上書きするようにすればよい。
【0115】
B2.変形例2:
上述した実施例では、初期リストファイル120,決済用プログラム原始ファイル130,DLL原始ファイル140等の改ざんの有無を判断するために、ブロックチェックキャラクタBCC1,BCC2,BCC0を用いていたが、本発明は、これに限定されるものではない。各ファイルの改ざんの有無をチェック可能であれば、例えば、ファイル全体を対象として、MD(Message Digest4)4やMD5等の、所定のハッシュ関数に基づき算出したハッシュ値を用いるようにしても構わない。
【0116】
B3.変形例3:
上述した実施例では、決済用プログラム暗号化ファイル131及びDLL暗号化ファイル141は、そのままでは決済用プログラムファイル及びDLLファイルとして実行できない形式とするために、生成年月日及び時分秒や、所定のルールにより算出されたデータ[1]〜[6]を埋め込むようにしていたが、本発明は、これに限定されるものではない。
【0117】
例えば、所定の暗号鍵で決済用プログラムファイル132やDLLファイル142を暗号化することにより、決済用プログラム暗号化ファイル131及びDLL暗号化ファイル141を、そのままでは決済用プログラムファイル及びDLLファイルとして実行できない形式にしても構わない。この場合、フラッシュメモリ110には、予めこの暗号鍵を格納しておけばよい。
【0118】
B4.変形例4:
上述した実施例では、フラッシュメモリ110に記憶されている運用リストファイル121については、ステップS214の処理において、改ざんの有無を確認することなく用いていたが、改ざんの有無を判定した上で、改ざんされていないと判定した場合に用いるようにしてもよい。第1回目のプログラム起動処理においては、運用リストファイル121の元となる初期リストファイル120について、ブロックチェックキャラクタBCC0により改ざんの有無を判定しているので、運用リストファイル121の改ざんの有無を判定する必要性は低い。しかしながら、第2回目以降においては、かかる初期リストファイル120の改ざんの有無の判定はなされないので、運用リストファイル121の改ざんの有無を判定した上で用いるようにすることが好ましい。
【0119】
この場合、ステップS210の処理において、初期リストファイル120を運用リストファイル121に変換する際に、拡張子のみを替えて、ブロックチェックキャラクタBCC0を取り除かないようにする。そして、ステップS214の処理の前に、かかるブロックチェックキャラクタBCC0を用いて、運用リストファイル121の改ざんの有無を判定するようにする。その結果、改ざんがないと判定した場合に、上述したステップS214以降の処理を行い、一方、改ざんがあると判定した場合には、上述したステップS220及びステップS222の処理を行って、フラッシュメモリ110に格納された全てのファイルを削除して、表示部106にエラー表示をさせてプログラム起動処理を終了させるようにすればよい。
【0120】
B5.変形例5:
上述した実施例では、初期リストファイル120,決済用プログラム原始ファイル130,DLL原始ファイル140等の改ざんの有無を判定するようにしていたが、これらのファイルが改ざんされるおそれがないような場合には、かかる改ざんの有無の判定を省略するようにしても構わない。このような場合であっても、上述した実施例のように、不正なプログラムファイルがフラッシュメモリ110に格納されるおそれがある場合には、上述したプログラム起動処理によって、かかる不正なプログラムを削除することができる。
【0121】
B6.変形例6:
上述した実施例では、初期リストファイル120及び運用リストファイル121は、起動すべきアプリケーションプログラムファイルと、起動すべきDLLファイルと、が記載されたリストファイルであり、それぞれのファイルが拡張子を除くファイル名でリストアップされていたが、本発明はこれに限定されるものではない。
【0122】
例えば、起動すべきアプリケーションプログラムファイル及びDLLファイルが、それぞれ拡張子も含めたファイル名でリストアップされていても構わない。この場合、起動部101aは、原始ファイルがフラッシュメモリ110に全て格納されているか否かを判定する場合に(ステップS206)、初期リストファイル120に記載されたファイル名の拡張子を除いた部分に、「NEA」または「DLA」の拡張子を付けたファイル名のファイルがフラッシュメモリ110に格納されているか否かを判定するようにすればよい。
【0123】
また、初期リストファイル及び運用リストファイルに代えて、原始ファイルの拡張子を含むファイル名をリストアップしたリストと、暗号化ファイルの拡張子を含むファイル名をリストアップしたリストと、起動すべきアプリケーションプログラムファイル及びDLLファイルの拡張子を含むファイル名をリストアップしたリストと、をそれぞれ予めフラッシュメモリ110に格納しておくようにしてもよい。この場合、これらリストに基づいて、それぞれ、原始ファイルがフラッシュメモリ110に全て格納されているか否かを判定したり(ステップS206)、暗号化ファイルの改ざんの有無を判定したり(ステップS214)、決済用プログラムファイル及びDLLファイルを起動したり(ステップS218)するようにすればよい。なお、この場合、それぞれのリスト全体が、請求項におけるリストに相当することとなる。
【0124】
B7.変形例7:
上述した実施例では、クレジットカード決済用端末100におけるプログラム起動処理を説明したが、本発明は、クレジットカード決済用端末に限らず、携帯電話機を用いた決済用端末など、他の決済用端末に適用することも可能である。さらに、本発明は、決済用端末に限らず、医療情報や個人情報といった、高い機密性が求められる情報を取り扱う各種情報処理装置に適用することが可能である。このような情報処理装置に適用することによって、不正なプログラムファイルによる機密情報の不正取得を抑制することができる。
【図面の簡単な説明】
【0125】
【図1】本発明の一実施例としてのクレジットカード決済用端末の概要構成を示す説明図である。
【図2】フラッシュメモリ110に格納されている決済用プログラム原始ファイル130を模式的に示す説明図である。
【図3】フラッシュメモリ110に格納されている初期リストファイル120を模式的に示す説明図である。
【図4】クレジットカード決済用端末100において実行されるプログラム起動処理の手順を示すフローチャートである。
【符号の説明】
【0126】
100…クレジットカード決済用端末
101…CPU
101a…起動部
102…ROM
103…RAM
104…カード読取部
105…通信制御部
106…表示部
107…内部バス
110…フラッシュメモリ
120…初期リストファイル
121…運用リストファイル
130…決済用プログラム原始ファイル
131…決済用プログラム暗号化ファイル
132…決済用プログラムファイル
140…DLL原始ファイル
141…DLL暗号化ファイル
142…DLLファイル
150…不正プログラムファイル
HT…ホストコンピュータ
BCC1,BCC2,BCC0…ブロックチェックキャラクタ

【特許請求の範囲】
【請求項1】
所定のプログラムファイルを実行する情報処理装置であって、
前記所定のプログラムファイルを起動するための起動部と、
前記所定のプログラムファイルの基となる、プログラム基礎ファイルを格納する記憶部と、
を備え、
前記所定のプログラムファイルを起動する場合において、前記起動部は、前記記憶部に格納されている全てのプログラムファイルを削除すると共に、前記記憶部に格納されている前記プログラム基礎ファイルを前記所定のプログラムファイルに変換して、前記変換した所定のプログラムファイルを起動することを特徴とする情報処理装置。
【請求項2】
請求項1に記載の情報処理装置であって、
前記起動部は、前記情報処理装置の電源がオンとなった場合に、前記記憶部に格納されている全てのプログラムファイルを削除すると共に、前記記憶部に格納されている前記プログラム基礎ファイルを前記所定のプログラムファイルに変換して、前記変換した所定のプログラムファイルを起動する、
情報処理装置。
【請求項3】
請求項1または請求項2に記載の情報処理装置であって、さらに、
前記所定のプログラムファイル及び前記プログラム基礎ファイルのうち、少なくともいずれか一方がリストアップされたリストを格納するリスト格納部を備え、
前記起動部は、前記プログラム基礎ファイルを前記所定のプログラムファイルに変換する場合に、前記格納部に格納されているリストに基づき、前記記憶部に格納されているファイルのうち、前記プログラム基礎ファイルを特定して変換し、
前記起動部は、前記変換した所定のプログラムファイルを起動する場合に、前記格納部に格納されているリストに基づき、前記記憶部に格納されているファイルのうち、前記所定のプログラムファイルを特定して起動する、
情報処理装置。
【請求項4】
請求項1ないし請求項3のいずれかに記載の情報処理装置において、
前記起動部は、前記プログラム基礎ファイルを前記所定のプログラムファイルに変換する前に、前記プログラム基礎ファイルが改ざんされているか否かを判定し、改ざんされていると判定した場合に、前記プログラム基礎ファイルを前記所定のプログラムファイルに変換しない、
情報処理装置。
【請求項5】
請求項1ないし請求項4のいずれかに記載の情報処理装置において、
前記プログラム基礎ファイルは暗号化されており、
前記起動部は、前記プログラム基礎ファイルを前記所定のプログラムファイルに変換する際に、前記プログラム基礎ファイルを復号する、
情報処理装置。
【請求項6】
所定のプログラムファイルを実行する情報処理装置において、前記所定のプログラムファイルを起動するためのプログラムファイル起動方法であって、
前記所定のプログラムファイルの基となる、プログラム基礎ファイルを、前記情報処理装置が備える記憶部に格納する第1の工程と、
前記記憶部に格納されている全てのプログラムファイルを削除する第2の工程と、
前記記憶部に格納されている前記プログラム基礎ファイルを前記所定のプログラムファイルに変換する第3の工程と、
前記変換工程により得られた前記所定のプログラムファイルを起動する第4の工程と、
を備えるプログラムファイル起動方法。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate


【公開番号】特開2007−172110(P2007−172110A)
【公開日】平成19年7月5日(2007.7.5)
【国際特許分類】
【出願番号】特願2005−365985(P2005−365985)
【出願日】平成17年12月20日(2005.12.20)
【出願人】(504373093)日立オムロンターミナルソリューションズ株式会社 (1,225)
【Fターム(参考)】