JP2024503327A - セキュアなデータ移動 - Google Patents

セキュアなデータ移動 Download PDF

Info

Publication number
JP2024503327A
JP2024503327A JP2023540173A JP2023540173A JP2024503327A JP 2024503327 A JP2024503327 A JP 2024503327A JP 2023540173 A JP2023540173 A JP 2023540173A JP 2023540173 A JP2023540173 A JP 2023540173A JP 2024503327 A JP2024503327 A JP 2024503327A
Authority
JP
Japan
Prior art keywords
key
encrypted
data
transcoder
destination node
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2023540173A
Other languages
English (en)
Inventor
ヘッツラー、スティーブン
ハント、ガーニー
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of JP2024503327A publication Critical patent/JP2024503327A/ja
Pending legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/088Usage controlling of secret information, e.g. techniques for restricting cryptographic keys to pre-authorized uses, different access levels, validity of crypto-period, different key- or password length, or different strong and weak cryptographic algorithms
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
    • H04L63/0471Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload applying encryption by an intermediary, e.g. receiving clear information at the intermediary and encrypting the received information at the intermediary before forwarding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
    • H04L63/0478Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload applying multiple layers of encryption, e.g. nested tunnels or encrypting the content with a first key and then with at least a second key
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0819Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0819Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
    • H04L9/0822Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) using key encryption key
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0894Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/14Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using a plurality of keys or algorithms
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3236Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/062Securing storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0682Tape device
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/76Proxy, i.e. using intermediary entity to perform cryptographic operations
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2463/00Additional details relating to network architectures or network communication protocols for network security covered by H04L63/00
    • H04L2463/062Additional details relating to network architectures or network communication protocols for network security covered by H04L63/00 applying encryption of the keys

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Storage Device Security (AREA)

Abstract

コンピュータ実装方法は、トランスコーダによって、第2の暗号化データを受信することを含む。第2の暗号化データは、データを第1の鍵で暗号化して第1の暗号化データを作成し、次いで第1の暗号化データを第2の鍵で暗号化して第2の暗号化データとしたものである。方法は、第2の鍵を受信し、第2の鍵を使用して第2の暗号化データを復号化し、第1の暗号化データを取得することを含む。方法は、第3の鍵を使用して第1の暗号化データを暗号化し、第3の暗号化データを作成することと、第3の暗号化データを宛先ノードに送信することと、を含む。コンピュータ実装方法は、トランスコーダによって、第2の暗号化された鍵を受信することを含む。第2の暗号化された鍵は、鍵を第1の鍵で暗号化して第1の暗号化された鍵を作成し、次いで第1の暗号化された鍵を第2の鍵で暗号化して第2の暗号化された鍵としたものである。

Description

