[go: up one dir, main page]
More Web Proxy on the site http://driver.im/

JP2011523481A - Access authentication for software development kit for peripheral devices - Google Patents

Access authentication for software development kit for peripheral devices Download PDF

Info

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
Application number
JP2011510489A
Other languages
Japanese (ja)
Other versions
JP2011523481A5 (en
Inventor
ヤン,メイ
ヤング,チエ−ハオ
カッワミ,バーマン
サビト−シャルギ,ファルシード
ドワイヤー,パトリシア
ユアン,ポー
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
SanDisk Corp
Original Assignee
SanDisk Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from US12/124,456 external-priority patent/US8621601B2/en
Priority claimed from US12/124,450 external-priority patent/US20090293117A1/en
Application filed by SanDisk Corp filed Critical SanDisk Corp
Publication of JP2011523481A publication Critical patent/JP2011523481A/en
Publication of JP2011523481A5 publication Critical patent/JP2011523481A5/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/78Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data
    • G06F21/79Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data in semiconductor storage media, e.g. directly-addressable memories
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting 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/6281Protecting 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.

セキュア周辺装置のSDKがインストールされる前のホスト装置のブロック図である。It is a block diagram of the host device before the SDK of the secure peripheral device is installed. セキュア周辺装置のSDKを構成する1プロセスを説明するフローチャートである。It is a flowchart explaining 1 process which comprises SDK of a secure peripheral device. セキュア周辺装置用SDKの一例を示す。An example of a secure peripheral device SDK is shown. ホスト装置にセキュア周辺装置をロードする1プロセスを説明するフローチャートである。6 is a flowchart illustrating one process for loading a secure peripheral device into a host device. セキュア周辺装置のSDKがインストールされた後のホスト装置の一実施形態を示すブロック図である。FIG. 3 is a block diagram illustrating an embodiment of a host device after a secure peripheral device SDK is installed. セキュアメモリ装置のコードがインストールされる前のホスト装置のコンポーネントの一実施形態を示すブロック図である。FIG. 2 is a block diagram illustrating one embodiment of components of a host device before secure memory device code is installed. ホスト装置およびセキュアメモリ装置のコンポーネントの一実施形態を示すブロック図である。FIG. 3 is a block diagram illustrating one embodiment of components of a host device and a secure memory device. メモリ装置SDKの一実施形態のブロック図である。2 is a block diagram of an embodiment of a memory device SDK. FIG. セキュアメモリ装置の一実施形態を示すブロック図である。1 is a block diagram illustrating one embodiment of a secure memory device. セキュアメモリ装置用ファームウェアモジュールの一実施形態を示すブロック図である。2 is a block diagram illustrating an embodiment of a firmware module for a secure memory device. FIG. セキュアメモリ装置内のパーティションの一例を示す。2 shows an example of a partition in a secure memory device. メモリ装置用SDKに含まれるアプリケーションAPIの一例である。It is an example of application API contained in SDK for memory devices. セキュア周辺装置にアクセスする1プロセスを説明するフローチャートである。6 is a flowchart illustrating one process for accessing a secure peripheral device. ホスト装置上でソフトウェアエンティティを登録するプロセスの一例を説明するフローチャートである。It is a flowchart explaining an example of the process of registering a software entity on a host device. SDKで実行できる認証方式のフローチャートである。It is a flowchart of the authentication system which can be performed by SDK. SDKで実行できる認証方式のフローチャートである。It is a flowchart of the authentication system which can be performed by SDK. SDKで実行できる認証方式のフローチャートである。It is a flowchart of the authentication system which can be performed by SDK. 登録プロセスの一例を示す。An example of the registration process is shown. ホスト装置上で首尾よく登録されたソフトウェアエンティティの一例を示す。Fig. 4 illustrates an example of a software entity successfully registered on a host device. メモリ装置に保護対象コンテンツを格納するプロセスの一実施形態を説明するフローチャートである。5 is a flowchart illustrating an embodiment of a process for storing protected content in a memory device. メモリ装置で保護対象コンテンツにアクセスするプロセスの一実施形態を説明するフローチャートである。6 is a flowchart illustrating an embodiment of a process for accessing protected content in a memory device. ソフトウェアエンティティの登録を解除するプロセスの一実施形態を説明するフローチャートである。6 is a flowchart illustrating one embodiment of a process for deregistering a software entity.

開示された本願の技術は、ホスト装置でセキュリティ機能を実施することにより安全な周辺装置アクセスを提供する。周辺装置は、メモリ装置、プリンタ、キーボード等のホスト装置を介して操作される何らかの装置であることができる。ホスト装置上で周辺装置を操作するには、周辺装置用のソフトウェアをホスト装置にインストールしなければならない。このソフトウェアは、ダイナミックリンクライブラリ(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 host device 255 before the peripheral device SDK code set is installed. The host device 255 includes an application 105, a memory 260, and a host CPU 165. The host device 255 can be an electronic device such as a mobile phone, a PC, a digital camera, a mobile media player, a personal digital assistant (PDA), a mobile computing device, and a non-mobile computing device. The application 105 is any software entity used on a host device such as a calendar, a document viewer, or a media player. The application 105 may be a software entity used for starting an application. The memory 260 is some memory required for the host device 255. The host CPU 165 is any processor used for operating the host device 255.

図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 host device 255 depicted in FIG. 1, the SDK software is a software entity or application on the host device that accesses the peripheral device. Can be configured for each. Software entities on the host device can often be owned or created by customers with different needs and preferences. The SDK can be configured based on each software entity / application or based on customer needs and preferences such as authentication preferences and customer application functionality. FIG. 2 is a flowchart of one process for constructing an SDK code set based on various applications and / or customer needs and preferences. In step 190, the SDK software developer develops SDK software for each application and / or customer based on the application and / or customer requirements. For example, an SDK code set that accesses a peripheral device through a customer application usually requires an API that acts as an intermediary between the application and the peripheral device. The SDK software for accessing the application API can be configured in detail according to customer preferences. For example, the SDK is configured to require application authentication prior to access by a peripheral device. The SDK is configured so that an API to be accessed is determined for each application. In step 195, the SDK software for operating the peripheral device is configured based on the required API of the specific SDK software for each application / customer executed in step 190. For example, SDK software modifications for security functions required for each application / customer are included. Once the SDK software is configured to operate the peripheral device, the SDK will install all of the software configured for each application and / or customer in step 190 (security software required for authentication, etc.) and the software customized in step 195. Other software for operating peripheral devices on the containing host device will also work properly.

図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 peripheral device SDK 330 code set constructed according to the process of FIG. The peripheral device SDK 330 code includes a subset of the security layer 125, application APIs 1 to 3, device driver 140, and the like. This SDK code set can be a dynamic link library (DLL) or a static library (LIB). Security layer 125 includes software for authenticating different applications attempting to access the peripheral device. The security layer 125 can be part of the SDK software configured in step 195 of FIG. For example, the security layer 125 can be configured such that an additional authentication function is required for the application 1 API 262. The security layer 125 will be described in detail later. Each application must use the APIs for applications 1 to 3 to communicate with the peripheral device. As described in step 190 of FIG. 2, these APIs can be configured based on customer preferences for the application. For example, the application 1 API 262 can be an API customized for the application 105 in the host device 255 of FIG. The device driver 140 is software for operating peripheral devices normally on the host device.

図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 step 170 of FIG. 4, the secure peripheral device is connected to the host device. When the secure peripheral device is connected to the host device, the SDK for operating the secure peripheral device is read into the host device and installed (step 175). This SDK can be stored in the secure peripheral device memory. The SDK includes software for operating the secure peripheral device to program the host CPU on the host device and prevent unauthorized access. Once the SDK code set is successfully read and installed in the host device, the host device can be operated with the secure peripheral device (step 180).

実施形態によっては、ある特定のセキュア周辺装置がホスト装置に初めて接続されるときにだけステップ175が実行されることに留意するべきである。セキュア周辺装置が最初に接続されるときにホスト装置にSDKがインストールされると、セキュア周辺装置がホスト装置に再接続されるたびにSDKをインストールする必要はない。別の実施形態では、ホスト装置へセキュア周辺装置が接続されるたびにSDKの読み込みとインストールを行う。   It should be noted that in some embodiments, step 175 is performed only when a particular secure peripheral device is first connected to the host device. If the SDK is installed on the host device when the secure peripheral device is first connected, there is no need to install the SDK every time the secure peripheral device is reconnected to the host device. In another embodiment, the SDK is loaded and installed each time a secure peripheral device is connected to the host device.

一実施形態において、ホスト装置にオペレーティングシステムがインストールされる前にセキュア周辺装置を操作するための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 host device 255 and secure peripheral device 145 after the SDK 330 code set of FIG. 3 is installed. In addition to the initial components (application 105, memory 260, and host CPU 165) seen in FIG. 1, the host device 255 includes components of the SDK 330 (security layer 125, APIs for applications 1 to 3 and device driver 140) seen in FIG. including. When the user of the host device 255 requests a task including the secure peripheral device 145 through the application 105, the security layer 125 causes the host CPU 165 to authenticate the application 105. If the application 105 is successfully authenticated by the security layer 125, the security layer presents an API subgroup dedicated to the application 105. For example, if the application 105 is the application 1, the application 1 API 262 is presented. Application 105 can then use the subset of the SDK code set to send a task request to secure peripheral device 145 via device driver 140. Application 105 can also send task requests for users using these APIs.
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 host device 100 before the SDK for secure memory device is installed. A user of the host device 100 usually accesses content stored in the host device 100 through a software entity such as the application 105. Examples of applications on the host device 100 include media players, calendars, address books, and the like stored in the host device 100. An application can also be executable code on the host device that is used to launch an application (media player, calendar, address book, etc.) stored at a location different from the executable code on the host device 100. For example, an application can be used to launch a media player application stored in a host device in a different part of the memory of the host device 100 or in a peripheral device connected to the host device 100. Content accessed or stored using the application 105 can include, for example, application, media, scheduling information, contact information, and the like.
The application 105 uses the host storage management unit 110 on the operating system for the host device 100, and accesses and stores content in peripheral devices such as the host device 100 and a removable memory device. The host storage management unit 110 is a software component on the operating system that controls the access function and the storage function, and includes access and storage within the host device 100 and between peripheral devices. Details will be described below.

図6にはホスト記憶管理部110とホストファイルシステム130も示している。ホストファイルシステム130は、ホスト記憶管理部110によって管理される1コンポーネントである。ホスト記憶管理部110はホストCPU165を使用してホストファイルシステム130にアクセスする。ホストファイルシステム130はホスト装置100のメモリに格納され、ホスト装置100や周辺装置に記憶されたコンテンツを検索し、コンテンツを記憶するために使用される。ユーザがホスト装置100からコンテンツを要求すると、ホスト記憶管理部110はホストファイルシステム130を使ってそのコンテンツを検索する。ユーザがコンテンツの格納を要求すると、ホスト記憶管理部110はホストファイルシステム130を使ってそのコンテンツを適切な場所に格納する。   FIG. 6 also shows the host storage management unit 110 and the host file system 130. The host file system 130 is one component managed by the host storage management unit 110. The host storage management unit 110 accesses the host file system 130 using the host CPU 165. The host file system 130 is stored in the memory of the host device 100, and is used for searching for content stored in the host device 100 and peripheral devices and storing the content. When a user requests content from the host device 100, the host storage management unit 110 searches for the content using the host file system 130. When the user requests storage of content, the host storage management unit 110 uses the host file system 130 to store the content in an appropriate location.

また、ホスト装置100に格納されたコンテンツは保護のために暗号化できる。ホスト装置はホスト暗号エンジン185を含むことができ、これは乱数生成部と対称暗号法(AES、DES、3DES等)、暗号ハッシュ関数(SHA−1等)、非対象暗号法(PKI、鍵ペア生成等)もしくはその他のどのような暗号法をもサポートする暗号処理部とを有することができる。   The content stored in the host device 100 can be encrypted for protection. The host device can include a host cryptographic engine 185, which includes a random number generator, a symmetric cryptographic method (AES, DES, 3DES, etc.), a cryptographic hash function (SHA-1, etc.), and a non-target cryptographic method (PKI, key pair). Generation) or any other cryptographic method.

図7は、周辺装置用SDK330のコードセットがホスト装置100に正常に読み込まれ、インストールされた後で、セキュアメモリ装置145と連動するホスト装置100の一例を示すものである。セキュア周辺装置は、一実施形態において、リムーバブルストレージ装置である。コンテンツは、セキュアメモリ装置のセキュアパーティションに格納されるか、セキュアメモリ装置のパブリックパーティションに格納される。セキュアメモリ装置は、大容量ストレージ装置や不揮発性フラッシュメモリ装置等の何らかのメモリ装置であることができる。セキュアメモリ装置のセキュアパーティションに格納されるコンテンツは、不正アクセスから保護される。コンテンツが保護される場合には、セキュアメモリ装置のパブリックパーティションに格納されるコンテンツも不正アクセスから保護される。コンテンツが暗号化される場合には、コンテンツはセキュアメモリ装置の中で保護される。コンテンツが暗号化されず、パブリックパーティションに格納される場合には、セキュアメモリ装置の中で保護されない。ホスト装置は、コンテンツを暗号化、復号化するための権限等のコンテンツに係るしかるべき権限を持つ場合に、セキュアメモリ装置上でコンテンツにアクセスできたり、コンテンツを格納できたりする。   FIG. 7 shows an example of the host device 100 that works with the secure memory device 145 after the code set of the peripheral device SDK 330 is normally read and installed in the host device 100. The secure peripheral device is a removable storage device in one embodiment. The content is stored in a secure partition of the secure memory device or in a public partition of the secure memory device. The secure memory device can be any memory device such as a mass storage device or a non-volatile flash memory device. Content stored in the secure partition of the secure memory device is protected from unauthorized access. If the content is protected, the content stored in the public partition of the secure memory device is also protected from unauthorized access. If the content is encrypted, the content is protected in a secure memory device. If the content is not encrypted and stored in the public partition, it is not protected in the secure memory device. The host device can access the content on the secure memory device and store the content when the host device has an appropriate authority related to the content such as an authority to encrypt and decrypt the content.

図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 host device 100 is physically connected to the secure memory device 145 by the physical interface 142. The application 105, the host CPU 165, the host device cryptographic engine 185, the host storage management unit 110, and the host file system 130 are software components on the host device 100 shown in FIG. The peripheral device SDK 330 is a code set that is installed in the host device 100 and used to operate the secure peripheral device 145 by the host device 100. The peripheral device SDK 330 handles secure peripheral device API 120, peripheral device SDK security layer 125, host file system 130, registration table 285, and SDK encryption when processing access and storage of the contents of the secure memory device 145. A library 168 and a secure file system 135 are used. As described in step 175 of FIG. 4, the secure peripheral device API 120, the peripheral device SDK security layer 125, the registration table 285, the SDK cryptographic library 168, the secure file system 135, and the device driver 140 Software components that are read from the SDK code set for the secure memory device 145 and installed on the host device. The open channel 150 and the secure channel 155 are data buses used for transferring content between the host device 100 and the secure memory device 145.

セキュアメモリ装置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 secure memory device 145 uses the software installed in the host device 100 for the secure memory device 145 to control content access and storage. The software includes a library preinstalled in the host apparatus in addition to the library described in step 175 of FIG. The SDK library loaded and installed on the host device can be a dynamic link library (DLL) or a static library (LIB) and can be integrated into the operating system on the host device. The SDK code set provides a hook to the host storage management unit 110 for secure operation of the secure memory device 145. For example, a subset of the peripheral device SDK code can be inserted into a call chain for calling the host file system 130, and the host CPU 165 can control the content access method and storage method. The peripheral device SDK security layer 125, secure peripheral device API 120, secure file system 135, registration table 285, SDK cryptographic library 168, and device driver 140 are hosted through the secure peripheral device SDK code set of FIG. A subset of the code provided to the device. These subsets are provided using device drivers 140 installed on the host device 100.

図7に示すように、ユーザは、ホスト装置上のアプリケーション105等のソフトウェアエンティティを通じてセキュアメモリ装置145に格納されたコンテンツにアクセスできる。セキュア周辺装置145に格納された保護されたコンテンツについては、後ほど詳述するように、コンテンツへのアクセスに先立ちアプリケーション105を認証する必要がある。
アプリケーション105はホスト装置用オペレーティングシステム上のホスト記憶管理部110を使用してセキュアメモリ装置145のコンテンツにアクセスし、コンテンツを格納する。ホスト記憶管理部110はアクセス機能と記憶機能とを制御する。これは、ホスト装置内でのアクセスや記憶と、セキュアメモリ装置145内でのアクセスや記憶を含む。
As shown in FIG. 7, the user can access content stored in the secure memory device 145 through a software entity such as an application 105 on the host device. For protected content stored in the secure peripheral device 145, the application 105 needs to be authenticated prior to accessing the content, as will be described in detail later.
The application 105 accesses the content in the secure memory device 145 using the host storage management unit 110 on the host device operating system, and stores the content. The host storage management unit 110 controls the access function and the storage function. This includes access and storage within the host device and access and storage within the secure memory device 145.

図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 storage management unit 110 normally controls the access function and storage function of the host device and peripheral devices using the host file system 130 on the host device operating system. The host file system 130 can be a normal file system such as FAT12, FAT16, FAT32, or NTFS. However, in the case of the secure memory device 145, the peripheral device SDK 330 of the secure memory device 145 uses the peripheral device SDK security layer 125 to control the access function and the storage function on the host device. A secure file system 135 for 145 is used. Access to the secure file system 135 is controlled by authenticating the application 105. If the authentication is successful, access is permitted only to the API dedicated to the application 105. These APIs are the correct interface for the secure file system 135. The secure file system 135 is a file system for content installed in the host device 100 for the secure memory device 145 and stored in the secure memory device 145. The secure file system 135 can be a normal file system such as FAT12, FAT16, FAT32, NTFS or the like.

周辺装置用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 SDK security layer 125 is read and installed as part of the SDK that is read and installed in step 175 of FIG. The peripheral device SDK security layer 125 causes the host CPU 165 to authenticate the application 105. If the application 105 is successfully authenticated, the application 105 is registered in the registration table 285. The peripheral device SDK security layer 125 also provides an application handler to the application 105. This application handler indicates which API the application 105 can access. Details of the authentication and registration process executed by the peripheral device SDK security layer 125 will be described later.

ユーザがアプリケーション105を通じてコンテンツへのアクセスを要求すると、周辺装置用SDKセキュリティレイヤ125は認証に成功した後で、セキュア周辺装置145のコンテンツにアクセスするにあたって必要なAPI、例えばセキュア周辺装置用API120を提供する。アプリケーション105はこのAPIを使用し、コンテンツのパーミッションにアクセスすることによりセキュア周辺装置145に格納されたコンテンツを受け取ることができる。コンテンツが保護される場合はコンテンツとともにヘッダが格納される。コンテンツを暗号化、復号化するためのコンテンツ暗号鍵(CEK)に関するドメイン情報や、格納されたコンテンツの種別を指示するコンテンツメタデータ等、このヘッダにはコンテンツに関する情報が入る。   When the user requests access to the content through the application 105, the peripheral device SDK security layer 125 provides an API necessary for accessing the content of the secure peripheral device 145, for example, the secure peripheral device API 120 after successful authentication. To do. The application 105 can receive the content stored in the secure peripheral device 145 by using this API and accessing the permission of the content. When the content is protected, a header is stored together with the content. This header contains information related to the content, such as domain information related to the content encryption key (CEK) for encrypting and decrypting the content and content metadata indicating the type of the stored content.

周辺装置用SDK330の中にあるセキュア周辺装置用API(アプリケーションプログラムインターフェイス)120は、コンテンツのアクセスや格納にあたってセキュア周辺装置145をアプリケーション105に連係させる。このセキュア周辺装置用API120はSDKの一部としてインストールされ、アプリケーション105が首尾よく認証される場合にはアプリケーション105によってコールされる。セキュア周辺装置用API120は、周辺装置用SDKセキュリティレイヤ125とセキュアファイルシステム135との橋渡しとなる。   A secure peripheral device API (application program interface) 120 in the peripheral device SDK 330 links the secure peripheral device 145 to the application 105 when accessing or storing content. This secure peripheral device API 120 is installed as part of the SDK, and is called by the application 105 if the application 105 is successfully authenticated. The secure peripheral device API 120 serves as a bridge between the peripheral device SDK security layer 125 and the secure file system 135.

セキュアファイルシステム135を使ってコンテンツの位置が特定されると、ホスト装置上の装置ドライバ140を使用し、セキュアメモリ装置145のしかるべき位置でコンテンツにアクセスもしくは格納できる。これは、ホスト装置100をセキュアメモリ装置145に物理的に接続する物理インターフェイス142を通じて行われる。コンテンツは、セキュアチャネル155またはオープンチャネル150を使用して、アクセスされたり、格納されたりすることができる。セキュア周辺装置145とホスト装置との間でコンテンツを転送するときにセキュアチャネル155を使用するか、それともオープンチャネル150を使用するかは、周辺装置用SDK330によって決定される。   Once the content location is determined using the secure file system 135, the device driver 140 on the host device can be used to access or store the content at the appropriate location on the secure memory device 145. This is done through a physical interface 142 that physically connects the host device 100 to the secure memory device 145. Content can be accessed and stored using secure channel 155 or open channel 150. Whether to use the secure channel 155 or the open channel 150 when transferring content between the secure peripheral device 145 and the host device is determined by the peripheral device SDK 330.

ユーザがアプリケーション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 application 105, the peripheral device SDK 330 stores the content using the host file system 130. When the user requests storage of content to be protected in the secure peripheral device 145, the peripheral device SDK 330 stores the content using the secure file system 135.
A secure peripheral device API (application program interface) 120 in the peripheral device SDK 330 links the secure peripheral device 145 to the application 105 when the protected content is accessed or stored. This secure peripheral device API 120 is installed as part of the SDK, and is called by the application 105 if the application 105 is successfully authenticated. The secure peripheral device API 120 serves as a bridge between the peripheral device SDK security layer 125 and the secure file system 135.

ホストファイルシステム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 host file system 130 or the secure file system 135, the device driver 140 on the host device is used to place the content on the secure memory device 145 at the appropriate location. Content can be accessed and stored. This is done through a physical interface 142 that physically connects the host device 100 to the secure memory device 145. The secure channel 155 or the open channel 150 can be used to access and store content. The peripheral device SDK security layer 125 determines whether to use the secure channel 155 or the open channel 150 when transferring content between the secure peripheral device 145 and the host device.
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 secure channel 155 is instructed, the content is encrypted using the session key prior to transfer using the secure channel 155. When the encrypted content is transferred, the content is decrypted using the same session key. In the host device 100, the SDK encryption library 168 is used to encrypt or decrypt content. The SDK encryption library 168 includes a random number generator and a symmetric encryption method (AES, DES, 3DES, etc.), a cryptographic hash function (SHA-1, etc.), a non-target encryption method (PKI, key pair generation, etc.) or any other The encryption function corresponding to this encryption method is also included. The secure peripheral device 145 has a unique encryption engine for performing encryption in the secure memory device 145 before and after content transfer, as will be described in detail in FIG. When the session key instructs content transfer using the open channel 150, the content is transferred without being encrypted.
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 peripheral device SDK 330 installed in the host device 100 when the peripheral device is a secure memory device, as shown in FIG. As described above, the peripheral device is not limited to the example of the memory device. The peripheral device SDK 330 is a library installed in the host device 100. The peripheral device API 260, the peripheral device SDK security layer 125, the device driver 140, the secure file system 135, the SDK cryptographic library 168, the registration table 285, etc. Software for operating the secure memory device 145 on the device 100 is included. However, the peripheral device SDK 330 is not limited to this software.

アプリケーション用API260は、図7のアプリケーション105等のアプリケーションによって使用されるAPIである。これらのAPIは認証用のAPIのほかに、図7のセキュア周辺装置用API120等のアプリケーションが首尾よく認証された後でセキュアメモリ装置145上のコンテンツにアクセスするためにアプリケーションをセキュアファイルシステム135に連係させるAPIを含む。アプリケーション用API260は特定のアプリケーションに専用のAPIを含むことができる。例えば、ある1つのアプリケーションによって使われるAPIが別のアプリケーションで使用できないことがあり得る。周辺装置用SDKセキュリティレイヤ125により首尾よく認証されたアプリケーションは、セキュア周辺装置用API120を通じてセキュアメモリ装置145にある保護対象コンテンツにアクセスできる。セキュア周辺装置用API120については後ほど図12に関連して詳述する。   The application API 260 is an API used by an application such as the application 105 in FIG. In addition to the API for authentication, these APIs allow the application to the secure file system 135 to access content on the secure memory device 145 after the application such as the secure peripheral device API 120 of FIG. Includes APIs to be linked. The application API 260 can include an API dedicated to a specific application. For example, an API used by one application may not be used by another application. Applications successfully authenticated by the peripheral device SDK security layer 125 can access the protected content in the secure memory device 145 through the secure peripheral device API 120. The secure peripheral device API 120 will be described in detail later with reference to FIG.

図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 SDK security layer 125 shown in FIG. 7 is installed in the host device, provides a hook to the host storage management unit 110, and controls the host CPU 165 to access and store content in the secure memory device 145. The peripheral device SDK security layer 125 code “takes over” the host file operation on the host device 100, so that the application can be authenticated prior to content access on the secure peripheral device 145.
The software of the device driver 140 shown in FIG. 7 can be read and installed in the host device after the secure memory device 145 is connected to the host device 100 (step 175 in FIG. 4), or an operating system is installed in the host device. It can be preinstalled on the operating system of the host device 100 before or after.
The secure file system 135 is a file system including filing data for accessing and storing content in the secure memory device 145 shown in FIG. The SDK encryption library 168 is a library including an encryption method for encrypting and decrypting content for the secure channel 155. Encryption methods such as AES, DES, 3DES, SHA-1, PKI, and key pair generation are known methods. The SDK encryption library 168 encrypts and decrypts content based on content permissions such as a session key.

登録表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 SDK security layer 125 to manage and maintain application authentication status and related information. This table contains information such as the authentication algorithm, application ID, registration time, expiration time, and registration status. Details of the registration table 285 will be described later.
Continuing with the example secure memory device, one embodiment of the secure peripheral device 145 shown in FIG. 7 is shown in FIG. The secure peripheral device or memory device 145 includes a firmware module 210, a CPU 220, a peripheral device cryptographic engine 160, and a system partition 400. The system partition 400 includes a public partition 240 and a secure partition 250. The firmware module 210 uses the CPU 220 to access and store content in the public partition 240 or the secure partition 250 of the system partition 400. The memory device encryption engine 160 is used to encrypt and decrypt protected content accessed or stored in the secure memory device 145.

ファームウェアモジュール210はセキュアメモリ装置145のセキュアパーティション250とパブリックパーティション240でコンテンツのアクセスと格納を制御するハードウェアとソフトウェアを含む。ファームウェアモジュールはアクセス機能と格納機能を実行するようにCPU260をプログラムする。例えば、メモリのどの部分でコンテンツにアクセスもしくは格納するかを判断し、またはコンテンツが保護されているか否かを判断する。ファームウェアモジュール210の詳細については図10に関する説明の中で説明する。
パブリックパーティション240はユーザから見え、ホスト装置100により検出できるセキュアメモリ装置145のメモリパーティションである。セキュアメモリ装置145は1つ以上のパブリックパーティションを有する。パブリックパーティション240はユーザやホスト装置100に開放されるパブリックコンテンツを含むことができる。パブリックパーティション240は、コンテンツ暗号鍵(CEK)を使って暗号化される保護対象コンテンツも含むことができる。コンテンツに関連した情報を含むコンテンツヘッダに格納されたドメイン情報を使ってCEKを生成することができる。パブリックコンテンツを暗号化せずに格納することもできる。
The firmware module 210 includes hardware and software that controls access and storage of content in the secure partition 250 and the public partition 240 of the secure memory device 145. The firmware module programs the CPU 260 to perform the access function and the storage function. For example, it is determined in which part of the memory the content is accessed or stored, or whether the content is protected. Details of the firmware module 210 will be described in the description of FIG.
The public partition 240 is a memory partition of the secure memory device 145 that is visible to the user and can be detected by the host device 100. The secure memory device 145 has one or more public partitions. The public partition 240 may include public content that is open to users and the host device 100. The public partition 240 can also include protected content that is encrypted using a content encryption key (CEK). CEK can be generated using domain information stored in a content header including information related to content. Public content can also be stored without encryption.

セキュアパーティション250はユーザから見えず、ホスト装置により検出されない、セキュアメモリ装置145の隠れメモリパーティションである。セキュアメモリ装置145は1つ以上のセキュアパーティションを有することができる。セキュアパーティション250は、ユーザやホスト装置100に開放されない保護対象コンテンツを含むことができる。保護対象コンテンツをCEKを使って暗号化することができる。セキュアパーティション250に格納されたコンテンツはコンテンツにアクセスするための適切なパーミッションを有する認証済みアプリケーションによりアクセスできる。CEKに関する情報やコンテンツに関連するパーミッションは、コンテンツ関連の情報が入るコンテンツヘッダに格納される。一実施形態では、システムパーティション400のパブリックパーティション240とセキュアパーティション250は、1つのコントローラと1つ以上のフラッシュメモリアレイを含むフラッシュメモリ装置に格納される。   The secure partition 250 is a hidden memory partition of the secure memory device 145 that is not visible to the user and is not detected by the host device. The secure memory device 145 can have one or more secure partitions. The secure partition 250 can include protected content that is not open to the user or the host device 100. The content to be protected can be encrypted using CEK. The content stored in the secure partition 250 can be accessed by an authenticated application that has appropriate permissions to access the content. Information relating to CEK and permissions related to content are stored in a content header in which content-related information is entered. In one embodiment, the public partition 240 and the secure partition 250 of the system partition 400 are stored in a flash memory device that includes one controller and one or more flash memory arrays.

セキュアパーティション250はユーザやホスト装置によって検出されない隠れパーティションであるため、セキュアパーティション250は、ホスト装置100でセキュアメモリ装置145を操作するためのソフトウェアを、権限オブジェクトやアプリケーション資格証明等とともに含むことができる。
周辺装置暗号エンジン160は、セキュアメモリ装置145の中でCEKやセッション鍵を使ってコンテンツを暗号化し、復号化するために使用される。メモリ装置暗号エンジン160は、乱数生成部と対称暗号法(AES、DES、3DES等)、暗号ハッシュ関数(SHA−1等)、非対象暗号法(PKI、鍵ペア生成等)もしくはその他のどのような暗号法をもサポートし得る暗号処理部とを含む。
Since the secure partition 250 is a hidden partition that is not detected by the user or the host device, the secure partition 250 can include software for operating the secure memory device 145 in the host device 100 together with an authority object, application credentials, and the like. .
The peripheral device encryption engine 160 is used in the secure memory device 145 to encrypt and decrypt content using CEK and a session key. The memory device cryptographic engine 160 has a random number generator and a symmetric cryptographic method (AES, DES, 3DES, etc.), a cryptographic hash function (SHA-1, etc.), a non-target cryptographic method (PKI, key pair generation, etc.) or any other method. And a cryptographic processing unit capable of supporting various cryptographic methods.

図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 firmware module 210. The firmware module 210 includes a peripheral device interface module 144, a flash memory management unit 310, a protected content access management unit 320, a cryptographic engine library 235, and a DRM (digital copyright management) module 315. The peripheral device interface module 144 includes hardware and software for linking the secure memory device 145 to the host device 100 via the physical interface 142 of the host device. The hardware components of the peripheral device interface module 144 may include components for any interface, such as a universal serial bus (USB), secure digital (SD) interface, compact flash (CF) interface, and the like. The flash memory management unit 310 includes software for the CPU 220 to access and store unprotected content in the public partition 240, and to access and store content based on permissions using the DRM module 315. . The protection target content access management unit 320 uses software for the CPU 220 to access and store the protection target content using the permission, and to access and store the content based on the permission using the DRM module 315. Including. The protected content access management unit 320 can also use a cryptographic engine library 235 that contains information necessary for encrypting content using a session key or CEK. Both the flash memory management unit 310 and the protected content access management unit 320 access and store content through the device driver 140 on the host device.

保護の必要がない場合は、フラッシュメモリ管理部310がCPU220を使用してセキュアメモリ装置145にある保護対象外コンテンツのアクセスならびに格納を制御する。保護対象外コンテンツを保存する要求をホスト装置100から装置ドライバ140を通じて受信すると、フラッシュメモリ管理部310はホストファイルシステム130に従って該当する位置にコンテンツを保存する。保護対象外コンテンツにアクセスする要求をホスト装置ファイルシステム130から装置ドライバ140を通じて受信すると、フラッシュメモリ管理部310は、ホストファイルシステム130を用いて該当する位置からコンテンツにアクセスする。フラッシュメモリ管理部310はまた、アプリケーション105がセキュアメモリ装置145にある保護対象コンテンツにアクセスを試みる場合に、保護対象コンテンツアクセス管理部320へのアクセスを提供する。   When protection is not necessary, the flash memory management unit 310 uses the CPU 220 to control access and storage of unprotected content in the secure memory device 145. When the request to save the unprotected content is received from the host device 100 through the device driver 140, the flash memory management unit 310 saves the content in a corresponding position according to the host file system 130. When a request for accessing unprotected content is received from the host device file system 130 through the device driver 140, the flash memory management unit 310 accesses the content from the corresponding position using the host file system 130. The flash memory management unit 310 also provides access to the protected content access management unit 320 when the application 105 attempts to access protected content in the secure memory device 145.

保護が必要な場合は、保護対象コンテンツアクセス管理部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 access management unit 320 uses the CPU 220 to control access and storage of the protection target content in the secure memory device 145. The protected content access management unit 320 stores the permission related to the protected content in the DRM module 315 or acquires the permission related to the protected content from the DRM module 315. The protected content access manager 320 uses the secure file system 135 shown in FIG. 7 when accessing or storing the protected content. For example, when a request to save protected content is received from the host device through the device driver 140 and the content is transmitted through the secure channel 155, the peripheral device SDK security layer 125 uses the SDK encryption library 168 to protect the protected content. Is encrypted. This encryption uses a session key assigned to the content. Then, the encrypted content is transmitted to the secure memory device 145 through the secure channel 155, and the secure memory device 145 decrypts the content using the session key and an appropriate encryption method in the encryption engine library 235. The decrypted content is then encrypted by the peripheral device cryptographic engine 160 using the content CEK. Content encrypted using CEK is stored in an appropriate location according to the secure file system 135.

オープンチャネルを通じて保護対象コンテンツを送信する場合でも同様のコンテンツ転送法が実施されるが、セキュアチャネル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 secure channel 155. When a request to access protected content is received from the host device 100 through the device driver 140, the protected content access management unit 320 accesses the content from a corresponding position using the secure file system 135, and the host through the open channel 150. The contents are provided to the host storage management unit 110 on the apparatus 100. When an appropriate permission is confirmed by the protection target content access management unit 320, the protection target content access management unit 320 accesses and stores content through the flash memory management unit 310.
The protected content access management unit 320 uses the DRM module 315 to provide access to the content based on the permission related to the content such as copyright permission. The DRM module 315 can support any DRM technology such as OMA, DRM, MS DRM.

暗号エンジンライブラリ235には、セキュアメモリ装置145の中でCEKかセッション鍵を使ってコンテンツを暗号化するための暗号法が入っている。セキュアメモリ装置145でコンテンツが暗号化されるかもしくは復号化される場合には、保護対象コンテンツアクセス管理部320が暗号エンジンライブラリ235にある適切な暗号法にアクセスする。AES、DES、3DES、SHA−1、PKI、鍵ペア生成等、暗号法は何らかの既知方式であることができる。   The encryption engine library 235 contains an encryption method for encrypting content in the secure memory device 145 using CEK or a session key. When content is encrypted or decrypted in the secure memory device 145, the protected content access management unit 320 accesses an appropriate encryption method in the encryption engine library 235. The encryption method can be any known method, such as AES, DES, 3DES, SHA-1, PKI, and key pair generation.

図11は、セキュアメモリ装置145のシステムパーティション400の一例を示すものである。このシステムパーティション400はセキュアメモリ装置145にある全メモリパーティションを含む。つまり、システムパーティション400は、図9に示すパブリックパーティション240とセキュアパーティション250で作成される。セキュアメモリ装置145はいくつかのパブリックパーティションまたはセキュアパーティションを有する。既に述べたように、パブリックパーティションは検出可能で、ユーザやホスト装置にアクセス可能に開放される。パブリックパーティションに格納された保護対象外コンテンツには認証なしでアクセスできる。しかし、パブリックパーティションに格納された保護対象コンテンツは、認証に成功した後でなければアクセスできない。セキュアパーティションは、ユーザやホスト装置にとって検出不能の隠しパーティションである。セキュアパーティションにあるコンテンツを開こうとするアプリケーションは、事前に認証を受けなければならない。   FIG. 11 shows an example of the system partition 400 of the secure memory device 145. This system partition 400 includes all memory partitions in the secure memory device 145. That is, the system partition 400 is created by the public partition 240 and the secure partition 250 shown in FIG. The secure memory device 145 has several public partitions or secure partitions. As already mentioned, the public partition can be detected and opened to be accessible to users and host devices. Unprotected content stored in public partitions can be accessed without authentication. However, protected content stored in the public partition can only be accessed after successful authentication. The secure partition is a hidden partition that cannot be detected by the user or the host device. Applications that attempt to open content in a secure partition must be authenticated in advance.

セキュアメモリ装置145に保護対象コンテンツを保存する場合、保護対象コンテンツアクセス管理部320がコンテンツのパーミッションに従いコンテンツを整理する。次いで、フラッシュメモリ管理部310によってコンテンツが格納される。パブリックパーティションとセキュアパーティションは同じCEKを有する保護対象コンテンツを含むドメインまたは論理グループを有する。それぞれのドメインまたは論理グループには、コンテンツを復号化し、コンテンツを暗号化するためのCEKが1つずつある。1ドメインまたは1グループのコンテンツを開くパーミッションを持つアプリケーションは、同一ドメインまたはグループに格納された別のコンテンツも開くことができる。   When the protection target content is stored in the secure memory device 145, the protection target content access management unit 320 organizes the content according to the permission of the content. Next, the flash memory management unit 310 stores the content. Public partitions and secure partitions have domains or logical groups that contain protected content with the same CEK. Each domain or logical group has one CEK for decrypting the content and encrypting the content. An application having permission to open content in one domain or group can open other content stored in the same domain or group.

図11のパブリックパーティションP0 410には、ドメイン1とドメイン2という2つの論理グループがある。ドメイン1に格納されたすべてのコンテンツの暗号化と復号化には1つのCEKが使われる。ドメイン2に格納されたすべてのコンテンツの暗号化と復号化には別のCEKが使われる。これらのグループへのアクセスを試みるソフトウェアエンティティには、コンテンツの読み取りに先立ち認証が必要である。パブリックパーティションP0は開放され隠されていないため、グループ内の保護対象コンテンツは見ることができ、アクセスされる可能性もあるが、適切なCEKを使用して正常に復号化されない限り読み取ることはできない。つまり、グループ内のコンテンツが権限のないユーザによって壊される可能性があるが、コンテンツを読み取ることはできない。   The public partition P0 410 in FIG. 11 has two logical groups, domain 1 and domain 2. One CEK is used for encryption and decryption of all contents stored in the domain 1. A separate CEK is used to encrypt and decrypt all content stored in domain 2. Software entities attempting to access these groups require authentication prior to reading the content. Since public partition P0 is open and not hidden, protected content in the group can be seen and accessed, but cannot be read unless properly decrypted using the appropriate CEK . That is, the content in the group may be destroyed by an unauthorized user, but the content cannot be read.

パブリックパーティション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 public partition P0 410 is not included in the group, it does not have an allocated CEK. Thus, file A 440 can be accessed and read by any user.
Secure partition P1 420 includes file E and file F. File E and file F can be files that need to be protected in a secure partition. For example, the file E and the file F are used for storing secure information such as a content license and internal management data by the SDK. However, the contents of the secure partition P1 420 are not limited to such files. The secure partition P1 420 can store any secure file.
There are both file G and file H in domain 3 490 of secure partition P2 430. Domain 3 is assigned a CEK for encrypting and decrypting the content. For example, when an application attempts to access file G in domain 3, the application must be authenticated in advance. Upon authentication, the application can access the file G using the CEK of the domain 3 and the file H of the domain 3.
The secure partition P3 450 is an empty partition and can be used to store protected content.

図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 application API 260 of the peripheral device SDK 330. The application API 260 includes a standard and secure storage API 340, an authentication API 350, a configuration API 360, a DRM API 370, and a custom API 380 necessary for the user to operate the secure memory device 145 on the host device 100. Each of the various APIs can be dedicated to software entities such as applications and application launchers. In one embodiment, the API of each application is stored as a logical group such as a domain. For example, the API 262 for APP1 is stored in a group different from other application APIs. In one embodiment, each group contains one type of API for one application. For example, the storage API for APP1 can be regarded as one group.

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 API 262 for APP1 indicates an API subgroup dedicated to application 1 in the API group. The SDK is configured to be able to access the APP1 API 262 when the application 1 is successfully authenticated (see step 190 in FIG. 2). The API 262 for APP1 is, in one embodiment, a subset that is called by one or more applications of the SDK code set. In another embodiment, only application 1 calls the API 262 for APP1. The API 262 for APP1 includes a secure storage API, a configuration API, a DRM API, and a custom API. However, the API 262 for APP1 is not limited to these APIs.

標準およびセキュアストレージAPI340は、アプリケーションまたはアプリケーションランチャ105が、セキュアメモリ装置145でコンテンツを取得し、格納するにあたって、あるいはセキュアセッションを確立するにあたって、もしくはセキュアメモリ装置145でのコンテンツのアクセスや格納をともなうその他の操作を実行するにあたって、必要なAPIが含まれる。例えば、標準/セキュアストレージAPI340は、アプリケーション105がアクセス要求のあるコンテンツのパス位置をホストファイルシステム130かセキュアファイルシステム135へ送るためのAPIであることができる。アプリケーション105は、パブリックコンテンツにアクセスするときには標準およびセキュアAPI340グループの標準APIをコールすることができる。アプリケーション1が周辺装置用SDKセキュリティレイヤ125によって認証された後では、図7に見られるセキュア周辺装置用API120等のAPP1用API262グループのセキュアAPIをコールすることができる。   The standard and secure storage API 340 is used when the application or the application launcher 105 acquires and stores content in the secure memory device 145, establishes a secure session, or involves accessing or storing content in the secure memory device 145. In executing other operations, a necessary API is included. For example, the standard / secure storage API 340 can be an API for the application 105 to send the path position of the content requested to be accessed to the host file system 130 or the secure file system 135. The application 105 can call the standard and secure API 340 group standard APIs when accessing public content. After the application 1 is authenticated by the peripheral device SDK security layer 125, it is possible to call a secure API of the API1 API 262 group such as the secure peripheral device API 120 shown in FIG.

認証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 authentication API 350 is an API for authenticating the application 105, and is open to all applications without requiring an authentication process for accessing the authentication API 350. The authentication API 350 is called by the application 105. When the authentication API 350 is called by the application 105, the application 105 can send the credentials to the peripheral device SDK security layer 125 using the authentication API 350. The peripheral device SDK security layer 125 verifies whether the credentials transmitted by the application 105 using the authentication API 350 are valid. This credential can be any type of credential used to authenticate software entities such as responses to challenge / response authentication algorithms, PKI certificates, PINs, keys, passwords, and the like. In the case of a challenge / response authentication algorithm, the challenge can be sent to the application 105 using the authentication API 350. A response to the challenge to the peripheral device SDK security layer 125 can then be sent using the same authentication API 350 from the application 105.

コンフィグレーション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 configuration API 360 is an API for the application 105 to configure the secure memory device 145 or to obtain configuration information of the secure memory device 145. This can be done only if the application 105 has the appropriate authority to do that. For example, when obtaining information about used and free memory space in the secure memory device 145 or creating a new secure partition after the application 105 is successfully authenticated, the application 105 API 360 can be called.
In order to access the permission and digital copyright related to the content, the application 105 can call the DRM API 370 and access the content if the authority is valid. Authority verification is performed by the DRM module 315 in the firmware module 210 of the secure memory device 145. As seen in the API 262 subgroup for APP1, the DRM API 370 may be a DRM API dedicated to a particular application 105 in one embodiment.
The custom API 380 may be an additional API that is required when the user operates the secure memory device 145 on the host device 100. As seen in the API1 API 262 subgroup, the custom API 380 can be a custom API dedicated to a particular application 105.

図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 (step 180 in FIG. 4). More specifically, FIG. 13 is a process that illustrates how a task request related to a secure peripheral device that a user sends through an application on a host device is executed. For example, a task request can be a request to access or store content on a secure peripheral device, access and store files (music, applications, etc.), or information related to secure peripheral devices (free memory capacity, etc.) , Change the configuration content of the secure memory device, or access DRM information (digital copyright object, etc.). A user can request a task through an application on the host device. In the following examples, a secure memory device is used as the secure peripheral device. However, it should be noted that the use and configuration of the secure peripheral device is not limited to this example.

図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 step 505 of FIG. 13, the user sends a task request to the application 105 on the host device 100. This task request is received from the application 105 by the peripheral device SDK security layer 125 (step 505).
In step 515, the peripheral device SDK security layer 125 executes the registration process of the application 105. The registration process is a process of authenticating the application 105 and registering the application 105 in the internal registration table 285 (shown in FIG. 7) when the authentication is successful. If the registration is successful, the peripheral device SDK sends an indicator to the application 105. This indicator conveys that a dedicated API of the registered application 105 is presented. The peripheral device SDK security layer 125 also sends an application handler to the application 105. This application handler serves as an additional security measure. Each time the application 105 communicates with the peripheral device 145 using the presented API, it must send an application handler to the peripheral device through the API. Details of the registration process will be described with reference to FIG.

ステップ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 step 515 is successful, the application 105 sends a task request to the peripheral device SDK 330 through one or more APIs presented during the registration process (step 520). The task request must be transmitted together with the application handler given to the application 105 during the registration process.
In step 525, the task request is executed using the application 105 dedicated API subgroup to which the peripheral device SDK 330 is presented. FIG. 18 illustrates an example of the steps executed when the protection target content is stored in the secure memory device. FIG. 19 illustrates an example of the steps executed when accessing the content to be protected stored in the secure memory device.
When the task request is completed in step 525, the peripheral device SDK security layer 125 deregisters the application 105 from the internal registration table 285 in step 530. How this step is performed will be described in detail in connection with FIG.

図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 application 105, in step 700, the application 105 selects an authentication method from the list of authentication method options. This list of authentication method options is provided from the peripheral device SDK security layer 125 to the application 105 through the authentication API. An API that provides such a list can be defined, for example, as follows.
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 application 105 to the peripheral device SDK security layer 125. The application ID is a unique identifier assigned to the application 105. The peripheral device SDK security layer 125 returns a list (char * AuthList) of authentication methods supported by the peripheral device SDK security layer 125. The application 105 selects an authentication method to be used in the list provided from the peripheral device SDK security layer 125. The application is programmed with the authentication method to be used.

アプリケーション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 application 105 obtains the credential corresponding to the authentication method selected in Step 705 and executes the selected authentication method. For example, if the selected authentication method is based on PKI, the application 105 acquires a PKI certificate as its own credential and executes the authentication method. If the selected authentication method is a challenge / response authentication method, the application 105 executes the authentication method by calling the challenge / response API stored in the memory device SDK 330 together with the authentication API 350. The application 105 receives the challenge from the peripheral device SDK security layer 125 using the challenge / response API. This challenge is a random number generated by the host device cryptographic engine 185 or the memory device cryptographic engine 160. The application 105 calculates the response to the challenge as its own credentials. Details of the various authentication schemes are described in connection with FIGS.
In step 710, the application 105 calls the registration API and transmits registration information to the peripheral device SDK security layer 125. An API for registering an application can be defined as follows, for example.
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 application 105's own application ID (char * AppID), the selected authentication method (char * AuthMethod), the credential (uchar * credential), and the length of the credential acquired in step 705. (Uchar credentialLen) may be transmitted to the SDK security layer 125 for peripheral devices. To accommodate differences in credential length depending on the authentication scheme, a credential length must be provided.
The peripheral device SDK security layer 125 checks in step 715 whether the credentials are valid. If the credentials are not valid, the peripheral device SDK security layer 125 returns an error to the application 105 (step 720).

資格証明が有効なら、ステップ722で周辺装置用SDKセキュリティレイヤ125がアプリケーション105のためにアプリケーションハンドラを生成する。このアプリケーションハンドラは、例えばHASH等の所定の暗号アルゴリズムを用いて生成される一意な乱数である。アプリケーションハンドラは、所定の暗号アルゴリズムに特定の値を入力することによって生成される。これらの特定の値は、アプリケーションID、アプリケーション105が登録された時間、アプリケーション105を登録しておける期間、登録状況等の、アプリケーション105および/またはアプリケーション105の登録情報に関連する値である。周辺装置用SDK APIにはアプリケーションハンドラのための入力パラメータがある。一実施形態では、デフォルトのアプリケーションハンドラが生成され、全てのアプリケーションに開放されたAPIに使用される。しかし、既に述べたように、認証API350は全てのアプリケーションに開放され、認証のためにこれらのAPIにアクセスする際にアプリケーションハンドラは必要ない。   If the credentials are valid, the peripheral SDK security layer 125 generates an application handler for the application 105 at step 722. This application handler is a unique random number generated using a predetermined encryption algorithm such as HASH. The application handler is generated by inputting a specific value to a predetermined encryption algorithm. These specific values are values related to the registration information of the application 105 and / or the application 105 such as the application ID, the time when the application 105 is registered, the period during which the application 105 can be registered, and the registration status. The peripheral device SDK API has input parameters for application handlers. In one embodiment, a default application handler is created and used for the API that is open to all applications. However, as already mentioned, the authentication API 350 is open to all applications, and no application handler is required to access these APIs for authentication.

アプリケーションハンドラが生成されたら、周辺装置用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 security layer 125 registers the application 105 in the internal registration table 285 (step 725). The internal registration table 285 is managed by the peripheral device SDK security layer 125. The internal registration table 285 includes information on authenticated applications and application launchers. The peripheral device SDK security layer 125 includes an application handler, a timeout period indicating a period during which the authenticated application 105 continues to be registered in the internal registration table 285 (registration time + a period during which an application can be registered), an API accessible from the application 105, and the like. The information of the application and the application launcher successfully authenticated is recorded in the internal registration table 285. The internal registration table 285 is useful for tracking authenticated applications and application launchers. For this reason, the authenticated application and the application launcher do not have to repeat authentication every time a task request is received while being registered in the authentication table.

周辺装置用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 SDK security layer 125 checks in step 730 whether the application 105 has been successfully registered in the internal registration table 285. If the application 105 is not successfully registered in the internal registration table 285, the peripheral device SDK security layer 125 returns an error to the application 105 (step 735).
When the application 105 is successfully registered in the internal registration table 285, the peripheral device SDK security layer 125 returns the application handler generated in step 722 to the application 105 through the authentication API (step 738). The peripheral device SDK security layer 125 also returns to the application 105 a sign indicating that the registration of status_OK or the like was successful (step 740). The status_OK indicator notifies the application 105 that the API sub-group dedicated to the application 105 necessary for executing the task is presented and can be used.

周辺装置用SDKセキュリティレイヤ125は、ステップ745で、図12に見られるサブグループ262等の周辺装置用SDK330のAPIサブグループをアプリケーション105に提示する。このAPIサブグループによりアプリケーション105はセキュア周辺装置145と通信できるようになる。しかし、このコード部分へのアクセスは、アプリケーション105が認証後で有効なアプリケーションハンドラを提供する場合に限り許可される。このAPIサブグループにより、アプリケーション105はアプリケーション105とセキュア周辺装置145との間に適切なリンクを確立し、タスク要求を実行することができる。   The peripheral device SDK security layer 125 presents to the application 105 the API subgroup of the peripheral device SDK 330, such as the subgroup 262 seen in FIG. This API subgroup allows the application 105 to communicate with the secure peripheral device 145. However, access to this code portion is allowed only if the application 105 provides a valid application handler after authentication. This API subgroup allows application 105 to establish an appropriate link between application 105 and secure peripheral device 145 and execute a task request.

図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 (steps 710 and 715 in FIG. 14). The flowchart of FIG. 15A is an example of a process for executing password-based authentication. The application 105 is programmed with a password used for authentication. In step 535 of FIG. 15A, the application 105 accesses the programmed password. The application 105 transmits the password to the peripheral device SDK security layer 125 through the authentication API. The peripheral device SDK security layer 125 checks whether the password is valid (step 715 in FIG. 14) and continues the process in FIG.

図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 step 545, the application 105 receives a challenge from the peripheral device SDK security layer 125 through the authentication API. For example, this API can take the form of void GetChallenge (char * AppID, uchar * charge, uchar * chargeLen). With the GetChallenge API, the application 105 provides its own application ID (char * AppID) to the peripheral device SDK security layer 125. The peripheral device SDK security layer 125 returns the challenge (uchar * charge) and the challenge length (uchar * chargeLen) to the application 105.

ステップ550では、アプリケーション105が受け取ったチャレンジを暗号関数に入力することによって応答を計算する。アプリケーション105には使用するべき暗号関数がプログラムされている。ステップ555では、アプリケーション105が計算した応答を周辺装置用SDKセキュリティレイヤ125へ送信する。周辺装置用SDKセキュリティレイヤ125も同じ暗号関数に同じチャレンジを使って応答を計算し(ステップ560)、計算した応答をアプリケーション105から受信した応答と比較する(ステップ565)。この比較ステップでは、資格証明(アプリケーション105からの応答)が有効であるか否かを周辺装置用SDKセキュリティレイヤ125がチェックする(図14のステップ715)。この資格証明に基づいて図14の登録プロセスを継続できる。   In step 550, the response is calculated by inputting the challenge received by the application 105 into the cryptographic function. The application 105 is programmed with a cryptographic function to be used. In step 555, the response calculated by the application 105 is transmitted to the peripheral device SDK security layer 125. The peripheral device SDK security layer 125 also calculates a response using the same challenge for the same cryptographic function (step 560), and compares the calculated response with the response received from the application 105 (step 565). In this comparison step, the peripheral device SDK security layer 125 checks whether or not the credential (response from the application 105) is valid (step 715 in FIG. 14). Based on this credential, the registration process of FIG. 14 can continue.

図15Cのフローチャートは、アプリケーション105のPKI認証を実行する一例である。ステップ570ではアプリケーション105が周辺装置用SDKセキュリティレイヤ125へ証明を送信する。この証明は、資格証明の一部としてアプリケーション105とともに格納されている。アプリケーション105は認証APIを通じてこの証明を提供するようにプログラムされている。   The flowchart in FIG. 15C is an example of executing PKI authentication of the application 105. In step 570, the application 105 transmits a certificate to the peripheral device SDK security layer 125. This proof is stored with the application 105 as part of the credential. Application 105 is programmed to provide this proof through an authentication API.

ステップ575では周辺装置用SDKセキュリティレイヤ125が証明をベリファイする。ステップ580では証明が有効なら、周辺装置用SDKセキュリティレイヤ125はアプリケーションによって送信(ステップ570)された証明から公開鍵を引き出し、これを用いて無作為に生成された数を暗号化する。この乱数はSDK暗号ライブラリ168を使って生成し、暗号化できる。次いで、周辺装置用SDKセキュリティレイヤ125からアプリケーション105へ暗号化された乱数が送信される(ステップ585)。   In step 575, the peripheral device SDK security layer 125 verifies the certificate. If the certificate is valid in step 580, the peripheral device SDK security layer 125 extracts the public key from the certificate sent by the application (step 570) and uses it to encrypt the randomly generated number. This random number can be generated and encrypted using the SDK cryptographic library 168. Next, the encrypted random number is transmitted from the peripheral device SDK security layer 125 to the application 105 (step 585).

ステップ590では、アプリケーション105が周辺装置用SDKセキュリティレイヤ125から受信した暗号化乱数を復号化する。この復号化には、周辺装置用SDKセキュリティレイヤ125で使用された公開鍵に対応する秘密鍵を使用する。正規のアプリケーションは適切な秘密鍵を所持しているから、暗号化された乱数を復号化できる。ステップ595では、アプリケーション105が復号化した乱数をベリファイのために周辺装置用SDKセキュリティレイヤ125へ送信する(図14のステップ715)。ここで図14のプロセスを継続できる。   In step 590, the application 105 decrypts the encrypted random number received from the peripheral device SDK security layer 125. For this decryption, a secret key corresponding to the public key used in the peripheral device SDK security layer 125 is used. Since legitimate applications have the appropriate secret key, they can decrypt the encrypted random number. In step 595, the random number decrypted by the application 105 is transmitted to the peripheral device SDK security layer 125 for verification (step 715 in FIG. 14). The process of FIG. 14 can now be continued.

図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 application 1 107 executes the authentication method selected in the list provided from the peripheral device SDK security layer 125 in step 700 of FIG. 14 (step 705 of FIG. 14), and the peripheral device in the peripheral device SDK 330 is executed. The registration information is transmitted to the SDK security layer 125 (step 710). If the peripheral device SDK security layer 125 determines that the credential is valid (step 715), it generates an application handler for the application 1 (step 722) and registers the application 1 107 in the internal registration table 285 (step 722). 725), the API subgroup 262 for APP1 is presented (step 745).

