JP5351158B2 - テザード装置システム及び方法 - Google Patents

テザード装置システム及び方法 Download PDF

Info

Publication number
JP5351158B2
JP5351158B2 JP2010518224A JP2010518224A JP5351158B2 JP 5351158 B2 JP5351158 B2 JP 5351158B2 JP 2010518224 A JP2010518224 A JP 2010518224A JP 2010518224 A JP2010518224 A JP 2010518224A JP 5351158 B2 JP5351158 B2 JP 5351158B2
Authority
JP
Japan
Prior art keywords
host
record
node
content
svs
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.)
Active
Application number
JP2010518224A
Other languages
English (en)
Other versions
JP2010534451A (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
Application filed by インタートラスト テクノロジーズ コーポレイション filed Critical インタートラスト テクノロジーズ コーポレイション
Publication of JP2010534451A publication Critical patent/JP2010534451A/ja
Application granted granted Critical
Publication of JP5351158B2 publication Critical patent/JP5351158B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q50/00Information and communication technology [ICT] specially adapted for implementation of business processes of specific business sectors, e.g. utilities or tourism
    • G06Q50/10Services
    • G06Q50/18Legal services
    • G06Q50/184Intellectual property management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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]
    • G06F21/101Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM] by binding digital rights to specific entities
    • G06F21/1012Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM] by binding digital rights to specific entities to domains
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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]
    • G06F21/101Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM] by binding digital rights to specific entities
    • G06F21/1013Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM] by binding digital rights to specific entities to locations
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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]
    • G06F21/101Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM] by binding digital rights to specific entities
    • G06F21/1015Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM] by binding digital rights to specific entities to users
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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]
    • G06F21/107License processing; Key processing
    • G06F21/1073Conversion
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/38Payment protocols; Details thereof
    • G06Q20/382Payment protocols; Details thereof insuring higher security of transaction
    • G06Q20/3829Payment protocols; Details thereof insuring higher security of transaction involving key management
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/06Network architectures or network communication protocols for network security for supporting key management in a packet data network
    • H04L63/061Network architectures or network communication protocols for network security for supporting key management in a packet data network for key exchange, e.g. in peer-to-peer networks

