(57)【特許請求の範囲】
【請求項１】
所定のプログラムファイルを実行する情報処理装置であって、
前記所定のプログラムファイルを起動するための起動部と、
前記所定のプログラムファイルの基となる、プログラム基礎ファイルを格納する記憶部と、
を備え、
前記所定のプログラムファイルを起動する場合において、前記起動部は、前記記憶部に格納されている全てのプログラムファイルを削除すると共に、前記記憶部に格納されている前記プログラム基礎ファイルを前記所定のプログラムファイルに変換して、前記変換した所定のプログラムファイルを起動することを特徴とする情報処理装置。
【請求項２】
請求項１に記載の情報処理装置であって、
前記起動部は、前記情報処理装置の電源がオンとなった場合に、前記記憶部に格納されている全てのプログラムファイルを削除すると共に、前記記憶部に格納されている前記プログラム基礎ファイルを前記所定のプログラムファイルに変換して、前記変換した所定のプログラムファイルを起動する、
情報処理装置。
【請求項３】
請求項１または請求項２に記載の情報処理装置であって、さらに、
前記所定のプログラムファイル及び前記プログラム基礎ファイルのうち、少なくともいずれか一方がリストアップされたリストを格納するリスト格納部を備え、
前記起動部は、前記プログラム基礎ファイルを前記所定のプログラムファイルに変換する場合に、前記格納部に格納されているリストに基づき、前記記憶部に格納されているファイルのうち、前記プログラム基礎ファイルを特定して変換し、
前記起動部は、前記変換した所定のプログラムファイルを起動する場合に、前記格納部に格納されているリストに基づき、前記記憶部に格納されているファイルのうち、前記所定のプログラムファイルを特定して起動する、
情報処理装置。
【請求項４】
請求項１ないし請求項３のいずれかに記載の情報処理装置において、
前記起動部は、前記プログラム基礎ファイルを前記所定のプログラムファイルに変換する前に、前記プログラム基礎ファイルが改ざんされているか否かを判定し、改ざんされていると判定した場合に、前記プログラム基礎ファイルを前記所定のプログラムファイルに変換しない、
情報処理装置。
【請求項５】
請求項１ないし請求項４のいずれかに記載の情報処理装置において、
前記プログラム基礎ファイルは暗号化されており、
前記起動部は、前記プログラム基礎ファイルを前記所定のプログラムファイルに変換する際に、前記プログラム基礎ファイルを復号する、
情報処理装置。
【請求項６】
所定のプログラムファイルを実行する情報処理装置において、前記所定のプログラムファイルを起動するためのプログラムファイル起動方法であって、
前記所定のプログラムファイルの基となる、プログラム基礎ファイルを、前記情報処理装置が備える記憶部に格納する第１の工程と、
前記記憶部に格納されている全てのプログラムファイルを削除する第２の工程と、
前記記憶部に格納されている前記プログラム基礎ファイルを前記所定のプログラムファイルに変換する第３の工程と、
前記変換工程により得られた前記所定のプログラムファイルを起動する第４の工程と、
を備えるプログラムファイル起動方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、所定のプログラムファイルを実行する情報処理装置において、不正なプログラムファイルの起動を抑制し、機密情報の不正取得などの不正行為を抑制するための技術に関する。
【背景技術】
【０００２】
インターネットやローカルエリアネットワーク等のネットワークの発達に伴い、ネットワークを介して、個人情報などの機密情報をホストコンピュータ等とやりとりする情報処理装置が種々開発されている。
【０００３】
このような情報処理装置として、例えば、店舗等に設置されたクレジットカード決済用端末が挙げられる。このクレジットカード決済用端末は、ネットワークを介してクレジットカード会社のホストコンピュータに接続されており、顧客のクレジットカードに備えられた磁気記憶部分（磁気ストライプ）からカード番号等の機密情報を読み出し、購入代金等の情報と併せてホストコンピュータに送信するようにしている。
【０００４】
かかる情報処理装置では、悪意ある者によって、機密情報の不正取得などの不正行為が行われるおそれがある。
【０００５】
具体的には、例えば、クレジットカード決済用端末から送出されるデータを不正にコピーし、コピーしたデータを悪意者宛にネットワークを介して送信するといった処理を行う不正プログラムファイルを、悪意者がクレジットカード決済用端末に送り付けて実行させ、機密情報を取得するといった不正行為が想定される。また、同様にして、悪意者が、他の不正プログラムファイルをクレジットカード決済用端末に送り付けて実行させることにより、クレジットカード決済用端末で実行されるべき正規なプログラムファイルを改ざんしたり削除したりするといった不正行為が想定される。
【０００６】
そこで、このような不正行為に対して、コンピュータウィルスを定義したパターンファイルに基づいてウィルスプログラムファイルを除去する、いわゆるウィルス対策プログラムをクレジットカード決済用端末に適用して、悪意者から送り付けられた不正プログラムファイルを除去するといった対策が考えられる。なお、このような対策を施した情報処理装置として、下記特許文献１に記載のパターンファイル更新システムにおけるパソコンなどが挙げられる。
【０００７】
【特許文献１】特開２００２−１９６９４２号公報
【発明の開示】
【発明が解決しようとする課題】
【０００８】
前述のような、ウィルス対策プログラムを用いた対策を施した情報処理装置において、パターンファイルが最新のものでない場合には、新たな不正プログラムファイルを除去することができず、機密情報の取得などの不正行為を抑制することができないおそれがある。また、仮に、パターンファイルが最新のものであっても、未知の不正プログラムファイルについてはパターンファイルにおいて定義されていないため、除去することができない。
【０００９】
さらには、前述のクレジットカード決済用端末において実行される不正なプログラムファイル、すなわち、「クレジットカード決済用端末から送出されるデータをコピーし、コピーしたデータを悪意者宛にネットワークを介して送信する処理を行うプログラムファイル」がコンピュータウィルスではなく、ネットワーク上を伝送されるデータをモニタするための正規なモニタリングプログラムファイルである場合も考えられる。かかる場合、このモニタリングプログラムファイルは、コンピュータウィルスでないのでパターンファイルにおいて定義されることがなく、従って、除去することができないこととなる。
【００１０】
以上の問題、すなわち、情報処理装置において、悪意者により不正なプログラムを格納され、この不正プログラムが、ウィルス対策プログラムを用いても除去されずに起動してしまい、不正行為が行われるという問題は、ネットワークに接続された情報処理装置に限らず、ネットワークに接続されていない情報処理装置であっても発生し得る。
【００１１】
具体的には、例えば、メモリカードなどの記録媒体を利用可能な情報処理装置であれば、この記録媒体を介して、悪意者によって不正プログラムを格納されるおそれがある。それ故、かかる不正プログラムがウィルス対策プログラム等を用いても除去されずに起動してしまい、情報処理装置で実行されるべきプログラムファイルが改ざんされるといった不正行為が行われるおそれがある。
【００１２】
本発明は上述した課題の少なくとも一部を解決するためになされたものであり、情報処理装置において、不正なプログラムの起動を抑制し、機密情報の不正取得などの不正行為を抑制するための技術を提供することを目的とする。
【課題を解決するための手段】
【００１３】
前述の課題の少なくとも一部を解決するために、本発明の情報処理装置は、所定のプログラムファイルを実行する情報処理装置であって、前記所定のプログラムファイルを起動するための起動部と、前記所定のプログラムファイルの基となる、プログラム基礎ファイルを格納する記憶部と、を備え、前記所定のプログラムファイルを起動する場合において、前記起動部は、前記記憶部に格納されている全てのプログラムファイルを削除すると共に、前記記憶部に格納されている前記プログラム基礎ファイルを前記所定のプログラムファイルに変換して、前記変換した所定のプログラムファイルを起動することを要旨とする。
【００１４】
このように、本発明の情報処理装置において起動部は、所定のプログラムファイルを起動する場合に、記憶部に格納されている全てのプログラムファイルを削除すると共に、記憶部に格納されているプログラム基礎ファイルを所定のプログラムファイルに変換して、変換した所定のプログラムファイルを起動するようにしている。
【００１５】
それ故、悪意者により不正プログラムファイルが記憶部に格納された場合でも、次回プログラムファイルを起動する場合に、この不正プログラムファイルを削除することができる。その結果、かかる不正プログラムファイルによる機密情報の取得などの不正行為を抑制することができる。
【００１６】
また、かかる不正プログラムを削除した上で、所定のプログラムファイルをプログラム基礎ファイルから変換して起動するようにしているので、情報処理装置において、所定のプログラムファイルを実行することができる。
【００１７】
また、記憶部に記憶されている全てのプログラムファイルを削除するようにしているので、ウィルス対策プログラムのパターンファイルにおいて定義されていないような不正なプログラムファイルであっても削除することができる。さらには、所定のプログラムファイルと同じファイル名で不正プログラムファイルが記憶部に格納されたとしても、かかるファイルを削除することができる。
【００１８】
上記情報処理装置において、前記起動部は、前記情報処理装置の電源がオンとなった場合に、前記記憶部に格納されている全てのプログラムファイルを削除すると共に、前記記憶部に格納されている前記プログラム基礎ファイルを前記所定のプログラムファイルに変換して、前記変換した所定のプログラムファイルを起動することが好ましい。
【００１９】
このような構成とすることで、情報処理装置の電源がオンとなった場合に、既に記憶部に格納されている不正なプログラムファイルを起動させることなく、記憶部から削除することが可能となる。
【００２０】
上記情報処理装置において、さらに、前記所定のプログラムファイル及び前記プログラム基礎ファイルのうち、少なくともいずれか一方がリストアップされたリストを格納するリスト格納部を備え、前記起動部は、前記プログラム基礎ファイルを前記所定のプログラムファイルに変換する場合に、前記格納部に格納されているリストに基づき、前記記憶部に格納されているファイルのうち、前記プログラム基礎ファイルを特定して変換し、前記起動部は、前記変換した所定のプログラムファイルを起動する場合に、前記格納部に格納されているリストに基づき、前記記憶部に格納されているファイルのうち、前記所定のプログラムファイルを特定して起動することが好ましい。
【００２１】
不正なプログラムファイルの基となる、不正プログラム基礎ファイルが悪意者によって記憶部に格納された場合、かかるファイルはプログラムファイルではないので、起動部によって削除されないこととなる。この場合、仮に、プログラムファイルの削除の後に、起動部によって、かかる不正プログラム基礎ファイルが不正プログラムファイルに変換されて起動されると、不正行為が行われるおそれがある。
【００２２】
しかしながら、上記構成とすることで、起動部は、リストに基づいてプログラム基礎ファイルのみを特定して所定のプログラムファイルに変換することができる。従って、かかる不正プログラム基礎ファイルの変換及び起動を抑制することができ、不正行為を抑制することができる。
【００２３】
また、上記構成とすることで、起動部は、リストに基づいて所定のプログラムファイルを起動するので、仮に、不正プログラムファイルが削除されなかった、或いは、記憶部に格納されている全てのプログラムファイルが削除された後に、不正プログラムファイルが記憶部に格納されたような場合でも、起動部は、かかる不正プログラムファイルを起動しないので、不正行為を抑制することができる。
【００２４】
上記情報処理装置において、前記起動部は、前記プログラム基礎ファイルを前記所定のプログラムファイルに変換する前に、前記プログラム基礎ファイルが改ざんされているか否かを判定し、改ざんされていると判定した場合に、前記プログラム基礎ファイルを前記所定のプログラムファイルに変換しないようにすることが好ましい。
【００２５】
このような構成とすることで、プログラム基礎ファイルが悪意者によって改ざんされている場合に、この改ざんされたプログラム基礎ファイルをプログラムファイルに変換しないようにすることができる。その結果、この改ざんされたプログラム基礎ファイルが変換されて、不正なプログラムファイルとして起動されることにより、不正行為が行われることを抑制することができる。
【００２６】
上記情報処理装置において、前記プログラム基礎ファイルは暗号化されており、
前記起動部は、前記プログラム基礎ファイルを前記所定のプログラムファイルに変換する際に、前記プログラム基礎ファイルを復号することが好ましい。
【００２７】
このような構成とすることで、プログラム基礎ファイルは復号しない限りプログラムファイルに変換されることはない。従って、仮に、記憶部に格納された不正プログラムが、プログラム基礎ファイルを所定のプログラムに勝手に変換して起動するようなプログラムであっても、かかる処理の実行を抑制することができる。
【００２８】
なお、本発明は、上記情報処理装置といった装置発明の態様に限ることなく、プログラムファイル起動方法といった方法発明として実現することも可能である。
【発明を実施するための最良の形態】
【００２９】
以下、本発明を実施するための最良の形態を実施例に基づいて以下の順序で説明する。
Ａ．実施例：
Ａ１．クレジットカード決済用端末の概要構成：
Ａ２．第１回目のプログラム起動処理：
Ａ３．第２回目のプログラム起動処理：
Ａ４．実施例の効果：
Ｂ．変形例：
【００３０】
Ａ．実施例：
Ａ１．クレジットカード決済用端末の概要構成：
図１は、本発明の一実施例としてのクレジットカード決済用端末の概要構成を示す説明図である。
【００３１】
図１に示すクレジットカード決済用端末１００は、主として、ＣＰＵ１０１，ＲＯＭ１０２，ＲＡＭ１０３，カード読取部１０４，通信制御部１０５，表示部１０６，フラッシュメモリ１１０を備えており、それぞれ内部バス１０７で接続されている。
【００３２】
カード読取部１０４は、クレジットカード（図示省略）が挿入可能であると共に、挿入されたクレジットカード（図示省略）の有する磁気記憶部（磁気ストライプ）からカード番号などの決済に必要な情報を読み出すための機能部である。
【００３３】
通信制御部１０５は、クレジットカード決済用端末１００を、決済を実行するホストコンピュータＨＴにネットワークを介して接続するための機能部である。
【００３４】
表示部１０６は、液晶パネルを有しており、決済の可否等の情報を表示する機能部である。なお、クレジットカード決済用端末１００は、これら機能部の他に、操作部等を有しているが、説明の便宜上省略している。
【００３５】
ＲＯＭ１０２には、出荷前において、図示せざる所定のオペレーティングシステム及び初期起動プログラムが記憶されている。そして、このオペレーティングシステムの下、初期起動プログラムがＲＡＭ１０３にロードされると、ＣＰＵ１０１は、この初期起動プログラムを実行することにより、起動部１０１ａとして機能することとなる。
【００３６】
フラッシュメモリ１１０には、出荷前において、初期リストファイル１２０（ファイル名：ｌｉｓｔ．ＩＮＷ），決済用プログラム原始ファイル１３０（ファイル名：ｐｐｐ．ＡＰＸ），ＤＬＬ原始ファイル１４０（ファイル名：ｑｑｑ．ＤＬＸ）が格納されている。なお、このフラッシュメモリ１１０は、請求項における記憶部及びリスト格納部に相当する。
【００３７】
以上の構成を有するクレジットカード決済用端末１００は、店舗等に備えられており、顧客がクレジットカードを用いて代金の支払いをする際に用いられる。具体的には、クレジットカード決済用端末１００の電源がオンされた際に、フラッシュメモリ１１０に記憶されている決済用プログラムファイル及びＤＬＬ（Dynamic Link Library）ファイルが起動されてＲＡＭ１０３にロードされており、ＣＰＵ１０１は、これらファイルを実行することにより、決済制御部（図示省略）として機能している。なお、これら決済用プログラムファイル及びＤＬＬファイルは、請求項における所定のプログラムファイルに相当するが、詳細については後述する。
【００３８】
そして、この決済制御部（図示省略）は、顧客のクレジットカード（図示省略）がカード読取部１０４に挿入されると、カード読取部１０４を制御して、クレジットカード（図示省略）の磁気ストライプに記録された磁気情報に基づき、カード番号等の情報を読み出す。次に、決済制御部（図示省略）は、通信制御部１０５を制御して、この読み出したカード番号等の情報と、操作部（図示省略）から入力された代金の情報と、をネットワークを介してホストコンピュータＨＴに送信する。
【００３９】
そして、ホストコンピュータＨＴにおいて、受信したカード番号及び代金等の情報や、ホストコンピュータＨＴに蓄積されている取引履歴等に基づいて決済がなされると、決済完了の情報がネットワークを介してクレジットカード決済用端末１００に送信される。クレジットカード決済用端末１００では、通信制御部１０５が決済完了の情報を受信し、決済制御部（図示省略）が、表示部１０６を制御して決済が完了した旨を表示させる。
【００４０】
このように、クレジットカード決済用端末１００は、決済を実行するホストコンピュータＨＴと接続するために、ネットワークに接続されている。従って、クレジットカード決済用端末１００は、ネットワークを介して悪意者から攻撃を受ける可能性がある。
【００４１】
具体的には、例えば、ホストコンピュータＨＴに向けて送出されるカード番号等の機密情報を読み出すための不正なプログラムファイルが、悪意者によってクレジットカード決済用端末１００に送り付けられることが考えられる。この場合、かかる不正プログラムファイルが起動されて実行されると、機密情報が不正に読み出されて、悪意者宛にネットワークを介して送信されるおそれがある。
【００４２】
なお、この不正プログラムファイルは、不正の目的で利用されるプログラムファイルであるが、例えば、ネットワーク上を伝送されるデータをモニタするための正規なモニタリングプログラムファイルであって、コンピュータウィルスとは異なる場合も考えられる。
【００４３】
かかる場合、パーソナルコンピュータ等で用いられるウィルス対策プログラムのパターンファイルには、このプログラムファイルがコンピュータウィルスとしては定義されることはない。それ故、ウィルス対策プログラムをクレジットカード決済用端末１００に適用したとしても、この不正プログラムファイルを除去することはできない。
【００４４】
そこで、本発明のクレジットカード決済用端末１００では、後述する本発明の特徴部分であるプログラム起動処理を実行して、かかる不正プログラムファイルを起動させないようにして、機密情報の不正取得などの不正行為を抑制するようにしている。
【００４５】
ここで、上述したフラッシュメモリ１１０に格納されている初期リストファイル１２０，決済用プログラム原始ファイル１３０，ＤＬＬ原始ファイル１４０について説明する。
【００４６】
図１に示す決済用プログラム原始ファイル１３０は、前述の決済用プログラムファイルに基づき作成されたファイルであり、このままではプログラムファイルとして実行することができない形式のファイルである。また、ＤＬＬ原始ファイル１４０は、決済用プログラムファイルによって利用されるＤＬＬファイルに基づき生成されたファイルであり、このままではＤＬＬファイルとして実行することができない形式のファイルである。
【００４７】
図２は、フラッシュメモリ１１０に格納されている決済用プログラム原始ファイル１３０を模式的に示す説明図である。
【００４８】
図２において（Ａ）は決済用プログラム原始ファイル１３０の模式図を、（Ｂ）は（Ａ）に示す決済用プログラム原始ファイル１３０に埋め込まれたデータを、それぞれ示す。
【００４９】
図２（Ａ）に示すように、決済用プログラム原始ファイル１３０は、決済用プログラム（白抜き部分）に、いくつかのデータが埋め込まれて生成されている。具体的には、決済用プログラムの先頭部分にこのファイルの生成年月日及び時分秒（YY/MM/DD, HH:MM:SS）が、決済用プログラム部分の途中に６つのデータ［１］〜［６］が、決済用プログラムの最後部に２つのブロックチェックキャラクタＢＣＣ１，ＢＣＣ２が、それぞれ埋め込まれている。
【００５０】
ブロックチェックキャラクタＢＣＣ１は、決済用プログラム原始ファイル１３０のうち、決済用プログラム部分の誤りをチェックするための、水平パリティチェック方式で用いられるキャラクタである。一方、ブロックチェックキャラクタＢＣＣ２は、決済用プログラム原始ファイル１３０のうち、ブロックチェックキャラクタＢＣＣ２を除く他の全ての部分の誤りをチェックするための、水平パリティチェック方式で用いられるキャラクタである。
【００５１】
これらブロックチェックキャラクタＢＣＣ１，ＢＣＣ２は、後述するように、それぞれ、決済用プログラム原始ファイル１３０、及び決済用プログラム原始ファイル１３０に含まれている決済用プログラム部分における改ざんの有無をチェックするために用いられる。
【００５２】
ここで、データ［１］〜［６］について、データ［１］を代表して、図２（Ｂ）を用いて説明する。データ［１］は、決済用プログラム原始ファイル１３０の先頭部分に格納されている生成年月日及び時分秒のデータに基づき、その埋め込み場所及び埋め込み値が定まる。
【００５３】
具体的には、例えば、図２（Ｂ）に示すように、生成年月日及び時分秒が、００／０５／２３，１８：２６：４７である場合に、データ［１］の埋め込み位置は、生成年月日及び時分秒を除くファイルの先頭から、ＭＭ（０５）とＤＤ（２６）とを並べ替えて得られる「０２５６」から１１バイトを引いた２４５バイト目の位置と定まる。一方、埋め込み値は、上述のようにして得られた「０２５６」から１を引いた「２５５」として定まる。
【００５４】
他のデータ［２］〜［６］についても、データ［１］と同様に、埋め込むべき値及び位置が、生成年月日及び時分秒に基づいて定められている。なお、生成年月日及び時分秒の各値のうちの使用する値，並び替えのルール，並び替えて得られた値から引くべき値は、各データ［２］〜［６］ごとに定められている。
【００５５】
このように、決済用プログラム原始ファイル１３０には、生成年月日及び時分秒や、データ［１］〜［６］が埋め込まれているので、このままでは決済用プログラム原始ファイル１３０は、決済用プログラムファイルとして実行されることはない。
【００５６】
一方、ＤＬＬ原始ファイル１４０も、上述した決済用プログラム原始ファイル１３０と同様に、ＤＬＬ原始ファイル１４０に含まれるＤＬＬファイル部分（図示省略）の先頭部分に、ファイルの生成年月日及び時分秒が、ＤＬＬファイル部分（図示省略）の途中に６つのデータ［１］〜［６］が、ＤＬＬファイル部分（図示省略）の最後部に２つのブロックチェックキャラクタＢＣＣ１，ＢＣＣ２が、それぞれ埋め込まれている。従って、このままではＤＬＬ原始ファイル１４０は、ＤＬＬファイルとして実行されることはない。
【００５７】
図３は、フラッシュメモリ１１０に格納されている初期リストファイル１２０を模式的に示す説明図である。
【００５８】
図３に示すように、初期リストファイル１２０は、起動すべきアプリケーションプログラムファイル［ＡＰＰ］と、起動すべきＤＬＬファイル［ＤＬＬ］と、が記載されたリストファイルである。ここで、起動すべき各ファイルは、拡張子を除くファイル名でリストアップされている。
【００５９】
具体的には、起動すべきアプリケーションプログラムファイルとして「ｐｐｐ」が、起動すべきＤＬＬファイルとして「ｑｑｑ」が、それぞれリストアップされている。そして、この「ｐｐｐ」としてリストアップされているアプリケーションプログラムファイルが、前述の決済用プログラムファイルに、「ｑｑｑ」としてリストアップされているＤＬＬファイルが、決済用プログラムによって利用されるＤＬＬファイルに、それぞれ相当する。
【００６０】
また、初期リストファイル１２０の最後部には、ブロックチェックキャラクタＢＣＣ０が埋め込まれている。このブロックチェックキャラクタＢＣＣ０は、上述した決済用プログラム原始ファイル１３０におけるブロックチェックキャラクタＢＣＣ１，ＢＣＣ２と同様に、初期リストファイル１２０のうち、このブロックチェックキャラクタＢＣＣ０部分を除く、他の全ての部分の誤りをチェックするためのキャラクタである。
【００６１】
このように、初期リストファイル１２０にもブロックチェックキャラクタＢＣＣ０が埋め込まれているのは、このブロックチェックキャラクタＢＣＣ０を用いて、初期リストファイル１２０の改ざんの有無を判定するためである。
【００６２】
Ａ２．第１回目のプログラム起動処理：
本発明の特徴部分であるプログラム起動処理の前提として、図１に示すように、クレジットカード決済用端末１００の出荷前において、フラッシュメモリ１１０には、前述の初期リストファイル１２０，決済用プログラム原始ファイル１３０，ＤＬＬ原始ファイル１４０が格納されている。また、これらファイルの他に、不正プログラムファイル１５０（ファイル名：ｖｖｖ．ＥＸＥ）が、悪意者により格納されているものとする。かかる前提の下、出荷後初めてクレジットカード決済用端末１００の電源がオンされると、第１回目のプログラム起動処理が実行される。
【００６３】
図４は、クレジットカード決済用端末１００において実行されるプログラム起動処理の手順を示すフローチャートである。
【００６４】
図４に示すプログラム起動処理が開始されると、図１に示す起動部１０１ａは、フラッシュメモリ１１０に、初期リストファイルがあるか否かを判定する（ステップＳ２０２）。具体的には、拡張子が「ＩＮＷ」であるファイルがフラッシュメモリ１１０に格納されているか否かを判定するようにする。
【００６５】
前述のように、フラッシュメモリ１１０には、ファイル名「ｌｉｓｔ．ＩＮＷ」の初期リストファイル１２０が格納されているので、起動部１０１ａは、初期リストファイルがあると判定する。そして、この場合、起動部１０１ａは、この初期リストファイル１２０の改ざんの有無をチェックする（ステップＳ２０４）。
【００６６】
具体的には、起動部１０１ａは、図３に示す初期リストファイル１２０のうち、ブロックチェックキャラクタＢＣＣ０を除く部分に基づき、ブロックチェックキャラクタを算出し、算出したブロックチェックキャラクタが、ブロックチェックキャラクタＢＣＣ０と一致するか否かで改ざんの有無を判定する。そして、一致すると判定した場合に改ざんなしと判定し、一致しないと判定した場合に改ざんありと判定する。
【００６７】
そして、改ざんなしと判定した場合に、起動部１０１ａは、初期リストファイル１２０でリストアップされたアプリケーションプログラムファイル及びＤＬＬファイルをそれぞれ含む、プログラム原始ファイル及びＤＬＬ原始ファイル（以下、これらファイルを「原始ファイル」とも呼ぶ。）が、フラッシュメモリ１１０に全て格納されているか否かを判定する（ステップＳ２０６）。
【００６８】
図３に示すように、初期リストファイル１２０では、アプリケーションプログラムファイル「ｐｐｐ」及びＤＬＬファイル「ｑｑｑ」がリストアップされている。そして、これらファイルをそれぞれ含む、決済用プログラム原始ファイル１３０及びＤＬＬ原始ファイル１４０がフラッシュメモリ１１０に全て格納されているので、起動部１０１ａは、原始ファイルが全て格納されていると判定する。
【００６９】
なお、決済用プログラム原始ファイル１３０のファイル名（ｐｐｐ．ＡＰＸ）は、決済用プログラム原始ファイル１３０に含まれるアプリケーションプログラムファイル（決済用プログラムファイル）のファイル名と拡張子が異なるだけで、同じファイル名が設定されている。また、ＤＬＬ原始ファイル１４０のファイル名（ｑｑｑ．ＤＬＸ）も、同様に、ＤＬＬ原始ファイル１４０に含まれるＤＬＬファイルのファイル名と拡張子が異なるだけで、同じファイル名が設定されている。
【００７０】
従って、起動部１０１ａは、ファイル名が「ｐｐｐ．ＡＰＸ」及び「ｑｑｑ．ＤＬＸ」のファイルがフラッシュメモリ１１０内に格納されているか否かを判定することで、初期リストファイル１２０にリストアップされたファイルを含む原始ファイルが、フラッシュメモリ１１０に格納されているか否かを判定することができる。
【００７１】
図４に戻って、起動部１０１ａは、前述のステップＳ２０６の処理において、原始ファイルが全て格納されていると判定した場合に、かかる原始ファイルの改ざんの有無を判定する（ステップＳ２０８）。
【００７２】
具体的には、例えば、決済用プログラム原始ファイル１３０については、起動部１０１ａは、図２に示す初期プログラムファイルのうち、ブロックチェックキャラクタＢＣＣ２を除く他の全ての部分に基づき、ブロックチェックキャラクタを算出し、算出したブロックチェックキャラクタが、ブロックチェックキャラクタＢＣＣ２と一致するか否かで、改ざんの有無を判定する。同様にして、ＤＬＬ原始ファイル１４０についてもブロックチェックキャラクタＢＣＣ２を用いて改ざんの有無を判定する。
【００７３】
そして、決済用プログラム原始ファイル１３０及びＤＬＬ原始ファイル１４０のいずれも改ざんなしと判定した場合に、起動部１０１ａは、これら原始ファイルから、それぞれブロックチェックキャラクタＢＣＣ２を取り除いた上で、拡張子を替えて原始ファイルを別のファイルに変換すると共に、初期リストファイル１２０からブロックチェックキャラクタＢＣＣ０を取り除いた上で、拡張子を替えて初期リストファイル１２０を別のファイルに変換する（ステップＳ２１０）。
【００７４】
具体的には、決済用プログラム原始ファイル１３０については、起動部１０１ａは、ブロックチェックキャラクタＢＣＣ２を取り除いた上で、図１の破線に示すように、拡張子を「ＡＰＸ」から「ＮＥＡ」に替えて、決済用プログラム原始ファイル１３０を、決済用プログラム暗号化ファイル１３１（ファイル名：ｐｐｐ．ＮＥＡ）に変換する。同様にして、起動部１０１ａは、ＤＬＬ原始ファイル１４０を、ＤＬＬ暗号化ファイル１４１（ファイル名：ｑｑｑ．ＤＬＡ）に変換する。
【００７５】
なお、決済用プログラム暗号化ファイル１３１及びＤＬＬ暗号化ファイル１４１（以下、これらファイルを「暗号化ファイル」とも呼ぶ。）は、暗号鍵等により暗号化されているわけではないが、上述したようにデータが埋め込まれており、このままでは実行できない形式のファイルであるので、説明の便宜上、このように呼ぶものとする。また、これら暗号化ファイルが、請求項におけるプログラム基礎ファイルに相当する。
【００７６】
一方、初期リストファイル１２０については、起動部１０１ａは、ブロックチェックキャラクタＢＣＣ０を取り除いた上で、図１の破線に示すように、拡張子を「ＩＮＷ」から「ＩＮＩ」に替えて、初期リストファイル１２０を、運用リストファイル１２１（ファイル名：ｌｉｓｔ．ＩＮＩ）に変換する。なお、この運用リストファイル１２１は、請求項におけるリストに相当する。
【００７７】
図４に戻って、次に、起動部１０１ａは、フラッシュメモリ１１０に格納されている、拡張子が「ＥＸＥ」または「ＤＬＬ」である全てのファイルを削除する（ステップＳ２１２）。
【００７８】
ここで、フラッシュメモリ１１０には、運用リストファイル１２１，決済用プログラム暗号化ファイル１３１，ＤＬＬ暗号化ファイル１４１の他に、出荷前に格納されていた不正プログラムファイル１５０が格納されている。これらのファイルのうち、拡張子が「ＥＸＥ」または「ＤＬＬ」であるファイルは、不正プログラムファイル１５０（ｖｖｖ．ＥＸＥ）のみであるので、起動部１０１ａは、この不正プログラムファイル１５０を削除する。
【００７９】
次に、起動部１０１ａは、運用リストファイル１２１を読み出し、運用リストファイル１２１でリストアップされているアプリケーションプログラムファイル及びＤＬＬファイルをそれぞれ含む、暗号化ファイルの改ざんの有無を判定する（ステップＳ２１４）。
【００８０】
上述したように、運用リストファイル１２１は、初期リストファイル１２０からブロックチェックキャラクタＢＣＣ０を取り除き、拡張子を替えただけのファイルである。従って、この運用リストファイル１２１にリストアップされているファイルは、図３に示す初期リストファイル１２０においてリストアップされていた、決済用プログラムファイル「ｐｐｐ」及びＤＬＬファイル「ｑｑｑ」となる。従って、起動部１０１ａは、これらファイルを含む暗号化ファイル（決済用プログラム暗号化ファイル１３１及びＤＬＬ暗号化ファイル１４１）の改ざんの有無を判定するようにする。
【００８１】
具体的には、例えば、決済用プログラム暗号化ファイル１３１については、起動部１０１ａは、図２に示す初期プログラムファイル（ブロックチェックキャラクタＢＣＣ２については既に取り除かれている）のうち、生成年月日及び時分秒と、データ［１］〜［２］と、ブロックチェックキャラクタＢＣＣ１と、を除く、決済用プログラム部分（白抜き部分）に基づき、ブロックチェックキャラクタを算出する。そして、起動部１０１ａは、算出したブロックチェックキャラクタが、ブロックチェックキャラクタＢＣＣ１と一致するか否かで、改ざんの有無を判定する。同様にして、ＤＬＬ暗号化ファイル１４１についてもブロックチェックキャラクタＢＣＣ１を用いて改ざんの有無を判定する。
【００８２】
図４に戻って、決済用プログラム暗号化ファイル１３１及びＤＬＬ暗号化ファイル１４１のいずれも改ざんなしと判定した場合に、起動部１０１ａは、暗号化ファイルをコピーした上で、コピーした暗号化ファイルから、ブロックチェックキャラクタＢＣＣ１及び埋め込まれた全てのデータを取り除き、拡張子を替えてファイルを変換する（ステップＳ２１６）。
【００８３】
具体的には、コピーした決済用プログラム暗号化ファイル１３１については、起動部１０１ａは、図２に示すブロックチェックキャラクタＢＣＣ１の他、生成年月日及び時分秒や、データ［１］〜［６］を取り除いた上で、図１の破線に示すように、拡張子を「ＮＥＡ」から「ＥＸＥ」に替えて、決済用プログラムファイル１３２（ファイル名：ｐｐｐ．ＥＸＥ）に変換する。
【００８４】
同様にして、コピーしたＤＬＬ暗号化ファイル１４１についても、ブロックチェックキャラクタＢＣＣ１や埋め込まれたデータを取り除いた上で、図１の破線に示すように、拡張子を「ＤＬＡ」から「ＤＬＬ」に替えて、ＤＬＬファイル１４２（ファイル名：ｑｑｑ．ＤＬＬ）に変換する。
【００８５】
次に、起動部１０１ａは、運用リストファイル１２１にリストアップされているアプリケーションプログラムファイル及びＤＬＬファイルを起動し、ＲＡＭ１０３にロードする（ステップＳ２１８）。
【００８６】
上述したように、運用リストファイル１２１には、アプリケーションプログラムファイルとして、決済用プログラムファイル１３２が、ＤＬＬファイルとして、ＤＬＬファイル１４２が、それぞれリストアップされている。そして、これらのファイルは、前述のステップＳ２１６の処理の結果、フラッシュメモリ１１０に格納されているので、起動部１０１ａは、これらファイルを読み出して起動して、ＲＡＭ１０３にロードすることができる。
【００８７】
その結果、上述したように、ＣＰＵ１０１が決済制御部（図示省略）として機能することとなり、クレジットカード決済用端末１００は、クレジットカードを用いた決済のために利用可能となる。
【００８８】
このように、決済用プログラムファイル１３２及びＤＬＬファイル１４２が起動される際には、既にフラッシュメモリ１１０から不正プログラムファイル１５０が削除されているので、クレジットカード決済用端末１００を用いた決済において、カード番号等の機密情報を悪意者に不正取得されるといった不正行為を抑制することができる。
【００８９】
なお、上述したステップＳ２０４の処理の結果、初期リストファイル１２０に改ざんありと判定した場合、また、ステップＳ２０６の処理の結果、原始ファイルがフラッシュメモリ１１０に全て格納されていないと判定した場合、また、ステップＳ２０８の処理の結果、原始ファイルのいずれかに改ざんありと判定した場合、また、ステップＳ２１４の処理の結果、暗号化ファイルのいずれかに改ざんありと判定した場合、起動部１０１ａは、それぞれの場合においてフラッシュメモリ１１０に格納されている全てのファイルを削除し（ステップＳ２２０）、図１に示す表示部１０６にエラー表示して（ステップＳ２２２）、プログラム起動処理を終了させる。
【００９０】
このように、各ファイルに改ざんがあると判定した場合にプログラム起動処理を終了させるようにしているのは、悪意者によって各ファイルが改ざんされているおそれがあり、かかる改ざんされたファイルを用いることで、不正行為を行われる可能性があるからである。
【００９１】
また、原始ファイルがフラッシュメモリ１１０に全て格納されていないと判定した場合にもプログラム起動処理を終了させるのは、以下の理由による。すなわち、悪意者によっていずれかのファイルがフラッシュメモリ１１０から削除されたおそれがあり、かかる場合、悪意者はネットワークを介してクレジットカード決済用端末１００にアクセスしているので、上述した改ざんの有無のチェックでは発見できない改ざんが、各ファイルに施されている可能性があるからである。
【００９２】
Ａ３．第２回目のプログラム起動処理：
上述した第１回目のプログラム起動処理により、クレジットカード決済用端末１００が利用可能となった場合、クレジットカード決済用端末１００はネットワークを介してホストコンピュータＨＴに接続可能となる。従って、悪意者によってネットワーク経由でクレジットカード決済用端末１００に不正なプログラムファイルを送り付けられるおそれがある。
【００９３】
ここで、第２回目のプログラム起動処理の前提として、第１回目のプログラム起動処理の後、悪意者が、前述の不正プログラムファイル１５０と同じファイルを、ネットワークを介してクレジットカード決済用端末１００に送り付けて、フラッシュメモリ１１０に格納したものとする。
【００９４】
かかる前提の下、クレジットカード決済用端末１００の電源がオフされて、再び電源がオンされると、第２回目のプログラム起動処理が開始される。この第２回目のプログラム起動処理におけるフローチャートは、図４に示すフローチャートと同じである。
【００９５】
なお、第２回目のプログラム起動処理が開始される段階で、フラッシュメモリ１１０には、悪意者から送り付けられた不正プログラムファイル１５０の他に、上述した第１回目のプログラム起動処理の結果生成（変換）された、運用リストファイル１２１，決済用プログラム暗号化ファイル１３１，ＤＬＬ暗号化ファイル１４１，決済用プログラムファイル１３２，ＤＬＬファイル１４２（以上、図１において破線で示すファイル）が格納されている。
【００９６】
第２回目のプログラム起動処理が開始されると、図４に示すように、起動部１０１ａは、フラッシュメモリ１１０に、初期リストファイルがあるか否かを判定する（ステップＳ２０２）。上述した第１回目の起動処理とは異なり、フラッシュメモリ１１０には、初期リストファイル（拡張子が「ＩＮＷ」であるファイル）がないので、起動部１０１ａは、初期リストファイルがないと判定する。
【００９７】
この場合、起動部１０１ａは、フラッシュメモリ１１０に、拡張子が「ＩＮＩ」である運用リストファイルがあるか否かを判定する（ステップＳ２２０）。前述のように、フラッシュメモリ１１０には、運用リストファイル１２１（ファイル名：ｌｉｓｔ．ＩＮＩ）が格納されているので、起動部１０１ａは、運用リストファイルがあると判定する。
【００９８】
この場合、起動部１０１ａは、フラッシュメモリ１１０に格納されている、拡張子が「ＥＸＥ」または「ＤＬＬ」である全てのファイルを削除する（ステップＳ２１２）。このとき、フラッシュメモリ１１０に格納されているファイルは、不正プログラムファイル１５０（ｖｖｖ．ＥＸＥ）と、決済用プログラムファイル１３２（ｐｐｐ．ＥＸＥ）と、ＤＬＬファイル１４２（ｑｑｑ．ＤＬＬ）と、になる。従って、起動部１０１ａはこれらファイルを全て削除する。
【００９９】
その結果、フラッシュメモリ１１０から、不正プログラムファイル１５０が取り除かれることとなるが、同時に、決済用プログラムファイル１３２及びＤＬＬファイル１４２も取り除かれてしまうこととなる。
【０１００】
そこで、起動部１０１ａは、上述したステップＳ２１４〜ステップＳ２１８の処理を再び実行して、フラッシュメモリ１１０に格納されている決済用プログラム暗号化ファイル１３１及びＤＬＬ暗号化ファイル１４１に基づき、決済用プログラムファイル１３２及びＤＬＬファイル１４２を新たに生成（変換）する。なお、ステップＳ２１４〜ステップＳ２１８の処理の詳細手順については、上述した第１回目のプログラム起動処理における手順と同じであるので、説明を省略する。
【０１０１】
このようにして新たに生成された決済用プログラムファイル１３２及びＤＬＬファイル１４２が、ステップＳ２１８の処理の結果、起動されてＲＡＭ１０３にロードされることとなる。それ故、ＣＰＵ１０１が決済制御部（図示省略）として機能することとなり、クレジットカード決済用端末１００は、クレジットカードを用いた決済のために利用可能となる。
【０１０２】
以上説明したように、第１回目のプログラム起動処理後において、不正プログラムファイル１５０がフラッシュメモリ１１０に格納された場合であっても、第２回目のプログラム起動処理を実行することによって、この不正プログラムファイル１５０を削除することができる。また、第２回目のプログラム起動処理の結果、決済用プログラムファイル１３２及びＤＬＬファイル１４２が新たに生成されて起動されるので、クレジットカード決済用端末１００は利用可能となる。
【０１０３】
なお、上述したステップＳ２２４の処理の結果、運用リストファイルがないと判定した場合、起動部１０１ａは、図１に示す表示部１０６にエラー表示して（ステップＳ２２６）、プログラム起動処理を終了させる。運用リストファイルがない場合には、起動部１０１ａは、いずれのアプリケーションプログラムファイル及びＤＬＬファイルを起動すべきか判断することができなくなるからである。
【０１０４】
また、第３回目以降のプログラム起動処理においても、上述した第２回目のプログラム起動処理を同じ処理が実行されることとなる。従って、出荷後、いずれのタイミングで不正プログラムファイルがフラッシュメモリ１１０に格納された場合でも、その後、最初にクレジットカード決済用端末１００の電源がオンされて、プログラム起動処理が実行された際に、かかる不正プログラムファイルは削除されることとなる。
【０１０５】
Ａ４．実施例の効果：
以上説明したように、プログラム起動処理が実行されるたびに、起動部１０１ａは、フラッシュメモリ１１０に格納されている、拡張子が「ＥＸＥ」または「ＤＬＬ」である全てのファイルを削除するようにしている。従って、出荷前または出荷後において、拡張子が「ＥＸＥ」または「ＤＬＬ」である不正プログラムファイル１５０が、悪意者によってフラッシュメモリ１１０に格納されても、この不正プログラムファイル１５０を取り除くことができる。その結果、かかる不正プログラムファイルによる機密情報の取得などの不正行為を抑制することができる。
【０１０６】
また、不正プログラムファイルの拡張子が「ＥＸＥ」または「ＤＬＬ」でない場合でも、この不正プログラムを、拡張子が「ＥＸＥ」または「ＤＬＬ」のファイルに変換されて実行されることはない。これは、ステップＳ２１６の処理において変換対象となるファイルは、運用リストファイル１２１にリストアップされているファイルを含む暗号化ファイルのみであり、この運用リストファイル１２１には、不正プログラムファイルはリストアップされていないからである。
【０１０７】
また、起動部１０１ａは、原始ファイルや初期リストファイル１２０等について、ブロックチェックキャラクタを用いて改ざんの有無を判定するようにし、改ざんがあると判定した場合にプログラム起動処理を終了するようにしている。従って、悪意者が、不正プログラムファイルをフラッシュメモリ１１０に格納することなく、原始ファイルや初期リストファイル１２０等を改ざんするような場合でも、プログラム起動処理が続行して完了することがないので、改ざんされたプログラムファイルの起動を抑制し、かかる改ざんされたプログラムファイルによる不正行為を抑制することができる。
【０１０８】
また、起動部１０１ａは、原始ファイルがフラッシュメモリ１１０に全て格納されていないと判定した場合にもプログラム起動処理を終了させるようにしている。従って、悪意者によって、いずれかのファイルがフラッシュメモリ１１０から削除されると共に、上述した改ざんのチェックでは発見できない改ざんが各ファイルに施されたような場合にも、かかる改ざんされたファイル（プログラムファイル）による不正行為を抑制することができる。
【０１０９】
Ｂ．変形例：
なお、本発明は、前述の実施例や実施形態に限られるものではなく、その要旨を逸脱しない範囲において、種々の態様において実施することが可能であり、例えば以下のような変形も可能である。
【０１１０】
Ｂ１．変形例１：
上述したプログラム起動処理において、ステップＳ２０２〜ステップＳ２１０の処理は、出荷後初めてクレジットカード決済用端末１００の電源がオンされ、第１回目のプログラム起動処理が開始された場合に実行されていたが、かかる場合に限らず、決済用プログラムファイルがバージョンアップされた場合等においても実行されるものである。
【０１１１】
具体的には、例えば、決済用プログラムファイルのバージョンアップのために、それまで利用されていたクレジットカード決済用端末１００がメーカ等に送られ、メーカにおいて、バージョンアップした決済用プログラムファイルのためのプログラム原始ファイル及びＤＬＬ原始ファイルが、フラッシュメモリ１１０に格納された後に、ユーザに送り返されて最初に電源がオンされた場合にも実行されることとなる。
【０１１２】
かかる場合、メーカから送り返された段階で、フラッシュメモリ１１０には、メーカにおいて新たに格納された初期リストファイル，プログラム原始ファイル，ＤＬＬ原始ファイルの他に、それまで用いられていた運用リストファイル１２１，決済用プログラム暗号化ファイル１３１，ＤＬＬ暗号化ファイル１４１，決済用プログラムファイル１３２，ＤＬＬファイル１４２が格納されている。
【０１１３】
それ故、このままプログラム起動処理を実行すると、新たに生成（変換）される運用リストファイル，決済用プログラム暗号化ファイル，ＤＬＬ暗号化ファイルと、既に格納されている運用リストファイル１２１，決済用プログラム暗号化ファイル１３１，決済用プログラム暗号化ファイル１３１と、が重複してしまうことになる。
【０１１４】
そこで、起動部１０１ａは、プログラム起動処理におけるステップＳ２１０の処理において、新たに格納された初期リストファイルを変換した上で、既にある運用リストファイル１２１に上書し、また、新たに格納された初期プログラムファイル及び初期ＤＬＬファイルを変換した上で、既にある決済用プログラム暗号化ファイル１３１及びＤＬＬ暗号化ファイル１４１に上書きするようにすればよい。
【０１１５】
Ｂ２．変形例２：
上述した実施例では、初期リストファイル１２０，決済用プログラム原始ファイル１３０，ＤＬＬ原始ファイル１４０等の改ざんの有無を判断するために、ブロックチェックキャラクタＢＣＣ１，ＢＣＣ２，ＢＣＣ０を用いていたが、本発明は、これに限定されるものではない。各ファイルの改ざんの有無をチェック可能であれば、例えば、ファイル全体を対象として、ＭＤ（Message Digest4）４やＭＤ５等の、所定のハッシュ関数に基づき算出したハッシュ値を用いるようにしても構わない。
【０１１６】
Ｂ３．変形例３：
上述した実施例では、決済用プログラム暗号化ファイル１３１及びＤＬＬ暗号化ファイル１４１は、そのままでは決済用プログラムファイル及びＤＬＬファイルとして実行できない形式とするために、生成年月日及び時分秒や、所定のルールにより算出されたデータ［１］〜［６］を埋め込むようにしていたが、本発明は、これに限定されるものではない。
【０１１７】
例えば、所定の暗号鍵で決済用プログラムファイル１３２やＤＬＬファイル１４２を暗号化することにより、決済用プログラム暗号化ファイル１３１及びＤＬＬ暗号化ファイル１４１を、そのままでは決済用プログラムファイル及びＤＬＬファイルとして実行できない形式にしても構わない。この場合、フラッシュメモリ１１０には、予めこの暗号鍵を格納しておけばよい。
【０１１８】
Ｂ４．変形例４：
上述した実施例では、フラッシュメモリ１１０に記憶されている運用リストファイル１２１については、ステップＳ２１４の処理において、改ざんの有無を確認することなく用いていたが、改ざんの有無を判定した上で、改ざんされていないと判定した場合に用いるようにしてもよい。第１回目のプログラム起動処理においては、運用リストファイル１２１の元となる初期リストファイル１２０について、ブロックチェックキャラクタＢＣＣ０により改ざんの有無を判定しているので、運用リストファイル１２１の改ざんの有無を判定する必要性は低い。しかしながら、第２回目以降においては、かかる初期リストファイル１２０の改ざんの有無の判定はなされないので、運用リストファイル１２１の改ざんの有無を判定した上で用いるようにすることが好ましい。
【０１１９】
この場合、ステップＳ２１０の処理において、初期リストファイル１２０を運用リストファイル１２１に変換する際に、拡張子のみを替えて、ブロックチェックキャラクタＢＣＣ０を取り除かないようにする。そして、ステップＳ２１４の処理の前に、かかるブロックチェックキャラクタＢＣＣ０を用いて、運用リストファイル１２１の改ざんの有無を判定するようにする。その結果、改ざんがないと判定した場合に、上述したステップＳ２１４以降の処理を行い、一方、改ざんがあると判定した場合には、上述したステップＳ２２０及びステップＳ２２２の処理を行って、フラッシュメモリ１１０に格納された全てのファイルを削除して、表示部１０６にエラー表示をさせてプログラム起動処理を終了させるようにすればよい。
【０１２０】
Ｂ５．変形例５：
上述した実施例では、初期リストファイル１２０，決済用プログラム原始ファイル１３０，ＤＬＬ原始ファイル１４０等の改ざんの有無を判定するようにしていたが、これらのファイルが改ざんされるおそれがないような場合には、かかる改ざんの有無の判定を省略するようにしても構わない。このような場合であっても、上述した実施例のように、不正なプログラムファイルがフラッシュメモリ１１０に格納されるおそれがある場合には、上述したプログラム起動処理によって、かかる不正なプログラムを削除することができる。
【０１２１】
Ｂ６．変形例６：
上述した実施例では、初期リストファイル１２０及び運用リストファイル１２１は、起動すべきアプリケーションプログラムファイルと、起動すべきＤＬＬファイルと、が記載されたリストファイルであり、それぞれのファイルが拡張子を除くファイル名でリストアップされていたが、本発明はこれに限定されるものではない。
【０１２２】
例えば、起動すべきアプリケーションプログラムファイル及びＤＬＬファイルが、それぞれ拡張子も含めたファイル名でリストアップされていても構わない。この場合、起動部１０１ａは、原始ファイルがフラッシュメモリ１１０に全て格納されているか否かを判定する場合に（ステップＳ２０６）、初期リストファイル１２０に記載されたファイル名の拡張子を除いた部分に、「ＮＥＡ」または「ＤＬＡ」の拡張子を付けたファイル名のファイルがフラッシュメモリ１１０に格納されているか否かを判定するようにすればよい。
【０１２３】
また、初期リストファイル及び運用リストファイルに代えて、原始ファイルの拡張子を含むファイル名をリストアップしたリストと、暗号化ファイルの拡張子を含むファイル名をリストアップしたリストと、起動すべきアプリケーションプログラムファイル及びＤＬＬファイルの拡張子を含むファイル名をリストアップしたリストと、をそれぞれ予めフラッシュメモリ１１０に格納しておくようにしてもよい。この場合、これらリストに基づいて、それぞれ、原始ファイルがフラッシュメモリ１１０に全て格納されているか否かを判定したり（ステップＳ２０６）、暗号化ファイルの改ざんの有無を判定したり（ステップＳ２１４）、決済用プログラムファイル及びＤＬＬファイルを起動したり（ステップＳ２１８）するようにすればよい。なお、この場合、それぞれのリスト全体が、請求項におけるリストに相当することとなる。
【０１２４】
Ｂ７．変形例７：
上述した実施例では、クレジットカード決済用端末１００におけるプログラム起動処理を説明したが、本発明は、クレジットカード決済用端末に限らず、携帯電話機を用いた決済用端末など、他の決済用端末に適用することも可能である。さらに、本発明は、決済用端末に限らず、医療情報や個人情報といった、高い機密性が求められる情報を取り扱う各種情報処理装置に適用することが可能である。このような情報処理装置に適用することによって、不正なプログラムファイルによる機密情報の不正取得を抑制することができる。
【図面の簡単な説明】
【０１２５】
【図１】本発明の一実施例としてのクレジットカード決済用端末の概要構成を示す説明図である。
【図２】フラッシュメモリ１１０に格納されている決済用プログラム原始ファイル１３０を模式的に示す説明図である。
【図３】フラッシュメモリ１１０に格納されている初期リストファイル１２０を模式的に示す説明図である。
【図４】クレジットカード決済用端末１００において実行されるプログラム起動処理の手順を示すフローチャートである。
【符号の説明】
【０１２６】
１００…クレジットカード決済用端末
１０１…ＣＰＵ
１０１ａ…起動部
１０２…ＲＯＭ
１０３…ＲＡＭ
１０４…カード読取部
１０５…通信制御部
１０６…表示部
１０７…内部バス
１１０…フラッシュメモリ
１２０…初期リストファイル
１２１…運用リストファイル
１３０…決済用プログラム原始ファイル
１３１…決済用プログラム暗号化ファイル
１３２…決済用プログラムファイル
１４０…ＤＬＬ原始ファイル
１４１…ＤＬＬ暗号化ファイル
１４２…ＤＬＬファイル
１５０…不正プログラムファイル
ＨＴ…ホストコンピュータ
ＢＣＣ１，ＢＣＣ２，ＢＣＣ０…ブロックチェックキャラクタ
【図１】
0004593455.tif 000002
【図２】
0004593455.tif 000003
【図３】
0004593455.tif 000004
【図４】
0004593455.tif 000005