図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 secure memory device 145. As described in step 190 of FIG. 2, the accessible APIs differ depending on how the SDK is configured for each application. For example, after the application 1 107 is successfully authenticated by the peripheral device SDK security layer 125 and registered in the internal registration table 285, the application 1 107 accesses the application 1 API subgroup 262. For example, the application 1 107 can call the API, and the secure memory device 145 can safely store and access the protected content, and can configure the secure memory device 145. The API 1 for APP1 serves as an interface for the application 1 to execute a task requested for the content to be protected through the secure file system 135 and the device driver 140. In the case of the application 1 107, the SDK is configured to be able to access all APIs for APP1.

アプリケーション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にアクセスできない。   Application 2 and application 3 are examples of other applications that have been successfully authenticated by the peripheral device SDK security layer 125 and registered in the internal registration table 285. Application 2 uses APP2 API subgroups such as secure storage API and DRM API, and can access and store protected content through secure file system 135 and device driver 140, and secure using SDK configuration API The memory device 145 can also be configured. However, the application 2 cannot access the custom API in the SDK. As described in step 190 of FIG. 2, the API that can be accessed by the application 2 depends on the configuration of the SDK. Similarly, the application 3 can access and store protected content through the secure file system 135 and the device driver 140 using the API subgroup for APP3. However, since the SDK is not configured to allow the application 3 to access the configuration API, the DRM API, and the custom API in step 190 of FIG. 2, the application 3 cannot access these APIs.

