JP5118700B2 - 仮想マシンのアクティブ化を伴う携帯可能な大容量記憶装置 - Google Patents

仮想マシンのアクティブ化を伴う携帯可能な大容量記憶装置 Download PDF

Info

Publication number
JP5118700B2
JP5118700B2 JP2009523886A JP2009523886A JP5118700B2 JP 5118700 B2 JP5118700 B2 JP 5118700B2 JP 2009523886 A JP2009523886 A JP 2009523886A JP 2009523886 A JP2009523886 A JP 2009523886A JP 5118700 B2 JP5118700 B2 JP 5118700B2
Authority
JP
Japan
Prior art keywords
virtual machine
card
storage device
firmware
mass storage
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2009523886A
Other languages
English (en)
Other versions
JP2010500656A (ja
JP2010500656A5 (ja
Inventor
ジョガンド−クーロン,ファブリス
カワミ,バーマン
サベット−シャーヒ,ファーシッド
ジェイ. ゴンザレス,カルロス
Original Assignee
サンディスク テクノロジィース インコーポレイテッド
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from US11/463,264 external-priority patent/US20080126705A1/en
Priority claimed from US11/463,256 external-priority patent/US7725614B2/en
Application filed by サンディスク テクノロジィース インコーポレイテッド filed Critical サンディスク テクノロジィース インコーポレイテッド
Publication of JP2010500656A publication Critical patent/JP2010500656A/ja
Publication of JP2010500656A5 publication Critical patent/JP2010500656A5/ja
Application granted granted Critical
Publication of JP5118700B2 publication Critical patent/JP5118700B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/54Link editing before load time
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/78Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data
    • G06F21/79Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data in semiconductor storage media, e.g. directly-addressable memories
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • Multimedia (AREA)
  • Technology Law (AREA)
  • Human Computer Interaction (AREA)
  • Storage Device Security (AREA)

Description

本発明は、一般的には携帯可能な大容量記憶装置とこの装置上で動作するファームウェアおよびソウェトに関し、特にソフトウェアおよび他のコンテンツを提供して、それをアクティブ化し、またそのために支払いをすることに関する。
スマートカードは、しばらく前から普及していて、特にキャッシュカードおよびクレジットカードとして頻繁に使用される。スマートカードは、その名前が示唆するように、プロセッサ制御され、そして識別データとトランザクション関連データとを保持する少量のメモリも含む。Java(ジャバ)ベースのプログラムをスマートカード上で作成して動作させる能力が最近開発されて普及しつつある。Javaベースのプログラムは、デジタルカメラおよびミュージックプレーヤで通常使用される大容量記憶装置メモリカードのような他のインテリジェント装置でも実行され得る。これらの他のカードは、スマートカードに格納されるトランザクションおよび識別データより何桁も大きい写真および音楽のような非常に大きなデータのライブラリを格納しアクセスしなければならないので、大容量記憶装置として認識されている。これらの大容量記憶装置カードの例は、コンパクトフラッシュ(“CF”)カード、セキュアデジタル(“SD”)カード、ミニSDカード、マイクロSDカード、マルチメディア(“MMC”)カード、およびメモリスティックである。列挙された例のほかに、異なるフォーマットの大容量記憶装置カードが多数ある。携帯可能なフラッシュメモリベースのユニバーサル・シリアル・バス(“USB”)ドライブは、他の1つのタイプの携帯可能な大容量記憶装置である。
Java Card(ジャバカード(登録商標))技術は、Javaプログラミング言語で書かれたプログラムをスマートカードおよび他の小型で資源制約的装置の上で動作させることを可能にする。開発者は、標準的なソフトウェア開発ツールおよび環境を用いてプログラムを作ってテストし、その後にそれらを、Java Card技術対応装置にインストールされ得る形に変換することができる。Java Cardプラットフォームのためのアプリケーションソフトウェアは、アプレット、あるいは(それをブラウザアプレットと区別するために)より明確にJava Cardアプレットまたはカードアプレットと称される。
Java Card技術は、Javaプログラミング言語で書かれたプログラムが小型メモリカード上で動作することを可能にするけれども、そのような小型装置はJavaプラットフォームの全機能をサポートするには余りに非力である。従って、Java Cardプラットフォームは、Javaプラットフォームの機能の慎重に選択されカスタマイズされた部分集合だけをサポートする。この部分集合は、小型装置のためのプログラムを書くのに良く適する機能を提供し、Javaプログラミング言語のオブジェクト指向能力を維持する。
Java Cardは1つのタイプの仮想マシンである。他の仮想マシンも利用可能であり、仮想マシンは、物理的なプロセッサの抽象概念であって在来のプロセッサの仮想相対物を有する。Java言語の場合、Java仮想マシンは、コンパイルされたJavaバイナリコードと基礎のハードウェアプラットフォームのマイクロプロセッサとの間のインターフェイスとして作用するソフトウェアである。
そのような小型装置で実行されたときに特に有益な1つのアプリケーションは、音楽や映画などのような保護されたコンテンツのための支払いに関連する。
Javaで書かれたアプリケーションを動作させるためには、Java Card仮想マシンがカードにロードされてアクティブ化されなければならない。マシンの各要求は、サン(Sun)またはそのようなコンポーネントの供給業者にライセンス料を支払うことを必要とする。スマートカードの主な目的はトランザクションであるので、ライセンス料のコストは、カードの発行者にとってビジネスをするためのコストとして容認可能である。しかし、大容量記憶装置型メモリカードのユーザは、仮想マシンが可能にする付加的なアプリケーションの用途を持っているかもしれないし、あるいは持っていないかもしれない。なぜならば、典型的なユーザは、主としてデータ格納を目的としてカードを所有し使用するからである。従って、製造業者はライセンス料のコストを当然のこととして肩代わりさせたり吸収したりすることはできない。さらに、1つまたは複数の仮想マシン上で動作するアプレットまたは他のプログラムの各々も、(その用途を持っていないかもしれないユーザに)当然のこととして肩代わりさせたり、あるいは吸収したりすることのできないライセンス料を必要とするかもしれない。
Java Card仮想マシンの役割は、Java Cardプラットフォームのためのソフトウェアの生産および展開のためのプロセスの文脈で最善に理解される。Java Cardシステムを構成するコンポーネントは幾つかあり、それはJava Card仮想マシン、Java Cardプラットフォームのためのコンバータ(“Java Cardコンバータ”)、端末インストレーションツール、および装置上で動作するインストールプログラムを含む。Java Cardアプレットの開発は他のJavaプログラムの場合と同様に始まる。すなわち、開発者は1つ以上のJavaクラスを書き、ソースコードをJavaコンパイラでコンパイルし、1つ以上のクラスファイルを生成する。アプレットは、装置環境をエミュレートするためにシミュレーションツールを用いてワークステーション上で動作させられ、テストされ、デバッグされる。その後、アプレットが何時でも装置にダウンロードされ得る状態であるとき、アプレットを構成するクラスファイルは、Java Cardコンバータを用いてCAP(変換済みアプレット)ファイルに変換される。Java Cardコンバータは、Javaパッケージを構成するクラスファイルの全てを入力と見なす。Java Cardコンバータは1つ以上のエクスポートファイルも入力と見なす。エクスポートファイルは、変換されるクラスによりインポートされる他のパッケージのコンテンツについての名前およびリンク情報を含む。アプレットまたはライブラリパッケージが変換されるとき、コンバータは、そのパッケージのためにエクスポートファイルも作ることができる。
普通、変換後、CAPファイルはカードリーダ周辺装置を有するデスクトップ形コンピュータのようなカード端末装置にコピーされる。その後、その端末装置上のインストールツールはそのCAPファイルをロードし、それをJava Card技術対応装置に送る。装置上のインストールプログラムは、CAPファイルのコンテンツを受け取って、Java Card仮想マシンにより動作させられるようにアプレットに準備させる。仮想マシン自体は、CAPファイルをロードしあるいは操作しなくてもよくて、インストレーションプログラムによって装置にロードされたCAPファイルに見出されるアプレットコードを実行するだけでよい。
Java Cardプラットフォームのこれらの態様および他の態様は、サンマイクロシステムズ社 (Sun Microsystems) の仕様書、すなわちApplication Programming Interface, Java CardTM Platform, Version 2.2.1(非特許文献1)、Runtime Environment Specification, Java CardTM Platform, Version 2.2.1(非特許文献2)、およびVirtual Machine Specification, Java CardTM Platform, Version 2.2.1(非特許文献3)に記載され、その全体が本願明細書において参照により援用されている。
前に簡単に述べられたように、Javaで書かれたアプリケーションを動作させるためには、Java Card仮想マシンがカードにロードされてアクティブ化されなければならない。
ヨシモトらの米国特許第6,772,955号(特許文献1)に記載された1つの従来のアプローチでは、カードがポイントベースのトランザクションで使用されるように、仮想マシンはメモリカードコントローラチップの一部として提供される。カードをポイントカードとして使用するためのソースコードは、Javaで書かれてカードにロードされる。ポイント残高は、カードで購入された各アイテムについて更新される。
Java仮想マシンの各要求は、サンまたは他の供給業者にライセンス料を支払うことを必要とする。同様に、他のどんな所有権をもった仮想マシンも、そのようなマシンの実施権許諾者への支払いを必要とし得る。スマートカードでは、各カードは、Java Card仮想マシンのアクティブな、支払済みのコピーを備える。これは、ヨシモトらの特許(特許文献1)に記載されているシステムにおそらく加わるように、各スマートカードのコストに加わる。スマートカードの基本機能は大半のアプリケーションにおいてトランザクションであるので、このコストは、吸収され、かつ/または、製造業者、仲買人、あるいは消費者に転嫁され得る。しかし、仮想マシンの機能が決して利用されないかもしれない消費者用の大容量記憶装置では、ライセンスのコストを吸収しあるいは転嫁することは望ましくない。
グローバルプラットフォーム (Global Platform)は、スマートカードの進歩および標準化のための産業コンソーシアムである。グローバルプラットフォームは、スマートカード業界の標準団体として活動し、多くの産業において多くのサービスプロバイダによるスマートカードプログラムの世界的展開のための公開技術枠組みを作成し維持する。グローバルプラットフォームのアプリケーションプログラミングインターフェイス(“API”)およびグローバルプラットフォームの他の態様が、www.globalplatform.comで入手できる2004年12月付のThe Global Platform Card Specification V.2.1.1(非特許文献4)およびThe Formal Specification of Global Platform Card Security Requirements(非特許文献5)に記載され、その全体が本願明細書において参照により援用されている。グローバルプラットフォームは、仮想マシンを既に持っているスマートカードまたは他の装置にアプレットをダウンロードすることに配慮している。しかし、必要とされるアプレットと関連する機能とを提供するけれども、これはアプレットを動作させるのに必要な仮想マシンを既に持っているカードのために提供するものである。
米国特許第6,772,955号 米国特許出願第11/053,273号 米国特許出願第11,314,032号 米国特許出願第11/317,339号
Application Programming Interface, Java CardTM Platform, Version 2.2.1 Runtime Environment Specification, Java CardTM Platform, Version 2.2.1 Virtual Machine Specification, Java CardTM Platform, Version 2.2.1 The Global Platform Card Specification V.2.1.1 The Formal Specification of Global Platform Card Security Requirements
本発明は、製造および使用のコストを最小にするのと同時に携帯可能な大容量記憶装置の潜在的用途を増大させる。本発明は装置がいろいろな専用ソフトウェアアプリケーションを動作させることを可能にするけれども、それらのアプリケーションのコストは、ユーザがそれらのアプリケーションの機能を利用することを選択した場合に限って負担される。換言すれば、潜在的用途に関連するコストは、その潜在性が実現された場合に負わされるだけである。これは、製造業者と消費者との両方にとって有益である。製造業者は、一部の消費者にだけに望ましいかもしれない機能についてのコストを吸収しあるいは転嫁せずに製品機能と市場浸透とを増大させることができる。特徴を利用することを望む消費者は必要に応じてそれらのために支払いをすることができるが、機能を利用することを望まない者は、自分たちが望んでも必要としてもいないもののために支払いをする必要はない。
仮想マシンがあれば、そうでない場合に装置上で直接動作させるべく利用できるアプリケーションよりも多様なアプリケーションを使用することができるので、仮想マシンは携帯可能な大容量記憶装置においては非常に有益である。その理由は、仮想マシンが特定の処理プラットフォームからの独立性を提供することにある。仮想マシンは、マイクロプロセッサによって実行される自己内蔵型の動作環境であるけれども、別個のコンピュータであるかのように振る舞う。仮想マシンアプリケーションは、仮想マシンがどんな種類のプロセッサおよびオペレーティングシステム上で動作していても、その仮想マシンにおいて同じ仕方で実行し動作する。
従来の解決策は仮想マシンをメモリカードに組み込んでいるけれども、その仮想マシンのコストは、消費者が仮想マシンを望んだかあるいは必要としたかに関わらず、製造業者と消費者とにより負担されなければならなかった。これは、主としてトランザクションカードまたは“電子財布”として使用されるように意図された装置では容認できるけれども、最初にあるいは主として他の目的に使用されるかもしれない携帯可能な大容量記憶装置では理想的ではない。本発明では、仮想マシンのためのライセンス料は、ユーザが1つまたは複数の仮想マシンの存在を必要とするアプリケーションを使用することを望む場合にだけ支払われればよい。従って、基礎の大容量記憶装置のコストを最小限に保つことができ、アドオンアプリケーションおよび仮想マシンについては必要であるかあるいは望まれる場合に限って支払いを行うことができる。仮想マシンを装置の寿命の間の何時でもアクティブ化することができ、支払いはそれがアクティブ化された場合に限って行われる。マシンは、また、何時でも、単独で、あるいはマシンを利用するアプリケーションと組み合わされて、カードにロードさせることができる。ある好ましい実施形態では、仮想マシンが必要であるとき、仮想マシンのインストールは、ユーザに知られずにシーンの背後で仮想マシンまたはより高いレベルのアプリケーションのアクティブ化の一部として行われる。
本発明は、料金を必要とするプログラムが使用されるときにだけライセンス料を支払うことを考慮する。これは、他の状態ではそれが実行不可能である環境においてこれらのプログラムを組み込むことを可能にする。これは、大容量記憶装置型メモリカードのような小型装置で実行され得る多量の多様なアプリケーションがある場合に、特に有益である。
本発明は、ユーザが自分の望むプログラムだけを速やかにかつ容易に選択し、アクティブ化し、そのために支払いをすることを可能にする。これは、基本の装置を全ての人にとって入手可能に保つのと同時に、カスタマイズされたアプリケーションがそれを望ましいものと思った人により使用されることを考慮に入れている。
仮想マシンを、携帯可能な大容量記憶装置を動作させる基礎のファームウェアと統合することは簡単な課題ではない。保護されているコンテンツへのアクセスを制限しなければならない“セキュア”な装置の場合には、特にそうである。そのような装置では、装置のファームウェアは、少なくとも部分的に、コンテンツを守る責任を有する。従って、それは読み/書き動作へのアクセスを制限する。このような事情の故に、保護されているコンテンツの認証されないコピーを作りたい人にとって、それはターゲットである。従って、基礎のファームウェアは、コンテンツをハッカーから守らなければならず、さらに、仮想マシンのようなアプリケーションがコンテンツにアクセスすることを可能にしなければならない。仮想マシンが任意の時点で(あるいは、そのようなコンテンツを使用する装置で動作するアプリケーションがオンにされる時点で)ロードされ得るという場面では、ファームウェアは、仮想マシン(またはアプリケーション)があってもなくても動作できなければならず、また悪意のソフトウェアが仮想マシン(またはアプリケーション)に変装することを防止しなければならない。
大容量記憶装置100の略図である。 大容量記憶装置100のソフトウェアコンポーネントおよびホスト105の略図である。 本発明の1つの実施形態に従う大容量記憶装置のソフトウェアコンポーネントの説明図である。 本発明の1つの実施形態に従うダウンロードされたアプリケーションの説明図である。 本発明に従う第1の供給場面のフローチャートである。 本発明に従う第2の供給場面のフローチャートである。 本発明に従う第3の供給場面のフローチャートである。 本発明の1つの実施形態に従うアプリケーションプロトコルインターフェイス管理を示すフローチャートである。 公開鍵インフラストラクチャおよび大容量記憶装置100を示す。 公開鍵インフラストラクチャの幾つかのコンポーネントを記述した表である。 本発明の1つの実施形態に従う収益の流れの説明図である。 フラッシュメモリ140のメモリスペースの一部分の説明図である。
背景技術の欄で論じられたように、携帯可能なフラッシュメモリベースの大容量記憶装置は、今日、大きなファイルおよびソフトウェアプログラムを格納するために広く使用されている。メモリカードまたはポケットサイズのUSBフラッシュ装置に依拠するデジタル装置は広く使用されているので、多くの人は、これらの携帯可能な大容量記憶装置を1つまたは幾つか既に持っている。本発明は、製造および使用のコストを最小にするのと同時にこれらの装置の潜在的な用途を増やす。本発明は、装置がいろいろな専用ソフトウェアアプリケーションを動作させることを可能にするけれども、それらのアプリケーションのコストは、ユーザがそれらのアプリケーションの機能を利用することを選択した場合に限って負担される。換言すれば、潜在的用途に関連するコストは、その潜在性が実現された場合に負わされるだけである。これは、製造業者と消費者との両方にとって有益である。製造業者は、一部の消費者にだけに望ましいかもしれない機能についてのコストを吸収しあるいは転嫁せずに製品機能と市場浸透とを増大させることができる。特徴を利用することを望む消費者は必要に応じてそれらのために支払いをすることができるが、機能を利用することを望まない者は、自分たちが望んでも必要としてもいないもののために支払いをする必要はない。
大容量記憶装置において動作させられかつ/または格納され得るソフトウェアおよび他のコンテンツの多くは、所有者または実施権許諾者への支払いを必要とする。例えば、ソフトウェアプログラムは作成者へのライセンス料の支払いを必要とし、また音楽、映画、写真または著作のようなコンテンツも再販業者、作成者、プロバイダおよび/または実施権許諾者などへの支払いを必要とする。大容量記憶装置で実行されたときに特に有益なソフトウェアプログラムの一例は仮想マシンである。その理由は、仮想マシンが、基礎のハードウェアプラットフォームの特定性に合わされなくてもよいソフトウェアの作成および実行を考慮に入れていることにある。仮想マシンの1つの例は、背景技術の欄に記載されたように、サンマイクロシステムズ社により提供されるJavaベースの仮想マシンである。
サンマイクロシステムズ社の仮想マシンが一例として記載されるけれども、他の仮想マシンが存在し、さらに他のものが開発され得る。仮想マシンは、マイクロプロセッサによって実行される自己内蔵型の動作環境であるけれども、別個のコンピュータであるかのように振る舞う。仮想マシンアプリケーションは、仮想マシンがどんな種類のプロセッサおよびオペレーティングシステム上で動作していても、その仮想マシンにおいて同様に実行し動作する。これは、どんな処理プラットフォームからの独立性をも提供する。従って、仮想マシンなしで利用し得る場合よりも広い範囲のソフトウェアプログラムが仮想マシンおよび基礎の装置の上で動作するべく利用可能であるはずである。本発明は、どのような仮想マシンおよびそれが可能にするアプリケーションとも協働することができる。
大容量記憶装置型メモリカードの一般的なアーキテクチャが図1に示されている。大容量記憶装置100の種々のコンポーネントはシステムバス150を介して互いに結合されて通信する。装置100は、ホストインターフェイス140を介して、ホスト105とも称される外部装置105と通信する。ホストインターフェイス140は、ホスト105と装置100との間でデータをやり取りする論理コンポーネントおよびハードウェアコンポーネントの両方を含む。装置100が大量記憶メモリカードの形状係数を有するならば、インターフェイスは、例えばデジタルカメラの接点構造とインターフェイスする電気接点を含む。装置100がUSB装置の形状係数を有するならば、ホストインターフェイス140は、USBポートとインターフェイスするための電気接点と所要のドライバとを含む。コントローラ110は、装置を制御し、大量記憶フラッシュメモリ140のセル内での読み書き動作とデータ分布とを管理する。装置100は、図に示すように個別的なコンポーネントであるかあるいはコントローラ110内に統合され得るランダムアクセスメモリ(“RAM”)120も含む。コントローラ110は、読み出し専用メモリ130または大容量記憶フラッシュメモリ140に格納されるRAM120からのファームウェアを実行する。読み出し専用メモリ130は、電気的に消去可能で従ってEEPROMまたはEPROMであることができる。ファームウェアは、コントローラにより実行されてメモリカードの動作を制御する。ファームウェアが壊れたならば、メモリカードは最早適切に機能しない。
大容量記憶装置100は、好ましくはセキュリティ手段を含む。これらの手段は、アプリケーションの状態(例えば、非アクティブからアクティブまで)が認証された者によってのみ変更され得ることを保証する。状態は装置ファームウェアにより制御され、ファームウェアは、特定のアプリケーションがアクティブで使用され得ることを確認するために状態をチェックすることができる。これらの手段は、また、好ましくは装置のハードウェアおよびソフトウェア(ファームウェア)の両方で実現され、ある実施形態では、装置に格納され、また装置へおよび装置から転送されるデータを暗号化する。この種のセキュア大容量記憶装置に関するさらなる情報については、その全体が本願明細書において参照により援用されている、Holtzmanらの “Secure Memory Card With Life Cycle Phases"という米国特許出願第11/053,273号(特許文献2)、Holtzmanらの “Memory System with in Stream Data Encryption/Decryption"という米国特許出願第11/314,032号(特許文献3)、および “Secure Yet Flexible System Architecture for Secure Devices With Flash Mass Storage Memory"という米国特許出願第11/317,339号(特許文献4)を参照されたい。
装置100は、装置の一実施形態であるメモリカードと称されるが、前述したように、装置100はメモリカード、USB装置あるいは他の形状係数の形であることができる。
ファームウェアはカードのデータへの経路を提供し、そのうちのあるものは保護されたデータであり得る。コントローラを動作させるファームウェアの完全性は、特にセキュアカードでは、重要である。カードがセキュアカード(例えば、何らかの形のデジタル著作権管理(“DRM”)を実行するもの)であるならば、ファームウェアの機能のうちの1つは、保護されるコンテンツへのアクセスを制限することである。DRMは、デジタルコンテンツの自由な使用および転送を制限するための幾つかの技術を記述するために使われる広い用語であるので、“デジタル制限管理”と記述されるほうがより適切だと考える人たちもいる。図2は、ファームウェアを含む、装置100のソフトウェアコンポーネントの幾つかを示す。仮想マシン220は、基本のカードファームウェア210には存在しない機能を含むけれども、フラッシュメモリ内のコンテンツにアクセスすることもできる。従って、ある意味ではそれがカード内の一種のファームウェアと考えられてもよく、ファームウェア210と完全に統合されかつ互換性がなければならない。従って、カードファームウェア210は、VM220が存在してもしなくても頑健に機能し得るように実現されなければならない。同様に、VM220はカードファームウェア210とともに機能するように実現される。ファームウェア210がVM220と統合されることを可能にするファームウェア210のコードにおいて実現される設計態様は、ファームウェア210内の“フック”と考えられてよい。これらのフックとこれらが必要とする互換性とは、ファームウェア210とVM220との間の二重矢印によって表されている。カード100内にロードされたアプレットは、VM220を介してファームウェアと通信することができて、カードにおいて任意の数の異なるソフトウェアアプリケーションを提供することができる。これらのアプレット240A・・・Xは、仮想マシン上で動作するので、コントローラ110および装置110の他のハードウェアコンポーネントの細目に合わせられなくてもよい。そうでなければカードと互換性がなくなる様々なソフトウェアアプリケーションのライブラリに対して装置を開放する。
図2に見られるように、ホスト105は、アプリケーションプログラミングインターフェイス(“API”)を通してファームウェア210(VM220を含む)と通信しなければならない。任意の数のAPI250A・・・Xがカードにおいて実現され得る。これは、標準またはネイティブ装置API 250Aと、グローバルプラットフォームAPIのような業界標準のまたは広く受け入れられているAPI 250Bと、所有権をもったAPI 250C(例えば、Java仮想マシンのためのAPIのようなVM220に結び付けられているAPI、あるいはアプレット240のためのAPIまたはアプレット240のうちの1つのような)と、他の任意のAPI 250Xとを含む。VM220は、機能するために適切なAPIを適切な場所に持っていなければならないので、特定の仮想マシンをアクティブ化する1つの方法は、その特定の仮想マシンと互換性があるAPIをアクティブ化しかつ/またはロードすることである。もちろん、VMは他の種々のトリガで直接アクティブ化され得る。VMは、図9に関して後述するように、一種のファームウェアである。種々のアクティブ化の方法が以下で論じられる。
カードのアプリケーションが何であっても、前述した仮想マシンの機能の付加は、カードの他のファームウェアとの統合を必要とする。仮想マシンとその種々のアプレットとがファームウェアと統合されるのがカードが工場を去る前であれ後であれ、カードはシームレスに動作しなければならない。アプレットが現場でダウンロードされるという場面において、そのアプレットのコンテンツおよび性質は、可能であるとしても、容易にはベリファイされ得ない。従って、カードの基本ファームウェアは、現場ダウンロードと、アプレットが必要とするデータアクセスとを容易にするために充分にフレキシブルでなければならないのと同時に、ぞんざいに書かれたアプレットでも機能するように充分に頑健でなければならない。さらに、アプレットがカードのDRMを破ることを目指している場合、ファームウェアはアプレットからデータを守り、さらに、認証されたユーザにコンテンツを提供し続けなければならない。
少量の高度に保護されたトランザクションデータを守る目的のために構築されたスマートカードとは異なって、大容量記憶装置型メモリカードはコンテンツの非常に大きなライブラリへの頻繁なアクセスを提供しなければならない。このユーザコンテンツは、カードが出会うことのあるアプリケーションと同じく、カードの寿命の間常に変化する。カードのファームウェアとハードウェアとは、カードのコンテンツを常に守るのと同時に新しいアプリケーションを求めるユーザの希望に配慮し、それらが現場で(あるいは工場で)ダウンロードされることを可能にする。これは、簡単な課題ではない。
図3Aは、カード100内のソフトウェアコンポーネントのうちの幾つかの表示である。カード内で種々のアプレット240A〜Xが動作している。好ましい仮想マシン220はJava Card仮想マシンであり、そしてJava Cardまたは他のJava仮想マシンの場合には、特定のアプレットおよび仮想マシン220に基づいて必要であるかあるいは望ましければ、Java Cardフレームワークも存在する。これらのコンポーネントの全てはカードオペレーティングシステムまたはファームウェア210の上で動作する。この場合、Java Cardフレームワークと他の業界アドオン230とJava仮想マシン220とはカードオペレーティングシステム210の上で動作する。
図3Bは、何時でもカードにロードされてアクティブ化されることができて本発明のファームウェアおよびシステムの一部として機能することができるソフトウェアコンポーネントあるいは“パッケージ”を示す。パッケージは、仮想マシン220だけではなくて、(任意に)1つ以上のソフトウェアアプリケーション270も含むことができる。基礎のファームウェア210は、VM220およびアプリケーション270という付加的なソフトウェアと協働するように備えられている。仮想マシン上で動作する任意のソフトウェアアプリケーション270が何時でもカードにロードされ得る。点線は、VM200がアプリケーション270とともにあるいはアプリケーション270を伴わずにロードされ得ることと、アプリケーションのインストールがVMのものと同時に行われなくてもよいこととを示すのに役立つ。パッケージのコンポーネントに関連する料金の支払いは、i)パッケージがカード内に存在し、かつii)パッケージがアクティブ化されるときに行われるだけでよい。
図3Bに見られるパッケージは、幾つかの方法でユーザに提供され得る。図4Aに見られるように、そのパッケージは販売時にカードで提供され得る。この場合、パッケージは、使用される前に“現場”でアクティブ化されなければならない。代わりに、図4Bに見られるように、そのパッケージを、完全なパッケージとしてまたは個別にユーザによって“現場”でダウンロードしてもよい。他の1つの方法として、図4Cに見られるように、新しいファームウェア210がカードにロードされ得る。このファームウェアのダウンロードは、図3Bに見られるパッケージの全体または一部をも含む。一実施形態では、これは、図2に見られるファームウェア210、VM220、アプレット240が全てファームウェア更新の過程でロードされることを意味する。これらの基本的な方法は、後述する図4A,4Bおよび4Cのフローチャートに示されている。
前述したように、仮想マシンおよびアプレットは、利用されるためにはアクティブであるかあるいはアクティブ化されることを必要とする。もちろん、それは多くの場面において好ましくはないけれども、アクティブなコンポーネントをダウンロードするために必要なセキュリティ手段はないかもしれない。これは、カードの配布が限定される安全なあるいは信頼できる環境に適していそうであるが、必ずしも適するとは限らない。また、ある実施形態では、セキュリティはダウンロードプロセスの一部であることができて、必要とされる付加的なアクティブ化はなくてもよい。換言すれば、第1にユーザがダウンロードすることを認証されているか、あるいはダウンロードシーケンスの一部としてアクティブ化が行われ得るとすれば、コンポーネントはアクティブ化された状態でダウンロードされ得る。
カード100は、アクティブ化コマンドを受け取って有効にするアクティブ化マネージャを有する。アクティブ化マネージャは、ファームウェア210の一部であることができ、あるいは別個のソフトウェアモジュールであると考えられ得る。アクティブ化マネージャは、アプリケーションまたはオペレーティングシステムの特徴をオンにし、かつオフにする。このアクティブ化は、例えばセキュアなチャネルの上で、安全に行われるのが好ましい。一実施形態では、アクティブ化マネージャは、正しいコードを受け取れば、パッケージをアクティブ化する。アクティブ化マネージャは、コードを受け取り、それを、コードを有効にするサーバと照合するか、あるいはカードのメモリに格納されているコードの暗号化されたバージョンと照合する。アクティブ化マネージャは、失敗したアクティブ化の追跡も行い、ある実施形態では、失敗した試みの数を制限して、その数を上回ったならばカードをロックすることができる。
コードは、種々のパラメータに基づくことができ、任意の数の仕方で計算され得る。コードは、合っているアプリケーションをオンにすると期待される単純な数であってもよい。コードは、アクティブ化のために包括的であることができ、またアプリケーションIDと関連付けられかつ/またはアプリケーションIDに基づいてもよく、それは特定のアプリケーションに一意に関連付けられた数である。コードは部分的にカードの一意のIDに基づくことができ、それは特定のカードだけに関連付けられた数である。コードは、アプリケーションと、そのアプリケーションがアクティブ化されるべきかそれとも非アクティブ化されるべきかと、アクティブ化コード自体とを明示する部分を有することもできる。コードは、非アクティブ状態、アクティブ状態、サスペンドされた状態、あるいは取り消された状態のような特定のアプリケーション状態を明示するかあるいは含むこともできる。それは、例えばDRM方式における種々の許可レベルなどの、他の所要の種々の許可へのアクセスを明示し、かつ提供することもできる。コードは、全ての前述した方式の幾つかの態様または全ての態様に基づきあるいはそれらを含むこともできる。
コードは、対称または非対称暗号認証方式の一部であることもできる。例えば、対称方式では、コードは一種のワンタイムパスワード(“OTP”)であることができ、これは当該技術分野で良く知られている。この場合、カードと検証サーバとの両方が同じ種を持ち、その種と任意の数の選択されたアルゴリズムとに基づいてコードまたはOTPを独立に作る。コードまたはOTPは規則的間隔でインクリメントまたは更新され、そして任意の所与の時点で、カードにおいて計算されたOTPをベリファイサーバにより計算されたOTPと突き合わせてベリファイすることができる。OTP方式では、2つのカードに初めに同じ種がロードされたならば、その2つのカードで(カードとサーバとの中の)パスワードをインクリメントするために異なるアルゴリズムが使用されれば、1つのカード内の種またはワンタイムパスワードの値が危険にさらされたとしても、それを他のカードにハッキングするために使用することはできない。一例では、アクティブ化コードあるいはOTPはカードID、カードタイプ、アプリケーションID、およびOTP種の関数である。カードタイプは、コンパクトフラッシュカード、SDカード、ミニSDカード、MMCカード、トランスフラッシュカード、XDカード、メモリスティックなどの任意の周知のカードタイプであることができ、あるいはUSBフラッシュドライブであることができる。
アクティブ化コードがOTP(の関数)を含むかあるいはOTP(の関数)に基づいている実施形態では、そのOTPおよび/またはコードはアプリケーションまたはソフトウェア層をオンまたはオフにするために使用することができる。アクティブ化コードまたはOTPをベリファイするために(リモートサーバまたは他の装置により生成された)OTPまたはコードがカードに送られてカードにより生成されたOTPと比較される。それが正しいとベリファイされたならば、そのアプリケーションまたはソフトウェア層をオンまたはオフにすることができる。その値は1回しか使用することができず、従って複数のアクティブ化のために使用したり認証されていない仕方で渡されて使用することはできないので、これらの目的のためのOTPの使用は有利である。ある実施形態では、アクティブ化されるべきアプリケーションのアプリケーションIDはアクティブ化コードあるいはOTPを生成するためにも使用され得る。このようにして、OTPは一定のアプリケーションに特有になる。
前述したように、ある実施形態では複数のカードのために同じ種が使用され得る。OTP計算の基礎にその種がある。また、アクティブ化コードあるいはOTPはカードID、カードタイプ、アプリケーションID、およびOTP種の関数である。これは同じ秘密の種が複数のカードにロードされることを可能にし、それはサーバデータベース上のレコードの数を減少させる。同時に、カードID、カードタイプ、およびアプリケーションIDのうちの1つ以上の関数であり得る種々のアルゴリズムが使用され得るので、一意のOTPおよびアクティブ化コードが生成され、従って高度のセキュリティを提供することができる。
最も一般的な非対称方式は公開鍵インフラストラクチャ(PKI)を含み、この場合には装置またはエンティティは2つの鍵すなわち秘密鍵と公開鍵とを持ち、これらは、一方の鍵で暗号化されたデータが他方で解読されることができるとともに秘密鍵を公開鍵から数学的に導出する方法がないように暗号法的に関連付けられている。このような方式では、公開鍵は自由に分配され、秘密鍵は、所有するエンティティによって秘密に保たれる。エンティティの認証は、その公開鍵を用いて暗号化されたメッセージを解読することによって秘密鍵の持ち主であることを証明することが要求されるチャレンジ/レスポンスシーケンスを実行することによって達成される。PKIを用いる本発明の1つの実施形態が図6および図7に示され、それは後述される。
さらに、一実施形態では、対称方式の諸態様が非対称方式の諸態様と結合される。そのような実施形態の一例では、1段階でカードをベリファイするためにOTPが使用され、他の1つの段階でチャレンジ/レスポンス対話が使用される。
アクティブ化プロセスを論じたので、次に、ダウンロードおよびアクティブ化の両方の諸態様を示す図4A、4B、および4Cのフローチャートに戻る。
図4Aは、ロードされた仮想マシンのアクティブ化が実行されるプロセスを示す。図4Aのステップ405において、カードがユーザに販売される前のある時点でカードの発行者またはプロバイダによって仮想マシンが提供される。これは、製造時またはその後の何らかの時点で行われ、カードのファームウェアも存在している。仮想マシンは、休眠あるいは非アクティブ状態である、すなわち、消費者により使用され得ない。従って、(未利用あるいは非アクティブの)仮想マシンのためにライセンス料を当然支払う必要はない。好ましくは、消費者は、それがアクティブ化あるいは“アンロック”される前にはその存在に気づかない。仮想マシンは、任意のタイプあるいはブランドの仮想マシンであってよい。現在入手できる仮想マシンのいくつかの例として、Java、MULTOS、Java Card、組み込みリナックス (embedded linux) 、組み込みJava (embedded java)、dot.net、およびWindows(ウィンドウズ)CEが挙げられる。種々のアプレットをサポートするために種々の仮想マシンが必要とされ、従って複数のVMが装置にロードされ得る。装置ファームウェアは、種々のVMとアプレットとのために必要なリソースの可用性を管理する。
ステップ410において、システムのユーザ、カード、またはサーバは、仮想マシンが必要とされるのかあるいは望まれるのかを判定する。次に、ステップ415において、信頼できる機関が仮想マシンをアクティブ化する。仮想マシンに関連するライセンス料を払う必要があるのはこの時点である。公開鍵インフラストラクチャでは、信頼できる機関をしばしば証明機関と称する。証明機関620が図6に示されている。
図6は、信用証明書のベリファイ/認証のために公開鍵インフラストラクチャを利用する実施形態を示す。トランザクションは、それらが生起するシステムより安全では決してあり得ないので、通信員同士が互いを突き止めて、自分たちが使う公開鍵を自分たちが通信したい人(またはマシン)に本当に属するという確信を持つ方法を確立することが最も重要な要素となる。公開鍵インフラストラクチャは、この信頼を提供するように設計される。公開鍵をその所有者に関する識別情報に結びつけるデジタル証明書または公開鍵証明書と呼ばれるデータエレメントを用いて、インフラストラクチャは、その結合を生じさせ、使用のコミュニティの中の全てのもののためにそれを管理するように設計される。信用証明書がベリファイされたならば、パッケージは前述したようにコードまたはOTPでアクティブ化され得る。あるいは、信用証明書自体またはそのベリファイが信用証明書のベリファイ/認証のために充分であり、アクティブ化を許すかあるいはトリガする。
秘密鍵および公開鍵の組み合わせ暗号法を用いて、PKIは、データ機密性、データ完全性、および鍵管理を含む他の幾つかのセキュリティサービスを可能にする。PKIのための基礎またはフレームワークはITU−T X.509勧告[X.509]において定められ、その全体が本願明細書において参照により援用されている。
エンドエンティティは、ときにはエンドユーザであると考えられる。しばしば事実なのであるが、エンドエンティティという用語は、もっと遥かに包括的であるべく意図されている。エンドエンティティは、エンドユーザ、ルータまたはサーバのような装置、プロセス、あるいは公開鍵証明書のサブジェクト名において特定され得る任意のものであり得る。エンドエンティティは、PKI関連サービスの消費者とも考えられ得る。本発明では、図6に示されている実施形態に見られるように、エンドエンティティは大容量記憶装置100とそのユーザとである。
公開鍵は、公開鍵証明書の形で配布される。CA(証明機関)620は、公開鍵証明書を発行することのできるコンポーネントであるので、PKIの基礎である。公開鍵証明書は、装置100とリポジトリ610とに送られる。公開鍵証明書は発行元CA(これはサブジェクト名を公開鍵に有効に結び付ける)によりデジタル署名される。CAは、証明取り消しリスト(CRL)の発行について、それが別個のCRL発行者630に委任されていなければ、責任をも持つ。CAは、エンドユーザ登録のような幾つかの管理タスクにも関係し得るけれども、それはしばしば登録機関(RA)に委任されるが、任意であって図6には示されていない。実際上、CAは鍵バックアップおよび回復機能としても役立つことができるけれども、この機能も別個のコンポーネントに委任され得る。CAは、しばしば、PKIにおける“信頼の原泉”と考えられる。公開鍵インフラストラクチャを利用する実施形態では、CA610は、装置100と、パッケージをダウンロードするサーバとが信頼され得ることを示す。この信頼は、ダウンロード、アクティブ化、および支払い目的のために使用される。図7は、図6のコンポーネントを記述した表であり、クイックリファレンスとして提供されている。
図4Bは、仮想マシンを単独でまたはより大きなソフトウェアパッケージの一部として提供する他の1つのプロセスである。ステップ435において、カードファームウェア210が提供される。このファームウェアは、仮想マシンとの将来の統合および使用のための“フック”を有するか、あるいは換言すれば仮想マシンと互換性があるように設計される。この仮想マシンの互換性があるファームウェアは、好ましくはカードの製造時に提供されるが、カードの寿命の間の任意のときにロードされてもよい。ファームウェアはカード上のあるタイプのデータへのアクセスを制限するように設計されたセキュリティメカニズムを有する。これは、ファームウェア内の、カードのメモリに格納されている保護されるコンテンツに対しての、セキュリティメカニズム自体を含む。仮想マシンがインストールまたはアクティブ化される前、ファームウェア(のセキュリティメカニズム)はカードの中または外で動作しているソフトウェアアプリケーションが保護されているデータにアクセスすることを許さない。しかし、ファームウェアは、仮想マシンを検出して、いったん仮想マシンがインストールされてアクティブ化されたならば仮想マシンが保護されているデータのうちのあるものにアクセスすることを許すようにも動作可能である。換言すれば、ファームウェアは、複数の異なる動作状態、すなわち仮想マシンを伴わずに使用される状態と仮想マシンとともに用いられる状態とを有すると考えられ得る。両方の状態において、ファームウェアは、ファームウェア自体を含むカード上のデータを保護してそれへのアクセスを制限しなければならない。第2の状態では、ファームウェアは、仮想マシンがデータを読み書きするのを許さなければならないのと同時に、如何なる悪意のあるアプリケーションの認証されない読み書きアクセスを許さない。
次に、ステップ440において、カードは製造業者が去った後、ユーザまたは仲買人、あるいはカード自体が、仮想マシンが望まれるのかあるいは必要とされるのかを判定する。その後、仮想マシンとそのプロバイダとがステップ445において認証される。これは、前述したように対称および/または非対称の認証であってよい。ステップ450において、仮想マシンがカードにダウンロードされてアクティブ化される。仮想マシンに関連するライセンス料が支払われなければならないのはこの時点である。いったんアクティブ化されたならば、支払いがトリガされる。
図4Cは、仮想マシンを単独であるいはより大きなソフトウェアバンドルの一部として提供する他の1つのプロセスである。ステップ460において、ユーザまたはカードは、仮想マシンが必要とされるのかあるいは望まれるのかを判定する。次に、ステップ465において、仮想マシンおよびそのプロバイダがステップ445において認証される。これは、前述したように対称または非対称の認証であってよい。ステップ470において、仮想マシン220を伴うファームウェア210の新しいコピーまたはバージョンがカードにダウンロードされる。同時に付加的なアプレット240または他のプログラムが任意にロードされ得る。
図5は、仮想マシンのダウンロードを伴うAPI管理を示す。ステップ510において、アプレットダウンロードを求めるリクエストが受け取られる。このリクエストは、インターネットを含む任意のネットワークを介して、任意のインテリジェント装置からサーバで作られ得る。サーバは、カードの発行者またはプロバイダ、または任意の第三者により操作され得る。カードの発行者は製造業者またはその代表者であることができ、プロバイダはカードを取り扱い、配布し、あるいは販売する任意のエンティティであることができる。発行者またはプロバイダがリクエストを直接受け取らなかったならば、ステップ510のリクエストを受け取ったサーバは、その後、カードの発行者またはプロバイダにそのリクエストを知らせる。ステップ520において発行者またはプロバイダは、アプレットを動作させるために必要とされる(ならば、その)仮想マシンを、迅速に検索する。次にステップ530において仮想マシンおよびアプレットはカードにシームレスにロードされる。これは、仮想マシンが検索されて自分のカードにロードされたことをユーザが知らなくてもよい(しかし、知ることができる)ことを意味する。ステップ540の前、後、あるいは同時に生じ得るステップ440において、仮想マシンおよびアプレットはアクティブ化される。ステップ550において、カードは仮想マシンおよびアプレットのための適切なAPIを選択して利用する。適切なAPIが存在しなければ、発行者またはプロバイダは適切なAPIをカードにロードする。また、ステップ520の場合と同じく、ユーザは、好ましくは、APIがカードにロードされたことを知らなくてもよい(しかし、知ることができる)。要約すると、このプロセスは、ユーザのためになるべく速くかつたやすく行われる。アプレットを求めるリクエストがなされると、そのアプレットと、アプレットを動作可能にするのに必要な全てのソフトウェアとは、自分のアプレットをロードしてそれを働かせることに必要とされ得る種々のステップをユーザが知ることなく非常に迅速に自動的にロードされ得る。前述したように、適切なAPIを提供することは、仮想マシンおよび/またはアプレットをアクティブ化する1つの方法である。
料金およびロイヤリティ収集および配布
仮想マシン、アプレット、あるいは他のソフトウェアアプリケーションがアクティブ化されたならば、アプリケーションのためにライセンス料が支払われなければならない。例えば、カードにロードされたセキュアコンテンツを制御するために使用されるデジタル著作権管理(“DRM”)をアプレットが必要とするならば、そのコンテンツのためにロイヤリティも要求され得る。いずれの場合にも、任意のタイプのロイヤリティあるいはライセンス支払いのために本発明が使用され得る。図8は、種々のエンティティへの、また種々のエンティティからの、支払いのためのシステムを描いている。消費者料金805Aは代金コレクタ810により収集される。これは、好ましくは、インターネットで提供されるセキュアサービスを必要とする。代金コレクタ810は、その料金の一部を自分のサービスのために取っておき、料金の残りを装置発行者820に移す。例えば、コンテンツまたはプログラムがサンディスクにより発行されたSDカードにロードされたならば、サンディスクはカード発行者820であって料金805の一部805Bを受け取る。発行者は、その後、料金805のある程度の部分を取っておいて、部分805Cをコンテンツ所有者あるいは実施権者830に送る。ここまでに記載された実施形態では、Java仮想マシンライセンスと仮想マシン上で動作する種々のアプレットとのための代金が支払われることができる。ライセンスを必要とする他のタイプのコンテンツに対して支払いをするためにより一般的にシステムを使用することもできる。この支払いシステムは、コンテンツと、そのコンテンツを装置のユーザに表現するために必要なソフトウェアとについての支払いにも非常に有益である。
セキュリティ
仮想マシンを安全にアクティブ化するほかに、装置100は他のセキュリティ手段も実現する。仮想マシンがフラッシュメモリに格納される前に、カードは、前述した信頼できる機関によりカードが署名されることを要求することができる。さらに、仮想マシン(または他のソフトウェアアプリケーション)が改ざんされたり、内密にアクティブ化されたり、あるいは装置に不法にコピーされインストールされたりできないように、種々の暗号技術も実施され得る。VMは、種々の周知のハッシュ関数、あるいはその代わりに装置の一意の鍵で、暗号化され得る。
この暗号化はソフトウェアおよび/またはハードウェアで成し遂げられ得る。これはMAC値、SHA−1値、あるいはハッシュ値の使用を必要とし得る。これらの暗号化/解読技術の原理は良く知られているので、ここでは詳しく説明しない。
一実施形態では、暗号化は、コントローラのハードウェアにおいて実現される暗号化エンジンで実行される。暗号化エンジンのハードウェアは、アプリケーションの、入ってくるデータを、それがカードのメモリにロードされるときにオンザフライ(on the fly)で暗号化する。コントローラは、そのコントローラに特有のハッシュ値を作るために使用され、コントローラとの結合はコントローラの一種の署名として役立つ。この署名は、その後、アプリケーションが実行される前にベリファイされる。暗号化エンジンを少なくとも部分的に(完全にファームウェアでではなくて)コントローラのハードウェアで実現することは、非常にクラックしにくい頑健な装置をもたらす。それは、コントローラが(異なる署名を有する)代わりのコントローラと置き換えられ得ないからであるが、それは、装置のセキュリティをクラックする一般的なやり方である。コントローラの署名も容易には偽造され得ない。図9に見られるように、ファームウェア210は、ブートローダ部分210aと、システム部分210bと、ファームウェアのための種々のMAC値、SHA−1値、またはハッシュ値とを持つことができ、それらは、実行されるべくRAMメモリに個々にロードされ得る複数のセグメントまたはオーバーレイに分割され得る。本発明のある実施形態で利用される暗号化技術のこの態様および他の態様に関するさらなる情報を得るために、その全体が本願明細書において参照により援用されているHoltzmanらの米国特許出願(特許文献2〜4)を参照されたい。
種々のファームウェアアプリケーションが図9に示されているフラッシュメモリスペースに格納されて見られる。仮想マシンとアプレットとはファームウェアアプリケーションと見なされ得る。例えば、202aという番号が付されているAPP FW1は仮想マシンを含むことができ、アプレットは202bという番号が付されているAPP FW2により/の中で構成され得る。ファームウェアのこれらのピースがオーバーレイに分割されるのであれば、そのアプリケーションファームウェア“パズル”の種々のピースが何処に格納されているかをアプリケーションファームウェアのオーバーレイマップ201aが示す。オーバーレイのハッシュ値、SHA−1値、あるいはMAC値は、それら自体が暗号化されたフォーマットでフラッシュメモリ内のテーブル201bに格納される。これらの値は、それら自体が暗号化され得て、ある実施形態では、前述したように装置固有のハードウェア暗号化技術で暗号化され得る。ある実施形態では、カードの他のファームウェアとの統合および動作を容易にするためにフラッシュメモリ内に仮想マシンのためのスペースが確保される。これは、部分的にファームウェアにより提供されるカードのセキュリティが、さもなければ仮想マシンによって、またはカード上で動作してそれに格納されているデータにアクセスする他のアプリケーションによって、損なわれるかもしれないセキュアカードにおいて、特に重要である。
本発明の実施形態が示され説明されてきたけれども、実施例となるそれらの実施形態に対する変更および改変が、その広い態様において本発明から逸脱せずに行われ得る。従って、前に明示的に記述されてはいないけれども本発明の範囲内にある本発明の他の実施形態があること、従って本発明の範囲が提示された実施例となる実施形態だけに限定されないことは明らかであるはずである。従って、添付されている特許請求の範囲が本発明の確立された限界を述べていることが理解される。しかし、言葉は発明の範囲を記述する不完全な方法であるから、特許請求の範囲で明示された言葉の中にない同等の構造および方法も本発明の真の範囲内にあることも理解されるべきである。

