特許第6723263号(P6723263)IP Force 特許公報掲載プロジェクト 2022.1.31 β版

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

▶ ピーシーエムエス ホールディングス インコーポレイテッドの特許一覧

特許6723263クラウドコンピューティングプロセスの委任のためのシステムおよび方法
<>
  • 特許6723263-クラウドコンピューティングプロセスの委任のためのシステムおよび方法 図000003
  • 特許6723263-クラウドコンピューティングプロセスの委任のためのシステムおよび方法 図000004
  • 特許6723263-クラウドコンピューティングプロセスの委任のためのシステムおよび方法 図000005
  • 特許6723263-クラウドコンピューティングプロセスの委任のためのシステムおよび方法 図000006
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】6723263
(24)【登録日】2020年6月25日
(45)【発行日】2020年7月15日
(54)【発明の名称】クラウドコンピューティングプロセスの委任のためのシステムおよび方法
(51)【国際特許分類】
   G06F 21/60 20130101AFI20200706BHJP
   G06F 21/44 20130101ALI20200706BHJP
【FI】
   G06F21/60 320
   G06F21/44
【請求項の数】18
【全頁数】21
(21)【出願番号】特願2017-553023(P2017-553023)
(86)(22)【出願日】2016年3月31日
(65)【公表番号】特表2018-515836(P2018-515836A)
(43)【公表日】2018年6月14日
(86)【国際出願番号】US2016025337
(87)【国際公開番号】WO2016164253
(87)【国際公開日】20161013
【審査請求日】2019年4月1日
(31)【優先権主張番号】62/145,959
(32)【優先日】2015年4月10日
(33)【優先権主張国】US
(73)【特許権者】
【識別番号】315012286
【氏名又は名称】ピーシーエムエス ホールディングス インコーポレイテッド
(74)【代理人】
【識別番号】110001243
【氏名又は名称】特許業務法人 谷・阿部特許事務所
(72)【発明者】
【氏名】ヴィル・ジェイ・オリカイネン
(72)【発明者】
【氏名】マルック・カイランパ
【審査官】 和平 悠希
(56)【参考文献】
【文献】 特開2014−013582(JP,A)
【文献】 特開2002−278970(JP,A)
【文献】 特開2006−260521(JP,A)
【文献】 特開2003−202931(JP,A)
【文献】 特開2006−072521(JP,A)
【文献】 特開平09−233067(JP,A)
【文献】 特開2008−192129(JP,A)
【文献】 特開2007−034651(JP,A)
【文献】 特開2005−209181(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 21/60
G06F 21/44
(57)【特許請求の範囲】
【請求項1】
少なくとも1つのサーバを含むクラウドサービスシステムによって実行される方法であって、
第1のオペレーションを実行する要求をクライアントデバイスから受信することであって、前記第1のオペレーションは、少なくとも、データの第1のセット上で実行される第1の機能を含む、ことと、
データの前記第1のセットが暗号化されているかどうかを判定することと、
データの前記第1のセットが暗号化されている場合には、
データの前記第1のセットと、前記第1の機能を実行するための命令とを前記クライアントデバイスへ送信することであって、前記命令は、前記第1の機能を実行するためのコンピュータコードを含む、ことと、
データの前記第1のセット上での前記機能の暗号化された結果を表す第1の処理された暗号化されたデータを前記クライアントデバイスから受信することと、
データの前記第1のセットが暗号化されていない場合には、
データの前記第1のセット上で前記第1の機能を実行して、第1の処理されたデータを生成することと
を含む方法。
【請求項2】
前記コンピュータコードは、暗号化された形態で前記クライアントデバイスへ送信される、請求項1に記載の方法。
【請求項3】
前記クライアントデバイスのリモート認証を要求することをさらに含み、前記コンピュータコードは、前記クライアントデバイスの満足できる認証を受信した後にのみ、前記クライアントデバイスへ送信される、請求項1または2に記載の方法。
【請求項4】
前記第1の処理された暗号化されたデータを格納することをさらに含む、請求項1乃至3のいずれか一項に記載の方法。
【請求項5】
データの前記第1のセットが暗号化されているかどうかを判定することは、データの前記第1のセットが、機密であるとしてマークされているかどうかを判定することを含む、請求項1乃至4のいずれか一項に記載の方法。
【請求項6】
前記第1の処理されたデータを前記クライアントデバイスへ送信することをさらに含む、請求項1乃至5のいずれか一項に記載の方法。
【請求項7】
前記コンピュータコードは、実行可能なコンピュータコードを含む、請求項1乃至のいずれか一項に記載の方法。
【請求項8】
少なくとも1つのサーバを含むクラウドサービスシステムによって実行される方法であって、
第1のオペレーションを実行する要求をクライアントデバイスから受信することであって、前記第1のオペレーションは、少なくとも、データの第1のセット上で実行される第1の機能を含む、ことと、
データの前記第1のセットが暗号化されているかどうかを判定することと、
データの前記第1のセットが暗号化されているという判定に応答して、
データの前記第1のセットと、前記第1の機能を実行するための命令とを前記クライアントデバイスへ送信することであって、前記第1の機能を実行するための前記命令は、前記第1の機能を実行するためのコンピュータコードを含む、ことと、
データの前記第1のセット上での前記機能の暗号化された結果を表す第1の処理された暗号化されたデータを前記クライアントデバイスから受信することと
を含む方法。
【請求項9】
前記コンピュータコードは、暗号化された形態で前記クライアントデバイスへ送信される、請求項に記載の方法。
【請求項10】
前記クライアントデバイスのリモート認証を要求することをさらに含み、前記コンピュータコードは、前記クライアントデバイスの満足できる認証を受信した後にのみ、前記クライアントデバイスへ送信される、請求項またはに記載の方法。
【請求項11】
前記第1の処理された暗号化されたデータを格納することをさらに含む、請求項乃至10のいずれか一項に記載の方法。
【請求項12】
データの前記第1のセットが暗号化されているかどうかを判定することは、データの前記第1のセットが、機密であるとしてマークされているかどうかを判定することを含む、請求項乃至11のいずれか一項に記載の方法。
【請求項13】
前記コンピュータコードは、実行可能なコンピュータコードを含む、請求項乃至12のいずれか一項に記載の方法。
【請求項14】
プロセッサと非一時的なデータストレージ媒体とを有する少なくとも1つのサーバを含むクラウドサービスシステムであって、前記媒体は、命令を格納しており、前記命令は、前記プロセッサによって実行されたときに、
第1のオペレーションを実行する要求をクライアントデバイスから受信し、前記第1のオペレーションは、少なくとも、データの第1のセット上で実行される第1の機能を含み、
データの前記第1のセットが暗号化されているかどうかを判定するように動作し、
前記命令は、データの前記第1のセットが暗号化されている場合には、
データの前記第1のセットと、前記第1の機能を実行するための命令とを前記クライアントデバイスへ送信し、前記第1の機能を実行するための前記命令は、前記第1の機能を実行するためのコンピュータコードを含み、
データの前記第1のセット上での前記機能の暗号化された結果を表す第1の処理された暗号化されたデータを前記クライアントデバイスから受信するように動作し、
前記命令は、データの前記第1のセットが暗号化されていない場合には、データの前記第1のセット上で前記第1の機能を実行して、第1の処理されたデータを生成するように動作する
クラウドサービスシステム。
【請求項15】
前記クラウドサービスシステムは、前記コンピュータコードを、暗号化された形態で前記クライアントデバイスへ送信するように動作する命令を含む、請求項14に記載のクラウドサービスシステム。
【請求項16】
前記クライアントデバイスのリモート認証を要求するように動作する命令をさらに含み、前記コンピュータコードは、前記クライアントデバイスの満足できる認証を受信した後にのみ、前記クライアントデバイスへ送信される、請求項14または15に記載のクラウドサービスシステム。
【請求項17】
前記命令は、前記第1の処理された暗号化されたデータを格納するようにさらに動作する、請求項14乃至16のいずれか一項に記載のクラウドサービスシステム。
【請求項18】
データの前記第1のセットが暗号化されているかどうかの前記判定は、データの前記第1のセットが、機密であるとしてマークされているかどうかを判定するように動作する命令を使用して実行される、請求項14乃至17のいずれか一項に記載のクラウドサービスシステム。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、一般にデータ処理に関する。より具体的には、本開示は、クラウドベースのデータストレージのコンテキストにおける暗号化されたデータの処理に関する。
【背景技術】
【0002】
関連出願の相互参照
本出願は、2015年4月10日に出願された「System and Method for Delegation of Cloud Computing Processes」と題されている米国特許仮出願第62/145,959号明細書の非仮出願であり、米国特許仮出願第62/145,959号明細書からの35 U.S.C. 119(e)のもとでの利益を主張するものであり、米国特許仮出願第62/145,959号明細書の開示全体は、参照によって本明細書に組み込まれている。
【0003】
クラウドベースのデータサービスは、いくつかのプライバシーの問題を引き起こしている。ユーザは、クラウドサービスプロバイダを信頼すること、または暗号化された個人データのためのストレージとしてのみクラウドを使用することのどちらかを余儀なくされている。完全準同型暗号、プライベートクラウド、または、隔離された実行環境および認証の使用のような多くのソリューションが提案されているが、それぞれが独自の不利な点に悩んでいる。
【0004】
データストレージおよびデータサービスは、クラウドベースのサービスフォーマットへますます移行している。高速の固定ネットワーク接続およびモバイルネットワーク接続は、ユーザがクラウドベースのストレージとの間でデータをシームレスにアップロードおよびダウンロードすることを可能にする。Google(登録商標)ドキュメントのようなクラウドベースのアプリケーションはまた、複数の異なるデバイスからドキュメントにアクセスしたいと望むユーザに利益をもたらす。クラウドベースのストレージはさらに、モバイルデバイスが壊される、失われる、または盗まれる危険にさらされている際にデータをバックアップする困難を防止する上で役に立つ。クラウドサービスはまた、必要とされる場合にはデータストレージボリュームが拡張されることが可能であるので、拡張性およびフォルトトレランスの利点を提供する。また、アプリケーションを取り巻く状況は変わり始めており、将来は、多くのアプリケーションが、分散アプリケーションプラットフォームを利用するコンテナ化された環境において稼働することになると予測されている。
【0005】
同時に、人々はまた、より強力なデバイスを有している。現在のラップトップ、デスクトップコンピュータ、ホームサーバ、タブレット、モバイル電話および他のコンピューティングデバイスは、多大なコンピューティングパワーを有している。多くのコンピューティングデバイスは、マルチコアプロセッサを利用しており、コンピューティングプラットフォームとして利用されることも可能である強力なコプロセッサがある。
【0006】
クラウドベースのサービスおよびストレージは複数の利点を提供するが、多くの人々は、信頼の問題が原因で、自分の情報の全てをクラウドサービスと共有することには気が進まない。個人データをアップロードしてクラウドベースのサービスを利用するには、クラウドサービスプロバイダと、そのプロバイダが実施している操作手順およびセキュリティ規定とをユーザが信頼する必要がある。攻撃者は、システムの特徴を、設計者が予想していなかった方法で利用することができる。セキュリティと使いやすさは、相容れない場合がある。最近の有名人の写真漏洩は、クラウドサービスがプライバシーの問題を有しているという認識を高めた。
【0007】
プライバシーの問題に対する1つの潜在的なソリューションは、それぞれの個人が自分のデータを、他の誰とも共有されていない、クラウドプロバイダとすら共有されていない一意のキーを使用して暗号化することである。あるシステムは、そのような保護を実施している。そのような保護を実施している一企業であるNasuniは、クラウドストレージのセキュリティ課題をリストアップしている:
・データの漏洩 − 最良の戦略は、クラウドベンダーは危険にさらされていると最初から想定して、暗号化されたファイルのみをクラウドへ送信することである。
・クラウドクレデンシャル − ストレージの所与のプールへのアクセスは、クレデンシャルに基づいており、あなたが顧客の別の集団と一緒くたに扱われて、同じクレデンシャルを共有している場合には、彼らのうちの1人がそれらのクレデンシャルを入手してあなたのデータにアクセスし得るというリスクがある。
・スヌーピング − データおよびメタデータは、ワイヤ上では、およびクラウド内では、完全に不透明であるべきである。何ものも − どんなファイル名も、タイムスタンプも − いったんあなたの構内から出ると、解読可能であるべきではない。
・キー管理 − キー管理は、ユーザが気づくことさえないほどシンプルであるべきである。暗号化は、自動的であるべきである。
・パフォーマンス − セキュリティは、パフォーマンスに深刻なインパクトを与えるべきではない。
【0008】
Nasuniは、OpenPGP暗号化を利用することによって、これらの問題に対処している。しかしながら、これは、暗号化されたストレージのプロビジョンにしか対処せず、クラウドベースのソフトウェアアプリケーションサービスを提供することのプライバシーの課題を解決しない。
【0009】
外部のクラウドサービスプロバイダに依存する代わりに、企業は、自分自身のプライベートクラウドをセットアップして、機密のコンピューティングを全て自分自身の構内において処理することができる。クラウドサービスプロバイダが自分の顧客のために彼らのサービスのみを実行するための専用のサーバを提供するというハイブリッドソリューションもある。このアプローチは、プライベートクラウドインフラストラクチャを保持するためにシステム管理者を充てることができる企業に適している。プライベートクラウドは、企業固有の機密データを処理するために必要とされるサービスのセットをホストすることができる。しかしながら、個人が自分自身のプライベートクラウドを保持すること、およびクラウドサービスソフトウェアを取得することは困難であろうことから、このアプローチは、自分のプライバシーを保護したいと望む個人にとっては、さほど便利ではない。
【0010】
別の選択肢は、準同型暗号ソリューションであり、この準同型暗号ソリューションは、暗号化されたデータの処理を可能にし、それによって結果も、暗号化されたままとなる。これは、ユーザが自分の暗号化された個人データをクラウド環境へアップロードすることを可能にし、クラウド環境では、データマイニングソフトウェアが、暗号化された個人データを処理して処理結果を返すことができ、それらの処理結果も暗号化されている。ユーザは、それらの結果を復号し、希望に応じて、それらの結果を他者と共有することを決定することができる。クラウドサービスプロバイダは、復号されたコンテンツまたは結果データへのアクセスを有しておらず、完全に信頼される必要はない。
【0011】
暗号化されたデータ上で計算を実行できることは、実際にはRSA暗号化アルゴリズムにおいてさえ可能である。RSAは、乗算に関しては準同型であるが、加算に関しては準同型ではない。例えば、RSA暗号化された値が2をかけられて、その結果が復号された場合には、その結果は、元の暗号化されていない値が2をかけられたのと同じである(パディングなしのRSA表記の使用を想定して)。加算に関して準同型である準同型暗号スキームもある。加算および乗算の両方に関して準同型である暗号化システムは、完全準同型システムと呼ばれている。完全準同型暗号は、近年において非常に活発な研究トピックになっている。
【0012】
残念なことに、完全準同型暗号は一般に、実際に使用するには遅すぎる。暗号文のサイズ、並びに暗号化オペレーションおよび復号オペレーションの複雑さは、実行されることになるオペレーションの数に伴って膨大に増える。
【0013】
別のセキュリティオプションは、クラウドサービスが、ARMベースのモバイルデバイスにおいて典型的に利用可能であるARM TrustZoneと同様の隔離された実行環境を提供することである。ARMベースのチップの低い電力消費は、ARMアーキテクチャを、大規模データセンターにおいてIntel(登録商標)ベースのアーキテクチャに対して競争力のあるものにするであろう。なぜなら、電力要件および冷却要件のコストが主要なコストファクタであるからである。ARMベースのサーバは、システムの残りの部分から隔離されている信頼されているアプリケーションを実行することを可能にするARM TrustZoneを含むこともできる。しかしながら、クラウドおよびサーバの分野は一般に、Intelアーキテクチャによって支配されている。
【0014】
伝えられるところによれば、保護されたコンテナ環境をIntelチップに加えるというIntelによる計画がある。2013年6月の「Workshop on Hardware and Architectural Support for Security and Privacy」において、Intelは、将来のIntelチップが、Intel Software Guard Extensions(Intel SGX)と呼ばれるコンセプトを含むことになると発表した。Intel SGXは、下記の8つの目標を報告している。
1. アプリケーション開発者が、より高い特権レベルで稼働する不正ソフトウェアによる不正アクセスまたは修正から機密データを保護することを可能にすること。
2. アプリケーションが、プラットフォームリソースの使用をスケジュールおよび管理するための正当なシステムソフトウェアの能力を妨げずに機密のコードおよびデータの機密性およびインテグリティを保護することを可能にすること。
3. コンピューティングデバイスの消費者が、自らのプラットフォームのコントロールと、自らの選択に応じてアプリケーションおよびサービスをインストールおよびアンインストールする自由とを保持することを可能にすること。
4. プラットフォームが、アプリケーションの信頼されているコードを測定すること、並びに、この測定を含むプロセッサに根差している署名された認証、および信頼できる環境においてそのコードが正しく初期化されている旨のその他の証明書を作成することを可能にすること。
5. なじみのあるツールおよびプロセスを使用した、信頼されているアプリケーションの開発を可能にすること。
6. 信頼されているアプリケーションのパフォーマンスが、基礎をなすアプリケーションプロセッサの能力に伴って拡張することを可能にすること。
7. ソフトウェアベンダーが、自分の選んだ流通チャネルを使用して、信頼されているアプリケーションを配信し、自分のペースで更新を行うことを可能にすること。
8. 攻撃者がプラットフォームの物理的なコントロールを有していてメモリ上に直接の攻撃を行うことができる場合でさえ機密性を保持するコードおよびデータのセキュアな領域をアプリケーションが定義することを可能にすること。
【0015】
Intel SGXは、将来のIntelアーキテクチャプロセッサに加えられるメモリアクセスのための命令およびメカニズムのセットである。Intel SGXテクノロジーは、特権を与えられているマルウェアの存在下でさえ機密性およびインテグリティを提供する、アプリケーションのアドレス空間内の保護されているエリアであるエンクレーブのコンセプトを含む。エンクレーブ内に存在していない任意のソフトウェアからのエンクレーブメモリエリアへのアクセスも防止される。アプリケーションは、それがエンクレーブの外部に格納したいと望むキーおよびデータを保護するためにそれが使用することができるエンクレーブ固有の、かつプラットフォーム固有のキーを要求することもできる。
【0016】
クラウドサーバは典型的に、利用可能な信頼されている実行環境をまったく有していないが、それでもなお、クラウドサービスの信頼性を検証するための方法がある。これは、信頼されているブート(または測定されたブート)コンセプトをサポートしていて、かつハードウェアセキュリティモジュール(HSM)(典型的には、トラステッドプラットフォームモジュール(TPM)と呼ばれるチップ)を含むシステムにおいて行われることが可能である。TPMは、パブリック/プライベートRSAキーペアを含む。プライベートキーは、TPMから抽出されることが不可能であるが、パブリックキーは、証明されることが可能である。TPMはまた、署名のようなオペレーションの静的なセット(TPM_Sign)を含む。TPMはまた、20バイトのSHA1ハッシュ値を格納することができるプラットフォーム構成レジスタ(PCR)と呼ばれるレジスタの対を含む。PCRは、読み取られ得るが、それらの値は、TPM_Extendオペレーションを使用することによって修正されることのみが可能である。TPM_Extendオペレーションは、古いPCRレジスタ値を新たなハッシュ値と連結し、連結されたバイトのSHA1ハッシュを計算し、その結果をPCRレジスタ内に格納する。
【0017】
リモート認証コンセプトは、プラットフォームが、呼び出されるそれぞれの実行可能なコンポーネントを測定すると想定している。測定は、コンポーネントのSHA1ハッシュ値を計算することによって行われる。検証の連鎖もあり、例えば、ブートローダは、ローディングの前にカーネルを測定すべきであり、カーネルは、実行の前にユーザスペースコンポーネントを測定すべきである。測定値が取られる場合は常に、測定ログが、その測定値と、測定された実行可能ファイルの名前とを含むように付加される。カーネルは、少なくとも全てのネイティブの実行可能ファイルおよび共有ライブラリを測定することになり、そして、これらの測定値を追跡把握することになり、それによってコンポーネントは典型的に、それぞれのブートの後に1回だけ測定される。リモートサイトは、システムコンポーネントのシステム構成および予想されるSHA1ハッシュ値を知っていると想定される。リモートサイトは、認証要求(ランダムノンスを含む)を送信することができる。認証されることになるシステムは、PCRレジスタ値と、受信されたノンス値とを含む署名されたメッセージを提供するTPM_Quoteコマンド(受信されたランダムノンスをパラメータとして含む)を発行するはずである。署名されたメッセージおよび測定ログは、リモートサイトへ返され、リモートサイトは、ハッシュ計算と、そしてまた、測定されたハッシュ値が予想値を有していることとをチェックするはずである。リモートは、測定されることになる全てのコンポーネントのSHA1ハッシュを知っていると予想される。
【0018】
Linuxカーネルは、これらの測定値を生み出すために使用されることが可能であるIMAと呼ばれるコンポーネントを含む。いくつかの仮想マシンをホストしているハードウェアプラットフォーム内に1つのTPMチップしかない場合には、複数の仮想マシンインスタンスからのTPM測定値どうしが混ぜ合わされて、結果がほとんど役に立たなくなる可能性がある。この問題を解決するために、仮想化されたTPM(vTPM)が提案されている。認証も、Intelトラステッドエグゼキューションテクノロジー(TXT)の重要なコンポーネントである。
【0019】
認証ベースの方法では、ユーザが完全な参照整合性メトリックを有していて、セキュリティ要素が証明されたキーペアを使用しなければならず、かつユーザが認証ログを再生して結果どうしを比較することができることが必要である。これは、企業および大きな組織にとっては可能であるが、個人にとっては困難である可能性がある。
【0020】
PrivateCoreは、認証と暗号化を組み合わせているクラウドテクノロジープロバイダの例である。PrivateCoreは、システムにおいて信頼されている必要がある唯一の要素は中央処理装置(CPU)であると想定している。PrivateCoreは、RAMの代わりにAES暗号化を使用する。PrivateCoreは、RAMを使用する代わりにマイクロプロセッサレジスタをもっぱら使用するAES暗号化およびそのキー管理を実施するLinuxカーネルパッチを提示しているTRESORプロジェクトのものと同様のCPUバウンドな暗号化アプローチを使用する。TRESORは、ディスク暗号化のためのものであり、DMAベースの攻撃に対しては潜在的に脆弱である。
【0021】
PrivateCoreは、パブリッククラウドにおける機密データ処理に関連した多くの問題に対処することができるが、それでもなお問題がある。これらのうちの1つが、キー管理である。たとえPrivateCoreがCPUの内部にAESキーを保持することができるとしても、そのキーは、何らかの形で挿入されなければならない。リモート認証を使用すること、および測定された構成を検証することも必要である。PrivateCoreは、高められた機密性保護を提供するが、それでもなお信頼の問題がある。なぜならユーザは、PrivateCoreのクラウドインフラストラクチャに依存しなければならないからである。
【発明の概要】
【0022】
本明細書における実施形態は、クラウドベースのデータストレージのコンテキストにおける暗号化されたデータの処理に関する。より具体的には、暗号化されたデータの暗号化されていないバージョンにクラウドがアクセスしないように、暗号化されたデータをクライアントとクラウドとの間において分割することに関する。
【0023】
一実施形態においては、方法が、第1のオペレーションを実行する要求をクライアントデバイスから受信することを含み、第1のオペレーションは、少なくとも、データの第1のセット上で実行される第1の機能を含む。この方法は、データの第1のセットが暗号化されているかどうかを判定することをさらに含む。データの第1のセットが暗号化されている場合には、データの第1のセットと、第1の機能を実行するための命令とが、クライアントデバイスへ送信され、その命令は、第1の機能を実行するためのコンピュータコードを含み、データの第1のセット上での機能の暗号化された結果を表す第1の処理された暗号化されたデータが、クライアントデバイスから受信される。データの第1のセットが暗号化されていない場合には、第1の機能が、データの第1のセット上で実行されて、第1の処理されたデータを生成する。
【0024】
一実施形態においては、システムが、プロセッサと非一時的なデータストレージ媒体とを有する少なくとも1つのサーバを含むクラウドサービスを含み、その媒体は、命令を格納しており、それらの命令は、プロセッサによって実行されたときに、第1のオペレーションを実行する要求をクライアントデバイスから受信することであって、第1のオペレーションは、少なくとも、データの第1のセット上で実行される第1の機能を含む、ことと、データの第1のセットが暗号化されているかどうかを判定することとを行うように機能する。それらの命令は、データの第1のセットが暗号化されている場合には、データの第1のセットと、第1の機能を実行するための命令とをクライアントデバイスへ送信することであって、第1の機能を実行するための命令は、第1の機能を実行するためのコンピュータコードを含む、ことと、データの第1のセット上での機能の暗号化された結果を表す第1の処理された暗号化されたデータをクライアントデバイスから受信することとを行うように機能する。それらの命令は、データの第1のセットが暗号化されていない場合には、データの第1のセット上で第1の機能を実行して、第1の処理されたデータを生成することを行うようにさらに機能する。
【図面の簡単な説明】
【0025】
図1】本明細書において記述されている実施形態におけるユーザデバイス、アプリケーションサーバ、通知サーバ、および/または他のネットワークノードとして採用され得る例示的な無線送受信ユニット(WTRU)を示す図である。
図2】本明細書において記述されている実施形態におけるユーザデバイス、クラウドサーバ、および/または他のネットワークノードとして採用され得る例示的なネットワークエンティティを示す図である。
図3】機密データの委任処理の方法を示す流れ図である。
図4】画像処理を行うために採用されている機密データの委任処理の方法を示す流れ図である。
【発明を実施するための形態】
【0026】
本開示のシステムおよび方法においては、データ処理の機密の部分が、ユーザのパーソナルデバイスへ委任される。様々なアプローチが論じられている。
【0027】
本明細書において開示されている例示的な実施形態は、無線送受信ユニット(WTRU)または他のネットワークエンティティなど、1つまたは複数の有線ネットワークノードおよび/または無線ネットワークノードを使用して実施される。図1は、例示的なWTRU102のシステム図であり、このWTRU102は、本明細書において記述されている実施形態におけるユーザデバイスとして採用されることが可能である。図1において示されているように、WTRU102は、プロセッサ118、トランシーバ120を含む通信インターフェース119、送信/受信要素122、スピーカー/マイクロフォン124、キーパッド126、ディスプレイ/タッチパッド128、非リムーバブルメモリ130、リムーバブルメモリ132、電源134、GPSチップセット136およびセンサ138を含むことができる。WTRU102は、実施形態との整合性を保持しながら、上述の要素どうしの任意の下位組合せを含むことができるということが理解されるであろう。
【0028】
プロセッサ118は、汎用プロセッサ、専用プロセッサ、従来型プロセッサ、デジタルシグナルプロセッサ(DSP)、複数のマイクロプロセッサ、DSPコアと関連付けられている1つもしくは複数のマイクロプロセッサ、コントローラ、マイクロコントローラ、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)回路、他の任意のタイプの集積回路(IC)、状態マシンなどとすることができる。プロセッサ118は、信号符号化、データ処理、パワー制御、入力/出力処理、および/または、WTRU102が無線環境において機能し得る他の任意の機能を実行することができる。プロセッサ118は、トランシーバ120に結合されることが可能であり、トランシーバ120は、送信/受信要素122に結合されることが可能である。図1は、プロセッサ118とトランシーバ120を別々のコンポーネントとして示しているが、プロセッサ118とトランシーバ120は、電子パッケージまたはチップ内にともに統合されることが可能であるということが理解されるであろう。
【0029】
送信/受信要素122は、エアインターフェース115/116/117を介して、基地局に信号を送信するように、または基地局から信号を受信するように構成されることが可能である。例えば、一実施形態においては、送信/受信要素122は、RF信号を送信および/または受信するように構成されているアンテナであることが可能である。別の実施形態においては、送信/受信要素122は、例えば、IR信号、UV信号または可視光信号を送信および/または受信するように構成されているエミッタ/検知器であることが可能である。さらに別の実施形態においては、送信/受信要素122は、RF信号および光信号の両方を送信および受信するように構成されることが可能である。送信/受信要素122は、無線信号の任意の組合せを送信および/または受信するように構成されることが可能であるということが理解されるであろう。
【0030】
また、送信/受信要素122は、図1においては単一の要素として示されているが、WTRU102は、任意の数の送信/受信要素122を含むことができる。より具体的には、WTRU102は、MIMO技術を採用することができる。従って、一実施形態においては、WTRU102は、エアインターフェース115/116/117を介して無線信号を送信および受信するために、複数の送信/受信要素122(例えば、複数のアンテナ)を含むことができる。
【0031】
トランシーバ120は、送信/受信要素122によって送信されることになる信号を変調するように、および送信/受信要素122によって受信される信号を復調するように構成されることが可能である。上述したように、WTRU102は、マルチモード機能を有することができる。従って、トランシーバ120は、WTRU102が、例えばUTRAおよびIEEE 802.11などの複数のRATを介して通信することを可能にするために複数のトランシーバを含むことができる。
【0032】
WTRU102のプロセッサ118は、スピーカー/マイクロフォン124、キーパッド126、および/またはディスプレイ/タッチパッド128(例えば、液晶ディスプレイ(LCD)ディスプレイユニットもしくは有機発光ダイオード(OLED)ディスプレイユニット)に結合されることが可能であり、そこからユーザ入力データを受信することができる。プロセッサ118は、ユーザデータをスピーカー/マイクロフォン124、キーパッド126、および/またはディスプレイ/タッチパッド128へ出力することもできる。また、プロセッサ118は、任意のタイプの適切なメモリ、例えば、非リムーバブルメモリ130および/またはリムーバブルメモリ132の情報にアクセスすること、およびそれらのメモリにデータを格納することが可能である。非リムーバブルメモリ130は、ランダムアクセスメモリ(RAM)、読み取り専用メモリ(ROM)、ハードディスク、または他の任意のタイプのメモリストレージデバイスを含むことができる。リムーバブルメモリ132は、加入者識別モジュール(SIM)カード、メモリスティック、セキュアデジタル(SD)メモリカードなどを含むことができる。他の実施形態においては、プロセッサ118は、WTRU102上に物理的に配置されていない、例えば、サーバまたはホームコンピュータ(図示せず)上のメモリの情報にアクセスすること、およびそのメモリにデータを格納することが可能である。
【0033】
プロセッサ118は、電源134から電力を受け取ることができ、WTRU102内の他のコンポーネントへの電力を分配および/または制御するように構成されることが可能である。電源134は、WTRU102に電力供給するための任意の適切なデバイスであり得る。例えば、電源134は、1つまたは複数の乾電池(例えば、ニッケルカドミウム(NiCd)、ニッケル亜鉛(NiZn)、ニッケル水素(NiMH)、リチウムイオン(Li−ion)など)、太陽電池、燃料電池などを含むことができる。
【0034】
プロセッサ118は、GPSチップセット136に結合されることも可能であり、GPSチップセット136は、WTRU102の現在の位置に関する位置情報(例えば、経度および緯度)を提供するように構成されることが可能である。WTRU102は、GPSチップセット136からの情報に加えて、またはその情報の代わりに、基地局からエアインターフェース115/116/117を介して位置情報を受信すること、および/または複数の近隣の基地局から受信されている信号のタイミングに基づいて自分の位置を判定することが可能である。WTRU102は、実施形態との整合性を保持しながら、任意の適切な位置判定方法を通じて位置情報を取得することができるということが理解されるであろう。
【0035】
プロセッサ118は、他の周辺機器138にさらに結合されることが可能であり、他の周辺機器138は、さらなる特徴、機能および/または有線接続もしくは無線接続を提供する1つまたは複数のソフトウェアモジュールおよび/またはハードウェアモジュールを含むことができる。例えば、周辺機器138は、加速度計、eコンパス、衛星トランシーバ、デジタルカメラ(写真またはビデオ用)、ユニバーサルシリアルバス(USB)ポート、振動デバイス、テレビジョントランシーバ、ハンドフリーヘッドセット、Bluetooth(登録商標)モジュール、周波数変調(FM)ラジオユニット、デジタルミュージックプレーヤ、メディアプレーヤ、ビデオゲームプレーヤモジュール、インターネットブラウザなどのセンサを含むことができる。
【0036】
図2は、例えばクラウドサービスにおけるサーバとして、本開示の実施形態において使用されることが可能である例示的なネットワークエンティティ190を示す。図2において示されるように、ネットワークエンティティ190は、通信インターフェース192、プロセッサ194および非一時的なデータストレージ196を含み、これらは全て、バス、ネットワーク、または他の通信パス198によって通信可能にリンクされている。
【0037】
通信インターフェース192は、1つもしくは複数の有線通信インターフェースおよび/または1つもしくは複数の無線通信インターフェースを含むことができる。有線通信に関して、通信インターフェース192は、例としてイーサネットインターフェースなどの1つまたは複数のインターフェースを含むことができる。無線通信に関して、通信インターフェース192は、コンポーネント、例えば、1つもしくは複数のアンテナ、1つもしくは複数のタイプの無線(例えば、LTE)通信用に設計および構成されている1つもしくは複数のトランシーバ/チップセット、並びに/または、当業者によって適切とみなされる他の任意のコンポーネントを含むことができる。そしてさらに、無線通信に関して、通信インターフェース192は、無線通信(例えば、LTE通信、Wi−Fi通信など)のクライアント側ではなくネットワーク側で機能するのに適したスケールおよび構成で展開されることが可能である。従って、通信インターフェース192は、カバレッジエリア内の複数の移動局、UE、または他のアクセス端末にサービス提供するための適切な装備および回路(おそらくは複数のトランシーバを含む)を含むことができる。
【0038】
プロセッサ194は、当業者によって適切とみなされる任意のタイプの1つまたは複数のプロセッサを含むことができ、そのいくつかの例は、汎用マイクロプロセッサおよび専用DSPを含む。
【0039】
データストレージ196は、任意の非一時的なコンピュータ可読媒体またはそのような媒体の組合せの形態を取ることができる(そのいくつかの例は、ほんの数例を挙げれば、フラッシュメモリ、読み取り専用メモリ(ROM)、およびランダムアクセスメモリ(RAM)を含む)。なぜなら、当業者によって適切とみなされる任意の1つまたは複数のタイプの非一時的なデータストレージが使用されることが可能であるからである。図2において示されるように、データストレージ196は、本明細書において記述されている様々なネットワークエンティティ機能の様々な組合せを実行するためにプロセッサ194によって実行可能なプログラム命令197を含む。
【0040】
本開示は、クラウドサービスにおいて格納されているデータを保護するシステムおよび方法について記述している。クラウドインフラストラクチャが信頼されていることを確実にすることに対する代わりに(または追加として)異なるアプローチが記述されている。例示的な実施形態においては、クラウドサーバの代わりにユーザのパーソナルデバイスを使用して機密データ処理が実行され、クラウドインフラストラクチャは、そのような委任を可能にするメカニズムを含む。クラウドサーバは、暗号化された個人データのためのストレージとして使用される。暗号化されていないデータの処理は、信頼されている構内において実行されて、多くの攻撃シナリオを無関係にする。なぜなら、信頼されていない構内において機密データが復号されることは絶対にないからである。本明細書において開示される実施形態は、プライバシーを保持する一方で機密の個人データの処理を依然として可能にするように機能する。
【0041】
ある実施形態は、リモートプロシージャーコール(RPC)の使用に基づいている。このアプローチは、問題の分割を必要とし、それによって、信頼されていないシステム上に格納されている暗号化された機密データが、トラステッドシステムへ処理のために渡され、暗号化された結果が、処理の後に、信頼されていないシステムへ返される。
【0042】
ある実施形態は、リモートプロセスに基づいている。暗号化されたデータをユーザのデバイス上で処理するために使用されるプログラムが展開される。これは、アルゴリズムどうしを分割する必要がないという利点を有する。しかしながら、これは、プログラムどうしが2つのカテゴリーへ分類されることを必要とする。
【0043】
ある実施形態は、リモートオペレーティングシステム(OS)に基づいている。OSインスタンス全体が、仮想化メカニズムを使用してユーザのデバイスにおいて実行される。プライバシーの機密性を必要とするユーザは、クラウド環境全体を自分のデバイスへ展開し、クラウドをデータソースとしてのみ使用する。
【0044】
3つのアプローチは全て可能であり、実現可能性はアプリケーションドメインに依存する。別の信頼依存関係もある。クラウドソフトウェアプロバイダは、秘密のアルゴリズムを含む独自のサービスを提供する。それらをクライアントのデバイスに公開することは、それらのアルゴリズムが競合相手によってリバースエンジニアリングおよびコピーされる可能性があるということを意味することになる。データ処理は、クラウドプロバイダのソフトウェアを実行することを含むので、悪意あるクラウドプロバイダによってユーザの個人データが漏洩されることが依然としてあり得る。しかしながら、ユーザの構内において計算を実行することは、認証ベースの技術が使用される場合でさえ検知することが非常に困難であるハードウェアベースの攻撃を軽減する。多くのハードウェアベースの攻撃は、「攻撃者としてのユーザ」というカテゴリーに属し、ここではユーザがコンピューティングインフラストラクチャを所有しているので、これらの攻撃の動機は非常に低い。
【0045】
リモートプロシージャーコール
例示的な実施形態においては、パーソナルクラウド内に格納される個々の個人データ値が、機密または非機密のどちらかであるようにタグ付けされる。機密の部分は、暗号化された形態で格納される。データ処理がこれらの機密データフィールドにアクセスする場合は常に、実行は、ユーザのローカルシステムへ移される。非機密データの処理は、クラウド環境において実行されることが可能である。暗号化された機密の資料のための復号キーは、ユーザのローカルシステムにおいてのみ利用可能である。
【0046】
ある実施態様においては、全てのデータは、データベース内に格納され、全てのデータアイテムは、機密値フィールドを有する。2つの機密レベルしかない場合には、その値は、バイナリーフラグ値であることが可能である。データそのものは暗号化されているが、クラウドプロバイダは、依然としてメタデータ情報にアクセスできる場合があるということに留意されたい。プロバイダは、「給与」、「病気」、「犯罪記録」のようなデータフィールドの名前をモニタすることができるが、コンテンツそのものは暗号化されている。ある実施形態においては、データの機密性を検証するために使用される機能がある。クライアントシステムは、データを処理するために使用されるリモートプロシージャーコールのセットを利用する。下記のPythonの断片は、例示的なプログラムフローシナリオを示している。
【0047】
【表1】
【0048】
この例における全てのデータフィールドは機密タグを含んでいるので、パラメータとして使用されることになるフィールドのうちの1つが機密フィールドであると検知された場合には、機密データの処理は、ユーザのパーソナルデバイスへ転送される。
【0049】
上記の例示的なコードにおいては、非機密データ処理は、クラウドプログラム内のサブルーチンとして実施されるコード(functionA)を使用し、その一方で機密データの処理は、リモートプロシージャーコールクライアントスタブ関数(rpc_functionA)をコールすることによってユーザのシステムへ委任される。この関数は、データがどこで処理されるべきかを指定するパラメータ(Personal)を有することもできる。ユーザのローカルデバイスは、それぞれの指定されたRPCコールを実施するためのRPCリスナーコンポーネントおよび実行可能コードを提供される。RPCコールは、機密情報をリモートシステムへ渡す。RPC関数コールは、暗号化されたテキストのパラメータおよびプレーンテキストのパラメータの両方を同じ関数コール内に有することができる。機密情報は変数とともに渡されるので、実施関数は、必要に応じてパラメータを復号することができる。
【0050】
リモートプロシージャーコールを使用するある実施態様においては、ユーザのデバイスにおいて関数を実行するという判定に応答して、クラウドサーバが、スタック上へプッシュされるパラメータを伴って、スタブ関数へのコールを実行する。このスタブは、それらのパラメータをメッセージ内にマーシャリングし、そのメッセージを送信するためのシステムコールを行う。クラウドサーバのオペレーティングシステムは、そのメッセージをクラウドサーバからユーザのデバイスへ送信する。
【0051】
ユーザのオペレーティングシステムは、入ってくるパケットをスタブ関数へ渡す。スタブ関数は、メッセージからパラメータをアンパック(アンマーシャリング)する。クライアントマシン上のスタブ関数は、必要とされているローカル関数をコールする。クラウドへの応答は、同じステップを逆方向へ辿る。
【0052】
ある実施形態においては、クラウドとパーソナルデバイスとの間におけるネットワーク通信も保護される。例えば、通信は、トランスポートレイヤセキュリティ(TLS)またはIPSECベースの仮想プライベートネットワーク(VPN)を使用してトンネリングされることが可能である。
【0053】
リモートプロセス
ある実施形態においては、プロセス内でデータ処理を分割する代わりに、プロセス全体がユーザの構内へ移される。暗号化されたコンテンツを伴うクラウドベースのデータベースがある場合には、ユーザの構内において稼働するプロセスが、暗号化されたストレージにアクセスし、コンテンツをダウンロードする。そのコンテンツは、ユーザのデバイスにおいて復号され、そこで処理される。非機密データ処理は、依然としてクラウドサービスとして行われる。
【0054】
例えば、一片のソフトウェアが、クラウドサーバによってユーザデバイスに提供されることが可能である。このソフトウェアは、ユーザデバイス上でインスタンス化されているトラステッドコンピューティング環境において実行されることが可能である。従って、クラウドサーバは、ユーザデバイスに対して、暗号化されたデータを伴うコンピュータコードを、暗号化されたデータに基づいてクラウドにおいて行動したいという要求に応答して提供する。ユーザデバイスは、そのコードを実行して、トラステッドコンピューティング環境において一片のソフトウェアをインスタンス化することなどを行い、ユーザデバイスにおいてコンテンツを復号し、その復号されたコンテンツ上でソフトウェアを実行する。ユーザデバイスは、コンテンツを再び暗号化し、その処理されて再び暗号化されたコンテンツをクラウドサーバへ返信する。ある実施形態においては、コンピュータコードは、クラウドにおいて利用可能な一片のソフトウェアの一部分(例えば、ユーザインターフェースを伴わない特定の写真フィルタなど、より大きなプログラムの単一のオペレーションなど)を含むことができる。
【0055】
RPCの実施形態と比較すると、要求されているプロセスをユーザのデバイスにおいて実行するための既存のローカル関数がなく、従って、そのような関数のためのコンピュータコードが、ユーザのデバイスへ通信される。
【0056】
リモートオペレーティングシステム
ユーザのデバイスにおいて稼働するリモートプロセスは、プライバシーの脅威でもあり得る。なぜなら、それはユーザの環境をモニタすることもできるからである。これらの脅威を軽減するために、仮想化された環境を使用してローカル処理が行われることが可能である。このソリューションは、完全な仮想化、または、Dockerシステムにおけるようなネームスペースベースの分割のような何らかのより軽量なもののどちらかに基づくことが可能である。
【0057】
例示的なサービス
例示的な実施形態においては、写真操作クラウドサービスが提供される。例えば、写真操作クラウドサービスは、私的な画像に対してフィルタなどの様々な効果を加えるために使用されることが可能である。画像は、暗号化された形態で格納されるが、ユーザは、画像を処理するための能力を提供される。例示的なサービスは、ユーザが選択することができる元となるフィルタのセットを提供する。
【0058】
図3において示されている例示的な方法300においては、ユーザデバイス302が、データを暗号化し(305)、その暗号化されたデータを、格納(315)のためにクラウドサービス304へアップロードする(310)。クラウドサービスは、1つまたは複数のサーバを含むことができる。ユーザは、暗号化されていないデータを、クラウドサービスによる格納(315)のためにアップロードすることもできる(312)。ユーザデバイスは、選択されたデータを処理する要求をクラウドサービスへ送信することができる(320)。クラウドサービスは、選択されたデータを処理する要求を受信し(325)、選択されたデータが暗号化されているかどうかを判定する(330)。(この例示的な実施形態においては、データは、対応する復号キーをクラウドサービスが提供されていない場合には、暗号化されているとみなされるということに留意されたい。例えば、クラウドサービスが復号キーを有しているデータは、この例においては、暗号化されているとみなされない。)
処理されることになるデータが暗号化されている場合には(332a)、データは、その暗号化された形態で、復号および処理のためにユーザデバイスへ、そのデータをどのようにして処理するかについての命令とともに送信される(335)。データをどのようにして処理するかについての命令は、様々な形態で提供されることが可能である。例えば、それらの命令は、リモートプロシージャーコールの一部として提供されることが可能であり、またはクラウドサービスは、データ処理を実行するためのコンピュータコード(例えば、写真編集フィルタなど、要求された処理をデータ上で実行するための実行可能な一片のソフトウェアなど)をユーザデバイスへ搬送することができる。ユーザデバイスは、暗号化されたデータを受信し(340)、そのデータを復号し(345)、受信された命令に従ってそのデータを処理する(350)。ある実施形態においては、データを処理することは、データ上で処理を実行するためにユーザデバイスにおいてソフトウェアをインスタンス化するためのコンピュータコードを実行することをさらに含むことができる。ユーザデバイスは、結果として生じる処理されたデータを再び暗号化し(355)、その暗号化された処理されたデータを、格納(365)のためにクラウドサービスへ返信する(360)。ある実施形態においては、コンピュータコードは、データ処理の後で、および/または再び暗号化された処理されたデータをクラウドへアップロードした後で、ユーザのデバイスから除去されることが可能である。
【0059】
データ処理を実行するために使用されるコンピュータコードをクラウドサービスがユーザデバイスへ搬送するある実施形態においては、コピーすることおよび/またはリバースエンジニアリングすることからコンピュータコードを保護するためのステップが取られることが可能である。例えば、コンピュータコードは、暗号化された形態でユーザデバイスへ送信されることが可能であり、そのコンピュータコードは、ARM TrustZoneなどの隔離された実行環境において復号されて実行される。クラウドサービスの知的財産を保護するために、ある実施形態においては、リモート認証、シールドストレージおよび/またはメモリカーテニングなどのトラステッドコンピューティング技術が採用される。ある実施形態においては、クラウドサービスは、直接匿名認証などのリモート認証プロトコルを使用して、ユーザデバイスに認証を要求することができ、満足できる応答をユーザデバイスから受信した後にのみ、コンピュータコードをユーザデバイスへ送信することができる。
【0060】
処理されることになるデータが暗号化されていない場合には(332b)、データは、クラウドサービスによって処理され(370)、クラウドサービスは、処理されたデータを格納する(375)。ある実施形態においては、処理されたデータは、クライアントデバイスへ搬送されることも可能である。ある実施形態においては、処理されたデータは、部分的なまたは低解像度の形態でのみクライアントデバイスへ搬送される。例えば、大きな画像ファイルがクラウドサービスによって(例えば、フィルタを適用するために、または顔認識を実行するために)処理されて、完全な解像度で処理された画像がクラウドサービスによって格納され、処理された画像のさらに低い解像度のバージョンがユーザデバイスに提供されて、その画像の完全な解像度のバージョンをダウンロードすることをユーザに要求することなく、処理が正しく実行されたことをユーザが確認することができる。
【0061】
図4において示されている例示的な方法においては、ユーザ401が、1または複数の写真を撮影するかまたはその他の形で入手する(405)。これらの写真は、暗号化され、個人の暗号化されたデータクラウド内に格納される(例えば、アップロードされる)(410)。それぞれの新たな写真は、トランスペアレントに暗号化され、暗号化されたクラウドフォトギャラリー402へアップロードされる。ユーザは、ビューアソフトウェアを提供され、そのビューアソフトウェアは、ギャラリー画像をトランスペアレントに復号し、それらの画像をユーザに表示する(415)。
【0062】
トラステッドデータマイニングサンドボックス(TDMS)などのトラステッドコンピューティング環境が、ユーザデバイス上でインスタンス化される(420)。ユーザは、画像を操作するために使用されることが可能である画像フィルタリングサービス(404)を選択する(425)。選択された操作フィルタは、トラステッドコンピューティング環境内にインストールされる(430)。ユーザは、フィルタパラメータを構成および調整する(435、440)。フィルタリングされた画像が、ユーザに示される(445)。フィルタリングされた画像は、トランスペアレントに暗号化され、暗号化されたパーソナルクラウドギャラリーへアップロードされる(450)。トラステッドコンピューティング環境が、アンインストールされる(455)。
【0063】
ある実施形態においては、このシステムは、暗号化されたデータをユーザデバイスへ、入ってくるデータパケットの処理を取り扱うユーザデバイス上の既存のソフトウェアへの1つまたは複数のパラメータとともに通信することができる。ある実施形態においては、このシステムは、暗号化されたデータをユーザデバイスへ、そのデータに関連付けられている、適切なプロセスを起動する記述子(MIMEタイプなど)とともに通信することができる。ある実施形態においては、このシステムは、暗号化されたデータをユーザデバイスへ、一片のスクリプト言語コード(最低1行を有する)とともに通信することができる。これらのケースにおいては、ユーザデバイスは、暗号化されたデータをしかるべく処理することができる信頼されているランタイム環境を有することができる。
【0064】
上記では特徴および要素が特定の組合せで記述されているが、それぞれの特徴または要素は、単独で、または他の特徴および要素との任意の組合せで使用されることができるということを当技術分野における標準的な技術者なら理解するであろう。また、本明細書において記述されている方法は、コンピュータまたはプロセッサによって実行するためにコンピュータ可読媒体内に組み込まれているコンピュータプログラム、ソフトウェアまたはファームウェアで実施されることができる。コンピュータ可読記憶媒体の例は、ROM、RAM、レジスタ、キャッシュメモリ、半導体メモリデバイス、内蔵ハードディスクおよびリムーバブルディスクなどの磁気媒体、光磁気媒体、CD−ROMディスクおよびデジタル多用途ディスク(DVD)などの光媒体を含むが、それらには限定されない。WTRU、UE、端末、基地局、RNCまたは任意のホストコンピュータにおいて使用するための無線周波数トランシーバを実施するために、ソフトウェアと関連付けられているプロセッサが使用されることが可能である。
【0065】
さらなる実施形態は、下記を含むが、それらには限定されない。
【0066】
一実施形態においては、方法が、第1のオペレーションを実行する要求をクライアントデバイスから受信することであって、第1のオペレーションは、少なくとも、データの第1のセット上で、およびデータの第2のセット上で実行される第1の機能を含む、ことと、データの第1および第2のセットのうちの少なくとも1つが暗号化されているかどうかを判定することと、データの第1および第2のセットのうちの少なくとも1つが暗号化されているという判定に応答して、データの第1および第2のセットと、第1の機能を実行するための命令とをクライアントデバイスへ送信することと、データの第1のセット上での機能の暗号化された結果を表す第1の処理された暗号化されたデータをクライアントデバイスから受信することとを含む。ある実施形態においては、データの第1および第2のセットのうちの1つのみが暗号化される。ある実施形態においては、第1の機能を実行するための命令は、第1の機能を実行するためのコンピュータコードを含む。ある実施形態においては、コンピュータコードは、暗号化された形態でクライアントデバイスへ送信される。ある実施形態においては、この方法は、クライアントデバイスのリモート認証を要求することをさらに含み、コンピュータコードは、クライアントデバイスの満足できる認証を受信した後にのみ、クライアントデバイスへ送信される。ある実施形態においては、この方法は、第1の処理された暗号化されたデータを格納することをさらに含む。ある実施形態においては、データの第1および第2のセットのうちの少なくとも1つが暗号化されているかどうかを判定することは、データの第1および第2のセットのうちの少なくとも1つが、機密であるとしてマークされているかどうかを判定することを含む。ある実施形態においては、この方法は、少なくとも1つのサーバを含むクラウドサービスによって実行される。ある実施形態においては、データの第1および第2のセットと、第1の機能を実行するための命令とを送信することは、リモートプロシージャーコールを使用して実行される。ある実施形態においては、コンピュータコードは、実行可能なコンピュータコードを含む。
【0067】
一実施形態においては、方法が、第1のオペレーションを実行する要求をクライアントデバイスから受信することであって、第1のオペレーションは、少なくとも、データの第1のセット上で、およびデータの第2のセット上で実行される第1の機能を含む、ことと、データの第1および第2のセットのうちの少なくとも1つが暗号化されているかどうかを判定することと、データの第1および第2のセットのうちの少なくとも1つが暗号化されている場合には、データの第1および第2のセットと、第1の機能を実行するための命令とをクライアントデバイスへ送信することと、データの第1および第2のセット上での第1の機能の暗号化された結果を表す第1の処理された暗号化されたデータをクライアントデバイスから受信することと、データの第1および第2のセットのどちらも暗号化されていない場合には、データの第1および第2のセット上で第1の機能を実行して、第1の処理されたデータを生成することとを含む。ある実施形態においては、データの第1および第2のセットのうちの1つのみが暗号化される。ある実施形態においては、第1の機能を実行するための命令は、第1の機能を実行するためのコンピュータコードを含む。ある実施形態においては、コンピュータコードは、暗号化された形態でクライアントデバイスへ送信される。ある実施形態においては、この方法は、クライアントデバイスのリモート認証を要求することをさらに含み、コンピュータコードは、クライアントデバイスの満足できる認証を受信した後にのみ、クライアントデバイスへ送信される。ある実施形態においては、この方法は、第1の処理された暗号化されたデータを格納することをさらに含む。ある実施形態においては、データの第1および第2のセットのうちの少なくとも1つが暗号化されているかどうかを判定することは、データの第1および第2のセットのうちの少なくとも1つが、機密であるとしてマークされているかどうかを判定することを含む。ある実施形態においては、この方法は、第1の処理されたデータをクライアントデバイスへ送信することをさらに含む。ある実施形態においては、この方法は、少なくとも1つのサーバを含むクラウドサービスによって実行される。ある実施形態においては、データの第1および第2のセットと、第1の機能を実行するための命令とを送信することは、リモートプロシージャーコールを使用して実行される。ある実施形態においては、コンピュータコードは、実行可能なコンピュータコードを含む。
【0068】
一実施形態においては、方法が、第1のオペレーションを実行する要求をクライアントデバイスから受信することであって、第1のオペレーションは、少なくとも、データの第1のセット上で実行される第1の機能、およびデータの第2のセット上で実行される第2の機能を含む、ことと、データの第1および第2のセットが暗号化されているかどうかを判定することと、データの第1のセットが暗号化されているという判定に応答して、データの第1のセットと、第1の機能を実行するための命令とをクライアントデバイスへ送信することと、データの第1のセット上での機能の暗号化された結果を表す第1の処理された暗号化されたデータをクライアントデバイスから受信することと、データの第2のセットが暗号化されていないという判定に応答して、データの第2のセット上で第2の機能を実行して、第2の処理されたデータを生成することとを含む。ある実施形態においては、第1の機能を実行するための命令は、第1の機能を実行するためのコンピュータコードを含む。ある実施形態においては、コンピュータコードは、暗号化された形態でクライアントデバイスへ送信される。ある実施形態においては、この方法は、クライアントデバイスのリモート認証を要求することをさらに含み、コンピュータコードは、クライアントデバイスの満足できる認証を受信した後にのみ、クライアントデバイスへ送信される。ある実施形態においては、この方法は、第1の処理された暗号化されたデータを格納することをさらに含む。ある実施形態においては、データの第1および第2のセットが暗号化されているかどうかを判定することは、データの第1および第2のセットが、機密であるとしてマークされているかどうかを判定することを含む。ある実施形態においては、この方法は、第2の処理されたデータをクライアントデバイスへ送信することをさらに含む。ある実施形態においては、この方法は、少なくとも1つのサーバを含むクラウドサービスによって実行される。ある実施形態においては、データの第1のセットと、第1の機能を実行するための命令とを送信することは、リモートプロシージャーコールを使用して実行される。ある実施形態においては、コンピュータコードは、実行可能なコンピュータコードを含む。
【0069】
一実施形態においては、方法が、第1のオペレーションを実行する要求をクライアントデバイスから受信することであって、第1のオペレーションは、少なくとも、データの第1のセット上で実行される第1の機能を含む、ことと、データの第1のセットが暗号化されているかどうかを判定することと、データの第1のセットが暗号化されているという判定に応答して、データの第1のセットと、第1の機能を実行するための命令とをクライアントデバイスへ送信することと、データの第1のセット上での機能の暗号化された結果を表す第1の処理された暗号化されたデータをクライアントデバイスから受信することと、第2のオペレーションを実行する要求をクライアントデバイスから受信することであって、第2のオペレーションは、少なくとも、データの第2のセット上で第1の機能を実行することを含む、ことと、データの第2のセットが暗号化されているかどうかを判定することと、データの第2のセットが暗号化されていないという判定に応答して、データの第2のセット上で第1の機能を実行して、第2の処理されたデータを生成することとを含む。ある実施形態においては、第1の機能を実行するための命令は、第1の機能を実行するためのコンピュータコードを含む。ある実施形態においては、コンピュータコードは、暗号化された形態でクライアントデバイスへ送信される。ある実施形態においては、この方法は、クライアントデバイスのリモート認証を要求することをさらに含み、コンピュータコードは、クライアントデバイスの満足できる認証を受信した後にのみ、クライアントデバイスへ送信される。ある実施形態においては、この方法は、第1の処理された暗号化されたデータを格納することをさらに含む。ある実施形態においては、データの第1のセットが暗号化されているかどうかを判定することは、データの第1のセットが、機密であるとしてマークされているかどうかを判定することを含む。ある実施形態においては、この方法は、第2の処理されたデータをクライアントデバイスへ送信することをさらに含む。ある実施形態においては、この方法は、少なくとも1つのサーバを含むクラウドサービスによって実行される。ある実施形態においては、データの第1のセットと、第1の機能を実行するための命令とを送信することは、リモートプロシージャーコールを使用して実行される。ある実施形態においては、コンピュータコードは、実行可能なコンピュータコードを含む。
【0070】
一実施形態においては、方法が、暗号化されたデータレコードの第1のセットと、暗号化されていないデータレコードの第2のセットとを含む複数の画像ファイルを格納することと、複数のデータレコードを処理する要求をクライアントデバイスから受信することと、複数のデータレコードのうちのどれが第1のセット内にあるか、および複数のデータレコードのうちのどれが第2のセット内にあるかを判定することと、データレコードの第1のセットと、データレコードの第1のセットを処理するための命令とをクライアントデバイスへ送信することと、データレコードの第2のセットを処理することと、データレコードの第1のセットの処理の暗号化された結果を表す暗号化された処理されたデータレコードの第3のセットをクライアントデバイスから受信することとを含む。ある実施形態においては、データレコードの第1のセットを処理するための命令は、データレコードの第1のセットを処理するためのコンピュータコードを含む。ある実施形態においては、コンピュータコードは、暗号化された形態でクライアントデバイスへ送信される。ある実施形態においては、この方法は、クライアントデバイスのリモート認証を要求することをさらに含み、コンピュータコードは、クライアントデバイスの満足できる認証を受信した後にのみ、クライアントデバイスへ送信される。ある実施形態においては、この方法は、暗号化された処理されたデータレコードの第3のセットを格納することをさらに含む。ある実施形態においては、複数の画像ファイルのうちのどれが第1のセット内にあるか、および複数の画像ファイルのうちのどれが第2のセット内にあるかを判定することは、複数の画像ファイルのうちのどれが、機密であるとしてマークされているかを判定することを含む。ある実施形態においては、データレコードの第2のセットの処理は、処理されたデータレコードの第4のセットを生成し、この方法は、処理されたデータレコードの第4のセットをクライアントデバイスへ送信することをさらに含む。ある実施形態においては、この方法は、少なくとも1つのサーバを含むクラウドサービスによって実行される。ある実施形態においては、データレコードの第1のセットと、第1の機能を実行するための命令とを送信することは、リモートプロシージャーコールを使用して実行される。ある実施形態においては、コンピュータコードは、実行可能なコンピュータコードを含む。
【0071】
一実施形態においては、方法が、暗号化されたデータの第1のセットを、少なくとも1つのサーバを含むクラウドサービスへ送信することと、第1のオペレーションを実行する要求をクラウドサービスへ送信することであって、第1のオペレーションは、少なくとも、暗号化されたデータの第1のセット上で実行される第1の機能を含む、ことと、第1のオペレーションを実行する要求に応答して、暗号化されたデータの第1のセットと、第1の機能を実行するための命令とを受信することと、暗号化されたデータの第1のセットを復号して、第1の復号されたデータを生成することと、第1の復号されたデータ上で第1の機能を実行して、第1の処理されたデータを生成することと、第1の処理されたデータを暗号化して、第1の処理された暗号化されたデータを生成することと、第1の処理された暗号化されたデータをクラウドサービスへ送信することとを含む。ある実施形態においては、データレコードの第1のセットを処理するための命令は、データレコードの第1のセットを処理するためのコンピュータコードを含む。ある実施形態においては、第1の機能は、クライアントデバイス上のトラステッドコンピューティング環境において実行される。ある実施形態においては、この方法は、リモート認証をクラウドサービスに提供することをさらに含む。ある実施形態においては、コンピュータコードは暗号化されており、この方法は、コンピュータコードを実行のために復号することをさらに含む。ある実施形態においては、コンピュータコードの復号は、トラステッドコンピューティング環境において実行される。ある実施形態においては、この方法は、クライアントデバイスによって実行される。ある実施形態においては、データレコードの第1のセットと、第1の機能を実行するための命令との受信は、リモートプロシージャーコールを使用して実行される。ある実施形態においては、コンピュータコードは実行可能なコンピュータコードを含む。
【0072】
一実施形態においては、方法が、第1の画像ファイルを含む複数の画像ファイルを格納することと、第1の画像ファイルを処理する要求をクライアントデバイスから受信することと、第1の画像ファイルが暗号化されているかどうかを判定することと、第1の画像ファイルが暗号化されている場合には、第1の画像ファイルと、第1の画像ファイルを処理するための命令とをクライアントデバイスへ送信することと、第1の画像ファイルの処理の暗号化された結果を表す第1の暗号化された処理された画像ファイルをクライアントデバイスから受信することと、第1の画像ファイルが暗号化されていない場合には、第1の画像ファイルを処理して、第1の処理された画像ファイルを生成することとを含む。
【0073】
一実施形態においては、方法が、第1の画像ファイルを含む複数の画像ファイルを格納することと、第1の画像ファイルを処理する要求をクライアントデバイスから受信することと、第1の画像ファイルが暗号化されているかどうかを判定することと、第1の画像ファイルが暗号化されているという判定に応答して、第1の画像ファイルと、第1の画像ファイルを処理するための命令とをクライアントデバイスへ送信することと、第1の画像ファイルの処理の暗号化された結果を表す第1の暗号化された処理された画像ファイルをクライアントデバイスから受信することとを含む。
【0074】
一実施形態においては、方法が、暗号化された画像ファイルの第1のセットと、暗号化されていない画像ファイルの第2のセットとを含む複数の画像ファイルを格納することと、複数の画像ファイルを処理する要求をクライアントデバイスから受信することと、複数の画像ファイルのうちのどれが第1のセット内にあるか、および複数の画像ファイルのうちのどれが第2のセット内にあるかを判定することと、画像ファイルの第1のセットと、画像ファイルの第1のセットを処理するための命令とをクライアントデバイスへ送信することと、画像ファイルの第2のセットを処理することと、画像ファイルの第1のセットの処理の暗号化された結果を表す暗号化された処理された画像ファイルの第3のセットをクライアントデバイスから受信することとを含む。
図1
図2
図3
図4