周辺装置としてセキュアメモリ装置を使用する例を継続し、図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 peripheral device SDK 330 executes a task of storing protected content in the secure memory device 145 (FIG. 13). Step 525). When the registration process of FIG. 13 is completed and a task request is sent using one or more of the presented APIs, the peripheral device SDK 330 identifies where to store the protected content in the secure memory device 145 in step 900. The secure file system 135 is instructed to do so. To provide the desired storage location of the secure file system 135, the application 105 can call one of the API subgroup APIs presented in step 745 of FIG.

ステップ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 step 905, the peripheral device SDK 330 accesses the permission related to the storage location of the content to be protected such as a session key for establishing the secure channel 155. In step 910, the peripheral device SDK 330 determines whether or not the secure channel should be used for the transfer of the protection target content based on the permission accessed in step 905.
When the peripheral device SDK 330 determines that the secure channel should not be used, the protection target content is transferred from the host storage management unit 110 on the host device 100 to the secure memory device 145 through the open channel 150 (step 915). Application 105 transfers this content by calling one of the API subgroup APIs presented in step 745 of FIG. The protected content access management unit 320 accesses the CEK at the storage location, and instructs the peripheral device cryptographic engine 160 to encrypt the content using the CEK and the cryptographic engine library 235. Next, the protected content access management unit 320 stores the encrypted protected content in the corresponding storage location (step 925).

