メモリ装置、ホスト装置、およびメモリシステム
【課題】ホストの属性情報を識別でき、アクセス可能な秘密エリアを限定することが可能なメモリ装置、ホスト装置、およびメモリシステムを提供する。
【解決手段】証明書を検証するための認証局の公開鍵情報を格納し、機密性を保証すべきデータを格納する秘密エリアを含む記憶部23と、記憶部23へのアクセスを受信情報に応じて制御する制御部21と、を有し、受信情報は、認証局で認証された証明書情報にアクセス制御情報を付加した情報を含み、制御部21は、公開鍵で証明書の検証を行い、アクセス制御情報を識別し、上記記憶部内のアクセス可能な秘密エリアを制限する。
【解決手段】証明書を検証するための認証局の公開鍵情報を格納し、機密性を保証すべきデータを格納する秘密エリアを含む記憶部23と、記憶部23へのアクセスを受信情報に応じて制御する制御部21と、を有し、受信情報は、認証局で認証された証明書情報にアクセス制御情報を付加した情報を含み、制御部21は、公開鍵で証明書の検証を行い、アクセス制御情報を識別し、上記記憶部内のアクセス可能な秘密エリアを制限する。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ホスト装置の証明書に応じた認証により秘密データを保持している秘密エリアへのアクセスメモリ装置、ホスト装置、およびメモリシステムに関するものである。
【背景技術】
【0002】
パーソナルコンピュータ、デジタルスチルカメラ、デジタルビデオカメラ、ビデオ機器、ゲーム機器等のホスト装置の外部記憶装置として、フラッシュメモリを備えたメモリ装置が知られている。
【0003】
このように各種ホスト装置の外部記憶装置として使用されるメモリ装置には、たとえば図1に示すように、認証したホスト装置のみがアクセスできる秘密エリア1が形成される。
ホスト装置が対応するアプリケーションが複数(ビデオ、ゲームなど)あり、この秘密エリアは、ビデオ用データ、ゲーム用データなど、アプリケーション毎に書くべきエリアが区分けされる。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特表2002-523816号公報
【特許文献2】特開2004-247799号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
しかしながら、ホスト装置とメモリ装置を採用した現状のメモリシステムにおいては、認証が通ったホストはメディア内の秘密エリアにフルアクセスすることができる。
そのため、複数のホストがメディア内の秘密エリアを共有している場合、他のホストが記録したデータの読み書きができてしまうという問題がある。
【0006】
特許文献1や特許文献2には、メディアであるメモリ装置側にアクセス制御情報を記載することで上記の問題を回避できるようにする技術が開示されている。
しかし、アクセス制御の変更が必要になった時にメディアのファームウェアの変更が必要であるため現実的ではない。
【0007】
本発明は、ホストの属性情報を識別でき、アクセス可能な秘密エリアを限定することが可能なメモリ装置、ホスト装置、およびメモリシステムを提供することにある。
【課題を解決するための手段】
【0008】
本発明の第1の観点のメモリ装置は、証明書を検証するための認証局の公開鍵情報を格納し、機密性を保証すべきデータを格納する秘密エリアを含む記憶部と、上記記憶部へのアクセスを受信情報に応じて制御する制御部と、を有し、上記受信情報は、認証局で認証された証明書情報にアクセス制御情報を付加した情報を含み、上記制御部は、上記公開鍵で上記証明書の検証を行い、上記アクセス制御情報を識別し、上記記憶部内のアクセス可能な上記秘密エリアを制限する。
【0009】
本発明の第2の観点のホスト装置は、少なくとも認証局が発行した証明書情報を格納する記憶デバイスと、上記記憶デバイスのアクセスおよび接続される機密性を保証すべきデータを格納する秘密エリアを含む外部メモリ装置との通信機能を含む制御部と、を有し、上記制御部は、上記通信機能により、上記証明書情報に認証局で認証された証明書情報にアクセス制御情報を付加した情報を送信可能である。
【0010】
本発明の第3の観点のメモリシステムは、ホスト装置と、上記ホスト装置と通信可能なメモリ装置と、を有し、上記ホスト装置は、少なくとも認証局が発行した公開鍵証明書情報を格納する記憶デバイスと、上記記憶デバイスのアクセスおよび接続される機密性を保証すべきデータを格納する秘密エリアを含む外部メモリ装置との通信機能を含む第1の制御部と、を含み、上記第1の制御部は、上記通信機能により、上記証明書情報に認証局で認証された証明書情報にアクセス制御情報を付加した情報を上記メモリ装置に送信可能であり、上記メモリ装置は、証明書を検証するための認証局の公開鍵情報を格納し、機密性を保証すべきデータを格納する秘密エリアを含む記憶部と、上記記憶部へのアクセスを上記ホスト装置から送信される認証局で認証された証明書情報にアクセス制御情報を付加した情報に応じて制御する第2の制御部と、を含み、上記第2の制御部は、上記公開鍵で上記証明書の検証を行い、上記アクセス制御情報を識別し、上記記憶部内のアクセス可能な上記秘密エリアを制限する。
【発明の効果】
【0011】
本発明によれば、ホストの属性情報を識別でき、アクセス可能な秘密エリアを限定することができる。
【図面の簡単な説明】
【0012】
【図1】一般的な秘密エリアの書き込まれるデータ例を示す図である。
【図2】本実施形態に適用されるメモリシステムの概略構成を示す図である。
【図3】本実施形態に係るメモリ装置の要部の構成を示すブロック図である。
【図4】本実施形態に係る秘密エリアに書き込まれるデータの例およびそのデータのアクセス制限について説明するための図である。
【図5】本実施形態に係るホスト装置の要部の構成を示すブロック図である。
【図6】本実施形態に係るホスト装置の証明書の一例を示す図である。
【図7】属性情報を含むPADアクセスエリアの一例を示す図である。
【図8】本実施形態におけるホスト装置とメモリ装置間の基本的な通信シーケンスについて説明するための図である。
【図9】本実施形態におけるホスト装置とメモリ装置間の具体的な通信シーケンスについて説明するための図である。
【図10】一例として、図9の処理におけるメモリ装置の認証状態とプロトコルの実施可否を対応つけて示す図である。
【図11】本実施形態におけるホスト装置とメモリ装置間の具体的なPAD取得の通信シーケンスについて説明するための図である。
【図12】一例として、図11および図13の処理におけるメモリ装置の認証状態とプロトコルの実施可否を対応つけて示す図である。
【図13】本実施形態におけるホスト装置とメモリ装置間の具体的なPAD取得の通信シーケンスについて説明するための図である。
【発明を実施するための形態】
【0013】
以下、本発明の実施の形態を図面に関連付けて説明する。
なお、説明は次の順序で行う。
1.メモリシステムの全体の概略構成
2.メモリ装置の要部の構成例
3.ホスト装置の要部の構成例
4.属性情報を含む証明書の例
5.ホスト装置とメモリ装置間の通信シーケンス
【0014】
<1.メモリシステムの全体の概略構成>
図2は、本発明の実施形態に適用されるメモリシステムの概略構成を示す図である。
【0015】
図2に示すように、このメモリシステムは、ホスト装置10と、ホスト装置10に着脱自在に装着可能なメモリ装置20を主構成要素として有している。本実施形態において、メモリ装置20は不揮発性メモリであるフラッシュメモリを有する。
本実施形態のメモリシステムは、メモリ装置20が公開鍵暗号(PKI)によってホストを認証するシステムとして形成され、ホスト装置10の公開鍵証明書にアクセス制御情報を記録することでメモリ装置20内の秘密エリアへのアクセスを制御する。
【0016】
ホスト装置10は、パーソナルコンピュータ、デジタルスチルカメラ、デジタルビデオカメラ、ビデオ機器、ゲーム機器等の電子機器により構成される。
ホスト装置10は、第1の制御部としてのCPU11、メモリ12、ディスプレイ13、入出力処理(I/O)部14および外部メモリI/F(インタフェース)15を備える。
また、ホスト装置10は、ユーザデータや秘密性の高いデータを記憶するストレージデバイス16を有する。このストレージデバイス16については、後で説明する。
CPU11は、メモリ12、ディスプレイ13、I/O部14、外部メモリI/F15、およびストレージデバイス16とバス17を介し相互に接続されている。
メモリ12は、プログラム格納用のROM、作業用メモリであるRAM等を有する。外部メモリI/F15は、CPU11の制御命令に従ってメモリ装置20との間でデータを送受する。
【0017】
メモリ装置20は、第2の制御部としてのCPU21、メモリ22、フラッシュメモリ23およびホストI/F24を備える。
CPU21は、メモリ22、フラッシュメモリ23およびホストI/F24とバス25を介し相互に接続されている。メモリ22は、プログラム格納用のROM、作業用メモリであるRAM等を有する。
フラッシュメモリ23は、たとえば、NOR型またはNAND型のフラッシュメモリ(不揮発性メモリ)からなる。
ホストI/F24は、CPU21の制御命令に従ってホスト装置10との間でデータを送受する。
【0018】
<2.メモリ装置の要部の構成例>
まず、メモリ装置20のより具体的な構成について説明する。
図3は、図2に示されるメモリ装置20の要部の構成例を示すブロック図である。
【0019】
メモリ装置20は、図3に示されるように、たとえば板状のメモリカード等に相当し、ホスト装置10に装着されているとき、ホスト装置10から認証を伴うアクセスが行われ、データの読み出しや書き込みが行われる。
【0020】
本実施形態のメモリ装置20は、公開鍵暗号(PKI)によってホストを認証する機能を有し、ホスト装置10の公開鍵証明書に付加されているアクセス制御情報を受けて、認証処理等を行って秘密エリアへのアクセスを制御する。
【0021】
本実施形態のメモリ装置20におけるフラッシュメモリ23は、ユーザデータがリード(読み出し)、ライト(書き込み)が行われるユーザデータエリア23U、および完全性、機密性が保証される機密ストレージエリア23Sに区分けされている。
【0022】
機密ストレージエリア23Sには、ホスト装置10の公開鍵証明書を検証するための認証局公開鍵情報エリア231、機密性、完全性を保証すべきデータを格納するための秘密エリア232を有する。
秘密エリア232は、複数の秘密データエリア232−0〜232−3に区分けされており、#0〜#3のようにアドレスが割り振られている。
【0023】
この機密エリア23Sの秘密エリア232は、メモリ装置20と認証したホスト装置10のみがアクセスできるエリアで、図4に示すように、アプリケーション毎に書くべきエリアが区分けされている。
図4の例では、アドレス#0が割り振られた秘密データエリア232−0にはビデオ機器用データが、アドレス#1が割り振られた秘密データエリア232−1にはゲーム機器
ゲーム用データが書き込まれている。また、アドレス#2が割り振られた秘密データエリア232−2には電子本(eBOOK)用データが書き込まれる。
【0024】
このように秘密エリア232に書き込まれるデータは、たとえば改ざんされると困るデータや見られると困るデータが保存される。
改ざんされると困るデータとしては、例示すると、コンテンツの権利情報(視聴期限、再生回数)や配信サービスのユーザIDなどがあげられる。
見られると困るデータとしては、例示すると、暗号化されたコンテンツを復号するための鍵、配信サービスのパスワード、クレジットカードの番号などがあげられる。
【0025】
メモリ装置20の制御部としてのCPU21は、ホスト装置10による公開鍵証明書を認証し、認証されると、公開鍵証明書に付加された属性情報を識別し、ホスト装置10がアクセス可能なメディア内の秘密エリアを制限する機能を有する。
このように、本実施形態においては、ホスト装置10とメモリ装置20の認証には公開鍵暗号を利用する。
CPU21は、その認証を行う機能を有している。
【0026】
CPU21は、受信情報の証明書に付加されたアクセス制御情報(属性情報)からアクセス可能な上記秘密データエリアのアドレスを確認する。
CPU21は、アクセス制御情報からアクセス可能な上記秘密データエリアのアドレスを確認すると、確認情報を送信し、送信した確認情報に応答した応答情報を復号する。そして、CPU21は、送信した確認情報の値と一致したことを確認すると認証されたことを報知する認証通知を行う。
より具体的には、CPU21は、アクセス制御情報からアクセス可能な秘密データエリアのアドレスを確認すると、疑似乱数を送信し、送信した疑似乱数に応答した暗号化情報を復号する。そして、CPU21は、送信した疑似乱数の値と一致したことを確認すると認証されたことを報知する認証通知を行う
CPU21は、認証通知に応答して秘密データエリアのアドレスを受信すると、アクセス制御情報から確認したアクセス可能な秘密データエリアのアドレスと受信アドレスとを照合し、一致したときはアドレスの秘密データを送信する。
【0027】
本実施形態においては、メモリ装置20に持たせる鍵はなるべく減らし、鍵発行コスト、メディア製造コストを下げるために以下の特徴的な構成を採用している。
【0028】
本実施形態においては、公開鍵認証で使うホスト証明書にホスト装置10によりアクセス可能な秘密エリアを属性情報として記載される(付加される)。
このホスト証明書は信頼できる認証局のみが発行可能な証明書である。
上記したように、秘密エリア232にアドレスを割り振り(#0〜#3など)、属性情報にはアクセス可能なアドレス(#0〜#3など)が記載される。
そして、メモリ装置20は、属性情報に従い、ホストからの秘密エリアに対するアクセスを制御する。
また、メモリ装置20は認証局から配布される公開鍵(ホスト証明書を検証するために利用)だけを持てばよい。
【0029】
<3.ホスト装置の要部の構成例>
次に、ホスト装置10のより具体的な構成について説明する。
図5は、図2に示されるメモリ装置20の要部の構成例を示すブロック図である。
【0030】
図5のホスト装置10は、CPU11、メモリ12(RAM)、およびストレージデバイス16が示されている。
【0031】
本実施形態のホスト装置10におけるストレージデバイス16は、ユーザデータがリード(読み出し)、ライト(書き込み)が行われるユーザデータエリア16U、および完全性、機密性が保証される機密ストレージエリア16Sに区分けされている。
【0032】
機密ストレージエリア16Sには、認証局が発行したホスト装置10の公開鍵証明書情報が記憶されたホスト公開鍵情報エリア161、ホスト装置10の秘密鍵情報が記憶されたホスト秘密鍵情報エリア162を有する。
【0033】
ホスト装置10の公開鍵証明書には、基本的に以下のデータが記載してある。
ホスト装置10の公開鍵、
ホスト装置10がアクセスできるメモリ装置20内の秘密データのアドレス(#0〜#3など)、
認証局の秘密鍵による署名、である。
【0034】
<4.属性情報を含む証明書の例>
図6は、本実施形態に係るホスト装置10の証明書の一例を示す図である。
【0035】
図6の証明書((Host Certificate)100は、タイプ(TYPE)エリア101、属性情報を含むPADアクセス(Protected Area Data Access:保護されるエリアデータアクセス)エリア102、およびホスト(Host)IDエリア103を有する。
証明書100は、ホスト公開鍵(Host Public Key)エリア104、および署名(Signature)エリア105を有する。
【0036】
タイプ(TYPE)エリア101は、2バイトで形成され、証明書の種類を表す値が格納される。具体的には、0001h(= Host)が格納される。
【0037】
PADアクセスエリア102は、4バイトで形成され、ホスト装置10がアクセス可能なメモリ装置20内のプロテクテッド(保護される)エリアデータ(Protected Area Data)の番号を表す値が格納される。この情報が属性情報に相当する。
【0038】
図7は、属性情報を含むPADアクセスエリアの一例を示す図である。
PADアクセスエリア102は、図7に示すように、32個のフラグPAD0〜PAD31によって構成される。ここで、PAD N(1bit, 0<=N<32)である。
PADアクセスエリア102は、ホスト装置10がPAD N (0<=N<32)にアクセスできる場合は1bが格納される。アクセスできない場合は0bが格納される。
プロテクテッドエリア(Protected Area)は32個のPADを含む。プロテクテッドエリアには0から31のエリアナンバー(Area Number)が割り当てられる。
PAD(Protected Area Data)0は0番のエリアナンバーを割り当てられたPADのことを指す。
【0039】
ホスト(Host)IDエリア103は、6バイトで形成され、ホスト装置10のホストIDが格納される。
【0040】
ホスト公開鍵(Host Public Key)エリア104は、56バイトで形成され、ホスト装置10の認証用公開鍵が格納される。
【0041】
署名(Signature)エリア105は、56バイトで形成され、秘密鍵による署名が格納される。
たとえば、署名生成時はSignatureを以下の計算式で求める。ホスト装置10の証明書100の[00h - 57h]をDとする。
ECDSA_Sign(LApriv, D )
署名検証時は以下の計算式で検証する。
ECDSA_Verify (LApub, Signature, D )
【0042】
CPU11は、メモリ装置20との通信機能を含む。
CPU11は、この通信機能により、証明書情報に認証局で認証された証明書情報にアクセス制御情報を付加した情報をメモリ装置20に送信可能である。
CPU11は、送信した証明書情報に認証局で認証された証明書情報にアクセス制御情報を付加した情報の応答として確認情報を受信すると、受信した確認情報に応答した応答情報をメモリ装置20に送信する。
より具体的には、CPU11は、送信した証明書情報に認証局で認証された証明書情報にアクセス制御情報を付加した情報の応答として疑似乱数を受信すると、受信した疑似乱数に応答した暗号化情報をメモリ装置20に送信する。
CPU11は、認証されたことを報知する認証通知を受信すると、メモリ装置20の秘密エリアのアドレスを送信し、秘密データを受信可能である。
【0043】
<5.ホスト装置とメモリ装置間の通信シーケンス>
次に、本実施形態におけるホスト装置10とメモリ装置20間の通信シーケンスについて説明する。
図8は、本実施形態におけるホスト装置とメモリ装置間の基本的な通信シーケンスについて説明するための図である。
【0044】
本実施形態のメモリシステムにおいては、ホスト装置10とメモリ装置20間で認証と鍵交換を行い、バス鍵(Bus Key)を共有するためのプロトコルに従って処理する。
メモリシステムにおいては、ホスト装置10とメモリ装置20間の認証にはチャレンジ(Challenge)およびレスポンス(Response)方式を使う。
メモリシステムにおいては、ホスト装置10とメモリ装置20間の鍵交換にはECDH(Elliptic Curve Diffie-Hellman)を使う。
【0045】
[ステップST1]
ステップST1において、ホスト装置10が公開鍵証明書100をメモリ装置20に送信する。
メモリ装置20は、認証局の公開鍵で公開鍵証明書を検証する。
メモリ装置20は、公開鍵証明書内のアクセス制御情報(属性情報)からホスト装置10がアクセス可能な秘密データのアドレスを確認する。
【0046】
[ステップST2]
ステップST2においては、メモリ装置20がホスト装置10へchallenge(擬似乱数)を送信する。
【0047】
[ステップST3]
ステップST3においては、ホスト装置10がメモリ装置20へresponse(challengeをホスト装置10の秘密鍵で暗号化した値)を送信する。
【0048】
[ステップST4]
ステップST4においては、メモリ装置20はresponseをホスト装置10の公開鍵で復号し、challengeで送信した値と一致することを確認する。一致が確認できたら認証されたことをホスト装置10に通知する。
【0049】
[ステップST5]
ステップST5においては、ホスト装置10がメモリ装置20へ取得したい秘密データのアドレスを送信する。
【0050】
[ステップST6]
ステップST6においては、メモリ装置20はステップST1で取得したアクセス制御情報とステップST5のアドレスを照合し、一致すれば秘密データを送信する。
【0051】
次に、本実施形態におけるホスト装置10とメモリ装置20間のより具体的な通信シーケンスについて説明する。
図9は、本実施形態におけるホスト装置とメモリ装置間の具体的な認証の通信シーケンスについて説明するための図である。
なお、図10に示すように、メモリ装置20の認証状態は、「AUTH_INIT」、「AUTH_PROCESS_1」、「AUTH_PROCESS_2」、「AUTH_SESSION_ESTABLISHED」の4つの状態遷移があるものとし、状態「AUTH_INIT」のときプロトコルを実施可能であるものとする。
【0052】
[ステップST11]
ステップST11は、ホスト装置10からメモリ装置20に情報を送信するホストによるチャレンジ(Challenge by Host)であり、以下の処理を行う。
ホスト装置10は数十あるいは数百ビットの乱数Hnを生成する。
ホスト装置10は、メモリ装置20に乱数Hnとホスト証明書(Host Certificate)Hcertを送信する(Challenge by Host)。
【0053】
[ステップST12]
ステップST12において、メモリ装置20はホスト証明書Hcertのタイプ(TYPE)が0001hであることを検証する。
検証に失敗した場合はプロトコルを中断し、認証状態を「AUTH_INIT」へ遷移する。
メモリ装置20は、ホスト証明書Hcertの署名を検証する。署名の検証に失敗した場合はプロトコルを中断し、認証状態を「AUTH_INIT」へ遷移する。
メモリ装置20は数十あるいは数百ビットの乱数Mnを生成する。
メモリ装置20は数十あるいは数百ビットの乱数Mkを生成する。
メモリ装置20は楕円曲線上の点Mvを以下の式で求める。楕円曲線上のベースポイントをGとする。
Mv = Mk * G
メモリ装置20は乱数Mvと乱数Hnに対する署名Msigを以下の式で求める。
Msig = ECDSA_Sign( Mpriv, Mv || Hn )
メモリ装置20は認証状態を「AUTH_INIT」から「AUTH_PROCESS_1」へ遷移する。
【0054】
[ステップST13]
ステップST13において、ホスト装置10はメモリ装置20から乱数Mn、メモリ証明書Mcert、乱数Mv、署名Msigを受け取る(Challenge and Response by Memory)。
ホスト装置10は証明書Mcertのタイプ(TYPE)が0002hであることを検証する。検証に失敗した場合はプロトコルを中断する。
ホスト装置10、証明書Mcertの署名を検証する。署名の検証に失敗した場合はプロトコルを中断する。
ホスト装置10は、以下の計算式で署名Msigを検証する。検証に失敗した場合はプロトコルを中断する。
ECDSA_Verify( Mpub, Msig, Mv || Hn )
ホスト装置10は数十あるいは数百ビットの乱数Hkを生成する。
ホスト装置10はBus Key(BK)を計算して保持する。Bus Keyは楕円曲線上の点Hk * MvのX座標値のたとえば下位100ビットとなる。
ホスト装置10は楕円曲線上の点Hvを以下の式で求める。楕円曲線上のベースポイントをGとする。
Hv = Hk * G
ホスト装置10は、乱数HvとMnに対する署名Hsigを以下の式で求める。
Hsig = Sig( Hpriv, Hv || Mn )
ホスト装置10はメモリ装置20に乱数Hvと書名Hsigを送信する(Response by Host)。
【0055】
[ステップST14]
ステップST14において、メモリ装置20は、以下の計算式で署名Hsigを検証する。検証に失敗した場合はプロトコルを中断する。
ECDSA_Verify( Hpub, Hsig, Hv || Mn )
メモリ装置20はBus Keyを計算して保持する。Bus Keyは楕円曲線上の点Mk * HvのX座標値の下位100ビットとなる。
メモリ装置20は認証状態を「AUTH_PROCESS_1」から「AUTH_PROCESS_2」へ遷移する。
【0056】
次に、本実施形態におけるホスト装置10とメモリ装置20間のより具体的なPAD取得の通信シーケンスについて説明する。
図11は、本実施形態におけるホスト装置とメモリ装置間の具体的なPAD取得の通信シーケンスについて説明するための図である。
なお、図12に示すように、メモリ装置20の認証状態は、「AUTH_INIT」、「AUTH_PROCESS_1」、「AUTH_PROCESS_2」、「AUTH_SESSION_ESTABLISHED」の4つの状態遷移があるものとする。そして、状態「AUTH_PROCESS_2」のときプロトコルを実施可能であるものとする。
【0057】
この処理のプロトコルは、メモリ装置20のPAD(Protected Area Data) Nを取得するためのプロトコルである。
上述したように、事前にホスト装置10とメモリ装置20間で認証が完了している必要がある。
ホスト装置10が取得できるPAD(Protected Area Data)は図6のホスト証明書100のPADアクセス(Access)に従う。
【0058】
[ステップST21]
ステップST21において、ホスト装置10は数十あるいは数百ビットの乱数Hnを生成する。
ホスト装置10は取得するPAD(Protected Area Data)のエリアナンバー(Area Number=N)と乱数Hnをメモリ装置20に送信する。
【0059】
[ステップST22]
ステップST22において、メモリ装置20はホスト装置10から受け取ったエリアナンバー(Area Number)と上記認証プロトコルで受け取ったホスト証明書Hcert内のPAD Accessの値を照合する。
ホスト装置10がPAD(Protected Area Data)Nへのアクセスを許可されていない場合はプロトコルを中断する。
メモリ装置20は、PAD(Protected Area Data)Nを以下の式で暗号化する(= Epad)。Bus KeyをBKとする。
Epad = AES_E( BK, Protected Area Data N )
メモリ装置20はEpad、エリアナンバー(Area Number)と乱数Hnに対するMAC(Mm)を以下の式で計算する。
Mm = CMAC( Epad || Area Number || Hn )
メモリ装置20は、Epad、エリアナンバー(Area Number)、Mmをホスト装置10に送信する。
[ステップST23]
ステップST23において、ホスト装置10は、メモリ装置20からEpad、エリアナンバー(Area Number)、Mmを受け取る。
ホスト装置10は以下の計算結果がMmと一致することを検証する。検証に失敗した場合はプロトコルを中断する。
CMAC( BK, Epad || Area Number || Hn )
ホスト装置10は、受け取ったエリアナンバー(Area Number)の値とステップST21で自身が指定したエリアナンバー(Area Number)が等しいことを検証する。検証に失敗した場合はプロトコルを中断する。
ホスト装置10は、Epadを以下の式で復号化してPAD(Protected Area Data)Nを得る。
AES_D( BK, Epad )
【0060】
次に、本実施形態におけるホスト装置10とメモリ装置20間のより具体的なPADセットの通信シーケンスについて説明する。
図13は、本実施形態におけるホスト装置とメモリ装置間の具体的なPAD取得の通信シーケンスについて説明するための図である。
なお、図12に示すように、メモリ装置20の認証状態は、「AUTH_INIT」、「AUTH_PROCESS_1」、「AUTH_PROCESS_2」、「AUTH_SESSION_ESTABLISHED」の4つの状態遷移があるものとする。そして、状態「AUTH_SESSION_ESTABLISHED」のときプロトコルを実施可能であるものとする。
【0061】
この処理のプロトコルは、メモリ装置20のPAD(Protected Area Data) Nを記録するためのプロトコルである。
上述したように、事前にホスト装置10とメモリ装置20間で認証が完了している必要がある。
ホスト装置10が取得できるPAD(Protected Area Data)は図6のホスト証明書100のPADアクセス(Access)に従う。
【0062】
[ステップST31]
ステップST31において、メモリ装置20は数十あるいは数百ビットの乱数Mnを生成し、ホスト装置10に送信する。
【0063】
[ステップST32]
ステップST32において、ホスト装置10はメモリ装置20からのMnを受け取る。
ホスト装置10は以下の式でPAD(Protected Area Data)Nを暗号化する(= Epad)。Bus KeyをBKとする。
Epad = AES_E( BK, Protected Area Data N )
ホスト装置10は、Epad、Area Number(=N)と乱数Mnに対するMAC(Hm)を以下の式で計算する。
Hm = CMAC( BK, Epad || Area Number || Mn )
ホスト装置10はメモリ装置20へEpadとHmを送信する。
【0064】
[ステップST33]
ステップST33において、メモリ装置20はHmと以下の値が一致することを検証する。検証に失敗した場合はプロトコルを中断する。
CMAC( BK, Epad || Area Number || Mn )
メモリ装置20は、エリアナンバー(Area Number)と上記認証(Authentication)プロトコルで受け取ったホスト証明書内のPAD Accessの値を照合する。メモリ装置20はホスト装置10がPAD(Protected Area Data)Nへのアクセスを許可されていない場合はプロトコルを中断する。
メモリ装置20は、Epadを以下の式で復号化してPAD(Protected Area Data)Nを得る。
AES_D( BK, Epad )
メモリ装置20はPAD(Protected Area Data)Nの更新を行う。
【0065】
以上、本実施形態を詳細に説明したが、以下の構成を採用することも可能である。
ホスト装置10が複数の秘密データにアクセスできる場合は、公開鍵証明書にアドレスを複数記録できるようにする。
ホスト装置10の秘密データへのアクセスをより細かく制御する。たとえば、リード正常/異常(Read OK/NG)、ライト正常/異常(Write OK/NG)、アクセスできる期間制限などを制御する。
また、本実施形態においては、暗号アルゴリズムをPKIを例として説明したが、別のアルゴリズムでも適用可能である。
【0066】
本実施形態によれば、ホスト装置がアクセスできる秘密エリアのアドレスを制御することができる。
また、アクセス制御情報を変更するときにメディアであるメモリ装置を変更する必要がないという利点がある。
【0067】
上述した本実施の形態に限らず、本発明の要旨を逸脱しない限り、適宜、変更しうることはいうまでもない。
【0068】
また、以上詳細に説明した方法は、上記手順に応じたプログラムとして形成し、CPU等のコンピュータで実行するように構成することも可能である。
また、このようなプログラムは、半導体メモリ、磁気ディスク、光ディスク、フロッピー(登録商標)ディスク等の記録媒体、この記録媒体をセットしたコンピュータによりアクセスし上記プログラムを実行するように構成可能である。
【符号の説明】
【0069】
10・・・ホスト装置、11・・・CPU(第1の制御部)、16・・・ストレージデバイス(記憶デバイス)、20・・・メモリ装置、21・・・CPU(第2の制御部)、22・・・メモリ、23・・・フラッシュメモリ(記憶部)、23S・・・機密ストレージエリア、231・・・認証局公開鍵情報エリア、232−0〜232−3・・・秘密データエリア、100・・・証明書。
【技術分野】
【0001】
本発明は、ホスト装置の証明書に応じた認証により秘密データを保持している秘密エリアへのアクセスメモリ装置、ホスト装置、およびメモリシステムに関するものである。
【背景技術】
【0002】
パーソナルコンピュータ、デジタルスチルカメラ、デジタルビデオカメラ、ビデオ機器、ゲーム機器等のホスト装置の外部記憶装置として、フラッシュメモリを備えたメモリ装置が知られている。
【0003】
このように各種ホスト装置の外部記憶装置として使用されるメモリ装置には、たとえば図1に示すように、認証したホスト装置のみがアクセスできる秘密エリア1が形成される。
ホスト装置が対応するアプリケーションが複数(ビデオ、ゲームなど)あり、この秘密エリアは、ビデオ用データ、ゲーム用データなど、アプリケーション毎に書くべきエリアが区分けされる。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特表2002-523816号公報
【特許文献2】特開2004-247799号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
しかしながら、ホスト装置とメモリ装置を採用した現状のメモリシステムにおいては、認証が通ったホストはメディア内の秘密エリアにフルアクセスすることができる。
そのため、複数のホストがメディア内の秘密エリアを共有している場合、他のホストが記録したデータの読み書きができてしまうという問題がある。
【0006】
特許文献1や特許文献2には、メディアであるメモリ装置側にアクセス制御情報を記載することで上記の問題を回避できるようにする技術が開示されている。
しかし、アクセス制御の変更が必要になった時にメディアのファームウェアの変更が必要であるため現実的ではない。
【0007】
本発明は、ホストの属性情報を識別でき、アクセス可能な秘密エリアを限定することが可能なメモリ装置、ホスト装置、およびメモリシステムを提供することにある。
【課題を解決するための手段】
【0008】
本発明の第1の観点のメモリ装置は、証明書を検証するための認証局の公開鍵情報を格納し、機密性を保証すべきデータを格納する秘密エリアを含む記憶部と、上記記憶部へのアクセスを受信情報に応じて制御する制御部と、を有し、上記受信情報は、認証局で認証された証明書情報にアクセス制御情報を付加した情報を含み、上記制御部は、上記公開鍵で上記証明書の検証を行い、上記アクセス制御情報を識別し、上記記憶部内のアクセス可能な上記秘密エリアを制限する。
【0009】
本発明の第2の観点のホスト装置は、少なくとも認証局が発行した証明書情報を格納する記憶デバイスと、上記記憶デバイスのアクセスおよび接続される機密性を保証すべきデータを格納する秘密エリアを含む外部メモリ装置との通信機能を含む制御部と、を有し、上記制御部は、上記通信機能により、上記証明書情報に認証局で認証された証明書情報にアクセス制御情報を付加した情報を送信可能である。
【0010】
本発明の第3の観点のメモリシステムは、ホスト装置と、上記ホスト装置と通信可能なメモリ装置と、を有し、上記ホスト装置は、少なくとも認証局が発行した公開鍵証明書情報を格納する記憶デバイスと、上記記憶デバイスのアクセスおよび接続される機密性を保証すべきデータを格納する秘密エリアを含む外部メモリ装置との通信機能を含む第1の制御部と、を含み、上記第1の制御部は、上記通信機能により、上記証明書情報に認証局で認証された証明書情報にアクセス制御情報を付加した情報を上記メモリ装置に送信可能であり、上記メモリ装置は、証明書を検証するための認証局の公開鍵情報を格納し、機密性を保証すべきデータを格納する秘密エリアを含む記憶部と、上記記憶部へのアクセスを上記ホスト装置から送信される認証局で認証された証明書情報にアクセス制御情報を付加した情報に応じて制御する第2の制御部と、を含み、上記第2の制御部は、上記公開鍵で上記証明書の検証を行い、上記アクセス制御情報を識別し、上記記憶部内のアクセス可能な上記秘密エリアを制限する。
【発明の効果】
【0011】
本発明によれば、ホストの属性情報を識別でき、アクセス可能な秘密エリアを限定することができる。
【図面の簡単な説明】
【0012】
【図1】一般的な秘密エリアの書き込まれるデータ例を示す図である。
【図2】本実施形態に適用されるメモリシステムの概略構成を示す図である。
【図3】本実施形態に係るメモリ装置の要部の構成を示すブロック図である。
【図4】本実施形態に係る秘密エリアに書き込まれるデータの例およびそのデータのアクセス制限について説明するための図である。
【図5】本実施形態に係るホスト装置の要部の構成を示すブロック図である。
【図6】本実施形態に係るホスト装置の証明書の一例を示す図である。
【図7】属性情報を含むPADアクセスエリアの一例を示す図である。
【図8】本実施形態におけるホスト装置とメモリ装置間の基本的な通信シーケンスについて説明するための図である。
【図9】本実施形態におけるホスト装置とメモリ装置間の具体的な通信シーケンスについて説明するための図である。
【図10】一例として、図9の処理におけるメモリ装置の認証状態とプロトコルの実施可否を対応つけて示す図である。
【図11】本実施形態におけるホスト装置とメモリ装置間の具体的なPAD取得の通信シーケンスについて説明するための図である。
【図12】一例として、図11および図13の処理におけるメモリ装置の認証状態とプロトコルの実施可否を対応つけて示す図である。
【図13】本実施形態におけるホスト装置とメモリ装置間の具体的なPAD取得の通信シーケンスについて説明するための図である。
【発明を実施するための形態】
【0013】
以下、本発明の実施の形態を図面に関連付けて説明する。
なお、説明は次の順序で行う。
1.メモリシステムの全体の概略構成
2.メモリ装置の要部の構成例
3.ホスト装置の要部の構成例
4.属性情報を含む証明書の例
5.ホスト装置とメモリ装置間の通信シーケンス
【0014】
<1.メモリシステムの全体の概略構成>
図2は、本発明の実施形態に適用されるメモリシステムの概略構成を示す図である。
【0015】
図2に示すように、このメモリシステムは、ホスト装置10と、ホスト装置10に着脱自在に装着可能なメモリ装置20を主構成要素として有している。本実施形態において、メモリ装置20は不揮発性メモリであるフラッシュメモリを有する。
本実施形態のメモリシステムは、メモリ装置20が公開鍵暗号(PKI)によってホストを認証するシステムとして形成され、ホスト装置10の公開鍵証明書にアクセス制御情報を記録することでメモリ装置20内の秘密エリアへのアクセスを制御する。
【0016】
ホスト装置10は、パーソナルコンピュータ、デジタルスチルカメラ、デジタルビデオカメラ、ビデオ機器、ゲーム機器等の電子機器により構成される。
ホスト装置10は、第1の制御部としてのCPU11、メモリ12、ディスプレイ13、入出力処理(I/O)部14および外部メモリI/F(インタフェース)15を備える。
また、ホスト装置10は、ユーザデータや秘密性の高いデータを記憶するストレージデバイス16を有する。このストレージデバイス16については、後で説明する。
CPU11は、メモリ12、ディスプレイ13、I/O部14、外部メモリI/F15、およびストレージデバイス16とバス17を介し相互に接続されている。
メモリ12は、プログラム格納用のROM、作業用メモリであるRAM等を有する。外部メモリI/F15は、CPU11の制御命令に従ってメモリ装置20との間でデータを送受する。
【0017】
メモリ装置20は、第2の制御部としてのCPU21、メモリ22、フラッシュメモリ23およびホストI/F24を備える。
CPU21は、メモリ22、フラッシュメモリ23およびホストI/F24とバス25を介し相互に接続されている。メモリ22は、プログラム格納用のROM、作業用メモリであるRAM等を有する。
フラッシュメモリ23は、たとえば、NOR型またはNAND型のフラッシュメモリ(不揮発性メモリ)からなる。
ホストI/F24は、CPU21の制御命令に従ってホスト装置10との間でデータを送受する。
【0018】
<2.メモリ装置の要部の構成例>
まず、メモリ装置20のより具体的な構成について説明する。
図3は、図2に示されるメモリ装置20の要部の構成例を示すブロック図である。
【0019】
メモリ装置20は、図3に示されるように、たとえば板状のメモリカード等に相当し、ホスト装置10に装着されているとき、ホスト装置10から認証を伴うアクセスが行われ、データの読み出しや書き込みが行われる。
【0020】
本実施形態のメモリ装置20は、公開鍵暗号(PKI)によってホストを認証する機能を有し、ホスト装置10の公開鍵証明書に付加されているアクセス制御情報を受けて、認証処理等を行って秘密エリアへのアクセスを制御する。
【0021】
本実施形態のメモリ装置20におけるフラッシュメモリ23は、ユーザデータがリード(読み出し)、ライト(書き込み)が行われるユーザデータエリア23U、および完全性、機密性が保証される機密ストレージエリア23Sに区分けされている。
【0022】
機密ストレージエリア23Sには、ホスト装置10の公開鍵証明書を検証するための認証局公開鍵情報エリア231、機密性、完全性を保証すべきデータを格納するための秘密エリア232を有する。
秘密エリア232は、複数の秘密データエリア232−0〜232−3に区分けされており、#0〜#3のようにアドレスが割り振られている。
【0023】
この機密エリア23Sの秘密エリア232は、メモリ装置20と認証したホスト装置10のみがアクセスできるエリアで、図4に示すように、アプリケーション毎に書くべきエリアが区分けされている。
図4の例では、アドレス#0が割り振られた秘密データエリア232−0にはビデオ機器用データが、アドレス#1が割り振られた秘密データエリア232−1にはゲーム機器
ゲーム用データが書き込まれている。また、アドレス#2が割り振られた秘密データエリア232−2には電子本(eBOOK)用データが書き込まれる。
【0024】
このように秘密エリア232に書き込まれるデータは、たとえば改ざんされると困るデータや見られると困るデータが保存される。
改ざんされると困るデータとしては、例示すると、コンテンツの権利情報(視聴期限、再生回数)や配信サービスのユーザIDなどがあげられる。
見られると困るデータとしては、例示すると、暗号化されたコンテンツを復号するための鍵、配信サービスのパスワード、クレジットカードの番号などがあげられる。
【0025】
メモリ装置20の制御部としてのCPU21は、ホスト装置10による公開鍵証明書を認証し、認証されると、公開鍵証明書に付加された属性情報を識別し、ホスト装置10がアクセス可能なメディア内の秘密エリアを制限する機能を有する。
このように、本実施形態においては、ホスト装置10とメモリ装置20の認証には公開鍵暗号を利用する。
CPU21は、その認証を行う機能を有している。
【0026】
CPU21は、受信情報の証明書に付加されたアクセス制御情報(属性情報)からアクセス可能な上記秘密データエリアのアドレスを確認する。
CPU21は、アクセス制御情報からアクセス可能な上記秘密データエリアのアドレスを確認すると、確認情報を送信し、送信した確認情報に応答した応答情報を復号する。そして、CPU21は、送信した確認情報の値と一致したことを確認すると認証されたことを報知する認証通知を行う。
より具体的には、CPU21は、アクセス制御情報からアクセス可能な秘密データエリアのアドレスを確認すると、疑似乱数を送信し、送信した疑似乱数に応答した暗号化情報を復号する。そして、CPU21は、送信した疑似乱数の値と一致したことを確認すると認証されたことを報知する認証通知を行う
CPU21は、認証通知に応答して秘密データエリアのアドレスを受信すると、アクセス制御情報から確認したアクセス可能な秘密データエリアのアドレスと受信アドレスとを照合し、一致したときはアドレスの秘密データを送信する。
【0027】
本実施形態においては、メモリ装置20に持たせる鍵はなるべく減らし、鍵発行コスト、メディア製造コストを下げるために以下の特徴的な構成を採用している。
【0028】
本実施形態においては、公開鍵認証で使うホスト証明書にホスト装置10によりアクセス可能な秘密エリアを属性情報として記載される(付加される)。
このホスト証明書は信頼できる認証局のみが発行可能な証明書である。
上記したように、秘密エリア232にアドレスを割り振り(#0〜#3など)、属性情報にはアクセス可能なアドレス(#0〜#3など)が記載される。
そして、メモリ装置20は、属性情報に従い、ホストからの秘密エリアに対するアクセスを制御する。
また、メモリ装置20は認証局から配布される公開鍵(ホスト証明書を検証するために利用)だけを持てばよい。
【0029】
<3.ホスト装置の要部の構成例>
次に、ホスト装置10のより具体的な構成について説明する。
図5は、図2に示されるメモリ装置20の要部の構成例を示すブロック図である。
【0030】
図5のホスト装置10は、CPU11、メモリ12(RAM)、およびストレージデバイス16が示されている。
【0031】
本実施形態のホスト装置10におけるストレージデバイス16は、ユーザデータがリード(読み出し)、ライト(書き込み)が行われるユーザデータエリア16U、および完全性、機密性が保証される機密ストレージエリア16Sに区分けされている。
【0032】
機密ストレージエリア16Sには、認証局が発行したホスト装置10の公開鍵証明書情報が記憶されたホスト公開鍵情報エリア161、ホスト装置10の秘密鍵情報が記憶されたホスト秘密鍵情報エリア162を有する。
【0033】
ホスト装置10の公開鍵証明書には、基本的に以下のデータが記載してある。
ホスト装置10の公開鍵、
ホスト装置10がアクセスできるメモリ装置20内の秘密データのアドレス(#0〜#3など)、
認証局の秘密鍵による署名、である。
【0034】
<4.属性情報を含む証明書の例>
図6は、本実施形態に係るホスト装置10の証明書の一例を示す図である。
【0035】
図6の証明書((Host Certificate)100は、タイプ(TYPE)エリア101、属性情報を含むPADアクセス(Protected Area Data Access:保護されるエリアデータアクセス)エリア102、およびホスト(Host)IDエリア103を有する。
証明書100は、ホスト公開鍵(Host Public Key)エリア104、および署名(Signature)エリア105を有する。
【0036】
タイプ(TYPE)エリア101は、2バイトで形成され、証明書の種類を表す値が格納される。具体的には、0001h(= Host)が格納される。
【0037】
PADアクセスエリア102は、4バイトで形成され、ホスト装置10がアクセス可能なメモリ装置20内のプロテクテッド(保護される)エリアデータ(Protected Area Data)の番号を表す値が格納される。この情報が属性情報に相当する。
【0038】
図7は、属性情報を含むPADアクセスエリアの一例を示す図である。
PADアクセスエリア102は、図7に示すように、32個のフラグPAD0〜PAD31によって構成される。ここで、PAD N(1bit, 0<=N<32)である。
PADアクセスエリア102は、ホスト装置10がPAD N (0<=N<32)にアクセスできる場合は1bが格納される。アクセスできない場合は0bが格納される。
プロテクテッドエリア(Protected Area)は32個のPADを含む。プロテクテッドエリアには0から31のエリアナンバー(Area Number)が割り当てられる。
PAD(Protected Area Data)0は0番のエリアナンバーを割り当てられたPADのことを指す。
【0039】
ホスト(Host)IDエリア103は、6バイトで形成され、ホスト装置10のホストIDが格納される。
【0040】
ホスト公開鍵(Host Public Key)エリア104は、56バイトで形成され、ホスト装置10の認証用公開鍵が格納される。
【0041】
署名(Signature)エリア105は、56バイトで形成され、秘密鍵による署名が格納される。
たとえば、署名生成時はSignatureを以下の計算式で求める。ホスト装置10の証明書100の[00h - 57h]をDとする。
ECDSA_Sign(LApriv, D )
署名検証時は以下の計算式で検証する。
ECDSA_Verify (LApub, Signature, D )
【0042】
CPU11は、メモリ装置20との通信機能を含む。
CPU11は、この通信機能により、証明書情報に認証局で認証された証明書情報にアクセス制御情報を付加した情報をメモリ装置20に送信可能である。
CPU11は、送信した証明書情報に認証局で認証された証明書情報にアクセス制御情報を付加した情報の応答として確認情報を受信すると、受信した確認情報に応答した応答情報をメモリ装置20に送信する。
より具体的には、CPU11は、送信した証明書情報に認証局で認証された証明書情報にアクセス制御情報を付加した情報の応答として疑似乱数を受信すると、受信した疑似乱数に応答した暗号化情報をメモリ装置20に送信する。
CPU11は、認証されたことを報知する認証通知を受信すると、メモリ装置20の秘密エリアのアドレスを送信し、秘密データを受信可能である。
【0043】
<5.ホスト装置とメモリ装置間の通信シーケンス>
次に、本実施形態におけるホスト装置10とメモリ装置20間の通信シーケンスについて説明する。
図8は、本実施形態におけるホスト装置とメモリ装置間の基本的な通信シーケンスについて説明するための図である。
【0044】
本実施形態のメモリシステムにおいては、ホスト装置10とメモリ装置20間で認証と鍵交換を行い、バス鍵(Bus Key)を共有するためのプロトコルに従って処理する。
メモリシステムにおいては、ホスト装置10とメモリ装置20間の認証にはチャレンジ(Challenge)およびレスポンス(Response)方式を使う。
メモリシステムにおいては、ホスト装置10とメモリ装置20間の鍵交換にはECDH(Elliptic Curve Diffie-Hellman)を使う。
【0045】
[ステップST1]
ステップST1において、ホスト装置10が公開鍵証明書100をメモリ装置20に送信する。
メモリ装置20は、認証局の公開鍵で公開鍵証明書を検証する。
メモリ装置20は、公開鍵証明書内のアクセス制御情報(属性情報)からホスト装置10がアクセス可能な秘密データのアドレスを確認する。
【0046】
[ステップST2]
ステップST2においては、メモリ装置20がホスト装置10へchallenge(擬似乱数)を送信する。
【0047】
[ステップST3]
ステップST3においては、ホスト装置10がメモリ装置20へresponse(challengeをホスト装置10の秘密鍵で暗号化した値)を送信する。
【0048】
[ステップST4]
ステップST4においては、メモリ装置20はresponseをホスト装置10の公開鍵で復号し、challengeで送信した値と一致することを確認する。一致が確認できたら認証されたことをホスト装置10に通知する。
【0049】
[ステップST5]
ステップST5においては、ホスト装置10がメモリ装置20へ取得したい秘密データのアドレスを送信する。
【0050】
[ステップST6]
ステップST6においては、メモリ装置20はステップST1で取得したアクセス制御情報とステップST5のアドレスを照合し、一致すれば秘密データを送信する。
【0051】
次に、本実施形態におけるホスト装置10とメモリ装置20間のより具体的な通信シーケンスについて説明する。
図9は、本実施形態におけるホスト装置とメモリ装置間の具体的な認証の通信シーケンスについて説明するための図である。
なお、図10に示すように、メモリ装置20の認証状態は、「AUTH_INIT」、「AUTH_PROCESS_1」、「AUTH_PROCESS_2」、「AUTH_SESSION_ESTABLISHED」の4つの状態遷移があるものとし、状態「AUTH_INIT」のときプロトコルを実施可能であるものとする。
【0052】
[ステップST11]
ステップST11は、ホスト装置10からメモリ装置20に情報を送信するホストによるチャレンジ(Challenge by Host)であり、以下の処理を行う。
ホスト装置10は数十あるいは数百ビットの乱数Hnを生成する。
ホスト装置10は、メモリ装置20に乱数Hnとホスト証明書(Host Certificate)Hcertを送信する(Challenge by Host)。
【0053】
[ステップST12]
ステップST12において、メモリ装置20はホスト証明書Hcertのタイプ(TYPE)が0001hであることを検証する。
検証に失敗した場合はプロトコルを中断し、認証状態を「AUTH_INIT」へ遷移する。
メモリ装置20は、ホスト証明書Hcertの署名を検証する。署名の検証に失敗した場合はプロトコルを中断し、認証状態を「AUTH_INIT」へ遷移する。
メモリ装置20は数十あるいは数百ビットの乱数Mnを生成する。
メモリ装置20は数十あるいは数百ビットの乱数Mkを生成する。
メモリ装置20は楕円曲線上の点Mvを以下の式で求める。楕円曲線上のベースポイントをGとする。
Mv = Mk * G
メモリ装置20は乱数Mvと乱数Hnに対する署名Msigを以下の式で求める。
Msig = ECDSA_Sign( Mpriv, Mv || Hn )
メモリ装置20は認証状態を「AUTH_INIT」から「AUTH_PROCESS_1」へ遷移する。
【0054】
[ステップST13]
ステップST13において、ホスト装置10はメモリ装置20から乱数Mn、メモリ証明書Mcert、乱数Mv、署名Msigを受け取る(Challenge and Response by Memory)。
ホスト装置10は証明書Mcertのタイプ(TYPE)が0002hであることを検証する。検証に失敗した場合はプロトコルを中断する。
ホスト装置10、証明書Mcertの署名を検証する。署名の検証に失敗した場合はプロトコルを中断する。
ホスト装置10は、以下の計算式で署名Msigを検証する。検証に失敗した場合はプロトコルを中断する。
ECDSA_Verify( Mpub, Msig, Mv || Hn )
ホスト装置10は数十あるいは数百ビットの乱数Hkを生成する。
ホスト装置10はBus Key(BK)を計算して保持する。Bus Keyは楕円曲線上の点Hk * MvのX座標値のたとえば下位100ビットとなる。
ホスト装置10は楕円曲線上の点Hvを以下の式で求める。楕円曲線上のベースポイントをGとする。
Hv = Hk * G
ホスト装置10は、乱数HvとMnに対する署名Hsigを以下の式で求める。
Hsig = Sig( Hpriv, Hv || Mn )
ホスト装置10はメモリ装置20に乱数Hvと書名Hsigを送信する(Response by Host)。
【0055】
[ステップST14]
ステップST14において、メモリ装置20は、以下の計算式で署名Hsigを検証する。検証に失敗した場合はプロトコルを中断する。
ECDSA_Verify( Hpub, Hsig, Hv || Mn )
メモリ装置20はBus Keyを計算して保持する。Bus Keyは楕円曲線上の点Mk * HvのX座標値の下位100ビットとなる。
メモリ装置20は認証状態を「AUTH_PROCESS_1」から「AUTH_PROCESS_2」へ遷移する。
【0056】
次に、本実施形態におけるホスト装置10とメモリ装置20間のより具体的なPAD取得の通信シーケンスについて説明する。
図11は、本実施形態におけるホスト装置とメモリ装置間の具体的なPAD取得の通信シーケンスについて説明するための図である。
なお、図12に示すように、メモリ装置20の認証状態は、「AUTH_INIT」、「AUTH_PROCESS_1」、「AUTH_PROCESS_2」、「AUTH_SESSION_ESTABLISHED」の4つの状態遷移があるものとする。そして、状態「AUTH_PROCESS_2」のときプロトコルを実施可能であるものとする。
【0057】
この処理のプロトコルは、メモリ装置20のPAD(Protected Area Data) Nを取得するためのプロトコルである。
上述したように、事前にホスト装置10とメモリ装置20間で認証が完了している必要がある。
ホスト装置10が取得できるPAD(Protected Area Data)は図6のホスト証明書100のPADアクセス(Access)に従う。
【0058】
[ステップST21]
ステップST21において、ホスト装置10は数十あるいは数百ビットの乱数Hnを生成する。
ホスト装置10は取得するPAD(Protected Area Data)のエリアナンバー(Area Number=N)と乱数Hnをメモリ装置20に送信する。
【0059】
[ステップST22]
ステップST22において、メモリ装置20はホスト装置10から受け取ったエリアナンバー(Area Number)と上記認証プロトコルで受け取ったホスト証明書Hcert内のPAD Accessの値を照合する。
ホスト装置10がPAD(Protected Area Data)Nへのアクセスを許可されていない場合はプロトコルを中断する。
メモリ装置20は、PAD(Protected Area Data)Nを以下の式で暗号化する(= Epad)。Bus KeyをBKとする。
Epad = AES_E( BK, Protected Area Data N )
メモリ装置20はEpad、エリアナンバー(Area Number)と乱数Hnに対するMAC(Mm)を以下の式で計算する。
Mm = CMAC( Epad || Area Number || Hn )
メモリ装置20は、Epad、エリアナンバー(Area Number)、Mmをホスト装置10に送信する。
[ステップST23]
ステップST23において、ホスト装置10は、メモリ装置20からEpad、エリアナンバー(Area Number)、Mmを受け取る。
ホスト装置10は以下の計算結果がMmと一致することを検証する。検証に失敗した場合はプロトコルを中断する。
CMAC( BK, Epad || Area Number || Hn )
ホスト装置10は、受け取ったエリアナンバー(Area Number)の値とステップST21で自身が指定したエリアナンバー(Area Number)が等しいことを検証する。検証に失敗した場合はプロトコルを中断する。
ホスト装置10は、Epadを以下の式で復号化してPAD(Protected Area Data)Nを得る。
AES_D( BK, Epad )
【0060】
次に、本実施形態におけるホスト装置10とメモリ装置20間のより具体的なPADセットの通信シーケンスについて説明する。
図13は、本実施形態におけるホスト装置とメモリ装置間の具体的なPAD取得の通信シーケンスについて説明するための図である。
なお、図12に示すように、メモリ装置20の認証状態は、「AUTH_INIT」、「AUTH_PROCESS_1」、「AUTH_PROCESS_2」、「AUTH_SESSION_ESTABLISHED」の4つの状態遷移があるものとする。そして、状態「AUTH_SESSION_ESTABLISHED」のときプロトコルを実施可能であるものとする。
【0061】
この処理のプロトコルは、メモリ装置20のPAD(Protected Area Data) Nを記録するためのプロトコルである。
上述したように、事前にホスト装置10とメモリ装置20間で認証が完了している必要がある。
ホスト装置10が取得できるPAD(Protected Area Data)は図6のホスト証明書100のPADアクセス(Access)に従う。
【0062】
[ステップST31]
ステップST31において、メモリ装置20は数十あるいは数百ビットの乱数Mnを生成し、ホスト装置10に送信する。
【0063】
[ステップST32]
ステップST32において、ホスト装置10はメモリ装置20からのMnを受け取る。
ホスト装置10は以下の式でPAD(Protected Area Data)Nを暗号化する(= Epad)。Bus KeyをBKとする。
Epad = AES_E( BK, Protected Area Data N )
ホスト装置10は、Epad、Area Number(=N)と乱数Mnに対するMAC(Hm)を以下の式で計算する。
Hm = CMAC( BK, Epad || Area Number || Mn )
ホスト装置10はメモリ装置20へEpadとHmを送信する。
【0064】
[ステップST33]
ステップST33において、メモリ装置20はHmと以下の値が一致することを検証する。検証に失敗した場合はプロトコルを中断する。
CMAC( BK, Epad || Area Number || Mn )
メモリ装置20は、エリアナンバー(Area Number)と上記認証(Authentication)プロトコルで受け取ったホスト証明書内のPAD Accessの値を照合する。メモリ装置20はホスト装置10がPAD(Protected Area Data)Nへのアクセスを許可されていない場合はプロトコルを中断する。
メモリ装置20は、Epadを以下の式で復号化してPAD(Protected Area Data)Nを得る。
AES_D( BK, Epad )
メモリ装置20はPAD(Protected Area Data)Nの更新を行う。
【0065】
以上、本実施形態を詳細に説明したが、以下の構成を採用することも可能である。
ホスト装置10が複数の秘密データにアクセスできる場合は、公開鍵証明書にアドレスを複数記録できるようにする。
ホスト装置10の秘密データへのアクセスをより細かく制御する。たとえば、リード正常/異常(Read OK/NG)、ライト正常/異常(Write OK/NG)、アクセスできる期間制限などを制御する。
また、本実施形態においては、暗号アルゴリズムをPKIを例として説明したが、別のアルゴリズムでも適用可能である。
【0066】
本実施形態によれば、ホスト装置がアクセスできる秘密エリアのアドレスを制御することができる。
また、アクセス制御情報を変更するときにメディアであるメモリ装置を変更する必要がないという利点がある。
【0067】
上述した本実施の形態に限らず、本発明の要旨を逸脱しない限り、適宜、変更しうることはいうまでもない。
【0068】
また、以上詳細に説明した方法は、上記手順に応じたプログラムとして形成し、CPU等のコンピュータで実行するように構成することも可能である。
また、このようなプログラムは、半導体メモリ、磁気ディスク、光ディスク、フロッピー(登録商標)ディスク等の記録媒体、この記録媒体をセットしたコンピュータによりアクセスし上記プログラムを実行するように構成可能である。
【符号の説明】
【0069】
10・・・ホスト装置、11・・・CPU(第1の制御部)、16・・・ストレージデバイス(記憶デバイス)、20・・・メモリ装置、21・・・CPU(第2の制御部)、22・・・メモリ、23・・・フラッシュメモリ(記憶部)、23S・・・機密ストレージエリア、231・・・認証局公開鍵情報エリア、232−0〜232−3・・・秘密データエリア、100・・・証明書。
【特許請求の範囲】
【請求項1】
証明書を検証するための認証局の公開鍵情報を格納し、機密性を保証すべきデータを格納する秘密エリアを含む記憶部と、
上記記憶部へのアクセスを受信情報に応じて制御する制御部と、を有し、
上記受信情報は、
認証局で認証された証明書情報にアクセス制御情報を付加した情報を含み、
上記制御部は、
上記公開鍵で上記証明書の検証を行い、上記アクセス制御情報を識別し、上記記憶部内のアクセス可能な上記秘密エリアを制限する
メモリ装置。
【請求項2】
上記記憶部の上記秘密エリアは、
複数の秘密データエリアに区分けされ、各秘密データエリアにはそれぞれアドレスが割り当てられており、
上記アクセス制御情報は、
アクセスできる上記記憶部内の上記秘密データエリアのアドレスを含み、
上記制御部は、
上記受信情報の証明書に付加された上記アクセス制御情報からアクセス可能な上記秘密データエリアのアドレスを確認する
請求項1記載のメモリ装置。
【請求項3】
上記制御部は、
上記アクセス制御情報からアクセス可能な上記秘密データエリアのアドレスを確認すると、
確認情報を送信し、当該送信した確認情報に応答した応答情報を復号して、上記送信した確認情報の値と一致したことを確認すると認証されたことを報知する認証通知を行う
請求項2記載のメモリ装置。
【請求項4】
上記制御部は、
上記アクセス制御情報からアクセス可能な上記秘密データエリアのアドレスを確認すると、
疑似乱数を送信し、当該送信した疑似乱数に応答した暗号化情報を復号して、上記送信した疑似乱数の値と一致したことを確認すると認証されたことを報知する認証通知を行う
請求項2記載のメモリ装置。
【請求項5】
上記制御部は、
上記認証通知に応答して上記秘密データエリアのアドレスを受信すると、
上記アクセス制御情報から確認したアクセス可能な上記秘密データエリアのアドレスと受信アドレスとを照合し、一致したときは当該アドレスの秘密データを送信する
請求項2から4のいずれか一に記載のメモリ装置。
【請求項6】
少なくとも認証局が発行した証明書情報を格納する記憶デバイスと、
上記記憶デバイスのアクセスおよび接続される機密性を保証すべきデータを格納する秘密エリアを含む外部メモリ装置との通信機能を含む制御部と、を有し、
上記制御部は、
上記通信機能により、上記証明書情報に認証局で認証された証明書情報にアクセス制御情報を付加した情報を送信可能である
ホスト装置。
【請求項7】
上記制御部は、
送信した上記証明書情報に認証局で認証された証明書情報にアクセス制御情報を付加した情報の応答として確認情報を受信すると、当該受信した確認情報に応答した応答情報を送信する
請求項6記載のホスト装置。
【請求項8】
上記制御部は、
送信した上記証明書情報に認証局で認証された証明書情報にアクセス制御情報を付加した情報の応答として疑似乱数を受信すると、当該受信した疑似乱数に応答した暗号化情報を送信する
請求項6記載のホスト装置。
【請求項9】
上記制御部は、
認証されたことを報知する認証通知を受信すると、上記メモリ装置の秘密エリアのアドレスを送信し、秘密データを受信可能である
請求項7または8記載のホスト装置。
【請求項10】
ホスト装置と、
上記ホスト装置と通信可能なメモリ装置と、を有し、
上記ホスト装置は、
少なくとも認証局が発行した公開鍵証明書情報を格納する記憶デバイスと、
上記記憶デバイスのアクセスおよび接続される機密性を保証すべきデータを格納する秘密エリアを含む外部メモリ装置との通信機能を含む第1の制御部と、を含み、
上記第1の制御部は、
上記通信機能により、上記証明書情報に認証局で認証された証明書情報にアクセス制御情報を付加した情報を上記メモリ装置に送信可能であり、
上記メモリ装置は、
証明書を検証するための認証局の公開鍵情報を格納し、機密性を保証すべきデータを格納する秘密エリアを含む記憶部と、
上記記憶部へのアクセスを上記ホスト装置から送信される認証局で認証された証明書情報にアクセス制御情報を付加した情報に応じて制御する第2の制御部と、を含み、
上記第2の制御部は、
上記公開鍵で上記証明書の検証を行い、上記アクセス制御情報を識別し、上記記憶部内のアクセス可能な上記秘密エリアを制限する
メモリシステム。
【請求項11】
上記メモリ装置の記憶部の上記秘密エリアは、
複数の秘密データエリアに区分けされ、各秘密データエリアにはそれぞれアドレスが割り当てられており、
上記アクセス制御情報は、
アクセスできる上記記憶部内の上記秘密データエリアのアドレスを含み、
上記第2の制御部は、
上記受信情報の証明書に付加された上記アクセス制御情報からアクセス可能な上記秘密データエリアのアドレスを確認する
請求項10記載のメモリシステム。
【請求項12】
上記第2の制御部は、
上記アクセス制御情報からアクセス可能な上記秘密データエリアのアドレスを確認すると、
確認情報を送信し、当該送信した確認情報に応答した応答情報を復号して、上記送信した確認情報の値と一致したことを確認すると認証されたことを報知する認証通知を上記ホスト装置に対して行い、
上記第1の制御部は、
送信した上記証明書情報に認証局で認証された証明書情報にアクセス制御情報を付加した情報の応答として上記確認情報を受信すると、当該受信した確認情報に応答した上記応答情報を上記メモリ装置に送信する
請求項11記載のメモリシステム。
【請求項13】
上記第2の制御部は、
上記アクセス制御情報からアクセス可能な上記秘密データエリアのアドレスを確認すると、
疑似乱数を送信し、当該送信した疑似乱数に応答した暗号化情報を復号して、上記送信した疑似乱数の値と一致したことを確認すると認証されたことを報知する認証通知をホスト装置に対して行い、
上記第1の制御部は、
送信した上記証明書情報に認証局で認証された証明書情報にアクセス制御情報を付加した情報の応答として上記疑似乱数を受信すると、当該受信した疑似乱数に応答した暗号化情報を上記メモリ装置に送信する
請求項11記載のメモリシステム。
【請求項14】
上記第1の制御部は、
認証されたことを報知する上記認証通知を受信すると、上記メモリ装置の秘密エリアのアドレスを当該メモリ装置に送信し、
上記第2の制御部は、
上記認証通知に応答して上記秘密データエリアのアドレスを受信すると、
上記アクセス制御情報から確認したアクセス可能な上記秘密データエリアのアドレスと受信アドレスとを照合し、一致したときは当該アドレスの秘密データを送信する
請求項11から13のいずれか一に記載のメモリシステム。
【請求項1】
証明書を検証するための認証局の公開鍵情報を格納し、機密性を保証すべきデータを格納する秘密エリアを含む記憶部と、
上記記憶部へのアクセスを受信情報に応じて制御する制御部と、を有し、
上記受信情報は、
認証局で認証された証明書情報にアクセス制御情報を付加した情報を含み、
上記制御部は、
上記公開鍵で上記証明書の検証を行い、上記アクセス制御情報を識別し、上記記憶部内のアクセス可能な上記秘密エリアを制限する
メモリ装置。
【請求項2】
上記記憶部の上記秘密エリアは、
複数の秘密データエリアに区分けされ、各秘密データエリアにはそれぞれアドレスが割り当てられており、
上記アクセス制御情報は、
アクセスできる上記記憶部内の上記秘密データエリアのアドレスを含み、
上記制御部は、
上記受信情報の証明書に付加された上記アクセス制御情報からアクセス可能な上記秘密データエリアのアドレスを確認する
請求項1記載のメモリ装置。
【請求項3】
上記制御部は、
上記アクセス制御情報からアクセス可能な上記秘密データエリアのアドレスを確認すると、
確認情報を送信し、当該送信した確認情報に応答した応答情報を復号して、上記送信した確認情報の値と一致したことを確認すると認証されたことを報知する認証通知を行う
請求項2記載のメモリ装置。
【請求項4】
上記制御部は、
上記アクセス制御情報からアクセス可能な上記秘密データエリアのアドレスを確認すると、
疑似乱数を送信し、当該送信した疑似乱数に応答した暗号化情報を復号して、上記送信した疑似乱数の値と一致したことを確認すると認証されたことを報知する認証通知を行う
請求項2記載のメモリ装置。
【請求項5】
上記制御部は、
上記認証通知に応答して上記秘密データエリアのアドレスを受信すると、
上記アクセス制御情報から確認したアクセス可能な上記秘密データエリアのアドレスと受信アドレスとを照合し、一致したときは当該アドレスの秘密データを送信する
請求項2から4のいずれか一に記載のメモリ装置。
【請求項6】
少なくとも認証局が発行した証明書情報を格納する記憶デバイスと、
上記記憶デバイスのアクセスおよび接続される機密性を保証すべきデータを格納する秘密エリアを含む外部メモリ装置との通信機能を含む制御部と、を有し、
上記制御部は、
上記通信機能により、上記証明書情報に認証局で認証された証明書情報にアクセス制御情報を付加した情報を送信可能である
ホスト装置。
【請求項7】
上記制御部は、
送信した上記証明書情報に認証局で認証された証明書情報にアクセス制御情報を付加した情報の応答として確認情報を受信すると、当該受信した確認情報に応答した応答情報を送信する
請求項6記載のホスト装置。
【請求項8】
上記制御部は、
送信した上記証明書情報に認証局で認証された証明書情報にアクセス制御情報を付加した情報の応答として疑似乱数を受信すると、当該受信した疑似乱数に応答した暗号化情報を送信する
請求項6記載のホスト装置。
【請求項9】
上記制御部は、
認証されたことを報知する認証通知を受信すると、上記メモリ装置の秘密エリアのアドレスを送信し、秘密データを受信可能である
請求項7または8記載のホスト装置。
【請求項10】
ホスト装置と、
上記ホスト装置と通信可能なメモリ装置と、を有し、
上記ホスト装置は、
少なくとも認証局が発行した公開鍵証明書情報を格納する記憶デバイスと、
上記記憶デバイスのアクセスおよび接続される機密性を保証すべきデータを格納する秘密エリアを含む外部メモリ装置との通信機能を含む第1の制御部と、を含み、
上記第1の制御部は、
上記通信機能により、上記証明書情報に認証局で認証された証明書情報にアクセス制御情報を付加した情報を上記メモリ装置に送信可能であり、
上記メモリ装置は、
証明書を検証するための認証局の公開鍵情報を格納し、機密性を保証すべきデータを格納する秘密エリアを含む記憶部と、
上記記憶部へのアクセスを上記ホスト装置から送信される認証局で認証された証明書情報にアクセス制御情報を付加した情報に応じて制御する第2の制御部と、を含み、
上記第2の制御部は、
上記公開鍵で上記証明書の検証を行い、上記アクセス制御情報を識別し、上記記憶部内のアクセス可能な上記秘密エリアを制限する
メモリシステム。
【請求項11】
上記メモリ装置の記憶部の上記秘密エリアは、
複数の秘密データエリアに区分けされ、各秘密データエリアにはそれぞれアドレスが割り当てられており、
上記アクセス制御情報は、
アクセスできる上記記憶部内の上記秘密データエリアのアドレスを含み、
上記第2の制御部は、
上記受信情報の証明書に付加された上記アクセス制御情報からアクセス可能な上記秘密データエリアのアドレスを確認する
請求項10記載のメモリシステム。
【請求項12】
上記第2の制御部は、
上記アクセス制御情報からアクセス可能な上記秘密データエリアのアドレスを確認すると、
確認情報を送信し、当該送信した確認情報に応答した応答情報を復号して、上記送信した確認情報の値と一致したことを確認すると認証されたことを報知する認証通知を上記ホスト装置に対して行い、
上記第1の制御部は、
送信した上記証明書情報に認証局で認証された証明書情報にアクセス制御情報を付加した情報の応答として上記確認情報を受信すると、当該受信した確認情報に応答した上記応答情報を上記メモリ装置に送信する
請求項11記載のメモリシステム。
【請求項13】
上記第2の制御部は、
上記アクセス制御情報からアクセス可能な上記秘密データエリアのアドレスを確認すると、
疑似乱数を送信し、当該送信した疑似乱数に応答した暗号化情報を復号して、上記送信した疑似乱数の値と一致したことを確認すると認証されたことを報知する認証通知をホスト装置に対して行い、
上記第1の制御部は、
送信した上記証明書情報に認証局で認証された証明書情報にアクセス制御情報を付加した情報の応答として上記疑似乱数を受信すると、当該受信した疑似乱数に応答した暗号化情報を上記メモリ装置に送信する
請求項11記載のメモリシステム。
【請求項14】
上記第1の制御部は、
認証されたことを報知する上記認証通知を受信すると、上記メモリ装置の秘密エリアのアドレスを当該メモリ装置に送信し、
上記第2の制御部は、
上記認証通知に応答して上記秘密データエリアのアドレスを受信すると、
上記アクセス制御情報から確認したアクセス可能な上記秘密データエリアのアドレスと受信アドレスとを照合し、一致したときは当該アドレスの秘密データを送信する
請求項11から13のいずれか一に記載のメモリシステム。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【公開番号】特開2011−209802(P2011−209802A)
【公開日】平成23年10月20日(2011.10.20)
【国際特許分類】
【出願番号】特願2010−74334(P2010−74334)
【出願日】平成22年3月29日(2010.3.29)
【出願人】(000002185)ソニー株式会社 (34,172)
【Fターム(参考)】
【公開日】平成23年10月20日(2011.10.20)
【国際特許分類】
【出願日】平成22年3月29日(2010.3.29)
【出願人】(000002185)ソニー株式会社 (34,172)
【Fターム(参考)】
[ Back to top ]