IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ インターナショナル・ビジネス・マシーンズ・コーポレーションの特許一覧

特許7590085内部または外部あるいはその両方のアクションによる暗号消去
<>
  • 特許-内部または外部あるいはその両方のアクションによる暗号消去 図1
  • 特許-内部または外部あるいはその両方のアクションによる暗号消去 図2
  • 特許-内部または外部あるいはその両方のアクションによる暗号消去 図3
  • 特許-内部または外部あるいはその両方のアクションによる暗号消去 図4
  • 特許-内部または外部あるいはその両方のアクションによる暗号消去 図5
  • 特許-内部または外部あるいはその両方のアクションによる暗号消去 図6
  • 特許-内部または外部あるいはその両方のアクションによる暗号消去 図7
  • 特許-内部または外部あるいはその両方のアクションによる暗号消去 図8
  • 特許-内部または外部あるいはその両方のアクションによる暗号消去 図9
  • 特許-内部または外部あるいはその両方のアクションによる暗号消去 図10
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-11-18
(45)【発行日】2024-11-26
(54)【発明の名称】内部または外部あるいはその両方のアクションによる暗号消去
(51)【国際特許分類】
   H04L 9/08 20060101AFI20241119BHJP
   H04L 9/14 20060101ALI20241119BHJP
   G06F 21/60 20130101ALI20241119BHJP