周辺装置用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 peripheral device SDK 330 determines in step 910 that the secure channel 155 should be used, the peripheral device SDK 330 uses one of the API subgroups presented by the application 105.
The content is received through the API, and the host device encryption engine 185 is instructed to encrypt the content to be protected in the host device 100 using the session key and the corresponding encryption method (step 930). In step 935, the encrypted content is transferred from the host storage management unit 110 on the host device 100 to the secure memory device 145 through the secure channel 155. Next, the peripheral device cryptographic engine 160 uses the cryptographic engine library 235 to decrypt the protected content transferred by the secure memory device 145 (step 940).
In step 920, the protection target content access management unit 320 accesses the CEK at the storage location where the protection target content is stored, and uses the CEK and the encryption engine library 235 to encrypt the content to the peripheral device encryption engine 160. Instruct. Next, the protected content access management unit 320 stores the encrypted protected content in the corresponding storage location (step 925).

図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 SDK security layer 125 executes a task of accessing the protected content stored in the secure memory device 145 (step 525 in FIG. 13). Once the registration process of FIG. 13 is complete and a task request is sent using the presented one or more APIs, the peripheral SDK security layer 125 is requested at the appropriate location in the secure memory device 145 at step 800. The secure file system 135 is instructed to find the protected content. To provide the desired storage location of the secure file system 135, the application 105 can call one of the API subgroup APIs presented in step 745 of FIG.

