JP2010288123A - 暗号化記憶装置、情報機器、暗号化記憶装置のセキュリティ方法 - Google Patents

暗号化記憶装置、情報機器、暗号化記憶装置のセキュリティ方法 Download PDF

Info

Publication number
JP2010288123A
JP2010288123A JP2009141007A JP2009141007A JP2010288123A JP 2010288123 A JP2010288123 A JP 2010288123A JP 2009141007 A JP2009141007 A JP 2009141007A JP 2009141007 A JP2009141007 A JP 2009141007A JP 2010288123 A JP2010288123 A JP 2010288123A
Authority
JP
Japan
Prior art keywords
key
partition
data
encryption
storage device
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.)
Granted
Application number
JP2009141007A
Other languages
English (en)
Other versions
JP4463320B1 (ja
Inventor
Hiromichi Oribe
浩道 織部
Yoshihiro Kito
佳宏 鬼頭
Masaki Takigawa
政樹 滝川
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hagiwara Sys Com Co Ltd
Original Assignee
Hagiwara Sys Com Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Hagiwara Sys Com Co Ltd filed Critical Hagiwara Sys Com Co Ltd
Priority to JP2009141007A priority Critical patent/JP4463320B1/ja
Application granted granted Critical
Publication of JP4463320B1 publication Critical patent/JP4463320B1/ja
Publication of JP2010288123A publication Critical patent/JP2010288123A/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Abstract

【課題】 ハードウエア暗号記憶装置における暗号鍵の安全な管理方法の提供。ハードウエア暗号記憶装置に複数種類の情報を記憶し、譲渡、廃棄、レンタル時等における、重要度、種類に応じて任意に情報を無効化する方法の提供。ハードウエア暗号記憶装置に複数種類の情報を記憶している場合において、廃棄時等において、どのような情報が記憶されているか判断することなくデータを無効化する方法の提供。
【解決手段】 複数のパーティションを設定するステップと、各パーティションにそれぞれ固有のパーティション鍵を生成するステップと、パーティション鍵を暗号化するステップと、ホストから特定パーティションデータ無効化コマンドが発行されたとき、そのパーティション鍵の消去を実行するステップを実行する。
【選択図】 図2

Description

本発明はハードウエア暗号化手段を具備した記憶装置の改良されたセキュリティ方法、及び該方法を使用する記憶装置、該記憶装置を組み込んでなる情報機器に関する。
ハードディスク(HDD)、ソリッドステートドライブ(SSD)、USBメモリなどの記憶装置に記憶したデータの漏洩が問題となっており、そのため、セキュリティ方法としてパスワード認証をアクセスの条件としている。しかしながら、最近の報告によれば、サービス領域のATAパスワード設定フラグをオフにしてロック機能を無効にできるといい(パスワード解除)、事実、捜査機関向けに、斯かるパスワード解除装置が販売されているのが現状である。パスワードが解除されればデータは容易に読まれてしまう。パスワードが解除されない場合でも、記憶部を記憶装置から取り外して、データを直接読み取られる危険がある。
そこで、最近ではAES(Advanced Encryption Standard)などの暗号化を用いてデータを記憶している。AESはブロックと呼ばれる固定長(128bit)のデータを単位として、暗号化/復号化を共通の鍵で行
うものである。AESでは3種類の鍵長が定義されており、128bit/192bit/256bitのいずれかを用いることができる。鍵長が長いほど、鍵を全数検索する総当り攻撃などに強く、128bit/192bit/256bitの鍵長は、現在の計算機の処理能力では解読に非現実的な時間を要するため安全とされている。
AES暗号化には、ホスト側で行うもの(ソフトウエア暗号化)があるが高価であり、システムパフォーマンスに影響があった。そこで最近は、専用のチップを組み込み、AES暗号化をデバイス内部で行う記憶装置(ハードウエア暗号化)が販売されている。この場合、何らかの方法により暗号鍵のデータが把握されると、記憶しているデータが読み出されてしまう危険性は否定できない。
また、マルチファンクションプリンタなどの情報機器に記憶装置を組み込んで使用する場合、記憶装置には情報機器に必要な情報(オペレーティングシステムやアプリケーションプログラム)と使用者の機密情報(マルチファンクションプリンタの場合で言えば、プリント用の撮像データ)の両者が記憶される。情報機器を廃棄する場合は記憶データの全部を消去してもよいが、転売、レンタルなどで再利用する場合、機密情報は消去することが望ましいが、機器の運用に必要な情報は資源の有効活用の観点から、そのまま残すことが好ましい。また廃棄する場合は、どのような情報が記憶されているか判断することなく、データを無効化できることが望ましい。
特表2005−50473号公報
そこで本発明が解決すべき第1の課題は、ハードウエア暗号記憶装置における暗号鍵の安全な管理方法の提供にある。第2の課題はハードウエア暗号記憶装置に複数種類の情報を記憶し、譲渡、廃棄、レンタル時等において、重要度、種類に応じて任意に情報を無効化する方法の提供にある。第3の課題は、ハードウエア暗号記憶装置に複数種類の情報を記憶している場合において、廃棄時等において、どのような情報が記憶されているか判断することなくデータを無効化する方法の提供にある。その他の課題は、明細書、図面、特に特許請求の範囲により自ずと明らかとなろう。
本発明では、上記課題解決のため本発明が採用する新規な特徴的構成により上記課題を解決する。即ち本発明方法の第1の特徴は、記憶装置に複数のパーティションを設けるとともに、各パーティションにそれぞれ固有のパーティション鍵を定義する。パーティション鍵は暗号化して管理する。ホストから特定パーティションのデータを無効化するコマンドが発行されたときは、そのパーティション鍵の消去を実行する。本発明方法の第2の特徴は、記憶装置に一又は複数のパーティションを設けるとともに、パーティションに固有のパーティション鍵を定義する。パーティション鍵はデフォルト鍵で暗号化して管理する。ホストから全データを無効化するコマンドが発行された場合、デフォルト鍵を消去する。その他、本発明は、特許請求範囲において上位概念から下位概念に亙り列挙する新規な構成的特長により上記課題を解決する。
本発明によれば、データを暗号化して記憶するとともに、暗号/復号化鍵を暗号化して管理するので、パスワード機能が解除され、或いは記憶部が記憶装置から取り外されても、データが解読されることがない。また記憶装置にユーザが複数のパーティションを設けるので、重要度、種類に応じてデータを記憶できるとともに、パーティションごとに固有の暗号化/復号化鍵を定義するので、ホストから特定パーティションのデータを無効化するコマンドが発行されたとき、そのパーティション固有の鍵を消去することにより、任意のデータのみ無効化し、その余のデータは継続使用することができる。また、パーティション鍵をデフォルト鍵で暗号化して管理することにより、ホストから全データを無効化するコマンドが発行された場合、デフォルト鍵の消去を実行することにより、暗号化された全データを無効化することができる。また無効化を瞬時に実行できる。
本発明の記憶装置の基本構成例である。 NAND型フラッシュメモリを用いた記憶装置の構成例である。 記憶部の領域例である。 パーティション鍵生成前のパーティション鍵マップの構成例である。 パーティション鍵マップの構成例である。 パーティション鍵マップの他の構成例である。
以下、本発明を実施するための最良の形態について図面を用いて説明するが、本発明は特許請求の範囲内において種々の形態を採ることができ、下記実施形態に限定されないことはいうまでもない。
(システム基本構成)
図1は、本発明の実施形態に係る記憶装置の基本構成例である。図1に示すように、本発明のセキュリティ方法は、本発明の記憶装置2と、記憶装置2に対するメディアアクセス主体であるホスト1とからなるシステムで実行される。記憶装置2は、ホスト1からコマンド(オペレーションコード、指定アドレス)や書き込み用データを含む)を受け取ったり、読み出したデータやコマンドステータスをホスト1に送出するデータデバイスインターフェース21と、データを格納する記憶部30と、記憶部30へのデータの書き込みや記憶部30からのデータの読み出しの制御を実行する記憶部制御手段31と、ホスト1から送られたデータを暗号化するとともに、記憶部30から読み出されたデータを復号化する暗号/復号処理部20を有する。
暗号/復号処理部20は、鍵生成部27と、鍵生成部27で生成された鍵を用いて所定のロジックに基づきデータの暗号化/復号化を実行する暗号化/復号化部24と、暗号化/復号化部24でデータを暗号化/復号化するための鍵を選択して暗号化/復号化部24に設定する暗号鍵設定回路23と、鍵暗号化/復号化部28を有する。これらはプロセッサ25により統括的に制御される。暗号化/復号化部24は独自のハードウエアロジックで構成され、プロセッサ25の処理に拠らないため、非常に高速で処理を実行できる。RAM26は、揮発性メモリであり、プロセッサ25の作業領域である。暗号鍵設定回路23は、後述する各種の暗号鍵をシステム起動中格納する暗号鍵格納部232、暗号化又は復号化を前記いずれの鍵で実行するかを判定する鍵判定回路231、判定回路231からの信号に基づき選択された鍵データを暗号化/復号化部24に入力、設定する鍵データ出力部233を有する。記憶部30は、記憶領域33と周知の管理領域34を有し、管理領域34は後述するデフォルト鍵、パーティション鍵、並びにパーティション鍵マップ341を格納する。鍵暗号化/復号化部28は、プロセッサ25の制御に基づき、デフォルト鍵、パーティション鍵の暗号化及び復号化を行う。
記憶装置2は、HDDの他、記憶部30にNAND型フラッシュメモリのような不揮発性半導体記憶装置を用いたSSDなどで構成することができる。HDDの場合、記憶部制御手段は、磁気ヘッドのシーク、データの書き込み、読み出しを制御する。SSDの場合、記憶部制御手段はNANDフラッシュメモリコントローラで構成される。
ホスト1との間のデバイスインターフェース21は、IDEインターフェースやシリアルATAインターフェースで構成され得る。記憶装置2はホスト1に挿抜して使用するUSBメモリで構成してもよい。
以下、本発明の記憶装置2がSSDで構成されるとともに、情報機器に組み込んで使用される例について、図2乃至図5を用いて説明する。SSDは図2に示すように、記憶部がNAND型フラッシュメモリ40で構成される。なお図2では、図1と同一の機能及び構成を有する要素については、同一の符号を付している。
本実施形態は、記憶部がNAND型フラッシュメモリ40で構成されるため、記憶部制御手段は、フラッシュメモリコントローラ41で構成される。このコントローラ41は、NAND型フラッシュメモリ40にコマンドを発行しデータの読み書きを実行するもので、NAND型フラッシュメモリ特有のbadブロックに対処するための不図示のエラー訂正回路、論理ブロックアドレス/物理ブロックアドレス変換テーブルを有する。
(初期設定)
はじめに情報機器のベンダーは、初期設定としてSSDを、OSその他、情報機器の運用に必要なソフトウエアを書き込むマシンに接続する。マシンはハードウエア暗号の初期設定ツールがインストールされている専用のコンピュータで構成され、図2のホスト1がこれに相当する。マシンに電源を投入後、まず初期設定ツールであるソフトウエアを用いてデフォルト鍵生成を行う。デフォルト鍵は、鍵生成部27が有する乱数発生器によって生成される。このデフォルト鍵を“KeyD”とする。デフォルト鍵は初期設定のとき生成されるもので、その後変更されることはないが、再利用時に再度設定することもできる。
デフォルト鍵は適当な値を暗号鍵として、鍵暗号化/復号化回路28よって暗号化され、管理領域45に格納される。記憶装置が外付けのSSDのように一般ユーザが使用する場合、盗難に備えてATAが標準機能として有するパスワードを設定できるが、デフォルト鍵生成時にこのパスワードが設定されている場合は、パスワードを暗号鍵としてデフォルト鍵が暗号化される。デフォルト鍵(平文)は、パスワードが変更される度に、最新のパスワードを暗号鍵として暗号化される。
尚パスワードは一方向ハッシュ関数を通してハッシュ値に変換され、管理領域45に格納され、以降の記憶装置2でのパスワード照合にそのまま利用される。即ち、記憶装置2を組み込んだ若しくは記憶装置2を接続したシステムに、電源が投入された後、記憶装置2へのアクセス許可を受けるためにATAパスワードが入力されると、同様にハッシュ関数によってハッシュ値に変換される。そして、管理領域45に記憶しているハッシュ値と照合され、両者が一致するとアクセスが許可される。ハッシュ値が元の状態に戻すことができない性質を利用したものであり、これによりパスワードを安全に管理することができる。
尚、デフォルト鍵と後述するパーティション鍵の生成は、プロセッサ25がコマンドを解釈して、鍵生成部27によって実行するものである。暗号化されたデフォルト鍵の管理領域45への格納はデフォルト鍵生成コマンドに付随して一括して実行される。暗号化されたパーティション鍵の管理領域45への格納も、同様にパーティション鍵の生成に付随して実行される。内部処理としては、プロセッサ25がフラッシュメモリコントローラ41にコマンドを発行して実行する。
デフォルト鍵は、初期設定の際に生成される暗号鍵であって、以下の機能を有する。
デフォルト鍵を生成すると、更のSSD(パーティション設定前)にベンダーに
よって何らかのシステム上必要なデータが書き込まれていても、データ読み出しの際、そのデータはデフォルト鍵で復号化されてから読み出されるので、意味のないランダムなデータが読み出される。ユーザが後述するパーティションの設定後、パーティション鍵の生成をしなかった場合(default)でも、その後ホストから送出されるデータはデフォルト鍵で自動的に暗号化される。後述するパーティションテーブルやマスターブートレコードのように、パーティションで定義されていない領域に対するホストからの書き込みデータを暗号化する。詳しくは後述する。
次に、必要な数だけパーティションを設定する。図3では、パーティション“0”(52)乃至パーティション“2”(54)を設定した様子を示している。各パーティションで構成される領域の記憶容量は、そこに格納することが予定されているファイルの容量を勘案して決定する。マシンが初期設定者からパーティション設定の指示を受けると、マシンは記憶領域44をどのように分割して使うか、その内容をMBR記憶領域51内のパーテションテーブル511へ書き込みます。この書き込みはデフォルト鍵によって暗号化されて実行されるとともに、平文データがRAM26に一時記憶される。
プロセッサ25は、RAM26に一時記憶されているパーティションテーブル511のデータを参照し、各パーティションのアドレス(論理セクタアドレス)を、管理領域45に記憶させるためのコマンドをフラッシュメモリコントローラ41に発行する。コマンドパラメータとして、パーティション番号、パーティションの先頭セクタアドレスと終了セクタアドレス、若しくは、パーティション番号、パーティションの先頭アドレスとセクタ数を指定する。このコマンドは、後述するパーティション鍵マップ341を生成するためのものである。図4は、記憶された状態を模式的に表したものであり、後述するパーティション鍵を生成したときには、パーティション鍵マップ341として完成されるものである。図示するように、この段階では、各パーティションの先頭セクタアドレスと終了セクタアドレス(図4(a))、若しくは先頭セクタアドレスとそのパーティションを構成するセクタ数(図4(b))で構成される。
上記、ユーザが設定したパーティションは、ホスト1からドライブと認識され得る領域を構成する。
次に、鍵生成部27が持っている乱数発生器を使って各パーティションの暗号鍵を生成する。本実施例ではパーティションを3つ設定しているので、パーティション鍵を、Key“0”乃至Key“2”の3つ生成するものとする。パーティションとパーティション鍵番号の関係は図3に示す通り、パーティション“0”、“1”、“2”にそれぞれ対応して、パーティション鍵Key“0”、Key“1”、Key“2”とする。そして生成したパーティション鍵を、デフォルト鍵(平文)を暗号鍵として、鍵暗号化/復号化回路28よって暗号化し、管理領域45の所定の領域に格納する(詳しくは後述する)。
このときプロセッサ25は、管理領域45に、パーティション設定時に記憶された各パーティションのセクタアドレス情報に対し、各パーティションを暗号化するパーティション鍵との関係を追記し、パーティション鍵マップ341を完成する。
図5は完成したパーティション鍵マップ341の例である。図示するように、各パーティションの先頭セクタアドレスと終了セクタアドレス並びに対応するパーティション鍵の関係(図5(a))、若しくは先頭セクタアドレスとそのパーティションを構成するセクタ数並びに対応するパーティション鍵の関係(図5(b))で構成される。図5において、対応暗号鍵として、Key0乃至Key2と記載しているが、これはKeyのデータではない。実際にはKey番号を特定する情報、例えばそのKeyのID番号である。
次にパーティションへ、組込みが予定されている情報機器の運用に必要なソフトウエアを格納する。具体的には、図3に示すように、パーティション“0”にはOS520を、パーティション“1”には、情報機器、例えばマルチファンクションプリンタを運用するために必要な各種アプリケーションプログラム530を格納する。このデータはファイルシステムによってファイルとして記憶される。OS520を格納した際、マシンはMBR記憶領域51にブートローダ512を記録する。ブートローダ512は、後述するように、デフォルト鍵によって暗号化されて記録される。
ホスト1から書き込み指令されるOS520はパーティション鍵Key“0”を暗号鍵として、アプリケーションプログラム530はKey“1”を暗号鍵として、暗号化/復号化部24で暗号化してパーティションに格納される。このようにして設定したSSDを、予定されている情報機器に組み込む。記憶装置2は情報機器にすでに組み込まれているホスト1に接続されて使用される。この場合のホスト1はCPUが実装されているCPUボードで構成することができる。パーティション“2”はユーザデータ領域、例えばマルチファンクションプリンタのスキャナで撮像されたプリント用データが格納される領域で、最も機密性の高いパーティションである。プリント用のデータが撮像されると、Key“2”により撮像データが暗号化されてパーティション“2”に格納される。
以下、(1)デフォルト鍵の暗号化/復号化、(2)パーティション鍵の暗号化/復号化、(3)ホストから受け取ったデータを暗号化し、ユーザが定義したパーティションに格納する手順、(4)ユーザが定義したパーティションに格納しているデータを読み出し、パーティション鍵を使って復号化しホストに送出する手順、並びに(5)デフォルト鍵を使ってデータを暗号化し、パーティション鍵が設定されていない領域へ格納する手順について、図2を用いて順に説明する。
(1)デフォルト鍵の暗号化/復号化;
上記、「初期設定」の項で述べたように、デフォルト鍵が生成されると、鍵暗号化/復号化部28で暗号化され、管理領域45に不揮発的に格納されて管理される。以下においては、便宜上、デフォルト鍵を、ATAパスワードを暗号鍵として暗号化する方法について述べる。鍵の暗号化/復号化は下記(3)で使用するものと同じ論理回路で実行する方式、ファームウエアにAESアルゴリズムを実装して実行する方式など種々の方式で実行することができる。アルゴリズムは、AES方式の他、Triple DES方式など他の暗号化アルゴリズムでもよい。以下、暗号化/復号化部28は、便宜上、詳細には追って説明するAES方式の回路で実行するものとして説明する。
暗号鍵を暗号化する理由は、暗号鍵が平文のまま管理領域45で管理されると、記憶装置2を分解してNANDフラッシュメモリ40から暗号鍵が読み取られてしまい、暗号化されているユーザデータが解読されてしまう危険性があるからである。
初期設定時にパスワード設定を行うと、パスワードは揮発性RAM26に一時記憶される。プロセッサ25は、このパスワードを暗号鍵として鍵暗号化/復号化回路28の鍵入力部(図示せず)に入力して設定するとともに、鍵暗号化/復号化回路28の暗号化用データ入力部にデフォルト鍵を入力する。これによりデフォルト鍵が暗号化され、暗号化データ出力部より出力する。プロセッサ25はフラッシュメモリコントローラ41にコマンドを発行し、暗号化されたデフォルト鍵を管理領域45に格納する。
システムに電源が投入され、パスワードが入力されるとパスワード照合が行われ、アクセス許可がなされるとデフォルト鍵(暗号文)が管理領域45から読み出され、鍵暗号化/復号化回路28の復号化用データ入力部に入力されるとともに、システム電源投入後にユーザが入力しRAM26に記憶しているパスワードを復号鍵として鍵暗号化/復号化回路28の鍵入力部に入力、設定する。これによりデフォルト鍵が復号化され、復号化データ出力部より出力し、RAM26に一時記憶される。
(2)パーティション鍵の暗号化/復号化
パーティション鍵が生成されると、プロセッサ25は、パーティション鍵のデータを鍵暗号化/復号化部28の暗号用データ入力部に入力するとともに、先に設定しているデフォルト鍵(平文)を暗号鍵として鍵暗号化/復号化部28の鍵入力部に入力、設定して暗号化する。
システムに電源が投入され、パスワードが入力されると、パスワード照合が行われ、アクセス許可が成されると、暗号化されたパーティション鍵が管理領域45から読み出され、プロセッサ25は、鍵暗号化/復号化部28の復号用データ入力部に入力するとともに、デフォルト鍵(平文)を復号鍵として鍵暗号化/復号化部28の鍵入力部に入力、設定する。これにより復号化されたパーティション鍵が復号化データ出力部から出力し、揮発性RAM26に一時的に記憶される。
(3)ホストから受け取ったデータを暗号化しパーティションに格納する手順
以下、図2を用いて、ホスト1から受け取ったデータを暗号化してパーティション“2”に格納する手順について、情報機器起動後の状態から説明する。
(a)パーティション鍵マップと暗号鍵のセッティング
システムに電源が投入されてパスワードが入力されると、パスワード照合が行われ、アクセス許可がなされると、管理領域45に格納しているパーティション鍵マップ341を読み出して鍵判定回路231にセッティングするとともに、管理領域45に格納されている暗号化されているデフォルト鍵、パーティション鍵を読み出して、上述の手順に基づきすべて復号化して、暗号鍵格納部232にセットする。暗号鍵格納部232は揮発性メモリで構成する。これによりホストから送出されるデータの暗号化の準備が完了する。
(b)データの入力、アドレスの通知
ホスト1から書き込みコマンドが送られると、デバイスインターフェース21を介して、アドレス(ホストLBA)とデータが暗号化/復号化部24に入力される。データは暗号化/復号化部24の暗号化/復号化回路241の暗号化データ入力部aに入力する。先頭セクタアドレスは暗号化/復号化部24のセクタアドレス更新回路242に入力し、セクタアドレス更新回路242はセクタアドレスを暗号鍵設定回路23の鍵判定回路231に送る。
(c)暗号鍵の選択
鍵判定回路231は先にセットされているパーティション鍵マップ341を参照して、通知されたセクタアドレスに基づき、どのパーティション鍵を使って暗号化すべきかを判定し、鍵データ出力部233に、該当するパーティション鍵選択信号を送る。
(d)暗号鍵の設定、データの暗号化
鍵データ出力部233は暗号鍵格納部232から、選択されたパーティション鍵のデータを読み出して、暗号化/復号化部24の鍵入力部bに入力し、設定する。データが入力部aに入力されるとデータの暗号化が開始される。暗号化はブロックと呼ばれる固定長128bitずつ実行される。暗号化が1セクタ(512byte)終了する度に、セクタアドレス更新回路はセクタ情報を1つインクリメントして、次に暗号化するデータのセクタアドレス情報を鍵選択回路231に送る。これは、暗号化に必要なパーティション鍵を常時監視させ、適切な暗号化を実行させるためである。暗号化が終了したデータは、暗号化データ出力部cからバッファ29に出力する。
(e)フラッシュメモリコントローラへの入力
プロセッサ25はホスト1から受け取ったコマンドを解釈し、フラッシュメモリコントローラ41に書き込みコマンドを発行するとともに(オペレーションコードとアドレスに関する情報を含む)、バッファ29に溜まったデータをNAND型フラッシュメモリ40に書き込む。尚、暗号化とメモリ40に対する書き込み動作は同時並行して実施することができる。
(f)NAND型フラッシュメモリ(パーティション“2”)への書き込み
フラッシュメモリコントローラ41では、論理ブロックアドレス/物理ブロックアドレス変換テーブルを参照して、通知された論理ブロックアドレスに対応する物理ブロックアドレスを割り出し、不図示のエラー訂正回路のENDECで生成したエラー訂正符号とともに、バッファ29から取り出したデータを、割り出した物理ブロックアドレスに書き込むようNANDフラッシュメモリ40にコマンドを発行する。NANDフラッシュメモリ40はコマンドにしたがって、指定されたアドレスに暗号化されたデータを書き込む。以上でデータの暗号化と書き込みが完了する。
(4)パーティションに格納しているデータを読み出し、復号化してホストに送出する手順
プロセッサ25がホスト1からデバイスインターフェース21を介してreadコマンドを受領すると、先頭セクタアドレス(ホストLBA)を暗号化/復号化部24に設定する。
暗号化/復号化部24のアドレス更新回路242は、先に設定されたアドレスをラッチしておき、セクタアドレスを鍵判定回路231に送る。鍵判定回路231は、このアドレスに基づきパーティション鍵マップ341を参照し、復号に必要な鍵を判定し、鍵選択回路232に通知し、鍵データ出力部233から出力させ、暗号化/復号化部24の鍵入力部bにセットし、復号化用データの入力に待機する。復号に用いる鍵は暗号化に用いた鍵と同じ鍵である。即ち、暗号鍵と復号鍵は共通鍵となっている。
プロセッサ25はホスト1から受け取ったコマンドを解釈し、フラッシュメモリコントローラ41に対して読み出しコマンドを発行する。このコマンドには読み出すべきデータのアドレス情報を含む。フラッシュメモリコントローラ41は、論理ブロックアドレス/物理ブロックアドレス変換テーブルを参照して、アドレスとして通知された論理ブロックアドレスに対応する物理ブロックアドレスを割り出してデータを読み出し、エラー訂正回路によりエラー有無のチェックを行い、エラーがあれば訂正し、データを暗号化/復号化部24の復号用データ入力部cに入力する。データ入力と同時に復号化が開始される。
復号化は暗号化と同じく128bitずつ実行される。1セクタの復号が終了する度に、セクタ情報を1つインクリメントして、そのセクタアドレス情報が、セクタアドレス更新回路242から鍵判定回路231に通知される。復号化が終了すると、暗号化/復号化部24の復号化データ出力部aより、復号化されたデータがデバイスインターフェース21を介してホスト1に送出される。readコマンドに係るすべてのデータが送出されるとreadコマンドに対する処理が完了する。
(5)デフォルト鍵を使ってデータを暗号化し、パーティション鍵が設定されてい
ない領域へ格納する手順
上述の通り、パーティションが設定されると、マシン側のOSよりパーティションテーブルデータの書き込みコマンドがマシン側から入力され、パーティションテーブルデータが暗号化/復号化部24の暗号用データ入力部aに入力される。プロセッサ25は、データの先頭セクタアドレスを鍵判定回路231に送ると、鍵判定回路231はパーティション鍵マップ341を参照し、通知された先頭セクタアドレスがいずれのパーティションにも属さないため、暗号鍵がデフォルト鍵であると判定し、デフォルト鍵データ(平文)を暗号鍵として暗号化/復号化部24の鍵入力部bに入力、設定する。これにより、パーティションテーブルデータの暗号化が開始される。
一方プロセッサ25は、フラッシュメモリコントローラ41に書き込みコマンド(オペレーションコードとアドレスの情報を含む)を送る。フラッシュメモリコントローラ41が、暗号文を受け取ると、アドレスとして指定された論理ブロックアドレスを、物理ブロックアドレス/論理ブロックアドレス変換テーブルを用いて変換した物理ブロックアドレスに、エラー訂正符号とともにデータを指定されたアドレスに書き込む。MBR記憶領域51は、通常、セクタアドレス “0”に予定されている。OS520を書き込んだ後は、マシン側からブートローダ512の書き込みコマンドが発行される。この場合も、パーティションテーブルと同様な手順で、指定されたアドレスにデータを書き込む。
(変更例)
上述した実施形態では、初期設定としてはじめにデフォルト鍵を生成した例を示したが、初期設定を行う段階ですでにベンダーによりデフォルト鍵が生成されている場合は必要ではない。またユーザがパーティション鍵を生成することを当然予定されてものとしてみれば、デフォルト鍵は必ずしも必要ではない。その場合、パーティション鍵を暗号化する場合は、ATAパスワード(平文)を鍵としてパーティション鍵を暗号化すればよい。ATAパスワードが設定されない場合は、適当な値で暗号化すればよい。また、論理ブロックアドレス/物理ブロックアドレス変換テーブルやエラー訂正回路をプロセッサ25に持たせ、プロセッサ25がフラッシュメモリコントローラ41の役割を兼ねてもよい。その場合、フラッシュメモリコントローラ41は不要とであり、プロセッサ25からのコマンドとバッファ29からのデータは、NANDフラッシュメモリ40のNANDインターフェースに直接入力すればよい。
(ユーザ領域のデータの消去)
本実施形態の記憶装置2を組み込んだ情報機器は再利用される場合がある。資産の有効活用の観点からすれば、OSやアプリケーションプログラムなど機器の運用に必要なプログラムは転売時に削除せず資産として、そのまま後の使用者に使用させることが好ましい。一方、機密情報が格納されている可能性のある特定のユーザデータ領域、例えば、本実施形態におけるパーティション“2”の撮像データは、前使用者の機密データが記憶されているため、転売時には消去することが望ましい。
上記の観点に立った場合、本実施形態例において消去すべきは、パーティション“2”に係るデータのみであるから、フラッシュメモリコントローラ41にパーティションデータ無効化コマンドを解釈する手段を設け、ホスト1から該コマンドが発行されたときは、そのパーティション鍵を消去する。ここで消去とは、パーティション鍵自体を完全に消去し、以降そのパーティションに記憶されている暗号化されたデータ(のみ)を解読不可能にすることをいう。パーティションデータ無効化コマンドは、専用のオペレーションコードと無効化の対象となるパーティション番号で定義することができる。パーティション鍵が消去されると、そのパーティションのデータは以降、復号化して読み出すことはできない。
パーティション鍵消去方法例1として、パーティションデータ無効化コマンドを受け取ったプロセッサ25が、当該コマンドの実行をフラッシュメモリコントローラ41にリクエストし、コントローラ41内のプロセッサがコマンドのオペレーションコードを解釈し、管理領域45に格納されているKey2を消去する。この消去はKey2を記憶している物理ブロックの当該Key2以外のデータを他のブロックに一旦退避させ、元のブロックをNAND型フラッシュメモリが有するeraseコマンドでブロック消去(セル電荷の除去)し、退避していたブロックのデータを元のブロックに書き戻すことにより行う。このとき退避先のブロックの消去も実行する。
新たにパーティション鍵“Key2”を設定するのは機器の性質上メンテナンスの一環として当該情報機器に詳しい専用の業者(初期設定ソフトを用いて行う)である場合も想定される。この場合パーティション“2”のデータが完全消去されていれば、データを見られてしまうという心配をしなくて済み、したがって前使用者は安心して当該情報機器を再利用にまわすことができ、資源の有効活用を図ることができる。
パーティション鍵“Key2”を消去するとき、パーティション鍵マップ341におけるパーティション“2”に対応する暗号鍵を、“デフォルト鍵”に書き換えるとよい。こうすれば、パーティション“2”に対する以降の書き込みは、デフォルト鍵によって自動的に暗号化されて記憶され、パーティション鍵の新たな設定をしなくても、継続使用することができる。仮にデータにアクセスしても、旧パーティション鍵“Key2”で暗号化されたデータがデフォルト鍵で復号化されるので、ランダムなデータが読み出されるだけで、機密漏洩の心配はない。
この他パーティション鍵消去方法例2として、パーティション鍵“Key2”の消去を、パーティション“2”の新たなパーティション鍵の設定により実行してもよい。これは、プロセッサ25がパーティション消去コマンドを受けたとき、新たなパーティション鍵“Key2”を生成、暗号化するとともに、フラッシュメモリコントローラ41にコマンドを発行し、暗号化したあらたなパーティション鍵“Key2”のデータを渡して管理領域45に格納させる。この格納は、旧パーティション鍵に対して新たな鍵を上書きすることにより実行する。なおこの場合はパーティション鍵マップの書き換えは不要であることが理解されよう。
また、情報機器に電源投入された際、パーティションデータ無効化コマンドを記憶装置2(プロセッサ25)に発行しておき、印刷が終わって一定の状態(例えば、機器がスタンバイ状態)になったときに、パーティション鍵“Key2”を自動的に更新(新しいパーティション鍵を設定)してもよい。あるいは所定時間間隔、たとえば12時間おきに、タイマーイベントとして実行してもよい。
記憶装置2が外付けのSSDの場合は、ユーザがパーティションを任意の数設定することができ、使い方もまちまちであるが、特定パーティションを機密情報格納用として使用し、使用途中で不要になった機密情報を削除したい場合も生じる。ユーザは、パーティション設定時に、予めどのパーティションを機密情報格納用とするか把握することができるので、機密情報を削除する場合は、そのパーティションに係るパーティション鍵のみ消去すればよい。消去するには専用のアプリケーションソフトによって実行できる。
パーティション設定時に消去してよいパーティションと、消去してはいけないパーティションを定義できる場合は、その情報を、図6の341(c)、341(d)に示すように、パーティション鍵マップ341に属性として書き込むようにしてもよい。属性は、ホスト1からプロセッサ25にコマンドを発行し、パーティション鍵マップ341の然るべき場所に書き込めばよい。システム稼動中、パーティション鍵マップをRAM26に記憶させておき、フラッシュメモリコントローラ41がパーティション鍵消去コマンドを受け取ったときに、パーティション鍵マップ341の属性を確認し、消去禁止のパーティションに対する消去コマンドであった場合はホスト1にエラーを返す。これにより、消去してはいけないデータを誤って消去してしまうことがない。これに付随し、OS520を格納したパーティション“0”とアプリケーションプログラム521を格納したパーティション“1”を、読み出し専用の領域に設定するとよい。
なお、パスワードは記憶装置2のアクセスとデフォルト鍵の暗号化に使用されるだけで、再利用者があらたなパスワードを設定してもあらたなデフォルト鍵が生成されるわけではない。パスワードが設定されない場合は、記憶装置2にだれでも自由にアクセスでき、暗号化されて記憶されているデータは自動的に復号化して読み出される。よって、パスワードを設定しない場合、暗号化することはあまり重要な意味を持たない。
この点、ホスト1から全暗号化データを無効化するコマンドを発行し、デフォルト鍵を消去するようにすれば、パーティション鍵の復号化を実行できなくなるので、パーティションで定義されている領域だけでなく、記憶領域44に暗号化されて記憶されているすべてのデータを解読不能にすることができる。記憶装置2やこれを組み込んだ情報機器を廃棄する場合、記憶装置2を物理的に破壊するなどしなくてもよいため、非常に利便性の高い記憶装置、情報機器を提供することができる。また、本記憶装置1は、全体を一つのLSIで構成することができる。
以上、本実施形態例によれば、パスワード機能を解除し、或いは記憶部を取り外しても、暗号化されたデータしか読み出せない。またパスワードはハッシュ値を以って管理され、且つ、パーティション鍵はデフォルト鍵で暗号化され、デフォルト鍵はパスワードで暗号化されて管理されるので、パスワード、デフォルト鍵、パーティション鍵のいずれも解読される心配がない。即ち暗号化されたデータが解読される可能性は極めて低い。尚且つ、転売、リサイクル、或いは廃棄のときに、暗号鍵を消去すればデータは無効となり、記憶装置に一層のセキュリティを確保できる。
本出願人における先願(特願2009−018425)では、特定パーティションのデータのみを高速消去する方法を提案したが、本願のハードウエア暗号機能を有する記憶装置の場合は、特定パーティション鍵のみを瞬時に消去するので、消去時間は先願に比べて高速である。
1 ホスト
2 本発明の記憶装置
20 暗号/復号処理部
21 デバイスインターフェース
23 暗号鍵設定回路
24 暗号化/復号化部
25 プロセッサ
26 RAM
27 鍵生成部
28 鍵暗号化/復号化部
29 バッファ
30 記憶部
31 記憶部制御手段
33、44 記憶領域
34、45 管理領域
231 鍵判定回路
232 暗号鍵格納部
233 鍵データ出力部
241 暗号化/復号化回路
242 セクタアドレス更新回路
341 パーティション鍵マップ
a 暗号化用データ入力部、復号化データ出力部
b 鍵入力部
c 暗号化データ出力部、復号用データ入力部






















