JP7015904B2 - セキュア実行プラットフォームのクラスタ - Google Patents

セキュア実行プラットフォームのクラスタ Download PDF

Info

Publication number
JP7015904B2
JP7015904B2 JP2020500817A JP2020500817A JP7015904B2 JP 7015904 B2 JP7015904 B2 JP 7015904B2 JP 2020500817 A JP2020500817 A JP 2020500817A JP 2020500817 A JP2020500817 A JP 2020500817A JP 7015904 B2 JP7015904 B2 JP 7015904B2
Authority
JP
Japan
Prior art keywords
sep
key
cluster
data
new
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.)
Active
Application number
JP2020500817A
Other languages
English (en)
Other versions
JP2020527791A (ja
JP2020527791A5 (ja
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 JP2020527791A publication Critical patent/JP2020527791A/ja
Publication of JP2020527791A5 publication Critical patent/JP2020527791A5/ja
Application granted granted Critical
Publication of JP7015904B2 publication Critical patent/JP7015904B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1408Protection against unauthorised use of memory or access to memory by using cryptography
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6209Protecting access to data via a platform, e.g. using keys or access control rules to a single file or object, e.g. in a secure envelope, encrypted and accessed using a key, or with access control rules appended to the object itself
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/06Network architectures or network communication protocols for network security for supporting key management in a packet data network
    • H04L63/061Network architectures or network communication protocols for network security for supporting key management in a packet data network for key exchange, e.g. in peer-to-peer networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/0853Network architectures or network communication protocols for network security for authentication of entities using an additional device, e.g. smartcard, SIM or a different communication terminal
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/10Network architectures or network communication protocols for network security for controlling access to devices or network resources
    • H04L63/102Entity profiles
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1052Security improvement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/15Use in a specific computing environment
    • G06F2212/154Networked environment
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/16General purpose computing application
    • G06F2212/163Server or database system
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1097Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Theoretical Computer Science (AREA)
  • Computing Systems (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • General Health & Medical Sciences (AREA)
  • Software Systems (AREA)
  • Bioethics (AREA)
  • Health & Medical Sciences (AREA)
  • Storage Device Security (AREA)
  • Human Computer Interaction (AREA)

Description

本開示は一般的にデータ・セキュリティに関し、特にセキュア実行プラットフォームに関する。
今日、一般的に極秘データと呼ばれる機密データまたはプライベート・データが、しばしば中央データ・ストレージに保持される。こうした極秘データのソースはさまざまであってもよい。その極秘データは、データ・ストレージに自身の取引上の秘密を預けるビジネス・エンティティから受け取ったものか、生体サンプルを提供することが法律により要求される一般市民から受け取ったものか、または任意のその他のソースからのものかどうかにかかわらず、保存されるデータの機密性が維持される必要がある。
データ・ストレージはクライアント・クエリに応答してサーバによってアクセス可能であってもよく、それによって極秘データの適度かつ制限された使用が可能になってもよい。場合によっては、サーバはクライアントがこうしたクエリを行う許可を有すること、およびその動作パターンがクライアントの役割と矛盾しないことを確実にする。サーバは情報を処理するときに匿名化し、返答として匿名データを提供してもよい。
しかし、サーバはなおも極秘データを処理しており、未処理のデータ自体へのアクセスを有する。結果として、サーバ内に漏洩点となり得るところがないことを確実にすることが重要であろう。場合によっては、こうしたサーバの管理者は注意深く選択され、サーバへのアクセスを与えられる前に厳重な精査を受ける。管理者はサーバ内に保持されるデータに対する制限されないアクセスを保持してもよく、結果として中央データ・ストレージに保持されるすべての極秘データに対する無制限のアクセスを有してもよい。よって発明が解決しようとする課題はセキュア実行プラットフォームのクラスタを含むシステムおよびそのプログラムを提供することである。
開示される主題の1つの例示的実施形態はシステムであり、このシステムは、データ・ストレージに対する接続性を有するセキュア実行プラットフォーム(SEP:Secure Execution Platforms)のクラスタを含み、前記クラスタの各SEPはキーを用いてデータを処理する際にデータの機密性を維持するように構成され、キーは前記クラスタのSEP間で共有され、キーは前記クラスタまたはその一部分によって自動的に生成され、かつ任意の非クラスタ・エンティティには利用不可能であり、前記データ・ストレージはキーを用いて暗号化された暗号化データを保持し、前記クラスタの第1のSEPは、キーを用いてクライアント・データを暗号化して暗号化クライアント・データを得て、この暗号化クライアント・データを前記データ・ストレージに保存するように構成され、前記クラスタの第2のSEPは、前記データ・ストレージから暗号化保存データを検索し、キーを用いて暗号化保存データを復号して暗号化保存データの非暗号化形を得るように構成される。
開示される主題の別の例示的実施形態は、コンピュータ環境内のセキュア実行プラットフォーム(SEP)によって実行されるべき命令を保持する非一時的コンピュータ可読ストレージ媒体を含むコンピュータ・プログラム製品であり、コンピュータ環境はデータ・ストレージに対する接続性を有するSEPのクラスタを含み、データ・ストレージはキーを用いて暗号化された暗号化データを保持し、キーはクラスタのSEP間で共有され、キーはクラスタまたはその一部分によって自動的に生成され、かつ任意の非クラスタ・エンティティには利用不可能であり、クラスタはSEPを含み、前記クラスタの各SEPはキーを用いてデータを処理する際にデータの機密性を維持するように構成され、命令はSEPによって実行されるときにSEPに、第1のクライアント・デバイスからセキュアな通信チャネルを通じて第1のクライアント・データを受信したことに応答して、キーを用いて第1のクライアント・データを暗号化して暗号化クライアント・データを得て、暗号化クライアント・データをデータ・ストレージに保存することによって、データ・ストレージに保持される第1のクライアント・データが任意の非コンピュータ・エンティティには得られないようにするステップと、保持されるデータへのアクセスを必要とする第2のクライアント・デバイスからアクセス・クエリを受信したことに応答して、データ・ストレージから保持されるデータの暗号化形を検索し、キーを用いて暗号化形を復号して第2のクライアント・データを得て、セキュアな通信チャネルを通じて第2のクライアント・デバイスへの応答を提供するステップとを行わせ、この応答は第2のクライアント・データに基づく。
本開示の主題は、図面とともになされる以下の詳細な説明からより完全に理解および認識されることとなり、図面における対応または類似の番号または文字は、対応または類似の構成要素を示す。別様に示されない限り、図面はこの開示の例示的実施形態または態様を提供するものであり、この開示の範囲を限定することはない。
開示される主題のいくつかの例示的実施形態によるシステムを示すブロック図である。 開示される主題のいくつかの例示的実施形態による方法を示す流れ図である。 開示される主題のいくつかの例示的実施形態による方法を示す流れ図である。 開示される主題のいくつかの例示的実施形態による方法を示す流れ図である。 開示される主題のいくつかの例示的実施形態による方法を示す流れ図である。 開示される主題のいくつかの例示的実施形態によるシステムを示す概略図である。
開示される主題によって対処される技術的課題の1つは、データを処理する際にデータの機密性を維持することである。
多くのアプリケーションおよびプログラムは、極秘データの処理および対処を伴ってもよい。極秘データは、権限付与されていないアクセスまたはより高い特権レベルにおいて実行される不正ソフトウェアによる改変から保護されるべきである。正規のソフトウェアまたはユーザが極秘データに関連するプラットフォーム・リソースを使用するかまたは使用の管理をする能力を妨げることなく、極秘データの機密性および完全性を保存することが必要とされてもよい。
いくつかの例示的実施形態において、極秘データは、正規のソフトウェアまたはユーザがそれに対するアクセスを有して、既存のデータの機密性に影響することなく新たなデータを加えること、または異なるサービスの提供において既存のデータを用いることなどの能力を有し得るようなやり方で保持されてもよい。いくつかの例示的実施形態において、信頼されないアプリケーションおよびユーザが極秘データの読取りまたは更新を行うためにそれにアクセスすることが防止されることが望ましくてもよい。
開示される主題によって対処される別の技術的課題は、たとえば人間の管理者またはユーザなどの脆弱な非コンピュータ・エンティティによって知覚されるリスクを低減することである。
極秘データに関連する多くのアプリケーションおよびサービスは、それらを管理し実行する中央の信頼された機関に依拠し得る。場合によっては、たとえば管理者などの信頼された機関が極秘データを悪用するか、または取り扱いを誤ってセキュリティ違反をもたらすことがある。一例として、セキュアな個人の健康管理データを保持するデータベースの取り扱いのために信頼された機関が用いられてもよい。別の例として、管理者はセキュアなバイオメトリック・データベースを管理してもよい。さらに別の例として、データ・ストレージは、たとえば証券会社が発行する商取引を取り扱うか、または競売を行って入札を受け取ることなどを行うシステムなどの場合に、金融データを保存してもよい。開示される主題は、情報エスクロー、バイオインフォマティクス・データ・プラットフォーム、または健康管理サービス・プラットフォームなどにも用いられてもよい。
場合によっては、たとえばスノーデンの漏洩などのように、ハッカーまたは悪質な職員などが、特権アカウントへの侵入、極秘データへのアクセス、または極秘データのコピーもしくは漏洩などによって極秘データのセキュリティを危機にさらすことがある。
開示される主題によって対処されるさらに別の技術的課題は、一旦動作的になると人間のユーザから完全にデータを隠匿し、いかなる人間の支配も受けないコンピュータ・プラットフォームを提供することである。
保護されていないコンピュータ・エンティティまたはユーザからデータを隠匿し続けることは、実際のセキュアな実行における最も困難な課題の1つである。通常、実行プラットフォームは人間のユーザによって管理される。たとえ実行プラットフォームが処理データを暗号化するために暗号化キーを使用しても、たとえばサーバがつぶれてそれと置き換えるために新たなサーバを実行させる必要があり、極秘データを復号するためにキーを必要とする場合などに、こうしたキーは人間のユーザに知られるか、または取得され得る。キーを得た攻撃者は暗号化データから元のデータを復元して、悪用または拡散できる。攻撃者はキーを知っている人間のエンティティから、たとえば盗むこと、買い取ること、人為的エラー、またはソーシャル・エンジニアリングなどによってキーを得ることがある。付加的または代替的に、攻撃者は悪質なソフトウェア・エージェントを導入して実行プラットフォームで実行させることによって、キーを得ることがある。たとえばソーシャル・エンジニアリングの使用などを通じて、悪質なソフトウェア・エージェントに管理者の許可が与えられるかもしれず、結果としてプラットフォームの管理者がアクセス可能なすべての情報に通じるかもしれない。
1つの技術的解決策は、セキュア実行プラットフォーム(SEP)のクラスタによってキーを自動的に生成することである。キーは、データを処理する際にデータの機密性を維持するために使用されてもよい。キーは、クラスタのSEPのみが利用可能であってもよい。クラスタのメンバーではない他のコンピュータ・エンティティ、たとえばサーバ、SEP、またはコンピュータ装置などはキーへのアクセスを有さなくてもよく、かつキーを得ることができなくてもよい。さらに、SEPによって実行されるたとえばソフトウェア、ファームウェア、ハードウェア、それらの組み合わせなどにおいて実現されるエージェントは、もしそのエージェントが「権限付与された」とみなされなければキーへのアクセスを制限されてもよい。場合によっては、SEPが権限付与および非権限付与エージェントを同時に実行して、権限付与エージェントのみにキーへのアクセスを許可してもよく、これは開示される主題によるプロトコルに従って行われる。いくつかの例示的実施形態において、SEPによって実行される権限付与エージェントは、キーを得ること、キーを用いて極秘データを復号すること、キーを用いて極秘データを暗号化すること、および復号データを処理することを行い得る唯一のエージェントであってもよい。付加的または代替的に、権限付与エージェントは、他のエージェントまたはSEPにキーを転送できる唯一のエージェントであってもよい。
いくつかの例示的実施形態において、SEPのクラスタは、極秘データを保持するように構成されたデータ・ストレージに接続されてもよい。データ・ストレージは、キーを用いて暗号化されたデータの暗号化形を保持してもよい。データ・ストレージに保存されたデータは、クラスタのSEPによって実行される権限付与エージェントにアクセスされてもよく、この権限付与エージェントは暗号化を復号できてもよい。データは、キーを用いてその暗号化形に基づいて再構築されてもよい。
いくつかの例示的実施形態において、SEPの権限付与エージェントは、キーを用いてデータを復号し、たとえこうしたデータが計算に使用されるときにも復号データへの任意のアクセスを防ぐように構成されてもよい。復号データは、処理自体を行う権限付与エージェントを除く、SEPによって実行されるすべての特権ソフトウェア(例、カーネル、ハイパーバイザなど)がアクセスできないセキュアなコンテナ内でSEPによって保持されてもよく、結果として権限付与エージェントのみが復号形の極秘データへのアクセスを有する。
いくつかの例示的実施形態において、キーはクラスタのSEP間で共有されてもよい。クラスタの各SEPは、キーを用いてデータを処理する際にデータの機密性を維持するように構成されてもよい。
いくつかの例示的実施形態において、クラスタのSEPは、キーを用いてデータを暗号化して暗号化データを得るように構成されてもよい。クラスタのSEPは、次いで暗号化データをデータ・ストレージに保存してもよい。クラスタのSEPはさらに、たとえば権限付与エージェントを実行することなどによって、データ・ストレージから暗号化データを検索し、キーを用いて暗号化保存データを復号して、暗号化保存データの非暗号化形を得るように構成されてもよい。場合によっては、SEPはクライアント・デバイスからのクライアント・クエリを扱い、こうしたクエリを実現するためにデータ・ストレージにアクセスするように構成されてもよい。
いくつかの例示的実施形態において、SEPの1つ、またはいくつかのSEPの組み合わせなどによって、キーが自律的に生成されてもよい。たとえばPAXOS、Chandra-Toueg合意アルゴリズム、またはラフトなどのコンセンサス・プロトコルを用いて、キーがクラスタによって合意されてもよい。いくつかの例示的実施形態においては、キー自体を生成するリーダー(leader)を選択するためにコンセンサス・プロトコルが使用されてもよい。付加的または代替的に、いくつかのSEPがランダムな値を生成し、それらが組み合わされてキーを作成してもよい。クラスタによって用いられるキーは、決して表示されたり別様に人間のユーザに出力されたりしてはならず、かつクラスタの一部ではない任意の他のコンピュータ・デバイス、またはたとえクラスタのSEPによって実行されるエージェントであっても任意の非権限付与エージェントへの分配が制限されてもよい。こうして、人間のユーザまたはその他の非権限付与エンティティはキーを認識しなくてもよく、こうしたエンティティはもし損なわれても極秘データのセキュリティを損なわなくてもよい。
いくつかの例示的実施形態において、クラスタはオン・ザ・フライで複製を作成し、クラスタに新たなSEPを加えるように構成されてもよい。場合によっては、クラスタ内のSEPの数が予め定められた閾値未満に落ちたときに、クラスタに新たなSEPが加えられ、権限付与エージェントは新たなSEPの各々において開始される。新たなSEPは、すでにクラスタのメンバーであるSEPからキーを受信してもよい。いくつかの例示的実施形態において、キーを失う可能性およびそれとともに極秘データを失う可能性を回避するために、クラスタは最小限のサイズを保ってもよい。
いくつかの例示的実施形態において、クラスタのSEPには異なるタスクおよび特権が提供されてもよい。いくつかの例示的実施形態において、いくつかのSEPはデータ・ストレージにデータを書込むことができてもよく、一方でいくつかのSEPはデータ・ストレージからデータを読取ることができてもよい。付加的または代替的に、いくつかのSEPはクラスタに新たなSEPを加えることができてもよい。いくつかの例示的実施形態において、作成された新たなSEPには特定のタスク(例、書込みまたは読取りなど)が与えられてもよい。新たなSEPには、たとえば1日または1時間などの予め定められた寿命が与えられてもよい。予め定められた寿命の最後に、新たなSEPは自動的にクラスタから出てもよい。いくつかの例示的実施形態において、新たなSEPは、他のSEPを含む他のデバイスにキーを分配することを禁じられることによって、クラスタに新たなSEPを加えることで生じ得るリスクを減らしてもよい。
開示される主題を使用することの1つの技術的効果は、内部攻撃、悪質な職員、特権ユーザのデバイスのハッキング、または管理者のソーシャル・エンジニアリングなどの結果もたらされるデータ漏洩を防ぐことである。
いくつかの例示的実施形態において、クラスタは極秘データに対する唯一の有効なゲートウェイの役割をすることによって、中央データ・ストアからのデータ漏洩の可能性を限定する。
いくつかの例示的実施形態において、開示される主題は、人間の介在なしに動作でき、かつハードウェア自体へのアクセスを有するユーザを含む人間に制御されるシステムから秘密キーを守り、かつそれによって実行されるオペレーティング・システムにおけるルート特権を有することのできる自律的コンピュータ・エンティティを提供する。
別の技術的効果は、極秘データの損失を効果的に防ぐことであってもよい。単一のSEPとは異なり、SEPのクラスタを用いることで、同時にすべてのSEPが非動作的になる可能性が低くなり、よってSEPのみに知られるキーが失われる可能性も低くなる。もしキーが失われれば、暗号化データが無益になり得る。
さらに別の技術的効果は、自律的データ管理、すなわちデータに対する責任を管理者からセキュアなハードウェアに移すことを提供することであってもよい。自律的データ管理は、任意の外部機関による影響または検査を受け得ない。自律的データ管理の決定的な特性は、自身が行うようにプログラミングされたことのみを行うことである。
開示される主題は、任意の既存の技術および当該技術分野において以前からルーチンまたは従来のものとなっていた任意の技術を上回る1つまたはそれ以上の技術的改善を提供してもよい。
本開示に鑑みて、当業者には付加的な技術的課題、解決策、および効果が明らかとなってもよい。
ここで、開示される主題のいくつかの例示的実施形態によるシステムの例示を示す図1を参照する。
いくつかの例示的実施形態において、システム100はSEP122、124、126、および128のクラスタ120を含んでもよい。クラスタ120は任意の数のSEPを含んでもよく、図1は単なる例示である。各SEPは、たとえばインテル(Intel)(R)のSoftware Guard Extensions(TM)(SGX(TM))、トラステッド・エグゼキューション・テクノロジー(TXT:Trusted Execution Technology)を有するサーバ、コンピュータ装置トラステッド・プラットフォーム・モジュール(TPM:Trusted Platform Module)、IBM(IBM社の登録商標)のSecure Blue++(TM)、またはAMD(R)のSecure Memory Encryption(TM)(SME(TM))などの信頼されるハードウェア実行プラットフォームに基づいていてもよい。
一例として、SGX(TM)は、すべての特権ソフトウェア(たとえばカーネルまたはハイパーバイザなど)が悪質な可能性のあるコンピュータにおいて行われるセキュリティ極秘計算に対して完全性および機密性の保証を提供することを目的とする、インテル(R)アーキテクチャに対するハードウェア/ソフトウェア・エクステンションのセットであってもよい。信頼されるハードウェアはセキュアなコンテナを確立してもよく、リモート計算サービス・ユーザはこのセキュアなコンテナに所望の計算およびデータをアップロードしてもよい。信頼されるハードウェアは、データの計算が行われる際にデータの機密性および完全性を保護してもよい。信頼されるハードウェアをホストとするセキュアなコンテナにおいて実行されるソフトウェアの特定の部分と通信するユーザに対する認証検査も、SGX(TM)製品によって提供される。
いくつかの例示的実施形態において、SEPは、セキュアかつ安全な計算およびソフトウェアの実行を提供し、かつシステムの破損、基本入力/出力システム(BIOS:Basic Input/Output System)コード、またはプラットフォームの構成の改変などによって極秘データにアクセスすることを目的としたソフトウェアに基づく攻撃を防御するように構成された内蔵型のセキュア実行プラットフォームであってもよい。
クラスタ120の各SEPはキー130を保持してもよい。キー130は、クラスタ120のSEP間で共有されてもよい。キー130は、任意の非クラスタ・エンティティには利用不可能であってもよい。クラスタ120のSEPは権限付与および非権限付与エージェントを実行してもよいことが注目されるだろう。クラスタ120のSEPによって実行される権限付与エージェントのみがクラスタ・エンティティとみなされてもよい。
いくつかの例示的実施形態において、キー130はクラスタ120またはその一部分によって自動的に生成されてもよい。キー130は、クラスタ120のすべてのSEPに転送されてもよい。クラスタ120の各SEPは、キー130を用いてデータを処理する際にデータの機密性を維持するように構成されてもよい。キー130は、データまたはその表現を暗号化する暗号アルゴリズムの関数出力を定めるために、SEPによって使用されてもよい。一例として、キー130はデータのプレーンテキスト表現をその暗号文表現に変換し、復号アルゴリズムに対してその逆も同様に変換することを指定してもよい。キー130は、たとえばデジタル署名スキームまたはメッセージ認証コードなどの他の暗号アルゴリズムにおける変換を指定してもよい。
いくつかの例示的実施形態において、キー130は、データの暗号化および復号の両方に用いられる対称キーとなるように生成されてもよい。付加的または代替的に、キー130は一対のキーを含む非対称キーであってもよく、その一方が暗号化に用いられ、他方が復号に用いられてもよい。
いくつかの例示的実施形態において、キー130はクラスタ120の特定のSEP、たとえばSEP126などによって生成されてもよい。SEP126は、キー130を他のSEP122、124、および128に分配するように構成されてもよい。SEP126は、キー130を生成するために暗号システムを使用してもよい。
いくつかの例示的実施形態において、クラスタ120は、キー130の生成に応答して、キー130に合意するためのコンセンサス・プロトコルを使用するように構成されてもよい。いくつかの例示的実施形態において、SEP126はクラスタ120のリーダーとして機能してもよい。リーダーは予め定められて選択されるか、SEP間の予め規定された順序に基づいて定められるか、またはクラスタ120によって動的に選択されるなどしてもよい。リーダーはキー130を生成するように構成されてもよく、その生成されたキーが用いられる。付加的または代替的に、各SEPがキー130を生成できるような異なるSEPの間で競争があってもよい。次いでクラスタ120は、たとえばコンセンサス・プロトコルを用いるなどして、生成されたキーのうちのどれをクラスタ120のキー130として用いるかを選択してもよい。付加的または代替的に、いくつかのSEPがたとえば各々キー130の異なる部分を定めるなどして、一緒にキー130を生成してもよい。一例として、各SEPは256ビットを生成してもよく、キー130は4セットの256ビットで構成されてもよい。
いくつかの例示的実施形態において、システム100はデータ・ストレージ110を含んでもよい。データ・ストレージ110は、データを保持できるコンピュータ可読ストレージを含んでもよい。いくつかの例示的実施形態において、データ・ストレージ110は独立ディスク冗長アレイ(RAID:Redundant Array of Independent Disks)、ネットワーク接続ストレージ(NAS:Network Attached Storage)、ストレージ・エリア・ネットワーク(SAN:Storage Area Network)、NoSQLもしくはSQLデータベース、またはオブジェクト・ストアなどであってもよい。データ・ストレージ110は、キー130を用いて暗号化された暗号化データを保持するように構成されてもよい。いくつかの例示的実施形態において、暗号化はデータ・ストレージ110ではなくクラスタ120のSEPによって行われる。
一例として、データ・ストレージ110は、ある国の国民の指紋のデジタル表現のバイオメトリック・データベースを保持してもよい。データ・ストレージ110内のデータは、生体認証可能な身分証明書およびパスポートの作製、政府の調査の実行、個人の識別、ならびに犯罪行為の容疑者であり得る人物の識別などに使用されてもよい。
いくつかの例示的実施形態において、データ・ストレージ110の管理者がデータ・ストレージ110を管理してもよい。管理者はデータ・ストレージ110への制限されないアクセスを有してもよい。付加的または代替的に、管理者はデータ・ストレージ110内の記録を作成、検索、および更新してもよい。しかし、キー130がないとき、管理者は復号形の極秘データにアクセスできなくてもよい。一例として、バイオメトリック・データベースは、国立のバイオメトリック・データベース管理当局の職員である管理者によって管理されてもよい。管理者は、キー130を有することなくバイオメトリック・データベースの管理、記録の更新、新たな記録の作成、または記録の削除などができてもよい。一例として、管理者は、データベースに構造化クエリ言語(SQL:Structured Query Language)コマンドを発行するために用いられるカウンセルへの制限されないアクセスを有してもよい。しかし、管理者はキー130を有さないため、データ・ストレージ110に保持される暗号化データを復号できない。いくつかの例示的実施形態において、管理者は、キー130へのアクセスを有することなくキー130を用いて復号可能となり得る新たな暗号化データをデータ・ストレージ110に導入できなくてもよい。
クラスタ120の各SEPは、データ・ストレージ110に接続されてもよい。いくつかのSEPは、データ・ストレージ110へのデータの書込み、データ・ストレージ110からのデータの読取り、またはデータ・ストレージ110に対するデータの読取りおよび書込みなどを行うように構成されてもよい。いくつかの例示的実施形態においては、クラスタ120に含まれるSEPのみがデータ・ストレージ110の読取りおよび書込みを可能にされてもよく、データ・ストレージ110はクラスタ120のメンバーによって行われていない任意のアクセスの試みを拒絶するように構成されてもよい。
いくつかの例示的実施形態において、SEP122によって実行される権限付与エージェントは、キー130を用いてクライアント・データを暗号化して暗号化クライアント・データを得るように構成されてもよい。SEP122によって実行される権限付与エージェントは、暗号化クライアント・データをデータ・ストレージ110に保存してもよい。データ・ストレージ110に保持されるクライアント・データは、任意の非クラスタ・エンティティによって取得できなくてもよい。データ・ストレージ110に対する書込みアクセスのみを有するSEP122は、ライタSEPと呼ばれることがある。
いくつかの例示的実施形態において、SEP122によって実行される権限付与エージェントは、クライアント・デバイス140からクライアント・データを受信したことに応答してクライアント・データを暗号化するように構成されてもよい。暗号化クライアント・データは、クライアント・デバイス140によって直接取得できなくてもよい。付加的または代替的に、クライアント・デバイス140は、データ・ストレージ110に保持される極秘データの一部分のみを提供してもよい。結果として、クライアント・デバイス140からの情報漏洩の可能性は限定されたリスクとなり、データベース全体が非権限付与エンティティによってアクセスされるリスクはもたらさない。
いくつかの例示的実施形態において、SEP124によって実行される権限付与エージェントは、データ・ストレージ110から暗号化保存データを検索するように構成されてもよい。SEP124によって実行される権限付与エージェントは、キー130を用いて暗号化保存データを復号して、暗号化保存データの非暗号化形を得るように構成されてもよい。データ・ストレージ110に対する読取りアクセスのみを有するSEP124は、リーダ(reader)SEPと呼ばれることがある。
いくつかの例示的実施形態において、SEP124によって実行される権限付与エージェントは、クライアント・デバイス140からアクセス・クエリを受信したことに応答して、暗号化保存データを検索および復号するように構成されてもよい。クライアント・デバイス140は、データ・ストレージ110内の保持データへのアクセスを要求してもよい。クライアント・デバイス140はデータ・ストレージ110に直接アクセスするための許可を有さないため、クライアント・デバイス140は、クラスタ120またはたとえばSEP124などのクラスタ120のSEPに直接クエリを送信することによって、データ・ストレージ110に保存される暗号化データの指定された部分にアクセスすることを要求してもよい。クライアント・デバイス140がデータ・ストレージ110へのアクセスを有することなく、SEP124によって実行される権限付与エージェントがデータ・ストレージ110から関連保持データの暗号化形を検索し、キー130を用いて暗号化形を復号し、非暗号化データをクライアント・デバイス140に提供してもよい。当然のことながら、たとえクライアント・デバイスがデータ・ストレージ110へのアクセスを有すると仮定しても、クライアント・デバイスはキー130を有することができないため、クライアント・デバイスは保存データを復号できないだろう。
いくつかの例示的実施形態において、たとえばSEP122などの同じSEPが、データの暗号化および復号の両方を行うために使用されてもよい。付加的または代替的に、たとえばSEP122などのいくつかのSEPはデータ・ストレージ110への書込み専用のアクセス許可を有してもよく、たとえばSEP124などの他のものはデータ・ストレージ110への読取り専用のアクセス許可を有してもよい。
いくつかの例示的実施形態において、クライアント・デバイス140は、たとえばパーソナル・コンピュータ、ラップトップ、またはモバイル・デバイスなどの非SEPデバイスであってもよい。クライアント・デバイス140は人間のユーザによって、たとえばクエリの使用または専用のユーザ・インタフェースの使用などによってデータ・ストレージ110にアクセスするために用いられてもよい。いくつかの例示的実施形態において、クライアント・デバイス140は、ユーザ入力に基づいてクエリを生成するためのウェブに基づくユーザ・インタフェースを提供し、かつクラスタ120にそのクエリを発行するように構成されたサーバであってもよい。
当然のことながら、クライアント・デバイス140はSEP122または別のSEPに直接接続されてもよいし、されなくてもよい。いくつかの例示的実施形態において、クライアント・デバイス140は、クラスタ120のゲートウェイ・デバイス(図示せず)によって受信されるクエリを発行してもよい。ゲートウェイ・デバイスはそれに応答して、たとえば負荷バランシングの考慮、SEPのアクセス許可、またはクエリのタイプなどに基づいて、そのクエリを取り扱うクラスタ120のSEPを選択してもよい。場合によっては、いくつかのSEPが特定のタイプのクエリを取り扱うことが演繹的に指定されていてもよく、クラスタ120はクエリを適切なSEPに経路付けるように構成されてもよい。
バイオメトリック・データベースの例を参照して、内務省の職員は、国民からバイオメトリック識別データを集め、そのデータをバイオメトリック・データベース(例、110)に移すために権限付与されるだろう。内務省の職員は、たとえばクライアント・デバイス140などのデバイスを用いて、バイオメトリック・データベースにデータを加える更新または挿入クエリを発行してもよい。クエリはSEP122によって受信されてもよく、SEP122はキー130を用いてデータを暗号化し、その暗号化データをバイオメトリック・データベースに保存してもよい。一旦データが暗号化されると、職員は決してキー130に露出されないため、職員はバイオメトリック・データベースからデータを抽出することができなくてもよい。
他方で、バイオメトリック・データベースに保存されるデータは、居住者識別文書の発行または個人の身元の確認などのために用いられてもよい。たとえば警察官または治安当局の職員などの権限付与されたメンバーが、個人のバイオメトリック識別データの再チェックを要求してもよい。それを行うために、権限付与されたメンバーはクライアント・デバイス140を用いてもよく、自身の許可に基づいて、クラスタ120のたとえば124などのSEPにアクセス・クエリを送ることができてもよい。SEPはキー130を有してもよく、したがって関連する暗号化された個人のバイオメトリック識別データを検索し、暗号化された個人のバイオメトリック識別データを復号し、バイオメトリック識別データを処理して、クライアント・デバイス140を介して権限付与されたメンバーに処理結果を提供することができてもよく、ここで権限付与されたメンバーはキー130を知ることも、バイオメトリック・データベースへの直接アクセスを有することもない。いくつかの例示的実施形態において、ユーザの許可に基づいて、ユーザは特定のタイプのクエリの実行または異なる粒度のデータの受信などが制限されてもよい。一例として、ある職員は新たなデータの挿入のみができてもよく、一方で他の職員は特定の人々に関する個別のデータを検索するために権限付与されていてもよい。さらに他の職員は確認プロセスへのアクセスを有してもよく、この確認プロセスは、たとえばバイオメトリック読取りを得てそれをSEPに送信し、次いでSEPがそれを保存されたバイオメトリック・データに対して確認することなどによって、職員をバイオメトリック情報自体に露出させることなくバイオメトリック情報の正しさを確認する。さらに他の職員は、限定数のクエリを発行するために権限付与されてもよい。
いくつかの例示的実施形態において、クラスタ120のSEPは、たとえばクラスタ120の一部ではない他のSEPなどの任意の非クラスタ・エンティティ、または任意の他の装置にキー130を転送することを可能にされなくてもよい。SEPは、自身のユーザ・インタフェースにおいてキー130を示したり、別様に人間のユーザにキー130を提供したりしないようにプログラミングされてもよい。クラスタ120のSEPおよびそれによって実行されるその他の非権限付与エージェントのユーザは、SEPへのアクセスを有していてもキー130を得ることができなくてもよい。
いくつかの例示的実施形態において、SEP128は、たとえば新たなSEP129などの新たなSEPをクラスタ120に加えるように構成されてもよい。増加クラスタ120bが定められてもよい。SEP128は、増加クラスタ120bを形成するときにクラスタ120に新たなSEP129を加えるプロセスの一部として、セキュアな通信チャネルを通じて新たなSEP129にキー130を転送するように構成されてもよい。SEP128はグロワーSEPと呼ばれることがある。
いくつかの例示的実施形態において、たとえばグロワーSEPなどの別のエンティティにキー130を転送する任意のSEPは、キーを転送する前にその新たなSEPが確かに権限付与エージェントを実行するSEPであることを認証を用いて確認してもよい。新たなSEPは、送られたキーを受け入れる前に、グロワーSEPが確かに権限付与エージェントを実行するSEPであることを認証を用いて確認してもよい。
いくつかの例示的実施形態において、新たなSEP129は任意のコンピュータ装置にキー130を転送することを禁じられてもよい。いくつかの例示的実施形態において、新たなSEP129自体はグロワーSEPにならなくてもよく、結果として増加クラスタ120bのサイズの増加を続けられなくてもよい。
いくつかの例示的実施形態において、SEP128は新たなSEP129に対して、たとえば数分間、1時間、または1日などの予め定められた寿命を設定するように構成されてもよい。新たなSEP129は、予め定められた寿命の最後にクラスタ120bから除去されるように構成されてもよい。新たなSEPは、自身で自動的にクラスタを出るか、またはたとえばSEP128もしくはクラスタ120の別の管理デバイス(図示せず)などの別のデバイスによって増加クラスタ120bから除去されるなどするように構成されてもよい。いくつかの例示的実施形態において、新たなSEP129は、増加クラスタ120bを出るときに自身が保持するキー130のコピーを削除またはパージするように構成されてもよい。
いくつかの例示的実施形態において、SEP128は、クラスタ120内のSEPの数がたとえば2、3、または10などの予め規定された閾値未満であることに応答して、クラスタ120に新たなSEP129を加えるように構成されてもよい。いくつかの例示的実施形態においては、たとえばキー130のすべてのコピーを失う可能性を減らすなどのために、最小限の数のSEPを維持することが望ましくてもよい。SEPの数が最小閾値に達するとき、キー130の十分な数のコピーが共存することを確実にするために、グロワーSEPはクラスタ120に加えられる新たなSEPの生成を開始するように構成されてもよい。
付加的または代替的に、SEP128は、SEP122またはSEP124が非動作的になったことに応答してクラスタ120に新たなSEP129を加えるように構成されてもよい。新たなSEP129は、非動作的SEPと置き換わるように構成されてもよい。いくつかの例示的実施形態において、新たなSEP129の寿命は、非動作的SEPが再び動作的になるまでに十分であると推定される予め定められた寿命に限定されてもよい。
当然のことながら、場合によってはたとえばSEP122、SEP124、またはSEP126などの他のSEPが、クラスタ120またはクラスタ120bに新たなSEPを加えることができてもよい。たとえば新たなSEP129などの新たなSEPは、デフォルトで、増加クラスタ120bに新たなSEPを加えることを禁じられていてもよい。しかし場合によっては、たとえば新たなSEP129が増加クラスタ120bのバックボーンの一部になった場合、またはグロワーSEPが非動作的になった場合などに、クラスタ120の管理者が新たなSEP129に新たなメンバーを加えることを許可してもよい。いくつかの例示的実施形態において、管理者はSEPの寿命を元の予め定められた寿命よりも延長する許可を有してもよい。
ここで、主題のいくつかの例示的実施形態による方法の流れ図を示す図2を参照する。
ステップ210において、クライアント・データが受信されてもよい。いくつかの例示的実施形態において、クライアント・データは、コンピュータ環境内でたとえば図1の122などのSEPによって受信されてもよい。SEPは、たとえば図1の110などのデータ・ストレージとの接続性を有する、たとえば図1の120などのSEPのクラスタのメンバーであってもよい。データ・ストレージは、キーを用いて暗号化された暗号化データを保持してもよい。キーは、クラスタのSEP間で共有されてもよい。前記クラスタの各SEPは、キーを用いてデータを処理する際にデータの機密性を維持するように構成されてもよい。
いくつかの例示的実施形態において、クライアント・データは、たとえば患者のプロフィル、医療情報、国家のセキュリティ・データ、担保付き支払い方法のデータ、金融記録、または機密データなどの極秘データを含んでもよい。極秘データは、将来の使用のためにセキュアなデータ・ストレージ内に内密に保存されることが望まれてもよい。
いくつかの例示的実施形態において、クライアント・データは、たとえば図1の140などのクライアント・デバイスから受信されてもよい。クライアント・デバイスは、たとえばサーバまたはコンピュータ装置などの非SEPデバイスであってもよい。クライアント・デバイスは、人間のユーザによって動作されてもよいし、されなくてもよい。クライアント・デバイスは、ユーザが発行されるべきクエリを規定することを可能にしてもよい。クエリは、新たなデータを導入するか、またはデータ・ストレージ内に存在する記録を更新する書込みクエリであってもよい。クライアント・デバイスによって実行されるネイティブ・プログラム、ユーザ・デバイスによって実行されるときにグラフィカル・ユーザ・インタフェース(GUI:Graphical User Interface)を表示し、かつクエリをクライアント・デバイスに転送するプログラム、またはクライアント・デバイスによって実行されて、たとえばウェブ・ブラウザを実行するコンピュータなどのユーザ・デバイスを用いてユーザにアクセス可能であるウェブに基づくインタフェースなどを用いて、クエリが規定されてもよい。クライアント・デバイスはキーへのアクセスを有することも、こうしたキーを保持することもなくてよい。いくつかの例示的実施形態において、クライアント・デバイスはデータ・ストレージへの直接アクセスを有さなくてもよい。
いくつかの例示的実施形態において、クライアント・デバイスはクライアント・データをSEPに直接提供してもよい。付加的または代替的に、クライアント・デバイスはクラスタのゲートウェイにコンタクトしてもよく、ゲートウェイはクライアント・デバイスからの通信を処理のための目標SEP(単数または複数)に向かわせてもよい。
ステップ215において、キーを用いてクライアント・データが暗号化されて、暗号化クライアント・データが得られてもよい。クライアント・データは、キーを有するSEPのみがそれを復号できるようなやり方でコード化されてもよい。いくつかの例示的実施形態において、ステップ215は、SEPによって実行される権限付与エージェントによって行われてもよい。
いくつかの例示的実施形態において、クライアント・データは、暗号化アルゴリズムを用いて暗号化されてもよい。キーは暗号化アルゴリズムの一部であるか、または暗号化アルゴリズムのパラメータなどであってもよい。SEPは、キーを用いて暗号化クライアント・データを復号できてもよい。
ステップ220において、暗号化クライアント・データはデータ・ストレージに保存されてもよい。
ここで、主題のいくつかの例示的実施形態による方法の流れ図を示す図3を参照する。
ステップ230において、たとえば図1の124などのSEPによって、クライアント・クエリが受信されてもよい。SEPは、データ・ストレージとの接続性を有するSEPの、たとえば図1の120などのクラスタのメンバーであってもよい。データ・ストレージは、たとえばステップ220において保存された暗号化クライアント・データなどの、キーを用いて暗号化された暗号化データを保持してもよい。
いくつかの例示的実施形態において、クエリは、たとえば図1の140などのクライアント・デバイスによって得られるべき保存データの部分を規定してもよい。付加的または代替的に、クエリは自身に基づく結果をクライアント・デバイスに提供する前に、処理のためにSEPによって得られるべき保存データの部分を規定してもよい。
ステップ235において、SEPによってデータ・ストレージがアクセスされてもよい。いくつかの例示的実施形態において、データ・ストレージはクラスタのSEPのみによってアクセス可能であってもよい。SEPは、クエリを実現するために関係する暗号化データを検索してもよい。
ステップ240において、データ・ストレージから検索された暗号化データは、SEPによってキーを用いて復号されてもよい。暗号化データは、そのSEPまたはクラスタからの異なるSEPによって、キーを用いて過去に暗号化されていてもよい。復号によって、暗号化データの非暗号化形が得られてもよい。いくつかの例示的実施形態において、ステップ240は、SEPによって実行される権限付与エージェントによって行われてもよい。
ステップ245において、クエリが実現されてもよい。SEPは、クエリを実現して関連情報をクライアント・デバイスに提供するために、暗号化データの非暗号化形を使用してもよい。いくつかの例示的実施形態において、クエリは、極秘データ自体をクライアント・デバイスに露出することなく、たとえば権限付与エージェントなどによって、SEPでオンボードで行われる極秘データの処理を必要としてもよい。処理が完了してから、処理の結果(例、PASS/FAIL結果)を戻すことによって、クエリが実現されてもよい。付加的または代替的に、クエリは、たとえば極秘データを保持する記録のあるフィールドの内容などの、極秘データの一部分を提供することを要求してもよい。こうした場合、クライアント・デバイスには、最終的にデータ・ストレージに保持される極秘データの一部分が提供されてもよい。クライアント・デバイスがデータ・ストレージへの直接アクセスを有することも、その中に保持される暗号化データを復号する独立の方式を有することもなく、クエリが実現されてもよい。
ここで、主題のいくつかの例示的実施形態による方法の流れ図を示す図4を参照する。
ステップ250において、キーが自動的に生成されてもよい。いくつかの例示的実施形態において、キーはSEPのクラスタによって生成されてもよい。
いくつかの例示的実施形態において、キーはクラスタの1つまたはそれ以上のSEPによって生成されてもよい。一例として、複数のSEPの各々がキーの異なる部分を生成することによって一緒にキーを生成してもよく、たとえばそれらの異なる部分を連結することなどによってそれらがともに組み合わされてキーを作成してもよい。別の例として、単一のSEPがキーを生成してもよい。
ステップ255において、キーに対して合意するために、クラスタによってコンセンサス・プロトコルが使用されてもよい。コンセンサス・プロトコルは、さまざまなSEPが共通のキーに対して合意することを可能にしてもよい。いくつかの例示的実施形態において、SEPの各々がキーの候補値を生成し(例、ステップ250)、互いに通信して、キーに対する単一のコンセンサス値に合意してもよい。付加的または代替的に、コンセンサス・プロトコルはステップ250において生成された単一の候補キーに対して使用され、コンセンサス値に達するまで反復的に繰り返されて反復ごとに新たな候補キーを生成してもよい。
いくつかの例示的実施形態において、コンセンサス・プロトコルは、クラスタに対するキーを指示するリーダーSEPに合意するために適用されてもよい。付加的または代替的に、コンセンサス・プロトコルは、SEPの過半数またはその他の定数がキーに対して合意することに基づいてもよい。
いくつかの例示的実施形態において、コンセンサス・プロトコルは、設定の際にSEPに提供されるSEPではない1またはそれ以上の管理者によって実行されてもよい。
いくつかの例示的実施形態において、コンセンサス投票に基づいて、クラスタはクラスタによって用いられるキーに合意してもよい。いくつかの例示的実施形態において、この決定は取り消し不能であってもよい。付加的または代替的に、クラスタは第2のキーに合意することによって、キーを変えることを定期的に決定してもよい。極秘データはキーを用いて復号され、再び保存される前に第2のキーを用いて暗号化されてもよい。
ステップ260において、キーはクラスタのすべてのメンバーに分配されてもよい。いくつかの例示的実施形態において、キーはリーダーSEPによって、またはコンセンサス・プロトコルを適用するステップの一部としてメンバーに分配されてもよい。リーダーSEPは、すでにキーを保持していないクラスタの各SEPにキーを転送するように構成されてもよい。いくつかの例示的実施形態においては、コンセンサス・プロトコルの際にすでにSEPにキーが通知されているため、分配は必要ない。
ステップ265において、データの機密性を維持するためにキーが用いられてもよい。キーは、データを処理する際にデータの機密性を維持するためにクラスタのSEPによって使用されてもよい。キーは任意の非クラスタ・エンティティには利用できなくてもよく、SEPは任意の非SEPデバイスおよびクラスタの新たなメンバーではないSEPデバイスにキーを分配することを禁じられてもよい。
いくつかの例示的実施形態において、キーは、データをデータ・ストレージに保存する前に暗号化し、かつデータを使用する前に暗号化データを復号するために用いられてもよい。
ここで、主題のいくつかの例示的実施形態による方法の流れ図を示す図5を参照する。
ステップ270において、クラスタのメンバーの数が予め定められた閾値未満であると判断されてもよい。予め定められた閾値は、たとえば約2、約3、または約10などであってもよい。いくつかの例示的実施形態において、予め定められた閾値はクラスタの目標サイズに関連してもよく、たとえば所望の最適サイズの約40%などであってもよい。いくつかの例示的実施形態において、予め定められた閾値は、最小絶対サイズと最小相対サイズとの組み合わせであってもよい。
いくつかの例示的実施形態において、閾値は、クラスタのすべてのSEPの機能不全をもたらしてキーを失う可能性のある大災害のリスクの可能性に関係してもよい。いくつかの例示的実施形態において、閾値はSEPの所望の冗長性を提供してもよい。付加的または代替的に、閾値は、SEPがたとえば少なくとも3つの異なる場所などの異なる地理的位置に分散されることを要求してもよい。付加的または代替的に、閾値は、すべてのSEPが同時に機能不全を起こすリスクを減らすリスク因子に関係してもよい。
付加的または代替的に、その判断は、クラスタのSEPが非動作的になったという判断であってもよい。結果として、クラスタの非動作的SEPの代わりに新たなSEPを加えることが望まれてもよい。
ステップ275において、クラスタに新たなメンバーが加えられてもよい。新たなメンバーはSEPであってもよい。いくつかの例示的実施形態において、新たなSEPは、クラスタ内にすでに存在するSEPと同じタイプのSEPであってもよい。
いくつかの例示的実施形態において、新たなメンバーは、グロワーSEPによってクラスタに加えられてもよい。グロワーSEPは、クラスタに新たなメンバーを加えるように構成されたクラスタのメンバーであってもよい。グロワーSEPは、ステップ270の判断に応答して新たなメンバーを加えるように構成されてもよい。グロワーSEPは、クラスタの一部になったときに新たなSEPによって使用されるべき、新たなSEPにロードされるべきソフトウェアを送ってもよい。当然のことながら、新たなメンバーを加えるタスクに加えて、グロワーSEPはデータ・ストレージへの書込み、そこからの読取り、またはそれらの組み合わせを行う際に、データを処理するように構成されてもよい。
付加的または代替的に、新たなメンバーはクラスタの任意の元のメンバーによって加えられてもよい。クラスタの元のメンバーは、クラスタが最初に生成されたときにクラスタに加えられたSEPであってもよい。元のメンバーは、クラスタに新たなメンバーを加えること、または新たなSEPにキーを転送することなどに対する許可を有してもよい。たとえば新たなメンバーなどの、元からのものでないSEPは、新たなメンバーを加えることを許可されてもよいし、されなくてもよい。
いくつかの例示的実施形態において、新たなメンバーは一時的なメンバーであってもよい。グロワーSEPは、新たなメンバーに対する予め定められた寿命を設定するように構成されてもよい。新たなメンバーは、予め定められた寿命の最後にクラスタから除去されるように構成されてもよい。予め定められた寿命は10分間、1時間、10時間、または1日などに設定されてもよい。予め定められた寿命は新たなメンバーを加える理由に基づいて設定されてもよく、一例として、たとえば作業負荷サージの際に新たなデータを加えるなどの特定のタスクを行うために新たなメンバーが加えられた場合は、新たなSEPが新たなデータを加えるために十分であるように予め定められた寿命が設定されてもよい。別の例として、非動作的SEPと置き換えるために新たなSEPが加えられる場合は、予め定められた寿命は非動作的SEPの回復の予想時間に基づいてもよい。
ステップ280において、新たなメンバーにキーが転送されてもよい。新たなメンバーは、キーを用いてデータを処理する際にデータの機密性を維持するように構成されてもよい。新たなメンバーは、キーを任意の非クラスタ・エンティティに出力すること、またはキーをクラスタの一部ではない任意のデバイスに転送することを禁じられてもよい。
いくつかの例示的実施形態において、メンバーは、クラスタの管理者によって加えられてもよい。グロワーSEPは、新たなメンバーにキーを提供するように構成されてもよい。
いくつかの例示的実施形態において、グロワーSEPはキーを転送する前に、新たなメンバーがクラスタに加えられることを許容できる権限付与SEPであることを確認するように構成されてもよい。グロワーSEPは、新たなメンバーが権限付与エージェントを実行しているかどうかをチェックしてもよい。付加的または代替的に、新たなメンバーはキーを受け入れる前に、たとえば認証などに基づいてグロワーSEPが権限付与エージェントを実行するSEPであることを確認するように構成されてもよい。
いくつかの例示的実施形態において、新たなメンバーは、グロワーSEP、クラスタの管理者、または新たなメンバーを加えた任意の他のSEPによって提供された許可に基づいて、たとえばクラスタに接続されたデータ・ストレージへの書込みまたはそこからの読取りなどのためにキーを用いるように構成されてもよい。新たなメンバーは、キーを用いてクライアント・データを暗号化して暗号化クライアント・データを得て、その暗号化クライアント・データをデータ・ストレージに保存するように構成されてもよい。付加的または代替的に、新たなメンバーは、前記データ・ストレージから暗号化保存データを検索し、キーを用いて暗号化保存データを復号して、暗号化保存データの非暗号化形を得るように構成されてもよい。なお、新たなメンバーは、たとえばデータ・ストレージに対する書込み専用または読取り専用のアクセス許可を有することなどによって、特定の活動を行うように制限されてもよい。
ステップ285において、新たなメンバーの予め定められた寿命が到達されたと判断されてもよい。いくつかの例示的実施形態において、この判断はグロワーSEPによって行われてもよい。付加的または代替的に、この判断は新たなメンバーによって行われてもよい。
ステップ290において、クラスタから新たなメンバーが除去されてもよい。いくつかの例示的実施形態において、新たなメンバーがステップ285において予め定められた寿命が到達されたと判断したことに応答して、新たなメンバーはキーをパージしてクラスタから出てもよい。いくつかの例示的実施形態においては、新たなメンバーがキーをパージすることに依拠する代わりに、たとえば図4に関して示したとおり、代替的なキーが定められて用いられてもよい。
実施形態
開示される主題の実施形態が実現された。この実施形態ではすべての極秘データが、インテル(R)のSGX(TM)エンクレーブ(Enclaves)の内側で実行されるソフトウェアのみに知られるキーによって暗号化された。エンクレーブは、暗号化データに対するすべての計算を実行するインテル(R)Skylake(TM)プロセッサにおける特殊な計算モードである。リモート認証能力(コードおよびプラットフォーム確認機構)と結合して、エンクレーブはすべてのデータ関係の動作を実行するための所望のロボットの働きをし得る。この実施形態は、暗号化データに対するキーがエンクレーブの内側で実行される権限付与エージェントの内側にのみ存在するために、暗号化データはエンクレーブを介してアクセスされたときにのみ有用となり得ることを確実にする。ある意味で、この実施形態は特権管理者およびソフトウェア環境を、セキュアな実行環境で実行されるロボット・コードで置き換えるものである。
この実施形態において、もし永続的なハードウェアの故障によって暗号化キーが失われれば、データは無益なものとなる。この実施形態は、単一のエンクレーブではなく、同じ秘密の暗号化キーを共有するエージェントのクラスタを実行する。このことはキーの耐久性を確実にすると同時に、データ・サービスのスケーラビリティ達成の助けとなる。
ここで、実施形態の概略図を示す図6を参照する。
この実施形態は、「AEキー」と呼ばれる秘密キーを共有するエンクレーブ・エージェントの集合を含む。たとえば410、412、414などのエージェントは、一般的にオン・プレミスまたはクラウド内で実行され得る。それらのエージェントがエンクレーブにおいて実行されるという事実は、それらが信頼される環境または信頼されない環境で実行されていても、それらのセキュリティを確実にする。この実施形態は、これらのエージェントをコア(core)エージェント(「C」、たとえば410など)、リーダ(readers)(「R」、たとえば414など)、およびライタ(writers)(「W」、たとえば412など)に分類する。コア・エージェントは、AEキーを活動させ続けてこのキーをリーダおよびライタに提供することの責任を負う。このように、いくつかの物理的位置またはデータ・センタにコアを分散させて、通常は各々の位置に少数のコア・エージェントを伴うことが賢明である。リーダおよびライタは、目下の作業負荷を取り扱うために要求に応じて作成されるべきである。このように、コア・エージェントの数は不変のままでよくバランスが取れているのに対し、リーダおよびライタは作業負荷の特徴によって変動することが予期される。図6は、3つの異なる物理的位置420、422、424におけるエージェントの推奨される配置の例を示す。
この実施形態の設計は、エージェント・エンクレーブの内側で行われる活動を最小化し、可能なときはいつも非セキュア・コンピュータ・ノードに責任をリレーすることを試みている。ストレージ430はこの主要な例であり、ここでエージェントは共有ストレージに暗号化データを書込み、共有ストレージはさまざまな配置場所にわたる利用可能性および信頼性を提供する。これはオブジェクト・ストレージ、または内蔵型の複製を伴うクラスタ化ファイルシステム、NoSQLデータベース、または複製を伴う標準的データベースであり得る。
認証サービス440は、エンクレーブ・コードとシステム内のさまざまなエンティティとインテル(R)認証サービス(IAS(TM):Intel(R)Attestation Service)との中間段階であり、ここではSGX(TM)ハードウェア確認が実際に行われる。この実施形態の設計は、一旦エンクレーブが作成されると、それに対するリモート認証が行われて公的に確認可能なレポート(MRENCLAVEの値によって表されるエンクレーブ・アイデンティティを含む)ならびに認証および通信のための特定のエンクレーブ・パブリック・キーを生成することを要求する。一旦この確認レポートが公表されると、それはさまざまなエンティティがエンクレーブの妥当性を確認してそれによって新たなセキュアな通信チャネルを作成するための手段の役割をする。
管理450は、クラスタの最初の開始ならびに利用可能性および耐久性に対するクラスタのスケーリングの両方に対するエージェント・ノードの作成(および終了)を含むクラスタ全体の編成を担当する。管理450を構成する主要なサブコンポーネントは2つある。オーケストレータ452サブコンポーネントは、新たなエージェントの作成および冗長または機能不全エージェントの終了を含む実際の動作の駆動を担当する。これらの動作は手動で取り扱われ得るが、この実施形態においてはエージェント内で自動DevOps機構が実現される。新たなエージェントが作成された後、それらが複数の管理者によって承認されて登録されるまで、それらの新しいエージェントは完全に機能的にならない。登録は第2のサブコンポーネントである掲示板454において行われ、掲示板454はクラスタの決定的状態の役割をする認証レジストリである。掲示板454におけるこのエージェント情報は、公的クライアントおよび実際のエージェント・エンクレーブの両方による消費のために公開される。掲示板454の主要データは、さまざまなエージェントのリスト、それらの役割、パブリック・キー、および認証レポートを含むクラスタ構成を含む。
クライアント・アイデンティティ管理(IdM:Identity Management)460は、IT組織がどのようにユーザ・アイデンティティおよびそれらの特権を規定するかに対処する管理コンポーネントである。我々のシステムにおいて、IdM460は、クライアント・エンティティおよびあるエンティティが何の許可またはアクセス権を有するかを規定する責任を負う。バイオメトリックDB使用の場合、クライアントは国境管理職員またはキオスクであってもよい。健康管理サービスなどのアクセス制御中央使用の場合、これは各職員がどの情報を検索する資格を有するかに関する厳格なポリシーを伴う健康管理職員のクレデンシャルであり得る。リーダおよびライタの役割は、IdM460によって述べられるポリシーを実施することである。なお、こうしたシナリオにおいて、IdM460はチェーンにおける弱いリンクとなり、攻撃を受けやすくなり得る。この実施形態の設計は、たとえ管理者がデータに自由にアクセスするためのツールを有しているときでも、このデータ・アクセスは検出されないものではなく、少なくともオーディット・トレイルを有する状況を作ることを試みるものである。
設定において、IdM460を保護するための付加的な方策を用いることができる。たとえば、クライアントおよびプロパティのリストがあまり動的でない場合、それらはセキュアな方式でエージェントに配達されて、それらを用いる前にそこで監査され得る。加えて、いくつかのキー・クレデンシャルは、この情報のタンパリングを防ぐためにエージェント・コードにハードコード化されていてもよい。最後に、たとえば単独の個人が単一の日に抽出できるデータの量に対する厳格な制限を設ける(かつ、別様には特権を与えられたユーザによる疑わしい挙動にフラグを立てる)などのために、いくつかの厳格なルールが与えられて常に実施され得る。
クライアント470は、この実施形態によって管理されているデータのユーザである(例、国境管理キオスクまたは健康管理シナリオにおける医師/研究所)。クライアント470は、エージェントのパブリック・キーに基づいてセキュアな通信チャネル(例、セキュア・ソケット・レイヤー(SSL:Secure Sockets Layer))を介してリーダおよびライタと対話する。それらのクライアントがどのように配置され、どのシステムおよびどの言語で実現されるかは限定されない。
実行中のクラスタにおいて、クライアント470はリーダおよびライタ・エージェント(例、414、412)によって扱われ、それらのエージェントのリストは掲示板454を介してアクセスされ得る。(掲示板454を信頼せずに)リーダ/ライタのアイデンティティをさらに確認することを望むクライアントは、掲示板454において公開されている対応のエンクレーブの認証レポートを確認することによって、それを行ってもよい。次いでクライアント470は、リーダ/ライタによってSSLセッション(または代替的なセキュア通信チャネル)を開き、それを通じて自身の入力を送る。エージェントはセキュアな部分とセキュアでない部分とでできている。標準的なプロセスとして実行されるセキュアでない部分は、エンクレーブにおいて実行されるセキュアな部分とのすべての通信を取り扱う。クライアントとのすべての対話において、最初のステップは、このクライアントが要求するタスクを行うために十分な特権を有するかどうかを確認することである。この確認はIdM460からの情報に基づく。
特権が確立されてから、リーダまたはライタは自身のそれぞれのタスクを行って、セキュアなチャネルを通じて応答を戻し得る。なお、応答のロジックはかなり複雑であってもよく、きめ細かいアクセス制御ポリシーを含み得る。たとえば、リーダは(何らかのパラメータXに対する)Xクエリのみに応答できるか、または何らかのデータ依存性のルールが満たされたときにのみ応答できる。
リーダおよびライタは、オーケストレータ452による要求に応じて生成される。それらは認証されて掲示板454に挿入される。掲示板454において可視になると、それらは開始され、掲示板454に従ってそれらの役割が確認され、それらはコア・エージェントの1つ(例、410)から秘密キーのAEキーを受信する。初期設定の際に、それらは自身の時間リースを規定する制限時間を保存する(このために、インテル(R)SGX(TM)SDKにおいて提供されるsgx_get_trusted_time関数が用いられてもよい)。リーダおよびライタは時間制限されており、自身のリースの経過後にそれらは自滅する(かつAEキーを消去する)か、または自身のリースを延長するべきである。一般的に、セキュアな部分は受動的であってクロックに基づく動作を駆動できないため、リーダのリースの延長はエージェントのセキュアでない部分によって駆動されるべきである。しかし、このコードは信頼できないため、この実施形態はクライアントの要求取り扱いコードの内側にリース検証ステップを加えることによって、エンクレーブはそのリースが経過したかどうかを知るためにローカル・クロックをテストして、もしそうであればさらなる要求を拒否する。もしセキュアでない部分が正しく動作していれば、エンクレーブは時間制限が理由でクエリを拒絶しないだろう。時間リースの延長を実現するためのいくつかの選択肢が存在し、最も単純なものはリーダ/ライタ・エージェントが管理掲示板においてまだ有効かどうかをチェックし、もしそうであればエージェントのセキュア部分に新たなリースをセットアップすることである。
クラスタの開始は最も脆弱な段階の1つであり、たとえば悪質コード投入、分割クラスタまたはシャドー・エンクレーブの作成などのさまざまな攻撃を受けやすい。この感受性のために、この実施形態はクラスタ開始に対する注意深いアプローチを取ることによって、完全に成功したセットアップのみが許容可能となり、任意の失敗はプロセスの完全な中断およびスクラッチからの再スタートをもたらす。クラスタは、このプロセスが完了してリード(lead)コア・エージェントによって確認された後に初めて書込みおよび読取りに対して動作的となり、データが投入される。エージェント・エンクレーブの内側で複雑なリーダー選挙コードを実施するのではなく、このプロセスは管理レベルで取り扱われ、掲示板454において公表される。管理450は、コア・エージェントのリストおよび指定されたリーダーを含むクラスタ構成に合意し、以下の段階においてセットアップを開始する。
(1)エージェント・エンクレーブの作成。エージェントをホストする各ノードにおいて、エージェント・コードがアップロードされてエンクレーブが生成される。この段階において、エージェントは自身が消費することとなる情報を確認する能力に対して決定的であるいくつかの重要なパブリック・キーを得る。具体的には、すべての認証レポートを確認するためにインテル(R)Report Signing Public Keyが用いられ、管理掲示板454から読取られた情報を確認するために管理450パブリック・キーが用いられる。
(2)エージェントのシールおよび認証。エンクレーブが生成された後の第1のステップは、標準的なシールおよび認証段階を開始することである。この段階において、インテル(R)の認証サービスによるエージェント・エンクレーブの検証を含むレポートが作成される。この段階は、認証サービス440によって管理される。生成されるレポートは、エージェントのコードの測定値、およびエンクレーブとその新たに生成されたパブリック・キーとのエンタングルメントを含む。このパブリック・キーは、エージェントとのすべての外部通信の手段である(通信の暗号化およびその認証の両方に対する)。認証段階の一部として、エージェント・エンクレーブは自身のコードの測定値を作成するように要求される。このステップは、エージェント測定値(AE-MRと示される)を記録するためにも用いられ、このエージェント測定値は任意の将来の対話においてその他のエージェントを確認するために後で用いられることとなる。
(3)管理掲示板の投入。ここで管理450は自身の掲示板454をセットアップして、そこにクラスタを形成するすべてのエージェントのリストを投入できる。各エントリはエージェントの役割(コア/リーダ/ライタ)、そのIPアドレス、そのパブリック・キー、およびエージェントのコード測定値とそのパブリック・キーとをエンタングルする完全な認証レポートを保持するべきである。
(4)エージェントの初期設定。ここでクラスタのビューによってさまざまなエージェントを初期設定できる。これは、掲示板454からクラスタ・リストを読取ること(およびリストの妥当性を確認すること)によって行われる。これは、エージェントがクラスタにおける自身のそれぞれの役割を想定するための手段である。
(5)コア・エージェントのハンドシェークおよびキー作成段階。この段階において、指定されたリード・コア・エージェントは主要なキー(AEキー)を生成する。残りのコア・エージェントはリード・エージェントにコンタクトして、以下に考察されるコアからエージェントへのキー・ハンドオーバ・プロトコルを用いてAEキーを検索しなければならない。セットアップ段階の感受性のため、かつ分割クラスタを作成するさまざまな攻撃を避ける手段として、リード・コア・エージェントは、AEキーをその他すべてのコア・エージェント(代替的には予め規定された閾値のコア・エージェント)に送ることに成功したときにのみ、このステップの成功を承認することとなる。このことが所与の時間閾値以内に起こらなかった場合、このプロセスは中断されてステップ1から再スタートされる。他方で、成功したプロセスは最後にリード・コア・エージェントが「読取りを行う」メッセージを生成してそれを掲示板454にポストする(このメッセージはリード・コアのパブリック・キーを用いて確認され得る)。このメッセージがポストされた後に初めて、クラスタがIO動作のためにアクティブになる。なお、リード・コア・エージェントの役割は新たなクラスタを提出することのみに関するため、リード・コア・ノードの(一時的または永続的な)故障は、単なる短期間サイクルの事項である。こうした故障はプロセスの中断と、エージェントの新たなセットによるスタートとをもたらすことになる。
(6)ライタおよびリーダ・エージェントのセットアップ。クラスタのコアが設定されてから、同じハンドシェークおよびキー提供がライタおよびリーダ・エージェントとコア・エージェントとの間で行われ得る。この対話は、コアからエージェントへのキー・ハンドオーバ・プロトコルと同じプロトコルに従う。
この実施形態のコアからエージェントへのキー・ハンドオーバ・プロトコル。上述のとおり、新たなエージェントは掲示板454からコア・エージェントにコンタクトすることによって、AEキーに対する要求を開始する。通常は地理的に近いところが選択されてもよく、この選択およびハンドオーバの開始はエージェントのセキュアでない部分によって行われる。ハンドオーバ・プロセスの流れは、関与する2つのエージェントの相互認証テストを含む。なお、キー・ハンドオーバは極秘動作であり、管理450に依拠できない。そうではなく、コア・エージェントは、彼のコードとまったく同じコード測定値を有するエージェントにのみキーを提供する。この方式で、たとえ新たなエージェントが悪意をもって作成されたとしても、その作成を誰がどこで開始したかにかかわらず、それが真のエンクレーブで実行されて合法的動作のみを行うことが確実にされる。反対方向も等しく重要であり、新たなエンクレーブが悪質な機関(クラスタ全体を損なわれたキーによって動作させる可能性がある)からキーを受信しないことを確実にする。
なお、合法的エージェントの測定値(MRENCLAVE)は、エージェントが適切なエージェントと通信していることを確認できるようにするために、エージェント自身に知られる必要がある。しかし、この測定値をコードにハードコード化することはできない。なぜなら、コードの任意の部分は測定値自体に含まれるからである(測定値はハードコード化されると変化するだろう)。このことを解決する1つの選択肢は、掲示板454において測定値を公開させて、それを認証が開始する直前に読取ることである(測定値はパブリック・キーと並んでユーザ・データに加えることができ、よってエンクレーブの認証レポートにおいて確認され得る)。この方法においては、異なる測定値のリストを有することができ、その1つはコア・エージェントに対するもの、他のものはリーダおよびライタ・エージェントに対するものである。問題は、このことが掲示板454に大きく依拠することである。代わりにこの実施形態が用いる解決策では、すべてのエージェントがまったく同じコードを有し、まったく同じコードを実行するエンクレーブのみとキーを共有することとなる。この実施は、コードに起こり得るソフトウェア・アップグレードの際に制限を有するが、キーの秘密特性が正しいコードの実施(公的に確認され得る)のみに依拠し、管理450の損傷に影響され得ないという点で、強力なセキュリティの利点を有する。
オーケストレータ452はクラスタの開始を駆動するが、クラスタの連続的動作も担当している。オーケストレータ452は、ノード故障の場合にコア・エージェントを加えること、および作業負荷が増大または縮小する際にサービスの高い利用可能性を確実にするためにリーダおよびライタを加える(または停止させる)ことの責任を負う。こうした動作はすべて、2つの主要タイプの活動を必要とする。第1の活動はエージェントに対する直接の動作であり、それはエージェントの作成、その認証の開始、およびその動作のスタートを含み、第2の活動はエージェントを掲示板454に登録することである。
動作の態様に対して、この実施形態はドッカー化エンクレーブを用いて、たとえばKubernetes(TM)またはMarathon(TM)などの管理ツールを使用する。これらの管理動作は信頼されないエンティティによって実行され得る。なぜなら、エンクレーブは掲示板454に相談することなく任意の活動を開始することはないからである。よって、編成活動の不正行為は失敗またはサービスの拒否をもたらし得るが、我々の主要なセキュリティの目標には影響しないだろう。登録される前に、新たなエントリは最小数kの管理者の承認を必要とし、ここでkは動作自体に依存する設定可能なパラメータである。たとえば、比較的頻繁なリーダまたはライタの追加などである。
掲示板454の役割は、実行中のライブ・エージェントの中心的かつ決定的なリストを形成することである。掲示板454は、いくつかの管理エンティティによって管理される分散サービスである。このサービスは次の主要特性を達成すべきである。1)一貫性 - 掲示板454において提示されるデータは任意のオブザーバに対して同じとなる。2)認証および活動性 - 掲示板454のデータ読取りは偽造できず、古いデータは識別され得る(これは中間者攻撃を避けるためである)。
この実施形態は、掲示板454に対して2つの代替的実施を使用する。
(1)掲示板エンクレーブ。この実施においては、掲示板454を管理するために特別なエンクレーブが作成される。このエンクレーブは管理者から新たなエントリを取り込み、それらの署名を検証してそれらを登録する。加えてこのエンクレーブはさまざまなコンポーネントからのクエリを扱い、現行の決定的クラスタ状態によって応答する。このエンクレーブは、掲示板エンクレーブのみに知られる秘密キーを用いて情報に署名する。別の特性は、掲示板エンクレーブが自身の上に現れるすべての動作からなるオーディット・ログを容易に生成できることである。このことは、悪意ある敵がエージェントを登録できず、それを通知されることなく迅速に除去することを確実にする。
一貫性の特性は、単一のエンクレーブのみが掲示板の機能を扱うことを指示する。このことは、このエンクレーブが永続的に故障した場合に、その秘密キーを管理450によって検索可能にする必要があることを意味する。この情報は極めて極秘であるため、それに対する責任は執行委員会メンバーに委ねられてもよい(例、これは比較的大きな管理者のグループおよび高ランクの幹部であってもよい)。クラスタ開始の際に、掲示板エンクレーブが作成されて実行される。その第1のステップは、掲示板454に対するパブリック-秘密キー対を生成することである。パブリック・キーは公開され、次いでエージェント・コードにハードコード化される。秘密キーから、エンクレーブはl-out-of-n秘密共有スキーム(例、シャミール(Shamir)秘密共有)に対する秘密共有を作成し、その共有をセキュア・チャネルを通じて執行委員会メンバーのリスト(そのリストは掲示板エンクレーブにハードコード化される)に送る。この情報も、一時的故障から回復する手段として掲示板エンクレーブによってシールされる。エンクレーブを実行するマシンの永続的な故障の場合は、新たな掲示板エンクレーブが作成されるが、それは新たなキーを生成するのではなく、執行委員会メンバーによって送られた秘密共有からキーを再生する。
(2)実用的ビザンチン・フォールト・トレラント(PBFT:Practical Byzantine Fault Tolerant)。掲示板454の代替的実施形態は、分散フォールト・トレラント・スキームを実現する実用的ビザンチン・フォールト・トレラント(PBFT)クラスタの実行に基づいている。このサービスは、ブロックチェーン技術に対するオープン・ソース努力の一部として、ハイパーレッジャー(Hyperledger)プロジェクトのファブリックにおいて実施された。身近な脅威モデルから開始する通常の故障と反対の、ビザンチン・フォールトに対するフォールト・トレランスの必要性。すなわち、不正な管理者が悪質なメッセージを注入することによって掲示板に影響し得る可能性。なお、掲示板454は大きなトラフィック負荷を取り扱う必要はなく、小さいクラスタに基づいてもよく、よって大規模PBFTを実行する性能制限は重要でない。この実施形態は通信に何らかの複雑さを加えるが、故障またはサービスの拒否を引き起こす試みに直面したときの高い利用可能性という利点を有する。
どちらの場合にも、ノンスによって掲示板454にクエリを行い、エンクレーブまたはPBFTにノンスを署名に組み込ませることによって、データの活動性をテストできる。
この実施形態の設計は不変量を有し、この不変量によってAEキーが伝達されるときはまったく同じエージェント・コードを有するエンクレーブに対するときのみとなり、この事実はこの実施形態のキー秘密保証の基礎となる。このことはコードのアップグレードを問題あるものにし、こうしたシナリオを取り扱うための特別な機構を必要とする。こうした極秘の場合には、少数の管理者による検証を必要とするのではなく、執行委員会メンバー(使用の場合によって、これは高ランクの個人群の委員会であり得る)からの承認が必要となるだろう。こうしたプロセスを確認するためのアップグレード・パブリック・キーは、コード作成の際にハードコード化されている。アップグレードが開始されてから、新たなコード・ベースの測定値が掲示板454において公開されることとなり、コア・エンクレーブの古いセットはAEキーを新たなコアに送り、一方で新たなMRENCLAVEが好適であることを検証する。プロセスの最後に、古いエンクレーブは終了することとなる。
本発明はシステム、方法、もしくはコンピュータ・プログラム製品、またはその組み合わせであってもよい。コンピュータ・プログラム製品は、プロセッサに本発明の態様を実行させるためのコンピュータ可読プログラム命令を有するコンピュータ可読ストレージ媒体(または複数の媒体)を含んでもよい。
コンピュータ可読ストレージ媒体は、命令実行デバイスによって使用するための命令を保持および保存できる有形デバイスであり得る。コンピュータ可読ストレージ媒体は、たとえば電子ストレージ・デバイス、磁気ストレージ・デバイス、光ストレージ・デバイス、電磁気ストレージ・デバイス、半導体ストレージ・デバイス、または前述の任意の好適な組み合わせなどであってもよいが、それに限定されない。コンピュータ可読ストレージ媒体のより具体的な例の非網羅的リストは以下を含む。ポータブル・コンピュータ・ディスケット、ハード・ディスク、ランダム・アクセス・メモリ(RAM:random access memory)、リード・オンリ・メモリ(ROM:read-only memory)、消去可能プログラマブル・リード・オンリ・メモリ(erasable programmable read-only memory)(EPROMまたはフラッシュ・メモリ)、スタティック・ランダム・アクセス・メモリ(SRAM:static random access memory)、ポータブル・コンパクト・ディスク・リード・オンリ・メモリ(CD-ROM:compact disc read-only memory)、デジタル多用途ディスク(DVD:digital versatile disk)、メモリ・スティック、フロッピー(R)ディスク、機械的にコード化されたデバイス、たとえばパンチ・カードまたは溝に命令が記録された***構造など、および前述の任意の好適な組み合わせ。本明細書において用いられるコンピュータ可読ストレージ媒体は、たとえば電波もしくはその他の自由に伝播する電磁波、導波路もしくはその他の伝送媒体を通じて伝播する電磁波(例、光ファイバ・ケーブルを通過する光パルス)、またはワイヤを通じて伝送される電気信号など、それ自体が一時的信号のものであると解釈されるべきではない。
本明細書に記載されるコンピュータ可読プログラム命令は、コンピュータ可読ストレージ媒体からそれぞれのコンピューティング/処理デバイスにダウンロードされ得るか、またはたとえばインターネット、ローカル・エリア・ネットワーク、広域ネットワーク、もしくは無線ネットワーク、またはその組み合わせなどのネットワークを介して外部コンピュータまたは外部ストレージ・デバイスにダウンロードされ得る。ネットワークは銅伝送ケーブル、光伝送ファイバ、無線伝送、ルータ、ファイアウォール、スイッチ、ゲートウェイ・コンピュータ、もしくはエッジ・サーバ、またはその組み合わせを含んでもよい。各コンピューティング/処理デバイス内のネットワーク・アダプタ・カードまたはネットワーク・インタフェースは、ネットワークからコンピュータ可読プログラム命令を受信して、そのコンピュータ可読プログラム命令をそれぞれのコンピューティング/処理デバイス内のコンピュータ可読ストレージ媒体に記憶するために転送する。
本発明の動作を実行するためのコンピュータ可読プログラム命令はアセンブラ命令、命令セット・アーキテクチャ(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)などを含む電子回路は、本発明の態様を行うために電子回路をパーソナライズするためのコンピュータ可読プログラム命令の状態情報を使用することによって、コンピュータ可読プログラム命令を実行してもよい。
本明細書においては、本発明の実施形態による方法、装置(システム)、およびコンピュータ・プログラム製品の流れ図もしくはブロック図またはその両方を参照して、本発明の態様を説明している。流れ図もしくはブロック図またはその両方の各ブロック、および流れ図もしくはブロック図またはその両方におけるブロックの組み合わせは、コンピュータ可読プログラム命令によって実現され得ることが理解されるだろう。
これらのコンピュータ可読プログラム命令は、汎用目的コンピュータ、特定目的コンピュータ、またはマシンを生成するためのその他のプログラマブル・データ処理装置のプロセッサに提供されることによって、そのコンピュータまたはその他のプログラマブル・データ処理装置のプロセッサを介して実行される命令が、流れ図もしくはブロック図またはその両方の単数または複数のブロックにおいて指定される機能/動作を実現するための手段を生じてもよい。これらのコンピュータ可読プログラム命令は、コンピュータ、プログラマブル・データ処理装置、もしくはその他のデバイスまたはその組み合わせに特定の方式で機能するように指示できるコンピュータ可読ストレージ媒体にも保存されることによって、命令が保存されたコンピュータ可読ストレージ媒体が、流れ図もしくはブロック図またはその両方の単数または複数のブロックにおいて指定される機能/動作の態様を実現する命令を含む製造物を含んでもよい。
コンピュータ可読プログラム命令は、コンピュータ、他のプログラマブル・データ処理装置、または他のデバイスにもロードされて、コンピュータに実現されるプロセスを生成するためにコンピュータ、他のプログラマブル装置、または他のデバイスにおいて一連の動作ステップを行わせることによって、そのコンピュータ、他のプログラマブル装置、または他のデバイスにおいて実行される命令が、流れ図もしくはブロック図またはその両方の単数または複数のブロックにおいて指定される機能/動作を実現してもよい。
図面における流れ図およびブロック図は、本発明のさまざまな実施形態によるシステム、方法、およびコンピュータ・プログラム製品の可能な実施のアーキテクチャ、機能、および動作を示すものである。これに関して、流れ図またはブロック図の各ブロックは、指定される論理機能(単数または複数)を実現するための1つまたはそれ以上の実行可能命令を含むモジュール、セグメント、または命令の一部を表してもよい。いくつかの代替的実施において、ブロック内に示される機能は、図面に示されるものとは異なる順序で起こってもよい。たとえば、連続して示される2つのブロックは、実際には実質的に同時に実行されてもよいし、関与する機能によってはこれらのブロックがときに逆の順序で実行されてもよい。加えて、ブロック図もしくは流れ図またはその両方の各ブロック、およびブロック図もしくは流れ図またはその両方のブロックの組み合わせは、指定された機能を行うか、特定目的のハードウェアおよびコンピュータ命令の組み合わせを実施または実行する特定目的のハードウェア・ベースのシステムによって実現され得ることが注目されるだろう。
本明細書において用いられる用語は、特定の実施形態を説明する目的のみのためのものであり、本発明を限定することは意図されない。本明細書において用いられる単数形の「a」、「an」、および「the」は、状況が別様を明瞭に示さない限り複数形も含むことが意図されている。さらに、本明細書において用いられるときの「含む(comprises)」もしくは「含む(comprising)」またはその両方の用語は、記述される特徴、整数、ステップ、動作、エレメント、もしくはコンポーネント、またはその組み合わせの存在を明示するが、1つまたはそれ以上の他の特徴、整数、ステップ、動作、エレメント、コンポーネント、もしくはそのグループ、またはその組み合わせの存在または追加を除外するものではないことが理解されるだろう。
以下の請求項におけるすべての手段またはステップ・プラス機能要素に対応する構造、材料、動作、および均等物は、特定的に請求される他の請求要素と組み合わせてその機能を行うための任意の構造、材料または動作を含むことが意図される。本発明の説明を例示および説明の目的のために提供したが、開示される形の本発明に対して網羅的または限定的になることは意図されていない。本発明の範囲および趣旨から逸脱することなく、当業者には多くの修正および変更が明らかになるだろう。実施形態は、本発明の原理および実際の適用を最もよく説明し、かつ他の当業者が予期される特定の使用に好適であるようなさまざまな修正を伴うさまざまな実施形態に対して本発明を理解できるようにするために選択されて記載されたものである。

Claims (17)

  1. データ・ストレージに対する接続性を有するセキュア実行プラットフォーム(SEP)のクラスタを含むシステムであって、前記クラスタの各SEPはキーを用いてデータを処理する際にデータの機密性を維持するように構成され、
    前記キーは前記クラスタの前記SEP間で共有され、前記キーは前記クラスタまたはその一部分によって自動的に生成され、かつ任意の非クラスタ・エンティティには利用不可能であり、
    前記データ・ストレージは前記キーを用いて暗号化された暗号化データを保持し、
    前記クラスタの第1のSEPは、前記キーを用いてクライアント・データを暗号化して暗号化クライアント・データを得て、前記暗号化クライアント・データを前記データ・ストレージに保存するように構成され、
    前記クラスタの第2のSEPは、前記データ・ストレージから暗号化保存データを検索し、前記キーを用いて前記暗号化保存データを復号して前記暗号化保存データの非暗号化形を得るように構成され
    前記クラスタの第3のSEPは、前記クラスタに新たなSEPを加えるように構成され、前記第3のSEPはセキュアな通信チャネルを通じて前記新たなSEPに前記キーを転送するように構成され
    前記第3のSEPは、セキュアなチャネルを通じて前記キーを転送する前に、前記新たなSEPが前記キーを受信することを許可されていることを確認するために掲示板を観察するように構成される、システム。
  2. 前記第2のSEPは、クライアント・デバイスからのクエリに応答して前記暗号化保存データを検索するように構成され、前記クエリに対する応答を提供するために前記暗号化保存データの前記非暗号化形が使用されることによって、前記クライアント・デバイスが前記データ・ストレージにアクセスすることなく前記クエリが実現される、請求項1に記載のシステム。
  3. 前記第1のSEPと前記第2のSEPとは同じSEPである、請求項1に記載のシステム。
  4. 前記第1のSEPは前記データ・ストレージへの書込み専用のアクセス許可を有し、前記第2のSEPは前記データ・ストレージへの読取り専用のアクセス許可を有する、請求項1に記載のシステム。
  5. 前記第3のSEPは、セキュアなチャネルを通じて前記キーを転送する前に、認証機構を用いて前記新たなSEPのコードおよびプラットフォームの正しさを確認するように構成される、請求項に記載のシステム。
  6. 前記新たなSEPは、前記第3のSEPからの前記キーを受け入れる前に、認証機構を用いて前記第3のSEPのコードおよびプラットフォームの正しさを確認するように構成される、請求項に記載のシステム。
  7. 前記掲示板は分散フォールト・トレラント・スキームを用いて実現される、請求項に記載のシステム。
  8. 前記掲示板は専用のSEPを用いて実現される、請求項に記載のシステム。
  9. 前記第3のSEPは、前記掲示板において観察される情報が閾値よりも大きい数の管理者によって署名されていることを確認するように構成される、請求項に記載のシステム。
  10. 前記新たなSEPは前記キーを転送することを禁じられる、請求項に記載のシステム。
  11. 前記第3のSEPは前記新たなSEPに対する予め定められた寿命を設定するように構成され、前記新たなSEPは前記予め定められた寿命の最後に前記クラスタから除去されるように構成される、請求項に記載のシステム。
  12. 前記第3のSEPは、前記クラスタ内のSEPの数が予め規定された閾値未満であることに応答して前記クラスタに前記新たなSEPを加えるように構成される、請求項に記載のシステム。
  13. 前記第3のSEPは、前記第1のSEPまたは前記第2のSEPが非動作的になったことに応答して前記クラスタに前記新たなSEPを加えるように構成され、それによって前記新たなSEPは非動作的SEPと置き換わるように構成される、請求項に記載のシステム。
  14. 前記第3のSEPは、前記第1のSEPまたは前記第2のSEPと同じSEPである、請求項に記載のシステム。
  15. 前記キーは前記クラスタの第3のSEPによって生成され、前記第3のSEPは前記キーを前記クラスタ内の他のSEPに分配するように構成される、請求項1に記載のシステム。
  16. 前記クラスタは、前記キーを生成することに応答して、前記キーに合意するためにコンセンサス・プロトコルを使用するように構成される、請求項1に記載のシステム。
  17. 前記クラスタまたは前記データ・ストレージの管理者は前記キーを有さない、請求項1に記載のシステム。
JP2020500817A 2017-07-18 2018-07-05 セキュア実行プラットフォームのクラスタ Active JP7015904B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US15/652,314 US10567359B2 (en) 2017-07-18 2017-07-18 Cluster of secure execution platforms
US15/652,314 2017-07-18
PCT/IB2018/054958 WO2019016641A1 (en) 2017-07-18 2018-07-05 CLUSTER OF SECURE EXECUTION PLATFORMS

Publications (3)

Publication Number Publication Date
JP2020527791A JP2020527791A (ja) 2020-09-10
JP2020527791A5 JP2020527791A5 (ja) 2020-10-22
JP7015904B2 true JP7015904B2 (ja) 2022-02-03

Family

ID=65016362

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2020500817A Active JP7015904B2 (ja) 2017-07-18 2018-07-05 セキュア実行プラットフォームのクラスタ

Country Status (6)

Country Link
US (2) US10567359B2 (ja)
JP (1) JP7015904B2 (ja)
CN (1) CN110892691B (ja)
DE (1) DE112018003077T5 (ja)
GB (1) GB2579490B (ja)
WO (1) WO2019016641A1 (ja)

Families Citing this family (33)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10567359B2 (en) * 2017-07-18 2020-02-18 International Business Machines Corporation Cluster of secure execution platforms
US20190095910A1 (en) * 2017-09-25 2019-03-28 Intel Corporation Secure cryptocurrency exchange
US11025493B2 (en) * 2017-11-14 2021-06-01 Volkan Sevindik Smallcell network deployment, optimization and management based on blockchain technology
CN112005237B (zh) 2018-04-30 2024-04-30 谷歌有限责任公司 安全区中的处理器与处理加速器之间的安全协作
CN112041838B (zh) * 2018-04-30 2024-07-23 谷歌有限责任公司 安全区交互
EP3788518A1 (en) 2018-04-30 2021-03-10 Google LLC Managing enclave creation through a uniform enclave interface
US10904322B2 (en) * 2018-06-15 2021-01-26 Cisco Technology, Inc. Systems and methods for scaling down cloud-based servers handling secure connections
US11218313B1 (en) * 2018-12-27 2022-01-04 Equinix, Inc. Decentralized verification of devices using distributed ledger technology
PL3593249T3 (pl) 2019-03-18 2021-12-13 Advanced New Technologies Co., Ltd. System i sposób kończenia protokołu zmiany widoku
US11263067B2 (en) 2019-03-18 2022-03-01 Advanced New Technologies Co., Ltd. System and method for ending view change protocol
CA3058499C (en) 2019-03-26 2021-10-26 Alibaba Group Holding Limited Program execution and data proof scheme using multiple key pair signatures
PL3643041T3 (pl) * 2019-04-26 2021-09-06 Advanced New Technologies Co., Ltd. Rozproszone zarządzanie kluczami dla zaufanych środowisk wykonawczych
US11044080B2 (en) * 2019-06-24 2021-06-22 International Business Machines Corporation Cryptographic key orchestration between trusted containers in a multi-node cluster
US11436517B2 (en) 2019-08-26 2022-09-06 Bank Of America Corporation Quantum-tunneling-enabled device case
CN110727731B (zh) 2019-09-05 2021-12-21 创新先进技术有限公司 区块链网络中加入节点的方法和区块链***
CN110730204B (zh) 2019-09-05 2022-09-02 创新先进技术有限公司 区块链网络中删除节点的方法和区块链***
US11569989B2 (en) 2019-10-23 2023-01-31 Bank Of America Corporation Blockchain system for hardening quantum computing security
US10997521B1 (en) * 2019-10-23 2021-05-04 Bank Of America Corporation Quantum-resilient computer cluster
US11251946B2 (en) 2019-10-31 2022-02-15 Bank Of America Corporation Quantum key synchronization within a server-cluster
US11468356B2 (en) 2019-10-31 2022-10-11 Bank Of America Corporation Matrix-based quantum-resilient server-cluster
CN111092727B (zh) * 2020-03-18 2020-07-17 支付宝(杭州)信息技术有限公司 共享集群密钥的方法及装置
US11308234B1 (en) * 2020-04-02 2022-04-19 Wells Fargo Bank, N.A. Methods for protecting data
JP2023522503A (ja) * 2020-04-23 2023-05-31 エヌイーシー ラボラトリーズ ヨーロッパ ゲーエムベーハー Pow暗号通貨のためのteeベースマイニングプール
EP3837617B1 (en) 2020-06-08 2023-08-02 Alipay Labs (Singapore) Pte. Ltd. Distributed storage of custom clearance data
SG11202102583UA (en) 2020-06-08 2021-04-29 Alipay Labs Singapore Pte Ltd Blockchain-based document registration for custom clearance
SG11202102402QA (en) 2020-06-08 2021-04-29 Alipay Labs Singapore Pte Ltd Blockchain-based import custom clearance data processing
EP3841507B1 (en) 2020-06-08 2023-04-26 Alipay Labs (Singapore) Pte. Ltd. User management of blockchain-based custom clearance service platform
EP3841491B1 (en) 2020-06-08 2023-08-02 Alipay Labs (Singapore) Pte. Ltd. Blockchain-based smart contract pools
EP3844655B1 (en) * 2020-06-08 2023-05-03 Alipay Labs (Singapore) Pte. Ltd. Managing user authorizations for blockchain-based custom clearance services
US11601262B2 (en) * 2020-10-15 2023-03-07 Dell Products L.P. Distributed key management system
US11650800B2 (en) * 2020-12-24 2023-05-16 Intel Corporation Attestation of operations by tool chains
CN113065134B (zh) * 2020-12-28 2024-03-12 上海零数众合信息科技有限公司 一种区块链代码和数据安全计算方法
US12021861B2 (en) * 2021-01-04 2024-06-25 Bank Of America Corporation Identity verification through multisystem cooperation

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050091078A1 (en) 2000-10-24 2005-04-28 Microsoft Corporation System and method for distributed management of shared computers
WO2010140194A1 (ja) 2009-06-05 2010-12-09 富士通株式会社 情報処理システムの管理方法、情報処理システム、記録媒体、管理プログラム
US20150143134A1 (en) 2013-11-15 2015-05-21 Kabushiki Kaisha Toshiba Secure data encryption in shared storage using namespaces
US20150277956A1 (en) 2014-03-31 2015-10-01 Fujitsu Limited Virtual machine control method, apparatus, and medium
JP2015181045A (ja) 2010-06-02 2015-10-15 ヴイエムウェア インクVMware, Inc. マルチ・テナント・クラウドにおける顧客仮想計算機の保護
WO2016053514A1 (en) 2014-09-30 2016-04-07 Intel Corporation Technologies for distributed detection of security anomalies
US20160162320A1 (en) 2014-11-11 2016-06-09 Amazon Technologies, Inc. System for managing and scheduling containers
WO2016178316A1 (ja) 2015-05-07 2016-11-10 日本電気株式会社 計算機調達予測装置、計算機調達予測方法、及び、プログラム

Family Cites Families (32)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060129627A1 (en) * 1996-11-22 2006-06-15 Mangosoft Corp. Internet-based shared file service with native PC client access and semantics and distributed version control
JP4610169B2 (ja) * 2002-07-23 2011-01-12 パナソニック株式会社 通信方法および通信システム
DE60321275D1 (de) * 2002-07-23 2008-07-10 Matsushita Electric Ind Co Ltd Endgerät, Kommunikationsmethode und -system zur Authentifizierung von Benutzern in einer Benutzergruppe im Netzwerk
US7594262B2 (en) * 2002-09-04 2009-09-22 Secure Computing Corporation System and method for secure group communications
US7444514B2 (en) * 2003-10-15 2008-10-28 International Business Machines Corporation Group key exchanges with failures
WO2008054456A2 (en) 2006-02-22 2008-05-08 Luna Innovations Inc. Hardware-facilitated secure software execution environment
US7818567B2 (en) * 2006-09-27 2010-10-19 Lenovo (Singapore) Pte. Ltd. Method for protecting security accounts manager (SAM) files within windows operating systems
US8767964B2 (en) * 2008-03-26 2014-07-01 International Business Machines Corporation Secure communications in computer cluster systems
US8230253B2 (en) * 2008-07-21 2012-07-24 International Business Machines Corporation Byzantine fault tolerant dynamic quorum using a trusted platform module
US9317708B2 (en) 2008-08-14 2016-04-19 Teleputers, Llc Hardware trust anchors in SP-enabled processors
US8904190B2 (en) 2010-10-20 2014-12-02 Advanced Micro Devices, Inc. Method and apparatus including architecture for protecting sensitive code and data
CN102761521B (zh) * 2011-04-26 2016-08-31 上海格尔软件股份有限公司 云安全存储及共享服务平台
US9129283B1 (en) * 2012-01-10 2015-09-08 Intuit Inc. Accessing confidential data securely using a trusted network of mobile devices
US20140052877A1 (en) * 2012-08-16 2014-02-20 Wenbo Mao Method and apparatus for tenant programmable logical network for multi-tenancy cloud datacenters
US9143442B2 (en) * 2012-12-12 2015-09-22 Cisco Technology, Inc. Flexible and scalable virtual network segment pruning
US9747456B2 (en) 2013-03-15 2017-08-29 Microsoft Technology Licensing, Llc Secure query processing over encrypted data
GB2515047B (en) 2013-06-12 2021-02-10 Advanced Risc Mach Ltd Security protection of software libraries in a data processing apparatus
US9722945B2 (en) * 2014-03-31 2017-08-01 Microsoft Technology Licensing, Llc Dynamically identifying target capacity when scaling cloud resources
WO2015164521A1 (en) * 2014-04-23 2015-10-29 Intralinks, Inc. Systems and methods of secure data exchange
US9424063B2 (en) * 2014-04-29 2016-08-23 Vmware, Inc. Method and system for generating remediation options within a cluster of host computers that run virtual machines
US9613218B2 (en) * 2014-06-30 2017-04-04 Nicira, Inc. Encryption system in a virtualized environment
WO2016004397A1 (en) 2014-07-03 2016-01-07 Huawei Technologies Co., Ltd. System and method for wireless network access protection and security architecture
US9733849B2 (en) * 2014-11-21 2017-08-15 Security First Corp. Gateway for cloud-based secure storage
US20160350534A1 (en) * 2015-05-29 2016-12-01 Intel Corporation System, apparatus and method for controlling multiple trusted execution environments in a system
US10387181B2 (en) * 2016-01-12 2019-08-20 International Business Machines Corporation Pre-deployment of particular virtual machines based on performance and due to service popularity and resource cost scores in a cloud environment
US10708067B2 (en) * 2016-06-18 2020-07-07 Intel Corporation Platform attestation and registration for servers
KR101704540B1 (ko) * 2016-08-03 2017-02-09 성결대학교 산학협력단 M2m 환경의 다중 디바이스 데이터 공유를 위한 그룹키 관리 방법
US10437985B2 (en) * 2016-10-01 2019-10-08 Intel Corporation Using a second device to enroll a secure application enclave
CN106778326A (zh) * 2016-11-28 2017-05-31 福建升腾资讯有限公司 一种实现移动存储设备保护的方法及***
CN106682531A (zh) * 2017-01-23 2017-05-17 济南浪潮高新科技投资发展有限公司 一种基于生物信息授权的机密数据加密方法
US10740455B2 (en) * 2017-05-11 2020-08-11 Microsoft Technology Licensing, Llc Encave pool management
US10567359B2 (en) * 2017-07-18 2020-02-18 International Business Machines Corporation Cluster of secure execution platforms

Patent Citations (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050091078A1 (en) 2000-10-24 2005-04-28 Microsoft Corporation System and method for distributed management of shared computers
JP2011078100A (ja) 2000-10-24 2011-04-14 Microsoft Corp コンピュータリースシステムの安全な通信を確立するための方法
WO2010140194A1 (ja) 2009-06-05 2010-12-09 富士通株式会社 情報処理システムの管理方法、情報処理システム、記録媒体、管理プログラム
JP2015181045A (ja) 2010-06-02 2015-10-15 ヴイエムウェア インクVMware, Inc. マルチ・テナント・クラウドにおける顧客仮想計算機の保護
US20150143134A1 (en) 2013-11-15 2015-05-21 Kabushiki Kaisha Toshiba Secure data encryption in shared storage using namespaces
US20150277956A1 (en) 2014-03-31 2015-10-01 Fujitsu Limited Virtual machine control method, apparatus, and medium
JP2015194958A (ja) 2014-03-31 2015-11-05 富士通株式会社 情報処理装置、スケール管理方法およびプログラム
WO2016053514A1 (en) 2014-09-30 2016-04-07 Intel Corporation Technologies for distributed detection of security anomalies
US20160162320A1 (en) 2014-11-11 2016-06-09 Amazon Technologies, Inc. System for managing and scheduling containers
JP2017538204A (ja) 2014-11-11 2017-12-21 アマゾン テクノロジーズ インコーポレイテッド コンテナの管理及びスケジューリングのためのシステム
WO2016178316A1 (ja) 2015-05-07 2016-11-10 日本電気株式会社 計算機調達予測装置、計算機調達予測方法、及び、プログラム
US20180107503A1 (en) 2015-05-07 2018-04-19 Nec Corporation Computer procurement predicting device, computer procurement predicting method, and recording medium

Also Published As

Publication number Publication date
JP2020527791A (ja) 2020-09-10
GB202001762D0 (en) 2020-03-25
WO2019016641A1 (en) 2019-01-24
DE112018003077T5 (de) 2020-03-05
US11057361B2 (en) 2021-07-06
US10567359B2 (en) 2020-02-18
GB2579490B (en) 2022-03-16
US20190026234A1 (en) 2019-01-24
CN110892691A (zh) 2020-03-17
GB2579490A (en) 2020-06-24
CN110892691B (zh) 2022-07-19
US20200053067A1 (en) 2020-02-13

Similar Documents

Publication Publication Date Title
JP7015904B2 (ja) セキュア実行プラットフォームのクラスタ
US11604901B2 (en) Systems and methods for using extended hardware security modules
Al-Issa et al. eHealth cloud security challenges: a survey
Kaaniche et al. Data security and privacy preservation in cloud storage environments based on cryptographic mechanisms
US11036869B2 (en) Data security with a security module
van Oorschot Computer Security and the Internet
US9992029B1 (en) Systems and methods for providing authentication to a plurality of devices
US10211977B1 (en) Secure management of information using a security module
WO2024139273A1 (zh) 联邦学习方法、装置、可读存储介质及电子设备
Harnik et al. It takes two to# metoo-using enclaves to build autonomous trusted systems
Mumtaz et al. PDIS: A Service Layer for Privacy and Detecting Intrusions in Cloud Computing.
Salehi et al. Cloud computing security challenges and its potential solution
Wilusz et al. Secure protocols for smart contract based insurance services
Dahshan Data security in cloud storage services
Dhondge Lifecycle IoT Security for Engineers
Hussain et al. Survey on security and privacy of cloud computing paradigm: Challenges and mitigation methods
Khan Data confidentiality and risk management in Cloud Computing
Gagged et al. Improved secure dynamic bit standard technique for a private cloud platform to address security challenges
Foltz et al. Secure server key management designs for the public cloud
Fiore Providing trust to multi-cloud storage platforms through the blockchain
Ngo Cloud Security: Private Cloud Solution with End-to-end Encryption
Paul et al. Secure decentralised storage networks
Giweli Enhancing cloud computing security and privacy
Ajith et al. A Brief Study on Cloud Security
Wilson Towards Enhancing Security in Cloud Storage Environments

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20200824

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20201222

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20210927

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20211026

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20211223

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

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20220118

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20220124