説明

セキュアコンテンツおよびアプリケーションのコピーを防ぐセキュリティメカニズムを有するメモリカードのアップグレード

セキュアフラッシュメモリカードあるいはフラッシュドライブは、ユーザコンテンツを無許可の複写からプロテクトする。しかし、プロテクトされるユーザコンテンツであっても、1つのフラッシュカードあるいはドライブから他の1つへその正当な所有者またはライセンシーによって移すことができる。さらに、付加的な機能性をカードに付け加えるために何時でもフラッシュカードに付け加えられるセキュアファームウェアアプリケーションも、その多くは装置特有であってハードウェアの1つの特定のピースの上でだけ動作するようにも設計されているけれども、移すことができる。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、一般的にはセキュアコンテンツとコピープロテクトメカニズムとを有するメモリカードに関し、特に、アップグレードが行われる場合に他のメモリカードへのセキュアコンテンツの転送を可能にすることに関する。
【背景技術】
【0002】
デジタルコンテンツの無許可のコピーおよび複写を防止するいろいろなプロテクトメカニズムがある。それらの多くは、しばしば、大雑把に1種のデジタル著作権管理(「DRM」)と称され、そのようなものとして考えられている。特に複写と、装置から装置への転送とを防止するために多大の努力が行われてきている。例えば、無許可の複写などが挙げられるたぐいのものを防止するために、音楽あるいは視聴覚コンテンツをiPodから他のiPodへ転送することはできない。同様に、セキュアメモリカードあるいはUSBフラッシュドライブ(以降、全体として「カード」と称される)において、プロテクトされるコンテンツをカードからカードへ移すことはできない。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】米国特許出願第11/285,600号
【特許文献2】米国特許出願第11/317,339号
【特許文献3】米国特許出願第11/317,862号
【特許文献4】米国特許出願第11/313,447号
【特許文献5】米国特許出願第11/313,536号
【特許文献6】米国特許出願第11/314,055号
【特許文献7】米国特許出願第11/322,766号
【特許文献8】米国特許出願第11/314,030号
【特許文献9】米国特許出願第11/319,835号
【発明の概要】
【0004】
本発明の種々の実施形態は、ユーザが容量のより大きなカードへアップグレードしたい時にカードのコンテンツを同等かまたはそれ以上の容量のカードへ移すあるいは転送することを可能にする。その同等またはそれ以上の容量のカードはターゲットと称され、ターゲットは、コピープロテクトされるコンテンツをターゲットへ移す場合には、ソースと同等あるいはそれ以上のレベルのセキュリティを持っていなければならない。プロテクトされるコンテンツを移す前に、ターゲットの真正性を判定するためにいろいろな方法が使用される。カードのファームウェアおよび他のソフトウェアが、それがロードされたオリジナルカード以外のどのカードにおいても動作できないようなカードの実施形態では、この障害を本発明の実施形態が克服し、転送されたコピープロテクトされるコンテンツが復号化され得るようにそれらを新しいカードに再バインド(re-bind)する。本発明でなければ、許可されたアップグレードを除いては厳格に禁止される。
【0005】
本発明の付加的な態様、利点および特徴は、その代表的な例についての以下の記述に含まれる。その記述は添付図面と関連して検討されるべきであり、そこでは同様の数字は、別様に明示されていない限り、図面全体にわたって同じ特徴を記述するために使われる。
【図面の簡単な説明】
【0006】
【図1A】セキュア装置100のブロック図である。
【図1B】ホスト150を介して他のエンティティとネットワーク化されたセキュア装置100の略図である。
【図2】ダイバーシフィケーションの図である。
【図3】図1Aのメモリ108の図である。
【図4A】ソースからターゲットへのアップグレードを示す図である。
【図4B】本発明の1つの実施形態に従ってアップグレード中にマテリアルがソースからターゲットへどのようにコピーされるかをさらに示す図である。
【図5A】本発明の1つの実施形態に従うアップグレードプロトコルを示す。
【図5B】本発明の1つの実施形態に従うアップグレード状態マシンの状態を示す。
【図5C】本発明の1つの実施形態に従うアップグレードプロセスを示すフローチャートである。
【図6】本発明の1つの実施形態に従う認証プロセスを示す図である。
【発明を実施するための形態】
【0007】
図1Aは、セキュアシステムの一実施形態であるセキュア大容量記憶装置100を示す。前述したように、セキュアフラッシュ大容量メモリカードまたはUSBフラッシュドライブ(全体として「カード」またはセキュア装置と称される)では、プロテクトされるコンテンツは1つより多くのカードでは使用され得ない。セキュア装置(「SD」)100は、好ましくはNANDフラッシュ型の大容量記憶メモリ108と、データおよび制御線106を介してメモリ108に通信するセキュアメモリコントローラ104とを含む。セキュア装置は、ホストインターフェイス102を介してホスト150と通信する。セキュアメモリコントローラ104は、メモリ108への/メモリ108からのデータ格納およびデータ取り出しとホスト105への/ホスト105からの転送との全てを制御する。セキュアメモリコントローラ104(カードファームウェアと関連して)セキュリティをSD100に提供する。メモリコントローラは、暗号化または暗号エンジン110と、好ましくは暗号化エンジン110の中に置かれて暗号化エンジン110だけがアクセスできるハードウェアキー112とを含む。ハードウェアキー112は、そのソフトウェア/ファームウェアがカードの内側に置かれて動作するか外側に置かれて動作するかに関わらずにどんなソフトウェア/ファームウェアもそれにアクセスできないので、ソフトキーとは異なる。換言すれば、ハードウェアキー112はユーザファイルを暗号化するために使用されるべく意図されてはいない。ハードウェアキーは、カードを動作させるファームウェアを暗号化するためあるいはそれに署名するために使用される。実際上、カードのファームウェアを、そのファームウェアが他のどのカードに存在する場合にもそのファームウェアが使用不能となるように、カードの特定のハードウェアにバインドする。そのハードウェアを暗号化しハードウェアに署名した特定のコントローラおよび暗号化エンジンが存在しなければ、ファームウェアは動作しない。これは、無許可コピーを許すかもしれない、詐欺で手に入れたファームウェアを妨げる。セキュアシステムのこの実施形態に関するさらなる情報については、M. Holtzman らによる「Hardware Driver Integrity Check of Memory Card Controller Firmware」という米国特許出願第11/285,600号(特許文献1)を参照されたい。
【0008】
図1Bは、例えばインターネットなどを介してホスト150とネットワーク化された種々のエンティティに通信するSD100を示す。SD100、ホスト150、および種々のネットワーク化されたエンティティの間でセキュアトランザクションあるいは他の相互作用が行われることができる。
【0009】
図2はダイバーシフィケーションを示し、コンテンツを特定の装置に限定するためにしばしば利用される他の1つの技術である。図2に示されているダイバーシフィケーションはソフトキーに関連し、コンテンツを暗号化し復号化し、それによってコンテンツおよび他のファイルの無許可複写を防止するためにカードのファームウェアおよび他のセキュアアプリケーションにより使用されるキーである。ソフトキー128を作るためにダイバーシフィケーションデータ120およびマスターキー124がキー生成アルゴリズムに入力される。ダイバーシフィケーションデータは、例えばカードのシリアルナンバーまたは(トラステッド(trusted) )IDなどのように、特定のカードに対して一意であることができ、あるいは特定のユーザに対して一意であることができる。ソフトキー128は、ダイバーシフィケーションデータの関数であり、従ってまた一意であるので、マスターキーが含まれても、全てがグローバルベースで(on a global basis) 失われることはない。ダイバーシフィケーションデータは、リファレンスおよび値の両方を含むことができる。そのような場合、値は、好ましくは図2に示されているダイバーシフィケーション関数のために使用される。ソフトキーは、一種のクレデンシャルとも称することができ、名前またはタイトルと値との両方を含むことができる。キー生成関数は、ホストとカード自体との両方において異なるアプリケーションについて異なり得る。セキュアアプリケーション142などのカードアプリケーションは、以下でより詳しく論じられる。
【0010】
カードのファームウェアは、ユーザファイルの無許可の複写または転送を防止する任意の数の異なるセキュリティルーチンおよびメカニズムを持つことができる。SD100に存在する他のセキュリティメカニズムおよび技術に関するこれ以上の情報については、その全体が本願明細書において参照により援用されている、M. Holtzman らによる「Secure Yet Flexible System Architecture for Secure Devices With Flash Mass Storage Memory 」という米国特許出願第11/317,339号(特許文献2)、M. Holtzman らによる「Secure Memory Card With Life Cycle Phases 」という米国特許出願第11/317,862号(特許文献3)、M. Holtzman らによる「In Stream Data Encryption/Decryption and Error Correction Method」という米国特許出願第11/313,447号(特許文献4)、F. Jogand-Coulomb らによる「Control Structure for Versatile Content Control 」という米国特許出願第11/313,536号(特許文献5)、F. Jogand-Coulomb らによる「System for Creating Control Structure for Versatile Content Control 」という米国特許出願第11/314,055号(特許文献6)、B. Qawami らによる「Mobile Memory System for Secure Storage and Delivery of Media Content 」という米国特許出願第11/322,766号(特許文献7)、およびM. Holtzman らによる「In Stream Data Encryption/Decryption Method 」という米国特許出願第11/314,030号(特許文献8)を参照されたい。本願は、前述した特許出願のこれらのセキュリティ技術またはメカニズムに限定されるべきではない。
【0011】
或るカードの場合には、セキュアアプリケーション142がカードの寿命中にカードにロードされることもある。これらのアプリケーションは、システムファームウェアの上で動作し、機密データの付加的操作を必要とし得る。例えば、メモリカードまたはUSBフラッシュドライブの機能性を高めるために、パスワード管理を可能にするアプリケーションが付加され得る。これに関するこれ以上の情報については、Gonzalezらによる「Mass Storage Device With Automated Credentials Loading」という米国特許出願第11/319,835号(特許文献9)を参照されたい。他の例として、医療または金融上の記録に関連するアプリケーションがカードにロードされ得る。これらのソフトウェアまたはファームウェアアプリケーションは、カードのプロセッサだけまたはカードのプロセッサとホスト装置のプロセッサとの共同により実行されて、機密情報を処理できるだけではなくて、カードのコンテンツを暗号化し保護するために使用される秘密情報も処理することができる。それゆえ、それらは深く相関してカード内のセキュリティメカニズムおよび情報に依存することができる。或る場合には、アプリケーション自体のセキュリティメカニズムはカード特有の情報を利用し、他のカード上では機能しない。アプリケーション自体は、それらがコピーされハッキングされるのを防止するために暗号化され、そして装置特有であり得る。
【0012】
本質的に、これらのセキュリティメカニズムは、セキュアなユーザファイルあるいは「コピープロテクトされている」ユーザファイルを別の装置にコピーし、その後にそれらをその別の装置で利用することを不可能にすることを目指している。例として、或るカードでは、コピーされた歌は、カードまたはそのカードに結合されたホストからは再生され得ない。このことは、或る装置では、プロテクトされているコンテンツの許可された所有者またはライセンシーでさえもそれを自分の装置のうちの1つから他の1つへ、移動の前後にそのコンテンツの唯一のインスタンスが存在するだけなのに、移動させることができないという不幸な結果を有する。
【0013】
図3を参照すると、大容量記憶フラッシュメモリ(「MSM」)108のメモリ空間が示されている。MSM108は、ユーザ/ホストから秘密にされたシステムパーティションまたは領域108Aを含む。システムパーティション108Aにはシステムファームウェア130およびソフトキー134が格納されている。システムファームウェア130は、SD100の全てのデータ記憶操作と、ホスト装置150との通信とを制御するオペレーティングファームウェアである。ソフトキーは、SD100内のデータを暗号化し復号化するために、ファームウェアを含む装置のソフトウェアにより利用され得るキーである。これは、前述したようにユーザファイルの一般的な暗号化/復号化に利用できないハードウェアキー112とは異なる。MSM108は、プライベートパーティション108Bおよびユーザパーティション108Cも含む。セキュアアプリケーション142およびプロテクトされるデータ138はプライベートパーティション108Bに格納され得る。プロテクトされるデータは、自由なアクセス(それがユーザパーティション108Cに格納されたならば実際にそうなる)から保護されるために望ましい任意のタイプの操作用パラメータまたは他のデータであり得る。セキュアアプリケーション142は、システムファームウェア130の上で動作し、そしてソフトキー134を、単独でまたはセキュアアプリケーション自体により提供されるキーと組み合わせて、利用するセキュリティルーチンを含むことができる。これらのアプリケーション142は、代表的なデータ記憶操作に加えて付加的な機能性をカードに提供するものであって、カードの寿命中に何時でもユーザにより付加され得る。さらに、セキュアアプリケーションは、アプリケーションがロードされた特定のカードにおいてのみ機能するカードに特有の情報(例えば、ダイバーシフィケーションデータ120)を使用することができる。例えば、セキュアアプリケーションは、カードのシリアルナンバーまたは他のダイバーシフィケーションデータを用いてワンタイムパスワードを生成することができ、その後、それらをユーザまたはユーザのアカウントのログインまたはベリファイのために提示することができる。これは一例に過ぎなくて、セキュリティまたは他の機能に使用される任意の数のアルゴリズムがカード特有のデータに少なくとも部分的に基づくことができる。アプリケーションは、ユーザによって、何時でもロードされ得る。これらのアプリケーションの全ては、理想的にはターゲットカードに転送されて、アップグレード後に、下にあるハードウェアが変わったという事実にも関わらずに機能するべきである。この困難は、後に扱われる。
【0014】
ユーザパーティション108に格納されているデータは一般的に公然利用可能である。ユーザパーティション108Cは、ダイバーシフィケーションデータ120、コピープロテクトされるコンテンツ152、およびプロテクトされないコンテンツ156を含む。ダイバーシフィケーションデータ120は、導出されたキーが含まれたならば特定のファイルの全てのインスタンスが著作権侵害され得るかあるいは自由に複製され得るとは限らなくなるように、1つまたは複数のマスターキーを、その1つまたは複数のマスターキーから導出されたけれども装置またはユーザのサブセットに限定される複数のキーに多様化するために使用される情報を含む。コピープロテクトされるコンテンツとは、転送されないように制限されるコンテンツ、あるいは転送またはコピーされ得るけれども、それにアクセスするための適切な手段がなければ役に立たないコンテンツのことである。セキュリティは、システムファームウェア130、ソフトキー134、および/またはセキュアアプリケーション142により提供され得る。多くの実施形態において、コピープロテクトされるコンテンツは通例暗号化され、その暗号化されたコンテンツは、コピーはされ得るけれども、装置が認証またはオーソライズされかつコンテンツを復号化するための適切なキーを持っていなければ、コンテンツは復号化されることはできない。
【0015】
図4Aは、ソース110Sのメモリ108Sのコンテンツがターゲット100Tのメモリ108Tに転送されるアップグレードプロセスを描いている。前述したように、装置100の1つの実施形態では、各々の特定のコントローラは、少なくとも装置100のシステムファームウェア130をコントローラにバインドする一意なハードウェアキーを有する。従って、初めにソース100Sにロードされてソース100Sのコントローラおよび他のハードウェアにバインドされたシステムファームウェアは、いったんターゲット100にコピーされたならば機能しない。これは、単に、カード100Tがデフォルトでは機能しないということを意味する。或る実施形態では、セキュアアプリケーション142およびソフトキー134も、唯一のハードウェアにバインドすることができて、それらがバインドされていないハードウェアにとっては機能不能でかつアクセス不能である。これは、首尾よいアップグレードでは克服されなければならない。
【0016】
図4Bは、ソース大容量記憶メモリ108Sに格納されている種々のアイテムの、ターゲット大容量記憶メモリ108Tへの転送を示す。転送は、ローカルであるかあるいは遠くに置かれることのできる1つ以上のホストを通して行われる。ステップ402に見られるように、システムパーティション108Aのシステムファームウェア130およびソフトキー134は、ソースHWキー112Sで復号化され、セッションキーで暗号化され、その後、ターゲットで受け取られる時にセッションキーで復号化され、そこでそれらはターゲットHWキー112Tで再び暗号化される。このようにしてシステムファームウェアおよびソフトキーはソースHWからバインド解除(unbind)され、その後にターゲットHWに再バインドされる。セッションキーは、データを、それがソースからターゲットへ移送されている間プロテクトし、そして或る実施形態では不要かもしれないし、かつ/または利用されなくてもよいけれども、好ましくは使用される。HWターゲットキーによる暗号化は、好ましくは、それらがターゲットの暗号化エンジン110Tを通過する時に「即座に(on the fly)」行われる。「即座の」暗号化/復号化に関するさらなる情報については、M. Holtzman らによる「In Stream Data Encryption/Decryption and Error Correction Method」という米国特許出願第11/313,447号(特許文献4)を参照されたい。
【0017】
プライベートパーティション108Bのプロテクトされるデータ138およびセキュアアプリケーションも、ステップ404に見られるようにソースからターゲットに転送される。それらがHWキーで暗号化されているならば、それらはソースHWキーで復号化され、移送のためにセッションキーで暗号化され、その後に復号化され、前述したようにターゲットHWキーで再び暗号化される。それらが単にソフトキー134またはセキュアアプリケーション142の他のキーで暗号化される実施形態において、それらは好ましくはセッションキーで暗号化され、移送後にセッションキーで復号化される。再び、前述したように、セッションキーの使用は好ましくはあるけれども、それは、一定の実施形態において、例えばホストおよび移送プロセスが既知の安全な環境であるいは私的ネットワークを介して行われ得るというシナリオにおいては、省略されてもよい。
【0018】
ダイバーシフィケーションデータ120は、ステップ408により表されているように、セッションキーで暗号化されるかあるいは暗号化されていない状態で送られることができる。プロテクトされないコンテンツ156についても同様である。
【0019】
音楽、映画および他の繊細なコンテンツなどのコピープロテクトされているコンテンツ152も、ステップ412により表されているように、ソースからターゲットに転送される。前に述べられたように、コンテンツのコピープロテクトは、システムファームウェア130だけにより、またはセキュアアプリケーション142と共同するシステムファームウェア130により提供される。それは、ソフトキー134だけで、あるいはセキュアアプリケーション142のプロバイダにより提供される他のキーで暗号化される。セキュアアプリケーションは、セキュリティルーチンおよび/またはシステムファームウェアのソフトキーをファームウェアのAPIを通して呼び出すことができ、あるいはセキュアアプリケーションと共にまたセキュアアプリケーションにより提供されるキーを利用することができる。さらに、セキュアアプリケーションは、システムファームウェア130およびソフトキー134により提供されるものに加えて追加の暗号化の層を提供することができる。いずれの場合にも、コピープロテクトされるコンテンツを、ターゲットに格納されるので転送することができ、あるいは、ターゲットに到着した時に当該セッションキーで復号化される前の移送の間、セッションキーでさらに暗号化することができる。
【0020】
付加的な無許可のコピーが作られないように、かつプロテクトされるコンテンツがソースと1つ以上のターゲットとの両方で利用可能ではあり得ないように、コピープロテクトされるコンテンツが複写されないことは重要である。装置は、中断されたアップグレード、および他のハッキングあるいは攻撃から自分自身を保護しなければならず、同時に、アップグレードプロセス中の偶発的故障の場合にソースおよびターゲットの両方が機能し得る状態に留まることを保証しなければならない。装置の状態マシンは、システムファームウェアと共同してこれを可能にする。
【0021】
或る実施形態では、アップグレードが行われた後、ターゲットは、ターゲットの原ダイバーシフィケーションデータとソースのダイバーシフィケーションデータとの両方を含む。これは、ターゲットのコンテンツがソースの既存のコンテンツと合併される場合に特に有益である。或る実施形態では、ダイバーシフィケーションデータと同様に、アップグレード後のソフトキーおよび/またはクレデンシャルはターゲットのものとソースのものとの両方を含むことができる。
【0022】
図5Aは、本発明の1つの実施形態に従うアップグレードプロトコルを示す。ソース100Sからターゲット100Tへの転送は1つのコンピュータないし数台のネットワーク化されたコンピュータを含み得る通信プロキシを介して行われる。例えば、その通信プロキシは、インターネットを通して数台の他のコンピュータに、そしてついにはターゲットに結合されるホスト150を含むことができる。アップグレードは、ソースデータをホストにロードする前にしばらくの間一時的に遠くに格納しておいて、順次に行われてもよい。
【0023】
プロトコルは5つの主な段階、フェーズ、あるいはステップを含む。これらは状態マシンの状態に関連させられている。まず、ステップ450に見られるように、アップグレードのための装置のセットアップである。プロキシは、ソースおよびターゲットの両方をデータ送受信のために準備させる。それらの各々は、次に、自分たちの準備が整ったことを知らせる。
【0024】
プロトコルの第2の状態/ステップは、ステップ460に見られるように、認証である。これは、ターゲットの認証、あるいはソースおよびターゲットの両方の認証を含み得る。或る実施形態では、認証は、ソースおよびターゲットの両方が互いに相手を認証する相互認証を含む。このタイプの認証はキー交換を含む。認証の幾つかの好ましい方法が図5Cおよび6に関して後に論じられる。
【0025】
プロトコルの第3の状態/ステップは、ステップ470に見られるように、アップグレード転送自体である。この状態の一部として、プロキシはセキュアデータベースを送るようにソースに指令し、システムファームウェア130、ソフトキー134、並びに任意選択で、そうあるならば、プロテクトされるデータ138およびセキュアアプリケーション142を含む。ソースはその後、セキュアデータベースのコピーをプロキシを通してターゲットに送る。プロキシは、その後、ソースからパーティションマップを得て、パーティションマップがターゲットのためにリサイズされるべきか否かを判定する。ターゲットはソースと同じかまたはもっと大きい記憶容量を有する。そして、任意の数の理由からパーティションマップを変更しかつ/またはリサイズするのが望ましいかもしれない。さらに、パーティションをリサイズし、従ってパーティションマップを変更することをユーザが要求し、また入力がそれを指令することもできる。マップがリサイズされなくてもよければ、パーティションデータはソースから取り出されて、先に更新されることなくターゲットに送られ得る。
【0026】
プロトコルの第4の状態/ステップは、ステップ480に見られるように、コピー肯定応答である。プロキシは、コピー操作が首尾よく完了したことをターゲットが知らせるようにリクエストし、それが行われたならばソースにコピー操作が首尾よく完了したことを知らせる。
【0027】
プロトコルの第5の状態/ステップは、ステップ490に見られるように、ソースの消去操作である。消去は、コピー操作が成功した場合に限って行われる。さもなければ、ソースもターゲットもメモリの完全なコンテンツを持っていないことになるという危険がある。プロキシは、消去が完了したことを知らせるようにソースにリクエストし、その肯定応答が受け取られた時、ターゲットに通知が行われる。この情報があれば、ターゲットは使用され得る。或る実施形態では、これはアクティブ化ステップを伴う。
【0028】
図5Bは、図5Aに示されているプロトコルあるいは他のアップグレードプロトコルまたはプロセスに関係する時の装置100のカードアップグレード状態マシンの状態を示す状態図である。状態マシンとアップグレードプロトコルとは、アップグレードプロセスが何らかの理由で中断されてもアップグレードがセキュリティの侵害を伴わずに再開され、アップグレードが何らかの理由で不可能であってもターゲットおよびソースの両方が使用可能な状態に留まることを保証するように設計される。矢印に沿うテキストは、状態変化を引き起こすイベントを記述する。矢印にテキストがなければ、前述したプロトコルのフェーズ/状態が終わった時に生じる。装置あるいはカードのパワーアップ後に、ダイアモンド404に見られるように、カードの状態が標準状態かどうかを調べるために状態フラグが検査される。そうでなれば、装置が失敗したアップグレードから回復しつつあることを示し、装置は、ボックス406により示されているように、失敗した認証であり得るものを回復しようと試みるか、あるいはターゲットについて再認証しようと試みる。認証(回復)が成功しなければ、装置は最認証しようと有限回数試みる。認証の試みが所定のしきい値を越えたならば、装置は標準モード/状態に戻る。認証プロセスの一部として、装置のトラステッドIDまたはシリアルナンバーが読み出される。ダイアモンド408に見られるように、装置から読み出されたトラステッドIDが格納されているトラステッドIDと同じであれば、ダイアモンド412に見られるように、状態フラグが検査される。カードがアップグレード状態にあることをフラグが示していれば、ボックス432に見られるようにカードはアップグレードモードであると判定される。アップグレードモードでなければ、ダイアモンド446に見られるように、コピー肯定応答状態であるか否かが判定される。コピー肯定応答状態/モードであるならば、ボックス440により表されるように、状態はそのようなものとして示される。そうでなければ、ボックス440により表されるように、消去状態にあるかあるいは消去状態にセットされる。最後に、ボックス444により表されるように、カードは消去状態に達する。
【0029】
あるいは、ダイアモンド404で判定されたように状態フラグが標準であると判定され、ボックス420により表されるように、アップグレードイベントがトリガされたならば、状態は、ボックス424により表されるようにカードセットアップ状態に進められる。これは図5Aの状態/ステップ450に対応する。次の状態は、ボックス428により表されるように、認証状態である。カードは、この状態あるいはカードセットアップ状態の間、ソースまたはターゲットの役割を割り当てられる。図5Aのステップ460で認証が成功したならば、例えば、状態は、装置がカードアップグレードモード/状態にあることを反映するように更新され、カードのトラステッドID(またはシリアルナンバー)が格納される。次の状態は、ボックス436により表されるコピー肯定応答状態(図5Aのステップ/フェーズ480に対応する)である。コピー肯定応答がいったん受信されれば、装置は、ボックス440により表されるように、消去状態に遷移させられ、その結果としてボックス444で表されるように消去が通知される。その後、状態は、ボックス420により表される標準使用状態に進められる。従って、装置は再び標準使用され得る状態となる。
【0030】
図5Cは、本発明の1つの実施形態に従うカードアップグレードプロセスを示すフローチャートである。ステップ502で、ソースはレセプタクルに挿入されるか、あるいは、他の場合に、既に挿入されているならば、選択される。ソースカードが挿入されるかあるいは選択され、次のステップのうちの幾つかが実行されてから充分後に生じ得るステップ504において、ターゲットが挿入されかつ/または選択される。ステップ506で、アップグレードまたは転送がリクエストされる。次に、ステップ508に見られるように、ホストはアップグレードリクエストを受け取り、ターゲット証明書をソースに渡す。その時、ソースは、ターゲットがターゲットとして動作する資格を有すること、およびそれがアップグレードをサポートすることを確認する。ターゲットは、ソースと同等かまたはそれより大きな容量を持っていなければならず、また同等あるいはそれ以上のレベルのセキュリティを持っていなければならない。アップグレードのために他の基準も必要かもしれない。ステップ512に見られるように、ターゲットおよびソースがアップグレードのための資格を有するならば、アップグレードリクエストは有効であると判定され、ソースはその時ターゲットがトラステッド(信頼される)装置であることを確認する。これは、証明書を、例えばPKI証明書オーソリティ(PKI certificate authority) などの証明書オーソリティと照合することによって行われる。しかし、リクエストが有効でなければ、ステップ514により表されるように、アップグレードはアボートされる。ステップ518で判定されるようにターゲットが信頼される(トラステッド)ならば、ソースはステップ520でセキュリティアイテムをパッケージ化するが、それは少なくともソフトキー134を含み、また、システムファームウェア130、プロテクトされるデータ138、およびセキュアアプリケーション142も含むことができる。それはまた任意選択によりプロテクトされるコンテンツおよび/またはプロテクトされないコンテンツの一部または全部およびダイバーシフィケーションデータも含むことができるが、そのような用心はコンテンツのためには通例不要である。ソースは、その後、ステップ522でパッケージをターゲット公開キーで暗号化する前にステップ520の一部としてセキュリティパッケージのチェックサムを行うか、あるいはパッケージに暗号法により署名する。
【0031】
ステップ524で、ソースは暗号化されたパッケージに自分自身の秘密キーで署名し、暗号化されたパッケージにソース証明書を付ける。ステップ526で、暗号化されたパッケージおよび証明書は、ホストまたは他のプロキシを介して、選択されたターゲットに渡される。その後、ステップ528で、ターゲットは、例えばPKI証明書オーソリティで調べることによって、ソースが信頼される装置であることを確認する。ステップ530で、ソースが信頼されるものであると認められなければ、アップグレード/転送は、ステップ532に見られるように、アボートされる。その代わりに、ソースが信頼されるならば、ステップ534で、ターゲットはデータの完全性を調べ、結果をホストを介してソースに返す。この調べは、ステップ520からのチェックサムまたは暗号署名を比較することを含み得る。パッケージの完全性がステップ536でベリファイされなければ、ステップ538に見られるようにプロセスは再びアボートされる。代わりに、パッケージの完全性がベリファイされたならば、ソースはステップ540でホストを介してアクティブ化コードをターゲットに渡し、パッケージ化されたセキュリティアイテムはステップ542でソースから削除される。ステップ546で、ソースはアクティブ化コードを使ってパッケージをアンパックし、必要ならばそれをカードの既存のコンテンツと併合する。その後、ステップ548で、カードのコンテンツ、すなわちユーザパーティション108C内のプロテクトされるファイルおよび/またはプロテクトされないファイルが、ソースからターゲットにコピーされる。暗号化されているコピープロテクトされるファイルは、適切なキーがなければ役に立たないので、セキュアパッケージのために提供される用心なしで自由にコピーされ得る。
【0032】
図6は、アップグレードプロセスに用いられる認証技術の実施形態を示す。当該技術分野で知られている他の認証技術も使用することができ、本発明は、決してこのような特定の技術や前述した特定の技術に限定されるべきではない。図6の技術は副産物としてセッションキーを作り、セッションキーは図4Bに関連して記載されたセッションキーとして利用され得る。
【0033】
図6は、AESキーを利用するダブルチャレンジ(double challenge)方法を示す。この方法はベリファイフェーズ605を含み、これは、装置のうちの開始装置で第1の乱数を生成してそれを装置のうちの応答装置に渡すことと、第1の乱数を応答装置で暗号化することと、第1の乱数を暗号化された形で開始装置に戻すことと、その後に、その暗号化されている第1の乱数を開始装置で復号化し、それを前の生成されたままの数と比較することとを含む。これは604というラベルが付された乱数Aと共に見られる。この方法は、さらに、応答装置で第2の乱数を生成して開始装置に渡し、それを暗号化し、その後にそれを暗号化された型で応答装置に戻し、それを前の生成されたままの数と比較することを含む。これは、図6において606というラベルが付されている乱数Cと共に見られる。
【0034】
セキュアチャネル作成フェーズ615も図6に示されている。セキュアチャネルを確立することは、装置のうちの開始装置で第3の乱数を生成することと、第3の乱数を開始装置で暗号化することと、第3の乱数を応答装置に渡すことと、それを応答装置で復号化することと、第4の乱数を応答装置で生成することと、復号化された第2の乱数と第3の乱数とに対して応答装置において排他的論理和演算を実行することとを含む。これは、608というラベルが付された乱数Bおよび610というラベルが付された乱数Dと共に見られる。論理和演算は612および614というラベルを付されている。
【0035】
認証が完了したならば、前述したセキュアデータベースおよびパーティションマップは、或る実施形態では、排他的論理和演算の結果に基づいて暗号化され得る。この結果はセッションキー616または616’である。
【0036】
本発明の種々の態様をその代表的な実施形態に関して記載してきたけれども、本発明は添付されている特許請求の範囲全体の中で保護を受ける権利を有することが理解されるべきである。

