ICカードのための鍵配送ユニット
【課題】性能をローディングおよび削除する選択的なアプリケーションを有するマルチアプリケーションICカードシステムを提供する。
【解決手段】性能をローディングおよび削除する選択的なアプリケーションを有するマルチアプリケーションICカードシステムは、ICカード上へアプリケーションをロードする前に、カード上に格納されたパーソナル化データを使用し、かつ、アプリケーションをロードし得る1つ以上のカードのセットを示すアプリケーションに付随する許可データと比較する、アプリケーションをカードが受け取る資格があるかどうか判定するテストが行われる。カードのパーソナル化データは、アプリケーションのための許可可能のセット内にある場合、アプリケーションはカードにロードされ得る。好ましくは、許可データは、カード番号、発行者、製品クラスおよびカードがパーソナル化された日付を表すデータを含む。
【解決手段】性能をローディングおよび削除する選択的なアプリケーションを有するマルチアプリケーションICカードシステムは、ICカード上へアプリケーションをロードする前に、カード上に格納されたパーソナル化データを使用し、かつ、アプリケーションをロードし得る1つ以上のカードのセットを示すアプリケーションに付随する許可データと比較する、アプリケーションをカードが受け取る資格があるかどうか判定するテストが行われる。カードのパーソナル化データは、アプリケーションのための許可可能のセット内にある場合、アプリケーションはカードにロードされ得る。好ましくは、許可データは、カード番号、発行者、製品クラスおよびカードがパーソナル化された日付を表すデータを含む。
【発明の詳細な説明】
【背景技術】
【0001】
(発明の背景)
集積回路(「IC」)カードは、今日世界中で、多くの異なる目的のためにますます多く使用されている。ICカード(スマートカードとも呼ばれる)は、典型的に、従来のクレジットカードの大きさであり、コンピュータチップを有している。このコンピュータチップには、マイクロプロセッサ、リードオンリーメモリ(ROM)、電気的消去可能プログラム可能リードオンリーメモリ(EEPROM)、入力/出力(I/O)メカニズム、および、動作中にマイクロプロセッサをサポートするその他の回路が含まれている。ICカードは、そのメモリ内に、単一のアプリケーションを有していてもよいし、あるいは、複数の独立したアプリケーションを有していてもよい。MULTOSTMは、他のプラットフォームの中でもとりわけICカード上で動作し、そのカード上で複数のアプリケーションの実行を可能にするマルチアプリケーションオペレーティングシステムである。これにより、カードユーザは、そのカードを使用するために挿入した端末(即ち、ATM、電話および/またはPOS)の種類に関わらず、そのカードに保存された多数のプログラム(例えば、クレジット/デビット、電子マネー/財布、および/またはロイヤリティアプリケーション)を実行することができるようになる。
【0002】
テレフォンカードおよび電子キャッシュカードのような従来の単一アプリケーションICカードは、カードユーザに与えられる前に、その製造の時点で、単一のアプリケーションを付与される。しかし、たとえカードユーザまたはカード発行者がアプリケーションの改変を望んだとしても、カード発行後にアプリケーションを改変または変更することはできない。さらに、あるカードユーザが、そのユーザに対して発行されたICカードに、様々なアプリケーション機能、例えば、電子財布およびクレジット/デビット機能の両方を果たして欲しい場合、カードユーザは複数の物理的カードを持ち運ばなければならない。これは、非常に煩雑で不便である。アプリケーション開発者(application developer)またはカードユーザが、2つの異なるアプリケーション間での相互作用またはデータ交換、例えば、財布機能がフリークエントフライヤーロイヤリティアプリケーションと相互作用することを望んだ場合、カードユーザは、カードを入れる端末に複数のカードを代わる代わる出し入れしなければならず、処理が、困難で、時間がかかり、不便なものになる。
【0003】
従って、同じICカード上に複数アプリケーションを保存することは有益である。例えば、カードユーザは、同じカード上に財布アプリケーションおよびクレジット/デビットアプリケーションの両方を有し、買物を行うときにどちらの種類の支払い(電子キャッシュまたはクリジットカード)を使用するのかを選択し得る。十分なメモリが存在し、且つ、複数のアプリケーションをサポートできるオペレーティングシステムがカード上にあれば、1枚のICカードに複数のアプリケーションを付与することができる。複数のアプリケーションを予め選択して、それらを製造段階でカードのメモリ内に入れておくことも可能であるが、必要に応じて、製造後に、そのカードのアプリケーションをロードおよび削除できるようにすることも有益であろう。
【0004】
1枚のカード上に複数のアプリケーションを保存する向上した柔軟性および性能は、個々のカードとアプリケーション提供者との間で交換され、また、アプリケーションをロードおよび削除する際に全システム内で交換される情報(アプリケーションコードおよび関連するデータを含む)の完全性および安全性に関して克服すべき新たな技術的課題を生み出す。カード、カード発行者、システムオペレータおよびアプリケーション提供者間で安全にデータを交換できる能力、ならびに、ローカル端末から、または、電話線、インターネット、イントラネット接続、もしくはその他のデータ経路上で遠隔的に、何時でも安全にアプリケーションをロードおよび削除できる能力をICカードシステム内に持つことは有益であろう。典型的にこれらのデータ送信線は安全な線ではないので、これらの送信線上で送られるアプリケーションが改竄されることなく意図したカード上にのみロードされることを確実にするためには、複数のセキュリティおよびエンティティ認証技術を確立しなければならない。
【0005】
特に、カード所有者が利用できる新たなアプリケーションが増え続けている状況では、上記のように、発行後にICカード上にアプリケーションを追加する能力をシステムに持たせることが重要である。このことは、ICカードの寿命の長さを守るために必要である。さもなくば、アプリケーションが古くなったときに、そのカードが無用になってしまう。遠隔位置から、および、アプリケーション提供者の端末からの直接接続によって、アプリケーションを追加できるようにすることは有益であろう。例えば、カードユーザが、そのユーザのICカードをユーザのホームコンピュータに差し込んで、インターネット上でアプリケーションをダウンロードできれば有用であろう。アプリケーションコードおよび関連データをインターネット等のセキュリティが確立されていない通信線上で送信する場合、この種のアプリケーション遠隔ロードは複数のセキュリティ上のリスクを生じる。このような能力を提供するシステムにおいて、少なくとも3つの問題点に取り組む必要がある。
【0006】
第1の問題点は、アプリケーションを受け取るICカードが、目的のICカードであり、別のICカードにならないように確実に取り計らうことである。第2の問題点は、アプリケーションが適切なアプリケーションプロバイダから得られたものであって、未知の第三者から得られたものでないことを、ICカードがどのようにして認証(authenticate)することができるかを判定することである。第3の問題点は、第三者がアプリケーションから読み出しを行って、認可されていない(unauthorized)コピーを作ることを防ぐことに関する。後半の問題点に取り組むために、アプリケーションの一部分が暗号化される場合、目的のICカードは、アプリケーションを復号化するための正確な鍵へのアクセスを持っている必要がある。多くのICカードおよびさらなる多くのアプリケーションプロバイダを有するシステムにおいて、目的のICカードが、受け取られたアプリケーションについての正確な鍵を使用できるように、安全鍵伝送技術(secure key transfer technique)が要求される。
【発明の概要】
【発明が解決しようとする課題】
【0007】
従って、本発明の実施の目的の1つは安全な鍵配送技術を提供することであり、具体的には、ICカード上にロードされ得るスマートカードアプリケーションのための改善された安全な配送を可能にする改善された安全なICカードシステムを提供することである。
【課題を解決するための手段】
【0008】
(発明の要旨)
ICカードシステム、ならびにICカード上へアプリケーションを安全にロードするための方法を提供する本発明により、これらおよび他の目的が達成される。ICカード上へアプリケーションを安全にロードする方法は,ICカードのための秘密鍵および公開鍵のペアを提供すること、転送鍵を用いアプリケーションの少なくとも一部を暗号化すること、ICカードの公開鍵を用いて伝送鍵を暗号化し、鍵変換ユニットを形成すること、暗号化アプリケーションおよび鍵変形ユニットをICカードに転送すること、ICカードの秘密鍵を用いて鍵変換ユニットを復号化し、伝送鍵を提供すること、提供された伝送鍵を用いて暗号化アプリケーションを復号化すること、およびICカード上の復号化アプリケーションを格納することを含む。
【0009】
好適な実施形態において、ローディングシステムおよび方法により、アプリケーションプロバイダが、2つ以上の異なった鍵で転送されるアプリケーションの2つ以上の部分を暗号化すること、ICカードの公開鍵で2つ以上の鍵を暗号化し、暗号化部分の位置を含む鍵変換ユニットを形成することが可能になる。暗号化アプリケーションおよび鍵変換ユニットの両方はICカードに送信される。復号鍵は、ICカードの公開鍵で暗号化されるので、ICカードの秘密鍵のみが鍵変換ユニットを復号化することができる。伝送鍵および暗号化部分の位置は、復号化された鍵変換ユニットから回復され、アプリケーションは回復された伝送鍵を用いて復号化される。これにより、目的とされるICカードは、復号化し、ICカードに転送されたアプリケーションを使用することができる。
【0010】
好適な実施形態において、アプリケーションのロード証明は、また、アプリケーションを受け取るICカードに送信される。アプリケーションのロード証明は、証明機関(CA)の秘密鍵によって暗号化されたアプリケーションプロバイダの公開鍵、または、ICカードシステムの全体のセキュリティを管理するエンティティを含む。次に、ICカードは証明機関の公開鍵を用いて、CAの公開鍵でアプリケーションのロード証明を検証することを試みることによって、証明が妥当であったかを確かめる。次に、ICカードは回復されたアプリケーションプロバイダの公開鍵を使用し、アプリケーションプロバイダが実際に、アプリケーションプロバイダの対応する秘密鍵で生成された、送付されたアプリケーション署名を検証することによってアプリケーションの創設側(originator)であったことを検証する。
(項目1)
ICカード上へアプリケーションをロードする方法であって、
該ICカードのための秘密鍵および公開鍵のペアを提供する工程と、
伝送鍵を用いて該アプリケーションの少なくとも一部分を暗号化する工程と、
該ICカードの公開鍵を用いて該伝送鍵を暗号化し、鍵変形ユニットを形成する工程と、
該暗号化されたアプリケーションおよび該鍵変形ユニットを該ICカードに転送する工程と、
該ICカードの秘密鍵を用いて該鍵変形ユニットを復号化し、該伝送鍵を回復する工程と、
該回復された伝送鍵を用いて、該暗号化されたアプリケーションを復号化する工程と
を含む、方法。
(項目2)
前記ICカード上に前記復号化されたアプリケーションを格納する工程を更に含む、項目1に記載の方法。
(項目3)
前記伝送鍵を用いる暗号化技術が、対称である、項目1または2に記載の方法。
(項目4)
前記対称技術はDESである、項目3に記載の方法。
(項目5)
前記ICカードの公開鍵および秘密鍵は非対称技術を用いて提供される、項目1から4のいずれかに記載の方法。
(項目6)
前記非対称技術はRSAである、項目5に記載の方法。
(項目7)
前記鍵変形ユニットは、前記アプリケーションの前記少なくとも一部を暗号化するために使用される技術をさらに示す、項目1から6のいずれかに記載の方法。
(項目8)
前記アプリケーションの前記少なくとも一部を除いた該アプリケーションの第2の部分を暗号化する工程をさらに含む、項目1から7のいずれかに記載の方法。
(項目9)
前記第2の部分は、第2の暗号化技術を用いて暗号化され、前記鍵変形ユニットは、該第2の暗号化技術を示す、項目8に記載の方法。
(項目10)
前記第2の部分は、第2の鍵を用いて暗号化され、前記鍵変形ユニットは、該第2の鍵を示す、項目8または9に記載の方法。
(項目11)
前記鍵変形ユニットは、前記アプリケーションの前記第2の部分の位置を示す、項目8から10のいずれかに記載の方法。
(項目12)
前記鍵変形ユニットは、前記アプリケーションの前記少なくとも一部の位置を示す、項目1から11のいずれかに記載の方法。
(項目13)
前記鍵変形ユニットは、前記アプリケーションの暗号化された部分の数を示す、項目1から12のいずれかに記載の方法。
(項目14)
アプリケーションプロバイダのための公開鍵および秘密鍵のセットを提供する工程と、
証明機関のための公開鍵および秘密鍵のセットを提供する工程と、
該証明機関の秘密鍵を用いて、該アプリケーションプロバイダの公開鍵を暗号化し、アプリケーションのロード証明を生成する工程と、
該アプリケーションプロバイダの秘密鍵を用いて、該暗号化されたアプリケーションにさらに署名し、署名された暗号化されたアプリケーションを生成する工程と、
該署名されたアプリケーションおよび該アプリケーションのロード証明を該ICカードに転送する工程と
をさらに含む、項目1から13のいずれかに記載の方法。
(項目15)
前記ICカードが、前記証明機関の公開鍵でアプリケーションのロード証明を認証する工程をさらに含む、項目14に記載の方法。
(項目16)
復号化されたアプリケーションのロード証明から前記アプリケーションプロバイダの公開鍵を用いて、前記署名された暗号化されたアプリケーションを認証する工程をさらに含む、項目15に記載の方法。
(項目17)
認証されたアプリケーション署名は、送信された暗号化されたアプリケーションと比較され、それらが等価であるかを判定する、項目16に記載の方法。
(項目18)
少なくとも1つのICカードと、
アプリケーションを該少なくとも1つのICカードに提供するためのアプリケーションプロバイダと、
該少なくとも1つのICカードおよび該アプリケーションプロバイダに連結された通信リンクと、
該ICカードのために生成された、公開鍵および秘密鍵のセットと、
該アプリケーションプロバイダにより用いられるために生成されるトランスポート鍵と、
アプリケーションであって、該アプリケーションの少なくとも一部は該トランスポート鍵を用いて該アプリケーションプロバイダによって暗号化され;該トランスポート鍵が該ICカードの公開鍵を用いて暗号化され、鍵変形ユニットを形成し;次に該暗号化されたアプリケーションおよび該鍵変形ユニットは、該通信リンクを介して該ICカードに転送され;該転送された該鍵変形ユニットが該ICカードの秘密鍵を用いて復号化され、該トランスポート鍵を回復し;該転送されたアプリケーションが該回復されたトランスポート鍵を用いて復号化され、該アプリケーションを回復する、アプリケーションと
を備える、ICカードシステム。
(項目19)
前記回復されたアプリケーションは、前記カード上に格納される、項目18に記載のシステム。
(項目20)
前記トランスポート鍵を用いた暗号化技術は、対称である、項目18または19に記載のシステム。
(項目21)
前記対称技術は、DESである、項目20に記載のシステム。
(項目22)
前記ICカードの公開鍵および秘密鍵は、非対称技術を用いて提供される、項目18から21までのいずれかに記載のシステム。
(項目23)
前記非対称技術は、RSAである、項目11に記載のシステム。
(項目24)
前記鍵変形ユニットは、前記アプリケーションの前記少なくとも一部を暗号化するために使用される技術をさらに示す、項目18から23のいずれかに記載のシステム。
(項目25)
前記アプリケーションの前記少なくとも一部に独立な該アプリケーションの第2の部分を暗号化する工程をさらに含む、項目18から24のいずれかに記載のシステム。
(項目26)
前記第2の部分は、第2の暗号化技術を用いて暗号化され、前記鍵変形ユニットは、該第2の暗号化技術を示す、項目25に記載のシステム。
(項目27)
前記第2の部分は、第2の鍵を用いて暗号化され、前記鍵変形ユニットは、該第2の鍵を示す、項目25または26に記載のシステム。
(項目28)
前記鍵変形ユニットは、前記アプリケーションの前記第2の部分の位置を示す、項目25から27のいずれかに記載のシステム。
(項目29)
前記鍵変形ユニットは、前記アプリケーションの少なくとも一部の位置を示す、項目18から28のいずれかに記載のシステム。
(項目30)
前記鍵変形ユニットは、前記アプリケーションの暗号化された部分の数を示す、項目18から29のいずれかに記載のシステム。
(項目31)
証明機関を更に含み、
公開鍵および秘密鍵のセットはアプリケーションプロバイダのために提供され;公開鍵および秘密鍵のセットは該証明機関のために提供され;該証明機関の秘密鍵は、前記アプリケーションプロバイダの公開鍵に署名するのに使用され、アプリケーションのロード証明を生成し;該アプリケーションプロバイダの秘密鍵は、前記暗号化されたアプリケーションにさらに署名するのに使用され、署名された暗号化されたアプリケーションを生成し、該署名された暗号化されたアプリケーションおよび該アプリケーションのロードの証明は、該ICカードに転送される、項目18から30のいずれかに記載のシステム。
(項目32)
前記ICカードが、前記証明機関の公開鍵で前記アプリケーションのロード証明を認証する、項目31に記載のシステム。
(項目33)
前記ICカードは、前記認証されたアプリケーションのロード証明から前記アプリケーションプロバイダの公開鍵を使用して前記署名された暗号化されたアプリケーションを認証する、項目32に記載のシステム。
(項目34)
認証されたアプリケーション署名を、前記暗号化されたアプリケーションと比較し、それらが等価であるかどうかを判定する、項目33に記載のシステム。
(項目35)
第1のマイクロプロセッサベースの装置から、第2のマイクロプロセッサベースの装置にデータを転送する方法であって、
伝送鍵を用いて該データの少なくとも一部を該第1の装置で暗号化する工程と、
該第1の装置において第2の鍵で該伝送鍵を暗号化し、鍵変形ユニットを形成する工程と、
該暗号化されたデータおよび該鍵変形ユニットを該第2の装置に転送する工程と、
該第2の装置で該鍵変形ユニットを復号化し、該伝送鍵を回復する工程と、
該回復された伝送鍵を用いて該暗号化されたデータを復号化する工程と
を含む、方法
(項目36)
前記第2の装置で前記復号化されたデータを格納する工程を更に含む、項目35に記載の方法。
(項目37)
前記第2の鍵は、非対称暗号化において使用される公開鍵および秘密鍵のセットに由来する、項目35または36に記載の方法。
(項目38)
前記鍵変形ユニットは、前記アプリケーションの少なくとも一部を暗号化するために使用される技術を更に示す、項目35から37のいずれかに記載の方法。
(項目39)
前記アプリケーションの前記少なくとも一部に独立な該アプリケーションの第2の部分を暗号化する工程をさらに含む、項目35から38のいずれかに記載の方法。
(項目40)
前記第2の部分は、第2の暗号化技術を用いて暗号化され、前記鍵変形ユニットは、該第2の暗号化技術を示す、項目39に記載の方法。
(項目41)
前記第2の部分は第2の鍵を用いて暗号化され、前記第2の鍵変形ユニットは該第2の鍵を示す、項目39または40に記載の方法。
(項目42)
前記鍵変形ユニットは、前記アプリケーションの前記第2の部分の位置を示す、項目39に記載の方法。
(項目43)
前記鍵変形ユニットは、前記アプリケーションの前記少なくとも一部の位置を示す、項目35から42のいずれかに記載の方法。
(項目44)
アプリケーションプロバイダのための公開鍵および秘密鍵のセットを提供する工程と、
証明機関のための公開鍵および秘密鍵のセットを提供する工程と、
該証明機関を用いて該アプリケーションプロバイダの公開鍵に署名し、アプリケーションのロード証明を生成する工程と、
該アプリケーションプロバイダの秘密鍵を用いて該暗号化されたアプリケーションをさらに暗号化し、署名された暗号化されたアプリケーションを生成する工程と、
該署名されたアプリケーションおよび該アプリケーションのロード証明を該ICカードに転送する工程と
をさらに含む、項目35から43のいずれかに記載の方法。
(項目45)
データ転送を処理するための方法であって、
アプリケーションを含む該データ転送を受け取る工程であって、該アプリケーションは、第1の鍵で暗号化された少なくとも一部、および、第2の鍵で暗号化された鍵変形ユニットを含み、該鍵変形ユニットは該第1の鍵を含む、工程と、
該鍵変形ユニットを復号化し、該第1の鍵を回復する工程と、
該第1の鍵を用いて該暗号化されたアプリケーションを復号化する工程と、
該復号化されたアプリケーションを格納する工程と
を含む、方法。
(項目46)
前記第2の鍵は、非対称暗号化において使用される公開鍵および秘密鍵のセットに由来する、項目45に記載の方法。
(項目47)
前記鍵変形ユニットは、前記アプリケーションの前記少なくとも一部を暗号化するために使用される技術を更に示す、項目45または46に記載の方法。
(項目48)
前記アプリケーションの前記少なくとも一部に独立な該アプリケーションの第2の部分を暗号化する工程をさらに含む、項目45から47のいずれかに記載の方法。
(項目49)
前記第2の部分は、第2の暗号化技術を用いて暗号化され、前記鍵変形ユニットは、該第2の暗号化技術を示す、項目48に記載の方法。
(項目50)
前記第2の部分は第2の鍵を用いて暗号化され、前記鍵変形ユニットは該第2の鍵を示す、項目48または49に記載の方法。
(項目51)
前記鍵変形ユニットは、前記アプリケーションの前記第2の部分の位置を示す、項目48に記載の方法。
(項目52)
前記鍵変形ユニットは、前記アプリケーションの前記少なくとも一部の位置を示す、項目45から51のいずれかに記載の方法。
(項目53)
アプリケーションプロバイダのための公開鍵および秘密鍵のセットを提供する工程と、
証明機関のための公開鍵および秘密鍵のセットを提供する工程と、
該証明機関を用いて該アプリケーションプロバイダの公開鍵に署名し、アプリケーションのロード証明を生成する工程と、
該アプリケーションプロバイダの秘密鍵を用いて該暗号化されたアプリケーションをさらに暗号化し、署名された暗号化アプリケーションを生成する工程と、
該署名されたアプリケーションおよび該アプリケーションのロード証明を該ICカードに転送する工程と
をさらに含む、項目45から52のいずれかに記載の方法。
(項目54)
前記ICカードが、前記証明機関の公開鍵で前記アプリケーションのロード証明を認証する工程をさらに含む、項目53に記載の方法。
(項目55)
前記認証されたアプリケーションのロード証明から前記アプリケーションプロバイダの公開鍵を用いて、署名された暗号化されたアプリケーションを認証する工程をさらに含む、項目54に記載の方法。
(項目56)
認証されたアプリケーション署名を前記暗号化されたアプリケーションと比較し、それらが等価であるか判定する、項目55に記載の方法。
(項目57)
データ転送を処理するための装置であって、
アプリケーションを含む該データ転送を受け取る手段であって、該アプリケーションは、第1の鍵で暗号化された少なくとも一部と、第2の鍵で暗号化された鍵変形ユニットを含み、該鍵変形ユニットは該第1の鍵を含む、手段と、
該鍵変形ユニットを復号化し、該第1の鍵を回復する手段と、
該第1の鍵を用いて該暗号化されたアプリケーションを復号化する手段と、
該復号化されたアプリケーションを格納する手段と
を含む、装置。
(項目58)
前記第2の鍵は、非対称暗号において使用される公開鍵および秘密鍵のセットに由来する、項目57に記載の装置。
(項目59)
前記鍵変形ユニットは、前記アプリケーションの前記少なくとも一部を暗号化するために使用される技術をさらに示す、項目57または58に記載の装置。
(項目60)
前記アプリケーションの前記少なくとも一部を除いた該アプリケーションの第2の部分を暗号化するための手段をさらに含む、項目57から59に記載の装置。
(項目61)
前記第2の部分は、第2の暗号化技術を用いて暗号化され、前記鍵変形ユニットは、該第2の暗号化技術を示す、項目60に記載の装置。
(項目62)
前記第2の部分は、第2の鍵を用いて暗号化され、前記鍵変形ユニットは、該第2の鍵を示す、項目60または61に記載の装置。
(項目63)
前記鍵変形ユニットは、前記アプリケーションの前記第2の部分の位置を示す、項目60から62のいずれかに記載の装置。
(項目64)
前記鍵変形ユニットは、前記アプリケーションの前記少なくとも一部の位置を示す、項目57から63のいずれかに記載の装置。
(項目65)
前記証明機関の公開鍵でアプリケーションのロード証明を認証するための手段をさらに含む、項目60から64のいずれかに記載の装置。
(項目66)
前記認証されたアプリケーションのロード証明に位置するアプリケーションプロバイダの公開鍵を用いて前記署名された暗号化されたアプリケーションを認証する手段をさらに含む、項目65に記載の装置。
(項目67)
認証されたアプリケーション署名は、前記暗号化されたアプリケーションと比較され、それらが等価であるかを判定する、項目66に記載の装置。
【図面の簡単な説明】
【0011】
本発明の例示的な実施形態を示す添付の図面に関連して以下の詳細な説明を読むことにより、本発明のさらなる目的、特徴および利点が明らかになるであろう。
【図1】図1は、アプリケーション提供者からICカードにアプリケーションをロードするアプリケーションロードシステムのブロック図である。
【図2】図2は、アプリケーションロードユニットの内容を図示したものである。
【図3】図3は、アプリケーションユニットを図示したものである。
【図4】図4は、あるICカードについての個々の鍵組を提供する工程のフローチャートである。
【図5】図5は、鍵変換ユニットを図示したものである。
【図6】図6は、鍵変換ユニットの平文を図示したものである。
【図7】図7は、アプリケーションロード証明書(Application Load Certificate)を図示したものである。
【図8】図8は、アプリケーションユニットが復号化される様子を図示したものである。
【図9】図9は、アプリケーションロードユニットを処理する際に行われる工程を示すフローチャートである。
【図10】図10は、KTUを処理する際に行われる工程を示すフローチャートである。
【図11】図11は、アプリケーションロードユニットを受け取り、これを処理することができるICカードの構成要素を示すブロック図である。
【発明を実施するための形態】
【0012】
そうでないことが記載されている場合を除き、全図面を通して、同じ参照番号および文字は、例示された各実施形態において同じ特徴部、部材、構成要素および部分を示すために用いられている。さらに、以下で図面を参照しながら本発明を説明するが、これは例示的な実施形態に関する説明である。添付のクレームによって規定される本発明の真の範囲および趣旨から逸脱することなく、記載された実施形態に変更および改変を加えることが可能であることが意図されている。
【0013】
(発明の詳細な説明)
そのICカードの寿命の任意の時点で、複数のアプリケーションオペレーティングシステムを含むICカード上にアプリケーションをロードできる能力を持つことは有益である。この柔軟性によって、カードのユーザが、定期的に新しいアプリケーションをICカードに追加すること、ならびに、より新しいバージョンのアプリケーションがリリースされたときに、新しいバージョンのアプリケーションを用いて古いアプリケーションを更新することが可能になる。例えば、カードユーザは、初めに、財布または電子キャッシュアプリケーション(例えば、MONDEXTM)が保存されたICカードを持ち得る。ユーザがこのカードを持ってからしばらくした後、このユーザは、クレジット/デビットアプリケーションのような追加アプリケーションをこのカード上にロードし得る。カード上にクレジット/デビットアプリケーションをロードしてからしばらくした後、そのクレジット/デビットアプリケーションの新しいバージョンが利用可能になり得る。その時、このカードユーザが、そのICカード上の古いアプリケーションを消去して、さらなる機能を有し得るクレジット/デビットアプリケーションの新しいバージョンに置き換えることは可能であるべきである。
【0014】
ICカードの寿命サイクルにおける複数の異なる時点でアプリケーションのロードを行うという柔軟性は、カード上にアプリケーションをロードするプロセスに関してセキュリティ上の問題を生じる。マルチアプリケーションオペレーティングシステム環境においては、アプリケーションのロードを、銀行のATMマシンのような端末と、電話線、ケーブル線、インターネット、衛星または他の通信手段等の遠隔通信リンク上との両方で行えることが有益である。ICカード上にアプリケーションをロードする際、アプリケーション提供者およびカード発行者(同じエンティティであり得る)は、ロードすべきアプリケーションに関するセキュリティを提供する必要がある。第1に、アプリケーション提供者は、そのアプリケーションを受け取ることが意図された正しいカードユーザにのみアプリケーションが送られることを確実にしなければならない。この問題に対する1つの解決方法が、1998年2月19日に出願され、Mondex Internationalに譲渡された、Everetteらによる”Multi−Application IC Card System Having Selective Loading and Deleting Capacity”という名称の関連PCT出願において試みられている。この文献を、本明細書に添付したアネックスBへの参考として本明細書中で援用する。アプリケーションを離れたソースから、またはローカルターミナルから、ICカード上へとロードする場合に、2つのさらなるセキュリティに関する問題に取り組む必要がある。まず、ウイルスを含み得るか、または、単にICカード内の限られた記憶メモリを占拠し得るアプリケーションをICカード上にロードすることがないように、アプリケーションのソースは適切な発信元(originator)として認証される必要がある。第2に、アプリケーションおよび関連データは、個人的または企業秘密情報を含み得る。このような個人的または企業秘密情報は暗号化することにより、暗号化されたアプリケーションコードおよびデータの内容を他の人々に見られないようにする必要がある。アプリケーションコードおよびデータの一部が秘密であり、他の部分は秘密ではない場合もある。本願では、カードにロードするアプリケーションおよび関連データの一部または全ての内容の認証および保護という問題に対処する。
【0015】
本明細書中、複数の暗号化/復号化技術が記載される。対称暗号化および非対称暗号化という2つの基本的な種類の暗号化がある。対称暗号化では、式および鍵を用いてデータを変換することにより、データを暗号化する数式の一部として秘密鍵を用いる。データを暗号化した後、これと同じ秘密鍵を関連する復号化アルゴリズムとともに用いて、別のパーティが、この暗号化されたデータを復号化することができる。同じ鍵は暗号化および復号化のために用いられ、技術は対称的である。対称アルゴリズムの従来例の1つは、DESである。
【0016】
非対称暗号化技術では、1対をなす異なる2つの鍵を用いて情報の暗号化および復号化を行う。これらの2つの鍵は、通常、プライベートまたは秘密鍵および公開鍵と呼ばれる。この1対の鍵の一方を用いてデータを暗号化した場合、そのデータの復号化には他方の鍵が用いられる。データの送り主が、そのデータをその送り主の秘密鍵を用いて署名すると、公開鍵を持っていれば誰でもそのメッセージを検証できる。典型的に、公開鍵は公に知られているので、秘密鍵を用いて署名されたデータの内容を保護することはできないが、特定の秘密鍵によってそのデータが署名されているかどうかを判定することによってそのデータの起源(origination)は検証できる。この認証プロセスは、デジタル署名と呼ばれる。人物Aが人物Bに送ろうとしているメッセージを人物Aが認証したい場合、人物Aは、人物Aの秘密鍵を用いてその文書を解読する。公開鍵が提供された後に文書が読み出されると、人物Bは、人物Aの公開鍵を用いてそのメッセージを検証する。その公開鍵を用いてそのメッセージが検証されると、その文書が人物Aの秘密鍵を用いて署名されたことを人物Bが知ることになる。このようにして、メッセージの起源(origin)が認証される。
【0017】
非対称鍵組を用いてメッセージの内容を保護することも可能である。人物Aが、人物Bに、他の誰も読むことのできない暗号化されたメッセージを送りたい場合、人物Aは、そのデータまたはメッセージを人物Bの公開鍵を用いて暗号化し、それを人物Bに送る。そうすれば、人物Bの秘密鍵の所有者しかそのデータを復号化できなくなる。複数の鍵の組み合わせを用いれば、ある人物がそのメッセージの認証および暗号化の両方を行うことが可能である。非対称の鍵対には、カードセキュリティに関していくつかの強力な用途があり、対称暗号化よりもより頑強である。しかし、非対称暗号化は、対称暗号化と比べて比較的プロセッサコストがより高くつく(プロセッサコストは演算時間と関連している)。非対称暗号化方法の一例は、RSA(R)である。
【0018】
暗号化方法をより強力にするハイブリッド対称暗号化方法の1つは、2つの対称鍵を用いてデータを暗号化することである。この技術はトリプルDESと呼ばれ、対称鍵1を用いてデータを符号化し、対称鍵2を用いてそのデータを復号化し(これにより、そのデータをさらに符号化することになる)、そして、再び鍵1を用いてそのデータをさらに符号化するものである。データがその目的地に到着した後、鍵1を用いてそのデータを復号化し、鍵2を用いてそのデータを符号化し、そして、鍵1を用いてそのデータを復号化する。これらの余分な符号化および復号化ステップによって、この技術はより強力になるとともに、両方の鍵がそろっていない状態で適切に復号化することがより困難になる。
【0019】
図1は、安全な遠隔アプリケーションローディングプロセスに使用されるエンティティのブロック図を示す。アプリケーションプロバイダ101は、カードの発行者、銀行、またはアプリケーションローディングサービスを提供する他のエンティティであり得る。アプリケーションプロバイダ101は、ICカード103上へのアプリケーションローディングプロセスを起動する。アプリケーションプロバイダ101は、データコンデット107に接続され、データコンデット107は、インターフェイスデバイス105(例えば、ICカードと通信する端末)に接続されている。データコンデット107は、電話回線、イントラネット、インターネット、衛星リンク、またはその他の任意のタイプの通信リンクであり得る。アプリケーションプロバイダ101は、ICカード103から遠隔に配置され、ICカードへアプリケーションを送信してロードすることを所望する。しかしながら、データリンクがオープンリンクであり、送信されるアプリケーションを妨害したり置換する第三者に晒されているために、アプリケーション自体を認証する安全手段、アプリケーションプロバイダ、およびICカードが、システムの整合性を確実にするために使用されなければならない。送信されているいくつかのデータが識別されたシステム一部であることの認証を補助するためには、証明機構CA109も使用され得る。
【0020】
図1では、アプリケーションプロバイダは、インターフェースデバイス105へ、そして最終的にはICカード103へ、アプリケーションロードユニット111を送信する。ALUは、アプリケーション自体および認証に必要なセキュリティデータを含み、アプリケーションコードおよび関連データを保護する。ALUは、図2において詳細を論じたが、本明細書の他の図とも関連がある。ALU111は、好適には、証明機構(CA)109からアプリケーションプロバイダ101に送信されるアプリケーションロード証明(ALC)113データをも含む。証明機構は、ICカード上にロードされるべき各アプリケーションに対するアプリケーションロード証明を供給することによって、システムの全体的なセキュリティを管理する。アプリケーションプロバイダ101およびICカード103の両方は、それらに提供される個々の公開/秘密鍵セットを有する。認証とセキュリティのプロセスを以下に説明する。
【0021】
図2は、アプリケーションロードプロセス中にアプリケーションローダからICカードに送信されるアプリケーションロードユニットの構成要素を説明する図を示す。アプリケーションロードユニット(ALU)201は、アプリケーションユニット(AU)203、アプリケーションユニット署名(AUs)205、
鍵変換ユニット(KTU)207、およびアプリケーションロード証明(ALC)209を含む。ALC201は、データ送信中に使用される従来フォーマットで初期化される。AU203は、ICカード上に記憶されるべきアプリケーションコードおよびデータを含み、それらの一部またはすべてが、秘密部分を、もしくはコードおよび/またはデータ部分を保護するために暗号化される。AU203を、図3を参照してさらに詳細に説明する。
【0022】
AUs205は、アプリケーションプロバイダの秘密鍵でデジタル的に署名されたアプリケーションコードおよびデータAU203である。アプリケーションプロバイダの公開鍵は、ALC209の一部として送信され、アプリケーションの作成者としてアプリケーションプロバイダを認証するのに使用される。ALC209は、カード識別情報およびアプリケーションプロバイダの公開鍵から構成され、証明機構の秘密鍵によって署名される。以下、これらの要素をすべて、より詳細に説明する。
【0023】
KTU207は、指定された部分をICカードが復号化するのを可能にする、AU203(アプリケーションのコードおよびデータ)の暗号化に関する情報を含み、これにより、アプリケーションおよびデータはICカードによってアクセスされ得るが、アプリケーションプロバイダとICカードとの間での送信中にデータを保護する。KTU207は、アプリケーションが意図されるICカードの公開鍵で署名されており、これにより、意図されたICカードのみが、KTU情報を用いたアプリケーションコードおよびデータを復号化できることを確実にする。この要素は図5を参照して説明する。
【0024】
図3は、アプリケーションロードユニットの一部であるアプリケーションユニット203の図を示す。AU203は、カードユーザのICカード上にロードされるべきプログラムコードおよび関連データ両方を含む。プログラムコードは、ICカードのマイクロプロセッサによって実行される複数のプログラム命令を含む。プログラム命令は、ICカード上に記憶されているオペレーションシステムが解釈できる任意のプログラミング言語で記述され得る。
【0025】
例えばMULTOSシステムでは、プログラムはMELTM(MULTOS実行可能言語)で記述され得る。たいていのアプリケーションは、カード上にロードされなければならない関連データを有する。例えば、人名またはアカウント番号などカードユーザを識別するデータは、クレジット/デビットアプリケーションを伴う安全な方式においてロードされ得る。アプリケーションプロバイダは、データによって表される電子キャッシュを、電子パースアプリケーションをインストールするときに助成として提供し得る。このデータのいくつかまたは全部が、第三者から秘密に保たれることが所望される。ひいては、アプリケーションコード自体が独占物であると見なされ得、その一部が他者からは秘密であることが所望され得る。鍵変換ユニット(KTU)の使用は、アプリケーションプロバイダーがアプリケーションの選択された部分を秘密として暗号化し、第三者からそれを保護することを可能にする。
【0026】
アプリケーションユニット部分305は、アプリケーションプロバイダからICカードに送信されるべきプログラムコードを指示する。アプリケーションユニット部分307は、ICカード上にロードされるべきアプリケーションの一部として送信されるべき関連データを指示する。この例では、アプリケーションユニットの3つの個別領域が、単一のDESまたは3重のDESのいずれかを用いて暗号化されることが示されている。暗号化される部分および暗号化のタイプに関する任意の数の変更が、本願記載の技術を用いて実施され得る。
【0027】
この例では、暗号化されたロケーション309は、3重DES技術を用いて暗号化されたアプリケーションユニット203の第1の部分を示す。上述の暗号化プロセスは、対称的鍵および従来公知のDESアルゴリズムを用いてデータを変換することを含む。データはその後、従来公知のDESベースアルゴリズムにデータを代入することにより復元され得る。暗号化ロケーション311は、3重DESを用いて暗号化されたアプリケーションユニット203の第2の部分を示す。暗号化ロケーション313は、単一のDESを用いて暗号化された第3の部分を示す。単一DESは、より少ない計算しか復号化に要さず、後述するKTUの一部として、より少ない領域しか占有しない。アプリケーションローダからICカードへ送信中に、第三者によってアプリケーションユニットが妨害された場合、第三者が正しい鍵を有するまで、暗号化された部分は、読み出され得ない。従って、情報はKTU内で保護される。
【0028】
KTUは、アプリケーションユニットのどの部分が暗号化されるか、どの暗号化アルゴリズムが使用されるか、およびテキストの復号化に使用される単数または複数の鍵を記述することによって、アプリケーションおよび関連データの意図するICカードが、アプリケーションユニットの暗号化部分を復号化することを可能にする。この情報は、アプリケーションプロバイダと意図されるICカードとの間で高度に秘密であり、従って意図されるカードに極めて特殊な方式で保護される。送信されるALU全体の一部であるKTUを暗号化するために、特定の意図されるICカードのための個別鍵セットが使用される。鍵セットおよびその作成を以下に説明する。
【0029】
CAにおいて実行される安全処理の一つは、カード上に記憶された各ICカードのための個別化された鍵セットを作成することである。鍵は、オフカード検証(即ちカードが正真のカードであることを検証する)および安全なデータ配送に使用される。鍵作成プロセスを図4に概略的に示す。鍵セットは、3つの異なる鍵データアイテムから構成される。即ち、カードのみが知っているカード秘密鍵、カード上に記憶されているカードの公開鍵、およびCAの秘密鍵の一つによって署名されたカード公開鍵であるカード公開鍵証明である。以下、鍵セットの個々の鍵を、より詳細に説明する。
【0030】
工程401は、カードのメモリ内の個別ICカードに対して、カード特定的に配送された秘密鍵を記憶する。この秘密鍵は、CAにより作成され、カード許可デバイスを介してカード上にロードされる。ひとたびカード上に記憶されれば、CAはそれ自身のメモリから秘密鍵に関するあらゆるデータを消去する。従って、カード自体のみがその秘密鍵を知っている。カード内の秘密鍵情報を含んでいるデータ要素は、「mkd_sk」と呼ばれ、MULTOS鍵データ秘密鍵を意味する。
【0031】
工程403は、カードのメモリ内の個々のICカードのためのカード特定的に配送された公開鍵を記憶する。この公開鍵は、好適には、工程401において秘密鍵を作成するのに使用された非対称暗号化技術からCAによって作成される。カードの公開鍵情報を含むデータ要素は「mkd_pk」と呼ばれ、MULTOS鍵データ公開鍵を意味する。
【0032】
工程405は、カードメモリ内の個々のICカードのためのカード特定的に配送された公開鍵証明を記憶する。カードの公開鍵証明情報を含むデータ要素は、「mkd_pk_c」と呼ばれ、MULTOS鍵データ公開鍵証明を意味する。この公開鍵証明は、好適には、以下に示すようにCAの秘密鍵で配送公開鍵「mkd_pk」に暗号化することにより作成される。
【0033】
mkd_pk_c=[mkd_pk]CA_sk
これは、個々のカードの公開鍵証明が、CAの秘密鍵を個々のカードの公開鍵に適用して作成されることを意味する。このプロセスは、CAにおいて実施される。公開鍵証明はCAによって保存され、これにより、必要に応じて公開鍵を再作成することができる。
【0034】
端末がICカードから公開鍵証明を読み出し得、CAが署名をし、それにより個々のICカードを認可したことを検証できる。これは、mkd_pkに署名するのに使用されたCA鍵セットの公開要素で公開鍵証明を検証することによって達成される。暗号化公開鍵は、鍵認証がCAによって認証(署名)されたかを立証するために公開鍵と比較され得る。
【0035】
図5は、KTU207の内容を図示したものであり、ヘッダ部分501およびKTU暗号文部分503を含んでいる。図5に示すように、ヘッダ情報501は、例えば、application_id_no(アプリケーション識別番号)、mcd_no(ICカード番号)および/またはmsm_control_data_date(ICカードが発行された日付)などの識別子または許可情報505を含む。追加の識別子も含まれ得る。これらの識別子により、システムは、ALUを受信するICカードが意図されたICカードであることを検証できる。許可データは、上記参照した関連出願に詳細に記載されている。
【0036】
KTU暗号文503は、ボックス507に示す意図されたICカードの公開鍵mkd_pkで暗号化されたKTU平文(暗号化されていない)に対応する。KTU平文は、図6においてさらに説明する。公開鍵mkd_pkは、アプリケーションプロバイダーによって、意図されたICカードから取得される。ICカードの公開鍵は、誰でも自由に利用でき、カードまたはCAから直接入手できる。KTU平文をICカードの公開鍵で署名化することによって、意図されたICカードのみが公開/秘密鍵対の秘密鍵を用いてKTU暗号文を復号化することができる。これは、意図されたICカードのみが、KTU平文の内容を決定し、ロードされるアプリケーションの暗号化部分を識別し、鍵を用いてアプリケーション全体および関連データを復号化し復元できることを意味する。その他のエンティティは、ICカードの秘密鍵を有さないので、送信されているプログラムコードおよびデータのセキュリティと整合性とが確保される。
【0037】
図6は、KTU平文601を示す図である。KTU平文601は、好適には、識別子フィールド603、no_area_discriptorsフィールド605、alg_idフィールド607、area_startフィールド609、area_length611、key_lengthフィールド613、key_dataフィールド615、ならびに、アプリケーションユニット内に存在する暗号化領域の数によって追加の領域および鍵フィールドを含む。識別子603は、KTUが適用されるアプリケーションユニットの識別情報を含む。
【0038】
No_area_descriptors605は、いくつの数のAUの異なる部分が暗号化されたのかを示す。図3の例では、領域記述子の数は3である。フィールド607は、暗号化された第1の領域のためのアルゴリズム識別子を含む。アルゴリズムは、例えば、DESまたは三重DESであり得る。フィールド609は、第1の暗号化領域の開始を指示する。この指示は、AUの開始からのオフセットであり得る。例えば、オフセットは、100により得る。これは、第1の領域が、アプリケーションユニットの100番目のバイトから開始することを意味する。フィールド611は、第1の暗号化部分の領域長を指示する。このフィールドにより、ICカード上のマイクロプロセッサは、どの程度の大きさの領域が暗号化され、領域の開始といつ結合されたのかを知ることができ、ICカードマイクロプロセッサは、アプリケーションユニットの正しい部分を暗号化できる。フィールド613は、アプリケーションユニットの特定の暗号化部分に対する鍵長を指示する。鍵の長さは、異なる暗号化技術によって異なる。鍵長フィールドによって、ICカードは鍵データの長さを知ることができる。フィールド615は、特定の暗号化部分に対する鍵データを指示する。鍵データは、暗号化部分のアルゴリズム同一性およびロケーションとともに使用され、暗号化部分をデコードする。一つ以上の暗号化部分が指示されている場合、アルゴリズムを参照する追加のデータ、開始ロケーション、長さ、鍵長および鍵データが、KTU平文内に存在する。複数のフィールドを記載したが、本発明にすべてのフィールドが必要なのではない。しかしながら、最も重要なフィールドは、鍵データ自体である。
【0039】
図7は、アプリケーションロード証明(ALC)209を示す図である。ALC209は、ヘッダ701およびアプリケーションプロバイダ公開鍵703を含む。次に、ヘッダ701およびアプリケーションプロバイダ公開鍵703は、CAの秘密鍵で署名(暗号化)される。従って、CAのみがCAプライベート鍵を知っているので、ALC209は、ロードされる各アプリケーションに対してCAによってアプリケーションプロバイダに供給されなければならない。ヘッダ701は、アプリケーションが意図されるアプリケーションプロバイダおよびICカードに関する情報を含む。ALC209は、識別情報を使用し得るアプリケーションプロバイダによって正しいALU内に配置される。アプリケーションプロバイダ公開鍵703は、識別データとともにCAに供給される。次に、CAは、認証性を検証したあとで、この情報に署名し、アプリケーションプロバイダに署名されたALCを返送する。ICカードは、ALU201の一部としてALC209を受け取るとき、CAの公開鍵でALC209を検証する。これにより、CAがアプリケーションロード証明に署名し、それが本物であることを確証する。情報を複号化した後で、ヘッダ識別情報701がチェックされ、アプリケーションプロバイダ公開鍵が復元される。この公開鍵は、 ICカード上にロードされるべきアプリケーションおよびコードが適切なアプリケーションプロバイダによって作成されたことを検証するのに使用される。
【0040】
図8は、AU203がアプリケーションプロバイダによって署名されたことを検証するために、アプリケーションプロバイダの公開鍵を使用してAU署名205を複号化することを示した図である。AU署名205は、アプリケーションプロバイダ公開鍵801で検証される。受け取られたAU803は、AU203と比較される。データブロックがマッチした場合、ICカードは、アプリケーションプロバイダがアプリケーションユニットに署名(暗号化)し、アプリケーションが本物であることを検証した。この認証は、アプリケーションプロバイダのみが秘密鍵を有するので、有効である。アプリケーションプロバイダ公開鍵がCAによって署名されたアプリケーションロード証明209の一部として供給されているので、ICカードは、この情報を効率よく処理し得る。従って、外部ロケーションから公開鍵を復元して、アプリケーションを認証する必要がない。
【0041】
図9は、アプリケーションロードユニットがICカードによって受け取られたときに、これを処理するための工程のフローチャートを示す。ALUを受け取る前に、所望により、ICカードの同一性に関して同一性チェックが実行され得る。
ALUプロセス技術は、ロードされるアプリケーションが、(1)正しいアプリケーションプロバイダからであり、(2)意図されるカードにロードされ、(3)CAによって証明されていることを検証することを含む、数々のさらなる検証を提供する。また、ALUプロセス技術は、プログラムコードおよび関連データの部分を、ICカードが安全な方式で復号化できるようにする配送復号化鍵の配送を可能にする。工程901では、ICカードがアプリケーションプロバイダからALUを受け取る。ALUは、端末接続、遠隔接続(contactless connection)、電話、コンピュータ、イントラネット、インターネット、または他の任意の通信手段を介して送信され得る。ALUは、ICカードのI/Oバッファに、AU203、AU署名205、KTU207、およびALC209の開始アドレスを指示するヘッダ情報とともに配置される。あるいは、ICカードは、これら4つのユニットの相対アドレスロケーションを決定し得る。
【0042】
工程903は、CA公開鍵を備えたALC209を複号化する。各ICカードは、好適には、そのメモリ内にCA公開鍵の複製を記憶する。これは、CA公開鍵が多くのトランスアクションに使用されるからである。あるいは、ICカードは、公知の記憶ロケーションから公開鍵を取得し得る。 CA公開鍵がALC209を適切に検証した場合、ICカードは、CAが秘密鍵によってALC209に署名し、従って、アプリケーションロード証明は適切であることを検証する。ICカードが、ALCを適切に検証しなかった場合、 ALCはCAによって署名されておらず、証明は適切でない。そこで、アプリケーションローディングプロセスは終了する。
【0043】
次に、工程905が、アプリケーションロード証明において送られた識別情報に対してICカードの同一性をチェックし、カードがアプリケーションを受け取ることを意図されたものであることを確実にする。この許可チェックは、上記に確認した関連特許出願に記載されている。識別データの一致が存在しない場合、アプリケーションローディングプロセスは終了する。識別データが一致する場合、プロセスは継続する。
【0044】
工程907は、検証されたALCから復元されたアプリケーションプロバイダの公開鍵を用い、AU署名205を検証する。ALUがアプリケーションプロバイダにより作成されているとき、アプリケーションユニット203は、アプリケーションプロバイダの秘密鍵で署名される。次に、アプリケーションプロバイダは、ALCを介してICカードに公開鍵を供給する。ひいては、ICカードは、AU署名205を検証する。ALUが検証された場合、ALUはアプリケーションプロバイダによって作成されたとして検証される。アプリケーションプロバイダの公開鍵は、CAによって署名されたALCの一部であるので、CAは、適切な公開鍵がICカードに供給されたことを確証する。アプリケーションプロバイダと、CAと、意図されたICカードとの間のこの特殊な鍵インタラクションは、安全システムの一部であるICカードへの偽造、もしくは未許可のアプリケーションまたはデータが、ロードされないことを確証する。
【0045】
次に、工程911が、唯一意図されたカードのみがアプリケーションを受け取ることをさらに検証するKTU認証チェックを処理する。KTU認証チェックは、第三者が何らかにおいてALUを妨害した場合でも、第三者がAUの暗号部分を読み出せず、AUを復号化する鍵を受け取れないことを確証する。この工程を図10においてさらに示す。
【0046】
図10は、KTU認証プロセスの工程を示す。工程1001は、好適には任意であるので破線で示されているが、ICカードの同一性を再度チェックする。識別情報は、KTUデータの一部として送られ得る。しかしながら、このチェックは既に工程905において実施されているので、任意である。
【0047】
次に、工程1003が、ICカードの秘密鍵(mkd_sk)を用いてKTU暗号文503を復号化する。KTU平文は、意図されるカードの公開鍵(mkd_pk)を用いて、先だって暗号化されている。これは、唯一意図されたカードの秘密鍵の保持者のみが、暗号化されたメッセージを復号化し得ることを意味する。アプリケーションプロバイダは、ICカード自体から(図4およびmkd鍵セットに関する関連テキストを参照)、または公開鍵を保持するデータベースのいずれかから、意図されるICカードの公開鍵を入手する。ICカードがKTU暗号文を適切に復号化しない場合、KTUはそのカードには意図されておらず、アプリケーションローディングプロセスは停止する。ICカードがKTU暗号文を適切に復号化した場合、プロセスは継続する。
【0048】
工程1005は、アプリケーションユニット(AU)の暗号化領域を識別する。図6を参照して説明したKTU平文の例では、ICカードは、相対的開始アドレスおよび領域長フィールドを使用して、暗号化される部分を決定している。工程1005も、識別された部分を暗号化するのにどの暗号化技術を用いるかを識別し、これにより、適切な復号化技術が使用され得る。例えば、この技術は単一または三重のDESにより得る。あるいは、この技術は、システムに使用され識別の必要がないデフォルト技術であり得る。
【0049】
次に、工程1007が、KTU平文からの鍵を復元し、識別された部分を識別された復号化技術で復号化する。これにより、ひとたびすべての暗号化部分が復号化されれば、ICカードはスタティックメモリに記憶されるAUの復号化された部分を有する。
【0050】
工程1009は、その他に任意の暗号化領域が存在する場合をチェックする。図3に記載の例では、3つの暗号化領域が存在する。暗号化領域の数は、図6の例ではフィールドである。しかしながら、部分の数は、他の従来手段を用いて決定し得る。追加の暗号化領域が存在する場合、プロセスは工程1005に飛ぶ。追加の暗号化領域が存在しない場合、プロセスは工程1011から継続する。
【0051】
次に、工程1011は、復号化されたAUをICカードのメモリ内にロードする。ALUは、すべての認証および復号化チェックを通過し、ついにアプリケーションはICカード上に適切に存在し、カードユーザによって実行され使用され得る。図9および図10において、異なるチェックが特定順序で提示されたが、チェックは任意の順序で実施し得る。記載したすべての技術は、ALUに最良の安全性を提供することに関連して使用されたが、一つ以上の個別技術が、個別の目的のため、または他の従来安全技術との組み合わせで使用され得る。
【0052】
図11は、ALUがロードされ処理され得るICカードチップのブロック図の例を示す。使用されるICカード上には集積回路が配置される。ICカードは、好適には、中央演算装置1101、RAM1103、EEPROM1105、ROM1107、タイマ1109、制御ロジック1111、I/Oポート1113、および安全回路1115を含み、これらは従来のデータバスによって互いに接続されている。
【0053】
メモリカード内の制御ロジック1111は、入力/出力ポートを介してカードのメモリへの読み出し/書き込みを取り扱うのに充分なシーケンスおよびスイッチングを供給する。制御ロジックを備えたCPU1101は、計算、メモリロケーションへのアクセス、メモリ内容の変更、および入力/出力ポートの管理を実施する。カードのなかには、暗号処理など複雑な演算を取り扱うためのコプロセッサを有するものがある。入力/出力ポート1113は、CPUおよび制御ロジックの制御下で、カードとカードインターフェイスデバイスの間の通信のために使用される。タイマ1109(クロックパルスを生成し供給する)は、メモリアクセス、メモリ読み出しまたは書き込み、処理、およびデータ通信を完成する一連の工程を介して、制御ロジック1111およびCPU1101を駆動する。タイマーは、呼び出し持続時間などのアプリケーションの特徴を供給するのに用いられ得る。セキュリティ回路1115は、製造中におけるテストの必要に応じて、入力/出力配線を内部回路に接続する可融性の(fusible)接続を含んでいるが、この回路はテストの完了時に、その後のアクセスを防ぐために壊され(「溶融し(blown)」)、その後のアクセスを防ぐ。ALUが認証され検証された後のAUデータは、EEPROM1105に記憶される。本明細書に記載される認証プロセスは、CPU1101により実行される。
【0054】
また、図11は、アプリケーションプロバイダのためのおよび証明機構のための集積回路の可能な構成を示す。アプリケーションプロバイダのためのICチップ内に存在するCPU1101は、本明細書に記載した暗号化技術を用いて必要な情報を暗号化し、必要なデータ処理を実行する。証明機構に存在するCPU1101は、本明細書に記載したアプリケーションロード証明に署名するのに使用される。
【0055】
上記内容は、本願発明の原理を単に例示したものである。従って、本明細書には明示的に図示または記載しないが、本発明の原理を実施し、それにより、本発明の精神および範囲内にある多数のシステムおよび方法を、当業者が考案できることは理解される。
【0056】
例えば、本明細書ではアプリケーションのロードを記載しているが、同等の安全ローディングプロセスを、データブロック、データファイル、ワードプロセッシング文書、または安全な方式で送信を要する他の任意のタイプのデータなど、他のタイプのデータの送信に適用し得る。
【0057】
本開示の範囲は、請求された発明に関連するか否か、あるいは本発明で対処される課題の一部または全てを緩和するか否かに関わりなく、明示的または黙示的に開示された新規の特徴または特徴の組み合わせあるいはそれを一般化したものを含む。本出願は、本出願または本出願に由来する任意のさらなる出願の手続中に、そのような特徴に関する新しい請求項が作成され得ることの注意を促すものである。特に、付属の請求項に関しては、従属項に由来する特徴は、請求の範囲に挙げた特定の組み合わせのみならず、任意の適切な方法で独立項の特徴と組み合わせ得る。
【背景技術】
【0001】
(発明の背景)
集積回路(「IC」)カードは、今日世界中で、多くの異なる目的のためにますます多く使用されている。ICカード(スマートカードとも呼ばれる)は、典型的に、従来のクレジットカードの大きさであり、コンピュータチップを有している。このコンピュータチップには、マイクロプロセッサ、リードオンリーメモリ(ROM)、電気的消去可能プログラム可能リードオンリーメモリ(EEPROM)、入力/出力(I/O)メカニズム、および、動作中にマイクロプロセッサをサポートするその他の回路が含まれている。ICカードは、そのメモリ内に、単一のアプリケーションを有していてもよいし、あるいは、複数の独立したアプリケーションを有していてもよい。MULTOSTMは、他のプラットフォームの中でもとりわけICカード上で動作し、そのカード上で複数のアプリケーションの実行を可能にするマルチアプリケーションオペレーティングシステムである。これにより、カードユーザは、そのカードを使用するために挿入した端末(即ち、ATM、電話および/またはPOS)の種類に関わらず、そのカードに保存された多数のプログラム(例えば、クレジット/デビット、電子マネー/財布、および/またはロイヤリティアプリケーション)を実行することができるようになる。
【0002】
テレフォンカードおよび電子キャッシュカードのような従来の単一アプリケーションICカードは、カードユーザに与えられる前に、その製造の時点で、単一のアプリケーションを付与される。しかし、たとえカードユーザまたはカード発行者がアプリケーションの改変を望んだとしても、カード発行後にアプリケーションを改変または変更することはできない。さらに、あるカードユーザが、そのユーザに対して発行されたICカードに、様々なアプリケーション機能、例えば、電子財布およびクレジット/デビット機能の両方を果たして欲しい場合、カードユーザは複数の物理的カードを持ち運ばなければならない。これは、非常に煩雑で不便である。アプリケーション開発者(application developer)またはカードユーザが、2つの異なるアプリケーション間での相互作用またはデータ交換、例えば、財布機能がフリークエントフライヤーロイヤリティアプリケーションと相互作用することを望んだ場合、カードユーザは、カードを入れる端末に複数のカードを代わる代わる出し入れしなければならず、処理が、困難で、時間がかかり、不便なものになる。
【0003】
従って、同じICカード上に複数アプリケーションを保存することは有益である。例えば、カードユーザは、同じカード上に財布アプリケーションおよびクレジット/デビットアプリケーションの両方を有し、買物を行うときにどちらの種類の支払い(電子キャッシュまたはクリジットカード)を使用するのかを選択し得る。十分なメモリが存在し、且つ、複数のアプリケーションをサポートできるオペレーティングシステムがカード上にあれば、1枚のICカードに複数のアプリケーションを付与することができる。複数のアプリケーションを予め選択して、それらを製造段階でカードのメモリ内に入れておくことも可能であるが、必要に応じて、製造後に、そのカードのアプリケーションをロードおよび削除できるようにすることも有益であろう。
【0004】
1枚のカード上に複数のアプリケーションを保存する向上した柔軟性および性能は、個々のカードとアプリケーション提供者との間で交換され、また、アプリケーションをロードおよび削除する際に全システム内で交換される情報(アプリケーションコードおよび関連するデータを含む)の完全性および安全性に関して克服すべき新たな技術的課題を生み出す。カード、カード発行者、システムオペレータおよびアプリケーション提供者間で安全にデータを交換できる能力、ならびに、ローカル端末から、または、電話線、インターネット、イントラネット接続、もしくはその他のデータ経路上で遠隔的に、何時でも安全にアプリケーションをロードおよび削除できる能力をICカードシステム内に持つことは有益であろう。典型的にこれらのデータ送信線は安全な線ではないので、これらの送信線上で送られるアプリケーションが改竄されることなく意図したカード上にのみロードされることを確実にするためには、複数のセキュリティおよびエンティティ認証技術を確立しなければならない。
【0005】
特に、カード所有者が利用できる新たなアプリケーションが増え続けている状況では、上記のように、発行後にICカード上にアプリケーションを追加する能力をシステムに持たせることが重要である。このことは、ICカードの寿命の長さを守るために必要である。さもなくば、アプリケーションが古くなったときに、そのカードが無用になってしまう。遠隔位置から、および、アプリケーション提供者の端末からの直接接続によって、アプリケーションを追加できるようにすることは有益であろう。例えば、カードユーザが、そのユーザのICカードをユーザのホームコンピュータに差し込んで、インターネット上でアプリケーションをダウンロードできれば有用であろう。アプリケーションコードおよび関連データをインターネット等のセキュリティが確立されていない通信線上で送信する場合、この種のアプリケーション遠隔ロードは複数のセキュリティ上のリスクを生じる。このような能力を提供するシステムにおいて、少なくとも3つの問題点に取り組む必要がある。
【0006】
第1の問題点は、アプリケーションを受け取るICカードが、目的のICカードであり、別のICカードにならないように確実に取り計らうことである。第2の問題点は、アプリケーションが適切なアプリケーションプロバイダから得られたものであって、未知の第三者から得られたものでないことを、ICカードがどのようにして認証(authenticate)することができるかを判定することである。第3の問題点は、第三者がアプリケーションから読み出しを行って、認可されていない(unauthorized)コピーを作ることを防ぐことに関する。後半の問題点に取り組むために、アプリケーションの一部分が暗号化される場合、目的のICカードは、アプリケーションを復号化するための正確な鍵へのアクセスを持っている必要がある。多くのICカードおよびさらなる多くのアプリケーションプロバイダを有するシステムにおいて、目的のICカードが、受け取られたアプリケーションについての正確な鍵を使用できるように、安全鍵伝送技術(secure key transfer technique)が要求される。
【発明の概要】
【発明が解決しようとする課題】
【0007】
従って、本発明の実施の目的の1つは安全な鍵配送技術を提供することであり、具体的には、ICカード上にロードされ得るスマートカードアプリケーションのための改善された安全な配送を可能にする改善された安全なICカードシステムを提供することである。
【課題を解決するための手段】
【0008】
(発明の要旨)
ICカードシステム、ならびにICカード上へアプリケーションを安全にロードするための方法を提供する本発明により、これらおよび他の目的が達成される。ICカード上へアプリケーションを安全にロードする方法は,ICカードのための秘密鍵および公開鍵のペアを提供すること、転送鍵を用いアプリケーションの少なくとも一部を暗号化すること、ICカードの公開鍵を用いて伝送鍵を暗号化し、鍵変換ユニットを形成すること、暗号化アプリケーションおよび鍵変形ユニットをICカードに転送すること、ICカードの秘密鍵を用いて鍵変換ユニットを復号化し、伝送鍵を提供すること、提供された伝送鍵を用いて暗号化アプリケーションを復号化すること、およびICカード上の復号化アプリケーションを格納することを含む。
【0009】
好適な実施形態において、ローディングシステムおよび方法により、アプリケーションプロバイダが、2つ以上の異なった鍵で転送されるアプリケーションの2つ以上の部分を暗号化すること、ICカードの公開鍵で2つ以上の鍵を暗号化し、暗号化部分の位置を含む鍵変換ユニットを形成することが可能になる。暗号化アプリケーションおよび鍵変換ユニットの両方はICカードに送信される。復号鍵は、ICカードの公開鍵で暗号化されるので、ICカードの秘密鍵のみが鍵変換ユニットを復号化することができる。伝送鍵および暗号化部分の位置は、復号化された鍵変換ユニットから回復され、アプリケーションは回復された伝送鍵を用いて復号化される。これにより、目的とされるICカードは、復号化し、ICカードに転送されたアプリケーションを使用することができる。
【0010】
好適な実施形態において、アプリケーションのロード証明は、また、アプリケーションを受け取るICカードに送信される。アプリケーションのロード証明は、証明機関(CA)の秘密鍵によって暗号化されたアプリケーションプロバイダの公開鍵、または、ICカードシステムの全体のセキュリティを管理するエンティティを含む。次に、ICカードは証明機関の公開鍵を用いて、CAの公開鍵でアプリケーションのロード証明を検証することを試みることによって、証明が妥当であったかを確かめる。次に、ICカードは回復されたアプリケーションプロバイダの公開鍵を使用し、アプリケーションプロバイダが実際に、アプリケーションプロバイダの対応する秘密鍵で生成された、送付されたアプリケーション署名を検証することによってアプリケーションの創設側(originator)であったことを検証する。
(項目1)
ICカード上へアプリケーションをロードする方法であって、
該ICカードのための秘密鍵および公開鍵のペアを提供する工程と、
伝送鍵を用いて該アプリケーションの少なくとも一部分を暗号化する工程と、
該ICカードの公開鍵を用いて該伝送鍵を暗号化し、鍵変形ユニットを形成する工程と、
該暗号化されたアプリケーションおよび該鍵変形ユニットを該ICカードに転送する工程と、
該ICカードの秘密鍵を用いて該鍵変形ユニットを復号化し、該伝送鍵を回復する工程と、
該回復された伝送鍵を用いて、該暗号化されたアプリケーションを復号化する工程と
を含む、方法。
(項目2)
前記ICカード上に前記復号化されたアプリケーションを格納する工程を更に含む、項目1に記載の方法。
(項目3)
前記伝送鍵を用いる暗号化技術が、対称である、項目1または2に記載の方法。
(項目4)
前記対称技術はDESである、項目3に記載の方法。
(項目5)
前記ICカードの公開鍵および秘密鍵は非対称技術を用いて提供される、項目1から4のいずれかに記載の方法。
(項目6)
前記非対称技術はRSAである、項目5に記載の方法。
(項目7)
前記鍵変形ユニットは、前記アプリケーションの前記少なくとも一部を暗号化するために使用される技術をさらに示す、項目1から6のいずれかに記載の方法。
(項目8)
前記アプリケーションの前記少なくとも一部を除いた該アプリケーションの第2の部分を暗号化する工程をさらに含む、項目1から7のいずれかに記載の方法。
(項目9)
前記第2の部分は、第2の暗号化技術を用いて暗号化され、前記鍵変形ユニットは、該第2の暗号化技術を示す、項目8に記載の方法。
(項目10)
前記第2の部分は、第2の鍵を用いて暗号化され、前記鍵変形ユニットは、該第2の鍵を示す、項目8または9に記載の方法。
(項目11)
前記鍵変形ユニットは、前記アプリケーションの前記第2の部分の位置を示す、項目8から10のいずれかに記載の方法。
(項目12)
前記鍵変形ユニットは、前記アプリケーションの前記少なくとも一部の位置を示す、項目1から11のいずれかに記載の方法。
(項目13)
前記鍵変形ユニットは、前記アプリケーションの暗号化された部分の数を示す、項目1から12のいずれかに記載の方法。
(項目14)
アプリケーションプロバイダのための公開鍵および秘密鍵のセットを提供する工程と、
証明機関のための公開鍵および秘密鍵のセットを提供する工程と、
該証明機関の秘密鍵を用いて、該アプリケーションプロバイダの公開鍵を暗号化し、アプリケーションのロード証明を生成する工程と、
該アプリケーションプロバイダの秘密鍵を用いて、該暗号化されたアプリケーションにさらに署名し、署名された暗号化されたアプリケーションを生成する工程と、
該署名されたアプリケーションおよび該アプリケーションのロード証明を該ICカードに転送する工程と
をさらに含む、項目1から13のいずれかに記載の方法。
(項目15)
前記ICカードが、前記証明機関の公開鍵でアプリケーションのロード証明を認証する工程をさらに含む、項目14に記載の方法。
(項目16)
復号化されたアプリケーションのロード証明から前記アプリケーションプロバイダの公開鍵を用いて、前記署名された暗号化されたアプリケーションを認証する工程をさらに含む、項目15に記載の方法。
(項目17)
認証されたアプリケーション署名は、送信された暗号化されたアプリケーションと比較され、それらが等価であるかを判定する、項目16に記載の方法。
(項目18)
少なくとも1つのICカードと、
アプリケーションを該少なくとも1つのICカードに提供するためのアプリケーションプロバイダと、
該少なくとも1つのICカードおよび該アプリケーションプロバイダに連結された通信リンクと、
該ICカードのために生成された、公開鍵および秘密鍵のセットと、
該アプリケーションプロバイダにより用いられるために生成されるトランスポート鍵と、
アプリケーションであって、該アプリケーションの少なくとも一部は該トランスポート鍵を用いて該アプリケーションプロバイダによって暗号化され;該トランスポート鍵が該ICカードの公開鍵を用いて暗号化され、鍵変形ユニットを形成し;次に該暗号化されたアプリケーションおよび該鍵変形ユニットは、該通信リンクを介して該ICカードに転送され;該転送された該鍵変形ユニットが該ICカードの秘密鍵を用いて復号化され、該トランスポート鍵を回復し;該転送されたアプリケーションが該回復されたトランスポート鍵を用いて復号化され、該アプリケーションを回復する、アプリケーションと
を備える、ICカードシステム。
(項目19)
前記回復されたアプリケーションは、前記カード上に格納される、項目18に記載のシステム。
(項目20)
前記トランスポート鍵を用いた暗号化技術は、対称である、項目18または19に記載のシステム。
(項目21)
前記対称技術は、DESである、項目20に記載のシステム。
(項目22)
前記ICカードの公開鍵および秘密鍵は、非対称技術を用いて提供される、項目18から21までのいずれかに記載のシステム。
(項目23)
前記非対称技術は、RSAである、項目11に記載のシステム。
(項目24)
前記鍵変形ユニットは、前記アプリケーションの前記少なくとも一部を暗号化するために使用される技術をさらに示す、項目18から23のいずれかに記載のシステム。
(項目25)
前記アプリケーションの前記少なくとも一部に独立な該アプリケーションの第2の部分を暗号化する工程をさらに含む、項目18から24のいずれかに記載のシステム。
(項目26)
前記第2の部分は、第2の暗号化技術を用いて暗号化され、前記鍵変形ユニットは、該第2の暗号化技術を示す、項目25に記載のシステム。
(項目27)
前記第2の部分は、第2の鍵を用いて暗号化され、前記鍵変形ユニットは、該第2の鍵を示す、項目25または26に記載のシステム。
(項目28)
前記鍵変形ユニットは、前記アプリケーションの前記第2の部分の位置を示す、項目25から27のいずれかに記載のシステム。
(項目29)
前記鍵変形ユニットは、前記アプリケーションの少なくとも一部の位置を示す、項目18から28のいずれかに記載のシステム。
(項目30)
前記鍵変形ユニットは、前記アプリケーションの暗号化された部分の数を示す、項目18から29のいずれかに記載のシステム。
(項目31)
証明機関を更に含み、
公開鍵および秘密鍵のセットはアプリケーションプロバイダのために提供され;公開鍵および秘密鍵のセットは該証明機関のために提供され;該証明機関の秘密鍵は、前記アプリケーションプロバイダの公開鍵に署名するのに使用され、アプリケーションのロード証明を生成し;該アプリケーションプロバイダの秘密鍵は、前記暗号化されたアプリケーションにさらに署名するのに使用され、署名された暗号化されたアプリケーションを生成し、該署名された暗号化されたアプリケーションおよび該アプリケーションのロードの証明は、該ICカードに転送される、項目18から30のいずれかに記載のシステム。
(項目32)
前記ICカードが、前記証明機関の公開鍵で前記アプリケーションのロード証明を認証する、項目31に記載のシステム。
(項目33)
前記ICカードは、前記認証されたアプリケーションのロード証明から前記アプリケーションプロバイダの公開鍵を使用して前記署名された暗号化されたアプリケーションを認証する、項目32に記載のシステム。
(項目34)
認証されたアプリケーション署名を、前記暗号化されたアプリケーションと比較し、それらが等価であるかどうかを判定する、項目33に記載のシステム。
(項目35)
第1のマイクロプロセッサベースの装置から、第2のマイクロプロセッサベースの装置にデータを転送する方法であって、
伝送鍵を用いて該データの少なくとも一部を該第1の装置で暗号化する工程と、
該第1の装置において第2の鍵で該伝送鍵を暗号化し、鍵変形ユニットを形成する工程と、
該暗号化されたデータおよび該鍵変形ユニットを該第2の装置に転送する工程と、
該第2の装置で該鍵変形ユニットを復号化し、該伝送鍵を回復する工程と、
該回復された伝送鍵を用いて該暗号化されたデータを復号化する工程と
を含む、方法
(項目36)
前記第2の装置で前記復号化されたデータを格納する工程を更に含む、項目35に記載の方法。
(項目37)
前記第2の鍵は、非対称暗号化において使用される公開鍵および秘密鍵のセットに由来する、項目35または36に記載の方法。
(項目38)
前記鍵変形ユニットは、前記アプリケーションの少なくとも一部を暗号化するために使用される技術を更に示す、項目35から37のいずれかに記載の方法。
(項目39)
前記アプリケーションの前記少なくとも一部に独立な該アプリケーションの第2の部分を暗号化する工程をさらに含む、項目35から38のいずれかに記載の方法。
(項目40)
前記第2の部分は、第2の暗号化技術を用いて暗号化され、前記鍵変形ユニットは、該第2の暗号化技術を示す、項目39に記載の方法。
(項目41)
前記第2の部分は第2の鍵を用いて暗号化され、前記第2の鍵変形ユニットは該第2の鍵を示す、項目39または40に記載の方法。
(項目42)
前記鍵変形ユニットは、前記アプリケーションの前記第2の部分の位置を示す、項目39に記載の方法。
(項目43)
前記鍵変形ユニットは、前記アプリケーションの前記少なくとも一部の位置を示す、項目35から42のいずれかに記載の方法。
(項目44)
アプリケーションプロバイダのための公開鍵および秘密鍵のセットを提供する工程と、
証明機関のための公開鍵および秘密鍵のセットを提供する工程と、
該証明機関を用いて該アプリケーションプロバイダの公開鍵に署名し、アプリケーションのロード証明を生成する工程と、
該アプリケーションプロバイダの秘密鍵を用いて該暗号化されたアプリケーションをさらに暗号化し、署名された暗号化されたアプリケーションを生成する工程と、
該署名されたアプリケーションおよび該アプリケーションのロード証明を該ICカードに転送する工程と
をさらに含む、項目35から43のいずれかに記載の方法。
(項目45)
データ転送を処理するための方法であって、
アプリケーションを含む該データ転送を受け取る工程であって、該アプリケーションは、第1の鍵で暗号化された少なくとも一部、および、第2の鍵で暗号化された鍵変形ユニットを含み、該鍵変形ユニットは該第1の鍵を含む、工程と、
該鍵変形ユニットを復号化し、該第1の鍵を回復する工程と、
該第1の鍵を用いて該暗号化されたアプリケーションを復号化する工程と、
該復号化されたアプリケーションを格納する工程と
を含む、方法。
(項目46)
前記第2の鍵は、非対称暗号化において使用される公開鍵および秘密鍵のセットに由来する、項目45に記載の方法。
(項目47)
前記鍵変形ユニットは、前記アプリケーションの前記少なくとも一部を暗号化するために使用される技術を更に示す、項目45または46に記載の方法。
(項目48)
前記アプリケーションの前記少なくとも一部に独立な該アプリケーションの第2の部分を暗号化する工程をさらに含む、項目45から47のいずれかに記載の方法。
(項目49)
前記第2の部分は、第2の暗号化技術を用いて暗号化され、前記鍵変形ユニットは、該第2の暗号化技術を示す、項目48に記載の方法。
(項目50)
前記第2の部分は第2の鍵を用いて暗号化され、前記鍵変形ユニットは該第2の鍵を示す、項目48または49に記載の方法。
(項目51)
前記鍵変形ユニットは、前記アプリケーションの前記第2の部分の位置を示す、項目48に記載の方法。
(項目52)
前記鍵変形ユニットは、前記アプリケーションの前記少なくとも一部の位置を示す、項目45から51のいずれかに記載の方法。
(項目53)
アプリケーションプロバイダのための公開鍵および秘密鍵のセットを提供する工程と、
証明機関のための公開鍵および秘密鍵のセットを提供する工程と、
該証明機関を用いて該アプリケーションプロバイダの公開鍵に署名し、アプリケーションのロード証明を生成する工程と、
該アプリケーションプロバイダの秘密鍵を用いて該暗号化されたアプリケーションをさらに暗号化し、署名された暗号化アプリケーションを生成する工程と、
該署名されたアプリケーションおよび該アプリケーションのロード証明を該ICカードに転送する工程と
をさらに含む、項目45から52のいずれかに記載の方法。
(項目54)
前記ICカードが、前記証明機関の公開鍵で前記アプリケーションのロード証明を認証する工程をさらに含む、項目53に記載の方法。
(項目55)
前記認証されたアプリケーションのロード証明から前記アプリケーションプロバイダの公開鍵を用いて、署名された暗号化されたアプリケーションを認証する工程をさらに含む、項目54に記載の方法。
(項目56)
認証されたアプリケーション署名を前記暗号化されたアプリケーションと比較し、それらが等価であるか判定する、項目55に記載の方法。
(項目57)
データ転送を処理するための装置であって、
アプリケーションを含む該データ転送を受け取る手段であって、該アプリケーションは、第1の鍵で暗号化された少なくとも一部と、第2の鍵で暗号化された鍵変形ユニットを含み、該鍵変形ユニットは該第1の鍵を含む、手段と、
該鍵変形ユニットを復号化し、該第1の鍵を回復する手段と、
該第1の鍵を用いて該暗号化されたアプリケーションを復号化する手段と、
該復号化されたアプリケーションを格納する手段と
を含む、装置。
(項目58)
前記第2の鍵は、非対称暗号において使用される公開鍵および秘密鍵のセットに由来する、項目57に記載の装置。
(項目59)
前記鍵変形ユニットは、前記アプリケーションの前記少なくとも一部を暗号化するために使用される技術をさらに示す、項目57または58に記載の装置。
(項目60)
前記アプリケーションの前記少なくとも一部を除いた該アプリケーションの第2の部分を暗号化するための手段をさらに含む、項目57から59に記載の装置。
(項目61)
前記第2の部分は、第2の暗号化技術を用いて暗号化され、前記鍵変形ユニットは、該第2の暗号化技術を示す、項目60に記載の装置。
(項目62)
前記第2の部分は、第2の鍵を用いて暗号化され、前記鍵変形ユニットは、該第2の鍵を示す、項目60または61に記載の装置。
(項目63)
前記鍵変形ユニットは、前記アプリケーションの前記第2の部分の位置を示す、項目60から62のいずれかに記載の装置。
(項目64)
前記鍵変形ユニットは、前記アプリケーションの前記少なくとも一部の位置を示す、項目57から63のいずれかに記載の装置。
(項目65)
前記証明機関の公開鍵でアプリケーションのロード証明を認証するための手段をさらに含む、項目60から64のいずれかに記載の装置。
(項目66)
前記認証されたアプリケーションのロード証明に位置するアプリケーションプロバイダの公開鍵を用いて前記署名された暗号化されたアプリケーションを認証する手段をさらに含む、項目65に記載の装置。
(項目67)
認証されたアプリケーション署名は、前記暗号化されたアプリケーションと比較され、それらが等価であるかを判定する、項目66に記載の装置。
【図面の簡単な説明】
【0011】
本発明の例示的な実施形態を示す添付の図面に関連して以下の詳細な説明を読むことにより、本発明のさらなる目的、特徴および利点が明らかになるであろう。
【図1】図1は、アプリケーション提供者からICカードにアプリケーションをロードするアプリケーションロードシステムのブロック図である。
【図2】図2は、アプリケーションロードユニットの内容を図示したものである。
【図3】図3は、アプリケーションユニットを図示したものである。
【図4】図4は、あるICカードについての個々の鍵組を提供する工程のフローチャートである。
【図5】図5は、鍵変換ユニットを図示したものである。
【図6】図6は、鍵変換ユニットの平文を図示したものである。
【図7】図7は、アプリケーションロード証明書(Application Load Certificate)を図示したものである。
【図8】図8は、アプリケーションユニットが復号化される様子を図示したものである。
【図9】図9は、アプリケーションロードユニットを処理する際に行われる工程を示すフローチャートである。
【図10】図10は、KTUを処理する際に行われる工程を示すフローチャートである。
【図11】図11は、アプリケーションロードユニットを受け取り、これを処理することができるICカードの構成要素を示すブロック図である。
【発明を実施するための形態】
【0012】
そうでないことが記載されている場合を除き、全図面を通して、同じ参照番号および文字は、例示された各実施形態において同じ特徴部、部材、構成要素および部分を示すために用いられている。さらに、以下で図面を参照しながら本発明を説明するが、これは例示的な実施形態に関する説明である。添付のクレームによって規定される本発明の真の範囲および趣旨から逸脱することなく、記載された実施形態に変更および改変を加えることが可能であることが意図されている。
【0013】
(発明の詳細な説明)
そのICカードの寿命の任意の時点で、複数のアプリケーションオペレーティングシステムを含むICカード上にアプリケーションをロードできる能力を持つことは有益である。この柔軟性によって、カードのユーザが、定期的に新しいアプリケーションをICカードに追加すること、ならびに、より新しいバージョンのアプリケーションがリリースされたときに、新しいバージョンのアプリケーションを用いて古いアプリケーションを更新することが可能になる。例えば、カードユーザは、初めに、財布または電子キャッシュアプリケーション(例えば、MONDEXTM)が保存されたICカードを持ち得る。ユーザがこのカードを持ってからしばらくした後、このユーザは、クレジット/デビットアプリケーションのような追加アプリケーションをこのカード上にロードし得る。カード上にクレジット/デビットアプリケーションをロードしてからしばらくした後、そのクレジット/デビットアプリケーションの新しいバージョンが利用可能になり得る。その時、このカードユーザが、そのICカード上の古いアプリケーションを消去して、さらなる機能を有し得るクレジット/デビットアプリケーションの新しいバージョンに置き換えることは可能であるべきである。
【0014】
ICカードの寿命サイクルにおける複数の異なる時点でアプリケーションのロードを行うという柔軟性は、カード上にアプリケーションをロードするプロセスに関してセキュリティ上の問題を生じる。マルチアプリケーションオペレーティングシステム環境においては、アプリケーションのロードを、銀行のATMマシンのような端末と、電話線、ケーブル線、インターネット、衛星または他の通信手段等の遠隔通信リンク上との両方で行えることが有益である。ICカード上にアプリケーションをロードする際、アプリケーション提供者およびカード発行者(同じエンティティであり得る)は、ロードすべきアプリケーションに関するセキュリティを提供する必要がある。第1に、アプリケーション提供者は、そのアプリケーションを受け取ることが意図された正しいカードユーザにのみアプリケーションが送られることを確実にしなければならない。この問題に対する1つの解決方法が、1998年2月19日に出願され、Mondex Internationalに譲渡された、Everetteらによる”Multi−Application IC Card System Having Selective Loading and Deleting Capacity”という名称の関連PCT出願において試みられている。この文献を、本明細書に添付したアネックスBへの参考として本明細書中で援用する。アプリケーションを離れたソースから、またはローカルターミナルから、ICカード上へとロードする場合に、2つのさらなるセキュリティに関する問題に取り組む必要がある。まず、ウイルスを含み得るか、または、単にICカード内の限られた記憶メモリを占拠し得るアプリケーションをICカード上にロードすることがないように、アプリケーションのソースは適切な発信元(originator)として認証される必要がある。第2に、アプリケーションおよび関連データは、個人的または企業秘密情報を含み得る。このような個人的または企業秘密情報は暗号化することにより、暗号化されたアプリケーションコードおよびデータの内容を他の人々に見られないようにする必要がある。アプリケーションコードおよびデータの一部が秘密であり、他の部分は秘密ではない場合もある。本願では、カードにロードするアプリケーションおよび関連データの一部または全ての内容の認証および保護という問題に対処する。
【0015】
本明細書中、複数の暗号化/復号化技術が記載される。対称暗号化および非対称暗号化という2つの基本的な種類の暗号化がある。対称暗号化では、式および鍵を用いてデータを変換することにより、データを暗号化する数式の一部として秘密鍵を用いる。データを暗号化した後、これと同じ秘密鍵を関連する復号化アルゴリズムとともに用いて、別のパーティが、この暗号化されたデータを復号化することができる。同じ鍵は暗号化および復号化のために用いられ、技術は対称的である。対称アルゴリズムの従来例の1つは、DESである。
【0016】
非対称暗号化技術では、1対をなす異なる2つの鍵を用いて情報の暗号化および復号化を行う。これらの2つの鍵は、通常、プライベートまたは秘密鍵および公開鍵と呼ばれる。この1対の鍵の一方を用いてデータを暗号化した場合、そのデータの復号化には他方の鍵が用いられる。データの送り主が、そのデータをその送り主の秘密鍵を用いて署名すると、公開鍵を持っていれば誰でもそのメッセージを検証できる。典型的に、公開鍵は公に知られているので、秘密鍵を用いて署名されたデータの内容を保護することはできないが、特定の秘密鍵によってそのデータが署名されているかどうかを判定することによってそのデータの起源(origination)は検証できる。この認証プロセスは、デジタル署名と呼ばれる。人物Aが人物Bに送ろうとしているメッセージを人物Aが認証したい場合、人物Aは、人物Aの秘密鍵を用いてその文書を解読する。公開鍵が提供された後に文書が読み出されると、人物Bは、人物Aの公開鍵を用いてそのメッセージを検証する。その公開鍵を用いてそのメッセージが検証されると、その文書が人物Aの秘密鍵を用いて署名されたことを人物Bが知ることになる。このようにして、メッセージの起源(origin)が認証される。
【0017】
非対称鍵組を用いてメッセージの内容を保護することも可能である。人物Aが、人物Bに、他の誰も読むことのできない暗号化されたメッセージを送りたい場合、人物Aは、そのデータまたはメッセージを人物Bの公開鍵を用いて暗号化し、それを人物Bに送る。そうすれば、人物Bの秘密鍵の所有者しかそのデータを復号化できなくなる。複数の鍵の組み合わせを用いれば、ある人物がそのメッセージの認証および暗号化の両方を行うことが可能である。非対称の鍵対には、カードセキュリティに関していくつかの強力な用途があり、対称暗号化よりもより頑強である。しかし、非対称暗号化は、対称暗号化と比べて比較的プロセッサコストがより高くつく(プロセッサコストは演算時間と関連している)。非対称暗号化方法の一例は、RSA(R)である。
【0018】
暗号化方法をより強力にするハイブリッド対称暗号化方法の1つは、2つの対称鍵を用いてデータを暗号化することである。この技術はトリプルDESと呼ばれ、対称鍵1を用いてデータを符号化し、対称鍵2を用いてそのデータを復号化し(これにより、そのデータをさらに符号化することになる)、そして、再び鍵1を用いてそのデータをさらに符号化するものである。データがその目的地に到着した後、鍵1を用いてそのデータを復号化し、鍵2を用いてそのデータを符号化し、そして、鍵1を用いてそのデータを復号化する。これらの余分な符号化および復号化ステップによって、この技術はより強力になるとともに、両方の鍵がそろっていない状態で適切に復号化することがより困難になる。
【0019】
図1は、安全な遠隔アプリケーションローディングプロセスに使用されるエンティティのブロック図を示す。アプリケーションプロバイダ101は、カードの発行者、銀行、またはアプリケーションローディングサービスを提供する他のエンティティであり得る。アプリケーションプロバイダ101は、ICカード103上へのアプリケーションローディングプロセスを起動する。アプリケーションプロバイダ101は、データコンデット107に接続され、データコンデット107は、インターフェイスデバイス105(例えば、ICカードと通信する端末)に接続されている。データコンデット107は、電話回線、イントラネット、インターネット、衛星リンク、またはその他の任意のタイプの通信リンクであり得る。アプリケーションプロバイダ101は、ICカード103から遠隔に配置され、ICカードへアプリケーションを送信してロードすることを所望する。しかしながら、データリンクがオープンリンクであり、送信されるアプリケーションを妨害したり置換する第三者に晒されているために、アプリケーション自体を認証する安全手段、アプリケーションプロバイダ、およびICカードが、システムの整合性を確実にするために使用されなければならない。送信されているいくつかのデータが識別されたシステム一部であることの認証を補助するためには、証明機構CA109も使用され得る。
【0020】
図1では、アプリケーションプロバイダは、インターフェースデバイス105へ、そして最終的にはICカード103へ、アプリケーションロードユニット111を送信する。ALUは、アプリケーション自体および認証に必要なセキュリティデータを含み、アプリケーションコードおよび関連データを保護する。ALUは、図2において詳細を論じたが、本明細書の他の図とも関連がある。ALU111は、好適には、証明機構(CA)109からアプリケーションプロバイダ101に送信されるアプリケーションロード証明(ALC)113データをも含む。証明機構は、ICカード上にロードされるべき各アプリケーションに対するアプリケーションロード証明を供給することによって、システムの全体的なセキュリティを管理する。アプリケーションプロバイダ101およびICカード103の両方は、それらに提供される個々の公開/秘密鍵セットを有する。認証とセキュリティのプロセスを以下に説明する。
【0021】
図2は、アプリケーションロードプロセス中にアプリケーションローダからICカードに送信されるアプリケーションロードユニットの構成要素を説明する図を示す。アプリケーションロードユニット(ALU)201は、アプリケーションユニット(AU)203、アプリケーションユニット署名(AUs)205、
鍵変換ユニット(KTU)207、およびアプリケーションロード証明(ALC)209を含む。ALC201は、データ送信中に使用される従来フォーマットで初期化される。AU203は、ICカード上に記憶されるべきアプリケーションコードおよびデータを含み、それらの一部またはすべてが、秘密部分を、もしくはコードおよび/またはデータ部分を保護するために暗号化される。AU203を、図3を参照してさらに詳細に説明する。
【0022】
AUs205は、アプリケーションプロバイダの秘密鍵でデジタル的に署名されたアプリケーションコードおよびデータAU203である。アプリケーションプロバイダの公開鍵は、ALC209の一部として送信され、アプリケーションの作成者としてアプリケーションプロバイダを認証するのに使用される。ALC209は、カード識別情報およびアプリケーションプロバイダの公開鍵から構成され、証明機構の秘密鍵によって署名される。以下、これらの要素をすべて、より詳細に説明する。
【0023】
KTU207は、指定された部分をICカードが復号化するのを可能にする、AU203(アプリケーションのコードおよびデータ)の暗号化に関する情報を含み、これにより、アプリケーションおよびデータはICカードによってアクセスされ得るが、アプリケーションプロバイダとICカードとの間での送信中にデータを保護する。KTU207は、アプリケーションが意図されるICカードの公開鍵で署名されており、これにより、意図されたICカードのみが、KTU情報を用いたアプリケーションコードおよびデータを復号化できることを確実にする。この要素は図5を参照して説明する。
【0024】
図3は、アプリケーションロードユニットの一部であるアプリケーションユニット203の図を示す。AU203は、カードユーザのICカード上にロードされるべきプログラムコードおよび関連データ両方を含む。プログラムコードは、ICカードのマイクロプロセッサによって実行される複数のプログラム命令を含む。プログラム命令は、ICカード上に記憶されているオペレーションシステムが解釈できる任意のプログラミング言語で記述され得る。
【0025】
例えばMULTOSシステムでは、プログラムはMELTM(MULTOS実行可能言語)で記述され得る。たいていのアプリケーションは、カード上にロードされなければならない関連データを有する。例えば、人名またはアカウント番号などカードユーザを識別するデータは、クレジット/デビットアプリケーションを伴う安全な方式においてロードされ得る。アプリケーションプロバイダは、データによって表される電子キャッシュを、電子パースアプリケーションをインストールするときに助成として提供し得る。このデータのいくつかまたは全部が、第三者から秘密に保たれることが所望される。ひいては、アプリケーションコード自体が独占物であると見なされ得、その一部が他者からは秘密であることが所望され得る。鍵変換ユニット(KTU)の使用は、アプリケーションプロバイダーがアプリケーションの選択された部分を秘密として暗号化し、第三者からそれを保護することを可能にする。
【0026】
アプリケーションユニット部分305は、アプリケーションプロバイダからICカードに送信されるべきプログラムコードを指示する。アプリケーションユニット部分307は、ICカード上にロードされるべきアプリケーションの一部として送信されるべき関連データを指示する。この例では、アプリケーションユニットの3つの個別領域が、単一のDESまたは3重のDESのいずれかを用いて暗号化されることが示されている。暗号化される部分および暗号化のタイプに関する任意の数の変更が、本願記載の技術を用いて実施され得る。
【0027】
この例では、暗号化されたロケーション309は、3重DES技術を用いて暗号化されたアプリケーションユニット203の第1の部分を示す。上述の暗号化プロセスは、対称的鍵および従来公知のDESアルゴリズムを用いてデータを変換することを含む。データはその後、従来公知のDESベースアルゴリズムにデータを代入することにより復元され得る。暗号化ロケーション311は、3重DESを用いて暗号化されたアプリケーションユニット203の第2の部分を示す。暗号化ロケーション313は、単一のDESを用いて暗号化された第3の部分を示す。単一DESは、より少ない計算しか復号化に要さず、後述するKTUの一部として、より少ない領域しか占有しない。アプリケーションローダからICカードへ送信中に、第三者によってアプリケーションユニットが妨害された場合、第三者が正しい鍵を有するまで、暗号化された部分は、読み出され得ない。従って、情報はKTU内で保護される。
【0028】
KTUは、アプリケーションユニットのどの部分が暗号化されるか、どの暗号化アルゴリズムが使用されるか、およびテキストの復号化に使用される単数または複数の鍵を記述することによって、アプリケーションおよび関連データの意図するICカードが、アプリケーションユニットの暗号化部分を復号化することを可能にする。この情報は、アプリケーションプロバイダと意図されるICカードとの間で高度に秘密であり、従って意図されるカードに極めて特殊な方式で保護される。送信されるALU全体の一部であるKTUを暗号化するために、特定の意図されるICカードのための個別鍵セットが使用される。鍵セットおよびその作成を以下に説明する。
【0029】
CAにおいて実行される安全処理の一つは、カード上に記憶された各ICカードのための個別化された鍵セットを作成することである。鍵は、オフカード検証(即ちカードが正真のカードであることを検証する)および安全なデータ配送に使用される。鍵作成プロセスを図4に概略的に示す。鍵セットは、3つの異なる鍵データアイテムから構成される。即ち、カードのみが知っているカード秘密鍵、カード上に記憶されているカードの公開鍵、およびCAの秘密鍵の一つによって署名されたカード公開鍵であるカード公開鍵証明である。以下、鍵セットの個々の鍵を、より詳細に説明する。
【0030】
工程401は、カードのメモリ内の個別ICカードに対して、カード特定的に配送された秘密鍵を記憶する。この秘密鍵は、CAにより作成され、カード許可デバイスを介してカード上にロードされる。ひとたびカード上に記憶されれば、CAはそれ自身のメモリから秘密鍵に関するあらゆるデータを消去する。従って、カード自体のみがその秘密鍵を知っている。カード内の秘密鍵情報を含んでいるデータ要素は、「mkd_sk」と呼ばれ、MULTOS鍵データ秘密鍵を意味する。
【0031】
工程403は、カードのメモリ内の個々のICカードのためのカード特定的に配送された公開鍵を記憶する。この公開鍵は、好適には、工程401において秘密鍵を作成するのに使用された非対称暗号化技術からCAによって作成される。カードの公開鍵情報を含むデータ要素は「mkd_pk」と呼ばれ、MULTOS鍵データ公開鍵を意味する。
【0032】
工程405は、カードメモリ内の個々のICカードのためのカード特定的に配送された公開鍵証明を記憶する。カードの公開鍵証明情報を含むデータ要素は、「mkd_pk_c」と呼ばれ、MULTOS鍵データ公開鍵証明を意味する。この公開鍵証明は、好適には、以下に示すようにCAの秘密鍵で配送公開鍵「mkd_pk」に暗号化することにより作成される。
【0033】
mkd_pk_c=[mkd_pk]CA_sk
これは、個々のカードの公開鍵証明が、CAの秘密鍵を個々のカードの公開鍵に適用して作成されることを意味する。このプロセスは、CAにおいて実施される。公開鍵証明はCAによって保存され、これにより、必要に応じて公開鍵を再作成することができる。
【0034】
端末がICカードから公開鍵証明を読み出し得、CAが署名をし、それにより個々のICカードを認可したことを検証できる。これは、mkd_pkに署名するのに使用されたCA鍵セットの公開要素で公開鍵証明を検証することによって達成される。暗号化公開鍵は、鍵認証がCAによって認証(署名)されたかを立証するために公開鍵と比較され得る。
【0035】
図5は、KTU207の内容を図示したものであり、ヘッダ部分501およびKTU暗号文部分503を含んでいる。図5に示すように、ヘッダ情報501は、例えば、application_id_no(アプリケーション識別番号)、mcd_no(ICカード番号)および/またはmsm_control_data_date(ICカードが発行された日付)などの識別子または許可情報505を含む。追加の識別子も含まれ得る。これらの識別子により、システムは、ALUを受信するICカードが意図されたICカードであることを検証できる。許可データは、上記参照した関連出願に詳細に記載されている。
【0036】
KTU暗号文503は、ボックス507に示す意図されたICカードの公開鍵mkd_pkで暗号化されたKTU平文(暗号化されていない)に対応する。KTU平文は、図6においてさらに説明する。公開鍵mkd_pkは、アプリケーションプロバイダーによって、意図されたICカードから取得される。ICカードの公開鍵は、誰でも自由に利用でき、カードまたはCAから直接入手できる。KTU平文をICカードの公開鍵で署名化することによって、意図されたICカードのみが公開/秘密鍵対の秘密鍵を用いてKTU暗号文を復号化することができる。これは、意図されたICカードのみが、KTU平文の内容を決定し、ロードされるアプリケーションの暗号化部分を識別し、鍵を用いてアプリケーション全体および関連データを復号化し復元できることを意味する。その他のエンティティは、ICカードの秘密鍵を有さないので、送信されているプログラムコードおよびデータのセキュリティと整合性とが確保される。
【0037】
図6は、KTU平文601を示す図である。KTU平文601は、好適には、識別子フィールド603、no_area_discriptorsフィールド605、alg_idフィールド607、area_startフィールド609、area_length611、key_lengthフィールド613、key_dataフィールド615、ならびに、アプリケーションユニット内に存在する暗号化領域の数によって追加の領域および鍵フィールドを含む。識別子603は、KTUが適用されるアプリケーションユニットの識別情報を含む。
【0038】
No_area_descriptors605は、いくつの数のAUの異なる部分が暗号化されたのかを示す。図3の例では、領域記述子の数は3である。フィールド607は、暗号化された第1の領域のためのアルゴリズム識別子を含む。アルゴリズムは、例えば、DESまたは三重DESであり得る。フィールド609は、第1の暗号化領域の開始を指示する。この指示は、AUの開始からのオフセットであり得る。例えば、オフセットは、100により得る。これは、第1の領域が、アプリケーションユニットの100番目のバイトから開始することを意味する。フィールド611は、第1の暗号化部分の領域長を指示する。このフィールドにより、ICカード上のマイクロプロセッサは、どの程度の大きさの領域が暗号化され、領域の開始といつ結合されたのかを知ることができ、ICカードマイクロプロセッサは、アプリケーションユニットの正しい部分を暗号化できる。フィールド613は、アプリケーションユニットの特定の暗号化部分に対する鍵長を指示する。鍵の長さは、異なる暗号化技術によって異なる。鍵長フィールドによって、ICカードは鍵データの長さを知ることができる。フィールド615は、特定の暗号化部分に対する鍵データを指示する。鍵データは、暗号化部分のアルゴリズム同一性およびロケーションとともに使用され、暗号化部分をデコードする。一つ以上の暗号化部分が指示されている場合、アルゴリズムを参照する追加のデータ、開始ロケーション、長さ、鍵長および鍵データが、KTU平文内に存在する。複数のフィールドを記載したが、本発明にすべてのフィールドが必要なのではない。しかしながら、最も重要なフィールドは、鍵データ自体である。
【0039】
図7は、アプリケーションロード証明(ALC)209を示す図である。ALC209は、ヘッダ701およびアプリケーションプロバイダ公開鍵703を含む。次に、ヘッダ701およびアプリケーションプロバイダ公開鍵703は、CAの秘密鍵で署名(暗号化)される。従って、CAのみがCAプライベート鍵を知っているので、ALC209は、ロードされる各アプリケーションに対してCAによってアプリケーションプロバイダに供給されなければならない。ヘッダ701は、アプリケーションが意図されるアプリケーションプロバイダおよびICカードに関する情報を含む。ALC209は、識別情報を使用し得るアプリケーションプロバイダによって正しいALU内に配置される。アプリケーションプロバイダ公開鍵703は、識別データとともにCAに供給される。次に、CAは、認証性を検証したあとで、この情報に署名し、アプリケーションプロバイダに署名されたALCを返送する。ICカードは、ALU201の一部としてALC209を受け取るとき、CAの公開鍵でALC209を検証する。これにより、CAがアプリケーションロード証明に署名し、それが本物であることを確証する。情報を複号化した後で、ヘッダ識別情報701がチェックされ、アプリケーションプロバイダ公開鍵が復元される。この公開鍵は、 ICカード上にロードされるべきアプリケーションおよびコードが適切なアプリケーションプロバイダによって作成されたことを検証するのに使用される。
【0040】
図8は、AU203がアプリケーションプロバイダによって署名されたことを検証するために、アプリケーションプロバイダの公開鍵を使用してAU署名205を複号化することを示した図である。AU署名205は、アプリケーションプロバイダ公開鍵801で検証される。受け取られたAU803は、AU203と比較される。データブロックがマッチした場合、ICカードは、アプリケーションプロバイダがアプリケーションユニットに署名(暗号化)し、アプリケーションが本物であることを検証した。この認証は、アプリケーションプロバイダのみが秘密鍵を有するので、有効である。アプリケーションプロバイダ公開鍵がCAによって署名されたアプリケーションロード証明209の一部として供給されているので、ICカードは、この情報を効率よく処理し得る。従って、外部ロケーションから公開鍵を復元して、アプリケーションを認証する必要がない。
【0041】
図9は、アプリケーションロードユニットがICカードによって受け取られたときに、これを処理するための工程のフローチャートを示す。ALUを受け取る前に、所望により、ICカードの同一性に関して同一性チェックが実行され得る。
ALUプロセス技術は、ロードされるアプリケーションが、(1)正しいアプリケーションプロバイダからであり、(2)意図されるカードにロードされ、(3)CAによって証明されていることを検証することを含む、数々のさらなる検証を提供する。また、ALUプロセス技術は、プログラムコードおよび関連データの部分を、ICカードが安全な方式で復号化できるようにする配送復号化鍵の配送を可能にする。工程901では、ICカードがアプリケーションプロバイダからALUを受け取る。ALUは、端末接続、遠隔接続(contactless connection)、電話、コンピュータ、イントラネット、インターネット、または他の任意の通信手段を介して送信され得る。ALUは、ICカードのI/Oバッファに、AU203、AU署名205、KTU207、およびALC209の開始アドレスを指示するヘッダ情報とともに配置される。あるいは、ICカードは、これら4つのユニットの相対アドレスロケーションを決定し得る。
【0042】
工程903は、CA公開鍵を備えたALC209を複号化する。各ICカードは、好適には、そのメモリ内にCA公開鍵の複製を記憶する。これは、CA公開鍵が多くのトランスアクションに使用されるからである。あるいは、ICカードは、公知の記憶ロケーションから公開鍵を取得し得る。 CA公開鍵がALC209を適切に検証した場合、ICカードは、CAが秘密鍵によってALC209に署名し、従って、アプリケーションロード証明は適切であることを検証する。ICカードが、ALCを適切に検証しなかった場合、 ALCはCAによって署名されておらず、証明は適切でない。そこで、アプリケーションローディングプロセスは終了する。
【0043】
次に、工程905が、アプリケーションロード証明において送られた識別情報に対してICカードの同一性をチェックし、カードがアプリケーションを受け取ることを意図されたものであることを確実にする。この許可チェックは、上記に確認した関連特許出願に記載されている。識別データの一致が存在しない場合、アプリケーションローディングプロセスは終了する。識別データが一致する場合、プロセスは継続する。
【0044】
工程907は、検証されたALCから復元されたアプリケーションプロバイダの公開鍵を用い、AU署名205を検証する。ALUがアプリケーションプロバイダにより作成されているとき、アプリケーションユニット203は、アプリケーションプロバイダの秘密鍵で署名される。次に、アプリケーションプロバイダは、ALCを介してICカードに公開鍵を供給する。ひいては、ICカードは、AU署名205を検証する。ALUが検証された場合、ALUはアプリケーションプロバイダによって作成されたとして検証される。アプリケーションプロバイダの公開鍵は、CAによって署名されたALCの一部であるので、CAは、適切な公開鍵がICカードに供給されたことを確証する。アプリケーションプロバイダと、CAと、意図されたICカードとの間のこの特殊な鍵インタラクションは、安全システムの一部であるICカードへの偽造、もしくは未許可のアプリケーションまたはデータが、ロードされないことを確証する。
【0045】
次に、工程911が、唯一意図されたカードのみがアプリケーションを受け取ることをさらに検証するKTU認証チェックを処理する。KTU認証チェックは、第三者が何らかにおいてALUを妨害した場合でも、第三者がAUの暗号部分を読み出せず、AUを復号化する鍵を受け取れないことを確証する。この工程を図10においてさらに示す。
【0046】
図10は、KTU認証プロセスの工程を示す。工程1001は、好適には任意であるので破線で示されているが、ICカードの同一性を再度チェックする。識別情報は、KTUデータの一部として送られ得る。しかしながら、このチェックは既に工程905において実施されているので、任意である。
【0047】
次に、工程1003が、ICカードの秘密鍵(mkd_sk)を用いてKTU暗号文503を復号化する。KTU平文は、意図されるカードの公開鍵(mkd_pk)を用いて、先だって暗号化されている。これは、唯一意図されたカードの秘密鍵の保持者のみが、暗号化されたメッセージを復号化し得ることを意味する。アプリケーションプロバイダは、ICカード自体から(図4およびmkd鍵セットに関する関連テキストを参照)、または公開鍵を保持するデータベースのいずれかから、意図されるICカードの公開鍵を入手する。ICカードがKTU暗号文を適切に復号化しない場合、KTUはそのカードには意図されておらず、アプリケーションローディングプロセスは停止する。ICカードがKTU暗号文を適切に復号化した場合、プロセスは継続する。
【0048】
工程1005は、アプリケーションユニット(AU)の暗号化領域を識別する。図6を参照して説明したKTU平文の例では、ICカードは、相対的開始アドレスおよび領域長フィールドを使用して、暗号化される部分を決定している。工程1005も、識別された部分を暗号化するのにどの暗号化技術を用いるかを識別し、これにより、適切な復号化技術が使用され得る。例えば、この技術は単一または三重のDESにより得る。あるいは、この技術は、システムに使用され識別の必要がないデフォルト技術であり得る。
【0049】
次に、工程1007が、KTU平文からの鍵を復元し、識別された部分を識別された復号化技術で復号化する。これにより、ひとたびすべての暗号化部分が復号化されれば、ICカードはスタティックメモリに記憶されるAUの復号化された部分を有する。
【0050】
工程1009は、その他に任意の暗号化領域が存在する場合をチェックする。図3に記載の例では、3つの暗号化領域が存在する。暗号化領域の数は、図6の例ではフィールドである。しかしながら、部分の数は、他の従来手段を用いて決定し得る。追加の暗号化領域が存在する場合、プロセスは工程1005に飛ぶ。追加の暗号化領域が存在しない場合、プロセスは工程1011から継続する。
【0051】
次に、工程1011は、復号化されたAUをICカードのメモリ内にロードする。ALUは、すべての認証および復号化チェックを通過し、ついにアプリケーションはICカード上に適切に存在し、カードユーザによって実行され使用され得る。図9および図10において、異なるチェックが特定順序で提示されたが、チェックは任意の順序で実施し得る。記載したすべての技術は、ALUに最良の安全性を提供することに関連して使用されたが、一つ以上の個別技術が、個別の目的のため、または他の従来安全技術との組み合わせで使用され得る。
【0052】
図11は、ALUがロードされ処理され得るICカードチップのブロック図の例を示す。使用されるICカード上には集積回路が配置される。ICカードは、好適には、中央演算装置1101、RAM1103、EEPROM1105、ROM1107、タイマ1109、制御ロジック1111、I/Oポート1113、および安全回路1115を含み、これらは従来のデータバスによって互いに接続されている。
【0053】
メモリカード内の制御ロジック1111は、入力/出力ポートを介してカードのメモリへの読み出し/書き込みを取り扱うのに充分なシーケンスおよびスイッチングを供給する。制御ロジックを備えたCPU1101は、計算、メモリロケーションへのアクセス、メモリ内容の変更、および入力/出力ポートの管理を実施する。カードのなかには、暗号処理など複雑な演算を取り扱うためのコプロセッサを有するものがある。入力/出力ポート1113は、CPUおよび制御ロジックの制御下で、カードとカードインターフェイスデバイスの間の通信のために使用される。タイマ1109(クロックパルスを生成し供給する)は、メモリアクセス、メモリ読み出しまたは書き込み、処理、およびデータ通信を完成する一連の工程を介して、制御ロジック1111およびCPU1101を駆動する。タイマーは、呼び出し持続時間などのアプリケーションの特徴を供給するのに用いられ得る。セキュリティ回路1115は、製造中におけるテストの必要に応じて、入力/出力配線を内部回路に接続する可融性の(fusible)接続を含んでいるが、この回路はテストの完了時に、その後のアクセスを防ぐために壊され(「溶融し(blown)」)、その後のアクセスを防ぐ。ALUが認証され検証された後のAUデータは、EEPROM1105に記憶される。本明細書に記載される認証プロセスは、CPU1101により実行される。
【0054】
また、図11は、アプリケーションプロバイダのためのおよび証明機構のための集積回路の可能な構成を示す。アプリケーションプロバイダのためのICチップ内に存在するCPU1101は、本明細書に記載した暗号化技術を用いて必要な情報を暗号化し、必要なデータ処理を実行する。証明機構に存在するCPU1101は、本明細書に記載したアプリケーションロード証明に署名するのに使用される。
【0055】
上記内容は、本願発明の原理を単に例示したものである。従って、本明細書には明示的に図示または記載しないが、本発明の原理を実施し、それにより、本発明の精神および範囲内にある多数のシステムおよび方法を、当業者が考案できることは理解される。
【0056】
例えば、本明細書ではアプリケーションのロードを記載しているが、同等の安全ローディングプロセスを、データブロック、データファイル、ワードプロセッシング文書、または安全な方式で送信を要する他の任意のタイプのデータなど、他のタイプのデータの送信に適用し得る。
【0057】
本開示の範囲は、請求された発明に関連するか否か、あるいは本発明で対処される課題の一部または全てを緩和するか否かに関わりなく、明示的または黙示的に開示された新規の特徴または特徴の組み合わせあるいはそれを一般化したものを含む。本出願は、本出願または本出願に由来する任意のさらなる出願の手続中に、そのような特徴に関する新しい請求項が作成され得ることの注意を促すものである。特に、付属の請求項に関しては、従属項に由来する特徴は、請求の範囲に挙げた特定の組み合わせのみならず、任意の適切な方法で独立項の特徴と組み合わせ得る。
【特許請求の範囲】
【請求項1】
本明細書に記載のシステム。
【請求項1】
本明細書に記載のシステム。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【公開番号】特開2010−134933(P2010−134933A)
【公開日】平成22年6月17日(2010.6.17)
【国際特許分類】
【出願番号】特願2009−277065(P2009−277065)
【出願日】平成21年12月4日(2009.12.4)
【分割の表示】特願平10−548938の分割
【原出願日】平成10年5月14日(1998.5.14)
【出願人】(500356898)モンデックス インターナショナル リミテッド (3)
【Fターム(参考)】
【公開日】平成22年6月17日(2010.6.17)
【国際特許分類】
【出願日】平成21年12月4日(2009.12.4)
【分割の表示】特願平10−548938の分割
【原出願日】平成10年5月14日(1998.5.14)
【出願人】(500356898)モンデックス インターナショナル リミテッド (3)
【Fターム(参考)】
[ Back to top ]