(58)【調査した分野】(Int.Cl.,DB名)
【発明を実施するための形態】
【0015】
以下図面について、本発明の一実施の形態を詳述する。
【0016】
(1)第1の実施の形態
(1−1)従来の自動取引システム1の構成
本実施の形態による自動取引システムを説明するに際し、まず、従来の自動取引システム1の構成について
図1を用いて説明する。
【0017】
自動取引システム1は、1又は複数のATM2と、勘定系ホストコンピュータ3とがWAN(Wide Area Network)などの広域ネットワーク4を介して接続されることにより構成されている。さらに、ATM2がシャットダウンされているか稼働しているかなどの稼働状況を監視するATM稼働監視サーバ5が広域ネットワーク4を介してATM2に接続されている。
【0018】
(ATM2の構成)
ATM2は、利用者の操作に応じて現金の入出金等の取引を行う自動取引装置である。ATM2は、当該ATM2全体の動作制御を司るATM制御部10と、ATM2の前面パネルの表示ランプ制御、前面パネルの開閉検知などを行うI/O(Input/Output)制御部11と、ATM2の前面に設けられた入出金口内に投入された紙幣を計数して収納庫に搬送、保管し又は出金すべき紙幣を上記収納庫から取り出して入出金口内に搬送する紙幣処理部12と、ATM2での取引に必要なキャッシュカード等のカード媒体21から当該カード媒体21に記録されている情報を読み取るカードリーダ13と、暗証番号等を入力するためのテンキーを有し、入力された暗証番号等の情報を暗号化する機能を有する暗号化ピンパッド14と、取引明細票用のプリンタであるレシートプリンタ15と、通帳用のプリンタでなる通帳プリンタ16と、ATM取引のログを記録するジャーナルプリンタ17と、利用者の顔写真等を撮影するセキュリティ用の監視カメラ18と、入出金等の取引に関する情報を表示する表示部19と、勘定系ホストコンピュータ3と通信を行う通信処理部20とを備えて構成される。入出金口とは、ATM2の利用者がATM2から紙幣を取り出したり、紙幣を投入したりする口であり、通常は入出金口の蓋(シャッター)でその口が閉じられている。なお、本実施の形態では、カード媒体21として磁気ストライプカードが使用される例について説明する。また、表示部19は、利用者からの操作を受け付ける表示操作部であってもよく、暗号化ピンパッド14の機能を有していてもよい。
【0019】
図2は、ATM制御部10の概略構成を示す。
図2に示すように、ATM制御部10は、CPU(Central Processing Unit)30、メモリ31等の情報処理資源を備えたマイクロコンピュータ構成を有する。CPU30は、ATM制御部10全体の動作制御を司るプロセッサであり、メモリ31は、例えば半導体メモリから構成される。
【0020】
メモリ31の記憶領域は、プログラム領域32及びデータ領域33に区分されて管理される。プログラム領域32には、ATM2取引全体を制御するATMアプリケーション40が格納される。また、プログラム領域32には、I/O制御部11、紙幣処理部12、カードリーダ13、暗号化ピンパッド14、レシートプリンタ15、通帳プリンタ16、ジャーナルプリンタ17、監視カメラ18及び表示部19をそれぞれ制御するためのソフトウェア(I/O制御部制御ソフトウェア41、紙幣処理部制御ソフトウェア42、カードリーダ制御ソフトウェア43、暗号化ピンパッド制御ソフトウェア44、レシートプリンタ制御ソフトウェア45、通帳プリンタ制御ソフトウェア46、ジャーナルプリンタ制御ソフトウェア47、監視カメラ制御ソフトウェア48及び通信処理ソフトウェア49)等が格納される。
【0021】
また、データ領域33には、ATM2での入出金取引に必要なデータが格納される。具体的には、カード番号50、取引関連データ51、取引可否関連データ52、取引検証結果データ53、コマンド・レスポンスデータ54、監視カメラ画像データ55などがデータ領域33に格納される。
【0022】
カード番号50は、カード媒体21に記憶されている、銀行口座の番号、クレジットカードの番号などの利用者の口座を特定可能な情報であり、カードリーダ13によりカード媒体21から取得され、ATM制御部10のメモリ31に記憶される。
【0023】
取引関連データ51は、勘定系ホストコンピュータ3に送信する取引データ、取引データに対するメッセージ認証コード(MAC:Message Authentication Code)、それらを生成するために使用される関連データ等である。取引関連データ51に格納される取引データには、例えば、出金額、入金額などの利用者からの入力に基づく取引に関する情報、特には取引金額に関する情報を含む。また、取引データは、カード番号50などの情報を含んでもよい。
【0024】
取引可否関連データ52は、ATM2から送信された取引データに対して、勘定系ホストコンピュータ3が銀行口座残高、与信情報などを参照し、その取引を成立させてよいか否かを判断した結果のデータ、それに対応するメッセージ認証コード等であり、勘定系ホストコンピュータ3で生成される。勘定系ホストコンピュータ3は、ATMスイッチ、ATM2の上位装置又はATM2の外部のコンピュータである外部コンピュータと呼ぶこともある。
【0025】
取引検証結果データ53は、勘定系ホストコンピュータ3からカード媒体21(例えばICカード)に送られてきた取引可否データをカード媒体21で検証した結果のデータである。コマンド・レスポンスデータ54は、ATM制御部10に接続されているデバイス(11〜20)との通信に使用されるデータである。監視カメラ画像データ55は、監視カメラ制御ソフトウェア48から送られてくる画像データ、時刻データ等である。
【0026】
図3は、紙幣処理部12の機能構成を示す。
図3に示すように、紙幣処理部12は、紙幣処理部制御部60及び紙幣搬送機構部61を備えて構成される。
【0027】
紙幣処理部制御部60は、紙幣搬送機構部61を制御すると共に、ATM制御部10との間でコマンド、レスポンス等の授受を行う機能を有するハードウェアである。紙幣搬送機構部61は、金庫内の紙幣を保管する収納庫から紙幣を搬送してATM2の利用者に出金したり、利用者がATM2の入出金口に投入した紙幣を一時収納庫に搬送して計数したり、入金取引成立後に一時収納庫に格納されている紙幣を金庫内の収納庫に紙幣を搬送したりする機能を有するハードウェアである。なお、紙幣処理部制御部60は、出金の際に搬送される紙幣の金種及び枚数を計数する機能を有してもよいし、入金の際に搬送される紙幣の金種及び枚数を計数する機能を有してもよい。
【0028】
図4は、紙幣処理部制御部60の概略構成を示す。紙幣処理部制御部60は、CPU70、メモリ71等の情報処理資源を備えたマイクロコンピュータ構成を有する。CPU70は、紙幣処理部制御部60全体の動作制御を司るプロセッサであり、メモリ71は、例えば半導体メモリから構成される。
【0029】
メモリ71の記憶領域は、プログラム領域72及びデータ領域73に区分されて管理される。プログラム領域72には、全体制御ファームウェア80、紙幣搬送機構制御ファームウェア81等が格納される。データ領域73には、全体制御用データ82、紙幣搬送機構制御用データ83等が設けられる。
【0030】
全体制御ファームウェア80は、ATM制御部10との間の通信を制御したり、紙幣搬送機構制御ファームウェア81を制御したりする機能を有するソフトウェアである。また紙幣搬送機構制御ファームウェア81は、紙幣搬送機構部61の制御を行う機能を有するソフトウェアである。
【0031】
また全体制御用データ82は、ATM制御部10との通信用データのほか、他の制御ファームウェアを制御するために利用されるデータ(データエリア)である。紙幣搬送機構制御用データ83は、紙幣搬送機構部61の制御に利用するデータである。
【0032】
なお、図示は省略するが、紙幣搬送機構部61は、ATM2の利用者が紙幣を投入したり取り出したりするための入出金口、取引き中の紙幣を一時的に収納する収納庫(一時スタッカ)、金庫などで囲われた紙幣を保管するための収納庫などを備えている。
【0033】
図5は、カードリーダ13の機能構成を示す。カードリーダ13は、カードリーダ制御部90、カード搬送・読取部91を備えて構成される。
【0034】
カードリーダ制御部90は、カード搬送・読取部91を制御すると共に、ATM制御部10との間でコマンド、レスポンス等の授受を行う通信機能を有するハードウェアである。カード搬送・読取部91は、ATM2の利用者がカードリーダ13に挿入したカード媒体21を読取部まで搬送したり、読取部からカード媒体21を搬送して利用者に返却したりする機能を有するハードウェアである。
【0035】
なお、カードリーダ13は、磁気ストライプカード、ICカードなどのカード媒体21が挿入される構成であってもよいし、非接触ICカード、非接触通信機能を備えたスマートフォン等の通信機器(例えば携帯端末)がかざされる構成であってもよく、カード媒体21等の記憶媒体から情報を読み取る読取装置の一例である。
【0036】
図6は、カードリーダ制御部90の概略構成を示す。カードリーダ制御部90は、CPU100、メモリ101等の情報処理資源を備えたマイクロコンピュータ構成を有する。CPU100は、カードリーダ制御部90全体の動作制御を司るプロセッサであり、メモリ101は、例えば半導体メモリから構成される。
【0037】
メモリ101の記憶領域は、プログラム領域102及びデータ領域103に区分されて管理される。プログラム領域102には、全体制御ファームウェア110、ICカード通信制御ファームウェア111等が格納される。データ領域103には、全体制御用データ112、カード媒体用データ113等が設けられる。
【0038】
全体制御ファームウェア110は、ATM制御部10との間の通信を制御したり、カード搬送・読取部91、及びICカード通信制御ファームウェア111を制御したりする機能を有するソフトウェアである。ICカード通信制御ファームウェア111は、ICカードとの通信の制御を行う機能を有するソフトウェアである。
【0039】
全体制御用データ112は、ATM制御部10との通信用データのほか、ICカード通信制御ファームウェア111を制御するために利用されるデータ(データエリア)である。カード媒体用データ113は、ICカード、磁気カードなどのカード媒体21から読み出したり書き出したりしたデータである。
【0040】
図7は、暗号化ピンパッド14の概略構成を示す。
図7に示すように、暗号化ピンパッド14は、CPU120、メモリ121等の情報処理資源を備えたマイクロコンピュータ構成を有する。CPU120は、暗号化ピンパッド14全体の動作制御を司るプロセッサであり、メモリ121は、例えば半導体メモリから構成される。
【0041】
メモリ121の記憶領域は、プログラム領域122及びデータ領域123に区分されて管理される。プログラム領域122には、アプリケーション130、通信制御ファームウェア131、暗号処理ファームウェア132等が格納される。データ領域123には、平文データ133、暗号データ134、取引関連データ135、取引可否関連データ136等が格納される。
【0042】
アプリケーション130は、暗号化ピンパッド14全体の制御を行うファームウェアである。また通信制御ファームウェア131は、暗号化ピンパッド14とATM2内の各デバイスとの間でのデータ通信を制御する機能を有するファームウェアである。暗号処理ファームウェア132は、ATM制御部10から送信されてくる取引可否データを検証したり、ATM制御部10から送信されてくる取引データに対する取引データMAC(電子署名、メッセージ認証コード等)を生成したりする暗号処理機能を持つファームウェアである。
【0043】
平文データ133は、出金取引における出金額、取引メニューなど、暗号化ピンパッド14のキーを押下して入力される平文データである。暗号データ134は、暗号化ピンパッド14のキーを押下して入力され、暗号化ピンパッド14の外部に出力されるときには暗号化される暗証番号である。
【0044】
取引関連データ135は、取引関連データ51に対応するデータである。すなわち、取引関連データ135として、勘定系ホストコンピュータ3に送信する取引データ、取引データに対する取引データMAC、それらを生成するために使用される関連データ等がデータ領域123に格納される。取引可否関連データ136は、取引可否関連データ52に対応するデータである。すなわち、取引可否関連データ136として、勘定系ホストコンピュータ3が銀行口座残高、与信情報などを参照し、その取引を成立させてもよいか否かを判断した結果を示す取引可否データ、取引可否データに対する取引可否データMAC(電子署名、メッセージ認証コード等)がデータ領域123に格納される。
【0045】
(勘定系ホストコンピュータ3の構成)
図8は、勘定系ホストコンピュータ3の概略構成を示す。勘定系ホストコンピュータ3は、ATM2の利用者の口座、残高に関する情報などを記憶して管理する機能を有するコンピュータ装置であり、勘定系ホストコンピュータ3全体の動作制御を司るCPU140、メモリ141などの情報処理資源を備えて構成される。
【0046】
メモリ141の記憶領域は、プログラム領域142及びデータ領域143に区分されて管理される。プログラム領域142には、アプリケーション150、通信制御ソフトウェア151、暗号処理ソフトウェア152等が格納される。データ領域143には、取引関連データ153、取引可否関連データ154等が格納される。
【0047】
アプリケーション150は、勘定系ホストコンピュータ3全体の制御を行うソフトウェアである。また通信制御ソフトウェア151は、勘定系ホストコンピュータ3と各ATM2との間でのデータ通信を制御する機能を有するソフトウェアである。暗号処理ソフトウェア152は、ATM2から送信されてくるメッセージ認証コード等を検証したり、新たにメッセージ認証コード等を生成したりする暗号処理機能を持つソフトウェアである。本暗号処理ソフトウェア152は、ハードウェアで実現してもよい。
【0048】
取引関連データ153は、取引関連データ51に対応するデータである。取引可否関連データ154は、取引可否関連データ52に対応するデータである。すなわち、取引可否関連データ154として、勘定系ホストコンピュータ3が銀行口座残高、与信情報などを参照し、その取引を成立させてもよいか否かを判断した結果を示す取引可否データ、取引可否データに対するメッセージ認証コードデータ等がデータ領域143に格納される。
【0049】
(ATM稼働監視サーバ5の構成)
図9は、ATM稼働監視サーバ5の概略構成を示す。ATM稼働監視サーバ5は、ATM2が稼働している状況を監視・管理する機能を有するコンピュータ装置であり、ATM稼働監視サーバ5全体の動作制御を司るCPU160、メモリ161などの情報処理資源を備えて構成される。
【0050】
メモリ161の記憶領域は、プログラム領域162及びデータ領域163に区分されて管理される。プログラム領域162には、例えばATM稼働監視ソフトウェア170が格納される。データ領域163には、ATM稼働ログ171、監視・制御用データ172等が格納される。
【0051】
ATM稼働監視ソフトウェア170は、ATM2の稼働状況を監視したり、ATM2に対してシャットダウンなどのリモート操作を可能としたりする機能を有する。ATM稼働ログ171は、ATM2の稼働状況を記録したデータである。監視・制御用データ172は、ATM稼働監視サーバ5がATM2にコマンドを送信するためのデータである。
【0052】
(自動取引システム1における出金取引処理)
図10を参照して、カード媒体21として磁気ストライプカードを用いた従来の出金取引処理の流れについて説明する。
【0053】
以下においては、勘定系ホストコンピュータ3とATM2との間において暗号通信を行うための暗号鍵交換などの事前処理は既に完了している状態であるとする。さらに、暗号通信では、リプレイ攻撃防止のために、乱数を用いたチャレンジコード、レスポンスコード等が必要な場合でも、それらのデータの流れについては省略する。リプレイ攻撃とは、過去に送信されたデータを第三者が保存し、保存しておいたデータを再送することにより、不正処理を行う攻撃である。
【0054】
また、ATM2の利用者によりカード媒体21がカードリーダ13に既に挿入されている状態であるとする。また、暗証番号などによる本人確認認証処理に関しては、処理の流れの説明を省略する。
【0055】
まず、カードリーダ13は、カード媒体21からカード番号を読み取り、カード媒体用データ113としてデータ領域103に格納する(ステップS1)。その後カードリーダ13は、カード媒体用データ113としてデータ領域103に格納したカード番号をATM制御部10に送信する(ステップS2)。ATM制御部10は、カード番号を受信し、カード番号50としてデータ領域33に格納する(ステップS3)。その後、ATM制御部10は、格納したカード番号を暗号化ピンパッド14に送信する(ステップS4)。暗号化ピンパッド14は、送られてきたカード番号を平文データ133としてデータ領域123に格納する(ステップS5)。暗号化ピンパッド14にカード番号を格納するのは、暗証番号を暗号化して出力するフォーマットの1つに、カード番号を必要とするフォーマットが存在するからである。
【0056】
上記では、カードリーダ13から暗号化ピンパッド14まで、カード番号は平文で送信されることを想定したが、安全のために暗号通信により暗号化された状態で送信されてもよい。その場合は、暗号化ピンパッド14で格納される暗号化カード番号は、暗号データ134に一旦格納され、暗号化ピンパッド14内の暗号処理ファームウェア132の機能により、カード番号が復号されて平文データ133としてデータ領域123に格納されてもよい。
【0057】
ATM2の利用者により暗号化ピンパッド14が操作されて、取引における出金額が入力されると、暗号化ピンパッド14は、出金額をATM制御部10に送信する(ステップS6)。ATM制御部10は、送られてきた出金額を受信し、取引関連データ51としてデータ領域33に格納する(ステップS7)。
【0058】
その後、ATM制御部10は、受信したカード番号と出金額とを用いて取引データを生成し、その取引データに対する取引データMACを付与するため、取引データを暗号化ピンパッド14に送信する(ステップS8)。暗号化ピンパッド14は、本来暗証番号の暗号化に用いられるが、暗号機能そのものを用いて、取引電文に対する電子署名、メッセージ認証コード等の生成、検証といった暗号処理に用いられることがある。暗号化ピンパッド14は、送られてきた取引データを受信し、取引関連データ135としてデータ領域123に格納する(ステップS9)。その後、暗号化ピンパッド14は、取引データMACを計算し、その結果を取引関連データ135としてデータ領域123に格納し、取引データMACをATM制御部10に送信する(ステップS10)。ATM制御部10は、取引データMACを受信し、取引関連データ51としてデータ領域33に格納する(ステップS11)。そしてATM制御部10は、取引データMACを既に格納している取引データと共に勘定系ホストコンピュータ3に送信する(ステップS12)。
【0059】
勘定系ホストコンピュータ3は、かかる取引データ及び取引データMACを受信し、これらを取引関連データ153としてデータ領域143に格納する(ステップS13)。勘定系ホストコンピュータ3は、取引関連データ153の取引データに対し、取引データに対応する電子署名又はメッセージ認証コードを用いて取引データの正当性を検証する。また勘定系ホストコンピュータ3は、利用者の口座残高、与信情報等を確認し、出金額、口座残高、与信情報などに基づいて出金取引の実施可否を検証した上で、取引可否データを生成する。そして勘定系ホストコンピュータ3は、取引可否データに対応する取引可否データMAC(電子署名、メッセージ認証コード等)を生成し、取引可否関連データ154としてデータ領域143に格納する(ステップS14)。そして勘定系ホストコンピュータ3は、データ領域143に格納された取引可否データと対応する取引可否データMACとをATM制御部10に送信する(ステップS15)。
【0060】
ATM制御部10は、勘定系ホストコンピュータ3から送られてきた取引可否データ及び取引可否データMACを受信すると、取引可否関連データ52としてデータ領域33に格納すると共に、暗号化ピンパッド14に対してそれらのデータを送信する(ステップS16)。
【0061】
暗号化ピンパッド14は、ATM制御部10から送られてきた取引可否データ及び取引可否データMACを受信すると、取引可否関連データ136としてデータ領域123に格納する。そして暗号化ピンパッド14は、取引可否データに対する取引可否データMACを計算し、取引可否データの正当性を検証し、その結果を取引可否関連データ136(取引可否データMAC検証結果)としてデータ領域123に格納する(ステップS17)。暗号化ピンパッド14は、データ領域123から取引可否データMAC検証結果を読み出し、ATM制御部10に送信する(ステップS18)。
【0062】
ATM制御部10は、暗号化ピンパッド14から送られてきた取引可否データMAC検証結果を受信し、取引検証結果データ53としてデータ領域33に格納する(ステップS19)。
【0063】
ATM制御部10は、取引可否データMAC検証結果が正しく、かつ、取引可否データが取引成立を示すものである場合、取引が成立したと判断して紙幣出金コマンドを生成し、紙幣処理部12に送信する(ステップS20)。紙幣出金コマンドは、紙幣処理部12内の現金カセットから必要な枚数の現金を繰り出し、ATM2の利用者がアクセスできる入出金口まで紙幣を搬送する紙幣出金処理を指示するためのコマンドである。紙幣処理部12は、紙幣出金コマンドを受信すると、紙幣出金処理を行う(ステップS21)。
【0064】
取引可否データが取引成立を示すものである場合、ATM制御部10は、引き続き入出金口をふさいでいるシャッターを開くための入出金口シャッター開コマンドを生成し、紙幣処理部12に送信する(ステップS22)。紙幣処理部12は、入出金口シャッター開コマンドを受信すると、シャッターを開き、ATM2の利用者が紙幣を取り出せる状態にする(ステップS23)。なお、取引可否データが取引成立を示すものでない場合、ATM2の利用者に対して取引が成立しなかった旨のメッセージを表示部19に表示する。以上が従来の出金取引処理の流れである。
【0065】
ここで、ATM制御部10のATMアプリケーション40にマルウェアが混入し、取引の裏付けのない不正な紙幣出金コマンドが紙幣処理部12に送信される処理は、例えば、ステップS20及びステップS22で起こり得る。すなわちATM制御部10は、メモリ31に格納されている取引可否データに基づいて紙幣出金コマンドを生成するのが本来の処理の流れである。それを保障しているのがATMアプリケーション40の正当性である。
【0066】
しかしながら、マルウェアの混入によりその正当性が担保されないと、取引可否データに基づかずに不正な紙幣出金コマンドが紙幣処理部12に送信される。この場合、紙幣出金コマンド中の出金額が改ざんされたり、そもそも取引とは全く関係のない紙幣出金コマンドが紙幣処理部12に送信されたりして紙幣の不正出金が行われる。
【0067】
上記の特許文献1には、カードリーダと紙幣処理部との間で暗号通信を行うことにより、ATM制御部にマルウェアが混入した場合でも不正出金を防止する方法が記載されている。しかしながら、その場合、取引の裏付けのある暗号化された紙幣出金コマンドと同様に、ステップS22及びステップS23で、取引の裏付けのある入出金口シャッター開コマンドが暗号化されて送信されているとしても、別の攻撃が存在する。
【0068】
例えば、ATM制御部10のマルウェアが紙幣処理部12に送信される暗号化入出金口シャッター開コマンドをブロックし、ATM2の利用者がATM2の前から立ち去った後に、悪意を持つ第三者がATM2のマルウェアを何らかの手段で操作し、ブロックされた入出金口シャッター開コマンドを紙幣処理部12に送信することで紙幣の不正取出が行われる。このような攻撃の場合、仮に、取引の裏付けのある入出金口シャッター開コマンドが暗号化されていても、上記の攻撃を防止することができない。
【0069】
また、ATM制御部10に混入したマルウェアからの不正出金コマンドを防止できたとしても、混入したマルウェアを放っておくことは許されず、ATM制御部10が正常であるのか異常であるのかをATMシステムとして監視し、異常があれば早急にATM2の上位に存在する監視システムにその異常状態を通知しなければならない。
【0070】
しかしながら、マルウェアなどの攻撃事例を参照すると、上位の監視システムに異常を通知されるのを、マルウェア自身やATM2内部に設置された悪意のあるコンピュータによって阻害される場合がある。また、マルウェア自身が銀行内のネットワークから侵入した場合、上位に存在する監視システム自身も既に乗っ取られている可能性があり、ATM2が異常を通知したとしても、監視システムが適切な対処ができるとは限らない。
【0071】
一方、入金取引の場合には、入金金額の不正改ざん、入金先の口座番号の不正改ざんといったリスクに加えて、入金取引が成立した後に、紙幣返却コマンド、入出金口シャッター開コマンド等がマルウェアにより不正に紙幣処理部12に送信され、ATM2に投入された紙幣が不正に返却されるというリスクが存在する。これを説明するために、従来の入金取引処理の流れについて
図11を用いて説明する。
【0072】
(自動取引システム1における入金取引処理)
図11を参照して、カード媒体21として磁気ストライプカードを用いた従来の入金取引処理の流れについて説明する。入金取引処理において、出金取引処理における
図10のステップS1〜ステップS5、ステップS8〜ステップS19の処理は同じである。
図10のステップS6及びステップS7、及びステップS20〜ステップS23が、入金取引処理において、それぞれステップS30〜ステップS33、ステップS34及びステップS35に置き換わる。以下、相違部分を主に説明する。
【0073】
ATM制御部10は、ATM2に投入される紙幣の合計金額を計数するために(ATMアプリケーション40が紙幣処理部制御ソフトウェア42を介して)入金計数コマンドを生成し、コマンド・レスポンスデータ54としてデータ領域33に格納する。そしてATM制御部10は、格納した入金計数コマンドを紙幣処理部12に送信する(ステップS30)。紙幣処理部12は、入金計数コマンドを受信すると、ATM2の前面に設けられた入出金口に投入された紙幣を計数すると共に、計数した紙幣を紙幣処理部内の一時収納庫に格納する計数処理を行う(ステップS31)。その後、紙幣処理部12は、計数した紙幣の合計金額又は紙幣の金種毎の枚数を入金計数結果としてATM制御部10に送信する(ステップS32)。
【0074】
ATM制御部10は、入金計数結果を受信すると、取引関連データ51としてデータ領域33に格納する(ステップS33)。そしてATM制御部10は、取引関連データ51とカード番号50とを合わせて入金取引のための取引データを生成し、同じく取引関連データ51としてデータ領域33に格納し、取引データを暗号化ピンパッド14に送信する(
図10のステップS8)。以下
図10のステップS9〜ステップS19の処理が行われる。
【0075】
その後、入金取引処理では、ATM制御部10は、ステップS19で受信した取引可否データMAC検証結果が正しく、かつ、取引可否データが取引成立を示すものである場合、取引が成立したと判断して(ATMアプリケーション40が紙幣処理部制御ソフトウェア42を介して)紙幣収納コマンドを生成し、コマンド・レスポンスデータ54としてデータ領域33に格納する。そしてATM制御部10は、格納した紙幣収納コマンドを紙幣処理部12に送信する(ステップS34)。紙幣処理部12は、紙幣収納コマンドを受け取ると、一時収納庫に格納されている紙幣を、金庫などで覆われた収納庫に移動させる紙幣収納処理を行う(ステップS35)。以上が、従来の入金取引処理の流れである。
【0076】
ここで、例えばATM制御部10のATMアプリケーション40にマルウェアが混入した場合、上述した従来の入金取引処理においてステップS34の紙幣収納コマンドを生成して送信する代わりに、ステップS36、ステップS38に示すように、紙幣返却コマンド及び入出金口シャッター開コマンドを生成し、紙幣処理部12に送信されてしまうおそれがある。この結果、紙幣返却コマンドにより一時収納庫に格納されている収納前の紙幣が入出金口に返却され、入出金口シャッター開コマンドにより入出金口シャッターが開かれて紙幣を取り出すことが可能になる。またATM2に一時収納庫が無い場合、収納庫に格納された紙幣を取り出して入出金口に返却されることになる。この場合、入金取引は既に完了しているので、ATM2の利用者は何も気づかずにATM2の前を離れる。その後、悪意を持った第三者がATM2に混入したマルウェアを操作し、上記のような操作により収納庫に移動予定の紙幣を取得することが可能になる。
【0077】
このような攻撃の場合、勘定系ホストコンピュータ3には何も異常が通知されない。また、ATM2内に格納されている取引ログに異常を示すデータの記録がマルウェアによって阻害されていると、ATM稼働監視サーバ5にも異常が通知されない。ATM制御部10が既にマルウェアによって乗っ取られている場合、ATM制御部10自身が自らの異常を判断するのは困難となる。
【0078】
その結果、ATM2内の現金が規定枚数分存在するかを検査する「精査」と呼ばれる作業を行うまで異常が分からないことになり、継続して攻撃を受けて被害金額が大きくなるおそれがある。よって、ATM2の取引処理において、異常が起こった場合は早急にその異常を検知すると共に、その異常状態に対する対策を迅速に実行する必要がある。
【0079】
そこで、本実施の形態では、ATM2内のアプリケーションソフトウェアや制御ソフトウェアがマルウェアにより不正改ざんされた場合において、ATM2内のデバイスがATM制御部10から送られてくるコマンドの正当性を監視することにより、不正出金処理、不正入金処理といった攻撃を防御するだけでなく、ATM制御部10の異常状態を早期にATM監視システムに通知する自動取引システムを提案する。
【0080】
さらに、ATM制御部10の異常状態をATM稼働監視サーバ、セキュリティ監視サーバ等にATM2内のデバイスが通知しようとしてもマルウェアがその通知を妨害した場合、又は上述のサーバが既に攻撃を受けて正しく機能していない場合でも、その異常状態を検知して次の対策を実行する自動取引システムを提案する。
【0081】
(1−2)第1の実施の形態による自動取引システム200の構成
図12において、200は全体として本実施の形態による自動取引システムを示す。本実施の形態における自動取引システム200において、ATM210(ATM制御部220、紙幣処理部221及び暗号化ピンパッド222)、及びセキュリティ監視サーバ211以外については、上述した従来の自動取引システム1と同様に構成されている。なお、基本的に同一の構成については同一の符号を用い、その説明を適宜省略する。
【0082】
(ATM210の構成)
図13は、ATM制御部220の概略構成を示す。プログラム領域32のセキュリティ監視エージェント231、データ領域33の暗号化コマンド・レスポンスデータ232、セキュリティ監視用データ233以外については、従来のATM制御部10と同様に構成されている。
【0083】
セキュリティ監視エージェント231は、ATM210内のデバイスで検知(検出)したATM制御部220の異常状態をセキュリティ監視サーバ211に通知するためのソフトウェアである。暗号化コマンド・レスポンスデータ232は、ATM210内のデバイス間で暗号化されたコマンド、レスポンス等をATM制御部220経由でやり取りするためのデータである。セキュリティ監視用データ233は、ATM210内のデバイスで検知したATM制御部220の異常状態をセキュリティ監視サーバ211に通知する際に使用するデータである。
【0084】
図14は、紙幣処理部221の機能構成を示す。
図14に示すように、紙幣処理部221は、紙幣処理部制御部240及び紙幣搬送機構部61を備えて構成される。なお、紙幣処理部221が備える紙幣処理部12と同様の機能については、その説明を省略する。
【0085】
図15は、紙幣処理部制御部240の概略構成を示す。紙幣処理部制御部240内のメモリ71に格納されている暗号処理部ファームウェア250、暗号処理用データ251以外については、従来の紙幣処理部12と同様に構成されている。
【0086】
暗号処理部ファームウェア250は、紙幣搬送機構部61から出力されるデータを暗号化したり、ATM制御部220から送られてきた暗号化データを復号したりする機能を有するファームウェアであるが、同等の機能を持つハードウェアで構成してもよい。暗号処理用データ251は、ATM制御部220、又は他のATM210内のデバイスとの暗号通信時に利用する処理用データである。例えば、電子署名データ、メッセージ認証コード等の生成、検証などを行うために使われる。なお、全体制御ファームウェア80は、従来の制御に加えて、暗号処理部ファームウェア250を制御する機能を有する。
【0087】
図16は、暗号化ピンパッド222の概略構成を示す。デバイス制御関連データ260、時刻データ261、状態テーブル262、異常通知・異常処理用データ263、特権処理用データ264以外については、従来の暗号化ピンパッド14と同様に構成されている。
【0088】
デバイス制御関連データ260は、暗号化ピンパッド222がATM制御部220との間でコマンド、レスポンス等をやり取りするためのデータであったり、ATM210内の他のデバイスとの間で暗号化されたコマンド、レスポンス等をやり取りするためのデータであったりする。
【0089】
時刻データ261は、ATM制御部220との間、又はATM210内の他のデバイスとの間でコマンド、レスポンス等を受け渡しした時刻を示すデータである。状態テーブル262には、勘定系ホストコンピュータ3が出金取引、入金取引等を承認する前か後かといった、ATM210における取引の状態を示すデータ、ATM制御部220が正常であるか異常であるかの状態を示すデータ、セキュリティ監視サーバ211からの応答に応じて、暗号化ピンパッド222が通常モードであるか、縮退モードであるかといった暗号化ピンパッド222の状態を示すデータが格納される。
【0090】
異常通知・異常処理用データ263は、暗号化ピンパッド222がATM制御部220の異常を検出した場合、セキュリティ監視サーバ211に異常状態を通知するために用いるデータであったり、セキュリティ監視サーバ211からの異常状態に対する対処指示データであったりする。
【0091】
特権処理用データ264は、例えば、セキュリティ監視サーバ211からの指示により暗号化ピンパッド222が縮退モードに入った後に、通常モードに復帰させる場合に特権モードに入って復帰させる場合に使用するデータである。例えば、ワンタイムパスワードを用いて特権モードに入る場合は、ワンタイムパスワードの発行に必要なチャレンジコードであったり、発行されたワンタイムパスワードを暗号化ピンパッド222が検証するために使うデータであったりする。
【0092】
(セキュリティ監視サーバ211の構成)
セキュリティ監視サーバ211は、ATM210のセキュリティ状況を監視するサーバであり、ATM210内のデバイスがATM制御部220の異常を検出した場合、ATM210からの異常検出情報を受信する。セキュリティ監視サーバ211は、ATM210から異常が通知された場合、異常検出情報の内容に応じて、ATM210に対して縮退モードで運用したりといった異常時対策命令を出力する機能コマンドを送付したり、ATM稼働監視サーバ5と連携してATM210をシャットダウンさせる、直接ATM210をシャットダウンさせる等の機能を有するコンピュータである。
【0093】
図17は、セキュリティ監視サーバ211の概略構成を示す。セキュリティ監視サーバ211は、セキュリティ監視サーバ211全体の動作制御を司るCPU270、メモリ271などの情報処理資源を備えて構成される。
【0094】
メモリ271の記憶領域は、プログラム領域272及びデータ領域273に区分されて管理される。プログラム領域272には、例えばセキュリティ監視ソフトウェア280が格納される。データ領域273には、ATM異常通知情報281、異常時対策リスト282、復旧用データ283等が格納される。
【0095】
セキュリティ監視ソフトウェア280は、ATM制御部220のセキュリティ状況を監視したり、ATM210に対して異常判断時の対策命令を発行したり、異常時からの復旧に必要なデータ送信を可能としたりする機能を有する。ATM異常通知情報281は、ATM210から送信されてくる異常状態の通知データである。異常時対策リスト282は、通知された異常状態に対応する対策方法のリストである。復旧用データ283は、ATM210を異常状態から正常状態に復旧するために特権モードが必要な場合、その特権モードに入るために送受信するデータである。
【0096】
(自動取引システム200における出金取引処理)
図18〜
図20を参照して、自動取引システム200における出金取引の流れについて説明する。ここではカード媒体21として磁気ストライプカードを用いる場合を例に挙げて説明する。なお、
図18では、
図10のステップS1〜ステップS19までの処理に続く処理であり、従来の出金取引との差異を明確にするため、
図10のステップS1〜ステップS19までの処理を省略し、それ以降の処理の流れを示している。ここでは、暗号化ピンパッド222と紙幣処理部221との間の暗号通信に必要な暗号鍵の共有、セッション生成等は既に完了しているとする。また、暗号通信でリプレイ攻撃を防止するためのチャレンジデータ、レスポンスデータといった暗号通信に必要な既知のデータのやり取りも省略する。
【0097】
またステップS42で必要とする取引データ、取引可否データは、それぞれ暗号化ピンパッド222が
図10のステップS9、ステップS17で取得し、取引関連データ135、取引可否関連データ136としてデータ領域123に保存しているとものする。さらに、ステップS17では、取引可否データの内容に応じて、状態テーブル262には取引が成立した状態であるか、不成立の状態であるのかの状態データが格納されているものとする。さらにステップS17では、取引可否データMACを受信した時刻(取引可否データMACの検証を行った時刻であってもよい。)が時刻データ261に格納されているものとする。
【0098】
図18に示すように、まず、ATM制御部220は、ステップS19で受信した取引可否データMAC検証結果が正しく、かつ、取引可否データが取引成立を示すものである場合、取引が成立したと判断して紙幣出金コマンドを生成し、暗号化ピンパッド222に対して、平文の紙幣出金コマンドを送信する(ステップS40)。暗号化ピンパッド222は、平文の紙幣出金コマンドを受信すると、受信した時刻を時刻データ261としてデータ領域123に書き込む(ステップS41)。
【0099】
そして、ステップS17で保存した取引可否データの受信時刻と、本ステップで紙幣出金コマンドを受信した時刻を比較する。その時刻差があるしきい値以内である場合、紙幣出金コマンドはマルウェアによって送信を妨害されていないと判断する。その後、暗号化ピンパッド222は、状態テーブル262を参照して出金取引が成立している状態であるか否かを確認する。暗号化ピンパッド222は、出金取引が成立していると判断した場合、ステップS9で取得した取引データの出金額と紙幣出金コマンドに含まれている出金額とを比較し、検証する(ステップS42)。
【0100】
この際、暗号化ピンパッド222は、両者の金額が一致していると判断した場合、送られてきた紙幣出金コマンドが取引の裏付けのある紙幣出金コマンドであると判断する。さらに、暗号化ピンパッド222は、ステップS17で保存した取引可否データの受信時刻と、本ステップS42で紙幣出金コマンドを受信した時刻とを比較する。その時刻差があるしきい値以内である場合、紙幣出金コマンドはマルウェアによって送信を妨害されていないと判断する。暗号化ピンパッド222は、取引の裏付けのある紙幣出金コマンドであり、かつ、マルウェアによって出金コマンドの送信を妨害されていないと判断した場合、平文の紙幣出金コマンドを暗号化(暗号化紙幣出金コマンドを生成)し、ATM制御部220に送信する(ステップS43)。
【0101】
ATM制御部220は、暗号化紙幣出金コマンドを受信すると(ステップS44)、それをそのまま紙幣処理部221に送信する(ステップS45)。紙幣処理部221は、ATM制御部220から送られてきた暗号化紙幣出金コマンドを受信すると、暗号化紙幣出金コマンドを復号し、紙幣出金処理を行う(ステップS46)。
【0102】
ATM制御部220は、さらに入出金口シャッター開コマンドを生成し、暗号化ピンパッド222に対して、平文の入出金口シャッター開コマンドを送信する(ステップS47)。暗号化ピンパッド222は、平文の入出金口シャッター開コマンドを受信すると、受信した時刻を時刻データ261としてデータ領域123に書き込む(ステップS48)。その後、暗号化ピンパッド222は、ステップS41で保存した受信時刻と、ステップS48で保存した受信時刻とを比較し、検証する(ステップS49)。暗号化ピンパッド222は、その時刻差があるしきい値以内である場合、入出金口シャッター開コマンドはマルウェアによって送信を妨害されていないと判断する。暗号化ピンパッド222は、マルウェアによるコマンド送信の妨害がないと判断した場合、平文の入出金口シャッター開コマンドを暗号化(暗号化入出金口シャッター開コマンドを生成)し、ATM制御部220に送信する(ステップS50)。
【0103】
ATM制御部220は、暗号化入出金口シャッター開コマンドを受信すると(ステップS51)、暗号化入出金口シャッター開コマンドをそのまま紙幣処理部221に送信する(ステップS52)。紙幣処理部221は、ATM制御部220から送られてきた暗号化入出金口シャッター開コマンドを受信すると、暗号化入出金口シャッター開コマンドを復号し、入出金口のシャッターを開くシャッター開処理を行う(ステップS53)。
【0104】
なお、ステップS43〜ステップS46までの通信、及びステップS50〜ステップS53までの通信において、紙幣処理部221への通信が妨害されたことを検出するために、紙幣処理部221自身がコマンドを受信した時刻の妥当性を検証する機能を有してもよい。そのために、ステップS17、ステップS42、ステップS49で保存した時刻データを、紙幣処理部221が受信するコマンドの中に含めてもよい。
【0105】
図19は、
図18のステップS42で取引の裏付けのある出金コマンドと判断されなかった場合、又はステップS49でマルウェアによるコマンド送信の妨害がないと判断されなかった場合(異常時)の処理の流れを示す。ステップS42、ステップS49のいずれかの処理の後で、暗号化ピンパッド222は、コマンド検証エラー情報を生成し、異常通知・異常処理用データ263としてデータ領域123に格納する。コマンド検証エラー情報には、取引データに含まれる取引番号、監視カメラ18で撮影している利用者の顔画像を確認するための取引時の時刻情報等、セキュリティ監視サーバ211でATM210の異常の詳細状況を判断するための情報が含まれる。その後、暗号化ピンパッド222は、コマンド検証エラー情報をATM制御部220に送信すると共に、セキュリティ監視サーバ211からの応答が規定時間内に暗号化ピンパッド222に届くかどうかのタイムアウト監視のためのタイマーをスタートする(ステップS60)。
【0106】
ATM制御部220は、コマンド検証エラー情報を受信すると(ステップS61)、セキュリティ監視用データ233に格納すると共に、コマンド検証エラー情報に含まれている情報を参照し、ATM異常通知情報を生成し、セキュリティ監視サーバ211に送信する(ステップS62)。ここでは、ATM制御部220は、例えばコマンド検証エラー情報に含まれている時刻情報を参照し、監視カメラ画像データ55から、該当する顔画像データを取得したり、その他の付帯情報を追加したりして、ATM異常通知情報を生成する。
【0107】
セキュリティ監視サーバ211は、ATM異常通知情報を受信すると、異常時対策リスト282を参照し、異常状態に応じた対策を抽出する(ステップS63)。なお、異常時対策リスト282を参照して異常状態に応じた対策を抽出する処理は、セキュリティ監視サーバ211ではなく、セキュリティ監視サーバ211を操作している人手により行われてもよい。そして、セキュリティ監視サーバ211は、異常時対策をATM210に直接送信すべきと判断した場合、異常時対策処理命令をATM制御部220に送信する(ステップS64)。
【0108】
ATM制御部220は、異常時対策処理命令を受信すると(ステップS65)、暗号化ピンパッド222に異常時対策処理命令を転送する(ステップS66)。暗号化ピンパッド222は、異常時対策処理命令を受信すると、異常時対策処理命令に基づいて、その後のコマンドを一切拒絶する、縮退モードで動作するなどの異常時対策処理を実行する(ステップS67)。
【0109】
セキュリティ監視サーバ211は、ステップS63において、対策判断の結果、異常時対策処理命令をATM210に直接送信するのではなく、ATM稼働監視サーバ5にATM210のシャットダウンの指示(ATMシャットダウン指示)を出すべきと判断した場合、ATM稼働監視サーバ5にATMシャットダウン指示を送信する(ステップS68)。ここで、ATM稼働監視サーバ5は、ATM210に対して、シャットダウンさせる機能があると仮定する。ATM稼働監視サーバ5は、ATMシャットダウン指示を受信すると(ステップS69)、ATM制御部220にATMシャットダウン命令を送信する(ステップS70)。そして、ATM制御部220は、ATMシャットダウン命令を受信すると、シャットダウン処理を実行する(ステップS71)。なお、セキュリティ監視サーバ211がATM210に対して直接シャットダウン命令を送信する構成としてもよい。
【0110】
一方、ATM制御部220に存在するマルウェアによってATM異常通知情報のセキュリティ監視サーバ211への送信が妨害された、セキュリティ監視サーバ211が外部からの侵入やその他の理由により正しく機能していない等と想定した場合の処理がステップS72及びステップS73である。この場合、ステップS64〜ステップS67の処理は存在しないことになり、暗号化ピンパッド222は、ステップS60でスタートしたタイマーが規定時間を超えてタイムアウトになると判断する(ステップS72)。暗号化ピンパッド222は、タイムアウトと判断した場合、異常通知・異常処理用データ263の異常時対策リストに従い、例えば、暗号化ピンパッド222に対する全てのコマンドを拒絶する等の異常時対策処理を行う(ステップS73)。
【0111】
図20は、暗号化ピンパッド222が全てのコマンドを拒絶する等の異常時対策処理を行った後に、通常状態に復旧させるための復旧処理の流れを示す。例えば、暗号化ピンパッド222が入出金口シャッター開コマンドを受信したときに、ATM制御部220が異常状態であると判断し、その後の全てのコマンドを拒絶するなどの異常時対策処理を行っている場合、入出金口には紙幣が残留したままになっている。その状態で、誰でも通常状態に復旧させることができると、悪意を持つ内部者が入出金口シャッター開コマンドを暗号化ピンパッド222に送信することで、入出金口に残留している紙幣が盗難されるリスクがある。そこで、暗号化ピンパッド222を通常状態に復旧させるためには、特権を用いた管理が必要となり、
図20では、ワンタイムパスワードを用いて特権モードに入り、暗号化ピンパッド222を復旧させる処理の例を示す。
【0112】
まず、暗号化ピンパッド222は、特権モードに必要なワンタイムパスワードを発行するためのチャレンジコードを生成し、異常状態を示すコード、暗号化ピンパッド222の固有番号などの付帯情報と共にATM制御部220に送信する(ステップS80)。ATM制御部220は、チャレンジコード及び付帯情報を受信すると、それらの情報を表示部19に表示する(ステップS81)。
【0113】
暗号化ピンパッド222を復旧させようとする作業者は、表示部19に表示されたチャレンジコード及び付帯情報をセキュリティ監視サーバ211に通知する(ステップS82)。セキュリティ監視サーバ211側への通知の方法は限定されるものではなく、作業者が保持している携帯電話、スマートフォン等の通信機器22にチャレンジコード及び付帯情報を入力してセキュリティ監視サーバ211にメールを送信してもよいし、セキュリティ監視サーバ211を管理している管理者に作業者が電話してチャレンジコード及び付帯情報を伝えてもよいし、その他の方法により通知してもよい。
【0114】
セキュリティ監視サーバ211、又はその管理者がチャレンジコード及び付帯情報を受信すると(ステップS83)、それを送信した作業者の本人確認を行った上で、暗号化ピンパッド222を復旧させるためのワンタイムパスワードを生成し、携帯電話、スマートフォン等の通信機器22にメール、電話等によって送信する(ステップS84)。
【0115】
作業者は、送られてきたワンタイムパスワードを受信すると(ステップS85)、ワンタイムパスワードを入力機能のあるATM210の表示部19、専用キーボード(図示せず)等を通じて入力し、ATM制御部220は、暗号化ピンパッド222に送信する(ステップS86)。なお、作業者は、ワンタイムパスワードを暗号化ピンパッド222に直接入力する構成としてもよい。暗号化ピンパッド222は、ワンタイムパスワードを受信すると、ワンタイムパスワードを検証し(ステップS87)、ワンタイムパスワードが正しいと判断した場合、正常モードに復旧させる(ステップS88)。
【0116】
その後、ATM制御部220は、入出金口シャッター開コマンドを生成し、暗号化ピンパッド222に送信する(ステップS89)。以降のステップS90〜ステップS96の処理は、
図18のステップS48〜ステップS53と基本的に同様であるので、ここでは説明を省略する。これにより、正当な作業者だけが入出金口に残留している紙幣を取り出すことが可能になる。
【0117】
(1−3)第1の実施の形態の効果
以上のように、本実施の形態の自動取引システム200では、暗号化ピンパッド222が、取引データと取引可否データとに基づいて、取引で成立した出金額と、ATM制御部220から与えられた紙幣出金コマンドに含まれる紙幣金種及びその枚数に基づく出金額とを比較し、これらに矛盾がない場合に紙幣出金コマンドに基づいて出金処理が実行される。
【0118】
したがって、本自動取引システム200によれば、ATM制御部220のATMアプリケーション40がマルウェアに犯されて、ATM制御部220から取引の裏付けのない不正な紙幣出金コマンドが暗号化ピンパッド222に送信されたとしても、当該紙幣出金コマンドに含まれる紙幣金種及びその枚数が取引の裏付けデータと矛盾する内容となるため(つまり紙幣出金コマンドに含まれる紙幣金種及びその枚数に基づく合計金額と、裏付けデータに基づく出金額とが一致しないため)、暗号化ピンパッド222が紙幣処理部221に対して暗号化紙幣出金コマンドを送信しないので、当該紙幣出金コマンドに基づく出金処理が行われない。
【0119】
よって本実施の形態によれば、ATMアプリケーション40、I/O制御部制御ソフトウェア41及び紙幣処理部制御ソフトウェア42などのデバイス制御ソフトウェアがマルウェアにより不正改ざんされたとしても不正処理が行われない、信頼性の高い自動取引装置を実現できる。
【0120】
さらに、本自動取引システム200では、暗号化ピンパッド222が紙幣出金コマンドの受信時刻及び入出金口シャッター開コマンドの受信時刻の差としきい値とを比較し、その時刻差がしきい値を超えた場合、暗号化ピンパッド222が紙幣処理部221に対して暗号化入出金口シャッター開コマンドを送信しない。あるいは、ステップS17で保存した取引可否データの受信時刻と、入出金口シャッター開コマンドの受信時刻の差としきい値とを比較し、その時刻差がしきい値を超えた場合、暗号化ピンパッド222がATM制御部220(紙幣処理部221)に対して暗号化入出金口シャッター開コマンドを送信しない。これにより、ATMアプリケーション40が送信した入出金口シャッター開コマンドをマルウェアが仮に一時的に止め、ATM210の利用者が立ち去った後に、入出金口シャッター開コマンドを暗号化ピンパッド222に送信し、入出金口シャッターを開いて紙幣を盗難しようとしても、それができない、信頼性の高い自動取引装置を実現できる。
【0121】
さらに、本実施の形態によれば、ATM制御部220と独立な暗号化ピンパッド222でATM制御部220の異常を検出し、セキュリティ監視サーバ211にATM制御部220の異常状態を通知する。セキュリティ監視サーバ211は、異常が通知されたATM210に対して異常時対策処理命令を出し、ATM210ではそれに基づいて異常時対策処理が実行される。これにより、早期にATM制御部220の異常を検知して対応でき、不正出金などの被害が大きくなることを防止することができる。
【0122】
さらに、本実施の形態によれば、ATM制御部220に侵入したマルウェアが仮にセキュリティ監視サーバ211にATM制御部220の異常状態を通知するのを妨害したり、セキュリティ監視サーバ211自身が何らかの理由で適切に機能していなかったりする場合でも、ATM制御部220と独立な暗号化ピンパッド222が、異常状態通知に対するセキュリティ監視サーバ211からの応答のタイムアウト監視をしている。これにより、タイムアウトが検知された場合、内部に保持している異常時対策リストに従い、暗号化ピンパッド222に対する全てのコマンドを拒絶する等の異常時対策処理が行われる。その結果、早期にATM制御部220、セキュリティ監視サーバ211等の異常を検知して対応でき、不正出金などの被害が大きくなることを防止することができる。
【0123】
さらに、本実施の形態によれば、例えば入出金口に紙幣が残留した状態で暗号化ピンパッド222が異常対策モードに入り、それを解除して復旧させる場合でも、適切な特権モードの設定により、悪意のある作業者が暗号化ピンパッド222の復旧時に入出金口に残留した紙幣を盗難することを防止することが可能になり、信頼性の高い自動取引装置の復旧作業が行える。
【0124】
(2)第2の実施の形態
第2の実施の形態について、主に
図10、
図11、
図19、
図21を用いて説明する。第2の実施の形態の構成は、第1の実施の形態の構成と基本的に同様であるので、異なる構成(具体的には入金取引)について主に説明する。
図21を用いて、本実施の形態の自動取引システム200における入金取引の流れについて説明する。ここでは、カード媒体21として磁気ストライプカードを用いる場合を例に挙げて説明する。
【0125】
なお、
図21のステップS100〜ステップS116は、
図10のステップS1〜ステップS5に続く処理であり、
図10のステップS6〜ステップS11がステップS100〜ステップS116に置き換わったものである。なお、
図11の従来の入金取引処理でも説明したように、ステップS30〜ステップS33が、
図21のステップS100〜ステップS111に置き換わったものと考えてもよい。
【0126】
さらに、
図21のステップS117〜ステップS123は、
図10のステップS12〜ステップS19に続く処理であり、ステップS20〜ステップS23がステップS117〜ステップS123に置き換わったものである。なお、
図11の従来の入金取引処理でも説明したように、ステップS34及びステップS35がステップS117〜ステップS123に置き換わったものと考えてもよい。このように、従来との相違を明確にするため、
図10の重複する処理については説明を省略している。
【0127】
本実施の形態では、第1の実施の形態と同様、暗号化ピンパッド222と紙幣処理部221との間の暗号通信に必要な暗号鍵の共有、セッション生成などは既に完了しているとする。また、暗号通信でリプレイ攻撃を防止するためのチャレンジデータ、レスポンスデータといった暗号通信に必要な既知のデータのやり取りも省略する。ステップS114で必要とするカード番号は、暗号化ピンパッド222が
図10のステップS5で取得し、平文データ133としてデータ領域123に保存されているものとする。なお、暗号化された形でカード番号を取得された場合、暗号データ134としてデータ領域123に保存されているものとする。
【0128】
ステップS119で必要とする取引データ、取引可否データは、それぞれ暗号化ピンパッド222が
図10のステップS9、ステップS17で取得し、取引関連データ135、取引可否関連データ136に保存されているものとする。さらに、ステップS17では、取引可否データの内容に応じて、状態テーブル262に取引が成立した状態であるか、不成立の状態であるのかの状態データが書き込まれているものとする。加えて、ステップS17では、取引可否データMACを受信した時刻(取引可否データMACの検証を行った時刻であってもよい。)が時刻データ261に格納されているものとする。
【0129】
(自動取引システム200における入金取引処理)
まず、ATM制御部220は、ATM210に投入される紙幣の合計金額を計数するために、(ATMアプリケーション40が紙幣処理部制御ソフトウェア42を介して)紙幣計数コマンドを生成し、コマンド・レスポンスデータ54としてデータ領域33に格納する。ATM制御部220は、格納した紙幣計数コマンドを暗号化ピンパッド222に送信する(ステップS100)。暗号化ピンパッド222は、紙幣計数コマンドを受信すると(ステップS101)、平文データ133に格納し、紙幣計数コマンドを暗号化(暗号化紙幣計数コマンドを生成)し、暗号データ134としてデータ領域123に格納する。その後、暗号化ピンパッド222は、暗号化紙幣計数コマンドをATM制御部220に送信する(ステップS102)。
【0130】
ATM制御部220は、暗号化紙幣計数コマンドを受信すると(ステップS103)、暗号化紙幣計数コマンドをそのまま紙幣処理部221に送信する(ステップS104)。紙幣処理部221は、ATM制御部220から送られてきた暗号化紙幣計数コマンドを受信すると、暗号化紙幣計数コマンドを復号し、紙幣計数処理を行う(ステップS105)。なお、計数された紙幣は、一時収納庫に格納される。紙幣処理部221は、入金計数結果を暗号化(暗号化入金計数結果を生成)し、ATM制御部220に送信する(ステップS106)。ATM制御部220は、暗号化入金計数結果を受信すると(ステップS107)、暗号化入金計数結果をそのまま暗号化ピンパッド222に送信する(ステップS108)。
【0131】
暗号化ピンパッド222は、暗号化入金計数結果を受信すると、暗号化入金計数結果を復号し、平文データ133としてデータ領域123に格納する(ステップS109)。格納された入金計数結果は、ステップS114で用いられる。そして、暗号化ピンパッド222は、平文入金計数結果をATM制御部220に送信すると共に、送信時刻を時刻データ261としてデータ領域123に格納する(ステップS110)。
【0132】
その後、ATM制御部220は、平文入金計数結果を受信し(ステップS111)、
図10のステップS3で得られたカード番号、受信した入金計数結果を用いて取引データを生成し、取引関連データ51としてデータ領域33に格納する。その後、ATM制御部220は、取引データに取引データMACを付与するために、取引データを暗号化ピンパッド222に送信する(ステップS112)。
【0133】
暗号化ピンパッド222は、取引データを受信すると(ステップS113)、
図10のステップS5で格納されたカード番号、及びステップS109で格納した入金計数結果と取引データの該当箇所とがそれぞれ一致しているかを比較し、検証する(ステップS114)。そして、暗号化ピンパッド222は、それらの比較が一致していると判断した場合、取引データに対する取引データMACを生成し、ATM制御部220に送信する(ステップS115)。ATM制御部220は、送られてきた取引データMACを受信する(ステップS116)。
【0134】
その後、
図10のステップS12〜ステップS19までの処理が実行される。ただし、上述したようにステップS17では、取引可否データの内容に応じて、状態テーブル262に取引が成立した状態であるか、不成立の状態であるのかの状態データが書き込まれているものとする。さらにステップS17では、取引可否データMACを受信した時刻(取引可否データMACの検証を行った時刻であってもよい。)が時刻データ261に格納されているものとする。
【0135】
ATM制御部220は、ステップS19で受信した取引可否データMAC検証結果が正しく、かつ、取引可否データが取引成立を示すものである場合、取引が成立したと判断して紙幣収納コマンドを生成し、暗号化ピンパッド222に送信する(ステップS117)。暗号化ピンパッド222は、紙幣収納コマンドを受信すると(ステップS118)、状態テーブル262を参照し、当該入金取引が成立したことを確認し、入金取引成立後に許容されるコマンドリスト、コマンド順序、ステップS110で格納した時刻データ261等と比較し、それらと矛盾がないことを確認する(ステップS119)。
【0136】
具体的には、暗号化ピンパッド222は、勘定系ホストコンピュータ3との間で入金取引が成立している場合、一時収納庫に格納された紙幣を収納庫に移動させるための、紙幣収納コマンドを実行させないといけない。一方、勘定系ホストコンピュータ3との間で入金取引が何らかの理由で成立しない、又はATM210の利用者が入金取引をキャンセルした場合、一時収納庫に格納されている紙幣を入出金口に返却する紙幣返却コマンドと入出金口のシャッターを開く入出金口シャッター開コマンドとが暗号化ピンパッド222に送られてくることになる。
【0137】
しかしながら、マルウェアがATM制御部220に侵入した場合、入金取引が成立したにもかかわらず、紙幣返却コマンドと入出金口シャッター開コマンドとが暗号化ピンパッド222に送られてくることがあり得る。このような場合、入金取引成立後に許容されるコマンドリスト、コマンド順序と矛盾が生じることになる。暗号化ピンパッド222は、矛盾がないと判断した場合、受信した紙幣収納コマンドを暗号化(暗号化紙幣収納コマンドを生成)し、ATM制御部220に送信する(ステップS120)。
【0138】
ATM制御部220は、暗号化紙幣収納コマンドを受信すると(ステップS121)、暗号化紙幣収納コマンドをそのまま紙幣処理部221に送信する(ステップS122)。紙幣処理部221は、ATM制御部220から送られてきた暗号化紙幣収納コマンドを受信すると、暗号化紙幣収納コマンドを復号し、一時収納庫に格納されている紙幣を収納庫に移動させる紙幣収納処理を行う(ステップS123)。なお、ATM210に一時収納庫が無く既に紙幣が収納庫に入っている場合は、ステップS117〜ステップS122の処理は省略されることになる。
【0139】
上記ステップS119において、仮にATM制御部220内部にマルウェアが存在し、紙幣収納コマンドの代わりに
図11のステップS36〜ステップS39に示すように、紙幣返却コマンド、入出金口シャッター開コマンド等が暗号化ピンパッド222に送信されたとする。この場合、暗号化ピンパッド222は、状態テーブル262を参照し、入金取引成立後に許容されるコマンドリスト、コマンド順序と比較すると矛盾が生じると判断し、マルウェアから不正なコマンドが送信されてきたことがわかる。
【0140】
その結果、暗号化ピンパッド222がステップS120を実行する代わりに、第1の実施の形態と同様に、
図19のステップS60〜ステップS73が実行されることになる。そして、暗号化ピンパッド222を異常モードから正常モードに復旧させる際に、一時収納庫に残留している紙幣を作業者が不正に取得することがないように、
図20のステップS80〜ステップS96が実行されることになる。
【0141】
別の例では、ステップS111で平文入金計数結果が受信されるのをATM制御部220内のマルウェアが妨害し、それ以降の取引処理をブロックしてATM210の利用者がATM210の前から立ち去り、悪意を持つ第三者がマルウェアを操作し、紙幣返却コマンド及び入出金口シャッター開コマンドを暗号化ピンパッド222に送信したとする。この場合、入金取引が成立していないので、ATM210の利用者が入金紙幣計数後に取引をキャンセルしたために、紙幣返却コマンド及び入出金口シャッター開コマンドが暗号化ピンパッド22に送られてきて正常取引のように見える。しかしながら、ステップS110で平文入金計数結果を送信した時刻と紙幣返却コマンドを受信した時刻とを比較し、その時刻差がしきい値を超えているため、マルウェアによる不正コマンドであると判定できる。この際に、上記時刻差だけでなく、ATM210の利用者が入れ替わったか等を確認するための利用者の顔認識結果を併用してもよい。
【0142】
以上のように、本実施の形態の自動取引システム200では、暗号化ピンパッド222が紙幣処理部221で計数された紙幣入金額と取引データに含まれる入金額とを比較し、これらが一致したと判断した場合、取引データに対する取引データMACを計算してATM制御部220に送信する。
【0143】
したがって、本自動取引システム200によれば、ATM制御部220のATMアプリケーション40がマルウェアに犯されて、ATM制御部220から紙幣処理部221で計数された紙幣入金額の裏付けのない不正な取引データが暗号化ピンパッド222に送信されたとしても、当該取引データに含まれる入金額と矛盾する内容となるため(つまり紙幣入金計数結果に含まれる紙幣金種及びその枚数に基づく合計金額と、取引データに含まれる入金額とが一致しないため)、暗号化ピンパッド222は、ATM制御部220に対して、取引データに対する取引データMACを送信しない。その結果、取引データを勘定系ホストコンピュータ3に送信できなくなり、不正なコマンドに基づく入金取引処理が行われない。
【0144】
よって、本実施の形態によれば、ATMアプリケーション40、I/O制御部制御ソフトウェア41、紙幣処理部制御ソフトウェア42などのデバイス制御ソフトウェアがマルウェアにより不正改ざんされたとしても、不正な入金取引処理が行われない、信頼性の高い自動取引装置を実現できる。
【0145】
さらに、本実施の形態の自動取引システム200では、勘定系ホストコンピュータ3との間で入金取引が成立したかどうかを暗号化ピンパッド222が確認した上で、入金取引成立後に許容されるコマンドリスト、コマンド順序等と比較し、それらと矛盾がないことを確認した上で、暗号化紙幣収納コマンドを送信する、あるいは、紙幣返却コマンドと入出金口シャッター開コマンドとを送信する。これにより、入金取引が成立してATM210の利用者が立ち去った後に、紙幣返却コマンド、入出金口シャッター開コマンド等を暗号化ピンパッド222に送信し、入出金口シャッターを開いて紙幣を盗難しようとしてもそれができない、信頼性の高い自動取引装置を実現できる。
【0146】
さらに、本実施の形態によれば、ATM制御部220と独立な暗号化ピンパッド222でATM制御部220の異常を検出し、セキュリティ監視サーバ211にATM制御部220の異常状態を通知する。セキュリティ監視サーバ211は、異常が通知されたATM210に対して異常時対策処理命令を出し、ATM210ではそれに基づいて異常時対策処理を実行する。これにより、早期にATM制御部220の異常を検知して対応でき、入金時の不正による被害が大きくなることを防止することができる。
【0147】
さらに、本実施の形態によれば、ATM制御部220に侵入したマルウェアが仮にセキュリティ監視サーバ211にATM制御部220の異常状態を通知するのを妨害したり、セキュリティ監視サーバ211自身が何らかの理由で適切に機能していなかったりする場合でも、ATM制御部220と独立な暗号化ピンパッド222は、異常状態通知に対するセキュリティ監視サーバ211からの応答のタイムアウト監視をしている。これにより、暗号化ピンパッド222は、タイムアウトを検知した場合、内部に保持している異常時対策リストに従い、暗号化ピンパッド222に対する全てのコマンドを拒絶する等の異常時対策処理を行う。その結果、早期にATM制御部220やセキュリティ監視サーバ211の異常を検知して対応でき、入金時の不正による被害が大きくなることを防止することができる。
【0148】
さらに、本実施の形態によれば、入出金口に紙幣が残留した状態で暗号化ピンパッド222が異常対策モードに入り、それを解除して復旧させる場合でも、適切な特権モードの設定により、悪意のある作業者が暗号化ピンパッド222の復旧時に入出金口に残留した紙幣を盗難することを防止することが可能になり、信頼性の高い自動取引装置の復旧作業が行える。
【0149】
(3)第3の実施の形態
第3の実施の形態について、主に
図10、
図16、
図22〜
図24を用いて説明する。第3の実施の形態による構成は、第1の実施の形態の構成と基本的に同様であるので、異なる構成(具体的には、暗号化ピンパッド222での所定の処理をカードリーダ290が行う構成)について主に説明する。
【0150】
図22は、カードリーダ290の機能構成を示す。カードリーダ290は、カードリーダ制御部300、カード搬送・読取部91を備えて構成される。なお、カードリーダ290が備えるカードリーダ13と同様の機能については、その説明を省略する。
【0151】
カードリーダ制御部300は、カード搬送・読取部91を制御すると共に、ATM制御部220との間でコマンド、レスポンス等の授受を行う機能を有するハードウェアである。
【0152】
図23は、カードリーダ制御部300の概略構成を示す。ここでは、カードリーダ制御部90と異なる主な構成について説明する。暗号処理ファームウェア320は、取引データに対する取引データMACを計算したり、勘定系ホストコンピュータ3から送信されてくる取引可否データに対する電子署名又はメッセージ認証コードを検証したりする機能を担う。さらに、暗号処理ファームウェア320は、紙幣処理部221等の他のデバイスとの暗号通信に必要な暗号化、復号化の処理を行う。暗号処理用データ321は、暗号処理ファームウェア320が暗号処理を行うために使用するデータである。取引関連データ322〜特権処理用データ328については、
図16に示す取引関連データ135〜特権処理用データ264と同等なデータであるのでここでは説明を省略する。
【0153】
(自動取引システム200における出金取引処理)
図24を参照して、本実施の形態の自動取引システム200における出金取引の流れについて説明する。ここではカード媒体21として磁気ストライプカードを用いる場合を例に挙げて説明する。なお、
図24のステップS130〜ステップS155は、
図10のステップS1〜ステップS7に続く処理である。ここでは、カードリーダ290と紙幣処理部221との間、カードリーダ290と勘定系ホストコンピュータ3との暗号通信に必要な暗号鍵の共有、セッション生成などは既に完了しているとする。また、暗号通信でリプレイ攻撃を防止するためのチャレンジデータ、レスポンスデータといった暗号通信に必要な既知のデータのやり取りも省略する。
【0154】
まず、ATM制御部220は、ステップS3で受信したカード番号とステップS7で受信した出金額とを用いて取引データを生成し、取引データに対する取引データMACを付与するため、取引データをカードリーダ290に送信する(ステップS130)。
【0155】
カードリーダ290は、送られてきた取引データを受信すると(ステップS131)、取引関連データ322としてデータ領域313に格納する。その後、カードリーダ290は、取引データに対する取引データMACを計算(生成)し、その結果を取引関連データ322としてデータ領域313に格納し、取引データMACをATM制御部220に送信する(ステップS132)。
【0156】
ATM制御部220は、取引データMACを受信すると、取引関連データ51としてデータ領域33に格納し(ステップS133)、既に格納されている取引データと共に勘定系ホストコンピュータ3に送信する(ステップS134)。勘定系ホストコンピュータ3は、ステップS13及びステップS14と同等の処理を行い(ステップS135及びステップS136)、取引可否データと取引可否データに対応する取引可否データMACとをATM制御部220に返送する(ステップS137)。
【0157】
ATM制御部220は、ホストコンピュータ3から送られてきた取引可否データと対応する取引可否データMACとを受信すると、取引可否関連データ52としてデータ領域33に格納すると共に、カードリーダ290に対してそれらのデータを送信する(ステップS138)。
【0158】
カードリーダ290は、ATM制御部220から送られてきた取引可否データと対応する取引可否データMACとを受信すると、取引可否関連データ323としてデータ領域313に格納する。そして、カードリーダ290は、取引可否データに対する取引可否データMACを計算し、取引可否データの正当性を検証し、その結果を取引可否関連データ323(取引可否データMAC検証結果)としてデータ領域313に格納する。さらに、カードリーダ290は、取引可否データの内容に応じて、取引が成立した状態であるか、不成立の状態であるのかの状態データを状態テーブル326に書き込む。さらに取引可否データを受信した時刻を時刻データ325に書き込む。(ステップS139)。カードリーダ290は、取引可否関連データ323から取引可否データMAC検証結果を読み出し、ATM制御部220に送信する(ステップS140)。
【0159】
ATM制御部220は、カードリーダ290から送られてきた取引可否データMAC検証結果を受信すると(ステップS141)、取引検証結果データ53としてデータ領域33に格納し、その検証結果が正しく、かつ、取引可否データが取引成立を示すものである場合、取引が成立したと判断して平文の紙幣出金コマンドを生成し、カードリーダ290に送信する(ステップS142)。ATM制御部220は、取引成立でないと判断した場合、ATM210の利用者に対して取引が成立しなかった旨のメッセージを表示部19に表示する。
【0160】
カードリーダ290は、平文の紙幣出金コマンドを受信すると、受信した時刻を時刻データ325に書き込む(ステップS143)。その後、状態テーブル326を参照して出金取引が成立している状態であるか否かを確認する。カードリーダ290は、取引が成立していると判定した場合、ステップS131で取得した取引データの出金額と紙幣出金コマンドに含まれている出金額とを比較する(ステップS144)。カードリーダ290は、両者の金額が一致していると判断した場合、カードリーダ290に送られてきた紙幣出金コマンドは、取引の裏付けのある紙幣出金コマンドであると判断する。さらに、本ステップS144では、ステップS139で保存した取引可否データの受信時刻と、ステップS143で紙幣出金コマンドを受信した時刻とを比較する。その時刻差があるしきい値以内である場合、紙幣出金コマンドはマルウェアによって送信を妨害されていないと判断する。カードリーダ290は、取引の裏付けのある紙幣出金コマンドであり、かつ、マルウェアによって出金コマンドの送信を妨害されていないと判断した場合、平文の紙幣出金コマンドを暗号化(暗号化紙幣出金コマンドを生成)し、ATM制御部220に送信する(ステップS145)。
【0161】
ATM制御部220は、暗号化紙幣出金コマンドを受信すると(ステップS146)、暗号化紙幣出金コマンドをそのまま紙幣処理部221に送信する(ステップS147)。紙幣処理部221は、ATM制御部220から送られてきた暗号化紙幣出金コマンドを受信すると、暗号化紙幣出金コマンドを復号し、紙幣出金処理を行う(ステップS148)。
【0162】
ATM制御部220は、さらに入出金口シャッター開コマンドを生成し、カードリーダ290に対して平文の入出金口シャッター開コマンドを送信する(ステップS149)。カードリーダ290は、平文の入出金口シャッター開コマンドを受信すると、受信した時刻を時刻データ325としてデータ領域313に書き込む(ステップS150)。その後、カードリーダ290は、ステップS143で保存した受信時刻と、ステップS150で保存した受信時刻とを比較する(ステップS151)。カードリーダ290は、その時刻差があるしきい値以内であると判定した場合、入出金口シャッター開コマンドはマルウェアによって送信を妨害されていないと判断する。カードリーダ290は、マルウェアによるコマンド送信の妨害がないと判断した場合、平文の入出金口シャッター開コマンドを暗号化(暗号化入出金口シャッター開コマンドを生成)し、ATM制御部220に送信する(ステップS152)。
【0163】
ATM制御部220は、暗号化入出金口シャッター開コマンドを受信すると(ステップS153)、暗号化入出金口シャッター開コマンドをそのまま紙幣処理部221に送信する(ステップS154)。紙幣処理部221は、ATM制御部220から送られてきた暗号化入出金口シャッター開コマンドを受信すると、暗号化入出金口シャッター開コマンドを復号し、入出金口のシャッターを開く(ステップS155)。
【0164】
ステップS144で取引の裏付けのある紙幣出金コマンドであると判断されなかった場合、又はステップS151でマルウェアによるコマンド送信の妨害がないと判断されなかった場合は、第1の実施の形態と同様なので、ここでは説明を省略する。
【0165】
以上のように、本実施の形態の自動取引システム200では、カードリーダ290が、取引データと取引可否データとに基づいて、取引で成立した出金額と、ATM制御部220から与えられた紙幣出金コマンドに含まれる紙幣金種及びその枚数に基づく出金額とを比較し、これらに矛盾がない場合に紙幣出金コマンドに基づいて出金処理が実行される。
【0166】
したがって、本自動取引システム200によれば、ATM制御部220のATMアプリケーション40がマルウェアに犯されて、ATM制御部220から取引の裏付けのない不正な紙幣出金コマンドがカードリーダ290に送信されたとしても、当該紙幣出金コマンドに含まれる紙幣金種及びその枚数が取引の裏付けデータと矛盾する内容となるため(つまり紙幣出金コマンドに含まれる紙幣金種及びその枚数に基づく合計金額と、裏付けデータに基づく出金額とが一致しないため)、カードリーダ290がATM制御部220(紙幣処理部221)に対して暗号化紙幣出金コマンドを送信しないので、当該紙幣出金コマンドに基づく出金処理が行われない。
【0167】
よって本実施の形態によれば、ATMアプリケーション40、I/O制御部制御ソフトウェア41及び紙幣処理部制御ソフトウェア42などのデバイス制御ソフトウェアがマルウェアにより不正改ざんされたとしても不正処理が行われない、信頼性の高い自動取引装置を実現できる。
【0168】
さらに、本自動取引システム200では、カードリーダ290が紙幣出金コマンドの受信時刻及び入出金口シャッター開コマンドの受信時刻の差としきい値とを比較し、その時刻差がしきい値を超えた場合、カードリーダ290がATM制御部220(紙幣処理部221)に対して暗号化入出金口シャッター開コマンドを送信しない。あるいは、ステップS139で保存した取引可否データの受信時刻、及び入出金口シャッター開コマンドの受信時刻の時刻差としきい値とを比較し、その時刻差がしきい値を超えた場合、カードリーダ290がATM制御部220(紙幣処理部221)に対して暗号化入出金口シャッター開コマンドを送信しない。これにより、ATMアプリケーション40が送信した入出金口シャッター開コマンドをマルウェアが仮に一時的に止め、ATM210の利用者が立ち去った後に、入出金口シャッター開コマンドをカードリーダ290に送信し、入出金口シャッターを開いて紙幣を盗難しようとしても、それができない、信頼性の高い自動取引装置を実現できる。
【0169】
さらに、本実施の形態によれば、ATM制御部220と独立なカードリーダ290でATM制御部220の異常を検出し、セキュリティ監視サーバ211にATM制御部220の異常状態を通知する。セキュリティ監視サーバ211は、異常が通知されたATM210に対して異常時対策処理命令を出し、ATM210ではそれに基づいて異常時対策処理が実行される。これにより、早期にATM制御部220の異常を検知して対応でき、不正出金などの被害が大きくなることを防止することができる。
【0170】
さらに、本実施の形態によれば、ATM制御部220に侵入したマルウェアが仮にセキュリティ監視サーバ211にATM制御部220の異常状態を通知するのを妨害したり、セキュリティ監視サーバ211自身が何らかの理由で適切に機能していなかったりする場合でも、ATM制御部220と独立なカードリーダ290が、異常状態通知に対するセキュリティ監視サーバ211からの応答のタイムアウト監視をしている。これにより、タイムアウトが検知された場合、内部に保持している異常時対策リストに従い、カードリーダ290に対する全てのコマンドを拒絶する等の異常時対策処理が行われる。その結果、早期にATM制御部220、セキュリティ監視サーバ211等の異常を検知して対応でき、不正出金などの被害が大きくなることを防止することができる。
【0171】
さらに、本実施の形態によれば、入出金口に紙幣が残留した状態でカードリーダ290が異常対策モードに入り、それを解除して復旧させる場合でも、適切な特権モードの設定により、悪意のある作業者がカードリーダ290の復旧時に入出金口に残留した紙幣を盗難することを防止することが可能になり、信頼性の高い自動取引装置の復旧作業が行える。
【0172】
(4)第4の実施の形態
第4の実施の形態について、主に
図10、
図11、
図19〜
図25を用いて説明する。第4の実施の形態による構成は、第3の実施の形態の構成と基本的に同様であるので、異なる構成(具体的には、入金取引処理における暗号化ピンパッド222での所定の処理をカードリーダ290が行う構成)について主に説明する。
【0173】
(自動取引システム200における入金取引処理)
図25を参照して、本実施の形態の自動取引システム200における入金取引の流れについて説明する。ここではカード媒体21として磁気ストライプカードを用いる場合を例に挙げて説明する。
【0174】
なお、
図25のステップS160〜ステップS176は、
図10のステップS1〜S4に続く処理であり、
図10のステップS6〜ステップS11がステップS160〜ステップS176に置き換わったものである。なお、
図21の第2の実施の形態の入金取引の流れでも説明したように、ステップS100〜ステップS116が、
図25のステップS160〜ステップS176に置き換わったものと考えてもよい。
【0175】
ここでは、上述の実施の形態で説明したような暗号鍵の共有等は、本実施の形態でも成り立っているとする。また、ステップS174で必要とするカード番号は、
図10のステップS1で取得され、
図23のカード媒体用データ113としてデータ領域313に保存されているものとする。
【0176】
ステップS179で必要とする取引データ及び取引可否データについては、それぞれカードリーダ290が
図24のステップS131、ステップS139で取得し、取引関連データ322、取引可否関連データ323としてデータ領域313に保存しているものとする。さらに、ステップS139では、取引可否データの内容に応じて、状態テーブル326に取引が成立した状態であるか、不成立の状態であるのかの状態データが書き込まれているものとする。
【0177】
まず、ATM制御部220は、ATM210に投入される紙幣の合計金額を計数するために、(ATMアプリケーション40が紙幣処理部制御ソフトウェア42を介して)紙幣計数コマンドを生成し、コマンド・レスポンスデータ54としてデータ領域33に格納する。ATM制御部220は、格納した紙幣計数コマンドをカードリーダ290に送信する(ステップS160)。カードリーダ290は、紙幣計数コマンドを受信すると(ステップS161)、紙幣計数コマンドを暗号化(暗号化紙幣計数コマンドを生成)し、暗号処理用データ321としてデータ領域313に格納する。その後、カードリーダ290は、暗号化紙幣計数コマンドをATM制御部220に送信する(ステップS162)。
【0178】
ATM制御部220は、暗号化紙幣計数コマンドを受信すると(ステップS163)、暗号化紙幣計数コマンドをそのまま紙幣処理部221に送信する(ステップS164)。紙幣処理部221は、ATM制御部220から送られてきた暗号化紙幣計数コマンドを受信すると、暗号化紙幣計数コマンドを復号し、紙幣計数処理を行う(ステップS165)。なお、計数された紙幣は、一時収納庫に格納される。紙幣処理部221は、入金計数結果を暗号化(暗号化入金計数結果を生成)し、ATM制御部220に送信する(ステップS166)。ATM制御部220は、暗号化入金計数結果を受信すると(ステップS167)、暗号化入金計数結果をそのままカードリーダ290に送信する(ステップS168)。
【0179】
カードリーダ290は、暗号化入金計数結果を受信すると、暗号化入金計数結果を復号し、暗号処理用データ321としてデータ領域313に格納する(ステップS169)。この格納された平文入金計数結果は、ステップS174で用いられる。そして、カードリーダ290は、平文入金計数結果をATM制御部220に送信する(ステップS170)。
【0180】
その後、ATM制御部220は、平文入金計数結果を受信し(ステップS171)、
図10のステップS3で得られたカード番号、受信した平文入金計数結果を用いて取引データを生成し、取引関連データ51としてデータ領域33に格納する。その後、ATM制御部220は、取引データに取引データMACを付与するために、取引データをカードリーダ290に送信する(ステップS172)。
【0181】
カードリーダ290は、取引データを受信すると(ステップS173)、
図10のステップS1で格納したカード番号、及びステップS169で格納した入金計数結果と取引データの該当箇所とがそれぞれ一致しているか比較し、検証する(ステップS174)。そして、カードリーダ290は、それらの比較が一致していると判断した場合、取引データに対する取引データMACを生成し、ATM制御部220に送信する(ステップS175)。ATM制御部220は、送られてきた取引データMACを受信する(ステップS176)。
【0182】
その後、
図24のステップS134〜ステップS141までが実行される。ただし、上述したように、ステップS139では、取引可否データの内容に応じて、状態テーブル326に取引が成立した状態であるか、不成立の状態であるのかの状態データが書き込まれているものとする。
【0183】
ATM制御部220は、ステップS141で受信した取引可否データMAC検証結果が正しく、かつ、取引可否データが取引成立を示すものである場合、取引が成立したと判断して紙幣収納コマンドを生成し、カードリーダ290に送信する(ステップS177)。カードリーダ290は、紙幣収納コマンドを受信すると(ステップS178)、状態テーブル326を参照し、当該入金取引が成立したことを確認し、入金取引成立後に許容されるコマンドリスト、コマンド順序等と比較し、それらと矛盾がないことを確認する(ステップS179)。カードリーダ290は、矛盾がないと判断した場合、受信した紙幣収納コマンドを暗号化(暗号化紙幣収納コマンドを生成)し、ATM制御部220に送信する(ステップS180)。
【0184】
ATM制御部220は、暗号化紙幣収納コマンドを受信すると(ステップS181)、暗号化紙幣収納コマンドをそのまま紙幣処理部221に送信する(ステップS182)。紙幣処理部221は、ATM制御部220から送られてきた暗号化紙幣収納コマンドを受信すると、暗号化紙幣収納コマンドを復号し、一時収納庫に格納されている紙幣を収納庫に移動させる紙幣収納処理を行う(ステップS183)。なお、ATM210に一時収納庫が無い場合は、ステップS177〜ステップS182の処理は省略されることになる。
【0185】
上記ステップS179において、仮にATM制御部220内部にマルウェアが存在し、紙幣収納コマンドの代わりに
図11のステップS36〜ステップS39に示すように、紙幣返却コマンド、入出金口シャッター開コマンド等がカードリーダ290に送信されたとする。この場合、カードリーダ290は、状態テーブル262を参照し、入金取引成立後に許容されるコマンドリスト、コマンド順序と比較すると矛盾が生じると判断し、マルウェアから不正なコマンドが送信されてきたことがわかる。
【0186】
その結果、カードリーダ290がステップS180を実行する代わりに、第1の実施の形態と同様に、
図19のステップS60〜ステップS73と同様の処理が実行されることになる。そして、カードリーダ290を異常モードから正常モードに復旧させる際に、一時収納庫に残留している紙幣を作業者が不正に取得することがないように、
図20のステップS80〜ステップS96が実行されることになる。
【0187】
以上のように、本実施の形態の自動取引システム200では、カードリーダ290が紙幣処理部221で計数された紙幣入金額と取引データに含まれる入金額とを比較し、これらが一致したと判断した場合、取引データに対する取引データMACを計算してATM制御部220に送信する。
【0188】
したがって、本自動取引システム200によれば、ATM制御部220のATMアプリケーション40がマルウェアに犯されて、ATM制御部220から紙幣処理部221で計数された紙幣入金額の裏付けのない不正な取引データがカードリーダ290に送信されたとしても、当該取引データに含まれる入金額と矛盾する内容となるため(つまり紙幣入金計数結果に含まれる紙幣金種及びその枚数に基づく合計金額と、取引データに含まれる入金額とが一致しないため)、カードリーダ290は、ATM制御部220に対して、取引データに対する取引データMACを送信しない。その結果、取引データを勘定系ホストコンピュータ3に送信できなくなり、不正なコマンドに基づく入金取引処理が行われない。
【0189】
よって、本実施の形態によれば、ATMアプリケーション40、I/O制御部制御ソフトウェア41、紙幣処理部制御ソフトウェア42などのデバイス制御ソフトウェアがマルウェアにより不正改ざんされたとしても、不正な入金取引処理が行われない、信頼性の高い自動取引装置を実現できる。
【0190】
さらに、本実施の形態の自動取引システム200では、勘定系ホストコンピュータ3との間で入金取引が成立したかどうかをカードリーダ290が確認した上で、入金取引成立後に許容されるコマンドリスト、コマンド順序等と比較し、それらと矛盾がないことを確認した上で、暗号化コマンドを送信する。これにより、入金取引が成立してATM210の利用者が立ち去った後に、紙幣返却コマンド、入出金口シャッター開コマンド等をカードリーダ290に送信し、入出金口シャッターを開いて紙幣を盗難しようとしてもそれができない、信頼性の高い自動取引装置を実現できる。
【0191】
さらに、本実施の形態によれば、ATM制御部220と独立なカードリーダ290でATM制御部220の異常を検出し、セキュリティ監視サーバ211にATM制御部220の異常状態を通知する。セキュリティ監視サーバ211は、異常が通知されたATM210に対して異常時対策処理命令を出し、ATM210ではそれに基づいて異常時対策処理を実行する。これにより、早期にATM制御部220の異常を検知して対応でき、入金時の不正による被害が大きくなることを防止することができる。
【0192】
さらに、本実施の形態によれば、ATM制御部220に侵入したマルウェアが仮にセキュリティ監視サーバ211にATM制御部220の異常状態を通知するのを妨害したり、セキュリティ監視サーバ211自身が何らかの理由で適切に機能していなかったりする場合でも、ATM制御部220と独立なカードリーダ290は、異常状態通知に対するセキュリティ監視サーバ211からの応答のタイムアウト監視をしている。これにより、カードリーダ290は、タイムアウトを検知した場合、内部に保持している異常時対策リストに従い、カードリーダ290に対する全てのコマンドを拒絶する等の異常時対策処理を行う。その結果、早期にATM制御部220やセキュリティ監視サーバ211の異常を検知して対応でき、入金時の不正による被害が大きくなることを防止することができる。
【0193】
さらに、本実施の形態によれば、入出金口に紙幣が残留した状態でカードリーダ290が異常対策モードに入り、それを解除して復旧させる場合でも、適切な特権モードの設定により、悪意のある作業者がカードリーダ290の復旧時に入出金口に残留した紙幣を盗難することを防止することが可能になり、信頼性の高い自動取引装置の復旧作業が行える。
【0194】
(5)第5の実施の形態
第5の実施の形態について、主に
図10、
図23、
図24、
図26、
図27を用いて説明する。第5の実施の形態による構成は、第3の実施の形態の構成と基本的に同様であるので、異なる構成(具体的には、出金取引処理におけるカードリーダ290での所定の処理をカード媒体21の一例であるICカード330が行う構成)について主に説明する。
【0195】
図26は、ICカード330の概略構成を示す。
図26に示すように、ICカード330は、ICカード330全体の動作制御を司るCPU340、メモリ341などの情報処理資源を備えて構成される。メモリ341の記憶領域は、プログラム領域342及びデータ領域343に区分されて管理される。プログラム領域342には、アプリケーション350、通信制御ファームウェア351、暗号処理ファームウェア352等が格納される。データ領域343には、取引データ353、取引データMAC354、取引可否データ355、取引可否データMAC356、取引可否データMAC検証結果357、取引検証結果358等が格納される。
【0196】
アプリケーション350は、ICカード330の全体制御を行うソフトウェアである。通信制御ファームウェア351は、カードリーダ290との間でのデータ通信を制御する機能を有するソフトウェアである。暗号処理ファームウェア352は、取引データMAC354を生成したり、勘定系ホストコンピュータ3から送信されてくる取引可否データMAC356を検証したりする暗号処理機能を有するソフトウェアである。
【0197】
取引データ353は、ATM210から送信されてきた出金取引又は入金取引のための取引データである。
【0198】
取引データMAC354は、取引データ353から生成される、メッセージ認証コード等である。取引データMAC354は、勘定系ホストコンピュータ3で検証される。取引可否データ355は、勘定系ホストコンピュータ3が銀行口座残高、与信情報などを参照し、その取引を成立させてよいか否かを判断した判断結果を示すデータである。
【0199】
取引可否データMAC356は、取引可否データ355に対するメッセージ認証コード等であり、勘定系ホストコンピュータ3で生成される。取引可否データMAC検証結果357は、
図23の取引可否関連データ323に格納されるデータと同様である。取引検証結果358は、ICカード330がICカード取引の仕様に基づいて、紙幣出金可否を判断するためのデータである。例えば、取引検証結果358は、取引可否データMAC356をICカード330が検証した結果、ATM制御部220に紙幣出金コマンド送信を許可するために使われるデータである。また、取引検証結果358は、ICカード330が取引データMAC354を検証してATM210での取引を承認したことを勘定系ホストコンピュータ3が検証するためにも使用される。取引検証結果358として、取引を承認した場合に「取引承認データ」が生成され、取引拒否の場合に「取引拒否データ」が生成される。
【0200】
このように、ICカード330には、当該ICカード330の保有者の銀行口座番号、クレジットカード番号、本人確認を行うための情報などが記録されると共に、勘定系ホストコンピュータ3との間でATM210との取引に必要なメッセージ認証コード等を生成したり検証したりする機能が搭載される。
【0201】
(自動取引システム200における出金取引処理)
図27を参照して、本実施の形態の自動取引システム200における出金取引の流れについて説明する。ここではカード媒体21としてICカード330を用いる場合を例に挙げて説明する。なお、
図27のステップS190〜ステップS219は、
図10のステップS1〜ステップS7に続く処理である。ここでは、カードリーダ290と紙幣処理部221との間、ICカード330と勘定系ホストコンピュータ3との暗号通信に必要な暗号鍵の共有、セッション生成等は既に完了しているとする。また、暗号通信でリプレイ攻撃を防止するためのチャレンジデータ、レスポンスデータといった、暗号通信に必要な既知のデータのやり取りも省略する。
【0202】
まず、ATM制御部220は、ステップS3で受信したカード番号とステップS7で受信した出金額とを用いて取引データを生成し、その取引データに対する取引データMACを付与するため、取引データをカードリーダ290に送信する(ステップS190)。カードリーダ290は、取引データ受信すると(ステップS191)、取引データに含まれている出金額を取引関連データ322としてデータ領域313に保存すると共に、取引データをICカード330に送信する(ステップS192)。
【0203】
ICカード330は、取引データを受信すると(ステップS193)、内部に保持している暗号鍵を用いて取引データに対する取引データMACを生成し、取引データMACとしてカードリーダ290経由でATM制御部220に送信する(ステップS194)。
【0204】
ATM制御部220は、取引データMACを受信すると(ステップS195)、取引関連データ51としてデータ領域33に格納し、既に格納されている取引データと共に勘定系ホストコンピュータ3に送信する(ステップS196)。勘定系ホストコンピュータ3は、
図24のステップS135及びステップS136と同様な処理を行い、取引可否関連データ154の取引可否データと取引可否データに対応する取引可否データMACとをATM制御部220に返送する(ステップS199)。
【0205】
ATM制御部220は、ホストコンピュータ3から送られてきた取引可否データと取引可否データMACとを受信すると(ステップS200)、取引可否関連データ52としてデータ領域33に格納すると共に、カードリーダ290に対してそれらのデータを送信する(ステップS201)。
【0206】
カードリーダ290は、ATM制御部220から送られてきた取引可否データ及び取引可否データMACを受信すると、そのままICカード330に送信し、ICカード330は、取引可否データ及び取引可否データMACを受信すると、取引可否データ及び取引可否データMACの検証を行う(ステップS202)。そして、ICカード330は、検証した結果を取引可否データMAC検証結果としてカードリーダ290経由でATM制御部220に送信する(ステップS203)。
【0207】
ATM制御部220は、取引可否データMAC検証結果を受信すると(ステップS204)、ICカード取引の仕様に基づいて、再度取引データをカードリーダ290に向けて送信する(ステップS205)。カードリーダ290は、取引データを受信すると、その中の出金額を取り出し、取引関連データ322としてデータ領域313に保存し(ステップS206)、ICカード330に向けて取引データを送信する(ステップS207)。ICカード330は、取引データを受信すると(ステップS208)、取引可否検証結果を生成し、カードリーダ290に対して送信する(ステップS209)。
【0208】
カードリーダ290は、取引可否検証結果を受信すると、取引可否検証結果を取引可否関連データ323としてデータ領域313に格納すると共に、取引可否検証結果を参照し、取引が成立した状態であるか、不成立の状態であるのかの状態データを状態テーブル326に書き込む(ステップS210)。その後、カードリーダ290は、取引可否検証結果をATM制御部220に送信すると共に、送信時刻を時刻データ325に格納する(ステップS211)。ATM制御部220は、取引可否検証結果を受信すると(ステップS212)、ステップS212で受信した取引可否検証結果が正しく、かつ、取引可否データが取引成立を示すものである場合、取引が成立したと判断して平文の紙幣出金コマンドを生成し、カードリーダ290に送信する(ステップS213)。
【0209】
カードリーダ290は、平文の紙幣出金コマンドを受信すると、受信した時刻を時刻データ325としてデータ領域313に書き込む(ステップS214)。そして、カードリーダ290は、ステップS211で保存した送信時刻と、ステップS214で紙幣出金コマンドを受信した時刻とを比較する。その時刻差があるしきい値以内である場合、紙幣出金コマンドはマルウェアによって送信を妨害されていないと判断する。その後、カードリーダ290は、状態テーブル326を参照して出金取引が成立している状態であるか否かを確認する。カードリーダ290は、取引が成立していると判断した場合、ステップS192で保存した取引データの出金額と紙幣出金コマンドに含まれている出金額とを比較する(ステップS215)。カードリーダ290は、両者の金額が一致していると判断した場合、カードリーダ290に送られてきた紙幣出金コマンドを取引の裏付けのある紙幣出金コマンドであると判断する。カードリーダ290は、取引の裏付けのある紙幣出金コマンドであると判断した場合、平文の紙幣出金コマンドを暗号化(暗号化紙幣出金コマンドを生成)し、ATM制御部220に送信する(ステップS216)。
【0210】
ATM制御部220は、暗号化紙幣出金コマンドを受信すると(ステップS217)、暗号化紙幣出金コマンドをそのまま紙幣処理部221に送信する(ステップS218)。紙幣処理部221は、ATM制御部220から送られてきた暗号化紙幣出金コマンドを受信すると、暗号化紙幣出金コマンドを復号し、紙幣出金処理を行う(ステップS219)。
【0211】
ATM制御部220は、さらに入出金口シャッター開コマンドを生成し、カードリーダ290に対して、平文の紙幣出金コマンドを送信するが、以降の処理は
図24のステップS149以降と同様であるので、ここでは説明を省略する。
【0212】
本実施の形態によれば、第3の実施の形態と同様の効果を得ることができる。
【0213】
(6)第6の実施の形態
第6の実施の形態について、主に
図25、
図27、
図28を用いて説明する。第6の実施の形態による構成は、第4の実施の形態の構成と基本的に同様であるので、異なる構成(具体的には、入金取引処理におけるカードリーダ290での所定の処理をカード媒体21の一例であるICカード330が行う構成)について主に説明する。
【0214】
(自動取引システム200における入金取引処理)
図28を参照して、本実施の形態の自動取引システム200における入金取引の流れについて説明する。ここではカード媒体21としてICカード330を用いる場合を例に挙げて説明する。なお、上述の実施の形態で説明したような暗号鍵の共有等は、本実施の形態でも成り立っているとする。
【0215】
まず、カードリーダ290は、ICカード330からカード番号を読み取り、カード媒体用データ113としてデータ領域313に格納する(ステップS221)。その後、カードリーダ290は、カード媒体用データ113としてデータ領域313に格納されたカード番号をATM制御部220に送信する(ステップS222)。ATM制御部220は、カード番号を受信し、カード番号50としてデータ領域33に格納する(ステップS223)。その後、ATM制御部220は、紙幣計数コマンドを生成し、カードリーダ290に対して送信するが(ステップS224)、ステップS224〜ステップS237については、
図25のステップS160〜ステップS173と同様な処理であるので、ここでは説明を省略する。
【0216】
カードリーダ290は、ステップS221で格納したカード番号、及びステップS233で格納した入金計数結果と、ステップS237で受信した取引データの該当箇所とがそれぞれ一致しているかを比較する(ステップS238)。カードリーダ290は、一致していると判断した場合、取引データに対する取引データMACを生成するために、取引データをICカード330に向けて送信する(ステップS239)。ICカード330は、取引データを受信する(ステップS240)。以降の処理は、
図27のステップS194〜ステップS212までと同じである。その後、ATM制御部220が紙幣収納コマンドを生成して送信する処理については、
図25のステップS177〜ステップS183と同様な処理であるので、ここでは説明を省略する。
【0217】
本実施の形態によれば、第4の実施の形態と同様の効果を得ることができる。
【0218】
(7)他の実施の形態
なお上述の第1〜第6の実施の形態においては、本発明をATM210に適用するようにした場合について述べたが、本発明はこれに限らず、この他種々の自動取引装置に広く適用することができる。あるいは、取引データと現金との両方を取り扱う有人(銀行テラー)用の現金処理端末にも適用することができる。
【0219】
また上述の第1〜第6の実施の形態においては、コマンド送信、取引データへの電子署名、メッセージ認証コード等の付与のための判断機能を、既存のデバイスである紙幣処理部221、カードリーダ13,290、暗号化ピンパッド222等に実装する例を示した。しかしながら、このような判断機能は、ATM210内に新規に設けた独立デバイスが行ってもよい。すなわち、紙幣処理部221、カードリーダ13,290、暗号化ピンパッド222等の既存のデバイスとATM制御部220との間に独立なデバイスが存在し、ATM制御部220からのコマンドは独立なデバイスに送信され、紙幣処理部221、カードリーダ13,290、暗号化ピンパッド222等の既存のデバイスには独立なデバイスから暗号通信により、データの送受信を行う。また、紙幣処理部221、カードリーダ13,290、暗号化ピンパッド222等の既存のデバイスからATM制御部220へのデータ送信は、独立なデバイス経由で行われる。
【0220】
また上述の第1〜第6の実施の形態においては、紙幣処理部221、カードリーダ13、暗号化ピンパッド222間で暗号通信を行ったり、上記判断機能を実装したりする例を示したが、レシートプリンタ15、通帳プリンタ16、生体認証装置等のその他デバイスについても一般性を失わない範囲で、暗号通信機能、上記判断機能等を実装してもよい。
【0221】
また上述の第2、第4及び第6の実施の形態においては、入金収納処理がある形態を用いて説明を行ったが、紙幣処理部221が一時収納庫を有しない場合には、紙幣処理部221は入金計数にて一時収納庫ではなく、収納庫に紙幣を収納し、ATM制御部220は、ステップS17の取引検証結果にて入金可であった場合に、収納庫に収納した紙幣を銀行の管理対象と判断し(入金受け付け又は入金完了と判断し)、入金不可であった場合に、収納庫に収納した紙幣を利用者(顧客)に返却してもよい。すなわち紙幣処理部221は、紙幣を一時収納庫から収納庫に搬送する紙幣収納処理をすることなく、入金処理を完了することとなる。
【0222】
また上述の第2、第4及び第6の実施の形態においては、入金取引の形態について説明を行ったが、本発明はこれに限らず、送金取引の形態についても適用してもよい。その場合は、送金先の口座情報は、暗号化ピンパッド222で入力し、例えばステップS114における取引データとの比較項目の中に、送金先の口座番号が含まれるようにしてもよい。
【0223】
また上述の第1、第3及び第5の実施の形態においては、出金取引における不正な出金コマンドやシャッター開コマンドの防止について説明を行ったが、本発明はこれに限らず、入金取引の場合と同様に、不正な出金額を伴う取引防止の形態についても適用してもよい。その場合は、例えばステップS6で暗号化ピンパッド222から入力された出金額は、ステップS10において出金取引データMAC生成時の出金取引データに含まれる出金額と比較して、一致しているときにのみ取引データMACを生成するとしてもよい。これにより、ATM210の利用者の意図に反する出金取引の成立を防止することができる。
【0224】
また上述の実施の形態においては、本発明をATM210内の既存のデバイスに適用するようにした場合について述べたが、本発明はこれに限らず、ATM210の異常を検出する専用のデバイスを設けて適用するようにしてもよい。
【0225】
また上述の実施の形態においては、一のデバイスが金額の検証(ステップS42等)とコマンドの検証(ステップS49等)とを実行するようにした場合について述べたが、本発明はこれに限らず、一のデバイスが金額の検証を実行し、他のデバイスがコマンドの検証を実行するようにしてもよい。
【0226】
また上述の実施の形態においては、ATM制御部220の異常を検出した場合、ATM制御部220の異常を外部に出力する例として、ATM210を管理するセキュリティ監視サーバ211(上位装置の一例)に出力する場合について述べたが、本発明はこれに限らず、ATM制御部220の異常をATM210の保守員に通知(例えば保守員が所持する情報処理装置にメール、電話等)するようにしてもよいし、所定の場所に設置された警報装置を作動させるようにしてもよいし、その他の出力をしてもよい。
【0227】
また上述の実施の形態においては、異常状態に応じた対策を抽出する処理をセキュリティ監視サーバ211が行う場合について述べたが、本発明はこれに限らず、異常状態に応じた対策を抽出する処理をデバイス(暗号化ピンパッド222、カードリーダ290等)が行うようにしてもよい。
【0228】
また上述の実施の形態においては、ATM210は、入金された硬貨、及び出金する硬貨を取り扱う硬貨処理部(図示せず)を備えていてもよい。紙幣処理部221及び硬貨処理部は、入金された現金(紙幣のみであってもよいし、硬貨のみであってもよいし、紙幣及び硬貨であってもよい。)、及び出金する現金を取り扱う入出金処理部の一例である。付言するならば、紙幣収納コマンドは現金収納コマンドというように、上述の実施の形態において、紙幣は現金に読み替えることが可能である。
【0229】
また上述の実施の形態においては、紙幣出金コマンドの受信時刻と入出金口シャッター開コマンドの受信時刻とを比較して検証する場合について述べたが、本発明はこれに限らず、暗号化紙幣出金コマンドの送信時刻と入出金口シャッター開コマンドの受信時刻とを比較して検証するようにしてもよい。あるいは、取引可否データの受信時刻と入出金口シャッター開コマンドの受信時刻とを比較して検証するようにしてもよい。
【0230】
また上述の実施の形態においては、ATM制御部220を経由してデバイス間のデータのやり取りを行うようにした場合について述べたが、本発明はこれに限らず、一部又は全部のデバイス間に物理的な結線を設け、ATM制御部220を経由せずにデバイス間で直接データのやり取りを行うようにしてもよい。
【0231】
また上述の実施の形態の構成については、本発明の要旨を変更しない範囲において、適宜に組み合わせることができる。
【0232】
上述の実施の形態では、説明の便宜上、従来との差異を区別して説明したが、本発明は、従来の構成を含んでもよいし、含まなくてもよく、従来との差異を区別して説明したことにより、本発明が不当に制限されたり不当に解釈されたりしてはならない。
【0233】
(8)実施の形態の特徴
上述した実施の形態は、少なくとも下記の特徴を有している。
【0234】
自動取引装置は、第1のデバイス(カードリーダ、暗号化ピンパッド等)と第2のデバイス(例えば紙幣処理部)とを備え、第2のデバイスは、第2のデバイスに処理を実行させる第1のコマンド及び第2のコマンドを、自動取引装置の制御部から第1のデバイス経由で受信し、第1のデバイスは、第1のコマンドと第2のコマンドとが所定時間内に受信したか否かを判断し、所定時間内に受信していない場合は、異常を通知することを特徴とする。
【0235】
また、第1のデバイス(カードリーダ、暗号化ピンパッド等)は、第2のデバイス(例えば紙幣処理部)に処理を実行させる第1のコマンド及び第2のコマンドを、自動取引装置の制御部を介して第2のデバイスに送信し、第1のコマンドと第2のコマンドとが所定時間内に受信したか否かを判断し、所定時間内に受信していない場合は、異常を通知することを特徴とする。
【0236】
上述の特徴的な構成によれば、自動取引装置の制御部にマルウェアの侵入などがあった場合でも、第1のデバイスにより異常を検知することが可能となる。
【0237】
自動取引装置は、第1のデバイス(カードリーダ、暗号化ピンパッド等)を備え、第1のデバイスは、異常を検知した場合、上位装置(例えばセキュリティ監視サーバ)に異常を通知し、上位装置から通知に対する応答が所定時間ない場合、異常時対策処理(停止処理など)を行うことを特徴とする。
【0238】
また、第1のデバイス(カードリーダ、暗号化ピンパッド等)は、異常を検知した場合、上位装置(例えばセキュリティ監視サーバ)に異常を通知し、上位装置から通知に対する応答が所定時間ない場合、異常時対策処理(停止処理など)を行うことを特徴とする。
【0239】
なお、異常時対策処理は、第2のデバイス(例えば紙幣処理部)に異常時対策処理を行うコマンドを発する処理を含んでもよい。
【0240】
上述の特徴的な構成によれば、上位装置で異常が生じていた場合であっても、第1のデバイス及び第2のデバイスへの不正動作を禁止することが可能となる。
【0241】
自動取引装置は、第1のデバイス(カードリーダ、暗号化ピンパッド等)と紙幣処理部とを備え、第1のデバイスは、サーバ(例えば勘定系ホストコンピュータ)にて取引可否の判断が行われ、出金額を含む取引データを記憶し、取引データを自動取引装置の制御部に送信し、取引データに基づいて自動取引装置の制御部により生成される、出金額に関する情報を含む出金コマンドを受信し、取引データに含まれる出金額に関する情報と、出金コマンドに含まれる出金額に関する情報とを比較し、一致する場合、紙幣処理部に出金コマンドを送信することを特徴とする。
【0242】
第1のデバイス(カードリーダ、暗号化ピンパッド等)は、サーバ(例えば勘定系ホストコンピュータ)にて取引可否の判断が行われ、出金額を含む取引データを記憶し、取引データを自動取引装置の制御部に送信し、取引データに基づいて自動取引装置の制御部により生成される、出金額に関する情報を含む出金コマンドを受信し、取引データに含まれる出金額に関する情報と、出金コマンドに含まれる出金額に関する情報とを比較し、一致する場合、自動取引装置に搭載された紙幣処理部に出金コマンドを送信することを特徴とする。
【0243】
上述の特徴的な構成によれば、自動取引装置の制御部にマルウェアの侵入などによる不正な出金を阻止することが可能となる。
【0244】
第2のデバイスと、第2のデバイスとは異なる第1のデバイスと、第2のデバイス及び第1のデバイスと接続される制御部とを有する自動取引装置で、制御部は、第2のデバイスを動作させるコマンドを生成し、コマンドを第1のデバイスに送信し、第1のデバイスは、当該コマンドに関連する処理の可否を判断する。これにより、複数のデバイスを搭載する自動取引装置の制御部にマルウェアの侵入などがあった場合でも、第1のデバイスにより異常を検知することが可能となる。
【0245】
また、紙幣を処理する紙幣処理部と、紙幣処理部とは異なる第1のデバイスと、紙幣処理部及び第1のデバイスと接続される制御部とを有する自動取引装置の場合、制御部は、紙幣処理部を動作させるコマンドを生成し、コマンドを第1のデバイスに送信し、第1のデバイスは、当該コマンドに関連する処理の可否を判断する。第1のデバイスにコマンドを送信し、紙幣処理部以外の第1のデバイスで、紙幣処理部の動作可否を判断することで、制御部に異常があった場合でも、紙幣処理部を動作させるコマンドの改ざんを検知することが可能となる。
【0246】
特に、第1のデバイスは、自動取引装置の外部から入力された取引情報又はサーバで認証を受けた取引情報と、制御部の生成するコマンドに含まれる取引情報又は制御部の生成するコマンドにより第2のデバイス(例えば紙幣処理部)が動作した結果に含まれる取引情報と、を比較してもよい。また、紙幣処理部と第1のデバイスとの間で暗号化がされていてもよい。この構成によれば、よりセキュリティを高めることが可能となる。
【0247】
自動取引装置(例えばATM210)は、取引に関する取引データを生成し、取引データに基づいて出金、入金又は送金に係るコマンドを生成する制御部(例えばATM制御部220)と、制御部とは異なるデバイス(カードリーダ13、カードリーダ290等)からの情報を入力する第1の入力部(例えば通信制御ファーム131)、及び自動取引装置に対する情報を利用者が入力可能な第2の入力部(例えばテンキー)を備える第1のデバイス(例えば暗号化ピンパッド222)と、を備え、第1のデバイスは、第1の入力部、及び第2の入力部のいずれか一方、又は両方の入力に応じて制御部から送られてくるコマンドに基づいて制御部の異常を検出し、異常を検出した場合、制御部の異常を外部に出力する、ことを特徴とする自動取引装置。
【0248】
以下では、取引種類及び各ステップでのより詳細な特徴を示す。
【0249】
例えば、次の特徴を有するものであってもよい(
図18のステップS42等)。紙幣処理部と、紙幣処理部とは異なる第1のデバイスと、紙幣処理部及び第1のデバイスと接続される制御部とを有する自動取引装置で、制御部は、紙幣処理部に出金処理を実施させる出金コマンドを生成し、第1のデバイスは、出金コマンドに含まれる取引情報と、自動取引装置の外部から利用者により入力された取引情報との一致が確認された場合に、紙幣処理部による出金処理の実施を可と判断する。当該構成により、出金取引のセキュリティを高めることが可能となる。特に、紙幣処理部で取引情報を検証(出金コマンドを実行許可すべきかを判断)する場合、出金コマンドや入出金口シャッター開コマンドを第1のデバイスに送信して検証することができるため、紙幣処理部に対するコマンド送信の妨害も検知して、より広い範囲の攻撃を防止することが可能になる。例えば、ATM利用者がATMの前から立ち去った後に入出金口シャッター開コマンドを送信し、入出金口に残留した紙幣を不正取得する攻撃を防止することが可能となる。
【0250】
また、例えば、次の特徴を有するものであってもよい(
図18のステップS49等)。第2のデバイス(例えば紙幣処理部)と、第2のデバイスとは異なる第1のデバイスと、第2のデバイス及び第1のデバイスと接続される制御部とを有する自動取引装置で、制御部は、第2のデバイスに第1の動作をさせる第1のコマンド及び第2の動作をさせる第2のコマンドを生成し、第1のコマンド及び第2のコマンドを第1のデバイスを経由して第2のデバイスに送信し、第1のデバイスは、上記第1のコマンドを受信した第1の時刻情報及び第2のコマンドを受信した第2の時刻情報との差分に基づき、異常有無を検知する。より詳細には、第1のデバイスは、第1の時刻と第2の時刻との差分が所定時間よりも大きい場合は、制御部又は自動取引装置に異常が生じていると判断する。これにより、マルウェアによる第2のデバイスを動作させる不正コマンドを検知することが可能となる。
【0251】
また、例えば、次の特徴を有するものであってもよい(
図19のステップS60等)。紙幣処理部と、紙幣処理部とは異なる第1のデバイスと、紙幣処理部及び第1のデバイスと接続される制御部とを有する自動取引装置で、第1のデバイスは、制御部の異常を検知した場合に、制御部の接続される上位装置に上記異常を通知する異常通知処理を実施し、上記上位装置から所定時間応答がなかった場合に、上記第1のデバイスは、異常対策処理を行う。第1のデバイス又は紙幣処理部は、異常対策処理として、コマンドに基づく処理を禁止してもよいし、第1のデバイス、紙幣処理部、制御部、自動取引装置等のデバイスのシャットダウンを実施してもよい。これにより、上位装置で異常が生じていた場合であっても、デバイスへの不正動作を禁止することが可能となる。
【0252】
また、例えば、次の特徴を有するものであってもよい(
図21のステップS114等)。紙幣処理部と、紙幣処理部とは異なる第1のデバイスと、紙幣処理部及び第1のデバイスと接続される制御部とを有する自動取引装置で、制御部は、紙幣処理部に入金計数処理を実施させる入金計数コマンドを生成し、第1のデバイスは、入金計数コマンドに基づき紙幣処理部が計数した紙幣の情報である取引情報を受信し、計数した紙幣の情報である取引情報と、自動取引装置の外部から利用者により入力された取引情報との一致が確認された場合に、入金紙幣収納可と判断する。当該構成により、入金取引のセキュリティを高めることが可能となる。特に、紙幣処理部で取引情報を検証する場合に比較し、第1のデバイスが取引情報を検証した上で、紙幣処理部に対するコマンドを送信することで、コマンド送信を遅らせるなどのコマンド送信に対する攻撃を検知し、不正な紙幣の返却を防止することが可能となる。また、上記実施の形態では、入金収納するために紙幣を搬送するコマンドを用いて説明しているが、紙幣を搬送しなくとも、計数した紙幣を当該紙幣処理部の紙幣として確定するコマンドであってもよい。
【0253】
また、例えば、次の特徴を有するものであってもよい(
図21のステップS114等)。第2のデバイス(例えば紙幣処理部)と、第2のデバイスとは異なる第1のデバイスと、第2のデバイス及び第1のデバイスと接続される制御部とを有する自動取引装置で、第1のデバイスは、制御部で生成される入金先に関連する情報(カード番号、口座番号など)を受信し、制御部で生成される入金先に関連する情報と、自動取引装置の外部から利用者により入力された入金先に関連する情報との一致が確認された場合に、入金可と判断する。
【0254】
また、例えば、次の特徴を有するものであってもよい(
図21のステップS119等)。第2のデバイス(例えば紙幣処理部)と、第2のデバイスとは異なる第1のデバイスと、第2のデバイス及び第1のデバイスと接続される制御部とを有する自動取引装置で、制御部は、第2のデバイスに処理を実行させる複数のコマンドを生成し、複数のコマンドを第1のデバイスに送信し、第1のデバイスは、複数のコマンドが所定の順序又は内容ではない場合に、異常時対策処理を実行する。