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

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

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

特表2024-500732内部動作を介してキー・パーIO対応デバイス中に記憶されたデータの暗号消去
<>
  • 特表-内部動作を介してキー・パーIO対応デバイス中に記憶されたデータの暗号消去 図1
  • 特表-内部動作を介してキー・パーIO対応デバイス中に記憶されたデータの暗号消去 図2
  • 特表-内部動作を介してキー・パーIO対応デバイス中に記憶されたデータの暗号消去 図3
  • 特表-内部動作を介してキー・パーIO対応デバイス中に記憶されたデータの暗号消去 図4
  • 特表-内部動作を介してキー・パーIO対応デバイス中に記憶されたデータの暗号消去 図5
  • 特表-内部動作を介してキー・パーIO対応デバイス中に記憶されたデータの暗号消去 図6
  • 特表-内部動作を介してキー・パーIO対応デバイス中に記憶されたデータの暗号消去 図7
  • 特表-内部動作を介してキー・パーIO対応デバイス中に記憶されたデータの暗号消去 図8
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2024-01-10
(54)【発明の名称】内部動作を介してキー・パーIO対応デバイス中に記憶されたデータの暗号消去
(51)【国際特許分類】
   H04L 9/10 20060101AFI20231227BHJP
   G06F 21/60 20130101ALI20231227BHJP