保護対象コンテンツアクセス管理部320は、CEKやセッション鍵等の保護対象コンテンツの位置に係るパーミッションにアクセスする(ステップ805)。次いで、保護対象コンテンツアクセス管理部320はセキュアメモリ装置145の当該位置から保護対象コンテンツにアクセスし(ステップ810)、CEKと暗号エンジンライブラリ235を使ってコンテンツを復号化するように周辺装置暗号エンジン160に指示する(ステップ815)。   The protection target content access management unit 320 accesses the permissions related to the position of the protection target content such as CEK and session key (step 805). Next, the protected content access management unit 320 accesses the protected content from the location of the secure memory device 145 (step 810), and decrypts the content using the CEK and the cryptographic engine library 235 so that the peripheral device cryptographic engine 160 is decrypted. (Step 815).

次いで、ステップ820では、保護対象コンテンツアクセス管理部320がホスト装置100上のホスト記憶管理部110へのコンテンツ転送にあたってセキュアチャネルを使用するべきか否かを判断する。保護対象コンテンツアクセス管理部320は、ステップ805でアクセスしたセッション鍵がオープンチャネル150を使った保護対象コンテンツ転送を指示する場合に、オープンチャネル150を通じてホスト装置100上のホスト記憶管理部110へコンテンツを転送する(ステップ825)。   Next, in step 820, the protected content access management unit 320 determines whether or not to use a secure channel for content transfer to the host storage management unit 110 on the host device 100. When the session key accessed in step 805 indicates transfer of the protection target content using the open channel 150, the protection target content access management unit 320 sends the content to the host storage management unit 110 on the host device 100 through the open channel 150. Transfer (step 825).

