(57)【要約】【課題】ＩＣカードリーダライタからのカードアクセス鍵の漏洩を防止でき、更にＩＣカードリーダライタに強固なセキュリティ対策を施す必要がなくなる。【解決手段】上位機器１０は、鍵情報格納用セキュアメモリ１４にカードアクセス鍵を保持しており、更に耐タンパ筐体により、強固なセキュリティ対策を施している。そして、上位機器１０は、非接触ＩＣカード３との通信処理であって特に上記カードアクセス鍵を用いた暗号化／復号化処理を伴う相互認証処理を、カードリーダライタ２０を介して行う。カードリーダライタ２０は、基本的に、上位機器１０−非接触ＩＣカード３間の通信を中継するものであり、カードリーダライタ２０にはカードアクセス鍵は保持されない。【選択図】      図１
2010093663.tif 000002
【特許請求の範囲】
【請求項１】
カードリーダライタに上位機器が接続されたＩＣカードシステムであって、
前記上位機器は、
カードアクセス鍵を記憶するカードアクセス鍵記憶手段と、
該カードアクセス鍵を用いた暗号化通信によりＩＣカードとの相互認証処理を行う相互認証手段とを有し、
前記カードリーダライタは、
前記相互認証処理の為に前記上位機器−ＩＣカード間で送受信するパケットを、中継する中継手段を有することを特徴とするＩＣカードシステム。
【請求項２】
前記上位機器は、耐タンパ筐体を備える、または／及び、前記カードアクセス鍵記憶手段を耐タンパメモリとする、強固なセキュリティ対策が施されており、
前記カードリーダライタには前記強固なセキュリティ対策は施されていないことを特徴とする請求項１記載のＩＣカードシステム。
【請求項３】
前記上位装置は、更に、前記相互認証処理過程で得られた特定情報に基づいてセッション鍵を生成して、該セッション鍵を前記カードリーダライタへ送信するセッション鍵生成・送信手段を有し、
前記カードリーダライタは、更に、該セッション鍵生成・送信手段から渡されたセッション鍵を用いて、前記相互認証処理成功後の前記ＩＣカードに対するカードアクセス処理を、該セッション鍵を用いた暗号化通信により行うカードアクセス手段を有することを特徴とする請求項１または２記載のＩＣカードシステム。
【請求項４】
カードリーダライタに上位機器が接続されたＩＣカードシステムにおける該上位機器であって、
カードアクセス鍵を記憶するカードアクセス鍵記憶手段と、
前記カードリーダライタを介して任意のＩＣカードとの通信を行って、前記カードアクセス鍵を用いた暗号化通信により該ＩＣカードとの相互認証処理を行う相互認証手段と、
を有することを特徴とするＩＣカードシステムにおける上位機器。
【請求項５】
カードリーダライタに上位機器が接続されたＩＣカードシステムにおける該上位機器のコンピュータを、
カードアクセス鍵を記憶するカードアクセス鍵記憶手段と、
前記カードリーダライタを介して任意のＩＣカードとの通信を行って、前記カードアクセス鍵を用いた暗号化通信により該ＩＣカードとの相互認証処理を行う相互認証手段、
として機能させる為のプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ＩＣカードとの通信を仲介するＩＣカード・リーダ／ライタとその上位装置等から成るＩＣカードシステムに関する。
【背景技術】
【０００２】
従来より、カードリーダライタと上位機器とが接続されて成るＩＣカードシステム（カード利用機器という場合もあるものとする）が存在する。
カードリーダライタは、上位機器と顧客のＩＣカード間に位置し、カード認証、暗号化通信、カード情報のリードライトを、上位機器と連携して行ない、ＩＣカードとの通信に必要な電気的整合、通信電文の通信レートの整合、ＡＣＫ応答の送受信・通信タイムアウト監視等の通信に関与する下位レイヤの制御を行なうことで、ＩＣカードとのインタフェースを実現する機能を担う。さらに、上位装置に代行してカードとの通信手順の制御、通信電文の生成、一部データについてはその内容の生成及び判定を実施する場合もある。
【０００３】
セキュリティを伴うカードアクセスを実施する場合には、カードアクセス（実際のデータのリード／ライト等）を行う前にＩＣカードとの相互認証処理（暗号化処理等を伴う）が必要となり、その後の通信（上記カードアクセス）も暗号化されるのが一般的である。相互認証処理に係わる暗号化／復号化処理は、予め決められて登録されている所定のカードアクセス鍵を用いて実行される。一方、その後のカードアクセスにおける暗号化／復号化処理には、相互認証処理によって得られる所定データに基づいて一時的に生成される鍵（セッション鍵という）を用いて実行される。
【０００４】
上記相互認証処理に伴う暗号化／復号化に必要なカードアクセス鍵は、従来は以下の(１)、(２)等の例のようにカードリーダライタに登録されているか、もしくは必要になる都度、上位機器からカードリーダライタに渡される。
【０００５】
（１）カードリーダライタにカードアクセス鍵を登録しておき、ＩＣカードとの相互認証処理をカードリーダライタが行い、認証以降のＩＣカードへのリードライト処理も、カードリーダライタが行う。
【０００６】
（２）カードリータライタにはカードアクセス鍵は登録されていないが、上位機器に登録されている。ＩＣカードと認証する必要がある場合に、上位装置がカードリータライタにカードアクセス鍵を一時的に引渡し、カードリーダライタがＩＣカードとの相互認証処理を実施する。カードリーダライタに引き渡されたカードアクセス鍵は、認証完了後にカードリーダライタが放棄する場合と、カードリーダライタの電源が切断されるまで、あるいは消去指令を受取るまでカードリーダライタが保持する場合が想定される。認証以降のカードへのリードライト処理は、カードリーダライタが行う。
【０００７】
また、上位機器がインターネット等のネットワークを介してＩＣカード発行・運用会社等のサーバ装置（管理サーバという）に接続する構成であってもよい。管理サーバは、例えば、ＩＣカード決済処理に係わる各種情報（履歴等）や、暗号鍵（カードアクセス鍵等）の管理を行うサーバ装置である。特にカードアクセス鍵は、バージョンアップ等される場合があり、管理サーバはこのバージョンアップ版等の新たなカードアクセス鍵を、ネットワークを介して各上位機器へ配信するものである。あるいはカード利用機器側で運用中以外はカードアクセス鍵を消去している運用形態の場合には、定期的に（カード利用機器側の運用開始毎に）カードアクセス鍵をネットワークを介して上位機器へ配信する。上位機器は、配信されたカードアクセス鍵をカードリーダライタに渡して再登録させることに
なる。
【０００８】
また、特許文献１記載の従来技術が知られている。
特許文献１には例えばその図９等に相互認証処理手順が示されている。
【特許文献１】特許３８９７１７７号公報
【発明の開示】
【発明が解決しようとする課題】
【０００９】
上述したＩＣカードとの相互認証を行うために為の必要となるカードアクセス鍵は、通常、ＩＣカードの種類毎に異なるものであるが、換言すれば同種のＩＣカード全てに共通の鍵であるので、これが漏洩することは絶対に避けなければならない。
【００１０】
従来技術では、カードリーダライタにカードアクセス鍵を登録しておくか（上記（１）の場合）、もしくはカードアクセス鍵をカードリーダライタに引き渡すことになるため（上記（２）の場合）、何れにしてもカードリーダライタ内にカードアクセス鍵が保持されることになる。よって、カードリーダライタにカードアクセス鍵の漏洩を防止するための強固なセキュリティの仕組みが必要であった。例えば、カードリーダライタの筐体を耐タンパ筐体とし、更にカードアクセス鍵を記憶するメモリを耐タンパメモリとする等の強固なセキュリティ対策を施していた。
【００１１】
また、上記（２）の場合には上位機器にカードアクセス鍵が登録されるので、上位機器に対してもカードリーダライタと同様に、上記カードアクセス鍵の漏洩を防止するための強固なセキュリティの仕組みが必要であった。また、上記（１）の場合でも、管理サーバは、管理サーバから配信されたカードアクセス鍵を（一時的にせよ）保持することになるし、また上位機器はカードリーダライタに直接接続される機器であることも考えれば、やはり上記カードアクセス鍵の漏洩を防止するための強固なセキュリティの仕組みが必要であった。
【００１２】
上記の通り、従来では、カードリーダライタと上位機器を有するＩＣカードシステムにおいて、カードリーダライタと上位機器の両方に強固なセキュリティ対策を施す必要があり、コスト高となっていた。また、カードリーダライタに強固なセキュリティ対策を施しても、カードリーダライタ内にカードアクセス鍵が存在する以上、カードアクセス鍵が漏洩する可能性は０ではない。特に、一般的にカードリーダライタは上位機器に比べると比較的盗難され易い状況に置かれている場合が多く、カードリーダライタが盗難された場合、カードリーダライタからカードアクセス鍵が漏洩する危険性があった。
【００１３】
本発明の課題は、上位機器とＩＣカードリーダライタを有するＩＣカードシステムに係わり、ＩＣカードリーダライタからのカードアクセス鍵の漏洩を防止でき、更にＩＣカードリーダライタに強固なセキュリティ対策を施す必要がなくなるＩＣカードシステム等を提供することにある。
【課題を解決するための手段】
【００１４】
本発明のＩＣカードシステムは、カードリーダライタに上位機器が接続されたＩＣカードシステムであって、前記上位機器は、カードアクセス鍵を記憶するカードアクセス鍵記憶手段と、該カードアクセス鍵を用いた暗号化通信によりＩＣカードとの相互認証処理を行う相互認証手段とを有し、前記カードリーダライタは、前記相互認証処理の為に前記上位機器−ＩＣカード間で送受信するパケットを、中継する中継手段を有する。
【００１５】
上記構成のＩＣカードシステムでは、ＩＣカードとの相互認証処理の際に必要となるカ
ードアクセス鍵は、上位機器に登録されている。そして、上位機器がカードリーダライタを介してＩＣカードとの通信を行って、カードアクセス鍵を用いてＩＣカードとの相互認証処理を行う。カードリーダライタは、パケット中継処理を行うものであり、従来のような相互認証処理を行うものではなく、よってカードアクセス鍵を保持する必要はない。
【００１６】
よって、カードリーダライタからカードアクセス鍵が漏洩する可能性はなく、カードリーダライタからのカードアクセス鍵の漏洩を防止できる。
また、上記の様に、カードアクセス鍵は、上位機器が保持し、カードリーダライタが保持することはないので、カードリーダライタには従来のような強固なセキュリティ対策を施す必要はない。
【００１７】
すなわち、例えば、前記上位機器は、耐タンパ筐体を備える、または／及び、前記カードアクセス鍵記憶手段を耐タンパメモリとする、強固なセキュリティ対策が施されており、前記カードリーダライタには前記強固なセキュリティ対策は必要ない。よって、従来のように上位機器とカードリーダライタの両方に強固なセキュリティ対策が施す必要がある場合に比べてコスト削減効果が得られる。
【００１８】
また、例えば、前記上位装置は、更に、前記相互認証処理過程で得られた特定情報に基づいてセッション鍵を生成して、該セッション鍵を前記カードリーダライタへ送信するセッション鍵生成・送信手段を有し、前記カードリーダライタは、更に、該セッション鍵生成・送信手段から渡されたセッション鍵を用いて、前記相互認証処理成功後の前記ＩＣカードに対するカードアクセス処理を、該セッション鍵を用いた暗号化通信により行うカードアクセス手段を有する。
【００１９】
上記相互認証処理に比べて比較的軽い処理により短時間での処理が要求されるカードアクセス処理に関しては、セッション鍵をカードリーダライタに渡してカードリーダライタで実行させる。これにより、短時間での処理、及び上位機器の処理負荷を軽減させることが可能となる。
【発明の効果】
【００２０】
本発明のＩＣカードシステム等によれば、上位機器とＩＣカードリーダライタを有するＩＣカードシステムに係わり、ＩＣカードリーダライタからのカードアクセス鍵の漏洩を防止でき、更にＩＣカードリーダライタに強固なセキュリティ対策を施す必要がなくなる。
【発明を実施するための最良の形態】
【００２１】
以下、図面を参照して本発明の実施の形態について説明する。
図１は、本例のＩＣカードシステムの構成・機能ブロック図である。
本例のＩＣカードシステムは、基本的に図示の上位機器１０とカードリーダライタ２０とから成る（後述するように、これらをまとめて「カード利用機器」という場合もある）。また、本例のＩＣカードシステムは、上位機器１０はインターネット等のネットワーク１を介して管理サーバ２等の外部装置に接続する構成であってもよい。
【００２２】
管理サーバ２は上述したＩＣカード発行・運用会社等のサーバ装置等である。よって、管理サーバ２の動作は特に詳細には説明しないが、簡単に説明するならば、ＩＣカード決済処理に係わる各種情報（履歴等）や、暗号鍵（カードアクセス鍵等）の管理を行うものであり、特にカードアクセス鍵は、バージョンアップ等される場合があり、管理サーバ２はこのバージョンアップ版等の新たなカードアクセス鍵を、ネットワーク１を介して上位機器１０へ配信する。あるいはカード利用機器側で運用中以外はカードアクセス鍵を消去している運用形態の場合には、定期的に（カード利用機器側の運用開始毎に）カードアク
セス鍵をネットワーク１を介して上位機器１０へ配信する。
【００２３】
上位機器１０は、機器全体の動作制御を行なうＣＰＵ１１、ＣＰＵ１１に実行させる所定のアプリケーションプログラムが格納されているプログラムメモリ１２、処理中のデータを一時保管するデータメモリ１３、予め登録されるカードアクセス鍵等の各種鍵情報を記憶する鍵情報格納用セキュアメモリ１４、カードリーダライタ２０とリーダライタコマンドによる通信を行なうためのカードリーダライタ通信制御部１５及びカードリーダライタ接続Ｉ／Ｆ１６、システム全体を監視している管理サーバ２との通信を行なうためのネットワーク通信制御部１７及びネットワーク通信Ｉ／Ｆ１８等から構成されている。
【００２４】
また、カードリーダライタ２０は、当該カードリーダライタ２０全体の動作制御を行なうＣＰＵ２１、ＣＰＵ２１に実行させる所定のアプリケーションプログラムが格納されているプログラムメモリ２２、処理中のデータを一時保管するデータメモリ２３、非接触ＩＣカード３との非接触の通信を行なうためのＲＦ回路２４及びアンテナ２５、上位機器１０と通信を行なうための上位機器通信制御部２６及び上位機器接続Ｉ／Ｆ２７等から構成されている。
【００２５】
カードリーダライタ接続Ｉ／Ｆ１６と上位機器接続Ｉ／Ｆ２７とを接続することによって上位機器１０とカードリーダライタ２０とが接続され、カードリーダライタ通信制御部１５及び上位機器通信制御部２６によって上位機器１０−カードリーダライタ２０間の通信が行われる。尚、上位機器１０−カードリーダライタ２０間の通信は上記の通りリーダライタコマンドによる通信であるが、カードリーダライタ２０−非接触ＩＣカード３間の通信はカードコマンドによる通信である。これらについては後に説明する。
【００２６】
ここで、非接触ＩＣカード３との通信手順は、上記従来の特許文献１等に記載の様に、まず相互認証処理を行い、相互認証成功した場合にはカードアクセス処理（カード情報のリードライト等）を行う。相互認証処理は予め登録される所定のカードアクセス鍵を用いて行われる。相互認証成功後のリードライト処理等は相互認証処理の都度生成されるセッション鍵を用いて行われる。
【００２７】
ここで、本手法では、上記カードアクセス鍵をカードリーダライタ２０が保持することはない。すなわち、カードリーダライタ２０に予めカードアクセス鍵が登録されることは無いし、必要なときに上位機器１０がカードアクセス鍵をカードリーダライタ２０に渡すようなこともない。
【００２８】
本手法では、カードアクセス鍵は上位機器１０に登録される。これより、上位機器１０は、カードアクセス鍵の漏洩を防止するために、耐タンパ筐体によって保護されている。耐タンパ筐体は、図示しないが、例えば筐体の不正開封検知センサ等を有するものである。更に、鍵情報が格納されるメモリである上記鍵情報格納用セキュアメモリ１４は、メモリチップ自身に耐タンパ機能が付与されているセキュアメモリ（耐タンパメモリ）を使用している。つまり、強固なセキュリティ対策を施してある。尚、強固なセキュリティ対策の方法として、必ず耐タンパ筐体と耐タンパメモリの両方を用いなければならないというわけではなく、どちらか一方のみであってもよい。
【００２９】
また、尚、図示していないが、耐タンパ筐体に付与されている筐体の不正開封検知センサからの警報を受信すると、鍵情報格納用セキュアメモリ１４に記憶される鍵情報（特にカードアクセス鍵）を消去する機能も装備していることが望ましい。
【００３０】
一方、カードリーダライタ２０に関しては、上記の通りカードアクセス鍵が予め登録される訳ではないし、非接触ＩＣカード３との通信のときだけ上位機器１０からカードアク
セス鍵を渡されて一時的に保持するようなことも無い。つまり、カードリーダライタ２０にカードアクセス鍵が保持されることは一切無い。よって、カードリーダライタ２０からカードアクセス鍵が漏洩することはあり得ない。また、上位機器１０のような鍵情報漏洩に対する強固なセキュリティ対策（上記耐タンパ筐体や不正開封検知センサや耐タンパメモリ）を施す必要もない。
【００３１】
但し、カードリーダライタ２０に関しては、セッション鍵を一時的に記憶したり、場合によっては上位機器１０との間の通信の暗号化を行なうための上位機器１０との相互認証用の鍵が登録される場合があるため、図示していないが必要充分な情報漏洩対策は施される場合が一般的である（筐体による回路基板に対する解析防止、情報の暗号化保存、バスのスクランブル処理等）。しかし、カードリーダライタ２０には、上記耐タンパ筐体や耐タンパメモリのような強固なセキュリティ対策を施すことまでは必要ない。
【００３２】
上記の通り、カードアクセス鍵は上位機器１０が保持し、たとえ一時的であってもカードリーダライタ２０が保持することはない。これより、本手法では、任意の１つの非接触ＩＣカード３との一連の通信処理（セッション）において、カードアクセス鍵を用いる必要がある処理、すなわち上記相互認証処理に関しては、上位機器１０が行う。但し、上位機器１０は、非接触ＩＣカード３と直接通信を行うことはできないので、カードリーダライタ２０を介して行う。カードリーダライタ２０は、相互認証処理の際に上位機器１０−非接触ＩＣカード３間で送受信するパケットを、中継する処理機能部（不図示）を備える。
【００３３】
一方、相互認証成功後のＩＣカード３のデータ・リード／ライト処理等に関しては、上位機器１０が自己が生成したセッション鍵をカードリーダライタ２０に渡すことで、カードリーダライタ２０が行う。
【００３４】
尚、上記上位機器１０のプログラムメモリ１２には、ＩＣカード３との上記相互認証処理やセッション鍵を生成してカードリーダライタ２０に渡す処理等をＣＰＵ１１により実行させる為のアプリケーションプログラムが記憶されている。また、上記カードリーダライタ２０のプログラムメモリ２２には、上記セッション鍵を用いるカードアクセス処理（データ・リード／ライト処理等）や、上位機器１０−ＩＣカード３間の通信を中継する処理（パケット中継・転送処理）を、ＣＰＵ１１により実行させる為のアプリケーションプログラムが記憶されている。
【００３５】
このように、本提案手法では、上位機器１０は、カードアクセス鍵を保持すると共に、このカードアクセス鍵をカードリーダライタ２０に引き渡すことなく、カードアクセス鍵を用いた暗号化通信によりＩＣカード（本例では非接触ＩＣカード３）との相互認証処理を行う。また、この相互認証成功後の当該セッションにおける当該ＩＣカードとの間の通信（カードアクセス処理の為の通信）は、セッション鍵を用いた暗号化通信により行われる。
【００３６】
ここで、セッション鍵は、各セッション毎にそのセッションに限定して、ＩＣカードとカード利用機器の両方で一時的に生成される通信用秘匿鍵であり、それ故、ＩＣカードとカード利用機器の組合せが異なる場合には利用出来ないし、同じＩＣカードとカード利用機器間の通信であっても、セッションが中断した場合には、次回以降のセッションでは再利用出来ない鍵である。
【００３７】
このため、カードリーダライタ２０のセキュリティ性能が、強固なセキュリティ対策を施した場合に比べて劣っていることによってセッション鍵が漏洩したとしても、これは当該セッション終了後は利用する価値のない鍵情報となる。最悪、当該セッションを中断す
ることなく、カードアクセスを不正に引き継ぐことが可能であったとしても、当該セッションで使用されている１枚のＩＣカードに対してのみ、行われる不正となるため、鍵情報漏洩によるカードシステム全体（ＩＣカードシステムの意味ではなく、例えば管理サーバ２が管理するシステム全体）のセキュリティ崩壊と言った事態は回避することが可能となる。
【００３８】
更に、ＩＣカードを捕捉するためのポーリング処理や、ＩＣカードに対する実際のカードアクセス処理（リード／ライト処理等）は、カードリーダライタ２０が代行するため、上位機器１０側のプログラム処理の負荷増加分は抑えることが可能となる。
【００３９】
尚、上記“カード利用機器”とは、ここでは「上位機器１０＋カードリーダライタ２０」である。
また、本方式の場合、ＩＣカードとの相互認証処理の為のプログラムをカードリーダライタ２０に搭載する必要が無いため、カードリーダライタ２０が盗難等で解析された場合にカード認証のアルゴリズムが漏洩することも防止可能である。あるいは、複数のカード規格毎に異なる認証手順・認証時の暗号仕様をサポートする必要がある場合でも、カードリーダライタ２０に多くの対応機能を搭載する必要がない。
【００４０】
一般的に相互認証によるカードと利用機器間の認証のための暗号化情報の生成と、セッション鍵の生成アルゴリズムについては、多少時間が掛かっても安全性を重視した複雑な暗号方式等が採用されるが、生成されたセッション鍵によるその後のカードアクセスのための通信の暗号化は、比較的軽い処理により時間短縮することが要求されている。特に非接触ＩＣカードの場合には、ＩＣカードがカードリーダライタ２０と通信可能な距離に存在する間だけの、短時間のセッション中の通信に限定されると共に、通信の処理時間がカード利用者の利便性に関わるため、セッション鍵による暗号化処理については処理時間の短縮が重要視される傾向にある。
【００４１】
すなわちカードアクセス鍵とそれを使った認証処理のプロセスは、多数のカードとの認証を行なうための重要な情報であるために、そのセキュリティ対策が重要視されるが、生成されたセッション鍵とそれを用いたセッション中に限定した暗号化通信は、利便性にも配慮した取り扱いが求められる。
【００４２】
本手法によれば、まず、カードアクセス鍵がカードリーダライタから漏洩することを防止することができる。更に、カードリーダライタに対して耐タンパ筐体、耐タンパメモリ等の強固なセキュリティ対策を施す必要がなく、コスト削減効果も得られる。更に、認証処理後のカードアクセス処理に関しては、当該カードアクセス処理に用いられるセッション鍵をカードリーダライタに渡して、カードリーダライタによってカードアクセス処理を実行させるので、カードリーダライタによる中継処理は必要ない為に短時間での処理が可能となりカード利用者の利便性を損なうことがなく、且つ上位機器の処理負荷を軽減させることが可能となる。
【００４３】
以下、図２以降を参照して更に詳細に説明する。
図２は、カード利用機器−ＩＣカード間の概略的な通信シーケンス例である。
尚、図２に示す概略的なシーケンス自体は、従来技術と略同様であってよい。また、後述する図３に示す相互認証処理の処理内容自体も、従来技術と略同様であってよい（但し、上記の通り、相互認証処理は、従来ではカードリーダライタ２０が実行したが、本手法では上位機器１０が実行する）。
【００４４】
また、上記の通り、“カード利用機器”とは、ここでは「上位機器１０＋カードリーダライタ２０」であるが、物理的にＩＣカードとの通信を行うのはカードリーダライタ２０
である。また、尚、本例では、図１に示すように、ＩＣカードとして非接触ＩＣカード３を例に示しており、それ故、カードリーダライタ２０は非接触ＩＣカードリーダライタであることになるが、この例に限るものではなく、例えば接触型のＩＣカードに係るＩＣカードシステムに関しても本手法は適用可能である。但し、ここでは、非接触ＩＣカード３に係るＩＣカードシステムを例にして説明するものとする。尚、以下の説明では、非接触ＩＣカード３を単にＩＣカード３等という場合もある。
【００４５】
また、「非接触ＩＣカード」は、カード型の形態に限らず、例えばＩＣタグやリストバンド等の形態であってもよく、あるいはＩＣカード機能内蔵の携帯電話等の形態であってもよく、よってここでは「非接触ＩＣカード」という言葉は、これら各種形態を含むものであるものとする。そして、上記の通り、「ＩＣカード」とは、上記「非接触ＩＣカード」に限らず、接触型ＩＣカードも含まれる意味である。
【００４６】
図２に示すように、カード利用機器は、定期的にカード捕捉コマンドを発しており、これに対する応答（カード捕捉応答）がＩＣカード３から返って来ることでカードの存在を確認する。このカード捕捉コマンド、カード捕捉応答は、平文通信であってよく、特に暗号化等は必要ない。
【００４７】
カード利用機器は、カード捕捉応答を受信すると、予め決められて登録されているカードアクセス鍵を使って相互認証処理を実施する。この相互認証処理に係るカード利用機器−ＩＣカード３間の通信は、図示の通り、カード利用機器は、まず、第一相互認証コマンドを送信して、これに対するＩＣカード３からの第一相互認証応答を受信すると、続いて、第二相互認証コマンドを送信して、これに対するＩＣカード３からの第二相互認証応答を受信する。
【００４８】
上記相互認証処理は、カード利用機器、ＩＣカード３の双方で生成した乱数を、カードアクセス鍵によって暗号化して交換することで、双方で有するカードアクセス鍵が一致していることを確認することで、互いに正当な接続相手であることを確認するものであり、その詳細な処理例は上記特許文献１等に記載されており、後に図３を参照して説明するものとする。そして、認証ＯＫである場合には、カード利用機器、ＩＣカード３の各々で、上記交換した乱数に基づいて以降の通信を秘匿暗号化するためのセッション鍵を生成する。
これより、認証成功後のカードデータアクセスの為のコマンド／応答（図示のカードアクセスコマンド、カードアクセス応答）は、このセッション鍵によって暗号化されて送受される。
【００４９】
図３は、上記相互認証処理の一例を示す図である。ここでは、上記の通り、上記特許文献１等に記載の処理例を示している。
図示の処理は、概略的には、カード利用機器側で任意に生成された乱数RndAと、ＩＣカード３側で任意に生成された乱数RndBが、カード利用機器、カード双方で有するカードアクセス鍵Ka、Kbによって暗号化されて交換されるものである。双方で有するカードアクセス鍵Ka、Kbが同じであれば、自身の生成した乱数が相手より戻ってくることから、互いに相手が有するカードアクセス鍵が自身の有するカードアクセス鍵と同じであることを確認し、カードアクセス鍵が同じであることから互いに正当な通信相手であると判断する。
【００５０】
詳細には、まず、カード利用機器は乱数RndAを生成し（ステップＳ１）、このRndAを自己のカードアクセス鍵Kbによって暗号化して暗号化データ〔RndA〕Kbを生成し（ステップＳ２）、この〔RndA〕Kbを含む上記第一相互認証コマンドを生成して送信する（ステップＳ３）。
【００５１】
この第一相互認証コマンドを受信したＩＣカード３は、上記〔RndA〕Kbを自己のカードアクセス鍵Kbで復号化することでRndAを得て（ステップＳ２１）、このRndAをメモリ等に記憶すると共に（ステップＳ２２）、このRndAを自己のカードアクセス鍵Kaで暗号化して暗号化データ〔RndA〕Kaを生成する（ステップＳ２３）。更に、任意の乱数RndBを生成して（ステップＳ２４）、このRndBを自己のカードアクセス鍵Kaで暗号化して暗号化データ〔RndB〕Kaを生成する（ステップＳ２５）。そして、これら生成した〔RndA〕Ka及び〔RndB〕Kaを含む上記第一相互認証応答を生成して送信する（ステップＳ２６）。
【００５２】
カード利用機器は、上記第一相互認証応答を受信すると、まず、その〔RndA〕Kaを自己のカードアクセス鍵Kaで復号化して（ステップＳ４）、この復号化データを上記ステップＳ１で生成した（記憶しておく）RndAと比較して、一致するか否かを判定する（ステップＳ５）。もし不一致であれば認証失敗として本処理を終了する。一致する場合には、続いて、上記第一相互認証応答の〔RndB〕Kaを自己のカードアクセス鍵Kaで復号化してRndBを得て（ステップＳ６）、このRndBを自己のメモリ等に記憶すると共に（ステップＳ７）、このRndBを自己のカードアクセス鍵Kbによって暗号化して暗号化データ〔RndB〕Kbを生成し（ステップＳ８）、この〔RndB〕Kbを含む上記第二相互認証コマンドを生成して送信する（ステップＳ９）。
【００５３】
この第二相互認証コマンドを受信したＩＣカード３は、その〔RndB〕Kbを自己のカードアクセス鍵Kbで復号化して復号化データを得て（ステップＳ２７）、この復号化データを上記ステップＳ２４で生成した（記憶しておく）RndBと比較して一致するか否かを判定する（ステップＳ２８）。もし、不一致であれば、上記第二相互認証応答として相互認証ＮＧ応答を送信し（不図示）、本処理は終了する。一致する場合には、上記第二相互認証応答として相互認証完了（ＯＫ）応答を送信すると共に（ステップＳ２９）、上記ステップＳ２２で記憶したRndAと上記ステップＳ２４で生成した（記憶しておく）RndBとからセッション鍵Ksを生成する（ステップＳ３０）。
【００５４】
また、カード利用機器側でも同様にして、上記相互認証完了応答を受信すると、認証成功したものとして、ステップＳ１で生成した（記憶しておく）RndAとステップＳ７で記憶した（記憶しておく）RndBとからセッション鍵Ksを生成する（ステップＳ１０）。尚、セッション鍵Ksの生成方法は何でもよいが、カード利用機器側で生成するセッション鍵KsとＩＣカード３側で生成するセッション鍵Ksとが同じとなるようにする（例えば単純にKs＝RndA＋RndB等とする）。
【００５５】
この様に、カード利用機器とＩＣカード３の両方で、認証処理の際に交換された乱数RndA、RndBよりセッション鍵Ksを生成し、以降の通信はセッション鍵Ksによって暗号化することで秘匿化して行われる。
【００５６】
すなわち、以降、当該セッションの期間内は、上記ステップＳ１０、Ｓ３０で生成したセッション鍵Ksを用いて暗号化通信を行う。すなわち、カード利用機器側では、上記カードアクセスコマンドを上記ステップＳ１０で生成したセッション鍵Ksで暗号化して送信する。このコマンドを受信したカードリーダライタ２０は、上記ステップＳ３０で生成したセッション鍵Ksを用いて復号化する。同様に、上記カードアクセス応答は自己のセッション鍵Ksを用いて暗号化して送信し、カード利用機器は自己のセッション鍵Ksを用いてこの応答を復号化する。
【００５７】
このようにセッション鍵は、カード利用機器とＩＣカード間で相互認証を行なう毎に生成されるため、相互認証を行なう毎に異なる鍵が生成されることから、セッション鍵は、カード利用機器とＩＣカード間で相互認証が完了してから、ＩＣカード３がカードリーダライタ２０と通信可能な範囲から外れて動作を停止するまでの間に限定して有効な鍵情報
である。
【００５８】
よって、各ＩＣカードと通信する毎に異なるセッション鍵によって暗号化が行なわれるため、セッション鍵を不正取得することにより可能となる不正操作は、漏洩した鍵が使用される当該セッションの期間内（１つのＩＣカードとの通信）に限られることになる。一方、カードアクセス鍵は一般的には同種の全てのＩＣカードに共通であり、カードアクセス鍵が不正に取得された場合、当該ＩＣカードと同種の他のＩＣカードに対しても不正操作が行われる可能性がある（重大な不正操作が行われる可能性がある）。
【００５９】
このため、セッション鍵はカードアクセス鍵と比較して、漏洩に対するリスクが少ないことになる。本手法では、セッション鍵はそのセッションの期間（認証成功後の通信の期間）カードリーダライタ２０内に保持されるが、カードアクセス鍵はカードリーダライタ２０には一切保持させないことで、カードリーダライタ２０に対しては上位機器１０のような鍵情報漏洩に対する強固な対策（耐タンパ等）を施さなくても、上記の重大な不正操作に対してはこれを防止することができる。
【００６０】
図４は、本手法による上位機器−カードリーダライタ−ＩＣカード間の通信シーケンス例である。
尚、特に図示及び説明を行わないが、図示の通信シーケンスが実行される前段の処理として、上位機器１０−カードリーダライタ２０間において相互認証が行われ、以降のリーダライタコマンド通信（上位機器１０−カードリーダライタ２０間の通信）は暗号化されて行われる場合もある。
【００６１】
また、尚、通信シーケンス例、パケット構成例においては、ACK／NACKパケットについては言及していないが、通信仕様に準拠して付与されるケースと不要なケースがあるが、本発明においては、これは特に関係ないものであり、どちらであっても構わないし、特に説明しないものとする。
【００６２】
また、尚、上位機器１０−カードリーダライタ２０間の通信はリーダライタコマンドによって行われ、カードリーダライタ２０−ＩＣカード間の通信はカードコマンドによって行われる。カードコマンドのパケット構成例は図５（ａ）に示し、リーダライタコマンドのパケット構成例は図６（ａ）に示す。これらについては、後に説明する。
図４において、まずカード捕捉に関する通信処理は従来と同様であってよい。
【００６３】
すなわち、上位機器１０は、ＩＣカードとの通信を開始する際に、カードリーダライタ２０に対して上記リーダライタコマンドによるカード捕捉コマンドを送信する。カードリーダライタ２０は、このカード捕捉コマンドを受信すると、上記カードコマンドによるカード捕捉コマンドを継続的に送信する。
【００６４】
ＩＣカードが非接触ＩＣカード３の場合、カードリーダライタ２０による通信可能範囲にＩＣカード３が入ると、上記カードコマンドによるカード捕捉コマンドを受信したＩＣカード３は、カードコマンドによるカード捕捉応答をカードリーダライタ２０に返信する。ＩＣカード３からのカード捕捉応答を受信したカードリーダライタ２０は、上位機器１０に対して、リーダライタコマンドによるカード捕捉応答を送信する。
【００６５】
尚、本例では、上位機器１０からのカード捕捉コマンド（リーダライタコマンド）を受信したカードリーダライタ２０は、カード捕捉コマンド（カードコマンド）を、ＩＣカード３からの応答が返って来るまで複数回送信し続けているが、１回のリーダライタコマンド受信に対して、カードコマンドを１回のみ発行する場合もある。このような、１つのリーダライタコマンドに対して、対応するカードコマンドを１回のみ送信する処理や、複数
回あるいは複数種のコマンドを組合わせて送信するような処理は、カードリーダライタに搭載される機能に依存するが、本発明の本質には影響しない。
【００６６】
尚、これ以降の説明では、上記のような「リーダライタコマンドによる」、「カードコマンドによる」等の説明は逐一述べないが、上述したように、上位機器１０−カードリーダライタ２０間の通信は全てリーダライタコマンドで行われ、カードリーダライタ２０−ＩＣカード間の通信は全てカードコマンドで行われる。
【００６７】
カードの捕捉に成功した上位機器１０は、捕捉したＩＣカード３との相互認証処理を、カードリーダライタ２０を介して行う。上位機器１０は自身が保持しているカードアクセス鍵を使用して、図３で示した例のような手順で、ＩＣカード３との間で相互認証処理を実施する。
【００６８】
その際、上位機器１０とＩＣカード３の間にはカードリーダライタ２０が存在しているが、例えば上位機器１０からの相互認証コマンドに対してカードリーダライタ２０は、リーダライタコマンドからカードコマンドへの変換とパラメータ部（特に暗号化データ；例えば上記〔RndB〕Kb等）の中継は行うが、このパラメータ部自体には関与せずに（変換などしないで）そのままＩＣカード３に引き渡す動作を実行する。ＩＣカード３からの相互認証応答受信時も同様にして、カードリーダライタ２０は、カードコマンドからリーダライタコマンドへの変換とパラメータ部の中継は行うが、このパラメータ部自体には関与せずにそのまま上位機器１０に引き渡す動作を実行する。これらについては、後に詳細に説明する。
【００６９】
このような動作を行うことで、カードリーダライタ２０がカードアクセス鍵を保持していなくても、上位機器１０−ＩＣカード３間での相互認証処理を実行することが可能となる。そして特に、カードアクセス鍵がカードリーダライタ２０に渡されることなく、カードアクセス鍵で暗号化された乱数だけがカードリーダライタ２０を介してＩＣカード３と上位機器１０間で交換されるため、カードリーダライタ２０からカードアクセス鍵が漏洩するリスクが無くなる。
【００７０】
尚、既に図３で説明しているが、上記「上位機器１０からの相互認証コマンド」は、図４に示す第一相互認証コマンドと第二相互認証コマンドであり、これら各コマンドに応じてＩＣカード３は図示の第一相互認証応答、第二相互認証応答を返信するものである。
【００７１】
一般的に、非接触ＩＣカードに電子マネー等の価値情報を記憶させて決済処理に利用する場合、ＩＣカード利用者が自己のＩＣカードをカードリーダライタ２０に翳す（タッチする）ことで決済処理が行われる為、カードリーダライタ２０はレジ横等の顧客の手が届き易い場所に置かれている場合が多い。更に、カードリーダライタ２０は、通常、少なくとも上位機器１０に比べると非常に小型である。一方、上位機器１０は、具体例は例えばＰＯＳレジ端末であり、カードリーダライタ２０と比べると大型の機器であり、また金銭を保管する機能を有するため、盗難に対する対策が施されていることが一般的である。また、上記カードリーダライタ２０のようにＩＣカード利用者に操作させる必要はないので、ＩＣカード利用者の目に触れない場所に設置することが可能である。このように、カードリーダライタ２０は、上位機器１０に比べて盗まれ易い状況にある。
【００７２】
従来では、上位機器１０とカードリーダライタ２０の両方に対しても耐タンパ筐体や耐タンパメモリ等による強固なセキュリティ対策を施していたが、カードリーダライタ２０が盗まれた場合、カードリーダライタ２０からカードアクセス鍵が漏洩する可能性があった（内部に保持されているので、可能性は０ではない）。一方、本手法では、カードリーダライタ２０が（たとえ一時的であっても）カードアクセス鍵を保持することは無いので
、たとえカードリーダライタ２０が盗まれても、カードリーダライタ２０からカードアクセス鍵が漏洩する可能性はない。更に、本手法ではカードリーダライタ２０に対して上記の強固なセキュリティ対策を施す必要はないので、カードリーダライタ２０に関するコスト削減効果も得られる。
【００７３】
尚、図１に示す構成例では、１台の上位機器１０に対して１台のカードリーダライタ２０が接続されているが（１対１の関係）、この例に限るものではなく、１台の上位機器１０に対して複数台のカードリーダライタ２０が接続された構成であってもよい（１対多の関係）。この様な構成の場合には、従来であれば複数台のカードリーダライタ２０全てに対してそれぞれに強固なセキュリティ対策を施す必要があったが、本手法では必要ないので、上記コスト削減効果が更に顕著なものとなる。さらに、相互認証後のセッション鍵はカードリーダライタ２０に引き渡すため、１台の上位機器１０で複数のカードリーダライタ２０を制御する場合であっても、上位機器１０の処理負荷を軽減させる効果が顕著である。
【００７４】
尚、上位機器１０に関しては、カードアクセス鍵のバージョンアップや期限切れ等の為に管理サーバ２がネットワーク１を介して新たなカードアクセス鍵を上位機器１０に配信してくる場合がある。この為、従来のようにカードアクセス鍵をカードリーダライタが保持する構成であっても、上位機器に上記配信時にカードアクセス鍵が存在することになる等の理由により、上位機器に対して耐タンパ筐体や耐タンパメモリ等による強固なセキュリティ対策を施していた。
【００７５】
この様に、従来では、上位機器とカードリーダライタの両方に強固なセキュリティ対策を施す必要があったが、本手法によればカードリーダライタに対してはこの様な対策は必要なくなる。
【００７６】
図４の説明を続ける。
上位機器１０は、上述した動作によりＩＣカード３との相互認証処理を行い、相互認証に成功すると（ケース１とする）、あるいはその前に（ケース２とする）、相互認証処理において得られた乱数（上記RndA、RndB）に基づいて、上記セッション鍵Ksを生成する。そして、生成したセッション鍵Ksをカードリーダライタ２０へ送信する。
【００７７】
すなわち、上記ケース１の場合、上位機器１０は、相互認証に成功すると、上記セッション鍵Ksを生成し、これを図４に示すセッション鍵セットコマンドに含めて、カードリーダライタ２０へ送信する。これを受信したカードリーダライタ２０は、セッション鍵Ksを正常受信・セットしたことを通知する為のセッション鍵セット応答を返信する。
【００７８】
一方、上記ケース２の方法を用いる場合には、上記セッション鍵セットコマンド／応答の送受信は行わない。代わりに、第二相互認証コマンドにセッション鍵Ksを含めて送信する。すなわち、ケース２の場合、相互認証処理の途中の第二相互認証コマンド送信の段階で、上位機器１０はセッション鍵Ksを生成してこれをカードリーダライタ２０に渡す。この場合、未だ、相互認証成功が確定しているわけではないが、相互認証が成功することを前提として見込みで、セッション鍵Ksを生成してカードリーダライタ２０に引き渡す。よって、その後に、もし相互認証が失敗した場合には（第二相互認証コマンドに対してＩＣカード３が認証成功の応答を返さなかった場合等）、引き渡したセッション鍵は無効となる。
【００７９】
上記ケース１、ケース２の何れかの方法でカードリーダライタ２０にセッション鍵Ksを渡し、相互認証成功により正当なカードであることを確認した上位機器１０は、ＩＣカード３からのデータリード、ＩＣカード３へのデータライト等のカードアクセス処理を、カ
ードリーダライタ２０で実行させるために、図４に示すカードアクセスコマンド（リードコマンドやライトコマンド等）を、カードリーダライタ２０へ送信する。
【００８０】
上記カードアクセスコマンドを受信したカードリーダライタ２０は、上記何れかの方法で上位機器１０より入手したセッション鍵Ksによって、ＩＣカード３へのカードアクセスコマンドを暗号化する。ここで、相互認証成功した場合、ＩＣカード３側においても上記上位機器１０と同様に上記乱数（上記RndA、RndB）に基づくセッション鍵Ksの生成を行える。これより、上記カードアクセスコマンドを受信したＩＣカード３は、これを自己のセッション鍵Ksを用いて復号化する。そして、このカードアクセスコマンドに応じた処理を実行し（指定された領域からのデータ読出し、あるいは指定された領域へのデータ書き込み等）、この処理結果に基づき、更に自己のセッション鍵Ksを用いて、暗号化されたカードアクセス応答を生成して送信する。これを受信したカードリーダライタ２０は、このカードアクセス応答を自己のセッション鍵Ksを用いて復号化する。
【００８１】
上述したように、カードリーダライタ２０は、ＩＣカード３からのデータ・リード、あるいはＩＣカード３へのデータ・ライト等のカードアクセス処理を、上位機器１０からの指示に従って、セッション鍵Ksを用いた暗号化通信により実行する。
【００８２】
尚、図４に示す例では、カードリーダライタ２０は、上位機器１０からの１つのリーダライタコマンドに対して１つのカードコマンドを生成して送信するが、この例に限らない。例えば、カードリーダライタ２０に、予め１つのリーダライタコマンドに対して複数種類のカードコマンドを登録しておくことで、カードリーダライタ２０が、受信したリーダライタコマンドに対応する複数種類のカードコマンドを、順次、ＩＣカード３に送信する構成としてもよい。
【００８３】
上記構成の場合、例えば、図４に示す上位機器１０が送信するカードアクセスコマンドは、上述したリードコマンドまたはライトコマンドを意味するものではなく、文字通りの“カードアクセスコマンド”を意味するものであるとし、これを受信したカードリーダライタ２０は、不図示のリードコマンド送信とその応答受信、ライトコマンド送信とその応答の受信を、連続的に実行する等の処理が考えられる。
【００８４】
図５（ａ）は上記“カードコマンド”のパケット構成例である。つまり、カードリーダライタ２０−ＩＣカード３間の通信に用いられるパケットの構成例である。尚、この構成例に限定されるものではなく、通常は使用するＩＣカードの通信規格に準拠した構成となる。
【００８５】
図５（ａ）に示すカードコマンドパケット３０は、通信データの通信タイミングの同期を取るためのプリアンブル部３１、パケットの先頭部を検出するための同期コード部３２、カードコマンドのデータ量を示すデータ長３３、実際にカードリーダライタ２０−ＩＣカード３間で交換する各種コマンドデータ／応答データが格納されているカードコマンド部３４、通信途中でパケットデータがノイズ等で変化しなかったかを確認するためのチェックコード３５、通信の最後に付与されるポストアンブル部３６等から構成されている。
【００８６】
図４に示すカードリーダライタ２０−ＩＣカード３間で送受信される各種コマンド／応答は、上記カードコマンドパケット３０において上記カードコマンド部３４に格納されるコマンドデータ／応答データとして、図５（ｂ）〜（ｉ）に示す各種コマンドデータ／応答データの何れかが格納されたものである。
【００８７】
例えば、図４に示すカードリーダライタ２０がＩＣカード３へ送信する「カード捕捉コマンド」は、上記カードコマンドパケット３０において上記カードコマンド部３４に図５
（ｂ）に示すカード捕捉コマンド４０が格納されたものである。他の各種コマンド／応答についても同様であり、以下の図５（ｃ）〜（ｉ）の説明の際に説明するが、逐一説明しないが何れもカードリーダライタ２０−ＩＣカード３間の通信におけるコマンド／応答である。
【００８８】
以下、図５（ｂ）〜（ｉ）に示す各種コマンドデータ／応答データの構成例について説明する。尚、これらの構成例は一例であり、この例に限るものではない。
まず、図５（ｂ）に示すカード捕捉コマンド４０は、コマンド種別を示すコマンドコード（ここではカード捕捉コマンド・コマンドコード４１）と、捕捉するＩＣカード３の属性種別等を指定するためのパラメータであるコマンドパラメータ４２等から構成されている。
【００８９】
コマンドパラメータ４２は、例えば、捕捉したいカード種別を事前に指定することで、初めから応答させるＩＣカード３を絞り込むために指定するパラメータとなる。尚、非接触ＩＣカードを対象とした場合には、本パラメータ以外に、複数のＩＣカードからの一斉応答に対応するための応答タイムスロット数の指定等が含まれる場合があるが、本発明の本質には影響しないため、詳細説明は割愛する。
【００９０】
上記カード捕捉コマンドに対するＩＣカード３からの応答である、図４に示すカード捕捉応答は、上記カードコマンドパケット３０において上記カードコマンド部３４に図５（ｃ）に示すカード捕捉応答５０が格納されたものである。
【００９１】
図５（ｃ）に示すカード捕捉応答５０は、カード捕捉応答であることを示す応答コード（カード捕捉コマンド応答コード５１）、カードＩＤ５２で構成されている。カードＩＤは予め各ＩＣカード３毎に一意に設定・記憶されている識別コードであり、上記カードＩＤ５２は当該カード捕捉応答５０のパケットの送信元のＩＣカード３自身のカードＩＤである。カードＩＤ５２は、カード捕捉コマンドに応答するＩＣカード３が自身を識別させるために付与するものであり、上位機器１０がＩＣカード３との相互認証時に相互認証する対象となるＩＣカード３を指定するための識別情報となる（例えばこのカードＩＤ５２を後述する認証先カードＩＤ６２とする）。
【００９２】
図４に示す第一相互認証コマンドは、上記カードコマンドパケット３０において上記カードコマンド部３４に図５（ｄ）に示す第一相互認証コマンド６０が格納されたものである。
【００９３】
図５（ｄ）に示す第一相互認証コマンド６０は、コマンド種別を示すコマンドコード（ここでは第一相互認証コマンド・コマンドコード６１）、相互認証するＩＣカード３を指定するための認証先カードＩＤ６２、ＩＣカード３と認証する際の条件を示す認証用条件情報６３、認証用暗号化データＡ６４（図３の例では上記〔RndA〕Kb（乱数RndAをカードアクセス鍵Kbで暗号化したデータ））から構成されている。
【００９４】
上記認証用条件情報６３とは、ＩＣカード３と相互認証する際に当該ＩＣカード３の如何なる情報に対して認証を取るかを指定するためのパラメータであり、例えばカード内のどのサービスブロックをアクセスするための認証を実施するかを、指定するためのデータとなる。
【００９５】
図４に示す第一相互認証応答は、上記カードコマンドパケット３０において上記カードコマンド部３４に図５（ｅ）に示す第一相互認証応答７０が格納されたものである。
図５（ｅ）に示す第一相互認証応答７０は、第一相互認証コマンドに対する応答であることを示す応答コード（第一相互認証コマンド応答コード７１）、認証用暗号化データＢ
７２（図３の例の〔RndA〕Ka（乱数RndAをカードアクセス鍵Kaで暗号化したデータ））、及び認証用暗号化データＣ７３（図３の例の〔RndB〕Ka（乱数RndBをカードアクセス鍵Kaで暗号化したデータ））から構成されている。
【００９６】
尚、図示していないが、第一相互認証応答７０や後述する第二相互認証応答９０にも上記カードＩＤ５２が含まれていてもよい。同様に、後述する第二相互認証コマンド８０にも（図示していないが）上記認証先カードＩＤ６２が含まれていてもよい。
【００９７】
図４に示す第二相互認証コマンドは、上記カードコマンドパケット３０において上記カードコマンド部３４に図５（ｆ）に示す第二相互認証コマンド８０が格納されたものである。
【００９８】
図５（ｆ）に示す第二相互認証コマンド８０は、コマンド種別を示すコマンドコード（ここでは第二相互認証コマンド・コマンドコード８１）、認証用暗号化データＤ８２（図３の例の〔RndB〕Kb（乱数RndBをカードアクセス鍵Kbで暗号化したデータ））から構成されている。
【００９９】
図４に示す第二相互認証応答は、上記カードコマンドパケット３０において上記カードコマンド部３４に図５（ｇ）に示す第二相互認証応答９０が格納されたものである。
図５（ｇ）に示す第二相互認証応答９０は、第二相互認証コマンドに対する応答であることを示す応答コード（第二相互認証コマンド応答コード９１）、ＩＣカード３による認証結果を示す（認証ＯＫ／ＮＧ等）認証結果データ９２等から構成されている。
【０１００】
図４に示すカードアクセスコマンド（ここでは仮にカードリードコマンドであるものとする）は、上記カードコマンドパケット３０において上記カードコマンド部３４に図５（ｈ）に示すカードアクセスコマンド１００が格納されたものである。
【０１０１】
図５（ｈ）に示すカードアクセスコマンド１００（カードリードコマンド例）は、コマンド種別を示すコマンドコード（カードリードコマンド・コマンドコード１０１）、読出し対象を指定するためのリード対象部指定情報１０２等から構成されている。この指定情報１０２は、ＩＣカード３内のどの情報を読み出したいかを指定するための情報で、例えばカード内のメモリにおける読み出したいブロックのブロック番号等を指定する。尚、コマンドコード以外は一般的にはセッション鍵によって暗号化されて秘匿される。よって、上記リード対象部指定情報１０２は上記セッション鍵Ksによって暗号化された暗号化データである。
【０１０２】
図５（ｈ）に示すカードアクセスコマンド１００に対する応答であるカードアクセス応答１１０の構成例を図５（ｉ）に示す。尚、図示のカードアクセス応答１１０は上記カードコマンドパケット３０において上記カードコマンド部３４に格納される。
【０１０３】
図５（ｉ）に示すカードアクセス応答１１０は、上記カードリードコマンドに対する応答であることを示す応答コード（カードリードコマンド・応答コード１１１）、ＩＣカード３から読み出されたデータであるリードデータ１１２等から構成されている。尚、カードアクセスコマンドと同様に、応答コード以外はセッション鍵によって暗号化されて秘匿される場合が一般的である。よって、上記リードデータ１１２は、ＩＣカード３がリードデータを自己のセッション鍵Ksによって暗号化した暗号化データである。
【０１０４】
図６（ａ）は上記“リーダライタコマンド”のパケット構成例である。つまり、カードリーダライタ２０−上位機器１０間の通信に用いられるパケットの構成例である。尚、この構成例に限定されるものではなく、一般的にはカードリーダライタ２０と上位機器１０
間の通信インタフェイスの規格に適したパケット構成が適用される。
【０１０５】
図６（ａ）に示す例のリーダライタコマンドパケット１２０は、通信データの通信タイミングの同期を取るためのプリアンブル部１２１、パケットの先頭部を示すスタートコード部１２２、リーダライタコマンドのデータ量を示すデータ長１２３、実際に上位機器１０とカードリーダライタ２０間で交換する各種コマンドデータ／応答データが格納されているリーダライタコマンド部１２４、通信途中でパケットデータがノイズ等で変化しなかったかを確認するためのチェックコード１２５、通信の最後に付与されるポストアンブル部１２６等から構成されている。
【０１０６】
ここで、カードリーダライタ２０による上記カードコマンドからリーダライタコマンドへの変換は、上記図５（ａ）に示すパケット構成から上記図６（ａ）に示すパケット構成への変換である。同様に、カードリーダライタ２０による上記リーダライタコマンドからカードコマンドへの変換は、上記図６（ａ）に示すパケット構成から上記図５（ａ）に示すパケット構成への変換である。
【０１０７】
この変換処理に関しては、カードリーダライタ２０はそもそも従来よりＩＣカード３とは上記図５（ａ）に示すフォーマットのパケットで通信しており、同様に上位機器１０とは図６（ａ）に示すフォーマットのパケットで通信しているので、単に例えばＩＣカード３からの図５（ａ）のフォーマットのパケットを受信したら、その内容データを図６（ａ）のフォーマットのパケットにより上位機器１０へ送信すればよい。内容データとは、例えば上記データ長３３、カードコマンド部３４であり、これらをデータ長１２３、リーダライタコマンド部１２４として格納すればよい。但し、この例に限定されるものではない。尚、特にカードコマンド部３４／リーダライタコマンド部１２４における上記コマンドコード／応答コード以外の部分を、パラメータ部という場合もある。あるいは、そのなかでも特に暗号化データの部分を、パラメータ部という場合もある。
【０１０８】
また、同じコマンド／応答であっても、カードコマンド部３４におけるコマンドコード／応答コードと、リーダライタコマンド部１２４におけるコマンドコード／応答コードが同じであるとは限らないので、この場合にはコマンドコード／応答コードの変換も行う。
【０１０９】
例えば、図５（ｂ）、図６（ｂ）に示すカード捕捉コマンド４０、１３０を例にすると、“カードコマンド”においてカード捕捉コマンドを示すコード４１は例えば‘０１’であり、“リーダライタコマンド”においてカード捕捉コマンドを示すコード１３１は例えば‘0012’である等というように、同じ「カード捕捉コマンド」であってもコードが異なる場合もあり得る。各種コマンド／応答を示すコードは、予め“カードコマンド”、“リーダライタコマンド”それぞれにおいて決められているので、カードリーダライタ２０においてこれらをそれぞれ対応付けて記憶しておくことで（上記の例では、カード捕捉コマンドに関して‘０１’と‘0012’を記憶しておく）、上記コマンドコード／応答コードの変換を行うことができる。
【０１１０】
図４に示すカードリーダライタ２０−上位機器１０間で送受信される各種コマンド／応答は、上記リーダライタコマンドパケット１２０において上記リーダライタコマンド部１２４に格納されるコマンドデータ／応答データとして、図６（ｂ）〜（ｇ）、図７（ａ）〜（ｆ）に示す各種コマンドデータ／応答データの何れかが格納されたものである。
【０１１１】
例えば、図４に示す上位機器１０がカードリーダライタ２０へ送信する「カード捕捉コマンド」は、上記リーダライタコマンドパケット１２０において上記リーダライタコマンド部１２４に図６（ｂ）に示すカード捕捉コマンド１３０が格納されたものである。他の各種コマンド／応答についても同様であり、ここでは特に説明しないものとする。また、
逐一説明しないが、図６（ｂ）〜（ｇ）、図７（ａ）〜（ｆ）に示す各種コマンドデータ／応答データは、何れも、カードリーダライタ２０−ＩＣカード３間の通信におけるパケット１２０における各種コマンドデータ／応答データである。
【０１１２】
以下、図６（ｂ）〜（ｇ）、図７（ａ）〜（ｆ）に示す各種コマンドデータ／応答データの構成例について説明する。尚、これらの構成例は一例であり、この例に限るものではない。
【０１１３】
まず、図６（ｂ）に示すカード捕捉コマンド１３０は、コマンド種別を示すコマンドコード（ここではカード捕捉コマンド・コマンドコード１３１）、捕捉するＩＣカードの属性種別等を指定するためのコマンドパラメータ１３２等から構成されている。
【０１１４】
尚、図示の通り、本構成例では、上述したカードコマンドのカード捕捉コマンド４０と同様の構成となっている。これは、他の各種コマンド／応答に関しても同様である。すなわち、カードコマンドと同じコマンド名のリーダライタコマンドについては、カードコマンドと同様な構成を構成例としている。但し、この例に限るものではなく、構成が異なる場合もあってよい（上記のようなコマンドコード／応答コードのみが異なるという意味ではなく、構成自体が異なる意味）。
【０１１５】
本例では、上記のことから、図６（ｂ）〜（ｇ）、図７（ａ）〜（ｆ）に示す各種コマンドデータの構成例について、“カードコマンド”に関して同様の構成がある場合には、既に上記“カードコマンド”に関して説明済みであるので、ここでは詳細に説明することなく簡単に説明するのみとする。
【０１１６】
図６（ｃ）に示すカード捕捉応答１４０は、上記カード捕捉コマンド１３０に応答するＩＣカード３から返信され、その構成例としては、カード捕捉応答であることを示す応答コード（カード捕捉コマンド応答コード１４１）、そのＩＣカード自身のカードＩＤ１４２等で構成されている。
【０１１７】
図６（ｄ）に示す第一相互認証コマンド１５０は、コマンド種別を示すコマンドコード（ここでは第一認証コマンド・コマンドコード１５１）、相互認証するＩＣカードを指定するための認証先カードＩＤ１５２、ＩＣカードと認証するための条件である認証用条件情報１５３、認証用暗号化データＡ１５４（図３の例の〔RndA〕Kb等）から構成されている。
【０１１８】
図６（ｅ）に示す第一相互認証応答１６０は、第一相互認証コマンドに対する応答であることを示す応答コード（第一認証コマンド応答コード１６１）、認証用暗号化データＢ１６２（図３の例の〔RndA〕Ka等）及び認証用暗号化データＣ１６３（図３の例の〔RndB〕Ka等）から構成されている。
【０１１９】
図６（ｆ）に示す第二相互認証コマンド１７０は、コマンド種別を示すコマンドコード（ここでは第二認証コマンド・コマンドコード１７１）、認証用暗号化データＤ１７２（図３の例の〔RndB〕Kb等）から構成されている。また、上述したケース２の場合には、更に、図示のセッション鍵１７３も含まれる。
【０１２０】
セッション鍵１７３は上記の通り乱数RndAと乱数RndBとに基づいて生成される。すなわち、上位機器１０は、自身で生成した乱数RndAとＩＣカード３から取得した乱数RndBとからセッション鍵Ｋｓを生成してカードリーダライタ２０に引き渡すが、上記の通りケース２の場合には、この処理は相互認証処理完了前に行う為、セッション鍵Ｋｓを第二相互認証コマンド１７０に付加するものである。
【０１２１】
尚、上記ケース１，２の何れの場合でも、セッション鍵１７３が上位機器１０からカードリーダライタ２０へ送信される途中で漏洩する可能性も考えられ、これを防止するために、個別に秘匿化するための暗号化等の処理が追加される場合もあるが、これは本発明には特に関係ないので秘匿化処理の方式までは特定／説明しない。
【０１２２】
図６（ｇ）に示す第二相互認証応答１８０は、第二相互認証コマンドに対する応答であることを示す応答コード（第二認証コマンド応答コード１８１）、ＩＣカード３側での認証結果を示す認証結果データ１８２（ＯＫ／ＮＧに相当するデータ等）から構成されている。
【０１２３】
上記第一相互認証コマンド１５０、第一相互認証応答１６０、第二相互認証コマンド１７０、第二相互認証応答１８０に付与されているパラメータ部（コマンドコード／応答コード部以外の部分（特に暗号化データ））は、カードリーダライタ２０のコマンド中継処理によって、上述してあるように基本的には“カードコマンド”のパラメータ部としてそのまま“カードコマンド”に付与されてＩＣカード３へ送信される（同様にＩＣカード３からの“カードコマンド”による応答に付与されているパラメータ部は、“リーダライタコマンド”のパラメータ部にそのまま付与される）。
【０１２４】
但し、第二相互認証コマンド１７０において上記セッション鍵１７３がある場合については、このセッション鍵１７３はカードリーダライタ２０が記憶・保管するのであり、ＩＣカード３への“カードコマンド”には付与しない。
【０１２５】
一方、上記ケース１の場合には、相互認証中の通信内でセッション鍵Ｋｓをカードリーダライタ２０に引き渡すことはないので、第二相互認証コマンドのパラメータ部にセッション鍵情報は付与されていない。その代わりに図４で説明したセッション鍵セットコマンドによってセッション鍵Ｋｓが上位機器１０からカードリーダライタ２０に引き渡される。
【０１２６】
図７（ａ）にセッション鍵セットコマンドの構成例を示し、これに対する応答であるセッション鍵セット応答の構成例を図７（ｂ）に示す。
図７（ａ）に示す例のセッション鍵セットコマンド１９０は、コマンド種別を示すコマンドコード（ここではセッション鍵セットコマンド・コマンドコード１９１）、カードリーダライタ２０に引き渡すべきセッション鍵（鍵情報１９２）から構成されている。
【０１２７】
尚、既に述べた通り、図示のセッション鍵セットコマンド１９０は、上記リーダライタコマンドパケット１２０のリーダライタコマンド部１２４に格納されてパケット送受信されるものである（これは後述する図７（ｂ）〜図７（ｆ）の各コマンド／応答についても同様である）。また、尚、鍵情報１９２はセッション鍵が秘匿化（暗号化）されたものであってもよいが、鍵情報１９２の秘匿化処理については、上記第二相互認証コマンド１７０のセッション鍵１７３の場合と同様に、秘匿化処理の方式については特に特定／説明しない。
【０１２８】
図７（ｂ）に示す例のセッション鍵セット応答２００は、セッション鍵セットコマンドに対する応答であることを示す応答コード（セッション鍵セットコマンド応答コード２０１）、セッション鍵の引渡しに成功したか否かを示す、OK／NGに相当する結果データ２０２等から構成されている。
【０１２９】
上記図４に示すリーダライタコマンドとしてのカードアクセスコマンド、カードアクセス応答の構成例を２例、図７（ｃ）〜（ｆ）に示す。すなわち、図７（ｃ），（ｄ）は
カードアクセスコマンド、カードアクセス応答の構成例（その１）であり、図７（ｅ），（ｆ）はカードアクセスコマンド、カードアクセス応答の構成例（その２）である。
【０１３０】
まず、図７（ｃ），（ｄ）に示す構成例（その１）について説明する。
この構成例（その１）は、カードアクセスコマンドがＩＣカード３からデータを読み出すためのカードリードコマンドである場合の例である。
【０１３１】
図７（ｃ）に示すカードアクセスコマンド（１）２１０（カードリードコマンド例）は、コマンド種別を示すコマンドコード（ここではカードリードコマンド・コマンドコード２１１）、読出し対象を指定するための情報であるリード対象部指定情報２１２等から構成されている。
【０１３２】
また、上記コマンド２１０に対する上位機器１０への応答である、図７（ｃ）に示すカードアクセス応答（１）２２０（カードリードコマンド例）は、上記カードリードコマンド２１０に対する応答であることを示す応答コード（カードリードコマンド応答コード２２１、ＩＣカードから読み出されたリードデータ２２２から構成されている。尚、このリードデータ２２２は、上記セッション鍵による暗号化データであるリードデータ１１２を、カードリーダライタ２０が自己のセッション鍵によって復号化して得たものである。
【０１３３】
次に、図７（ｅ），（ｆ）に示す構成例（その２）について説明する。
この構成例（その２）は、カードリーダライタ２０で１つのリーダライタコマンドに対して複数のカードコマンドの処理を行う場合のコマンドとして、カードアクセスコマンドがカードライト＆リードコマンドである場合の例である。このカードライト＆リードコマンドは、ＩＣカード３におけるこのコマンドにより指定した情報（アドレス等）に対してデータの書き込みを行う処理、書き込み完了後に書き込みを行った部分の読み返しを行う処理、及び読み返したデータを上位機器１０に返信させる処理を、カードリーダライタ２０に実行させるための処理コマンドである。
【０１３４】
図７（ｅ）に示すカードアクセスコマンド（２）２３０（カードライト＆リードコマンド例）は、コマンド種別を示すコマンドコード（ここではカードライト＆リードコマンド・コマンドコード２３１）、書き込み及び読み返しを行うカード内の情報部位（アドレス等）を示すライト＆リード対象部指定情報２３２、書き込むべきデータであるライトデータ２３３等から構成されている。
【０１３５】
また、上記コマンド２３０に対する上位機器１０への応答である、図７（ｆ）に示すカードアクセス応答（２）２４０（カードライト＆リードコマンド例）は、カードライト＆リードコマンドに対する応答であることを示す応答コード（カードライト＆リードコマンド応答コード２４１）、ＩＣカードから読み返されたリードデータである読み返しデータ２４２等から構成されている。
【０１３６】
上記コマンド２３０を受信したカードリーダライタ２０は、上記各種処理をそれぞれ実行する為のパケット（“カードコマンド”パケット３０）を順次生成してＩＣカード３へ送信する。すなわち、まず、カードライトコマンドに上記指定情報２３２、ライトデータ２３３をパラメータとして付与したパケット３０を生成・送信し、続けて、カードリードコマンドに上記指定情報２３２をパラメータとして付与したパケット３０を生成・送信することで、書き込んだデータの読み返しを行う。そして、カードリーダライタ２０は、ＩＣカード３から返信される読み返しデータ（セッション鍵で暗号化されている）を、自己のセッション鍵で復号化することで、上記読み返しデータ２４２を取得して、これを上記カードアクセス応答（２）２４０に付加して上位機器１０へ送信する。
【０１３７】
尚、これら複数のカードコマンドを実行するリーダライタコマンド例は、本例に限定されるものではなく、各種組合せ及びカードリーダライタ２０による判断処理の付加が考えられる。
【０１３８】
ここで、図８〜図１１に、従来技術における通信シーケンス例やパケット構成例を示すことで、上述した本手法と従来技術との違いについて説明する。
尚、特に図示しないが、従来技術における上位機器、カードリーダライタにはそれぞれ符号４、５を与えるものとし、以下、上位機器４、カードリーダライタ５と記すものとする。尚、ＩＣカード自体は同じであってよいので、ＩＣカード３と記すものとする。
【０１３９】
上記の通り、従来では、上位機器４だけでなく、カードリーダライタ５にも、上位機器４と同様の強固なセキュリティ対策（耐タンパ筐体、耐タンパメモリ等）を施している。そして、カードリーダライタ５内の上記耐タンパメモリにカードアクセス鍵が記憶される。これは、予め登録されて記憶される場合と、上位機器４から渡されて一時的に記憶する場合とがある。何れの場合でも、従来では、カードリーダライタ５が、このカードアクセス鍵を用いてＩＣカード３との相互認証処理を実行していた。
【０１４０】
図８は、従来例（その1）における通信シーケンス例である。
従来例（その１）は、カードアクセス鍵がカードリーダライタ５に登録されている場合のシーケンス例である。
【０１４１】
尚、後述する従来例（その２）は、カードリータライタ５にはカードアクセス鍵は登録されていないが、必要なときに上位装置４からカードアクセス鍵を一時的に引渡す場合の例である。
【０１４２】
従来例（その１）の通信シーケンスでは、図８に示すように、まず、カード捕捉時に関しては図４に示す本手法と略同様であってよく、ここでは説明しない。
ＩＣカード３との相互認証時には、上位機器４からの相互認証実行指示により、カードリーダライタ５が、上記図３の処理を実行する。すなわち、例えば、カードコマンド、相互認証に必要な乱数生成、暗号化データの生成等を行う。また、ＩＣカード３からの応答内容の判定（その際、暗号化データの復号化も行う）、及びセッション鍵の生成も、カードリーダライタ５が内部処理として実行する。上位機器４に対しては相互認証の結果として成否結果を通知するだけになる。
【０１４３】
上記相互認証時の処理に関して上位機器４−カードリーダライタ５間あるいはカードリーダライタ５−ＩＣカード３間で送受信するコマンド／応答は、図８に示す例では、まず上位機器４がカードリーダライタ５へ相互認証コマンドを送信する。このコマンドを受信したカードリーダライタ５は、まず、第一相互認証コマンドを生成してＩＣカード３へ送信し、これに対するＩＣカード３からの第一相互認証応答を受信すると、続いて、第二相互認証コマンドを生成してＩＣカード３へ送信し、これに対するＩＣカード３からの第二相互認証応答を受信すると、この応答内容（上記成否結果）を含む相互認証応答を生成して上位機器４へ送信する。
【０１４４】
上記相互認証時の処理に関する暗号化データの生成や復号化は、上記の通りカードアクセス鍵はカードリーダライタ５が保持しているので、このカードアクセス鍵を用いて行う。
【０１４５】
上記相互認証処理は、例えば上述した図３の処理を行うものであり、従来例（その１）では図３に示すカード利用機器の処理を全てカードリーダライタ５が実行することになる。ＩＣカード３側の処理は図３に示す通りであり、本手法と同様であってよい。
【０１４６】
そして、上記相互認証処理の結果、認証成功した場合には、以降のカードアクセスコマンドによるカードアクセス処理に関しては、セッション鍵はカードリーダライタ５が生成できるので、本手法のような上位機器がセッション鍵を生成してカードリーダライタに渡す処理は必要なく、カードリーダライタ５は自己が生成したセッション鍵を用いて、本手法と同様のシーケンスでカードアクセス処理（カードデータのリード／ライト等）を実行する。
【０１４７】
図９（ａ）は、上記従来例（その1）における、上位機器４−カードリーダライタ５間の通信に用いられるリーダライタコマンドのパケット構成例である。
図示のリーダライタコマンドパケット２５０は、プリアンブル２５１、スタートコード２５２、データ長２５３、リーダライタコマンド部２５４、チェックコード２５５、及びポストアンブル２５６より成る。この様に、パケット構成自体は、上記図６（ａ）に示す本手法のリーダライタコマンドパケット１２０と同じであってよい。尚、特に図示しないが、従来例（その1）におけるカードコマンドパケットも、図５（ａ）に示す本手法のカードコマンドパケット３０と同じであってよい。
【０１４８】
ここで、カードコマンドパケットに関しては、そのカードコマンド部３４の構成も、本手法と同じであってよい。すなわち、上記図５（ｂ）〜（ｉ）の構成と同じであってよい。
【０１４９】
一方、リーダライタコマンドパケット２５０に関しては、そのリーダライタコマンド部２５４の構成が、本手法のリーダライタコマンド部１２４と異なる場合もあるので、これについて図９（ｂ）〜（ｇ）を参照して説明する。
【０１５０】
図９（ｂ）〜（ｇ）は、上記リーダライタコマンド部２５４に格納される各種コマンドデータ／応答データの構成例である。
まず、図９（ｂ）に示すカード捕捉コマンド２６０はカード捕捉コマンド・コマンドコード２６１、コマンドパラメータ２６２から成り、図９（ｃ）に示すカード捕捉応答２７０はカード捕捉コマンド・応答コード２７１、カードＩＤ２７２から成る。この様に、カード捕捉に関しては、本手法の上記図６（ｂ）、（ｃ）に示す構成と同様であってよい。
【０１５１】
本手法の構成例との差異は、基本的には相互認証コマンドに関する部分となる。
すなわち、本手法ではカードアクセス鍵が上位機器１０に登録されており且つカードリーダライタ２０に渡すことはないので、ＩＣカード３との相互認証に必要な乱数生成や、生成した乱数に対するカードアクセス鍵による暗号化処理等は、上位機器１０で実行されることになり、上位機器１０は上記図６（ｄ）〜図６（ｇ）に示すコマンド／応答を含むパケットを送受信することになる。
【０１５２】
一方、従来例（その１）の場合には、上記図８の説明で示したように、カードアクセス鍵がカードリーダライタ５に登録されているため、上位機器４はカードリーダライタ５に対して、カードと認証条件を指定して相互認証の開始を指示し、カードリーダライタ５から相互認証成否の結果を受取るだけになる。すなわち、図８で説明した相互認証コマンドを生成・送信して、相互認証応答を受信する。
【０１５３】
図９（ｄ）は、上記相互認証コマンドの構成例である。図示の相互認証コマンド２８０は、コマンド種別を示すコマンドコード（ここでは相互認証コマンド・コマンドコード２８１）、相互認証対象のＩＣカードを指定するための認証先カードＩＤ２８２、ＩＣカードと認証する際の任意の条件である認証用条件情報２８３から構成されている。上記のように上位機器４では認証のための暗号化乱数データは生成出来ないため、コマンド２８０
には暗号化乱数データがパラメータとして付与されることはない。
【０１５４】
図９（ｅ）に示す相互認証応答２９０は、相互認証コマンドに対する応答であることを示す応答コード（相互認証コマンド・応答コード２９１）、認証結果（ＯＫ／ＮＧ；成否）を示す認証結果データ２９２から構成されている。
【０１５５】
尚、図９（ｆ）、（ｇ）に示すカードアクセスコマンド３００（リードコマンド）、カードアクセス応答３１０の構成例は、上記本手法の図７（ｃ），（ｄ）の構成と同様である。尚、特に図示しないが、ライトコマンドについても同様である。図９（ｆ）に示すカードアクセスコマンド３００は、カードリードコマンド・コマンドコード３０１、リード対象部指定情報３０２より成る。図９（ｇ）に示すカードアクセス応答３１０は、カードリードコマンド応答コード３１１、リードデータ３１２より成る。
【０１５６】
図１０は、従来例（その２）における通信シーケンス例である。
ここでは、上記図８の従来例（その１）の通信シーケンスとの違いについてのみ説明する。
【０１５７】
上記の通り、従来例（その２）は、カードアクセス鍵が上位機器４に登録されているが、ＩＣカードとの通信を始める前の段階で、カードアクセス鍵をカードリーダライタ５に渡すものである。
【０１５８】
すなわち、図１０に示すように、上位機器４は、カード捕捉コマンドを送信する前の段階で、自己が保持するカードアクセス鍵を付加したカードアクセス鍵セットコマンドを、カードリーダライタ５へ送信する。このセットコマンドを受信したカードリーダライタ５は、カードアクセス鍵を取得して自己のメモリ（耐タンパメモリ）に記憶し、カードアクセス鍵セット応答を返信する。以降の通信シーケンスは従来例（その１）と同様となる。
【０１５９】
図１１（ａ）、（ｂ）に、上記カードアクセス鍵セットコマンド、カードアクセス鍵セット応答の構成例を示す。勿論、これらコマンド／応答は、図９（ａ）に示すパケットのリーダライタコマンド部２５４に格納されるものである。尚、他のコマンド／応答に関しては、上記従来例（その１）と同様であり、既に図９（ｂ）〜（ｇ）に示して説明してあるので、ここでは特に図示・説明はしない。
【０１６０】
図１１（ａ）に示すカードアクセス鍵セットコマンド３２０は、コマンド種別を示すコマンドコード（ここではアクセス鍵セットコマンド・コマンドコード３２１）と、カードリーダライタ５に渡すべきカードアクセス鍵である鍵情報３２２から成る。尚、鍵情報３２２の秘匿化に関しては、本手法におけるセッション鍵の秘匿化と同様に、詳細方式については言及しない。
【０１６１】
図１１（ｂ）に示すカードアクセス鍵セット応答３３０は、カードアクセス鍵セットコマンドに対する応答であることを示す応答コード（アクセス鍵セットコマンド・応答コード３３１）、カードアクセス鍵の記憶に成功したか否かを示す、OK／NGに相当する結果データ３３２から構成されている。
【０１６２】
本手法では、カードアクセス鍵をカードリーダライタに渡すことはないので、当然、上記のようなコマンド３２０、応答３３０を生成・送受信する処理は必要ない。
以上説明したように、本手法によれば、まず、カードアクセス鍵がカードリーダライタから漏洩することを防止することができる。更に、カードリーダライタに対して耐タンパ筐体、耐タンパメモリ等の強固なセキュリティ対策を施す必要がなく、コスト削減効果も得られる。更に、認証処理後のカードアクセス処理に関しては、当該カードアクセス処理
に用いられるセッション鍵をカードリーダライタに渡して、カードリーダライタによってカードアクセス処理を実行させるので、カード利用者の利便性を損なうことなく、且つ上位機器の処理負荷を軽減させることが可能となる。
【図面の簡単な説明】
【０１６３】
【図１】本例のＩＣカードシステムの構成・機能ブロック図である。
【図２】カード利用機器−ＩＣカード間の概略的な通信シーケンス例である。
【図３】相互認証処理の一例を示す図である。
【図４】本手法による通信シーケンス例である。
【図５】（ａ）〜（ｉ）はカードコマンドに係わる各種構成例である。
【図６】（ａ）〜（ｇ）はリーダライタコマンドに係わる各種構成例（その１）である。
【図７】（ａ）〜（ｆ）はリーダライタコマンドに係わる各種構成例（その２）である。
【図８】従来例（その１）における通信シーケンス例を示し、本手法との相違について説明する為の図である。
【図９】従来例（その１）のパケット構成例等を示し、本手法との相違について説明する為の図である。
【図１０】従来例（その２）における通信シーケンス例を示し、本手法との相違について説明する為の図である。
【図１１】従来例（その２）のコマンド構成例等を示し、本手法との相違について説明する為の図である。
【符号の説明】
【０１６４】
１  ネットワーク
２  管理サーバ
３  非接触ＩＣカード
１０  上位機器
１１  ＣＰＵ
１２  プログラムメモリ
１３  データメモリ
１４  鍵情報格納用セキュアメモリ
１５  カードリーダライタ通信制御部
１６  カードリーダライタ接続Ｉ／Ｆ
１７  ネットワーク通信制御部
１８  ネットワーク通信Ｉ／Ｆ
２０  カードリーダライタ
２１  ＣＰＵ
２２  プログラムメモリ
２３  データメモリ
２４  ＲＦ回路
２５  アンテナ
２６  上位機器通信制御部
２７  上位機器接続Ｉ／Ｆ
３０  カードコマンドパケット
３１  プリアンブル
３２  同期コード
３３  データ長
３４  カードコマンド部
３５  チェックコード
３６  ポストアンブル
４０  カード捕捉コマンド（カードコマンド）
４１  カード捕捉コマンド・コマンドコード
４２  コマンドパラメータ
５０  カード捕捉応答（カードコマンド）
５１  カード捕捉コマンド応答コード
５２  カードＩＤ
６０  第一相互認証コマンド（カードコマンド）
６１  第一相互認証コマンド・コマンドコード
６２  認証先カードＩＤ
６３  認証用条件情報
６４  認証用暗号化データＡ
７０  第一相互認証応答（カードコマンド）
７１  第一相互認証コマンド応答コード
７２  認証用暗号化データＢ
７３  認証用暗号化データＣ
８０  第二相互認証コマンド（カードコマンド）
８１  第二相互認証コマンド・コマンドコード
８２  認証用暗号化データＤ
９０  第二相互認証応答（カードコマンド）
９１  第二相互認証コマンド応答コード
９２  認証結果データ
１００  カードアクセスコマンド（カードコマンド）
１０１  カードリードコマンド・コマンドコード
１０２  リード対象部指定情報
１１０  カードアクセス応答（カードコマンド）
１１１  カードリードコマンド・応答コード
１１２  リードデータ
１２０  リーダライタコマンドパケット
１２１  プリアンブル部
１２２  スタートコード部
１２３  データ長
１２４  リーダライタコマンド部
１２５  チェックコード
１２６  ポストアンブル
１３０  カード捕捉コマンド（リーダライタコマンド）
１３１  カード捕捉コマンド・コマンドコード
１３２  コマンドパラメータ
１４０  カード捕捉応答（リーダライタコマンド）
１４１  カード捕捉コマンド応答コード
１４２  カードＩＤ
１５０  第一相互認証コマンド（リーダライタコマンド）
１５１  第一相互認証コマンド・コマンドコード
１５２  認証先カードＩＤ
１５３  認証用条件情報
１５４  認証用暗号化データＡ
１６０  第一相互認証応答（リーダライタコマンド）
１６１  第一相互認証コマンド応答コード
１６２  認証用暗号化データＢ
１６３  認証用暗号化データＣ
１７０  第二相互認証コマンド（リーダライタコマンド）
１７１  第二相互認証コマンド・コマンドコード
１７２  認証用暗号化データＤ
１７３  セッション鍵
１８０  第二相互認証応答（リーダライタコマンド）
１８１  第二相互認証コマンド応答コード
１８２  認証結果データ
１９０  セッション鍵セットコマンド（リーダライタコマンド）
１９１  セッション鍵セットコマンド・コマンドコード
１９２  鍵情報
２００  セッション鍵セット応答（リーダライタコマンド）
２０１  セッション鍵セットコマンド応答コード
２０２  結果データ
２１０  カードアクセスコマンド（１）（リーダライタコマンド）
２１１  カードリードコマンド・コマンドコード
２１２  リード対象部指定情報
２２０  カードアクセス応答（１）（リーダライタコマンド）
２２１  カードリードコマンド・応答コード
２２２  リードデータ
２３０  カードアクセスコマンド（２）（リーダライタコマンド）
２３１  カードライト＆リードコマンド・コマンドコード
２３２  ライト＆リード対象部指定情報
２３３  ライトデータ
２４０  カードアクセス応答（２）（リーダライタコマンド）
２４１  カードライト＆リードコマンド応答コード
２４２  読み返しデータ
【図１】
2010093663.tif 000003
【図２】
2010093663.tif 000004
【図３】
2010093663.tif 000005
【図４】
2010093663.tif 000006
【図６】
2010093663.tif 000007
【図７】
2010093663.tif 000008
【図８】
2010093663.tif 000009
【図９】
2010093663.tif 000010
【図１０】
2010093663.tif 000011
【図１１】
2010093663.tif 000012
【図５】
2010093663.tif 000013
【手続補正書】
【提出日】平成21年1月23日(2009.1.23)
【手続補正１】
【補正対象書類名】明細書
【補正対象項目名】００５６
【補正方法】変更
【補正の内容】
【００５６】
すなわち、以降、当該セッションの期間内は、上記ステップＳ１０、Ｓ３０で生成したセッション鍵Ksを用いて暗号化通信を行う。すなわち、カード利用機器側では、上記カードアクセスコマンドを上記ステップＳ１０で生成したセッション鍵Ksで暗号化して送信する。このコマンドを受信したＩＣカード３は、上記ステップＳ３０で生成したセッション鍵Ksを用いて復号化する。同様に、上記カードアクセス応答は自己のセッション鍵Ksを用いて暗号化して送信し、カード利用機器は自己のセッション鍵Ksを用いてこの応答を復号化する。