(57)【要約】  セキュアアセットマネージャを使用して、推移データ問題を軽減するための技法を提供する。本技法は、データタグを用いて、アプリケーションのためのソースコードにタグ付けして、ソースコードに関連付けられたデータ要素が機密データ要素であることを示すこと、機密データ要素に関連付けられた推移ルールを備える、ポリシーファイルにアクセスすること、および、ソースコードからアプリケーションのための1つまたは複数のオブジェクトファイルを生成することによって、セキュアアセットマネージャ準拠アプリケーションを生成することを含む。
2018523208.tif 000002
【特許請求の範囲】
【請求項１】
機密データを保護するための方法であって、
セキュアアセットマネージャによって管理されたセキュアメモリ領域内に、機密データ要素を記憶するステップと、
そこから前記機密データ要素が発生するアプリケーションによって前記機密データ要素に関連付けられたポリシーに従って、前記機密データ要素を管理するステップであって、前記ポリシーが、前記機密データ要素に関連付けられた推移ルールを定義する、ステップと
を含む方法。
【請求項２】
前記推移ルールが、前記機密データ要素がどの他のアプリケーションと共有され得るかを定義するルールを備える、請求項1に記載の方法。
【請求項３】
前記機密データ要素を管理するステップが、そこから前記機密データ要素が発生する前記アプリケーションからの前記ポリシーを、前記機密データ要素から導出されたデータ要素に適用するステップをさらに含む、請求項1に記載の方法。
【請求項４】
前記機密データ要素を管理するステップが、前記機密データ要素およびそこから導出されたあらゆるデータ要素において実行される各アクションを監査するステップをさらに含む、請求項1に記載の方法。
【請求項５】
前記機密データ要素およびそこから導出されたあらゆるデータ要素において実行される各アクションを監査するステップが、前記セキュアアセットマネージャによって管理された前記セキュアメモリ領域内に、監査情報を記憶するステップを含む、請求項4に記載の方法。
【請求項６】
前記機密データ要素を管理するステップが、前記機密データ要素において動作を実行するための1つまたは複数の機能を提供するステップをさらに含む、請求項1に記載の方法。
【請求項７】
前記機密データ要素を管理するステップが、前記セキュアメモリ領域内に、前記1つまたは複数の機能によって生成された中間データ値を記憶するステップをさらに含む、請求項6に記載の方法。
【請求項８】
装置であって、
メモリと、
前記メモリに通信可能に結合されたプロセッサと
を備え、前記プロセッサが、
セキュアアセットマネージャによって管理された前記メモリのセキュアメモリ領域内に、機密データ要素を記憶すること、および
そこから前記機密データ要素が発生するアプリケーションによって前記機密データ要素に関連付けられたポリシーに従って、前記機密データ要素を管理することであって、前記ポリシーが、前記機密データ要素に関連付けられた推移ルールを定義する、こと
を行うように構成される、装置。
【請求項９】
前記推移ルールが、前記機密データ要素がどの他のアプリケーションと共有され得るかを定義するルールを備える、請求項8に記載の装置。
【請求項１０】
前記機密データ要素を管理するように構成された前記プロセッサが、そこから前記機密データ要素が発生する前記アプリケーションからの前記ポリシーを、前記機密データ要素から導出されたデータ要素に適用するようにさらに構成される、請求項8に記載の装置。
【請求項１１】
前記機密データ要素を管理するように構成された前記プロセッサが、前記機密データ要素およびそこから導出されたあらゆるデータ要素において実行される各アクションを監査するようにさらに構成される、請求項8に記載の装置。
【請求項１２】
前記機密データ要素およびそこから導出されたあらゆるデータ要素において実行される各アクションを監査するように構成された前記プロセッサが、前記セキュアアセットマネージャによって管理された前記セキュアメモリ領域内に、監査情報を記憶するようにさらに構成される、請求項11に記載の装置。
【請求項１３】
前記機密データ要素を管理するように構成された前記プロセッサが、前記機密データ要素において動作を実行するための1つまたは複数の機能を提供するようにさらに構成される、請求項8に記載の装置。
【請求項１４】
前記機密データ要素を管理するように構成された前記プロセッサが、前記セキュアメモリ領域内に、前記1つまたは複数の機能によって生成された中間データ値を記憶するようにさらに構成される、請求項13に記載の装置。
【請求項１５】
セキュアアセットマネージャ準拠アプリケーションを生成するための方法であって、
データタグを用いて、前記アプリケーションのためのソースコードにタグ付けして、前記ソースコードに関連付けられたデータ要素が機密データ要素であることを示すステップと、
前記機密データ要素に関連付けられた推移ルールを備える、ポリシーファイルにアクセスするステップと、
前記ソースコードから前記アプリケーションのための1つまたは複数のオブジェクトファイルを生成するステップと
を含む方法。
【請求項１６】
前記1つまたは複数のオブジェクトファイルが信頼できるプロバイダによって生成されたことを示すセキュリティ証明書を用いて、前記1つまたは複数のオブジェクトファイルに署名するステップをさらに含む、請求項15に記載の方法。
【請求項１７】
前記データタグが、前記アプリケーションのランタイムに、前記機密データ要素およびそこから導出されたあらゆるデータ要素に、セキュアアセットマネージャによってどのポリシーが適用されなければならないかを識別する、一意識別子を備える、請求項15に記載の方法。
【請求項１８】
前記アプリケーションのための前記1つまたは複数のオブジェクトファイルを生成するステップが、前記データタグを認識するように、および、前記機密データ要素のインスタンスを管理するための機密データオブジェクトタイプを生成するように構成される、セキュアアセットマネージャ準拠コンパイラを用いて、前記ソースコードをコンパイルするステップを含む、請求項15に記載の方法。
【請求項１９】
セキュアアセットマネージャを実装するターゲットデバイスのための実行可能ファイルを作成するために、前記1つまたは複数のオブジェクトファイルを、少なくとも1つの他のオブジェクトファイルまたはライブラリとリンクさせるステップをさらに含む、請求項15に記載の方法。
【請求項２０】
前記機密データ要素に関連付けられた前記推移ルールが、前記機密データ要素にアクセスし、前記機密データ要素において1つまたは複数の動作を実行することを許可される、信頼できるアプリケーションのセットを識別する、請求項15に記載の方法。
【請求項２１】
前記機密データ要素に関連付けられた前記推移ルールが、どのアプリケーションが前記機密データ要素からデータを導出し得るかを識別する、請求項20に記載の方法。
【請求項２２】
装置であって、
メモリと、
前記メモリに通信可能に結合されたプロセッサと
を備え、前記プロセッサが、
データタグを用いて、前記メモリ内に記憶されたアプリケーションのために記憶されたソースコードにタグ付けして、前記ソースコードに関連付けられたデータ要素が機密データ要素であることを示すこと、
前記機密データ要素に関連付けられた推移ルールを備える、ポリシーファイルにアクセスすること、および
前記メモリ内の前記ソースコードから前記アプリケーションのための1つまたは複数のオブジェクトファイルを生成すること
を行うように構成される、装置。
【請求項２３】
前記プロセッサが、前記1つまたは複数のオブジェクトファイルが信頼できるプロバイダによって生成されたことを示すセキュリティ証明書を用いて、前記1つまたは複数のオブジェクトファイルに署名するように構成される、請求項22に記載の装置。
【請求項２４】
前記データタグが、前記アプリケーションのランタイムに、前記データタグに関連付けられた前記機密データ要素に、セキュアアセットマネージャによってどのポリシーが適用されなければならないかを識別する、一意識別子を備える、請求項22に記載の装置。
【請求項２５】
前記アプリケーションのための前記1つまたは複数のオブジェクトファイルを生成するように構成された前記プロセッサが、前記データタグを認識するように、および、前記機密データ要素のインスタンスを管理するための機密データオブジェクトタイプを生成するように構成される、セキュアアセットマネージャ準拠コンパイラを用いて、前記ソースコードをコンパイルするようにさらに構成される、請求項22に記載の装置。
【請求項２６】
前記プロセッサが、セキュアアセットマネージャを実装するターゲットデバイスのための実行可能ファイルを作成するために、前記1つまたは複数のオブジェクトファイルを、少なくとも1つの他のオブジェクトファイルまたはライブラリとリンクさせるようにさらに構成される、請求項22に記載の装置。
【請求項２７】
前記機密データ要素に関連付けられた前記推移ルールが、前記機密データ要素にアクセスし、前記機密データ要素において1つまたは複数の動作を実行することを許可される、信頼できるアプリケーションのセットを識別する、請求項22に記載の装置。
【請求項２８】
前記機密データ要素に関連付けられた前記推移ルールが、どのアプリケーションが前記機密データ要素からデータを導出し得るかを識別する、請求項27に記載の装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、オブジェクト指向コンテキストにおける推移問題を軽減するためのデータ監視のための技法に関する。
【背景技術】
【０００２】
機密データにアクセスし、処理するためのアプリケーションの使用は、アプリケーション開発者および所有者/そのような機密データの管理者が、これらのアプリケーションがこの機密データをあるアプリケーションから別のアプリケーションに漏洩していないことを保証するための課題を提示する。この問題は、推移データ問題(Transitive Data Problem)と呼ばれている。
【０００３】
従来のコンピューティングデバイスでは、アプリケーションAが機密データDをアプリケーションBと共有するとき、データDは、アプリケーションBによってアプリケーションCまたは他のアプリケーションに漏洩されることがある。データはまた、1つまたは複数の他のアプリケーションに漏洩される前に修正されることもある。そのような相互作用および推移性の問題は、Java(登録商標)EEおよび.NET、およびAndroidオペレーティングシステムにおいて開発された拡張可能エコシステムなどのサービス指向アーキテクチャ(SOA)、ならびに、望ましくない、および予測不可能な方法で、データがアプリケーション間で流布され得る他のそのような環境において存在し得る。これらの問題が生じ得る状況の例には、以下が含まれ、すなわち、(1)従業員が自分のパーソナルモバイルデバイス(電話、タブレット、ラップトップなど)を使用して、機密企業情報にアクセスすることができる、個人所有デバイスの持ち込み(BYOD)の考えを利用する組織、(2)機密金融データがあるアプリケーションから別のアプリケーションに渡され得る、金融サービス、(3)連邦法および/または州法(たとえば、HIPAA)の下で保護され得る機密の健康関係データが、あるアプリケーションから別のアプリケーションに渡され得る、健康監視サービスである。信頼‐重要イベントの信頼性が高い監査(Reliable Auditing of Trust-critical Events)は、新たに発生した要求である。
【発明の概要】
【課題を解決するための手段】
【０００４】
本開示による機密データを保護するための方法の実装形態は、セキュアアセットマネージャによって管理されたセキュアメモリ領域内に、機密データ要素を記憶するステップと、そこから機密データ要素が発生するアプリケーションによって機密データ要素に関連付けられたポリシーに従って、機密データ要素を管理するステップであって、ポリシーが、機密データ要素に関連付けられた推移ルールを定義する、ステップとを含む。
【０００５】
そのような方法の実装形態は、以下の特徴のうちの1つまたは複数を含み得る。推移ルールは、機密データ要素がどの他のアプリケーションと共有され得るかを定義するルールを備える。機密データ要素を管理するステップは、そこから機密データ要素が発生するアプリケーションからのポリシーを、機密データ要素から導出されたデータ要素に適用するステップをさらに含む。機密データ要素を管理するステップは、機密データ要素およびそこから導出されたあらゆるデータ要素において実行される各アクションを監査するステップを含む。機密データ要素およびそこから導出されたあらゆるデータ要素において実行される各アクションを監査するステップは、セキュアアセットマネージャによって管理されたセキュアメモリ領域内に、監査情報(Audit Information)を記憶するステップを含む。機密データ要素を管理するステップは、機密データ要素において動作を実行するための1つまたは複数の機能を提供するステップを含む。機密データ要素を管理するステップは、セキュアメモリ領域内に、1つまたは複数の機能によって生成された中間データ値を記憶するステップを含む。
【０００６】
本開示による装置の例示的な実装形態は、メモリとプロセッサとを含む。プロセッサは、セキュアアセットマネージャによって管理されたメモリのセキュアメモリ領域内に、機密データ要素を記憶すること、および、そこから機密データ要素が発生するアプリケーションによって機密データ要素に関連付けられたポリシーに従って、機密データ要素を管理することであって、ポリシーが、機密データ要素に関連付けられた推移ルールを定義する、ことを行うように構成される。
【０００７】
そのような装置の実装形態は、以下の特徴のうちの1つまたは複数を含み得る。推移ルールは、機密データ要素がどの他のアプリケーションと共有され得るかを定義するルールを備える。機密データ要素を管理するように構成されたプロセッサは、そこから機密データ要素が発生するアプリケーションからのポリシーを、機密データ要素から導出されたデータ要素に適用するようにさらに構成される。機密データ要素を管理するように構成されたプロセッサは、機密データ要素およびそこから導出されたあらゆるデータ要素において実行される各アクションを監査するようにさらに構成される。機密データ要素およびそこから導出されたあらゆるデータ要素において実行される各アクションを監査するように構成されたプロセッサは、セキュアアセットマネージャによって管理されたセキュアメモリ領域内に、監査情報を記憶するようにさらに構成される。機密データ要素を管理するように構成されたプロセッサは、機密データ要素において動作を実行するための1つまたは複数の機能を提供するようにさらに構成される。機密データ要素を管理するように構成されたプロセッサは、セキュアメモリ領域内に、1つまたは複数の機能によって生成された中間データ値を記憶するようにさらに構成される。
【０００８】
本開示によるセキュアアセットマネージャ準拠アプリケーションを生成するための方法は、データタグを用いて、アプリケーションのためのソースコードにタグ付けして、ソースコードに関連付けられたデータ要素が機密データ要素であることを示すステップと、機密データ要素に関連付けられた推移ルールを備える、ポリシーファイルにアクセスするステップと、ソースコードからアプリケーションのための1つまたは複数のオブジェクトファイルを生成するステップとを含む。
【０００９】
そのような方法の実装形態は、以下の特徴のうちの1つまたは複数を含み得る。オブジェクトファイルが信頼できるプロバイダによって生成されたことを示すセキュリティ証明書を用いて、1つまたは複数のオブジェクトファイルに署名するステップ。データタグは、アプリケーションのランタイムに、機密データ要素およびそこから導出されたあらゆるデータ要素にも、セキュアアセットマネージャによってどのポリシーが適用されなければならないかを識別する、一意識別子を備える。アプリケーションのための1つまたは複数のオブジェクトファイルを生成するステップは、データタグを認識するように、および、機密データ要素のインスタンスを管理するための機密データオブジェクトタイプを生成するように構成される、セキュアアセットマネージャ準拠コンパイラを用いて、ソースコードをコンパイルするステップを含む。セキュアアセットマネージャを実装するターゲットデバイスのための実行可能ファイルを作成するために、オブジェクトファイルを、少なくとも1つの他のオブジェクトファイルまたはライブラリとリンクさせるステップ。機密データ要素に関連付けられた推移ルールは、機密データ要素にアクセスし、機密データ要素において1つまたは複数の動作を実行することを許可される、信頼できるアプリケーションのセットを識別する。機密データ要素に関連付けられた推移ルールは、どのアプリケーションが機密データ要素からデータを導出し得るかを識別する。
【００１０】
本開示による例示的な装置は、メモリとプロセッサとを含む。プロセッサは、データタグを用いて、メモリ内に記憶されたアプリケーションのために記憶されたソースコードにタグ付けして、ソースコードに関連付けられたデータ要素が機密データ要素であることを示すこと、機密データ要素に関連付けられた推移ルールを備える、ポリシーファイルにアクセスすること、および、メモリ内のソースコードからアプリケーションのための1つまたは複数のオブジェクトファイルを生成することを行うように構成される。
【００１１】
そのような装置の実装形態は、以下の特徴のうちの1つまたは複数を含み得る。プロセッサは、オブジェクトファイルが信頼できるプロバイダによって生成されたことを示すセキュリティ証明書を用いて、1つまたは複数のオブジェクトファイルに署名するように構成される。データタグは、アプリケーションのランタイムに、データタグに関連付けられた機密データ要素に、セキュアアセットマネージャによってどのポリシーが適用されなければならないかを識別する、一意識別子を備える。アプリケーションのための1つまたは複数のオブジェクトファイルを生成するように構成されたプロセッサは、データタグを認識するように、および、機密データ要素のインスタンスを管理するための機密データオブジェクトタイプを生成するように構成される、セキュアアセットマネージャ準拠コンパイラを用いて、ソースコードをコンパイルするようにさらに構成される。プロセッサは、セキュアアセットマネージャを実装するターゲットデバイスのための実行可能ファイルを作成するために、オブジェクトファイルを、少なくとも1つの他のオブジェクトファイルまたはライブラリとリンクさせるようにさらに構成される。機密データ要素に関連付けられた推移ルールは、機密データ要素にアクセスし、機密データ要素において1つまたは複数の動作を実行することを許可される、信頼できるアプリケーションのセットを識別する。機密データ要素に関連付けられた推移ルールは、どのアプリケーションが機密データ要素からデータを導出し得るかを識別する。
【図面の簡単な説明】
【００１２】
【図１】本明細書で説明する技法を実装するために好適であり得る、例示的なネットワークアーキテクチャまたはコンピューティング環境のブロック図である。
【図２】図1に示す構築システムを実装するために使用され得るコンピューティングデバイスのブロック図である。
【図３】図1〜図2に示す構築システムの機能モジュールを示す、図1〜図2に示す構築システムの機能ブロック図である。
【図４】図1に示すターゲットデバイスを実装するために使用され得るコンピューティングデバイスのブロック図である。
【図５】図1および図4に示すターゲットデバイスの機能モジュールを示す、図1および図4に示すターゲットデバイスの機能ブロック図である。
【図６】本明細書で説明する技法による、機密データをロックダウンするための例示的なプロセスの論理ブロック図である。
【図７】本明細書で説明する技法による、機密データをロックオンするための例示的なプロセスの論理ブロック図である。
【図８】本明細書で説明する技法による、セキュアアセットマネージャを実装するアプリケーションを構築するための例示的なプロセスの流れ図である。
【図９】本明細書で開示する技法による、機密データを保護するための例示的なプロセスの流れ図である。
【図１０】本明細書で説明する技法による、機密データ要素へのアクセスを制御するための例示的なプロセスの流れ図である。
【図１１】本明細書で説明する技法による、既存の機密データ要素から新しい機密データ要素を導出するための例示的なプロセスの流れ図である。
【発明を実施するための形態】
【００１３】
推移データ問題(Transitive Data Problem)を軽減するための技法を、本明細書で開示する。マルチアプリケーション環境は、データがあるアプリケーションから別のアプリケーションに漏洩され得る推移性問題を呈することがある。本明細書で開示する技法は、どのように機密データがアプリケーションによって利用かつ/または共有され得るかを示すルールを含む、ポリシーの使用を通して、機密データへのアクセスを制御することによって、機密データの特定のインスタンスに関連付けられた元のポリシールールを、その機密データのインスタンスから導出されたいかなるデータにも適用することによって、データへの無許可アクセスを防止するために、メモリのセキュアエリア内のデータをロックダウンすることによって、および、機密データ要素の各インスタンスと、そこから導出されたデータの各インスタンスとを追跡する、各機密データ要素のための監査履歴(Audit History)を生成して、機密データ要素の配置のための完全履歴(Full History)を提供することによって、この問題を解決する。
【００１４】
本明細書で開示する技法は、共有されたインターフェースを介してアプリケーション間で共有かつアクセスされる機密データオブジェクトの履歴を追跡するために使用され得る。セキュアアセットマネージャ(SAM)を使用して、マルチアプリケーション環境において、機密データがあるアプリケーションから別のアプリケーションに漏洩されることを防止するための技法を開示する。本明細書で説明する技法は、機密データにタグ付けして、機密データの流布のためのルールを定義するポリシーによって許可される場合を除いて、アプリケーション間の機密データの無許可の共有を防止するために使用され得る。本明細書で開示する技法はまた、機密データから導出されたデータの無許可の共有を防止するためにも使用され得る。元の機密データ要素に関連付けられたポリシーは、機密データ要素から導出されたいかなるデータにも関連付けられ、導出されたデータが、元の機密データ要素に関連付けられたポリシールールに従って扱われるようにされ得る。本明細書で開示する技法はまた、コンピューティングデバイス上のアプリケーションによってアクセス、共有、かつ/または修正されている機密データ要素のインスタンスを追跡するために、デバイス上で信頼-重要イベントの監査ログを生成することを含み得る。本明細書で開示する技法は、限定はしないが、デジタル著作権管理(DRM)、トラステッド実行環境、および/または、複数のアプリケーションが実装され得、アプリケーション間の機密データの共有が望まれる、他の動作環境を含む、多種多様なコンテキストに適用され得る。
【００１５】
本明細書で開示する技法は、2つの論理段階に分割され得る。第1の段階は、本明細書で「情報のロックダウン」フェーズと呼ばれ、第2の段階は、本明細書で「情報のロックオン」段階と呼ばれる。情報のロックダウンフェーズを示す一例を図6に示し、情報のロックオンフェーズを示す一例を図7に示す。
【００１６】
図6は、情報のロックダウン段階を示す高レベル論理ブロック図を提供する。ロックダウンフェーズ中に、アプリケーションに関連付けられた機密データ要素は、機密データ要素およびそこから導出されたデータの流布がセキュアアセットマネージャによって管理される、SAM準拠アプリケーションを生成するために、ソースコード内でタグ付けされ得る。SAMの機能について、図7に関してより詳細に説明する。
【００１７】
アプリケーションのためのソースコード605は、そのための機密データのアクセスおよび共有の制御が望まれる、機密データ要素への1つまたは複数の参照を含み得る。アプリケーション開発者は、ソースコード内でタグ610を用いて、機密データ要素のインスタンスにタグ付けすることができる。タグ610は、タグ610に関連付けられたデータ要素に、機密データであるとしてマークし、機密データ要素内に記憶されたデータのアクセスおよび流布は、アプリケーションに関連付けられたポリシー620によって制御されることになる。タグ610は、どのポリシー情報が機密データ要素に関連付けられるかと、機密データ要素に関連付けられるポリシーからの特定の推移ルールとを、一意に識別するために使用され得る。SAMアウェアコンパイラ615が、機密データ要素に関連付けられたオブジェクトを生成するとき、この識別子がオブジェクトに関連付けられる。SAM705は、このタグに関連付けられたオブジェクトのインスタンスのすべてを追跡し続けるように、および、これらのオブジェクトが異なるアプリケーションと共有された場合でも、そのタグに関連付けられたポリシーをこれらのオブジェクトに適用するように構成される。タグ610は、ポリシー情報自体を搬送するのではなく、代わりに、特定の機密データ要素に適用されるポリシー情報へのポインタとして働く。機密データ要素から導出されるいかなるデータ要素も、タグ610によって搬送された情報を継承することになる。SAM705は、そこから新しいデータ要素が導出された元の機密データ要素に関連付けられた同じポリシー情報を利用して、これらのデータ要素を管理し続けることになる。
【００１８】
SAMアウェアコンパイラ615は、タグ610を含むソースコード605をコンパイルするために使用され得る。SAMアウェアコンパイラ615は、ソースコード中に含まれる機密データ要素を識別するタグを認識するように、ならびに、アプリケーションに関連付けられたポリシー情報に従って、SAMが機密データ要素のアクセスおよび流布を制御することを可能にするために、機密データ要素に関連付けられたオブジェクトコードを生成するように構成され得る。
【００１９】
SAMアウェアコンパイラ615は、機密データ要素に関連付けられたオブジェクトクラスを生成し、ランタイムにアプリケーションによって生成された機密データ要素のインスタンスがこのオブジェクトクラスのインスタンスであるか、またはそこから導出されたオブジェクトクラスであるようにするように構成され得る。SAMアウェアコンパイラ615は、アプリケーションのためのオブジェクトコードと、アプリケーションに関連付けられたポリシー情報620とを含む、オブジェクトファイルを出力するように構成され得る。ポリシー情報620は、1つまたは複数のファイルの形式であり得、あるいは、ポリシー情報を記憶するためのデータベースまたは他の記憶フォーマットにおいてエントリを含み得る。オブジェクトファイルは、展開635のために処理され得る。展開フェーズ中に、オブジェクトファイル中に含まれたオブジェクトコードは、それにおいてアプリケーションが展開されることになる特定のターゲットデバイス175のためにリンクかつ/またはさもなければ処理され得る。SAMアウェアコンパイラ615は、アプリケーション開発者、またはアプリケーションの配信を担当するコンテンツプロバイダに関連付けられた、秘密暗号鍵を使用して、オブジェクトファイルを暗号化し、かつ/またはそれに署名するように構成され得る。
【００２０】
図6に示す例は、ソースコード内に単一のタグ610を含むが、本明細書で開示する技法に従って構築されているアプリケーションは、ソースコード内で複数の機密データ要素を表す複数のタグを使用し得る。図6に示すプロセスに従って構築されたSAM準拠アプリケーションは、アプリケーションが図7に示すセキュアアセットマネージャ705と対話して、機密データ要素を記憶、アクセス、かつ/または修正することを可能にする、インターフェースを定義する、SAMアプリケーションプログラミングインターフェース(API)を実装することができる。
【００２１】
機密データ要素は、アプリケーション開発者がいかなる過失もなしに流布されるべきである情報であると見なす、任意の情報を備え得る。たとえば、機密情報は、金融データ、医療もしくはヘルスデータ、学歴、職歴、政府のデータ、および/またはその流布が制御されるべきである他の情報を備え得る。機密データ要素の流布は、アプリケーションに関連付けられたポリシー情報620によって制御され得る。特定のデータ要素のためのポリシー情報は、ソースコード605内の機密データ要素にタグ付けするために使用されたタグ610を識別するデータタグ情報を含み得る。データタグは、ソースコードからの各タグ付けされたデータ要素を一意に指す、一意識別子を含み得る。
【００２２】
データタグは、ソースコード内の機密データ要素を識別するために使用され得るオブジェクトタイプとして実装され得る。機密データ要素は、SAM準拠機密データオブジェクトクラスのプロパティを継承する、ソースコード内のオブジェクトとして定義され得る。ソースコードは、オブジェクト定義に「機密」識別子を追加することによってタグ付けされ得、SAMアウェアコンパイラ615は、本明細書で説明するSAM準拠技法を使用して動作するオブジェクトファイル625を生成するために、このタグを処理するように構成され得る。たとえば、プログラマーは、ソースコード内で社会保障番号オブジェクトに「機密」タグを追加して、社会保障番号オブジェクトが、その使用および流布がアプリケーションに関連付けられたポリシーによって制御されるべきである機密データ要素であることを示すことができる。SAMアウェアコンパイラ615は、SAM準拠機密データ要素オブジェクトタイプのプロパティを継承するように、社会保障番号オブジェクトタイプを修正するように構成され得る。機密データ要素オブジェクトタイプは、機密データ要素に関連付けられたポリシー情報を記憶するためのデータ要素を含み得、SAM705を用いて機密データ要素を記憶するための方法、SAM705の一時作業メモリ715内の機密データ要素において動作を実行するための方法、アプリケーションと機密データ要素とに関連付けられたポリシー情報にアクセスするための方法、機密データ要素の使用および流布を制御するためにポリシー情報を適用するための方法、ならびに/または本明細書で開示する技法の他の態様を実装することができる。
【００２３】
機密識別子はまた、特定のデータ要素のための一意識別子など、パラメータを含むようにも構成され得る。一意識別子は、特定のアプリケーション内の同じタイプの複数の機密データ要素間で区別するために使用され得、かつ/または、ポリシーファイル中に含まれる各機密データ要素に関連付けられたポリシー情報を識別するために使用され得る。異なるデータ要素は、ポリシーファイル内でそれらのために定義されたアプリケーション間のそれらの使用および流布のための異なるルールを有し得る。
【００２４】
図7は、情報のロックオン段階を示す高レベル論理ブロック図を提供する。ロックオン段階中に、セキュアアセットマネージャ705に準拠する、図6に示す技法を使用して構築されたアプリケーションは、ターゲットデバイス175上で実行され得る。セキュアアセットマネージャ705に準拠するアプリケーションは、アプリケーションに関連付けられたポリシーに従って、アプリケーションが、SAM705によって管理されている機密データにアクセスし、それを利用することを可能にする、インターフェースを備え得る。機密データは、セキュアアセットマネージャ705によって利用される保護メモリエリア内に記憶され得、そのデータを作成したアプリケーションに関連付けられたポリシーによって、そのデータにアクセスすることを許可されたアプリケーションのみにとって、アクセス可能である。機密データ要素を最初に生成したアプリケーションに関連付けられたポリシーはまた、SAM705によって、その機密データ要素から導出されたいかなるデータ要素にも適用される。さらに、このポリシーは、機密データ要素のライフサイクル全体にわたって機密データ要素に後続し、他のアプリケーションと共有されたデータ要素のコピーに、ならびに元の機密データ要素またはそのコピーから導出された情報に適用される。したがって、機密データ要素を最初に生成したアプリケーションに関連付けられたポリシーはまた、SAM705によって、他のSAM準拠アプリケーションと共有された機密データ要素のコピーに適用されて、機密情報の無許可の流布が防止される。
【００２５】
セキュアアセットマネージャ705は、図6に示すプロセスを使用して構築されたSAM準拠アプリケーションとともに含まれたソフトウェアとして実装され得るか、または、ターゲットデバイス175上でソフトウェア、ファームウェア、またはその組合せとして実装され得る。セキュアアセットマネージャ705は、ターゲットデバイス175のセキュアメモリ空間内で実行するアプリケーションであり得る。たとえば、ターゲットデバイス175のプロセッサ410は、セキュア処理環境の外側で実行されているアプリケーションにとってアクセス不可能であるメモリの専用部分を含み得る、セキュア処理環境を実装するように構成され得る。他の実装形態では、セキュアアセットマネージャ705は、セキュア処理環境の一部ではないメモリの一部分において動作するように構成され得る。セキュアアセットマネージャ705は、他のプロセスによるデータへのアクセスを防止するように構成され得る。たとえば、セキュアアセットマネージャ705は、セキュアアセットマネージャ705に関連付けられた、一時作業メモリ715および永続作業メモリ720のデータコンテンツを暗号化するか、またはさもなければ不明瞭にするように構成され得る。ターゲットデバイス175のプロセッサ410が、SAM705によって管理されたセキュアメモリ空間から保護データが漏洩されないことを保証するために、SAM705に関連付けられたデータを処理している間に、SAM705は、ターゲットデバイス175のプロセッサ410に関連付けられたレジスタのすべてをロックダウンするように構成され得る。SAM705は、SAM準拠アプリケーションが、SAM705によって管理されたセキュアメモリ空間内で機密データ要素を作成し、記憶することを可能にする、インターフェースを提供するように構成され得る。インターフェースはまた、SAM準拠アプリケーションが、SAM705によって管理されたセキュアメモリ空間内の機密データ要素にアクセスし、それを修正し、またはそこから新しいセキュアデータ要素を導出することを可能にすることもできる。SAM705は、そこから特定の機密データ要素が発生したアプリケーションを追跡するように構成され得る。SAM705は、SAM705によって維持されている機密データ要素から導出されるデータのためのソース情報を追
跡するように構成され得る。SAM705は、どのアプリケーションが特定のデータ要素からの派生情報にアクセスし、それを修正し、またはそれを作成することができるかを決定するために、機密データのソースであるアプリケーションに関連付けられたポリシー情報を適用するように構成され得る。
【００２６】
SAM705は、SAM準拠アプリケーションが、SAM準拠アプリケーションによって生成された機密データ要素を表すオブジェクトのインスタンスを、SAM705による記憶および管理のためにSAM705に与えることを可能にする、インターフェースを提供することができる。代替的に、またはこのインターフェースに加えて、SAM705は、SAM準拠アプリケーションが、SAM705による記憶および管理のために、SAM705が機密データ要素を表すオブジェクトの新しいインスタンスを作成することを要求することを可能にする、インターフェースを提供することができる。SAM準拠アプリケーションは、オブジェクトを生成するために必要とされる情報を、SAM705に提供するように構成され得る。
【００２７】
一時作業メモリ715は、永続作業メモリ720内に記憶された機密データ要素において実行されている動作のために、SAM705によって使用され得る。SAM705は、動作が機密データ要素上で完了された後、一時作業メモリ715のコンテンツをクリアするように構成され得る。永続作業メモリ720は、動作の一部として現在使用されていない1つまたは複数のアプリケーションによって投入された機密データ要素、機密データ要素に関連付けられたポリシー情報、および、機密データ要素上で動作が実行されるときに生成された一時データ要素ではない他の永続的情報など、情報を記憶するために使用され得る。いくつかの実装形態では、一時作業メモリ715および永続作業メモリ720は、単一のメモリ空間内で実装され得、SAM705は、一時データ項目および永続データ項目のメモリ割振りおよびクリーンアップを管理するように構成され得る。SAM705は、ターゲットデバイス175上のSAM準拠アプリケーションのシャットダウンに応答して、および/または、機密データが現在必要とされていないという、SAM準拠アプリケーションからの命令に応答して、永続作業メモリ720から、ポリシー情報および/または機密データ要素などの永続データをクリーンアップするように構成され得る。SAM準拠アプリケーションは、SAM705によって維持されている特定のデータのセットを、SAM準拠アプリケーションがもはや必要としないことを、SAM705にシグナリングするように構成され得、SAM705は、一時作業メモリ715および永続作業メモリ720内に記憶されたアプリケーションに関連付けられたいかなる機密データ要素をもクリーンアップするように構成され得る。さらに、SAM705は、データを最初に共有したアプリケーションがもはやデバイス上でアクティブに実行中ではなく、SAM705によって記憶された機密データ要素をもはや利用していない場合でも、他のアプリケーションと共有されたいかなる機密データ要素にも、アプリケーションに関連付けられたポリシーを適用し続けるように構成され得る。
【００２８】
SAM705はまた、永続作業メモリ720内にポリシー情報を記憶するようにも構成され得る。特定のアプリケーションに関連付けられたポリシー情報は、定期的に更新され得る。たとえば、特定のアプリケーションのためのポリシー情報は、アプリケーションが機密データ要素を共有し得る1つまたは複数の他のアプリケーションの識別子を追加または除去するために更新され得る。SAM705は、信頼できるエンティティに更新されたポリシー情報を要求するように、かつ/または、信頼できるエンティティによってターゲットデバイス175にプッシュされた、更新されたポリシー情報を受信するように構成され得る。
【００２９】
ロガーモジュール710は、機密データ要素において実行されるいかなる動作についても、監査ログ内でエントリを生成するように構成され得る。ロガーモジュール710は、永続作業メモリ720内に監査ログを記憶するように構成され得る。ロガーモジュール710は、どのアプリケーションが、SAM705によって維持された機密データの特定のインスタンスを要求するか、SAM705によって維持された機密データにおいて実行されたアクション、ならびに、機密データの使用および流布を追跡するために使用され得る他の情報をログするように構成され得る。ロガーモジュール710はまた、SAM705によって維持された機密データ要素から導出されたデータ要素の作成をログするようにも構成され得る。
【００３０】
例示的なネットワーク/コンピューティング環境
図1は、本明細書で説明する技法を実装するために好適であり得る、例示的なコンピューティング環境のブロック図である。本明細書に示す特定の構成は、本明細書で開示する技法が使用され得る1つのコンピューティング環境の単なる一例である。さらに、そのようなコンピューティング環境の実装形態は、本明細書に示されず、明快のために省略されている追加の要素を含み得る。
【００３１】
構築システム125は、1つまたは複数のターゲットデバイス175上で展開され得るセキュアアセットマネージャ(SAM)準拠アプリケーションを構築するための手段を提供するように構成され得る。構築システム125は、構築システム125によってソフトウェア、ハードウェア、またはそれらの組合せにおいて実装され得る、少なくとも図6および図8に示すプロセスを実装するための手段を提供するように構成され得る。構築システム125を実装するために使用され得るコンピューティングデバイスの例を、以下で詳細に説明する図2および図3に示す。図1に示す例示的なコンピューティング環境は、本明細書で開示する技法が実装され得るコンピューティング環境の1つの可能な構成を示し、限定するものではない。他の構成が可能である。たとえば、図6および図8に示す構築システム125および/またはプロセスは、2つ以上のコンピューティングデバイス上で実行され得、信頼できるエンティティ190は、いくつかの実装形態では含まれないことがあり、かつ/または、ネットワーク110は、構築システム125およびターゲットデバイス175にソフトウェアコンテンツを提供するために利用されないことがある。
【００３２】
本明細書で説明する例は、ターゲットデバイス175上で利用されることになる1つまたは複数のアプリケーションを生成するために、単一の構築システム125を利用するが、ターゲットデバイス175は、複数の構築システム125からSAM準拠アプリケーションを受信するように構成され得る。さらに、ターゲットデバイス175および構築システム125は、直接的に、またはワイヤード接続もしくはワイヤレス接続を介して間接的に互いに接続され得、構築システム125とターゲットデバイス175との間に、ネットワーク110など、1つまたは複数の介在システムまたはネットワークが存在し得る。たとえば、構築システム125によって生成されたアプリケーションは、構築システム125とターゲットデバイス175との間に論理的に配置され得る、信頼できるエンティティ190および/または別個のコンテンツサーバ(図示せず)からダウンロードするために利用可能にされ得る。たとえば、アプリケーション開発者は、ターゲットデバイス175と互換性がある1つまたは複数のSAM準拠アプリケーションを、信頼できるエンティティ190または別のコンテンツサーバからダウンロードするために利用可能にすることができ、ターゲットデバイス175の製造業者または配信者は、オペレーティングシステムに関連付けられた1つまたは複数のアプリケーションを、信頼できるエンティティ190または他のコンテンツサーバからターゲットデバイス175にダウンロードすることができる。
【００３３】
構築システム125は、ターゲットデバイス175の製造業者、ターゲットデバイス175のネットワークサービスプロバイダ、ターゲットデバイス175の再販売業者、ターゲットデバイス175上で使用され得るアプリケーションのアプリケーションコンテンツプロバイダ、オーディオビジュアルコンテンツプロバイダによって、および/またはターゲットデバイス175上で利用され得るオペレーティングシステムを提供するオペレーティングシステムプロバイダによって動作され得る。ターゲットデバイス175の製造業者または再販売業者は、ターゲットデバイス175によって使用され得、アプリケーションのために定義されたポリシーに基づいて、その共有が限定されるべきである機密データへのアクセスを有し得る、1つまたは複数のアプリケーションを含み得る。
【００３４】
ターゲットデバイス175は、ターゲットデバイス175の永続メモリ内に記憶されたソフトウェアコンテンツを実行するように構成されるコンピュータシステムである。ターゲットデバイス175は、1つの構築システム125から、および/または複数の構築システム125から、1つまたは複数のアプリケーションを受信するように構成され得る。ターゲットデバイス175は、モバイルフォン、タブレットコンピュータ、ラップトップコンピュータ、携帯ゲームデバイス、ウェアラブルコンピューティングデバイス、またはソフトウェアコンテンツを実行するためのプロセッサを含む他のそのようなデバイスなど、モバイルデバイスを含み得る。ターゲットデバイス175はまた、デスクトップコンピュータシステム、コンピュータサーバ、セットトップボックス、デジタルビデオレコーダ(DVR)、ゲームコンソール、またはモバイルデバイスのように容易に移動可能でない他のそのようなデバイスなど、非モバイルデバイスを含み得る。ターゲットシステム175は、ターゲットシステム175によってソフトウェア、ハードウェア、またはそれらの組合せにおいて実装され得る、少なくとも図7および図9に示すプロセスを実装するための手段を提供することができる。
【００３５】
信頼できるエンティティ190は、1つまたは複数のSAM準拠アプリケーションに関係するポリシー情報のためのリポジトリとして利用され得る、オプションのエンティティである。信頼できるエンティティ190は、構築システム125からアプリケーションのためのポリシー情報を受信するように構成され得る。信頼できるエンティティ190は、アプリケーション開発者が特定のアプリケーションのためのポリシー情報を修正することを可能にする、ユーザインターフェースを提供することができる。信頼できるエンティティ190は、ターゲットデバイス175からポリシー情報のための要求を受信するように、およびネットワーク110上でターゲットデバイスに情報を送るように構成され得る。信頼できるエンティティ190はまた、1つまたは複数のSAM準拠アプリケーションを利用するターゲットデバイス175に、更新されたポリシー情報をプッシュするようにも構成され得る。信頼できるエンティティ190はまた、ターゲットデバイス175上で使用され得るSAM準拠アプリケーションのダウンロードを提供するようにも構成され得る。たとえば、信頼できるエンティティ190は、そこからアプリケーションコンテンツがターゲットデバイス175のためにダウンロードされ得るアプリケーションストアまたはライブラリを実装する、コンテンツサーバとして動作するように構成され得る。
【００３６】
図1に示す例示的なネットワーク構成またはコンピューティング環境は、本明細書で開示する技法が実装され得る1つの可能な構成の単なる一例である。他の構成は、図1に示していない追加の要素を含み得、様々な構成要素が、図1に示すものとは異なる構成で相互接続され得る。
【００３７】
例示的なハードウェア
図2は、図1に示す構築システム125を実装するために使用され得るコンピューティングシステムのブロック図である。構築システム125は、少なくとも部分的に、図7に示すプロセスを実装するために使用され得る。
【００３８】
構築システム125は、バス201によって互いに接続された汎用プロセッサ210と、非一時的メモリ260と、ネットワークインターフェース265とを含む、コンピュータシステムを備える。構築システム125の他の実装形態は、図2の例示的な実装形態には示されていない追加の要素を含むことができ、かつ/または図2に示す例示的な実施形態に示された要素のすべてを含んでいるとは限らない場合がある。
【００３９】
プロセッサ210は、インテリジェントデバイス、たとえば、パーソナルコンピュータ中央処理ユニット(CPU)、マイクロコントローラ、特定用途向け集積回路(ASIC)などであり得る。メモリ260は、ランダムアクセスメモリ(RAM)、読取り専用メモリ(ROM)、またはそれらの組合せを含み得る、非一時的記憶デバイスである。メモリ260は、本明細書で説明する機能を実行するようにプロセッサ210を制御するための命令を含むプロセッサ可読、プロセッサ実行可能ソフトウェアコードを記憶することができる(ただし、説明ではソフトウェアが機能を実行すると述べる場合がある)。ソフトウェアは、ネットワーク接続を介してダウンロードされること、ディスクからアップロードされることなどによってメモリ260にロードされ得る。さらに、ソフトウェアは、直接的に実行可能ではなく、たとえば実行前にコンパイルを必要とする場合がある。
【００４０】
ネットワークインターフェース265は、ネットワーク110など、1つまたは複数のネットワークに対するワイヤード接続性および/またはワイヤレス接続性を提供するための手段を提供することができる。ネットワークインターフェース265は、構築システム125が、ターゲットデバイス175、信頼できるエンティティ190、ならびに/あるいは、アプリケーションコンテンツもしくはオペレーティングシステムコンテンツなどの実行可能プログラムコンテンツ、および/またはポリシー情報をターゲットデバイス175に配信するように構成されたコンテンツプロバイダまたは信頼できるエンティティ190など、ネットワークに接続された他のエンティティと通信することを可能にすることができる。
【００４１】
メモリ260内のソフトウェアは、プロセッサ210が、アプリケーションのためのポリシーを構成するためのユーザインターフェースを提供すること、アプリケーションためのソースコードにデータタグを追加するためのユーザインターフェースを提供すること、アプリケーションを構築すること、およびターゲットデバイス175に、またはコンテンツサーバにアプリケーションを展開することを含む、様々なアクションを実行することを可能にするように構成される。メモリ260内のソフトウェアはまた、1つまたは複数のSAM準拠アプリケーションのコピーを、信頼できるエンティティ190および/または別個のコンテンツサーバに提供するようにも構成され得、その場合、別個のコンテンツサーバは、アプリケーションをターゲットデバイス175に配信するために使用される。構築システム125のメモリ260内のソフトウェアの一部または全部によって実行される機能は、構築システム125のデジタルもしくはアナログハードウェア構成要素、ならびに/またはハードウェアおよびソフトウェアの組合せとして実装され得る。
【００４２】
図3は、図2に示すメモリ260の機能モジュールを示す、図2に示す構築システム125の機能ブロック図である。たとえば、構築システム125は、データタグ付けモジュール362と、アプリケーション構築モジュール364と、データアクセスモジュール366と、ポリシー構成モジュール368とを含み得る。構築システム125はまた、構築システム125に他の機能を提供する1つまたは複数の追加の機能モジュールを含み得る。図3に示す機能モジュールは、図3に示すように、プロセッサ210によって実行されるソフトウェアとして実装され得、または、プロセッサ210によって実行されるハードウェアまたはハードウェアとソフトウェアとの組合せにおいて実装され得る。図2および図3に示す構築システム125は、図7に示すプロセスに関連付けられた構築システム125を実装するために使用され得る。プロセッサ210はまた、本明細書で説明する構築システム125の様々なモジュールを実装するための手段を提供することもでき、ファームウェアで実装される1つまたは複数のモジュールと連携して動作し得る。構築システム125は、本明細書で説明するモジュールの一部または全部を実装するデジタルおよび/またはアナログ回路を含み得る。
【００４３】
データタグ付けモジュール362は、ソフトウェアコード内で機密データ要素にタグ付けするための手段を提供することができる。データタグ付けモジュール362は、構築システム125のユーザが機密データ要素であるソフトウェア内のデータ要素を識別することを可能にするために、アプリケーションのためのソフトウェアコードのためのユーザインターフェースを提示するため、および、アプリケーションのためのポリシーファイル中に含まれるべきその特定のデータ要素に関連付けられたポリシールールを生成するための手段を提供することができる。ポリシーファイルは、どのアプリケーションが機密データ要素にアクセスすることができるか、アプリケーションが他のアプリケーションと機密データを共有することができるか否か、および、どのアプリケーションとアプリケーションが機密データを共有し得るかを示すことができる。データタグ付けモジュール362は、複数のタイプのターゲットデバイスに対するイメージを作成するための手段を提供することができる。図6に関して上記で説明したように、データタグ付けモジュール362は、SAMアウェアコンパイラ615が機密データ要素を識別するために使用することができるソースコードに、識別子を追加するように構成され得る。
【００４４】
アプリケーション構築モジュール364は、データタグに各々が関連付けられた1つまたは複数の機密データ要素を含むアプリケーションを構築するための手段と、1つまたは複数のターゲットデバイス175にアプリケーションを提供するための手段と、ターゲットデバイス175に配信するために、信頼できるエンティティ190に、アプリケーションおよび/またはアプリケーションに関連付けられたポリシー情報をアップロードするための手段とを提供することができる。アプリケーション構築モジュール364は、データタグ付けモジュール362によってタグ付けされたソースコードをコンパイルするように構成され得、オブジェクトタイプを、ソースコード内でタグ付けされた機密データ要素に関連付けることができる。タグ付けされたソースコードから生成されたアプリケーションは、機密データ要素を記憶するため、およびSAM705が機密データオブジェクトを記憶することを要求するために使用され得る、機密データ要素オブジェクトのインスタンスを生成するように構成され得る。代替的に、アプリケーションは、SAM705が機密データ要素の新しいインスタンスを生成することを要求するように、および、永続作業メモリ720など、SAM705に関連付けられたメモリエリア内に機密データ要素を記憶するように構成され得る。いくつかの実装形態では、アプリケーション構築モジュール364は、ソースコード内でタグ付けされた各機密データ要素のための機密データ要素オブジェクトを生成するように構成され得、その場合、オブジェクトは、SAM705がSAM705によって管理された保護メモリ領域内に機密データ要素を記憶することを要求するための論理を含めるように構成される。そのような実装形態における機密データオブジェクトは、機密データ要素オブジェクト内に記憶されたデータが、ソフトウェアコードを書くプログラマーの手を離れてセキュアなままであることを保証するために、必要とされる論理の多くを組み込むことになり、機密データオブジェクトは、アプリケーションによって利用される他のいかなるオブジェクトとも同様に扱われ得る。
【００４５】
データアクセスモジュール366は、メモリ260および/または構築システム125に関連付けられた他のデータ記憶デバイス内にデータを記憶するように構成され得る。データアクセスモジュール366はまた、メモリ260および/または構築システム125に関連付けられた他のデータ記憶デバイス内のデータにアクセスするように構成され得る。データアクセスモジュール366は、構築システム125の他のモジュールおよび/または構成要素から要求を受信するように、ならびに、メモリ260および/または構築システム125に関連付けられた他のデータ記憶デバイス内に記憶されているデータを記憶し、かつ/またはそのデータにアクセスするように構成され得る。
【００４６】
ポリシー構成モジュール368は、アプリケーション開発者が、アプリケーションに関連付けられるべき1つまたは複数のポリシーファイルを作成することを可能にする、ユーザインターフェースを提供することができる。ポリシーファイルは、アプリケーションのための機密データ要素に関連付けられたポリシー情報を含む。ポリシー構成モジュール368はまた、ポリシーファイルが修正されることを可能にするようにも構成され得る。たとえば、アプリケーションに関連付けられたソースコードは、機密データ要素に関連付けられた追加のデータタグを含むように更新され得る。ポリシー構成モジュール368は、ポリシーファイルを信頼できるエンティティ190に提供するように構成され得、信頼できるエンティティ190は、ターゲットデバイス175にポリシー情報を配信するように構成され得る。ポリシー構成モジュール368によって提供されたユーザインターフェースは、アプリケーションに関連付けられた個々のデータ要素を共有するためのルール、またはアプリケーションに関連付けられた機密データ要素のすべてを共有するためのルールが更新されることを可能にするように構成され得る。アプリケーション開発者または配信者は、どのアプリケーションと特定のアプリケーションがデータを共有し得るか、および、どの機密データ要素をアプリケーションが他のアプリケーションと共有し得るかを、更新することを望むことがある。ポリシー構成モジュール368は、アプリケーションが1つまたは複数のターゲットデバイス175にすでに展開された後、ポリシー情報が更新されることを可能にするように構成され得る。ポリシー構成モジュール368は、構築システム125から、ネットワーク110を通して1つまたは複数のターゲットデバイスに、あるいは信頼できるエンティティ190に、更新を送るように構成され得る。ターゲットデバイス175は、信頼できるエンティティ190に、更新されたポリシー情報を定期的に要求するように構成され得る。信頼できるエンティティ190はまた、更新されたポリシー情報をターゲットデバイス175にプッシュするようにも構成され得る。
【００４７】
ポリシー情報は、どのように機密データ要素が他のアプリケーションと共有、かつ/または他のアプリケーションによって利用され得るかを定義する、機密データ要素に関連付けられた1つまたは複数の推移ルールを定義することができる。ポリシー情報は、発生アプリケーションからのいくつのレベルで機密データ要素が伝搬され得るかを定義する、推移ルールを含み得る。本明細書で使用する「レベル」という用語は、ポリシーによって課せられた制限に達する前に、機密データ要素のインスタンスのチェーンに沿って、いくつのインスタンスが作成され得るかを指す。ポリシーは、機密データ要素において実行され得る異なるタイプの動作に、異なるタイプの制限を課すことができる。ポリシー情報中に含まれる推移ルールは、指定されたエンティティが各レベルで機密データ要素を用いて、何をどのように行うことができるかについての、高レベルの制御を提供することができる。推移ルールは、どの動作を特定のエンティティが特定の機密データ要素において実行し得るかを規定することができる。ルールはまた、発生アプリケーションから特定のレベルのエンティティが、機密データ要素を用いて、何をどのように行うことができるかを規定することもできる。発生エンティティはまた、発生アプリケーションのためのポリシー情報への更新を発行することによって、特定のエンティティのための、または発生エンティティから除去された特定のレベルにおけるエンティティのための、特権を無効にすることもできる。ポリシー情報は、機密要素の発生元に、その機密データ要素に対するきめの細かい制御を可能にする。ポリシー情報中に含まれる推移ルールは、ポリシー構成モジュール368を使用して、閲覧かつ/または修正され得る。
【００４８】
図4は、図1に示すターゲットデバイス175を実装するために使用され得るコンピューティングシステムのブロック図である。ターゲットデバイスは、少なくとも部分的に、図8に示すプロセスを実装するために使用され得る。
【００４９】
ターゲットデバイス175は、バス401によって互いに接続された、プロセッサ410と、デジタル信号プロセッサ(DSP)420と、ワイヤレスインターフェース425と、GNSSインターフェース465と、非一時的メモリ460とを含む、コンピュータシステムを備える。ターゲットデバイス175の他の実装形態は、図4の例示的な実装形態には示されていない追加の要素を含むことができ、かつ/または図4に示す例示的な実施形態に示す要素のすべてを含んでいるとは限らない場合がある。たとえば、ターゲットデバイス175のいくつかの実装形態は、GNSSインターフェース465、DSP420、および/またはワイヤレスインターフェース425を含まなくてよい。
【００５０】
ワイヤレスインターフェース425は、ワイヤレス受信機、送信機、トランシーバ、および/または、ターゲットデバイス175がWWAN、WLAN、および/または他のワイヤレス通信プロトコルを使用してデータを送り、かつ/または受信することを可能にする他の要素を含み得る。ワイヤレスインターフェース425は、複数のワイヤレス通信規格を使用して、ワイヤレス信号を送信かつ受信することが可能な、1つまたは複数のマルチモードモデムを含み得る。ワイヤレスインターフェース425は、ワイヤレス通信プロトコルを使用して通信するように構成されたワイヤレスデバイスへの/そこからの通信を送受信するために、回線432によってアンテナ434に接続される。図4に示すターゲットデバイス175は、単一のワイヤレスインターフェース425および単一のアンテナ434を備えるが、ターゲットデバイス175の他の実装形態は、複数のワイヤレスインターフェース425および/または複数のアンテナ434を含み得る。さらに、ターゲットデバイス175は、1つまたは複数のネットワークにワイヤード接続を提供するためのワイヤレスインターフェースの代わりに、またはそれに加えて、ワイヤードインターフェースを含み得る。
【００５１】
I/Oインターフェース470は、データ入力および/またはデータ出力をターゲットデバイス175に提供することができる、1つまたは複数のポートおよび/または他のインターフェースを提供することができる。たとえば、I/Oインターフェース470は、ユニバーサルシリアルバス(USB)ポート、および/または外部デバイスをモバイルデバイスに接続するために使用され得る他のタイプのポートなど、1つまたは複数のポートを含み得る。I/Oインターフェース470はまた、ボタン、スイッチ、キーパッド、タッチスクリーン、および/またはユーザから入力を受信するための他の手段など、1つまたは複数の入力デバイスを含み得る。I/Oインターフェース470はまた、スクリーン、スピーカー、ヘッドフォンポートなど、オーディオコンテンツおよび/もしくは視覚コンテンツを出力するための1つまたは複数の手段、ならびに/または、そのようなコンテンツを出力するための他の手段を含み得る。
【００５２】
GNSSインターフェース465は、ターゲットデバイス175が1つまたは複数のGNSSシステムに関連付けられた送信機から信号を受信することを可能にする、ワイヤレス受信機および/または他の要素を含み得る。GNSSインターフェース465は、GNSS送信機から信号を受信するために回線472によってアンテナ474に接続される。ターゲットデバイス175は、ターゲットデバイス175の位置を決定するために、GNSSシステムに関連付けられた衛星および他の送信機に関連付けられた衛星から受信された信号を使用するように構成され得る。ターゲットデバイス175はまた、他のワイヤレスデバイスから受信された信号とともに、GNSSシステムに関連付けられた衛星および他の送信機から受信された信号を使用するようにも構成され得る。
【００５３】
DSP420は、ワイヤレスインターフェース425および/またはGNSSインターフェース465から受信された信号を処理するように構成され得、メモリ460内に記憶されたプロセッサ可読、プロセッサ実行可能ソフトウェアコードとして実装された1つまたは複数のモジュールのために、またはそれと連携して信号を処理するように構成され得、かつ/あるいはプロセッサ410と連携して信号を処理するように構成され得る。
【００５４】
プロセッサ410は、インテリジェントデバイス、たとえば、パーソナルコンピュータ中央処理ユニット(CPU)、マイクロコントローラ、特定用途向け集積回路(ASIC)などであり得る。メモリ460は、ランダムアクセスメモリ(RAM)、読取り専用メモリ(ROM)、またはそれらの組合せを含み得る、非一時的記憶デバイスである。メモリ460は、本明細書で説明する機能を実行するようにプロセッサ410を制御するための命令を含むプロセッサ可読、プロセッサ実行可能ソフトウェアコードを記憶することができる(ただし、説明ではソフトウェアが機能を実行すると述べる場合がある)。ソフトウェアは、ネットワーク接続を介してダウンロードされること、外部メモリデバイスからアップロードされることなどによってメモリ460上にロードされ得る。さらに、ソフトウェアは、直接的に実行可能ではなく、たとえば実行前にコンパイルを必要とする場合がある。
【００５５】
メモリ460内のソフトウェアは、プロセッサ410が、ワイヤレス通信のために構成されたデバイスとの間でデータを送り、かつ/または受信することを実装することを含む、様々なアクションを実行することを可能にするように構成される。ターゲットデバイス175のメモリ460内のソフトウェアの一部または全部によって実行される機能は、ターゲットデバイス175のデジタルもしくはアナログハードウェア構成要素、ならびに/またはハードウェアおよびソフトウェアの組合せとして実装され得る。
【００５６】
図5は、図4に示すメモリ460の機能モジュールを示す、図4に示すターゲットデバイス175の機能ブロック図である。たとえば、ターゲットデバイス175は、セキュアアセットマネージャモジュール562と、データアクセスモジュール566と、ポリシー構成モジュール568とを含み得る。ターゲットデバイス175はまた、ターゲットデバイス175に他の機能を提供する1つまたは複数の追加の機能モジュールを含み得る。図5に示す機能モジュールは、図5に示すようにプロセッサ実行可能ソフトウェアとして実装され得、あるいは、ハードウェアまたはハードウェアとソフトウェアとの組合せにおいて実装され得る。図4および図5に示すターゲットデバイス175は、図7および図9に示すプロセスに関連付けられたターゲットデバイス175を実装するために使用され得る。プロセッサ410はまた、プロセッサ実行可能ソフトウェアを備えることができ、ファームウェアにおいて実装される1つまたは複数のモジュールと連携して動作し得る、ターゲットデバイス175の様々なモジュールを実装するための手段を提供することもできる。ターゲットデバイス175は、ターゲットデバイス175のモジュールの一部または全部を実装するデジタルおよび/またはアナログ回路を含み得る。
【００５７】
セキュアアセットマネージャモジュール562は、ターゲットデバイス175上でセキュアアセットマネージャ(SAM)705を実装するための手段を提供することができる。セキュアアセットマネージャモジュール562は、図9に示すプロセスにおいて使用される、図7に示すロガーモジュール710を実装するための手段を提供することができる。セキュアアセットマネージャモジュール562はまた、SAM705の一時作業メモリ715および永続作業メモリ720のコンテンツを管理するための手段を提供することもできる。セキュアアセットマネージャモジュール562は、一時作業メモリ715および永続作業メモリ720、ならびに/またはターゲットデバイス175の他のメモリを実装するために、メモリ460の一部分を利用するように構成され得る。セキュアアセットマネージャモジュール562は、プロセッサ410がセキュア処理環境を提供することが可能である場合、プロセッサ410によって提供されたそのようなセキュア処理環境を利用するように構成され得る。セキュアアセットマネージャモジュール562は、ターゲットデバイス175上で実行する他のアプリケーションおよび/またはプロセスが、一時作業メモリ715および永続作業メモリ720に割り振られたメモリ空間にアクセスすることを防止することによって、一時作業メモリ715および永続作業メモリ720のコンテンツを保護するように構成され得る。セキュアアセットマネージャモジュール562はまた、一時作業メモリ715および永続作業メモリ720のコンテンツを不明瞭にし、暗号化し、またはさもなければ保護するようにも構成され得る。
【００５８】
セキュアアセットマネージャモジュール562は、SAM705の一時作業メモリ715および永続作業メモリ720内に記憶された機密データへのアクセスを管理するための手段を提供する。セキュアアセットマネージャモジュール562は、永続作業メモリ720内に記憶されたポリシー情報にアクセスするように、ならびに、構築システム125のデータタグ付けモジュール362によってタグ付けされており、SAM705の一時作業メモリ715および/または永続作業メモリ720内に記憶されていない機密データのインスタンスに、ポリシー情報を適用するように構成され得る。セキュアアセットマネージャモジュール562は、別段に規定されていない限り、図7および図9に示すプロセスに関連付けられた様々なアクションを実行するための手段を提供するように構成され得る。
【００５９】
データアクセスモジュール566は、メモリ460および/またはターゲットデバイス175に関連付けられた他のデータ記憶デバイス内に、データを記憶するように構成され得る。データアクセスモジュール566はまた、メモリ460および/またはターゲットデバイス175に関連付けられた他のデータ記憶デバイス内のデータにアクセスするようにも構成され得る。データアクセスモジュール566は、ターゲットデバイス175の他のモジュールおよび/または構成要素から要求を受信するように、ならびに、メモリ460および/またはターゲットデバイス175に関連付けられた他のデータ記憶デバイス内に記憶されているデータを記憶し、かつ/またはそのデータにアクセスするように構成され得る。
【００６０】
ポリシー構成モジュール568は、ターゲットデバイス175のユーザが、ターゲットデバイス175上の1つまたは複数のSAM準拠アプリケーションに関連付けられたポリシー情報を修正することを可能にすることができる、ユーザインターフェースを提供することができる。ポリシー構成モジュール568は、ターゲットデバイス175のユーザが、そのユーザのための機密情報がアプリケーション間でどのように共有されるかをカスタマイズすること、および、どの情報が共有され得るかを制御することを可能にするように構成され得る。ターゲットデバイス175のユーザは、特定のアプリケーションのためのポリシー情報中に含まれる推移ルールを閲覧、修正、または作成することによって、機密データ要素に対する同じまたは同様のきめの細かい制御を行うことができる。ポリシー構成モジュール568は、ターゲットデバイス175のユーザが、ターゲットデバイス175上のアプリケーションとともに提供されたポリシーよりも厳密な、またはそれよりも厳密ではないポリシーの共有を実装することを可能にすることができる。たとえば、ターゲットデバイスのユーザは、アプリケーション開発者または配信者によって提供されたポリシー情報が、第1のアプリケーションと第2のアプリケーションとの間の機密データの共有を許可したにもかかわらず、第2のアプリケーションとのいかなる情報の共有をも防止するために、第1のアプリケーションに関連付けられたポリシーを構成し得る。ターゲットデバイス175のユーザはまた、2つのSAM準拠アプリケーションに関連付けられたポリシーファイル中に最初に含まれていなかった、それらのアプリケーション間のデータの共有を許可し得る。たとえば、ターゲットデバイス175のユーザは、アプリケーション開発者または配信者によって提供されたポリシー情報が、第1のアプリケーションと第3のアプリケーションとの間の機密データの共有を許可しなかったにもかかわらず、第3のアプリケーションとのいかなる情報の共有をも可能にするために、第1のアプリケーションに関連付けられたポリシーを構成し得る。ポリシー構成モジュール568は、どのSAM準拠アプリケーションがターゲットデバイス175上にインストールされるか、および、そのためにユーザがアプリケーション間でこの情報を共有するためのルールを構成す
ることができる、SAM準拠アプリケーションの各々に関連付けられた機密データ要素を識別するように構成され得る。たとえば、ユーザは、第1のアプリケーションと第2のアプリケーションとの間で、ユーザの名前などの1つの機密データ要素の共有を可能にし得るが、第1のアプリケーションがユーザの社会保障番号または収入情報などの他の情報を第2のアプリケーションと共有することを防止し得る。
【００６１】
ポリシー構成モジュール568はまた、ターゲットデバイス175のユーザが、アプリケーションに関連付けられたポリシー情報をオーバーライドすることを防止するようにも構成され得る。アプリケーション発行者または配信者は、特定のアプリケーションに関連付けられたポリシー情報がターゲットデバイス175のユーザによってオーバーライド不可能であることを示すことができる。アプリケーション発行者または配信者はまた、特定のデータ要素に関連付けられたポリシールールがターゲットデバイス175のユーザによってオーバーライド不可能であることを示すこともできる。たとえば、デジタル著作権管理(DRM)保護コンテンツを利用するアプリケーションの開発者または発行者は、ユーザおよび/またはターゲットデバイス175に関連付けられた認証情報に、アプリケーション間で共有することができない情報としてマークすることができ、ターゲットデバイス175のユーザは、認証情報を取得し、保護コンテンツ上でDRM保護を潜在的に回避するために、これらのポリシールールをオーバーライドすることができない。アプリケーションの開発者または発行者はまた、暗号化されていないか、または保護されていないコンテンツを、アプリケーション間で共有することができない情報としてマークして、DRM保護なしにコンテンツを記憶することができる別のアプリケーションに、保護されていないコンテンツを提供することによって、コンテンツ上のDRM保護が回避されることを防止し得る。
【００６２】
例示的な実装形態
図8は、本明細書で説明する技法による、セキュアアセットマネージャを実装するアプリケーションを構築するための例示的なプロセスの流れ図である。図8に示すプロセスは、別段に規定されていない限り、図1〜図3に示す構築システム125を使用して実装され得る。構築システム125のデータタグ付けモジュール362および/またはアプリケーション構築モジュール364は、別段に規定されていない限り、図8に示すプロセスの様々な段階を実行するための手段を提供することができる。
【００６３】
アプリケーションのためのソースコードが、ソースコードに関連付けられたデータ要素が機密データであることを示すセマンティックタグでタグ付けされ得る(段階805)。構築システム125のデータタグ付けモジュール362は、アプリケーション開発者がソースコード内の機密データにタグ付けすることを可能にするユーザインターフェースを提供するように構成され得る。タグは、アプリケーション間の情報の流布が、アプリケーションに関連付けられたポリシーファイル内で許可されるものに限定されるべきであることを示す。たとえば、ポリシーファイルは、構築されているアプリケーションが、タグ付けされた情報を別のアプリケーションと共有することができるか否かを示すことができる。ポリシーファイルはまた、構築されているアプリケーションが、タグ付けされた情報から導出される情報を生成することができるか否かを示すこともできる。データタグ付けモジュール362は、データアクセスモジュール366を介して、構築システムのメモリ260内にセマンティックタグ情報を記憶するように構成され得る。セマンティックタグ情報は、ランタイムに機密データ要素に関連付けられたデータを追跡するために使用されることになるセキュアオブジェクトを生成するために、SAMアウェアコンパイラ615によって使用され得る。
【００６４】
データ要素に関連付けられたセキュリティ情報を識別するポリシー情報が、アクセスされ得る(段階810)。データ要素に関連付けられたポリシー情報は、構築システム125のアプリケーション構築モジュール364によってアクセスされ得る。アプリケーション構築モジュール364は、データアクセスモジュール366が構築システム125のメモリ260または別のメモリからポリシー情報を取り出すことを要求するように構成され得る。構築システム125は、アプリケーションのためのポリシー情報が定義されることを可能にするユーザインターフェースを提供するように構成され得る、ポリシー構成モジュール368を含み得る。ポリシー情報は、アプリケーションに関連付けられた1つまたは複数の機密データ要素のための情報を含み得る。ポリシー情報は、アプリケーションがどのように各機密データ要素を利用することを許可されるかを示すことができる。ポリシー情報は、アプリケーションが、いくつかの他のアプリケーションと機密データ要素を共有すること、データ要素を修正すること、および/または機密データ要素を用いて他のアクションを実行することを許可されることを示すことができる。
【００６５】
オブジェクトファイルが、タグ付けされたソースコードから生成され得る(段階815)。アプリケーション構築モジュール364は、タグ610を含むソースコード605からオブジェクトファイルを生成するように構成され得る。アプリケーション構築モジュール364は、図6に示すSAMアウェアコンパイラ615を実装するように構成され得る。アプリケーション構築モジュール364は、代替的に、SAMアウェアコンパイラ615を初期化するように、およびSAMアウェアコンパイラ615にソースコード605を提供するように構成され得る。SAMアウェアコンパイラ615は、アプリケーションのためのオブジェクトコードと、アプリケーションに関連付けられたポリシー情報620とを含む、オブジェクトファイルを出力するように構成され得る。SAMアウェアコンパイラ615は、段階805でソースコードに関連付けられた機密データ要素に関連付けられたデータタグの各々に関連付けられたオブジェクトファイルを生成するように構成され得る。機密データ要素に関連付けられたオブジェクトは、アプリケーションがターゲットデバイス175によって実行されるとき、アプリケーションに関連付けられたポリシー情報620に従って、図7に示すセキュアアセットマネージャ705によって管理され得る。
【００６６】
オブジェクトファイルが、オブジェクトファイルが信頼できるプロバイダによって生成されたことを示すために、セキュリティ証明書を用いて署名され得る(段階820)。オブジェクトファイルは、随意に、アプリケーションのためのオブジェクトファイルが信頼できるプロバイダによって生成されたことを示すために、セキュリティ証明書を用いて暗号化かつ/または署名され得る。セキュリティ証明書は、ターゲットデバイス175にアプリケーションを配信することを担当するアプリケーション開発者またはコンテンツプロバイダに関連付けられた秘密鍵に関連付けられ得る。オブジェクトファイルは、本明細書で説明する機密情報を扱うための技法に準拠するアプリケーションを提供する、信頼できるソースから来ることを示すために、署名され得る。SAM準拠であると称されたアプリケーションの偽のコピーを代用しようと試みる攻撃者は、オブジェクトファイルに署名するための適切な証明書を欠くことになる。オブジェクトファイルは、展開635のために処理され得る。展開フェーズ中に、オブジェクトファイル中に含まれたオブジェクトコードは、それにおいてアプリケーションが展開されることになる特定のターゲットデバイス175のためにリンクかつ/またはさもなければ処理され得る。ターゲットデバイス175へのアプリケーションの展開635に関連付けられた処理ステップは、アプリケーション構築モジュール364によって実行され得る。
【００６７】
図9は、本明細書で開示する技法による、機密データを保護するための例示的なプロセスの流れ図である。図9に示すプロセスは、別段に規定されていない限り、図1、図4、および図5に示すターゲットデバイス175を使用して実装され得る。ターゲットデバイス175のセキュアアセットマネージャモジュール562は、別段に規定されていない限り、図9に示すプロセスの様々な段階を実行するための手段を提供することができる。図9に示すプロセスは、セキュアアセットマネージャ705がターゲットデバイス175上の機密データへのアクセスをどのように管理することができるかについて説明する。
【００６８】
機密データ要素が、セキュアアセットマネージャによって管理されたセキュアメモリ領域内に記憶され得る(段階905)。SAM705は、SAM705によって管理されたメモリ領域の永続作業メモリ720内に、機密データ要素のインスタンスを記憶するように構成され得る。機密データ要素は、図6および図8に関して上記で説明した技法を使用して構築された場合のある第1のアプリケーション、SAM準拠アプリケーションに応答して記憶され得る。SAM705は、SAM705内に機密データ要素を投入するための第1のアプリケーションからの要求に応答して、永続作業メモリ720内で新しい機密データ要素オブジェクトをインスタンス化するように構成され得る。SAM705は、ターゲットデバイス175上で動作する他のプロセスにとって実質的にアクセス不可能である、ターゲットデバイス175のメモリ460の一部分内で、永続作業メモリ720を維持するように構成される。SAM705は、メモリ460の部分であり得るか、またはターゲットデバイス175の別個のメモリであり得る、プロセッサ410によって提供されたメモリのセキュアゾーン内で、永続作業メモリ720を維持するように構成され得る。SAM705はまた、メモリ460の汎用部分内で永続作業メモリ720を維持するようにも構成され得るが、SAM705は、セキュアアセットマネージャ705に関連付けられた一時作業メモリ715および永続作業メモリ720のデータコンテンツを暗号化するか、またはさもなければ不明瞭にするように構成され得る。SAM705はまた、非SAM準拠プロセスによるデータへの無許可アクセスを防止するために、SAM705によって管理されている機密データ要素に関連付けられたデータが、プロセッサ410によって動作されている間に、ターゲットデバイス175のプロセッサ410のレジスタ内でデータをロックダウンするようにも構成され得る。
【００６９】
機密データ要素が、そこから機密データ要素が発生するアプリケーションによって機密データ要素に関連付けられたポリシーに従って管理され得る(段階910)。ポリシー情報は、どのように機密データ要素が他のアプリケーションと共有、かつ/または他のアプリケーションによって利用され得るかを定義する、機密データ要素に関連付けられた1つまたは複数の推移ルールを定義することができる。機密データ要素を管理することは、以下を含む。
・機密データ要素に関係してとられるいかなるアクションについても、永続作業メモリ720内に記憶された監査ログに、監査エントリを追加すること。
・そこから機密データ要素が発生するアプリケーションのポリシーを、機密データ要素およびそこから導出されたコピーまたはデータに適用すること。
・SAM705は、セキュアメモリ領域内の機密データ要素において実行され得る1つまたは複数の動作を提供する。1つまたは複数の機能によって生成されたいかなる中間値もまた、セキュアメモリ領域内に記憶される。
・そこから機密データ要素が発生するアプリケーションによって機密とマークされたデータは、そこから導出された任意のデータ要素であるので、機密であり続ける。SAM705は、元のデータ要素から導出されたデータ要素が異なるアプリケーションによって使用されている場合でも、そこからデータ要素が発生するアプリケーションによって、この元のデータ要素に適用されたポリシーと同じポリシーを適用し続けることになる。したがって、ポリシー情報に従って機密データ要素にアクセスすることを許可されないアプリケーションは、機密データ要素が、機密データ要素にアクセスすることを許可された1つまたは複数の中間アプリケーションによって動作されていた場合でも、機密データ要素またはそこから導出されたデータにアクセスすることが可能ではなくなる。
・ポリシーが更新され得、SAM705は、改変されたルールに関連付けられた機密データ要素のインスタンスに、その中に含まれた推移ルールへの変更を適用するように構成され得る。SAM705は、ターゲットデバイス175によって維持されたポリシー情報への更新を受信するように構成され得る。上記で説明したように、ポリシー情報は、アプリケーション開発者、コンテンツプロバイダ、ネットワークプロバイダ、または他のソースによって、ターゲットデバイス175の外部で更新され、ターゲットデバイス175に伝搬され得る。ポリシー情報はまた、いくつかの実装形態では、ターゲットデバイス175のユーザが機密データ要素に関連付けられた推移ルールを構成することを可能にする、ユーザインターフェースを介して、ターゲットデバイス175のユーザによっても更新され得る。いくつかの実装形態では、SAM705は、SAM705によって管理されている機密データ要素のいかなるインスタンスにも、ポリシーへの変更を即時に適用するように構成され得る。ポリシー情報はまた、機密データ要素のコピーであり得るか、もしくは機密データ要素から導出され得るか、または機密データ要素から導出された別の機密データ要素から導出され得る、機密データ要素に関連付けられたデータ要素のチェーンに沿って伝搬され得る。SAM705はまた、機密データ要素の新しいインスタンスにポリシー変更を適用すること、ならびに、機密データ要素の既存のインスタンスおよび/またはそこから導出された機密データ要素を、機密データ要素のそれらのインスタンスが作成された時間に適切であったポリシーの下で管理し続けて、それらのライフサイクル全体にわたって同じポリシー、すなわち、SAM準拠アプリケーションによってもはや必要とされていないときのメモリからの除去を通した作成を使用して、機密データ要素のインスタンスが管理されるようにすることを行うようにも構成され得る。
・ポリシーは、発生アプリケーションからいくつ離れたレベルで機密データ要素が伝搬され得るかの制限を課すことができる。本明細書で使用する「レベル」という用語は、ポリシーによって課せられた制限に達する前に、機密データ要素のインスタンスのチェーンに沿って、いくつのインスタンスが作成され得るかを指す。ポリシーは、機密データ要素において実行され得る異なるタイプの動作に、異なるタイプの制限を課すことができる。たとえば、例示的なポリシーは、以下のルールを実装することができ、すなわち、機密データ要素のコピーが、発生アプリケーションによって作成された元の機密データ要素から第1の数のレベルまで伝搬され得ること、派生データ要素が、元の機密データ要素から第2の数のレベルまでのみ離れ得ること、元の機密データ要素から第3の数のレベルまで離れたデータ要素のみに修正が行われ得ること、ならびに、実行可能コンテンツが、元の機密データ要素から第4の数のレベルまで離れてのみ実行され得ることなどであって、ただし、第1のレベル制限、第2のレベル制限、第3のレベル制限、および第4のレベル制限は、同じ値または異なる値であり得る。これらのレベルの各々に達すると、SAM705は、これらのレベルに関連付けられた動作が実行されることを防止することができる。
【００７０】
図10は、本明細書で説明する技法による、セキュアアセットマネージャを実装するアプリケーションを動作させるための例示的なプロセスの流れ図である。図10に示すプロセスは、別段に規定されていない限り、図1、図4、および図5に示すターゲットデバイス175を使用して実装され得る。ターゲットデバイス175のセキュアアセットマネージャモジュール562は、別段に規定されていない限り、図10に示すプロセスの様々な段階を実行するための手段を提供することができる。図10に示すプロセスは、セキュアアセットマネージャ705がターゲットデバイス175上の機密データをどのように管理することができるかについて説明する。図10に示すプロセスは、ターゲットデバイス175上で発生し得るアプリケーション間の相互作用、およびアプリケーション間の機密データの流布の制御の一例を提供する。SAM705は、ターゲットデバイス175のセキュアアセットマネージャモジュール562によって実装され得る。図10に示すプロセスは、少なくとも部分的に、図9に示すプロセスの段階910を実装するために使用され得る。
【００７１】
セキュアメモリ領域内に機密データ要素の第1のインスタンスを投入するための要求が、第1のアプリケーションから受信され得る(段階1005)。機密データ要素は、機密データ要素に関連付けられたポリシー情報を識別するデータタグを備える。機密データ要素は、第1のアプリケーションによって利用されたデータ要素である。機密データ要素は、アプリケーションのソースコード605内のタグ610に関連付けられた。機密データ要素は、アプリケーションの開発者が、アプリケーションによって自由に流布されるべきではない情報としてタグ付けした、アプリケーションによって使用される情報のインスタンスである。機密情報の流布は、アプリケーションに関連付けられたポリシー情報620に基づいて、セキュアアセットマネージャ705によって制御されることになる。第1のアプリケーションは、SAM準拠アプリケーションであり、図6および図8に関して上記で説明した技法を使用して構築された場合がある。SAM705は、SAM705内に機密データ要素を投入するための第1のアプリケーションからの要求に応答して、永続作業メモリ720内で新しい機密データ要素オブジェクトをインスタンス化するように構成され得る。SAM705は、ターゲットデバイス175上で動作する他のプロセスにとって実質的にアクセス不可能である、ターゲットデバイス175のメモリ460の一部分内で、永続作業メモリ720を維持するように構成される。SAM705は、メモリ460の部分であり得るか、またはターゲットデバイス175の別個のメモリであり得る、プロセッサ410によって提供されたメモリのセキュアゾーン内で、永続作業メモリ720を維持するように構成され得る。SAM705はまた、メモリ460の汎用部分内で永続作業メモリ720を維持するようにも構成され得るが、SAM705は、セキュアアセットマネージャ705に関連付けられた一時作業メモリ715および永続作業メモリ720のデータコンテンツを暗号化するか、またはさもなければ不明瞭にするように構成され得る。
【００７２】
SAM705は、要求を開始したアプリケーションに関連付けられた識別子を、新たに作成された機密データ要素オブジェクトに関連付け、かつ/または、機密データオブジェクト内に、そのアプリケーションに関連付けられたポリシー情報を記憶するように構成され得る。SAM705は、オブジェクト内に記憶されたポリシー情報を利用して、そこに記憶された機密データが他のアプリケーションと共有され、修正され、かつ/またはそれ以外でアプリケーションおよび/もしくは他のアプリケーションによって利用され得るか否かを決定することができる。SAM705は、機密データ要素オブジェクト内に記憶されたこのポリシー情報を、元の機密データ要素オブジェクトから導出されたいかなる機密データ要素オブジェクトにも関連付けて、ポリシー情報が機密データ要素のライフサイクル全体の間に機密データ要素に後続するようにすることを行うように構成され得る。SAM705は、元のポリシールールを、機密データオブジェクトおよびいかなる派生機密データオブジェクトにも適用して、データを記憶するアプリケーションに関係する推移問題を防止する。たとえば、アプリケーションAに関連付けられたポリシー情報が、アプリケーションAが特定の機密データ要素をアプリケーションBと共有することを可能にするが、アプリケーションCと共有することを可能にしない場合、SAM705は、アプリケーションBが、この機密データ要素をアプリケーションCと共有することを防止することになり、その理由は、アプリケーションAからのポリシー情報が、機密データ要素のライフサイクル全体を通して、機密データ要素オブジェクトに後続するからである。
【００７３】
第2のアプリケーションからの、セキュアメモリ内の機密データ要素の第1のインスタンスにおいて動作を実行するための要求が、受信され得る(段階1010)。第1のアプリケーションは、機密データ要素の第1のインスタンスを第2のアプリケーションと直接共有することができず、その理由は、SAM705が、永続作業メモリ720内で機密データ要素のインスタンスを維持するからである。第1のアプリケーションは、SAM705が、機密データの第1のインスタンスへのアクセスを第2のアプリケーションと共有することを含む、永続作業メモリ720内に記憶された機密データ要素のインスタンスにおいてあるアクションを実行することを、要求することができる。第1のアプリケーションは、SAM705が、第2のアプリケーションからの要求に応答して、または第1のアプリケーションの側でとられたあるアクションから、機密データ要素の第1のインスタンスへのアクセスを第2のアプリケーションに提供することを、要求するように構成され得る。SAM705のロガーモジュール710は、SAM705によって維持された監査ログに、要求に関連付けられた情報を追加するように構成され得る。監査ログに追加される情報は、何の情報が要求されたか、どのアプリケーションが情報にアクセスするための要求を行ったか、どのアプリケーションが情報のソースであったかを識別する情報、および/または、機密情報の流布を追跡するために後に使用され得る他の情報を含み得る。様々なタイプの動作が、機密データ要素の第1のインスタンスにおいて実行されるように要求され得、それらの動作は、機密データ要素を読み取るかもしくはそれにアクセスすること、機密データ要素を修正すること、または、機密データ要素が実行可能構成要素を備える場合、機密データ要素を実行することを含む。実行可能構成要素は、プロセッサ実行可能プログラムコードを備え得る。SAM705は、SAM705によって維持されたセキュアメモリ空間内で実行可能構成要素を実行するように構成され得る。
【００７４】
以下の例は、図10に関して説明した概念を示すが、それとともに本明細書で説明する技法が使用され得るアプリケーションのタイプを限定するものではない。この例では、本明細書ではアプリケーションAと呼ぶ第1のアプリケーションは、バンキングアプリケーションであり、本明細書ではアプリケーションBと呼ぶ第2のアプリケーションは、投資アプリケーションであり、アプリケーションAとアプリケーションBの両方が、機密データへのアクセスを管理するためにSAM705を利用する、SAM準拠アプリケーションであるように開発されている。アプリケーションBは、アプリケーションAのユーザに関連付けられた銀行口座番号を取得して、投資アプリケーションBがユーザに関連付けられた銀行口座からの資金を使用して、株式または他の投資を購入することを可能にすることを望む場合がある。したがって、アプリケーションBは、SAM705に銀行口座情報のための機密データ要素へのアクセスを要求することができるか、または、アプリケーションBは、アプリケーションAに銀行口座情報のための機密データ要素へのアクセスを要求することができ、アプリケーションAが要求をSAM705に転送することができるかのいずれかである。
【００７５】
各SAM準拠アプリケーションに関連付けられたポリシー情報は、ターゲットデバイス175上で他のSAM準拠アプリケーションによって読み取られ得、他のアプリケーションは、どの情報が要求され得るかを知ることができる。SAM準拠アプリケーションはまた、ターゲットデバイス175上の別のアプリケーションに、特定の機密データ要素へのアクセスを要求するようにも構成され得る。いくつかの実装形態では、この要求は、ターゲットデバイス175のユーザからの命令に応答して、トリガされ得る。たとえば、SAM準拠アプリケーションは、ターゲットデバイス175のユーザに、銀行口座情報など、ユーザからの機密データ要素を要求するように構成され得る。SAM準拠アプリケーションは、ユーザが要求された情報を入力すること、または、要求された情報へのアクセスを有するターゲットデバイス175上の別のSAM準拠アプリケーションを識別することを可能にする、ユーザインターフェースを提供することができる。次いで、SAM準拠アプリケーションは、他のSAM準拠アプリケーションに所望の情報を要求することができ、SAM705は、SAM準拠アプリケーションが、機密データ要素に関連付けられたポリシー情報と、機密データ要素へのアクセスを有するとして識別されるアプリケーションとに基づいて、要求された情報にアクセスすることを可能にし得る。
【００７６】
機密データ要素に関連付けられたポリシー情報が、アクセスされ得る(段階1015)。SAM705は、第1のアプリケーションのためのポリシー情報にアクセスすることができる。機密データ要素は、第1のアプリケーションによって生成された。したがって、第1のアプリケーションに関連付けられたポリシー情報は、SAM705によって、機密データ要素および機密データ要素から導出されたいかなるデータ要素にも適用されることになる。ポリシー情報は、SAM705によって維持された永続作業メモリ720内に記憶され得る。SAM705は、ポリシー情報が永続作業メモリ720内で利用可能ではない場合、信頼できるエンティティ190にポリシー情報620を要求するように構成され得る。上記で説明したように、特定のデータ要素に関連付けられたポリシー情報は、SAM705によって維持された機密データオブジェクト要素内で識別され得る。SAM705は、機密データ要素オブジェクトから取得された情報を使用して、どのポリシー情報が取得されるべきであるかを決定することができる。
【００７７】
第2のアプリケーションが、機密データ要素の第1のインスタンスにおいて動作を実行することを許可されるか否かの決定が、ポリシー情報に基づいて行われ得る(段階1020)。SAM705は、第1のアプリケーションに関連付けられたポリシー情報に基づいて、第2のアプリケーションが永続作業メモリ720内の機密データ要素の第1のインスタンスにアクセスすることができるか否かを決定することができる。ポリシー情報は、第1のアプリケーションがどのアプリケーションと機密データ要素を共有することができるかを示すことができる。ポリシー情報は、第1のアプリケーションがどの機密データ要素をどの他のアプリケーションと共有することができるかを識別することができる。アプリケーションは、ソースコード内でタグ付けされた複数の機密データ要素に関連付けられ得、ポリシー情報は、どのようにその特定のデータ要素が共有され得るかを示す、各機密データ要素のための情報を含み得る。各機密データ要素は、それとともにその機密データが共有され得る異なるアプリケーションを潜在的に有することができる。上記で説明したように、要求された機密データ要素が別のアプリケーションから取得されたか、または別の機密データ要素から導出された場合、ソース機密データ要素に関連付けられたポリシー情報は、要求された機密データ要素に適用されることになり、要求された機密データ要素を、ソース機密データ要素に関連付けられたポリシーに反して使用または流布することはできない。
【００７８】
機密データ要素上への動作がポリシー情報によって許可されるか否かの決定が行われ得る(段階1025)。SAM705は、機密データ要素に関連付けられたポリシー情報を、第2のアプリケーションによって要求されたアクセスと比較するように構成され得る。要求は、何のタイプのアクセスを第2のアプリケーションが望むかを示し、機密データ要素に関連付けられたポリシー情報が第2のデータ要素へのそのようなアクセスを許可するか否かを決定することができる。たとえば、要求は、第2のアプリケーションが、読取り専用アクセス、機密データ要素を修正するためのアクセス、機密データ要素のコピーを作成するためのアクセス、および/または機密データ要素からの新しいデータにおいて計算を実行するか、もしくはそれを導出するためのアクセスを要求中であることを示し得る。これらの例は、第2のアプリケーションによって要求され得るアクセスの可能なタイプのいくつかを示すために提供され、網羅的であるように意図されていない。要求された例に加えて、またはその代わりに他のタイプのアクセスが、第2のアプリケーションから受信され得、SAM705は、そのようなアクセスが許可されるか否かの決定を行うことができる。SAM705は、第2のアプリケーションが機密データ要素の第1のインスタンスにアクセスすることを許可されることを示すポリシーに応答して、段階1030に進むか、または、第2のアプリケーションが機密データ要素の第1のインスタンスにアクセスすることを許可されないことを示すポリシーに応答して、段階1035に進むことができる。
【００７９】
第2のアプリケーションに対する、機密データ要素の第1のインスタンスへのアクセスが、第2のアプリケーションが機密データ要素にアクセスすることを許可されることを示すポリシー情報に応答して、与えられ得る(段階1030)。SAM705は、ポリシー情報が、第2のアプリケーションが機密データ要素にアクセスすることを許可されることを示すとの決定に応答して、異なるタイプのアクションを実行するように構成され得る。たとえば、SAM705は、第2のアプリケーションのための第2のデータ要素の第2のインスタンスを作成するように構成され得、第2のインスタンスは、第2のアプリケーションが機密データ要素への読取り専用アクセスを要求して付与された場合、読取り専用であり得、または、第2のアプリケーションが機密データ要素への修正アクセスを要求して付与された場合、修正可能であり得る。SAM705は、第1のアプリケーションのためのポリシー情報を、第2のデータ要素の第2のインスタンスに関連付けるように構成され得る。SAM705は、機密データ要素の第2のインスタンスとして、記憶されているデータに適したデータオブジェクトの特定のタイプの新しいインスタンスを生成するように構成され得る。SAM705は、機密データ要素の第1のインスタンスから、この情報を取得するように構成され得る。SAM705はまた、第1のアプリケーションに関連付けられたポリシー情報への参照を、データ要素の第2のインスタンス内に記憶するようにも構成され得る。SAM705は、第1のアプリケーションに関連付けられたポリシー情報へのこの参照を使用して、どのアクションを第2のアプリケーションが機密データ要素の第2のインスタンス内に記憶されたデータにおいて実行し得るか、および/または、機密データ要素の第2のインスタンスにアクセスし得るいかなる他のアプリケーションをも決定することができる。SAM705のロガーモジュール710は、第2のアプリケーションが機密データ要素へのアクセスを付与されたこと、および、データ要素の新しいインスタンスが、SAM705によって永続作業メモリ720内でインスタンス化されたことを示す情報を、SAM705によって維持される監査ログに追加するように構成され得る。
【００８０】
機密データ要素の第1のインスタンスへのアクセスが、第2のアプリケーションが機密データ要素にアクセスすることを許可されないことを示すポリシー情報に応答して、第2のアプリケーションに対して拒否され得る(段階1035)。SAM705のロガーモジュール710は、機密データ要素の第1のインスタンスに関連付けられた、第1のアプリケーションに関連付けられたポリシー情報に基づいて、第2のアプリケーションが機密データ要素へのアクセスを拒否されたことを示す情報を、SAM705によって維持される監査ログに追加するように構成され得る。
【００８１】
図11は、本明細書で説明する技法による、セキュアアセットマネージャを実装するアプリケーションを動作させるための例示的なプロセスの流れ図である。図11に示すプロセスは、別段に規定されていない限り、図1、図4、および図5に示すターゲットデバイス175を使用して実装され得る。ターゲットデバイス175のセキュアアセットマネージャモジュール562は、別段に規定されていない限り、図11に示すプロセスの様々な段階を実行するための手段を提供することができる。図11に示すプロセスは、セキュアアセットマネージャ705がターゲットデバイス175上の機密データをどのように管理することができるかについて説明する。図11に示すプロセスは、既存の機密データ要素から新しいデータ要素を生成する一例を提供する。SAM705は、ターゲットデバイス175のセキュアアセットマネージャモジュール562によって実装され得る。図11に示すプロセスは、少なくとも部分的に、図9に示すプロセスの段階910を実装するために使用され得る。
【００８２】
機密データ要素から導出されたデータ要素のチェーンが、生成され得る(段階1105)。SAM705は、元の機密データ要素から導出されるデータ要素の各々のマッピングを維持するように構成され得る。SAM705は、SAM705によって維持された永続作業メモリ720内にマッピング情報を記憶するように構成され得る。機密データ要素の特定のインスタンスは、そこから導出されたデータ要素の2つ以上のチェーンを有し得る。SAM705は、機密データ要素に関連付けられたポリシー情報によって課せられた動作におけるいかなる制限にも準拠しながら、特定の動作が実行され得るか否かを決定するために、このマッピング情報を使用することができる。SAM705はまた、特定の機密データ要素に関連付けられたポリシーに関連付けられたポリシー変更を、機密データ要素から導出された機密データ要素のインスタンスの1つまたは複数のチェーンに適用するために、このマッピングを使用することもできる。
【００８３】
機密データ要素に関連付けられたポリシー情報が、アクセスされ得る(段階1110)。SAM705は、機密データ要素の起源のアプリケーションによって機密データ要素に関連付けられた、機密データ要素のためのポリシー情報にアクセスすることができる。SAM705は、機密データ要素のインスタンスまたはそこから導出されたデータ要素が、別のアプリケーションによって使用されている場合でも、このポリシー情報を、機密データ要素および機密データ要素から導出されたいかなるデータ要素にも適用することになる。ポリシー情報は、SAM705によって維持された永続作業メモリ720内に記憶され得る。SAM705は、ポリシー情報が永続作業メモリ720内で利用可能ではない場合、信頼できるエンティティ190にポリシー情報620を要求するように構成され得る。上記で説明したように、特定のデータ要素に関連付けられたポリシー情報は、SAM705によって維持された機密データオブジェクト要素内で識別され得る。SAM705は、機密データ要素オブジェクトから取得された情報を使用して、どのポリシー情報が取得されるべきであるかを決定することができる。
【００８４】
機密データ要素からのポリシー情報が、機密データ要素のチェーンの各新しい機密データ要素に関連付けられ得る(段階1115)。SAM705は、機密データ要素からのポリシー情報を、データ要素のチェーンの各機密データ要素に適用する。SAM705は、元の機密データ要素に関連付けられたデータ要素のチェーン中に含まれる機密データ要素の各々のマップを維持することができる。SAM705は、このマッピングを永続作業メモリ720内で維持することができ、ポリシーの推移ルールに関連付けられた実行される動作のいかなる制限も実施され得ることを保証するために、および、必要な場合、SAM705が機密データ要素の各インスタンスまでずっとポリシー情報に対する変更を伝搬することを可能にするために、このマッピングを使用することができる。
【００８５】
新しい機密データ要素が、そこから新しい機密データ要素が導出される機密データ要素に関連付けられたポリシー情報に従って管理され得る(段階1120)。SAM705は、元の機密データ要素に関連付けられたポリシー情報に従って、機密データ要素から導出されたデータ要素のチェーンの各々を管理するように構成され得る。SAM705は、図9に示すプロセスに従って、機密データ要素の各々を管理することができる。
図9は、本明細書で開示する技法による、機密データを保護するための例示的なプロセスの流れ図である。図9に示すプロセスは、別段に規定されていない限り、図1、図4、および図5に示すターゲットデバイス175を使用して実装され得る。ターゲットデバイス175のセキュアアセットマネージャモジュール562は、別段に規定されていない限り、図9に示すプロセスの様々な段階を実行するための手段を提供することができる。図9に示すプロセスは、セキュアアセットマネージャ705がターゲットデバイス175上の機密データへのアクセスをどのように管理することができるかについて説明する。
【００８６】
監査ログが、機密データ要素に関係して実行されるアクションを含むように更新され得る(段階1125)。SAM705のロガーモジュール710は、機密データ要素、または機密データ要素から導出されるデータ要素のチェーンのいかなるものにおいても実行される、いかなるアクションをも含むように、監査ログを更新する。監査ログ情報は、監査ログへの無許可アクセスまたは修正を防止するために、SAM705によって維持された永続作業メモリ720内に記憶され得る。ロガーモジュール710は、監査ログのサイズが所定のしきい値を超える場合、監査ログを圧縮するように構成され得、かつ/または、監査ログの全部または一部分を、信頼できるエンティティ190などの外部サーバにオフロードして、ターゲットデバイス175上のメモリを空けるように構成され得る。ロガーモジュール710は、監査ログをターゲットデバイス175からオフロードする前に、監査ログのコンテンツを暗号化するように構成され得る。ロガーモジュール710はまた、新しいエントリのための場所を空けるために、所定の時間期間よりも古い監査ログ内のエントリを削除するようにも構成され得る。ロガーモジュール710はまた、監査ログがターゲットデバイス175上でメモリを消費し過ぎることを防止するために、ログのサイズが所定のしきい値を超える場合、監査ログからエントリをオフロードかつ/または削除するようにも構成され得る。
【００８７】
本明細書で説明した方法は、用途に応じて様々な手段によって実装され得る。たとえば、これらの方法は、ハードウェア、ファームウェア、ソフトウェア、またはそれらの任意の組合せにおいて実装され得る。ハードウェア実装形態の場合、処理ユニットは、1つまたは複数の特定用途向け集積回路(ASIC)、デジタル信号プロセッサ(DSP)、デジタル信号処理デバイス(DSPD)、プログラマブル論理デバイス(PLD)、フィールドプログラマブルゲートアレイ(FPGA)、プロセッサ、コントローラ、マイクロコントローラ、マイクロプロセッサ、電子デバイス、本明細書で説明した機能を実行するように設計された他の電子ユニット、またはそれらの組合せ内で実装され得る。
【００８８】
ファームウェア実施態様および/またはソフトウェア実装形態の場合、方法は、本明細書で説明した機能を実行するモジュール(たとえば、手順、関数など)を用いて実装され得る。命令を有形に具現化するいずれの機械可読媒体も、本明細書で説明した方法を実装する際に使用され得る。たとえば、ソフトウェアコードは、メモリ内に記憶され、プロセッサユニットによって実行され得る。メモリは、プロセッサユニット内またはプロセッサユニットの外部に実装され得る。本明細書で使用する「メモリ」という用語は、任意のタイプの長期、短期、揮発性、不揮発性、または他のメモリを指し、いずれかの特定のメモリのタイプもしくはメモリの数、または媒体のタイプに限定されるものではない。有形の媒体は、ランダムアクセスメモリ、磁気ストレージ、光学記憶媒体などのような、機械可読媒体の1つまたは複数の物理的な物品を含む。
【００８９】
ファームウェアおよび/またはソフトウェアで実装される場合、機能は、コンピュータ可読媒体上に1つまたは複数の命令またはコードとして記憶されてもよい。例には、データ構造を用いて符号化されたコンピュータ可読媒体、およびコンピュータプログラムを用いて符号化されたコンピュータ可読媒体が含まれる。コンピュータ可読媒体は、物理的なコンピュータ記憶媒体を含む。記憶媒体は、コンピュータによってアクセス可能な任意の利用可能な媒体であり得る。限定ではなく例として、そのようなコンピュータ可読媒体は、RAM、ROM、EEPROM、CD-ROMまたは他の光ディスクストレージ、磁気ディスクストレージまたは他の磁気記憶デバイス、あるいは所望のプログラムコードを命令またはデータ構造の形式で記憶するために使用され得る、コンピュータによってアクセス可能な任意の他の媒体を備え得、本明細書で使用する場合、ディスク(disk)およびディスク(disc)は、コンパクトディスク(disc)(CD)、レーザーディスク(登録商標)(disc)、光ディスク(disc)、デジタル多用途ディスク(disc)(DVD)、およびBlu-ray(登録商標)ディスク(disc)を含み、ディスク(disk)は通常、データを磁気的に再生し、ディスク(disc)はデータをレーザーで光学的に再生する。上記の組合せもまた、コンピュータ可読媒体の範囲内に含まれるべきである。そのような媒体はまた、機械可読であり得る非一時的媒体の例を提供し、コンピュータは、そのような非一時的媒体から読み取ることができる機械の一例である。
【００９０】
本明細書で開示する技法の追加の実装形態は、以下を含む。
1A.  機密データを保護するための装置であって、
セキュアアセットマネージャによって管理されたセキュアメモリ領域内に、機密データ要素を記憶するための手段と、
そこから機密データ要素が発生するアプリケーションによって機密データ要素に関連付けられたポリシーに従って、機密データ要素を管理するための手段であって、ポリシーが、機密データ要素に関連付けられた推移ルールを定義する、手段と
を備える装置。
2A.  推移ルールが、機密データ要素がどの他のアプリケーションと共有され得るかを定義するルールを備える、1Aの装置。
3A.  機密データ要素を管理するための手段が、そこから機密データ要素が発生するアプリケーションからのポリシーを、機密データ要素から導出されたデータ要素に適用するための手段をさらに備える、1Aの装置。
4A.  機密データ要素を管理するための手段が、機密データ要素およびそこから導出されたいかなるデータ要素においても実行される各アクションを監査するための手段をさらに備える、1Aの装置。
5A.  機密データ要素およびそこから導出されたいかなるデータ要素においても実行される各アクションを監査するための手段が、セキュアアセットマネージャによって管理されたセキュアメモリ領域内に、監査情報を記憶するための手段を備える、4Aの装置。
6A.  機密データ要素を管理するための手段が、機密データ要素において動作を実行するための1つまたは複数の機能を提供するための手段をさらに備える、1Aの装置。
7A.  機密データ要素を管理するための手段が、セキュアメモリ領域内に、1つまたは複数の機能によって生成された中間データ値を記憶するための手段をさらに備える、6Aの装置。
8A.  機密データを保護するためのコンピュータ可読命令を記憶した非一時的コンピュータ可読媒体であって、コンピュータに、
セキュアアセットマネージャによって管理されたセキュアメモリ領域内に、機密データ要素を記憶すること、および
そこから機密データ要素が発生するアプリケーションによって機密データ要素に関連付けられたポリシーに従って、機密データ要素を管理することであって、ポリシーが、機密データ要素に関連付けられた推移ルールを定義する、こと
を行わせるように構成された命令を備える、非一時的コンピュータ可読媒体。
9A.  推移ルールが、機密データ要素がどの他のアプリケーションと共有され得るかを定義するルールを備える、8Aの非一時的コンピュータ可読媒体。
10A.  機密データ要素を管理することをコンピュータに行わせるように構成された命令が、そこから機密データ要素が発生するアプリケーションからのポリシーを、機密データ要素から導出されたデータ要素に適用することを、コンピュータに行わせるように構成された命令をさらに備える、8Aの非一時的コンピュータ可読媒体。
11A.  機密データ要素を管理することをコンピュータに行わせるように構成された命令が、機密データ要素およびそこから導出されたいかなるデータ要素においても実行される各アクションを監査することを、コンピュータに行わせるように構成された命令をさらに備える、8Aの非一時的コンピュータ可読媒体。
12A.  機密データ要素およびそこから導出されたいかなるデータ要素においても実行される各アクションを監査することを、コンピュータに行わせるように構成された命令が、セキュアアセットマネージャによって管理されたセキュアメモリ領域内に、監査情報を記憶することを、コンピュータに行わせるように構成された命令を備える、11Aの非一時的コンピュータ可読媒体。
13A.  機密データ要素を管理することをコンピュータに行わせるように構成された命令が、機密データ要素において動作を実行するための1つまたは複数の機能を提供することを、コンピュータに行わせるように構成された命令をさらに備える、8Aの非一時的コンピュータ可読媒体。
14A.  機密データ要素を管理することをコンピュータに行わせるように構成された命令が、セキュアメモリ領域内に、1つまたは複数の機能によって生成された中間データ値を記憶することを、コンピュータに行わせるように構成された命令をさらに備える、13Aの非一時的コンピュータ可読媒体。
15B.  セキュアアセットマネージャ準拠アプリケーションを生成するための装置であって、
データタグを用いて、アプリケーションのためのソースコードにタグ付けして、ソースコードに関連付けられたデータ要素が機密データ要素であることを示すための手段と、
機密データ要素に関連付けられた推移ルールを備える、ポリシーファイルにアクセスするための手段と、
ソースコードからアプリケーションのための1つまたは複数のオブジェクトファイルを生成するための手段と
を備える装置。
16B.  オブジェクトファイルが信頼できるプロバイダによって生成されたことを示すセキュリティ証明書を用いて、1つまたは複数のオブジェクトファイルに署名するための手段をさらに備える、15Bの装置。
17B.  データタグが、アプリケーションのランタイムに、データタグに関連付けられた機密データ要素に、セキュアアセットマネージャによってどのポリシーが適用されなければならないかを識別する、一意識別子を備える、15Bの装置。
18B.  アプリケーションのための1つまたは複数のオブジェクトファイルを生成するための手段が、データタグを認識するように、および、機密データ要素のインスタンスを管理するための機密データオブジェクトタイプを生成するように構成される、セキュアアセットマネージャ準拠コンパイラを用いて、ソースコードをコンパイルするための手段を備える、15Bの装置。
19B.  セキュアアセットマネージャを実装するターゲットデバイスのための実行可能ファイルを作成するために、オブジェクトファイルを、少なくとも1つの他のオブジェクトファイルまたはライブラリとリンクさせることをさらに含む、15Bの装置。
20B.  機密データ要素に関連付けられた推移ルールが、機密データ要素にアクセスし、機密データ要素において1つまたは複数の動作を実行することを許可される、信頼できるアプリケーションのセットを識別する、15Bの装置。
21B.  機密データ要素に関連付けられた推移ルールが、どのアプリケーションが機密データ要素からデータを導出し得るかを識別する、20Bの装置。
22B.  セキュアアセットマネージャ準拠アプリケーションを生成するためのコンピュータ可読命令を記憶した非一時的コンピュータ可読媒体であって、コンピュータに、
データタグを用いて、アプリケーションのためのソースコードにタグ付けして、ソースコードに関連付けられたデータ要素が機密データ要素であることを示すこと、
機密データ要素に関連付けられた推移ルールを備える、ポリシーファイルにアクセスすること、および
ソースコードからアプリケーションのための1つまたは複数のオブジェクトファイルを生成すること
を行わせるように構成された命令を備える、非一時的コンピュータ可読媒体。
23B.  オブジェクトファイルが信頼できるプロバイダによって生成されたことを示すセキュリティ証明書を用いて、1つまたは複数のオブジェクトファイルに署名することを、コンピュータに行わせるためのコードをさらに備える、22Bの非一時的コンピュータ可読媒体。
24B.  データタグが、アプリケーションのランタイムに、データタグに関連付けられた機密データ要素に、セキュアアセットマネージャによってどのポリシーが適用されなければならないかを識別する、一意識別子を備える、22Bの非一時的コンピュータ可読媒体。
25B.  アプリケーションのための1つまたは複数のオブジェクトファイルを生成することをコンピュータに行わせるための命令が、データタグを認識するように、および、機密データ要素のインスタンスを管理するための機密データオブジェクトタイプを生成するように構成される、セキュアアセットマネージャ準拠コンパイラを用いて、ソースコードをコンパイルすることを、コンピュータに行わせるための命令を備える、22Bの非一時的コンピュータ可読媒体。
26B.  セキュアアセットマネージャを実装するターゲットデバイスのための実行可能ファイルを作成するために、オブジェクトファイルを、少なくとも1つの他のオブジェクトファイルまたはライブラリとリンクさせることを、コンピュータに行わせるための命令をさらに備える、22Bの非一時的コンピュータ可読媒体。
27B.  機密データ要素に関連付けられた推移ルールが、機密データ要素にアクセスし、機密データ要素において1つまたは複数の動作を実行することを許可される、信頼できるアプリケーションのセットを識別する、22Bの非一時的コンピュータ可読媒体。
28B.  機密データ要素に関連付けられた推移ルールが、どのアプリケーションが機密データ要素からデータを導出し得るかを識別する、27Bの非一時的コンピュータ可読媒体。
【００９１】
本明細書で説明した一般的な原理は、本開示または特許請求の範囲の趣旨または範囲から逸脱することなく、他の実装形態に適用され得る。
【符号の説明】
【００９２】
110  ネットワーク
125  構築システム
175  ターゲットデバイス
190  信頼できるエンティティ
201、401  バス
210  汎用プロセッサ、プロセッサ
260  非一時的メモリ、メモリ
265  ネットワークインターフェース
362  データタグ付けモジュール
364  アプリケーション構築モジュール
366、566  データアクセスモジュール
368、568  ポリシー構成モジュール
410  プロセッサ
420  デジタル信号プロセッサ、DSP
425  ワイヤレスインターフェース
432、472  回線
434、474  アンテナ
460  非一時的メモリ、メモリ
465  GNSSインターフェース
470  I/Oインターフェース
562  セキュアアセットマネージャモジュール
605  ソースコード
610  タグ
615  SMAアウェアコンパイラ
620  ポリシー、ポリシー情報
625  オブジェクトファイル
635  展開
705  SAM、セキュアアセットマネージャ
710  ロガーモジュール
715  一時作業メモリ
720  永続作業メモリ
【図１】
2018523208.tif 000003
【図２】
2018523208.tif 000004
【図３】
2018523208.tif 000005
【図４】
2018523208.tif 000006
【図５】
2018523208.tif 000007
【図６】
2018523208.tif 000008
【図７】
2018523208.tif 000009
【図８】
2018523208.tif 000010
【図９】
2018523208.tif 000011
【図１０】
2018523208.tif 000012
【図１１】
2018523208.tif 000013
【手続補正書】
【提出日】平成29年12月12日(2017.12.12)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
機密データを保護するための方法であって、
セキュアアセットマネージャによって管理されたセキュアメモリ領域内に、機密データ要素を記憶するステップと、
そこから前記機密データ要素が発生するアプリケーションによって前記機密データ要素に関連付けられたポリシーに従って、前記機密データ要素を管理するステップであって、前記ポリシーが、前記機密データ要素に関連付けられた推移ルールを定義する、ステップとを含み、前記機密データ要素を管理するステップは、プロセッサが前記機密データ要素に関連付けられたデータを処理している間に、前記プロセッサに関連付けられたデータレジスタへのアクセスを防止するステップを含む、方法。
【請求項２】
前記推移ルールが、前記機密データ要素がどの他のアプリケーションと共有され得るかを定義するルールを備える、請求項1に記載の方法。
【請求項３】
前記機密データ要素を管理するステップが、そこから前記機密データ要素が発生する前記アプリケーションからの前記ポリシーを、前記機密データ要素から導出されたデータ要素に適用するステップをさらに含む、請求項1に記載の方法。
【請求項４】
前記機密データ要素を管理するステップが、前記機密データ要素およびそこから導出されたあらゆるデータ要素において実行される各アクションを監査するステップをさらに含む、請求項1に記載の方法。
【請求項５】
前記機密データ要素およびそこから導出されたあらゆるデータ要素において実行される各アクションを監査するステップが、前記セキュアアセットマネージャによって管理された前記セキュアメモリ領域内に、監査情報を記憶するステップを含む、請求項4に記載の方法。
【請求項６】
前記機密データ要素を管理するステップが、前記機密データ要素において動作を実行するための1つまたは複数の機能を提供するステップをさらに含む、請求項1に記載の方法。
【請求項７】
前記機密データ要素を管理するステップが、前記セキュアメモリ領域内に、前記1つまたは複数の機能によって生成された中間データ値を記憶するステップをさらに含む、請求項6に記載の方法。
【請求項８】
装置であって、
メモリと、
前記メモリに通信可能に結合されたプロセッサと
を備え、前記プロセッサが、
セキュアアセットマネージャによって管理された前記メモリのセキュアメモリ領域内に、機密データ要素を記憶すること、および
そこから前記機密データ要素が発生するアプリケーションによって前記機密データ要素に関連付けられたポリシーに従って、前記機密データ要素を管理することであって、前記ポリシーが、前記機密データ要素に関連付けられた推移ルールを定義する、ことを行うように構成され、前記プロセッサは、前記機密データ要素に関連付けられたデータを前記プロセッサが処理している間に、前記プロセッサに関連付けられたデータレジスタへのアクセスを防止するように構成される、装置。
【請求項９】
前記推移ルールが、前記機密データ要素がどの他のアプリケーションと共有され得るかを定義するルールを備える、請求項8に記載の装置。
【請求項１０】
前記機密データ要素を管理するように構成された前記プロセッサが、そこから前記機密データ要素が発生する前記アプリケーションからの前記ポリシーを、前記機密データ要素から導出されたデータ要素に適用するようにさらに構成される、請求項8に記載の装置。
【請求項１１】
前記機密データ要素を管理するように構成された前記プロセッサが、前記機密データ要素およびそこから導出されたあらゆるデータ要素において実行される各アクションを監査するようにさらに構成される、請求項8に記載の装置。
【請求項１２】
前記機密データ要素およびそこから導出されたあらゆるデータ要素においても実行される各アクションを監査するように構成された前記プロセッサが、前記セキュアアセットマネージャによって管理された前記セキュアメモリ領域内に、監査情報を記憶するようにさらに構成される、請求項11に記載の装置。
【請求項１３】
前記機密データ要素を管理するように構成された前記プロセッサが、前記機密データ要素において動作を実行するための1つまたは複数の機能を提供するようにさらに構成される、請求項8に記載の装置。
【請求項１４】
前記機密データ要素を管理するように構成された前記プロセッサが、前記セキュアメモリ領域内に、前記1つまたは複数の機能によって生成された中間データ値を記憶するようにさらに構成される、請求項13に記載の装置。
【請求項１５】
セキュアアセットマネージャ準拠アプリケーションを生成するための方法であって、
データタグを用いて、前記アプリケーションのためのソースコードにタグ付けして、前記ソースコードに関連付けられたデータ要素が機密データ要素であることを示すステップと、
前記機密データ要素に関連付けられた推移ルールを備える、ポリシーファイルを取り出すステップと、
前記メモリ内の前記ソースコードから前記アプリケーションのための1つまたは複数のオブジェクトファイルを生成するステップとを含み、前記1つまたは複数のオブジェクトファイルを生成するステップが、前記機密データ要素に関連付けられたポリシー情報に従って、前記データタグでタグ付けされた前記機密データ要素を管理するためのオブジェクトコードを生成するステップを含み、前記機密データ要素に関連付けられた前記ポリシー情報が、前記1つまたは複数のオブジェクトファイルのうちの少なくとも1つの中に含まれる、方法。
【請求項１６】
前記1つまたは複数のオブジェクトファイルが信頼できるプロバイダによって生成されたことを示すセキュリティ証明書を用いて、前記1つまたは複数のオブジェクトファイルに署名するステップをさらに含む、請求項15に記載の方法。
【請求項１７】
前記データタグが、前記アプリケーションのランタイムに、前記機密データ要素およびそこから導出されたあらゆるデータ要素に、セキュアアセットマネージャによってどのポリシーが適用されなければならないかを識別する、一意識別子を備える、請求項15に記載の方法。
【請求項１８】
前記アプリケーションのための前記1つまたは複数のオブジェクトファイルを生成するステップが、前記データタグを認識するように、および、前記機密データ要素のインスタンスを管理するための機密データオブジェクトタイプを生成するように構成される、セキュアアセットマネージャ準拠コンパイラを用いて、前記ソースコードをコンパイルするステップを含む、請求項15に記載の方法。
【請求項１９】
セキュアアセットマネージャを実装するターゲットデバイスのための実行可能ファイルを作成するために、前記1つまたは複数のオブジェクトファイルを、少なくとも1つの他のオブジェクトファイルまたはライブラリとリンクさせるステップをさらに含む、請求項15に記載の方法。
【請求項２０】
前記機密データ要素に関連付けられた前記推移ルールが、前記機密データ要素にアクセスし、前記機密データ要素において1つまたは複数の動作を実行することを許可される、信頼できるアプリケーションのセットを識別する、請求項15に記載の方法。
【請求項２１】
前記機密データ要素に関連付けられた前記推移ルールが、どのアプリケーションが前記機密データ要素からデータを導出し得るかを識別する、請求項20に記載の方法。
【請求項２２】
装置であって、
メモリと、
前記メモリに通信可能に結合されたプロセッサと
を備え、前記プロセッサが、
データタグを用いて、前記メモリ内に記憶されたアプリケーションのために記憶されたソースコードにタグ付けして、前記ソースコードに関連付けられたデータ要素が機密データ要素であることを示すこと、
前記機密データ要素に関連付けられた推移ルールを備える、ポリシーファイルを取り出すこと、および
前記メモリ内の前記ソースコードから前記アプリケーションのための1つまたは複数のオブジェクトファイルを生成することを行うように構成され、前記プロセッサは、前記機密データ要素に関連付けられたポリシー情報に従って、前記データタグでタグ付けされた前記機密データ要素を管理するためのオブジェクトコードを生成するように構成され、前記機密データ要素に関連付けられた前記ポリシー情報が、前記1つまたは複数のオブジェクトファイルのうちの少なくとも1つの中に含まれる、装置。
【請求項２３】
前記プロセッサが、前記1つまたは複数のオブジェクトファイルが信頼できるプロバイダによって生成されたことを示すセキュリティ証明書を用いて、前記1つまたは複数のオブジェクトファイルに署名するように構成される、請求項22に記載の装置。
【請求項２４】
前記データタグが、前記アプリケーションのランタイムに、前記データタグに関連付けられた前記機密データ要素に、セキュアアセットマネージャによってどのポリシーが適用されなければならないかを識別する、一意識別子を備える、請求項22に記載の装置。
【請求項２５】
前記アプリケーションのための前記1つまたは複数のオブジェクトファイルを生成するように構成された前記プロセッサが、前記データタグを認識するように、および、前記機密データ要素のインスタンスを管理するための機密データオブジェクトタイプを生成するように構成される、セキュアアセットマネージャ準拠コンパイラを用いて、前記ソースコードをコンパイルするようにさらに構成される、請求項22に記載の装置。
【請求項２６】
前記プロセッサが、セキュアアセットマネージャを実装するターゲットデバイスのための実行可能ファイルを作成するために、前記1つまたは複数のオブジェクトファイルを、少なくとも1つの他のオブジェクトファイルまたはライブラリとリンクさせるようにさらに構成される、請求項22に記載の装置。
【請求項２７】
前記機密データ要素に関連付けられた前記推移ルールが、前記機密データ要素にアクセスし、前記機密データ要素において1つまたは複数の動作を実行することを許可される、信頼できるアプリケーションのセットを識別する、請求項22に記載の装置。
【請求項２８】
前記機密データ要素に関連付けられた前記推移ルールが、どのアプリケーションが前記機密データ要素からデータを導出し得るかを識別する、請求項27に記載の装置。
【国際調査報告】
2018523208.tif 000014
2018523208.tif 000015