ステップ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 step 820 that the protected content access management unit 320 should use the secure channel 155 to transfer the protected content to the host storage management unit 110 on the host device 100, the secure memory device At 145, the peripheral device encryption engine 160 is instructed to encrypt the content to be protected using the session key (step 830). Next, the protected content access manager 320 transfers the encrypted protected content to the host storage manager 110 on the host device 100 through the secure channel 155 (step 835). The transferred protected content is decrypted by the SDK encryption library 168 using the same session key (step 840).
Once the protected content has been successfully transferred (steps 825, 835) and decrypted as necessary (step 840), the application 105 receives the requested protected content (step 850). The application 105 receives the requested protected content using one API of the API subgroup presented in step 745 of FIG.

図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 application 105 from the internal registration table 285 in the peripheral device SDK security layer 125 (step 530 in FIG. 13). The peripheral device SDK security layer 125 checks in step 945 whether the task is complete. If the task is completed, the peripheral device SDK security layer 125 deletes information related to the application 105 from the registration table 285 (step 970). Next, the peripheral device SDK security layer 125 deregisters the application 105 from the internal registration table 285 (step 975). The step of deregistering the application 105 can be performed by calling an appropriate API, for example, by calling ucharUnRegisterApplication (char * AppID). This API cancels the registration of the application 105 by deleting the corresponding application ID from the internal registration table 285. This ends the process of executing the requested task (step 980).