本発明はハードウエア暗号化手段を具備した記憶装置の改良、並びに該暗号化記憶装置を組み込んでなる情報機器、暗号化記憶装置のセキュリティ方法に関する。
ハードディスク(HDD)、ソリッドステートドライブ(SSD)、USBメモリなどの記憶装置に記憶したデータの漏洩が問題となっており、そのため、セキュリティ方法としてパスワード認証をアクセスの条件としている。しかしながら、最近の報告によれば、サービス領域のATAパスワード設定フラグをオフにしてロック機能を無効にできるといい(パスワード解除)、事実、捜査機関向けに、斯かるパスワード解除装置が販売されているのが現状である。パスワードが解除されればデータは容易に読まれてしまう。パスワードが解除されない場合でも、記憶部を記憶装置から取り外して、データを直接読み取られる危険がある。
そこで、最近ではAES(Advanced Encryption Standard)などの暗号化を用いてデータを記憶している。AESはブロックと呼ばれる固定長(128bit)のデータを単位として、暗号化/復号化を共通の鍵で行
うものである。AESでは3種類の鍵長が定義されており、128bit/192bit/256bitのいずれかを用いることができる。鍵長が長いほど、鍵を全数検索する総当り攻撃などに強く、128bit/192bit/256bitの鍵長は、現在の計算機の処理能力では解読に非現実的な時間を要するため安全とされている。
AES暗号化には、ホスト側で行うもの(ソフトウエア暗号化)があるが高価であり、システムパフォーマンスに影響があった。そこで最近は、専用のチップを組み込み、AES暗号化をデバイス内部で行う記憶装置(ハードウエア暗号化)が販売されている。この場合、何らかの方法により暗号鍵のデータが把握されると、記憶しているデータが読み出されてしまう危険性は否定できない。
また、マルチファンクションプリンタなどの情報機器に記憶装置を組み込んで使用する場合、記憶装置には情報機器に必要な情報(オペレーティングシステムやアプリケーションプログラム)と使用者の機密情報(マルチファンクションプリンタの場合で言えば、プリント用の撮像データ)の両者が記憶される。情報機器を廃棄する場合は記憶データの全部を消去してもよいが、転売、レンタルなどで再利用する場合、機密情報は消去することが望ましいが、機器の運用に必要な情報は資源の有効活用の観点から、そのまま残すことが好ましい。また廃棄する場合は、どのような情報が記憶されているか判断することなく、データを無効化できることが望ましい。
特表2005−50473号公報
そこで本発明が解決すべき第1の課題は、ハードウエア暗号記憶装置における暗号鍵の安全な管理方法の提供にある。第2の課題はハードウエア暗号記憶装置に複数種類の情報を記憶し、譲渡、廃棄、レンタル時等において、重要度、種類に応じて任意に情報を無効化する方法の提供にある。第3の課題は、ハードウエア暗号記憶装置に複数種類の情報を記憶している場合において、廃棄時等において、どのような情報が記憶されているか判断することなくデータを無効化する方法の提供にある。その他の課題は、明細書、図面、特に特許請求の範囲により自ずと明らかとなろう。
本発明では、上記課題解決のため本発明が採用する新規な特徴的構成により上記課題を解決する。即ち本発明方法の第1の特徴は、記憶装置に複数のパーティションを設けるとともに、各パーティションにそれぞれ固有のパーティション鍵を定義する。パーティション鍵は暗号化して管理する。ホストから特定パーティションのデータを無効化するコマンドが発行されたときは、そのパーティション鍵の消去を実行する。本発明方法の第2の特徴は、記憶装置に一又は複数のパーティションを設けるとともに、パーティションに固有のパーティション鍵を定義する。パーティション鍵はデフォルト鍵で暗号化して管理する。ホストから全データを無効化するコマンドが発行された場合、デフォルト鍵を消去する。その他、本発明は、特許請求範囲において上位概念から下位概念に亙り列挙する新規な構成的特長により上記課題を解決する。
本発明によれば、データを暗号化して記憶するとともに、暗号/復号化鍵を暗号化して管理するので、パスワード機能が解除され、或いは記憶部が記憶装置から取り外されても、データが解読されることがない。また記憶装置にユーザが複数のパーティションを設けるので、重要度、種類に応じてデータを記憶できるとともに、パーティションごとに固有の暗号化/復号化鍵を定義するので、ホストから特定パーティションのデータを無効化するコマンドが発行されたとき、そのパーティション固有の鍵を消去することにより、任意のデータのみ無効化し、その余のデータは継続使用することができる。また、パーティション鍵をデフォルト鍵で暗号化して管理することにより、ホストから全データを無効化するコマンドが発行された場合、デフォルト鍵の消去を実行することにより、暗号化された全データを無効化することができる。また無効化を瞬時に実行できる。
本発明の記憶装置の基本構成例である。 NAND型フラッシュメモリを用いた記憶装置の構成例である。 記憶部の領域例である。 パーティション鍵生成前のパーティション鍵マップの構成例である。 パーティション鍵マップの構成例である。 パーティション鍵マップの他の構成例である。
以下、本発明を実施するための最良の形態について図面を用いて説明するが、本発明は特許請求の範囲内において種々の形態を採ることができ、下記実施形態に限定されないことはいうまでもない。
(システム基本構成)
図1は、本発明の実施形態に係る記憶装置の基本構成例である。図1に示すように、本発明のセキュリティ方法は、本発明の記憶装置2と、記憶装置2に対するメディアアクセス主体であるホスト1とからなるシステムで実行される。記憶装置2は、ホスト1からコマンド(オペレーションコード、指定アドレス)や書き込み用データを含む)を受け取ったり、読み出したデータやコマンドステータスをホスト1に送出するデータデバイスインターフェース21と、データを格納する記憶部30と、記憶部30へのデータの書き込みや記憶部30からのデータの読み出しの制御を実行する記憶部制御手段31と、ホスト1から送られたデータを暗号化するとともに、記憶部30から読み出されたデータを復号化する暗号/復号処理部20を有する。
暗号/復号処理部20は、鍵生成部27と、鍵生成部27で生成された鍵を用いて所定のロジックに基づきデータの暗号化/復号化を実行する暗号化/復号化部24と、暗号化/復号化部24でデータを暗号化/復号化するための鍵を選択して暗号化/復号化部24に設定する暗号鍵設定回路23と、鍵暗号化/復号化部28を有する。これらはプロセッサ25により統括的に制御される。暗号化/復号化部24は独自のハードウエアロジックで構成され、プロセッサ25の処理に拠らないため、非常に高速で処理を実行できる。RAM26は、揮発性メモリであり、プロセッサ25の作業領域である。暗号鍵設定回路23は、後述する各種の暗号鍵をシステム起動中格納する暗号鍵格納部232、暗号化又は復号化を前記いずれの鍵で実行するかを判定する鍵判定回路231、判定回路231からの信号に基づき選択された鍵データを暗号化/復号化部24に入力、設定する鍵データ出力部233を有する。記憶部30は、記憶領域33と周知の管理領域34を有し、管理領域34は後述するデフォルト鍵、パーティション鍵、並びにパーティション鍵マップ341を格納する。鍵暗号化/復号化部28は、プロセッサ25の制御に基づき、デフォルト鍵、パーティション鍵の暗号化及び復号化を行う。
記憶装置2は、HDDの他、記憶部30にNAND型フラッシュメモリのような不揮発性半導体記憶装置を用いたSSDなどで構成することができる。HDDの場合、記憶部制御手段は、磁気ヘッドのシーク、データの書き込み、読み出しを制御する。SSDの場合、記憶部制御手段はNANDフラッシュメモリコントローラで構成される。
ホスト1との間のデバイスインターフェース21は、IDEインターフェースやシリアルATAインターフェースで構成され得る。記憶装置2はホスト1に挿抜して使用するUSBメモリで構成してもよい。
以下、本発明の記憶装置2がSSDで構成されるとともに、情報機器に組み込んで使用される例について、図2乃至図5を用いて説明する。SSDは図2に示すように、記憶部がNAND型フラッシュメモリ40で構成される。なお図2では、図1と同一の機能及び構成を有する要素については、同一の符号を付している。
本実施形態は、記憶部がNAND型フラッシュメモリ40で構成されるため、記憶部制御手段は、フラッシュメモリコントローラ41で構成される。このコントローラ41は、NAND型フラッシュメモリ40にコマンドを発行しデータの読み書きを実行するもので、NAND型フラッシュメモリ特有のbadブロックに対処するための不図示のエラー訂正回路、論理ブロックアドレス/物理ブロックアドレス変換テーブルを有する。
(初期設定)
情報機器が例えばマルチファンクションプリンタのような組み込み系の機器の場合、はじめに情報機器のベンダーは、初期設定を行うため、SSDを、OSその他、情報機器の運用に必要なソフトウエアを書き込むマシンに接続する。マシンはハードウエア暗号の初期設定ツールがインストールされている専用のコンピュータで構成され、図2のホスト1がこれに相当する。マシンに電源を投入後、まず初期設定ツールであるソフトウエアを用いてデフォルト鍵生成を行う。デフォルト鍵は、鍵生成部27が有する乱数発生器によって生成される。このデフォルト鍵を“KeyD”とする。デフォルト鍵は初期設定のとき生成されるもので、その後変更されることはない。
デフォルト鍵は適当な値を暗号鍵として、鍵暗号化/復号化回路28よって暗号化され、管理領域45に格納される。記憶装置が外付けのSSDのように一般ユーザが使用する場合、盗難に備えてATAが標準機能として有するパスワードを設定できるが、デフォルト鍵生成時までにこのパスワードが設定されている場合は、パスワードを暗号鍵としてデフォルト鍵が暗号化される
尚パスワードは一方向ハッシュ関数を通してハッシュ値に変換され、管理領域45に格納され、以降の記憶装置2でのパスワード照合にそのまま利用される。即ち、記憶装置2を組み込んだ若しくは記憶装置2を接続したシステムに、電源が投入された後、記憶装置2へのアクセス許可を受けるためにATAパスワードが入力されると、同様にハッシュ関数によってハッシュ値に変換される。そして、管理領域45に記憶しているハッシュ値と照合され、両者が一致するとアクセスが許可される。ハッシュ値が元の状態に戻すことができない性質を利用したものであり、これによりパスワードを安全に管理することができる。
尚、デフォルト鍵と後述するパーティション鍵の生成は、プロセッサ25がコマンドを解釈して、鍵生成部27によって実行するものである。暗号化されたデフォルト鍵の管理領域45への格納はデフォルト鍵生成コマンドに付随して一括して実行される。暗号化されたパーティション鍵の管理領域45への格納も、同様にパーティション鍵の生成に付随して実行される。内部処理としては、プロセッサ25がフラッシュメモリコントローラ41にコマンドを発行して実行する。
デフォルト鍵は、必ず生成される暗号鍵であって、以下の機能を有する。デフォルト鍵を生成すると、更のSSD(パーティション設定前)にベンダーによって何らかのシステム上必要なデータが書き込まれていても、データ読み出しの際、そのデータはデフォルト鍵で復号化されてから読み出されるので、意味のないランダムなデータが読み出される。ユーザが後述するパーティションの設定後、パーティション鍵の生成をしなかった場合(default)でも、その後ホストから送出されるデータはデフォルト鍵で自動的に暗号化される。また、後述するパーティションテーブルやマスターブートレコードのように、パーティションで定義されていない領域に対するホストからの書き込みデータを暗号化する。詳しくは後述する。
次に、必要な数だけパーティションを設定する。図3では、パーティション“0”(52)乃至パーティション“2”(54)を設定した様子を示している。各パーティションで構成される領域の記憶容量は、そこに格納することが予定されているファイルの容量を勘案して決定する。マシンが初期設定者からパーティション設定の指示を受けると、マシンは記憶領域44をどのように分割して使うか、その内容をMBR記憶領域51内のパーテションテーブル511へ書き込。この書き込みはデフォルト鍵によって暗号化されて実行されるとともに、平文データがRAM26に一時記憶される。
プロセッサ25は、RAM26に一時記憶されているパーティションテーブル511のデータを参照し、各パーティションのアドレス(論理セクタアドレス)を、管理領域45に記憶させるためのコマンドをフラッシュメモリコントローラ41に発行する。コマンドパラメータとして、パーティション番号、パーティションの先頭セクタアドレスと終了セクタアドレス、若しくは、パーティション番号、パーティションの先頭アドレスとセクタ数を指定する。このコマンドは、後述するパーティション鍵マップ341を生成するためのものである。図4は、記憶された状態を模式的に表したものであり、後述するパーティション鍵を生成したときには、パーティション鍵マップ341として完成されるものである。図示するように、この段階では、各パーティションの先頭セクタアドレスと終了セクタアドレス(図4(a))、若しくは先頭セクタアドレスとそのパーティションを構成するセクタ数(図4(b))で構成される。
上記、ユーザが設定したパーティションは、ホスト1からドライブと認識され得る領域を構成する。
次に、鍵生成部27が持っている乱数発生器を使って各パーティションの暗号鍵を生成する。本実施例ではパーティションを3つ設定しているので、パーティション鍵を、Key“0”乃至Key“2”の3つ生成するものとする。パーティションとパーティション鍵番号の関係は図3に示す通り、パーティション“0”、“1”、“2”にそれぞれ対応して、パーティション鍵Key“0”、Key“1”、Key“2”とする。そして生成したパーティション鍵を、デフォルト鍵(平文)を暗号鍵として、鍵暗号化/復号化回路28よって暗号化し、管理領域45の所定の領域に格納する(詳しくは後述する)。
このときプロセッサ25は、管理領域45に、パーティション設定時に記憶された各パーティションのセクタアドレス情報に対し、各パーティションを暗号化するパーティション鍵との関係を追記し、パーティション鍵マップ341を完成する。図5は完成したパーティション鍵マップ341の例である。図示するように、各パーティションの先頭セクタアドレスと終了セクタアドレス並びに対応するパーティション鍵の関係(図5(a))、若しくは先頭セクタアドレスとそのパーティションを構成するセクタ数並びに対応するパーティション鍵の関係(図5(b))で構成される。図5において、対応暗号鍵として、Key0乃至Key2と記載しているが、これはKeyのデータではない。実際にはKey番号を特定する情報、例えばそのKeyのID番号である。
次にパーティションへ、組込みが予定されている情報機器の運用に必要なソフトウエアを格納する。具体的には、図3に示すように、パーティション“0”にはOS520を、パーティション“1”には、情報機器、例えばマルチファンクションプリンタを運用するために必要な各種アプリケーションプログラム530を格納する。このデータはファイルシステムによってファイルとして記憶される。OS520を格納した際、マシンはMBR記憶領域51にブートローダ512を記録する。ブートローダ512は、後述するように、デフォルト鍵によって暗号化されて記録される。
ホスト1から書き込み指令されるOS520はパーティション鍵Key“0”を暗号鍵として、アプリケーションプログラム530はKey“1”を暗号鍵として、暗号化/復号化部24で暗号化してパーティションに格納される。このようにして設定したSSDを、予定されている情報機器に組み込む。記憶装置2は情報機器にすでに組み込まれているホスト1に接続されて使用される。この場合のホスト1はCPUが実装されているCPUボードで構成することができる。パーティション“2”はユーザデータ領域、例えばマルチファンクションプリンタのスキャナで撮像されたプリント用データが格納される領域で、最も機密性の高いパーティションである。プリント用のデータが撮像されると、Key“2”により撮像データが暗号化されてパーティション“2”に格納される。
以下、(1)デフォルト鍵の暗号化/復号化、(2)パーティション鍵の暗号化/復号化、(3)ホストから受け取ったデータを暗号化し、ユーザが定義したパーティションに格納する手順、(4)ユーザが定義したパーティションに格納しているデータを読み出し、パーティション鍵を使って復号化しホストに送出する手順、並びに(5)デフォルト鍵を使ってデータを暗号化し、パーティション鍵が設定されていない領域へ格納する手順について、図2を用いて順に説明する。
(1)デフォルト鍵の暗号化/復号化;
上記、「初期設定」の項で述べたように、デフォルト鍵が生成されると、鍵暗号化/復号化部28で暗号化され、管理領域45に不揮発的に格納されて管理される。以下においては、便宜上、デフォルト鍵を、ATAパスワードを暗号鍵として暗号化する方法について述べる。鍵の暗号化/復号化は下記(3)で使用するものと同じ論理回路で実行する方式、ファームウエアにAESアルゴリズムを実装して実行する方式など種々の方式で実行することができる。アルゴリズムは、AES方式の他、Triple DES方式など他の暗号化アルゴリズムでもよい。以下、暗号化/復号化部28は、便宜上、詳細には追って説明するAES方式の回路で実行するものとして説明する。
暗号鍵を暗号化する理由は、暗号鍵が平文のまま管理領域45で管理されると、記憶装置2を分解してNANDフラッシュメモリ40から暗号鍵が読み取られてしまい、暗号化されているユーザデータが解読されてしまう危険性があるからである。
初期設定時にパスワード設定を行うと、パスワードは揮発性RAM26に一時記憶される。プロセッサ25は、このパスワードを暗号鍵として鍵暗号化/復号化回路28の鍵入力部(図示せず)に入力して設定するとともに、鍵暗号化/復号化回路28の暗号化用データ入力部(図示せず)にデフォルト鍵を入力する。これによりデフォルト鍵が暗号化され、暗号化データ出力部より出力する。プロセッサ25はフラッシュメモリコントローラ41にコマンドを発行し、暗号化されたデフォルト鍵を管理領域45に格納する。
システムに電源が投入され、パスワードが入力されるとパスワード照合が行われ、アクセス許可がなされるとデフォルト鍵(暗号文)が管理領域45から読み出され、鍵暗号化/復号化回路28の復号化用データ入力部(図示せず)に入力されるとともに、システム電源投入後にユーザが入力しRAM26に記憶しているパスワードを復号鍵として鍵暗号化/復号化回路28の鍵入力部に入力、設定する。これによりデフォルト鍵が復号化され、復号化データ出力部(図示せず)より出力し、RAM26に一時記憶される。
(2)パーティション鍵の暗号化/復号化
パーティション鍵が生成されると、プロセッサ25は、パーティション鍵のデータを鍵暗号化/復号化部28の暗号用データ入力部に入力するとともに、先に設定しているデフォルト鍵(平文)を暗号鍵として鍵暗号化/復号化部28の鍵入力部に入力、設定して暗号化する。
システムに電源が投入され、パスワードが入力されると、パスワード照合が行われ、アクセス許可が成されると、暗号化されたパーティション鍵が管理領域45から読み出され、プロセッサ25は、鍵暗号化/復号化部28の復号用データ入力部に入力するとともに、デフォルト鍵(平文)を復号鍵として鍵暗号化/復号化部28の鍵入力部に入力、設定する。これにより復号化されたパーティション鍵が復号化データ出力部から出力し、揮発性RAM26に一時的に記憶される。
(3)ホストから受け取ったデータを暗号化しパーティションに格納する手順
以下、図2を用いて、ホスト1から受け取ったデータを暗号化してパーティション“2”に格納する手順について、情報機器起動後の状態から説明する。
(a)パーティション鍵マップと暗号鍵のセッティング
システムに電源が投入されてパスワードが入力されると、パスワード照合が行われ、アクセス許可がなされると、管理領域45に格納しているパーティション鍵マップ341を読み出して鍵判定回路231にセッティングするとともに、管理領域45に格納されている暗号化されているデフォルト鍵、パーティション鍵を読み出して、上述の手順に基づきすべて復号化して、暗号鍵格納部232にセットする。暗号鍵格納部232は揮発性メモリで構成する。これによりホストから送出されるデータの暗号化の準備が完了する。
(b)データの入力、アドレスの通知
ホスト1から書き込みコマンドが送られると、デバイスインターフェース21を介して、アドレス(ホストLBA)とデータが暗号化/復号化部24に入力される。データは暗号化/復号化部24の暗号化/復号化回路241の暗号化データ入力部aに入力する。先頭セクタアドレスは暗号化/復号化部24のセクタアドレス更新回路242に入力し、セクタアドレス更新回路242はセクタアドレスを暗号鍵設定回路23の鍵判定回路231に送る。
(c)暗号鍵の選択
鍵判定回路231は先にセットされているパーティション鍵マップ341を参照して、通知されたセクタアドレスに基づき、どのパーティション鍵を使って暗号化すべきかを判定し、鍵データ出力部233に、該当するパーティション鍵選択信号を送る。
(d)暗号鍵の設定、データの暗号化
鍵データ出力部233は暗号鍵格納部232から、選択されたパーティション鍵のデータを読み出して、暗号化/復号化部24の鍵入力部bに入力し、設定する。データが入力部aに入力されるとデータの暗号化が開始される。暗号化はブロックと呼ばれる固定長128bitずつ実行される。暗号化が1セクタ(512byte)終了する度に、セクタアドレス更新回路はセクタ情報を1つインクリメントして、次に暗号化するデータのセクタアドレス情報を鍵選択回路231に送る。これは、暗号化に必要なパーティション鍵を常時監視させ、適切な暗号化を実行させるためである。暗号化が終了したデータは、暗号化データ出力部cからバッファ29に出力する。
(e)フラッシュメモリコントローラへの入力
プロセッサ25はホスト1から受け取ったコマンドを解釈し、フラッシュメモリコントローラ41に書き込みコマンドを発行するとともに(オペレーションコードとアドレスに関する情報を含む)、バッファ29に溜まったデータをNAND型フラッシュメモリ40に書き込む。尚、暗号化とメモリ40に対する書き込み動作は同時並行して実施することができる。
(f)NAND型フラッシュメモリ(パーティション“2”)への書き込み
フラッシュメモリコントローラ41では、論理ブロックアドレス/物理ブロックアドレス変換テーブルを参照して、通知された論理ブロックアドレスに対応する物理ブロックアドレスを割り出し、不図示のエラー訂正回路のENDECで生成したエラー訂正符号とともに、バッファ29から取り出したデータを、割り出した物理ブロックアドレスに書き込むようNANDフラッシュメモリ40にコマンドを発行する。NANDフラッシュメモリ40はコマンドにしたがって、指定されたアドレスに暗号化されたデータを書き込む。以上でデータの暗号化と書き込みが完了する。
(4)パーティションに格納しているデータを読み出し、復号化してホストに送出する手順
プロセッサ25がホスト1からデバイスインターフェース21を介してreadコマンドを受領すると、先頭セクタアドレス(ホストLBA)を暗号化/復号化部24に設定する。
暗号化/復号化部24のアドレス更新回路242は、先に設定されたアドレスをラッチしておき、セクタアドレスを鍵判定回路231に送る。鍵判定回路231は、このアドレスに基づきパーティション鍵マップ341を参照し、復号に必要な鍵を判定し、鍵選択回路232に通知し、鍵データ出力部233から出力させ、暗号化/復号化部24の鍵入力部bにセットし、復号化用データの入力に待機する。復号に用いる鍵は暗号化に用いた鍵と同じ鍵である。即ち、暗号鍵と復号鍵は共通鍵となっている。
プロセッサ25はホスト1から受け取ったコマンドを解釈し、フラッシュメモリコントローラ41に対して読み出しコマンドを発行する。このコマンドには読み出すべきデータのアドレス情報を含む。フラッシュメモリコントローラ41は、論理ブロックアドレス/物理ブロックアドレス変換テーブルを参照して、アドレスとして通知された論理ブロックアドレスに対応する物理ブロックアドレスを割り出してデータを読み出し、エラー訂正回路によりエラー有無のチェックを行い、エラーがあれば訂正し、データを暗号化/復号化部24の復号用データ入力部cに入力する。データ入力と同時に復号化が開始される。
復号化は暗号化と同じく128bitずつ実行される。1セクタの復号が終了する度に、セクタ情報を1つインクリメントして、そのセクタアドレス情報が、セクタアドレス更新回路242から鍵判定回路231に通知される。復号化が終了すると、暗号化/復号化部24の復号化データ出力部aより、復号化されたデータがデバイスインターフェース21を介してホスト1に送出される。readコマンドに係るすべてのデータが送出されるとreadコマンドに対する処理が完了する。
(5)デフォルト鍵を使ってデータを暗号化し、パーティション鍵が設定されてい
ない領域へ格納する手順
上述の通り、パーティションが設定されると、マシン側のOSよりパーティションテーブルデータの書き込みコマンドがマシン側から入力され、パーティションテーブルデータが暗号化/復号化部24の暗号用データ入力部aに入力される。プロセッサ25は、データの先頭セクタアドレスを鍵判定回路231に送ると、鍵判定回路231はパーティション鍵マップ341を参照し、通知された先頭セクタアドレスがいずれのパーティションにも属さないため、暗号鍵がデフォルト鍵であると判定し、デフォルト鍵データ(平文)を暗号鍵として暗号化/復号化部24の鍵入力部bに入力、設定する。これにより、パーティションテーブルデータの暗号化が開始される。
一方プロセッサ25は、フラッシュメモリコントローラ41に書き込みコマンド(オペレーションコードとアドレスの情報を含む)を送る。フラッシュメモリコントローラ41が、暗号文を受け取ると、アドレスとして指定された論理ブロックアドレスを、物理ブロックアドレス/論理ブロックアドレス変換テーブルを用いて変換した物理ブロックアドレスに、エラー訂正符号とともにデータを指定されたアドレスに書き込む。MBR記憶領域51は、通常、セクタアドレス “0”に予定されている。OS520を書き込んだ後は、マシン側からブートローダ512の書き込みコマンドが発行される。この場合も、パーティションテーブルと同様な手順で、指定されたアドレスにデータを書き込む。
(変更例)
上述した実施形態では、OS520等を組み込む初期設定段階ではじめにデフォルト鍵を生成した例を示したが、工場出荷段階でSSDベンダーデフォルト鍵生成ている場合は必要ではない。またユーザがパーティション鍵を生成することが必須の要件とされている場合は、デフォルト鍵は必ずしも必要ではない。その場合、パーティション鍵を暗号化する場合は、ATAパスワード(平文)を鍵としてパーティション鍵を暗号化すればよい。ATAパスワードが設定されない場合は、適当な値で暗号化すればよい。また、論理ブロックアドレス/物理ブロックアドレス変換テーブルやエラー訂正回路をプロセッサ25に持たせ、プロセッサ25がフラッシュメモリコントローラ41の役割を兼ねてもよい。その場合、フラッシュメモリコントローラ41は不要とであり、プロセッサ25からのコマンドとバッファ29からのデータは、NANDフラッシュメモリ40のNANDインターフェースに直接入力すればよい。
(ユーザ領域のデータの消去)
本実施形態の記憶装置2を組み込んだ情報機器は再利用される場合がある。資産の有効活用の観点からすれば、OSやアプリケーションプログラムなど機器の運用に必要なプログラムは転売時に削除せず資産として、そのまま後の使用者に使用させることが好ましい。一方、機密情報が格納されている可能性のある特定のユーザデータ領域、例えば、本実施形態におけるパーティション“2”の撮像データは、前使用者の機密データが記憶されているため、転売時には消去することが望ましい。
上記の観点に立った場合、本実施形態例において消去すべきは、パーティション“2”に係るデータのみであるから、フラッシュメモリコントローラ41にパーティションデータ無効化コマンドを解釈する手段を設け、ホスト1から該コマンドが発行されたときは、そのパーティション鍵を消去する。ここで消去とは、パーティション鍵自体を完全に消去し、以降そのパーティションに記憶されている暗号化されたデータ(のみ)を解読不可能にすることをいう。パーティションデータ無効化コマンドは、専用のオペレーションコードと無効化の対象となるパーティション番号で定義することができる。パーティション鍵が消去されると、そのパーティションのデータは以降、復号化して読み出すことはできない。
パーティション鍵消去方法例1として、パーティションデータ無効化コマンドを受け取ったプロセッサ25が、当該コマンドの実行をフラッシュメモリコントローラ41にリクエストし、コントローラ41内のプロセッサがコマンドのオペレーションコードを解釈し、管理領域45に格納されているKey2を消去する。この消去はKey2を記憶している物理ブロックの当該Key2以外のデータを他のブロックに一旦退避させ、元のブロックをNAND型フラッシュメモリが有するeraseコマンドでブロック消去(セル電荷の除去)し、退避していたブロックのデータを元のブロックに書き戻すことにより行う。このとき退避先のブロックの消去も実行する(特許請求範囲の“パーティション鍵データの完全消去”に相当)。
新たにパーティション鍵“Key2”を設定するのは機器の性質上メンテナンスの一環として当該情報機器に詳しい専用の業者(初期設定ソフトを用いて行う)である場合も想定される。この場合パーティション“2”のデータが完全消去されていれば、データを見られてしまうという心配をしなくて済み、したがって前使用者は安心して当該情報機器を再利用にまわすことができ、資源の有効活用を図ることができる。
パーティション鍵“Key2”を消去するとき、パーティション鍵マップ341におけるパーティション“2”に対応する暗号鍵を、“デフォルト鍵”に書き換えるとよい。こうすれば、パーティション“2”に対する以降の書き込みは、デフォルト鍵によって自動的に暗号化されて記憶され、パーティション鍵の新たな設定をしなくても、継続使用することができる。仮にデータにアクセスしても、旧パーティション鍵“Key2”で暗号化されたデータがデフォルト鍵で復号化されるので、ランダムなデータが読み出されるだけで、機密漏洩の心配はない。
この他パーティション鍵消去方法例2として、パーティション鍵“Key2”の消去を、パーティション“2”の新たなパーティション鍵の設定により実行してもよい。これは、プロセッサ25がパーティション消去コマンドを受けたとき、新たなパーティション鍵“Key2”を生成、暗号化するとともに、フラッシュメモリコントローラ41にコマンドを発行し、暗号化したあらたなパーティション鍵“Key2”のデータを渡して管理領域45に格納させる。この格納は、旧パーティション鍵に対して新たな鍵を上書きすることにより実行する。なおこの場合はパーティション鍵マップ341の書き換えは不要であることが理解されよう。
また、情報機器に電源投入された際、その都度パーティションデータ無効化コマンドを記憶装置2(プロセッサ25)に発行しておき一定の状態(例えば、機器がスタンバイ状態)になったときに、パーティション鍵“Key2”を自動的に更新(新しいパーティション鍵を設定)してもよい。あるいは所定時間間隔、たとえば12時間おきに、タイマーイベントとして実行してもよい。
記憶装置2が外付けのSSDの場合は、ユーザがパーティションを任意の数設定することができ、使い方もまちまちであるが、特定パーティションを機密情報格納用として使用し、使用途中で不要になった機密情報を削除したい場合も生じる。ユーザは、パーティション設定時に、予めどのパーティションを機密情報格納用とするか把握することができるので、機密情報を削除する場合は、そのパーティションに係るパーティション鍵のみ消去すればよい。消去するには専用のアプリケーションソフトによって実行できる。
パーティション設定時に消去してよいパーティションと、消去してはいけないパーティションを定義できる場合は、その情報を、図6の341(c)、341(d)に示すように、パーティション鍵マップ341に属性として書き込むようにしてもよい。属性は、ホスト1からプロセッサ25にコマンドを発行し、パーティション鍵マップ341の然るべき場所に書き込めばよい。システム稼動中、パーティション鍵マップ341をRAM26に記憶させておき、フラッシュメモリコントローラ41がパーティション鍵消去コマンドを受け取ったときに、パーティション鍵マップ341の属性を確認し、消去禁止のパーティションに対する消去コマンドであった場合はホスト1にエラーを返す。これにより、消去してはいけないデータを誤って消去してしまうことがない。これに付随し、OS520を格納したパーティション“0”とアプリケーションプログラム521を格納したパーティション“1”を、読み出し専用の領域に設定するとよい。
なお、パスワードは記憶装置2のアクセスとデフォルト鍵の暗号化に使用されるだけで、再利用(リユース)者があらたなパスワードを設定してもあらたなデフォルト鍵が生成されるわけではない。初期設定段階でパスワードが設定されない場合は、記憶装置2にだれでも自由にアクセスでき、暗号化されて記憶されているデータは自動的に復号化して読み出される。よって、パスワードを設定しない場合、暗号化することはあまり重要な意味を持たない。
この点、ホスト1から全暗号化データを無効化するコマンドを発行し、デフォルト鍵を消去するようにすれば、パーティション鍵の復号化を実行できなくなるので、パーティションで定義されている領域だけでなく、記憶領域44に暗号化されて記憶されているすべてのデータを解読不能にすることができる。記憶装置2やこれを組み込んだ情報機器を廃棄する場合、どのような情報が記憶されているか判断することなく全データを無効化できるとともに、記憶装置2を物理的に破壊するなどしなくてもよいため、非常に利便性の高い記憶装置、情報機器を提供することができる。また、本記憶装置1は、全体を一つのLSIで構成することができる。
以上、本実施形態例によれば、パスワード機能を解除し、或いは記憶部を取り外しても、暗号化されたデータしか読み出せない。またパスワードはハッシュ値を以って管理され、且つ、パーティション鍵はデフォルト鍵で暗号化され、デフォルト鍵はパスワードで暗号化されて管理されるので、パスワード、デフォルト鍵、パーティション鍵のいずれも解読される心配がない。即ち暗号化されたデータが解読される可能性は極めて低い。尚且つ、転売、リサイクル、或いは廃棄のときに、暗号鍵を消去すればデータは無効となり、記憶装置に一層のセキュリティを確保できる。
本出願人における先願(特願2009−018425)では、特定パーティションのデータのみを高速消去する方法を提案したが、本願のハードウエア暗号機能を有する記憶装置の場合は、特定パーティション鍵のみを瞬時に消去するので、消去時間は先願に比べて高速である。
1 ホスト
2 本発明の記憶装置
20 暗号/復号処理部
21 デバイスインターフェース
23 暗号鍵設定回路
24 暗号化/復号化部
25 プロセッサ
26 RAM
27 鍵生成部
28 鍵暗号化/復号化部
29 バッファ
30 記憶部
31 記憶部制御手段
33、44 記憶領域
34、45 管理領域
231 鍵判定回路
232 暗号鍵格納部
233 鍵データ出力部
241 暗号化/復号化回路
242 セクタアドレス更新回路
341 パーティション鍵マップ
a 暗号化用データ入力部、復号化データ出力部
b 鍵入力部
c 暗号化データ出力部、復号用データ入力部
本発明はハードウエア暗号化手段を具備した記憶装置の改良、並びに該暗号化記憶装置を組み込んでなる情報機器、暗号化記憶装置のセキュリティ方法に関する
ハードディスク(HDD)、ソリッドステートドライブ(SSD)、USBメモリなどの記憶装置に記憶したデータの漏洩が問題となっており、そのため、セキュリティ方法としてパスワード認証をアクセスの条件としている。しかしながら、最近の報告によれば、サービス領域のATAパスワード設定フラグをオフにしてロック機能を無効にできるといい(パスワード解除)、事実、捜査機関向けに、斯かるパスワード解除装置が販売されているのが現状である。パスワードが解除されればデータは容易に読まれてしまう。パスワードが解除されない場合でも、記憶部を記憶装置から取り外して、データを直接読み取られる危険がある。
そこで、最近ではAES(Advanced Encryption Standard)などの暗号化を用いてデータを記憶している。AESはブロックと呼ばれる固定長(128bit)のデータを単位として、暗号化/復号化を共通の鍵で行うものである。AESでは3種類の鍵長が定義されており、128bit/192bit/256bitのいずれかを用いることができる。鍵長が長いほど、鍵を全数検索する総当り攻撃などに強く、128bit/192bit/256bitの鍵長は、現在の計算機の処理能力では解読に非現実的な時間を要するため安全とされている。
AES暗号化には、ホスト側で行うもの(ソフトウエア暗号化)があるが高価であり、システムパフォーマンスに影響があった。そこで最近は、専用のチップを組み込み、AES暗号化をデバイス内部で行う記憶装置(ハードウエア暗号化)が販売されている。この場合、何らかの方法により暗号鍵のデータが把握されると、記憶しているデータが読み出されてしまう危険性は否定できない。
また、マルチファンクションプリンタなどの情報機器に記憶装置を組み込んで使用する場合、記憶装置には情報機器に必要な情報(オペレーティングシステムやアプリケーションプログラム)と使用者の機密情報(マルチファンクションプリンタの場合で言えば、プリント用の撮像データ)の両者が記憶される。情報機器を廃棄する場合は記憶データの全部を消去してもよいが、転売、レンタルなどで再利用する場合、機密情報は消去することが望ましいが、機器の運用に必要な情報は資源の有効活用の観点から、そのまま残すことが好ましい。また廃棄する場合は、どのような情報が記憶されているか判断することなく、データを無効化できることが望ましい。
特表2005−50473号公報
そこで本発明が解決すべき第1の課題は、ハードウエア暗号記憶装置における暗号鍵の安全な管理方法の提供にある。第2の課題はハードウエア暗号記憶装置に複数種類の情報を記憶し、譲渡、廃棄、レンタル時等において、重要度、種類に応じて任意に情報を無効化する方法の提供にある。第3の課題は、ハードウエア暗号記憶装置に複数種類の情報を記憶している場合において、廃棄時等において、どのような情報が記憶されているか判断することなくデータを無効化する方法の提供にある。その他の課題は、明細書、図面、特に特許請求の範囲により自ずと明らかとなろう。
本発明では、上記課題解決のため本発明が採用する新規な特徴的構成により上記課題を解決する。即ち本発明方法の第1の特徴は、記憶装置に複数のパーティションを設けるとともに、各パーティションにそれぞれ固有のパーティション鍵を定義する。パーティション鍵は暗号化して管理する。ホストから特定パーティションのデータを無効化するコマンドが発行されたときは、そのパーティション鍵の消去を実行する。本発明方法の第2の特徴は、記憶装置に一又は複数のパーティションを設けるとともに、パーティションに固有のパーティション鍵を定義する。パーティション鍵はデフォルト鍵で暗号化して管理する。ホストから全データを無効化するコマンドが発行された場合、デフォルト鍵を消去する。その他、本発明は、特許請求範囲において上位概念から下位概念に亙り列挙する新規な構成的特長により上記課題を解決する。
本発明によれば、データを暗号化して記憶するとともに、暗号/復号化鍵を暗号化して管理するので、パスワード機能が解除され、或いは記憶部が記憶装置から取り外されても、データが解読されることがない。また記憶装置にユーザが複数のパーティションを設けるので、重要度、種類に応じてデータを記憶できるとともに、パーティションごとに固有の暗号化/復号化鍵を定義するので、ホストから特定パーティションのデータを無効化するコマンドが発行されたとき、そのパーティション固有の鍵を消去することにより、任意のデータのみ無効化し、その余のデータは継続使用することができる。また、パーティション鍵をデフォルト鍵で暗号化して管理することにより、ホストから全データを無効化するコマンドが発行された場合、デフォルト鍵の消去を実行することにより、暗号化された全データを無効化することができる。また無効化を瞬時に実行できる。
本発明の記憶装置の基本構成例である。 NAND型フラッシュメモリを用いた記憶装置の構成例である。 記憶部の領域例である。 パーティション鍵生成前のパーティション鍵マップの構成例である。 パーティション鍵マップの構成例である。 パーティション鍵マップの他の構成例である。
以下、本発明を実施するための最良の形態について図面を用いて説明するが、本発明は特許請求の範囲内において種々の形態を採ることができ、下記実施形態に限定されないことはいうまでもない。
(システム基本構成)
図1は、本発明の実施形態に係る記憶装置の基本構成例である。図1に示すように、本発明のセキュリティ方法は、本発明の記憶装置2と、記憶装置2に対するメディアアクセス主体であるホスト1とからなるシステムで実行される。記憶装置2は、ホスト1からコマンド(オペレーションコード、指定アドレス)や書き込み用データを含む)を受け取ったり、読み出したデータやコマンドステータスをホスト1に送出するデータデバイスインターフェース21と、データを格納する記憶部30と、記憶部30へのデータの書き込みや記憶部30からのデータの読み出しの制御を実行する記憶部制御手段31と、ホスト1から送られたデータを暗号化するとともに、記憶部30から読み出されたデータを復号化する暗号/復号処理部20を有する。
暗号/復号処理部20は、鍵生成部27と、鍵生成部27で生成された鍵を用いて所定のロジックに基づきデータの暗号化/復号化を実行する暗号化/復号化部24と、暗号化/復号化部24でデータを暗号化/復号化するための鍵を選択して暗号化/復号化部24に設定する暗号鍵設定回路23と、鍵暗号化/復号化部28を有する。これらはプロセッサ25により統括的に制御される。暗号化/復号化部24は独自のハードウエアロジックで構成され、プロセッサ25の処理に拠らないため、非常に高速で処理を実行できる。RAM26は、揮発性メモリであり、プロセッサ25の作業領域である。暗号鍵設定回路23は、後述する各種の暗号鍵をシステム起動中格納する暗号鍵格納部232、暗号化又は復号化を前記いずれの鍵で実行するかを判定する鍵判定回路231、判定回路231からの信号に基づき選択された鍵データを暗号化/復号化部24に入力、設定する鍵データ出力部233を有する。記憶部30は、記憶領域33と周知の管理領域34を有し、管理領域34は後述するデフォルト鍵、パーティション鍵、並びにパーティション鍵マップ341を格納する。鍵暗号化/復号化部28は、プロセッサ25の制御に基づき、デフォルト鍵、パーティション鍵の暗号化及び復号化を行う。
記憶装置2は、HDDの他、記憶部30にNAND型フラッシュメモリのような不揮発性半導体記憶装置を用いたSSDなどで構成することができる。HDDの場合、記憶部制御手段は、磁気ヘッドのシーク、データの書き込み、読み出しを制御する。SSDの場合、記憶部制御手段はNANDフラッシュメモリコントローラで構成される。
ホスト1との間のデバイスインターフェース21は、IDEインターフェースやシリアルATAインターフェースで構成され得る。記憶装置2はホスト1に挿抜して使用するUSBメモリで構成してもよい。
以下、本発明の記憶装置2がSSDで構成されるとともに、情報機器に組み込んで使用される例について、図2乃至図5を用いて説明する。SSDは図2に示すように、記憶部がNAND型フラッシュメモリ40で構成される。なお図2では、図1と同一の機能及び構成を有する要素については、同一の符号を付している。
本実施形態は、記憶部がNAND型フラッシュメモリ40で構成されるため、記憶部制御手段は、フラッシュメモリコントローラ41で構成される。このコントローラ41は、NAND型フラッシュメモリ40にコマンドを発行しデータの読み書きを実行するもので、NAND型フラッシュメモリ特有のbadブロックに対処するための不図示のエラー訂正回路、論理ブロックアドレス/物理ブロックアドレス変換テーブルを有する。
(初期設定)
情報機器が例えばマルチファンクションプリンタのような組み込み系の機器の場合、はじめに情報機器のベンダーは、初期設定を行うため、SSDを、OSその他、情報機器の運用に必要なソフトウエアを書き込むマシンに接続する。マシンはハードウエア暗号の初期設定ツールがインストールされている専用のコンピュータで構成され、図2のホスト1がこれに相当する。マシンに電源を投入後、まず初期設定ツールであるソフトウエアを用いてデフォルト鍵生成を行う。デフォルト鍵は、鍵生成部27が有する乱数発生器によって生成される。このデフォルト鍵を“KeyD”とする。デフォルト鍵は初期設定のとき生成されるもので、その後変更されることはない。
デフォルト鍵は適当な値を暗号鍵として、鍵暗号化/復号化回路28よって暗号化され、管理領域45に格納される。記憶装置が外付けのSSDのように一般ユーザが使用する場合、盗難に備えてATAが標準機能として有するパスワードを設定できるが、デフォルト鍵生成時までにこのパスワードが設定されている場合は、パスワードを暗号鍵としてデフォルト鍵暗号化することができる
尚パスワードは一方向ハッシュ関数を通してハッシュ値に変換され、管理領域45に格納され、以降の記憶装置2でのパスワード照合にそのまま利用される。即ち、記憶装置2を組み込んだ若しくは記憶装置2を接続したシステムに、電源が投入された後、記憶装置2へのアクセス許可を受けるためにATAパスワードが入力されると、同様にハッシュ関数によってハッシュ値に変換される。そして、管理領域45に記憶しているハッシュ値と照合され、両者が一致するとアクセスが許可される。ハッシュ値が元の状態に戻すことができない性質を利用したものであり、これによりパスワードを安全に管理することができる。
尚、デフォルト鍵と後述するパーティション鍵の生成は、プロセッサ25がコマンドを解釈して、鍵生成部27によって実行するものである。暗号化されたデフォルト鍵の管理領域45への格納はデフォルト鍵生成コマンドに付随して一括して実行される。暗号化されたパーティション鍵の管理領域45への格納も、同様にパーティション鍵の生成に付随して実行される。内部処理としては、プロセッサ25がフラッシュメモリコントローラ41にコマンドを発行して実行する。
デフォルト鍵は、必ず生成される暗号鍵であって、以下の機能を有する。デフォルト鍵を生成すると、更のSSD(パーティション設定前)にベンダーによって何らかのシステム上必要なデータが書き込まれていても、データ読み出しの際、そのデータはデフォルト鍵で復号化されてから読み出されるので、意味のないランダムなデータが読み出される。ユーザが後述するパーティションの設定後、パーティション鍵の生成をしなかった場合(default)でも、その後ホストから送出されるデータはデフォルト鍵で自動的に暗号化される。また、後述するパーティションテーブルやマスターブートレコードのように、パーティションで定義されていない領域に対するホストからの書き込みデータを暗号化する。詳しくは後述する。
次に、必要な数だけパーティションを設定する。図3では、パーティション“0”(52)乃至パーティション“2”(54)を設定した様子を示している。各パーティションで構成される領域の記憶容量は、そこに格納することが予定されているファイルの容量を勘案して決定する。マシンが初期設定者からパーティション設定の指示を受けると、マシンは記憶領域44をどのように分割して使うか、その内容をMBR記憶領域51内のパーティションテーブル511へ書き込む。この書き込みはデフォルト鍵によって暗号化されて実行されるとともに、平文データがRAM26に一時記憶される。
プロセッサ25は、RAM26に一時記憶されているパーティションテーブル511のデータを参照し、各パーティションのアドレス(論理セクタアドレス)を、管理領域45に記憶させるためのコマンドをフラッシュメモリコントローラ41に発行する。コマンドパラメータとして、パーティション番号、パーティションの先頭セクタアドレスと終了セクタアドレス、若しくは、パーティション番号、パーティションの先頭アドレスとセクタ数を指定する。このコマンドは、後述するパーティション鍵マップ341を生成するためのものである。図4は、記憶された状態を模式的に表したものであり、後述するパーティション鍵を生成したときには、パーティション鍵マップ341として完成されるものである。図示するように、この段階では、各パーティションの先頭セクタアドレスと終了セクタアドレス(図4(a))、若しくは先頭セクタアドレスとそのパーティションを構成するセクタ数(図4(b))で構成される。
上記、ユーザが設定したパーティションは、ホスト1からドライブと認識され得る領域を構成する。
次に、鍵生成部27が持っている乱数発生器を使って各パーティションの暗号鍵を生成する。本実施例ではパーティションを3つ設定しているので、パーティション鍵を、Key“0”乃至Key“2”の3つ生成するものとする。パーティションとパーティション鍵番号の関係は図3に示す通り、パーティション“0”、“1”、“2”にそれぞれ対応して、パーティション鍵Key“0”、Key“1”、Key“2”とする。そして生成したパーティション鍵を、デフォルト鍵(平文)を暗号鍵として、鍵暗号化/復号化回路28よって暗号化し、管理領域45の所定の領域に格納する(詳しくは後述する)。
このときプロセッサ25は、管理領域45に、パーティション設定時に記憶された各パーティションのセクタアドレス情報に対し、各パーティションを暗号化するパーティション鍵との関係を追記し、パーティション鍵マップ341を完成する。図5は完成したパーティション鍵マップ341の例である。図示するように、各パーティションの先頭セクタアドレスと終了セクタアドレス並びに対応するパーティション鍵の関係(図5(a))、若しくは先頭セクタアドレスとそのパーティションを構成するセクタ数並びに対応するパーティション鍵の関係(図5(b))で構成される。図5において、対応暗号鍵として、Key0乃至Key2と記載しているが、これはKeyのデータではない。実際にはKey番号を特定する情報、例えばそのKeyのID番号である。
次にパーティションへ、組込みが予定されている情報機器の運用に必要なソフトウエアを格納する。具体的には、図3に示すように、パーティション“0”にはOS520を、パーティション“1”には、情報機器、例えばマルチファンクションプリンタを運用するために必要な各種アプリケーションプログラム530を格納する。このデータはファイルシステムによってファイルとして記憶される。OS520を格納した際、マシンはMBR記憶領域51にブートローダ512を記録する。ブートローダ512は、後述するように、デフォルト鍵によって暗号化されて記録される。
ホスト1から書き込み指令されるOS520はパーティション鍵Key“0”を暗号鍵として、アプリケーションプログラム530はKey“1”を暗号鍵として、暗号化/復号化部24で暗号化してパーティションに格納される。このようにして設定したSSDを、予定されている情報機器に組み込む。記憶装置2は情報機器にすでに組み込まれているホスト1に接続されて使用される。この場合のホスト1はCPUが実装されているCPUボードで構成することができる。パーティション“2”はユーザデータ領域、例えばマルチファンクションプリンタのスキャナで撮像されたプリント用データが格納される領域で、最も機密性の高いパーティションである。プリント用のデータが撮像されると、Key“2”により撮像データが暗号化されてパーティション“2”に格納される。
以下、(1)デフォルト鍵の暗号化/復号化、(2)パーティション鍵の暗号化/復号化、(3)ホストから受け取ったデータを暗号化し、ユーザが定義したパーティションに格納する手順、(4)ユーザが定義したパーティションに格納しているデータを読み出し、パーティション鍵を使って復号化しホストに送出する手順、並びに(5)デフォルト鍵を使ってデータを暗号化し、パーティション鍵が設定されていない領域へ格納する手順について、図2を用いて順に説明する。
(1)デフォルト鍵の暗号化/復号化;
上記、「初期設定」の項で述べたように、デフォルト鍵が生成されると、鍵暗号化/復号化部28で暗号化され、管理領域45に不揮発的に格納されて管理される。以下においては、便宜上、デフォルト鍵を、ATAパスワードを暗号鍵として暗号化する方法について述べる。鍵の暗号化/復号化は下記(3)で使用するものと同じ論理回路で実行する方式、ファームウエアにAESアルゴリズムを実装して実行する方式など種々の方式で実行することができる。アルゴリズムは、AES方式の他、Triple DES方式など他の暗号化アルゴリズムでもよい。以下、暗号化/復号化部28は、便宜上、詳細には追って説明するAES方式の回路で実行するものとして説明する。
暗号鍵を暗号化する理由は、暗号鍵が平文のまま管理領域45で管理されると、記憶装置2を分解してNANDフラッシュメモリ40から暗号鍵が読み取られてしまい、暗号化されているユーザデータが解読されてしまう危険性があるからである。
初期設定時にパスワード設定を行うと、パスワードは揮発性RAM26に一時記憶される。プロセッサ25は、このパスワードを暗号鍵として鍵暗号化/復号化回路28の鍵入力部(図示せず)に入力して設定するとともに、鍵暗号化/復号化回路28の暗号化用データ入力部(図示せず)にデフォルト鍵を入力する。これによりデフォルト鍵が暗号化され、暗号化データ出力部より出力する。プロセッサ25はフラッシュメモリコントローラ41にコマンドを発行し、暗号化されたデフォルト鍵を管理領域45に格納する。
システムに電源が投入され、パスワードが入力されるとパスワード照合が行われ、アクセス許可がなされるとデフォルト鍵(暗号文)が管理領域45から読み出され、鍵暗号化/復号化回路28の復号化用データ入力部(図示せず)に入力されるとともに、システム電源投入後にユーザが入力しRAM26に記憶しているパスワードを復号鍵として鍵暗号化/復号化回路28の鍵入力部に入力、設定する。これによりデフォルト鍵が復号化され、復号化データ出力部(図示せず)より出力し、RAM26に一時記憶される。
(2)パーティション鍵の暗号化/復号化
パーティション鍵が生成されると、プロセッサ25は、パーティション鍵のデータを鍵暗号化/復号化部28の暗号用データ入力部に入力するとともに、先に設定しているデフォルト鍵(平文)を暗号鍵として鍵暗号化/復号化部28の鍵入力部に入力、設定して暗号化する。
システムに電源が投入され、パスワードが入力されると、パスワード照合が行われ、アクセス許可が成されると、暗号化されたパーティション鍵が管理領域45から読み出され、プロセッサ25は、鍵暗号化/復号化部28の復号用データ入力部に入力するとともに、デフォルト鍵(平文)を復号鍵として鍵暗号化/復号化部28の鍵入力部に入力、設定する。これにより復号化されたパーティション鍵が復号化データ出力部から出力し、揮発性RAM26に一時的に記憶される。
(3)ホストから受け取ったデータを暗号化しパーティションに格納する手順
以下、図2を用いて、ホスト1から受け取ったデータを暗号化してパーティション“2”に格納する手順について、情報機器起動後の状態から説明する。
(a)パーティション鍵マップと暗号鍵のセッティング
システムに電源が投入されてパスワードが入力されると、パスワード照合が行われ、アクセス許可がなされると、管理領域45に格納しているパーティション鍵マップ341を読み出して鍵判定回路231にセッティングするとともに、管理領域45に格納されている暗号化されているデフォルト鍵、パーティション鍵を読み出して、上述の手順に基づきすべて復号化して、暗号鍵格納部232にセットする。暗号鍵格納部232は揮発性メモリで構成する。これによりホストから送出されるデータの暗号化の準備が完了する。
(b)データの入力、アドレスの通知
ホスト1から書き込みコマンドが送られると、デバイスインターフェース21を介して、アドレス(ホストLBA)とデータが暗号化/復号化部24に入力される。データは暗号化/復号化部24の暗号化/復号化回路241の暗号化データ入力部aに入力する。先頭セクタアドレスは暗号化/復号化部24のセクタアドレス更新回路242に入力し、セクタアドレス更新回路242はセクタアドレスを暗号鍵設定回路23の鍵判定回路231に送る。
(c)暗号鍵の選択
鍵判定回路231は先にセットされているパーティション鍵マップ341を参照して、通知されたセクタアドレスに基づき、どのパーティション鍵を使って暗号化すべきかを判定し、鍵データ出力部233に、該当するパーティション鍵選択信号を送る。
(d)暗号鍵の設定、データの暗号化
鍵データ出力部233は暗号鍵格納部232から、選択されたパーティション鍵のデータを読み出して、暗号化/復号化部24の鍵入力部bに入力し、設定する。データが入力部aに入力されるとデータの暗号化が開始される。暗号化はブロックと呼ばれる固定長128bitずつ実行される。暗号化が1セクタ(512byte)終了する度に、セクタアドレス更新回路はセクタ情報を1つインクリメントして、次に暗号化するデータのセクタアドレス情報を鍵選択回路231に送る。これは、暗号化に必要なパーティション鍵を常時監視させ、適切な暗号化を実行させるためである。暗号化が終了したデータは、暗号化データ出力部cからバッファ29に出力する。
(e)フラッシュメモリコントローラへの入力
プロセッサ25はホスト1から受け取ったコマンドを解釈し、フラッシュメモリコントローラ41に書き込みコマンドを発行するとともに(オペレーションコードとアドレスに関する情報を含む)、バッファ29に溜まったデータをNAND型フラッシュメモリ40に書き込む。尚、暗号化とメモリ40に対する書き込み動作は同時並行して実施することができる。
(f)NAND型フラッシュメモリ(パーティション“2”)への書き込み
フラッシュメモリコントローラ41では、論理ブロックアドレス/物理ブロックアドレス変換テーブルを参照して、通知された論理ブロックアドレスに対応する物理ブロックアドレスを割り出し、不図示のエラー訂正回路のENDECで生成したエラー訂正符号とともに、バッファ29から取り出したデータを、割り出した物理ブロックアドレスに書き込むようNANDフラッシュメモリ40にコマンドを発行する。NANDフラッシュメモリ40はコマンドにしたがって、指定されたアドレスに暗号化されたデータを書き込む。以上でデータの暗号化と書き込みが完了する。
(4)パーティションに格納しているデータを読み出し、復号化してホストに送出する手順
プロセッサ25がホスト1からデバイスインターフェース21を介してreadコマンドを受領すると、先頭セクタアドレス(ホストLBA)を暗号化/復号化部24に設定する。
暗号化/復号化部24のアドレス更新回路242は、先に設定されたアドレスをラッチしておき、セクタアドレスを鍵判定回路231に送る。鍵判定回路231は、このアドレスに基づきパーティション鍵マップ341を参照し、復号に必要な鍵を判定し、鍵選択回路232に通知し、鍵データ出力部233から出力させ、暗号化/復号化部24の鍵入力部bにセットし、復号化用データの入力に待機する。復号に用いる鍵は暗号化に用いた鍵と同じ鍵である。即ち、暗号鍵と復号鍵は共通鍵となっている。
プロセッサ25はホスト1から受け取ったコマンドを解釈し、フラッシュメモリコントローラ41に対して読み出しコマンドを発行する。このコマンドには読み出すべきデータのアドレス情報を含む。フラッシュメモリコントローラ41は、論理ブロックアドレス/物理ブロックアドレス変換テーブルを参照して、アドレスとして通知された論理ブロックアドレスに対応する物理ブロックアドレスを割り出してデータを読み出し、エラー訂正回路によりエラー有無のチェックを行い、エラーがあれば訂正し、データを暗号化/復号化部24の復号用データ入力部cに入力する。データ入力と同時に復号化が開始される。
復号化は暗号化と同じく128bitずつ実行される。1セクタの復号が終了する度に、セクタ情報を1つインクリメントして、そのセクタアドレス情報が、セクタアドレス更新回路242から鍵判定回路231に通知される。復号化が終了すると、暗号化/復号化部24の復号化データ出力部aより、復号化されたデータがデバイスインターフェース21を介してホスト1に送出される。readコマンドに係るすべてのデータが送出されるとreadコマンドに対する処理が完了する。
(5)デフォルト鍵を使ってデータを暗号化し、パーティション鍵が設定されていない領域へ格納する手順
上述の通り、パーティションが設定されると、マシン側のOSよりパーティションテーブルデータの書き込みコマンドがマシン側から入力され、パーティションテーブルデータが暗号化/復号化部24の暗号用データ入力部aに入力される。プロセッサ25は、データの先頭セクタアドレスを鍵判定回路231に送ると、鍵判定回路231はパーティション鍵マップ341を参照し、通知された先頭セクタアドレスがいずれのパーティションにも属さないため、暗号鍵がデフォルト鍵であると判定し、デフォルト鍵データ(平文)を暗号鍵として暗号化/復号化部24の鍵入力部bに入力、設定する。これにより、パーティションテーブルデータの暗号化が開始される。
一方プロセッサ25は、フラッシュメモリコントローラ41に書き込みコマンド(オペレーションコードとアドレスの情報を含む)を送る。フラッシュメモリコントローラ41が、暗号文を受け取ると、アドレスとして指定された論理ブロックアドレスを、物理ブロックアドレス/論理ブロックアドレス変換テーブルを用いて変換した物理ブロックアドレスに、エラー訂正符号とともにデータを指定されたアドレスに書き込む。MBR記憶領域51は、通常、セクタアドレス “0”に予定されている。OS520を書き込んだ後は、マシン側からブートローダ512の書き込みコマンドが発行される。この場合も、パーティションテーブルと同様な手順で、指定されたアドレスにデータを書き込む。
(変更例)
上述した実施形態では、OS520等を組み込む初期設定段階ではじめにデフォルト鍵を生成した例を示したが、工場出荷段階でSSDベンダーがデフォルト鍵を生成している場合は必要ではない。またユーザがパーティション鍵を生成することが必須の要件とされている場合は、デフォルト鍵は必ずしも必要ではない。その場合、パーティション鍵を暗号化する場合は、ATAパスワード(平文)を鍵としてパーティション鍵を暗号化すればよい。ATAパスワードが設定されない場合は、適当な値で暗号化すればよい。また、論理ブロックアドレス/物理ブロックアドレス変換テーブルやエラー訂正回路をプロセッサ25に持たせ、プロセッサ25がフラッシュメモリコントローラ41の役割を兼ねてもよい。その場合、フラッシュメモリコントローラ41は不要とであり、プロセッサ25からのコマンドとバッファ29からのデータは、NANDフラッシュメモリ40のNANDインターフェースに直接入力すればよい。
(ユーザ領域のデータの消去)
本実施形態の記憶装置2を組み込んだ情報機器は再利用される場合がある。資産の有効活用の観点からすれば、OSやアプリケーションプログラムなど機器の運用に必要なプログラムは転売時に削除せず資産として、そのまま後の使用者に使用させることが好ましい。一方、機密情報が格納されている可能性のある特定のユーザデータ領域、例えば、本実施形態におけるパーティション“2”の撮像データは、前使用者の機密データが記憶されているため、転売時には消去することが望ましい。
上記の観点に立った場合、本実施形態例において消去すべきは、パーティション“2”に係るデータのみであるから、フラッシュメモリコントローラ41にパーティションデータ無効化コマンドを解釈する手段を設け、ホスト1から該コマンドが発行されたときは、そのパーティション鍵を消去する。ここで消去とは、パーティション鍵自体を完全に消去し、以降そのパーティションに記憶されている暗号化されたデータ(のみ)を解読不可能にすることをいう。パーティションデータ無効化コマンドは、専用のオペレーションコードと無効化の対象となるパーティション番号で定義することができる。パーティション鍵が消去されると、そのパーティションのデータは以降、復号化して読み出すことはできない。
パーティション鍵消去方法例1として、パーティションデータ無効化コマンドを受け取ったプロセッサ25が、当該コマンドの実行をフラッシュメモリコントローラ41にリクエストし、コントローラ41内のプロセッサがコマンドのオペレーションコードを解釈し、管理領域45に格納されているKey2を消去する。この消去はKey2を記憶している物理ブロックの当該Key2以外のデータを他のブロックに一旦退避させ、元のブロックをNAND型フラッシュメモリが有するeraseコマンドでブロック消去(セル電荷の除去)し、退避していたブロックのデータを元のブロックに書き戻すことにより行う。このとき退避先のブロックの消去も実行する。
新たにパーティション鍵“Key2”を設定するのは機器の性質上メンテナンスの一環として当該情報機器に詳しい専用の業者(初期設定ソフトを用いて行う)である場合も想定される。この場合パーティション“2”のデータが完全消去されていれば、データを見られてしまうという心配をしなくて済み、したがって前使用者は安心して当該情報機器を再利用にまわすことができ、資源の有効活用を図ることができる。
パーティション鍵“Key2”を消去するとき、パーティション鍵マップ341におけるパーティション“2”に対応する暗号鍵(ID)を、デフォルト鍵に変更するとよい。こうすれば、パーティション“2”に対する以降の書き込みは、デフォルト鍵によって自動的に暗号化されて記憶され、パーティション鍵の新たな設定をしなくても、継続使用することができる。仮にデータにアクセスしても、旧パーティション鍵“Key2”で暗号化されたデータがデフォルト鍵で復号化されるので、ランダムなデータが読み出されるだけで、機密漏洩の心配はない。
この他パーティション鍵消去方法例2として、パーティション鍵“Key2”の消去を、パーティション“2”の新たなパーティション鍵の設定により実行してもよい。これは、プロセッサ25がパーティション消去コマンドを受けたとき、新たなパーティション鍵“Key2”を生成、暗号化するとともに、フラッシュメモリコントローラ41にコマンドを発行し、暗号化したあらたなパーティション鍵“Key2”のデータを渡して管理領域45に格納させる。この格納は、旧パーティション鍵に対して新たな鍵を上書きすることにより実行する。なおこの場合はパーティション鍵マップ341の書き換えは不要であることが理解されよう。
また、情報機器に電源投入された際、その都度パーティションデータ無効化コマンドを記憶装置2(プロセッサ25)に発行しておき、一定の状態(例えば、機器がスタンバイ状態)になったときに、パーティション鍵“Key2”を自動的に更新(新しいパーティション鍵を設定)してもよい。あるいは所定時間間隔、たとえば12時間おきに、タイマーイベントとして実行してもよい。
記憶装置2が外付けのSSDの場合は、ユーザがパーティションを任意の数設定することができ、使い方もまちまちであるが、特定パーティションを機密情報格納用として使用し、使用途中で不要になった機密情報を削除したい場合も生じる。ユーザは、パーティション設定時に、予めどのパーティションを機密情報格納用とするか把握することができるので、機密情報を削除する場合は、そのパーティションに係るパーティション鍵のみ消去すればよい。消去するには専用のアプリケーションソフトによって実行できる。
パーティション設定時に消去してよいパーティションと、消去してはいけないパーティションを定義できる場合は、その情報を、図6の341(c)、341(d)に示すように、パーティション鍵マップ341に属性として書き込むようにしてもよい。属性は、ホスト1からプロセッサ25にコマンドを発行し、パーティション鍵マップ341の然るべき場所に書き込めばよい。システム稼動中、パーティション鍵マップ341をRAM26に記憶させておき、フラッシュメモリコントローラ41がパーティション鍵消去コマンドを受け取ったときに、パーティション鍵マップ341の属性を確認し、消去禁止のパーティションに対する消去コマンドであった場合はホスト1にエラーを返す。これにより、消去してはいけないデータを誤って消去してしまうことがない。これに付随し、OS520を格納したパーティション“0”とアプリケーションプログラム521を格納したパーティション“1”を、読み出し専用の領域に設定するとよい。
なお、パスワードは記憶装置2のアクセスとデフォルト鍵の暗号化に使用されるだけで、再利用(リユース)者があらたなパスワードを設定してもあらたなデフォルト鍵が生成されるわけではない。初期設定段階でパスワードが設定されない場合は、記憶装置2にだれでも自由にアクセスでき、暗号化されて記憶されているデータは自動的に復号化して読み出される。よって、パスワードを設定しない場合、暗号化することはあまり重要な意味を持たない。
この点、ホスト1から全暗号化データを無効化するコマンドを発行し、デフォルト鍵を消去するようにすれば、パーティション鍵の復号化を実行できなくなるので、パーティションで定義されている領域だけでなく、記憶領域44に暗号化されて記憶されているすべてのデータを解読不能にすることができる。記憶装置2やこれを組み込んだ情報機器を廃棄する場合、どのような情報が記憶されているか判断することなく全データを無効化できるとともに、記憶装置2を物理的に破壊するなどしなくてもよいため、非常に利便性の高い記憶装置、情報機器を提供することができる。また、本記憶装置1は、全体を一つのLSIで構成することができる。
以上、本実施形態例によれば、パスワード機能を解除し、或いは記憶部を取り外しても、暗号化されたデータしか読み出せない。またパスワードはハッシュ値を以って管理され、且つ、パーティション鍵はデフォルト鍵で暗号化され、デフォルト鍵はパスワードで暗号化されて管理されるので、パスワード、デフォルト鍵、パーティション鍵のいずれも解読される心配がない。即ち暗号化されたデータが解読される可能性は極めて低い。尚且つ、転売、リサイクル、或いは廃棄のときに、暗号鍵を消去すればデータは無効となり、記憶装置に一層のセキュリティを確保できる。
本出願人における先願(特願2009−018425)では、特定パーティションのデータのみを高速消去する方法を提案したが、本願のハードウエア暗号機能を有する記憶装置の場合は、特定パーティション鍵のみを瞬時に消去するので、消去時間は先願に比べて高速である。
1 ホスト
2 本発明の記憶装置
20 暗号/復号処理部
21 デバイスインターフェース
23 暗号鍵設定回路
24 暗号化/復号化部
25 プロセッサ
26 RAM
27 鍵生成部
28 鍵暗号化/復号化部
29 バッファ
30 記憶部
31 記憶部制御手段
33、44 記憶領域
34、45 管理領域
231 鍵判定回路
232 暗号鍵格納部
233 鍵データ出力部
241 暗号化/復号化回路
242 セクタアドレス更新回路
341 パーティション鍵マップ
a 暗号化用データ入力部、復号化データ出力部
b 鍵入力部
c 暗号化データ出力部、復号用データ入力部

