(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-07-31
(45)【発行日】2023-08-08
(54)【発明の名称】カード処理システム及びカード処理装置
(51)【国際特許分類】
G06F 12/00 20060101AFI20230801BHJP
G06K 19/073 20060101ALI20230801BHJP
【FI】
G06F12/00 550Z
G06F12/00 597U
G06K19/073
(21)【出願番号】P 2019085378
(22)【出願日】2019-04-26
【審査請求日】2022-03-16
(73)【特許権者】
【識別番号】000002233
【氏名又は名称】ニデックインスツルメンツ株式会社
(74)【代理人】
【識別番号】100097113
【氏名又は名称】堀 城之
(74)【代理人】
【識別番号】100162363
【氏名又は名称】前島 幸彦
(74)【代理人】
【識別番号】100194283
【氏名又は名称】村上 大勇
(72)【発明者】
【氏名】小口 洋介
(72)【発明者】
【氏名】久保田 恭輔
【審査官】打出 義尚
(56)【参考文献】
【文献】特開2005-309481(JP,A)
【文献】特開2013-058134(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 12/00
G06K 19/073
(57)【特許請求の範囲】
【請求項1】
カード処理装置、及び該カード処理装置が搭載される上位装置を備えるカード処理システムであって、
前記上位装置は、
前記カード処理装置を制御するミドルウェアを実行するミドルウェア実行部を備え、
前記ミドルウェア実行部は、取引種別に対応して前記カード処理装置へ第一設定情報を送信し、
前記カード処理装置は、
前記上位装置から前記第一設定情報を取得する設定情報取得部と、
前記設定情報取得部により以前に取得された第二設定情報を記憶する、書き換え可能回数に制限のある記憶部と、
前記設定情報取得部により取得された前記第一設定情報のハッシュ値と、前記第二設定情報のハッシュ値とを比較し、異なる場合は前記記憶部に記憶された前記第二設定情報を前記第一設定情報で置き換え、同じ場合は置き換えないよう制御する設定記憶制御部とを備え
、
前記設定記憶制御部は、
前記第二設定情報が前記記憶部に記憶された際に、前記記憶部内のデータの誤り検出符号値を算出して、前記上位装置へ送信しておき、
前記ミドルウェア実行部は、
前記誤り検出符号値を取得して記憶しておき、前記第一設定情報の送信の際に前記誤り検出符号値も送信し、
前記設定情報取得部は、
現在の前記記憶部内のデータの誤り符号値を算出して、前記上位装置から取得された前記誤り検出符号値と同一かどうか判定し、同一と判定した場合は前記設定記憶制御部に前記ハッシュ値の比較を行わせ、同一でないと判定した場合は前記第二設定情報を前記第一設定情報で置き換える
ことを特徴とするカード処理システム。
【請求項2】
前記第一設定情報及び前記第二設定情報は、クレジットカード又はデビットカードの種別、クレジットカードの種類、上限金額、及び取引内容に対応する情報を含む
ことを特徴とする請求項
1に記載のカード処理システム。
【請求項3】
カード処理装置、及び該カード処理装置が搭載される上位装置を備えるカード処理システムであって、
前記上位装置は、
前記カード処理装置を制御するミドルウェアを実行するミドルウェア実行部を備え、
前記ミドルウェア実行部は、取引種別に対応して前記カード処理装置へ第一設定情報を送信し、
前記カード処理装置は、
前記上位装置から前記第一設定情報を取得する設定情報取得部と、
前記設定情報取得部により以前に取得された第二設定情報を記憶する、書き換え可能回数に制限のある記憶部と、
前記設定情報取得部により取得された前記第一設定情報のハッシュ値と、前記第二設定情報のハッシュ値とを比較し、異なる場合は前記記憶部に記憶された前記第二設定情報を前記第一設定情報で置き換え、同じ場合は置き換えないよう制御する設定記憶制御部とを備え
、
前記第一設定情報及び前記第二設定情報は、クレジットカード又はデビットカードの種別、クレジットカードの種類、上限金額、及び取引内容に対応する情報を含む
ことを特徴とするカード処理システム。
【請求項4】
上位装置から第一設定情報を取得する
設定情報取得部と、
前記設定情報取得部により以前に取得された第二設定情報を記憶する、書き換え可能回数に制限のある記憶部と、
前記設定情報取得部により取得された前記第一設定情報のハッシュ値と、前記第二設定情報のハッシュ値とを比較し、異なる場合は前記記憶部に記憶された前記第二設定情報を前記第一設定情報で置き換え、同じ場合は置き換えないよう制御する設定記憶制御部とを備え
、
前記設定記憶制御部は、
前記第二設定情報が前記記憶部に記憶された際に、前記記憶部内のデータの誤り検出符号値を算出して、前記上位装置へ送信しておき、
前記設定情報取得部は、
現在の前記記憶部内のデータの誤り符号値を算出して、前記上位装置にて取得して記憶され前記第一設定情報の送信の際に前記上位装置から取得された前記誤り検出符号値と同一かどうか判定し、同一と判定した場合は前記設定記憶制御部に前記ハッシュ値の比較を行わせ、同一でないと判定した場合は前記第二設定情報を前記第一設定情報で置き換える
ことを特徴とするカード処理装置。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、特に標準規格の取引を行うカード処理システム及びカード処理装置に関する。
【背景技術】
【0002】
従来から、カード状媒体(以下、単に「カード」と称する。)の読み取りや書き込みを行うカードリーダ等のカード処理装置、及び、このようなカード処理装置が搭載されるATM(Automatic Teller Machine)等のカード処理システムが存在する。
たとえば、特許文献1には、このようなカード処理システムにおいて、ファームウェアの更新に際してソフトウェア開発の負担を減らし、利便性を高める電子機器システムが記載されている。特許文献1のシステムは、電子機器のファームウェア更新用アプリケーションソフトウェアを格納する領域及びファームウェア更新用DLLモジュールを格納する領域を備え、ファームウェア更新用DLLモジュールを格納する領域には、更新用ファームウェアデータを格納する領域が備えられていることを特徴とする。
【0003】
一方、EMV Level2規格等の標準規格のカード処理装置においては、カードの取引毎に、毎回、ATM等の上位装置から、設定情報が送信される。送られた設定情報は、カード処理装置内のフラッシュメモリ等の記憶部に記憶され、電源が再投入された場合においても、その設定の状態を保つことができる。
【先行技術文献】
【特許文献】
【0004】
【発明の概要】
【発明が解決しようとする課題】
【0005】
ここで、特許文献1に記載された電子機器システムは、ファームウェアの更新のような、書き込み回数が少ない場合を想定した技術であった。
このため、標準規格のカード処理装置では、取引毎に、頻繁に記憶部内に設定情報を書き込むため、フラッシュメモリの最大書き込み可能回数(寿命)に短期間で到達してしまう可能性があるという問題があった。
【0006】
本発明は、このような状況に鑑みてなされたものであり、設定情報の記憶部への書き込みの頻度を抑えるカード処理システムを提供し、上述の問題を解消することを目的とする。
【課題を解決するための手段】
【0007】
本発明の一形態に係るカード処理システムは、カード処理装置、及び該カード処理装置が搭載される上位装置を備えるカード処理システムであって、前記上位装置は、前記カード処理装置を制御するミドルウェアを実行するミドルウェア実行部を備え、前記ミドルウェア実行部は、取引種別に対応して前記カード処理装置へ第一設定情報を送信し、前記カード処理装置は、前記上位装置から前記第一設定情報を取得する設定情報取得部と、前記設定情報取得部により以前に取得された第二設定情報を記憶する、書き換え可能回数に制限のある記憶部と、前記設定情報取得部により取得された前記第一設定情報のハッシュ値と、前記第二設定情報のハッシュ値とを比較し、異なる場合は前記記憶部に記憶された前記第二設定情報を前記第一設定情報で置き換え、同じ場合は置き換えないよう制御する設定記憶制御部とを備え、前記設定記憶制御部は、前記第二設定情報が前記記憶部に記憶された際に、前記記憶部内のデータの誤り検出符号値を算出して、前記上位装置へ送信しておき、前記ミドルウェア実行部は、前記誤り検出符号値を取得して記憶しておき、前記第一設定情報の送信の際に前記誤り検出符号値も送信し、前記設定情報取得部は、現在の前記記憶部内のデータの誤り符号値を算出して、前記上位装置から取得された前記誤り検出符号値と同一かどうか判定し、同一と判定した場合は前記設定記憶制御部に前記ハッシュ値の比較を行わせ、同一でないと判定した場合は前記第二設定情報を前記第一設定情報で置き換えることを特徴とする。
このように構成することで、設定情報の記憶部への書き込みの頻度を抑えることができる。
また、このように構成することで、別のアプリ等から記憶部の内容が書き換えられたり、別のカード処理装置に差し替えられたりしたことを容易に検出可能となる。
【0008】
また、前記第一設定情報及び前記第二設定情報は、クレジットカード又はデビットカードの種別、クレジットカードの種類、上限金額、及び取引内容に対応する情報を含んでもよい。
このように構成することで、設定情報のうち、取引毎に変更する必要がある情報について、書き込みを制御することが可能となる。
【0009】
本発明の一形態に係るカード処理システムは、カード処理装置、及び該カード処理装置が搭載される上位装置を備えるカード処理システムであって、前記上位装置は、前記カード処理装置を制御するミドルウェアを実行するミドルウェア実行部を備え、前記ミドルウェア実行部は、取引種別に対応して前記カード処理装置へ第一設定情報を送信し、前記カード処理装置は、前記上位装置から前記第一設定情報を取得する設定情報取得部と、前記設定情報取得部により以前に取得された第二設定情報を記憶する、書き換え可能回数に制限のある記憶部と、前記設定情報取得部により取得された前記第一設定情報のハッシュ値と、前記第二設定情報のハッシュ値とを比較し、異なる場合は前記記憶部に記憶された前記第二設定情報を前記第一設定情報で置き換え、同じ場合は置き換えないよう制御する設定記憶制御部とを備え、前記第一設定情報及び前記第二設定情報は、クレジットカード又はデビットカードの種別、クレジットカードの種類、上限金額、及び取引内容に対応する情報を含むことを特徴とするカード処理システム。
このように構成することで、設定情報の記憶部への書き込みの頻度を抑えることができる。
また、このように構成することで、設定情報のうち、取引毎に変更する必要がある情報について、書き込みを制御することが可能となる。
【0010】
本発明の一形態に係るカード処理装置は、上位装置から第一設定情報を取得する取引情報取得部と、前記設定情報取得部により以前に取得された第二設定情報を記憶する、書き換え可能回数に制限のある記憶部と、前記設定情報取得部により取得された前記第一設定情報のハッシュ値と、前記第二設定情報のハッシュ値とを比較し、異なる場合は前記記憶部に記憶された前記第二設定情報を前記第一設定情報で置き換え、同じ場合は置き換えないよう制御する設定記憶制御部とを備え、前記設定記憶制御部は、前記第二設定情報が前記記憶部に記憶された際に、前記記憶部内のデータの誤り検出符号値を算出して、前記上位装置へ送信しておき、前記設定情報取得部は、現在の前記記憶部内のデータの誤り符号値を算出して、前記上位装置にて取得して記憶され前記第一設定情報の送信の際に前記上位装置から取得された前記誤り検出符号値と同一かどうか判定し、同一と判定した場合は前記設定記憶制御部に前記ハッシュ値の比較を行わせ、同一でないと判定した場合は前記第二設定情報を前記第一設定情報で置き換えることを特徴とする。
このように構成することで、設定情報の記憶部への書き込みの頻度を抑えることができる。
また、このように構成することで、別のアプリ等から記憶部の内容が書き換えられたり、別のカード処理装置に差し替えられたりしたことを容易に検出可能となる。
【発明の効果】
【0011】
本発明によれば、記憶部に以前に記憶された第二設定情報のハッシュ値と、上位装置から取得した第一設定情報のハッシュ値とを比較し、異なる場合は置き換え、同じ場合は置き換えないよう制御することで、設定情報の記憶部への書き込みの頻度を抑えることが可能な情報処理システムを提供することができる。
【図面の簡単な説明】
【0012】
【
図1】本発明の実施の形態に係るカード処理システムのシステム構成図である。
【
図2】本発明の実施の形態に係る設定情報書込制御処理のフローチャートである。
【
図3】本発明の設定情報書込制御処理の概念図である。
【発明を実施するための形態】
【0013】
<実施の形態>
〔カード処理システムXの構成〕
図1を参照して、本発明の実施の形態に係るカード処理システムXの構成について説明する。
カード処理システムXは、カード処理装置1、及びカード処理装置1が搭載される上位装置2を含んで構成される。
本実施形態において、カード処理装置1と上位装置2との間は、USB(Universal Serial Bus)、RS-232C、イーサネット(登録商標)(Ethernet)等のLAN(Local Area Network)で接続される。
【0014】
カード処理装置1は、例えば、標準規格の主に非接触型ICカードの読み取りや書き込みを行うカードリーダ等である。本実施形態においては、カード処理装置1は、例えば、金融取引用ICカードの国際的なデファクト・スタンダード(標準規格)であるEMV仕様に基づいた、EMV Level2の非接触型決済(取引)のためのICカードリーダである。カード処理装置1は、例えば、NFC(Near-Field Communications、近距離無線)を用いて、カード3に信号を送り、取引を行う。
【0015】
上位装置2は、例えば、ATM(Automated Teller Machine)、その他の決済システム、キオスク(Kiosk)の端末、交通機関のチケット発行システム、コンビニエンスストア等のポイントカード決済システム、小売店のメンバーカード発行システム、遊技機のカード発行支払システム、入退場管理システム等(以下、単に「ATM等」と省略して記載する。)である。または、上位装置2として、PC(Personal Computer)、キャッシュレジスター、その他の決済用端末を用いることも可能である。
【0016】
カード3は、クレジットカード、デビットカード、その他の決済用の「スマートカード」等の非接触型ICカードである。または、カード3は、接触型ICカード、及び/又は磁気ストライプを備えた磁気カード等であってもよい。
カード3は、例えば、厚さが0.7~0.8mm程度の矩形状の塩化ビニール製である。カード3は、例えば、ICチップ、近距離無線用のR/W(Read / Write)アンテナが内蔵される。
【0017】
なお、カード3が磁気カードの場合、例えば、磁気データが記録される磁気ストライプが形成されている。また、カード3には、ICチップと磁気ストライプとが両方設けられていてもよい。さらに、カード3は、厚さが0.18~0.36mm程度のPET(ポリエチレンテレフタレート)カードや、所定の厚さの紙カード等であってもよい。
加えて、カード3として、ユーザーが用いる携帯電話やスマートフォン等の携帯端末も、取引に用いることが可能である。
【0018】
次に、カード処理システムXの制御構成について説明する。
カード処理装置1は、制御部10、記憶部11、及び通信部12を備える。
上位装置2は、制御部20、及び記憶部21を備える。
【0019】
制御部10は、カード処理装置1全体の制御を行う。制御部10は、例えば、CPU(Central Processing Unit)、MPU(Micro Processing Unit)、DSP(Digital Signal Processor)、ASIC(Application Specific Integrated Circuit)等を含む制御演算手段である。
【0020】
記憶部11は、カード処理装置1の各種設定値や制御プログラムや一時データ等を記憶する記録媒体である。この各種設定値のうち、取引に係る設定値の詳細については後述する。制御プログラムは、取引に係るカード3の読み取り及び書き込みを行うためのファームウェア等である。
【0021】
記憶部11は、RAMのような揮発性の記録媒体、及びROMのような不揮発性の記録媒体を含む。
このうち、ROMとしては、例えば、フラッシュメモリ、EEPROM、ReRAM、FeRAM等のように、書き換え可能回数に制限のある記録媒体を含んでいる。以下、これらの記録回数に制限のある記録媒体を、単に「フラッシュメモリ」という。本実施形態では、ROMが、例えば、一つのページあたり、数百~数万回程度のみ書き込み可能なMLC(Multi-Level Cell、多値セル)、又は、SLC(Single-Level Cell)のフラッシュメモリである例について説明する。
【0022】
通信部12は、近距離無線通信を行う。このため、通信部12は、受信回路として、対応するドライバIC、アンテナ等を含む。通信部12は、アンテナを介して、カード3内のICチップと通信を行い、ICチップに記録されたIC情報を読み取り及び/又は書き込む。
【0023】
制御部20は、上位装置2全体の制御を行う、例えば、CPU、MPU、DSP、ASIC、GPU(Graphics Processing Unit)等である。
【0024】
記憶部21は、上位装置2の各種設定値や制御プログラムや一時データ等を記憶する記録媒体である。この制御プログラムは、OS(Operating System)、各種アプリケーションソフトウェア(Application Software、以下、単に「アプリ」という。)、カード処理装置1と上位装置2とを中継するミドルウェア等を含む。
記憶部21は、RAM、ROM、HDD(Hard Disk Drive)、その他の光学記録媒体等を含む。
【0025】
これらの他に、カード処理装置1は、取引等の状態を表示するLED(Light Emitting Diode)等の表示部、音声を出力する音声出力部等も含む。
上位装置2は、液晶や有機ELディスプレイやLED等の表示部、タッチパネルやテンキー等の入力部を含む。
【0026】
次に、カード処理システムXの機能的な構成について説明する。
カード処理装置1の制御部10は、設定情報取得部100、及び設定記憶制御部110を含む。
記憶部11は、第一設定情報300、ハッシュ値301、ハッシュ値401、CRC値310、CRC値410、第二設定情報400を記憶する。
上位装置2の制御部20は、アプリ実行部200、及びミドルウェア実行部210を含む。
記憶部21は、第一設定情報300、及びCRC値310を記憶する。
【0027】
設定情報取得部100は、上位装置2から第一設定情報300を取得し、記憶部11へ記憶する。この際、設定情報取得部100は、第一設定情報300を、一旦、一時データとして、記憶部11のRAM等に記憶する。
さらに、設定情報取得部100は、現在の記憶部11内のデータのCRC値410をCRC計算で算出して、上位装置2から取得されたCRC値310と同一かどうか判定する。設定情報取得部100は、CRC値410と、CRC値310とが同一と判定した場合は、設定記憶制御部110にハッシュ値301の比較を行わせる。設定情報取得部100は、同一でないと判定した場合は第一設定情報300を記憶部11のフラッシュメモリFに記憶して、第二設定情報400から置き換える。
【0028】
設定記憶制御部110は、記憶部11のフラッシュメモリFへの第一設定情報300の記憶の前に、第一設定情報300のハッシュ値301を算出する。そして、設定記憶制御部110は、記憶部11に以前に記憶された第二設定情報400のハッシュ値401を算出して比較する。この上で、設定記憶制御部110は、このハッシュ値301とハッシュ値401とが異なる場合は、記憶部11に記憶された第二設定情報400を第一設定情報300で置き換えるよう制御する。設定記憶制御部110は、ハッシュ値301とハッシュ値401とが同じ場合は、第二設定情報400を第一設定情報300で置き換えないよう制御する。
設定記憶制御部110は、以前、第二設定情報400が記憶部11に記憶された際に、記憶部11内のCRC値310を算出して、上位装置2へ送信しておく。
【0029】
アプリ実行部200は、ATM等のアプリを実行する。このため、アプリ実行部200は、表示部にGUI(Graphical User Interface)にてATM等のアプリの画面を表示し、入力部からユーザーの指示を取得し、カード処理装置1を用いた取引を行わせる。この際、アプリ実行部200は、ミドルウェア実行部210を介して、カード処理装置1との間で、各種情報の送受信を行う。
【0030】
ミドルウェア実行部210は、カード処理装置1を制御するミドルウェアを実行する。このミドルウェアは、例えば、カード処理装置1のデバイスドライバ、中間ソフトウェア等を含む。ミドルウェアは、標準規格でのコマンド単位の処理に対応してカード処理装置1との間で情報を送受信することが可能である。
具体的には、ミドルウェア実行部210は、取引種別に対応してカード処理装置1へ第一設定情報300を送信する。
ミドルウェア実行部210は、以前、第二設定情報400がカード処理装置1の記憶部11に記憶された際に、算出されたCRC値310をカード処理装置1から取得して、記憶部21へ記憶しておく。
ミドルウェア実行部210は、カード処理装置1への第一設定情報300の送信の際に、以前に記憶されたCRC値310も送信する。
【0031】
第一設定情報300は、標準規格のカード処理装置1用の設定情報である。第一設定情報300は、例えば、クレジットカード又はデビットカードの種別、クレジットカードの種類、上限金額、及び取引内容に対応する情報を含む。本実施形態において、第一設定情報300は、例えば、取引内容に応じて選択された、EMV Level2規格のカード決済(取引)用の設定情報である。
【0032】
ハッシュ値301は、第一設定情報300のハッシュ値である。ハッシュ値301は、各種ハッシュ関数(Hash Function)等により算出可能である。
【0033】
CRC値310は、以前に第二設定情報400がカード処理装置1の記憶部11に記憶された際に、記憶部11の記憶内容について計算された誤り検出符号値の一例である。CRC値310は、各種の巡回冗長検査(Cyclic Redundancy Check、CRC)計算等の処理で算出可能である。本実施形態では、CRC値310は、一旦、上位装置2へ送信されて記憶部21に記憶され、第一設定情報300と供にカード処理装置1へ送信される。
【0034】
第二設定情報400は、以前に上位装置2から送信された設定情報である。第二設定情報400は、記憶部11のメモリ空間上のフラッシュメモリFに記憶される。
第二設定情報400は、第一設定情報300と同一であっても、異なってもよい。すなわち、第二設定情報400は、第一設定情報300と同種の情報であり、クレジットカード又はデビットカードの種別、クレジットカードの種類、上限金額、及び取引内容に対応する情報を含む。
【0035】
ハッシュ値401は、第二設定情報400のハッシュ値である。
【0036】
CRC値410は、その処理の時点での記憶内容について計算された、誤り検出符号値の一例である。
【0037】
なお、これらの記憶部11及び記憶部21に記憶されるデータは、処理の進行に対応して変化する。この変化の詳細については後述する。
【0038】
〔設定情報書込制御処理〕
次に、
図2及び
図3により、本発明の実施の形態に係るカード処理システムXによる設定情報書込制御処理の説明を行う。
本実施形態の設定情報書込制御処理では、取引の際に、カード処理装置1のフラッシュメモリFに記憶された第二設定情報400を、上位装置2から送信された第一設定情報300で置き換えるか置き換えないかの制御を行う。
本実施形態の設定情報書込制御処理は、主に制御部10及び制御部20が、記憶部11及び記憶部21に記憶された制御プログラムを、各部と協働し、ハードウェア資源を用いて実行する。
以下で、
図2のフローチャートにより、主に、カード処理装置1の制御部10の処理に基づいて、設定情報書込制御処理をステップ毎に説明する。
【0039】
(ステップS101)
まず、設定情報取得部100が、各データ取得処理を行う。
図3(a)に、初期状態における記憶部11の状態を示す。この状態では、記憶部11のフラッシュメモリFに第二設定情報400が記憶されている。
この状態で、下記に示す取引のタイミングで、上位装置2から各データが送信され、これを設定情報取得部100が取得する。下記で、その際の状況等について説明する。
【0040】
上位装置2のアプリ実行部200は、待機画面で『現金引き出し』、『払い込み』等の取引内容を、表示部に表示させ、入力部にて利用者(ユーザー)に選択させる。
ユーザーにより取引内容が選択されると、アプリ実行部200は、送信する設定情報を、大地情報として設定する。
【0041】
たとえば、『現金引き出し』が指定された場合、アプリ実行部200は、デビットカードの取引に限定した設定情報を、第一設定情報300に設定する。
一方で、『払い込み』が選択された場合、アプリ実行部200は、クレジットカードに限定した設定情報を、第一設定情報300に設定する。
さらに、アプリ実行部200は、利用可能なクレジットカードのブランド等の種類まで限定させ、これを第一設定情報300に設定することも可能である。
加えて、アプリ実行部200は、第一設定情報300に、決済の上限金額、及びその他の取引内容に対応する情報を加えてもよい。
【0042】
そして、アプリ実行部200は、その取引種別の情報に対応した第一設定情報300を、ミドルウェア実行部210に受け渡す。
ミドルウェア実行部210は、この第一設定情報300をカード処理装置1へ送信する。さらに、ミドルウェア実行部210は、以前にカード処理装置1から取得した、CRC値310についても、カード処理装置1へ送信する。
【0043】
設定情報取得部100は、上位装置2から、第一設定情報300及びCRC値310を取得し、記憶部11に一時データとして記憶する。
【0044】
(ステップS102)
次に、設定情報取得部100が、記憶部内CRC計算処理を行う。
設定情報取得部100は、例えば、フラッシュメモリFに記憶されているデータに対して、CRC計算を行い、CRC値410を算出する。
【0045】
(ステップS103)
次に、
設定情報取得部100が、取得CRC比較処理を行う。
設定情報取得部100は、算出されたCRC値410と、上位装置2で記憶されていたCRC値310とを比較する。これにより、カード処理装置1が取り換えられたか等について判断可能となる。
図3(b)に、この際の比較の様子を示す。
【0046】
(ステップS104)
次に、設定情報取得部100が、一致したか否かを判定する。設定情報取得部100は、CRC値310とCRC値410とが、一致した場合に、Yesと判定する。設定情報取得部100は、不一致の場合には、Noと判定する。
Yesの場合、設定情報取得部100は、処理をステップS105に進める。
Noの場合、設定情報取得部100は、処理をステップS108に進める。
【0047】
(ステップS105)
CRC値310とCRC値410とが一致した場合、設定記憶制御部110が、第一ハッシュ値計算処理を行う。
設定記憶制御部110は、記憶部11のフラッシュメモリFへの第一設定情報300の記憶の前に、上位装置2から取得した第一設定情報300のハッシュ値301を算出する。
【0048】
(ステップS106)
次に、設定記憶制御部110が、ハッシュ値比較処理を行う。
設定記憶制御部110は、ハッシュ値301と、記憶部11に以前に記憶された第二設定情報400のハッシュ値401とを比較する。これにより、上位装置2のアプリにて、前回と同じ設定情報が設定されたかどうかを判断することが可能となる。
図3(c)に、この際の比較の様子を示す。
【0049】
(ステップS107)
次に、設定記憶制御部110が、一致したか否かを判定する。設定記憶制御部110は、ハッシュ値301とハッシュ値401とが一致した場合に、Yesと判定する。設定記憶制御部110は、それ以外の場合には、Noと判定する。
Yesの場合、設定記憶制御部110は、処理をステップS109に進める。この場合、第二設定情報400は第一設定情報300と同じなので、設定記憶制御部110は、置き換えないよう制御することになる。すなわち、記憶部11内の第二設定情報400が同一、又は、上位装置2に接続されたカード処理装置1自体が変更されていなければ、以前に記憶された第二設定情報400と同一なので、書き込まない。
Noの場合、は、処理をステップS108に進める。
【0050】
(ステップS108)
ここで、設定記憶制御部110が、書き込み処理を行う。
CRC値310とCRC値410とが異なる、又は、ハッシュ値301とハッシュ値401とが異なる場合、設定記憶制御部110は、記憶部11のフラッシュメモリFに記憶された第二設定情報400を、上位装置2から取得した第一設定情報300で置き換えることで、書き込む。
すなわち、設定記憶制御部110は、フラッシュメモリFに、第一設定情報300を上書きする。
【0051】
(ステップS108)
ここで、設定記憶制御部110が、一時データ削除処理を行う。
設定記憶制御部110は、一時データとして格納された第一設定情報300、ハッシュ値301、及びCRC値310を削除する。
図3(d)に、この際の記憶部11の様子を示す。
【0052】
そして、設定記憶制御部110は、フラッシュメモリFに記憶されているデータに対して、再びCRC計算(再計算)を行い、以前に算出されたCRC値410を置き換える。設定記憶制御部110は、この置き換えられた新たなCRC値410を上位装置2へ送信する。
上位装置2のミドルウェア実行部210は、この新たなCRC値410を取得して、記憶部21のCRC値310と置き換える。
【0053】
その後、カード処理装置1は待機状態となり、ユーザーによりカード3が翳されるのを待つ。
この際、アプリ実行部200及び設定記憶制御部110は、限定された種類以外のカード3が翳された場合、取引を中断することが可能である。
以上により、本発明の実施の形態に係る設定情報書込制御処理を終了する。
【0054】
〔本実施形態の主な効果〕
以上のように構成することで、以下のような効果を得ることができる。
従来、特許文献1に記載のように、ファームウェアや設定情報の更新は、上位装置2から与えられた設定情報を、RS-232CやUSB等で転送して、装置内のフラッシュメモリ等に対して書き込まれていた。さらに、フラッシュメモリに展開されたデータは、装置内でCRC計算され、上位装置2で予め計算されたCRC値と比較され、意図通りに書き込まれたことを確認していた。
【0055】
一方、従来、EMV Level2規格等の非接触型カードのカード処理装置1については、カードの取引毎に異なる設定情報を設定しておかなければならない場合があった。具体的には、一回目の取引ではクレジットカードを受け付け、二回目の取引ではデビッドカードを受け付ける等、各取引を行う直前に設定情報がカード処理装置1に送られていた。送られた設定情報は、カード処理装置内のフラッシュメモリに記憶され、電源が再投入された場合においても、その設定の状態を保つことができた。
しかしながら、この設定情報のように、頻繁に書き換える必要がある場合、フラッシュメモリの最大書き込み可能回数(寿命)に短期間で達してしまう可能性があった。このため、カード処理装置の設定情報の記憶部への書き込みの頻度を抑える技術が求められていた。
【0056】
これに対して、本発明の実施の形態に係るカード処理システムXは、カード処理装置1、及び該カード処理装置1が搭載される上位装置2を備えるカード処理システムであって、上位装置2は、カード処理装置1を制御するミドルウェアを実行するミドルウェア実行部210を備え、ミドルウェア実行部210は、取引種別に対応してカード処理装置1へ第一設定情報300を送信し、カード処理装置1は、上位装置2から第一設定情報300を取得する設定情報取得部100と、設定情報取得部100により以前に取得された第二設定情報400を記憶する、書き換え可能回数に制限のある記憶部11と、記憶部11のフラッシュメモリFへの第一設定情報300の記憶の前に、設定情報取得部100により取得された第一設定情報300のハッシュ値301と、記憶部11に以前に記憶された第二設定情報400のハッシュ値401とを比較し、異なる場合は記憶部11に記憶された第二設定情報400を第一設定情報300で置き換え、同じ場合は置き換えないよう制御する設定記憶制御部110とを備えることを特徴とする。
【0057】
このように構成することで、設定情報の記憶部11への書き込みの頻度を抑えることが可能となる。これにより、記憶部11としてフラッシュメモリを使用した場合の、長寿命化が期待できる。
すなわち、以前に取得した設定情報と同じものを上位装置2から取得したか否かを判断するために、第一設定情報300に対しハッシュ計算を行い、第二設定情報400のハッシュと比較する。これにより、カード処理装置1にて、同じ設定情報を取得した場合、書き込まないように制御することで、前回と同じデータで上書きされることを防止できる。よって、フラッシュメモリの最大書き込み可能回数(寿命)に達してしまうまでの期間を長くすることができる。つまり、カード処理装置1に記憶されたデータが書き換わっていない場合、フラッシュメモリの最大書き込み可能回数に達することを防止することができる。
【0058】
さらには、RAM等のアクセスとは異なり、フラッシュメモリヘの書き込みは大変時間がかかるため、取引時間が長くなっていた。
これに対して、本発明の実施の形態に係るカード処理システムXは、第二設定情報400の第一設定情報300での置き換えを制御することで、取引時間を短縮することができる。すなわち、同じ設定情報の再書き込みを防止することにより、ATM等のカード翳し待ち状態になるまでの時間を短縮することが可能となる。これにより、ユーザーに対する利便性を向上させることができる。
【0059】
さらに、本実施形態のカード処理システムXは、カード処理装置1にて、取得された第一設定情報300のハッシュ値301を算出し、第二設定情報400のハッシュ値401を算出し、これらを比較することを特徴とする。
このように構成することで、カード処理装置1でハッシュ値301を算出するため、ハッシュ値301自体の改ざん等による不正を防止できる。
【0060】
本発明のカード処理システムXは、設定記憶制御部110は、第二設定情報400が記憶部11に記憶された際に、記憶部11内のデータの誤り検出符号値であるCRC値310を算出して、上位装置2へ送信しておき、ミドルウェア実行部210は、誤り検出符号値であるCRC値310を取得して記憶しておき、第一設定情報300の送信の際に誤り検出符号値も送信し、設定情報取得部100は、現在の記憶部11内のデータの誤り符号値であるCRC値410を算出して、上位装置2から取得されたCRC値310と同一かどうか判定し、同一と判定した場合は設定記憶制御部110にハッシュ値301とハッシュ値401との比較を行わせ、同一でないと判定した場合は第二設定情報400を第一設定情報300で置き換えることを特徴とする。
【0061】
このように構成し、記憶部11内のデータのCRC値310が異なっていることを検出することで、別のアプリ等から記憶部11のフラッシュメモリ等の内容が書き換えられたり、別のカード処理装置1に差し替えられたりしたことを容易に検出可能となる。このように記憶部11内の設定情報、又はカード処理装置1自体が変更されていなければ、ハッシュ値301及びハッシュ値401の比較を行うという二段階の処理により、判断時間を短縮でき、不正等も防ぐことができる。さらに、第二設定情報400と設定情報が同じ場合、書き込まないように制御することで、設定情報の記憶部11への書き込みの頻度を抑えることが可能となる。
【0062】
本発明のカード処理システムXは、第一設定情報300及び第二設定情報400は、クレジットカード又はデビットカードの種別、クレジットカードの種類、上限金額、及び取引内容に対応する情報を含むことを特徴とする。
このように構成することで、標準規格の設定情報のうち、取引毎に変更する必要がある情報について、書き込みを制御することが可能となる。
【0063】
〔他の実施の形態〕
なお、上述の実施の形態では、第一設定情報300のハッシュ値301は、カード処理装置1で算出するように記載した。
しかしながら、ハッシュ値301は、先に上位装置2で算出されていてもよい。
さらに、ハッシュ値401についても、その都度、設定記憶制御部110で算出せずに、上位装置2から取得したり、カード処理装置1で算出したりしたものを、記憶部11のフラッシュメモリFに記憶しておくことも可能である。さらに、第二設定情報400を、カード処理装置1から上位装置2に送信して、上位装置2でハッシュ値401を算出して比較するような構成も可能である。
このように構成することで、ハッシュ値301の算出の時間を短くしたり、カード処理装置1の処理負担を軽減したりすることが可能となる。
【0064】
加えて、上述の実施の形態では、上位装置2からの第一設定情報300の送信後に、カード処理装置1でCRC値310を算出し、比較するように記載した。
しかしながら、上位装置2から第一設定情報300を送信する前に、カード処理装置1でCRC値410を算出して上位装置2に送信し、上位装置2でCRC値310とCRC値410とを比較してもよい。この場合、一致していたら、上位装置2のミドルウェア実行部210は、第一設定情報300をカード処理装置1へ送信せず、第二設定情報400をそのまま使用するようカード処理装置1へ指示してもよい。
このように構成することで、第一設定情報300の送受信にかかる時間を抑制できる。さらに、カード処理装置1で、一時データとして第一設定情報300を記憶する必要がなくなるため、記憶容量を削減できる。
【0065】
上述の実施の形態では、上位装置2から第一設定情報300を全て送信してから、CRC値310やハッシュ値301の比較を行うように記載した。
しかしながら、第一設定情報300の一部を上位装置2から送信した状態で、CRC値310やハッシュ値301の比較を行うように構成してもよい。
さらに、上位装置2からは、第一設定情報300の取引毎に変更される一部のみを送信してもよく、圧縮等した状態で送信してもよい。
このように構成することで、カード処理装置1における記憶部11の容量を削減することができる。
【0066】
上述の実施の形態では、第二設定情報400を一つ記憶するように記載した。
しかしながら、第二設定情報400は、一つだけでなく、記憶部11のフラッシュメモリFに、異なる種類のものを複数記憶してもよい。
このように構成することで、クレジットカードとデビットカードとが交互に取引されるような場合でも、フラッシュメモリFへの書き込み回数の増加を抑えることができる。
【0067】
上述の実施の形態では、フラッシュメモリFに記憶されているデータ、すなわち全体のCRC計算を行うように記載した。
しかしながら、CRC計算は、第二設定情報400が格納されているメモリアドレスの範囲のみについて行ってもよい。
このように構成することで、CRC計算にかかる時間を短縮することができる。加えて、フラッシュメモリFの第二設定情報400及びハッシュ値301以外の箇所が書き換えられた場合でも、CRC値310の比較で不一致と判断されなくなる。このため、書き込み回数を抑えられる可能性が高まる。
【0068】
逆に、CRC計算を、記憶部11の一時データ以外の領域全体に対して行ってもよい。このように構成することで、カード処理装置1の置き換えられたり、アプリから設定を書き換えられたりしたことを確実に判別可能となる。
【0069】
上述の実施の形態では、カード処理装置1として、EMV Level2の非接触型カードのICカードリーダである例を説明した。
しかしながら、カード処理装置1は、EMV Level2の接触型のカードリーダでも、同様の処理が可能である。
【0070】
上述の実施の形態では、フラッシュメモリFに書き込まれる第一設定情報300及び第二設定情報400が、EMV Level2の設定情報である例を説明した。
しかしながら、これ以外の取引用等の設定情報に対しても、フラッシュメモリ等の書き換え可能回数が制限されている記憶部に対して、同様の処理を行うことが可能である。
【0071】
上述の実施の形態では、上位装置2とカード処理装置1との接続を、有線で行うように記載した。
しかしながら、上位装置2とカード処理装置1とを、WiFi、Blutooth(登録商標)等の無線で接続してもよい。加えて、有線であっても、その他の通信方式で接続することも可能である。
【0072】
なお、上記実施の形態の構成及び動作は例であって、本発明の趣旨を逸脱しない範囲で適宜変更して実行することができることは言うまでもない。
【符号の説明】
【0073】
1 カード処理装置
2 上位装置
3 カード
10、20 制御部
11、21 記憶部
12 通信部
100 設定情報取得部
110 設定記憶制御部
200 アプリ実行部
210 ミドルウェア実行部
300 第一設定情報
301、401 ハッシュ値
310、410 CRC値
400 第二設定情報
F フラッシュメモリ
X カード処理システム