本発明は、ストレージシステムを使用したデータ移動に関し、より具体的には、クラウドストレージシステムおよびネットワークにおけるデータ移動のためのセキュアトランスコーダ(secure transcoder)に関する。
様々なコンピュータノード間でデータをセキュアに共有することが望ましい。セキュアなデータ転送は、保存されたデータの近くで計算機能を提供する場合に特に有益である。例えば、各ノードは、特定の計算機能(例えば、データベース、推論エンジンなど)を有することができる。従来技術のアプローチでは、データ共有を制限するためにアクセス制御を使用してきた。アクセス制御は絶対に安全なものではなく、データ漏洩につながる可能性がある。例えば、特権が拡大されたり、制御が誤設定されたりする可能性がある。
他の従来技術のアプローチでは、ソースノードが保存データを暗号化する。別のアプローチでは、ソースノードがデータを復号化し、共有のためにセキュアリンクを介してデータを送信する場合がある。さらに別のアプローチでは、ソースノードがデータを復号化し、ソースノードが自身の復号化キーを宛先ノードと共有する場合がある。これらの用途では、データ漏洩の機会が多い。一部の用途では、準同型暗号化(homomorphic encryption)を使用してデータへのセキュアなアクセスを提供する場合がある。しかし、準同型暗号化は、宛先ノードがデータのプレーンテキスト(plaintext)にアクセスすることなくデータに対して計算を実行することが許可されている状況に限定される。準同型暗号化は、その性能の遅さによって有用性が制限される。
これらの様々な従来技術のアプローチは、宛先ノードに高い信頼性を要求する傾向がある。さらに、これらの従来技術のアプローチには、機能交換(function replacement)の柔軟性が欠けている。当技術分野では依然として、特に宛先ノードが不正を行った場合に共有を終了する能力を含め、共有データに関して高度なセキュリティを提供しながら、データをセキュアに共有し、動作(例えば、ストレージ近傍での計算など)を許可する方法が求められている。
一態様に係るコンピュータ実装方法は、トランスコーダによって、第2の暗号化データを受信することを含む。第2の暗号化データは、データを第1の鍵で暗号化して第1の暗号化データを作成し、次いで第1の暗号化データを第2の鍵で暗号化して第2の暗号化データとしたものである。方法は、トランスコーダによって、第2の鍵を受信することと、トランスコーダによって、第2の鍵を使用して第2の暗号化データを復号化し、第1の暗号化データを取得することと、を含む。方法はまた、トランスコーダによって、第3の鍵を使用して第1の暗号化データを暗号化し、第3の暗号化データを作成することと、トランスコーダによって、第3の暗号化データを宛先ノードに送信することと、を含む。このコンピュータ実装方法は、トランスコーダが宛先ノードに許可する限り、ソースノードが保存したデータに宛先ノードがアクセスし、データを復号化できるという利点がある。一実施形態によれば、コンピュータ実装方法は、トランスコーダによって、第3の鍵を宛先ノードに送信することを含んでもよい。宛先ノードは、第3の鍵を使用して第3の暗号化データを復号化し、第1の暗号化データを取得する。宛先ノードは、第1の鍵を使用して第1の暗号化データを復号化し、データを取得する。この実施形態の利点として、宛先ノードが復号化可能な、二重に暗号化されたデータへのアクセスを宛先ノードに提供できるとともに、トランスコーダは第1の鍵へのアクセスを有さず、データ漏洩を防止することができる。
コンピュータ実装方法は、一実施形態によれば、トランスコーダによって、ソースノードと宛先ノードとの間のデータ共有を終了させるために、第3の鍵をダミー鍵に置き換えることを含んでもよい。この実施形態は、宛先ノードが第3の鍵のコピーを保持している場合であっても、宛先ノードによる保存データへのアクセスを制限できるという利点がある。
別の態様に係るシステムは、プロセッサと、プロセッサに統合されたロジック、プロセッサによって実行可能なロジック、または、プロセッサに統合されかつプロセッサによって実行可能なロジックと、を含む。ロジックは、上述した方法を実行するように構成される。
さらに別の態様に係るコンピュータプログラム製品は、1つ以上のコンピュータ可読記憶媒体と、1つ以上のコンピュータ可読記憶媒体にまとめて記憶されたプログラム命令と、を含む。プログラム命令は、上述した方法を実行するためのプログラム命令を含む。
一態様に係るコンピュータ実装方法は、トランスコーダによって、第2の暗号化された鍵を受信することを含む。第2の暗号化された鍵は、鍵を第1の鍵で暗号化して第1の暗号化された鍵を作成し、次いで第1の暗号化された鍵を第2の鍵で暗号化して第2の暗号化された鍵としたものである。方法は、トランスコーダによって、第2の鍵を受信することと、トランスコーダによって、第2の鍵を使用して第2の暗号化された鍵を復号化し、第1の暗号化された鍵を取得することを含む。方法はまた、トランスコーダによって、第3の鍵を使用して第1の暗号化された鍵を暗号化し、第3の暗号化された鍵を作成することと、トランスコーダによって、第3の暗号化された鍵を宛先ノードに送信することと、を含む。この態様は、比較的長いデータブロックをトランスコードするよりも、鍵をトランスコードする方が効率的な場合に、トランスコードの効率を向上することができる。
コンピュータ実装方法は、一実施形態によれば、トランスコーダによって、第3の鍵を宛先ノードに送信することを含んでもよい。宛先ノードは、第3の鍵を使用して第3の暗号化された鍵を復号化し、第1の暗号化された鍵を取得する。宛先ノードは、第1の鍵を使用して第1の暗号化された鍵を復号化し、鍵を取得する。この実施形態の利点として、宛先ノードが復号化可能な、二重に暗号化されたデータへのアクセスを宛先ノードに提供できるとともに、トランスコーダは第1の鍵へのアクセスを有さず、データ漏洩を防止することができる。
コンピュータ実装方法は、一実施形態によれば、宛先ノードが鍵を使用してソースノードからのデータを復号化することを含んでもよい。この実施形態は、二重暗号化による安全性を提供しながら、比較的長いデータブロックに対する二重暗号化プロセスを回避できるという利点がある。
さらに別の態様に係るコンピュータプログラム製品は、1つ以上のコンピュータ可読記憶媒体と、1つ以上のコンピュータ可読記憶媒体にまとめて記憶されたプログラム命令と、を含む。プログラム命令は、上述した方法を実行するためのプログラム命令を含む。
本発明の他の態様およびアプローチは、以下の詳細な説明から明らかになる。以下の詳細な説明は、添付図面との併用により、本発明の原理を例示する。
次に、本発明の好ましい実施形態を、例示のみを目的として、以下の図面を参照して説明する。
本発明の一実施形態に係る、クラウドコンピューティング環境を示す図である。 本発明の一実施形態に係る、抽象化モデルレイヤを示す図である。 本発明の一実施形態に係る、概略的アーキテクチャ図である。 本発明の一実施形態に係る、概略的アーキテクチャ図である。 本発明の一実施形態に係る、概略的アーキテクチャ図である。 本発明の一実施形態に係る、概略的アーキテクチャ図である。 本発明の一実施形態に係る、概略的アーキテクチャ図である。 本発明の一実施形態に係る、概略的アーキテクチャ図である。 本発明の一実施形態に係る、方法のフローチャートである。 本発明の一実施形態に係る、方法のフローチャートである。
以下の説明は、本発明の一般的な原理を説明する目的でなされたものであり、本明細書において特許請求される発明概念を限定することを意図するものではない。さらに、本明細書に記載された特定の特徴は、様々な可能な組み合わせおよび置き換えの各々において、他の記載された特徴と組み合わせて使用することができる。
本明細書において別段の具体的な定義がなされない限り、すべての用語は、当業者によって理解される意味もしくは辞書や専門書などで定義される意味またはその両方、および本明細書から示唆される意味を含む、可能な限り広範な解釈が与えられる。
また、本明細書および添付の特許請求の範囲において、単数形「ある(a)」、「ある(an)」および「その(the)」は、別段の指定がない限り、複数の指示対象も含む。さらに、本明細書において、「含む(comprises)」もしくは「含む(comprising)」またはその両方の用語が用いられる場合、記載された特徴、整数、ステップ、操作、要素、もしくは構成要素またはその組み合わせが存在することを規定するが、1つ以上の他の特徴、整数、ステップ、操作、要素、構成要素、もしくはそれらのグループまたはその組み合わせが存在したり、追加されたりすることを排除するものではない。
以下の説明では、ソースノードと宛先ノードとの間で保存データへのアクセスを共有するいくつかの実施形態が開示される。これらの実施形態では、トランスコーダを使用し、保存データを復号化するためのソース秘密鍵にアクセスすることなく、宛先ノードにデータへのアクセスを提供する。
一般的な一実施形態において、コンピュータ実装方法は、トランスコーダによって、第2の暗号化データを受信することを含む。第2の暗号化データは、データを第1の鍵で暗号化して第1の暗号化データを作成し、これを第2の鍵で暗号化して第2の暗号化データとしたものである。方法は、トランスコーダによって、第2の鍵を受信することと、トランスコーダによって、第2の鍵を使用して第2の暗号化データを復号化し、第1の暗号化データを得ることとを含む。方法はまた、トランスコーダによって、第3の鍵を使用して第1の暗号化データを暗号化して第3の暗号化データを作成することと、トランスコーダによって、第3の暗号化データを宛先ノードに送信することとを含む。
別の一般的な実施形態において、システムは、プロセッサと、プロセッサに統合されたロジック、プロセッサによって実行可能なロジック、またはプロセッサに統合されかつプロセッサによって実行可能なロジックとを含む。ロジックは、上述の方法を実行するように構成される。
別の一般的な実施形態において、コンピュータプログラム製品は、1つ以上のコンピュータ可読記憶媒体と、1つ以上のコンピュータ可読記憶媒体にまとめて記憶されたプログラム命令とを含む。プログラム命令は、上述の方法を実行するためのプログラム命令を含む。
一般的な一実施形態において、コンピュータ実装方法は、トランスコーダによって、第2の暗号化された鍵を受信することを含む。第2の暗号化された鍵は、鍵を第1の鍵で暗号化して第1の暗号化された鍵を作成し、これを第2の鍵で暗号化して第2の暗号化された鍵としたものである。方法は、トランスコーダによって、第2の鍵を受信することと、トランスコーダによって、第2の鍵を使用して第2の暗号化された鍵を復号化し、第1の暗号化された鍵を取得することとを含む。方法はまた、トランスコーダによって、第3の鍵を使用して第1の暗号化された鍵を暗号化して第3の暗号化された鍵を作成することと、トランスコーダによって、第3の暗号化された鍵を宛先ノードに送信することとを含む。
別の一般的な実施形態において、コンピュータプログラム製品は、1つ以上のコンピュータ可読記憶媒体と、1つ以上のコンピュータ可読記憶媒体にまとめて記憶されたプログラム命令とを含む。プログラム命令は、上述の方法を実行するためのプログラム命令を含む。
本開示は、クラウドコンピューティングに関する詳細な説明を含むが、本明細書に記載された教示の実装形態は、クラウドコンピューティング環境に限定されないことを理解されたい。むしろ、本発明の実施形態は、現在公知のまたは後に開発される任意の他のタイプのコンピューティング環境と組み合わせて実施することが可能である。
クラウドコンピューティングは、設定可能なコンピューティングリソース(例えばネットワーク、ネットワーク帯域幅、サーバ、処理、メモリ、記憶装置、アプリケーション、仮想マシンおよびサービス)の共有プールへの簡便かつオンデマンドのネットワークアクセスを可能にするためのサービス提供のモデルであり、リソースは、最小限の管理労力または最小限のサービスプロバイダとのやり取りによって速やかに準備(provision)およびリリースできるものである。このクラウドモデルは、少なくとも5つの特性、少なくとも3つのサービスモデル、および少なくとも4つの展開モデルを含むことができる。
特性は以下の通りである。
オンデマンド・セルフサービス:クラウドの消費者は、サービスプロバイダとの人的な対話を必要することなく、必要に応じて自動的に、サーバ時間やネットワークストレージなどのコンピューティング能力を一方的に準備することができる。
ブロード・ネットワークアクセス:コンピューティング能力はネットワーク経由で利用可能であり、また、標準的なメカニズムを介してアクセスできる。それにより、異種のシンまたはシッククライアントプラットフォーム(例えば、携帯電話、ラップトップ、PDA)による利用が促進される。
リソースプーリング:プロバイダのコンピューティングリソースはプールされ、マルチテナントモデルを利用して複数の消費者に提供される。様々な物理リソースおよび仮想リソースが、需要に応じて動的に割り当ておよび再割り当てされる。一般に消費者は、提供されたリソースの正確な位置を管理または把握していないため、位置非依存(location independence)の感覚がある。ただし消費者は、より高い抽象レベル(例えば、国、州、データセンタ)では場所を特定可能な場合がある。
迅速な柔軟性(elasticity):コンピューティング能力は、迅速かつ柔軟に準備することができるため、場合によっては自動的に、直ちにスケールアウトし、また、速やかにリリースされて直ちにスケールインすることができる。消費者にとって、準備に利用可能なコンピューティング能力は無制限に見える場合が多く、任意の時間に任意の数量で購入することができる。
サービスの測定:クラウドシステムは、サービスの種類(例えば、ストレージ、処理、帯域幅、アクティブユーザアカウント)に適したある程度の抽象化レベルでの計量機能(metering capability)を活用して、リソースの使用を自動的に制御し最適化する。リソース使用量を監視、制御、および報告して、利用されるサービスのプロバイダおよび消費者の両方に透明性を提供することができる。
サービスモデルは以下の通りである。
サービスとしてのソフトウェア(SaaS):消費者に提供される機能は、クラウドインフラストラクチャ上で動作するプロバイダのアプリケーションを利用できることである。当該そのアプリケーションは、ウェブブラウザ(例えばウェブメール)などのシンクライアントインタフェースを介して、各種のクライアント装置からアクセスできる。消費者は、ネットワーク、サーバ、オペレーティングシステム、ストレージや、個別のアプリケーション機能さえも含めて、基礎となるクラウドインフラストラクチャの管理や制御は行わない。ただし、ユーザ固有の限られたアプリケーション構成の設定はその限りではない。
サービスとしてのプラットフォーム(PaaS):消費者に提供される機能は、プロバイダによってサポートされるプログラム言語およびツールを用いて、消費者が作成または取得したアプリケーションを、クラウドインフラストラクチャに展開(deploy)することである。消費者は、ネットワーク、サーバ、オペレーティングシステム、ストレージを含む、基礎となるクラウドインフラストラクチャの管理や制御は行わないが、展開されたアプリケーションを制御でき、かつ場合によってはそのホスティング環境の構成も制御できる。
サービスとしてのインフラストラクチャ(IaaS):消費者に提供される機能は、オペレーティングシステムやアプリケーションを含む任意のソフトウェアを消費者が展開および実行可能な、プロセッサ、ストレージ、ネットワーク、および他の基本的なコンピューティングリソースを準備することである。消費者は、基礎となるクラウドインフラストラクチャの管理や制御は行わないが、オペレーティングシステム、ストレージ、および展開されたアプリケーションを制御でき、かつ場合によっては一部のネットワークコンポーネント(例えばホストファイアウォール)を部分的に制御できる。
展開モデルは以下の通りである。
プライベートクラウド:このクラウドインフラストラクチャは、特定の組織専用で運用される。このクラウドインフラストラクチャは、当該組織または第三者によって管理することができ、オンプレミスまたはオフプレミスで存在することができる。
コミュニティクラウド:このクラウドインフラストラクチャは、複数の組織によって共有され、共通の関心事(例えば、ミッション、セキュリティ要件、ポリシー、およびコンプライアンス)を持つ特定のコミュニティをサポートする。このクラウドインフラストラクチャは、当該組織または第三者によって管理することができ、オンプレミスまたはオフプレミスで存在することができる。
パブリッククラウド:このクラウドインフラストラクチャは、不特定多数の人々や大規模な業界団体に提供され、クラウドサービスを販売する組織によって所有される。
ハイブリッドクラウド:このクラウドインフラストラクチャは、2つ以上のクラウドモデル(プライベート、コミュニティまたはパブリック)を組み合わせたものとなる。それぞれのモデル固有の実体は保持するが、標準または個別の技術によってバインドされ、データとアプリケーションの可搬性(例えば、クラウド間の負荷分散のためのクラウドバースティング)を実現する。
クラウドコンピューティング環境は、ステートレス性(statelessness)、低結合性(low coupling)、モジュール性(modularity)および意味論的相互運用性(semantic interoperability)に重点を置いたサービス指向型環境である。クラウドコンピューティングの中核にあるのは、相互接続されたノードのネットワークを含むインフラストラクチャである。
ここで、図1に例示的なクラウドコンピューティング環境50を示す。図示するように、クラウドコンピューティング環境50は1つ以上のクラウドコンピューティングノード10を含む。これらに対して、クラウド消費者が使用するローカルコンピュータ装置(例えば、PDAもしくは携帯電話54A、デスクトップコンピュータ54B、ラップトップコンピュータ54C、もしくは自動車コンピュータシステム54Nまたはこれらの組み合わせなど)は通信を行うことができる。ノード10は互いに通信することができる。ノード10は、例えば、上述のプライベート、コミュニティ、パブリックもしくはハイブリッドクラウドまたはこれらの組み合わせなど、1つ以上のネットワークにおいて、物理的または仮想的にグループ化(不図示)することができる。これにより、クラウドコンピューティング環境50は、サービスとしてのインフラストラクチャ、プラットフォームもしくはソフトウェアまたはこれらの組み合わせを提供することができ、クラウド消費者はこれらについて、ローカルコンピュータ装置上にリソースを維持する必要がない。なお、図1に示すコンピュータ装置54A~Nの種類は例示に過ぎず、コンピューティングノード10およびクラウドコンピューティング環境50は、任意の種類のネットワークもしくはネットワークアドレス指定可能接続(例えば、ウェブブラウザの使用)またはその両方を介して、任意の種類の電子装置と通信可能であることを理解されたい。
ここで、クラウドコンピューティング環境50(図1)によって提供される機能的抽象化レイヤのセットを図2に示す。なお、図2に示すコンポーネント、レイヤおよび機能は例示に過ぎず、本発明の実施形態はこれらに限定されないことをあらかじめ理解されたい。図示するように、以下のレイヤおよび対応する機能が提供される。
ハードウェアおよびソフトウェアレイヤ60は、ハードウェアコンポーネントおよびソフトウェアコンポーネントを含む。ハードウェアコンポーネントの例には、メインフレーム61、縮小命令セットコンピュータ(RISC)アーキテクチャベースのサーバ62、サーバ63、ブレードサーバ64、記憶装置65、ならびにネットワークおよびネットワークコンポーネント66が含まれる。いくつかの実施形態において、ソフトウェアコンポーネントは、ネットワークアプリケーションサーバソフトウェア67およびデータベースソフトウェア68を含む。
仮想化レイヤ70は、抽象化レイヤを提供する。当該レイヤから、例えば、仮想サーバ71、仮想ストレージ72、仮想プライベートネットワークを含む仮想ネットワーク73、仮想アプリケーションおよびオペレーティングシステム74、ならびに仮想クライアント75などの仮想エンティティを提供することができる。
一例として、管理レイヤ80は以下の機能を提供することができる。リソース準備81は、クラウドコンピューティング環境内でタスクを実行するために利用されるコンピューティングリソースおよび他のリソースの動的な調達を可能にする。計量および価格設定82は、クラウドコンピューティング環境内でリソースが利用される際のコスト追跡、およびこれらのリソースの消費に対する請求またはインボイス送付を可能にする。一例として、これらのリソースはアプリケーションソフトウェアのライセンスを含んでもよい。セキュリティは、データおよび他のリソースに対する保護のみならず、クラウド消費者およびタスクの識別確認を可能にする。ユーザポータル83は、消費者およびシステム管理者にクラウドコンピューティング環境へのアクセスを提供する。サービスレベル管理84は、要求されたサービスレベルが満たされるように、クラウドコンピューティングリソースの割り当ておよび管理を可能にする。サービス品質保証(SLA)の計画および履行85は、SLAに従って将来必要になると予想されるクラウドコンピューティングリソースの事前手配および調達を可能にする。
ワークロードレイヤ90は、クラウドコンピューティング環境の利用が可能な機能の例を提供する。このレイヤから提供可能なワークロードおよび機能の例には、マッピングおよびナビゲーション91、ソフトウェア開発およびライフサイクル管理92、仮想教室教育の配信93、データ分析処理94、取引処理95、安全なデータ移動96が含まれる。
本発明の様々な実施形態は、トランスコーダを使用し、保存データを復号化するためのソース秘密鍵にアクセスすることなく、宛先ノードにデータへのアクセスを提供することにより、ソースノードと宛先ノードとの間で保存データへのアクセスを共有することを含む。好ましい実施形態において、保存データは、ソースノードによって第1のソース鍵で暗号化され、この暗号化されたデータ(例えば、第1の暗号化データ)は、ソースノードによって第2のソース鍵でさらに暗号化され、二重に暗号化されたデータ(例えば、第2の暗号化データ)が作成される。第1のソース鍵は宛先ノードと共有され、第2のソース鍵はセキュアトランスコーダと共有される。トランスコーダは第3の鍵を提供し、第3の鍵を宛先ノードと共有する。トランスコーダは、第2の鍵を使用して、二重に暗号化されたデータを復号化し、第3の鍵を使用して、この一重に暗号化された状態となったデータを再暗号化することにより、第3の鍵で二重に暗号化されたデータ(例えば、第3の暗号化データ)を作成する。トランスコーダは、第3の鍵を宛先ノードと共有する。宛先ノードは、トランスコーダを介して二重に暗号化されたデータ(例えば、第1の鍵で暗号化され、さらに第3の鍵で暗号化されたデータ)にアクセスする。二重に暗号化されたデータは、永続データ用のデータストアに保存される。
有利な点として、本発明の少なくともいくつかの実施形態では、トランスコーダが(例えば、ソースノードとトランスコーダとの間で確立された共有ポリシーに従って)宛先ノードに許可する限り、宛先ノードがデータにアクセスし、データを復号化することができる。さらに、トランスコーダがプレーンテキストデータにアクセスすることはなく、宛先ノードは、共有ポリシーが変更されると、その後は保存データにアクセスできなくなる。
他のアプローチでは、ソースノードは、データの各チャンク(chunk)を異なるチャンク鍵で暗号化する(例えば、データの各チャンクは、固有のチャンク鍵で暗号化される)。そして、ソースノードは、本開示の少なくともいくつかの実施形態において、各データチャンクを暗号化し、各データチャンクをトランスコード(コード変換)する。このチャンクごとに鍵を使用する(key-per-chunk)アプローチは、トランスコーダの暗号化負荷を大幅に低減することができる。
本明細書で説明する実施形態の少なくともいくつかは、対称暗号化(symmetric encryption)技術で有利に使用可能である。これにより、システム内のノード間でデータを転送する比較的低速の公開鍵暗号化方法と比較して、比較的高いパフォーマンスを得ることができる。
図3は、様々な構成に従った概略的アーキテクチャ図である。アーキテクチャ300は、特に図1~2および図4~7に示した環境のいずれかにおいて様々な構成で、本発明の好ましい一実施形態に従って実装することができる。もちろん、本明細書の記載を読めば当業者には理解できるように、図3に具体的に記載した要素よりも多いまたは少ない要素がアーキテクチャ300に含まれてもよい。
アーキテクチャ300はその概略的アーキテクチャとして、ソースノード302、ストレージ304、および宛先ノード306を含む。ソースノード302は、ソースノード計算リソース308、第1の鍵k1(310)、および第2の鍵k2(312)を含む。ソースノード302は、ソースノードマネージャ機能314、ソースノードk1暗号化/復号化機能316、およびソースノードk2暗号化/復号化機能318を含む。当業者であれば本開示を読んで理解できるように、本明細書で説明する暗号化/復号化機能は、適切な鍵および任意の公知の暗号化技術を使用して、データを暗号化もしくは復号化またはその両方を行うように構成することができる。ソースノード302は、複数の第1の鍵、複数の第2の鍵、複数の第1の鍵セット、複数の第2の鍵セットなどを含むことができる。
ストレージ304は、ストレージシステム、ソリッドステートドライブ(SSD)、ハードディスク、テープドライブ、ストレージクラスメモリ、DRAM、永続ストレージ、または当技術分野で公知の任意のタイプのストレージ、またはそれらの任意の組み合わせとすることができる。
アーキテクチャ300は、セキュアトランスコーダ320を含む。セキュアトランスコーダ320は、セキュアトランスコーダマネージャ機能322と、第2の鍵k2(312)用のセキュア鍵ストレージ324とを含む。セキュアトランスコーダ320は、少なくともいくつかのアプローチにおいて、鍵生成器326を含むことができる。セキュアトランスコーダ320は第3の鍵k3(328)を含む。セキュアトランスコーダ320は、セキュアトランスコーダk2暗号化/復号化機能330と、セキュアトランスコーダk3暗号化/復号化機能332とを含む。
様々なアプローチにおいて、鍵生成器326は、第3の鍵k3(328)を生成する。第3の鍵k3(328)は、いくつかのアプローチではソースノード302によって生成されてもよい。他のアプローチでは、第3の鍵k3(328)は宛先ノード306によって生成されてもよい。好ましい実施形態において、第3の鍵k3(328)は、鍵生成器326またはソースノード302によって生成され、弱い鍵になることや鍵が再利用されることなどを回避する。さらに他のアプローチでは、当業者であれば本開示を読めば明らかなように、本明細書で説明する鍵は、当該技術分野で公知の鍵生成器もしくは鍵マネージャ(不図示)またはその両方によって生成もしくは管理またはその両方が行われてもよい。
セキュアトランスコーダ320は、共有動作(sharing operation)を実行するように設計されてもよい。共有動作の各々は、別々のポリシーによって定義されることが好ましい。トランスコーダは、複数の鍵ストレージもしくは複数のセキュアトランスコーダ暗号化/復号化機能またはその両方を有してもよい。これらの追加のポリシー(および関連するコンポーネント)によって、各共有ポリシーに対して追加のセキュリティが提供される(例えば、各共有ポリシーは、同じデータにアクセスする可能性があるとしても、それぞれ別個の固有の第3の鍵を有してもよい)。
セキュアトランスコーダ320は、ハードウェア、ソフトウェア等、またはそれらの任意の組み合わせにおいて実装することができる。所望のセキュリティを達成するために、セキュアトランスコーダ320は、セキュアトランスコーダ320の外部からのアクセスに対して第2の鍵k2(312)を保護し、データ漏洩によるセキュリティの弱体化または欠如を防止する。
宛先ノード306は、宛先ノード計算リソース334、第1の鍵k1(310)用の鍵ストレージ336、および第3の鍵k3(328)用の鍵ストレージ338を含む。宛先ノード306は、宛先ノードマネージャ機能340を含む。宛先ノード306は、宛先ノードk1暗号化/復号化機能342および宛先ノードk3暗号化/復号化機能344を含む。
アーキテクチャ300の様々な実施形態に従った例示的な実装形態を、図3の矢印もしくは接続線またはその両方を参照して説明する。ソースノード302は、ストレージ304にデータを保存する。当業者であれば本開示を読めば明らかなように、本開示を通して使用されるデータは、アプリケーションデータ、メタデータ、鍵、任意の他の種類の情報、またはそれらの任意の組み合わせを含むことができる。本開示を通して使用されるように、暗号化は、暗号化表記「encrypt(鍵,データ)」によって示され、復号化は、復号化表記「decrypt(鍵,データ)」によって示される場合がある。「P」で示されるデータの単位を格納するソースノード302は、好ましくは、ソースノードk1暗号化/復号化機能316によって、第1の鍵k1(310)を使用して、データPをC1=encrypt(k1,P)として暗号化する。さらに、ソースノードk2暗号化/復号化機能318は、第2の鍵k2(312)を使用して、この得られた(C1)をC2=encrypt(k2,C1)として暗号化する。暗号化されたデータC2は、動作346にてストレージ304に送信される。保存されたデータは、第1の鍵k1(310)と第2の鍵k2(312)の組み合わせで暗号化される。いくつかのアプローチでは、共有のために暗号化を必要としないデータは、動作348にてストレージ304に直接送信されてもよい。様々なアプローチにおいて、ストレージ304は、当業者であれば本開示を読めば明らかな方法でデータ保存のためにさらなる暗号化を実行するための、暗号化/復号化機能(不図示)を有してもよい。
データを共有する前に、ソースノード302、ストレージ304、宛先ノード306、およびセキュアトランスコーダ320は、互いを認証して互いの身元(identity)を確認することが好ましい。様々なアプローチにおいて、アーキテクチャ300内の各コンポーネントの身元は、当該技術分野で公知のプロトコルに従って認証されてもよい。いくつかのアプローチでは、認証は、当事者間の安全な通信接続を設定することの一部として行われてもよい。好ましい実施形態において、すべての通信リンクはセキュアな状態である(例えば、暗号化されている)。例えば、ソースノード302は、共有ポリシーを使用して、宛先ノード306とのデータの共有アクセスを設定してもよい。共有ポリシーは、共有するデータのセット、共有期間、共有するデータの量、他のアクセス権限等、またはそれらの任意の組み合わせなどのポリシー情報を含んでもよい。ポリシー情報は、動作350にて、ソースノードマネージャ機能314とセキュアトランスコーダマネージャ機能322との間で(例えば、ソースノードマネージャ機能314からセキュアトランスコーダマネージャ機能322へ)送信してもよい。セキュアトランスコーダマネージャ機能322は、ポリシー情報が正しく、ポリシーがセキュアトランスコーダ320によってサポートされることを検証してもよい。このような検証は、動作352にて、宛先ノードマネージャ機能340と通信し、ポリシーが宛先ノード306によってサポートされることを確認することを含んでもよい。各コンポーネントの身元が検証され、ポリシー情報が検証されたことに応じて、ソースノード302は、動作354にて、第2の鍵k2(312)をセキュアトランスコーダ320に送信してもよい。セキュアトランスコーダ320は、第2の鍵k2(312)のコピーを第2の鍵k2(312)用のセキュア鍵ストレージ324に保存する。
好ましい実施形態において、セキュアトランスコーダ320および宛先ノード306のいずれも、第1の鍵k1(310)と第2の鍵k2(312)の両方にアクセスすることはできない。このようなアクセスを有しない場合、セキュアトランスコーダ320および宛先ノード306は、ソースノード302によって保存されたストレージ304内のデータを復号化することができない。好ましい一実施形態において、第2の鍵k2(312)用のセキュア鍵ストレージ324は揮発性であり、停電が発生した場合、セキュアトランスコーダ320は、共有を再確立するために、影響を受けた当事者を再認証する必要がある(あるいはその逆に、影響を受けた当事者がセキュアトランスコーダ320を再認証する必要がある)。停電が発生した場合、セキュアトランスコーダ320はまた、共有を再確立するために、第3の鍵k3(328)用の鍵ストレージ338を再認証する(あるいはその逆に、鍵ストレージ338がセキュアトランスコーダ320を再認証する)。セキュアトランスコーダ320が第2の鍵k2(312)を第2の鍵k2(312)用のセキュア鍵ストレージ324に保存する期間は、上述したように、共有ポリシーによって決定される。共有ポリシーによって示される共有が終了したことに応答して、セキュアトランスコーダ320は、当業者であれば本開示を読めば明らかな任意の方法で、第2の鍵k2(312)の保存コピーをシュレッドする(例えば、削除またはその他の方法で破壊する)。第2の鍵k2(312)をシュレッドすることは、第2の鍵k2(312)用のセキュア鍵ストレージ324にとって、保存した鍵情報によるセキュアトランスコーダk2暗号化/復号化機能330へのアクセスを制限する上で有益である。このようにシュレッドすることにより、第2の鍵k2(312)の漏洩が防止される。
セキュアトランスコーダ320は、ポリシー検証後にデータの共有を設定することの一部として、鍵生成器326を使用して第3の鍵k3(328)を生成してもよい。第3の鍵k3(328)は、動作356にて宛先ノード306に送信される。宛先ノード306は、第3の鍵k3(328)のコピーを第3の鍵k3(328)用の鍵ストレージ338に保存する。さらに、ポリシー検証後にデータの共有を設定することの一部として、ソースノード302は、動作358にて、第1の鍵k1(310)を宛先ノード306に送信する。宛先ノード306は、第1の鍵k1(310)のコピーを第1の鍵k1(310)用の鍵ストレージ336に保存する。好ましい実施形態において、第1の鍵k1(310)用の鍵ストレージ336と第3の鍵k3(328)用の鍵ストレージ338はどちらも揮発性である。好ましい1つのアプローチでは、共有が終了すると、セキュアトランスコーダ320は第3の鍵k3(328)を削除し、宛先ノード306からの共有データに対する要求の受け付けを停止する。他のアプローチでは、セキュアトランスコーダ320は、当業者であれば本開示を読めば明らかな任意の方法で、第3の鍵k3(328)をダミー鍵(dummy key)に置き換え、宛先ノード306が共有データを要求しても、データなしとなるか、使用不可能なデータが返されるか、またはその両方の結果となるようにする(例えば、宛先ノード306が第1の鍵k1(310)のみを有していても読み取ることはできず、また第3の鍵を使用しても、宛先ノード306にはk1で暗号化されたデータは返されない)。宛先ノード306が共有データへの書き込みアクセス権を有している場合、ダミー鍵によって、当業者であれば本開示を読めば明らかな方法で、すべての書き込みアクセスが終了される。
他のアプローチでは、セキュアトランスコーダ320は、共有が終了したことを宛先ノード306に通知する。共有が終了したことに応答して、宛先ノード306は、第1の鍵k1(310)および第3の鍵k3(328)の保存コピーを削除する。共有ポリシーは、ソースノード302からセキュアトランスコーダ320、ストレージ304、宛先ノード306などへのいずれか、またはそれらの組み合わせへのコマンド送信など、当業者であれば本開示を読めば明らかな任意の方法で終了させることができる。
例示的な実装形態において、宛先ノード306は、動作360にてセキュアトランスコーダ320にデータを要求することにより、読み出し動作を実行する。宛先ノード306は、ストレージ304から共有データに直接アクセスすることができない。これは、ストレージ304の共有データは、宛先ノード306が利用できない第2の鍵k2(312)を使用して暗号化されているためである。読み出し要求が共有ポリシーによって許可されている場合、セキュアトランスコーダ320は、動作362にて、読み出し要求に関連するデータをストレージ304から読み出す。読み出し要求に関連するデータは、上述したように、C2=encrypt(k2,C1)として暗号化されている。読み出し要求に関連するデータは、動作364にて、セキュアトランスコーダk2暗号化/復号化機能330によって、第2の鍵k2(312)を使用して、C1=decrypt(k2,C2)として復号化される。この関連データ(この時点では第1の鍵k1(310)でのみ暗号化されている)は、動作366にて、セキュアトランスコーダk3暗号化/復号化機能332によって、第3の鍵k3(328)を使用して暗号化される。動作366を実行する前の関連データは、C1=encrypt(k1,P)として依然として暗号化されており、第1の鍵k1(310)は、セキュアトランスコーダ320には利用できない。したがって、セキュアトランスコーダ320は、ソースノード302によってストレージ304に保存されたデータを復号化することはできない。セキュアトランスコーダk3暗号化/復号化機能332は第3の鍵k3(328)を使用して、この関連データをC3=encrypt(k3,C1)として暗号化する(例えば、データは第1の鍵k1(310)と第3の鍵k3(328)の両方で暗号化される)。暗号化されたデータは、動作360にて宛先ノード306に送信される。宛先ノード306は、宛先ノードk3暗号化/復号化機能344によって、第3の鍵k3(328)を使用して、このデータをC1=decrypt(k3,C3)として復号化することができる(例えば、関連データは、この時点で第1の鍵k1(310)でのみ暗号化されている)。宛先ノード306は、宛先ノードk1暗号化/復号化機能342によって、第1の鍵k1(310)を使用して、データをP=decrypt(k1,C1)として復号化することができる(例えば、宛先ノード306は平文(clear)のデータにアクセスできるようになる)。
好ましい実施形態において、セキュアトランスコーダ320を使用した宛先ノード306とソースノード302との間の共有期間は、本明細書で説明する共有ポリシー情報に従って、動作360にて通信を停止することによって終了する。様々なアプローチにおいて、宛先ノード306とセキュアトランスコーダ320との間の通信チャネルが開いたままである場合、宛先ノード306とソースノード302との間の共有期間は、セキュアトランスコーダ320が第3の鍵k3(328)もしくは第2の鍵k2(312)またはその両方をシュレッドすることによって終了する。他のアプローチでは、セキュアトランスコーダ320は、第3の鍵k3(328)もしくは第2の鍵k2(312)またはその両方を当該技術分野で公知の種類のダミー鍵で置き換えることにより、共有期間を終了させることができる。第3の鍵k3(328)もしくは第2の鍵k2(312)またはその両方をシュレッドする、または置き換えることにより、例えば、動作360における通信が誤って、または設計上の欠陥により開いたままになっている場合であっても、追加のセキュリティを提供することができる。不正動作を行おうとする宛先ノードは、セキュアトランスコーダが暗号化データを復号化するための正しい鍵を有していない場合、セキュアトランスコーダから使用可能なデータを受信することはない。当業者であれば本開示を読めば明らかなように、セキュアトランスコーダ320は、鍵をシュレッドした後に共有期間を継続または再開するために、ソースノード302もしくは宛先ノード306またはその両方と再交渉することを必要としてもよい。この「キーローテーション(key rotation)」は、ストレージに保存されたデータのすべてを再暗号化する必要なく、システムに追加のセキュリティ機能を提供することができる。例えば、従来のシステムでは、トランスコーダが鍵を紛失した場合、1つのアプローチとして、ストレージ内のすべてのデータを再暗号化することが行われるが、これは、上述の再交渉プロセスと比較して、比較的長い時間がかかる場合がある。
データの単位Pを保存する前に、宛先ノード306は、宛先ノードk1暗号化/復号化機能342によって、第1の鍵k1(310)を使用して、データPをC1=encrypt(k1,P)として暗号化する。宛先ノード306はさらに、宛先ノードk3暗号化/復号化機能344によって、第3の鍵k3(328)を使用して、この得られたC1をC3=encrypt(k3,C1)として暗号化する。データ(C2)に対する書き込み要求が、動作360にてセキュアトランスコーダ320に送信される。書き込み要求が共有ポリシーによって許可される場合、セキュアトランスコーダ320は書き込み要求を受け付ける。上述したように、データはC3=encrypt(k3,C1)として暗号化されている。書き込みデータは、セキュアトランスコーダk3暗号化/復号化機能332によって、第3の鍵k3(328)を使用して、C1=decrypt(k3,C3)として復号化される。この書き込みデータは、動作366にて、セキュアトランスコーダk2暗号化/復号化機能330に送信される。動作366における書き込みデータは、C1=encrypt(k1,P)として依然として暗号化されている。第1の鍵k1(310)は、セキュアトランスコーダ320には利用できない。したがって、セキュアトランスコーダ320は、宛先ノード306によって保存された書き込みデータを復号化することはできない。セキュアトランスコーダk2暗号化/復号化機能330はさらに、第2の鍵k2(312)を使用して、この書き込みデータをC2=encrypt(k2,C1)として暗号化する。この(例えば、第1の鍵k1(310)および第2の鍵k2(312)で)暗号化されたデータは、動作362にてストレージ304に送信される。ソースノード302は、本開示の内容から当業者には明らかな適切な鍵を使用して、それぞれソースノードk2暗号化/復号化機能318およびソースノードk1暗号化/復号化機能316によって、C1=decrypt(k2,C2)およびP=decrypt(k1,C2)としてデータを復号化することができる。
一の代替的なアプローチにおいて、データはソースノード302によって第4の鍵(不図示)で暗号化されてもよい。そして、第4の鍵は上述の様々な実施形態に従って暗号化されてもよい。したがって、第4の鍵は暗号化対象のデータである。このアプローチでは、データの代わりに鍵がトランスコードされるので、比較的効率的なトランスコードとなる。例えば、データのブロックの長さが4kBで、鍵の長さが32Bの場合がある。このようなキーをトランスコードする場合、データブロックのトランスコードに比べて約128倍効率的である。このアプローチでは、第4の鍵の暗号化後に、データ(例えば、暗号化された鍵)を動作346にてストレージ304に送信してもよく、それによってソースノードk1暗号化/復号化機能316およびソースノードk2暗号化/復号化機能318をバイパスしてもよい。トランスコードする場合、データ(例えば、暗号化された鍵)を動作368にて宛先ノードに送信してもよく、それによってセキュアトランスコーダk2暗号化/復号化機能330およびセキュアトランスコーダk3暗号化/復号化機能332をバイパスしてもよい。
他のアプローチにおいて、セキュアトランスコーダ320から分離する必要のある付加情報を使用して、暗号化を行ってもよい。例えば、初期化ベクトル(IV)を暗号化に使用してもよい。IVは、当業者であれば理解できるように、データ暗号化のための秘密鍵とともに使用され、一度だけ使用される任意の数値を指すことができる。第1の鍵による暗号化にIVを使用することで、IVが第2の鍵による暗号化にさらされることを回避できる。IV情報は、本開示を読めば当業者には明らかなように、IVの実装形態に応じて追加のセキュリティを提供するために、変換対称性(translation symmetry)を破るために有利に使用することができる。例えば、AES-XTSでは、IVはアドレスの対称性を破るアドレスである。IVがデータ内容に基づく場合、変換対称性は維持される。好ましい実施形態において、IV情報は宛先ノード306と共有されるが、セキュアトランスコーダ320とは共有されない。IVは、本明細書で説明するアーキテクチャのセキュリティを弱体化することなく、第1の鍵による暗号化にIVが使用されるか否かにかかわらず、第2の鍵による暗号化に使用してもよい。本開示を読めば当業者には明らかなように、第2の鍵による暗号化のためのIVをセキュアトランスコーダ320が知る必要がある場合、IVを導出するための情報は、セキュアトランスコーダ320とソースノード302との間で安全な接続を確立する交渉の一部であってもよい。
チャンクごとに鍵を使用する安全な重複排除(deduplication)システムにおいて、データのプレーンテキストチャンクに対してフィンガープリント(fingerprint)を計算してもよく、データチャンクはチャンク固有の鍵で暗号化される(例えば、各データチャンクは上述した第4の鍵などの固有のデータチャンク鍵で暗号化される)。フィンガープリントは第5の鍵(例えば、フィンガープリント鍵)で暗号化され、重複排除ストレージシステムが特定のフィンガープリントを特定のプレーンテキストに結びつけることができないようにする。本明細書に記載の様々な実施形態に従ってトランスコードするために、データチャンク鍵は、第1の鍵および第2の鍵でソースノードによって暗号化されるデータとすることができる。フィンガープリントを暗号化するための第1の鍵および第2の鍵は、データチャンク鍵を暗号化するための第1の鍵および第2の鍵とは異なっていてもよい。フィンガープリントおよびチャンク鍵の異なるデータセットは、宛先ノードで使用するために安全にトランスコードされる。一般的に、本開示全体を通して、セキュアトランスコーダを使用してソースノードおよび宛先ノード間で安全に共有されるデータ、鍵、メタデータなどをトランスコードするための複数の第1の鍵および複数の第2の鍵が存在してもよい。
さらに別のアプローチでは、セキュア重複排除システムにおいて、一の鍵グループに属する第2の鍵のセットが存在し、この鍵グループは、第1の鍵、フィンガープリント鍵、および重複排除(dedup)鍵を含む。このアプローチでは、ストレージシステムは重複排除されたデータを、重複排除鍵で復号化できないように保存してもよい。上記で詳述した様々な実施形態の少なくとも一部を実行するように構成されたものなどのセキュアトランスコーダを使用して、データを、第2の鍵のうちの1つから鍵グループの重複排除鍵に、または鍵グループの重複排除鍵から第2の鍵のうちの1つにトランスコードしてもよい。
別の実施形態において、鍵グループは、1つの共通の第1の鍵の代わりに、第1の鍵のセットを含んでもよい。本開示を読めば当業者には明らかなように、このアプローチでは、各第2の鍵と重複排除鍵とに対して、それぞれ第1の鍵が存在することが好ましい。
図4は、様々な構成に従った概略的アーキテクチャ図である。アーキテクチャ400は、特に図1~3および図5A~7に示した環境のいずれかにおいて様々な構成で、本発明の好ましい一実施形態に従って実装することができる。もちろん、本明細書の記載を読めば当業者には理解できるように、図4に具体的に記載した要素よりも多いまたは少ない要素がアーキテクチャ400に含まれてもよい。
アーキテクチャ400は、図3に示した態様の少なくとも一部の変形である。したがって、共通の特徴には共通の番号が付されている。アーキテクチャ400はその概略的アーキテクチャとして、ソースノード302、ストレージ304、および宛先ノード306を含む。ソースノード302は、ソースノード計算リソース308、第1の鍵k1(310)、および第2の鍵k2(312)を含む。ソースノード302は、ソースノードマネージャ機能314、ソースノードk1暗号化/復号化機能316、およびソースノードk2暗号化/復号化機能318を含む。本開示を読めば当業者には理解できるように、本明細書で説明する暗号化/復号化機能は、関連する鍵を使用してデータを暗号化もしくは復号化またはその両方を行うことができる。
アーキテクチャ400は、セキュアトランスコーダ320を含む。セキュアトランスコーダ320は、セキュアトランスコーダマネージャ機能322と、第2の鍵k2(312)用のセキュア鍵ストレージ324とを含む。セキュアトランスコーダ320は、少なくともいくつかのアプローチにおいて、鍵生成器326を含んでもよい。セキュアトランスコーダ320は第3の鍵k3(328)を含む。様々なアプローチにおいて、鍵生成器326は第3の鍵k3(328)を生成する。他のアプローチでは、本明細書に記載のいずれかの鍵が、当該技術分野で公知の鍵生成器もしくは鍵マネージャ(不図示)またはその両方によって生成もしくは管理またはその両方が行われてもよい。セキュアトランスコーダ320は、セキュアトランスコーダk2暗号化/復号化機能330およびセキュアトランスコーダk3暗号化/復号化機能332を含む。
セキュアトランスコーダ320は、共有動作を実行するように設計されてもよい。共有動作の各々は、別々のポリシーによって定義されることが好ましい。トランスコーダは、複数の鍵ストレージもしくは複数のセキュアトランスコーダ暗号化/復号化機能またはその両方を有してもよい。これらの追加のポリシー(および関連するコンポーネント)によって、各共有ポリシーに対して追加のセキュリティが提供される(例えば、各共有ポリシーは、同じデータにアクセスする可能性があるとしても、それぞれ別個の固有の第3の鍵を有してもよい)。
宛先ノード306は、宛先ノード計算リソース334、第1の鍵k1(310)用の鍵ストレージ336、および第3の鍵k3(328)用の鍵ストレージ338を含む。宛先ノード306は、宛先ノードマネージャ機能340を含む。宛先ノード306は、宛先ノードk1暗号化/復号化機能342および宛先ノードk3暗号化/復号化機能344を含む。
図4のアーキテクチャ400は、(例えば、図3の好ましい実施形態において例示し説明したような)データの二重暗号化が行われないシステムの例示的な実装形態を示している。ここで、ソースノード302は、第1の鍵k1(310)で暗号化することなく、かつ第2の鍵k2(312)で暗号化することなく、データをストレージ304に保存する。セキュアトランスコーダ320は、ストレージ304と通信しない。一方で、ソースノード302は、ストレージ304からすべてのデータを読み出す。ソースノード302は、第1の鍵k1(310)および第2の鍵k2(312)を生成する。セキュアトランスコーダマネージャ機能322は、すべての読み出し要求および書き込み要求をソースノード302のソースノードマネージャ機能314に渡す。
読み出し要求の場合、ソースノードk1暗号化/復号化機能316は、第1の鍵k1(310)を使用してデータを暗号化し、第1の暗号化データを取得する。ソースノードk2暗号化/復号化機能318は、第2の鍵k2(312)を使用してこの暗号化データを暗号化し、第2の暗号化データを取得する。第2の暗号化データは、動作350にて、セキュアトランスコーダマネージャ機能322に送信され、第2の暗号化データは、図3を参照して詳述したようにトランスコードされる。書き込み要求の場合、データは本明細書で説明するように復号化され、平文としてストレージ304に書き戻される。
様々なアプローチにおいて、すべてのデータを二重に暗号化することに移行したい顧客のために、書き込み要求を二重に暗号化された状態で書き込んでもよい。この場合、データの暗号化ステータスを示すために、当該技術分野で公知の任意の方法によって、メタデータがブロックおよびファイルシステムに保存される。すべての新しいデータは二重に保護され(例えば、二重に暗号化され)、すべての「古い」データは、完全に参照された後に二重に保護される。このようにして、システムはファイルの状態を追跡しながら、選択した保護レベルに達したファイルについてのバックグラウンドタスクに残りのデータを参照させることができ、それによって残りのデータが完全に保護される(例えば、二重に暗号化される)。
別の実施形態において、(図3に示すように)セキュアトランスコーダ320がストレージ304にアクセスできる場合、セキュアトランスコーダ320は、ファイルの暗号化状態を特定するためのファイルメタデータを参照できるように変更されてもよい。ファイルが保護されている(例えば、二重に暗号化されている)場合、セキュアトランスコーダ320は、(図3のように)上述同様にファイルを直接読み出してもよいし、そうではない場合、ソースノードマネージャ機能314にデータを求めてもよい。この実施形態に関連するセキュリティは、上述した図3のセキュリティ(例えば、セキュアトランスコーダ320がソースノードマネージャ機能314にすべてのデータを要求する)よりも望ましくない。ストレージ304上で暗号化されていないデータを許可することは、宛先ノード306が保存データにアクセスできない場合に最も安全である。
図5A~5Dは、様々な構成に従った概略的アーキテクチャ図である。アーキテクチャ500は、特に図1~3および図6~7に示した環境のいずれかにおいて様々な構成で、本発明の好ましい一実施形態に従って実装することができる。もちろん、本明細書の記載を読めば当業者には理解できるように、図5A~5Dに具体的に記載した要素よりも多いまたは少ない要素がアーキテクチャ500に含まれてもよい。
各アーキテクチャ500は、ソースノード302(図3~4を参照して説明したもの)、ストレージ304(図3~4を参照して説明したもの)、宛先ノード306(図3~4を参照して説明したもの)、およびセキュアトランスコーダ320(図3~4を参照して説明したもの)を含む。図示するように、セキュアトランスコーダ320は、システム内の任意の場所に配置してもよい。例えば、図5Aに示すように、セキュアトランスコーダ320はソースノード302の一部であってもよい。この構成は、中央処理装置(CPU)複合体、IOハブ、ブリッジ、CPU自体、ネットワークインタフェースカード(例えば、スマートNIC)などのいずれに設けられてもよい。
図5Bに示すように、セキュアトランスコーダ320は、ソースノード302、ストレージ304、および宛先ノード306に結合されたストレージネットワーク内に配置されてもよい。この構成は、スイッチ、エッジアプリケーション、ゲートウェイなどのいずれに設けられてもよい。
図5Cに示すように、セキュアトランスコーダ320は、ストレージ304の一部であってもよい。セキュアトランスコーダ320は、ストレージ、ストレージコントローラ、ホストバスアダプタ内、スマートNIC内などに直接統合されてもよい。
図5Dに示すように、セキュアトランスコーダ320は、宛先ノード306の一部であってもよい。この構成は、CPU複合体、IOハブ、ブリッジ、CPU自体、スマートNICなどのいずれに設けられてもよい。
様々なアプローチにおいて、特定の動作に最適なトランスコード場所を使用して共有を設定できるようにするために、複数の場所の各々(例えば、図5A~5Dなどに示した4つの場所すべて)にセキュアトランスコーダを設けることが有益である。例えば、ソースノードでのトランスコードは、ソースに直接接続されたストレージにとって有益である。別の例では、当業者であれば理解できるように、ストレージでのトランスコードは、スケーリングおよびネットワーク利用にとって有益である。いくつかの場合、第1の共有の宛先ノードが、第2の共有のソースノードとなる場合があり、各ソースノードおよび各宛先ノードにおいてトランスコード機能を有することが有利である。セキュリティの観点からは、図3に示す共有のトランスコード場所として、本明細書で説明するトランスコード機能を宛先ノードにおいて使用することは(宛先ノードにトランスコード機能があったとしても)好ましくない場合がある。この場合、第1の鍵と第2の鍵の両方が宛先ノードに存在することになる。本開示を読めば当業者には明らかなように、すべてのノード(例えば、ソースノード、ストレージ、および宛先ノード)がそれぞれトランスコード機能を有する場合、最も強固なセキュリティを得るために、好ましい実施形態においては、データにアクセスするためのプロトコルは宛先ノードのトランスコーダを利用しない。
強固なセキュリティを得るために、第1の鍵と第2の鍵をデータ分離(data isolation)のためのペアとして扱うことが有益である。例えば、第1の鍵で暗号化された情報のセットは、第2の鍵で暗号化された情報のセットと同じとすべきである。複数の第2の鍵が1つの共通の第1の鍵を使用する場合、鍵の境界を越えてデータが移動され、データが漏洩にさらされる可能性がある。
好ましい実施形態において、図3~図5Dに示したすべての矢印、および本明細書に記載のコンポーネント間のいかなる通信も、当該技術分野で公知の通信暗号化のための追加のプロトコルを含むことができる。例えば、本開示を読めば当業者には明らかなように、通信暗号化プロトコルであるセキュアソケットレイヤ(SSL)やトランスポートレイヤセキュリティ(TLS)などのプロトコルを使用して、ソースノードと宛先ノードとの間、ソースノードとセキュアトランスコーダとの間、およびセキュアトランスコーダと宛先ノードとの間などで鍵を転送してもよい。
次に、図6は、一実施形態に係る方法600のフローチャートである。方法600は、特に図1~5Dおよび図7に示した環境のいずれかにおいて様々な態様で、本発明の好ましい一実施形態に従って実行することができる。もちろん、本明細書の記載を読めば当業者には理解できるように、図6に具体的に記載した動作よりも多いまたは少ない動作が方法600に含まれてもよい。
方法600の各ステップは、動作環境におけるいずれの適切なコンポーネントによって実行されてもよい。例えば、様々な実施形態において、方法600は、部分的または全体的に、コンピュータ、または1つ以上のプロセッサを有する何らかの他のデバイスによって実行されてもよい。プロセッサ(例えば、ハードウェアもしくはソフトウェアまたはその両方において実装された処理回路、チップもしくはモジュールまたはその組み合わせであって、好ましくは少なくとも1つのハードウェアコンポーネントを有するもの)を任意のデバイスにおいて利用して、方法600の1つ以上のステップを実行してもよい。プロセッサの例としては、特に限定されないが、中央処理装置(CPU)、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)などやそれらの組み合わせ、またな当技術分野で公知の任意の他の適切なコンピューティングデバイスが挙げられる。
図6に示すように、方法600は動作602を含む。動作602は、トランスコーダによって、第2の暗号化データを受信することを含む。第2の暗号化データは、データを第1の鍵で暗号化して第1の暗号化データを作成し、これを第2の鍵で暗号化して第2の暗号化データとしたものである。好ましい一実施形態において、データを第1の暗号化データに暗号化することと、次いで第1の暗号化データを第2の暗号化データに暗号化することとは、ソースノードで行われる。ソースノードは、第1の鍵および第2の鍵を含む。
1つのアプローチでは、第2の暗号化データは、トランスコーダからストレージへのデータ要求に少なくとも部分的に基づいて受信される。宛先ノードからデータ要求を受信したこと応答して、トランスコーダはストレージに直接データ要求を送信してもよい。ストレージは、1つのアプローチでは、データ要求に応答して、第2の暗号化データをトランスコーダに直接送信してもよい。例えば、ソースノードが第2の暗号化データをストレージに保存する前に、ソースノードにおいてデータを第1の鍵で暗号化して第1の暗号化データを作成し、これを第2の鍵で暗号化して第2の暗号化データを作成してもよい。ストレージは、トランスコーダからのデータ要求に応答して、第2の暗号化データをトランスコーダに送信してもよい。
別のアプローチでは、第2の暗号化データは、トランスコーダからソースノードへのデータ要求に少なくとも部分的に基づいて受信される。宛先ノードからデータ要求を受信したことに応答して、トランスコーダはソースノードにデータ要求を送信してもよい。ソースノードは、第2の暗号化データをストレージに保存してもよい。そして、ソースノードは、(ストレージに以前に保存した)第2の暗号化データをトランスコーダに送信してもよい。
さらに別のアプローチでは、ソースノードはデータを暗号化せずにストレージに保存してもよい。トランスコーダからデータ要求を受信したことに応答して、ソースノードはストレージから暗号化されていないデータを取り出し、この暗号化されていないデータを第1の鍵で暗号化して第1の暗号化データを作成し、この第1の暗号化データを第2の鍵で暗号化して第2の暗号化データを作成し、トランスコーダからソースノードへのデータ要求に応答して、これをトランスコーダに送信してもよい。
様々な実施形態において、第2の暗号化データは、少なくとも一の宛先ノードからのデータ要求に基づいて、ストレージやソースノードなどからトランスコーダにて受信される。トランスコーダを介してソースノードにデータを要求する宛先ノードはいくつであってもよい。いくつかのアプローチでは、トランスコーダは、ソースノード、宛先ノード、ストレージ、トランスコーダなどの間での共有ポリシー情報に従って、宛先ノードからのデータ要求に応答して、第2の暗号化データを受信してもよい。共有ポリシー情報は、どのエンティティ間でどのデータを共有可能とするか、エンティティ間の共有期間の長さ、エンティティ間の共有期間に関連付けられる動作の数、エンティティ間で共有期間ごとに共有可能なデータ量などを含んでもよい。様々なアプローチにおいて、共有ポリシー情報は、共有期間の終了タイミングを決定する。様々な実施形態において、共有期間はポリシーに従って、少なくとも1つの鍵がシュレッドされたことに応答して、ソースノードからの共有期間終了の要求に応答して、電源オフイベントに応答して、他の任意のトリガーイベントなどに応答してなど、またはそれらの組み合わせに応答して終了することができる。
少なくともいくつかのアプローチでは、ソースノードがストレージにデータを保存する。データは、暗号化されていないデータ、第2の暗号化データ、別の鍵で暗号化されたデータ(例えば、第1の鍵、次いで第2の鍵による暗号化の前に、第1の鍵または第2の鍵以外の鍵で暗号化されたデータ)などであってもよい。好ましい実施形態において、ソースノードは、第1の鍵および第2の鍵を含む。いくつかのアプローチでは、第1の暗号化データを作成するためのデータの暗号化、次いで第2の暗号化データを作成するための第1の暗号化データの暗号化は、ソースノードの少なくとも1つの暗号化/復号化機能によって実行されてもよい。他のアプローチでは、本開示の内容から当業者には理解できるように、各鍵は、ソースノードに配置された個別の暗号化/復号化機能に関連付けられてもよい。
動作604は、トランスコーダによって第2の鍵を受信することを含む。様々なアプローチにおいて、第2の鍵はソースノードから受信される。様々なアプローチにおいて、ソースノードはトランスコーダに第2の鍵のコピーを送信し、トランスコーダは、共有ポリシー情報によって定義される期間、動作回数などにわたって、第2の鍵をセキュアに保存する。少なくともいくつかの実施形態において、(例えば、共有ポリシーによる決定や、ソースノードからの要求などにより)共有期間が終了したことに応答して、トランスコーダは、本開示を読めば当業者には明らかな方法で、第2の鍵をシュレッドし、もしくは第2の鍵をダミー鍵に置き換え、またはその両方を行ってもよい。ダミー鍵は、当該技術分野で公知のいずれの種類であってもよい。
他のアプローチでは、第2の鍵は鍵マネージャから受信されてもよい。鍵マネージャは、ソースノードと宛先ノードとの間でデータを共有するための鍵を提供、生成、管理などするために、ソースノード、宛先ノード、もしくはネットワーク内の任意の他のコンポーネントまたはその組み合わせに結合されてもよい。
動作606は、トランスコーダによって、第2の鍵を使用して第2の暗号化データを復号化し、第1の暗号化データを取得することを含む。上述したように、第2の暗号化データは、データを第1の鍵で暗号化して第1の暗号化データを作成し、これを第2の鍵で暗号化して第2の暗号化データとしたものである。動作606によれば、トランスコーダは、トランスコーダにおいて暗号化/復号化機能と、第2の鍵(いくつかのアプローチでは、ソースノードから送信される)とを使用して、第1の暗号化データを取得してもよい。トランスコーダは、(例えば、第1の暗号化データを復号化してデータを取得するための)第1の鍵へのアクセスを有さず、平文のデータ(または、別の鍵で暗号化された形態の元のデータ)を取得できないことが好ましい。
動作608は、トランスコーダによって、第3の鍵を使用して第1の暗号化データを暗号化し、第3の暗号化データを作成することを含む。第1の暗号化データ(例えば、第1の鍵でのみ暗号化されている)を、トランスコーダ上の暗号化/復号化機能によって新たな第3の鍵で暗号化して、第3の暗号化データを作成してもよい。暗号化/復号化機能は、動作606の暗号化/復号化機能と同じであってもよいし、異なっていてもよい(例えば、動作606とは別個の、第3の鍵専用の機能などであってもよい)。少なくともいくつかのアプローチにおいて、第3の鍵は、トランスコーダ上の鍵生成器によってトランスコーダが生成してもよい。他のアプローチにおいて、ソースノード、トランスコーダ、宛先ノードなどに結合された鍵マネージャもしくは鍵生成器またはその両方によって、任意の鍵を生成もしくは管理またはその両方を行ってもよい。
様々なアプローチにおいて、方法600は、トランスコーダによって、第3の鍵を宛先ノードに送信することを含む。好ましいアプローチにおいて、第3の鍵を受信する宛先ノードは、データ要求を発信した宛先ノードである。様々なアプローチにおいて、トランスコーダは第3の鍵のコピーを宛先ノードに送信し、宛先ノードは、共有ポリシー情報の定義に従って、もしくは本開示を読めば当業者には明らかな任意の方法で、またはその両方によって、データをある期間や動作回数などにわたってセキュアに保存する。好ましい実施形態において、(例えば、共有ポリシーによる決定や、ソースノードからの要求などにより)共有期間が終了したことに応答して、トランスコーダは、本開示を読めば当業者には明らかな任意の方法で、ソースノードと宛先ノードとの間のデータ共有を終了させるために第3の鍵をシュレッドし、もしくは第3の鍵をダミー鍵に置き換え、またはその両方を行う。ダミー鍵は、当該技術分野で公知のいずれの種類であってもよい。
他のアプローチにおいて、第3の鍵は、鍵マネージャから宛先ノードに送信されてもよい。鍵マネージャは、ソースノードと宛先ノードとの間でデータを共有するための鍵を提供、生成、管理などするために、ソースノード、宛先ノード、もしくはネットワーク内の任意の他のコンポーネントまたはその組み合わせに結合されてもよい。
動作610は、トランスコーダによって、第3の暗号化データを宛先ノードに送信することを含む。第3の暗号化データは、上述したように、第1の暗号化データ(例えば、第1の鍵で暗号化されたデータ)を第3の鍵で暗号化し、第3の暗号化データとしたものである。様々なアプローチにおいて、宛先ノードは、ソースノードから直接第1の鍵を受信している。宛先ノードは、様々なアプローチにおいて、宛先ノード上の暗号化/復号化機能によって、第3の鍵を使用して第3の暗号化データを復号化し、第1の暗号化データを取得するように構成されている。宛先ノードは、宛先ノード上の暗号化/復号化機能(第3の暗号化データを復号化して第1の暗号化データを取得するための暗号化/復号化機能と同じであってもよいし、異なっていてもよい)によって、第1の鍵を使用して第1の暗号化データを復号化し、データを取得するように構成されている。上述したように、データは、平文のデータ、暗号化されていないデータ、プレーンテキストデータ、別の鍵で暗号化された形態のデータなどであってもよい。
一実施形態において、データ(例えば、暗号化されていないデータ)は複数のデータチャンクを含み、各データチャンクは第4の鍵で暗号化される。第4の鍵を第1の鍵で暗号化して第1の暗号化第4の鍵を作成し、これを第2の鍵で暗号化して第2の暗号化第4の鍵を作成してもよい。本開示を読めば当業者には明らかなように、少なくともいくつかのアプローチにおいて、各データチャンクは異なる第4の鍵に関連付けられてもよい。上述した実施形態において、トランスコーダは、動作602および604でそれぞれ説明したのと同様の方法で、第2の暗号化第4の鍵および第2の鍵を受信してもよい。トランスコーダは、動作606で説明したのと同様の方法で、第2の鍵を使用して第2の暗号化第4の鍵を復号化し、第1の暗号化第4の鍵(例えば、この時点では第1の鍵でのみ暗号化されている)を取得してもよい。トランスコーダは、動作608で説明したのと同様の方法で、第3の鍵を使用して第1の暗号化第4の鍵を暗号化し、第3の暗号化第4の鍵を作成してもよい。トランスコーダは、第3の鍵および第3の暗号化第4の鍵(例えば、第4の鍵を第1の鍵で暗号化して第1の暗号化第4の鍵とし、これを第3の鍵で暗号化して第3の暗号化第4の鍵としたもの)を宛先ノードに送信してもよい(例えば、方法600で説明した動作610と同様)。そして、宛先ノードは(様々なアプローチにおいてトランスコーダまたは鍵マネージャから受信した)第3の鍵を使用して第3の暗号化第4の鍵を復号化し、第1の暗号化第4の鍵を取得するよう構成されてもよい。宛先ノードは次に、様々なアプローチにおいてソースノードまたは鍵マネージャから受信する第1の鍵を使用して、第1の暗号化第4の鍵を復号化し、第4の鍵を取得してもよい。そして、第4の鍵を使用して、第4の鍵で暗号化され宛先ノードに送信されたデータチャンクを復号化することができる。宛先ノードが要求するデータブロックよりも鍵の長さが比較的短い場合、データではなく鍵をトランスコードする方が効率的な場合がある。
いくつかのアプローチによれば、データ(例えば、暗号化されていないデータ)は複数のデータチャンクを含み、各データチャンクは自身に関連付けられたフィンガープリントもしくは自身の計算されたフィンガープリントまたはその両方を有する。各フィンガープリントは、SHA-256または当技術分野で公知の他のセキュアなハッシュアルゴリズムを使用して計算してもよい。フィンガープリントは、本明細書に記載の実施形態の少なくともいくつかにおいて、二重に暗号化されてもよい。暗号化されたフィンガープリントは、フィンガープリントデータが宛先ノードでの使用を目的にセキュアにトランスコーダされるように、チャンクごとに鍵を使用するセキュアな重複排除において使用されてもよい。暗号化されたフィンガープリントは、重複排除の機会(dedup opportunities)を決定するため、エンドツーエンドの整合性チェック(integrity check)として、追加のデータプライバシーを提供するため、などに使用されてもよい。本明細書に記載する動作の少なくともいくつかに従って、データ、フィンガープリント、メタデータなどをセキュアに共有するためにトランスコードするための鍵の数は、いくつであってもよい。上述の態様の好ましいアプローチにおいて、各データチャンクは、他のデータチャンクと比較して少なくとも1つの固有鍵に関連付けられる(例えば、当該鍵によって暗号化/復号化される)。様々なアプローチにおいて、データもしくは各フィンガープリントまたはその両方の各データチャンクは、それ自身の第1の鍵、第2の鍵、または第1および第2の鍵に関連付けられてもよい。このようにして、本開示の少なくともいくつかの実施形態では、宛先ノードに向かう各データチャンクの少なくとも1つの鍵を変更することにより、前方秘匿性(forward secrecy)を提供することができる。宛先ノードは、そのデータチャンクを(該当する場合、トランスコードした後に)平文で有するが、ソースノードは、各データチャンクの鍵を変更することにより、宛先ノードが受信するデータ量を定義することができる。
次に、図7は、一実施形態に係る方法700のフローチャートである。方法700は、特に図1~6および図7に示した環境のいずれかにおいて様々な態様で、本発明の好ましい一実施形態に従って実行することができる。もちろん、本明細書の記載を読めば当業者には理解できるように、図7に具体的に記載した動作よりも多いまたは少ない動作が方法700に含まれてもよい。
方法700の各ステップは、動作環境におけるいずれの適切なコンポーネントによって実行されてもよい。例えば、様々な実施形態において、方法700は、部分的または全体的に、コンピュータ、または1つ以上のプロセッサを有する何らかの他のデバイスによって実行されてもよい。プロセッサ(例えば、ハードウェアもしくはソフトウェアまたはその両方において実装された処理回路、チップもしくはモジュールまたはその組み合わせであって、好ましくは少なくとも1つのハードウェアコンポーネントを有するもの)を任意のデバイスにおいて利用して、方法700の1つ以上のステップを実行してもよい。プロセッサの例としては、特に限定されないが、中央処理装置(CPU)、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)などやそれらの組み合わせ、またな当技術分野で公知の任意の他の適切なコンピューティングデバイスが挙げられる。
図7に示すように、方法700は動作702を含む。動作702は、トランスコーダによって、第2の暗号化された鍵を受信することを含む。第2の暗号化された鍵は、鍵を第1の鍵で暗号化して第1の暗号化された鍵を作成し、これを第2の鍵で暗号化して第2の暗号化された鍵としたものである。好ましい実施形態において、鍵を第1の暗号化された鍵に暗号化することと、次いで第1の暗号化された鍵を第2の暗号化された鍵に暗号化することとは、ソースノードで行われる。ソースノードは、第1の鍵および第2の鍵を含む。
動作704は、トランスコーダによって第2の鍵を受信することを含む。様々アプローチにおいて、第2の鍵はソースノードから受信される。様々なアプローチにおいて、ソースノードはトランスコーダに第2の鍵のコピーを送信し、トランスコーダは、共有ポリシー情報によって定義される期間、動作回数などにわたって、第2の鍵をセキュアに保存する。少なくともいくつかの実施形態において、(例えば、共有ポリシーによる決定や、ソースノードからの要求などにより)共有期間が終了したことに応答して、トランスコーダは、本開示を読めば当業者には明らかなように、第2の鍵をシュレッドし、もしくは第2の鍵をダミー鍵に置き換え、またはその両方を行ってもよい。ダミー鍵は、当該技術分野で公知のいずれの種類であってもよい。
他のアプローチでは、第2の鍵は鍵マネージャから受信されてもよい。鍵マネージャは、ソースノードと宛先ノードとの間でデータを共有するための鍵を提供、生成、管理などするために、ソースノード、宛先ノード、もしくはネットワーク内の任意の他のコンポーネントまたはその組み合わせに結合されてもよい。
動作706は、トランスコーダによって、第2の鍵を使用して第2の暗号化された鍵を復号化し、第1の暗号化された鍵を取得することを含む。上述したように、第2の暗号化された鍵は、鍵を第1の鍵で暗号化して第1の暗号化された鍵を作成し、これを第2の鍵で暗号化して第2の暗号化された鍵としたものである。動作706によれば、トランスコーダは、トランスコーダにおいて暗号化/復号化機能と、第2の鍵(いくつかのアプローチでは、ソースノードから送信される)とを使用して、第1の暗号化された鍵を取得してもよい。トランスコーダは、(例えば、第1の暗号化された鍵を復号化して鍵を取得するための)第1の鍵へのアクセスを有さず、平文の鍵を取得できないことが好ましい。
動作708は、トランスコーダによって、第3の鍵を使用して第1の暗号化された鍵を暗号化し、第3の暗号化された鍵を作成することを含む。第1の暗号化された鍵(例えば、第1の鍵でのみ暗号化されている)を、トランスコーダ上の暗号化/復号化機能によって新たな第3の鍵で暗号化して、第3の暗号化された鍵を作成してもよい。暗号化/復号化機能は、動作706の暗号化/復号化機能と同じであってもよいし、異なっていてもよい(例えば、動作706とは別個の、第3の鍵専用の機能などであってもよい)。少なくともいくつかのアプローチにおいて、第3の鍵は、トランスコーダ上の鍵生成器によってトランスコーダが生成してもよい。他のアプローチにおいて、ソースノード、トランスコーダ、宛先ノードなどに結合された鍵マネージャもしくは鍵生成器またはその両方によって、任意の鍵を生成もしくは管理またはその両方を行ってもよい。
少なくともいくつかのアプローチにおいて、方法700は、トランスコーダによって、第3の鍵を宛先ノードに送信することを含む。様々なアプローチにおいて、トランスコーダは第3の鍵のコピーを宛先ノードに送信し、宛先ノードは、共有ポリシー情報で定義される期間や動作回数などにわたってデータをセキュアに保存する。好ましい実施形態において、(例えば、共有ポリシーによる決定や、ソースノードからの要求などにより)共有期間が終了したことに応答して、トランスコーダは、本開示を読めば当業者には明らかな任意の方法で、ソースノードと宛先ノードとの間のデータ共有を終了させるために第3の鍵をシュレッドし、もしくは第3の鍵をダミー鍵に置き換え、またはその両方を行う。ダミー鍵は、当該技術分野で公知のいずれの種類であってもよい。
他のアプローチにおいて、第3の鍵は、鍵マネージャから宛先ノードに送信されてもよい。鍵マネージャは、ソースノードと宛先ノードとの間でデータを共有するための鍵を提供、生成、管理などするために、ソースノード、宛先ノード、もしくはネットワーク内の任意の他のコンポーネントまたはその組み合わせに結合されてもよい。
動作710は、トランスコーダによって、第3の暗号化された鍵を宛先ノードに送信することを含む。第3の暗号化された鍵は、上述したように、第1の暗号化された鍵(例えば、第1の鍵で暗号化された鍵)を第3の鍵で暗号化し、第3の暗号化された鍵としたものである。様々なアプローチにおいて、宛先ノードは、ソースノードから直接第1の鍵を受信している。宛先ノードは、様々なアプローチにおいて、宛先ノード上の暗号化/復号化機能によって、第3の鍵を使用して第3の暗号化された鍵を復号化し、第1の暗号化された鍵を取得するように構成されている。宛先ノードは、宛先ノード上の暗号化/復号化機能(第3の暗号化された鍵を復号化して第1の暗号化された鍵を取得するための暗号化/復号化機能と同じであってもよいし、異なっていてもよい)によって、第1の鍵を使用して第1の暗号化された鍵を復号化し、鍵を取得するように構成されている。上述したように、鍵は、平文の鍵や暗号化されていない鍵などであってもよい。
様々なアプローチにおいて、宛先ノードは、鍵(例えば、暗号化されていない鍵)を使用して、ソースノードからのデータを復号化してもよい。例えば、この暗号化されていない鍵は、図6の方法600で説明した動作の少なくともいくつかにおける第1の鍵であってもよい。
本発明は、好ましい実施形態に従って、任意の可能な技術詳細レベルで統合されたシステム、方法もしくはコンピュータプログラム製品またはそれらの組み合わせとすることができる。コンピュータプログラム製品は、プロセッサに本発明の態様を実行させるためのコンピュータ可読プログラム命令を記憶したコンピュータ可読記憶媒体を含んでもよい。
コンピュータ可読記憶媒体は、命令実行デバイスによって使用される命令を保持し、記憶することができる有形のデバイスとすることができる。コンピュータ可読記憶媒体は、一例として、電子ストレージデバイス、磁気ストレージデバイス、光ストレージデバイス、電磁ストレージデバイス、半導体ストレージデバイスまたはこれらの適切な組み合わせであってもよい。コンピュータ可読記憶媒体のより具体的な一例としては、ポータブルコンピュータディスケット、ハードディスク、RAM、ROM、EPROM(またはフラッシュメモリ)、SRAM、CD-ROM、DVD、メモリスティック、フロッピーディスク、パンチカードまたは溝内の隆起構造などに命令を記録した機械的に符号化されたデバイス、およびこれらの適切な組み合せが挙げられる。本明細書で使用されるコンピュータ可読記憶媒体は、電波もしくは他の自由に伝播する電磁波、導波管もしくは他の伝送媒体を介して伝播する電磁波(例えば、光ファイバケーブルを通過する光パルス)、またはワイヤを介して送信される電気信号のような、一過性の信号それ自体として解釈されるべきではない。
本明細書に記載のコンピュータ可読プログラム命令は、コンピュータ可読記憶媒体からそれぞれのコンピューティングデバイス/処理デバイスへダウンロード可能である。あるいは、ネットワーク(例えばインターネット、LAN、WANもしくはワイヤレスネットワークまたはこれらの組み合わせ)を介して、外部コンピュータまたは外部ストレージデバイスへダウンロード可能である。ネットワークは、銅製伝送ケーブル、光伝送ファイバ、ワイヤレス伝送、ルータ、ファイアウォール、スイッチ、ゲートウェイコンピュータもしくはエッジサーバまたはこれらの組み合わせを備えることができる。各コンピューティングデバイス/処理デバイス内のネットワークアダプタカードまたはネットワークインタフェースは、ネットワークからコンピュータ可読プログラム命令を受信し、当該コンピュータ可読プログラム命令を、各々のコンピューティングデバイス/処理デバイスにおけるコンピュータ可読記憶媒体に記憶するために転送する。
本発明の動作を実施するためのコンピュータ可読プログラム命令は、アセンブラ命令、命令セットアーキテクチャ(ISA)命令、機械命令、機械依存命令、マイクロコード、ファームウェア命令、状態設定データ、集積回路用構成データ、または、スモールトークやC++などのオブジェクト指向プログラミング言語、および「C」プログラミング言語や類似のプログラミング言語などの手続き型プログラミング言語を含む、1つ以上のプログラミング言語の任意の組み合わせで記述されたソースコードもしくはオブジェクトコードのいずれかとすることができる。コンピュータ可読プログラム命令は、スタンドアロン型ソフトウェアパッケージとして完全にユーザのコンピュータ上で、または部分的にユーザのコンピュータ上で実行可能である。あるいは、部分的にユーザのコンピュータ上でかつ部分的にリモートコンピュータ上で、または、完全にリモートコンピュータもしくはサーバ上で実行可能である。後者の場合、リモートコンピュータは、LANやWANを含む任意の種類のネットワークを介してユーザのコンピュータに接続してもよいし、外部コンピュータに(例えば、インターネットサービスプロバイダを使用してインターネットを介して)接続してもよい。いくつかの実施形態において、例えばプログラマブル論理回路、フィールドプログラマブルゲートアレイ(FPGA)、プログラマブル論理アレイ(PLA)を含む電子回路は、本発明の態様を実行する目的で当該電子回路をカスタマイズするために、コンピュータ可読プログラム命令の状態情報を利用することによって、コンピュータ可読プログラム命令を実行することができる。
本発明の態様は、本明細書において、本発明の実施形態に係る方法、装置(システム)、およびコンピュータプログラム製品のフローチャートもしくはブロック図またはその両方を参照して説明されている。フローチャートもしくはブロック図またはその両方における各ブロック、および、フローチャートもしくはブロック図またはその両方における複数のブロックの組み合わせは、コンピュータ可読プログラム命令によって実行可能である。
これらのコンピュータ可読プログラム命令は、機械を生産するために、コンピュータまたは他のプログラマブルデータ処理装置のプロセッサに提供することができる。これにより、このようなコンピュータまたは他のプログラマブルデータ処理装置のプロセッサを介して実行されるこれらの命令が、フローチャートもしくはブロック図またはその両方における1つ以上のブロックにて特定される機能/動作を実行するための手段を創出する。これらのコンピュータ可読プログラム命令はさらに、コンピュータ、プログラマブルデータ処理装置もしくは他のデバイスまたはこれらの組み合わせに対して特定の態様で機能するよう命令可能なコンピュータ可読記憶媒体に記憶することができる。これにより、命令が記憶された当該コンピュータ可読記憶媒体は、フローチャートもしくはブロック図またはその両方における1つ以上のブロックにて特定される機能/動作の態様を実行するための命令を含む製品を構成する。
また、コンピュータ可読プログラム命令を、コンピュータ、他のプログラマブル装置、または他のデバイスにロードし、一連の動作ステップを当該コンピュータ、他のプログラマブル装置、または他のデバイス上で実行させることにより、コンピュータ実行プロセスを生成してもよい。これにより、当該コンピュータ、他のプログラマブル装置、または他のデバイス上で実行される命令が、フローチャートもしくはブロック図またはその両方における1つ以上のブロックにて特定される機能/動作を実行する。
図面におけるフローチャートおよびブロック図は、本発明の種々の実施形態に係るシステム、方法およびコンピュータプログラム製品の可能な実装形態のアーキテクチャ、機能性、および動作を示している。この点に関して、フローチャートまたはブロック図における各ブロックは、特定の論理機能を実行するための1つ以上の実行可能な命令を含む、命令のモジュール、セグメント、または部分を表すことができる。他の一部の実装形態において、ブロック内に示した機能は、各図に示す順序とは異なる順序で実行されてもよい。例えば、関係する機能に応じて、連続して示される2つのブロックが、実際には、1つの工程として達成されてもよいし、同時もしくは略同時に実行されてもよいし、部分的もしくは全体的に時間的に重複した態様で実行されてもよいし、ブロックが場合により逆順で実行されてもよい。なお、ブロック図もしくはフローチャートまたはその両方における各ブロック、および、ブロック図もしくはフローチャートまたはその両方における複数のブロックの組み合わせは、特定の機能もしくは動作を行う、または専用ハードウェアとコンピュータ命令との組み合わせを実行する、専用ハードウェアベースのシステムによって実行可能である。
さらに、種々の実施形態に係るシステムは、プロセッサと、プロセッサに統合された、もしくはプロセッサによって実行可能な、またはその両方であるロジックとを含むことができ、当該ロジックは、本明細書に記載のプロセスステップのうちの1つ以上を実行するように構成されている。「統合された」とは、プロセッサにロジックが、特定用途向け集積回路(ASIC)、FPGAなどのハードウェアロジックとして埋め込まれていることを意味する。「プロセッサによって実行可能」とは、ロジックが、ハードウェアロジック、ファームウェアなどのソフトウェアロジック、オペレーティングシステムの一部、アプリケーションプログラムの一部などである、あるいは、プロセッサによってアクセス可能であり、かつプロセッサによって実行されることでプロセッサに何らかの機能を実行させるように構成されている、ハードウェアロジックとソフトウェアロジックの何らかの組み合わせであることを意味する。ソフトウェアロジックは、当技術分野で公知の任意のメモリタイプのローカルメモリもしくはリモートメモリまたはその両方に記憶することができる。ソフトウェアプロセッサモジュール、もしくはASIC、FPGA、中央処理装置(CPU)、集積回路(IC)、グラフィック処理ユニット(GPI)などのハードウェアプロセッサ、またはその両方などの、当技術分野で公知の任意のプロセッサを使用することができる。
上述したシステムもしくは方法またはその両方の様々な特徴を任意の方法で組み合わせて、上述した説明から複数の組み合わせを作り出せることが明らかである。
本発明の実施形態は、オンデマンドでサービスを提供するために顧客に代わって展開されるサービスとして提供可能であることがさらに理解される。
本発明の種々の実施形態を例示として説明してきたが、網羅的であることや、これらの実施形態に限定することを意図したものではない。当業者には明らかなように、記載した各実施形態の範囲および主旨から逸脱することなく、多くの変更および変形が可能である。本明細書で用いられる用語は、各実施形態の原理、実際の用途、または市場で確認される技術に対する技術的な改善を最もよく説明するために、または、他の当業者が本明細書に開示する各実施形態を理解できるように選択されたものである。

