(57)【要約】【課題】カード発行後の新プログラムをダウンロードしてインストールする作業を安全に円滑に行う仕組みを提供することを課題とする。【解決手段】ＩＣカード５に備えられたカード管理手段５１と、パソコンに備えられた代理ドライバ手段１２と、カード発行者が設置するサーバー装置に備えられたアプレット提供手段２１と、により構成され、前記代理ドライバ手段１２が、前記アプレット提供手段２１、および、前記カード管理手段５１との中継機能を果たすことにより前記サーバー装置２０から、アプリケーションプログラムをネットワークを通じて前記ＩＣカード５にダウンロードすることにより上記課題を解決する。【選択図】　図１
2004013728.tif 000002
【特許請求の範囲】
【請求項１】
ＩＣカードに備えられたカード管理手段と、前記ＩＣカードを挿入したＩＣカードリーダーライタ装置を接続したパソコンに備えられた代理ドライバ手段と、カード発行者が設置するサーバー装置に備えられたアプレット提供手段と、により構成されるＩＣカードプログラムダウンロードシステムであって、
前記代理ドライバ手段が、前記アプレット提供手段、および、前記カード管理手段との中継機能を果たすことにより前記サーバー装置から、アプリケーションプログラムをネットワークを通じて前記ＩＣカードにダウンロードするＩＣカードプログラムダウンロードシステム。
【請求項２】
請求項１に記載のＩＣカードプログラムダウンロードシステムにおいて、前記アプレット提供手段から前記カード管理手段へのアプリケーションプログラムの転送に先立って、前記アプレット提供手段と前記カード管理手段の間で、相互認証手続きおよびセッション鍵決定手続きを、この順で行い、決定されたセッション鍵によって、アプリケーションプログラムのコードを暗号化して転送することによりネットワーク上でプログラムを安全に提供できることを特徴とするＩＣカードプログラムダウンロードシステム。
【請求項３】
ＩＣカードに備えられたカード管理手段と、前記ＩＣカードを挿入したＩＣカードリーダーライタ装置を接続したパソコンに備えられたダウンロード手段と、同じく前記パソコンに備えられたＩＣカードドライバ手段と、カード発行者が用意するサーバー装置に備えられたアプレット提供手段と、により構成されるＩＣカードプログラムダウンロードシステムであって、
前記アプレット提供手段は、ダウンロードすべきプログラムコードを暗号化して、この暗号化されたコードをネットワークを通じて前記パソコンに送信し、これを前記ダウンロード手段が受けとり、全ての暗号化されたプログラムコードを取り込んだ後これを復号して一旦前記パソコン上にプログラムコードを保持し、前記ＩＣカードドライバ手段が、これを前記ＩＣカードリーダーライタ装置を通して転送することによりアプリケーションプログラムのコードをＩＣカードに提供できることを特徴とするＩＣカードプログラムダウンロードシステム。
【請求項４】
請求項３に記載のＩＣカードプログラムダウンロードシステムにおいて、前記ＩＣカードドライバ手段は、前記カード管理手段へのアプリケーションプログラムの転送に先立って、前記カード管理手段との間で、相互認証手続きおよびセッション鍵決定手続きを、この順で行い、決定されたセッション鍵によって、アプリケーションプログラムのコードを暗号化して転送することを特徴とするＩＣカードプログラムダウンロードシステム。
【請求項５】
請求項３に記載のＩＣカードプログラムダウンロードシステムにおいて、前記アプレット提供手段によるダウンロードすべきプログラムコードの暗号化方式は、前記ダウンロード手段との間での公開鍵暗号方式を採用することを特徴とするＩＣカードプログラムダウンロードシステム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、ＩＣカード発行後に利用者の手許にある当該ＩＣカードにアプリケーションプログラムをダウンロードさせることが可能なＩＣカードアプリケーションのダウンロードシステムに関する。
【０００２】
【従来技術】
現在、磁気カードよりも便利でより安全なＩＣカードが徐々に普及しつつある。磁気ストライプによる単なる磁気記録媒体として用いられる磁気カードと異なり、ＩＣカードは、演算処理装置（ＣＰＵ）を備え、ＲＯＭにプログラムを格納しておくことにより、単なる記録媒体としての働きではなく、何らかのアプリケーション機能をも備えた記録媒体として利用される。したがってＩＣカードはスマートカードとも呼ばれることがある。
【０００３】
ＩＣカードは、一つのアプリケーションプログラムだけ記録させて単一機能のカードとして用いるだけではなく、複数のアプリケーションプログラムを格納させて、多機能なカードとして使うことや、搭載するアプリケーションプログラムをカード発行後に書き換えて、別の機能を備えたカードとしてあるいはバージョンアップした機能を備えたカードとして使うことが可能である。
【０００４】
このような複数アプリケーションの搭載およびその利用、またカード発行後の新プログラム搭載またはプログラム書き換え等の運用を円滑に行うためには、ＩＣカードそのものにメモリ管理、アプリケーション実行時のプロセス管理、セキュリティ管理などの管理的な機能を担当するプログラムであるＯＳ（オペレーティングシステム）が必要となる。現在ＩＣカードの汎用ＯＳとしては、ＭＵＬＴＯＳ（登録商標）とＪａｖａＣａｒｄ（登録商標）が存在する。
【０００５】
【発明が解決しようとする課題】
カード発行後の新プログラム搭載またはプログラム書き換えを行う場合、ＭＵＬＴＯＳ（登録商標）カードの場合には、搭載すべき新プログラムをカードの持つ公開鍵で暗号化しておき、ＭＵＬＴＯＳ（登録商標）カードはこれを自身の持つ秘密鍵で復号しながら内部に取込むことが可能となっている。すなわち、ＭＵＬＴＯＳ（登録商標）においては、新アプリケーションプログラムをネットワーク経由で安全にダウンロードできる発行スキームが実現されている。具体的には、カード発行者（新プログラム供給者）とＭＵＬＴＯＳ（登録商標）カードの間の電子証明書による認証方式、送付するプログラムまたはデータの暗号化様式、その他の規約が定められている。
【０００６】
一方、ＪａｖａＣａｒｄ（登録商標）の場合には、上記発行スキームに相当する仕組みが用意されていない。従って、カード発行後の新プログラムをネットワークを通じてダウンロードしてインストールする作業を安全に円滑に行うことができないという問題点があった。
【０００７】
本発明はこのような問題点を考慮してなされたものであり、ＪａｖａＣａｒｄ（登録商標）の場合に、上記発行スキームに相当する仕組み、すなわちカード発行後の新プログラムをネットワークを通じてダウンロードしてインストールする作業を安全に円滑に行う仕組みを提供することを課題とする。
【０００８】
【課題を解決するための手段】
課題を解決するための第１の発明は、ＩＣカードに備えられたカード管理手段と、前記ＩＣカードを挿入したＩＣカードリーダーライタ装置を接続したパソコンに備えられた代理ドライバ手段と、カード発行者が設置するサーバー装置に備えられたアプレット提供手段と、により構成されるＩＣカードプログラムダウンロードシステムであって、その第１の態様は、
前記代理ドライバ手段が、前記アプレット提供手段、および、前記カード管理手段との中継機能を果たすことにより前記サーバー装置から、アプリケーションプログラムをネットワークを通じて前記ＩＣカードにダウンロードするよう構成されたＩＣカードプログラムダウンロードシステムである。
【０００９】
第１の態様のＩＣカードプログラムダウンロードシステムにおいて、前記アプレット提供手段から前記カード管理手段へのアプリケーションプログラムの転送に先立って、前記アプレット提供手段と前記カード管理手段の間で、相互認証手続きおよびセッション鍵決定手続きを、この順で行い、決定されたセッション鍵によって、アプリケーションプログラムのコードを暗号化して転送することによりネットワーク上でプログラムを安全に提供できるように構成することもできる。
【００１０】
課題を解決するためのＩＣカードプログラムダウンロードシステムに係る別の態様は、ＩＣカードに備えられたカード管理手段と、前記ＩＣカードを挿入したＩＣカードリーダーライタ装置を接続したパソコンに備えられたダウンロード手段と、同パソコンに備えられたＩＣカードドライバ手段と、カード発行者が用意するサーバー装置に備えられたアプレット提供手段と、により構成されるＩＣカードプログラムダウンロードシステムであって、
前記アプレット提供手段は、ダウンロードすべきプログラムコードを暗号化して、この暗号化されたコードをネットワークを通じて前記パソコンに送信し、これを前記ダウンロード手段が受けとり、全ての暗号化されたプログラムコードを取り込んだ後これを復号して一旦前記パソコン上にプログラムコードを保持し、前記ＩＣカードドライバ手段が、これをＩＣカードリーダーライタ装置を通して転送することによりアプリケーションプログラムのコードをＩＣカードに提供できるように構成したものである。
【００１１】
上記態様のＩＣカードプログラムダウンロードシステムは、前記ＩＣカードドライバ手段は、前記カード管理手段へのアプリケーションプログラムの転送に先立って、前記カード管理手段との間で、相互認証手続きおよびセッション鍵決定手続きを、この順で行い、決定されたセッション鍵によって、アプリケーションプログラムのコードを暗号化して転送するように構成してもよい。
【００１２】
また、上記ＩＣカードプログラムダウンロードシステムの別の態様において、前記アプレット提供手段から前記ダウンロード手段へプログラムコードを転送する場合の暗号化方式は、公開鍵暗号方式を採用して安全性と利便性を高めることもできる。
【００１３】
【発明の実施の形態】
以下図面を用いて、本発明に係るＩＣカードプログラムダウンロードシステムの実施形態を説明してゆく。図１は、本発明に係るシステムの一実施形態としてのＩＣカードプログラムダウンロードシステム１（以下システム１）の全体構成を説明する図である。
【００１４】
５はＩＣカードである。内部に演算処理制御装置（ＣＰＵ）、不揮発メモリ、ＲＯＭ、ＲＡＭを内蔵している。ＲＯＭには、セキュアな記録媒体として機能させるための暗号化や認証機能、複数のアプリケーションプログラムの同時実行を可能とさせるためのメモリ管理機能、アプリケーションプログラムをインストールまたはデリートさせるための管理機能等を実現するためのＯＳのプログラムコードおよび、そのＯＳが提供する環境の上で実行されるアプリケーションプログラムのプログラムコードが記録されている。ＯＳの機能のうち、アプリケーションプログラムをインストールまたはデリートさせる管理機能を特にカード管理手段５１として図１に示す。
【００１５】
１０は、カード所有者が使用するパソコンである。パソコン１０は、ＩＣカード５を使用するためにＩＣカードリーダライター１１を接続している。ＩＣカード５は接触非接触を問わないので、ＩＣカードリーダライター１１は、ＩＣカード５のタイプに応じたものを接続する。２０は、カード発行者が設置するサーバー装置である。カード所有者はパソコン１０から、インターネットあるいはＩＰ（Ｉｎｔｅｒｎｅｔ　Ｐｒｏｔｏｃｏｌ）ネットワーク９を介してサーバー装置２０にアクセスする。パソコン１０には代理ドライバ手段１２が備えられている。サーバー装置２０にはＩＣカード５に搭載すべきプログラムコードを代理ドライバ手段１２を中継してＩＣカード５に提供するアプレット提供手段２１が備えられている。
【００１６】
また、ＩＣカード５およびサーバー装置２０には、カード管理手段５２が後述する相互認証手続きにおいて使用するカード共通鍵５２が記録されている。
【００１７】
図３は、システム１の動作の流れを示したフロー図である。以下システム１の動作の流れを説明する。まず、カード所有者は、パソコン１０に接続されたカードリーダーライタ装置１１にＩＣカード５を挿入し、代理ドライバ手段１２を起動して、サーバー装置２０にアクセスし、ＩＣカード５のアプリケーションプログラムをダウンロードする手順を始めるよう要求する（Ｓ００）。すると、サーバー装置２０に備えられたアプレット提供手段２１が起動され、代理ドライバ手段１２を介して、ＩＣカード５のカード管理手段５１との間で相互認証手続きの実行を始める。
【００１８】
相互認証手続きは、アプレット提供手段２１とカード管理手段５１とが、それぞれが保持している共通鍵５２が一致することを確認することでお互いを認証しあう手続きである。まず、アプレット提供手段２１が適当な方法で乱数１を生成し、認証要求コマンドであることを示すヘッダーにこの乱数１を加えて、代理ドライバ手段１２に送信する（Ｓ１０）。代理ドライバ手段１２はこれをそのままＩＣカードリーダライタ装置１１を通じて、ＩＣカード５に送付する。カード管理手段５１は、乱数１を、保持している鍵５２により暗号化し、これと新たにＩＣカード５内部で生成した乱数２を代理ドライバ手段１２に返答する（Ｓ１４）。代理ドライバ手段１２はこれをそのままサーバー装置２０に転送する。アプレット提供手段２１は、暗号化された乱数１を自身が保持している鍵５２で復号して、それが元々生成した乱数１と一致するかどうかを確認する。また受取った乱数２をその鍵５２で暗合化してカード管理手段５１に送付する（Ｓ１８、以下代理ドライバ手段１２の動作は中継動作だけなので説明を省略する）。カード管理手段５１は、暗号化された乱数２を自身が保持している鍵５２で復号して、それが元々生成した乱数２と一致するかどうかを確認する。一致すれば、ＩＣカード５とサーバー装置２０で相互に所有している鍵５２が一致していることが確認され、相互認証が成功したということになる（Ｓ２４）。
【００１９】
この相互認証手続は、複数のアプリケーションプログラムを搭載するスマートカードの標準化組織であるＧｌｏｂａｌＰｌａｔｆｏｒｍ（登録商標）が定めたＣａｒｄ　Ｓｐｅｃｉｆｉｃａｔｉｏｎ　Ｖｅｒｓｉｏｎ　２．１　Ｊｕｎｅ　２００１（ｈｔｔｐ：／／ｗｗｗ．ｇｌｏｂａｌｐｌａｔｆｏｒｍ．ｏｒｇ／）の仕様に準拠したものである。
【００２０】
次に、ＩＣカード５とサーバー装置２０はセッション鍵を決定する。カード管理手段５１は、受取った乱数１と自ら発生させた乱数２に基づいて所定の変換処理を加えることによりセッションキーを決定する（Ｓ２６）。一方、アプレット提供手段２１は、自ら発生させた乱数１と受取った乱数２に基づいて同一のアルゴリズムの変換処理を加えることにより同一のセッションキーを決定する（Ｓ３０）。以上がセッションキー決定手続きである。セッションキーはその場限りの一時的に使用する共通鍵である。
【００２１】
以後、アプレット提供手段２１は、ＩＣカード５にダウンロードすべきプログラム（アプレット）のコードをセッションキーで暗号化してＩＣカード５に送信する（Ｓ４０）。カード管理手段５１は、受信したデータをセッションキーで復号して、新しいプログラムとしてカード内部にインストールする（Ｓ４４）
【００２２】
以上の、カード管理手段５１、代理ドライバ手段１２、アプレット提供手段２１の連係動作によりＩＣカード発行後のアプリケーションプログラムのＩＣカードへのダウンロードおよびインストールが安全に行われる。
【００２３】
次に、本発明に係るＩＣカードプログラムダウンロードシステムの別の実施形態を説明する。図２は、本発明に係るシステムの他の実施形態としてのＩＣカードプログラムダウンロードシステム２（以下システム２）の全体構成を説明する図である。ＩＣカード５、パソコン１０、サーバー装置２０の構成はシステム１と同じである。
【００２４】
構成上のシステム１との相違点は、パソコン１０には代理ドライバ手段１２ではなく、ダウンロード手段１３とＩＣカードドライバ手段１４が備えられていることである。また、パソコン１０は、カードの共通鍵５２とパソコン１０あるいはダウンロード手段１３の秘密鍵１９を予め記録しておく必要がある。またサーバー装置２０には、パソコン１０あるいはダウンロード手段１３の公開鍵１８を記録しておく必要がある。カード管理手段５１、アプレット提供手段２１の機能はシステム１と同じである。
【００２５】
図４は、システム２の動作の流れを示したフロー図である。以下システム２の動作の流れを説明する。まず、カード所有者は、パソコン１０に接続されたカードリーダーライタ装置１１にＩＣカード５を挿入し、ダウンロード手段１３を起動して、サーバー装置２０にアクセスし、ＩＣカード５のアプリケーションプログラムをダウンロードする手順を始めるよう要求する（Ｓ１００）。すると、サーバー装置２０に備えられたアプレット提供手段２１が起動され、ダウンロード手段１３の公開鍵１８でダウンロードすべきプログラム（アプレット）を暗号化する（Ｓ１１０）。そして暗号化したアプレット８をパソコン１０に対して送信する（Ｓ１１２）。ダウンロード手段１３は全ての暗号化データを受取ると（Ｓ１１４）、それを自身の秘密鍵１９で復号する（Ｓ１１６）。このようにして、一旦アプレット８のコードデータが全てパソコン１０に保持される。
【００２６】
次に、ドライバ手段１４が起動され、ドライバ手段１４は、乱数１を発生させ、認証要求コマンドを乱数１とともにＩＣカードリーダライタ装置１１を通じてＩＣカード５に送付する（Ｓ１１８）。以後、ＩＣカード５とパソコン１０の間で相互認証手続きが行われる。その手順の詳細は、システム１の動作フローで説明した内容と同様である。相互認証手続きが問題無く終ると（Ｓ１２０）、セッションキー決定手続きが行われる（Ｓ１２２、Ｓ１２４）。セッションキー決定手続の手順の詳細は、システム１の動作フローで説明した内容と同様である。セッションキー決定後は、ドライバ手段１４は、ステップＳ１１６で復号したアプレットのコードデータを再びこのセッションキーで暗号化して、ＩＣカード５に転送する（Ｓ１２６）。カード管理手段５１は、このデータを受付け、セッションキーで復号して、新たなプログラムとしてインストールする（Ｓ１２８）。
【００２７】
以上の、カード管理手段５１、ドライバ手段１２、アプレット提供手段２１の連係動作によりＩＣカード発行後のアプリケーションプログラムのＩＣカードへのダウンロードおよびインストールが安全に行われる。
【００２８】
システム１とシステム２はそれぞれに長所短所がある。システム１の欠点としては次のことがいえる。システム１は、（１）相互認証手続きおよびセッション鍵決定手続きをインターネット９を介して行わなければならないこと。（２）ダウンロードするデータがサーバー装置２０→パソコン１０→ＩＣカードリーダライタ１１→ＩＣカード５と移動することから、パソコン１０、ＩＣカードリーダライタの２箇所を中継することになること。したがって、（１）および（２）から、通信に時間がかかることがまずあげられる。また、この通信はインターネット９上での通信であることから、通信不安定でダウンロードに失敗した時、再び相互認証手続きおよびセッション鍵決定手続きをやり直さなければならず煩雑であり時間もかかることも難点である。
【００２９】
システム２の欠点は、サーバー装置２０にダウンロード手段１３の公開鍵１８を予め記憶させておく必要があること。パソコン１０にＩＣカード５の共通鍵５２を予め記憶させておく必要があること。パソコン１０にアプレットがまるまる残ることから、サーバー装置２０の側で、誰にアプレットがダウンロードされたかを完全に管理できないこと、等が指摘できる。尚、サーバー装置２０にダウンロード手段１３の公開鍵１８を記録する代わりに、パソコン１０にアプレット提供手段２１の公開鍵を記録しておき、アプレット提供手段２１におけるアプレットのコードの暗号化はアプレット提供手段２１の秘密鍵により行い、ダウンロード手段１３では、アプレット提供手段２１の公開鍵によりこれを復号するよう構成することもできる。
【００３０】
逆に、アプレットをダウンロードした相手をきちんと管理できるというのがシステム１の長所である。カード発行者ではないカード所有者のパソコン１０にＩＣカード５の共通鍵５２を記録させる必要がないことも安全管理上のメリットの一つである。一方、システム２は、ネットワーク９上のデータ転送においては、相互認証手続きおよびセッション鍵決定手続きを事前に行う必要がなく、ＩＣカードリーダライタ装置１１を介したＩＣカード５への転送も介在しないので、ネットワーク９を介する通信に要する時間が短くてすむことが長所である。
【００３１】
従って、有料のアプリケーションプログラムのダウンロード等の用途にはシステム１を、無料のアプリケーションプログラムやプログラムのバージョンアップの提供等にはシステム２というように使い分けすることもできる。
【００３２】
パソコン１０に、代理ドライバ手段１２、ダウンロード手段１３、ドライバ手段１４をすべて備えて、使用時に使い分けができるように構成することも可能である。
【００３３】
尚、代理ドライバ手段１２またはダウンロード手段１３とアプレット提供手段２１と間のアプリケーションプロセスレベルの通信プロトコルとしてＨＴＴＰ（ＨｙｐｅｒＴｅｘｔ　Ｔｒａｎｓｆｅｒ　Ｐｒｏｔｏｃｏｌ）を採用することにより、アプレット提供手段２１は、入手可能なＷＷＷ（Ｗｏｒｌ　Ｗｉｄｅ　Ｗｅｂ）サーバーソフトウエアと、このＷＷＷサーバーソフトウエアから呼出されるＣＧＩ（Ｃｏｍｍｏｎ　Ｇａｔｅｗａｙ　Ｉｎｔｅｒｆａｃｅ）等の仕組みによって呼出されるサーバーサイドプログラムによって実現することが可能である。
【００３４】
【発明の効果】
以上説明したように、本発明に係るＩＣカードプログラムダウンロードシステムは、特にＪａｖａＣａｒｄ（登録商標）準拠のＩＣカードにおいて、ＩＣカード発行後に、新たなアプリケーションプログラムあるいはバージョンアッププログラムを安全に円滑に提供できるという顕著な効果を奏する。
【図面の簡単な説明】
【図１】本発明に係るシステムの一実施形態としてのＩＣカードプログラムダウンロードシステム１の全体構成を説明する図である。
【図２】本発明に係るシステムの他の実施形態としてのＩＣカードプログラムダウンロードシステム２の全体構成を説明する図である。
【図３】ＩＣカードプログラムダウンロードシステム１の動作の流れを示したフロー図である。
【図４】ＩＣカードプログラムダウンロードシステム２の動作の流れを示したフロー図である。
【符号の説明】
１　　　　　ＩＣカードプログラムダウンロードシステム
２　　　　　ＩＣカードプログラムダウンロードシステム
５　　　　　ＩＣカード
９　　　　　インターネットあるいはＩＰネットワーク
１０　　　パソコン
１１　　　ＩＣカードリーダーライタ装置
１２　　　代理ドライバ手段
１３　　　ダウンロード手段
１４　　　ＩＣカードドライバ手段
１８　　　ダウンロード手段１３の公開鍵
１９　　　ダウンロード手段１３の秘密鍵
２０　　　サーバー装置
２１　　　アプレット提供手段
５１　　　カード管理手段
５２　　　ＩＣカードの暗号鍵
【図１】
2004013728.tif 000003
【図２】
2004013728.tif 000004
【図３】
2004013728.tif 000005
【図４】
2004013728.tif 000006