Claims (68)

  1. 大容量記憶装置型メモリカードであって、
    フラッシュメモリと、
    コントローラと、
    前記フラッシュメモリの読み出し動作および書き込み動作を制御するファームウェアであって、前記読み出し動作および書き込み動作へのアクセスを制限するセキュリティルーチンを前記ファームウェア内に含むファームウェアと、を備え、
    前記ファームウェアは、第1の動作状態または第2の動作状態のいずれかで選択的に動作するように構成され、前記カードは、アクティブ化された仮想マシンがないときに第1の動作状態で動作し、アクティブ化された仮想マシンがあるときに第2の動作状態で動作し、
    前記カードが第2の動作状態で動作している間、前記ファームウェアのセキュリティルーチンは読み出しおよび書き込み保護されるデータからのデータへのアクセスを前記仮想マシンに許し、前記カードが第2の動作状態で動作しているときに前記仮想マシンに関連するライセンス料が支払われる大容量記憶装置型メモリカード。
  2. 請求項1記載の大容量記憶装置型メモリカードにおいて、
    前記仮想マシンのためのメモリスペースは、前記フラッシュメモリ内に確保される大容量記憶装置型メモリカード。
  3. 請求項1記載の大容量記憶装置型メモリカードにおいて、
    前記カードは、仮想マシンが前記カードにロードされるまでは第1の動作状態で動作し、その後は第2の動作状態で動作する大容量記憶装置型メモリカード。
  4. 請求項3記載の大容量記憶装置型メモリカードにおいて、
    前記仮想マシンとともにアプレットがロードされる大容量記憶装置型メモリカード。
  5. 請求項4記載の大容量記憶装置型メモリカードにおいて、
    前記アプレットは、デジタル著作権管理(DRM)アプリケーションを含む大容量記憶装置型メモリカード。
  6. ソフトウェアアプリケーションを大容量記憶装置型メモリカードで使用することを可能にする方法であって、
    前記カードのデータ記憶動作を実行させるファームウェア、前記カード内の1つ以上のアプリケーションプログラミングインターフェイス、およびアクティブ化されない仮想マシンを備える大容量記憶装置型メモリカードで、ユーザが前記仮想マシンを利用するソフトウェアアプリケーションを使用するため、アクティブ化コマンドなどによって前記仮想マシンをアクティブ化することを実行し、
    前記ファームウェアは、第1の動作状態または第2の動作状態のいずれかで選択的に動作するように構成され、前記カードは、アクティブ化された仮想マシンがないときに第1の動作状態で動作し、アクティブ化された仮想マシンがあるときに第2の動作状態で動作し、
    前記カードが第2の動作状態で動作している間、前記ファームウェアのセキュリティルーチンは読み出しおよび書き込み保護されるデータからのデータへのアクセスを前記仮想マシンに許し、前記カードが第2の動作状態で動作しているときに前記仮想マシンに関連するライセンス料が支払われる方法。
  7. 請求項6記載の方法において、
    前記仮想マシンについてのライセンス料を前記仮想マシンがアクティブ化された場合に限って支払う方法。
  8. 請求項6記載の方法において、
    前記ソフトウェアアプリケーションは、前記カードのプロセッサにより実行されるために前記仮想マシンに依拠する方法。
  9. 請求項6記載の方法において、
    前記仮想マシンは、消費者が前記カードを受け取る前に前記カードにロードされる方法。
  10. 請求項6記載の方法において、
    前記仮想マシンは、消費者が前記カードを受け取った後に前記カードに現場でロードされる方法。
  11. 請求項6記載の方法において、
    前記ファームウェアは、前記カードに格納されているデータに前記仮想マシンがアクセスすることをアクティブ化後に初めて可能にする方法。
  12. 請求項8記載の方法において、
    前記ソフトウェアアプリケーションは、デジタル著作権管理(DRM)を含む方法。
  13. 請求項12記載の方法において、
    前記仮想マシンは、暗号化される方法。
  14. 請求項13記載の方法において、
    前記仮想マシンは、前記カードのハードウェアにより、前記カードにロードされるときに暗号化される方法。
  15. 請求項13記載の方法において、
    前記暗号化された仮想マシンは、前記カードのハードウェアの署名を含み、前記署名を作ったハードウェア以外のハードウェアによっては実行され得ない方法。
  16. 請求項10記載の方法において、
    前記仮想マシンおよび/または前記仮想マシンのプロバイダの真正性をベリファイすることをさらに含む方法。
  17. 携帯可能なフラッシュメモリ大容量記憶装置を提供する方法であって、
    データ記憶動作を実行させるファームウェアを備えるフラッシュメモリ大容量記憶装置で、前記装置にロードするべきアプリケーションを有する第1者の信用証明書をベリファイすることを実行し、
    前記信用証明書は、第1者が仮想マシンを含むアプリケーションをロードすることを可能にし、
    前記フラッシュメモリ大容量記憶装置が有する、データ記憶動作を実行させるファームウェアは、第1の動作状態または第2の動作状態のいずれかで選択的に動作するように構成され、前記フラッシュメモリ大容量記憶装置は、アクティブ化された仮想マシンがないときに第1の動作状態で動作し、アクティブ化された仮想マシンがあるときに第2の動作状態で動作し、
    前記カードが第2の動作状態で動作している間、前記ファームウェアのセキュリティルーチンは読み出しおよび書き込み保護されるデータからのデータへのアクセスを前記仮想マシンに許し、前記フラッシュメモリ大容量記憶装置が第2の動作状態で動作しているときに前記仮想マシンに関連するライセンス料が支払われる方法。
  18. 請求項17記載の方法において、
    前記アプリケーションを前記携帯可能なフラッシュメモリ大容量記憶装置に受け取ることをさらに含む方法。
  19. 請求項18記載の方法において、
    前記アプリケーションは、前記携帯可能なフラッシュメモリ大容量記憶装置が消費者に販売された後に、現場で前記携帯可能なフラッシュメモリ大容量記憶装置に受け取られる方法。
  20. 大容量記憶装置型メモリカードのユーザにソフトウェアアプリケーションを提供する方法であって、
    大容量記憶装置型メモリカードのデータ記憶動作を実行させるファームウェアおよび前記カード内の1つ以上のアプリケーションプログラミングインターフェイスを備える大容量記憶装置型メモリカードで、
    ソフトウェアアプリケーションをロードするリクエストを受け取ることと、前記リクエストを受け取った後に、
    仮想マシンを前記カードに受け取り、かつソフトウェアアプリケーションも前記カードに受け取ることと、を実行し、
    前記ファームウェアは、第1の動作状態または第2の動作状態のいずれかで選択的に動作するように構成され、前記カードは、アクティブ化された仮想マシンがないときに第1の動作状態で動作し、アクティブ化された仮想マシンがあるときに第2の動作状態で動作し、
    前記カードが第2の動作状態で動作している間、前記ファームウェアのセキュリティルーチンは読み出しおよび書き込み保護されるデータからのデータへのアクセスを前記仮想マシンに許し、前記カードが第2の動作状態で動作しているときに前記仮想マシンに関連するライセンス料が支払われる方法。
  21. 請求項20記載の方法において、
    前記仮想マシンは、ソフトウェアアプリケーションの要求側に知られずに受け取られる方法。
  22. 請求項20記載の方法において、
    前記仮想マシンを前記カードに受け取るリクエストを提供することをさらに含む方法。
  23. 請求項20記載の方法において、
    ソフトウェアアプリケーションを受け取る前に、ソフトウェアアプリケーションのプロバイダを認証することをさらに含む方法。
  24. 請求項20記載の方法において、
    前記仮想マシンを受け取る前に、前記仮想マシンのプロバイダを認証することをさらに含む方法。
  25. 請求項23または24のいずれか記載の方法において、
    前記認証することは、対称認証を含む方法。
  26. 請求項23または24のいずれか記載の方法において、
    前記認証することは、非対称認証を含む方法。
  27. 請求項20記載の方法において、
    前記カード内のソフトウェアアプリケーションを暗号化することをさらに含む方法。
  28. 請求項20記載の方法において、
    前記カード内の仮想マシンを暗号化することをさらに含む方法。
  29. 請求項27または28のいずれか記載の方法において、
    前記暗号化することは、前記カードのコントローラに格納されている鍵を利用することを含む方法。
  30. 請求項20記載の方法において、
    ソフトウェアアプリケーションは、動作するために前記仮想マシンを必要とする方法。
  31. 大容量記憶装置型メモリカードとともに使用されるように提供される仮想マシンを動作可能にする方法であって、
    大容量記憶装置型メモリカードのデータ記憶動作を実行させるファームウェアを備える大容量記憶装置型メモリカードで、
    仮想マシンを前記カードに受け取ることと、
    前記仮想マシンの機能を利用するリクエストを前記カードの中に受け取ることと、前記リクエストを前記カードの中に受け取った後に、
    前記仮想マシンが機能するために必要なアプリケーションプログラミングインターフェイスを受け取り、前記アプリケーションプログラミングインターフェイスを受け取ることにより前記仮想マシンが利用されることを可能にすることと、を実行し、
    前記ファームウェアは、第1の動作状態または第2の動作状態のいずれかで選択的に動作するように構成され、前記カードは、アクティブ化された仮想マシンがないときに第1の動作状態で動作し、アクティブ化された仮想マシンがあるときに第2の動作状態で動作し、
    前記カードが第2の動作状態で動作している間、前記ファームウェアのセキュリティルーチンは読み出しおよび書き込み保護されるデータからのデータへのアクセスを前記仮想マシンに許し、前記カードが第2の動作状態で動作しているときに前記仮想マシンに関連するライセンス料が支払われる方法。
  32. 大容量記憶装置型メモリカードに用いられるソフトウェアアプリケーションをアクティブ化または非アクティブ化する方法であって、
    大容量記憶装置型メモリカードのデータ記憶動作を実行させるファームウェアおよび前記カードに格納されているデータにアクセスするためにファームウェアに依拠するソフトウェアアプリケーションを備える大容量記憶装置型メモリカードで、
    前記カードのファームウェアでワンタイムパスワード値を生成することと、
    前記カードのファームウェアで生成されたワンタイムパスワード値を前記カードの外で生成されたワンタイムパスワード値と比較することと、
    前記カードにより生成された値が前記カードの外で生成された値と一致することを比較することでベリファイされたならば、前記ソフトウェアアプリケーションの実行を可能にするかまたは不可能にすることと、を実行し、
    前記ファームウェアは、第1の動作状態または第2の動作状態のいずれかで選択的に動作するように構成され、前記カードは、アクティブ化された仮想マシンがないときに第1の動作状態で動作し、アクティブ化された仮想マシンがあるときに第2の動作状態で動作し、
    前記カードが第2の動作状態で動作している間、前記ファームウェアのセキュリティルーチンは読み出しおよび書き込み保護されるデータからのデータへのアクセスを前記仮想マシンに許し、前記カードが第2の動作状態で動作しているときに前記仮想マシンに関連するライセンス料が支払われる方法。
  33. 請求項32記載の方法において、
    前記ワンタイムパスワード値を生成することは、パスワードを、種と、ソフトウェアアプリケーションに関連付けられた一意の識別子および前記カードに関連付けられた一意の識別子のうちの1つ以上との関数として作成することを含む方法。
  34. 請求項33記載の方法において、
    前記ワンタイムパスワード値を生成することは、パスワードを前記カードの関数として作成することをさらに含む方法。
  35. 請求項32記載の方法において、
    前記カードは複数生産され、前記カードの各々は、同じ種を含むけれども、一意の識別子に基づいて値を様々に変化させるワンタイムパスワード生成アルゴリズムを利用することによって所与のカウントについて異なるワンタイムパスワード値を生じさせる方法。
  36. 請求項32記載の方法において、
    一意の識別子は、特定のカードに一意に関連付けられた数を含む方法。
  37. 請求項32記載の方法において、
    一意の識別子は、ソフトウェアアプリケーションの特定の要求に一意に関連付けられた数を含む方法。
  38. 大容量記憶装置型フラッシュメモリ装置であって、
    コントローラと、
    ランダムアクセスメモリと、
    フラッシュメモリおよびデータ記憶動作を実行させるファームウェアを備える大容量記憶装置と、
    仮想マシンと、
    仮想マシンの動作が望まれるときに、前記仮想マシンの動作を可能にするメカニズムと、を備え、
    前記装置のユーザの活動によって前記メカニズムがトリガされたならば、前記仮想マシンに関連するライセンス料が支払われ、
    前記大容量記憶装置が有する、データ記憶動作を実行させるファームウェアは、第1の動作状態または第2の動作状態のいずれかで選択的に動作するように構成され、前記大容量記憶装置は、アクティブ化された仮想マシンがないときに第1の動作状態で動作し、アクティブ化された仮想マシンがあるときに第2の動作状態で動作し、
    前記大容量記憶装置が第2の動作状態で動作している間、前記ファームウェアのセキュリティルーチンは読み出しおよび書き込み保護されるデータからのデータへのアクセスを前記仮想マシンに許し、前記大容量記憶装置が第2の動作状態で動作しているときに前記仮想マシンに関連するライセンス料が支払われる大容量記憶装置型フラッシュメモリ装置。
  39. 請求項38記載の装置において、
    前記仮想マシンは、前記大容量記憶装置のフラッシュメモリに格納される装置。
  40. 大容量記憶装置型フラッシュメモリ装置であって、
    コントローラと、
    ランダムアクセスメモリと、
    フラッシュメモリおよびデータ記憶動作を実行させるファームウェアを備える大容量記憶装置と、
    仮想マシンと、
    前記仮想マシンを動作可能にするための手段と、を備え、
    前記動作可能にするための手段がトリガされたときに、前記仮想マシンについての料金の支払いが開始され、
    前記大容量記憶装置が有する、データ記憶動作を実行させるファームウェアは、第1の動作状態または第2の動作状態のいずれかで選択的に動作するように構成され、前記大容量記憶装置は、アクティブ化された仮想マシンがないときに第1の動作状態で動作し、アクティブ化された仮想マシンがあるときに第2の動作状態で動作し、
    前記大容量記憶装置が第2の動作状態で動作している間、前記ファームウェアのセキュリティルーチンは読み出しおよび書き込み保護されるデータからのデータへのアクセスを前記仮想マシンに許し、前記大容量記憶装置が第2の動作状態で動作しているときに前記仮想マシンに関連するライセンス料が支払われる大容量記憶装置型フラッシュメモリ装置。
  41. データ記憶動作を実行させるファームウェアを備える記憶装置であって、
    メモリと、
    非アクティブ状態である仮想マシンと、
    前記メモリの読み出し動作および書き込み動作を制御するように動作可能なコントローラと、を備え、
    前記コントローラは、前記仮想マシンをアクティブ状態にするようにさらに動作可能であり、
    前記仮想マシンについてのライセンス料の支払いは、前記仮想マシンがアクティブ状態にされた場合に限って必要とされ、
    前記コントローラは、前記仮想マシンが非アクティブ状態である第1の動作状態または前記仮想マシンがアクティブ状態である第2の動作状態のいずれかで動作可能であり、
    前記記憶装置が有する、データ記憶動作を実行させるファームウェアは、第1の動作状態または第2の動作状態のいずれかで選択的に動作するように構成され、前記記憶装置は、アクティブ化された仮想マシンがないときに第1の動作状態で動作し、アクティブ化された仮想マシンがあるときに第2の動作状態で動作し、
    前記記憶装置が第2の動作状態で動作している間、前記ファームウェアのセキュリティルーチンは読み出しおよび書き込み保護されるデータからのデータへのアクセスを前記仮想マシンに許し、前記記憶装置が第2の動作状態で動作しているときに前記仮想マシンに関連するライセンス料が支払われる記憶装置。
  42. 請求項41記載の記憶装置において、
    前記コントローラは、アクティブ化コードを受け取ったことに応答して前記仮想マシンをアクティブ状態にするように動作可能である記憶装置。
  43. 請求項42記載の記憶装置において、
    前記コントローラは、アクティブ化コードを前記記憶装置に格納されているアクティブ化コードの暗号化されたバージョンと照合することによって、アクティブ化コードを確認するように動作可能である記憶装置。
  44. 請求項42記載の記憶装置において、
    前記コントローラは、アクティブ化コードを確認のためにサーバに送るように動作可能である記憶装置。
  45. 請求項42記載の記憶装置において、
    前記コントローラは、認証されているエンティティからアクティブ化コードを受け取った場合に限って前記仮想マシンをアクティブ状態にするように動作可能である記憶装置。
  46. 請求項42記載の記憶装置において、
    アクティブ化コードは、前記仮想マシンの識別子および前記記憶装置の識別子のうちの1つまたは両方に基づく記憶装置。
  47. 請求項42記載の記憶装置において、
    アクティブ化コードは、デジタル著作権管理(DRM)許可をさらに提供する記憶装置。
  48. 請求項42記載の記憶装置において、
    アクティブ化コードは、暗号認証方式に基づく記憶装置。
  49. 請求項42記載の記憶装置において、
    アクティブ化コードは、ワンタイムパスワードに基づく記憶装置。
  50. 請求項41記載の記憶装置において、
    前記コントローラは、アプリケーションプログラミングインターフェイスを受け取ったことに応答して前記仮想マシンをアクティブ状態にするように動作可能である記憶装置。
  51. 請求項41記載の記憶装置において、
    前記コントローラは、前記メモリに格納されているデータを保護するセキュリティシステムを実行するように動作可能であり、さらに前記仮想マシンがアクティブ状態にされているときに前記仮想マシンがデータの少なくとも一部にアクセスすることを可能にするように動作可能である記憶装置。
  52. 請求項41記載の記憶装置において、
    前記仮想マシンは、エンドユーザへの販売時より前に前記記憶装置にロードされる記憶装置。
  53. 請求項41記載の記憶装置において、
    前記仮想マシンは、エンドユーザへの販売時より後に前記記憶装置にダウンロードされる記憶装置。
  54. 請求項53記載の記憶装置において、
    前記仮想マシンをアクティブ状態にするためのアクティブ化コードは、前記仮想マシンとともにダウンロードされる記憶装置。
  55. 請求項41記載の記憶装置において、
    前記仮想マシンは、新しいファームウェアと一緒に前記記憶装置にロードされる記憶装置。
  56. データ記憶動作を実行させるファームウェアを備える記憶装置で仮想マシンをアクティブ化する方法であって、
    メモリと非アクティブ状態である仮想マシンとを備える記憶装置のコントローラで、
    前記仮想マシンをアクティブ状態にするためのアクティブ化コードを受け取ることと、
    前記仮想マシンをアクティブ状態にすることと、を実行し、
    前記仮想マシンについてのライセンス料の支払いは、前記仮想マシンがアクティブ状態にされた場合に限って必要とされ、
    前記コントローラは、前記仮想マシンが非アクティブ状態である第1の動作状態または前記仮想マシンがアクティブ状態である第2の動作状態のいずれかで動作可能であり、
    前記記憶装置が有する、データ記憶動作を実行させるファームウェアは、第1の動作状態または第2の動作状態のいずれかで選択的に動作するように構成され、前記記憶装置は、アクティブ化された仮想マシンがないときに第1の動作状態で動作し、アクティブ化された仮想マシンがあるときに第2の動作状態で動作し、
    前記記憶装置が第2の動作状態で動作している間、前記ファームウェアのセキュリティルーチンは読み出しおよび書き込み保護されるデータからのデータへのアクセスを前記仮想マシンに許し、前記記憶装置が第2の動作状態で動作しているときに前記仮想マシンに関連するライセンス料が支払われる方法。
  57. 請求項56記載の方法において、
    アクティブ化コードを前記記憶装置に格納されているアクティブ化コードの暗号化されたバージョンと照合することによって、アクティブ化コードを確認することをさらに含む方法。
  58. 請求項56記載の方法において、
    アクティブ化コードを確認のためにサーバに送ることをさらに含む方法。
  59. 請求項56記載の方法において、
    前記仮想マシンは、認証されているエンティティからアクティブ化コードが受け取られた場合に限ってアクティブ状態にされる方法。
  60. 請求項56記載の方法において、
    アクティブ化コードは、前記仮想マシンの識別子および前記記憶装置の識別子のうちの1つまたは両方に基づく方法。
  61. 請求項56記載の方法において、
    アクティブ化コードは、デジタル著作権管理(DRM)許可をさらに提供する方法。
  62. 請求項56記載の方法において、
    アクティブ化コードは、暗号認証方式に基づく方法。
  63. 請求項56記載の方法において、
    アクティブ化コードは、ワンタイムパスワードに基づく方法。
  64. 請求項56記載の方法において、
    前記メモリに格納されているデータを保護するセキュリティシステムを実行することと、前記仮想マシンがアクティブ状態にされているときに前記仮想マシンがデータの少なくとも一部にアクセスすることを可能にすることとをさらに含む方法。
  65. 請求項56記載の方法において、
    前記仮想マシンは、エンドユーザへの販売時より前に前記記憶装置にロードされる方法。
  66. 請求項56記載の方法において、
    前記仮想マシンは、エンドユーザへの販売時より後に前記記憶装置にダウンロードされる方法。
  67. 請求項66記載の方法において、
    アクティブ化コードは、前記仮想マシンとともにダウンロードされる方法。
  68. 請求項56記載の方法において、
    前記仮想マシンは、新しいファームウェアと一緒に前記記憶装置にロードされる方法。