Claims (29)

  1. トランスコーダによって、第2の暗号化データを受信することであって、当該第2の暗号化データは、データを第1の鍵で暗号化して第1の暗号化データを作成し、次いで当該第1の暗号化データを第2の鍵で暗号化して第2の暗号化データとしたものである、ことと、
    前記トランスコーダによって、前記第2の鍵を受信することと、
    前記トランスコーダによって、前記第2の鍵を使用して前記第2の暗号化データを復号化し、前記第1の暗号化データを取得することと、
    前記トランスコーダによって、第3の鍵を使用して前記第1の暗号化データを暗号化し、第3の暗号化データを作成することと、
    前記トランスコーダによって、前記第3の暗号化データを宛先ノードに送信することと、
    を含む、コンピュータ実装方法。
  2. 前記第2の鍵はソースノードから受信される、請求項1に記載のコンピュータ実装方法。
  3. 前記第2の暗号化データは、前記トランスコーダからストレージへのデータ要求に少なくとも部分的に基づいて受信される、請求項1に記載のコンピュータ実装方法。
  4. 前記第2の暗号化データは、前記トランスコーダから前記ソースノードへのデータ要求に少なくとも部分的に基づいて受信される、請求項2に記載のコンピュータ実装方法。
  5. 前記トランスコーダによって、前記第3の鍵を前記宛先ノードに送信することを含み、
    前記宛先ノードは、前記第3の鍵を使用して前記第3の暗号化データを復号化し、前記第1の暗号化データを取得するように構成され、当該宛先ノードは、前記第1の鍵を使用して当該第1の暗号化データを復号化し、前記データを取得するように構成される、請求項1に記載のコンピュータ実装方法。
  6. 前記データは複数のデータチャンクを含み、各データチャンクは第4の鍵で暗号化され、当該第4の鍵は前記第1の鍵で暗号化されて第1の暗号化第4の鍵とされ、当該第1の暗号化第4の鍵は次いで前記第2の鍵で暗号化されて第2の暗号化第4の鍵とされ、前記方法は、
    前記トランスコーダによって、前記第2の暗号化第4の鍵を受信することと、
    前記トランスコーダによって、前記第2の鍵を使用して前記第2の暗号化第4の鍵を復号化し、前記第1の暗号化第4の鍵を取得することと、
    前記トランスコーダによって、前記第3の鍵を使用して前記第1の暗号化第4の鍵を暗号化し、第3の暗号化第4の鍵を作成することと、
    前記トランスコーダによって、前記第3の鍵を前記宛先ノードに送信することと、
    前記トランスコーダによって、前記第3の暗号化第4の鍵を前記宛先ノードに送信することと、
    を含む、請求項1に記載のコンピュータ実装方法。
  7. 前記トランスコーダは前記ソースノード上に配置される、請求項2に記載のコンピュータ実装方法。
  8. 前記トランスコーダは前記ストレージ上に配置される、請求項3に記載のコンピュータ実装方法。
  9. 前記トランスコーダは、前記ソースノードと前記ストレージとに結合されたストレージネットワーク上に配置される、請求項3に記載のコンピュータ実装方法。
  10. 前記トランスコーダによって、前記ソースノードと前記宛先ノードとの間のデータ共有を終了させるために、前記第3の鍵をダミー鍵に置き換えることを含む、請求項1に記載のコンピュータ実装方法。
  11. 前記第1、第2および第3の暗号化データは、第1、第2および第3の暗号化された鍵を指す、請求項1に記載のコンピュータ実装方法。
  12. 前記トランスコーダによって、前記第3の鍵を宛先ノードに送信することを含み、
    前記宛先ノードは、前記第3の鍵を使用して前記第3の暗号化された鍵を復号化し、前記第1の暗号化された鍵を取得するように構成され、当該宛先ノードは、前記第1の鍵を使用して当該第1の暗号化された鍵を復号化し、前記鍵を取得するように構成される、請求項11に記載のコンピュータ実装方法。
  13. 前記宛先ノードは、前記鍵を使用して前記ソースノードからのデータを復号化する、請求項12に記載のコンピュータ実装方法。
  14. トランスコーダによって、第2の暗号化された鍵を受信することであって、当該第2の暗号化された鍵は、鍵を第1の鍵で暗号化して第1の暗号化された鍵を作成し、次いで当該第1の暗号化された鍵を第2の鍵で暗号化して第2の暗号化された鍵としたものである、ことと、
    前記トランスコーダによって、前記第2の鍵を受信することと、
    前記トランスコーダによって、前記第2の鍵を使用して前記第2の暗号化された鍵を復号化し、前記第1の暗号化された鍵を取得することと、
    前記トランスコーダによって、第3の鍵を使用して前記第1の暗号化された鍵を暗号化し、第3の暗号化された鍵を作成することと、
    前記トランスコーダによって、前記第3の暗号化された鍵を宛先ノードに送信することと、
    を含む、コンピュータ実装方法。
  15. 前記トランスコーダによって、前記第3の鍵を宛先ノードに送信することを含み、
    前記宛先ノードは、前記第3の鍵を使用して前記第3の暗号化された鍵を復号化し、前記第1の暗号化された鍵を取得するように構成され、当該宛先ノードは、前記第1の鍵を使用して当該第1の暗号化された鍵を復号化し、前記鍵を取得するように構成される、請求項14に記載のコンピュータ実装方法。
  16. 前記宛先ノードは、前記鍵を使用して前記ソースノードからのデータを復号化する、請求項15に記載のコンピュータ実装方法。
  17. プロセッサと、
    前記プロセッサに統合されたロジック、当該プロセッサによって実行可能なロジック、または、当該プロセッサに統合されかつ当該プロセッサによって実行可能なロジックと、を含むシステムであって、当該ロジックは、
    トランスコーダによって、第2の暗号化データを受信することであって、当該第2の暗号化データは、データを第1の鍵で暗号化して第1の暗号化データを作成し、次いで当該第1の暗号化データを第2の鍵で暗号化して第2の暗号化データとしたものである、ことと、
    前記トランスコーダによって、前記第2の鍵を受信することと、
    前記トランスコーダによって、前記第2の鍵を使用して前記第2の暗号化データを復号化し、前記第1の暗号化データを取得することと、
    前記トランスコーダによって、第3の鍵を使用して前記第1の暗号化データを暗号化し、第3の暗号化データを作成することと、
    前記トランスコーダによって、前記第3の暗号化データを宛先ノードに送信することと、
    を実行するように構成されている、システム。
  18. 前記第2の鍵はソースノードから受信される、請求項17に記載のシステム。
  19. 前記第2の暗号化データは、前記トランスコーダからストレージへのデータ要求に少なくとも部分的に基づいて受信される、請求項17に記載のシステム。
  20. 前記第2の暗号化データは、前記トランスコーダから前記ソースノードへのデータ要求に少なくとも部分的に基づいて受信される、請求項18に記載のシステム。
  21. 前記ロジックは、前記トランスコーダによって、前記第3の鍵を前記宛先ノードに送信するように構成され、
    前記宛先ノードは、前記第3の鍵を使用して前記第3の暗号化データを復号化し、前記第1の暗号化データを取得するように構成され、当該宛先ノードは、前記第1の鍵を使用して当該第1の暗号化データを復号化し、前記データを取得するように構成される、請求項17に記載のシステム。
  22. 前記データは複数のデータチャンクを含み、各データチャンクは第4の鍵で暗号化され、当該第4の鍵は前記第1の鍵で暗号化されて第1の暗号化第4の鍵とされ、当該第1の暗号化第4の鍵は次いで前記第2の鍵で暗号化されて第2の暗号化第4の鍵とされ、前記ロジックは、
    前記トランスコーダによって、前記第2の暗号化第4の鍵を受信することと、
    前記トランスコーダによって、前記第2の鍵を使用して前記第2の暗号化第4の鍵を復号化し、前記第1の暗号化第4の鍵を取得することと、
    前記トランスコーダによって、前記第3の鍵を使用して前記第1の暗号化第4の鍵を暗号化し、第3の暗号化第4の鍵を作成することと、
    前記トランスコーダによって、前記第3の鍵を前記宛先ノードに送信することと、
    前記トランスコーダによって、前記第3の暗号化第4の鍵を前記宛先ノードに送信することと、
    を実行するように構成される、請求項17に記載のシステム。
  23. 前記トランスコーダは前記ソースノード上に配置される、請求項18に記載のシステム。
  24. 前記トランスコーダは前記ストレージ上に配置される、請求項19に記載のシステム。
  25. 前記トランスコーダは、前記ソースノードと前記ストレージとに結合されたストレージネットワーク上に配置される、請求項19に記載のシステム。
  26. 前記ロジックは、前記トランスコーダによって、前記ソースノードと前記宛先ノードとの間のデータ共有を終了させるために、前記第3の鍵をダミー鍵に置き換えることを実行するように構成される、請求項17に記載のシステム。
  27. 1つ以上のコンピュータ可読記憶媒体と、当該1つ以上のコンピュータ可読記憶媒体にまとめて記憶されたプログラム命令と、を含むコンピュータプログラム製品であって、当該プログラム命令は、
    トランスコーダによって、第2の暗号化データを受信するためのプログラム命令であって、当該第2の暗号化データは、データを第1の鍵で暗号化して第1の暗号化データを作成し、次いで当該第1の暗号化データを第2の鍵で暗号化して第2の暗号化データとしたものである、プログラム命令と、
    前記トランスコーダによって、前記第2の鍵を受信するためのプログラム命令と、
    前記トランスコーダによって、前記第2の鍵を使用して前記第2の暗号化データを復号化し、前記第1の暗号化データを取得するためのプログラム命令と、
    前記トランスコーダによって、第3の鍵を使用して前記第1の暗号化データを暗号化し、第3の暗号化データを作成するためのプログラム命令と、
    前記トランスコーダによって、前記第3の暗号化データを宛先ノードに送信するためのプログラム命令と、
    を含む、コンピュータプログラム製品。
  28. 1つ以上のコンピュータ可読記憶媒体と、当該1つ以上のコンピュータ可読記憶媒体にまとめて記憶されたプログラム命令と、を含むコンピュータプログラム製品であって、当該プログラム命令は、
    トランスコーダによって、第2の暗号化された鍵を受信するためのプログラム命令であって、当該第2の暗号化された鍵は、鍵を第1の鍵で暗号化して第1の暗号化された鍵を作成し、次いで当該第1の暗号化された鍵を第2の鍵で暗号化して第2の暗号化された鍵としたものである、プログラム命令と、
    前記トランスコーダによって、前記第2の鍵を受信するためのプログラム命令と、
    前記トランスコーダによって、前記第2の鍵を使用して前記第2の暗号化された鍵を復号化し、前記第1の暗号化された鍵を取得するためのプログラム命令と、
    前記トランスコーダによって、第3の鍵を使用して前記第1の暗号化された鍵を暗号化し、第3の暗号化された鍵を作成するためのプログラム命令と、
    前記トランスコーダによって、前記第3の暗号化された鍵を宛先ノードに送信するためのプログラム命令と、
    を含む、コンピュータプログラム製品。
  29. 前記プログラムがコンピュータ上で実行された際に、請求項1から16のいずれかに記載の方法を実行するように適合されたプログラムコード手段を含む、コンピュータプログラム。