Claims (13)

  1. 複数のパーティションを設定するステップと、各パーティションにそれぞれ固有のパーティション鍵を生成するステップと、パーティション鍵を暗号化するステップと、ホストから特定パーティションデータ無効化コマンドが発行されたとき、そのパーティション鍵の消去を実行するステップを有する、記憶装置のセキュリティ方法。
  2. パーティション鍵を消去次第、パーティション鍵マップにおける当該パーティションのパーティション鍵をデフォルト鍵に変更することを特徴とする請求項1記載の、記憶装置のセキュリティ方法。
  3. パーティション鍵の消去を、そのパーティションに係る新たなパーティション鍵の自動設定により実行することを特徴とする、請求項1記載の記憶装置のセキュリティ方法。
  4. パーティション鍵マップに、消去してはいけないパーティション番号を予め属性として書き込んでおき、記憶部制御手段は、パーティション鍵消去コマンドを受け取ったとき、該属性を確認し、前記消去コマンドが消去してはいけないパーティションに対するものであるときホストにエラーを返すことを特徴とする請求項1乃至請求項3いずれか1項記載の、記憶装置のセキュリティ方法。
  5. ユーザが定義した複数のパーティションと、パーティションごと固有のパーティション鍵と、パーティション鍵を暗号化/復号化する手段と、パーティションごとのアドレスとパーティション鍵の関係を記憶しているパーティション鍵マップと、ホストからのコマンドに基づきパーティション鍵の消去を実行する手段、を有することを特徴とする記憶装置。
  6. パーティション鍵を消去次第、パーティション鍵マップにおける当該パーティションのパーティション鍵をデフォルト鍵に変更する手段をさらに有することを特徴とする請求項5記載の記憶装置。
  7. パーティション鍵の消去を、そのパーティションに係る新たなパーティション鍵を設定することにより実行することを特徴とする、請求項5記載の記憶装置。
  8. パーティション鍵マップに対し、消去してはいけないパーティション番号を予め属性として書き込んでおき、記憶部制御手段は、パーティション鍵消去コマンドを受け取ったとき、該属性を確認し、前記消去コマンドが消去してはいけないパーティションに対するものであるときホストにエラーを返すことを特徴とする請求項5乃至請求項7いずれか1項記載の記憶装置。
  9. ハードディスクドライブ又はソリッドステートドライブのいずれかである請求項5乃至請求項8いずれか1項記載の記憶装置。
  10. 当該記憶装置が組み込まれる情報機器の運用に必要なデータのみが格納される第1のパーティションと、ユーザデータのみが格納される第2のパーティションを少なくとも一つずつ有する請求項5乃至請求項9いずれか1項記載の記憶装置と該記憶装置にアクセスするホストをシステムとして組み込んでなる情報機器。
  11. 一又は複数のパーティションを設定するステップと、該パーティションに固有のパーティション鍵を生成するステップと、該パーティション鍵をデフォルト鍵で暗号化するステップと、ホストからコマンドが発行されたときデフォルト鍵の消去を実行するステップを有する、記憶装置のセキュリティ方法。
  12. ユーザが定義した一または複数のパーティションに固有のパーティション鍵を生成する手段と、パーティション鍵をデフォルト鍵で暗号化する手段と、ホストからのコマンドに基づきデフォルト鍵の消去を実行する手段を有する記憶装置。
  13. 請求項12の記憶装置と、該記憶装置にアクセスするホストからなるシステムを組み込んでなる情報機器。