Landscapes

  • Engineering & Computer Science (AREA)
  • Business, Economics & Management (AREA)
  • Theoretical Computer Science (AREA)
  • Technology Law (AREA)
  • Software Systems (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Tourism & Hospitality (AREA)
  • Multimedia (AREA)
  • Strategic Management (AREA)
  • General Business, Economics & Management (AREA)
  • Accounting & Taxation (AREA)
  • Health & Medical Sciences (AREA)
  • Entrepreneurship & Innovation (AREA)
  • Primary Health Care (AREA)
  • Human Resources & Organizations (AREA)
  • General Health & Medical Sciences (AREA)
  • Economics (AREA)
  • Marketing (AREA)
  • Operations Research (AREA)
  • Signal Processing (AREA)
  • Computing Systems (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Finance (AREA)
  • Storage Device Security (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)

Description

関連出願
本出願は、2007年7月23日付けで出願された「Dynamic Media Zones Systems and Methods」という名称の米国仮特許出願第60/951,349号に伴う優先権を主張するものであり、この内容は、本引用により、本明細書に包含される。
著作権の許諾
本特許明細書の開示内容の一部には、著作権保護の対象物が含まれる。著作権者は、特許商標庁の特許ファイル又は記録への掲載に伴う本特許明細書又は特許開示の複写には異議を提起しないが、それ以外については、どのようなものであれ、全ての著作権を制限する。
現代のコンピュータシステムにおいては、電子コンテンツ、サービス、又は処理リソースに対するアクセスを制限し又は特定の動作の実行を特定のエンティティに対してのみ許容することが大抵の場合には望ましい。このような制御を可能にするために様々な技法が開発又は提案されている。これらの技法は、しばしば、デジタル著作権管理(Digital Rights Management:DRM)法と呼ばれている。その理由は、一般には、デジタル又はその他の電子コンテンツ、サービス、又はリソースにおける様々なエンティティの権利を管理することを目的とするからである。本明細書には、電子コンテンツの管理を容易にするためのシステム及び方法が示され、好適な実施例のグループにおいては、テザード装置を構成、制御、及び/又は使用するためのシステム及び方法が示されている。これらのシステム及び方法は、そこで用いられているコンポーネント、システム及び方法の多くと同様に新規であることを理解されたい。本明細書に記述されている本発明の実施例は、プロセス、装置、システム、機器、方法、コンピュータによって読取り可能な媒体、及び/又はこれらの組み合わせを含む多数の方式において実現可能であることを理解されたい。以下、実施の態様について説明する。
添付の図面との関連において以下の詳細な説明を参照することにより、本発明について容易に理解することができよう。
本発明の実施例を実施するためのシステムを示す。 ホストシステムの一例を示す。 テザード装置の一例を示す。 ホスト及びテザード装置を有するシステムの一例を示す。 装置記述文書の一例を示す。 ホストと装置の間に安全な認証チャネルを確立するプロセスを示すフローチャートである。 ホストとテザード装置の間にペアリングを確立するプロセスを示すフローチャートである。 ホストからテザード装置にライセンスをエクスポートするプロセスの一例を示す。 ホストからテザード装置にライセンスをエクスポートするプロセスを更に詳細に示す。 ライセンス及びリンクオブジェクトからのSVS及びLVSレコードの生成を示す。 保護されたコンテンツ片をレンダリングするためにクライアントによって実行される例示用の一連の動作を示す。 コンテンツ片に対するアクセス又はコンテンツ片の他の使用がSVSによって許容されるか否かを決定するプロセスを示すフローチャートである。 テザード装置のセキュリティデータを更新するためにホストによって実行可能な例示用のプロセスを示す。 ホストとテザード装置の間におけるTLSの実装を示す。 ハンドシェークプロトコルを示す。 拡張SCSIコマンドを使用してUSB接続上においてホストとテザード装置の間の通信を開始する例示用のプロセスを示す。 データベースのファイルレイアウトの一例を示す。 ドメインに参加するテザード装置の一例を示す。 メッセージのカプセル化の一例を示す。
以下、本発明について詳細に説明する。いくつかの実施例について説明するが、本発明は、いずれか1つの実施例に限定されるものではなく、多数の代替、変更、及び均等物を包含することを理解されたい。更には、本発明に関する完全な理解のために、以下の説明において多数の特定の詳細事項についても記述しているが、一部の実施例は、これらの詳細事項のいくつか又は全てを伴うことなしに実施可能である。更には、明瞭のために、不必要に本発明を曖昧にすることを回避するために関連分野において既知の特定の技術内容を詳細に説明していない。
好適な実施例のグループにおいては、テザード装置を構成、制御、及び/又は使用するシステム及び方法が提供されている。例えば、本明細書に記述されているシステムおよび方法を使用し、本引用によって本明細書にその内容が包含される、本譲受人に譲渡された、2006年10月18日付けで出願され、且つ、米国特許出願公開第2007−0180519−1A号として公開された、「Digital Rights Management Engine Systems and Methods」という名称の同時係属中の米国特許出願第11/583,693号(「’693号」出願)に記述されているようなDRMシステムを拡張することにより、簡単な装置よりも大きな能力を有するホストエンティティが、1つ又は複数のオリジナルのライセンスから使用規則及びコンテンツ鍵をエクスポートすると共に、オリジナルのライセンスによって管理されたコンテンツを簡単な装置が消費できるようにする、オリジナルのライセンスにおいてコード化された使用規則の更に限定された表現を有する、非常に簡単なデータ構造を生成することができるようにすることができる。ホストは、(「’693号」出願に記述されているような)使用規則を表現するために使用されたコントロールから、装置内における使用規則を表す簡単な有効性ステートメント(Simple Validity statement:SVS)レコードを生成する。ホストは、ホストDRMシステム内におけるエンティティ間の関係を表現するために使用されたリンクから、ホストシステム内に存在するノードのグラフに類似したノードのグラフの内部表現を装置が構築できるようにするリンク有効性ステートメントレコードを生成する。
図1は、コンテンツをデジタル著作権管理システムを使用して配布及び管理するシステム100の一例を示す。好適な実施例においては、「’693号」出願に記述されているようなデジタル著作権管理システムを使用可能であるが、本明細書に記述されている原理に従い、任意の適切なデジタル著作権管理システムを使用可能であることを理解されたい。
図1に示されているように、電子コンテンツ103の権利を保有するエンティティ102は、配布と、エンドユーザ108a、108bによる消費のために、コンテンツをパッケージングする(尚、以下においては、これらのエンドユーザは、「エンドユーザ108」と総称され、この場合に、参照符号108は、文脈から明らかなように、エンドユーザ又はエンドユーザのコンピュータシステムをほとんど同じ意味で言及する。)。例えば、エンティティ102は、音楽家、映画スタジオ、出版社、ソフトウェア会社、著者、モバイルサービスプロバイダ、インターネットコンテンツダウンロード又は有料加入サービス、ケーブル又は衛星テレビプロバイダ、企業の従業員、又はこれらに類似したもの、或いは、これらの代理として機能するエンティティなどのコンテンツ所有者、クリエータ、又はプロバイダを有することが可能であり、且つ、コンテンツ103は、任意の電子コンテンツを有することができる。例えば、コンテンツ103は、デジタルビデオ、オーディオ、又はテキストコンテンツ、映画、テレビショー、ビデオクリップ、楽曲、ポッドキャスト、ビデオゲーム、ソフトウェア片、電子メールメッセージ、テキストメッセージ、ワードプロセッサ文書、レポート、又は任意のその他のエンターテインメント、事業計画、又はその他のコンテンツを有することができる。パッケージングプロセスには、通常、デジタル著作権管理システムによって要求されるセキュリティ保護をコンテンツに対して適用するステップが伴うことになる。例えば、コンテンツは、適切な暗号鍵、証明書、及び/又はこれらに類似したものを得るためにトラストオーソリティ110を使用することができる暗号化又はデジタル署名法などの1つ又は複数の暗号メカニズムによって保護可能である。
図1に示されている例においては、エンティティ102は、ライセンス又はその他の形態の電子コントロール106をパッケージング済みのコンテンツ104と関連付けるためにパッケージングエンジン109を使用する。ライセンス106は、ポリシー105又はエンティティ102のその他の所望に基づいたものであり、且つ、コンテンツの許容された及び/又は禁止された使用法、及び/又は、コンテンツを利用するために満足しなければならない又は使用の条件又は結果として満足しなければならない1つ又は複数の条件を規定している。図1は、エンティティ102によってコンテンツと関連付けられたライセンスを示しているが、その他の実施例においては、このようなライセンスを別のエンティティ(例えば、再販業者又はその他の権利保有者)によって関連付け及び/又は変更することも可能であることを理解されたい。
図1に示されているように、パッケージング済みのコンテンツ104及び関連する1つのライセンス(又は、複数のライセンス)106は、任意の適切なメカニズムを介して(例えば、インターネット、ローカルエリアネットワーク、無線ネットワーク、仮想プライベートネットワーク、ワイドエリアネットワーク、及び/又はこれらに類似したものなどのネットワーク112上におけるダウンロード又はストリームを介して、コンパクトディスク(CD)、デジタルバーサタイルディスク(DVD)、フラッシュメモリカード(例えば、セキュアデジタル(SD)カード)、及び/又はこれらに類似したものなどの記録可能な媒体を介して、ケーブル、衛星、放送、又はセルラー通信を介して、及び/又はこれらの類似したものを介して)エンドユーザ108に配布され、そこで、コンテンツは、関連するライセンスの条件に従って、ユーザ108のためにレンダリングされる。図1に示されているように、パッケージング済みのコンテンツ104は、ライセンス106と共に、単一のパッケージ又は伝送113において、或いは、同一の又は異なる供給元から受領される別個のパッケージ又は伝送114、115において、ユーザに対して供給可能である。
通常、ライセンス条件は、ユーザのシステム108上において稼働するデジタル著作権管理エンジンによって強制される。エンドユーザのシステムは、相対的に高い能力の装置(例えば、パーソナルコンピュータ108a、携帯電話機108b、テレビ及び/又はテレビセットトップボックス、携帯型オーディオ及び/又はビデオプレーヤー、電子ブックリーダー、ゲームシステム、パーソナルデジタルアシスタント、及び/又はその他の電子装置)を有することも可能であり、或いは、相対的に低い能力の装置(例えば、いくつかの携帯電話機109a、携帯型オーディオ及び/又はビデオプレーヤー109b、パーソナルデジタルアシスタント109c、及び/又はこれらに類似したもの)を有することも可能である。装置108、109は、通常、コンテンツを取り出してレンダリングするアプリケーションソフトウェア116、ハードウェア、及び/又は専用論理を含む。相対的に高い能力の装置108は、通常、ライセンスによって許容された場合にのみコンテンツに対するユーザアクセスを選択的に許容することによって、パッケージング済みのコンテンツ104と関連するライセンス106を評価し、且つ、その条件を強制(し及び/又はアプリケーション116を起動してそのような条件を強制)する相対的に高い性能のデジタル著作権管理エンジン118を含む。デジタル著作権管理エンジン118は、アプリケーション116と共に構造的又は機能的に統合することも可能であり、或いは、別個のソフトウェア及び/又はハードウェア片を有することも可能である。或いは、この代わりに、相対的に低い能力の装置109は、相対的に高い能力の装置108上において稼働するDRMエンジン118によってライセンス106から導出された相対的に簡単な条件120を強制する能力しか有していないアプリケーション116及び/又は相対的に簡単なデジタル著作権管理エンジンを包含可能である。
デジタル著作権管理エンジン及び/又はユーザのシステム上又はこれとのリモート通信状態にあるその他のソフトウェアは、保護されたコンテンツに対するユーザのアクセス又は保護されたコンテンツの他の使用に関する情報を記録してもよい。一部の実施例においては、この情報の一部又は全部は、例えば、収入の配分(ロイヤリティ、広告に基づいた収入など)、ユーザの好みの決定、システムポリシーの強制(例えば、機密情報を使用する方法及び時期の監視)、及び/又はこれらに類似したものなどにおける使用のために、遠隔地の関係者(例えば、クリアリングハウス122、コンテンツクリエータ、所有者、又はプロバイダ102、ユーザの管理者、これらの代わりに機能するエンティティ、及び/又はこれらに類似したもの)に対して伝達可能である。図1は、例示的なDRMアーキテクチャ及び例示的な関係の組を示しているが、本明細書に記述されているシステム及び方法は、任意の適切な環境において実施可能であり、従って、図1は、例示及び説明を目的として提供されており、限定を目的としたものではないことを理解されたい。
図2は、本発明の実施例を実施するために使用可能なシステムの1つの可能な実施例300の更に詳細な例を示す。例えば、システム200は、エンドユーザの装置108、コンテンツプロバイダの装置102、及び/又はこれらに類似したものの実施例を備える。例えば、システム100は、パーソナルコンピュータ108a,108b又はネットワークサーバーなどの汎用演算装置、或いは、セルラー電話機、パーソナルデジタルアシスタント、携帯型オーディオ又はビデオプレーヤ、テレビセットトップボックス、キオスク、ゲームシステム、又はこれらに類似したものなどの専用演算装置を備える。システム200は、通常、プロセッサ202、メモリ204、ユーザインターフェイス206、着脱自在のメモリ208を受け付けるポート207、ネットワークインターフェイス210、及び前述の要素を接続するための1つ又は複数のバス212を含む。システム200の動作は、通常、メモリ204(及び/又は、着脱自在のメモリ208などのその他のコンピュータ読取り可能な媒体)内に保存されたプログラムのガイダンスの下で動作するプロセッサ202によって制御される。メモリ204は、一般的には、高速ランダムアクセスメモリ(RAM)と、磁気ディスク及び/又はフラッシュEEPROMなどの不揮発性メモリとの両方を含む。メモリ204の一部を、システム200のその他のコンポーネントによって読み取り又は書き込みできないように制限してもよい。ポート207は、ディスクドライブ、又はディスケット、CD−ROM、DVD、メモリカード、SDカード、その他の磁気又は光媒体、及び/又はこれらに類似したものなどの着脱自在のメモリ208を受け入れるためのメモリスロットを有することができる。ネットワークインターフェイス210は、通常、インターネット又は(例えば、LAN、WAN、VPNなどの)イントラネットなどのネットワーク220を介してシステム200とその他の演算装置の間の接続(及び/又は、演算装置のネットワーク)を提供し、且つ、そのような接続(例えば、無線、Ethernet(登録商標)、及び/又はこれらに類似したもの)を物理的に構成するために1つ又は複数の通信技法を利用することができる。一部の実施例においては、システム200は、システム200のユーザ又はその他のエンティティによる改竄から保護された処理ユニット203を包含することもできる。このような安全な処理ユニットは、鍵管理、署名検証、及びデジタル著作権管理プロセスのその他の側面などの機密操作のセキュリティを強化するのに有用である。
図2に示されているように、演算装置200のメモリ204は、演算装置200の動作を制御するための様々なプログラム及びモジュールを包含可能である。例えば、メモリ204は、通常、アプリケーション、周辺装置、及びこれらに類似したものの実行を管理するためのオペレーティングシステム221と、保護された電子コンテンツをレンダリングするためのホストアプリケーション230と、本明細書に記述されている著作権管理機能の一部又は全部を実装するためのDRMエンジン232と、を包含する。本明細書の別の部分及び「’693号」出願に記述されているように、DRMエンジン232は、制御プログラムを実行するためのバーチャルマシン、状態情報を保存するための状態データベース224、及び/又は、コンテンツの暗号化及び/又は暗号解読、ハッシュ関数及びメッセージ認証コードの演算、デジタル署名の評価、及び/又はこれらに類似したものなどの暗号動作を実行するための1つ又は複数の暗号モジュール226などの様々なその他のモジュールを有し、これらと相互運用し、及び/又は、これらを制御することが可能である。メモリ204は、通常、保護されたコンテンツ228及び関連するライセンス229をも包含し、且つ、暗号鍵、証明書、及びこれらに類似したもの(図示せず)をも包含可能である。
図3は、演算装置200よりも低い能力であり、及び/又は、低いデジタル著作権管理能力を有する演算装置300の可能な1つの実施例の更に詳細な例を示す。例えば、システム300は、セルラー電話機109a、パーソナルデジタルアシスタント109c、携帯型オーディオ又はビデオプレーヤー109b、テレビセットトップボックス、キオスク、ゲームシステム、又はこれらに類似したものを有することができる。システム300は、通常、プロセッサ302、メモリ304、ユーザインターフェイス306、着脱自在のメモリを受け入れるポート307、ネットワークインターフェイス310、USBインターフェイス311、及び前述の要素を接続するための1つ又は複数のバス312を含む。システム300の動作は、通常、メモリ304内に保存されたプログラムのガイダンスの下で動作するプロセッサ302によって制御される。メモリ304は、一般的には、高速ランダムアクセスメモリ(RAM)と、磁気ディスク及び/又はフラッシュEEPROMなどの不揮発性メモリとの両方を含む。メモリ304の一部を、システム300のその他のコンポーネントによって読み取り又は書き込みできないように制限してもよい。USBインターフェイス311及び/又はネットワークインターフェイス310は、システム300と、更に高い性能のDRM能力を具備するシステム200などのシステムと、の間に接続を提供する。一部の実施例においては、システム300は、システム300のユーザ又はその他のエンティティによる改竄から保護された処理装置303を包含することもできる。
図3に示されているように、演算装置300のメモリ304は、演算装置300の動作を制御するための様々なプログラム及びモジュールを包含可能である。例えば、メモリ304は、通常、アプリケーション及びこれらに類似したものの実行を管理するためのオペレーティングシステム321と、保護された電子コンテンツを比較的簡単なライセンス329に従ってレンダリングするためのホストアプリケーション330と、を包含する。この代わりに又はこれに加えて、一部の実施例において、システム300は、本明細書に記述されている著作権管理機能(及び、特に、テザード装置に関係した機能)の一部又はすべてを実装するための別個のDRMエンジンを包含可能である。メモリ304は、通常、保護されたコンテンツ328、(更に詳しく後述する)装置記述文書327、並びに、暗号鍵、証明書、及びこれらに類似したもの(図示せず)をも包含可能である。
本明細書に記述されているシステム及び方法は、図2及び図3に示されているものに類似した又はこれと同一の演算装置により、或いは、図2及び/又は図3に示されているコンポーネントのいくつかを処理しない演算装置及び/又は図示されてはいない他のコンポーネントを処理する演算装置を含む仮想的な他の適切な演算装置により実施可能であることを、当業者は理解する。従って、図2及び図3は、例示のために提供されており、限定を意図したものではないことを理解されたい。
本明細書における説明は、ホストシステム及びテザード装置が意図したように動作した場合にライセンスの条件が強制されることになるという仮定の下に、主には、相対的に低い能力のDRMを有する相対的に低い能力の装置及び/又は高い能力の装置(「テザード装置」と総称する)が、相対的に高い能力のホストシステムによって提供された関連するライセンス制限に従って、保護された電子コンテンツを安全に処理することを可能にするシステム及び方法に焦点を絞っている。本明細書に記述されているシステム及び方法を実際に適用する際には、セキュリティ技法の任意の適切な組み合わせを使用し、悪意のある改竄又は変更からホストシステム及びテザード装置(例えば、それぞれによって利用されているアプリケーション及びハードウェア)を保護可能である。例えば、「’693号」出願に記述されているように、例えば、暗号化、デジタル署名、デジタル証明書、メッセージ認証コード、及びこれらに類似したものなどの暗号メカニズムを利用し、DRMエンジン、ホストアプリケーション、及び/又はその他のシステムソフトウェア又はハードウェアを改竄及び/又はその他の攻撃から保護可能であり、ソフトウェア難読化、自己チェック、カスタマイズ、ウォーターマーキング、アンチデバッギング、及び/又はその他のメカニズムなどの構造的及び/又は戦術的なセキュリティ対策も同様に可能である。このような技法の代表的な例は、例えば、「Obfuscation Techniques for Enhancing Software Security」という名称の米国特許第6,668,325号、本譲受人に譲渡された第US−2005−0183072−A1号として公開された「Software Self−Defense Systems and Methods」という名称の米国特許出願第11/102,306号、第US−2008−0028474−A1号として公開された「Systems and Methods for Watermarking Software and Other Media」という名称の米国特許出願第11/737,428号、第US−2003−0023856−A1号として公開された「Software Self−Checking Systems and Methods」とい名称の米国特許出願第10/172,682号、第US−2006−0123249−A1号として公開された「Trusted Storage Systems and Methods」という名称の米国特許出願第11/338,187号、「Secure Processing Unit Systems and Methods」という名称の米国特許第7,124,170号に記載されており、このそれぞれの内容は、本引用により、その全てが本明細書に包含される。或いは、この代わりに又はこれに加えて、セキュリティを更に強化するために、物理的なセキュリティ技法(例えば、相対的にアクセス不能なメモリ、安全なプロセッサ、安全なメモリ管理ユニット、ハードウェア的に保護されたオペレーティングシステムモード、及び/又はこれらに類似したもの)を使用することも可能である。システムの制度設計及び稼働により、且つ、その内部の参加者の法的及び社会的な規則により、更に別の形態のセキュリティを提供可能である。例えば、システム内のエンティティに対して、システムの仕様及び要件の遵守に合意するように契約書によって要求することも可能であり、システム要件をエンティティが遵守していることを検証可能な証明プロセスに従うように要求することも可能であり、及び/又は、これらに類似したものを実行可能である。例えば、装置又はアプリケーションに対して、環境内の他の実装と互換性を有するように、DRMエンジンを実装するために要求可能であり、及び/又は、特定のタイプ又はレベルの改竄に対する抵抗又はその他のセキュリティを提供するように要求可能である。このような要件に関する装置又はその他のエンティティによる遵守状況を証明したデジタル証明書を発行可能であり、且つ、それらの装置又はエンティティによるシステムへの参加を許容する前に、又はアクセスの継続を許容する条件として、これらの証明書を検証可能にすることができる。このようなセキュリティ技法については、当業者に周知であり、且つ、所望の保護のレベル及び/又は手元の特定のアプリケーションの詳細に応じて、これらの技法のいくつか又は全ての任意の適切な組み合わせを使用し、又はこれらをまったく使用しないことも可能であることを理解されたい。本明細書においては、特定の実施例との関連において特定のセキュリティメカニズムについて説明しているが、これらの技法の使用が全ての実施例において必要であるわけではないことをも理解されたい。本発明との関連において使用可能であるセキュリティ技法に関する更なる非限定的な情報は、「’693号」出願に記述されている。
以下、関連するライセンス制限に従って保護された電子コンテンツをテザード装置が安全に処理することを可能にする例示用のシステム及び方法について更に詳細に説明する。好適な実施例のグループにおいては、「’693号」出願に記述されているもの(本明細書及び「’693号」出願においては、しばしば、「Octopus」DRMエンジンと呼称する)のようなDRMエンジンを利用するDRMシステムを使用している。例示用の実施例に関する以下の説明においては、しばしば、このようなDRMエンジンを参照することになるが、この説明に示されている概念は、異なるタイプのDRMシステムの状況においても容易に適用可能であることを理解されたい。
用語
本明細書においては、所定の好適な実施例の説明との関連において以下の用語が使用される。
「MSTD」とは、「Marlin Simple Tethered Device」の略号であり、ここで、「Marlin」は、「’693号」出願に記述されているDRMエンジンの実施例を利用したDRMシステムの一例である。
「MSTDホスト」とは、本明細書に更に詳細に記述されているホスト拡張を伴う「’693号」出願に記述されているものなどのDRMシステムを利用したホストシステムを意味する。
「MSTD装置」又は「テザード装置」とは、本明細書に記述されている機能の装置側の部分を実装した装置を意味する。尚、「テザード(tethered)」装置という用語が使用されてはいるが、テザード装置は、ホストに対して永久的に又は物理的に接続される必要はないことを理解されたい。その代わりに、本明細書において使用されている「テザード(tethered)」という用語は、テザード装置によって実行されるDRMがホストによって実行されるDRMから導出されたものである又はこれと関係しているという事実を意味している。
「バインディング」とは、USBマスストレージなどの特定の技術に対する特定のプロトコル要素のマッピングを意味する。
「ペアリング」とは、MSTDホストとMSTD装置のようなホストと装置の関連付けを意味する。
概要
図4は、テザードシステム402(例えば、図1のシステム109又は図3のシステム300のようなシステム)とやり取りするホストシステム400(例えば、図1のシステム108又は図2のシステム200のようなシステム)を示す。本明細書に記述されているシステム及び方法を使用することにより、ホスト400が、使用規則及びコンテンツ鍵を1つ又は複数のオリジナルのライセンス404からエクスポートすると共に、1つ又は複数のオリジナルのライセンス404によって管理されたコンテンツ406を装置402が消費することを可能にする、オリジナルのライセンスにおいてコード化された使用規則の更に限定された表現を有する、非常に簡単なデータ構造410、412を生成することができる。ホスト400は、(「’693号」出願に記述されているような)使用規則を表現するために使用されたコントロールから、装置402内における使用規則を表す簡単な有効性ステートメント(Simple Validity Statement:SVS)レコード410を生成する。ホスト400は、ホストDRMシステム内のエンティティ間の関係を表現するために使用されたリンクから、ホストシステム内に存在するノードのグラフに似たノードのグラフの内部表現を装置が構築できるようにするリンク有効性ステートメント(Link Validty Statement:LVS)レコード412を生成する。
装置記述
図3及び図4に示されているように、好適な実施例においては、それぞれのテザード装置は、装置記述文書327を具備する。この文書は、バインディングパラメータを含む装置に関する静的な情報を含む。一実施例においては、ホストは、自身がディスカバリーフェーズにおいてペアになることを所望する装置の装置記述文書を見つける。ディスカバリーフェーズを実装する方法の詳細は、通常、ホスト及び装置によってサポートされている特定のバインディングに依存することになることを理解されたい。
一実施例においては、テザード装置に関する公開情報は、サポートされている仕様及びバインディングのバージョン並びに装置を表すDRMノードオブジェクトに関する情報を含む。例えば、「’693号」出願に記述されているDRMエンジンに基づいた一実施例においては、それぞれのテザード装置は、自身を表す対応するDRMノードを具備する。このノードは、「パーソナリティ」タイプであり、且つ、サポートされたテザード装置であることを示す属性名を具備する。
図5は、一実施の形態における装置記述文書の一例を示す。図5に示されている装置記述文書は、アペンディックスAとして添付されているスキーマに示された構文を具備するXML文書である。図5に示されているように、一実施例においては、装置記述文書は、次のものを含む相対的に単純な構造を具備する。
<Personality>:テザード装置を表すDRMノード
<TransportBindings>:サポートされているトランスポートバインディング
<SecurityBindings>:サポートされているセキュリティバインディング
安全な認証チャネル
ホスト400と装置402の間の一部の通信に対して、安全な認証チャネル(Secure Authenticated Channel:SAC)を確立することが望ましい。例えば、状態変数を更新し、装置402上における信頼できる時刻を設定し、装置402上における証明書失効リストを更新し、及び/又は、これらに類似した内容を実行するために、SACを使用することができる。チャネルが確立されたら、ホストは、要求メッセージを装置に対して送信し、且つ、応答メッセージを受信することができる。SACは、機密性と、完全性と、リプレイ攻撃に対する保護と、を提供する。一実施例においては、一部のバインディングにおいて、装置が、基礎となる通信チャネルを開始できるとしても、ホストは、要求/応答交換を論理的に開始することができる。装置は、ホストに対する応答者である。好適な実施例においては、更に詳しく後述するように、安全な認証チャネルをUSB接続上に実装可能である。一般に、これは、使用されていないSCSI(Small Computer System Interface)コマンドを利用して装置とホストの間の通信を可能にすることにより実現可能である。
図6は、ホスト400と装置402の間にSAC(例えば、USB上におけるトランスポートレイヤセキュリティ(TLS)SAC)を確立するためのプロセスを示すフローチャートである。図6に示されているように、ユーザは、装置をホストのUSBポートに接続する(602)。次いで、ホストは、装置のUSBマスストレージインターフェイスを通じてファイルシステムをマウントし、且つ、装置記述文書を見つけて解析する(604)。ホストは、装置記述をチェックし、且つ、自身が正しい拡張SCSIコマンドを装置に対して送信することができるように、装置が互換性のあるUSBマスストレージバインディングを実装するか否かを決定する(606)。装置が互換性のあるUSBマスストレージバインディングを実装する場合には、ホストは、トランスポートレイヤセキュリティセッションを確立する(608)。この結果、ホストは、SAC上において装置と通信することができる(610)。
図6に示されているブロック606、608及び610の一実施例においては、ホストは、GET_DESCRIPTOR USB要求を装置に対して送信することにより、特定のディスクリプタ(例えば、更に詳しく後述するストリングディスクリプタ255)を要求する。ディスクリプタが特定のMSTD USBディスクリプタとマッチングした場合に、ホストは、装置がMSTDコマンド用に使用するSCSI CBDオペレーションコードに関する知識を得る。ホストは、TLSレコードを交換することにより、装置との間にTLSセッションをセットアップし、且つ、ホストは、MSTD要求/応答レコードを交換することにより、装置と通信する。
ペアリング
一実施例においては、一意のホスト及び一意の装置のそれぞれのペアがペアリングを構成する。一実施例においては、それぞれのペアリングは、ペアリングIDを具備し、これは、ホストのパーソナリティノードID、オクテット0、及び装置のノードIDを連結したもののダイジェストの128個の最下位ビットに等しい128ビット値である(例えば、paringId=H−128(hostId|0|deviceId)である)。それぞれのペアリングは、関連するペアリング鍵をも具備する。ペアリング用のペアリング鍵は、ホストによって選択される。ホストと装置が通信する時期とは無関係にそれぞれのペアリングに同一のペアリング鍵を演算するという条件の下に、ホストは、任意の鍵をペアリングのために選択可能である。例えば、ホストは、ホストシークレットと連結されたpairingIdのダイジェストを演算することにより、ペアリング鍵を演算可能である。
図7は、ホストとテザード装置の間の新しいペアリングを確立するプロセスを示すフローチャートであり、これは、特定のホスト−装置ペアについてペアリングレコードを見つけることができない場合に実行される。図7に示されているように、ホスト及び装置は、(例えば、図6との関係において前述したように)安全な認証チャネルを確立する(702)。次に、ホストは、ペアリング鍵を装置に対して送信する(704)。テザード装置は、(例えば、テザード装置にのみ既知であるシークレット値によってコード化された鍵のような)コード化されたペアリング鍵により、これに応答する(706)。次いで、コード化されたペアリング鍵を、将来使用するためにペアリングレコード内に保存するが(708)、この例については、更に詳しく後述する。
ノード及びリンク
一実施例においては、装置のDRMシステム(及び/又は、なんらかのDRM機能を実装する、装置上において稼働するプレーヤーアプリケーションなどのアプリケーション)は、「’693号」出願に記述されているノード及びリンクオブジェクトに類似したノード及びリンクを使用している。「’693号」出願に記述されているように、リンクを使用し、装置を表すノード及び任意の数のその他のノードとの間に経路を確立する。
一実施例においては、ノードは、128ビットのノード識別子を使用して参照される。「’693号」出願に記述されているタイプのノードに対応した(装置自体を表すノードなどの)ノードの場合には、UTF−8−encoded URLである対応する完全なノードIDのSHA−1ダイジェスト値の最初の128ビットを取得することにより、短縮されたノード識別子を得ることが可能である。この変換を「HashId」と呼ぶこととする。
「’693号」出願に更に詳しく記述されているように、リンクは、「from」ノードと「to」ノードの間の経路を表す。リンクのコレクションは、グラフを表し、この場合に、それぞれのリンクは、2つのノードの間の有向の頂点(directed vertice)である。ノードNは、装置の独自のノードとノードNの間に経路を生成するリンクの組が存在する場合に、到達可能(reachable)であると表現される。
ホストからテザード装置へのライセンスのエクスポート
図8に示されているように、ホストが、テザード装置がファイルを使用することを可能にするために、保護されたファイルをテザード装置に送信することを所望するとき、ホストは、まず、ファイルと関連する1つ又は複数のライセンスを見つけ、且つ、このような動作がライセンスの条件によって許容されているか否かを決定する(802)。次いで、ホストは、ライセンスの簡略化されたバージョン(例えば、SVS)と、必要に応じて、関連するリンクの簡略化されたバージョン(例えば、LVSレコード)と、を生成し(804)、且つ、これらの簡略化されたライセンス及びリンクをテザード装置に対して送信する(806)。この結果、更に詳しく後述するように、装置は、これらを使用し、保護されたコンテンツに対するアクセスを管理する。保護されたコンテンツ自体は、ライセンス及びリンクとは無関係に、(例えば、ホスト又はなんらかのその他のエンティティから)装置に対して送信可能である。複数のコンテンツ片を管理するために所定のライセンス(並びに、これから導出されたSVS及びLVSレコード)を使用することができる。
図9は、「’693号」出願に記述されているようなDRMシステムの状況において、ライセンスをホストからテザード装置(例えば、低い能力の装置及び/又は相対的にプリミティブな形態のDRMを実装する装置)にエクスポートするプロセスの更に詳細なフローチャートである。図9を参照すると、ホストがファイルのライセンスを見つけると、ホストは、入力としてテザード装置のノード情報を提供することにより、ターゲットシステムをテザード装置のIDに設定した状態において、ライセンスの「Export」メソッドを実行する(902)。次いで、ホストは、保護されたファイルのコンテンツ鍵を含むSVSを生成し(903)、テザード装置のペアリング鍵を使用して暗号化する(904)。このSVSは、コントロールによって返された拡張状態ブロック(ESB)を使用して生成された条件の組(906)と、ペアリング鍵を使用して生成されたSVSペイロードの署名(908)と、をも含む。SVS内に含まれている条件の組が到達可能要件を含む場合には(即ち、ブロック910の「Yes」選択肢)、ホストは、適切なLVSレコードを生成する(912)。一実施例においては、これには、装置のノードと関連のターゲットノード(例えば、ドメインノード)の間に経路を確立することができるToLVSメソッドをリンクオブジェクトに対して起動するステップが伴う。更に詳しく後述するように、一実施例においては、LVSレコードは、コントロールから返されたESBから生成された条件と、ペアリング鍵を使用して生成されたLVSペイロードの署名と、を含む。
SVS及びLVSレコードの生成
既に説明したように、一実施例においては、ホストが、保護されたコンテンツを装置に対してエクスポートすることを所望する際には、ホストは、(例えば、「’693号」出願に記述されているタイプのライセンスなどの)適切なコンテンツライセンスのExport操作を使用し、そのコンテンツライセンスに対応したSVS及びLVSレコードを生成する。好適な実施例においては、SVSは、対応する保護されたコンテンツ片を利用するために満足されなければならないいくつかの条件を包含可能である。一部の実施例においては、これらの条件は、(a)コンテンツが使用される時刻(例えば、特定の時刻の前ではない、及び/又は、特定の時刻の後ではない)、(b)ターゲット装置によってサポートされている又はその上部においてアクティブである出力のタイプ(例えば、レンダリングされたコンテンツを複写するための特定のインターフェイスがアクティブであるのか否か)、(c)様々なノードの到達可能性(例えば、ドメインノード、加入ノード、及び/又はこれらに類似したもの)、及び/又は、(d)様々な状態の値(例えば、クラブにおけるメンバーシップを示す状態や特定の動作の以前の性能など)に関係する条件を包含可能である。他の実施例において、条件のその他の組を使用可能であることを理解されたい。
一実施例においては、ホストは、次の動作パラメータをExport操作に対する引数として提供する。
Figure 0005351158
Exportが許可された場合には(例えば、それ自体が特定のターゲット装置に対してエクスポートされることをライセンスが許容している場合)、ライセンスのコントロールから返されるESBは、次の情報を含むことになる。
Figure 0005351158
条件コンストラクタは、ValueListタイプであり、リスト内のそれぞれの値は、パラメータタイプである。一実施例においては、次のパラメータが定義されている。
Figure 0005351158
ホストは、エクスポート対象のライセンスに対応するSVSレコードの「validity」フィールドを生成するために条件コンストラクタを使用する。「validity」フィールドは、条件レコードである。
ホストは、条件コンストラクタのフィールドを使用し、条件レコードを次のように生成する。
条件レコードの「notBefore」及び「notAfter」フィールドをコンストラクタの「NotBefore」及び「NotAfter」パラメータの値に設定する。
コンストラクタが「states」パラメータを具備する場合、条件レコードの「states」フィールドは、StateIdBlock値のリストから得られたタプルのリストである。そうでない場合、条件レコードの「states」フィールドは、空のリストである。
コンストラクタが「MustReachNode」パラメータを具備する場合、条件レコードの「nodes」フィールドは、HashId関数を使用してリスト内のそれぞれのストリングを128ビットの識別子に変換することによりこのパラメータの値から生成された128ビットのノード識別子のリストである。そうでない場合、条件レコードの「nodes」フィールドは、空のリストである。
コンストラクタが「OutputControl」パラメータを具備する場合、outputContorlValue及びoutputControlMaskフィールドは、パラメータから得られる。そうでない場合、outputControlValue及びoutputControlMaskフィールドは、0に設定される。
LVSは、リンクオブジェクトから構築される。(例えば、無条件に有効であるために)コントロールを具備しないリンクの場合には、対応するLVSは、制約レコードを具備し、この場合には、notBeforeフィールドは、0に設定され、notAfterフィールドは、2^32−1に設定され、且つ、nodes及びstatesフィールドは、空のリストである。
コントロールを具備するリンク(例えば、その有効性が特定の条件に依存しているリンク)の場合には、ホストは、リンクオブジェクトのコントロール内の特定のメソッドを呼び出すことにより、対応するLVSレコードのフィールドを取得する。例示用の一実施例においては、メソッド名は、Control.Link.Constraint.ToLVSであり、次の特徴を具備する。
入力:なし
出力:スタック上においてResultCode及びStatusBlockPointerを返す。
ResultCodeは、整数値である。結果値は、ルーチンが稼働することができなかった場合にはゼロであり、エラーが発生した場合には負のエラーコードである。成功ResultCode(0)は、制約が満足されたことを意味しないことに留意されたい。これは、ルーチンがエラーを伴うことなしに稼動することができたことを意味するのみである。制約が満足されるか否かを示すものは、StatusBlockである。
StatusBlockPointerは、(例えば、「’693号」出願に記述されているように)標準ExtendedStatusBlockのアドレスである。
一実施例においては、ResultCodeがゼロでない場合には、DRMエンジンは、そのリンクを表すためにLVSレコードを生成することができないと見なす。
LVSへの変換を許容する場合には、コントロールは、次のパラメータを利用し、ESB内においてLVS記述を返す。
Figure 0005351158
LVSコンストラクタは、ValueListタイプであり、好ましくは、前述のSVSコンストラクタと同一の構造を具備する。
図10は、DRMライセンス1006及びリンクオブジェクト1008a、1008bからのSVS1002及びLVSレコード1004a、1004bの生成を示す。図10に示されている擬似コード例においては、ライセンス1006は、ライセンスが対応しているコンテンツに対して装置がアクセス可能となるためには、特定のノード(例えば、コンテンツプロバイダのサービスへのユーザの加入と関連したノード「sub」)が到達可能でなければならないという要件を含んでいる。ホストは、テザード装置から加入ノードへの経路を確立するリンクの組1008a、1008bを具備してはいるが、リンク1008bは、リンク1008bに含まれた又はこれによって参照された制御コードによって決定される特定の日付までしか有効ではない。ライセンスのExportメソッドは、テザード装置がメータリングをサポートしている場合には、満了日を含まないSVSを生成可能であるが、そうでない場合、満了日を包含しなければならないことを示している。この代わりに又はこれに加えて、ライセンスは、エクスポートの許可を付与する際に、ターゲット装置が特定の出力制御条件を満足すること(例えば、特定タイプの出力が、無効になる、無効になることができる、又は存在しない)などのその他の条件を強制することも可能である。ターゲット装置へのエクスポートに対する条件が満足された場合には、SVS1002及びLSVレコード1004a、1004bが生成される。SVS1002は、暗号化されたコンテンツ暗号解読鍵(E(k))と、(例えば、そのHashIDを使用して)ノードsubを識別する条件レコードと、デジタル署名と、を含む。この例においては、装置がメータリングをサポートしていると仮定されており、従って、SVSには、時間制限が課せられてはいない。SVS1002がノード「sub」を識別しているため、LVSレコード1004a、1004bは、リンク1008a、1008b内のLVSコンストラクタを使用して生成される。LVSレコード1004aは、ユーザノードulが装置のノードから到達可能であることを示しており、装置がユーザのドメインに属することを示す状態オブジェクトを装置が具備する場合にのみリンクが有効であることを示す条件レコードをも含む。この例においては、LVS内におけるこの条件の包含は、リンク1008a内のLVSコンストラクタによって管理される。同様に、LVSレコード1004bは、加入ノードがユーザノードulから到達可能であるが、現在の日付が指定された終了日付よりも前である場合にのみリンクが有効であることを示している。従って、この例においては、ターゲット装置は、所望のノードに対する経路を確立可能であり、それぞれのLVSレコードが有効であると仮定した場合には(例えば、加入に対するリンクが満了しておらず、且つ、装置が、依然としてユーザのドメインの一部であるため)、SVS1002内に含まれている条件は、満足される。好適な実施例においては、SVSは、ターゲット装置上のデータベース(svs.db)内に保存され、所与のコンテンツ片の適切なSVSの検出を促進する情報を含む別のデータベース(svsloc.db)も維持される。
クライアント再生
簡略化されたライセンス(例えば、前述の1つ又は複数のLVS及び/又はSVS)を受け取る際に、クライアントは、簡略化されたラインセスと関係するコンテンツの再生を開始することができる。
図11は、保護されたファイル内に含まれる保護されたコンテンツ片を再生(又は、そうでない場合、レンダリング)するためにクライアントによって実行される例示用の一連の動作を示す。図11に示されているように、装置は、ファイルを開き(1102)、且つ、1つ又は複数のコンテンツIDを取得するためにファイルを解析する。説明のために、ファイルは、2つのストリーム(CID0、CID1)を有するものと仮定する。装置は、svsloc.dbを使用し、それらのコンテンツIDのSVSのSVS IDを見つけ、次いで、svs.dbを使用し、そのSVS IDのSVSレコードを見つける(1104)。次いで、装置は、SVSを解析し、SVSの署名を検証する(1106)。一実施例においては、これには、SVS署名からSVSペアリングidを取得するステップと、pairing.dbを使用し、このSVSのペアリングレコードを見つけるステップと、このペアリングのペアリング鍵値(PK0)を演算するステップと、このペアリング鍵を使用してSVS署名を検証するステップと、を伴う。
再度図11を参照すれば、装置は、次いで、(例えば、SVSの「validity」フィールドをチェックし、且つ、その中に表現されている状態を評価することによって)SVSが有効であるか否かを決定し、SVSが有効である場合には(即ち、ブロック1108の「Yes」選択肢)、それぞれのコンテンツIDの暗号化されたコンテンツ鍵(即ち、EK0、EK1)を取得し、これらの鍵をPK0によって暗号解読してコンテンツ鍵値(K0、K1)を取得し(1110)、且つ、OutputControlフィールドに従って出力制御を設定する。この段階で、装置は、コンテンツに対するアクセスを提供する準備が整う(1112)。
図12は、コンテンツ片に対するアクセス又はコンテンツ片の他の使用がSVSによって許容されるか否かを決定するプロセスを示すフローチャートである。図12に示されているように、これには、SVS内に含まれている様々な条件が満足されるか否かをチェックするステップが伴う。図12に示されている例においては、これには、現在時刻をnotBefore及びnotAfterフィールドと比較するステップと(1202)、現在時刻が許容された範囲外である場合に、ファイルへのアクセスを拒絶するステップと、が伴う。また、「states」リスト内に一覧表示されている状態をチェックしてそれらが満了しているか否かを確認し(1204)、それらが満了している場合には、アクセスを拒絶する。更には、SVSの「nodes」リスト内のすべてのノードが到達可能であるか否かに関する決定を実行する(1206)。これには、例えば、リスト内のそれぞれのノードについて、(i)そのノードと装置のノードの間のすべての経路を決定するためにlvs.db内のLVSレコードを使用するステップと、(ii)それぞれの経路について、(a)経路のLVSレコードの署名をチェックするステップと、(b)それぞれのLVSレコードの条件フィールドがその経路が有効であることを示していることを検証するステップと、を実行するステップが伴う可能性がある。すべての署名が検証され、且つ、すべてのリンクが有効である場合には、ノードは、到達可能である。SVSによって規定されている条件が満足された場合に、ファイルへのアクセス又はファイルの他の使用の要求を認可することができる(1208)。
以下、「’693号」出願に記述されているDRMエンジンを利用した例示用の実施例において使用される様々なデータ構造、プロトコル、表記規則、及び実装固有のパラメータに関する詳細について説明する。尚、これらの詳細は、例示のために提供されるものであって、限定を意図したものではなく、且つ、本発明の実施例は、これらの詳細なプロトコル、データ構造、表記規則、及びその他の実装固有のパラメータの一部のみを利用することも可能であり、或いは、これらをまったく利用しないことも可能であることを理解されたい。
データ構造
一実施の形態においては、以下のデータ構造、用語、及び表記規則が使用されている。
データタイプ
本明細書において使用されるアブストラクトタイプ表記は、次の構文を具備する。
<name>: <type>、ここで、<type>は、単一値の場合には、<value−type>(size−in−bits)の形態であり、値のアレイの場合には、<value−type>(size−in−bits)[array−size]の形態であり、複合データ構造の場合には、{...}の形態である。
<type>[n]という表記は、<type>タイプの<n>個の要素のアレイを意味する。<type>[]という表記は、<type>タイプの可変数の個数の要素を有するアレイを意味する。
以下の様々な例示用の実施例の説明においては、整数値は、ビッグエンディアンバイト順(これは、ネットワークバイト順とも呼称される)を使用してコード化されているものと仮定され、すべてのビットベクトルは、ビッグエンディアンバイト順において8ビットバイトの倍数となる。又、特記していない限り、時刻及び日付の値は、1970年1月1日の00:00:00UTC以降に経過した分の数を表す32ビットの符号なし整数として表現されるUTC日付となる。これらの表記規則は、例示を目的とし、且つ、本発明の明瞭な説明を円滑に実行するために使用されるものであり、本発明は、これらの例示用のエンコーディングに限定されるものではないことを理解されたい。任意の適切なエンコーディング表記規則並びに時刻及び日付のフォーマットを使用可能である。
アトム(Atom)
アトムとは、いくつかの特定のデータ構造のベースとして機能する簡単なカプセル化データ構造である。アトムは、サイズ、タイプ、及びペイロードを具備する。一実施例においては、アトムのサイズは、ビッグエンディアンバイト順において32ビットの符号なし整数としてコード化され、且つ、サイズ及びタイプをコード化するために使用される8バイトのヘッダを含むアトムの全体サイズを表している。タイプは、ビッグエンディアンバイト順における32ビットの識別子である。表記規則により、アトムタイプの32ビット識別子は、4文字ワードとして表記され、ここで、それぞれの文字の8ビットASCIIコードは、識別子の対応する8ビットバイトの部分である。例えば、識別子の値0x61746f6d(16進)は、「a」のASCIIコードが0x61であるため、「atom」と表記される。
Figure 0005351158
EncryptedData
EncryptedDataレコードは、暗号化鍵及びアルゴリズムに関する暗号化されたデータ及び情報を含む。
Figure 0005351158
ここで、「algorithmId」は、データを暗号化するために使用された暗号化アルゴリズムの識別子である。一実施例においては、以下のアルゴリズム識別子が定義されている。
Figure 0005351158
「KeyInfo」は、データを暗号解読するために必要な鍵を識別する。
「cipherDataSize」は、暗号化されたデータのサイズ(単位:バイト)である。
「cipherData」は、暗号化されたデータである。
「KeyInfo」レコードは、鍵を一意に識別するのに必要な情報を含む。
「keyIdType」は、keyId識別子が参照するものを規定する。一実施例においては、少なくとも次のタイプが定義されている。
Figure 0005351158
「keyed」は、一意の鍵識別子である。
Signature
Signatureレコードは、なんらかのデータペイロードの署名と、署名鍵及びアルゴリズムに関する情報と、を含む。
Figure 0005351158
ここで、「algorithmId」は、データに署名するために使用された署名アルゴリズムの識別子である。一実施例においては、少なくとも次のアルゴリズム識別子が定義されている。
Figure 0005351158
「keyInfo」は、データに署名するために使用された鍵を識別する。
「signatureDataSize」は、署名データのサイズ(単位:バイト)である。
「signatureData」は、署名データである。
Conditionsレコード
Conditionsレコードは、基本的な有効性条件を表す。
Figure 0005351158
このレコード内のそれぞれのフィールドは、個別のサブ条件である。条件は、そのすべてのサブ条件が満足された場合にのみ満足される。
ここで、「notBefore」は、現在の日付が指定された日付以降である場合にのみ満足されるサブ条件である。
「notAfter」は、現在の日付が指定された日付以前である場合にのみ満足されるサブ条件である。
「nodes」は、ゼロ個以上のノードIDのリストである。この例示用の実施例においては、それぞれのノードIDは、128ビットの識別子である。このサブ条件は、一覧表示されたIDを有するすべてのノードが到達可能である場合にのみ満足される。
「states」は、ゼロ個以上の状態IDのリストである。それぞれの状態IDは、(gid,vid)というタプルであり、ここで、gid及びvidは、いずれも、128ビットの識別子である。状態IDは、状態オブジェクトを一意に識別する。このサブ条件は、リスト内のすべての状態オブジェクトが存在し、且つ、満了していない場合にのみ満足される。
SVSレコード
SVSレコードは、Simple Validity Statementを表しており、コンテンツIDと関連する1つ又は複数の鍵に適用される使用規則を表現するために使用される。
一実施例においては、SVSレコードは、次のデータ構造を具備する。
Figure 0005351158
ここで、「svsId」は、SVSレコードの一意の識別子である。
「keyCount」は、keysアレイ内の鍵の数である。
「keys」は、1つ又は複数のEncryptedKeyレコードのアレイである。それぞれのEncryptedKeyレコードは、ペアリング鍵によって暗号化されたコンテンツID及び対応するコンテンツ鍵を含む。
「usageRule」は、SVS内において搬送される鍵の使用を管理する規則の記述である。一実施例においては、鍵を使用するためには、有効性条件が満足されなければならないと共に、出力制御要件も実現されなければならない。
「outuptControlValue」は、ゼロ個以上の出力制御フィールドの値を示すビットフィールドである。一実施例においては、フィールドは、次のようにコード化されている。
Figure 0005351158
「outputControlFlags」は、outputControlValueにおいて通知されるフィールドを示すフラグのビットベクトルである。フィールドのビットフラグが1に設定されているときには、それは、outputControlValue内のその対応するフィールドが通知されることを示す。一実施例においては、通知されないoutputControlValueのフィールドのビットは、0に設定されている。
Figure 0005351158
「signature」は、レコードのペイロード部分の署名である。
LVSレコード
LVSレコードは、Link Validity Statementを表している。リンクは、「from」ノードと「to」ノードの間の経路を表す。
一実施例においては、LVSレコードは、次のデータ構造から構成されている。
Figure 0005351158
ここで、「from」は、ノード識別子である。
「to」は、ノード識別子である。
「validity」は、このLVSが有効と見なされるために満足されなければならない制約を決定する条件レコードである。
「signature」は、レコードのペイロード部分の署名である。
FileLocatorレコード
FileLocatorレコードは、SVSを、そのSVSが生成される元となったファイルの名前と関連付けている。
一実施例においては、FileLocatorレコードは、次のデータ構造を具備する。
Figure 0005351158
ここで、「svsId」は、SVS IDである。
「fileNameSize」は、fileName内の文字の数である。
「filename」は、そのファイルが配置されているファイルシステムのルートとの関係におけるファイルの名前である。
SvsLocatorレコード
SvsLocatorレコードは、コンテンツIDを、そのコンテンツIDを有するEncryptedKeyを含むSVSと関連付けている。
一実施例においては、SvsLocatorレコードは、次のデータ構造を具備する。
Figure 0005351158
ここで、「contentId」は、コンテンツIDである。
「svsId」は、SVS IDである。
Dataアトム
Dataアトムは、一般的なデータペイロードをコード化するために使用される。
Figure 0005351158
ここで、「payload」は、ゼロ個以上のペイロードバイトを意味する。
ペアリングレコード
ペアリングレコードは、予め共有されたペアリング鍵を装置及びホストが演算することを可能にする情報を含む。ペアリング鍵は、コンテンツ鍵を暗号化すると共にその他のレコードに署名するために使用される。
Figure 0005351158
ホストが装置に遭遇し、且つ、このホスト−装置ペアのペアリングレコードが存在しないときには、ホストは、ペアリングレコード内に保存するペイロードを装置から入手し、そのペアリングレコードをペアリングレコードデータベース内に挿入する。ペアリングレコード内のペアリング鍵は、装置によってコード化される(通常は、これは、その他のエンティティとは絶対に共有されない装置秘密鍵によって暗号化されることを意味する)。装置が単一の装置秘密鍵によって暗号化することによってすべてのペアリング鍵をコード化することを選択した場合には、装置は、非対称暗号操作を実行することなしに、すべてのペアリング鍵の値を演算可能である。
装置と通信する際に、ホストは、SetPairingKey要求の応答として、現在のペアリングのEncodedPairingKeyの値を入手する。
Requestレコード
Requestレコードは、ホストから装置への要求をコード化している。
Figure 0005351158
ここで、「commandId」は、実行対象のコマンドの識別子であり、「commandParameters」は、コマンドのパラメータを含むゼロ個以上のアトムを意味する。
一実施例においては、次のコマンドが定義されている。
Figure 0005351158
Responseレコード
Responseレコードは、装置からホストへの応答をコード化している。
Figure 0005351158
ここで、「status」は、この応答が対応する要求が成功したか又は失敗したかを示す状態コードであり、「responseElements」は、応答データを含むゼロ個以上のアトムを意味する。アトムは、応答状態と関係するテキスト情報を含むInfoアトムを包含可能である。一実施例においては、次の状態コードが定義されている。
Figure 0005351158
メッセージ
一実施例においては、ホスト及び装置は、要求/応答パターンを使用して通信を行う。要求を送信するエンティティは、要求者であり、要求を受信すると共に応答を返送するエンティティは、応答者である。この文脈においては、通常、ホストが要求者であり、装置が応答者である。要求者によって送信されたそれぞれの要求について、応答者は、応答を返送するが、この応答は、要求が成功裏に受信及び処理されたことを通知する正常な応答であるか、又はエラーの発生を通知する応答であってよい。
一実施例においては、応答者は、自身が理解できないコマンドを有する要求を受信した場合には、ERROR_NOT_UNDERSTOOD状態コードによって応答する。応答者は、自身が理解するがサポートしてはいないコマンドを有する要求を受信した場合には、ERROR_NOT_SUPPORTED状態コードによって応答する。応答者は、要求のフォーマット内にエラーを検出した場合には、ERROR_PROTOCOL_FAILUREによって応答する。
要求者は、自身が理解できない状態コードを有する応答を受信した場合には、それを障害状態として取り扱い、その要求が成功しなかったものと仮定する。要求者は、自身が理解するが必須の応答要素に加えて自身が理解しないいくつかの応答要素を含む状態コードを有する応答を受信した場合には、それらの余分な応答要素を無視する。
セキュリティデータの更新
ホストは、装置のセキュリティデータの問合せ又は更新を実行することができる。セキュリティデータは、信頼できる時刻の値を含む。
信頼できる時刻の値は、1970年1月1日の00:00:00UTC以降に経過した秒の数として表現されるUTC時刻値である。
次のコマンドが、この目的のために使用される。
GetTrustedTime
要求:
commandId: CMD_GET_TRUSTED TIME
パラメータ:なし
応答:
Figure 0005351158
ここで、「time」は、応答者の信頼できる時刻の値である。
説明:装置の信頼できる時刻を取得する。
setTrustedTime
要求:
commandId: CMD_SET_TRUSTED_TIME
パラメータ:次のデータを含む単一のDataアトム
Figure 0005351158
ここで、「time」は、応答者がその信頼できる時刻を更新しようとする変更後の時刻値である。
応答:
responseElements:なし
説明:装置の信頼できる時刻を設定する。
getCrlNumber
要求:
commandId:CMD_GET_CRL_NUMBER
パラメータ:なし
応答:
responseElements:次のデータを含む単一のDataアトム
Figure 0005351158
crl_number:例えば、「Internet X.509 Public Key Infrastructure − Certificate and Certificate Revocation List (CRL) Profile」(IETF RFC3280、2002年4月)に規定されているASN.1 INTEGERとしてコード化されたCRL数を表すバイトアレイである。
説明:装置の現在のCRL数を取得する。
SetCrlNumber
要求:
commandId: CMD_SET_CRL_NUMBER
パラメータ:次のデータを含む単一のDataアトム
Figure 0005351158
ここで、crl_numberは、RFC3280に規定されているASN.1 INTEGERとしてコード化されたCRL数を表すバイトアレイである。
応答:
responseElements:なし
説明:
装置のCRL数を設定する。一実施例においては、装置は、そのCRL数の現在値よりも小さいCRL数を拒絶しなければならない(且つ、FAILUREを返さなければならない)。
図13は、テザード装置のセキュリティデータを更新するためにホストによって実行可能な例示用のプロセスを示す。図示のように、ホストは、装置との間に安全な認証チャネルを確立する(1302)。次いで、ホストは、例えば、SetTrustedTimeコマンドを使用することによって装置の時刻を更新し(1304)、装置が最新のCRLを具備することをチェックすることができる(1306)。装置が最新のCRLを具備していない場合には(即ち、ブロック1306の「No」選択肢)、ホストは、(例えば、crl.bin内において)装置のCRLを更新することができる(1308)。
装置の状態
装置は、状態オブジェクトの組を管理する。これらのオブジェクトは、好ましくは、改竄することができないように、且つ、システムの仕様によって許容されたもの以外の状態オブジェクトを生成、削除、又は変更することができないように管理される。
一実施例においては、それぞれの状態は、グループID、値ID、値、及び任意選択の満了日付を具備する。値は、32ビットの符号なし整数である。
一実施例においては、装置は、状態オブジェクトの存在の有無をチェックすることしか必要としない。装置は、ホスト要求によって指示されない限り、状態オブジェクトを生成又な削除せず、且つ、装置は、ホスト要求によって指示されない限り、状態オブジェクト値を判読又は変更しない。但し、装置は、状態オブジェクトの満了日付を利用し、それらの値の保存と関連した内部リソースを解放することができる。例えば、満了した状態オブジェクトは、装置によってガベージコレクト可能である。
ホストは、コマンド要求を装置に送信することにより、装置内に保存されている状態オブジェクトの値を生成、削除、判読、及び変更可能である。
一実施例においては、状態管理のために次のコマンドが使用されている。
GetStateObjectById
要求:
commandId: CMD_GET_STATE_OBJECT_BY_ID
パラメータ:次のデータを含む単一のDataアトム
Figure 0005351158
応答:
responseElements:要求されたgid及びvidを有するオブジェクトを具備する場合には、装置は、次のデータを含む単一のDataアトムを返す。
Figure 0005351158
説明:装置によって管理されている状態オブジェクトの値及び満了日付を取得する。要求されたgid及びvidを有する状態オブジェクトを具備していない場合には、装置は、ERROR_NO_SUCH_ITEMに設定された状態フィールドを有する応答を返す。
GetStateObjectByIndex
要求:
commandId:CMD_GET_STATE_OBJECT_BY_INDEX
パラメータ:次のデータを含む単一のDataアトム
Figure 0005351158
ここで、「gid」は、要求された状態オブジェクトのグループIDである。
「index」は、要求されたgidを有する状態オブジェクトの中の1つのものを選択する0に基づいたインデックスである。
応答:
responseElements:次のデータを含む単一のDataアトム
Figure 0005351158
説明:装置によって管理されている状態オブジェクトの値Id、値、及び満了日付を取得する。装置は、要求されたgid及びindexを有する状態オブジェクトを具備していない場合には、ERROR_NO_SUCH_ITEMに設定された状態フィールドを有する応答を返す。
GetStateObjectCount
要求:
commandId: CMD_GET_STATE_OBJECT_COUNT
パラメータ:次のデータを含む単一のData atom
Figure 0005351158
応答:
responseElements:次のデータを含む単一のDataアトム
Figure 0005351158
説明:指定されたグループIDを有する状態オブジェクトの数を返す。装置は、要求されたgidを有する状態オブジェクトを具備していない場合には、ERROR_NO_SUCH_ITEMに設定された状態フィールドを有する応答を返す。
SetStateObject
要求:
commandId:CMD_SET_STATE_OBJECT
パラメータ:次のデータを含む単一のDataアトム
Figure 0005351158
応答:
responseElements:なし
DeleteStateObject
要求:
commandId:CMD_DEL_STATE_OBJECT
パラメータ:次のデータを含む単一のDataアトム
Figure 0005351158
応答:
responseElements:なし
ホストから状態オブジェクトへのアクセス
装置状態オブジェクトには、ホスト上において稼働しているコントロールから、ホストオブジェクトインターフェイスを通じてアクセス可能である。例えば、一実施例においては、グループID<gid>及び値ID<vid>を有する状態オブジェクトには、/Marlin/MSTD/<gid>/<vid>というパスによってアクセス可能である。
ホストオブジェクトの値は、状態値及び満了日付をコード化した8バイトの複合データ構造である(例えば、32ビットの状態値と、これに後続する1970年1月1日の00:00:00以降に経過した分の数によって表現された32ビットのUTC満了日付である)。
一実施例においては、ホストオブジェクトツリーの中のこの部分に対するアクセス制御は、次のように実行されている。
コントロールは、そのアイデンティティ(そのアイデンティティは、そのコードに署名した鍵にバインドされたすべてのプリンシパル名のコレクションである)内の名前の中の1つのものがグループIDとマッチングした場合にのみ、状態値ホストオブジェクトを読み取り及び書き込み可能であり、ここで、マッチングは、プリンシパル名のSHA−1ダイジェスト値の128個の最下位ビットを128ビットのグループIDと比較することによって実行可能である。
ペアリング
SetPairingKey
要求:
commandId:CMD_SET_PAIRING_KEY
パラメータ:次のデータを有する単一のDataアトム
Figure 0005351158
応答:
responseElements:装置は、次のデータを有するDataアトムを応答要素内に包含可能である。
Figure 0005351158
ここで、「encodedParingKey」は、ペアリングレコード内に保存することができるようにコード化されたペアリング鍵である。一実施例においては、コード化されたペアリング鍵は、装置のみがコード化されたペアリング鍵を使用してペアリング鍵の値を演算可能であることを保証するように暗号化されている。
TLSバインディング
このバインディングは、TLSを使用してホストから装置へのSACを確立する方法を規定している。
一実施例においては、ホスト及び装置は、それぞれ、RSA秘密鍵と、対応する公開鍵を保持するX.509証明書と、を具備する。ホスト及び装置は、AES cipher suite用に構成されたTLS通信を確立する。
TLSセッションが確立されると、ホスト及び装置は、通信ループに入り、そこで、ホスト又は装置がセッションを終了する時点まで、ホストは、要求アトムを送信し、且つ、応答アトムを受信する。
以下、この安全な認証チャネル(SAC)用のTLSバインディングの例示用の実装について更に詳細に説明する。この例に規定されているバインディングは、Dierks他による「The TLS Protocol Version 1.0」(IETF RFC2246)の1つのプロファイルであり、MSTDホスト及び装置の間の最大限の相互運用性及び実装の容易性のために最適化された選択肢の非常に限られた組を有する。
バインディング記述
一実施例においては、このセキュリティバインディングをサポートする装置は、その旨をその装置記述文書内において告知しなければならない。一実施例においては、このセキュリティバインディングに対応する<Binding>要素は、次のように定義されている。
type Urn:marlin:tethered: 1−0:tls
一実施例においては、唯一の<Option>要素が存在しなければならない。
Figure 0005351158
TLSプロファイル
図14は、ホスト1400とテザード装置1402の間のTLSの実装を示しており、且つ、ホスト1400と装置1402の間の通信を階層化する方法をも示す。
図14に示されているように、最上位のアプリケーションレイヤ1404は、前述のタイプの1つ又は複数のメッセージから構成されている。最下位のトランスポートレイヤ1406は、所与の配備のために選択されたトランスポートバインディングに依存している。以下においては、USBマスストレージに基づいた例示用のトランスポートバインディングについて説明する。中間レイヤ1408は、セキュリティ及び認証を通信に付加するものであり、これは、TLSのプロファイルとして定義されている。一実施例においては、ホストは、TLSクライアントに対してマッピングされ、且つ、装置は、TLSサーバーに対してマッピングされる。
一実施例においては、このTLSのプロファイルにおいて使用される唯一のcipher suiteは、Chownによる「Advanced Encryption Standard (AES) Ciphersuites for Transport Layer Security (TLS)」(IETF RFC3268、2002年6月)に定義されているTLS_RSA_WITH_AES_128_CBC_SHAである。この選択されたciphersuiteは、認証及び鍵交換アルゴリズムがRSAであることを意味している。好適な実施例においては、Temporary RSA鍵は使用されない。又、これは、TLSサーバー(即ち、テザード装置)のX.509証明書が、鍵使用フィールド内に設定されたkeyEncipherment及びdigitalSignatureビットの両方を具備することをも意味している。
ハンドシェーク
前述のTLSのプロファイル内において、TLSサーバー(即ち、テザード装置)とTLSクライアント(即ち、ホスト)の両方が認証される。図15は、このプロファイルのハンドシェークプロトコルを示している。一部の実施例においては、短縮されたハンドシェークを使用可能である。
メッセージ
このプロファイル内においては、いくつかのフィールドが次のメッセージ内において特定されている。一実施例においては、特記されない限り、以下に示されている値が必須である。
ClientHello
− client_version:{3,1}に設定される(TLS 1.0)。
− cipher_suites:1つの要素がTLS_RSA_WITH_AES_128_CBC_SHAに設定される。
− compression_methods:1つの要素が0(CompressionMethod.null)に設定される。
ServeHello
− server_version:{3,1}に設定される(TLS 1.0)。
− cipher_suite:TLS_RSA_WITH_AES_128_CBC_SHAに設定される。
− compression_method:0(CompressionMethod.null)に設定される。
ServerCertificate
− certificate_list:装置のRSA鍵のX.509証明書チェーンを含む。
CertificateRequest
− certificate_types:1つの要素がrsa_sign(1)に設定される。
− certificate_authorities:トラストアンカーが固定されている場合には、空である。
ServerHelloDone
このプロファイル内においては、更に規定されるものはない。
ClienetCertificate
− certificate_list:ホストのRSA鍵のX.509証明書チェーンを含む。
ClientKeyExchange
− exchange_keys:RSA encryptedPreMasterSecretに設定される。
CertificateVerify
SignatureAlgorithmは、RSAである。
鍵の使用
一実施例においては、テザード装置の鍵証明書は、設定されたdigitalSignature及びkeyEnciphermentビットを具備しなければならず、且つ、ホストの鍵証明書は、設定されたdigitalSignatureビットを具備しなければならない。
USBマスストレージのバインディング
既に説明したように、一実施例においては、新しい技法を使用し、拡張SCSIコマンドを使用することにより、USBインターフェイス上において、ホストと装置の間において、前述したようなメッセージの通信を円滑に実行する。この通信の形態をサポートする装置(即ち、拡張SCSIコマンドを処理するために設計された装置)は、そのUSBディスクリプタの中の1つのものの内部に、この旨の表示を含む。図16に示されているように、このようにテザード装置と通信することを所望するホストは、まず、標準的なUSBディスカバリー/検査プロセス(1602)を実行し、装置のUSBディスクリプタを入手することになる。次いで、ホストは、それらのUSBディスクリプタを解析し、それらが、この形態の通信が装置によってサポートされているという表示を含んでいるか否かを確認し(1604)、含んでいる場合には、装置がサポートしている1つ又は複数の拡張SCSIコマンドを確認する(1606)。次いで、ホスト及び装置は、その1つ又は複数の拡張SCSIコマンドを使用し、通信を開始することができる(1608)。以下、例示用の実装について更に詳細に説明する。
一実施例においては、USBマスストレージのバインディングを使用し、装置のコンテンツストレージをそのホストに対して開示する主な方法として(例えば、「Universal Serial Bus Mass Storage Class Specification Overview Revision 1.2」(2003年6月23日)に記述されている)USBマスストレージプロファイルを実装する装置に対してシステムを具体的に適用する方法を定義している。
装置は、従来のファイルシステムに対するアクセスを提供するUSBマスストレージインターフェイスを開示するものと仮定されている。テザード装置は、ホストとの通信を実行している際には、ストレージにアクセス不能であるものと仮定されている。
装置のディスカバリー
一実施例においては、このバインディングを実装するテザード装置は、GET_DESCRIPTOR要求に対して応答することにより、特殊なUSBディスクリプタを提供してバインディングのバージョン及びパラメータを通知する必要があり、この場合に、ディスクリプタタイプは、STRING(0x03)であり、且つ、言語IDは、0である。一実施例においては、これは、255であることを要し、装置が、インデックス255においてUSBディスクリプタを提供することができない場合には、これは、1〜255の中の任意のインデックスであってよく、255に最も近い利用可能なインデックスを選択するべきである。
一実施例においては、このディスクリプタのストリング値は、「urn:marlin:mstd:usb−msc:1.0:<scsi−cdb−op>」であり、ここで、<scsi−cdb−op>は、2文字の16進数としてコード化された後述するSCSIオペレーションコードである。例えば、装置によって選択されたSCSIコマンドIDが0x20である場合には、MSTD USBディスクリプタストリングは、urn:marlin:mstd:usb−msc:1.0:20である。
バインディングの記述
一実施例においては、このトランスポートバインディングをサポートする装置は、その旨をその装置記述文書内において告知しなければならない。一実施例においては、このトンラスポートバインディングに対応する<Binding>要素は、次のように定義されている。
Figure 0005351158
一実施例においては、このバインディングのために、<Option>要素が定義されていない。
SCSIコマンド
一実施例においては、ホスト及び装置は、SCSIコマンドを使用し、マスストレージSCSIコマンドを交換するために使用されるものと同一のメカニズムを介して通信する。このバインディングにおいて使用されるSCSIコマンドは、Command Descriptor Block(CDB)の観点において規定されている。その他の目的に使用されていないオペレーションコードが選択される。一実施例においては、このオペテーションコードの値は、0x20であるが、任意のその他の未使用のオペレーションコードであってもよい。
一実施例においては、CDBは、長さが10バイトであり、次のフィールドを有する。
Figure 0005351158
ここで、「MSTD COMMAND」は、MSTD_CMD_READ(0x01)、MSTD_CMD_WRITE(0x02)、及びMSTD_CMD_RESET(0x03)という3つのMSTDコマンドの中の1つである。
MSTD_CMD_READ
MSTD_CDM_READコマンドは、装置からのデータのバッファを読み取るためにホストによって使用される。このコマンドの場合には、DATA SIZEフィールドは、リターンバッファ用にホストによって割り当てられたバッファのサイズに設定され、RETURN_SIZE_OFFSETは、バッファ内のオフセットに設定され、この場合に、装置は、返されたバイトの数に等しい32ビットビッグエンディアン値を書き込むことになる。
MSTD_CMD_WRITE
MSTD_CMD_WRITEコマンドは、データのバッファを装置に書き込むためにホストによって使用される。このコマンドの場合には、DATA SIZEフィールドは、ホストによって書き込まれたペイロードのサイズに設定され、RETURN_SIZE_OFFSETフィールドは、0に設定される。
MSTD_CMD_RESET
MSTD_CMD_RESETコマンドは、装置との通信状態をリセットするためにホストによって使用される。このコマンドの場合には、DATA_SIZE及びRETURN_SIZE_OFFSETフィールドは、0に設定される。
コマンドのシーケンス
ホストと装置の間の通信プロトコルは、TLSレコード及びMSTD要求/応答ペアのシーケンスから構成される。ホストから装置に送信されるそれぞれのレコードごとに、ホストは、1つ又は複数のMSTD_CMD_WRITEコマンドを発行する(レコードが単一のMSTD_CMD_WRITEコマンド内に書き込み不可能である場合には、レコードは、複数のMSTD_CMD_WRITEコマンドに分割される)。装置から受け取るためにホストが予想しているそれぞれのレコードについて、ホストは、完全なレコードが装置から読み取られる時点まで、MSTD_CMD_READコマンドを発行する。
(不良な形態のレコード、タイムアウト、又はその他の問題などの)通信エラーが発生した場合には、ホストは、MSTD_CMD_RESETコマンドを発行し、通信をリセット可能である。一実施例においては、リセットの後に、通信は、ホスト及び装置がなんらのレコードをも未だ交換していなかったかのように再開される。
装置記述文書
一実施例においては、装置記述は、ファイルシステム上の装置記述文書内に保存されている。一実施例においては、この文書のファイル名は固定されている(例えば、/.marlin/device.xmlであり、ここで、「/」は、ファイルシステムのルートを表し、.marlinは、ファイルシステムのルートにおけるディレクトリである。)
ルートディレクトリ
ルートディレクトリは、ホストによって書き込まれると共に装置によって読み取られるファイルを含むディレクトリである。ルートディレクトリは、装置記述文書が配置されるディレクトリのサブディレクトリであることが推奨される。一実施例においては、次のファイルがルートディレクトリ内に配置されている。
svs.db:このファイルは、それぞれのsvsIdフィールドによってインデックス付けされたSVSエントリのデータベースを含む。
lvs.db:このファイルは、それぞれのfromフィールドによってインデックス付けされたLVSレコードのデータベースを含む。
svsloc.db:このファイルは、それぞれのcontentIdフィールドによってインデックス付けされたsvsLocatorエントリのデータベースを含む。
fileloc.db:このファイルは、それぞれのsvsIdフィールドによってインデックス付けされたFileLocatorレコードのデータベースを含む。
pairing.db:このファイルは、それぞれのpairingIdフィールドによってインデックス付けされたペアリングレコードのデータベースを含む。
crl.bin:このファイルは、現在のCRLを含む。
リンクディレクトリ
一実施例においては、ホストは、この装置のノードとユーザノードの間の関係を表現するリンクオブジェクトを具備していない異なるホストとのペアリングを円滑に実行するために、リンクオブジェクトをリンクディレクトリ内に保存可能である。
一実施例においては、このディレクトリは、「links」と命名され、ルートディレクトリ内に配置されている。
データベースフォーマット
一実施例においては、このバインディング内において使用されるデータベースファイルは、非常に単純である。それらは、装置上におけるコードの複雑な解析を必要とすることなしに、レコードに対するインデックスによる高速アクセスを提供するために設計されている。
一実施例においては、ファイルは、2^n個のエントリを有するハッシュテーブルと、セルの1つ又は複数のリンクされたリストと、から構成される。セルは、ペイロード(バイトアレイ)と、チェーニングポインタ(別のセルに対するファイルオフセット、又はリスト内の最後のセルの場合には、ゼロ)と、含む。鍵がそれぞれのペイロードに対応している。所定のペイロードの鍵の値は、ペイロードタイプに依存する。一実施例においては、それぞれの鍵値ごとに、nビットのハッシュ値が演算される。この値は、鍵値のSHA−1ダイジェスト値のn個の最下位ビットに等しい。ハッシュテーブルインデックス内のそれぞれのエントリは、2^n個のnビット鍵ハッシュ値の中の1つのものに対応し、その鍵ハッシュを有するセルが存在しない場合には、ゼロを含み、そのハッシュを有する鍵を有するセルが存在する場合には、そのセルの32ビットファイルオフセットを含む。セルは、1つにリンク可能である。ファイルは、テーブルの記述を含むヘッダ(例えば、データベース識別子や「n」の値など)によって始まっている。
図17は、データベースファイルのレイアウトの一例を示す。図17に示されているように、一実施例においては、データベースファイルは、「dbhd」(データベースヘッダ)アトムを有し、これに、「dbco」(セルオフセットテーブル)アトムが後続し、これに、1つ又は複数のその他のトップレベルアトムが後続している。これらのその他のトップレベルアトムは、「cell」アトム、「free」アトム、又は任意のその他のアトムを包含可能である。一実施例においては、データベースファイルパーサーによって理解されないすべてのアトムは無視される。「dbhd」アトムは、ファイル内の最初のアトムであり、ファイルの第1バイトから始まっている。「dbco」アトムは、ファイルの第2アトムであり、「dbhd」アトムの後の第1バイトから始まっている。その他のアトムは、任意の順序で出現可能である。
DatabaseHeaderアトムの例示用の構造を以下に示す。
Figure 0005351158
ここで、「databaseId」は、データベースの識別子である。一実施例においては、次の識別子が定義されている。
Figure 0005351158
CellOffsetTableアトムの例示用の構造を次に示す。
Figure 0005351158
Cellアトムの例示用の構造を次に示す。
Figure 0005351158
Free アトムの例示用の構造が次に示される。
Figure 0005351158
ドメイン
テザード装置は、その他の装置をドメイン内において管理可能である方法に似た方法によって管理可能である。図18は、その一例を示す。図18に示されているように、テザード装置をドメインに参加させるには、ホストアプリケーションは、DRMシステムのリンク取得プロトコルを使用し、テザード装置のパーソナリティノードとユーザノードの間にリンクを生成するように、ドメインマネージャに対して要求する(1802)。これに応答し、エージェントがホストに送信される(1804)。エージェントは、稼働した際に、ホストオブジェクトインターフェイスを介してテザード装置内の状態オブジェクトを設定する(1806)。ホストは、新しく取得されたリンクオブジェクトから、テザード装置用のLVSオブジェクトを生成する(1808)。このLVSは、条件を使用し、LVSの有効性を、エージェントによって設定された状態オブジェクトの存在に依存するようにさせる。ドメインを離脱するためには、ホストは、ドメインマネージャとの間において登録解除動作を実行することになり、この結果、このドメインと関連する状態オブジェクトを削除することになるエージェントが送信される。テザード装置用のSVSに変換可能なドメインライセンスが、その有効性条件の中の1つのものとして、ドメインのノードIDの到達可能性をコード化する。到達可能性は、装置がその独自のノードIDからドメインノードIDへのLVSを具備しているか否かと、設定された対応する状態オブジェクトと、に依存する。
アペンディックスA
次の内容は、例示用の装置記述文書の構文を記述するXMLスキーマの一例である。
Figure 0005351158
アペンディックスB
図19は、例示用のメッセージのカプセル化を示す。一実施例においては、USB上においてTLSバインディングを使用する際に、ホスト要求の例が図示のようにカプセル化される。
以上の内容は、明瞭のために多少詳細に説明したが、添付の請求項の範囲内において、特定の変更又は変形を実施可能であることは明らかである。本明細書に記述されているプロセス及び装置の両方を実装するための多数の代替方法が存在することに留意されたい。従って、本実施例は、例示を目的としたものであって、限定を意図したものではないと解釈することを要するものであり、本発明は、本明細書に付与された詳細に限定されるものではなく、添付の請求項の範囲及びその均等物内において変更可能である。

Claims (3)

  1. 電子コンテンツ片に対するアクセス又は前記電子コンテンツ片の他の使用を管理する際に使用されるライセンスを、ホスト装置からターゲット装置にエクスポートする方法であって、
    前記電子コンテンツ片を暗号解読するよう構成された第1暗号鍵を暗号化するためにペアリング鍵を使用し、
    前記電子コンテンツ片に対するアクセスの認可に関係する1つ又は複数の条件を取得するために、前記ライセンスに含まれた制御プログラムを実行し、
    前記暗号化された第1暗号鍵及び前記1つ又は複数の条件の表示を含むデータ構造を生成し、
    前記ペアリング鍵を使用して前記データ構造の少なくとも一部にデジタル署名し、
    前記データ構造を前記ターゲット装置に対して送信すること、
    を有することを特徴とする方法。
  2. 前記1つ又は複数の条件が少なくとも1つのノードを参照するか否かについての決定を行い、
    前記決定の結果に基づいて、1つ又は複数のリンク有効性ステートメントレコードを条件付きで生成し、前記1つ又は複数のリンク有効性ステートメントレコードのそれぞれは、少なくとも1つのノードが少なくとも別のノードから到達可能であるか否かの表示を提供すること、
    を更に有する請求項1記載の方法。
  3. 少なくとも第1リンク有効性ステートメントレコードは、前記第1リンク有効性ステートメントレコードが有効になるために満足されなければならない条件の表示を含む請求項2記載の方法。
JP2010518224A 2007-07-23 2008-07-23 テザード装置システム及び方法 Active JP5351158B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US95134907P 2007-07-23 2007-07-23
US60/951,349 2007-07-23
PCT/US2008/009002 WO2009014734A2 (en) 2007-07-23 2008-07-23 Tethered device systems and methods

Publications (2)

Publication Number Publication Date
JP2010534451A JP2010534451A (ja) 2010-11-04
JP5351158B2 true JP5351158B2 (ja) 2013-11-27

Family

ID=39817065

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010518224A Active JP5351158B2 (ja) 2007-07-23 2008-07-23 テザード装置システム及び方法

Country Status (4)

Country Link
US (4) US8850195B2 (ja)
EP (1) EP2181413A2 (ja)
JP (1) JP5351158B2 (ja)
WO (1) WO2009014734A2 (ja)

Families Citing this family (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2009014734A2 (en) 2007-07-23 2009-01-29 Intertrust Technologies Corporation Tethered device systems and methods
US8341702B2 (en) * 2007-11-01 2012-12-25 Bridgewater Systems Corp. Methods for authenticating and authorizing a mobile device using tunneled extensible authentication protocol
US8347359B2 (en) 2007-12-28 2013-01-01 Bruce Backa Encryption sentinel system and method
KR20100000334A (ko) * 2008-06-24 2010-01-06 삼성전자주식회사 디바이스 인터페이싱 방법 및 장치
US8929303B2 (en) * 2009-04-06 2015-01-06 Samsung Electronics Co., Ltd. Control and data channels for advanced relay operation
US8914903B1 (en) 2009-06-03 2014-12-16 Amdocs Software System Limited System, method, and computer program for validating receipt of digital content by a client device
JP5641493B2 (ja) * 2010-05-18 2014-12-17 日本電気株式会社 公開鍵証明書検証処理システム
US9323915B2 (en) 2010-12-08 2016-04-26 Verizon Patent And Licensing Inc. Extended security for wireless device handset authentication
US8903075B2 (en) * 2011-01-31 2014-12-02 Cox Communications, Inc. Customer/subscriber/user identification via utilized service node/point
US20130002532A1 (en) * 2011-07-01 2013-01-03 Nokia Corporation Method, apparatus, and computer program product for shared synchronous viewing of content
US9092427B2 (en) * 2012-06-08 2015-07-28 Lockheed Martin Corporation Dynamic trust session
KR102398221B1 (ko) * 2013-10-30 2022-05-16 삼성전자주식회사 무선 직접통신 네트워크에서 비대칭 키를 사용하여 아이덴티티를 검증하기 위한 방법 및 장치
US10135805B2 (en) 2013-10-31 2018-11-20 Cellco Partnership Connected authentication device using mobile single sign on credentials
US9325687B2 (en) 2013-10-31 2016-04-26 Cellco Partnership Remote authentication using mobile single sign on credentials
US9628482B2 (en) * 2013-10-31 2017-04-18 Cellco Partnership Mobile based login via wireless credential transfer
US10181122B2 (en) 2013-10-31 2019-01-15 Cellco Partnership Mobile authentication for web payments using single sign on credentials
RU2653984C2 (ru) * 2013-12-05 2018-05-15 Закрытое акционерное общество "Лаборатория Касперского" Способ и система ассоциирования агентов управления устройством с пользователем устройства
WO2015180108A1 (zh) * 2014-05-29 2015-12-03 华为技术有限公司 媒体内容的共享方法及装置
US10021217B2 (en) * 2015-08-24 2018-07-10 Dell Products L.P. Protocol independent way to selectively restrict write-access for redirected USB mass storage devices
EP3291504B1 (en) * 2016-08-30 2020-03-11 Wacom Co., Ltd. Authentication and secure transmission of data between signature devices and host computers using transport layer security
US10873852B1 (en) 2020-04-10 2020-12-22 Avila Technology, LLC POOFster: a secure mobile text message and object sharing application, system, and method for same
US11151229B1 (en) 2020-04-10 2021-10-19 Avila Technology, LLC Secure messaging service with digital rights management using blockchain technology
AU2021267896B2 (en) 2020-05-07 2023-10-05 NantG Mobile, LLC Location-based content sharing via tethering
CN115544491B (zh) * 2022-10-10 2023-12-26 北京神州安付科技股份有限公司 一种具有自检功能的密码机

Family Cites Families (30)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
HU216231B (hu) * 1994-01-13 1999-05-28 Certco, Llc Eljárás titkosított kommunikáció létrehozására
US7904722B2 (en) * 1994-07-19 2011-03-08 Certco, Llc Method for securely using digital signatures in a commercial cryptographic system
JP3864401B2 (ja) * 1997-04-23 2006-12-27 ソニー株式会社 認証システム、電子機器、認証方法、および記録媒体
US7073063B2 (en) * 1999-03-27 2006-07-04 Microsoft Corporation Binding a digital license to a portable device or the like in a digital rights management (DRM) system and checking out/checking in the digital license to/from the portable device or the like
US6763241B2 (en) * 2000-04-14 2004-07-13 Varitek Industries, Inc. Data communications synchronization using GPS receiver
US7257227B2 (en) * 2000-10-26 2007-08-14 General Instrument Corporation System for denying access to content generated by a compromised off line encryption device and for conveying cryptographic keys from multiple conditional access systems
US7065507B2 (en) * 2001-03-26 2006-06-20 Microsoft Corporation Supervised license acquisition in a digital rights management system on a computing device
WO2002093849A2 (en) * 2001-05-16 2002-11-21 Kasten Chase Applied Research Limited System for secure electronic information transmission
JP3818504B2 (ja) * 2002-04-15 2006-09-06 ソニー株式会社 情報処理装置および方法、並びにプログラム
US7376709B1 (en) * 2002-05-09 2008-05-20 Proquest Method for creating durable web-enabled uniform resource locator links
US7152243B2 (en) * 2002-06-27 2006-12-19 Microsoft Corporation Providing a secure hardware identifier (HWID) for use in connection with digital rights management (DRM) system
US7281273B2 (en) * 2002-06-28 2007-10-09 Microsoft Corporation Protecting content on medium from unfettered distribution
US7891007B2 (en) * 2002-06-28 2011-02-15 Microsoft Corporation Systems and methods for issuing usage licenses for digital content and services
US7549060B2 (en) * 2002-06-28 2009-06-16 Microsoft Corporation Using a rights template to obtain a signed rights label (SRL) for digital content in a digital rights management system
TW200421811A (en) * 2002-09-24 2004-10-16 Nagracard Sa Multiple pairing control method
US20060021065A1 (en) 2002-10-22 2006-01-26 Kamperman Franciscus Lucas A J Method and device for authorizing content operations
CN103001923B (zh) * 2003-06-05 2016-03-30 英特特拉斯特技术公司 用于控制对在计算机系统上的电子内容片段的访问的方法和系统
EP1680902A1 (en) * 2003-11-07 2006-07-19 Matsushita Electric Industrial Co., Ltd. System and method for time-limited digital content access
KR101254209B1 (ko) * 2004-03-22 2013-04-23 삼성전자주식회사 디바이스와 휴대용 저장장치간에 권리 객체를 이동,복사하는 방법 및 장치
JP2006139747A (ja) * 2004-08-30 2006-06-01 Kddi Corp 通信システムおよび安全性保証装置
US20070283418A1 (en) * 2005-02-01 2007-12-06 Florida Atlantic University System, apparatus, and methods for performing state-based authentication
JP4760101B2 (ja) * 2005-04-07 2011-08-31 ソニー株式会社 コンテンツ提供システム,コンテンツ再生装置,プログラム,およびコンテンツ再生方法
TWI277894B (en) * 2005-08-29 2007-04-01 Inventec Appliances Corp Handwriting hot-key system and method thereof
CA2626244A1 (en) * 2005-10-18 2007-04-26 Intertrust Technologies Corporation Methods for evaluating licenses containing control programs by a drm engine
KR100856404B1 (ko) * 2006-01-03 2008-09-04 삼성전자주식회사 컨텐트를 임포트하는 방법 및 장치
JP2008028832A (ja) * 2006-07-24 2008-02-07 Funai Electric Co Ltd クライアント・サーバシステム
DE102006038599B3 (de) * 2006-08-17 2008-04-17 Nokia Siemens Networks Gmbh & Co.Kg Verfahren zur Wiederaktivierung einer sicheren Kommunikationsverbindung
US20080080711A1 (en) * 2006-09-28 2008-04-03 Syphermedia International, Inc. Dual conditional access module architecture and method and apparatus for controlling same
US8520850B2 (en) * 2006-10-20 2013-08-27 Time Warner Cable Enterprises Llc Downloadable security and protection methods and apparatus
WO2009014734A2 (en) 2007-07-23 2009-01-29 Intertrust Technologies Corporation Tethered device systems and methods

Also Published As

Publication number Publication date
US20150067335A1 (en) 2015-03-05
US20160343097A1 (en) 2016-11-24
US8850195B2 (en) 2014-09-30
US20090037732A1 (en) 2009-02-05
WO2009014734A2 (en) 2009-01-29
JP2010534451A (ja) 2010-11-04
US9426133B2 (en) 2016-08-23
WO2009014734A3 (en) 2009-04-30
US10078873B2 (en) 2018-09-18
EP2181413A2 (en) 2010-05-05
US20190266686A1 (en) 2019-08-29

Similar Documents

Publication Publication Date Title
JP5351158B2 (ja) テザード装置システム及び方法
US9118462B2 (en) Content sharing systems and methods
US9626667B2 (en) Digital rights management engine systems and methods
US8688583B2 (en) Digital rights management engine systems and methods
EP2109981B1 (en) Methods, systems, and apparatus for fragmented file sharing
US20160224768A1 (en) Digital Rights Management Engine Systems and Methods
US7958377B2 (en) Secure access system and method
EP1817687B1 (en) Apparatus and method for supporting content exchange between different drm domains
US20100257370A1 (en) Apparatus And Method for Supporting Content Exchange Between Different DRM Domains
KR20100022953A (ko) 컨텐츠 라이센스의 휴대용 저장 장치에의 바인딩

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20110713

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130305

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20130604

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20130611

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130627

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: 20130723

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20130822

R150 Certificate of patent or registration of utility model

Ref document number: 5351158

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250