JP2009523886A 2006-08-08 2007-07-26 仮想マシンのアクティブ化を伴う携帯可能な大容量記憶装置 Expired - Fee Related JP5118700B2 (ja)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US11/463,256 2006-08-08
US11/463,264 US20080126705A1 (en) 2006-08-08 2006-08-08 Methods Used In A Portable Mass Storage Device With Virtual Machine Activation
US11/463,256 US7725614B2 (en) 2006-08-08 2006-08-08 Portable mass storage device with virtual machine activation
US11/463,264 2006-08-08
PCT/US2007/074399 WO2008021682A2 (en) 2006-08-08 2007-07-26 Portable mass storage with virtual machine activation

Publications (3)

Publication Number Publication Date
JP2010500656A JP2010500656A (ja) 2010-01-07
JP2010500656A5 JP2010500656A5 (ja) 2010-02-18
JP5118700B2 true JP5118700B2 (ja) 2013-01-16

Family

ID=38823627

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009523886A Expired - Fee Related JP5118700B2 (ja) 2006-08-08 2007-07-26 仮想マシンのアクティブ化を伴う携帯可能な大容量記憶装置

Country Status (5)

Country Link
EP (1) EP2049991A2 (ja)
JP (1) JP5118700B2 (ja)
KR (1) KR101504647B1 (ja)
TW (1) TWI357572B (ja)
WO (1) WO2008021682A2 (ja)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8868925B2 (en) * 2008-12-09 2014-10-21 Nvidia Corporation Method and apparatus for the secure processing of confidential content within a virtual machine of a processor
CN101964068A (zh) * 2009-07-22 2011-02-02 深圳市江波龙电子有限公司 一种sd卡及其数据访问控制方法
KR101103313B1 (ko) * 2009-09-28 2012-01-11 주식회사 잉카인터넷 가상머신 환경에서의 매체제어방법
US9292319B2 (en) 2012-03-28 2016-03-22 Google Inc. Global computing interface
TWI494856B (zh) * 2012-05-21 2015-08-01 Irene Tsai Program call method and mobile device
SG11201708726PA (en) * 2015-03-26 2017-11-29 Einnovations Holdings Pte Ltd System and method for facilitating remittance
KR101655890B1 (ko) * 2015-04-08 2016-09-08 (주)세이퍼존 배드 유에스비 방지를 위한 보안 유에스비 장치의 펌웨어 설치 방법
CN111443991B (zh) * 2020-03-26 2023-06-23 恒宝股份有限公司 智能卡控制方法、装置及智能卡

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5956505A (en) 1991-12-24 1999-09-21 Pitney Bowes Inc. Remote activation of software features in a data processing device
CA2288824A1 (en) * 1997-03-24 1998-10-01 Marc B. Kekicheff A system and method for a multi-application smart card which can facilitate a post-issuance download of an application onto the smart card
JP2002169622A (ja) * 2000-09-25 2002-06-14 Fujitsu Ltd 課金方法およびプログラム
US20020145632A1 (en) * 2000-10-27 2002-10-10 Shimon Shmueli Portable interface for computing
JP2002279372A (ja) * 2001-03-15 2002-09-27 Nippon Telegr & Teleph Corp <Ntt> Icカード及びicカードのアプリケーション管理方法
JP2002318702A (ja) * 2001-04-19 2002-10-31 Mitsubishi Electric Corp 車載情報システム
JP2002358205A (ja) * 2001-06-01 2002-12-13 Dainippon Printing Co Ltd 複数のプラットホームを備えた携帯可能情報処理装置
EP1355268B1 (en) * 2002-02-28 2006-04-05 Matsushita Electric Industrial Co., Ltd. Memory card
JP3913128B2 (ja) * 2002-02-28 2007-05-09 松下電器産業株式会社 メモリカード
JP4486828B2 (ja) * 2003-02-04 2010-06-23 パナソニック株式会社 半導体メモリカード、コンピュータ読取可能なプログラム
CA2481852A1 (en) * 2003-02-04 2004-08-19 Matsushita Electric Industrial Co., Ltd. Semiconductor memory card and computer readable program
JP2005190276A (ja) * 2003-12-26 2005-07-14 Toshiba Corp メモリカード
KR20050070381A (ko) * 2003-12-30 2005-07-07 엘지전자 주식회사 원타임 패스워드 기반 인증 시스템
US20060004667A1 (en) * 2004-06-30 2006-01-05 Microsoft Corporation Systems and methods for collecting operating system license revenue using an emulated computing environment
US20060106920A1 (en) * 2004-11-15 2006-05-18 Microsoft Corporation Method and apparatus for dynamically activating/deactivating an operating system