JP2009141007A 2009-06-12 2009-06-12 暗号化記憶装置、情報機器、暗号化記憶装置のセキュリティ方法 Active JP4463320B1 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2009141007A JP4463320B1 (ja) 2009-06-12 2009-06-12 暗号化記憶装置、情報機器、暗号化記憶装置のセキュリティ方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2009141007A JP4463320B1 (ja) 2009-06-12 2009-06-12 暗号化記憶装置、情報機器、暗号化記憶装置のセキュリティ方法

Publications (2)

Publication Number Publication Date
JP4463320B1 JP4463320B1 (ja) 2010-05-19
JP2010288123A true JP2010288123A (ja) 2010-12-24

Family

ID=42306554

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009141007A Active JP4463320B1 (ja) 2009-06-12 2009-06-12 暗号化記憶装置、情報機器、暗号化記憶装置のセキュリティ方法

Country Status (1)

Country Link
JP (1) JP4463320B1 (ja)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012018501A (ja) * 2010-07-07 2012-01-26 Canon Inc 情報処理装置、情報処理装置の制御方法、プログラム
JP2012221246A (ja) * 2011-04-08 2012-11-12 Toshiba Corp 記憶装置、記憶システム及び認証方法
JP2013182304A (ja) * 2012-02-29 2013-09-12 Nec Corp ディスクアレイ装置及びディスクアレイ装置のデータ管理方法
WO2014132572A1 (ja) * 2013-02-28 2014-09-04 パナソニック株式会社 暗号化記録装置、暗号化記録システム、および暗号化記録方法
JP2015103923A (ja) * 2013-11-22 2015-06-04 京セラドキュメントソリューションズ株式会社 画像形成装置および画像形成システム
JP2020150497A (ja) * 2019-03-15 2020-09-17 キオクシア株式会社 ストレージ装置及び制御方法

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012080295A (ja) * 2010-09-30 2012-04-19 Toshiba Corp 情報記憶装置、情報記憶方法、及び電子機器
JP2012084043A (ja) * 2010-10-14 2012-04-26 Hagiwara Solutions Co Ltd 暗号化記憶装置、情報機器、暗号化記憶装置のセキュリティ方法
CN103181179B (zh) 2011-08-26 2017-03-01 松下知识产权经营株式会社 内容分发系统、内容管理服务器、内容利用设备以及制御方法
WO2014132662A1 (ja) * 2013-02-28 2014-09-04 パナソニック株式会社 暗号処理装置
KR102263880B1 (ko) 2014-06-19 2021-06-11 삼성전자주식회사 호스트 컨트롤러 및 시스템-온-칩
CN113810179A (zh) * 2020-06-16 2021-12-17 北京龙腾融智信息技术有限公司 扇区块密钥生成方法、装置、设备和存储介质
WO2023084645A1 (ja) * 2021-11-10 2023-05-19 Tdk株式会社 メモリコントローラおよびフラッシュメモリシステム

