(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-12-23
(45)【発行日】2025-01-07
(54)【発明の名称】暗号化ファイル制御
(51)【国際特許分類】
G06F 21/62 20130101AFI20241224BHJP
H04L 9/14 20060101ALI20241224BHJP
G06F 21/60 20130101ALI20241224BHJP
【FI】
G06F21/62 309
H04L9/14
G06F21/60 320
(21)【出願番号】P 2023518923
(86)(22)【出願日】2021-09-22
(86)【国際出願番号】 US2021051562
(87)【国際公開番号】W WO2022066775
(87)【国際公開日】2022-03-31
【審査請求日】2023-05-15
(32)【優先日】2020-09-22
(33)【優先権主張国・地域又は機関】US
(32)【優先日】2021-09-22
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】523105059
【氏名又は名称】ケヤビ・データ・コーポレイション
【氏名又は名称原語表記】KEYAVI DATA CORP.
(74)【代理人】
【識別番号】110001195
【氏名又は名称】弁理士法人深見特許事務所
(72)【発明者】
【氏名】ニジャシュア,パラシャント・シュリパッド
(72)【発明者】
【氏名】ルイス,エリオット・ダニエル
【審査官】上島 拓也
(56)【参考文献】
【文献】特開2002-236618(JP,A)
【文献】特開平10-320478(JP,A)
【文献】特開2000-268096(JP,A)
【文献】特開2009-117907(JP,A)
【文献】米国特許第08560785(US,B1)
【文献】米国特許出願公開第2008/0162931(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 21/62
H04L 9/14
G06F 21/60
(57)【特許請求の範囲】
【請求項1】
アクセスクライアントにおけるデータセキュリティのための方法であって、
ファイルに関連付するメタデータに少なくとも部分的に基づいて、前記ファイルが前記アクセスクライアントに関連していることを識別するステップであって、前記ファイルは、1つまたは複数のアクセス鍵のうちの第1の鍵を使用して暗号化されたペイロードと、前記1つまたは複数のアクセス鍵のうちの少なくとも第2の鍵を使用して暗号化された1つまたは複数の暗号化データパックとを含む、ステップと、
サーバに、アクセスされる
前記ファイルのアクセス情報およびファイル情報を含むアクセス要求を送信するステップと、
を含み、前記アクセス要求を送信するステップは、
復号要求および前記ファイル情報を前記サーバに送信するステップであって、前記復号要求は、前記ファイルが前記アクセスクライアントに関連していることに少なくとも部分的に基づいて前記サーバに送信される、ステップを含み、
前記アクセス要求の送信に少なくとも部分的に基づいて、前記サーバから実行可能コードおよび1つまたは複数のアクセス鍵を含むアクセスパッケージを受信するステップ
であって、前記実行可能コードは、前記ファイルを復号するために使用されるコードを含む、ステップと、
前記アクセスクライアントによって、前記1つまたは複数のアクセス鍵を使用して前記ファイルにアクセスするために前記実行可能コードを実行するステップと、
前記アクセスクライアントに関連するメモリから前記アクセスパッケージを削除するステップと、を含む、方法。
【請求項2】
前記アクセス要求を送信するステップは、
前記サーバに、暗号化要求および前記ファイル情報を送信するステップを含む、請求項1に記載の方法。
【請求項3】
前記アクセスパッケージを受信するステップは、
前記ファイルに関連する1つまたは複数のファイルアクセスポリシーの指示を含むデータパックを含む前記アクセスパッケージを受信するステップであって、前記データパックは前記1つまたは複数のアクセス鍵を使用して前記ファイルで暗号化されている、ステップを含む、請求項2に記載の方法。
【請求項4】
前記1つまたは複数のファイルアクセスポリシーは、読み取りアクセス、書き込みアクセス、表示制約、またはそれらの組み合わせを含む、請求項3に記載の方法。
【請求項5】
前記アクセスパッケージを受信するステップは、
前記ファイルに関連する所有権情報の指示を含むデータパックを含む前記アクセスパッケージを受信するステップであって、前記データパックは前記1つまたは複数のアクセス鍵を使用して前記ファイルで暗号化されている、ステップを含む、請求項2に記載の方法。
【請求項6】
前記暗号化要求を送信するステップは、
前記サーバに、前記ファイルに関連する1つまたは複数のファイルアクセスポリシーの指示を送信するステップを含む、請求項2に記載の方法。
【請求項7】
前記実行可能コードを実行するステップは、
暗号化ファイルを生成するために、前記実行可能コードを使用して、前記1つまたは複数のアクセス鍵を使用してペイロードおよび1つまたは複数のデータパックを暗号化するステップを含む、請求項2に記載の方法。
【請求項8】
前記1つまたは複数のデータパックを暗号化するステップは、
1つまたは複数のファイルアクセスポリシー、ファイル所有権情報、ファイルアクセス監査ログ、またはそれらの組み合わせの指示を含む前記1つまたは複数のデータパックを暗号化するステップを含む、請求項7に記載の方法。
【請求項9】
前記アクセスパッケージを受信するステップは、
1つまたは複数の更新されたファイルアクセスポリシーを含むデータパックを含む前記アクセスパッケージを受信するステップとを含む、請求項
1に記載の方法。
【請求項10】
前記アクセスクライアントにおいて、アクセスクライアント情報、コンピュータ情報、デバイス情報、地理的位置情報、認証トークン、またはそれらの組み合わせを含む検証情報を識別するステップであって、前記復号要求は、前記検証情報の指示を含む、ステップをさらに含む、請求項
1に記載の方法。
【請求項11】
前記アクセスクライアントに関連する前記メモリ内で、前記実行可能コードを実行することに少なくとも部分的に基づいて、前記ファイルを復号または暗号化するために使用されるアクセスオブジェクトをインスタンス化するステップであって、前記アクセスオブジェクトは、前記ファイルの復号または暗号化の後に前記アクセスクライアントに関連する前記メモリから削除される、ステップをさらに含む、請求項1に記載の方法。
【請求項12】
復号要求および前記ファイル情報を前記サーバに送信するステップであって、前記実行可能コードは、前記ファイルの内容を上書きするために使用されるコードをを含む、ステップをさらに含む、請求項1に記載の方法。
【請求項13】
前記アクセス要求を送信するステップは、
前記アクセスクライアントを実行するユーザデバイスの地理的位置、前記ユーザデバイスに関連するデバイス情報、前記ユーザデバイスに関連するネットワーク情報、前記アクセスクライアントに関連する認証トークン、またはそれらの組み合わせを含む前記アクセス情報を含む前記アクセス要求を送信するステップを含む、請求項1に記載の方法。
【請求項14】
前記実行可能コードを実行するステップは、
前記1つまたは複数のアクセス鍵を使用して前記ファイルを復号するステップを含む、請求項
1に記載の方法。
【請求項15】
前記ファイルに関連する1つまたは複数のアクセスポリシーにしたがって、前記アクセスクライアントにおいて前記ファイルのペイロードを表示するステップをさらに含む、
請求項
14に記載の方法。
【請求項16】
前記1つまたは複数のアクセスポリシーは、読み取りアクセス、書き込みアクセス、表示制約、またはそれらの組み合わせを含む、請求項
15に記載の方法。
【請求項17】
前記1つまたは複数のアクセスポリシーは、前記1つまたは複数のアクセス鍵を使用して前記ファイルで復号されたデータパックに含まれる、請求項
15に記載の方法。
【請求項18】
前記アクセスクライアントに関連するデバイス情報、ユーザ情報、地理的位置情報、またはそれらの組み合わせを含むようにファイルアクセス監査ログを更新するステップをさらに含む、請求項
14に記載の方法。
【請求項19】
前記ファイルの復号に少なくとも部分的に基づいて、前記ファイル内のペイロードおよび1つまたは複数のデータパックを識別するステップであって、前記1つまたは複数のデータパックは、1つまたは複数のファイルアクセスポリシー、所有権情報、ファイルアクセス監査ログ、またはそれらの組み合わせの指示を含む、ステップをさらに含む、請求項
14に記載の方法。
【請求項20】
アクセスクライアントにおけるデータセキュリティのための装置であって、
プロセッサと、
前記プロセッサに結合されたメモリと、
前記メモリに格納され、前記プロセッサによって実行可能な命令であって、前記装置に、
ファイルに関連付するメタデータに少なくとも部分的に基づいて、前記ファイルが前記アクセスクライアントに関連していることを識別させ、前記ファイルは、1つまたは複数のアクセス鍵のうちの第1の鍵を使用して暗号化されたペイロードと、前記1つまたは複数のアクセス鍵のうちの少なくとも第2の鍵を使用して暗号化された1つまたは複数の暗号化データパックとを含み、
アクセスされる
前記ファイルのアクセス情報およびファイル情報を含むアクセス要求をサーバに送信させ、
前記アクセス要求を送信することは、
復号要求および前記ファイル情報を前記サーバに送信することを含み、前記復号要求は、前記ファイルが前記アクセスクライアントに関連していることに少なくとも部分的に基づいて前記サーバに送信され、
前記アクセス要求の送信に少なくとも部分的に基づいて、実行可能コードおよび1つまたは複数のアクセス鍵を含むアクセスパッケージを前記サーバから受信させ、
前記実行可能コードは、前記ファイルを復号するために使用されるコードを含み、
前記アクセスクライアントによって、前記1つまたは複数のアクセス鍵を使用して前記ファイルにアクセスするために前記実行可能コードを実行させ、
前記アクセスクライアントに関連するメモリから前記アクセスパッケージを削除させる、命令と、を含む、装置。
【請求項21】
アクセスクライアントにおけるデータセキュリティのためのコードを格納する非一時的コンピュータ可読媒体であって、前記コードは、
ファイルに関連付するメタデータに少なくとも部分的に基づいて、前記ファイルが前記アクセスクライアントに関連していることを識別し、前記ファイルは、1つまたは複数のアクセス鍵のうちの第1の鍵を使用して暗号化されたペイロードと、前記1つまたは複数のアクセス鍵のうちの少なくとも第2の鍵を使用して暗号化された1つまたは複数の暗号化データパックとを含み、
アクセスされるファイルのアクセス情報およびファイル情報を含むアクセス要求をサーバに送信し、
前記アクセス要求を送信することは、
復号要求および前記ファイル情報を前記サーバに送信することを含み、前記復号要求は、前記ファイルが前記アクセスクライアントに関連していることに少なくとも部分的に基づいて前記サーバに送信され、
前記アクセス要求の送信に少なくとも部分的に基づいて、実行可能コードおよび1つまたは複数のアクセス鍵を含むアクセスパッケージを前記サーバから受信し、
前記実行可能コードは、前記ファイルを復号するために使用されるコードを含み、
前記アクセスクライアントによって、前記1つまたは複数のアクセス鍵を使用して前記ファイルにアクセスするために前記実行可能コードを実行し、
前記アクセスクライアントに関連するメモリから前記アクセスパッケージを削除するようにプロセッサによって実行可能な命令を含む、非一時的コンピュータ可読媒体。
【発明の詳細な説明】
【技術分野】
【0001】
相互参照
本特許出願は、2021年9月22日に出願された「ENCRYPTED FILE CONTROL」と題するNIJASUREらによる米国特許出願第17/482,010号、および2020年9月22日に出願された「ENCRYPTED FILE CONTROL」と題するNIJASUREらによる米国仮特許出願第63/081,763号に対する優先権を主張するものであり、これらの各々は、本明細書の譲受人に譲渡され、その全体が参照により本明細書に明確に組み込まれる。
【0002】
技術分野
本開示は、一般に、データセキュリティに関し、より具体的には、暗号化ファイル制御に関する。
【背景技術】
【0003】
背景
ファイル暗号化は、安全でないネットワークを介してコンピュータ間でファイルを共有することを可能にし、第三者が機密データにアクセスするのを妨げることができる。しかしながら、ファイル暗号化は、ファイルを暗号化するために使用される鍵の安全性と同程度にしか安全でない可能性がある。
【発明の概要】
【課題を解決するための手段】
【0004】
概要
記載された技術は、暗号化ファイル制御をサポートする改善された方法、システム、デバイス、および装置に関する。一般に、記載された技術は、ファイルを暗号化するために使用される暗号鍵を損なうことなく、暗号化ファイルを共有することを提供する。暗号化ファイルのペイロードは、複数のリポジトリに格納された複数のソルトおよび鍵でソルト処理および暗号化される。ファイルを暗号化または復号するためのアクセス要求に応答して、サーバは、アクセスを実行するための情報(例えば、データおよび/またはコード)を含むアクセスパッケージを生成する。例えば、データパックがソースコードを含む場合、ソースコードには、暗号化ファイルのペイロードを暗号化または復号するために使用されるソルトおよび鍵が注入され得る。サーバは、サーバにアクセス要求を送信したアクセスデバイスに、アクセスパッケージと共にアクセス応答を送信する。アクセスデバイスは、アクセスパッケージからソースコードをコンパイルして、暗号化ファイルのペイロードを暗号化または復号することができる実行可能ファイルを生成することができる。場合によっては、アクセスデバイスは、アクセスパッケージに含まれるデータに基づいてペイロードのデータを変換することができる。使用された後、実行可能ファイルおよび/またはアクセスパッケージは、ソルトおよび鍵がアクセスデバイスのメモリ内にある時間を最小限に抑えるために、アクセスデバイスから削除されてもよい。ソルトおよびキーをアクセスデバイスに格納しないことにより、アクセスデバイスが危険にさらされる影響および確率が低減される。
【0005】
図面の簡単な説明
【図面の簡単な説明】
【0006】
【
図1】本開示の態様にしたがって暗号化ファイル制御をサポートするシステムの例を例示する。
【
図2】本開示の態様にしたがって暗号化ファイル制御をサポートする暗号化ファイルの例を例示する。
【
図3】本開示の態様にしたがって暗号化ファイル制御をサポートするコンピューティングアーキテクチャの例を例示する。
【
図4】本開示の態様にしたがって暗号化ファイル制御をサポートするプロセスフローの例を例示する。
【
図5】本開示の態様にしたがって暗号化ファイル制御をサポートするプロセスフローの例を例示する。
【
図6】本開示の態様にしたがって暗号化ファイル制御をサポートするアクセスデバイスシナリオの例を例示する。
【
図7】本開示の態様にしたがって暗号化ファイル制御をサポートするユーザデバイスのブロック図を示す。
【
図8】本開示の態様にしたがって暗号化ファイル制御をサポートするデバイスを含むシステムの図を示す。
【
図9】本開示の態様にしたがって暗号化ファイル制御をサポートするデータセキュリティ構成要素のブロック図を示す。
【
図10】本開示の態様にしたがって暗号化ファイル制御をサポートするデバイスを含むシステムの図を示す。
【
図11】本開示の態様にしたがって暗号化ファイル制御をサポートする方法を例示するフローチャートを示す。
【
図12】本開示の態様にしたがって暗号化ファイル制御をサポートする方法を例示するフローチャートを示す。
【
図13】本開示の態様にしたがって暗号化ファイル制御をサポートする方法を例示するフローチャートを示す。
【
図14】本開示の態様にしたがって暗号化ファイル制御をサポートする方法を例示するフローチャートを示す。
【
図15】本開示の態様にしたがって暗号化ファイル制御をサポートする方法を例示するフローチャートを示す。
【
図16】本開示の態様にしたがって暗号化ファイル制御をサポートする方法を例示するフローチャートを示す。
【
図17】本開示の態様にしたがって暗号化ファイル制御をサポートする方法を例示するフローチャートを示す。
【
図18】本開示の態様にしたがって暗号化ファイル制御をサポートする方法を例示するフローチャートを示す。
【
図19】本開示の態様にしたがって暗号化ファイル制御をサポートする方法を例示するフローチャートを示す。
【
図20】本開示の態様にしたがって暗号化ファイル制御をサポートする方法を例示するフローチャートを示す。
【
図21】本開示の態様にしたがって暗号化ファイル制御をサポートする方法を例示するフローチャートを示す。
【
図22】本開示の態様にしたがって暗号化ファイル制御をサポートする方法を例示するフローチャートを示す。
【
図23】本開示の態様にしたがって暗号化ファイル制御をサポートする方法を例示するフローチャートを示す。
【発明を実施するための形態】
【0007】
詳細な説明
データを不正アクセスから保護するために、様々な環境で暗号化技術が使用されている。様々な形態の暗号鍵が、データの暗号化、データの復号、データの安全な送信などに使用され得る。しかしながら、これらの技術は、データを保護するために、ユーザおよびシステムが鍵およびデータの制御、格納、および可視性を維持することを必要とする。例えば、組織は、データを保護するために、他の技術およびシステムの中でも、デバイス管理技術およびシステム、識別管理技術およびシステム、ストレージ管理技術およびシステム、クラウド格納技術およびシステム、データ分類技術およびシステムを実装する。これらのシステムおよび技術の複雑さ、ならびに悪意のある行為者の急増により、データ損失および不正なデータアクセスが広がっている。
【0008】
本明細書で説明される実装形態は、自己保護、自己認識、および自己インテリジェントデータのためのシステムおよび技術をサポートする。記載された実装形態は、本明細書に記載された技術を使用してデータを保護するためにサーバと対話するように構成されたアクセスクライアントをサポートする。これらの技術は、即時かつ動的なデータ制御をサポートする。例えば、第1のユーザが暗号化ファイルを第2のユーザに送信し、第1のユーザがもはや第2のユーザにファイルへのアクセスを望まない場合である。第1のユーザは、第2のユーザが自分のデバイス上に既にファイルを持っている場合であっても、ほぼリアルタイムで第2のユーザのファイルへのアクセスを制限するためにプラットフォームにアクセスすることができる。これらの技術は、ファイルレベル、ファイルのグループまたはファイルのフォルダ、チームレベル、組織レベルなどを含む様々なレベルの粒度でサポートされる。さらに、これらの技術は、ファイル内の様々な要素または部分に適用可能であり得る。例えば、ファイルは、1つまたは複数のデータオブジェクト(例えば、オブジェクトのリンクおよび埋め込みオブジェクト(OLE)、画像)を含むことができ、これらのオブジェクトは、本明細書に記載の様々なファイルアクセスポリシー技術を適用しながら、(ファイル自体とは別個に)暗号化および復号することができる。さらに、記載された技術は、他の制限の中でも、地理的位置、デバイスタイプ、および期間などの様々な考慮事項を使用してファイルアクセス制限またはポリシーをサポートする。例えば、ユーザは、特定の国にいる他のユーザによるファイルまたはファイルのグループへのアクセスを制限することができる。これらの制限は、他のユーザが特定の国で自分のパーソナルデバイス上に既にファイルを持っている場合でも、ほぼリアルタイムで実施することができる。
【0009】
これらの様々な技術をサポートするために、サーバは、アクセスクライアントからの要求に応答して、ユーザデバイス上で実行されているアクセスクライアントにアクセスパッケージを生成および送信することができる。アクセスパッケージは、1つまたは複数の暗号鍵および実行可能コードを含むことができる。アクセスクライアントは、ペイロード(例えば、ファイル)を暗号化または復号するために実行可能コードを実行するように構成される。暗号化ファイルは、他の情報の中でも、ファイル所有権情報、ファイルアクセスポリシー、アクセスログを含む1つまたは複数のデータパックを含むことができる。これらのデータパックは、本明細書でさらに詳細に説明するように、データが自己インテリジェントであることを可能にする。さらに、アクセスクライアントが通信するように構成されたサーバは、認可されたユーザアクセス、デバイスアクセスなどの様々なファイルアクセスポリシーを維持することができる。サーバは、ファイルおよびアクセスポリシー(検証パラメータ)のマッピングを維持することができる。したがって、ファイルを暗号化/復号する要求を受信すると、サーバは、ユーザ/デバイスが暗号化/復号を実行することを認可されているかを確認し、対応する鍵を識別し、アクセスパッケージを生成し、アクセスパッケージをクライアントに送信する。したがって、自己インテリジェントなデータ構成、アクセスクライアント、およびサーバは、動的な方法でデータセキュリティを維持するように機能する。これらおよび他の実装形態は、図面を参照してさらに詳細に説明される。
【0010】
本開示の態様は、暗号化ファイル制御をサポートするコンピューティング環境の文脈で最初に説明される。本開示の態様は、暗号化ファイル制御をサポートするアクセスパッケージ、例示的なファイル制御シナリオ、およびプロセスフロー図に関してさらに説明される。本開示の態様は、暗号化ファイル制御に関する装置図、システム図、およびフローチャートによってさらに示され、それらを参照して説明される。
【0011】
図1は、本開示の態様にしたがって暗号化ファイル制御をサポートするシステム100の例を例示する。システム100は、暗号化ファイルへのアクセスを作成および制御するように構成される。システム100は、アクセスデバイス105、モバイルデバイス110、サーバ115、およびリポジトリ120を含む。
【0012】
アクセスデバイス105は、サーバ115との通信に基づいて暗号化ファイルと対話する。アクセスデバイス105の各々は、アクセスデバイス105上で実行するアクセスクライアント125と共に、ファイルを生成および暗号化するための暗号化デバイスとして、ならびに暗号化ファイルを復号および閲覧するための復号デバイスとして機能することができる。一例として、アクセスデバイス105bは、(サーバ115と連携して)暗号化ファイルを生成し、暗号化ファイルをアクセスデバイス105aに送信する暗号化デバイスであってもよい。アクセスデバイス105aは、(サーバ115と連携して)暗号化ファイルを復号し、暗号化ファイルに関連するポリシーにしたがって暗号化ファイルを閲覧する復号デバイスであってもよい。
【0013】
アクセスデバイス105は、
図8に記載されたものによるコンピューティングシステムの例であってもよく、例えば、スマートフォン、ラップトップコンピュータ、タブレット、デスクトップコンピュータなどであってもよい。アクセスデバイス105は、有線または無線通信技術を用いて、その他のアクセスデバイス105、モバイルデバイス110、およびサーバ115と対話することができる。
【0014】
アクセスデバイス105aは、ファイルを暗号化し、他のアクセスデバイスから暗号化ファイルを受信し、サーバ115と対話して、暗号化ファイルを生成してアクセスし、暗号化ファイルから復号された情報を提示し、モバイルデバイス110との接続を確立し、データを更新することができる。アクセスデバイス105aは、アクセスクライアント125を含む。
【0015】
アクセスクライアント125は、暗号化ファイルを生成、アクセス、および閲覧する、アクセスデバイス105a上で動作するプログラムのセットである。アクセスクライアント125は、ネイティブアプリケーションまたはアクセスデバイス105a上のウェブブラウザを介して動作するウェブベースのアプリケーションであってもよい。アクセスアプリケーションは、ユーザインターフェース130aおよびアクセス実行可能ファイル135aを含むことができる。アクセスクライアント125はまた、ワードプロセッシングアプリケーション、スプレッドシートアプリケーションなどの様々なファイル閲覧アプリケーション用のアプリケーションプラグインであってもよい。
【0016】
ユーザインターフェース130aは、ユーザ対話を処理するアクセスクライアント125の一部である。ユーザインターフェース130aは、ユーザに出力を提供し、ユーザから入力を受信するユーザインターフェース要素(ボタン、テキストボックス、メディアプレーヤウィンドウなど)を含む。アクセス実行可能ファイル135aは、アクセスデバイス105a上の暗号化ファイルを操作するためにサーバ115からのアクセスパッケージからアクセスデバイス105aによって作成された実行可能ファイルである。一例として、アクセス実行可能ファイル135aは、ダイナミックリンクライブラリ(DLL)であってもよい。アクセス実行可能ファイル135aは、アクセス関数140aを含む。アクセス関数140aは、関数を実行するアクセス実行可能ファイル135aの一部である。アクセス関数140aは、暗号化ファイルを作成する暗号化関数、暗号化ファイルを復号する復号関数、暗号化ファイルを削除する終了関数、デコイ関数などであってもよい。デコイ関数は、暗号化ファイルから予想される出力と同様であるが、暗号化ファイルのペイロードからのデータを含まない暗号化ファイルの出力を提供することができる。
【0017】
アクセスデバイス105bは、ユーザインターフェース130bおよびアクセス実行可能ファイル135bを含むアクセスクライアント125bを含む。アクセス実行可能ファイル135bは、アクセス関数140bを含む。アクセスデバイス105bのハードウェアおよび構成要素は、アクセスデバイス105aのものと同様に動作する。
【0018】
モバイルデバイス110は、アクセスデバイス105aと対話して、ネットワーク接続を確立し、データを転送する。モバイルデバイス110は、
図8に記載されたものによるコンピューティングシステムであり、例えば、スマートフォン、デスクトップコンピュータ、ラップトップコンピュータ、タブレット、または他のタイプのパーソナルデバイス(例えば、セキュリティカードまたはセキュリティキー)であってもよい。モバイルデバイス110は、アクセスデバイス105aとのパーソナルエリア無線接続を確立し、位置情報を転送することができる。モバイルデバイス110は、モバイルアプリケーション145を含む。
【0019】
モバイルアプリケーション145は、アクセスデバイス105aとの接続を確立し、位置データを収集し、位置データを転送する、モバイルデバイス110上で動作するプログラムのセットである。モバイルアプリケーション145は、モバイルデバイスの位置を決定し、モバイルデバイス110の経度、緯度、および高度を含むことができるモバイルデバイス110の測位システム(例えば、全地球測位システム(GPS)モジュール)から位置データを収集することができる。
【0020】
サーバ115は、暗号化ファイルへのアクセスを制御するためにシステム100の他の構成要素と対話する。サーバ115は、
図10に記載されたものによるコンピューティングシステムの一例であってもよく、例えば、サーバアプリケーション185をホストする1つまたは複数のクラウド環境内の複数のサーバのうちの1つであってもよい。
【0021】
サーバアプリケーション185は、アクセスデバイス105bを介したアクセスデバイス105aからのアクセス要求に対するアクセス応答を提供するプログラムのセットであり、サービスプロバイダによって管理され得る。サーバ115は、アクセスデバイス105bを介したアクセスデバイス105aからの暗号化ファイルに対するアクセス要求を受信する。サーバアプリケーション185は、ユーザ資格情報(ユーザ識別子、電子メールアドレス、アクセストークンなど)、アクセスデバイス位置情報、モバイルデバイス位置情報、ユーザ特権情報、ファイルアクセス許可などを含むいくつかのタイプの情報を使用してアクセス要求を認可する。
【0022】
サーバアプリケーション185は、アクセス要求の認可に基づいてアクセス要求に対するアクセス応答を生成する。サーバアプリケーション185は、アクセスデバイス105bを介してアクセスデバイス105aに返されるアクセス応答内に含まれるアクセスパッケージを生成する。アクセスパッケージは、鍵サーバ190のうちの1つまたは複数からの鍵を含む情報が注入されたリポジトリ120からのソースコードを含む。アクセスパッケージは、アクセスデバイス105によってコンパイルされて、それぞれのアクセス実行可能ファイル135およびそれぞれのアクセス関数140を形成することができる。
【0023】
鍵サーバ190は、システム100内のファイルを暗号化および復号するために使用される鍵を生成および維持する。鍵サーバ190は、サーバ115と通信する。鍵サーバ190は、システム100が1つでも侵害点を有するのを防ぎ、セキュリティを向上させるために、異なるクラウドゾーンおよび異なるクラウド環境の異なるサーバにホストすることができる。異なる鍵サーバは、異なるタイプの鍵を格納することができる。例えば、1つの鍵サーバがペイロード鍵を管理してもよく、別のサーバがマイクロデータベースキーを管理してもよく、別の鍵サーバがファイル鍵を管理してもよい。システム100を使用して、異なるエンティティに対して異なる鍵サーバおよび鍵サーバのセットを設定することができる。例えば、第1のエンティティは、異なるタイプの鍵のために第1のセットの鍵サーバを使用することができ、第2のエンティティは、第1のセットの鍵サーバとは異なり得る第2のセットの鍵サーバを有することができる。
【0024】
リポジトリ120は、
図10に記載されたものによる複数のコンピューティングデバイスを含むことができるコンピューティングシステムである。リポジトリ120は、サーバアプリケーション185をホストするクラウドサービスプロバイダによってホストされてもよい。クラウドサービスプロバイダは、ホスティングサービス、仮想化サービス、およびデータストレージサービス、ならびに他のクラウドサービスを提供することができる。サーバアプリケーション185を管理するサービスプロバイダは、データ、プログラム、およびリポジトリ120にデータを格納しそこからデータを取得するアプリケーションを操作および制御することができる。リポジトリ120内のデータは、ソースコード、フィルタ、データベースなどを含むことができる。一例として、リポジトリ120は、アクセスソースコード150、難読化フィルタ175、およびマクロデータベース180を含む。
【0025】
アクセスソースコード150は、追加情報(例えば、1つまたは複数の鍵サーバ190からの鍵)が注入された後にアクセス実行可能ファイル135を生成するために使用されるソースコードである。アクセスソースコード150は、暗号化ソースコード155、復号ソースコード160、ユーザ権ソースコード165、終了ソースコード170を含む。暗号化ソースコード155は、ペイロードを暗号化して暗号化ファイルを生成するための命令を含む。復号ソースコード160は、暗号化ファイルを復号して暗号化ファイルからペイロードを復元するための命令を含む。ユーザ権ソースコード165は、ユーザアクセス権(例えば、フルアクセス、共同アクセス、および読み取り専用アクセス)に基づいて暗号化ファイルを処理するための命令を含む。終了ソースコード170は、暗号化ファイルをアクセスデバイスから削除するための命令を含む。
【0026】
ファイルに対するユーザアクセス権は、フルアクセス、共同アクセス、および読み取り専用アクセスなどの様々なレベルを含むことができる。フルアクセスでは、ユーザは、外部アプリケーションで編集することができる元のファイルを復元することができる。例えば、スプレッドシートを復元し、ネイティブスプレッドシートアプリケーションで編集することができる。共同アクセスでは、ユーザは、暗号化ファイル内の情報を閲覧および更新することができるが、元のファイルを復元することはできない。例えば、ユーザは、アクセスクライアント125内の暗号化ファイルのペイロードから情報を閲覧および編集することができるが、暗号化ファイルのペイロードから情報を保存または印刷することができない場合がある。読み取り専用アクセスでは、ユーザは暗号化ファイルから情報を閲覧することができ、情報を編集することはできない。例えば、ユーザは、アクセスクライアント125を使用して情報を閲覧することができるが、閲覧中の暗号化ファイルからの情報を編集、印刷、または保存することはできない。アクセスポリシーとも呼ばれ得るユーザアクセス権は、アクセスクライアント125および/またはアクセス実行可能ファイル135によって実施され得る。場合によっては、ユーザアクセス権は、ペイロードがビデオ会議アプリケーション内で共有されるのを妨げる場合がある。
【0027】
難読化フィルタ175は、データ損失防止(DLP)を実施する。難読化フィルタ175は、難読化するデータのタイプおよび構造を識別する。一例として、難読化フィルタは、正規表現を使用して、検索文字列「\d{3}-\d\{2\}-\d\{4\}」で社会保障番号を識別し、一致を置換文字列「XXX-XX-XXXX」に置換して文書から社会保障番号を削除することができる。難読化フィルタ175は、暗号化ファイルのペイロードが個人識別情報を含まないように、ペイロードを暗号化する前に適用されてもよい。さらに、難読化フィルタ175は、暗号化ファイルの復号後に適用されて、暗号化ファイルから個人を識別する情報を閲覧または配布することを防止することができる。例えば、難読化フィルタ175は、アクセスポリシーまたはユーザ権として実施されてもよい。
【0028】
マクロデータベース180は、システム100が制御するファイルに関する情報を格納する。マクロデータベース180は、システム100の各暗号化ファイルに格納されたマイクロデータベース内の情報のスーパーセット(例えば、データパックとも呼ばれる)を含むことができる。マクロデータベース180は、各暗号化ファイルの各アクセスに関する情報を格納する。例えば、暗号化ファイル用のマクロデータベース180は、暗号化ファイルへのアクセス日、アクセスのタイプ(作成、読み取り、書き込み、更新など)、ユーザに関する情報(例えば、ユーザ識別子)、アクセスデバイスに関する情報(ハードウェア識別子、ソフトウェア識別子、ネットワーク接続識別子、機械アドレスコード(MAC)アドレス識別子など)の列を有する情報のテーブルを含むことができる。テーブルの行は、異なるアクセスイベントを区別することができる。マクロデータベース180は、システム100の暗号化ファイルにアクセスするユーザおよびマシンを識別する管理チェーンを文書化する。
【0029】
マクロデータベース180は、アクセスイベント情報を格納するために、ハッシュチェーンを使用することができる。例えば、暗号化ファイルについてマクロデータベース180に追加された各アクセスイベントについて、アクセスイベントの情報は、ハッシュペイロードを形成するために以前のハッシュ値と組み合わされる。ハッシュペイロードに暗号化ハッシュアルゴリズムを適用して、アクセスイベント情報と共に格納される新しいハッシュ値を生成する。新しいハッシュ値は、ハッシュ値の不変のチェーンを形成するために、後続のアクセスイベントのための「以前のハッシュ値」として使用され得る。ハッシュチェーン内の情報が修正される場合、後続のハッシュ値は正しくなくなる。
【0030】
システム100の各構成要素は、動的、自己インテリジェント、および自己保護データセキュリティをサポートするために連携して動作する。例えば、ユーザは、アクセスクライアント125aにアクセスしてファイルを保護し、様々なユーザにファイルへのアクセスを許可することができる。アクセスクライアント125aを使用して、ユーザは、保護されるべきファイルを選択する。ファイルは、ビデオファイル、オーディオファイル、ワードプロセッサファイル、テキストファイル、マルチメディアファイル、PDFなどの一例であってもよい。保護するためにファイルを選択した後、ユーザは、アクセスクライアント125aによって、ファイルアクセスポリシーに対応するユーザアクセスパラメータを選択するように促され得る。これらのユーザアクセスパラメータ(またはユーザアクセスポリシー)は、他のタイプのポリシーおよび制限の中でも、ファイル、位置またはジオフェンシングの制限(例えば、オフィスまたはその他の管理上認可された場所)、期間または解禁時間制限、デバイスの制限を閲覧することを認可されたユーザを含むことができる。ユーザを選択するために、アクセスクライアント125aは、連絡先またはユーザのローカルまたはリモートのリストにアクセスし、各ユーザについてファイルにアクセスするユーザおよびアクセスのタイプ(例えば、読み取り専用、共同、フルアクセス)を検索および/または選択するようにユーザに促すことができる。
【0031】
アクセスポリシーを選択した後、ユーザは、ユーザインターフェース(UI)構成要素を選択してファイルを暗号化することができる。本明細書でさらに詳細に説明するように、アクセスクライアント125aは、ファイル暗号化の要求に応答して、サーバ115からアクセスパッケージを受信することができる。アクセスパッケージは、アクセス実行可能ファイル135aを含むことができ、アクセスクライアント125aは、アクセスパッケージ内のサーバ115から受信した鍵を使用してファイルを暗号化するために実行可能ファイル135aの命令を実行することができる。ファイルの暗号化は、新しいファイル拡張子(例えば、元のファイルとは異なる)を有する新しい暗号化ファイルをもたらし、新しい暗号化ファイルは、暗号化ファイル自体に埋め込まれたファイルアクセスポリシーに基づいてインテリジェント(権利管理認識)である。いくつかの実装形態では、新しい暗号化ファイルは元のファイルを置き換える。このような場合、暗号化ファイルの生成に成功すると、元ファイルは自動的に削除される。この機能は、組織の特定のポリシーに依存してもよいし、ファイル暗号化時にアクティブ化されてもよい。
【0032】
暗号化ファイルは、電子メール、FTP、データベースアクセス、リモートアクセスなどの様々な技術を使用して他の様々なユーザに渡すことができる。例えば、アクセスデバイス105bは、ユーザがファイルを開こうとする場合、暗号化ファイルへのローカルまたはリモートアクセスを有しており、アクセスクライアント125aは、復号要求をサーバ115に送信するように構成される。要求は、サーバ115で検証されるべき様々な情報を含むことができる。サーバ115が要求を許可する場合、サーバ115は、アクセス実行可能ファイル135bを含むアクセスパッケージで応答を送信する。アクセスクライアント125bは、ファイルおよびその構成要素(例えば、本明細書でさらに詳細に説明されるデータパック)を復号するためにアクセス実行可能ファイル135bの命令を実行する。アクセスクライアント125bは、データパックに含まれるユーザアクセス権またはアクセスポリシーを実施する。
【0033】
暗号化ファイルに含まれるデータパックは、所有権情報(例えば、ユーザ、デバイス、組織)、ファイルアクセスポリシー(例えば、ユーザアクセス権のタイプ)、およびアクセスログを含む。この情報は、暗号化ファイルと共に移動し、復号要求を介して更新され得る。ファイルアクセスポリシーがファイルに含まれているので、ファイルアクセスポリシーが実行されると、ファイルの内容(例えば、PDFなどのペイロード)にアクセスできる。
【0034】
さらに、本明細書で説明するように、サーバ115は、サーバアプリケーション185およびリポジトリ120を介して、ファイルポリシーおよびアクセス権を維持する。一般に(本明細書に記載されているように、いくつかの例外が存在する)、暗号化ファイルは、サーバと通信せずにアクセスクライアント125によって復号することはできない。したがって、ユーザ(例えば、管理ユーザまたはファイル所有者)は、アクセスクライアント125(例えば、アクセスクライアント125によってサポートされるダッシュボード)を使用して、様々なファイルに関連するファイルアクセスポリシーを更新することができる。ファイルの復号要求を受信すると、サーバ115は、ファイル内のアクセスポリシーが古くなっている(例えば、現行ではない)と決定し、更新されたアクセスポリシーをアクセスパッケージでアクセスクライアント125に送信することができる。したがって、ファイルアクセスは、更新されたアクセスポリシーを含めるためにファイルを最初に復号する必要なしに動的に更新され得る。さらに、サーバ通信は一般にファイルアクセス要求(例えば、復号または暗号化要求)で発生するため、サーバ115はそのような要求のログを維持することができる。ログは、管理ユーザがアクセス位置、アクセス拒否、アクセスを要求したユーザなどを閲覧するために使用するダッシュボードをサポートするために使用することができる。さらに、ダッシュボードを使用して、様々なユーザ、様々なファイルなどに対するアクセスポリシーをほぼリアルタイムで変更することができる。したがって、本明細書に記載の技術は、組織がそれらのファイルセキュリティ機構および結果の完全かつほぼリアルタイムのビューを有することを可能にすることができる。
【0035】
追加的または代替的に、本明細書に記載されたもの以外の他の問題を解決するために、本開示の1つまたは複数の態様をシステム100に実装することができることを当業者は理解されたい。さらに、本開示の態様は、本明細書に記載の「従来の」システムまたはプロセスに技術的改善を提供することができる。しかしながら、明細書および添付の図面は、本開示の態様を実施することから生じる例示的な技術的改善を含むにすぎず、したがって、特許請求の範囲内で提供される技術的改善のすべてを表すものではない。
【0036】
図2は、本開示の態様にしたがう暗号化ファイル制御をサポートする暗号化ファイル200の例を例示する。暗号化ファイル200は、(暗号化ファイル200に格納されていない)複数のソルトおよび鍵を使用してペイロード205へのアクセスを制御し、ペイロード205を不正アクセスから保護する。暗号化ファイル200は、ペイロード205、データパック210、およびメタデータ215を含む。
【0037】
ペイロード205は、暗号化ファイル200の元となる電子ファイルである。ペイロード205は、テキスト文書、スプレッドシート、スライドプレゼンテーション、ソースコードファイル、画像ファイル、アーカイブファイル、ビデオファイルなどを含む任意のタイプの電子ファイルを含むことができる。暗号化ファイル200は、ペイロード205内に単一のファイルを含むことができる。
【0038】
ペイロード205は、暗号化ファイル200に挿入される前に、ペイロードソルト220でソルト化され、ペイロード鍵225で暗号化されてもよい。いくつかの実装形態では、ペイロード鍵225は、256ビット長の高度暗号化規格(AES)256鍵とすることができる。いくつかの実装形態では、ペイロードソルト220は、ランダムに生成された8バイト値である。いくつかの実装形態では、ペイロードソルト220は、ペイロードソルト220をペイロード205に付加することによってペイロード205に適用される。
【0039】
データパック210(マイクロデータベース、所有者データベース、またはそれらの組み合わせとも呼ばれ得る)は、暗号化ファイル200への最近のアクセスに関するマクロデータベース(例えば、
図1のマクロデータベース180)の情報のサブセット、暗号化ファイル200に関連するファイルアクセスポリシー、および暗号化ファイルに関連する所有者情報を含むことができる。データパック210は、暗号化ファイル200にアクセスする以前の最後のユーザおよび暗号化ファイル200にアクセスする以前のアクセスデバイスを識別するアクセスログ情報(例えば、アクセスログ250内)を含むことができる。例えば、データパックは、暗号化ファイル200に以前にアクセスしたユーザおよびデバイスに関連するフィンガープリントを含むアクセスログ250を含むことができる。ユーザフィンガープリント情報は、電子メールアドレス、アクセストークン、ハッシュ値などを含むことができる。アクセスデバイスフィンガープリント情報は、ハードウェアおよび/またはソフトウェア識別子を含むことができる。いくつかの例では、アクセスログ250のフィンガー情報は、ネットワーク情報、地理的位置情報、アクセスクライアント情報などを含むことができる。場合によっては、アクセスログ250は、アクセスクライアントを実行するハードウェア構成要素を一意に識別するハードウェア情報を含む。一例として、ハードウェア情報は、ユーザのコンピューティングシステムからの汎用一意識別子(UUID)であるユーザサムプリントであってもよい。別の例として、ユーザサムプリントは、マザーボードシリアル番号であってもよい。アクセスログ250のアクセス情報は、アクセスタイムスタンプを含んでもよい。アクセスタイムスタンプは、暗号化ファイル200へのアクセスに最後に成功した日時を識別することができる。
【0040】
さらに、データパック210は、暗号化ファイル200のアクセス権(例えば、ファイルアクセスポリシー245)および暗号化ファイル200のエンティティまたは所有権情報(所有者データベースとも呼ばれる)の表示を含むことができる。ファイルアクセスポリシー245は、フルアクセス、共同アクセス、読み取り専用アクセスを示すことができ、グローバルベース、グループごとベース、ユーザごとベースなどで指定することができる。ファイルアクセスポリシーはまた、デジタル著作権管理情報を含むことができ、これは、暗号化ファイル200に対するユーザの特権およびアクセス権を識別するデータを含むファイルアクセスポリシーのサブセットであり得る。一例として、デジタル著作権管理情報は、以下のフィールドPrintAllowed、SaveAllowed、LocalCopy Allowed、ForwardAllowed、Collaborate、Readonly、およびFullAccessの値を含むことができる。デジタル著作権管理情報は、グローバルベース、グループごとベース、ユーザごとベースなどで構成することができる。アクセス権はまた、テレビ会議プログラムにおけるペイロードの共有の制限または許可など、様々なプログラムを使用した、ファイルへのアクセスを制限または許可する表示制約を含むことができる。
【0041】
印刷許可、保存許可、ローカルコピー許可、転送許可の値は、2値であってもよい。印刷許可フィールドの値は、暗号化ファイル200のペイロード205からの情報がユーザによって印刷され得るかどうかを識別する。保存許可フィールドの値は、暗号化ファイル200のペイロード205からの情報がユーザによってアクセスデバイスに保存され得るかどうかを識別する。ローカルコピー許可フィールドの値は、暗号化ファイル200のペイロード205からの情報のローカルコピーがアクセスデバイスに格納され得るかどうかを識別する。転送許可フィールドの値は、暗号化ファイル200のペイロード205からの情報を別のデバイスに(例えば、電子メールの一部として)転送できるかどうかを識別する。
【0042】
共同、読み取り専用、およびフルアクセスの値は、独立して設定され得るバイナリ値であってもよい。共同フィールドの値は、ユーザが暗号化ファイル200のペイロード205への共同アクセスを有し得るかどうかを識別する。読み取り専用フィールドの値は、ユーザが暗号化ファイル200のペイロード205への読み取り専用アクセスを有し得るかどうかを識別する。フルアクセスフィールドの値は、ユーザが暗号化ファイル200のペイロード205へのフルアクセスを有し得るかどうかを識別する。
【0043】
アクセスポリシー245はまた、暗号化ファイル200のペイロード205から機密情報を識別して削除または難読化することができる情報および命令を含むデータ損失防止情報を含むことができる。データ損失防止情報は、本明細書で説明されるように、表示制約の例であり得る。機密情報には個人を特定する情報が含まれる。機密情報は、ペイロード205が復号デバイスとして機能するアクセスデバイスで閲覧または保存される前に削除または難読化されてもよい。一例として、データ損失防止情報は、以下のフィールドパッケージlD、ルール、ルールIDの値を含み得る。
【0044】
パッケージlDの値は、ペイロード205から機密情報を削除または難読化するためにアクセスパッケージに含まれるソースコードのパッケージを識別する。ルールフィールドの値は、ペイロード205から機密情報を削除または難読化するためにアクセスパッケージに含まれるルールのグループを識別する。ルールlDの値は、ペイロード205から機密情報を削除または難読化するためにアクセスパッケージに含まれる特定のルールを識別する。データ損失防止のための各ルールは、置換文字列を有する正規表現文字列を含み、置換文字列にしたがって(正規表現ストリームからの)正規表現と一致するペイロード205内のデータを置換する。
【0045】
ファイルアクセスポリシー245はまた、終了情報を含むことができる。終了情報は、暗号化ファイル200のペイロード205が終了したかどうかを識別する終了フラグを含んでもよい。ペイロード205は、元のペイロード内のデータへのアクセスを防止するために、元のペイロード(暗号化後)を元のペイロードと同じサイズのヌルまたはランダムデータで置き換えることによって終了されている場合がある。終了フラグは、不正なユーザまたはデバイスが暗号化ファイル200にアクセスしようとしたときにtrueに設定されてもよい。
【0046】
ファイルアクセスポリシー245はまた、地理的位置制限を強制することができる。例えば、ファイルアクセスポリシーは、ファイルがオフィス位置、地理的位置(例えば、州または国内)などでのみアクセス可能であることを示すことができる。したがって、ポリシーが実施されているとき、アクセスクライアントは、アクセスが認可されていると決定するために、ネットワーク情報、GPS情報、または地理的位置を識別するために使用され得る他の情報を使用することができる。そのような情報が利用できない場合、ペイロード205へのアクセスが制限され得る。したがって、ファイルアクセスポリシー245は、アクセス権のタイプを示すビット、データ損失防止を強制するルールまたは命令の表示、地理的制限の表示などを含む様々な形態を含むことができる。場合によっては、ファイルアクセスポリシー245は、ユーザが仮想プライベートネットワーク(VPN)を使用してファイルにアクセスすることを制限することができる。したがって、VPNが検出された場合、アクセス要求は拒絶されてもよく、またはユーザはファイルの閲覧を制限されてもよい。
【0047】
所有権情報255は、暗号化ファイル200を作成したユーザを一意に識別する作成者IDフィールドの値を含むことができる。作成者IDの値は、電子メールアドレス、従業員識別子、ユーザ名などであってもよい。所有権情報255は、デジタル署名などのエンティティ署名を含んでもよい。システムのユーザは、エンティティの複数の従業員のうちの1人であってもよい。エンティティについてユーザによって生成された各暗号化ファイルは、暗号化ファイルのソースとしてエンティティを識別する同じエンティティ署名、または暗号化ファイルのエンティティソースおよび暗号化ファイルを生成したユーザを識別することができる複数のエンティティ署名を含むことができる。
【0048】
所有権情報255はまた、ユーザが暗号化ファイルにアクセスを有することを検証するためにアクセスクライアントが使用される1つまたは複数のアプリケーションプログラミングインターフェース(API)エンドポイント(例えば、ユニフォームリソースロケータ(URL))の表示を含むエンティティデータベース情報を含むことができる。例えば、示された1つまたは複数のAPIエンドポイントは、検証APIおよび転送APIであってもよい。ユーザ(暗号化ファイル200と同じエンティティを有する)が暗号化ファイル200へのアクセスを有することを検証するために、検証APIにアクセスすることができる。ユーザ(暗号化ファイル200と異なるエンティティを有する)が暗号化ファイル200へのアクセスを有することを検証するために、転送APIにアクセスすることができる。APIエンドポイントは、暗号化ファイル200の復号前にアクセスされ得るので、APIエンドポイントは、任意の暗号化ラッパ(例えば、鍵のうちの1つによって暗号化されていなくてもよい)の外側に配置され得る。例えば、APIエンドポイントの表示をメタデータ215に含めることができる。
【0049】
メタデータ215は、暗号化ファイル200に関する情報の格納場所である。一例として、メタデータ215は、ペイロード205内のファイルのタイプ、ペイロード205内のファイルの名前、ペイロード205内のファイルの長さ、ペイロード205の暗号化アルゴリズム(ソルト化アルゴリズムを含む)、データパック210の暗号化アルゴリズム、暗号化ファイル200の暗号化アルゴリズムなどを識別することができる。本明細書で説明されるように、メタデータ215はまた、APIエンドポイントの指示を含むことができる。メタデータ215の様々な態様は、暗号化ファイル200の一部として暗号化されてもされなくてもよい。場合によっては、メタデータ215の態様は、サーバへのアクセス要求(暗号化または復号要求)に含まれてもよい。
【0050】
データパック210は、暗号化ファイル200に挿入される前に、1つまたは複数のデータパック鍵230で暗号化されてもよい。いくつかの実装形態では、1つまたは複数のデータパック鍵230は高度暗号化規格(AES)128鍵であってもよい。データパック210内のデータにアクセスするのに必要な時間を短縮するために、1つまたは複数のデータパック鍵230はペイロード鍵225より短くてもよい。
【0051】
暗号化ファイル200は、ファイルソルト235でソルトされ、ファイル鍵240で暗号化され得る。いくつかの実装形態では、ファイル鍵240は、高度暗号化規格(AES)256鍵であってもよい。いくつかの実装形態では、ファイルソルト235は、ランダムに生成された8バイト値である。ファイルソルト235を暗号化ファイル200に付加することにより、暗号化ファイル200の内容(例えば、ペイロードソルト220でソルト化され、ペイロード鍵225で暗号化された後のペイロード205、データパック鍵230で暗号化された後のデータパック210)にファイルソルト235を適用することができる。
【0052】
いくつかの実装形態では、Yに格納された1000万から99999999の間の第1のランダムな8桁の数を生成することによってソルト(例えば、ファイルソルト235)が作成される。次いで、1~8の第2の乱数が生成され、Xに格納される。その後、YのX番目の桁はXの値に置き換えられる。第2の乱数を生成し、Yの値を置き換えるステップを4回繰り返す。最後の置き換え後の値がソルトである。異なるアルゴリズムを使用して、システムによって使用されるソルトを生成することができる。
【0053】
データパック210に含まれる様々な情報は、サーバ通信と併せて、本明細書に記載の動的、自己インテリジェント、および自己保護データセキュリティ方式をサポートする。アクセスクライアントがサーバからアクセスパッケージ(例えば、実行可能ファイルおよびアクセス鍵)を受信すると、アクセスクライアントは、様々な鍵を使用して暗号化ファイルの内容を復号するためにアクセスパッケージの実行可能コードを実行する。アクセスクライアントは、暗号化ファイルに含まれるアクセスポリシー245を実施するように構成される。さらに、復号時に、アクセスパッケージの実行可能コードは、アクセスログ250を、アクセスクライアントに関する情報(例えば、クライアント識別子、バージョン、フィンガープリント)、アクセスクライアントを実行するデバイスに関する情報(例えば、デバイス識別子、マザーボード識別子、ハードウェア識別子)、ユーザ情報、および本明細書で説明される他の情報で更新させることができる。このように、暗号化ファイル200が別のユーザまたはデバイスに渡され、ユーザが暗号化ファイル200を開こうとする場合、アクセスログ250の内容を使用して、暗号化ファイル200の管理チェーンを識別し、暗号化ファイル200を誰が、および/またはどのデバイスが侵害したかを確認することができる。
【0054】
場合によっては、ファイルが復号される前に、ファイルに関連するアクセスポリシー245が更新されてもよい。そのような場合、復号要求がサーバ(例えば、サーバ115)に送信されると、サーバは、更新されたアクセスポリシーが復号時に実施されるように、アクセスパッケージ内の更新されたアクセスポリシーで応答することができる。しかしながら、アクセスポリシーはファイルに含まれるため、オフラインアクセスなどの様々な他の機能がサポートされる。
【0055】
図2の態様は、ファイルであるペイロード205に関して説明される。本明細書に記載の技術は、ファイルの一部またはファイル内のオブジェクトに適用可能であり得ることを理解されたい。例えば、ファイルは、ファイル内に埋め込まれた複数の要素(例えば、OLE要素)、画像、チャートなどを含むことができる。そのような場合、ペイロード205は、ファイルまたはファイルの一部(例えば、特定のページ)内の特定の要素の一例であり得る。したがって、要素またはページ(例えば、ペイロード205)は暗号化されてもよく、アクセスポリシー245は要素またはページに対して実施されてもよい。同様に、アクセスログ250および所有権情報255は、保護されているファイル内の要素またはページに基づくことができる。
【0056】
図3は、本開示の態様にしたがって暗号化ファイル制御をサポートするコンピューティングアーキテクチャ300の例を例示する。コンピューティングアーキテクチャ300は、ユーザデバイス305およびサーバ310を含む。ユーザデバイス305は、
図1に関して説明したアクセスデバイス105の一例であってもよい。サーバ310は、
図1を参照して説明したサーバ115の一例であってもよい。ユーザデバイス305は、本明細書に記載のファイル制御技術をサポートするためにアクセスクライアント325を実行するように構成されてもよい。
【0057】
ユーザデバイス305のユーザは、アクセスクライアント325にアクセスして、本明細書に記載の技術にしたがってファイルまたはファイルの一部を暗号化および/または復号することができる。場合によっては、ユーザは、毎日、定期的になど、アクセスクライアントにログインする必要がある。アクセスクライン325へのログインは、安全な接続を確立することを含む、サーバ310との通信をトリガすることができる。さらに、ログイン時にトークンが生成されてもよく、トークンは、サーバ325との安全な通信に使用されてもよい。いくつかの例では、ユーザは、ログイン時に地理的位置、ネットワーク識別子などを登録することができ、そのような情報は、トークン生成、サーバとの安全な通信、ファイルアクセスポリシーの実施(例えば、データジオフェンシング)などに使用される。
【0058】
アクセスクライアント325の使用例では、ユーザは、ファイルまたはファイルの一部がユーザのセットに送信される前にそれを保護するためにアクセスクライアントを使用することができる。ユーザは、アクセスクライアント325を介してファイルを選択し、次いでファイルについてのファイルアクセスポリシーを選択することができる。ファイルおよびファイルアクセスポリシーの選択後、アクセスクライアント325は、サーバ310にアクセス要求330を送信することができる。暗号化要求の場合、サーバ310は、アクセスクライアント325で構成されたURL(例えば、APIエンドポイント)に基づいて識別され得る。アクセス要求330は、アクセス情報315、ならびにファイルに関連するファイル情報(ファイルサイズ、タイプ、ファイルメタデータ)を含むことができる。アクセス情報315は、アクセスクライアント325に基づいてカスタマイズすることができる。アクセスクライアント325の実装形態(例えば、組織構成、個人構成)に応じて、アクセス情報は、インターネットプロトコル(IP)アドレス、ネットワーク情報、マザーボード識別子、ユニバーサル一意(UU)識別子、ユーザ識別子、クライアント識別子(例えば、クライアントライセンス識別子)、クライアントバージョン、地理的位置情報、ブラウザ情報(例えば、ブラウザベースのクライアントの場合)、アプリケーション情報(例えば、クライアントプラグインの場合)などの様々な情報を含むことができる。アクセス情報315はまた、アクセストークンを含むことができる。
【0059】
アクセス情報は、ユーザ、ユーザのコンピューティングシステム、コンピューティングシステムの位置、および要求されているアクセスのタイプに関する情報を含むことができる。ユーザに関する情報は、ユーザ名、ユーザアクセストークン、ユーザのデジタル署名、ユーザの公開鍵などを含むことができる。ユーザのコンピューティングシステムに関する情報は、コンピューティングシステムのハードウェアおよびソフトウェア構成要素のハードウェアおよびソフトウェア識別子を含むことができる。コンピュータシステムの位置に関する情報は、地理的位置にマッピングされ得るコンピュータシステムのIPアドレスを含むことができる。アクセス情報は、アクセス要求のヘッダの一部であってもよく、Java(登録商標)Script Object Notation(JSON)規格にしたがってフォーマットされてもよい。
【0060】
サーバ310は、アクセス情報315を検証することができる。検証は、位置の検証、ネットワークの検証、デバイスの検証、トークンの検証(例えば、トークンはアクティブである)、および他の情報を含むことができる。場合によっては、組織は、暗号化機能を使用するために特定の情報が存在することを示す組織ポリシーに関連していてもよい。例えば、グローバルポリシーは、従業員またはユーザがオフィスに存在するときにのみファイルを暗号化できることを示すことができる。このように、組織のポリシーが確実に満たされるようにするために、様々な検証が使用される。検証は、様々な考慮事項およびシナリオに対してカスタマイズ可能である。
【0061】
アクセス情報315、アクセス要求330、またはアクセスクライアント325からの別の通信はまた、暗号化されるファイルについてのファイルアクセスポリシーの指示を含むことができる。したがって、読み取り、書き込み、共同作業、地理的制限ポリシー、認可されたユーザ、および他のポリシーを含む選択されたポリシーは、サーバ310に通信され得る。サーバ310は、(例えば、
図1のマクロデータベース180の)ファイル情報およびアクセスポリシーの記録を安全なリポジトリ内に維持することができる。
【0062】
アクセス要求330が検証された場合、アクセス情報は、本明細書に記載されるように記憶されてもよく、サーバ310は、アクセスパッケージ320を生成してもよい。アクセスパッケージ320を生成するために、サーバ310は、鍵サービスを使用して暗号鍵を生成するために(例えば、要求を送信して)安全鍵ストアを呼び出すことができる。安全鍵ストアは、第三者鍵管理サービスの一例であり得る。安全鍵ストアは、鍵を生成するために使用されるランダム文字列を返すことができる。サーバ310は、文字列を1つまたは複数のアクセス鍵335に分割するように構成されてもよく、したがって、安全鍵ストアはアクセス鍵335を識別できない場合がある。いくつかの例では、鍵ストアへの要求は、鍵文字列を受信するための後続の復号要求で使用され得るファイル識別情報を含み得る。各暗号化要求は、異なる鍵セットをもたらし得る。
【0063】
サーバ310はまた、アクセスパッケージ320のアクセス情報340を生成することができる。アクセス情報は、様々なタイプの暗号化または復号ライブラリからのコード(例えば、実行可能コード)を含むことができる。したがって、暗号化/復号スキームおよび鍵は、本明細書に記載の技術を実施する組織の要望に応じてカスタマイズ可能であり得る。アクセス情報340は、ペイロードおよびデータパックを含むファイルを暗号化するための命令を含むことができる。場合によっては、アクセスパッケージ320は、ポリシーおよび所有権情報がファイルで暗号化され得るように、ファイルアクセスポリシーおよび/または所有権情報の指示を含むことができる。アクセス情報340は、命令リポジトリ(例えば、
図1のリポジトリ120)から取得することができる。命令リポジトリは、本明細書に記載のシステムを実装するテナントまたは組織ごとに構成することができ、したがって、カスタマイズ可能または選択可能な暗号化/復号技術、鍵フォーマットなどを使用することができる。
【0064】
場合によっては、本明細書で説明するように、アクセス情報340は、動作を実行する(例えば、ポリシーを暗号化、復号、実施する)ために使用される機械実行可能コードを生成するためにデバイス305によってコンパイル可能である。場合によっては、アクセス情報340は、ペイロード/ファイルのデータを別の形式に変換するために使用される、またはデータ内の値を変更するための操作を適用するために使用される、またはその両方である。いくつかの例では、データ変換命令は、アクセスパッケージ320で指示されてもよく、またはアクセスクライアント325で構成されてもよい。したがって、アクセス情報320が値またはデータペイロードを含む場合、アクセス情報320(およびアクセスパッケージ320)は、コンパイル可能または実行可能コードを含まなくてもよい。
【0065】
アクセスパッケージ320は、アクセス応答345でデバイス305(例えば、アクセスクライアント325)に送信される。アクセスクライアント325は、暗号化ファイルを生成するためにアクセス情報340を使用するように構成される(例えば、アクセス鍵335を使用して)。アクセス情報を使用することは、データパックのインスタンス化および暗号化、ペイロードの暗号化(例えば、暗号化されるファイル)、ならびにデータパックおよびファイルの暗号化を一緒に引き起こす、アクセス情報340に含まれるコードを実行することを含むことができる。したがって、構成に応じて、暗号化ファイルに複数の暗号化層が存在し得る。次いで、暗号化ファイルは、ファイル転送または通信技術を使用して様々な他のユーザおよびデバイスに送信され得る。
【0066】
アクセス要求330が復号要求である場合、同様の技術を使用することができる。同様のアクセス情報315をサーバ310に通信することができる。サーバ310は、様々な検証を実行することができる。復号の検証は、暗号化検証とは異なる場合がある。例えば、サーバ310は、ファイル識別子に関連して格納された情報に基づいて、復号を要求するユーザおよび/またはデバイスがファイルにアクセスすることを認可されているかどうかを決定することができる。場合によっては、検証は、要求元ユーザデバイス305の位置が位置ポリシー(地理的位置、ネットワーク位置)を満たすと決定することを含む。
【0067】
アクセス要求330が検証された場合、サーバ310はアクセスパッケージ320を生成することができる。アクセスパッケージの生成は、関連する鍵文字列に対する要求を鍵格納サービスに送信することを含むことができる。例えば、鍵格納サービスへの要求は、復号されるファイルのファイル識別子の指示を含むことができる。サーバ310は、鍵文字列を受信し、アクセス鍵335およびアクセス情報340を生成することができる。この場合、実行可能コードは、ファイル全体、データパック、および暗号化ファイルのペイロードを復号するための復号命令を含むことができる。
【0068】
場合によっては、アクセス情報340は、ファイル、次いでデータパックを暗号化させることができる。次いで、ペイロードが復号される前に、データパックのファイルアクセスポリシーを実施することができる。例えば、ポリシーが地理的位置ポリシーであり、アクセスクライアント325によって識別された情報に基づいてポリシーが満たされない場合、ポリシーが満たされるまでアクセス情報340の実行を終了することができる。したがって、ファイルの一部が復号されたにもかかわらず、ペイロードはアクセスされない。
【0069】
アクセス情報340を実行するために、アクセスクライアント325は、メモリ内のコードに関連するオブジェクトをインスタンス化し、アクセス鍵335を使用してファイルを暗号化または復号することができる。ファイルが正常に暗号化または復号された後、コードは破壊される(例えば、メモリから削除される)。したがって、オブジェクトは、実行時にデバイス305のメモリ内に保持され、実行後に削除される。したがって、アクセスクライアント325は、コードを実行するようにのみ構成され、ファイルを暗号化または復号するように(コードなしで)構成されない。
【0070】
いくつかの例では、サーバ310は、アクセス情報315に基づいてアクセス要求330が無効であると決定する。例えば、サーバ310は、要求が認可されていない場所、ネットワーク、デバイス、クライアント、ユーザなどから来たと決定することができる。そのような場合、サーバ310は様々な動作を実行することができる。1つの動作は、管理ユーザに(例えば、電子メール、アラートなどを介して)警告を送信することを含むことができる。別の動作は、ペイロードの内容を上書きするように構成されたアクセス情報340を有するアクセスパッケージ320を生成することを含むことができる。追加的または代替的に、アクセス情報340は、ファイルアクセスポリシー内の終了フラグをトリガすることができる。このように、不正な要求の後、ユーザはファイルにアクセスできず、ファイルの内容が上書きされる可能性がある。
【0071】
場合によっては、サーバ310は、アクセス要求330が有効であると決定することができるが、サーバ310は、ファイルに関連するアクセスポリシー350が古いまたは最新のものではないと決定することもできる。このような決定を行うために、サーバ310は、アクセス情報315に含まれる情報(例えば、ファイル情報、ハッシュ値、バージョン)を、サーバ310が保持する情報(例えば、ファイル情報、ハッシュ値、バージョン)と比較してもよい。ポリシーが古くなっているかまたは最新のものではない場合、アクセスパッケージ320は、アクセスクライアント325によって実施される更新されたまたは現在のアクセスポリシー350を含むことができる。
【0072】
本明細書で説明するように、アクセスパッケージは、暗号化パッケージ、復号パッケージ、デコイパッケージ、または終了パッケージであってもよい。暗号化パッケージは、データを暗号化する関数を有するソースコードを含むことができるが、データを復号する関数を有するソースコードを含まない。復号パッケージは、データを復号するがデータを暗号化しないための関数を有するソースコードを含むことができる。終了パッケージは、暗号化ファイルを隠すまたは削除するための関数を有するソースコードを含むことができる。デコイパッケージは、暗号化ファイルからのデータに類似しているが、暗号化ファイルからのデータを含まないデータを表示する関数を有するソースコードを含むことができる。終了パッケージおよびデコイパッケージは、データを暗号化または復号するために使用されるソースコード、鍵、またはソルトを含まなくてもよい。
【0073】
終了パッケージは、暗号化ファイルからのデータが復号され得ないことを示すメッセージをユーザに表示することによってデータを隠すことができる。終了パッケージは、アクセス要求を送信したコンピューティングシステムがジオフェンスの禁止領域に位置することに応答して、およびアクセス認可に応答して、暗号化ファイル内のデータをランダムデータで上書きすることによってデータを削除することができる。ジオフェンスの禁止エリアは、特定の国を含むことができる。
【0074】
場合によっては、アクセスクライアント325は、ユーザデバイス305、ファイルストレージWebサービス、リモートサーバなどのフォルダ構造にアクセスするように構成される。アクセスクライアント325はまた、指定されたフォルダまたは場所に保存される任意のファイルを暗号化するように構成されてもよい。したがって、ファイルがフォルダに保存されると、アクセスクライアント325は、サーバ310へのアクセス要求330(暗号化要求)送信をトリガすることができる。したがって、これらの技術を使用して、フォルダレベルのセキュリティ方式を実施することができる。
【0075】
図4は、本開示の態様にしたがって暗号化ファイル制御をサポートするプロセスフロー400の例を例示する。具体的には、プロセスフロー400は、本明細書に記載の技術にしたがってファイルを暗号化するための動作を示す。プロセスフロー400は、アクセスデバイス405およびサーバ410を含み、これらは、
図1~
図3に関して説明された対応するデバイスの例であり得る。
【0076】
415において、ペイロードが選択される。ペイロードは、アクセスデバイス405a上で実行するアクセスクライアントのユーザインターフェースを用いてユーザによって選択されてもよい。420において、アクセスデバイス405aのアクセスクライアントは、アクセス情報を取得することができる。アクセス情報は、ユーザおよびアクセスデバイス405aに関する情報を含んでもよい。一例として、この情報は、アクセスデバイス405aからのハードウェア構成要素識別子と、アクセスデバイス405aのインターネットプロトコルアドレスとを含んでもよい。
【0077】
425において、アクセスデバイス405aは、アクセス要求をサーバ410に送信する。要求は、ペイロードを暗号化するための暗号化要求である。アクセス要求には、アクセスデバイス405aを用いて取得したアクセス情報が含まれる。サーバは、アクセスクライアントにおける構成に基づいて識別することができる。例えば、アクセス要求は、アクセスクライアントで構成されたAPIエンドポイントを介してサーバに送信されてもよい。
【0078】
430において、サーバ410は、要求を認可または検証することができる。要求を認可することは、アクセスデバイス405aの位置を確認することと、ユーザがシステムを使用し、要求された動作を実行することが認可されていることを検証することとを含む。位置は、アクセスデバイス405aのIPアドレスからアクセスデバイス405aの地理的位置を識別し、その地理的位置をジオフェンスのセットと比較することによって確認することができ、ジオフェンスのセットは、システムを使用できない国のセットを識別することができる。この例では、ユーザはアクセス情報内のデータから検証される。例えば、ユーザがシステムを使用し、要求された動作を実行することを認可されていることを示すユーザアクセストークンが提供され得る。
【0079】
要求を送信したコンピューティングシステムの識別は、ハードウェアまたはソフトウェア構成要素の識別子を受信することによって満たすことができ、これは、MACアドレス、国際移動体装置識別情報(IMEI)、コンピューティングシステム構成要素(マザーボード、プロセッサ、メモリ、グラフィックスカードなど)のシリアル番号およびモデル番号、オペレーティングシステムおよび基本入出力システム(BIOS)のソフトウェアバージョン番号などを含み得る。コンピューティングシステムのハードウェアおよびソフトウェア構成要素の識別子は、受信した識別子を、以前に受信してアクセス要求を行っているユーザにリンクされているコンピューティングシステム構成要素の識別子と比較することによって検証することができる。
【0080】
コンピューティングシステムの位置は、コンピューティングシステムのIPアドレスを地理的位置にマッピングすることによって確認することができる。マッピングされた地理的位置は、アクセス要求で指定されたアクセスのタイプに対して許容された地理的位置を識別するジオフェンスと比較することができる。いくつかの実装形態では、ジオフェンスは、アクセスが提供されていない特定の国を識別することができる。コンピューティングシステムの位置はまた、無線ローカルエリアネットワーク(WLAN)または無線広域ネットワーク(WWAN)測位(例えば、セルラベースの位置決め)に基づいて識別されてもよい。
【0081】
アクセス権限は、要求されているアクセスのタイプに依存し得る。暗号化要求の場合、システムの各ユーザに適用することができるシステムアクセス特権ポリシーをチェックして、暗号化を要求しているユーザがシステムアクセス特権ポリシーに基づいてそうすることが許可されていることを確認することができる。復号要求の場合、システムの各ユーザに適用されるシステムポリシー、システムのユーザのグループに適用されるグループポリシー、個々のユーザに適用されるユーザポリシー、および個々のファイルに適用されるファイルポリシーが確認されて、特定のユーザが特定のレベルの特権で特定のファイルにアクセスできることを検証する。特権レベルは、フルアクセス、共同アクセス、および読み取り専用を含むことができる。異なるタイプのポリシーの各々は、個々のファイルまたはファイルのグループへのアクセスのレベルを指定することができる。
【0082】
アクセス要求を認可することは、アクセス認可を決定するために、アクセス情報からのアクセスデバイス位置情報をアクセスデバイス位置ルールと比較することを含み得る。アクセスデバイス位置情報は、アクセス要求を送信したコンピューティングシステムのインターネットプロトコル(IP)アドレスと、IPアドレスがマッピングされる地理的位置とを含むことができる。デバイス位置ルールは、アクセスが認可され得るジオフェンスを定義することができる。ジオフェンスは、アクセスが認可され得るかまたは制限され得る地理的位置を識別する。一例として、コンピューティングシステムの地理的位置が、建物の地理的位置の領域を定義するジオフェンスと比較され、コンピューティングシステムがジオフェンス内にあると決定された場合、アクセスは、アクセス認可内で認可されたものとして示され得る。比較が、コンピューティングシステムがジオフェンス内にないことを示す場合、アクセス認可は、アクセスが認可されていないことを示し得る。アクセス要求をオーサリングする別の例では、サーバは、取得されたIPマッピングがユーザの位置をマスクしていないと決定するために、アクセスデバイスがVPNを利用しているかどうかを決定することができる。したがって、場合によっては、VPNが使用されているときにユーザおよびアクセス要求が拒絶されることがある。
【0083】
アクセス要求を認可することはまた、アクセス認可を決定するために、アクセス情報からのモバイルデバイス位置情報をモバイルデバイス位置ルールと比較することを含み得る。モバイルデバイス位置情報は、衛星測位情報を含むことができる。追加的または代替的に、モバイルデバイス位置情報は、モバイルデバイスとアクセスデバイスとの間の接続のタイプを識別することができる。モバイルデバイスは、有線または無線接続を介してアクセスデバイスに接続されてもよい。
【0084】
モバイルデバイス位置情報が衛星測位情報を含む場合、衛星測位情報に対応する地理的位置は、コンピューティングシステムのIPアドレスに応答する地理的位置と比較することができる。衛星測位情報の地理的位置とIPアドレスとが一致している場合、アクセス要求は認可され得る。そうでない場合、アクセス要求は拒否され得る。
【0085】
モバイルデバイス位置情報が(接続のタイプを識別する)接続情報を含む場合、アクセス要求は、モバイルデバイスとコンピューティングシステムとの間の接続が確立され、存在したままであるときに認可され得る。一例として、シリアルバスケーブルを使用して、モバイルデバイスをコンピューティングデバイスに接続し、有線接続を確立することができる。別の例として、無線接続は、直接的または間接的に確立されてもよい。直接無線接続は、パーソナルエリア無線ネットワーク接続を含む。間接無線は、モバイルデバイスとコンピューティングシステムの両方が接続される無線アクセスポイントを介してもよい。
【0086】
アクセス要求の態様を認可するために、複数のサーバが使用され得る。複数のサーバが使用される場合、サーバは、アクセス情報から識別されたユーザを認可するために後続のサーバに後続の要求を送信することができる。いくつかの実装形態では、あるサーバは暗号化ファイルへのアクセスを許可することができ、別のサーバはアクセス認可に基づいてアクセスパッケージを生成することができる。
【0087】
435において、サーバ410は、アクセスパッケージを生成することができる。認可された場合、サーバ410は、アクセスデバイス405aからの暗号化要求に応答して、暗号化パッケージを生成する。暗号化パッケージは、暗号化関数のためのソースコードを検索し、アクセスデバイス405aによって暗号化されるべきファイルのためのソルトおよび鍵を生成して格納し、ソルトおよび鍵を含む情報と共にソースコードを注入することによって生成され得る。アクセスパッケージの生成は、追加的または代替的に、ファイルのペイロードのデータを変換するために使用されるデータペイロードまたは値の識別を含むことができる。
【0088】
サーバは、ソースコードファイルを取り出し、情報と共にソースコードファイルを注入することによってアクセスパッケージを生成することができる。注入された情報は、データを暗号化または復号するためのソルトおよび鍵を含むことができる。ソルトおよび鍵は別々に格納され、システムの異なる部分のセキュリティの侵害の影響を低減するためにソースコードから分離される。例えば、認可されていないユーザが暗号化ファイルの鍵を持っていた場合、認可されていないユーザは、暗号化ファイルにアクセスするために必要な他の鍵、ソルト、または復号アルゴリズムをまだ持っていない。
【0089】
一例として、暗号化要求のためのアクセスパッケージ(例えば、暗号化パッケージ)は、暗号化ソースコードを取得し、暗号化ソースコードをソルトおよび鍵のセットで修正して修正された暗号化ソースコードを形成し、修正された暗号化ソースコードでアクセスパッケージを生成することによって生成され得る。同様に、復号要求のためのアクセスパッケージ(例えば、復号パッケージ)は、復号ソースコードを取得し、復号ソースコードをソルトおよび鍵のセットで修正して修正された復号ソースコードを形成し、修正された復号ソースコードでアクセスパッケージを生成することによって生成され得る。
【0090】
440において、(暗号化パッケージである)アクセスパッケージがサーバ410からアクセスデバイス405aに送信される。アクセスパッケージ(および以前の要求)は、サーバ410とアクセスデバイス405aとの間の安全なリンクを介して送信される。
【0091】
445において、アクセスデバイス405aは(アクセスクライアントを介して)アクセスパッケージをコンパイルすることができる。アクセスデバイス405aは、アクセスパッケージからソースコードをコンパイルして、ダイナミックリンクライブラリ(DLL)とすることができる実行可能ファイルを生成することができる。アクセスパッケージは、実行可能ファイルが作成された後にアクセスデバイス405aから(例えば、デバイスメモリから)削除されてもよい。アクセスパッケージは、複数の言語で書かれたソースコードを含み、複数のコンパイラ、アセンブラ、リンカーなどを使用してアクセスパッケージから実行可能ファイルを生成することができる。場合によっては、445において、アクセスデバイス405aは、アクセスパッケージをコンパイルするのではなく、アクセスパッケージ内のデータペイロードまたは値を使用して、暗号化されるファイルまたはペイロードのデータを変換することができる。
【0092】
450において、アクセスデバイス405aは(アクセスクライアントを介して)データパックを生成することができる。データパックは、暗号化プロセスの一部として生成されてもよい。データパックは、ファイルアクセスポリシー、所有権情報、アクセスログなどを含むことができる。記載されているように、データパックは、アクセスパッケージのソースコードに注入され、次いでデータパックに格納されたいくつかの情報を含むことができる。一例として、エンティティ署名(または所有権情報のセット)をソースコードに注入し、実行可能ファイルにコンパイルすることができ、実行可能ファイルはエンティティ署名を暗号化ファイルのデータパックに格納する。同様に、ファイルアクセスポリシーをソースコードに注入し、実行可能ファイルにコンパイルすることができ、実行可能ファイルはファイルアクセスポリシーを暗号化ファイルのデータパックに格納する。
【0093】
455において、アクセスデバイス405aは、ペイロードを暗号化することができる。ペイロードは、データパックを生成した暗号化プロセスの一部として暗号化されてもよい。暗号化ファイルは、複数のソルトおよび暗号鍵を使用して、暗号化されたペイロードおよびデータパックから生成される。
【0094】
460において、アクセスデバイス405aは、暗号化ファイルの作成後に実行可能ファイルを含むファイルを削除することができる。
【0095】
465において、アクセスデバイス405aは、暗号化ファイルをアクセスデバイス405bに送信することができる。
【0096】
図5は、本開示の態様にしたがって暗号化ファイル制御をサポートするプロセスフロー500の例を例示する。具体的には、プロセスフロー500は、本明細書に記載の技術にしたがってファイルを復号するための動作を示す。プロセスフロー500は、アクセスデバイス505およびサーバ510を含み、これらは、
図1~
図4に関して説明された対応するデバイスの例であり得る。例えば、プロセスフロー500は、プロセスフロー400の続きであってもよい。
【0097】
515において、暗号化ファイルがアクセスデバイス505bにおいて選択される。暗号化ファイルは、アクセスデバイス505bのユーザによってアクセスデバイス505b上で選択されてもよい。暗号化ファイルは、
図4で説明したようにアクセスデバイスに送信されたファイルであってもよい。
【0098】
520において、アクセスデバイスは、(例えば、アプリケーションクライアントを介して)サーバ510にアクセス要求を送信する。復号要求とも呼ばれる要求は、暗号化ファイル、アクセスデバイス505bのユーザ、およびアクセスデバイス505bを識別するアクセス情報を含むことができる。要求は、データパックおよびサーバのマクロデータベースに格納されたアクセス権情報にリンクされた暗号化ファイルの識別子を含むことができる。暗号化ファイルの識別子は、サーバによって維持されるマクロデータベース内の暗号化ファイルに関する情報(ユーザアクセス権を含む)を見つけるためにサーバによって使用され得る。場合によっては、ファイルに関する情報は、ファイルに関連するメタデータから識別されてもよい。サーバは、ファイルに関連するAPIエンドポイントを介して(例えば、メタデータにおいて)、またはアクセスクライアント(例えば、アクセスクライアントはAPIエンドポイントで事前構成される)における構成を介して識別されてもよい。
【0099】
525において、サーバ510は、アクセス要求を認可または検証することができる。サーバは、アクセスポリシー(例えば、ファイルへのアクセスを認可されたユーザ識別子)など、ファイルに関連してサーバによって維持される情報を要求に含まれる情報に基づいてアクセス要求を認可することができる。
【0100】
530において、サーバ510は、アクセス要求の認可または検証に基づいてアクセスパッケージを生成することができる。アクセスパッケージは、アクセス要求が認可されている場合は復号パッケージであってもよく、要求が認可されていない場合は終了またはデコイパッケージであってもよい。
【0101】
535において、サーバ510は、アクセスパッケージをアクセスデバイス505bに送信することができる。アクセスパッケージ(および以前の要求)は、サーバ510とアクセスデバイス505bとの間の安全なリンクを介して送信されてもよい。
【0102】
540において、アクセスデバイス505bは、アクセスパッケージをコンパイルすることができる。アクセスデバイス505bは、(例えば、アクセスクライアントを介して)アクセスパッケージからソースコードをコンパイルして、DLLとすることができる実行可能ファイルを生成することができる。アクセスパッケージは、実行可能ファイルが作成された後にアクセスデバイス505bから削除されてもよい。場合によっては、540において、アクセスデバイス405aは、アクセスパッケージをコンパイルするのではなく、アクセスパッケージ内のデータペイロードまたは値を使用して、復号されるファイルまたはペイロードのデータを変換することができる。
【0103】
545において、アクセスデバイス505bは、ファイルのデータパックを更新することができる。データパックは、アクセスログを修正する(例えば、アクセスデバイス505bに関連するデバイス情報およびユーザ情報を追加する)ことによって、復号プロセスの一部としてアクセスデバイス505bによって更新され得る。場合によっては、データパックを更新することは、アクセスパッケージに含まれる情報に基づいてファイルアクセスログを更新することを含むことができる。したがって、データパックは、アクセス日時およびアクセスを実行したコンピューティングシステムのハードウェア識別子を識別するアクセス情報で復号および更新され得る。データパックが更新された後、暗号化プロセスを実行して、更新されたデータパックを有する暗号化ファイルを再生成することができる。
【0104】
550において、アクセスデバイス505bは、暗号化ファイルのペイロードを復号することができる。ペイロードは、データパックを更新した復号プロセスの一部として実行可能ファイルを使用して復号され得る。暗号化ファイルは、アクセスパッケージの実行可能コードにしたがって複数のソルトおよび暗号鍵を使用して元のペイロードを復元するために復号される。
【0105】
565において、アクセスデバイス505bはペイロードにアクセスする。ペイロードにアクセスして、データパックに含まれる暗号化ファイルのファイルアクセスポリシー(例えば、ユーザの権利および特権)にしたがってペイロードから情報を提示することができる。ファイルアクセスポリシーは、暗号化ファイルからの情報の編集、保存、印刷、および閲覧を制限することができる。
【0106】
560において、アクセスデバイス505bは、実行可能ファイルなどのファイルをアクセスデバイス505bのメモリから削除することができる。
【0107】
いくつかの例では、520におけるアクセス要求は、アクセスデバイス505b上で実行しているアクセスクライアントに関連するサーバに送信される。そのような場合、アクセスクライアントに関連するサーバは、要求を検証することができない(例えば、ファイル情報にアクセスできない)ことを示すことができる。このような場合、サーバは、正しいサーバ(例えば、サーバ510)のURLを示す応答を返すことができる。他の場合には、サーバは、アクセスパッケージをアクセスデバイス505bに中継するために正しいサーバ510と通信することができる。
【0108】
図6は、本開示の態様にしたがって暗号化ファイル制御をサポートするアクセスデバイスシナリオ600の例を例示する。アクセスデバイスシナリオ600は、アクセスデバイス605を含み、これは、
図1~
図5に関連して説明されたアクセスデバイスの一例であり得る。アクセスデバイス605は、ディスプレイ610を含む。ディスプレイ610は、ユーザインターフェース615を提示する。ユーザインターフェースは、アクセスデバイス605上で実行しているアクセスクライアントに関連する例示的なユーザインターフェースであってもよい。
【0109】
図6の例では、アクセスクライアントはファイル(例えば、ファイルは、本明細書に記載の技術にしたがって復号される)にアクセスしている。ファイルに関連するデータパックは、ユーザがペイロードを閲覧するためにユーザのモバイルデバイスがアクセスデバイス605との接続を有することを示すモバイルデバイス近接アクセスポリシーであるファイルアクセスポリシーを含む。したがって、アクセスクライアントは、
図6のモバイルデバイス近接アクセスポリシーを実施している。
【0110】
625において、ユーザインターフェース615は、モバイルデバイス620とのデータ接続が存在するときに暗号化ファイルからの情報(例えば、ペイロード)を表示する。モバイルデバイス620への接続が失われると、情報はアクセスデバイス605によって表示されなくなる。一例として、アクセスデバイス605はデスクトップコンピュータであってもよく、モバイルデバイス620はスマートフォンであってもよい。アクセスデバイス605およびモバイルデバイス620は、複数のデバイス接続規格(ユニバーサルシリアルバス(USB)、Wi-Fi、Bluetooth(登録商標)など)のうちの1つを使用して接続されるのに十分に近い。その後、モバイルデバイスは、接続をもはや維持することができないようにアクセスデバイス605から十分遠くに離される。接続が切断された後、アクセスクライアントがモバイルデバイス近接ファイルアクセスポリシーを実施しているため、提示された情報はディスプレイから消え得る。さらに、暗号化ファイルは閉じられてもよく、暗号化ファイルを復号するために使用された実行可能ファイルは、アクセスデバイス605から削除されてもよい。場合によっては、関連するデータパッケージに含まれるポリシーを実施するために、接続が定期的(例えば、1秒ごと)にチェックされる。したがって、
図6の技術は、さらなるセキュリティ機構を含み得る。
【0111】
図7は、本開示の態様にしたがって暗号化ファイル制御をサポートするユーザデバイス720のブロック
図700を示す。ユーザデバイス720は、
図1~
図6を参照して説明されたアクセスデバイス(例えば、ユーザデバイス)の態様の例であり得る。ユーザデバイス720またはその様々な構成要素は、本明細書で説明される暗号化ファイル制御の様々な態様を実行する手段の一例であり得る。例えば、ユーザデバイス720は、アクセス要求インターフェース725、アクセスパッケージインターフェース730、実行構成要素735、アクセスパッケージ削除構成要素740、暗号化構成要素745、復号構成要素750、ポリシー構成要素755、検証情報構成要素760、ファイルメタデータ構成要素765、アクセスログ構成要素770、またはそれらの任意の組み合わせを含むことができる。これらの構成要素の各々は、(例えば、1つまたは複数のバスを介して)互いに直接的または間接的に通信することができる。
【0112】
ユーザデバイス720は、本明細書で開示される例にしたがって、アクセスクライアントにおけるデータセキュリティをサポートすることができる。アクセス要求インターフェース725は、アクセスされるべきファイルのアクセス情報およびファイル情報を含むアクセス要求をサーバへ送信する手段として構成されるか、そうでなければこれをサポートすることができる。アクセスパッケージインターフェース730は、アクセス要求の送信に少なくとも部分的に基づいて、サーバから、実行可能コードおよび1つまたは複数のアクセス鍵を含むアクセスパッケージを受信する手段として構成されるか、そうでなければこれをサポートすることができる。実行構成要素735は、アクセスクライアントによって、1つまたは複数のアクセス鍵を使用してファイルにアクセスするために実行可能コードを実行する手段として構成されるか、そうでなければこれをサポートすることができる。アクセスパッケージ削除構成要素740は、アクセスクライアントに関連するメモリからアクセスパッケージを削除する手段として構成されるか、そうでなければこれをサポートすることができる。
【0113】
いくつかの例では、アクセス要求の送信をサポートするために、暗号化構成要素745は、暗号化要求およびファイル情報をサーバに送信する手段として構成されるか、そうでなければこれをサポートすることができる。
【0114】
いくつかの例では、アクセスパッケージの受信をサポートするために、アクセスパッケージインターフェース730は、ファイルに関連する1つまたは複数のファイルアクセスポリシーの指示を含むデータパックを含むアクセスパッケージを受信する手段として構成されるか、そうでなければこれをサポートすることができ、データパックは、1つまたは複数のアクセス鍵を使用してファイルで暗号化される。いくつかの例では、1つまたは複数のファイルアクセスポリシーは、読み取りアクセス、書き込みアクセス、表示制約、またはそれらの組み合わせを含む。
【0115】
いくつかの例では、アクセスパッケージの受信をサポートするために、アクセスパッケージインターフェース730は、ファイルに関連する所有権情報の指示を含むデータパックを含むアクセスパッケージを受信する手段として構成されるか、そうでなければこれをサポートすることができ、データパックは、1つまたは複数のアクセス鍵を使用してファイルで暗号化される。
【0116】
いくつかの例では、暗号化要求の送信をサポートするために、ポリシー構成要素755は、ファイルに関連する1つまたは複数のファイルアクセスポリシーの指示をサーバに送信する手段として構成されるか、そうでなければこれをサポートすることができる。
【0117】
いくつかの例では、実行可能コードの実行をサポートするために、暗号化構成要素745は、実行可能コードを使用して、暗号化ファイルを生成するために1つまたは複数のアクセス鍵を使用してペイロードおよび1つまたは複数のデータパックを暗号化する手段として構成されるか、そうでなければこれをサポートすることができる。
【0118】
いくつかの例では、1つまたは複数のデータパックの暗号化をサポートするために、暗号化構成要素745は、1つまたは複数のファイルアクセスポリシー、ファイル所有権情報、ファイルアクセス監査ログ、またはそれらの組み合わせの指示を含む1つまたは複数のデータパックを暗号化する手段として構成されるか、そうでなければこれをサポートすることができる。
【0119】
いくつかの例では、アクセス要求の送信をサポートするために、復号構成要素750は、復号要求およびファイル情報をサーバに送信する手段として構成されるか、そうでなければこれをサポートすることができ、実行可能コードは、ファイルを復号するために使用されるコードを含む。
【0120】
いくつかの例では、アクセスパッケージの受信をサポートするために、アクセスパッケージインターフェース730は、1つまたは複数の更新されたファイルアクセスポリシーを含むデータパックを含むアクセスパッケージを受信する手段として構成されるか、そうでなければこれをサポートすることができる。
【0121】
いくつかの例では、検証情報構成要素760は、アクセスクライアントにおいて、アクセスクライアント情報、コンピュータ情報、デバイス情報、地理的位置情報、認証トークン、またはそれらの組み合わせを含む検証情報を識別する手段として構成されるか、そうでなければこれをサポートすることができ、復号要求は、検証情報の指示を含む。
【0122】
いくつかの例では、ファイルメタデータ構成要素765は、ファイルに関連付するメタデータに少なくとも部分的に基づいて、ファイルがアクセスクライアントに関連していることを識別する手段として構成されるか、そうでなければこれをサポートすることができ、ファイルは、1つまたは複数のアクセス鍵のうちの第1の鍵を使用して暗号化されたペイロードと、1つまたは複数のアクセス鍵のうちの少なくとも第2の鍵を使用して暗号化された1つまたは複数の暗号化データパックとを含み、復号要求は、ファイルがアクセスクライアントに関連していることに少なくとも部分的に基づいてサーバに送信される。
【0123】
いくつかの例では、実行可能コードの実行をサポートするために、復号構成要素750は、1つまたは複数のアクセス鍵を使用してファイルを復号する手段として構成されるか、そうでなければこれをサポートすることができる。
【0124】
いくつかの例では、復号構成要素750は、ファイルに関連する1つまたは複数のアクセスポリシーにしたがって、アクセスクライアントにおいてファイルのペイロードを表示する手段として構成されるか、そうでなければこれをサポートすることができる。
【0125】
いくつかの例では、1つまたは複数のアクセスポリシーは、読み取りアクセス、書き込みアクセス、表示制約、またはそれらの組み合わせを含む。いくつかの例では、1つまたは複数のアクセスポリシーは、1つまたは複数のアクセス鍵を使用してファイルで復号されたデータパックに含まれる。
【0126】
いくつかの例では、アクセスログ構成要素770は、アクセスクライアントに関連するデバイス情報、ユーザ情報、地理的位置情報、またはそれらの組み合わせを含むようにファイルアクセス監査ログを更新する手段として構成されるか、またはこれをサポートすることができる。
【0127】
いくつかの例では、復号構成要素750は、ファイルの復号に少なくとも部分的に基づいて、ファイル内のペイロードおよび1つまたは複数のデータパックを識別する手段として構成されるか、そうでなければこれをサポートすることができ、1つまたは複数のデータパックは、1つまたは複数のファイルアクセスポリシー、所有権情報、ファイルアクセス監査ログ、またはそれらの組み合わせの指示を含む。
【0128】
いくつかの例では、実行構成要素735は、アクセスクライアントに関連するメモリ内で、実行可能コードを実行することに少なくとも部分的に基づいて、ファイルを復号または暗号化するために使用されるアクセスオブジェクトをインスタンス化する手段として構成されるか、そうでなければこれをサポートすることができ、アクセスオブジェクトは、ファイルの復号または暗号化の後にアクセスクライアントに関連するメモリから削除される。
【0129】
いくつかの例では、復号構成要素750は、復号要求およびファイル情報をサーバに送信する手段として構成されるか、そうでなければこれをサポートすることができ、実行可能コードは、ファイルの内容を上書きするために使用されるコードを含む。
【0130】
いくつかの例では、アクセス要求の送信をサポートするために、アクセス要求インターフェース725は、アクセスクライアントを実行するユーザデバイスの地理的位置、ユーザデバイスに関連するデバイス情報、ユーザデバイスに関連するネットワーク情報、アクセスクライアントに関連する認証トークン、またはそれらの組み合わせを含むアクセス情報を含むアクセス要求を送信する手段として構成されるか、そうでなければこれをサポートすることができる。
【0131】
図8は、本開示の態様にしたがって暗号化ファイル制御をサポートするデバイス805を含むシステム800の図を示す。デバイス805は、データセキュリティマネージャ820、通信モジュール810、アンテナ815、ユーザインターフェース構成要素825、データベース(アプリケーションデータ)830、メモリ835、およびプロセッサ840などの、通信を送受信するための構成要素を含む、双方向音声およびデータ通信のための構成要素を含むことができる。これらの構成要素は、電子通信するか、または1つまたは複数のバス(例えば、バス845)を介して(例えば、動作可能に、通信可能に、機能的に、電子的に、電気的に)結合することができる。デバイス805は、本明細書に記載されるように、アクセスクライアントを実行するユーザデバイスの例であり得る。場合によっては、アクセスクライアントは、データセキュリティマネージャ820に対応することができる。
【0132】
通信モジュール810は、アンテナ815を介してデバイス805の入出力信号を管理することができる。通信モジュール810は、
図2に示し説明したユーザデバイス106の通信モジュール810の一例を含むことができる。これに関して、通信モジュール810は、
図2に示すように、サーバ110との通信を管理することができる。通信モジュール810はまた、デバイス805に統合されていない周辺機器を管理することができる。場合によっては、通信モジュール810は、外部周辺機器への物理的接続またはポートを表すことができる。場合によっては、通信モジュール810は、iOS(登録商標)、ANDROID(登録商標)、MS-DOS(登録商標)、MS-WINDOWS(登録商標)、OS/2(登録商標)、UNIX(登録商標)、LINUX(登録商標)、または別の既知のオペレーティングシステムなどのオペレーティングシステムを利用することができる。他の場合には、通信モジュール810は、モデム、キーボード、マウス、タッチスクリーン、または同様のデバイスを表すか、またはこれらと対話することができる。場合によっては、通信モジュール810は、プロセッサ840の一部として実装されてもよい。いくつかの例では、ユーザは、通信モジュール810、ユーザインターフェース構成要素825を介して、または通信モジュール810によって制御されるハードウェア構成要素を介してデバイス805と対話することができる。
【0133】
場合によっては、デバイス805は、単一のアンテナ815を含むことができる。しかしながら、いくつかの他の場合では、デバイス805は、複数の無線送信を同時に送信または受信することが可能でありうる複数のアンテナ815を有することができる。通信モジュール810は、本明細書に記載されたように、有線または無線リンクで、1つまたは複数のアンテナ815を介して双方向に通信することができる。例えば、通信モジュール810は、無線トランシーバを表してもよく、別の無線トランシーバと双方向に通信してもよい。通信モジュール810はまた、パケットを変調し、変調されたパケットを送信のために1つまたは複数のアンテナ815に提供し、1つまたは複数のアンテナ815から受信されたパケットを復調するためのモデムを含むことができる。
【0134】
ユーザインターフェース構成要素825は、データベース830におけるデータ格納および処理を管理することができる。場合によっては、ユーザは、ユーザインターフェース構成要素825と対話することができる。他の場合には、ユーザインターフェース構成要素825は、ユーザとの対話なしに自動的に動作することができる。データベース830は、単一のデータベース、分散データベース、複数の分散データベース、データストア、データレイク、または緊急バックアップデータベースの一例であり得る。
【0135】
メモリ835は、ランダムアクセスメモリ(RAM)および読み取り専用メモリ(ROM)を含むことができる。メモリ835は、実行されると、プロセッサ840に本明細書に記載の様々な機能を実行させる命令を含むコンピュータ可読コンピュータ実行可能ソフトウェアを格納することができる。場合によっては、メモリ835は、とりわけ、周辺構成要素またはデバイスとの相互作用などの基本的なハードウェアまたはソフトウェア動作を制御することができるBIOSを含むことができる。
【0136】
プロセッサ840は、インテリジェントハードウェアデバイス(例えば、汎用プロセッサ、DSP、CPU、マイクロコントローラ、ASIC、FPGA、プログラマブルロジックデバイス、ディスクリートゲートもしくはトランジスタロジック構成要素、ディスクリートハードウェア構成要素、またはそれらの任意の組み合わせ)を含むことができる。場合によっては、プロセッサ840は、メモリコントローラを使用してメモリアレイを動作させるように構成されてもよい。他の場合には、メモリコントローラは、プロセッサ840に統合されてもよい。プロセッサ840は、メモリ835に格納されたコンピュータ可読命令を実行して、様々な機能(例えば、睡眠ステージングアルゴリズムのための方法およびシステムをサポートする機能またはタスク)を実行するように構成され得る。
【0137】
データセキュリティマネージャ820は、本明細書で開示される例にしたがって、アクセスクライアントにおけるデータセキュリティをサポートすることができる。例えば、データセキュリティマネージャ820は、アクセスされるべきファイルのアクセス情報およびファイル情報を含むアクセス要求をサーバへ送信する手段として構成されるか、そうでなければこれをサポートすることができる。データセキュリティマネージャ820は、アクセス要求の送信に少なくとも部分的に基づいて、サーバから、実行可能コードおよび1つまたは複数のアクセス鍵を含むアクセスパッケージを受信する手段として構成されるか、そうでなければこれをサポートすることができる。データセキュリティマネージャ820は、アクセスクライアントによって、1つまたは複数のアクセス鍵を使用してファイルにアクセスするために実行可能コードを実行する手段として構成されるか、そうでなければこれをサポートすることができる。データセキュリティマネージャ820は、アクセスクライアントに関連するメモリからアクセスパッケージを削除する手段として構成されるか、そうでなければこれをサポートすることができる。
【0138】
データセキュリティマネージャ820は、サーバ、他のユーザデバイスなどとの通信を介して本明細書に記載のデータセキュリティ技術を容易にするように構成されたアプリケーション(例えば、「アプリ」)、プログラム、ソフトウェア、または他の構成要素を含むことができる。
【0139】
図9は、本開示の態様にしたがって暗号化ファイル制御をサポートするサーバ920のブロック
図900を示す。サーバ920は、
図1~
図6を参照して説明したサーバの態様の一例であってもよい。サーバ920またはその様々な構成要素は、本明細書で説明される暗号化ファイル制御の様々な態様を実行する手段の一例であり得る。例えば、サーバ920は、アクセス要求インターフェース925、要求検証構成要素930、アクセスパッケージ構成要素935、アクセスパッケージインターフェース940、暗号化構成要素945、復号構成要素950、鍵識別構成要素955、ファイルポリシー構成要素960、動作構成要素965、通知構成要素970、またはそれらの任意の組み合わせを含むことができる。これらの構成要素の各々は、(例えば、1つまたは複数のバスを介して)互いに直接的または間接的に通信することができる。
【0140】
サーバ920は、本明細書で開示される例にしたがって、サーバにおけるデータセキュリティをサポートすることができる。アクセス要求インターフェース925は、アクセスされるべきファイルのアクセス情報およびファイル情報を含むアクセス要求をアクセスクライアントから受信する手段として構成されるか、そうでなければこれをサポートすることができる。要求検証構成要素930は、アクセス情報を使用してアクセス要求を検証する手段として構成されるか、そうでなければこれをサポートすることができる。アクセスパッケージ構成要素935は、アクセス要求の検証に少なくとも部分的に基づいて、実行可能コードおよび1つまたは複数のアクセス鍵を含むアクセスパッケージを生成する手段として構成されるか、そうでなければこれをサポートすることができる。アクセスパッケージインターフェース940は、アクセスクライアントにアクセスパッケージを送信する手段として構成されるか、そうでなければこれをサポートすることができ、アクセスパッケージは、アクセスクライアントによって、ファイルにアクセスするために使用される実行可能ファイルにコンパイル可能である。
【0141】
いくつかの例では、アクセス要求の受信をサポートするために、暗号化構成要素945は、アクセスクライアントから、ファイルを暗号化するための暗号化要求を受信する手段として構成されるか、そうでなければこれをサポートすることができ、アクセスパッケージは、1つまたは複数のアクセス鍵を使用してファイルを暗号化するための実行可能コードを含む。
【0142】
いくつかの例では、アクセスパッケージの送信をサポートするために、アクセスパッケージインターフェース940は、ファイルに関連する1つまたは複数のファイルアクセスポリシーの指示を含むデータパックを含むアクセスパッケージをアクセスクライアントに送信する手段として構成されるか、そうでなければこれをサポートすることができ、実行可能コードは、1つまたは複数のアクセス鍵を使用してファイルでデータパックを暗号化するように構成される。いくつかの例では、1つまたは複数のファイルアクセスポリシーは、読み取りアクセス、書き込みアクセス、表示制約、またはそれらの組み合わせを含む。
【0143】
いくつかの例では、アクセスパッケージの送信をサポートするために、アクセスパッケージ構成要素935は、ファイルに関連する監査ログを生成し、1つまたは複数のアクセス鍵を使用してファイルで監査ログを暗号化するように構成された実行可能コードを含むデータパックを含むアクセスパッケージをアクセスクライアントに送信する手段として構成されるか、そうでなければこれをサポートすることができる。
【0144】
いくつかの例では、アクセスパッケージの送信をサポートするために、アクセスパッケージ構成要素935は、ファイルに関連する所有権情報の指示を含むデータパックを含むアクセスパッケージをアクセスクライアントに送信する手段として構成されるか、そうでなければこれをサポートすることができ、実行可能コードは、1つまたは複数のアクセス鍵を使用してファイルでデータパックを暗号化するように構成される。
【0145】
いくつかの例では、アクセス要求の受信をサポートするために、ファイルポリシー構成要素960は、アクセスクライアントから、ファイルに関連する1つまたは複数のファイルアクセスポリシーの指示を受信する手段として構成されるか、そうでなければこれをサポートすることができる。いくつかの例では、アクセス要求の受信をサポートするために、ファイルポリシー構成要素960は、ファイルのファイル識別子に関連して、1つまたは複数のファイルアクセスポリシーを格納する手段として構成されるか、そうでなければこれをサポートすることができる。
【0146】
いくつかの例では、アクセス要求の受信をサポートするために、ファイルポリシー構成要素960は、アクセスクライアントから、ファイルにアクセスすることを認可されている1人または複数のユーザの指示を受信する手段として構成されるか、そうでなければこれをサポートすることができる。いくつかの例では、アクセス要求の受信をサポートするために、ファイルポリシー構成要素960は、ファイルのファイル識別子に関連して、ファイルにアクセスすることを認可されている1人または複数のユーザの指示を格納する手段として構成されるか、そうでなければこれをサポートすることができる。
【0147】
いくつかの例では、アクセス要求の受信をサポートするために、復号構成要素950は、アクセスクライアントから、ファイルを復号するための復号要求を受信する手段として構成されるか、そうでなければこれをサポートすることができ、アクセスパッケージは、1つまたは複数のアクセス鍵を使用してファイルを復号するための実行可能コードを含む。
【0148】
いくつかの例では、ファイルポリシー構成要素960は、ファイルの1つまたは複数のファイルアクセスポリシーを含むデータパックが古くなっていると決定する手段として構成されるか、そうでなければこれをサポートすることができる。いくつかの例では、ファイルポリシー構成要素960は、データパックが古くなっているとの決定に少なくとも部分的に基づいて、ファイルの1つまたは複数の更新されたファイルアクセスポリシーを含む更新されたデータパックを送信する手段として構成されるか、そうでなければこれをサポートすることができる。
【0149】
いくつかの例では、要求検証構成要素930は、サーバにおいて、復号要求で受信したアクセス情報に含まれるユーザ情報をファイルに関連するアクセスレコードと比較する手段として構成されるか、そうでなければこれをサポートすることができる。いくつかの例では、要求検証構成要素930は、比較の結果に少なくとも部分的に基づいて、アクセスクライアントに関連するユーザがファイルにアクセスすることを認可されていると決定する手段として構成されるか、そうでなければこれをサポートすることができ、アクセスパッケージは、ユーザがファイルにアクセスすることを認可されていると決定することに少なくとも部分的に基づいて、アクセスクライアントに送信される。
【0150】
いくつかの例では、要求検証構成要素930は、復号要求で受信したアクセス情報に少なくとも部分的に基づいて、アクセスクライアントがファイルを復号することを認可されていないと決定する手段として構成されるか、そうでなければこれをサポートすることができる。いくつかの例では、動作構成要素965は、アクセスクライアントがファイルを復号することを認可されていないと決定することに少なくとも部分的に基づいて、サーバにおいて動作をトリガする手段として構成されるか、そうでなければこれをサポートすることができる。
【0151】
いくつかの例では、動作のトリガをサポートするために、通知構成要素970は、アクセスクライアントが不正アクセス要求を送信したことを示す警告またはメッセージを生成する手段として構成されるか、そうでなければこれをサポートすることができる。
【0152】
いくつかの例では、動作のトリガをサポートするために、アクセスパッケージ構成要素935は、ファイルの内容を上書きする実行可能コードを含むアクセスパッケージを送信する手段として構成されるか、そうでなければこれをサポートすることができる。
【0153】
いくつかの例では、鍵識別構成要素955は、鍵格納サービスに、アクセス要求の受信に少なくとも部分的に基づいて、ファイルに関連する鍵文字列およびファイル識別子を求める要求を送信する手段として構成されるか、そうでなければこれをサポートすることができる。いくつかの例では、鍵識別構成要素955は、ファイル識別子に関連する鍵文字列を鍵格納サービスから受信する手段として構成されるか、そうでなければこれをサポートすることができる。いくつかの例では、鍵識別構成要素955は、鍵文字列を使用して1つまたは複数のアクセス鍵を生成する手段として構成されるか、そうでなければこれをサポートすることができる。
【0154】
いくつかの例では、アクセス要求の検証をサポートするために、要求検証構成要素930は、それらの組み合わせについて、アクセスクライアントを実行するユーザデバイスの地理的位置、ユーザデバイスに関連するデバイス情報、ユーザデバイスに関連するネットワーク情報、アクセスクライアントに関連する認証トークンを含むアクセス情報を検証する手段として構成されるか、そうでなければこれをサポートすることができる。
【0155】
図10は、本開示の態様にしたがって暗号化ファイル制御をサポートするデバイス1005を含むシステム1000の図を示す。デバイス1005は、データセキュリティ構成要素1020、I/Oコントローラ1010、データベースコントローラ1015、メモリ1025、プロセッサ1030、およびデータベース1035などの、通信を送受信するための構成要素を含む、双方向音声およびデータ通信のための構成要素を含むことができる。これらの構成要素は、電子通信するか、または1つまたは複数のバス(例えば、バス1040)を介して(例えば、動作可能に、通信可能に、機能的に、電子的に、電気的に)結合することができる。
【0156】
I/Oコントローラ1010は、デバイス1005の入力信号1045および出力信号1050を管理することができる。I/Oコントローラ1010はまた、デバイス1005に統合されていない周辺機器を管理することができる。場合によっては、I/Oコントローラ1010は、外部周辺機器への物理的接続またはポートを表すことができる。場合によっては、I/Oコントローラ1010は、iOS(登録商標)、ANDROID(登録商標)、MS-DOS(登録商標)、MS-WINDOWS(登録商標)、OS/2(登録商標)、UNIX(登録商標)、LINUX(登録商標)、または別の既知のオペレーティングシステムなどのオペレーティングシステムを利用することができる。他の場合には、I/Oコントローラ1010は、モデム、キーボード、マウス、タッチスクリーン、または同様のデバイスを表すか、またはこれらと対話することができる。場合によっては、I/Oコントローラ1010は、プロセッサ1030の一部として実装されてもよい。いくつかの例では、ユーザは、I/Oコントローラ1010を介して、またはI/Oコントローラ1010によって制御されるハードウェア構成要素を介してデバイス1005と対話することができる。
【0157】
データベースコントローラ1015は、データベース1035におけるデータ格納および処理を管理することができる。場合によっては、ユーザは、データベースコントローラ1015と対話することができる。他の場合には、データベースコントローラ1015は、ユーザとの対話なしに自動的に動作することができる。データベース1035は、単一のデータベース、分散データベース、複数の分散データベース、データストア、データレイク、または緊急バックアップデータベースの一例であり得る。
【0158】
メモリ1025は、RAMおよびROMを含むことができる。メモリ1025は、実行されると、プロセッサ1030に本明細書に記載の様々な機能を実行させる命令を含むコンピュータ可読コンピュータ実行可能ソフトウェアを格納することができる。場合によっては、メモリ1025は、とりわけ、周辺構成要素またはデバイスとの相互作用などの基本的なハードウェアまたはソフトウェア動作を制御することができるBIOSを含むことができる。
【0159】
プロセッサ1030は、インテリジェントハードウェアデバイス(例えば、汎用プロセッサ、DSP、CPU、マイクロコントローラ、ASIC、FPGA、プログラマブルロジックデバイス、ディスクリートゲートもしくはトランジスタロジック構成要素、ディスクリートハードウェア構成要素、またはそれらの任意の組み合わせ)を含むことができる。場合によっては、プロセッサ1030は、メモリコントローラを使用してメモリアレイを動作させるように構成されてもよい。他の場合には、メモリコントローラは、プロセッサ1030に統合されてもよい。プロセッサ1030は、メモリ1025に格納されたコンピュータ可読命令を実行して、様々な機能(例えば、暗号化ファイル制御をサポートする機能またはタスク)を実行するように構成され得る。
【0160】
データセキュリティ構成要素1020は、本明細書で開示される例にしたがって、サーバにおけるデータセキュリティをサポートすることができる。例えば、データセキュリティ構成要素1020は、アクセスされるべきファイルのアクセス情報およびファイル情報を含むアクセス要求をアクセスクライアントから受信する手段として構成されるか、そうでなければこれをサポートすることができる。データセキュリティ構成要素1020は、アクセス情報を使用してアクセス要求を検証する手段として構成されるか、そうでなければこれをサポートすることができる。データセキュリティ構成要素1020は、アクセス要求の検証に少なくとも部分的に基づいて、実行可能コードおよび1つまたは複数のアクセス鍵を含むアクセスパッケージを生成する手段として構成されるか、そうでなければこれをサポートすることができる。データセキュリティ構成要素1020は、アクセスクライアントにアクセスパッケージを送信する手段として構成されるか、そうでなければこれをサポートすることができ、アクセスパッケージは、アクセスクライアントによって、ファイルにアクセスするために使用される実行可能ファイルにコンパイル可能である。
【0161】
図11は、本開示の態様にしたがって暗号化ファイル制御をサポートする方法1100を例示するフローチャートを示す。方法1100の動作は、本明細書で説明するように、ユーザデバイスまたはその構成要素によって実施することができる。例えば、方法1100の動作は、
図1~
図8を参照して説明したようにユーザデバイスによって実行されてもよい。いくつかの例では、ユーザデバイスは、記載された機能を実行するようにユーザデバイスの機能要素を制御するための命令セットを実行することができる。追加的または代替的に、ユーザデバイスは、専用ハードウェアを使用して記載された機能の態様を実行することができる。
【0162】
1105において、本方法は、アクセスされるファイルのアクセス情報およびファイル情報を含むアクセス要求をサーバに送信するステップを含むことができる。1105の動作は、本明細書に開示される例にしたがって実行することができる。いくつかの例では、1105の動作の態様は、
図7を参照して説明したように、アクセス要求インターフェース725によって実行されてもよい。
【0163】
1110において、本方法は、アクセス要求の送信に少なくとも部分的に基づいて、サーバから、実行可能コードおよび1つまたは複数のアクセス鍵を含むアクセスパッケージを受信するステップを含むことができる。1110の動作は、本明細書に開示される例にしたがって実行することができる。いくつかの例では、1110の動作の態様は、
図7を参照して説明したように、アクセスパッケージインターフェース730によって実行されてもよい。いくつかの例では、アクセスパッケージは、実行可能コードではなく、データまたは値などの1つまたは複数のアクセス鍵および/またはアクセス情報を含む。
【0164】
1115において、本方法は、アクセスクライアントによって、実行可能コードを実行して、1つまたは複数のアクセス鍵を使用してファイルにアクセスするステップを含むことができる。1115の動作は、本明細書に開示される例にしたがって実行することができる。いくつかの例では、1115の動作の態様は、
図7を参照して説明したように、実行構成要素735によって実行されてもよい。アクセスパッケージが1つまたは複数のアクセス鍵および/またはアクセス情報を含む例では、アクセスデバイスは、データを変換することによってペイロードのデータにアクセスするためにアクセス情報を使用することができ、これはデータの暗号化または復号に対応することができる。場合によっては、このプロセスは、アクセスクライアントによってアクセス可能な命令を実行することを含むことができる。これらの命令は、アクセスパッケージに含まれていても含まれていなくてもよい。
【0165】
1120において、本方法は、アクセスクライアントに関連するメモリからアクセスパッケージを削除するステップを含むことができる。1120の動作は、本明細書に開示される例にしたがって実行することができる。いくつかの例では、1120の動作の態様は、
図7を参照して説明したように、アクセスパッケージ削除構成要素740によって実行されてもよい。
【0166】
図12は、本開示の態様にしたがって暗号化ファイル制御をサポートする方法1200を例示するフローチャートを示す。方法1200の動作は、本明細書で説明するように、ユーザデバイスまたはその構成要素によって実施することができる。例えば、方法1200の動作は、
図1~
図8を参照して説明したようにユーザデバイスによって実行されてもよい。いくつかの例では、ユーザデバイスは、記載された機能を実行するようにユーザデバイスの機能要素を制御するための命令セットを実行することができる。追加的または代替的に、ユーザデバイスは、専用ハードウェアを使用して記載された機能の態様を実行することができる。
【0167】
1205において、本方法は、アクセスされるファイルのアクセス情報およびファイル情報を含むアクセス要求をサーバに送信するステップを含むことができる。1205の動作は、本明細書に開示される例にしたがって実行することができる。いくつかの例では、1205の動作の態様は、
図7を参照して説明したように、アクセス要求インターフェース725によって実行されてもよい。
【0168】
1210において、本方法は、暗号化要求およびファイル情報をサーバに送信するステップを含むことができる。1210の動作は、本明細書に開示される例にしたがって実行することができる。いくつかの例では、1210の動作の態様は、
図7を参照して説明したように、暗号化構成要素745によって実行されてもよい。
【0169】
1215において、本方法は、アクセス要求の送信に少なくとも部分的に基づいて、サーバから、実行可能コードおよび1つまたは複数のアクセス鍵を含むアクセスパッケージを受信するステップを含むことができる。1215の動作は、本明細書に開示される例にしたがって実行することができる。いくつかの例では、1215の動作の態様は、
図7を参照して説明したように、アクセスパッケージインターフェース730によって実行されてもよい。
【0170】
1220において、本方法は、ファイルに関連する所有権情報の指示を含むデータパックを含むアクセスパッケージを受信するステップを含むことができ、データパックは、1つまたは複数のアクセス鍵を使用してファイルで暗号化される。1220の動作は、本明細書に開示される例にしたがって実行することができる。いくつかの例では、1220の動作の態様は、
図7を参照して説明したように、アクセスパッケージインターフェース730によって実行されてもよい。
【0171】
1225において、本方法は、アクセスクライアントによって、実行可能コードを実行して、1つまたは複数のアクセス鍵を使用してファイルにアクセスするステップを含むことができる。1225の動作は、本明細書に開示される例にしたがって実行することができる。いくつかの例では、1225の動作の態様は、
図7を参照して説明したように、実行構成要素735によって実行されてもよい。
【0172】
1230において、本方法は、アクセスクライアントに関連するメモリからアクセスパッケージを削除するステップを含むことができる。1230の動作は、本明細書に開示される例にしたがって実行することができる。いくつかの例では、1230の動作の態様は、
図7を参照して説明したように、アクセスパッケージ削除構成要素740によって実行されてもよい。
【0173】
図13は、本開示の態様にしたがって暗号化ファイル制御をサポートする方法1300を例示するフローチャートを示す。方法1300の動作は、本明細書で説明するように、ユーザデバイスまたはその構成要素によって実施することができる。例えば、方法1300の動作は、
図1~
図8を参照して説明したようにユーザデバイスによって実行されてもよい。いくつかの例では、ユーザデバイスは、記載された機能を実行するようにユーザデバイスの機能要素を制御するための命令セットを実行することができる。追加的または代替的に、ユーザデバイスは、専用ハードウェアを使用して記載された機能の態様を実行することができる。
【0174】
1305において、本方法は、アクセスされるファイルのアクセス情報およびファイル情報を含むアクセス要求をサーバに送信するステップを含むことができる。1305の動作は、本明細書に開示される例にしたがって実行することができる。いくつかの例では、1305の動作の態様は、
図7を参照して説明したように、アクセス要求インターフェース725によって実行されてもよい。
【0175】
1310において、本方法は、暗号化要求およびファイル情報をサーバに送信するステップを含むことができる。1310の動作は、本明細書に開示される例にしたがって実行することができる。いくつかの例では、1310の動作の態様は、
図7を参照して説明したように、暗号化構成要素745によって実行されてもよい。
【0176】
1315において、本方法は、アクセス要求の送信に少なくとも部分的に基づいて、サーバから、実行可能コードおよび1つまたは複数のアクセス鍵を含むアクセスパッケージを受信するステップを含むことができる。1315の動作は、本明細書に開示される例にしたがって実行することができる。いくつかの例では、1315の動作の態様は、
図7を参照して説明したように、アクセスパッケージインターフェース730によって実行されてもよい。
【0177】
1320において、本方法は、アクセスクライアントによって、実行可能コードを実行して、1つまたは複数のアクセス鍵を使用してファイルにアクセスするステップを含むことができる。1320の動作は、本明細書に開示される例にしたがって実行することができる。いくつかの例では、1320の動作の態様は、
図7を参照して説明したように、実行構成要素735によって実行されてもよい。
【0178】
1325において、本方法は、暗号化ファイルを生成するために、実行可能コードを使用して、1つまたは複数のアクセス鍵を使用してペイロードおよび1つまたは複数のデータパックを暗号化するステップを含むことができる。1325の動作は、本明細書に開示される例にしたがって実行することができる。いくつかの例では、1325の動作の態様は、
図7を参照して説明したように、暗号化構成要素745によって実行されてもよい。
【0179】
1330において、本方法は、1つまたは複数のファイルアクセスポリシー、ファイル所有権情報、ファイルアクセス監査ログ、またはそれらの組み合わせの指示を含む1つまたは複数のデータパックを暗号化するステップを含むことができる。1330の動作は、本明細書に開示される例にしたがって実行することができる。いくつかの例では、1330の動作の態様は、
図7を参照して説明したように、暗号化構成要素745によって実行されてもよい。
【0180】
1335において、本方法は、アクセスクライアントに関連するメモリからアクセスパッケージを削除するステップを含むことができる。1335の動作は、本明細書に開示される例にしたがって実行することができる。いくつかの例では、1335の動作の態様は、
図7を参照して説明したように、アクセスパッケージ削除構成要素740によって実行されてもよい。
【0181】
図14は、本開示の態様にしたがって暗号化ファイル制御をサポートする方法1400を例示するフローチャートを示す。方法1400の動作は、本明細書で説明するように、ユーザデバイスまたはその構成要素によって実施することができる。例えば、方法1400の動作は、
図1~
図8を参照して説明したようにユーザデバイスによって実行されてもよい。いくつかの例では、ユーザデバイスは、記載された機能を実行するようにユーザデバイスの機能要素を制御するための命令セットを実行することができる。追加的または代替的に、ユーザデバイスは、専用ハードウェアを使用して記載された機能の態様を実行することができる。
【0182】
1405において、本方法は、アクセスされるファイルのアクセス情報およびファイル情報を含むアクセス要求をサーバに送信するステップを含むことができる。1405の動作は、本明細書に開示される例にしたがって実行することができる。いくつかの例では、1405の動作の態様は、
図7を参照して説明したように、アクセス要求インターフェース725によって実行されてもよい。
【0183】
1410において、本方法は、アクセス要求の送信に少なくとも部分的に基づいて、サーバから、実行可能コードおよび1つまたは複数のアクセス鍵を含むアクセスパッケージを受信するステップを含むことができる。1410の動作は、本明細書に開示される例にしたがって実行することができる。いくつかの例では、1410の動作の態様は、
図7を参照して説明したように、アクセスパッケージインターフェース730によって実行されてもよい。
【0184】
1415において、本方法は、アクセスクライアントによって、実行可能コードを実行して、1つまたは複数のアクセス鍵を使用してファイルにアクセスするステップを含むことができる。1415の動作は、本明細書に開示される例にしたがって実行することができる。いくつかの例では、1415の動作の態様は、
図7を参照して説明したように、実行構成要素735によって実行されてもよい。
【0185】
1420において、本方法は、アクセスクライアントに関連するメモリからアクセスパッケージを削除するステップを含むことができる。1420の動作は、本明細書に開示される例にしたがって実行することができる。いくつかの例では、1420の動作の態様は、
図7を参照して説明したように、アクセスパッケージ削除構成要素740によって実行されてもよい。
【0186】
1425において、本方法は、復号要求およびファイル情報をサーバに送信するステップを含むことができ、実行可能コードは、ファイルを復号するために使用されるコードを含む。1425の動作は、本明細書に開示される例にしたがって実行することができる。いくつかの例では、1425の動作の態様は、
図7を参照して説明したように、復号構成要素750によって実行されてもよい。
【0187】
図15は、本開示の態様にしたがって暗号化ファイル制御をサポートする方法1500を例示するフローチャートを示す。方法1500の動作は、本明細書で説明するように、ユーザデバイスまたはその構成要素によって実施することができる。例えば、方法1500の動作は、
図1~
図8を参照して説明したようにユーザデバイスによって実行されてもよい。いくつかの例では、ユーザデバイスは、記載された機能を実行するようにユーザデバイスの機能要素を制御するための命令セットを実行することができる。追加的または代替的に、ユーザデバイスは、専用ハードウェアを使用して記載された機能の態様を実行することができる。
【0188】
1505において、本方法は、アクセスクライアントにおいて、アクセスクライアント情報、コンピュータ情報、デバイス情報、地理的位置情報、認証トークン、またはそれらの組み合わせを含む検証情報を識別するステップを含むことができ、復号要求は、検証情報の指示を含む。1505の動作は、本明細書に開示される例にしたがって実行することができる。いくつかの例では、1505の動作の態様は、
図7を参照して説明したように、検証情報構成要素760によって実行されてもよい。
【0189】
1510において、本方法は、アクセスされるファイルのアクセス情報およびファイル情報を含むアクセス要求をサーバに送信するステップを含むことができる。1510の動作は、本明細書に開示される例にしたがって実行することができる。いくつかの例では、1510の動作の態様は、
図7を参照して説明したように、アクセス要求インターフェース725によって実行されてもよい。
【0190】
1515において、本方法は、アクセス要求の送信に少なくとも部分的に基づいて、サーバから、実行可能コードおよび1つまたは複数のアクセス鍵を含むアクセスパッケージを受信するステップを含むことができる。1515の動作は、本明細書に開示される例にしたがって実行することができる。いくつかの例では、1515の動作の態様は、
図7を参照して説明したように、アクセスパッケージインターフェース730によって実行されてもよい。
【0191】
1520において、本方法は、1つまたは複数の更新されたファイルアクセスポリシーを含むデータパックを含むアクセスパッケージを受信するステップを含むことができる。1520の動作は、本明細書に開示される例にしたがって実行することができる。いくつかの例では、1520の動作の態様は、
図7を参照して説明したように、アクセスパッケージインターフェース730によって実行されてもよい。
【0192】
1525において、本方法は、アクセスクライアントによって、実行可能コードを実行して、1つまたは複数のアクセス鍵を使用してファイルにアクセスするステップを含むことができる。1525の動作は、本明細書に開示される例にしたがって実行することができる。いくつかの例では、1525の動作の態様は、
図7を参照して説明したように、実行構成要素735によって実行されてもよい。
【0193】
1530において、本方法は、アクセスクライアントに関連するメモリからアクセスパッケージを削除するステップを含むことができる。1530の動作は、本明細書に開示される例にしたがって実行することができる。いくつかの例では、1530の動作の態様は、
図7を参照して説明したように、アクセスパッケージ削除構成要素740によって実行されてもよい。
【0194】
1535において、本方法は、復号要求およびファイル情報をサーバに送信するステップを含むことができ、実行可能コードは、ファイルを復号するために使用されるコードを含む。1535の動作は、本明細書に開示される例にしたがって実行することができる。いくつかの例では、1535の動作の態様は、
図7を参照して説明したように、復号構成要素750によって実行されてもよい。
【0195】
図16は、本開示の態様にしたがって暗号化ファイル制御をサポートする方法1600を例示するフローチャートを示す。方法1600の動作は、本明細書で説明するように、ユーザデバイスまたはその構成要素によって実施することができる。例えば、方法1600の動作は、
図1~
図8を参照して説明したようにユーザデバイスによって実行されてもよい。いくつかの例では、ユーザデバイスは、記載された機能を実行するようにユーザデバイスの機能要素を制御するための命令セットを実行することができる。追加的または代替的に、ユーザデバイスは、専用ハードウェアを使用して記載された機能の態様を実行することができる。
【0196】
1605において、本方法は、アクセスされるファイルのアクセス情報およびファイル情報を含むアクセス要求をサーバに送信するステップを含むことができる。1605の動作は、本明細書に開示される例にしたがって実行することができる。いくつかの例では、1605の動作の態様は、
図7を参照して説明したように、アクセス要求インターフェース725によって実行されてもよい。
【0197】
1610において、本方法は、アクセス要求の送信に少なくとも部分的に基づいて、サーバから、実行可能コードおよび1つまたは複数のアクセス鍵を含むアクセスパッケージを受信するステップを含むことができる。1610の動作は、本明細書に開示される例にしたがって実行することができる。いくつかの例では、1610の動作の態様は、
図7を参照して説明したように、アクセスパッケージインターフェース730によって実行されてもよい。
【0198】
1615において、本方法は、アクセスクライアントによって、実行可能コードを実行して、1つまたは複数のアクセス鍵を使用してファイルにアクセスするステップを含むことができる。1615の動作は、本明細書に開示される例にしたがって実行することができる。いくつかの例では、1615の動作の態様は、
図7を参照して説明したように、実行構成要素735によって実行されてもよい。
【0199】
1620において、本方法は、1つまたは複数のアクセス鍵を使用してファイルを復号するステップを含むことができる。1620の動作は、本明細書に開示される例にしたがって実行することができる。いくつかの例では、1620の動作の態様は、
図7を参照して説明したように、復号構成要素750によって実行されてもよい。
【0200】
1625において、本方法は、ファイルに関連する1つまたは複数のアクセスポリシーにしたがって、アクセスクライアントにおいてファイルのペイロードを表示するステップを含むことができる。1625の動作は、本明細書に開示される例にしたがって実行することができる。いくつかの例では、1625の動作の態様は、
図7を参照して説明したように、復号構成要素750によって実行されてもよい。
【0201】
1630において、本方法は、アクセスクライアントに関連するメモリからアクセスパッケージを削除するステップを含むことができる。1630の動作は、本明細書に開示される例にしたがって実行することができる。いくつかの例では、1630の動作の態様は、
図7を参照して説明したように、アクセスパッケージ削除構成要素740によって実行されてもよい。
【0202】
1635において、本方法は、復号要求およびファイル情報をサーバに送信するステップを含むことができ、実行可能コードは、ファイルを復号するために使用されるコードを含む。1635の動作は、本明細書に開示される例にしたがって実行することができる。いくつかの例では、1635の動作の態様は、
図7を参照して説明したように、復号構成要素750によって実行されてもよい。
【0203】
図17は、本開示の態様にしたがって暗号化ファイル制御をサポートする方法1700を例示するフローチャートを示す。方法1700の動作は、本明細書で説明するように、ユーザデバイスまたはその構成要素によって実施することができる。例えば、方法1700の動作は、
図1~
図8を参照して説明したようにユーザデバイスによって実行されてもよい。いくつかの例では、ユーザデバイスは、記載された機能を実行するようにユーザデバイスの機能要素を制御するための命令セットを実行することができる。追加的または代替的に、ユーザデバイスは、専用ハードウェアを使用して記載された機能の態様を実行することができる。
【0204】
1705において、本方法は、アクセスされるファイルのアクセス情報およびファイル情報を含むアクセス要求をサーバに送信するステップを含むことができる。1705の動作は、本明細書に開示される例にしたがって実行することができる。いくつかの例では、1705の動作の態様は、
図7を参照して説明したように、アクセス要求インターフェース725によって実行されてもよい。
【0205】
1710において、本方法は、アクセス要求の送信に少なくとも部分的に基づいて、サーバから、実行可能コードおよび1つまたは複数のアクセス鍵を含むアクセスパッケージを受信するステップを含むことができる。1710の動作は、本明細書に開示される例にしたがって実行することができる。いくつかの例では、1710の動作の態様は、
図7を参照して説明したように、アクセスパッケージインターフェース730によって実行されてもよい。
【0206】
1715において、本方法は、アクセスクライアントによって、実行可能コードを実行して、1つまたは複数のアクセス鍵を使用してファイルにアクセスするステップを含むことができる。1715の動作は、本明細書に開示される例にしたがって実行することができる。いくつかの例では、1715の動作の態様は、
図7を参照して説明したように、実行構成要素735によって実行されてもよい。
【0207】
1720において、本方法は、1つまたは複数のアクセス鍵を使用してファイルを復号するステップを含むことができる。1720の動作は、本明細書に開示される例にしたがって実行することができる。いくつかの例では、1720の動作の態様は、
図7を参照して説明したように、復号構成要素750によって実行されてもよい。
【0208】
1725において、本方法は、アクセスクライアントに関連するデバイス情報、ユーザ情報、地理的位置情報、またはそれらの組み合わせを含むようにファイルアクセス監査ログを更新するステップを含むことができる。1725の動作は、本明細書に開示される例にしたがって実行することができる。いくつかの例において、1725の動作の態様は、
図7を参照して説明したように、アクセスログ構成要素770によって実行されてもよい。
【0209】
1730において、本方法は、アクセスクライアントに関連するメモリからアクセスパッケージを削除するステップを含むことができる。1730の動作は、本明細書に開示される例にしたがって実行することができる。いくつかの例では、1730の動作の態様は、
図7を参照して説明したように、アクセスパッケージ削除構成要素740によって実行されてもよい。
【0210】
1735において、本方法は、復号要求およびファイル情報をサーバに送信するステップを含むことができ、実行可能コードは、ファイルを復号するために使用されるコードを含む。1735の動作は、本明細書に開示される例にしたがって実行することができる。いくつかの例では、1735の動作の態様は、
図7を参照して説明したように、復号構成要素750によって実行されてもよい。
【0211】
図18は、本開示の態様にしたがって暗号化ファイル制御をサポートする方法1800を例示するフローチャートを示す。方法1800の動作は、本明細書で説明するように、サーバまたはその構成要素によって実施することができる。例えば、方法1800の動作は、
図1~
図6および
図9および
図10を参照して説明したようにサーバによって実行されてもよい。いくつかの例では、サーバは、記載された機能を実行するようにサーバの機能要素を制御するための命令セットを実行することができる。追加的または代替的に、サーバは、専用ハードウェアを使用して記載された機能の態様を実行することができる。
【0212】
1805において、本方法は、アクセスクライアントから、アクセスされるファイルのアクセス情報およびファイル情報を含むアクセス要求を受信するステップを含むことができる。1805の動作は、本明細書に開示される例にしたがって実行することができる。いくつかの例では、1805の動作の態様は、
図9を参照して説明したように、アクセス要求インターフェース925によって実行されてもよい。
【0213】
1810において、本方法は、アクセス情報を使用してアクセス要求を検証するステップを含むことができる。1810の動作は、本明細書に開示される例にしたがって実行することができる。いくつかの例では、1810の動作の態様は、
図9を参照して説明したように、要求検証構成要素930によって実行されてもよい。
【0214】
1815において、本方法は、アクセス要求の検証に少なくとも部分的に基づいて、実行可能コードおよび1つまたは複数のアクセス鍵を含むアクセスパッケージを生成するステップを含むことができる。1815の動作は、本明細書に開示される例にしたがって実行することができる。いくつかの例では、1815の動作の態様は、
図9を参照して説明したように、アクセスパッケージ構成要素935によって実行されてもよい。いくつかの例では、アクセスパッケージを生成するステップは、実行可能コードではなく、データまたは値などの1つまたは複数のアクセス鍵および/またはアクセス情報を識別するステップを含むことができる。
【0215】
1820において、本方法は、アクセスクライアントにアクセスパッケージを送信するステップを含むことができ、アクセスパッケージは、アクセスクライアントによって、ファイルにアクセスするために使用される実行可能ファイルにコンパイル可能である。1820の動作は、本明細書に開示される例にしたがって実行することができる。いくつかの例では、1820の動作の態様は、
図9を参照して説明したように、アクセスパッケージインターフェース940によって実行されてもよい。アクセスパッケージがアクセス情報を含む場合、アクセスクライアントは、データを変換することによってペイロードのデータにアクセスするためにアクセス情報を使用することができ、これはデータの暗号化または復号に対応することができる。場合によっては、このプロセスは、アクセスクライアントによってアクセス可能な命令を実行することを含むことができる。これらの命令は、アクセスパッケージに含まれていても含まれていなくてもよい。
【0216】
図19は、本開示の態様にしたがって暗号化ファイル制御をサポートする方法1900を例示するフローチャートを示す。方法1900の動作は、本明細書で説明するように、サーバまたはその構成要素によって実施することができる。例えば、方法1900の動作は、
図1~
図6および
図9および
図10を参照して説明したようにサーバによって実行されてもよい。いくつかの例では、サーバは、記載された機能を実行するようにサーバの機能要素を制御するための命令セットを実行することができる。追加的または代替的に、サーバは、専用ハードウェアを使用して記載された機能の態様を実行することができる。
【0217】
1905において、本方法は、アクセスクライアントから、アクセスされるファイルのアクセス情報およびファイル情報を含むアクセス要求を受信するステップを含むことができる。1905の動作は、本明細書に開示される例にしたがって実行することができる。いくつかの例では、1905の動作の態様は、
図9を参照して説明したように、アクセス要求インターフェース925によって実行されてもよい。
【0218】
1910において、方法は、アクセスクライアントから、ファイルを暗号化するための暗号化要求を受信するステップを含むことができ、アクセスパッケージは、1つまたは複数のアクセス鍵を使用してファイルを暗号化するための実行可能コードを含む。1910の動作は、本明細書に開示される例にしたがって実行することができる。いくつかの例では、1910の動作の態様は、
図9を参照して説明したように、暗号化構成要素945によって実行されてもよい。
【0219】
1915において、本方法は、アクセス情報を使用してアクセス要求を検証するステップを含むことができる。1915の動作は、本明細書に開示される例にしたがって実行することができる。いくつかの例では、1915の動作の態様は、
図9を参照して説明したように、要求検証構成要素930によって実行されてもよい。
【0220】
1920において、本方法は、アクセス要求の検証に少なくとも部分的に基づいて、実行可能コードおよび1つまたは複数のアクセス鍵を含むアクセスパッケージを生成するステップを含むことができる。1920の動作は、本明細書に開示される例にしたがって実行することができる。いくつかの例では、1920の動作の態様は、
図9を参照して説明したように、アクセスパッケージ構成要素935によって実行されてもよい。
【0221】
1925において、本方法は、アクセスクライアントにアクセスパッケージを送信するステップを含むことができ、アクセスパッケージは、アクセスクライアントによって、ファイルにアクセスするために使用される実行可能ファイルにコンパイル可能である。1925の動作は、本明細書に開示される例にしたがって実行することができる。いくつかの例では、1925の動作の態様は、
図9を参照して説明したように、アクセスパッケージインターフェース940によって実行されてもよい。
【0222】
1930において、本方法は、ファイルに関連する1つまたは複数のファイルアクセスポリシーの指示を含むデータパックを含むアクセスパッケージをアクセスクライアントに送信するステップを含むことができ、実行可能コードは、1つまたは複数のアクセス鍵を使用してファイルでデータパックを暗号化するように構成される。1930の動作は、本明細書に開示される例にしたがって実行することができる。いくつかの例では、1930の動作の態様は、
図9を参照して説明したように、アクセスパッケージインターフェース940によって実行されてもよい。
【0223】
1935において、本方法は、ファイルに関連する監査ログを生成し、1つまたは複数のアクセス鍵を使用してファイルで監査ログを暗号化するように構成された実行可能コードを含むデータパックを含むアクセスパッケージをアクセスクライアントに送信するステップを含むことができる。1935の動作は、本明細書に開示される例にしたがって実行することができる。いくつかの例では、1935の動作の態様は、
図9を参照して説明したように、アクセスパッケージ構成要素935によって実行されてもよい。
【0224】
図20は、本開示の態様にしたがって暗号化ファイル制御をサポートする方法2000を例示するフローチャートを示す。方法2000の動作は、本明細書で説明するように、サーバまたはその構成要素によって実施することができる。例えば、方法2000の動作は、
図1~
図6および
図9および
図10を参照して説明したようにサーバによって実行されてもよい。いくつかの例では、サーバは、記載された機能を実行するようにサーバの機能要素を制御するための命令セットを実行することができる。追加的または代替的に、サーバは、専用ハードウェアを使用して記載された機能の態様を実行することができる。
【0225】
2005において、本方法は、アクセスクライアントから、アクセスされるファイルのアクセス情報およびファイル情報を含むアクセス要求を受信するステップを含むことができる。2005の動作は、本明細書に開示される例にしたがって実行することができる。いくつかの例では、2005の動作の態様は、
図9を参照して説明したように、アクセス要求インターフェース925によって実行されてもよい。
【0226】
2010において、方法は、アクセスクライアントから、ファイルを暗号化するための暗号化要求を受信するステップを含むことができ、アクセスパッケージは、1つまたは複数のアクセス鍵を使用してファイルを暗号化するための実行可能コードを含む。2010の動作は、本明細書に開示される例にしたがって実行することができる。いくつかの例では、2010の動作の態様は、
図9を参照して説明したように、暗号化構成要素945によって実行されてもよい。
【0227】
2015において、本方法は、アクセスクライアントから、ファイルに関連する1つまたは複数のファイルアクセスポリシーの指示を受信するステップを含むことができる。2015の動作は、本明細書に開示される例にしたがって実行することができる。いくつかの例では、2015の動作の態様は、
図9を参照して説明したように、ファイルポリシー構成要素960によって実行されてもよい。
【0228】
2020において、本方法は、ファイルのファイル識別子に関連して、1つまたは複数のファイルアクセスポリシーを格納するステップを含むことができる。2020の動作は、本明細書に開示される例にしたがって実行することができる。いくつかの例では、2020の動作の態様は、
図9を参照して説明したように、ファイルポリシー構成要素960によって実行されてもよい。
【0229】
2025において、本方法は、アクセス情報を使用してアクセス要求を検証するステップを含むことができる。2025の動作は、本明細書に開示される例にしたがって実行することができる。いくつかの例では、2025の動作の態様は、
図9を参照して説明したように、要求検証構成要素930によって実行されてもよい。
【0230】
2030において、本方法は、アクセス要求の検証に少なくとも部分的に基づいて、実行可能コードおよび1つまたは複数のアクセス鍵を含むアクセスパッケージを生成するステップを含むことができる。2030の動作は、本明細書に開示される例にしたがって実行することができる。いくつかの例では、2030の動作の態様は、
図9を参照して説明したように、アクセスパッケージ構成要素935によって実行されてもよい。
【0231】
2035において、本方法は、アクセスクライアントにアクセスパッケージを送信するステップを含むことができ、アクセスパッケージは、アクセスクライアントによって、ファイルにアクセスするために使用される実行可能ファイルにコンパイル可能である。2035の動作は、本明細書に開示される例にしたがって実行することができる。いくつかの例では、2035の動作の態様は、
図9を参照して説明したように、アクセスパッケージインターフェース940によって実行されてもよい。
【0232】
図21は、本開示の態様にしたがって暗号化ファイル制御をサポートする方法2100を例示するフローチャートを示す。方法2100の動作は、本明細書で説明するように、サーバまたはその構成要素によって実施することができる。例えば、方法2100の動作は、
図1~
図6および
図9および
図10を参照して説明したようにサーバによって実行されてもよい。いくつかの例では、サーバは、記載された機能を実行するようにサーバの機能要素を制御するための命令セットを実行することができる。追加的または代替的に、サーバは、専用ハードウェアを使用して記載された機能の態様を実行することができる。
【0233】
2105において、本方法は、アクセスクライアントから、アクセスされるファイルのアクセス情報およびファイル情報を含むアクセス要求を受信するステップを含むことができる。2105の動作は、本明細書に開示される例にしたがって実行することができる。いくつかの例では、2105の動作の態様は、
図9を参照して説明したように、アクセス要求インターフェース925によって実行されてもよい。
【0234】
2110において、本方法は、アクセスクライアントから、ファイルへのアクセスを認可されている1人または複数のユーザの指示を受信するステップを含むことができる。2110の動作は、本明細書に開示される例にしたがって実行することができる。いくつかの例では、2110の動作の態様は、
図9を参照して説明したように、ファイルポリシー構成要素960によって実行されてもよい。
【0235】
2115において、方法は、アクセスクライアントから、ファイルを暗号化するための暗号化要求を受信するステップを含むことができ、アクセスパッケージは、1つまたは複数のアクセス鍵を使用してファイルを暗号化するための実行可能コードを含む。2115の動作は、本明細書に開示される例にしたがって実行することができる。いくつかの例では、2115の動作の態様は、
図9を参照して説明したように、暗号化構成要素945によって実行されてもよい。
【0236】
2120において、本方法は、ファイルのファイル識別子に関連して、ファイルにアクセスすることを認可されている1人または複数のユーザの指示を格納するステップを含むことができる。2120の動作は、本明細書に開示される例にしたがって実行することができる。いくつかの例では、2120の動作の態様は、
図9を参照して説明したように、ファイルポリシー構成要素960によって実行されてもよい。
【0237】
2125において、本方法は、アクセス情報を使用してアクセス要求を検証するステップを含むことができる。2125の動作は、本明細書に開示される例にしたがって実行することができる。いくつかの例では、2125の動作の態様は、
図9を参照して説明したように、要求検証構成要素930によって実行されてもよい。
【0238】
2130において、本方法は、アクセス要求の検証に少なくとも部分的に基づいて、実行可能コードおよび1つまたは複数のアクセス鍵を含むアクセスパッケージを生成するステップを含むことができる。2130の動作は、本明細書に開示される例にしたがって実行することができる。いくつかの例では、2130の動作の態様は、
図9を参照して説明したように、アクセスパッケージ構成要素935によって実行されてもよい。
【0239】
2135において、本方法は、アクセスクライアントにアクセスパッケージを送信するステップを含むことができ、アクセスパッケージは、アクセスクライアントによって、ファイルにアクセスするために使用される実行可能ファイルにコンパイル可能である。2135の動作は、本明細書に開示される例にしたがって実行することができる。いくつかの例では、2135の動作の態様は、
図9を参照して説明したように、アクセスパッケージインターフェース940によって実行されてもよい。
【0240】
図22は、本開示の態様にしたがって暗号化ファイル制御をサポートする方法2200を例示するフローチャートを示す。方法2200の動作は、本明細書で説明するように、サーバまたはその構成要素によって実施することができる。例えば、方法2200の動作は、
図1~
図6および
図9および
図10を参照して説明したようにサーバによって実行されてもよい。いくつかの例では、サーバは、記載された機能を実行するようにサーバの機能要素を制御するための命令セットを実行することができる。追加的または代替的に、サーバは、専用ハードウェアを使用して記載された機能の態様を実行することができる。
【0241】
2205において、本方法は、アクセスクライアントから、アクセスされるファイルのアクセス情報およびファイル情報を含むアクセス要求を受信するステップを含むことができる。2205の動作は、本明細書に開示される例にしたがって実行することができる。いくつかの例では、2205の動作の態様は、
図9を参照して説明したように、アクセス要求インターフェース925によって実行されてもよい。
【0242】
2210において、本方法は、アクセス情報を使用してアクセス要求を検証するステップを含むことができる。2210の動作は、本明細書に開示される例にしたがって実行することができる。いくつかの例では、2210の動作の態様は、
図9を参照して説明したように、要求検証構成要素930によって実行されてもよい。
【0243】
2215において、本方法は、サーバにおいて、復号要求で受信したアクセス情報に含まれるユーザ情報をファイルに関連するアクセスレコードと比較するステップを含むことができる。2215の動作は、本明細書に開示される例にしたがって実行することができる。いくつかの例では、2215の動作の態様は、
図9を参照して説明したように、要求検証構成要素930によって実行されてもよい。
【0244】
2220において、本方法は、比較の結果に少なくとも部分的に基づいて、アクセスクライアントに関連するユーザがファイルにアクセスすることを認可されていると決定するステップを含むことができ、アクセスパッケージは、ユーザがファイルにアクセスすることを認可されていると決定することに少なくとも部分的に基づいて、アクセスクライアントに送信される。2220の動作は、本明細書に開示される例にしたがって実行することができる。いくつかの例では、2220の動作の態様は、
図9を参照して説明したように、要求検証構成要素930によって実行されてもよい。
【0245】
2225において、本方法は、アクセス要求の検証に少なくとも部分的に基づいて、実行可能コードおよび1つまたは複数のアクセス鍵を含むアクセスパッケージを生成するステップを含むことができる。2225の動作は、本明細書に開示される例にしたがって実行することができる。いくつかの例では、2225の動作の態様は、
図9を参照して説明したように、アクセスパッケージ構成要素935によって実行されてもよい。
【0246】
2230において、本方法は、アクセスクライアントにアクセスパッケージを送信するステップを含むことができ、アクセスパッケージは、アクセスクライアントによって、ファイルにアクセスするために使用される実行可能ファイルにコンパイル可能である。2230の動作は、本明細書に開示される例にしたがって実行することができる。いくつかの例では、2230の動作の態様は、
図9を参照して説明したように、アクセスパッケージインターフェース940によって実行されてもよい。
【0247】
2235において、方法は、アクセスクライアントから、ファイルを復号するための復号要求を受信するステップを含むことができ、アクセスパッケージは、1つまたは複数のアクセス鍵を使用してファイルを復号するための実行可能コードを含む。2235の動作は、本明細書に開示される例にしたがって実行することができる。いくつかの例では、2235の動作の態様は、
図9を参照して説明したように、復号構成要素950によって実行されてもよい。
【0248】
図23は、本開示の態様にしたがって暗号化ファイル制御をサポートする方法2300を例示するフローチャートを示す。方法2300の動作は、本明細書で説明するように、サーバまたはその構成要素によって実施することができる。例えば、方法2300の動作は、
図1~
図6および
図9および
図10を参照して説明したようにサーバによって実行されてもよい。いくつかの例では、サーバは、記載された機能を実行するようにサーバの機能要素を制御するための命令セットを実行することができる。追加的または代替的に、サーバは、専用ハードウェアを使用して記載された機能の態様を実行することができる。
【0249】
2305において、本方法は、アクセスクライアントから、アクセスされるファイルのアクセス情報およびファイル情報を含むアクセス要求を受信するステップを含むことができる。2305の動作は、本明細書に開示される例にしたがって実行することができる。いくつかの例では、2305の動作の態様は、
図9を参照して説明したように、アクセス要求インターフェース925によって実行されてもよい。
【0250】
2310において、本方法は、アクセス情報を使用してアクセス要求を検証するステップを含むことができる。2310の動作は、本明細書に開示される例にしたがって実行することができる。いくつかの例では、2310の動作の態様は、
図9を参照して説明したように、要求検証構成要素930によって実行されてもよい。
【0251】
2315において、本方法は、アクセス要求の検証に少なくとも部分的に基づいて、実行可能コードおよび1つまたは複数のアクセス鍵を含むアクセスパッケージを生成するステップを含むことができる。2315の動作は、本明細書に開示される例にしたがって実行することができる。いくつかの例では、2315の動作の態様は、
図9を参照して説明したように、アクセスパッケージ構成要素935によって実行されてもよい。
【0252】
2320において、本方法は、鍵格納サービスに、アクセス要求の受信に少なくとも部分的に基づいて、ファイルに関連する鍵文字列およびファイル識別子を求める要求を送信するステップを含むことができる。2320の動作は、本明細書に開示される例にしたがって実行することができる。いくつかの例では、2320の動作の態様は、
図9を参照して説明したように、鍵識別構成要素955によって実行されてもよい。
【0253】
2325において、本方法は、鍵格納サービスから、ファイル識別子に関連する鍵文字列を受信するステップを含むことができる。2325の動作は、本明細書に開示される例にしたがって実行することができる。いくつかの例では、2325の動作の態様は、
図9を参照して説明したように、鍵識別構成要素955によって実行されてもよい。
【0254】
2330において、本方法は、鍵文字列を使用して1つまたは複数のアクセス鍵を生成するステップを含むことができる。2330の動作は、本明細書に開示される例にしたがって実行することができる。いくつかの例では、2330の動作の態様は、
図9を参照して説明したように、鍵識別構成要素955によって実行されてもよい。
【0255】
2335において、本方法は、アクセスクライアントにアクセスパッケージを送信するステップを含むことができ、アクセスパッケージは、アクセスクライアントによって、ファイルにアクセスするために使用される実行可能ファイルにコンパイル可能である。2335の動作は、本明細書に開示される例にしたがって実行することができる。いくつかの例では、2335の動作の態様は、
図9を参照して説明したように、アクセスパッケージインターフェース940によって実行されてもよい。
【0256】
アクセスクライアントにおけるデータセキュリティのための方法について説明する。本方法は、アクセスされるファイルのアクセス情報およびファイル情報を含むアクセス要求をサーバに送信するステップと、アクセス要求の送信に少なくとも部分的に基づいて、実行可能コードおよび1つまたは複数のアクセス鍵を含むアクセスパッケージをサーバから受信するステップと、アクセスクライアントによって、1つまたは複数のアクセス鍵を使用してファイルにアクセスするために実行可能コードを実行するステップと、アクセスクライアントに関連するメモリからアクセスパッケージを削除するステップとを含むことができる。
【0257】
アクセスクライアントにおけるデータセキュリティのための装置について説明する。装置は、プロセッサと、プロセッサに結合されたメモリと、メモリに格納された命令とを含むことができる。命令は、装置に、アクセスされるファイルのアクセス情報およびファイル情報を含むアクセス要求をサーバに送信させ、アクセス要求の送信に少なくとも部分的に基づいて、実行可能コードおよび1つまたは複数のアクセス鍵を含むアクセスパッケージをサーバから受信させ、アクセスクライアントによって、1つまたは複数のアクセス鍵を使用してファイルにアクセスするために実行可能コードを実行させ、アクセスクライアントに関連するメモリからアクセスパッケージを削除させるように、プロセッサによって実行可能であり得る。
【0258】
アクセスクライアントにおけるデータセキュリティのための別の装置について説明する。装置は、アクセスされるファイルのアクセス情報およびファイル情報を含むアクセス要求をサーバに送信する手段と、アクセス要求の送信に少なくとも部分的に基づいて、実行可能コードおよび1つまたは複数のアクセス鍵を含むアクセスパッケージをサーバから受信する手段と、アクセスクライアントによって、1つまたは複数のアクセス鍵を使用してファイルにアクセスするために実行可能コードを実行する手段と、アクセスクライアントに関連するメモリからアクセスパッケージを削除する手段とを含むことができる。
【0259】
アクセスクライアントにおけるデータセキュリティのためのコードを格納する非一時的コンピュータ可読媒体について説明する。コードは、アクセスされるファイルのアクセス情報およびファイル情報を含むアクセス要求をサーバに送信し、アクセス要求の送信に少なくとも部分的に基づいて、実行可能コードおよび1つまたは複数のアクセス鍵を含むアクセスパッケージをサーバから受信し、アクセスクライアントによって、1つまたは複数のアクセス鍵を使用してファイルにアクセスするために実行可能コードを実行し、アクセスクライアントに関連するメモリからアクセスパッケージを削除するようにプロセッサによって実行可能な命令を含み得る。
【0260】
本明細書に記載の方法、装置、および非一時的コンピュータ可読媒体のいくつかの例では、方法、装置、および非一時的コンピュータ可読媒体は、暗号化要求およびファイル情報をサーバに送信するためのさらなる動作、特徴、手段、または命令を含むことができる。
【0261】
本明細書に記載の方法、装置、および非一時的コンピュータ可読媒体のいくつかの例では、アクセスパッケージを受信することは、ファイルに関連する1つまたは複数のファイルアクセスポリシーの指示を含むデータパックを含むアクセスパッケージを受信するための動作、特徴、手段、または命令を含むことができ、データパックは、1つまたは複数のアクセス鍵を使用してファイルで暗号化され得る。
【0262】
本明細書に記載の方法、装置、および非一時的コンピュータ可読媒体のいくつかの例では、1つまたは複数のファイルアクセスポリシーは、読み取りアクセス、書き込みアクセス、表示制約、またはそれらの組み合わせを含む。
【0263】
本明細書に記載の方法、装置、および非一時的コンピュータ可読媒体のいくつかの例では、アクセスパッケージを受信することは、ファイルに関連する所有権情報の指示を含むデータパックを含むアクセスパッケージを受信するための動作、特徴、手段、または命令を含むことができ、データパックは、1つまたは複数のアクセス鍵を使用してファイルで暗号化され得る。
【0264】
本明細書に記載の方法、装置、および非一時的コンピュータ可読媒体のいくつかの例では、暗号化要求を送信することは、ファイルに関連する1つまたは複数のファイルアクセスポリシーの指示をサーバに送信するための動作、特徴、手段、または命令を含むことができる。
【0265】
本明細書に記載の方法、装置、および非一時的コンピュータ可読媒体のいくつかの例では、実行可能コードを実行することは、実行可能コードを使用して、1つまたは複数のアクセス鍵を使用してペイロードおよび1つまたは複数のデータパックを暗号化して暗号化ファイルを生成するための動作、特徴、手段、または命令を含むことができる。
【0266】
本明細書に記載の方法、装置、および非一時的コンピュータ可読媒体のいくつかの例では、1つまたは複数のデータパックを暗号化することは、1つまたは複数のファイルアクセスポリシー、ファイル所有権情報、ファイルアクセス監査ログ、またはそれらの組み合わせの指示を含む1つまたは複数のデータパックを暗号化するための動作、特徴、手段、または命令を含むことができる。
【0267】
本明細書に記載の方法、装置、および非一時的コンピュータ可読媒体のいくつかの例では、アクセス要求を送信することは、復号要求およびファイル情報をサーバに送信するための動作、特徴、手段、または命令を含むことができ、実行可能コードは、ファイルを復号するために使用され得るコードを含む。
【0268】
本明細書に記載の方法、装置、および非一時的コンピュータ可読媒体のいくつかの例では、アクセスパッケージを受信することは、1つまたは複数の更新されたファイルアクセスポリシーを含むデータパックを含むアクセスパッケージを受信するための動作、特徴、手段、または命令を含むことができる。
【0269】
本明細書に記載の方法、装置、および非一時的コンピュータ可読媒体のいくつかの例は、アクセスクライアントにおいて、アクセスクライアント情報、コンピュータ情報、デバイス情報、地理的位置情報、認証トークン、またはそれらの組み合わせを含む検証情報を識別するための動作、特徴、手段、または命令をさらに含むことができ、復号要求は、検証情報の指示を含む。
【0270】
本明細書に記載の方法、装置、および非一時的コンピュータ可読媒体のいくつかの例は、ファイルに関連するメタデータに少なくとも部分的に基づいて、ファイルがアクセスクライアントに関連され得ることを識別するための動作、特徴、手段、または命令をさらに含むことができ、ファイルは、1つまたは複数のアクセス鍵のうちの第1の鍵を使用して暗号化されたペイロードと、1つまたは複数のアクセス鍵のうちの少なくとも第2の鍵を使用して暗号化され得る1つまたは複数の暗号化データパックとを含み、復号要求は、ファイルがアクセスクライアントに関連していることに少なくとも部分的に基づいてサーバに送信され得る。
【0271】
本明細書に記載の方法、装置、および非一時的コンピュータ可読媒体のいくつかの例では、実行可能コードを実行することは、1つまたは複数のアクセス鍵を使用してファイルを復号するための動作、特徴、手段、または命令を含むことができる。
【0272】
本明細書に記載の方法、装置、および非一時的コンピュータ可読媒体のいくつかの例は、ファイルに関連する1つまたは複数のアクセスポリシーにしたがって、アクセスクライアントにおいてファイルのペイロードを表示するための動作、特徴、手段、または命令をさらに含むことができる。
【0273】
本明細書に記載の方法、装置、および非一時的コンピュータ可読媒体のいくつかの例では、1つまたは複数のアクセスポリシーは、読み取りアクセス、書き込みアクセス、表示制約、またはそれらの組み合わせを含む。
【0274】
本明細書に記載の方法、装置、および非一時的コンピュータ可読媒体のいくつかの例では、1つまたは複数のアクセスポリシーは、1つまたは複数のアクセス鍵を使用してファイルで復号されたデータパックに含まれ得る。
【0275】
本明細書に記載の方法、装置、および非一時的コンピュータ可読媒体のいくつかの例は、アクセスクライアントに関連するデバイス情報、ユーザ情報、地理的位置情報、またはそれらの組み合わせを含むようにファイルアクセス監査ログを更新するための動作、特徴、手段、または命令をさらに含むことができる。
【0276】
本明細書に記載の方法、装置、および非一時的コンピュータ可読媒体のいくつかの例は、ファイルの復号に少なくとも部分的に基づいてファイル内の、ペイロードおよび1つまたは複数のデータパックを識別するための動作、特徴、手段、または命令をさらに含むことができ、1つまたは複数のデータパックは、1つまたは複数のファイルアクセスポリシー、所有権情報、ファイルアクセス監査ログ、またはそれらの組み合わせの指示を含む。
【0277】
本明細書に記載の方法、装置、および非一時的コンピュータ可読媒体のいくつかの例は、アクセスクライアントに関連するメモリ内で、実行可能コードを実行することに少なくとも部分的に基づいて、ファイルを復号または暗号化するために使用され得るアクセスオブジェクトをインスタンス化するための動作、特徴、手段、または命令をさらに含むことができ、アクセスオブジェクトは、ファイルの復号または暗号化の後にアクセスクライアントに関連するメモリから削除され得る。
【0278】
本明細書に記載の方法、装置、および非一時的コンピュータ可読媒体のいくつかの例は、復号要求およびファイル情報をサーバに送信するための動作、特徴、手段、または命令をさらに含むことができ、実行可能コードは、ファイルの内容を上書きするために使用され得るコードを含む。
【0279】
本明細書に記載の方法、装置、および非一時的コンピュータ可読媒体のいくつかの例では、アクセス要求を送信することは、アクセスクライアントを実行するユーザデバイスの地理的位置、ユーザデバイスに関連するデバイス情報、ユーザデバイスに関連するネットワーク情報、アクセスクライアントに関連する認証トークン、またはそれらの組み合わせを含むアクセス情報を含むアクセス要求を送信するための動作、特徴、手段、または命令を含むことができる。
【0280】
サーバにおけるデータセキュリティのための方法について説明する。本方法は、アクセスクライアントから、アクセスされるファイルのアクセス情報およびファイル情報を含むアクセス要求を受信するステップと、アクセス情報を使用してアクセス要求を検証するステップと、アクセス要求を検証するステップに少なくとも部分的に基づいて、実行可能コードおよび1つまたは複数のアクセス鍵を含むアクセスパッケージを生成するステップと、アクセスクライアントにアクセスパッケージを送信するステップとを含み、アクセスパッケージは、アクセスクライアントによって、ファイルにアクセスするために使用される実行可能ファイルにコンパイル可能である。
【0281】
サーバにおけるデータセキュリティのための装置について説明する。装置は、プロセッサと、プロセッサに結合されたメモリと、メモリに格納された命令とを含むことができる。命令は、装置に、アクセスクライアントから、アクセスされるファイルのアクセス情報およびファイル情報を含むアクセス要求を受信させ、アクセス情報を使用してアクセス要求を検証させ、アクセス要求を検証することに少なくとも部分的に基づいて、実行可能コードおよび1つまたは複数のアクセス鍵を含むアクセスパッケージを生成させ、アクセスクライアントにアクセスパッケージを送信させるようにプロセッサによって実行可能とすることができ、アクセスパッケージは、アクセスクライアントによって、ファイルにアクセスするために使用される実行可能ファイルにコンパイル可能である。
【0282】
サーバにおけるデータセキュリティのための別の装置について説明する。装置は、アクセスクライアントから、アクセスクライアントから、アクセスされるファイルのアクセス情報およびファイル情報を含むアクセス要求を受信する手段と、アクセス情報を使用してアクセス要求を検証する手段と、アクセス要求を検証することに少なくとも部分的に基づいて、実行可能コードおよび1つまたは複数のアクセス鍵を含むアクセスパッケージを生成する手段と、アクセスクライアントにアクセスパッケージを送信する手段とを含み、アクセスパッケージは、アクセスクライアントによって、ファイルにアクセスするために使用される実行可能ファイルにコンパイル可能である。
【0283】
サーバにおけるデータセキュリティのためのコードを格納する非一時的コンピュータ可読媒体について説明する。コードは、アクセスクライアントから、アクセスされるファイルのアクセス情報およびファイル情報を含むアクセス要求を受信し、アクセス情報を使用してアクセス要求を検証し、アクセス要求を検証することに少なくとも部分的に基づいて、実行可能コードおよび1つまたは複数のアクセス鍵を含むアクセスパッケージを生成し、アクセスクライアントにアクセスパッケージを送信するようにプロセッサによって実行可能な命令を含むことができ、アクセスパッケージは、アクセスクライアントによって、ファイルにアクセスするために使用される実行可能ファイルにコンパイル可能である。
【0284】
本明細書に記載の方法、装置、および非一時的コンピュータ可読媒体のいくつかの例では、アクセス要求を受信することは、ファイルを暗号化する暗号化要求をアクセスクライアントから受信するための動作、特徴、手段、または命令を含むことができ、アクセスパッケージは、1つまたは複数のアクセス鍵を使用してファイルを暗号化するための実行可能コードを含む。
【0285】
本明細書に記載の方法、装置、および非一時的コンピュータ可読媒体のいくつかの例では、アクセスパッケージを送信することは、ファイルに関連する1つまたは複数のファイルアクセスポリシーの指示を含むデータパックを含むアクセスパッケージをアクセスクライアントに送信するための動作、特徴、手段、または命令を含むことができ、実行可能コードは、1つまたは複数のアクセス鍵を使用してファイルでデータパックを暗号化するように構成され得る。
【0286】
本明細書に記載の方法、装置、および非一時的コンピュータ可読媒体のいくつかの例では、1つまたは複数のファイルアクセスポリシーは、読み取りアクセス、書き込みアクセス、表示制約、またはそれらの組み合わせを含む。
【0287】
本明細書に記載の方法、装置、および非一時的コンピュータ可読媒体のいくつかの例では、アクセスパッケージを送信することは、ファイルに関連する監査ログを生成し、1つまたは複数のアクセス鍵を使用してファイルで監査ログを暗号化するように構成され得る実行可能コードを含むデータパックを含むアクセスパッケージをアクセスクライアントに送信するための動作、特徴、手段、または命令を含むことができる。
【0288】
本明細書に記載の方法、装置、および非一時的コンピュータ可読媒体のいくつかの例では、アクセスパッケージを送信することは、ファイルに関連する所有権情報の指示を含むデータパックを含むアクセスパッケージをアクセスクライアントに送信するための動作、特徴、手段、または命令を含むことができ、実行可能コードは、1つまたは複数のアクセス鍵を使用してファイルでデータパックを暗号化するように構成され得る。
【0289】
本明細書に記載の方法、装置、および非一時的コンピュータ可読媒体のいくつかの例では、アクセス要求を受信することは、アクセスクライアントから、ファイルに関連する1つまたは複数のファイルアクセスポリシーの指示を受信し、ファイルのファイル識別子に関連して、1つまたは複数のファイルアクセスポリシーを格納するための動作、特徴、手段、または命令を含むことができる。
【0290】
本明細書に記載の方法、装置、および非一時的コンピュータ可読媒体のいくつかの例では、アクセス要求を受信することは、アクセスクライアントから、ファイルにアクセスすることを認可されている可能性がある1人または複数のユーザの指示を受信し、ファイルのファイル識別子に関連して、ファイルにアクセスすることを認可されている可能性がある1人または複数のユーザの指示を格納するための動作、特徴、手段、または命令を含むことができる。
【0291】
本明細書に記載の方法、装置、および非一時的コンピュータ可読媒体のいくつかの例では、アクセス要求を受信することは、ファイルを復号する復号要求をアクセスクライアントから受信するための動作、特徴、手段、または命令を含むことができ、アクセスパッケージは、1つまたは複数のアクセス鍵を使用してファイルを復号するための実行可能コードを含む。
【0292】
本明細書に記載の方法、装置、および非一時的コンピュータ可読媒体のいくつかの例は、ファイルの1つまたは複数のファイルアクセスポリシーを含むデータパックが古くなっている可能性があると決定し、データパックが古くなっている可能性があると決定したことに少なくとも部分的に基づいて、ファイルの1つまたは複数の更新されたファイルアクセスポリシーを含む更新されたデータパックを送信するための動作、特徴、手段、または命令をさらに含むことができる。
【0293】
本明細書に記載の方法、装置、および非一時的コンピュータ可読媒体のいくつかの例は、サーバにおいて、復号要求で受信したアクセス情報に含まれ得るユーザ情報をファイルに関連するアクセス記録と比較し、比較の結果に少なくとも部分的に基づいて、アクセスクライアントに関連するユーザがファイルにアクセスすることを認可されている可能性があると決定するための動作、特徴、手段、または命令をさらに含むことができ、アクセスパッケージは、ユーザがファイルにアクセスすることを認可されている可能性があると決定することに少なくとも部分的に基づいて、アクセスクライアントに送信され得る。
【0294】
本明細書に記載の方法、装置、および非一時的コンピュータ可読媒体のいくつかの例は、復号要求で受信したアクセス情報に少なくとも部分的に基づいて、アクセスクライアントがファイルを復号することを認可されていない可能性があると決定し、アクセスクライアントがファイルを復号することを認可されていない可能性があると決定することに少なくとも部分的に基づいて、サーバにおいて動作をトリガするための動作、特徴、手段、または命令をさらに含むことができる。
【0295】
本明細書に記載の方法、装置、および非一時的コンピュータ可読媒体のいくつかの例では、動作をトリガすることは、アクセスクライアントが不正アクセス要求を送信したことを示す警告またはメッセージを生成するための動作、特徴、手段、または命令を含むことができる。
【0296】
本明細書に記載の方法、装置、および非一時的コンピュータ可読媒体のいくつかの例では、動作をトリガすることは、ファイルの内容を上書きする実行可能コードを含むアクセスパッケージを送信するための動作、特徴、手段、または命令を含むことができる。
【0297】
本明細書に記載の方法、装置、および非一時的コンピュータ可読媒体のいくつかの例は、鍵格納サービスに、アクセス要求の受信に少なくとも部分的に基づいて、ファイルに関連する鍵文字列およびファイル識別子を求める要求を送信し、鍵格納サービスから、ファイル識別子に関連する鍵文字列を受信し、鍵文字列を使用して1つまたは複数のアクセス鍵を生成するための動作、特徴、手段、または命令をさらに含むことができる。
【0298】
本明細書に記載の方法、装置、および非一時的コンピュータ可読媒体のいくつかの例では、アクセス要求を検証することは、それらの組み合わせについて、アクセスクライアントを実行するユーザデバイスの地理的位置、ユーザデバイスに関連するデバイス情報、ユーザデバイスに関連するネットワーク情報、アクセスクライアントに関連する認証トークンを含むアクセス情報を検証するための動作、特徴、手段、または命令を含むことができる。
【0299】
これらの方法は、実装形態の例を説明しており、動作およびステップは、他の実装形態が可能であるように再配置または他の方法で修正することができることに留意されたい。いくつかの例では、2つ以上の方法からの態様を組み合わせることができる。例えば、各方法の態様は、他の方法のステップもしくは態様、または本明細書に記載の他のステップもしくは技術を含むことができる。したがって、本開示の態様は、消費者の好みおよび保守インターフェースを提供することができる。
【0300】
本明細書に記載の説明は、添付の図面に関連して、例示的な構成を説明しており、実施され得る、または特許請求の範囲内にあるすべての例を表すものではない。本明細書で使用される「例示的」という用語は、「例、事例、または例示としての役割を果たしていること」を意味し、「好ましい」または「他の例よりも有利であること」を意味しない。詳細な説明は、記載の技術の理解を提供する目的で具体的な詳細を含む。しかしながら、これらの技術は、これらの具体的な詳細なしで実施されてもよい。いくつかの例では、記載された例の概念を不明瞭にすることを避けるために、周知の構造およびデバイスがブロック図形式で示されている。
【0301】
添付の図面において、類似の構成要素または特徴は、同じ参照ラベルを有することができる。さらに、同じタイプの様々な構成要素は、参照ラベルの後にダッシュおよび類似の構成要素を区別する第2のラベルを続けることによって区別することができる。本明細書で第1の参照ラベルのみが使用される場合、説明は、第2の参照ラベルに関係なく同じ第1の参照ラベルを有する同様の構成要素のいずれにも適用可能である。
【0302】
本明細書に記載の情報および信号は、様々な異なる技術および技法のいずれかを使用して表され得る。例えば、上記の説明を通して言及され得るデータ、命令、コマンド、情報、信号、ビット、シンボル、およびチップは、電圧、電流、電磁波、磁場もしくは粒子、光場もしくは粒子、またはそれらの任意の組み合わせによって表され得る。
【0303】
本明細書の開示に関連して記載されたさまざまな例示的なブロックおよびモジュールは、汎用プロセッサ、DSP、ASIC、FPGAまたはその他のプログラマブルロジックデバイス、ディスクリートゲートまたはトランジスタロジック、ディスクリートハードウェア構成要素、または、本明細書に記載された機能を実行するように設計されたこれら任意の組み合わせを用いて実現または実行され得る。汎用プロセッサはマイクロプロセッサとすることができるが、代替例では、プロセッサは任意の従来のプロセッサ、コントローラ、マイクロコントローラ、またはステートマシンとすることができる。プロセッサはまた、コンピューティングデバイスの組合せ、例えば、DSPとマイクロプロセッサとの組み合わせ、複数のマイクロプロセッサ、DSPコアと連携する1つまたは複数のマイクロプロセッサ、または、その他の任意の適切な構成として実装することができる。
【0304】
本明細書で説明される機能は、ハードウェア、プロセッサによって実行されるソフトウェア、ファームウェア、またはそれらの任意の組み合わせで実装することができる。プロセッサによって実行されるソフトウェアで実装される場合、機能は、コンピュータ可読媒体上の1つまたは複数の命令またはコードとして格納または送信することができる。他の例および実装形態は、本開示および添付の特許請求の範囲の範囲内である。例えば、ソフトウェアの性質上、上述の機能は、プロセッサ、ハードウェア、ファームウェア、ハード配線、またはこれらのいずれかの組み合わせによって実行されるソフトウェアを使用して実装することができる。機能を実装する特徴はまた、機能の一部が異なる物理的位置に実装されるように分散されることを含む、様々な位置に物理的に配置されてもよい。また、本明細書で使用される場合、特許請求の範囲を含めて、項目のリスト(例えば、「少なくとも1つの」または「1つまたは複数の」などのフレーズで始められる項目のリスト)で使用される「または」は、例えば、A、B、またはCのうちの少なくとも1つのリストが、AまたはBまたはCまたはABまたはACまたはBCまたはABC(すなわち、AおよびBおよびC)を意味するような包括的なリストを示す。また、本明細書で使用される場合、「に基づいて」という語句は、閉じた条件のセットへの言及として解釈されるべきではない。例えば、「条件Aに基づいて」として説明される例示的なステップは、本開示の範囲から逸脱することなく、条件Aおよび条件Bの両方に基づくことができる。換言すれば、本明細書で使用される場合、「に基づいて」という語句は、「少なくとも部分的に基づいて」という語句と同じ方法で解釈されるものとする。
【0305】
コンピュータ可読媒体は、非一時的コンピュータ記憶媒体と、ある場所から別の場所へのコンピュータプログラムの転送を容易にする任意の媒体を含む通信媒体の両方を含む。非一時的記憶媒体は、汎用または専用コンピュータによってアクセス可能な任意の利用可能な媒体であってもよい。限定ではなく例として、非一時的コンピュータ可読媒体は、RAM、ROM、電気的消去可能プログラマブル読み取り専用メモリ(EEPROM)、コンパクトディスク(CD)ROMもしくは他の光ディスク記憶装置、磁気ディスク記憶装置もしくは他の磁気記憶装置、または命令もしくはデータ構造の形態で所望のプログラムコード手段を搬送もしくは記憶するために使用することができ、汎用もしくは専用コンピュータ、または汎用もしくは専用プロセッサによってアクセスすることができる任意の他の非一時的媒体を含むことができる。また、任意の接続は、コンピュータ可読媒体と適切に呼ばれる。例えば、同軸ケーブル、光ファイバケーブル、ツイストペア、デジタル加入者線(DSL)、あるいは、例えば赤外線、無線およびマイクロ波のような無線技術を用いて、ウェブサイト、サーバ、あるいはその他のリモートソースからソフトウェアが送信される場合、同軸ケーブル、光ファイバケーブル、ツイストペア、DSL、あるいは、例えば赤外線、無線およびマイクロ波のような無線技術が、媒体の定義に含まれる。本明細書で使用されるディスク(disk)およびディスク(disc)は、CD、レーザディスク、光ディスク、デジタル多用途ディスク(DVD)、フロッピー(登録商標)ディスク、およびブルーレイディスクを含み、ディスクは、通常、データを磁気的に再生し、ディスクは、レーザを用いて光学的にデータを再生する。上記の組み合わせもコンピュータ可読媒体の範囲内に含まれる。
【0306】
本明細書の開示に関連して記載されたさまざまな例示的なブロックおよびモジュールは、汎用プロセッサ、デジタル信号プロセッサ(DSP)、ASIC、フィールドプログラマブルゲートアレイ(FPGA)またはその他のプログラマブルロジックデバイス、ディスクリートゲートまたはトランジスタロジック、ディスクリートハードウェア構成要素、または本明細書に記載された機能を実行するように設計されたこれら任意の組み合わせを用いて実現または実行され得る。汎用プロセッサはマイクロプロセッサとすることができるが、代替例では、プロセッサは任意の従来のプロセッサ、コントローラ、マイクロコントローラ、またはステートマシンとすることができる。プロセッサはまた、コンピューティングデバイスの組合せ、例えば、DSPとマイクロプロセッサとの組み合わせ、複数のマイクロプロセッサ、DSPコアと連携する1つまたは複数のマイクロプロセッサ、または、その他の任意の適切な構成として実装することができる。各ユニットの機能はまた、1つまたは複数の汎用または特定用途向けプロセッサによって実行されるようにフォーマットされた、メモリ内に具現化された命令によって全体的または部分的に実装されてもよい。
【0307】
添付の図面において、類似の構成要素または特徴は、同じ参照ラベルを有することができる。さらに、同じタイプの様々な構成要素は、参照ラベルの後にダッシュおよび類似の構成要素を区別する第2のラベルを続けることによって区別することができる。本明細書で第1の参照ラベルのみが使用される場合、説明は、第2の参照ラベルに関係なく同じ第1の参照ラベルを有する同様の構成要素のいずれにも適用可能である。
【0308】
本明細書の説明は、当業者が本開示を作成または使用することを可能にするために提供される。本開示に対する様々な変更は、当業者には容易に明らかであり、本明細書で定義された一般原理は、本開示の範囲から逸脱することなく他の変形例に適用することができる。したがって、本開示は、本明細書に記載された例および設計に限定されず、本明細書に開示された原理および新規な特徴と一致する最も広い範囲を与えられるべきである。