【FI】
H04L9/10 A
G06F21/60 320
【審査請求】未請求
【予備審査請求】未請求
(21)【出願番号】P 2023536569
(86)(22)【出願日】2021-11-15
(85)【翻訳文提出日】2023-06-15
(86)【国際出願番号】 CN2021130623
(87)【国際公開番号】W WO2022127464
(87)【国際公開日】2022-06-23
(31)【優先権主張番号】17/122,956
(32)【優先日】2020-12-15
(33)【優先権主張国・地域又は機関】US
(81)【指定国・地域】
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
1.SMALLTALK
(71)【出願人】
【識別番号】390009531
【氏名又は名称】インターナショナル・ビジネス・マシーンズ・コーポレーション
【氏名又は名称原語表記】INTERNATIONAL BUSINESS MACHINES CORPORATION
【住所又は居所原語表記】New Orchard Road, Armonk, New York 10504, United States of America
(74)【代理人】
【識別番号】100112690
【弁理士】
【氏名又は名称】太佐 種一
(74)【代理人】
【識別番号】100120710
【弁理士】
【氏名又は名称】片岡 忠彦
(74)【復代理人】
【識別番号】100118599
【弁理士】
【氏名又は名称】村上 博司
(74)【復代理人】
【識別番号】100160738
【弁理士】
【氏名又は名称】加藤 由加里
(72)【発明者】
【氏名】ジャケット,グレン アラン
(57)【要約】
キー・パーIO対応システム(Key per IO-enabled system)において、内部動作若しくは外部動作又はそれらの組み合わせを介して暗号消去を有効化若しくは実行又は有効化且つ実行する為の、デバイスに実装された方法。様々なアプローチにおいて、キー・パーIOスキーム内に記憶されたデータの暗号消去は、内部キーを実装することで可能であり、それは外部キーと組み合わされて媒体暗号化キーを生成し、それは、データを暗号化/復号する為に使用される。該内部キーへのアクセスを制限することにより、内部キー及び内部キーを使用して生成された1以上の全ての媒体暗号化キーを破壊すると、データは暗号化され、且つ回復不可能になる。
【選択図】図4
【特許請求の範囲】
【請求項1】
デバイスに実装された方法であって、
記憶媒体上でデータ操作を実行するように構成されたデバイスにおいて、1以上の固有の外部キーを受信すること、ここで、前記1以上の外部キーは、キー・パーIO操作(Key per IO operation)の為に1以上の外部ソースから前記デバイスに提供される;
前記デバイス内に記憶されている内部キーにアクセスすること;
前記内部キー及び、前記1以上の外部キーのうちの前記関連付けられた1つを使用して、前記1以上の外部キーのうちの少なくとも一部の各々の為に固有の媒体暗号化キーを生成すること、ここで、各媒体暗号化キーは、その生成の為に用いられた前記外部キーに関連付けられている;並びに、
前記1以上の外部キーのうちの1つに関連付けられたデータの為にデータ操作を実行する為の要求を受信したことに応答して、その外部キーに関連付けられた前記媒体暗号化キーを使用して、前記データを暗号化及び/又は復号すること
を含む、前記方法。
【請求項2】
前記内部キーが、前記デバイスの内部で生成される、請求項1に記載の、デバイスに実装された方法。
【請求項3】
前記内部キーが、ラップされた形式で前記デバイスの不揮発性メモリ内に記憶される、請求項2に記載の、デバイスに実装された方法。
【請求項4】
前記1以上の外部キー及び前記媒体暗号化キーが、前記デバイスにおいて、揮発性メモリにのみ記憶される、請求項1に記載の、デバイスに実装された方法。
【請求項5】
前記デバイスが、前記内部キーをいかなる形態でも前記デバイスの外部に転送することを禁止するように構成されている、請求項1に記載の、デバイスに実装された方法。
【請求項6】
前記外部キーの幾つかは、同じ論理ブロックアドレス範囲内の異なる位置で記憶された固有のデータに個別に関連付けられる、請求項1に記載の、デバイスに実装された方法。
【請求項7】
前記媒体暗号化キーのうちの少なくとも1つは、複数の内部キーを使用して生成される、請求項1に記載の、デバイスに実装された方法。
【請求項8】
前記内部キーを使用して生成された前記1以上の媒体暗号化キーを使用して書き込まれたデータの暗号消去を、前記内部キー及びその内部キーを使用して生成された前記デバイス内の関連付けられた1以上の全ての媒体暗号化キーを破壊することによって行うことを含む、請求項1に記載の、デバイスに実装された方法。
【請求項9】
暗号消去を可能にする為のコンピュータプログラム製品であって、該コンピュータプログラム製品が、コンピュータ可読記憶媒体に埋め込まれた複数のプログラム命令を有する該コンピュータ可読記憶媒体を備えており、該複数のプログラム命令は、デバイスによって実行可能であり、記憶媒体上でデータ操作を実行して、前記デバイスに請求項1に記載の方法を実行させるように構成されている、前記コンピュータプログラム製品。
【請求項10】
システムであって、該システムは、
記憶媒体上でデータ操作を実行するように構成されたデバイスを備えており、ここで、前記デバイスは、プロセッサと該プロセッサと統合されたロジックとを備えており、該ロジックは、前記プロセッサによって実行可能であり、又は前記プロセッサと統合され且つ前記プロセッサによって実行可能であり、前記ロジックは、前記デバイスに、請求項1に記載の方法を実行させるように構成されている、
前記デバイス。
【請求項11】
デバイスに実装された方法であって、
第1のデータに関連付けられた第1の外部キーを使用して、前記第1のデータを暗号化された形式で記憶媒体に書き込む為の要求を、前記記憶媒体上でデータ操作を実行するように構成されたデバイスにおいて受信すること;
前記デバイス内に記憶されている内部キーにアクセスすること;
前記内部キー及び前記第1の外部キーを使用して、第1の媒体暗号化キーを生成すること;
前記第1の媒体暗号化キーを使用して前記第1のデータを暗号化すること;
前記暗号化された第1のデータを、前記記憶媒体の第1の論理ブロックアドレス範囲内で前記記憶媒体に書き込むこと;
第2のデータに関連付けられた第2の外部キーを使用して、前記第2のデータを暗号化された形式で前記記憶媒体に書き込む為の第2の要求を、前記デバイスにおいて受信すること;
前記デバイス内に記憶された前記内部キーにアクセスすること;
前記内部キー及び前記第2の外部キーを使用して、第2の媒体暗号化キーを生成すること;
前記第2の媒体暗号化キーを使用して前記第2のデータを暗号化すること;並びに、
前記暗号化された第2のデータを、前記記憶媒体の第1の論理ブロックアドレス範囲内で前記記憶媒体に書き込むこと;
を含む、前記方法。
【請求項12】
前記内部キーが、前記デバイスの内部で生成される、請求項11に記載の、デバイスに実装された方法。
【請求項13】
前記外部キーを1以上の外部ソースから受信することを含む、請求項11に記載の、デバイスに実装された方法。
【請求項14】
前記外部キー及び前記媒体暗号化キーは、前記デバイスにおいて、揮発性メモリにのみ記憶される、請求項13に記載の、デバイスに実装された方法。
【請求項15】
前記デバイスは、前記内部キーをいかなる形態でも前記デバイスの外部に転送することを禁止するよう構成されている、請求項11に記載の、デバイスに実装された方法。
【請求項16】
前記デバイスは、キー・パーIOデバイス(Key per IO device)として構成されている、請求項11に記載の、デバイスに実装された方法。
【請求項17】
暗号消去の為の、デバイスに実装された方法であって、
記憶媒体の少なくとも1つの論理ブロックアドレス範囲内の全てのデータの暗号消去を生じさせる為の要求を、キー・パーIO操作(Key per IO operation)を使用して前記記憶媒体上でデータ操作を実行するように構成されたデバイスにおいて受信すること、ここで、前記少なくとも1つの論理ブロックアドレス範囲内の前記データの個々の部分は各々、固有の外部キーに関連付けられ、前記データの前記個々の部分は各々、内部キーと前記データの前記部分に関連付けられた前記固有の外部キーとを使用して生成された固有の媒体暗号化キーを使用して暗号化される;並びに、
前記内部キー及び前記デバイス内で前記内部キーに関連付けられた1以上の全ての媒体暗号化キーを破壊することによって、前記暗号消去を達成すること
を含む、前記方法。
【請求項18】
前記外部キー及び前記媒体暗号化キーが、前記デバイスにおいて、揮発性メモリにのみ記憶される、請求項17に記載の、前記デバイスに実装された方法。
【請求項19】
前記デバイスが、前記内部キーをいかなる形態でも前記デバイスの外部に転送することを禁止するように構成されている、請求項17に記載の、前記デバイスに実装された方法。
【請求項20】
システムであって、該システムは、
記憶媒体上でデータ操作を実行するように構成されたデバイスを備えており、ここで、前記デバイスは、プロセッサと前記プロセッサと統合されたロジックとを有し、該ロジックは、前記プロセッサによって実行可能であり、又は前記プロセッサと統合され且つ前記プロセッサによって実行可能であり、前記ロジックは、前記デバイスに、請求項17に記載の方法を実行させるように構成されている、
前記システム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、暗号消去(crypto-erasure)に関し、より具体的には、本発明は、キー・パーIO対応デバイス(Key per IO-enabled devices:IO毎のキー対応デバイス)において内部動作(internal action)による暗号消去(crypto-erasure)を可能にする技術及びシステムに関する。
【背景技術】
【0002】
語「暗号消去」(crypto-erase)(以下、単に、暗号消去という)は一般的に、何らかの方法でデータの暗号化を解除する為に必要な暗号化キーへのアクセスを不可能にすることを云う。これは、例えば、暗号化キーの全てのコピーを消去することによって、又は暗号化キーの一部を削除することによって、暗号化キーを生成又はアンラップする(unwrap)為に必要な関連付けられたキーへのアクセスを無効にする、等によって行われることが出来る。該暗号化キーを永久に無効にすることによって、その暗号化キーで暗号化されたデータは復号出来なくなり、該暗号化されたデータは事実上暗号化解除不可能になる。
【0003】
今日のデータセンターでは、故障した又は廃止した暗号化対応ドライブ(ECD:Encryption-Capable Drives)の全てを完全に暗号消去することが出来ないことが大きな問題になっていることが判っている。ECDは、自己暗号化ドライブ(SED:Self-Encrypting Drive)タイプであるかどうか、及びストレージ技術、例えば、SSD(solid-state drive)、HDD(hard disk drive)、ソリッドステートとハードディスク技術の両方からなるハイブリッドドライブ又は代替技術のドライブ、に関係なく暗号化可能である。例えば、ECDがシステムとの通信がもはや出来なくなるような故障が発生する可能性がある。そのような故障状態において、ECDは暗号消去のコマンドを受信することも、暗号消去のコマンドが成功裡に完了したことを示す状態でそのようなコマンドに応答することも出来ない。完全に暗号消去出来なかった故障したECDのソリッドステートドライブ(SSD)又はハードディスクドライブ(HDD)のメモリからフォレンジック的にデータが復元されるリスクを避けたいデータセンターにとって、これは問題である。今日、これらのデータセンターは典型的には、フォレンジックリカバリー(forensic recovery)を防ぐ為に、これらのドライブを物理的に破壊することに頼っている。ユーザは、データの漏洩を恐れて、良心に基づいてこれらのドライブをメーカーに返却したり又はそれらを再利用したりすることは出来ない。
【0004】
ECD上のデータの暗号化及び復号に使用される媒体暗号化キー(MEK:Media Encryption Key)は、現代のSEDドライブ内に平文(cleartext)で保存されないことに留意されたい。代わりに、MEKは暗号的にラップされ、例えば、それ自体が暗号化されるか又は難読化される。非常に長期的には、これは十分に強力でない可能性があり、予見可能な将来にキーラッピング技術(key wrapping technique)が(例えば、量子コンピューティングを介して)破られる可能性があると考えられる分野がある。
【0005】
問題の範囲にかかわらず、又はラップされたキーが復号若しくは解読される可能性があるという何らかの正当な懸念があるべきかどうかにかかわらず、MEKの不揮発性ストレージ及び暗号消去を処理する為にドライブに依存したくない又は完全に信頼したくないエンティティが存在することはおそらく本当でありうる。MEKが破壊され、そして、それを使用して生成された全ての暗号文が外部で暗号消去されることを保証する為に、MEKをECD上に保存するというよりも、各電源投入サイクル後にMEKを該ドライブに提供することをそのようなユーザが非常に好む場合がある。これにより、外部エンティティはECDの外部にあるMEKを制御出来るようになり、及び暗号消去がドライブにより実行されることを許可しない様式でECDに障害が発生した場合に、該外部エンティティは、特別な措置が講じられなければならないことを保証する必要はない。MEKはドライブの外部で不揮発的にのみ保存される為に、ECDがどのように故障したかとは無関係に、ユーザによって破壊される可能性がある。しかしながら、MEKが保存されているユーザのキーストアが侵入されたり、又はECDへのMEKの通信が盗聴されたり(及び、周囲のセキュリティが破られたり)することにより、MEKはキャプチャ又は取得に対して脆弱になる。
【0006】
ECDを外部で暗号消去する為の能力を可能にする為の1つの方法は、LTO-4(暗号化対応LTOテープドライブの最初の世代)によって使用されたダイレクトキーサービングモデル(direct key serving model)の使用によってである。暗号化可能なデバイスの外部でキーがどのように処理されるかにより、該キーが暗号消去可能であるかどうかが決定することに留意されたい。しかし確かに、ECDの外部でキーの管理が適切に行われていれば、故障したECDドライブに関連付けられたMEKの全てのコピーを確実に暗号消去することが出来るはずである。しかしながら、データの復号にキーが利用可能であるようにする為に、典型的にはキーのコピーが生成され、そして、分散された場所に保存される。なぜならば、該キーのコピーが残っていない場合に、そのキーで暗号化されたデータ、すなわち暗号文、は復号出来なくなり、事実上アクセス不可能になる、すなわち「暗号消去」されるからである。従って、復元力を高める為にECDの外部で該キーのコピーが益々生成される故に、キー管理の安全性を確保することが著しく困難になる。
【0007】
LTO-4以降、自己暗号化ドライブ(SED:Self-Encrypting Drive)技術は、トラステッド・コンピューティング・グループ(TCG:Trusted Computing Group)の仕様、例えば、それらのTCGストレージ(TCG Storage)のセキュリティサブシステムクラス(SSC:Security Subsystem Classes)、例えばEnterprise及び(より最近の)Opalを包含する上記のSSC、に準拠するように標準化されている。それらのSSCはいずれも、SEDドライブ(それはECDの1つの形態である)内部の暗号消去機能を、複数の異なる様式でサポートする。例えば、TCGのOpal SSCの場合に、内部暗号消去を呼び出す為に少なくとも4種類の方法がある。しかし、これら2つのTCG SSCはいずれも、SEDそれ自体から独立した外部エンティティによる暗号消去、すなわちSSCによって特定された方法(コマンド)をSEDが尊重することが出来ない場合には、暗号消去をサポートしない。MEKは常にSED内に保存され、典型的には暗号的にラップされた形式で保存される。誰かが何らかの様式で、該ラップされたMEKを破る方法を見つけ出すことが出来れば、その人は、Enterprise又はOpal SSCのいずれかに準拠する故障したSED内に記憶されている関連付けられた全ての暗号文を復元することが出来る。
【0008】
現在開発中のSSCは、キー・パーIO(Key per IO:IO毎のキー)と云う。SSCの基本的なコンセプトは、Opal又はEnterprise SSCとは異なる。代わりに、キー・パーIOは、外部キー管理が必要になることが期待されている。それにより、ドライブの(又は、そのドライブのサブセット、例えばデータバンド、の)単一の論理ブロックアドレス(LBA:Logical Block Address)範囲に対応する単一の名前空間、例えば、不揮発性メモリエクスプレス(NVMe:Non-Volatile Memory Express)名前空間、内で多数のMEKが使用されることを可能にする。提案されたキー・パーIO SSCに準拠するECDに提供される全てのMEKは、そのECD内に揮発性形式でのみ保存され、従って典型的には、該デバイスが一旦電源オフにされるか又はリセットされると該全てのMEKはECDから消える。キー・パーIOスキームの問題の1つは、内部暗号消去のサポートが有効になっていないことである。それ故に、外部で管理されているMEKのうちの1つが例えば攻撃者によって入手された場合に、そのMEKで暗号化された暗号文(暗号化されたデータ)にアクセス可能になる。
【0009】
ECDに基づく慣用的なストレージシステムにおいて、ECDが限界に達している(marginal)と見なされる場合、例えば、欠陥がある、又はすぐに壊れると予想される場合、最初に典型的に行われることは、その限界に達しているECDを該ストレージシステムから取り出すプロセスを開始することである。該ECDをその製造元に返却する前に、ECD上の全てのデータを何らかの方法で安全に消去することが典型的に行われている。これを行う方法の一つは、全ての暗号文を消去することであり、出来ればECD上の全てのデータを検証済で消去することである。ソリッドステートドライブ(SSD)タイプのECDの場合、これはしばしばフラッシュドライブ内のフラッシュメモリチップにおける全ページのページ消去を試みることによって実行される。これは成功する場合もあれば又は成功しない場合もありうる。例えば、一部のページが完全に消去されない可能性があり、その場合には、ページ上の一部のビット、例えば、幾つかの残存暗号文ビット、が消去されないままとなる。最悪の場合(例えば、該ページの消去線が切れた場合)、完全に可読の暗号文が残ってしまう。このような最悪の事態を防ぐ為に、媒体の無害化(Media Sanitization)に関する米国国立標準技術研究所(NIST:National Institute of Standards and Technology)のSP 800-88r1のような規格は、ドライブが消去されたページを読み取り、全てのビット(又は、それらのビットの少なくとも十分なサンプル)が実際に消去されたこと(許容可能なバックグラウンドエラー率を差し引いたもの)を確認することによって各ページの消去を検証することを要求する。しかし、残念ながら、全てのページに対してページ消去を行うことを試みようとすると、成功しない可能性があることは周知である。SP 800-88r1の場合、全てのデータ(例えば、暗号文)が安全に消去されることが出来ない場合、ドライブが物理的に破壊される、例えば、粉砕される及び焼却される、必要がある。そのようなドライブは再利用されることが出来ないばかりか、それらを製造業者に返却することさえも出来ない。
【0010】
SP 800-88のr1バージョンにおける変更点の1つは、SSDタイプのECDドライブに保存された或るタイプのデータについて、暗号消去がSSDを安全に消去又は削除する為の許容可能な方法であるとNISTが判断したことである(すなわち、それらSSDが再利用され又は製造業者に返却されることを可能にするのに十分であるということである)。従って、或るタイプの記憶媒体、例えばSSDタイプのECD、の場合、全ての暗号文を消去する代わりに、暗号消去を行うことである。問題は、現在提案されているように、キー・パーIO対応ドライブは独立して暗号消去を実行することが出来ないことであり、従って、標準のキー・パーIOを使用するストレージシステムが現実的に持つ唯一のオプションは、システムから取り外されるマージナルなドライブ(marginal drive)上のデータを透過的に(ホストに対して)ワイプし、その上の暗号文を全て消去しようとする方法であり、しかし、それは前の段落において説明されているように失敗する可能性がある。
【発明の概要】
【課題を解決するための手段】
【0011】
暗号消去が可能になったことにより、暗号消去が、全ての暗号文を消去する代わりに行われることが出来る。代替的に、全ての暗号文を消去することに加えて、暗号消去が行われうる。その場合には、これら2つの操作が任意の順序で実行されうる。
【0012】
本発明の1つの観点に従う、デバイスに実装された方法は、記憶媒体上でデータ操作を実行するように構成されたデバイスにおいて、1以上の固有の外部キーを受信することを含み、ここで、該1以上の外部キーは、キー・パーIO操作(Key per IO operation)の為に1以上の外部ソースから該デバイスに提供される。該デバイス内に記憶されている内部キーがアクセスされる。固有のMEKが、該内部キー及び、該1以上の外部キーのうちの該関連付けられた1つを使用して、該1以上の外部キーのうちの少なくとも一部の各々の為に生成され、ここで、各MEKは、その生成の為に用いられた該外部キーに関連付けられている。該1以上の外部キーのうちの1つに関連付けられたデータの為にデータ操作を実行する為の要求を受信したことに応答して、その外部キーに関連付けられた該媒体暗号化キーが、該データを暗号化及び/又は復号する為に使用される。
【0013】
前述された方法は、該内部キーを実行することによって、キー・パーIOスキームで保存されたデータの内部暗号消去(crypto-erasure)を可能にし、ここで、該内部キーは外部キーと組み合わされてMEKを生成し、そして、該生成されたMEKは、テナントのデータを暗号化/復号する為に使用される。ECDに対する外部のテナントはなく、理想的には誰も内部キーにアクセス出来ない為に、該内部キーの破壊によりデータが暗号消去され、従って回復不可能になる。
【0014】
好ましいアプローチにおいて、該デバイスは、該内部キーを該デバイスの外部へ転送することを禁止するように構成される。従って、該内部キーは該デバイスの外に出ることが出来ない為に、該デバイス内に保存されている該内部キー及びそれに関連付けられたMEKの破壊により、MEKを使用して書き込まれた全てのデータが効果的に暗号消去され、そして、MEKが、該内部キーを使用して再生されることが出来ないことを保証する。
【0015】
幾つかのアプローチにおいて、該外部キーのうちの幾つかは、同じ論理ブロックアドレス範囲内の異なる位置に保存されている固有のデータに個別に関連付けられる。そのようなアプローチは有利には、テナントがECD上で同じ名前空間を共有することを可能にする。該内部キーは、最初のテナントの特定の外部キーと組み合わされてMEKを生成し、次に、そのテナントのデータの書き込み及び読み取りの為に使用される故に、複数のテナントがアドレス空間を共有している場合でさえも、最初のテナントの外部キー無しには、他のテナントは最初のテナントのデータの暗号化を解除することが出来ない。
【0016】
本発明の他の観点に従う、デバイスに実装された方法は、第1のデータに関連付けられた第1の外部キーを使用して、該第1のデータを暗号化された形式で記憶媒体に書き込む為の要求を、該記憶媒体上でデータ操作を実行するように構成されたデバイスにおいて受信することを含む。該デバイス内に記憶されている内部キーがアクセスされる。第1のMEKが、該内部キー及び該第1の外部キーを使用して生成される。該第1のデータが、該第1のMEKを使用して暗号化される。該暗号化された第1のデータが、該記憶媒体の第1の論理ブロックアドレス範囲内で該記憶媒体に書き込まれる。第2の要求が受信され、ここで、該第2の要求は、第2のデータに関連付けられた第2の外部キーを使用して、該第2のデータを暗号化された形式で該記憶媒体に書き込む為のものである。該デバイス内に記憶された該内部キーがアクセスされ、そして、第2のMEKが該内部キー及び該第2の外部キーを使用して生成される。該第2のデータは、該第2のMEKを使用して暗号化される。該暗号化された第2のデータは、該記憶媒体の第1の論理ブロックアドレス範囲内で該記憶媒体に書き込まれる。
【0017】
前述された方法は、キー・パーIOスキームで保存された該データの内部暗号消去(crypto-erasure)を可能にする。その上、この観点により、或るテナントがその共有名前空間内の他のテナントのデータにアクセスすることを許可すること無しに、2つ以上のテナントがECD上で同じ名前空間を共有することが出来るようにするキー・パーIOの機能を保持する。
【0018】
本発明の更に他の観点に従う、暗号消去の為の、デバイスに実装された方法は、記憶媒体の少なくとも1つの論理ブロックアドレス範囲内の全てのデータの暗号消去(crypto-erasure)を生じさせる為の要求を、キー・パーIO操作(Key per IO operation)を使用して該記憶媒体上でデータ操作を実行するように構成されたデバイスにおいて受信する。少なくとも1つの論理ブロックアドレス範囲内の該データの個々の部分は各々、固有の外部キーに関連付けられ、該データの該個々の部分は各々、内部キーと該データの該部分に関連付けられた該固有の外部キーとを使用して生成された固有の媒体暗号化キーを使用して暗号化される。その論理ブロック範囲の内部暗号化は、その論理ブロック範囲に関連付けられた共通の内部キー及び該内部キーに関連付けられた1以上の全ての媒体暗号化キーを破壊することによって達成されることが出来る。
【0019】
前述された方法により、キー・パーIOスキームで暗号化された状態で保存されているデータの内部暗号消去(crypto-erasure)が可能になる。
【0020】
好ましいアプローチにおいて、該デバイスは、該内部キーの該デバイスの外部への転送を禁止するように構成される。従って、該内部キーは、該デバイスの外に出ることが出来ない為に、該デバイス内に保存されている内部キー及びそれから生成された全てのMEKの破壊により、それらのMEKを使用して書き込まれた全てのデータが効果的に暗号消去され、そして、MEKが、今破壊されたその内部キーを使用して再生成されることが出来ないことを保証する。
【0021】
幾つかのアプローチにおいて、該外部キーのうちの幾つかは、同じ論理ブロックアドレス範囲内の異なる位置に保存されている固有のデータに個別に関連付けられる。そのようなアプローチにより、有利には、テナントがECD上で同じ名前空間を共有することを可能にする。該内部キーは、テナントの特定の外部キーと組み合わされてMEKを生成し、次に、そのテナントのデータの書き込み及び読み取りの為に使用される故に、複数のテナントがアドレス空間を共有している場合でさえも、最初のテナントの外部キー無しには、他のテナントは最初のテナントのデータの暗号化を解除することが出来ない。
【0022】
暗号消去を可能にする為のコンピュータプログラム製品は、コンピュータ可読記憶媒体に埋め込まれた複数のプログラム命令を有する該コンピュータ可読記憶媒体を備えており、該複数のプログラム命令は、デバイスによって実行可能であり、記憶媒体上でデータ操作を実行して、該デバイスに本明細書に提示された任意の方法を実行させるように構成されている。
【0023】
本発明の様々な態様に従うシステムは、記憶媒体上でデータ操作を実行するように構成されたデバイスを備えている。そのようなデバイスは、プロセッサと該プロセッサと統合されたロジックとを備えており、該ロジックは、該プロセッサによって実行可能であり、又は該プロセッサと統合され且つ該プロセッサによって実行可能であり、該ロジックは、該デバイスに、本明細書に提示された任意の方法を実行させるように構成されている。
【0024】
本明細書において記載されている様々なアプローチは、多くの種類の記憶媒体、例えば、不揮発性メモリ及び磁気記録テープを包含する上記の記憶媒体、に適用可能である。
【0025】
本発明の他の観点及びアプローチは、本発明の原理を例として説明する以下の発明の詳細な説明から、図面と共に考慮されるときに明らかになるであろう。
【図面の簡単な説明】
【0026】
図1図1は、本発明の1つの観点に従う、ネットワークアーキテクチャの図である。
図2図2は、本発明の1つの観点に従う、図1のサーバ若しくはクライアント又はそれらの組み合わせに関連付けられうる代表的なハードウェア環境の図である。
図3図3は、本発明の1つの観点に従う、階層型(tiered)データストレージシステムの構成図である。
図4図4は、本発明の1つの観点に従う、方法のフローチャート図である。
図5図5は、本発明の1つの観点に従う、方法のフローチャート図である。
図6図6は、本発明の1つの観点に従う、方法のフローチャート図である。
図7図7は、本発明の1つの観点に従う、方法のフローチャート図である。
図8図8は、キー・パーIO対応ストレージ製品をリタイヤさせ、及び安全性を確保する為の技術の現状を、本発明の観点によって可能になる手順と対比したチャート図である。
【発明を実施するための形態】
【0027】
以下の説明は、本発明の一般的な原理を説明する目的でなされたものであり、本明細書において請求される発明概念を限定することを意図するものでない。更に、本明細書に記載された特定の特徴は、様々な在りうる組み合わせ及び順列の各々において、他の記載された特徴と組み合わされて使用されることが出来る。
【0028】
本明細書で特に定義されていない限り、全ての語は、本明細書から示唆される意味、並びに当業者によって理解される意味、若しくは辞書、専門書等において定義されている意味、又はそれらの組み合わせを含めて、可能な限り広い解釈を与えられるべきである。
【0029】
また、本明細書及び添付の特許請求の範囲で使用される場合、単数形「1つ」(a)、「1つ」(an)及び「該」(the)は、特に指定されない限り、複数の参照語を包含することに留意されなければならない。本明細書において使用される場合、語「含む」及び/又は「含んでいる」は、記載された特徴、整数、工程、操作、要素、若しくは構成要素、又はそれらの組み合わせの存在を特定するが、1以上の他の特徴、整数、工程、操作、要素、若しくは構成要素、又はそれらの組み合わせの群の存在或いは付加を排除しないことが更に理解されるであろう。
【0030】
本明細書は、キー・パーIO対応デバイスにおける内部動作によってローカルに暗号化されたデータが暗号消去されることを可能にする為の、システム、方法及びコンピュータプログラム製品の幾つかの好ましいアプローチを開示する。様々なアプローチにおいて、外部から提供される「暗号化」キーKextは直接的に使用されず、代わりに内部キーKintがKextと組み合わされる。これら2つのキーの組み合わせは、実際の媒体暗号化キー(MEK)として使用される。
【0031】
1つの一般的なアプローチにおいて、デバイスに実装された方法は、記憶媒体上でデータ操作を実行するように構成されたデバイスにおいて、1以上の固有の外部キーを受信することを含み、ここで、該1以上の外部キーは、キー・パーIO操作(Key per IO operation)の為に1以上の外部ソースから該デバイスに提供される。該デバイス内に記憶されている内部キーがアクセスされる。固有のMEKが、内部キー及び、該1以上の外部キーのうちの該関連付けられた1つを使用して、該1以上の外部キーのうちの少なくとも一部の各々の為に生成され、各MEKはその生成の為に用いられた外部キーに関連付けられる。1以上の該外部キーのうちの1つに関連付けられたデータの為にデータ操作を実行する為の要求を受信したことに応答して、その外部キーに関連付けられたMEKが、該データを暗号化及び/又は復号する。
【0032】
別の一般的なアプローチにおいて、デバイスに実装された方法は、第1のデータに関連付けられた第1の外部キーを使用して、該第1のデータを暗号化された形式で記憶媒体に書き込む為の要求を、該記憶媒体上でデータ操作を実行するように構成されたデバイスにおいて受信することを含む。該デバイス内に記憶されている内部キーがアクセスされる。第1のMEKが、該内部キーと該第1の外部キーを使用して生成される。該第1のデータが、該第1のMEKを使用して暗号化される。該暗号化された第1のデータは、該記憶媒体の第1の論理ブロックアドレス範囲内で該記憶媒体に書き込まれる。第2の要求が受信され、ここで、該第2の要求は、該第2のデータに関連付けられた第2の外部キーを使用して、該第2のデータを暗号化された形式で該記憶媒体に書き込む。該デバイス内に記憶されている該内部キーがアクセスされ、そして、第2のMEKが、該内部キー及び該第2の外部キーを使用して生成される。該第2のデータは、該第2のMEKを使用して暗号化される。該暗号化された第2のデータは、該記憶媒体の第1の論理ブロックアドレス範囲内の幾つかの第2の論理ブロックアドレスにおいて記憶媒体に書き込まれる。
【0033】
更に別の一般的なアプローチにおいて、暗号消去の為の、デバイスに実装された方法は、記憶媒体の少なくとも1つの論理ブロックアドレス範囲内の全てのデータの暗号消去(crypto-erasure)を生じさせる為の要求を、キー・パーIO操作(Key per IO operation)を使用して該記憶媒体上でデータ操作を実行するように構成されたデバイスにおいて受信することを含む。該少なくとも1つの論理ブロックアドレス範囲内の該データの個々の部分は各々、固有の外部キーに関連付けられ、該データの該個々の部分は各々、内部キーと該データの該部分に関連付けられた該固有の外部キーとを使用して生成された固有のMEKを使用して暗号化される。暗号消去(crypto-erasure)は、該内部キー及びその内部キーから生成された在りうる1以上のMEKを破壊することによって達成される。
【0034】
図解的なコンピューティング環境
【0035】
図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)及び内部電話ネットワーク等を包含するがこれらに限定されないあらゆる形態を取りうる。
【0036】
使用中、ゲートウェイ101は、リモートネットワーク102から近接ネットワーク108への入口点として機能する。このように、ゲートウェイ101は、ゲートウェイ101に到着するデータの所定のパケットを指示することが出来るルータとして、及び所与のパケットの為にゲートウェイ101の内外に実際の経路を提供するスイッチとして機能しうる。
【0037】
更に、近接ネットワーク108に接続され且つゲートウェイ101を介してリモートネットワーク102からアクセス可能であるところの少なくとも1つのデータサーバ114が備えられている。1以上のデータサーバ114は、あらゆるタイプのコンピューティングデバイス/グループウェアを備えていてもよいことに留意されるべきである。各データサーバ114に接続されるのは、複数のユーザデバイス116である。ユーザデバイス116はまた、ネットワーク104、106及び108のうちの1つを通じて直接的に接続されてもよい。そのようなユーザデバイス116は、デスクトップコンピュータ、ラップトップコンピュータ、ハンドヘルドコンピュータ、プリンタ、又はあらゆる他のタイプのロジックを包含しうる。ユーザデバイス111がまた、1つのアプローチにおいて、ネットワークのいずれかに直接的に接続されてもよいことに留意されるべきである。
【0038】
1つの周辺機器120又は一連の周辺機器120、例えば、ファクシミリ装置、プリンタ、ネットワーク化された若しくはローカル又はそれらの組み合わせのストレージ装置又はストレージシステム等、が、ネットワーク104、106及び108のうちの1以上に接続されうる。データベース若しくは追加のコンポーネント又はそれらの組み合わせは、ネットワーク104、106及び108に接続されたあらゆるタイプのネットワーク要素と共に利用されうるか又はそれに統合されうることに留意されるべきである。本記載の文脈において、ネットワーク要素は、ネットワークの任意のコンポーネントを言及しうる。
【0039】
幾つかのアプローチに従うと、本明細書に記載された方法及びシステムは、仮想システム若しくは1以上の他のシステムをエミュレートするシステム又はそれらの組み合わせと共に、及び/又は、仮想システム若しくは1以上の他のシステムをエミュレートするシステム又はそれらの組み合わせ上で、実装されてもよく、該仮想システム若しくは1以上の他のシステムをエミュレートするシステムは、例えば、IBM(登録商標) z/OS(登録商標)環境をエミュレートするUNIX(登録商標)システム、Microsoft(登録商標) Windows(登録商標)環境を仮想的にホストするUNIX(登録商標)システム、IBM(登録商標) z/OS(登録商標)環境をエミュレートするMicrosoft(登録商標) Windows(登録商標)システム、である。この仮想化若しくはエミュレーション又はそれらの組み合わせは、幾つかのアプローチにおいてVMware(登録商標)ソフトウェアの使用を通じて強化されうる。
【0040】
より多くのアプローチにおいて、1以上のネットワーク104、106及び108は、一般に「クラウド」として言及されるシステムのクラスタを表しうる。クラウドコンピューティングにおいて、共有されるリソース、例えば、処理能力、周辺機器、ソフトウェア、データ、サーバ等、が、オンデマンド関係でクラウド内のあらゆるシステムに提供され、それによって、多くのコンピューティングシステムにわたるサービスのアクセス及び分配を可能にする。クラウドコンピューティングは典型的には、該クラウド内で動作するシステム間のインターネット接続を伴うが、該システムを接続する他の技術がまた使用されうる。
【0041】
図2は、1つのアプローチに従って、図1のユーザデバイス116若しくはデータサーバ114又はそれらの組み合わせに関連付けられた代表的なハードウェア環境を示す。該図2は、中央処理装置210、例えばマイクロプロセッサ、と、システムバス212を介して相互接続された多数の他のユニットとを有するワークステーションの代表的なハードウェア構成を図示する。
【0042】
図2に示されているワークステーションは、ランダムアクセスメモリ(RAM)214、読み取り専用メモリ(ROM)216、周辺装置、例えばディスク記憶装置220、をバス212に接続する為の入出力(I/O)アダプタ218、キーボード224、マウス226、スピーカ228、マイク232、若しくは他のユーザインタフェースデバイス、例えば、タッチスクリーン及びデジタルカメラ(図示せず)又はそれらの組み合わせ、をバス212に接続する為のユーザインタフェースアダプタ222、ワークステーションを通信ネットワーク235(例えば、データ処理ネットワーク)に接続する為の通信アダプタ234、及びバス212をディスプレイデバイス238に接続する為のディスプレイアダプタ236を備えている。
【0043】
該ワークステーションは、オペレーティングシステム、例えば、Microsoft(登録商標)Windows(登録商標)オペレーティングシステム(OS)、macOS(登録商標)、UNIX(登録商標) OS等、をその上に常駐させうる。好ましいアプローチは、言及されたもの以外のプラットフォーム及びオペレーティングシステム上でまた実施されうることが理解されるであろう。好ましいアプローチは、オブジェクト指向プログラミング手法と共に、拡張可能マークアップ言語(XML:eXtensible Markup Language)、C言語若しくはC++言語又はそれらの組み合わせ、或いは他のプログラミング言語を使用して記述されうる。複雑なアプリケーションを開発する為に使用されるように益々なってきたオブジェクト指向プログラミング(OOP:object oriented programming)が使用されうる。
【0044】
ここで、図3を参照すると、1つのアプローチに従うストレージシステム300が示されている。図3に示されている要素のうちの幾つかは、様々な観点に従って、ハードウェア若しくはソフトウェア又はそれらの組み合わせとして実装されうることに留意されたい。ストレージシステム300は、少なくとも1つの上位ストレージティア(higher storage tier)302及び少なくとも1つの下位ストレージティア(lower storage tier)306上の複数の媒体若しくはドライブ又はそれらの組み合わせと通信する為のストレージシステムマネージャ312を備えていてもよい。1以上の上位ストレージテイア302は好ましくは、1以上のランダムアクセス若しくはダイレクトアクセス媒体304又はそれらの組み合わせ、例えば、ハードディスクドライブにおけるハードディスク(HDD)、不揮発性メモリ(NVM:non-volatile memory)、ソリッドステートドライブにおけるソリッドステートメモリ(SSD)、フラッシュメモリ、SSDアレイ、フラッシュメモリアレイ、若しくは本明細書において記載された他のもの或いは当該技術分野において知られている他のもの、又はそれらの組み合わせを備えていてもよい。1以上の下位ストレージティア306は好ましくは、1以上の低性能ストレージ媒体308、例えばシーケンシャルアクセス媒体、例えば、テープドライブ及び/又は光学媒体における磁気テープ、より遅いアクセスのHDD、より遅いアクセスのSSD、を包含する上記の1以上の低性能ストレージ媒体308、及び/又は本明細書において記載された他のもの或いは当該技術分野において知られている他のものを備えていてもよい。1以上の追加のストレージティア316は、システム300の設計者によって所望される任意の組み合わせのストレージメモリ媒体を備えていてもよい。また、上位ストレージティア302若しくは下位ストレージティア306又はそれらの組み合わせのいずれかが、ストレージデバイス若しくはストレージ媒体又はそれらの組み合わせを備えていてもよい。
【0045】
ストレージシステムマネージャ312は、図3に示されているようなネットワーク310、例えばストレージエリアネットワーク(SAN:storage area network)、又は他の適切なネットワークタイプを通じて、1以上の上位ストレージティア302及び1以上の下位ストレージティア306上のドライブ若しくは記憶媒体304及び308又はそれらの組み合わせと通信しうる。ストレージシステムマネージャ312はまた、ストレージシステムマネージャ312の一部であってもよく又はなくてもよいホストインタフェース314を通じて1以上のホストシステム(図示せず)と通信しうる。ストレージシステムマネージャ312若しくはストレージシステム300の任意の他の構成要素又はそれらの組み合わせは、ハードウェア若しくはソフトウェア又はそれらの組み合わせで実装されてもよく、当該技術分野において既知のタイプのコマンド実行の為のプロセッサ(図示せず)、例えば、中央処理装置(CPU:central processing unit)、フィールドプログラム可能なゲートアレイ(FPGA:field programmable gate array)、特定用途向け集積回路(ASIC:application specific integrated circuit)、を利用しうる。勿論、本明細書を読むことに応じて当業者に明らかになるように、ストレージシステムの任意の配置が使用されうる。
【0046】
より多くのアプローチにおいて、ストレージシステム300は、任意の数のデータストレージティアを備えていてもよく、各ストレージティアに同じ又は異なるストレージメモリ媒体を備えていてもよい。例えば、各データストレージティアは、同じタイプのストレージメモリ媒体、例えば、HDD、SSD、シーケンシャルアクセス媒体(テープドライブ内のテープ、光ディスクドライブ内の光ディスク)、ダイレクトアクセス媒体(CD-ROM、DVD-ROM等)、又は媒体ストレージタイプの任意の組み合わせ、を備えていてもよい。そのような構成の1つにおいて、上位ストレージティア302は、より高いパフォーマンスのストレージ環境にデータを記憶する為のSSDストレージ媒体の大部分を備えていてもよく、及び残りのストレージティア、例えば、下位ストレージティア306及び追加のストレージティア316を備えている上記の残りのストレージティア、は、より低いパフォーマンスのストレージ環境にデータを記憶する為のSSD、HDD、テープドライブ等の任意の組み合わせを備えていてもよい。このように、より頻繁にアクセスされるデータ、より高い優先度を有するデータ、より迅速にアクセスされる必要があるデータ等は、上位ストレージティア302に記憶され、これらの属性のいずれかを有しないデータは、追加のストレージティア316、例えば、下位ストレージティア306を包含する上記の追加のストレージティア316、に記憶されてもよい。勿論、当業者は、本記載を読むことに応じて、本明細書において提示されたアプローチ及び観点に従って、異なるストレージスキーム内に実装する為のストレージ媒体タイプの他の多くの組み合わせを考案しうる。
【0047】
幾つかのアプローチに従うと、ストレージシステム(例えば、ストレージシステム300)は、データセットを開く為の要求を受信するように構成されたロジックと、要求されたデータセットが階層型データストレージシステム300の下位ストレージティア306に関連付けられた複数の部分に記憶されているかどうかを判断するように構成されたロジックと、該要求されたデータセットの関連付けられた各部分を階層型データストレージシステム300の上位ストレージティア302に移動するように構成されたロジックと、該関連付けられた部分から階層型データストレージシステム300の上位ストレージティア302上に該要求されたデータセットをアセンブルするように構成されたロジックとを備えていてもよい。
【0048】
勿論、このロジックは、様々なアプローチに従って、任意のデバイス若しくはシステム又はそれらの組み合わせにおける方法として、又はコンピュータプログラム製品として実装されうる。
【0049】
キー・パーIOの基本
【0050】
或る場合には、異なるエンティティが、ストレージデバイスにおいて同じアドレス空間を使用することを可能にすることが望ましい。しかしながら、単純化された実装は、最初のエンティティが書き込んだ内容を単に読み取ることが出来る2番目のエンティティからのプライバシーの保証が、最初のエンティティに与えられない。これに対する1つの解決策は、各エンティティ(又は、テナント)が、書き込みデータを暗号化する為に及びそれらの暗号化された暗号文を復号する為にデバイスが必要とするところの、デバイスの外部で管理することが出来る固有のキーを使用することである。そのキーは、本明細書において、外部キー、外部MEK、及びKextとして言及されるであろう。特に、各テナントは、夫々のテナントのデータを暗号化する為の固有のKextを有し、及びそのKextは、他のテナントのKextとは異なる。このスキームは一般的に、キー・パーIOスキームと呼ばれる。
【0051】
キー・パーIO対応デバイス(例えば、ECD、コンピュータ等)の電源投入時に、暗号化又は復号を実行する為のKextがない。寧ろ、Kextは、例えば、必要に応じて、読み取り又は書き込み操作等の為の要求と関連して、任意の所望の様式でそれに提供される。例えば、テナントは、Kextを、それが将来参照されることになるであろうキータグ(例えば、T)と共に送信してもよく、該デバイスは、それを揮発性メモリ内に記憶する。次に、該デバイスがコマンドヘッダの一部としてキータグTを含むコマンド(例えば、NVMeコマンド)を受信するときに、該デバイスはメモリから関連付けられたKextを取り出し、そして、暗号文が不揮発性メモリへ記憶される前にホストによって書き込まれている平文データを暗号化する為に、又は対応する平文が該ホストに送られる前に不揮発性メモリから読み込まれている暗号文データを復号する為にそれを使用する。該デバイスは、異なるキータグに関連付けられた複数のKextを蓄積しうる。幾つかのアプローチにおいて、電源が失われた場合、揮発性メモリ内のみに記憶されていたKextは失われる為に、電源を再投入後に、再び使用されることが出来るようになる前に、該デバイスに再保存される必要がある。
【0052】
多くのキー・パーIOスキームの目標は、異なるテナント(ユーザ、アプリケーション、コンピュータ等)が同じアドレス空間を共有することを可能にすることである。本明細書において提示されている発明的な特徴に先立ち、テナントのKextは、該テナントのデータを暗号化及び復号する為のMEKとして直接的に使用されていた。理論上、第1のテナントの暗号化されたデータは、夫々のKextが互いに固有であり且つ他のテナントによる使用から安全である限り、第2のテナントによる平文アクセスに対して安全である。第1のテナント、又は第1のテナントのデータについて責任を負う制御インフラストラクチャが、該デバイス上の第1のテナントのデータを消去したい場合、該第1のテナントは、該デバイスの外部の該第1のテナントのKextを破壊し、例えば、該Kextを消去することによって、該Kextを上書きすることによって、又は該Kextをその他の方法で破壊することによって、例えば、Kextの任意の残留コピーのみならず、該デバイスの内部の揮発性メモリ内に記憶された任意の1以上のコピーも包含するKextを破壊することによって、該Kextを破壊する。具体的には、該デバイスの最後の電源サイクル又はコールドブート以降、最初のテナントのKextが該デバイスに提供されていた何らかの可能性がある場合、該最初のテナントは、該デバイスの内部でMEKとして使用されているKextを消去するように該デバイスに指示しなければならない。該デバイスの外部及び内部のKextのインスタンスを全て破壊することによって、該デバイスに依然として保存され且つ該デバイスから復元可能なMEKで暗号化された該データが効果的に暗号消去されるであろう。しかしながら、Kextのインスタンスを破壊しているエンティティに気付かれずに、誰かが又は何かが、そのテナントのKextを記録し(例えば、外部キーストアへのハッキング、該デバイスへの通信時の盗聴等)、そのコピーを保管していた場合、その人物が該デバイスにネットワーク接続することが出来る場合に、それらの暗号文を解読することによって、そのテナントのデータに依然として潜在的にアクセスすることが出来る。従って、該データが安全であることを保証することは出来ず、決定的な暗号消去が達成されていることも保証することが出来ない。
【0053】
その上、上記で言及されているように、Kextは全て外部で管理され、及びストレージデバイスの電源が切られる場合には、該デバイスの内部の全てのMEK(すなわち、MEKとして使用されるKext)は、揮発性メモリ内に記憶されているだけなので、失われるべきである。しかしながら、該デバイス又は他のデータストレージデバイスが故障し、又はあまり重要でない(marginal)とみなされ、そして、サービスから削除される場合には、潜在的な問題が生じる。外部で管理されているKextでは、所与のKextの全てのコピーがオンラインでない可能性又はそれらが密かにコピーされている可能性がある為に、該デバイスに書き込まれたデータを暗号化することに関連付けられた全てのKextが本当に外部で破壊されたことを確認することは、不可能でないにしても困難である場合がある。従って、該デバイス上の所与のMEKで暗号化された全てのデータが回復不可能であることを保証することは出来ない。
【0054】
本発明は、内部キー(Kint)を実装し、それをテナントのKextと組み合わせてMEKを生成し、それをテナントのデータの暗号化/復号に使用することによって、キー・パーIOスキーム内に記憶されたデータを内部的に暗号消去する方法を提供する。Kintにアクセス出来るテナントはなく、理想的には誰もいない為、該Kintの破壊によりデータが暗号消去される。
【0055】
内部Kintと外部Kextの比は、実装によって異なる場合がある。幾つかのアプローチにおいて、全ての名前空間(例えば、ドライブ全体の名前空間)について共通の1つのKintが存在しうる。従って、膨大な数の外部Kextが存在していても、Kintは1つだけでありうる。その場合には、共通の1つのKintを単に削除することによって、デバイス全体が暗号消去されることが出来る。
【0056】
他のアプローチにおいて、固有のKintが、各名前空間若しくは名前空間のサブセット又はそれらの組み合わせの為に提供されうる。従って、幾つかのデバイスは、複数のKintを使用しうる。
【0057】
キー・パーIO対応デバイスにおける暗号消去を可能にする為の発明的方法
【0058】
以下の説明は、キー・パーIO対応デバイス、例えばECD、における内部動作によって、ローカルに暗号化されたデータが暗号消去されることを可能にする為のシステム、方法、コンピュータプログラム製品の好ましい幾つかのアプローチを開示する。一般的に、データは、外部のKextと、ストレージデバイス、例えば、ECD、SED、テープカートリッジ、ポータブルメモリ、内に記憶されたKintとから生成されたMEKを使用して暗号化若しくは復号又は暗号化及び復号の両方が行われる。Kint及びそれから生成された全てのMEKが破壊されることに応じて、そのMEKで暗号化されて記憶されていただけであった全てのデータが暗号消去され、従って、回復不可能になる。同様に、Kextの全てのコピーの破壊により、そのKextに対応するデータが暗号消去される。
【0059】
その上、Kintはテナント固有のKextと組み合わされてMEKを生成し、その後、そのテナントの為のデータの書き込み及び読み取りの為に使用される故に、テナントがアドレス空間を共有していても、他のテナントは、第1のテナントのKext無しには第1のテナントのデータを暗号化解除することが出来ない。従って、複数のKextは、同じ論理ブロックアドレス範囲、すなわち、記憶媒体の論理ブロック(例えば、NVMe名前空間内の論理ブロック)の許容範囲内の異なる場所において記憶された固有のデータに個別に関連付けられ得、それは、数百万セクタの長さでありうる。これは、個々の書き込みコマンドの範囲と混同されるものでなく、該個々の書き込みコマンドは、キー・パーIOを使用して、その書き込みコマンドのヘッダに到着したキータグによって特定された単一のKextで全て書き込まれるだろう。
【0060】
ECD及びSEDにおける暗号消去
【0061】
以下の説明の多くは、あらゆるタイプのSED又はECDを用いた例示的な実装に関連して提示されているが、これは、単なる例示であり、読者の為に役立つコンテクストを提供する為にのみ行われているものである。従って、以下に示されている概念及び教示は、記憶媒体、例えば、磁気記録テープ、メモリカード、光学媒体等、及び関連デバイスを用いた実装にも同様に適用可能である。
【0062】
ここで、図4を参照すると、1つのアプローチに従う方法400のフローチャート図が示されている。方法400は、とりわけ、本明細書において記載された他の図に描かれた環境のいずれかにおいて、様々なアプローチで本発明に従って実行されうる。勿論、本明細書を読むことに応じて当業者によって理解されるように、図4で具体的に記載された操作よりも多い又は少ない操作が方法400において含まれていてもよい。
【0063】
方法400の各工程は、動作環境の任意の適切なコンポーネントによって実行されうる。例えば、様々なアプローチにおいて、方法400は、デバイス、例えば、コンピュータ、ドライブ、又は1以上のプロセッサをその中に有する他のデバイス、によって部分的又は全体的に実行されてもよい。該プロセッサ、例えば、ハードウェア若しくはソフトウェア又はそれらの組み合わせで実装された1以上の処理回路、1以上のチップ若しくは1以上のモジュール又はそれらの組み合わせ、及び好ましくは少なくとも1つのハードウェアコンポーネントを有するもの、は、方法400の1以上のステップを実行する為に任意のデバイスで利用されうる。例示的なプロセッサは、中央処理装置(CPU)、特定用途向け集積回路(ASIC)、フィールドプログラム可能なゲートアレイ(FPGA)等、若しくはそれらの組み合わせ、又は当該技術分野において知られている任意の他の適切なコンピューティングデバイスを包含するが、これらに限定されるものでない。
【0064】
図4において示されているように、方法400は動作402から開始し得、ここで、記憶媒体からの又は記憶媒体へのデータの読み取り若しくは書き込み又は読み取り且つ書き込み等、記憶媒体上でデータ操作を実行するように構成されているデバイスが、1以上の固有の外部暗号化キー(Kext)を受信する。1以上のKextは、キー・パーIO操作における使用の為に、1以上の外部ソースからデバイスに提供される。外部ソースは、任意の外部ソースであってよい。例えば、該外部ソースは、仮想マシン若しくはコンテナ、若しくはホストサーバ上でネイティブに動作し、データを書き込み又は読み取るアプリケーション、又はそれらアプリケーション、仮想マシン、コンテナ若しくはホストサーバに対して透過的に全てのキープロビジョニングを処理する制御インフラストラクチャであってもよい。該外部ソースはまた、キーストア、キーサーバ、ユーザによるキー入力(例えば、キーボード経由、フラッシュドライブの挿入等)であることが出来る。
【0065】
1以上のKextは好ましくは、該デバイス内の揮発性メモリ内にのみ記憶され、従って、該デバイスの電源切断又は再起動に応じて破壊される。1以上のKextは、必要に応じて、一度に、Kext(例えば、デバイスからのKext)の要求に応答して、等、任意の適切な様式で受信されうる。例えば、Kextは、暗号化された形式で記憶媒体上に記憶されているデータ又は記憶されるべきデータを読み取る又は書き込む為の要求と関連して受信されうる。
【0066】
該記憶媒体は、本明細書に開示された任意のタイプ、例えば、磁気テープ、磁気ディスク、NVRAM等、であってもよい。従って、該デバイスは、任意のタイプのデータストレージデバイス、例えば、テープドライブ、SSD、HDD、暗号化対応USBドライブ、NVRAMモジュール等、であってもよい。その上、該デバイスは、取り外し可能なデータ記憶タイプの暗号化可能ドライブ(ECD:Encryption-Capable Drive)、例えば、暗号化可能なUSBドライブ、暗号化可能なテープドライブ、自己暗号化ドライブ(SED:Self-Encrypting Drive)等、であってもよい。
【0067】
動作404において、該デバイス内に記憶されているKintが、例えば該デバイスの不揮発性メモリから、アクセスされる。その不揮発性メモリは、特定用途IC(dedicated purpose IC)、例えばNANDフラッシュ、上にあることが出来るか、又は大きめのIC、例えば、FPGA、ASIC、CPU等、内に内蔵されていることが出来る。幾つかのアプローチにおいて、Kintは生の(暗号化されていない)形式で該デバイス内に記憶される。他のアプローチにおいて、Kintはラップされた形式(例えば、暗号化された形式、パスワードで保護された形式、難読化された形式等)で該デバイスに記憶される。Kintがラップされた形式で記憶される場合、該Kintをアンラップする(unwrapping)為の別のキー、例えばパスワード等、の情報を取得し若しくは受信し又は取得且つ受信し、Kintをアンラップする(unwrap)為に使用されることが出来る。例えば、該デバイスをロック解除する為に必要なロック/アンロックPIN又はパスワードが、該内部キーをラップする為に使用されるラッピングキー(wrapping key)として使用されうる。代替的には、キー暗号化キー(KEK)が該内部キーをラップする為のラッピングキーとして使用されることが出来る。好ましくは、該内部キーの不揮発性ストレージのみが典型的には、ラップされた形式であろう。
【0068】
好ましい観点において、該デバイスは、いかなる形式であれ、Kintを該デバイスの外部に転送することを禁止するように構成される。しかしながら、該デバイス内部のマイクロプロセッサ又はコントローラは、該デバイス内のKintにアクセスしうる。
【0069】
動作406において、固有のMEKが、1つのKint及び1以上のKextのうちの関連付けられた1つを使用して、Kextのうちの少なくとも一部の各々について生成される。言い換えれば、その生成の為に使用される所与のKextに関連付けられたMEKは、他のどのMEKとも異なる。KextとKintとからMEKを生成する為に、例えば、KextとKintとを一緒にXOR化することによって、別の既知のハッシュアルゴリズムを適用することによって、より大きなMEKを生成する為に2つのキーを一緒に付加することによって、等の任意の既知の技術が使用されることが出来る。
【0070】
所定のデータセットについてのMEKは、任意の所望の時間で生成されうる。1つのアプローチにおいて、MEKは、Kextの受信に応答して生成される。他のアプローチにおいて、MEKは、Kextに関連付けられたデータの為にデータ操作を実行する為の要求を受信することに応答して生成される。
【0071】
MEKがいつ生成されたかにかかわらず、それは、使用若しくは再利用又は使用且つ再利用の為に該デバイス内に揮発的に記憶されてもよく、データ操作の為に使用されて廃棄されてもよい。好ましくは、MEKは該デバイス内で揮発性メモリ内にのみ記憶され、従って、該デバイスが電源オフにされるか又はリセットされるときに失われる。このことにより、MEKが該デバイスの外部からアクセスされることが出来ないようにすることが出来、また、デバイスが無効になった場合にもアクセスでないことを保証することに役立つ。
【0072】
動作408において、複数のKextのうちの1つに関連付けられたデータの為にデータ操作を実行する為の要求を受信することに応答して、そのKextに関連付けられたMEKが、例えば、他の慣用的な暗号化/復号技術を使用して、該データを暗号化若しくは復号又は暗号化及び復号する為に使用される。例えば、読み取り要求を受信することに応答して、該要求されたデータの暗号文は、動作408において適切なMEKを使用して復号されて、要求されたデータの暗号化されていない(すなわち、平文)形式で提供し、次に、それは、リクエスタ(requestor)に対して出力されることが出来る。該要求されたデータの暗号文は、バッファ内にコピーされ、そして次に、復号されてもよく、読み取りの間に「オンザフライ」(on the fly)で復号されてもよい。該復号されたデータは、出力され、例えば、ホストインタフェース等を介して該データのリクエスタに対して出力される。
【0073】
幾つかのアプローチにおいて、MEKは、関連付けられた要求の完了に応じて削除される。他のアプローチにおいて、MEKは再利用の為に何らかの形式の揮発性メモリ又はレジスタ内に保持されうる。いずれの場合においても、ストレージデバイスは、明示的なコマンド又はリセットによって忘れるように指示されるか、電源オフによってそれらが忘れられるまで、Kext及び関連付けられたMEKを保持しうる。
【0074】
図4の様々な動作の観点が以下に提供される。そのような観点は、例示のみによって提示されており、限定することを意図するものでない。前述されているように、本議論の多くはECDに言及しているが、これは例としてのみ行われているものである。その上、そのような観点は、本発明を実施する為の在りうる観点及びアプローチの多さに従って、任意の方法で組み合わせられうる。
【0075】
MEKは、当該技術分野において知られているあらゆる技法、若しくは本明細書を読むことに応じて当業者に明らかになるであろうあらゆる技法、又はそれらの組み合わせの技法を使用して、2つの別々のキーから生成されうる。例えば、Kint及びKextの両方を使用して計算する必要があるMEKを生成する1つの方法は、Kint及びKextの両方を必要とする計算、例えば、Kint及びKextを2つの独立した生成乱数とし、2つを組み合わせたビット単位のXOR、又はこれら2つの値の連結等、を行って、MEKを計算する。
【0076】
Kintは考えられるあらゆるソースから生成されうる。Kintは好ましくはECDの内部で生成され、これが最も安全なアプローチである。なぜならば、Kintのコピーは、意図的にコピーされない限り、ECDの外部に存在する必要がないからである。例えば、Kintは、ECD内の乱数発生器の出力を使用して、既知の方法で生成される。
【0077】
他のアプローチにおいて、KintはECDの外部で生成されてもよく、及びECDに提供されてもよい。例えば、Kintは、製造構築の間に該デバイス内にプログラミングされてもよく、管理者によって該デバイス内にプログラミングされてもよく、該デバイスの構成又はフォーマット中に該デバイス内に挿入されてもよい。
【0078】
1つの観点において、Kintは、特定のデータセットに固有のものである可能性があり、従って、該デバイスは複数の固有のKintを記憶し得、ここで、固有のKintの各々は、固有のデータセットに関連付けられている。
【0079】
好ましくは、ECDは、Kintの外部からの可視化、又はECDからのKintの転送若しくはコピーを許可しないように構成される。
【0080】
例示的なアプローチにおいて、Kintは、MEKの生成において必要な第1の値、例えば、MEKと同じ長さ(ビット数)の第1の乱数、である。Kextは、MEKの生成に必要な第2の値であり、例えば、MEKと同じ長さの第2の乱数である。Kintは、Kextと共に予め定められた様式で処理されて、結果としてMEKを生成する。例えば、Kintは、KextとXOR処理(等)されてMEKを生成しうる。代替的には、MEKを計算する為に、XOR演算(等)の代わりに標準的なキー導出技術(例えば、ハッシュ又は暗号化を使用)が使用されることが出来る。MEKを計算する為にKint及びKextの両方を処理する必要があるキー導出のあらゆる形式が、潜在的に許容可能である。
【0081】
キー・パーIO SSCをサポートすることが出来るECDの複雑さに精通している人は、このコンセプトを実装する為に非常に多くの方法があることを理解するであろうし、それに応じて、本発明は、本明細書において提示された例示的な記載に限定されない。
【0082】
1つのアプローチにおいて、固有のKintが、Kextの各々と組み合わされる為に生成される。代替的には、KintはKextよりも少なく、全てのKextと組み合わせることが可能な単一の前述されたKintに至るまで存在しうる。従って、潜在的に数千のKextと、幾つかのKint又はわずか1つのKintを組み合わせることが出来る可能性があり、すなわち、多対多、多対少、又は多対1の関係が存在する。
【0083】
別のアプローチにおいて、MEKは複数のKintと1つのKextを使用して生成される。例えば、2つの異なるKintが1つのKextと組み合わされることが出来、従って、最終結果は3つの異なるキーの組み合わせである。3つのキーのうちのいずれかを消去することにより、組み合わされた1つのキーで暗号化された任意のデータが暗号消去される。従って、幾つかのアプローチにおいて、3以上のキーが組み合わされて1つのMEKを生成する。すなわち、例えば、複数のKintのうちの1つがNVMe名前空間全体について共通であり、他の1つのKintが全てのKextについて固有である場合、NVMe名前空間における全てのデータを一度に(全てのKextに共通である第1のKintを上書き又は消去することによって一度に)又はテナント毎に(より細かい粒度で、限界内で、結果として得られた組み合わされた暗号化キー毎に固有でありうる第2のKintの上書き又は消去によってテナント毎に)暗号消去するかのいずれかの機能を使用出来る。
【0084】
キー・パーIOスキームにおいて1以上のKintへの依存関係を生成する他の形式があり、それによって追加のユーティリティが提供されることが出来ることに留意されたい。例えば、テナントのデータは、テナントのKextのみを使用して最初に暗号化されうる。結果として得られた暗号文は、Kintを使用して2回目に暗号化されうる。この場合において、キーレスコピー(Keyless Copy)が実行されるべき場合、Kintにおける依存が、単回の復号を実行することによって解除(除去)されることが出来、それは、テナントのキー・パーIOのKext無しに実行されることが出来る。このことにより、任意のキー(例えば、MEK又はKint)をデバイス間で安全に転送する必要無しに、暗号文が代替デバイスにコピーされることを可能にする。寧ろ、2つのデバイス(例えば、取り出されるマージナルなデバイス(marginal device)と、その代わりとなる予備のデバイス)は、完全に独立したKintを有することが出来る。
【0085】
本開示を読むことに応じて当業者に明らかになるように、全てのデータの完全な第2の暗号化を必要とすること無しに、前段落で議論されているのと同様の機能を実現する他の方法がある。従って、キーレスコピーに関連付けられたMEKの安全な転送が存在する為の絶対的な要件はない。前の段落で説明されているような、マージナルなデバイスから読み出される暗号文に関連付けられた任意のキーの安全な転送を行う必要性を排除する解決策がある。
【0086】
1つの例示的なアプローチにおいて、Kintのラップされた形式のみがECDにおける不揮発性メモリ内に記憶される。KextはECDの外部に不揮発性の形式で保存されるだけなので、MEKが計算されることを可能にする為に、電源サイクル若しくはコールドブート又はそれらの組み合わせの後に少なくとも一度はECDに提供(又はアクセス)される必要がある。MEKは、ECDがKint及びKextの両方を有する場合にのみ計算されることが出来る。従って、Kextは何らかの形式でECDに提供される(又はECDによってアクセスされる)必要がある。様々な観点に従ってこれが行われうるには、多くの方法がある。1つの方法は、ECD内に注入されたKextをキー暗号化キー(KEK:Key Encrypting Key)でラップすることである。代替的には、ECDがキー管理相互運用プロトコル(KMIP:Key Management Interoperability Protocol)クライアントをサポートしている場合、当該技術分野において知られているタイプの外部キーマネージャから安全なチャネル(例えば、TLS又はIPsecによって保護されている)を介してKextを要求及び受信しうる。代替的に、個人識別番号(PIN:Personal Identification Numbers)が例えば平文形式であるのと同様の方法で、セキュリティ・プロトコル・イン(Security Protocol In)及びセキュリティ・プロトコル・アウト(Security Protocol Out)のコマンドの為に確立された安全なトンネルを通じてKextがECDに提供されうる。
【0087】
Kintは好ましくは、ラップされた形式でECD内に記憶され、及びラッピングキー(wrapping key)(それは、KEKであってもよく、又はECDがサポートする1以上の異なる役割(例えばAdmin1)を認証する為にECDに提供される1以上のパスワード又は1以上のPINに依存してもよい)が提供されるまでラップ不可能である(unwrappable)。従って、ECDの外部から提供されるラッパーキー(wrapper key)のいかなる部分も、Kintがアンラップされる(unwrapped)ことを可能にする為にECDに提供される。ECDがMEKを計算する為に必要な全ての情報(Kextを含む)が一旦提供され又はアクセスされると、ECDは、MEKを計算し、そして次に、既存の暗号文を復号して結果として得られた平文を生成する(例えば、ホスト読み取りに応答する為に)ことが出来、又は平文形式で新たに受信した顧客データを暗号化する(例えば、ホスト書き込みに対応する為に)ことが出来る。
【0088】
1つのアプローチにおいて、Kintが内部的に生成され、及びKEKで又はアドミニストレイティブ・セキュリティ・プロバイダ(Administrative Security Provider)(以下、「AdminSP」という)の役割、例えばAdmin1、に関連付けられたPINでのいずれかでラップされる。Kintは、KEKがECD内に注入されるか、又はエンティティ、例えばAdmin1、がパスワード若しくはPINで一旦認証されると、アクセスされることが出来る。
【0089】
KintをラップするKEK又はPINは、(該ラッピングキーの)リキー(rekey)動作の一部として変更することを許可されてもよい。Kintそれ自体がまたリキーされうるが、このことにより、Kintがリキーされる前に使用されていたKintから生成されているMEKによって暗号化されたデータの暗号消去(crypto-erasure)が結果として生じるであろう。
【0090】
1つの実装は、例えばランダム(Random)コマンドによって呼び出される同じタイプの内部乱数生成機能を使用して、一部又は全ての場合にECDをKintの生成のソースにすることを含む。
【0091】
ここで図5を参照すると、キー・パーIOスキームで暗号消去可能データを書き込む為の例示的な方法500のフローチャート図が、1つのアプローチに従って示されている。方法500は、本明細書において記載されている他の図、特に図4、において図示されている環境のいずれかにおいて、本発明に従って、なかんずく、様々なアプローチにおいて実行されうる。勿論、本明細書を読むことに応じて当業者によって理解されるように、図5において具体的に記載された動作よりも多い又は少ない動作が方法500に含まれうる。
【0092】
方法500の複数の工程の各々は、動作環境の任意の適切な構成要素によって実行されうる。例えば、様々なアプローチにおいて、方法500は、デバイス、例えば、コンピュータ、ドライブ、又は1以上のプロセッサをその中に有する幾つかの他のデバイス、によって部分的に又は全体的に実行されうる。該プロセッサ、例えば、ハードウェア若しくはソフトウェア又はそれらの組み合わせで実装された、1以上の処理回路、1以上のチップ若しくは1以上のモジュール又はそれらの組み合わせ、好ましくは少なくとも1つのハードウェアコンポーネントを有するプロセッサ、は、方法500の1以上のステップを実行する為に任意のデバイスにおいて利用されうる。例示的なプロセッサは、中央処理デバイス(CPU)、特定用途向け集積回路(ASIC)、フィールドプログラム可能なゲートアレイ(FPGA)等、若しくはそれらの組み合わせ、又は当該技術分野において知られている他の任意の適切なコンピューティングデバイスを包含するが、これらに限定されるものでない。
【0093】
動作502において、記憶媒体上でキー・パーIOデータ操作を実行するように構成されたデバイスにおいて、要求が受信される。該要求は、第1のデータに関連付けられた第1のKintを使用して、該第1のデータを暗号化された形式で該記憶媒体に書き込むことである。
【0094】
動作504において、該デバイス内に記憶されたKintがアクセスされる。
【0095】
動作506において、第1のMEKが、該内部キー及び該第1の外部キーを使用して生成される。
【0096】
動作508において、該第1のデータが、該第1のMEKを使用して暗号化される。
【0097】
動作510において、該暗号化された第1のデータが、該記憶媒体の第1の論理ブロックアドレス範囲内で該記憶媒体に書き込まれる。該第1の論理ブロックアドレス範囲は好ましくは、該記憶媒体の(例えば、NVMe名前空間内の)論理ブロックの許容範囲であり、それは、数百万セクタの長さでありうる。これは単一のKextに全てが関連付けられた特定の書き込みコマンドの限定された範囲と混同されないようにしなければならない。
【0098】
動作512において、第2の要求が該デバイスにおいて受信される。該第2の要求は、第2のデータに関連付けられた第2の外部キーを使用して、該第2のデータを暗号化された形式で該記憶媒体に書き込む為の要求であり、ここで、該第2の外部キーは該第1の外部キーと異なる。
【0099】
動作514において、該デバイス内に記憶された該内部キーがアクセスされる。
【0100】
動作516において、第2のMEKが、該内部キー及び該第2の外部キーを使用して生成される。
【0101】
動作518において、該第2のデータは、該第2のMEKを使用して暗号化される。
【0102】
動作520において、該暗号化された第2のデータは、該記憶媒体の該第1の論理ブロックアドレス範囲内で該記憶媒体に書き込まれる。該第2の書き込みは、該第1の書き込みコマンドによって書き込まれた論理ブロックの範囲と重複してもよく又は重複しなくてもよい、(例えば、NVMe名前空間における)論理ブロックの許容された範囲内の任意の論理ブロックアドレス範囲に行われうる。
【0103】
追加の動作がこの方法500において実行されてもよく、本明細書に記載されたあらゆる特徴が方法500において実装されることが出来る。
【0104】
ここで図6を参照すると、キー・パーIOスキームでデータに対して暗号消去を実行する為の例示的な方法600のフローチャート図が、1つのアプローチに従って示されている。方法600は、本明細書において記載されている他の図、特に図4図5、において図示されている環境のいずれかにおいて、本発明に従って、なかんずく、様々なアプローチにおいて実行されうる。勿論、本明細書を読むことに応じて当業者によって理解されるように、図6において具体的に記載された動作よりも多い又は少ない動作が方法600に含まれうる。
【0105】
方法600の複数の工程の各々は、動作環境の任意の適切な構成要素によって実行されうる。例えば、様々なアプローチにおいて、方法600は、デバイス、例えば、コンピュータ、ドライブ、又は1以上のプロセッサをその中に有する幾つかの他のデバイス、によって部分的に又は全体的に実行されうる。該プロセッサ、例えば、ハードウェア若しくはソフトウェア又はそれらの組み合わせで実装された、1以上の処理回路、1以上のチップ若しくは1以上のモジュール又はそれらの組み合わせ、好ましくは少なくとも1つのハードウェアコンポーネントを有するプロセッサ、は、方法600の1以上の工程を実行する為に任意のデバイスにおいて利用されうる。例示的なプロセッサは、中央処理デバイス(CPU)、特定用途向け集積回路(ASIC)、フィールドプログラム可能なゲートアレイ(FPGA)等、若しくはそれらの組み合わせ、又は当該技術分野において知られている他の任意の適切なコンピューティングデバイスを包含するが、これらに限定されるものでない。
【0106】
動作602において、記憶媒体の少なくとも1つの論理ブロックアドレス範囲内で全てのデータの暗号消去(crypto-erasure)を生じさせる為の要求が、キー・パーIO操作を使用して該記憶媒体上でデータ操作を実行するように構成されたデバイスにおいて受信される。少なくとも1つの論理ブロックアドレス範囲内の該データの個々の部分は各々、固有のKextに関連付けられ、例えば、固有のテナントに対応する。該データの個々の部分は各々、Kint及び、該データの部分に関連付けられた固有のKextを使用して生成された固有のMEKを使用して暗号化される。
【0107】
動作604において、Kint及びそのKintから生成された該デバイス内のあらゆる1以上のMEKの両方を破壊することによって(例えば、Kintの消去、Kintの上書き、若しくはKintを記憶するメモリの物理的破壊、又はそれらの組み合わせによって)、該暗号消去が達成される。
【0108】
暗号法(Cryptography)
【0109】
Kint及びKextが一緒にXOR化される、又はさもなければ組み合わされて、MEKを生成することが出来る。
【0110】
結果として得られたMEKが正しいことを検証する為の1つの方法として(例えば、Kextが1ビットずれている場合に起こる1ビットずれに対して)、キー署名の概念が使用されうる。キー署名の概念は、MEKを使用して既知の値を暗号化し、そして次に、結果として得られた暗号文が、そのMEKの署名として記憶されることを含む。
【0111】
前述の幾つかのアプローチにおいて、Kext、Kint、及びKextをラップする為に使用される任意のキー(例えば、キー暗号化キー(KEK:Key Encrypting Key))及びKintの両方が、暗号的に機密性の高いパラメータ(CSPs:Cryptographically Sensitive Parameters)と呼ばれるものとなっていることに留意されたい。ECDとホストの間を通過するデータが記録される可能性がある場合に、両者の間のチャネルは何らかの形式の暗号を使用して保護されるべきである。キー・パーIOによる詳細な1つの選択肢は、ホスト及びECDによって知られているKEKを使用し、ホストがKEKでKextをラップし、該ラップされたKextをECDに送信し、そしてECDがそのラップされたKextを受信し、そして同じKEKでアンラップする(unwrapping)という方法である。他の選択肢は、伝送中のデータ(EDiF:Data in Flight)、例えば、インターネットプロトコルセキュリティ(IPsec:Internet Protocol Security)、ファイバチャネルセキュリティプロトコル(FC-SP:Fibre Channel-Security Protocol)又はトランスポートレイヤセキュリティ(TLS:Transport Layer Security)の使用である。一部のデータセンターにおいては、それらの内部環境におけるECDとの間でデータがやり取りされることに懸念はない。懸念されるのは、ECDが保護された環境から離れた後にECDに何が起こるかだけであり、それにより暗号消去の絶対的な保証が望まれる。
【0112】
XTSモードの暗号化(例えば、XTS-AES-256)の場合、2つの暗号化関連キー、すなわち、暗号化キーと、別のTweakキー、があることに留意されたい。幾つかのアプローチでは、これらのキーの両方が、単一のルートキーから(キー導出を介して)生成されることが出来る。従って、256ビットのMEKが提供されることができ、そして、該256ビットのMEKが、XTS-AES-256の為に必要な2つの256ビットキーを(キー導出を介して)生成する為に使用されうる。
【0113】
本発明の様々な観点を実装したECDにおける暗号消去の選択肢は、ECD内部のあらゆるMEKの必要とされる破壊(例えば、上書き又は消去による)だけでなく、以下の1以上を包含する:
1.ユーザが運用中のECD上の全てのデータを暗号消去したい場合、該ユーザは、本明細書において提案されているような複数の異なる方法のうちの1つを呼び出すだけである。例えば、Kintを含むラップされたキー構造は上書きされ、そして、Kintは回復不可能となる。このシナリオにおいて、全てのKextを消去する必要はなく、MEKは回復不可能であり、且つ再生することは出来ない。なぜならば、Kintがなくなった為である。
2.ユーザがECDを暗号消去したい(コマンドに応答しない非動作中のECD、又はECDが見つからない為)が、何らかの理由で上記「1.」を実行出来ない場合に、該ユーザはここで別の選択肢として、ECDとは別に各テナントにそれらのKextを消去することを指示する。このシナリオにおいて、Kintのラップされたバージョンを全て消去する必要はない。Kextがなくなった為に、MEKは回復不可能である。このシナリオにおいて、仮に将来の或る時点で、誰かが失敗したECDのラップされたキー構造を破り、Kintにアクセス出来たとしても、MEKは利用出来ないままであるので、その作業は全て無駄に終わってしまう。その為に、破壊されてしまったKextが必要である。従って、顧客データにアクセスする為の唯一の有効な方法は、ユーザデータそれ自体の暗号文を保護する暗号化アルゴリズム(例えば、XTS-AES-256)を破ることであるというシナリオが依然として残されている。
3.ユーザが暗号消去のセキュリティを特に懸念している場合に、該ユーザはKint及びKextの両方を削除することを選択しうる。このシナリオは、Kextが記憶されていた可能性があるという懸念がある場合に最も可能性が高くなる(例えば、ECDへの転送中に、何らかのラッピングによって又は安全なチャネルで保護されているとしても、そのセキュリティが破られた(又はその後破られる可能性がある)場合)。しかし、そうでない場合、暗号化が関与している為に、Kint及びKextの両方を削除する必要がある理由はない。一般的なアプローチは、(例えば、ECDが動作不可能になるまで)かなり回復力がり、Kint及びKextの両方の消去を常に試みるが、これらの2つの消去のうち1つが成功したという検証がある限り満足される。
4.テナントが該テナントのデータを暗号消去したい場合、該テナントは該テナントのKextを破棄しうる。ECD上のテナントのKextのあらゆるコピー(及びあらゆる関連付けられたMEK)がまた、デバイスの電源を切るか、又はClear Single MEK(単一のMEKを消去)又はClear All MEKs(全てのMEKを消去)コマンドを呼び出すことによって、削除される必要がある。
【0114】
磁気記録テープ及び他のポータブルメモリの為の暗号消去
【0115】
前述されているように、幾つかのアプローチにおいて、暗号化されたデータが、不揮発性記憶媒体、例えば、磁気記憶媒体(例えば、テープ、ディスク)又はソリッドステートメモリ(例えば、NANDフラッシュ、NVRAM等)、上に記憶される。ここでも、上記に提示された動作、概念等のいずれもが、本アプローチにおいて使用されうる。例えば、図4図5の方法400及び方法500の動作は、以下に記されているマイナーな修正を伴って実行される。
【0116】
幾つかのアプローチにおいて、Kintは、媒体と共に動作する特定のデバイス、例えば、ドライブ、コンピュータ等、内に記憶されうる。
【0117】
他のアプローチにおいて、特にリムーバブル媒体を実装するアプローチにおいて、Kintは記憶媒体上又は記憶媒体と共に又はそれらの組み合わせで記憶される。従って、図4図5の方法400及び方法500と同様の方法は代わりに、データが記憶されている媒体から、媒体に物理的に接続されたメモリ、例えばカートリッジメモリ、から、Kintを取得する。Kintが破壊される場合に、理想的には、リムーバブル媒体上のKintを記憶する構造が破壊される。
【0118】
ここで図7を参照すると、1つのアプローチに従った方法700のフローチャート図が示されている。方法700は特に、本明細書において記載されている他の図に描かれた環境のいずれかにおいて、様々なアプローチで本発明に従って実行することが出来る。勿論、本明細書を読むことに応じて当業者によって理解されるように、図7において具体的に記載された動作よりも多い又は少ない動作が方法700に含まれうる。
【0119】
方法700の複数の工程の各々は、動作環境の任意の適切な構成要素によって実行されうる。例えば、様々なアプローチにおいて、方法700は、デバイス、例えば、コンピュータ、ドライブ、又は1以上のプロセッサをその中に有する幾つかの他のデバイス、によって部分的に又は全体的に実行されうる。該プロセッサ、例えば、ハードウェア若しくはソフトウェア又はそれらの組み合わせで実装された、1以上の処理回路、1以上のチップ若しくは1以上のモジュール又はそれらの組み合わせ、好ましくは少なくとも1つのハードウェアコンポーネントを有するプロセッサ、は、方法700の1以上のステップを実行する為に任意のデバイスにおいて利用されうる。例示的なプロセッサは、中央処理デバイス(CPU)、特定用途向け集積回路(ASIC)、フィールドプログラム可能なゲートアレイ(FPGA)等、若しくはそれらの組み合わせ、又は当該技術分野において知られている他の任意の適切なコンピューティングデバイスを包含するが、これらに限定されるものでない。
【0120】
図7において示されているように、方法700は動作702から開始し得、ここで、デバイスは、記憶媒体上のキー・パーIO操作によるデータ操作、例えば、記憶媒体からの若しくは記憶媒体への又はそれらの組み合わせのデータの読み取り若しくは書き込み又はそれらの組み合わせ、を実行するように構成されているデバイスが、暗号化された形式で該記憶媒体上のデータ操作を実行する為の要求を受信する。受信した該要求は単に、データを書き込む為の要求、データを読み込む為の要求、又はその両方でありうる。その上、該要求は、付加的な情報、例えばKext、を含みうる。上記されているように、方法700において使用されるKextは好ましくは、デバイスの揮発性メモリ内にのみ記憶される。
【0121】
動作704において、記憶媒体上若しくは記憶媒体と共に又はそれらの組み合わせで記憶されたKintが取り出される。この手順は、データが記憶されている媒体から、媒体に物理的に接続されたメモリ、例えばカートリッジメモリ、から、Kintを検索することを含みうる。
【0122】
該記憶媒体は、本明細書に開示されている任意のタイプ、例えば、磁気テープ、磁気ディスク、NVRAM等、でありうる。従って、該デバイスは、任意のタイプのデータストレージデバイス、例えば、テープドライブ、SSD、HDD等、でありうる。
【0123】
前述されているように、幾つかのアプローチにおいて、Kintは生の(暗号化されていない)形式で記憶媒体上若しくは記憶媒体と共に又はそれらの組み合わせで記憶される。他のアプローチにおいて、Kintはラップされた形式(難読化された形式、例えば、暗号化された形式、パスワードで保護された形式等)で記憶媒体上若しくは記憶媒体と共に又はそれらの組み合わせで記憶される。Kintをアンラップする(unwrapping)為の情報、例えば、別のキー、KEK、PIN、又はパスワード、が受け取られ、そして、Kintをアンラップする(unwrap)為に使用されうる。
【0124】
好ましい観点において、該デバイスは、いかなる形式であれ、Kintを該デバイスの外部に転送することを禁止するように構成される。しかしながら、デバイス内部のマイクロプロセッサ又はコントローラは、記憶媒体又は該記憶媒体に接続された他のソースからKintにアクセスしうる。
【0125】
動作706において、該データに関連付けられたKextが外部ソースから受信される。該外部ソースは、任意の外部ソースでありうる。例えば、該外部ソースは、データのリクエスタ、キーストア、キーサーバ、ユーザによるキー入力(例えば、キーボードを介して等)でありうる。
【0126】
動作708において、MEKがKint及びKextを使用して生成される。任意の既知の安全な技術がKintとKextからMEKを生成する為に使用されうる。
【0127】
動作710において、該要求されたデータ操作が、例えば、MEK及びその他の慣用的な技術を使用して実行される。
【0128】
動作712において、媒体上のデータを暗号消去する為の要求を受信したことに応答して、Kintは、そのKintを使用して生成された任意のMEKと共に破壊される。
【0129】
第2のデータが記憶媒体上にデバイスによって記憶されるべきである場合に、該第2のデータが受信される。別の外部キー(Kext2)が第2の外部ソースから受信されうる。その場合には、Kint及びKext2を使用して第2のMEKが生成される。該データ操作は、第2のMEKを使用して実行される。該第2の外部ソースは、前述された外部ソースと同じであってもよいし、又はそれとは異なっていてもよい。しかしながら、Kext2は、Kextとは異なる。
【0130】
図7の様々な動作の観点が以下に提供される。そのような観点は、例示のみによって提示されており、限定することを意図するものでない。その上、そのような観点は、本発明の在りうるアプローチの多さに従って、任意の方法で組み合わされうる。例えば、方法700は、図4図6に関連して上記に提示されたものと同様の特徴、例えばキー生成等、を有していてもよく又はそれを組み込んでいてもよい。
【0131】
Kintは、記憶媒体と共に、例えば記憶媒体それ自体上に若しくは該記憶媒体と共に又はそれらの組み合わせで、例えば別のメモリ内に、保存される。Kintは好ましくは、ラップされた形式で記憶される。例えば、Kintは、磁気記録テープの一部上、テープカートリッジメモリ内、又はその両方に記憶されうる。そうすれば、Kintは磁気記録テープで持ち運び可能である。同様に、NVRAMデバイス、例えば、メモリスティック、メモリカード等、の場合、Kintは、該デバイスのNVRAM内、該デバイスの別のメモリ内、等に記憶されてもよい。
【0132】
Kintは好ましくは、記憶媒体上で動作するデバイス(例えば、ドライブ、コンピュータ等)の内部で生成される。好ましくは、該デバイスは、記憶媒体若しくはそれに接続されたメモリ又はそれらの組み合わせを除き、Kintの外部からの可視化を、又はデバイス外部へのKintのコピーを許可しないように構成される。好ましくは、該デバイスは、Kintをそれに接続された記憶媒体若しくはメモリ又はそれらの組み合わせに転送し、そして、該デバイス内の他の場所からKintを削除する。従って、Kintは、幾つかのアプローチ、例えば、リムーバブルメディアデバイスに関連付けられたアプローチ、において、該記憶媒体にのみ常駐する。
【0133】
記憶媒体がデバイスそれ自体に一体化されているデバイス(例えば、自己暗号化ドライブ(SED:Self-Encrypting Drive)タイプのHDD又はSSD、暗号化対応ドライブ(ECD:Encryption-Capable Drive))の場合、Kintはデバイス内に保存されうる。例えば、(おそらく、ハーメチックの)シールされたECDの筐体において、Kintはその典型的な長方形の境界の内側のどこにでも保存される可能性がある。SSDの場合、主な不揮発性メモリ(そこに、ユーザデータが保存される)はしばしば、NANDフラッシュである。Kint(場合によってはラップされた形式で)は同様に、そこに保存されうる。他のアプローチにおいて、Kintは代わりに、ハウジング内の(ユーザデータとは)別の不揮発メモリにおいて、例えば、異なる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(該語は、前述された語ほど技術的に特化されたものでない)等において、保持されてもよい。Kintはまた、消去されることが出来るROMの形式内に記憶されうることに留意されたい。従って、様々なアプローチにおいて、Kintは、ユーザデータを記憶している記憶媒体とは異なるタイプのメモリ内に記憶されうる。
【0134】
他のアプローチにおいて、Kintは、該デバイスの外部で生成され、そして、該デバイスに提供され、及び該デバイス内に保存される。
【0135】
Kextは、該デバイスの内部で生成されることが出来、又は該デバイスの外部で生成されることが出来、又は該デバイスの内部及び外部からの共同の貢献(joint contributions)によって生成されることが出来る。
【0136】
様々なアプローチにおいて、Kextは、ドライブ、コンピュータ等がMEKを計算することを可能にする為に、テープドライブ、コンピュータ等内の揮発性メモリ(例えば、SRAM)内に提供され若しくは記憶され又は提供且つ記憶される。1つのアプローチにおいて、Kextは、それが必要とされる度に、テープドライブ、コンピュータ等に入力されうる。別のアプローチにおいて、一旦デバイスに提供されたKextは、テープドライブ、コンピュータ等の揮発性メモリに記憶されたデバイス内部に保持されてもよく、その場合には、Kextは好ましくはラップされる。
【0137】
本明細書における様々なアプローチは、広範囲のメモリ媒体、例えばNVRAM技術(例えば、NANDフラッシュメモリ、NORフラッシュメモリ、相変化メモリ(PCM)、磁気抵抗RAM(MRAM)及び抵抗RAM(RRAM)を包含する)を包含する上記メモリ媒体、で実装されることが出来ることが理解されるべきである。コンテクストを提供する為に、及び単に読者を支援する為に、様々なアプローチが、不揮発性メモリのタイプを参照して説明されうる。これは、例としてのみ行われたものであり、特許請求の範囲において定義されている発明を限定するものとみなされるべきでない。
【0138】
一つの例示的なアプローチにおいて、不揮発性の形式におけるKintは、ラップされた形式で該記憶媒体にのみ記憶されている。そして、Kextは、揮発性メモリ内に一時的に記憶されうるが、該記憶媒体の外側に不揮発性の形式で記憶されるだけである。
【0139】
該記憶媒体上で動作するドライブ及びコンピュータ等は、該記憶媒体からKintを取り出し、そして、MEKが算出されることが出来るようにKextを受信又は取得する。
【0140】
ドライブ及びコンピュータ等にローカルに保存されないことが好ましいKextは、何らかの形式でドライブ及びコンピュータ等に提供されうる。前述の項目において列挙されたアプローチのいずれかを包含する様々な観点に従って、これが行われてもよい多くの方法がある。例えば、1つの方法は、KextをKEKでラップするようにさせ、その後にホストがECDに送信するようにする。別の方法は、ドライブ及びコンピュータ等がKMIPクライアントをサポートするようにさせ、そして、当該技術分野において知られているタイプの外部KMIPサーバ(キーマネージャ)から安全なチャネルを介してKextを受信するようにする。
【0141】
好ましくは、Kextは、ECDの内部で揮発性の形式でのみ保存することが出来る。Kintをアンラップする(unwrap)為のキー(例えば、KEK)は、ホスト、外部のセキュリティオーケストレータ若しくはユーザから受け取られてもよく、又はキーマネージャ等から受け取られてもよい。
【0142】
Kintは好ましくは、ラップされた形式で該記憶媒体に記憶され、並びにドライブ及びコンピュータ等にラッパーキー(wrapper key)(それは、該ドライブ及びコンピュータ等がサポートする異なる役割に対して異なるユーザを認証する為に該ドライブ及びコンピュータ等に提供されるKEK又はPINであってもよく又はこれに依存してもよい)が提供されることに応じてアンラップ可能である(unwrappable)。従って、該ドライブ及びコンピュータ等の外部から提供されるラッパーキー(wrapper key)のいかなる部分も、Kintがアンラップされる(unwrapped)ことを可能にする為に、該ドライブ及びコンピュータ等に提供される。該ドライブ及びコンピュータ等がMEKを計算するのに必要な全ての情報(Kextを含む)を一旦蓄積すると、該ドライブ及びコンピュータ等はMEKを計算し、そして次に、既存の暗号文を復号して、結果として得られた平文を生成し(例えば、ホストリード(Host Read)に応答する為)、平文形式における新しい顧客データを暗号文に暗号化する(例えば、ホストライト(Host Write)を尊重することが可能になる)。
【0143】
キー・パーIOにおいて、Kextの生成はECDの外部でホストによって又は該ホストが対話するキーマネージャによって行われる。
【0144】
テープドライブを実装されたアプローチにおいて、Kintはテープメディアからのものであり、及びKextは何らかのインタフェースからのものであること、並びにMEKの計算は暗号化可能なテープドライブに内蔵され、そして、そのテープドライブを離れることはないことが好ましい。
【0145】
様々なアプローチに従うシステムは、記憶媒体上でデータ操作を行うように構成されたデバイスを備えており、ここで、該デバイスは、プロセッサと、プロセッサと統合されたロジック、該プロセッサによって実行可能なロジック、又は該プロセッサと統合され且つ該プロセッサによって実行可能なロジックとを備えており、該ロジックは、該デバイスに前述の動作、例えば図4図7の動作、の一部又は全てを実行させるように構成される。
【0146】
様々なアプローチに従う、暗号消去を可能にする為の、若しくは実行する為の、又は可能にし且つ実行する為のコンピュータプログラム製品は、それに具現化されたプログラム命令を有するコンピュータ可読記憶媒体を含み、プログラム命令は、前述の動作、例えば図4図7の動作、の一部又は全てを実行するように構成されたデバイスによって実行可能である。
【0147】
例示的な実装
【0148】
1つのアプローチに従う、キー・パーIO暗号化対応ストレージデバイス(Key per IO encryption-capable storage device)、例えば暗号化対応ドライブ(ECD:Encryption-Capable Drive)、を保護する為の例示的なプロセスは、下記の動作を含む:
1.Kintを生成し、そして、そのKintを該ストレージデバイスの内部で安全な様式で記憶する。典型的には、Kintは不揮発性メモリ内に平文形式で記憶されることは決してない。その代わりに、Kintは、ラップされた形式で記憶されるであろう
2.Kextは、ECDの外部で生成され且つ記憶される:
A.Kextが、該ストレージデバイスの外部で生成された場合、そのKextを必要に応じて該ストレージデバイスに提供する
B.Kextをラップする為に使用されるキー(例えば、KEK又はPIN)が該デバイス内にない場合、そのキーがまた該デバイスに提供されるか、又は該デバイスによってフェッチされて、Kextをアンラップする(unwrap)為に使用されなければならない
C.典型的には、多くのKextが使用され、例えば、ECDにおいてデータを保存しているテナント毎に1つずつ使用される
3.該ストレージデバイスは、Kint及びKextを使用してMEKを計算する
4.MEKは、データを暗号化して暗号文を生成する為に、及び暗号文を復号して平文を生成する為に、直接的に又は間接的に使用される
【0149】
1つのアプローチに従う、キー・パーIO暗号化対応ストレージデバイス、例えば暗号化対応ドライブ(ECD)、上のデータへのアクセスを回復する為の、電源喪失後又はコールドブート後の例示的なプロセスは、下記の動作を含む:
1.Kextを該ストレージデバイスに提供してもらう
2.該ストレージデバイス内部のKintにアクセスし、それは、Kintを暗号的にアンラップすることを含み得、それにより、1以上のラッピングキー又はアクセスキー(例えば、1以上のKEK又は1以上のPIN)を必要としうる
3.該ストレージデバイスは、Kint及びKextを使用してMEKを計算する
4.MEKは、直接又は間接的に、データを暗号化して暗号文を生成し、暗号文を復号して平文を生成する為に使用される
【0150】
デバイスをリタイヤする為の又盗難にあったデバイスをセキュアにする為のプロセス
【0151】
ストレージデバイスがリタイヤされるべきである場合、例えば、そのバックグラウンドエラー率が大きくなりすぎた為に(例えば、書き込みサイクルが多すぎる為に生じる可能性がある)、又はおそらく「失敗」して何らかの動作を成功裡に完了しなかった為に、1つのアプローチに従って実行されうる例示的なプロセスは、下記の動作を含む:
1.ストレージデバイスに、そのKintと、そのKintを使用することによって生成されたデバイス内部の全てのMEKとを破壊するように指示するコマンドを送信する
2.KintとMEKの破壊は成功裡に完了したか?もし:
・はいの場合、そのMEK、又はそれらのMEKの下で暗号化されたデータは、成功裡に暗号消去される
・この場合には、Kextを破壊する必要はないが、破壊することもまた可能である
・いいえの場合、暗号消去が行われたことを信じることは出来ない
・ストレージデバイスの外部にあるKextを破壊し、従って、該ストレージデバイス上のKextに対応するデータを外部の手段によって暗号消去する
・該ストレージデバイスがキーの揮発性イメージを保持していないことを保証する為に、該ストレージデバイスを電源オフ又はコールドブートする
【0152】
キーの削除はまた、逆の順序で行われてもよく、ここで、Kextが最初に破壊され、好ましくは、Kintを削除する試みが後に行われることに留意されたい。1つのアプローチに従う例示的なプロセスは、下記の動作を含む:
1.ストレージデバイスの外部にあるKextを破壊し、従って、該ストレージデバイス上のKextに対応するデータを外部の手段によって暗号消去し、又は全てのKextを破壊して該ストレージデバイス上の全てのデータを暗号消去する
2.ストレージデバイスに、暗号消去されるべきデータに対応する1以上のKextに関連付けられた1以上のKintを暗号消去するよう指示するコマンドを送信する
3.Kintの暗号消去は成功裡に完了したか?もし:
・はいの場合、そのMEK、又はそれらのMEKの下で暗号化されたデータは、Kint及びKextの破壊によって成功裡に暗号消去される
・パワーサイクルリセットコマンド(Power Cycle Reset Command)を使用することによって該ストレージデバイスをコールドブートするか、又は実際のパワーサイクル(すなわち、電源を一時的に取り除く、そして次に、それを保存する)を実行して、該ストレージデバイスがKext又はMEKの揮発性イメージを保持していないことを保証する
・いいえの場合、該ストレージデバイスの外部のKextは破壊されるが、ストレージデバイスを暗号消去することが外部手段によって行われる
【0153】
また、複数のKext及び複数のMEKの全てを破壊又は消去することは、該デバイスの電源を切るか若しくはコールドブート(例えば、パワーサイクルリセット(Power Cycle Reset)によって起動する)を実行するか又はそれらの組み合わせによって達成されることが出来ることに留意されたい。従って、これらのMEKは最後に破壊されることが出来る。しかし、その破壊は、それら複数のMEKで暗号化されたデータが本当に暗号消去される前に実行されなければならない。すなわち、1以上のMEKで暗号化されたデータを暗号消去することを達成する為には、MEK及び該関連付けられたKintが破壊されなければならない、又はMEK及び該関連付けられたKextが破壊されなければならない。
【0154】
また、ストレージデバイスが盗まれた場合、又はストレージシステムから取り外される前に暗号消去されておらず、そして次に、別の場所への移動中等に紛失した場合、該ストレージデバイスに物理的にアクセス出来ない為、Kintの破壊によるデータの暗号消去はもはや不可能であり、代わりにKextを破壊しなければならないが、(例えば密かに)記録されていない限り、該ストレージデバイスに物理的にアクセスすることがない場合であっても可能であることに留意されたい。
【0155】
図8は、本発明の観点を有しないマージナルデバイスにおいて実行されうる手順を、本発明の1以上の観点を有するマージナルデバイスにおいて実行されうる手順と対比して図示する。図8におけるチャート図は一目超然であり、例示としてのみ提示されている。図8におけるチャート図の最後の行に従って、すなわちKintの破壊が確認されたことによる暗号消去の実行は、本発明の観点が実装される場合に、キー・パーIO環境においてのみ可能となることに留意されたい。また、Kint及びKintの使用によって生成されたデバイス内に現在ある任意のMEKの破壊が確認された場合、該データの暗号消去は、表の上2行に示された「全ての暗号文を消去する」(Erase all Ciphertext)が確認されることによって可能であり、達成する為に何時間もかかる可能性がある場合よりもはるかに速く(例えば、1秒未満)達成されることが出来ることに留意されたい(おそらくページ消去によって、全てのページが完全に消去されたことを読み取りによって完全に確認するだけでも、数時間かかる場合がある)。従って、本発明の観点は、ECDのサニタイズを数桁速くすることが出来る。
【0156】
本発明の観点の使用に依存せず、その使用によっても阻害されない更なる事例は、テナントのデータの暗号化に関連して使用された全てのKext、及び該Kextを使用して生成された全てのMEKを破壊することによる、個々のテナントのデータの選択的暗号消去である。これらのKextで使用されるKintが、複数のテナント、例えば、保持されるべき(すなわち、暗号消去されない)暗号化されたデータを含むテナントを包含する上記の複数のテナント、にまたがる場合には、そのKintは該デバイスの内部に保持されることに留意されたい。
【0157】
本発明は、統合の在りうる任意の技術的詳細レベルでの、システム、方法若しくはコンピュータプログラム製品又はそれらの組み合わせでありうる。該コンピュータプログラム製品は、プロセッサに本発明の観点を実行させる為のコンピュータ可読プログラム命令を有する1以上のコンピュータ可読記憶媒体を包含しうる。
【0158】
該コンピュータ可読記憶媒体は、命令実行デバイスによって使用する為の命令を保持且つ記憶することが出来る有形のデバイスであることが出来る。該コンピュータ可読記憶媒体は、例えば、電子ストレージデバイス、磁気ストレージデバイス、光ストレージデバイス、電磁ストレージデバイス、半導体ストレージデバイス、又はこれらの任意の適切な組み合わせでありうるが、これらに限定されない。該コンピュータ可読記憶媒体のより具体的な例の非網羅的なリストは、下記を包含する:ポータブルのコンピュータディスケット(登録商標)、ハードディスク、ランダムアクセスメモリ(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)、メモリスティック、フロッピーディスク、機械的に符号化されたデバイス、例えば、パンチカード若しくは命令が記録されている溝内の隆起構造又はこれらの任意の適切な組み合わせ。本明細書において使用される場合、該コンピュータ可読記憶媒体は、一時的な信号それ自体、例えば、電波又は他の自由に伝播する電磁波、導波管若しくは他の伝送媒体を伝播する電磁波(例えば、光ファイバケーブルを通過する光パルス)、又は電線を介して送信される電気信号、であると解釈されるべきでない。
【0159】
本明細書において記載されたコンピュータ可読プログラム命令は、コンピュータ可読記憶媒体から夫々のコンピューティングデバイス/処理デバイスに、又はネットワーク、例えば、インターネット、ローカルエリアネットワーク、ワイドエリアネットワーク若しくはワイヤレスネットワーク又はそれらの組み合わせ、を介して外部コンピュータ又は外部記憶デバイスにダウンロードされることが出来る。該ネットワークは、銅線伝送ケーブル、光伝送ファイバ、無線伝送、ルータ、ファイアウォール、スイッチ、ゲートウェイコンピュータ若しくはエッジサーバ又はこれらの組み合わせで構成されうる。各コンピューティングデバイス/処理デバイスにおけるネットワークアダプタカード又はネットワークインタフェースは、ネットワークからコンピュータ可読プログラム命令を受信し、そして、該コンピュータ可読プログラム命令を、個々のコンピューティングデバイス/処理デバイス内にコンピュータ可読記憶媒体中に記憶する為に伝送する。
【0160】
本発明の動作を実行する為のコンピュータ可読プログラム命令は、アセンブラ命令、命令セットアーキテクチャ(ISA:instruction-set-architecture)命令、マシン命令、マシン依存命令、マイクロコード、ファームウェア命令、状態設定データ、集積回路の為の構成データ、又は、1以上のプログラミング言語、例えばオブジェクト指向プログラミング言語、例えば、Smalltalk、C++等、慣用的な手続き型プログラミング言語(例えば、「C」プログラミング言語又は同様のプログラミング言語)、の任意の組み合わせで書かれているソースコード又はオブジェクトコードのいずれか、でありうる。該コンピュータ可読プログラム命令は、ユーザのコンピュータ上で全体的に、ユーザのコンピュータ上で部分的に、ユーザのコンピュータ上でスタンドアロン・ソフトウェア・パッケージとして部分的に、ユーザのコンピュータ上で部分的に且つリモート・コンピュータ上で部分的に、又はリモート・コンピュータ若しくはサーバ上で全体的に、実行されうる。後者のシナリオにおいて、該リモート・コンピュータは、任意の種類のネットワーク、例えば、ローカルエリアネットワーク(LAN:local area network)若しくはワイドエリアネットワーク(WAN:wide area network)、を介してユーザのコンピュータに接続されうるか、又は該接続は(例えば、インターネットサービスプロバイダを使用したインターネットを通じて)外部コンピュータに対して行われうる。幾つかの実施態様において、電子回路、例えば、プログラム可能な論理回路、フィールドプログラム可能なゲートアレイ(FPGA:field-programmable gate arrays)又はプログラム可能なロジックアレイ(PLA:programmable logic arrays)、は、本発明の観点を実行する為に、コンピュータ可読プログラム命令の状態情報を利用することによって、電子回路をパーソナライズすることによって、コンピュータ可読プログラム命令を実行しうる。
【0161】
本発明の観点は、本発明の実施態様に従う、方法、装置(システム)及びコンピュータプログラム製品若しくはコンピュータプログラムのフローチャート図若しくはブロック図又はそれらの組み合わせを参照して本明細書において記載されている。該フローチャート図若しくは該ブロック図又はそれらの組み合わせの各ブロック、並びに該フローチャート図若しくは該ブロック図又はそれらの組み合わせにおける複数のブロックの組み合わせは、コンピュータ可読プログラム命令によって実装されることが出来ることが理解されるであろう。
【0162】
これらのコンピュータ可読プログラム命令は、該コンピュータ又は他のプログラム可能なデータ処理装置のプロセッサを介して実行する命令が該フローチャート図若しくはブロック図又はそれらの組み合わせの1以上のブロックにおいて特定された機能/動作を実装する為の手段を生成するように、コンピュータのプロセッサ又は他のプログラム可能なデータ処理装置に提供されて、マシンを作り出しうる。記憶された命令を有するコンピュータ可読記憶媒体が該フローチャート図若しくはブロック図又はそれらの組み合わせの1以上のブロックにおいて特定される機能/動作の観点を実装する命令を含む製造品を含むように、これらのコンピュータ可読プログラム命令はまた、コンピュータプログラム可能なデータ処理装置若しくは他のデバイス又はこれらの組み合わせに特定の様式で機能するように指示することが出来るコンピュータ可読記憶媒体中に記憶されうる。
【0163】
該コンピュータ可読プログラム命令はまた、コンピュータ上、他のプログラム可能なデータ処理装置上又は他のデバイス上で実行される命令が、該フローチャート図若しくはブロック図若しくはそれらの組み合わせの1以上のブロックにおいて特定される機能/動作を実装するように、上記のコンピュータ上、他のプログラム可能なデータ処理装置上又は他のデバイス上にロードされて、コンピュータ、他のプログラム可能な装置又は他のデバイス上で一連の操作工程を実行させて、コンピュータに実装されたプロセスを生成しうる。
【0164】
図面中のフローチャート図及びブロック図は、本発明の様々な実施態様に従う、システム、方法及びコンピュータプログラム製品若しくはコンピュータプログラムの在りうる実装の、アーキテクチャ、機能及び動作を示す。これに関連して、該フローチャート図又はブロック図における各ブロックは、命令のモジュール、セグメント、又はその一部を表し得、それは、特定された1以上の論理機能を実装する為の1以上の実行可能命令を含む。幾つかの代替の実装において、該ブロックにおいて示されている機能は、図面中に示されている順序とは異なって生じうる。例えば、連続して示されている2つのブロックは、実際には、関与する機能に依存して、同時に、実質的に同時に、部分的又は全体的に時間的に重複する様式で実行される1つの工程として達成されうるか、又は該ブロックは、逆の順序で実行されうる。該ブロック図若しくはフローチャート図又はこれらの組み合わせの各ブロック、並びに該ブロック図若しくはフローチャート図又はこれらの組み合わせの複数のブロックの組み合わせは、特定された機能又は動作を実行する特別な目的のハードウェアベースのシステムによって実装することが出来、又は特別な目的のハードウェアとコンピュータ命令との組み合わせを実行することが出来ることに留意されたい。
【0165】
その上、様々な実施態様に従うシステムは、プロセッサ、並びに該プロセッサに統合されるロジック若しくは該プロセッサによって実行可能なロジック又はそれらの組み合わせのロジックを備えていてもよく、ここで、該ロジックは、本明細書において引用されている複数の方法工程のうちの1以上を実行するように構成されている。該プロセッサは本明細書に記載された任意の構成、例えば、個別のプロセッサ、又は多くのコンポーネント、例えば、処理ハードウェア、メモリ及びI/Oインタフェース、を備えている処理回路、であってもよい。「統合される」が意味するところは、プロセッサが、該プロセッサに埋め込まれたロジック、例えばハードウェアロジック、例えば、特定用途向け集積回路(ASIC:application specific integrated circuit)及びFPGA、等を有することである。「プロセッサによって実行可能である」が意味するところは、該ロジックが、ハードウェアロジック:ソフトウェアロジック、例えば、ファームウェア、オペレーティングシステムの一部、アプリケーションプログラムの一部等;又はハードウェアロジックもしくはソフトウェアロジックの幾つかの組み合わせである場合に、プロセッサによってアクセス可能であり、該プロセッサによる実行時に何らかの機能を該プロセッサに実行させるように構成されていることを意味する。ソフトウェアロジックは、当該技術分野において知られているように、任意のメモリタイプのローカルメモリ若しくはリモートメモリ又はそれらの組み合わせのメモリに記憶されうる。当該技術分野において知られている任意のプロセッサ、例えば、ソフトウェアプロセッサモジュール、又はハードウェアプロセッサ、例えば、ASIC、FPGA、中央処理装置(CPU:central processing unit)、集積回路(IC:integrated circuit)及びグラフィック処理装置(GPU:graphics processing unit)等、が使用されうる。
【0166】
前述のシステム若しくは方法又はそれらの組み合わせの様々な特徴は、任意の方法で組み合わされてよく、上記に提示された説明から複数の組み合わせを生成することが出来ることは明らかであろう。
【0167】
本発明の観点は、オンデマンドでサービスを提供する為に顧客に代わってデプロイされるサービスの形態で提供されうることが更に理解されるであろう。
【0168】
本発明の様々な観点の記載は、例示の目的の為に提示されたものであり、網羅的であること又は開示された実施態様に限定されることが意図されたものでない。多くの修正及び変形が、記載された実施態様の範囲及び精神から逸脱すること無しに当業者には明らかであろう。本明細書において使用される語は、実施態様の原理、実用的な用途、又は市場において見られる技術に対する技術的改善を最もよく説明する為に、又は当業者が本明細書において開示されている実施態様を理解することが出来るようにする為に選択された。
図1
図2
図3
図4
図5
図6
図7
図8
【手続補正書】
【提出日】2023-07-03
【手続補正1】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項1】
デバイスに実装された方法であって、
記憶媒体上でデータ操作を実行するように構成されたデバイスにおいて、1以上の固有の外部キーを受信すること、ここで、前記1以上の外部キーは、キー・パーIO操作(Key per IO operation)の為に1以上の外部ソースから前記デバイスに提供される;
前記デバイス内に記憶されている内部キーにアクセスすること;
前記内部キー及び、前記1以上の外部キーのうちの前記関連付けられた1つを使用して、前記1以上の外部キーのうちの少なくとも一部の各々の為に固有の媒体暗号化キーを生成すること、ここで、各媒体暗号化キーは、その生成の為に用いられた前記外部キーに関連付けられている;並びに、
前記1以上の外部キーのうちの1つに関連付けられたデータの為にデータ操作を実行する為の要求を受信したことに応答して、その外部キーに関連付けられた前記媒体暗号化キーを使用して、前記データを暗号化及び/又は復号すること
を含む、前記方法。
【請求項2】
前記内部キーが、前記デバイスの内部で生成される、請求項1に記載の、デバイスに実装された方法。
【請求項3】
前記内部キーが、ラップされた形式で前記デバイスの不揮発性メモリ内に記憶される、請求項2に記載の、デバイスに実装された方法。
【請求項4】
前記1以上の外部キー及び前記媒体暗号化キーが、前記デバイスにおいて、揮発性メモリにのみ記憶される、請求項1に記載の、デバイスに実装された方法。
【請求項5】
前記デバイスが、前記内部キーをいかなる形態でも前記デバイスの外部に転送することを禁止するように構成されている、請求項1に記載の、デバイスに実装された方法。
【請求項6】
前記外部キーの幾つかは、同じ論理ブロックアドレス範囲内の異なる位置で記憶された固有のデータに個別に関連付けられる、請求項1に記載の、デバイスに実装された方法。
【請求項7】
前記媒体暗号化キーのうちの少なくとも1つは、複数の内部キーを使用して生成される、請求項1に記載の、デバイスに実装された方法。
【請求項8】
前記内部キーを使用して生成された前記1以上の媒体暗号化キーを使用して書き込まれたデータの暗号消去を、前記内部キー及びその内部キーを使用して生成された前記デバイス内の関連付けられた1以上の全ての媒体暗号化キーを破壊することによって行うことを含む、請求項1に記載の、デバイスに実装された方法。
【請求項9】
暗号消去を可能にする為のコンピュータプログラムであって、請求項1~8のいずれか1項に記載の方法の各工程を前記デバイスに実行させる、前記コンピュータプログラム。
【請求項10】
システムであって、該システムは、
記憶媒体上でデータ操作を実行するように構成されたデバイスを備えており、ここで、前記デバイスは、プロセッサと該プロセッサと統合されたロジックとを備えており、該ロジックは、前記プロセッサによって実行可能であり、又は前記プロセッサと統合され且つ前記プロセッサによって実行可能であり、前記ロジックは、前記デバイスに、請求項1~8のいずれか1項に記載の方法を実行させるように構成されている、
前記デバイス。
【請求項11】
デバイスに実装された方法であって、
第1のデータに関連付けられた第1の外部キーを使用して、前記第1のデータを暗号化された形式で記憶媒体に書き込む為の要求を、前記記憶媒体上でデータ操作を実行するように構成されたデバイスにおいて受信すること;
前記デバイス内に記憶されている内部キーにアクセスすること;
前記内部キー及び前記第1の外部キーを使用して、第1の媒体暗号化キーを生成すること;
前記第1の媒体暗号化キーを使用して前記第1のデータを暗号化すること;
前記暗号化された第1のデータを、前記記憶媒体の第1の論理ブロックアドレス範囲内で前記記憶媒体に書き込むこと;
第2のデータに関連付けられた第2の外部キーを使用して、前記第2のデータを暗号化された形式で前記記憶媒体に書き込む為の第2の要求を、前記デバイスにおいて受信すること;
前記デバイス内に記憶された前記内部キーにアクセスすること;
前記内部キー及び前記第2の外部キーを使用して、第2の媒体暗号化キーを生成すること;
前記第2の媒体暗号化キーを使用して前記第2のデータを暗号化すること;並びに、
前記暗号化された第2のデータを、前記記憶媒体の第1の論理ブロックアドレス範囲内で前記記憶媒体に書き込むこと;
を含む、前記方法。
【請求項12】
前記内部キーが、前記デバイスの内部で生成される、請求項11に記載の、デバイスに実装された方法。
【請求項13】
前記外部キーを1以上の外部ソースから受信することを含む、請求項11に記載の、デバイスに実装された方法。
【請求項14】
前記外部キー及び前記媒体暗号化キーは、前記デバイスにおいて、揮発性メモリにのみ記憶される、請求項13に記載の、デバイスに実装された方法。
【請求項15】
前記デバイスは、前記内部キーをいかなる形態でも前記デバイスの外部に転送することを禁止するよう構成されている、請求項11に記載の、デバイスに実装された方法。
【請求項16】
前記デバイスは、キー・パーIOデバイス(Key per IO device)として構成されている、請求項11に記載の、デバイスに実装された方法。
【請求項17】
暗号消去の為の、デバイスに実装された方法であって、
記憶媒体の少なくとも1つの論理ブロックアドレス範囲内の全てのデータの暗号消去を生じさせる為の要求を、キー・パーIO操作(Key per IO operation)を使用して前記記憶媒体上でデータ操作を実行するように構成されたデバイスにおいて受信すること、ここで、前記少なくとも1つの論理ブロックアドレス範囲内の前記データの個々の部分は各々、固有の外部キーに関連付けられ、前記データの前記個々の部分は各々、内部キーと前記データの前記部分に関連付けられた前記固有の外部キーとを使用して生成された固有の媒体暗号化キーを使用して暗号化される;並びに、
前記内部キー及び前記デバイス内で前記内部キーに関連付けられた1以上の全ての媒体暗号化キーを破壊することによって、前記暗号消去を達成すること
を含む、前記方法。
【請求項18】
前記外部キー及び前記媒体暗号化キーが、前記デバイスにおいて、揮発性メモリにのみ記憶される、請求項17に記載の、前記デバイスに実装された方法。
【請求項19】
前記デバイスが、前記内部キーをいかなる形態でも前記デバイスの外部に転送することを禁止するように構成されている、請求項17に記載の、前記デバイスに実装された方法。
【請求項20】
システムであって、該システムは、
記憶媒体上でデータ操作を実行するように構成されたデバイスを備えており、ここで、前記デバイスは、プロセッサと前記プロセッサと統合されたロジックとを有し、該ロジックは、前記プロセッサによって実行可能であり、又は前記プロセッサと統合され且つ前記プロセッサによって実行可能であり、前記ロジックは、前記デバイスに、請求項17に記載の方法を実行させるように構成されている、
前記システム。
【国際調査報告】