以下図面について、本発明の一実施の形態を詳述する。
(1)第1の実施の形態
(1−1)従来の自動取引システムの構成
本実施の形態による自動取引システムを説明するに際して、まず、従来の自動取引システムの構成について説明する。
図1は、従来の自動取引システムの構成例を示す。この自動取引システム1は、1又は複数のATM2と、勘定系ホストコンピュータ3とがLAN(Local Area Network)又はWAN(Wide Area Network)などの広域ネットワーク4を介して接続されることにより構成されている。
ATM2は、利用者の操作に応じて現金の入出金等の取引を行う自動取引装置である。ATM2は、当該ATM2全体の動作制御を司るATM制御部10と、ATM2の前面パネルの表示ランプ制御や前面パネルの開閉検知を行うI/O制御部11と、ATM2の前面に設けられた入出金口内に投入された紙幣を計数して収納庫に搬送、保管し又は出金すべき紙幣を前記収納庫から取り出して入出金口内に搬送する紙幣処理部12と、ATM2での取引に必要なキャッシュカード等のカード媒体から当該カード媒体に記録されている情報を読み取るカードリーダ13と、暗証番号等を入力するためのテンキーを有し、入力された暗証番号等の情報を暗号化する機能を有する暗号化ピンパッド14と、取引明細票用のプリンタでなるレシートプリンタ15と、通帳用のプリンタでなる通帳プリンタ16と、ATM取引のログを記録するジャーナルプリンタ17と、利用者の顔写真を撮影するセキュリティ用の監視カメラ18と、入金取引に関する情報を表示する表示部19と、勘定系ホストコンピュータ3と通信を行う通信処理部20とを備えて構成される。なお、表示部19は、利用者からの操作を受け付ける表示操作部であってもよい。
ただしATM2は、入金された硬貨や出金する硬貨を取り扱う硬貨処理部(図示せず)を備えていてもよい。また、第1の実施の形態としては、カード媒体としてIC(Integrated Circuit Card)カード21が使用される例について説明する。
図2は、ATM制御部10の概略構成を示す。この図2に示すように、ATM制御部10は、CPU(Central Processing Unit)30及びメモリ31等の情報処理資源を備えたマイクロコンピュータ構成を有する。CPU30は、ATM制御部10全体の動作制御を司るプロセッサであり、メモリ31は、例えば半導体メモリから構成される。
ATM制御部10のメモリ31の記憶領域は、プログラム領域32及びデータ領域33に区分されて管理される。そしてプログラム領域32には、ATM2取引全体を制御するATMアプリケーション40と、I/O(Input/Output)制御部11、紙幣処理部12、カードリーダ13、暗号化ピンパッド14、レシートプリンタ15、通帳プリンタ16、ジャーナルプリンタ17、監視カメラ18及び表示部19をそれぞれ制御するためのソフトウェア(I/O制御部制御ソフトウェア41、紙幣処理部制御ソフトウェア42、カードリーダ制御ソフトウェア43、暗号化ピンパッド制御ソフトウェア44、レシートプリンタ制御ソフトウェア45、通帳プリンタ制御ソフトウェア46、ジャーナルプリンタ制御ソフトウェア47、監視カメラ制御ソフトウェア48及び通信処理ソフトウェア49)と、ソフトウェア環境等の設定ファイル50とが格納される。
またデータ領域33には、ATM2での入出金取引に必要なデータが格納される。具体的には、カード番号60、ATC(ATm Controler)乱数61、取引データ62、ARQC(Authentication Request Cryptogram)63、取引可否データ64、ARPC(Authentication Response Cryptogram)65、ARPC検証結果66、取引検証結果67、紙幣処理部制御データ68及び入金計数金額69などがデータ領域33に格納される。
カード番号60は、ICカード21に記憶されている、銀行口座の番号又はクレジットカードの番号などの利用者の口座を特定する情報であり、カードリーダ13によりICカード21から取得され、ATM制御部10のメモリ30に記憶される。またATC乱数61は、ATM2と勘定系ホストコンピュータ3との間で取引電文のやり取りに必要なセキュリティを高めるために、ATM制御部10で生成される乱数である。これは取引ごとに生成される電文データのビットパターンを見かけ上変えることにより、過去に保存した取引電文を用いて不正な取引を行う「リプレイ攻撃」を防止するためである。
取引データ62は、勘定系ホストコンピュータ3に送信する取引電文データである。取引データ62は、例えば、出金額又は入金額などの利用者からの入力に基づく取引に関する情報、特には取引金額に関する情報を含む。また、取引データ62は、カード番号60などの情報を含んでもよい。ARQC63は、勘定系ホストコンピュータ3に送信する取引データ62に対するメッセージ認証コード(MAC)であり、ICカード21で生成される。取引可否データ64は、ATM2から送信された取引データ62に対して、勘定系ホストコンピュータ3が銀行口座残高や与信情報などを参照して、その取引を成立させて良いか否かを判断した結果のデータである。ARPC65は、取引可否データ64に対するメッセージ認証コードであり勘定系ホストコンピュータ3で生成される。勘定系ホストコンピュータ3は、ATMスイッチ、ATMの上位装置又はATMの外部のコンピュータである外部コンピュータと呼ぶこともある。
ARPC検証結果66は、ICカード21内でARPC65のメッセージ認証コードを検証した結果を示すデータである。取引検証結果67は、ICカード21内で生成される取引データに対するメッセージ認証コードであり、取引受入れの場合は「TC」が格納され、取引拒絶の場合は「AAC」が格納される。紙幣処理部制御データ68は、ATM制御部10が紙幣処理部12(図1)に対して送信する、紙幣処理のためのコマンドデータであり、例えば、紙幣出金を指示する紙幣出金コマンド、入金計数を指示する紙幣計数コマンド、入金収納を指示する紙幣収納コマンドがある。入金計数金額69は、入金取引時において紙幣処理部12が、ATM2に投入された紙幣を計数した合計金額である。
一方、勘定系ホストコンピュータ3は、ATM2の利用者の口座や残高に関する情報などを記憶し管理する機能を有するコンピュータ装置であり、図3に示すように、勘定系ホストコンピュータ3全体の動作制御を司るCPU70と、メモリ71となどの情報処理資源を備えて構成される。
勘定系ホストコンピュータ3のメモリ71の記憶領域は、プログラム領域72及びデータ領域73に区分されて管理されており、プログラム領域72には、アプリケーション80、通信制御ソフトウェア81及び暗号処理ソフトウェア82が格納され、データ領域73には、取引データ83、ARQC84、取引可否データ85及びARPC86が格納される。
アプリケーション80は、勘定系ホストコンピュータ3全体の制御を行うソフトウェアである。また通信制御ソフトウェア81は、勘定系ホストコンピュータ3と各ATM2との間でのデータ通信を制御する機能を有するソフトウェアである。暗号処理ソフトウェア82は、ATM2から送信されてくるメッセージ認証コードであるARQC84を検証したり、ARPC86といった新たにメッセージ認証コードを生成したりする暗号処理機能を持つソフトウェアである。
また取引データ83は、ATM2から送信されてくる出金取引や入金取引のための取引電文データであり、図2の取引データ62と同じデータである。ARQC84は、取引データ83が改ざんされていないかを検証するためのメッセージ認証コードであり、ICカード21で生成される。このARQC84は、図2のARQC63と同じデータである。取引可否データ85は、勘定系ホストコンピュータ3が銀行口座残高や与信情報などを参照して、その取引を成立させても良いか否かを判断した結果を表すデータであり、図2の取引可否データ64と同じデータである。ARPC86は、取引可否データ85に対するメッセージ認証コードであり、勘定系ホストコンピュータ3で生成される。このARPC86も、図2のARPC65と同じデータである。
図4は、ICカード21の概略構成を示す。この図4からも明らかなように、ICカード21は、ICカード21全体の動作制御を司るCPU90と、メモリ91となどの情報処理資源を備えて構成される。そしてICカード21のメモリ91の記憶領域は、プログラム領域92及びデータ領域93に区分されて管理されており、プログラム領域92には、アプリケーション100、通信制御ファームウェア101及び暗号処理ファームウェア102が格納され、データ領域93には、ATC乱数103、取引データ104、ARQC105、取引可否データ106、ARPC107、ARPC検証結果108及び取引検証結果109が格納される。
アプリケーション100は、ICカード21の全体制御を行うソフトウェアである。また通信制御ファームウェア101は、カードリーダ13(図1)との間でのデータ通信を制御する機能を有するソフトウェアである。暗号処理ファームウェア102は、ARQC105を生成したり、勘定系ホストコンピュータ3から送信されてくるARPC107を検証したりする暗号処理機能を持つソフトウェアである。
またATC乱数103は、ATM制御部10(図2)で生成されたATC乱数61(図2)と同じデータであり、ATM制御部10から送信されてきたものである。取引データ104は、ATM10から送信されてきた出金取引又は入金取引のための取引電文データであり、図3の取引データ83と同じデータである。
ARQC105は、図2のARQC63及び図3のARQC84と同じデータであり、ATC乱数103と取引データ104から生成される、図2の取引データ62に対するメッセージ認証コードである。ARQC105は、勘定系ホストコンピュータ3で検証される。取引可否データ106は、勘定系ホストコンピュータ3が銀行口座残高や与信情報などを参照して、その取引を成立させて良いか否かを判断した判断結果を表すデータであり、図2の取引可否データ64及び図3の取引可否データ85と同じデータである。
ARPC107は、取引可否データ106に対するメッセージ認証コードであり、勘定系ホストコンピュータ3で生成され、図2のARPC65、図3のARPC86と同じデータである。取引検証結果109は、ARPC107をICカード21が検証した結果、ATM制御部10に紙幣出金コマンド送信を許可するために使われるデータである。また、取引検証結果109はICカード21がARPC349を検証してATM2での取引を承認したことを勘定系ホストコンピュータ3が検証するためにも使用される。取引検証結果109として、取引を承認した場合に「TC」が生成され、取引拒否の場合に「AAC」が生成される。
ICカード21には、そのICカード21の保有者の銀行口座番号やクレジットカード番号、あるいは、本人確認を行うための情報が記録されると共に、勘定系ホストコンピュータ3との間でATM取引に必要なメッセージ認証コードを生成したり検証したりする機能が搭載される。
次に、図5を参照して、従来の取引システム1における出金取引処理の流れについて説明する。以下においては、ATM2の利用者により既にICカード21がカードリーダ13(図1)に挿入されており、ATM制御部10がカードリーダ13を介してICカードに記憶されているカード番号を受信し、記憶すると共に、ICカード21の認証と暗証番号などによる本人確認認証処理は既に済んでおり、その上で、利用者から入力された出金取引における出金額をATMの暗号化ピンパッドや表示操作部が受付け、ATM制御部10は出金額の情報を受信し、当該出金取引における出金額を記憶している状態にあるものとする。また、ICカード21と勘定系ホストコンピュータ3間の通信に必要な暗号鍵などの暗号処理に必要なデータ共有は既に完了しているものとする。
まず、ATM2のATM制御部10が、ATC乱数61(図2)を生成し、生成したATC乱数61をメモリ31(図2)に格納する(S1)。これは取引ごとに生成される電文データのビットパターンを見かけ上変えることにより、過去に保存した取引電文を用いて不正な取引を行う「リプレイ攻撃」を防止するためである。次に、ATM制御部10は、出金取引に必要な取引データ62(図2)を生成し(S2)、ステップS1で生成したATC乱数61と、ステップS2で生成した取引データ62とをカードリーダ13経由でICカード21に送信する(S3)。
ICカード21は、かかるATC乱数61及び取引データ62を受信すると、これらをメモリ91(図4)に格納すると共に(S4)、これらATC乱数61及び取引データ62に対するメッセージ認証コードであるARQC105を生成し(S5)、生成したARQC105をATM制御部10に送信する(S6)。
ATM制御部10は、かかるARQC105を受信すると(S7)、受信したARQC105をARQC63(図2)としてメモリ31(図2)に格納すると共に、このARQC105を取引データ62(図2)と共に勘定系ホストコンピュータ3に送信する(S8)。
勘定系ホストコンピュータ3は、かかる取引データ62及びARQC63を受信すると(S9)、これらをそれぞれ取引データ83(図3)及びARQC84(図3)としてメモリ71(図3)に格納する。また勘定系ホストコンピュータ3は、利用者の口座残高や与信情報を確認し、出金額、口座残高又は与信情報などに基づき出金取引の実施可否を検証した上で、取引可否データ85(図3)を生成すると共に、それに対応するメッセージ認証コードであるARPC86(図3)を生成する(S10)。そして勘定系ホストコンピュータ3は、生成した取引可否データ85及びARPC86をATM制御部10に返送する(S11)。
かくしてATM制御部10は、勘定系ホストコンピュータ3から返送されてきた上述の取引可否データ85及びARPC86を受信すると(S12)、これらをそれぞれ取引可否データ64(図2)及びARPC65(図2)としてメモリ31(図2)に格納し、その後、ICカード21にARPC65及びARPC検証に必要な取引可否データを送信する(S13)。なお、図を簡素化するため、図5のステップS13〜ステップS14では、取引可否データの記載を省略する。
ICカード21は、このARPC65と取引可否データを受信すると、これをARPC107(図4)と取引可否データとしてメモリ91(図4)に格納して、ARPCに基づき取引可否データの正当性を検証し、その結果をARPC検証結果108(図4)としてメモリ91に格納する(S14)。またICカード21は、この後、このARPC検証結果108をATM制御部10に送信する(S15)。
ATM制御部10は、かかるARPC検証結果108を受信すると、受信したARPC検証結果108をARPC検証結果66(図2)としてメモリ31(図2)に格納する(S16)。またATM制御部10は、このARPC検証結果66の内容を参照して、取引が受け入れられていると判断した場合には、再度、ICカード21の要求に合う取引データ62(図2)を生成してICカード21に送信する(S17)。
ICカード21は、この取引データ62を受信すると(S18)、これを取引検証結果67(図2)としてメモリ31(図2)に格納する(S20)。ICカード21は、その検証結果のメッセージ認証コードとして取引検証結果109(図4)を生成し、生成した取引検証結果109をカードリーダ13経由でATM制御部10に送信する(S19)。
ATM制御部10は、この取引検証結果109を受信すると、これを取引検証結果67(図2)としてメモリ31(図2)に格納する(S20)。そしてATM制御部10は、この取引検証結果67の値が「AAC」であった場合には、取引不可の旨をATM2の表示部19(図1)に表示させる。
これに対してATM制御部10は、かかる取引検証結果67の値が「TC」であった場合には、取引受入と判断して出金すべき紙幣金種(千円札、二千円札、五千円札及び又は一万円札)及びその枚数の情報を含む紙幣出金コマンドを生成し、生成した紙幣出金コマンドを紙幣処理部制御データ68(図2)としてメモリ31(図2)に格納すると共に(S21)、この紙幣出金コマンドを紙幣処理部12に送信する(S22)。
そして紙幣処理部12は、かかる紙幣出金コマンドを受信すると(S23)、受信した紙幣出金コマンドに基づいて、紙幣出金コマンドで指定された金種の紙幣をATM2内に設けられた金庫に囲われた紙幣を保管する収納庫から指定された枚数だけ取り出してATM2の前面に設けられた入出金口内に搬送する出金処理を行う(S24)。すなわち、紙幣処理部12は、紙幣出金コマンドに基づき出金処理を行う。以上が従来のATM出金取引処理の流れである。
ここで、ATM制御部10のATMアプリケーション40(図2)にマルウェアが混入して、取引の裏付けのない不正な紙幣出金コマンドが紙幣処理部12に送信される処理は、ステップS21及びステップS22で起こり得る。すなわちATM制御部10は、メモリ31(図2)に格納されている取引検証結果67(図2)に基づいて紙幣出金コマンドを生成するのが本来の処理の流れである。それを保障しているのがATMアプリケーション40の正当性である。
しかしながら、マルウェアの混入によりその正当性が担保されないと、取引検証結果67に基づかずに不正な紙幣出金コマンドが紙幣処理部12に送信される。この場合、紙幣出金コマンド中の出金金額が改ざんされたり、そもそも取引とは全く関係のない紙幣出金コマンドが紙幣処理部12に送信され、紙幣の不正出金が行われる。
一方、入金取引の場合には、入金金額の不正改ざんに加えて、入金先口座番号の不正改ざんのリスクが存在する。これを説明するために、従来のATM入金取引処理の流れを図6A及び図6Bを用いて説明する。
図6A及び図6Bでは、入金取引の際に口座に残高を増やす必要があるためにカード番号に関わるステップS30〜ステップS33の取引処理の流れを明示したが、これらの処理は出金取引にも存在する。入金取引固有の処理の流れは、図6AのステップS34〜ステップS38、及び、図6BのステップS58〜ステップS62であるので、以下、それらの処理の流れを主として説明する。
内部に格納されているカード番号がICカード21から読み出されてカードリーダに送られると(S30)、カードリーダ13はそれを受信し(S31)、さらにそのカード番号をそのままATM制御部10に送信する(S32)。ATM制御部10は、ICカード21からカード番号を受信すると(S33)、ATM2に投入される紙幣の合計金額を計数するために、紙幣処理部制御ソフトウェア42(図2)により入金計数コマンドを生成し、生成した入金計数コマンドを紙幣処理部12に送信する(S34)。紙幣処理部12は、この入金計数コマンドを受信すると(S35)、ATM2の前面に設けられた上述の入出金口に投入された紙幣を計数すると共に、計数した紙幣を紙幣処理部内の一時スタッカに格納する(S36)。その後、紙幣処理部12は、その計数した紙幣の合計金額又は紙幣の金種毎の枚数を入金計数金額として、ATM制御部10に送信する(S37)。なお一時スタッカとは、取引き中の紙幣を一時的に収納する収納庫であり、一時収納庫とも呼ばれ、金庫に囲われていないこともある。
ATM制御部10は、かかる入金計数金額を受信すると、これを入金計数金額69(図2)としてメモリ31(図2)に格納する、あるいは、紙幣金種毎の枚数を受信した場合は合計金額を計算してメモリ31(図2)に格納する(S38)。その後、ATM制御部10では、ATMアプリケーション40(図2)がARQC生成のためのATC乱数61(図2)を生成し(S39)、メモリ31に格納された入金計数金額69を用いて取引データ62(図2)を生成する(S40)。そしてATM制御部10は、生成したこれらATM乱数61及び取引データ62をカードリーダ13(図1)を介してICカード21に送信する(S41)。
かくしてICカード21がこのATM乱数61及び取引データ62を受信すると(S42)、この後、このATM乱数61及び取引データ62に基づいて、図5のステップS5〜ステップS20と同様にしてステップS43〜ステップS58の処理が行われる。なお、ICカード21は、ステップS57で取引データの金額又は取引データの紙幣金種毎の枚数に基づき、取引データの正当性を検証してもよい。また、図5と同様、図6AではステップS51〜ステップS52の取引可否データの記載を省略している。
なおATM制御部10は、ステップS58において、ICカード21から送信されてきた取引検証結果が「TC」であった場合には、紙幣収納コマンドを生成してこれを紙幣処理部制御データ68(図2)としてメモリ31(図2)に格納する(S59)。またATM制御部10は、かかる取引検証結果が「AAC」であった場合には、取引不可と判断し、その旨をATM2の表示部19(図1)に表示させる。
一方、ATM制御部10は、ICカード21から送信されてきた取引検証結果が「TC」であった場合、上述のように生成した紙幣収納コマンドを紙幣処理部12に送信する(S60)。そして紙幣処理部12は、この紙幣収納コマンドを受信すると(S61)、上述のように一時スタッカに格納した紙幣を収納庫に移動させる入金紙幣収納処理を行う(S62)。以上が従来のATM入金取引処理の流れである。
ここで、ATMアプリケーション40(図2)にマルウェアが混入した場合、上述した従来のATM入金取引処理において、ステップS40の取引データ62の生成時に、ステップS37において紙幣処理部12からATM制御部10に通知された入金計数金額以上の金額に基づき取引データ62が生成されるおそれがある。極端な場合、ATM2に投入された紙幣が全く存在しなくても、入金のための取引データ62をステップS40でATM制御部10に生成させることもできる。
このように、従来の取引システム1では、ATMアプリケーション40の正当性が保証されなければ、取引の裏付けのない紙幣出金処理、又は、紙幣の裏付けのない入金取引が成立し得るおそれがある。また、入金取引の場合は、指定された口座以外の口座に入金取引を行うといった不正取引が起きるおそれもある。
ATMアプリケーション40や、図2に示す9種類のデバイス制御ソフトウェア(I/O制御部制御ソフトウェア41、紙幣処理部制御ソフトウェア42、カードリーダ制御ソフトウェア43、暗号化ピンパッド制御ソフトウェア44、レシートプリンタ制御ソフトウェア45、通帳プリンタ制御ソフトウェア46、ジャーナルプリンタ制御ソフトウェア47、監視カメラ制御ソフトウェア48及び通信処理ソフトウェア49と、ソフトウェア環境の設定ファイル50の不正改ざんを防止するためのセキュリティ対策ソフトウェアとして、ウィルスの混入を検知するウィルスチェックソフトウェアや、ホワイトリスト型と呼ばれる、登録されたソフトウェア以外のソフトウェアの起動を防止するセキュリティ対策ソフトウェアが従来から存在する。しかしながら、全体制御部(ATM制御部10)が起動するときに、そのセキュリティ対策ソフトウェアの起動が妨げられて機能しないような不正改造が行われる場合もあり、これらの対策ソフトウェアだけでは万能ではない。
そこで、本実施の形態では、ATM2内の内部デバイス同士の安全なデバイス間通信により、アプリケーションソフトウェアや制御ソフトウェアがマルウェアにより不正改ざんされた場合においても不正処理ができない自動取引システムを提案する。以下、このような本実施の形態の自動取引システムについて図7〜図15を参照して説明する。
(1−2)第1の実施の形態による取引システムの構成
図1との対応部分に同一符号を付して示す図7において、110は全体として本実施の形態による自動取引システムを示す。本自動取引システム110は、ATM111のATM制御部112、紙幣処理部113及びカードリーダ114の機能が異なる点を除いて図1〜図6Bについて上述した従来の自動取引システム1と同様に構成されている。
図2との対応部分に同一符号を付して示す図8は、本実施の形態によるATM111のATM制御部112の構成を示す。このATM制御部112は、メモリ31のデータ領域33に、カード番号60、ATC乱数61、取引データ62、ARQC63、取引可否データ64、ARPC65、ARPC検証結果66、取引検証結果67、紙幣処理部制御データ68及び入金計数金額69に加えて、出金額信用情報120、DEV乱数121、EPP乱数122、入金計数金額信用情報123、第1のCR乱数124及び第2のCR乱数125が格納される点と、これに伴いメモリ31のプログラム領域32に格納された紙幣処理部制御ソフトウェア126及びカードリーダ制御ソフトウェア127の機能が異なる点とを除いて図1〜図6Bについて上述した従来のATM制御部10と同様に構成されている。
出金額信用情報120は、紙幣処理部113が出金してもよい金額の情報(金額情報)を含む電子署名データ、又は、メッセージ認証コード(MAC)である。出金額信用情報120は、出金コマンドよりもセキュリティの高い情報であってよい。この出金額信用情報120は、ICカード21から出力される取引検証結果67に基づいて後述のカードリーダ暗号処理部132(図9)で生成され、ATM制御部112を経由して、紙幣処理部113に送信される。
DEV乱数121は、紙幣処理部113で生成され、カードリーダ暗号処理部132(図9)に送信されて出金額信用情報120を生成するために使用される。DEV乱数121は、出金額信用情報120のリプレイ攻撃を防止するために使用される。
図9は、本実施の形態のカードリーダ114の構成を示す。このカードリーダ114は、カードリーダ制御部130、カード搬送・読取部131及びカードリーダ暗号処理部132を備えて構成される。
カードリーダ制御部130は、カード搬送・読取部131及びカードリーダ暗号処理部132を制御すると共に、これらカード搬送・読取部131及びカードリーダ暗号処理部132との間でデータのやり取りを行う機能を有するハードウェアユニットであり、カード搬送・読取部131は、ATM111内部でICカード21を搬送すると共に、ICカード21の接点を通じてICカード21との間でデータの入出力を行う機能を有するハードウェアユニットである。またカードリーダ暗号処理部132は、カードリーダ114内で電子署名データやMACの生成及び検証などの暗号処理を行う機能を有するハードウェアユニットである。
カードリーダ制御部130は、図10に示すように、カードリーダ制御部130全体の動作制御を司るCPU140と、例えば半導体メモリなどから構成されるメモリ141などの情報処理資源を備えて構成される。
カードリーダ制御部130のメモリ141の記憶領域は、プログラム領域142及びデータ領域143に区分されて管理されており、プログラム領域142に、全体制御ファームウェア150、ICカード通信制御ファームウェア151及びCSE(Card reader Secure Element)制御ファームウェア152が格納され、データ領域143に、全体制御用バッファ153、ICカード通信用バッファ154及びCSE通信用バッファ155が設けられる。
全体制御ファームウェア150は、ATM制御部112との間の通信を制御したり、カード搬送・読取部131(図9)の搬送制御などを行う機能を有するソフトウェアであり、ICカード通信制御ファームウェア151は、ICカード21との間でデータの入出力制御を行う機能を有するソフトウェアである。またCSE制御ファームウェア152は、カードリーダ暗号処理部132(図9)を制御したり、当該カードリーダ暗号処理部132との間の通信制御を行うソフトウェアである。
また全体制御用バッファ153は、ATM制御部112との通信用バッファも含む全体制御に使われるデータエリアであり、ICカード通信用バッファ154及びCSE通信用バッファ155はそれぞれ、ICカード21又はカードリーダ暗号処理部132との通信制御用バッファである。
図11は、カードリーダ暗号処理部132の概略構成を示す。カードリーダ暗号処理部132は、当該カードリーダ暗号処理部132全体の動作制御を司るプロセッサであるCPU160と、例えば、半導体メモリなどから構成されるメモリ161となどの情報処理資源を備えて構成される。
カードリーダ暗号処理部132のメモリ161の記憶領域は、カードリーダ制御部130(図10)と同様に、プログラム領域162及びデータ領域163に区分されて管理されており、プログラム領域162には、アプリケーション170、通信制御ファームウェア171及び暗号処理ファームウェア172が格納され、データ領域163には、DEV乱数173、出金額174及び出金額信用情報175が格納される。
アプリケーション170は、カードリーダ暗号処理部132の全体制御を行う機能を有するソフトウェアであり、通信制御ファームウェア171は、カードリーダ制御部130(図10)との間の通信制御を行う機能を有するソフトウェアである。また暗号処理ファームウェア172は、電子署名データやMACの生成や検証などを行う機能を有するソフトウェアである。
またDEV乱数173は、紙幣処理部113で生成された乱数であり、出金額174は、勘定系ホストコンピュータ3とICカード21の間で成立した出金取引の出金金額である。さらに出金額信用情報175は、紙幣処理部113が出金してよい金額情報を含む電子署名データやMACである。出金額信用情報175は、ICカード21から出力される取引検証結果109(図4)に基づいてカードリーダ暗号処理部132内で生成される。本データは、図8の出金額信用情報120と同一のデータである。
図12は、紙幣処理部113の構成を示す。紙幣処理部113は、紙幣処理部制御部180、紙幣搬送機構部181及び紙幣処理部暗号処理部182を備えて構成される。
紙幣処理部制御部180は、紙幣搬送機構部181及び紙幣処理部暗号処理部182を制御すると共に、これら紙幣搬送機構部181及び紙幣処理部暗号処理部182との間でデータのやり取りを行う機能を有するハードウェアである。また紙幣搬送機構部181は、金庫内の紙幣を保管する収納庫から紙幣を搬送してATM111の利用者に出金したり、利用者が紙幣入出金口に投入した紙幣を収納庫に搬送し入金する機能を有するハードウェアである。なお、紙幣処理制御部180は、出金、入金の際に搬送される紙幣の金種と枚数を計数する機能を有してもよい。紙幣処理部暗号処理部182は、紙幣処理部113内で電子署名データやMACの生成や検証などを行う暗号処理を担うユニットである。
紙幣処理部制御部180は、図13に示すように、紙幣処理部制御部180全体の動作制御を司るCPU190と、例えば半導体メモリなどから構成されるメモリ191などの情報処理資源を備えて構成される。
紙幣処理部制御部180のメモリ191の記憶領域は、プログラム領域192及びデータ領域193に区分されて管理されており、プログラム領域192に、全体制御ファームウェア200、紙幣搬送機構制御ファームウェア201及びDSE(Device Secure Element)制御ファームウェア202が格納され、データ領域193に、全体制御用バッファ203、紙幣搬送機構制御用バッファ204及びDSE通信用バッファ205が設けられる。
全体制御ファームウェア200は、ATM制御部112との間の通信を制御したり、紙幣搬送機構制御ファームウェア201及びDSE制御ファームウェア202を制御する機能を有するソフトウェアである。また紙幣搬送機構制御ファームウェア201は、紙幣搬送機構部181(図12)の制御を行う機能を有するソフトウェアである。さらにDSE制御ファームウェア202は、紙幣処理部暗号処理部182(図12)を制御したり、紙幣処理部暗号処理部182との間の通信制御を行う機能を有するソフトウェアである。
また全体制御用バッファ203は、ATM制御部112との通信用バッファのほか、他の制御ファームウェアを制御するために利用されるデータエリアである。また紙幣搬送機構制御用バッファ204及びDSE通信用バッファ205は、それぞれ紙幣搬送機構部181又は紙幣処理部暗号処理部182との通信時に利用する通信用バッファである。
図14は、紙幣処理部暗号処理部182の概略ハードウェア構成及び出金取引時のデータ構成を示す。紙幣処理部暗号処理部182は、当該紙幣処理部暗号処理部182全体の動作制御を司るCPU210と、例えば半導体メモリなどから構成されるメモリ211となどの情報処理資源を備えて構成される。
紙幣処理部暗号処理部182のメモリ211の記憶領域は、紙幣処理部制御部180(図13)と同様に、プログラム領域212及びデータ領域213に区分されて管理されており、プログラム領域212には、アプリケーション220、通信制御ファームウェア221及び暗号処理ファームウェア222が格納され、データ領域213には、DEV乱数223、出金額224及び出金額信用情報225が格納される。
アプリケーション220は、紙幣処理部暗号処理部182の全体制御を行う機能を有するソフトウェアであり、通信制御ファームウェア221は、紙幣処理部制御部180(図13)との間の通信制御を行う機能を有するソフトウェアである。また暗号処理ファームウェア222は、電子署名データやMACの生成や検証などを行う機能を有するソフトウェアである。
またDEV乱数223は、出金額信用情報225の生成の際に用いられる乱数であり、紙幣処理部暗号処理部182内で生成される。出金額224は、ATM制御部112から送信される紙幣出金コマンドに含まれる出金額である。すなわち、紙幣出金コマンドには紙幣金種とその金種に対応する紙幣枚数が含まれているので、紙幣金種×その紙幣枚数の累積金額に基づき紙幣処理制御部180により出金額224が算出されるである。さらに出金額信用情報225は、カードリーダ暗号処理部132(図11)で生成されて送信されてくるデータであり、紙幣処理部113が出金してよい紙幣の金額情報を含む電子署名データやMACである。本データは図8の出金額信用情報120及び図11の出金額信用情報175と同一のデータである。
次に、図15を用いて、本実施の形態の自動取引システム110におけるATM出金取引処理の流れについて説明する。
なお図15では、図5のステップS1〜12までの処理に続く処理であり、発明の特徴を明確にするため図5のステップS1〜12までの処理を割愛しており、それ以降の処理の流れを示している。ここでの前提として、カードリーダ暗号処理部132(図11)と紙幣処理部暗号処理部182(図14)との間の信用情報のやり取りに必要な暗号鍵の共有やセッション生成は既に完了しているとする。また、図5のステップS3においてATM制御部112からのATC乱数61及び取引データ62がカードリーダ114を経由してICカード21に送信される際に、当該カードリーダ1のカードリーダ制御部130(図10)が取引データ62に含まれる出金額を抽出して全体制御用バッファ153(図10)に保存しておくことも合わせて前提とする。なお、取引データ62に含まれる出金額は、利用者の入力した出金額をATM制御部112にて記憶していたものである。
まずATM制御部112は、紙幣処理部113に対してDEV乱数生成の要求を送信する(S70)。そして紙幣処理部113は、かかる要求を受信すると、紙幣処理部暗号処理部182(図14)にてDEV乱数を生成し(S71)、生成したDEV乱数をATM制御部112に送信する(S72)。
ATM制御部112は、かかるDEV乱数を受信すると(S73)、勘定系ホストコンピュータ3から送信されてきたARPC、検証に必要な取引可否データと、このとき受信したDEV乱数とをカードリーダ制御部130に送信する(S74)。なお、図を簡素化するため、図15のステップS74〜ステップS77では、取引可否データの記載を省略する。
カードリーダ制御部130は、かかるARPC、取引可否データ及びDEV乱数を受信すると(S75)、ARPC、取引可否データをICカード21に送信すると共に(S76)、DEV乱数を全体制御用バッファ153(図10)に一時保存する。またICカード21は、かかるARPC、取引可否データを受信すると、このARPCの内容に基づき、取引可否データの正当性を検証し(S77)、ARPC検証結果(ARC)をATM制御部112に送信する(S78)。
ATM制御部112は、ICカード21からのARPC検証結果を受信すると(S79)、当該ARPC検証結果の内容を確認し、その内容が取引承認である場合は、新たに取引データを生成してICカード21に送信する(S80)。そしてICカード21は、この取引データを受信すると(S81)、取引を成立させてよい場合には「TC」を、取引拒絶の場合には「AAC」を取引検証結果として生成し、生成した取引検証結果をカードリーダ制御部130に送信する(S82)。
カードリーダ制御部130は、ICカード21から送信されてきた上述の取引検証結果として「TC」を受信すると(S83)、全体制御用バッファ153(図10)に保存されている出金額と、ステップS75で受信したDEV乱数とをカードリーダ暗号処理部132に送信する(S84)。なお、このとき全体制御用バッファ153(図10)に保存されていた出金額は、図5のステップS3でATM制御部112からICカード21に送信された取引データ62をカードリーダ13が仲介する際、上述のようにカードリーダ13のカードリーダ制御部130が当該取引データ62から抽出して全体制御用バッファ153に格納しておいたものである。あるいは、全体制御用バッファ153ではなく、予めカードリーダ暗号処理部のデータ領域174に格納しておいてもよい。
そしてカードリーダ暗号処理部132は、これら出金額及びDEV乱数を受信すると(S85A)、DEV乱数をDEV乱数173(図11)としてメモリ161(図11)に格納すると共に、出金額を出金額174(図11)としてメモリ161に格納し、この後、これらDEV乱数及び出金額と、紙幣処理部暗号処理部182(図14)との間で共有されている暗号鍵とを用いて出金額信用情報を生成し(S85B)、生成した出金額信用情報をカードリーダ制御部130に送信する(S86)。
またカードリーダ制御部130は、この出金額信用情報を受信すると(S87)、取引検証結果及び出金額信用情報をATM制御部112に送信する(S88)。
ATM制御部112は、この取引検証結果と出金額信用情報を受信すると(S89)、図5のステップS22と同様にして紙幣出金コマンドを生成し(S90)、生成した紙幣出金コマンドを出金額信用情報と共に紙幣処理部113に送信する(S91)。
そして紙幣処理部113は、かかる紙幣出金コマンド及び出金額信用情報を受信すると、紙幣出金コマンドに含まれる紙幣金種と枚数の情報を取り出し、出金紙幣の合計金額である出金額を紙幣処理部制御部180(図13)の全体制御ファームウェア200(図13)により計算する。そして、ステップS91でATM制御部112から送信された出金額信用情報と、上述のようにして計算した出金額とを紙幣処理部暗号処理部182(図14)に送信して、これらを出金額224(図14)及び出金額信用情報225(図14)としてメモリ211(図14)に格納する(S92)。
紙幣処理部暗号処理部182は、その後、紙幣処理部暗号処理部182のメモリ211に格納した出金額224及び出金額信用情報225間に矛盾がないか否かをメモリ211(図14)に格納されているDEV乱数223(図14)を用いて検証する(S93)。例えば、出金額信用情報がメッセージ認証コード、あるいは、電子署名の形で実現されている場合は次の手順で検証を行う。まず、DEV乱数223と出金額224を連結して、その連結データのハッシュ値を計算する。一方、カードリーダ暗号処理部132との間で共有されている暗号鍵を用いて出金額信用情報を復号する。その復号されたデータと前記のハッシュ値が一致すれば検証成功と判断し、一致しない場合は検証失敗と判断する。そして紙幣処理部113は、検証が成功した場合には、紙幣処理部制御部180(図13)の紙幣搬送機構制御ファームウェア201(図13)により紙幣出金コマンドに含まれた金種と枚数の紙幣を出金する(S94)。
(1−3)第1の実施の形態の効果
以上のように本実施の形態の自動取引システム110では、紙幣処理部113が、カードリーダ114からATM制御部112を介して与えられた出金額信用情報に基づく出金額と、ATM制御部112から与えられた紙幣出金コマンドに含まれる紙幣金種及びその枚数に基づく出金額とを比較し、これらに矛盾がない場合に紙幣出金コマンドに基づいて出金処理を実行する。
従って、本自動取引システム110によれば、ATM制御部112のATMアプリケーション40(図8)がマルウェアに犯されて、ATM制御部112から取引の裏付けのない不正な紙幣出金コマンが紙幣処理部113に送信されたとしても、当該紙幣出金コマンドに含まれる紙幣金種及びその枚数が取引の裏付けデータである出金信用情報と矛盾する内容となるため(つまり紙幣出金コマンドに含まれる紙幣金種及びその枚数に基づく合計金額と、出金信用情報に基づく出金額とが一致しない)、紙幣処理部113が当該紙幣出金コマンドに基づく出金処理を行わない。
よって本実施の形態によれば、図8のATMアプリケーション40や、I/O制御部制御ソフトウェア41及び紙幣処理部制御ソフトウェア126などのデバイス制御ソフトウェアがマルウェアにより不正改ざんされたとしても不正処理が行われない、信頼性の高い自動取引装置を実現できる。
(2)第2の実施の形態
図7において、230は第2の実施の形態による自動取引システムを示す。この自動取引システム230は、出金取引処理時におけるATM231のATM制御部232の処理内容が異なる点を除いて概ね第1の実施の形態による自動取引システム1と同様に構成されている。
実際上、本実施の形態による自動取引システム230では、出金取引処理時、カードリーダ233のカードリーダ暗号処理部240(図9)で生成された出金額信用情報を紙幣処理部234(図7)に直接送信するのではなく、暗号化ピンパッド235(図7)経由で紙幣処理部234に送信する。つまり本自動取引システム230では、カードリーダ233のカードリーダ暗号処理部240と暗号化ピンパッド235との間で暗号鍵共有やセッションを生成すると共に、暗号化ピンパッド235と紙幣処理部234、具体的には紙幣処理部暗号処理部182(図14)との間でも別の暗号鍵共有やセッションを生成する。
このように、暗号化ピンパッド235を途中に経由させることにより、暗号化ピンパッド235に元々実装されている暗号機能を利用し、デバイス間通信の暗号化や、ATM231と勘定系ホストコンピュータ3の間の電文を暗号で保護することが可能となる。
本実施の形態による自動取引システム230では、出金取引処理時における図15の15−A及び15−Cの領域で示される処理の内容は第1の実施の形態と同じなので、第1の実施の形態と異なる図15の15−Bに相当する処理の流れのみを図16に示す。
この場合、ATM制御部232は、紙幣処理部234からのDEV乱数を受信すると(図15のS73)、EPP(Encrypting Pin Pad)乱数生成の要求を暗号化ピンパッド235に送信する(S100)。また暗号化ピンパッド235は、この要求を受信すると、その内部でEPP乱数を生成し(S101)、生成したEPP乱数をATM制御部232に送信する(S102)。
ATM制御部232は、このEPP乱数を受信すると(S103)、勘定系ホストコンピュータ3から送信されてきたARPC、検証に必要な取引可否データ、ステップS103で受信したEPP乱数とを合わせてカードリーダ制御部241に送信する(S104)。なお、図を簡素化するため、図16のステップS104〜S107では取引可否データの記載を省略する。
またカードリーダ制御部241は、これらARPC、取引可否データ及びEPP乱数を受信すると(S105)、受信したARPC、取引可否データをICカード21に送信する(S106)。そしてICカード21は、かかるARPC、取引可否データを受信すると、ARPCの内容に基づき取引可否データの正当性を検証し(S107)、ARPC検証結果をATM制御部232に送信する(S108)。
ATM制御部232は、このARPC検証結果を受信すると(S109)、当該ARPC検証結果の内容を確認し、その内容が取引承認である場合は、新たにICカード21の要求に合う取引データを生成してICカード21に送信する(S110)。そしてICカード21は、この取引データを受信すると(S111)、その取引を成立させてもよい場合には「TC」を、取引拒絶の場合には「AAC」を内容とする取引検証結果を生成し、生成した取引検証結果をカードリーダ制御部241に送信する(S112)。
カードリーダ制御部241は、かかる取引検証結果を受信すると(S113)、全体制御用バッファ153(図10)に保存されている出金額と、ステップS105で受信したEPP乱数とをカードリーダ暗号処理部240に送信する(S114)。なお、このとき全体制御用バッファ153(図10)に保存されていた出金額は、図5のステップS3でATM制御部232からICカード21に送信された取引データ62をカードリーダ233が仲介する際、上述のようにカードリーダ233のカードリーダ制御部241が当該取引データ62から抽出して全体制御用バッファ153に格納しておいたものである。
そしてカードリーダ暗号処理部240は、これら出金額及びEPP乱数を受信すると(S115A)、このEPP乱数と、暗号化ピンパッド235との間で共有されている暗号鍵とを用いて、EPP出金額信用情報を生成し(S115B)、生成したEPP出金額信用情報をカードリーダ制御部241に送信する(S116)。
カードリーダ制御部241は、このEPP出金額信用情報を受信すると(S117)、取引検証結果、出金額及びEPP出金額信用情報をATM制御部232に送信する(S118)。またATM制御部232は、これら取引検証結果、出金額及びEPP出金額信用情報を受信すると(S119)、DEV乱数と共に出金額及びEPP出金額信用情報を暗号化ピンパッド235に送信する(S120)。
暗号化ピンパッド235は、ATM制御部232からのDEV乱数、出金額及びEPP出金額信用情報を受信すると(S121)、S93と同様な処理により、出金額、EPP出金額信用情報を検証する(S122)。そして暗号化ピンパッド235は、この検証の検証結果が正しいときには、DEV乱数及び出金額と、紙幣処理部234との間で共有されている暗号鍵とを用いて、出金額信用情報を生成し(S123)、生成した出金額信用情報をATM制御部232に送信する(S124)。
かくしてATM制御部232がこの出金額信用情報を受信すると(S125)、この後、図15について上述した第1の実施の形態のステップS90以降の処理が実行され、これにより紙幣処理部234から必要な額の紙幣が出金される。
以上のように本実施の形態の自動取引システム230では、カードリーダ233のカードリーダ暗号処理部240で生成された出金額信用情報を暗号化ピンパッド235経由で紙幣処理部234に送信し、紙幣処理部234が、この出金額信用情報に基づく出金額と、ATM制御部232から与えられた紙幣出金コマンドに含まれる紙幣金種及びその枚数に基づく出金額とを比較し、これらに矛盾がない(一致する)場合に紙幣出金コマンドに基づいて出金処理を実行する。
従って、本自動取引システム230によれば、第1の実施の形態と同様に、ATM制御部232のATMアプリケーション40(図8)がマルウェアに犯されて、ATM制御部232から取引の裏付けの無い不正な紙幣出金コマンドが紙幣処理部234に送信されたとしても、当該紙幣出金コマンドに含まれる紙幣金種及びその枚数が取引の裏付けデータである出金信用情報と矛盾する内容となるため、紙幣処理部234が当該紙幣出金コマンドに基づく出金処理が行われない。
よって本実施の形態によれば、第1の実施の形態と同様に、図8のATMアプリケーション40や、I/O制御部制御ソフトウェア41及び紙幣処理部制御ソフトウェア126などのデバイス制御ソフトウェアがマルウェアにより不正改ざんされたとしても不正処理が行われない、信頼性の高い自動取引装置を実現できる。
(3)第3の実施の形態
次に、図17〜図21Bを用いて第3の実施の形態について説明する。図1との対応部分に同一符号を付して示す図17は、第3の実施の形態による自動取引システム250を示す。この自動取引システム250は、勘定系ホストコンピュータ251及び取引信用情報生成サーバ252がネットワーク253を介して接続されると共に、取引信用情報生成サーバ252がネットワーク4を介して1又は複数のATM254と接続されて構成される。また、取引信用情報生成サーバ252は、ATMの上位装置又はATMの外部にある外部コンピュータと呼ぶこともある。
ここで、本実施の形態の自動取引システム250では、カード媒体としてICカード21ではなく磁気カード255を用いる点が第1及び第2の実施の形態の自動取引システム110,230と大きく相違する。磁気カード255は、磁気ストライプに顧客の口座番号を特定する情報などを有する。
このため本実施の形態の自動取引システム250では、ICカード21が従来処理していた取引データに対するARQCの生成やARPCの検証をカードリーダ262のカードリーダ暗号処理部292(図20)が行う。また本自動取引システム250では、第1及び第2の実施の形態の自動取引システム1,230の勘定系ホストコンピュータ3が処理していたARQCの検証やARPCの生成を取引信用情報生成サーバ252が行う。本実施の形態の勘定系ホストコンピュータ251は、ICカード21との間の電子署名のやり取りはできないので、取引データ及び取引可否データのみを取り扱うことを想定する。
なお以下においては、第1の実施の形態と同様に、磁気カード255のカード番号の取得や本人確認のために必要な暗証番号の検証は既に完了しているものとする。また取引信用情報生成サーバ252及びカードリーダ262のカードリーダ暗号処理部292(図20)間と、カードリーダ暗号処理部292及び紙幣処理部261(図17)の紙幣処理部暗号処理部182(図14)間とで、電子署名や信用データのやり取りに必要な暗号鍵の共有やセッション生成は既に完了しているものとする。さらに磁気カード255のカード番号はカードリーダ暗号処理部292(図20)に既に格納されているとする。
図18は、取引信用情報生成サーバ252の構成を示す。取引信用情報生成サーバ252は、当該取引信用情報生成サーバ252全体の動作制御を司るCPU270と、例えば半導体メモリなどから構成されるメモリ271となどの情報処理資源を備えて構成される。
この場合、メモリ271の記憶領域は、プログラム領域272及びデータ領域273に区分されて管理されており、プログラム領域272には、アプリケーション280及び通信制御ファームウェア281が格納され、データ領域273には、取引データ282、ARQC283、取引可否データ284及びARPC285が格納される。
アプリケーション280は、取引信用情報生成サーバ252の全体制御を行う機能を有するソフトウェアであり、通信制御ソフトウェア281は、勘定系ホストコンピュータ251(図17)やATM254(図17)との間の通信制御を行う機能を有するソフトウェアである。なお取引データ282、ARQC283、取引可否データ284及びARPC285は、図3について上述した第1実施の形態の勘定系ホストコンピュータ3のメモリ71に格納される取引データ83、ARQC84、取引可否データ85及びARPC86と同じものであるため、ここでの説明は省略する。
また図19は、本実施の形態のカードリーダ262の構成を示す。このカードリーダ262は、カードリーダ制御部290、カード搬送・読取部291及びカードリーダ暗号処理部292を備えて構成される。カードリーダ制御部290及びカード搬送・読取部291は、図9について上述した第1の実施の形態によるカードリーダ114のカードリーダ制御部130及びカード搬送・読取部131とほぼ同様の構成を有するものであるため、ここでの説明は省略する。
図11との対応部分に同一符号を付した図20は、本実施の形態によるカードリーダ暗号処理部292のハードウェア構成及び出金取引時のデータ構成を示す。この図20からも明らかなように、本実施の形態のカードリーダ暗号処理部292では、メモリ161のデータ領域163にDEV乱数173、出金額174及び出金額信用情報175に加えて、ATC乱数301、取引データ302、ARPC303、取引可否データ304、ARPC305、ARPC検証結果306及び取引検証結果307が格納される。
なお、これらATC乱数301、取引データ302、ARPC303、取引可否データ304、ARPC305、ARPC検証結果306及び取引検証結果307は、第1の実施の形態においてはICカード21が保持する図4について上述したATC乱数103、取引データ104、ARPC105、取引可否データ106、ARPC107、ARPC検証結果108及び取引検証結果109と同様のものであるため、ここでの説明は省略する。
図21A及び図21Bは、本実施の形態による自動取引システム250における取引処理の流れを示す。ステップS130〜ステップS136の処理は、図5のステップS1〜ステップS7の処理と同様であるため、ここでの説明は省略する。ただし、図5ではICカード21がステップS4〜ステップS6の処理を行っていたが、図21A及び図21Bではカードリーダ暗号処理部292がその処理を行う点が相違する。
そして本自動取引システム250では、ステップS136の処理完了後、ATM制御部260が取引データ及びARQCを取引信用情報生成サーバ252に送信する(S137)。
取引信用情報生成サーバ252は、これら取引データ及びARQCを受信すると(S138)、受信したARQCを検証する(S139)。そして取引信用情報生成サーバ252は、かかる検証の結果、正しいという検証結果を得た場合には、取引データを勘定系ホストコンピュータ251に送信する(S140)。
そして勘定系ホストコンピュータ251は、この取引データを受信すると、従来の磁気カード255の取引と同様に、利用者の口座残高や与信情報を確認し、出金取引を行ってもよいか否かを検証した上で(S141)、取引可否データを取引信用情報生成サーバ252に送信する(S142)。
取引信用情報生成サーバ252は、かかる取引可否データを受信すると(S143)、それに対応するARPCを生成し(S144)、生成したARPCを取引可否データと共にATM254(図17)に送信する(S145)。
ATM254のATM制御部260は、このARPC及び取引可否データを受信すると(S146)、紙幣処理部261と協働してステップS147〜ステップS160の処理を、図15について上述した第1の実施の形態のステップS70〜ステップS83と同様に処理する。ただし、図15ではICカード21がステップS77、ステップS78、ステップS81及びステップS82の処理を行っていたのに対し、図21A及び図21Bでは、カードリーダ暗号処理部292が、対応するステップS154、ステップS155、ステップS158及びステップS159の処理を行う。ステップS161〜ステップS171の処理は、図15のステップS84〜ステップS94と同様の処理を行う。なお、図15と同様、図21AのステップS151〜ステップS154では取引可否データの記載を省略している。
以上のように本実施の形態の自動取引システム250では、紙幣処理部261が、カードリーダ262からATM制御部260を介して与えられた出金額信用情報に基づく出金額と、ATM制御部260から与えられた紙幣出金コマンドに含まれる紙幣金種及びその枚数とを比較し、これらに矛盾がない場合に紙幣出金コマンドに基づいて出金処理を実行する。
従って、本自動取引システム250によれば、第1の実施の形態と同様に、ATM制御部260のATMアプリケーション40(図8)がマルウェアに犯されて、ATM制御部260から取引の裏付けの無い不正な紙幣出金コマンドが紙幣処理部261に送信されたとしても、当該紙幣出金コマンドに含まれる紙幣金種及びその枚数に基づく出金額が取引の裏付けデータである出金信用情報に基づく出金額と矛盾する(不一致)内容となるため、紙幣処理部261が当該紙幣出金コマンドに基づく出金処理を行わない。
よって本実施の形態によれば、第1の実施の形態と同様に、図8のATMアプリケーション40や、I/O制御部制御ソフトウェア41及び紙幣処理部制御ソフトウェア126などのデバイス制御ソフトウェアがマルウェアにより不正改ざんされたとしても不正処理が行われない、信頼性の高い自動取引装置を実現できる。
(4)第4の実施の形態
次に、図7〜図14及び図22〜図24Bを用いて第4の実施の形態について説明する。本実施の形態は、第1の実施の形態の自動取引システム110におけるATM入金取引処理に関する実施形態である。
本実施の形態では、図8について上述したATM制御部112のデータ領域33に格納された各種データのうち、カード番号60、ATC乱数61、取引データ62、ARQC63、取引可否データ64、ARPC65、ARPC検証結果66、取引検証結果67、紙幣処理部制御データ68及び入金計数金額69と、入金計数金額信用情報123及び第1のCR乱数124とを用いる。
入金計数金額信用情報123は、入金計数金額69に対する信用情報であり、紙幣処理部113で第1のCR乱数124を用いて生成される。入金計数金額信用情報123は、入金計数情報又は取引データよりもセキュリティの高い情報である。第1のCR乱数124は、カードリーダ114のカードリーダ暗号処理部132(図11)で生成される乱数であり、紙幣処理部113(図7)で入金計数金額信用情報123を生成する際に用いられる。この乱数も他の乱数と同様に信用情報のリプレイ攻撃を防止するために使用される。
本実施の形態の場合、図11について上述したカードリーダ暗号処理部132のデータ構成が図22のようになる。カード番号310は、ICカード21に格納されているカード番号であり、ICカード21からカードリーダ制御部130(図10)経由で送られてくるデータである。第1のCR乱数311は、カードリーダ暗号処理部132で生成される乱数であり、紙幣処理部113で入金計数金額信用情報312を生成する際に用いられる。この乱数も他の乱数と同様に信用情報のリプレイ攻撃を防止するために使用される。入金計数金額信用情報312は、取引データ内入金額314に対する信用情報であり、紙幣処理部113で入金された紙幣の計数時に第1のCR乱数311を用いて生成される。
取引データ内入金先カード番号313は、ATM制御部112(図8)で生成される取引データに含まれるカード番号である。取引データの改ざんがなければ、ICカード21に格納されているカード番号と一致する。取引データ内入金額314は、紙幣処理部113で計数された入金紙幣の合計金額である。取引データ内カード番号、入金額検証結果315は、取引データ内のカード番号及び入金金額を、それぞれカード番号310及び入金計数金額信用情報312を用いて、データの改ざんがないか検証した結果である。
また本実施の形態の場合、図14について上述した紙幣処理部暗号処理部182のデータ構成が図23のようになる。第1のCR乱数320は、図22について上述した第1のCR乱数311と同じデータであり、カードリーダ暗号処理部132で生成され、紙幣処理部113で入金計数金額信用情報322を生成する際に用いられる。入金計数金額321は、紙幣処理部113で計数された入金紙幣の合計金額であり、取引データの改ざんが無ければ、図22について上述した取引データ内入金額314と同じデータである。入金計数金額信用情報322は、入金計数金額321に対する信用情報であり、第1のCR乱数320及び入金計数金額321と、カードリーダ暗号処理部132(図11)との間で共有されている暗号鍵などを用いて生成される。入金計数金額信用情報322は、入金計数金額信用情報312と同じデータである。入金計数金額信用情報332及び入金計数金額信用情報312は、入金計数情報又は取引データよりもセキュリティの高い情報である。
次に、自動取引システム110において実行されるATM入金取引処理の流れを図24A及び図24Bを用いて説明する。ここでは、カードリーダ暗号処理部132(図11)と紙幣処理部暗号処理部182(図14)との間で信用情報生成に必要な暗号鍵共有やセッション生成は予め完了していることを前提とする。また、図6A及び図6Bについて上述した従来のATM入金取引処理との違いは図6Aの6−Aの部分(ステップS30〜ステップS41)のみであり、図6A及び図6Bにおける6−Bの部分(ステップS43〜ステップS64)の処理は共通なので、ここでの説明は省略する。
まずカードリーダ制御部130は、ICカード21からカード番号が送信されると(S180)、それを受信し(S181)、受信したカード番号をカードリーダ暗号処理部132(図11)に送信する(S182)。カードリーダ暗号処理部132は、受信したカード番号をカード番号310(図22)としてメモリ161(図11)に格納する(S183)。その後、カードリーダ制御部130(図10)は、カード番号をATM制御部112(図8)に送信し(S184)、ATM制御部112は受信したカード番号をカード番号60(図8)としてメモリ31(図8)に格納する(S185)。
この後、ATM制御部112は、カードリーダ暗号処理部132(図11)に第1のCR乱数の生成を要求する(S186)。そしてカードリーダ暗号処理部132は、かかる要求に応じて第1のCR乱数を生成し(S187)、生成した第1のCR乱数をATM制御部112に送信する(S188)。
ATM制御部112は、かかる第1のCR乱数を受信すると(S189)、紙幣処理部113(図12)に対して入金計数コマンドと、そのとき受信した第1のCR乱数とを送信する(S190)。
紙幣処理部113は、かかる入金計数コマンド及び第1のCR乱数を受信すると(S191)、ATM111の入出金口に投入された入金紙幣を計数し(S192A)、入金計数金額に対して第1のCR乱数を用いて、紙幣処理部暗号処理部182にて入金計数金額信用情報を生成し(S192B)、生成した入金計数金額信用情報を入金計数金額と共にATM制御部112に送信する(S193)。
そしてATM制御部112は、かかる入金計数金額信用情報及び入金計数金額を受信すると(S194)、図6AのステップS39及びステップS40と同様にして、ATC乱数と、入金計数金額を含む取引データとを生成する(S195,S196)。その後、ATM制御部112は、生成したこれら取引データ及びATC乱数と、入金計数金額信用情報とをカードリーダ制御部130に送信する(S197)。
カードリーダ制御部130は、これら取引データ、ATC乱数及び入金計数金額信用情報を受信すると(S198)、取引データからそれに含まれるカード番号と入金額(入金計数金額に等しい)とを取り出して、入金計数金額信用情報と共にカードリーダ暗号処理部132に送信する(S199)。
またカードリーダ暗号処理部132は、これらカード番号、入金額及び入金計数金額信用情報を受信すると(S200)、ステップS183でメモリ161(図11)に格納したカード番号310(図22)と、そのとき受信したカード番号とが一致するか否か、及び、そのとき受信した入金額と、入金計数金額信用情報に基づく入金額とが一致するか否かを検証して検証結果を取引データ内カード番号、入金額検証結果315としてメモリ161(図11)に格納する(S201)。そしてカードリーダ暗号処理部132は、この後、かかる検証結果をカードリーダ制御部130に送信する(S202)。
カードリーダ制御部130は、この検証結果を受信すると(S203)、受信した検証結果に基づいてステップS204の処理を行うか否か判断する。そしてカードリーダ制御部130は、検証結果としてカード番号及び入金額が共に矛盾がない(取引データ内のカード番号及び入金額が共にそれぞれの信用情報が想定する値と一致する)ときにのみ、受信した取引データ及びATC乱数をICカード21に送信する(S204)。
かくしてICカード21がこれら取引データ及びATC乱数を受信すると(S205)、この後、図6A及び図6Bについて上述したステップS43以降の処理が実行される。
なお、ステップS203においてカード番号及び入金額の少なくとも一方が矛盾する(カード番号及び入金額の少なくとも一方が一致しない)ときには、カードリーダ制御部130がその旨をATM制御部112に通知し、ATM制御部112が警告等を表示部19に表示させるようにしてもよい。
以上のように本実施の形態の自動取引システム110では、紙幣処理部113で計数された紙幣金額以上の入金額をATM制御部112で生成して、カードリーダ制御部130に送信したとしても、取引データ中の入金額と入金計数金額信用情報に矛盾が生じするので、入金取引に必要なICカード21でのARQC生成が行われない。結果として、不正な入金額を用いて勘定系ホストコンピュータ3との間で入金取引を行うことはない。
加えて、本自動取引システム110では、正当な口座以外の口座に入金しようとして、ATM制御部112で不正なカード番号を含む取引データをカードリーダ制御部130に送信したとしても、カードリーダ114はICカード21から読み取ったカード番号を保存しており、それと照合することが可能である。そのため、正当な口座以外の口座に入金するためのARQC生成を防止することができ、当該口座以外の口座への不正入金が防止される。
よって本実施の形態によれば、図8のATMアプリケーション40や、I/O制御部制御ソフトウェア41及び紙幣処理部制御ソフトウェア126などのデバイス制御ソフトウェアがマルウェアにより不正改ざんされたとしても不正処理が行われない、信頼性の高い自動取引装置を実現できる。
(5)第5の実施の形態
図7〜図14及び図25〜図27Bを用いて第5の実施の形態について説明する。本実施の形態は、第1の実施の形態の自動取引システム110において、入金先の口座番号をICカード21から取得するのではなく、暗号化ピンパッド325(図7)を用いて入力する場合を想定する。すなわち、紙幣をATM111に投入して他の口座に送金する場合を想定する、ATM入金取引処理に関する実施形態である。
本実施の形態では、図8について上述したATM制御部112のデータ領域33に格納された各種データのうち、カード番号60、ATC乱数61、取引データ62、ARQC63、取引可否データ64、ARPC65、ARPC検証結果66、取引検証結果67、紙幣処理部制御データ68及び入金額69と、入金計数金額信用情報123、第1のCR乱数124及び第2のCR乱数125とを用いる。
本実施の形態の場合、図11について上述したカードリーダ暗号処理部132のデータ構成が図25のようになる。第1のCR乱数は紙幣処理部113で入金計数金額信用情報333を生成する際に用いられ、第2のCR乱数は暗号化ピンパッド115で送金先カード番号信用情報332を生成する際に用いられる。これらの乱数も他の乱数と同様に信用情報のリプレイ攻撃を防止するために使用される。
送金先カード番号信用情報332は、暗号化ピンパッド325を操作して入力された送金先カード番号が改ざんされてないことを、カードリーダ114(図9)のカードリーダ暗号処理部132(図11)が検証するために用いられる。送金先カード番号信用情報332は、第2のCR乱数331と、暗号化ピンパッド325を介して入力された送金先カード番号とを用いて生成され、暗号化ピンパッド325よりデータが送られてくる。送信先カード番号信用情報332は、送信先カード番号又は取引データよりもセキュリティを高めた情報である。入金計数金額信用情報333は、紙幣処理部113(図7)で計数された入金紙幣の合計金額である入金計数金額に対する信用情報であり、紙幣処理部113で第1のCR乱数330を用いて生成される。入金計数金額信用情報333は、入金計数金額又は取引データよりもセリティを高めた情報である。
取引データ内送金先カード番号334は、ATM制御部112(図7)で生成される取引データに含まれる送金先カード番号である。取引データ内入金額335は、取引データ内送金先カード番号334と同様に取引データに含まれる入金取引金額である。取引データ内送金先カード番号、入金額検証結果336は、取引データ内送金先カード番号334と取引データ内入金額335とを、それぞれ送金先カード番号信用情報332及び入金計数金額信用情報333を用いて改ざんされていないかを検証した結果である。
図26は、暗号化ピンパッド325の概略ハードウェア構成と、送金先カード番号を暗号化ピンパッド325で入力する機能に関わる部分のデータ構成を示す。この図26からも明らかなように、暗号化ピンパッド325は、当該暗号化ピンパッド325全体の動作制御を司るCPU340と、半導体メモリなどからなるメモリ341などの情報処理資源と、テンキーを有するピンパッド部342とを備えて構成される。
この場合、メモリ341の記憶領域は、プログラム領域343及びデータ領域344に区分されて管理されており、プログラム領域343には、アプリケーション350、通信制御ファームウェア351及び暗号処理ファームウェア352が格納され、データ領域344には、第2のCR乱数353、送金先カード番号354及び送金先カード番号信用情報355が格納される。
アプリケーション350は、暗号化ピンパッド325の全体制御を行う機能を有するソフトウェアであり、通信制御ファームウェア351はATM制御部112(図8)との間の通信制御を行う機能を有するソフトウェアである。また暗号処理ファームウェア352は、信用情報として電子署名の生成や検証などを行う機能を有するファームウェアである。本暗号処理ファームウェア352は暗証番号(PIN)を暗号化する暗号化機能と兼用することが可能である。
また第2のCR乱数353は、送金先カード番号信用情報355の生成に必要な乱数であり、カードリーダ暗号処理部132(図11)において生成されて送信されてくる。送金先カード番号354は、暗号化ピンパッド325よりキー入力された送金先のカード番号である。送金先カード番号信用情報355は、第2のCR乱数353及び送金先カード番号354から生成され、カードリーダ制御部130(図10)に送信される取引データ内の送金先カード番号が改ざんされていないかを検証するために用いられる。
次に、自動取引システム110において実行される上述のATM入金取引処理の流れについて、図27A及び図27Bを用いて説明する。ここでは、カードリーダ114のカードリーダ暗号処理部132(図11)と、紙幣処理部113の紙幣処理部暗号処理部182(図14)との間で、又は、暗号化ピンパッド325とカードリーダ暗号処理部132との間で、それぞれ信用情報生成に必要な暗号鍵共有やセッション生成は予め完了していることを前提とする。また、図24AにおけるステップS180〜ステップS185の処理は本実施の形態と共通なので、説明を省略する。また、図24Aと同様に図6A及び図6BのステップS43〜ステップS64の処理は本実施の形態と共通なので、合わせて説明を省略する。
図24Aについて上述したステップS180〜ステップS185の処理の終了後、ATM制御部112は、カードリーダ暗号処理部132に対して第1のCR乱数及び第2のCR乱数の生成を要求する(S210)。
カードリーダ暗号処理部132は、かかる要求を受信すると、要求された第1のCR乱数及び第2のCR乱数を生成し(S211)、生成したこれらの第1及び第2のCR乱数をATM制御部112に送信する(S212)。またATM制御部112は、かかる第1及び第2のCR乱数を受信すると(S213)、カード番号入力コマンド及び第2のCR乱数を暗号化ピンパッド325に送信する(S214)。
暗号化ピンパッド325は、これらカード番号入力コマンド及び第2のCR乱数を受信すると、受信した第2のCR乱数を第2のCR乱数353(図26)としてメモリ341(図26)に格納する(S215)。また暗号化ピンパッド325は、送金先のカード番号をATM111の利用者に入力させ、入力された送金先のカード番号を送金先カード番号354(図26)としてメモリ341に格納する(S216A)。その後、暗号化ピンパッド325は、メモリ341に格納されている第2のCR乱数353(図26)と送金先カード番号354(図26)とを用いて、入力された送金先のカード番号に対する信用情報である送金先カード番号信用情報355(図26)を生成し(S216B)、生成した送金先カード番号信用情報355を送金先カード番号354と共にATM制御部112に送信する(S217)。
ATM制御部112は、かかる送金先カード番号354及び送金先カード番号信用情報355を受信すると(S218)、紙幣処理部113に対して入金計数コマンドと、ステップS213で受信した第1のCR乱数とを送信する(S219)。この後、ステップS219〜ステップS225が図24AのステップS190〜ステップS196と同様に実行される。そして、この後、ATM制御部112は、取引データ、送金先カード番号信用情報、入金計数金額信用情報、及び、ATC乱数をカードリーダ制御部130に送信する(S226)。
カードリーダ制御部130は、これら取引データ、送金先カード番号信用情報、入金計数金額信用情報、及び、ATC乱数を受信すると(S227)、受信した取引データから送金先カード番号と入金額とを取り出し、これらを送金先カード番号信用情報及び入金計数金額信用情報と共に、カードリーダ暗号処理部132に送信する(S228)。
カードリーダ暗号処理部132は、これら送金先カード番号、入金額、送金先カード番号信用情報及び入金計数金額信用情報を受信すると(S229)、取引データに含まれる送金先カード番号及び送金先カード番号信用情報に基づく送金先カード番号が矛盾しないか否か(一致するか否か)と、取引データに含まれる入金額及び入金計数金額信用情報に基づく入金額が矛盾しないか否か(一致するか否か)とをそれぞれ検証する(S230)。そしてカードリーダ暗号処理部132は、この後、検証結果をカードリーダ制御部130に送信する(S231)。
カードリーダ制御部130は、かかる検証結果を受信すると、この検証結果に基づいてS233の処理を実行すべきか否かを判断する(S232)。そしてカードリーダ制御部130は、かかる検証結果が送金先カード番号及び入金額のいずれにも矛盾がない(一致する)と判断した場合には、ステップS227で受信した取引データ及びATC乱数をICカード21に送信する(S233)。
かくしてICカード21がそれら取引データ及びATC乱数を受信すると(S233)、この後、図6A及び図6Bについて上述したステップS43以降の処理が実行される。
以上のように本実施の形態の自動取引システム110では、第4の実施の形態と同様に、紙幣処理部113で計数された金額以上の入金額をATM制御部112で生成して、カードリーダ制御部130に送信したとしても、カードリーダ114は取引データ中の入金額と入金計数金額信用情報に基づく入金額に矛盾が生じするので、不正な入金額を用いて勘定系ホストコンピュータ3との間で取引を行うことはない。
加えて、本自動取引システム110では、指定された口座以外の口座に入金しようとして、ATM制御部112で不正なカード番号を含む取引データをカードリーダ制御部130に送信したとしても処理が止まる。すなわち、暗号化ピンパッド325で生成された送金先カード番号信用情報に基づく送金先カード番号と取引データに含まれた送金先カード番号とが矛盾するので、指定された口座以外の口座に入金するためのARQC生成を防止することができ、当該口座以外の口座への不正入金が防止される。
よって本実施の形態によれば、第4の実施の形態と同様に、図8のATMアプリケーション40や、I/O制御部制御ソフトウェア41及び紙幣処理部制御ソフトウェア126などのデバイス制御ソフトウェアがマルウェアにより不正改ざんされたとしても不正処理が行われない、信頼性の高い自動取引装置を実現できる。なお、上述の実施形態における送金先のカード番号は、送金先を特定できる情報である送金先情報の一例であって、送金先の口座情報などであってもよい。
(6)他の実施の形態
なお上述の第1〜第5の実施の形態においては、ATM111,231,254を図7又は図17のように構成するようにした場合について述べたが、本発明はこれに限らず、ATM111,231,254の構成としてはこの他種々の構成を広く適用することができる。
また上述の第1〜第5の実施の形態においては、図15、図16、図21A及び図21B、図24A及び図24B、又は、図27A及び図27Bについて上述した処理の流れにより出金取引又は入金取引を行うようにした場合について述べたが、本発明はこれに限らず、本願発明の要旨を変更しない範囲において、この他種々の処理の流れで出金取引又は入金取引を行うようにしてもよい。特に、一部のデバイスを例に説明したが、本願発明の要旨を変更しない範囲において、他のデバイスを利用してもよい。また、信用情報の検証を行う際に、信用情報を復号化し、検証処理を実施してもよい。また、ICカードはカードリーダに挿入されて用いられるので、ICカードおよびカードリーダを一つのデバイスとみなしもよい。
また、第1〜第3の実施形態においては、図5にて説明した通り、利用者の操作で入力された出金額をピンパッドなどが受け付けるので、カードリーダで出金額信用情報を生成するのではなく、ピンパッドで出金額信用情報を生成してもよい。具体的には、ピンパッドが、利用者の操作により受け付けた出金額をピンパッドのメモリなどの記憶部に格納しておき、ピンパッドは、カードリーダ又はICカードが判断した取引可否の結果を受信し、ピンパッドの記憶部に格納しておいた出金額を、紙幣処理部と共有する第1の暗号鍵を用いて暗号化して出金額信用情報として、紙幣処理部に送信し、紙幣処理部は、全体制御部から送信される第1のコマンドに含まれる出金額に関する情報と、出金額信用情報とに矛盾がないとき(一致する)に、当該第1のコマンドに従って紙幣を出金することを特徴とする。より詳細には、第1の実施形態のS83〜S88、第3の実施形態のS160〜S165に対応する処理を、カードリーダ又はICカードの代わりにピンパッドで実施する。第2の実施形態では、S114〜S118のEPP出金額信用情報生成に関わる処理を行わず、代わりにS121において出金額ではなく取引検証結果を受信する。
さらに上述の第4及び第5の実施の形態においては、本願発明を第1の実施の形態の自動取引システム110に適用するようにした場合について述べたが、本発明はこれに限らず、例えば第2の実施の形態の自動取引システム230や第3の実施の形態の自動取引システム250に第4又は第5の実施の形態の内容を適用するようにしてもよい。
また、上述の第4及び第5の実施の形態においては、入金収納処理がある形態を用いて説明を行ったが、紙幣処理部が一時スタッカを有しない場合には、紙幣処理部は入金計数にて一時スタッカではなく、収納庫に紙幣を収納し、ATM制御部は、S58の取引検証結果にて入金可であった場合に、収納庫に収納した紙幣を銀行の管理対象と判断し(入金受け付け又は入金完了と判断し)、入金不可であった場合に、収納庫に収納した紙幣を顧客に返却してもよい。すなわち紙幣処理部12は、紙幣を一時スタッカから収納庫に搬送する紙幣収納処理をすることなく、入金処理を完了することとなる。
さらに上述の第5の実施の形態においては、入金の額を特定する情報と口座を特定する情報との両方に関して、信用情報の生成、検証を実施するようにした場合について述べたが、本発明はこれに限らず、入金の額を特定する情報と口座を特定する情報とのいずれか一方に関して実施するようにしてもよい。
さらに上述の第1〜第5の実施の形態においては、ATM制御部112,232,260を経由してデバイス間のデータのやり取りを行うようにした場合について述べたが、本発明はこれに限らず、デバイス間に物理的な結線を設け、ATM制御部112,232,260を経由せずにデバイス間で直接データのやり取りを行うようにしてもよい。
このようにデバイス間に物理的な結線を設け、ATM制御部を経由せずにデバイス間で直接データのやり取りを行う場合には、上記第1〜第5の実施形態同様、一の端末で生成又は取得した取引きに関する情報(出金額、入金額、入金先カード番号)を暗号化し第一の信用情報を生成し、他の端末が取引きに関する情報、あるいは、デバイス制御情報と第一の信用情報を取得し、取引き、あるいは、デバイス制御情報に関する情報と第一の信用情報を復号化して取得した取引き、あるいは、デバイス制御情報に関する情報の一致を確認し、一致した場合に、取引可、あるいは、デバイス制御可と判断し、ATM制御部に処理継続可の旨を通知してもよい。
具体的には、図15のS88〜S92にて、ATM制御部112を経由して、出金額信用情報をカードリーダ制御部130から送信し、紙幣処理部113で受信しているが、ATM制御部112を経由せずに、出金額信用情報をカードリーダ制御部130から送信し、紙幣処理部113で受信してもよい。
図16の場合は、S118〜S121にて、ATM制御部232を経由して、出金額信用情報をカードリーダ制御部241から送信し、暗号化ピンパッド235で受信しているが、ATM制御部232を経由せずに、出金額信用情報をカードリーダ制御部241から送信し、暗号化ピンパッド235で受信してもよい。さらに、S124〜S92(図15)にて、ATM制御部232を経由して、出金額信用情報を暗号化ピンパッド235から送信し、紙幣処理部234で受信しているが、ATM制御部232を経由せずに、出金額信用情報を暗号化ピンパッド235から送信し、紙幣処理部234で受信してもよい。
図21A、21Bの場合は、S165〜S169にて、ATM制御部260を経由して、出金額信用情報をカードリーダ制御部290から送信し、紙幣処理部261で受信しているが、ATM制御部260を経由せずに、出金額信用情報をカードリーダ制御部290から送信し、紙幣処理部261で受信してもよい。
図24A、24Bの場合は、S193〜S198にて、ATM制御部112を経由して、入金計数金額信用情報を紙幣処理部113から送信し、カードリーダ制御部130で受信しているが、ATM制御部112を経由せずに、入金計数金額信用情報を紙幣処理部113から送信し、カードリーダ制御部130で受信してもよい。
図27A、27Bの場合は、S217〜S227にて、ATM制御部112を経由して、送金先カード番号信用情報を暗号化ピンパッド325から送信し、カードリーダ制御部130で受信しているが、ATM制御部112を経由せずに、送金先カード番号信用情報を暗号化ピンパッド325から送信し、カードリーダ制御部130で受信してもよい。あるいは、S222〜S227にて、ATM制御部112を経由して、入金計数金額信用情報を紙幣処理部113から送信し、カードリーダ制御部130で受信しているが、ATM制御部112を経由せずに、入金計数金額信用情報を紙幣処理部113から送信し、カードリーダ制御部130で受信してもよい。
(7)各実施の形態の特徴
上述した第1〜第5の実施及びその他の実施の形態は、少なくとも以下の特徴を有している。
取引データそのものではなく、取引データに含まれる重要パラメータ(出金額、入金額、入金先カード番号)だけをデバイス間暗号通信で直接やり取りし、出金時には取引データの出金額と出金コマンドの出金額(=金種×紙幣枚数の合計)の矛盾(又は一致)を、入金(送金)時には取引データと入金計数結果や入金先カード番号との矛盾(又は一致)をデバイス側で検知することを特徴とする。
また、出金取引における金額に関する情報である金額情報を含む第一の出金取引データと、第一の出金取引データとに基づき紙幣の出金を指示する出金コマンドを生成する本体制御部(例えば、ATM制御部)と、出金コマンドを受信し、紙幣を出金する紙幣処理部と、紙幣処理部とは異なるデバイスであって、本体制御部から送信された第一の出金取引データ(例えば、金額情報)に基づき、出金の可否を判断する第一のデバイス(例えば、ICカード、カードリーダ、暗号化ピンパッドなど)とを有する自動取引装置であって、第一のデバイスは、出金可と判断した場合に、第一の出金取引データに基づき前記出金コマンドよりもセキュリティを高めた出金信用情報(例えば、出金額信用情報、EPP出金額信用情報)を生成し、紙幣処理部は、出金信用情報及び出金コマンドを受信し、出金信用情報及び前記出金コマンドに基づき、さらに出金の可否を判断し、出金可の場合に、紙幣を出金することを特徴とする。金額情報は、出金額、紙幣金種毎の枚数などを含んでよい。出金信用情報は、第一のデバイスにて暗号化され、紙幣処理部にて復号化されるものであってよい。また、出金信用情報には、金額情報に基づく出金の額を特定できる情報(例えば、出金額、出金金種毎の紙幣枚数など)を含んでもよい。また、紙幣処理部は、出金信用情報に基づく金額情報と出金コマンドに基づく金額情報の一致を判断し、一致する場合に出金可、不一致の場合に出金否と判断してもよい。上記実施形態では、出金額を中心に説明をしたが、出金金種毎の紙幣枚数は、出金額と同様、顧客からの入力情報に基づき取得し、出金額の代わりに又はと共に出金金種毎の紙幣の枚数を用いて第1〜第3の処理を行えばよい。
また、利用者により投入された紙幣を計数し、計数に基づく入金計数情報を生成する紙幣処理部と、入金計数情報を含む第一の入金取引データを生成する本体制御部(例えば、ATM制御部)と、紙幣処理部とは異なるデバイスであって、第一の入金取引データを受信し、第一の入金取引データに基づき利用者により投入された紙幣の入金取引可否を判断する第一のデバイス(例えば、ICカード、カードリーダ、暗号化ピンパッドなど)とを有する自動取引装置であって、紙幣処理部は、入金計数情報に基づき入金計数情報よりもセキュリティを高めた入金計数信用情報(例えば、入金計数金額信用情報)を生成し、第一のデバイスは、第一の入金取引データ及び入金計数信用情報に基づき、入金取引の可否を判断し、本体制御部は、第一のデバイスによる入金取引の可否を受信し、入金取引可であった場合に、計数された紙幣の入金の受け付ける(銀行に管理される紙幣として管理する)ことを特徴とする。入金計数情報は、紙幣処理部の計数に基づく入金額、紙幣金種毎の枚数などを含んでよい。入金計数信用情報は、紙幣処理部にて暗号化され、第一のデバイスにて復号化されるものであってよい。また、入金計数信用情報には、入金計数情報に基づく入金の額を特定できる情報(例えば、入金額、入金金種毎の紙幣枚数など)を含んでも良い。紙幣処理部は、入金信用情報に基づく入金計数情報と第一の入金取引データに含まれる入金計数情報の一致を判断し、一致する場合に入金取引可、不一致の場合に入金取引否と判断してもよい。上記実施形態では、入金額を中心に説明をしたが、入金金種毎の紙幣枚数は入金計数の際に紙幣処理部により計数された情報に基づき取得し、入金額の代わりに又は入金額と共に入金金種毎の紙幣の枚数を用いて第4、第5の処理を行えばよい。
また、送金先を特定する送金先情報の入力を受け付ける第一のデバイス(例えば、ICカード、カードリーダ、暗号化ピンパッドなど)と、第一のデバイスとは異なる第二のデバイス(例えば、ICカード、カードリーダ、暗号化ピンパッドなどのうち第一のデバイスとは異なるデバイス)と、送金先情報を含む第一の入金取引データを生成する本体制御部(例えば、ATM制御部)とを有する自動取引装置であって、第一のデバイスは、送金先情報に基づき送金先情報よりもセキュリティを高めた送金先信用情報(例えば、カード番号信用情報)を生成し、第二のデバイスは、第一の入金取引データと送金先信用情報とに基づき送金の可否を判定することを特徴とする。送金先情報は、例えば、送金先の口座番号などを含んでよい。送金先信用情報は、第一のデバイスにて暗号化され、第二のデバイスにて復号化されるものであってよい。また、送金先信用情報には、送金先情報に基づく送金先を特定できる情報(例えば、送金先の口座番号など)を含んでもよい。第二のデバイスは、送金先信用情報に基づく送金先情報と第一の入金取引データに含まれる送金先情報の一致を判断し、一致する場合に入金可、不一致の場合に入金否と判断してもよい。
また、取引に関する取引を特徴付けるデータ(例えば、入金の額を特定する情報、入金先の口座を特定する情報など)を受け付ける又は生成する第一のデバイス(例えば、紙幣処理部、暗号化ピンパッドなど)を有する自動取引装置であって、第一のデバイスとは異なる第二のデバイス(例えば、紙幣処理部、ICカード、カードリーダ、暗号化ピンパッドなどのうち第一のデバイスとは異なるデバイス)を有し、第一のデバイスは、取引を特徴付けるデータに基づく情報であって、取引を特徴付けるデータよりもセキュリティを高めた取引信用情報(例えば、入金計数金額信用情報、送金先カード番号信用情報)を生成し、第二のデバイス(例えば例えば、ICカード、カードリーダなど、)は、取引を特徴付けるデータと取引信用情報を受信し、取引を特徴付けるデータと取引信用情報とに基づき(取引を特徴付けるデータと、取引信用情報に基づく取引を特徴付けるデータとを比較し)取引の可否を判断することを特徴とする。第一のデバイスは暗号化し、第二のデバイスは復号化することによりことにより取引信用情報のセキュリティを高めてもよい。
また、さらに以下のような特徴を有してもよい。
出金取引時に、全体制御部は、利用者の操作に応じた出金額を含む第1の取引データをカードリーダに送信すると共に、要求された金額分の紙幣を出金すべき旨の第1のコマンドを前記紙幣処理部に送信し、カードリーダは、全体制御部から送信される前記第1の取引データから抽出され、取引の裏付けがなされた前記出金額を出力し、紙幣処理部は、全体制御部から送信される第1のコマンドに含まれる出金額に関する情報と、カードリーダから出力された出金額とに矛盾がないときに、当該第1のコマンドに従って紙幣を出金することを特徴とする。カードリーダは、取引の裏付けがなされた出金額を、紙幣処理部と共有する第1の暗号鍵を用いて暗号化して紙幣処理部に送信してもよい。また、カードリーダは取引の裏付けがなされた出金額を前記ピンパッドに送信し、前記ピンパッドは、カードリーダから送信されてきた出金額を、紙幣処理部と共有する第2の暗号鍵を用いて暗号化して紙幣処理部に送信し、紙幣処理部は、全体制御部から送信される第1のコマンドに含まれる出金額に関する情報と、前記ピンパッドから送信される出金額とに矛盾がないときに、当該第1のコマンドに従って紙幣を出金することを特徴とする。また、カードリーダは、外部コンピュータとの間でやり取りされる前記出金取引のための電文に関する電子署名及びメッセージ認証コードを処理するものであってもよい。
また、入金取引時に、全体制御部は、入金された紙幣を計数すべき旨の第2のコマンドを紙幣処理部に送信し、当該紙幣処理部の計数結果に基づく入金計数金額を含む第2の取引データをカードリーダに送信し、紙幣処理部は、第2のコマンドに基づく計数結果でなる入金計数金額を出力し、カードリーダは、全体制御部から送信される前記第2の取引データに含まれる入金計数金額と、紙幣処理部から出力された入金計数金額とに矛盾がないときに、入金取引を継続するための所定処理を実行することを特徴とする。
上述の特徴を有することにより、取引のセキュリティを高めることが可能となる。すなわち、デバイス間通信において、取引データに係る信用情報の生成、検証を行うことによりセキュリティを高めることが可能となる。より詳細には、出金の場合、ホストによる取引データに基づく取引の承認を受けた後のデバイス間通信において、取引データに係る信用情報の生成、検証を行うことにより、ホストによる承認を受けた後の取引データのセキュリティを高め、入金の場合、ホストによる取引データに基づく取引の承認を受ける前のデバイス間通信において、取引データに係る信用情報の生成、検証を行うことにより、ホストによる承認を受ける前の取引データのセキュリティを高めることで、各取引のセキュリティを高めている。