JP2017505939A - 認証ストレージアクセスを有するストレージモジュール - Google Patents
認証ストレージアクセスを有するストレージモジュール Download PDFInfo
- Publication number
- JP2017505939A JP2017505939A JP2016538062A JP2016538062A JP2017505939A JP 2017505939 A JP2017505939 A JP 2017505939A JP 2016538062 A JP2016538062 A JP 2016538062A JP 2016538062 A JP2016538062 A JP 2016538062A JP 2017505939 A JP2017505939 A JP 2017505939A
- Authority
- JP
- Japan
- Prior art keywords
- data
- storage
- storage device
- computer
- 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.)
- Pending
Links
- 230000004044 response Effects 0.000 claims abstract 11
- 238000000034 method Methods 0.000 claims description 26
- 238000004519 manufacturing process Methods 0.000 claims description 5
- 230000006870 function Effects 0.000 description 16
- 230000008569 process Effects 0.000 description 6
- 230000008901 benefit Effects 0.000 description 3
- 230000008859 change Effects 0.000 description 3
- 238000005192 partition Methods 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 1
- 239000003990 capacitor Substances 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000012937 correction Methods 0.000 description 1
- 239000013078 crystal Substances 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 239000011521 glass Substances 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000011084 recovery Methods 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
Classifications
-
- 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/79—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 semiconductor storage media, e.g. directly-addressable memories
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Computer Security & Cryptography (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Storage Device Security (AREA)
- General Health & Medical Sciences (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
ストレージモジュールはマスストレージを含む。また、ストレージモジュールは、マスストレージの部分を定義するように構成された第1のレジスタ、マスストレージの部分と関連付けられた鍵、マスストレージの部分に記憶されるデータを受信するように構成された受信機であって、受信されたデータが鍵に基づいたシグナチャデータを含む、受信機、及びシグナチャデータを認証するための認証回路を含んでもよい。ストレージモジュールのコントローラは、シグナチャデータが鍵に基づいて認証されるのに応えてマスストレージの部分の受信されたデータからデータをプログラミングし、シグナチャデータが認証されないことに応えてマスストレージの部分へのデータのプログラミングを拒否するように構成される。【選択図】図3
Description
本願は、全体が参照により全体として本明細書に組み込まれる、2013年12月10日に出願され、「Storage Module with Authenticated Storage Access」と題する米国仮出願第61/914,284号の利益を主張し、米国仮特許出願第61/914,284号に対する優先権を主張する。本願は、それぞれが本願の譲受人に譲受されている、2009年6月4日に出願され、現在は米国特許第8,874,824号として特許を受けている米国出願第12/455,763号、2010年6月23日に出願された米国出願第12/443,481号、及び2005年7月8日に出願され、現在米国特許第7,827,370号として特許を受けている米国出願第11/176,669号に関する。これらの関連出願のそれぞれは、全体として参照することにより本明細書に組み込まれる。
管理NANDストレージモジュール等の管理ストレージモジュールは、フラッシュNANDメモリ等の未処理メモリの使用に優る多くの利点を提供する。通常、管理NANDの場合、NANDメモリと、または他の場合、他のタイプのメモリと結合されたストレージコントローラを含む管理ストレージモジュールは、デバイス製造メーカにいくつかの利点を提供する。ストレージコントローラはメモリ(例えば、NAND)の詳細を隠し、意図されたインタフェース機能及び例えば誤り訂正符号(ECC)サポート等の他の機能を、デバイス製造メーカがホスト側(例えば、スマートフォンまたはタブレット)でそれらの機能を実装する必要なしに提供する。さらに、管理ストレージモジュールは新しい先進機能を、ホストが必ずしも該機能が存在することを認識する必要もなく、ストレージコントローラに実装できるようにする。先進機能は、ホストが機能をサポートするかどうかに応じてストレージコントローラによって活性化される、または活性化されないかのどちらかである。このようにして、管理ストレージモジュールは下位互換性を改善する。
管理ストレージモジュール、及び特に管理NANDストレージモジュールの例は、埋込みマルチメディアカード(eMMC)、ユニバーサルフラッシュストレージ(UFS)、ソリッドステートドライブ(SSD)モジュールを含む。これらのモジュールは、携帯電話、グローバルポジショニングシステム(GPS)装置、メディアプレーヤ、PC、並びにオペレーティングシステムコード、アプリケーション、及び写真と映像等のユーザデータを記憶するためのサーバのような多種多様の用途で使用される。ホスト装置に見えるデータとともに、ストレージモジュール自体の操作コード/ファームウェア(FW)がストレージモジュールのメモリに記憶される。さらに、レジスタデータ及びアドレス変換データ等の、ストレージモジュールを操作するために必要とされる他の重要なデータがメモリに記憶されてよい。
ストレージモジュール上のオペレーティングシステム(OS)コードは、どのようなマルウェアがストレージモジュールを変更するのも防ぐためにセキュリティを必要とすることがある。1つの種類の保護は、OSコードが記憶されるメモリの部分の恒久書込み保護であろう。eMMC用のJEDEC JESD84等のいくつかの規格は、恒久的にまたは電源がリセットまたはいったん切ってすぐに入れ直されるまでのどちらかで、メモリの部分を書込み保護するためのオプションを含む。
ときおり、デバイスの寿命の間、ホスト装置のOSコードまたはストレージモジュールの操作コード/ファームウェア(FW)を更新する必要が出現することがある。1つの係る説明は、全体として参照することにより本明細書に組み込まれる、2010年6月23日に特許協力条約(PCT)第PCT/IB2006/003872号として出願された、米国出願第12/443,481号から見つけることができる。本開示は、メモリの部分の潜在的な書込み保護が更新手順の期間オーバライドされるように、ストレージモジュールでの操作コードの更新プロセスの説明を含む。OSコードを更新するときと同様に、操作コード/ファームウェアは、不注意な変更またはマルウェアによる変更から保護される必要がある場合がある。
図は、説明のためだけに本発明の実施形態を示す。当業者は、以下の説明から、本明細書に説明される構造及び方法の代替実施形態が、本明細書に説明される本発明の原理から逸脱することなく利用できることを容易に認識するだろう。
以下の説明は、当業者が多様な実施形態を作成し、使用できるようにするために提示される。特有の装置、技法、及び用途の説明は実施例としてだけ提供される。本明細書に説明される実施例に対する多様な修正は当業者に容易に明らかになり、本明細書に定義される一般的な原理は、多様な実施形態の精神及び範囲から逸脱することなく他の実施例及び用途に適用されてよい。したがって、多様な実施形態は本明細書に説明され、図示される実施例に制限されることを目的とするのではなく、特許請求の範囲に一致する範囲を与えられることを目的とする。
上述されたように、管理ストレージモジュールはホスト装置用のOSコード及び/またはストレージモジュール用の操作/ファームウェアコードを記憶してよい。これらのコード、データ、または他の情報はマルウェアによる変更に特に敏感であってよい。例えば、マルウェアがこれらのタイプの情報を変更できる場合、ひいてはストレージモジュールを使用するホスト装置のセキュリティも不正アクセスされることがある。eMMCを定義する規格等のいくつかのストレージ規格は、ストレージの定義可能な部分の恒久的なまたは一時的な(つまり、電源がリセットされるまでの)書込み保護を可能にする。この手順の説明は、全体として参照することにより本明細書に組み込まれる、2005年7月8日に出願された米国特許第7,827,370号に見つけられる。
恒久的な書込み保護オプションを使用することは十分なセキュリティを提供する。ただし、上述されたように、OSコードまたは操作/ファームウェアコードを、それらのコードがすでに恒久的に書込み保護されている領域のストレージモジュールにすでに記憶された後に更新することが必要となることがある。これらの場合、新しいコードが真正であるとして認証または検証できる場合にはコードを更新できることはそれでも役に立つだろう。したがって、以下に説明される本発明の実施形態は、データをストレージモジュールの保護された領域に書き込むことを可能にする前にそのデータが真正であると判断する。さらに、以下に説明される本発明の実施形態は、書き込まれるデータのソースのアイデンティティが真正であると判断する(例えば、受信されたデータが信頼できるソースに及び/または共有秘密鍵を知っているソースに由来する旨の検証)。
図1は、例えば、本発明の実施形態を活用してよいスマートフォンまたはタブレット等、例のホスト装置100を示す。ホスト装置100は、容量検出または抵抗検出に基づいてユーザーの接触に反応するタッチディスプレイ102を含む。バス103は、タッチディスプレイ102でのグラフィック及びテキストの表示を処理するグラフィックサブシステムを含んでよいプロセッサ104にタッチディスプレイ102を接続する。また、ホスト装置100は、システムメモリ108(例えば、DRAM)、センサ110(例えば、加速度計、ジャイロスコープ、GPS)、入出力(I/O)112(例えば、スピーカ、マイク、またはキーボード)、及び通信インタフェース114(例えば、USB、WiFi、ブルートゥース(登録商標)、または他の有線インタフェースもしくは無線インタフェース)を含んだ、共有バス106を通してプロセッサ104に接続される多くの他の構成部品も含む。プロセッサ104は、バス122上でストレージモジュール120と接続する(プロセッサ104に代わりに接続されてよいが、プロセッサ104とは分離している)ホストコントローラ118も含んでよい。代わりに、ホストコントローラ118は、共有バス106上でストレージモジュール120と接続してよい。本明細書に説明されるように、ストレージモジュール120は(ストレージデバイスまたはメモリ装置とも呼ばれることがあり)、データが真正であることを、そのデータがストレージモジュールの保護領域に書き込まれることを可能にする前に判断するように構成される。共有バス106とバス122の両方とも、データ、コマンド、クロック信号、電力、リセット等のためのいくつかのバスラインを含んでよい。バス122に含まれるバスラインの実施例は、図2に関して以下に説明される。バッテリ116は、電源バス及び/または電源ライン(不図示)を通して上述された構成部品に電力を提供する。
ストレージモジュール120の使用は、タッチセンサ式のスマートフォンまたはタブレットとの関連で示されるが、本発明は係る装置での使用に制限されていない。本発明の実施形態は、スマートウォッチまたは眼鏡等のウェアラブルコンピュータ、テレビ、カメラ、ネットブック、ゲーム機、パーソナルコンピュータ、サーバ、セットトップボックス等、ストレージを必要とする任意の電子機器に適用され得る。さらに、ホスト装置100のアーキテクチャは例示のためだけに提供され、制限的と見なされるべきではない。
図2は、本発明の実施形態を実装してよいストレージモジュール120の例示的なアーキテクチャを示す。ストレージモジュール120は、プリント基板に取り付けられるように設計されるパッケージ(例えば、ボールグリッドアレイ(BGA)パッケージ)の中に入れられてよい。例えば、ストレージモジュール120は、埋込みマルチメディアカード(eMMc)またはユニバーサルフラッシュストレージ(UFS)モジュールであってよい。代わりに、ストレージモジュール120は、ホスト装置上のスロットの中に納まるリムーバブルカード、またはSSDモジュールもしくはPC/サーバカード/モジュール(例えば、PCIeカード)等のセミリムーバブルデバイスの中に入れられてよい。さらに、ストレージモジュール120は、1台の独立した装置として示されているが、ストレージモジュール120は相互接続された装置の集合体で実装されてもよい。
図2に示されるように、ストレージモジュール120は、マスストレージ202とホスト100(図1を参照)との間でデータを通信するためのストレージコントローラ200を含む。ストレージコントローラ200は、ストレージコントローラ200の動作を制御するための制御回路204を含む。制御回路204は、操作情報を記憶するため、及び/またはストレージモジュール120によって要求されるようにテンポラリストレージを提供するためにバス213上でRAM214に接続されてよい。ストレージコントローラ200は、内部クロックバス207で内部クロック信号を生成するためのクロック生成回路206、ホストコントローラ122(図1を参照)からデータ及びコマンドを受信するための(本明細書では「受信機」と呼ばれることがある)受信機回路208、ホストコントローラ122(図1を参照)にデータ及びステータス情報を送信するための送信機回路210、並びに内部クロッキングの生成に関係する情報を含んだ、ストレージモジュール120の動作に関係する情報及び設定値を記憶するためのレジスタ212も含む。制御回路204は、レジスタ212にアクセスする、またはレジスタ212に情報を書き込むためにバス211を使用してよい。ストレージモジュール120は、データ及びステータス情報を提供してよいデータアウトライン215b及びデータ端末215a、並びにデータ、コマンド、及びステータス情報を提供してよいデータインライン216b及びデータ端末216aを通してホストコントローラ118と通信する。
また、ストレージモジュール120は、クロック生成回路206に基準クロック信号を提供する基準クロックライン218b及び基準クロック端末218a、並びにストレージコントローラ200及びマスストレージ202に電力を提供する電力線220b及び電力端末220aも含む。上記のライン及び端末は、図2で単一のライン及び端末であると示されているが、それぞれのライン及び端末は複数のライン及び端末から構成されてよい。例えば、電力端子220aは、それぞれ個別に、異なる構成部品(例えば、マスストレージ202及びストレージコントローラ200)に電力を提供する電力線220bの内の複数のラインと関連付けられた複数の端末を含んでよい。別の例として、データアウトライン215b及びデータアウト端末215aまたはデータインライン216b及びデータイン端末216aは、2つの端末に接続された2本のライン(例えば、異なる組または2ビット幅のバス)を使用し、実装されてよい。バス222は、ストレージコントローラ200が、マスストレージ202からデータを読み取り、マスストレージ202にデータを書き込むことを可能にする。
また、ストレージモジュール120は、1ビットまたは複数ビットの情報を記憶するためのメモリ回路またはメモリセルを有する1つまたは複数のチップ上にあってよい1つまたは複数のメモリプレーン/バンク上に1つまたは複数のメモリブロックを含むマスストレージ202も含む。例えば、マスストレージ202は、それぞれが1ビット(シングルレベルセル)または複数ビット(マルチレベルセル)のデータを記憶できるメモリセル/回路(例えば、NANDセル)を有するNANDフラッシュメモリ等の不揮発性メモリで実装されてよい。他の形の不揮発性メモリも、本発明から逸脱することなく使用できる。例えば、不揮発性メモリは、相変化メモリ(PCM)、磁気抵抗ランダムアクセスメモリ(MRAM)、抵抗ランダムアクセスメモリ(RRAM)、強誘電ランダムアクセスメモリ(FRAM(登録商標))等を含んでよい。
多様な実装では、マスストレージ202は、それぞれ少なくとも1つのメモリセル、バイト、ワード、または複数のワードと関連付けられる複数のアドレス指定可能記憶場所を含む。したがって、アドレス指定可能記憶場所は、少なくとも1つのメモリプレーン/メモリブランク、少なくとも1つのメモリブロック、少なくとも1つのメモリページ等を含んでよい。また、本明細書に説明されるように、1つまたは複数のアドレス指定可能記憶場所は、メモリの領域または一部を含んでもよい。アドレスは論理アドレスまたは物理アドレスであってよい。
マスストレージ202は、物理的に及び/または論理的に分割されてよい。例えば、マスストレージ202は単一チップとして実装されてよい。代わりに、マスストレージ202は(図2に示されるように)単一のパッケージの中で互いに接続されるいくつかの離散チップで実装されてよい、または代わりに、別々にパッケージ化され、外部で互いに接続されてよい。また、マスストレージ202は、さらにブロックに分割されてよいプレーン/バンクに分割されてもよく、ブロックはさらにページに分割されてよい。ストレージコントローラ200は、ストレージコントローラ200がマスストレージ202からデータを読み取り、マスストレージ202にデータを書き込むことを可能にするバス222を通してマスストレージ202に接続される。
RAM214は、ストレージコントローラ200が、容易に/迅速にアクセスされる必要がある場合がある操作情報(例えば、操作コード及び/または状態情報)を記憶するために使用するメモリである。例えば、RAM214は、論理アドレスがマスストレージ202の物理アドレスにどのようにしてマッピングされるのかを説明する変換テーブルを記憶してよい。RAM214が実装されていない、または十分なRAM214がストレージモジュール120の内部に実装されていない場合、ストレージコントローラ200は、いくつかの場合、代わりに、全体として参照することにより組み込まれる、2009年6月4日に出願された米国特許出願第12/455,763号に説明されるように、ホスト100(図1を参照)のシステムメモリ108の一部を要求し、使用してよい。
クロック生成回路206は、クロック信号を生成できる回路で実装されてよい。例えば、クロック生成回路206は、PLL、発振器、電圧制御発振器、遅延ロックループ、周波数検出器、周波数逓倍器/分周器、位相検出器、これらの回路の組合せ、または任意の他の適切な回路を含んだ共通クロック回復回路及び/またはクロック生成回路を使用し、実装されてよい。クロック生成回路206は、抵抗器、コンデンサ、インダクタ、結晶、またはMEMSデバイス等、他の構成部品に依存してもよい。また、クロック生成回路206は、クロック生成回路が、それが受信する入力に従って変わるクロック信号出力を提供できるようにプログラム可能であってもよい。例えば、クロック生成回路206は、基準クロック信号が基準クロックライン218bに存在するとき非常に高品質(例えば、低ジッタ)のクロック信号を生じさせるように構成されてよい。また、クロック生成回路206は、基準クロック信号が存在しないときより低い質のクロック信号を生じさせるように構成されてもよい。他の実施例として、出力されたクロック信号の周波数、デューティサイクル、ジッタ、出力スキュー、または伝搬遅延は、バス205を通してクロック生成回路206に提供される入力(例えば、制御ビット)に従って設定されてよい。代替アーキテクチャでは、クロック生成回路206は、制御回路204を経由しないでレジスタ212に直接的なアクセスを有する、またはクロック生成回路206はクロック構成情報を記憶するためにそれ自体にとって内部のレジスタを有することがあるだろう。クロック生成回路206はストレージコントローラ200の一部であると示されているが、クロック生成回路206は、本発明から逸脱することなくストレージコントローラ200にとって外部で実装されてもよい。
受信機回路208及び送信機回路210は、ストレージモジュール120がクロック信号なしでよりも速い速度でホスト100にデータを転送し得るように、内部クロックライン207で内部クロック信号を受信する。別の実施形態では、内部クロックライン207は、送信機回路210に対してではなく、受信機回路208に対して内部クロック信号を提供するにすぎない。さらに別の実施形態では、内部クロックライン207は、受信機回路208に対してではなく、送信機回路210に対して内部クロック信号を提供するにすぎない。
レジスタ212は、クロック生成回路206の動作またはストレージモジュール120の他の機能に関する情報を含んだ、ストレージモジュール120の動作に関する1ビットまたは複数ビットの情報を記憶する。レジスタ212は、ストレージコントローラ200の一部として、マスストレージ202の一部として、RAM214の一部として、またはストレージモジュール120内のなんらかの他のメモリ回路の一部として実装されてよい。レジスタ212のために使用されるメモリは任意のタイプであってよい。例えば、レジスタ212は、揮発性(例えば、SRAM、DRAM)、不揮発性(フラッシュ、磁気、抵抗)、ROM、一時プログラム可能、または異なるタイプのメモリの任意の組合せで実装されてよい。
レジスタ212は、例えば、類似したサイズまたは異なるサイズのレジスタ212aから212h等、いくつかの個々のレジスタを含んでよい。例えば、レジスタ212aは1バイトのレジスタであってよい。一方、レジスタ212bから212eは1ビットのレジスタであり、レジスタ212fは4バイトのレジスタである。レジスタ212は、いくつかの特有のタイプの情報を記憶するために使用できる。ある場合、レジスタ212のいくつかは、ストレージモジュール120がどのようにして動作するのか(例えば、サポートされている機能)を説明する読取り専用情報、またはストレージモジュール120が適切に動作するもしくは異なるレベルの性能で動作するための要件(例えば、異なる転送速度のための電流要件)を記憶する。別の場合、レジスタ212のいくつかは、ストレージモジュール120がどのようにして動作するのか、またはどのストレージモジュール120が動作する必要があるのかを構成する書込み可能情報を記憶する。さらに別の場合、レジスタ212のいくつかは、ストレージモジュール120がどのようにして現在動作しているのか、つまりストレージモジュール120の現在の状態についての情報を記憶する。同時に、レジスタ212は、他のタイプのデータとともに上述された異なるタイプの情報のすべてを記憶してもよい。また、レジスタ212は、全体として参照することにより本明細書に組み込まれる、2012年6月に発表されたユニバーサルフラッシュストレージ(UFS 1.1)用のJEDEC規格第220A号に説明されるように記述子、フラグ、及び属性を実装するために使用されてもよい。
ある場合、レジスタ212は(恒久的にまたは一時的に)書込み保護されるマスストレージ202の領域を説明する情報を記憶する。例えば、レジスタ212fは、アドレス範囲、ブロック範囲、パーティション、または領域を定義する同様なものを定義してよい。例えば、レジスタ212g等、別のレジスタは、領域が恒久的に書込み保護されるのか、一時的に書込み保護されるのか、それとも認証書込み保護されるのかを定義してよい。恒久書込み保護または一時書込み保護の場合、領域は、上記に参照により組み込まれた米国特許第7,827,370号に説明されるように保護される。ただし、認証書込み保護されている領域の場合、領域は、書き込まれるデータの認証が成功する場合、例えばプログラミングされる等、書き込まれてよい。この機能の実装は、本発明の多様な実施形態に関して以下に説明される。
制御回路204は、1台または数台の状態機械を含んでよい。代わりに、別の実施例として、制御回路204は、ストレージモジュール120を制御するようにプログラミングされる汎用のプロセッサまたはマイクロコントローラを含んでよい。例えば、ファームウェアでプログラミングされたプロセッサは、ストレージモジュール120の動作を支配する1台または複数の状態機械を実装してよい。制御回路204をプログラミングするためのファームウェアまたは他のソフトウェアは、専用のストレージに、またはマスストレージ202上の確保された記憶領域に記憶されてよい。別の代替策として、制御回路204は、ファームウェア等でプログラミングされた汎用プロセッサ及び特有の機能を実行する特殊目的回路網の組合せとして実装されてよい。
制御回路204が制御するストレージモジュール120の態様の中にあるのがクロック生成回路206の動作である。特に、レジスタ212に記憶される情報、及びいくつかの実施例ではレジスタ212にまたは代わりにRAM214にも記憶されてよい状態情報を使用し、制御回路204は、内部クロック信号の動作を制御できるクロック生成回路206に制御情報(例えば、制御ビット)を供給する。
制御回路204の他の機能は、特定の機能を実行するために、例えば受信機回路208を介して、ホスト100からコマンド信号を受信することを含む。例えば、制御回路204は、レジスタ212から情報を読み取るために、またはレジスタ212に情報を書き込むためにホスト100からコマンド信号を受信してよい。例えば、制御回路204は、ストレージモジュール120の状態(例えば、電力状態、プログラミング状態等)を記憶する場所のレジスタ212を読み取るためのコマンドを受信してよい。
図2のアーキテクチャは説明を容易にするためだけの実施例であり、本発明に対して制限的と見なされるべきではないことが理解されるべきである。回路、バス、ライン、モジュール等は、簡略化された、除外された、またはそれ以外の場合図2の他の構成部品と結合された可能性がある。例えば、ストレージモジュール120は、バス207、205、213、211、及び222を有すると示される。これらのバスは、本明細書に説明された本発明の精神から逸脱することなく、除去されてよい、結合されてよい、ルートを変更されてよい、及び/または追加されてよい。別の実施例として、制御回路204の機能性は、上述されたことにわたって大幅に拡大されてよい、または制御回路204による上述された機能は異なる回路全体で拡散されてよい。
図3は、本発明の第1の実施形態を実装するための例示的なプロセス300を示す。プロセスは、ハードウェア、ソフトウェア、またはその組合せで実装できる動作のシーケンスを表す論理フローグラフとして示されている。動作は、1台または複数のプロセッサによって実行されるときに、列挙された動作を実行する実行可能命令を表してよい。実行可能命令は、特定の機能を実行するルーチン、プログラム、オブジェクト、構成部品、モジュール、データ構造等を含んでよい。動作が説明される順序は、制限として解釈されることを目的とせず、任意の数の説明された動作はプロセスを実装するために任意の順序で及び/または並行して結合できる。実行可能命令は、コンピュータ可読命令、データ構造、プログラムモジュール、または他のデータ等の情報の記憶のための任意の方法または技術で実装される揮発性の及び不揮発性の取外し可能な媒体及び取外しができない媒体を含んだコンピュータ記憶媒体に記憶されてよい。コンピュータ記憶媒体は、ランダムアクセスメモリ(RAM)、読出し専用メモリ(ROM)、電気的消去可能ROM(EEPROM)、フラッシュメモリ、または他のメモリ技術、磁気記憶装置、もしくはホスト装置によってまたはストレージモジュールによるアクセスのための情報を記憶するために使用できる他の非伝送媒体を含むが、これに限定されるものではない。
ステップ302で、ホスト100は、マスストレージ202の保護領域(例えば、メモリの領域または部分)にプログラムされるまたは書き込まれるデータを送信する。このステップは、ストレージモジュール120に、保護領域への書込みが要求されていることを知らせるために特殊引数を有する標準的な書込みコマンドの形をとってよい。このステップのための他の代替策は、ストレージモジュール120が書込みコマンドの宛先アドレスに基づいて保護領域用であると検出する特殊コマンドまたは一般コマンドを含むが、これに限定されるものではない。レジスタ212は、ストレージモジュール120の、論理または物理どちらかのメモリの領域、及び領域が受ける保護のタイプまたは領域に適用される保護のタイプを定義してよい。例えば、レジスタは、物理または論理アドレス、パーティション(複数の場合がある)、ブロック等の関数として領域を定義してよく、別のレジスタは、例えば2ビットの保護のタイプを定義してよい。『00』は保護なしを意味し、『01』はストレージモジュールをいったん切ってすぐに入れ直すときにクリアされる一時書込み保護を意味し、『10』は、データが(例えば、鍵に対して)認証される場合にだけ書き込みが許されることを意味する認証保護を意味し、『11』は、領域が全ての書込みから恒久的に保護されることを意味する。領域が認証書込み保護される場合(例えば、上述された『10』を指定する2ビット)、次いで書き込まれるまたはプログラミングされるデータの認証は、データが領域に書き込まれるまたはプログラミングされる前に検証されなければならない。
多様な実装では、データを送信する前に、ホスト100は、データシグナチャを用いて書き込まれるまたはプログラミングされるデータに署名してよい。例えば、データは、例えばプログラミングまたは書き込まれるデータに対して、領域を変更するために、信頼される者(例えば、ホストまたはストレージモジュールの製造メーカ)によってだけ知られるべきである秘密鍵で、データにシグナチャ機能を実行する結果である認証データを加えることによって署名されてよい。したがって、書込みアクセスは、第2のデータがプログラミングされるまたは保護領域に書き込まれることを検証するためにストレージモジュールが認証してよい第1のデータを含んでよい。任意選択で、書き込まれるまたはプログラミングされるデータは同じ鍵または異なる鍵を使用し、暗号化されてもよい。いくつかの実施例では、シグナチャデータは、シグナチャデータが、鍵を知っているエンティティによって認証できるようにプログラミングされるまたは書き込まれるデータと、鍵の両方に基づいてよい。署名する(及びデータを認証する)1つの係る方法は、全体として参照することにより組み込まれる2012年6月に発表されたJEDEC規格第JESD84−B451号に見つけられる。特に、第6.6.22.4.3項は、データに署名するための1つの例示的な方法を説明する。
ステップ304で、プログラミングされるまたは保護領域(例えば、メモリの領域)に書き込まれるデータがストレージモジュール120で受信される。データは、マスストレージ202の一時領域に記憶されてよい、または代わりに、データは、データのすべてがストレージモジュール120で受信される前に認証されてよい。いったん認証されると、データは、一時書込み場所を使用する必要なく、マスストレージ202の保護領域に直接的に記憶されてよい。
ステップ306で、データのすべてを受信した後、またはいくつかの場合、データのなんらかの部分、データまたはデータの部分と関連付けられたシグナチャデータは、例えば受信データから抽出される。上記に参照されたJEDEC規格第JESD84−B451号は、このステップを実行する1つの例示的な方法を説明する。
ステップ308で、シグナチャデータがいったん抽出されると、シグナチャデータは認証される。これは、シグナチャデータとプログラミングされるまたは領域に書き込まれるデータのすべての両方を受信していることを必要とすることがある。例えば、ストレージコントローラ200は、例えばストレージモジュール120及び/またはホスト100の製造中にストレージモジュール120内に記憶される秘密鍵に基づいてシグナチャデータを再計算する回路網を(例えば、制御204内に)有してよい。306からのシグナチャデータが再計算されたシグナチャデータに一致する場合、製造メーカだけが秘密鍵を知っているので、次いでプログラミングされるまたは書き込まれる受信データは認証されたまたは検証されたと見なされてよい。
ステップ310で、データが無事に認証される場合、次いでデータはプログラミングされる、または保護領域(例えば、メモリの領域)に書き込まれる。代わりに、受信データが暗号化される場合、次いで暗号化されていないデータはプログラミングされるまたは保護領域に書き込まれる。データは、データのどれも書き込まれていないこと、またはデータのすべてが書き込まれていることのどちらかを保証するアトミック書込みとして書き込まれてよい。
ステップ312で、データが無事に認証されない場合、次いでデータはプログラミングされない、または保護領域に書き込まれない(例えば、メモリの領域は、メモリの領域にデータが書き込まれることから保護される)。ストレージモジュール120は、ホスト100に対して認証失敗を示すエラーを発することがある。
第2の実施形態では、レジスタは、第1の実施形態に関して説明されたのと同様に、保護されるメモリの領域を定義する。ただし、メモリの保護領域への書込みを認証する代わりに、データの認証は、メモリの保護領域のための1個または複数の保護ビットを含むレジスタを(一時的にまたは恒久的に)クリアし、それによってメモリの保護領域へのデータの書込みを可能にする。データは、データのどれも書き込まれていないこと、またはデータのすべてが書き込まれていることのどちらかを保証するアトミック書込みとして書き込まれてよい。いったんデータがプログラミングされるまたは領域に書き込まれると、書込み保護は自動的にまたは追加コマンドを通してのどちらかで復元されてよい。
本開示の実施形態は、例えばマスストレージ202等、データを記憶するための手段を含んだストレージデバイスを含む。ストレージデバイスは、例えばレジスタ212Aから212Hの内の1つまたは複数等、認証書込み保護されているとしてストレージの論理部分を定義するための手段を含む。ストレージデバイスは、例えば、ライン216b及びデータ端末216aのデータ等、第1のデータ及び第2のデータを受信するための手段をさらに含む。ストレージデバイスは、第1のデータを認証するための、及び例えばストレージコントローラ200等、第1のデータの認証後にストレージの論理部分への第2のデータの書込みを可能にするための手段をさらに含む。
特徴は特定の実施形態に関連して説明されているように見えるが、当業者は、説明される実施形態の多様な特徴が結合されてよいことを認識するだろう。さらに、実施形態との関連で説明された態様は独立してよい。
Claims (31)
- 複数のアドレス指定可能記憶場所であって、前記複数のアドレス指定可能記憶場所の各アドレス指定可能記憶場所が少なくとも1つのメモリセルを有し、集合的にストレージを形成する前記複数のアドレス指定可能記憶場所と、
認証書込み保護されているとして前記ストレージの論理部分を定義するための1つまたは複数のレジスタと、
第1のデータ及び第2のデータを受信するための受信機と、
前記第1のデータを認証するため、及び前記第1のデータの前記認証後に前記ストレージの前記論理部分への前記第2のデータの書込みを可能にするための少なくとも1台のコントローラと、
を備えるストレージデバイス。 - 前記ストレージの前記論理部分への前記第2のデータの書込みを可能にすることが、前記1つまたは複数のレジスタと関連付けられた1個または複数の保護ビットをクリアすることを含む、請求項1に記載の前記ストレージデバイス。
- 前記第1のデータを認証できないことに応えて、前記少なくとも1台のコントローラが前記1個または複数の保護ビットをクリアしない、請求項2に記載の前記ストレージデバイス。
- 前記1個または複数の保護ビットをクリアすることに応えて、前記少なくとも1台のコントローラが前記ストレージの前記論理部分に記憶される前記第2のデータの少なくとも一部を受信する、請求項2に記載の前記ストレージデバイス。
- 前記第1のデータがシグナチャデータを備える、請求項1から請求項4のいずれか1つに記載の前記ストレージデバイス。
- 前記第1のデータを前記認証することが、少なくとも部分的に鍵に基づいて前記第1のデータを認証することを含む、請求項1から請求項5のいずれか1つに記載の前記ストレージデバイス。
- 前記鍵が前記ストレージの前記論理部分と関連付けられ、前記鍵が、前記ストレージデバイスに動作可能なように接続されたホスト装置の製造中に前記ストレージの中に記憶される、請求項6に記載の前記ストレージデバイス。
- 前記ストレージデバイスがユニバーサルフラッシュストレージ(UFS)モジュールを備える、請求項1から請求項7のいずれか1つに記載の前記ストレージデバイス。
- 前記ストレージデバイスが埋込みマルチメディアカード(eMMC)を備える、請求項1から請求項7のいずれか1つに記載の前記ストレージデバイス。
- 実行時、
認証書込み保護されているとしてストレージの論理部分を定義する、
ホスト装置から第1のデータ及び第2のデータを受信する、
前記第1のデータを認証する、及び
前記第1のデータの前記認証後に前記ストレージの前記論理部分への前記第2のデータの書込みを可能にする
ようにストレージデバイスを構成する命令を備える1つまたは複数のコンピュータ記憶媒体。 - 前記ストレージの前記論理部分への前記第2のデータの書込みを可能にすることが、認証書込み保護されているとして前記ストレージの前記論理部分を定義する1個または複数の保護ビットをクリアすることを含む、請求項10に記載の前記1つまたは複数のコンピュータ記憶媒体。
- 前記第1のデータを認証できなかったことに応えて、前記1個または複数の保護ビットをクリアしないことをさらに含む、請求項11に記載の前記1つまたは複数のコンピュータ記憶媒体。
- 前記1個または複数の保護ビットを前記クリアすることに応えて、前記ストレージの前記論理部分に記憶される前記第2のデータの少なくとも一部を受信することをさらに含む、請求項11に記載の前記1つまたは複数のコンピュータ記憶媒体。
- 前記第1のデータがシグナチャデータを備える、請求項10から請求項13のいずれか1つに記載の前記1つまたは複数のコンピュータ記憶媒体。
- 前記第1のデータの前記認証が、少なくとも部分的に鍵に基づいて前記第1のデータを認証することを含む、請求項10から請求項14のいずれか1つに記載の前記1つまたは複数のコンピュータ記憶媒体。
- 前記鍵が前記ストレージの前記論理部分と関連付けられ、前記鍵が、前記ストレージデバイスに動作可能なように接続されたホスト装置の製造中に前記ストレージデバイスの中に記憶される、請求項15に記載の前記1つまたは複数のコンピュータ記憶媒体。
- 前記ストレージデバイスがユニバーサルフラッシュストレージ(UFS)モジュールを備える、請求項10から請求項16のいずれか1つに記載の前記1つまたは複数のコンピュータ記憶媒体。
- 前記ストレージデバイスが埋込みマルチメディアカード(eMMC)を備える、請求項10から請求項16のいずれか1つに記載の前記1つまたは複数のコンピュータ記憶媒体。
- 1台または複数のストレージコントローラによって、認証書込み保護されているとしてストレージデバイスと関連付けられたストレージの論理部分を定義することと、
1台または複数のストレージコントローラによってホスト装置から第1のデータ及び第2のデータを受信することと、
1台または複数のストレージコントローラによって前記第1のデータを認証することと、
1台または複数のストレージコントローラによって、前記第1のデータの前記認証後に前記ストレージの前記論理部分への前記第2のデータの書込みを可能にすること、
を含む、コンピュータ実装方法。 - 前記ストレージの前記論理部分への前記第2のデータの書込みを可能にすることが、認証書込み保護されているとして前記ストレージの前記論理部分を定義する1個または複数の保護ビットをクリアすることを含む、請求項19に記載の前記コンピュータ実装方法。
- 前記第1のデータを認証することができないことに応えて、前記1個または複数の保護ビットをクリアしないことをさらに含む、請求項20に記載の前記コンピュータ実装方法。
- 前記1個または複数の保護ビットを前記クリアすることに応えて、前記ストレージの前記論理部分に記憶される前記第2のデータの少なくとも一部を受信することをさらに含む、請求項20に記載の前記コンピュータ実装方法。
- 前記第1のデータがシグナチャデータを含む、請求項19から22のいずれか1つに記載の前記コンピュータ実装方法。
- 前記第1のデータの前記認証が、少なくとも部分的に鍵に基づいて前記第1のデータを認証することを含む、請求項19から請求項23のいずれか1つに記載の前記コンピュータ実装方法。
- 前記鍵が前記ストレージの前記論理部分と関連付けられ、前記鍵が、前記ストレージデバイスに動作可能なように接続されたホスト装置の製造中に前記ストレージデバイスの中に記憶される、請求項24に記載の前記コンピュータ実装方法。
- 前記ストレージデバイスがユニバーサルフラッシュストレージ(UFS)モジュールを備える、請求項19から請求項25のいずれか1つに記載の前記コンピュータ実装方法。
- 前記ストレージデバイスが埋込みマルチメディアカード(eMMC)を備える、請求項19から請求項25のいずれか1つに記載の前記コンピュータ実装方法。
- ストレージデバイスに第1のデータ及び第2のデータを送信するためのホストコントローラを備えるホスト装置であって、前記第1のデータが、前記ストレージデバイスによる認証に応えて、前記ストレージデバイスと関連付けられたストレージの論理部分への前記第2のデータの書込みを可能にするシグナチャデータを備える、ホスト装置。
- 前記ホスト装置が、少なくとも部分的に鍵の使用に基づいて前記シグナチャデータを生成するために前記第1のデータに署名する、請求項28に記載の前記ホスト装置。
- 前記鍵は、前記ホスト装置の製造中に前記ホスト装置の中に記憶される、請求項29に記載の前記ホスト装置。
- 複数のアドレス指定可能記憶場所であって、前記複数のアドレス指定可能記憶場所の各アドレス指定可能記憶場所が少なくとも1つのメモリセルを有し、集合的にストレージを形成する前記複数のアドレス指定可能記憶場所と、
認証書込み保護されているとして前記ストレージの論理部分を定義するための1つまたは複数のレジスタと、
第1のデータ及び第2のデータを受信するための受信機と、
少なくとも部分的に鍵に基づいて前記第1のデータを認証するための少なくとも1台のコントローラと、
を備え、
認証の成功に応えて、前記少なくとも1台のコントローラが、前記1つまたは複数のレジスタと関連付けられた1個または複数の保護ビットをクリアし、
前記1個または複数の保護ビットを前記クリアすることに応えて、前記ストレージの前記論理部分への前記第2のデータの書込みが可能にされる、
ストレージデバイス。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201361914284P | 2013-12-10 | 2013-12-10 | |
US61/914,284 | 2013-12-10 | ||
PCT/US2014/069620 WO2015089234A1 (en) | 2013-12-10 | 2014-12-10 | Storage module with authenticated storage access |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2017505939A true JP2017505939A (ja) | 2017-02-23 |
Family
ID=52146771
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2016538062A Pending JP2017505939A (ja) | 2013-12-10 | 2014-12-10 | 認証ストレージアクセスを有するストレージモジュール |
Country Status (4)
Country | Link |
---|---|
US (1) | US20150161399A1 (ja) |
EP (1) | EP3080744A1 (ja) |
JP (1) | JP2017505939A (ja) |
WO (1) | WO2015089234A1 (ja) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10257192B2 (en) * | 2014-05-29 | 2019-04-09 | Samsung Electronics Co., Ltd. | Storage system and method for performing secure write protect thereof |
CN105069381B (zh) * | 2015-08-03 | 2019-01-29 | 惠州Tcl移动通信有限公司 | 一种基于智能终端的分区保护方法及系统 |
US10691610B2 (en) * | 2017-09-27 | 2020-06-23 | Apple Inc. | System control using sparse data |
JP2021517409A (ja) * | 2018-03-23 | 2021-07-15 | マイクロン テクノロジー,インク. | ストレージデバイスの認証修正 |
KR20210154803A (ko) * | 2019-04-19 | 2021-12-21 | 인텔 코포레이션 | 다중 모드 보호 메모리 |
US11184170B2 (en) * | 2019-06-28 | 2021-11-23 | Micron Technology, Inc. | Public key protection techniques |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6976136B2 (en) * | 2001-05-07 | 2005-12-13 | National Semiconductor Corporation | Flash memory protection scheme for secured shared BIOS implementation in personal computers with an embedded controller |
EP1615225B1 (en) | 2004-07-08 | 2009-01-28 | Nokia Corporation | Method for partial permanent write protection of a memory card and corresponding memory card |
US20080250509A1 (en) * | 2007-04-04 | 2008-10-09 | Nokia Corporation | Write Protection For Memory Devices |
DE102009018222A1 (de) * | 2009-04-21 | 2010-10-28 | Giesecke & Devrient Gmbh | Schreibzugriff auf einen portablen Datenträger |
-
2014
- 2014-12-10 EP EP14819232.1A patent/EP3080744A1/en not_active Withdrawn
- 2014-12-10 US US14/566,566 patent/US20150161399A1/en not_active Abandoned
- 2014-12-10 JP JP2016538062A patent/JP2017505939A/ja active Pending
- 2014-12-10 WO PCT/US2014/069620 patent/WO2015089234A1/en active Application Filing
Also Published As
Publication number | Publication date |
---|---|
WO2015089234A1 (en) | 2015-06-18 |
US20150161399A1 (en) | 2015-06-11 |
EP3080744A1 (en) | 2016-10-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10372629B2 (en) | Control for authenticated accesses to a memory device | |
US11016678B2 (en) | Channel optimized storage modules | |
US11615035B2 (en) | Storage system and method for performing and authenticating write-protection thereof | |
US10324864B2 (en) | Storage system and method for performing and authenticating write-protection thereof | |
JP2017505939A (ja) | 認証ストレージアクセスを有するストレージモジュール | |
US9678760B2 (en) | Memory card and storage system having authentication program and method for operating thereof | |
US9405707B2 (en) | Secure replay protected storage | |
CN110457236B (zh) | 存储系统以及对存储系统执行和验证写保护的方法 | |
US9411748B2 (en) | Secure replay protected storage | |
US20140095853A1 (en) | Alternative boot path support for utilizing non-volatile memory devices | |
US20170168747A1 (en) | Intelligent memory support for platform reset operation | |
EP4020296B1 (en) | Operating method of storage device setting secure mode of command, and operating method of storage system including the storage device | |
US20150160863A1 (en) | Unified memory type aware storage module | |
US20150160873A1 (en) | Filesystem tuned firmware for storage modules | |
CN114510752A (zh) | 数据存储装置及操作数据存储装置的方法 |