(57)【要約】【課題】タンパが検出されても、決済端末装置を引き続き運用することが可能な技術を提供することを目的とする。【解決手段】実施形態の決済端末装置は、第１ユニットと、第２ユニットと、検知部と、制御部とを有する。第１ユニットはカードを読み取る。第２ユニットは、第１ユニットで読み取られるカードのデータを、事前に定義される第１フォーマットで受信する。検知部は、動きを検知し、その動きが規定を超えると異常情報を出力する。制御部は、検知部から異常情報を受信すると、第１ユニットと第２ユニットとの間の通信が、第１フォーマットとは異なるフォーマットとなるように切り替える。【選択図】図３
2015179359.tif 000002
【特許請求の範囲】
【請求項１】
カードを読み取る第１ユニットと、
前記第１ユニットで読み取られるカードのデータを、事前に定義される第１フォーマットで受信する第２ユニットと、
動きを検知し、その動きが規定を超えると異常情報を出力する検知部と、
前記検知部から異常情報を受信すると、前記第１ユニットと前記第２ユニットとの間の通信が、前記第１フォーマットとは異なるフォーマットとなるように切り替える制御部と、
を有する決済端末装置。
【請求項２】
請求項１に記載の決済端末装置において、
前記制御部は、前記カードのデータの並びが前記第１フォーマットとは異なる並びとなるように切り替える。
【請求項３】
請求項１または２に記載の決済端末装置において、
前記制御部は、前記第１ユニットからの出力レベルを、前記第１フォーマットとは異ならせるように切り替える。
【請求項４】
請求項１乃至３のいずれか１項に記載の決済端末装置において、
前記制御部は、さらに、前記決済端末装置が使用する、運用使用前のプログラムのハッシュ値を算出し、
運用使用中、現在使用しているプログラムのハッシュ値を算出し、該ハッシュ値と前記運用使用前のハッシュ値とを比較して、一致しない場合、前記現在使用しているプログラムを前記運用使用前のプログラムに戻す。
【請求項５】
請求項４に記載の決済端末装置において、
前記制御部は、ハッシュ値が一致しない場合、さらに、前記第１ユニットと前記第２ユニットとの間での通信に使用する暗号鍵を、運用使用前の暗号鍵に戻す。
【請求項６】
カードを読み取る第１ユニットと、
前記第１ユニットで読み取られるカードのデータを、事前に定義される第１フォーマットで受信する第２ユニットと、
動きを検知し、その動きが規定を超えると異常情報を出力する検知部とを有する決済端末装置が実行するためのプログラムであり、
前記検知部から異常情報を受信すると、前記第１ユニットと前記第２ユニットとの間の通信が、前記第１フォーマットとは異なるフォーマットとなるように切り替える
処理を、前記決済端末装置に実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
この明細書に記載の実施形態は、決済端末装置のタンパ検出に関する。
【背景技術】
【０００２】
例えば決済端末装置のケースが開けられた場合や、プログラム、データの改ざんが発生した場合、「タンパ検出センサ回路」などが動作することで「タンパ」が検出される。タンパが検出されると、決済端末装置は、暗号鍵あるいはプログラムを消去して、自らを停止して利用不可能にする。
【０００３】
決済端末装置を利用不可能にする手法や復旧方法として、以下のような実装がある。
１．決済端末装置が停止した場合に決済端末装置内の暗号鍵及びプログラムを消去して、機能を停止させる。停止した決済端末装置はメーカで新たな暗号鍵とプログラムを再度導入する。
２．決済端末装置が暗号鍵を削除し、搭載プログラムは機能停止したことをネットワーク経由で管理運用会社のサーバに通知し、ネットワーク経由で暗号鍵を変更する。これにより再度利用可能となる。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１２−２４３２７５号公報
【特許文献２】特開２００５−２６７０３１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
従来の決済端末装置やシステムでは、機密性が重要視されており、タンパが検出される場合は、安全性の観点から機能停止する。上記１の実装では、装置自体がメーカに送り返されることから、メーカが交換用の決済端末装置を持ってくるまで、決済業務は停止を余儀なくされる。このため、決済端末装置の停止時にカード決済を望む消費者が現れたときには、消費者の要求に応えられなくなり信用低下につながる。
【０００６】
上記２の実装では、上記１の実装よりも決済端末装置の停止時間が短くなるメリットがある。しかしながら、決済端末装置が管理運営会社の管理サーバにネットワーク接続されている場合にのみ対応可能である。セキュリティの観点で、決済端末装置が決済処理会社の決済処理サービスにしか接続できない場合、すなわち、管理サーバとの接続が禁止されている環境である場合、暗号鍵の変更（更新）はできない。よって上記２の実装は、効果が限定的である。
【０００７】
実施形態は上述した問題点を解決するためになされたものであり、タンパが検出されても、決済端末装置を引き続き運用することが可能な技術を提供することを目的とする。
【課題を解決するための手段】
【０００８】
実施形態の決済端末装置は、第１ユニットと、第２ユニットと、検知部と、制御部とを有する。第１ユニットはカードを読み取る。第２ユニットは、第１ユニットで読み取られるカードのデータを、事前に定義される第１フォーマットで受信する。検知部は、動きを検知し、その動きが規定を超えると異常情報を出力する。制御部は、検知部から異常情報を受信すると、第１ユニットと第２ユニットとの間の通信が、第１フォーマットとは異なるフォーマットとなるように切り替える。
【図面の簡単な説明】
【０００９】
【図１】実施形態に係るシステムの全体構成例を示す図である。
【図２】実施形態の決済端末装置の構成例を示す図である。
【図３】実施形態の決済端末装置のハードウェア構成例を示す図である。
【図４】実施形態の暗号化メモリ部の構成例を示す図である。
【図５】実施形態の実データの配列変換手法の一例を示す図である。
【図６】実施形態の信号レベルの変更例を示す図である。
【図７】実施形態の決済端末装置の動作の一例を示すフローチャートである。
【図８】実施形態の状態検知部の構成例を示す図である。
【図９】実施形態の状態検知部の動作例を示すフローチャートである。
【図１０】前提技術となる決済端末装置のハードウェア構成例を示す図である。
【図１１】前提技術となる決済端末装置の動作例を示すフローチャートである。
【発明を実施するための形態】
【００１０】
図１は、実施形態に係るシステム構成例を示した図である。システム５００は、決済端末装置５、ＰＯＳ（Point of Sale）端末装置６、決済処理サーバ８、およびサーバ５０を有する。
【００１１】
ＰＯＳ端末装置６は、いわゆるキャッシュレジスタであり、キーボードやバーコードスキャナを介して顧客が購入した商品のデータを入力することで、会計処理を行うための端末装置である。サーバ５０は、店舗内商品を管理するサーバ（コンピュータ）であり、例えば商品の在庫管理や価格設定などを行う。サーバ５０は、ＰＯＳ端末装置６から購入商品に関する情報を受信し、各商品についての集計を行い、統計情報をまとめる。
【００１２】
決済端末装置５は、キャッシュカードやクレジットカード（図１のカード１）を読み取る端末装置である。また決済端末装置５は、今回の購入金額などの取引情報をＰＯＳ端末装置６から受信し、この取引情報と読み取ったカード番号などを決済情報として決済処理サーバ８に送信する。決済端末装置５は、支払い可否や金額などの支払情報をＰＯＳ端末装置６に送信する。
【００１３】
決済端末装置５は、決済処理ユニット３、カード読取ユニット２、伝票印刷ユニット４を有し、決済処理ユニット３を下部に配置し、その上部にカード読取ユニット２を積層配置した配置構成となっている。決済端末装置５のフロント側面（操作者が操作する側の側面）には、伝票印刷ユニット４が位置する。
【００１４】
決済処理サーバ８は、受信するカード番号や取引情報などに基づき、代金の支払い可否について判定するサーバ（コンピュータ）である。支払い可能である場合、決済処理サーバ８は、実際の決済処理を実行する。決済処理サーバ８は、判定結果や決済処理の実行結果を決済端末装置５に返信する。
【００１５】
ＰＯＳ端末装置６とサーバ５０とは、ＬＡＮ（Local Area Network）もしくは広域回線網などを用いてデータの送受信を行っている。ＰＯＳ端末装置６と決済端末装置５とは、たとえばシリアルケーブルなどで接続されている。決済端末装置５と決済処理サーバ８とは、専用回線となる決済ネットワーク７を介して、決済情報などのデータの送受信を行っている。
【００１６】
図２は、図１に示すシステム５００のブロック図であり、主に決済端末装置５の構成例を示す図である。決済端末装置５は、カード読取ユニット２、決済処理ユニット３、伝票印刷ユニット４を有する。カード読取ユニット２は、後述の磁気ヘッド１０１を用いてカード１を直接的に読み取るユニットである。カード読取ユニット２は、読み取ったカード番号などの個人情報データを決済処理ユニット３に送信する。決済処理ユニット３は、カード読取ユニット２が読み取ったデータを事前に定義される転送フォーマットで受信し、またＰＯＳ端末装置６から取引情報を受信して、これらに基づき決済データを構成して決済処理サーバ８に送信する。尚、決済処理サーバ８に送信する際の取り決め（決済データの内容やデータフォーマット、暗号処理など）については、事前に規定されているものであるため、これ以上の説明を割愛する。
【００１７】
決済処理ユニット３は、決済可否の結果や決済処理の実行結果を決済処理サーバ８より受信する。このとき受信するデータ内容やフォーマット、暗号処理についても、従前より規定されているものである。決済処理ユニット３は、得られる決済可否の結果や決済処理の実行結果を、ＰＯＳ端末装置６に送信する。
【００１８】
伝票印刷ユニット４は、決済処理ユニット３からの指示に基づき、今回の決済についての伝票を印刷する。伝票には、例えば購入商品の名称やその個数、支払い金額、顧客のサイン記入欄が印刷されている。
【００１９】
カード読取ユニット２と決済処理ユニット３との間や、決済処理ユニット３とＰＯＳ端末装置６との間は、シリアルＩ／Ｆ（Interface）で接続されている。また決済端末装置５の内部、より具体的にはカード読取ユニット２と決済処理ユニット３とは、第３者によりモニタリングされる可能性があるため、カードデータの保護の観点から、暗号化してデータの送受信を行っている。
【００２０】
以降、決済端末装置５についてさらに詳細な説明を行うが、まずは前提となる技術について説明し、次いで実施形態の態様を説明する。尚、以降の説明では伝票印刷ユニット４の説明を省略する。
【００２１】
（前提技術）
まずは図１０、図１１を参照しつつ、関連する前提技術を説明する。ここでは決済端末装置を決済端末装置５Ａであるものとして説明する。図１０に示す決済端末装置５Ａは、カード読取ユニット２Ａ、決済処理ユニット３Ａを有する。カード読取ユニット２Ａは、磁気ヘッド１０、カードデータ入力部１１、デジタル化処理部１２、ＭＣＵ（Micro Control Unit）１３、通信部１５、タンパ検出部１６を有する。またＭＣＵ１３はメモリ部１４を有し、メモリ部１４は、プログラムＰ、および決済処理ユニット３Ａと通信を行うための暗号鍵Ｋを記憶している。プログラムＰは、例えばカード１の読取から通信部１５を介してカード情報を送信するまでの一連の動作など、カード読取ユニット２Ａ内部で実行され、且つＭＣＵ１３が実行するためのコードを定義したプログラムである。
【００２２】
カードデータ入力部１１やデジタル化処理部１２は、例えばＡＳＩＣ（application specific integrated circuit）で実装されているものとする。通信部１５は、ケーブルを接続するソケット端子や通信を制御するためのチップセットを含む。またタンパ検出の方法は、タンパ用スイッチでの検出や、金属メッシュ破壊検出、各種センサによる物理量の検出など、多くのものがある。タンパ検出部１６は、これらを実現することができる実装とする。
【００２３】
決済処理ユニット３Ａは、通信部１７、ＭＣＵ２１、記憶部２２、ＵＳＢ−Ｉ／Ｆ部１９、ＬＡＮ−Ｉ／Ｆ部２０を有する。ＭＣＵ２１は、記憶部２２に事前に記憶されているプログラムＱを演算実行することで、暗号処理や決済処理を遂行する装置である。プログラムＱは、決済処理ユニット３Ａの内部で実行され、且つＭＣＵ２１が実行するためのコードを定義したプログラムである。また記憶部２２は、カード読取ユニット２Ａと通信を行うための暗号鍵Ｋを記憶している。このように、カード読取ユニット２Ａと決済処理ユニット３Ａとは同じ暗号鍵Ｋを記憶している。
【００２４】
通信部１７は、ケーブルを接続するソケット端子や通信を制御するためのチップセットを含む。ＵＳＢ−Ｉ／Ｆ部１９は、ＰＯＳ端末装置６との通信を制御し、ＵＳＢ規格に準拠したデバイスを有する。ＬＡＮ−Ｉ／Ｆ部２０は、ネットワークカードを含み、決済処理サーバ８との間で、専用線を介して通信を行う。
【００２５】
図１０に示す決済端末装置５Ａの動作例を、図１１のフローチャートを参照しつつ説明する。まず、決済端末装置５Ａが初めて導入、設置されて電力が供給されると、決済端末装置５Ａは、初期化処理として、各機能を有効にするための開局処理を実施する（ＡＣＴ００１）。この後、決済端末装置５Ａを用いた運用が開始される。
【００２６】
決済端末装置５Ａの運用時に、タンパ検出部１６がタンパを検出しない場合（ＡＣＴ００２、Ｎｏ）、通常の業務処理となる。この処理は、カード読取ユニット２Ａでの処理はプログラムＰによって行われ、決済処理ユニット３Ａでの処理は、記憶部２２に記憶されているプログラムＱにより行われる。
【００２７】
決済処理ユニット３ＡのＭＣＵ２１は、ＵＳＢ−Ｉ／Ｆ部１９を経由してＰＯＳ端末装置６から取引金額などの取引情報を取得する（ＡＣＴ００３）。この取引情報は、一時的に記憶部２２に記憶される。
【００２８】
カード読取ユニット２Ａのカードデータ入力部１１は、磁気ヘッド１０を制御してカード１内に記録されているカード番号を読み取る（ＡＣＴ００４）。デジタル化処理部１２は、カード番号をアナログ信号からデジタルデータに変換する（ＡＣＴ００５）。ＭＣＵ１３は、デジタル化されたカード番号のコードをメモリ部１４に一時的に記憶して（ＡＣＴ００６）、暗号化鍵Ｋを用いてこのコードを暗号化する（ＡＣＴ００７）。ＭＣＵ１３は、通信部１５を制御して、暗号鍵Ｋで暗号化されたコードを決済処理ユニット３Ａに送信する（ＡＣＴ００８）。
【００２９】
決済処理ユニット３Ａの通信部１７が暗号化されたコードを受信すると（ＡＣＴ００９）、ＭＣＵ２１は、暗号鍵Ｋを記憶部２２から取得し、暗号鍵Ｋを用いて受信したコードを復号する（ＡＣＴ０１０）。これにより、ＭＣＵ２１はカード番号を取得する。ＭＣＵ２１は、ＬＡＮ−Ｉ／Ｆ部２０を動作させて、カード番号およびＡＣＴ００３で記憶部２２に一時的に記憶した取引情報を、決済処理サーバ８へ送信する（ＡＣＴ０１１）。この通信は、専用回線網である決済ネットワーク７を介して行い、また事前に定義される方式で暗号化通信される。これにより決済処理サーバ８にて決済処理が行われる（ＡＣＴ０１２）。ＭＣＵ２１は、決済の可否結果や決済処理の実行結果の情報を決済サーバ８から受信し、取引完了通知をＰＯＳ端末装置６に送信する（ＡＣＴ０１３）。
【００３０】
決済端末装置５Ａは、上記ＡＣＴ００３〜ＡＣＴ０１３の動作を、一取引が行われる際に実行する。一方、タンパ検出部１６がタンパを検出した場合（ＡＣＴ００２、Ｙｅｓ）、カード読取ユニット２ＡのＭＣＵ１３は、タンパが検出されたことを示す情報を決済処理ユニット３Ａに送信する。決済処理ユニット３ＡのＭＣＵ２１は、ＰＯＳ端末装置６にタンパが検出されたことを通知する（ＡＣＴ０４３）。またＭＣＵ１３、ＭＣＵ２１は、各ユニット内のメモリ部１４、記憶部２２にある、プログラムＰ、Ｑ、およびそれぞれに記憶された暗号鍵Ｋを消去する（ＡＣＴ０４４）。ＭＣＵ１３、ＭＣＵ２１は、動作停止コマンドを実行する（ＡＣＴ０４５）。これにより決済端末装置５Ａは動作を停止する。
【００３１】
（実施形態）
上記前提技術のように、タンパが検出されて決済端末装置５Ａの動作が停止すると、メーカでの修理が行われるまでカード決済を行うことができない。実施形態では、タンパを検出しても引き続き運用を続ける決済端末装置の実装例を説明する。
【００３２】
タンパの種別としては、大きく分けて２つ考えられる。１つは第３者によるプログラムの改ざんであり、もう１つはスキミング用カードの装着やユニットの置き換えなど、第３者によるハードウェアの構成変更である。実施形態では、プログラムの改ざんがあった場合はプログラムを開局時の初期状態に戻す。またハードウェアの構成変更があった場合は、カード読取ユニットと決済処理ユニットとの間での転送フォーマットを変更する。この転送フォーマット変更により、ハードウェアのスキミングや置き換えがあった場合でも、第３者から通信内容の読取りを阻止することができる。
【００３３】
図３に、第１実施形態の決済端末装置の構成例を示す。決済端末装置５は、カード読取ユニット２、決済処理ユニット３を有する。カード読取ユニット２は、磁気ヘッド１０１、カードデータ入力部１０２、コード化処理部１０３（上記前提技術のデジタル化処理部１２に相当）、ＭＣＵ１０４、セキュリティチップ１０６、通信部１０７を有する。尚、図３内のカッコ表記は、記憶しているプログラムやデータである。
【００３４】
磁気ヘッド１０１、カードデータ入力部１０２、コード化処理部１０３、通信部１０７は、上記前提技術と同様の構成であり、同様の動作を行う。ＭＣＵ１０４はメモリ部１０５、１１６を有する。メモリ部１０５には、上記前提技術と同様の命令が定義されるプログラムＰ、および決済処理ユニット３と通信を行うための暗号鍵Ｋ１を記憶している。メモリ部１１６は、転送定義情報Ｒを記憶している。
【００３５】
転送定義情報Ｒは、プログラムＰ内で使用する情報であり、カード読み取りユニット２と決済処理ユニット３との間の転送フォーマットを定義するためのデータである。プログラムＰ内では、転送フォーマットの具体的な動作指令が複数定義されており、且つ選択可能なように記載されている。また一方で、転送定義情報Ｒには、本例では制御用の数値（例えば１）が記載されている。プログラムＰは、転送定義情報Ｒを読み込み、制御用数値に従い、複数の転送フォーマットの指令から１つの指令を選択する。これにより、カード読取ユニット２は、転送定義情報Ｒの記載内容に基づき決済処理ユニット３との間でカードデータ送信などのデータ送受信を行う。
【００３６】
セキュリティチップ１０６は、ＴＭＰ（Trusted Platform Module）であり、セキュリティチップ１０６固有の識別情報を有する。以下、セキュリティチップ１０６固有の識別情報を固有ＩＤ１と称する。またセキュリティチップ１０６は、開局時（運用使用前）のプログラムＰのハッシュ値も記憶する。
【００３７】
決済処理ユニット３は、通信部１１０、ＭＣＵ１１３、暗号化メモリ部１１４、ＵＳＢ−Ｉ／Ｆ部１１１、ＬＡＮ−Ｉ／Ｆ部１１２、セキュリティチップ１０９を有する。通信部１１０、ＵＳＢ−Ｉ／Ｆ部１１１、ＬＡＮ−Ｉ／Ｆ部１１２は、上記前提技術と同様の構成であり、同様の動作を実行する。
【００３８】
ＭＣＵ１１３は、暗号処理や決済処理を遂行する装置であり、暗号化メモリ部１１４に事前に記憶されているプログラムＱを演算実行する。
【００３９】
暗号化メモリ部１１４は、上記前提技術と同様の命令が定義されたプログラムＱ、およびカード読取ユニット２と通信を行うための暗号鍵Ｋ１を記憶している。これらプログラムＱ、暗号鍵Ｋ１をＭＣＵ１１３内にある不図示の記憶部に記憶させる実装でもよい。また暗号化メモリ１１４には、上述カード読取ユニット２と同様に、プログラムＱ内で使用する転送定義情報Ｒを記憶しており、この定義内容に基づき決済処理ユニット３はカード読み取りユニット２との間で、カードデータ受信などのデータ送受信を行う。
【００４０】
また暗号化メモリ部１１４には、活性化鍵（後述の暗号鍵Ｋ２、Ｋ３）を内部でセットしていない場合はアクセス不可とする記憶領域がある。この領域を、本例では鍵領域を称する。本例では、鍵領域は２つ用意されており、鍵領域の１つには、上記プログラムＰ、プログラムＱと同じプログラム、および暗号鍵Ｋ１が記憶されている。この鍵領域内に記憶されたプログラムＰ、Ｑ、暗号鍵Ｋ１は、プログラムが改ざんされた場合の置き換え用のファイルである。他方の鍵領域には、独自転送定義情報Ｒ’が記憶されている。独自転送定義情報Ｒ’は、転送定義情報Ｒを使用するときとは異なるフォーマットで、データ転送を行うための定義情報である。独自転送定義情報Ｒ’には、本例では制御用の数値（例えば２）が記載されている。これら鍵領域内のプログラムは、工場出荷前に事前に導入されていたり、初期起動時に鍵領域内に導入されたりする。
【００４１】
セキュリティチップ１０９は、ＴＭＰであり、セキュリティチップ１０９固有の識別情報を記憶している。この識別情報を固有ＩＤ２と称する。またセキュリティチップ１０９は、カード読取ユニット２内にあるセキュリティチップ１０６の識別情報である固有ＩＤ１も記憶している。さらにセキュリティチップ１０９は、暗号化メモリ部１１４の鍵領域にアクセスするための暗号鍵Ｋ２、Ｋ３を記憶している。セキュリティチップ１０９は、開局時状態でのプログラムＱのハッシュ値も記憶する。
【００４２】
決済端末装置５は、さらに状態検知部１１５、タンパ検知部１０８を有する。状態検知部１１５は、加速度センサやジャイロセンサなどを含み、決済端末装置５の規定超えの移動や回転、振動、衝撃を検知するユニットである。状態検知部１１５の詳細は後述する。タンパ検出部１０８は、カード読取ユニット２、決済処理ユニット３のタンパを検出する。状態検知部１１５、タンパ検出部１０８は、カード読取ユニット２、決済処理ユニット３のいずれにも属さず、これらの外部に位置しているものとするが、カード読取ユニット２、決済処理ユニット３のいずれかのボード上とする構成であってもよい。また状態検知部１１５、タンパ検知部１０８を包含して１つのユニットとしてもよい。
【００４３】
次に暗号化メモリ部１１４について、図４を用いて説明する。暗号化メモリ部１１４は、アクセス対象の領域を指定したアドレス信号１８０、当該アクセスを行うか否かを示すリード／ライト信号１８２を入力する。リード／ライト信号がオンであるときに実データの読み書きが行われる。また図４では、読み書きの実データがデータ信号１８１として示されている。暗号化メモリ部１１４がアドレス信号１８０やリード／ライト信号１８２を入力すると、アドレス制御部１８３は、メモリ素子１８６内の指定されたアドレスへのアクセスを許可する。これによりリードもしくはライトが実行される。図４に示すメモリ素子１やメモリ素子ｎは、アドレス信号１８０とリード／ライト信号１８２のみで読み書き可能な領域である。すなわち決済処理ユニット３が現在使用しているプログラムＱ、暗号鍵Ｋ１、転送定義情報Ｒは、上記各信号のみでメモリ素子１８６から取り出すことができる。
【００４４】
一方、メモリ素子１８６内のメモリ素子２、メモリ素子３は、揮発性記憶部１８５内の領域Ｋｐに規定の暗号鍵がセットされていないと読み書きができない記憶素子となっている（暗号鍵がセットされていない場合、たとえ読み書きできても無用なデータとなる）。ＭＣＵ１１３は、メモリ素子２の鍵領域にアクセスする場合、セキュリティチップ１０９から暗号鍵Ｋ２を取得して揮発性記憶部１８５の領域Ｋｐにセットする。これにより、暗号化／復号化部１８４は、アドレス信号１８０がメモリ素子２を示すものである場合に、メモリ素子２内に記憶されているプログラムＰ、Ｑ、暗号鍵Ｋ１を、暗号鍵Ｋ２を用いて復号する。この復号後のプログラムＰ、Ｑ、暗号鍵Ｋ１が暗号化メモリ部１１４から出力される。また一方で、メモリ素子３の鍵領域にアクセスする場合、ＭＣＵ１１３は、セキュリティチップ１０９から暗号鍵Ｋ３を取得して領域Ｋｐにセットする。これにより、暗号化／復号化部１８４は、アドレス信号１８０がメモリ素子３を示すものである場合に、メモリ素子３内に記憶されている独自転送定義情報Ｒ’を、暗号鍵Ｋ３を用いて復号する。この復号後の独自転送定義情報Ｒ’が暗号化メモリ部１１４から出力される。
【００４５】
尚、図４に示す例では、メモリ素子２、３のみを鍵領域としているが、その他のメモリ素子の領域を鍵領域としてもよい。この場合、暗号鍵Ｋ２、Ｋ３とは別の活性化鍵（暗号鍵）を揮発性記憶部１８５にセットすることでアクセス可能となる実装でもよい。
【００４６】
次に、実施形態のフォーマット変換についての説明を、図５、図６を用いて説明する。第３者が何らかのユニットを装着して、カード読取ユニット２と決済処理ユニット３と間でスキニングを行っているおそれのある場合、本実施形態では、今まで行っていた転送フォーマット（ここでは通常フォーマットと称する）から、形式の異なる転送フォーマット（独自フォーマット）へ切り替える。
【００４７】
図５（Ａ）は、通常のフォーマット例、すなわち本実施形態においては転送定義情報Ｒを用いる場合のフォーマット例である。図中のＳＴ、ＳＰは、データの区切りを示す値であり、このＳＴ、ＳＰで実データを挟んだフォーマットとなっている。実データの並びは、図５（Ａ）に示すように、順序４を先頭にする以外はカードデータ値そのままの並び順となっている。
【００４８】
本実施形態では、転送定義情報Ｒが独自転送定義情報Ｒ’に切り替わることで、通常フォーマットから独自フォーマットに切り替わる。独自フォーマットでは、図５（Ｂ）に示すように実データの配列を所定規定に基づき異ならせる。本例では、順序４はそのまま先頭とし、最後尾の順序９を先頭から２番目に配置する。その次に順序１を配置し、次いで順序８、順序２、・・・となるように配置替えを行う。すなわち、順序番号の大きいもの順と小さいもの順とが互い違いとなるように再配置する。また独自フォーマットでは、区切りを示す値も異ならせる。この手法以外にも、区切り値の組み合わせに基づき並び順を決める手法、ノイズデータの挿入、関数による変換、バイト列のバイナリ化など、さまざまな実装を適用してもよい。
【００４９】
また本例の独自フォーマットは、カード読取ユニット２と決済処理ユニット３との間での信号レベルを異ならせる。図６（Ａ）は通常フォーマットの場合の信号レベルを例示している。通常フォーマットの場合、レベルがＶＬ（ｍａｘ）を下回ると０とし、ＶＨ（ｍｉｎ）を超えると１としている。一方独自フォーマットは、信号の出入力レベルを落とすとともに、別途規定値を設ける。図６（Ｂ）を参照しつつ説明すると、ＶＨ（ｍｉｎ）とＶＬ（ｍｉｎ）との間に新たに規定値ＶＮ（ｍｉｎ）を設け、且つ出入力レベルがＶＨ（ｍｉｎ）を超えないように制御する。そしてレベルがＶＮ（ｍｉｎ）を超える場合に１とする。これにより、カード読取ユニット２と決済処理ユニット３との間で、この操作に気づかない第３者によりスキミングが行われている場合、実際には信号を出力しているが信号が無い（常時０）ものと認識される。
【００５０】
次に、図７のフローチャートを参照しつつ実施形態の動作例を説明する。まず初期導入の開局時に、カード読取ユニット２のＭＣＵ１０４は、プログラムＰのハッシュ値を計測し、ハッシュ値を不揮発性に記憶する（ＡＣＴ１０１）。ハッシュ値は、セキュリティチップ１０６に記憶されるものとするが、他の記憶部に記憶されてもよい。決済処理ユニット３のＭＣＵ１１３も同様に、開局時に、プログラムＱを暗号化メモリ部１１４から取得し、そのハッシュ値を計測する（ＡＣＴ１０１）。このハッシュ値は、セキュリティチップ１０９に記憶されるものとするが、他の記憶部に記憶されてもよい。尚、これらハッシュ値は出荷前に事前に入手することが可能な値であるため、出荷前に各セキュリティチップにハッシュ値を導入しておく実装でも構わない。
【００５１】
決済処理ユニット３のＭＣＵ１１３は、状態検知部１１５からデータを取得する（ＡＣＴ１０２）。この動作は、ＭＣＵ１１３がポーリングを実施して状態を問い合わせる実装でもよいし、状態検知部１１５から決済処理ユニット３へ向けてトラップ送信する実装でもよい。いずれの動作においても、状態検知部１１５が情報を送信し、決済処理ユニット３がその情報を受信する動作となる。この情報が異常を示す情報である場合、すなわち状態検知部１１５が規定を超えた回転、移動、振動、衝撃を検知すると（ＡＣＴ１０３、Ｙｅｓ）、ＡＣＴ１２０に進む。尚、状態検知部１１５の詳細動作については後述する。
【００５２】
ＡＣＴ１２０において、決済処理ユニット３のＭＣＵ１１３は、第３者によるハードウェアモニタリングの可能性があることを、ＰＯＳ端末装置６に通知する（ＡＣＴ１２０）。その後ＭＣＵ１１３は、暗号鍵Ｋ３をセキュリティチップ１０９より取得し、この暗号鍵Ｋ３を暗号化メモリ部１１４の領域Ｋｐにセットする。これにより、暗号化メモリ部１１４のメモリ素子３の領域が活性化する（ＡＣＴ１２１）。
【００５３】
ＭＣＵ１１３は、メモリ素子３に記憶されている独自転送定義情報Ｒ’を取得し、セキュリティチップ１０９に事前登録されている固有ＩＤ１を使って独自転送定義情報Ｒ’を暗号化する。そしてＭＣＵ１１３は、暗号化した独自転送定義情報Ｒ’をカード読取ユニット２に送信する（ＡＣＴ１２２）。またＭＣＵ１１３は、送信後に今現在使用している転送定義情報Ｒを独自転送定義情報Ｒ’に置き換える。
【００５４】
カード読取ユニット２が暗号化された独自転送定義情報Ｒ’を受信すると、ＭＣＵ１０４は、セキュリティチップ１０６に事前登録されている固有ＩＤ１を取得して復号する。ＭＣＵ１０４は、今現在使用している転送定義情報Ｒを、独自転送定義情報Ｒ’に置き換える（ＡＣＴ１２３）。これにより、各ユニットは今までのフォーマットとは異なるフォーマットで送受信を行う。
【００５５】
その後、ＭＣＵ１１３もしくはＭＣＵ１０４は、状態検知部１１５にクリア信号を出力する。これにより、状態検知部１１５は異常検知状態をクリアする（ＡＣＴ１１４）。その後、通常運用動作を行い（ＡＣＴ１０７）、通常運用動作が終了次第、ＡＣＴ１０２に戻る。通常運用動作は、図１１を用いて説明したＡＣＴ００３〜ＡＣＴ０１３までの動作と同様である。
【００５６】
第３者がスキミングユニットなどを装置内に組み込む際、第３者は装置を動かしたり、衝撃を与えたりする。許容を超えた回転、移動、振動、衝撃などの動きを検出する場合、上記フローにより、今まで使用していた転送フォーマットとは異なる方式でデータの送受信を行うようになる。よってデータの漏えいを抑止することができる。
【００５７】
フローチャートのＡＣＴ１０３の説明に戻る。ＡＣＴ１０３で、異常動作が検知されない場合（ＡＣＴ１０３、Ｎｏ）、カード読取ユニット２のＭＣＵ１０４は、セキュリティチップ１０６内に記憶したハッシュ値を読み出し（ＡＣＴ１０４）、一方で現状のプログラムＰのハッシュ値を算出してこれらを比較する（ＡＣＴ１０５）。決済処理ユニット３も同様に、ＭＣＵ１１３は、セキュリティチップ１０９内に記憶したハッシュ値を取得して（ＡＣＴ１０４）、一方で現状のプログラムＱのハッシュ値を算出し、これらを比較する（ＡＣＴ１０５）。両方とも一致している場合（ＡＣＴ１０６、Ｎｏ）、通常運用動作を行い（ＡＣＴ１０７）、終了次第ＡＣＴ１０２に戻る。
【００５８】
いずれかで一方でも不一致である場合（ＡＣＴ１０６、Ｙｅｓ）、ＭＣＵ１１３は、プログラムの改ざんを検知したこと、および改修処理を行うことをＰＯＳ端末装置６に通知する（ＡＣＴ１１０）。ＭＣＵ１１３は、暗号鍵Ｋ２をセキュリティチップ１０９から取得し、この暗号鍵Ｋ２を暗号化メモリ部１１４の領域Ｋｐにセットする。これにより、暗号化メモリ部１１４のメモリ素子２が活性化する（ＡＣＴ１１１）。
【００５９】
ＭＣＵ１１３は、メモリ素子２に記憶されているプログラムＰ、Ｑ、暗号鍵Ｋ１を取得し、セキュリティチップ１０９に事前登録された固有ＩＤ１を使ってプログラムＰ、暗号鍵Ｋ１を暗号化する。そしてＭＣＵ１１３は、暗号化したプログラムＰ、暗号鍵Ｋ１をカード読取ユニット２に送信する（ＡＣＴ１１２）。また一方でＭＣＵ１１３は、暗号鍵メモリ部１１４のメモリ素子１に記憶されている、今現在使用しているプログラムＱ、暗号鍵Ｋ１を、新たに取得したプログラムＱ、Ｋ１に置き換える。
【００６０】
カード読取ユニット２が暗号化したプログラムＱ、暗号鍵Ｋ１を受信すると、ＭＣＵ１０４は、セキュリティチップ１０６に事前記憶された固有ＩＤ１を取得してこれらを復号する。ＭＣＵ１０４は、今現在使用しているプログラムＱ、暗号鍵Ｋ１を、新たに取得したプログラムＱ、暗号鍵Ｋ１に置き換える（ＡＣＴ１１３）。その後処理はＡＣＴ１１４に進み、さらに通常運用動作となる（ＡＣＴ１０７）。
【００６１】
このように、ハッシュ値を用いてプログラムの改ざんを検出することができ、改ざんを検知する場合にプログラム、暗号鍵を正規のものに置き換えることができる。
【００６２】
最後に、状態検知部１１５について説明する。まずは状態検知部１１５の構成例について、図８を用いて説明する。状態検知部１１５は、加速度センサ２０１、ジャイロセンサ２０２、ＭＣＵ２０３、バッテリ２０４、記憶部２０５を有する。
【００６３】
加速度センサ２０１は、加速度を計測する。ジャイロセンサ２０２は、装置の傾きや回転を計測する。これら計測値はＭＣＵ２０３に出力され、許容を超えた回転、移動、振動、衝撃などの動きを検出することができる。
【００６４】
バッテリ２０４は、状態検知部１１５内部の各ユニットに電力を供給するとともに、残量が少なくなると、ＭＣＵ２０３に通知する。記憶部２０５は、ＭＣＵ２０３を動作させるための制御コードや制御データを記憶する。また記憶部２０５は、規定値超えを検知した際に、その異常状態を示す情報を記憶する。ＭＣＵ２０３は、加速度センサ２０１、ジャイロセンサ２０２からの計測信号を入力し、事前に決められた規定値を超えてないかを判定する。規定値を超えると、異常状態であることを示す情報（異常情報）を記憶部２０５に書き込み、Ｉ２Ｃ（Inter-Integrated Circuit）方式でカード読取ユニット２や決済処理ユニット３に異常情報を通知する。
【００６５】
図９に状態検知部１１５の動作例を示す。ＭＣＵ２０３は、まずは事前に定義される規定値を記憶部２０５から取得する（ＡＣＴ２０１）。本例では、加速度センサ２０２で計測される加速度値や、ジャイロセンサ２０２で計測される傾き値、回転値に対しての許容値を取得する。ＭＣＵ２０３は、加速度センサ２０２から計測データを取得し（ＡＣＴ２０２）、ジャイロセンサ２０２から計測データを取得する（ＡＣＴ２０３）。
【００６６】
ＭＣＵ２０３は、計測される値と規定値とを比較する（ＡＣＴ２０４）。規定値を超える場合（ＡＣＴ２０５、Ｙｅｓ）、ＭＣＵ２０３は、異常状態を示す情報を記憶部２０５に記録し（ＡＣＴ２０７）、Ｉ２Ｃインターフェイスを介して異常状態を検知したことを決済処理ユニット３に通知する（ＡＣＴ２０８）。尚、カード読取ユニット２にも通知する実装でもよい。その後ＡＣＴ２０２に戻る。
【００６７】
許容値を超えていない場合（ＡＣＴ２０５、Ｎｏ）、ＭＣＵ２０３は、記憶部２０５に異常状態を示すデータが記録されている場合はそのデータをクリアし（ＡＣＴ２０６）、ＡＣＴ２０２に戻る。このように自前でクリアせずに、図７のフローチャートのＡＣＴ１１４の通知を受けた際に異常状態を示す情報をクリアする、という実装でもよい。
【００６８】
上記各実施形態の暗号方式としては、ＤＥＳ（Data Encryption Standard）、ＡＥＳ（Advanced Encryption Standard）などの従前の共通鍵暗号方式を用いることができる。
【００６９】
実施形態では、セキュリティチップ１０６の識別情報である固有ＩＤ１を用いて、置き換え用のプログラムＰや暗号鍵Ｋ１、もしくは独自転送定義Ｒ’を暗号化し、カード読取ユニット２に送信する実装例を示したが、セキュリティチップの識別情報に限らず、カード読取ユニット２、決済処理ユニット３で共に記憶されている共通の同一情報であればよい。
【００７０】
転送定義情報Ｒ、独自転送定義情報Ｒ’は、実施形態ではプログラムから読み込まれるデータであるものとして説明し、転送定義情報Ｒから独自転送定義情報Ｒ’に書き替える実装例を説明した。これに替えて、通常フォーマットで送受信を行うプログラムと、独自フォーマットで送受信を行うプログラムとの２パターンのプログラムを事前に用意し、ハードウェアモニタリングを検知した際は、プログラムを通常フォーマットのものから独自フォーマットのものに書き替える、という実装でもよい。
【００７１】
第１ユニットは、実施形態のカード読取ユニット２に相当する。第２ユニットは、実施形態の決済処理ユニット３に相当する。検知部は、実施形態の状態検知部１１５に相当する。
【００７２】
制御部は、本実施形態では決済処理ユニット３のＭＣＵ１１３、暗号化メモリ部１１４、セキュリティチップ１０９、通信部１１０、およびカード読取ユニット２のＭＣＵ１０４、セキュリティチップ１０６、通信部１０７に相当する。また決済処理ユニット３のＭＣＵ１１３が能動的に動作し、カード読取ユニット２が受動的に動作するものとして説明した。この構成以外にも、図７のＡＣＴ１１０〜１１４、１２０〜１２３を実行する機能部を、決済処理ユニット３やカード読取ユニット２の外部に設置する実装でもよい。
【００７３】
また実施形態では、暗号鍵や置き換え用のプログラムなどの各データの記憶場所を特定しているが、これに限定されない。また、カード読取ユニット２内部の構成の一部もしくは全部と、決済処理ユニット３内部（決済処理ユニット３Ｂ内部）の構成の一部もしくは全部を入れ替えてもよい。すなわち、プログラムや暗号鍵の置き換え動作の際、上記実施形態では決済処理ユニット３が能動的に動作し、カード読取ユニット２が受動的に動作するものとして説明したが、逆であってもよい。
【００７４】
実施形態により、決済端末装置のタンパ検出時のセキュリティを確保するといった機密性の確保と、決済処理をいつでも安全に実施できるといった可用性の確保をすることでき、消費者の信頼も得ることができる。
【００７５】
本実施形態では装置内部に発明を実施する機能が予め記録されている場合で説明をしたが、これに限らず同様の機能をネットワークから装置にダウンロードしても良いし、同様の機能を記録媒体に記憶させたものを装置にインストールしてもよい。記録媒体としては、ＣＤ−ＲＯＭ等プログラムを記憶でき、かつ装置が読み取り可能な記録媒体であれば、その形態は何れの形態であっても良い。またこのように予めインストールやダウンロードにより得る機能は装置内部のＯＳ（オペレーティング・システム）等と協働してその機能を実現させるものであってもよい。
【００７６】
以上に詳説したように、本実施形態の決済端末装置は、タンパが検出されてもカードによる会計取引を引き続き行うことができる。
【００７７】
本発明は、その精神または主要な特徴から逸脱することなく、他の様々な形で実施することができる。そのため、前述の実施の形態はあらゆる点で単なる例示に過ぎず、限定的に解釈してはならない。本発明の範囲は、特許請求の範囲によって示すものであって、明細書本文には、なんら拘束されない。さらに、特許請求の範囲の均等範囲に属する全ての変形、様々な改良、代替および改質は、すべて本発明の範囲内のものである。
【符号の説明】
【００７８】
１  カード、２  カード読取ユニット、３  決済処理ユニット、
４  伝票印刷ユニット、５  決済端末装置、
６  ＰＯＳ端末装置、７  決済ネットワーク、８  決済処理サーバ、
１０１  磁気ヘッド、１０２  カードデータ入力部、１０３  コード化処理部、
１０４  ＭＣＵ、１０５、１１６  メモリ部、１０６  セキュリティチップ、
１０７  通信部、１０８  タンパ検出部、１１５  状態検知部、
１１０  通信部、１１４  暗号化メモリ部、１１３  ＭＣＵ、
１０９  セキュリティチップ、１１１  ＵＳＢ−Ｉ／Ｆ部、
１１２  ＬＡＮ−Ｉ／Ｆ部、５０  サーバ、５００  システム。
【図２】
2015179359.tif 000003
【図３】
2015179359.tif 000004
【図４】
2015179359.tif 000005
【図５】
2015179359.tif 000006
【図６】
2015179359.tif 000007
【図７】
2015179359.tif 000008
【図８】
2015179359.tif 000009
【図９】
2015179359.tif 000010
【図１０】
2015179359.tif 000011
【図１１】
2015179359.tif 000012
【図１】
2015179359.tif 000013