Also Published As

Publication number Publication date
JP2010500656A (ja) 2010-01-07
KR101504647B1 (ko) 2015-03-30
TW200820076A (en) 2008-05-01
TWI357572B (en) 2012-02-01
KR20090048581A (ko) 2009-05-14
WO2008021682A3 (en) 2008-07-24
WO2008021682A2 (en) 2008-02-21
EP2049991A2 (en) 2009-04-22

Similar Documents

Publication Publication Date Title
US8447889B2 (en) Portable mass storage device with virtual machine activation
EP3887979B1 (en) Personalized and cryptographically secure access control in operating systems
US8214630B2 (en) Method and apparatus for controlling enablement of JTAG interface
JP5449905B2 (ja) 情報処理装置、プログラム、および情報処理システム
AU776027B2 (en) Method and system for enforcing access to a computing resource using a licensing attribute certificate
JP4913871B2 (ja) セキュアコンテンツおよびアプリケーションのコピーを防ぐセキュリティメカニズムを有するメモリカードのアップグレード
US8171295B2 (en) Information processing apparatus, a server apparatus, a method of an information processing apparatus, a method of a server apparatus, and an apparatus executable process
US7171558B1 (en) Transparent digital rights management for extendible content viewers
JP5636371B2 (ja) 汎用コンピューティングデバイスにおけるコード実行制御および再帰的セキュリティプロトコルでのコード実行制御のための方法およびシステム
JP5118700B2 (ja) 仮想マシンのアクティブ化を伴う携帯可能な大容量記憶装置
CN101488170A (zh) 向受信任平台模块提供可更新密钥绑定的方法和装置
EP2051181A1 (en) Information terminal, security device, data protection method, and data protection program
US20080126705A1 (en) Methods Used In A Portable Mass Storage Device With Virtual Machine Activation
US20250209139A1 (en) License binding of an application license to a device
JP2011523481A (ja) 周辺装置用ソフトウェア開発キットのアクセス認証
CN107223252B (zh) 安全元件
KR101711024B1 (ko) 부정조작방지 장치 접근 방법 및 그 방법을 채용한 단말 장치
JP2005215945A (ja) 情報処理装置、ソフトウェアの実行を許可する記憶装置、および、ソフトウェア実行方法
JP5702458B2 (ja) 情報処理装置、プログラム、および情報処理システム
HK40060449B (en) Personalized and cryptographically secure access control in operating systems
HK40060449A (en) Personalized and cryptographically secure access control in operating systems

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20091111

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20100607

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120131

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20120420

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20120427

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20120529

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20120605

A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A711

Effective date: 20120615

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120627

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120904

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120910

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20121016

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20121019

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20151026

Year of fee payment: 3

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

S533 Written request for registration of change of name

Free format text: JAPANESE INTERMEDIATE CODE: R313533

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

LAPS Cancellation because of no payment of annual fees