タスクがまだ完了していなければ、タスク要求が実行される一方で(ステップ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 SDK security layer 125 checks whether the application 105 has been registered for the timeout period of the internal registration table 285. (Step 950). When the timeout period has passed, the peripheral device SDK security layer 125 deletes information related to the application 105 from the registration table 285 (step 955). Next, the peripheral device SDK security layer 125 requests re-authentication of the application 105 (step 960). For re-authentication of the application 105, an authentication process similar to that shown in FIG. 14 can be used. The peripheral device SDK security layer 125 determines whether the re-authentication is successful (step 965). If re-authentication is successful, task execution continues (step 525). If the re-authentication is not successful, the peripheral device SDK security layer 125 deregisters the application 105 from the internal registration table 285 by calling an appropriate API, for example, by calling ucharUnRegisterApplication (char * AppID). (Step 975). This API cancels the registration of the application 105 by deleting the corresponding application ID from the internal registration table 285. This ends the process of executing the task (step 980).
If the peripheral device SDK security layer 125 determines in step 950 that the timeout period of the internal registration table 285 has not passed, it continues to execute the task request in step 525.

前述した種々実施形態の詳細な説明は、網羅的であることあるいは本発明を開示されたとおりの形態に限定することを意図するものではない。前述した教示に鑑みれば数多くの修正ならびに変形が可能である。説明した実施形態は、本発明の原理と実際的な応用を十分に説明し、当業者が様々な実施形態で意図された用途に応じ様々な修正を加えながら本発明を十分に役立てるために選ばれたものである。したがって、前述した説明は、添付の特許請求の範囲に記載された本発明の範囲を制限することを意図するものではない。   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.
請求項1記載の方法において、
前記コードセットは、装置ドライバコード、アプリケーションプログラミングインターフェイスコード、および認証コードを含み、
前記コードセットの一部分は、前記アプリケーションプログラミングインターフェイスコードおよび前記認証コードのコードの一部分を含む方法。
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記載の方法において、
前記コードセットにて前記第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記載の方法において、
前記認証するステップは、
前記第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.
請求項4記載の方法において、
前記第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のソフトウェアエンティティが首尾よく認証されない場合には、前記第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のソフトウェアエンティティが首尾よく認証される場合には、暗号関数にて前記第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.
請求項7記載の方法において、
前記第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.
請求項7記載の方法において、
前記第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.
請求項9記載の方法において、
前記コードセットの一部分が提示されることを伝える標識を送信するステップをさらに含み、前記送信するステップが、前記第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.
請求項10記載の方法において、
前記第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.
請求項9記載の方法において、
前記登録するステップは、前記第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.
請求項9記載の方法において、
前記表にて指示される所定の期間にわたって前記第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.
請求項9記載の方法において、
前記第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:
請求項1記載の方法において、
前記周辺装置は、フラッシュメモリ装置である方法。
The method of claim 1, wherein
The method wherein the peripheral device is a flash memory device.
請求項1記載の方法において、
前記周辺装置の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のソフトウェアエンティティから前記コードセットにて前記要求を受信することを含むステップと、
前記第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.
請求項18記載の方法において、
認証方式の選択肢から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.
請求項18記載の方法において、
第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.
請求項21記載の方法において、
前記資格証明が有効である場合には、前記第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:
請求項22記載の方法において、
前記資格証明が有効である場合には、認証済みソフトウェアエンティティの表に前記第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:
請求項23記載の方法において、
前記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.
請求項23記載の方法において、
前記表にて指示される所定の期間にわたり前記ソフトウェアエンティティが前記表に登録された後で、前記表から前記第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:
請求項26記載のシステムにおいて、
前記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.
請求項26記載のシステムにおいて、
前記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.
請求項26記載のシステムにおいて、
前記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.
請求項26記載のシステムにおいて、
前記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.
請求項30記載のシステムにおいて、
前記1つ以上のプロセッサは、前記第1のソフトウェアエンティティへ前記ソフトウェアエンティティハンドラを送信するシステム。
The system of claim 30, wherein
The one or more processors send the software entity handler to the first software entity.
請求項30記載のシステムにおいて、
前記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.
請求項32記載のシステムにおいて、
前記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.
請求項33記載のシステムにおいて、
前記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.
請求項32記載のシステムにおいて、
前記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.
請求項32記載のシステムにおいて、
前記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.
請求項32記載のシステムにおいて、
前記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.
請求項26記載のシステムにおいて、
前記周辺装置は、フラッシュメモリ装置であるシステム。
The system of claim 26.
The system wherein the peripheral device is a flash memory device.
請求項26記載のシステムにおいて、
前記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.
請求項26記載のシステムにおいて、
前記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.
請求項41記載のシステムにおいて、
前記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.
請求項41記載のシステムにおいて、
前記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.
JP2011510489A 2008-05-21 2009-04-30 Access authentication for software development kit for peripheral devices Pending JP2011523481A (en)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

Patent Citations (5)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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