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

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

▶ アクシス アーベーの特許一覧

特許7454020処理アプリケーションを使用して、データのセキュアな処理を可能にするための方法及びシステム
<>
  • 特許-処理アプリケーションを使用して、データのセキュアな処理を可能にするための方法及びシステム 図1
  • 特許-処理アプリケーションを使用して、データのセキュアな処理を可能にするための方法及びシステム 図2
  • 特許-処理アプリケーションを使用して、データのセキュアな処理を可能にするための方法及びシステム 図3
  • 特許-処理アプリケーションを使用して、データのセキュアな処理を可能にするための方法及びシステム 図4
  • 特許-処理アプリケーションを使用して、データのセキュアな処理を可能にするための方法及びシステム 図5
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-03-12
(45)【発行日】2024-03-21
(54)【発明の名称】処理アプリケーションを使用して、データのセキュアな処理を可能にするための方法及びシステム
(51)【国際特許分類】
   H04L 9/10 20060101AFI20240313BHJP
   H04L 9/08 20060101ALI20240313BHJP
   G06F 21/71 20130101ALI20240313BHJP
   G06F 21/53 20130101ALI20240313BHJP
【FI】
H04L9/10 A
H04L9/08 C
G06F21/71
G06F21/53
【請求項の数】 15
【外国語出願】
(21)【出願番号】P 2022138264
(22)【出願日】2022-08-31
(65)【公開番号】P2023038172
(43)【公開日】2023-03-16
【審査請求日】2023-12-18
(31)【優先権主張番号】21194959
(32)【優先日】2021-09-06
(33)【優先権主張国・地域又は機関】EP
【早期審査対象出願】
(73)【特許権者】
【識別番号】502208205
【氏名又は名称】アクシス アーベー
(74)【代理人】
【識別番号】110002077
【氏名又は名称】園田・小林弁理士法人
(72)【発明者】
【氏名】フーゴソン, フレードリク
【審査官】宮司 卓佳
(56)【参考文献】
【文献】特開2012-14403(JP,A)
【文献】国際公開第2019/012956(WO,A1)
【文献】特開2020-184326(JP,A)
【文献】特開2010-140470(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
H04L 9/10
H04L 9/08
G06F 21/71
G06F 21/53
(57)【特許請求の範囲】
【請求項1】
データのセキュアな処理を、前記データを処理するよう構成されている信用されていない処理アプリケーションを使用して可能にするためのコンピュータにより実施される方法(200)であって、信頼された実行環境において実行され且つ前記信用されていない処理アプリケーションとの間の入力及び出力のすべてを制御するセキュアアプリケーションフレームワーク内において、
第1のランダムキーを使用して暗号化された前記データを受信すること(S210)と、
前記第1のランダムキーをセキュアに受信すること(S215)と、
暗号化された前記データを前記第1のランダムキーを使用して復号して、これにより前記データを取得すること(S220)と、
前記データを前記信用されていない処理アプリケーションに入力すること(S225)と、
前記信用されていない処理アプリケーションを実行して入力された前記データを処理すること(S230)と、
出力データを前記信用されていない処理アプリケーションから受信すること(S235)と、
第2のランダムキーを生成すること(S240)と、
前記出力データを前記第2のランダムキーを使用して暗号化すること(S245)と、
前記第2のランダムキーをストレージデバイスのパブリックキーを使用して暗号化すること(S250)と、
暗号化された前記出力データ及び暗号化された前記第2のランダムキーを前記ストレージデバイスに送信すること(S255)と
を含み、前記ストレージデバイスが前記信頼された実行環境の外に位置する、方法。
【請求項2】
セキュアモジュールを含むデバイス内において、
前記ストレージデバイスに対するプライベート/パブリックキーのペアを生成することと、
前記ストレージデバイスの前記パブリックキーを使用して暗号化された前記第1のランダムキーを受信することと、
前記第1のランダムキーを前記ストレージデバイスの前記プライベートキーを使用して復号することと、
前記第1のランダムキーを前記セキュアアプリケーションフレームワークにセキュアに送信することと
をさらに含む、請求項1に記載の方法(200)。
【請求項3】
前記信頼された実行環境において実行される前記セキュアアプリケーションフレームワーク内において、
前記信用されていない処理アプリケーションに対するプライベート/パブリックキーのペアを生成することをさらに含み、
前記第1のランダムキーをセキュアに受信することは、
前記信用されていない処理アプリケーションの前記パブリックキーを使用して暗号化された前記第1のランダムキーを受信することと、
前記第1のランダムキーを前記信用されていない処理アプリケーションの前記プライベートキーを使用して復号することと
を含む、請求項1に記載の方法(200)。
【請求項4】
前記信頼された実行環境において実行される前記セキュアアプリケーションフレームワーク内において、
セキュアモジュールを含むデバイスに、前記信用されていない処理アプリケーションの前記パブリックキーを送信することと、
前記セキュアモジュールを含む前記デバイス内において、
前記信用されていない処理アプリケーションの前記パブリックキーを受信することと、
前記第1のランダムキーを前記信用されていない処理アプリケーションの前記パブリックキーを使用して暗号化することと、
前記セキュアアプリケーションフレームワークに、前記信用されていない処理アプリケーションの前記パブリックキーを使用して暗号化された前記第1のランダムキーを送信することと
をさらに含む、請求項3に記載の方法(200)。
【請求項5】
前記セキュアモジュールを含む前記デバイス内において、
前記ストレージデバイスに対するプライベート/パブリックキーのペアを生成することと、
前記ストレージデバイスの前記パブリックキーを使用して暗号化された前記第1のランダムキーを受信することと、
前記第1のランダムキーを前記ストレージデバイスの前記プライベートキーを使用して復号することと
をさらに含む、請求項4に記載の方法(200)。
【請求項6】
前記セキュアモジュールを含む前記デバイスと、前記信頼された実行環境において実行される前記セキュアアプリケーションフレームワークとの間の通信のためのセキュアチャネルを確立することをさらに含み、
前記セキュアモジュールを含む前記デバイス内において、前記第1のランダムキーを前記セキュアアプリケーションフレームワークにセキュアに送信することは、前記第1のランダムキーを前記信頼された実行環境において実行される前記セキュアアプリケーションフレームワークに前記セキュアチャネルを介して送信することを含む、
請求項2に記載の方法(200)。
【請求項7】
処理能力を有するシステムにより実行されると、請求項1から請求項6のいずれか一項に記載の方法を実施する命令が保存されている、非一時的コンピュータ可読記憶媒体。
【請求項8】
信頼された実行環境において実行され、信用されていない処理アプリケーションとの間の入力及び出力のすべてを制御し、且つ
第1のランダムキーを使用して暗号化されたデータを受信するよう構成されている暗号化されたデータ受信機能(430)と、
前記第1のランダムキーをセキュアに受信するよう構成されているセキュアキー受信機能(432)と、
前記暗号化されたデータを前記第1のランダムキーを使用して復号して、これにより前記データを取得するよう構成されているデータ復号機能(434)と、
前記データを前記信用されていない処理アプリケーションに入力するよう構成されている入力機能(436)と、
前記信用されていない処理アプリケーションを実行して入力された前記データを処理するよう構成されている実行機能(438)と、
出力データを前記信用されていない処理アプリケーションから受信するよう構成されている出力データ受信機能(440)と、
第2のランダムキーを生成するよう構成されている第2のランダムキー生成機能(442)と、
前記出力データを前記第2のランダムキーを使用して暗号化するよう構成されている出力データ暗号化機能(444)と、
前記第2のランダムキーをストレージデバイスのパブリックキーを使用して暗号化するよう構成されている第2のランダムキー暗号化機能(446)と、
暗号化された前記出力データ及び暗号化された前記第2のランダムキーを前記ストレージデバイスに送信するよう構成されている送信機能(448)と
を実行するよう構成され、前記ストレージデバイスが前記信頼された実行環境の外に位置する、セキュアアプリケーションフレームワーク(425)。
【請求項9】
前記信用されていない処理アプリケーションに対するプライベート/パブリックキーのペアを生成するよう構成されている処理アプリケーションキー生成機能(450)を実行するようさらに構成されており、
前記セキュアキー受信機能(432)は、
前記信用されていない処理アプリケーションの前記パブリックキーを使用して暗号化された前記第1のランダムキーを受信し、
前記第1のランダムキーを前記信用されていない処理アプリケーションの前記プライベートキーを使用して復号するようさらに構成されている、
請求項8に記載のセキュアアプリケーションフレームワーク。
【請求項10】
前記セキュアキー受信機能は、前記第1のランダムキーを、セキュアチャネルを介して受信するようさらに構成されている、請求項8に記載のセキュアアプリケーションフレームワーク。
【請求項11】
請求項8に記載の前記セキュアアプリケーションフレームワーク(425、525)と、
前記ストレージデバイスに対するプライベート/パブリックキーのペアを生成するよう構成されているストレージデバイスキー生成機能と、
前記ストレージデバイスの前記パブリックキーを使用して暗号化された前記第1のランダムキーを受信するよう構成されている暗号化されたキー受信機能と、
前記第1のランダムキーを前記ストレージデバイスの前記プライベートキーを使用して復号するよう構成されている第1のランダムキー復号機能と、
前記第1のランダムキーを前記セキュアアプリケーションフレームワークにセキュアに送信するよう構成されているセキュアキー送信機能と
を実行するよう構成されているセキュアモジュール(145、545)を含むデバイス(140、540)と
を含む、システム(500)。
【請求項12】
前記セキュアアプリケーションフレームワーク(435、535)は、
前記信用されていない処理アプリケーションに対するプライベート/パブリックキーのペアを生成するよう構成されている処理アプリケーションキー生成機能を実行するようさらに構成されており、
前記セキュアキー受信機能は、
前記信用されていない処理アプリケーションの前記パブリックキーを使用して暗号化された前記第1のランダムキーを受信し、
前記第1のランダムキーを前記信用されていない処理アプリケーションの前記プライベートキーを使用して復号するようさらに構成されている、
請求項11に記載のシステム(500)。
【請求項13】
前記セキュアアプリケーションフレームワーク(425、525)は、
前記セキュアモジュールを含む前記デバイスに、前記信用されていない処理アプリケーションの前記パブリックキーを送信するよう構成されている処理アプリケーションキー送信機能を実行するようさらに構成されており、
前記セキュアモジュールを含む前記デバイスは、
前記信用されていない処理アプリケーションの前記パブリックキーを受信するよう構成されている処理アプリケーションキー受信機能と、
前記第1のランダムキーを前記信用されていない処理アプリケーションの前記パブリックキーを使用して暗号化するよう構成されている第1のランダムキー暗号化機能と、
前記セキュアアプリケーションフレームワークに、前記信用されていない処理アプリケーションの前記パブリックキーを使用して暗号化された前記第1のランダムキーを送信するよう構成されている暗号化された第1のランダムキー送信機能とをさらに含む、
請求項12に記載のシステム(500)。
【請求項14】
前記セキュアモジュール(145、545)を含む前記デバイス(140、540)は、
前記ストレージデバイスに対するプライベート/パブリックキーのペアを生成するよう構成されているストレージデバイスキー生成機能と、
前記ストレージデバイスの前記パブリックキーを使用して暗号化された前記第1のランダムキーを受信するよう構成されている暗号化された第1のランダムキー受信機能と、
前記第1のランダムキーを前記ストレージデバイスの前記プライベートキーを使用して復号するよう構成されている第1のランダムキー復号機能と
を実行するようさらに構成されている、請求項13に記載のシステム(500)。
【請求項15】
前記セキュアモジュールを含む前記デバイスと、前記信頼された実行環境において実行される前記セキュアアプリケーションフレームワークとの間の通信のためのセキュアチャネルを確立するよう構成されているセキュアチャネル確立機能を実行するようさらに構成されており、
前記セキュアキー送信機能は、前記第1のランダムキーを前記セキュアアプリケーションフレームワークに前記セキュアチャネルを介して送信するよう構成されている、
請求項11に記載のシステム(500)。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、暗号化されたデータのセキュアな処理に関し、特に、信頼されていない処理アプリケーションを使用する際に、データのセキュアな処理を可能にすることに関する。そのようなセキュアな処理は、信頼された実行環境において実行されるセキュアアプリケーションフレームワークにより、信頼されていない処理アプリケーションを実行することにより可能とされる。
【背景技術】
【0002】
認証された者が、カメラにおいて撮影されて、暗号化された形態で保存されたビデオデータ又は他のイメージデータなどの、暗号化されたデータを処理することを欲する用途では、処理アプリケーションについてセキュリティを保証できない場合に、セキュリティの課題が持ち上がる。例えば、暗号化されたデータは、処理アプリケーションを実行させる前にまず復号する必要があるため、処理アプリケーションが、いずれの復号されたデータを認証されていない者にアクセス可能にしないことを保証できない。さらに、処理アプリケーションを適合させてセキュリティを保証することが難しかったり、それが煩わしかったり、又は、それが許されない場合がある。準同型暗号化を使用してのソリューションが提案されている。ここでは、処理アプリケーションが暗号化されたデータを復号することなく処理して、同じく暗号化された結果を提供できる。しかし、そのようなソリューションは計算負荷が高く、すべてのアルゴリズムに適用可能ではない。
【発明の概要】
【0003】
本発明の目的は、既知の方法及びシステムにおける課題を克服又は軽減する、データのセキュアな処理を、そのデータを処理するよう構成されている信頼されていない処理アプリケーションを使用して可能にするためのコンピュータにより実施される方法と、セキュアアプリケーションフレームワークと、システムと、を提供することである。
【0004】
第1の態様によると、データのセキュアな処理を、そのデータを処理するよう構成されている処理アプリケーションを使用して可能にするためのコンピュータにより実施される方法が提供される。この方法は、信頼された実行環境において実行されるセキュアアプリケーションフレームワーク内において行われ、第1のランダムキーを使用して暗号化されたデータを受信することと、第1のランダムキーをセキュアに受信することと、暗号化されたデータを第1のランダムキーを使用して復号して、これによりそのデータを取得することと、を含む。この方法は、データを処理アプリケーションに入力することと、処理アプリケーションを実行して入力されたデータを処理することと、出力データを処理アプリケーションから受信することと、をさらに含む。この方法は、第2のランダムキーを生成することと、出力データを第2のランダムキーを使用して暗号化することと、第2のランダムキーをストレージデバイスのパブリックキーを使用して暗号化することと、暗号化された出力データ及び暗号化された第2のランダムキーをストレージデバイスに送信することとをさらに含む。
【0005】
信頼された実行環境は、処理デバイスにおけるセキュアな環境である。信頼された実行環境は、標準的なオペレーティングシステムなどの信頼されていない実行環境に関連して、向上したセキュリティのレベルを提供する実行空間を提示する。信頼された実行環境において実行されたアプリケーションは隔離されており、そのコード及びアプリケーションのいずれのデータのプライバシが保証されるようになっている。
【0006】
セキュアアプリケーションフレームワークは、処理アプリケーションへの入力及びここからの出力のすべてを制御するよう構成されている。セキュアアプリケーションフレームワークを信頼された実行環境において実行させることにより、復号されたデータが信頼された実行環境の外に処理アプリケーションから漏れ得ないことを保証できる。
【0007】
第1のランダムキーをセキュアに受信するとは、第1のランダムキーのプライバシが保たれるように、つまり、第1のランダムキーが暗号化されていない形態で認証されていない者に漏れないように、第1のランダムキーが受信されることを意味する。これは、例えば、第1のランダムキーを暗号化された形態で、又は、セキュアチャネルを介して受信することを用いて達成されてよい。
【0008】
第2の態様によると、処理能力を有するシステムにより実行されると、第1の態様に係る方法を実施する命令が保存されている、非一時的コンピュータ可読記憶媒体が提供される。
【0009】
第3の態様によると、信頼された実行環境において実行されるよう構成されているセキュアアプリケーションフレームワークが提供される。セキュアアプリケーションフレームワークは、第1のランダムキーを使用して暗号化されたデータを受信するよう構成されている暗号化されたデータ受信機能と、第1のランダムキーをセキュアに受信するよう構成されているセキュアキー受信機能と、暗号化されたデータを第1のランダムキーを使用して復号して、これによりそのデータを取得するよう構成されているデータ復号機能と、を実行するよう構成されている。セキュアアプリケーションフレームワークは、そのデータを処理アプリケーションに入力するよう構成されている入力機能と、処理アプリケーションを実行して入力されたデータを処理するよう構成されている実行機能と、出力データを処理アプリケーションから受信するよう構成されている出力データ受信機能と、を実行するようさらに構成されている。セキュアアプリケーションフレームワークは、第2のランダムキーを生成するよう構成されている第2のランダムキー生成機能と、その出力データを第2のランダムキーを使用して暗号化するよう構成されている出力データ暗号化機能と、第2のランダムキーをストレージデバイスのパブリックキーを使用して暗号化するよう構成されている第2のランダムキー暗号化機能と、暗号化された出力データ及び暗号化された第2のランダムキーをストレージデバイスに送信するよう構成されている暗号化された出力データ送信機能とを実行するようさらに構成されている。
【0010】
第4の態様によると、第2の態様に係るセキュアアプリケーションフレームワークと、セキュアモジュールを含むデバイスと、を含むシステムが提供される。セキュアモジュールは、ストレージデバイスに対するプライベート/パブリックキーのペアを生成するよう構成されているストレージデバイスキー生成機能と、ストレージデバイスのパブリックキーを使用して暗号化された第1のランダムキーを受信するよう構成されている暗号化されたキー受信機能と、第1のランダムキーをストレージデバイスのプライベートキーを使用して復号するよう構成されている第1のランダムキー復号機能と、第1のランダムキーをセキュアアプリケーションフレームワークにセキュアに送信するよう構成されているセキュアキー送信機能とを実行するよう構成されている。
【0011】
本発明の適用性のさらなる範囲が、以下の詳細説明より明らかとなるであろう。しかし、本発明の好適な実施形態を示す一方で、詳細説明及び具体例は、説明のみの目的に提供されていることが理解されるべきである。なぜなら、本発明の範囲内での種々の変更及び改修が、本詳細説明から当業者に明らかとなるからである。
【0012】
したがって、本発明は、記載するシステムの特定の構成部品、又は、記載する方法の特定の作動に限定されず、そのようなデバイス及び方法は異なる場合があることが理解されよう。ここに使用する用語は、特定の実施形態を説明することのみを目的としており、限定を意図していないこともまた理解されよう。なお、本明細書及び添付の特許請求の範囲に使用されるように、冠詞「a」、「an」、「the」、及び「said」は、他の例が文脈により明確に決定づけられない限り、要素が1つ又はそれ以上あることを意味するよう意図していることに注意されたい。したがって、例えば、「1つのユニット(a unit)」又は「当該ユニット(the unit)」という引用は、いくつかのデバイスなどを含む場合がある。さらに、「含む(comprising)」、「含む(including)」、「含む(containing)」などという語は、他の要素又はステップを排除しない。
【0013】
以下、添付の図面を参照して、本発明の上記態様及び他の態様をより詳細に説明する。これらの図面は、限定するものとみなすべきではなく、その代わりに、説明及び理解のために使用される。類似の参照記号は、これらの図面を通して、同様の要素を示す。
【図面の簡単な説明】
【0014】
図1】本開示の実施形態が実装されてよい例示的なシステムの模式的なブロック図である。
図2】データのセキュアな処理を、そのデータを処理するよう構成されている処理アプリケーションを使用して可能にするための方法の実施形態のフローチャートである。
図3】データのセキュアな処理を、そのデータを処理するよう構成されている処理アプリケーションを使用して可能にするための方法の実施形態の信号図である。
図4】信頼された実行環境において実行されるよう構成されているセキュアアプリケーションフレームワークの実施形態の模式的なブロック図である。
図5】データのセキュアな処理を、そのデータを処理するよう構成されている処理アプリケーションを使用して可能にするためのシステムの実施形態の模式的なブロック図である。
【発明を実施するための形態】
【0015】
本発明を、添付図面を参照して以下にさらに詳細に説明する。ここでは、本発明の現在の好適な実施形態を示す。本発明は、しかし、多くの異なる形態にて具現化されてよく、ここに示す実施形態に限定されるものと理解されるべきではない。むしろ、これらの実施形態は、徹底性及び完全性のために、そして、本発明の範囲を当業者に伝えるために提供される。
【0016】
図1は、本開示の実施形態が実装されてよい例示的なシステムの模式的なブロック図である。ビデオデータ又は他のイメージデータの形態でのデータが、カメラ100において撮影されて、ランダムキーを用いて暗号化される。暗号化されたデータは続いて、カメラ100から、そのカメラ100又は異なる場所にあってよいストレージデバイス110に送信されて、ここに保存される。そのデータがランダムキーを用いて暗号化されると、ストレージデバイス110を操作する者が、カメラ100を所有する者とは異なっても、そのデータはストレージデバイス110にセキュアに保存されてよい。さらに、カメラ100は、セキュアモジュール145を含む第2のデバイス140に接続されており、ここで、ストレージデバイス110に対するプライベート/パブリックキーのペアが生成されて、ストレージデバイス110に対するプライベート/パブリックキーのペアのパブリックキーが、第2のデバイス140からカメラ100に提供される。カメラ100は続いて、ランダムキーを、ストレージデバイス110に対するパブリックキーを用いて、キーエンベロープへと包み込んで(暗号化して)よい。キーエンベロープ(ストレージデバイス110に対するパブリックキーを用いて暗号化されたランダムキー)は続いて、ストレージデバイス110に送信されて、ここに保存される。ランダムキーは続いて、一般的に、カメラ100において廃棄される。そのデータを処理するよう構成されている、例えば、そのデータを分析する又は適合させるよう構成されている処理アプリケーション126が使用されて、その処理アプリケーション126に対して、そのデータのプライバシを保証できないのであれば、セキュアアプリケーションフレームワーク125、及び、それに関連する方法及びシステムの実施形態が、図2から図5に関連して以下に説明するように提供される。セキュアアプリケーションフレームワーク125は、第1のデバイス120にあってよい信頼された実行環境122において実行されるよう構成されている。セキュアアプリケーションフレームワーク125は一般的に、ソフトウェアにて実装されて、信頼された実行環境122において実行される。セキュアアプリケーションフレームワーク125は、同じく信頼された実行環境122において実行される処理アプリケーション126の実行に責任を負う。セキュアアプリケーションフレームワーク125は、ソフトウェアにより、信頼された実行環境122の外で実行されるアプリケーションフレームワーク128においてロードされて始められる。
【0017】
ストレージデバイス110と、第1のデバイス120と、第2のデバイス140と、は、別個のデバイスである必要はないことに留意されたい。例えば、セキュアアプリケーションフレームワーク125は、ストレージデバイス110の標準プロセッサ(図示せず)のセキュアエリアとして構成された信頼された実行環境122において実行されてよく、第2のデバイス140は、ストレージデバイス110のプロセッサに接続されたストレージデバイス110における別個のチップであってよい。
【0018】
データのセキュアな処理を、そのデータを処理するよう構成されている処理アプリケーション126を使用して可能にするためのコンピュータにより実施される方法200の実施形態を、図2に関連して説明する。この方法の実施形態は、例えば、図1に関連して説明したようなシステムにおいて実装されてよい。
【0019】
方法200の実施形態によると、以下のステップが、オープンポータブルTEE(OP-TEE)などの信頼された実行環境122において実行されるセキュアアプリケーションフレームワーク125内において行われる。まず、第1のランダムキーを使用して暗号化されたデータが受信されるS210。第1のランダムキーが続いてセキュアに受信されてS215、その暗号化されたデータが第1のランダムキーを使用して復号されるS220。これにより、そのデータが復号された形態で取得されて、処理アプリケーション126に入力されるS225。処理アプリケーション126が続いて実行されて、入力されたデータが処理されるS230。この処理は、そのデータの分析又はそのデータを適合させることなど、いずれのタイプの処理であってよい。データは、例えば、ビデオデータであってよい。分析はしたがって、人々の動きの、その動きのヒートマップを作成するための分析に関してよく、適合させることは、例えば、ピクセル化による顔のマスキングであってよい。
【0020】
処理アプリケーション126は、セキュアアプリケーションフレームワーク125により実行される。処理アプリケーション126は信頼された実行環境122において実行されるため、限られた数の機能のみが処理アプリケーション126に対して許可されており、それらはセキュアアプリケーションフレームワーク125により実行される。セキュアアプリケーションフレームワーク125は信頼された実行環境122において実行されるため、セキュアアプリケーションフレームワーク125により制御されるそれら以外のデータを、処理アプリケーション126から、信頼された実行環境122の外に提供できないことも保証できる。
【0021】
処理アプリケーション126が入力されたデータを処理すると、出力データが処理アプリケーション126から受信されるS235。出力データは一般的に、この処理の結果を含む。第2のランダムキーが続いて生成されてS240、その出力データが第2のランダムキーを使用して暗号化されるS245。第2のランダムキーが続いて、ストレージデバイス110のパブリックキーを使用して暗号化されるS250。これを形成する別の方法は、第2のランダムキーを、ストレージデバイス110のパブリックキーを用いて、キーエンベロープへと包み込むことである。最後に、暗号化された出力データ及び暗号化された第2のランダムキーがストレージデバイス110に送信されて保存されるS255。
【0022】
図2において行われるステップの順序は、必ずしもこのフローチャートに示す順序ではないことに留意されたい。具体的には、以前のステップからの入力に依存するよう示されていないステップは、それらの以前のステップの前に行われてよい。同様に、出力を以降のステップに提供するよう示されていないステップは、その以降のステップの後に行われてよい。
【0023】
セキュアアプリケーションフレームワーク125内において、リクエストが、別のデバイス、例えば、ストレージデバイス110に対するプライベート/パブリックキーのペアが生成されるデバイス、例えば、セキュアモジュール145を含むデバイス140に対して行われて、ストレージデバイス110のパブリックキーを提供することが求められてよい。ストレージデバイス110のパブリックキーが続いて、セキュアアプリケーションフレームワーク125において受信される。
【0024】
セキュアモジュール145を含むデバイス140は、ストレージデバイス110内部の機能又はチップなどの、関連するアプリケーションにより要求されるセキュリティのレベルでの機密データの取り扱いを可能にするモジュールを含むいずれのデバイスであってよい。セキュアモジュール145は、プライベート/パブリックキーのペアをセキュアに管理して、パブリックキー又は他の機密データが認証されていない者に漏れることを防ぐことができるようなモジュールである。具体的には、セキュアモジュール145は、プライベート/パブリックキーのペアを生成して、生成されたプライベート/パブリックキーのペアのパブリックキーを用いて暗号化されたランダムキーなどのデータを復号して、その復号されたデータを別のデバイスにセキュアに送信することができるモジュールである。データをセキュアに送信するとは、データのプライバシが保たれるように、つまり、データが暗号化されていない形態で認証されていない者に漏れないように、そのデータが送信されることを意味する。
【0025】
セキュアモジュール145は、例えば、信頼されたプラットフォームモジュール(TPM)又はセキュアエレメント(SE)であってよい。セキュアモジュール145は、ハードウェア若しくはソフトウェア、又は、それら双方の組み合わせにて実現されてよい。
【0026】
セキュアモジュール145を含むデバイス140内において、ストレージデバイス110に対するプライベート/パブリックキーのペアが生成されてよい。さらに、ストレージデバイス110のパブリックキーを使用して暗号化された第1のランダムキーが、例えば、ストレージデバイス110から受信されて、セキュアモジュール145を含むデバイス140において、ストレージデバイス110のプライベートキーを使用して復号されてよい。第1のランダムキーが続いて、セキュアアプリケーションフレームワーク125にセキュアに送信されてよい。
【0027】
第1のランダムキーをセキュアアプリケーションフレームワーク125にセキュアに送信することは、例えば、第1のランダムキーを暗号化された形態で、又は、セキュアチャネル(図示せず)を介して送信することを用いて達成されてよい。
【0028】
第1のランダムキーを暗号化された形態で送信する際には、処理アプリケーション126に対するプライベート/パブリックキーのペアがまず、信頼された実行環境122において実行されるセキュアアプリケーションフレームワーク125において生成される。処理アプリケーション126のパブリックキーが続いて、セキュアモジュール145を含むデバイス140に送信される。セキュアモジュール145を含むデバイス140において、第1のランダムキーが処理アプリケーション126のパブリックキーを使用して暗号化されて、処理アプリケーション126のパブリックキーを使用して暗号化された第1のランダムキーがセキュアアプリケーションフレームワーク125に送信される。セキュアアプリケーションフレームワーク125において、第1のランダムキーが続いて、処理アプリケーション126のプライベートキーを使用して復号される。
【0029】
第1のランダムキーを、セキュアチャネルを介して送信する際には、セキュアモジュール145を含むデバイス140と、信頼された実行環境122において実行されるセキュアアプリケーションフレームワーク125との間の通信のためのセキュアチャネルが確立されてよい。第1のランダムキーが続いて、信頼された実行環境122において実行されるセキュアアプリケーションフレームワーク125にそのセキュアチャネルを介してそれを送信することにより、セキュアに送信される。セキュアチャネルは、そのチャネルに対するプライベート/パブリックキーのペアを生成する信頼された実行環境122により実装されてよい。セキュアモジュール145を含むデバイス140が続いて、データを、そのチャネルに対するプライベート/パブリックキーのペアのパブリックキーを用いて暗号化してよい。代替的に、セキュアモジュール145を含むデバイス140は、そのチャネルに対するプライベート/パブリックキーのペアのパブリックキーを使用して、セキュアモジュール145を含むデバイス140により生成された対称キーを暗号化して、暗号化された対称キーを信頼された実行環境122に送信してよい。セキュアチャネルを使用して送信されるデータが続いて、その対称キーを使用して暗号化されてよい。
【0030】
データのセキュアな処理を、そのデータを処理するよう構成されている処理アプリケーション126を使用して可能にするためのコンピュータにより実施される方法の実施形態を、この方法に関連して異なるエンティティ間の信号伝達を示す図3に関連して説明する。関連するエンティティとは、ストレージデバイス110と、セキュアモジュール145と、アプリケーションフレームワーク128と、信頼された実行環境122と、セキュアアプリケーションフレームワーク125と、処理アプリケーション126と、である。
【0031】
この方法の実施形態は、例えば、図1に関連して説明したようなシステムにおいて実装されてよい。そのような場合では、カメラ100が、ビデオデータ又は他のイメージデータの形態でのデータを撮影して、それを、カメラ100において生成された第1のランダムキーを用いて暗号化する。ストレージデバイス110に対するプライベート/パブリックキーのペアが、デバイスにおいて、例えば、セキュアモジュール145を含むデバイス140において生成されて、ストレージデバイス110に対するパブリックキーがカメラ100に提供される。カメラ100が続いて、第1のランダムキーを、ストレージデバイス110に対するパブリックキーを使用して暗号化して、続いて、好ましくは、第1のランダムキーを廃棄して、それをカメラ100において利用不可能にする。暗号化されたデータ及び暗号化された第1のランダムキーが続いて、ストレージデバイス110に送信されてそこに保存される。復号された形態でのデータにアクセスする唯一の方法は、これに続いて、第1のランダムキーを復号して、続いて、暗号化されたデータを第1のランダムキーを使用して復号することとなる。そのようにするために、セキュアモジュール145に保持されているストレージデバイス110のプライベートキーへのアクセスが必要となる。
【0032】
データが、そのデータのプライバシを保証できない処理アプリケーション126により処理される際に、リクエストがアプリケーションフレームワーク128に送信されて、処理アプリケーション126を使用してのデータのそのような処理を開始することが求められる301。このリクエストは処理アプリケーション126を含んでよい、又は、処理アプリケーション126が、処理アプリケーション126のプロバイダのデバイスなどの別のデバイスからダウンロードされる、又は、これがすでにダウンロードされている。アプリケーションフレームワーク128は一般的に、セキュアアプリケーションフレームワーク125及び信頼された実行環境122と同じデバイスにおいて構成される。アプリケーションフレームワーク128が続いて、セキュアアプリケーションフレームワーク125に対する、処理アプリケーション126を選択されたデータに実行させる命令を準備して302、一方で、その選択されたデータに対するランダムキーの復号と、その結果に対するランダムキーの暗号化と、のために必要とされる暗号化キーを使用するよう、セキュアアプリケーションフレームワーク125も構成する。これは、処理アプリケーション126のみが、データを受信してこれを提供して、セキュアアプリケーションフレームワーク125により始められた命令に基づいて実行されてよいよう、処理アプリケーション126及びセキュアアプリケーションフレームワーク125が構成されることを意味する。
【0033】
ここで、そのデータにアクセスするために、ストレージデバイス110上のそのデータを暗号化するために使用された第1のランダムキーが必要とされ、第1のランダムキーにアクセスするために、ストレージデバイス110のプライベートキーが必要とされる。なぜなら、第1のランダムキーは、ストレージデバイス110のプライベートキーを使用して暗号化されて保存されているからである。しかし、ストレージデバイス110のプライベートキーをセキュアアプリケーションフレームワーク125にセキュアに提供する代わりに、そのデータへのアクセスが、セキュアモジュール145の外のストレージデバイス110のプライベートキーを提供する必要なく提供されるような代替案が使用される。これは好適である。なぜなら、ストレージデバイス110のプライベートキーを使用して、セキュアアプリケーションフレームワーク125がアクセスを認証されていない場合がある他のデータが暗号化されてよいからである。第1のランダムキーをセキュアモジュール145からセキュアアプリケーションフレームワーク125に提供する第1の方法は、セキュアチャネルを用いることである。第2の方法は、異なるプライベート/パブリックキーのペア、例えば、処理アプリケーション126に関連するものを使用して暗号化された第1のランダムキーを送信することである。これらの方法は双方とも、先に説明されている。以下において、第2の方法に係るソリューションが使用される。
【0034】
セキュアアプリケーションフレームワーク125は、処理アプリケーション126に対するプライベート/パブリックキーのペアを生成する303よう構成されている。このキーのペアは、処理アプリケーション126に対して唯一のものであってよい、又は、それは、多くの処理アプリケーションに対して同じであってよい。セキュアアプリケーションフレームワーク125は、信頼された実行環境122において実行されるよう構成されているため、処理アプリケーション126のプライベートキーが信頼された実行環境122の外に漏れないことを保証できる。処理アプリケーション126に対するパブリックキーが続いて、セキュアアプリケーションフレームワーク125からセキュアモジュール145に送信される304。セキュアモジュールは、第1のランダムキーを、処理アプリケーション126に対するパブリックキーを使用して再度包み込む305。これは、セキュアモジュール145がまず、暗号化された第1のランダムキーを、ストレージデバイス110に対するプライベートキーを使用して復号して、続いて、第1のランダムキーを、処理アプリケーション126に対するパブリックキーを使用して暗号化することを意味する。
【0035】
これで、処理アプリケーション126を実行して、アプリケーションフレームワークが、信頼された実行環境122に、処理アプリケーション126を、ストレージデバイス110において暗号化されて保存されたデータを参照して実行させるべきであることを示す306ようにできる。信頼された実行環境122が続いて、セキュアアプリケーションフレームワーク125を始めて、処理アプリケーション126の実行を開始する307。セキュアアプリケーションフレームワーク125は、第1のランダムキーを用いて暗号化されたデータをストレージデバイス110から受信して308、再度包み込まれた第1のランダムキーをセキュアモジュール145から受信する309。受信した第1のランダムキーは、処理アプリケーション126に対するパブリックキーを使用して再度包み込まれているため、セキュアアプリケーションフレームワーク125は、第1のランダムキーを、処理アプリケーション126に対するプライベートキーを使用して復号できる310。第1のランダムキーを使用して、セキュアアプリケーションフレームワーク125は続いて、データを、セキュアアプリケーションフレームワーク125において生成されて保持されている第1のランダムキーを使用して復号できる311。復号されたデータが続いて、処理アプリケーション126に提供されて312、処理アプリケーション126が続いて、信頼された実行環境122において実行されるセキュアアプリケーションフレームワーク125において実行される。処理アプリケーション126がそのデータを処理すると、セキュアアプリケーションフレームワーク125におけるその処理の結果を含む出力データが、処理アプリケーション126から受信される313。
【0036】
そのデータだけでなく、その処理の結果(出力データ)もまた、プライバシ(アクセス)が制御されるべきである機密データであってよいため、その出力データもまた、信頼された実行環境122の外に送信される前に暗号化されるべきである。具体的には、暗号化は、ストレージデバイス110上のオリジナルデータへのアクセスを有する者のみが、その結果(出力データ)へのアクセスを有すべきであるようなものであってよい。このために、第2のランダムキーが、セキュアアプリケーションフレームワーク125において生成される314。さらに、ストレージデバイス110に対するパブリックキーが、セキュアアプリケーションフレームワーク125において、セキュアモジュール145から受信されて315、第2のランダムキーが、ストレージデバイス110のパブリックキーを使用して暗号化される(キーファイルへと包み込まれる)316。暗号化された第2のランダムキー(キーファイル)が続いて、ストレージデバイス110に送信される317。最後に、その出力データが第2のランダムキーを使用して暗号化されて318、ストレージデバイス110に送信される319。その出力データは第2のランダムキーを使用して暗号化されており、第2のランダムキーはストレージデバイス110に対するパブリックキーを使用して暗号化されているため、ストレージデバイス110上のオリジナルデータへのアクセスを有する者、つまり、ストレージデバイス110に対するプライベートキーへのアクセスを有する者のみが、その出力データへのアクセスを有する。
【0037】
図1に関連して説明したような信頼された実行環境などの信頼された実行環境において実行されるよう構成されている、図1に関連して説明したようなセキュアアプリケーションフレームワーク125などのセキュアアプリケーションフレームワーク425の実施形態を、図4に関連して説明する。セキュアアプリケーションフレームワーク425の実施形態は、例えば、図1に関連して説明したようなシステムにおいて実装されてよい。
【0038】
実施形態によると、セキュアアプリケーションフレームワーク425は、信頼された実行環境122において実行されて、第1のランダムキーを使用して暗号化されたデータを受信するよう構成されている暗号化されたデータ受信機能430と、第1のランダムキーをセキュアに受信するよう構成されているセキュアキー受信機能432と、暗号化されたデータを第1のランダムキーを使用して復号して、これによりそのデータを復号された形態で取得するよう構成されているデータ復号機能434、を実行するよう構成されている。セキュアアプリケーションフレームワーク425は、そのデータを処理アプリケーション126に入力するよう構成されている入力機能436と、処理アプリケーション126を実行して入力されたデータを処理するよう構成されている実行機能438と、出力データを処理アプリケーション126から受信するよう構成されている出力データ受信機能440と、を実行するようさらに構成されている。セキュアアプリケーションフレームワーク425は、第2のランダムキーを生成するよう構成されている第2のランダムキー生成機能442と、その出力データを第2のランダムキーを使用して暗号化するよう構成されている出力データ暗号化機能444と、第2のランダムキーをストレージデバイス110のパブリックキーを使用して暗号化するよう構成されている第2のランダムキー暗号化機能446と、暗号化された出力データ及び暗号化された第2のランダムキーをストレージデバイス110に送信するよう構成されている送信機能448とを実行するようさらに構成されている。
【0039】
第1のランダムキーをセキュアキー受信機能432においてセキュアに受信するために、セキュアキー受信機能は、例えば、第1のランダムキーを暗号化された形態で、又は、セキュアチャネルを介して受信するよう構成されていてよい。
【0040】
第1のランダムキーが暗号化された形態で受信される構成では、セキュアアプリケーションフレームワーク425は、処理アプリケーション126に対するプライベート/パブリックキーのペアを生成するよう構成されている処理アプリケーションキー生成機能440を実行するようさらに構成されている。セキュアキー受信機能432は、処理アプリケーション126のパブリックキーを使用して暗号化された第1のランダムキーを受信して、第1のランダムキーを、処理アプリケーション126のプライベートキーを使用して復号するようさらに構成されている。
【0041】
第1のランダムキーがセキュアチャネルを介して受信される構成では、セキュアキー受信機能432は、第1のランダムキーを、そのセキュアチャネルを介して受信するようさらに構成されている。そのようなセキュアチャネルは、セキュアモジュール145を含むデバイス140と、信頼された実行環境122において実行されるセキュアアプリケーションフレームワーク125、425との間の通信のために確立されてよい。第1のランダムキーが続いて、信頼された実行環境122において実行されるセキュアアプリケーションフレームワーク425にそのセキュアチャネルを介してそれを送信することにより、セキュアに送信される。セキュアチャネルは、信頼された実行環境122において、そのチャネルに対するプライベート/パブリックキーのペアを生成することにより実装されてよく、続いて、セキュアモジュール145を含むデバイス140が続いて、データを、そのチャネルに対するプライベート/パブリックキーのペアのパブリックキーを用いて暗号化してよい。したがって、第1のランダムキーなどのデータが、セキュアアプリケーションフレームワーク425においてセキュアに受信されると、それらは、そのチャネルに対するプライベート/パブリックキーのペアのパブリックキーを使用して暗号化される。代替的に、セキュアモジュール145を含むデバイス140は、そのチャネルに対するプライベート/パブリックキーのペアのパブリックキーを使用して、セキュアモジュール145を含むデバイス140により生成された対称キーを暗号化して、暗号化された対称キーを信頼された実行環境122に送信してよい。セキュアチャネルを使用してセキュアに受信される第1のランダムキーなどのデータが続いて、対称キーを使用して暗号化される。
【0042】
第1のランダムキーは、関連するアプリケーションにより要求されるセキュリティのレベルでの機密データの取り扱いを可能にするモジュールを含むいずれのデバイスであってよいセキュアモジュール145を含むデバイス140からセキュアに受信されてよい。データをセキュアに受信するとは、データのプライバシが保たれるように、つまり、データが暗号化されていない形態で認証されていない者に漏れないように、そのデータが受信されることを意味する。セキュアモジュール145は、例えば、信頼されたプラットフォームモジュール(TPM)又はセキュアエレメント(SE)であってよい。セキュアモジュールは、ハードウェア若しくはソフトウェア、又は、それら双方の組み合わせにて実現されてよい。
【0043】
セキュアアプリケーションフレームワーク425は、セキュアモジュール145を含むデバイス140に、ストレージデバイス110のパブリックキーを提供することをリクエストするよう構成されているリクエスト機能442と、ストレージデバイス110のパブリックキーをセキュアモジュール145を含むデバイス140から受信するよう構成されているストレージデバイスパブリックキー受信機能444とを実行するようさらに構成されていてよい。
【0044】
セキュアアプリケーションフレームワーク425の機能はさらに適合されてよく、さらなる機能が、図2及び図3に関連して説明した方法200の対応するステップにしたがって追加されてよい。
【0045】
データのセキュアな処理を、そのデータを処理するよう構成されている処理アプリケーション126を使用して可能にするシステム500の実施形態を、図5に関連して説明する。システム500の実施形態は、例えば、図1に関連して説明したようなシステムにおいて実装されてよい。
【0046】
システム500は、図4に関連して説明したようなセキュアアプリケーションフレームワーク425、又は、図1に関連して説明したようなセキュアアプリケーションフレームワーク125などの、信頼された実行環境122において実行されるよう構成されているセキュアアプリケーションフレームワーク525を含む。セキュアアプリケーションフレームワーク525は、信頼された実行環境122において実行されるプロセッサ(図示せず)を含む第1のデバイス520において構成されてよい。
【0047】
このシステムは、ストレージデバイス110に対するプライベート/パブリックキーのペアを生成するよう構成されているストレージデバイスキー生成機能550と、ストレージデバイス110のパブリックキーを使用して暗号化された第1のランダムキーを受信するよう構成されている暗号化されたキー受信機能552とを実行するよう構成されているセキュアモジュール545を含む第2のデバイス540をさらに含む。セキュアモジュール545は、第1のランダムキーをストレージデバイス110のプライベートキーを使用して復号するよう構成されている第1のランダムキー復号機能554と、第1のランダムキーをセキュアアプリケーションフレームワーク525にセキュアに送信するよう構成されているセキュアキー送信機能556とを実行するようさらに構成されている。
【0048】
セキュアモジュール545を含むデバイス540は、関連するアプリケーションにより要求されるセキュリティのレベルでの機密データの取り扱いを可能にするモジュールを含むいずれのデバイスであってよい。セキュアモジュール545は、プライベート/パブリックキーのペアをセキュアに管理して、パブリックキー又は他の機密データが認証されていない者に漏れることを防ぐことができるようなモジュールである。
【0049】
セキュアモジュール545は、例えば、信頼されたプラットフォームモジュール(TPM)又はセキュアエレメント(SE)であってよい。セキュアモジュールは、ハードウェア若しくはソフトウェア、又は、それら双方の組み合わせにて実現されてよい。
【0050】
システム500のセキュアアプリケーションフレームワーク525の機能はさらに適合されてよく、さらなる機能が、図2及び図3に関連して説明した方法200の対応するステップ、及び、図4に関連して説明したセキュアアプリケーションフレームワーク425の対応する機能にしたがって追加されてよい。システム500のセキュアモジュール545の機能はさらに適合されてよく、さらなる機能が、図2及び図3に関連して説明した方法200の対応するステップにしたがって追加されてよい。
【0051】
本発明は、上記の実施形態に限定されないことを当業者は理解する。それどころか、特許請求の範囲内での多くの変形及びバリエーションが可能である。そのような改変及びバリエーションが、特許権を主張する本発明の実施において、本図面、本開示、及び添付の本特許請求の範囲の検討により、当業者により理解され、達成され得る。
図1
図2
図3
図4
図5