JP2013514587A - 証明書失効リストを用いたコンテンツ管理方法 - Google Patents
証明書失効リストを用いたコンテンツ管理方法 Download PDFInfo
- Publication number
- JP2013514587A JP2013514587A JP2012544547A JP2012544547A JP2013514587A JP 2013514587 A JP2013514587 A JP 2013514587A JP 2012544547 A JP2012544547 A JP 2012544547A JP 2012544547 A JP2012544547 A JP 2012544547A JP 2013514587 A JP2013514587 A JP 2013514587A
- Authority
- JP
- Japan
- Prior art keywords
- certificate
- host
- acr
- revocation list
- key
- 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.)
- Withdrawn
Links
Images
Classifications
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11B—INFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
- G11B20/00—Signal processing not specific to the method of recording or reproducing; Circuits therefor
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/08—Network architectures or network communication protocols for network security for authentication of entities
- H04L63/0823—Network architectures or network communication protocols for network security for authentication of entities using certificates
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/30—Authentication, i.e. establishing the identity or authorisation of security principals
- G06F21/44—Program or device authentication
- G06F21/445—Program or device authentication by mutual authentication, e.g. between devices or programs
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/70—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
- G06F21/78—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data
- G06F21/80—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data in storage media based on magnetic or optical technology, e.g. disks with sectors
- G06F21/805—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data in storage media based on magnetic or optical technology, e.g. disks with sectors using a security table for the storage sub-system
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/321—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving a third party or a trusted authority
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3226—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using a predetermined code, e.g. password, passphrase or PIN
- H04L9/3228—One-time or temporary data, i.e. information which is sent for every authentication or authorization, e.g. one-time-password, one-time-token or one-time-key
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3234—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving additional secure or trusted devices, e.g. TPM, smartcard, USB or software token
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3263—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving certificates, e.g. public key certificate [PKC] or attribute certificate [AC]; Public key infrastructure [PKI] arrangements
- H04L9/3265—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving certificates, e.g. public key certificate [PKC] or attribute certificate [AC]; Public key infrastructure [PKI] arrangements using certificate chains, trees or paths; Hierarchical trust model
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3263—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving certificates, e.g. public key certificate [PKC] or attribute certificate [AC]; Public key infrastructure [PKI] arrangements
- H04L9/3268—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving certificates, e.g. public key certificate [PKC] or attribute certificate [AC]; Public key infrastructure [PKI] arrangements using certificate validation, registration, distribution or revocation, e.g. certificate revocation list [CRL]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3271—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using challenge-response
- H04L9/3273—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using challenge-response for mutual authentication
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/50—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2221/00—Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/21—Indexing 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/2129—Authenticate client device independently of the user
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/60—Digital content management, e.g. content distribution
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/08—Network architectures or network communication protocols for network security for authentication of entities
- H04L63/0869—Network architectures or network communication protocols for network security for authentication of entities for achieving mutual authentication
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Storage Device Security (AREA)
Abstract
ホスト装置は、メモリ装置自体がリストを入手する必要がないように、ホスト証明書および関係証明書失効リストの両方を認証のためにメモリ装置に提示する。証明書失効リストの処理と証明書識別情報の検索は、メモリ装置によって同時に実施されてよい。ホスト装置からメモリ装置への認証を行う証明書失効リストは、メモリ装置がホスト証明書を受信する前にキャッシュされて認められる。
【選択図】図50
【選択図】図50
Description
(関連出願の相互参照)
本出願は、2006年11月6日に出願された米国特許出願第11/557,006号の一部継続出願であり、参照により本明細書に組み込まれ、2006年7月7日に出願された米国仮特許出願第60/819,507号の利益を主張するものである。
本出願は、2006年11月6日に出願された米国特許出願第11/557,006号の一部継続出願であり、参照により本明細書に組み込まれ、2006年7月7日に出願された米国仮特許出願第60/819,507号の利益を主張するものである。
本出願は2005年12月20日に出願された米国特許出願第11/313,870号に関し、同出願は2004年12月21日に出願された米国仮特許出願第60/638,804号の利益を主張するものである。本出願はさらに2005年12月20日に出願された米国特許出願第11/314,411号に関する。本出願はさらに2005年12月20日に出願された米国特許出願第11/314,410号に関する。本出願はさらに2005年12月20日に出願された米国特許出願第11/313,536号に関する。本出願はさらに2005年12月20日に出願された米国特許出願第11/313,538号に関する。本出願はさらに2005年12月20日に出願された米国特許出願第11/314,055号に関する。本出願はさらに2005年12月20日に出願された米国特許出願第11/314,052号に関する。本出願はさらに2005年12月20日に出願された米国特許出願第11/314,053号に関する。
本出願は、2006年11月6日に出願された「Content Control Method Using Certificate Chains」と題するHoltzmanらの米国特許出願第11/557,028号と、2006年11月6日に出願された「Content Control System Using Certificate Chains」と題するHoltzmanらの米国特許出願第11/557,010号と、2006年11月6日に出願された「Content Control System Using Certificate Revocation Lists」と題するHoltzmanらの米国特許出願第11/557,026号と、2006年11月6日に出願された「Content Control Method Using Versatile Control Structure」と題するHoltzmanらの米国特許出願第11/557,049号と、2006年11月6日に出願された「Content Control System Using Versatile Control Structure」と題するHoltzmanらの米国特許出願第11/557,056号と、2006年11月6日に出願された「Method for Controlling Information Supplied From Memory Device」と題するHoltzmanらの米国特許出願第11/557,052号と、2006年11月6日に出願された「System for Controlling Information Supplied From Memory Device」と題するHoltzmanらの米国特許出願第11/557,051号と、2006年11月6日に出願された「Control Method Using Identity Objects」と題するHoltzmanらの米国特許出願第11/557,041号と、2006年11月6日に出願された「Control System Using Identity Objects」と題するHoltzmanらの米国特許出願第11/557,039号と、に関する。
前述の出願は、あたかも本明細書で完全に説明されるかのように、その内容全体が参照により本明細書に組み込まれる。
本発明は、一般にメモリシステムに関し、特に汎用的なコンテンツ管理機能を備えるメモリシステムに関する。
フラッシュ・メモリ・カードなどの記憶装置は、写真などのデジタルコンテンツを記憶するのに最適な記憶媒体となっている。また、フラッシュ・メモリ・カードは他の種類の媒体コンテンツの配信に使用される場合もある。さらに、コンピュータ、デジタルカメラ、携帯電話、携帯端末(PDA)、およびMP3プレーヤなどのメディアプレーヤなど、ホスト装置の多様化は、フラッシュ・メモリ・カード内に記憶される媒体コンテンツを提供する可能性を今や有している。それゆえ、フラッシュ・メモリ・カードは、他の種類の携帯記憶装置と同様に、デジタルコンテンツを配信する、幅広く使用される媒体となる可能性が大きい。
デジタルコンテンツのオーナーおよび配信業者にとって主要な関心事の1つは、インターネットなどのネットワークからのダウンロードを通じて、あるいは記憶装置上のコンテンツの配信を通じてコンテンツが配信された後、認可取得者のみがコンテンツへのアクセスを許可されるべきであるということである。不正アクセスを回避する方法の1つは、コンテンツへのアクセスが当事者に許諾される前に当事者のアイデンティティを確認するシステムを採用することである。公開鍵基盤(PKI)などのシステムがこの目的で開発されている。PKIシステムでは、証明機関(CA)として知られる信頼された機関が、個人または組織のアイデンティティを確認する証明書を発行する。アイデンティティの証拠を確認したい組織および個人などの当事者は、自身のアイデンティティを確認する十分な証拠を証明機関に登録することができる。当事者のアイデンティティがCAに確認されると、CAは証明書をこうした当事者に発行することになる。証明書は、典型的に、証明書を発行したCAの名称、証明書の発行の対象となった当事者の名称、当事者の公開鍵、およびCAの秘密鍵により署名された(典型的に公開鍵のダイジェストを暗号化することにより)当事者の公開鍵を含む。
CAの秘密鍵および公開鍵は、公開鍵を用いて暗号化されたデータが秘密鍵によって復号化されるように関係付けられ、逆も同様である。それゆえ、秘密鍵および公開鍵は鍵対を形成する。暗号化技術に関する秘密鍵および公開鍵対の説明は、RSAセキュリティ(RSA Security Inc.)の2002年6月14日付、「PKCS#1 v2.1:RSA Cryptography Standard」に記載されている。CAの公開鍵は一般に利用可能となっている。したがって、一当事者が別の当事者によって提示された証明書を真正かどうか検証したい場合、検証する当事者は、復号化アルゴリズムを用いて証明書内の公開鍵の暗号化されたダイジェストを復号化するために、CAの公開鍵を使用するだけでよい。また、復号化アルゴリズムは、典型的に、証明書の中でも識別される。証明書の中の公開鍵の復号化されたダイジェストが、証明書の中の暗号化されていない公開鍵のダイジェストに一致する場合、これは、証明書の中の公開鍵がCA内の信用とCAの公開鍵の信頼性とに基づいて改ざんされておらず真正であることを証明している。
ある当事者のアイデンティティを検証するために、検証する側は、典型的に、質問(例えば、乱数)を送信し、相手方には自身の証明書と質問に対する回答(すなわち、相手方の秘密鍵で暗号化された乱数)の送信を求める。回答と証明書が受信されると、検証する側はまず、証明書の公開鍵が真正かどうかを前述したプロセスによって検証する。公開鍵が真正であると検証された場合、検証する側は証明書内の中にある公開鍵を使用して回答を復号化し、その結果を当初送信した乱数と比較することができる。それらが一致する場合は相手方が正しい秘密鍵を所持していることを意味し、これをもって相手方は自身のアイデンティティを証明したことになる。証明書の中の公開鍵が真正でないか、あるいは復号化された回答が質問に一致しないと、認証は失敗に終わる。それゆえ、自身のアイデンティティを証明することを望む当事者は、証明書および対応する秘密鍵の両方を所持する必要がある。
前述したメカニズムにより、ことによると互いを信用できない両方の当事者でも、前述したプロセスを用いて、相手方の証明書の中にある相手方の公開鍵を検証することよって信用を成立させることができる。国際電気通信連合(ITU)電気通信標準化部門(ITU−T)の勧告X.509は証明書の枠組みを定める規格書である。証明書とその運用に関する詳しい情報はこの規格書で確認することができる。
運営管理と大規模組織の便宜を図るため、ルートCA(root CA)として知られる上位CAが、証明書発行の責務をいくつかの下位機関に委譲するとよい場合がある。例えば、2レベル階層において、最上位のルートCAは下位機関の公開鍵が真正であることを証明するための下位CAに証明書を発行する。そして、下位CAは前述した登録プロセスを通じて当事者に証明書を発行する。検証プロセスは証明書連鎖の頂点から始まる。検証する側はまず、ルートCAの公開鍵(真正と判明)を使用して、下位CAの公開鍵の真性を検証する。下位CAの公開鍵の真性が検証されると、下位CAから証明書の発行を受けた当事者の公開鍵の真性を、下位CAの検証済み公開鍵を使用して検証することができる。このように、ルートCAと下位CAとによって発行される証明書により、アイデンティティ検証の対象となる当事者の2つの証明書からなる連鎖が形成される。
当然ながら、証明書階層のレベルは2レベルを超えることもあり、ルートCAを除く下位レベルの各CAはその権限を上位CAから受け取り、上位CAによって発行された公開鍵を含む証明書を所持する。したがって、相手方の公開鍵の真性を検証するには、ルートCAに至る経路、すなわち証明書の連鎖をたどる必要がある。換言すると、アイデンティティを立証するには、アイデンティティを証明する必要がある側が、自身の証明書からルートCA証明書にかけて一連の証明書を提示する必要がある可能性がある。
証明書は一定の有効期間にわたって発行される。しかしながら、名称の変更、証明書発行元との関係の変化、対応する秘密鍵の侵害または侵害の疑いなどにより、有効期間の満了に先立ち証明書が無効になることもある。このような場合には証明機関(CA)が証明書を失効させる必要がある。証明機関は、失効させた全証明書の通し番号が記載された証明書失効リストを定期的に公表する。従来の証明書検証方法では、認証する側のエンティティ(entity)には、証明書失効リストを所持するか、あるいは証明機関(CA)から証明書失効リストを取り寄せることができ、認証のために提示される証明書の通し番号をリストに照らしてチェックして、提示された証明書が失効済みかどうかを判断することが求められる。認証する側のエンティティがメモリまたは記憶装置である場合、装置そのものを使用して証明機関から証明書失効リストを取り寄せることはしていない。その結果、認証のために提示される証明書を、メモリまたは記憶装置で検証することはできない。したがって、証明書失効リストを入手せずとも、メモリまたは記憶装置で証明書を検証できる改良されたシステムの提供が望まれる。
メモリ装置は、それだけで証明書失効リストを入手するために使用されてはいない。したがって、ホスト装置が証明書に関する証明書失効リストを併せて提示することなく認証のために記憶装置に証明書を提示する場合、ホスト装置から提示される証明書が関連証明書失効リストに載っているか否かを、記憶装置は確認できないことになる。そのため、本発明の一実施形態は、証明書、さらには証明書に関する証明書失効リストに加えて、ホスト装置が提示するシステムによってこの問題を回避しうるとの認識に基づくものである。こうして、記憶装置は、ホスト装置から送信される証明書失効リストの中の証明書の通し番号など、証明書の識別情報を照合することによって証明書が真性であることを検証することができる。
証明書失効リストが、その通し番号などの失効した証明書についての多くの識別情報を含む場合、リストはきわめて冗長になる可能性がある。それゆえ、別の実施形態では、証明書失効リストの一部分が装置によって受信され、装置はその一部分を順番に処理する。また、装置は、処理および検索が同時に行われる場合にリスト上のホストから受信された証明書についての、リファレンスまたは識別情報を検索する。処理および検索は同時に行われるので、証明書を検証する処理は効率化が進む。
前述のように、記憶装置は証明書失効リストを入手するために使用されてこなかったが、ホスト装置は証明書失効リストを入手するために使用されてきた。それゆえ、別の実施形態では、ホスト装置はホスト装置の認証のために証明書とともに証明書失効リストを提示する必要があるが、記憶装置、すなわちメモリ装置に対してはそのような必要性がなく、証明書を提示するだけで済むことになる。その結果、メモリ装置証明書を検証する適正な証明書失効リストを入手できるかどうかは、ホスト装置次第である。
証明書失効リストを自由に入手するためにホスト装置を利用することが可能であるものの、記憶装置の中の暗号化コンテンツにアクセスしたいときなど、その都度頻繁にそうせねばならないのは、多くの消費者にとって煩わしい可能性がある。それゆえ、別の実施形態では、少なくとも1つの証明書失効リストがメモリの共有領域に記憶され、メモリはユーザまたは消費者がアクセスしたい被保護データまたはコンテンツも記憶する。こうすると、消費者またはユーザは、メモリに記憶されたコンテンツにアクセスしたいときに、その都度証明書失効リストを証明機関から入手する必要がなくなる。代わりに、消費者またはユーザは、メモリの共有領域に記憶された少なくとも1つの証明書失効リストを検索してから、この証明書失効リストを認証とコンテンツへのアクセスのためにメモリに提示するだけでよい。多くの種類のメモリの共有領域は、典型的に、ホスト装置によって管理され、メモリそのものによっては管理されない。
別の実施形態では、不揮発性記憶装置は、既に装置に記憶された証明書失効リストを利用することができ、ホストが証明書失効リストを装置から検索し、検索したリストを装置に再び提示する必要はない。
本明細書において言及するすべての特許、特許出願、論文、書籍、仕様書、規格書、その他の出版物、文書、およびその他の事物は、あらゆる目的でその全体が参照により本明細書に援用されている。援用される出版物、文書、または事物のいずれかと本明細書の本文章との間の用語の定義および用法に不一致や対立がある場合、本明細書における用語の定義および用法が優先するものとする。
図は本発明の態様の様々な実施形態における特徴を説明している。説明を簡単にするために、本出願では同一の構成要素を同じ数字で表示する。
本発明の様々な態様が実施されうる場合のメモリシステムの例を、図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内のコンテンツは多くの異なるホスト装置の各々によってアクセスされうる。
以下の説明では、メモリシステム10は、さらに、メモリ装置10、あるいは簡単にメモリ装置または装置と称される。本発明は本明細書においてフラッシュメモリを参照して説明されるが、本発明は、磁気ディスク、光学CD、ならびにその他あらゆるタイプの書換え可能な不揮発性メモリシステムなど、他のタイプのメモリにも適用されてもよい。
バッファ管理ユニット14は、ホスト・ダイレクト・メモリ・アクセス(HDMA)32、フラッシュ・ダイレクト・メモリ・アクセス(FDMA)34、アービタ(an arbiter)36、バッファ・ランダム・アクセス・メモリ(BRAM)38、および暗号エンジン40を含む。アービタ36は共有バスアービタであり、これにより、唯一のマスタまたはイニシエータ(これは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との間でデータを転送しセクタ完了を示すことに関与する。
一実施形態では、メモリシステム10は、暗号化および/または復号化に使用される鍵値を生成し、この値は、ホスト装置24などの外部装置に実質的にアクセス可能でないことが好ましい。あるいは、また、鍵値はライセンスサーバなどによってシステム10の外部で生成されてシステム10に送信されてもよい。鍵値の生成方法に関わらず、鍵値がシステム10内に記憶された時点で、認証エンティティのみが鍵値にアクセスしうるようになる。しかしながら、ホスト装置はメモリシステム10にデータをファイル形式で読み書きするので、暗号化および復号化は、典型的に、ファイルごとに行われる。他の多くのタイプの記憶装置と同様に、メモリ装置10はファイルを管理しない。メモリ20は、ファイルの論理アドレスが識別される場合にファイル・アロケーション・テーブル(FAT)を必ず記憶するが、FATは典型的にコントローラ12によってではなく、ホスト装置24によってアクセスされて管理される。したがって、特定ファイル内のデータを暗号化するために、コントローラ12はホスト装置を頼りにメモリ20内のファイルにあるデータの論理アドレスを送信する必要があり、したがって、特定ファイルのデータはシステム10のみに利用可能な鍵値を用いてシステム10によって検索され、暗号化および/または復号化することができる。
ファイル内のデータの暗号処理に際して、ホスト装置24およびメモリシステム10の両方に同じ鍵を参照する機会を提供するために、ホスト装置は、システム10によって生成される鍵値あるいはシステム10に送信される鍵値の各々に対してリファレンスを提供する。この場合、このようなリファレンスは、単に鍵IDであってよい。それゆえ、ホスト24は、システム10によって暗号処理される各ファイルを鍵IDと関連付け、システム10は、データを暗号処理するために使用される各鍵値をホストによって提供される鍵IDと関連付ける。それゆえ、ホストは、データの暗号処理を要求するとき、その要求を、メモリ20から取り出されあるいはメモリ20に記憶されるデータの論理アドレスおよび鍵IDとともに、システム10に送信することになる。システム10は、鍵値を生成しあるいは受信し、ホスト24によって提供される鍵IDをこの鍵値と関連付けて暗号処理を実施する。こうすると、メモリシステム10の動作方法を変更しなくて済む一方、鍵値への排他的アクセスを含む、鍵を用いた暗号処理を完全に制御することができる。換言すると、いったん鍵値がシステム10に記憶されるか、あるいはシステム10によって生成されると、システムは、FATの独占的制御によるファイルの管理をホスト24に継続させつつ、暗号処理に用いる鍵値の管理を一手に引き受ける。鍵値がメモリシステム10に記憶された後、ホスト装置24は、データの暗号処理に用いる鍵値の管理に一切関与しない。
ホスト24によって提供される鍵IDと、メモリシステムによって送信または生成される鍵値とは、実施形態の1つにおいて、「コンテンツ暗号化鍵」またはCEKと以下で称される量の、2つの属性を形成する。ホスト24は、各鍵IDを1つまたは複数のファイルと関連付けてもよい。またホスト24は、各鍵IDを非編集データと関連付けるか、あるいは、何らかの方法で編集され、かつ完全なファイルに編集されたデータに限定されないデータと関連付けてもよい。
ユーザまたはアプリケーションが、システム10の保護されたコンテンツまたは領域にアクセスするためには、システム10に事前に登録される認証情報を用いて認証される必要がある。認証情報は、このような認証情報によって特定のユーザまたはアプリケーションに与えられたアクセス権に関係している。事前登録プロセスでは、システム10は、アイデンティティの記録およびユーザまたはアプリケーションの認証情報と、ユーザまたはアプリケーションによって決定されホスト24を通じて提供されるこうしたアイデンティティおよび認証情報に関連するアクセス権と、を記憶する。事前登録の完了後、ユーザまたはアプリケーションがメモリ20へのデータの書込みを要求するとき、ホスト装置を通じてそのアイデンティティおよび認証情報と、データを暗号化する鍵IDと、暗号化データを記憶する必要がある場合の論理アドレスと、を提供する必要がある。システム10は、鍵値を生成または受信し、この値をホスト装置によって提供される鍵IDと関連付け、書き込まれるデータを暗号化するために使用される鍵値に対する鍵IDをこのユーザまたはアプリケーションのための記録または表に記憶する。この後、システムはデータを暗号化し、暗号化されたデータを、生成または受信された鍵値とともに、ホストによって指定されたアドレスに記憶する。
ユーザまたはアプリケーションが、メモリ20から暗号化されたデータの読出しを要求するとき、そのアイデンティティおよび認証情報と、要求されたデータを暗号化するために事前使用される鍵に対する鍵IDと、暗号化されたデータが記憶される論理アドレスと、を提供する必要がある。システム10は、この後、ホストによって提供されるユーザまたはアプリケーションアイデンティティおよび認証情報を、その記録に記憶されたユーザまたはアプリケーションアイデンティティおよび認証情報と照合する。これらが一致する場合、システム10は、ユーザまたはアプリケーションによって提供された鍵IDに関連する鍵値をそのメモリから取り出し、鍵値を用いてホスト装置によって指定されたアドレスに記憶されたデータを復号化し、復号化されたデータをユーザまたはアプリケーションに送信する。
認証のための認証情報を、暗号化処理に使用される鍵の管理から分離することによって、認証情報を共有せずにデータにアクセスする権利を共有することが可能である。それゆえ、種々の認証情報を有するユーザまたはアプリケーションのグループは、同じデータにアクセスするために同じ鍵にアクセスすることができるが、このグループ外部のユーザはアクセスすることができない。グループ内のすべてのユーザまたはアプリケーションは同じデータにアクセスしてもよいが、これらのユーザまたはアプリケーションは異なる権利をさらに有していてもよい。それゆえ、一部のユーザまたはアプリケーションはリード・オンリー・アクセスしてもよく、他のユーザまたはアプリケーションはライト・オンリー・アクセスしてもよく、さらに他のユーザまたはアプリケーションはこれら両方のアクセスをしてもよい。システム10は、ユーザまたはアプリケーションのアイデンティティおよび認証情報と、ユーザまたはアプリケーションがアクセスする鍵IDと、鍵IDの各々に対する関連アクセス権と、の記録を維持する。そのため、すべてが適正に認証されたホスト装置によって制御されるものとして、システム10では、特定のユーザまたはアプリケーションの鍵IDの追加または削除を行うことで、当該鍵IDに関連するアクセス権を変更したり、あるユーザまたはアプリケーションから別のユーザまたはアプリケーションにアクセス権を委譲したり、さらにはユーザまたはアプリケーションの記録または表を削除または追加したりすることができる。記憶された記録は、一定の鍵にアクセスするためにセキュアチャネルが必要であることを規定してもよい。認証は、パスワードとともに対称または非対称アルゴリズムを使用して行われてもよい。
特に重要なのは、メモリシステム10内の保護されたコンテンツの移植性である。鍵値へのアクセスがメモリシステムによって制御される実施形態では、システムを組み込むメモリシステムまたは記憶装置が、ある外部システムから別の外部システムに移動されるとき、そこに記憶されたコンテンツのセキュリティが維持される。鍵がメモリシステムによって生成されようとメモリシステムの外部に由来しようと、外部システムはメモリシステムによって完全に制御されるように認証されていない限り、システム10内のこのようなコンテンツにアクセスすることができない。このように認証された後でさえ、アクセスはメモリシステムによって全体として制御され、外部システムはメモリシステム内のプリセットされた記録に従って制御された形でしかアクセスすることができない。要求がこのような記録に適合しなければ、要求は拒絶されることになる。
コンテンツを保護する際の柔軟性を高めるために、以下でパーティションと称するメモリの一定領域が、適正に認証されたユーザまたはアプリケーションのみによってアクセスされうることが想定される。鍵ベースのデータ暗号化についての前述の特徴を併用した場合、システム10はより優れたデータ保護能力を備える。図2に示すように、フラッシュメモリ20は、その記憶容量が複数のパーティション(ユーザ領域またはパーティションおよびカスタムパーティション)に分割されてもよい。ユーザ領域またはパーティションP0は、認証なしですべてのユーザおよびアプリケーションにアクセス可能である。ユーザ領域に記憶されたデータのすべてのビット値は、どんなアプリケーションまたはユーザによっても読み書きされうるが、データ読出しが暗号化される場合、復号化する権限のないユーザまたはアプリケーションは、ユーザ領域に記憶されたビット値により表される情報にアクセスできないことになる。これは、例えば、ユーザ領域P0に記憶されたファイル102および104によって説明される。さらにユーザ領域に記憶されるのは、すべてのアプリケーションおよびユーザによって読み出され理解されうる106などの暗号化されていないファイルである。それゆえ、図面上では、ファイル102および104などのように、暗号化されたファイルはロック付きで示す。
権限のないアプリケーションまたはユーザは、ユーザ領域P0で暗号化されたファイルを解釈できないが、このようなアプリケーションまたはユーザであってもファイルを削除したり破壊したりすることは可能であり、用途によっては好ましくない場合がある。このためメモリ20には、パーティションP1およびP2などの、事前の認証なくしてアクセスできない被保護カスタムパーティションもある。この用途の実施形態に使える認証プロセスを、以下で説明する。
同じく図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のものとも異なる。
セキュア・ストレージ・アプリケーション(SSA)は本発明の一実施形態を例示するメモリシステム10のセキュリティアプリケーションであり、前述した機能の多くはこれを用いて実施することができる。SSAは、メモリ20またはCPU12の不揮発性メモリ(図示せず)に記憶されたデータベースを備えるソフトウェアまたはコンピュータコードとして実装でき、RAM12aに読み込まれ、CPU12によって実行される。下表には、SSAに言及する場合に用いる頭字語が記されている。
<SSAシステムの説明>
SSAの主な役割は、データの保護と完全性とアクセス制御である。データとは、ある種の大容量記憶装置に一目瞭然な状態で記憶される場合があるファイルである。SSAシステムは記憶システムの上部に位置し、記憶されたホストファイルのためのセキュリティ層を加え、後述するセキュリティデータ構造を通じてセキュリティ機能を提供する。
SSAの主な役割は、データの保護と完全性とアクセス制御である。データとは、ある種の大容量記憶装置に一目瞭然な状態で記憶される場合があるファイルである。SSAシステムは記憶システムの上部に位置し、記憶されたホストファイルのためのセキュリティ層を加え、後述するセキュリティデータ構造を通じてセキュリティ機能を提供する。
SSAの主な仕事は、メモリに記憶された(保護された)コンテンツに関わる様々な権利を管理することである。メモリアプリケーションは、複数の記憶コンテンツに対する、複数のユーザおよびコンテンツ権利を管理する必要がある。ホストアプリケーションは、ホスト側から、提示されたドライブとパーティションを見るほか、記憶装置に記憶されたファイルの位置を管理し表現するファイル・アロケーション・テーブル(FAT)を見る。
この場合の記憶装置は、パーティションに分割されたNANDフラッシュチップを使用するが、他の携帯型記憶装置も使用でき、本発明の範囲内にある。これらのパーティションは一連の論理アドレスであり、その境界は開始アドレスと終端アドレスで区切られる。したがって、必要に応じて、非表示のパーティションへのアクセスに制限を設けることができ、それにはソフトウェア(メモリ20に記憶されたソフトウェアなど)によって上記の境界内のアドレスにそのような制限を関連付ける。SSAは、自身が管理する論理アドレスの境界によって、パーティションを完全に認識しうる。SSAシステムは、パーティションを用いて、権限を有していないホストアプリケーションからデータを物理的に保護する。ホストにとってのパーティションは、データファイルが記憶される専有空間を規定するメカニズムである。これらのパーティションは公開しても、非公開もしくは非表示としてもよい。公開する場合、記憶装置にアクセスできる者であれば誰でも装置におけるこれらのパーティションの存在を見取って、かつ認識することができる。非公開もしくは非表示にする場合、選ばれたホストアプリケーションのみがこれらのパーティションにアクセスでき、記憶装置におけるこれらの存在を認識できる。
図3は、メモリのパーティションP0、P1、P2、およびP3を示すメモリの概略図であり(当然ながら5つ以上のパーティションが使われることも、あるいは3つ以下のパーティションが使われることもある)、P0はいずれのエンティティでも認証なしでアクセスできる公開パーティションである。
非公開パーティション(P1、P2、またはP3など)の中にあるファイルへのアクセスは非表示にされる。ホストによるパーティションへのアクセスを阻止することにより、フラッシュ装置(例えば、フラッシュカード)は、パーティションの中でデータファイルの保護を達成する。しかしながら、この種の保護は、非表示パーティションに常駐する論理アドレスに記憶されたデータへのアクセスに制限を設けることによって、非表示パーティションの中にあるすべてのファイルを囲い込むものである。換言すると、一連の論理アドレスに制限を関連付けるものである。そのパーティションにアクセスできるユーザ/ホストはいずれも、内部にあるすべてのファイルに無制限にアクセス可能である。様々なファイル(またはファイル群)を互いに分離するため、SSAシステムは、鍵と、鍵のリファレンスすなわち鍵IDとを用いて、別の保護および完全性レベルをファイル(またはファイル群)単位で提供する。様々なメモリアドレスでデータを暗号化するために用いられる特定の鍵値の鍵リファレンス(すなわち鍵ID)は、暗号化データを含む容器または領域に例えることができる。このため、図4では、鍵IDと関連付けられた鍵値を用いて暗号化されたファイルを取り囲む領域として、鍵リファレンス(すなわち鍵ID)(例えば、「鍵1」および「鍵2」)が図形で示されている。
図4を参照すると、例えば、ファイルAは鍵IDで囲まれていないため、いずれのエンティティでも認証なしでファイルAにアクセスすることができる。公開パーティションの中にあるファイルBは、いずれのエンティティでも読出しや上書きを行えるが、その中のデータはID「鍵1」を有する鍵で暗号化されているため、このような鍵にアクセスできるエンティティでない限り、ファイルBの中にある情報にはアクセスすることができない。このような鍵値と鍵リファレンス(すなわち、鍵ID)の使用は、前述したパーティションによる保護とは異なり、論理的な保護のみを提供する。つまり、パーティション(公開または非公開)にアクセスできるホストであればいずれでもパーティション全体の中で暗号化データを含むデータを読み書きすることができる。しかしながら、データは暗号化されているため、権限を有していないユーザはデータを破壊することしかできない。権限を有していないユーザは、発覚することなく、このデータを変更できない。暗号化および/または復号化鍵へのアクセスを制限することにより、権限を有するエンティティのみにデータの使用を認めることができる。P0では、ファイルBおよびCも、鍵ID「鍵2」を有する鍵を使用して暗号化されている。
データの機密保護と完全性は、コンテンツ暗号化鍵(CEK)をCEK当たり1つずつ使用する、対称暗号化法で提供することができる。SSAの実施形態では、CEKの鍵値がフラッシュ装置(例えば、フラッシュカード)によって生成または受信され、内部でのみ使用され、外部に対して秘密に保たれる。暗号化されるデータでハッシュ計算を行うか、あるいは暗号を連鎖ブロック化することによって、データ完全性を確保することもできる。
パーティション内のすべてのデータが、異なる鍵によって暗号化されるとともに、異なる鍵IDが割り振られるわけではない。公開またはユーザファイルの中、またはオペレーティングシステム領域(すなわち、FAT)の中で、一定の論理アドレスに、鍵または鍵リファレンスが割り振られない場合がある。それゆえ、パーティション自体にアクセスできるエンティティであれば、いずれもこれにアクセスすることができる。
鍵およびパーティションの作成や、パーティションにおけるデータの読み書きや、鍵の使用を望むエンティティは、アクセス制御記録(ACR)を通じてSSAシステムにログインする必要がある。SSAシステムにおけるACRの特権は、「アクション」と呼ばれる。どのACRでも3種類のアクション、すなわちパーティションおよび鍵/鍵IDの作成と、パーティションおよび鍵へのアクセスと、他のACRの作成/更新と、を実行する「権限」を有することができる。
ACRは、ACRグループ、すなわち、AGPと呼ばれるグループに整理される。ACRの認証に成功するとSSAシステムがセッションを開放し、このセッションの中でACRのアクションを実行することができる。ACRとAGPは、ポリシーに従ってパーティションや鍵へのアクセスを制御するためのセキュリティデータ構造である。
<ユーザパーティション>
SSAシステムは、ユーザパーティションとも称される、1つまたは複数の公開パーティションを管理する。このパーティションは、記憶装置に存在し、記憶装置の標準的な読み書きコマンドによってアクセスされうるパーティションである。パーティションのサイズと装置上のパーティションの存在とに関する情報の取得は、ホストシステムから隠されないことが好ましい。
SSAシステムは、ユーザパーティションとも称される、1つまたは複数の公開パーティションを管理する。このパーティションは、記憶装置に存在し、記憶装置の標準的な読み書きコマンドによってアクセスされうるパーティションである。パーティションのサイズと装置上のパーティションの存在とに関する情報の取得は、ホストシステムから隠されないことが好ましい。
SSAシステムでは、一般的な読み書きコマンドまたはSSAコマンドのいずれかによって、このパーティションにアクセスすることができる。したがって、パーティションへのアクセスは、特定のACRに限定されないことが好ましい。しかしなら、SSAシステムでは、ホスト装置をユーザパーティションへのアクセスに限定しうるようにすることができる。読出しおよび書込みのアクセスは、個別に有効/無効にされうる。4つすべての組合せ(例えば、書込み限定、読出し限定(書込み防止)、読出しおよび書込み、およびアクセスなし)が可能である。
SSAシステムは、ACRによって、鍵IDをユーザパーティション内のファイルと関連付け、このような鍵IDに関連する鍵を用いて個々のファイルを暗号化することができる。ユーザパーティション内の暗号化されたファイルへのアクセスと、パーティションに対するアクセス権の設定とは、SSAコマンドセットを用いて行われることになる。前述の機能は、ファイルに編成されないデータにも適用される。
<SSAパーティション>
SSAパーティションは、SSAコマンドのみによってアクセスされうる、(認証されていない当事者から)隠されたパーティションである。SSAシステムでは、ACRへのログオンによって確立されたセッション(後述する)以外からは、ホスト装置がSSAパーティションにアクセスできないことが好ましい。同様に、SSAは、確立されたセッションからの要求がない限り、SSAパーティションの存在、サイズ、およびアクセス権限に関する情報を提供しないことが好ましい。
SSAパーティションは、SSAコマンドのみによってアクセスされうる、(認証されていない当事者から)隠されたパーティションである。SSAシステムでは、ACRへのログオンによって確立されたセッション(後述する)以外からは、ホスト装置がSSAパーティションにアクセスできないことが好ましい。同様に、SSAは、確立されたセッションからの要求がない限り、SSAパーティションの存在、サイズ、およびアクセス権限に関する情報を提供しないことが好ましい。
パーティションへのアクセス権は、ACR許可から得られる。ACRがSSAシステムにログインされた時点で、SSAシステムは他のACRとパーティションを共有することができる(後述)。パーティションが作成されると、ホストは、そのパーティションに対するリファレンス名またはID(例えば、図3および4におけるP0〜P3)を提供する。このリファレンスは、パーティションへのさらなる読出しおよび書込みコマンドに使用される。
<記憶装置の分割>
装置の使用可能な記憶容量のすべてが、ユーザパーティションと、その時点で構成済みのSSAパーティションとに割り当てられることが好ましい。したがって、再分割において、既存のパーティションの再構成を伴うことがある。装置容量(全パーティションの合計サイズ)の正味の変化は、ゼロである。装置メモリ空間におけるパーティションのIDは、ホストシステムによって設定される。
装置の使用可能な記憶容量のすべてが、ユーザパーティションと、その時点で構成済みのSSAパーティションとに割り当てられることが好ましい。したがって、再分割において、既存のパーティションの再構成を伴うことがある。装置容量(全パーティションの合計サイズ)の正味の変化は、ゼロである。装置メモリ空間におけるパーティションのIDは、ホストシステムによって設定される。
ホストシステムは、既存パーティションのいずれか1つを2つのより小さいパーティションに再分割したり、2つの既存パーティション(隣接する場合とそうでない場合とがある)を1つに併合したりすることができる。分割されたパーティションや併合されたパーティションの中のデータは、ホストの判断で消去するか、あるいは現状のまま残すことができる。
記憶装置の再分割によってデータが(記憶装置の論理アドレス空間の中での消去や移動により)失われるおそれがあるため、SSAシステムは、再分割において厳重な制限を課す。つまり、ルートAGP(後述)に常駐するACRにのみ再分割コマンドの発行が許可され、これが参照できるパーティションは自身が所有するパーティションのみである。パーティションの中でデータがどのように構成されているかはSSAシステムには分からないため(FATまたはその他のファイルシステム構造)、装置の再分割において構成を組み直すことに関与するのはホストである。
ユーザパーティションの再分割によって、ホストOSから見たこのパーティションのサイズおよびその他の属性は変化する。
再分割の後、ホストシステムは、SSAシステムにおけるACRが不在パーティションを参照していないことを確認する責任がある。これらのACRが適切に削除または更新されなければ、不在パーティションに対してこれらのACRに代わって行われるアクセスの試みは以後システムによって検出され、拒絶される。削除される鍵および鍵IDについても同様の配慮がなされる。
<鍵、鍵ID、および論理的保護>
ある特定の非表示パーティションに書き込まれたファイルは、不特定多数の人に対して非表示にされる。しかし、いったんエンティティ(敵対的なエンティティ、またはそうでないエンティティ)が情報を得てこのパーティションにアクセスすると、そのファイルは使用可能となり一目瞭然となる。そのファイルのさらなる安全確保のため、SSAは非表示パーティションでファイルを暗号化でき、このファイルの復号化に用いる鍵にアクセスするための認証情報は、好ましくはパーティションにアクセスするためのものとは異なるものにする。ファイルはホストによって全面的に制御され、管理されるため、ファイルにCEKを割り振ることには問題がある。これを解決するには、SSAが了解する何か、すなわち鍵IDにファイルを関連付ける。つまりSSAによって鍵が作成されると、ホストはその鍵を用いて暗号化されるデータにこの鍵の鍵IDを割り振る。鍵が鍵IDとともにSSAに送信される場合、鍵と鍵IDを互いに関連付けることは容易である。
ある特定の非表示パーティションに書き込まれたファイルは、不特定多数の人に対して非表示にされる。しかし、いったんエンティティ(敵対的なエンティティ、またはそうでないエンティティ)が情報を得てこのパーティションにアクセスすると、そのファイルは使用可能となり一目瞭然となる。そのファイルのさらなる安全確保のため、SSAは非表示パーティションでファイルを暗号化でき、このファイルの復号化に用いる鍵にアクセスするための認証情報は、好ましくはパーティションにアクセスするためのものとは異なるものにする。ファイルはホストによって全面的に制御され、管理されるため、ファイルにCEKを割り振ることには問題がある。これを解決するには、SSAが了解する何か、すなわち鍵IDにファイルを関連付ける。つまりSSAによって鍵が作成されると、ホストはその鍵を用いて暗号化されるデータにこの鍵の鍵IDを割り振る。鍵が鍵IDとともにSSAに送信される場合、鍵と鍵IDを互いに関連付けることは容易である。
鍵値および鍵IDは論理セキュリティを提供する。所与の鍵IDに関連付けられたすべてのデータは、その場所とは関係なく、そのリファレンス名または鍵IDがホストアプリケーションによって作成されて一意的に提供されるコンテンツ暗号化鍵(CEK)における同じ鍵値で暗号化される。あるエンティティが(ACRによる認証によって)非表示パーティションへのアクセスを得て、このパーティション内の暗号化されたファイルに対して読出しまたは書込みを行いたい場合、そのエンティティは、ファイルと関連付けられる鍵IDにアクセスする必要がある。SSAは、この鍵IDに対する鍵へのアクセスを認めるとき、この鍵IDに関連付けられたCEKの鍵値をロードし、これをホストに送信する前にデータを復号化するか、あるいはこれをフラッシュメモリ20に書き込む前にデータを暗号化する。一実施形態では、鍵IDに関連付けられたCEKの鍵値は、SSAシステムによって一度無作為に作成されて、SSAシステムによって維持される。SSAシステムの外部には、CEKのこの鍵値を認識し、またはこれにアクセスする者は誰もいない。外界は、リファレンスまたは鍵IDを提供して使用するだけで、CEKの鍵値を提供も使用もしない。鍵値は、完全に管理され、好ましくはSSAのみによりアクセス可能であることが好ましい。あるいは、鍵はSSAシステムに提供されてもよい。
SSAシステムは、以下の暗号モードのいずれか1つ(ユーザ定義の)を用いて、鍵IDと関連付けられたデータを保護する(CEKの鍵値とともに使用される実際の暗号アルゴリズムは、システムによって制御されて外界に暴露されない)。
ブロックモード:データはブロックに分割され、それらの一つ一つが個々に暗号化される。このモードは、一般に機密性がさほど高くなく、かつ辞書攻撃に敏感であると考えられる。しかしながら、このモードによりユーザは、データブロックのいずれか1つに無作為にアクセスすることができる。
連鎖モード:データはブロックに分割され、ブロックは暗号化プロセス中に連鎖される。あらゆるブロックが次の1つの暗号化プロセスへの入力の1つとして使用される。このモードでは、機密性が比較的高いと考えられるが、データは最初から最後まで順番に読み書きされ、ユーザには受け入れられない可能性があるオーバーヘッドを作成する。
ハッシュ化:データの完全性を実証するために使用されうるデータダイジェストを新たに作成する連鎖モード。
<ACRおよびアクセス制御>
SSAは、複数のアプリケーションの一つ一つがシステムデータベースにおけるノードのツリーとして表される複数のアプリケーションを処理するように、設計される。ツリーブランチ間のクロストークがないようにして、アプリケーション間の相互排除が実現される。
SSAは、複数のアプリケーションの一つ一つがシステムデータベースにおけるノードのツリーとして表される複数のアプリケーションを処理するように、設計される。ツリーブランチ間のクロストークがないようにして、アプリケーション間の相互排除が実現される。
SSAシステムにアクセスするために、あるエンティティは、システムのACRの1つを介して接続を確立する必要がある。ユーザが接続の対象として選定したACRに組み込まれた定義に従って、ログイン手続きがSSAシステムによって管理される。
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」に関連するデータが暗号化される。複数ファイルまたは複数データ群の、暗号化および/または復号化に、同じ鍵を使用することもできる。
SSAシステムは、ログインに成功した時点でシステムにおけるユーザの特権が変わる場合など、認証アルゴリズムおよびユーザ認証情報が変わる可能性のあるシステムに対して、複数のタイプのログインをサポートする。図5は、さらに別のログインアルゴリズムおよび認証情報を示している。ACR#1はパスワード・ログイン・アルゴリズムおよび認証情報としてのパスワードを規定しているのに対して、ACR#2はPKI(公開鍵基盤)ログインアルゴリズムおよび認証情報としての公開鍵を規定している。それゆえ、ログインするために、あるエンティティは、有効なACR_IDとともに正しいログインアルゴリズムおよび認証情報を提示する必要がある。
SSAシステムのACRにログインしたエンティティの権限、すなわちSSAコマンドを使用する権利は、ACRと関連付けられた権限制御記録(PCR)の中で設定する。図5のPCRに示すように、ACR#1は「鍵3」と関連付けられたデータに対して読出し限定権限を許諾し、ACR#2は「鍵5」と関連付けられたデータの読出し権限と書込み権限とを許諾する。
読出しや書込みに使う鍵などの異なるACRが、システムで共通の利益や特権を共有することがある。このため、共通する部分があるACRはAGP、すなわちACRグループにグループ分けされる。それゆえ、ACR#1とACR#nはいずれも、鍵ID「鍵3」を有する鍵へのアクセス権がある。
AGPとその中にあるACRは階層状のツリーの中で編成されるため、ACRは重要データの安全性を保つ安全鍵を作成できるほか、好ましくは自身の鍵ID/パーティションに対応する他のACR項目を作成することもできる。これらの子ACRは、その父、すなわち作成元と同じ権限を有するかそれよりも少ない権限を有することになり、父ACR自身が作成した鍵の権限が付与される場合がある。言うまでもなく、子ACRは自身が作成する任意の鍵に対するアクセス権限を取得する。これは図6に例示されている。このように、AGP120の中にあるACRはいずれもACR122によって作成されたものであり、これらのACRのうちの2つは、「鍵3」と関連付けられたデータへのアクセス権限をACR122から継承している。
<AGP>
SSAシステムへのログインにおいて、AGPと、そのAGPの中にあるACRを指定する。
SSAシステムへのログインにおいて、AGPと、そのAGPの中にあるACRを指定する。
AGPはいずれも一意なID(リファレンス名)を有し、SSAデータベースにおける該当する項目への索引として使用される。AGP名は、AGPの作成時にSSAシステムに提供される。SSAは、提供されるAGP名がシステムに既に存在する場合に、作成動作を拒絶することになる。
以降の節で説明するように、アクセス権限や管理権限の委譲に関わる制限事項は、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を削除する権限を有する。
<エンティティにとってのSSAの入口:アクセス制御記録(ACR)>
SSAシステムのACRは、エンティティによるシステムログインのあり方を記述するものである。SSAシステムにログインするエンティティは、これから始まる認証プロセスに該当するACRを指定する必要がある。図5に示すように、ACRの中にある権限制御記録(PCR)は、ACRに記載の認証を終えたユーザが実行できる許諾アクションを説明するものである。ホスト側エンティティは、すべてのACRデータフィールドを提供する。
SSAシステムのACRは、エンティティによるシステムログインのあり方を記述するものである。SSAシステムにログインするエンティティは、これから始まる認証プロセスに該当するACRを指定する必要がある。図5に示すように、ACRの中にある権限制御記録(PCR)は、ACRに記載の認証を終えたユーザが実行できる許諾アクションを説明するものである。ホスト側エンティティは、すべてのACRデータフィールドを提供する。
ACRへのログオンに成功したエンティティは、ACRのパーティションおよび鍵アクセス権限およびACM権限(後述)のすべてを照会することができることになる。
<ACR_ID>
SSAシステムのエンティティがログインプロセスを開始する場合、すべてのログイン要件が満たされているときにSSAが正しいアルゴリズムをセットアップして正しいPCRを選択するように、ログイン方法に対応するACR_ID(ACRが作成されたときにホストによって提供される)を指定する必要がある。ACR_IDは、ACRが作成されるときにSSAシステムに提供される。
SSAシステムのエンティティがログインプロセスを開始する場合、すべてのログイン要件が満たされているときにSSAが正しいアルゴリズムをセットアップして正しいPCRを選択するように、ログイン方法に対応するACR_ID(ACRが作成されたときにホストによって提供される)を指定する必要がある。ACR_IDは、ACRが作成されるときにSSAシステムに提供される。
<ログイン/認証アルゴリズム>
認証アルゴリズムは、エンティティによって使用されるログイン手続きと、ユーザのアイデンティティを証明するために必要な認証情報と、を指定するものである。SSAシステムは、手続きなし(および認証情報なし)から、パスワードに基づく手続き、対称暗号法または非対称暗号法に基づく双方向認証プロトコルまで、複数の標準ログインアルゴリズムをサポートする。
認証アルゴリズムは、エンティティによって使用されるログイン手続きと、ユーザのアイデンティティを証明するために必要な認証情報と、を指定するものである。SSAシステムは、手続きなし(および認証情報なし)から、パスワードに基づく手続き、対称暗号法または非対称暗号法に基づく双方向認証プロトコルまで、複数の標準ログインアルゴリズムをサポートする。
<認証情報>
エンティティの認証情報は、ログインアルゴリズムに対応しており、SSAがユーザを検証して認証するために使用される。認証情報の例として、パスワード認証用のパスワード/PIN数、AES認証用のAES鍵、などが挙げられる。認証情報のタイプ/形式(すなわち、PIN、対称鍵など)は、事前に決められ、認証モードから得られ、ACRを作成するときにSSAシステムに提供される。SSAシステムはこれら認証情報の設定、提供、および管理に関与しないが、例外としてPKIベースの認証では装置(例えば、フラッシュカード)を使用してRSAなどのタイプの鍵対を生成することができ、証明書生成のための公開鍵をエクスポートすることができる。
エンティティの認証情報は、ログインアルゴリズムに対応しており、SSAがユーザを検証して認証するために使用される。認証情報の例として、パスワード認証用のパスワード/PIN数、AES認証用のAES鍵、などが挙げられる。認証情報のタイプ/形式(すなわち、PIN、対称鍵など)は、事前に決められ、認証モードから得られ、ACRを作成するときにSSAシステムに提供される。SSAシステムはこれら認証情報の設定、提供、および管理に関与しないが、例外としてPKIベースの認証では装置(例えば、フラッシュカード)を使用してRSAなどのタイプの鍵対を生成することができ、証明書生成のための公開鍵をエクスポートすることができる。
<権限制御記録(PCR)>
PCRは、SSAシステムにログインしACRの認証プロセスに合格した後の、エンティティに対する許諾内容を示すものである。権限には、パーティションおよび鍵の作成権限と、パーティションおよび鍵へのアクセス権限と、エンティティ−ACR属性の管理権限の3種類がある。
PCRは、SSAシステムにログインしACRの認証プロセスに合格した後の、エンティティに対する許諾内容を示すものである。権限には、パーティションおよび鍵の作成権限と、パーティションおよび鍵へのアクセス権限と、エンティティ−ACR属性の管理権限の3種類がある。
<パーティションへのアクセス>
PCRのこの部分には、ACR段階を首尾よく終了したエンティティがアクセスしうるパーティションのリストが含まれる(SSAシステムへ提供されるパーティションのIDを使用)。各パーティションに対して、アクセスのタイプが、書込み限定または読出し限定に制限される場合があり、あるいは完全書込み/読出しアクセス権が指定される場合もある。図5のACR#1は、パーティション#2にアクセスすることができてもパーティション#1にはアクセスすることができない。PCRにおいて指定される制限は、SSAパーティションおよび公開パーティションに適用される。
PCRのこの部分には、ACR段階を首尾よく終了したエンティティがアクセスしうるパーティションのリストが含まれる(SSAシステムへ提供されるパーティションのIDを使用)。各パーティションに対して、アクセスのタイプが、書込み限定または読出し限定に制限される場合があり、あるいは完全書込み/読出しアクセス権が指定される場合もある。図5のACR#1は、パーティション#2にアクセスすることができてもパーティション#1にはアクセスすることができない。PCRにおいて指定される制限は、SSAパーティションおよび公開パーティションに適用される。
公開パーティションには、SSAシステムをホストする装置(例えば、フラッシュカード)に対する通常の読出しおよび書込みコマンドによってアクセスすることや、SSAコマンドによってアクセスすることができる。公開パーティションを制限する権限を有するルートACR(後述)が作成されると、このルートACRは、その権限を自身の子に渡すことができる。ACRは、通常の読出しおよび書込みコマンドによる公開パーティションへのアクセスのみを制限することができることが好ましい。SSAシステムのACRは、これが作成されるときにのみ制限することができることが好ましい。公開パーティションに対する読出し/書込み権限をACRが取得した時点では、その権限を剥奪することができないことが好ましい。
<鍵IDへのアクセス>
PCRのこの部分は、エンティティのログインプロセスによってACRポリシーが満たされているときにエンティティがアクセスできる、鍵IDのリスト(ホストによってSSAシステムに提供される)と関連付けられたデータを含んでいる。PCRに記載されたパーティションに常駐するファイルには、指定された鍵IDが関連付けられる。装置(例えば、フラッシュカード)の論理アドレスに鍵IDは関連付けられないので、ある特定のACRに対して2つ以上のパーティションが関連付けられるとき、それらのパーティションのいずれか1つの中にはファイルがありうる。PCR内で指定された鍵IDは、それぞれ異なる1組のアクセス権を有しうる。鍵IDによって指示されるデータへのアクセスは、書込み限定または読出し限定に制限される場合があり、あるいは完全書き込み/読出しアクセス権が指定される場合もある。
PCRのこの部分は、エンティティのログインプロセスによってACRポリシーが満たされているときにエンティティがアクセスできる、鍵IDのリスト(ホストによってSSAシステムに提供される)と関連付けられたデータを含んでいる。PCRに記載されたパーティションに常駐するファイルには、指定された鍵IDが関連付けられる。装置(例えば、フラッシュカード)の論理アドレスに鍵IDは関連付けられないので、ある特定のACRに対して2つ以上のパーティションが関連付けられるとき、それらのパーティションのいずれか1つの中にはファイルがありうる。PCR内で指定された鍵IDは、それぞれ異なる1組のアクセス権を有しうる。鍵IDによって指示されるデータへのアクセスは、書込み限定または読出し限定に制限される場合があり、あるいは完全書き込み/読出しアクセス権が指定される場合もある。
<ACR属性管理(ACAM)>
この節では、ACRのシステム属性を変更しうる場合について説明する。
この節では、ACRのシステム属性を変更しうる場合について説明する。
SSAシステムで許可されうるACAMアクションは、次の通りである。
1.AGPおよびACRの作成/削除/更新
2.パーティションおよび鍵の作成/削除
3.鍵およびパーティションに対するアクセス権の委譲
1.AGPおよびACRの作成/削除/更新
2.パーティションおよび鍵の作成/削除
3.鍵およびパーティションに対するアクセス権の委譲
父ACRは、ACAM権限を編集することができないことが好ましい。この場合、好ましくはACRの削除と再作成が必要となる。また、ACRによって作成された鍵IDに対するアクセス権限を、剥奪することができないことが好ましい。
ACRは、他のACRおよびAGPを作成する能力を有していてもよい。ACRを作成するということは、その作成元が所有するACAM権限の一部または全部が、作成されたACRへ委譲されることを意味する場合もある。ACRを作成する権限を有するということは、次のアクションの権限を有することを意味する。
1.子の認証情報を設定し編集する:作成元ACRによっていったん設定された認証方法は編集することができないことが好ましい。子向けに既に設定された認証アルゴリズムの範囲内で、認証情報を変更してもよい。
2.ACRを削除する。
3.作成権限を子ACRへ委譲する(それゆえ孫を有する)。
1.子の認証情報を設定し編集する:作成元ACRによっていったん設定された認証方法は編集することができないことが好ましい。子向けに既に設定された認証アルゴリズムの範囲内で、認証情報を変更してもよい。
2.ACRを削除する。
3.作成権限を子ACRへ委譲する(それゆえ孫を有する)。
他のACRを作成する権限を有するACRは、これが作成するACRに遮断解除権限を委譲する権限を有する(ただし、ACRの遮断を解除する権限を有しない場合もある)。父ACRは、解除ACRのリファレンスを子ACRの中に入れる。
父ACRは、自身の子ACRを削除する権限を有する唯一のACRである。ACRが作成した下位ACRを削除すると、この下位ACRから生まれたすべてのACRも自動的に削除される。ACRを削除すると、そのACRによって作成された鍵IDとパーティションはすべて削除される。
例外として、ACRが自身の記録を更新できる場合が2つある。
1.作成元ACRによって設定されたパスワード/PINであっても、それらを含むACRによってのみ更新されうる。
2.ルートACRは、それ自体と、それ自体が常駐するAGPと、を削除しうる。
1.作成元ACRによって設定されたパスワード/PINであっても、それらを含むACRによってのみ更新されうる。
2.ルートACRは、それ自体と、それ自体が常駐するAGPと、を削除しうる。
<鍵およびパーティションへのアクセス権の委譲>
ACRとそのAGPは階層状のツリーで組み立てられ、ルートAGPとその中にあるACRは、ツリーの最上部に位置する(例えば、図6のルートAGP130および132)。SSAシステムには複数のAGPツリーが存在することがあるが、それらは互いに完全に分離されている。AGPの中にあるACRは、それ自体の鍵に対するアクセス権限を、同じAGPの中にある全ACRと、それらによって作成されるこの全ACRに委譲しうる。鍵を作成する権限は、その鍵を使用するためのアクセス権限を委譲する権限を含むことが好ましい。
ACRとそのAGPは階層状のツリーで組み立てられ、ルートAGPとその中にあるACRは、ツリーの最上部に位置する(例えば、図6のルートAGP130および132)。SSAシステムには複数のAGPツリーが存在することがあるが、それらは互いに完全に分離されている。AGPの中にあるACRは、それ自体の鍵に対するアクセス権限を、同じAGPの中にある全ACRと、それらによって作成されるこの全ACRに委譲しうる。鍵を作成する権限は、その鍵を使用するためのアクセス権限を委譲する権限を含むことが好ましい。
鍵に対する権限は3種類に分けられる。
1.アクセス:これは鍵に対するアクセス権限、すなわち読出しと書込みとを設定する。
2.所有権:当然ながら、鍵を作成したACRがその所有者である。この所有権は、ある1つのACRから別のACR(同じAGPの中にあるか、あるいは子AGPの中にあるACRという条件で)に委譲することができる。鍵の所有権は、鍵を削除する権限のほかに、鍵に対する権限を委譲する権限を提供する。
3.アクセス権委譲:この権限により、ACRは、自身が保持する権利を委譲することができる。
1.アクセス:これは鍵に対するアクセス権限、すなわち読出しと書込みとを設定する。
2.所有権:当然ながら、鍵を作成したACRがその所有者である。この所有権は、ある1つのACRから別のACR(同じAGPの中にあるか、あるいは子AGPの中にあるACRという条件で)に委譲することができる。鍵の所有権は、鍵を削除する権限のほかに、鍵に対する権限を委譲する権限を提供する。
3.アクセス権委譲:この権限により、ACRは、自身が保持する権利を委譲することができる。
ACRは、自身が作成したパーティションのほかに、自身が所有するアクセス権限の対象となる他のパーティションに対するアクセス権限を、委譲することができる。
権限を委譲するには、パーティションの名前と鍵IDを、指定されたACRのPCRに追加する。鍵のアクセス権限を委譲するには、鍵IDを使用してもよいし、あるいは委譲する側のACRのすべての作成された鍵がアクセス権限の対象となることを表明してもよい。
<ACRの遮断および解除>
システムによるエンティティのACR認証プロセスが失敗すると、ACRの遮断カウンタがインクリメントする場合がある。一定の最大失敗認証数(MAX)に達すると、SSAシステムによってACRは遮断されることになる。
システムによるエンティティのACR認証プロセスが失敗すると、ACRの遮断カウンタがインクリメントする場合がある。一定の最大失敗認証数(MAX)に達すると、SSAシステムによってACRは遮断されることになる。
遮断されたACRは、この遮断されたACRから参照される別のACRによって、解除されうる。この解除されたACRに対するリファレンスは、その作成元によるACRによって設定される。解除するACRは、遮断されたACRの作成元と同じAGPの中にあり、「解除」権限を有することが好ましい。
システムの中のほかのACRは、いずれも遮断されたACRを解除することができない。遮断カウンタを用いて構成されるACRであっても、解除ACRがなければ、遮断された場合に解除することができない。
<ルートAGP−アプリケーションデータベースの作成>
SSAシステムは、複数のアプリケーションを処理し、各アプリケーションのデータを分離するように設計されている。アプリケーション特有のデータを識別し、かつ分離する場合には、AGPシステムのツリー構造が主要なツールとして使用される。ルートAGPは、アプリケーションSSAデータベースツリーの先端に位置し、いくぶん異なる挙動ルールに従う。SSAシステムでは、複数のルートAGPを構成することができる。図6には、2つのルートAGP130および132が示されている。もちろん、これよりも少ないAGPやこれよりも多いAGPが使用されてもよく、その場合も本発明の範囲内にある。
SSAシステムは、複数のアプリケーションを処理し、各アプリケーションのデータを分離するように設計されている。アプリケーション特有のデータを識別し、かつ分離する場合には、AGPシステムのツリー構造が主要なツールとして使用される。ルートAGPは、アプリケーションSSAデータベースツリーの先端に位置し、いくぶん異なる挙動ルールに従う。SSAシステムでは、複数のルートAGPを構成することができる。図6には、2つのルートAGP130および132が示されている。もちろん、これよりも少ないAGPやこれよりも多いAGPが使用されてもよく、その場合も本発明の範囲内にある。
新規アプリケーションのための装置(例えば、フラッシュカード)の登録、および/または、装置の新規アプリケーションの認証情報発行は、装置に新たなAGP/ACRツリーを追加する過程で行われる。
SSAシステムは、ルートAGP(ならびにルートAGPの全ACRとその権限)を作成する場合に、以下の3種類のモードをサポートする。
1.オープンモード:どんな認証も必要としないすべてのユーザまたはエンティティ、あるいはシステムACR(後述)を通じて認証されたユーザ/エンティティは、新規ルートAGPを作成することができる。オープンモードによるルートAGPの作成は、セキュリティ対策なしですべてのデータ転送がオープンチャネル(すなわち、発行エンティティのセキュア環境内)で行われる場合と、システムACR認証(すなわち、Over The Air(OTA)および後発行手続き)を通じて確立されるセキュアチャネルを通じて行われる場合と、がある。
1.オープンモード:どんな認証も必要としないすべてのユーザまたはエンティティ、あるいはシステムACR(後述)を通じて認証されたユーザ/エンティティは、新規ルートAGPを作成することができる。オープンモードによるルートAGPの作成は、セキュリティ対策なしですべてのデータ転送がオープンチャネル(すなわち、発行エンティティのセキュア環境内)で行われる場合と、システムACR認証(すなわち、Over The Air(OTA)および後発行手続き)を通じて確立されるセキュアチャネルを通じて行われる場合と、がある。
システムACRが構成されず(これはオプション機能である)、かつルートAGP作成モードをオープンに設定する場合に、オープン・チャネル・オプションのみが利用される。
2.制御モード:システムACRを通じて認証されたエンティティのみが、新規ルートAGPを作成することができる。システムACRが構成されなければ、SSAシステムをこのモードに設定することはできない。
3.ロックモード:ルートAGPの作成は無効にされ、さらなるルートAGPをシステムに加えることはできない。
2.制御モード:システムACRを通じて認証されたエンティティのみが、新規ルートAGPを作成することができる。システムACRが構成されなければ、SSAシステムをこのモードに設定することはできない。
3.ロックモード:ルートAGPの作成は無効にされ、さらなるルートAGPをシステムに加えることはできない。
2つのSSAコマンドで、この機能を制御する(これらのコマンドは、いずれのユーザ/エンティティでも認証なしで利用可能である)。
1.方法構成コマンド:3つのルートAGP作成モードのいずれか1つを使用するようにSSAシステムを構成するために、使用される。オプション→制御、制御→ロックのモード変更のみが可能である(すなわち、SSAシステムが現在制御モードとして構成されている場合は、ロックモードにしか変更することができない)。
2.方法構成固定コマンド:方法構成コマンドを無効にし、現在選択されている方法を永続的に固定するために使用される。
1.方法構成コマンド:3つのルートAGP作成モードのいずれか1つを使用するようにSSAシステムを構成するために、使用される。オプション→制御、制御→ロックのモード変更のみが可能である(すなわち、SSAシステムが現在制御モードとして構成されている場合は、ロックモードにしか変更することができない)。
2.方法構成固定コマンド:方法構成コマンドを無効にし、現在選択されている方法を永続的に固定するために使用される。
ルートAGPが作成されるとき、特別な初期化モードに入り、ACRの作成、構成(ルートAGPの作成に適用されたものと同じアクセス制限を使用)が可能になる。ルートAGP構成プロセスの最後に、エンティティがこれを明示的に作動モードに切り替えると、既存のACRは更新できなくなり、ACRを新たに作成できなくなる。
標準モードに入ったルートAGPを削除するには、そのACRのうち、ルートAGPの削除する権限が割り当てられるACRの1つを通じて、システムにログインしなければならない。特別の初期化モードと同様に、これもルートAGPの例外の一例である。上記のAGPは、次のツリーレベルにあるAGPとは対照的に、それ自体のAGPを削除する権限を有するACRを含みうる唯一のAGPであることが好ましい。
ルートACRと標準ACRとの3番目にして最後の違いは、パーティションを作成し削除する権限を有しうるシステム内で、唯一のACRであるということである。
<SSAシステムACR>
システムACRは、次の2つのSSA操作に使用されてもよい。
1.不利な状況にある保護されたチャネルの保護下で、ACR/AGPツリーを作成する。
2.SSAシステムをホストする装置を識別し、認証する。
システムACRは、次の2つのSSA操作に使用されてもよい。
1.不利な状況にある保護されたチャネルの保護下で、ACR/AGPツリーを作成する。
2.SSAシステムをホストする装置を識別し、認証する。
SSAの中にシステムACRが1つだけある事が好ましく、いったん設定されたシステムACRは変更することができないことが好ましい。システムACRを作成するときにシステム認証は必要でなく、必要なのはSSAコマンドのみである。システムACR作成機能は、無効にすることができる(ルートAGP作成機能と同様)。1つのみのシステムACRが認められることが好ましいため、システムACR作成コマンドはシステムACRの作成後には影響を及ぼさない。
システムACRは、その作成プロセスにおいて機能しない。作成が終了した時点で、システムACRが作成されて準備が整ったことを伝える専用のコマンドを発行する必要がある。この時点以後、システムACRの更新や差替えは行うことができないことが好ましい。
システム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つの別々のツリーが形成される。
前述した機能は、コンテンツの所有者が、コンテンツを使用して安全な製品を構成する際に、優れた柔軟性を提供する。セキュア製品は「発行(issued)」する必要がある。発行とは、装置がホストを識別しホストが装置を識別するための識別鍵を出すプロセスである。ホストは、装置(例えば、フラッシュカード)を識別することにより、これの秘密を信用できるかどうかを判定することができる。一方、装置はホストを識別することにより、ホストが実施を許容されている範囲でのみ、セキュリティポリシーを実施する(特定のホストコマンドを許諾し実行する)ことができる。
複数のアプリケーションに対応するように設計される製品は、複数の識別鍵を有することになる。製品は「前発行」するか(出荷に先立つ製造中に鍵を記憶する)、あるいは「後発行」する(出荷後に新たな鍵を追加する)。後発行の場合、ある種の親鍵または装置レベル鍵をメモリ装置(例えば、メモリカード)に入れる必要があり、この鍵は、装置へのアプリケーションの追加が許可されるエンティティを識別するために使用される。
前述した機能により、後発行を有効/無効にするように、製品を構成することができる。さらに、後発行構成は出荷後に安全に果たすことができる。装置は、前述した親鍵または装置レベル鍵のほかには鍵のない状態で小売製品として購入され、この後、新たな所有者により、さらなる後発行アプリケーションを有効または無効にするように構成することができる。
それゆえ、システムACR機能は、前述の目的を達成するための能力を提供する。
・システムACRがないメモリ装置は、アプリケーションを無制限かつ自由に追加することができる。
・システムACRがないメモリ装置は、システムACRの作成を無効にするように構成することができ、これは新規アプリケーションの追加を制御できないことを意味する(新規ルートAGP作成機能も無効にしない限り)。
・システムACRがあるメモリ装置は、システムACR認証情報を用いた認証手続きによって確立されるセキュアチャネルを介して、アプリケーションの追加を制御できるだけである。
・システムACRがあるメモリ装置は、アプリケーションが追加される前かあるいは追加された後に、アプリケーション追加機能を無効にするように構成することができる。
・システムACRがないメモリ装置は、アプリケーションを無制限かつ自由に追加することができる。
・システムACRがないメモリ装置は、システムACRの作成を無効にするように構成することができ、これは新規アプリケーションの追加を制御できないことを意味する(新規ルートAGP作成機能も無効にしない限り)。
・システムACRがあるメモリ装置は、システムACR認証情報を用いた認証手続きによって確立されるセキュアチャネルを介して、アプリケーションの追加を制御できるだけである。
・システムACRがあるメモリ装置は、アプリケーションが追加される前かあるいは追加された後に、アプリケーション追加機能を無効にするように構成することができる。
<鍵IDリスト>
鍵IDは、具体的なACR要求に従って作成されるが、メモリシステム10でこれを使用するのはSSAシステムのみである。鍵IDの作成時に作成元ACRから提供されるか、あるいは作成元ACRに提供されるデータは、次の通りである。
1.鍵ID:このIDはホストを通じてエンティティから提供され、以降のすべての読出しアクセスや書込みアクセスにおいて、鍵と、その鍵を使って暗号化または復号化されるデータと、を参照するために使用される。
2.鍵暗号およびデータ完全性モード(前述した、および以下に述べる、ブロック、連鎖、およびハッシュモード)
鍵IDは、具体的なACR要求に従って作成されるが、メモリシステム10でこれを使用するのはSSAシステムのみである。鍵IDの作成時に作成元ACRから提供されるか、あるいは作成元ACRに提供されるデータは、次の通りである。
1.鍵ID:このIDはホストを通じてエンティティから提供され、以降のすべての読出しアクセスや書込みアクセスにおいて、鍵と、その鍵を使って暗号化または復号化されるデータと、を参照するために使用される。
2.鍵暗号およびデータ完全性モード(前述した、および以下に述べる、ブロック、連鎖、およびハッシュモード)
ホストから提供される属性に加えて、SSAシステムは次のデータを維持する。
1.鍵IDの所有者:所有者であるACRのID。鍵IDが作成されたとき、作成元ACRがその所有者である。しかしながら、鍵IDの所有権は、別のACRに譲渡されてもよい。鍵IDの所有権を譲渡し、かつ鍵IDを委譲できるものは、鍵IDの所有者のみであることが好ましい。関連する鍵のアクセス権限の委譲と、これらの権利の失効を管理できるのは、鍵IDの所有者か、または委譲権限を割り当てられたその他のACRである。SSAシステムは、これらの操作のいずれか1つが試みられるときに、操作を要求するACRにその権限が付与されている場合に限り、操作を許諾することになる。
2.CEK:このCEKの鍵値は、鍵IDが関連付けられたコンテンツ、または、鍵IDによって指示されたコンテンツの暗号化に使用される。鍵値は、SSAシステムによって生成される128ビットAESランダム鍵であってもよい。
3.MACおよびIV値:連鎖ブロック暗号(CBC)暗号化アルゴリズムで使用される動的情報(メッセージ認証コードと開始ベクトル)。
1.鍵IDの所有者:所有者であるACRのID。鍵IDが作成されたとき、作成元ACRがその所有者である。しかしながら、鍵IDの所有権は、別のACRに譲渡されてもよい。鍵IDの所有権を譲渡し、かつ鍵IDを委譲できるものは、鍵IDの所有者のみであることが好ましい。関連する鍵のアクセス権限の委譲と、これらの権利の失効を管理できるのは、鍵IDの所有者か、または委譲権限を割り当てられたその他のACRである。SSAシステムは、これらの操作のいずれか1つが試みられるときに、操作を要求するACRにその権限が付与されている場合に限り、操作を許諾することになる。
2.CEK:このCEKの鍵値は、鍵IDが関連付けられたコンテンツ、または、鍵IDによって指示されたコンテンツの暗号化に使用される。鍵値は、SSAシステムによって生成される128ビットAESランダム鍵であってもよい。
3.MACおよびIV値:連鎖ブロック暗号(CBC)暗号化アルゴリズムで使用される動的情報(メッセージ認証コードと開始ベクトル)。
図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を識別するためのアイデンティティと、が固定される。
新規ツリー(新規ルート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を利用できないようにすることができる。
ACR(前述したルートAGPの中にあるACRとは別のACR)を作成するには、図10に示すように、ACRを作成する権利を有するACRから開始することができる(ブロック270)。エンティティは、入口にあたるACRのアイデンティティと、作成に必要となる属性のすべてを含むACRとを提供して、ホスト24を通じて入ることを試行することができる(ブロック272)。SSAは、ACRアイデンティティの一致をチェックし、さらにそのアイデンティティを有するACRにACRを作成する権限があるかどうかをチェックする(菱形274)。要求が認証されると証明される場合、装置10のSSAは、ACRを作成する(ブロック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「マーケティング情報」とに関連付けられたデータにアクセスするための鍵の読出し権限のみを有する。
それゆえ、アクセス権は前述した方法で委譲することができ、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は委譲の後にそのアクセス権を保持する。時間やアクセス数を制限するなどにより、(永続的にではなく)一定の条件のもとでアクセス権が委譲されることが好ましい。
図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に委譲し共有する権利、鍵の所有権を譲渡する権利など、鍵の作成元はすべての権利を有する。
図15に示すように、ACRは、SSAシステムの中にある別のACRの権限(またはACRの存在そのもの)を変更することができる。エンティティは、これまで通りACRを通じてツリーに入る場合がある。ある事例ではエンティティの認証が行われ、エンティティはACRを指定する(ブロック330、332)。エンティティは、ターゲットACRの削除、または、ターゲットACRの権限の削除を要求する(ブロック334)。指定されたACRまたはその時点でアクティブなACRにその権利があれば(菱形336)、ターゲットACRを削除し、あるいはそのような権限を削除するためにターゲットACRのPCRを変更する(ブロック338)。これが認可されない場合、システムは停止する。
前述したプロセスの後、ターゲットは、プロセスの前にアクセスできたデータにアクセスすることができなくなる。図16に示すように、かつて存在したACR_IDはもはやSSAに存在しないため、ターゲットACRに入ることを試行する(ブロック350)エンティティは認証プロセスの失敗に気付くので、アクセス権は拒絶される場合がある(菱形352)。ACR_IDが削除されていないと仮定した場合、エンティティはACRを指定し(ブロック354)、鍵IDおよび/または特定のパーティションのデータを指定し(ブロック356)、SSAはそのようなACRのPCRに従って鍵IDまたはパーティションアクセス要求が許可されるかどうかをチェックする(菱形358)。権限が削除されているか、あるいは失効している場合、要求は再度却下される。そうでない場合、要求は許諾される(ブロック360)。
前述したプロセスは、ACRとそのPCRが別のACRによって変更された場合であれ、あるいは初めからそのように構成されていた場合であれ、被保護データに対するアクセスが装置(例えば、フラッシュカード)によってどのように管理されるかを説明するものである。
<セッション>
SSAシステムは、同時にログインする複数のユーザを処理するように設計されている。この機能を使用する場合、SSAによって受信されるコマンドには特定のエンティティが関連しており、コマンドは、このエンティティの認証に用いるACRに要求された動作を行う権限がある場合に限り実行される。
SSAシステムは、同時にログインする複数のユーザを処理するように設計されている。この機能を使用する場合、SSAによって受信されるコマンドには特定のエンティティが関連しており、コマンドは、このエンティティの認証に用いるACRに要求された動作を行う権限がある場合に限り実行される。
複数のエンティティは、セッションのコンセプトによってサポートされる。セッションは認証プロセスで確立し、SSAシステムによってセッションidが割り当てられる。セッションidは、システムへのログインに使用されたACRに内部で関連付けられ、エンティティへエクスポートされ、それ以降のSSAコマンドで使用される。
SSAシステムは、2種類のセッション、すなわちオープンセッションとセキュアセッションとをサポートする。特定の認証プロセスと関連付けられたセッションのタイプは、ACRの中で設定される。SSAシステムは、認証そのものの施行と同様の方法で、セッション確立を施行する。エンティティの権限はACRで設定されるため、システム設計者は特定の鍵IDに対するアクセスまたは特定のACR管理操作(すなわち、新規ACRの作成、認証情報の設定)の実行に、セキュアトンネルを関連付けることができる。
<オープンセッション>
オープンセッションはセッションidで識別されるセッションであるが、バス暗号化は行われないため、コマンドおよびデータはいずれも暗号化されずに引き渡される。この動作モードは、エンティティが脅威モデルに該当せずバス上で傍受を行わない、多数のユーザまたは多数のエンティティ環境に使用されることが好ましい。
オープンセッションはセッションidで識別されるセッションであるが、バス暗号化は行われないため、コマンドおよびデータはいずれも暗号化されずに引き渡される。この動作モードは、エンティティが脅威モデルに該当せずバス上で傍受を行わない、多数のユーザまたは多数のエンティティ環境に使用されることが好ましい。
オープン・セッション・モードではデータ送信が保護されず、ホスト側のアプリケーション間に効率的なファイアウォールは実施されないが、SSAシステムが認証済みの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へのアクセスをオープンセッションで行うことにより、使い易くなるばかりでなく、貴重なデータを保護することができる。
ホストアプリケーション間でのセッションidの共有プロセスをさらに簡単にするには、オープンセッションを要求するACRが、セッションに「0(ゼロ)」idを割り当てることを具体的に要求することができる。このように、アプリケーションは所定のセッションidを使用するように設計することができる。当然ながら、セッション0を要求するACRは、特定の時間において一度に1つしか認証することができないという制限がある。セッション0を要求する別のACRを認証するための試行は、拒絶されることになる。
<セキュアセッション>
セキュリティ層を追加するため、セッションidは図17Bに示すように使用してもよい。このとき、メモリ10もアクティブセッションのセッションidを記憶する。図17Bで、例えば、鍵ID_Xと関連付けられたファイルにアクセスするためには、エンティティもセッションid「A」などのセッションidを提供する必要があり、その上でファイルへのアクセスが許可されることになる(ブロック404、406、412、および414)。このように、要求するエンティティは正しいセッションidを知らない限りメモリ10にアクセスすることができない。セッションidはセッションが終了した後に削除され、セッションのたびに異なるため、エンティティはセッション番号を提供できた場合に限りアクセスすることができる。
セキュリティ層を追加するため、セッションidは図17Bに示すように使用してもよい。このとき、メモリ10もアクティブセッションのセッションidを記憶する。図17Bで、例えば、鍵ID_Xと関連付けられたファイルにアクセスするためには、エンティティもセッションid「A」などのセッションidを提供する必要があり、その上でファイルへのアクセスが許可されることになる(ブロック404、406、412、および414)。このように、要求するエンティティは正しいセッションidを知らない限りメモリ10にアクセスすることができない。セッションidはセッションが終了した後に削除され、セッションのたびに異なるため、エンティティはセッション番号を提供できた場合に限りアクセスすることができる。
SSAシステムは、コマンドが実際に正しい認証済みエンティティに由来しているかどうかを、セッション番号を使用して追跡する。攻撃者がオープンチャネルを用いて悪質なコマンドを送信しようとするおそれがある用途や使用がある場合、ホストアプリケーションはセキュアセッション(セキュアチャネル)を使用する。
セキュアチャネルを使用するとき、セッションidとコマンド全体がセキュアチャネル暗号化(セッション)鍵により暗号化され、そのセキュリティレベルはホスト側の実施態様と同じように高くなる。
<セッションの終了>
セッションは次のシナリオのいずれか1つで終了し、ACRはログオフされる。
1.エンティティが、明示的なセッション終了コマンドを発行する。
2.通信タイムアウトが発生する。ある特定のエンティティが、ACRパラメータの1つとして設定された期間にわたってコマンドを発行しなかった。
3.装置(例えば、フラッシュカード)のリセットおよび/またはパワーサイクルの後には、すべてのオープンセッションが終了する。
セッションは次のシナリオのいずれか1つで終了し、ACRはログオフされる。
1.エンティティが、明示的なセッション終了コマンドを発行する。
2.通信タイムアウトが発生する。ある特定のエンティティが、ACRパラメータの1つとして設定された期間にわたってコマンドを発行しなかった。
3.装置(例えば、フラッシュカード)のリセットおよび/またはパワーサイクルの後には、すべてのオープンセッションが終了する。
<データ完全性サービス>
SSAシステムは、SSAデータベース(ACR、PCRなど、すべてを含む)の完全性を検証する。さらに、鍵ID機構によるエンティティデータのデータ完全性サービスも提供される。
SSAシステムは、SSAデータベース(ACR、PCRなど、すべてを含む)の完全性を検証する。さらに、鍵ID機構によるエンティティデータのデータ完全性サービスも提供される。
鍵IDの暗号化アルゴリズムがハッシュモードに設定される場合、CEKおよびIVと併せてハッシュ値がCEK記録に記憶される。書込み操作中に、ハッシュ値が計算されて記憶される。読出し操作中にも再度ハッシュ値が計算され、前の書込み操作中に記憶された値と比較される。エンティティが鍵IDにアクセスするたびに追加データが古いデータに(暗号的に)連結され、該当するハッシュ値(読出しまたは書込みのため)が更新される。
鍵IDと関連付けられ、あるいは鍵IDによって指示されるデータファイルを知るのはホストのみであるため、データ完全性機能の複数の態様は、ホストが明示的に次のように管理する。
1.鍵IDと関連付けられた、または鍵IDによって指示されるデータファイルは、最初から最後まで書き込まれ、あるいは読み出される。SSAシステムはCBC暗号方式を使用し、データ全体のハッシュ化メッセージダイジェストを生成するため、ファイルの一部分にアクセスしようとするとファイルは混乱することになる。
2.中間ハッシュ値はSSAシステムによって維持されるため、連続するストリームの中でデータを処理する必要はない(このデータストリームは他の鍵IDのデータストリームでインターリーブすることができ、複数のセッションにわたって分割されてもよい)。しかしながら、エンティティは、データストリームが再開される場合にハッシュ値をリセットするようSSAシステムに明示的に指示する必要がある。
3.ホストは読出し操作が完了すると、読み出されたハッシュを書込み操作中に計算されたハッシュ値と比較することによって有効にするよう、SSAシステムに明示的に要求する。
4.SSAシステムは「ダミー読出し」操作も提供する。この機能によりデータは暗号化エンジンを通過するが、ホストには送出されないことになる。この機能を利用すると、データが実際に装置(例えば、フラッシュカード)から読み出される前に、データの完全性を検証することができる。
1.鍵IDと関連付けられた、または鍵IDによって指示されるデータファイルは、最初から最後まで書き込まれ、あるいは読み出される。SSAシステムはCBC暗号方式を使用し、データ全体のハッシュ化メッセージダイジェストを生成するため、ファイルの一部分にアクセスしようとするとファイルは混乱することになる。
2.中間ハッシュ値はSSAシステムによって維持されるため、連続するストリームの中でデータを処理する必要はない(このデータストリームは他の鍵IDのデータストリームでインターリーブすることができ、複数のセッションにわたって分割されてもよい)。しかしながら、エンティティは、データストリームが再開される場合にハッシュ値をリセットするようSSAシステムに明示的に指示する必要がある。
3.ホストは読出し操作が完了すると、読み出されたハッシュを書込み操作中に計算されたハッシュ値と比較することによって有効にするよう、SSAシステムに明示的に要求する。
4.SSAシステムは「ダミー読出し」操作も提供する。この機能によりデータは暗号化エンジンを通過するが、ホストには送出されないことになる。この機能を利用すると、データが実際に装置(例えば、フラッシュカード)から読み出される前に、データの完全性を検証することができる。
<乱数生成>
外部エンティティはSSAシステムの内部乱数生成器を利用することができ、乱数をSSAシステムの外部で使用することもできる。このサービスはいずれのホストでも利用することでき、認証を必要としない。
外部エンティティはSSAシステムの内部乱数生成器を利用することができ、乱数をSSAシステムの外部で使用することもできる。このサービスはいずれのホストでも利用することでき、認証を必要としない。
<RSA鍵対生成>
外部ユーザはSSAシステムの内部RSA鍵対生成機能を利用することができ、鍵対をSSAシステムの外部で使用することもできる。このサービスはいずれのホストでも利用することができ、認証を必要としない。
外部ユーザはSSAシステムの内部RSA鍵対生成機能を利用することができ、鍵対をSSAシステムの外部で使用することもできる。このサービスはいずれのホストでも利用することができ、認証を必要としない。
<代替実施形態>
階層アプローチを使用する代わりに、図18に例示するデータベースアプローチを使用して同様の結果を実現することができる。
階層アプローチを使用する代わりに、図18に例示するデータベースアプローチを使用して同様の結果を実現することができる。
図18に示すように、コントローラ12またはメモリ20に記憶されるデータベースに入力されたエンティティの認証情報、認証方法、最大失敗数、遮断解除に必要な最小認証情報数のリストは、このような認証情報要件を、メモリ10のコントローラ12によって実行されるデータベース内のポリシー(鍵およびパーティションに対する読出し、書込みアクセス、セキュアチャネル要件)に関連付けている。鍵およびパーティションへのアクセスに対する制約事項や制限事項も、データベースに記憶される。こうして、ホワイトリストにある可能性があるエンティティ(例えば、システム管理者)は、すべての鍵およびパーティションにアクセスすることができる。ブラックリストにある可能性があるエンティティによる任意の情報へのアクセスの試行は、阻止される。制限は、全域におよぶ場合と、鍵および/またはパーティションに特異的に適用される場合とがある。これは、特定のエンティティのみが特定の鍵およびパーティションにアクセスでき、特定のエンティティはアクセスできないことを意味する。コンテンツのパーティションや、コンテンツの暗号化または復号化に使用される鍵にかかわらず、コンテンツ自体に制約を課すこともできる。それゆえ、特定のデータ(例えば、曲)にアクセスする可能性がある最初の5つのホスト装置のみにアクセスを許可したり、他のデータ(例えば、映画)にアクセスするエンティティを問わず、データの読出し回数を制限したりすることができる。
<認証>
パスワード保護
・パスワード保護は、保護領域にアクセスする場合にパスワードの提示が求められることを意味する。パスワードが1つに限られる場合を除き、それぞれのパスワードには読出しアクセスまたは読出し/書込みアクセスなど、別々の権利を関連付けることができる。
・パスワード保護は、ホストから提供されるパスワードを装置(例えば、フラッシュカード)が検証しうること、すなわち、装置もまた装置によって管理され保護されたメモリ領域にパスワードを記憶することを意味する。
問題および限界
・パスワードはリプレー攻撃を被ることがある。提示のたびに変わらないパスワードは、同じ状態で再送されうる。つまり、保護の対象となるデータが貴重で、通信バスへのアクセスが容易な場合、パスワードを現状のまま使用するべきではない。
・パスワードは記憶データへのアクセスを保護しうるが、(鍵ではなく)データの保護のためにパスワードが使用されるべきではない。
・パスワードに関連するセキュリティレベルを上げるため、親鍵を用いてパスワードを多様化すれば、1つのパスワードがハッキングされてもシステム全体が破壊されることはない。パスワードの送信には、セッション鍵方式のセキュア通信チャネルを使用することができる。
<認証>
パスワード保護
・パスワード保護は、保護領域にアクセスする場合にパスワードの提示が求められることを意味する。パスワードが1つに限られる場合を除き、それぞれのパスワードには読出しアクセスまたは読出し/書込みアクセスなど、別々の権利を関連付けることができる。
・パスワード保護は、ホストから提供されるパスワードを装置(例えば、フラッシュカード)が検証しうること、すなわち、装置もまた装置によって管理され保護されたメモリ領域にパスワードを記憶することを意味する。
問題および限界
・パスワードはリプレー攻撃を被ることがある。提示のたびに変わらないパスワードは、同じ状態で再送されうる。つまり、保護の対象となるデータが貴重で、通信バスへのアクセスが容易な場合、パスワードを現状のまま使用するべきではない。
・パスワードは記憶データへのアクセスを保護しうるが、(鍵ではなく)データの保護のためにパスワードが使用されるべきではない。
・パスワードに関連するセキュリティレベルを上げるため、親鍵を用いてパスワードを多様化すれば、1つのパスワードがハッキングされてもシステム全体が破壊されることはない。パスワードの送信には、セッション鍵方式のセキュア通信チャネルを使用することができる。
図19は、パスワードを使用した認証を示すフローチャートである。エンティティは、アカウントidおよびパスワードをシステム10(例えば、フラッシュメモリカード)へ送信する。システムは、パスワードがそのメモリにあるパスワードに一致するかどうかをチェックする。一致する場合は認証済みステータスが返される。そうでない場合はそのアカウントのエラーカウンタがインクリメントされ、エンティティにはアカウントidおよびパスワードの再入力が求められる。カウンタがオーバーフローすると、システムはアクセス拒絶ステータスを返す。
<対称鍵>
対称鍵アルゴリズムは、暗号化と復号化の両側で同じ鍵が使用されることを意味する。これは、通信に先立って、予め鍵を取り決めておくことを意味する。それぞれの側では、相手側の逆のアルゴリズムを実行すべきである。すなわち、一方は暗号化アルゴリズムになり、他方は復号化アルゴリズムになる。通信する場合に両側で両方のアルゴリズムを実行する必要はない。
認証
・対称鍵認証は、装置(例えば、フラッシュカード)およびホストが同じ鍵を共有し、同じ暗号アルゴリズム(ダイレクトおよびリバース、例えば、DESおよびDES−1)を有することを意味する。
・対称鍵認証は、チャレンジ・レスポンス(リプレー攻撃対策)を意味する。被保護装置が他の装置に対する質問を生成し、両方の装置で回答を計算する。認証を受ける側の装置は回答を返送し、被保護装置はその回答をチェックし、それに応じて認証の正当性を実証する。そして、認証に応じて権利が付与される。
認証には次のものがある。
・外部認証:装置(例えば、フラッシュカード)が外部を認証する。すなわち、装置は所与のホストまたはアプリケーションの認証情報を実証する。
・相互認証:両側で質問を生成する。
・内部認証:ホストアプリケーションが装置(例えば、フラッシュカード)を認証する。すなわち、ホストは、装置がそのアプリケーションにとって真正であるかどうかをチェックする。
システム全体のセキュリティレベルを上げるために(すなわち、1つが低下してもすべてが低下しないようにするため)
・対称鍵には、通常、親鍵を使用した多様化が組み入れられる。
・質問が真正な質問であるようにするため、相互認証により両側からの質問を使用する。
暗号化
対称鍵暗号法はすこぶる効率的なアルゴリズムで、暗号処理する場合に強力なCPUを必要としないため、暗号化にも使用される。
対称鍵アルゴリズムは、暗号化と復号化の両側で同じ鍵が使用されることを意味する。これは、通信に先立って、予め鍵を取り決めておくことを意味する。それぞれの側では、相手側の逆のアルゴリズムを実行すべきである。すなわち、一方は暗号化アルゴリズムになり、他方は復号化アルゴリズムになる。通信する場合に両側で両方のアルゴリズムを実行する必要はない。
認証
・対称鍵認証は、装置(例えば、フラッシュカード)およびホストが同じ鍵を共有し、同じ暗号アルゴリズム(ダイレクトおよびリバース、例えば、DESおよびDES−1)を有することを意味する。
・対称鍵認証は、チャレンジ・レスポンス(リプレー攻撃対策)を意味する。被保護装置が他の装置に対する質問を生成し、両方の装置で回答を計算する。認証を受ける側の装置は回答を返送し、被保護装置はその回答をチェックし、それに応じて認証の正当性を実証する。そして、認証に応じて権利が付与される。
認証には次のものがある。
・外部認証:装置(例えば、フラッシュカード)が外部を認証する。すなわち、装置は所与のホストまたはアプリケーションの認証情報を実証する。
・相互認証:両側で質問を生成する。
・内部認証:ホストアプリケーションが装置(例えば、フラッシュカード)を認証する。すなわち、ホストは、装置がそのアプリケーションにとって真正であるかどうかをチェックする。
システム全体のセキュリティレベルを上げるために(すなわち、1つが低下してもすべてが低下しないようにするため)
・対称鍵には、通常、親鍵を使用した多様化が組み入れられる。
・質問が真正な質問であるようにするため、相互認証により両側からの質問を使用する。
暗号化
対称鍵暗号法はすこぶる効率的なアルゴリズムで、暗号処理する場合に強力なCPUを必要としないため、暗号化にも使用される。
通信チャネルを安全に使用するとき:
・チャネルの安全を確保する(すなわち、全発信データを暗号化し全受信データを復号化する)ために使用されるセッション鍵を、両方の装置が知らなければならない。このセッション鍵は、通常、事前共有秘密対称鍵を使用するか、あるいはPKIを使用して確立される。
・両方の装置が同じ暗号アルゴリズムを知り、実行しなければならない。
・チャネルの安全を確保する(すなわち、全発信データを暗号化し全受信データを復号化する)ために使用されるセッション鍵を、両方の装置が知らなければならない。このセッション鍵は、通常、事前共有秘密対称鍵を使用するか、あるいはPKIを使用して確立される。
・両方の装置が同じ暗号アルゴリズムを知り、実行しなければならない。
<署名>
対称鍵を使用してデータに署名することもできる。この場合の署名は、暗号化の部分的な結果である。結果を一部分に留めることで、鍵値を露出することなく必要に応じて何度でも署名することができる。
対称鍵を使用してデータに署名することもできる。この場合の署名は、暗号化の部分的な結果である。結果を一部分に留めることで、鍵値を露出することなく必要に応じて何度でも署名することができる。
<問題および限界>
対称アルゴリズムは非常に効率的で安全ではあるが、事前共有秘密に基づいている。問題は、この秘密を動的に安全に共有することと、場合により(セッション鍵のように)ランダムにすることである。つまり、共有秘密を長期間にわたって安全に保つのは困難であり、多数の人々と共有することはほぼ不可能である。
対称アルゴリズムは非常に効率的で安全ではあるが、事前共有秘密に基づいている。問題は、この秘密を動的に安全に共有することと、場合により(セッション鍵のように)ランダムにすることである。つまり、共有秘密を長期間にわたって安全に保つのは困難であり、多数の人々と共有することはほぼ不可能である。
この作業を容易にするために、秘密を共有せずに交換できる公開鍵アルゴリズムが考案されている。
<非対称認証手続き>
非対称鍵に基づく認証では、一連のコマンドを使用してデータを受け渡ししながら、最終的にはセキュアチャネル通信のためのセッション鍵を作る。その基本的プロトコルでは、SSAシステムに対してユーザを認証する。多様なプロトコルにより、ユーザが使用したいACRを検証する相互認証や二因子認証も可能である。
非対称鍵に基づく認証では、一連のコマンドを使用してデータを受け渡ししながら、最終的にはセキュアチャネル通信のためのセッション鍵を作る。その基本的プロトコルでは、SSAシステムに対してユーザを認証する。多様なプロトコルにより、ユーザが使用したいACRを検証する相互認証や二因子認証も可能である。
SSAの非対称認証プロトコルでは、公開鍵基盤(PKI)アルゴリズムおよびRSAアルゴリズムを使用することが好ましい。これらのアルゴリズムで規定することで、認証プロセスの各当事者に独自のRSA鍵対を作成することができる。各対は公開鍵および秘密鍵からなる。これらの鍵は秘匿の鍵であるために、アイデンティティの証拠を提供することはできない。PKI層では、信頼された第三者機関が公開鍵の各々に署名することを求められる。この信用機関の公開鍵は、互いを認証する当事者間で事前共有され、当事者の公開鍵を検証するために使用されている。信用が成立すると(両当事者が相手方から提供される公開鍵を信用できると判定すると)、プロトコルによる認証(各当事者が所有する秘密鍵の一致を検証する)と鍵の交換が続行される。これは、後述する図22および23のチャレンジ・レスポンス機構によって行うことができる。
署名済みの公開鍵を含む構造は、証明書と称される。証明書に署名した信用機関は、証明機関(CA)と称される。認証を受ける側は、RSA鍵対と公開鍵の信頼性を立証する証明書とを有する。証明書は、相手方(認証する側)が信用する証明機関によって署名される。認証する側には、信用CAの公開鍵の所有が求められる。
SSAは証明書連鎖に対応する。これは、識別される側の公開鍵が別のCA、すなわち識別する側が信用するCAとは異なるCAによって署名されることを意味する。この場合の識別される側は、自分自身の証明書のほかに、その公開鍵に署名したCAの証明書を提供する。この第2レベルの証明書さえも相手方によって信用されない(信用CAによって署名されていない)場合、第3レベルの証明書を提供することができる。この証明書連鎖アルゴリズムでは、各当事者が公開鍵の認証に必要な証明書の完全なリストを所有する。このことは、図23および24に例示されている。この種のACRによる相互認証に必要な認証情報は、選択された長さを有するRSA鍵対である。
<SSA証明書>
SSAは、[X.509]バージョン3デジタル証明書を採用する。[X.509]は汎用規格であり、ここで説明するSSA証明書プロファイルは証明書の所定フィールドの内容をさらに指定し、制限する。この証明書プロファイルは、証明書連鎖の管理のために定められた信頼階層と、SSA証明書の実証と、証明書失効リスト(CRL)プロファイルも規定する。
SSAは、[X.509]バージョン3デジタル証明書を採用する。[X.509]は汎用規格であり、ここで説明するSSA証明書プロファイルは証明書の所定フィールドの内容をさらに指定し、制限する。この証明書プロファイルは、証明書連鎖の管理のために定められた信頼階層と、SSA証明書の実証と、証明書失効リスト(CRL)プロファイルも規定する。
証明書は公開情報(内部の公開鍵として)とみなされ、したがって、暗号化されない。しかしながら、証明書はRSA署名を含み、このRSA署名によって公開鍵やその他すべての情報フィールドが改ざんされていないことを検証する。
[X.509]はASN.1規格を使用した各フィールドのフォーマットを定め、ASN.1規格ではデータ符号化にDERフォーマットを使用する。
<SSA証明書の概要>
図20および図21に示されたSSA証明書管理アーキテクチャの一実施形態は、ホストの無限階層レベルと装置の3階層レベルからなるが、装置で使用する階層レベルは3レベルより多い場合または3レベルより少ない場合がある。
図20および図21に示されたSSA証明書管理アーキテクチャの一実施形態は、ホストの無限階層レベルと装置の3階層レベルからなるが、装置で使用する階層レベルは3レベルより多い場合または3レベルより少ない場合がある。
<ホスト証明書階層>
装置は、2つの要素、すなわち、装置に記憶されたルートCA証明書(ACR認証情報としてACRの作成時に記憶)と、装置への(その特定のACRへの)アクセスを試行するエンティティから提供される証明書/証明書連鎖とに基づいて、ホストを認証する。
装置は、2つの要素、すなわち、装置に記憶されたルートCA証明書(ACR認証情報としてACRの作成時に記憶)と、装置への(その特定のACRへの)アクセスを試行するエンティティから提供される証明書/証明書連鎖とに基づいて、ホストを認証する。
ホスト証明機関は、それぞれのACRに対してルートCA(ACR認証情報に常駐する証明書)としての役割を果たす。例えば、ある1つのACRにとってのルートCAは「ホスト1_CA(レベル2)証明書」であり、別のACRにとってのルートCAは「ホストルートCA証明書」である。各々のACRに対して、ルートCAによって署名された証明書(またはルートCAを末端エンティティ証明書までつなげる証明書連鎖)を保持するすべてのエンティティが、末端事業者証明書の対応する秘密鍵を有している場合、そのACRにログインすることができる。前述のように、証明書は公知であり、秘密にされない。
ルートCAによって発行された証明書(ならびに対応する秘密鍵)の所有者は誰でもそのACRにログイン可能であるということは、ある特定のACRに対する認証がそのACRの認証情報に記憶されたルートCAの発行者によって決まることを意味する。換言すると、ルートCAの発行者がACRの認証方式を管理するエンティティになりうる。
<ホストルート証明書>
ルート証明書は、ログインを試行するエンティティ(ホスト)の公開鍵の検証を開始するためにSSAが使用している信用CA証明書である。この証明書は、ACRの作成時にACR認証情報の一部として提供される。これはPKIシステムに対する信用の根元にあたるものであり、したがって、信用されたエンティティ(父ACR、または製造/構成信頼環境)から提供されることが前提となる。この証明書を検証するSSAは、その公開鍵を使用して証明書の署名を検証する。ホストルート証明書は暗号化された状態で不揮発性メモリ(図1には示されていない)に記憶され、装置の秘密鍵にアクセスできるのは、好ましくは図1のシステム10のCPU12のみである。
ルート証明書は、ログインを試行するエンティティ(ホスト)の公開鍵の検証を開始するためにSSAが使用している信用CA証明書である。この証明書は、ACRの作成時にACR認証情報の一部として提供される。これはPKIシステムに対する信用の根元にあたるものであり、したがって、信用されたエンティティ(父ACR、または製造/構成信頼環境)から提供されることが前提となる。この証明書を検証するSSAは、その公開鍵を使用して証明書の署名を検証する。ホストルート証明書は暗号化された状態で不揮発性メモリ(図1には示されていない)に記憶され、装置の秘密鍵にアクセスできるのは、好ましくは図1のシステム10のCPU12のみである。
<ホスト証明書連鎖>
これらの証明書は認証中にSSAへ提供される。連鎖の処理が完了した後にホストの証明書連鎖を再収集して装置に記憶することはすべきでない。
これらの証明書は認証中にSSAへ提供される。連鎖の処理が完了した後にホストの証明書連鎖を再収集して装置に記憶することはすべきでない。
図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
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
前述した3つの証明書連鎖A1、B1、およびC1は、ホストの公開鍵が真正であることを証明するために使用されてもよい、3つの考えられるホスト証明書連鎖を例示するものである。前述した証明書連鎖A1と図20とを参照し、ホスト1のCA(レベル2)証明書504の公開鍵はホストルートCAの秘密鍵(すなわち、公開鍵のダイジェストを暗号化することによって)によって署名され、この公開鍵はホストルートCA証明書502にある。さらに、ホスト証明書506のホスト公開鍵は、ホスト1のCA(レベル2)の秘密鍵によって署名され、この公開鍵はホスト1CA(レベル2)証明書504において提供される。したがって、ホストルート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を使用した認証も同様に行われる。
連鎖A1が関わる前述したプロセスから分かるように、ホストから送信されエンティティによって検証される必要のある最初の公開鍵は、ホストルートCA証明書ではなく、ホスト1のCA(レベル2)の公開鍵である。このため、ホストがエンティティへ送信する必要があるものは、ホスト1のCA(レベル2)証明書504とホスト証明書506であって、ホスト1のCA(レベル2)証明書は連鎖の中で最初に送信される必要があることになる。前述したように、証明書の検証順序は次の通りである。検証する側のエンティティ、すなわちこの場合のメモリ装置10はまず、連鎖の中で最初の証明書の公開鍵の真性を検証し、この場合のものはルートCAの下に位置するCAの証明書504である。この証明書の公開鍵が真正であることを検証した後、装置10は次の証明書の検証に進み、この場合のものはホスト証明書506である。証明書連鎖が3つ以上の証明書を含む場合の検証順序も同様に、ルート証明書のすぐ下に位置する証明書から始まり、認証の対象となるエンティティの証明書で終わる。
<装置証明書階層>
ホストは2つの要素、すなわちホストに記憶された装置ルートCAと、装置からホストへ提供される(ACRの作成時に認証情報として装置に提供される)証明書/証明書連鎖とに基づいて装置を認証する。ホストによる装置の認証プロセスは、前述した装置によるホスト認証プロセスに類似している。
ホストは2つの要素、すなわちホストに記憶された装置ルートCAと、装置からホストへ提供される(ACRの作成時に認証情報として装置に提供される)証明書/証明書連鎖とに基づいて装置を認証する。ホストによる装置の認証プロセスは、前述した装置によるホスト認証プロセスに類似している。
<装置証明書連鎖>
これらの証明書は、ACRの鍵対の証明書である。これらの証明書は、ACRの作成時にカードに提供される。SSAはこれらの証明書を個別に記憶し、認証の際にはそれらを1つずつホストに提供する。SSAは、これらの証明書を使用してホストを認証する。装置は3つの証明書からなる連鎖を処理しうるが、使用される証明書数が3以外になる場合がある。証明書の数は、ACRによって変わることがある。これは、ACRが作成されるときに決まる。装置はホストに向けて証明書連鎖を送信しうるが、証明書連鎖データを使用するわけではないので、証明書連鎖を解析する必要はない。
これらの証明書は、ACRの鍵対の証明書である。これらの証明書は、ACRの作成時にカードに提供される。SSAはこれらの証明書を個別に記憶し、認証の際にはそれらを1つずつホストに提供する。SSAは、これらの証明書を使用してホストを認証する。装置は3つの証明書からなる連鎖を処理しうるが、使用される証明書数が3以外になる場合がある。証明書の数は、ACRによって変わることがある。これは、ACRが作成されるときに決まる。装置はホストに向けて証明書連鎖を送信しうるが、証明書連鎖データを使用するわけではないので、証明書連鎖を解析する必要はない。
図21は、記憶装置などのSSAを使用する装置で1〜n種類の証明書連鎖を示す、装置証明書レベル階層の概略図である。図21に例示されたn種類の証明書連鎖は次の通りである。
A2.装置ルートCA証明書520、装置1CA(製造業者)証明書522、装置証明書524
B2.装置ルートCA証明書520、装置n CA(製造業者)証明書526、装置証明書528
A2.装置ルートCA証明書520、装置1CA(製造業者)証明書522、装置証明書524
B2.装置ルートCA証明書520、装置n CA(製造業者)証明書526、装置証明書528
SSA装置は、それぞれ独自の装置CA証明書を有する1〜n種類の製造業者によって製造されうる。したがって、ある特定の装置の装置証明書の公開鍵はその異なる製造業者の秘密鍵によって署名され、製造業者の公開鍵は装置ルートCAの秘密鍵によって署名される。装置の公開鍵を検証する方法は、前述したホストの公開鍵の場合の方法に類似する。ホストについて前述した連鎖A1の検証の場合と同様に、装置ルートCA証明書を送信する必要はなく、連鎖の中で送信すべき最初の証明書は装置i_CA(製造業者)証明書であって、その後に装置証明書が続き、iは1〜nの整数である。
図21に示す実施形態において、装置は2つの証明書、つまり装置i_CA(製造業者)証明書と、その後に自身の装置証明書とを送信する。装置i_CA(製造業者)証明書は、このような装置を製造し、装置の公開鍵に署名するための秘密鍵を提供する製造業者の証明書である。装置i_CA(製造業者)証明書を受信したホストは、自身が所有するルートCAの公開鍵を使用して装置i_CA(製造業者)公開鍵を復号化し、検証する。ホストはこの検証に失敗した場合、プロセスを中断し、認証が失敗したことを装置に通知する。ホストが認証に成功した場合、次の証明書を求める要求を装置へ送信する。この後、装置は自身の装置証明書を送信し、ホストはこれを同様に検証する。
図22および図23は、前述した検証プロセスをさらに詳しく示すものである。図22の「SSMシステム」は、本明細書で説明するSSAシステムと後述するその他の機能とを実行するソフトウェアモジュールである。SSMは、ソフトウェアまたはコンピュータコードとして具体化することができ、メモリ20またはCPU12の不揮発性メモリ(図示せず)にデータベースを記憶し、RAM_12aに読み込まれて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段階へ進む。
SSMシステム542は乱数554を生成し、これを質問としてホストシステム540に送信する。システム540はホストシステムの秘密鍵547を使用して乱数554に署名し(ブロック556)、質問に対する回答として署名済みの乱数を送信する。その回答はホスト公開鍵546を使用して復号化され(ブロック558)、乱数554と比較される(ブロック560)。復号化された回答が乱数554に一致したと仮定すると、チャレンジ・レスポンスは成功である。
第3段階では、ホスト公開鍵546を使用して乱数562を暗号化する。この乱数562は、この後、セッション鍵となる。ホストシステム540は、SSMシステム542からの暗号化数562を秘密鍵を使用して復号化(ブロック564)することによってセッション鍵を得ることができる。このセッション鍵により、ホストシステム540とSSMシステム542との間でセキュア通信が開始されうる。図22に示す一方向非対称認証では、装置10のSSMシステム542によってホストシステム540が認証される。図23は、図22の一方向認証プロトコルに類似した双方向相互認証プロセスを示すプロトコル図であり、図23ではSSMシステム542もホストシステム540によって認証される。
図24は、本発明の一実施形態を例示する証明書連鎖590の図である。前述したように、検証する場合に提示する必要がある証明書連鎖は、多数の証明書を含むことがある。図24の証明書連鎖は全部で9つの証明書を含み、認証する場合にはこれらの証明書をすべて検証することが必要となる場合がある。背景技術の節で先に説明したように、既存の証明書検証システムでは、送信される証明書連鎖に不備があったり、証明全体が送信されたり、証明書が特定の順序で送信されないと、受信側は証明書を一通り受信し記憶するまで証明書を解析することができない。しかし、連鎖に含まれる証明書の数は事前に分からないため、問題が生じることがある。長さが不確かな証明書連鎖を記憶するために大量の記憶容量を確保する必要になることがある。これは検証を実施する記憶装置にとって問題になることがある。
本発明の一実施形態は、証明書連鎖が記憶装置によって検証される順序と同じ順序でホスト装置がその証明書連鎖を送信するシステムによって、この問題を軽減できるという認識に基づく。それゆえ、図24に示すように、証明書の連鎖590は、ホストルート証明書のすぐ下に位置する証明書590(1)から始まり、ホスト証明書である証明書590(9)で終わる。したがって、装置10はまず、証明書590(1)で公開鍵を検証し、その後に証明書590(2)で公開鍵の検証などを行い、最後に証明書590(9)でホスト公開鍵を検証する。これで、証明書連鎖590全体の検証プロセスは完了する。それゆえ、ホスト装置が証明書連鎖590を検証と同じ順序でメモリ装置10へ送信する場合、メモリ装置10は証明書を受信するたびに検証を開始することができ、連鎖590に含まれる9つの証明書全部が受信されるまで待つ必要はない。
それゆえ、ホスト装置は、一実施形態において、メモリ装置10に対して連鎖590の証明書を一度に1つずつ送信する。メモリ装置10は、一度に1つの証明書を記憶することになる。連鎖の中の最後の証明書を除き、検証済みの証明書は、ホストから送信される次の証明書で上書きすることができる。このように、メモリ装置10には、いつも1つだけの証明書を記憶する容量を確保する必要がある。
メモリ装置は、連鎖590全体が受信されていることを知る必要がある。それゆえ、最後の証明書590(9)には、これが連鎖の中で最後の証明書であることを伝える標識または標示を含んでいることが好ましい。これを例示する図25の表は、ホストからメモリ装置10へ送信される証明書バッファに先行する制御セクタ内の情報を示す。図25に示すように、証明書590(9)の制御セクタには、引数名「最終」フラグがある。メモリ装置10は、「最終」フラグが設定されているかどうかをチェックして受信した証明書が連鎖における最終証明書であるかどうかを判定することにより、連鎖の中で証明書590(9)が最後の証明書であることを検証することができる。
代替的な実施形態では、連鎖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は、最も長い列のための十分な容量を確保するだけでよい。
ホストによって送信される連鎖の中の各証明書の長さは、その証明書によって証明される公開鍵の長さの4倍以下であることが好ましい。同様に、メモリ装置の公開鍵を証明するためにメモリ装置10からホスト装置へ送信される証明書の長さは、その証明書によって証明される公開鍵の長さの4倍以下であることが好ましい。
図26のフローチャートは、前述した証明書連鎖検証の実施形態を示すものであり、ここでは簡単にするために、各グループ内の証明書数を1と仮定する。図26に示すように、ホストは、カードに向けて連鎖内の証明書を順次送信する。連鎖の中の第1の証明書(前述したように、通常はルート証明書の後続証明書)から始まって、カードは、認証の対象となるホストから証明書連鎖を順次受信する(ブロック602)。そしてカードは、受信する証明書の各々を検証し、証明書のいずれかで検証に失敗した場合はプロセスを中止する。カードは、証明書のいずれかで検証に失敗した場合、ホストに通知する(ブロック604、606)。この後、カードは、最後の証明書が受信され検証されたかどうかを検出する(菱形608)。最終証明書が受信されずに検証されていなければ、カードはブロック602まで戻り、ホストからの証明書の受信および検証を続ける。最終証明書が受信されて検証されれば、カードは証明書検証の後に続く次の段階へ進む(610)。図26とそれ以降の図の内容は、例としてメモリカードについて言及しているが、物理的形態がメモリカードではないメモリ装置にもこれらの内容が適用されうることは理解されよう。
図27は、カードがホストを認証するときに、ホストによって実行されるプロセスを示す。図27に示すように、ホストは、連鎖の中の次の証明書をカードに送信する(ブロック620)(典型的に、ルート証明書の後続証明書から始まる)。ホストは、認証の失敗を伝える中止通知がカードから受信されているかどうかを判定する(菱形622)。中止通知が受信されていれば、ホストは停止する(ブロック624)。中止通知が受信されていなければ、ホストは送信された最後の証明書で「最終フラグ」が設定されているかどうかをチェックすることにより、連鎖の最終証明書が送信済みかどうかを確認する(菱形626)。最終証明書が送信済みであれば、ホストは証明書検証の後に続く次の段階に進む(ブロック628)。図22および23に示すように、次の段階はチャレンジ・レスポンスであり、その後にセッション鍵の作成が続いてもよい。連鎖の最終証明書が送信済みでなければ、ホストはブロック620まで戻り、連鎖内の次の証明書を送信する。
図28および図29は、カードが認証されるときに、カードおよびホストが取るアクションを示す。図28に示すように、カードは開始後、連鎖の中で証明書の送信を求めるホストからの要求を待つ(ブロック630、菱形632)。ホストから要求が受信されなければ、カードは菱形632に戻ることになる。ホストから要求が受信される場合、カードは連鎖の中の次の証明書を送信することになり、これは送信されるべき最初の証明書から始まる(典型的に、ルート証明書の後続証明書から始まる)(ブロック634)。カードは、ホストから失敗通知が受信されたかどうかを判定する(菱形636)。失敗通知が受信されている場合、カードは停止する(ブロック637)。失敗通知が受信されていない場合、カードは最終証明書が送信済みかどうかを判定する(菱形638)。最終証明書が送信済みでなければ、カードは菱形632まで戻り、連鎖内の次の証明書の送信を求める次の要求をホストから受信するまで待つ。最終証明書が送信済みであれば、カードは次の段階に進む(ブロック639)。
図29は、カードが認証されるときにホストが取るアクションを示す。ホストは、連鎖内の次の証明書を求める要求をカードに送り、これは送信されるべき最初の証明書に対する要求から始まる(ブロック640)。ホストは、この後、受信する各々の証明書を検証し、検証に失敗した場合はプロセスを中止し、カードに通知する(ブロック642)。検証に合格した場合、ホストは最終証明書が受信済みで検証に成功しているかどうかをチェックする(菱形644)。最終証明書が受信されておらず検証が成功していなければ、ホストはブロック640まで戻り、連鎖内の次の証明書を求める要求を送信する。最終証明書が受信済みで検証が成功している場合、ホストは証明書検証に続く次の段階に進む(ブロック646)。
<証明書失効>
発行された証明書は、その有効期間全体にわたって使用されることが予想される。しかし、様々な事情から、有効期間の満了の前に証明書が無効になる場合がある。名称の変更、対象とCAとの関係の変化(例えば、従業員の退職)、対応する秘密鍵の侵害または侵害の疑い等がこれにあたる。このような場合には、CAが証明書を無効にする必要がある。
発行された証明書は、その有効期間全体にわたって使用されることが予想される。しかし、様々な事情から、有効期間の満了の前に証明書が無効になる場合がある。名称の変更、対象とCAとの関係の変化(例えば、従業員の退職)、対応する秘密鍵の侵害または侵害の疑い等がこれにあたる。このような場合には、CAが証明書を無効にする必要がある。
SSAにおける証明書の失効には別の方法があり、ACRは各々が別々の証明書失効制度によって構成されうる。まず、失効制度をサポートしない形にACRを構成することができる。この場合の各証明書は、有効期限まで有効とみなされる。証明書失効リスト(CRL)を使用することもできる。さらに別の代案として、後述するようにある特定のアプリケーションに失効制度を限定する、つまりアプリケーション別の限定となるようにしてもよい。ACRでは、失効値を指定することによって、3つの失効制度のどれが採用されているかを指定する。失効制度なしで作成されたACRでは、そのACRの所有者が決定する失効制度を採用することができる。メモリ装置証明書の失効は、SSAセキュリティシステムではなくホストによって執行される。ホストルート証明書の失効管理はACRの所有者が担当し、これはACRの認証情報を更新することによって行われる。
<証明書失効リスト(CRL)>
SSAシステムで失効制度を使用するには、各CAが証明書失効リスト(CRL)と呼ばれる署名済みデータ構造を定期的に発行する。CRLは、失効した証明書を識別するタイムスタンプ付きリストであり、CA(該当する証明書を発行したCA)によって署名され、一般に公開されて自由に利用することができる。CRLの中では、失効した証明書を、それぞれの証明書通し番号で識別する。CRLのサイズは、任意なものであって、期限切れ前に失効する証明書の数で決まる。(例えば、ホストのアイデンティティを検証するために)証明書を使用する装置は、証明書の署名(ならびに有効性)をチェックするだけでなく、CRLを通じて受信された通し番号のリストにこれを照らして検証する。証明書の発行元にあたるCAから発行されるCRLでその証明書の識別情報、例えば、通し番号が見つかる場合、これは、その証明書が失効し、もはや有効でないことを意味する。
SSAシステムで失効制度を使用するには、各CAが証明書失効リスト(CRL)と呼ばれる署名済みデータ構造を定期的に発行する。CRLは、失効した証明書を識別するタイムスタンプ付きリストであり、CA(該当する証明書を発行したCA)によって署名され、一般に公開されて自由に利用することができる。CRLの中では、失効した証明書を、それぞれの証明書通し番号で識別する。CRLのサイズは、任意なものであって、期限切れ前に失効する証明書の数で決まる。(例えば、ホストのアイデンティティを検証するために)証明書を使用する装置は、証明書の署名(ならびに有効性)をチェックするだけでなく、CRLを通じて受信された通し番号のリストにこれを照らして検証する。証明書の発行元にあたるCAから発行されるCRLでその証明書の識別情報、例えば、通し番号が見つかる場合、これは、その証明書が失効し、もはや有効でないことを意味する。
証明書の有効性を検査する目的をCRLで果たすには、CRLについても、これが真正であることを検証する必要がある。CRLには、その発行元にあたるCAの秘密鍵を使用して署名し、CAの公開鍵を使用して署名済みCRLを復号化することによってこれが真正であることを検証することができる。復号化されたCRLが、無署名CRLのダイジェストに一致する場合、そのCRLに改ざんがなく、真正であることを意味する。CRLのダイジェストを得るためにハッシュアルゴリズムを使用して頻繁にCRLのハッシュ計算が行われ、そのダイジェストはCAの秘密鍵で暗号化される。CRLが有効かどうかを検証するには、CAの公開鍵を使用して署名済みCRL(すなわち、ハッシュ化および暗号化されたCRL)を復号化し、復号化されハッシュ化されたCRL(すなわち、CRLのダイジェスト)を得る。そして、これをハッシュ化CRLと比較する。それゆえ、検証プロセスでは、復号化されハッシュ化されたCRLとの比較のためのCRLのハッシュ計算ステップを頻繁に伴うことがある。
CRL方式の特徴の1つとして、(CRLを使用した)証明書の妥当性の検証は、CRLの入手とは別に実施することができる。CRLもまた適切な証明書の発行元によって署名され、証明書の検証と同様に、CRLの発行元にあたるCAの公開鍵を使用して前述したように検証される。メモリ装置は、署名がCRLのものであることを検証し、さらにCRLの発行元と証明書の発行元との一致を検証する。CRL方式の別の特徴として、CRLは証明書自体と全く同じ方法で、(具体的には信頼性のないサーバと信頼性のない通信を通じて、)提供することができる。X.509規格には、CRLとその特徴が詳述されている。
<CRLのためのSSA基盤>
SSAは、CRL方式を使用したホスト失効のための基盤を提供する。CRL失効制度を採用するRSA方式ACRで認証するとき、ホストは、Set Certificateコマンドに対して追加のフィールドとして、1つのCRL(恐らく、発行元CAによって無効にされた証明書がない場合は空のCRL)を加える。このフィールドには、証明書の発行元によって署名されたCRLが含まれる。このフィールドが存在する場合、メモリ装置10は最初にSet Certificateコマンドで証明書を検証する。CRLリポジトリの入手とアクセスは、全面的にホストが担当する。CRLが有効であり続ける期間(CRL有効期間、すなわちCET)も、CRLと併せて発行される。現在の時間がこの期間から外れていることが検証中に判明すると、そのCRLには不備があるとみなされ、証明書の検証に使用することはできない。その結果、証明書の認証は失敗する。
SSAは、CRL方式を使用したホスト失効のための基盤を提供する。CRL失効制度を採用するRSA方式ACRで認証するとき、ホストは、Set Certificateコマンドに対して追加のフィールドとして、1つのCRL(恐らく、発行元CAによって無効にされた証明書がない場合は空のCRL)を加える。このフィールドには、証明書の発行元によって署名されたCRLが含まれる。このフィールドが存在する場合、メモリ装置10は最初にSet Certificateコマンドで証明書を検証する。CRLリポジトリの入手とアクセスは、全面的にホストが担当する。CRLが有効であり続ける期間(CRL有効期間、すなわちCET)も、CRLと併せて発行される。現在の時間がこの期間から外れていることが検証中に判明すると、そのCRLには不備があるとみなされ、証明書の検証に使用することはできない。その結果、証明書の認証は失敗する。
従来の証明書検証方法では、認証する側または検証する側のエンティティが、証明書失効リストを所有しているかあるいは証明機関(CA)から取り込むことができ、認証のために提示される証明書の通し番号をリストに照らしてチェックし、提示された証明書が失効しているかどうかが判定されるはずである。認証または検証する側のエンティティがメモリ装置の場合、そのメモリ装置自体が使用されなかったら、CAから証明書失効リストが取り込まれていない可能性がある。装置に予め記憶された証明書失効リストが時間を経て古くなると、インストールされた日より後に失効した証明書はリストに現れない。その結果、ユーザは、失効した証明書を使用してその記憶装置にアクセスすることになる。これは望ましくない。
一実施形態において、認証を受けようとするエンティティが、認証の対象となる証明書と併せて証明書失効リストを、認証する側のエンティティ(例えばメモリ装置10)に提示するシステムによって、前述した問題を解決できる可能性がある。認証する側のエンティティは、受信した証明書の信頼性と証明書失効リストの信頼性を検証する。認証する側のエンティティは、失効リストで証明書の識別情報の有無、例えば証明書の通し番号の有無をチェックすることにより、証明書が失効リストに登記されているかどうかをチェックする。
前述したことを踏まえ、ホスト装置とメモリ装置10との相互認証に、非対称認証方式を使用することができる。メモリ装置10の認証を受けようとするホスト装置は、証明書連鎖および対応するCRLの両方を提供する必要がある。一方、ホスト装置は予めCAに接続してCRLを入手しているため、ホスト装置がメモリ装置10を認証するとき、メモリ装置は、証明書または証明書連鎖と併せて、CRLをホスト装置に提示する必要はない。
種々の内蔵または独立型ミュージックプレーヤ、MP3プレーヤ、携帯電話機、個人用携帯情報端末、およびノートブックコンピュータなど、近年コンテンツの再生に使用できる種々のタイプの携帯型装置は増えている。証明機関から証明書検証リストへアクセスするため、そのような装置をワールド・ワイド・ウェブに接続することは可能であるが、多数のユーザは典型的に、ウェブに毎日接続するのではなく、例えば数週間に一度、新たなコンテンツを入手したり契約を更新したりするときに、これを行う。そのようなユーザにとって、証明機関からより頻繁に証明書失効リストを入手するのは面倒な場合がある。そのようなユーザについて、証明書失効リスト、さらに必要であれば被保護コンテンツへアクセスする場合に記憶装置に提示する必要のあるホスト証明書を、好ましくは記憶装置自体の非保護領域に記憶してもよい。多くのタイプの記憶装置(例えば、フラッシュメモリ)で、記憶装置の非保護領域は、記憶装置自体によって管理されるのではなく、ホスト装置によって管理される。これにより、ユーザはより新しい証明書失効リストを入手するため(ホスト装置を通じて)ウェブに接続する必要がない。ホスト装置は、記憶装置の非保護領域からそのような情報を検索し、その後、記憶装置またはメモリ装置に証明書とリストを提示して、記憶装置の被保護コンテンツにアクセスすることができる。被保護コンテンツにアクセスするための証明書とその対応する証明書失効リストは、典型的に一定の期間にわたって有効であるため、それらが有効である限り、ユーザは最新の証明書または証明書失効リストを入手する必要はない。このため、ユーザは、適度に長い期間にわたって有効な証明書と証明書失効リストを容易く入手でき、最新情報を得るために証明機関に接続する必要はない。
図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と併せて記憶されていることが好ましい。しかしながら、メモリ装置に対して認証する場合に証明書を使用できるホストは、証明書の発行を受けたホストのみである。
図32に示すように、CRLのフィールドに次回の更新時間が含まれる場合、装置10のSSAは、現在の時間をこの時間に照らしてチェックし、現在の時間がこの時間を過ぎているかどうかを確認し、過ぎている場合は認証が失敗する。それゆえ、SSAは、現在の時間(またはメモリ装置10でCRLを受信した時間)に照らしてCETをチェックするばかりでなく、次回更新の時間もチェックすることが好ましい。
前述したように、CRLに含まれる失効済み証明書の識別情報のリストが長くなると、リストの処理(例えば、ハッシュ計算)と、ホストによって提示される証明書の通し番号の検索とに時間を要し、処理と検索が順次に行われる場合は特に時間がかかる。それゆえ、このプロセスを加速するために、処理と検索とを同時に行ってもよい。さらに、CRLの全体を受信した後でないとCRLの処理と検索にかかれない場合にも、プロセスに時間がかかることがある。本出願人らは、CRLの一部分を受信の時点で(その都度)処理し検索すれば、CRLの最終部分を受信するときにはプロセスは完了間際となり、プロセスが捗ることに気付いた。
図33および図34は、前述した失効制度の特徴を示す。認証する側のエンティティ(例えば、メモリカードなどのメモリ装置)では、認証を受けようとするエンティティから、証明書およびCRLを受信する(ブロック702)。暗号化されていないCRLの一部分を処理し(例えば、ハッシュ化し)、それと同時に、提示された証明書の識別情報(例えば、通し番号)をそのような部分で検索する。処理された(例えば、ハッシュ化された)CRL部分は、ハッシュ化された完全CRLにコンパイルされ、完全に復号化されハッシュ化されたCRLと比較される。完全に復号化されハッシュ化されたCRLは、認証を受ける側のエンティティから受信した復号化されたCRL部分をコンパイルすることによって、形成される。一致しないことが比較で明らかになる場合、認証は失敗に終わる。また、認証する側のエンティティは、現在の時間に照らして、CETと次回更新時間の両方をチェックする(ブロック706、708)。提示された証明書の識別情報がCRLに記載されていることが判明した場合、あるいは現在の時間がCETの範囲内にない場合、あるいはCRLの次回更新時間が過ぎている場合にも、認証は失敗に終わる(ブロック710)。ハッシュ化されたCRL部分と、復号化されハッシュ化されたCRL部分とを、組み立てるために記憶する場合、大量の記憶容量を必要としない場合がある。
認証を受けようとするエンティティ(例えば、ホスト)は、その証明書とCRLを、認証する側のエンティティへ送信し(ブロック722)、次の段階へ進む(ブロック724)。これは図34に示されている。
エンティティが認証のために証明書連鎖を提示する場合にも、前述したものと同様のプロセスを実施することができる。この場合、連鎖の中の各証明書とその対応するCRLにつき、前述したプロセスを繰り返す必要がある。各証明書とそのCRLを受信したら、その都度処理することができ、証明書連鎖の残りの部分とその対応するCRLの受信を待たなくてよい。
前述の一部の実施形態では、認証を受けることを望むホストまたはエンティティは、認証の対象となる証明書と併せて、証明書失効リストを認証する側のエンティティに提示する。これらの実施形態では、証明機関から証明書失効リストを取り込むことができない不揮発性記憶装置に、エンティティの認証時に更新された証明書失効リストを利用することができる。しかしながら、これらの実施形態では、ホストを頼りに最新の証明書失効リストを提供し、ホストは証明機関から証明書失効リストを取り込むことができることを前提としている。非接続ホスト、例えばMP3プレーヤは、認証中に不揮発性記憶装置に提示するための最新の証明書失効リストを取り込むことができないことがある。その結果、非接続ホストは、認証プロセス中に不揮発性記憶装置に、証明書失効リストの古いバージョンを提示してよい。
別の実施形態では、不揮発性記憶装置に提示される証明書失効リストの最新バージョンを記憶(キャッシュ)することによって、この問題が回避される。新たに製造されるカードは、製造中に得られる最新または現在の証明書失効リストがプログラムされてもよい。認証中にホストがキャッシュされた失効リストを提供しない場合には、このキャッシュされた失効リストを不揮発性記憶装置に使用してもよい。さらに、ホスト装置が同じ機関から発行された証明書失効リストの古いバージョンを提示するとき、不揮発性記憶装置は、その記憶された証明書失効リストを使用してもよい。また、不揮発性記憶装置では、認証を受けることを求めるホストまたはエンティティから更新された証明書失効リストを提示されるとき、その証明書失効リストをオポチュニスティックに更新してもよい。それゆえ、別の実施形態では、証明書が失効しているかどうかを判定する方法および不揮発性記憶装置が開示される。この実施形態では、不揮発性記憶装置は、ホストのこの装置への認証を試行するために、ホストから証明書を受信する。不揮発性記憶装置は、証明書失効リストを含み、ホストに動作可能に結合される。そして、不揮発性記憶装置は、証明書失効リストの中にある証明書のリファレンスを検索することによって、証明書が失効しているかどうかを判定する。この実施形態では、証明書失効リストは、不揮発性記憶装置がホストから不揮発性記憶装置への認証を試行するために証明書を受信する前にキャッシュされて最新とされる。証明書失効リストの中にある証明書に対するリファレンスが、検索によって生成されると、ホストによる認証の試行は拒絶される。
不揮発性記憶装置がホストから証明書失効リストを受信すると、不揮発性記憶装置は、ホストから受信した証明書失効リストを検証し、受信された証明書失効リストが不揮発性記憶装置の中にある現在の証明書失効リストよりも新しいかどうかを判定する。受信された証明書失効リストが検証されて、不揮発性記憶装置の中にある現在の証明書失効リストよりも新しければ、現在の証明書失効リストはホストから受信された新しい証明書失効リストに置換される。そして、不揮発性記憶装置に過去に記憶された現在の証明書失効リストを使用する代わりに、新しい証明書失効リストが使用されて、ホストからの証明書が失効しているかどうかが判定される。
不揮発性記憶装置がホストから証明書失効リストを受信し、不揮発性記憶装置がその発行機関からの証明書失効リストを現在記憶していない場合、不揮発性記憶装置が首尾よく検証されているならば、不揮発性記憶装置は受信された証明書失効リストを記憶し使用する。
証明書失効リストは、証明書失効リストを記憶する専用のメモリの領域などの、不揮発性記憶装置10のメモリの中に記憶されてもよい。一実施形態では、証明書失効リストは、証明書失効リストのデータベースに記憶されてもよい。証明書失効リストを記憶するデータベース、メモリ、または記憶容量は、例えば、アクセス権限のないエンティティによる証明書失効リストの変更や削除を防止するように保護されてもよい。
これまでに一般的に説明した上記実施形態のほかに、以下の段落では、採用しうる具体的な実施形態を提示する。この実施形態は単なる例であって、本明細書に記載する詳細は、本明細書において明示的に列挙されない限り、特許請求の範囲に引用されるはずがないことに留意されたい。この具体的な実施形態では、証明書失効リストがアクセス制御記録(ACR)に関連付けられる。エンティティがACRを用いて認証される場合、関連付けられた証明書失効リストは、提示された証明書が失効しているかどうかを判定するためにチェックされる。CRLを利用するこのようなACRを作成する場合、初期のCRLを受信してACRと関連付けることができる。この実施態様を図49と関連させて説明する。
図49は、証明書失効リストを用いてアクセス制御記録を構成する、例示的なステップ4900を示すフローチャートである。例示的ステップ4900は、新たなACRを作成または構成するために利用されるプロセスの一部であってもよい。制御は、ステップ4902で開始する。制御はステップ4908に進み、ここで、作成されているACRが1つまたは複数のキャッシュCRLをサポートするか、それともこのCRLに関連付けられるかが判定される。作成されているACRがキャッシュCRLをサポートしなければ、制御はACRの作成および構成を終了するためにステップ4904に進み、この後、ACRが作成されて構成されると、ステップ4906に進む。作成されているACRがキャッシュCRLをサポートする場合、制御はステップ4908からステップ4910に進み、ここでCRLデータが、ACRを作成するエンティティから受信される。ステップ4912において、受信されたCRLデータは、キャッシュCRLデータベースにキャッシュされる。制御はステップ4914に進み、ここでCRLデータのすべてが受信されているかどうかが判定される。CRLデータのすべてがまだ受信されていなければ、制御はステップ4914からステップ4910に進み、ステップ4910、4912、および4914はCRLデータのすべてが受信されるまで繰り返される。ステップ4910、4912、および4914は大量のセクタのCRLデータの受信を表しているが、ビット、バイト、ワード、および長いワードなどの他のインクリメントのCRLデータを受信することも可能である。CRLデータのすべてが受信されている場合、制御はステップ4914からステップ4916に進み、ここで、受信されたCRLがキャッシュCRLとしてACRと関連付けられて解析される。制御は、この後、ACRの作成および構成を終了するためにステップ4904に進み、さらに、ACRが作成されて構成された後、ステップ4906に進む。ステップ4900は、1つのCRLとACRの関連を示しているが、証明書連鎖に対する複数のCRLが受信され、キャッシュされ、ACRと関連付けられてもよい。
図50は、認証中に、不揮発性記憶装置にキャッシュされあるいはこの装置に提供される証明書失効リストを使用して不揮発性記憶装置を認証する、例示的なステップを示すフローチャートである。例示的なステップ5000は、不揮発性記憶装置によりエンティティを認証するステップの一部分または一側面であってもよい。制御は、ステップ5000で開始する。ステップ5004に進み、ここで、認証に使用されるアカウントまたはACRがチェックされて、これがキャッシュCRLをサポートするか、それともキャッシュCRLに関連付けられるかを判定する。ACRがキャッシュACRと関連付けられなければ、制御はステップ5006に進む。ACRがキャッシュCRLと関連付けられなければ、認証を求めるホストまたはエンティティは、証明書と併せてCRLを提供しなければならない。ステップ5006は、証明書を処理するときに使用されるCRLを、ホストが提供しているかどうかを試験する。ホストがCRLを提供していなければ、制御は5008に進み、証明書が引き続き有効かどうかを判定するためのCRLが不揮発性記憶装置に提供されておらず、当該CRLにアクセスできないため、認証は失敗する。ホストがCRLを提供していれば、制御はステップ5006からステップ5010に進み、ここでCRLが処理されて証明書が失効しているかどうかが判定される。制御はこの後ステップ5012に進み、他の認証処理を再開するか、または終了する。
ACRがキャッシュCRLをサポートするように構成される場合、制御はステップ5004からステップ5014に進む。ステップ5014は、認証を求めるホストからCRLヘッダが受信されているかを判定する。認証を求めるホストからCRLヘッダが受信されていなければ、制御はステップ5022に進み、ここで不揮発性記憶装置はキャッシュCRL(キャッシュCRLが証明機関から得られる場合)を使用してホストが提示する証明書を検証し、証明書が失効しているかどうかを判定する。さらに、制御はステップ5012に進み、他の認証処理を再開するかまたは終了する。図には示されていないが、不揮発性記憶装置により使用されるキャッシュCRLが得られなければ、認証は失敗する。
認証を求めるホストがCRLヘッダを提供している場合、ステップ5000は、不揮発性記憶装置が同じ証明機関からのCRLを現在記憶しているかどうか、および、記憶している場合には、キャッシュCRLがホストが提示しようとしているCRLよりも新しいためにキャッシュCRLが認証に使用されるべきかどうか、を判定しなければならない。それゆえ、制御はステップ5014からステップ5016に進む。ステップ5016において、CRLヘッダは、CRLのバージョンとCRLの発行者に関する情報を抽出するために、解析される。
ステップ5018において、抽出されたCRL発行者情報は、同じ発行者(証明機関)からのキャッシュCRLがACRと関連付けられているかどうかを判定するために、キャッシュCRL情報と比較される。例えば、ACRは複数のCRLと関連付けられてもよい。ACRが作成されるとき、あるいは装置が製造されるとき、ACRは発行者Xにより発行されたキャッシュCRLを有していてもよい(あるいは、キャッシュCRLが全くなくてよい)。不揮発性記憶装置がフィールドにあるとき、ACRを認証するホストは、発行者Yにより発行されたCRLを提示してもよい。この例で適用されるようなステップ5018は、ACRが発行者Yにより発行されたCRLを有していないことを確認し、発行者YからのCRLが認証を求めるホストから受信されて検証される場合は、ACRと関連付けられ、証明書が失効していないことを検証するために使用されてもよいように、制御をステップ5024に指示することになる。
認証のために提示される証明書に対応する証明機関からのキャッシュCRLを不揮発性記憶装置が現在記憶している場合、制御はステップ5020に進む。そして、抽出されたCRLバージョン情報がキャッシュCRLバージョンと比較されて、ホストにより提示されているCRLがキャッシュCRLよりも新しいかどうかが判定される。ホストにより提示されているCRLがキャッシュCRLよりも新しい場合、制御はステップ5022に進む。そして、不揮発性記憶装置がキャッシュCRLを使用して、ホストにより提示された証明書を検証し、証明書が失効しているかどうかを判定する。この後、ステップ5012に進んで、他の認証処理を再開するかまたは終了する。
認証のために提示されている証明書に対応する証明機関からのキャッシュCRLを不揮発性記憶装置が現在記憶していない場合、検証を求めるホストからCRLが受信されるように、制御はステップ5018から5024に進む。そして検証される場合には、受信したCRLが新しいキャッシュCRLとして設定され、証明書が失効していないことを検証するために、設定されたキャッシュCRLを使用してもよい。同様に、ホストから提示されるCRLのバージョンがキャッシュバージョンよりも新しい場合、制御はステップ5024に進み、ホストから受信された新しいバージョンによってキャッシュCRLの更新を試行する。ステップ5024において、CRLデータがホストから受信される。ステップ5026では、受信されたCRLデータがキャッシュCRLデータベースにキャッシュされる。制御はステップ5028に進み、ここで、CRLデータがすべて受信されているかどうかが判定される。CRLデータのすべてがまだ受信されていなければ、制御はステップ5028からステップ5024に進み、CRLデータのすべてが受信されるまでステップ5024、5026、および5028が繰り返される。
CRLデータのすべてがホストから受信されると、制御はステップ5030から進み、受信されたCRLの署名が検証されて、受信されたCRLが証明書の発行者により発行されたかどうかが判定される。受信されたCRLが証明書の同じ発行者により発行されている場合、制御はステップ5034に進み、ステップ5026において受信されキャッシュされたCRLがACRと関連付けられて、新しいキャッシュCRLとして設定される。制御は、この後ステップ5022に進む。不揮発性記憶装置は、キャッシュCRLを使用してホストにより提示された証明書を検証し、証明書が失効しているかどうかを判定する。この後、ステップ5012に進んで、他の認証処理を再開するかまたは終了する。
CRLがステップ5032において検証されない場合、制御はステップ5022に進む。ここで、不揮発性記憶装置はキャッシュCRL(これが証明機関から得られる場合)を使用してホストにより提示された証明書を検証し、証明書が失効しているかどうかを判定する。制御は、この後ステップ5012に進んで、他の認証処理を再開するかまたは終了する。図には示されていないが、キャッシュCRLが不揮発性記憶装置により使用できなければ、認証は失敗する。
前述のように、SSAでは証明書連鎖が可能である。これは、認証される側のエンティティの公開鍵が、認証する側のエンティティとは異なる証明機関(CA)によって署名されてもよいことを意味する。この場合、認証される側のホストは、それ自体の証明書のほかに、その公開鍵に署名したCAの証明書を提供することになる。この第2レベルの証明書が、不揮発性記憶装置によりまだ信用されなければ(ACRに関連付けられた、信頼されたCAによって署名されなければ)、第3レベルの証明書が提供される。一実施形態では、ステップ5000が繰り返されて、不揮発性記憶装置は、証明書連鎖の一部としてホストにより提示された各証明書を処理することができる。この実施形態では、連鎖の中の各証明書は、証明書が失効しているかどうかを判定するために使用される個別のCRLと関連付けられてもよい。不揮発性記憶装置は、証明書連鎖の中で各証明書と関連付けられたCRLのバージョンをキャッシュしてもよく、図5に示された例示的なステップ5000に従ってそのCRLを利用または更新してもよい。
それゆえ、一実施形態において、アカウントまたはACRでは、ホストが送信するCRLを使用してホスト証明書を検証するのではなく、内部キャッシュCRLを使用してホスト証明書を検証することができる。内部キャッシュCRLは認証中に使用することができるため、ホストは、認証中に提示されるホスト証明書に結合されたCRLを、ACRに送信する必要がない。不揮発性記憶装置は、失効している証明書を識別する製造時に、CRL(または証明書連鎖に対する複数のCRL)がプログラムされてもよい。製造後、不揮発性記憶装置は、ホストを認証するときに遭遇するより新しいCRLで、更新されてもよい。
一実施形態では、内部キャッシュCRLは、ACRが作成されるときに使用が可能であってもよい。ACRの作成中に、ホスト証明書連鎖に対する1つまたは複数のCRLは、不揮発性記憶装置で受信され、不揮発性記憶装置にキャッシュされ、ACRと関連付けられる。このようなACRへの認証を試行するためにCRLを送信するとき、不揮発性記憶装置は、受信されたCRLを以前にキャッシュされたCRLと比較する。キャッシュされたCRLバージョンがホストから受信されたCRLよりも新しければ、不揮発性記憶装置は、キャッシュCRLを使用してホスト証明書を検証する。ホストから受信されたCRLのバージョンがキャッシュバージョンよりも新しければ、不揮発性記憶装置は、受信されたCRLの署名を検証してこれが証明書の発行者により発行されたものかどうかを判定する。受信されたCRLが証明書の発行者と同じ発行者によって発行される場合、キャッシュCRLは新しいものに置換される。不揮発性記憶装置は、この後、更新された証明書失効リストを使用してホストが失効していなかったことを検証する。一実施形態では、カードが証明書そのものを検証した後、証明書の通し番号をCRLの中の通し番号のリストと比較することにより、ホストが失効していないことを検証する。
ホストの認証中に、不揮発性記憶装置の中にキャッシュされたCRLをホスト証明書が有していない場合には、不揮発性記憶装置はホストにより受信されたCRLを使用してもよい。CRLをキャッシュするデータベースがまだ満杯でなければ、不揮発性記憶装置は、受信されたCRLを将来の使用に備えてキャッシュすることになる。
証明書に対応するCRLがキャッシュされない場合、またホストがCRLを提供しない場合、証明書を処理するためのCRLが得られないため認証は失敗する。例えば、ホストは、認証中に証明書を送信した後、不揮発性記憶装置に対してCRLを送信してもよく、あるいは連鎖の中の次の証明書を不揮発性記憶装置に送信してもよい。後者の場合、不揮発性記憶装置は、キャッシュCRLを用いて第1の証明書を検証することになる。証明書の発行者に対してCRLがキャッシュされなければ、認証は失敗する。
それゆえ、新しい不揮発性記憶装置を製造するときに、更新された失効リストを装置に記憶させてもよい。CRLは、既に信頼されていない、フィールド中のホストを識別することができる。そのホストの証明書は、不揮発性記憶装置の製造より前に失効している。この実施形態では、キャッシュされた証明書失効リストをチェックすることにより、ホストの証明書が失効しているかどうかを不揮発性記憶装置が検証できるため、ホストが証明書失効リストを不揮発性記憶装置に送信する必要がない。CRLを不揮発性記憶装置に伝達すると、認証を長引かせる可能性がある。それゆえ、キャッシュCRLを使用することで、認証プロセスを短縮することができる。
しかしながら、証明機関は長期にわたってCRLを更新することができ、それゆえに、キャッシュCRLは時間の経過とともに期限切れとなり使用されなくなる可能性がある。ホストが更新されたバージョンのCRLを用いて認証を試行する場合には、不揮発性記憶装置は、キャッシュCRLをオポチュニスティックに更新する可能性がある。不揮発性記憶装置にアクセスしようとする一部のホストは、証明書発行機関に(有線または無線接続によって)接続して、認証中に提示するための更新されたCRLを入手することができる。このような接続ホストが、不揮発性記憶装置の認証を試行するときに更新されたCRLを提供すると、不揮発性記憶装置は、更新されたCRLをキャッシュして将来これを利用することができる。このプロセスを使用するCRLのオポチュニスティック型の更新は、更新されたCRLに対するバイラル方式の配布システムとして、効果的に機能を果たすことができる。
例えば、不揮発性記憶装置は、MP3プレーヤに動作可能に接続されてもよい。この例では、MP3プレーヤには、有線または無線接続を介して証明機関に接続するなどして、更新された証明書失効リストにアクセスする能力がない。それゆえ、MP3プレーヤは、不揮発性記憶装置にアクセスしようとするたびに、同じ証明書と証明書失効リストを提示する。時間の経過とともに証明機関は証明書失効リストを更新するため、MP3プレーヤにより提示されるそのリストは無効になる可能性がある。不揮発性記憶装置がMP3プレーヤに単に動作可能に結合されている限り、そのCRLのキャッシュコピーは、MP3プレーヤにより提示されるCRLと同じバージョンになる。それゆえ、キャッシュCRLはやはり時間の経過に伴って無効になる。
その後、不揮発性記憶装置が、更新されたCRLを受信できる装置に動作可能に結合されると、不揮発性記憶装置は、CRLの「バイラル形式」の更新をオポチュニスティックに受信することができる。例えば、不揮発性記憶装置がMP3プレーヤから取り出されて携帯電話に動作可能に結合されると、装置に記憶されたコンテンツにアクセスするために、不揮発性記憶装置への認証を試行することができる。携帯電話は、更新された証明書失効リストを証明機関に要求することができる。更新された証明書失効リストは、携帯電話がコンテンツにアクセスするために使用しようとする証明書に対応する。携帯電話は、有線または無線接続を介して更新された証明書失効リストを、受信することができる。携帯電話が、不揮発性記憶装置を認証して記憶されたコンテンツにアクセスするために、証明書と併せて更新された証明書失効リストを提示すると、不揮発性記憶装置は、そのキャッシュ証明書失効リストを、携帯電話から受信されたコピーで更新することになる。このようにして、証明機関に接触して更新された証明書失効リストをそれ自体で受信できる独立した機能を有していない不揮発性記憶素子に対して、証明書失効リストを分配するために、携帯電話、パーソナルコンピュータ、およびインターネット家電などの接続装置を使用することができる。
<アイデンティティ・オブジェクト(IDO)>
アイデンティティ・オブジェクトは、フラッシュ・メモリ・カードなどのメモリ装置10が、RSA鍵対またはその他の暗号IDを記憶できるように設計された、被保護オブジェクトである。アイデンティティの署名および検証や、データの暗号化および復号化に使用することができる暗号IDであれば、どのようなタイプのものでも、アイデンティティ・オブジェクトに含めることができる。鍵対の公開鍵が真正であることを証明するCAの証明書(または複数のCAの証明書連鎖)も、アイデンティティ・オブジェクトに含まれる。アイデンティティ・オブジェクトを使用すれば、外部エンティティや内部カードエンティティ(すなわち、アイデンティティ・オブジェクトの所有者と称される装置自体、内部のアプリケーションなど)のアイデンティティの証拠を、提供することができる。したがって、カードは、チャレンジ・レスポンス機構でホストを認証するためにRSA鍵対またはその他のタイプの暗号IDを使用せずに、識別情報の証拠として、カードに提示されるデータストリームに署名する。換言すると、アイデンティティ・オブジェクトは、その所有者の暗号IDを含む。アイデンティティ・オブジェクトの中の暗号IDにアクセスするには、まずホストを認証する必要がある。後述するように、この認証プロセスはACRによって管理される。ホストの認証に成功すると、アイデンティティ・オブジェクトの所有者は、相手方に対して暗号IDを使用して自身のアイデンティティを立証することができる。例えば、相手方からホストを通じて提示されるデータには、暗号ID(例えば、公開−秘密鍵対の秘密鍵)を使用して署名することができる。アイデンティティ・オブジェクトの署名済みデータと証明書は、アイデンティティ・オブジェクトの所有者に代わって相手方に提示される。証明書にある公開−秘密鍵対の公開鍵が真正であることは、CA(すなわち、信用機関)によって証明されるため、相手方はこの公開鍵が真正であると信用することができる。そこで相手方は、証明書の公開鍵を使用して署名済みデータを復号化し、復号化されたデータを相手方によって送信されたデータと比較することができる。復号化されたデータが相手方によって送信されたデータに一致する場合、アイデンティティ・オブジェクトの所有者は、真正な秘密鍵にアクセスできる自称通りのエンティティであることが分かる。
アイデンティティ・オブジェクトは、フラッシュ・メモリ・カードなどのメモリ装置10が、RSA鍵対またはその他の暗号IDを記憶できるように設計された、被保護オブジェクトである。アイデンティティの署名および検証や、データの暗号化および復号化に使用することができる暗号IDであれば、どのようなタイプのものでも、アイデンティティ・オブジェクトに含めることができる。鍵対の公開鍵が真正であることを証明するCAの証明書(または複数のCAの証明書連鎖)も、アイデンティティ・オブジェクトに含まれる。アイデンティティ・オブジェクトを使用すれば、外部エンティティや内部カードエンティティ(すなわち、アイデンティティ・オブジェクトの所有者と称される装置自体、内部のアプリケーションなど)のアイデンティティの証拠を、提供することができる。したがって、カードは、チャレンジ・レスポンス機構でホストを認証するためにRSA鍵対またはその他のタイプの暗号IDを使用せずに、識別情報の証拠として、カードに提示されるデータストリームに署名する。換言すると、アイデンティティ・オブジェクトは、その所有者の暗号IDを含む。アイデンティティ・オブジェクトの中の暗号IDにアクセスするには、まずホストを認証する必要がある。後述するように、この認証プロセスはACRによって管理される。ホストの認証に成功すると、アイデンティティ・オブジェクトの所有者は、相手方に対して暗号IDを使用して自身のアイデンティティを立証することができる。例えば、相手方からホストを通じて提示されるデータには、暗号ID(例えば、公開−秘密鍵対の秘密鍵)を使用して署名することができる。アイデンティティ・オブジェクトの署名済みデータと証明書は、アイデンティティ・オブジェクトの所有者に代わって相手方に提示される。証明書にある公開−秘密鍵対の公開鍵が真正であることは、CA(すなわち、信用機関)によって証明されるため、相手方はこの公開鍵が真正であると信用することができる。そこで相手方は、証明書の公開鍵を使用して署名済みデータを復号化し、復号化されたデータを相手方によって送信されたデータと比較することができる。復号化されたデータが相手方によって送信されたデータに一致する場合、アイデンティティ・オブジェクトの所有者は、真正な秘密鍵にアクセスできる自称通りのエンティティであることが分かる。
アイデンティティ・オブジェクトの第2の利用法は、RSA鍵自体などの暗号化IDを用いて、IDOの所有者に対して指定されるデータを保護することである。データは、IDO公開鍵を用いて暗号化されるものと予想される。メモリカードなどのメモリ装置10は、公開鍵を使用してデータを復号化する。
IDOは、いかなるタイプのACRに対しても作成できるオブジェクトである。一実施形態では、ACRは、1つのみのIDOオブジェクトを有していてもよい。データ署名および保護機能は、いずれも、ACRを認証できるすべてのエンティティに対してSSAシステムから提供されるサービスである。IDOの保護レベルは、ACRのログイン認証方式と同じくらい高い。IDOを必ず有することになるACRに対しては、任意の認証アルゴリズムを選定することができる。IDO運用を良好に保護しうるアルゴリズムを評価し決定するのは、作成元(ホスト)である。IDOを有するACRは、IDO公開鍵取得コマンドに応じて証明書連鎖を提供する。
データ保護にIDOを使用する場合でも、カードから出力される復号化データにはさらなる保護が必要になることがある。そのような場合、いずれかの認証アルゴリズムによって確立されるセキュアチャネルを使用することが、ホストに推奨される。
IDOを作成するときに、鍵の長さとともに、PKCS#1バージョンを選択する。一実施形態において、公開鍵および秘密鍵に、PKCS#1バージョン2.1で定める(指数、係数)表現を使用する。
一実施形態において、IDOの作成中に含められるデータは、選択された長さを有するRSA鍵対と、公開鍵の信頼性を帰納的に証明する証明書連鎖である。
IDOを所有するACRは、ユーザデータの署名を許可する。これは、2つのSSAコマンドによって行われる。
・Set user data:署名の対象となる自由書式のデータバッファを提供する。
・Get SSA signature:カードは、RSA署名を提供する(ACR秘密鍵を使用)。署名の形式とサイズは、オブジェクトのタイプに応じて、PKCS#1バージョン1.5またはV2.1に従って設定することができる。
・Set user data:署名の対象となる自由書式のデータバッファを提供する。
・Get SSA signature:カードは、RSA署名を提供する(ACR秘密鍵を使用)。署名の形式とサイズは、オブジェクトのタイプに応じて、PKCS#1バージョン1.5またはV2.1に従って設定することができる。
図35〜図37はIDOを使用した操作を示すものである。ここで、メモリ装置10はフラッシュ・メモリ・カードであり、このカードがIDOの所有者である。図35は、ホストに送信されるデータに署名する場合に、カードによって実行されるプロセスを示す。図35を参照し、前述したツリー構造のノードに位置するACRの管理下でホストが認証された後(ブロック802)、カードは証明書を求めるホスト要求を待つ(菱形804)。要求を受信したカードは証明書を送信し、菱形804に戻り、次のホスト要求を待つ(ブロック806)。カードが所有するIDOの公開鍵を証明するために、証明書連鎖を送信する必要がある場合、連鎖の中のすべての証明書がホストへ送信されるまで、前述したアクションが繰り返される。各証明書がホストに送信された後、カードは、ホストから他のコマンドが届くのを待つ(菱形808)。所定の期間内にホストからのコマンドが受信されなければ、カードは菱形804に戻る。ホストからデータとコマンドを受信したカードは、そのコマンドをチェックし、データに署名するためのものであるかどうかを確認する(菱形810)。データに署名するためのコマンドである場合、カードはIDOの秘密鍵を使用してデータに署名し、署名したデータをホストへ送信し(ブロック812)、菱形804に戻る。ホストからのコマンドがホストからのデータに署名するためのものでなければ、カードはIDOの秘密鍵を使用して受信データを復号化し(ブロック814)、菱形804に戻る。
図36は、ホストへ送信されるデータにカードが署名する際に、ホストによって実行されるプロセスを示す。図36を参照すると、ホストは、カードに認証情報を送信する(ブロック822)。前述したツリー構造のノードに位置するACRの制御下で認証に成功すると、ホストは、証明書連鎖を求める要求をカードに送信し、連鎖を受信する(ブロック824)。カードの公開鍵が検証されると、ホストは署名されるデータをカードに送信し、カードの秘密鍵により署名されたデータを受信する(ブロック826)。
図37は、ホストがカードの公開鍵を使用してデータを暗号化し、暗号化されたデータをカードに送信するときに、ホストによって実行されるプロセスを示す。図37を参照すると、ホストは、カードへ認証情報を送信する(ブロック862)。ACRの管理下で認証に成功すると、ホストは、IDOの中にあるカードの公開鍵を検証するために必要となる証明書連鎖の要求をカードに送信し(ブロック864)、さらにデータを求める要求をカードに送信する。IDOの中にあるカードの公開鍵を検証した後、ホストは、カードの検証済み公開鍵を使用してカードから受信したデータを暗号化し、これをカードに送信する(ブロック866、868)。
<クエリ>
ホストおよびアプリケーションは、システム操作を実行するために、相手方のメモリ装置またはカードに関する一定の情報を所有する必要がある。例えば、ホストおよびアプリケーションは、メモリカードに記憶されたアプリケーションのうち、実行できるアプリケーションがいずれであるかを知る必要がある。ホストにとっての必要情報は公知でない場合があり、これはその情報を所有する権利を有する者とそうでない者があることを意味する。権限を持つユーザと持たないユーザとを区別するには、ホストで使用できるクエリを2通り用意する必要がある。
ホストおよびアプリケーションは、システム操作を実行するために、相手方のメモリ装置またはカードに関する一定の情報を所有する必要がある。例えば、ホストおよびアプリケーションは、メモリカードに記憶されたアプリケーションのうち、実行できるアプリケーションがいずれであるかを知る必要がある。ホストにとっての必要情報は公知でない場合があり、これはその情報を所有する権利を有する者とそうでない者があることを意味する。権限を持つユーザと持たないユーザとを区別するには、ホストで使用できるクエリを2通り用意する必要がある。
<一般情報クエリ>
このクエリは、システム公開情報を無制限に放出する。メモリ装置に記憶される機密情報は、2つの部分、すなわち、共有部分および非共有部分からなる。各エンティティが自身の専有情報のみへのアクセスが認められ、他のエンティティの専有機密情報にアクセスすることができないように、機密情報の一部分には、個々のエンティティにとっての専有情報が含まれている。この種の機密情報は共有されず、機密情報の非共有部位または部分を形成する。
このクエリは、システム公開情報を無制限に放出する。メモリ装置に記憶される機密情報は、2つの部分、すなわち、共有部分および非共有部分からなる。各エンティティが自身の専有情報のみへのアクセスが認められ、他のエンティティの専有機密情報にアクセスすることができないように、機密情報の一部分には、個々のエンティティにとっての専有情報が含まれている。この種の機密情報は共有されず、機密情報の非共有部位または部分を形成する。
カードに常駐するアプリケーションの名称とそのライフサイクル状態など、通常は公の情報と考えられるものでも、場合によっては機密とみなされることがある。別の例として、公の情報とされるルートACR名であっても、SSAを使用する一部の場合には、機密になることがある。このような場合には、一般情報クエリに応じて情報をすべて認証済みユーザに限って利用させ、認証されていないユーザには利用させないようにするためのオプションを、システムに用意しなければならない。このような情報は、機密情報の共有部分を占める。ルートACRリスト、すなわち装置上に現在存在する全ルートACRのリストは、機密情報の共有部分の一例となりうる。
一般情報クエリにより公開情報へアクセスする場合、ホスト/ユーザはACRにログインする必要がない。それゆえ、SSA規格に精通する者であれば誰でも実行可能であり、情報を受信することができる。SSAの規定では、セッション番号なしでこのクエリコマンドが処理される。しかしながら、機密情報の共有部分へのアクセスを望むエンティティは、最初に、メモリ装置のデータに対するアクセスを制御する制御構造のいずれか(例えば、ACRのいずれか)を通じて認証される必要がある。認証に成功したエンティティは、一般情報クエリを使用して、機密情報の共有部分にアクセスできるようになる。前述したように、認証プロセスの結果として、アクセスするためのSSAセッション番号またはidが得られる。
<取扱い注意情報クエリ>
個々のACRとそのシステムアクセスおよび資産に関する私的情報は、取扱い注意とされ、明確な認証を必要とする。この種の情報クエリでは、情報クエリの認証を受信する前に、ACRのログインと認証(認証がACRで指定されている場合)が必要になる。このクエリには、SSAセッション番号が必要である。
個々のACRとそのシステムアクセスおよび資産に関する私的情報は、取扱い注意とされ、明確な認証を必要とする。この種の情報クエリでは、情報クエリの認証を受信する前に、ACRのログインと認証(認証がACRで指定されている場合)が必要になる。このクエリには、SSAセッション番号が必要である。
2種類のクエリを詳述する前に、クエリを実行する現実的な解決策として、インデックスグループの概念をまず説明することが有益である。
<インデックスグループ>
ポテンシャルSSAホストで実行するアプリケーションには、読出しの対象となるセクタ数を指定することが、ホスト上のオペレーティングシステム(OS)とシステムドライバとにより求められる。これは、ホストアプリケーションが、SSA読出し操作のたびに読み出す必要のあるセクタ数を知る必要があることを意味する。
ポテンシャルSSAホストで実行するアプリケーションには、読出しの対象となるセクタ数を指定することが、ホスト上のオペレーティングシステム(OS)とシステムドライバとにより求められる。これは、ホストアプリケーションが、SSA読出し操作のたびに読み出す必要のあるセクタ数を知る必要があることを意味する。
クエリ操作で供給される情報は、一般的には、これを要求する側にとって未知の情報であるため、ホストアプリケーションがクエリを発行し、その操作に必要なセクタの量を推測することは困難である。
この問題を解決するため、SSAのクエリ出力バッファは、各クエリ要求につき1つのみのセクタ(512バイト)からなる。出力情報の一部であるオブジェクトは、インデックスグループと呼ばれるものに編成される。オブジェクトのバイトサイズはオブジェクトのタイプによって異なり、そこから1セクタに収まるオブジェクトの数が明らかになる。これによって、オブジェクトのインデックスグループが決まる。オブジェクトのサイズが20バイトである場合、このオブジェクトのインデックスグループは最大25オブジェクトを含む。このようなオブジェクトが全部で56個ある場合、それらは3つのインデックスグループに編成され、第1のインデックスグループの先頭はオブジェクト「0」(第1のオブジェクト)となり、第2のインデックスグループの先頭はオブジェクト「25」となり、第3の最終インデックスグループの先頭はオブジェクト50となる。
<システムクエリ(一般情報クエリ)>
このクエリは、装置がサポートするSSAシステムと、ツリー状に構成された現行のシステムと、装置で実行するアプリケーションとに関する一般公開情報を提供する。後述するACRクエリ(取扱い注意クエリ)と同様に、システムクエリは、複数のクエリオプションを提供するように構成される。
・General:サポートされたSSAバージョン
・SSA Applications:現在装置に存在する全SSAアプリケーションのリストで、アプリケーションの実行状態を含む。
このクエリは、装置がサポートするSSAシステムと、ツリー状に構成された現行のシステムと、装置で実行するアプリケーションとに関する一般公開情報を提供する。後述するACRクエリ(取扱い注意クエリ)と同様に、システムクエリは、複数のクエリオプションを提供するように構成される。
・General:サポートされたSSAバージョン
・SSA Applications:現在装置に存在する全SSAアプリケーションのリストで、アプリケーションの実行状態を含む。
前述した情報は公開情報である。ACRクエリと同様に、ホストがクエリ出力バッファのための読出しセクタ数を知らずに済ませるため、装置からは1セクタが返送され、ホストは引き続きさらなるインデックスグループを照会することができる。ルートACRオブジェクトの数が、インデックスグループ「0」のための出力バッファサイズの数を超える場合、ホストは、後続のインデックスグループ(「1」)で、別のクエリ要求を送信することができる。
<ACRクエリ(取扱い注意情報クエリ)>
SSAのACRクエリコマンドは、鍵ID、アプリケーションID、パーティション、子ACRなど、ACRのシステムリソースに関する情報をACRユーザに供給するためのものである。そのクエリ情報は、ログインされたACRに関するもののみであり、システムツリー上の他のACRに関するものはない。換言すると、アクセスは、関与するACRの許可のもとでアクセス可能な機密情報の部分のみに限られる。
SSAのACRクエリコマンドは、鍵ID、アプリケーションID、パーティション、子ACRなど、ACRのシステムリソースに関する情報をACRユーザに供給するためのものである。そのクエリ情報は、ログインされたACRに関するもののみであり、システムツリー上の他のACRに関するものはない。換言すると、アクセスは、関与するACRの許可のもとでアクセス可能な機密情報の部分のみに限られる。
ユーザが照会できるACRオブジェクトには、以下の3つがある。
・パーティション:名称とアクセス権(所有者、読出し、書込み)。
・鍵IDとアプリケーションID:名称とアクセス権(所有者、読出し、書込み)。
・子ACR:ACR、および、直接の子にあたるACRのAGP名称。
・IDOとセキュア・データ・オブジェクト(後述):名称とアクセス権(所有者、読出し、書込み)。
・パーティション:名称とアクセス権(所有者、読出し、書込み)。
・鍵IDとアプリケーションID:名称とアクセス権(所有者、読出し、書込み)。
・子ACR:ACR、および、直接の子にあたるACRのAGP名称。
・IDOとセキュア・データ・オブジェクト(後述):名称とアクセス権(所有者、読出し、書込み)。
ACRに結び付いたオブジェクトの数は、変化する場合があり、情報は512バイト、すなわち1セクタを上回ることがある。オブジェクトの数が事前に分からない限り、ユーザは、リストすべてを得るために装置内のSSAシステムから読み出される必要があるセクタの数を知ることはできない。そこで、前述したシステムクエリの場合と同様に、SSAシステムによって提供される各オブジェクトリストは、インデックスグループに分割される。インデックスグループはセクタに収まるオブジェクトの数であり、すなわち、装置内のSSAシステムからホストに1セクタで送信できるオブジェクトの数である。これにより、装置内のSSAシステムは、要求されたインデックスグループを1セクタで送信することができる。ホスト/ユーザは、照会したオブジェクトのバッファ、バッファ内のオブジェクト数を受信することになる。バッファが一杯である場合、ユーザは次のオブジェクト・インデックス・グループを照会することができる。
図38は、一般情報クエリを伴う操作を示すフローチャートである。図38を参照すると、エンティティから一般情報クエリを受信したSSAシステムは(ブロック902)、そのエンティティが認証済みかどうかを判定する(菱形904)。認証済みである場合には、システムは、公開情報と機密情報の共有部分とをエンティティに供給する(ブロック906)。認証済みでなければ、システムは、公開情報のみをエンティティに供給する(ブロック908)。
図39は、取扱い注意情報クエリを伴う操作を示す、フローチャートである。図39を参照すると、エンティティから取扱い注意情報クエリを受信したSSAシステムは(922)、そのエンティティが認証済みかどうかを判定する(菱形924)。認証済みである場合には、システムは、エンティティに機密情報を供給する(ブロック926)。認証済みでない場合には、システムは、機密情報に対するエンティティのアクセスを拒絶する(ブロック(928)。
<フィーチャ・セット・エクステンション(FSE)>
多くの場合、データ処理活動(例えば、DRMライセンスオブジェクト検査)をカード上のSSAの内部で実行できることは、大変有利である。その結果、データ処理タスクのすべてをホストで実行する代替的な解決策に比べて、より安全でより効率的なシステムとなり、ホストへの依存度も低くなる。
多くの場合、データ処理活動(例えば、DRMライセンスオブジェクト検査)をカード上のSSAの内部で実行できることは、大変有利である。その結果、データ処理タスクのすべてをホストで実行する代替的な解決策に比べて、より安全でより効率的なシステムとなり、ホストへの依存度も低くなる。
SSAセキュリティシステムは、メモリカードによって記憶され、管理され、保護されるオブジェクトのアクセス、使用、収集を制御する、1組の認証アルゴリズムと認可ポリシーとを備える。アクセスを得たホストは、メモリ装置に記憶されたデータに対して処理を実行し、メモリ装置に対するアクセスはSSAによって制御される。しかしながら、データは、本質的にアプリケーションに非常に依存するものであると考えられるため、装置に記憶されたデータを取り扱わないSSAでは、データ形式またはデータ処理は定義されない。
本発明の一実施形態は、通常であればホストによって実施される機能の一部を、メモリカードで実行するように、SSAシステムを強化できるという認識に基づく。そこで、ホストのソフトウェア機能のいくつかは、2つの部分、すなわち引き続きホストによって実施される部分と、カードによって実施される部分とに分かれる場合がある。こうすることで、多くの用途にとって、データ処理の安全性と効率性が向上する。この目的のため、FSEと呼ばれる機構を加えることによって、SSAの能力を高める場合がある。このように、カードによって実行されるFSEのホストアプリケーションを、本明細書では、内部アプリケーションまたは装置内部アプリケーションと呼ぶ場合がある。
強化SSAシステムは、カードの認証およびアクセス制御を提供する基本SSAコマンド群を、カードアプリケーションの導入により拡張する機構を提供する。カードアプリケーションは、SSA以外のサービス(例えば、DRMスキーム、eコマーストランザクション)を実行することになっている。SSAフィーチャ・セット・エクステンション(FSE)は、独自開発のデータ処理ソフトウェア/ハードウェアモジュールで、標準SSAセキュリティシステムを強化するように設計された機構である。SSA_FSEシステムのサービスにより、ホスト装置は、前述したクエリ用いて得られる情報のほかに、カードで使用可能なアプリケーションを照会し、特定のアプリケーションを選択し、これと通信することができる。前述した一般クエリと取扱い注意クエリを、この目的に使用することもできる。
<SSA_FSEでカード機能群を拡張するには2つの方法を利用する:>
・サービス提供:この機能は、認可されたエンティティが、通信パイプと呼ばれる独自のコマンドチャネルを使用して内部アプリケーションと直接通信することによって実現する。
・SSA標準アクセス制御ポリシーの拡張:この機能は、内部の被保護データオブジェクト(例えば、CEK、後述するセキュア・データ・オブジェクト、すなわちSDO等)に内部カードアプリケーションを関連付けることによって、実現する。このようなオブジェクトにアクセスするときに、所定の標準SSAポリシーが満たされる場合は、関連付けアプリケーションが起動して、標準SSAポリシーに加えて少なくとも1つの条件を課す。この条件は、標準SSAポリシーとは衝突しないことが好ましい。この追加条件も満たされる場合に限り、アクセスが許諾される。FSEの能力をさらに詳述する前に、FSEの構造的態様と通信パイプとSDOをここで取り上げる。
・サービス提供:この機能は、認可されたエンティティが、通信パイプと呼ばれる独自のコマンドチャネルを使用して内部アプリケーションと直接通信することによって実現する。
・SSA標準アクセス制御ポリシーの拡張:この機能は、内部の被保護データオブジェクト(例えば、CEK、後述するセキュア・データ・オブジェクト、すなわちSDO等)に内部カードアプリケーションを関連付けることによって、実現する。このようなオブジェクトにアクセスするときに、所定の標準SSAポリシーが満たされる場合は、関連付けアプリケーションが起動して、標準SSAポリシーに加えて少なくとも1つの条件を課す。この条件は、標準SSAポリシーとは衝突しないことが好ましい。この追加条件も満たされる場合に限り、アクセスが許諾される。FSEの能力をさらに詳述する前に、FSEの構造的態様と通信パイプとSDOをここで取り上げる。
<SSMモジュールおよび関連モジュール>
図40Aは、ホスト装置24に接続されたメモリ装置10(フラッシュ・メモリ・カードなど)におけるシステムアーキテクチャ1000の機能ブロック図であり、本発明のある実施形態を例示するものである。カード20のメモリ装置にあるソフトウェアモジュールの主要な構成要素は、次の通りである。
図40Aは、ホスト装置24に接続されたメモリ装置10(フラッシュ・メモリ・カードなど)におけるシステムアーキテクチャ1000の機能ブロック図であり、本発明のある実施形態を例示するものである。カード20のメモリ装置にあるソフトウェアモジュールの主要な構成要素は、次の通りである。
<SSAトランスポート層1002>
SSAトランスポート層は、カードプロトコルに依存する。これは、カード10のプロトコル層でホスト側SSA要求(コマンド)を処理し、処理された要求をSSM_APIに送る。ホスト−カードの同期とSSAコマンドの識別は、すべてこのモジュールで行われる。ホスト24とカード10との間のすべてのSSAデータ転送にも、トランスポート層が関与する。
SSAトランスポート層は、カードプロトコルに依存する。これは、カード10のプロトコル層でホスト側SSA要求(コマンド)を処理し、処理された要求をSSM_APIに送る。ホスト−カードの同期とSSAコマンドの識別は、すべてこのモジュールで行われる。ホスト24とカード10との間のすべてのSSAデータ転送にも、トランスポート層が関与する。
<セキュア・サービス・モジュール・コア(SSMコア)1004>
このモジュールは、SSAの実施態様の重要な部分である。SSMコアは、SSAアーキテクチャを実施する。より具体的には、SSMコアは、SSAツリーと、ACRシステムと、システムを構成する前述の対応するすべてのルールと、を実施する。SSMコアモジュールは、暗号ライブラリ1012を使用して、SSAセキュリティと、暗号化、復号化、ハッシュ計算などの暗号機能と、をサポートする。
このモジュールは、SSAの実施態様の重要な部分である。SSMコアは、SSAアーキテクチャを実施する。より具体的には、SSMコアは、SSAツリーと、ACRシステムと、システムを構成する前述の対応するすべてのルールと、を実施する。SSMコアモジュールは、暗号ライブラリ1012を使用して、SSAセキュリティと、暗号化、復号化、ハッシュ計算などの暗号機能と、をサポートする。
<SSMコアAPI_1006>
これは、ホストと内部アプリケーションが、SSMコアと連携しながらSSA操作を実行する層である。図40Aに示すように、ホスト24と内部装置アプリケーション1010は、いずれも同じAPIを使用する。
これは、ホストと内部アプリケーションが、SSMコアと連携しながらSSA操作を実行する層である。図40Aに示すように、ホスト24と内部装置アプリケーション1010は、いずれも同じAPIを使用する。
<セキュアアプリケーション管理モジュール(SAMM)1008>
SAMMは、SSAシステムの一部ではないが、SSAシステムと連携しながら内部装置アプリケーションを制御する、カードの重要なモジュールである。
SAMMは、SSAシステムの一部ではないが、SSAシステムと連携しながら内部装置アプリケーションを制御する、カードの重要なモジュールである。
SAMMは、以下を含むアプリケーションを実行する内部装置のすべてを管理する。
1.アプリケーションライフサイクルの監視と制御
2.アプリケーションの初期化
3.アプリケーション/ホスト/SSAインターフェース
1.アプリケーションライフサイクルの監視と制御
2.アプリケーションの初期化
3.アプリケーション/ホスト/SSAインターフェース
<装置内部アプリケーション1010>
これらは、カード側での実行が許可されたアプリケーションである。これらはSAMMによって管理され、SSAシステムにアクセスできる場合がある。また、ホスト側アプリケーションと内部アプリケーションとの間の通信パイプは、SSMコアから提供される。DRMアプリケーションや以下で詳しく説明するワン・タイム・パスワード(OTP)アプリケーションは、内部実行アプリケーションの例である。
これらは、カード側での実行が許可されたアプリケーションである。これらはSAMMによって管理され、SSAシステムにアクセスできる場合がある。また、ホスト側アプリケーションと内部アプリケーションとの間の通信パイプは、SSMコアから提供される。DRMアプリケーションや以下で詳しく説明するワン・タイム・パスワード(OTP)アプリケーションは、内部実行アプリケーションの例である。
<装置管理システム(DMS)1011>
これは、カードのシステムおよびアプリケーションファームウェアを更新したり、出荷後(一般的に後発行と称される)モードでサービスを追加/削除したりするための、プロセスおよびプロトコルを含むモジュールである。
これは、カードのシステムおよびアプリケーションファームウェアを更新したり、出荷後(一般的に後発行と称される)モードでサービスを追加/削除したりするための、プロセスおよびプロトコルを含むモジュールである。
図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に接続する層である。
<通信(またはパススルー)パイプ>
パススルー・パイプ・オブジェクトは、SSMコアとSAMMの制御下で認可されたホスト側エンティティと、内部アプリケーションとの通信を可能にする。ホストと内部アプリケーションとのデータ転送は、SENDコマンドとRECEIVEコマンドで行われる(後述)。実際のコマンドは、アプリケーションによって異なる。パイプを作成するエンティティ(ACR)は、パイプ名と、チャネルの開通によってつながるアプリケーションのIDと、を提供することが必要になる。他の被保護オブジェクトと同様に、このACRがパイプの所有者になり、標準の委譲ルールおよび制限に従って、他のACRに使用権や所有権を委譲することが許可される。
パススルー・パイプ・オブジェクトは、SSMコアとSAMMの制御下で認可されたホスト側エンティティと、内部アプリケーションとの通信を可能にする。ホストと内部アプリケーションとのデータ転送は、SENDコマンドとRECEIVEコマンドで行われる(後述)。実際のコマンドは、アプリケーションによって異なる。パイプを作成するエンティティ(ACR)は、パイプ名と、チャネルの開通によってつながるアプリケーションのIDと、を提供することが必要になる。他の被保護オブジェクトと同様に、このACRがパイプの所有者になり、標準の委譲ルールおよび制限に従って、他のACRに使用権や所有権を委譲することが許可される。
認証済みのエンティティは、そのACAMでCREATE_PIPE権限が設定されている場合に、パイプオブジェクトの作成が許可されることになる。内部アプリケーションとの通信は、そのPCRでパイプ書込み権限またはパイプ読出し権限が設定されている場合に限り、許可される。所有権とアクセス権の委譲は、エンティティがパイプの所有者か、あるいはそのPCRでアクセス権委譲が設定されている場合に限り、許可される。他のすべての権限と同様に、別のACRへ所有権を委譲する当初の所有者は、この装置アプリケーションに対するすべての権限から引き離されることが好ましい。
ある特定のアプリケーションにつき、1つのみの通信パイプが作成されることが好ましい。第2のパイプを作成し、作成したパイプを接続済みのアプリケーションに接続する試行は、SSMシステム1000によって拒絶されることが好ましい。それゆえ、装置内部アプリケーション1010の1つと通信パイプとの間に、1対1の関係があることが好ましい。しかしながら、(委譲機構により)複数のACRが1つの装置内部アプリケーションと通信する場合がある。(種々のアプリケーションに接続された複数パイプの委譲または所有権により、)1つのACRが、複数の装置アプリケーションと通信する場合がある。通信パイプ間のクロストークをなくすため、種々のパイプを制御するACRは、全く別個のツリーノードに位置することが好ましい。
ホストと特定のアプリケーションとのデータ転送は、次のコマンドを使用して行われる。
・書込みパススルー:ホストから装置内部アプリケーションに、非定型データバッファを転送する。
・読出しパススルー:ホストから装置内部アプリケーションに非定型データバッファを転送し、内部処理が完了したら非定型データバッファをホストに戻す。
・書込みパススルー:ホストから装置内部アプリケーションに、非定型データバッファを転送する。
・読出しパススルー:ホストから装置内部アプリケーションに非定型データバッファを転送し、内部処理が完了したら非定型データバッファをホストに戻す。
書込みパス・スルー・コマンドと読出しパス・スルー・コマンドでは、ホストが通信しようとする相手方の装置内部アプリケーション1008のIDを、パラメータとして提供する。エンティティの権限を検証し、要求される側のアプリケーションにつながるパイプを使用する権限が、要求する側のエンティティ(すなわち、このエンティティが使用しているセッションを運営するACR)にある場合、データバッファを解釈し、コマンドを実行する。
この通信方法により、ホストアプリケーションは、SSA_ACRセッションチャネルを通じて、内部装置アプリケーションにベンダー固有/独自のコマンドを引き渡すことができる。
<ソース・データ・オブジェクト(SDO)>
SDOは、FSEと併せて使用できる便利なオブジェクトである。
SDOは、FSEと併せて使用できる便利なオブジェクトである。
SDOは、汎用容器として、機密情報を安全に記憶する役割を果たす。CEKオブジェクトと同様に、SDOはACRによって所有され、ACRとの間でアクセス権と所有権を委譲することができる。SDOは、所定の規制に従って保護され使用されるデータを含み、オプションとして、装置内部アプリケーション1008へ至るリンクを有する。機密データは、SSAシステムによって使用されることも解釈されることもなく、オブジェクトの所有者とユーザがこれを使用し、解釈することが好ましい。換言すると、SSAシステムは、取り扱うデータの情報を認識しない。このため、オブジェクトの中にあるデータの所有者とユーザは、ホストとデータオブジェクトとの間でデータが受け渡しされるときに、SSAシステムとの橋渡しによって機密情報が失われることをさほど心配せずに済む。SDOオブジェクトは、ホストシステム(または内部アプリケーション)によって作成され、CEKを作成する場合と同様に、文字列IDが割り当てられる。作成する場合に、ホストは、名前のほかに、SDOにリンクするアプリケーションのアプリケーションIDと、SSAによって記憶され、完全性検証が行われ、検索されるデータブロックと、を提供する。
SDOは、CEKと同様に、SSAセッションの中でのみ作成されることが好ましい。このセッションを開放するために使用されるACRが、SDOの所有者となり、SDOを削除する権利や機密データを読み書きする権利を有するほか、SDOの所有権やこれにアクセスする権限を別のACR(その子ACRまたは同一AGP内のACR)に委譲する権利を有する。
書込み操作と読出し操作は、SDOの所有者に限定される。書込み操作は、既存のSDOオブジェクトデータを、提示されたデータバッファで上書きする。読出し操作は、SDOのデータ記録一式を検索する。
正式なアクセス権限を有する所有者以外の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の作成とアクセス権の委譲が、明示的に許可される場合がある。
・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の作成とアクセス権の委譲が、明示的に許可される場合がある。
<内部ACR>
装置10にとって外部のエンティティがACRにログインすることができない点以外は、内部ACRは、PCRを有するACRに類似している。代替的に、これの管理下にあるオブジェクトか、あるいはこのオブジェクトと関連付けするアプリケーションが呼び出されるときに、図40BのSSA管理部1024が、自動的に内部ACRにログインする。アクセスを試みるエンティティは、カードまたはメモリ装置にとって内部のエンティティであるため、認証の必要はない。SSA管理部1024は、内部通信を可能にするために、内部ACRにセッション鍵を渡すだけになる。
装置10にとって外部のエンティティがACRにログインすることができない点以外は、内部ACRは、PCRを有するACRに類似している。代替的に、これの管理下にあるオブジェクトか、あるいはこのオブジェクトと関連付けするアプリケーションが呼び出されるときに、図40BのSSA管理部1024が、自動的に内部ACRにログインする。アクセスを試みるエンティティは、カードまたはメモリ装置にとって内部のエンティティであるため、認証の必要はない。SSA管理部1024は、内部通信を可能にするために、内部ACRにセッション鍵を渡すだけになる。
これより、ワン・タイム・パスワード生成とデジタル権利管理という2つの例を引いて、FSEの能力を例示する。ワン・タイム・パスワード生成の例を説明する前に、二因子認証のテーマを取り上げる。
<OTP実施形態>
<二因子認証(DFA)>
DFAは、標準のユーザ認証情報(すなわち、ユーザ名およびパスワード)に追加の秘密、すなわち「第2の因子」を加えることにより、ウェブ・サービス・サーバなどへの私的なログインでセキュリティを高めるように意図された認証プロトコルである。この第2の秘密は、典型的に、ユーザが所有する物理的で安全なトークンに記憶されるものである。ユーザは、ログインの過程で、ログイン認証情報の一部として所有の証拠を提供する必要がある。所有の証明には、ワン・タイム・パスワード(OTP)がよく使われ、これはセキュアトークンで生成され出力される、1回のログインのみで通用するパスワードである。トークンなしでOTPを計算するのは暗号技術的に不可能であるため、ユーザが正しいOTPを提供できる場合、これをもってトークン所有の十分な証拠とみなされる。OTPは1回のログインのみで通用し、前のログインから得た古いパスワードは通用しないことになるため、ユーザはログインのときにトークンを所有していなければならない。
<二因子認証(DFA)>
DFAは、標準のユーザ認証情報(すなわち、ユーザ名およびパスワード)に追加の秘密、すなわち「第2の因子」を加えることにより、ウェブ・サービス・サーバなどへの私的なログインでセキュリティを高めるように意図された認証プロトコルである。この第2の秘密は、典型的に、ユーザが所有する物理的で安全なトークンに記憶されるものである。ユーザは、ログインの過程で、ログイン認証情報の一部として所有の証拠を提供する必要がある。所有の証明には、ワン・タイム・パスワード(OTP)がよく使われ、これはセキュアトークンで生成され出力される、1回のログインのみで通用するパスワードである。トークンなしでOTPを計算するのは暗号技術的に不可能であるため、ユーザが正しいOTPを提供できる場合、これをもってトークン所有の十分な証拠とみなされる。OTPは1回のログインのみで通用し、前のログインから得た古いパスワードは通用しないことになるため、ユーザはログインのときにトークンを所有していなければならない。
以下の節で説明する製品は、SSAのセキュリティデータ構造と、一連のOTPで次のパスワードを計算する1つのFSE設計とを利用しながら、フラッシュ・メモリ・カードで、それぞれ異なるパスワード系列(異なるウェブサイトへのログインに使用)を生成する、複数の「仮想」セキュアトークンを実行するものである。図41は、このシステムのブロック図を示す。
システム一式1050は、認証サーバ1052と、インターネットサーバ1054と、トークン1058を有するユーザ1056と、を備える。最初のステップでは、認証サーバとユーザとの間で、共有秘密を取り決める(シード提供とも称される)。ユーザ1056は、秘密またはシードの発行を要求し、これをセキュアトークン1058に記憶する。次のステップでは、発行された秘密またはシードを、特定のウェブ・サービス・サーバに結合する。これを果たした時点で、認証に取りかかることができる。ユーザは、OTPの生成をトークンに指示する。OTPは、ユーザ名およびパスワードとともに、インターネットサーバ1054に送信される。インターネットサーバ1054は、認証サーバ1052にOTPを転送し、ユーザアイデンティティの検証を依頼する。認証サーバもOTPを生成するが、これはトークンとの共有秘密から生成されるため、トークンから生成されたOTPに一致するはずである。一致が判明する場合、ユーザアイデンティティは検証され、認証サーバがインターネットサーバ1054に肯定応答を返すと、ユーザ・ログイン・プロセスは完了することになる。
FSEによるOTP生成には、次のような特徴がある。
・OTPシードは、安全な状態で(暗号化されて)カードに記憶される。
・パスワード生成アルゴリズムは、カードの内部で実行される。
・装置10は、複数の仮想トークンをエミュレートすることができ、それぞれの仮想トークンでは異なるシードを記憶し、異なるパスワード生成アルゴリズムを使用することができる。
・認証サーバから装置にシードを移すセキュアプロトコルは、装置10が提供する。
・OTPシードは、安全な状態で(暗号化されて)カードに記憶される。
・パスワード生成アルゴリズムは、カードの内部で実行される。
・装置10は、複数の仮想トークンをエミュレートすることができ、それぞれの仮想トークンでは異なるシードを記憶し、異なるパスワード生成アルゴリズムを使用することができる。
・認証サーバから装置にシードを移すセキュアプロトコルは、装置10が提供する。
図42は、SSAのOTPシード提供機能とOTP生成機能を示すものである。ここで実線の矢印は所有権またはアクセス権を示し、破線の矢印は関連付けまたはリンクを示している。図42に示すように、SSA_FSEシステム1100では、N個のアプリケーションACR1106によってそれぞれ管理される1つまたは複数の通信パイプ1104を通じて、ソフトウェア・プログラム・コードFSE_1102にアクセスすることができる。後述する実施形態では、1つのみのFSEソフトウェアアプリケーションを例示しており、各FSEアプリケーションにつき、1つのみの通信パイプがある。しかしながら、複数のFSEアプリケーションを利用できることが理解されよう。図42には、1つのみの通信パイプが例示されているが、複数の通信パイプを利用できることは理解されよう。このような変形例は、いずれも可能である。図40A、40B、および42を参照すると、FSE_1102はOTP提供に用いるアプリケーションであって、図40Aの装置内部アプリケーション1010の一部をなす場合がある。制御構造(ACR_1101、1103、1106、1110)はSSAのセキュリティデータ構造の一部であり、SSAデータベース1026に記憶される。IDO_1120、SDOオブジェクト1122などのデータ構造、および、通信パイプ1104は、SSAデータベース1026に記憶される。
図40Aおよび図40Bを参照すると、ACRおよびデータ構造に関わるセキュリティ関連操作(例えば、セッション中のデータ転送、暗号化、復号化、ハッシュ計算等の操作)は、インターフェース1032と暗号ライブラリ1012の支援を受けて、モジュール1030が処理する。SSMコアAPI_1006は、ホストと受渡しするACR(外部ACR)が関わる操作と、ホストと受渡ししない内部ACRが関わる操作を区別しないため、ホストが関わる操作と装置内部アプリケーション1010が関わる操作に区別はない。このように、ホスト側エンティティによるアクセスと装置内部アプリケーション1010によるアクセスは、同じ制御機構によって制御される。このため、ホスト側アプリケーションと装置内部アプリケーション1010とで、データ処理を柔軟に区別することができる。内部アプリケーション1010(例えば、図42のFSE_1102)は内部ACR(例えば、図42のACR_1103)と関連付けされ、これの管理のもとで起動する。
さらに、重要情報へのアクセス、例えば、SDOの内容またはそのSDOの内容から検索される情報へのアクセスは、好ましくはACRやAGPなどのセキュリティデータ構造とSSAのルールとポリシーとによって管理されるため、外部または内部アプリケーションは、SSAのルールとポリシーとに従う限りにおいてその内容または情報にアクセスすることができる。例えば、2名のユーザが、データを処理するために個々の装置内部アプリケーション1010を起動する場合、別々の階層ツリーに位置する内部ACRを使用して2名のユーザによるアクセスが制御されるため、アプリケーション間のクロストークはない。このように、両ユーザは、データ処理する場合に共通の装置内部アプリケーション1010にアクセスすることができ、SDOの内容または情報の所有者の側では、内容または情報制御の喪失を心配せずに済む。例えば、データを記憶するSDOに対する装置内部アプリケーション1010によるアクセスは、別々の階層ツリーに位置するACRによって制御できるため、アプリケーション間のクロストークはない。この制御方法は、前述した、データに対するアクセスをSSAが制御する方法に似ている。これは、データオブジェクトに記憶されたデータのセキュリティを、内容の所有者とユーザに提供する。
図42を参照すると、OTP関連ホストアプリケーションに必要なソフトウェア・アプリケーション・コードの一部分を、FSE_1102のアプリケーションとしてメモリ装置10に記憶(メモリカード発行前に予め記憶、またはメモリカード発行後にロード)することは可能である。そのようなコードを実行する場合、ホストは、まずN個の認証ACR_1106のいずれか1つを通じて認証し、パイプ1104にアクセスする必要がある。ここで、Nは正の整数である。ホストは、起動しようとするOTP関連アプリケーションを識別するためのアプリケーションIDを提供する必要もある。認証に成功すると、OTP関連アプリケーションと関連付けられたパイプ1104を通じてそのようなコードにアクセスし、実行することができる。前述したように、パイプ1104と、OTP関連内部アプリケーションなどの特定アプリケーションとの間には、好ましくは1対1の関係がある。図42に示すように、複数のACR_1106が、共通のパイプ1104を制御することがある。1つのACRで、複数のパイプを制御する場合もある。
図42には、オブジェクト1114と総称されるセキュア・データ・オブジェクトSDO1、SDO2、およびSDO3が示されている。セキュア・データ・オブジェクトの各々は、OTP生成のためのシードなどのデータを含んでおり、そのシードは有益であるため、暗号化されていることが好ましい。3つのデータオブジェクトとFSE_1102との間のリンクまたは関連付け1108は、これらのオブジェクトの一属性を図示している。いずれか1つのオブジェクトにアクセスするときには、SDO属性内のアプリケーションIDに一致するFSE_1102のアプリケーションが起動する。このアプリケーションは、メモリ装置のCPU_12によって実行され、さらなるホストコマンドを受け取る必要はない(図1)。
図42を参照すると、OTPプロセスを制御するためのセキュリティデータ構造(ACR_1101、1103、1106、および1110)とそのPCRは、ユーザがOTPプロセスを開始する前に作成済みである。ユーザは、認証サーバACR_1106のいずれか1つを通じて、OTP装置内部アプリケーション1102を起動するためのアクセス権を得る必要がある。ユーザは、N個のユーザACR_1110のいずれか1つを通じて、作成されるOTPに対するアクセス権を得る必要もある。SDO_1114は、OTPのシード提供プロセスで作成することができる。IDO_1116は、作成済みで内部ACR_1103によって制御されてもよい。内部ACR_1103は、作成されたSDO_1114も制御する。SDO_1114にアクセスするときには、図40BのSSA管理部1024が、自動的にACR_1103にログインする。内部ACR_1103には、FSE_1102が関連付けられる。破線1108で示すように、OTPのシード提供プロセスではSDO_1114にFSEを関連付けられるようになる。関連付けが成立した後、ホストがSDOにアクセスするときには、ホストからさらなる要求がなくとも、関連付け1108によってFSE1102が起動する。N個のACR_1106のいずれか1つを通じて通信パイプ1104にアクセスするときにも、図40BのSSA管理部1024が、ACR_1103に自動的にログインする。いずれの場合でも(SDO_1114とパイプ1104へのアクセス)、SSA管理部はFSE_1102にセッション番号を渡し、このセッション番号によって内部ACR_1103に至るチャネルが識別される。
OTP操作は、2つの段階、すなわち図43に示すシード提供段階と、図44に示すOTP生成段階とを伴う。図40〜図42も併せて参照することで、この説明に役立つ。図43は、シード提供プロセスを示すプロトコル図である。図43に示すように、ホスト24などのホストとカードは、様々な動作をとる。SSMコア1004を含む図40Aおよび40BのSSMシステムは、カード側で様々な動作をとる1エンティティである。図42に示すFSE_1102も、カード側で様々な動作をとるエンティティである。
二因子認証では、ユーザがシードの発行を要求し、発行されたシードはセキュアトークンに記憶される。この例のセキュアトークンは、メモリ装置またはカードである。ユーザは、SSMシステムにアクセスするため、図42の認証ACR_1106のいずれか1つを認証する(矢印1122)。認証に成功したと仮定すると(矢印1124)、ユーザはシードを要求する(矢印1126)。ホストは、シード要求に署名するためのアプリケーション1102を選択して、シード要求に署名する要求をカードへ送信する。起動すべきアプリケーションIDをユーザが知らない場合、例えば装置に対する取扱い注意クエリにより、この情報を装置10から入手することができる。そして、ユーザは、起動するべきアプリケーションのアプリケーションIDを入力し、これによりこのアプリケーションに対応する通信パイプも選択される。パス・スルー・コマンドにより、ユーザから、対応する通信パイプを通じて、アプリケーションIDで指定されたアプリケーションに、ユーザコマンドが転送される(矢印1128)。起動したアプリケーションは、図42のIDO_1112などの所定のIDOの公開鍵による署名を要求する。
SSMシステムは、IDOの公開鍵を用いてシード要求に署名し、署名の完了をアプリケーションに通知する(矢印1132)。次に、起動アプリケーションはIDOの証明書連鎖を要求する(矢印1134)。これに応じて、SSMシステムは、ACR_1103の制御下でIDOの証明書連鎖を提供する。起動アプリケーションは、通信パイプを通じて署名済みシード要求とIDOの証明書連鎖をSSMシステムに提供し、SSMシステムは、同じものをホストへ転送する(矢印1138)。通信パイプにおける署名済みシード要求とIDO証明書連鎖の送信は、図40AのSAMM_1008とSSMコア1004との間で確立するコールバック関数によって行われるが、このコールバック関数については以降で詳しく説明する。
ホストによって受信されたIDO証明書連鎖および署名済みシード要求は、図41に示す認証サーバ1052へ送信される。署名済みシード要求の出所が信用できるトークンであることは、カードから提供される証明書連鎖で証明されているため、認証サーバ1052には、秘密シードをカードに提供する用意がある。そこで認証サーバ1052は、IDOの公開鍵で暗号化されたシードを、ユーザACR情報とともにホストに送信する。このユーザ情報により、N個のユーザACRのうち、これから生成するOTPにユーザがアクセスするためのユーザACRがいずれであるかが明らかになる。ホストは、アプリケーションIDを提供することによってFSE_1102でOTPアプリケーションを起動し、これによりこのアプリケーションに対応する通信パイプも選択され、さらにホストはユーザACR情報をSSMシステムへ転送する(矢印1140)。暗号化されたシードとユーザACR情報は、この後、通信パイプを通じて、選択されたアプリケーションに転送される(矢印1142)。起動アプリケーションは、IDOの秘密鍵を用いてシードを復号化する要求を、SSMシステムに送信する(矢印1144)。SSMシステムはシードを復号化し、復号化の完了を伝える通知をアプリケーションに送信する(矢印1146)。起動アプリケーションは、この後、セキュア・データ・オブジェクトを作成し、そのセキュア・データ・オブジェクトにシードを記憶することを要求する。起動アプリケーションは、ワン・タイム・パスワードを生成するため、そのSDOにOTPアプリケーション(要求するアプリケーションと同じアプリケーションであってもよい)のIDを割り振ることも要求する。SSMシステムは、SDO_1114のいずれか1つを作成し、そのSDOの中にシードを記憶し、OTPアプリケーションのIDをSDOに割り振り、完了するとアプリケーションに通知を送信する(矢印1150)。アプリケーションは、この後、ホストから提供されたユーザ情報に基づき、SDO_1114にアクセスするためのアクセス権を内部ACRから該当するユーザACRへ委譲することを、SSMシステムに要求する(矢印1152)。委譲が完了すると、SSMシステムはアプリケーションに通知する(矢印1154)。アプリケーションは、この後、コールバック関数により、SDOの名前(スロットID)を通信パイプ経由でSSMシステムに送信する(矢印1156)。SSMシステムは、この後、同じものをホストへ転送する(矢印1158)。ホストは、この後、SDOの名前をユーザACRに結合し、このため、ユーザは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が転送され、二因子認証プロセスは完了する。
<コールバック関数>
図40AのSSMコア_1004とSAMM_1008との間では、汎用コールバック関数が確立する。このような関数には、様々な装置内部アプリケーションと通信パイプを登録することができる。起動した装置内部アプリケーションは、このコールバック関数を使用することにより、アプリケーションへのホストコマンドの引渡しに使用されたものと同じ通信パイプを使用して、処理後のデータをSSMシステムへ引き渡すことができる。
図40AのSSMコア_1004とSAMM_1008との間では、汎用コールバック関数が確立する。このような関数には、様々な装置内部アプリケーションと通信パイプを登録することができる。起動した装置内部アプリケーションは、このコールバック関数を使用することにより、アプリケーションへのホストコマンドの引渡しに使用されたものと同じ通信パイプを使用して、処理後のデータをSSMシステムへ引き渡すことができる。
<DRMシステム実施形態>
図45は、DRMシステムを示す機能ブロック図である。このシステムは、通信パイプ1104’と、FSEアプリケーション1102’に至るリンク1108’を備えるCEK1114’と、DRM機能の実行機能を制御する制御構造1101’、1103’、1106’と、を採用している。見て分かるように、セキュリティデータ構造が、認証サーバACRとユーザACRの代わりにライセンスサーバACR1106’と再生ACR1110’とを含んでおり、SDOの代わりにCEK1114’を含んでいる点を除いて、図45のアーキテクチャは図42のものによく似ている。加えて、IDOは関係しないので、図45では省かれている。CEK1114’は、ライセンス提供プロセスの中で作成することができる。プロトコル図である図46は、ライセンス提供とコンテンツダウンロードのプロセスを示すものであり、ここではライセンスオブジェクトの中で鍵が提供される。OTPの実施形態に見られるように、ライセンスの取得を望むユーザはまず、N個のACR1106’のいずれか1つとN個のACR1110’のいずれか1つのもとでアクセス権を取得する必要があり、そうすることで、メディア・プレーヤ・ソフトウェア・アプリケーションなどのメディアプレーヤによってコンテンツを提供できるようになる。
図45は、DRMシステムを示す機能ブロック図である。このシステムは、通信パイプ1104’と、FSEアプリケーション1102’に至るリンク1108’を備えるCEK1114’と、DRM機能の実行機能を制御する制御構造1101’、1103’、1106’と、を採用している。見て分かるように、セキュリティデータ構造が、認証サーバACRとユーザACRの代わりにライセンスサーバACR1106’と再生ACR1110’とを含んでおり、SDOの代わりにCEK1114’を含んでいる点を除いて、図45のアーキテクチャは図42のものによく似ている。加えて、IDOは関係しないので、図45では省かれている。CEK1114’は、ライセンス提供プロセスの中で作成することができる。プロトコル図である図46は、ライセンス提供とコンテンツダウンロードのプロセスを示すものであり、ここではライセンスオブジェクトの中で鍵が提供される。OTPの実施形態に見られるように、ライセンスの取得を望むユーザはまず、N個のACR1106’のいずれか1つとN個のACR1110’のいずれか1つのもとでアクセス権を取得する必要があり、そうすることで、メディア・プレーヤ・ソフトウェア・アプリケーションなどのメディアプレーヤによってコンテンツを提供できるようになる。
図46に示すように、ホストは、ライセンスサーバACR1106’を認証する(矢印1202)。認証に成功したと仮定すると(矢印1204)、ライセンスサーバは、ライセンスファイルをCEK(鍵IDと鍵値)とともにホストに提供する。ホストは、カード上のSSMシステムにアプリケーションIDを提供することによって、起動すべきアプリケーションも選択する。ホストは、プレーヤ情報(例えば、メディア・プレーヤ・ソフトウェア・アプリケーションの情報)も送信する(矢印1206)。このプレーヤ情報により、N個の再生ACR_1110’のうち、プレーヤのアクセス権がある再生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システムは記憶に関与しない。
図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)。ライセンスが既に有効でない場合、コンテンツアクセスの要求は拒絶される。
ライセンスサーバからのライセンスファイルで鍵が提供されない場合の、ライセンス提供とコンテンツのダウンロードは、図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のプロトコルを用いて再生することができる。
前述したOTP実施形態とDRM実施形態で、ホスト装置は、様々なOTPアプリケーションとDRMアプリケーションを、FSE1102および1102’で選ぶことができる。ユーザは、所望の装置内部アプリケーションを選択し、起動することができる。しかし、SSMモジュールとFSEとの全体的な関係は常に同じであるため、ユーザとデータの提供者は、SSMモジュールとの受渡しやFSEを起動する場合に標準のプロトコル群を使用することができる。ユーザと提供者は、独自に開発されたものを含む様々な装置内部アプリケーションの詳細に関わる必要はない。
さらに、図46および図48の場合と同様に、提供プロトコルはいくぶん異なることがある。図46の場合、ライセンスオブジェクトは鍵値を含むが、図48の場合は鍵値を含まない。このような違いから、前述したような若干異なるプロトコルが必要となる。しかしながら、図47における再生は、ライセンス提供のあり方にかかわりなく同じである。したがって、この違いが問題となるのは、通常であればコンテンツの提供者と配布者のみであって、再生段階にしか通常かかわらない消費者には関係ない。それゆえ、このアーキテクチャは、プロトコルをカスタマイズする場合にコンテンツの提供者や配布者に多大な柔軟性を提供しつつ、消費者にとっては扱い易い状態のままである。当然ながら、3つ以上の提供プロトコル群によって提供されるデータから検索される情報でも、第2のプロトコルを用いてアクセスすることができる。
前述した実施形態から提供される別の利点として、ユーザなどの外部エンティティと装置内部アプリケーションは、いずれもセキュリティデータ構造によって制御されるデータを利用するが、ユーザがアクセスできるものは装置内部アプリケーションによって記憶データから検索される結果のみである。それゆえ、OTP実施形態の場合、ホスト装置を通じてユーザが入手できるものはOTPのみであって、シード値は入手することができない。DRM実施形態では、ホスト装置を通じてユーザが入手できるものは再生されたコンテンツのみであって、ライセンスファイルまたは暗号鍵のいずれにもアクセスすることができない。このため、セキュリティを損なうことなく消費者の便宜を図ることができる。
DRMの一実施形態では、装置内部アプリケーションもホストも暗号鍵にアクセスせず、セキュリティデータ構造のみがこれにアクセスする。他の実施形態では、セキュリティデータ構造以外のエンティティも暗号鍵にアクセスすることができる。鍵が装置内部アプリケーションによって生成され、セキュリティデータ構造によって制御される場合もある。
装置内部アプリケーションと情報(例えば、OTPや再生コンテンツ)へのアクセスは、同じセキュリティデータ構造によって制御される。これは、制御システムの複雑さとコストを抑える。
装置内部アプリケーションに対するアクセスを制御する内部ACRから、装置内部アプリケーションを起動することによって得られる情報に対するホストのアクセスを制御するACRに、アクセス権を委譲する能力を提供することにより、前述した特徴および機能が実現可能となる。
<アプリケーション別失効制度>
セキュリティデータ構造のアクセス制御プロトコルは、装置内部アプリケーションの起動時に修正することもできる。例えば、証明書失効プロトコルは、CRLを使用する標準のプロトコルまたは独自のプロトコルのいずれでもよい。それゆえ、FSEを起動することにより、標準のCRL失効プロトコルをFSE独自プロトコルに差し替えることができる。
セキュリティデータ構造のアクセス制御プロトコルは、装置内部アプリケーションの起動時に修正することもできる。例えば、証明書失効プロトコルは、CRLを使用する標準のプロトコルまたは独自のプロトコルのいずれでもよい。それゆえ、FSEを起動することにより、標準のCRL失効プロトコルをFSE独自プロトコルに差し替えることができる。
CRL失効制度をサポートすることに加えて、SSAは、装置内部アプリケーションとCAあるいはその他の取消機関との間の私的通信チャネルを通じて、装置に常駐する内部アプリケーションにホストを無効にさせることができる。内部アプリケーション独自の失効制度は、ホスト−アプリケーションの関係に限定される。
アプリケーション別失効制度が構成される場合、SSAシステムは、CRL(提供される場合)を拒絶することになり、そうでない場合には証明書と独自のアプリケーションデータ(アプリケーション別通信パイプを通じて提供済みのデータ)を用いて所与の証明書が失効済みか否かを判定する。
前述したように、ACRでは、失効値を指定することによって3つの失効制度(失効制度なし、標準CRL制度、アプリケーション別失効制度)のどれを採用するかを指定する。アプリケーション別失効制度を選定する場合、その失効制度を担当する内部アプリケーションIDもACRで指定し、CET/APP_IDフィールドの値は失効制度を担当する内部アプリケーションIDに対応することになる。装置を認証する場合、SSAシステムは、内部アプリケーション独自の制度に準拠する。
1組のプロトコルを別のものに差し替える代わりに、装置内部アプリケーションを起動する場合、SSAによって既に施行されているアクセス制御に、追加のアクセス条件を設けることもできる。例えば、CEKの鍵値に対するアクセス権を、FSEで精査することができる。鍵値のアクセス権がACRにあると判定したSSAシステムは、FSEと相談のうえでアクセスを許諾する。これは、コンテンツへのアクセスを制御する場合にコンテンツの所有者に多大な柔軟性を提供する。
これまで様々な実施形態を参照して本発明を説明してきたが、本発明の範囲から逸脱することなく変更や修正を施すことができ、本発明の範囲が専ら添付の特許請求の範囲とその同等物とによって定まるものであることは理解されよう。
Claims (16)
- 証明書が失効とされるかどうかを判定する方法であって、
不揮発性記憶装置が動作可能にホストに接続されている間に、不揮発性記憶装置で実行され、
(a)前記ホストの前記不揮発性記憶装置への認証を試行するために、前記ホストから証明書を受信するステップと、
(b)前記不揮発性記憶装置にキャッシュされた証明書失効リスト内を、証明書についてのリファレンスを検索することによって、証明書が失効とされるかどうかを判定するステップと、
を備え、
前記ホストの前記不揮発性記憶装置への認証を試行するための前記証明書を前記不揮発性記憶装置が受信する前に、前記証明書失効リストはキャッシュされて最新の状態にされる、方法。 - 前記検索によって前記証明書失効リスト内から証明書についてのリファレンスが取得される場合に、前記ホストを認証するための前記試行を拒絶するステップをさらに備える、請求項1に記載の方法。
- 前記ホストから証明書失効リストを受信するステップ、をさらに備え、
前記ホストから受信した前記証明書失効リストが前記不揮発性記憶装置内の現在の証明書失効リストよりも新しく、前記受信した証明書失効リストが前記証明書の発行者によって発行されたと判定されることによって前記ホストから受信した前記証明書失効リストが検証される場合に、(b)のステップを実行する代わりに、
前記現在の証明書失効リストを前記新しい証明書失効リストに置換するステップと、
前記ホストからの前記証明書が失効とされるかどうか判定するために、前記新しい証明書失効リストを使用するステップと、を実行する、請求項1に記載の方法。 - 前記不揮発性記憶装置の製造時に、前記証明書失効リストが前記不揮発性記憶装置に記憶される、請求項1に記載の方法。
- 前記証明書失効リストはアカウントに関連付けられており、
前記証明書失効リストは前記アカウントの生成時に記憶される、請求項1に記載の方法。 - 前記ホストによる前記不揮発性記憶装置を認証するための試行の前に、前記不揮発性記憶装置に記憶された証明書失効リストが実質的に存在する場合に、(b)のステップは実行され、
そうでない場合には、
前記ホストから証明書失効リストを受信するステップと、
前記ホストから受信した前記証明書失効リストをキャッシュするステップと、
前記ホストからの前記証明書が失効かどうかを判定するために、前記ホストから受信されキャッシュされた証明書失効リストを使用するステップと、を実行する、請求項1に記載の方法。 - 前記ホストによる前記不揮発性記憶装置を認証するための試行の前に、前記不揮発性記憶装置に記憶された証明書失効リストが実質的に存在する場合に、(b)のステップは実行され、
そうでない場合には、証明書失効リストが前記ホストによって供給されない場合に、前記試行を拒絶する、請求項1に記載の方法。 - 前記証明書失効リストは、失効とされた証明書の通し番号を備えている、請求項1に記載の方法。
- 不揮発性記憶装置であって、
証明書失効リストを記憶するメモリと、
(a)前記ホストの前記不揮発性記憶装置への認証を試行するために、前記ホストから証明書を受信するステップと、(b)前記不揮発性記憶装置にキャッシュされた証明書失効リスト内を、証明書についてのリファレンスを検索することによって、証明書が失効とされるかどうかを判定するステップと、を実行する制御部と、
を備える不揮発性記憶装置。 - 前記制御部は、
前記検索によって前記証明書失効リスト内から証明書についてのリファレンスが取得される場合に、前記ホストを認証するための前記試行を拒絶するステップをさらに実行する、請求項9に記載の不揮発性記憶装置。 - 前記制御部は、
前記ホストから証明書失効リストを受信するステップと、
前記ホストから受信した前記証明書失効リストが前記不揮発性記憶装置内の現在の証明書失効リストよりも新しく、前記受信した証明書失効リストが前記証明書の発行者によって発行されたと判定されることによって前記ホストから受信した前記証明書失効リストが検証される場合に、(b)のステップを実行する代わりに、前記現在の証明書失効リストを前記新しい証明書失効リストに置換するステップと、
前記ホストからの前記証明書が失効とされるかどうか判定するために、前記新しい証明書失効リストを使用するステップと、
をさらに実行する、請求項9に記載の不揮発性記憶装置。 - 前記不揮発性記憶装置の製造時に、前記証明書失効リストが前記不揮発性記憶装置に記憶される、請求項9に記載の不揮発性記憶装置。
- 前記証明書失効リストはアカウントに関連付けられており、
前記証明書失効リストは前記アカウントの生成時に記憶される、請求項9に記載の不揮発性記憶装置。 - 前記制御部は、
前記ホストによる前記不揮発性記憶装置を認証するための試行の前に、前記不揮発性記憶装置に記憶された証明書失効リストが実質的に存在する場合に、(b)のステップを実行し、
そうでない場合には、
前記ホストから証明書失効リストを受信するステップと、
前記ホストから受信した前記証明書失効リストをキャッシュするステップと、
前記ホストからの前記証明書が失効かどうかを判定するために、前記ホストから受信されキャッシュされた証明書失効リストを使用するステップと、を実行する、請求項9に記載の不揮発性記憶装置。 - 前記制御部は、
前記ホストによる前記不揮発性記憶装置を認証するための試行の前に、前記不揮発性記憶装置に記憶された証明書失効リストが実質的に存在する場合に、(b)のステップを実行し、
そうでない場合には、証明書失効リストが前記ホストによって供給されない場合に、前記試行を拒絶する、請求項9に記載の不揮発性記憶装置。 - 前記証明書失効リストは、失効とされた証明書の通し番号を備えている、請求項9に記載の不揮発性記憶装置。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US12/641,160 US20100138652A1 (en) | 2006-07-07 | 2009-12-17 | Content control method using certificate revocation lists |
US12/641,160 | 2009-12-17 | ||
PCT/US2010/057425 WO2011075281A1 (en) | 2009-12-17 | 2010-11-19 | Content control method using certificate revocation lists |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2013514587A true JP2013514587A (ja) | 2013-04-25 |
Family
ID=43608711
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2012544547A Withdrawn JP2013514587A (ja) | 2009-12-17 | 2010-11-19 | 証明書失効リストを用いたコンテンツ管理方法 |
Country Status (7)
Country | Link |
---|---|
US (1) | US20100138652A1 (ja) |
EP (1) | EP2513901A1 (ja) |
JP (1) | JP2013514587A (ja) |
KR (1) | KR20120093375A (ja) |
CN (1) | CN102906755A (ja) |
TW (1) | TW201136266A (ja) |
WO (1) | WO2011075281A1 (ja) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2015092953A1 (ja) * | 2013-12-16 | 2015-06-25 | パナソニックIpマネジメント株式会社 | 認証システムおよび認証方法 |
JP2016534629A (ja) * | 2013-08-23 | 2016-11-04 | クアルコム,インコーポレイテッド | プリコード化されたパケットのハッシュ処理を使用したセキュアなコンテンツ配信 |
JP2019521416A (ja) * | 2016-05-11 | 2019-07-25 | アリババ グループ ホウルディング リミテッド | アイデンティティ検証方法及びシステム並びにインテリジェントウェアラブルデバイス |
Families Citing this family (93)
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 |
US9794247B2 (en) * | 2006-08-22 | 2017-10-17 | Stmicroelectronics, Inc. | Method to prevent cloning of electronic components using public key infrastructure secure hardware device |
US20110191581A1 (en) * | 2009-08-27 | 2011-08-04 | Telcordia Technologies, Inc. | Method and system for use in managing vehicle digital certificates |
KR101490468B1 (ko) * | 2010-02-04 | 2015-02-06 | 삼성전자 주식회사 | 데이터 처리 장치 및 방법 |
US9178869B2 (en) | 2010-04-05 | 2015-11-03 | Google Technology Holdings LLC | Locating network resources for an entity based on its digital certificate |
JP5552917B2 (ja) * | 2010-06-24 | 2014-07-16 | ソニー株式会社 | 情報処理装置、および情報処理方法、並びにプログラム |
JP2012008756A (ja) * | 2010-06-24 | 2012-01-12 | Sony Corp | 情報処理装置、および情報処理方法、並びにプログラム |
US20120016999A1 (en) * | 2010-07-14 | 2012-01-19 | Sap Ag | Context for Sharing Data Objects |
US20130139242A1 (en) * | 2010-08-20 | 2013-05-30 | Zte Corporation | Network Accessing Device and Method for Mutual Authentication Therebetween |
US9240965B2 (en) | 2010-08-31 | 2016-01-19 | Sap Se | Methods and systems for business interaction monitoring for networked business process |
FR2970612B1 (fr) * | 2011-01-19 | 2013-01-04 | Natural Security | Procede d'authentification d'un premier equipement de communication par un second equipement de communication |
US20120294445A1 (en) * | 2011-05-16 | 2012-11-22 | Microsoft Corporation | Credential storage structure with encrypted password |
US9244956B2 (en) | 2011-06-14 | 2016-01-26 | Microsoft Technology Licensing, Llc | Recommending data enrichments |
US9628875B1 (en) * | 2011-06-14 | 2017-04-18 | Amazon Technologies, Inc. | Provisioning a device to be an authentication device |
US9147195B2 (en) * | 2011-06-14 | 2015-09-29 | Microsoft Technology Licensing, Llc | Data custodian and curation system |
JP5776432B2 (ja) * | 2011-08-11 | 2015-09-09 | ソニー株式会社 | 情報処理装置、および情報処理方法、並びにプログラム |
US9785491B2 (en) * | 2011-10-04 | 2017-10-10 | International Business Machines Corporation | Processing a certificate signing request in a dispersed storage network |
KR102024869B1 (ko) * | 2011-11-14 | 2019-11-22 | 삼성전자주식회사 | 저장 장치를 인증하기 위한 방법, 호스트 장치 및 기계로 읽을 수 있는 저장 매체 |
JP5786670B2 (ja) * | 2011-11-17 | 2015-09-30 | ソニー株式会社 | 情報処理装置、情報記憶装置、情報処理システム、および情報処理方法、並びにプログラム |
US8918855B2 (en) * | 2011-12-09 | 2014-12-23 | Blackberry Limited | Transaction provisioning for mobile wireless communications devices and related methods |
US9026789B2 (en) | 2011-12-23 | 2015-05-05 | Blackberry Limited | Trusted certificate authority to create certificates based on capabilities of processes |
US9426145B2 (en) * | 2012-02-17 | 2016-08-23 | Blackberry Limited | Designation of classes for certificates and keys |
US10455071B2 (en) | 2012-05-09 | 2019-10-22 | Sprint Communications Company L.P. | Self-identification of brand and branded firmware installation in a generic electronic device |
JP5935883B2 (ja) * | 2012-05-21 | 2016-06-15 | ソニー株式会社 | 情報処理装置、情報処理システム、および情報処理方法、並びにプログラム |
US9225675B2 (en) | 2012-08-08 | 2015-12-29 | Amazon Technologies, Inc. | Data storage application programming interface |
US9904788B2 (en) | 2012-08-08 | 2018-02-27 | Amazon Technologies, Inc. | Redundant key management |
US10558581B1 (en) * | 2013-02-19 | 2020-02-11 | Amazon Technologies, Inc. | Systems and techniques for data recovery in a keymapless data storage system |
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 |
CN104053149B (zh) * | 2013-03-12 | 2017-11-14 | 电信科学技术研究院 | 一种实现车联网设备的安全机制的方法及*** |
US9306943B1 (en) * | 2013-03-29 | 2016-04-05 | Emc Corporation | Access point—authentication server combination |
US9743271B2 (en) * | 2013-10-23 | 2017-08-22 | Sprint Communications Company L.P. | Delivery of branding content and customizations to a mobile communication device |
US10506398B2 (en) | 2013-10-23 | 2019-12-10 | Sprint Communications Company Lp. | Implementation of remotely hosted branding content and customizations |
WO2015092967A1 (ja) * | 2013-12-16 | 2015-06-25 | パナソニックIpマネジメント株式会社 | 認証システム、認証方法および認証装置 |
US9280679B2 (en) | 2013-12-31 | 2016-03-08 | Google Inc. | Tiered application permissions |
US9256755B2 (en) * | 2013-12-31 | 2016-02-09 | Google Inc. | Notification of application permissions |
US9681251B1 (en) | 2014-03-31 | 2017-06-13 | Sprint Communications Company L.P. | Customization for preloaded applications |
CN105100031B (zh) * | 2014-05-23 | 2019-05-17 | 北京奇虎科技有限公司 | 一种批量添加信任的方法、装置和*** |
JP6404928B2 (ja) * | 2014-07-28 | 2018-10-17 | エンクリプティア株式会社 | ユーザ情報管理システム、及びユーザ情報管理方法 |
US9992326B1 (en) | 2014-10-31 | 2018-06-05 | Sprint Communications Company L.P. | Out of the box experience (OOBE) country choice using Wi-Fi layer transmission |
EP3223453B1 (en) * | 2014-11-19 | 2019-03-06 | Huawei Technologies Co., Ltd. | Directional traffic statistics method, device and system |
KR102485830B1 (ko) | 2015-02-13 | 2023-01-09 | 삼성전자주식회사 | 보안 정보의 처리 |
US20160261412A1 (en) * | 2015-03-04 | 2016-09-08 | Avaya Inc. | Two-Step Authentication And Activation of Quad Small Form Factor Pluggable (QFSP+) Transceivers |
US9398462B1 (en) | 2015-03-04 | 2016-07-19 | Sprint Communications Company L.P. | Network access tiered based on application launcher installation |
US20160379207A1 (en) * | 2015-06-25 | 2016-12-29 | Intel Corporation | Secured credential aggregator |
US9760730B2 (en) * | 2015-08-28 | 2017-09-12 | Dell Products L.P. | System and method to redirect and unlock software secure disk devices in a high latency environment |
US10097534B2 (en) * | 2015-08-28 | 2018-10-09 | Dell Products L.P. | System and method to redirect hardware secure USB storage devices in high latency VDI environments |
US9882727B1 (en) | 2015-10-02 | 2018-01-30 | Digicert, Inc. | Partitioning certificate revocation lists |
KR102576417B1 (ko) * | 2015-11-19 | 2023-09-08 | 로베르트 보쉬 게엠베하 | 네트워크화된 컴퓨터를 통한 임베디드 디바이스에 대한 보안 액세스 제어 |
US10778435B1 (en) * | 2015-12-30 | 2020-09-15 | Jpmorgan Chase Bank, N.A. | Systems and methods for enhanced mobile device authentication |
TWI600334B (zh) | 2016-03-23 | 2017-09-21 | 財團法人工業技術研究院 | 車輛網路節點之安全憑證管理方法與應用其之車輛網路節 點 |
CN105868640A (zh) * | 2016-04-04 | 2016-08-17 | 张曦 | 一种防范硬盘固件攻击的***和方法 |
US10637665B1 (en) | 2016-07-29 | 2020-04-28 | Workday, Inc. | Blockchain-based digital identity management (DIM) system |
US11088855B2 (en) | 2016-07-29 | 2021-08-10 | Workday, Inc. | System and method for verifying an identity of a user using a cryptographic challenge based on a cryptographic operation |
US11336432B2 (en) | 2016-07-29 | 2022-05-17 | Workday, Inc. | System and method for blockchain-based device authentication based on a cryptographic challenge |
US10715311B2 (en) * | 2017-07-28 | 2020-07-14 | Workday, Inc. | System and method for blockchain-based user authentication based on a cryptographic challenge |
US10700861B2 (en) | 2016-07-29 | 2020-06-30 | Workday, Inc. | System and method for generating a recovery key and managing credentials using a smart blockchain contract |
US10715312B2 (en) | 2016-07-29 | 2020-07-14 | Workday, Inc. | System and method for blockchain-based device authentication based on a cryptographic challenge |
US10735197B2 (en) | 2016-07-29 | 2020-08-04 | Workday, Inc. | Blockchain-based secure credential and token management across multiple devices |
KR101882685B1 (ko) * | 2016-07-29 | 2018-08-24 | 주식회사 스패로우 | 클라우드 기반의 서비스 제공 방법 |
US9913132B1 (en) | 2016-09-14 | 2018-03-06 | Sprint Communications Company L.P. | System and method of mobile phone customization based on universal manifest |
US10021240B1 (en) | 2016-09-16 | 2018-07-10 | Sprint Communications Company L.P. | System and method of mobile phone customization based on universal manifest with feature override |
DK3334188T3 (da) * | 2016-12-08 | 2021-06-28 | Gn Hearing As | Høreindretning, brugerapplikation og fremgangsmåde til oprettelse af en sikker forbindelse mellem en høreindretning og en brugerapplikation |
US10990707B1 (en) * | 2017-03-30 | 2021-04-27 | Comodo Security Solutions, Inc. | Device for safe data signing |
US10306433B1 (en) | 2017-05-01 | 2019-05-28 | Sprint Communications Company L.P. | Mobile phone differentiated user set-up |
US11196722B2 (en) * | 2017-06-14 | 2021-12-07 | Thales Dis France Sa | Method for mutual symmetric authentication between a first application and a second application |
CN107508680B (zh) | 2017-07-26 | 2021-02-05 | 创新先进技术有限公司 | 数字证书管理方法、装置及电子设备 |
US10586033B2 (en) * | 2017-08-29 | 2020-03-10 | International Business Machines Corporation | Automatic upgrade from one step authentication to two step authentication via application programming interface |
CN107679370B (zh) * | 2017-10-13 | 2020-11-03 | 北京大学 | 一种设备标识生成方法及装置 |
CN107919955B (zh) * | 2017-12-28 | 2021-02-26 | 北京奇虎科技有限公司 | 一种车辆网络安全认证方法、***、车辆、装置及介质 |
US11250164B2 (en) * | 2018-03-27 | 2022-02-15 | Desprez, Llc | Systems for secure collaborative graphical design using secret sharing |
US10848323B2 (en) * | 2018-05-24 | 2020-11-24 | Microsoft Technology Licensing, Llc | Efficient certificate revocation list validation in multi-tenant cloud services |
WO2020006572A2 (en) * | 2018-06-29 | 2020-01-02 | Syntegrity Networks Inc. | Data stream identity |
JP7113269B2 (ja) * | 2018-08-28 | 2022-08-05 | パナソニックIpマネジメント株式会社 | 通信システムおよび通信方法 |
US11057373B2 (en) | 2018-11-16 | 2021-07-06 | Bank Of America Corporation | System for authentication using channel dependent one-time passwords |
CN109598119B (zh) * | 2018-11-28 | 2021-03-16 | 北京可信华泰信息技术有限公司 | 一种可信加解密方法 |
CN109598154B (zh) * | 2018-11-28 | 2021-03-16 | 北京可信华泰信息技术有限公司 | 一种可信全盘加解密方法 |
CN109583197B (zh) * | 2018-11-28 | 2021-05-14 | 北京可信华泰信息技术有限公司 | 一种可信叠层文件加解密方法 |
GB2579574B (en) * | 2018-12-03 | 2021-08-11 | Advanced Risc Mach Ltd | Bootstrapping with common credential data |
EP3681102B1 (de) * | 2019-01-10 | 2022-03-16 | Siemens Aktiengesellschaft | Verfahren zur validierung eines digitalen nutzerzertifikats |
CN110086624A (zh) * | 2019-03-21 | 2019-08-02 | 平安科技(深圳)有限公司 | 数字证书撤销信息验证方法、装置及*** |
US11233650B2 (en) | 2019-03-25 | 2022-01-25 | Micron Technology, Inc. | Verifying identity of a vehicle entering a trust zone |
US11323275B2 (en) * | 2019-03-25 | 2022-05-03 | Micron Technology, Inc. | Verification of identity using a secret key |
US11218330B2 (en) | 2019-03-25 | 2022-01-04 | Micron Technology, Inc. | Generating an identity for a computing device using a physical unclonable function |
US11361660B2 (en) | 2019-03-25 | 2022-06-14 | Micron Technology, Inc. | Verifying identity of an emergency vehicle during operation |
US11316706B2 (en) * | 2019-04-16 | 2022-04-26 | Mastercard International Incorporated | Method and system for using dynamic private keys to secure data file retrieval |
US11411746B2 (en) * | 2019-05-24 | 2022-08-09 | Centrality Investments Limited | Systems, methods, and storage media for permissioned delegation in a computing environment |
US11032062B2 (en) * | 2019-09-17 | 2021-06-08 | Switchbit, Inc. | Data processing permits system with keys |
CN113132108B (zh) * | 2019-12-31 | 2022-02-25 | 华为技术有限公司 | 一种数字证书的吊销、校验方法及装置 |
US11743058B2 (en) * | 2020-03-05 | 2023-08-29 | International Business Machines Corporation | NVDIMM security with physically unclonable functions |
JP2021149417A (ja) | 2020-03-18 | 2021-09-27 | キオクシア株式会社 | 記憶装置および制御方法 |
CN111858974B (zh) * | 2020-07-17 | 2022-03-15 | 北京字节跳动网络技术有限公司 | 信息推送方法、装置、电子设备及存储介质 |
US20210103656A1 (en) * | 2020-11-06 | 2021-04-08 | Lilly Nahal Tahmasebi | Method and apparatus using virtual isolation layer in data security |
US11477027B1 (en) * | 2021-05-11 | 2022-10-18 | Dennis Palatov | Apparatus and methods for management of controlled objects |
Family Cites Families (97)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4575621A (en) * | 1984-03-07 | 1986-03-11 | Corpra Research, Inc. | Portable electronic transaction device and system therefor |
US5237609A (en) * | 1989-03-31 | 1993-08-17 | Mitsubishi Denki Kabushiki Kaisha | Portable secure semiconductor memory device |
US5148481A (en) * | 1989-10-06 | 1992-09-15 | International Business Machines Corporation | Transaction system security method and apparatus |
US5052040A (en) * | 1990-05-25 | 1991-09-24 | Micronyx, Inc. | Multiple user stored data cryptographic labeling system and method |
GB9412434D0 (en) * | 1994-06-21 | 1994-08-10 | Inmos Ltd | Computer instruction compression |
JPH08263438A (ja) * | 1994-11-23 | 1996-10-11 | Xerox Corp | ディジタルワークの配給及び使用制御システム並びにディジタルワークへのアクセス制御方法 |
US5604801A (en) * | 1995-02-03 | 1997-02-18 | International Business Machines Corporation | Public key data communications system under control of a portable security device |
US5793868A (en) * | 1996-08-29 | 1998-08-11 | Micali; Silvio | Certificate revocation system |
US5857020A (en) * | 1995-12-04 | 1999-01-05 | Northern Telecom Ltd. | Timed availability of secured content provisioned on a storage medium |
JP3176030B2 (ja) * | 1996-01-08 | 2001-06-11 | 株式会社東芝 | 複製制御方法及び複製制御装置 |
CA2245822A1 (en) * | 1996-02-09 | 1997-08-14 | Integrated Technologies Of America, Inc. | Access control/crypto system |
US6038551A (en) * | 1996-03-11 | 2000-03-14 | Microsoft Corporation | System and method for configuring and managing resources on a multi-purpose integrated circuit card using a personal computer |
US5903651A (en) * | 1996-05-14 | 1999-05-11 | Valicert, Inc. | Apparatus and method for demonstrating and confirming the status of a digital certificates and other data |
US5949877A (en) * | 1997-01-30 | 1999-09-07 | Intel Corporation | Content protection for transmission systems |
US6189097B1 (en) * | 1997-03-24 | 2001-02-13 | Preview Systems, Inc. | Digital Certificate |
US6513116B1 (en) * | 1997-05-16 | 2003-01-28 | Liberate Technologies | Security information acquisition |
US5930167A (en) * | 1997-07-30 | 1999-07-27 | Sandisk Corporation | Multi-state non-volatile flash memory capable of being its own two state write cache |
US6438666B2 (en) * | 1997-09-26 | 2002-08-20 | Hughes Electronics Corporation | Method and apparatus for controlling access to confidential data by analyzing property inherent in data |
US6094724A (en) * | 1997-11-26 | 2000-07-25 | Atmel Corporation | Secure memory having anti-wire tapping |
US6026402A (en) * | 1998-01-07 | 2000-02-15 | Hewlett-Packard Company | Process restriction within file system hierarchies |
US6584495B1 (en) * | 1998-01-30 | 2003-06-24 | Microsoft Corporation | Unshared scratch space |
US6073242A (en) * | 1998-03-19 | 2000-06-06 | Agorics, Inc. | Electronic authority server |
FR2779018B1 (fr) * | 1998-05-22 | 2000-08-18 | Activcard | Terminal et systeme pour la mise en oeuvre de transactions electroniques securisees |
US6609199B1 (en) * | 1998-10-26 | 2003-08-19 | Microsoft Corporation | Method and apparatus for authenticating an open system application to a portable IC device |
US6343291B1 (en) * | 1999-02-26 | 2002-01-29 | Hewlett-Packard Company | Method and apparatus for using an information model to create a location tree in a hierarchy of information |
US7073063B2 (en) * | 1999-03-27 | 2006-07-04 | Microsoft Corporation | Binding a digital license to a portable device or the like in a digital rights management (DRM) system and checking out/checking in the digital license to/from the portable device or the like |
FI108389B (fi) * | 1999-04-15 | 2002-01-15 | Sonera Smarttrust Oy | Tilaajaidentiteettimoduulin hallinta |
DE60011958T2 (de) * | 1999-04-28 | 2005-08-25 | Matsushita Electric Industrial Co., Ltd., Kadoma | Optische Platte, optisches Plattenaufzeichnungs- und wiedergabegerät, und Verfahren zur Aufzeichnung und Wiedergabe |
US6449720B1 (en) * | 1999-05-17 | 2002-09-10 | Wave Systems Corp. | Public cryptographic control unit and system therefor |
US6289450B1 (en) * | 1999-05-28 | 2001-09-11 | Authentica, Inc. | Information security architecture for encrypting documents for remote access while maintaining access control |
CN1967559A (zh) * | 1999-07-06 | 2007-05-23 | 索尼株式会社 | 数据提供***、装置及其方法 |
GB9922665D0 (en) * | 1999-09-25 | 1999-11-24 | Hewlett Packard Co | A method of enforcing trusted functionality in a full function platform |
US6779113B1 (en) * | 1999-11-05 | 2004-08-17 | Microsoft Corporation | Integrated circuit card with situation dependent identity authentication |
JP3677001B2 (ja) * | 1999-12-03 | 2005-07-27 | 三洋電機株式会社 | データ配信システムおよびそれに用いられる記録装置 |
US20060161725A1 (en) * | 2005-01-20 | 2006-07-20 | Lee Charles C | Multiple function flash memory system |
EP1267515A3 (en) * | 2000-01-21 | 2004-04-07 | Sony Computer Entertainment Inc. | Method and apparatus for symmetric encryption/decryption of recorded data |
US7215771B1 (en) * | 2000-06-30 | 2007-05-08 | Western Digital Ventures, Inc. | Secure disk drive comprising a secure drive key and a drive ID for implementing secure communication over a public network |
US7350204B2 (en) * | 2000-07-24 | 2008-03-25 | Microsoft Corporation | Policies for secure software execution |
EP1312087B1 (en) * | 2000-08-16 | 2007-10-03 | Uqe, Llc | Method and device for controlling distribution and use of digital works |
EP1182551B1 (en) * | 2000-08-21 | 2017-04-05 | Texas Instruments France | Address space priority arbitration |
US6880084B1 (en) * | 2000-09-27 | 2005-04-12 | International Business Machines Corporation | Methods, systems and computer program products for smart card product management |
US7546334B2 (en) * | 2000-11-13 | 2009-06-09 | Digital Doors, Inc. | Data security system and method with adaptive filter |
US6970891B1 (en) * | 2000-11-27 | 2005-11-29 | Microsoft Corporation | Smart card with volatile memory file subsystem |
US7209893B2 (en) * | 2000-11-30 | 2007-04-24 | Nokia Corporation | Method of and a system for distributing electronic content |
JP2002271316A (ja) * | 2001-03-13 | 2002-09-20 | Sanyo Electric Co Ltd | 再生装置 |
JP2002278838A (ja) * | 2001-03-15 | 2002-09-27 | Sony Corp | メモリアクセス制御システム、デバイス管理装置、パーティション管理装置、メモリ搭載デバイス、およびメモリアクセス制御方法、並びにプログラム記憶媒体 |
US20020136410A1 (en) * | 2001-03-26 | 2002-09-26 | Sun Microsystems, Inc. | Method and apparatus for extinguishing ephemeral keys |
US7500104B2 (en) * | 2001-06-15 | 2009-03-03 | Microsoft Corporation | Networked device branding for secure interaction in trust webs on open networks |
US7925894B2 (en) * | 2001-07-25 | 2011-04-12 | Seagate Technology Llc | System and method for delivering versatile security, digital rights management, and privacy services |
US7036020B2 (en) * | 2001-07-25 | 2006-04-25 | Antique Books, Inc | Methods and systems for promoting security in a computer system employing attached storage devices |
US7418344B2 (en) * | 2001-08-02 | 2008-08-26 | Sandisk Corporation | Removable computer with mass storage |
NZ531200A (en) * | 2001-08-13 | 2006-03-31 | Qualcomm Inc | Application level access privilege to a storage area on a computer device |
JP2003085321A (ja) * | 2001-09-11 | 2003-03-20 | Sony Corp | コンテンツ利用権限管理システム、コンテンツ利用権限管理方法、および情報処理装置、並びにコンピュータ・プログラム |
US6456528B1 (en) * | 2001-09-17 | 2002-09-24 | Sandisk Corporation | Selective operation of a multi-state non-volatile memory system in a binary mode |
US6865555B2 (en) * | 2001-11-21 | 2005-03-08 | Digeo, Inc. | System and method for providing conditional access to digital content |
GB0205751D0 (en) * | 2002-03-12 | 2002-04-24 | James Barry E | Improvements relating to memory devices |
US6785790B1 (en) * | 2002-05-29 | 2004-08-31 | Advanced Micro Devices, Inc. | Method and apparatus for storing and retrieving security attributes |
JP2004013744A (ja) * | 2002-06-10 | 2004-01-15 | Takeshi Sakamura | デジタルコンテンツの発行システム及び発行方法 |
GB2391082B (en) * | 2002-07-19 | 2005-08-03 | Ritech Internat Ltd | Portable data storage device with layered memory architecture |
US7083090B2 (en) * | 2002-08-09 | 2006-08-01 | Patrick Zuili | Remote portable and universal smartcard authentication and authorization device |
US20040083370A1 (en) * | 2002-09-13 | 2004-04-29 | Sun Microsystems, Inc., A Delaware Corporation | Rights maintenance in a rights locker system for digital content access control |
US20040059946A1 (en) * | 2002-09-25 | 2004-03-25 | Price Burk Pieper | Network server system and method for securely publishing applications and services |
US7197585B2 (en) * | 2002-09-30 | 2007-03-27 | International Business Machines Corporation | Method and apparatus for managing the execution of a broadcast instruction on a guest processor |
US20040139021A1 (en) * | 2002-10-07 | 2004-07-15 | Visa International Service Association | Method and system for facilitating data access and management on a secure token |
CN1708971A (zh) * | 2002-10-24 | 2005-12-14 | 松下电器产业株式会社 | 将信息从服务提供商“推”到包括存储卡的通信终端的***与方法 |
US7478248B2 (en) * | 2002-11-27 | 2009-01-13 | M-Systems Flash Disk Pioneers, Ltd. | Apparatus and method for securing data on a portable storage device |
JP2004199138A (ja) * | 2002-12-16 | 2004-07-15 | Matsushita Electric Ind Co Ltd | メモリデバイスとそれを使用する電子機器 |
KR100493885B1 (ko) * | 2003-01-20 | 2005-06-10 | 삼성전자주식회사 | 공개키 기반 구조(pki) 도메인간의 이동 사용자를 위한스마트카드 인증서 등록 및 검증 시스템 및 방법 |
US7340615B2 (en) * | 2003-01-31 | 2008-03-04 | Microsoft Corporation | Method and apparatus for managing power in network interface modules |
US7322042B2 (en) * | 2003-02-07 | 2008-01-22 | Broadon Communications Corp. | Secure and backward-compatible processor and secure software execution thereon |
US7949877B2 (en) * | 2003-06-30 | 2011-05-24 | Realnetworks, Inc. | Rights enforcement and usage reporting on a client device |
US6988175B2 (en) * | 2003-06-30 | 2006-01-17 | M-Systems Flash Disk Pioneers Ltd. | Flash memory management method that is resistant to data corruption by power loss |
US6938136B2 (en) * | 2003-07-14 | 2005-08-30 | International Business Machines Corporation | Method, system, and program for performing an input/output operation with respect to a logical storage device |
US20050049931A1 (en) * | 2003-08-29 | 2005-03-03 | Wisnudel Marc Brian | Digital content kiosk and associated methods for delivering selected digital content to a user |
US7484090B2 (en) * | 2003-10-10 | 2009-01-27 | Panasonic Corporation | Encryption apparatus, decryption apparatus, secret key generation apparatus, and copyright protection system |
US7711951B2 (en) * | 2004-01-08 | 2010-05-04 | International Business Machines Corporation | Method and system for establishing a trust framework based on smart key devices |
US8019928B2 (en) * | 2004-02-15 | 2011-09-13 | Sandisk Il Ltd. | Method of managing a multi-bit-cell flash memory |
KR101100385B1 (ko) * | 2004-03-22 | 2011-12-30 | 삼성전자주식회사 | 인증서 폐지 목록을 이용한 디지털 저작권 관리 방법 및장치 |
WO2005124582A1 (en) * | 2004-03-22 | 2005-12-29 | Samsung Electronics Co., Ltd. | Method and apparatus for digital rights management using certificate revocation list |
EP1758293A1 (en) * | 2004-04-21 | 2007-02-28 | Matsushita Electric Industrial Co., Ltd. | Content providing system, information processing device, and memory card |
US7363365B2 (en) * | 2004-07-13 | 2008-04-22 | Teneros Inc. | Autonomous service backup and migration |
US7797750B2 (en) * | 2004-08-10 | 2010-09-14 | Newport Scientific Research Llc | Data security system |
US8954751B2 (en) * | 2004-10-08 | 2015-02-10 | International Business Machines Corporation | Secure memory control parameters in table look aside buffer data fields and support memory array |
GB2434673B (en) * | 2004-11-12 | 2009-10-14 | Discretix Technologies Ltd | Method, device, and system of securely storing data |
WO2006056988A2 (en) * | 2004-11-24 | 2006-06-01 | Discretix Technologies Ltd. | System, method and apparatus of securing an operating system |
US20060129824A1 (en) * | 2004-12-15 | 2006-06-15 | Hoff James P | Systems, methods, and media for accessing TPM keys |
DE102004062203B4 (de) * | 2004-12-23 | 2007-03-08 | Infineon Technologies Ag | Datenverarbeitungseinrichtung, Telekommunikations-Endgerät und Verfahren zur Datenverarbeitung mittels einer Datenverarbeitungseinrichtung |
US7493656B2 (en) * | 2005-06-02 | 2009-02-17 | Seagate Technology Llc | Drive security session manager |
JP4654806B2 (ja) * | 2005-07-15 | 2011-03-23 | ソニー株式会社 | 情報処理装置、情報記録媒体製造装置、情報記録媒体、および方法、並びにコンピュータ・プログラム |
US8046837B2 (en) * | 2005-08-26 | 2011-10-25 | Sony Corporation | Information processing device, information recording medium, information processing method, and computer program |
US7752382B2 (en) * | 2005-09-09 | 2010-07-06 | Sandisk Il Ltd | Flash memory storage system and method |
US7634629B2 (en) * | 2005-12-19 | 2009-12-15 | Intel Corporation | Mechanism to control access to a storage device |
US20070180210A1 (en) * | 2006-01-31 | 2007-08-02 | Seagate Technology Llc | Storage device for providing flexible protected access for security applications |
US8245031B2 (en) * | 2006-07-07 | 2012-08-14 | Sandisk Technologies Inc. | Content control method using certificate revocation lists |
US20080072060A1 (en) * | 2006-08-28 | 2008-03-20 | Susan Cannon | Memory device for cryptographic operations |
US8166326B2 (en) * | 2007-11-08 | 2012-04-24 | International Business Machines Corporation | Managing power consumption in a computer |
US20090144347A1 (en) * | 2007-11-30 | 2009-06-04 | Boyd James A | Storage volume spanning with intelligent file placement and/or rearrangement |
-
2009
- 2009-12-17 US US12/641,160 patent/US20100138652A1/en not_active Abandoned
-
2010
- 2010-11-19 KR KR1020127015573A patent/KR20120093375A/ko not_active Application Discontinuation
- 2010-11-19 EP EP10795109A patent/EP2513901A1/en not_active Withdrawn
- 2010-11-19 WO PCT/US2010/057425 patent/WO2011075281A1/en active Application Filing
- 2010-11-19 CN CN2010800578083A patent/CN102906755A/zh active Pending
- 2010-11-19 JP JP2012544547A patent/JP2013514587A/ja not_active Withdrawn
- 2010-12-10 TW TW099143333A patent/TW201136266A/zh unknown
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2016534629A (ja) * | 2013-08-23 | 2016-11-04 | クアルコム,インコーポレイテッド | プリコード化されたパケットのハッシュ処理を使用したセキュアなコンテンツ配信 |
WO2015092953A1 (ja) * | 2013-12-16 | 2015-06-25 | パナソニックIpマネジメント株式会社 | 認証システムおよび認証方法 |
JPWO2015092953A1 (ja) * | 2013-12-16 | 2017-03-16 | パナソニックIpマネジメント株式会社 | 認証システムおよび認証方法 |
JP2019521416A (ja) * | 2016-05-11 | 2019-07-25 | アリババ グループ ホウルディング リミテッド | アイデンティティ検証方法及びシステム並びにインテリジェントウェアラブルデバイス |
US10878074B2 (en) | 2016-05-11 | 2020-12-29 | Advanced New Technologies Co., Ltd. | Identity verification method and system, and intelligent wearable device |
US10891364B2 (en) | 2016-05-11 | 2021-01-12 | Advanced New Technologies Co., Ltd. | Identity verification method and system, and intelligent wearable device |
Also Published As
Publication number | Publication date |
---|---|
TW201136266A (en) | 2011-10-16 |
CN102906755A (zh) | 2013-01-30 |
US20100138652A1 (en) | 2010-06-03 |
EP2513901A1 (en) | 2012-10-24 |
WO2011075281A1 (en) | 2011-06-23 |
KR20120093375A (ko) | 2012-08-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8140843B2 (en) | Content control method using certificate chains | |
US8639939B2 (en) | Control method using identity objects | |
US8245031B2 (en) | Content control method using certificate revocation lists | |
US8613103B2 (en) | Content control method using versatile control structure | |
US8266711B2 (en) | Method for controlling information supplied from memory device | |
JP2013514587A (ja) | 証明書失効リストを用いたコンテンツ管理方法 | |
JP5180203B2 (ja) | メモリ装置から供給される情報を制御するシステムおよび方法 | |
US20080034440A1 (en) | Content Control System Using Versatile Control Structure | |
US20080010449A1 (en) | Content Control System Using Certificate Chains | |
US20080022395A1 (en) | System for Controlling Information Supplied From Memory Device | |
US20080010452A1 (en) | Content Control System Using Certificate Revocation Lists | |
KR101238848B1 (ko) | 파티셔닝을 포함한 다기능 컨텐트 제어 | |
US20080010458A1 (en) | Control System Using Identity Objects | |
JP4857284B2 (ja) | 多目的コンテンツ制御をするコントロール構造の生成システム | |
JP2010182322A (ja) | 多目的コンテンツ制御を備えたメモリシステム | |
JP2008524758A5 (ja) | ||
JP2009543211A (ja) | 汎用管理構造を使用するコンテンツ管理システムおよび方法 | |
JP5178716B2 (ja) | 証明書取消リストを使用するコンテンツ管理システムおよび方法 | |
JP2009543208A (ja) | 証明書連鎖を使用するコンテンツ管理システムおよび方法 | |
JP2009543208A5 (ja) | ||
JP4972165B2 (ja) | アイデンティティオブジェクトを使用する制御システムおよび方法 | |
JP2009543210A5 (ja) |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A300 | Application deemed to be withdrawn because no request for examination was validly filed |
Free format text: JAPANESE INTERMEDIATE CODE: A300 Effective date: 20140204 |