(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-01-04
(45)【発行日】2024-01-15
(54)【発明の名称】記憶装置
(51)【国際特許分類】
G06F 21/71 20130101AFI20240105BHJP
G06F 21/60 20130101ALI20240105BHJP
H01L 21/822 20060101ALI20240105BHJP
H01L 27/04 20060101ALI20240105BHJP
【FI】
G06F21/71
G06F21/60 320
H01L27/04 H
H01L27/04 V
(21)【出願番号】P 2021041646
(22)【出願日】2021-03-15
【審査請求日】2023-01-25
(73)【特許権者】
【識別番号】000003078
【氏名又は名称】株式会社東芝
(73)【特許権者】
【識別番号】317011920
【氏名又は名称】東芝デバイス&ストレージ株式会社
(74)【代理人】
【識別番号】110002147
【氏名又は名称】弁理士法人酒井国際特許事務所
(72)【発明者】
【氏名】荒牧 康人
【審査官】吉田 歩
(56)【参考文献】
【文献】特開2015-036847(JP,A)
【文献】特開2001-156255(JP,A)
【文献】特開2012-069565(JP,A)
【文献】特開2017-163030(JP,A)
【文献】米国特許出願公開第2005/0060595(US,A1)
【文献】国際公開第2012/070635(WO,A1)
【文献】米国特許出願公開第2015/0067368(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 21/71
G06F 21/60
H01L 21/822
(57)【特許請求の範囲】
【請求項1】
演算装置が実装されたSoCと、
前記SoCを介して制御される記憶媒体と、
出力装置が前記演算装置へクロック信号を出力するために前記出力装置と該演算装置とを接続し、かつ前記SoC内に実装された
信号線、または、前記演算装置へ電力を供給し、かつ前記SoC内に実装された電源線に設置されており、前記演算装置への外部からの入力により
ファームウェアによって切断されるフューズと、
前記SoCに対応する固有の固有値が書き換え不能に記憶され、該SoCに実装された第1記憶部と、
前記記憶媒体の駆動に必要な第1制御パラメータに対して前記固有値を用いた第1処理を行うことにより、再び該固有値を用いて使用できるような状態にして該第1制御パラメータを記憶する第2記憶部と、
を備えた記憶装置。
【請求項2】
前記記憶媒体は、ユーザデータを記憶する第1領域と、前記第1領域からの前記ユーザデータの読み出しに必要な第2制御パラメータに対して前記固有値を用いた第2処理を行うことにより、再び該固有値を用いて使用できるような状態にして該第2制御パラメータを記憶した第2領域と、を有する請求項
1に記載の記憶装置。
【請求項3】
前記固有値を用いてデータを暗号化する暗号化部を、さらに備え、
前記第2記憶部は、前記第1処理として前記暗号化部により前記固有値を用いて暗号化処理がされた前記第1制御パラメータを記憶し、
前記記憶媒体は、前記第2領域に、前記第2処理として前記暗号化部により前記固有値を用いて暗号化処理がされた前記第2制御パラメータを記憶した請求項
2に記載の記憶装置。
【請求項4】
前記第2記憶部は、前記第1処理として前記暗号化部により前記固有値を用いて暗号化処理がされた、前記第1制御パラメータおよび該第1制御パラメータを検証するための第1検証値を記憶し、
前記記憶媒体は、前記第2領域に、前記第2処理として前記暗号化部により前記固有値を用いて暗号化処理がされた、前記第2制御パラメータおよび該第2制御パラメータを検証するための第2検証値を記憶した請求項
3に記載の記憶装置。
【請求項5】
前記記憶媒体は、前記第2領域に、前記暗号化部により前記固有値を用いて暗号化された、前記第1領域に記憶されたユーザデータを暗号化および復号するための暗号鍵を記憶した請求項
3または
4に記載の記憶装置。
【請求項6】
前記第2記憶部は、前記第1処理として、前記第1制御パラメータから前記固有値を用いて生成された第1検証値と共に前記第1制御パラメータを記憶し、
前記記憶媒体は、前記第2領域に、前記第2処理として、前記第2制御パラメータから前記固有値を用いて生成された第2検証値と共に前記第2制御パラメータを記憶する請求項
2に記載の記憶装置。
【請求項7】
前記演算装置は、前記第1検証値を用いた前記第1制御パラメータの検証に失敗した場合、または前記第2検証値を用いた前記第2制御パラメータの検証に失敗した場合、動作を停止する請求項
4または
6に記載の記憶装置。
【請求項8】
前記演算装置は、前記第1検証値を用いた前記第1制御パラメータの検証に失敗した場合、または前記第2検証値を用いた前記第2制御パラメータの検証に失敗した場合、前記フューズを切断する請求項
4または
6に記載の記憶装置。
【発明の詳細な説明】
【技術分野】
【0001】
本発明の実施形態は、記憶装置に関する。
【背景技術】
【0002】
HDD(Hard Disk Drive)等の記憶装置を使用するユーザ(例えば、データセンター企業または行政サービス機関等)が不要になった記憶装置を廃棄する場合、多くは廃棄処理業者に廃棄を依頼する。その後、廃棄依頼された記憶装置は、廃棄処分されることが前提とされるが、一部不正な処理として廃棄の依頼主であるユーザに通知されることなく、またはユーザの許可を得ることなく、リユース品またはネットオークション品等として再度市場に流通することがある。これにより記憶装置に記憶された重要情報(例えば、顧客情報、個人情報、営業秘密等の秘密情報)が第三者へ流出する場合があり、重要情報が流出するだけでなく、リユース品等として再度市場に流通することを防止することが望まれる。
【先行技術文献】
【特許文献】
【0003】
【文献】特開2006-172451号公報
【文献】特開2019-122046号公報
【文献】特開2003-108257号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
一つの実施形態は、安全に廃棄することができる記憶装置を提供することを目的とする。
【課題を解決するための手段】
【0005】
一つの実施形態によれば、記憶装置は、SoCと、記憶媒体と、フューズと、第1記憶部と、第2記憶部と、を備える。SoCは、演算装置が実装される。記憶媒体は、SoCを介して制御される。フューズは、出力装置が演算装置へクロック信号を出力するために出力装置と演算装置とを接続し、かつSoC内に実装された信号線、または、演算装置へ電力を供給し、かつSoC内に実装された電源線に設置されており、演算装置への外部からの入力によりファームウェアによって切断される。第1記憶部は、SoCに対応する固有の固有値が書き換え不能に記憶され、SoCに実装される。第2記憶部は、記憶媒体の駆動に必要な第1制御パラメータに対して固有値を用いた第1処理を行うことにより、再び固有値を用いて使用できるような状態にして第1制御パラメータを記憶する。
【図面の簡単な説明】
【0006】
【
図1】
図1は、記憶装置の廃棄の流れの一例を説明する図である。
【
図2】
図2は、暗号記憶装置の破棄の流れの一例を説明する図である。
【
図3】
図3は、故障した記憶装置の廃棄の流れの一例を示す図である。
【
図4】
図4は、第1の実施形態の記憶装置の廃棄の流れを示す図である。
【
図5】
図5は、第1の実施形態の記憶装置の構成の一例を示す図である。
【
図6】
図6は、第1の実施形態の記憶装置におけるSoCのe-fuseの接続構成の一例を示す図である。
【
図7】
図7は、第1の実施形態の記憶装置における制御パラメータおよび暗号鍵の格納の態様の一例を示す図である。
【
図8】
図8は、第1の実施形態の記憶装置の取り扱いおよび処理の流れの一例を示すフローチャートである。
【
図9】
図9は、第1の実施形態の記憶装置に対する同一のモデルの記憶装置からの部品交換の一例を示す図である。
【
図10】
図10は、第2の実施形態の記憶装置における制御パラメータの格納の態様の一例を示す図である。
【
図11】
図11は、第2の実施形態の記憶装置の取り扱いおよび処理の流れの一例を示すフローチャートである。
【発明を実施するための形態】
【0007】
以下に、実施形態に係る記憶装置を図面に基づいて詳細に説明する。なお、これらの実施形態における構成要素には、当業者が置換可能、かつ、容易なもの、または、実質的に同一のものが含まれ、以下の実施形態によりこの発明が限定されるものではない。また、実施形態に係る記憶装置として、以下、SoC(System on a Chip)を搭載したHDDを例として説明するが、これに限定されるものではなく、SoCを搭載したSSD(Solid State Drive)または半導体メモリ等の記憶装置でも適用可能である。
【0008】
(第1の実施形態)
図1は、記憶装置の廃棄の流れの一例を説明する図である。
図2は、暗号記憶装置の破棄の流れの一例を説明する図である。
図3は、故障した記憶装置の廃棄の流れの一例を示す図である。
図1~
図3を参照しながら、従来の記憶装置の廃棄の流れについて説明する。
【0009】
まず、
図1に示す例では、廃棄対象となるHDD500をユーザ側で何ら処置をすることなく廃棄処理業者に廃棄依頼をした場合の流れを示している。通常、廃棄依頼を受けた廃棄処理業者は、廃棄対象となるHDD500を分解または破壊等を行って廃棄を行う。しかし、一部不正を図る廃棄処理業者は、
図1に示すように、不正な処理として廃棄の依頼主であるユーザに通知されることなく、またはユーザの許可を得ることなく、HDD500をリユース品またはネットオークション品等として再度市場に流通させる場合がある。これにより、当該HDD500の購入者である第三者は、HDD500に記憶された重要情報(例えば、顧客情報、個人情報、営業秘密等の秘密情報)が取得できることになり、情報漏洩のリスクが非常に高いことになる。
【0010】
また、顧客情報等の重要情報の流出を防ぐために、ユーザ側の責任において、廃棄処理業者に廃棄依頼する前に、顧客情報等の重要情報を消去することが考えられる。しかし、一般にHDD等の記憶装置では、大容量化に伴い上書き消去に時間がかかることになる。そのため、短時間で安全に消去するために暗号機能付きのHDD(以下、「暗号HDD」と称する場合がある)を使用することが推奨される。この場合、
図2に示す例のように、ユーザは、暗号HDDであるHDD500を廃棄する場合には、予め暗号鍵EK10のみを消去して廃棄処理業者に廃棄依頼することになる。しかし、重要情報自体は破損せずに保存された状態のままであり、かつSoC等の機能は正常のまま、HDD500が第三者にわたることになるので、好ましい状態とは言えない。
【0011】
また、暗号HDDを使用していても、暗号鍵EK10を消去する前に記憶媒体であるディスクが回転しなくなる等の故障が発生した場合には、暗号鍵EK10は、通常ディスク内に保存されていることが多いため、暗号鍵EK10を消去することが不可能になる。
図3に示す例では、ディスクが回転しなくなる等の故障が発生した暗号HDDであるHDD500を廃棄処理業者に廃棄依頼した場合の流れを示している。故障した状態のHDD500をそのまま廃棄処理業者に引き渡した場合、この故障の原因が、例えば同一モデルの暗号HDDより調達可能な電気部品の不良、または塵埃等による電気的接触障害等の軽微なものであれば、廃棄処理業者により暗号HDDの修理または修復が可能となってしまう。そして、廃棄処理業者による修理または修復が完了した後、リユース品またはネットオークション品等として再度市場に流通した場合は、顧客情報等の重要情報および暗号鍵EK10がそのまま残った状態となるため、重要情報が流出するリスクが非常に高まることになる。
【0012】
以上の
図1~
図3に示した場合において、HDD500が再度市場に流通して重要情報が流出する事態を避けるためには、ユーザ自身でパンチャ等によりHDD500のディスクまたは磁気読み取りヘッド等を確実に物理的に破壊する必要があるが、その労力およびコストの観点から不利益が大きい。
【0013】
図4は、第1の実施形態の記憶装置の廃棄の流れを示す図である。本実施形態のHDD1については、ユーザは、通常の構成である外部のPC(Personal Computer)等のホスト端末と接続して、当該ホスト端末から破壊コマンドをHDD1に対して送信することによって、HDD1を起動できないように物理的に破壊することができる。これによって、
図4に示すように、リユース品またはネットオークション品等として再度市場に流通させることをユーザ側で未然に防ぐことができる。また、上述のように、HDD1に接続されたホスト端末から破壊コマンドを送信するだけで物理的に破壊できるので、特殊な破壊工具を不要とすることができる。以下、本実施形態のHDD1の構成および動作について、詳細に説明する。
【0014】
図5は、第1の実施形態の記憶装置の構成の一例を示す図である。
図6は、第1の実施形態の記憶装置におけるSoCのe-fuseの接続構成の一例を示す図である。
図5および
図6を参照しながら、本実施形態のHDD1の構成について説明する。
【0015】
図5に示すHDD1は、例えばPC(Personal Computer)等の情報処理装置に搭載され、各種のユーザデータ(プログラム等を含む)を記憶させるための不揮発性の記憶装置である。
図5に示すように、HDD1は、SoC11と、Flash-ROM(Read Only Memory)12(以下、FROM12と称する)(第2記憶部)と、ディスク13(記憶媒体の一例)と、VCM(Voice Coil Motor)14と、SVC(Servo Combo)15と、DRAM(Dynamic Random Access Memory)16と、I/Fポート17と、を備えている。
【0016】
SoC11は、演算機能およびデータ記憶機能等を集積してシステムとして機能するように1つのチップ上に構成された集積回路である。SoC11は、
図5に示すように、CPU(Central Processing Unit)111と、Mask ROM112と、AES(Advanced Encryption Standard)113(暗号化部)と、SRAM(Static RAM)114と、SPI(Serial Peripheral Interface)115と、SVL(Servo Logic)116と、HIF(Host Interface)117と、BM(Buffer Manager)118と、DM(Disk Manager)119と、RDC(Read Channel)120と、バス121と、を含む。
【0017】
CPU111は、SoC11の動作、ひいてはHDD1全体の動作を制御する演算装置である。
【0018】
Mask ROM112は、電源投入時の初期設定、およびFROM12に記憶されたファームウェアを読み出すためのIPL(Initial Program Loader)であるファームウェアFW0を記憶している不揮発性の記憶回路である。HDD1の電源が投入されると、まず、Mask ROM112に記憶されたファームウェアFW0がCPU111により実行(起動)され、後述するFROM12に記憶されたファームウェアFW1を起動する。
【0019】
AES113は、乱数値を用いてデータの暗号化処理を行う暗号回路である。また、AES113は、後述するように、ディスク13に記憶されたユーザデータを、暗号鍵を用いて暗号化する処理も行う。
【0020】
SRAM114は、内部処理用のデータ等を記憶する半導体メモリである。SPI115は、FROM12からデータの読み出すためのインターフェースである。
【0021】
SVL116は、SVC15の制御を行う制御回路である。HIF117は、外部のPC等のホスト端末からI/Fポート17を介して受信したコマンドを処理する回路である。
【0022】
BM118は、データのキャッシュとして機能するDRAM16を管理する回路である。DM119は、ディスク13をコントロールし、データの読み書きを管理する回路である。
【0023】
RDC120は、例えば16進数等で表されたデータを、ディスク13に書き込める2進数の状態に変換する回路である。バス121は、SoC11の各回路、素子を互いにデータ通信可能となるように接続する通信経路である。
【0024】
FROM12は、後述するディスク13のシステム領域131からデータを読み出すためのファームウェアFW1と、ファームウェアFW1がディスク13の回転およびヘッド14aを動作させるために使用する制御パラメータCP1(第1制御パラメータ)と、を記憶している不揮発性の記憶回路である。制御パラメータCP1は、HDD1ごとにヘッド14aおよびディスク13のモータ等の物理的特性の組み合わせに対応するように調整され数値化された各種のパラメータである。したがって、HDD1が変われば、そのHDD1のFROM12に記憶された制御パラメータCP1は異なる数値となる。ファームウェアFW1は、上述のようにファームウェアFW0により起動されると、制御パラメータCP1を使用して、ディスク13を回転させ、ヘッド14aを動作させて、後述するディスク13のシステム領域131に記憶されたファームウェアFW2を起動する。
【0025】
ディスク13は、HDD1のユーザデータの記憶という主目的を実現する記憶媒体である。ディスク13は、
図5に示すように、システム領域131(第2領域)と、ユーザ領域132(第1領域)と、を有する。
【0026】
システム領域131は、ユーザ領域132からユーザデータを読み出すためのファームウェアFW2と、ファームウェアFW2がユーザ領域132にアクセスするために使用する制御パラメータCP2(第2制御パラメータ)と、ユーザデータを暗号化および復号するための暗号鍵EKと、を記憶する記憶領域である。制御パラメータCP2は、ディスク13の形状変形および記録密度等の特性の組み合わせに対応するように調整され数値化された各種のパラメータである。したがって、HDD1が変われば、そのHDD1のシステム領域131に記憶された制御パラメータCP2は異なる数値となる。ファームウェアFW2は、上述のようにファームウェアFW1により起動されると、制御パラメータCP2を使用して、ユーザ領域132へのアクセスを行う。
【0027】
ユーザ領域132は、ユーザデータを記憶する記憶領域である。具体的には、ユーザ領域132は、システム領域131に記憶された暗号鍵EKを用いて暗号化された状態のユーザデータを記憶している。
【0028】
VCM14は、ディスク13に記憶されたデータを読み書きするためのヘッド14aを動作させるためのモータである。SVC15は、VCM14の回転動作を制御する駆動回路である。
【0029】
DRAM16は、データのキャッシュとして機能する半導体メモリである。
【0030】
I/Fポート17は、外部(例えばHDD1を搭載するPC等)とデータ通信するためのインターフェースである。
【0031】
図6に示すように、HDD1は、さらに、電源ポート18と、外部端子19と、OSC(Oscillator)20(出力装置)と、を備えている。また、
図6に示すように、SoC11は、さらに、バス121に接続されたOTP(One Time Programmable)122(第1記憶部)と、e-fuse123と、を含む。
【0032】
電源ポート18は、HDD1のSoC11を含め、各素子に対して電源を供給するためのポートである。例えば、SoC11は、
図6に示すように、電源ポート18から電源線PLを介して電源が供給される。
【0033】
外部端子19は、SoC11に対して接地させるか否かを切り替えるための端子である。例えば、外部端子19に短絡部材19aを取り付けることによって、外部端子19の端子間が短絡(ショート)され、CPU111は、外部端子19を介して接地された状態であることを認識することができる。
【0034】
OSC20は、CPU111の演算処理のためのクロック信号を発生させる装置である。OSC20は、クロック信号線CLを介して、クロック信号をCPU111に対して出力する。
【0035】
OTP122は、一度だけデータを書き込むことができ、以降は書き換え不能な記憶装置である。具体的には、OTP122は、所定の乱数値が書き換え不能に記憶されている。例えば、OTP122は、HDD1のメーカ側が出荷前等に事前に所定の乱数値を書き込んでおくものとすればよい。
【0036】
なお、OTP122に事前に乱数値を書き込んでおくことに限定されるものではなく、例えば、HDD1が、内部で乱数値を生成して、自らその乱数値を書き込むものとしてもよい。この場合、ファームウェアFW1またはファームウェアFW2に、乱数値を生成してOTP122に当該乱数値を書き込む機能を含めるものとすればよい。また、OTP122には、乱数値のほかHDD1について固有な固有値が記憶されているものとすればよい。
【0037】
e-fuse123は、CPU111とOSC20とを接続するクロック信号線CL(信号線)に設置された物理的なフューズ部材である。e-fuse123は、CPU111からの切断指令によって、クロック信号線CLを物理的に切断する。これを実現するためには、ファームウェアFW0に、I/Fポート17を介した外部のホスト端末等から破壊コマンド(破壊指令)を受信する機能、および当該破壊コマンドを受信した場合にe-fuse123を切断するための切断指令を出力する機能を含めておく。これによって、外部のホスト端末等から破壊コマンドが受信されると、ファームウェアFW0が起動し、e-fuse123を物理的に切断するための切断指令をe-fuse123へ出力する。この結果、e-fuse123が切断され、すなわちクロック信号線CLが切断され、CPU111にクロック信号が供給されなくなるため、SoC11(CPU111)の動作が不能となる。
【0038】
なお、e-fuse123は、SoC11(CPU111)の動作を不能にさせるものとすればよく、上述のクロック信号線CLに設置されること以外にも、例えば、CPU111への電源線に設置されるものとしてもよい。また、ホスト端末等から送信される破壊コマンドは、既存のコマンドのサービスアクションコードを変更して流用するものとしてもよく、または特殊なコマンドをメーカ側で設定しておくものとしてもよい。
【0039】
また、破壊コマンドを不正に発行されること、または誤って発行されてしまうこと等による意図しないe-fuse123の切断を防ぐために、上述したように、外部端子19に短絡部材19aが取り付けられて端子間が短絡(ショート)されている場合には、CPU111は、破壊コマンドを無効化するものとしてもよい。
【0040】
図7は、第1の実施形態の記憶装置における制御パラメータおよび暗号鍵の格納の態様の一例を示す図である。
図7を参照しながら、本実施形態のHDD1における制御パラメータCP1、CP2および暗号鍵EKの格納の態様について説明する。なお、暗号化前の制御パラメータCP1、CP2および暗号鍵EKを、便宜上制御パラメータCP1’、CP2’および暗号鍵EK’と称して説明する。
【0041】
HDD1のメーカは、HDD1の出荷前に、制御パラメータCP1’に、当該制御パラメータCP1’に基づくチェックサム、CRC(Cyclic Redundancy Check)またはハッシュ等の検証値(第1検証値)を付加した上で、OTP122に記憶された乱数値を用いて暗号化(第1処理の一例)をした状態の制御パラメータCP1として、FROM12に記憶させる。すなわち、上述の暗号化は、後に再び乱数値を用いて制御パラメータCP1を使用できるような状態にしている、ということができる。また、HDD1のメーカは、HDD1の出荷前に、制御パラメータCP2’に、当該制御パラメータCP2’に基づくチェックサム、CRCまたはハッシュ等の検証値(第2検証値)を付加した上で、OTP122に記憶された乱数値を用いて暗号化(第2処理の一例)をした状態の制御パラメータCP2として、ディスク13のシステム領域131に記憶させる。すなわち、上述の暗号化は、後に再び乱数値を用いて制御パラメータCP2を使用できるような状態にしている、ということができる。さらに、HDD1のメーカは、HDD1の出荷前に、予めユーザデータ用の暗号鍵EK’を、OTP122に記憶された乱数値を用いて暗号化した状態の暗号鍵EKとして、ディスク13のシステム領域131に記憶させる。なお、制御パラメータCP1’、CP2’を暗号化する際に、必ずしも検証値を付加する必要はないが、以下では、検証値を付加するものとして説明する。
【0042】
なお、制御パラメータCP1’、CP2’および暗号鍵EK’の暗号化は、例えばAES(Advanced Encryption Standard)等の暗号化アルゴリズムを用いればよい。また、HDD1が内部で乱数値を生成してOTP122へ書き込む場合、ファームウェアFW2に、乱数のOTP122への書き込み時に、FROM12に記憶された制御パラメータCP1’、およびシステム領域131に記憶されたCP2’を、それぞれ当該乱数値を用いて暗号化して、FROM12およびシステム領域131にそれぞれ再格納する機能を含めるものとすればよい。
【0043】
図8は、第1の実施形態の記憶装置の取り扱いおよび処理の流れの一例を示すフローチャートである。
図9は、第1の実施形態の記憶装置に対する同一のモデルの記憶装置からの部品交換の一例を示す図である。
図8および
図9を参照しながら、本実施形態のHDD1の取り扱いおよび処理の流れについて説明する。
【0044】
<ステップS11>
HDD1のユーザは、暗号HDDであるHDD1を廃棄する場合に、I/Fポート17に接続したホスト端末に対する操作により、当該ホスト端末から破壊コマンドを発行させる。そして、CPU111は、I/Fポート17を介して破壊コマンドを受信する。そして、ステップS12へ移行する。
【0045】
<ステップS12>
CPU111は、破壊コマンドを受信するとファームウェアFW0を起動する。ファームウェアFW0は、CPU111による実行により、e-fuse123を切断するための切断指令を、e-fuse123に対して出力する。これによって、e-fuse123が切断される。そして、ステップS13へ移行する。
【0046】
<ステップS13>
e-fuse123が切断されると、クロック信号線CLが切断され、CPU111へクロック信号が供給されなくなるため、SoC11(CPU111)の動作が不能となる。これによって、ファームウェアFW0、FW1、FW2のすべてが実行できなくなり、HDD1は起動不能となる。そして、ステップS14へ移行する。
【0047】
<ステップS14>
ユーザは、e-fuse123の切断により物理的に破壊されたHDD1を、廃棄処理業者へ引き渡し、廃棄依頼する。そして、ステップS15へ移行する。
【0048】
<ステップS15>
HDD1の廃棄依頼を受けた廃棄処理業者は、以下、不正な処理としてHDD1をリユース品またはネットオークション品等として再度市場に流通させるように図ろうとした場合について説明する。廃棄処理業者は、不正な処理として、
図9に示すように、物理的に破壊されたHDD1と同じモデルのHDD1_NewからSoC11_Newを取り出して、当該HDD1のSoC11との交換を試みる場合(ステップS15:SoCのみ)、ステップS16へ移行する。一方、廃棄処理業者は、不正な処理として、
図9に示すように、物理的に破壊されたHDD1と同じモデルのHDD1_NewからSoC11_NewおよびFROM12_Newを取り出して、当該HDD1のSoC11およびFROM12との交換を試みる場合(ステップS15:SoC+FROM)、ステップS19へ移行する。
【0049】
<ステップS16>
廃棄処理業者により、不正な処理として、物理的に破壊されたHDD1と同じモデルのHDD1_NewからSoC11_Newが取り出され、当該HDD1のSoC11との交換が試みられた場合を考える。HDD1において交換されたSoC11_Newのe-fuse123は切断されていないため、HDD1の電源が投入されると、Mask ROM112に記憶されたファームウェアFW0がCPU111により実行(起動)され、FROM12に記憶されたファームウェアFW1も起動される。そして、ステップS17へ移行する。
【0050】
<ステップS17>
この場合、FROM12内の制御パラメータCP1は、AES113により、交換されたSoC11_New内のOTP122に記憶された乱数値を用いて復号されるが、交換前のSoC11のOTP122に記憶された乱数値とは異なる値であるため、正しく復号できない。そして、ステップS18へ移行する。
【0051】
<ステップS18>
したがって、ファームウェアFW1は、CPU111による実行により、復号された制御パラメータCP1を使用しても、ディスク13のシステム領域131のデータを読み出すことができない。また、ファームウェアFW1は、CPU111による実行より、復号された制御パラメータCP1の検証値を用いて、当該制御パラメータCP1の検証を行った結果、検証NGとなるので処理を停止する。以上のように、暗号HDDであるHDD1を起動することができないため、HDD1内のユーザ領域132のユーザデータを読み出すことができなくなる。
【0052】
なお、上述のように制御パラメータCP1の検証に失敗した場合は、使用した乱数値が異なっていること、すなわちSoC11がSoC11_Newに不正に交換されていることがわかるため、この時点で、ファームウェアFW0またはファームウェアFW1が、CPU111による実行により、SoC11_New内のe-fuse123を切断するものとしてもよい。
【0053】
<ステップS19>
廃棄処理業者により、不正な処理として、物理的に破壊されたHDD1と同じモデルのHDD1_NewからSoC11_NewおよびFROM12_Newが取り出され、当該HDD1のSoC11およびFROM12との交換が試みられた場合を考える。HDD1において交換されたSoC11_Newのe-fuse123は切断されていないため、HDD1の電源が投入されると、Mask ROM112に記憶されたファームウェアFW0がCPU111により実行(起動)され、交換されたFROM12_Newに記憶されたファームウェアFW1も起動される。そして、ステップS20へ移行する。
【0054】
<ステップS20>
この場合、FROM12_New内の制御パラメータCP1は、AES113により、交換されたSoC11_New内のOTP122に記憶された乱数値を用いて復号される。FROM12_New内の制御パラメータCP1は、元々、交換されたSoC11_New内のOTP122に記憶された乱数値を用いて暗号化されたものであるため、正しく復号されることになる。そして、ステップS21へ移行する。
【0055】
<ステップS21>
しかし、FROM12_New内の制御パラメータCP1は、交換元であるHDD1_New用のパラメータであるため、ファームウェアFW1は、CPU111による実行により、当該制御パラメータCP1を使用しても、ディスク13のシステム領域131からデータを読み出すことができない。仮に、万が一、部品交換用に用意したHDD1_Newの制御パラメータCP1が、物理的に破壊されたHDD1の制御パラメータCP1と似通っているために、ファームウェアFW1が、CPU111による実行により、制御パラメータCP1を使用して、システム領域131からデータを読み出すことできた場合(ステップS21:可)、ステップS23へ移行する。一方、通常の予測通り、ファームウェアFW1が、CPU111による実行により、制御パラメータCP1を使用して、システム領域131からデータを読み出すことできない場合(ステップS21:不可)、ステップS22へ移行する。
【0056】
<ステップS22>
ファームウェアFW1は、CPU111による実行により、制御パラメータCP1を使用しても、システム領域131からデータを読み出すことができないため、ファームウェアFW2を起動することができない。以上のように、ファームウェアFW2を起動することができないため、HDD1内のユーザ領域132のユーザデータを読み出すことができなくなる。
【0057】
<ステップS23>
ファームウェアFW1が、CPU111による実行により、制御パラメータCP1を使用して、システム領域131からデータを読み出すことできた場合、ファームウェアFW2を起動することができる。そして、ステップS24へ移行する。
【0058】
<ステップS24>
しかし、この場合、ディスク13のシステム領域131内の制御パラメータCP2および暗号鍵EKは、AES113により、交換されたSoC11_New内のOTP122に記憶された乱数値を用いて復号されるが、交換前のSoC11のOTP122に記憶された乱数値とは異なる値であるため、正しく復号できない。そして、ステップS25へ移行する。
【0059】
<ステップS25>
したがって、ファームウェアFW2は、CPU111による実行により、復号された制御パラメータCP2および暗号鍵EKを使用しても、ディスク13のユーザ領域132のユーザデータを読み出すことができない。また、ファームウェアFW2は、CPU111による実行より、復号された制御パラメータCP2の検証値を用いて、当該制御パラメータCP2の検証を行った結果、検証NGとなるので処理を停止する。以上のように、暗号HDDであるHDD1を起動することができないため、HDD1内のユーザ領域132のユーザデータを読み出すことができなくなる。
【0060】
なお、上述のように制御パラメータCP2の検証に失敗した場合は、使用した乱数値が異なっていること、すなわちSoC11がSoC11_Newに不正に交換されていることがわかるため、この時点で、ファームウェアFW0またはファームウェアFW2が、CPU111による実行により、SoC11_New内のe-fuse123を切断するものとしてもよい。
【0061】
以上のステップS11~S25の流れに示すように、廃棄処理業者が不正に、物理的に破壊されたHDD1と同じモデルのHDD1_Newから、SoC11_Newのみ、またSoC11_NewおよびFROM12_Newへ交換を試みたとしてしても、いずれの場合においても、HDD1内のユーザ領域132のユーザデータを読み出すことができない。
【0062】
以上のように、本実施形態のHDD1では、CPU111が実装されたSoC11と、CPU111の実行動作に必要な、SoC11に実装されたクロック信号線CLまたは電源線PL等に設置されたe-fuse123と、SoC11に対応する乱数値が書き換え不能に記憶され、SoC11に実装されたOTP122と、ディスク13の駆動に必要な制御パラメータCP1に対して乱数値を用いた暗号化を行うことにより、再び乱数値を用いて使用できるような状態にして制御パラメータCP1を記憶するFROM12と、ユーザデータを記憶するユーザ領域132と、ユーザ領域132からのユーザデータの読み出しに必要な制御パラメータCP2に対して乱数値を用いた暗号化を行うことにより、再び乱数値を用いて使用できるような状態にして制御パラメータCP2を記憶したシステム領域131と、を有するディスク13と、を備え、CPU111は、外部から破壊指令を受信した場合、e-fuse123を切断するものとしている。これによって、HDD1が起動できないようにe-fuse123の切断という破壊をしているため、リユース品またはネットオークション品等として再び市場に流出されることをユーザ側で防ぐことができるので、HDD1を安全に廃棄することができる。また、特殊な破壊工具が不要で、ホスト端末等から破壊指令を送信するのみで、HDD1を破壊することができ、素子の損傷または発火等の危険性が低く安全性が高い。また、SoC11に電源が入力されているだけの、極めて単純な回路構成でe-fuse123の切断が可能なため、HDD1の実装電気部品不良等によるディスク13が回転できないような故障状態であっても、確実に修復不可能な破壊ができる。また、HDD1毎に異なる制御パラメータCP1、CP2をSoC11内の乱数値(HDD1ごとに異なる値)で暗号化しているため、SoC11を交換するとHDD1が起動できなくなるため、修復不可能な破壊を実現することができる。
【0063】
なお、上述の第1の実施形態のHDD1では、システム領域131の制御パラメータCP2および暗号鍵EKの双方について、乱数値を用いて暗号化する構成としたが、これに限定されるものではなく、少なくともいずれか一方を暗号化しておく構成としてもよい。例えば、暗号鍵EKのみを暗号化した場合には、SoC11が交換されたとしても、暗号鍵EKを正常に復号することができないため、ユーザ領域132からユーザデータの読み取りを防ぐことができる。ただし、上述の
図2に示したように、暗号鍵EKのみを消去して破棄処理業者に廃棄依頼をしたことと同様の状態となるため、好ましい状態とは言えない。一方、少なくとも制御パラメータCP2を暗号化した場合には、SoC11交換されたとしても、ユーザ領域132へのアクセス処理自体を防ぐことができるため、少なくとも制御パラメータCP2を暗号化することの方が望ましい。
【0064】
(第2の実施形態)
第2の実施形態のHDD1について、第1の実施形態のHDD1と相違する点を中心に説明する。第1の実施形態では、HDD1が暗号HDDであるものとして、再度市場に流通することを防止し安全に廃棄することができる構成について説明した。本実施形態では、暗号機能を有さないHDD(以下、「非暗号HDD」と称する場合がある)についての、再度市場に流通することを防止し安全に廃棄することができる構成について説明する。なお、本実施形態のHDD1は、暗号機能を有さないため、
図5に示した構成のうち、AES113を備えていない。
【0065】
図10は、第2の実施形態の記憶装置における制御パラメータの格納の態様の一例を示す図である。
図10を参照しながら、本実施形態のHDD1における制御パラメータCP1、CP2の格納の態様について説明する。なお、後述するHMAC(Hash-based Message Authentication Code)を付加する前の制御パラメータCP1、CP2を、便宜上制御パラメータCP1’、CP2’と称して説明する。
【0066】
HDD1のメーカは、HDD1の出荷前に、制御パラメータCP1’に、OTP122に記憶された乱数値および当該制御パラメータCP1’に基づいて算出されるHMAC等の検証値(第1検証値)の付加(第1処理の一例)をした上で、制御パラメータCP1(第1制御パラメータ)として、FROM12に記憶させる。すなわち、上述の検証値の付加は、後に再び乱数値を用いて制御パラメータCP1を使用できるような状態にしている、ということができる。また、HDD1のメーカは、HDD1の出荷前に、制御パラメータCP2’に、OTP122に記憶された乱数値および当該制御パラメータCP2’に基づいて算出されるHMAC等の検証値(第2検証値)の付加(第2処理の一例)をした上で、制御パラメータCP2(第2制御パラメータ)として、ディスク13のシステム領域131に記憶させる。すなわち、上述の検証値の付加は、後に再び乱数値を用いて制御パラメータCP2を使用できるような状態にしている、ということができる。
【0067】
なお、HDD1が内部で乱数値を生成してOTP122へ書き込む場合、ファームウェアFW2に、乱数のOTP122への書き込み時に、FROM12に記憶された制御パラメータCP1’、およびシステム領域131に記憶されたCP2’を、それぞれHMACを付加した上で、FROM12およびシステム領域131にそれぞれ再格納する機能を含めるものとすればよい。
【0068】
また、制御パラメータCP1、CP2に付加する検証値はHMACではなく、例えばRSA等を使用したデジタル署名であってもよい。この場合、OTP122に記憶された乱数値を公開鍵とし、秘密鍵はデジタル署名の付加後に直ちに消去するものとすればよい。
【0069】
図11は、第2の実施形態の記憶装置の取り扱いおよび処理の流れの一例を示すフローチャートである。
図11を参照しながら、本実施形態のHDD1の取り扱いおよび処理の流れについて説明する。
【0070】
<ステップS31>
HDD1のユーザは、非暗号HDDであるHDD1を廃棄する場合に、I/Fポート17に接続したホスト端末に対する操作により、当該ホスト端末から破壊コマンドを発行させる。そして、CPU111は、I/Fポート17を介して破壊コマンドを受信する。そして、ステップS32へ移行する。
【0071】
<ステップS32>
CPU111は、破壊コマンドを受信するとファームウェアFW0を起動する。ファームウェアFW0は、CPU111による実行により、e-fuse123を切断するための切断指令を、e-fuse123に対して出力する。これによって、e-fuse123が切断される。そして、ステップS33へ移行する。
【0072】
<ステップS33>
e-fuse123が切断されると、クロック信号線CLが切断され、CPU111へクロック信号が供給されなくなるため、SoC11(CPU111)の動作が不能となる。これによって、ファームウェアFW0、FW1、FW2のすべてが実行できなくなり、HDD1は起動不能となる。そして、ステップS34へ移行する。
【0073】
<ステップS34>
ユーザは、e-fuse123の切断により物理的に破壊されたHDD1を、廃棄処理業者へ引き渡し、廃棄依頼する。そして、ステップS35へ移行する。
【0074】
<ステップS35>
HDD1の廃棄依頼を受けた廃棄処理業者は、以下、不正な処理としてHDD1をリユース品またはネットオークション品等として再度市場に流通させるように図ろうとした場合について説明する。廃棄処理業者は、不正な処理として、上述の
図9に示すように、物理的に破壊されたHDD1と同じモデルのHDD1_NewからSoC11_Newを取り出して、当該HDD1のSoC11との交換を試みる場合(ステップS35:SoCのみ)、ステップS36へ移行する。一方、廃棄処理業者は、不正な処理として、上述の
図9に示すように、物理的に破壊されたHDD1と同じモデルのHDD1_NewからSoC11_NewおよびFROM12_Newを取り出して、当該HDD1のSoC11およびFROM12との交換を試みる場合(ステップS35:SoC+FROM)、ステップS39へ移行する。
【0075】
<ステップS36>
廃棄処理業者により、不正な処理として、物理的に破壊されたHDD1と同じモデルのHDD1_NewからSoC11_Newが取り出され、当該HDD1のSoC11との交換が試みられた場合を考える。HDD1において交換されたSoC11_Newのe-fuse123は切断されていないため、HDD1の電源が投入されると、Mask ROM112に記憶されたファームウェアFW0がCPU111により実行(起動)され、FROM12に記憶されたファームウェアFW1も起動される。そして、ステップS37へ移行する。
【0076】
<ステップS37>
この場合、ファームウェアFW1は、CPU111による実行より、OTP122に記憶された乱数値および制御パラメータCP1のHMACを用いて、当該制御パラメータCP1の検証を行う。そして、ステップS38へ移行する。
【0077】
<ステップS38>
制御パラメータCP1の検証に用いられた乱数値は、交換前のSoC11のOTP122に記憶された乱数値とは異なる値であるため、検証NGとなる。したがって、ファームウェアFW1は、CPU111による実行より、処理を停止する。以上のように、非暗号HDDであるHDD1を起動することができないため、HDD1内のユーザ領域132のユーザデータを読み出すことができなくなる。
【0078】
なお、上述のように制御パラメータCP1の検証に失敗した場合は、使用した乱数値が異なっていること、すなわちSoC11がSoC11_Newに不正に交換されていることがわかるため、この時点で、ファームウェアFW0またはファームウェアFW1が、CPU111による実行により、SoC11_New内のe-fuse123を切断するものとしてもよい。
【0079】
<ステップS39>
廃棄処理業者により、不正な処理として、物理的に破壊されたHDD1と同じモデルのHDD1_NewからSoC11_NewおよびFROM12_Newが取り出され、当該HDD1のSoC11およびFROM12との交換が試みられた場合を考える。HDD1において交換されたSoC11_Newのe-fuse123は切断されていないため、HDD1の電源が投入されると、Mask ROM112に記憶されたファームウェアFW0がCPU111により実行(起動)され、交換されたFROM12_Newに記憶されたファームウェアFW1も起動される。そして、ステップS40へ移行する。
【0080】
<ステップS40>
この場合、ファームウェアFW1は、CPU111による実行より、OTP122に記憶された乱数値および制御パラメータCP1のHMACを用いて、当該制御パラメータCP1の検証を行う。FROM12_New内の制御パラメータCP1は、元々、交換されたSoC11_New内のOTP122に記憶された乱数値を用いたHMACが付加されたものであるため、検証が成功する(検証値が一致する)ことになる。
【0081】
<ステップS41>
しかし、FROM12_New内の制御パラメータCP1は、交換元であるHDD1_New用のパラメータであるため、ファームウェアFW1は、CPU111による実行により、当該制御パラメータCP1を使用しても、ディスク13のシステム領域131からデータを読み出すことができない。仮に、万が一、部品交換用に用意したHDD1_Newの制御パラメータCP1が、物理的に破壊されたHDD1の制御パラメータCP1と似通っているために、ファームウェアFW1が、CPU111による実行により、制御パラメータCP1を使用して、システム領域131からデータを読み出すことできた場合(ステップS41:可)、ステップS43へ移行する。一方、通常の予測通り、ファームウェアFW1が、CPU111による実行により、制御パラメータCP1を使用して、システム領域131からデータを読み出すことできない場合(ステップS41:不可)、ステップS42へ移行する。
【0082】
<ステップS42>
ファームウェアFW1は、CPU111による実行により、制御パラメータCP1を使用しても、システム領域131からデータを読み出すことができないため、ファームウェアFW2を起動することができない。以上のように、ファームウェアFW2を起動することができないため、HDD1内のユーザ領域132のユーザデータを読み出すことができなくなる。
【0083】
<ステップS43>
ファームウェアFW1が、CPU111による実行により、制御パラメータCP1を使用して、システム領域131からデータを読み出すことできた場合、ファームウェアFW2を起動することができる。そして、ステップS44へ移行する。
【0084】
<ステップS44>
この場合、ファームウェアFW2は、CPU111による実行より、OTP122に記憶された乱数値および制御パラメータCP2のHMACを用いて、当該制御パラメータCP2の検証を行う。そして、ステップS45へ移行する。
【0085】
<ステップS45>
制御パラメータCP2の検証に用いられた乱数値は、交換前のSoC11のOTP122に記憶された乱数値とは異なる値であるため、検証NGとなる。したがって、ファームウェアFW2は、CPU111による実行より、処理を停止する。以上のように、非暗号HDDであるHDD1を起動することができないため、HDD1内のユーザ領域132のユーザデータを読み出すことができなくなる。
【0086】
なお、上述のように制御パラメータCP2の検証に失敗した場合は、使用した乱数値が異なっていること、すなわちSoC11がSoC11_Newに不正に交換されていることがわかるため、この時点で、ファームウェアFW0またはファームウェアFW2が、CPU111による実行により、SoC11_New内のe-fuse123を切断するものとしてもよい。
【0087】
以上のステップS31~S45の流れに示すように、廃棄処理業者が不正に、物理的に破壊されたHDD1と同じモデルのHDD1_Newから、SoC11_Newのみ、またSoC11_NewおよびFROM12_Newへ交換を試みたとしてしても、いずれの場合においても、HDD1内のユーザ領域132のユーザデータを読み出すことができない。
【0088】
以上のような本実施形態のHDD1においても、HDD1が起動できないようにe-fuse123の切断という破壊をしているため、リユース品またはネットオークション品等として再び市場に流出されることをユーザ側で防ぐことができるので、HDD1を安全に廃棄することができる。また、暗号機能がない非暗号HDDにおいては、ユーザ側が情報流出を避けるためには、時間をかけてユーザデータを上書き消去するか、特別な工具による物理的な破壊しか手段がなかったが、本実施形態のHDD1は、一瞬で破壊することができ、HDD1廃却後のユーザデータの流出を防ぐことができる。
【0089】
なお、上述の各実施形態は、例示したものであり、発明の範囲を限定することは意図していない。上述の各実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更および組み合わせを行うことができる。また、上述の各実施形態は、発明の範囲および要旨に含まれると共に、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【符号の説明】
【0090】
1、1_New HDD、11、11_New SoC、12、12_New FROM、13 ディスク、14 VCM、14a ヘッド、15 SVC、16 DRAM、17 I/Fポート、18 電源ポート、19 外部端子、19a 短絡部材、20 OSC、111 CPU、112 Mask ROM、113 AES、114 SRAM、115 SPI、116 SVL、117 HIF、118 BM、119 DM、120 RDC、121 バス、122 OTP、123 e-fuse、131 システム領域、132 ユーザ領域、500 HDD、CL クロック信号線、CP1、CP1’、CP2、CP2’ 制御パラメータ、EK、EK’、EK10 暗号鍵、FW0、FW1、FW2 ファームウェア。