Citations (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000222289A (ja) * 1999-02-04 2000-08-11 Casio Comput Co Ltd 情報処理装置及びこの情報処理装置に用いられるプログラムが記憶された記憶媒体
JP2004280551A (ja) * 2003-03-17 2004-10-07 Fujitsu Ltd 補助記憶装置及び情報処理装置
JP2004287552A (ja) * 2003-03-19 2004-10-14 Tdk Corp ハードディスクのデータ消去方法、コンピュータプログラムおよび記録媒体
JP2004336344A (ja) * 2003-05-07 2004-11-25 Canon Inc 暗復号化装置
JP2004352128A (ja) * 2003-05-30 2004-12-16 Hitachi Ltd 車両用ドライブレコーダ,車両分析装置、および鍵管理方法
JP2005128996A (ja) * 2003-09-30 2005-05-19 Dainippon Printing Co Ltd 情報処理装置、情報処理システム及びプログラム
WO2006011527A1 (ja) * 2004-07-30 2006-02-02 Matsushita Electric Industrial Co., Ltd. 記録装置、コンテンツ鍵処理装置、記録媒体、及び記録方法
JP2007272844A (ja) * 2006-03-31 2007-10-18 Brother Ind Ltd 周辺装置およびデータ消去権限管理方法
JP2008072717A (ja) * 2006-09-14 2008-03-27 Seagate Technology Llc 埋込認証を有するハードディスク・ストリーミング暗号操作
JP2008250779A (ja) * 2007-03-30 2008-10-16 Hitachi Ltd 暗号機能を備えた記憶制御装置、データ暗号化方法及び記憶システム
JP2009064126A (ja) * 2007-09-05 2009-03-26 Fuji Electric Retail Systems Co Ltd Icカードシステム、その端末装置、プログラム
JP2009098889A (ja) * 2007-10-16 2009-05-07 Buffalo Inc データ管理装置、データ管理方法およびデータ管理プログラム

Patent Citations (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000222289A (ja) * 1999-02-04 2000-08-11 Casio Comput Co Ltd 情報処理装置及びこの情報処理装置に用いられるプログラムが記憶された記憶媒体
JP2004280551A (ja) * 2003-03-17 2004-10-07 Fujitsu Ltd 補助記憶装置及び情報処理装置
JP2004287552A (ja) * 2003-03-19 2004-10-14 Tdk Corp ハードディスクのデータ消去方法、コンピュータプログラムおよび記録媒体
JP2004336344A (ja) * 2003-05-07 2004-11-25 Canon Inc 暗復号化装置
JP2004352128A (ja) * 2003-05-30 2004-12-16 Hitachi Ltd 車両用ドライブレコーダ,車両分析装置、および鍵管理方法
JP2005128996A (ja) * 2003-09-30 2005-05-19 Dainippon Printing Co Ltd 情報処理装置、情報処理システム及びプログラム
WO2006011527A1 (ja) * 2004-07-30 2006-02-02 Matsushita Electric Industrial Co., Ltd. 記録装置、コンテンツ鍵処理装置、記録媒体、及び記録方法
JP2007272844A (ja) * 2006-03-31 2007-10-18 Brother Ind Ltd 周辺装置およびデータ消去権限管理方法
JP2008072717A (ja) * 2006-09-14 2008-03-27 Seagate Technology Llc 埋込認証を有するハードディスク・ストリーミング暗号操作
JP2008250779A (ja) * 2007-03-30 2008-10-16 Hitachi Ltd 暗号機能を備えた記憶制御装置、データ暗号化方法及び記憶システム
JP2009064126A (ja) * 2007-09-05 2009-03-26 Fuji Electric Retail Systems Co Ltd Icカードシステム、その端末装置、プログラム
JP2009098889A (ja) * 2007-10-16 2009-05-07 Buffalo Inc データ管理装置、データ管理方法およびデータ管理プログラム

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012018501A (ja) * 2010-07-07 2012-01-26 Canon Inc 情報処理装置、情報処理装置の制御方法、プログラム
JP2012221246A (ja) * 2011-04-08 2012-11-12 Toshiba Corp 記憶装置、記憶システム及び認証方法
JP2013182304A (ja) * 2012-02-29 2013-09-12 Nec Corp ディスクアレイ装置及びディスクアレイ装置のデータ管理方法
US9043611B2 (en) 2012-02-29 2015-05-26 Nec Corporation Disk array device and data management method for disk array device
WO2014132572A1 (ja) * 2013-02-28 2014-09-04 パナソニック株式会社 暗号化記録装置、暗号化記録システム、および暗号化記録方法
JP6048710B2 (ja) * 2013-02-28 2016-12-21 パナソニックIpマネジメント株式会社 暗号化記録装置、および暗号化記録方法
US9811476B2 (en) 2013-02-28 2017-11-07 Panasonic Intellectual Property Management Co., Ltd. Encryption and recording apparatus, encryption and recording system, and encryption and recording method
JP2015103923A (ja) * 2013-11-22 2015-06-04 京セラドキュメントソリューションズ株式会社 画像形成装置および画像形成システム
JP2020150497A (ja) * 2019-03-15 2020-09-17 キオクシア株式会社 ストレージ装置及び制御方法
US11507284B2 (en) 2019-03-15 2022-11-22 Kioxia Corporation Storage device and control method
JP7187362B2 (ja) 2019-03-15 2022-12-12 キオクシア株式会社 ストレージ装置及び制御方法

Also Published As

Publication number Publication date
JP4463320B1 (ja) 2010-05-19

Similar Documents

Publication Publication Date Title
JP4463320B1 (ja) 暗号化記憶装置、情報機器、暗号化記憶装置のセキュリティ方法
TWI480762B (zh) 解鎖儲存裝置之技術
JP5362114B2 (ja) 保安usb記憶媒体生成及び復号化方法、並びに保安usb記憶媒体生成のためのプログラムが記録された媒体
TWI799224B (zh) 控制儲存裝置之方法
US8924739B2 (en) System and method for in-place encryption
EP2488987B1 (en) Secure storage of temporary secrets
JP2008072717A (ja) 埋込認証を有するハードディスク・ストリーミング暗号操作
US11507284B2 (en) Storage device and control method
TW200949543A (en) Secure disposal of storage data
AU2012204448A1 (en) System and method for in-place encryption
EP3185464B1 (en) Key generation information trees
JP2012084043A (ja) 暗号化記憶装置、情報機器、暗号化記憶装置のセキュリティ方法
KR101467227B1 (ko) Ssd에 적합한 보안 삭제 기능을 가진 패스워드 기반의 암호화 파일 관리 방법 및 이들을 이용한 암호화 파일 관리 시스템
KR100859651B1 (ko) 가변크기 데이터 저장을 위한 데이터구조를 기록한기록매체, 가변크기 데이터 저장방법, 및 가변크기 데이터저장방법을 컴퓨터에서 실행시키기 위한 프로그램을 기록한컴퓨터로 읽을 수 있는 기록매체
TWI775284B (zh) 記憶系統、其控制方法及資訊處理系統
KR101648262B1 (ko) Ssd에 적합한 보안 삭제 기능을 가진 패스워드 기반의 암호화 파일 관리 방법 및 이들을 이용한 암호화 파일 관리 시스템
JP3730432B2 (ja) 記憶システム、記憶装置及び記憶データ保護方法
CN112468300B (zh) 具有旁通通道的金钥管理装置及处理器芯片
JP2000250817A (ja) 記憶システム、記憶装置及び記憶データ保護方法
JP7059414B2 (ja) ストレージ装置及び方法
CN113343265B (zh) 一种密钥配置方法、装置和相关设备
JP5263574B2 (ja) データ処理装置及びデータ消去方法

Legal Events

Date Code Title Description
TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20100216

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130226

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 4463320

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130226

Year of fee payment: 3

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130226

Year of fee payment: 3

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130226

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140226

Year of fee payment: 4

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250