Nothing Special   »   [go: up one dir, main page]

JP5180203B2 - System and method for controlling information supplied from a memory device - Google Patents

System and method for controlling information supplied from a memory device Download PDF

Info

Publication number
JP5180203B2
JP5180203B2 JP2009518357A JP2009518357A JP5180203B2 JP 5180203 B2 JP5180203 B2 JP 5180203B2 JP 2009518357 A JP2009518357 A JP 2009518357A JP 2009518357 A JP2009518357 A JP 2009518357A JP 5180203 B2 JP5180203 B2 JP 5180203B2
Authority
JP
Japan
Prior art keywords
key
acr
host
access
certificate
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2009518357A
Other languages
Japanese (ja)
Other versions
JP2009543212A (en
Inventor
ホルツマン,マイケル
バージライ,ロン
ジョガンド−クーロン,ファブリス
Original Assignee
サンディスク テクノロジィース インコーポレイテッド
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from US11/557,051 external-priority patent/US20080022395A1/en
Priority claimed from US11/557,052 external-priority patent/US8266711B2/en
Application filed by サンディスク テクノロジィース インコーポレイテッド filed Critical サンディスク テクノロジィース インコーポレイテッド
Publication of JP2009543212A publication Critical patent/JP2009543212A/en
Application granted granted Critical
Publication of JP5180203B2 publication Critical patent/JP5180203B2/en
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

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/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/6245Protecting personal data, e.g. for financial or medical purposes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2141Access rights, e.g. capability lists, access control lists, access tables, access matrices

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Health & Medical Sciences (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • Databases & Information Systems (AREA)
  • Medical Informatics (AREA)
  • Storage Device Security (AREA)

Description

本発明は、一般的にはメモリシステムに関し、具体的には汎用コンテンツ制御機能を備えるメモリシステムに関する。   The present invention generally relates to a memory system, and more particularly to a memory system having a general-purpose content control function.

関連出願の相互参照
本願は、2006年7月7日に出願された米国仮特許出願第60/819,507号(特許文献1)の利益を主張する。
This application claims the benefit of US Provisional Patent Application No. 60 / 819,507, filed July 7, 2006.

本願は、2005年12月20日に出願された米国特許出願第11/313,870号(特許文献2)に関し、この出願は2004年12月21に出願された米国仮特許出願第60/638,804号(特許文献3)の利益を主張する。本願はさらに、2005年12月20日に出願された米国特許出願第11/314,411号(特許文献4)に関する。本願はさらに、2005年12月20日に出願された米国特許出願第11/314,410号(特許文献5)に関する。本願はさらに、2005年12月20日に出願された米国特許出願第11/313,536号(特許文献6)に関する。本願はさらに、2005年12月20日に出願された米国特許出願第11/313,538号(特許文献7)に関する。本願はさらに、2005年12月20日に出願された米国特許出願第11/314,055号(特許文献8)に関する。本願はさらに、2005年12月20日に出願された米国特許出願第11/314,052号(特許文献9)に関する。本願はさらに、2005年12月20日に出願された米国特許出願第11/314,053号(特許文献10)に関する。   This application is related to US patent application Ser. No. 11 / 313,870, filed Dec. 20, 2005, which is US Provisional Patent Application No. 60/638, filed Dec. 21, 2004. , 804 (Patent Document 3). The present application further relates to US patent application Ser. No. 11 / 314,411 filed on Dec. 20, 2005. The present application further relates to US patent application Ser. No. 11 / 314,410 filed Dec. 20, 2005. The present application further relates to US patent application Ser. No. 11 / 313,536, filed Dec. 20, 2005. The present application further relates to US patent application Ser. No. 11 / 313,538, filed Dec. 20, 2005. The present application further relates to US patent application Ser. No. 11 / 314,055, filed Dec. 20, 2005. The present application further relates to US patent application Ser. No. 11 / 314,052, filed Dec. 20, 2005. The present application further relates to US patent application Ser. No. 11 / 314,053, filed Dec. 20, 2005.

本願は、2006年11月6日に出願されたHoltzmanらの「Content Control Method Using Certificate Chains 」という米国特許出願第11/557,028号(特許文献11)と、2006年11月6日に出願されたHoltzmanらの「Content Control System Using Certificate Chains 」という米国特許出願第11/557,010号(特許文献12)と、2006年11月6日に出願されたHoltzmanらの「Content Control Method Using Certificate Revocation Lists 」という米国特許出願第11/557,006号(特許文献13)と、2006年11月6日に出願されたHoltzmanらの「Content Control System Using Certificate Revocation Lists 」という米国特許出願第11/557,026号(特許文献4)と、2006年11月6日に出願されたHoltzmanらの「Content Control Method Using Versatile Control Structure」という米国特許出願第11/557,049号(特許文献15)と、2006年11月6日に出願されたHoltzmanらの「Content Control System Using Versatile Control Structure」という米国特許出願第11/557,056号(特許文献16)と、2006年11月6日に出願されたHoltzmanらの「Method for Controlling Information Supplied From Memory Device」という米国特許出願第11/557,052号(特許文献17)と、2006年11月6日に出願されたHoltzmanらの「System for Controlling Information Supplied From Memory Device」という米国特許出願第11/557,051号(特許文献18)と、2006年11月6日に出願されたHoltzmanらの「Control Method Using Identity Objects 」という米国特許出願第11/557,041号(特許文献19)と、2006年11月6日に出願されたHoltzmanらの「Control System Using Identity Objects 」という米国特許出願第11/557,039号(特許文献20)とに関する。   This application is based on US Patent Application No. 11 / 557,028 entitled “Content Control Method Using Certificate Chains” filed on November 6, 2006, and “Applications on November 6, 2006”. US Patent Application No. 11 / 557,010 entitled “Content Control System Using Certificate Chains” by Holtzman et al. And “Content Control Method Using Certificate” by Holtzman et al. Filed on November 6, 2006. US Patent Application No. 11 / 557,006 entitled “Revocation Lists” and US Patent Application No. 11/157 entitled “Content Control System Using Certificate Revocation Lists” filed on November 6, 2006 by Holtzman et al. No. 557,026 (Patent Document 4) and “Content Control Method Using Versatile Control Structure” of Holtzman et al. Filed on Nov. 6, 2006. National Patent Application No. 11 / 557,049 (Patent Document 15) and US Patent Application No. 11 / 557,056 entitled “Content Control System Using Versatile Control Structure” filed Nov. 6, 2006 by Holtzman et al. (Patent Document 16), US Patent Application No. 11 / 557,052 (Patent Document 17) called “Method for Controlling Information Supplied From Memory Device” by Holtzman et al. Filed on Nov. 6, 2006, 2006 US Patent Application No. 11 / 557,051 entitled “System for Controlling Information Supplied From Memory Device” by Holtzman et al. Filed on Nov. 6 and Holtzman filed on Nov. 6, 2006. US Patent Application No. 11 / 557,041 (Patent Document 19) entitled “Control Method Using Identity Objects” and Holtzman filed on Nov. 6, 2006. And US Patent Application No. 11 / 557,039 (Patent Document 20) called “Control System Using Identity Objects”.

これらの特許出願は、あたかも本願にもれなく記載されているかのごとく、それぞれの全体が本願明細書において参照により援用されている。   Each of these patent applications is incorporated herein by reference in its entirety as if it were written in the present application.

フラッシュメモリカード等の記憶装置が、写真等のデジタルコンテンツを記憶する記憶媒体として好んで使われるようになっている。フラッシュメモリカードはタイプの異なるメディアコンテンツの配布に使われる場合がある。コンピュータ、デジタルカメラ、携帯電話機、個人用携帯情報端末(PDA)、MP3プレーヤをはじめとするメディアプレーヤ等のホスト装置の多様化が進み、フラッシュメモリカードに記憶されたメディアコンテンツを再生できるようになっている。このため、フラッシュメモリカードやその他の可搬型記憶装置がデジタルコンテンツの配布手段として幅広く利用される可能性が大きい。   Storage devices such as flash memory cards are favorably used as storage media for storing digital content such as photographs. Flash memory cards may be used to distribute different types of media content. With the diversification of host devices such as computers, digital cameras, mobile phones, personal digital assistants (PDAs), media players such as MP3 players, media content stored in flash memory cards can be played back. ing. For this reason, there is a high possibility that flash memory cards and other portable storage devices are widely used as means for distributing digital contents.

記憶装置に記憶される機密・公開情報の量が増えているため、これを照会する事業体の状態に応じて利用可能な情報のタイプを判定できることが望ましい。したがって、事業体の状態に応じて機密・公開情報を事業体へ提供する改良されたシステムの提供が望まれている。   Since the amount of confidential / public information stored in the storage device is increasing, it is desirable to be able to determine the type of information that can be used according to the state of the entity that queries it. Therefore, it is desired to provide an improved system for providing confidential / public information to an entity according to the state of the entity.

米国仮特許出願第60/819,507号US Provisional Patent Application No. 60 / 819,507 米国特許出願第11/313,870号US patent application Ser. No. 11 / 313,870 米国仮特許出願第60/638,804号US Provisional Patent Application No. 60 / 638,804 米国特許出願第11/314,411号US patent application Ser. No. 11 / 314,411 米国特許出願第11/314,410号US patent application Ser. No. 11 / 314,410 米国特許出願第11/313,536号US patent application Ser. No. 11 / 313,536 米国特許出願第11/313,538号US patent application Ser. No. 11 / 313,538 米国特許出願第11/314,055号US patent application Ser. No. 11 / 314,055 米国特許出願第11/314,052号US patent application Ser. No. 11 / 314,052 米国特許出願第11/314,053号US patent application Ser. No. 11 / 314,053 米国特許出願第11/557,028号US patent application Ser. No. 11 / 557,028 米国特許出願第11/557,010号US patent application Ser. No. 11 / 557,010 米国特許出願第11/557,006号US patent application Ser. No. 11 / 557,006 米国特許出願第11/557,026号US patent application Ser. No. 11 / 557,026 米国特許出願第11/557,049号US patent application Ser. No. 11 / 557,049 米国特許出願第11/557,056号US patent application Ser. No. 11 / 557,056 米国特許出願第11/557,052号US patent application Ser. No. 11 / 557,052 米国特許出願第11/557,051号US patent application Ser. No. 11 / 557,051 米国特許出願第11/557,041号US patent application Ser. No. 11 / 557,041 米国特許出願第11/557,039号US patent application Ser. No. 11 / 557,039

記憶装置に記憶される機密・公開情報の量が増えているため、これを照会する事業体の状態に応じて利用可能な情報のタイプを判定できることが望ましい。そこで本発明の一実施形態において、メモリ装置を脱着自在な状態でホスト装置に接続する。メモリ装置は、ホスト装置から事業体によって送信される一般情報クエリに応じて公開情報を供給する。メモリ装置に記憶された機密情報へのアクセスは制御データ構造によって制御される。メモリ装置は、ホスト装置から認証済み事業体によって送信される非公開情報クエリに応じて、機密情報のうち、そのような認証済み事業体によるアクセスが制御データ構造により許可される部分のみを供給する。事業体はたとえ認証済みであっても、機密情報のうち、制御データ構造によって許可される部分へのアクセスしか認められない。このような柔軟なアクセス制御方式により、それぞれの事業体は、機密情報のうち、許可された部分にのみアクセスでき、他の機密情報部分へのアクセスは許されない。   Since the amount of confidential / public information stored in the storage device is increasing, it is desirable to be able to determine the type of information that can be used according to the state of the entity that queries it. Therefore, in one embodiment of the present invention, the memory device is detachably connected to the host device. The memory device supplies public information in response to a general information query transmitted by the entity from the host device. Access to sensitive information stored in the memory device is controlled by a control data structure. In response to a private information query sent by the authenticated entity from the host device, the memory device supplies only the portion of the confidential information that is permitted by the control data structure for access by such authenticated entity. . Entities are only allowed access to the parts of the confidential information that are permitted by the control data structure, even if authenticated. With such a flexible access control method, each business entity can access only the authorized portion of the confidential information, and is not allowed to access other confidential information portions.

ここで参照する特許、特許出願、記事、書籍、仕様書、規格書、その他の出版物、文書、物事はいずれも、あらゆる目的のためにその全体が本願明細書において参照により援用されている。援用する出版物、文書、または物事のいずれかと本願明細書の本文との間で用語の定義または使用に矛盾や食い違いがある場合、本願明細書における用語の定義または使用が優先するものとする。   All patents, patent applications, articles, books, specifications, standards, other publications, documents and things referred to herein are hereby incorporated by reference in their entirety for all purposes. If there is a discrepancy or discrepancy in the definition or use of a term between any of the incorporated publications, documents, or things and the text of this specification, the definition or use of the term in this specification shall prevail.

本発明を例示するのに有用である、ホスト装置と通信するメモリシステムのブロック図である。1 is a block diagram of a memory system in communication with a host device that is useful for illustrating the present invention. FIG. 本発明の種々の実施形態を例示するのに有用である、特定のパーティションと暗号化ファイルへのアクセスをアクセス方針と認証手続きとによって制御するメモリの種々のパーティションと種々のパーティションに記憶される非暗号化および暗号化ファイルとの概略図である。Useful for illustrating various embodiments of the present invention, various partitions of memory that control access to specific partitions and encrypted files by access policies and authentication procedures and non-stored in various partitions. It is the schematic with an encryption and an encryption file. メモリ内の種々のパーティションを示すメモリの概略図である。FIG. 4 is a schematic diagram of a memory showing various partitions in the memory. 本発明の種々の実施形態を例示するのに有用である、パーティション内のいくつかのファイルが暗号化される図3に示すメモリの種々のパーティションのファイルロケーションテーブルの概略図である。FIG. 4 is a schematic diagram of a file location table for various partitions of the memory shown in FIG. 3 in which several files in the partition are encrypted, useful for illustrating various embodiments of the present invention. 本発明の種々の実施形態を例示するのに有用である、アクセス制御記録グループ内のアクセス制御記録と対応する鍵参照符との概略図である。FIG. 3 is a schematic diagram of access control records and corresponding key references in an access control record group that are useful for illustrating various embodiments of the invention. 本発明の種々の実施形態を例示するのに有用である、アクセス制御記録グループとアクセス制御記録とによって形成されるツリー構造の概略図である。FIG. 3 is a schematic diagram of a tree structure formed by access control record groups and access control records that are useful in illustrating various embodiments of the present invention. ツリーの形成プロセスを例示するための、アクセス制御記録グループからなる3つの階層ツリーを示すツリーの概略図である。FIG. 3 is a schematic diagram of a tree showing three hierarchical trees of access control record groups to illustrate the tree formation process. システムアクセス制御記録を作成し、かつ使用する場合にホスト装置とメモリカード等のメモリ装置とによって実行されるプロセスを示すフローチャートである。6 is a flowchart illustrating a process executed by a host device and a memory device such as a memory card when creating and using a system access control record. システムアクセス制御記録を作成し、かつ使用する場合にホスト装置とメモリカード等のメモリ装置とによって実行されるプロセスを示すフローチャートである。6 is a flowchart illustrating a process executed by a host device and a memory device such as a memory card when creating and using a system access control record. 種々の実施形態を例示するのに有用である、システムアクセス制御記録を使ってアクセス制御記録グループを作成するプロセスを示すフローチャートである。6 is a flowchart illustrating a process for creating an access control record group using system access control records that is useful for illustrating various embodiments. アクセス制御記録を作成するプロセスを示すフローチャートである。6 is a flowchart illustrating a process for creating an access control record. 階層ツリーの一応用を例示するのに有用である、2つのアクセス制御記録グループの概略図である。FIG. 2 is a schematic diagram of two access control record groups that are useful to illustrate one application of a hierarchical tree. 特定の権利を委譲するプロセスを示すフローチャートである。FIG. 6 is a flowchart illustrating a process for delegating specific rights. 図12の委譲プロセスを例示するための、アクセス制御記録グループとアクセス制御記録との概略図である。FIG. 13 is a schematic diagram of an access control record group and an access control record for illustrating the delegation process of FIG. 12. 暗号化および/または復号化の目的で鍵を作成するプロセスを示すフローチャートである。FIG. 5 is a flow chart illustrating a process for creating a key for encryption and / or decryption purposes. アクセス制御記録に従いアクセス権および/またはデータアクセス権限を削除するプロセスを示すフローチャートである。FIG. 6 is a flowchart illustrating a process for deleting access rights and / or data access rights according to an access control record. アクセス権および/またはアクセス権限が削除されたか、あるいは期限切れになった場合にアクセスを要求するプロセスを示すフローチャートである。FIG. 6 is a flowchart illustrating a process for requesting access when an access right and / or access right is deleted or expires. 本発明の種々の実施形態の例示に有用である、認証ルール構造と暗号鍵アクセス許諾方針の構成を示す概略図である。FIG. 6 is a schematic diagram illustrating the structure of an authentication rule structure and an encryption key access authorization policy that are useful for illustrating various embodiments of the present invention. 本発明の種々の実施形態の例示に有用である、認証ルール構造と暗号鍵アクセス許諾方針の構成を示す概略図である。FIG. 6 is a schematic diagram illustrating the structure of an authentication rule structure and an encryption key access authorization policy that are useful for illustrating various embodiments of the present invention. 方針に従い被保護情報へのアクセスを制御する代替的な方法を示すデータベース構造のブロック図である。FIG. 6 is a block diagram of a database structure showing an alternative method for controlling access to protected information according to a policy. パスワードを用いた認証プロセスを示すフローチャートである。It is a flowchart which shows the authentication process using a password. 多数のホスト証明書連鎖を示す図である。It is a figure which shows many host certificate chains. 多数のデバイス証明書連鎖を示す図である。It is a figure which shows many device certificate chains. 一方向および相互認証方式のプロセスを示すプロトコル図である。FIG. 4 is a protocol diagram illustrating a process for one-way and mutual authentication schemes. 一方向および相互認証方式のプロセスを示すプロトコル図である。FIG. 4 is a protocol diagram illustrating a process for one-way and mutual authentication schemes. 本発明の一実施形態を例示するのに有用である、証明書連鎖の図である。FIG. 3 is a certificate chain diagram that is useful to illustrate one embodiment of the present invention. 本発明の別の実施形態を例示するための、メモリ装置へ最終証明書を送信する場合のホストによって送信される証明書バッファに先行する制御セクタ内の情報を示す表であって、この証明書が証明書連鎖における最終証明書であることを伝える標示を示す。FIG. 7 is a table showing information in a control sector preceding a certificate buffer sent by a host when sending a final certificate to a memory device to illustrate another embodiment of the present invention, the certificate Indicates an indication that is the last certificate in the certificate chain. メモリカードがホスト装置を認証する認証方式でカードとホストのプロセスをそれぞれ示すフローチャートである。It is a flowchart which shows each process of a card | curd and a host by the authentication system with which a memory card authenticates a host apparatus. メモリカードがホスト装置を認証する認証方式でカードとホストのプロセスをそれぞれ示すフローチャートである。It is a flowchart which shows each process of a card | curd and a host by the authentication system with which a memory card authenticates a host apparatus. ホスト装置がメモリカードを認証する認証方式でカードとホストのプロセスをそれぞれ示すフローチャートである。It is a flowchart which each shows the process of a card | curd and a host by the authentication system with which a host apparatus authenticates a memory card. ホスト装置がメモリカードを認証する認証方式でカードとホストのプロセスをそれぞれ示すフローチャートである。It is a flowchart which each shows the process of a card | curd and a host by the authentication system with which a host apparatus authenticates a memory card. 本発明の別の実施形態を例示するための、メモリ装置に記憶された証明書失効リストがホスト装置によって検索される場合にホスト装置とメモリ装置とによってそれぞれ実行されるプロセスを示すフローチャートである。6 is a flowchart illustrating processes executed by a host device and a memory device, respectively, when a certificate revocation list stored in the memory device is retrieved by the host device to exemplify another embodiment of the present invention. 本発明の別の実施形態を例示するための、メモリ装置に記憶された証明書失効リストがホスト装置によって検索される場合にホスト装置とメモリ装置とによってそれぞれ実行されるプロセスを示すフローチャートである。6 is a flowchart illustrating processes executed by a host device and a memory device, respectively, when a certificate revocation list stored in the memory device is retrieved by the host device to exemplify another embodiment of the present invention. 本発明のさらに別の実施形態を示すための、証明書失効リスト内のフィールドを示す証明書失効リストの図である。FIG. 6 is a certificate revocation list diagram showing fields in a certificate revocation list to illustrate yet another embodiment of the present invention. 証明書失効リストを使って証明書をベリファイするカードとホストのプロセスをそれぞれ示すフローチャートである。FIG. 6 is a flowchart illustrating a card and host process for verifying a certificate using a certificate revocation list. FIG. 証明書失効リストを使って証明書をベリファイするカードとホストのプロセスをそれぞれ示すフローチャートである。FIG. 6 is a flowchart illustrating a card and host process for verifying a certificate using a certificate revocation list. FIG. カードがホストへ送信されるデータに署名し、かつホストからのデータを復号化するカードプロセスを示すフローチャートである。6 is a flowchart illustrating a card process in which a card signs data to be transmitted to a host and decrypts data from the host. カードがホストへ送信されるデータに署名する場合のホストプロセスを示すフローチャートである。It is a flowchart which shows a host process in case a card signs the data transmitted to a host. ホストが暗号化データをメモリカードへ送信する場合のホストプロセスを示すフローチャートである。It is a flowchart which shows a host process in case a host transmits encryption data to a memory card. 一般情報および非公開情報クエリのプロセスをそれぞれ示すフローチャートである。It is a flowchart which shows the process of a general information and a nonpublic information query, respectively. 一般情報および非公開情報クエリのプロセスをそれぞれ示すフローチャートである。It is a flowchart which shows the process of a general information and a nonpublic information query, respectively. 本発明の一実施形態を例示するための、ホスト装置へ接続されたメモリ装置(フラッシュメモリカード等)におけるシステムアーキテクチャの機能ブロック図である。1 is a functional block diagram of a system architecture in a memory device (such as a flash memory card) connected to a host device for illustrating an embodiment of the present invention. 図40AのSSMコアの内部ソフトウェアモジュールの機能ブロック図である。FIG. 40B is a functional block diagram of an internal software module of the SSM core of FIG. 40A. 使い捨てパスワードを生成するシステムのブロック図である。It is a block diagram of the system which produces | generates a disposable password. 使い捨てパスワード(OTP)シード提供とOTP生成とを示す機能ブロック図である。It is a functional block diagram which shows a disposable password (OTP) seed provision and OTP production | generation. シード提供段階を示すプロトコル図である。FIG. 6 is a protocol diagram illustrating a seed provision stage. 使い捨てパスワード生成段階を示すプロトコル図である。It is a protocol figure which shows a disposable password production | generation step. DRMシステムを示す機能ブロック図である。It is a functional block diagram which shows a DRM system. ライセンスオブジェクトの中で鍵が提供される場合のライセンス提供とコンテンツダウンロードのプロセスを示すプロトコル図である。FIG. 10 is a protocol diagram illustrating a process of providing a license and downloading a content when a key is provided in a license object. 再生操作のプロセスを示すプロトコル図である。It is a protocol figure which shows the process of reproduction | regeneration operation. ライセンスオブジェクトの中で鍵が提供されない場合のライセンス提供とコンテンツダウンロードのプロセスを示すプロトコル図である。FIG. 11 is a protocol diagram showing a process of providing a license and downloading a content when no key is provided in the license object.

図面は、本発明の態様の様々な実施形態の特徴を示すものである。説明を簡潔にするため、本願では同じ構成要素を同じ数字で標示する。   The drawings illustrate features of various embodiments of aspects of the invention. For simplicity, the same components are labeled with the same numbers in this application.

図1のブロック図は、本発明の様々な態様を実装できる代表的なメモリシステムを示す。図1に示すように、メモリシステム10は、中央演算処理装置(CPU)12と、バッファ管理部(BMU)14と、ホストインターフェイスモジュール(HIM)16と、フラッシュインターフェイスモジュール(FIM)18と、フラッシュメモリ20と、周辺アクセスモジュール(PAM)22とを含む。メモリシステム10は、ホストインターフェイスバス26とポート26aとを通じてホスト装置24と通信する。フラッシュメモリ20はNANDタイプのものであってもよく、ホスト装置24のためのデータ記憶域を提供し、ホスト装置24はデジタルカメラ、パーソナルコンピュータ、個人用携帯情報端末(PDA)、MP3プレーヤ等のデジタルメディアプレーヤ、携帯電話機、セットトップボックス、その他のデジタル装置または家電品であってもよい。CPU12のソフトウェアコードもフラッシュメモリ20に記憶できる。FIM18は、フラッシュインターフェイスバス28とポート28aとを通じてフラッシュメモリ20へ接続する。HIM16はホスト装置への接続に適している。周辺装置アクセスモジュール22はCPU12との通信においてFIM、HIM、およびBMU等の適切なコントローラモジュールを選択する。一実施形態において、点線の枠内にあるシステム10の全構成要素をメモリカードまたはスティック10’等の単独装置で囲い込み、好ましくはこれに封入してもよい。メモリシステム10は脱着自在な状態でホスト装置24へ接続されるため、多数の異なるホスト装置からシステム10の内容にアクセスできる。   The block diagram of FIG. 1 illustrates an exemplary memory system that can implement various aspects of the present invention. As shown in FIG. 1, the memory system 10 includes a central processing unit (CPU) 12, a buffer management unit (BMU) 14, a host interface module (HIM) 16, a flash interface module (FIM) 18, and a flash. A memory 20 and a peripheral access module (PAM) 22 are included. The memory system 10 communicates with the host device 24 through the host interface bus 26 and the port 26a. The flash memory 20 may be of a NAND type and provides a data storage area for the host device 24. The host device 24 is a digital camera, personal computer, personal digital assistant (PDA), MP3 player, etc. It may be a digital media player, a mobile phone, a set top box, other digital devices or household appliances. The software code of the CPU 12 can also be stored in the flash memory 20. The FIM 18 connects to the flash memory 20 through the flash interface bus 28 and the port 28a. The HIM 16 is suitable for connection to a host device. The peripheral device access module 22 selects an appropriate controller module such as FIM, HIM, and BMU in communication with the CPU 12. In one embodiment, all components of the system 10 within the dotted frame may be enclosed in a single device, such as a memory card or stick 10 ', and preferably enclosed therein. Since the memory system 10 is detachably connected to the host device 24, the contents of the system 10 can be accessed from many different host devices.

以降の説明ではメモリシステム10をメモリ装置10と呼ぶ場合があり、あるいは単にメモリ装置または装置と呼ぶ場合がある。ここではフラッシュメモリを参照しながら本発明を例示するが、本発明は、磁気ディスク、光CD等のタイプの異なるメモリや他の書き換え可能な不揮発性メモリシステムにも応用できる。   In the following description, the memory system 10 may be referred to as a memory device 10, or simply referred to as a memory device or device. Although the present invention is illustrated here with reference to a flash memory, the present invention can also be applied to different types of memories such as magnetic disks and optical CDs and other rewritable nonvolatile memory systems.

バッファ管理部14は、ホストダイレクトメモリアクセス(HDMA)32と、フラッシュダイレクトメモリアクセス(FDMA)34と、アービタ36と、バッファランダムアクセスメモリ(BRAM)38と、クリプトエンジン40とを含む。アービタ36は共有バスアービタであるため、常に1つのみのマスタまたはイニシエータ(HDMA32、FDMA34、またはCPU12)が稼動し、そのスレーブまたはターゲットはBRAM38である。アービタは、しかるべきイニシエータ要求をBRAM38へ振り向ける役割を果たす。HDMA32とFDMA34は、HIM16、FIM18、およびBRAM38、またはCPUランダムアクセスメモリ(CPU RAM)12a間でデータの転送を担当する。HDMA32の動作とFDMA34の動作は従来どおりであり、ここで詳述する必要はない。BRAM38は、ホスト装置24とフラッシュメモリ20との間で受け渡しされるデータを記憶するために使用する。HDMA32とFDMA34は、HIM16/FIM18およびBRAM38またはCPU RAM12a間でデータを転送し、さらにセクタの終了を指示する役割を果たす。   The buffer management unit 14 includes a host direct memory access (HDMA) 32, a flash direct memory access (FDMA) 34, an arbiter 36, a buffer random access memory (BRAM) 38, and a crypto engine 40. Since the arbiter 36 is a shared bus arbiter, only one master or initiator (HDMA 32, FDMA 34, or CPU 12) always operates, and its slave or target is the BRAM 38. The arbiter is responsible for directing the appropriate initiator request to the BRAM 38. The HDMA 32 and the FDMA 34 are in charge of data transfer between the HIM 16, the FIM 18, and the BRAM 38 or the CPU random access memory (CPU RAM) 12a. The operation of the HDMA 32 and the operation of the FDMA 34 are conventional and need not be described in detail here. The BRAM 38 is used for storing data transferred between the host device 24 and the flash memory 20. The HDMA 32 and the FDMA 34 transfer data between the HIM 16 / FIM 18 and the BRAM 38 or the CPU RAM 12a, and further serve to instruct the end of the sector.

メモリシステム10は、一実施形態において、暗号化および/または復号化に用いる鍵値を生成し、この値は、好ましくはホスト装置24等の外部装置にとって事実上アクセス不能である。代替的に、システム10の外部で、例えばライセンスサーバによって、鍵値を生成し、システム10へ送信することもできる。鍵値を生成する方法にかかわりなく、いったんシステム10に記憶された鍵値にアクセスできるものは認証済み事業体のみとなる。しかし、ホスト装置はメモリシステム10におけるデータの読み書きをファイルの形で行うため、暗号化と復号化は通常であればファイル単位で行われる。メモリ装置10は、タイプが異なる他の多数の記憶装置と同様に、ファイルを管理しない。メモリ20は、ファイルの論理アドレスを識別するファイルアロケーションテーブル(FAT)を記憶するが、このFATにアクセスし管理するのは通常であればホスト装置24であって、コントローラ12ではない。このため、ある特定のファイルのデータを暗号化する場合、コントローラ12はメモリ20におけるこのファイルのデータの論理アドレスをホスト装置に送信してもらう必要があり、このため、システム10はこのファイルのデータを見つけ、システム10のみが使用できる鍵値を使ってデータを暗号化および/または復号化できる。   The memory system 10 in one embodiment generates a key value for use in encryption and / or decryption, which is preferably inaccessible to external devices such as the host device 24. Alternatively, the key value may be generated outside the system 10, for example by a license server, and transmitted to the system 10. Regardless of the method of generating the key value, only the authenticated entity can access the key value once stored in the system 10. However, since the host device reads and writes data in the memory system 10 in the form of a file, encryption and decryption are normally performed in file units. The memory device 10 does not manage files, like many other storage devices of different types. The memory 20 stores a file allocation table (FAT) for identifying a logical address of a file, but normally the host device 24 and not the controller 12 access and manage this FAT. For this reason, when encrypting data of a specific file, the controller 12 needs to have the logical address of the data of this file in the memory 20 sent to the host device. And the data can be encrypted and / or decrypted using a key value that only the system 10 can use.

ファイルデータの暗号処理においてホスト装置24とメモリシステム10の双方が同じ鍵を参照するための名前を用意するため、ホスト装置は、システム10によって生成されるか、あるいはシステム10へ送信される各鍵値につき参照符を提供し、この参照符とは要するに鍵IDであってもよい。ホスト24は、システム10によって暗号処理される各ファイルに鍵IDを割り振り、システム10は、データの暗号処理に用いる各鍵値にホストから提供される鍵IDを割り振る。よって、ホストはデータの暗号処理を要求するときに、その要求を、鍵IDと、メモリ20から取り出すか、またはメモリ20に記憶するデータの論理アドレスと併せて、システム10へ送信する。システム10は鍵値を生成または受信し、ホスト24から提供される鍵IDをその値に割り振り、暗号処理を実行する。メモリシステム10の動作を変える必要はなく、メモリシステム10は、鍵値に対する独占的アクセス等、鍵を使った暗号処理を完全に制御できる。換言すると、いったん鍵値がシステム10に記憶されるか、あるいはシステム10によって生成されたら、システムは、FATの独占的制御によるファイルの管理をホスト24に任せつつ、暗号処理に用いる鍵値の管理を一手に引き受ける。鍵値がメモリシステム10に記憶された後、ホスト装置24はデータの暗号処理に用いる鍵値の管理に関与しない。   In order to prepare a name for both the host device 24 and the memory system 10 to refer to the same key in the encryption processing of the file data, the host device generates each key generated by the system 10 or transmitted to the system 10. A reference is provided for each value, which may be a key ID. The host 24 assigns a key ID to each file encrypted by the system 10, and the system 10 assigns a key ID provided from the host to each key value used for data encryption processing. Thus, when the host requests data encryption processing, the request is transmitted to the system 10 together with the key ID and the logical address of the data taken out from the memory 20 or stored in the memory 20. The system 10 generates or receives a key value, assigns a key ID provided from the host 24 to the value, and executes cryptographic processing. There is no need to change the operation of the memory system 10, and the memory system 10 can completely control cryptographic processing using a key, such as exclusive access to a key value. In other words, once the key value is stored in the system 10 or generated by the system 10, the system manages the key value used for cryptographic processing while leaving the host 24 to manage the file under exclusive control of the FAT. Undertake. After the key value is stored in the memory system 10, the host device 24 is not involved in the management of the key value used for data encryption processing.

ホスト24から提供される鍵IDとメモリシステムへ送信されるか、あるいはメモリシステムによって生成される鍵値は、一実施形態において、これ以降「コンテンツ暗号化鍵」もしくはCEKと呼ぶ数量の2つの属性を形成する。ホスト24は1つ以上のファイルに鍵IDを割り振ってもよく、組織化されていないデータあるいは完全なファイルの形に組織化されたデータばかりでなく何らかのやり方で組織化されたデータに鍵IDを割り振る場合がある。   The key ID provided from the host 24 and the key value transmitted to the memory system or generated by the memory system are, in one embodiment, two attributes, hereinafter referred to as “content encryption key” or CEK. Form. The host 24 may assign a key ID to one or more files and assign a key ID to data organized in some way, as well as unorganized data or data organized in a complete file. May be allocated.

システム10で保護されたコンテンツや領域にユーザまたはアプリケーションがアクセスするには、システム10に予め登録された信用証明を使って認証を受ける必要がある。信用証明はアクセス権に関連付けられ、この信用証明によって特定のユーザまたはアプリケーションにアクセス権が付与される。このような事前登録ではユーザまたはアプリケーションのアイデンティティおよび信用証明の記録をシステム10に記憶し、ユーザまたはアプリケーションによって判定されたそのようなアイデンティティおよび信用証明に応じてアクセス権が割り振られ、ホスト24を通じて提供される。事前登録が完了した後、メモリ20へのデータ書き込みを要求するユーザまたはアプリケーションは、自身のアイデンティティおよび信用証明と、データを暗号化するための鍵IDと、暗号化されたデータを記憶するところの論理アドレスとを、ホスト装置を通じて提供する必要がある。システム10は鍵値を生成または受信し、ホスト装置から提供される鍵IDをこの値に割り振り、書き込みデータの暗号化に用いる鍵値の鍵IDをこのユーザまたはアプリケーションの記録またはテーブルに記憶する。そして、システム10はデータを暗号化し、ホストによって指定されたアドレスに暗号化されたデータを記憶するほか、生成または受信した鍵値を記憶する。   In order for a user or an application to access content or areas protected by the system 10, it is necessary to authenticate using a credential registered in advance in the system 10. A credential is associated with an access right that grants the access right to a particular user or application. Such pre-registration stores a record of the identity or credentials of the user or application in the system 10 and access is allocated according to such identity and credentials determined by the user or application and provided through the host 24. Is done. After pre-registration is complete, a user or application requesting data writing to the memory 20 stores its identity and credentials, a key ID for encrypting the data, and the encrypted data. The logical address needs to be provided through the host device. The system 10 generates or receives a key value, assigns a key ID provided by the host device to this value, and stores the key ID of the key value used for encrypting the write data in a record or table of this user or application. Then, the system 10 encrypts the data, stores the encrypted data at an address designated by the host, and stores the generated or received key value.

メモリ20から暗号化データを読み出すことを要求するユーザまたはアプリケーションは、自身のアイデンティティおよび信用証明と、要求するデータの暗号化に使われた鍵の鍵IDと、暗号化データが記憶されているところの論理アドレスとを提供する必要がある。システム10は、ホストから提供されたユーザまたはアプリケーションのアイデンティティおよび信用証明を自身の記録に記憶されたものに突き合せる。システム10は、それらが一致する場合、ユーザまたはアプリケーションから提供された鍵IDと関連付けられた鍵値を自身のメモリから取り出し、ホスト装置が指定するアドレスに記憶されたデータを鍵値を用いて復号化し、復号化したデータをユーザまたはアプリケーションへ送信する。   A user or application requesting to read encrypted data from the memory 20 stores his / her identity and credentials, the key ID of the key used to encrypt the requested data, and the encrypted data. It is necessary to provide a logical address. The system 10 matches the user or application identity and credentials provided by the host with those stored in its own record. If they match, the system 10 retrieves the key value associated with the key ID provided by the user or application from its own memory and decrypts the data stored at the address specified by the host device using the key value. And send the decrypted data to the user or application.

認証のための信用証明を暗号処理に用いる鍵の管理から分離することにより、異なる信用証明で共通のデータアクセス権を有することが可能となる。つまり、信用証明がそれぞれ異なる1グループのユーザまたはアプリケーションは同じ鍵にアクセスして同じデータにアクセスできても、このグループ以外のユーザはアクセスできない。1グループ内のすべてのユーザまたはアプリケーションが同じデータにアクセスする場合でも、それらのユーザまたはアプリケーションの権利が依然として異なる場合がある。読み出し限定のアクセス権を有するものもあれば、書き込みアクセス権のみを有するものもあれば、両方を有するものもある。ユーザまたはアプリケーションのアイデンティティおよび信用証明と、アクセスできる鍵IDと、各々の鍵IDに関連するアクセス権との記録を維持するシステム10では、正式に認証されたホスト装置の管理下で鍵IDを追加または削除したり、特定のユーザまたはアプリケーションの鍵IDと関連付けられたアクセス権を変更したり、あるユーザまたはアプリケーションから別のユーザまたはアプリケーションにアクセス権を委譲できるほか、ユーザまたはアプリケーションの記録またはテーブルを削除または追加することもできる。記憶された記録では、特定の鍵へのアクセスにおいてセキュアチャネルを特定することができる。認証は、対称または非対称アルゴリズムとパスワードを使って果たすことができる。   By separating the credentials for authentication from the management of keys used for cryptographic processing, it is possible to have a common data access right with different credentials. That is, even if one group of users or applications with different credentials can access the same key and access the same data, users other than this group cannot. Even if all users or applications in a group access the same data, the rights of those users or applications may still be different. Some have read-only access rights, some have only write access rights, others have both. In system 10, which maintains a record of user or application identity and credentials, accessible key IDs, and access rights associated with each key ID, the key ID is added under the control of a formally authenticated host device Or delete access, change the access rights associated with a specific user or application key ID, transfer access from one user or application to another, or record a user or application record or table It can also be deleted or added. In the stored record, a secure channel can be identified in accessing a particular key. Authentication can be accomplished using symmetric or asymmetric algorithms and passwords.

とりわけ重要なこととして、メモリシステム10の中で保護されたコンテンツは移動できる。鍵値へのアクセスがメモリシステムによって制御される実施形態において、メモリシステムまたはこのシステムを内蔵する記憶装置がある1つの外部システムから別の外部システムへ移される場合、そこに記憶されたコンテンツの安全は保たれる。鍵がメモリシステムによって生成されようが、メモリシステムの外から届くものであろうが、外部システムは、メモリシステムによって完全に統制されたやり方で認証されない限り、システム10のコンテンツにアクセスできない。そのとおりに認証された後でもアクセスはメモリシステムによって全面的に制御され、外部システムによるアクセスのあり方は、メモリシステムに予め設定された記録に従って制御される。このような記録に準拠しない要求は拒否される。   Of particular importance, content protected within the memory system 10 can be moved. In embodiments where access to key values is controlled by a memory system, if the memory system or storage device incorporating this system is moved from one external system to another, the security of the content stored there Is kept. Whether the key is generated by the memory system or from outside the memory system, the external system cannot access the contents of the system 10 unless it is authenticated in a fully controlled manner by the memory system. Even after being authenticated as such, access is entirely controlled by the memory system, and the way of access by the external system is controlled in accordance with records preset in the memory system. Requests that do not comply with such records are rejected.

コンテンツ保護の柔軟性を高めるため、これ以降パーティションと呼ぶメモリの特定領域が想定され、このパーティションには正式に認証されたユーザまたはアプリケーションのみがアクセスできる。これを前述した鍵方式のデータ暗号化機能と組み合わせることにより、システム10のデータ保護能力は向上する。図2に示すように、フラッシュメモリ20の記憶容量は、多数のパーティション、すなわちユーザ領域またはパーティションとカスタムパーティションに分割できる。ユーザ領域またはパーティションP0には、すべてのユーザまたはアプリケーションが認証なしでアクセスできる。ユーザ領域に記憶されたデータのビット値のすべてがいずれのアプリケーションまたはユーザでも読み書きできるが、読み出しデータが暗号化されている場合、復号化の権限を有していないユーザまたはアプリケーションは、ユーザ領域に記憶されたビット値表現の情報にアクセスできない。例えば、ユーザ領域P0に記憶されたファイル102および104がこれにあたる。106等のユーザ領域には暗号化されていないファイルも記憶され、すべてのアプリケーションおよびユーザがこれを読み出し、解釈できる。ファイル102および104等の暗号化されたファイルは錠前の記号を関連付けて表示されている。   In order to increase the flexibility of content protection, a specific area of memory, hereinafter referred to as a partition, is assumed, and this partition can be accessed only by authorized users or applications. By combining this with the above-described key-type data encryption function, the data protection capability of the system 10 is improved. As shown in FIG. 2, the storage capacity of the flash memory 20 can be divided into a number of partitions, namely a user area or partition and a custom partition. All users or applications can access the user area or partition P0 without authentication. All the bit values of the data stored in the user area can be read and written by any application or user, but if the read data is encrypted, the user or application that does not have the authority to decrypt can be read in the user area. The stored bit value representation information cannot be accessed. For example, the files 102 and 104 stored in the user area P0 correspond to this. Unencrypted files are also stored in the user area such as 106, which can be read and interpreted by all applications and users. Encrypted files such as files 102 and 104 are displayed with associated lock symbols.

権限のないアプリケーションまたはユーザはユーザ領域P0で暗号化されたファイルを解釈できないが、そのようなアプリケーションまたはユーザであってもファイルを削除したり破壊したりすることは可能であり、用途によっては好ましくない場合がある。このため、メモリ20には、パーティションP1およびP2等の事前の認証なくしてアクセスできない被保護カスタムパーティションもある。この用途の実施形態に使える認証プロセスをこれより説明する。   An unauthorized application or user cannot interpret the file encrypted in the user area P0, but even such an application or user can delete or destroy the file, which is preferable depending on the application. There may not be. For this reason, the memory 20 also includes protected custom partitions such as the partitions P1 and P2 that cannot be accessed without prior authentication. An authentication process that can be used for embodiments of this application will now be described.

同じく図2に示されているように、メモリ20のファイルには様々なユーザまたはアプリケーションがアクセスする。そこで図2には、ユーザ1および2とアプリケーション1〜4(装置上で実行)が示されている。これらの事業体は、これより説明する認証プロセスによって認証された後にメモリ20の被保護コンテンツへのアクセスが認められる。このプロセスでは、アクセスを要求する事業体をロール方式のアクセス制御のためにホスト側で識別する必要がある。そこでアクセスを要求する事業体はまず、「私はアプリケーション2であってファイル1を読み出したい」等の情報を供給することによって自身を識別する。コントローラ12はそのアイデンティティと、認証情報と、要求とを、メモリ20またはコントローラ12に記憶された記録に突き合せる。すべての要件が満たされる場合、そのような事業体にアクセスが認められる。図2に示すように、ユーザ1はパーティションP1のファイル101を読み書きでき、P0ではファイル106に対する無制限の読み出し・書き込み権利を有しているが、これ以外に読み出し可能なファイルはファイル102および104のみである。他方、ユーザ2は、ファイル101および104へのアクセスを許可されないが、ファイル102に対する読み出し・書き込みアクセス権は有している。図2に示すように、ユーザ1および2のログインアルゴリズム(AES)は同じであるが、アプリケーション1および3のログインアルゴリズムはそれぞれ異なり(例えば、RSAと001001)、ユーザ1および2のものとも異なる。   As also shown in FIG. 2, files in memory 20 are accessed by various users or applications. FIG. 2 shows users 1 and 2 and applications 1 to 4 (executed on the apparatus). These entities are granted access to the protected content in memory 20 after being authenticated by the authentication process described below. In this process, the entity that requires access needs to be identified on the host side for role-based access control. Thus, the entity requesting access first identifies itself by supplying information such as “I want to read file 1 as application 2”. The controller 12 matches its identity, authentication information, and request with a record stored in the memory 20 or the controller 12. If all requirements are met, such entities are granted access. As shown in FIG. 2, the user 1 can read and write the file 101 of the partition P1 and has unlimited read / write rights to the file 106 at P0, but the only other files that can be read are the files 102 and 104. It is. On the other hand, the user 2 is not permitted to access the files 101 and 104, but has read / write access rights to the file 102. As shown in FIG. 2, the login algorithms (AES) for users 1 and 2 are the same, but the login algorithms for applications 1 and 3 are different (eg, RSA and 000001), and are different from those for users 1 and 2.

セキュアストレージアプリケーション(SSA)は本発明の一実施形態を例示するメモリシステム10のセキュリティアプリケーションであり、前述した機能の多くはこれを用いて実行できる。SSAはソフトウェアまたはコンピュータコードとして実装でき、メモリ20またはCPU12の不揮発性メモリ(図示せず)に記憶されたデータベースがRAM12aに読み込まれ、CPU12によって実行される。次の表には、SSAに言及する場合に用いる頭字語が記されている。

Figure 0005180203
The secure storage application (SSA) is a security application of the memory system 10 that exemplifies an embodiment of the present invention, and many of the functions described above can be executed using this. The SSA can be implemented as software or computer code, and a database stored in the memory 20 or a non-volatile memory (not shown) of the CPU 12 is read into the RAM 12a and executed by the CPU 12. The following table lists the acronyms used when referring to SSA.
Figure 0005180203

SSAシステムの説明
SSAの主な役割はデータの保護と保全とアクセス制御である。データとは、いくつかの大容量記憶装置に一目瞭然な状態で記憶される場合があるファイルである。SSAシステムは記憶システムの上部に位置し、記憶されたホストファイルのためのセキュリティ層を加え、後述するセキュリティデータ構造を通じてセキュリティ機能を提供する。
Description of SSA System The main role of SSA is data protection, integrity and access control. Data is a file that may be stored at a glance in some mass storage devices. The SSA system sits on top of the storage system, adds a security layer for stored host files, and provides security functions through a security data structure described below.

SSAの主な仕事は、メモリに記憶された(保護された)コンテンツに関わる様々な権利を管理することである。メモリアプリケーションは、複数の記憶コンテンツに対する複数のユーザおよびコンテンツ権利を管理する必要がある。ホストアプリケーションは提示されたドライブとパーティションをホスト側から看取するほか、記憶装置に記憶されたファイルの位置を管理し表現するファイルアロケーションテーブル(FAT)を看取する。   The main task of SSA is to manage various rights related to (protected) content stored in memory. Memory applications need to manage multiple users and content rights for multiple stored content. In addition to viewing the presented drive and partition from the host side, the host application also views a file allocation table (FAT) that manages and represents the location of the file stored in the storage device.

この場合の記憶装置はパーティションに分割されたNANDフラッシュチップを使用するが、他の可搬型記憶装置も使用でき、本発明の範囲内にある。これらのパーティションは一連の論理アドレスであり、その境界は開始アドレスと終端アドレスで区切られる。したがって、所望により、非表示のパーティションへのアクセスに制限を設けることができ、それにはソフトウェア(メモリ20に記憶されたソフトウェア等)によってそのような境界内のアドレスにそのような制限を関連付ける。SSAは、自身が管理する論理アドレスの境界によってパーティションを完全に認識する。SSAシステムはパーティションを用いて権限を有していないホストアプリケーションからデータを物理的に保護する。ホストにとってのパーティションは、データファイルが記憶されるところの専有空間を規定するメカニズムである。これらのパーティションを公開する場合、記憶装置にアクセスできる者であれば誰でも装置におけるこれらのパーティションの存在を看取して認識し、パーティションを非公開にする場合もしくは非表示にする場合、選ばれたホストアプリケーションのみがこれらのパーティションにアクセスでき、記憶装置におけるこれらの存在をも認識できる。   The storage device in this case uses a NAND flash chip divided into partitions, but other portable storage devices can also be used and are within the scope of the present invention. These partitions are a series of logical addresses whose boundaries are delimited by a start address and an end address. Thus, if desired, restrictions can be placed on access to hidden partitions, which are associated by software (such as software stored in memory 20) with such restrictions on addresses within such boundaries. The SSA completely recognizes the partition by the boundary of the logical address managed by itself. SSA systems use partitions to physically protect data from unauthorized host applications. A partition for a host is a mechanism that defines a private space where data files are stored. When making these partitions public, anyone who has access to the storage device can choose to view and recognize the existence of these partitions on the device, and to make the partitions private or hidden. Only the host application that has access to these partitions can recognize their presence in the storage device.

図3はメモリのパーティションP0、P1、P2、およびP3を示すメモリの概略図であり(言うまでもなく5つ以上のパーティションが使われることも、あるいは3つ以下のパーティションが使われることもある)、P0はいずれの事業体でも認証なしでアクセスできる公開パーティションである。   FIG. 3 is a schematic diagram of a memory showing memory partitions P0, P1, P2, and P3 (of course, more than five partitions may be used, or fewer than three partitions may be used), P0 is a public partition that any entity can access without authentication.

非公開パーティション(P1、P2、またはP3等)の中にあるファイルへのアクセスは非表示にされる。ホストによるパーティションへのアクセスを阻止することにより、フラッシュ装置(例えば、フラッシュカード)はパーティションの中でデータファイルの保護を達成する。しかし、この種の保護は、非表示パーティションの中で論理アドレスに記憶されたデータへのアクセスに制限を設けることによって、非表示パーティションの中にあるすべてのファイルを囲い込むものである。換言すると、一連の論理アドレスに制限を関連付けるものである。そのパーティションへアクセスできるユーザ/ホストはいずれも、内部にあるすべてのファイルに無制限にアクセスできる。ファイル(またはファイル群)を互いに分離するため、SSAシステムは鍵と鍵の参照符すなわち鍵IDとを用いて別の保護・保全レベルをファイル(またはファイル群)単位で提供する。様々なメモリアドレスでデータを暗号化するのに用いられる鍵値の鍵参照符すなわち鍵IDは、暗号化データを収容する容器または領域にたとえることができる。このため、図4では、鍵IDと関連付けられた鍵値を用いて暗号化されたファイルを取り囲む領域として鍵参照符すなわち鍵ID(例えば、「鍵1」および「鍵2」)が示されている。   Access to files in private partitions (such as P1, P2, or P3) is hidden. By preventing access to the partition by the host, the flash device (eg, flash card) achieves data file protection within the partition. However, this type of protection encloses all files in the hidden partition by limiting access to data stored at logical addresses in the hidden partition. In other words, a restriction is associated with a series of logical addresses. Any user / host that has access to the partition has unlimited access to all the files inside. In order to separate files (or file groups) from each other, the SSA system provides different levels of protection and integrity on a file (or file group) basis using keys and key references, or key IDs. The key reference or key ID of the key value used to encrypt data at various memory addresses can be compared to a container or area that contains the encrypted data. For this reason, in FIG. 4, key reference marks, that is, key IDs (for example, “key 1” and “key 2”) are shown as an area surrounding a file encrypted using the key value associated with the key ID. Yes.

図4を参照し、例えばファイルAは鍵IDで囲まれていないため、いずれの事業体でも認証なしでファイルAにアクセスできる。公開パーティションの中にあるファイルBはいずれの事業体でも読み出しや上書きを行えるが、その中のデータはID「鍵1」を有する鍵で暗号化されているため、このような鍵にアクセスできるこのような事業体でない限り、ファイルBの中にある情報にはアクセスできない。このような鍵値と鍵参照符すなわち鍵IDの使用は、前述したパーティションによる保護とは異なり、論理的な保護のみを提供する。つまり、パーティション(公開または非公開)にアクセスできるホストであればいずれでもそのパーティションの中で暗号化データを含むデータを読み書きできる。しかし、データは暗号化されているため、権限を有していないユーザはデータを壊すことしかできない。権限を有していないユーザは、好ましくは発覚することなくこのデータを変更できない。暗号化および/または復号化鍵へのアクセスを制限することにより、権限を有する事業体のみにデータの使用を認めることができる。P0ではファイルBおよびCも鍵ID「鍵2」を有する鍵を使って暗号化されている。   Referring to FIG. 4, for example, since file A is not surrounded by a key ID, any business entity can access file A without authentication. File B in the public partition can be read or overwritten by any entity, but the data in it is encrypted with the key with ID “Key 1”, so this key can be accessed. Unless it is such an entity, the information in file B cannot be accessed. The use of such key values and key references or key IDs provides only logical protection, unlike the partition protection described above. That is, any host that can access a partition (public or private) can read and write data including encrypted data in the partition. However, since the data is encrypted, an unauthorized user can only destroy the data. Unauthorized users are preferably unable to change this data without knowledge. By restricting access to the encryption and / or decryption key, only authorized entities can be allowed to use the data. In P0, the files B and C are also encrypted using a key having the key ID “key 2”.

データの機密保護と保全は、コンテンツ暗号化鍵(CEK)をCEK当たり1つずつ使用する対称暗号化法で提供できる。SSAの実施形態では、CEKの鍵値がフラッシュ装置(例えば、フラッシュカード)によって生成または受信され、内部でのみ使用され、外部に対して秘密に保たれる。暗号化されるデータでハッシュ計算を行うか、あるいは暗号を連鎖ブロック化することによってデータ保全を徹底することもできる。   Data security and integrity can be provided by a symmetric encryption method using one content encryption key (CEK) per CEK. In the SSA embodiment, the CEK key value is generated or received by a flash device (eg, a flash card), used only internally, and kept secret to the outside. Data integrity can also be ensured by performing hash calculations on the data to be encrypted, or by chaining the ciphers.

パーティション内のすべてのデータが異なる鍵によって暗号化され、異なる鍵IDが割り振られるわけではない。公開またはユーザファイルの中またはオペレーティングシステム領域(すなわち、FAT)の中で、論理アドレスに鍵または鍵参照符が割り振られない場合があり、この場合、パーティション自体にアクセスできる事業体であればいずれでもこれにアクセスできる。   Not all data in a partition is encrypted with different keys and different key IDs are not allocated. A key or key reference may not be assigned to a logical address in a public or user file or operating system area (ie, FAT), in which case any entity that can access the partition itself You can access this.

鍵やパーティションの作成や、パーティションにおけるデータの読み書きや、鍵の使用を望む事業体は、アクセス制御記録(ACR)を通じてSSAシステムにログインする必要がある。SSAシステムにおけるACRの特権はアクションと呼ばれる。どのACRでも3種類のアクション、すなわちパーティションおよび鍵/鍵IDの作成と、パーティションおよび鍵へのアクセスと、他のACRの作成/更新とを実行する権限を有することができる。   Entities that want to create keys and partitions, read and write data in partitions, and use keys must log into the SSA system through access control records (ACR). The privileges of ACR in the SSA system are called actions. Any ACR may have the authority to perform three types of actions: creating partitions and keys / key IDs, accessing partitions and keys, and creating / updating other ACRs.

ACRは、ACRグループすなわちAGPと呼ばれるグループに整理する。ACRの認証に成功するとSSAシステムがセッションを開放し、このセッションの中でACRのアクションを実行できる。ACRとAGPは、方針に従ってパーティションや鍵へのアクセスを制御するためのセキュリティデータ構造である。   ACRs are organized into groups called ACR groups or AGPs. If the ACR authentication is successful, the SSA system releases the session, and the ACR action can be executed in this session. ACR and AGP are security data structures for controlling access to partitions and keys according to a policy.

ユーザパーティション
SSAシステムは、ユーザパーティションとも呼ばれる1つ以上の公開パーティションを管理する。このパーティションは記憶装置上に存在し、記憶装置の標準的な読み出し・書き込みコマンドを通じてアクセスできるパーティションである。このパーティションのサイズと装置上でのこのパーティションの存在に関する情報は、好ましくはホストに対して非表示にしない。
The user partition SSA system manages one or more public partitions, also called user partitions. This partition exists on the storage device and can be accessed through standard read / write commands of the storage device. Information regarding the size of this partition and the presence of this partition on the device is preferably not hidden from the host.

SSAシステムでは、標準的な読み出し・書き込みコマンドまたはSSAコマンドを通じてこのパーティションにアクセスできる。このパーティションへのアクセスは、好ましくは特定のACRに制限しない。しかし、SSAシステムの場合、ホスト装置はユーザパーティションへのアクセスを制限できる。読み出し・書き込みアクセスは個別に有効/無効にできる。4通りの組み合わせすべて(例えば、書き込み限定、読み出し限定(書き込み保護)、読み出しおよび書き込み、アクセス不能)が可能である。   In an SSA system, this partition can be accessed through standard read / write commands or SSA commands. Access to this partition is preferably not restricted to a specific ACR. However, in the case of the SSA system, the host device can restrict access to the user partition. Read / write access can be individually enabled / disabled. All four combinations (for example, write only, read only (write protection), read and write, inaccessible) are possible.

SSAシステムでは、ACRを使ってユーザパーティションの中にあるファイルに鍵IDを割り振り、そのような鍵IDと関連付けられた鍵を使って個々のファイルを暗号化できる。ユーザパーティションの中にある暗号化ファイルへのアクセスとパーティションへのアクセス権設定は、SSAコマンドセットを使って行う。前述した機能はファイルの形に組織されていないデータにも当てはまる。   In an SSA system, a key ID is assigned to a file in a user partition using ACR, and an individual file can be encrypted using a key associated with such key ID. Access to the encrypted file in the user partition and setting of the access right to the partition are performed using the SSA command set. The functions described above also apply to data that is not organized in the form of files.

SSAパーティション
これは、SSAコマンドでないとアクセスできない非表示(認証されていない者に対して非表示にされた)パーティションである。SSAシステムは好ましくは、ACRへのログインによって確立するセッション(後述)の中でアクセスが行われる場合を除き、ホスト装置によるSSAパーティションへのアクセスを許可しない。同様に、SSAは好ましくは、SSAパーティションの存在と、サイズと、アクセス権限とに関する情報を、その要求が確立されたセッションの中で発生する場合を除き、提供しない。
SSA partition This is a hidden (hidden for unauthenticated) partition that can only be accessed by SSA commands. The SSA system preferably does not allow access to the SSA partition by the host device unless access is made in a session (described below) established by logging into the ACR. Similarly, the SSA preferably does not provide information regarding the existence, size, and access rights of the SSA partition unless the request occurs within the established session.

パーティションに対するアクセス権はACR権限から検索される。SSAシステムにログインしたACRは他のACRとパーティションを共用できる(後述)。パーティションが作成されると、ホストはそのパーティションに参照名またはID(例えば、図3および4におけるP0〜P3)を与える。この参照名は、このパーティションに対する以降の読み出し・書き込みコマンドで使われる。   The access right to the partition is retrieved from the ACR authority. An ACR logged into the SSA system can share a partition with other ACRs (described later). When a partition is created, the host gives the partition a reference name or ID (eg, P0-P3 in FIGS. 3 and 4). This reference name is used in subsequent read / write commands for this partition.

記憶装置の分割
好ましくは、装置の使用可能な記憶容量のすべてをユーザパーティションとその時点で構成済みのSSAパーティションとに割り当てる。このため、再分割において既存のパーティションの再構成をともなうことがある。装置容量(全パーティションの合計サイズ)の正味の変化はゼロである。装置メモリ空間におけるパーティションのIDはホストシステムによって設定される。
Partitioning of storage devices Preferably, all of the device's available storage capacity is allocated to the user partition and the currently configured SSA partition. For this reason, repartitioning may involve reconfiguration of existing partitions. The net change in device capacity (total size of all partitions) is zero. The ID of the partition in the device memory space is set by the host system.

ホストシステムは、既存パーティションのいずれか1つを2つのより小さいパーティションに再分割したり、2つの既存パーティション(隣接する場合とそうでない場合とがある)を1つに併合したりすることができる。分割されたパーティションや併合されたパーティションの中のデータは、ホストの判断で消去するか、あるいは現状のまま残すことができる。   The host system can subdivide any one of the existing partitions into two smaller partitions, or merge two existing partitions (which may or may not be adjacent) into one . Data in the divided and merged partitions can be erased at the discretion of the host or left as is.

記憶装置の再分割によってデータが(記憶装置の論理アドレス空間の中での消去や移動により)失われるおそれがあるため、SSAシステムは再分割において厳重な制限を課す。つまり、ルートAGP(後述)の中にあるACRにのみ再分割コマンドの発行が許され、これが参照できるパーティションは自身が所有するパーティションのみである。パーティションの中でデータがどのように構成されているかはSSAシステムには分からないから(FATまたはその他のファイルシステム構造)、装置の再分割において構成を組み直す責任はホストにある。   The SSA system imposes severe restrictions on repartitioning because data may be lost (due to erasure or movement in the logical address space of the storage device) due to repartitioning of the storage device. That is, only the ACR in the root AGP (described later) is allowed to issue a re-segmentation command, and the only partition that can be referred to is the partition owned by itself. Since the SSA system does not know how the data is organized in the partition (FAT or other file system structure), it is the host's responsibility to reconfigure the device in repartitioning.

ユーザパーティションの再分割によって、ホストOSから見たこのパーティションのサイズやその他の属性は変化する。   By repartitioning the user partition, the size and other attributes of this partition as seen from the host OS change.

再分割の後、ホストシステムにはSSAシステムで存在しないパーティションをACRが参照していないことを確認する責任がある。これらのACRが適切に削除または更新されないと、不在パーティションに対してこれらのACRに代わって行われるアクセスの試みはシステムによって検出され、拒否される。削除される鍵や鍵IDについても同様の配慮がなされる。   After repartitioning, the host system is responsible for ensuring that the ACR does not reference partitions that do not exist in the SSA system. If these ACRs are not properly deleted or updated, access attempts made on behalf of these ACRs to the absent partition will be detected and rejected by the system. Similar considerations are given to keys and key IDs to be deleted.

鍵、鍵ID、論理的保護
ある特定の非表示パーティションに書き込まれたファイルは公から非表示にされる。しかし、いったん事業体(敵対的な事業体、またはそうでない事業体)が情報を得てこのパーティションにアクセスすると、そのファイルは使用可能となり一目瞭然となる。そのファイルのさらなる安全確保のため、SSAは非表示パーティションでファイルを暗号化でき、このファイルの復号化に用いる鍵にアクセスするための信用証明は、好ましくはパーティションにアクセスするためのものとは異なるものにする。ファイルはホストによって全面的に制御され、管理されるため、ファイルにCEKを割り振ることには問題がある。これを解決するには、SSAが了解する何か、すなわち鍵IDにファイルを関連付ける。つまりSSAによって鍵が作成されたら、ホストはその鍵を使って暗号化されるデータに鍵IDを割り振る。鍵が鍵IDと併せてSSAに送られる場合、鍵と鍵IDを互いに関連付けることは容易い。
Keys, key IDs, logical protection Files written to certain hidden partitions are hidden from the public. However, once an entity (a hostile entity or otherwise) gains information and accesses this partition, the file becomes usable and self-explanatory. To further secure the file, the SSA can encrypt the file in a hidden partition, and the credentials for accessing the key used to decrypt the file are preferably different from those for accessing the partition. Make things. There is a problem with allocating CEK to a file because the file is totally controlled and managed by the host. To solve this, associate the file with something that the SSA understands, namely the key ID. That is, when a key is created by SSA, the host assigns a key ID to data to be encrypted using the key. If the key is sent to the SSA along with the key ID, it is easy to associate the key with the key ID.

鍵値と鍵IDは論理的セキュリティを提供する。特定の鍵IDが割り振られたデータはいずれも、その場所にかかわりなく、コンテンツ暗号化鍵(CEK)の同じ鍵値で暗号化され、ホストアプリケーションからは一意な参照名すなわち鍵IDが提供される。(ACR認証により)非表示パーティションにアクセスし、そのパーティション内にある暗号化ファイルの読み出しまたは書き込みを望む事業体は、そのファイルに割り振られた鍵IDにアクセスする必要がある。この鍵IDの鍵に対するアクセスを許諾する場合、SSAはこの鍵IDと関連付けられたCEKに鍵値をロードし、データを復号化してからホストへ送信するか、あるいはデータを暗号化してからフラッシュメモリ20に書き込む。一実施形態において、鍵IDと関連付けられたCEKの鍵値がSSAシステムによって無作為に作成され、SSAシステムによって維持される。SSAシステムの外でCEKの鍵値を知るか、あるいはアクセスする者はいない。外部から提供され外部で使用するのは参照符すなわち鍵IDのみであり、CEKの鍵値ではない。鍵値はSSAによって全面的に制御され、好ましくはSSAのみがこれにアクセスできる。代替的に、SSAシステムに鍵を提供することもできる。   Key values and key IDs provide logical security. Any data that is assigned a specific key ID is encrypted with the same key value of the content encryption key (CEK) regardless of its location, and the host application provides a unique reference name or key ID. . An entity that accesses a hidden partition (via ACR authentication) and wants to read or write an encrypted file in that partition needs to access the key ID assigned to that file. When granting access to the key with this key ID, the SSA loads the key value into the CEK associated with this key ID and decrypts the data before transmitting it to the host, or encrypts the data and then flashes the memory. Write to 20. In one embodiment, the CEK key value associated with the key ID is randomly generated by the SSA system and maintained by the SSA system. No one knows or accesses the CEK key value outside the SSA system. Only reference marks, ie, key IDs, are provided externally and used externally, not CEK key values. The key value is fully controlled by the SSA, preferably only the SSA can access it. Alternatively, a key can be provided to the SSA system.

SSAシステムは、次の暗号モードのいずれか1つ(ユーザにより設定)を用いて鍵IDと関連付けられたデータを保護する(実際に使われる暗号アルゴリズムとCEKにおける鍵値はシステムの管理下にあって、外部には明かされない)。
・ブロックモード:データをブロックに分割し、それぞれのブロックを個別に暗号化する。このモードは一般的に安全性が低いとされ、辞書攻撃を被りやすいが、ユーザはデータブロックのいずれか1つにランダムにアクセスできる。
・連鎖モード:データをブロックに分割し、暗号化の過程で鎖状に繋ぎ合わせる。ブロックはいずれも、次のブロックの暗号化プロセスへの入力として使われる。安全性は高いとされているが、データの読み書きが最初から最後まで順次に行われるため、ユーザにとって容認しがたいオーバーヘッドが発生することがある。
・ハッシュモード:連鎖モードに、データ保全性ベリファイに用いるデータダイジェストの作成を加えたもの。
The SSA system protects the data associated with the key ID using one of the following cryptographic modes (set by the user) (the cryptographic algorithm used and the key value in CEK are under system control). Is not revealed to the outside).
Block mode: Data is divided into blocks and each block is encrypted individually. This mode is generally considered to be less secure and is susceptible to dictionary attacks, but the user can randomly access any one of the data blocks.
-Chain mode: Data is divided into blocks and connected in a chain during the encryption process. Any block is used as input to the encryption process for the next block. Although it is said that safety is high, since data reading and writing are sequentially performed from the beginning to the end, an overhead that is unacceptable to the user may occur.
-Hash mode: A chain mode plus a data digest used for data integrity verification.

ACRとアクセス制御
SSAは多数のアプリケーションを取り扱うように設計され、システムデータベースの中では、ノードからなるツリーとしてそれぞれのアプリケーションを表現する。ツリーのブランチ間のクロストークをなくすことによりアプリケーション間の相互排除を達成する。
The ACR and the access control SSA are designed to handle a large number of applications, and each application is represented as a tree of nodes in the system database. Achieve mutual exclusion between applications by eliminating crosstalk between branches of the tree.

SSAシステムにアクセスする場合、事業体はシステムのいずれか1つのACRを通じて接続を確立する必要がある。SSAシステムは、接続する場合、ユーザが選ぶACRの規定に従ってログイン手続きを運営する。   When accessing an SSA system, an entity needs to establish a connection through any one ACR of the system. When connecting, the SSA system operates a login procedure in accordance with the ACR rules selected by the user.

ACRはSSAシステムに至る個々のログイン地点である。ACRはログイン信用証明と認証方法を保持する。読み出し特権や書き込み特権を含むSSAシステムの中でのログイン権限もこの記録の中にある。これを示す図5には、同じAGPの中にn個のACRがある。これは、n個のACRのうちの少なくとも種々のACRが同じ鍵へのアクセス権を共有することを意味する。つまり、ACR#1とACR#nは鍵ID「鍵3」を有する鍵へのアクセス権を共有し、ここでACR#1とACR#nはACR IDであって、「鍵3」は鍵の鍵IDであって、この鍵を用いて「鍵3」に関連するデータが暗号化される。複数ファイルまたは複数データ群の暗号化および/または復号化に同じ鍵を使うこともできる。   ACR is an individual login point leading to the SSA system. The ACR holds login credentials and authentication methods. The login authority within the SSA system, including read and write privileges, is also in this record. In FIG. 5, which shows this, there are n ACRs in the same AGP. This means that at least various ACRs out of n ACRs share access to the same key. That is, ACR # 1 and ACR # n share the access right to the key having the key ID “key 3”, where ACR # 1 and ACR # n are ACR IDs, and “key 3” is the key It is a key ID, and data related to “key 3” is encrypted using this key. The same key can be used to encrypt and / or decrypt multiple files or multiple data groups.

SSAシステムは数通りのシステムログインをサポートし、認証アルゴリズムとユーザ信用証明は様々であってもよく、ログインに成功したユーザのシステムにおける特権も様々であってもよい。図5には様々なパスワードログインアルゴリズムと信用証明とが例示されている。ACR#1ではパスワードログインアルゴリズムとパスワードとが、信用証明として指定され、ACR#2ではPKI(公開鍵基盤)ログインアルゴリズムと公開鍵が信用証明として指定されている。したがって、事業体はログインにおいて有効なACR IDを提示するほか、適切なログインアルゴリズムと信用証明とを提示する必要がある。   The SSA system supports several system logins, the authentication algorithms and user credentials may vary, and the privileges of the user who successfully logged in may also vary. FIG. 5 illustrates various password login algorithms and credentials. In ACR # 1, a password login algorithm and a password are designated as credentials, and in ACR # 2, a PKI (public key infrastructure) login algorithm and a public key are designated as credentials. Therefore, an entity must present a valid login algorithm and credentials in addition to presenting a valid ACR ID at login.

SSAシステムのACRにログインした事業体の権限、すなわちSSAコマンドを使用する権利は、ACRと関連付けられた権限制御記録(PCR)の中で設定する。図5のPCRに示すように、ACR#1は「鍵3」と関連付けられたデータに対して読み出し限定権限を許諾し、ACR#2は「鍵5」と関連付けられたデータの読み出し権限と書き込み権限とを許諾する。   The authority of the entity logged into the ACR of the SSA system, that is, the right to use the SSA command is set in the authority control record (PCR) associated with the ACR. As shown in the PCR of FIG. 5, ACR # 1 grants the read-only authority to the data associated with “Key 3”, and ACR # 2 reads and writes the data associated with “Key 5”. Grant permissions.

読み出しや書き込みに使う鍵等の異なるACRがシステムで共通の利権・特権を有することがある。このため、共通する部分があるACRはAGP、すなわちACRグループにグループ分けする。ACR#1とACR#nはいずれも、鍵ID「鍵3」を有する鍵へのアクセス権がある。   Different ACRs such as keys used for reading and writing may have common interests and privileges in the system. For this reason, ACRs having a common part are grouped into AGPs, that is, ACR groups. Both ACR # 1 and ACR # n have an access right to the key having the key ID “key 3”.

AGPとその中にあるACRは階層状のツリーの中で編制されるため、ACRは重要データの安全性を保つ安全鍵を作成できるほか、好ましくは自身の鍵ID/パーティションに対応する他のACR項目を作成できる。これらの子ACRは、その父、すなわち作成元と同じ権限を有するかそれよりも少ない権限を有することになり、父ACR自身が作成した鍵の権限が付与される場合がある。言うまでもなく、子ACRは自身が作成する任意の鍵に対するアクセス権限を取得する。これは図6に例示されている。AGP120の中にあるACRはいずれもACR122によって作成されたものであり、これらのACRのうちの2つは、「鍵3」と関連付けられたデータへのアクセス権限をACR122から継承している。   Since AGP and the ACRs within it are organized in a hierarchical tree, ACR can create secure keys that keep important data secure, and preferably other ACRs corresponding to its own key ID / partition. You can create items. These child ACRs have the same authority as that of the father, that is, the creator, or less, and may be granted the authority of the key created by the father ACR itself. Needless to say, the child ACR obtains access authority to an arbitrary key created by itself. This is illustrated in FIG. All of the ACRs in the AGP 120 are created by the ACR 122, and two of these ACRs inherit from the ACR 122 access authority to the data associated with “Key 3”.

AGP
SSAシステムへのログインにおいて、AGPとそのAGPの中にあるACRを指定する。
AGPはいずれも一意なID(参照名)を有し、SSAデータベースにおける該当する項目への索引として使われる。AGP名はAGPの作成時にSSAシステムに支給される。SSAは、支給されるAGP名がシステムに既に存在する場合に作成動作を拒否する。
AGP
When logging into the SSA system, specify the AGP and the ACR within the AGP.
Each AGP has a unique ID (reference name) and is used as an index to the corresponding item in the SSA database. The AGP name is provided to the SSA system when the AGP is created. SSA rejects the creation operation if the AGP name to be provided already exists in the system.

以降のセクションで説明するように、アクセス権限や管理権限の委譲に関わる制限事項はAGPを使って管理運営する。完全に独立した事業体、例えば2つの異なるアプリケーションまたは2つの異なるコンピュータユーザによるアクセスの制御運営は、図6の2つのツリーが果たす役割の1つである。ここで大切なり得ることは、2つのアクセスプロセスが、たとえ同時に発生する場合でも、事実上互いに独立する(すなわち、事実上クロストークをなくす)ことである。これは、それぞれのツリーにおけるACRとAGPの認証、権限、追加作成等が他のツリーにおけるものと無関係であり、かつ他のツリーにおけるものに左右されないことを意味する。このため、SSAシステムを使用するメモリシステム10では、複数のアプリケーションを同時に処理できる。また、2つのアプリケーションが互いに自立的に2つの別々のデータ群(例えば、1組の写真と1組の歌)にアクセスすることも可能になる。これは図6に例示されている。図6の上部で、ツリーの中にあるノード(ACR)を通じてアクセスするアプリケーションまたはユーザにとって、「鍵3」、「鍵X」、および「鍵Z」と関連付けられたデータは写真であってもよい。図6の下部で、ツリーのノード(ACR)を通じてアクセスするアプリケーションまたはユーザにとって、「鍵5」および「鍵Y」と関連付けられたデータは歌であってもよい。AGPを作成したACRは、このAGPにACR項目がなく空になっている場合に限りこのAGPを削除できる。   As described in the following sections, restrictions related to access authority and delegation of management authority are managed and managed using AGP. Controlling management of access by completely independent entities, eg, two different applications or two different computer users, is one of the roles played by the two trees of FIG. What can be important here is that the two access processes are virtually independent of each other (ie, virtually eliminate crosstalk), even if they occur simultaneously. This means that the ACR and AGP authentication, authority, additional creation, etc. in each tree are irrelevant and independent of those in the other trees. For this reason, in the memory system 10 using the SSA system, a plurality of applications can be processed simultaneously. It also allows two applications to access two separate groups of data (eg, a set of photos and a set of songs) independently of each other. This is illustrated in FIG. At the top of FIG. 6, for an application or user accessing through a node (ACR) in the tree, the data associated with “Key 3”, “Key X”, and “Key Z” may be a photograph. . At the bottom of FIG. 6, for an application or user accessing through a tree node (ACR), the data associated with “key 5” and “key Y” may be a song. The ACR that created the AGP can delete the AGP only if the AGP has no ACR entry and is empty.

事業体にとってのSSAの入口:アクセス制御記録(ACR)
SSAシステムのACRは、事業体によるシステムログインのあり方を記述するものである。SSAシステムにログインする事業体は、これから始まる認証プロセスに該当するACRを指定する必要がある。図5に示すように、ACRの中にある権限制御記録(PCR)は、ACRの認証を終えたユーザが実行できる許諾アクションを明らかにするものである。ホスト側事業体はすべてのACRデータフィールドを提供する。
SSA entry for business entities: Access Control Records (ACR)
The ACR of the SSA system describes the way of system login by an entity. An entity that logs in to the SSA system needs to specify an ACR that corresponds to the authentication process starting from now. As shown in FIG. 5, the authority control record (PCR) in the ACR clarifies the permission actions that can be executed by the user who has completed the ACR authentication. The host entity provides all ACR data fields.

ACRへのログインに成功した事業体は、そのACRのパーティション・鍵アクセス権限やACAM権限(後述)を照会できる。
ACR ID
SSAシステムの事業体はログインプロセスを開始するときに、そのログイン方法に該当するACR IDを指定する必要がある(ACRが作成される場合にホストより支給される)ので、SSAは正しいアルゴリズムを準備し、すべてのログイン条件が満たされたら正しいPCRを選択する。ACR IDはACRの作成時にSSAシステムに提供される。
Entities that have successfully logged in to the ACR can query the ACR's partition / key access authority and ACAM authority (described below).
ACR ID
When an SSA system entity initiates the login process, it must specify the ACR ID that corresponds to the login method (provided by the host when the ACR is created), so SSA prepares the correct algorithm. When all the login conditions are satisfied, the correct PCR is selected. The ACR ID is provided to the SSA system when the ACR is created.

ログイン/認証アルゴリズム
事業体によって使われるログイン手続きと、ユーザのアイデンティティを証明する場合に必要となる信用証明は、認証アルゴリズムによって決まる。手続きなし(信用証明なし)からパスワードに基づく手続き、対称暗号法か非対称暗号法に基づく双方向認証プロトコルまで、SSAシステムは数通りの標準的なログインアルゴリズムをサポートする。
Login / authentication algorithm The login procedure used by the entity and the credentials required to prove the identity of the user depend on the authentication algorithm. From no procedure (no credentials) to password-based procedures, two-way authentication protocols based on symmetric or asymmetric cryptography, the SSA system supports several standard login algorithms.

信用証明
事業体の信用証明はログインアルゴリズムに対応し、SSAがユーザをベリファイし認証するのに使われる。パスワード認証のためのパスワード/PIN番号やAES認証のためのAES鍵等は信用証明の一例であり得る。信用証明のタイプ/書式(PIN、対称鍵等)は予め決まり、認証モードから検索され、ACRの作成時にSSAシステムに提供される。SSAシステムはこれら信用証明の設定、配布、管理に関与しないが、例外としてPKI方式の認証では装置(例えば、フラッシュカード)を使ってRSA等の鍵対を生成でき、証明書生成のための公開鍵をエクスポートできる。
The credentials of the credential entity correspond to a login algorithm and are used by the SSA to verify and authenticate the user. A password / PIN number for password authentication, an AES key for AES authentication, and the like may be examples of credentials. The credential type / format (PIN, symmetric key, etc.) is predetermined, retrieved from the authentication mode, and provided to the SSA system when the ACR is created. The SSA system is not involved in the setting, distribution, and management of these credentials, but with the exception of PKI authentication, a key pair such as RSA can be generated using a device (for example, a flash card), and it is made public for certificate generation. You can export the key.

権限制御記録(PCR)
PCRは、SSAシステムにログインしACRの認証プロセスに合格した後の事業体に対する許諾事項を明らかにするものである。権限には、パーティションおよび鍵の作成権限と、パーティションおよび鍵へのアクセス権限と、事業体−ACR属性の管理権限の3種類がある。
Authority control record (PCR)
The PCR reveals the licensing terms for an entity after logging into the SSA system and passing the ACR authentication process. There are three types of authority: partition and key creation authority, partition and key access authority, and entity-ACR attribute management authority.

パーティションへのアクセス
PCRのこの部分には、ACR段階を首尾よく完了した事業体からアクセスできるパーティションのリストが入る(SSAシステムへ提供されるパーティションのIDを使用)。パーティションごとに書き込み限定または読み出し限定にアクセスのタイプが制限される場合があったり、あるいは完全書き込み/読み出しアクセス権が指定される場合もある。図5のACR#1はパーティション#2にアクセスできてもパーティション#1にはアクセスできない。PCRの中で指定される制限はSSAパーティションと公開パーティションとに適用される。
Access to Partitions This part of the PCR contains a list of partitions that can be accessed by entities that have successfully completed the ACR phase (using the partition ID provided to the SSA system). There are cases where the type of access is restricted to write-only or read-only for each partition, or complete write / read access rights may be specified. Although ACR # 1 in FIG. 5 can access partition # 2, it cannot access partition # 1. Restrictions specified in PCR apply to SSA partitions and public partitions.

公開パーティションには、SSAシステムをホストする装置(例えば、フラッシュカード)に対する通常の読み出しおよび書き込みコマンドでアクセスするか、あるいはSSAコマンドでアクセスする。公開パーティションを制限する権限を有するルートACR(後述)が作成されると、このルートACRはその権限を自身の子に渡すことができる。ACRは、好ましくは通常の読み出しおよび書き込みコマンドによる公開パーティションへのアクセスのみを制限できる。SSAシステムのACRは、好ましくはこれが作成されるときにのみ制限できる。公開パーティションに対する読み出し/書き込み権限をACRが得た後、好ましくはその権限は剥奪できない。   The public partition is accessed by normal read and write commands for a device (for example, a flash card) that hosts the SSA system, or by an SSA command. When a root ACR (described later) having the authority to restrict public partitions is created, this root ACR can pass that authority to its children. The ACR can only restrict access to the public partition, preferably with normal read and write commands. The ACR of an SSA system can preferably be limited only when it is created. After the ACR has read / write authority to the public partition, it preferably cannot be revoked.

鍵IDアクセス
PCRのこの部分には、事業体のログインプロセスによってACR方針が満たされた場合に該当する事業体からアクセスできる、鍵IDのリスト(ホストからSSAシステムへの提供)と関連付けられたデータが入る。PCRに記載されたパーティション内のファイルには指定された鍵IDが割り振られる。デバイス(例えば、フラッシュカード)の論理アドレスに鍵IDは割り振られないため、ある特定のACRに対して2つ以上のパーティションがある場合、それらのパーティションのいずれかの中にはファイルがある。PCRの中で指定された鍵IDはそれぞれ異なる1組のアクセス権を有することができる。鍵IDによって指示されるデータへのアクセスは、書き込み限定または読み出し限定に制限される場合があったり、あるいは完全書き込み/読み出しアクセス権が指定される場合もある。
This part of the key ID access PCR contains data associated with a list of key IDs (provided by the host to the SSA system) that can be accessed by the relevant entity if the ACR policy is met by the entity's login process. Enters. The specified key ID is assigned to the file in the partition described in the PCR. Since no key ID is assigned to the logical address of a device (eg, a flash card), if there are more than one partition for a particular ACR, there are files in any of those partitions. Each key ID specified in the PCR can have a different set of access rights. Access to data indicated by the key ID may be restricted to write-only or read-only, or a full write / read access right may be designated.

ACR属性管理(ACAM)
このセクションではACRのシステム属性が変更できる場合について説明する。
SSAシステムで許可され得るACAMアクションは次のとおりである。
1.AGPとACRの作成/削除/更新
2.パーティションと鍵の作成/削除
3.鍵およびパーティションに対するアクセス権の委譲
父ACRは、好ましくはACAM権限を編集できない。この場合、好ましくはACRの削除と再作成が必要となる。また、ACRによって作成された鍵IDに対するアクセス権限は、好ましくは剥奪できない。
ACR attribute management (ACAM)
This section describes the case where the system attributes of ACR can be changed.
The ACAM actions that can be allowed in the SSA system are as follows.
1. 1. Create / delete / update AGP and ACR 2. Create / delete partitions and keys Delegating access to keys and partitions The father ACR preferably cannot edit ACAM rights. In this case, it is preferable to delete and recreate the ACR. Also, the access authority for the key ID created by the ACR cannot be revoked.

ACRには他のACRやAGPを作成する容量があってもよい。ACRを作成するということは、作成元が所有するACAM権限の一部または全部が作成されたACRへ委譲されることを意味する場合がある。ACRを作成する権限を有するということは、次のアクションの権限を有することを意味する。
1.子の信用証明を設定し編集する−作成元ACRによって一旦設定された認証方法は、好ましくは編集できない。子向けに予め設定された認証アルゴリズムの範囲内で信用証明を変更してもよい。
2.ACRを削除する。
3.作成権限を子ACRへ委譲する(よって孫ができる)。
The ACR may have a capacity for creating other ACRs and AGPs. Creating an ACR may mean that some or all of the ACAM authority owned by the creator is delegated to the created ACR. Having the right to create an ACR means having the right to the next action.
1. Set and edit child credentials-The authentication method once set by the originator ACR is preferably not editable. The credentials may be changed within the range of an authentication algorithm set in advance for the child.
2. Delete the ACR.
3. Delegate creation rights to the child ACR (thus making grandchildren).

他のACRを作成する権限を有するACRは、これが作成するACRに遮断解除権限を委譲する権限を有する(しかし、ACRの遮断を解除する権限がない場合もある)。父ACRは解除ACRの参照符を子ACRの中に入れる。   An ACR that has the authority to create another ACR has the authority to delegate the unblocking authority to the ACR it creates (although there may be no authority to unblock the ACR). The father ACR places the release ACR reference mark in the child ACR.

父ACRは、自身の子ACRを削除する権限を有する唯一のACRである。ACRが作成した下位ACRを削除すると、この下位ACRから生まれたすべてのACRも自動的に削除される。ACRを削除すると、そのACRによって作成された鍵IDとパーティションはすべて削除される。
例外として、ACRが自身の記録を更新できる場合が2つある。
1.作成元ACRによって設定されたパスワード/PINでも、それらを含むACRによってのみ更新できる。
2.ルートACRは自分自身と自身が所属するAGPとを削除できる。
The father ACR is the only ACR that has the authority to delete its child ACR. When the lower ACR created by the ACR is deleted, all ACRs born from the lower ACR are automatically deleted. When an ACR is deleted, all key IDs and partitions created by that ACR are deleted.
There are two exceptions where the ACR can update its own record.
1. Even passwords / PINs set by the creator ACR can only be updated by the ACR that contains them.
2. The root ACR can delete itself and the AGP to which it belongs.

鍵・パーティションアクセス権の委譲
ACRとそのAGPは階層状のツリーの中で構成され、ルートAGPとその中にあるACRはツリーの最上部に位置する(例えば、図6のルートAGP130および132)。SSAシステムの中には数本のAGPツリーが存在することがあるが、それらは互いに完全に独立している。AGPの中にあるACRは、自身の鍵に対するアクセス権限を、同じAGPの中にある全ACRとそれらによって作成されるこの全ACRに委譲できる。鍵を作成する権限は、好ましくはその鍵を使用するためのアクセス権限を委譲する権限を含む。
The key / partition access right delegation ACR and its AGP are configured in a hierarchical tree, and the root AGP and its ACR are located at the top of the tree (for example, root AGPs 130 and 132 in FIG. 6). There may be several AGP trees in an SSA system, but they are completely independent of each other. An ACR in the AGP can delegate access to its key to all ACRs in the same AGP and all the ACRs created by them. The authority to create a key preferably includes the authority to delegate access authority to use the key.

鍵に対する権限は3種類に分かれる。
1.アクセス:鍵に対するアクセス権限、すなわち読み出しと書き込みとを設定する。
2.所有:当然ながら、鍵の所有者はその鍵を作成したACRである。この所有権は、ある1つのACRから別のACR(同じAGPの中にあるか、あるいは子AGPの中にあるACR)へ委譲できる。鍵の所有権は、鍵を削除する権限のほかに、鍵に対する権限を委譲する権限を提供する。
3.アクセス権委譲:この権限により、ACRは自身が保持する権利を委譲できる。
ACRは、自身が作成したパーティションのほかに、自身が所有するアクセス権限の対象となる他のパーティションに対するアクセス権限を委譲できる。
権限を委譲するには、パーティションの名前と鍵IDを指定されたACRのPCRに追加する。鍵のアクセス権限を委譲するには、鍵IDを使っても、あるいは委譲する側のACRのすべての作成された鍵がアクセス権限の対象となってもよいことを表明する。
There are three types of authority for keys.
1. Access: Set the access authority for the key, that is, read and write.
2. Ownership: Of course, the owner of the key is the ACR that created it. This ownership can be delegated from one ACR to another (ACR in the same AGP or in a child AGP). Key ownership provides the authority to delegate authority over a key in addition to the authority to delete a key.
3. Access right delegation: This right allows the ACR to delegate the rights it holds.
In addition to the partition created by itself, the ACR can delegate access authority to other partitions subject to access authority owned by the ACR.
To delegate authority, the partition name and key ID are added to the designated ACR PCR. In order to delegate access authority for a key, it is stated that the key ID may be used, or all created keys of the delegating ACR may be subject to access authority.

ACRの遮断と解除
システムによる事業体のACR認証プロセスが失敗すると、ACRの遮断カウンタが増加する場合がある。一定の最大失敗認証数(MAX)に達すると、SSAシステムによってACRは遮断されることになる。
遮断されたACRは、この遮断されたACRから参照する別のACRによって解除できる。この解除されたACRに対する参照は、その作成元にたるACRによって設定される。解除されたACRは、好ましくは遮断されたACRの作成元と同じAGPの中にあり、「解除」権限を有する。
システムの中でこれ以外のACRは遮断されたACRを解除できない。遮断カウンタがあるACRでも解除ACRがなければ、遮断された場合に解除できない。
If the entity's ACR authentication process by the ACR block and release system fails, the ACR block counter may increase. When a certain maximum number of failed authentications (MAX) is reached, the ACR will be blocked by the SSA system.
A blocked ACR can be released by another ACR that references the blocked ACR. The reference to the released ACR is set by the ACR that is the creation source. The released ACR is preferably in the same AGP as the creator of the blocked ACR and has the “release” right.
Other ACRs in the system cannot release a blocked ACR. If there is no release ACR even if there is an ACR with a cutoff counter, it cannot be released when it is shut down.

ルートAGP−アプリケーションデータベースの作成
SSAシステムは複数のアプリケーションを処理し、各アプリケーションのデータを分離するように設計されている。アプリケーションデータを識別し、かつ分離する場合にはAGPシステムのツリー構造がメインのツールとして用いられる。ルートAGPはアプリケーションSSAデータベースツリーの先端に位置し、いくぶん異なる挙動ルールに準拠する。SSAシステムでは数個のルートAGPを構成できる。図6には2つのルートAGP130および132が示されている。当然、これよりも少ないAGPやこれよりも多いAGPが使われる場合があり、本発明の範囲内にある。
新規アプリケーションのための装置(例えば、フラッシュカード)の登録および/または装置の新規アプリケーションの信用証明発行は、装置に新たなAGP/ACRツリーを追加する過程で行う。
Root AGP-Application Database Creation The SSA system is designed to process multiple applications and separate the data for each application. When identifying and separating application data, the tree structure of the AGP system is used as the main tool. The root AGP is located at the top of the application SSA database tree and conforms to somewhat different behavior rules. In the SSA system, several root AGPs can be configured. In FIG. 6, two root AGPs 130 and 132 are shown. Of course, fewer AGPs or more AGPs may be used and are within the scope of the present invention.
Registration of a device (for example, a flash card) for a new application and / or issuance of credentials for a new application of the device is performed in the process of adding a new AGP / ACR tree to the device.

SSAシステムはルートAGP(ならびにルートAGPの全ACRとその権限)を作成する場合に3通りのモードをサポートする。
1.オープンモード:いずれのユーザまたは事業体でも認証なしで、あるいはシステムACR(後述)を通じて認証されたユーザ/事業体が、新規ルートAGPを作成できる。オープンモードによるルートAGPの作成は、セキュリティ対策なしですべてのデータ転送がオープンチャネル(発行機関のセキュア環境内)で行われる場合と、システムACR認証(Over The Air(OTA)と後発行手順)を通じて確立するセキュアチャネルを通じて行われる場合とがある。
システムACRが構成されず(オプションとして)、ルートAGP作成モードをオープンに設定する場合に選べるオプションはオープンチャネルのみである。
2.制御モード:システムACRを通じて認証された事業体のみが新規ルートAGPを作成できる。システムACRが構成されなければ、SSAシステムをこのモードに設定することはできない。
3.ロックモード:ルートAGPの作成は無効になり、さらなるルートAGPをシステムに加えることはできない。
The SSA system supports three modes when creating a root AGP (as well as all ACRs of the root AGP and their authority).
1. Open mode: A user / enterprise authenticated by any user or entity without authentication or through a system ACR (described below) can create a new root AGP. Route AGP creation in open mode is based on the case where all data transfer is performed through an open channel (within the issuing agency's secure environment) without security measures, and through system ACR authentication (Over The Air (OTA) and post-issue procedure). It may be done through a secure channel to be established.
If the system ACR is not configured (as an option) and the root AGP creation mode is set to open, the only option that can be selected is the open channel.
2. Control mode: Only entities authenticated through the system ACR can create a new root AGP. If the system ACR is not configured, the SSA system cannot be set to this mode.
3. Lock mode: Creation of root AGP is disabled and no further root AGP can be added to the system.

この機能は2つのSSAコマンドで制御する(これらのコマンドはいずれのユーザ/事業体でも認証なしで使用できる)。
1.方法構成コマンド:3通りのルートAGP作成モードのいずれか1つを使用する形にSSAシステムを構成するために使用する。オプションから制御へ、制御からロックへのモード変更のみが可能である(つまり、SSAシステムが現在制御モードに構成されている場合、ロックモードにしか変更できない)。
2.方法構成固定コマンド:方法構成コマンドを無効にし、現在選択されている方法で永続的に固定するために使用する。
This function is controlled by two SSA commands (these commands can be used without authentication by any user / enterprise).
1. Method configuration command: Used to configure the SSA system to use any one of three route AGP creation modes. Only mode change from option to control and from control to lock is possible (ie, if the SSA system is currently configured in control mode, it can only be changed to lock mode).
2. Method configuration fix command: Used to override the method configuration command and permanently fix it in the currently selected method.

作成されたルートAGPは特別な初期化モードに入り、ACRの作成、構成(ルートAGPの作成に適用されたものと同じアクセス制限を使用)が可能になる。ルートAGP構成プロセスの最後に事業体がこれを明示的に作動モードに切り替えると、既存のACRは更新できなくなり、ACRを追加で作成できなくなる。   The created root AGP enters a special initialization mode, allowing creation and configuration of ACR (using the same access restrictions applied to creating the root AGP). If an entity explicitly switches this to operational mode at the end of the root AGP configuration process, the existing ACR cannot be updated and no additional ACR can be created.

標準モードに入ったルートAGPを削除するには、そのACRのうち、ルートAGPの削除する権限が付与されたACRを通じてシステムにログインしなければならない。特別の初期化モードのほかに、これもルートAGPの例外である。これは好ましくは、次のツリーレベルにあるAGPではなく自身のAGPを削除する権限を有するACRを含んでもよい唯一のAGPである。
ルートACRと標準ACRとの3番目にして最後の違いは、パーティションを作成し削除する権限を有し得るシステム内で唯一のACRであるということである。
In order to delete the root AGP that has entered the standard mode, it is necessary to log in to the system through an ACR that is authorized to delete the root AGP. Besides the special initialization mode, this is also an exception for the root AGP. This is preferably the only AGP that may include an ACR that has the authority to delete its own AGP, rather than an AGP at the next tree level.
The third and final difference between the root ACR and the standard ACR is that it is the only ACR in the system that can have the authority to create and delete partitions.

SSAシステムACR
システムACRは次に記す2つのSSA操作に使用される。
1.不利な状況の中でセキュアチャネルの保護下でACR/AGPツリーを作成する。
2.SSAシステムをホストする装置を識別し、認証する。
好ましくはSSAの中でシステムACRは1つのみであってもよく、いったん設定されたシステムACRは好ましくは変更できない。システムACRを作成するときにシステム認証は必要なく、必要なものはSSAコマンドのみである。システムACR作成機能は無効にできる(ルートAGP作成機能と同様)。好ましくは1つのみのシステムACRが認められるため、システムACR作成コマンドはシステムACRの作成後には作用しない。
SSA system ACR
The system ACR is used for the following two SSA operations:
1. Create ACR / AGP tree under secure channel protection in adverse situation.
2. Identify and authenticate the device that hosts the SSA system.
There may be only one system ACR in the SSA, and once set, the system ACR is preferably not changeable. System authentication is not required when creating a system ACR, only an SSA command is required. The system ACR creation function can be disabled (similar to the root AGP creation function). Since only one system ACR is allowed, the create system ACR command will not work after the creation of the system ACR.

システムACRはその作成プロセスでは機能しない。作成が完了したら、システムACRが作成され準備が整ったことを伝える専用のコマンドを発行する必要がある。好ましくはこの時点でシステムACRの更新や差し替えは行えない。   System ACR does not work in its creation process. When the creation is complete, it is necessary to issue a dedicated command telling that the system ACR is created and ready. Preferably, the system ACR cannot be updated or replaced at this point.

システムACRはSSAでルートACR/AGPを作成する。システムACRは、ホストがルートレベルに満足し遮断するまでルートレベルを追加/変更する権限を有する。ルートAGPを遮断すると、基本的にはシステムACRとのつながりは絶たれ、改竄不能となる。この時点でルートAGPとその中にあるACRは誰も変更/編集できない。これはSSAコマンドで果たす。ルートAGP作成を無効にする作用は永続し、元に戻すことはできない。図7には、システムACRが関わる前述した機能が示されている。システムACRを使って3通りのルートAGPが作成されている。図7でシステムACRをルートAGPに結ぶ点線で示すように、これらのルートAGPが作成された後のある時点で、システムACRからルートAGPを遮るSSAコマンドがホストから送信され、ルートAGP作成機能は無効になる。これで3つのルートAGPは改竄不能となる。ルートAGPが遮断される前か後に、3つのルートAGPを使って子AGPを作ることにより、3つの別々のツリーが形成されている。   The system ACR creates a root ACR / AGP with SSA. The system ACR has the authority to add / change the root level until the host is satisfied and blocked. When the route AGP is cut off, the connection with the system ACR is basically broken and tampering is impossible. At this point, no one can change / edit the root AGP and the ACR within it. This is accomplished with the SSA command. The effect of disabling root AGP creation is permanent and cannot be undone. FIG. 7 shows the above-described functions related to the system ACR. Three types of route AGP are created using the system ACR. As shown by the dotted line connecting the system ACR to the route AGP in FIG. 7, at a certain point after these route AGPs are created, an SSA command for intercepting the route AGP is sent from the system ACR, and the route AGP creation function is become invalid. As a result, the three root AGPs cannot be tampered with. Three separate trees are formed by using three root AGPs to create child AGPs before or after the root AGP is blocked.

前述した機能は、コンテンツの所有者がコンテンツを使ってセキュア製品を構成する場合に優れた柔軟性を提供する。セキュア製品は「発行」する必要がある。発行とは、装置がホストを識別しホストが装置を識別するための識別鍵を出すプロセスである。ホストは装置(例えば、フラッシュカード)を識別することにより、これの秘密を信用できるかどうかを判断できる。一方、装置はホストを識別することにより、ホストが可能な範囲でのみセキュリティ方針を実施することができる(特定のホストコマンドを許諾し実行する)。   The functionality described above provides great flexibility when content owners use content to configure secure products. Secure products need to be “issued”. Issuing is a process in which a device identifies a host and the host issues an identification key for identifying the device. The host can determine if it can trust its secret by identifying the device (eg, flash card). On the other hand, by identifying the host, the device can implement the security policy only to the extent possible by the host (permit and execute a specific host command).

複数のアプリケーションに対応するように設計された製品は、様々な識別鍵を有することになる。製品は「前発行」するか(出荷に先立つ製造中に鍵を記憶する)、あるいは「後発行」する(出荷後に新たな鍵を追加する)。後発行の場合、ある種の親鍵または装置レベル鍵をメモリ装置(例えば、メモリカード)に入れる必要があり、この鍵は、装置へのアプリケーションの追加が許される事業体を識別するために使われる。   Products designed to support multiple applications will have different identification keys. The product is “pre-issued” (stores the key during manufacturing prior to shipment) or “post-issue” (adds a new key after shipment). For later issuance, some parent key or device level key must be placed in a memory device (eg, a memory card) and this key can be used to identify the entity that is allowed to add applications to the device. Is called.

前述した機能により後発行を有効/無効にするように製品を構成できる。加えて、後発行構成は出荷の後に安全に果たすことができる。装置は、前述した親鍵または装置レベル鍵のほかには鍵のない状態で小売製品として購入され、新たな所有者により、さらなる後発行アプリケーションを有効または無効にするように構成できる。   The product can be configured to enable / disable post-issuance with the functions described above. In addition, post-issue configurations can be performed safely after shipment. The device is purchased as a retail product without a key in addition to the parent key or device level key described above and can be configured by a new owner to enable or disable further post-issue applications.

このようにシステムACR機能は前述した目的を達成するための能力を提供する。
・システムACRがないメモリ装置の場合はアプリケーションを自由に無制限に追加できることになる。
・システムACRがないメモリ装置はシステムACRの作成を無効にするように構成でき、これは新規アプリケーションの追加を制御できないことを意味する(新規ルートAGP作成機能も無効にする場合を除く)。
・システムACRがあるメモリ装置の場合はシステムACR信用証明を使った認証手続きで確立されるセキュアチャネル経由でアプリケーションを追加できる。
・システムACRがあるメモリ装置は、アプリケーションが追加される前か、あるいは追加された後にアプリケーション追加機能を無効にするように構成できる。
Thus, the system ACR function provides the ability to achieve the aforementioned objectives.
In the case of a memory device without a system ACR, applications can be freely added without limitation.
A memory device without a system ACR can be configured to disable the creation of the system ACR, which means that the addition of new applications cannot be controlled (unless the new root AGP creation function is also disabled).
In the case of a memory device with a system ACR, an application can be added via a secure channel established by an authentication procedure using system ACR credentials.
A memory device with a system ACR can be configured to disable the add application function before or after the application is added.

鍵IDリスト
鍵IDは具体的なACR要求に従って作成されるが、メモリシステム10でこれを使用するのはSSAシステムのみである。鍵IDの作成時に作成元ACRから提供されるか、あるいは作成元ACRへ提供されるデータは次のとおりである。
1.鍵ID:このIDはホストを通じて事業体から提供され、以降の読み出しアクセスや書き込みアクセスで、鍵と、その鍵を使って暗号化または暗号化されるデータとを参照するために使われる。
2.鍵暗号およびデータ保全モード(後述する前述したブロック、連鎖、およびハッシュモード)
Key ID list The key ID is created according to a specific ACR request, but the memory system 10 uses this only in the SSA system. The data provided from the creation source ACR when the key ID is created or provided to the creation source ACR is as follows.
1. Key ID: This ID is provided from the business entity through the host, and is used to refer to the key and data encrypted or encrypted using the key in subsequent read access and write access.
2. Key encryption and data integrity modes (block, chain, and hash modes described above)

ホストから提供される属性に加えて、SSAシステムは次のデータを管理する。
1.鍵IDの所有者:所有者にあたるACRのID。作成された鍵IDの所有者は作成元ACRである。しかし、鍵IDの所有権は別のACRに譲渡できる。好ましくは、鍵IDの所有権を譲渡し、かつ鍵IDを委譲できるものは鍵IDの所有者のみである。鍵のアクセス権限の委譲とこれらの権利の失効を行えるのは鍵IDの所有者か、または委譲権限を有するその他のACRである。SSAシステムは、これらの操作のいずれかが試みられるときに、操作を要求するACRにその権限が付与されている場合に限り操作を許諾することになる。
2.CEK:このCEKの鍵値は、鍵IDが割り振られたコンテンツまたは鍵IDによって指示されるコンテンツの暗号化に使われる。鍵値は、SSAシステムによって生成される128ビットAESランダム鍵であってもよい。
3.MACおよびIV値:連鎖ブロック暗号(CBC)符号化アルゴリズムで使われる動的情報(メッセージ認証コードと開始ベクトル)。
In addition to the attributes provided by the host, the SSA system manages the following data:
1. Key ID owner: ID of the ACR corresponding to the owner. The owner of the created key ID is the creator ACR. However, ownership of the key ID can be transferred to another ACR. Preferably, only the owner of the key ID can transfer the ownership of the key ID and transfer the key ID. It is the owner of the key ID or any other ACR with delegation authority that can delegate key access authority and revoke these rights. When any of these operations is attempted, the SSA system grants the operation only if the authority is given to the ACR that requests the operation.
2. CEK: The key value of this CEK is used for encrypting the content to which the key ID is assigned or the content indicated by the key ID. The key value may be a 128-bit AES random key generated by the SSA system.
3. MAC and IV values: Dynamic information (message authentication code and start vector) used in the chain block cipher (CBC) encoding algorithm.

図8A〜図16のフローチャートを参照しながらSSAの様々な機能を例示するが、これらの図でステップの左側に記された「H」はホストによって実行される操作を意味し、「C」はカードによって実行される操作を意味する。メモリカードを参照しながらSSA機能を例示するが、物理的形態が異なるメモリ装置にもこれらの機能が当てはまることが理解できる。システムACRを作成するため、ホストはメモリ装置10のSSAに向けてシステムACR作成コマンドを発行する(ブロック202)。装置10はこれに応じてシステムACRが既に存在するかどうかをチェックする(ブロック204、菱形206)。装置10はこれが既に存在する場合に失敗ステータスを返し、停止する(長円形208)。メモリ10はこれが既に存在しない場合にシステムACRの作成が許可されるかどうかをチェックし(菱形210)、許可されない場合は失敗ステータスを返す(ブロック212)。従って、例えば、必要なセキュリティ機能が事前に決まるので、システムACRが必要とされない場合等、装置発行者がシステムACRの作成を許可しない場合もある。許可される場合、装置10はOKステータスを返し、ホストからシステムACR信用証明が届くのを待つ(ブロック214)。ホストはSSAステータスをチェックし、システムACRの作成が許可されていることを装置10が伝えているかどうかをチェックする(ブロック216と菱形218)。作成が許可されないか、あるいはシステムACRが既に存在する場合、ホストは停止する(長円形220)。システムACRの作成が許可されていることを装置10が伝える場合、ホストはそのログイン信用証明を設定するSSAコマンドを発行し、装置10へ送信する(ブロック222)。装置10は受信した信用証明でシステムACR記録を更新し、OKステータスを返す(ブロック224)。ホストはこのステータス信号に応じて、システムACRの準備が整っていることを示すSSAコマンドを発行する(ブロック226)。これに応じて装置10はシステムACRをロックするので、システムACRの更新や差し替えはできなくなる(ブロック228)。これによりシステムACRの機能と、ホストに対して装置10を識別するためのアイデンティティとが固定される。   The various functions of the SSA are illustrated with reference to the flowcharts of FIGS. 8A to 16, where “H” on the left side of the steps in these figures means an operation performed by the host, and “C” means Means operations performed by the card. Although the SSA function is illustrated with reference to the memory card, it can be understood that these functions also apply to memory devices having different physical forms. To create the system ACR, the host issues a create system ACR command to the SSA of the memory device 10 (block 202). In response, device 10 checks whether a system ACR already exists (block 204, diamond 206). If it already exists, the device 10 returns a failure status and stops (oval 208). The memory 10 checks if creation of the system ACR is allowed if it does not already exist (diamond 210) and returns a failure status if not allowed (block 212). Therefore, for example, since a necessary security function is determined in advance, the device issuer may not permit the creation of the system ACR, for example, when the system ACR is not required. If so, the device 10 returns an OK status and waits for system ACR credentials from the host (block 214). The host checks the SSA status to see if the device 10 communicates that the creation of the system ACR is allowed (block 216 and diamond 218). If creation is not allowed or if a system ACR already exists, the host stops (oval 220). If the device 10 communicates that creation of the system ACR is permitted, the host issues an SSA command to set its login credentials and sends it to the device 10 (block 222). Device 10 updates the system ACR record with the received credentials and returns an OK status (block 224). In response to the status signal, the host issues an SSA command indicating that the system ACR is ready (block 226). In response, the device 10 locks the system ACR so that the system ACR cannot be updated or replaced (block 228). As a result, the function of the system ACR and the identity for identifying the device 10 to the host are fixed.

新規ツリー(新規ルートAGPおよびACR)の作成手順は、それらの機能が装置でどのように構成されているかによって決まる。図9は、その手順を説明するものである。ホスト24とメモリシステム10はいずれもこの手順をたどる。新規ルートAGPの追加が完全に無効になっている場合、新規ルートAGPは追加できない(菱形246)。これが有効になっているが、システムACRが要求される場合、ホストはルートAGP作成コマンドの発行(ブロック254)に先立ちシステムACRを通じて認証し、セキュアチャネルを確立する(菱形250、ブロック252)。システムACRが要求されない場合(菱形248)、ホスト24は認証なしでルートAGP作成コマンドを発行でき、ブロック254へ進む。ホストは、システムACRが存在する場合、たとえこれが要求されない場合でも、これを使用することがある(フローチャートには示されていない)。装置(例えば、フラッシュカード)は、新規ルートAGP作成機能が無効になっている場合に新規ルートAGPを作成する試みを拒否し、システムACRが要求される場合に認証なしで新規ルートAGPを作成する試みを拒否する(菱形246および250)。ブロック254で新たに作成されるAGPとACRは作動モードに切り替わるので、そのAGPの中にあるACRの更新や変更はできなくなり、AGPへACRを追加することもできなくなる(ブロック256)。ここでオプションとしてシステムはロックされるので、ルートAGPは追加で作成できなくなる(ブロック258)。点線の枠258は、このステップがオプションのステップであることを示す表記法である。本願の図のフローチャートにて点線で示された枠はいずれもオプションのステップである。このように、コンテンツの所有者は正当なコンテンツを含む本物のメモリ装置を装う違法な目的に装置10を利用できないようにすることができる。   The procedure for creating a new tree (new root AGP and ACR) depends on how those functions are configured on the device. FIG. 9 explains the procedure. Both the host 24 and the memory system 10 follow this procedure. If the addition of a new route AGP is completely disabled, a new route AGP cannot be added (diamond 246). If this is enabled, but a system ACR is required, the host authenticates through the system ACR prior to issuing the root AGP creation command (block 254) and establishes a secure channel (diamond 250, block 252). If the system ACR is not required (diamond 248), the host 24 can issue a create root AGP command without authentication and proceeds to block 254. The host may use the system ACR if it is present, even if it is not required (not shown in the flowchart). A device (eg, a flash card) rejects an attempt to create a new root AGP if the new root AGP creation function is disabled and creates a new root AGP without authentication if a system ACR is required Reject the attempt (diamonds 246 and 250). Since the AGP and ACR newly created in block 254 are switched to the operation mode, the ACR in the AGP cannot be updated or changed, and the ACR cannot be added to the AGP (block 256). Since the system is optionally locked here, no more root AGP can be created (block 258). A dotted frame 258 is a notation indicating that this step is an optional step. Any frame indicated by a dotted line in the flowchart of the figure of the present application is an optional step. In this way, the content owner can be prevented from using the device 10 for illegal purposes that pretend to be a real memory device containing legitimate content.

ACR(前述したルートAGPの中にあるACRとは別のACR)を作成するには、図10に示すように、ACRを作成する権利を有するACRから開始できる(ブロック270)。ホスト24を通じて入ることを試みる事業体は、入口にあたるACRのアイデンティティと作成したいがための必要となる属性のすべてを含むACRとを提供する(ブロック272)。SSAはACRアイデンティティの一致をチェックし、さらにそのアイデンティティを有するACRにACRを作成する権限があるかどうかをチェックする(菱形274)。要求が証明される場合、装置10のSSAはACRを作成する(ブロック276)。   To create an ACR (an ACR other than the ACR in the root AGP described above), one can start with an ACR that has the right to create an ACR, as shown in FIG. 10 (block 270). The entity attempting to enter through the host 24 provides an ACR identity that is the entrance and an ACR that includes all the attributes that it needs to create (block 272). The SSA checks the ACR identity match and further checks whether the ACR with that identity is authorized to create an ACR (diamond 274). If the request is verified, the SSA of device 10 creates an ACR (block 276).

図11の2つのAGPは、図10の方法を使用するセキュリティアプリケーションで役に立つツリーを例示するものである。従って、マーケティングAGPの中でアイデンティティm1を有するACRには、ACRを作成する権限がある。ACR m1は、鍵ID「マーケティング情報」と関連付けられたデータと鍵ID「価格リスト」と関連付けられたデータを鍵を使って読み書きする権限も有する。これにより、図10の方法を用いて2つのACR s1およびs2を含む販売AGPを作成する。ACR s1およびs2には鍵ID「価格リスト」と関連付けられた価格データにアクセスするための鍵の読み出し権限のみあるが、鍵ID「マーケティング情報」と関連付けられたデータにアクセスする場合に必要となる鍵の権限はない。このように、ACR s1およびs2を有する事業体は、価格データを読み出されてもこれを変更することはできず、さらにマーケティングデータにはアクセスできない。一方、ACR m2にはACRを作成する権限がなく、鍵ID「価格リスト」と鍵ID「マーケティング情報」と関連付けられたデータにアクセスするための鍵の読み出し権限のみを有する。   The two AGPs in FIG. 11 illustrate a tree useful in security applications using the method of FIG. Therefore, the ACR having the identity m1 in the marketing AGP has the authority to create an ACR. The ACR m1 also has the authority to read / write data associated with the key ID “marketing information” and data associated with the key ID “price list” using a key. Thus, a sales AGP including two ACRs s1 and s2 is created using the method of FIG. The ACRs s1 and s2 have only the authority to read the key for accessing the price data associated with the key ID “price list”, but are required when accessing the data associated with the key ID “marketing information”. There is no key authority. Thus, an entity having ACRs s1 and s2 cannot change the price data even if it is read, and cannot access the marketing data. On the other hand, ACR m2 has no authority to create an ACR, and has only the authority to read a key for accessing data associated with the key ID “price list” and the key ID “marketing information”.

従って、アクセス権は前述したやり方で委譲でき、m1は価格データを読み出す権利をs1およびs2に委譲する。これは特に大規模なマーケティング組織や販売組織が関わる場合に有用である。しかし、販売員が1名〜少数であれば図10の方法を使う必要はない場合がある。代わりに、図12に示すように、ACRから同じAGPの下位レベルまたは同じレベルに位置するACRにアクセス権を委譲できる。事業体はまず、そのAGPのツリーに入るため、ホストを通じてツリーの中のACRを前述したように指定する(ブロック280)。次に、ホストはACRと委譲する権利を指定する。SSAはツリーでこのACRをチェックし、指定された別のACRに権利を委譲する権限がこのACRにあるかどうかをチェックする(菱形282)。権限があるなら権利は委譲され(ブロック284)、そうでないなら停止する。図13はその結果を示す。この場合、ACR m1には読み出し権限をACR s1に委譲する権限があるため、委譲の後、s1は鍵を使って価格データにアクセスできるようになる。これは、m1が価格データにアクセスするための権利またはそれ以上の権利を有し、さらにそれを委譲する権限を有する場合に果たすことができる。m1は、一実施形態において、委譲の後にそのアクセス権を保持する。好ましくは、時間やアクセス数を制限するなどにより(永続的にではなく)一定の条件のもとでアクセス権を委譲する。   Accordingly, the access right can be delegated in the manner described above, and m1 delegates the right to read price data to s1 and s2. This is particularly useful when large scale marketing or sales organizations are involved. However, there may be no need to use the method of FIG. Instead, as shown in FIG. 12, access rights can be delegated from the ACR to an ACR located at or below the same AGP. To enter the AGP tree, the entity first specifies the ACR in the tree through the host as described above (block 280). Next, the host specifies the right to delegate with the ACR. The SSA checks this ACR in the tree and checks if this ACR is authorized to delegate rights to another designated ACR (diamond 282). If it is authorized, the right is delegated (block 284), otherwise it stops. FIG. 13 shows the result. In this case, since ACR m1 has the authority to delegate read authority to ACR s1, after delegation, s1 can access price data using a key. This can be done if m1 has the right to access price data or more and has the authority to delegate it. In one embodiment, m1 retains its access right after delegation. Preferably, access rights are delegated under certain conditions (not permanently), such as by limiting time or number of accesses.

図14は、鍵と鍵IDを作成するプロセスを示す。事業体はACRを通じて認証を受ける(ブロック302)。事業体は、ホストによって指定されたIDによる鍵の作成を要求する(ブロック304)。SSAは、指定されたACRにその権限があるかどうかをチェックする(菱形306)。例えば、ある特定のパーティションにあるデータにアクセスするために鍵が使われる場合、SSAはそのパーティションにACRがアクセスできるかどうかをチェックすることになる。ACRにその権限がある場合、メモリ装置10はホストから提供された鍵IDと関連付けられた鍵値を作成し(ブロック308)、鍵IDをACRに記憶し、鍵値をメモリ(コントローラ関連メモリまたはメモリ20のいずれか)に記憶し、事業体から提供された情報に従って権利と権限を付与し(ブロック310)、付与された権利および権限で該当するACRのPCRを修正する(ブロック312)。従って、読み出しおよび書き込み権限、同じAGPの中にある他のACRまたは下位レベルのACRに委譲し共有する権利、鍵の所有権を譲渡する権利等、鍵の作成元はすべての権利を有する。   FIG. 14 shows the process of creating a key and key ID. The entity is authenticated through the ACR (block 302). The entity requests creation of a key with an ID specified by the host (block 304). The SSA checks whether the designated ACR has the authority (diamond 306). For example, if a key is used to access data in a particular partition, the SSA will check whether the ACR can access that partition. If the ACR has the authority, the memory device 10 creates a key value associated with the key ID provided by the host (block 308), stores the key ID in the ACR, and stores the key value in memory (controller-related memory or Rights and authorities are stored according to information provided by the entity (block 310), and the corresponding ACR PCR is modified with the granted rights and authorities (block 312). Thus, the key creator has all rights, such as read and write rights, the right to delegate and share to other ACRs or lower level ACRs in the same AGP, the right to transfer key ownership, etc.

図15に示すように、ACRはSSAシステムの中にある別のACRの権限(またはACRの存在そのもの)を変更できる。事業体はこれまでどおりACRを通じてツリーに入る場合がある。この場合は事業体の認証が行われ、事業体はACRを指定する(ブロック330、332)。事業体はターゲットACRの削除またはターゲットACRの権限の削除を要求する(ブロック334)。指定されたACRまたはその時点でアクティブなACRにその権利があるなら(菱形336)、ターゲットACRを削除し、あるいはそのような権限を削除するためにターゲットACRのPCRを変更する(ブロック338)。これが認可されない場合、システムは停止する。   As shown in FIG. 15, the ACR can change the authority of another ACR in the SSA system (or the existence of the ACR itself). An entity may still enter the tree through the ACR. In this case, the entity is authenticated and the entity designates an ACR (blocks 330, 332). The entity requests deletion of the target ACR or deletion of authority of the target ACR (block 334). If the designated ACR or the currently active ACR has the right (diamond 336), the target ACR is deleted or the PCR of the target ACR is modified to remove such authority (block 338). If this is not authorized, the system stops.

前述したプロセスの後、ターゲットはプロセスの前にアクセスできたデータにアクセスできなくなる。図16に示すように、かつて存在したACR IDはもはやSSAに存在しないため、ターゲットACRに入ることを試みる事業体は認証プロセスの失敗に気づくので、アクセス権は拒否される場合がある(菱形352)。ACR IDが削除されていないと仮定した場合、事業体はACRを指定し(ブロック354)、鍵IDおよび/または特定のパーティションのデータを指定し(ブロック356)、SSAはそのようなACRのPCRに従って鍵IDまたはパーティションアクセス要求が許可されるかどうかをチェックする(菱形358)。権限が削除されているか、あるいは失効している場合、要求は再度却下される。そうでない場合、要求は許諾される(ブロック360)。
前述したプロセスは、ACRとそのPCRが別のACRによって変更された場合であれ、あるいは初めからそのように構成されていた場合であれ、被保護データに対するアクセスが装置(例えば、フラッシュカード)によってどのように管理されるかを説明するものである。
After the process described above, the target can no longer access data that was accessible before the process. As shown in FIG. 16, since the ACR ID that once existed is no longer present in the SSA, the entity that attempts to enter the target ACR notices the failure of the authentication process, so the access right may be denied (diamond 352). ). Assuming that the ACR ID has not been deleted, the entity specifies the ACR (block 354), specifies the key ID and / or the data for the particular partition (block 356), and the SSA uses the PCR for such an ACR. To check whether the key ID or the partition access request is permitted (diamond 358). If the authority has been removed or has expired, the request is rejected again. If not, the request is granted (block 360).
The process described above determines whether access to protected data is performed by a device (eg, a flash card), whether the ACR and its PCR have been modified by another ACR or configured as such from the beginning. It explains how it is managed.

セッション
SSAシステムは、同時にログインする複数のユーザを処理するように設計されている。この機能を使用する場合、SSAによって受信されるコマンドには特定の事業体が対応し、コマンドは、この事業体の認証に用いるACRに要求された動作を行う権限がある場合に限り実行される。
The session SSA system is designed to handle multiple users logging in simultaneously. When using this feature, the command received by the SSA is supported by a particular entity, and the command is executed only if the ACR used to authenticate this entity is authorized to perform the requested action. .

複数の事業体はセッションのコンセプトによってサポートされる。セッションは認証プロセスで確立し、SSAシステムによってセッションidが割り当てられる。セッションidはシステムへのログインに使われたACRに内部で関連付けられ、事業体へエクスポートされ、それ以降のSSAコマンドで使われる。   Multiple entities are supported by the session concept. The session is established in the authentication process and a session id is assigned by the SSA system. The session id is internally associated with the ACR used to log in to the system, exported to the entity, and used in subsequent SSA commands.

SSAシステムは、2通りのセッション、すなわちオープンセッションとセキュアセッションとをサポートする。認証プロセスと関連付けられたセッションのタイプはACRの中で設定される。SSAシステムは、認証の施行と同様のやり方でセッション確立を施行する。事業体の権限はACRで設定されるため、システム設計者は特定の鍵IDに対するアクセスまたは特定のACR管理操作(新規ACRの作成、信用証明の設定等)の実行にセキュアトンネルを関連付けることができる。   The SSA system supports two types of sessions: open sessions and secure sessions. The type of session associated with the authentication process is set in the ACR. The SSA system enforces session establishment in a manner similar to authentication enforcement. Since the entity's authority is set in ACR, the system designer can associate a secure tunnel with access to a specific key ID or execution of a specific ACR management operation (create new ACR, set credentials, etc.) .

オープンセッション
オープンセッションはセッションidで識別されるセッションであるが、バス暗号化は行われないため、コマンドとデータはいずれも暗号化されずに引き渡される。この動作モードは、好ましくは事業体が脅威モデルに該当せずバス上で傍受を行わない多数のユーザまたは多数の事業体環境に使用される。
Open Session An open session is a session identified by a session id. However, since bus encryption is not performed, both commands and data are delivered without being encrypted. This mode of operation is preferably used for a large number of users or a large number of business environments where the business entity does not fall under the threat model and does not intercept on the bus.

オープンセッションモードではデータ送信が保護されず、ホスト側のアプリケーション間に効率的なファイアウォールは実施されないが、SSAシステムが認証済みのACRでアクセスできる情報のみにアクセスを許すことができる。   In the open session mode, data transmission is not protected, and an efficient firewall is not implemented between applications on the host side, but access can be permitted only to information that the SSA system can access with an authenticated ACR.

オープンセッションはパーティションまたは鍵を保護する必要がある場合にも使用できる。しかし、有効な認証プロセスの後にはホスト側のすべての事業体にアクセスが許諾される。ホストアプリケーションはセッションidさえあれば認証済みACRの権限を得ることができる。これは図17Aに例示されている。線400より上のステップはホスト24によって実行されるステップである。ACR1の認証(ブロック402)を終えた事業体は、メモリ装置10で鍵ID Xと関連付けられたファイルへのアクセスを要求する(ブロック404、406、および408)。ACR1のPCRがこのアクセスを認める場合、装置10は要求を許諾する(菱形410)。そうでない場合、システムはブロック402まで戻る。認証が完了した後、メモリシステム10はコマンドを発行する事業体を(ACR信用証明ではなく)割り当てられたセッションidのみで識別する。オープンセッションでいったんACR1がPCRの鍵IDと関連付けられたデータに到達すると、他のどのアプリケーションまたはユーザでも、ホスト24上の様々なアプリケーションによって共有される正しいセッションidを指定することによって同じデータにアクセスできる。この機能は、一度のみログインし、様々なアプリケーションに対してログインに使われたアカウントに結合されたすべてのデータにアクセスできることがユーザにとって好都合な場合のアプリケーションに有利である。携帯電話機のユーザの場合、記憶されたeメールにアクセスし、ログインを繰り返すことなくメモリ20に記憶された音楽を聞くことができる。一方、ACR1に該当しないデータにはアクセスできないことになる。このため、ゲームや写真等の同じ携帯電話機のユーザにとって貴重となり得るコンテンツは、別のアカウントACR2を通じてアクセスされる。これは、携帯電話機のユーザの電話機を借りる人にアクセスさせたくないデータであるが、携帯電話機のユーザにとって、最初のアカウントACR1でアクセスできるデータなら他人がアクセスしてもよい。データへのアクセスを2つの別々のアカウントに分け、ACR1へのアクセスをオープンセッションで行うことにより、使い易くなるばかりでなく貴重なデータを保護できる。   Open sessions can also be used when partitions or keys need to be protected. However, after a valid authentication process, access is granted to all entities on the host side. The host application can obtain the authority of the authenticated ACR as long as it has a session id. This is illustrated in FIG. 17A. Steps above line 400 are steps performed by host 24. The entity that has completed ACR1 authentication (block 402) requests access to the file associated with key ID X in memory device 10 (blocks 404, 406, and 408). If the ACR1 PCR grants this access, the device 10 grants the request (diamond 410). Otherwise, the system returns to block 402. After authentication is complete, the memory system 10 identifies the entity issuing the command by only the assigned session id (not the ACR credentials). Once ACR1 reaches the data associated with the PCR key ID in an open session, any other application or user can access the same data by specifying the correct session id shared by the various applications on the host 24 it can. This feature is advantageous for applications where it is convenient for the user to log in only once and have access to all data associated with the account used to log in for various applications. A user of a mobile phone can access the stored e-mail and listen to the music stored in the memory 20 without repeating login. On the other hand, data that does not correspond to ACR1 cannot be accessed. For this reason, content that can be valuable to users of the same mobile phone, such as games and photos, is accessed through another account ACR2. This is data that the mobile phone user does not want to make access to the person who borrows the phone, but for the mobile phone user, other data may be accessed if it can be accessed with the first account ACR1. By dividing access to data into two separate accounts and accessing ACR1 in an open session, not only is it easy to use, but valuable data can be protected.

ホストアプリケーション間でのセッションidの共有をさらに簡単にするには、オープンセッションを要求するACRが、セッションに「0(ゼロ)」idを割り当てることを具体的に要求する。このように、アプリケーションは所定のセッションidを使用するように設計できる。当然ながら、セッション0を要求するACRは一度に1つしか認証できない。セッション0を要求する別のACRを認証する試みは拒否されることになる。   To further simplify the sharing of session ids between host applications, an ACR requesting an open session specifically requests that a “0 (zero)” id be assigned to the session. In this way, the application can be designed to use a predetermined session id. Of course, only one ACR requesting session 0 can be authenticated at a time. Attempts to authenticate another ACR requesting session 0 will be rejected.

セキュアセッション
セキュリティ層を追加するため、セッションidは図17Bに示すように使ってもよい。この場合はメモリ10もアクティブセッションのセッションidを記憶する。図17Bで、例えば鍵ID Xと関連付けられたファイルにアクセスするには、事業体もセッションid、例えばセッションid「A」を提供する必要があり、その上でファイルへのアクセスが許可されることになる(ブロック404、406、412、および414)。このように、要求する事業体は正しいセッションidを知らない限りメモリ10にアクセスできない。セッションidはセッションが終わった後に削除され、セッションのたびに異なるため、事業体はセッション番号を提供できた場合に限りアクセスできる。
In order to add a secure session security layer, the session id may be used as shown in FIG. 17B. In this case, the memory 10 also stores the session id of the active session. In FIG. 17B, to access a file associated with key ID X, for example, the entity must also provide a session id, eg, session id “A”, on which access to the file is allowed. (Blocks 404, 406, 412 and 414). Thus, the requesting entity cannot access the memory 10 without knowing the correct session id. Since the session id is deleted after the session is over and is different for each session, the entity can only access it if it can provide a session number.

SSAシステムは、コマンドが実際に正しい認証済み事業体から届いているかどうかを、セッション番号を使って追跡する。攻撃者がオープンチャネルを使って悪質なコマンドの送信を試みるおそれがある用途や使用がある場合、ホストアプリケーションはセキュアセッション(セキュアチャネル)を使用する。
セキュアチャネルを使用する場合、セッションidとコマンド全体がセキュアチャネル暗号化(セッション)鍵を使って暗号化され、そのセキュリティ水準はホスト側の実施例と同じくらい高くなる。
The SSA system uses the session number to track whether the command is actually coming from the correct authenticated entity. The host application uses a secure session (secure channel) when there is a use or use in which an attacker may attempt to send malicious commands using the open channel.
When using a secure channel, the session id and the entire command are encrypted using a secure channel encryption (session) key, and its security level is as high as in the host-side embodiment.

セッションの終了
セッションは次に記すシナリオのいずれか1つで終了し、ACRはログオフされる。
1.事業体が明示的なセッション終了コマンドを発行する。
2.通信タイムアウトが発生する。ある特定の事業体がACRパラメータの一パラメータとして設定された期間にわたってコマンドを発行しなかった。
3.装置(例えば、フラッシュカード)のリセットおよび/またはパワーサイクルの後にはすべてのオープンセッションが終了する。
End of session The session ends in one of the following scenarios, and the ACR is logged off.
1. The entity issues an explicit session termination command.
2. A communication timeout occurs. A particular entity did not issue a command for a period set as one of the ACR parameters.
3. All open sessions are terminated after a device (eg, flash card) reset and / or power cycle.

データ保全サービス
SSAシステムは、SSAデータベース(ACR、PCR等を収容)が完全な状態に保たれていることをベリファイする。このほかに、鍵ID機構による事業体データのデータ保全サービスも提供される。
鍵IDの暗号化アルゴリズムがハッシュモードに設定される場合、CEKおよびIVと併せてハッシュ値がCEK記録に記憶される。書き込み操作中にはハッシュ値の計算と記憶が行われる。読み出し操作のときにも再度ハッシュ値を計算し、前の書き込み操作中に記憶された値と比較する。事業体が鍵IDにアクセスするたびに追加のデータが古いデータに(暗号的に)連結され、該当するハッシュ値(読み出しまたは書き込みのため)が更新される。
The data integrity service SSA system verifies that the SSA database (accommodating ACR, PCR, etc.) is kept intact. In addition, a data maintenance service for business entity data by a key ID mechanism is also provided.
When the key ID encryption algorithm is set to hash mode, the hash value is stored in the CEK record along with CEK and IV. During the write operation, the hash value is calculated and stored. The hash value is again calculated during the read operation and compared with the value stored during the previous write operation. Each time the entity accesses the key ID, the additional data is concatenated (encrypted) with the old data and the corresponding hash value (for reading or writing) is updated.

鍵IDと関連付けられた、または鍵IDによって指示される、データファイルを知るのはホストのみであるため、データ保全機能の各態様はホストが明示的に次のように管理する。
1.鍵IDと関連付けられた、または鍵IDによって指示される、データファイルは最初から最後まで書き込まれるか、または読み出される。SSAシステムはCBC暗号方式を使用し、データ全体のハッシュ化メッセージダイジェストを生成するため、ファイルの一部分にアクセスする試みによってファイルは混乱することになる。
2.中間ハッシュ値はSSAシステムによって管理されるため、連続するストリームの中でデータを処理する必要はない(このデータストリームは他の鍵IDのデータストリームでインターリーブでき、複数のセッションにわたって分割できる)。しかし、事業体は、データストリームが再度始まる場合にハッシュ値のリセットをシステムに明示的に指示する必要がある。
3.ホストは読み出し操作が完了すると、読み出されたハッシュを書き込み操作中に計算したハッシュ値と比較することによって有効にすることをSSAシステムに明示的に要求する。
4.SSAシステムは「ダミー読み出し」操作も提供する。この機能によりデータは暗号化エンジンを通過するが、ホストには送出されないことになる。この機能を利用すれば、データが実際に装置(例えば、フラッシュカード)から読み出される前に、データが完全な状態に保たれていることをベリファイすることができる。
Since only the host knows the data file associated with or indicated by the key ID, each aspect of the data integrity function is explicitly managed by the host as follows.
1. A data file associated with or indicated by a key ID is written or read from beginning to end. Since the SSA system uses CBC cryptography and generates a hashed message digest of the entire data, the file will be confused by attempts to access a portion of the file.
2. Since the intermediate hash value is managed by the SSA system, there is no need to process the data in a continuous stream (this data stream can be interleaved with data streams with other key IDs and can be split across multiple sessions). However, the entity needs to explicitly instruct the system to reset the hash value when the data stream begins again.
3. When the read operation is complete, the host explicitly requests the SSA system to validate the read hash by comparing it with the hash value calculated during the write operation.
4). The SSA system also provides a “dummy read” operation. With this function, the data passes through the encryption engine but is not sent to the host. By using this function, it is possible to verify that the data is kept intact before the data is actually read from the device (for example, a flash card).

乱数生成
外部事業体はSSAシステムの内部乱数生成器を利用でき、乱数はSSAシステムの外で使用できる。このサービスはいずれのホストでも利用でき、認証は必要ない。
Random number generation external entities can use the internal random number generator of the SSA system, and random numbers can be used outside the SSA system. This service can be used on any host and does not require authentication.

RSA鍵対生成
外部ユーザはSSAシステムの内部RSA鍵対生成機能を利用でき、鍵対はSSAシステムの外で使用できる。このサービスはいずれのホストでも利用でき、認証は必要ない。
RSA key pair generation External users can use the internal RSA key pair generation function of the SSA system, and the key pair can be used outside the SSA system. This service can be used on any host and does not require authentication.

代替の実施形態
階層アプローチを使う代わりに、図18に示すデータベースアプローチを使って同様の結果を達成できる。
図18に示すように、コントローラ12またはメモリ20に記憶されたデータベースに入力された事業体の信用証明リスト、認証方法、最大失敗数、遮断解除に必要な最小信用証明数等は、メモリ10のコントローラ12によって実行されるデータベース内の方針(鍵・パーティションに対する読み出し、書き込みアクセス、セキュアチャネル要件)に結び付いている。鍵・パーティションアクセスに対する制約事項や制限事項もデータベースに記憶される。ホワイトリストにある可能性がある事業体(例えば、システム管理者)はすべての鍵とパーティションにアクセスできる。ブラックリストにある可能性がある事業体による情報アクセスの試みは阻止される。制限は全域におよぶ場合と鍵および/またはパーティションごとに適用される場合とがある。これは、特定の事業体のみが特定の鍵・パーティションにアクセスでき、特定の事業体はアクセスできないことを意味する。コンテンツのパーティションや、コンテンツの暗号化または復号化に使う鍵にかかわりなく、コンテンツ自体に制約を課すこともできる。したがって、データ(例えば、歌)にアクセスする可能性がある最初の5ホスト装置のみにアクセスを許可したり、あるいはデータ(例えば、映画)にアクセスしたりする事業体は問わず、データの読み出し回数を制限することができる。
認証
パスワード保護
・パスワード保護は、被保護領域へアクセスする場合にパスワードの提示が求められることを意味する。パスワードが1つに限られる場合を除き、それぞれのパスワードには読み出しアクセスや読み出し/書き込みアクセス等、別々の権利を割り振ることができる。
・パスワード保護は、ホストから提供されるパスワードを装置(例えば、フラッシュカード)がベリファイできること、すなわち装置もまた装置によって管理され保護されたメモリ領域にパスワードを記憶することを意味する。
問題と限界
・パスワードはリプレー攻撃を被ることがある。提示のたびに変わらないパスワードは同じ状態で再送できる。つまり、保護の対象となるデータが貴重で、通信バスへのアクセスが容易い場合、パスワードを現状のまま使用するべきではない。
・パスワードによって記憶データへのアクセスは保護できるが、(鍵ではなく)データの保護のためにパスワードを使用するべきではない。
・パスワードに関わるセキュリティ水準を上げるため、親鍵を使ってパスワードを多様化すれば、1つのパスワードがハッキングされてもシステム全体が破られることはない。パスワードの送信にはセッション鍵方式のセキュア通信チャネルを使用できる。
Instead of using an alternative embodiment hierarchy approach, a similar result can be achieved using the database approach shown in FIG.
As shown in FIG. 18, the credential list, the authentication method, the maximum number of failures, the minimum number of credentials necessary for release of the block, etc., input to the database stored in the controller 12 or the memory 20 are stored in the memory 10. It is tied to the policy in the database (read / write access to keys / partitions, secure channel requirements) executed by the controller 12. Restrictions and restrictions on key / partition access are also stored in the database. Entities that may be whitelisted (eg, system administrators) have access to all keys and partitions. Information access attempts by entities that may be blacklisted are blocked. Restrictions may apply globally and may apply per key and / or partition. This means that only certain entities can access certain keys / partitions, and certain entities cannot. Regardless of the content partition and the key used to encrypt or decrypt the content, constraints can be imposed on the content itself. Thus, the number of times data is read, regardless of the entity that allows access to only the first five host devices that may access the data (eg, songs) or the data (eg, movies). Can be limited.
Authentication
Password protection and password protection mean that a password must be presented when accessing a protected area. Unless the password is limited to one, different rights such as read access and read / write access can be assigned to each password.
Password protection means that the device (eg, flash card) can verify the password provided by the host, that is, the device also stores the password in a memory area managed and protected by the device.
Problems, limitations and passwords can suffer replay attacks. Passwords that do not change with each presentation can be resent in the same state. In other words, if the data to be protected is valuable and easy access to the communication bus, the password should not be used as is.
• Access to stored data can be protected by passwords, but passwords should not be used to protect data (not keys).
-If the password is diversified using the parent key to raise the security level related to the password, the entire system will not be broken even if one password is hacked. A session key type secure communication channel can be used for password transmission.

図19は、パスワードを使った認証を示すフローチャートである。事業体はアカウントidとパスワードをシステム10(例えば、フラッシュメモリカード)へ送信する。システムは、パスワードが自身のメモリにあるパスワードに一致するかどうかをチェックする。一致する場合は認証済みステータスを返す。そうでない場合はそのアカウントのエラーカウンタが増加し、事業体にはアカウントidとパスワードの再入力が求められる。システムはカウンタが一杯になるとアクセス拒否ステータスを返す。   FIG. 19 is a flowchart showing authentication using a password. The business entity transmits the account id and password to the system 10 (for example, a flash memory card). The system checks whether the password matches the password in its memory. If they match, the authenticated status is returned. Otherwise, the account error counter is incremented and the entity is required to re-enter the account id and password. The system returns an access denied status when the counter is full.

対称鍵
対称鍵アルゴリズムは、暗号化と復号化の両側で同じ鍵が使われることを意味する。これは、通信に先立ち予め鍵を取り決めておくことを意味する。それぞれの側では相手側の逆のアルゴリズムを実行する。つまり、一方は暗号化アルゴリズムになり、他方は復号化アルゴリズムになる。通信する場合に両側で両方のアルゴリズムを実行する必要はない。
認証
・対称鍵認証は、装置(例えば、フラッシュカード)とホストが同じ鍵を共有し、同じ暗号アルゴリズム(ダイレクトおよびリバース、例えばDES、DES−1)を具備することを意味する。
・対称鍵認証は、チャレンジ・レスポンス(リプレー攻撃対策)を意味する。被保護装置が他の装置に対する質問を生成し、両方の装置で回答を計算する。認証を受ける側の装置は回答を送り返し、被保護装置はその回答をチェックして真贋を検査する。そして、認証に応じて権利を付与する。
認証には次のものがある。
・外部認証:装置(例えば、フラッシュカード)が外部を認証する。つまり、装置は特定のホストまたはアプリケーションの信用証明を検査する。
・相互認証:両側で質問を生成する。
・内部認証:ホストアプリケーションが装置(例えば、フラッシュカード)を認証する。つまり、ホストは、装置がそのアプリケーションにとって真正であるかどうかをチェックする。
システム全体のセキュリティ水準を上げるため(1つが破られてもすべてが破られないようにするため)
・対称鍵には通常、親鍵を使った多様化を組み合わせる。
・質問が真正な質問であることを確認するため、相互認証により両側からの質問を使用する。
暗号化
対称鍵暗号法はすこぶる効率的なアルゴリズムで、暗号処理する場合に強力なCPUを必要としないため、暗号化にも使われる。
The symmetric key symmetric key algorithm means that the same key is used for both encryption and decryption. This means that a key is determined in advance prior to communication. Each side executes the opposite algorithm of the other side. That is, one is an encryption algorithm and the other is a decryption algorithm. There is no need to run both algorithms on both sides when communicating.
Authentication / symmetric key authentication means that a device (for example, a flash card) and a host share the same key and have the same encryption algorithm (direct and reverse, for example, DES, DES-1).
-Symmetric key authentication means challenge response (replay attack countermeasure). The protected device generates a question for the other device and calculates the answer on both devices. The device on the authentication side sends back the answer, and the protected device checks the answer to check the authenticity. Then, a right is granted according to the authentication.
Authentication includes the following:
External authentication: A device (eg, a flash card) authenticates the outside. That is, the device checks the credentials of a particular host or application.
• Mutual authentication: generate questions on both sides.
Internal authentication: The host application authenticates the device (eg, flash card). That is, the host checks whether the device is authentic for the application.
To raise the security level of the entire system (so that if one is broken, not everything is broken)
・ Symmetric keys are usually combined with diversification using a parent key.
• Use questions from both sides with mutual authentication to confirm that the question is a genuine question.
Cryptographic symmetric key cryptography is a very efficient algorithm and does not require a powerful CPU for cryptographic processing, so it is also used for encryption.

通信チャネルを安全に使う場合:
・チャネルの安全を確保する(つまり、全発信データを暗号化し全着信データを復号化する)ために使うセッション鍵を、両方の装置が知らなければならない。このセッション鍵は通常、事前共有秘密対称鍵を使うか、あるいはPKIを使って設定する。
・両方の装置が同じ暗号アルゴリズムを知り、実行しなければならない。
署名
対称鍵を使ってデータに署名することもできる。この場合の署名は暗号化の部分的な結果である。このため、鍵値を露出することなく必要に応じて何度でも署名できる。
When using the communication channel safely:
Both devices must know the session key used to secure the channel (ie, encrypt all outgoing data and decrypt all incoming data). This session key is usually set using a pre-shared secret symmetric key or using PKI.
• Both devices must know and execute the same cryptographic algorithm.
You can also sign data using a signature symmetric key. The signature in this case is a partial result of the encryption. Therefore, it is possible to sign as many times as necessary without exposing the key value.

問題と限界
対称アルゴリズムは非常に効率的で安全ではあるが、事前共有秘密を基礎とする。問題は、この秘密を動的に安全に共有することと、(セッション鍵のように)ランダムにすることである。つまり、共有秘密を長期間にわたって安全に保つのは困難であり、多数の人々と共有することはほぼ不可能である。
この作業を促進するために考案されたのが、秘密を共有せずに交換する公開鍵アルゴリズムである。
The problem and bounding symmetric algorithms are very efficient and secure, but are based on pre-shared secrets. The problem is to share this secret dynamically and securely and make it random (like a session key). In other words, it is difficult to keep a shared secret secure for a long time, and it is almost impossible to share it with many people.
In order to facilitate this work, a public key algorithm that exchanges secrets without sharing them is devised.

非対称認証手続き
非対称鍵に基づく認証では、一連のコマンドを使ってデータを受け渡ししながら、最終的にはセキュアチャネル通信のためのセッション鍵を作る。その基本的プロトコルではSSAシステムに対してユーザを認証する。プロトコルのバリエーションにより、ユーザが使用するACRをベリファイする相互認証や二因子認証も可能である。
Asymmetric Authentication Procedure In authentication based on an asymmetric key, a session key for secure channel communication is finally created while passing data using a series of commands. The basic protocol authenticates the user to the SSA system. Mutual authentication or two-factor authentication for verifying the ACR used by the user is also possible depending on the protocol variation.

SSAの非対称認証プロトコルでは好ましくは、公開鍵基盤(PKI)アルゴリズムとRSAアルゴリズムを使用する。これらのアルゴリズムで規定することで、認証プロセスの各当事者に独自のRSA鍵対を用意することができる。それぞれの対は公開鍵と秘密鍵とからなる。これらの鍵は秘匿の鍵であるためにアイデンティティの証拠を提供することはできない。PKI層では信頼された第三者機関が公開鍵に署名する。この信用機関の公開鍵は、互いを認証する当事者間で事前共有され、当事者の公開鍵をベリファイするために使われる。信用が成立すると(両当事者が相手方から提供される公開鍵を信用できると判断したら)、プロトコルによる認証(各当事者が所有する秘密鍵の一致をベリファイする)と鍵の交換が続行する。これは、後述する図22および23のチャレンジ・レスポンス機構で果たすことができる。   The SSA asymmetric authentication protocol preferably uses a public key infrastructure (PKI) algorithm and an RSA algorithm. By defining with these algorithms, each party in the authentication process can have its own RSA key pair. Each pair consists of a public key and a private key. These keys are secret keys and cannot provide proof of identity. In the PKI layer, a trusted third party signs the public key. This public authority public key is pre-shared between the parties authenticating each other and used to verify the public key of the parties. If trust is established (both parties determine that the public key provided by the other party can be trusted), protocol authentication (verifies the match of private keys owned by each party) and key exchange continues. This can be accomplished with the challenge-response mechanism of FIGS. 22 and 23 described below.

署名済みの公開鍵を収容する構造を証明書という。証明書に署名した信用機関を証明機関(CA)という。認証を受ける側は公開鍵の信憑性を立証する証明書とRSA鍵対を有する。証明書は、相手方(認証する側)が信用する証明機関によって署名される。認証する側には信用CAの公開鍵の所有が求められる。   A structure that accommodates a signed public key is called a certificate. The credit agency that signed the certificate is called a certification authority (CA). The side receiving the authentication has a certificate and RSA key pair that proves the authenticity of the public key. The certificate is signed by a certification authority trusted by the other party (the authenticating party). The authenticating side is required to own the public key of the trusted CA.

SSAは証明書連鎖に対応する。これは、識別される側の公開鍵が別のCA、すなわち識別する側が信用するCAとは異なるCAによって署名されることを意味する。この場合の識別される側は、自分自身の証明書のほかに、その公開鍵に署名したCAの証明書を提供する。この第2レベルの証明書さえも相手方によって信用されない(信用CAによって署名されていない)場合、第3レベルの証明書を提供できる。この証明書連鎖アルゴリズムでは、各当事者が公開鍵の認証に必要な証明書の完全なリストを所有する。このことは、図23および24に例示されている。この種のACRによる相互認証に必要な信用証明は、一定の長さを有するRSA鍵対である。   SSA corresponds to a certificate chain. This means that the public key of the identified side is signed by a different CA, that is, a CA that is different from the CA that the identifying side trusts. In this case, the identified side provides the CA certificate that signed the public key in addition to its own certificate. If even this second level certificate is not trusted by the other party (not signed by a trusted CA), a third level certificate can be provided. In this certificate chain algorithm, each party has a complete list of certificates required for public key authentication. This is illustrated in FIGS. 23 and 24. The credentials required for mutual authentication by this type of ACR are RSA key pairs having a certain length.

SSA証明書
SSAは[X.509]バージョン3デジタル証明書を採用する。[X.509]は汎用規格であり、ここで説明するSSA証明書プロファイルは証明書の所定フィールドの内容をさらに指定し、制限する。この証明書プロファイルは、証明書連鎖の管理に用いる信頼階層と、SSA証明書の検査と、証明書失効リスト(CRL)プロファイルも規定する。
証明書は公開情報(内部の公開鍵として)とみなされるため、暗号化されない。しかし、証明書はRSA署名を含み、このRSA署名によって公開鍵やその他の情報フィールドが改竄されていないことをベリファイする。
[X.509]はASN.1規格を使った各フィールドのフォーマットを定め、ASN.1規格はデータ符号化にDERフォーマットを使用する。
The SSA certificate SSA is [X. 509] Adopt version 3 digital certificate. [X. 509] is a general-purpose standard, and the SSA certificate profile described here further specifies and restricts the contents of a predetermined field of the certificate. This certificate profile also defines the trust hierarchy used for certificate chain management, SSA certificate checking, and certificate revocation list (CRL) profiles.
Since the certificate is considered public information (as an internal public key), it is not encrypted. However, the certificate includes an RSA signature, and verifies that the public key and other information fields have not been tampered with by this RSA signature.
[X. 509] is ASN. The format of each field using one standard is defined, and ASN. One standard uses the DER format for data encoding.

SSA証明書の概要
図20と図21とに示されたSSA証明書管理アーキテクチャの一実施形態は、ホストの無限階層レベルと装置の3階層レベルからなるが、装置で使用する階層レベルは3レベルより多い場合または3レベルより少ない場合がある。
Overview of SSA Certificate One embodiment of the SSA certificate management architecture shown in FIGS. 20 and 21 comprises an infinite hierarchical level of the host and three hierarchical levels of the device, but the hierarchical level used by the device is three levels. May be more or less than 3 levels.

ホスト証明書階層
装置は、2つの要素、すなわち装置に記憶されたルートCA証明書(ACR信用証明としてACRの作成時に記憶)と、装置への(その特定のACRへの)アクセスを試みる事業体から提供される証明書/証明書連鎖とに基づき、ホストを認証する。
The host certificate hierarchy device has two components: the root CA certificate stored in the device (stored as ACR credentials when creating the ACR) and the entity attempting to access the device (to that particular ACR). Authenticate the host based on the certificate / certificate chain provided by.

ホスト証明機関は、それぞれのACRに対してルートCA(ACR信用証明の中にある証明書)の役割を果たす。例えば、ある1つのACRにとってのルートCAは「ホスト1 CA(レベル2)証明書」であり、別のACRにとってのルートCAは「ホストルートCA証明書」である。それぞれのACRに対して、ルートCAによって署名された証明書(またはルートCAを末端事業体証明書までつなげる証明書連鎖)を保持するすべての事業体が、末端事業体証明書の対応する秘密鍵を有している場合、そのACRにログインできる。前述したように、証明書は公知であり、秘密にしない。   The host certification authority acts as a root CA (certificate in ACR credentials) for each ACR. For example, a root CA for one ACR is a “host 1 CA (level 2) certificate”, and a root CA for another ACR is a “host root CA certificate”. For each ACR, all entities that hold a certificate signed by the root CA (or a certificate chain that connects the root CA to the end entity certificate) have a corresponding private key in the end entity certificate. You can log in to that ACR. As mentioned above, certificates are well known and are not kept secret.

ルートCAによって発行された証明書(ならびに対応する秘密鍵)の所有者は誰でもそのACRにログインできるということは、ある特定のACRに対する認証がそのACRの信用証明に記憶されたルートCAの発行者によって決まることを意味する。換言すると、ルートCAの発行者がACRの認証方式を管理する事業体になる。   Anyone who owns a certificate issued by a root CA (as well as the corresponding private key) can log in to that ACR, because the certificate for a particular ACR is stored in the ACR's credentials. Means it depends on the person. In other words, the issuer of the root CA becomes a business entity that manages the ACR authentication method.

ホストルート証明書
ルート証明書は、ログインを試みる事業体(ホスト)の公開鍵のベリファイを開始するのにSSAが使われるときに使用する信用CA証明書である。この証明書はACRの作成時にACR信用証明の一部として提供される。これはPKIシステムに対する信用の根元にあたるものであるため、信用された事業体(父ACR、または製造/構成信頼環境)から提供されることが前提となる。この証明書をベリファイするSSAは、その公開鍵を使って証明書の署名をベリファイする。ホストルート証明書は暗号化された状態で不揮発性メモリ(図1には示されていない)に記憶され、装置の秘密鍵にアクセスできるものは、好ましくは図1のシステム10のCPU12のみである。
Host Root Certificate The root certificate is a trusted CA certificate used when SSA is used to initiate verification of the public key of the entity (host) attempting to log in. This certificate is provided as part of the ACR credentials when creating the ACR. Since this is the basis of trust in the PKI system, it is assumed that it is provided by a trusted entity (Father ACR, or manufacturing / configuration trust environment). The SSA that verifies the certificate verifies the certificate signature using the public key. The host root certificate is encrypted and stored in non-volatile memory (not shown in FIG. 1), and preferably only the CPU 12 of the system 10 of FIG. 1 has access to the device's private key. .

ホスト証明書連鎖
これらの証明書は認証中にSSAへ提供される。連鎖の処理が完了した後にホストの証明書連鎖を再度集めて装置に記憶することはしない。
Host certificate chain These certificates are provided to the SSA during authentication. After the chain processing is completed, the host certificate chain is not collected again and stored in the apparatus.

図20は、多数のホスト証明書連鎖を示す、ホスト証明書レベル階層の概略図である。図20に示すように、ホスト証明書は多数の証明書連鎖を有することがあり、ここでは3つの証明書連鎖のみが例示されている。
A1.ホストルートCA証明書502、ホスト1 CA(レベル2)証明書504、
ホスト証明書506
B1.ホストルートCA証明書502、ホストn CA(レベル2)証明書508、
ホスト1 CA(レベル3)証明書510、ホスト証明書512
C1.ホストルートCA証明書502、ホストn CA(レベル2)証明書508、
ホスト証明書514
FIG. 20 is a schematic diagram of the host certificate level hierarchy showing multiple host certificate chains. As shown in FIG. 20, the host certificate may have many certificate chains, and only three certificate chains are illustrated here.
A1. Host root CA certificate 502, host 1 CA (level 2) certificate 504,
Host certificate 506
B1. Host root CA certificate 502, host n CA (level 2) certificate 508,
Host 1 CA (level 3) certificate 510, host certificate 512
C1. Host root CA certificate 502, host n CA (level 2) certificate 508,
Host certificate 514

前述した3つの証明書連鎖A1、B1、およびC1は、ホストの公開鍵が真正であることを証明するために使われてもよい3通りのホスト証明書連鎖を例示するものである。図20と前述した証明書連鎖A1を参照し、ホスト1のCA(レベル2)証明書504の公開鍵はホストルートCAの秘密鍵によって署名され(すなわち、公開鍵のダイジェストを暗号化)、この公開鍵はホストルートCA証明書502にある。したがって、ホストルートCAの公開鍵を有する事業体は、前述した証明書連鎖A1の信憑性をベリファイできることになる。この事業体は最初のステップとして、ホストから送信されたホスト1のCA(レベル2)証明書504の署名済み公開鍵を、自身が所有するホストルートCAの公開鍵を使って復号化し、復号化した署名済み公開鍵を、ホストから送信されたホスト1のCA(レベル2)証明書504の署名されていない公開鍵のダイジェストと比較する。2つが一致する場合、ホスト1のCA(レベル2)の公開鍵は認証され、事業体は次に、ホストから送信されたホスト証明書506の中にあるホスト1のCA(レベル2)の秘密鍵によって署名されたホストの公開鍵を、ホスト1のCA(レベル2)の認証済み公開鍵を用いて復号化することになる。この復号化された署名済みの値が、ホストから送信されたホスト証明書506の中にある公開鍵のダイジェストの値に一致する場合、ホストの公開鍵も認証される。証明書連鎖B1およびC1を使った認証も同様に行われる。   The three certificate chains A1, B1, and C1 described above exemplify three types of host certificate chains that may be used to prove that the host's public key is authentic. Referring to FIG. 20 and the certificate chain A1 described above, the public key of the CA (level 2) certificate 504 of the host 1 is signed by the private key of the host root CA (ie, the digest of the public key is encrypted). The public key is in the host root CA certificate 502. Therefore, the business entity having the public key of the host root CA can verify the authenticity of the certificate chain A1 described above. As the first step, the entity decrypts the signed public key of the CA (level 2) certificate 504 of the host 1 transmitted from the host by using the public key of the host root CA owned by itself. The signed public key is compared with the digest of the unsigned public key of the CA (level 2) certificate 504 of the host 1 transmitted from the host. If the two match, the public key of host 1's CA (level 2) is authenticated, and the entity then locks host 1's CA (level 2) secret in the host certificate 506 sent from the host. The public key of the host signed by the key is decrypted using the CA (level 2) authenticated public key of the host 1. If the decrypted signed value matches the digest value of the public key in the host certificate 506 transmitted from the host, the host public key is also authenticated. Authentication using certificate chains B1 and C1 is similarly performed.

連鎖A1が関わる前述したプロセスから分かるように、ホストから送信され事業体によってベリファイされる最初の公開鍵は、ホストルートCA証明書ではなくホスト1のCA(レベル2)の公開鍵である。このため、ホストが事業体へ送る必要があるものはホスト1のCA(レベル2)証明書504とホスト証明書506であって、ホスト1のCA(レベル2)証明書は連鎖の中で最初に送信される必要があることになる。前述したように、証明書のベリファイ順序は次のとおりである。ベリファイする側の事業体、すなわちこの場合のメモリ装置10はまず、連鎖の中で最初の証明書の公開鍵の真性をベリファイし、この場合のものはルートCAの下に位置するCAの証明書504である。この証明書の公開鍵が真正であることをベリファイした後、装置10は次の証明書のベリファイに進み、この場合のものはホスト証明書506である。証明書連鎖が3つ以上の証明書を含む場合のベリファイ順序も同様に、ルート証明書のすぐ下に位置する証明書から始まり、認証の対象となる事業体の証明書で終わる。   As can be seen from the above-described process involving chain A1, the first public key sent from the host and verified by the entity is the host 1 CA (level 2) public key, not the host root CA certificate. Therefore, what the host needs to send to the entity is the host 1 CA (level 2) certificate 504 and the host certificate 506, and the host 1 CA (level 2) certificate is the first in the chain. Will need to be sent to. As described above, the certificate verification order is as follows. The verifying entity, ie the memory device 10 in this case, first verifies the authenticity of the public key of the first certificate in the chain, which in this case is the certificate of the CA located under the root CA. 504. After verifying that the public key of this certificate is authentic, the apparatus 10 proceeds to verify the next certificate, in this case the host certificate 506. Similarly, the verification sequence in the case where the certificate chain includes three or more certificates starts with the certificate located immediately below the root certificate and ends with the certificate of the entity to be authenticated.

装置証明書階層
ホストは2つの要素、すなわちホストに記憶された装置ルートCAと、装置からホストへ提供される(ACRの作成時に信用証明として装置に提供される)証明書/証明書連鎖とに基づき装置を認証する。ホストによる装置の認証プロセスは、前述した装置によるホスト認証プロセスに類似する。
The device certificate hierarchy host has two components: the device root CA stored on the host, and the certificate / certificate chain provided to the host from the device (provided to the device as credentials when creating the ACR). Authenticate the device based on. The device authentication process by the host is similar to the host authentication process by the device described above.

装置証明書連鎖
これらの証明書はACRの鍵対の証明書である。これらの証明書はACRの作成時にカードに提供される。SSAはこれらの証明書を個別に記憶し、認証のときにはそれらを1つずつホストに提供する。SSAはこれらの証明書を使ってホストの認証を受ける。装置は3つの証明書からなる連鎖を処理できるが、証明書数が3以外になる場合がある。証明書の数はACRによって異なることがある。これはACRが作成されるときに決まる。装置はホストに向けて証明書連鎖を送信できるが、証明書連鎖データを使用するわけではないので、証明書連鎖を解析する必要はない。
Device Certificate Chain These certificates are ACR key pair certificates. These certificates are provided to the card when the ACR is created. SSA stores these certificates individually and provides them to the host one at a time for authentication. SSA uses these certificates to authenticate the host. The device can process a chain of three certificates, but the number of certificates may be other than three. The number of certificates may vary depending on the ACR. This is determined when the ACR is created. Although the device can send a certificate chain to the host, it does not use certificate chain data, so there is no need to parse the certificate chain.

図21は、SSAを使用する記憶装置等の装置で1〜n通りの証明書連鎖を示す、装置証明書レベル階層の概略図である。図21に示されたn通りの証明書連鎖は次のとおりである。
A2.装置ルートCA証明書520、装置1 CA(製造業者)証明書522、
装置証明書524
B2.装置ルートCA証明書520、装置n CA(製造業者)証明書526、
装置証明書528
FIG. 21 is a schematic diagram of a device certificate level hierarchy showing 1 to n certificate chains in a device such as a storage device using SSA. The n certificate chains shown in FIG. 21 are as follows.
A2. Device root CA certificate 520, device 1 CA (manufacturer) certificate 522,
Device certificate 524
B2. Device root CA certificate 520, device n CA (manufacturer) certificate 526,
Device certificate 528

SSA装置は、それぞれ独自の装置CA証明書を有する1〜n通りの製造業者によって製造される。したがって、ある特定の装置の装置証明書の公開鍵はその異なる製造業者の秘密鍵によって署名され、製造業者の公開鍵は装置ルートCAの秘密鍵によって署名される。装置の公開鍵をベリファイする方法は、前述したホストの公開鍵の場合の方法に類似する。ホストについて前述した連鎖A1のベリファイの場合と同様に、装置ルートCA証明書を送る必要はなく、連鎖の中で送信すべき最初の証明書は装置i CA(製造業者)証明書であって、その後に装置証明書が続き、iは1〜nの整数である。   SSA devices are manufactured by 1 to n manufacturers, each with its own device CA certificate. Thus, the public key of the device certificate for a particular device is signed by the different manufacturer's private key, and the manufacturer's public key is signed by the private key of the device root CA. The method for verifying the device public key is similar to the method for the host public key described above. As with the chain A1 verification described above for the host, there is no need to send the device root CA certificate, the first certificate to be sent in the chain is the device i CA (manufacturer) certificate, The device certificate follows, and i is an integer from 1 to n.

図21に示す実施形態において、装置は2つの証明書、つまり装置i CA(製造業者)証明書と、その後に自身の装置証明書とを送信する。装置i CA(製造業者)証明書は、このような装置を製造し、装置の公開鍵に署名するための秘密鍵を提供する製造業者の証明書である。装置i CA(製造業者)証明書を受信したホストは、自身が所有するルートCAの公開鍵を使って装置i CA(製造業者)公開鍵を復号化し、ベリファイする。ホストはこのベリファイに失敗した場合、プロセスを中断し、認証が失敗したことを装置に伝える。ホストが認証に成功した場合、次の証明書を求める要求を装置へ送信する。そして、装置は自身の装置証明書を送信し、ホストはこれを同様にベリファイする。   In the embodiment shown in FIG. 21, the device sends two certificates: a device i CA (manufacturer) certificate, followed by its device certificate. A device i CA (manufacturer) certificate is a manufacturer's certificate that produces such a device and provides a private key for signing the device's public key. The host that has received the device i CA (manufacturer) certificate decrypts and verifies the device i CA (manufacturer) public key using the public key of the root CA owned by itself. If the host fails this verification, it interrupts the process and informs the device that the authentication has failed. If the host is successfully authenticated, it sends a request for the next certificate to the device. The device then sends its device certificate, and the host verifies it as well.

図22および図23は、前述したベリファイプロセスをさらに詳しく示すものである。図22の「SSMシステム」は、本願明細書で説明するSSAシステムと後述するその他の機能とを実行するソフトウェアモジュールである。SSMはソフトウェアまたはコンピュータコードとして具現化でき、メモリ20またはCPU12の不揮発性メモリ(図示せず)にデータベースを記憶し、RAM 12aに読み込まれてCPU 12によって実行される。   22 and 23 show the verification process described above in more detail. The “SSM system” in FIG. 22 is a software module that executes the SSA system described in this specification and other functions described later. The SSM can be embodied as software or computer code, stores a database in the memory 20 or a non-volatile memory (not shown) of the CPU 12, is read into the RAM 12a, and is executed by the CPU 12.

図22に示すように、装置10のSSMシステム542がホストシステム540を認証するプロセスには3つの段階がある。最初の公開鍵ベリファイ段階では、ホストシステム540がSSMコマンドでホスト証明書連鎖をSSMシステム542へ送信する。SSMシステム542は、ホスト証明書544の真性とホスト公開鍵546の真性を、ACR550のホストルート証明書548にあるルート証明機関公開鍵を用いてベリファイする(ブロック552)。ルート証明機関とホストの間に中間証明機関が介在する場合、中間証明書549もブロック552のベリファイに使われる。ベリファイまたはプロセス(ブロック552)が成功したと仮定し、SSMシステム542は第2段階へ進む。   As shown in FIG. 22, the process by which the SSM system 542 of the device 10 authenticates the host system 540 has three stages. In the first public key verification stage, the host system 540 sends a host certificate chain to the SSM system 542 using an SSM command. The SSM system 542 verifies the authenticity of the host certificate 544 and the authenticity of the host public key 546 using the root certification authority public key in the host root certificate 548 of the ACR 550 (block 552). If there is an intermediate certification authority between the root certification authority and the host, the intermediate certificate 549 is also used for verification in block 552. Assuming that the verification or process (block 552) was successful, the SSM system 542 proceeds to the second stage.

SSMシステム542は乱数554を生成し、これを質問としてホストシステム540へ送信する。システム540はホストシステムの秘密鍵547を使って乱数554に署名し(ブロック556)、質問に対する回答として署名済みの乱数を送信する。その回答はホスト公開鍵546を使って復号化され(ブロック558)、乱数554と比較される(ブロック560)。復号化された回答が乱数554に一致したと仮定すると、チャレンジ・レスポンスは成功である。   The SSM system 542 generates a random number 554 and transmits this as a question to the host system 540. The system 540 uses the host system's private key 547 to sign the random number 554 (block 556) and sends the signed random number as an answer to the question. The answer is decrypted using the host public key 546 (block 558) and compared with the random number 554 (block 560). Assuming the decrypted answer matches the random number 554, the challenge response is successful.

第3段階ではホスト公開鍵546を使って乱数562を暗号化する。この乱数562がセッション鍵となる。ホストシステム540は、SSMシステム542からの暗号化数562を秘密鍵を使って復号化(ブロック564)することによってセッション鍵を得ることができる。このセッション鍵により、ホストシステム540とSSMシステム542との間でセキュア通信を開始できる。図22に示す一方向非対称認証では、装置10のSSMシステム542によってホストシステム540が認証される。図23は、図22の一方向認証プロトコルに類似する双方向相互認証プロセスを示すプロトコル図であり、図23ではSSMシステム542もホストシステム540によって認証される。   In the third stage, the host public key 546 is used to encrypt the random number 562. This random number 562 becomes a session key. The host system 540 can obtain the session key by decrypting the encrypted number 562 from the SSM system 542 with the private key (block 564). With this session key, secure communication can be started between the host system 540 and the SSM system 542. In the one-way asymmetric authentication shown in FIG. 22, the host system 540 is authenticated by the SSM system 542 of the apparatus 10. FIG. 23 is a protocol diagram showing a two-way mutual authentication process similar to the one-way authentication protocol of FIG. 22, in which the SSM system 542 is also authenticated by the host system 540.

図24は、本発明の一実施形態を例示する証明書連鎖590の図である。前述したように、ベリファイする場合に提示の必要がある証明書連鎖は多数の証明書を含むことがある。図24の証明書連鎖は全部で9つの証明書を含み、認証する場合にはこれらの証明書をすべてベリファイすることが必要となる場合がある。背景技術の欄で前に説明したように、既存の証明書ベリファイシステムでは、送信される証明書連鎖に不備があったり、信用証明全体が送信されたり、証明書が特定の順序で送信されないと、受信側は証明書を一通り受信し記憶するまで証明書を解析できない。しかし、連鎖に含まれる証明書の数は事前に分からないため、問題が生じることがある。長さが定かでない証明書連鎖を記憶するために大量の記憶容量を確保する必要になることがある。これはベリファイを行う記憶装置にとって問題になることがある。   FIG. 24 is a diagram of a certificate chain 590 that illustrates one embodiment of the present invention. As described above, the certificate chain that needs to be presented for verification may include a large number of certificates. The certificate chain in FIG. 24 includes a total of nine certificates, and when authenticating, it may be necessary to verify all of these certificates. As explained earlier in the background section, existing certificate verification systems do not provide a complete certificate chain, send entire credentials, or send certificates in a specific order. The receiver cannot parse the certificate until it has received and memorized the certificate. However, problems may arise because the number of certificates in the chain is not known in advance. It may be necessary to secure a large amount of storage capacity to store certificate chains of undefined length. This can be a problem for storage devices that perform verification.

本発明の一実施形態は、証明書連鎖が記憶装置によってベリファイされる順序と同じ順序でホスト装置が証明書連鎖を送信するシステムによってこの問題を軽減できるという認識に基づく。よって、図24に示すように、証明書の連鎖590は、ホストルート証明書のすぐ下に位置する証明書590(1)から始まり、ホスト証明書に相当する証明書590(9)で終わる。したがって、装置10はまず、証明書590(1)で公開鍵をベリファイし、その後に証明書590(2)で公開鍵のベリファイ等を行い、最後に証明書590(9)で公開鍵をベリファイする。これで証明書連鎖590全体のベリファイプロセスは完了する。ホスト装置が証明書連鎖590をベリファイと同じ順序でメモリ装置10へ送信する場合、メモリ装置10は証明書が届くたびにベリファイを開始することができ、連鎖590に含まれる9つの証明書が一通り届くまで待つ必要はない。   One embodiment of the present invention is based on the realization that this problem can be alleviated by a system in which the host device sends the certificate chain in the same order that the certificate chain is verified by the storage device. Therefore, as shown in FIG. 24, the certificate chain 590 starts with a certificate 590 (1) located immediately below the host root certificate and ends with a certificate 590 (9) corresponding to the host certificate. Therefore, the device 10 first verifies the public key with the certificate 590 (1), then verifies the public key with the certificate 590 (2), and finally verifies the public key with the certificate 590 (9). To do. This completes the verification process for the entire certificate chain 590. When the host device transmits the certificate chain 590 to the memory device 10 in the same order as the verification, the memory device 10 can start the verification every time the certificate arrives, and the nine certificates included in the chain 590 are one. There is no need to wait until it reaches the street.

したがって、ホスト装置は、一実施形態において、メモリ装置10に対して連鎖590の証明書を一度に1つずつ送信する。メモリ装置10は一度に1つの証明書を記憶することになる。連鎖の中の最後の証明書を除き、ベリファイ済みの証明書はホストから送信される次の証明書で上書きできる。このため、メモリ装置10には、1つのみの証明書を随時記憶する容量を確保すればよい。   Thus, in one embodiment, the host device sends the certificates of chain 590 one at a time to memory device 10. The memory device 10 stores one certificate at a time. Except for the last certificate in the chain, the verified certificate can be overwritten with the next certificate sent by the host. For this reason, the memory device 10 may have a capacity for storing only one certificate at any time.

メモリ装置は、連鎖590が一通り届いたことを知る必要がある。このため、好ましくは、最後の証明書590(9)には、これが連鎖の中で最後の証明書であることを伝える標識または標示を入れる。これを例示する図25の表は、ホストからメモリ装置10へ送信される証明書バッファに先行する制御セクタ内の情報を示す。図25に示すように、証明書590(9)の制御セクタには引数名「最終」フラグがある。メモリ装置10は、「最終」フラグが設定されているかどうかをチェックして受信した証明書が連鎖における最終証明書であるかどうかを判断することにより、連鎖の中で証明書590(9)が最後の証明書であることをベリファイできる。   The memory device needs to know that the chain 590 has arrived. For this reason, preferably, the last certificate 590 (9) is provided with a sign or indication that this is the last certificate in the chain. The table of FIG. 25 illustrating this shows information in the control sector preceding the certificate buffer transmitted from the host to the memory device 10. As shown in FIG. 25, the control sector of the certificate 590 (9) has an argument name “final” flag. The memory device 10 checks whether the “final” flag is set and determines whether the received certificate is the final certificate in the chain, whereby the certificate 590 (9) is included in the chain. You can verify that it is the last certificate.

代替的な実施形態では、連鎖590の証明書を1つずつ送信するのではなく、1つ、2つ、または3つの証明書からなるグループで送信してもよい。当然ながら、グループで使用する証明書の数は異なる場合があったり、あるいは同じになる場合がある。連鎖590には5つの連続する証明書列591、593、595、597、および599がある。それぞれの列は少なくとも1つの証明書を含む。ある1つの証明書の列には、連鎖の中で該当する1列の先行列に隣接する証明書(先頭証明書)と、連鎖の中で該当する1列の後続列に隣接する証明書(終端証明書)と、先頭証明書と終端証明書との間にある全証明書が含まれる。例えば列593の中には、全部で3つの証明書590(2)、証明書590(3)、および証明書590(4)がある。メモリ装置10による5つの証明書の列のベリファイは591、593、595、597の順で行われ、599で終わる。したがって、5つの列がメモリ装置10によるベリファイと同じ順序で送信され、受信される場合、ベリファイ済みの列をメモリ装置で記憶する必要はなくなり、最後の列を除く列はいずれも、ホストから到着する次の列で上書きできる。前の実施形態と同様に、連鎖内の最後の証明書には標識、例えばこれが連鎖における最後の証明書であることを伝える特定の値に設定されたフラグを入れるのが望ましい。この実施形態の場合、メモリ装置は5つの列のうち、証明書数が最も多い列の証明書を記憶する十分な容量を確保するだけでよい。よって、ホストが送ろうとする列のうちの最も大きい列を事前にメモリ装置10に知らせる場合、メモリ装置10は最も大きい列のための十分な容量を確保するだけでよい。   In alternative embodiments, the certificates in chain 590 may be sent in groups of one, two, or three certificates, rather than sent one by one. Of course, the number of certificates used in a group may be different or the same. Chain 590 has five consecutive certificate strings 591, 593, 595, 597, and 599. Each column contains at least one certificate. A certain certificate column includes a certificate adjacent to the preceding matrix of the corresponding column in the chain (first certificate) and a certificate adjacent to the subsequent column of the corresponding column in the chain ( Terminal certificate) and all certificates between the first certificate and the terminal certificate. For example, in column 593, there are a total of three certificates 590 (2), certificate 590 (3), and certificate 590 (4). The verification of the five certificate columns by the memory device 10 is performed in the order of 591, 593, 595, and 597, and ends with 599. Thus, if five columns are sent and received in the same order as verified by the memory device 10, it is not necessary to store the verified columns in the memory device, and all columns except the last column arrive from the host. You can overwrite it with the next column. As in the previous embodiment, the last certificate in the chain preferably contains an indicator, for example a flag set to a specific value that tells it is the last certificate in the chain. In the case of this embodiment, the memory device only needs to secure a sufficient capacity to store the certificate of the column having the largest number of certificates among the five columns. Therefore, if the memory device 10 is informed in advance of the largest column among the columns that the host intends to send, the memory device 10 need only reserve sufficient capacity for the largest column.

好ましくは、ホストによって送信される連鎖の中の各証明書の長さは、その証明書によって証明される公開鍵の長さの4倍以下である。同様に、メモリ装置の公開鍵を証明するためにメモリ装置10からホスト装置へ送信される証明書の長さは好ましくは、その証明書によって証明される公開鍵の長さの4倍以下である。   Preferably, the length of each certificate in the chain sent by the host is no more than four times the length of the public key certified by that certificate. Similarly, the length of the certificate transmitted from the memory device 10 to the host device to prove the public key of the memory device is preferably not more than four times the length of the public key certified by the certificate. .

図26のフローチャートは、前述した証明書連鎖ベリファイの実施形態を示すものであり、ここでは簡潔を図るため、各グループ内の証明書数を1と仮定する。図26に示すように、ホストはカードに向けて連鎖内の証明書を順次送信する。連鎖の中の第1の証明書(前述したように、通常はルート証明書の後続証明書)から始まって、カードは、認証の対象となるホストから証明書連鎖を順次受信する(ブロック602)。そして、カードは受信する証明書の各々をベリファイし、証明書のいずれかでベリファイに失敗した場合はプロセスを中止する。カードは、証明書のいずれかでベリファイに失敗した場合、ホストに通知する(ブロック604、606)。次に、カードは、最後の証明書が受信されベリファイされたかどうかを検出する(菱形608)。最終証明書の受信とベリファイとがまだであれば、カードはブロック602まで戻り、ホストからの証明書の受信とベリファイを続行する。最終証明書を受信し、ベリファイしたら、カードは証明書ベリファイの後に続く次の段階へ進む(610)。図26とそれ以降の図の内容は例としてメモリカードを参照するが、物理的形態がメモリカードではないメモリ装置にもこれらの内容が当てはまることが理解できる。   The flowchart in FIG. 26 shows the above-described embodiment of certificate chain verification. Here, for the sake of brevity, it is assumed that the number of certificates in each group is 1. As shown in FIG. 26, the host sequentially sends the certificates in the chain toward the card. Beginning with the first certificate in the chain (usually a successor to the root certificate as described above), the card sequentially receives the certificate chain from the host to be authenticated (block 602). . The card then validates each received certificate and aborts the process if validation fails with any of the certificates. The card notifies the host if verification fails with any of the certificates (blocks 604, 606). The card then detects whether the last certificate has been received and verified (diamond 608). If the final certificate has not yet been received and verified, the card returns to block 602 to continue receiving and verifying the certificate from the host. If the final certificate is received and verified, the card proceeds to the next stage following certificate verification (610). The contents of FIG. 26 and the subsequent figures refer to a memory card as an example, but it can be understood that these contents also apply to a memory device whose physical form is not a memory card.

図27は、カードがホストを認証する場合にホストによって実行されるプロセスを示す。図27に示すように、ホストは連鎖の中の次の証明書をカードに送信する(ブロック620)(通常はルート証明書の後続証明書から始まる。ホストは、認証の失敗を伝える中止通知がカードから届いているかどうかを判断する(菱形622)。中止通知が届いているならホストは停止する(ブロック624)。中止通知が届いてなければ、ホストは送信された最後の証明書で「最終フラグ」が設定されているかどうかをチェックすることにより、連鎖の最終証明書が送信済みかどうかを確認する。最終証明書が送信済みであれば、ホストは証明書ベリファイの後に続く次の段階へ進む(ブロック628)。図22および23に示すように、次の段階はチャレンジ・レスポンスであり、その後にセッション鍵の作成が続いてもよい。連鎖の最終証明書が送信済みでなければ、ホストはブロック620まで戻り、連鎖内の次の証明書を送信する。   FIG. 27 shows the process performed by the host when the card authenticates the host. As shown in FIG. 27, the host sends the next certificate in the chain to the card (block 620) (usually starting with the certificate following the root certificate. Determine if the card has arrived (diamond 622) If the abort notice has arrived, the host stops (block 624) If no abort notice has been received, the host will use the last certificate sent to Check if the final certificate of the chain has been sent by checking if the flag is set.If the final certificate has been sent, the host goes to the next stage following certificate verification Proceed (block 628), as shown in Figures 22 and 23, the next step is a challenge response, which may be followed by the creation of a session key. If the certificate has not been sent, the host returns to block 620 to send the next certificate in the chain.

図28および図29は、カードが認証される場合にカードとホストがとる動作を示す。図28に示すように、カードは開始後、連鎖の中で証明書の送信を求めるホストからの要求を待つ(ブロック630、菱形632)。ホストから要求が届かなければ、カードは菱形632へ戻る。ホストから要求が届く場合、カードは連鎖の中の次の証明書を送信することになり、これは送信すべき最初の証明書から始まる(通常はルート証明書の後続証明書から始まる)(ブロック634)。カードは、ホストから失敗通知が届いたかどうかを判断する(菱形636)。失敗通知が届いた場合、カードは停止する(ブロック637)。失敗通知が届かない場合、カードは最終証明書が送信済みかどうかを判断する(菱形638)。最終証明書が送信済みでなければ、カードは菱形632まで戻り、連鎖内の次の証明書の送信を求める次の要求をホストから受け取るまで待つ。最終証明書が送信済みであれば、カードは次の段階へ進む(ブロック639)。   28 and 29 show the actions taken by the card and the host when the card is authenticated. As shown in FIG. 28, after the card starts, it waits for a request from the host for certificate transmission in the chain (block 630, diamond 632). If no request is received from the host, the card returns to diamond 632. If the request arrives from the host, the card will send the next certificate in the chain, starting with the first certificate to send (usually starting with the certificate following the root certificate) (block 634). The card determines whether a failure notification has been received from the host (diamond 636). If a failure notification is received, the card stops (block 637). If no failure notification is received, the card determines whether the final certificate has been sent (diamond 638). If the final certificate has not been sent, the card returns to diamond 632 and waits for the next request from the host to send the next certificate in the chain. If the final certificate has been sent, the card proceeds to the next stage (block 639).

図29は、カードが認証される場合にホストがとる動作を示す。ホストは、連鎖内の次の証明書を求める要求をカードへ送り、これは送信されるべき最初の証明書に対する要求から始まる(ブロック640)。ホストは受信するそれぞれの証明書をベリファイし、ベリファイに失敗した場合はプロセスを中止し、カードに通知する(ブロック642)。ベリファイに合格した場合、ホストは最終証明書が受信済みでベリファイに成功したかどうかをチェックする(菱形644)。最終証明書の受信とベリファイがまだであれば、ホストはブロック640まで戻り、連鎖内の次の証明書を求める要求を送る。最終証明書が受信済みでベリファイに成功した場合、ホストは証明書ベリファイの後に続く次の段階へ進む(ブロック646)。   FIG. 29 shows the actions taken by the host when the card is authenticated. The host sends a request for the next certificate in the chain to the card, which begins with a request for the first certificate to be sent (block 640). The host verifies each certificate it receives and, if verification fails, stops the process and notifies the card (block 642). If the verification is successful, the host checks whether the final certificate has been received and verified successfully (diamond 644). If the final certificate has not yet been received and verified, the host returns to block 640 and sends a request for the next certificate in the chain. If the final certificate has been received and verification is successful, the host proceeds to the next stage following certificate verification (block 646).

証明書失効
発行された証明書はその有効期間全体にわたって使われることが予想される。しかし、様々な事情から有効期間の満了に先立ち証明書が無効になる場合がある。名称の変更、対象とCAとの関係の変化(例えば、従業員の退職)、対応する秘密鍵の侵害または侵害の疑い等がこれにあたる。このような場合にはCAが証明書を無効にする必要がある。
Certificates that have been revoked are expected to be used throughout their validity period. However, the certificate may become invalid prior to expiration of the validity period due to various circumstances. This includes changes in names, changes in the relationship between the subject and the CA (for example, employee retirement), infringement of the corresponding private key, or suspicion of infringement. In such a case, the CA needs to invalidate the certificate.

SSAにおける証明書の失効には別の方法があり、ACRはそれぞれ別々の証明書失効制度で構成できる。まず、失効制度をサポートしない形にACRを構成することができる。この場合の証明書は有効期限まで有効とみなされる。証明書失効リスト(CRL)を使うこともできる。さらに別の代案として、後述するようにある特定のアプリケーションに失効制度を限定する、つまりアプリケーション別にしてもよい。ACRでは、失効値を指定することによって3通りの失効制度のどれが採用されているかを指定する。失効制度なしで作成されたACRでは、そのACRの所有者の失効制度を採用できる。メモリ装置証明書の失効は、SSAセキュリティシステムではなくホストによって執り行われる。ホストルート証明書の失効管理はACRの所有者が担当し、これはACRの信用証明を更新することによって果たされる。   There are different methods for certificate revocation in SSA, and each ACR can be configured with a separate certificate revocation system. First, the ACR can be configured in a way that does not support the revocation system. The certificate in this case is considered valid until the expiration date. A certificate revocation list (CRL) can also be used. As yet another alternative, the revocation system may be limited to a specific application as described later, that is, may be application-specific. In ACR, it is specified which of three revocation systems is adopted by specifying a revocation value. An ACR created without a revocation system can adopt the revocation system of the ACR owner. The revocation of the memory device certificate is performed by the host, not the SSA security system. The revocation management of the host root certificate is handled by the ACR owner, which is accomplished by updating the ACR credentials.

証明書失効リスト(CRL)
SSAシステムで失効制度を使用するには、それぞれのCAが証明書失効リスト(CRL)と呼ばれる署名済みデータ構造を定期的に発行する。CRLは失効した証明書を識別するタイムスタンプ付きリストであり、CA(該当する証明書を発行したCA)によって署名され、一般に公開され自由に利用できる。CRLの中では、失効した証明書をそれぞれの証明書シリアル番号で識別する。CRLのサイズは任意なものであって、期限切れ前に失効する証明書の数しだいで決まる。(例えば、ホストのアイデンティティをベリファイするため)証明書を使用する装置は、証明書の署名(ならびに有効性)をチェックするだけでなく、CRLを通じて受け取ったシリアル番号のリストにこれを照らしてベリファイする。証明書の発行元にあたるCAから発行されるCRLでその証明書の識別情報、例えばシリアル番号が見つかる場合、これは、その証明書が失効し、もはや有効でないことを意味する。
Certificate revocation list (CRL)
To use the revocation scheme in an SSA system, each CA periodically issues a signed data structure called a certificate revocation list (CRL). The CRL is a time-stamped list that identifies a revoked certificate, is signed by a CA (the CA that issued the certificate), is open to the public, and can be used freely. Within the CRL, revoked certificates are identified by their respective certificate serial numbers. The size of the CRL is arbitrary, and depends on the number of certificates that expire before expiration. A device that uses a certificate (for example, to verify the identity of a host) not only checks the certificate's signature (as well as its validity) but also validates it against a list of serial numbers received through the CRL. . If the certificate's identification information, such as a serial number, is found in the CRL issued by the CA that is the certificate issuer, this means that the certificate has expired and is no longer valid.

証明書の有効性を検査する目的をCRLで果たすには、CRLについても、これが真正であることをベリファイする必要がある。CRLには、その発行元にあたるCAの秘密鍵を使って署名し、CAの公開鍵を使って署名済みCRLを復号化することによってこれが真正であることをベリファイする。復号化されたCRLが無署名CRLのダイジェストに一致する場合、そのCRLに改竄がなく、真正であることを意味する。CRLのダイジェストを得るためにハッシュアルゴリズムを使って頻繁にCRLのハッシュ計算が行われ、そのダイジェストはCAの秘密鍵で暗号化される。CRLが有効かどうかをベリファイするには、CAの公開鍵を使って署名済みCRL(すなわち、ハッシュ化・暗号化CRL)を復号化して復号化・ハッシュ化CRL(すなわち、CRLのダイジェスト)を得る。そして、これをハッシュ化CRLと比較する。このため、ベリファイプロセスでは、復号化・ハッシュ化CRLとの比較のためのCRLのハッシュ計算ステップを頻繁にともなうことがある。   In order for the CRL to serve the purpose of checking the validity of the certificate, it is necessary to verify that the CRL is authentic. The CRL is signed using the CA's private key that is the issuer, and the CARL's public key is used to decrypt the signed CRL to verify that it is authentic. If the decrypted CRL matches the digest of the unsigned CRL, it means that the CRL is not falsified and is authentic. In order to obtain a CRL digest, a hash calculation is frequently performed using a hash algorithm, and the digest is encrypted with a CA private key. To verify whether the CRL is valid, the CA's public key is used to decrypt the signed CRL (ie, the hashed / encrypted CRL) to obtain the decrypted / hashed CRL (ie, the CRL digest). . This is then compared with the hashed CRL. For this reason, the verify process often involves a hash calculation step of the CRL for comparison with the decrypted / hashed CRL.

CRL方式の一特徴として、(CRLを使った)証明書の妥当性のベリファイはCRLの入手と分けて行うことができる。CRLも証明書の適切な発行元によって署名され、証明書のベリファイと同様に、CRLの発行元にあたるCAの公開鍵を使って前述したようにベリファイされる。メモリ装置は署名がCRLのものであることをベリファイし、さらにCRLの発行元と証明書の発行元との一致をベリファイする。CRL方式の別の特徴として、CRLは証明書自体とまったく同じやり方で、具体的には信頼性のないサーバと信頼性のない通信を通じて、配布できる。X.509規格ではCRLとその特徴が詳述されている。   As a feature of the CRL scheme, the validity of the certificate (using the CRL) can be verified separately from the acquisition of the CRL. The CRL is also signed by an appropriate certificate issuer, and is verified as described above using the CA's public key, which is the CRL issuer, in the same manner as certificate verification. The memory device verifies that the signature is that of the CRL, and further verifies the match between the CRL issuer and the certificate issuer. Another feature of the CRL scheme is that the CRL can be distributed in exactly the same way as the certificate itself, specifically through untrusted servers and untrusted communications. X. The 509 standard details the CRL and its features.

CRLのためのSSA基盤構造
SSAは、CRL方式を使ったホスト失効のための基盤構造を提供する。CRL失効制度を採用するRSA方式ACRで認証する場合、ホストはSet Certificateコマンドに対して追加のフィールドとして1つのCRL(発行元CAによって無効にされた証明書がない場合は空のCRL)を加える。このフィールドには、証明書の発行元によって署名されたCRLが入る。このフィールドが存在する場合、メモリ装置10は最初にSet Certificateコマンドで証明書をベリファイする。CRLリポジトリの入手とアクセスは全面的にホストが担当する。CRLが有効であり続ける期間(CRL有効期間、すなわちCET)もCRLと併せて発行される。現在の時間がこの期間から外れていることがベリファイ中に判明すると、そのCRLには不備があるとみなされ、証明書のベリファイに使うことはできない。その結果、証明書の認証は失敗する。
SSA infrastructure for CRL SSA provides an infrastructure for host revocation using the CRL scheme. When authenticating with an RSA ACR that employs a CRL revocation system, the host adds one CRL (an empty CRL if no certificate has been revoked by the issuing CA) as an additional field to the Set Certificate command . This field contains the CRL signed by the certificate issuer. If this field is present, the memory device 10 first verifies the certificate with the Set Certificate command. The host is entirely responsible for obtaining and accessing the CRL repository. A period during which the CRL remains valid (CRL validity period, that is, CET) is also issued together with the CRL. If it is found during validation that the current time is outside this period, the CRL is deemed incomplete and cannot be used for certificate validation. As a result, certificate authentication fails.

従来の証明書ベリファイ方法では、認証する側またはベリファイする側の事業体が、証明書失効リストを所有しているか、あるいはそうでないかにかかわらず、証明機関(CA)から取り込むことができ、認証のために提示される証明書のシリアル番号をリストに照らしてチェックし、提示された証明書が失効しているかどうかを判断することになっている。認証またはベリファイする側の事業体がメモリ装置の場合、そのメモリ装置自体が使われなかったら、CAから証明書失効リストは取り込まれない。予め装置に記憶された証明書失効リストが時間を経て古くなると、インストールされた日より後に失効した証明書はリストに現れない。その結果、ユーザは失効した証明書を使ってその記憶装置にアクセスできることになる。これは望ましくない。   Traditional certificate verification methods can be retrieved from a certification authority (CA) regardless of whether the authenticating or verifying entity has or does not have a certificate revocation list, The serial number of the certificate presented for the purpose is to be checked against the list to determine if the presented certificate has been revoked. If the authenticating or verifying entity is a memory device, the certificate revocation list is not retrieved from the CA if the memory device itself is not used. If the certificate revocation list stored in the device in advance becomes out of date, certificates revoked after the date of installation will not appear in the list. As a result, the user can access the storage device using the revoked certificate. This is undesirable.

一実施形態において、認証を受けようとする事業体が、認証の対象となる証明書と併せて証明書失効リストを、認証する側の事業体、例えばメモリ装置10に提示するシステムによって前述した問題を解決できる。認証する側の事業体は、受け取った証明書の真偽と証明書失効リストの真偽をベリファイする。認証する側の事業体は、失効リストで証明書の識別情報の有無、例えば証明書のシリアル番号の有無をチェックすることにより、証明書が失効リストに登記されているかどうかをチェックする。   In one embodiment, the problem described above by a system in which an entity to be authenticated presents a certificate revocation list together with a certificate to be authenticated to an authenticating entity, for example, the memory device 10. Can be solved. The authenticating entity verifies the authenticity of the received certificate and the authenticity of the certificate revocation list. The authenticating entity checks whether the certificate is registered in the revocation list by checking the revocation list for the presence of identification information of the certificate, for example, the presence of the certificate serial number.

前述したことを踏まえ、ホスト装置とメモリ装置10との相互認証に非対称認証方式を使うことができる。メモリ装置10の認証を受けようとするホスト装置は、証明書連鎖と対応するCRLの両方を提供する必要がある。一方、ホスト装置は予めCAに接続してCRLを入手しているため、ホスト装置がメモリ装置10を認証する場合、メモリ装置は、証明書または証明書連鎖と併せてCRLをホスト装置に提示する必要はない。   Based on the above, an asymmetric authentication method can be used for mutual authentication between the host device and the memory device 10. A host device that intends to receive authentication of the memory device 10 needs to provide both a certificate chain and a corresponding CRL. On the other hand, since the host device is connected to the CA in advance and obtains the CRL, when the host device authenticates the memory device 10, the memory device presents the CRL together with the certificate or certificate chain to the host device. There is no need.

種々の内蔵または独立型ミュージックプレーヤ、MP3プレーヤ、携帯電話機、個人用携帯情報端末(PDA)、ノートブックコンピュータ等、近年コンテンツの再生に使える種々の携帯型装置は増えている。証明機関から証明書失効リストへアクセスするため、そのような装置をワールドワイドウェブに接続することは可能であるが、多数のユーザは通常、ウェブに毎日接続するのではなく、例えば数週間に1度、新たなコンテンツを入手したり契約を更新したりするときに、これを行う。そのようなユーザにとって、証明機関からより頻繁に証明書失効リストを入手するのは面倒な場合がある。そのようなユーザについて、証明書失効リスト、さらに必要であれば被保護コンテンツへアクセスする場合に記憶装置に提示するホスト証明書を、好ましくは記憶装置自体の非保護領域に記憶する。多数の記憶装置(例えば、フラッシュメモリ)で、記憶装置の非保護領域は記憶装置自体によって管理されるのではなくホスト装置によって管理される。これにより、ユーザはより新しい証明書失効リストを入手するため(ホスト装置を通じて)ウェブに接続する必要がない。ホスト装置は記憶装置の非保護領域からそのような情報を検索し、記憶装置またはメモリ装置に証明書とリストを提示して、記憶装置の被保護コンテンツにアクセスできる。被保護コンテンツにアクセスするための証明書とその対応する証明書失効リストは通常であれば一定の期間にわたって有効であるため、それらが有効である限り、ユーザは最新の証明書または証明書失効リストを入手する必要はない。このため、ユーザは、適度に長い期間にわたって有効な証明書と証明書失効リストを容易く入手でき、最新情報を得るために証明機関に接続する必要はない。   In recent years, various portable devices such as various built-in or independent music players, MP3 players, mobile phones, personal digital assistants (PDAs), notebook computers and the like can be used for content reproduction. Although it is possible to connect such a device to the World Wide Web to access a certificate revocation list from a certification authority, many users typically do not connect to the web every day, for example one week every week Do this every time you get new content or renew your contract. For such users, obtaining certificate revocation lists more frequently from certification authorities can be cumbersome. For such users, a certificate revocation list and, if necessary, a host certificate to be presented to the storage device when accessing protected content are preferably stored in an unprotected area of the storage device itself. In many storage devices (eg, flash memory), the unprotected area of the storage device is not managed by the storage device itself but by the host device. This eliminates the need for the user to connect to the web (through the host device) to obtain a newer certificate revocation list. The host device can retrieve such information from the unprotected area of the storage device, present the certificate and list to the storage device or memory device, and access the protected content of the storage device. Certificates for accessing protected content and their corresponding certificate revocation lists are usually valid for a period of time, so as long as they are valid, the user will have the latest certificate or certificate revocation list. There is no need to obtain. Thus, users can easily obtain certificates and certificate revocation lists that are valid over a reasonably long period of time and do not need to connect to a certification authority to obtain the latest information.

図30および図31のフローチャートには、前述したプロセスが示されている。図30に示すように、ホスト24は、認証のためにメモリ装置に提示する証明書に付随するCRLをメモリ装置10の非保護公開領域から読み出す(ブロック652)。CRLはメモリの非保護領域に記憶されているため、ホストによるCRLの入手より前に認証は必要ない。CRLはメモリ装置の公開領域に記憶されているため、CRLの読み出しはホスト装置24によって管理される。そして、ホストは、CRLをベリファイの対象となる証明書と併せてメモリ装置へ送信し(ブロック654)、メモリ装置10から失敗通知を受け取らなければ次の段階へ進む(ブロック656)。図31を参照し、メモリ装置はホストからCRLと証明書を受信し(ブロック658)、CRLにおける証明書シリアル番号の有無やその他の点(例えば、CRLが失効しているかどうか)をチェックする(ブロック660)。証明書シリアル番号がCRLで見つかるか、あるいはその他の理由で失敗に終わる場合、メモリ装置はホストに失敗通知を送る(ブロック662)。このように同じCRLを異なるホストの認証に使えるため、それぞれのホストはメモリ装置の公開領域に記憶されたCRLを入手する。前述したように、CRLを使ってベリファイする証明書もまた、ユーザの便宜を図るため、好ましくはメモリ装置10の非保護領域に、CRLと併せて、記憶する。しかし、メモリ装置に対して認証する場合に証明書を使えるホストは、証明書の発行を受けたホストのみである。   The processes described above are shown in the flowcharts of FIGS. As shown in FIG. 30, the host 24 reads the CRL associated with the certificate presented to the memory device for authentication from the unprotected public area of the memory device 10 (block 652). Since the CRL is stored in an unprotected area of memory, no authentication is required prior to the CRL being obtained by the host. Since the CRL is stored in the public area of the memory device, reading of the CRL is managed by the host device 24. Then, the host sends the CRL together with the certificate to be verified to the memory device (block 654), and proceeds to the next step if no failure notification is received from the memory device 10 (block 656). Referring to FIG. 31, the memory device receives the CRL and certificate from the host (block 658) and checks for the presence of a certificate serial number in the CRL and other points (eg, whether the CRL has expired) (see FIG. 31). Block 660). If the certificate serial number is found in the CRL or otherwise fails, the memory device sends a failure notification to the host (block 662). Since the same CRL can be used for authentication of different hosts in this way, each host obtains the CRL stored in the public area of the memory device. As described above, a certificate to be verified using the CRL is also preferably stored in the unprotected area of the memory device 10 together with the CRL for the convenience of the user. However, the host that can use the certificate when authenticating to the memory device is only the host that has issued the certificate.

図32に示すようにCRLのフィールドに次回の更新時間が入る場合、装置10のSSAは、現在の時間をこの時間に照らしてチェックし、現在の時間がこの時間を過ぎているかどうかを確認し、過ぎている場合は認証に失敗する。つまり、SSAは好ましくは、現在の時間(またはメモリ装置10でCRLを受信した時間)に照らしてCETをチェックするばかりでなく次回更新の時間もチェックする。   When the next update time is entered in the CRL field as shown in FIG. 32, the SSA of the device 10 checks the current time against this time to see if the current time has passed this time. If it has passed, authentication fails. That is, the SSA preferably checks not only the CET against the current time (or the time when the memory device 10 received the CRL), but also the time of the next update.

前述したように、CRLに含まれる失効済み証明書の識別情報のリストが長くなると、リストの処理(例えば、ハッシュ計算)と、ホストによって提示される証明書のシリアル番号の検索とに時間を要し、処理と検索が順次に行われる場合は特に時間がかかる。このプロセスを加速するために処理と検索とを同時に行う。また、CRLの全体を受信した後でないとCRLの処理と検索にかかれない場合にもプロセスに時間がかかる。発明者らは、CRLの一部分を受信の時点で(その都度)処理し検索すれば、CRLの最終部分を受信するときにはプロセスは完了間際となり、プロセスが捗ることに気づいた。   As described above, when the list of revoked certificate identification information included in the CRL becomes long, it takes time to process the list (for example, hash calculation) and search for the serial number of the certificate presented by the host. However, it takes time especially when processing and retrieval are performed sequentially. Processing and retrieval are performed simultaneously to accelerate this process. The process also takes time when the CRL is not processed and searched until after the entire CRL is received. The inventors have realized that if a part of the CRL is processed and searched at the time of reception (each time), the process will be almost complete when the final part of the CRL is received, and the process will progress.

図33および図34は、前述した失効制度の特徴を示す。認証する側の事業体(例えば、メモリカード等のメモリ装置)では、認証を受けようとする事業体から証明書とCRLを受信する(ブロック702)。暗号化されていないCRLの一部分を処理し(例えば、ハッシュ化し)、それと同時に、提示された証明書の識別情報(例えば、シリアル番号)をそのような部分で検索する。処理された(例えば、ハッシュ化された)CRL部分を完全なハッシュ化CRLに組み立て、認証を受ける側の事業体から受信した部分から復号化されたCRL部分を組み立てることによって形成される完全な復号化・ハッシュ化CRLとこれを比較する。一致しないことが比較で明らかになる場合、認証は失敗に終わる。また、認証する側の事業体は、現在の時間に照らしてCETと次回更新時間の両方をチェックする(ブロック706、708)。提示された証明書の識別情報がCRLに記載されていることが判明する場合、あるいは現在の時間がCETの範囲内にない場合、あるいはCRLの次回更新時間が過ぎている場合にも、認証は失敗に終わる(ブロック710)。実行に際して、ハッシュ化CRL部分と復号化・ハッシュ化CRL部分を組み立てるために記憶する場合、大量の記憶容量は必要ない場合がある。   33 and 34 show the characteristics of the revocation system described above. The authenticating entity (eg, a memory device such as a memory card) receives the certificate and CRL from the entity that is to be authenticated (block 702). A portion of the unencrypted CRL is processed (eg, hashed), and at the same time, the identification information (eg, serial number) of the presented certificate is retrieved in such portion. Full decryption formed by assembling the processed (eg hashed) CRL part into a fully hashed CRL and assembling the decrypted CRL part from the part received from the authenticating entity This is compared with the digitized / hashed CRL. If the comparison reveals no match, the authentication fails. The authenticating entity also checks both the CET and the next update time against the current time (blocks 706, 708). If the identification information of the presented certificate is found to be described in the CRL, or if the current time is not within the CET range, or if the next update time of the CRL has passed, Failure occurs (block 710). In execution, if the hashed CRL part and the decrypted / hashed CRL part are stored for assembly, a large amount of storage capacity may not be required.

認証を受けようとする事業体(例えば、ホスト)は、その証明書とCRLを認証する側の事業体へ送信し(ブロック722)、次の段階へ進む(ブロック724)。これは図34に示されている。
事業体が認証のために証明書連鎖を提示する場合にも前述したものと同様のプロセスを実施できる。この場合、連鎖の中の各証明書とその対応するCRLにつき前述したプロセスを繰り返すことになる。各々の証明書とそのCRLを受信したらその都度処理でき、証明書連鎖の残りの部分とその対応するCRLの受信を待たずにすむ。
The entity (eg, host) seeking authentication sends the certificate and CRL to the authenticating entity (block 722) and proceeds to the next stage (block 724). This is illustrated in FIG.
A process similar to that described above can also be performed when an entity presents a certificate chain for authentication. In this case, the process described above is repeated for each certificate in the chain and its corresponding CRL. As each certificate and its CRL is received, it can be processed each time, eliminating the need to wait for the remainder of the certificate chain and its corresponding CRL.

アイデンティティオブジェクト(IDO)
アイデンティティオブジェクトは、フラッシュメモリカード等のメモリ装置10がRSA鍵対またはその他の暗号IDを記憶するための被保護オブジェクトである。アイデンティティの署名とベリファイ、データの暗号化と復号化に使う暗号IDであればどのようなタイプのものでもアイデンティティオブジェクトに入れることができる。鍵対の公開鍵が真正であることを証明するCAの証明書(または複数のCAの証明書連鎖)もアイデンティティオブジェクトに入れる。アイデンティティオブジェクトを使えば、外部事業体や内部カード事業体(すなわち、アイデンティティオブジェクトの所有者と呼ばれる装置自体、内部のアプリケーション、その他)のアイデンティティの証拠を提出できる。したがって、カードは、チャレンジ・レスポンス機構でホストを認証するためにRSA鍵対またはその他のタイプの暗号IDを使うのではなく、識別情報の証拠としてカードに提示されるデータストリームに署名する。換言すると、アイデンティティオブジェクトはその所有者の暗号IDを収容する。アイデンティティオブジェクトの中の暗号IDにアクセスするにはまず、ホストを認証する必要がある。後述するように、この認証プロセスはACRによって管理される。ホストの認証に成功したら、アイデンティティオブジェクトの所有者は相手方に対して暗号IDを使って自身のアイデンティティを立証できる。例えば、相手方からホストを通じて提示されるデータには暗号ID(例えば、公開−秘密鍵対の秘密鍵)を使って署名できる。アイデンティティオブジェクトの署名済みデータと証明書はアイデンティティオブジェクトの所有者に代わって相手方へ提示される。証明書にある公開−秘密鍵の公開鍵が真正であることはCA(すなわち、信用機関)によって証明されるため、相手方はこの公開鍵が真正であると信用できる。そこで相手方は証明書の公開鍵を使って署名済みデータを復号化し、復号化されたデータを相手方によって送信されたデータと比較できる。復号化されたデータが相手方によって送信されたデータに一致する場合、アイデンティティオブジェクトの所有者は真正の秘密鍵にアクセスできる自称するとおりの事業体であることが分かる。
Identity object (IDO)
The identity object is a protected object for the memory device 10 such as a flash memory card to store an RSA key pair or other cryptographic ID. Any type of cryptographic ID used for identity signing and verification and data encryption and decryption can be included in the identity object. A CA certificate (or certificate chain of multiple CAs) certifying that the public key of the key pair is authentic is also placed in the identity object. Identity objects can be used to provide evidence of the identity of external entities or internal card entities (ie, the device itself, the internal application, etc., called the identity object owner). Thus, rather than using an RSA key pair or other type of cryptographic ID to authenticate the host with a challenge-response mechanism, the card signs a data stream that is presented to the card as evidence of identification information. In other words, the identity object contains the owner's cryptographic ID. To access the cryptographic ID in the identity object, the host must first be authenticated. As will be described later, this authentication process is managed by the ACR. If the host is successfully authenticated, the owner of the identity object can verify his identity to the other party using the cryptographic ID. For example, data presented from the other party through the host can be signed using a cryptographic ID (for example, a private key of a public-private key pair). The signed data and certificate of the identity object are presented to the other party on behalf of the identity object owner. Since the public key of the public-private key in the certificate is authentic by the CA (ie, the credit agency), the other party can trust that the public key is authentic. Therefore, the other party can decrypt the signed data using the public key of the certificate and compare the decrypted data with the data transmitted by the other party. If the decrypted data matches the data sent by the other party, it can be seen that the owner of the identity object is a self-described entity that has access to the authentic secret key.

アイデンティティオブジェクトの第2の用途は、暗号ID、例えばRSA鍵自体を使って、IDOの所有者に指定されたデータを保護することである。このデータをIDOの公開鍵を使って暗号化する。メモリカード等のメモリ装置10は秘密鍵を使ってデータを復号化する。   A second use of the identity object is to protect the data specified by the owner of the IDO using a cryptographic ID, such as the RSA key itself. This data is encrypted using the IDO public key. The memory device 10 such as a memory card decrypts the data using the secret key.

IDOはどのようなタイプのACRでも作成できるオブジェクトである。ACRは、一実施形態において、1つのみのIDOオブジェクトを有していてもよい。データの署名と保護はいずれも、ACRの認証を受ける事業体に対してSSAシステムから提供されるサービスである。IDOの保護水準はACRのログイン認証方式と同じくらい高い。IDOを有することになるACRには任意の認証アルゴリズムを選ぶことができる。IDO運用を良好に保護し得るアルゴリズムを評価し決定するのは作成元(ホスト)である。IDOを有するACRは、IDO公開鍵取得コマンドに応じて証明書連鎖を提供する。   An IDO is an object that can be created with any type of ACR. The ACR may have only one IDO object in one embodiment. Both data signing and protection are services provided by the SSA system to entities that are ACR certified. The protection level of IDO is as high as the ACR login authentication method. Any authentication algorithm can be chosen for the ACR that will have an IDO. It is the creator (host) that evaluates and determines algorithms that can better protect IDO operations. An ACR with IDO provides a certificate chain in response to an IDO public key acquisition command.

データ保護にIDOを使用する場合でも、カードから出力される復号化データにはさらなる保護が必要になることがある。そのような場合には、いずれかの認証アルゴリズムによって確立されるセキュアチャネルの使用がホストに推奨される。
IDOを作成するときには鍵の長さとPKCS#1バージョンを選択する。一実施形態において、PKCS#1バージョン2.1が定める(指数、係数)表現を公開および秘密鍵に使用する。
IDOの作成中に盛り込まれるデータは、一実施形態において、選択された長さを有するRSA鍵対と、公開鍵の信憑性を帰納的に証明する証明書連鎖である。
Even when IDO is used for data protection, the decrypted data output from the card may require further protection. In such cases, the use of a secure channel established by any authentication algorithm is recommended to the host.
When creating the IDO, the key length and the PKCS # 1 version are selected. In one embodiment, the PKCS # 1 version 2.1 defined (exponential, coefficient) representation is used for the public and private keys.
The data included during IDO creation is, in one embodiment, an RSA key pair having a selected length and a certificate chain that inductively proves the authenticity of the public key.

IDOを所有するACRはユーザデータの署名を許可する。これは2つのSSAコマンドを使って果たす。
・Set user data:署名の対象となる自由書式のデータバッファを提供する。
・Get SSA signature:カードはRSA署名を提供する(ACR秘密鍵を使用)。署名の形式とサイズはオブジェクトのタイプに応じてPKCS#1バージョン1.5またはV2.1に従い設定される。
The ACR that owns the IDO permits the signing of user data. This is accomplished using two SSA commands.
Set user data: provides a free-format data buffer to be signed.
Get SSA signature: the card provides an RSA signature (using an ACR private key). The signature format and size are set according to PKCS # 1 version 1.5 or V2.1 depending on the object type.

図35〜図37はIDOを使った操作を示すものであり、ここでメモリ装置10はフラッシュメモリカードであり、このカードがIDOの所有者である。図35は、ホストへ送信されるデータに署名する場合にカードによって実行されるプロセスを示す。図35を参照し、前述したツリー構造のノードに位置するACRの管理下でホストが認証された後(ブロック802)、カードは証明書を求めるホスト要求を待つ(菱形804)。要求を受け取ったカードは証明書を送り、菱形804へ戻り、次のホスト要求を待つ(ブロック806)。カードが所有するIDOの公開鍵を証明するために証明書連鎖を送信する必要がある場合、連鎖の中のすべての証明書がホストへ送信されるまで前述した操作を繰り返す。それぞれの証明書がホストに送信された後、カードはホストから別のコマンドが届くのを待つ(菱形808)。所定の期間内にホストからコマンドが届かなければ、カードは菱形804へ戻る。ホストからデータとコマンドを受け取ったカードは、そのコマンドをチェックし、データに署名するためのものであるかどうかを確認する(菱形810)。データに署名するためのコマンドである場合、カードはIDOの秘密鍵を使ってデータに署名し、署名したデータをホストへ送信し(ブロック812)、菱形804まで戻る。ホストからのコマンドがホストからのデータに署名するためのものでなければ、カードはIDOの秘密鍵を使って受信データを復号化し(ブロック814)、菱形804まで戻る。   35 to 37 show operations using IDO, where the memory device 10 is a flash memory card, and this card is the owner of the IDO. FIG. 35 shows the process performed by the card when signing data sent to the host. Referring to FIG. 35, after the host is authenticated under the control of the ACR located at the node of the tree structure described above (block 802), the card waits for a host request for a certificate (diamond 804). The card that received the request sends a certificate, returns to diamond 804, and waits for the next host request (block 806). If a certificate chain needs to be sent to prove the IDO public key owned by the card, the above operations are repeated until all certificates in the chain are sent to the host. After each certificate is sent to the host, the card waits for another command from the host (diamond 808). If no command is received from the host within a predetermined period, the card returns to diamond 804. The card that has received the data and command from the host checks the command to see if it is for signing the data (diamond 810). If the command is to sign data, the card signs the data using the IDO private key, sends the signed data to the host (block 812), and returns to diamond 804. If the command from the host is not for signing data from the host, the card decrypts the received data using the IDO's private key (block 814) and returns to diamond 804.

図36は、ホストへ送信されるデータにカードが署名する場合にホストによって実行されるプロセスを示す。図36を参照すると、ホストはカードへ認証情報を送信する(ブロック822)。前述したツリー構造のノードに位置するACRの制御下で認証に成功したら、ホストは証明書連鎖を求める要求をカードへ送り、連鎖を受け取る(ブロック824)。カードの公開鍵のベリファイが終わったら、ホストは署名されるデータをカードへ送信し、カードの秘密鍵で署名されたデータを受信する(ブロック826)。   FIG. 36 shows the process performed by the host when the card signs data to be sent to the host. Referring to FIG. 36, the host sends authentication information to the card (block 822). If authentication succeeds under the control of the ACR located at the node of the tree structure described above, the host sends a request for a certificate chain to the card and receives the chain (block 824). When the verification of the card's public key is complete, the host sends the data to be signed to the card and receives the data signed with the card's private key (block 826).

図37は、ホストがカードの公開鍵を使ってデータを暗号化し、暗号化したデータをカードへ送信するときにホストによって実行されるプロセスを示す。図37を参照すると、ホストはカードへ認証情報を送信する(ブロック862)。ACRの管理下で認証に成功したら、ホストはIDOの中にあるカードの公開鍵をベリファイする場合に必要となる証明書連鎖の要求をカードへ送り(ブロック864)、さらにデータを求める要求をカードに送る。IDOの中にあるカードの公開鍵をベリファイした後、ホストはカードのベリファイ済み公開鍵を使ってカードから届いたデータを暗号化し、カードへ送信する(ブロック866、868)。   FIG. 37 shows the process performed by the host when the host encrypts the data using the card's public key and sends the encrypted data to the card. Referring to FIG. 37, the host sends authentication information to the card (block 862). If the authentication is successful under the management of the ACR, the host sends a certificate chain request, which is required to verify the public key of the card in the IDO, to the card (block 864), and further requests for data. Send to. After verifying the public key of the card in the IDO, the host encrypts the data received from the card using the verified public key of the card and sends it to the card (blocks 866, 868).

クエリ
ホストとアプリケーションは、システム操作をの実行する場合に相手方のメモリ装置またはカードについてある種の情報を所有する必要がある。例えば、ホストとアプリケーションは、メモリカードに記憶されたアプリケーションのうち、実行できるアプリケーションがいずれであるかを知る必要がある。ホストにとっての必要情報は公知でない場合があり、これはその情報を所有する権利を有する者とそうでない者があることを意味する。権限を有するユーザと持たないユーザとを区別するには、ホストで使えるクエリを2通り用意する必要がある。
The query host and application need to have some information about the other memory device or card when performing system operations. For example, the host and the application need to know which of the applications stored in the memory card can be executed. The required information for the host may not be known, which means that there are those who have the right to own the information and those who are not. In order to distinguish between an authorized user and a non-authorized user, it is necessary to prepare two types of queries that can be used on the host.

一般情報クエリ
このクエリはシステム公開情報を無制限に放出する。メモリ装置に記憶される機密情報は2つの部分、すなわち共有部分と非共有部分とからなる。機密情報の一部分には個々の事業体にとっての専有情報が入り、それぞれの事業体は自身の専有情報に限りアクセスが認められ、他の事業体の専有機密情報にはアクセスできない。この種の機密情報は共有されず、機密情報の非共有部位または部分を形成する。
General Information Query This query releases system public information indefinitely. The confidential information stored in the memory device consists of two parts: a shared part and a non-shared part. Part of the confidential information contains proprietary information for each entity, and each entity is allowed to access only its own proprietary information, and cannot access the proprietary information of other entities. This type of confidential information is not shared and forms a non-shared part or portion of the confidential information.

カードの中にあるアプリケーションの名前とそのライフサイクル状態等、通常であれば公の情報と考えられるものでも、場合によっては機密とみなされることがある。別の例として、公の情報とされるルートACR名でもSSAの使用するといった場合によっては機密になることがある。このような場合には、一般情報クエリに応じて情報をすべて認証済みユーザに限って利用させ、認証されていないユーザには利用させないようにするためのオプションをシステムに用意しなければならない。このような情報は機密情報の共有部分を占める。ルートACRリスト、すなわち装置上に現在存在する全ルートACRのリストは、機密情報の共有部分の一例となり得る。   Even what is normally considered public information, such as the name of the application on the card and its lifecycle state, may be considered confidential in some cases. As another example, even a root ACR name that is public information may be classified in some cases when SSA is used. In such a case, an option must be prepared in the system so that all information is used only by an authenticated user according to the general information query and not used by an unauthenticated user. Such information occupies a shared part of confidential information. A root ACR list, i.e. a list of all root ACRs currently present on the device, can be an example of a shared portion of sensitive information.

一般情報クエリによる公開情報へアクセスする場合、ホスト/ユーザはACRにログインする必要がない。このため、SSA規格に精通する者であれば誰でも実行可能であり、情報を受け取ることができる。SSAの規定ではセッション番号なしでこのクエリコマンドが処理される。しかし、機密情報の共有部分へのアクセスを望む事業体は最初に、メモリ装置のデータに対するアクセスを制御する制御構造(例えば、ACR)のいずれかを通じて認証を受ける必要がある。認証に成功した事業体は、一般情報クエリを使って機密情報の共有部分にアクセスできるようになる。前述したように、認証プロセスの結果としてアクセスのためのSSAセッション番号またはidが割り当てられる。   When accessing public information through a general information query, the host / user need not log in to the ACR. Therefore, anyone who is familiar with the SSA standard can execute and receive information. According to the SSA rule, this query command is processed without a session number. However, an entity that desires access to a shared portion of sensitive information must first be authenticated through one of the control structures (eg, ACR) that controls access to data in the memory device. Entities that have been successfully authenticated will be able to access the shared portion of sensitive information using general information queries. As described above, an SSA session number or id for access is assigned as a result of the authentication process.

非公開情報クエリ
個々のACRとそのシステムアクセスおよび資産に関する私的情報は非公開とされ、明確な認証を必要とする。この種の情報クエリで許可を得るには、ACRのログインと認証(認証がACRで指定されている場合)が事前に必要になる。このクエリにはSSAセッション番号が必要である。
2種類のクエリを詳述する前に、クエリを実行する現実的な解決策としてインデックスグループの概念を説明することが有益である。
Private Information Query Private information about individual ACRs and their system access and assets is private and requires clear authentication. To obtain permission with this type of information query, ACR login and authentication (if authentication is specified in the ACR) is required in advance. This query requires an SSA session number.
Before elaborating on the two types of queries, it is useful to explain the concept of index groups as a practical solution for executing queries.

インデックスグループ
ポテンシャルSSAホストで実行するアプリケーションには、読み出しの対象となるセクタ数を指定することがシステムドライバとホスト上のオペレーティングシステム(OS)から求められる。これは、ホストアプリケーションがSSA読み出し操作のたびに読み出しセクタ数を把握する必要があることを意味する。
クエリ操作で供給される情報は、一般的にはこれを要求する側にとって未知の情報であるため、ホストアプリケーションがクエリを発行し、その操作に必要なセクタの量を推測するのは困難である。
For an application executed on the index group potential SSA host, it is required from the system driver and the operating system (OS) on the host to specify the number of sectors to be read. This means that the host application needs to know the number of read sectors for each SSA read operation.
Since the information supplied by the query operation is generally unknown information to the requester, it is difficult for the host application to issue a query and to estimate the amount of sectors required for the operation. .

この問題を解決するため、SSAのクエリ出力バッファは各クエリ要求につき1つのみのセクタ(512バイト)からなる。出力情報の一部をなすオブジェクトはインデックスグループと呼ばれるものに編成される。オブジェクトのバイトサイズはオブジェクトのタイプによって異なり、そこから1セクタに収まるオブジェクトの数が明らかになる。これによってオブジェクトのインデックスグループが決まる。オブジェクトのサイズが20バイトである場合、このオブジェクトのインデックスグループは25オブジェクトまで収容される。そのようなオブジェクトが全部で56個ある場合、それらは3つのインデックスグループに編成され、第1のインデックスグループの先頭はオブジェクト「0」(第1のオブジェクト)となり、第2のインデックスグループの先頭はオブジェクト「25」となり、第3の最終インデックスグループの先頭はオブジェクト50となる。   To solve this problem, the SSA query output buffer consists of only one sector (512 bytes) for each query request. Objects that form part of the output information are organized into so-called index groups. The byte size of an object varies depending on the type of object, from which the number of objects that fit in one sector becomes clear. This determines the index group of the object. When the size of the object is 20 bytes, up to 25 objects can be stored in the index group of this object. If there are a total of 56 such objects, they are organized into three index groups, the first index group starts with object “0” (first object), and the second index group starts with The object is “25”, and the head of the third final index group is the object 50.

システムクエリ(一般情報クエリ)
このクエリは、装置がサポートするSSAシステムと、ツリー状に構成された現行のシステムと、装置で実行するアプリケーションとについての一般公開情報を提供する。後述するACRクエリ(非公開クエリ)と同様に、システムクエリは種々のクエリオプションを提供するように構成されている。
・General:サポートされたSSAバージョン
・SSA Applications:現在装置に存在する全SSAアプリケーションのリストで、アプリケーションの実行状態を含む。
System query (general information query)
This query provides publicly available information about the SSA system that the device supports, the current system configured in a tree, and the applications that run on the device. Similar to the ACR query (private query) described below, the system query is configured to provide various query options.
General: Supported SSA versions SSA Applications: A list of all SSA applications that currently exist on the device, including application execution status.

前述した情報は公開情報である。ACRクエリと同様に、ホストがクエリ出力バッファのための読み出しセクタ数を知らずにすませるため、装置からは1セクタが送り返され、ホストが引き続きさらなるインデックスグループを照会できる。インデックスグループ「0」でルートACRオブジェクトの数が出力バッファサイズの数を超過する場合、ホストは後続のインデックスグループ(「1」)で別のクエリ要求を送ることができる。   The information described above is public information. Similar to the ACR query, the host does not know the number of read sectors for the query output buffer, so the device can send back one sector and the host can continue to query additional index groups. If the number of root ACR objects in index group “0” exceeds the number of output buffer sizes, the host can send another query request in the subsequent index group (“1”).

ACRクエリ(非公開情報クエリ)
SSAのACRクエリコマンドは、鍵ID、アプリケーションID、パーティション、子ACR等、ACRのシステムリソースに関する情報をACRユーザに供給するためのものである。そのクエリ情報はログインされたACRに関するもののみであり、システムツリー上の他のACRに関するものはない。換言すると、アクセスは、機密情報のうち、該当するACRの許可のもとでアクセス可能な部分に限られる。
ユーザが照会できるACRオブジェクトには3通りある。
・パーティション:IDとアクセス権(所有者、読み出し、書き込み)。
・鍵IDとアプリケーションID:IDとアクセス権(所有者、読み出し、書き込み)。
・子ACR:直接の子にあたるACRのACRおよびAGP名。
・IDOとセキュアデータオブジェクト(後述):IDとアクセス権(所有者、読み出し、書き込み)。
ACR query (private information query)
The SSA ACR query command is used to supply information related to ACR system resources such as a key ID, an application ID, a partition, and a child ACR to an ACR user. The query information is only for the logged-in ACR, not for other ACRs on the system tree. In other words, the access is limited to a portion of the confidential information that can be accessed under the permission of the corresponding ACR.
There are three ACR objects that a user can query.
Partition: ID and access rights (owner, read, write).
Key ID and application ID: ID and access right (owner, read, write).
Child ACR: ACR and AGP name of the ACR that is the direct child.
IDO and secure data object (described later): ID and access right (owner, read, write).

ACRに結び付いたオブジェクトの数は様々に異なる場合があり、情報は512バイト、すなわち1セクタを上回ることがある。オブジェクトの数が事前に分からない限り、ユーザはリストすべてを得るために装置内のSSAシステムから読み出される必要があるセクタの数を知ることはできない。そこで前述したシステムクエリの場合と同様に、SSAシステムによって提供される各オブジェクトリストはインデックスグループに分割される。インデックスグループはセクタに収まるオブジェクトの数であり、例えば装置内のSSAシステムからホストにかけて1セクタで送信できるオブジェクトの数である。これにより、装置内のSSAシステムは要求されたインデックスグループを1セクタで送信できる。ホスト/ユーザは、照会したオブジェクトのバッファ、バッファ内のオブジェクト数を受け取ることになる。バッファが一杯である場合、ユーザは次のオブジェクトインデックスグループを照会できる。   The number of objects associated with the ACR can vary widely, and the information can exceed 512 bytes, ie, one sector. Unless the number of objects is known in advance, the user cannot know the number of sectors that need to be read from the SSA system in the device to get the entire list. Therefore, as in the case of the system query described above, each object list provided by the SSA system is divided into index groups. The index group is the number of objects that can fit in the sector, for example, the number of objects that can be transmitted in one sector from the SSA system in the apparatus to the host. As a result, the SSA system in the apparatus can transmit the requested index group in one sector. The host / user will receive the buffer of the queried object and the number of objects in the buffer. If the buffer is full, the user can query the next object index group.

図38は、一般情報クエリをともなう操作を示すフローチャートである。図38を参照すると、事業体から一般情報クエリを受け取ったSSAシステムは(902)、その事業体が認証済みかどうかを判断する(菱形904)。認証済みである場合には、システムは公開情報と機密情報の共有部分とを事業体に供給する(ブロック906)。認証済みでなければ、システムは公開情報のみを事業体に供給する(ブロック908)。   FIG. 38 is a flowchart showing an operation involving a general information query. Referring to FIG. 38, the SSA system that received the general information query from the business entity (902) determines whether the business entity has been authenticated (diamond 904). If so, the system provides the public information and the shared portion of the confidential information to the entity (block 906). If not, the system provides only public information to the entity (block 908).

図39は、非公開情報クエリをともなう操作を示すフローチャートである。図39を参照すると、事業体から非公開情報クエリを受け取ったSSAシステムは(922)、その事業体が認証済みかどうかを判断する(菱形924)。認証済みである場合には、システムは事業体に機密情報を供給する(ブロック926)。認証済みでない場合には、システムは機密情報に対する事業体のアクセスを拒否する(ブロック(928)。   FIG. 39 is a flowchart showing an operation involving a private information query. Referring to FIG. 39, the SSA system that received the private information query from the business entity (922) determines whether the business entity has been authenticated (diamond 924). If so, the system provides sensitive information to the entity (block 926). If not authenticated, the system denies the entity access to the confidential information (block (928)).

フィーチャセットエクステンション(FSE)
多くの場合、データ処理活動(例えば、DRMライセンスオブジェクト検査)をカード上のSSAの内部で実行できることは大変有利である。その結果、データ処理タスクのすべてをホストで実行する代替的な解決策に比べてより安全でより効率的なシステムとなり、ホストへの依存度も低くなる。
Feature set extension (FSE)
In many cases, it is very advantageous to be able to perform data processing activities (eg, DRM license object inspection) inside the SSA on the card. The result is a safer and more efficient system and less dependency on the host than alternative solutions that perform all of the data processing tasks on the host.

SSAセキュリティシステムは、メモリカードによって記憶され、管理され、保護されるオブジェクトのアクセス、使用、収集を制御する一連の認証アルゴリズムと認可方針とを備える。アクセスを得たホストは、メモリ装置に記憶されたデータに対して処理を行い、メモリ装置に対するアクセスはSSAによって制御される。しかし、データは本質的に用途によって大いに異なるため、装置に記憶されたデータを取り扱うわけではないSSAではデータ形式またはデータ処理は決まっていない。   The SSA security system comprises a series of authentication algorithms and authorization policies that control the access, use and collection of objects stored, managed and protected by the memory card. The host that has gained access processes the data stored in the memory device, and access to the memory device is controlled by the SSA. However, since the data varies substantially depending on the application, the data format or data processing is not determined in SSA that does not handle the data stored in the device.

本発明の一実施形態は、通常であればホストによって果たされる機能の一部をメモリカードで実行する形にSSAシステムを強化できるという認識に基づく。そこで、ホストのソフトウェア機能のいくつかは、2つの部分、すなわち引き続きホストによって果たされる部分と、カードによって果たされる部分とに分かれる場合がある。こうすることで多くの用途にとってデータ処理の安全性と効率性が向上する。この目的のため、FSEと呼ばれる機構を加えることによってSSAの能力を高める場合がある。このようにカードによって実行されるFSEのホストアプリケーションを、ここでは内部アプリケーションまたは装置内部アプリケーションと呼ぶ場合がある。   One embodiment of the present invention is based on the recognition that an SSA system can be enhanced in such a way that some of the functions normally performed by a host are performed on a memory card. Thus, some of the host's software functions may be divided into two parts: the part that is subsequently performed by the host and the part that is performed by the card. This improves the safety and efficiency of data processing for many applications. For this purpose, the ability of SSA may be increased by adding a mechanism called FSE. The FSE host application executed by the card in this way may be referred to as an internal application or an apparatus internal application herein.

強化SSAシステムは、カードの認証およびアクセス制御を提供する基本SSAコマンド群を、カードアプリケーションの導入により拡張する機構を提供する。カードアプリケーションは、SSA以外のサービスを(例えば、DRMスキーム、eコマーストランザクション)を実行することになっている。SSAフィーチャセットエクステンション(FSE)は、独自開発のデータ処理ソフトウェア/ハードウェアモジュールで標準SSAセキュリティシステムを強化する機構である。SSA FSEシステムのサービスにより、ホスト装置は前述したクエリで得られる情報のほかに、カードで使用可能なアプリケーションを照会し、特定のアプリケーションを選択し、これと通信できる。前述した一般クエリと非公開クエリをこの目的に使うこともできる。   The enhanced SSA system provides a mechanism for extending the basic SSA commands that provide card authentication and access control with the introduction of card applications. The card application is to execute services other than SSA (eg, DRM scheme, e-commerce transaction). The SSA Feature Set Extension (FSE) is a mechanism that enhances the standard SSA security system with proprietary data processing software / hardware modules. With the service of the SSA FSE system, in addition to the information obtained by the above-described query, the host device can query applications available on the card, select a specific application, and communicate with it. The general and private queries described above can also be used for this purpose.

SSA FSEでカード機能群を拡張するには2つの方法を使う。
・サービス提供:認可された事業体が通信パイプと呼ばれる独自のコマンドチャネルを使って内部アプリケーションと直に通信することによって実現する。
・SSA標準アクセス制御方針の拡張:内部の被保護データオブジェクト(CEK、後述するセキュアデータオブジェクト、すなわちSDO等)に内部カードアプリケーションを関連付けさせることによって実現する。そのようなオブジェクトにアクセスするときに所定の標準SSA方針が満たされる場合は関連付けアプリケーションが起動して、標準SSA方針に加えて少なくとも1つの条件を課す。この条件は好ましくは、標準SSA方針とは対峙しない。この追加条件も満たされる場合に限りアクセスが許諾される。FSEの能力をさらに詳述する前に、FSEの構造的態様と通信パイプとSDOをここで取り上げる。
Two methods are used to expand the card function group in SSA FSE.
Service provision: This is realized by an authorized entity communicating directly with an internal application using a unique command channel called a communication pipe.
Extension of SSA standard access control policy: This is realized by associating an internal card application with an internal protected data object (CEK, a secure data object described later, ie, SDO). If a predetermined standard SSA policy is satisfied when accessing such an object, the association application is launched to impose at least one condition in addition to the standard SSA policy. This condition preferably does not conflict with the standard SSA policy. Access is granted only if this additional condition is also met. Before further elaborating on the capabilities of the FSE, the structural aspects of the FSE and the communication pipe and SDO will be addressed here.

SSAモジュールと関連するモジュール
図40Aは、ホスト装置24へ接続されたメモリ装置10(フラッシュメモリカード等)におけるシステムアーキテクチャ1000の機能ブロック図であり、本発明の一実施形態を例示するものである。カード20のメモリ装置にあるソフトウェアモジュールの主要コンポーネントは次のとおりである。
Modules Associated with SSA Modules FIG. 40A is a functional block diagram of system architecture 1000 in memory device 10 (such as a flash memory card) connected to host device 24, illustrating one embodiment of the present invention. The main components of the software module in the memory device of the card 20 are as follows.

SSAトランスポート層1002
SSAトランスポート層はカードプロトコルに依拠する。これはカード10のプロトコル層でホスト側SSA要求(コマンド)を処理し、処理したものをSSM APIに送る。ホスト−カードの同期とSSAコマンドの識別はすべてこのモジュールで行われる。ホスト24とカード10との間のSSAデータ転送もトランスポート層がすべて担当する。
SSA transport layer 1002
The SSA transport layer relies on the card protocol. This processes the host side SSA request (command) in the protocol layer of the card 10 and sends the processed one to the SSM API. Host-card synchronization and SSA command identification are all done in this module. The transport layer is also responsible for all SSA data transfer between the host 24 and the card 10.

セキュアサービスモジュールコア(SSMコア)1004
このモジュールはSSAの実施例の重要部分である。SSMコアはSSAアーキテクチャを実装する。より具体的に、SSMコアはSSAツリーと、ACRシステムと、前述したシステムを構成する全ルールを実行する。SSMコアモジュールは暗号ライブラリ1012を使ってSSAセキュリティと暗号化、復号化、ハッシュ計算等の暗号機能を支援する。
Secure service module core (SSM core) 1004
This module is an important part of the SSA embodiment. The SSM core implements the SSA architecture. More specifically, the SSM core executes the SSA tree, the ACR system, and all the rules that make up the system described above. The SSM core module uses the cryptographic library 1012 to support SSA security and cryptographic functions such as encryption, decryption, and hash calculation.

SSMコアAPI1006
これは、ホストと内部アプリケーションがSSMコアと連絡をとりながらSSA操作を実行するところの層である。図40Aに示すように、ホスト24と内部装置アプリケーション1010はいずれも同じAPIを使用する。
SSM core API1006
This is the layer where the host and internal applications perform SSA operations in contact with the SSM core. As shown in FIG. 40A, both the host 24 and the internal device application 1010 use the same API.

セキュアアプリケーション管理モジュール(SAMM)1008
SAMMはSSAシステムの一部ではないが、SSAシステムと連絡をとりながら内部装置アプリケーションを制御するカードの重要モジュールである。
実行する内部装置アプリケーションはいずれもSAMMによって管理される。
1.アプリケーションライフサイクルの監視と制御
2.アプリケーションの初期化
3.アプリケーション/ホスト/SSAインターフェイス
Secure Application Management Module (SAMM) 1008
SAMM is not part of the SSA system, but is an important card module that controls internal device applications while communicating with the SSA system.
Any internal device application to be executed is managed by SAMM.
1. 1. Application life cycle monitoring and control 2. Application initialization Application / Host / SSA interface

装置内部アプリケーション1010
これは、カード側での実行が許可されたアプリケーションである。SAMMによって管理され、SSAシステムにアクセスすることがある。ホスト側アプリケーションと内部アプリケーションとの間の通信パイプはSSMコアから提供される。DRMアプリケーションや以降で詳述する使い捨てパスワード(OTP)アプリケーションは内部実行アプリケーションの一例である。
Device internal application 1010
This is an application that is allowed to be executed on the card side. It is managed by SAMM and may access the SSA system. The communication pipe between the host side application and the internal application is provided from the SSM core. The DRM application and the disposable password (OTP) application described in detail below are examples of an internal execution application.

装置管理システム(DMS)1011
これは、カードのシステムおよびアプリケーションファームウェアを更新したり、出荷後(一般的に後発行と呼ばれる)モードでサービスを追加/削除したりするためのプロセスおよびプロトコルを収容するモジュールである。
Device management system (DMS) 1011
This is a module that contains processes and protocols for updating the card's system and application firmware, and adding / removing services in a post-shipment (commonly called post-issue) mode.

図40Bは、SSMコア1004の内部ソフトウェアモジュールの機能ブロック図である。図40Bに示すように、コア1004はSSAコマンド処理部1022を含む。処理部1022は、ホストまたは装置内部アプリケーション1010から発行されたSSAコマンドを解析した後、SSA管理部1024に引き渡す。AGPやACR等のSSAセキュリティデータ構造や、すべてのSSAのルールと方針はいずれもSSAデータベース1026に記憶される。SSA管理部1024は、データベース1026に記憶されたACRやAGPやその他の制御構造によって制御を実施する。IDOやセキュアデータオブジェクトをはじめとするその他のオブジェクトもSSAデータベース1026に記憶される。SSA管理部1024は、データベース1026に記憶されたACRやAGPやその他の制御構造に制御を実施する。SSAが関与しない非セキュア操作はSSA非セキュア操作モジュール1028によって処理される。SSAアーキテクチャのもとでのセキュア操作はSSAセキュア操作モジュール1030によって処理される。モジュール1032は、モジュール1030を暗号ライブラリ1012へ接続するインターフェイスである。1034は、モジュール1026および1028を図1のフラッシュメモリ20へ接続する層である。   FIG. 40B is a functional block diagram of the internal software module of the SSM core 1004. As shown in FIG. 40B, the core 1004 includes an SSA command processing unit 1022. The processing unit 1022 analyzes the SSA command issued from the host or device internal application 1010 and then delivers it to the SSA management unit 1024. All SSA security data structures, such as AGP and ACR, and all SSA rules and policies are stored in the SSA database 1026. The SSA management unit 1024 performs control using ACR, AGP, and other control structures stored in the database 1026. Other objects such as IDO and secure data objects are also stored in the SSA database 1026. The SSA manager 1024 controls the ACR, AGP, and other control structures stored in the database 1026. Non-secure operations that do not involve SSA are handled by SSA non-secure operation module 1028. Secure operations under the SSA architecture are handled by the SSA secure operation module 1030. The module 1032 is an interface for connecting the module 1030 to the cryptographic library 1012. Reference numeral 1034 denotes a layer for connecting the modules 1026 and 1028 to the flash memory 20 of FIG.

通信(またはパススルー)パイプ
パススルーパイプオブジェクトは、SSMコアとSAMMの制御下で認可されたホスト側事業体と内部アプリケーションとの通信を可能にする。ホストと内部アプリケーションとのデータ転送はSENDコマンドとRECEIVEコマンドで行われる(後述)。実際のコマンドはアプリケーションによって異なる。パイプを作る事業体(ACR)は、パイプ名とチャネルの開通によってつながるアプリケーションのIDとを提供することが必要になる。他の被保護オブジェクトと同様に、このACRがパイプの所有者になり、標準の委譲ルールおよび制限に従って他のACRに使用権や所有権を委譲できる。
Communication (or Pass-Through) Pipe The pass-through pipe object allows communication between an authorized host-side entity and an internal application under the control of the SSM core and SAMM. Data transfer between the host and the internal application is performed by a SEND command and a RECEIVE command (described later). The actual command depends on the application. The entity that creates the pipe (ACR) will need to provide the pipe name and the ID of the application that is linked by opening the channel. Like other protected objects, this ACR becomes the owner of the pipe and can delegate usage and ownership to other ACRs according to standard delegation rules and restrictions.

認証済みの事業体は、そのACAMでCREATE_PIPE権限が設定されている場合にパイプオブジェクトの作成が許可されることになる。内部アプリケーションとの通信は、そのPCRでパイプ書き込み権限またはパイプ読み出し権限が設定されている場合に限り許可される。所有権とアクセス権の委譲は、事業体がパイプの所有者か、あるいはそのPCRでアクセス権委譲が設定されている場合に限り許可される。他のすべての権限と同様に、別のACRへ所有権を委譲する当初の所有者は、好ましくはこの装置アプリケーションに対するすべての権限から引き離される。   An authenticated business entity is permitted to create a pipe object when the CREATE_PIPE authority is set in the ACAM. Communication with the internal application is permitted only when pipe write authority or pipe read authority is set in the PCR. Ownership and delegation of access rights are allowed only if the entity is the owner of the pipe or if the delegation of access rights is set in the PCR. As with all other authorities, the original owner who delegates ownership to another ACR is preferably withdrawn from all authorities for this device application.

好ましくは、ある特定のアプリケーションにつき1つのみの通信パイプを作成する。第2のパイプを作成し、接続済みのアプリケーションにそれを接続する試みは、好ましくはSSMシステム1000によって拒否される。したがって、好ましくは、装置内部アプリケーション1010のいずれか1つと通信パイプとの間に1対1の関係がある。しかし、(委譲機構により)複数のACRが1つの装置内部アプリケーションと通信する場合がある。(別々のアプリケーションに接続された複数パイプの委譲または所有権により)1つのACRが数個の装置アプリケーションと通信する場合がある。通信パイプ間のクロストークをなくすため、別々のパイプを制御するACRは、好ましくは全く別個のツリーノードに位置する。   Preferably, only one communication pipe is created for a particular application. Attempts to create the second pipe and connect it to the connected application are preferably rejected by the SSM system 1000. Therefore, there is preferably a one-to-one relationship between any one of the device internal applications 1010 and the communication pipe. However, multiple ACRs may communicate with a single device internal application (via the delegation mechanism). One ACR may communicate with several device applications (due to the delegation or ownership of multiple pipes connected to different applications). In order to eliminate crosstalk between communication pipes, the ACRs controlling different pipes are preferably located in completely separate tree nodes.

ホストと特定のアプリケーションとのデータ転送は次のコマンドを使って行う。
・書き込みパススルー:ホストから装置内部アプリケーションへ非定型データバッファを転送する。
・読み出しパススルー:ホストから装置内部アプリケーションへ非定型データバッファを転送し、内部処理が完了したら非定型データバッファをホストに戻す。
Data transfer between the host and a specific application is performed using the following command.
Write pass-through: Transfers an atypical data buffer from the host to the device internal application.
Read pass-through: The atypical data buffer is transferred from the host to the device internal application, and the atypical data buffer is returned to the host when the internal processing is completed.

書き込みパススルーコマンドと読み出しパススルーコマンドでは、ホストが通信しようとする相手方の装置内部アプリケーション1008のIDをパラメータとして提供する。事業体の権限をベリファイし、要求される側のアプリケーションにつながるパイプを使用する権限が要求する側の事業体(すなわち、この事業体が使っているセッションを運営するACR)にある場合、データバッファを解釈し、コマンドを実行する。
この通信方法により、ホストアプリケーションはSSA ACRセッションチャネルを通じて内部装置アプリケーションにベンダー固有/独自なコマンドを引き渡すことができる。
In the write pass-through command and the read pass-through command, the ID of the other device internal application 1008 with which the host is to communicate is provided as a parameter. Data buffer if the entity's authority is verified and the authority to use the pipe leading to the requested application is on the requesting entity (ie, the ACR that manages the session used by this entity) And execute the command.
This communication method allows the host application to pass vendor specific / unique commands to the internal device application through the SSA ACR session channel.

セキュアデータオブジェクト(SDO)
SDOは、FSEと併せて使用できる便利なオブジェクトである。
SDOは汎用容器として機密情報を安全に記憶する役割を果たす。CEKオブジェクトと同様に、SDOはACRが所有し、アクセス権と所有権はACR間で委譲できる。SDOは所定の規制に従って保護され使用されるデータを収容し、オプションとして、装置内部アプリケーション1008へ至るリンクを有する。機密データは、好ましくはSSAシステムによって使用されることも解釈されることもなく、オブジェクトの所有者とユーザがこれを使用し、解釈する。換言すると、SSAシステムは取り扱うデータの情報を認識しない。このため、オブジェクトの中にあるデータの所有者とユーザは、ホストとデータオブジェクトとの間でデータが受け渡しされるときにSSAシステムとの結び付きによって機密情報が失われることをさほど心配せずにすむ。SDOオブジェクトはホストシステム(または内部アプリケーション)によって作成され、CEKを作成する場合と同様に、文字列IDが割り当てられる。作成する場合にホストは名前のほかに、SDOへリンクするアプリケーションのアプリケーションIDと、SSAによって記憶され、保全性ベリファイが行われ、検索されるデータブロックとを提供する。
Secure data object (SDO)
SDO is a convenient object that can be used in conjunction with FSE.
The SDO serves as a general-purpose container that securely stores confidential information. Like CEK objects, SDOs are owned by ACR, and access and ownership can be delegated between ACRs. The SDO contains data that is protected and used according to predetermined regulations, and optionally has a link to the device internal application 1008. Sensitive data is preferably used and interpreted by the owner and user of the object without being used or interpreted by the SSA system. In other words, the SSA system does not recognize information on the data handled. For this reason, the owner and user of the data in the object do not have to worry too much about the loss of sensitive information due to the association with the SSA system when data is passed between the host and the data object. . The SDO object is created by the host system (or internal application), and a character string ID is assigned as in the case of creating CEK. When creating the host, in addition to the name, it provides the application ID of the application linked to the SDO and the data block that is stored by SSA, integrity verified and retrieved.

SDOは、CEKと同様に、好ましくはSSAセッションの中でのみ作成される。このセッションを開放するために使われるACRがSDOの所有者となり、SDOを削除する権利や機密データを読み書きする権利を有するほかにも、SDOの所有権やこれにアクセスする権限を別のACR(子ACRまたは同一AGP内のACR)に委譲する権利を有する。   SDO, like CEK, is preferably created only during an SSA session. The ACR used to release this session becomes the owner of the SDO. In addition to having the right to delete the SDO and the right to read and write confidential data, the ownership of the SDO and the right to access it can be controlled by another ACR ( A child ACR or an ACR within the same AGP).

書き込み操作と読み出し操作はSDOの所有者に限定される。書き込み操作は既存のSDOオブジェクトデータを提示されたデータバッファで上書きする。読み出し操作はSDOのデータ記録一式を検索する。   Write and read operations are limited to the SDO owner. A write operation overwrites existing SDO object data with the presented data buffer. A read operation retrieves a set of SDO data records.

正式なアクセス権限を有する所有者以外のACRには、SDOのアクセス操作が許可される。次の操作が定められている。
・SDO Set、アプリケーションIDの指定:データはこのアプリケーションIDを有する内部SSAアプリケーションによって処理される。アプリケーションはSDOとの関連付けによって起動する。オプションとして、アプリケーションがSDOオブジェクトの書き込みを行う場合がある。
・SDO Set、アプリケーションIDの不在:このオプションは無効であり、不正コマンドエラーを促す。Setコマンドにはカードで実行する内部アプリケーションが必要となる。
・SDO Get、アプリケーションIDの指定:要求はこのアプリケーションIDを有する装置内部アプリケーションによって処理される。アプリケーションはSDOとの関連付けによって起動する。出力は、指定がなくとも、要求する側へ送り返される。オプションとして、アプリケーションがSDOオブジェクトの読み出しを行う場合がある。
・SDO Get、アプリケーションIDの不在:このオプションは無効であり、不正コマンドエラーを促す。Getコマンドにはカードで実行する内部アプリケーションが必要となる。
・SDO関連の権限:ACRにはSDOの所有者になるものと、アクセス権限(Set、Get、または両方)を有するのみのものとがある。ACRには、自身が所有しないSDOに対する自身のアクセス権を別のACRへ譲渡することが許可される。ACAM権限を有するACRにはSDOの作成とアクセス権の委譲が明示的に許可される。
A SDO access operation is permitted to ACRs other than the owner who has a formal access authority. The following operations are defined.
SDO Set, Application ID designation: Data is processed by an internal SSA application with this application ID. The application is activated by association with the SDO. As an option, the application may write the SDO object.
SDO Set, absence of application ID: This option is invalid and prompts an illegal command error. The Set command requires an internal application to be executed on the card.
SDO Get, Application ID designation: The request is processed by the device internal application with this application ID. The application is activated by association with the SDO. The output is sent back to the requesting party even if not specified. As an option, the application may read the SDO object.
-SDO Get, absence of application ID: This option is invalid and prompts an illegal command error. The Get command requires an internal application to be executed on the card.
SDO-related authority: Some ACRs have SDO ownership and others have only access authority (Set, Get, or both). An ACR is allowed to transfer his access rights to SDOs he does not own to another ACR. An ACR having ACAM authority is explicitly allowed to create an SDO and delegate access rights.

内部ACR
内部ACRはPCRを有するACRに類似するが、装置10にとって外部の事業体はこのACRにログインできない。代替的に、これの管理下にあるオブジェクトか、あるいはこのオブジェクトと関連付けするアプリケーションが呼び出されるときに、図40BのSSA管理部1024が自動的に内部ACRにログインする。アクセスを試みる事業体はカードまたはメモリ装置にとって内部の事業体であるため、認証の必要はない。SSA管理部1024は内部通信を可能にするために内部ACRにセッション鍵を渡すことになる。
Internal ACR
An internal ACR is similar to an ACR with a PCR, but no external entity for the device 10 can log in to this ACR. Alternatively, the SSA management unit 1024 of FIG. 40B automatically logs into the internal ACR when an object under its management or an application associated with this object is called. Since the entity attempting access is an entity internal to the card or memory device, no authentication is required. The SSA management unit 1024 passes a session key to the internal ACR to enable internal communication.

これより使い捨てパスワード生成とデジタル権利管理という2つの例を引いてFSEの能力を例示する。使い捨てパスワード生成の例を説明する前に、二因子認証のテーマを取り上げる。   Two examples of disposable password generation and digital rights management will be drawn to illustrate the capabilities of FSE. Before explaining the example of single-use password generation, let's take up the theme of two-factor authentication.

OTP実施形態
二因子認証(DFA)
DFAは、標準のユーザ信用証明(具体的にはユーザ名とパスワード)に追加の秘密、すなわち「第2の因子」を加えることにより、ウェブサービスサーバ等への私的なログインでセキュリティを高める認証プロトコルである。この第2の秘密は通常、ユーザが所有する物理的で安全なトークンに記憶される。ユーザはログインの過程でログイン信用証明の一部として所有の証拠を提供する必要がある。所有の証明には使い捨てパスワード(OTP)がよく使われ、これはセキュアトークンで生成され出力される、1回のログインのみで通用するパスワードである。トークンなしでOTPを計算するのは暗号技術的に不可能であるため、ユーザが正しいOTPを提供できる場合、これをもってトークン所有の十分な証拠とみなされる。OTPは1回のログインのみで通用し、前のログインから得た古いパスワードは通用しないことになるため、ユーザはログインのときにトークンを所有していなければならない。
OTP embodiment
Two-factor authentication (DFA)
DFA adds authentication to standard user credentials (specifically usernames and passwords) by adding an additional secret, or “second factor”, to enhance security with private logins to web service servers, etc. Protocol. This second secret is usually stored in a physical and secure token owned by the user. The user needs to provide proof of ownership as part of login credentials during the login process. A disposable password (OTP) is often used for proof of possession, which is a password that is generated and output with a secure token and that can be used with only one login. Since it is cryptographically impossible to calculate an OTP without a token, this is considered sufficient evidence of token ownership if the user can provide the correct OTP. Since the OTP works only with one login and the old password obtained from the previous login does not work, the user must possess the token at the time of login.

以降のセクションで説明する製品は、SSAのセキュリティデータ構造と、一連のOTPで次のパスワードを計算するFSE設計とを利用しながら、フラッシュメモリでそれぞれ別々のパスワード系列(異なるウェブサイトへのログインに使用)を生成する複数の「仮想」セキュアトークンを実行するものである。図41は、このシステムのブロック図を示す。   The products described in the following sections each use a separate password series (in order to log in to different websites) in flash memory, utilizing the SSA security data structure and the FSE design that calculates the next password with a series of OTPs. Use multiple) “virtual” secure tokens. FIG. 41 shows a block diagram of this system.

システム一式1050は、認証サーバ1052と、インターネットサーバ1054と、トークン1058を有するユーザ1056とを備える。最初のステップでは、認証サーバとユーザとの間で共有秘密を取り決める(シード提供とも呼ばれる)。ユーザ1056は秘密またはシードの発行を要求し、これをセキュアトークン1058に記憶する。次のステップでは、発行された秘密またはシードを特定のウェブサービスサーバに結合する。これを果たしたら認証に取りかかることができる。ユーザはOTPの生成をトークンに指示する。OTPはユーザ名とパスワードと併せてインターネットサーバ1054へ送信される。インターネットサーバ1054は認証サーバ1052にOTPを転送し、ユーザアイデンティティのベリファイを依頼する。認証サーバもOTPを生成するが、これはトークンとの共有秘密から生成されるため、トークンから生成されたOTPに一致することになる。一致が判明する場合、ユーザアイデンティティはベリファイされ、認証サーバがインターネットサーバ1054へ肯定応答を返すとユーザログインプロセスは完了することになる。   The system suite 1050 includes an authentication server 1052, an Internet server 1054, and a user 1056 having a token 1058. In the first step, a shared secret is negotiated between the authentication server and the user (also called seed provisioning). User 1056 requests the issuance of a secret or seed and stores it in secure token 1058. The next step is to bind the issued secret or seed to a specific web service server. If this is achieved, authentication can be started. The user instructs the token to generate an OTP. The OTP is transmitted to the Internet server 1054 together with the user name and password. The Internet server 1054 transfers the OTP to the authentication server 1052 and requests verification of the user identity. The authentication server also generates an OTP, which is generated from the shared secret with the token, and therefore matches the OTP generated from the token. If a match is found, the user identity is verified and the user login process is complete when the authentication server returns an acknowledgment to the Internet server 1054.

FSEによるOTP生成には次のような特徴がある。
・OTPシードは安全な状態で(暗号化されて)カードに記憶される。
・パスワード生成アルゴリズムはカードの内部で実行される。
・装置10は複数の仮想トークンをエミュレートでき、それぞれの仮想トークンでは異なるシードを記憶し、異なるパスワード生成アルゴリズムを使用できる。
・認証サーバから装置10へシードを移すセキュアプロトコルは装置10が提供する。
OTP generation by FSE has the following characteristics.
The OTP seed is stored securely (encrypted) on the card.
• The password generation algorithm is executed inside the card.
The device 10 can emulate multiple virtual tokens, each virtual token stores a different seed and can use different password generation algorithms.
The secure protocol for transferring the seed from the authentication server to the device 10 is provided by the device 10.

図42は、SSAのOTPシード提供機能とOTP生成機能を示すものであり、ここで実線の矢印は所有権またはアクセス権を示し、破線の矢印は関連付けまたはリンクを示している。図42に示すように、SSA FSEシステム1100ではN個のアプリケーションACR1106によってそれぞれ管理される1つ以上の通信パイプ1104を通じてソフトウェアプログラムコードFSE1102にアクセスできる。後述する実施形態では1つのみのFSEソフトウェアアプリケーションを例示し、各FSEアプリケーションにつき1つのみの通信パイプがある。しかし、複数のFSEアプリケーションを使えることが理解できる。図42には1つのみの通信パイプが例示されているが、複数の通信パイプを使えることが理解できる。そのような変形例はいずれも可能である。図40A、40B、および42を参照すると、FSE1102はOTP提供に用いるアプリケーションであって、図40Aの装置内部アプリケーション1010の一部をなす場合がある。制御データ構造(ACR1101、1103、1106、1110)はSSAのセキュリティデータ構造の一部であり、SSAデータベース1026に記憶される。IDO1120やSDOオブジェクト1122等のデータ構造と通信パイプ1104もSSAデータベース1026に記憶される。   FIG. 42 shows an STP OTP seed providing function and an OTP generation function, where solid arrows indicate ownership or access rights, and broken arrows indicate associations or links. As shown in FIG. 42, in the SSA FSE system 1100, the software program code FSE 1102 can be accessed through one or more communication pipes 1104 respectively managed by N applications ACR 1106. The embodiments described below illustrate only one FSE software application, and there is only one communication pipe for each FSE application. However, it can be understood that multiple FSE applications can be used. Although only one communication pipe is illustrated in FIG. 42, it can be understood that a plurality of communication pipes can be used. Any such modification is possible. Referring to FIGS. 40A, 40B, and 42, the FSE 1102 is an application used for providing OTP, and may form part of the device internal application 1010 of FIG. 40A. The control data structure (ACR 1101, 1103, 1106, 1110) is a part of the SSA security data structure and is stored in the SSA database 1026. Data structures such as IDO 1120 and SDO object 1122 and communication pipe 1104 are also stored in SSA database 1026.

図40Aおよび図40Bを参照すると、ACRとデータ構造が関わるセキュリティ関連操作(例えば、セッション中のデータ転送、暗号化、復号化、ハッシュ計算等の操作)は、モジュール1030がインターフェイス1032と暗号ライブラリ1012の支援を受けて処理する。SSMコアAPI1006は、ホストと受け渡しするACR(外部ACR)が関わる操作と、ホストと受け渡ししない内部ACRが関わる操作を区別しないため、ホストが関わる操作と装置内部アプリケーション1010が関わる操作に区別はない。ホスト側事業体によるアクセスと装置内部アプリケーション1010によるアクセスは、同じ制御機構によって制御される。このため、ホスト側アプリケーションと装置内部アプリケーション1010とでデータ処理を柔軟に区別できる。内部アプリケーション1010(例えば、図42のFSE1102)は内部ACR(例えば、図42のACR1103)と関連付けし、これの管理のもとで起動する。   Referring to FIGS. 40A and 40B, security-related operations involving ACR and data structure (for example, operations such as data transfer, encryption, decryption, and hash calculation during a session) are performed by module 1030 using interface 1032 and cryptographic library 1012. Process with the support of. Since the SSM core API 1006 does not distinguish between an operation related to an ACR (external ACR) transferred to and from the host and an operation related to an internal ACR not transferred to the host, there is no distinction between an operation related to the host and an operation related to the device internal application 1010. Access by the host-side entity and access by the device internal application 1010 are controlled by the same control mechanism. Therefore, data processing can be flexibly distinguished between the host-side application and the apparatus internal application 1010. The internal application 1010 (for example, the FSE 1102 in FIG. 42) is associated with the internal ACR (for example, the ACR 1103 in FIG. 42) and started under the management thereof.

さらに、重要情報へのアクセス、例えばSDOの内容またはそのSDOの内容から検索される情報へのアクセスは、好ましくはACRやAGP等のセキュリティデータ構造とSSAのルールと方針とによって管理されるため、外部または内部アプリケーションは、SSAのルールと方針とに従う限りにおいてその内容または情報にアクセスできる。例えば、2名のユーザがデータを処理するために個々の装置内部アプリケーション1010を起動する場合、別々の階層ツリーに位置する内部ACRを使って2名のユーザによるアクセスが制御されるため、アプリケーション間のクロストークはない。両ユーザはデータ処理する場合に共通の装置内部アプリケーション1010にアクセスでき、SDOの内容または情報の所有者の側では、内容または情報制御の喪失を心配せずにすむ。例えば、データを記憶するSDOに対する装置内部アプリケーション1010によるアクセスは別々のツリーに位置するACRによって制御できるため、アプリケーション間のクロストークはない。この制御方法は、前述したデータに対するアクセスをSSAが制御する方法に似ている。これは、データオブジェクトに記憶されたデータのセキュリティを内容の所有者とユーザに提供する。   In addition, access to important information, for example access to SDO content or information retrieved from the SDO content, is preferably managed by security data structures such as ACR and AGP and SSA rules and policies, External or internal applications can access their content or information as long as they comply with SSA rules and policies. For example, when two users launch individual device internal applications 1010 to process data, access by the two users is controlled using internal ACRs located in separate hierarchical trees. There is no crosstalk. Both users can access a common internal device application 1010 when processing data, and the owner of the SDO content or information does not have to worry about loss of content or information control. For example, access by the device internal application 1010 to the SDO storing data can be controlled by ACRs located in separate trees, so there is no crosstalk between applications. This control method is similar to the method in which the SSA controls access to the data described above. This provides content owners and users with the security of the data stored in the data object.

図42を参照すると、OTP関連ホストアプリケーションに必要なソフトウェアアプリケーションコードの一部分を、FSE1102のアプリケーションとしてメモリ装置10に記憶(メモリカード発行前に予め記憶、またはメモリカード発行後にロード)することは可能である。そのようなコードを実行する場合、ホストはまずN個の認証ACR1106のいずれか1つを通じて認証を受け、パイプ1104にアクセスする必要があり、Nは正の整数である。ホストは、起動しようとするOTP関連アプリケーションを識別するためのアプリケーションIDを提供する必要もある。認証に成功したら、OTP関連アプリケーションと関連付けられたパイプ1104を通じてそのようなコードにアクセスし、実行できる。前述したように、パイプ1104と、OTP関連内部アプリケーション等のアプリケーションとの間には、好ましくは1対1の関係がある。図42に示すように、複数のACR1106が共通のパイプ1104を制御することがある。1つのACRで複数のパイプを制御する場合がある。   Referring to FIG. 42, it is possible to store a part of software application code necessary for an OTP-related host application in the memory device 10 as an application of FSE 1102 (stored in advance before issuing a memory card or loaded after issuing a memory card). is there. When executing such code, the host must first authenticate through any one of the N authentication ACRs 1106 and access the pipe 1104, where N is a positive integer. The host also needs to provide an application ID for identifying the OTP related application to be started. If authentication is successful, such code can be accessed and executed through a pipe 1104 associated with the OTP-related application. As described above, there is preferably a one-to-one relationship between the pipe 1104 and applications such as OTP-related internal applications. As shown in FIG. 42, a plurality of ACRs 1106 may control a common pipe 1104. There are cases where a plurality of pipes are controlled by one ACR.

図42には、データ、例えばOTP生成のためのシードをそれぞれ収容するオブジェクト1114と総称するセキュアデータオブジェクトSDO1、SDO2、およびSDO3が示され、このシードは貴重であって、好ましくは暗号化する。3つのデータオブジェクトとFSE1102との間のリンクまたは関連付け1108はこれらのオブジェクトの一属性であり、いずれか1つのオブジェクトにアクセスするときには、アプリケーションIDがSDO属性に一致するFSE1102のアプリケーションが起動し、このアプリケーションは装置のCPU12によって実行され、さらなるホストコマンドを受け取る必要はない(図1)。   FIG. 42 shows secure data objects SDO1, SDO2, and SDO3, collectively referred to as objects 1114 that each contain data, eg, a seed for OTP generation, which seeds are valuable and preferably encrypted. The link or association 1108 between the three data objects and the FSE 1102 is an attribute of these objects, and when accessing any one of the objects, the application of the FSE 1102 whose application ID matches the SDO attribute is launched. The application is executed by the device CPU 12 and does not need to receive further host commands (FIG. 1).

図42を参照すると、OTPプロセスを制御するためのセキュリティデータ構造(ACR1101、1103、1106、および1110)とそのPCRは、ユーザがOTPプロセスを開始する前に作成済みである。ユーザは、認証サーバACR1106のいずれか1つを通じてOTP装置内部アプリケーション1102を起動するためのアクセス権を得る必要がある。ユーザは、N個のユーザACR1110のいずれか1つを通じてOTPに対するアクセス権を得る必要もある。SDO1114はOTPのシード提供過程で作成できる。IDO1116は、好ましくは作成済みで内部ACR1103によって制御される。内部ACR1103は、作成されたSDO1114も制御する。SDO1114にアクセスするときには、図40BのSSA管理部1024が自動的にACR1103にログインする。内部ACR1103にはFSE1102が関連付けられる。破線1108に示すように、OTPのシード提供過程ではSDO1114にFSEを関連付けさせる。関連付けが成立した後、ホストがSDOにアクセスするときには、ホストからさらなる要求がなくとも関連付け1108によってFSE1102が起動する。N個のACR1106のいずれか1つを通じて通信パイプ1104にアクセスするときにも、図40BのSSA管理部1024がACR1103に自動的にログインする。いずれの場合でも(SDO1114とパイプ1104へのアクセス)、SSA管理部はFSE1102にセッション番号を渡し、このセッション番号によって内部ACR1103に至るチャネルが識別される。   Referring to FIG. 42, the security data structure (ACRs 1101, 1103, 1106, and 1110) for controlling the OTP process and its PCR have been created before the user starts the OTP process. The user needs to obtain an access right for starting the OTP device internal application 1102 through any one of the authentication servers ACR 1106. The user also needs to gain access to the OTP through any one of the N user ACRs 1110. The SDO 1114 can be created in the OTP seed provision process. IDO 1116 is preferably created and controlled by internal ACR 1103. The internal ACR 1103 also controls the created SDO 1114. When accessing the SDO 1114, the SSA management unit 1024 in FIG. 40B automatically logs into the ACR 1103. The FSE 1102 is associated with the internal ACR 1103. As indicated by a broken line 1108, in the OTP seed provision process, the SDO 1114 is associated with the FSE. After the association is established, when the host accesses the SDO, the FSE 1102 is activated by the association 1108 even if there is no further request from the host. When accessing the communication pipe 1104 through any one of the N ACRs 1106, the SSA management unit 1024 in FIG. 40B automatically logs in to the ACR 1103. In any case (access to the SDO 1114 and the pipe 1104), the SSA management unit passes the session number to the FSE 1102, and the channel reaching the internal ACR 1103 is identified by this session number.

OTP操作は2つの段階、すなわち図43に示すシード提供段階と図44に示すOTP生成段階とを伴う。図40〜図42も併せて参照することで、この説明に役立つ。図43はシード提供プロセスを示すプロトコル図である。図43に示すように、ホスト24等のホストとカードは様々な動作をとる。SSMコア1004を含む図40Aおよび40BのSSMシステムは、カード側で様々な動作をとる1事業体である。図42に示すFSE1102もカード側で様々な動作をとる事業体である。   The OTP operation involves two stages: a seed provision stage shown in FIG. 43 and an OTP generation stage shown in FIG. Reference is also made to FIGS. 40 to 42 to assist in this description. FIG. 43 is a protocol diagram showing the seed provision process. As shown in FIG. 43, a host such as the host 24 and the card perform various operations. The SSM system of FIGS. 40A and 40B including the SSM core 1004 is one entity that performs various operations on the card side. The FSE 1102 shown in FIG. 42 is also a business entity that performs various operations on the card side.

二因子認証ではユーザがシードの発行を要求し、発行されたシードはセキュアトークンに記憶される。この例のセキュアトークンはメモリ装置またはカードである。ユーザはSSMシステムにアクセスするため、図42の認証ACR1106のいずれか1つで認証を受ける(矢印1122)。認証に成功したと仮定し(矢印1124)、ユーザはシードを要求する(矢印1126)。ホストは、シード要求に署名するためのアプリケーション1102を選択してシード要求に署名する要求をカードへ送る。起動すべきアプリケーションIDをユーザが知らない場合、例えば装置に対する非公開クエリにより、この情報を装置10から入手できる。そして、ユーザは起動するべきアプリケーションのアプリケーションIDを入力し、これによりこのアプリケーションに対応する通信パイプも選択される。パススルーコマンドにより、ユーザから該当する通信パイプを通じてアプリケーションIDで指定されたアプリケーションにかけて、ユーザコマンドが転送される(矢印1128)。起動したアプリケーションは、図42のIDO1112等の所定のIDOの公開鍵による署名を要求する。   In the two-factor authentication, the user requests to issue a seed, and the issued seed is stored in a secure token. The secure token in this example is a memory device or a card. In order to access the SSM system, the user is authenticated with one of the authentication ACRs 1106 of FIG. 42 (arrow 1122). Assuming successful authentication (arrow 1124), the user requests a seed (arrow 1126). The host selects an application 1102 to sign the seed request and sends a request to the card to sign the seed request. If the user does not know the application ID to be activated, this information can be obtained from the device 10 by, for example, a private query to the device. Then, the user inputs the application ID of the application to be activated, and thereby the communication pipe corresponding to this application is also selected. By the pass-through command, the user command is transferred from the user to the application specified by the application ID through the corresponding communication pipe (arrow 1128). The activated application requests a signature with a public key of a predetermined IDO such as IDO 1112 in FIG.

SSMシステムはIDOの公開鍵を用いてシード要求に署名し、署名の完了をアプリケーションに通知する(矢印1132)。次に、起動アプリケーションはIDOの証明書連鎖を要求する(矢印1134)。これに応じて、SSMシステムは、ACR1103の制御下でIDOの証明書連鎖を提供する。起動アプリケーションは通信パイプを通じて署名済みシード要求とIDOの証明書連鎖をSSMシステムへ提供し、SSMシステムは同じものをホストへ転送する(矢印1138)。通信パイプにおける署名済みシード要求とIDO証明書連鎖の送信は、図40AのSAMM1008とSSMコア1004との間で確立するコールバック関数によって行われるが、このコールバック関数については以降で詳述する。   The SSM system signs the seed request using the IDO public key, and notifies the application of the completion of the signature (arrow 1132). Next, the activation application requests an IDO certificate chain (arrow 1134). In response, the SSM system provides an IDO certificate chain under the control of ACR 1103. The launch application provides the signed seed request and IDO certificate chain to the SSM system through the communication pipe, and the SSM system forwards the same to the host (arrow 1138). Transmission of the signed seed request and the IDO certificate chain in the communication pipe is performed by a callback function established between the SAMM 1008 and the SSM core 1004 in FIG. 40A. This callback function will be described in detail later.

ホストが受け取った署名済みシード要求とIDO証明書連鎖は、図41に示す認証サーバ1052へ送信される。署名済みシード要求の出所が信用できるトークンであることはカードから提供される証明書連鎖で証明されているため、認証サーバ1052には秘密シードをカードに提供する用意がある。そこで認証サーバ1052は、IDOの公開鍵で暗号化されたシードをユーザACR情報と併せてホストに送信する。このユーザ情報により、N個のユーザACRのうち、これから生成するOTPにユーザがアクセスするためのユーザACRがいずれであるのかが明らかになる。ホストはアプリケーションIDを提供することによってFSE1102でOTPアプリケーションを起動し、これによりこのアプリケーションに対応する通信パイプも選択され、さらにホストはユーザACR情報をSSMシステムへ転送する(矢印1140)。暗号化されたシードとユーザACR情報は通信パイプを通じて選択されたアプリケーションへ転送される(矢印1142)。起動したアプリケーションは、IDOの秘密鍵を使ってシードを復号化する要求をSSMシステムに送る(矢印1144)。SSMシステムはシードを復号化し、復号化の完了を伝える通知をアプリケーションに送る(矢印1146)。起動アプリケーションは、セキュアデータオブジェクトを作成し、そのセキュアデータオブジェクトにシードを記憶することを要求する。起動アプリケーションは、使い捨てパスワードを生成するため、そのSDOにOTPアプリケーション(要求するアプリケーションと同じアプリケーションであってもよい)のIDを割り振ることも要求する。SSMシステムはSDO1114のいずれか1つを作成し、そのSDOの中にシードを記憶し、OTPアプリケーションのIDをSDOに割り振り、完了したらアプリケーションに通知を送る(矢印1150)。アプリケーションは、ホストから提供されたユーザ情報に基づきSDO1114にアクセスするためのアクセス権を内部ACRから該当するユーザACRへ委譲することをSSMシステムに要求する(矢印1152)。委譲が完了したらSSMシステムはアプリケーションに通知する(矢印1154)。アプリケーションは、コールバック関数によりSDOの名前(スロットID)を通信パイプ経由でSSMシステムへ送信する(矢印1156)。SSMシステムは同じものをホストへ転送する(矢印1158)。ホストはSDOの名前をユーザACRに結合し、このため、ユーザはSDOにアクセスできるようになる。   The signed seed request and IDO certificate chain received by the host are transmitted to the authentication server 1052 shown in FIG. Since the origin of the signed seed request is proved by the certificate chain provided by the card, the authentication server 1052 is prepared to provide the secret seed to the card. Therefore, the authentication server 1052 transmits the seed encrypted with the IDO public key together with the user ACR information to the host. This user information makes it clear which of the N user ACRs is the user ACR for the user to access the OTP to be generated. The host launches the OTP application at FSE 1102 by providing the application ID, which also selects the communication pipe corresponding to this application, and the host forwards user ACR information to the SSM system (arrow 1140). The encrypted seed and user ACR information are transferred to the selected application through the communication pipe (arrow 1142). The activated application sends a request to the SSM system to decrypt the seed using the IDO private key (arrow 1144). The SSM system decrypts the seed and sends a notification to the application indicating the completion of the decryption (arrow 1146). The launch application creates a secure data object and requests to store a seed in the secure data object. In order to generate a one-time password, the activation application also requests that the SDO be assigned an ID of an OTP application (which may be the same application as the requesting application). The SSM system creates one of the SDOs 1114, stores the seed in that SDO, assigns the ID of the OTP application to the SDO, and sends a notification to the application when complete (arrow 1150). The application requests the SSM system to transfer the access right to access the SDO 1114 from the internal ACR to the corresponding user ACR based on the user information provided from the host (arrow 1152). When the delegation is completed, the SSM system notifies the application (arrow 1154). The application transmits the name of the SDO (slot ID) to the SSM system via the communication pipe by the callback function (arrow 1156). The SSM system transfers the same to the host (arrow 1158). The host binds the name of the SDO to the user ACR so that the user can access the SDO.

今度は図44のプロトコル図を参照しながらOTP生成プロセスを説明する。ユーザは使い捨てパスワードを入手するため、アクセス権があるユーザACRにログインする(矢印1172)。認証に成功したと仮定し、SSMシステムはホストに通知し、ホストは「get SDO」コマンドをSSMへ送信する(矢印1174、1176)。前述したように、シードを記憶するSDOにはOTPを生成するアプリケーションが関連付けられている。したがって、これまでのように通信パイプ経由でアプリケーションを選択する代わりに、矢印1176のコマンドでアクセスするSDOとOTP生成アプリケーションとの関連付けによってOTP生成アプリケーションを起動する(矢印1178)。OTP生成アプリケーションは、SDOから内容(すなわち、シード)を読み出すことをSSMシステムに要求する。好ましくは、SSMはSDOの内容に含まれる情報を認識せず、FSEの指示に従ってSDOのデータを処理するに過ぎない。シードが暗号化されている場合、FSEの指示に従い読み出しを行う前にシードを復号化することが必要となる場合がある。SSMシステムはSDOからシードを読み出し、OTP生成アプリケーションへシードを提供する(矢印1182)。OTP生成アプリケーションはOTPを生成し、これをSSMシステムに提供する(矢印1184)。OTPはSSMによってホストへ転送され(矢印1186)、さらにホストから認証サーバ1052へOTPが転送され、二因子認証プロセスは完了する。   Next, the OTP generation process will be described with reference to the protocol diagram of FIG. The user logs into a user ACR with access rights to obtain a disposable password (arrow 1172). Assuming that authentication was successful, the SSM system notifies the host, and the host sends a “get SDO” command to the SSM (arrows 1174, 1176). As described above, an application that generates an OTP is associated with the SDO that stores the seed. Therefore, instead of selecting the application via the communication pipe as before, the OTP generation application is activated by associating the SDO accessed by the command indicated by the arrow 1176 with the OTP generation application (arrow 1178). The OTP generation application requests the SSM system to read the content (ie seed) from the SDO. Preferably, the SSM does not recognize the information contained in the contents of the SDO and only processes the SDO data according to the FSE instructions. If the seed is encrypted, it may be necessary to decrypt the seed before reading according to the FSE instructions. The SSM system reads the seed from the SDO and provides the seed to the OTP generation application (arrow 1182). The OTP generation application generates an OTP and provides it to the SSM system (arrow 1184). The OTP is transferred to the host by the SSM (arrow 1186), and the OTP is transferred from the host to the authentication server 1052, completing the two-factor authentication process.

コールバック関数
図40AのSSMコア1004とSAMM1008との間では汎用コールバック関数を確立する。そのような関数には様々な装置内部アプリケーションと通信パイプを登録できる。起動した装置内部アプリケーションはこのコールバック関数を使用することにより、アプリケーションへのホストコマンドの引き渡しに使われたものと同じ通信パイプを使って処理後のデータをSSMシステムへ引き渡すことができる。
Callback Function A general callback function is established between the SSM core 1004 and the SAMM 1008 in FIG. 40A. Various device internal applications and communication pipes can be registered in such functions. By using this callback function, the activated application in the apparatus can pass the processed data to the SSM system using the same communication pipe used for passing the host command to the application.

DRMシステム実施形態
図45はDRMシステムを示す機能ブロック図であり、このシステムでは通信パイプ1104’と、FSEアプリケーション1102’に至るリンク1108’を備えるCEK1114’と、DRM機能の実行機能を制御する制御構造1101’、1103’、1106’とを使用する。見て分かるように、図45のアーキテクチャはセキュリティデータ構造として認証サーバACRとユーザACRの代わりにライセンスサーバACR1106’と再生ACR1110’とを含み、さらにSDOの代わりにCEK1114’を含む点を除き、図42のものによく似ている。加えて、IDOは関係しないから図45で省かれている。CEK1114’はライセンス提供プロセスの中で作成できる。プロトコル図である図46はライセンス提供とコンテンツダウンロードのプロセスを示すものであり、ここではライセンスオブジェクトの中で鍵が提供される。OTPの実施例と同様に、ライセンスの取得を望むユーザはまず、N個のACR1106’のいずれか1つとN個のACR1110’のいずれか1つのもとでアクセス権を取得する必要があり、そうすることでメディアプレーヤソフトウェアアプリケーション等のメディアプレーヤでコンテンツを再生できるようになる。
DRM System Embodiment FIG. 45 is a functional block diagram showing a DRM system. In this system, a communication pipe 1104 ′, a CEK 1114 ′ having a link 1108 ′ leading to the FSE application 1102 ′, and a control for controlling the execution function of the DRM function. Structures 1101 ′, 1103 ′, 1106 ′ are used. As can be seen, the architecture of FIG. 45 includes the license server ACR 1106 ′ and playback ACR 1110 ′ instead of the authentication server ACR and user ACR as security data structures, and also includes CEK 1114 ′ instead of SDO. Very similar to 42. In addition, IDO is not relevant and is omitted in FIG. CEK 1114 ′ can be created during the license provision process. FIG. 46, which is a protocol diagram, shows the process of providing a license and downloading content, where a key is provided in the license object. As with the OTP embodiment, a user wishing to obtain a license must first obtain access under one of N ACRs 1106 ′ and one of N ACRs 1110 ′, and so on. As a result, the content can be reproduced by a media player such as a media player software application.

図46に示すように、ホストはライセンスサーバACR1106’による認証を受ける(矢印1202)。認証に成功したと仮定し(矢印1204)、ライセンスサーバはライセンスファイルをCEK(鍵IDと鍵値)と併せてホストに提供する。ホストは、カード上のSSMシステムにアプリケーションIDを提供することによって起動すべきアプリケーションも選択する。ホストは、プレーヤ情報(例えば、メディアプレーヤーソフトウェアアプリケーションの情報)も送信する(矢印1206)。このプレーヤ情報により、N個の再生ACR1110’のうち、プレーヤのアクセス権がある再生ACRがいずれであるのかが明らかになる。SSMシステムは、選択されたアプリケーションに対応する通信パイプを通じてライセンスファイルとCEKをDRMアプリケーションへ転送する(矢印1208)。起動したアプリケーションは、ライセンスファイルを非表示パーティションに書き込むことをSSMシステムに要求する(矢印1210)。ライセンスファイルがそのとおりに書き込まれたら、SSMシステムはアプリケーションに通知する(矢印1212)。DRMアプリケーションはCEKオブジェクト1114’の作成を要求し、ライセンスファイルからその中に鍵値を記憶する。DRMアプリケーションは、提供された鍵に関連するライセンスをチェックするDRMアプリケーションのIDをCEKオブジェクトに割り振ることも要求する(矢印1214)。SSMシステムはこれらのタスクを完了し、その旨をアプリケーションに通知する(矢印1216)。アプリケーションは、ホストから送信されたプレーヤ情報に基づきCEK1114’に対するコンテンツの読み出しアクセス権をプレーヤがアクセスできる再生ACRへ委譲することを要求する(矢印1218)。SSMシステムは委譲を行い、その旨をアプリケーションに通知する(矢印1220)。ライセンスの記憶が完了したことを伝えるメッセージがアプリケーションから通信パイプを経由しSSMシステムへ送信され、SSMシステムはこれをライセンスサーバへ転送する(矢印1222および1224)。通信パイプ経由のこの操作にはコールバック関数を使用する。この通知を受けたライセンスサーバは、提供されたCEKの鍵値によって暗号化されたコンテンツファイルをカードに提供する。暗号化されたコンテンツはホストによってカードの公開領域に記憶される。暗号化されたコンテンツファイルの記憶にセキュリティ機能は関与しないため、SSMシステムは記憶に関与しない。   As shown in FIG. 46, the host is authenticated by the license server ACR 1106 '(arrow 1202). Assuming successful authentication (arrow 1204), the license server provides the license file to the host along with CEK (key ID and key value). The host also selects the application to be launched by providing the application ID to the SSM system on the card. The host also sends player information (eg, media player software application information) (arrow 1206). This player information makes it clear which of the N playback ACRs 1110 'is the playback ACR to which the player has access rights. The SSM system transfers the license file and CEK to the DRM application through the communication pipe corresponding to the selected application (arrow 1208). The activated application requests the SSM system to write the license file to the non-display partition (arrow 1210). If the license file is written as such, the SSM system notifies the application (arrow 1212). The DRM application requests creation of the CEK object 1114 'and stores the key value in it from the license file. The DRM application also requests that the ID of the DRM application that checks the license associated with the provided key be allocated to the CEK object (arrow 1214). The SSM system completes these tasks and notifies the application to that effect (arrow 1216). Based on the player information transmitted from the host, the application requests to transfer the content read access right to CEK 1114 ′ to the playback ACR accessible by the player (arrow 1218). The SSM system performs delegation and notifies the application to that effect (arrow 1220). A message is sent from the application to the SSM system via the communication pipe indicating that the license has been stored, and the SSM system forwards it to the license server (arrows 1222 and 1224). A callback function is used for this operation via the communication pipe. Upon receiving this notification, the license server provides the card with the content file encrypted with the provided CEK key value. The encrypted content is stored in the public area of the card by the host. Since the security function is not involved in storing encrypted content files, the SSM system is not involved in storage.

図47は、再生操作を示す。ユーザはホストを通じて該当する再生ACR(すなわち、前述した矢印1152および1154で読み出し権を委譲された再生ACR)による認証を受ける(矢印1242)。認証に成功したと仮定し(矢印1244)、ユーザは鍵IDと関連付けられたコンテンツの読み出し要求を送る(矢印1246)。要求を受け取ったSSMシステムは、アクセスされているDRMアプリケーションのIDがCEKオブジェクトに関連付けられていることに気づき、識別されたDRMアプリケーションを起動する(矢印1248)。このDRMアプリケーションは、鍵IDと関連付けられたデータ(すなわち、ライセンス)の読み出しをSSMシステムに要求する(矢印1250)。読み出し要求があったデータの情報を認識しないSSMは、FSEからの要求を処理してデータの読み出しプロセスを実行するに過ぎない。SSMシステムは非表示パーティションからデータ(すなわち、ライセンス)を読み出し、そのデータをDRMアプリケーションに提供する(矢印1252)。DRMアプリケーションはデータを解釈し、データの中にあるライセンス情報をチェックして、ライセンスが有効かどうかを確認する。ライセンスがなお有効である場合、DRMアプリケーションはコンテンツの復号化が許可されることをSSMシステムに知らせる(矢印1254)。SSMシステムは要求のあったコンテンツをCEKオブジェクトの鍵値を使って復号化し、復号化されたコンテンツを再生するためにホストに提供する(矢印1256)。ライセンスがすでに有効でない場合、コンテンツアクセスの要求は拒否される。   FIG. 47 shows the playback operation. The user is authenticated through the host by the corresponding reproduction ACR (that is, the reproduction ACR to which the read right is delegated by the arrows 1152 and 1154 described above) (arrow 1242). Assuming that the authentication is successful (arrow 1244), the user sends a request to read the content associated with the key ID (arrow 1246). Upon receiving the request, the SSM system notices that the ID of the DRM application being accessed is associated with the CEK object and launches the identified DRM application (arrow 1248). The DRM application requests the SSM system to read the data (ie, license) associated with the key ID (arrow 1250). An SSM that does not recognize the information of the data requested to be read only processes the request from the FSE and executes the data read process. The SSM system reads the data (ie, license) from the hidden partition and provides the data to the DRM application (arrow 1252). The DRM application interprets the data and checks the license information in the data to confirm whether the license is valid. If the license is still valid, the DRM application informs the SSM system that content decryption is allowed (arrow 1254). The SSM system decrypts the requested content using the key value of the CEK object and provides it to the host for playback of the decrypted content (arrow 1256). If the license is no longer valid, the content access request is denied.

ライセンスサーバからのライセンスファイルで鍵が提供されない場合のライセンス提供とコンテンツのダウンロードは、図46に示す場合といくぶん異なる。図48のプロトコル図はそのような別方式を示す。図46および図48で同じステップは同じ数字で識別されている。このため、ホストとSSMシステムはまず初めに認証に取り組む(矢印1202、1204)。ライセンスサーバはホストにライセンスファイルと鍵IDを提供するが鍵値は提供せず、ホストはそれらを、起動しようとするDRMアプリケーションのアプリケーションIDと併せて、SSMシステムへ転送する。ホストはプレーヤ情報も送信する(矢印1206’)。SSMシステムは、選択されたアプリケーションに対応する通信パイプを通じて選択されたDRMアプリケーションへライセンスファイルと鍵IDを転送する(矢印1208)。DRMアプリケーションは、非表示パーティションへのライセンスファイル書き込みを要求する(矢印1210)。ライセンスファイルがそのとおりに書き込まれたら、SSMシステムはDRMアプリケーションに通知する(矢印1212)。DRMアプリケーションは、鍵値を生成することと、CEKオブジェクトを作成することと、そこに鍵値を記憶することと、CEKオブジェクトにDRMアプリケーションのIDを割り振ることとをSSMシステムに要求する(矢印1214’)。要求に応じたSSMシステムはDRMアプリケーションへ通知を送る(矢印1216)。DRMアプリケーションは、ホストからのプレーヤ情報に基づきCEKオブジェクトに対する読み出しアクセス権を再生ACRに委譲することをSSMシステムに要求する(矢印1218)。これが完了すると、SSMシステムはその旨をDRMアプリケーションに通知する(矢印1220)。DRMアプリケーションはライセンスが記憶されたことをSSMシステムに通知するが、この通知はコールバック関数により通信パイプ経由で送信される(矢印1222)。通知はSSMシステムによってライセンスサーバへ転送される(矢印1224)。ライセンスサーバは鍵IDと関連付けられたコンテンツファイルをSSMシステムへ送信する(矢印1226)。SSMシステムは鍵IDによって識別された鍵値でコンテンツファイルを暗号化するが、アプリケーションはこれに一切関与しない。暗号化されカードに記憶されたコンテンツは、図47のプロトコルを用いて再生できる。   When the key is not provided by the license file from the license server, the license provision and the content download are somewhat different from those shown in FIG. The protocol diagram of FIG. 48 shows such another scheme. The same steps in FIGS. 46 and 48 are identified by the same numerals. For this reason, the host and the SSM system first work on authentication (arrows 1202, 1204). The license server provides the license file and key ID to the host but not the key value, and the host forwards them to the SSM system along with the application ID of the DRM application to be launched. The host also sends player information (arrow 1206 '). The SSM system transfers the license file and the key ID to the selected DRM application through the communication pipe corresponding to the selected application (arrow 1208). The DRM application requests writing of a license file to the non-display partition (arrow 1210). If the license file is written as such, the SSM system notifies the DRM application (arrow 1212). The DRM application requests the SSM system to generate a key value, create a CEK object, store the key value therein, and assign the DRM application ID to the CEK object (arrow 1214). '). The SSM system in response to the request sends a notification to the DRM application (arrow 1216). The DRM application requests the SSM system to delegate read access to the CEK object to the playback ACR based on player information from the host (arrow 1218). When this is complete, the SSM system notifies the DRM application to that effect (arrow 1220). The DRM application notifies the SSM system that the license has been stored, and this notification is sent via the communication pipe by the callback function (arrow 1222). The notification is forwarded to the license server by the SSM system (arrow 1224). The license server transmits the content file associated with the key ID to the SSM system (arrow 1226). The SSM system encrypts the content file with the key value identified by the key ID, but the application is not involved in this at all. The encrypted content stored on the card can be played back using the protocol of FIG.

前述したOTP実施形態とDRM実施形態で、ホスト装置は様々なOTPアプリケーションとDRMアプリケーションをFSE1102および1102’で選ぶことができる。ユーザは所望の装置内部アプリケーションを選択し、起動できる。しかし、SSMモジュールとFSEとの全体的関係は常に同じであるため、ユーザとデータの提供者はSSMモジュールとの受け渡しやFSEを起動する場合に標準のプロトコル群を使用することができる。ユーザと提供者は、独自に開発されたものを含む様々な装置内部アプリケーションの詳細に関わる必要はない。   In the OTP embodiment and the DRM embodiment described above, the host device can select various OTP applications and DRM applications in the FSEs 1102 and 1102 '. The user can select and activate a desired application inside the device. However, since the overall relationship between the SSM module and the FSE is always the same, the user and the data provider can use a standard set of protocols when passing between the SSM module and starting the FSE. Users and providers need not be involved in the details of various device internal applications, including those developed independently.

さらに、図46および図48がそうであるように、提供プロトコルはいくぶん異なることがある。図46の場合、ライセンスオブジェクトは鍵値を収容するが、図48の場合は鍵値を収容しない。このような違いから、前述したような若干異なるプロトコルが必要となる。しかし、図47における再生は、ライセンス提供のあり方にかかわりなく同じである。したがって、この違いが問題となるのは通常であればコンテンツの提供者と配布者のみであって、再生段階にしか通常かかわらない消費者には関係ない。このアーキテクチャは、プロトコルのカスタマイズする場合にコンテンツの提供者や配布者に多大な柔軟性を提供しつつ、消費者にとっては扱いやすい状態のままである。当然、3つ以上の提供プロトコル群によって提供されるデータから検索される情報でも、第2のプロトコルを用いてアクセスできる。   In addition, the provisioning protocol may be somewhat different, as is the case with FIGS. In the case of FIG. 46, the license object contains the key value, but in the case of FIG. 48, the license object does not contain the key value. Due to these differences, a slightly different protocol as described above is required. However, the reproduction in FIG. 47 is the same regardless of how the license is provided. Therefore, this difference is usually a problem only for content providers and distributors, and not for consumers who are usually involved only in the reproduction stage. This architecture remains easy to handle for consumers while providing great flexibility to content providers and distributors when customizing protocols. Of course, information retrieved from data provided by three or more provided protocol groups can also be accessed using the second protocol.

前述した実施形態から提供される別の利点として、ユーザ等の外部事業体と装置内部アプリケーションはいずれもセキュリティデータ構造によって制御されるデータを利用するが、ユーザがアクセスできるものは装置内部アプリケーションによって記憶データから検索される結果のみである。OTP実施形態の場合、ホスト装置を通じてユーザが入手できるものはOTPのみであって、シード値は入手できない。DRM実施形態の場合、ホスト装置を通じてユーザが入手できるものは再生されたコンテンツのみであって、ライセンスファイルまたは暗号鍵のいずれにもアクセスできない。このため、セキュリティを損なうことなく消費者の便宜を図ることができる。   Another advantage provided by the above-described embodiment is that the external entity such as the user and the device internal application both use data controlled by the security data structure, but what the user can access is stored by the device internal application. Only the results retrieved from the data. In the case of the OTP embodiment, only the OTP can be obtained by the user through the host device, and the seed value cannot be obtained. In the case of the DRM embodiment, only the reproduced content can be obtained by the user through the host device, and neither the license file nor the encryption key can be accessed. For this reason, the convenience of the consumer can be achieved without sacrificing security.

DRMの一実施形態において、装置内部アプリケーションもホストも暗号鍵にアクセスせず、セキュリティデータ構造のみがこれにアクセスする。別の実施形態において、セキュリティデータ構造以外の事業体も暗号鍵にアクセスできる。鍵が装置内部アプリケーションによって生成され、セキュリティデータ構造によって制御される場合もある。   In one embodiment of the DRM, neither the device internal application nor the host accesses the encryption key, only the security data structure accesses it. In another embodiment, entities other than the security data structure can also access the encryption key. In some cases, the key is generated by a device internal application and controlled by a security data structure.

装置内部アプリケーションと情報(例えば、OTPや再生コンテンツ)へのアクセスは同じセキュリティデータ構造によって制御される。これは、制御システムの複雑さとコストを抑える。
装置内部アプリケーションに対するアクセスを制御する内部ACRから、装置内部アプリケーションを起動することによって得られる情報に対するホストのアクセスを制御するACRへ、アクセス権を委譲する能力を提供することにより、前述した特徴および機能が実現可能となる。
Access to device internal applications and information (eg, OTP and playback content) is controlled by the same security data structure. This reduces the complexity and cost of the control system.
Features and functions described above by providing the ability to delegate access rights from an internal ACR that controls access to device internal applications to an ACR that controls host access to information obtained by launching device internal applications Is feasible.

アプリケーション別失効制度
セキュリティデータ構造のアクセス制御プロトコルは装置内部アプリケーションの起動時に修正することもできる。例えば、証明書失効プロトコルには、CRLを使用する標準のプロトコルまたは独自のプロトコルのいずれでもよい。そこで、FSEを起動することにより、標準のCRL失効プロトコルをFSE独自プロトコルに差し替えることができる。
The access control protocol of the application-specific revocation system security data structure can be modified when the device internal application is started. For example, the certificate revocation protocol may be either a standard protocol using CRL or a proprietary protocol. Therefore, by starting the FSE, the standard CRL revocation protocol can be replaced with the FSE original protocol.

SSAはCRL失効制度をサポートするほか、装置内部アプリケーションとCA、あるいはその他の取消機関との私的通信チャネルを通じて装置の内部アプリケーションからホストを無効にすることができる。内部アプリケーション独自の失効制度はホスト−アプリケーションの関係に限定される。   In addition to supporting the CRL revocation scheme, SSA can disable hosts from device internal applications through private communication channels between device internal applications and CA or other revocation agencies. The internal application specific revocation system is limited to the host-application relationship.

アプリケーション別失効制度が構成される場合、SSAシステムはCRL(提供される場合)を拒絶することになり、そうでない場合には証明書と独自のアプリケーションデータ(アプリケーション別通信パイプを通じて提供済みのデータ)を用いて証明書が失効済みか否かを判断する。   If an application revocation scheme is configured, the SSA system will reject the CRL (if provided), otherwise certificates and proprietary application data (data provided through the application-specific communication pipe). Is used to determine whether the certificate has been revoked.

前述したように、ACRでは失効値を指定することによって3通りの失効制度(失効制度なし、標準CRL制度、アプリケーション別失効制度)のどれを採用するかを指定する。アプリケーション別失効制度を選ぶ場合、その失効制度を担当する内部アプリケーションIDもACRで指定し、CET/APP_IDフィールドの値は失効制度を担当する内部アプリケーションIDに一致することになる。装置を認証する場合、SSAシステムは内部アプリケーション独自の制度に準拠する。   As described above, in the ACR, by specifying the revocation value, one of three revocation systems (no revocation system, standard CRL system, and revocation system for each application) is specified. When an application-specific revocation system is selected, the internal application ID responsible for the revocation system is also designated by ACR, and the value of the CET / APP_ID field matches the internal application ID responsible for the revocation system. When authenticating a device, the SSA system complies with the internal application specific scheme.

1組のプロトコルを別のものに差し替える代わりに、装置内部アプリケーションを起動する場合、SSAによって既に施行されているアクセス制御に追加のアクセス条件を設けることもできる。例えば、CEKの鍵値に対するアクセス権をFSEでより綿密に調べることができる。鍵値のアクセス権がACRにあると判断したSSAシステムは、FSEと相談のうえでアクセスを許諾する。これは、コンテンツへのアクセスを制御する場合にコンテンツの所有者に多大な柔軟性を提供する。   Instead of replacing one set of protocols with another, additional access conditions can be provided for access control already enforced by the SSA when launching device internal applications. For example, the access right for the key value of CEK can be examined more closely by FSE. The SSA system that has determined that the access right for the key value is in the ACR grants access after consulting with the FSE. This provides great flexibility to the content owner when controlling access to the content.

これまで様々な実施形態を参照しながら本発明を説明してきたが、本発明の範囲から逸脱することなく変更や修正を施すことができ、本発明の範囲が専ら添付の特許請求の範囲とその同等物とによって定まるものであることが理解できよう。   Although the present invention has been described with reference to various embodiments so far, changes and modifications can be made without departing from the scope of the present invention, and the scope of the present invention is solely defined by the appended claims and their claims. It will be understood that it is determined by the equivalent.

Claims (13)

メモリ装置のセキュリティ機能上の情報を供給する方法であって、
クエリへの回答をメモリ装置によって生成し、前記メモリ装置は、公開部分と私的部分とを有し、かつメモリ装置の公開部分または私的部分のいずれかに記憶されている暗号化されたデータを解読する必要がある鍵に対するアクセスを制御することによって暗号化されたデータに対するアクセスを制御する制御構造を蓄積し、前記鍵を鍵IDによって参照し、前記制御構造は、認証済み事業体によるアクセスのみに制限される公的にアクセス可能な構成要素と複数の機密構成要素とを含み、前記複数の機密構成要素は、鍵IDおよび鍵に対するアクセス権を含み、それは制御構造に対して認証済み事業体がアクセス権に従って暗号化されたデータを解読するための鍵に対するアクセスを有するものであり、前記生成は、
(a)クエリが公的にアクセス可能な構成要素用ならば、公的にアクセス可能な構成要素を得るとともに、それを回答に含め、
(b)クエリが複数の機密構成要素のうちのいずれか1つの機密構成要素用ならば、クエリを送信した事業体がメモリ装置に対して認証され、この機密構成要素にアクセスすることができることを提示する、そのような機密構成要素を得るとともに、そのように得られた機密構成要素を回答に含め、かつ
(c)クエリに回答を供給することを含む方法。
A method for supplying information on a security function of a memory device,
An answer to the query is generated by a memory device, the memory device having a public part and a private part, and encrypted data stored in either the public part or the private part of the memory device Storing a control structure that controls access to encrypted data by controlling access to a key that needs to be decrypted , referencing the key by a key ID, the control structure being accessed by an authenticated entity A publicly accessible component and a plurality of sensitive components that are restricted to only, the plurality of sensitive components include a key ID and access rights to the key, which are certified business to the control structure The body has access to a key for decrypting the encrypted data according to the access right ,
(A) If the query is for a publicly accessible component, obtain a publicly accessible component and include it in the answer;
(B) If the query is for any one of the plurality of confidential components, the entity that sent the query is authenticated to the memory device and can access this confidential component. presented, along with obtaining such sensitive components, including mETHODS to supply an answer to the so obtained confidential components included in the reply, and (c) query.
請求項1記載の方法において、
クエリを送信した事業体が認証済みの如何に係らず、公的にアクセス可能な構成要素を回答に含める方法。
The method of claim 1, wherein
A method that includes publicly accessible components in the answer, regardless of whether the entity that sent the query is authenticated.
請求項1記載の方法において、
複数の機密構成要素のそれぞれは共有部分と非共有部分とを備え、前記共有部分は全ての認証済み事業体に供給され、前記非共有部分は1つの認証済み事業体のみに供給される方法。
The method of claim 1, wherein
Each of the plurality of confidential components comprises a shared portion and a non-shared portion, wherein the shared portion is provided to all authenticated entities, and the non-shared portion is provided to only one authenticated entity.
請求項3記載の方法において、
前記メモリ装置は、ライフサイクル状態を有するソフトウェアアプリケーションをその中に記憶し、複数の機密構成要素の前記共有部分は、ソフトウェアアプリケーションのIDとそれぞれのライフサイクル状態とを含む方法。
The method of claim 3, wherein
The memory device stores therein a software application having a life cycle state, and the shared portion of a plurality of confidential components includes an ID of the software application and a respective life cycle state.
請求項3記載の方法において、
前記制御構造は、少なくとも1つの副制御構造を備え、クエリは、前記少なくとも1つの副制御構造のリストを含む方法。
The method of claim 3, wherein
The method wherein the control structure comprises at least one sub-control structure and the query includes a list of the at least one sub-control structure.
請求項5記載の方法において、
前記少なくとも1つの副制御構造は、少なくとも1つのルートアクセス制御記録を備え、前記共有部分は、前記少なくとも1つのルートアクセス制御記録のリストを含む方法。
The method of claim 5, wherein
The method wherein the at least one secondary control structure comprises at least one root access control record and the shared portion includes a list of the at least one root access control record.
請求項1記載の方法において、
公的にアクセス可能な構成要素は、メモリ装置上のソフトウェアアプリケーションとそれぞれの実行状態とのリストを含む方法。
The method of claim 1, wherein
The publicly accessible component includes a list of software applications on the memory device and their execution states.
請求項1記載の方法において、
公的にアクセス可能な構成要素および複数の機密構成要素は、少なくとも1つの情報オブジェクトグループの中で供給され、グループのうちの1グループは一連のクエリにおける各クエリに応じて送信される方法。
The method of claim 1, wherein
A publicly accessible component and a plurality of sensitive components are provided in at least one information object group, wherein one group of groups is transmitted in response to each query in a series of queries.
メモリ装置であって、
公開部分と私的部分とを有し、かつメモリ装置の公開部分または私的部分のいずれかに記憶されている暗号化されたデータを解読する必要がある鍵に対するアクセスを制御することによって暗号化されたデータに対するアクセスを制御する制御構造を蓄積する不揮発性記憶媒体であって、前記鍵を鍵IDによって参照し、前記制御構造は、認証済み事業体によるアクセスのみに制限される公的にアクセス可能な構成要素と複数の機密構成要素とを含み、前記複数の機密構成要素は、鍵IDおよび鍵に対するアクセス権を含み、それは制御構造に対して認証済み事業体がアクセス権に従って暗号化されたデータを解読するための鍵に対するアクセスを有するものである不揮発性記憶媒体と、
前記不揮発性記憶媒体と通信し、クエリへの回答を生成するように操作されるコントローラであって、前記生成は、
(a)クエリが公的にアクセス可能な構成要素用ならば、公的にアクセス可能な構成要素を得るとともに、それを回答に含め、
(b)クエリが複数の機密構成要素のうちのいずれか1つの機密構成要素用ならば、クエリを送信した事業体がメモリ装置に対して認証され、この機密構成要素にアクセスすることができることを提示する、そのような機密構成要素を得るとともに、そのように得られた機密構成要素を回答に含め、かつ
(c)クエリに回答を供給することを含むコントローラと、
を備える装置。
A memory device,
Encryption by controlling access to keys that have a public part and a private part and that need to decrypt the encrypted data stored in either the public part or the private part of the memory device A non-volatile storage medium for storing a control structure for controlling access to the received data, wherein the key is referred to by a key ID, and the control structure is a public access limited to access by an authenticated entity look including possible components and a plurality of sensitive elements, said plurality of sensitive elements includes access to the key ID and key, it authenticated entity is encrypted in accordance with the access right to the control structure A non-volatile storage medium having access to a key for decrypting the stored data ;
A controller that communicates with the non-volatile storage medium and that is operated to generate an answer to a query, the generation comprising:
(A) If the query is for a publicly accessible component, obtain a publicly accessible component and include it in the answer;
(B) If the query is for any one of the plurality of confidential components, the entity that sent the query is authenticated to the memory device and can access this confidential component. Presenting such a confidential component and including in the answer the confidential component so obtained, and (c) providing an answer to the query;
A device comprising:
請求項9記載のメモリ装置において、
クエリを送信した事業体が認証済みの如何に係らず、公的にアクセス可能な構成要素を回答に含めるメモリ装置。
The memory device according to claim 9, wherein
A memory device that includes publicly accessible components in the answer, regardless of whether the entity that sent the query has been authenticated.
請求項9記載のメモリ装置において、
複数の機密構成要素のそれぞれは共有部分と非共有部分とを備え、前記共有部分は全ての認証済み事業体に供給され、前記非共有部分は1つの認証済み事業体のみに供給されるメモリ装置。
The memory device according to claim 9, wherein
Each of the plurality of confidential components includes a shared part and a non-shared part, the shared part being supplied to all authenticated entities, and the non-shared part being supplied to only one authenticated entity .
請求項9記載のメモリ装置において、
公的にアクセス可能な構成要素は、メモリ装置上のソフトウェアアプリケーションとそれぞれの実行状態とのリストを含むメモリ装置。
The memory device according to claim 9, wherein
The publicly accessible component is a memory device that includes a list of software applications on the memory device and their respective execution states.
請求項9記載のメモリ装置において、
公的にアクセス可能な構成要素および複数の機密構成要素は、少なくとも1つの情報オブジェクトグループの中で供給され、グループのうちの1グループは一連のクエリにおける各クエリに応じて送信されるメモリ装置。
The memory device according to claim 9, wherein
A publicly accessible component and a plurality of sensitive components are provided in at least one information object group, and one group of groups is transmitted in response to each query in a series of queries.
JP2009518357A 2006-07-07 2007-06-28 System and method for controlling information supplied from a memory device Expired - Fee Related JP5180203B2 (en)

Applications Claiming Priority (7)

Application Number Priority Date Filing Date Title
US81950706P 2006-07-07 2006-07-07
US60/819,507 2006-07-07
US11/557,051 US20080022395A1 (en) 2006-07-07 2006-11-06 System for Controlling Information Supplied From Memory Device
US11/557,052 2006-11-06
US11/557,051 2006-11-06
US11/557,052 US8266711B2 (en) 2006-07-07 2006-11-06 Method for controlling information supplied from memory device
PCT/US2007/015432 WO2008008245A2 (en) 2006-07-07 2007-06-28 System and method for controlling information supplied from memory device

Publications (2)

Publication Number Publication Date
JP2009543212A JP2009543212A (en) 2009-12-03
JP5180203B2 true JP5180203B2 (en) 2013-04-10

Family

ID=38829240

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009518357A Expired - Fee Related JP5180203B2 (en) 2006-07-07 2007-06-28 System and method for controlling information supplied from a memory device

Country Status (5)

Country Link
EP (1) EP2038800A2 (en)
JP (1) JP5180203B2 (en)
KR (1) KR20090033191A (en)
TW (1) TW200821837A (en)
WO (1) WO2008008245A2 (en)

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7748031B2 (en) 2005-07-08 2010-06-29 Sandisk Corporation Mass storage device with automated credentials loading
KR101202346B1 (en) 2009-04-16 2012-11-16 삼성디스플레이 주식회사 Mask frame assembly for thin layer deposition, manufacturing method of the same and manufacturing method of organic light emitting display device there used
JP5915046B2 (en) * 2011-09-15 2016-05-11 ソニー株式会社 Information processing apparatus, information processing method, and program
JP5747758B2 (en) * 2011-09-15 2015-07-15 ソニー株式会社 Information processing apparatus, information processing method, and program
JP5747757B2 (en) * 2011-09-15 2015-07-15 ソニー株式会社 Information processing apparatus, information processing method, and program
TWI596486B (en) * 2011-11-04 2017-08-21 群聯電子股份有限公司 Memory storage apparatus, memory controller, and method for transmitting and identifying data stream
JP5942612B2 (en) * 2012-06-05 2016-06-29 凸版印刷株式会社 Information storage device and access determination method thereof
KR101991905B1 (en) * 2012-07-19 2019-06-24 삼성전자주식회사 Nonvolatile memory, reading method of nonvolatile memory, and memory system including nonvolatile memory
WO2014078481A1 (en) * 2012-11-15 2014-05-22 Violin Memory Inc. Memorty array with atomic test and set
US9811476B2 (en) 2013-02-28 2017-11-07 Panasonic Intellectual Property Management Co., Ltd. Encryption and recording apparatus, encryption and recording system, and encryption and recording method
KR101661930B1 (en) 2015-08-03 2016-10-05 주식회사 코인플러그 Certificate issuance system based on block chain
KR101661933B1 (en) * 2015-12-16 2016-10-05 주식회사 코인플러그 Ccertificate authentication system and method based on block chain
KR102590439B1 (en) 2018-10-01 2023-10-18 에스케이하이닉스 주식회사 Memory system
JP7505862B2 (en) * 2019-03-14 2024-06-25 オムロン株式会社 CONTROL SYSTEM, CONTROL METHOD, AND CONTROL DEVICE
US20210243035A1 (en) * 2020-02-03 2021-08-05 Micron Technology, Inc. Multi-factor authentication enabled memory sub-system

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7272723B1 (en) * 1999-01-15 2007-09-18 Safenet, Inc. USB-compliant personal key with integral input and output devices
KR20070091349A (en) * 2004-12-21 2007-09-10 샌디스크 코포레이션 System for creating control structure for versatile content control

Also Published As

Publication number Publication date
KR20090033191A (en) 2009-04-01
JP2009543212A (en) 2009-12-03
TW200821837A (en) 2008-05-16
WO2008008245A2 (en) 2008-01-17
WO2008008245A3 (en) 2008-02-28
EP2038800A2 (en) 2009-03-25

Similar Documents

Publication Publication Date Title
JP5180203B2 (en) System and method for controlling information supplied from a memory device
US8613103B2 (en) Content control method using versatile control structure
US8639939B2 (en) Control method using identity objects
US8140843B2 (en) Content control method using certificate chains
US8266711B2 (en) Method for controlling information supplied from memory device
US8245031B2 (en) Content control method using certificate revocation lists
KR101213118B1 (en) Memory System with versatile content control
KR101238848B1 (en) Versatile Content Control With Partitioning
US20080034440A1 (en) Content Control System Using Versatile Control Structure
JP2013514587A (en) Content management method using certificate revocation list
US20080022395A1 (en) System for Controlling Information Supplied From Memory Device
US20080010449A1 (en) Content Control System Using Certificate Chains
US20080010458A1 (en) Control System Using Identity Objects
US20080010452A1 (en) Content Control System Using Certificate Revocation Lists
JP4857284B2 (en) Control structure generation system for multi-purpose content control
JP2009543211A (en) Content management system and method using a generic management structure
JP5178716B2 (en) Content management system and method using certificate revocation list
JP2008524758A5 (en)
JP2009543208A (en) Content management system and method using certificate chain
JP2009543208A5 (en)
JP4972165B2 (en) Control system and method using identity objects
JP2009543210A5 (en)

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20100623

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20111025

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20120214

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120612

A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A711

Effective date: 20120615

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120612

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20120709

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120911

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20121205

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

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20130108

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20130110

R150 Certificate of patent or registration of utility model

Ref document number: 5180203

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

S533 Written request for registration of change of name

Free format text: JAPANESE INTERMEDIATE CODE: R313533

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees