(57)【特許請求の範囲】
【請求項１】
コンピュータによって実現されるデータ漏洩検出方法であって、前記方法は、
企業のファイアウォールの外部のホストにおいて、前記企業に関連するユーザデバイスのオンラインアカウントに由来するデータ通信を受信するステップと、
前記ホストが、前記データ通信のコンテキストに基づいて解析を実行し前記データ通信はデータ漏洩候補であると判断するステップと、
前記ホストが、前記データ通信を暗号化し、前記ホストが暗号化したデータ通信を前記企業におけるソフトウェアエージェントに与えるステップと、
前記ソフトウェアエージェントが、前記ホストが暗号化したデータ通信を受信したことに応じて、共通暗号化キーを用いることにより、企業情報のデータベースを暗号化し、前記ホストが暗号化したデータ通信を再度暗号化するステップと、
前記ソフトウェアエージェントが暗号化した企業情報のデータベースおよび前記再度暗号化したデータ通信を前記ホストに与えるステップと、
前記ホストが、前記再度暗号化したデータ通信の、ホストが暗号化したアスペクトを解読することにより、ソフトウェアエージェントが暗号化したデータ通信を生成するステップと、
マッチング動作を実行し、前記暗号化した企業情報のデータベースと、前記ソフトウェアエージェントが暗号化したデータ通信との間に、一致があるか否かを判断するステップと、
前記一致があると判断した場合、前記ホストが前記一致を前記ソフトウェアエージェントに報告し、前記ソフトウェアエージェントが第１のアクションを実行するステップと、
前記一致がないと判断した場合、前記ホストが第２のアクションを実行するステップとを含む、コンピュータによって実現される方法。
【請求項２】
前記ソフトウェアエージェントにおける前記暗号化は、前記オンラインアカウントに由来する前記データ通信を前記ホストが暗号化するときに使用したキーと異なるキーを用いて実行され、前記ホストにおける前記暗号化は、前記ソフトウェアエージェントの前記共通暗号化キーと異なるキーを用いて実行される、請求項１に記載のコンピュータによって実現される方法。
【請求項３】
前記マッチング動作を実行するステップは、機密保持共通集合アルゴリズムを適用するステップを含む、請求項１または２に記載のコンピュータによって実現される方法。
【請求項４】
前記ホストは、前記データ通信を部分的に暗号化し、前記データ通信のうちの暗号化されていない部分を平文として残し、前記部分的に暗号化したデータ通信と前記平文とを前記ソフトウェアエージェントに与える、請求項１〜３のいずれかに記載のコンピュータによって実現される方法。
【請求項５】
前記ソフトウェアエージェントがノイズを前記暗号化したデータベースに追加し、前記ノイズが追加された前記暗号化したデータベースを前記ホストに送信するステップをさらに含む、請求項１〜４のいずれかに記載のコンピュータによって実現される方法。
【請求項６】
前記ホストが前記解析を実行し前記データ通信は前記データ漏洩候補であると判断するステップは、ブルームフィルタを適用して前記データ通信は前記データ漏洩候補であると判断するステップを含む、請求項１〜５のいずれかに記載のコンピュータによって実現される方法。
【請求項７】
前記ソフトウェアエージェントが、前記ホストが暗号化したデータ通信の再暗号化中に、前記ホストが暗号化したデータ通信の値を並び替えるステップをさらに含む、請求項１〜６のいずれかに記載のコンピュータによって実現される方法。
【請求項８】
前記ソフトウェアエージェントによる前記第１のアクションは、前記データ通信を削除すること、前記データ通信を隔離すること、および、前記データ通信を警告とともに受信者に送信することのうちの、少なくとも１つを含む、請求項１〜７のいずれかに記載のコンピュータによって実現される方法。
【請求項９】
前記ホストによる前記第２のアクションは、報告を前記ソフトウェアエージェントに送信することを禁止することを含む、請求項１〜８のいずれかに記載のコンピュータによって実現される方法。
【請求項１０】
企業のファイアウォールの外部のホストにおいてデータ漏洩を検出する、コンピュータによって実現される方法であって、前記方法は、
前記企業に関連するユーザデバイスのオンラインアカウントに由来するデータ通信を受信するステップと、
前記データ通信のコンテキストに基づいて解析を実行し前記データ通信はデータ漏洩候補であると判断するステップと、
前記データ通信を暗号化し、前記ホストが暗号化したデータ通信を前記企業におけるソフトウェアエージェントに与えるステップと、
ソフトウェアエージェントが暗号化した企業情報のデータベースと、前記ホストが暗号化し前記ソフトウェアエージェントが再度暗号化したデータ通信とを受信するステップと、
前記再度暗号化したデータ通信の、ホストが暗号化したアスペクトを解読することにより、ソフトウェアエージェントが暗号化したデータ通信を生成するステップと、
マッチング動作を実行し、前記暗号化した企業情報のデータベースと、前記ソフトウェアエージェントが暗号化したデータ通信との間に、一致があるか否かを判断するステップと、
前記一致があると判断した場合、前記一致を前記ソフトウェアエージェントに報告するステップと、
前記一致がないと判断した場合、前記ホストがアクションを実行するステップとを含む、コンピュータによって実現される方法。
【請求項１１】
前記マッチング動作を実行するステップは、機密保持共通集合アルゴリズムを適用するステップを含む、請求項１０に記載のコンピュータによって実現される方法。
【請求項１２】
前記ホストは、前記データ通信を部分的に暗号化し、前記データ通信のうちの暗号化されていない部分を平文として残し、前記部分的に暗号化したデータ通信と前記平文とを前記ソフトウェアエージェントに与える、請求項１０または１１に記載のコンピュータによって実現される方法。
【請求項１３】
前記ホストが前記解析を実行し前記データ通信は前記データ漏洩候補であると判断するステップは、ブルームフィルタを適用して前記データ通信は前記データ漏洩候補であると判断するステップを含む、請求項１０〜１２のいずれかに記載のコンピュータによって実現される方法。
【請求項１４】
ソフトウェアエージェントを有する企業からのデータ漏洩を検出する、コンピュータによって実現される方法であって、前記方法は、
前記企業のファイアウォールの外部のホストから、前記企業に関連するユーザデバイスのオンラインアカウントに由来する、ホストが暗号化したデータ通信を受信するステップと、
共通暗号化キーを用いて、企業情報のデータベースを暗号化し、前記ホストが暗号化したデータ通信を再度暗号化するステップと、
前記暗号化した企業情報のデータベースと前記再度暗号化したデータ通信とを前記ホストに与えるステップと、
前記暗号化した企業情報のデータベースと前記再度暗号化したデータ通信との間に一致があることを示す報告を前記ホストから受信するステップと、
第１のアクションを実行するステップとを含む、コンピュータによって実現される方法。
【請求項１５】
前記ソフトウェアエージェントにおける前記暗号化は、前記オンラインアカウントに由来する前記データ通信を前記ホストが暗号化するときに使用したキーと異なるキーを用いて実行され、前記ホストにおける前記暗号化は、前記ソフトウェアエージェントの前記共通暗号化キーと異なるキーを用いて実行される、請求項１４に記載のコンピュータによって実現される方法。
【請求項１６】
前記ソフトウェアエージェントがノイズを前記暗号化したデータベースに追加し、前記ノイズが追加された前記暗号化したデータベースを前記ホストに送信するステップをさらに含む、請求項１４または１５に記載のコンピュータによって実現される方法。
【請求項１７】
前記ソフトウェアエージェントが、前記ホストが暗号化したデータ通信の再暗号化中に、前記ホストが暗号化したデータ通信の値を並び替えるステップをさらに含む、請求項１４〜１６のいずれかに記載のコンピュータによって実現される方法。
【請求項１８】
前記ソフトウェアエージェントによる前記第１のアクションは、前記データ通信を削除すること、前記データ通信を隔離すること、および、前記データ通信を警告とともに受信者に送信することのうちの、少なくとも１つを含む、請求項１４〜１７のいずれかに記載のコンピュータによって実現される方法。
【請求項１９】
企業のファイアウォールの外部のホストにおいてデータ漏洩を検出するためのシステムであって、前記システムは、
前記企業のファイアウォールの外部のホストを備え、前記ホストは、ハードウェアプロセッサを含み、コンピュータ読取可能な媒体に格納された、実行可能な命令を有し、前記ホストにおける前記命令は、
前記企業に関連するユーザデバイスのオンラインアカウントに由来するデータ通信を受信することと、
前記データ通信のコンテキストに基づいて解析を実行し前記データ通信はデータ漏洩候補であると判断することと、
前記データ通信を暗号化し、前記ホストが暗号化したデータ通信を前記企業におけるソフトウェアエージェントに与えることと、
ソフトウェアエージェントが暗号化した企業情報のデータベースと前記ホストが暗号化し前記ソフトウェアエージェントが再度暗号化したデータ通信とを受信することと、
前記再度暗号化したデータ通信の、ホストが暗号化したアスペクトを解読することにより、ソフトウェアエージェントが暗号化したデータ通信を生成することと、
マッチング動作を実行し、前記暗号化した企業情報のデータベースと、前記ソフトウェアエージェントが暗号化したデータ通信との間に、一致があるか否かを判断することと、
前記一致があると判断した場合、前記一致を前記ソフトウェアエージェントに報告することと、
前記一致がないと判断した場合、前記ソフトウェアエージェントが第１のアクションを実行することととを含み、
前記企業は、ハードウェアプロセッサを備え、コンピュータ読取可能な媒体に格納された、実行可能な命令を有し、
前記企業のファイアウォールの外部の前記ホストから、前記ホストが暗号化したデータ通信を受信することと、
共通暗号化キーを用いて、企業情報のデータベースを暗号化し、前記ホストが暗号化したデータ通信を再度暗号化し、前記ソフトウェアエージェントが暗号化したデータベースと前記再度暗号化したデータ通信とを前記ホストに与えることと、
前記暗号化した情報のデータベースと前記ソフトウェアエージェントが暗号化したデータ通信との間に一致があることを示す報告を前記ホストから受信することと、
第２のアクションを実行することとを含む、システム。
【請求項２０】
前記ソフトウェアエージェントにおける前記暗号化は、前記オンラインアカウントに由来する前記データ通信を前記ホストが暗号化するときに使用したキーと異なるキーを用いて実行され、前記ホストにおける前記暗号化は、前記ソフトウェアエージェントの前記共通暗号化キーと異なるキーを用いて実行される、請求項１９に記載のシステム。
【請求項２１】
１以上のコンピュータに請求項１〜１８のいずれか１項に記載の方法を実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
背景
分野
本明細書に記載の主題は、概して機密性を保持しつつもデータ損失を防止する方法およびシステムに関し、より具体的には秘密情報を保護するようにデータ損失を防止するための外部ホストと企業との間のプロトコルに関する。
【背景技術】
【０００２】
関連技術
関連技術において、企業は、機密データの漏洩、損失、または過度の共有を防止するための技術を採用しなければならない。関連する手法は、データ損失防止または検出（「ＤＬＰ」（data loss prevention））システムを含む。このシステムにおいて、企業は、データ損失を検出および防止するためのアルゴリズムを実装する。関連技術のアルゴリズムは、直接的またはコンテキストアウェア型のパターンマッチング手法を含む。たとえば、企業Ａが、アカウント名、アカウント番号、またはその他の秘密情報等のデータの機密性の保護を求める場合がある。その場合、企業Ａは、外に出るいかなるデータ（たとえば電子メール、ダウンロード、エクスポート）に対しても、データ損失（たとえばアカウント番号、アカウント名等の送信）が発生したか否かを判断することを試みるためのアルゴリズムを含むソフトウェアを実行する。
【発明の概要】
【発明が解決しようとする課題】
【０００３】
しかしながら、この関連技術の手法には、さまざまな問題および短所がある。たとえば、関連技術のパターンマッチングアルゴリズムは、保護対象のエンティティ（たとえば企業自体、または企業のユーザ）がどのデータを機密データとみなしているかを判断することができない。そのため、この関連技術の手法では、結果として検出漏れおよび高レベルのノイズが発生する。上記の例の場合は、企業Ａが、データ損失候補の検出に失敗する、または、外に出るデータを、実際はデータ損失ではない場合にデータ損失として特徴付ける危険性がある。ある状況において、企業Ａのメンバーが、企業Ａが所有する情報に類似するように見える個人情報（たとえば、企業Ａとは無関係の個人アカウント情報）を有する場合がある。この類似性のために、企業Ａは、このメンバーの個人情報を、データ漏洩でない場合にデータ漏洩として特徴付けることになる。
【０００４】
その他の関連技術の手法は、漏洩する可能性がある機密データを特定するポリシーまたはルールを企業またはデータ所有者から受ける、クラウドサービスプロバイダを含むＤＬＰベンダーまたはホスティング会社等の外部ホストを必要とする。たとえば、企業Ａは、企業Ａの情報のデータ漏洩を検査しその結果を企業Ａに報告する外部ホストＢと契約する場合がある。
【０００５】
しかしながら、これらの関連技術の手法にも問題および短所がある。たとえば、企業またはデータ所有者は、機密データを第三者に提供しなければならず、それは結果として、機密データをＤＬＰ外部ホスト（たとえば、損失防止システムベンダー、サービス、またはホスティング会社）に対して開示する危険性を伴う。上記の例において、外部ホストＢは企業Ａの機密データを有する。したがって、企業Ａの機密データは企業Ａのファイアウォールの外部の第三者に対して開示されることになり、企業Ａは外部ホストＢで機密データに起こっていることを管理できない。さらに、企業Ａの検出パターンが実際の機密データの代わりに外部ＤＬＰに対して開示された場合、この場合も高レベルのノイズが生じる可能性がある（たとえば秘密情報が間違ってデータ漏洩として特徴付けられる）。
【課題を解決するための手段】
【０００６】
概要
主題は、データ漏洩を検出するための、コンピュータによって実現される方法を含み、この方法は、企業のファイアウォールの外部のホストにおいて、企業に関連するユーザデバイスのオンラインアカウントに由来するデータ通信を受信するステップと、ホストが、データ通信のコンテキストに基づいて解析を実行しデータ通信はデータ漏洩候補であると判断するステップと、ホストが、データ通信を暗号化し、ホストが暗号化したデータ通信を企業におけるソフトウェアエージェントに与えるステップとを含む。コンピュータによって実現される方法はまた、ソフトウェアエージェントが、ホストが暗号化したデータ通信を受信したことに応じて、共通暗号化キーを用いることにより、企業情報のデータベースを暗号化し、ホストが暗号化したデータ通信を再度暗号化するステップと、ソフトウェアエージェントが暗号化した企業情報のデータベースおよび再度暗号化したデータ通信をホストに与えるステップと、ホストが、再度暗号化したデータ通信の、ホストが暗号化したアスペクトを解読することにより、ソフトウェアエージェントが暗号化したデータ通信を生成するステップとを含む。加えて、コンピュータによって実現される方法は、マッチング動作を実行し、暗号化した企業情報のデータベースと、ソフトウェアエージェントが暗号化したデータ通信との間に、一致があるか否かを判断するステップと、一致があると判断した場合、ホストが一致をソフトウェアエージェントに報告し、ソフトウェアエージェントが第１のアクションを実行するステップと、一致がないと判断した場合、ホストが第２のアクションを実行するステップとを含む。
【０００７】
主題はまた、企業のファイアウォールの外部のホストにおいてデータ漏洩を検出する、コンピュータによって実現される方法を含み、この方法は、企業に関連するユーザデバイスのオンラインアカウントに由来するデータ通信を受信するステップと、データ通信のコンテキストに基づいて解析を実行しデータ通信はデータ漏洩候補であると判断するステップと、データ通信を暗号化し、ホストが暗号化したデータ通信を企業におけるソフトウェアエージェントに与えるステップと、ソフトウェアエージェントが暗号化した企業情報のデータベースと、ホストが暗号化しソフトウェアエージェントが再度暗号化したデータ通信とを受信するステップとを含む。コンピュータによって実現される方法はまた、再度暗号化したデータ通信の、ホストが暗号化したアスペクトを解読することにより、ソフトウェアエージェントが暗号化したデータ通信を生成するステップと、マッチング動作を実行し、暗号化した企業情報のデータベースと、ソフトウェアエージェントが暗号化したデータ通信との間に、一致があるか否かを判断するステップと、一致があると判断した場合、一致をソフトウェアエージェントに報告するステップと、一致がないと判断した場合、ホストがアクションを実行するステップとを含む。
【０００８】
加えて、主題は、ソフトウェアエージェントを有する企業からのデータ漏洩を検出する、コンピュータによって実現される方法を含む。この方法は、企業のファイアウォールの外部のホストから、企業に関連するユーザデバイスのオンラインアカウントに由来する、ホストが暗号化したデータ通信を受信するステップと、共通暗号化キーを用いて、企業情報のデータベースを暗号化し、ホストが暗号化したデータ通信を再度暗号化するステップと、暗号化した企業情報のデータベースと再度暗号化したデータ通信とをホストに与えるステップと、暗号化した企業情報のデータベースと再度暗号化したデータ通信との間に一致があることを示す報告をホストから受信するステップと、第１のアクションを実行するステップとを含む。
【０００９】
上記方法は、１以上のコンピューティングデバイスおよび／またはシステムを用いて実現される。上記方法は、コンピュータ読取可能な媒体に格納されてもよい。
【００１０】
主題はまた、企業のファイアウォールの外部のホストにおいてデータ漏洩を検出するためのシステムを含み、企業のファイアウォールの外部のホストを備え、ホストは、ハードウェアプロセッサを含み、コンピュータ読取可能な媒体に格納された、実行可能な命令を有する。ホストにおける命令は、企業に関連するユーザデバイスのオンラインアカウントに由来するデータ通信を受信することと、データ通信のコンテキストに基づいて解析を実行しデータ通信はデータ漏洩候補であると判断することと、データ通信を暗号化し、ホストが暗号化したデータ通信を企業におけるソフトウェアエージェントに与えることと、ソフトウェアエージェントが暗号化した企業情報のデータベースとホストが暗号化しソフトウェアエージェントが再度暗号化したデータ通信とを受信することとを含む。命令はさらに、再度暗号化したデータ通信の、ホストが暗号化したアスペクトを解読することにより、ソフトウェアエージェントが暗号化したデータ通信を生成することと、マッチング動作を実行し、暗号化した企業情報のデータベースと、ソフトウェアエージェントが暗号化したデータ通信との間に、一致があるか否かを判断することと、一致があると判断した場合、一致をソフトウェアエージェントに報告することと、一致がないと判断した場合、ソフトウェアエージェントが第１のアクションを実行することとを含む。さらに、企業は、ハードウェアプロセッサを含み、これは、コンピュータ読取可能な媒体に格納された、実行可能な命令を有し、企業のファイアウォールの外部のホストから、ホストが暗号化したデータ通信を受信することと、共通暗号化キーを用いて、企業情報のデータベースを暗号化し、ホストが暗号化したデータ通信を再度暗号化し、ソフトウェアエージェントが暗号化したデータベースと再度暗号化したデータ通信とをホストに与えることと、暗号化した企業情報のデータベースとソフトウェアエージェントが暗号化したデータ通信との間に一致があることを示す報告をホストから受信することと、第２のアクションを実行することとを含む。
【００１１】
加えて、主題は、データ漏洩を検出するためのシステムおよび方法を含む。これは、企業のファイアウォールの外部のホストにおいて、企業に関連するユーザデバイスのオンラインアカウントに由来するデータ通信を受信するための手段を含み、ホストは、データ通信のコンテキストに基づいて解析を実行しデータ通信はデータ漏洩候補であると判断し、ホストは、データ通信を暗号化し、ホストが暗号化したデータ通信を企業におけるソフトウェアエージェントに与え、ソフトウェアエージェントが、ホストが暗号化したデータ通信を受信したことに応じて、共通暗号化キーを用いることにより、企業情報のデータベースを暗号化し、ホストが暗号化したデータ通信を再度暗号化し、ソフトウェアエージェントが暗号化した企業情報のデータベースと、再度暗号化したデータ通信とをホストに与えるための手段を含み、ホストは、再度暗号化したデータ通信の、ホストが暗号化したアスペクトを解読してソフトウェアエージェントが暗号化したデータ通信を生成し、マッチング動作を実行して暗号化した企業情報のデータベースとソフトウェアエージェントが暗号化したデータ通信との間に一致があるか否かを判断するための手段を含み、一致があると判断した場合、ホストはこの一致をソフトウェアエージェントに報告し、ソフトウェアエージェントは第１のアクションを実行し、一致がないと判断した場合、ホストは第２のアクションを実行する。
【００１２】
本主題に従うと、エージェントが平文データ通信を認識することはなく、ホストが企業のデータベースの平文情報を認識することはない。
【００１３】
また、機密保持共通集合アルゴリズムが、ホストにより、マッチングを実行するために用いられる。
【００１４】
さらに、ホストは、データ通信を部分的にのみ暗号化し、一部を元の平文として残してもよい。これに代えて、ホストは、データ通信全体を暗号化してもよい。
【００１５】
加えて、ソフトウェアエージェントは、暗号化したデータベースにノイズを追加してホストに送信してもよい。
【００１６】
さらに、ホストによるコンテキストベースの解析において、ブルームフィルタを使用してデータ通信は候補であると判断してもよい。
【００１７】
ソフトウェアエージェントはまた、ホストが暗号化したデータ通信の再暗号化において数字を並べ替えてもよい。
【００１８】
加えて、ソフトウェアエージェントによる第１のアクションは、メッセージを削除すること、メッセージを隔離すること、または、メッセージを警告とともに受信者に送信することを含み、ホストによる第２のアクションは、結果（たとえば企業におけるユーザのノイズまたは個人アカウントを示す）をソフトウェアエージェントに報告しないことを含む。
【図面の簡単な説明】
【００１９】
【図１】ある実装例に係るプロトコルを有するクライアントおよびホストを含むシステムを示す図である。
【図２】この実装例に係るプロトコルの一例を示す図である。
【図３】ある実装例に係るクライアントおよびホストを含むプロトコルのプロセスの一例を示す図である。
【図４】ある実装例に係るホストを含むプロトコルのプロセスの一例を示す図である。
【図５】ある実装例に係るクライアントを含むプロトコルのプロセスの一例を示す図である。
【図６】いくつかの実装例に適した環境の一例を示す図である。
【図７】いくつかの実装例で使用される外部ホストに関連するコンピューディングデバイスの一例とともにコンピューティング環境の一例を示す図である。
【図８】いくつかの実装例で使用されるクライアントに関連するコンピューティングデバイスの一例とともにコンピューティング環境の一例を示す図である。
【発明を実施するための形態】
【００２０】
詳細な説明
本明細書に記載の主題は実装例によって教示される。明確にするため、かつ主題が曖昧にならないようにするために、さまざまな詳細事項の説明は省略している。以下に示す例は、機密性を保持しつつデータ損失を防止するためのシステムおよび方法を実現するための構造および機能に関する。
【００２１】
実装例の側面は、データの漏洩、損失、または過度の共有を検出および／または防止するためのシステムおよび方法に関し、これは、保護対象の当事者からの協力のもとで行なわれる標準的なパターンマッチングおよびコンテキストアウェア機密情報検出を含む。上記システムおよび方法は、自動機密防止手法によって実行される。限定される訳ではないが、たとえば、この例のシステムおよび方法は、機密保持共通集合アルゴリズム（privacy preserving set intersection algorithm）を含む暗号法を用い得る。アルゴリズムは機密保持共通集合アルゴリズムに限定されない。より具体的には、機密保持共通集合アルゴリズムは、異なる当事者に属する２つ（以上）のデータ集合の共通部分を、いずれの当事者も他の当事者の全データ集合の知識を得ることなく、求めることを可能にする、アルゴリズムまたは方法であってもよい。
【００２２】
関連技術において、第１の企業Ａが、第２の企業Ｂのために文書をホストする場合がある。企業Ａは、ＤＬＰサービス（たとえば、限定される訳ではないが企業Ｂに関連する法人クレジットカード番号等の機密データの損失を防止する）を提供したいと考える。企業Ａは、企業Ｂの共有または電子メール文書におけるクレジットカード番号のように見える番号すべてを検出し得る。しかしながら、これらの番号は、クレジットカード番号ではない番号（たとえばノイズ）、または、企業に関連はなく企業Ｂのメンバー（たとえば従業員）の個人用クレジットカード番号（たとえば企業Ｂとは無関係の結果）を含み得る。
【００２３】
このような番号が含まれていると、個人的な機密情報が企業Ｂに対して露出する可能性がある（たとえば、企業Ｂに関連するメンバーが機密財産情報を含む文書をこのメンバーの企業電子メールアカウントを介して送信するかもしれない）。企業Ｂは、上記問題に対し、検出すべき法人クレジットカード番号のデータベースを企業Ａに提供することによって対処することが可能であるが、このような行為は、企業Ｂの秘匿情報を企業Ａに対して露出することになる。
【００２４】
実装例に従い、機密保持共通集合プロトコルが使用される。上記例において、企業Ａは、暗号化された結果を企業Ｂと共有するだけであり（たとえばキーは共有しない）、企業Ｂは、暗号化された法人カード番号を企業Ａと共有するだけである。機密保持共通集合プロトコルの実装次第で、結果は、どちらの集合にも存在する要素の数、または、どちらの集合にも存在する要素そのもののリストとなる。このため、これらの集合自体はどちらの当事者にも暴露されない。その結果、発見されたものすべてが企業Ｂに報告される訳ではないので、個々のユーザおよび企業Ａの機密性は保持され、法人カードデータベースは企業Ａと共有されないので、企業Ｂの機密性も保持される。
【００２５】
上記単純なプロトコルを実現するユースケースの一例は次の通りである。本明細書では特定のデータおよびコンテキストが説明のために提供されるが、本実装例はこれに限定される訳ではなく、発明の範囲から逸脱することなくその他のデータおよび／またはコンテキストが代わりに使用されてもよい。さらに、クレジットカード番号が説明のために使用されるが、実装例はこれに限定される訳ではなく、代わりに、機密性が保持されるべきその他の機密データが使用される場合もあり、これは、限定される訳ではないが、アカウント識別子、政府発行アカウント（たとえば運転免許証または社会保障番号情報）、またはその他の機密情報を含むことが、当業者には理解されるであろう。
【００２６】
第１の動作において、企業Ａ（たとえばＤＬＰサービスプロバイダ）は、出力電子メールの解析を実行する。解析の結果、２つのクレジットカード番号候補として、１１１１（この実装例では企業Ｂのメンバーの個人用クレジットカード番号）および２１１１（この実装例では企業Ｂの顧客のクレジットカード情報等の、企業Ｂの公的クレジットカード番号）が識別される。この状況は、企業Ｂのメンバーが企業Ｂの機密データのリストをこのメンバーの個人アカウントに送信した場合（たとえば無断借用（siphoning））、または、あるユーザが電子メールアカウントを個人使用した場合（たとえば個人的な購入の支払いを個人用クレジットカードを用いてオンラインで行なった場合）、または、上記メンバーが、共通ユーザインターフェイスまたはユーザ履歴から個人アカウントおよび企業Ａのアカウントいずれにも通信できるオプションを含む複合メールボックスを有する場合にも、発生し得る。
【００２７】
企業Ａはこれらのクレジットカード番号候補を、通信特性を有する暗号文を用いてキーＡで暗号化する。したがって、企業Ａは、企業Ｂに、結果として、Ａ（１１１１）、Ａ（２１１１）を送信する。よって、企業Ｂは、当該クレジットカード番号の正しい（たとえば平文）ＩＤを受信するのではなく、クレジット番号を暗号化したものだけを受信する。
【００２８】
次に、企業Ｂ（たとえばＤＬＰクライアント）は、その法人カード番号（たとえば２１１１、２１１２および２１１３）のデータベースを取出し、このデータベースをキーＢで暗号化する。企業Ｂも、企業Ａから受信したデータ（すなわちＡ（１１１１）、Ａ（２１１１））をキーＢで暗号化する。次に、企業Ｂは、企業Ａに、結果として、Ｂ（２１１１）、Ｂ（２１１２）、Ｂ（２１１３）、およびＢ（Ａ（１１１１））、Ｂ（Ａ（２１１１））を送信する。結果として、企業Ａは、企業Ｂのアカンウント番号のデータベースを暗号化したものを、企業Ａが最初に企業Ｂに送信したＡ（１１１１）、Ａ（２１１１）のようなクレジットカード番号候補を（キーＢを用いて）暗号化したものとともに、受信する。
【００２９】
Ｂ（２１１１）、Ｂ（２１１２）、Ｂ（２１１３）、およびＢ（Ａ（１１１１））、Ｂ（Ａ（２１１１））を受信した後、企業Ａは、自身の暗号文を二重暗号化要素Ｂ（Ａ（１１１１））およびＢ（Ａ（２１１１））から取除くことにより、Ｂ（１１１１）およびＢ（２１１１）を生成する。次に、企業Ａは、解読した要素（たとえばＢ（１１１１）およびＢ（２１１１））を、企業Ｂから受信した要素（たとえば（Ｂ（２１１１）、Ｂ（２１１２）、Ｂ（２１１３））と比較する。この比較に基づいて、企業Ａは、いずれの集合にも存在しているのはＢ（２１１１）であると判断する。言い換えると、このクレジットカード番号（２１１１）は、企業Ａによって電子メールにおいて検出されたものであり、かつ、企業Ｂのアカウントのデータベースでも検出されたものであるのに対し、企業Ａによって検出されたその他のクレジットカード番号Ａ（１１１１）は、企業Ｂのアカウントのデータベースには存在しない。
【００３０】
この比較が完了し、一致する値を求めた後に、企業Ａは、発見した（Ｂ（２１１１））を企業Ｂに送信する。企業Ｂは、暗号キーＢを有しているので、出力電子メールにおいてどのようなクレジットカード番号が発見されたかを正確に知っている（２１１１）。しかしながら、企業Ａは、Ｂの法人カード番号のデータベースを持っておらずこれを判断できない。また、企業Ｂは、その法人カード番号と一致しない暗号化結果に関連する実際の情報を有しない。
【００３１】
上記例のユースケースは、その他の選択的側面を含み得る。たとえば、発見物の特定の特徴のみ（たとえばクレジットカード番号の最後の４桁）を、企業Ａから企業Ｂに送信することにより、カード番号のデータベース全体を暗号化して送信することを不要にしてもよい。さらに、企業Ａによりランダムノイズを発見物に追加することで、企業Ｂへの情報漏洩を防止してもよい。加えて、要素の順序を調整することにより、企業Ａが、どの発見物が法人カードを表わしているかを判断できないようにしてもよい。別の代替実装例に従うと、クライアントは，機密情報のデータベースに対してブルームフィルタ（Bloom filter）を構築してもよい。この手法は、大量のデータ漏洩（たとえば単一のメッセージに多数のカード番号がある）を検出するために実現されてもよい。
【００３２】
なお、企業Ａは、企業ＢのためにＤＬＰサービスをホストするだけでなく、より一般的に企業Ｂのためのホスト（たとえばクラウドサービスプロバイダ）であってもよく、したがって、サービス、アプリケーション、およびデータをホストしてもよい（たとえば企業Ａは企業Ｂのためのクラウドホスト）。しかしながら、このような環境でさえ、企業Ａは、企業Ｂの「ファイアウォール」の内部にあると考えられる企業Ｂの情報にアクセスすることはできない。たとえば、限定される訳ではないが、企業Ａが企業Ｂをホストしているときに、ある暗号化手法を用いて企業Ｂのためのファイアウォールを作成してもよい。
【００３３】
当該実装例はさまざまな利益および利点を有し得る。たとえば、限定される訳ではないが、機密性は、ＤＬＰクライアントのメンバー（たとえば個々のユーザ）のために保持されてもよく、機密性はまた、ＤＬＰクライアントおよびＤＬＰサービスプロバイダのために保持されてもよい。したがって、ＤＬＰは、信頼できる外部の当事者（たとえば出力データの実際の内容または平文を処理し認識する第三者）に頼らなくても提供できる。このようにして機密情報の機密性は保持される。これが意味するのは、この例において、ＤＬＰサービスプロバイダの信用が失われ、ＤＬＰクライアント構造からの情報の信用が失われ、そのデータが漏洩した場合であっても、ＤＬＰクライアントの情報の信用は失われないことを意味する。なぜなら、ＤＬＰサービスプロバイダはこのような暗号化された表現の情報を扱うからである。本実装例はクラウドベース環境に組込まれてもよく、クラウドベース環境では、プロトコルのクライアント側を実現するクラウドコンポーネントが、均一的でスケーラブルなやり方でデプロイされてもよい。
【００３４】
図１は、ある実装例に従うシステム１００である。より具体的には、クライアント１０１（たとえばＤＬＰクライアント）とＤＬＰホスト１０３（たとえばＤＬＰサービスプロバイダ）とが、インターネット１０５等のネットワークを介して結合される。ＤＬＰホスト１０３は、ＤＬＰホストサーバ１０７と、コンテキストアウェア・パターンマッチング１０９と、機密保持共通集合比較器１１１と、暗号化／解読エンジン１１３と、アクションルール１１５とを含む。クライアント１０１は、エージェント１１７と、クライアント情報１１９と、暗号化／解読エンジン１２１と、アクションルール１２３と、メンバーのデバイス１２５とを含む。ＤＬＰホスト１０３は、クライアント１０１のファイアウォールの内側に存在していない。このプロトコルに従うと、動作のうちの一部はクライアント１０１におけるエージェント１１７によって実行され、その他の動作はＤＬＰホスト１０３におけるＤＬＰホストサーバ１０７によって実行される。
【００３５】
システム１００において、クライアント１０１のメンバーのデバイス１２５からインターネット１０５を介して送信された出力データは、ＤＬＰホスト１０３のＤＬＰホストサーバ１０７によって受信される。たとえば、限定される訳ではないが、この出力データは、ＤＬＰクライアントのメンバーであるユーザの電子メールを含み得るものであり、１以上のクレジットカード番号候補、または個人に関連するかもしれないその他の機密情報を含み得る。
【００３６】
受信すると、ＤＬＰホストサーバ１０７は、コンテキストアウェア・パターンマッチング１０９を用いて、出力データに対してコンテキストベースの解析を実行することにより、漏洩情報の候補を探す。たとえば、限定される訳ではないが、コンテキストアウェア・パターンマッチング１０９は、パターン（たとえば連続する文字の数または連続する文字の一部またはすべての値）を探そうと試みてもよい。任意で、ＤＬＰホスト１０３は、上記ブルームフィルタを適用することにより、このデータ通信がデータ漏洩候補であると判断するための解析を実行して、このデータ通信がデータ漏洩候補であると判断してもよい。
【００３７】
漏洩情報候補を含む出力データに対し、暗号化／解読エンジン１１３を用いて、ＤＬＰホスト１０３にありクライアント１０１には与えられないキーに基づいてこの漏洩情報候補を暗号化する。次に、ＤＬＰホスト１０７は、暗号化された漏洩情報候補をクライアント１０１のエージェント１１７に与える。
【００３８】
エージェント１１７は、暗号化された漏洩情報候補を受信すると、暗号化／解読エンジン１２１を適用することにより、受信した、一度暗号化された漏洩情報候補に対して二度目の暗号化を実行し、クライアント情報１１９（たとえばクライアント情報のデータベース）も暗号化する。エージェント１１７は、クライアント情報１１９にアクセスでき、クライアント１０１の環境（たとえばＤＬＰホスト１０３または別のホストによってホストされるクライアント１０１のクラウド空間）の中に存在している。暗号化／解読エンジン１２１は、クライアント１０１にありＤＬＰホスト１０３に与えられないキーを用いる。エージェント１１７は、二度暗号化された漏洩情報候補と、暗号化されたクライアント情報とを、インターネット１０５等のネットワークを介してＤＬＰホスト１０３に送信する。
【００３９】
ＤＬＰホストサーバ１０７は、二度暗号化された漏洩情報候補と、暗号化されたクライアント情報とを受信すると、二度暗号化された漏洩情報候補に対し、暗号化／解読エンジン１１３を介して解読動作を実行することにより、最初に適用した暗号化を取除く。結果として、いずれもクライアント１０１によって暗号化された、暗号化漏洩情報候補および暗号化クライアント情報は、ＤＬＰホスト１０３に残る。
【００４０】
次に、ＤＬＰホストサーバ１０７は、機密保持共通集合比較器１１１を適用することにより、暗号化された漏洩情報候補および暗号化されたクライアント情報の値に対してマッチング動作を実行する。マッチング動作の結果、一致があると判断した場合、ＤＬＰホストサーバ１０７は、一致する暗号化された漏洩情報候補を含む報告を、クライアント１０１のエージェント１１７に与え、エージェントは、アクションルール１２３を適用することにより、実行すべきアクションを決定する。これについては以下で詳述する。マッチング動作の結果、一致がないと判断した場合は、アクションルール１１５が適用され、ＤＬＰホストがアクションを実行する。これについては以下で詳述する。
【００４１】
この実装例において、ＤＬＰホスト１０３は、クライアント１０１のファイアウォールの外部のホストである。さらに、クライアントは、限定される訳ではないが企業を含み得る。したがって、出力データは、限定される訳ではないが、企業に関連するユーザデバイスのオンラインアカウントに由来するデータ通信を含み得る。したがって、ＤＬＰホスト１０３は、データ通信のコンテキストに基づいて解析を実行することにより、データ通信がデータ漏洩候補であると判断し、データ通信を暗号化して、ホストが暗号化したデータ通信を、企業のソフトウェアエージェント１１７に与える。
【００４２】
さらに、ソフトウェアエージェント１１７は、ホストが暗号化したデータ通信を受信したことに応じて、共通の（たとえば共有）暗号化キーを用いることにより、企業情報のデータベースを暗号化し、ホストが暗号化したデータ通信を再度暗号化し、ソフトウェアエージェントが暗号化した企業情報のデータベースと再度暗号化したデータ通信とを、ＤＬＰホスト１０３に与えてもよい。ホストは、再度暗号化されたデータ通信のうちの、ホストが暗号化したアスペクトを解読することにより、ソフトウェアエージェントが暗号化したデータ通信を生成し、マッチング動作を実行することにより、暗号化された企業情報のデータベースと、ソフトウェアエージェントが暗号化したデータ通信との間に一致があるか否かを判断してもよい。再度暗号化されたデータのうちの、ホストが暗号化したアスペクトを解読すること（たとえば、通信に対して先に適用した暗号化を解読することにより、ソフトウェアエージェントが暗号化したデータ通信を得ること）は、ホストによって最初に通信に適用された暗号化を、解読によって取除くことにより、ソフトウェアエージェントによる暗号化は適用されているがホストによる暗号化は適用されていない、データ通信を得る（たとえばソフトウェアエージェントが暗号化したデータ通信）。上述のように、再度暗号化されたデータのうちのホストによって暗号化されたアスペクトを解読する機能は、適宜選択される、使用されている暗号方式の特定のプロパティを含む。
【００４３】
一致があると判断した場合、ＤＬＰホスト１０３は、この一致をソフトウェアエージェント１１７に報告してもよく、ソフトウェアエージェント１１７は第１のアクションを実行してもよい。このソフトウェアエージェント１１７によるアクションは、データ通信を削除すること、このデータ通信を隔離すること、および、このデータ通信を警告とともに受信者に送信することのうちの、１つ以上を含み得る。たとえば、限定される訳ではないが、データ通信の元の送信者は、機密情報を送信しようとしたときに警告を受けてもよく（たとえばメッセージを編集して送信前に機密データを削除することを促すダイアログボックスまたはメッセージポップアップを介して）、または、クライアント１０１のアドミニストレータが、漏洩が生じているかもしれないという警告を受けてもよい。しかしながら、本実装例はこれに限定される訳ではなく、代わりに、発明の範囲から逸脱することなく、当業者が理解するであろうその他の警告を代わりに適用してもよい。
【００４４】
一致はないと判断した場合、ＤＬＰホスト１０３は、第２のアクションを実行してもよい。ＤＬＰホスト１０３による第２のアクションは、ソフトウェアエージェント１１７に対して報告を提供しないことを含み得る。
【００４５】
先に述べたように、クライアント１０１（たとえば企業）におけるソフトウェアエージェントには、ＤＬＰホスト１０３がオンラインアカウントに由来するデータ通信を暗号化するのに使用するキーは提供されず、ＤＬＰホスト１０３には、ソフトウェアエージェント１１７の共通暗号化キーは提供されない。
【００４６】
ある実装例に従うと、ＤＬＰホスト１０３は、データ通信を部分的に暗号化してもよく、当該データ通信のうちの暗号化されていない部分を、平文として残す。さらに、ＤＬＰホスト１０３は、部分的に暗号化したデータ通信と平文とを、ソフトウェアエージェントに与えてもよい。結果として、処理の必要事項を低減することができる。なぜなら、データ通信におけるすべての漏洩情報候補の全ストリングを暗号化しＤＬＰホスト１０３とクライアント１０１との間で送信し解読する必要はないからである。
【００４７】
先に述べたように、ソフトウェアエージェント１１７は、暗号化したデータベースにノイズを追加し、暗号化したデータベースをこのノイズとともにＤＬＰホスト１０３に送信してもよい。同様に、ソフトウェアエージェント１１７は、ホストによって暗号化されたデータ通信の再暗号化中に、ホストによって暗号化されたデータ通信における値を並べ替えてもよい。このような手法を採用することで、ＤＬＰホスト１０３がデータベースの実際のコンテンツに関する情報を取得することはより難しくなるであろう。
【００４８】
図２は、上記実装例に係る一例としてのユースケース２００を示す。２０１において、上記実装例および以下で説明し図３〜６に記載されているプロセスを実現するＤＬＰプロバイダは、値「１１１１」および「２１１１」を有するアカウント番号候補を発見している。
【００４９】
２０３において、クライアント企業は、値「２１１１」、「２１１２」および「２１１３」を含む法人番号のデータベースを有する。２０３において、クライアント企業は、２０１におけるＤＬＰプロバイダの上記情報を与えられておらず、２０１におけるＤＬＰプロバイダも２０３におけるクライアント企業の上記情報を与えられていない。
【００５０】
２０５において、ＤＬＰプロバイダは、アカウント番号候補をキーＡで暗号化し、暗号化した値Ａ（１１１１）、Ａ（２１１１）をクライアント企業に与える。２０７において、クライアント企業は、その法人番号のデータベースにおける値を、キーＡと異なるキーＢで暗号化し、暗号化した値Ｂ（２１１１）、Ｂ（２１１２）、Ｂ（２１１３）をＤＬＰプロバイダに与える。加えて、クライアント企業は、暗号化されたアカウント番号候補Ａ（１１１１）、Ａ（２１１１）をキーＢを用いて暗号化し、その結果Ｂ（Ａ（１１１１））、Ｂ（Ａ（２１１１））をＤＬＰプロバイダに与える。
【００５１】
２０９において、ＤＬＰプロバイダは、キーＡの暗号化を取除くことにより、Ｂ（１１１１）、Ｂ（２１１１）を得る。次に、ＤＬＰプロバイダは、これらの値Ｂ（１１１１）、Ｂ（２１１１）と、暗号化された法人番号Ｂ（２１１１）、Ｂ（２１１２）、Ｂ（２１１３）との共通部分を発見する。ＤＬＰプロバイダは、共通部分Ｂ（２１１１）をクライアント企業に送信する。クライアント企業は、Ｂ（２１１１）を解読し、したがって、２１１１が関連するアカウント番号であると判断することができる。
【００５２】
図３は、システム１００のある実装例に係るプロセス３００を示す。３０１において、受信者に対して送信されることが公表されていない、ＤＬＰクライアントのメンバーのデバイスから送信中の出力データが、ＤＬＰホストによって受信される。ＤＬＰホストは、たとえば、この出力データがクライアントの顧客に関連する情報を含むか否かに関するその他の情報を受信も格納もしない。３０３において、受信されると、漏洩情報候補を探すために、出力データに対して、コンテキストアウェア・パターンマッチング動作（たとえばコンテキストベースの解析）が実行される。
【００５３】
３０５において、出力データの中において漏洩情報候補が発見されない場合、このプロセスは終了する（たとえば、ＤＬＰホストは出力データに漏洩はないと判断する）。３０５において出力データが漏洩情報候補を含むと判断した場合、このプロセスは３０７に進む。
【００５４】
３０７において、漏洩情報候補は、ＤＬＰホストにありクライアントホストに与えられないキーに基づいて、暗号化され、クライアントに与えられる。たとえば、３０９において、エージェント（たとえば、クライアントのために命令を実行するクライアントのソフトウェアプログラム）が、暗号化された漏洩情報候補を受信してもよい。
【００５５】
３１１において、エージェントは、キーを用いて、受信した、一度暗号化された漏洩情報候補に対して二度目の暗号化を実行し、クライアント情報（たとえばクライアント情報のデータベース）も暗号化する。エージェントが使用するキーは、ＤＬＰホストには与えられないので、ＤＬＰホストは、エージェントが暗号化した内容を解読できない。また、３１１において、エージェントは、二度暗号化した漏洩情報候補と暗号化したクライアント情報とをＤＬＰホストに与える。
【００５６】
３１３において、ＤＬＰホストは、二度暗号化された漏洩情報候補と、暗号化されたクライアント情報とを受信し、解読動作を実行することにより、二度暗号化された漏洩情報候補に最初に適用された暗号化を取除く。
【００５７】
３１５において、暗号化された漏洩情報候補および暗号化されたクライアント情報の値に対し、マッチング動作が（たとえば機密保持共通集合比較器によって）実行される。
【００５８】
３１７において、一致が発見されたか否かが判断される。３１７におけるマッチング動作の結果、一致が存在すると判断された場合、３１９において、ＤＬＰホストは、一致する暗号化された漏洩情報候補を含む報告をエージェントに与え、エージェントは、上述のように、実行すべきアクションを判断する。３１７において、マッチング動作の結果一致が存在しないと判断された場合、３２１において、上述のようにＤＬＰホストは任意でアクションを実行する。
【００５９】
図４は、ＤＬＰホスト１０３の実装例に係るプロセス４００を示す。４０１において、ＤＬＰクライアントのメンバーのデバイスから出力データを受信する。４０３において、受信後、この出力データに対してコンテキストアウェア・パターンマッチング（たとえばコンテキストベースの解析）を実行することにより、漏洩情報候補を探す。
【００６０】
４０５において、出力データの中において漏洩情報候補が発見されない場合、このプロセスは終了する（たとえば、ＤＬＰホストは出力データに漏洩はないと判断する）。４０５において出力データが漏洩情報候補を含むと判断した場合、このプロセスは４０７に進む。
【００６１】
４０７において、漏洩情報候補（たとえば漏洩の可能性があるデータ）を、ＤＬＰホストにありクライアントに与えられないキーに基づいて暗号化し、クライアント（たとえばクライアントにおけるエージェント）に与える。
【００６２】
４０９において、ＤＬＰホストは、ＤＬＰホストが使用できないキーを用いて暗号化された、二度暗号化された漏洩情報候補と、暗号化された情報とを受信する。たとえば、限定される訳ではないが、エージェントは、キーを用いて、受信した、一度暗号化されば漏洩情報候補に対し、二度目の暗号化を実行してもよく、クライアント情報（たとえばクライアント情報のデータベース）も暗号化する。エージェントが使用するキーはＤＬＰホストには与えられないので、ＤＬＰホストはエージェントが暗号化した内容を解読できない。
【００６３】
４１１において、ＤＬＰホストは、解読動作を実行することにより、二度暗号化された漏洩情報候補に最初に適用された暗号化を取除く。
【００６４】
４１３において、暗号化された漏洩情報候補および暗号化されたクライアント情報に対し、（たとえば機密保持共通集合比較器によって）マッチング動作が実行される。
【００６５】
４１５において、一致が発見されたか否かが判断される。４１５におけるマッチング動作の結果、一致が存在すると判断された場合、４１７において、ＤＬＰホストは、暗号化された、一致する漏洩情報候補を含む報告を、エージェントに与える。４１５におけるマッチング動作の結果、一致が存在しないと判断された場合、先に述べたように、４１９においてＤＬＰホストは任意でアクションを実行する。
【００６６】
図５は、クライアント１０１の実装例に係るプロセス５００を示す。５０１において、クライアントにおけるエージェントは、暗号化された漏洩情報候補をＤＬＰホストから受信する。エージェント、およびこの場合のクライアントは、漏洩情報候補の暗号化に使用されたキーにアクセスできないので、漏洩情報候補の実際の値を判断することはできない。
【００６７】
５０３において、エージェントは、受信した、一度暗号化された漏洩情報候補に対し、キーを用いて二度目の暗号化を実行し、５０５において、エージェントは、クライアント情報（たとえばクライアント情報のデータベース）を暗号化する。エージェントが使用するキーはＤＬＰホストに与えられないので、ＤＬＰホストは、エージェントによって暗号化された内容を解読できない。
【００６８】
５０７において、エージェントは、二度暗号化した漏洩情報候補と、暗号化したクライアント情報とをＤＬＰホストに与える。
【００６９】
５０９において、エージェントは、暗号化されたクライアントデータベースの情報に一致する暗号化された一致漏洩情報候補を含む報告を、ＤＬＰホストから受信する。
【００７０】
５１１において、エージェントは、上述のように、実行すべきアクションを判断する。
いくつかの例において、図３〜図５に示される上記プロセスは、異なる、より少ない、またはより多いブロックで実現されてもよい。プロセス３００、４００、および／または５００は、媒体に格納され１以上のコンピューティングデバイスの１以上のプロセッサにロードされ、コンピュータによって実現される方法として実行されることができる、コンピュータによって実行可能な命令として、実現されてもよい。
【００７１】
図６は、いくつかの実装例に適した環境の一例を示す。環境６００は、デバイス６０５〜６４５を含み、各デバイスは、たとえばネットワーク６６０を介して（たとえば有線および／または無線接続により）少なくとも１つの他のデバイスに通信可能に接続される。いくつかの装置は、１以上の記憶装置６３０および６４５に通信可能に接続し得る。
【００７２】
１以上のデバイス６０５〜６４５の一例は、それぞれ図７および図８にそれぞれ記載されているコンピューティングデバイス７０５および／または８０５であってもよい。デバイス６０５〜６４５は、限定される訳ではないが、コンピュータ６０５（たとえばラップトップコンピューティングデバイス）、モバイルデバイス６１０（たとえばスマートフォンまたはタブレット）、テレビ６１５、車両に関連するデバイス６２０、サーバコンピュータ６２５、コンピューティングデバイス６３５〜６４０、ならびに記憶装置６３０および６４５を含み得る。
【００７３】
いくつかの実装例において、デバイス６０５〜６２０は、企業のユーザに関連するユーザデバイス（たとえば、ユーザが、企業のファイアウォールの内部で、たとえばソーシャルネットワーク上のサービスにアクセスするためおよび／またはたとえばソーシャルネットワーク上に要求を出すため、または個人のオンライン情報にアクセスするために使用するデバイス）とみなすことができる。デバイス６２５〜６４５は、（たとえば、外部ホストが、先に図３〜図５に関連して説明したサービスを提供するため、および／またはウェブページ、テキスト、テキストの一部、画像、画像の一部、音声、音声セグメント、映像、映像セグメント、および／またはそれに関する情報等のデータを格納するために使用する）サービスプロバイダに関連するデバイスであってもよい。
【００７４】
たとえば、企業の従業員であるユーザ（たとえばアリス）が、１以上のデバイス６２５〜６４５によってサポートされているソーシャルネットワーク上で、ユーザデバイス６０５または６１０を使用して、企業の機密データに関連するまたは関連しない可能性がある個人用コンテンツにアクセスし、これを閲覧し、および／または共有する場合がある。企業に関係がないアリスの個人用コンテンツは、企業のファイアウォールの内部で、個人用アカウントまたはフォルダ（たとえば「アリスの非業務関連メッセージ」）からアクセスされる個人用アカウント名または番号を含み得る。企業に関係があるアリスの個人用コンテンツは、企業のファイアウォールの内部で、アリスの業務関連アカウントまたはフォルダ（たとえば「アリスの業務関連メッセージ」）からアクセスされる企業のアカウントフォルダのアカウント名または番号情報を含み得る。外部ホストである受信者（たとえばボブ）は、図３〜図５に関連して先に述べたプロセスに従い、デバイス６１５または６２０を用いてアリスの共有コンテンツにアクセスするおよび／またはこれを閲覧することができる。
【００７５】
図７は、いくつかの実装例で使用される、外部ホストに関連するコンピューティングデバイスの一例とともに、コンピューティング環境の一例を示す。コンピューティング環境７００内のコンピューティングデバイス７０５は、１以上の処理ユニット、コア、またはプロセッサ７１０、メモリ７２５（たとえばＲＡＭ、ＲＯＭ、および／またはその他）、内部記憶装置７２０（たとえば磁気、光学、ソリッドステート記憶装置、および／または有機）、および／またはＩ／Ｏインターフェイス７１５を含み得る。これらのうちのいずれも、情報を伝達するために通信機構またはバス７３０に結合することができる、またはコンピューティングデバイス７０５に埋込むことができる。
【００７６】
コンピューティングデバイス７０５は、入力／ユーザインターフェイス７３５および出力デバイス／インターフェイス７４０に、通信可能に結合することができる。入力／ユーザインターフェイス７３５および出力デバイス／インターフェイス７４０のうちのいずれか一方または双方は、有線または無線インターフェイスであってもよく、取外し可能であってもよい。入力／ユーザインターフェイス７３５は、入力を与えるために使用することができる、いかなる物理または仮想デバイス、コンポーネント、センサ、またはインターフェイスであってもよい（たとえばボタン、タッチスクリーンインターフェイス、キーボード、ポインティング／カーソルコントロール、マイク、カメラ、点字、モーションセンサ、光学読取装置および／またはその他）。出力デバイス／インターフェイス７４０は、ディスプレイ、テレビ、モニタ、プリンタ、スピーカ、点字等を含み得る。いくつかの実装例において、入力／ユーザインターフェイス７３５および出力デバイス／インターフェイス７４０は、コンピューティングデバイス７０５とともに埋め込まれてもよく、またはコンピューティングデバイス７０５に物理的に結合されてもよい。その他の実装例において、その他のコンピューティングデバイスが、コンピューティングデバイス７０５のための入力／ユーザインターフェイス７３５および出力デバイス／インターフェイス７４０として機能してもよく、またはその機能を提供してもよい。
【００７７】
コンピューティングデバイス７０５の例は、限定される訳ではないが、高度モバイルデバイス（たとえばスマートフォン、車両およびその他のマシン内のデバイス、人間および動物が携行するデバイス等）、モバイルデバイス（たとえばタブレット、ノートブック、ラップトップ、パーソナルコンピュータ、ポータブルテレビ、ラジオ等）、および移動用に設計されていないデバイス（たとえばデスクトップコンピュータ、その他のコンピュータ、インフォメーションセンター、１以上のプロセッサが埋込まれているおよび／または結合されているテレビ、ラジオ等）を含み得る。
【００７８】
コンピューティングデバイス７０５は、同一のまたは異なる構成の１以上のコンピューティングデバイスを含む、任意の数のネットワーク化されたコンポーネント、デバイス、およびシステムと通信するために、（たとえばＩ／Ｏインターフェイス７１５を介して）外部記憶装置７４５およびネットワーク７５０に通信可能に結合することができる。コンピューティングデバイス７０５または接続されているいずれのコンピューティングデバイスも、サーバ、クライアント、シンサーバ、汎用マシン、専用マシン、または別のラベルとして機能することができる、そのサービスを提供できる、またはそう呼ぶことができる。
【００７９】
Ｉ／Ｏインターフェイス７１５は、音声および／またはデータネットワークによる無線通信を容易にする無線通信コンポーネント（図示せず）を含み得る。無線通信コンポーネントは、１以上のアンテナを有するアンテナシステム、無線システム、ベースバンドシステム、またはその任意の組合わせを含み得る。無線周波数（ＲＦ）信号を、無線システムの管理下で、アンテナシステムにより無線で送受信してもよい。
【００８０】
Ｉ／Ｏインターフェイス７１５は、限定される訳ではないが、コンピューティング環境７００における、少なくともすべての、接続されているコンポーネント、デバイス、およびネットワークにおよび／またはから、情報を伝達するために、任意の通信またはＩ／Ｏプロトコルまたは規格（たとえばイーサネット（登録商標）、８０２．１１ｘ、ユニバーサルシステムバス、ＷｉＭａｘ（登録商標）、モデム、セルラーネットワークプロトコル等）を含み得る。ネットワーク７５０は、任意のネットワークまたはネットワークの組合わせであってもよい（たとえば、インターネット、ローカルエリアネットワーク、ワイドエリアネットワーク、電話網、セルラーネットワーク、衛星ネットワーク等）。
【００８１】
コンピューティングデバイス７０５は、一時的な媒体および非一時的な媒体を含む、コンピュータによって使用可能なまたはコンピュータによって読取可能な媒体を、使用することができる、および／またはこれを用いて通信することができる。一時的な媒体は、送信媒体（たとえば金属ケーブル、光ファイバ）、信号、搬送波等を含む。非一時的な媒体は、磁気媒体（たとえばディスクおよびテープ）、光学媒体（たとえばＣＤ  ＲＯＭ、デジタルビデオディスク、ブルーレイディスク（登録商標））、ソリッドステート媒体（たとえばＲＡＭ、ＲＯＭ、フラッシュメモリ、ソリッドステート記憶装置）、およびその他の不揮発性記憶装置またはメモリを含む。
【００８２】
いくつかのコンピューティング環境の例では、コンピューティングデバイス７０５を用いて、技術、方法、アプリケーション、プロセス、またはコンピュータによって実行可能な命令を、実現することができる。コンピュータによって実行可能な命令は、一時的な媒体から取出し、非一時的な媒体に格納しこの媒体から取出すことができる。実行可能な命令は、任意のプログラミング言語、スクリプト言語、およびマシン言語（たとえばＣ、Ｃ＋＋、Ｃ＃、Ｊａｖａ（登録商標）、Ｖｉｓｕａｌ  Ｂａｓｉｃ（登録商標）、パイソン、パール、ＪａｖａＳｃｒｉｐｔ（登録商標）、およびその他）のうちの１つ以上に由来し得る。
【００８３】
プロセッサ７１０は、自然または仮想環境において、任意のオペレーティングシステム（ＯＳ）（図示せず）のもとで実行することができる。論理ユニット７６０と、アプリケーションプログラミングインターフェイス（ＡＰＩ）ユニット７６５と、入力ユニット７７０と、出力ユニット７７５と、機密情報判断ユニット７８０と、機密情報暗号化ユニット７８５と、解読およびマッチングユニット７９０と、アクション判断ユニット７９３と、さまざまなユニットが相互に、ＯＳと、およびその他のアプリケーション（図示せず）と通信するためのユニット間通信機構７９５とを含む、１以上のアプリケーションをデプロイすることができる。たとえば、機密情報判断ユニット７８０、機密情報暗号化ユニット７８５、解読およびマッチングユニット７９０、およびアクション判断ユニット７９３が、図３および図４に示される１以上のプロセスを実現してもよい。上記ユニットおよび要素は、設計、機能、構成、または実装が変更されてもよく、本明細書の記載に限定されない。
【００８４】
いくつかの実装例において、情報または実行命令は、ＡＰＩユニット７６５によって受信されると、１以上の他のユニット（たとえば論理ユニット７６０、入力ユニット７７０、出力ユニット７７５、機密情報判断ユニット７８０、機密情報暗号化ユニット７８５、解読およびマッチングユニット７９０、およびアクション判断ユニット７９３）に伝達されてもよい。
【００８５】
たとえば、入力ユニット７７０は、クライアントのあるメンバーの出力情報に関連する出力データを受信した後に、ＡＰＩユニット７６５を用いて、ユーザ表示を機密情報判断ユニット７８０に送信する。たとえば、機密情報判断ユニット７８０は、コンテキストベースの解析を用いることで、クライアントからの出力情報は洩れ情報候補を含むと判断する場合がある。
【００８６】
機密情報判断ユニット７８０は、ＡＰＩユニット７６５を介して、機密情報暗号化ユニット７８５とやり取りすることにより、漏洩情報候補を暗号化してもよい。機密情報判断ユニット７８０は、ＡＰＩユニット７６５を用いて、解読およびマッチングユニット７９０とやり取りすることにより、（たとえばクライアントからの）二度暗号化された漏洩情報候補を受信し、機密情報暗号化ユニット７８５によって適用された暗号化が取除かれるように解読してから、暗号化された漏洩情報候補と、暗号化されたクライアントデータベース情報とのマッチングを実行することにより、一致があるか否かを判断してもよい。アクション判断ユニット７９３は、解読およびマッチングユニット７９０によって一致はないと判断されたときに、実行すべきアクションを判断してもよい。
【００８７】
いくつかのインスタンスにおいて、論理ユニット７６０は、上記実装例のうちのいくつかにおける、ユニット間の情報の流れを制御し、ＡＰＩユニット７６５、入力ユニット７７０、出力ユニット７７５、機密情報判断ユニット７８０、機密情報暗号化ユニット７８５、解読およびマッチングユニット７９０、およびアクション判断ユニット７９３によって提供されるサービスを導くように、構成されてもよい。たとえば、１以上のプロセスまたは実装例の流れを、論理ユニット７６０が単独で制御してもよく、または、ＡＰＩユニット７６５とともに制御してもよい。
【００８８】
図８は、いくつかの実装例で使用される、企業に関連するコンピューティングデバイスの一例とともに、コンピューティング環境の一例を示す。コンピューティング環境８００内のコンピューティングデバイス８０５は、１以上の処理ユニット、コア、またはプロセッサ８１０、メモリ８２５（たとえばＲＡＭ、ＲＯＭ、および／またはその他）、内部記憶装置８２０（たとえば磁気、光学、ソリッドステート記憶装置、および／または有機）、および／またはＩ／Ｏインターフェイス８１５を含み得る。これらのうちのいずれも、情報を伝達するために通信機構またはバス８３０に結合することができる、またはコンピューティングデバイス８０５に埋込むことができる。
【００８９】
コンピューティングデバイス８０５は、入力／ユーザインターフェイス８３５および出力デバイス／インターフェイス８４０に、通信可能に結合することができる。入力／ユーザインターフェイス８３５および出力デバイス／インターフェイス８４０のうちのいずれか一方または双方は、有線または無線インターフェイスであってもよく、取外し可能であってもよい。入力／ユーザインターフェイス８３５は、入力を与えるために使用することができる、いかなる物理または仮想デバイス、コンポーネント、センサ、またはインターフェイスであってもよい（たとえばボタン、タッチスクリーンインターフェイス、キーボード、ポインティング／カーソルコントロール、マイク、カメラ、点字、モーションセンサ、光学読取装置および／またはその他）。出力デバイス／インターフェイス８４０は、ディスプレイ、テレビ、モニタ、プリンタ、スピーカ、点字等を含み得る。いくつかの実装例において、入力／ユーザインターフェイス８３５および出力デバイス／インターフェイス８４０は、コンピューティングデバイス８０５とともに埋め込まれてもよく、またはコンピューティングデバイス８０５に物理的に結合されてもよい。その他の実装例において、その他のコンピューティングデバイスが、コンピューティングデバイス８０５のための入力／ユーザインターフェイス８３５および出力デバイス／インターフェイス８４０として機能してもよく、またはその機能を提供してもよい。
【００９０】
コンピューティングデバイス８０５の例は、限定される訳ではないが、高度モバイルデバイス（たとえばスマートフォン、車両およびその他のマシン内のデバイス、人間および動物が持ち運ぶデバイス等）、モバイルデバイス（たとえばタブレット、ノートブック、ラップトップ、パーソナルコンピュータ、ポータブルテレビ、ラジオ等）、および移動用に設計されていないデバイス（たとえばデスクトップコンピュータ、その他のコンピュータ、インフォメーションセンター、１以上のプロセッサが埋込まれているおよび／または結合されているテレビ、ラジオ等）を含み得る。
【００９１】
コンピューティングデバイス８０５は、同一のまたは異なる構成の１以上のコンピューティングデバイスを含む、任意の数のネットワーク化されたコンポーネント、デバイス、およびシステムと通信するために、（たとえばＩ／Ｏインターフェイス８１５を介して）外部記憶装置８４５およびネットワーク８５０に通信可能に結合することができる。コンピューティングデバイス８０５または接続されているいずれのコンピューティングデバイスも、サーバ、クライアント、シンサーバ、汎用マシン、専用マシン、または別のラベルとして機能することができる、そのサービスを提供できる、またはそう呼ぶことができる。
【００９２】
Ｉ／Ｏインターフェイス８１５は、音声および／またはデータネットワークによる無線通信を容易にする無線通信コンポーネント（図示せず）を含み得る。無線通信コンポーネントは、１以上のアンテナを有するアンテナシステム、無線システム、ベースバンドシステム、またはその任意の組合わせを含み得る。無線周波数（ＲＦ）信号を、無線システムの管理下で、アンテナシステムにより無線で送受信してもよい。
【００９３】
Ｉ／Ｏインターフェイス８１５は、限定される訳ではないが、コンピューティング環境８００における、少なくともすべての、接続されているコンポーネント、デバイス、およびネットワークにおよび／またはから、情報を伝達するために、任意の通信またはＩ／Ｏプロトコルまたは規格（たとえばイーサネット、８０２．１１ｘ、ユニバーサルシステムバス、ＷｉＭａｘ、モデム、セルラーネットワークプロトコル等）を含み得る。ネットワーク８５０は、任意のネットワークまたはネットワークの組合わせであってもよい（たとえば、インターネット、ローカルエリアネットワーク、ワイドエリアネットワーク、電話網、セルラーネットワーク、衛星ネットワーク等）。
【００９４】
コンピューティングデバイス８０５は、一時的な媒体および非一時的な媒体を含む、コンピュータによって使用可能なまたはコンピュータによって読取可能な媒体を、使用することができる、および／またはこれを用いて通信することができる。一時的な媒体は、送信媒体（たとえば金属ケーブル、光ファイバ）、信号、搬送波等を含む。非一時的な媒体は、磁気媒体（たとえばディスクおよびテープ）、光学媒体（たとえばＣＤ  ＲＯＭ、デジタルビデオディスク、ブルーレイディスク）、ソリッドステート媒体（たとえばＲＡＭ、ＲＯＭ、フラッシュメモリ、ソリッドステート記憶装置）、およびその他の不揮発性記憶装置またはメモリを含む。
【００９５】
いくつかのコンピューティング環境の例では、コンピューティングデバイス８０５を用いて、技術、方法、アプリケーション、プロセス、またはコンピュータによって実行可能な命令を、実現することができる。コンピュータによって実行可能な命令は、一時的な媒体から取出し、非一時的な媒体に格納しこの媒体から取出すことができる。実行可能な命令は、任意のプログラミング言語、スクリプト言語、およびマシン言語（たとえばＣ、Ｃ＋＋、Ｃ＃、Ｊａｖａ、Ｖｉｓｕａｌ  Ｂａｓｉｃ、パイソン、パール、ＪａｖａＳｃｒｉｐｔ、およびその他）のうちの１つ以上に由来し得る。
【００９６】
プロセッサ８１０は、自然または仮想環境において、任意のオペレーティングシステム（ＯＳ）（図示せず）のもとで実行することができる。論理ユニット８６０と、アプリケーションプログラミングインターフェイス（ＡＰＩ）ユニット８６５と、入力ユニット８７０と、出力ユニット８７５と、データベース暗号化ユニット８８０と、受信データ暗号化ユニット８８５と、ＤＬＰアクション判断ユニット８９０と、さまざまなユニットが相互に、ＯＳと、およびその他のアプリケーション（図示せず）と通信するためのユニット間通信機構８９５とを含む、１以上のアプリケーションをデプロイすることができる。たとえば、データベース暗号化ユニット８８０、受信データ暗号化ユニット８８５、およびＤＬＰアクション判断ユニット８９０が、図３および図５に示される１以上のプロセスを実現してもよい。上記ユニットおよび要素は、設計、機能、構成、または実装が変更されてもよく、本明細書の記載に限定されない。
【００９７】
いくつかの実装例において、情報または実行命令は、ＡＰＩユニット８６５によって受信されると、１以上の他のユニット（たとえば論理ユニット８６０、入力ユニット８７０、出力ユニット８７５、データベース暗号化ユニット８８０、受信データ暗号化ユニット８８５、およびＤＬＰアクション判断ユニット８９０）に伝達されてもよい。
【００９８】
たとえば、入力ユニット８７０は、暗号化された漏洩情報候補をＤＬＰホストから受信した後に、ＡＰＩユニット８６５を用いて、この情報を、クライアント情報データベースを暗号化するデータベース暗号化ユニット８８０に伝達してもよい。データベース暗号化ユニット８８０は、ＡＰＩユニット８６５を介して、受信データ暗号化ユニット８８５とやり取りすることにより、ＤＬＰホストから受信した、暗号化された漏洩情報候補を暗号化してもよい。ＤＬＰアクション判断ユニット８９０は、ＡＰＩユニット８６５を用いて、漏洩情報候補とクライアント情報データベースとの一致を示すＤＬＰホストから受信した情報に基づいて、実行すべきアクションを判断してもよい。
【００９９】
いくつかのインスタンスにおいて、論理ユニット８６０は、上記実装例のうちのいくつかにおける、ユニット間の情報の流れを制御し、ＡＰＩユニット８６５、入力ユニット８７０、出力ユニット８７５、データベース暗号化ユニット８８０、受信データ暗号化ユニット８８５、およびＤＬＰアクション判断ユニット８９０によって提供されるサービスを導くように、構成されてもよい。たとえば、１以上のプロセスまたは実装例の流れを、論理ユニット８６０が単独で制御してもよく、または、ＡＰＩユニット８６５とともに制御してもよい。
【０１００】
本明細書に記載のソフトウェアコンポーネントはいずれも、さまざまな形態を取り得る。たとえば、あるコンポーネントは、スタンドアロンソフトウェアパッケージであってもよく、または、より大きなソフトウェアプロダクトに「ツール」として組込まれたソフトウェアパッケージであってもよい。これは、スタンドアロンプロダクトとしてまたは既存のソフトウェアアプリケーションにインストールするためのアドインパッケージとして、ネットワーク、たとえばウェブサイトからダウンロード可能であってもよい。これはまた、クライアント−サーバソフトウェアアプリケーションとして、ウェブで使用可能なソフトウェアアプリケーションとして、および／またはモバイルアプリケーションとして、利用できるものであってもよい。
【０１０１】
本明細書に記載のシステムがユーザに関する個人情報を収集するまたは個人情報を利用し得る状況において、ユーザ（たとえば統合された業務用アカウントおよび非業務用アカントどちらも有する企業のユーザ）は、プログラムまたは特徴がユーザ情報（たとえばユーザのソーシャルネットワーク、社会的行動または活動、職業、ユーザの嗜好、またはユーザの現在位置に関する情報）を収集するか否かを管理する機会、または、ユーザにより関連性が高いであろうコンテンツをコンテンツサーバから受けるか否かおよび／または受ける方法を管理する機会が与えられてもよい。加えて、特定のデータは、格納または使用される前に、個人を特定できる情報が削除されるように１以上の方法で処理されてもよい。たとえば、ユーザのＩＤは、ユーザ個人を特定できる情報を判別できないように扱われてもよく、または、位置情報が取得されるユーザの地理的位置を、（たとえば市、郵便番号、または州レベルまで）一般化することにより、ユーザの特定の位置を判別できないようにしてもよい。このように、ユーザは、ユーザに関する情報が如何にして収集されコンテンツサーバによって使用されるかを管理してもよい。
【０１０２】
２、３の実装例を示して説明したが、これらの実装例は、本明細書に記載の主題をこの分野に精通した人々に伝えるために提供される。本明細書に記載の主題は、記載されている実装例に限定されることなく、さまざまな形態で実現し得ることが理解されるはずである。本明細書に記載の主題は、具体的に定義または記載されている事項がなくても、または記載されていないその他または異なる要素または事項を用いて、実施することが可能である。この分野の当業者は、これらの実装例を、下記請求項で規定されている本明細書に記載の主題およびその均等物から逸脱することなく変更し得ることを、理解するであろう。これまでの説明、関連する図面、および請求項に示される教示の恩恵を受ける、本発明が関連する技術の当業者は、その他多くの修正および本発明のその他の実施形態に想到するであろう。この修正は、開示されている特徴の関連する何らかの組合わせを含む。
【０１０３】
その他の実装例を以下の例において要約する。
例１：コンピュータによって実現されるデータ漏洩検出方法であって、この方法は、
企業のファイアウォールの外部のホストにおいて、企業に関連するユーザデバイスのオンラインアカウントに由来するデータ通信を受信するステップと、
ホストが、データ通信のコンテキストに基づいて解析を実行しデータ通信はデータ漏洩候補であると判断するステップと、
ホストが、データ通信を暗号化し、ホストが暗号化したデータ通信を企業におけるソフトウェアエージェントに与えるステップと、
ソフトウェアエージェントが、ホストが暗号化したデータ通信を受信したことに応じて、共通暗号化キーを用いることにより、企業情報のデータベースを暗号化し、ホストが暗号化したデータ通信を再度暗号化するステップと、
ソフトウェアエージェントが暗号化した企業情報のデータベースおよび再度暗号化したデータ通信をホストに与えるステップと、
ホストが、再度暗号化したデータ通信の、ホストが暗号化したアスペクトを解読することにより、ソフトウェアエージェントが暗号化したデータ通信を生成するステップと、
マッチング動作を実行し、暗号化した企業情報のデータベースと、ソフトウェアエージェントが暗号化したデータ通信との間に、一致があるか否かを判断するステップと、
一致があると判断した場合、ホストが一致をソフトウェアエージェントに報告し、ソフトウェアエージェントが第１のアクションを実行するステップと、
一致がないと判断した場合、ホストが第２のアクションを実行するステップとを含む。
【０１０４】
例２：ソフトウェアエージェントにおける暗号化は、オンラインアカウントに由来するデータ通信をホストが暗号化するときに使用したキーと異なるキーを用いて実行され、ホストにおける暗号化は、ソフトウェアエージェントの共通暗号化キーと異なるキーを用いて実行される、例１に記載のコンピュータによって実現される方法。
【０１０５】
例３：マッチング動作を実行するステップは、機密保持共通集合アルゴリズムを適用するステップを含む、例１または２に記載のコンピュータによって実現される方法。
【０１０６】
例４：ホストは、データ通信を部分的に暗号化し、データ通信のうちの暗号化されていない部分を平文として残し、部分的に暗号化したデータ通信と平文とをソフトウェアエージェントに与える、例１〜３のいずれかに記載のコンピュータによって実現される方法。
【０１０７】
例５：ソフトウェアエージェントがノイズを暗号化したデータベースに追加し、ノイズが追加された暗号化したデータベースをホストに送信するステップをさらに含む、例１〜４のいずれかに記載のコンピュータによって実現される方法。
【０１０８】
例６：ホストが解析を実行しデータ通信はデータ漏洩候補であると判断するステップは、ブルームフィルタを適用してデータ通信はデータ漏洩候補であると判断するステップを含む、例１〜５のいずれかに記載のコンピュータによって実現される方法。
【０１０９】
例７：ソフトウェアエージェントが、ホストが暗号化したデータ通信の再暗号化中に、ホストが暗号化したデータ通信の値を並び替えるステップをさらに含む、例１〜６のいずれかに記載のコンピュータによって実現される方法。
【０１１０】
例８：ソフトウェアエージェントによる第１のアクションは、データ通信を削除すること、データ通信を隔離すること、および、データ通信を警告とともに受信者に送信することのうちの、少なくとも１つを含む、例１〜７のいずれかに記載のコンピュータによって実現される方法。
【０１１１】
例９：ホストによる第２のアクションは、報告をソフトウェアエージェントに送信することを禁止することを含む、例１〜８のいずれかに記載のコンピュータによって実現される方法。
【０１１２】
例１０：企業のファイアウォールの外部のホストにおいてデータ漏洩を検出する、コンピュータによって実現される方法であって、この方法は、
企業に関連するユーザデバイスのオンラインアカウントに由来するデータ通信を受信するステップと、
データ通信のコンテキストに基づいて解析を実行しデータ通信はデータ漏洩候補であると判断するステップと、
データ通信を暗号化し、ホストが暗号化したデータ通信を企業におけるソフトウェアエージェントに与えるステップと、
ソフトウェアエージェントが暗号化した企業情報のデータベースと、ホストが暗号化しソフトウェアエージェントが再度暗号化したデータ通信とを受信するステップと、
再度暗号化したデータ通信の、ホストが暗号化したアスペクトを解読することにより、ソフトウェアエージェントが暗号化したデータ通信を生成するステップと、
マッチング動作を実行し、暗号化した企業情報のデータベースと、ソフトウェアエージェントが暗号化したデータ通信との間に、一致があるか否かを判断するステップと、
一致があると判断した場合、一致をソフトウェアエージェントに報告するステップと、
一致がないと判断した場合、ホストがアクションを実行するステップとを含む。
【０１１３】
例１１：マッチング動作を実行するステップは、機密保持共通集合アルゴリズムを適用するステップを含む、例１０に記載のコンピュータによって実現される方法。
【０１１４】
例１２：ホストは、データ通信を部分的に暗号化し、データ通信のうちの暗号化されていない部分を平文として残し、部分的に暗号化したデータ通信と平文とをソフトウェアエージェントに与える、例１０または１１に記載のコンピュータによって実現される方法。
【０１１５】
例１３：ホストが解析を実行しデータ通信はデータ漏洩候補であると判断するステップは、ブルームフィルタを適用してデータ通信はデータ漏洩候補であると判断するステップを含む、例１０〜１２のいずれかに記載のコンピュータによって実現される方法。
【０１１６】
例１４：ソフトウェアエージェントを有する企業からのデータ漏洩を検出する、コンピュータによって実現される方法であって、この方法は、
企業のファイアウォールの外部のホストから、企業に関連するユーザデバイスのオンラインアカウントに由来する、ホストが暗号化したデータ通信を受信するステップと、
共通暗号化キーを用いて、企業情報のデータベースを暗号化し、ホストが暗号化したデータ通信を再度暗号化するステップと、
暗号化した企業情報のデータベースと再度暗号化したデータ通信とをホストに与えるステップと、
暗号化した企業情報のデータベースと再度暗号化したデータ通信との間に一致があることを示す報告をホストから受信するステップと、
第１のアクションを実行するステップとを含む。
【０１１７】
例１５：ソフトウェアエージェントにおける暗号化は、オンラインアカウントに由来するデータ通信をホストが暗号化するときに使用したキーと異なるキーを用いて実行され、ホストにおける暗号化は、ソフトウェアエージェントの共通暗号化キーと異なるキーを用いて実行される、例１４に記載のコンピュータによって実現される方法。
【０１１８】
例１６：ソフトウェアエージェントがノイズを暗号化したデータベースに追加し、ノイズが追加された暗号化したデータベースをホストに送信するステップをさらに含む、例１４または１５に記載のコンピュータによって実現される方法。
【０１１９】
例１７：ソフトウェアエージェントが、ホストが暗号化したデータ通信の再暗号化中に、ホストが暗号化したデータ通信の値を並び替えるステップをさらに含む、例１４〜１６のいずれかに記載のコンピュータによって実現される方法。
【０１２０】
例１８：ソフトウェアエージェントによる第１のアクションは、データ通信を削除すること、データ通信を隔離すること、および、データ通信を警告とともに受信者に送信することのうちの、少なくとも１つを含む、例１４〜１７のいずれかに記載のコンピュータによって実現される方法。
【０１２１】
例１９：企業のファイアウォールの外部のホストにおいてデータ漏洩を検出するためのシステムであって、システムは、
企業のファイアウォールの外部のホストを備え、ホストは、ハードウェアプロセッサを含み、コンピュータ読取可能な媒体に格納された、実行可能な命令を有し、ホストにおける命令は、
企業に関連するユーザデバイスのオンラインアカウントに由来するデータ通信を受信することと、
データ通信のコンテキストに基づいて解析を実行しデータ通信はデータ漏洩候補であると判断することと、
データ通信を暗号化し、ホストが暗号化したデータ通信を企業におけるソフトウェアエージェントに与えることと、
ソフトウェアエージェントが暗号化した企業情報のデータベースとホストが暗号化しソフトウェアエージェントが再度暗号化したデータ通信とを受信することと、
再度暗号化したデータ通信の、ホストが暗号化したアスペクトを解読することにより、ソフトウェアエージェントが暗号化したデータ通信を生成することと、
マッチング動作を実行し、暗号化した企業情報のデータベースと、ソフトウェアエージェントが暗号化したデータ通信との間に、一致があるか否かを判断することと、
一致があると判断した場合、一致をソフトウェアエージェントに報告することと、
一致がないと判断した場合、ソフトウェアエージェントが第１のアクションを実行することとを含み、
企業は、ハードウェアプロセッサを含み、コンピュータ読取可能な媒体に格納された、実行可能な命令を有し、
企業のファイアウォールの外部のホストから、ホストが暗号化したデータ通信を受信することと、
共通暗号化キーを用いて、企業情報のデータベースを暗号化し、ホストが暗号化したデータ通信を再度暗号化し、ソフトウェアエージェントが暗号化したデータベースと再度暗号化したデータ通信とをホストに与えることと、
暗号化した企業情報のデータベースとソフトウェアエージェントが暗号化したデータ通信との間に一致があることを示す報告をホストから受信することと、
第２のアクションを実行することとを含む。
【０１２２】
例２０：ソフトウェアエージェントにおける暗号化は、オンラインアカウントに由来するデータ通信をホストが暗号化するときに使用したキーと異なるキーを用いて実行され、ホストにおける暗号化は、ソフトウェアエージェントの共通暗号化キーと異なるキーを用いて実行される、例１９に記載のシステム。
【０１２３】
例２１：１以上のコンピュータに例１〜１８のいずれか１つに記載の方法を実行させるためのプログラム。
【０１２４】
例２２：例２１に記載のプログラムが格納された非一時的なコンピュータ読取可能な記録媒体。
【図１】
0006506884.tif 000002
【図２】
0006506884.tif 000003
【図３】
0006506884.tif 000004
【図４】
0006506884.tif 000005
【図５】
0006506884.tif 000006
【図６】
0006506884.tif 000007
【図７】
0006506884.tif 000008
【図８】
0006506884.tif 000009