【FI】
H04L9/08 A
H04L9/14
G06F21/60 320
【請求項の数】 17
(21)【出願番号】P 2022515611
(86)(22)【出願日】2020-09-03
(65)【公表番号】
(43)【公表日】2022-11-16
(86)【国際出願番号】 IB2020058194
(87)【国際公開番号】W WO2021048708
(87)【国際公開日】2021-03-18
【審査請求日】2023-02-24
(31)【優先権主張番号】62/900,045
(32)【優先日】2019-09-13
(33)【優先権主張国・地域又は機関】US
(31)【優先権主張番号】16/808,174
(32)【優先日】2020-03-03
(33)【優先権主張国・地域又は機関】US
【前置審査】
(73)【特許権者】
【識別番号】390009531
【氏名又は名称】インターナショナル・ビジネス・マシーンズ・コーポレーション
【氏名又は名称原語表記】INTERNATIONAL BUSINESS MACHINES CORPORATION
【住所又は居所原語表記】New Orchard Road, Armonk, New York 10504, United States of America
(74)【代理人】
【識別番号】100112690
【弁理士】
【氏名又は名称】太佐 種一
(74)【代理人】
【識別番号】100120710
【弁理士】
【氏名又は名称】片岡 忠彦
(72)【発明者】
【氏名】ジャケット、グレン
【審査官】金沢 史明
(56)【参考文献】
【文献】米国特許出願公開第2019/0266103(US,A1)
【文献】特開2012-212294(JP,A)
【文献】特開2018-160919(JP,A)
【文献】特開2011-248859(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
H04L 9/08
H04L 9/14
G06F 21/60
(57)【特許請求の範囲】
【請求項1】
デバイスが、データを読み取るための要求を、ストレージ媒体上でデータ操作を実行するように構成されたデバイス上で受信することであって、前記データが、暗号化された形態で前記ストレージ媒体に格納されている、前記受信することと、
前記デバイスが、該デバイス内に格納された第1の鍵にアクセスすることと、
前記デバイスが、外部ソースから第2の鍵を受信することと、
前記デバイスが、前記第1および第2の鍵を使用して媒体暗号鍵を生成することと、
前記デバイスが、前記暗号化された形態の前記データを前記ストレージ媒体から読み取ることと、
前記デバイスが、前記媒体暗号鍵を使用して前記暗号化された形態の前記データを復号することと、
前記デバイスが、前記復号されたデータを出力することと
を含み、前記デバイスがテープ・ドライブであり、前記ストレージ媒体が磁気記録テープである、
前記デバイスの実装方法。
【請求項2】
前記第1の鍵が未加工の形態で前記デバイスに格納される、請求項1に記載の実装方法。
【請求項3】
前記第1の鍵がラップされた形態で前記デバイスに格納され、前記デバイスが、前記第1の鍵をラップ解除するための情報を受信することを含む、請求項1に記載の実装方法。
【請求項4】
前記デバイスが、前記デバイスの外部への前記第1の鍵の転送を禁止するように構成される、請求項1に記載の実装方法。
【請求項5】
前記ストレージ媒体が不揮発性メモリを含む、請求項1に記載の実装方法。
【請求項6】
前記第1の鍵が、前記デバイス内で、前記ストレージ媒体とは異なる種類のメモリである不揮発性メモリに格納される、請求項5に記載の実装方法。
【請求項7】
前記デバイスが、前記ストレージ媒体での格納のために第2のデータを受信することと、
前記デバイスが、第2の外部ソースから第3の鍵を受信することと、
前記デバイスが、前記第1および第3の鍵を使用して第2の媒体暗号鍵を生成することと、
前記デバイスが、前記第2の媒体暗号鍵を使用して前記データを暗号化することと、
前記デバイスが、前記暗号化されたデータを前記ストレージ媒体に書き込むことと
を含む、請求項1に記載の実装方法。
【請求項8】
暗号消去を可能にすること、または実行すること、あるいはその両方のためのコンピュータ・プログラムであって、デバイスに、請求項1ないし7のいずれか一項に記載の実装方法を実行させるためのコンピュータ・プログラム。
【請求項9】
請求項8に記載のコンピュータ・プログラムを記憶した記憶媒体。
【請求項10】
デバイスが、データを読み取るための要求を、ストレージ媒体上でデータ操作を実行するように構成されたデバイス上で受信することであって、前記デバイスがテープ・ドライブであり、前記ストレージ媒体が磁気記録テープであり、前記データが、暗号化された形態で前記ストレージ媒体に格納されている、前記受信することと、
前記デバイスが、前記ストレージ媒体に格納されたか、または前記ストレージ媒体と共に前記デバイスを格納するテープ・カートリッジ・メモリ内に格納されたか、あるいはその両方である第1の鍵を取り出すことと、
前記デバイスが、外部ソースから第2の鍵を受信することと、
前記デバイスが、前記第1および第2の鍵を使用して媒体暗号鍵を生成することと、
前記デバイスが、前記暗号化された形態の前記データを前記ストレージ媒体から読み取ることと、
前記デバイスが、前記媒体暗号鍵を使用して前記暗号化された形態の前記データを復号することと、
前記デバイスが、前記復号されたデータを出力することと
を含
前記デバイスの実装方法。
【請求項11】
前記ストレージ媒体が不揮発性メモリを含む、請求項10に記載の実装方法。
【請求項12】
前記第1の鍵が、前記デバイス内で、前記ストレージ媒体とは異なる種類のメモリである不揮発性メモリに格納される、請求項11に記載の実装方法。
【請求項13】
前記デバイスが、前記デバイスの外部への前記第1の鍵の転送を禁止するように構成される、請求項10に記載の実装方法。
【請求項14】
前記第1の鍵が未加工の形態で前記ストレージ媒体に格納されるか、または前記ストレージ媒体と共に格納されるか、あるいはその両方である、請求項10に記載の実装方法。
【請求項15】
前記第1の鍵がラップされた形態で前記ストレージ媒体に格納されるか、または前記ストレージ媒体と共に格納されるか、あるいはその両方であり、前記デバイスが、前記第1の鍵をラップ解除するための情報を受信することを含む、請求項10に記載の実装方法。
【請求項16】
前記デバイスが、前記ストレージ媒体での格納のために第2のデータを受信することと、
前記デバイスが、第2の外部ソースから第3の鍵を受信することと、
前記デバイスが、前記第1および第3の鍵を使用して第2の媒体暗号鍵を生成することと、
前記デバイスが、前記第2の媒体暗号鍵を使用して前記データを暗号化することと、
前記デバイスが、前記暗号化されたデータを前記ストレージ媒体に書き込むことと
を含む、請求項10に記載の実装方法。
【請求項17】
デバイスに、請求項10ないし16のいずれか一項に記載の実装方法を実行させるためのコンピュータ・プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、暗号消去に関連しており、より詳細には、本発明は、内部のアクションまたは外部のアクションあるいはその両方によって暗号消去を可能にするための技術およびシステムに関連している。
【背景技術】
【0002】
「暗号消去」という用語は、データを何らかの方法で非暗号化するために必要な暗号鍵へのアクセスを無効にすることを一般に指している。暗号消去は、例えば、暗号鍵のすべてのコピーを消去すること、暗号鍵の一部を削除すること、暗号鍵を生成またはロック解除するために必要な副鍵へのアクセスを無効にすることなどによって実行されることができる。暗号鍵を永続的に無効にすることによって、その暗号鍵を使用して暗号化されたデータを復号することができなくなり、暗号化されたデータが、事実上、暗号化できない状態にされる。
【0003】
現在のデータ・センターが、すべての故障したか、または廃止された自己暗号化ドライブ(SED:self-encrypting drives)の暗号消去を確実に実行することができないことに伴う大きな問題を抱えているということが、規定されている。例えば、SEDは、SEDが含まれているシステムともはや通信できなくなるような方法で故障する可能性がある。そのような故障した状態で、SEDは、暗号消去を実行するためのコマンドを受信することができず、または、暗号消去を実行するためのコマンドが正常に完了したことを示す状態と共に、そのようなコマンドに応答することもできない。暗号消去を確実に実行することができない故障したSEDの半導体ドライブ(SSD:solid-state drive)またはハード・ディスク・ドライブ(HDD:hard disk drive)メモリからデータが科学捜査的に復元される危険にさらされたくないデータ・センターにとって、これは問題である。現在、これらのデータ・センターは、科学捜査的復元を防ぐための取り組みにおいて、通常、それらのドライブを物理的に破壊する手段を用いる。ユーザは、道義上、それらのドライブを製造業者に返却するか、またはデータの開示を恐れて再利用する。
【0004】
SED上のデータを暗号化するか、または復号するために使用される媒体暗号鍵(MEK:Media Encryption Key)は、平文では最新のSEDに格納されないということに注意する。代わりにMEKは、暗号によってラップされる(例えば、それ自身が暗号化されるか、またはその他の方法で難読化される)。非常に長い実行において、この方法が十分に強力ではない可能性があり、予測可能な未来において(例えば、量子コンピューティングによって)鍵のラッピング技術が破られる可能性があると考える分野がある。
【0005】
問題の範囲、またはラップされた鍵が復号または暗号解読され得るというもっともな懸念が存在するかどうかに関わらず、MEKの不揮発性ストレージおよび暗号消去を処理するために、ドライブに頼りたくないか、またはドライブを完全に信用したくない実体が存在するということは、明白に真実であると言ってよい。そのようなユーザは、MEKをSED上に格納するのではなく、MEKが破棄されることができ、すべての暗号文が暗号消去を実行された状態で作成されることができることを保証するために、各電源投入サイクルの後に、MEKをドライブに提供することを大いに好むことがある。これによってユーザは、MEKを制御することができ、前述のユーザは、ドライブによって暗号消去が実行されることを許可しない方法で、ドライブが故障する事例について心配する必要がなくなる。MEKがドライブの外部でしか不揮発に格納されないため、SEDがどのように故障したかとは無関係に、MEKはユーザによって破棄されることができる。しかし、MEKが保持されているユーザのキー・ストアの侵害、またはSEDとのそのMEKの通信の傍受(および周囲のいずれかのセキュリティの崩壊)が、捕捉また取得に対してMEKを脆弱にする。
【0006】
外部でSEDの暗号消去を実行する能力を可能にする1つの方法は、LTO-4(暗号化可能なLTOテープ・ドライブの最初の世代)によって使用される直接鍵提供モデル(direct key serving model)の使用による。暗号化可能なデバイスの外部で鍵が処理される方法が、それらの鍵が暗号消去可能であるかどうかを決定するということに注意する。ただし確かに、実体の鍵管理が適切に行われた場合は、故障したSEDドライブに関連付けられたMEKのすべてのコピーの暗号消去を確実に実行することができるはずである。しかし、鍵のコピーが残っていない場合、その鍵に従って暗号化されたデータ(すなわち、暗号文)は、復号可能でなくなり、したがって、事実上、アクセス不可能になるか、または「暗号消去が実行される」ため、鍵がデータを復号することに使用可能なままであることを保証するために、鍵のコピーは通常、分散された位置で行われ、格納される。したがって、鍵のより多くのコピーが行われるにつれて、鍵管理を保護することが著しく困難になる。
【0007】
LTO-4の時期の後に、SED技術は、(最初の)Enterpriseおよび(より最近の)Opalを含むTCG Storage Security Subsystem Class(SSC)などの、Trusted Computing Group(TCG)仕様へのおおよその適合性を標準化した。それらのSSCは両方とも、複数の異なる方法で暗号消去をサポートする。例えば、Opalの場合、暗号消去を呼び出すための少なくとも4つの異なる方法が存在する。しかし、どちらのTSG SCCも、SED自体から独立した(すなわち、SEDがSSCによって指定された方法(コマンド)を順守することができない場合に)外部の実体による暗号消去をサポートしない。MEKは、通常、暗号によってラップされる形態で、常にSEDに格納される。誰かが何らかの方法で、ラップされたMEKをこじ開ける方法を見つけ出すことができた場合、その人は、故障したSEDに格納されたすべての関連する暗号文を復元することができる。
【発明の概要】
【0008】
デバイス実装方法は、本発明の1つの態様によれば、ストレージ媒体上でデータ操作を実行するように構成されたデバイスで、データを読み取るための要求を受信することを含み、データは、暗号化された形態でストレージ媒体に格納されている。デバイス内に格納された第1の鍵がアクセスされる。第2の鍵が、外部ソースから受信される。第1および第2の鍵を使用して、媒体暗号鍵が生成される。暗号化された形態のデータが、ストレージ媒体から読み取られる。媒体暗号鍵を使用して、暗号化された形態のデータが復号される。復号されたデータが出力される。この方法は、内部のアクションおよび外部のアクションの両方によって、ローカルに暗号化されたデータの暗号消去を実行できるようにする。
【0009】
デバイス実装方法は、本発明の別の態様によれば、ストレージ媒体上でデータ操作を実行するように構成されたデバイスで、データを読み取るための要求を受信することを含み、データは、暗号化された形態でストレージ媒体に格納されている。ストレージ媒体に格納されたか、またはストレージ媒体と共に格納されたか、あるいはその両方である第1の鍵が取り出される。第2の鍵が、外部ソースから取り出される。第1および第2の鍵を使用して、媒体暗号鍵が生成される。暗号化された形態のデータが、ストレージ媒体から読み取られる。媒体暗号鍵を使用して、暗号化された形態のデータが復号される。復号されたデータが出力される。この方法は、内部のアクションおよび外部のアクションの両方によって、ローカルに暗号化されたデータの暗号消去を実行できるようにする。取り外し可能なストレージ媒体が使用される場合、媒体と共に第1の鍵が移動するが、第2の鍵が提供されるまで、データは安全なままである。
【0010】
デバイス実装方法は、本発明のさらに別の態様によれば、ストレージ媒体上でデータ操作を実行するように構成されたデバイスで、データを暗号化された形態でストレージ媒体に書き込むための要求を受信することを含む。デバイス内に格納された第1の鍵がアクセスされる。第2の鍵が、外部ソースから受信される。第1および第2の鍵を使用して、媒体暗号鍵が生成される。媒体暗号鍵を使用して、要求されたデータが暗号化された形態でストレージ媒体に書き込まれる。この方法は、内部のアクションおよび外部のアクションの両方によって、書き込まれた暗号化されたデータの暗号消去を実行できるようにする。
【0011】
デバイス実装方法は、本発明のさらに別の態様によれば、ストレージ媒体上でデータ操作を実行するように構成されたデバイスで、データを暗号化された形態でストレージ媒体に書き込むための要求を受信することを含む。ストレージ媒体に格納されたか、またはストレージ媒体と共に格納されたか、あるいはその両方である第1の鍵が取り出される。第2の鍵が、外部ソースから受信される。第1および第2の鍵を使用して、媒体暗号鍵が生成される。媒体暗号鍵を使用して、要求されたデータが暗号化された形態でストレージ媒体に書き込まれる。この方法は、内部のアクションおよび外部のアクションの両方によって、書き込まれた暗号化されたデータの暗号消去を実行できるようにする。
【0012】
さまざまな手法では、各方法のいずれかを実行するデバイスは、デバイスの外部への第1の鍵の転送を禁止するように構成されるのが好ましい。したがって、第1の鍵がデバイスから離れることができないため、デバイスからの第1の鍵の削除が、デバイス上の暗号化されたデータに対する暗号消去を事実上実行する。
【0013】
本明細書に記載されたさまざまな手法は、不揮発性メモリおよび磁気記録テープを含む多くの種類のストレージ媒体に適用可能である。
【0014】
本発明のその他の態様および手法は、本発明の原理を図面と併せて例として説明する、以下の詳細な説明から明らかになる。
【図面の簡単な説明】
【0015】
図1】本発明の1つの態様に従う、ネットワーク・アーキテクチャの図である。
図2】本発明の1つの態様に従う、図1のサーバまたはクライアントあるいはその両方に関連付けられてよい代表的ハードウェア環境の図である。
図3】本発明の1つの態様に従う、層型データ・ストレージ・システムの図である。
図4】本発明の1つの態様に従う、方法のフローチャートである。
図5】本発明の1つの態様に従う、方法のフローチャートである。
図6】本発明の1つの態様に従う、方法のフローチャートである。
図7】本発明の1つの態様に従う、方法のフローチャートである。
図8】SEDを使用する標準的なストレージ製品を廃棄および保護するための技術の現在の状態を示す表である。
図9】本発明の1つの態様に従って、SEDを使用するストレージ製品を廃棄および保護するための例示的な手順を示す表である。
図10】本発明の1つの態様に従って、SEDを使用するストレージ製品を廃棄および保護するための例示的な手順を示す表である。
【発明を実施するための形態】
【0016】
以下の説明は、本発明の一般的原理を説明する目的で行われるのであり、本明細書において請求される本発明の概念を制限するように意図されていない。さらに、本明細書に記載された特定の特徴を、さまざまな可能な組み合わせおよび並べ替えの各々において、その他の説明された特徴と組み合わせて使用することができる。
【0017】
本明細書では、特に具体的に定義されない限り、すべての用語には、本明細書から示される意味、および当業者によって理解される意味、または辞書、論文などにおいて定義された意味、あるいはその両方を含む、最も広い可能な解釈が与えられる。
【0018】
本明細書および添付の特許請求の範囲において使用されるとき、単数形「a」、「an」、および「the」が、特に規定されない限り、複数の指示対象を含むということにも注意しなければならない。「備える」または「備えている」あるいはその両方の用語は、本明細書で使用される場合、記載された機能、整数、ステップ、動作、要素、またはコンポーネント、あるいはその組み合わせの存在を示すが、1つまたは複数のその他の機能、整数、ステップ、動作、要素、コンポーネント、またはこれらのグループ、あるいはその組み合わせの存在または追加を除外していないということが、さらに理解されるであろう。
【0019】
本明細書における説明は、内部のアクションおよび外部のアクションの両方によって、ローカルに暗号化されたデータの暗号消去を実行できるようにするためのシステム、方法、およびコンピュータ・プログラム製品の複数の好ましい手法を開示する。1つの手法では、データを暗号化/復号するための使用される媒体暗号鍵(MEK)が2つの部分に分割され、1つの鍵分割(Key1)がデータと共に格納され、もう1つの鍵分割(Key2)が外部で管理される。1つの手法では、不揮発性の形態であるKey1は、データと共にのみ格納され、任意選択的にラップされた(例えば、暗号化されたか、またはその他の方法で保護された)形態で格納される。不揮発性の形態で格納されてよいKey2は、データを含んでいるデバイス/製品の外部にのみ格納されるため、暗号化または復号あるいはその両方を可能にするには、Key2が、データを読み取るデバイスに提供される必要がある。MEKは、デバイスがKey1とKey2の両方を持っている場合にのみ、計算されることができる。
【0020】
1つの一般的な手法では、データが自己暗号化ドライブ(SED)に格納される。Key1は、SEDの内部で管理され、未加工の形態で、またはラップされた形態で、SEDに格納されてよい。SEDの内部でMEKを計算できるようにするために、Key2が、電源投入サイクルまたはその他のコールド・ブートあるいはその両方の後に、少なくとも1回、SEDに提供される。
【0021】
別の一般的な手法では、データが、磁気記録テープ上、不揮発性ランダム・アクセス・メモリ(半導体メモリ、ハード・ディスクなどのNVRAM)内などの、ストレージ媒体に格納される。Key1は、ストレージ媒体に格納されるか、またはストレージ媒体と共に格納されるか、あるいはその両方であり、ラップされた形態で格納されてよい。Key2は、ドライブ、コンピュータなどがMEKを計算できるようにするために、ドライブ、コンピュータなどに提供される。
【0022】
本発明の1つの例示的な態様では、デバイス実装方法は、本発明の別の態様によれば、ストレージ媒体上でデータ操作を実行するように構成されたデバイスで、データを読み取るための要求を受信することを含み、データは、暗号化された形態でストレージ媒体に格納されている。デバイス内に格納された第1の鍵がアクセスされる。第2の鍵が、外部ソースから受信される。第1および第2の鍵を使用して、媒体暗号鍵が生成される。暗号化された形態のデータが、ストレージ媒体から読み取られる。媒体暗号鍵を使用して、暗号化された形態のデータが復号される。復号されたデータが出力される。
【0023】
本発明の別の例示的な態様では、デバイス実装方法は、本発明の別の態様によれば、ストレージ媒体上でデータ操作を実行するように構成されたデバイスで、データを読み取るための要求を受信することを含み、データは、暗号化された形態でストレージ媒体に格納されている。ストレージ媒体に格納されたか、またはストレージ媒体と共に格納されたか、あるいはその両方である第1の鍵が取り出される。第2の鍵が、外部ソースから取り出される。第1および第2の鍵を使用して、媒体暗号鍵が生成される。暗号化された形態のデータが、ストレージ媒体から読み取られる。媒体暗号鍵を使用して、暗号化された形態のデータが復号される。復号されたデータが出力される。
【0024】
本発明の別の例示的な態様では、デバイス実装方法は、本発明の別の態様によれば、ストレージ媒体上でデータ操作を実行するように構成されたデバイスで、データを暗号化された形態でストレージ媒体に書き込むための要求を受信することを含む。デバイス内に格納された第1の鍵がアクセスされる。第2の鍵が、外部ソースから受信される。第1および第2の鍵を使用して、媒体暗号鍵が生成される。媒体暗号鍵を使用して、要求されたデータが暗号化された形態でストレージ媒体に書き込まれる。
【0025】
本発明の別の例示的な態様では、デバイス実装方法は、本発明の別の態様によれば、ストレージ媒体上でデータ操作を実行するように構成されたデバイスで、データを暗号化された形態でストレージ媒体に書き込むための要求を受信することを含む。ストレージ媒体に格納されたか、またはストレージ媒体と共に格納されたか、あるいはその両方である第1の鍵が取り出される。第2の鍵が、外部ソースから受信される。第1および第2の鍵を使用して、媒体暗号鍵が生成される。媒体暗号鍵を使用して、要求されたデータが暗号化された形態でストレージ媒体に書き込まれる。
【0026】
例示的なコンピューティング環境
図1は、1つの手法に従って、アーキテクチャ100を示している。図1に示されているように、第1のリモート・ネットワーク104および第2のリモート・ネットワーク106を含む複数のリモート・ネットワーク102が提供される。ゲートウェイ101は、リモート・ネットワーク102と近接ネットワーク108との間で結合されてよい。本アーキテクチャ100との関連において、ネットワーク104、106はそれぞれ、ローカル・エリア・ネットワーク(LAN:local area network)、インターネットなどの広域ネットワーク(WAN:wide area network)、公衆交換電話網(PSTN:public switched telephone network)、構内電話網などを含むが、これらに限定されない、任意の形態をとることができる。
【0027】
使用中に、ゲートウェイ101はリモート・ネットワーク102から近接ネットワーク108への入り口ポイントとして機能する。このようにして、ゲートウェイ101は、ゲートウェイ101に到着するデータの特定のパケットを行き先に向けることができるルータ、およびゲートウェイ101に入る実際のパスおよびゲートウェイ101から出る実際のパスを特定のパケットに提供するスイッチとして機能することができる。
【0028】
ゲートウェイ101を介してリモート・ネットワーク102からアクセスできる、近接ネットワーク108に結合された少なくとも1つのデータ・サーバ114がさらに含まれる。データ・サーバ114が任意のタイプのコンピューティング・デバイス/グループウェアを含むことができるということに注意するべきである。複数のユーザ・デバイス116が各データ・サーバ114に結合されている。ユーザ・デバイス116は、ネットワーク104、106、108のうちの1つを通って直接接続されてもよい。そのようなユーザ・デバイス116は、デスクトップ・コンピュータ、ラップトップ・コンピュータ、ハンドヘルド・コンピュータ、プリンタ、または任意のその他のタイプの論理を含むことができる。1つの手法では、ユーザ・デバイス111がネットワークのうちのいずれかに直接結合されてもよいということに注意するべきである。
【0029】
周辺機器120または一連の周辺機器120(例えば、ファクシミリ装置、プリンタ、ネットワークまたはローカルあるいはその両方のストレージ・ユニットまたはストレージ・システムなど)が、ネットワーク104、106、108のうちの1つまたは複数に結合されてよい。データベースまたは追加コンポーネントあるいはその両方が、ネットワーク104、106、108に結合された任意の種類のネットワーク要素で利用されるか、またはそのようなネットワーク要素に統合されてよいということに注意するべきである。本説明との関連において、ネットワーク要素はネットワークの任意のコンポーネントを指すことができる。
【0030】
一部の手法によれば、本明細書に記載された方法およびシステムは、1つまたは複数の他のシステムをエミュレートする仮想システムまたはシステムあるいはその両方(IBM(R)z/OS(R)環境をエミュレートするUNIX(R)システム、Microsoft(R)Windows(R)環境を仮想的にホストするUNIX(R)システム、IBM(R)z/OS(R)環境をエミュレートするMicrosoft(R)Windows(R)システムなど)と共に実装されるか、またはそのようなシステムの上に実装されるか、あるいはその両方で実装されてよい。一部の手法では、この仮想化またはエミュレーションあるいはその両方は、VMware(R)ソフトウェアを使用して拡張されてよい。
【0031】
その他の手法では、1つまたは複数のネットワーク104、106、108は、一般に「クラウド」と呼ばれる、システムのクラスタを表してよい。クラウド・コンピューティングでは、処理能力、周辺機器、ソフトウェア、データ、サーバなどの共有されたリソースが、オンデマンドの関係においてクラウド内の任意のシステムに提供され、それによって、多くのコンピューティング・システムにまたがるサービスのアクセスおよび分散が可能になる。クラウド・コンピューティングは、通常、クラウド内で動作するシステム間のインターネット接続を含むが、システムを接続するその他の手法が使用されてもよい。
【0032】
図2に、1つの手法に従って、図1のユーザ・デバイス116またはサーバ114あるいはその両方に関連付けられた代表的ハードウェア環境を示す。この図は、マイクロプロセッサなどの中央処理装置210、およびシステム・バス212を介して相互接続されたその他の複数のユニットを備えているワークステーションの標準的なハードウェア構成を示している。
【0033】
図2に示されたワークステーションは、ランダム・アクセス・メモリ(RAM:Random Access Memory)214、読み取り専用メモリ(ROM:Read Only Memory)216、ディスク・ストレージ・ユニット220などの周辺機器をバス212に接続するための入出力(I/O:input/output)アダプタ218、キーボード224、マウス226、スピーカ228、マイクロホン232、またはタッチ・スクリーンおよびデジタル・カメラ(図示されていない)などのその他のユーザ・インターフェイス・デバイス、あるいはその組み合わせをバス212に接続するためのユーザ・インターフェイス・アダプタ222、ワークステーションを通信ネットワーク235(例えば、データ処理ネットワーク)に接続するための通信アダプタ234、ならびにバス212をディスプレイ・デバイス238に接続するためのディスプレイ・アダプタ236を含む。
【0034】
ワークステーション上には、Microsoft Windows(R)オペレーティング・システム(OS:Operating System)、macOS(R)、UNIX(R)OSなどのオペレーティング・システムが常駐してよい。前述されたプラットフォームおよびオペレーティング・システム以外のプラットフォームおよびオペレーティング・システム上に好ましい手法が実装されてもよいということが理解されるであろう。好ましい手法は、拡張マークアップ言語(XML:eXtensible Markup Language)、C言語、もしくはC++言語、またはこれらの組み合わせ、あるいはその他のプログラミング言語を、オブジェクト指向プログラミング方法と共に使用して記述されてよい。複雑なアプリケーションを開発するためにますます使用されるようになったオブジェクト指向プログラミング(OOP:object oriented programming)が使用されてよい。
【0035】
ここで図3を参照すると、1つの手法に従ってストレージ・システム300が示されている。さまざまな態様に従って、図3に示された要素の一部が、ハードウェアまたはソフトウェアあるいはその両方として実装されてよいということに注意する。ストレージ・システム300は、少なくとも1つの上位ストレージ層302上および少なくとも1つの下位ストレージ層306上の複数の媒体またはドライブあるいはその両方と通信するために、ストレージ・システム・マネージャ312を含んでよい。上位ストレージ層302は、ハード・ディスク・ドライブ(HDD:hard disk drive)内のハード・ディスク、不揮発性メモリ(NVM:nonvolatile memory)、半導体ドライブ(SSD:solid state drive)内の半導体メモリ、フラッシュ・メモリ、SSDアレイ、フラッシュ・メモリ・アレイなど、または本明細書に記載されたか、もしくは従来技術において知られているその他の媒体、あるいはその組み合わせなどの、1つまたは複数のランダム・アクセスまたは直接アクセスあるいはその両方の媒体304を含むのが好ましい。下位ストレージ層306は、テープ・ドライブ内の磁気テープもしくは光媒体またはその両方、低速アクセスHDD、低速アクセスSDDなど、または本明細書に記載されたか、もしくは従来技術において知られているその他の順次アクセス媒体、あるいはその組み合わせなどの順次アクセス媒体を含む、1つまたは複数の下位で実行されるストレージ媒体308を含むのが好ましい。1つまたは複数の追加ストレージ層316は、システム300の設計者の要求に従って、ストレージ・メモリ媒体の任意の組み合わせを含んでよい。また、上位ストレージ層302または下位ストレージ層306あるいはその両方のうちのいずれかは、ストレージ・デバイスまたはストレージ媒体あるいはその両方の何らかの組み合わせを含んでよい。
【0036】
ストレージ・システム・マネージャ312は、図3に示されたストレージ・エリア・ネットワーク(SAN:storage area network)またはその他の適切なネットワーク・タイプなどのネットワーク310を介して、上位ストレージ層302上および下位ストレージ層306上のドライブまたはストレージ媒体あるいはその両方304、308と通信してよい。ストレージ・システム・マネージャ312は、ストレージ・システム・マネージャ312の一部であってもなくてもよいホスト・インターフェイス314を介して、1つまたは複数のホスト・システム(図示されていない)と通信してもよい。ストレージ・システム300のストレージ・システム・マネージャ312または任意のその他のコンポーネントあるいはその両方は、ハードウェアまたはソフトウェアあるいはその両方において実装されてよく、従来技術において知られている種類のコマンドを実行するために、中央処理装置(CPU:central processing unit)、フィールド・プログラマブル・ゲートアレイ(FPGA:field programmable gate array)、特定用途向け集積回路(ASIC:application specific integrated circuit)などのプロセッサ(図示されていない)を利用してよい。当然、当業者が本説明を読んだときに明らかであろうように、ストレージ・システムの任意の配置が使用されてよい。
【0037】
その他の手法では、ストレージ・システム300は、任意の数のデータ・ストレージ層を含んでよく、各ストレージ層内の同じであるか、または異なるストレージ・メモリ媒体を含んでよい。例えば、各データ・ストレージ層は、HDD、SSD、順次アクセス媒体(テープ・ドライブ内のテープ、光ディスク・ドライブ内の光ディスクなど)、直接アクセス媒体(CD-ROM、DVD-ROMなど)などの同じ種類のストレージ・メモリ媒体、または媒体のストレージの種類の任意の組み合わせを含んでよい。そのような1つの構成において、上位ストレージ層302は、上位で実行されるストレージ環境内にデータを格納するためのSSDストレージ媒体の大部分を含んでよく、下位ストレージ層306および追加ストレージ層316を含む残りのストレージ層は、データを下位で実行されるストレージ環境内に格納するために、SSD、HDD、テープ・ドライブなどの任意の組み合わせを含んでよい。このようにして、より頻繁にアクセスされるデータ、優先度の高いデータ、より素早くアクセスされる必要のあるデータなどは、上位ストレージ層302に格納されてよく、これらの属性のいずれかを持たないデータは、下位ストレージ層306を含む追加ストレージ層316に格納されてよい。当然、当業者は、本説明を読んだときに、本明細書において提示された手法および態様に従って、異なるストレージ方式で実装するために、ストレージ媒体の種類の多くのその他の組み合わせを考案してよい。
【0038】
一部の手法によれば、ストレージ・システム(300など)は、データ・セットを開くための要求を受信するように構成された論理、要求されたデータ・セットが、複数の関連する部分において、層型データ・ストレージ・システム300の下位ストレージ層306に格納されているかどうかを判定するように構成された論理、要求されたデータ・セットの関連する各部分を層型データ・ストレージ・システム300の上位ストレージ層302に移動するように構成された論理、および層型データ・ストレージ・システム300の上位ストレージ層302上の要求されたデータ・セットを関連する部分から組み立てるように構成された論理を含んでよい。
【0039】
当然、この論理は、さまざまな手法に従って、デバイス上またはシステム上あるいはその両方での方法として、またはコンピュータ・プログラム製品として実装されてよい。
【0040】
暗号消去を可能にするための発明の方法
以下の説明は、内部のアクションおよび外部のアクションの両方によって、ローカルに暗号化されたデータの暗号消去を実行できるようにするためのシステム、方法、およびコンピュータ・プログラム製品の複数の好ましい手法を開示する。1つの手法では、データを暗号化/復号するための使用されるMEKが2つの部分に分割され、1つの鍵分割(Key1)がデータと共に(例えば、SED内、テープ上など)格納され、もう1つの鍵分割(Key2)が外部で管理される。1つの手法では、不揮発性の形態であるKey1は、データと共にのみ格納され、好ましくはラップされた形態で格納される。不揮発性の形態であってよいKey2は、データを含んでいるデバイス/製品の外部にのみ格納されるため、暗号化または復号あるいはその両方を可能にするには、Key2が、データを読み取る/書き込むデバイスに提供される必要がある。MEKは、デバイスがKey1とKey2の両方を持っている場合にのみ、計算されることができる。
【0041】
1つの一般的な態様では、データがSEDに格納される。Key1は、SEDの内部で管理され、未加工の形態でSEDに格納されてよく、またはラップされた形態でSEDに格納されるのがより好ましい。MEKを計算できるようにするために、Key2が、SEDの電源投入サイクルまたはコールド・ブートあるいはその両方の後に、少なくとも1回、SEDに提供される。
【0042】
別の一般的な手法では、データが、磁気記録テープなどのストレージ媒体上、NVRAM内などに格納される。Key1は、ストレージ媒体に格納されるか、またはストレージ媒体と共に格納されるか、あるいはその両方であり、ラップされた形態で格納されてよい。例えば、Key1は、磁気記録テープの一部、テープ・カートリッジ・メモリ内、あるいはその両方に格納されてよい。このようにして、Key1は、磁気記録テープと共に携帯可能になる。同様に、NVRAMデバイスの場合、Key1がNVRAM内、分離したメモリ内などに格納されてよく、テープ・ドライブ、コンピューなどがMEKを計算できるようにするために、Key2がテープ・ドライブ、コンピュータなどに提供される。
【0043】
SED内の暗号消去
以下の説明の大部分は、SEDを使用する例示的な実装に関連して提示されるが、この説明は、単に例として、読者のための補助として背景を提供するためにのみ行われている。したがって、以下で提示される概念および教示は、磁気記録テープ、メモリ・カードなどのストレージ媒体を使用する実装にも同様に適用可能である。
【0044】
ここで図4を参照すると、1つの手法に従って、方法400のフローチャートが示されている。方法400は、さまざまな手法において、特に本明細書に記載された他の図に示された環境のいずれかにおいて、本発明に従って実行されてよい。当然、当業者が本説明を読んだときに理解するであろうように、図4において具体的に説明された動作よりも多いか、または少ない動作が方法400に含まれてよい。
【0045】
方法400のステップの各々は、動作環境の任意の適切なコンポーネントによって実行されてよい。例えば、さまざまな手法では、方法400は、コンピュータ、ドライブ、または1つまたは複数のプロセッサを含んでいるその他のデバイスによって、部分的に、または全体的に実行されてよい。ハードウェアまたはソフトウェアあるいはその両方において実装され、好ましくは少なくとも1つのハードウェア・コンポーネントを含んでいるプロセッサ(例えば、処理回路、チップ、またはモジュール、あるいはその組み合わせ)が、方法400の1つまたは複数のステップを実行するために任意のデバイス内で利用されてよい。例示的なプロセッサは、中央処理装置(CPU)、特定用途向け集積回路(ASIC)、フィールド・プログラマブル・ゲート・アレイ(FPGA)など、これらの組み合わせ、または従来技術において知られた任意のその他の適切なコンピューティング・デバイスを含むが、これらに限定されない。
【0046】
図4に示されているように、方法400は動作402から開始してよく、動作402では、ストレージ媒体からデータを読み取ること、またはストレージ媒体にデータを書き込むこと、あるいはその両方などの、ストレージ媒体上でデータ操作を実行するように構成されたデバイスが、データを読み取るための要求を受信し、データはストレージ媒体に暗号化された形態で格納されている。この要求は、単にデータを要求してよく、またはKey2などの追加情報を含んでよい(下記を参照)。
【0047】
動作404で、デバイス内に格納された第1の鍵(Key1)が、例えば、デバイスのメモリ、ASICなどからアクセスされる。前述したように、一部の手法では、第1の鍵がデバイスに未加工の(暗号化されていない)形態で格納される。他の手法では、第1の鍵がデバイスに、ラップされた形態(例えば、暗号化された形態、パスワードで保護された形態、難読化された形態など)で格納される。第1の鍵をラップ解除するための別の鍵、パスワードなどの情報が受信され、第1の鍵をラップ解除するために使用されてよい。
【0048】
好ましい態様では、デバイスが、デバイスの外部への第1の鍵の転送を禁止するように構成される。しかし、デバイスの内部のコントローラが、デバイス内の第1の鍵にアクセスしてよい。
【0049】
動作406で、第2の鍵(Key2)が外部ソースから受信される。外部ソースは、任意の外部ソースであってよい。例えば、外部ソースは、データの要求元、キー・ストア、キー・サーバ、ユーザによって(例えば、キーボードを介して、フラッシュ・ドライブの挿入によって、などで)入力された鍵であってよい。
【0050】
動作408で、第1および第2の鍵を使用して、媒体暗号鍵(MEK)が生成される。第1および第2の鍵からMEKを作成するために、任意の既知の技術が使用されてよく、例えば、第1および第2の鍵の排他的ORを実行することによって作成してよい。
【0051】
動作410で、要求されたデータの暗号化された形態(すなわち、暗号文)が、例えば従来技術を使用して、ストレージ媒体から読み取られる。ストレージ媒体は、例えば、磁気テープ、磁気ディスク、NVRAMなどの、本明細書で開示されたいずれかの種類であってよい。したがって、デバイスは、例えば、テープ・ドライブ、SSD、HDD、暗号化可能なUSBドライブ、NVRAMモジュールなどの、任意の種類のデータ・ストレージ・デバイスであってよい。
【0052】
要求されたデータの暗号文は、動作412で、データの暗号化されていない形態(すなわち、平文)を与えるために、MEKを使用して復号される。要求されたデータの暗号文は、バッファにコピーされてから復号されてよい、読み取りの「実行中に」復号されてよい(例えば、動作410および412が同時に実行される)、などであってよい。
【0053】
復号されたデータが、動作414で、例えば、ホスト・インターフェイスなどを経由して、データの要求元に出力される。
【0054】
第2のデータが、デバイスによってストレージ媒体に格納される場合、第2のデータが受信される。第3の鍵が第2の外部ソースから受信されてもよい。第2の媒体暗号鍵が、第1および第3の鍵から生成されてもよい。第2の媒体暗号鍵を使用してデータが暗号化され、暗号化されたデータがストレージ媒体に書き込まれる。第2の外部ソースが前述した外部ソースと同じであるか、または異なってよいということに注意する。同様に、第3の鍵は、第2の鍵と異なっているか、または同じであってよい。第3の鍵が第2の鍵と同じである場合、ドライブは、通常、第3の鍵を再び受信する必要はない。
【0055】
以下では、図4のさまざまな動作の態様が示される。そのような態様は、単に例として提示され、制限するよう意図されていない。さらに、そのような態様は、本発明の多くの可能性のある手法に従って、任意の方法で組み合わせられてよい。
【0056】
MEKは、従来技術において知られているか、または本説明を読むときに当業者にとって明らかになるか、あるいはその両方である任意の技術を使用して、2つの別々の鍵から作成されてよい。例えば、計算するためにKey1とKey2の両方の使用を必要とする、MEK鍵を作成するための1つの方法は、Key1およびKey2を2つの独立して生成された乱数とし、次に、Key1およびKey2の2つの値の排他的ORまたは連結などの、Key1とKey2の両方を必要とする計算を実行し、MEKを計算することである。MEKは、代わりに、鍵分割アルゴリズム(例えば、Shamir、Blakely(ユークリッド)など)を使用して、2つ(またはそれ以上)の鍵分割(例えば、Key1およびKey2)に「分割」されてよい。
【0057】
Key1は、任意の考えられるソースから生じてよい。Key1は、SEDの内部で作成されるのが好ましく、意図的に内部からコピーされない限り、Key1のコピーがSEDの外部に存在する必要がないため、これが最も安全な手法である。
【0058】
他の手法では、Key1がSEDの外部で作成され、SEDに提供されてよい。例えば、Key1は、製造のビルド中にデバイスにプログラムされてよい、データが書き込まれるときにデバイスにプログラムされてよい、などであってよい。
【0059】
本明細書に記載されたいずれかの他の手法からの追加の特徴および動作を含むことができる、さらなる手法では、Key1またはKey2あるいはその両方が、データの書き込みと同時に計算されてよい。例えば、新しいMEKが使用されることができる書き込みの場合、MEKが(例えば、乱数生成またはその他の既知の技術によって)生成されてよく、その後、Shamir、Blakely(ユークリッド)などの既知の鍵分割アルゴリズムを使用して、Key1およびKey2の鍵分割がMEKから計算されてよい。MEKの生成および鍵分割の計算は、デバイスによって実行されるのが好ましい。次に、Key1がデバイスの内部で保持されてよく、Key2が、外部の格納のために、デバイスからエクスポートされてよい。さまざまな態様では、このMEKの生成は、先制して(すなわち、書き込みを処理するために必要な時間に影響を与えないように、書き込みコマンドが受信される前に)実行されるか、または応答して(例えば、書き込みコマンドに応答して)実行される(その場合、Key2は、書き込み動作のコマンドの完了前に、外部の格納のために、デバイスからエクスポートされるのが好ましい)。
【0060】
1つの態様では、Key1は、データの特定のセットに固有であってよく、したがってデバイスは、一意のデータセットにそれぞれ関連付けられた複数の一意のKey1を格納してよい。
【0061】
SEDは、どのようなKey1の外部の可視性も、SEDからのKey1の転送またはコピーも許可しないように構成されるのが好ましい。
【0062】
Key2は、SEDの内部で作成されるか(鍵分割アルゴリズムが使用され、Key2になる鍵分割を作成する場合、これが好ましい方法である)、またはSEDの外部で作成される、などであることができる。
【0063】
例示的な手法では、Key1は、MEKの第1の鍵分割であり、MEKと同じ長さ(ビット単位)の第1の乱数である。Key2は、MEKの第2の鍵分割であり、MEKと同じ長さの第2の乱数である。Key1は、事前に定義された方法でKey2と共に処理され、その結果、MEKを生成する。例えば、Key1とKey2の排他的OR(または同様のもの)が実行されて、MEKを生成してよい。あるいは、排他的OR動作(または同様のもの)の代わりに、(例えば、ハッシュまたは暗号化を使用する)標準的な鍵導出技術が使用されて、MEKを計算することができる。MEKの計算のためにKey1とKey2の両方の処理を必要とする任意の形態の鍵導出が許容される可能性がある。MEKからKey1およびKey2を生成するための鍵の分割が使用された場合、Key1およびKey2からMEKを作成するための使用される計算は、(分割の)補完または逆の計算になる。
【0064】
この鍵分割技術では、MEKを持っていない場合、MEKを計算するための唯一の方法がKey1とKey2の両方を持つことであるということに注意する。一般に、N個のうちのM個の鍵分割を背景として、この鍵分割技術は、(MEK)鍵を再構築するために、2つのうちの2つの鍵分割(Key1およびKey2が何であるか)が必要であるということの実装であると考えることができる。代替の、ただし劣った実施形態は、Mを2に設定し、2より多いN個の鍵分割を生成するが、2つを除く他の鍵分割をすべて破棄または破壊し、それらの鍵分割のうちの残りの2つのみを使用するようにすることである(これによって、事実上、鍵分割を2つのうちの2つに減らすが、組み合わせ計算の複雑さを増やす)。
【0065】
分割された鍵MEKを実装するための1つの好ましい手法は、この2つの鍵分割の概念をサポートし、1つの鍵分割(Key1)がSEDの内部で管理され、他の鍵分割(Key2)がSEDの外部で管理されるように、TCG Opal(または、その他のTCG SSC)を拡張することである。TCG Opal SSCの複雑さを熟知している人は誰でも、この概念を実装するための非常に多くの方法が存在し、したがって、本発明が本明細書において提示された例示的な説明に限定されないということを理解するであろう。
【0066】
1つの例示的な手法では、ラップされた形態のKey1が、SED内の不揮発性メモリのみに格納される。Key2は、SEDの外部のみに不揮発性の形態で格納されるため、MEKを計算できるようにするために、電源投入サイクルまたはコールド・ブートあるいはその両方の後に、少なくとも1回、SEDに提供される(またはSEDによってアクセスされる)必要がある。MEKは、SEDがKey1とKey2の両方を持っている場合にのみ、計算されることができる。したがって、Key2が何らかの形態でSEDに提供される(またはSEDによってアクセスされる)必要がある。さまざまな態様に従って、これを実行できる多くの方法がある。1つの方法は、SEDに鍵管理相互運用プロトコル(KMIP:Key Management Interoperability Protocol)クライアントをサポートさせること、および安全なチャネルを経由して、従来技術において知られた種類の外部の鍵マネージャに対してKey2を要求し、受信することである。代替として、個人識別番号(PIN:Personal Identification Numbers)が、例えば安全なトンネル(例えば、TLS)などを介する、平文の形式である方法に類似する方法で、Key2がSEDに提供されてよい。
【0067】
Key1は、ラップされた形態でSEDに格納され、ラッピング鍵(SEDがサポートする異なるロールに対して異なるユーザを認証するためにSEDに提供されるPINに依存してよい)が提供されるまでラップ解除できないのが好ましい。したがって、Key1のラップ解除を可能にするために、SEDの外部から提供されるラッパー鍵の部分は何であれ、SEDに提供される。MEKを計算するために必要なすべての情報(Key2を含む)がSEDに提供されたか、またはSEDによってアクセスされた後に、SEDがMEKを計算し、その後、(例えば、ホスト読み取りに応答するために)既存の暗号文を復号し、結果として平文を生成するか、または(例えば、ホスト書き込みを順守するために)新たに平文の形態で受信された顧客のデータを暗号文に暗号化することができる。
【0068】
1つの手法では、Key2は、ドライブ所有者などの許可された実体が、適切な権限を有するロールに関連付けられたシステム識別番号(SID:System Identification Number)または何らかのその他のPINを使用して認証した後に有効化される、何らかの管理セキュリティ・プロバイダ(以下では、「AdminSP(Administrative Security Provider)」)ロールに関連付けられたPINである。
【0069】
Key2のPINは、変更することが許可されてよい。1つの手法では、Key2のPINは、デフォルト値、例えば、すべてゼロ(0x000...)などの、何らかの事前に定義された値で始まる。1つの企図される実装は、Key2のPINが変更されることを許可するが、Key2のPINの意図されない変更による、MEKによって暗号化されたデータの不注意な暗号消去を許可しないようにするために、AdminSPの最初の管理権限(例えば、AdminSP.Admin1)のPINがカスタマイズされる前にのみ許可する。代替として、暗号消去を呼び出す代替の方法を提供するために、Key2のPINがいつでも変更されることが許可されてよい。
【0070】
Key2が新たに生成された乱数に設定される場合、Key2のPINがSEDの外部で(例えば、ユーザおよびユーザの外部鍵管理インフラストラクチャによって)論理的に生成されるように見えることがあっても、その生成は、実際には、単にSEDのRandomメソッド(SEDが、TCG Opal仕様に従う場合にサポートしなければならないコマンド(認証されていないサービスである))の呼び出しによるものであってよい。SEDは、Randomメソッドに応答して、任意の既知の許容できる技術を使用して新しい乱数を計算し、ホストに返す(提供する)。
【0071】
代替の実装は、場合によっては、またはすべての場合において、SEDをKey2の生成のソースにすることを含む。その場合、Key2はSEDから読み取られてよい。理想的には、この実装は、上で提案された一般的な経路に沿って続行し、それによって、既存のTCG Opalメソッド(コマンド)使用してこの実装が実行されることを可能にする。例えば、1つの手法は、SED内でRandomメソッドを使用してKey2を生成する。その後、AdminSP.Key2のPINが、ホストによって、Randomを介してSEDから読み取られたその同じランダムな値に個人化される。Key2のPINをそのデフォルト値から変更することによって、ホストがこのPINを格納する責任を負ったということに注意する。これを実行するために、SEDは、Randomによって生成された最後の乱数を揮発性メモリのみに格納し、その後、生成されたその最後の乱数をKey2の候補として指定する。AdminSP.Key2のPINがこの同じ値に設定される場合、SEDは、Key2.PINがこの新しい値に変更されることを許可する。ホストがAdminSP.Key2のPINをRandomによって与えられた最後の乱数以外の値に設定しようとする場合、SEDは、任意選択的に、このPINの変更を受け入れることを拒否し、コマンドが失敗したことを示す適切なエラー・コードをポストしてよいということに注意する。この場合、SEDは、引き続きKey2のPINのデフォルト値(すなわち、すべてゼロ=0x000...)に従うことができ、これによって、基本的に、SEDを同じ標準的な動作(すなわち、TCG Opalに従うSEDが現在動作するような動作)に戻す。
【0072】
暗号
SEDがPINを認証するための1つの標準的な方法が、PINをハッシュし、その値を、PINが最初に設定されたときに計算された(SEDに不揮発に格納されて以来の)そのPINのハッシュと比較することによるということに注意する。上記の説明では、AdminSP.Key2のPINがKey2として使用される。この特定のPINが、このPINのハッシュがSED内に格納されることが、将来のある時点で(すなわち、ハッシュが将来、例えば量子コンピューティングによって解読された場合に)安全でなくなると考えられ得るため、このPINのハッシュがSED内に格納されるべきではないという点において、他のPINとは異なって扱われるべきであるということに注意する。少なくともハッシュは、総当たりの推測を試してみる方法を提供する。つまり、AdminSP.Key2のPINを認証するための方法としてPINのハッシュだけに頼らない正当な理由が存在する。したがって、Key2のPINは、MEK自体の妥当性を確認することとは無関係に認証されることができないため、Key2のロールは、それ自身のパスワードを変更すること以外の権限が与えられないのが好ましい。これによって、そのPINを認証する直接的な即時の必要性をなくす。
【0073】
最終的に、Key1およびKey2の排他的OR、結合などが実行されて、MEKを作成する。
【0074】
得られたMEKが正しいということを(例えば、Key2が1ビット間違っていた場合に発生する、1ビット間違っていることに対して)検証するための1つの方法として、鍵のシグネチャの概念が使用されてよい。鍵のシグネチャの概念は、鍵を使用して既知の値を暗号化することを含み、その結果として得られた暗号文が、その鍵のシグネチャとして格納される。
【0075】
好ましい手法では、結果として得られたMEKが正しいということを検証することは、Key2を使用可能にすることがKey1を正常にラップ解除するための要件になるような方法で、SEDの内部で鍵管理を実行することである。例えば、Key2からの鍵導出によって、鍵ストリームが作成されてよく、その鍵ストリームは、デバイスの内部に不揮発性の形態で格納される前に、ラップされた鍵構造との排他的ORなどが実行される。次に、高度暗号化標準(AES)鍵ラップに構築された8バイトのチェックサムが、Key2と、Key1をラップするために使用された他のラッパー鍵との両方の妥当性を確認する働きをする。したがって、Key2に対して鍵導出が使用され、ラップされた鍵構造全体にわたるほど十分な派生的鍵材料を作成するのが好ましい。ラップされた鍵構造(WKS:wrapped key structure)との、その鍵ストリームの排他的ORは、元のWKSの代わりに格納される、新しい保護されているラップされた鍵構造(PWKS:protected wrapped key structure)を作成する。この時点で、PWKS内のどのビットも、正しいことと誤っていることとの50%の確率を有しており、PWKSに対するどのような推論的「修正」も、基本的に、(十分に収束した修正を伴って)非常に多くの鍵のラップ構造の可能性のいずれかに確定する可能性がある。したがって、ラップされた鍵構造自体との鍵ストリームの排他的ORは、二重のラップの内部のデータがMEKであり、2つのラップ解除を実行することによって結合が達成される、さらに別の手法を可能にする事実上の第2のラッピングである。
【0076】
前述の手法の一部では、Key2のPINが、暗号感性パラメータ(CSP:CryptographicallySensitive Parameter)と呼ばれるものになることに注意する。SEDとホストの間でやりとりされるデータが記録される可能性がある場合、これらの間のチャネルが、インターネット・プロトコル・セキュリティ(IPsec:Internet Protocol Security)、ファイバ・チャネル・セキュリティ・プロトコル(FC-SP:Fibre Channel-Security Protocol)、またはトランスポート層セキュリティ(TLS:Transport Layer Security)などの、送信中のデータの暗号化(EDiF:encryption of data in flight)の何らかの形態を使用して保護されるべきである。一部のデータ・センターでは、その環境内でSEDとの間でやりとりされるデータに関する懸念が存在せず、唯一の懸念は、SEDがその保護された環境から離れた後に、そのSEDに発生することであり、そのため、暗号消去の絶対的保証が望ましい。
【0077】
暗号化のXTSモード(例えば、XTS-ASE-256)の場合、暗号化に関連する2つの鍵(暗号鍵および別のツイーク鍵(tweak key))が存在するということに注意する。一部の手法では、これらの鍵は、両方とも単一のルート鍵から(鍵導出によって)生成されることができる。それに応じて、256ビットのMEKが提供されることができ、XTS-ASE-256に必要とされる2つの256ビットの鍵を(鍵導出によって)生成するために使用されてよい。
【0078】
本発明のさまざまな態様を実装したSEDにおける暗号消去の選択肢は、次のうちの1つまたは複数を含む。
1.ユーザが、動作可能なSEDの暗号消去を実行したい場合、ユーザは単に、複数の異なる方法のうちの1つを呼び出して、本明細書において提案されたように暗号消去を実行する。ラップされた鍵構造が上書きされ、この時点でKey1が回復不可能になる。この状況では、Key2も消去する必要はなく、Key1が消失したため、MEKが回復不可能になっている。
2.ユーザが(おそらく、SEDが、コマンドに応答しない動作不可能なSEDであるか、または紛失中のSEDであるため)SEDの暗号消去を実行したいが、何らかの理由のために「1」を実行できない場合、ユーザには、代わりに、SEDから独立してユーザが制御するKey2を消去するという別の選択肢がある。この状況では、ラップされたバージョンのKey1をすべて消去する必要はなく、Key2が消失したため、MEKが回復不可能になっている。この状況では、将来のある時点で、誰かが故障したSEDのラップされた鍵構造をこじ開け、Key1へのアクセスを獲得することができた場合でも、MEKが使用不可能なままであるため、そのすべての作業が無駄になる。その場合、消去されたKey2が必要である。したがって、顧客のデータにアクセスする唯一の実行可能な経路が、ユーザ・データ自体の暗号文を保護している暗号化アルゴリズム(例えば、XTS-ASE-256)を解読することであるという状況は変化しない。
3.ユーザが暗号消去のセキュリティを特に心配している場合、ユーザは、Key1とKey2の両方を削除することを選択してよい。Key2が記録されたかもしれない(例えば、何らかの安全なチャネルによって保護されている場合でも、(おそらくその後)そのセキュリティが破られ、SEDへの送信中にKey2が記録された)という懸念がある場合、このシナリオの可能性が最も高い。しかし、そうでない場合、含まれている暗号のため、Key1とKey2の両方の削除を必要とする理由はないはずである。(例えば、SEDが動作不可能になることに対して)かなり弾力性のある1つの一般的な手法は、Key1とKey2の両方を常に消去しようと試みるが、それら2つの消去のうちの1つが成功するという検証が存在する限り満足することである。
【0079】
磁気記録テープおよびその他の携帯型メモリの暗号消去
前述したように、一部の手法では、暗号化されたデータが、磁気記録媒体(例えば、テープ、ディスク)または半導体メモリ(例えば、NANDフラッシュ、NVRAMなど)などの不揮発性ストレージ媒体に格納される。この場合も、上で提示された動作、概念などのいずれかが、本手法において使用されてよい。
【0080】
ここで図5を参照すると、1つの手法に従って、方法500のフローチャートが示されている。方法500は、さまざまな手法において、特に本明細書に記載された他の図に示された環境のいずれかにおいて、本発明に従って実行されてよい。当然、当業者が本説明を読んだときに理解するであろうように、図5において具体的に説明された動作よりも多いか、または少ない動作が方法500に含まれてよい。
【0081】
方法500のステップの各々は、動作環境の任意の適切なコンポーネントによって実行されてよい。例えば、さまざまな手法では、方法500は、コンピュータ、ドライブ、または1つまたは複数のプロセッサを含んでいるその他のデバイスによって、部分的に、または全体的に実行されてよい。ハードウェアまたはソフトウェアあるいはその両方において実装され、好ましくは少なくとも1つのハードウェア・コンポーネントを含んでいるプロセッサ(例えば、処理回路、チップ、またはモジュール、あるいはその組み合わせ)が、方法500の1つまたは複数のステップを実行するために任意のデバイス内で利用されてよい。例示的なプロセッサは、中央処理装置(CPU)、特定用途向け集積回路(ASIC)、フィールド・プログラマブル・ゲート・アレイ(FPGA)など、これらの組み合わせ、または従来技術において知られた任意のその他の適切なコンピューティング・デバイスを含むが、これらに限定されない。
【0082】
図5に示されているように、方法500は動作502から開始してよく、動作502では、ストレージ媒体からデータを読み取ること、またはストレージ媒体にデータを書き込むこと、あるいはその両方などの、ストレージ媒体上でデータ操作を実行するように構成されたデバイスが、データを読み取るための要求を受信し、データはストレージ媒体に暗号化された形態で格納されている。受信された要求は、単にデータの要求であってよく、またはKey2などの追加情報を含んでよい(下記を参照)。
【0083】
動作504で、ストレージ媒体に格納されたか、またはストレージ媒体と共に格納されたか、あるいはその両方である第1の鍵(Key1)が取り出される。この手順は、データが格納されている媒体、カートリッジ・メモリなどの媒体に物理的に結合されたメモリなどから、第1の鍵を取り出すことを含んでよい。
【0084】
ストレージ媒体は、例えば、磁気テープ、磁気ディスク、NVRAMなどの、本明細書で開示されたいずれかの種類であってよい。したがって、デバイスは、例えば、テープ・ドライブ、SSD、HDDなどの、任意の種類のデータ・ストレージ・デバイスであってよい。
【0085】
前述したように、一部の手法では、第1の鍵がストレージ媒体に、またはストレージ媒体と共に、あるいはその両方で、未加工の(暗号化されていない)形態で格納される。他の手法では、第1の鍵がストレージ媒体に、またはストレージ媒体と共に、あるいはその両方で、ラップされた形態(例えば、暗号化された形態、パスワードで保護された形態などの、難読化された形態)で格納される。第1の鍵をラップ解除するための別の鍵またはPIN、パスワードなどの情報が受信され、第1の鍵をラップ解除するために使用されてよい。
【0086】
好ましい態様では、デバイスが、デバイスの外部への第1の鍵の転送を禁止するように構成される。しかし、デバイスの内部のコントローラが、ストレージ媒体、またはストレージ媒体に結合されたその他のソースからの第1の鍵にアクセスしてよい。
【0087】
動作506で、第2の鍵(Key2)が外部ソースから受信される。外部ソースは、任意の外部ソースであってよい。例えば、外部ソースは、データの要求元、キー・ストア、キー・サーバ、ユーザによって(例えば、キーボードなどを介して)入力された鍵であってよい。
【0088】
動作508で、第1および第2の鍵を使用して、媒体暗号鍵(MEK)が生成される。第1および第2の鍵からMEKを作成するために、任意の既知の技術が使用されてよい。
【0089】
動作510で、要求されたデータが、暗号文の形態で、例えば従来技術を使用して、ストレージ媒体から読み取られる。
【0090】
要求されたデータの暗号文は、動作512で、MEKを使用して復号される。データは、バッファにコピーされてから復号されてよい、読み取りの「実行中に」復号されてよい(例えば、動作510および512が同時に実行される)、などであってよい。
【0091】
復号されたデータが、動作514で、例えば、データの要求元などに出力される。
【0092】
第2のデータが、デバイスによってストレージ媒体に格納される場合、第2のデータが受信される。第3の鍵が第2の外部ソースから受信されてよい。その場合、第1および第3の鍵を使用して、第2の媒体暗号鍵が生成される。第2の媒体暗号鍵を使用してデータが暗号化され、暗号化されたデータがストレージ媒体に書き込まれる。したがって、第2の外部ソースが前述した外部ソースと同じであるか、または異なってよいということに注意する。同様に、第3の鍵は、受信された場合、第2の鍵と異なっているか、または同じであってよい。
【0093】
以下では、図5のさまざまな動作の態様が示される。そのような態様は、単に例として提示され、制限するよう意図されていない。さらに、そのような態様は、本発明の多くの可能性のある手法に従って、任意の方法で組み合わせられてよい。例えば、方法500は、図4に関して上で提示された特徴に類似する特徴(例えば、鍵生成など)を含むか、または組み込んでよい。
【0094】
Key1は、例えばストレージ媒体自体の上に、ストレージ媒体と共に格納されるか、または例えば別のメモリ内に、ストレージ媒体と共に格納されるか、あるいはその両方である。Key1は、ラップされた形態で格納されるのが好ましい。例えば、Key1は、磁気記録テープの一部、テープ・カートリッジ・メモリ内、あるいはその両方に格納されてよい。このようにして、Key1は、磁気記録テープと共に携帯可能になる。同様に、メモリ・スティック、メモリ・カードなどのNVRAMデバイスの場合、Key1が、デバイスのNVRAM内、デバイスの別のメモリ内などに格納されてよい。
【0095】
Key1は、ストレージ媒体を操作しているデバイス(例えば、ドライブ、コンピュータなど)の内部に作成されるのが好ましい。デバイスは、デバイスに結合されたストレージ媒体またはメモリあるいはその両方を除いて、どのようなKey1の外部の可視性も、デバイスの外部へのKey1のコピーも許可しないように構成されるのが好ましい。デバイスは、Key1を、デバイスに結合されたストレージ媒体またはメモリあるいはその両方に転送し、Key1をデバイスから削除するのが好ましい。したがって、Key1は、一部の手法では、取り外し可能なメディア・デバイスに関連付けられたストレージ媒体などの、ストレージ媒体と共にのみ存在する。
【0096】
ストレージ媒体がデバイス自体と一体であるデバイス(例えば、自己暗号化ドライブ(SED)タイプのHDDまたはSSD、NVRAMモジュールなど)の場合、Key1がそのデバイスと共に格納されてよい。例えば、(場合によっては、密閉されて)密封されたSED筐体では、Key1が、通常はその長方形の境界の内部のどこかに保持されてよい。SSDの場合、(ユーザ・データが格納される)メイン不揮発性メモリは、多くの場合、NANDフラッシュである。Key1が、(場合によってはラップされた形態で)そこに格納されてもよい。他の手法では、代わりにKey1は、異なるNANDフラッシュ・チップまたはNORフラッシュ・チップ内、磁気ランダム・アクセス・メモリ(MRAM:magnetic random-access memory)内、スピン注入ランダム・アクセス・メモリ(STT-RAM:spin-transfer torque random-access memory)内、強誘電体ランダム・アクセス・メモリ(FeRAM:ferroelectric random-access memory)内、相変化メモリ(PCM:phase-change memory)内、抵抗性ランダム・アクセス・メモリ(RRAM:resistive random-access memory)、その他の形態のNVRAM(この用語は、これに先立つ用語よりも、あまり技術固有ではない)内などの、筐体の内部の(ユーザ・データから)分離した不揮発性メモリ内に保持されてよい。Key1が、EEPROMなどの消去可能なROMの形態で格納されてもよいということに注意する。したがって、さまざまな手法では、Key1は、ユーザ・データを格納するストレージ媒体とは異なる種類のメモリに格納されてよい。
【0097】
他の手法では、Key1がデバイスの外部で作成され、デバイスに提供されて格納される。
【0098】
Key2は、デバイスの内部またはデバイスの外部で作成されるか、あるいはデバイスの内外からの共同貢献によって作成されることができる。
【0099】
Key2は、ドライブ、コンピュータなどがMEKを計算できるようにするために、テープ・ドライブ、コンピュータなどの内部の揮発性メモリ(例えば、SRAM)に提供されるか、または格納されるか、あるいはその両方である。1つの手法では、Key2が、要求されるたびに、テープ・ドライブ、コンピュータなどに入力されてよい。別の手法では、Key2は、デバイスに提供された後に、テープ・ドライブ、コンピュータなどで揮発性メモリに格納されて、デバイスの内部に保持されてよく、その場合、Key2がラップされるのが好ましい。
【0100】
本明細書におけるさまざまな手法が、例えば、NANDフラッシュ・メモリ、NORフラッシュ・メモリ、相変化メモリ(PCM)、磁気抵抗RAM(MRAM:magnetoresistive RAM)、および抵抗性RAM(RRAM)などのNVRAM技術を含む、広範囲の記憶媒体を使用して実装され得るということが、理解されるべきである。背景を提供するため、および単に読者を助けるために、さまざまな手法は、不揮発性メモリの一種を参照して説明されることがある。この参照は、単に例として行われており、特許請求の範囲において定義されている本発明に対する制限であると見なされるべきではない。
【0101】
1つの例示的な手法では、不揮発性の形態であるKey1は、ラップされた形態で、ストレージ媒体と共にのみ格納される。Key2は、一時的に揮発性メモリに格納されてよいが、ストレージ媒体の外部にのみ、不揮発性の形態で格納される。
【0102】
ストレージ媒体を操作するドライブ、コンピュータなどが、ストレージ媒体からKey1を取り出し、Key2を受信または取得し、MEKを計算できるようにする。
【0103】
Key2は、ドライブ、コンピュータなどにローカルに格納されないのが好ましく、何らかの形態でドライブ、コンピュータなどに提供されてよい。さまざまな態様によれば、前の節で示された手法のいずれかを含む、これを実行できる多くの方法がある。例えば、1つの方法は、ドライブ、コンピュータなどにKMIPクライアントをサポートさせ、安全なチャネルを経由して、従来技術において知られた種類の外部のKMIPサーバ(鍵マネージャ)からKey2を受信することである。
【0104】
一部の手法では、Key2は、好ましくはラップされた形態で、ドライブ、コンピュータなどにローカルに格納される。Key2をラップ解除するための鍵は、ユーザから受信される、鍵マネージャから受信される、などであってよい。
【0105】
Key1は、ラップされた形態でストレージ媒体と共に格納され、ドライブ、コンピュータなどにラッパー鍵(ドライブ、コンピュータなどがサポートする異なるロールに対して異なるユーザを認証するためにドライブ、コンピュータなどに提供される個人識別番号(PIN)であるか、または個人識別番号(PIN)に依存してよい)が提供されるまでラップ解除できないのが好ましい。したがって、Key1のラップ解除を可能にするために、ドライブ、コンピュータなどの外部から提供されるラッパー鍵の部分は何であれ、ドライブ、コンピュータなどに提供される。ドライブ、コンピュータなどが、MEKを計算するために必要なすべての情報(Key2を含む)を蓄積した後に、ドライブ、コンピュータなどがMEKを計算し、その後、(例えば、ホスト読み取りに応答するために)既存の暗号文を復号し、結果として平文を生成するか、または(例えば、ホスト書き込みを順守するために)平文の形態の新しい顧客のデータを暗号文に暗号化することができる。
【0106】
1つの手法では、Key2は、前の節で説明されたようにPINである。
【0107】
代替の実装は、場合によっては、またはすべての場合において、ドライブ、コンピュータなどをKey2の生成のソースにすることを含む。その場合、最初は、Key2がドライブ、コンピュータなどのメモリから読み取られてよい。
【0108】
テープ・ドライブに実装される手法では、Key1がテープ媒体から取得され、Key2が何らかのインターフェイスから取得され、MEKの計算がテープ・ドライブの内部にあり、テープ・ドライブから離れないのが好ましい。
【0109】
暗号消去が有効化されたSEDを使用する書き込み
以下の説明の大部分は、SEDを使用する例示的な実装に関連して提示されるが、この説明は、単に例として、読者のための補助として背景を提供するためにのみ行われている。したがって、以下で提示される概念および教示は、磁気記録テープ、メモリ・カードなどのストレージ媒体を使用する実装にも同様に適用可能である。
【0110】
ここで図6を参照すると、1つの手法に従って、方法600のフローチャートが示されている。方法600は、さまざまな手法において、特に本明細書に記載された他の図に示された環境のいずれかにおいて、本発明に従って実行されてよい。例えば、方法600は、図4に関して上で提示された特徴に類似する特徴を含むか、または組み込んでよく、一部の態様では、デバイスが図4および6の動作を実行することが可能にされてよい。当然、当業者が本説明を読んだときに理解するであろうように、図6において具体的に説明された動作よりも多いか、または少ない動作が方法600に含まれてよい。
【0111】
方法600のステップの各々は、動作環境の任意の適切なコンポーネントによって実行されてよい。例えば、さまざまな手法では、方法600は、コンピュータ、ドライブ、または1つまたは複数のプロセッサを含んでいるその他のデバイスによって、部分的に、または全体的に実行されてよい。ハードウェアまたはソフトウェアあるいはその両方において実装され、好ましくは少なくとも1つのハードウェア・コンポーネントを含んでいるプロセッサ(例えば、処理回路、チップ、またはモジュール、あるいはその組み合わせ)が、方法600の1つまたは複数のステップを実行するために任意のデバイス内で利用されてよい。例示的なプロセッサは、中央処理装置(CPU)、特定用途向け集積回路(ASIC)、フィールド・プログラマブル・ゲート・アレイ(FPGA)など、これらの組み合わせ、または従来技術において知られた任意のその他の適切なコンピューティング・デバイスを含むが、これらに限定されない。
【0112】
図6に示されているように、方法600は動作602から開始してよく、動作602では、ストレージ媒体からデータを読み取ること、またはストレージ媒体にデータを書き込むこと、あるいはその両方などの、ストレージ媒体上でデータ操作を実行するように構成されたデバイスが、データを暗号化された形態でストレージ媒体に書き込むための要求を受信する。この要求は、単にデータの書き込みを要求してよく、またはKey2などの追加情報を含んでよい(下記を参照)。
【0113】
動作604で、デバイス内に格納された第1の鍵(Key1)が、例えば、デバイスのメモリ、ASICなどからアクセスされる。前述したように、一部の手法では、第1の鍵がデバイスに未加工の(暗号化されていない)形態で格納される。他の手法では、第1の鍵がデバイスに、ラップされた形態(例えば、暗号化された形態、パスワードで保護された形態などの、難読化された形態)で格納される。第1の鍵をラップ解除するための別の鍵、パスワードなどの情報が受信され、第1の鍵をラップ解除するために使用されてよい。
【0114】
好ましい態様では、デバイスが、デバイスの外部への第1の鍵の転送を禁止するように構成される。しかし、デバイスの内部のコントローラが、デバイス内の第1の鍵にアクセスしてよい。
【0115】
動作606で、第2の鍵(Key2)が外部ソースから受信される。外部ソースは、任意の外部ソースであってよい。例えば、外部ソースは、データの要求元、キー・ストア、キー・サーバ、ユーザによって(例えば、キーボードなどを介して)入力された鍵であってよい。
【0116】
動作608で、第1および第2の鍵を使用して、媒体暗号鍵(MEK)が生成される。第1および第2の鍵からMEKを作成するために、任意の既知の技術が使用されてよく、例えば、第1および第2の鍵の排他的ORを実行することによって作成してよい。
【0117】
動作610で、要求されたデータの暗号化された形態(すなわち、暗号文)が、媒体暗号鍵を使用して(例えば、従来技術によって)、ストレージ媒体に書き込まれる。ストレージ媒体は、例えば、磁気テープ、磁気ディスク、NVRAMなどの、本明細書で開示されたいずれかの種類であってよい。したがって、デバイスは、例えば、テープ・ドライブ、SSD、HDD、暗号化可能なUSBドライブ、NVRAMモジュールなどの、任意の種類のデータ・ストレージ・デバイスであってよい。
【0118】
図6のさまざまな動作およびコンポーネントの態様は、図4を説明する節において上で説明された態様に類似するのが好ましいが、本明細書における任意の他の節からの特徴を含んでよい。そのような態様は、単に例として提示され、制限するよう意図されていない。さらに、そのような態様は、本発明の多くの可能性のある手法に従って、任意の方法で組み合わせられてよい。
【0119】
磁気記録テープおよびその他の携帯型メモリへの書き込み
前述したように、一部の手法では、暗号化されたデータが、磁気記録媒体(例えば、テープ、ディスク)または半導体メモリ(例えば、NANDフラッシュ、NVRAMなど)などの不揮発性ストレージ媒体に格納される。この場合も、上で提示された動作、概念などのいずれかが、本手法において使用されてよい。
【0120】
ここで図7を参照すると、1つの手法に従って、方法700のフローチャートが示されている。方法700は、さまざまな手法において、特に本明細書に記載された他の図に示された環境のいずれかにおいて、本発明に従って実行されてよい。例えば、方法700は、図4~5に関して上で提示された特徴に類似する特徴を含むか、または組み込んでよく、一部の態様では、デバイスが図5および7の動作を実行することが可能にされてよい。当然、当業者が本説明を読んだときに理解するであろうように、図7において具体的に説明された動作よりも多いか、または少ない動作が方法700に含まれてよい。
【0121】
方法700のステップの各々は、動作環境の任意の適切なコンポーネントによって実行されてよい。例えば、さまざまな手法では、方法700は、コンピュータ、ドライブ、または1つまたは複数のプロセッサを含んでいるその他のデバイスによって、部分的に、または全体的に実行されてよい。ハードウェアまたはソフトウェアあるいはその両方において実装され、好ましくは少なくとも1つのハードウェア・コンポーネントを含んでいるプロセッサ(例えば、処理回路、チップ、またはモジュール、あるいはその組み合わせ)が、方法700の1つまたは複数のステップを実行するために任意のデバイス内で利用されてよい。例示的なプロセッサは、中央処理装置(CPU)、特定用途向け集積回路(ASIC)、フィールド・プログラマブル・ゲート・アレイ(FPGA)など、これらの組み合わせ、または従来技術において知られた任意のその他の適切なコンピューティング・デバイスを含むが、これらに限定されない。
【0122】
図7に示されているように、方法700は動作702から開始してよく、動作702では、ストレージ媒体からデータを読み取ること、またはストレージ媒体にデータを書き込むこと、あるいはその両方などの、ストレージ媒体上でデータ操作を実行するように構成されたデバイスが、データを暗号化された形態でストレージ媒体に書き込むための要求を受信する。受信された要求は、単にデータを書き込むための要求であってよく、またはKey2などの追加情報を含んでよい(下記を参照)。
【0123】
動作704で、ストレージ媒体に格納されたか、またはストレージ媒体と共に格納されたか、あるいはその両方である第1の鍵(Key1)が取り出される。この手順は、データが格納されている媒体、カートリッジ・メモリなどの媒体に物理的に結合されたメモリなどから、第1の鍵取り出すことを含んでよい。
【0124】
ストレージ媒体は、例えば、磁気テープ、磁気ディスク、NVRAMなどの、本明細書で開示されたいずれかの種類であってよい。したがって、デバイスは、例えば、テープ・ドライブ、SSD、HDD、暗号化可能なUSBドライブ、NVRAMモジュールなどの、任意の種類のデータ・ストレージ・デバイスであってよい。
【0125】
前述したように、一部の手法では、第1の鍵がストレージ媒体に、またはストレージ媒体と共に、あるいはその両方で、未加工の(暗号化されていない)形態で格納される。他の手法では、第1の鍵がストレージ媒体に、またはストレージ媒体と共に、あるいはその両方で、ラップされた形態(例えば、暗号化された形態、パスワードで保護された形態などの、難読化された形態)で格納される。第1の鍵をラップ解除するための別の鍵またはPIN、パスワードなどの情報が受信され、第1の鍵をラップ解除するために使用されてよい。
【0126】
好ましい態様では、デバイスが、デバイスの外部への第1の鍵の転送を禁止するように構成される。しかし、デバイスの内部のコントローラが、ストレージ媒体、またはストレージ媒体に結合されたその他のソースからの第1の鍵にアクセスしてよい。
【0127】
動作706で、第2の鍵(Key2)が外部ソースから受信される。外部ソースは、任意の外部ソースであってよい。例えば、外部ソースは、データの要求元、キー・ストア、キー・サーバ、ユーザによって(例えば、キーボードなどを介して)入力された鍵であってよい。
【0128】
動作708で、第1および第2の鍵を使用して、媒体暗号鍵(MEK)が生成される。第1および第2の鍵からMEKを作成するために、任意の既知の技術が使用されてよい。
【0129】
動作710で、要求されたデータが、媒体暗号鍵を使用して(例えば、従来技術によって)、暗号文の形態でストレージ媒体に書き込まれる。
【0130】
図7のさまざまな動作およびコンポーネントの態様は、図5を説明する節において上で説明された態様に類似するのが好ましいが、本明細書における任意の他の節からの特徴を含んでよい。そのような態様は、単に例として提示され、制限するよう意図されていない。さらに、そのような態様は、本発明の多くの可能性のある手法に従って、任意の方法で組み合わせられてよい。
【0131】
さまざまな手法に従うシステムは、ストレージ媒体上でデータ操作を実行するように構成されたデバイスを含み、このデバイスは、プロセッサ、およびプロセッサに統合された論理、プロセッサによって実行可能な論理、またはプロセッサに統合され、プロセッサによって実行可能な論理を含み、この論理は、デバイスに、前述の動作(例えば、図4~7の動作)の一部またはすべてを実行させるように構成される。
【0132】
さまざまな手法に従って、暗号消去を可能にすること、または実行すること、あるいはその両方のためのコンピュータ・プログラム製品は、プログラム命令が具現化されているコンピュータ可読ストレージ媒体を含み、プログラム命令は、前述の動作(例えば、図4~7の動作)の一部またはすべてを実行するように構成されたデバイスによって実行可能である。
【0133】
例示的な実装
1つの手法に従って自己暗号化デバイス(SED)などの暗号化可能なストレージ・デバイスを保護するための例示的なプロセスは、以下の動作を含む。
1.Key1を生成し、そのKey1を、ストレージ・デバイスの内部の安全な方法で、ストレージ・デバイスの内部に格納する。通常、Key1は、平文の形態で不揮発性メモリに格納されない。
2.Key2を生成し、そのKey2をストレージ・デバイスの外部に格納する。
A.Key2がストレージ・デバイスの内部で作成された場合、Key2がストレージ・デバイスから取り出される
B.Key2がストレージ・デバイス外部で作成された場合、そのKey2が、必要な場合に、ストレージ・デバイスに提供される
3.ストレージ・デバイスは、Key1およびKey2を使用して、媒体暗号鍵(MEK)を計算する
4.MEKは、データを暗号化して暗号文を作成するため、および暗号文を復号して平文を作成するために、直接的または間接的に使用される。
【0134】
停電またはコールド・ブート後に、1つの手法に従って自己暗号化デバイス(SED)などの暗号化可能なストレージ・デバイスへのアクセスを再獲得するための例示的なプロセスは、以下の動作を含む。
1.Key2がストレージ・デバイスに提供される。
2.ストレージ・デバイスの内部のKey1にアクセスし、このアクセスすることは、Key1を暗号によってラップ解除することを伴ってよく、Key2および1つまたは複数のアクセス鍵(例えば、PIN)を必要としてよい。
3.ストレージ・デバイスは、Key1およびKey2を使用して、媒体暗号鍵(MEK)を計算する
4.MEKは、データを暗号化して暗号文を作成するため、および暗号文を復号して平文を作成するために、直接的または間接的に使用される。
【0135】
デバイスを廃棄するか、または盗まれたデバイスを保護するためのプロセス
例えば、バックグラウンド・エラー率が大きくなり過ぎたため(例えばこれは、多すぎる書き込みサイクルのために発生する可能性がある)、またはおそらく「故障」し、一部の動作が正常に完了しなくなったため、ストレージ・デバイスが廃棄されることになった場合に、1つの手法に従って実行されてよい例示的なプロセスは、以下の動作を含む。
1.Key1の暗号消去を実行するよう指示するコマンドをストレージ・デバイスに送信する
2.Key1の暗号消去が正常に完了したか?
・「はい」である場合、そのMEKに従って暗号化されたデータの暗号消去が正常に実行された
・この場合、Key2を破棄する必要はないが、Key2の破棄が実行されることもできる
・「いいえ」である場合、暗号消去が発生したということを信用することはできない。
・ストレージ・デバイスの外部のKey2を破棄し、そのようにして、外部の手段によってストレージ・デバイスの暗号消去を実行する
・ストレージ・デバイスが鍵の揮発性イメージを保持していないことを保証するために、ストレージ・デバイスの電源切断またはコールド・ブートを実行する。
【0136】
鍵の削除は、Key2が最初に破棄され、その後、好ましくはKey1の削除を試みるという、反対の順序で実行されてもよいということに注意する。1つの手法に従う例示的なプロセスは、以下の動作を含む。
1.ストレージ・デバイスの外部のKey2を破棄し、そのようにして、外部の手段によってストレージ・デバイスの暗号消去を実行する
2.Key1の暗号消去を実行するよう指示するコマンドをストレージ・デバイスに送信する
3.Key1の暗号消去が正常に完了したか?
・「はい」である場合、Key1およびKey2の破棄によって、そのMEKに従って暗号化されたデータの暗号消去が正常に実行された
・ストレージ・デバイスがどの鍵の揮発性イメージも保持していないことを保証するために、ストレージ・デバイスの電源切断またはコールド・ブートを実行する
・しかし、「いいえ」である場合、ストレージ・デバイスの外部のKey2が破棄され、そのようにして、外部の手段によってストレージ・デバイスの暗号消去が達成される。
【0137】
ストレージ・デバイスが盗まれたか、またはストレージ・システムから除去される前にストレージ・デバイスの暗号消去が実行されず、その後、例えば別の場所への輸送中にストレージ・デバイスが紛失した場合、ストレージ・デバイスに物理的にアクセスすることができないため、Key1の破棄によるデータの暗号消去が不可能になったので、代わりにKey2を破棄しなければならず、Key2の破棄がストレージ・デバイスに物理的にアクセスできなくても可能であるということに注意する。
【0138】
図8は、本発明を使用せずに現在実現できることの例を示しており、図9および10は、本発明の1つまたは複数の手法を使用して、操作上、実現できることの例を示している。図8~10の表は、説明を要せず、単に例として提示されている。
【0139】
本発明は、任意の可能な統合の技術的詳細レベルで、システム、方法、またはコンピュータ・プログラム製品、あるいはその組み合わせであってよい。コンピュータ・プログラム製品は、プロセッサに本発明の態様を実行させるためのコンピュータ可読プログラム命令を含んでいるコンピュータ可読ストレージ媒体を含んでよい。
【0140】
コンピュータ可読ストレージ媒体は、命令実行デバイスによって使用するための命令を保持および格納できる有形のデバイスであることができる。コンピュータ可読ストレージ媒体は、例えば、電子ストレージ・デバイス、磁気ストレージ・デバイス、光ストレージ・デバイス、電磁ストレージ・デバイス、半導体ストレージ・デバイス、またはこれらの任意の適切な組み合わせであってよいが、これらに限定されない。コンピュータ可読ストレージ媒体のさらに具体的な例の非網羅的リストは、ポータブル・フロッピー・ディスク、ハード・ディスク、ランダム・アクセス・メモリ(RAM:random access memory)、読み取り専用メモリ(ROM:read-only memory)、消去可能プログラマブル読み取り専用メモリ(EPROM:erasable programmable read-only memoryまたはフラッシュ・メモリ)、スタティック・ランダム・アクセス・メモリ(SRAM:static random access memory)、ポータブル・コンパクト・ディスク読み取り専用メモリ(CD-ROM:compact disc read-only memory)、デジタル・バーサタイル・ディスク(DVD:digital versatile disk)、メモリ・スティック、フロッピー・ディスク、パンチカードまたは命令が記録されている溝の中の隆起構造などの機械的にエンコードされるデバイス、およびこれらの任意の適切な組み合わせを含む。本明細書において使用されるとき、コンピュータ可読ストレージ媒体は、それ自体が、電波またはその他の自由に伝搬する電磁波、導波管またはその他の送信媒体を伝搬する電磁波(例えば、光ファイバ・ケーブルを通過する光パルス)、あるいはワイヤを介して送信される電気信号などの一過性の信号であると解釈されるべきではない。
【0141】
本明細書に記載されたコンピュータ可読プログラム命令は、コンピュータ可読ストレージ媒体から各コンピューティング・デバイス/処理デバイスへ、またはネットワーク(例えば、インターネット、ローカル・エリア・ネットワーク、広域ネットワーク、または無線ネットワーク、あるいはその組み合わせ)を介して外部コンピュータまたは外部ストレージ・デバイスへダウンロードされ得る。このネットワークは、銅伝送ケーブル、光伝送ファイバ、無線送信、ルータ、ファイアウォール、スイッチ、ゲートウェイ・コンピュータ、またはエッジ・サーバ、あるいはその組み合わせを備えてよい。各コンピューティング・デバイス/処理デバイス内のネットワーク・アダプタ・カードまたはネットワーク・インターフェイスは、コンピュータ可読プログラム命令をネットワークから受信し、それらのコンピュータ可読プログラム命令を各コンピューティング・デバイス/処理デバイス内のコンピュータ可読記憶媒体に格納するために転送する。
【0142】
本発明の動作を実行するためのコンピュータ可読プログラム命令は、アセンブラ命令、命令セット・アーキテクチャ(ISA:instruction-set-architecture)命令、マシン命令、マシン依存命令、マイクロコード、ファームウェア命令、状態設定データ、集積回路のための構成データ、あるいは、Smalltalk(R)、C++などのオブジェクト指向プログラミング言語、および「C」プログラミング言語または同様のプログラミング言語などの手続き型プログラミング言語を含む1つまたは複数のプログラミング言語の任意の組み合わせで記述されたソース・コードまたはオブジェクト・コードであってよい。コンピュータ可読プログラム命令は、ユーザのコンピュータ上で全体的に実行すること、ユーザのコンピュータ上でスタンドアロン・ソフトウェア・パッケージとして部分的に実行すること、ユーザのコンピュータ上およびリモート・コンピュータ上でそれぞれ部分的に実行すること、あるいはリモート・コンピュータ上またはサーバ上で全体的に実行することができる。後者のシナリオでは、リモート・コンピュータは、ローカル・エリア・ネットワーク(LAN:local area network)または広域ネットワーク(WAN:wide area network)を含む任意の種類のネットワークを介してユーザのコンピュータに接続されてよく、または接続は、(例えば、インターネット・サービス・プロバイダを使用してインターネットを介して)外部コンピュータに対して行われてよい。一部の実施形態では、本発明の態様を実行するために、例えばプログラマブル・ロジック回路、フィールドプログラマブル・ゲート・アレイ(FPGA)、またはプログラマブル・ロジック・アレイ(PLA:programmable logic arrays)を含む電子回路は、コンピュータ可読プログラム命令の状態情報を利用することによって、電子回路をカスタマイズするためのコンピュータ可読プログラム命令を実行してよい。
【0143】
本発明の態様は、本明細書において、本発明の実施形態に従って、方法、装置(システム)、およびコンピュータ・プログラム製品のフローチャート図またはブロック図あるいはその両方を参照して説明される。フローチャート図またはブロック図あるいはその両方の各ブロック、ならびにフローチャート図またはブロック図あるいはその両方に含まれるブロックの組み合わせが、コンピュータ可読プログラム命令によって実装され得るということが理解されるであろう。
【0144】
これらのコンピュータ可読プログラム命令は、コンピュータまたはその他のプログラム可能なデータ処理装置のプロセッサを介して実行される命令が、フローチャートまたはブロック図あるいはその両方のブロックに指定される機能/動作を実施する手段を作り出すべく、コンピュータ、または他のプログラム可能なデータ処理装置のプロセッサに提供されてマシンを作り出すものであってよい。これらのコンピュータ可読プログラム命令は、命令が格納されたコンピュータ可読ストレージ媒体がフローチャートまたはブロック図あるいはその両方のブロックに指定される機能/動作の態様を実施する命令を含んでいる製品を含むような特定の方法で、コンピュータ可読ストレージ媒体に格納され、コンピュータ、プログラム可能なデータ処理装置、または他のデバイス、あるいはその組み合わせに機能するように指示できるものであってもよい。
【0145】
コンピュータ可読プログラム命令は、コンピュータ上、その他のプログラム可能な装置上、またはその他のデバイス上で実行される命令が、フローチャートまたはブロック図あるいはその両方のブロックに指定される機能/動作を実施するように、コンピュータ、その他のプログラム可能なデータ処理装置、またはその他のデバイスに読み込まれてもよく、それによって、一連の動作可能なステップを、コンピュータ上、その他のプログラム可能な装置上、またはコンピュータ実装プロセスを生成するその他のデバイス上で実行させる。
【0146】
図内のフローチャートおよびブロック図は、本発明のさまざまな実施形態に従って、システム、方法、およびコンピュータ・プログラム製品の可能な実装のアーキテクチャ、機能、および動作を示す。これに関連して、フローチャートまたはブロック図内の各ブロックは、規定された論理機能を実装するための1つまたは複数の実行可能な命令を備える、命令のモジュール、セグメント、または部分を表してよい。一部の代替の実装では、ブロックに示された機能は、図に示された順序とは異なる順序で発生してよい。例えば、連続して示された2つのブロックは、実際には、含まれている機能に応じて、1つのステップとして実行されるか、同時に実行されるか、時間的に部分的または完全に重複する方法で実質的に同時に実行されるか、または場合によっては逆の順序で実行されてよい。ブロック図またはフローチャート図あるいはその両方の各ブロック、ならびにブロック図またはフローチャート図あるいはその両方に含まれるブロックの組み合わせは、規定された機能または動作を実行するか、または専用ハードウェアとコンピュータ命令の組み合わせを実行する専用ハードウェアベースのシステムによって実装され得るということにも注意する。
【0147】
さらに、さまざまな実施形態に従うシステムは、プロセッサ、およびプロセッサに統合された論理またはプロセッサによって実行可能な論理あるいはその両方を含んでよく、この論理は、本明細書において列挙された処理ステップのうちの1つまたは複数を実行するように構成される。プロセッサは、処理ハードウェア、メモリ、I/Oインターフェイスなどの多くのコンポーネントを含んでいる、個別のプロセッサまたは処理回路などの、本明細書に記載されているような任意の構成であってよい。統合されるということは、つまり、プロセッサに論理が、特定用途向け集積回路(ASIC)、FPGAなどのハードウェア論理として組み込まれるということである。プロセッサによって実行可能であるということは、つまり、論理が、プロセッサによってアクセス可能なハードウェア論理、ソフトウェア論理(ファームウェア、オペレーティング・システムの一部、アプリケーション・プログラムの一部など)など、またはハードウェア論理とソフトウェア論理の何らかの組み合わせであり、プロセッサによって実行されたときに何らかの機能をプロセッサに実行させるように構成されているということである。ソフトウェア論理は、従来技術において知られた任意のメモリ・タイプの、ローカルまたはリモートあるいはその両方のメモリに格納されてよい。ASIC、FPGA、中央処理装置(CPU)、集積回路(IC:integrated circuit)、グラフィック処理装置(GPU:graphics processing unit)といった、ソフトウェア・プロセッサ・モジュールまたはハードウェア・プロセッサあるいはその両方などの、従来技術において知られた任意のプロセッサが使用されてよい。
【0148】
上で提示された説明から複数の組み合わせを作成して、前述のシステムまたは方法あるいはその両方のさまざまな特徴が任意の方法で組み合わせられてよいということは、明らかである。
【0149】
本発明の態様が、サービスをオンデマンドで提供するように顧客のために展開されるサービスの形態で提供されてよいということがさらに理解されるであろう。
【0150】
本発明のさまざまな態様の説明は、例示の目的で提示されているが、網羅的であることは意図されておらず、開示された手法に限定されない。説明された態様の範囲から逸脱することなく多くの変更および変形が可能であることは、当業者にとって明らかであろう。本明細書で使用された用語は、さまざまな手法の原理、実際の適用、または市場で見られる技術を超える技術的改良を最も良く説明するため、または他の当業者が本明細書で開示された手法を理解できるようにするために選択されている。
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10