JP2011523481A - Access authentication for software development kit for peripheral devices - Google Patents
Access authentication for software development kit for peripheral devices Download PDFInfo
- Publication number
- JP2011523481A JP2011523481A JP2011510489A JP2011510489A JP2011523481A JP 2011523481 A JP2011523481 A JP 2011523481A JP 2011510489 A JP2011510489 A JP 2011510489A JP 2011510489 A JP2011510489 A JP 2011510489A JP 2011523481 A JP2011523481 A JP 2011523481A
- Authority
- JP
- Japan
- Prior art keywords
- software entity
- processors
- code
- content
- software
- 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.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/70—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
- G06F21/78—Protecting 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/79—Protecting 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/62—Protecting access to data via a platform, e.g. using keys or access control rules
- G06F21/6218—Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
- G06F21/6281—Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database at program execution time, where the protection is within the operating system
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Software Systems (AREA)
- Databases & Information Systems (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Storage Device Security (AREA)
Abstract
周辺装置のためのコードセットがホスト装置にインストールされる。コードセットは、ホスト装置から周辺装置へのアクセスを制御するために使用される。コードセットはまた、ホスト装置上のソフトウェアエンティティが周辺装置にアクセスするために使用する1つ以上のコードサブセットを含む。ホスト装置上のソフトウェアエンティティは、ホスト装置にインストールされたコードセットにより首尾よく認証されなければならない。ソフトウェアエンティティが首尾よく認証されると、ソフトウェアエンティティに専用の1つ以上のコードサブセットにアクセスできるようになる。ソフトウェアエンティティは1つ以上のコードサブセットを使って周辺装置にアクセスできる。 A code set for the peripheral device is installed on the host device. The code set is used to control access from the host device to the peripheral device. The code set also includes one or more code subsets used by software entities on the host device to access the peripheral device. Software entities on the host device must be successfully authenticated by a code set installed on the host device. If the software entity is successfully authenticated, it will have access to one or more code subsets dedicated to the software entity. A software entity can access peripheral devices using one or more code subsets.
Description
本発明は、セキュア周辺装置の技術に関する。 The present invention relates to a technology of a secure peripheral device.
技術の進歩にともない、セキュア周辺装置に対する不正アクセスの防止が大きな問題となっている。メモリ装置はセキュア周辺装置の一例である。セキュアコンテンツを収容するメモリ装置を不正アクセスから保護しなければならない。
半導体メモリが普及し、様々な電子装置で使用されている。例えば、携帯電話機、デジタルカメラ、モバイルメディアプレーヤ、個人用携帯情報端末(PDA)、モバイル計算装置、非モバイル計算装置等には不揮発性半導体メモリが使われている。
著作権物の保護を中心に、不揮発性半導体メモリ装置に格納されたコンテンツの保護が重要な機能となっている。例えば、ユーザは、音楽等著作権で保護されたコンテンツを電子装置を通じて購入できる。コンテンツの所有者は通常、コンテンツの利用を購入者に限定し、コンテンツの購入に使ったアプリケーション等の電子装置上の正規のアプリケーションでコンテンツを再生することを要求することができる。
As technology advances, preventing unauthorized access to secure peripheral devices has become a major problem. The memory device is an example of a secure peripheral device. Memory devices that contain secure content must be protected from unauthorized access.
Semiconductor memories are widespread and are used in various electronic devices. For example, non-volatile semiconductor memories are used in cellular phones, digital cameras, mobile media players, personal digital assistants (PDAs), mobile computing devices, non-mobile computing devices, and the like.
The protection of the content stored in the nonvolatile semiconductor memory device is an important function, focusing on the protection of copyrighted materials. For example, a user can purchase content protected by copyright, such as music, through an electronic device. The owner of the content can usually limit the use of the content to the purchaser and request that the content be played by a legitimate application on the electronic device, such as the application used to purchase the content.
セキュアコンテンツの不正使用を防ぐために情報を安全に格納するのに暗号化等の様々な保護手法を用いることができる。暗号化されたコンテンツへのアクセスを試みる装置上のアプリケーションは、暗号鍵を使ってコンテンツを復号化しなければコンテンツを読み取ることができない。暗号化されたコンテンツへのアクセスを許可されたアプリケーションは、コンテンツを復号化するための暗号鍵を所持する。無許可のアプリケーションは暗号化されたコンテンツにアクセスできても、適切な暗号鍵がなければコンテンツを読み取ることはできない。しかし、暗号鍵を入手すれば無許可のアプリケーションでも保護されたコンテンツを読み取ることができてしまう。そこで、電子装置上の無許可アプリケーションがセキュア周辺装置上の保護コンテンツにアクセスするのを防ぐ簡素で安全で改良された方法が求められている。 Various protection methods such as encryption can be used to securely store information in order to prevent unauthorized use of secure content. An application on the device attempting to access the encrypted content cannot read the content unless the content is decrypted using the encryption key. An application permitted to access the encrypted content has an encryption key for decrypting the content. An unauthorized application can access the encrypted content, but cannot read the content without an appropriate encryption key. However, if the encryption key is obtained, the protected content can be read even by an unauthorized application. Therefore, there is a need for a simple, safe and improved method for preventing unauthorized applications on electronic devices from accessing protected content on secure peripheral devices.
ここで開示する技術は、セキュア周辺装置に対する不正アクセスを防ぐための、アプリケーション、アプリケーションランチャ、その他のソフトウェアエンティティを認証することに関係する。ソフトウェアエンティティは、ホスト装置上のコードセットと認証方式により認証される。このコードセットは周辺装置に関連するものであり、周辺装置に対するアクセスを制御するためにホスト装置にインストールされる。コードセットはまた、ホスト装置上のソフトウェアエンティティが周辺装置に係るタスクを実行するにあたって使用するコードを含む。ソフトウェアエンティティが首尾よく認証されると、ソフトウェアエンティティが周辺装置に係るタスクを実行するためのコードが使用可能となる。 The techniques disclosed herein relate to authenticating applications, application launchers, and other software entities to prevent unauthorized access to secure peripheral devices. The software entity is authenticated by a code set on the host device and an authentication method. This code set is associated with the peripheral device and is installed on the host device to control access to the peripheral device. The code set also includes code used by software entities on the host device to perform tasks related to the peripheral device. If the software entity is successfully authenticated, code is available for the software entity to perform tasks related to the peripheral device.
一実施形態のプロセスは、セキュア周辺装置に係るコードセットをホスト装置にインストールすることを含む。このコードセットは、装置ドライバ用コード等のホスト装置上で周辺装置を操作するためのコードを含む。コードセットは、ホスト装置上で第1のソフトウェアエンティティを認証するために使用される。このプロセスはさらに、第1のソフトウェアエンティティが首尾よく認証される場合には、第1のソフトウェアエンティティに対してコードセットの一部分を提示することを含む。この提示することが、第1のソフトウェアエンティティが周辺装置と通信するためのコードを提示することをも含む。 The process of an embodiment includes installing a code set associated with the secure peripheral device on the host device. This code set includes codes for operating peripheral devices on the host device such as device driver codes. The code set is used to authenticate the first software entity on the host device. The process further includes presenting a portion of the code set to the first software entity if the first software entity is successfully authenticated. This presenting also includes presenting code for the first software entity to communicate with the peripheral device.
認証プロセスの一実施形態は、セキュア周辺装置に係る第1のタスク要求をホスト装置上の第1のソフトウェアエンティティのユーザから受信することを含む。周辺装置のためのホスト装置にインストールされたコードセットには、第1のソフトウェアエンティティから資格証明が送信される。このプロセスはさらに、資格証明が有効である場合には、コードセットの一部分にアクセスすることを含む。このアクセスすることは、第1のソフトウェアエンティティに係るコードにアクセスすることをも含み、これにより第1のソフトウェアエンティティは第1のタスクを実行できる。コードセットは、ホスト装置上の1つ以上のソフトウェアエンティティが周辺装置に係るタスクを実行するためのコードを含む。第1のソフトウェアエンティティは、コードセットの一部分を使用して第1のタスクに係る情報を送信する。 One embodiment of the authentication process includes receiving a first task request for a secure peripheral device from a user of a first software entity on a host device. Credentials are sent from the first software entity to the code set installed on the host device for the peripheral device. The process further includes accessing a portion of the code set if the credentials are valid. This accessing also includes accessing code associated with the first software entity so that the first software entity can perform the first task. The code set includes code for one or more software entities on the host device to perform tasks related to the peripheral device. The first software entity transmits information related to the first task using a portion of the code set.
認証プロセスの一実施形態は、第1のソフトウェアエンティティが周辺装置へのアクセスを要求するときに、ホスト装置上の第1のソフトウェアエンティティへ1つ以上の認証オプションを送信することを含む。1つ以上の認証オプションは、周辺装置のためのホスト装置にインストールされたコードセットから第1のソフトウェアエンティティへ送信される。コードセットは、ホスト装置上の1つ以上のソフトウェアエンティティに係るコードを含む。コードセットは第1のソフトウェアエンティティから資格証明を受信する。資格証明は、1つ以上の認証オプションのいずれか1つに関連する。このプロセスはさらに、資格証明が有効である場合には、第1のソフトウェアエンティティに係る第1のコードに対してアクセスを提供することを含む。第1のコードはコードセットの一部分であり、周辺装置にアクセスする。 One embodiment of the authentication process includes sending one or more authentication options to the first software entity on the host device when the first software entity requests access to the peripheral device. One or more authentication options are transmitted from the code set installed on the host device for the peripheral device to the first software entity. The code set includes code relating to one or more software entities on the host device. The code set receives credentials from the first software entity. The credentials are associated with any one of one or more authentication options. The process further includes providing access to the first code associated with the first software entity if the credentials are valid. The first code is part of the code set and accesses the peripheral device.
一実施形態は、セキュア周辺装置と、周辺装置と通信するホスト装置とを含む。ホスト装置は、周辺装置へのアクセスを制御する1つ以上のプロセッサを含む。1つ以上のプロセッサはまた、周辺装置のためのホスト装置にインストールされたコードセットへのアクセスを制御することでコードセットを管理する。このコードセットは、周辺装置と、ホスト装置上の1つ以上のソフトウェアエンティティとの通信を可能にする。1つ以上のプロセッサは、ホスト装置上の第1のソフトウェアエンティティからの資格証明をベリファイし、資格証明が有効ならば、第1のソフトウェアエンティティに対してコードセットのコードのサブセットを提示する。このコードのサブセットは第1のソフトウェアエンティティに関連する。 One embodiment includes a secure peripheral device and a host device in communication with the peripheral device. The host device includes one or more processors that control access to peripheral devices. The one or more processors also manage code sets by controlling access to code sets installed on the host device for peripheral devices. This code set allows communication between the peripheral device and one or more software entities on the host device. The one or more processors verify the credentials from the first software entity on the host device and, if the credentials are valid, present a subset of the code set code to the first software entity. This subset of code is associated with the first software entity.
一実施形態は、暗号エンジンと、暗号エンジンと通信するホスト装置上の1つ以上のプロセッサとを含む。この暗号エンジンは、ホスト装置上の第1のソフトウェアエンティティからの資格証明をベリファイする。1つ以上のプロセッサはセキュア周辺装置に対するアクセスを傍受する。1つ以上のプロセッサはまた、第1のソフトウェアエンティティから資格証明を受信し、資格証明が有効ならば、第1のソフトウェアエンティティに係るコードを提示する。1つ以上のプロセッサがこのコードを実行すると、第1のソフトウェアエンティティは周辺装置にアクセスできる。 One embodiment includes a cryptographic engine and one or more processors on a host device in communication with the cryptographic engine. The cryptographic engine verifies credentials from the first software entity on the host device. One or more processors intercept access to the secure peripheral device. The one or more processors also receive credentials from the first software entity and, if the credentials are valid, present code related to the first software entity. When one or more processors execute this code, the first software entity can access the peripheral device.
一実施形態は、プロセッサ読み込み可能コードを有する1つ以上のプロセッサ読み込み可能媒体を含み、このプロセッサ読み込み可能コードが1つ以上のプロセッサに方法を実行させる。この方法は、周辺装置へのアクセスを第1のソフトウェアエンティティが要求するときに、ホスト装置上の第1のソフトウェアエンティティへ1つ以上の認証オプションを送信することを含む。この送信することは、周辺装置のためのホスト装置にインストールされたコードセットから第1のソフトウェアエンティティへ1つ以上の認証オプションを送信することをも含み、コードセットは、ホスト装置上の1つ以上のソフトウェアエンティティに係るコードを含む。コードセットは、第1のソフトウェアから資格証明を受信する。資格証明は、1つ以上の認証オプションのいずれか1つに関連する。方法はさらに、資格証明が有効である場合には、第1のソフトウェアエンティティに係る第1のコードに対するアクセスを提供することを含む。第1のコードはコードセットの一部分であり、周辺装置へのアクセスを可能にする。 One embodiment includes one or more processor readable media having processor readable code that causes one or more processors to perform the method. The method includes sending one or more authentication options to the first software entity on the host device when the first software entity requests access to the peripheral device. This sending also includes sending one or more authentication options from a code set installed on the host device for the peripheral device to the first software entity, the code set being one of the ones on the host device. The code concerning the above software entity is included. The code set receives credentials from the first software. The credentials are associated with any one of one or more authentication options. The method further includes providing access to the first code associated with the first software entity if the credentials are valid. The first code is part of the code set and allows access to the peripheral device.
開示された本願の技術は、ホスト装置でセキュリティ機能を実施することにより安全な周辺装置アクセスを提供する。周辺装置は、メモリ装置、プリンタ、キーボード等のホスト装置を介して操作される何らかの装置であることができる。ホスト装置上で周辺装置を操作するには、周辺装置用のソフトウェアをホスト装置にインストールしなければならない。このソフトウェアは、ダイナミックリンクライブラリ(DLL)やスタティックライブラリ(LIB)等のソフトウェア開発キット(SDK)のコードセットとしてホスト装置にインストールされる。ホスト装置では1つ以上のソフトウェアエンティティまたはアプリケーションを通じて周辺装置が操作される。周辺装置へのアクセスにあたっては多くの場合、アプリケーションの種類、アプリケーションの働き、アプリケーションの権限等に応じてホスト装置上のアプリケーションごとに異なるAPIが必要となる。ユーザがアプリケーションを通じてホスト装置にタスク要求を送信しそのタスク要求に周辺装置に対するアクセスが含まれる場合には、周辺装置のSDKが当該アプリケーションを認証し、周辺装置にアクセスする権限が当該アプリケーションにあることを確認する。この認証に成功すると、SDKは当該アプリケーションに専用のAPIだけを提示する。当該アプリケーションによるアクセスが許可されていないAPIは提示されない。当該アプリケーションは提示されたAPIを使ってタスク要求を送信し、実行できる。こうすることで周辺装置のセキュリティを向上させ、他のアプリケーションによる不正なAPIアクセスを防止する。 The disclosed technique of the present application provides secure peripheral device access by performing security functions on the host device. The peripheral device can be any device operated via a host device such as a memory device, a printer, a keyboard or the like. In order to operate a peripheral device on the host device, software for the peripheral device must be installed in the host device. This software is installed in the host device as a code set of a software development kit (SDK) such as a dynamic link library (DLL) or a static library (LIB). The host device operates the peripheral device through one or more software entities or applications. In many cases, access to a peripheral device requires a different API for each application on the host device according to the type of application, the function of the application, the authority of the application, and the like. If the user sends a task request to the host device through the application and the task request includes access to the peripheral device, the SDK of the peripheral device authenticates the application and the application is authorized to access the peripheral device Confirm. If this authentication is successful, the SDK presents only a dedicated API to the application. APIs that are not permitted to be accessed by the application are not presented. The application can send and execute a task request using the presented API. This improves the security of the peripheral device and prevents unauthorized API access by other applications.
図1は、周辺装置用SDKのコードセットがインストールされる前のホスト装置255の一例を示す。ホスト装置255はアプリケーション105と、メモリ260と、ホストCPU165とを有する。ホスト装置255は、携帯電話、PC、デジカルカメラ、移動体メディアプレーヤ、個人用携帯情報端末(PDA)、移動体計算装置、非移動体計算装置等の電子装置であることができる。アプリケーション105は、カレンダ、ドキュメントビューア、メディアプレーヤ等のホスト装置上で利用される何らかのソフトウェアエンティティである。アプリケーション105は、アプリケーションの起動に用いるソフトウェアエンティティであってもよい。メモリ260は、ホスト装置255で必要とされる何らかのメモリである。ホストCPU165は、ホスト装置255の操作に使われる何らかのプロセッサである。
FIG. 1 shows an example of the
図1に描かれたホスト装置255等のホスト装置を通じて周辺装置を操作するためにフトウェア開発者によってSDKソフトウェアが作成されると、SDKソフトウェアは、周辺装置にアクセスするホスト装置上のソフトウェアエンティティまたはアプリケーションごとに構成できる。ホスト装置上のソフトウェアエンティティは多くの場合、種々のニーズや嗜好性を持つ顧客によって所有されたり、もしくは作成されたりすることができる。夫々のソフトウェアエンティティ/アプリケーションに基づくか、あるいは認証プリファレンスや顧客アプリケーションの機能等の顧客のニーズや嗜好性に基づいてSDKを構成することができる。図2は、種々のアプリケーションおよび/または顧客のニーズならびに嗜好性に基づき、SDKコードセットを構成する1プロセスのフローチャートである。ステップ190では、SDKソフトウェア開発者がアプリケーションおよび/または顧客の要求に基づいて、アプリケーションおよび/または顧客ごとにSDKソフトウェアを開発する。例えば、顧客アプリケーションを通じて周辺装置にアクセスするSDKコードセットには通常、アプリケーションと周辺装置との仲介となるAPIが必要である。アプリケーションのAPIにアクセスするためのSDKソフトウェアは、顧客の嗜好性に応じて詳しく構成できる。例えば、周辺装置のアクセスに先立ちアプリケーション認証を義務づけるようにSDKを構成する。SDKは、アプリケーションごとにアクセスすべきAPIが決まるように構成される。ステップ195では、ステップ190で実行したアプリケーション/顧客ごとに特定のSDKソフトウェアの必要なAPIに基づいて周辺装置を操作するSDKソフトウェアを構成する。例えば、アプリケーション/顧客ごとに必要なセキュリティ機能のためのSDKソフトウェア修正を含む。周辺装置を操作するSDKソフトウェアが構成されると、SDKはステップ190でアプリケーションおよび/または顧客ごとに構成されたソフトウェアのすべて(認証に必要なセキュリティソフトウェア等)や、ステップ195でカスタマイズされたソフトウェアを含むホスト装置上で周辺装置を操作するためのその他のソフトウェアも使用して正常に機能するようになる。
When SDK software is created by a software developer to operate a peripheral device through a host device, such as the
図3は、図2のプロセスに従い構成された周辺装置用SDK330コードセットの一例を示すものである。周辺装置用SDK330のコードはセキュリティレイヤ125、アプリケーション用API1〜3、装置ドライバ140等のサブセットを含む。このSDKコードセットはダイナミックリンクライブラリ(DLL)かスタティックライブラリ(LIB)であることができる。セキュリティレイヤ125は、周辺装置へアクセスを試みる異なるアプリケーションを認証するためのソフトウェアを含む。セキュリティレイヤ125は、図2のステップ195で構成されるSDKソフトウェアの一部であることができる。例えば、アプリケーション1用API262に追加の認証機能が必要なように、セキュリティレイヤ125を構成することができる。セキュリティレイヤ125については後ほど詳述する。それぞれのアプリケーションは、周辺装置と通信するにあたってアプリケーション1〜3用APIを使用しなければならない。図2のステップ190で説明したように、これらのAPIを、アプリケーションに対する顧客の嗜好性に基づいて構成することができる。例えば、アプリケーション1用API262は、図1のホスト装置255にあるアプリケーション105用にカスタマイズされたAPIであることができる。装置ドライバ140は、ホスト装置上で周辺装置を正常に作動させるためのソフトウェアである。
FIG. 3 shows an example of a
図4は、図3に見られるSDKをホスト装置にインストールする1プロセスを説明するフローチャートである。図4のステップ170ではホスト装置へセキュア周辺装置を接続する。ホスト装置へセキュア周辺装置が接続されると、セキュア周辺装置を操作するためのSDKがホスト装置に読み込まれ、インストールされる(ステップ175)。このSDKをセキュア周辺装置用メモリに格納することができる。SDKは、ホスト装置上のホストCPUをプログラム実行し不正アクセスを阻止するようにセキュア周辺装置を操作するためのソフトウェアを含む。SDKコードセットがホスト装置に正常に読み込まれ、インストールされると、ホスト装置をセキュア周辺装置とともに操作できる(ステップ180)。
FIG. 4 is a flowchart illustrating one process for installing the SDK found in FIG. 3 in the host device. In
実施形態によっては、ある特定のセキュア周辺装置がホスト装置に初めて接続されるときにだけステップ175が実行されることに留意するべきである。セキュア周辺装置が最初に接続されるときにホスト装置にSDKがインストールされると、セキュア周辺装置がホスト装置に再接続されるたびにSDKをインストールする必要はない。別の実施形態では、ホスト装置へセキュア周辺装置が接続されるたびにSDKの読み込みとインストールを行う。
It should be noted that in some embodiments,
一実施形態において、ホスト装置にオペレーティングシステムがインストールされる前にセキュア周辺装置を操作するためのSDKがホスト装置に読み込まれ、プリインストールされる。この場合には、オペレーティングシステムを通じてSDKを起動もしくは選択して使用することができる。したがって、図4のプロセスの一部としてステップ175を実行する必要はない。別の実施形態では、ホスト装置のオペレーティングシステムがインストールされた後でセキュア周辺装置を操作するためのSDKを読み込み、プリインストールする。この場合も、図4のプロセスの一部としてステップ175を実行する必要はない。 In one embodiment, an SDK for operating a secure peripheral device is read into the host device and preinstalled before the operating system is installed on the host device. In this case, the SDK can be activated or selected through the operating system. Thus, step 175 need not be performed as part of the process of FIG. In another embodiment, the SDK for operating the secure peripheral device is read and preinstalled after the operating system of the host device is installed. Again, step 175 need not be performed as part of the process of FIG.
図5は、図3のSDK330コードセットがインストールされた後のホスト装置255ならびにセキュア周辺装置145の一実施形態を示すものである。ホスト装置255は図1に見られる当初のコンポーネント(アプリケーション105、メモリ260、ホストCPU165)のほかに、図3に見られるSDK330のコンポーネント(セキュリティレイヤ125、アプリケーション1〜3用API、装置ドライバ140)を含む。ホスト装置255のユーザがアプリケーション105を通じてセキュア周辺装置145を含むタスクを要求すると、セキュリティレイヤ125はホストCPU165にアプリケーション105を認証させる。セキュリティレイヤ125によりアプリケーション105が首尾よく認証されると、セキュリティレイヤは、アプリケーション105専用のAPIサブグループを提示する。例えば、アプリケーション105がアプリケーション1なら、アプリケーション1用API262を提示する。アプリケーション105は、次にSDKコードセットの当該サブセットを使用し、装置ドライバ140を介してセキュア周辺装置145へタスク要求を送信することができる。アプリケーション105も、これらのAPIを使用して、ユーザ用のタスク要求を送信することができる。
周辺装置用SDKを通じて周辺装置に安全にアクセスするプロセスをより具体的に説明するため、これより周辺装置の一例としてセキュアメモリ装置を使用する。しかし、周辺装置はどんな周辺装置であってもよく、これ以降説明するメモリ装置の例に限定されないことに留意するべきである。
FIG. 5 illustrates one embodiment of the
In order to more specifically describe the process of safely accessing a peripheral device through the peripheral device SDK, a secure memory device is used as an example of the peripheral device. However, it should be noted that the peripheral device may be any peripheral device and is not limited to the example memory device described below.
図6は、セキュアメモリ装置用SDKがインストールされる前のホスト装置100のコンポーネントの一実施形態を示すものである。ホスト装置100のユーザは通常、アプリケーション105等のソフトウェアエンティティを通じてホスト装置100に格納されたコンテンツにアクセスする。ホスト装置100上のアプリケーションの例には、ホスト装置100に保存されるメディアプレーヤ、カレンダ、アドレス帳等が含まれる。あるアプリケーションは、ホスト装置100上の実行可能なコードと異なる位置に格納されたアプリケーション(メディアプレーヤ、カレンダ、アドレス帳等)の起動に使われるホスト装置上の実行可能なコードでもあることができる。例えば、あるアプリケーションは、ホスト装置100のメモリの異なった部分にあるホスト装置内またはホスト装置100へ接続される周辺装置に保存されたメディアプレーヤアプリケーションを起動するために使用することができる。アプリケーション105を使ってアクセスもしくは保存されるコンテンツは、例えばアプリケーション、メディア、スケジューリング情報、連絡情報等を含むことができる。
アプリケーション105はホスト装置100用オペレーティングシステム上のホスト記憶管理部110を使用し、ホスト装置100やリムーバブルメモリ装置等の周辺装置でコンテンツのアクセス、記憶を行う。ホスト記憶管理部110は、アクセス機能と記憶機能を制御するオペレーティングシステム上のソフトウェアコンポーネントであり、ホスト装置100内および周辺装置間のアクセスや記憶を含んでいる。詳細は以下に説明する。
FIG. 6 shows an embodiment of components of the
The
図6にはホスト記憶管理部110とホストファイルシステム130も示している。ホストファイルシステム130は、ホスト記憶管理部110によって管理される1コンポーネントである。ホスト記憶管理部110はホストCPU165を使用してホストファイルシステム130にアクセスする。ホストファイルシステム130はホスト装置100のメモリに格納され、ホスト装置100や周辺装置に記憶されたコンテンツを検索し、コンテンツを記憶するために使用される。ユーザがホスト装置100からコンテンツを要求すると、ホスト記憶管理部110はホストファイルシステム130を使ってそのコンテンツを検索する。ユーザがコンテンツの格納を要求すると、ホスト記憶管理部110はホストファイルシステム130を使ってそのコンテンツを適切な場所に格納する。
FIG. 6 also shows the host
また、ホスト装置100に格納されたコンテンツは保護のために暗号化できる。ホスト装置はホスト暗号エンジン185を含むことができ、これは乱数生成部と対称暗号法(AES、DES、3DES等)、暗号ハッシュ関数(SHA−1等)、非対象暗号法(PKI、鍵ペア生成等)もしくはその他のどのような暗号法をもサポートする暗号処理部とを有することができる。
The content stored in the
図7は、周辺装置用SDK330のコードセットがホスト装置100に正常に読み込まれ、インストールされた後で、セキュアメモリ装置145と連動するホスト装置100の一例を示すものである。セキュア周辺装置は、一実施形態において、リムーバブルストレージ装置である。コンテンツは、セキュアメモリ装置のセキュアパーティションに格納されるか、セキュアメモリ装置のパブリックパーティションに格納される。セキュアメモリ装置は、大容量ストレージ装置や不揮発性フラッシュメモリ装置等の何らかのメモリ装置であることができる。セキュアメモリ装置のセキュアパーティションに格納されるコンテンツは、不正アクセスから保護される。コンテンツが保護される場合には、セキュアメモリ装置のパブリックパーティションに格納されるコンテンツも不正アクセスから保護される。コンテンツが暗号化される場合には、コンテンツはセキュアメモリ装置の中で保護される。コンテンツが暗号化されず、パブリックパーティションに格納される場合には、セキュアメモリ装置の中で保護されない。ホスト装置は、コンテンツを暗号化、復号化するための権限等のコンテンツに係るしかるべき権限を持つ場合に、セキュアメモリ装置上でコンテンツにアクセスできたり、コンテンツを格納できたりする。
FIG. 7 shows an example of the
図7では、物理インターフェイス142によってホスト装置100がセキュアメモリ装置145へ物理的に接続されている。アプリケーション105と、ホストCPU165と、ホスト装置暗号エンジン185と、ホスト記憶管理部110と、ホストファイルシステム130は、図6に示されるホスト装置100上のソフトウェアコンポーネントである。周辺装置用SDK330はホスト装置100にインストールされ、ホスト装置100によりセキュア周辺装置145を操作するために使われるコードセットである。周辺装置用SDK330は、セキュアメモリ装置145のコンテンツのアクセスや格納を処理するにあたって、セキュア周辺装置用API120と、周辺装置用SDKセキュリティレイヤ125と、ホストファイルシステム130と、登録表285と、SDK暗号ライブラリ168と、セキュアファイルシステム135とを使用する。セキュア周辺装置用API120と、周辺装置用SDKセキュリティレイヤ125と、登録表285と、SDK暗号ライブラリ168と、セキュアファイルシステム135と、装置ドライバ140は、図4のステップ175に記載されたように、セキュアメモリ装置145のためのSDKコードセットからホスト装置に読み込まれ、インストールされるソフトウェアコンポーネントである。オープンチャネル150とセキュアチャネル155は、ホスト装置100とセキュアメモリ装置145との間でコンテンツを転送するために使われるデータバスである。
In FIG. 7, the
セキュアメモリ装置145は、セキュアメモリ装置145用にホスト装置100にインストールされたソフトウェアを使用してコンテンツのアクセスと格納を制御する。ソフトウェアには、図4のステップ175に記載されたライブラリのほかに、ホスト装置にプリインストールされるライブラリが含まれる。ホスト装置に読み込まれ、インストールされるSDKライブラリは、ダイナミックリンクライブラリ(DLL)かスタティックライブラリ(LIB)であることができ、ホスト装置上のオペレーティングシステムに統合することができる。SDKコードセットはセキュアメモリ装置145のセキュア操作のためにホスト記憶管理部110へ至るフックを提供する。例えば、ホストファイルシステム130をコールするコールチェーンに周辺装置用SDKコードのサブセットを挿入することができ、ホストCPU165によりコンテンツのアクセス方法や格納方法を制御することができる。図7の周辺装置用SDKセキュリティレイヤ125と、セキュア周辺装置用API120と、セキュアファイルシステム135と、登録表285と、SDK暗号ライブラリ168と、装置ドライバ140は、セキュア周辺装置用SDKコードセットを通じてホスト装置に提供されるコードのサブセットである。これらのサブセットは、ホスト装置100にインストールされた装置ドライバ140を使用して提供される。
The
図7に示すように、ユーザは、ホスト装置上のアプリケーション105等のソフトウェアエンティティを通じてセキュアメモリ装置145に格納されたコンテンツにアクセスできる。セキュア周辺装置145に格納された保護されたコンテンツについては、後ほど詳述するように、コンテンツへのアクセスに先立ちアプリケーション105を認証する必要がある。
アプリケーション105はホスト装置用オペレーティングシステム上のホスト記憶管理部110を使用してセキュアメモリ装置145のコンテンツにアクセスし、コンテンツを格納する。ホスト記憶管理部110はアクセス機能と記憶機能とを制御する。これは、ホスト装置内でのアクセスや記憶と、セキュアメモリ装置145内でのアクセスや記憶を含む。
As shown in FIG. 7, the user can access content stored in the
The
図6に示されているように、ホスト記憶管理部110は通常、ホスト装置用オペレーティングシステム上のホストファイルシステム130を使用してホスト装置や周辺装置のアクセス機能と記憶機能を制御する。ホストファイルシステム130は、FAT12、FAT16、FAT32、NTFS等の通常のファイルシステムであることができる。しかし、セキュアメモリ装置145の場合、セキュアメモリ装置145の周辺装置用SDK330は、周辺装置用SDKセキュリティレイヤ125を使用してホスト装置上でのアクセス機能と記憶機能を制御するときに、セキュアメモリ装置145用のセキュアファイルシステム135を使用する。セキュアファイルシステム135へのアクセスをアプリケーション105を認証することで制御し、認証に成功した場合には、アプリケーション105専用のAPIに限りアクセスを許可する。これらのAPIがセキュアファイルシステム135の正しいインターフェイスとなる。セキュアファイルシステム135はセキュアメモリ装置145のためにホスト装置100にインストールされ、セキュアメモリ装置145に格納されるコンテンツのためのファイルシステムである。セキュアファイルシステム135はFAT12、FAT16、FAT32、NTFS等の通常のファイルシステムであることができる。
As shown in FIG. 6, the host
周辺装置用SDKセキュリティレイヤ125のためのソフトウェアは、図2のステップ175で読み込まれ、インストールされるSDKの一部として読み込まれ、インストールされる。この周辺装置用SDKセキュリティレイヤ125は、ホストCPU165にアプリケーション105を認証させる。アプリケーション105が首尾よく認証されると、アプリケーション105は登録表285に登録される。周辺装置用SDKセキュリティレイヤ125はまた、アプリケーション105にアプリケーションハンドラを提供する。このアプリケーションハンドラは、アプリケーション105がアクセスできるAPIがどれなのかを指示する。周辺装置用SDKセキュリティレイヤ125によって実行される認証および登録プロセスの詳細は後述する。
The software for the peripheral device
ユーザがアプリケーション105を通じてコンテンツへのアクセスを要求すると、周辺装置用SDKセキュリティレイヤ125は認証に成功した後で、セキュア周辺装置145のコンテンツにアクセスするにあたって必要なAPI、例えばセキュア周辺装置用API120を提供する。アプリケーション105はこのAPIを使用し、コンテンツのパーミッションにアクセスすることによりセキュア周辺装置145に格納されたコンテンツを受け取ることができる。コンテンツが保護される場合はコンテンツとともにヘッダが格納される。コンテンツを暗号化、復号化するためのコンテンツ暗号鍵(CEK)に関するドメイン情報や、格納されたコンテンツの種別を指示するコンテンツメタデータ等、このヘッダにはコンテンツに関する情報が入る。
When the user requests access to the content through the
周辺装置用SDK330の中にあるセキュア周辺装置用API(アプリケーションプログラムインターフェイス)120は、コンテンツのアクセスや格納にあたってセキュア周辺装置145をアプリケーション105に連係させる。このセキュア周辺装置用API120はSDKの一部としてインストールされ、アプリケーション105が首尾よく認証される場合にはアプリケーション105によってコールされる。セキュア周辺装置用API120は、周辺装置用SDKセキュリティレイヤ125とセキュアファイルシステム135との橋渡しとなる。
A secure peripheral device API (application program interface) 120 in the
セキュアファイルシステム135を使ってコンテンツの位置が特定されると、ホスト装置上の装置ドライバ140を使用し、セキュアメモリ装置145のしかるべき位置でコンテンツにアクセスもしくは格納できる。これは、ホスト装置100をセキュアメモリ装置145に物理的に接続する物理インターフェイス142を通じて行われる。コンテンツは、セキュアチャネル155またはオープンチャネル150を使用して、アクセスされたり、格納されたりすることができる。セキュア周辺装置145とホスト装置との間でコンテンツを転送するときにセキュアチャネル155を使用するか、それともオープンチャネル150を使用するかは、周辺装置用SDK330によって決定される。
Once the content location is determined using the
ユーザがアプリケーション105を通じて保護の対象とならないコンテンツの格納を要求すると、周辺装置用SDK330はホストファイルシステム130を使用してコンテンツを格納する。セキュア周辺装置145の中で保護するべきコンテンツの格納をユーザが要求すると、周辺装置用SDK330はセキュアファイルシステム135を使用してコンテンツを格納する。
周辺装置用SDK330の中にあるセキュア周辺装置用API(アプリケーションプログラムインターフェイス)120は、保護対象コンテンツがアクセスされるかまたは格納される場合に、セキュア周辺装置145をアプリケーション105に連係させる。このセキュア周辺装置用API120はSDKの一部としてインストールされ、アプリケーション105が首尾よく認証される場合にはアプリケーション105によってコールされる。セキュア周辺装置用API120は、周辺装置用SDKセキュリティレイヤ125とセキュアファイルシステム135との橋渡しとなる。
When the user requests storage of content that is not to be protected through the
A secure peripheral device API (application program interface) 120 in the
ホストファイルシステム130またはセキュアファイルシステム135のいずれかを使用してコンテンツの位置が特定され、ファイルされると、ホスト装置上の装置ドライバ140を使用して、適切な位置のセキュアメモリ装置145上でコンテンツをアクセスしたり、格納したりすることができる。これは、ホスト装置100をセキュアメモリ装置145に物理的に接続する物理インターフェイス142を通じて行われる。セキュアチャネル155またはオープンチャネル150を使用して、コンテンツをアクセスしたり、格納したりすることができる。周辺装置用SDKセキュリティレイヤ125が、セキュア周辺装置145とホスト装置との間でコンテンツを転送するときにセキュアチャネル155を使用するか、それともオープンチャネル150を使用するかを決定する。
セッション鍵とは、ホスト装置とセキュアメモリ装置との間でコンテンツが転送される前にコンテンツを暗号化するのに使用する暗号鍵である。セキュアチャネルを使ってコンテンツを転送する必要がなければ、コンテンツに割り振られるセッション鍵はなく、あるいはコンテンツに割り振られたセッション鍵で暗号化が不要であることを指示することができる。
Once the content location is located and filed using either the
A session key is an encryption key used to encrypt content before the content is transferred between the host device and the secure memory device. If there is no need to transfer the content using the secure channel, it can be indicated that there is no session key assigned to the content, or that no encryption is required with the session key assigned to the content.
コンテンツにセッション鍵が割り振られ、セキュアチャネル155を使ったコンテンツ転送が指示される場合には、セキュアチャネル155による転送に先立ちセッション鍵を使ってコンテンツを暗号化する。暗号化されたコンテンツが転送されると、コンテンツは同じセッション鍵を使って復号化される。ホスト装置100ではSDK暗号ライブラリ168を使ってコンテンツの暗号化または復号化が行われる。SDK暗号ライブラリ168には、乱数生成部と対称暗号法(AES、DES、3DES等)、暗号ハッシュ関数(SHA−1等)、非対象暗号法(PKI、鍵ペア生成等)もしくはどのような他の暗号法にも対応する暗号機能が含まれる。セキュア周辺装置145は、図11で詳述するようにコンテンツ転送前後にセキュアメモリ装置145で暗号化を行うための独自の暗号エンジンを有する。オープンチャネル150を使用したコンテンツ転送をセッション鍵が指示する場合には、コンテンツは暗号化されずに転送される。
周辺装置用SDKがインストールされていないホスト装置は、パブリックパーティションに格納されたコンテンツにアクセスできる。ホスト装置がコンテンツにアクセスできてもコンテンツに保護がかかっているなら、暗号化されたコンテンツを正常に読み取ることはできない。ホスト装置はセキュアパーティションに格納されたコンテンツにアクセスできない。
When a session key is assigned to the content and content transfer using the
A host device in which the peripheral device SDK is not installed can access the content stored in the public partition. Even if the host device can access the content, if the content is protected, the encrypted content cannot be read normally. The host device cannot access the content stored in the secure partition.
図8は、図7に示されているように、周辺装置がセキュアメモリ装置である場合に、ホスト装置100にインストールされる周辺装置用SDK330のソフトウェアの一例を示すものである。前述したように、周辺装置はメモリ装置の例に限定されない。周辺装置用SDK330はホスト装置100にインストールされるライブラリであり、周辺装置用API260、周辺装置用SDKセキュリティレイヤ125、装置ドライバ140、セキュアファイルシステム135、SDK暗号ライブラリ168、登録表285等の、ホスト装置100上でセキュアメモリ装置145を操作するためのソフトウェアを含む。しかし、周辺装置用SDK330はこのソフトウェアだけに限定されない。
FIG. 8 shows an example of the software of the
アプリケーション用API260は、図7のアプリケーション105等のアプリケーションによって使用されるAPIである。これらのAPIは認証用のAPIのほかに、図7のセキュア周辺装置用API120等のアプリケーションが首尾よく認証された後でセキュアメモリ装置145上のコンテンツにアクセスするためにアプリケーションをセキュアファイルシステム135に連係させるAPIを含む。アプリケーション用API260は特定のアプリケーションに専用のAPIを含むことができる。例えば、ある1つのアプリケーションによって使われるAPIが別のアプリケーションで使用できないことがあり得る。周辺装置用SDKセキュリティレイヤ125により首尾よく認証されたアプリケーションは、セキュア周辺装置用API120を通じてセキュアメモリ装置145にある保護対象コンテンツにアクセスできる。セキュア周辺装置用API120については後ほど図12に関連して詳述する。
The
図7に見られる周辺装置用SDKセキュリティレイヤ125はホスト装置にインストールされ、ホスト記憶管理部110に至るフックを提供し、セキュアメモリ装置145におけるコンテンツのアクセスや格納をホストCPU165に制御させる。周辺装置用SDKセキュリティレイヤ125のコードがホスト装置100上でのホストファイル操作を「乗っ取る」ことで、セキュア周辺装置145上でのコンテンツアクセスに先立ちアプリケーションを認証できるようになる。
図7に示す装置ドライバ140のソフトウェアを、セキュアメモリ装置145がホスト装置100へ接続された後でホスト装置に読み込み、インストールでき(図4のステップ175)、または、ホスト装置にオペレーティングシステムをインストールする前か後でホスト装置100のオペレーティングシステム上にプリインストールできる。
セキュアファイルシステム135は、図7に示されたセキュアメモリ装置145でコンテンツにアクセスや格納するためのファイリングデータを含むファイルシステムである。 SDK暗号ライブラリ168は、セキュアチャネル155向けコンテンツを暗号化し、復号化するための暗号法を含むライブラリである。AES、DES、3DES、SHA−1、PKI、鍵ペア生成等の暗号法は公知の方式である。SDK暗号ライブラリ168は、セッション鍵等、コンテンツのパーミッションに基づきコンテンツを暗号化し、復号化する。
The peripheral device
The software of the
The
登録表285は、周辺装置用SDKセキュリティレイヤ125がアプリケーションの認証状況や関係情報を管理、保守するために使用する表である。この表には認証アルゴリズム、アプリケーションID、登録時間、失効時間、登録状況等の情報が入る。登録表285の詳細については後述する。
セキュアメモリ装置の例を継続し、図7に示すセキュア周辺装置145の一実施形態を図9に示す。セキュア周辺装置またはメモリ装置145はファームウェアモジュール210と、CPU220と、周辺装置暗号エンジン160と、システムパーティション400とを含む。システムパーティション400にはパブリックパーティション240とセキュアパーティション250を含む。ファームウェアモジュール210はCPU220を使用し、システムパーティション400のパブリックパーティション240かセキュアパーティション250でコンテンツのアクセスや格納を行う。メモリ装置暗号エンジン160は、セキュアメモリ装置145の中でアクセスもしくは格納される保護対象コンテンツを暗号化し、復号化するために使用される。
The registration table 285 is a table used by the peripheral device
Continuing with the example secure memory device, one embodiment of the secure
ファームウェアモジュール210はセキュアメモリ装置145のセキュアパーティション250とパブリックパーティション240でコンテンツのアクセスと格納を制御するハードウェアとソフトウェアを含む。ファームウェアモジュールはアクセス機能と格納機能を実行するようにCPU260をプログラムする。例えば、メモリのどの部分でコンテンツにアクセスもしくは格納するかを判断し、またはコンテンツが保護されているか否かを判断する。ファームウェアモジュール210の詳細については図10に関する説明の中で説明する。
パブリックパーティション240はユーザから見え、ホスト装置100により検出できるセキュアメモリ装置145のメモリパーティションである。セキュアメモリ装置145は1つ以上のパブリックパーティションを有する。パブリックパーティション240はユーザやホスト装置100に開放されるパブリックコンテンツを含むことができる。パブリックパーティション240は、コンテンツ暗号鍵(CEK)を使って暗号化される保護対象コンテンツも含むことができる。コンテンツに関連した情報を含むコンテンツヘッダに格納されたドメイン情報を使ってCEKを生成することができる。パブリックコンテンツを暗号化せずに格納することもできる。
The
The
セキュアパーティション250はユーザから見えず、ホスト装置により検出されない、セキュアメモリ装置145の隠れメモリパーティションである。セキュアメモリ装置145は1つ以上のセキュアパーティションを有することができる。セキュアパーティション250は、ユーザやホスト装置100に開放されない保護対象コンテンツを含むことができる。保護対象コンテンツをCEKを使って暗号化することができる。セキュアパーティション250に格納されたコンテンツはコンテンツにアクセスするための適切なパーミッションを有する認証済みアプリケーションによりアクセスできる。CEKに関する情報やコンテンツに関連するパーミッションは、コンテンツ関連の情報が入るコンテンツヘッダに格納される。一実施形態では、システムパーティション400のパブリックパーティション240とセキュアパーティション250は、1つのコントローラと1つ以上のフラッシュメモリアレイを含むフラッシュメモリ装置に格納される。
The
セキュアパーティション250はユーザやホスト装置によって検出されない隠れパーティションであるため、セキュアパーティション250は、ホスト装置100でセキュアメモリ装置145を操作するためのソフトウェアを、権限オブジェクトやアプリケーション資格証明等とともに含むことができる。
周辺装置暗号エンジン160は、セキュアメモリ装置145の中でCEKやセッション鍵を使ってコンテンツを暗号化し、復号化するために使用される。メモリ装置暗号エンジン160は、乱数生成部と対称暗号法(AES、DES、3DES等)、暗号ハッシュ関数(SHA−1等)、非対象暗号法(PKI、鍵ペア生成等)もしくはその他のどのような暗号法をもサポートし得る暗号処理部とを含む。
Since the
The peripheral
図10は、ファームウェアモジュール210の一実施形態の詳細を示すものである。ファームウェアモジュール210は周辺装置インターフェイスモジュール144と、フラッシュメモリ管理部310と、保護対象コンテンツアクセス管理部320と、暗号エンジンライブラリ235と、DRM(デジタル著作権管理)モジュール315とを含む。周辺装置インターフェイスモジュール144は、ホスト装置の物理インターフェイス142を介してセキュアメモリ装置145をホスト装置100に連係させるためのハードウェアおよびソフトウェアを含む。周辺装置のインターフェイスモジュール144のハードウェアコンポーネントは、ユニバーサルシリアルバス(USB)、セキュアデジタル(SD)インターフェイス、コンパクトフラッシュ(CF)インターフェイス等のあらゆるインターフェイスのためのコンポーネントを含むことができる。フラッシュメモリ管理部310は、CPU220がパブリックパーティション240で保護対象外コンテンツのアクセスや格納を行ったり、DRMモジュール315を使用してパーミッションに基づいてコンテンツのアクセスや格納を行ったりするためのソフトウェアを含む。保護対象コンテンツアクセス管理部320は、CPU220がパーミッションを用いて保護対象コンテンツのアクセスや格納を行ったり、DRMモジュール315を使用してパーミッションに基づいてコンテンツのアクセスや格納を行ったりするためのソフトウェアを含む。保護対象コンテンツアクセス管理部320は、セッション鍵かCEKを用いてコンテンツを暗号化するにあたって必要な情報が入っている暗号エンジンライブラリ235を使用することもできる。フラッシュメモリ管理部310と保護対象コンテンツアクセス管理部320はいずれも、ホスト装置上の装置ドライバ140を通じてコンテンツのアクセスや格納を行う。
FIG. 10 shows details of one embodiment of the
保護の必要がない場合は、フラッシュメモリ管理部310がCPU220を使用してセキュアメモリ装置145にある保護対象外コンテンツのアクセスならびに格納を制御する。保護対象外コンテンツを保存する要求をホスト装置100から装置ドライバ140を通じて受信すると、フラッシュメモリ管理部310はホストファイルシステム130に従って該当する位置にコンテンツを保存する。保護対象外コンテンツにアクセスする要求をホスト装置ファイルシステム130から装置ドライバ140を通じて受信すると、フラッシュメモリ管理部310は、ホストファイルシステム130を用いて該当する位置からコンテンツにアクセスする。フラッシュメモリ管理部310はまた、アプリケーション105がセキュアメモリ装置145にある保護対象コンテンツにアクセスを試みる場合に、保護対象コンテンツアクセス管理部320へのアクセスを提供する。
When protection is not necessary, the flash
保護が必要な場合は、保護対象コンテンツアクセス管理部320がCPU220を使用してセキュアメモリ装置145にある保護対象コンテンツのアクセスならびに格納を制御する。保護対象コンテンツアクセス管理部320は、保護対象コンテンツに係るパーミッションをDRMモジュール315に格納するか、または保護対象コンテンツに係るパーミッションをDRMモジュール315から取得する。保護対象コンテンツアクセス管理部320は、保護対象コンテンツのアクセスまたは格納にあたって図7に見られるセキュアファイルシステム135を使用する。例えば、保護対象コンテンツを保存する要求がホスト装置から装置ドライバ140を通じて受信され、セキュアチャネル155を通じてコンテンツを送信する場合には、周辺装置用SDKセキュリティレイヤ125がSDK暗号ライブラリ168を使って保護対象コンテンツを暗号化する。この暗号化にはコンテンツに割り振られたセッション鍵を使用する。次いで、暗号化されたコンテンツはセキュアチャネル155を通じてセキュアメモリ装置145へ送信され、セキュアメモリ装置145でセッション鍵と暗号エンジンライブラリ235にある適切な暗号法によりコンテンツを復号化する。次いで、復号化されたコンテンツは、周辺装置暗号エンジン160によってコンテンツ用のCEKを使用して暗号化される。CEKを使って暗号化されたコンテンツは、セキュアファイルシステム135に従い適切な位置に保存される。
When protection is required, the protection target content
オープンチャネルを通じて保護対象コンテンツを送信する場合でも同様のコンテンツ転送法が実施されるが、セキュアチャネル155向けのセッション鍵の暗号化はない。保護対象コンテンツにアクセスする要求がホスト装置100から装置ドライバ140を通じて受信されると、保護対象コンテンツアクセス管理部320がセキュアファイルシステム135を用いて該当する位置からコンテンツにアクセスし、オープンチャネル150を通じてホスト装置100上のホスト記憶管理部110にコンテンツを提供する。保護対象コンテンツアクセス管理部320によって適切なパーミッションを確認すると、保護対象コンテンツアクセス管理部320は、フラッシュメモリ管理部310を通じてコンテンツのアクセスや格納を行う。
保護対象コンテンツアクセス管理部320はDRMモジュール315を使用して、著作権許可等のコンテンツに係るパーミッションに基づいてコンテンツへのアクセスを提供する。DRMモジュール315はOMA、DRM、MS DRM等の何らかのDRM技術をサポートすることができる。
Even when the content to be protected is transmitted through the open channel, the same content transfer method is implemented, but there is no encryption of the session key for the
The protected content
暗号エンジンライブラリ235には、セキュアメモリ装置145の中でCEKかセッション鍵を使ってコンテンツを暗号化するための暗号法が入っている。セキュアメモリ装置145でコンテンツが暗号化されるかもしくは復号化される場合には、保護対象コンテンツアクセス管理部320が暗号エンジンライブラリ235にある適切な暗号法にアクセスする。AES、DES、3DES、SHA−1、PKI、鍵ペア生成等、暗号法は何らかの既知方式であることができる。
The
図11は、セキュアメモリ装置145のシステムパーティション400の一例を示すものである。このシステムパーティション400はセキュアメモリ装置145にある全メモリパーティションを含む。つまり、システムパーティション400は、図9に示すパブリックパーティション240とセキュアパーティション250で作成される。セキュアメモリ装置145はいくつかのパブリックパーティションまたはセキュアパーティションを有する。既に述べたように、パブリックパーティションは検出可能で、ユーザやホスト装置にアクセス可能に開放される。パブリックパーティションに格納された保護対象外コンテンツには認証なしでアクセスできる。しかし、パブリックパーティションに格納された保護対象コンテンツは、認証に成功した後でなければアクセスできない。セキュアパーティションは、ユーザやホスト装置にとって検出不能の隠しパーティションである。セキュアパーティションにあるコンテンツを開こうとするアプリケーションは、事前に認証を受けなければならない。
FIG. 11 shows an example of the
セキュアメモリ装置145に保護対象コンテンツを保存する場合、保護対象コンテンツアクセス管理部320がコンテンツのパーミッションに従いコンテンツを整理する。次いで、フラッシュメモリ管理部310によってコンテンツが格納される。パブリックパーティションとセキュアパーティションは同じCEKを有する保護対象コンテンツを含むドメインまたは論理グループを有する。それぞれのドメインまたは論理グループには、コンテンツを復号化し、コンテンツを暗号化するためのCEKが1つずつある。1ドメインまたは1グループのコンテンツを開くパーミッションを持つアプリケーションは、同一ドメインまたはグループに格納された別のコンテンツも開くことができる。
When the protection target content is stored in the
図11のパブリックパーティションP0 410には、ドメイン1とドメイン2という2つの論理グループがある。ドメイン1に格納されたすべてのコンテンツの暗号化と復号化には1つのCEKが使われる。ドメイン2に格納されたすべてのコンテンツの暗号化と復号化には別のCEKが使われる。これらのグループへのアクセスを試みるソフトウェアエンティティには、コンテンツの読み取りに先立ち認証が必要である。パブリックパーティションP0は開放され隠されていないため、グループ内の保護対象コンテンツは見ることができ、アクセスされる可能性もあるが、適切なCEKを使用して正常に復号化されない限り読み取ることはできない。つまり、グループ内のコンテンツが権限のないユーザによって壊される可能性があるが、コンテンツを読み取ることはできない。
The
パブリックパーティションP0 410のファイルA440はグループの中に含まれていないため、割り振られたCEKは有していない。したがって、ファイルA440はどのユーザでもアクセスし、読み取ることができる。
セキュアパーティションP1 420はファイルEとファイルFを含む。ファイルEとファイルFはセキュアパーティションの中で保護される必要のあるファイルであることができる。例えば、ファイルEおよびファイルFは、SDKによって、コンテンツライセンスや内部管理データといったセキュア情報を格納するのに使用される。しかし、セキュアパーティションP1 420の内容はこのようなファイルだけに限定されない。セキュアパーティションP1 420はどんなセキュアファイルでも格納することができる。
セキュアパーティションP2 430のドメイン3 490にはファイルGとファイルHが両方ある。ドメイン3には、コンテンツを暗号化し復号化するためのCEKが割り振られている。例えば、あるアプリケーションがドメイン3のファイルGにアクセスを試みるときに、アプリケーションは事前に認証を受けなければならない。認証を受けると、アプリケーションはドメイン3のCEKを使ってファイルGにアクセスできるほか、ドメイン3のファイルHにもアクセスできる。
セキュアパーティションP3 450は空のパーティションであり、保護対象コンテンツの格納に使うことができる。
Since the file A440 of the
There are both file G and file H in
The
図12は、周辺装置用SDK330のアプリケーション用API260の一例を示すものである。アプリケーション用API260は、標準およびセキュアストレージAPI340と、認証API350と、コンフィグレーションAPI360と、DRM API370を含むほか、ユーザがホスト装置100上でセキュアメモリ装置145を操作するにあたって必要となるカスタムAPI380を含む。種々のAPIのそれぞれは、アプリケーションやアプリケーションランチャ等、ソフトウェアエンティティに専用のものであることができる。一実施形態において、各アプリケーションのAPIがドメイン等の論理グループとして格納される。例えば、APP1用API262は、他のアプリケーション用APIとは別のグループに格納される。一実施形態において、それぞれのグループに1アプリケーションのAPIが1種類ずつ入る。例えば、APP1用のストレージAPIを1つのグループとみなすことができる。
FIG. 12 shows an example of the
APP1用API262は、APIグループのうちのアプリケーション1専用のAPIサブグループを示す。SDKは、アプリケーション1が首尾よく認証された場合には、APP1用API262にアクセスできるように構成されている(図2、ステップ190参照)。APP1用API262は、一実施形態において、SDKコードセットのうちの1つ以上のアプリケーションによってコールされるサブセットである。別の実施形態では、アプリケーション1だけがAPP1用API262をコールする。APP1用API262はセキュアストレージAPIと、コンフィグレーションAPIと、DRM APIと、カスタムAPIとを含む。ただし、APP1用API262はこれらのAPIだけに限定されない。
An
標準およびセキュアストレージAPI340は、アプリケーションまたはアプリケーションランチャ105が、セキュアメモリ装置145でコンテンツを取得し、格納するにあたって、あるいはセキュアセッションを確立するにあたって、もしくはセキュアメモリ装置145でのコンテンツのアクセスや格納をともなうその他の操作を実行するにあたって、必要なAPIが含まれる。例えば、標準/セキュアストレージAPI340は、アプリケーション105がアクセス要求のあるコンテンツのパス位置をホストファイルシステム130かセキュアファイルシステム135へ送るためのAPIであることができる。アプリケーション105は、パブリックコンテンツにアクセスするときには標準およびセキュアAPI340グループの標準APIをコールすることができる。アプリケーション1が周辺装置用SDKセキュリティレイヤ125によって認証された後では、図7に見られるセキュア周辺装置用API120等のAPP1用API262グループのセキュアAPIをコールすることができる。
The standard and
認証API350はアプリケーション105を認証するためのAPIであって、認証API350にアクセスするための認証プロセスの要求なしに全てのアプリケーションに開放されている。認証API350はアプリケーション105によってコールされる。アプリケーション105によって認証API350がコールされると、アプリケーション105は、認証API350を使用して周辺装置用SDKセキュリティレイヤ125へ資格証明を送信することができる。周辺装置用SDKセキュリティレイヤ125は、アプリケーション105が認証API350を使って送信した資格証明が有効であるか否かをベリファイする。この資格証明は、チャレンジ/レスポンス認証アルゴリズムに対する応答、PKI証明書、PIN、鍵、パスワード等のソフトウェアエンティティの認証に用いる資格証明のいずれのタイプでもあることができる。チャレンジ/レスポンス認証アルゴリズムの場合は、認証API350を使用してアプリケーション105へチャレンジを送ることができる。次いで、同じ認証API350を使用してアプリケーション105から周辺装置用SDKセキュリティレイヤ125へのチャレンジに対する応答を送信することができる。
The
コンフィグレーションAPI360は、アプリケーション105がセキュアメモリ装置145を構成するかまたはセキュアメモリ装置145の構成情報を取得するためのAPIである。アプリケーション105がそのことを行うための適切な権限を持っている場合に限り行うことができる。例えば、セキュアメモリ装置145で使用済みのメモリ空間と空いているメモリ空間に関する情報を入手するか、またはアプリケーション105が首尾よく認証された後で新たなセキュアパーティションを作成するときには、アプリケーション105によってコンフィグレーションAPI360をコールすることができる。
コンテンツに係るパーミッションやデジタル著作権にアクセスするには、アプリケーション105がDRM API370をコールし、権限が有効である場合にはコンテンツにアクセスできる。権限の検証は、セキュアメモリ装置145のファームウェアモジュール210にあるDRMモジュール315で行われる。APP1用API262サブグループに見られるように、DRM API370は、一実施形態において、特定のアプリケーション105に専用のDRM APIであることができる。
カスタムAPI380は、ユーザがホスト装置100上でセキュアメモリ装置145を操作するにあたって必要とする付加的APIであることができる。APP1用API262サブグループに見られるように、カスタムAPI380は特定のアプリケーション105に専用のカスタムAPIとなることができる。
The
In order to access the permission and digital copyright related to the content, the
The
図13のフローチャートは、ホスト装置に周辺装置用SDKが正常にインストールされた後でホスト装置をセキュア周辺装置とともに操作する一例を説明するものである(図4のステップ180)。より具体的に、図13は、ユーザがホスト装置上のアプリケーションを通じて送信するセキュア周辺装置がらみのタスク要求がどのように実行されるかを説明しているプロセスである。例えば、タスク要求はセキュア周辺装置でコンテンツをアクセスするかあるいは格納する要求であることができ、ファイル(音楽、アプリケーション等)をアクセス、格納したり、セキュア周辺装置関連の情報(空きメモリ容量等)にアクセスしたり、セキュアメモリ装置の構成内容を変更したり、DRM情報(デジタル著作権オブジェクト等)にアクセスする。ユーザはホスト装置上のアプリケーションを通じてタスクを要求することができる。以降の例では、セキュア周辺装置としてセキュアメモリ装置を使用する。しかし、セキュア周辺装置の用途や構成はこの例に限定されない点に留意するべきである。
The flowchart in FIG. 13 illustrates an example of operating the host device together with the secure peripheral device after the peripheral device SDK has been successfully installed in the host device (
図13のステップ505ではユーザがホスト装置100上でアプリケーション105にタスク要求を送る。このタスク要求はアプリケーション105から周辺装置用SDKセキュリティレイヤ125にて受信される(ステップ505)。
ステップ515では周辺装置用SDKセキュリティレイヤ125がアプリケーション105の登録プロセスを実行する。登録プロセスとはアプリケーション105を認証し、認証に成功した場合には内部登録表285(図7に示す)にアプリケーション105を登録するプロセスである。登録に成功すると周辺装置用SDKがアプリケーション105に標識を送る。この標識は、登録されたアプリケーション105の専用APIが提示されることを伝える。周辺装置用SDKセキュリティレイヤ125はまた、アプリケーション105にアプリケーションハンドラを送る。このアプリケーションハンドラは追加的なセキュリティ措置として役立てられる。アプリケーション105は提示されたAPIを使って周辺装置145と通信するたびに、APIを通じて周辺装置にアプリケーションハンドラを送信しなければならない。登録プロセスの詳細については図14で説明する。
In
In
ステップ515の登録プロセスに成功すると、アプリケーション105は、登録プロセスのときに提示された1つ以上のAPIを通じて周辺装置用SDK330へタスク要求を送信する(ステップ520)。タスク要求は、登録プロセスのときにアプリケーション105に付与されたアプリケーションハンドラと併せて送信しなければならない。
ステップ525では、周辺装置用SDK330が提示されたアプリケーション105専用APIサブグループを使ってタスク要求を実行する。図18では、セキュアメモリ装置で保護対象コンテンツを格納する場合に実行される当該ステップの一例を説明する。図19では、セキュアメモリ装置に格納された保護対象コンテンツにアクセスする場合に実行される当該ステップの一例を説明する。
ステップ525でタスク要求が完了すると、周辺装置用SDKセキュリティレイヤ125はステップ530で内部登録表285からアプリケーション105の登録を解除する。このステップがどのように実行されるかは図20に関連して詳しく説明する。
If the registration process of
In
When the task request is completed in
図14のフローチャートは、保護対象コンテンツが係るタスクで実行される登録プロセス(図13のステップ515)の一例を示すものである。ユーザがアプリケーション105にタスク要求を送った後では、ステップ700でアプリケーション105が認証方式オプションのリストから認証方式を選択する。この認証方式オプションのリストは、周辺装置用SDKセキュリティレイヤ125から認証APIを通じてアプリケーション105に提供される。かかるリストを提供するAPIは、例えば次のとおりに定義できる。
void ListAuthenMethod(char*AppID,
char*AuthList)
The flowchart in FIG. 14 shows an example of a registration process (step 515 in FIG. 13) executed by the task related to the protection target content. After the user sends a task request to the
void ListAuthenMethod (char * AppID,
char * AuthList)
このListAuthenMethod APIは、周辺装置用SDKセキュリティレイヤ125にアプリケーション105のアプリケーションID(char*AppID)を提供する。アプリケーションIDは、アプリケーション105に割り振られる一意な識別子である。周辺装置用SDKセキュリティレイヤ125は、周辺装置SDKセキュリティレイヤ125によってサポートされる認証方式のリスト(char*AuthList)を返す。アプリケーション105は、周辺装置用SDKセキュリティレイヤ125から提供されるリストで使用する認証方式を選択する。アプリケーションには使用するべき認証方式がプログラムされている。
The ListAuthenMethod API provides the application ID (char * AppID) of the
アプリケーション105はステップ705で選択した認証方式に該当する資格証明を入手し、選択した認証方式を実行する。例えば、選択した認証方式がPKIに基づくものなら、アプリケーション105はそれ自身の資格証明としてPKI証明書を取得し、当該認証方式を実行する。選択した認証方式がチャレンジ/レスポンス認証方式なら、アプリケーション105は認証API350とともにメモリ装置用SDK330に格納されたチャレンジ/レスポンスAPIをコールすることによって認証方式を実行する。アプリケーション105はチャレンジ/レスポンスAPIを使って周辺装置用SDKセキュリティレイヤ125からチャレンジを受信する。このチャレンジは、ホスト装置暗号エンジン185かメモリ装置暗号エンジン160によって生成される乱数である。アプリケーション105はそれ自身の資格証明としてチャレンジに対する応答を計算する。種々の認証方式の詳細については、図15A〜15Cに関連して説明する。
ステップ710ではアプリケーション105が登録APIをコールし、周辺装置用SDKセキュリティレイヤ125へ登録情報を送信する。アプリケーションを登録するためのAPIは、例えば次のとおりに定義できる。
uchar RegisterApplication(char*AppID,
char*AuthMethod, uchar*credential,
uchar credentialLen)
The
In
uchar RegisterApplication (char * AppID,
char * AuthMethod, uchar * credential,
uchar credentialLen)
このRegisterApplication APIは、アプリケーション105がそれ自身のアプリケーションID(char*AppID)と、選択した認証方式(char*AuthMethod)と、資格証明(uchar*credential)と、ステップ705で取得した資格証明の長さ(uchar credentialLen)を周辺装置用SDKセキュリティレイヤ125へ送信可能にするものであってもよい。認証方式によって異なる資格証明の長さの違いに対応するには、資格証明の長さを提供しなければならない。
周辺装置用SDKセキュリティレイヤ125はステップ715で資格証明が有効か否かをチェックする。資格証明が有効でなければ、周辺装置用SDKセキュリティレイヤ125がアプリケーション105へエラーを返す(ステップ720)。
This RegisterApplication API includes the
The peripheral device
資格証明が有効なら、ステップ722で周辺装置用SDKセキュリティレイヤ125がアプリケーション105のためにアプリケーションハンドラを生成する。このアプリケーションハンドラは、例えばHASH等の所定の暗号アルゴリズムを用いて生成される一意な乱数である。アプリケーションハンドラは、所定の暗号アルゴリズムに特定の値を入力することによって生成される。これらの特定の値は、アプリケーションID、アプリケーション105が登録された時間、アプリケーション105を登録しておける期間、登録状況等の、アプリケーション105および/またはアプリケーション105の登録情報に関連する値である。周辺装置用SDK APIにはアプリケーションハンドラのための入力パラメータがある。一実施形態では、デフォルトのアプリケーションハンドラが生成され、全てのアプリケーションに開放されたAPIに使用される。しかし、既に述べたように、認証API350は全てのアプリケーションに開放され、認証のためにこれらのAPIにアクセスする際にアプリケーションハンドラは必要ない。
If the credentials are valid, the peripheral
アプリケーションハンドラが生成されたら、周辺装置用SDKセキュリティレイヤ125が内部登録表285にアプリケーション105を登録する(ステップ725)。内部登録表285は周辺装置用SDKセキュリティレイヤ125によって管理される。内部登録表285は、認証されたアプリケーションとアプリケーションランチャの情報を含む。アプリケーションハンドラ、認証済みアプリケーション105が内部登録表285に登録され続ける期間を示すタイムアウト期間(登録時間+アプリケーションを登録しておける期間)、アプリケーション105からアクセスできるAPI等、周辺装置用SDKセキュリティレイヤ125は、首尾よく認証されたアプリケーションとアプリケーションランチャの情報を内部登録表285に記録する。内部登録表285は、認証されたアプリケーションとアプリケーションランチャの追跡に役立てられる。このため、認証済みのアプリケーションならびにアプリケーションランチャは、認証表に登録されている間は、タスク要求を受け取るたびに認証を繰り返さずにすむ。
When the application handler is generated, the peripheral device
周辺装置用SDKセキュリティレイヤ125は、ステップ730で内部登録表285にアプリケーション105が首尾よく登録されたか否かをチェックする。アプリケーション105が内部登録表285に首尾よく登録されないと、周辺装置用SDKセキュリティレイヤ125がアプリケーション105にエラーを返す(ステップ735)。
アプリケーション105が内部登録表285に首尾よく登録されると、周辺装置用SDKセキュリティレイヤ125は、ステップ722で生成したアプリケーションハンドラを、認証APIを通じてアプリケーション105へ返す(ステップ738)。周辺装置用SDKセキュリティレイヤ125はまた、staus_OK等の登録に成功したことを伝える標識をアプリケーション105に返す(ステップ740)。staus_OK標識は、タスクの実行にあたって必要となるアプリケーション105専用APIサブグループが提示され使用できることをアプリケーション105に知らせる。
The peripheral device
When the
周辺装置用SDKセキュリティレイヤ125は、ステップ745で、図12に見られるサブグループ262等の周辺装置用SDK330のAPIサブグループをアプリケーション105に提示する。このAPIサブグループによりアプリケーション105はセキュア周辺装置145と通信できるようになる。しかし、このコード部分へのアクセスは、アプリケーション105が認証後で有効なアプリケーションハンドラを提供する場合に限り許可される。このAPIサブグループにより、アプリケーション105はアプリケーション105とセキュア周辺装置145との間に適切なリンクを確立し、タスク要求を実行することができる。
The peripheral device
図15A〜15Cは、周辺装置用SDKセキュリティレイヤ125によってサポートされる各種認証方式を実行するプロセスの例を示すものである(図14のステップ710および715)。図15Aのフローチャートは、パスワード方式の認証を実行するプロセスの一例である。アプリケーション105には認証に使用するパスワードがプログラムされている。図15Aのステップ535では、アプリケーション105がプログラムされたパスワードにアクセスする。アプリケーション105は認証APIを通じて周辺装置用SDKセキュリティレイヤ125へパスワードを送信する。周辺装置用SDKセキュリティレイヤ125はパスワードが有効か否かをチェックし(図14のステップ715)、図14のプロセスを継続する。
15A to 15C show examples of processes for executing various authentication methods supported by the peripheral device SDK security layer 125 (
図15Bのフローチャートは、チャレンジ/レスポンス方式の認証を実行する一例である。ステップ545では、アプリケーション105が周辺装置用SDKセキュリティレイヤ125から認証APIを通じてチャレンジを受け取る。例えば、このAPIはvoid GetChallenge(char*AppID,uchar*challenge, uchar*challengeLen)の形をとることができる。GetChallenge APIにより、アプリケーション105はそれ自身のアプリケーションID(char*AppID)を周辺装置用SDKセキュリティレイヤ125に提供する。周辺装置用SDKセキュリティレイヤ125はチャレンジ(uchar*challenge)とチャレンジの長さ(uchar*challengeLen)をアプリケーション105へ返す。
The flowchart in FIG. 15B is an example of executing challenge / response authentication. In
ステップ550では、アプリケーション105が受け取ったチャレンジを暗号関数に入力することによって応答を計算する。アプリケーション105には使用するべき暗号関数がプログラムされている。ステップ555では、アプリケーション105が計算した応答を周辺装置用SDKセキュリティレイヤ125へ送信する。周辺装置用SDKセキュリティレイヤ125も同じ暗号関数に同じチャレンジを使って応答を計算し(ステップ560)、計算した応答をアプリケーション105から受信した応答と比較する(ステップ565)。この比較ステップでは、資格証明(アプリケーション105からの応答)が有効であるか否かを周辺装置用SDKセキュリティレイヤ125がチェックする(図14のステップ715)。この資格証明に基づいて図14の登録プロセスを継続できる。
In
図15Cのフローチャートは、アプリケーション105のPKI認証を実行する一例である。ステップ570ではアプリケーション105が周辺装置用SDKセキュリティレイヤ125へ証明を送信する。この証明は、資格証明の一部としてアプリケーション105とともに格納されている。アプリケーション105は認証APIを通じてこの証明を提供するようにプログラムされている。
The flowchart in FIG. 15C is an example of executing PKI authentication of the
ステップ575では周辺装置用SDKセキュリティレイヤ125が証明をベリファイする。ステップ580では証明が有効なら、周辺装置用SDKセキュリティレイヤ125はアプリケーションによって送信(ステップ570)された証明から公開鍵を引き出し、これを用いて無作為に生成された数を暗号化する。この乱数はSDK暗号ライブラリ168を使って生成し、暗号化できる。次いで、周辺装置用SDKセキュリティレイヤ125からアプリケーション105へ暗号化された乱数が送信される(ステップ585)。
In
ステップ590では、アプリケーション105が周辺装置用SDKセキュリティレイヤ125から受信した暗号化乱数を復号化する。この復号化には、周辺装置用SDKセキュリティレイヤ125で使用された公開鍵に対応する秘密鍵を使用する。正規のアプリケーションは適切な秘密鍵を所持しているから、暗号化された乱数を復号化できる。ステップ595では、アプリケーション105が復号化した乱数をベリファイのために周辺装置用SDKセキュリティレイヤ125へ送信する(図14のステップ715)。ここで図14のプロセスを継続できる。
In
図16のブロック図は、図14の登録プロセスの一例である。アプリケーション1 107はまず、図14のステップ700で周辺装置用SDKセキュリティレイヤ125から提供されるリストで選択した認証方式を実行し(図14のステップ705)、周辺装置用SDK330の中にある周辺装置用SDKセキュリティレイヤ125へ登録情報を送信する(ステップ710)。周辺装置用SDKセキュリティレイヤ125は資格証明が有効と判断する場合に(ステップ715)、アプリケーション1のためのアプリケーションハンドラを生成し(ステップ722)、内部登録表285にアプリケーション1 107を登録し(ステップ725)、APP1用APIサブグループ262を提示する(ステップ745)。
The block diagram of FIG. 16 is an example of the registration process of FIG. First, the
図17は、いくつかの認証済みアプリケーションがセキュアメモリ装置145へのアクセスを要求する場合のソフトウェア層の一例を描いたものである。図2のステップ190で説明したように、アクセスできるAPIは各アプリケーションにつきSDKがどのように構成されたかによって異なる。例えば、アプリケーション1 107は、周辺装置用SDKセキュリティレイヤ125により首尾よく認証されて、内部登録表285に登録された後で、アプリケーション1用APIサブグループ262にアクセスする。例えば、アプリケーション1 107はそのAPIをコールし、セキュアメモリ装置145で保護対象コンテンツの格納やアクセスを安全に実行できるほか、セキュアメモリ装置145を構成することができる。APP1用API262は、アプリケーション1がセキュアファイルシステム135と装置ドライバ140を通じて保護対象コンテンツに対して要求されたタスクを実行するためのインターフェイスとなる。アプリケーション1 107の場合は、APP1用の全APIにアクセスできるようにSDKが構成されている。
FIG. 17 depicts an example of the software layer when several authenticated applications request access to the
アプリケーション2とアプリケーション3は、周辺装置用SDKセキュリティレイヤ125により首尾よく認証され、内部登録表285に登録された別のアプリケーションの例である。アプリケーション2はセキュアストレージAPIやDRM API等といったAPP2用APIサブグループを使用し、セキュアファイルシステム135と装置ドライバ140を通じて保護対象コンテンツのアクセスや格納を実行できるほか、SDKのコンフィグレーションAPIを使ってセキュアメモリ装置145を構成することもできる。しかし、アプリケーション2は、SDKの中にあるカスタムAPIにはアクセスできない。図2のステップ190で説明したように、アプリケーション2がアクセスできるAPIはSDKの構成に依拠する。同様に、アプリケーション3はAPP3用APIサブグループを使用し、セキュアファイルシステム135と装置ドライバ140を通じて保護対象コンテンツのアクセスや格納を実行できる。しかし、SDKは、図2のステップ190でコンフィグレーションAPIと、DRM APIと、カスタムAPIとにアプリケーション3がアクセスするようには構成されていないため、アプリケーション3はこれらのAPIにアクセスできない。
周辺装置としてセキュアメモリ装置を使用する例を継続し、図18のフローチャートは、周辺装置用SDK330がセキュアメモリ装置145で保護対象コンテンツを格納するタスクを実行する一例を説明するものである(図13のステップ525)。図13の登録プロセスが完了し、提示された1つ以上のAPIを使ってタスク要求が送信されたら、ステップ900で周辺装置用SDK330は、セキュアメモリ装置145で保護対象コンテンツを格納する場所を特定するようにセキュアファイルシステム135に指示する。セキュアファイルシステム135の所望の格納位置を提供するため、アプリケーション105は、図14のステップ745で提示されたAPIサブグループのAPIの1つをコールすることができる。
Continuing with the example of using a secure memory device as a peripheral device, the flowchart of FIG. 18 illustrates an example in which the
ステップ905では、周辺装置用SDK330が、セキュアチャネル155を確立するためのセッション鍵等の保護対象コンテンツの格納位置に係るパーミッションにアクセスする。ステップ910では、周辺装置用SDK330がステップ905でアクセスしたパーミッションをもとに保護対象コンテンツの転送にセキュアチャネルを使用するべきか否かを判断する。
セキュアチャネルを使用するべきでないと周辺装置用SDK330が判断すると、ホスト装置100上のホスト記憶管理部110からオープンチャネル150を通じてセキュアメモリ装置145へ保護対象コンテンツが転送される(ステップ915)。アプリケーション105は、図14のステップ745で提示されたAPIサブグループのAPIの1つをコールすることによってこのコンテンツを転送する。保護対象コンテンツアクセス管理部320は格納位置のCEKにアクセスし、このCEKと暗号エンジンライブラリ235とを使ってコンテンツを暗号化するように周辺装置暗号エンジン160に指示する。次いで、保護対象コンテンツアクセス管理部320が暗号化された保護対象コンテンツを該当する格納位置に格納する(ステップ925)。
In
When the
周辺装置用SDK330は、ステップ910でセキュアチャネル155を使用するべきと判断した場合には、アプリケーション105から提示されたAPIサブグループの1
APIを通じてコンテンツを受信し、セッション鍵と該当する暗号法を使ってホスト装置100内で保護対象コンテンツを暗号化するようにホスト装置暗号エンジン185に指示する(ステップ930)。ステップ935では、ホスト装置100上のホスト記憶管理部110からセキュアチャネル155を通じてセキュアメモリ装置145へ暗号化されたコンテンツが転送される。次いで、周辺装置暗号エンジン160が暗号エンジンライブラリ235を使ってセキュアメモリ装置145にて転送された保護対象コンテンツを復号化する(ステップ940)。
保護対象コンテンツアクセス管理部320は、ステップ920で保護対象コンテンツが格納される格納位置のCEKにアクセスし、このCEKと暗号エンジンライブラリ235を使ってコンテンツを暗号化するように周辺装置暗号エンジン160に指示する。次いで、保護対象コンテンツアクセス管理部320が暗号化された保護対象コンテンツを該当する格納位置に格納する(ステップ925)。
If the
The content is received through the API, and the host
In
図19のフローチャートは、周辺装置用SDKセキュリティレイヤ125がセキュアメモリ装置145に格納された保護対象コンテンツにアクセスするタスクを実行する一例を説明するものである(図13のステップ525)。図13の登録プロセスが完了し、提示された1つ以上のAPIを使ってタスク要求が送信されたら、ステップ800で周辺装置用SDKセキュリティレイヤ125は、セキュアメモリ装置145の該当する位置で要求された保護対象コンテンツを見つけるようにセキュアファイルシステム135に指示する。セキュアファイルシステム135の所望の格納位置を提供するため、アプリケーション105は、図14のステップ745で提示されたAPIサブグループのAPIの1つをコールすることができる。
The flowchart in FIG. 19 illustrates an example in which the peripheral device
保護対象コンテンツアクセス管理部320は、CEKやセッション鍵等の保護対象コンテンツの位置に係るパーミッションにアクセスする(ステップ805)。次いで、保護対象コンテンツアクセス管理部320はセキュアメモリ装置145の当該位置から保護対象コンテンツにアクセスし(ステップ810)、CEKと暗号エンジンライブラリ235を使ってコンテンツを復号化するように周辺装置暗号エンジン160に指示する(ステップ815)。
The protection target content
次いで、ステップ820では、保護対象コンテンツアクセス管理部320がホスト装置100上のホスト記憶管理部110へのコンテンツ転送にあたってセキュアチャネルを使用するべきか否かを判断する。保護対象コンテンツアクセス管理部320は、ステップ805でアクセスしたセッション鍵がオープンチャネル150を使った保護対象コンテンツ転送を指示する場合に、オープンチャネル150を通じてホスト装置100上のホスト記憶管理部110へコンテンツを転送する(ステップ825)。
Next, in
ステップ820で、保護対象コンテンツアクセス管理部320は、ホスト装置100上のホスト記憶管理部110への保護対象コンテンツの転送にあたってセキュアチャネル155を使用するべきことが判断された場合には、セキュアメモリ装置145でセッション鍵を使って保護対象コンテンツを暗号化するように周辺装置暗号エンジン160に指示する(ステップ830)。次いで、保護対象コンテンツアクセス管理部320は、セキュアチャネル155を通じてホスト装置100上のホスト記憶管理部110へ暗号化された保護対象コンテンツを転送する(ステップ835)。転送された保護対象コンテンツは、SDK暗号ライブラリ168により同じセッション鍵を使って復号化される(ステップ840)。
保護対象コンテンツが首尾よく転送され(ステップ825、ステップ835)、必要に応じ復号化されたら(ステップ840)、アプリケーション105は要求した保護対象コンテンツを受け取る(ステップ850)。アプリケーション105は、図14のステップ745で提示されたAPIサブグループの1 APIを使って要求した保護対象コンテンツを受け取る。
If it is determined in
Once the protected content has been successfully transferred (
図20のフローチャートは、周辺装置用SDKセキュリティレイヤ125で内部登録表285からアプリケーション105の登録を解除する一例を説明するものである(図13のステップ530)。周辺装置用SDKセキュリティレイヤ125は、ステップ945で、タスクが完了しているか否かをチェックする。周辺装置用SDKセキュリティレイヤ125はタスクが完了している場合には、登録表285からアプリケーション105に関連する情報を消去する(ステップ970)。次いで、周辺装置用SDKセキュリティレイヤ125は、内部登録表285からアプリケーション105の登録を解除する(ステップ975)。アプリケーション105の登録を解除するステップは、しかるべきAPIをコールすることにより、例えばuchar UnRegisterApplication(char*AppID)をコールすることにより、実行できる。このAPIは、内部登録表285から該当するアプリケーションIDを削除することによってアプリケーション105の登録を解除する。これで要求されたタスクを実行するプロセスは終了する(ステップ980)。
The flowchart in FIG. 20 illustrates an example of deregistering the
タスクがまだ完了していなければ、タスク要求が実行される一方で(ステップ525)、周辺装置用SDKセキュリティレイヤ125は、内部登録表285のタイムアウト期間にわたってアプリケーション105が登録されているか否かをチェックする(ステップ950)。このタイムアウト期間が過ぎている場合は、周辺装置用SDKセキュリティレイヤ125がアプリケーション105に関連する情報を登録表285から消去する(ステップ955)。次いで、周辺装置用SDKセキュリティレイヤ125がアプリケーション105の再認証を要求する(ステップ960)。アプリケーション105の再認証にあたっては図14に類似する認証プロセスを使用できる。周辺装置用SDKセキュリティレイヤ125は再認証の成否を判断する(ステップ965)。再認証に成功した場合には、タスクの実行を継続する(ステップ525)。再認証に成功しなければ、周辺装置用SDKセキュリティレイヤ125はしかるべきAPIをコールすることにより、例えばuchar UnRegisterApplication(char*AppID)をコールすることにより、内部登録表285からアプリケーション105の登録を解除する(ステップ975)。このAPIは内部登録表285から該当するアプリケーションIDを削除することによってアプリケーション105の登録を解除する。これでタスクを実行するプロセスは終了する(ステップ980)。
周辺装置用SDKセキュリティレイヤ125は、ステップ950で、内部登録表285のタイムアウト期間が過ぎていないと判断した場合には、ステップ525で引き続きタスク要求を実行する。
If the task has not yet been completed, the task request is executed (step 525), while the peripheral device
If the peripheral device
前述した種々実施形態の詳細な説明は、網羅的であることあるいは本発明を開示されたとおりの形態に限定することを意図するものではない。前述した教示に鑑みれば数多くの修正ならびに変形が可能である。説明した実施形態は、本発明の原理と実際的な応用を十分に説明し、当業者が様々な実施形態で意図された用途に応じ様々な修正を加えながら本発明を十分に役立てるために選ばれたものである。したがって、前述した説明は、添付の特許請求の範囲に記載された本発明の範囲を制限することを意図するものではない。 The above detailed description of various embodiments is not intended to be exhaustive or to limit the invention to the precise form disclosed. Many modifications and variations are possible in light of the above teaching. The described embodiments are sufficient to fully explain the principles and practical applications of the present invention and to enable those skilled in the art to fully utilize the present invention with various modifications depending on the intended use in the various embodiments. It has been. Therefore, the above description is not intended to limit the scope of the invention as set forth in the appended claims.
Claims (43)
周辺装置に係るコードセットをホスト装置にインストールするステップであって、前記コードセットが前記ホスト装置上で前記周辺装置を操作するためのコードセットを含むステップと、
前記ホスト装置上で第1のソフトウェアエンティティを前記コードセットを使用して認証するステップと、
前記第1のソフトウェアエンティティが首尾よく認証された場合には、前記第1のソフトウェアエンティティに対して前記コードセットの一部分を提示するステップであって、前記提示するステップが、前記第1のソフトウェアエンティティが前記周辺装置と通信するためのコードを提示することを含むステップと、
を含む方法。 A method for providing access to a secure device comprising:
Installing a code set associated with the peripheral device on the host device, the code set including a code set for operating the peripheral device on the host device;
Authenticating a first software entity on the host device using the code set;
If the first software entity is successfully authenticated, presenting a portion of the code set to the first software entity, the presenting step comprising: Presenting a code for communicating with the peripheral device;
Including methods.
前記コードセットは、装置ドライバコード、アプリケーションプログラミングインターフェイスコード、および認証コードを含み、
前記コードセットの一部分は、前記アプリケーションプログラミングインターフェイスコードおよび前記認証コードのコードの一部分を含む方法。 The method of claim 1, wherein
The code set includes device driver code, application programming interface code, and authentication code;
The method wherein the portion of the code set includes a portion of the code of the application programming interface code and the authentication code.
前記コードセットにて前記第1のソフトウェアエンティティからタスク要求を受信するステップと、
前記コードセットの一部分を使用して前記タスク要求を実行するステップと、
をさらに含む方法。 The method of claim 1, wherein
Receiving a task request from the first software entity in the code set;
Performing the task request using a portion of the code set;
A method further comprising:
前記認証するステップは、
前記第1のソフトウェアエンティティから資格証明を受信することと、
前記コードセットによって実行される、前記資格証明をベリファイすることと、
を含む方法。 The method of claim 1, wherein
The authenticating step comprises:
Receiving credentials from the first software entity;
Verifying the credentials performed by the code set;
Including methods.
前記第1のソフトウェアエンティティに対して1つ以上の認証オプションを提供するステップであって、前記提供するステップが前記コードセットによって実行されるステップと、
前記1つ以上の認証オプションのいずれか1つを指示する応答を前記第1のソフトウェアエンティティから受信するステップと、をさらに含み、
前記ベリファイすることは、前記応答に基づいて前記資格証明をベリファイすることを含む方法。 The method of claim 4, wherein
Providing one or more authentication options for the first software entity, wherein the providing step is performed by the code set;
Receiving from the first software entity a response indicating any one of the one or more authentication options;
The verifying includes verifying the credentials based on the response.
前記第1のソフトウェアエンティティが首尾よく認証されない場合には、前記第1のソフトウェアエンティティへエラーを返すステップをさらに含む方法。 The method of claim 1, wherein
A method further comprising returning an error to the first software entity if the first software entity is not successfully authenticated.
前記第1のソフトウェアエンティティが首尾よく認証される場合には、暗号関数にて前記第1のソフトウェアエンティティに係る識別子を使用してソフトウェアエンティティハンドラを生成するステップをさらに含む方法。 The method of claim 1, wherein
A method further comprising generating a software entity handler using an identifier associated with the first software entity in a cryptographic function if the first software entity is successfully authenticated.
前記第1のソフトウェアエンティティへ前記ソフトウェアエンティティハンドラを送信するステップをさらに含み、前記ソフトウェアエンティティハンドラは、第1のコードへのアクセスを提供する方法。 The method of claim 7, wherein
Sending the software entity handler to the first software entity, the software entity handler providing access to the first code.
前記第1のソフトウェアエンティティが首尾よく認証される場合には、前記コードセットを使用して前記第1のソフトウェアエンティティを登録するステップをさらに含み、前記登録するステップが、認証済みソフトウェアエンティティの表に前記ソフトウェアエンティティハンドラを登録することを含む方法。 The method of claim 7, wherein
If the first software entity is successfully authenticated, the method further comprises registering the first software entity using the code set, the registering step being included in the table of authenticated software entities. Registering the software entity handler.
前記コードセットの一部分が提示されることを伝える標識を送信するステップをさらに含み、前記送信するステップが、前記第1のソフトウェアエンティティが首尾よく登録される場合には、前記第1のソフトウェアエンティティへ前記標識を送信することを含む方法。 The method of claim 9, wherein
Further comprising transmitting an indication that a portion of the code set is to be presented, wherein the transmitting step is directed to the first software entity if the first software entity is successfully registered. Transmitting the indicator.
前記第1のソフトウェアエンティティが登録されている間は前記周辺装置に係るタスクを実行することを前記第1のソフトウェアエンティティに許可するステップをさらに含み、前記許可するステップが、前記ソフトウェアエンティティハンドラを前記コードセットの一部分とともに使用して前記タスクを実行することを前記第1のソフトウェアエンティティに許可することを含む方法。 The method of claim 10, wherein:
The method further includes allowing the first software entity to perform a task related to the peripheral device while the first software entity is registered, and the allowing step includes allowing the software entity handler to Allowing the first software entity to use with a portion of a code set to perform the task.
前記登録するステップは、前記第1のソフトウェアエンティティに係るパーミッションを登録することを含み、前記パーミッションは、前記第1のソフトウェアエンティティがアクセスできる前記コードセットの1つ以上の部分を指示する方法。 The method of claim 9, wherein
The registering step includes registering a permission associated with the first software entity, wherein the permission indicates one or more portions of the code set that the first software entity can access.
前記表にて指示される所定の期間にわたって前記第1のソフトウェアエンティティが前記表に登録されている場合には、前記第1のソフトウェアエンティティを登録解除するステップをさらに含む方法。 The method of claim 9, wherein
A method further comprising deregistering the first software entity if the first software entity has been registered in the table for a predetermined period indicated in the table.
前記第1のソフトウェアエンティティからタスク要求を受信するステップと、
前記コードセットの一部分を使用して前記タスク要求を実行するステップと、
前記タスク要求が実行された後で、前記コードセットを使用して前記表から前記第1のソフトウェアエンティティを登録解除するステップと、
をさらに含む方法。 The method of claim 9, wherein
Receiving a task request from the first software entity;
Performing the task request using a portion of the code set;
Deregistering the first software entity from the table using the code set after the task request is executed;
A method further comprising:
前記周辺装置は、フラッシュメモリ装置である方法。 The method of claim 1, wherein
The method wherein the peripheral device is a flash memory device.
前記周辺装置の1グループにてコンテンツを格納する要求を受信するステップであって、前記受信するステップが、前記第1のソフトウェアエンティティから前記コードセットにて前記要求を受信することを含むステップと、
前記第1のソフトウェアエンティティが首尾よく認証される場合には、前記グループに係る暗号鍵にアクセスするステップと、
前記暗号鍵を使用して前記コンテンツを暗号化するステップと、
前記コードセットの一部分を使用して前記グループにて前記コンテンツを格納するステップと、
をさらに含む方法。 The method of claim 1, wherein
Receiving a request to store content at a group of the peripheral devices, wherein the receiving step includes receiving the request in the codeset from the first software entity;
If the first software entity is successfully authenticated, accessing an encryption key associated with the group;
Encrypting the content using the encryption key;
Storing the content in the group using a portion of the code set;
A method further comprising:
前記周辺装置の1グループにてコンテンツにアクセスする要求を受信するステップであって、前記受信するステップが、前記第1のソフトウェアエンティティから前記コードセットにて前記要求を受信することを含むステップと、
前記第1のソフトウェアエンティティが首尾よく認証される場合には、前記グループに係る暗号鍵にアクセスするステップと、
前記暗号鍵を使用して前記コンテンツを復号化するステップと、
前記コードセットの一部分を使用して前記コンテンツにアクセスするステップと、
をさらに含む方法。 The method of claim 1, wherein
Receiving a request to access content at a group of the peripheral devices, the receiving step including receiving the request in the codeset from the first software entity;
If the first software entity is successfully authenticated, accessing an encryption key associated with the group;
Decrypting the content using the encryption key;
Accessing the content using a portion of the code set;
A method further comprising:
ホスト装置上の第1のソフトウェアエンティティのユーザから周辺装置に係る第1のタスク要求を受信するステップと、
前記第1のソフトウェアエンティティから、前記周辺装置のための前記ホスト装置にインストールされたコードセットへ、資格証明を送信するステップと、
前記資格証明が有効である場合には、前記第1のソフトウェアエンティティに係る前記コードセットの一部分にアクセスするステップであって、前記アクセスするステップが、前記第1のソフトウェアエンティティが前記第1のタスクを実行するためのコードにアクセスすることを含み、前記コードセットは、前記ホスト装置上の1つ以上のソフトウェアエンティティが前記周辺装置に係るタスクを実行するためのコードを含むステップと、
前記コードセットの一部分を使用して前記第1のタスクに係る情報を送信するステップであって、前記情報を送信するステップが、前記第1のソフトウェアエンティティによって実行されるステップと、
を含む方法。 A method for providing access to a device, comprising:
Receiving a first task request for a peripheral device from a user of a first software entity on a host device;
Sending credentials from the first software entity to a code set installed on the host device for the peripheral device;
If the credentials are valid, accessing a portion of the code set associated with the first software entity, wherein the accessing step includes the first task being performed by the first software entity. Accessing the code for executing the code, wherein the code set includes code for one or more software entities on the host device to perform tasks related to the peripheral device;
Transmitting information related to the first task using a portion of the code set, wherein transmitting the information is performed by the first software entity;
Including methods.
認証方式の選択肢から1認証方式を選択するステップをさらに含み、
前記資格証明を送信するステップは前記認証方式に依拠し、前記選択するステップは前記第1のソフトウェアエンティティによって実行される方法。 The method of claim 18, wherein:
Further comprising the step of selecting one authentication method from authentication method options;
Sending the credential depends on the authentication scheme and the selecting is performed by the first software entity.
第2の資格証明は送信せず、前記コードセットの部分を使用して第2のタスクに係る情報を送信し、前記送信が前記第1のソフトウェアエンティティによって実行されるステップをさらに含む方法。 The method of claim 18, wherein:
The method further comprising the steps of: transmitting no information related to a second task using the portion of the code set without transmitting a second credential, wherein the transmission is performed by the first software entity.
ホスト装置上の第1のソフトウェアエンティティへ、前記第1のソフトウェアエンティティからメモリ装置にアクセスする要求に応えて、1つ以上の認証オプションを送信するステップであって、前記1つ以上の認証オプションは、前記メモリ装置のための前記ホスト装置にインストールされたコードセットから導出され、前記コードセットは、前記ホスト装置上の1つ以上のソフトウェアエンティティに係るコードを含むステップと、
前記1つ以上の認証オプションに関連する資格証明を、前記第1のソフトウェアエンティティから受信するステップと、
前記資格証明が有効である場合には、前記第1のソフトウェアエンティティに係る第1のコードに対するアクセスを提供するステップであって、前記第1のコードは、前記メモリ装置へのアクセスを可能にし、かつ前記コードセットの一部分であるステップと、
を含む方法。 A method for providing access to a secure device comprising:
Transmitting one or more authentication options to a first software entity on a host device in response to a request to access a memory device from the first software entity, the one or more authentication options comprising: Deriving from a code set installed on the host device for the memory device, the code set including code relating to one or more software entities on the host device;
Receiving credentials from the first software entity associated with the one or more authentication options;
If the credentials are valid, providing access to a first code associated with the first software entity, the first code enabling access to the memory device; And being a part of the code set;
Including methods.
前記資格証明が有効である場合には、前記第1のソフトウェアエンティティの識別子を使用してソフトウェアエンティティハンドラを計算するステップと、
前記第1のソフトウェアエンティティへ前記ソフトウェアエンティティハンドラを送信するステップであって、前記ソフトウェアエンティティハンドラは、前記第1のコードにアクセスするために前記第1のソフトウェアエンティティによって使用されるステップと、
をさらに含む方法。 The method of claim 21, wherein
If the credentials are valid, computing a software entity handler using the identifier of the first software entity;
Sending the software entity handler to the first software entity, wherein the software entity handler is used by the first software entity to access the first code;
A method further comprising:
前記資格証明が有効である場合には、認証済みソフトウェアエンティティの表に前記第1のソフトウェアエンティティを登録するステップであって、前記登録するステップが、前記表に前記ソフトウェアエンティティハンドラを登録することを含むステップと、
前記第1のソフトウェアエンティティが前記表に登録されている間は、前記メモリ装置に係る1つ以上のタスクを実行することを前記第1のソフトウェアエンティティに許可するステップであって、前記許可するステップが、前記ソフトウェアエンティティハンドラを前記第1のコードとともに使用して前記1つ以上のタスクを実行することを前記第1のソフトウェアエンティティに許可するステップと、
をさらに含む方法。 The method of claim 22, wherein
If the credential is valid, registering the first software entity in a table of authorized software entities, wherein the registering step registers the software entity handler in the table. Including steps;
Allowing the first software entity to perform one or more tasks associated with the memory device while the first software entity is registered in the table, the allowing step Allowing the first software entity to perform the one or more tasks using the software entity handler with the first code;
A method further comprising:
前記1つ以上のタスクが完了するときに前記表から前記第1のソフトウェアエンティティを登録解除するステップをさらに含む方法。 24. The method of claim 23.
The method further comprising deregistering the first software entity from the table when the one or more tasks are completed.
前記表にて指示される所定の期間にわたり前記ソフトウェアエンティティが前記表に登録された後で、前記表から前記第1のソフトウェアエンティティを登録解除するステップをさらに含む方法。 24. The method of claim 23.
The method further comprising deregistering the first software entity from the table after the software entity is registered in the table for a predetermined period of time indicated in the table.
周辺装置と、
前記周辺装置と通信するホスト装置であって、前記ホスト装置が前記周辺装置に対するアクセスを制御するように適合された1つ以上のプロセッサを含み、前記1つ以上のプロセッサが前記周辺装置のための前記ホスト装置にインストールされたコードセットを処理するように適合され、前記コードセットは前記周辺装置と前記ホスト装置上の1つ以上のソフトウェアエンティティとの通信を可能にし、前記1つ以上のプロセッサが前記ホスト装置上の第1のソフトウェアエンティティからの資格証明をベリファイするように適合され、かつ前記資格証明が有効である場合には、前記第1のソフトウェアエンティティに対して前記コードセットのコードのサブセットを提示するように適合され、前記コードのサブセットは前記第1のソフトウェアエンティティに関連するホスト装置と、
を備えるシステム。 A system for accessing a secure device,
Peripheral devices;
A host device in communication with the peripheral device, the host device including one or more processors adapted to control access to the peripheral device, the one or more processors for the peripheral device Adapted to process a code set installed on the host device, wherein the code set enables communication between the peripheral device and one or more software entities on the host device, wherein the one or more processors are A subset of code of the code set for the first software entity if adapted to verify credentials from the first software entity on the host device and the credentials are valid; And the subset of the code is adapted to present the first software. And a host device associated with the A entity,
A system comprising:
前記1つ以上のプロセッサは、前記第1のソフトウェアエンティティからタスク要求を受信し、
前記1つ以上のプロセッサは、前記1つ以上のプロセッサに前記コードセットがプログラムされる場合には、前記タスクを実行するシステム。 The system of claim 26.
The one or more processors receive a task request from the first software entity;
The one or more processors perform the task when the code set is programmed in the one or more processors.
前記1つ以上のプロセッサは、前記第1のソフトウェアエンティティに1つ以上の認証オプションを提供し、
前記1つ以上のプロセッサは、前記1つ以上の認証オプションのいずれか1つを指示する応答を前記第1のソフトウェアエンティティから受信し、
前記1つ以上のプロセッサは、前記応答に基づいて前記資格証明をベリファイするシステム。 The system of claim 26.
The one or more processors provide one or more authentication options to the first software entity;
The one or more processors receive a response from the first software entity indicating any one of the one or more authentication options;
The one or more processors verify the credential based on the response.
前記1つ以上のプロセッサは、前記資格証明が有効でない場合には、前記第1のソフトウェアエンティティへエラーを返すシステム。 The system of claim 26.
The one or more processors return an error to the first software entity if the credentials are not valid.
前記1つ以上のプロセッサは、前記資格証明が有効である場合には、暗号関数にて前記第1のソフトウェアエンティティに係る識別子を使用してソフトウェアエンティティハンドラを生成するシステム。 The system of claim 26.
The one or more processors generate a software entity handler using an identifier associated with the first software entity in a cryptographic function if the credentials are valid.
前記1つ以上のプロセッサは、前記第1のソフトウェアエンティティへ前記ソフトウェアエンティティハンドラを送信するシステム。 The system of claim 30, wherein
The one or more processors send the software entity handler to the first software entity.
前記1つ以上のプロセッサは、前記資格証明が有効である場合には、認証済みソフトウェアエンティティの表に前記第1のソフトウェアエンティティを登録し、
前記1つ以上のプロセッサは、前記資格証明が有効である場合には、前記表に前記ソフトウェアエンティティハンドラを登録するシステム。 The system of claim 30, wherein
The one or more processors register the first software entity in a table of authorized software entities if the credentials are valid;
The system wherein the one or more processors register the software entity handler in the table if the credentials are valid.
前記1つ以上のプロセッサは、前記ソフトウェアエンティティが首尾よく登録される場合には、前記第1のソフトウェアエンティティへ標識を送信し、前記標識は前記コードのサブセットが提示されることを指示するシステム。 The system of claim 32.
The one or more processors send a sign to the first software entity if the software entity is successfully registered, the sign indicating that a subset of the code is presented.
前記1つ以上のプロセッサは、前記1つ以上のプロセッサに前記コードのサブセットがプログラムされる場合には、前記第1のソフトウェアエンティティが前記表に登録されている間は、前記ソフトウェアエンティティハンドラを使用して前記周辺装置に係るタスクを実行することを前記第1のソフトウェアエンティティに許可するシステム。 34. The system of claim 33.
The one or more processors use the software entity handler while the first software entity is registered in the table when the subset of code is programmed into the one or more processors. A system that permits the first software entity to execute a task related to the peripheral device.
前記1つ以上のプロセッサは、前記第1のソフトウェアエンティティに係るパーミッションを前記表に登録し、前記パーミッションは、前記コードセットのうちの前記第1のソフトウェアエンティティがアクセスできる1つ以上のサブセットを指示するシステム。 The system of claim 32.
The one or more processors register permissions for the first software entity in the table, the permissions indicating one or more subsets of the code set that the first software entity can access. System.
前記1つ以上のプロセッサは、前記表にて指示される所定の期間にわたって前記第1のソフトウェアエンティティが前記表に登録されている場合には、前記第1のソフトウェアエンティティを登録解除するシステム。 The system of claim 32.
The one or more processors, when the first software entity has been registered in the table for a predetermined period indicated in the table, deregisters the first software entity.
前記1つ以上のプロセッサは、前記第1のソフトウェアエンティティからタスク要求を受信し、
前記1つ以上のプロセッサは、前記1つ以上のプロセッサに前記コードのサブセットがプログラムされる場合には、前記タスク要求を実行し、
前記1つ以上のプロセッサは、前記タスク要求が実行された後で、前記表から前記第1のソフトウェアエンティティを登録解除するシステム。 The system of claim 32.
The one or more processors receive a task request from the first software entity;
The one or more processors execute the task request when the subset of code is programmed into the one or more processors;
The system wherein the one or more processors deregister the first software entity from the table after the task request is executed.
前記周辺装置は、フラッシュメモリ装置であるシステム。 The system of claim 26.
The system wherein the peripheral device is a flash memory device.
前記1つ以上のプロセッサは、前記周辺装置の1グループにてコンテンツを格納する要求を受信し、前記要求が前記第1のソフトウェアエンティティから受信され、
前記1つ以上のプロセッサは、前記資格証明が有効である場合には、前記グループに係る暗号鍵にアクセスし、
前記周辺装置は、前記暗号鍵を使用して前記コンテンツを暗号化し、かつ前記グループにて前記コンテンツを格納する1つ以上の周辺装置プロセッサを含むシステム。 The system of claim 26.
The one or more processors receive a request to store content in a group of the peripheral devices, the request received from the first software entity;
The one or more processors access an encryption key associated with the group if the credentials are valid;
The peripheral device includes one or more peripheral device processors that encrypt the content using the encryption key and store the content in the group.
前記1つ以上のプロセッサは、前記周辺装置の1グループにてコンテンツにアクセスする要求を受信し、前記要求が前記第1のソフトウェアエンティティから受信され、
前記1つ以上のプロセッサは、前記資格証明が有効である場合には、前記グループに係る暗号鍵にアクセスし、
前記周辺装置は、前記暗号鍵を使用して前記コンテンツを復号化する1つ以上の周辺装置プロセッサを含み、
前記1つ以上のプロセッサは、前記1つ以上のプロセッサに前記コードのサブセットがプログラムされる場合には、前記コンテンツにアクセスするシステム。 The system of claim 26.
The one or more processors receive a request to access content in a group of the peripheral devices, the request received from the first software entity;
The one or more processors access an encryption key associated with the group if the credentials are valid;
The peripheral device includes one or more peripheral device processors that decrypt the content using the encryption key;
The one or more processors access the content if the subset of code is programmed into the one or more processors.
暗号エンジンと、
前記暗号エンジンと通信するホスト装置上の1つ以上のプロセッサであり、前記暗号エンジンは、前記ホスト装置上の第1のソフトウェアエンティティからの資格証明をベリファイし、前記1つ以上のプロセッサは、前記ホスト装置と通信するメモリ装置へのアクセスを傍受し、前記第1のソフトウェアエンティティから前記資格証明を受信し、前記資格証明が有効である場合には、前記第1のソフトウェアエンティティに係るコードを提示し、かつ前記1つ以上のプロセッサに前記コードがプログラムされた場合には、前記メモリ装置にアクセスすることを前記第1のソフトウェアエンティティに許可する1つ以上のプロセッサと、
を備えたシステム。 A system for accessing a secure device,
A crypto engine,
One or more processors on a host device in communication with the cryptographic engine, the cryptographic engine verifies credentials from a first software entity on the host device, and the one or more processors Intercept access to a memory device that communicates with a host device, receive the credentials from the first software entity, and if the credentials are valid, present code associated with the first software entity And, if the code is programmed into the one or more processors, one or more processors that allow the first software entity to access the memory device;
With system.
前記1つ以上のプロセッサは、1つ以上の認証オプションを前記第1のソフトウェアエンティティに提供し、
前記1つ以上のプロセッサは、前記1つ以上の認証オプションの選択を前記第1のソフトウェアエンティティから受信し、
前記暗号エンジンは、前記選択に基づいて前記資格証明をベリファイするシステム。 42. The system of claim 41, wherein
The one or more processors provide one or more authentication options to the first software entity;
The one or more processors receive a selection of the one or more authentication options from the first software entity;
The crypto engine verifies the credentials based on the selection.
前記1つ以上のプロセッサは、前記資格証明が有効である場合には、認証済みソフトウェアエンティティの表に前記第1のソフトウェアエンティティを登録し、
前記1つ以上のプロセッサは、前記第1のソフトウェアエンティティが前記表に登録されている間は、前記第1のソフトウェアエンティティと前記メモリ装置との通信を許可するシステム。 42. The system of claim 41, wherein
The one or more processors register the first software entity in a table of authorized software entities if the credentials are valid;
The one or more processors allow communication between the first software entity and the memory device while the first software entity is registered in the table.
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US12/124,456 US8621601B2 (en) | 2008-05-21 | 2008-05-21 | Systems for authentication for access to software development kit for a peripheral device |
US12/124,456 | 2008-05-21 | ||
US12/124,450 | 2008-05-21 | ||
US12/124,450 US20090293117A1 (en) | 2008-05-21 | 2008-05-21 | Authentication for access to software development kit for a peripheral device |
PCT/US2009/002637 WO2009142689A1 (en) | 2008-05-21 | 2009-04-30 | Authentication for access to software development kit for a peripheral device |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2011523481A true JP2011523481A (en) | 2011-08-11 |
JP2011523481A5 JP2011523481A5 (en) | 2012-06-14 |
Family
ID=40844807
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2011510489A Pending JP2011523481A (en) | 2008-05-21 | 2009-04-30 | Access authentication for software development kit for peripheral devices |
Country Status (6)
Country | Link |
---|---|
EP (1) | EP2294528A1 (en) |
JP (1) | JP2011523481A (en) |
KR (1) | KR20110033112A (en) |
CN (1) | CN102089765A (en) |
TW (1) | TW201003457A (en) |
WO (1) | WO2009142689A1 (en) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2016526223A (en) * | 2013-05-20 | 2016-09-01 | サイトリックス システムズ,インコーポレイテッド | Mobile application identity verification for mobile application management |
WO2020262135A1 (en) * | 2019-06-26 | 2020-12-30 | 株式会社デンソー | Vehicle control system and electronic control device |
JP7528366B2 (en) | 2020-11-05 | 2024-08-05 | ▲騰▼▲訊▼科技(深▲セン▼)有限公司 | Service communication method, system, device and electronic device |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9032535B2 (en) * | 2009-12-31 | 2015-05-12 | Sandisk Technologies Inc. | Storage device and method for providing a scalable content protection system |
US9372785B2 (en) | 2013-03-07 | 2016-06-21 | Microsoft Technology Licensing, Llc | Identifying implicit assumptions associated with a software product |
US9547607B2 (en) * | 2013-06-27 | 2017-01-17 | Microsoft Technology Licensing, Llc | Brokering application access for peripheral devices |
EP2899667B1 (en) * | 2014-01-23 | 2020-03-11 | Alcatel Lucent | System for controlling access to peripheral devices |
CN103812871B (en) * | 2014-02-24 | 2017-03-22 | 北京明朝万达科技股份有限公司 | Development method and system based on mobile terminal application program security application |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH10232811A (en) * | 1997-02-20 | 1998-09-02 | Hitachi Ltd | Security management method for data base |
JP2000069451A (en) * | 1998-06-11 | 2000-03-03 | Thomson Multimedia Sa | Method and device for extending interface function common with digital video broadcasting by direct access to conditional access module |
JP2002041170A (en) * | 2000-07-27 | 2002-02-08 | Matsushita Electric Ind Co Ltd | Program performance controller |
JP2003108253A (en) * | 2001-09-28 | 2003-04-11 | Hitachi Software Eng Co Ltd | Method and program for monitoring application |
JP2007011556A (en) * | 2005-06-29 | 2007-01-18 | Hitachi Software Eng Co Ltd | Method for protecting secret file of security measure application |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7373656B2 (en) * | 2000-10-27 | 2008-05-13 | Sandisk Il Ltd. | Automatic configuration for portable devices |
US7802294B2 (en) * | 2005-01-28 | 2010-09-21 | Microsoft Corporation | Controlling computer applications' access to data |
US20070033144A1 (en) * | 2005-08-03 | 2007-02-08 | Microsoft Corporation | Binding components |
JP4361894B2 (en) * | 2005-09-15 | 2009-11-11 | 株式会社エヌ・ティ・ティ・ドコモ | External memory management device and external memory management method |
JP2007172508A (en) * | 2005-12-26 | 2007-07-05 | Sony Corp | Detachable storage device and authentication method |
-
2009
- 2009-04-30 CN CN200980127311.1A patent/CN102089765A/en active Pending
- 2009-04-30 EP EP09750920A patent/EP2294528A1/en not_active Withdrawn
- 2009-04-30 JP JP2011510489A patent/JP2011523481A/en active Pending
- 2009-04-30 WO PCT/US2009/002637 patent/WO2009142689A1/en active Application Filing
- 2009-04-30 KR KR1020107026110A patent/KR20110033112A/en not_active Application Discontinuation
- 2009-05-19 TW TW98116598A patent/TW201003457A/en unknown
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH10232811A (en) * | 1997-02-20 | 1998-09-02 | Hitachi Ltd | Security management method for data base |
JP2000069451A (en) * | 1998-06-11 | 2000-03-03 | Thomson Multimedia Sa | Method and device for extending interface function common with digital video broadcasting by direct access to conditional access module |
JP2002041170A (en) * | 2000-07-27 | 2002-02-08 | Matsushita Electric Ind Co Ltd | Program performance controller |
JP2003108253A (en) * | 2001-09-28 | 2003-04-11 | Hitachi Software Eng Co Ltd | Method and program for monitoring application |
JP2007011556A (en) * | 2005-06-29 | 2007-01-18 | Hitachi Software Eng Co Ltd | Method for protecting secret file of security measure application |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9838398B2 (en) | 2013-03-29 | 2017-12-05 | Citrix Systems, Inc. | Validating the identity of an application for application management |
JP2016526223A (en) * | 2013-05-20 | 2016-09-01 | サイトリックス システムズ,インコーポレイテッド | Mobile application identity verification for mobile application management |
WO2020262135A1 (en) * | 2019-06-26 | 2020-12-30 | 株式会社デンソー | Vehicle control system and electronic control device |
JP2021005217A (en) * | 2019-06-26 | 2021-01-14 | 株式会社デンソー | Vehicle control system and electronic control device |
CN114040865A (en) * | 2019-06-26 | 2022-02-11 | 株式会社电装 | Vehicle control system and electronic control device |
JP7528366B2 (en) | 2020-11-05 | 2024-08-05 | ▲騰▼▲訊▼科技(深▲セン▼)有限公司 | Service communication method, system, device and electronic device |
Also Published As
Publication number | Publication date |
---|---|
CN102089765A (en) | 2011-06-08 |
EP2294528A1 (en) | 2011-03-16 |
TW201003457A (en) | 2010-01-16 |
KR20110033112A (en) | 2011-03-30 |
WO2009142689A1 (en) | 2009-11-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8621601B2 (en) | Systems for authentication for access to software development kit for a peripheral device | |
US8171310B2 (en) | File system filter authentication | |
JP4913871B2 (en) | Upgrade memory cards with security mechanisms to prevent copying of secure content and applications | |
US9075957B2 (en) | Backing up digital content that is stored in a secured storage device | |
US8447889B2 (en) | Portable mass storage device with virtual machine activation | |
US8966580B2 (en) | System and method for copying protected data from one secured storage device to another via a third party | |
US8214630B2 (en) | Method and apparatus for controlling enablement of JTAG interface | |
US8898477B2 (en) | System and method for secure firmware update of a secure token having a flash memory controller and a smart card | |
JP4615601B2 (en) | Computer security system and computer security method | |
US20090276474A1 (en) | Method for copying protected data from one secured storage device to another via a third party | |
US20080126705A1 (en) | Methods Used In A Portable Mass Storage Device With Virtual Machine Activation | |
JP2011523481A (en) | Access authentication for software development kit for peripheral devices | |
JP2013514587A (en) | Content management method using certificate revocation list | |
JP2007512787A (en) | Trusted mobile platform architecture | |
KR101504647B1 (en) | Portable mass storage with virtual machine activation | |
US20090293117A1 (en) | Authentication for access to software development kit for a peripheral device | |
US20070263868A1 (en) | Method and apparatus for securely executing a background process | |
KR20090034332A (en) | Control system and method using identity objects | |
JP2008171116A (en) | Storage device and its access control system |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20110315 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20120425 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20120425 |
|
A711 | Notification of change in applicant |
Free format text: JAPANESE INTERMEDIATE CODE: A711 Effective date: 20120615 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20130930 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20131008 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20140311 |