JP2023540173A 2020-12-30 2021-12-15 セキュアなデータ移動 Pending JP2024503327A (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US17/138,539 US11743241B2 (en) 2020-12-30 2020-12-30 Secure data movement
US17/138,539 2020-12-30
PCT/IB2021/061771 WO2022144663A1 (en) 2020-12-30 2021-12-15 Secure data movement

Publications (1)

Publication Number Publication Date
JP2024503327A true JP2024503327A (ja) 2024-01-25

Family

ID=82117938

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2023540173A Pending JP2024503327A (ja) 2020-12-30 2021-12-15 セキュアなデータ移動

Country Status (6)

Country Link
US (1) US11743241B2 (ja)
JP (1) JP2024503327A (ja)
CN (1) CN116746114A (ja)
DE (1) DE112021006008T5 (ja)
GB (1) GB2617757B (ja)
WO (1) WO2022144663A1 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20230216733A1 (en) * 2021-12-31 2023-07-06 Fortinet, Inc. Distributed node discovery and overlay path management on a data communication network
US11579783B1 (en) * 2022-03-09 2023-02-14 Vim Inc. Multi-tenant storage

Family Cites Families (39)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4074057B2 (ja) 2000-12-28 2008-04-09 株式会社東芝 耐タンパプロセッサにおける暗号化データ領域のプロセス間共有方法
US7181017B1 (en) 2001-03-23 2007-02-20 David Felsher System and method for secure three-party communications
US7266611B2 (en) 2002-03-12 2007-09-04 Dilithium Networks Pty Limited Method and system for improved transcoding of information through a telecommunication network
US7305711B2 (en) * 2002-12-10 2007-12-04 Intel Corporation Public key media key block
DE102005027232A1 (de) 2005-06-13 2006-12-14 Siemens Ag Verfahren und Anordnung zum sicheren Übertragen von Daten in einem ein Mehrsprungverfahren nutzenden Kommunikationssystem
US8761401B2 (en) * 2006-08-28 2014-06-24 Motorola Mobility Llc System and method for secure key distribution to manufactured products
US9104618B2 (en) 2008-12-18 2015-08-11 Sandisk Technologies Inc. Managing access to an address range in a storage device
WO2011121661A1 (ja) * 2010-03-31 2011-10-06 富士通株式会社 暗号処理装置および暗号処理方法
CN102098318B (zh) 2011-03-23 2013-08-14 电子科技大学 多跳网络的端到端匿名安全通信方法
CA2797306C (en) * 2011-11-30 2017-11-14 Alticast Corporation Security processing system and method for http live streaming
US8681992B2 (en) * 2012-02-13 2014-03-25 Alephcloud Systems, Inc. Monitoring and controlling access to electronic content
US8966287B2 (en) 2012-03-26 2015-02-24 Symantec Corporation Systems and methods for secure third-party data storage
US9847979B2 (en) * 2013-03-15 2017-12-19 Verimatrix, Inc. Security and key management of digital content
US9043613B2 (en) 2013-06-28 2015-05-26 International Business Machines Corporation Multiple volume encryption of storage devices using self encrypting drive (SED)
US9887836B1 (en) * 2014-09-26 2018-02-06 Amazon Technologies, Inc. Unified management of cryptographic keys using virtual keys and referrals
US9210187B1 (en) * 2015-01-13 2015-12-08 Centri Technology, Inc. Transparent denial of service protection
US10127389B1 (en) * 2015-03-30 2018-11-13 Amazon Technologies, Inc. Performing operations on intelligent storage with hardened interfaces
EP3086585B1 (en) 2015-04-23 2019-12-11 Nxp B.V. Method and system for securing data communicated in a network
US10033702B2 (en) 2015-08-05 2018-07-24 Intralinks, Inc. Systems and methods of secure data exchange
CA3005476C (en) * 2015-11-20 2024-03-05 Genetec Inc. Secure layered encryption of data streams
US9946895B1 (en) * 2015-12-15 2018-04-17 Amazon Technologies, Inc. Data obfuscation
WO2017161050A2 (en) 2016-03-15 2017-09-21 Cloud Crowding Corp. Distributed storage system data management and security
US10528485B2 (en) 2016-09-30 2020-01-07 Intel Corporation Method and apparatus for sharing security metadata memory space
US20180219674A1 (en) * 2017-01-06 2018-08-02 Microsoft Technology Licensing, Llc Successive cryptographic techniques
US10708244B2 (en) * 2017-06-07 2020-07-07 Virtual Connect Technologies, Inc. System and method for encryption, storage and transmission of digital information
US10505950B2 (en) * 2017-07-10 2019-12-10 Dark Matter L.L.C. System, method, and computer program product for multi-layer encryption of an efficient broadcast message
EP3891924A4 (en) * 2017-10-24 2022-10-05 Bitcache Limited DATA TRANSFER
US10187200B1 (en) * 2017-12-18 2019-01-22 Secure Channels Inc. System and method for generating a multi-stage key for use in cryptographic operations
US11038691B2 (en) * 2018-01-03 2021-06-15 JJD Software LLC Database platform for maintaining secure data
WO2019134868A1 (en) * 2018-01-04 2019-07-11 Signify Holding B.V. System and method for end-to-end secure communication in device-to-device communication networks
US11050724B2 (en) * 2018-03-22 2021-06-29 Cisco Technology, Inc. IaaS-aided access control for information centric networking with Internet-of-Things
US10965653B2 (en) * 2018-03-28 2021-03-30 Xaptum, Inc. Scalable and secure message brokering approach in a communication system
CN110581763B (zh) 2018-06-09 2022-07-15 成都零光量子科技有限公司 一种量子密钥服务区块链网络系统
US11507676B2 (en) * 2018-06-26 2022-11-22 Sri International Selectively sharing data in unstructured data containers
US11019098B2 (en) * 2018-06-29 2021-05-25 Intel Corporation Replay protection for memory based on key refresh
US11005828B1 (en) * 2018-11-19 2021-05-11 Bae Systems Information And Electronic Systems Integration Inc. Securing data at rest
US11265300B1 (en) * 2018-12-29 2022-03-01 Whatsapp Llc Methods and systems for transmitting anonymized information
US11082235B2 (en) * 2019-02-14 2021-08-03 Anchor Labs, Inc. Cryptoasset custodial system with different cryptographic keys controlling access to separate groups of private keys
US20200142735A1 (en) 2019-09-28 2020-05-07 Intel Corporation Methods and apparatus to offload and onload workloads in an edge environment

Also Published As

Publication number Publication date
GB2617757B (en) 2024-03-06
GB2617757A (en) 2023-10-18
WO2022144663A1 (en) 2022-07-07
CN116746114A (zh) 2023-09-12
GB202310748D0 (en) 2023-08-30
DE112021006008T5 (de) 2023-11-30
US11743241B2 (en) 2023-08-29
US20220210139A1 (en) 2022-06-30

Similar Documents

Publication Publication Date Title
US20210266182A1 (en) Securing a path at a selected node
US20200076585A1 (en) Storage device key management for encrypted host data
JP7189944B2 (ja) セキュアな環境内のツール用のセキュアなアクセス管理方法、コンピュータ・プログラム、およびシステム
JP7388803B2 (ja) セキュア・ゲストのセキュア鍵をハードウェア・セキュリティ・モジュールに結びつけること
US10567373B2 (en) Establishing security over converged Ethernet with TCP credential appropriation
US10931453B2 (en) Distributed encryption keys for tokens in a cloud environment
JP2024503327A (ja) セキュアなデータ移動
JP2023551527A (ja) 準同型暗号化を使用したセキュアなコンピューティング・リソース配置
US20200296089A1 (en) Validating containers on a microservice framework
JP2023535915A (ja) 複数の鍵によって暗号化されたデータの重複排除
JP2024501197A (ja) データをセキュア保護するためのハイブリッド鍵導出
US10972443B2 (en) System and method for encrypted document co-editing
US20210281608A1 (en) Separation of handshake and record protocol
US11032073B2 (en) Seamless abort and reinstatement of TLS sessions
US11120140B2 (en) Secure operations on encrypted data
US20220207191A1 (en) Secure memory sharing
JP2024507647A (ja) ロックされたフィンガープリントを使用する複数鍵の安全な重複排除
US20210152336A1 (en) Automatic provisioning of key material rotation information to services
JP2023532810A (ja) 暗号化データオブジェクトの配布
WO2023213168A1 (en) Access configuration in hybrid network environments
JP2024510881A (ja) マルチクラウド環境における量子鍵配送

Legal Events

Date Code Title Description
RD16 Notification of change of power of sub attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7436

Effective date: 20230724