【特許請求の範囲】
【請求項1】
フラッシュストレージドライブ上のデータをプロテクトし、その後に、リクエストされたならば、そのプロテクトされる、通常は転送不能のデータを、ソースフラッシュストレージドライブからターゲットフラッシュストレージドライブに転送する方法であって、
転送不能であり、かつ単一のドライブに前記ドライブの寿命の間一意に関連付けられ、さらに前記ドライブのどのソフトウェアもアクセスできないハードウェアキーを前記ソースドライブにおいて提供するステップと、
前記ソースドライブのオペレーティングファームウェアを前記ハードウェアキーで暗号化するステップと、
前記ソースドライブの秘密の、ホスト装置がアクセスできないシステムパーティションに、前記ハードウェア暗号化されたオペレーティングファームウェアを格納するステップと、
ソフトウェアに基づく暗号化キーのグループを前記ソースドライブの前記システムパーティションに格納するステップと、
前記ソースドライブのユーザファイルと、存在するならばアプリケーションとを含む前記ソースドライブのコンテンツを前記ターゲットドライブに転送するためのリクエストを受け取るステップと、 前記ターゲットドライブの真正性を判定するステップと、
真性であると判定されたならば、前記ソースカードの前記オペレーティングファームウェアを前記ソースドライブに特有の前記ハードウェアキーで復号化するステップと、
前記ソースドライブと前記ターゲットドライブとの間のセキュアセッションを確立して、前記セキュアセッションの間に前記オペレーティングファームウェアを前記ソースドライブから前記ターゲットドライブに転送するステップと、
転送不能であり、かつ前記ターゲットドライブに前記ドライブの寿命の間一意に関連付けられるターゲットハードウェアキーで、前記ターゲットドライブにおいて前記オペレーティングファームウェアを再暗号化し、これにより前記ターゲットドライブが前記オペレーティングファームウェアを利用することを一意に可能にするステップと、
を含む方法。
【請求項2】
請求項1記載の方法において、
前記暗号化されたアプリケーションを前記ソースフラッシュストレージドライブのフラッシュメモリに格納するステップは、前記アプリケーションを秘密パーティションに格納するステップを含む方法。
【請求項3】
請求項1記載の方法において、
前記暗号化され格納されたファイルはホスト装置にとっては自由にアクセス可能であり、従って適切なソフトウェアキーを持っていないホスト装置は前記ファイルを自由にコピーできるけれどもそれらを復号化することができない方法。
【請求項4】
請求項1記載の方法において、
前記セキュアセッションの間に前記オペレーティングファームウェアを前記ソースドライブから前記ターゲットドライブに転送するステップは、
転送の前に前記復号化されたオペレーティングファームウェアを、前記ソースドライブおよび前記ターゲットドライブの両方の前記ハードウェアキーおよびソフトウェアキーから独立しているセッションキーで暗号化するステップと、
前記オペレーティングファームウェアを、前記ターゲットへの到着の直後に前記セッションキーで復号化するステップと、その後に
前記オペレーティングファームウェアを前記ターゲットドライブにおいてハードウェアキーで再暗号化するステップと、
を含む方法。
【請求項5】
請求項1記載の方法において、
前記ソフトウェアに基づく暗号化キーのグループを前記ハードウェアキーで暗号化するステップをさらに含む方法。
【請求項6】
請求項1記載の方法において、
前記ハードウェアに適切にバインドされていないファームウェアは前記ソフトキーにも前記ドライブの他のコンテンツにもアクセスできない方法。
【請求項7】
請求項1記載の方法において、
前記ハードウェア暗号化されたオペレーティングファームウェアを前記ターゲットドライブのシステムパーティションに格納するステップをさらに含む方法。
【請求項8】
請求項1記載の方法において、
前記ソースドライブから前記ターゲットドライブへの転送の間、前記オペレーティングファームウェア、前記ソフトウェアに基づく暗号化キーのグループ、前記アプリケーション、および前記ユーザファイルのうちの1つ以上は前記ソースドライブから前記ターゲットドライブへのルート上で前記ソースドライブあるいは前記ターゲットドライブ以外の中間記憶ユニットに一時的に格納される方法。
【請求項9】
請求項1記載の方法において、
前記ソースドライブ上で動作するソフトウェアアプリケーションを、前記ソフトウェアに基づく暗号化キーのグループのうちの1つで暗号化するステップをさらに含む方法。
【請求項10】
請求項9記載の方法において、
前記ソースストレージドライブの前記ハードウェアキーから独立しているアプリケーション特有のセキュリティメカニズムを有する前記暗号化されたアプリケーションを前記ソースフラッシュストレージドライブのフラッシュメモリに格納するステップと、
前記暗号化されたアプリケーションの前記アプリケーション特有のセキュリティメカニズムを用いてユーザファイルを暗号化するステップと、
前記アプリケーション特有のメカニズムでプロテクトされる前記ユーザファイルを前記ソースフラッシュストレージドライブの前記フラッシュメモリに格納するステップと、
ユーザファイルにアクセスするためのリクエストを前記ホスト装置のファイルマネージャから時々受け取るステップと、
前記オペレーティングファームウェアで、前記ファイルを、前記ファイルにアクセスするために使用されるアプリケーションに相関させ、かつ前記アプリケーションのアプリケーション特有のセキュリティメカニズムを呼び出すことによって、リクエストされた時に前記ユーザファイルにアクセスするステップと、
をさらに含む方法。
【請求項11】
請求項7記載の方法において、
前記ターゲットドライブの前記真正性がベリファイされたならば、前記ソフトウェアに基づく暗号化キーのグループと前記アプリケーションとを前記ソースドライブから前記ターゲットドライブに転送するステップと、
前記アプリケーションを暗号化されたフォーマットで前記ターゲットフラッシュストレージドライブのフラッシュメモリに格納するステップと、
をさらに含む方法。
【請求項12】
請求項11記載の方法において、
前記ターゲットドライブの前記ユーザファイルを前記ストレージドライブに転送するステップをさらに含む方法。
【請求項13】
請求項11記載の方法において、
前記オペレーティングファームウェア、前記ソフトウェアに基づく暗号化キーのグループ、および前記アプリケーションが前記ソースドライブから前記ターゲットドライブに転送されたことをベリファイするステップをさらに含む方法。
【請求項14】
請求項13記載の方法において、
ベリファイが成功したならば、前記ユーザファイルを前記ソースドライブから削除するステップをさらに含む方法。
【請求項15】
請求項13記載の方法において、
ベリファイが成功したならば、ターゲットカードをアクティブ化するステップをさらに含む方法。
【請求項16】
請求項1記載の方法において、
前記ソフトウェアに基づく暗号化キーのグループのうちの少なくとも1つは、前記ソースドライブを一意に特定する情報の関数である方法。
【請求項17】
請求項16記載の方法において、
前記ソースドライブを一意に特定する前記情報は、前記ドライブのシリアルナンバーを含む方法。
【請求項18】
請求項1記載の方法において、
前記ソフトウェアに基づく暗号化キーのグループのうちの少なくとも1つは、前記ドライブのユーザに関連付けられた情報の関数である方法。
【請求項19】
請求項18記載の方法において、
前記ユーザに関連付けられた前記情報は、ドライブからドライブへと転送可能である方法。
【請求項20】
請求項19記載の方法において、
前記アプリケーション特有のメカニズムでプロテクトされる前記ユーザファイルを前記ソースフラッシュストレージドライブのフラッシュメモリに格納するステップは、アプリケーションプログラミングインターフェイスのリクエストに応答して1つ以上のファイルを暗号化するために前記ソフトウェアに基づく暗号化キーのうちの1つ以上を利用するステップをさらに含む方法。
【請求項21】
請求項1記載の方法において、
アプリケーション特有のセキュリティメカニズムは、前記ソースドライブを一意に特定する情報の関数であるダイバーシフィケーション方法を利用する方法。
【請求項22】
請求項21記載の方法において、
アプリケーションがリモートサーバについて認証を受けるために前記ソースドライブに特有の情報に依存し、前記アプリケーションがターゲットドライブに転送されるならば、前記認証のための前記ソースドライブに特有の情報も前記ターゲットドライブに転送される方法。
【請求項23】
フラッシュストレージドライブ上のデータをプロテクトし、その後に、リクエストされたならば、そのプロテクトされる、通常は転送不能のデータを、ソースフラッシュストレージドライブからターゲットフラッシュストレージドライブに転送する方法であって、
転送不能であり、かつ単一のドライブに前記ドライブの寿命の間一意に関連付けられるハードウェアキーを前記ソースドライブにおいて提供するステップと、
前記ソースドライブのオペレーティングファームウェアを前記ハードウェアキーで暗号化するステップと、
前記ソースドライブの、ホスト装置がアクセスできない第1の秘密パーティションに、前記ハードウェア暗号化されたオペレーティングファームウェアを格納するステップと、
ソフトウェアに基づく暗号化キーのグループを前記ソースドライブの前記第1の秘密パーティションに格納するステップと、
前記ソフトウェアに基づく暗号化キーのグループのうちの1つでアプリケーションを暗号化するステップと、
前記ソースストレージドライブの前記ハードウェアキーから独立しているアプリケーション特有のセキュリティメカニズムを有する前記暗号化されたアプリケーションを前記ソースフラッシュストレージドライブのフラッシュメモリに格納するステップと、
前記暗号化されたアプリケーションの前記アプリケーション特有のセキュリティメカニズムを用いてユーザファイルを暗号化するステップと、
前記アプリケーション特有のメカニズムでプロテクトされる前記ユーザファイルを前記ソースフラッシュストレージドライブの前記フラッシュメモリに格納するステップと、
を含む方法。
【請求項24】
第1の携帯型大容量記憶装置から第2の携帯型大容量記憶装置にアップグレードする方法であって、前記第1および第2の携帯型大容量記憶装置の両方は、前記装置に格納されているコンテンツのコピーがコピーされてもそれが他の装置上で動作するのを防止するためのファームウェアを有する、方法において、
(a)前記第2の携帯型大容量記憶装置が前記第1の携帯型大容量記憶装置のものと同等かまたはそれ以上の容量を有すると判定するステップと、
(b)前記第2の携帯型大容量記憶装置が、前記第1の携帯型大容量記憶装置とコンパチブルなセキュリティメカニズムを含むセキュアタイプであると判定するステップと、
(c)(a)および(b)が首尾よく判定されたならば、前記第1の携帯型大容量記憶装置と前記第2の携帯型大容量記憶装置との間にセキュアチャネルを確立するステップと共に前記第2の携帯型大容量記憶装置の真正性をベリファイするステップと、
(d)ステップ(c)で前記真正性がベリファイされたならば、
(e)オペレーティングファームウェアおよびセキュリティパラメータを前記第1の携帯型大容量記憶装置から前記第2の携帯型大容量記憶装置にコピーするステップと、
(f)前記第1の携帯型大容量記憶装置のパーティションマップをリサイズするべきか否かを、それを前記第2の携帯型大容量記憶装置に転送する前に、判定するステップと、
(g)前記パーティションマップを前記第1の携帯型大容量記憶装置から前記第2の携帯型大容量記憶装置にコピーするステップと、
(h)前記パーティションマップ内の各パーティションについて、パーティションデータを前記第1の携帯型大容量記憶装置から前記第2の携帯型大容量記憶装置にコピーするステップと、
(i)ステップ(a)から(h)までの完全な実行を確認するステップと、
(j)ステップ(i)で確認が受け取られなければ、前記第1の携帯型大容量記憶装置を、ステップ(i)から前記確認が受け取られるまで、それが使用不能の状態に留まるモードにするステップと、
を含む方法。
【請求項25】
請求項24記載の方法において、
ステップ(i)で確認が受け取られたならば、前記オペレーティングファームウェアおよび前記セキュリティパラメータおよび前記パーティションマップおよび前記パーティションデータを前記第1の携帯型大容量記憶装置から削除するステップをさらに含む方法。
【請求項26】
請求項24記載の方法において、
前記第1の携帯型大容量記憶装置の前記真正性をベリファイし、これにより、前記第1の装置および前記第2の装置の両方を互いに対して認証するダブルチャレンジプロセスを完了させるステップをさらに含む方法。
【請求項27】
請求項24記載の方法において、
前記真正性をベリファイするステップは、
前記装置のうちの開始装置において第1の乱数を生成し、それを前記装置のうちの応答装置に渡すステップと、
前記第1の乱数を前記応答装置で暗号化するステップと、
前記第1の乱数を暗号化された形で前記開始装置に渡すステップと、その後に
前記暗号化されている第1の乱数を前記開始装置で復号化し、それを生成されたままの前記数と比較するステップと、
を含む方法。
【請求項28】
請求項27記載の方法において、
前記真正性をベリファイするステップは、
前記装置のうちの応答装置で第2の乱数を生成し、それを前記装置のうちの開始装置に渡すステップと、
前記第2の乱数を前記開始装置で暗号化するステップと、
前記第2の乱数を暗号化されている形で前記応答装置に戻すステップと、その後に
前記暗号化されている第2の乱数を前記応答装置で復号化し、それを生成されたままの前記数と比較するステップと、
をさらに含む方法。
【請求項29】
請求項24記載の方法において、
前記セキュアチャネルを確立するステップは、
前記装置のうちの前記開始装置で第3の乱数を生成するステップと、
前記第3の乱数を前記開始装置で暗号化するステップと、
前記第3の乱数を前記応答装置に渡すステップと、
それを前記応答装置で復号化するステップと、
第4の乱数を前記応答装置で生成するステップと、
前記復号化された第3の乱数と前記第4の乱数とに対して前記応答装置で排他的論理和演算を実行するステップと、
を含む方法。
【請求項30】
請求項29記載の方法において、
セキュアデータベースおよび前記パーティションマップを前記排他的論理和演算の結果に基づいて暗号化関数で暗号化するステップをさらに含む方法。
【請求項31】
請求項24記載の方法において、
前記真正性をベリファイするステップは、
アノニマス公開キーをアノニマス秘密キーでベリファイするステップであって、それらのアノニマスキーがアイデンティティのプルーフを提供できないものである、ベリファイするステップと、
前記装置の前記アイデンティティを、それが信頼されるオーソリティの署名を有することを判定することによって、ベリファイするステップと、
を含む方法。
【請求項32】
請求項31記載の方法において、
前記アノニマス公開キーおよび前記アノニマス秘密キーは、RSAキーペアを構成する方法。
【請求項33】
請求項32記載の方法において、
前記アノニマス公開キーは、PKI証明書に含まれる方法。
【請求項34】
同じタイプの他のドライブからコピーされたプロテクトされるコンテンツの使用を許さないフラッシュメモリドライブにおいて、オペレーティングファームウェアおよびプロテクトされるコンテンツをソースドライブからターゲットドライブに、前記ターゲットドライブが前記ファームウェアを利用することができかつ前記ソースドライブから転送された前記コンテンツにアクセスできるように、転送するための方法であって、
前記ターゲットドライブからの前記ターゲットドライブのアイデンティティを証明する証明書を取り出させるステップと、
前記ターゲットドライブ証明書を前記ソースドライブに送らせるステップと、
前記ソースドライブにおいて前記ターゲットドライブ証明書をベリファイするステップと、
前記プロテクトされるコンテンツをコンテンツキーで暗号化させて前記ソースドライブから前記ターゲットドライブに送らせ、その直後に前記ソースドライブを、前記プロテクトされるコンテンツの使用が最早許されない状態にロックするステップと、
前記コンテンツキーをターゲット公開キーで暗号化させるステップと、
暗号化された前記コンテンツキーを前記ターゲットに送らせるステップと、
前記プロテクトされるコンテンツを前記ターゲットに格納させるステップと、
を含む方法。
【請求項35】
請求項34記載の方法において、
前記コンテンツが前記ターゲットドライブに格納されたということの署名入り肯定応答を送るステップと、
前記プロテクトされるコンテンツを前記ソースドライブから消去させるステップと、
をさらに含む方法。
【請求項36】
請求項35記載の方法において、
前記署名入り肯定応答は、前記ターゲット秘密キーで暗号化されたマテリアルを含む方法。
【請求項37】
請求項34記載の方法において、
前記ターゲットドライブ証明書は、中間のホストを介して前記ソースドライブに送られる方法。
【請求項38】
請求項34記載の方法において、
前記ターゲットドライブからの前記ターゲットドライブのアイデンティティを証明する証明書を取り出させるステップは、前記ターゲットがホスト装置に接続された後にトリガされる方法。
【請求項39】
請求項34記載の方法において、
前記ターゲットドライブ証明書は、中間のホストを介して前記ソースドライブに送られる方法。

【図1A】
image rotate

【図1B】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4A】
image rotate

【図4B】
image rotate

【図5A】
image rotate

【図5B】
image rotate

【図5C1】
image rotate

【図5C2】
image rotate

【図5C3】
image rotate

【図6】
image rotate


【公表番号】特表2010−515159(P2010−515159A)
【公表日】平成22年5月6日(2010.5.6)
【国際特許分類】
【出願番号】特願2009−544182(P2009−544182)
【出願日】平成19年12月18日(2007.12.18)
【国際出願番号】PCT/US2007/087900
【国際公開番号】WO2008/082949
【国際公開日】平成20年7月10日(2008.7.10)
【出願人】(506197901)サンディスク コーポレイション (175)
【Fターム(参考)】