JP6263675B1 - 信頼できない装置におけるデータの保護 - Google Patents

信頼できない装置におけるデータの保護 Download PDF

Info

Publication number
JP6263675B1
JP6263675B1 JP2017535801A JP2017535801A JP6263675B1 JP 6263675 B1 JP6263675 B1 JP 6263675B1 JP 2017535801 A JP2017535801 A JP 2017535801A JP 2017535801 A JP2017535801 A JP 2017535801A JP 6263675 B1 JP6263675 B1 JP 6263675B1
Authority
JP
Japan
Prior art keywords
command
execution environment
software
queue
access
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2017535801A
Other languages
English (en)
Other versions
JP2018503910A (ja
Inventor
サード、 ロバート スコット チャプマン
サード、 ロバート スコット チャプマン
Original Assignee
センテオン エルエルシー
センテオン エルエルシー
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by センテオン エルエルシー, センテオン エルエルシー filed Critical センテオン エルエルシー
Application granted granted Critical
Publication of JP6263675B1 publication Critical patent/JP6263675B1/ja
Publication of JP2018503910A publication Critical patent/JP2018503910A/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/52Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
    • G06F21/53Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow by executing in a restricted environment, e.g. sandbox or secure virtual machine
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/604Tools and structures for managing or administering access control systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45587Isolation or security of virtual machine instances
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/03Indexing scheme relating to G06F21/50, monitoring users, programs or devices to maintain the integrity of platforms
    • G06F2221/032Protect output to user by software means
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2149Restricted operating environment

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • General Health & Medical Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • Databases & Information Systems (AREA)
  • Automation & Control Theory (AREA)
  • Storage Device Security (AREA)

Abstract

信頼できない装置においてデータを保護するための例示的な方法の1つは、第1のプロセスによって、コマンドキューにおけるコマンドを識別するステップであって、コマンドは第2のプロセスからであり且つセキュアデータに対するアクションを含むステップと、アクション及びユーザ認証情報に基づいてコマンドが許可されるかどうかを決定するステップと、コマンドが許可されないとの決定に応じて、第1のプロセスによって、コマンドキューからコマンドを除去するステップとを含む。

Description

本開示は、一般に、データセキュリティに関し、より詳細には、信頼できない装置においてデータを保護することに関する。
[関連出願の参照]
本出願は、2015年1月2日に提出され、“Securing Data On Untrusted Devices”と題された米国特許出願第14/588,779号への優先権を主張し、その全体は参照により本明細書に援用される。
機密情報が保存され得る状況でますます多くのラップトップ、タブレット及びスマートフォン等の携帯型電子装置が使用されている。例えば、ユーザはスマートフォンで会社のEメールを送受信する場合が有り、又はリモートネットワーク接続等を介してタブレット装置で企業内文書にアクセスし、これを編集して保存する場合が有る。更に、「個人所有機器の持ち込み(bring your device)」又はBYOD規定と一般に呼ばれている規定の下で仕事に使用される装置をユーザ自身が提供することがますます一般的になってきている。しかしながら、このようなBYOD規定の下で使用される装置は、従来は特定のセキュリティ機能が使用可能な会社の装置をユーザに提供していたIT(information technology)部門にセキュリティリスクを提示する。
信頼できない装置においてデータを保護するための様々な例が記載される。例示の方法の1つは、ソフトウェアアプリケーションからセキュアデータにアクセスするためのコマンドを識別するステップと、ソフトウェアアプリケーション及びユーザ認証情報に基づいてコマンドが許可されるかどうかを決定するステップと、コマンドが許可されないと決定することに応じて、コマンドキューからコマンドを除去するステップとを含む。
例示の装置の1つは、非一時的なコンピュータ可読媒体と、非一時的なコンピュータ可読媒体と通信するプロセッサとを備え、プロセッサは、第1のプロセスによって、他のプロセスからのコマンドを識別するためにコマンドキューを監視し、少なくとも1つのコマンドはセキュアデータに対するアクションを示し、少なくとも1つのコマンドが許可されるかどうかを決定するための1つ以上のアクセスルールにアクセスし、コマンドが許可されないとの決定に応じて、コマンドキューからコマンドを除去するように構成される。
例示の非一時的なコンピュータ可読媒体の1つは、プログラムコードを含み、プログラムコードは、プロセッサによって実行可能な監視ソフトウェアを含み、監視ソフトウェアは、他のプロセスからのコマンドを識別するためにコマンドキューを監視し、セキュアデータに対するアクションを示すコマンドを識別し、コマンドが許可されるかどうかを決定するための要求を送信し、且つコマンドが許可されないことを示す要求に応じて、コマンドキューからコマンドを除去するように構成される。
こうした例示は、本開示の範囲を限定又は定義するために言及されるのではなく、その理解を支援するための例示を提供するものである。詳細な説明において例示が検討されており、そこには更なる説明が提供されている。様々な例によってもたらされる利点は、本明細書を吟味することにより更に理解され得る。
本明細書に組み込まれてその一部を構成する添付の図面は、1つ以上の所定の例示を示しており、例示の説明と共に、所定の例示の原理及び実装を説明する役割を果たす。
信頼できない装置においてデータを保護するための例示のシステムを示す。 信頼できない装置においてデータを保護するための例示のコンピュータ装置を示す。 信頼できない装置においてデータを保護するための例示のシステムを示す。 信頼できない装置においてデータを保護するための例示の方法を示す。 信頼できない装置においてデータを保護するための例示の方法を示す。 信頼できない装置においてデータを保護するための例示のシステムを示す。 信頼できない装置においてデータを保護するためにプロセスIDを記録するための例示のデータ構造を示す。
本明細書の例示は信頼できない装置においてデータを保護することに関連して記載される。当業者であれば、以下の記載は例示目的であり、如何なる限定も意図していないことを理解するであろう。次に、添付の図面に示された例示的な実装が詳細に参照される。同じ参照記号が同じ又は同様の項目を参照するために図面及び以下の記載を通じて使用される。
明確のため、本明細書に記載の例示の定型的な特徴の全てが示され且つ記載されているわけではない。勿論、このような実際の実装の開発において、アプリケーション及びビジネス関連の制約の遵守等の多くの実装固有の決定が開発者固有の目的を達成するために行われなければならず、こうした固有の目的は実装ごとに又は開発者ごとに変化することが理解されるであろう。
[信頼できない装置においてデータを保護するための例示の方法]
信頼できない装置においてデータを保護するための方法の例示の1つにおいて、ユーザはタブレットコンピュータを使用して、リモート企業ドキュメントサーバに保存されているワードプロセッシングドキュメントにアクセスする。タブレットは、ドキュメントをダウンロードして、それをタブレット内のフラッシュメモリ装置におけるセキュアパーティションに保存する。次に、ユーザはタブレットにおいてワードプロセッシングアプリケーションを実行し、メニューを使用してファイル「開く」コマンドを実行し、ファイルナビゲーションダイアログウインドウを使用してセキュアパーティション内のダウンロードされたドキュメントまで進む。ドキュメントを見つけた後で、ユーザは、「OK」ボタンをクリックして、アプリケーションにドキュメントを開かせる。
ユーザが「OK」をクリックすると、アプリケーションは、開かれるドキュメントに関するファイルパス名及びファイル名を含むコマンドをアプリケーションプログラミングインターフェース(「API」)を介してオペレーティングシステム(「OS」)に発行する。例えば、アプリケーションは、OS.FileOpenと呼ばれるオペレーティングシステムAPIコマンドを実行し、“z:¥secure¥docs¥businessplan.doc”等のファイルに関するパス名及びファイル名をパラメータとして提供する。APIコマンドは、OSによってファイルを開くために実行されるエントリをコマンドキューに生成させる。この場合、OSはマルチタスクOSであるので、OS自体の複数の側面を含む、広範な異なるスレッド及びプロセスからコマンドを受信する。従って、OSは、後で実行するためにコマンドキュー内に受信したコマンドをキューに入れる。この場合、OSは、受信したファイルを「開く」コマンド及びパス名及びファイル名を実行のためにコマンドキューに入れる。
しかしながら、この例示では、ユーザのタブレットは、セキュアパーティション内に位置するデータに対して実行されようとするコマンドを監視するソフトウェアアプリケーションを実行している。監視ソフトウェアは、セキュアパーティション内のパス名を含む任意のコマンドを識別するためにOSのコマンドキュー内のイベントを監視する。この例示では、監視ソフトウェアは、“z:¥secure”を含むターゲットパス名を有するOSのコマンドキュー内のイベントをチェックする。従って、OSがパス名“z:¥secure¥docs”を有する「開く」コマンドに関するキューに対して新しいコマンドを生成するとき、監視ソフトウェアは、対応イベントを識別して、対応コマンド、この例示では、「開く」がこのファイルに関してソフトウェアアプリケーションに対して及びこのファイルに関してユーザに対して許可されたコマンドであるかどうかを決定する。この例示では、ユーザはファイルにアクセスする許可を有していないので、監視ソフトウェアはそれが実行される前にコマンドキューから対応するイベントを削除する。更に、試行されたコマンドが承認されなかったことの通知を生成してユーザに表示し、試行された「開く」コマンド、ドキュメントのパス名及びファイル名、アクションを行おうとしたユーザ、コマンドが実行を許可されなかったことの試行の結果を示すエントリを生成して監視ソフトウェアの監査ログに記憶する。
ユーザは、間違ったドキュメントを選択したことに気付いて、第2のドキュメント“doc2.doc”をセキュアパーティションにダウンロードする。次に、ユーザは、ワードプロセッシングアプリケーションを使用して第2のドキュメントを開けようとする。ワードプロセッシングアプリケーションは、再びOSのAPIを呼び出して、パス名及びファイル名“z:¥secure¥docs¥doc2.doc”を「開く」コマンドに渡す。OSは、識別されたファイルを開くためにコマンドキューにエントリを生成する。再び、監視ソフトウェアは、セキュアパーティションに対するパス名“z:¥secure”に基づいてエントリを識別して、ソフトウェアアプリケーション及びユーザがこのドキュメントを開くことを許可されているかどうかを決定する。この場合、ユーザはワードプロセッシングアプリケーションでファイルを開くことを承認されているので、監視ソフトウェアはコマンドキューからエントリを削除せず、OSがコマンドを実行することを許可する。次に、監視ソフトウェアは、ドキュメントを開いてプロセスID、ドキュメントに関する情報(例えば、ファイル名及びパス)、並びにドキュメント及びユーザに関係付けられるアクセスルールへの参照を含むレコードをデータ構造に記憶するソフトウェアアプリケーションのインスタンスに対するプロセス識別子(「プロセスID」)を取得する。更に、監視ソフトウェアは、ユーザの名前、ファイル名、及び実行されたコマンド、この場合は「開く」を含むファイルを開くことに成功したことを示すエントリを監査ログに生成する。次に、ソフトウェアアプリケーションは、ドキュメントを開いて、それをユーザに提示する。
次に、ユーザは、タブレットに挿入されているリムーバブルフラッシュメモリ装置にドキュメントを保存したいと判断して、ワードプロセッシングアプリケーション内のメニューシステムからコマンド「名前を付けて保存」を選択して、「名前を付けて保存」コマンドの宛先としてリムーバブルフラッシュメモリ装置を選択する。ワードプロセッシングアプリケーションは、API関数OS.FileSaveAsを呼び出して、ドキュメントに対する宛先パス名及びファイル名を提供し、OSは、「名前を付けて保存」コマンドに対するエントリをコマンドキューに生成する。
この場合、監視ソフトウェアは、コマンドキューにおいてソフトウェアアプリケーションのインスタンスのプロセスIDを識別し且つプロセスIDに対応するコマンドを解析することにより、ドキュメントの「名前を付けて保存」の試行を検出する。この場合、監視ソフトウェアは、ユーザ及びドキュメントに対する対応するアクセスルールを識別するためにデータ構造を解析する。次に、監視ソフトウェアは、ユーザがセキュアな場所の外側の場所に対して「名前を付けて保存」操作を行うのに十分な許可を有しているかどうかを決定するためにアクセスルールにアクセスする。この場合、監視ソフトウェアは、ユーザが十分な許可を有していないことを決定して、コマンドキューから「名前を付けて保存」コマンドに対応するエントリを削除する。前述同様に、監視ソフトウェアは、試行された操作が許可されなかったことの通知を生成してユーザに表示し、試行されたコマンド、パス名及びファイル名、並びにユーザの名前を示すエントリを監査ログに生成する。
この例示では、監視ソフトウェアは、ドキュメントへの不正アクセス又はセキュアパーティション外へのセキュアデータの不正な移動の何れかを許可し得る他のタイプのコマンドも監視することが可能である。例えば、監視ソフトウェアは、「保存」、「名前を付けて保存」、「コピー」、「移動」、「共有」及び「名前の変更」等のファイルレベルの操作、「印刷」、「切り取り」、「コピー」、「貼り付け」等のコンテンツレベルの操作、Eメール操作(例えば、Eメールにセキュアファイルを添付すること)等の他のアプリケーション固有の操作、並びにスクリーンショット又はスクリーン記録機能等の他のアプリケーション又はオペレーティングシステムによって実行され得る又は「読み出し専用」、「読み書き」を反映するためのファイル許可又は他のタイプの許可を変更する他の操作を検出し且つ妨げることが可能である。信頼できない装置におけるデータの保護の例は、個別のソフトウェアアプリケーションの動作に影響を与えるアプリケーション「ラッパー」を提供する必要なく信頼できない装置におけるデータ保護を含み得る。その代わり、様々な例は、装置上のソフトウェアアプリケーション及びオペレーティングシステムと共にユーザにもセキュアデータに対する透過的なセキュリティを効果的に提供し得る。
上記の例示は異なるソフトウェアアプリケーションの使用を検討している。しかしながら、この詳細な説明の他の部分は一般的な用語「プロセス」を参照してもよい。ソフトウェアアプリケーションは、コンピュータシステムにおけるプロセスを実行してもよい。例えば、ワードプロセッシングソフトウェアアプリケーションが立ち上げられるとき、実行中のワードプロセッシングソフトウェアアプリケーションはプロセスと呼ばれてもよい。このような例では、明確のため、プロセスは「第1の」プロセス及び「第2の」プロセスと呼ばれてもよい。ラベル「第1の」及び「第2の(及び「第3の」等)は、順番を示すことを意図しているのではなく、単に異なるプロセスを互いに区別することを意図している。例えば、複数の異なるソフトウェアアプリケーションがマルチタスクオペレーティングシステム等の文脈内でコンピュータシステム上で実質的に同時に実行されている場合、各ソフトウェアアプリケーションは別個のプロセスであってもよく、このようなラベルを使用して参照されていてもよい。例えば、先に検討された監視ソフトウェアは、ワードプロセッシングソフトウェアアプリケーションプロセスとは別個の異なるプロセスとして実行され、従って、監視ソフトウェアは「第1のプロセス」と呼ばれ、ワードプロセッシングソフトウェアアプリケーションは「第2のプロセス」と呼ばれてもよい。更に、一部のプロセスは、互いから部分的に又は完全に独立して動作し得る1つ以上の実行「スレッド」を含んでもよい。このようなスレッドは、典型的には、単一のプロセスの一部であるが、プロセスによって行われる異なるタスクを表してもよい。全体におけるプロセス及びスレッドという用語の参照は、一般に、こうした概念を参照し、又は当業者に一般に理解される概念を参照する。
信頼できない装置におけるデータの保護の他の例は、以下により詳細に記載される。
次に図1を参照すると、図1は信頼できない装置においてデータを保護するための例示のシステム100を示す。例示のシステム100は、ネットワーク120を介してドキュメントサーバ130及び管理サーバ132と通信する携帯型コンピュータ装置110及びデスクトップコンピュータ112を含む。ドキュメントサーバ130はデータストア140と通信しており、コンピュータ装置110及びデスクトップコンピュータ112に利用可能なファイルを保持するように構成される。管理サーバ132は、アクセスポリシーを確立して装置110、112に提供するように構成される。ネットワーク120は、インターネット、クラウド型ネットワーク、イントラネット、ローカルエリアネットワーク、無線ローカルエリアネットワーク、ワイドエリアネットワーク、マイクロ波ネットワーク、衛星ネットワーク、総合デジタル通信網、セルラネットワーク、及びこれらの若しくは他のタイプのネットワークの組み合わせ等の任意の適切なネットワークであてもよい。
コンピュータ装置110及びデスクトップコンピュータ112の各々は、各装置110、112におけるデータを保護するように構成される監視ソフトウェアをインストールしており且つ実行する。監視ソフトウェアは、構成パラメータと通信してそれを受信し、サーバ130からセキュアデータにアクセスするための認証情報にアクセスする。更に、装置110、112の各々は、セキュアデータを記憶するように確立された記憶場所を有するように構成される。この例示のシステム100において、装置110、112の各々は、セキュアデータを記憶するように確立されたファイルシステムパーティションを有するコンピュータ可読媒体を有する。ファイルシステムパーティションは、コンピュータ可読媒体に対するパーティションテーブルにおいて別個に確立されるように構成され、ファイルシステムから独立してマウント及びアンマウントされてもよい。一部の例では、セキュアパーティションは、異なる物理媒体に存在してもよい。
サーバ130は、企業ドキュメントシステム等のドキュメントレポジトリを管理するように構成される。サーバ130は、承認ユーザがドキュメントレポジトリにログインして、ドキュメントレポジトリ内に保存された1つ以上のドキュメントにアクセスすることを可能にする。ドキュメントレポジトリ内のドキュメントはデータストア140に保存され、コンピュータ装置110又はデスクトップコンピュータ112等の装置から受信した要求に応答してサーバ130によってアクセスされてもよい。
管理サーバ132は、ドキュメントレポジトリの承認ユーザに関するセキュリティポリシー情報を保持する。例えば、管理サーバ132は、ユーザごとに又はユーザの1つ以上のグループに対して、どのファイルにユーザがアクセスし得るか及び各ファイル又はファイルのグループに関してユーザがどの操作を行うことが許可されているかを示す構成設定を保持する。管理サーバ132は、ドキュメントレポジトリに接続しようとするときに各装置におけるセキュリティポリシー情報を監査して、必要であればセキュリティポリシー情報を更新する。更に、管理サーバ132は、装置110、112におけるセキュア記憶場所に対するセキュリティ鍵情報を生成する。これは以下でより詳細に記載される。
次に図2を参照すると、図2は信頼できない装置においてデータを保護するための例示のコンピュータ装置200を示す。図2に示された例示的なコンピュータ装置200はタブレット装置であるが、一部の例では、コンピュータ装置200はスマートフォン、デスクトップコンピュータ、ラップトップコンピュータ又は他の適切なコンピュータ装置であってもよい。例示的なコンピュータ装置200は、タッチセンサ式ディスプレイ210、電子プロセッサ230、メモリ240、記憶媒体250、ネットワークインターフェース260及び通信バス270を備える。プロセッサ230は、メモリ240にアクセスし、メモリ240内に記憶されたプログラムコードを実行し、メモリ240にデータを読み書きするように構成される。また、プロセッサ230は、メモリ240にデータをロードするために記憶媒体250にアクセスし、又はメモリから記憶媒体250にデータを記憶するように構成される。プロセッサ230は、図1に示されたネットワーク120等の1つ以上の通信ネットワークにアクセスして、(複数の)ネットワークに接続される他の装置と通信するためにネットワークインターフェース260を使用するように更に構成される。
記憶媒体250は、1つ以上のファイルシステム及び1つ以上のデータファイルを保持するように構成される。適切なタイプの記憶媒体の例は、この詳細な説明において後でより詳細に記載される。しかしながら、この例示では、記憶媒体250は、2つのファイルシステムパーティションを有するように構成されたフラッシュメモリ装置を含む。第1のパーティション(「プライマリパーティション」)が装置200のオペレーティングシステム及び他のデータファイルを保存するように構成され、第2のパーティション(「セキュアパーティション」)がドキュメントレポジトリから受信したデータファイルを保存するように構成される。
この例示では、装置200は、最初にブートしてオペレーティングシステムのファイルシステムの一部としてプライマリパーティションをマウントする。更に、装置200は、ブートしている間、以下でより詳細に記載される監視ソフトウェアを実行する。装置200は、ブートされると、オペレーティングシステムと、ワードプロセッシング、スプレッドシート、ウェブブラウジング及び他のアプリケーション等の様々なソフトウェアアプリケーションと、ユーザデータファイルを含む様々なデータファイルとを保存するプライマリパーティションを使用して動作する。この例示では、監視ソフトウェアは、セキュアパーティションをマウント及びアンマウントするように構成される。
この例示及びこの詳細な説明の他の場所において用語「マウント」が使用されているが、所定のオペレーティングシステム内の利用可能な「マウント」ユーティリティの使用を意味することを意図していないことに留意されたい。 その代わり、用語「マウント」及び関連用語「アンマウント」は、この明細書全体にわたってファイルシステムを取り付ける又は取り外すプロセスに関する一般用語として使用されている。用語「マウント」、「取り付け」、「アンマウント」及び「取り外し」は、このプロセスを参照するために交換可能に使用されてもよい。
次に図3を参照すると、図3は信頼できない装置においてデータを保護するためのシステム300の例示的な構造図形を示す。この例示では、図形は、図2に示されたコンピュータ装置200等の例示的なコンピュータ装置の構成を表す。この例は図2のコンピュータ装置200に関して記載されているが、任意の適切なコンピュータ装置が使用されてもよい。この例示では、ソフトウェアアプリケーション310、312は、セキュアパーティション335に保存されたデータファイルにアクセスし且つ操作しようとする。
システム300は、コンピュータ装置内で実行される信頼できない装置におけるデータを保護するためのサブシステム340を含む。システム300は、サブシステム340と共に1つ以上のソフトウェアアプリケーション310、312、オペレーティングシステム330及びセキュアパーティション360を含む。サブシステム340は、監視ソフトウェア342、アクセスルールデータストア344、監査ログ345、セキュリティソフトウェア346、及びファイル同期ソフトウェア348を含む。
ソフトウェアアプリケーション310、312は、コンピュータ装置200によって実行され、コンピュータ装置200に保存されたデータファイルにアクセスするように構成される。例えば、ソフトウェアアプリケーション310がワードプロセッシングアプリケーションである場合、ソフトウェアアプリケーション310はユーザがコンピュータ装置におけるドキュメントを作成、修正及び保存することを可能にする。そうするために、ソフトウェアアプリケーション310は、記憶媒体におけるデータファイルを作成、修正及び保存するためにOSのAPI関数等を呼び出すためにオペレーティングシステム330と相互作用する。ソフトウェアアプリケーション310がOSのAPI関数を呼び出すと、関数は、オペレーティングシステムの「実行」ブロック334として示されるオペレーティングシステムによって後で実行するためのOSのコマンドキュー332にコマンドを挿入する。実行ブロック334がコマンドを実行すると、ファイルを開く又はファイルへの変更を保存する等、データファイルを操作するために記憶媒体にアクセスしてもよい。
サブシステム340は、セキュアパーティション360へのアクセスを管理するためにオペレーティングシステムと並行して動作する。この例示では、上記のように、コンピュータ装置が最初に電力投入されるか又はブートされると、コンピュータ装置200は、オペレーティングシステム330を立ち上げると共に、監視ソフトウェア342及びセキュリティソフトウェア346を含むサブシステム340も立ち上げる。この例示では、セキュリティソフトウェア346は、まだ存在してい場合、セキュアパーティション360を作成するように構成される。一例では、セキュリティソフトウェア346は、セキュアパーティション360のために記憶装置に関するパーティションテーブルに新しいエントリを生成し、暗号化パーティションを生成する。
セキュアパーティション360が既に存在している場合、セキュリティソフトウェアは、オペレーティングシステム330にアクセスできるようにセキュアパーティション360にアクセスしてマウントする。
この例示の検討はオペレーティングシステムに言及しているが、他の例示はオペレーティングシステム以外のアプリケーション環境を利用してもよい。一例は、基本となるオペレーティングシステムの上で実行されるアプリケーションサーバ環境を使用する。このような例では、監視ソフトウェア342は、その代わりに、オペレーティングシステムではなくアプリケーションサーバ環境に対してコマンドキューを監視してもよい。一部の例では、監視ソフトウェア342は、アプリケーションサーバ環境に関するコマンドキュー及びオペレーティングシステムに関するコマンドキューを監視してもよい。
コンピュータシステムで実行される1つ以上の仮想マシン等、実行環境の更なるレイヤ化又は実行環境の並列実行も考えられる。このような例では、各仮想マシンは、異なるオペレーティングシステム及び監視ソフトウェアを実行してもよい。一部の例では、監視ソフトウェアは、基本となるオペレーティングシステムソフトウェアと仮想マシンの相互作用の各々を監視してもよい。
この例示では、セキュアパーティション360は、コンピュータ装置200内の記憶媒体250で確立される専用パーティションである。セキュアパーティション360は、ディスクパーティション化機能、例えば、「fdisk」を使用して記憶媒体に対して最初に構築されている。更に、セキュリティシステム346は、AES(Advanced Encryption Standard)又はTwofish機構等の鍵型暗号化を使用してセキュアパーティションを暗号化するように構成される。一部の例では、同じデータに連続して適用されるAES、Twofish及びSerpent機構等の複数の暗号化機構がカスケード式に利用されてもよい。従って、セキュアパーティション360にデータが保存される場合、それは暗号化フォーマットで保存される。後で、ソフトウェアアプリケーションが暗号化ファイルへのアクセスを要求するとき、暗号化バージョンのファイルがソフトウェアアプリケーションに提供される。
セキュリティソフトウェア346は、セキュアパーティション360上の暗号化データへのアクセスを制御し、アクセスルールデータストア344内のルールを保持及び更新するように構成される。この例示では、装置200がブートした後で、ユーザはユーザ名及びパスワード等の認証情報をセキュリティソフトウェア346に提供することを求められる。生成されたアクセスコードを使用する2要素認証等の他のタイプの認証が使用されてもよい。ユーザが許容できる認証情報を提供した後で、セキュリティソフトウェア346はセキュアパーティション360をマウントして、セキュアパーティション360上のデータにアクセスするために暗号鍵を取得するためにリモートサーバ350へのアクセスを試行する。例えば、コンピュータ装置200は、会社のドキュメントレポジトリ内のファイルにアクセスするために会社の従業員によって使用されるラップトップであってもよい。
次に、セキュリティソフトウェア346は、暗号鍵を取得するために会社のサーバ350へのアクセスを試行する。この例示では、セキュリティソフトウェア346が会社のサーバ350と接続すると、セキュリティソフトウェア346はユーザのアクセス認証情報をサーバ350に提供する。次に、サーバ350は、セキュリティソフトウェア346によって使用される暗号鍵にアクセスするか又は生成する。一例では、サーバ350は、504ビット鍵を生成し、鍵をハッシュし、ハッシュされた鍵をコンピュータ装置200に送信する。セキュリティソフトウェア346がサーバ350にアクセスできない場合、それは既存の有効な暗号鍵を有するかどうかを決定してもよい。例えば、暗号鍵は、セキュリティソフトウェア346によって無効にされる期限が切れる前に、48時間等の所定期間の間使用可能であってもよい。
この例示では、セキュリティソフトウェア346は、無効にする前に最大で48時間まで暗号鍵を保持するように構成される。しかしながら、更に、セキュリティソフトウェアは4時間ごとにサーバ350から新しい鍵を要求するようにも構成される。新しい鍵を取得すると、セキュアパーティションは新しい鍵を使用して再暗号化され、これは結果として古い鍵を無効にする。48期間を再開することに加えて、4時間ごとに新しい鍵を使用する効果は、不正なエンティティによって危険に晒された以前の鍵を有していた装置を再びセキュアにするのに役立ち得るということである。しかし、コンピュータ装置200がサーバ350と通信したままである限り、そして承認されたユーザがセキュリティソフトウェアにログインされている限り、セキュアパーティション360に保存されている(ユーザに承認された)データファイルに無期限のアクセスを有するであろう。しかしながら、コンピュータ装置200がサーバ350から切断されると、ユーザはデータファイルへのアクセスを失う前に最大で48時間までセキュアパーティションにアクセスし続けてもよい。こうした期間は単なる例として提供されているのであって、異なる鍵リフレッシュ及び鍵満了期間が確立され得ることも明白である。一部の例では、異なるタイプのファイルは、異なる鍵リフレッシュ又は鍵満了期間を有してもよい。例えば、高機密ドキュメントは、低機密ドキュメントよりも短い鍵満了期間を有してもよい。一部の例では、各ドキュメントは、それ自体の関連する鍵リフレッシュ又は満了期間を有してもよい。
更に、セキュリティソフトウェア346はユーザに対するアクセスルールの更新をチェックし、何か見つかれば、アクセスルールをダウンロードしてアクセスルールデータストア344に保存する。アクセスルールは、ユーザ固有、装置固有、ファイル固有、アプリケーション固有又はデータファイルへのアクセスを制御するように定義され得る他のタイプのルールを含んでもよい。例えば、ユーザは会社のファイルレポジトリ内で利用可能な所定のファイルへのアクセスのみを有していてもよく、一組のユーザルールは、ユーザがセキュアパーティション360に保存されたデータファイルを開くか又は他のやり方でアクセスするための許可を有しているかどうかを示す情報を含んでもよい。従って、ユーザがデータファイルを開こうとするとき、監視ソフトウェア342は、アクセスルール344をチェックし、ユーザ及びデータファイルに関係付けられるルールを識別し、コマンドキューからコマンドを削除することによりファイルを「開く」コマンドが実行されることを防ぐ。また、この例示では、監視ソフトウェア342は、許可されなかったコマンド及びコマンドを試行したユーザ、試行の日時、ファイル名又はパス等の他の関連情報を示すために監査ログ345にエントリを追加する。監査ログ345は、サーバ350に送信されてもよく、又はサーバ350によって要求されてもよい。例えば、監査ログ345は、サーバ350に毎日送信されてもよい。一部の例では、監査ログ345はサーバ350に保存されてもよく、コンピュータ装置200はログ345へのエントリのためにサーバ350に監査ログメッセージを送信してもよい。
一部の例では、アクセスルールは、データストア内のレコードとして保存されてもよい。例えば、アクセスルールに対する適切な例示のレコードは、以下の情報を含んでもよい。
Figure 0006263675
このようなアクセスルールは、“jsmith”というユーザ、及び“docs”ディレクトリにおけるセキュアパーティション(“/secure”)内に保存されている“document.doc”という識別ファイルに関連する。この例示では、ルールは、このドキュメント及びこのユーザに許可されている「コピー」アクションに特有のものである。従って、監視ソフトウェアが“document.doc”ファイル及び“jsmith”に関係付けられるプロセスIDによって試行されている「コピー」アクションを検出すると、システムは、アクセスルールにアクセスし、ユーザ、ファイル及びアクションに関係付けられるルールを見つけ、且つルールに従ってアクションを許可するべきかどうかを決定する。
上記のレコードは、例示として提供されているのであって、このようなレコード(又は複数のレコード)の全ての変形を示したり又は異なる態様によるレコード内に保存される情報の網羅的な又は必要なリストであることを意図していない。
1つ以上のレコードは、サーバ350から取得されてもよく、又はサーバ350から取得された情報に基づいてコンピュータ装置200において作成され且つ保存されてもよい。
この例示では、サブシステム340はファイル同期ソフトウェア348を含む。ファイル同期ソフトウェア348は、図3においてドキュメント記憶装置352として示されたドキュメントレポジトリ(又は複数のレポジトリ)から1つ以上のデータファイルを取得し、それに変更された又は新しいファイルをプッシュするように構成される。例えば、会社は、ドキュメントを編集し、印刷し、Eメールし又は他のやり方で使用するために、ユーザが新しいドキュメントを作成し且つレポジトリの中に又はレポジトリからドキュメントをチェックすることを可能にする企業ドキュメントレポジトリを保持してもよい。ユーザがリモートでドキュメントレポジトリに利用可能なドキュメントにアクセスできるようにするために、ドキュメントレポジトリは、仮想プライベートネットワーク(“VPN”)等を介してドキュメントレポジトリに直接アクセスを提供してもよい。しかしながら、本開示の例によれば、ファイル同期ソフトウェア348は、ドキュメント記憶装置352からドキュメントを取得して、コンピュータ装置上のセキュアパーティション360内のドキュメントのローカルコピーを保存してもよい。更に、ファイル同期ソフトウェア348は、新しい又は修正されたドキュメントをドキュメント記憶装置352にプッシュしてもよい。一部の例では、ファイル同期ソフトウェア348又はサブシステム340の他の態様は、ドキュメント記憶装置348に関してチェックイン/チェックアウト機能を提供してもよく、これは別のユーザが同じドキュメントを同時に開いて編集せずにユーザがドキュメントを開いて編集することを可能にしてもよい。
ファイル同期ソフトウェア348は、ドキュメント記憶装置352から1つ以上の組のドキュメントを取得してもよい。次に、ファイル同期ソフトウェア348は、1つ以上の組のドキュメントを解析して、セキュアパーティションに存在しないドキュメントを識別する。何らかの見つからないドキュメントを識別した後で、ファイル同期ソフトウェア348は、見つからないドキュメントのコピーを取得して、セキュアパーティション360内に保存する。一部の例では、ファイル同期ソフトウェア348は、セキュアパーティション360に保存されたドキュメントがドキュメント記憶装置352に記憶されたバージョンとは異なるかどうかを決定する。
例えば、ファイル同期ソフトウェア348は、セキュアパーティション上の1つ以上のドキュメントのハッシュ値を生成してドキュメント記憶装置352において対応するドキュメントと比較してもよい。セキュアパーティション上のファイルのハッシュ値がドキュメント記憶装置352におけるバージョンとは異なる場合、ファイル同期ソフトウェア348は、セキュアパーティションからドキュメント記憶装置352にドキュメントのコピーをプッシュするかどうか、又はドキュメント記憶装置352からドキュメントのコピーを取得してセキュアパーティション360上のコピーを置換するかどうかを決定する。このような決定を行うために、ファイル同期ソフトウェア348は、セキュアパーティション上のファイルの最も最近の修正の日付又は時間をドキュメント記憶装置352内のファイルの最も最近の修正の日付又は時間と比較してもよい。次に、ファイル同期ソフトウェア348は、最も最近修正されたバージョンを他の場所にコピーしてもよい(例えば、最近修正されたバージョンをセキュアパーティションからドキュメント記憶装置にコピーする)。一部の例では、上記のように、ファイル同期ソフトウェア348(又はサブシステム340)は、ドキュメント記憶装置352からドキュメントをチェックアウトするように構成されてもよい。後でドキュメントにチェックインするとき、ファイル同期ソフトウェア348は、ドキュメント記憶装置352における当時存在したコピーを置換するためにそのバージョンをセキュアパーティションからドキュメント記憶装置352にコピーしてもよい。
しかしながら、一部の例では、サブシステム340は、ドキュメント記憶装置352からドキュメントをチェックアウトできなくてもよい。従って、別のユーザがドキュメント記憶装置における同じドキュメントのコピーを編集するのと同時にコンピュータ装置のユーザ200がセキュアパーティション360上のドキュメントのコピーを編集することが可能である。このような場合、ファイル同期ソフトウェア348は、2つのバージョンのドキュメントが「フォーク(fork)」したことを決定してもよく、従って、ファイル同期ソフトウェア348は、ドキュメント記憶装置352における新しいドキュメントとしてセキュアパーティション360からドキュメント記憶装置にファイルをコピーしてもよい。「フォーク」することは、単に、同じソースドキュメントから2つ(以上)の異なるドキュメントを生成することを意味する。一部の例では、ファイル同期ソフトウェア348又はサブシステム340は、新しい「フォーク」したドキュメントが元のドキュメントに関連することの指示を記憶してもよい。
次に図4を参照すると、図4は信頼できない装置においてデータを保護するための例示の方法400を示す。図4の方法400は、図2に示されたコンピュータ装置200及び図3に示された例示的なシステム300に関して記載される。しかしながら、例示的な方法は、このようなコンピュータ装置200又はこのような例示的なシステム300に限定されない。 むしろ、任意の適切な装置又はシステムが利用されてもよい。この例示では、方法400はブロック410で開始する。
ブロック410において、セキュリティソフトウェア346は、セキュアパーティション360に対する暗号鍵を取得する。セキュアパーティションが存在しない場合、セキュリティソフトウェア346は、セキュアパーティション360として使用される新しいパーティションを記憶媒体250上に作成する。一部の態様では、暗号鍵を取得するために、セキュリティソフトウェア346は、既知の鍵サーバのネットワークアドレスに関係付けられるレコードにアクセスして、暗号鍵に対する要求を1つ以上の鍵サーバに送信する。一部の態様では、セキュリティソフトウェア346は、暗号鍵に対する特定の要求ではなく、コンピュータ装置200が動作していることを示すために、サーバ350等のサーバに「ハートビート」又は他のメッセージを送信してもよい。コンピュータ装置200からの要求に応答して、又は異なるメッセージ又はデータを受信することに応答して、鍵サーバ(又は他のサーバ)は、暗号鍵を生成して装置に送信する。一部の態様では、鍵サーバは、暗号鍵に関する、有効生存期間(time−to−live)又は有効期限若しくは時間を示す構成情報も提供する。一部の態様では、コンピュータ装置200は、1つ以上の暗号鍵と共に使用される有効生存期間パラメータを事前設定されていてもよく、又はユーザ若しくは管理者から有効生存期間パラメータを取得してもよい。
一部の態様では、複数のユーザに関係付けられるファイルは、各ユーザに関係付けられるユーザ自身の暗号鍵を有してもよく、上記のようにリフレッシュされてもよい。例えば、セキュリティソフトウェア348は、ユーザごとに暗号鍵を保持してもよく、ユーザの1人以上の集合又はグループに対する暗号鍵を保持してもよい。一部の例では、このような集合又はグループは、複数のユーザが同じ1つの又は複数のファイルへのアクセスを取得するときに動的に決定されてもよい。2人以上のユーザが同じファイルにアクセスし得ることを決定すること等により、新しい集合又はグループが確立されると、セキュリティソフトウェア348は、集合に対する暗号鍵を要求し、以下でより詳細に検討されるように、新しい鍵に対する1つ以上のタイマ又は有効時間を別々に保持してもよい。
一部の態様では、サーバ350は、暗号鍵をコンピュータ装置200に送信する前に、SHA−1、SHA−2又はSHA−3等の暗号学的ハッシュ関数を使用して暗号鍵を暗号化する。
暗号鍵を取得した後で、方法400はブロック420に進む。
ブロック420において、セキュリティソフトウェア348は、取得した暗号鍵を使用してセキュアパーティションを暗号化する。この例示では、セキュリティソフトウェア348は、AES、TwoFish及びSerpent機構を含むカスケード式暗号化機構を利用するために暗号鍵を使用し、XTS(XEX(XOR−encrypt−XOR)−based tweaked−codebook mode with ciphertext stealing)方式を使用する。他の例では、暗号鍵は、セキュアパーティションを暗号化するための他の適切な暗号方式が使用されてもよい。一部の例では、コンピュータ装置200は、マイクロソフトのEncrypting File System等の1つ以上の暗号化ファイルシステムをサポートし且つ使用するように構成されるOSを利用してもよい。 更に、セキュアパーティションがマウントされていない場合、セキュリティソフトウェア346は、セキュアパーティションをコンピュータ装置のファイルシステムにマウントしてもよく、又は後の時間になるまでマウントするのを延期してもよい。
一部の例では、セキュリティソフトウェア346は、異なる暗号鍵を使用してセキュアパーティション360の異なる部分の暗号化を生成してもよい。例えば、複数の異なるユーザが異なる時間にコンピュータ装置にアクセスし得る場合、セキュリティソフトウェア346は、暗号鍵を使用してアクティブユーザのファイルを暗号化してもよいが、そのカギを使用して他のユーザのファイルを暗号化しなくてもよい。従って、各ユーザは、同時にアクティブになり得る又は互いから独立して満了し得る自身の暗号鍵(又は複数の暗号鍵)を有してもよく、各ユーザのファイルはユーザ自身の暗号鍵を使用して暗号化されてもよい。
例えば、2人のユーザが、コンピュータ装置200にアクセスしてもよい。コンピュータ装置200は、ユーザがファイルにアクセスするためにセキュアパーティション360上の異なるサブディレクトリ構造に各ユーザを割り当ててもよい。第1のユーザがコンピュータ装置200にログインすると、コンピュータ装置200は、暗号鍵を取得して、新しい暗号鍵を使用して第1のユーザのファイルを暗号化するが、セキュアパーティション上の他のファイルは処理しない。第1のユーザが仕事をするとき、暗号鍵は上記のように周期的にリフレッシュされてもよい。後で、第1のユーザがログオフすると、セキュリティソフトウェア348は、それが満了するまでユーザの暗号鍵を保持する。そうしている間に第2のユーザがログインする。コンピュータ装置200は、第2の暗号鍵を取得して、第2のユーザのファイルを暗号化する。この場合も先と同様に、第2のユーザが仕事をするとき、暗号鍵は上記のように周期的にリフレッシュされてもよい。後になって第2のユーザがログオフして、第1のユーザが再びログインする。コンピュータ装置は、第1のユーザに関係付けられる暗号鍵が有効なままであるかどうかを決定する。そうであれば、それはセキュアパーティション360上のユーザのファイルへのアクセスを可能にする。有効ではない場合、セキュリティソフトウェア346は、新しい暗号鍵を要求して、その新しい暗号鍵を使用してユーザのファイルを暗号化する。異なる例は、1人以上のユーザによってこのような暗号方式を使用してもよい。
セキュアパーティションが暗号化された後で、方法はブロック430に進む。
ブロック430において、ファイル同期ソフトウェア348は、セキュアパーティションに保存されたファイルをドキュメント記憶装置352に記憶されたファイルと同期する。この例示では、ファイル同期ソフトウェア348は、セキュアパーティション360とドキュメント記憶装置352との間で同期するファイルを示すレコードを保持する。例えば、ファイル同期ソフトウェア348は、ユーザが過去30日(又は他の事前設定若しくはユーザ設定可能な期間)の間にドキュメント記憶装置352にアクセスした全てのドキュメントのリストをドキュメント記憶装置352から受信し、コンピュータ装置200上でユーザによって作成された新しいドキュメントに関するエントリをリストに追加してもよい。
セキュアパーティション360とドキュメント記憶装置352との間で1つ以上のファイルを同期するために、ファイル同期ソフトウェア348は、ドキュメント記憶装置352に記憶されていないセキュアパーティション360上に記憶された1つ以上のファイルを識別して、こうした1つ以上のファイルをドキュメント記憶装置352にコピーしてもよい。また、ファイル同期ソフトウェア348は、セキュアパーティション360内に存在しないドキュメント記憶装置352に記憶された1つ以上のファイルを識別し、ドキュメント記憶装置352から1つ以上のファイルのコピーを取得してセキュアパーティション360に保存してもよい。また、ファイル同期ソフトウェア348は、セキュアパーティション360及びドキュメント記憶装置352の両方に保存されたファイルのバージョンを解析して、異なるバージョンのファイルが各場所に保存されている場合を決定してもよい。次に、ファイル同期ソフトウェア348は、どのバージョンがより最近であるかを決定して、古いバージョンを新しいバージョンのファイルで上書きしようとしてもよい。一部の例では、ファイル同期ソフトウェア348は、古いバージョンのファイルを新しいバージョンで上書きしなくてもよいが、代わりに両方のバージョンを保持して同期してもよい。例えば、コンピュータ装置200のユーザがセキュアパーティション360におけるドキュメントを編集する場合、ファイル同期ソフトウェア348は、編集されたドキュメントをドキュメント記憶装置352にコピーして、それが以前のドキュメントの新しいバージョンとして記憶されることを示してもよい。
一部の例では、ファイル同期ソフトウェア348は、単一のサブディレクトリ又はサブディレクトリのグループ等のセキュアパーティションの一部だけを同期するように構成されてもよい。例えば、コンピュータ装置200を利用する各ユーザは、同期されたファイルが保持されるサブディレクトリを割り当てられ且つ指定されてもよい。従って、ファイル同期ソフトウェア348は、コンピュータ装置200にログインしているユーザに関するファイルのみを同期してもよい。このような特徴は、セキュアパーティション360をドキュメント記憶装置352と同期するためにプロセス及び帯域幅要求を減らし得る。
セキュアパーティションの同期が開始された後で、方法400はブロック440に進む。
ブロック440において、セキュリティソフトウェア348は、セキュアパーティション360へのアクセスを可能にする。例えば、セキュリティソフトウェア348は、アクセスを可能にするためにセキュアパーティション360をマウントしてもよい。一部の態様では、セキュリティソフトウェア348は、セキュアパーティション360内に保存された1つ以上のファイルに対応するアイコン又は他のグラフィカル要素を提供するグラフィカルユーザインターフェースを提供してもよい。一部の態様では、セキュリティソフトウェア348は、一旦マウントされると、セキュアパーティション360へのアクセスを有効にするために何らかの肯定ステップを取る必要がなくてもよい。
セキュリティソフトウェア348がセキュアパーティション360へのアクセスを可能にした後で、方法400はブロック450に進む。
ブロック450において、セキュリティソフトウェア348は、1つ以上の暗号鍵をリフレッシュするかどうかを決定する。この例では、セキュリティソフトウェア348は、暗号鍵の満了に関係付けられる1つ以上の期間を識別する。例えば、暗号鍵は、それに関係付けられる2つの期間、リフレッシュ期間及び満了期間を有してもよい。セキュリティソフトウェア348は、暗号鍵に対する開始時間を決定してもよく、これは鍵が取得された時間、鍵が最初に使用された時間、セキュアパーティションが暗号化された時間、又は何らかの他の時間に基づいてもよい。次に、セキュリティソフトウェア348は、経過時間を決定して、経過時間を2つの期間と比較する。何れの時間も経過していない場合、リフレッシュは不要であり、方法はブロック440に戻り、ユーザはセキュアパーティション360にアクセスし続けてもよい。リフレッシュ期間が経過したか又は満了期間が経過した場合、方法400は、以下でより詳細に記載されるブロック450に進む。場合によっては、リフレッシュタイマが実行されてもよく、セキュア装置は新しい暗号鍵を取得できず、従って、セキュリティソフトウェア348は満了時間もチェックしてもよい。満了時間に適合した場合、方法はブロック450にも進む。
一部の例では、鍵がアクティブになっている間に経過時間を決定するのではなく、セキュリティソフトウェア348は、鍵に対する1つ以上の満了時間を確立してもよい。従って、セキュリティソフトウェア348は、鍵が満了したか又はリフレッシュされる必要があるかどうかを決定するために(複数の)満了時間によって現在の時間をチェックし得る。例えば、セキュリティソフトウェア348は、鍵に関する2つの満了時間を保持してもよい。第1の満了時間がリフレッシュ時間であり、一方で第2のリフレッシュ時間が満了時間である。何れかの時間に適合するか又は超えた場合、方法400はブロック460に進む。一部の例では、リフレッシュ時間は、満了時間よりも早くてもよい。
一部の例では、セキュリティソフトウェア348は、暗号鍵に対して単一のタイマのみを保持してもよく、タイマが経過するか又は適合した場合、方法400はブロック450に進む。更に、一部の例では、セキュリティソフトウェア348は、同じコンピュータ装置200を使用する2人のユーザを有する例において上記のように複数の暗号鍵を保持してもよい。一部のこのような例では、セキュリティソフトウェア348は、暗号鍵ごとに別個のリフレッシュ又は満了時間又はタイマを保持してもよく、又は全ての暗号鍵若しくは2つの組み合わせに対して単一の時間/タイマを保持してもよい。例えば、一例では、セキュリティソフトウェア348は、暗号鍵ごとに個別のリフレッシュ時間を保持してもよいが、全ての暗号鍵が満了する単一の満了タイマを保持してもよい。
上記のように、複数のユーザが、コンピュータ装置200にアクセスしてもよい。このような例では、セキュリティソフトウェア348は、ユーザごとに異なる暗号鍵を保持する。第1のユーザがコンピュータ装置にログインしている場合、セキュリティソフトウェア348は、第1のユーザに関係付けられる暗号鍵のみをリフレッシュすることを試行してもよいが、セキュリティソフトウェア348は、異なるユーザに関係付けられる暗号鍵が満了しているかどうかを決定するために更にチェックしてもよく、従って、アクティブユーザの暗号鍵がリフレッシュされる必要がない場合であっても、方法はブロック460に進んでもよい。このような例では、(複数の)非アクティブユーザに関する暗号鍵は、セキュアパーティションの一部を暗号化するためにのみ使用されてもよく、従って、(複数の)非アクティブユーザの(複数の)暗号鍵が満了しても、アクティブユーザの暗号鍵はアクティブなままであり、アクティブユーザがセキュアパーティションにアクセスし続けることを許可してもよい。
暗号鍵がリフレッシュされることをセキュリティソフトウェア348が決定する場合、方法400はブロック460に進み、そうでない場合、方法400はブロック440に戻る。
ブロック460において、セキュリティソフトウェア348は、新しい暗号鍵を取得するために鍵サーバが利用可能であるかどうかを決定する。この例示では、セキュリティソフトウェア348は、サーバ350と通信することを試行する。セキュリティソフトウェア348がサーバ350と通信することができる場合、方法400は、セキュリティソフトウェアが上記のように新しい暗号鍵を取得するブロック410に戻る。セキュリティソフトウェア348がサーバ350と通信することができない場合、セキュリティソフトウェア348は適切な代替の又はバックアップサーバと通信することを試行してもよい。セキュリティソフトウェア348がこのような適切な代替の又はバックアップサーバと通信することができる場合、方法400は、セキュリティソフトウェア348が上記のように新しい暗号鍵を取得するブロック410に戻る。しかしながら、セキュリティソフトウェア348が適切なサーバと通信することができない場合、方法はブロック470に進む。
ブロック470において、セキュリティソフトウェア348は、暗号鍵が満了したかどうかを決定する。この例示では、セキュリティソフトウェア348は、暗号鍵に対する満了期間が経過したかどうかを決定する。上記のように、セキュリティソフトウェア348は、暗号鍵に対するリフレッシュ期間及び満了期間を保持する。満了期間が経過していない場合、方法はブロック440に戻る。しかしながら、満了期間が経過している場合、方法はブロック472に進む。他の例では、多くの暗号鍵の1つのみが満了していてもよい。例えば、セキュリティソフトウェア348が複数の異なるユーザに対して異なる暗号鍵を保持しており、アクティブユーザに対してだけ暗号鍵をリフレッシュする場合、あるユーザに対する暗号鍵がリフレッシュされる一方で、他のユーザに対する暗号鍵が満了してもよい。
ブロック472において、セキュリティソフトウェア348は、セキュアパーティション360へのアクセスを無効にする。この例示では、満了期間は、暗号鍵が非常に長期間にわたり使用されていることを示し、新しい暗号鍵が取得されていないので、セキュリティソフトウェア348はセキュアパーティション360へのアクセスを無効にする。この例示では、セキュリティソフトウェア348は、新しい暗号鍵が取得されるまで暗号鍵へのアクセスを無効にすることにより、及び開いているファイルを閉じることを除いてセキュアパーティションに向けられる全てのアプリケーションコマンドを拒否することにより、セキュアパーティション360へのアクセスを無効にする。一部の例では、セキュリティソフトウェア348は、新しい暗号鍵が取得されるまでそれへのアクセスを防ぐためにセキュアパーティション360をアンマウントしてもよい。或いは、一部の例では、複数のユーザの各々が異なる暗号鍵を有している場合、あるユーザの暗号鍵が満了し得る一方で、別のはリフレッシュされるままである。このような例では、セキュリティソフトウェア348は、満了した鍵に関係付けられるセキュアパーティション360における任意のディレクトリ又はファイルへのアクセスを無効にする。或いは、ファイルが複数のユーザに関係付けられる場合、セキュリティソフトウェア348は、あるユーザにファイルへのアクセスを許可しているが、ファイルに関係付けられるユーザのアクセスルールを無効にすること等によりファイルへのアクセスを妨げてもよい。アクセスルールは、図5に関連して以下により詳細に検討される。
セキュアパーティション360へのアクセスが無効にされた後で、方法は、鍵サーバとの通信を試行するためにブロック460に戻る。
上記の例示の方法400は特定の順番に従って進行するように記載されているが、一部の態様では、ステップの順番は異なる順序で行われてもよく、又は複数のステップが同時に行われてもよい。従って、図4又は図4に示された例示の方法400の対応する記載を検討する場合に特定のステップの順序が示唆されるべきではない。
次に図5を参照すると、図5は信頼できない装置においてデータを保護するための例示の方法500を示す。図5の方法500は、図2に示されたコンピュータ装置200及び図3に示された例示的なシステム300に関して記載される。しかしながら、例示的な方法は、このようなコンピュータ装置200又はこのような例示的なシステム300に限定されない。 むしろ、任意の適切な装置又はシステムが利用されてもよい。この例示では、方法500はブロック510で開始する。
ブロック510において、監視ソフトウェア342はコマンドキュー332にアクセスする。この例示では、コンピュータ装置200は、(単一の又は複数のスレッドプロセスを含む)他のプロセスとして実行される複数のアプリケーションが、情報の表示、ファイルへのアクセス及びコンピュータ装置200への入力の提供等の様々な機能を行うためにOSによって提供されるAPI関数にアクセスすることを可能にするOSを実行する。アプリケーションがAPI関数を呼び出す場合、API関数は、コマンドを生成して、実行するためにコマンドをOSのコマンドキューに挿入する。経時的に、OSはキュー内のコマンドを実行し、最終的に新しく挿入されたコマンドに到達してそれを実行する。
図3に示された例では、監視ソフトウェア342は、コマンドキュー332にアクセスし、キュー332内のコマンドにアクセスする。コマンドキュー332にアクセスするために、監視ソフトウェア342は、コマンドキュー332を監視するために十分なアクセス権を提供されるようにOSのドライバレベルにおけるプロセスとして実行される。典型的にはコマンドキュー332は、ユーザによって実行されたソフトウェアアプリケーションがコマンドキュー332にアクセスするための十分な特権を有さないように実行されるが、一部の例では特別なアクセス権が要求されない場合、監視ソフトウェア342は追加の特権無しでコマンドキュー332にアクセスしてもよい。他の態様では、監視ソフトウェア342は、十分なアクセス権で動作するように特別に構成されなくてもよいが、監視ソフトウェア342にスーパーユーザ特権を提供するために“sudo”等のコマンドを使用することにより、十分なアクセス権を与えるように実行されてもよい。監視ソフトウェア342がコマンドキュー332にアクセスできない場合、監視ソフトウェア342は、セキュリティソフトウェア348にメッセージを送信するか又は情報を渡してもよく、次にそれは、セキュアパーティションをアンマウントするか又は全ての暗号鍵を満了させること等によりセキュアパーティション360へのアクセスを無効にしてもよい。
監視ソフトウェア342がコマンドキューにアクセスした後で、方法500はブロック520に進む。
ブロック520において、監視ソフトウェア342はコマンドキュー332内のコマンドを識別する。
次に図6を参照すると、信頼できない装置においてデータを保護するための例示のシステムが示されている。この例示では、監視ソフトウェア342は、監視ソフトウェア342がアクセスしているコマンドキュー332内の位置を示すためにコマンドキュー332へのポインタ343を確立する。この例示では、コマンドキュー332はキューであるので、コマンド610−616は最下位602から最上位601にキューに挿入された順序で実行され、従ってポインタ343の特定の位置に対して、監視ソフトウェア342は、新しいコマンドが追加されるコマンドキュー332の最上位601に向かって一方向にのみコマンドにアクセスする。一部の態様では、コマンドキューは、異なる構造を有してもよく、又は例えば、より優先度の高いコマンド、例えば、割り込みハンドラから発行されるコマンドを収容するために複数のコマンドキューを含んでもよく、又はキュー構造を含まなくてもよい。このような態様では、コマンド構造へのアクセスは、その構造に従って変化してもよいが、それに従って監視されてもよい。
監視ソフトウェア342は、最初に立ち上げられると、この例示では、コマンドキュー332の最下位にポインタ343を設定し、キュー332にコマンドがある場合はコマンド610を解析する。更に、最初に立ち上げられると、監視ソフトウェア342は、セキュアパーティション360においてコマンドの実行を試行するプロセスを記録するためのデータ構造を構築する。データ構造は、コマンドキュー332内のコマンドが許可されるべきかどうかを監視ソフトウェア342が決定することを可能にする0以上のレコードを含む。コマンドを識別するために、監視ソフトウェア342は、ポインタ343によって指定されているコマンド読み込み、コマンドのプロセスIDを識別する。次に監視ソフトウェア342は、プロセスIDに関するデータ構造を検索する。プロセスIDが見つかれば、コマンドは識別され、方法500はブロック530に進む。しかしながら、一部の態様では、監視ソフトウェア342は、セキュリティソフトウェア348又はファイル同期ソフトウェア346等、監視を免除されているプロセスIDを識別するレコードも保持してもよい。免除されるプロセスIDが識別される場合、監視ソフトウェア342は、ポインタ343をコマンドキュー332内の次のコマンド、例えば、コマンド611に移動させる。更に、一部の例では、データ構造内のレコードは、レコードが免除プロセスIDに関係付けられているかどうかについての指示を含んでもよい。例えば、ファイル同期ソフトウェア346は、所定の時間に免除されているが、他の時間には免除されていなくてもよい。例えば、セキュリティソフトウェア348は、全ての暗号鍵が満了していることを決定する場合、それが非免除であることを示すためにファイル同期ソフトウェア346のプロセスIDの状態を監視ソフトウェア342に変更させることにより、ファイルが同期することを防いでもよい。
監視ソフトウェア342がコマンドのプロセスIDに関するデータ構造においてレコードを見つけられない場合、監視ソフトウェア342は、パス名等のセキュアパーティション360に関係付けられるデータに関してコマンドを検索する。例えば、セキュアパーティションを含むパス名がコマンド内に位置している場合、監視ソフトウェア342はコマンドを識別し、方法500はブロック530に進む。更に、監視ソフトウェア342はそのデータ構造に関する新しいレコードを生成して、プロセスID並びにアクセスされたファイルのパス及びファイル名等、コマンドに関係付けられる情報を記憶する。従って、将来のコマンドに対して、監視ソフトウェア342は、パス又はファイル名を検索するのではなくプロセスIDに基づいてレコードを見つけてもよい。
一部の態様では、コマンドキュー332におけるコマンドは、スクリーンショットコマンド等のセキュアパーティションに直接的に関係付けられないプロセスIDに関係付けられなくてもよい。このようなコマンドは、セキュアパーティションにおけるデータにアクセスしているプロセス以外のプロセスによって発行されてもよい。例えば、ユーザがセキュアパーティションに保存されているドキュメントの一部を示すワードプロセッシングプログラムスクリーンのスクリーンショットを撮ることを試行する場合、スクリーンショット機能のプロセスIDは、ワードプロセッシングプログラムのプロセスIDとは異なってもよい。しかしながら、このような場合、スクリーンショットに関するコマンドキュー332内のコマンドは、典型的には、スクリーンショットが撮られているアクティブウインドウによるプロセスのプロセスIDを含む。従って、監視ソフトウェア342は、別のプロセスIDによって参照されているプロセスIDに関してコマンドキュー332内のコマンドを検索してもよい。スクリーンショットプロセスIDがワードプロセッシングプログラムに関するプロセスIDを参照していることを監視ソフトウェア342が識別する場合、監視ソフトウェア342はコマンドを識別してもよい。
この例示では、監視ソフトウェア342は、毎ミリ秒等、事前定義されたレートでコマンドキュー332にアクセスし、これはユーザ又は管理者プリファレンスに従って構成され得る。しかしながら、一部の態様では、他のレートが使用されてもよく、又は他のトリガが利用されてもよい。例えば、新しいアプリケーションの起動は、コマンドキュー332にアクセスすることを監視ソフトウェア342に引き起こしてもよく、又は監視ソフトウェア342は、コマンドキュー332をチェックするために新しいコマンドがコマンドキュー332に入力される毎に行われる割り込み等のイベントを確立してもよい。
図7を次に参照すると、図7は信頼できない装置においてデータを保護するためにプロセスIDを記録するための例示のデータ構造を示している。データ構造700は、コマンドキューにおけるコマンドを識別するために使用され得る0以上のレコード710を保存するように構成される。この例示では、各レコードは、プロセスID、ユーザID、アプリケーション、パス、及びファイル名に関するフィールドを含む。プロセスIDは、OSによって実行されるソフトウェアアプリケーションのインスタンスに割り当てられるプロセスIDである。一部の例では、データ構造は、スレッドIDを記録してもよい。ユーザIDは、プロセスを「所有」するユーザに関係付けられる識別子である。殆どのOSにおいて、1人のユーザのみがコンピュータ装置にログインしている場合であっても、プロセスは、異なるサービス又はOS自体等、異なる「ユーザ」によって立ち上げられてもよく、従って、異なるユーザIDを有してもよい。この例では、ユーザID「103」はユーザ「jsmith」に対応し、一方でユーザID「100」はOSに対応する。「アプリケーション」フィールドは、プロセスIDに関係付けられるアプリケーションの名前である。「パス」フィールドは、対応するプロセスIDによってアクセスされているドキュメントのパスであり、「ファイル名」フィールドは、対応するプロセスIDによってアクセスされているドキュメントの名前である。この例示では、監視ソフトウェア342によって識別されている5つのプロセスが有り、4つはユーザID「103」によって立ち上げられており、1つは(ユーザID「100」を有する)OSによって立ち上げられている。従って、監視ソフトウェア342は、コマンドキュー332内のコマンドを解析するとき、それがセキュアパーティションに関連するのでコマンドが識別されるべきかどうかを決定するためにデータ構造700をチェックすることができる。
この例示では、データ構造700はレコードのソートされていない連結リストとして記憶されてもよいが、一部の例では、異なるタイプのデータ構造が使用されてもよい。例えば、ハッシュテーブル、リレーショナルデータベース、オブジェクトデータベース、ソートされたリスト、又は他の適切なデータ構造が使用されてもよい。
監視ソフトウェア342がセキュアパーティションに関係付けられるデータを見つけられない場合、監視ソフトウェアは、ポインタ343をコマンドキュー332内の次のコマンドに移動させる。次に、監視ソフトウェアは、次のコマンド611が識別されるべきかどうかを決定するために処理を再び繰り返す。
監視ソフトウェア342がコマンドを識別した後で、方法500はブロック530に進む。方法500はブロック530に進んでもよいが、次のコマンド、例えば、コマンド611に関してブロック520における機能を実質的に同時に行ってもよいことに留意されたい。例えば、一部の例では、監視ソフトウェア342は方法の残りのステップ530、540、542、550、560を行うために新しいスレッドを作成してもよく、監視ソフトウェアのメインスレッドはコマンドキュー内の次のコマンドに移動する。
ブロック530において、監視ソフトウェア342はアクセスルール344にアクセスする。この例示では、アクセスルール344はデータストアに記憶され、これはデータベース、メモリ内データ構造又はアクセスルール344を保持するための他の適切な構造であってもよい。この例示では、監視ソフトウェア342は、最初に、識別されたコマンドに関係付けられるパス及びファイル名を識別する。例えば、ブロック520に関して先に検討されたように、監視ソフトウェア342は、セキュアパーティション360に関係付けられるプロセスIDを記録するデータ構造を保持する。監視ソフトウェア342は、プロセスIDに関係付けられるファイル名にアクセスし且つ取得して、ファイル名に関係付けられる1つ以上のアクセスルールに関してアクセスルールを検索する。一例では、アクセスルール344はリレーショナルデータベースに記憶され、監視ソフトウェア342は、レコード内のファイル名が監視ソフトウェアのデータ構造内のレコードからのファイル名に一致する任意のレコードに対するSQL(search query language)クエリを生成する。
複数のレコードが返される場合、識別されたコマンドに関係付けられるユーザIDに関係付けられる任意のものを識別するために返されたレコードを検索する。例えば、複数のユーザが、同じファイルに対して異なるアクセスルールを有してもよい。従って、監視ソフトウェア342は、ファイル及びユーザの双方に対して適切なアクセスルールを識別しなくてはならない。一部の例では、同じユーザに関する異なるアプリケーションに対して異なるアクセスルールが存在してもよい。このような場合、監視ソフトウェア342は、ファイル、ユーザ、及び識別されたコマンドに関係付けられるアプリケーションに関係付けられるレコードを識別するために返されたレコードを更に洗練してもよい。一部の例では、適用するアクセスルールを識別するために他の基準が利用されてもよい。
一部の例では、複数のアクセスルールがコマンドに等しく適用可能であることが起こり得る。このような例では、監視ソフトウェア342は、識別されたコマンドに対して最も制限的なルールを有するアクセスルールを使用する。例えば、識別されたコマンドが「印刷」コマンドであり、2つのアクセスルールの両方がアプリケーションであるが、一方が印刷を禁止し、他方が印刷を許可している場合、監視ソフトウェア342は、識別されたコマンドに対してアクセスルールを比較して、ルールが対立する場合、コマンドを禁止するアクセスルールを選択する。しかしながら、一部の例では、監視ソフトウェア342は、複数のアクセスルールの相対年齢を決定して、最も新しいアクセスルールを選択することが可能であり、これは最近のアクセスルールの変化を反映するか、又は過去のルールに対する例外を表してもよい。
一部の例では、管理者又は他のユーザは、監視ソフトウェア342が2つ以上のアクセスルール間の対立をどのように取り扱うかを構成し得る。例えば、管理者は、実行されるコマンドに基づいて対立解消ルールを確立してもよい。一例では、管理者は、最も制限的なアクセスルールを選択するために、コマンド「移動」、「コピー」、「貼り付け」、「名前の変更」、「名前を付けて保存」、「上書き保存」、及び「Eメール」に対する対立を解消するように監視ソフトウェア342を構成してもよく、一方でコマンド「開く」及び「印刷」は最も制限的でないアクセスルールを利用してもよい。このような対立解消スキームは、ユーザがドキュメントを開いて閲覧することを可能にするが、それを編集すること又はセキュアパーティションからファイルを移動することを許可しなくてもよい。即ち、このような対立解消スキームは、何らかの読み出し専用アクセスをファイルに提供してもよい。
一部の態様では、アクセスルール344は、デフォルトルール及びユーザ固有ルールを含んでもよい。従って、コマンドに対するルールの検索は、常に2つのアクセスルール、デフォルトルール及びユーザ固有ルールを返してもよい。このような場合、監視ソフトウェア342は、存在する場合、ユーザ固有ルールを常に使用し、そうでなければデフォルトルールを使用してもよい。代替的に、ファイルに対するアクセスルールが見つからない場合、監視ソフトウェア342は、もし存在すれば、デフォルトルールを検索して適用するか、又はアクセスルールが見つからない場合は単純に全てのコマンドを拒絶してもよい。
一部の例では、監視ソフトウェア342は、アクセスルールに直接的にアクセスしなくてもよいが、代わりに、識別されたコマンドが許可されるかどうかを決定する、アクセスルールプロセス等の別のプロセスにメッセージを送信してもよい。例えば、監視ソフトウェア342は、コマンドを識別して、コマンドの少なくとも一部を含むメッセージを第2のプロセスに送信してもよい。次に、第2のプロセスは、メッセージの受信に応じて、識別されたコマンドに関係付けられるアクセスルールを識別するためにアクセスルールデータストアにアクセスする。
監視ソフトウェア342が識別されたコマンドに関係付けられるアクセスルールを識別した後で、方法500はブロック540に進む。
ブロック540において、監視ソフトウェア342は、識別されたルールによって識別されたコマンドが実行されることが許可されるかどうかを決定する。コマンドが許可されるかどうかを決定するために、監視ソフトウェア342は、識別されたコマンドに関係付けられる許可を有する識別されたルール内のフィールドを識別する。例えば、識別されたコマンドが「開く」コマンドである場合、監視ソフトウェア342は、「開く」コマンドに関する許可に対応する識別されたルール内のフィールドを識別する。この例示では、許可を有するフィールドはバイナリ値を有している。即ち、コマンドの許可又は不許可であってもよい。しかしながら、一部の例では、1つ以上のフィールドが異なる種類の値を有してもよい。例えば、フィールドは、所定の回数だけ特定の動作を許可してもよい。例えば、ユーザは最大で5回までファイルを開くことを許可されてもよい。一部の例では、アクセスルールフィールドは、コマンドがフィールドに記憶されている日付又は時間より前に(又はその日付又は時間で)行われ得るが、日付又は時間の後に許可されないように日付又は時間を含んでもよい。更なる変形も可能であってもよい。
一部の例では、上記のように、監視ソフトウェア342がコマンドが許可されるかどうかを決定するために第2のプロセスと通信する場合、第2のプロセスは、コマンドが許可されるかどうかを示す応答を生成して監視ソフトウェア342に送信してもよい。例えば、第2のプロセスは、監視ソフトウェアから受信したメッセージに対応する値を含む応答メッセージを生成してもよい。これは、識別されたコマンドのプロセスIDを含み、コマンドが許可されるかどうかを示す値を含んでもよい。次に、第2のプロセスは、監視ソフトウェア342に応答メッセージを送信してもよい。
識別されたコマンドが許可されることを監視ソフトウェア342が決定する場合、方法500はブロック542に進む。
ブロック542において、監視ソフトウェア342は、識別されたコマンドに関して更なるアクションを取らない。この例示では、監視ソフトウェア342は、アクセスルールに少なくとも部分的に基づいて識別されたコマンドが許可されることを決定しており、従って、OSによってコマンドが実行されることを許可する。一部の例では、監視ソフトウェア342は、識別されたコマンドが検出されたこと、対応するルールが識別されたこと、及び識別されたコマンドが許可されたことを示すエントリを監査ログ345に生成してもよい。先に検討された例等の一部の例では、監視ソフトウェア342は、ドキュメントに対して特定のコマンドが行われ得る回数に関係付けられる値をデクリメントする等、アクセスルールを更新してもよい。
ブロック542における任意の処理が完了した後で、方法500は、監視ソフトウェアが次のコマンドを識別するブロック520に戻る。
ブロック540において、識別されたコマンドが許可されないことを監視ソフトウェア342が決定する場合、方法500はブロック550に進む。
ブロック550において、監視ソフトウェア342はコマンドキュー332から識別されたコマンドを削除する。この例示では、コマンドキュー332は、コマンドが挿入される循環バッファを使用して提供される。循環は、新しいコマンドがキューの末尾に追加され且つ実行されるコマンドがキューの先頭から取られるように、キューの先頭及びキューの末尾に対するポインタを含む。新しいコマンドがキューに追加されると、末尾ポインタはインクリメントされ、バッファの最後に到達すると、バッファの最初への地点に設定される。同様に、コマンドが実行されると、先頭ポインタはインクリメントされ、末尾ポインタのように、バッファの最後に到達すると、バッファの最初への地点に設定される。
循環バッファからコマンドを削除するために、監視ソフトウェア342は、OSが循環バッファ内のエントリに到達するときに動作が行われないようにコマンドキュー内への「動作無し」又は類似のエントリを代用してもよく、又は監視ソフトウェア342は、先頭ポインタがそれに到達するときにそれが実行されないように、コマンドが実行されたことを示すために識別されたコマンド内の値を変化させてもよい。識別されたコマンドが末尾ポインタの場所に隣接する場所に有る場合、監視ソフトウェア342は、コマンドキューに挿入された次のコマンドが不許可コマンドを上書きするように単純に末尾ポインタを移動させてもよい。一部の例では、監視ソフトウェア342は、「動作無し」又は類似のコマンドでコマンドを上書きし、次のコマンドが「動作無し」コマンドを上書きするように末尾ポインタを移動させてもよい。このような態様は、新しいコマンドが不許可コマンドを上書きする前に先頭ポインタが末尾ポインタに到達する際の潜在的な競合条件を排除することができる。一部の例において、不許可コマンドが先頭ポインタに直接隣接する場合、監視ソフトウェア342は、不許可コマンドをスキップするように先頭ポインタを調節してもよい。
一部の例では、コマンドキュー332は、連結リスト又は二重連結リスト等の異なるデータ構造を使用してもよい。このような例示では、監視ソフトウェア342は、リスト内のノードを削除してもよく、2つのリストノードデータ構造が互いをポイントし、それによって削除されたノードをバイパスするように、削除されたノードに隣接して2つのリストノードデータ構造におけるポインタを修正してもよい。一部の例では、コマンドキュー332は、異なるタイプのデータ構造に保存されてもよく、このような例示では適切な削除方策が利用されてもよい。
コマンドキュー332から識別されたコマンドを削除することに加えて、監視ソフトウェア342は、監査ログ345にエントリを追加してもよい。例えば、監視ソフトウェア342は、日時スタンプ、ユーザ名、ファイル名、識別されたコマンド及びアプリケーション名を有するエントリを追加してもよい。
一部の例では、監視ソフトウェア342がコマンドキュー332から識別されたコマンドを削除した後で、方法500は、追加コマンドを解析するためにブロック520に戻る。一部の例では、上記のように、監視ソフトウェア342は、識別されたコマンドが許可されるべきかどうかを決定するためにスレッドを立ち上げてもよい。このような例示では、コマンドキュー332から識別されたコマンドを削除した後で、スレッドが終了されてもよい。一部の例では、方法はブロック560に進んでもよい。
ブロック560において、監視ソフトウェア342は、試行されたコマンドが不許可であったことの通知をユーザに提供する。監視ソフトウェア342がコマンドキュー332から識別されたコマンドを削除するとき、ユーザに通知が提供されない限り、コマンドは単純に実行されず、ユーザはバグ又は何らかの他のエラーによるものではないことを認識しないかもしれない。従って、一部の例では、ユーザに通知が提供されてもよい。例えば、監視ソフトウェア342は、不許可コマンドを示すダイアログボックスと共にユーザがコマンドの実行を承認されていないことを示すメッセージを生成して表示してもよい。一部の例では、コマンドが不許可であり実行されなかったことを示すために聴覚、視覚、触覚又は他の通知がユーザに提供されてもよい。
監視ソフトウェア342が通知を提供した後で、方法500は、次のコマンドを識別するためにブロック520に戻る。一部の例では、上記のように、監視ソフトウェア342は、識別されたコマンドが許可されるべきかどうかを決定するためにスレッドを立ち上げてもよい。このような例では、ユーザに通知を提供した後で、スレッドが終了されてもよい。
一部の例では、図5の方法500は、図4の例示的な方法400と並行して又は併せて実行されてもよい。図4の例示的な方法400は、上記のように、セキュアパーティション360へのアクセスを提供する一方で、図5の方法500は、セキュアパーティション360内の異なるファイルに対して実行されるコマンドを制御してもよい。しかしながら、図5の例示的な方法500は、図4とは独立して行われてもよく、図4の例示的な方法400の実行は要求されない。更に、図4の例示的な方法400は、図5の例示的な方法を実行せずに行われてもよい。しかしながら、方法400、500を両方とも実行することは、信頼できない装置においてデータを保護するために向上した利益をもたらし得る。
本明細書に記載の方法及びシステムは様々な機械で実行するソフトウェアに関して記載されているが、方法及びシステムは、例えば、様々な方法を特別に実行するためのFPGA(field−programmable gate array)等の特別に構成されたハードウェアとして実装されてもよい。例えば、例示は、デジタル電子回路で、又はコンピュータハードウェア、ファームウェア、ソフトウェア若しくはこれらの組み合わせで実装され得る。一例では、装置は、1つ又は複数のプロセッサを含んでもよい。プロセッサは、プロセッサに結合されるRAM(random access memory)等のコンピュータ可読媒体を備える。プロセッサは、メモリに記憶されたコンピュータ実行可能プログラム命令を実行する。例えば、画像を編集するために1つ以上のコンピュータプログラムを実行する。このようなプロセッサは、マイクロプロセッサ、DSP(デジタル・シグナル・プロセッサ;digital signal processor)、ASIC(特定用途向け集積回路;application−specific integrated circuit)、FPGA(フィールド・プログラマブル・ゲート・アレイ;field programmable gate array)、及び状態機械を含む。このようなプロセッサは、PLC(プログラマブル論理制御装置; programmable logic controller)、PIC(割り込みコントローラ;programmable interrupt controller)、PLD(プログラマブル論理回路;programmable logic device)、PROM(プログラマブルROM;programmable read−only memory)、EPROM又はEEPROM(電気的プログラマブルROM;electronically programmable read−only memory)、又は他の類似の装置等のプログラマブル電子装置を更に備えてもよい。
このようなプロセッサは、媒体、例えば、プロセッサによって実行されると、プロセッサによって遂行又は支援される本明細書に記載のステップをプロセッサに実行させることができる命令を記憶し得るコンピュータ可読記憶媒体を備え、又はこれと通信してもよい。コンピュータ可読媒体の例は、限定されないが、プロセッサ、例えばウェブサーバのプロセッサにコンピュータ可読命令を提供することができる電子、光学、磁気又は他の記憶装置を含んでもよい。媒体の他の例は、限定されないが、フロッピーディスク、CD−ROM、磁気ディスク、メモリチップ、ROM、RAM、ASIC、構成プロセッサ、全ての光学媒体、全ての磁気テープ若しくは他の磁気媒体、又はコンピュータプロセッサが読み取り可能な任意の他の媒体を含む。記載されたプロセッサ及び処理は、1つ以上の構造内に有ってもよく、1つ以上の構造を通じて分散されてもよい。プロセッサは、本明細書に記載の1つ以上の方法(又は方法の一部)を実行するためのコードを備えてもよい。
一部の例の上記の説明は、例示及び説明のためにのみ示されているのであって、網羅的であること又は開示された厳密な形態に本開示を限定することは意図されていない。その多くの修正及び適合が、本開示の精神及び範囲から逸脱することなく当業者には明らかであろう。
本明細書における一例又は実装への言及は、特定の機能、構造、操作、又は例と関連して記載される他の特徴が本開示の少なくとも1つの実装に含まれ得ることを意味する。本開示は、このように記載された特定の例又は実装に制限されない。明細書の様々な場所における「一例では」又は「ある例において」、「一実装では」又は「ある実装において」という句又はこれらの変形の出現は、必ずしも同じ例又は実装への言及ではない。任意の特定の機能、構造、操作、又は例示若しくは実装に関連する本明細書に記載の他の特徴は、他の機能、構造、操作、又は任意の他の例示若しくは実装に関して記載された他の特徴と組み合わされてもよい。

Claims (21)

  1. コンピュータ装置における実行環境で実行される第1のプロセスによって、実行環境コマンドキューにおけるコマンドを識別するステップであって、前記コマンドは前記実行環境で実行される第2のプロセスからであり且つセキュアデータに対するアクションを示し、識別することは前記第2のプロセスのプロセスID又は前記コマンドにおけるパス名に基づき、識別することは、
    前記実行環境が実行のために前記実行環境コマンドキューから前記コマンドを取得する前に行われ、且つ
    前記実行環境コマンドキューにおいてセキュア記憶場所に関係付けられるエントリを識別することを含むステップと、
    前記コマンドが前記実行環境コマンドキューに残っている間に、前記アクション及びユーザ認証情報に基づいて前記コマンドが許可されるかどうかを決定するステップであって、決定することは、
    コマンド又はユーザ認証情報に関係付けられる1つ以上のルールを含むアクセスルールデータストアにアクセスすること、及び
    前記コマンド及び前記1つ以上のルールに基づいて前記コマンドが許可されるかどうかを決定することを含むステップと、
    前記コマンドが許可されないとの決定に応じて、前記第1のプロセスによって、前記実行環境が実行のために前記実行環境コマンドキューから前記コマンドを取得する前に前記コマンドキューから前記コマンドを除去するステップであって、除去することは前記実行環境が前記コマンドを実行することを防ぐステップ
    を含む、方法。
  2. 前記セキュア記憶場所は、コンピュータ可読媒体の個別にマウント可能なパーティションを含む、請求項に記載の方法。
  3. 前記実行環境は、オペレーティングシステム含む、請求項1に記載の方法。
  4. 前記実行環境は、アプリケーションサーバ含む、請求項1に記載の方法。
  5. 前記実行環境は、仮想マシン含む、請求項1に記載の方法。
  6. 前記コマンドが許可されるとの決定に応じて、前記実行環境コマンドキューから前記コマンドを除去しないステップを更に含む、請求項1に記載の方法。
  7. 前記コマンドは、保存コマンド、名前を付けて保存コマンド、開くコマンド、移動コマンド、名前の変更コマンド、印刷コマンド、コピーコマンド、切り取りコマンド、貼り付けコマンド、Eメールコマンド、スクリーンショットコマンド、名前の変更コマンド、又は共有コマンドの少なくとも1つを含む、請求項1に記載の方法。
  8. 非一時的なコンピュータ可読媒体と、
    前記非一時的なコンピュータ可読媒体と通信するプロセッサと
    を備え、前記プロセッサは、
    コンピュータ装置における実行環境で実行される第1のプロセスによって、前記実行環境で実行される他のプロセスからのコマンドを識別するために実行環境コマンドキューを監視することであって、前記コマンドの少なくとも1つはセキュアデータに対するアクションを示し、識別することは前記他のプロセスのプロセスID又は前記コマンドにおけるパス名に基づき、識別することは、
    前記実行環境が実行のために前記実行環境コマンドキューから前記コマンドを取得する前に行われるように構成され、且つ
    前記実行環境コマンドキューにおいてセキュア記憶場所に関係付けられるエントリを識別することを含むこと、
    少なくとも1つのコマンドが許可されるかどうかを決定するために1つ以上のアクセスルールにアクセスすること
    前記少なくとも1つのコマンド及び前記1つ以上のルールに基づいて前記少なくとも1つのコマンドが許可されるかどうかを決定すること、及び
    前記コマンドが許可されないとの決定に応じて、前記実行環境が実行のために前記実行環境コマンドキューから前記コマンドを取得する前に前記コマンドキューから前記コマンドを除去することであって、除去することは前記実行環境が前記コマンドを実行することを防ぐこと
    を行うように構成される、装置。
  9. 前記プロセッサは、
    前記コマンドキューにおいてセキュア記憶場所に関係付けられるエントリを識別し、且つ
    前記エントリに基づいてフトウェアアプリケーションを識別する
    ように更に構成される、請求項に記載の装置。
  10. 前記プロセッサは、記セキュア記憶場所に関するコンピュータ可読媒体上のパスを識別するように更に構成される、請求項に記載の装置。
  11. 前記セキュア記憶場所は、コンピュータ可読媒体の個別にマウント可能なパーティションを含む、請求項に記載の装置。
  12. 前記実行環境は、オペレーティングシステム、アプリケーションサーバ、又は仮想マシンの1つを含む、請求項に記載の装置。
  13. 前記プロセッサは、前記コマンドが許可される場合に前記コマンドキューから前記コマンドを除去しないように更に構成される、請求項に記載の装置。
  14. 前記コマンドは、保存コマンド、名前を付けて保存コマンド、開くコマンド、移動コマンド、名前の変更コマンド、印刷コマンド、コピーコマンド、切り取りコマンド、貼り付けコマンド、Eメールコマンド、スクリーンショットコマンド、名前の変更コマンド、又は共有コマンドの少なくとも1つを含む、請求項に記載の装置。
  15. 実行環境においてプロセッサによって実行可能な監視ソフトウェア及びアクセスルールソフトウェアを含むプログラムコードを備える非一時的なコンピュータ可読媒体であって、前記監視ソフトウェアは、
    前記実行環境で実行される他のプロセスからのコマンドを識別するために実行環境コマンドキューを監視すること
    前記他のプロセスの中の1つのプロセスID又は前記コマンドにおけるパス名に基づいてセキュアデータに対するアクションを示すコマンドを識別することであって識別することは、
    前記実行環境が実行のために前記実行環境コマンドキューから前記コマンドを取得する前に行われるように構成され、且つ
    前記実行環境コマンドキューにおいてセキュア記憶場所に関係付けられるエントリを識別することを含むこと、
    前記コマンドが許可されるかどうかを決定するための要求を前記アクセスルールソフトウェアに送信すること、及び
    前記コマンドが許可されないことを示す前記要求に対する応答に応じて、前記実行環境が実行のために前記実行環境コマンドキューから前記コマンドを取得する前に前記コマンドキューから前記コマンドを除去することであって、除去することは前記実行環境が前記コマンドを実行することを防ぐこと
    を行うように構成され
    前記アクセスルールソフトウェアは、
    コマンド又はユーザ認証情報に関係付けられる1つ以上のルールを記憶するように構成されるアクセスルールデータストアにアクセスすること、
    前記要求に関係付けられるコマンドが許可されるかどうかを決定するための要求を受信すること、
    各要求及び前記1つ以上のルールに基づいて前記コマンドが許可されるかどうかを決定すること、及び
    前記各要求に対する応答メッセージを送信すること
    を行うように構成される、非一時的なコンピュータ可読媒体。
  16. 前記監視ソフトウェアは、
    前記コマンドキューにおいてセキュア記憶場所に関係付けられるエントリを識別し、且つ
    前記エントリに基づいて前記コマンドを識別する
    ように更に構成される、請求項15に記載の非一時的なコンピュータ可読媒体。
  17. 前記セキュア記憶場所は、コンピュータ可読媒体の個別にマウント可能なパーティションを含む、請求項16に記載の非一時的なコンピュータ可読媒体。
  18. 前記セキュアデータは、セキュア記憶場所内に記憶されているデータを含み、前記監視ソフトウェアは、前記コマンドを識別するために、前記コマンドキューにおいて前記セキュアデータへのアクセスを試行するプロセスのプロセス識別子に関係付けられるエントリを識別するように更に構成される、請求項15に記載の非一時的なコンピュータ可読媒体。
  19. 前記実行環境は、オペレーティングシステム、アプリケーションサーバ、又は仮想マシンの1つを含む、請求項15に記載の非一時的なコンピュータ可読媒体。
  20. 前記監視ソフトウェアは、前記コマンドが許可されるとの決定に応じて、前記コマンドキューから前記コマンドを除去しないように更に構成される、請求項15に記載の非一時的なコンピュータ可読媒体。
  21. 前記コマンドは、保存コマンド、名前を付けて保存コマンド、開くコマンド、移動コマンド、名前の変更コマンド、印刷コマンド、コピーコマンド、切り取りコマンド、貼り付けコマンド、Eメールコマンド、スクリーンショットコマンド、名前の変更コマンド、又は共有コマンドの少なくとも1つを含む、請求項15に記載の非一時的なコンピュータ可読媒体。
JP2017535801A 2015-01-02 2015-11-17 信頼できない装置におけるデータの保護 Expired - Fee Related JP6263675B1 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US14/588,779 US9659170B2 (en) 2015-01-02 2015-01-02 Securing data on untrusted devices
US14/588,779 2015-01-02
PCT/US2015/061097 WO2016109038A1 (en) 2015-01-02 2015-11-17 Securing data on untrusted devices

Publications (2)

Publication Number Publication Date
JP6263675B1 true JP6263675B1 (ja) 2018-01-17
JP2018503910A JP2018503910A (ja) 2018-02-08

Family

ID=54834909

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2017535801A Expired - Fee Related JP6263675B1 (ja) 2015-01-02 2015-11-17 信頼できない装置におけるデータの保護

Country Status (7)

Country Link
US (3) US9659170B2 (ja)
EP (1) EP3241145A1 (ja)
JP (1) JP6263675B1 (ja)
KR (1) KR20170097211A (ja)
CN (1) CN107111724A (ja)
CA (1) CA2972019A1 (ja)
WO (1) WO2016109038A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2020119023A (ja) * 2019-01-18 2020-08-06 日本電気株式会社 ファイルアクセス制御方法、コンピュータプログラム及びコンピュータ

Families Citing this family (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9882713B1 (en) 2013-01-30 2018-01-30 vIPtela Inc. Method and system for key generation, distribution and management
US9467478B1 (en) 2013-12-18 2016-10-11 vIPtela Inc. Overlay management protocol for secure routing based on an overlay network
US9740860B2 (en) * 2015-02-26 2017-08-22 Kairos Social Solutions, Inc. Device, system, and method of preventing unauthorized recording of visual content displayed on an electronic device
US9760720B2 (en) 2015-07-10 2017-09-12 Senteon LLC Securing temporary data on untrusted devices
US9888014B2 (en) * 2015-09-29 2018-02-06 International Business Machines Corporation Enforcing security for sensitive data on database client hosts
US9980303B2 (en) 2015-12-18 2018-05-22 Cisco Technology, Inc. Establishing a private network using multi-uplink capable network devices
US10460119B2 (en) * 2016-02-26 2019-10-29 Intuit Inc. IDPS access-controlled and encrypted file system design
US10754968B2 (en) * 2016-06-10 2020-08-25 Digital 14 Llc Peer-to-peer security protocol apparatus, computer program, and method
US10572675B2 (en) * 2016-11-02 2020-02-25 Cisco Technology, Inc. Protecting and monitoring internal bus transactions
US11393046B1 (en) * 2017-01-17 2022-07-19 Intuit Inc. System and method for perpetual rekeying of various data columns with a frequency and encryption strength based on the sensitivity of the data columns
US10303895B1 (en) 2017-01-19 2019-05-28 Intuit Inc. System and method for perpetual rekeying of various data columns with respective encryption keys and on alternating bases
US9817675B1 (en) * 2017-01-31 2017-11-14 Hytrust, Inc. Methods and systems for attaching an encrypted data partition during the startup of an operating system
JP6789906B2 (ja) * 2017-09-20 2020-11-25 キオクシア株式会社 データ蓄積装置
WO2020102727A1 (en) * 2018-11-15 2020-05-22 Trade Examination Technologies, Inc. Secure and accountable data access
CN110059499A (zh) * 2019-03-22 2019-07-26 华为技术有限公司 一种文件访问权限认证方法及电子设备
US11301263B2 (en) * 2019-10-30 2022-04-12 EMC IP Holding Company, LLC System and method for suspending and processing commands on a configuration object
CN111007736A (zh) * 2019-12-20 2020-04-14 阮振荣 一种智能家居系统
US20220004337A1 (en) * 2020-07-06 2022-01-06 Micron Technology, Inc. Command prioritization in a command queue
US20230205935A1 (en) * 2021-12-28 2023-06-29 Ati Technologies Ulc Software assisted acceleration in cryptographic queue processing

Family Cites Families (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5857201A (en) 1996-06-18 1999-01-05 Wright Strategies, Inc. Enterprise connectivity to handheld devices
US6023708A (en) 1997-05-29 2000-02-08 Visto Corporation System and method for using a global translator to synchronize workspace elements across a network
US6085192A (en) 1997-04-11 2000-07-04 Roampage, Inc. System and method for securely synchronizing multiple copies of a workspace element in a network
US6708221B1 (en) 1996-12-13 2004-03-16 Visto Corporation System and method for globally and securely accessing unified information in a computer network
US5961590A (en) 1997-04-11 1999-10-05 Roampage, Inc. System and method for synchronizing electronic mail between a client site and a central site
US6151606A (en) 1998-01-16 2000-11-21 Visto Corporation System and method for using a workspace data manager to access, manipulate and synchronize network data
EP2375336B1 (en) * 2002-08-09 2013-06-26 Good Technology Corporation System and method for preventing access to data on a compromised remote device
US6970954B1 (en) 2003-03-27 2005-11-29 Logicube, Inc. System and method for intercepting and evaluating commands to determine if commands are harmful or benign and to emulate harmful commands
US7533370B2 (en) 2003-10-28 2009-05-12 Exent Technologies, Ltd. Security features in on-line and off-line delivery of applications
JP4342326B2 (ja) * 2004-01-26 2009-10-14 日本電信電話株式会社 データベース制御装置
US8266177B1 (en) 2004-03-16 2012-09-11 Symantec Corporation Empirical database access adjustment
US7970386B2 (en) 2005-06-03 2011-06-28 Good Technology, Inc. System and method for monitoring and maintaining a wireless device
US8627490B2 (en) 2005-12-29 2014-01-07 Nextlabs, Inc. Enforcing document control in an information management system
US7702322B1 (en) 2006-02-27 2010-04-20 Good Technology, Llc Method and system for distributing and updating software in wireless devices
EP1926037A1 (en) 2006-11-27 2008-05-28 Research In Motion Limited System and Method for Controlling Access to a Memory Device of an Electronic Device
US8621605B2 (en) 2007-10-09 2013-12-31 International Business Machines Corporation Method for reducing the time to diagnose the cause of unexpected changes to system files
US20090100060A1 (en) 2007-10-11 2009-04-16 Noam Livnat Device, system, and method of file-utilization management
US8566961B2 (en) * 2008-08-08 2013-10-22 Absolute Software Corporation Approaches for a location aware client
US20120226823A1 (en) 2008-10-12 2012-09-06 Confidela Ltd Document distribution system and method
US20100212010A1 (en) 2009-02-18 2010-08-19 Stringer John D Systems and methods that detect sensitive data leakages from applications
US20100275154A1 (en) 2009-04-23 2010-10-28 Noam Livnat System and Method For Securely Presenting Data
EP2515239B1 (en) * 2009-12-14 2017-03-29 Panasonic Intellectual Property Management Co., Ltd. Information processing apparatus
US10482254B2 (en) * 2010-07-14 2019-11-19 Intel Corporation Domain-authenticated control of platform resources
US8694738B2 (en) * 2011-10-11 2014-04-08 Mcafee, Inc. System and method for critical address space protection in a hypervisor environment
US9342329B2 (en) 2011-12-20 2016-05-17 Blackberry Limited Method and system for cross-operating systems execution of software applications
US9935813B2 (en) 2011-12-20 2018-04-03 Blackberry Limited Virtual window screen rendering using application connectors
US9197408B2 (en) * 2013-05-10 2015-11-24 Sap Se Systems and methods for providing a secure data exchange
JP5702458B2 (ja) * 2013-12-27 2015-04-15 フェリカネットワークス株式会社 情報処理装置、プログラム、および情報処理システム

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2020119023A (ja) * 2019-01-18 2020-08-06 日本電気株式会社 ファイルアクセス制御方法、コンピュータプログラム及びコンピュータ
JP7215181B2 (ja) 2019-01-18 2023-01-31 日本電気株式会社 ファイルアクセス制御方法、コンピュータプログラム及びコンピュータ

Also Published As

Publication number Publication date
EP3241145A1 (en) 2017-11-08
WO2016109038A1 (en) 2016-07-07
US9659170B2 (en) 2017-05-23
US20180096138A1 (en) 2018-04-05
KR20170097211A (ko) 2017-08-25
US9536083B2 (en) 2017-01-03
US20160196442A1 (en) 2016-07-07
US20160196424A1 (en) 2016-07-07
CA2972019A1 (en) 2016-07-07
CN107111724A (zh) 2017-08-29
JP2018503910A (ja) 2018-02-08

Similar Documents

Publication Publication Date Title
JP6263675B1 (ja) 信頼できない装置におけるデータの保護
US9760720B2 (en) Securing temporary data on untrusted devices
US9961053B2 (en) Detecting compromised credentials
EP3404948B1 (en) Centralized selective application approval for mobile devices
US9424058B1 (en) File deduplication and scan reduction in a virtualization environment
US10405156B2 (en) Managed device migration and configuration
US10104044B2 (en) Coerced encryption on connected devices
US9928373B2 (en) Technique for data loss prevention for a cloud sync application
US10333778B2 (en) Multiuser device staging
US11442752B2 (en) Central storage management interface supporting native user interface versions
US11531712B2 (en) Unified metadata search
US10318272B1 (en) Systems and methods for managing application updates
US9607176B2 (en) Secure copy and paste of mobile app data
US9977912B1 (en) Processing backup data based on file system authentication
US20140181238A1 (en) Access and control of mainframe-based data in non-mainframe format
JP6483459B2 (ja) ファイル管理システム及びファイル管理プログラム
US10389743B1 (en) Tracking of software executables that come from untrusted locations
US11200254B2 (en) Efficient configuration replication using a configuration change log
US9467452B2 (en) Transferring services in a networked environment
US11483386B1 (en) Selective deletion of synchronized content object copies based on a detected change
TW201814577A (zh) 用於防止計算機系統中數據惡意更改的方法和系統

Legal Events

Date Code Title Description
A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20170825

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20170825

A871 Explanation of circumstances concerning accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A871

Effective date: 20170825

A975 Report on accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A971005

Effective date: 20171127

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

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20171205

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20171218

R150 Certificate of patent or registration of utility model

Ref document number: 6263675

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees