(57)【要約】【課題】業務プログラムとＰＩＮ入力とを実行するキーボード及び表示装置を共有化しても、簡単なシステムでセキュリティを確保できるハンディターミナルを提供する。【解決手段】キーボードユニットメモリ２３のカードリーダ制御２３ｂがクレジットカードの挿入状態を検出し、キーボード制御プログラム２３ａからメインボード２の決済プログラム１１ｂへ、検出されたキーコードが通知される。また、メインＣＰＵ１２が、決済プログラム１１ｂに付与されたプログラム・ハッシュ値と決済プログラム１１ｂの実行時のプログラム・ハッシュ値とを計算し、プログラム・ハッシュ値が盗まれないように、秘密鍵、暗号鍵、及び公開鍵とを用いてプログラム・ハッシュ値を暗号化／復号化する。さらに、メインＣＰＵ１２が決済プログラム１１ｂに付与されたプログラム・ハッシュ値と決済プログラム１１ｂの実行時のプログラム・ハッシュ値とをそれぞれ計算して比較する。【選択図】図１
2011100401.tif 000002
【特許請求の範囲】
【請求項１】
業務プログラムの入力と決済プログラムによって制御されるクレジットカードのＰＩＮ入力とを、共通のキーボードで処理できる決済機能搭載型のハンディターミナルであって、
前記クレジットカードの挿入状態が検出されたとき、入力要求された前記決済プログラムが正規にリリースされたものか否かを、その決済プログラムのプログラム・ハッシュ値によって判定する決済プログラム正否判定手段を備えることを特徴とするハンディターミナル。
【請求項２】
業務プログラムの入力と決済プログラムによって制御されるクレジットカードのＰＩＮ入力とを、共通のキーボードで処理できる決済機能搭載型のハンディターミナルであって、
前記クレジットカードの挿抜状態を検出する検出手段と、
前記決済プログラムの改ざんを検出するための、前記決済プログラムに付与された第１のプログラム・ハッシュ値と、プログラム実行時に用いられる第２のプログラム・ハッシュ値とを計算するハッシュ値計算手段と、
第１の鍵を用いて、前記ハッシュ値計算手段が計算した前記第１のプログラム・ハッシュ値及び前記第２のプログラム・ハッシュ値を暗号化する暗号化手段と、
第２の鍵を用いて、前記暗号化手段によって暗号化された前記第１のプログラム・ハッシュ値及び前記第２のプログラム・ハッシュ値を複号化する複号化手段と、
前記決済プログラムが正規にリリースされたものか否かを判定するために、前記複号化手段によって複号化された前記第１のプログラム・ハッシュ値と前記第２のプログラム・ハッシュ値とを比較するハッシュ値比較手段と、
前記ハッシュ値比較手段による比較結果が整合化されたとき、前記検出手段が検出した前記クレジットカードの挿抜状態に基づいてキーコードの通知を制御するキーコード通知制御手段と
を備えることを特徴とするハンディターミナル。
【請求項３】
前記決済プログラム正否判定手段は、前記決済プログラムが正当であると判定したときは、前記クレジットカードのＰＩＮコード入力の実行を可能にし、前記決済プログラムが不正であると判定したときは、キーコードの通知を拒否して前記ＰＩＮコード入力の実行を不可能にすることを特徴とする請求項１記載のハンディターミナル。
【請求項４】
前記ハッシュ値比較手段が、前記第１のプログラム・ハッシュ値と前記第２のプログラム・ハッシュ値とが整合すると判定したとき、前記キーコード通知制御手段は、前記クレジットカードのＰＩＮコード入力の実行を可能にし、
前記ハッシュ値比較手段が、前記第１のプログラム・ハッシュ値と前記第２のプログラム・ハッシュ値とが不整合であると判定したとき、前記キーコード通知制御手段は、キーコードの通知を拒否して前記ＰＩＮコード入力の実行を不可能にする
ことを特徴とする請求項２記載のハンディターミナル。
【請求項５】
さらに、暗号化した前記第１のプログラム・ハッシュ値と前記決済プログラムとを結合させる結合手段を備え、
前記結合手段は、暗号化した前記第１のプログラム・ハッシュ値と前記決済プログラムとを結合モジュールとしてメインボードメモリにインストールすることを特徴とする請求項２又は４記載のハンディターミナル。
【請求項６】
前記第１の鍵は秘密鍵及び乱数を用いて生成した暗号鍵であり、前記第２の鍵は、前記暗号鍵及び公開鍵であって、前記第１のプログラム・ハッシュ値及び前記第２のプログラム・ハッシュ値は前記秘密鍵と前記暗号鍵の少なくとも１つを用いて暗号化され、暗号化された前記第１のプログラム・ハッシュ値及び前記第２のプログラム・ハッシュ値は、前記公開鍵又は前記暗号鍵を用いて復号化されることを特徴とする請求項２、４、又は５に記載のハンディターミナル。
【請求項７】
業務プログラムの入力と決済プログラムによって制御されるクレジットカードのＰＩＮ入力とを、共通のキーボードで処理できるハンディターミナルを用いる決済方法であって、
前記クレジットカードの挿入状態を検出する第１のステップと、
前記第１のステップで前記クレジットカードの挿入状態が検出されたとき、入力要求された決済プログラムが正規にリリースされたものか否かを前記決済プログラムのプログラム・ハッシュ値によって判定する第２のステップと
を含むことを特徴とするハンディターミナルを用いる決済方法。
【請求項８】
業務プログラムの入力と決済プログラムによって制御されるクレジットカードのＰＩＮ入力とを、共通のキーボードで処理できるハンディターミナルを用いる決済方法であって、
前記クレジットカードの挿抜状態を検出する第１のステップと、
前記決済プログラムの改ざんを検出するための、前記決済プログラムに付与された第１のプログラム・ハッシュ値と、プログラム実行時に用いられる第２のプログラム・ハッシュ値とを計算する第２のステップと、
第１の鍵を用いて、前記第２のステップで計算された前記第１のプログラム・ハッシュ値及び前記第２のプログラム・ハッシュ値を暗号化する第３のステップと、
第２の鍵を用いて、前記第３のステップで暗号化された前記第１のプログラム・ハッシュ値及び前記第２のプログラム・ハッシュ値を複号化する第４のステップと、
前記決済プログラムが正規にリリースされたものか否かを判定するために、前記第４のステップで複号化された前記第１のプログラム・ハッシュ値と前記第２のプログラム・ハッシュ値とを比較する第５のステップと、
前記第５のステップにおける比較結果が整合化されたとき、前記第１のステップで検出した前記クレジットカードの挿抜状態に基づいてキーコードの通知を制御する第６のステップと
を含むことを特徴とするハンディターミナルを用いる決済方法。
【請求項９】
前記決済プログラムが正当であると判定されたときは、前記クレジットカードのＰＩＮコード入力の実行を可能にし、前記決済プログラムが不正であると判定したときは、キーコードの通知を拒否して前記ＰＩＮコード入力の実行を不可能にすることを特徴とする請求項７記載のハンディターミナルを用いる決済方法。
【請求項１０】
前記第５のステップにおいて前記第１のプログラム・ハッシュ値と前記第２のプログラム・ハッシュ値とが整合すると判定されたときは、前記第６のステップにおいて前記クレジットカードのＰＩＮコード入力の実行を可能にし、前記第１のプログラム・ハッシュ値と前記第２のプログラム・ハッシュ値とが不整合であると判定されたときは、前記第６のステップにおいてキーコードの通知を拒否して前記ＰＩＮコード入力の実行を不可能にすることを特徴とする請求項８記載のハンディターミナルを用いる決済方法。
【請求項１１】
前記第３のステップにおいて前記第１のプログラム・ハッシュ値及び前記第２のプログラム・ハッシュ値が暗号化されたとき、暗号化された前記第１のプログラム・ハッシュ値と前記決済プログラムとは、結合モジュールとしてメインボードメモリにインストールされることを特徴とする請求項８又は１０記載のハンディターミナルを用いる決済方法。
【請求項１２】
前記第３のステップで用いられる前記第１の鍵は秘密鍵及び乱数を用いて生成した暗号鍵であり、前記第４のステップで用いられる前記第２の鍵は前記暗号鍵及び公開鍵であって、
前記第１のプログラム・ハッシュ値及び前記第２のプログラム・ハッシュ値は前記秘密鍵と前記暗号鍵の少なくとも１つを用いて暗号化され、暗号化された前記第１のプログラム・ハッシュ値及び前記第２のプログラム・ハッシュ値は、前記公開鍵又は前記暗号鍵を用いて復号化されることを特徴とする請求項８、１０、又は１１記載のハンディターミナルを用いる決済方法。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、決済機能を搭載したハンディターミナル（携帯情報端末）に関し、特に、クレジットカード等の決済を行うことができるハンディターミナルに関する。
【背景技術】
【０００２】
従来より、クレジットカードのＰＩＮ（Personal Identification Number：暗証番号）を入力して決済処理を行うことができるハンディターミナルを対象にした、決済カードのセキュリティに関する国際統一基準（ＰＣＩＤＳＳ：Payment Card Industry Data Security Standard：クレジットカード業界データセキュリティ基準）が規定化されている。この国際統一基準によれば、ハンディターミナルにＰＩＮ入力専用のキーボードと表示装置を設けることにより、ＰＩＮコードの盗み出しを防止することができる。すなわち、クレジットカードのＰＩＮ入力を行う場合、業務プログラムで使用するキーボードとは別に、ＰＩＮ入力専用のキーボードを設けてＰＩＮ入力を行う。また、表示方法についても、業務プログラムとＰＩＮ入力とによって使用する表示装置を分離する。このようにして、ＰＩＮ入力と業務プログラムを実行する場合において、キーボード及び表示装置をそれぞれ分離することにより、ＰＩＮコードの盗み出しを防止することが可能となる。
【０００３】
また、飲食店などにおいて、ＰＯＳ(Point Of Sales)と客席のハンディターミナルとを連携させることにより、ＰＯＳでの操作を行うことなく、客席にいながら顧客のクレジットカードの決済処理を行うことができるオーダ決済システムの技術が開示されている（例えば、特許文献１参照）。また、ＰＤＡ（Personal Digital Assistance：個人情報機器）を利用してＩＣカードのクレジット決済処理を行う技術も開示されている（例えば、特許文献２参照）。この技術によれば、ＩＣカードとＰＤＡと決済サーバとが連携するように構成されていて、決済サーバにはあらかじめ顧客情報Ａが登録されている。そして、顧客がＰＤＡに入力したＰＩＮとＩＣカードのＰＩＮとが一致したときに、ＰＤＡから決済サーバへＩＣカードの顧客情報Ｂが送信される。次に、ＰＤＡから決済サーバへ送信された顧客情報Ｂと決済サーバに登録されている顧客情報Ａとが一致したときに、決済サーバがＰＤＡに対してＩＣカードの決済指示を行う。これによって、顧客情報の盗み出しを防止しながらＩＣカードのクレジット決済処理を行うことができる。
【０００４】
また、メインＣＰＵボードとサブＣＰＵボードからなるマルチＣＰＵシステムにおいて、サブＣＰＵボードが認証秘密キーと運用プログラムとを用いて認証した場合のみ、メインＣＰＵボードが決済処理を行う技術も開示されている（例えば、特許文献３参照）。このようにして、認証を行うサブＣＰＵボードと決済処理を実行するメインＣＰＵボードとを分離することにより、顧客情報の盗み出しを防止しながらカードの決済処理を行うことが可能となる。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００２−１３３５３３号公報
【特許文献２】特開２００５−１８２３１５号公報
【特許文献３】特開２００６−１７８５４４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、一つの携帯情報端末をＰＩＮ入力専用機にすると、これとは別に業務プログラム用の携帯情報端末を用意しなければならないため、携帯情報端末を２台持つことになって携帯性が損なわれてしまう。また、一つの携帯情報端末の中に、業務プログラム用とＰＩＮ入力用の２つのキーボードと表示装置を実装すると製品コストが上昇し、かつ用途が限定されてしまうので、携帯情報端末としての製品展開を妨げる要因となる。
【０００７】
そこで、業務プログラムで使用するキーボードと表示装置をＰＩＮ入力でも共有することができるようにすれば、一つの携帯情報端末を小型化することができる。言い換えると、業務プログラムとＰＩＮ入力がキーボードと表示装置を共有できることにより、アプリケーションを動作させる環境となるソフトウエアやハードウエアのプラットフォームを共通化することができ、結果的に、携帯情報端末の装置を小型化することができると共に、携帯情報端末の製品展開を効率的に行うことが可能となる。これによって、携帯情報端末の携帯性の向上、構造設計の簡素化、製造工程の簡易化、製品コストの低減化、及び携帯情報端末の利便性の向上につながる。ところが、業務プログラム用とＰＩＮ入力用のキーボード及び表示装置を共有化することにより、悪意をもったプログラムがインストールされた場合、ＰＩＮ入力の擬似入力画面を作ってＰＩＮコードを盗み出しすることが可能となる。
【０００８】
また、特許文献１に記載の技術は、決済専用のハンディターミナルがＰＯＳと連携することによって決済処理を行うものであり、ハンディターミナルは単独では決済処理を行うことはできない。また、このハンディターミナルは、業務プログラムなどを展開するものではなく、クレジットカードの決済処理のみを行うものである。従って、この技術によっては、業務プログラム用とＰＩＮ入力用のキーボード及び表示装置を共有化するハンディターミナルの技術に展開することはできない。
【０００９】
また、特許文献２の技術においては、ＰＤＡは、決済サーバと連携することによって盗み出しを防止しながら決済処理を行うことができるようになっているので、決済処理システムが複雑になってしまう。また、ＰＤＡは、単独では盗み出しを防止しながら決済処理を行う機能を備えていないので、特許文献１と同様に、業務プログラム用とＰＩＮ入力用のキーボード及び表示装置を共有化する技術に展開することはできない。
【００１０】
さらに、特許文献３の技術においても、メインＣＰＵボードとサブＣＰＵボードとが連携することにより、盗み出しを防止しながら決済処理を行うことができるようになっているので、やはり決済処理システムが複雑になってしまう。この技術においても、メインＣＰＵボードまたはサブＣＰＵボードが単独で盗み出しを防止しながら決済処理を行う技術に展開することはできない。
【００１１】
この発明は、上述の事情に鑑みてなされたもので、業務プログラムとＰＩＮ入力とを実行するキーボード及び表示装置を共有化しても、簡単なシステムでセキュリティを確保することができるような決済機能を搭載したハンディターミナル（携帯情報端末）を提供することを目的としている。
【課題を解決するための手段】
【００１２】
上記目的を達成するために、この発明の第１の構成は、業務プログラムの入力と決済プログラムによって制御されるクレジットカードのＰＩＮ入力とを、共通のキーボードで処理できる決済機能搭載型のハンディターミナルであって、前記クレジットカードの挿入状態が検出されたとき、入力要求された前記決済プログラムが正規にリリースされたものか否かを、その決済プログラムのプログラム・ハッシュ値によって判定する決済プログラム正否判定手段を備えてなることを特徴としている。
【００１３】
また、この発明の第２の構成は、業務プログラムの入力と決済プログラムによって制御されるクレジットカードのＰＩＮ入力とを、共通のキーボードで処理できるハンディターミナルを用いる決済方法であって、前記クレジットカードの挿入状態を検出する第１のステップと、前記第１のステップで前記クレジットカードの挿入状態が検出されたとき、入力要求された決済プログラムが正規にリリースされたものか否かを前記決済プログラムのプログラム・ハッシュ値によって判定する第２のステップとを含むハンディターミナルを用いる決済方法である。
【発明の効果】
【００１４】
この発明によれば、業務プログラムとＰＩＮ入力とを行うキーボード及び表示装置が共有化されていても、あらかじめ所定のプログラム認証を行うことによって決済プログラムの正当性を確認することで、クレジットカードのＰＩＮコードの盗み出し防止を行うことができる。このとき、クレジットカードの挿入状態を検出して、認証された決済プログラムのみにキー入力の通知を行う。また、クレジットカードが抜かれた状態では、汎用的なキーボードとして既存の業務プログラムも動作させることができるので、一定レベルの汎用性は充分に確保される。
【図面の簡単な説明】
【００１５】
【図１】この発明の実施形態に係る決済機能搭載型のハンディターミナルの構成を示すブロック図である。
【図２】図1に示す決済機能搭載型のハンディターミナルの全体的な動作の流れを示すフローチャートである。
【図３】図２のステップＳ１，Ｓ２におけるインストール・モジュール準備と装置登録の詳細な流れを示すフローチャートである。
【図４】図２のステップＳ６における決済プログラム１１ｂの認証処理の詳細な流れを示すフローチャートである。
【発明を実施するための形態】
【００１６】
この発明は、業務プログラムの入力とクレジットカードのＰＩＮ入力が共通のキーボードで処理できる決済機能搭載型のハンディターミナルにおいて、クレジットカードの挿入状態を検出したときに、入力要求された決済プログラムが正規にリリースされたものか否かを決済プログラムのハッシュ値によって判定する。このとき、入力要求された決済プログラムが正当なプログラムであればキーコードを通知してクレジットカードのＰＩＮ入力を可能とするが、入力要求された決済プログラムが不正なプログラムであれば、キーコードを通知しないようにすることによってＰＩＮコードの盗み出しを防止している。
【実施形態】
【００１７】
以下、図面を参照して、この発明に係る決済機能搭載型のハンディターミナルの実施形態について詳細に説明する。図１は、この発明の実施形態に係る決済機能搭載型のハンディターミナルの構成を示すブロック図である。
【００１８】
まず、図１に示す決済機能搭載型のハンディターミナルの構成について説明する。図１に示すように、決済機能搭載型のハンディターミナル１は、メインボード２とキーボードユニット３とによって構成されている。
【００１９】
メインボード２は、メインボード２上のプログラム（業務プログラム１１ａ及び決済プログラム１１ｂ）の実行処理を行うメインボードメモリ１１と、ハンディターミナル１の装置全体の処理を行うメインＣＰＵ（中央制御部）１２と、業務プログラム１１ａ及び決済プログラム１１ｂの内容や外部から入力された内容の表示を行う表示ユニット１３とを備えて構成されている。
【００２０】
また、キーボードユニット３は、キーボードユニット３における各種制御プログラムの制御を行うサブＣＰＵ２１と、各種の操作入力を行うためのユーザインタフェースとなるキーボード２２と、キーボードユニット３の各種制御プログラム（キーボード制御プログラム２３ａ、カードリーダ制御プログラム２３ｂ、及びＰＩＮ入力制御プログラム２３ｃ）を実行するキーボードユニットメモリ２３と、クレジットカードの情報を読み取るカードリーダ２４とを備えて構成されている。
【００２１】
次に、フローチャートを用いて、図1に示す決済機能搭載型のハンディターミナル１の動作を説明する。図２は、図1に示す決済機能搭載型のハンディターミナル１の全体的な動作の流れを示すフローチャートである。なお、図２のフローチャートでは、メインボード２とキーボードユニット３の動作の流れが示されている。
【００２２】
図２において、まず、ハンディターミナル１にインストールするためのモジュールを準備し（ステップＳ１）、このモジュールをハンディターミナル１の装置へ登録する(ステップＳ２)。なお、インストール・モジュールの準備（ステップＳ１）及び装置登録（ステップＳ２）の詳細な処理の流れについては、後述する図３のフローチャートで説明する。
【００２３】
次に、ステップＳ２においてハンディターミナル１への装置登録（インストール作業）が完了したら、通常の運用時における業務処理が開始される（ステップＳ３）。これによって、キーボードユニット３は、汎用キーボードとしての利用により、ユーザによってキーボード２２の入力操作が行われる。ここで、キーボードユニット３がキーボード入力を検出してメインボード２へ通知すると（ステップＳ４）、メインボードメモリ１１の業務プログラム１１ａは、キーボードユニット３のキーボード入力情報からキーコードを取得する（ステップＳ５）。
【００２４】
また、ハンディターミナル１のキーボードユニット３は、クレジットカードのＰＩＮコード入力を行うこともできる。この場合は、悪意のあるプログラムからＰＩＮコードの盗み出しを防止するために、メインボード２におけるメインボードメモリ１１の決済プログラム１１ｂの認証処理を行う（ステップＳ６）。このような決済プログラム１１ｂの認証タイミングは、決済プログラム１１ｂが立ち上るたびに（すなわち、ＥＸＥファイルが実行される都度）行われる。なお、決済プログラムの認証処理の詳細な流れについては、後述する図４のフローチャートで詳細に説明する。
【００２５】
ステップＳ６で決済プログラムの認証処理が完了すると、キーボードユニット３におけるキーボードユニットメモリ２３のカードリーダ制御２３ｂによってクレジットカードの挿入が検出される（ステップＳ７）。そして、決済プログラム１１ｂに付与された第１のハッシュ値と決済プログラム１１ｂの実行時に計算された第２のハッシュ値との比較結果よって、正しい決済プログラムであると判定された場合は、キーボード２２へのキーコードの入力が検出されると（ステップＳ８）、キーボードユニット３のキーボード制御プログラム２３ａからメインボード２へ、検出されたキーコードが通知される。これによって、メインボード２におけるメインボードメモリ１１の決済プログラム１１ｂはキーコードを取得する（ステップＳ９）。なお、ハッシュ値の比較結果よって不正プログラムであると判定された場合は、キーボードユニット３はメインボード２へのキーボード入力の通知は行わない。
【００２６】
ここで、ステップＳ９において決済プログラム１１ｂがキーコードを取得した場合は、クレジットカードのＰＩＮ入力が行われている間中は（ステップ１０）、キーボードユニット３は決済プログラム１１ｂへキーボード入力通知を継続するが（ステップＳ８）、このとき、キーコードとしては『＊コード』を通知する。最後に、クレジットカードが抜かれたことが検出されると（ステップＳ１１）、ハッシュ値の比較結果は全てクリアされて、前述のステップＳ４、Ｓ５の汎用キーボードの処理に戻る。
【００２７】
次に、図２のステップＳ１、Ｓ２におけるインストール・モジュールの準備と装置登録の流れについて詳細に説明する。図３は、図２のステップＳ１，Ｓ２におけるインストール・モジュール準備と装置登録の詳細な流れを示すフローチャートである。
【００２８】
図３において、プログラム・ハッシュ値の盗み出しを防止するために、プログラム作成者は、まず、暗号化に使う鍵と複号化に使う鍵が分離されている非対称鍵であって不特定者に配布される公開鍵を用意すると共に（ステップＳ２１）、自分だけが知っている秘密鍵を用意する（ステップＳ２２）。次に、メインボード２におけるメインボードメモリ１１の決済プログラム１１ｂを用意し（ステップＳ２３）、開発ＰＣ（Personal Computer）を使って、メインＣＰＵ１２により決済プログラム１１ｂに付与されたハッシュ値を計算する（ステップＳ２４）。なお、ハッシュ値は、決済プログラム１１ｂにおける任意のデータから固定長の乱数を生成する演算手法により計算された値であって、このハッシュ値を利用することでデータの検索時間を短縮化することが可能となる。
【００２９】
次に、ハッシュ値の盗み出しを防止するために、ステップＳ２２で用意した秘密鍵を用いて、ステップＳ２４で計算されたハッシュ値を暗号化する（ステップＳ２５）。さらに、暗号化したハッシュ値と決済プログラム１１ｂとを結合し（ステップＳ２６）、結合したモジュール（つまり、暗号化したハッシュ値と決済プログラム１１ｂ）をハンディターミナル１におけるメインボード２のメインボードメモリ１１にインストールする（ステップＳ２７）。
【００３０】
また、業務処理を行うための業務プログラム１１ａについても、メインボード２におけるメインボードメモリ１１にインストールする（ステップＳ２８）。さらに、ハッシュ値を復号化するために、ステップＳ２１で用意した公開鍵をキーボードユニット３のキーボードユニットメモリ１１にインストールする（ステップＳ２９）。
【００３１】
次に、図２のステップＳ６における決済プログラム１１ｂの認証処理の詳細な流れについて説明する。図４は、図２のステップＳ６における決済プログラム１１ｂの認証処理の詳細な流れを示すフローチャートである。先ず、図３のステップＳ２６で結合化されたハッシュ値（暗号化）と決済プログラム１１ｂとの結合モジュールを分離し（ステップＳ３１）、決済プログラム１１ｂはメインボード２に残し（ステップＳ３２）、暗号化されているハッシュ値はキーボードユニット３へ転送する（ステップＳ３３）。すると、キーボードユニット３のサブＣＰＵ２１は、登録されている公開鍵を用いてこのハッシュ値を復号化し（ステップＳ３４）、ハッシュ値を平文にする（ステップＳ３５）。
【００３２】
一方、メインボード２側においては、ステップＳ３２で残された決済プログラム１１ｂの実行時のハッシュ値をメインＣＰＵ１２によって計算する（ステップＳ３６）。そして、メインボード２とキーボードユニット３のキーボード２２との間のインタフェース間における盗聴を防止するために、キーボードユニット３側で乱数を利用して暗号鍵を生成し（ステップＳ３７）、この暗号鍵をメインボード２へ転送する。すると、メインボード２側は、キーボードユニット３から受信した暗号鍵を使用して、ステップＳ３６でメインＣＰＵ１２によって計算されたハッシュ値を暗号化し（ステップＳ３８）、暗号化されたハッシュ値をキーボードユニット３へ転送する（ステップＳ３９）。
【００３３】
これによって、キーボードユニット３側は、暗号化されたハッシュ値をメインボード２から受信し（ステップＳ４０）、ステップＳ３７で生成した暗号鍵を用いて暗号化されたハッシュ値を復号化して平文のハッシュ値を取り出す（ステップＳ４１）。さらに、図３のステップＳ２４で開発ＰＣがメインＣＰＵ１２によって計算した決済プログラム１１ｂに付与された第１のハッシュ値と、図４のステップＳ３６メインＣＰＵ１２が計算した決済プログラム１１ｂの実行時の第２のハッシュ値とを比較する（ステップＳ４２）。そして、第１のハッシュ値と第２のハッシュ値との比較結果が整合されれば、決済プログラム１１ｂは認証されたものとして、その認証結果をキーボードユニット３側のキーボードユニットメモリ２３に保存する（ステップＳ４３）。
【００３４】
なお、ハッシュ値を暗号化するのは、次の２つの理由によるものである。すなわち、
（１）ハッシュ値の暗号化のロジックが正しいか否かを確認することにより、メインボード２側の処理が正当なものか否かを判断することができる。
（２）メインボード２とキーボードユニット３のシリアルインタフェース部分が常時モニタされ、ハッシュ値が盗み出されないように、その都度、乱数によって暗号鍵を変えながらハッシュ値を暗号化することによってハッシュ値の流出を防止している。
【００３５】
以上説明したように、この発明のハンディターミナルは、クレジットカードの挿入状態が検出されたとき、入力要求された決済プログラムが正規にリリースされたものか否かを決済プログラムのハッシュ値によって判定する決済プログラム正否判定手段を備えている。そして、決済プログラム正否判定手段が、決済プログラムは正当なプログラムであると判定したときはキーコードを通知してＰＩＮ入力を可能にし、決済プログラムは不正プログラムであると判定したときはキーコードの通知を拒否してＰＩＮ入力を不可能にする。これによって、悪意のある第三者によってＰＩＮ入力コードが読み取られることを防止することができる。
【００３６】
さらに、この発明のハンディターミナルの手段を細分化すると、クレジットカードの挿抜状態を検出する検出手段と、クレジットカードの挿抜状態でキーコード通知を制御するキーコード通知制御手段と、決済プログラムの改ざんを検出するためのプログラム・ハッシュ値を計算するハッシュ値計算手段と、プログラム・ハッシュ値が盗み出されないように、プログラム製造者が所有する秘密鍵及び暗号鍵と公開鍵とを用いてプログラム・ハッシュ値を暗号化／復号化する暗号化／復号化手段と、暗号化したハッシュ値と決済プログラムとを結合させる結合手段と、決済プログラムが正規リリースされたものか否かを判定するために、プログラムに付与されているハッシュ値とプログラム実行時に計算されたハッシュ値とを比較するハッシュ値比較手段とを備えて構成されている。
【００３７】
ここで、クレジットカードの挿抜状態を検出する検出手段は、キーボードユニットメモリ２３のカードリーダ制御２３ｂによるクレジットカードの挿入検出によって実現される。また、クレジットカードの挿抜状態でキーコード通知を制御するキーコード通知制御手段は、キーボードユニット３のキーボード制御プログラム２３ａからメインボード２の決済プログラム１１ｂへ、検出されたキーコードが通知・表示されることによって実現される。
【００３８】
また、決済プログラムの改ざんを検出するためのプログラム・ハッシュ値を計算するハッシュ値計算手段は、メインＣＰＵ１２が、決済プログラム１１ｂに付与されたハッシュ値や決済プログラム１１ｂの実行時のハッシュ値を計算することによって実現される。さらに、プログラム・ハッシュ値が盗み出されないように、プログラム製造者が所有する秘密鍵及び暗号鍵と公開鍵とを用いてプログラム・ハッシュ値を暗号化／復号化する暗号化／復号化手段は、メインＣＰＵ１２及びサブＣＰＵ２１が秘密鍵及び暗号鍵と公開鍵とを用いてハッシュ値を暗号化／復号化することによって実現される。
【００３９】
また、暗号化したハッシュ値と決済プログラムとを結合させる結合手段は、暗号化したハッシュ値と決済プログラム１１ｂとを合併させてモジュール化してメインボード２のメインボードメモリ１１にインストールすることによって実現される。さらに、プログラムに付与されているハッシュ値とプログラム実行時に計算されたハッシュ値とを比較するハッシュ値比較手段は、メインＣＰＵ１２が、決済プログラム１１ｂに付与された第１のハッシュ値と決済プログラム１１ｂの実行時の第２のハッシュ値とをそれぞれ計算して比較することによって実現される。
【００４０】
以上説明したように、この発明のハンディターミナル１は、業務プログラムとＰＩＮ入力を共通のキーボード２２で行う場合であっても、ＰＩＮ入力の操作に先立って、決済プログラム１１ｂが正規にリリースされたものか否かを判定する。このとき、入力要求された決済プログラムが正当なプログラムであれば、キーコードが通知されて正常にＰＩＮコードを入力することができる。一方、入力要求された決済プログラムが不正なプログラムであれば、キーコードを通知しないようにすることでＰＩＮコードの盗み出しを防止することができる。
【００４１】
以上、この発明の実施形態を、図面を参照して詳述してきたが、この発明の具体的に構成は、これらの実施形態に限られるものではなく、この発明の趣旨を逸脱しない範囲の設計の変更等があってもそれらはこの発明に含まれる。例えば、業務プログラムとＰＩＮ入力を共通のキーボードで行うことができるこの発明のハンディターミナルは、クレジットカードの決済処理に限定されることなく、電子マネーとして利用しても第三者によって不正に使用されることを防止することができる。
【産業上の利用可能性】
【００４２】
この発明のハンディターミナルは、ＰＯＳなどの上位装置と連携することなく、単独で業務プログラムとＰＩＮ入力とを交互に使用してもＰＩＮ入力コードの盗み出しを防止することができるので、例えば、小売店やデパートの売り場などにおいても有効に利用することが可能となる。
【符号の説明】
【００４３】
１    ハンディターミナル
２    メインボード
３    キーボードユニット
１１    メインボードメモリ
１１ａ    業務プログラム
１１ｂ    決済プログラム（ハッシュ値計算手段）
１２    メインＣＰＵ（決済プログラム正否判定手段、ハッシュ値計算手段、暗号化手段、結合手段）
１３    表示ユニット
２１    サブＣＰＵ（複合化手段、ハッシュ値比較手段）
２２    キーボード
２３    キーボードユニットメモリ（キーコード通知制御手段）
２３ａ    キーボード制御プログラム（検出手段）
２３ｂ    カードリーダ制御プログラム
２３ｃ    ＰＩＮ入力制御プログラム
２４    カードリーダ
【図１】
2011100401.tif 000003
【図２】
2011100401.tif 000004
【図３】
2011100401.tif 000005
【図４】
2011100401.tif 000006