【文献】
Reply LS on High Speed UICC Interface,ETSI SCP,2006年 9月22日,p.16,インターネット<URL:http://www.3gpp.org/ftp/tsg_ct/TSG_CT/TSGC_33/Tdocs/CP−060497.zip>[online]
【文献】
「世界のウェブアーカイブ|国立国会図書館インターネット資料収集保存事業」、[online]、平成22年3月6日、[令和2年11月11日検索]、インターネット<URL:https://web.archive.org/web/20100305160351/https:/www.cqpub.co.jp/julius/bios/bios003.htm>
(58)【調査した分野】(Int.Cl.,DB名)
前記コントローラが、プレロードされた暗号化キーに応答してメッセージ認証コードを生成することによって、前記コマンドを認証するように構成された、請求項1に記載の装置。
前記コントローラが、前記生成されたメッセージ認証コードと前記コマンドに関連付けられたメッセージ認証コードとを比較することによって、前記コマンドを認証するように構成された、請求項2に記載の装置。
前記コントローラが、前記生成されたメッセージ認証コードが前記コマンドに関連付けられた前記メッセージ認証コードに一致することに応答して、前記レジスタの少なくとも一部へのアクセスを許可するように構成された、請求項3に記載の装置。
前記コントローラが、前記生成されたメッセージ認証コードが前記コマンドに関連付けられた前記メッセージ認証コードに一致することに応答して、前記コマンドに存在するコマンドを通じて、前記レジスタの少なくとも一部へのアクセスを許可するように構成された、請求項4に記載の装置。
前記コントローラが、前記生成されたメッセージ認証コードが前記コマンドに関連付けられた前記メッセージ認証コードに一致することに応答して、当該装置のコンフィギュレーションレジスタの少なくとも一部へのアクセスを許可するように構成された、請求項3に記載の装置。
前記命令が、プレロードキーにアクセスする命令と、前記プレロードキーに応答して前記第一のメッセージ認証コードを生成する命令とを含む、請求項10に記載の有形機械可読媒体。
前記命令が、前記内蔵メモリデバイスの前記アクセス保護スキームが変更されたことに応答して、前記内蔵メモリデバイスの前記書き込み保護された部分として書き込み保護されたグループを変更する命令を含む、請求項10に記載の有形機械可読媒体。
前記命令が、前記内蔵メモリデバイスの第二のアクセス保護スキームが変更されたことに応答して、前記内蔵メモリデバイスの前記ブート部分としてのブートパーティションを変更する命令を含む、請求項10に記載の有形機械可読媒体。
【発明を実施するための形態】
【0007】
本実施形態は、例えば、認証技術の正常終了後に、コンフィギュレーションレジスタの少なくとも一部(例えば、コンフィギュレーションデータ/情報を保持するデータ保持場所のレジスタセットまたはメモリ)のみを、設定する、消去する及び/または読み出すことができるアクセス保護スキームを確保するための装置及び方法を含む。例えば、一実施形態において、認証技術は、内蔵メモリデバイスのアクセス保護スキーム(複数可)を、信頼できるホストシステムから受信したコマンドにのみ応答して変更できる。認証技術は、さらに、内蔵メモリデバイスの製造フェーズ期間にプログラムされたものなどの、内蔵メモリデバイスに事前にプログラムされた暗号化キーに基づくことができる。
【0008】
ここで図面を参照すると、
図1は、参照数字10によって概して指定された、プロセッサベースのシステムの形態の装置の実施形態を図示する。システム10は、例えば、ラップトップコンピュータ、タブレット、携帯電話、自己管理手帳、パーソナルデジタルメディアプレーヤ、カメラ、電子リーダなどの様々なタイプの電子デバイスのいずれかであっても良い。システム10は、コピー機、スキャナ、プリンタ、ゲーム機、テレビ受像機、セットトップビデオ分配若しくは録画システム、ケーブルボックス、ファクトリーオートメーションシステム、自動車用コンピュータシステム、または医療デバイスなどのいくつかの他の種類の電子デバイスであっても良い。システムのこれらのさまざまな実施例を記述するのに使用される用語は、本明細書に使用される他の用語の多くと同じ様に、いくつかの指示対象を共有することができ、そのようなものとして、リストされた他のアイテムを理由として狭義に解釈すべきではない。
【0009】
システム10などのプロセッサベースのデバイスにおいて、マイクロプロセッサなどのプロセッサ12が、システム機能及びシステム10内のリクエストの処理を制御する。さらに、プロセッサ12は、システム制御を共用する複数個のプロセッサを備えることができる。プロセッサ12は、直接的に、間接的にまたはそれらの組み合わせにおいてシステム10内の要素の各々と連結し、これによりプロセッサ12は、システム10内部またはシステム10外部に保存できる命令を実行することによってシステム10を制御することができる。
【0010】
一実施形態において、プロセッサ12は、システムバス14を通じてシステム10内の要素に直接的に連結することができる。システムバス14によって、データ及び/またはコマンドをプロセッサ12とシステム10内のさまざまな要素との間で送ることができ、さらにまた、データ及び/またはコマンドをシステム10内のさまざまな要素間で送るための経路を提供することができる。システム10のさまざまな要素の実施例が、以下に提供される。
【0011】
認識されるように、システム10は、メモリ16を含むことができる。メモリ16は、例えば、ダイナミックランダムアクセスメモリ(DRAM)、スタティックランダムアクセスメモリ(SRAM)、シンクロナスDRAM(SDRAM)、ダブルデータレートDRAM(DDR SDRAM)、DDR2 SDRAM、DDR3 SDRAMなどの揮発性メモリを含むことができる。メモリ16は、読み出し専用メモリ(ROM)、PC−RAM、シリコン−酸化物−窒化物−酸化物−シリコン(SONOS)メモリ、金属−酸化物−窒化物−酸化物−シリコン(MONOS)メモリ、ポリシリコンフローティングゲートベースのメモリ、及び/または揮発性メモリと併せて使用できる、さまざまなアーキテクチャの他のタイプのフラッシュメモリ(例えば、NANDメモリ、NORメモリなど)などの不揮発性メモリも含むことができる。メモリ16は、DRAMデバイス、半導体ドライブ(SSD)、マルチメディア・メディア・カード(MMC)、セキュアデジタル(SD)カード、コンパクトフラッシュ(CF)カード、または任意の他の適切なデバイスなどの一つ以上のメモリデバイスを含むことができる。さらに、そのようなメモリデバイスが、ユニバーサルシリアルバス(USB)、周辺コンポーネント相互接続(PCI)、PCIエクスプレス(PCI−E)、小型コンピュータ用周辺機器インターフェース(SCSI)、IEEE1394(ファイヤーワイヤー)、または任意の他の適切なインターフェースなどの任意の適切なインターフェースを通じてシステム10に連結できることを認識すべきである。フラッシュメモリデバイスなどのメモリ16の動作を促進するために、システム10は、メモリコントローラ(図示せず)を含むことができる。認識されるように、メモリコントローラは、独立したデバイスであっても良いし、プロセッサ12またはメモリ16と統合されても良い。さらに、システム10は、磁気ストレージデバイスなどの外部ストレージ18を含むことができる。さらに、いくつかの実施形態において、メモリ16に追加してまたはその代わりに、追加のストレージ(例えば、内蔵メモリデバイス20)を利用することができる。
【0012】
システム10は、多数の追加の要素を含むことができる。例として、ユーザがデータをシステム10に入力できる入力デバイス22も、プロセッサ12に連結することができる。例として、入力デバイス22を使用して、プロセッサ12によって後に解析するためのデータをメモリ16に入力することができる。入力デバイス22は、例として、ボタン、スイッチング要素、キーボード、ライトペン、スタイラス、マウス及び/または音声認識システムを含むことができる。さらに、出力デバイス24がシステム10内に存在することができる。出力デバイス24は、例えば、ディスプレイを含むことができる。出力デバイス24は、例えば、LCD、CRT、LED及び/またはオーディオディスプレイを含むことができる。システムは、インターネットなどのネットワークと相互作用するための、ネットワークインターフェースカード(NIC)などのネットワークインターフェースデバイス26も含むことができる。認識されるように、システム10は、システム10のアプリケーションに応じて、多くの他のコンポーネントを含むことができる。
【0013】
さらに、前述のように、システム10は、内蔵メモリデバイス20を含むことができる。この内蔵メモリデバイス
20の一実施例は、ボールグリッドアレイ(BGA)パッケージに統合されたマルチメディアカード(MMC)コンポーネント(例えば、共通のダイにおけるMMCインターフェース、フラッシュメモリなどのメモリ及び関連するコントローラ)を含む内蔵マルチメディアカード(eMMC)である。動作中、eMMCデバイスを利用して、eMMCにオフロードできるブート動作及び/または他の状況において動作するためのプロセッサの自由度をより大きくできる他の動作などの、システムのための特定のタスクを簡略化及び/または実行することができる。また、eMMCによって実行可能な特定の動作のオフロードによって、eMMCがプロセッサ12と並行して動作できるので、タスクをより速く完了することができる。
【0014】
いくつかの実施形態において、デバイス20は、ホストコントローラ28とインターフェースすることができる。さらに、ホストコントローラインターフェース30によって、(システムバス14を通じて)デバイス20とプロセッサ12との間の通信を完成することができる。ホストコントローラ28及びホストコントローラインターフェース30の動作は、
図2に関してより詳細に後述する。
【0015】
図2は、デバイス20ならびにシステム10の追加の要素とのデバイス20の相互接続をより詳細に図示する。図示するように、プロセッサ12、システムバス14、メモリ16、ホストコントローラ28及びホストコントローラインターフェース30は、ホスト32を構成することができる。ホスト32は、デバイス20と通信することができる。例えば、コマンドを、コマンド経路(例えば、CMD)に沿ってホスト32とデバイス20との間で伝送することができる。さらに、いくつかの実施形態において、応答を、双方向性のCMDに沿って、デバイス20からホストに伝送することができる。同じ様に、データを、ホスト32とデバイス20との間の複数個のルート線を含むことができるデータ経路(例えば、DAT[0:7])に沿って伝送することができる。同様に、データストローブを、データストローブ経路(例えば、DS)に沿ってデバイス20からホスト32に伝送することができる。さらに、クロック信号を、クロック経路(例えば、CLK)に沿って伝送し、リセット信号を、リセット信号経路(例えば、RST_n)に沿ってホスト32とデバイス20との間で伝送することができる。より具体的には、コネクタ(例えば、ピン、リードまたは同様のもの)を、ホスト32に存在させ(例えば、ホストコントローラ28に連結させ)、それぞれ、コマンド経路、データ経路、データストローブ経路、クロック経路及びリセット信号経路の各々と連結させることができる。同じ様に、コネクタ(例えば、ピン、リードまたは同様のもの)を、デバイス20に存在させ(例えば、デバイスコントローラ34に連結させ)、それぞれ、コマンド経路、データ経路、データストローブ経路、クロック経路及びリセット信号経路の各々と連結させることができる。さらに、いくつかの実施形態において、電力経路36が、デバイス20のさまざまな要素に電力を提供するための一つ以上の電力信号を提供することができる。いくつかの実施形態において、これらの電力信号は、デバイス20に存在する(例えば、デバイスコントローラ34に連結された)一つ以上のコネクタ(例えば、ピン、リードまたは同様のもの)において受信することができる。
【0016】
いくつかの実施形態において、デバイスコントローラ34は、電力信号をデバイス20のさまざまな要素(例えば、デバイスコントローラ34、不揮発性メモリ38、不揮発性メモリ40及びここには図示しないデバイス20の追加の要素)に分散することができる。さらに、デバイスコントローラ34は、デバイスコントローラ34によって解釈できる信号を含み得るコマンドをコマンド経路に沿って受信することができる。これらのコマンド信号は、特定の様式における動作(例えば、データの読み出し、データの書き込み、メモリエリアの上書きからの保護など)をメモリデバイス20に指図する命令であっても良い。同じ様に、デバイスコントローラ34は、デバイスコントローラ34によって保存できるデータ信号を含み得るデータをデータ経路に沿って受信することができる。デバイスコントローラ34が、デバイス20の動作中に、コマンド信号及び/またはデータ信号の一つ以上をホスト32に返送するようにも動作できることにさらに留意すべきである。
【0017】
デバイスコントローラ34は、さらに、例えば、データがデバイス20からホスト32にデータが転送されるところの読み出し動作中にホスト32によって利用できるデータストローブ信号をホスト32に伝送することができる。同じ様に、デバイスコントローラ34は、例えば、デバイス20によって実行される読み出し/書き込み動作と同時に使用される及びデバイス20を初期化(例えば、リセット)するための、それぞれ、クロック及び/またはリセット信号を受信することができる。
【0018】
先に述べたように、デバイス20は、eMMCデバイスであっても良く、そのようなものとして、eMMCの一つ以上の部分(例えば、メモリ位置)を上書きから保護するための書き込み保護スキーム(複数可)などの特定のアクセス保護スキームを実施できる。これらの保護スキームは、例えば、永続的に、電源オン中または一時的のいずれかに、デバイスレベルの書き込み保護または固有部分(例えば、書き込み保護(WP)グループまたは大容量の(HC)WPグループ)保護を提供することができる。さらに、例えば、所与のeMMCの複数の(例えば、二つの)ブートパーティションを、単独でまたは集合的に、永続的に/電源オン中に書き込み保護できるブートパーティション書き込み保護を提供することができる。
【0019】
しかしながら、
図2のシステム10とともに適用可能なこれらの保護スキームは、例えば、前述の書き込み保護スキームの未
認可の変更を防止するには不十分であることがある。そのようなものとして、アクセス保護スキームの未
認可の変更についての機会を減少する及び/または防止するための追加の技術を用いることができる。
【0020】
図3は、デバイス20のアクセス保護スキームの未
認可の変更を減少/排除できるシステム10のデバイス20及びホスト32を図示する。図示するように、デバイス20(例えば、eMMCデバイス)は、認証プロセス(例えば、アクセスの試み、他の受信した信号、伝送パケットまたは同様のものが、妥当な、例えば
認可された、送信者によって適切に発行されたか否か、そして
認可された、例え
ば妥当な、アクセスの試み、信号、伝送または同様のものであるか否かを決定するプロセス)の正常終了後のみにアクセス可能な、二つの追加のレジスタ42及び44ならびに/または一般的なコンフィギュレーションレジスタ(例えば、eMMCデバイスの拡張カード固有データレジスタ)における二つの専用フィールドを含むことができる。いくつかの実施形態において、レジスタ42及び44に保存されたデータは、選択的に変更可能(例えば、リクエストが妥当と認証されたときに変更する)であっても良く、デバイス20のそれぞれの保護スキーム(複数可)を変更できるか否かを制御することができる。いくつかの実施形態において、レジスタ42及び44は、その各々が、デバイス20の特定の部分の書き込み保護の制御に関係することができる。例えば、レジスタ42は、(例えば、不揮発性メモリ38に保存された)WPグループまたはHC WPグループの任意の書き込み保護を選択的に変更するために利用できる。同様に、例えば、レジスタ44は、(例えば、不揮発性メモリ40に保存された)デバイス20の任意のブートパーティションの任意の書き込み保護を選択的に変更するために利用できる。
【0021】
図4は、認証された送信者から受信したときに、レジスタ42及び/またはレジスタ44のレジスタ設定に作用する(例えば、変更する)ことができる、デバイス20によって受信できるコマンド46の三つ
の例を図示する。一実施形態において、これらのレジスタ設定(例えば、WPグループまたはHC WPグループレベルにおけるアクセス保護スキームの
設定[例えば、書き込み保護モード]を含む、デバイス20の
保証されたアクセス保護スキーム)は、デバイス20の電力サイクル及び/またはハードリセットに
対して永続
的であっても良い。例えば、WPグループまたはHC WPグループレベルにおけるアクセス保護スキームは、電力がデバイス20にサイクルされたとき、及び/または(例えば、リセット信号経路におけるリセット信号によって)デバイス20がリセットされたときにはモードが変更されないよう
に永続
的であっても良い。
【0022】
図4は、(例えば、認証されたアクセスを通じてのみ書き込み保護ステータスを変更できる)セキュアWPモードを設定するのに利用される第一のコマンド48信号の受信を図示する。これは、例えば、コマンド信号経路に沿ってホスト32からデバイス20に伝送される第一のコマンド信号48の受信を含む。このコマンド信号48は、例えば、「CMD28」信号と呼ばれることがあり、アドレス指定されたWPグループの一時的な書き込み保護を設定するように動作できる。第二のコマンド信号50は、セキュアWPモードを消去することができる。第二のコマンド信号50も、ホスト32から伝送され、コマンド信号経路に沿ってデバイス20によって受信することができる。第二のコマンド信号50は、例えば、「CMD29」信号と呼ばれることがあり、アドレス指定されたWPグループの一時的な書き込み保護を消去するように動作できる。同じ様に、WP保護をチェックするための第三のコマンド信号52を利用することができる。第三のコマンド信号52も、ホスト32から伝送され、コマンド信号経路に沿ってデバイス20によって受信することができる。この第三のコマンド信号52は、例えば、「CMD31」信号と呼ばれることがあり、アドレス指定されたWPグループから始まる、WPグループの設定のアクセス保護スキームのステータスを提供するように動作できる。
【0023】
一実施形態において、コマンド48、50及び52の任意の一つの受信及び解析は、一つ以上の追加のフィールド(例えば、レジスタ位置)を、デバイス20の拡張
されたカード固有データ(CSD)レジスタに取り込むことによって達成することができる。この拡張されたCSDレジスタは、例えば、デバイスコントローラ34に関連する(例えば、そこに位置する)レジスタであっても良く、デバイス20の構成情報を保存することができる。さらに、拡張されたCSDレジスタのこれらの追加のフィールドを、
図3のレジスタ42として概して図示することができる。レジスタ42における一つの新規のフィールドは、拡張されたCSDレジスタの第一の追加のフィールドであっても良く、例えば、CMD28信号の受信に対してデバイス20の従来の挙動を変更することによって、WPグループレベルにおける一時的な書き込み保護を設定することができる。例えば、この第一の追加のフィールドにおける第一の
指示(例えば、第一の値)を使用して、セキュア書き込み保護の設定についての有効化(例えば、アドレス指定されたWPグループにセキュア書き込み保護を設定するための、発行された/受信されたCMD28の能力の有効化)を示すことができる。その一方で、この第一の追加のフィールドにおける第二の
指示(例えば、第二の値)を使用して、セキュア書き込み保護の設定についての無効化(例えば、アドレス指定されたWPグループにセキュア書き込み保護を設定するための、発行された/受信されたCMD28の能力の無効化)を示すことができる。
【0024】
レジスタ42における第二の追加のフィールドは、これも拡張されたCSDレジスタの一部分であっても良く、例えば、CMD29信号の受信に対してデバイス20の従来の挙動を変更することによって、WPグループレベルにおける一時的な書き込み保護を消去することができる。例えば、この第二の追加のフィールドにおける第一の
指示(例えば、第一の値)を使用して、セキュア書き込み保護の消去についての有効化(例えば、アドレス指定されたWPグループについてのセキュア書き込み保護を消去するための、発行された/受信されたCMD29の能力の有効化)を示すことができる。つまり、アドレス指定されたWPグループが一時的に書き込み保護されていた場合に、発行された/受信されたCMD29は、第一の
指示が第二の追加のフィールドに存在するときに、保護を消去することができる。その一方で、連結されたこの第二の追加のフィールドにおける第二の
指示(例えば、第二の値)を使用して、セキュア書き込み保護の消去についての無効化(例えば、アドレス指定されたWPグループについてのセキュア書き込み保護を消去するための、発行された/受信されたCMD29の能力の無効化)を示すことができる。例えば、第二の
指示が存在するときに、発行された/受信されたCMD29は、(例えば、認証プロセスの正常終了後まで)保護を消去するように動作しなくても良い。それ故に、関連する認証プロセスを実行して、レジスタ42の設定を変更できるか否か、故に、受信したCMD28、CMD29及び/またはCMD31に応答してアクションを行うか否かを決定する。
【0025】
特異的なプロセスを利用して、デバイス20の(例えば、不揮発性ストレージ40に位置できる)ブートパーティションの選択的な書き込み保護を可能にすることができる。このプロセスは、メモリ(例えば、不揮発性メモリ38またはメモリ16)に保存された命令を含むプログラムを実行するコントローラによって実行することができる。さらに、このセキュア書き込み保護メカニズムは、デバイス20の電力サイクル及び/またはハードリセットに関して永続性であっても良い。
【0026】
例えば、一つ以上の追加のフィールド(例えば、レジスタ位置)を、デバイス20の拡張されたCSDレジスタ内に含ませることができる。拡張されたCSDレジスタのこれらの追加のフィールドを、
図3のレジスタ44として概して図示することができる。一実施形態において、コマンド信号経路に沿ってホスト32からデバイス20に伝送された(CMD28、CMD29及び/またはCMD31の一つ以上に類似する特定の実施例のコマンドであっても良い)一つ以上のブートアクセスコマンドを利用して、(信号及び/または送信者の妥当性が認証された時点で)追加のフィールド(例えば、位置)を特定の値に設定することができる。これらのブートアクセスコマンドは、(認証プロセスの正常終了に続いて)、例えば、レジスタ44の第一のフィールドを第一の値に設定して、ブートパーティション(複数可)がセキュア書き込み保護されていないこと(例えば、ブートパーティション(複数可)の書き込み保護の無効化)を示すように動作することができる。ブートアクセスコマンドは、代わりに、(認証プロセスの正常終了に続いて)、例えば、レジスタ44の第一のフィールドを第二の値に設定して、ブートパーティション(複数可)がセキュア書き込み保護されていること(例えば、ブートパーティション(複数可)の書き込み保護の有効化)を示すように動作することができる。同様に、ブートアクセスコマンドは、(認証された時点で)、例えば、レジスタ44の第二のフィールドを第一の値に設定して、レジスタ44の第一のフィールドの書き込み保護が、第一のブートパーティションに適用されていること(または、その欠如)を示すように動作することができる。同じ様に、ブートアクセスコマンドは、(認証された時点で)、例えば、レジスタ44の第二のフィールドを第二の値に設定して、レジスタ44の第一のフィールドの書き込み保護が第二のブートパーティションに適用されていること(または、その欠如)を示すように動作することができる。
【0027】
さらに、ブートアクセスコマンドは、(認証された時点で)、例えば、レジスタ44の第三のフィールドを第一の値に設定して、レジスタ44の第一のフィールドを設定(例えば、変更)することをホスト32が認証されたことを示す、またはレジスタ44の第三のフィールドを第二の値に設定して、レジスタ44の第一のフィールドを設定(例えば、変更)することをホスト32が認証されていないことを示すように動作する(例えば、レジスタ44の第三のフィールドにおける第二の値は、レジスタ44の第一のフィールドを変更するホスト32の能力が無効化されていることを示す)ことができる。その上、いくつかの実施形態において、ブートアクセスコマンドは、(認証された時点で)、例えば、レジスタ44の第四のフィールドを第一の値に設定して、レジスタ44の第一のフィールドがブート領域の複数のパーティションを利用することを示す、またはレジスタ44の第四のフィールドを第二の値に設定して、レジスタ44の第一のフィールドが、レジスタ44の第二のフィールドにおいて選択されたブートパーティションのみを利用することを示すように動作することができる。さらに、いくつかの実施形態において、ブートパーティションにおける保護(第四のフィールド、第二の値)を別に行うようにデバイス20が設定された時点で、この設定が電力サイクルに応答して戻らないことを特に留意すべきである。
【0028】
さらに、レジスタ44の一つ以上のフィールドは、ブート領域の複数の部分(例えば、ブートエリア1及びブートエリア2)が確実に保護されているか否か(例えば、ホスト32によってそれを決定するためのチェックが可能)、ならびに保護のレベルも示すことができる。例えば、レジスタ44の第五のフィールドは、ブートエリア1が確実に書き込み保護されている(例えば、ブートエリアの書き込み保護ステータスを変更することがあり得る前にレジスタ構成を必ず認証するところの認証されたアクセスを通じてのみその書き込み保護ステータスを変更できる)ことを示す第一の値を保存することができる。同様に、レジスタ44の第五のフィールドは、(例えば、電力サイクル及びリセット信号両方に対して)ブートエリア1が永続的に書き込み保護されていることを示す第二の値を保存することができる。さらに、レジスタ44の第五のフィールドは、ブートエリア1が電源オン中に保護されている(例えば、電力がデバイス20にサイクルされたときにその書き込み保護ステータスを変更できない)ことを示す第三の値、及びブートエリア1が書き込み保護されていない(例えば、書き込むことができる)ことを示す第四の値を保存することができる。
【0029】
同様に、例えば、レジスタ44の第六のフィールドは、ブートエリア2が確実に書き込み保護されている(例えば、ブートエリアの書き込み保護ステータスを変更することがあり得る前にレジスタ構成を必ず認証するところの認証されたアクセスを通じてのみその書き込み保護ステータスを変更できる)ことを示す第一の値、及び(例えば、電力サイクル及びリセット信号両方に対して)ブートエリア2が永続的に書き込み保護されていることを示す第二の値を保存することができる。さらに、レジスタ44の第六のフィールドは、ブートエリア2が電源オン中に保護されている(例えば、電力がデバイス20にサイクルされたときにその書き込み保護ステータスを変更できない)ことを示す第三の値、及びブートエリア2が書き込み保護されていない(例えば、書き込むことができる)ことを示す第四の値を保存することができる。レジスタ44の第五の及び第六のフィールドに保存された値の表示を、デバイス20のそれぞれのブート領域の書き込み保護ステータスにおけるチェックに応答してホスト32に伝送できることが認識され得る。
【0030】
先に述べたように、デバイス20のセキュア書き込み保護は、例えば、ホスト32(または、他の
認可された団体)のみがデバイスのアクセス保護の
設定を変更するためのアクセスを有するような、デバイス20の書き込み保護を変更する能力の
保証を含むことができる。これは、認証技術によって達成することができる。この認証技術は、例えば、メモリ(例えば、不揮発性メモリ38及び/またはメモリ16)に
格納された命令を含むプログラムを実行するコントローラによって実行することができる。
【0031】
例えば、
図4に関して前述したCMD28及びCMD29によって実行される関連するアクションは、コマンドCMD28及びCMD29の送信者の認証に続いてならびに/またはコマンドCMD28及びCMD29それら自体の妥当性の認証に続いて達成することができる。この認証技術が、暗号キー、メッセージ認証コード(MAC)(例えば、トークン)、ハンドシェーキング、ならびに/または認証されたユーザからCMD28及びCMD29が受信されたことを確認する他の技術を利用できることが認識され得る。同じ様に、暗号キー、MAC、ハンドシェーキング及び/または他の技術を利用する認証技術を、デバイス20のブートパーティション(ブート部分)の書き込み保護を許可/無効化するためのレジスタ44の設定を可能にするように適用できる。いくつかの実施形態において、認証技術は、SHA−256アルゴリズムなどのセキュアハッシュアルゴリズム(SHA)に基づく、及び/またはそれを利用することができる。
【0032】
いくつかの実施形態において、デバイス20は、再生保護されたメモリブロック(RPMB)エリアを含むことができる。このRPMBによって、メモリの一部分を、セキュリティキーまたは例えば、製造時にデバイス20の一部として含ませることができる信頼できるセキュア機能によってのみアクセスされるようにできる。本認証技術は、例えば、追加のプロシージャを含むための、例えばeMMCデバイスの既存のRPMBプロトコルの拡張を含むことができる。例えば、これらのプロシージャは、コマンドを応用するための、CMD28及びCMD29の送信者の認証を含むことができる。同じ様に、プロシージャは、例えば、デバイス20のブートパーティション(ブート部分)の書き込み保護を許可/無効化するようにレジスタ44を設定するための任意のコマンドの送信者の認証を含むことができる。より具体的には、いくつかの実施形態において、プロシージャは、認証されたセキュアWP構成及びブートセキュアWP設定/リクエスト消去/応答ならびに認証されたセキュアWP構成及びブートセキュアWP読み出しリクエスト/応答を含むことができる。
【0033】
認証技術の使用を通じて実現できる機能性は、例えば、コマンド(例えば、CMD28またはCMD29)に応答してアドレス指定されたグループの書き込み保護を変更(例えば、設定または消去)する能力の有効化または無効化を含むことができる。その上、認証技術の使用を通じて追加的にも実現できる機能性は、例えば、(例えば、レジスタ42または44における)特定の拡張されたCSDフィールドを読み出す能力の有効化または無効化を含むことができる。
【0034】
図5は、例えば、メモリ(例えば、不揮発性メモリ38またはメモリ16)に保存された命令を含むプログラムを実行するコントローラ(例えば、デバイスコントローラ34またはプロセッサ12に統合されたコントローラ)によって実行できる認証技術のプロセス54の実施例を図示する。プロセス54は、例えば、デバイス20の書き込み保護設定を変更するための、RPMBにアクセスする試みのプロセスを詳述する。ステップ56において、アクセス元(例えば、ホスト32)は、例えば、SHA−256アルゴリズムを使用して、カウンタ値を読み出してMAC(トークン)を生成する。ステップ58において、ステップ56から生成されたMACをデバイス20(例えば、デバイス20のデバイスコントローラ34)に伝送して、デバイス20が受信する。デバイスコントローラ34は、例えば、デバイス20の製造期間にプレロードすることができるそのキーならびにカウンタ値を読み出すことができ、ステップ60において、例えば、SHA−256アルゴリズムを使用して、チェックMACを生成する。次に、ステップ62において、デバイスコントローラ34は、二つのMACを比較することができる。MAC同士が一致する場合には、ステップ64においてRPMBアクセスが許可され、ステップ66において、デバイス20の書き込み保護を変更するための、コマンド(例えば、生成されたMACまたはそれぞれのブートアクセスコマンドとともに受信されたCMD28及びCMD29)を変更する書き込み保護が許可される。さもなければ、MAC同士が一致しない場合には、ステップ68において、デバイス20は、任意のコマンド(例えば、CMD28及びCMD29またはそれぞれのブートアクセスコマンド)を変更する書き込み保護に応答しない。
【0035】
いくつかの実施形態において、認証されたアクセスを、例えば、(例えば、レジスタ42及び/または44における)拡張されたCSDフィールドに導き入れるための新規のRPMBリクエスト及び応答オペコードを規定することができる。しかしながら、認証されたアクセスは、他の構造(必ずしも拡張されたCSDでない)にも適用することができる。例えば、下に記載された表内のリクエストメッセージタイプ「認証されたEXT CSD書き込みリクエスト」及び「認証されたEXT CSD読み出しリクエスト」は、認証されたアクセスを前述の拡張されたCSDフィールドに導き入れる追加のリクエストオペコードであっても良い。同様に、リクエストメッセージタイプ「認証されたEXT CSD書き込み応答」及び「認証されたEXT CSD読み出し応答」は、認証されたアクセスを前述の拡張されたCSDフィールドに導き入れる追加の応答オペコードであっても良い。
表1
リクエストメッセージタイプ
0x0001 認証キープログラミングリクエスト
0x0002 書き込みカウンタ値の読み出し−リクエスト
0x0003 認証されたデータ書き込みリクエスト
0x0004 認証されたデータ読み出しリクエスト
0x0005 リザルト読み出しリクエスト
0x0006 認証されたEXT CSD書き込みリクエスト
0x0007 認証されたEXT CSD読み出しリクエスト
応答メッセージタイプ
0x0100 認証キープログラミング応答
0x0200 書き込みカウンタ値の読み出し−応答
0x0300 認証されたデータ書き込み応答
0x0400 認証されたデータ読み出し応答
0x0600 認証されたEXT CSD書き込み応答
0x0700 認証されたEXT CSD読み出し応答
【0036】
図6は、デバイス20のセキュア書き込み保護を設定するための、CMD28と共にリクエストメッセージタイプの一実施例を図示する。より詳しくは、
図6は、ホスト32からデバイス20へのセキュアWPリクエストを図示する。このリクエストは、例えば、(RPMBリクエスト76のデータ72及びアドレス74欄に図示するように)、CMD28によって示される(例えば、認証されたアクセスを通じてのみ書き込み保護ステータスを変更できる)セキュア書き込み保護をWPグループに適用するためのリクエストを含むことができる。さらに、RPMBリクエスト76は、前述の表1の認証されたEXT CSD書き込みリクエストを含むリクエスト欄78を含むことができる。いくつかの実施形態において、この認証されたEXT CSD書き込みリクエストは、前述の認証技術を起動するリクエストとして動作する。
【0037】
さらに、
図6は、禁止されたアクセス保護スキームにおいてデバイス20が正しく設定されたか否かを決定するための、例えば、ホスト32によって起動することができるリザルト読み出しリクエスト80を図示する。リザルト読み出しリクエスト80の実施例は、パケット82として図示する。リザルト読み出しリクエスト80の受信に続いて、デバイス20は、リザルト読み出し応答84をホスト32に出すことができる。このリザルト読み出し応答
84は、禁止されたアクセス保護スキームにおいてデバイス20が正しく設定されたか否かに関連する情報を含むことができる。リザルト読み出し
応答84の実施例は、パケット86として図示する。
【0038】
さまざまな変更及び代替形態が企図されるが、具体的な実施形態を、図面における実施例として示し、本明細書において詳述した。しかしながら、実施形態を、開示した特定の形態に限定することは意図しないことを理解すべきである。むしろ、実施形態は、以下の添付の特許請求の範囲の趣旨及び範囲内に収まるすべての変更物、均等物及び代替物を含むことができる。また、いくつかの実施形態において、「responsive to」などの用語が、そのとき、その後及び/または同等の語などの時間的な語句/アクションを包含し得、さらにまた、「based upon」または「based,at least in part,on」または同様の語などの用語もそれと同等であることに留意すべきである。