(57)【特許請求の範囲】
【請求項１】
カード利用端末を介して認証及び／又はデータの読み書きに使用されるカード体の処理システムであって、
カードの発行者が用意する、各サービスの情報を記述したサービス・ディレクトリ・データ構造体と、
カード利用端末が扱う、各カード発行体の情報を記述したカード発行体ディレクトリと、
カード内のエリア及びサービスの構造を表すカード用コンフィギュレーション・データ構造体と、
他のカード用コンフィギュレーション・データ構造体へのポインタ並びにカードの処理状態などが書き込まれたカード管理構造体と、
を具備することを特徴とするカード体の処理システム。
【請求項２】
サービス・ディレクトリ・データ構造体は、サービス毎に、サービス名、サービス番号、キー・バージョン、鍵情報を管理し、上位コマンドによりサービス名でサービスの指定が可能であることを特徴とする請求項１に記載のカード体の処理システム。
【請求項３】
カード発行体ディレクトリは、カード発行体毎に、発行体名、システム・コード、前記サービス・ディレクトリ・データ構造体へのポインタを管理し、上位コマンドにより発行体名で発行体の指定が可能であることを特徴とする請求項１に記載のカード体の処理システム。
【請求項４】
カード用コンフィギュレーション・データ構造体は、カード内のエリア数、エリアのキー・バージョン、エリアの鍵、子エリアへのポインタ、サービス数、サービス番号を含むことを特徴とする請求項１に記載のカード体の処理システム。
【請求項５】
カード管理構造体は、前記カード用コンフィギュレーション構造体へのポインタと、前記サービス・ディレクトリ・データ構造体へのポインタと、カードの内部構造体と、カードの処理状態とを含むことを特徴とする請求項１に記載のカード体の処理システム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、カード利用端末を介して認証及び／又はデータの読み書きに使用されるカード体、該カード体の処理システム及び処理方法に係り、特に、認証手続などに使用する鍵情報を含んだ管理情報と、データの読み書き操作を記述したプログラム・コードとを担持するカード体、該カード体の処理システム及び処理方法に関する。
【０００２】
【従来の技術】
昨今、情報処理や情報通信などのコンピューティング技術が飛躍的に向上し、コンピュータ・システムが広汎に普及してきている。さらに、コンピュータ同士を相互接続するネットワーク・コンピューティング技術に対する要望も高まってきている。ネットワーク上では、各コンピュータのユーザ同士で、コンピュータ資源の共有や、情報の共有・流通・配布・交換などの協働的作業を円滑に行うことができる。
【０００３】
コンピュータ同士を相互接続するネットワークの形態は様々である。例えば、ＥｔｈｅｒｎｅｔやＢｌｕｅｔｏｏｔｈのような局所に敷設されたＬＡＮ（Local Area Network）や、ＬＡＮ同士を専用線などで相互接続して構成されるＷＡＮ（Wide Area Network）、さらには、ネットワーク同士の相互接続を繰り返し行った結果として文字通り世界規模のネットワークへ成長を遂げた「インターネット」（The Internet）など様々である。
【０００４】
コンピュータのネットワーク接続率は既に高く、大学など各種研究機関、企業のオフィス、一般家庭などに深く浸透している。最近では、コンピュータ・ネットワークは、単なる情報配信の手段としてのみならず、商品売買を始めとして様々な商取引の手段として利用されている。いわゆる「ネット販売」又は「オンライン・ショッピング」と呼ばれる商取引である。
【０００５】
ネットワーク経由での商取引は、売主は、Ｗｅｂページの形式で商品情報を掲示して消費者からの反応（問合せや購入申込みなどの行為）を待機すればよく、店舗のショー・ケースなどの物理的な手段を省略して低コスト化を図ることができる。これは、一般の商品売買に限らず、リース・レンタルやその他の業務サービス全般にも同様に該当する。
【０００６】
また、ネットワークを利用した商取引の場合には、１ヶ所のＷｅｂサイト上にカタログに相当するデータ・コンテンツをアップロードしておくだけで、世界中に瞬間的に商品情報やサービス情報を配信することができる。すなわち、情報の即時性があり、商取引に関する契約を円滑且つ迅速に成立させることができる。
また、ネットワーク配信によれば、商品販売に要するイニシャル・コストが低いので、取引単位を細分化して、一般消費者毎に区々な要望や各場所に散在する小規模な要望に関しても、逐次的に対応した取引を成立させることができる。
【０００７】
ネットワークを媒介とした商取引には、一般に、取引に関する各種情報を電子的に格納可能なカードなどの媒体が利用される。
【０００８】
すなわち、商取引の運営母体は、所定の登録手続を経てアカウントを取得した各利用者に対してカードを発行する。このカード上には、利用者の個人情報や商取引情報、電子認証に用いる認証鍵やデータを安全に移送するための暗号鍵などの鍵情報が記録されている。
【０００９】
利用者は、所定のカード利用端末上で自身のカードを読み込ませ、カード利用端末はセンター局との間で認証手続を行い、認証に成功するとセンター局へのアクセスすなわち商取引サイトへのログインが許可される。そして、商取引サイト上での取引情報・購入情報・利用情報などはカード上に追記される。また、カード利用端末とセンター局間での取引情報やその他の機密データの送信に際しては、暗号鍵を用いた暗号化処理が施され、データは安全に移送される。
【００１０】
ところで、カード利用端末においてカードに非接触でアクセスし、認証やデータの読み書きを行なうような機器操作をプログラム・コードなどの形式で記述するような場面において、鍵情報やカード内のファイル・システムを念頭に置いてプログラミングをする必要がある。
【００１１】
より具体的に言えば、カード上に記録する鍵情報を含めた管理情報などのデータを、機器操作を記述したプログラム・コード中に埋め込むような形式で記述することが一般的である。
【００１２】
しかし、このような鍵情報の記述形式によると、データがプログラム・コードと一体化されているので、鍵情報のみの更新を行うことが困難になる。また、プログラム・コードを解析されてしまうと、同時に鍵情報まで暴かれることになるので、セキュリティ上問題である。
【００１３】
【発明が解決しようとする課題】
本発明は上記のような課題を勘案したものであり、その目的は、認証及び／又はデータの読み書きに使用される、優れたカード体、該カード体の処理システム及び処理方法を提供することにある。
【００１４】
本発明の更なる目的は、認証手続などに使用する鍵情報を含んだ管理情報と、データの読み書き操作を記述したプログラム・コードとを担持する、優れたカード体及び該カード体の処理方法を提供することにある。
【００１５】
【課題を解決するための手段】
本発明は、上記課題を参酌してなされたものであり、その第１の側面は、カード利用端末を介して認証及び／又はデータの読み書きに使用されるカード体であって、
認証及び／又は伝送データの暗号化等に使用する鍵情報を設定する鍵情報設定部と、
前記鍵情報とは分離された、認証及び／又はデータ読み書き操作を記述する操作部と、
を具備することを特徴とするカード体である。
【００１６】
また、本発明の第２の側面は、認証及び／又は伝送データの暗号化等に使用する鍵情報を設定する鍵情報設定部と、前記鍵情報とは分離された、認証及び／又はデータ読み書き操作を記述する操作部とを備えたカード体を、カード利用端末を介して認証及び／又はデータの読み書きに使用するカード体の処理システムであって、
鍵情報設定部より鍵情報を取得する鍵情報取得部と、
取得した鍵情報に基づいてカード体と認証手続を行う認証部と、
操作部を介してカード体に対してデータ読み書き操作を行う読み書き部と、
を具備することを特徴とするカード体の処理システムである。
【００１７】
また、本発明の第３の側面は、カード利用端末を介して認証及び／又はデータの読み書きに使用されるカード体の処理システムであって、
カードの発行者が用意する、各サービスの情報を記述したサービス・ディレクトリ・データ構造体と、
カード利用端末が扱う、各カード発行体の情報を記述したカード発行体ディレクトリと、
カード内のエリア及びサービスの構造を表すカード用コンフィギュレーション・データ構造体と、
他のデータ構造体へのポインタ並びにカードの処理状態などが書き込まれたカード管理構造体と、
を具備することを特徴とするカード体の処理システムである。
【００１８】
ここで、サービス・ディレクトリ・データ構造体は、各サービス毎に、サービス名、サービス番号、キー・バージョン、鍵情報を管理するようにしてもよい。
このような場合、上位コマンドによりサービス名でサービスの指定が可能であってもよい。
【００１９】
また、カード発行体ディレクトリは、各カード発行体毎に、発行体名、システム・コード、前記サービス・ディレクトリ・データ構造体へのポインタを管理するようにしてもよい。このような場合、上位コマンドにより発行体名で発行体の指定が可能であってもよい。
【００２０】
また、カード用コンフィギュレーション・データ構造体は、カード内のエリア数、エリアのキー・バージョン、エリアの鍵、子エリアへのポインタ、サービス数、サービス番号を含んでいてもよい。
【００２１】
また、カード管理構造体は、前記カード用コンフィギュレーション構造体へのポインタと、前記サービス・ディレクトリ・データ構造体へのポインタと、カードの内部構造体と、カードの処理状態とを含んでいてもよい。
【００２２】
また、本発明の第４の側面は、認証及び／又は伝送データの暗号化等に使用する鍵情報を設定する鍵情報設定部と、前記鍵情報とは分離された、認証及び／又はデータ読み書き操作を記述する操作部とを備えたカード体を、カード利用端末を介して認証及び／又はデータの読み書きに使用するカード体の処理方法であって、
鍵情報設定部より鍵情報を取得する鍵情報取得ステップと、
取得した鍵情報に基づいてカード体と認証手続を行う認証ステップと、
を具備することを特徴とするカード体の処理方法である。
【００２３】
本発明の第４の側面に係るカード体の処理方法は、さらに、操作部を介してカード体に対してデータ読み書き操作を行う読み書きステップを備えていてもよい。
【００２４】
また、本発明の第５の側面は、認証及び／又は伝送データの暗号化等に使用する鍵情報を設定する鍵情報設定部と、前記鍵情報とは分離された、認証及び／又はデータ読み書き操作を記述する操作部とを備えたカード体を、カード利用端末を介して認証及び／又はデータの読み書きに使用するカード体の処理をコンピュータ・システム上で実行するように記述されたコンピュータ・ソフトウェアをコンピュータ可読形式で物理的に格納した記憶媒体であって、前記コンピュータ・ソフトウェアは、
鍵情報設定部より鍵情報を取得する鍵情報取得ステップと、
取得した鍵情報に基づいてカード体と認証手続を行う認証ステップと、
操作部を介してカード体に対してデータ読み書き操作を行う読み書きステップと、
を具備することを特徴とする記憶媒体である。
【００２５】
本発明の第５の側面に係る記憶媒体は、例えば、様々なプログラム・コードを実行可能な汎用性のコンピュータ・システムに対して、コンピュータ・ソフトウェアをコンピュータ可読な形式で物理的に提供する媒体である。このような媒体は、例えば、ＣＤ（Compact Disc）やＦＤ（Floppy Disc）、ＭＯ（Magneto-Optical disc）などの着脱自在で可搬性の記憶媒体である。あるいは、ネットワーク（ネットワークは無線、有線の区別を問わない）などの伝送媒体などを経由してコンピュータ・ソフトウェアを特定のコンピュータ・システムにコンピュータ可読形式で提供することも技術的に可能である。
【００２６】
このような記憶媒体は、コンピュータ・システム上で所定のコンピュータ・ソフトウェアの機能を実現するための、コンピュータ・ソフトウェアと記憶媒体との構造上又は機能上の協働的関係を定義したものである。換言すれば、本発明の第５の側面に係る記憶媒体を介して所定のコンピュータ・ソフトウェアをコンピュータ・システムにインストールすることによって、コンピュータ・システム上では協働的作用が発揮され、本発明の第４の側面に係るカード体の処理方法と同様の作用効果を得ることができる。
【００２７】
【作用】
本発明に係るカード体は、認証及び／又はデータの読み書きに使用されるが、認証及び／又は伝送データの暗号化等に使用する鍵情報を設定する鍵情報設定部と、鍵情報とは分離された、認証及び／又はデータ読み書き操作を記述する操作部とで構成される。
【００２８】
本発明によれば、鍵情報の設定とカードへの操作が分離されているので、カードとの認証用関数には鍵情報の併記が不必要になり、簡便なコマンドでカードの認証や読み書きを実現することができる。
【００２９】
また、本発明によれば鍵情報の設定とカードへの操作が分離されているので、秘匿すべきデータやコードを一元化することができる。また、カード利用端末内部で連続した特定メモリ空間でのセキュリティ管理が可能となる。したがって、鍵情報を保持することが必要なスタンドアロン型のカード利用端末に有益である。
【００３０】
また、本発明によれば、実行可能なコマンド体系を、カード操作への中間コマンドとして位置付けることにより、同コマンドで記述されたアプリケーション・プログラムのダウンロード、解釈、実行を行う仕組みを、上位層ソフトウェアで実現することが可能となる。
【００３１】
また、本発明では、認証時にカードの発行体の認識を行うことができるので、複数のカード発行体が発行するカードが混在して流通するような商取引環境下においても充分に対応することができる。
【００３２】
本発明のさらに他の目的、特徴や利点は、後述する本発明の実施例や添付する図面に基づくより詳細な説明によって明らかになるであろう。
【００３３】
【発明の実施の形態】
以下、図面を参照しながら本発明の実施例を詳解する。
【００３４】
まず、データ構造の説明を通して、カードへの操作とカード側の鍵を含めた管理情報の分離について説明する。
【００３５】
以下に示す［表１］は、カードの発行者が用意するサービス・ディレクトリのデータ構造体を示している。
【００３６】
【表１】
0004595176.tif 000002
【００３７】
上表に示すように、サービス・ディレクトリには、各サービス毎にエントリが用意される。各エントリは、サービス名（Service Name）、サービス番号（Service Number）、キー・バージョン（Key Version）、鍵情報（Key Info）を書き込むための各フィールドを含んでいる。
【００３８】
上位コマンドでは、文字列で表現されるサービス名でサービスの指定を行う。
提供するサービスが異なる場合には、カード発行者毎にサービス・ディレクトリを用意すればよい。各サービス毎に、サービス名（Service Name）、サービス番号（Service Number）、キー・バージョン（Key Version）、鍵情報（Key Info）の設定を事前に行っておく。サービス名は、サービス番号別にユニークなものを用意する。
【００３９】
また、以下に示す［表２］には、カード利用端末が扱うカードの発行体ディレクトリのデータ構造を示している。（本実施例では、カード利用端末は、複数のカード発行体から発行された異種のカードを取り扱うことができるものとする。
）
【００４０】
【表２】
0004595176.tif 000003
【００４１】
カード利用端末が扱うカード発行体ディレクトリは、各カード発行体毎にエントリを用意する。各エントリは、カード発行体の情報として、発行体名（Issuer Name）、システム・コード（System Code）、データ構造体（上述）へのポインタの各々を書き込むフィールドを含んでいる。
【００４２】
上位コマンドでは、文字列で表現される発行体名で発行体の指定を行う。各発行体毎に、発行体名（Issuer Name）、システム・コード（System Code）、データ構造体（上述）へのポインタを事前に設定しておく。発行体名は、システム・コード別にユニークに用意する。
【００４３】
図１には、カード内のエリア及びサービスの構造を表すカード用コンフィギュレーションのデータ構造体３００，３２０の構成を例示している。同図に示す例では、カード内エリアとしてＡＲＥＡ００００とＡＲＥＡ１０００が存在する。
【００４４】
参照番号３０５は、ＡＲＥＡ００００のエリア数と、エリアのキー・バージョン、エリアの鍵からなる。
【００４５】
エリアＡＲＥＡ００００の直下のエリア数は参照番号３０１で示すフィールドに書き込まれ、また、子エリアへの別構造体へのポインタを書き込むフィールド３０２は、フィールド３０１で指定された個数だけ用意される。子エリアが存在しない場合には、フィールド３０１にＮＵＬＬを指定すればよい。
【００４６】
次に、エリアＡＲＥＡ００００直下のサービス数は参照番号３０３で示すフィールドに書き込まれ、また、該フィールド３０３で指定された個数だけサービス番号を書き込むフィールド３０４が用意される。
【００４７】
エリアＡＲＥＡ００００の子エリア３２０も、エリア３００と同様の構造を備えている。すなわち、子エリア直下の孫エリアの個数が参照番号３２１で示すフィールドに書き込まれ、また、対応する孫エリアへのポインタが参照番号３２２で示すフィールドに書き込まれる。また、子エリア内に存在するサービスの個数は参照番号３２３で示すフィールドに書き込まれ、該フィールドで指定された個数だけのサービス番号を書き込むフィールド３２４が用意される。
【００４８】
図１に示したようなカード用コンフィギュレーション・データ構造体は、カードの発行体毎に用意される。
【００４９】
図２には、カード管理構造体４０のデータ構造を例示している。
【００５０】
参照番号４１で示すフィールドにはカード用コンフィギュレーション構造体（上述）へのポインタが書き込まれ、また、参照番号４２で示すフィールドにはカード・サービス・ディレクトリ（上述）へのポインタが書き込まれる。
【００５１】
参照番号４３で示すフィールドは、カードとの通信に必要なハードウェアに近いレベルの情報を格納した内部構造体である。
【００５２】
参照番号４４で示すフィールドにはカードの処理状態が書き込まれ、参照番号４５で示すフィールドにはカード利用端末側で管理する最大応答待ち時間が書き込まれ、参照番号４６で示すフィールドには相互認証時に指定されたサービス名が書き込まれ、参照番号４７で示すフィールドには相互認証時に指定されたカード発行体名が書き込まれる。
【００５３】
次いで、カード利用端末がカードの存在を認識して相互認証するときの処理を例にとって、カードへの操作とカード側の鍵を含めた管理情報の分離について説明する。
【００５４】
以下の説明では、サービス・ディレクトリ、カードの発行体ディレクトリ、カード用コンフィギュレーション・データ３００／３２０は既に設定されているものとする。
【００５５】
図３には、カード利用端末によるカードの認識及び相互認証する処理手順をフローチャートの形式で示している。以下、このフローチャートに従って，カードの認識及び相互認証処理について説明する。
【００５６】
カード利用端末のプログラミング上の入力として、発行体名、サービス名（複数指定可）を与え、その処理結果としてカード管理構造体４０のポインタが返される。
【００５７】
さらに、カード管理構造体４０中の発行体名を基に、カード発行体ディレクトリを検索して、発行体が提供するサービス・ディレクトリのデータ構造体を得る。そして、入力されたサービス名で，サービス・ディレクトリのデータ構造体を検索して、そのサービスを含むエリア番号とサービス・キーを得る（ステップＳ１）。
【００５８】
発行体やサービスが存在しなかった場合は、この処理ルーチンはエラーとなって終了する（ステップＳ２）。
【００５９】
次いで，カードのポーリング・コマンドを発行して（ステップＳ３）、カードを検出し（ステップＳ４：但し、カード読取部をカードが通過するによりカード・アクセスするタイプであるとする）、システム・コードを得る。
【００６０】
システム・コードが上位より与えられた発行体と同一である場合に（ステップＳ５）、システム・コードでカード発行体ディレクトリを検索して、カード・サービス・ディレクトリへのポインタを得る（ステップＳ６）。
【００６１】
次いで、サービス番号とエリア番号に相当するバージョン番号を得る。そして、サービス名でサービス・ディレクトリ内を検索して（ステップＳ７）、これによって得たバージョン番号と比較してみる（ステップＳ８）。
【００６２】
判断ブロックＳ８における比較結果が等しい場合には、要求されているサービス・コードとエリア・コードを検索し（ステップＳ９）、アクセスしたいサービスに対応する鍵を計算して（ステップＳ１０）、相互認証を行う（ステップＳ１１，Ｓ１２）。
【００６３】
相互認証に成功した場合に、カード管理構造体４０のフィールド４２に発行体が提供するサービス構造体のポインタを書き込み、フィールド４１にカード用コンフィギュレーション構造体３００へのポインタを書き込んで、カード内部のエリア・サービス構成を参照可能にしておく（ステップＳ１３）。
【００６４】
図４には、カード利用端末によりカードへのデータ書き込みを行う処理手順をフローチャートの形式で示している。以下、このフローチャートに従ってカードへのデータ書き込み処理について説明する。
【００６５】
カード利用端末のプログラミング上の入力として、カード管理構造体４０へのポインタ、データのバッファへのポインタ、ブロック・サイズを与える。この際、カード管理構造体４０のフィールド４８に書き込みサービス名のリストを設定する（ステップＳ２１）。
【００６６】
フィールド４８に書き込まれたサービス名がフィールド４６に存在する場合には（ステップＳ２２）、要求に応じたブロック・リスト（書き込みに必要なパラメータ）を生成し（ステップＳ２３）、書き込みコマンド・パケットを生成して（ステップＳ２４）、カードへの書き込みコマンドを発行する（ステップＳ２５）。
【００６７】
カード相互認証時の関数例を、擬似コードの形式で以下に示しておく。
【００６８】
【数１】
0004595176.tif 000004
【００６９】
また、カード書き込み時の関数例を、擬似コードの形式で以下に示しておく。
【００７０】
【数２】
0004595176.tif 000005
【００７１】
［追補］
以上、特定の実施例を参照しながら、本発明について詳解してきた。しかしながら、本発明の要旨を逸脱しない範囲で当業者が該実施例の修正や代用を成し得ることは自明である。すなわち、例示という形態で本発明を開示してきたのであり、限定的に解釈されるべきではない。本発明の要旨を判断するためには、冒頭に記載した特許請求の範囲の欄を参酌すべきである。
【００７２】
【発明の効果】
以上詳記したように、本発明によれば、認証及び／又はデータの読み書きに使用される、優れたカード体、該カード体の処理システム及び処理方法を提供することができる。
【００７３】
また、本発明によれば、認証手続などに使用する鍵情報を含んだ管理情報と、データの読み書き操作を記述したプログラム・コードとを担持する、優れたカード体、該カード体の処理システム及び処理方法を提供することができる。
【００７４】
本発明によれば、鍵情報の設定とカードへの操作が分離されているので、カードとの認証用関数には鍵情報の併記が不必要になる。
【００７５】
また、本発明によれば鍵情報の設定とカードへの操作が分離されているので、秘匿すべきデータやコードを一元化することができる。また、カード利用端末内部で連続した特定メモリ空間でのセキュリティ管理が可能となる。したがって、鍵情報を保持することが必要なスタンドアロン型のカード利用端末に有益である。
【００７６】
また、本発明によれば、実行可能なコマンド体系を、カード操作への中間コマンドとして位置付けることにより、同コマンドで記述されたアプリケーション・プログラムのダウンロード、解釈、実行を行う仕組みを、上位層ソフトウェアで実現することが可能となる。
【００７７】
また、本発明では、認証時にカードの発行体の認識を行うことができるので、複数のカード発行体が発行するカードが混在して流通するような商取引環境下においても充分に対応することができる。
【図面の簡単な説明】
【図１】カード内のエリア及びサービスの構造を表すカード用コンフィギュレーションのデータ構造体の構成を例示した図である。
【図２】カード管理構造体４０のデータ構造を例示した図である。
【図３】カード利用端末によるカードの認識及び相互認証する処理手順を示したフローチャートである。
【図４】カード利用端末によりカードへのデータ書き込みを行う処理手順を示したフローチャートである。
【符号の説明】
４０…カード管理構造体
３００，３２０…カード用コンフィギュレーション・データ構造体
【図１】
0004595176.tif 000006
【図２】
0004595176.tif 000007
【図３】
0004595176.tif 000008
【図４】
0004595176.tif 000009