(58)【調査した分野】(Int.Cl.,DB名)
前記ソフトウェアエージェントが、ノイズを前記暗号化したデータベースに追加し、前記ノイズが追加された暗号化したデータベースを前記ホストに送信するステップをさらに含む、請求項1から3のいずれか1項に記載のコンピュータによって実現される方法。
【発明を実施するための形態】
【0025】
詳細な説明
本明細書に記載の主題は実装例によって教示される。明確にするため、かつ主題が曖昧にならないようにするために、さまざまな詳細事項の説明は省略している。以下に示す例は、機密性を保持しつつデータ損失を検出するためのシステムおよび方法を実現するための構造および機能に関する。
【0026】
実装例の側面は、クライアント(たとえば小売業者等の企業または政府機関)が、当該クライアントのユーザに関連する機密情報が漏洩した(たとえば盗まれた)か否かを判断できるようにすることに関する。たとえば、データ漏洩は大規模なデータ漏洩(たとえば何百万ものアカウント)である場合がある。判断はホストによって行なわれるが、このとき、クライアントはホストに機密情報を明かさない。また、ホストは、クライアントに提供される予定の判断プロセスから得た機密性があるかもしれない情報を提供しない。
【0027】
たとえば、限定される訳ではないが、実装例は、企業等のオンラインエンティティであるクライアントと、機密情報を当該企業に提供したユーザとを含み得る。たとえば、企業はオンライン小売業者であってもよく、ユーザは、クレジットカード、デビットカード、モバイルデバイス決済システム、または当業者が理解するであろうその他の決済方法等の電子決済を用いてオンライン小売業者のウェブサイトから買い物をする顧客であってもよい。代わりに、企業は代理店(たとえば税金、自動車、医療)であってもよく、ユーザは、機密情報(たとえば、社会保障番号、運転免許証情報、保険アカウント番号、健康状態)を含むオンライン取引を当該代理店との間で行なう個人であってもよい。クライアントは、ホストが提供するオンラインホスティングサービス(たとえばクラウドコンピューティングまたはオンラインアプリケーションプラットフォーム)のユーザであってもよい、または、クライアントはオンラインホスティングサービスのユーザでなくてもよい。
【0028】
この実装例において、ホストは、ホストに関連するデータ(たとえば文書)に含まれるクライアントの機密情報のオンライン検索を実行するエンジンを含む。ホストに関連するデータは、内部データ(たとえばクラウドベースのサービスに格納されクライアントに対応付けられる)であっても、外部データ(たとえばオンラインでありインターネット上で公的に入手可能)であってもよい。たとえば、入手できるオンラインデータのウェブスイープを、クライアントまたはホストに対応付けられている場所に限定することなく実行して、コンテキストアウェア型のパターンマッチングを実行することにより、データ漏洩イベントを示すインターネット上の場所(たとえばURL)における機密性がある可能性がある情報を検出してもよい。実装例において、データ漏洩を引起した当事者(たとえばハッカー等のトラブルメーカー)の正体はわからない場合があり、漏洩を引起した可能性がある当事者に関する情報も入手できない場合がある。
【0029】
さらに、クライアントは、当該クライアントの安全な環境(ホストの安全なオンライン環境を含む)において実行されるエージェントを含む。エージェントは、以下で詳細に説明するように、安全な共通集合プロトコルを容易にするように動作可能である。同様に、ホストも、安全な共通集合プロトコルを容易にするコンポーネントを含む。また、ユーザインターフェイス(user interface:UI)を提供することにより、クライアントが、情報(たとえば機密情報を保護するための設定)を提供し、判断結果(たとえばデータ漏洩またはデータ盗難情報)をユーザに提供することができるようにする。
【0030】
実装例のその他の側面は、データの漏洩、損失、または過度の共有を検出および/または防止するためのシステムおよび方法に関し、これは、保護対象の当事者からの協力のもとで行なわれる標準的なパターンマッチングおよびコンテキストアウェア機密情報検出を含む。上記システムおよび方法は、自動機密防止手法によって実行される。限定される訳ではないが、たとえば、この例のシステムおよび方法は、機密保持共通集合アルゴリズム(privacy preserving set intersection algorithm)を含む暗号法を用い得る。アルゴリズムは機密保持共通集合アルゴリズムに限定されない。より具体的には、機密保持共通集合アルゴリズムは、異なる当事者に属する2つ(以上)のデータ集合の共通部分を、いずれの当事者も他の当事者の全データ集合の知識を得ることなく、求めることを可能にする、アルゴリズムまたは方法であってもよい。
【0031】
関連技術において、第1の企業Aが、データ漏洩検出サービス(たとえば、限定される訳ではないが、企業Bに関連する法人クレジットカード番号等の機密データの損失を明らかにする)の提供を希望するとする。企業Aは、企業B(たとえば企業Bのユーザまたはアカウントホルダ)に関連する機密情報のように見えるインターネット上の情報を検出することができるかもしれない。しかしながら、インターネット上で入手できる情報は、機密情報ではない情報(たとえばノイズ)も含む。
【0032】
企業Aが判別したクレジットカード番号および/または社会保障番号等の情報の不正漏洩は、企業Bに提供された場合、個人的な機密情報を企業Bに対して暴露することになる。企業Bは、上記問題に対する対策として、検出すべき法人クレジットカード番号のデータベースを企業Aに提供するものの、このような行動は、企業Bの秘匿情報を企業Aに対して暴露することになる。
【0033】
実装例に従い、機密保持共通集合プロトコルが使用される。上記例において、企業Aは、暗号化された結果を企業Bと共有するだけであり(たとえばキーは共有しない)、企業Bは、暗号化された法人カード番号を企業Aと共有するだけであり、そのキーは共有しない。機密保持共通集合プロトコルの実装次第で、結果は、どちらの集合にも存在する要素の数、どちらの集合にも存在する要素そのもののリスト、および/または要素のソースに関連する情報である(たとえば、企業Aが検索プロセスにおいて当該情報を発見した第三者ウェブサイトの統一資源指定子(URL)であり、この第三者ウェブサイトはオンラインで表示または販売される盗まれた機密情報のソース)。
【0034】
このため、これらの集合自体はどちらの当事者にも暴露されない。その結果、ウェブスイープおよび発見したものに対するパターンマッチングに関連する実際の情報が企業Bに報告されることはないので、個々のユーザおよび企業Aの機密性は保持され、法人カードデータベースは企業Aと共有されないので、企業Bの機密性も保持される。
【0035】
上記単純なプロトコルを実現するユースケースの一例は次の通りである。本明細書では特定のデータおよびコンテキストが説明のために提供されるが、本実装例はこれに限定される訳ではなく、発明の範囲から逸脱することなくその他のデータおよび/またはコンテキストが代わりに使用されてもよい。さらに、クレジットカード番号が説明のために使用されるが、実装例はこれに限定される訳ではなく、代わりに、機密性が保持されるべきその他の機密データが使用される場合もあり、これは、限定される訳ではないが、アカウント識別子、政府発行アカウント(たとえば運転免許証または社会保障番号情報)、またはその他の機密情報を含むことが、当業者には理解されるであろう。
【0036】
第1の動作において、企業A(たとえばホスト)は、インターネットの解析を実行し、機密データのように見える番号を探す。たとえば、企業Aは、すべてのクレジットカードのような番号または社会保障番号のような番号を求めてインターネットの検索を実行してもよい。
【0037】
解析の結果、第三者ウェブサイトから、2つのクレジットカード番号候補として1111および2112が特定される。この状況は、第三者がオンライン情報に不正にアクセスした結果、または、個人が機密情報にアクセスして機密データを第三者に提供した結果生じた状況である。このように、機密情報が漏洩しておりインターネット上で入手できるようになっている。したがって、企業Aのウェブスイープにより、データ漏洩情報候補が特定されコンパイルされる。
【0038】
次に、企業Aは、データ漏洩情報候補のメンバー各々をキーAを用いて暗号化することにより、A(1111)、A(2111)を生成し、暗号化したデータ漏洩情報候補を、A(1111)、A(2111)として企業Bに送信する。このように、企業Bは、データ漏洩情報候補の値を受信するのではなく、暗号化された値のみを受信する。結果として、企業Bは、データ漏洩を含み得るクレジットカード番号候補を(キーAを用いて)暗号化したものを受信することになる。
【0039】
したがって、企業B(たとえばクライアント)は、その法人カード番号(たとえば2111、2112および2113)のデータベースを取出し、このデータベース内の情報を、交換特性を有する暗号文を用い、キーBで暗号化することにより、B(2111)、B(2112)、B(2113)を生成する。よって、企業Bは、企業Aに対し、B(2111)、B(2112)、B(2113)という結果を送信する。このように、企業Aは、クレジットカード番号の実際の(たとえば平文)IDを受信するのではなく、クレジット番号を暗号化したものだけを受信する。加えて、企業Bはまた、B(A(1111))、B(A(2111))のように、企業Aから受信した、暗号化されたデータ漏洩情報候補を、キーBを用いて暗号化し、その結果を企業Aに送信する。
【0040】
B(2111)、B(2112)、B(2113)、およびB(A(1111))、B(A(2111))を受信した後、企業Aは、自身の暗号文を二重暗号化要素B(A(1111))およびB(A(2111))から取除くことにより、B(1111)およびB(2111)を生成する。次に、企業Aは、キーAについて解読(復号)した要素(たとえばB(1111)およびB(2111))を、企業Bから受信した要素(たとえば(B(2111)、B(2112)、B(2113))と比較することができる。この比較に基づいて、企業Aは、B(1111)は両方の集合に存在しておらずB(2111)は両方の集合に存在していると判断する。言い換えると、このクレジットカード番号(2111)は、ウェブスイープ中に検出した企業Aの検索結果にも、企業Bのアカウントのデータベースにも存在するのに対し、企業Bのデータベース内のその他のクレジットカード番号(2112)および(2113)は企業Aの検索結果にはない。企業Aの検索結果は(1111)を含むが、これは企業Bに関連するクレジットカード番号ではない。
【0041】
上記比較および一致する値の判定が完了すると、企業Aは、企業Bに対し、「ヒット」の数、暗号化された値そのもの(この場合はB(2111)およびB(2112))、または、データ漏洩情報候補が発見されたURLまたは関連するメタデータ等の他の情報を、提供する。企業Aは、ウェブスイープを定期的に(たとえば毎日)実行するので、このURLに関連する過去のデータ漏洩情報候補に関する履歴も企業Bに報告し得る。ヒットがない場合、それは、企業Bにはデータ漏洩の可能性がないことを示す。ヒットがある場合、それは、企業Bにはデータ漏洩の可能性があることを示し得る。スイープが定期的に(たとえば毎日)実行される場合、傾向の観察およびデータ解析を実行するのに企業Bが使用できる履歴データを作成することができる。
【0042】
傾向分析により、データ漏洩を間接的に示してもよい。たとえば、限定される訳ではないが、機密情報の部分集合(たとえばカード番号のうちのいくつか)が過去において既に漏洩している場合があり、そうすると、必ずしも新たな漏洩によってオンライン漏洩機密データすべて(たとえばカード番号すべて)が暴露される訳ではないかもしれない。加工されていないヒットの数値との比較によって傾向分析を実行することにより、漏洩イベント検出を改善してもよい。
【0043】
たとえば、限定される訳ではないが、クライアント(たとえば企業)がそのデータベースにおいて100万個のアカウント番号を有する場合があり、履歴平均で毎日わずか5個のアカウント番号がオンラインで暴露されているとホストが判断する場合がある。しかしながら、特定の日に、15個のアカウント番号がオンラインで暴露されホストによって検出される場合がある。このような履歴傾向からの逸脱は、機密情報のデータ漏洩の可能性を示し得る。
【0044】
代わりに、ホストによって検出される特定のアカウント番号は、所定の日に検出されるアカウント番号の総数が同一であったとしても、異なる場合がある。この例において、一日平均の履歴傾向として、1日当たり5個のアカウント番号が検出される場合、これら5個のアカウント番号のうちの1つ以上が繰返される場合がある。所定の日において、検出された5個のアカウント番号の実際の番号が、検出されたアカウント番号の履歴傾向と異なる場合がある。これに代えて、平均5個のアカウント番号がホストによって検出され、この5個の番号が繰返される場合がある。しかしながら、これらの日のうちの1日において、検出された5個の番号が、繰返される5個の番号と異なる場合、このような履歴傾向からの逸脱は、機密情報のデータ漏洩の可能性を示唆し得る。
【0045】
企業Bは、暗号キーBを有しているので、企業Aがデータ漏洩情報候補として特定したクレジットカード番号が(2111)を含むと判断することができる。しかしながら、企業Aは、企業Bの法人カード番号のデータベースを持っておらずこれを判断できない。また、企業Bは、企業Aが提供する、企業Bの法人カード番号と一致しない暗号化結果に関する実際の情報を持っていない。
【0046】
上記例のユースケースは、その他の選択的側面を含み得る。たとえば、発見物の特定の特徴のみ(たとえばクレジットカード番号の最後の4桁)を、企業Aから企業Bに送信することにより、カード番号のデータベース全体を暗号化して送信することを不要にしてもよい。さらに、企業Aによりランダムノイズを発見物に追加することで、企業Aから企業Bへの情報漏洩を防止してもよい。加えて、要素の順序を調整することにより、企業Aが、どの発見物が法人カードを表わしているかを判断できないようにしてもよい。別の代替実装例に従うと、特に、ホストが検出しホスト側のキー(たとえばキーA)を用いて暗号化した形態でクライアントに送られたデータ漏洩候補に、実質的に大量の機密情報が含まれている場合、クライアントはブルームフィルタ(Bloom filter)を用いてもよい。
【0047】
なお、これらの実装例では不要であるが、企業Aは、企業Bのために任意で1つ以上のオンラインサービスをホストしてもよい、または、より一般的に企業Bのためのホスト(たとえばクラウドサービスプロバイダ)であってもよく、したがって、サービス、アプリケーション、およびデータをホストしてもよい(たとえば企業Aは企業Bのためのクラウドホスト)。しかしながら、このような環境でさえ、企業Aは、企業Bの「ファイアウォール」の内部にあると考えられる企業Bの情報にアクセスすることはできない。たとえば、限定される訳ではないが、企業Aが企業Bをホストしているときに、ある暗号化手法を用いて企業Bのためのファイアウォールを作成してもよい。
【0048】
図1は、ある実装例に従うシステム100を示す。より具体的には、クライアント101(たとえば企業であるが企業に限定されない)とホスト103(たとえばサービスプロバイダであるがサービスプロバイダに限定されない)とが、インターネット105等のネットワークを介して結合される。ホスト103は、ホストサーバ107と、コンテキストアウェア・パターンマッチング109と、機密保持共通集合比較器111と、暗号化/解読エンジン113と、アクションルール115とを含む。クライアント101は、エージェント117と、クライアント情報119と、暗号化/解読エンジン121と、アクションルール123とを含む。ホスト103は、クライアント101のファイアウォールの内側に存在していない。このプロトコルに従うと、動作のうちの一部はクライアント101におけるエージェント117によって実行され、その他の動作はホスト103におけるホストサーバ107によって実行される。加えて、クライアント101が許可していない第三者125が、ハッキング等の不正データ漏洩活動を行ない、クライアント101の機密情報を取得したとえば公開するおよび/または販売する等によりこの情報をインターネット105上で入手できるようにする場合がある。
【0049】
システム100において、インターネット105上で公的に入手できる情報は、ホスト103のホストサーバ107によって定期的に(たとえば毎日であるが毎日に限定されない)スキャンされる。たとえば、限定される訳ではないが、ホストサーバ107は、周知のウェブスイープ方法を実行することにより、機密情報と思われる情報を特定する。たとえば、限定される訳ではないが、ホストサーバ107は、コンテキストアウェア・パターンマッチング109を用いて、インターネット上の情報に対してコンテキストベースの解析を実行することにより、漏洩情報の候補を探す。たとえば、限定される訳ではないが、コンテキストアウェア・パターンマッチング109は、パターン(たとえば連続文字の一部またはすべてにおける連続する文字または値の数)を探そうと試みてもよい。任意で、ホスト103は、上記ブルームフィルタを適用して解析を実行することにより、漏洩情報候補を発見してもよい。
【0050】
ホストサーバ107がコンテキストアウェア・パターンマッチング109を用いて実行したウェブスイープによって判断された漏洩情報候補に対し、暗号化/解読エンジン113を用いて、ホスト103にあるキーに基づいてこの漏洩情報候補を暗号化する。ホスト103にあるキーはクライアント101には与えられない。次に、ホスト107は、暗号化された漏洩情報候補をクライアント101のエージェント117に与える。
【0051】
エージェント117は、暗号化された漏洩情報候補を受信すると、暗号化/解読エンジン121を適用することにより、受信した、一度暗号化された漏洩情報候補に対して二度目の暗号化を実行し、クライアント情報119(たとえばクライアント情報のデータベース)も暗号化する。エージェント117は、クライアント情報119にアクセスでき、クライアント101の環境(たとえばホスト103または別のホストによってホストされるクライアント101のクラウド空間)の中に存在している。暗号化/解読エンジン121は、クライアント101にありホスト103に与えられない異なるキーを用いる。エージェント117は、二度暗号化された漏洩情報候補と、暗号化されたクライアント情報とを、インターネット105等のネットワークを介してホスト103に送信する。本明細書全体において、「再度暗号化」、「二度暗号化」、および「二重暗号化」という用語は、同義の用語として使用される。
【0052】
ホストサーバ107は、二度暗号化された漏洩情報候補と、暗号化されたクライアント情報とを受信すると、二度暗号化された漏洩情報候補に対し、暗号化/解読エンジン113を介して解読(復号)動作を実行することにより、最初に適用した暗号化を取除く。結果として、いずれもクライアント101によって暗号化された、暗号化漏洩情報候補および暗号化クライアント情報は、ホスト103に残る。
【0053】
次に、ホストサーバ107は、機密保持共通集合比較器111を適用することにより、暗号化された漏洩情報候補および暗号化されたクライアント情報の値に対してマッチング動作を実行する。
【0054】
マッチング動作の結果、一致があると判断した場合、ホストサーバ107は、一致の数、一致する暗号化された漏洩情報候補、および/またはデータ漏洩候補のソースに関連する情報(たとえばURLおよび関連するメタデータ)を含む報告を、クライアント101のエージェント117に与える。エージェント117は、アクションルール123を適用することにより、実行すべきアクションを決定する。これについては以下で詳述する。マッチング動作の結果、一致がないと判断した場合は、アクションルール115が適用され、ホスト103がアクションを実行する。これについては以下で詳述する。
【0055】
上述のように、ソフトウェアエージェント117は、ホストが暗号化したデータ通信を受信したことに応じて、共通の暗号化キーを用いることにより、企業情報のデータベースを暗号化し、ホストが暗号化したデータ通信を再度暗号化し、ソフトウェアエージェントが暗号化した企業のデータベースと再度暗号化したデータ通信とを、ホスト103に与えてもよい。ホストは、再度暗号化されたデータ通信のうちの、ホストが暗号化したアスペクトを解読することにより、ソフトウェアエージェントが暗号化したデータ通信を生成し、マッチング動作を実行することにより、暗号化された情報のデータベースと、ソフトウェアエージェントが暗号化したデータ通信との間に一致があるか否かを判断してもよい。
【0056】
一致があると判断した場合、ホスト103は報告をソフトウェアエージェント117に与えてもよく、ソフトウェアエージェント117はこの報告に基づいて第1のアクションを実行してもよい。先に説明したように、この報告は、一致の数、一致する暗号化された漏洩情報候補、および/またはデータ漏洩候補のソースに関連する情報(たとえばURLおよび関連するメタデータ)を含み得る。
【0057】
ソフトウェアエージェント117によるアクションは、一致の数を検査することを含み得る。一致の数がしきい値を上回る場合は、データ漏洩イベントが発生したと判断する。しかしながら、この検査は、一致の数がしきい値を上回るか否かの判断に限定される訳ではなく、その他の解析手法を、代わりに使用してもよく、または上記検査との関連で使用してもよい。
【0058】
たとえば、限定される訳ではないが、一致の数をしきい値と比較する代わりに(またはそれに加えて)、一致の数を、解析期間の全履歴における一日当たりのヒット数の履歴平均と、または、その何らかの部分集合(たとえば、過去の日数、週の数もしくは月の数、曜日、月、もしくは年平均、または、当業者が理解するであろうその他の部分集合)と比較してもよい。
【0059】
さらに、別の実装例に従うと、解析を、一致の数以外の情報について実行してもよい。たとえば、同一の漏洩機密情報を公開する、ホストが検出したサイト(たとえばURL)の数、または、同一の漏洩機密情報を公開する、ホストが検出したサイトの数の変化は、機密情報の漏洩を示す情報を提供し得る。このような情報は、執行機関および/またはクライアント等による、データ漏洩の調査に、役立つ場合がある。
【0060】
ソフトウェアエージェント117は、自動的におよび/またはマニュアル検討ステップに基づいて、関連機関(たとえばクレジットカード関連企業、銀行、法執行機関、ライセンス発行機関、または当業者が理解するであろうその他の機関)に対し警告を生成して与えてもよい。さらに、クライアント101のアドミニストレータに対し、漏洩が発生している可能性があることを警告してもよい。しかしながら、本実装例はこれに限定される訳ではなく、当業者が理解するであろう、データ漏洩に応じたその他のアクションを、発明の範囲から逸脱することなく、代わりに用いてもよい。
【0061】
一致はないと判断した場合、ホスト103は、第2のアクションを実行してもよい。ホスト103による第2のアクションは、ソフトウェアエージェント117に対して報告を提供しないことを含み得る。
【0062】
先に述べたように、クライアント101(たとえば企業)におけるソフトウェアエージェントには、ホスト103がデータ漏洩情報候補を暗号化するのに使用するキーは提供されず、ホスト103には、ソフトウェアエージェント117の共通暗号化キーは提供されない。
【0063】
ある実装例に従うと、ホスト103は、データ通信を部分的に暗号化してもよく、当該データ通信のうちの暗号化されていない部分を、平文として残す。さらに、ホスト103は、部分的に暗号化したデータ通信と平文とを、ソフトウェアエージェントに与えてもよい。結果として、処理の必要事項を低減することができる。なぜなら、すべての漏洩情報候補の全ストリングを暗号化しホスト103とクライアント101との間で送信し解読(復号)する必要はないからである。
【0064】
先に述べたように、ソフトウェアエージェント117は、暗号化したデータベースにノイズを追加し、暗号化したデータベースをこのノイズとともにホスト103に送信してもよい。同様に、ソフトウェアエージェント117は、ホストによって暗号化されたデータ通信の再暗号化中に、ホストによって暗号化されたデータ通信における値を並べ替えてもよい。このような手法を採用することで、ホスト103がデータベースの実際のコンテンツに関する情報を取得することは、特にサンプルサイズが小さい場合、より難しくなるであろう。
【0065】
上記実装例は、さまざまなエンティティに適用することができ、さまざまな環境で使用することができる。この実装例の用途の種類の例を以下に示す。しかしながら、これらの実装例は限定を意図している訳ではなく、当業者が理解するであろうその他の環境を代わりに用いてもよい。
【0066】
たとえば、限定される訳ではないが、上記実装例は、オンライン取引(たとえば小売商品および/またはサービスの、オンラインユーザによるクレジットカード購入)を実行する消費者小売業者に適用されてもよい。このオンライン取引に関連する機密情報は、限定される訳ではないが、クレジットカード情報、銀行口座情報、およびユーザに関連するオンライン情報(たとえばユーザプロフィール、パスワード、人口統計情報、ユーザの購入嗜好等)を含み得る。
【0067】
加えて、本実装例は、個人情報窃盗関連業者等のオンラインエンティティに適用されてもよい。この実装例に従うと、個人情報窃盗関連業者は、その顧客に関連するデータをマッチングすることにより、オンラインアカウント窃盗の検出を支援する。個人情報窃盗関連業者のオンライン顧客は、限定される訳ではないが、ユーザ選択情報(たとえばクレジットカード番号、社会保障番号、電話番号、銀行口座情報、国際携帯機器識別(International Mobile Equipment Identity:IMEI)番号等のユーザ機器情報)の保護を個人情報窃盗代理業者に要求するユーザを含み得る。
【0068】
さらに、本実装例は、オンライン企業環境等のオンラインエンティティの内部環境に適用されてもよい。たとえば、限定される訳ではないが、組織は、この実装例を用いることにより、漏洩している可能性がある内部情報を求めて、機密を保持しながらオンライン検索を実行することができる。このような情報は、限定される訳ではないが、企業秘密、内部プロジェクト名もしくはプロジェクトコード、またはその他の機密情報を含み得る。
【0069】
また、本実装例は、オンラインアプリケーション開発者に適用されてもよい。オンラインアプリケーション開発者は、ユーザと対話するオンラインアプリケーションのためのバックエンドを有し得る。たとえば、限定される訳ではないが、オンラインゲームのコンテキストにおいて、バックエンドは、ユーザのID、スコアおよびパフォーマンスに関する情報を収集してもよく、秘密にしておくことをオンラインユーザがアプリケーション開発者に対して希望し得る統計を含み得る。オンラインユーザは、このような情報だけでなく、購入パターン、使用パターンおよびその他のオンラインユーザ情報に関連する情報を秘密にしておくことを希望する場合がある。
【0070】
この実装例はまた、ホストがインターネットのウェブスイープを実行し2つ以上の企業に対してその結果と報告とを提供する状況を含み得る。このような状況において、各企業は、報告の内容に関してホストとの間に独自の契約を有する場合がある。たとえば、ある企業は一致の数のみを要求し、別の企業は一致の数だけでなくデータ漏洩のソースURLに関する情報も要求する場合がある。ホストは、報告の内容に関して企業が更新できるルールまたはルールベースを用いてもよい。さらに、企業は、ホストから企業に提供されたデータに対して診断を実行してもよい。たとえば、ホストは、企業のデータベースに含まれる総ヒット数の割合を企業に知らせて、企業が当該企業に関連するデータ漏洩の割合を求めることができるようにしてもよい。そうすると、企業は、ホストが提供する解析情報に対し、フィルタ処理を適用するかまたはその他の診断を実行してもよい。また、ホストは、過去のウェブスイープに基づく履歴データを含む診断情報の詳細な視覚表示を企業に提供するダッシュボードスタイルのインターフェイスを企業に提供してもよい。
【0071】
図2は、上記実装例に係る一例としてのユースケース200を示す。201において、上記実装例および以下で説明し
図3〜6に記載されているプロセスを実現するプロバイダは、インターネットの検索(たとえばウェブスイープ)の結果として、値「1111」および「2111」を有するアカウント番号候補を発見している。
【0072】
203において、クライアント企業は、値「2111」、「2112」および「2113」を含む法人番号のデータベースを有する。203において、クライアント企業は、201におけるプロバイダの上記情報を与えられておらず、201におけるプロバイダも203におけるクライアント企業の上記情報を与えられていない。
【0073】
205において、プロバイダは、アカウント番号候補をキーAで暗号化し、暗号化した値A(1111)、A(2111)をクライアント企業に与える。207において、クライアント企業は、その法人番号のデータベースにおける値を、キーAと異なるキーBで暗号化し、暗号化した値B(2111)、B(2112)、B(2113)をプロバイダに与える。加えて、クライアント企業は、暗号化されたアカウント番号候補A(1111)、A(2111)をキーBを用いて暗号化し、その結果B(A(1111))、B(A(2111))をプロバイダに与える。
【0074】
209において、プロバイダは、キーAの暗号化を取除くことにより、B(1111)、B(2111)を得る。次に、プロバイダは、これらの値B(1111)、B(2111)と、暗号化された法人番号B(2111)、B(2112)、B(2113)との共通部分を発見する。プロバイダは、クライアント企業に対し、一致の数、共通部分B(2111)のような一致する暗号化漏洩情報候補、および/またはデータ漏洩候補のソースに関連する情報(たとえばURLおよび関連するメタデータ)を含む報告を、送信する。クライアント企業は、B(2111)を解読(復号)し、したがって、2111が関連するアカウント番号であると判断することができる。
【0075】
図3は、システム100のある実装例に係るプロセス300を示す。301において、オンライン情報のプールの検索を実行することにより、漏洩情報の候補を取得する。たとえば、限定される訳ではないが、インターネットのウェブスイープを実行することによりこの情報を取得してもよい。303において、301の取得動作の結果を受けると、これを、ウェブスイープの結果に対して実行されるコンテキストアウェア・パターンマッチング(たとえばコンテキストに基づく解析)のために提供することにより、漏洩情報候補を探す。たとえば、このコンテキストは、上記のように漏洩情報の候補であるオンラインデータのコンテキストにおけるクレジットカード番号のことであり、コンテキストアウェア・パターンマッチングは、パターン(たとえばクレジットカード番号を示し得る連続文字の一部またはすべてにおける連続する文字または値の数)を探そうと試みてもよい。代わりに、本実装例は、ユーザと対話するオンラインアプリケーションのためのバックエンドを有するオンラインアプリケーション開発者のコンテキストに適用されてもよく、このバックエンドは、オンラインアプリケーションのコンテキストにおいて、ユーザのID、スコアおよびパフォーマンス関する情報、ならびに秘密にしておくことをオンラインユーザがアプリケーション開発者に対して希望し得る統計を収集し得る。さらに、漏洩の可能性がある情報の候補であるコンテキストは、機密性を保つべき、購入パターン、使用パターン、およびその他のオンラインユーザ情報を含み得る。しかしながら、実装例はこれらに限定される訳ではなく、アカウントID,政府発行アカウント(たとえば運転免許証もしくは社会保障番号情報)、または当業者が理解するであろうその他の機密情報を含むがこれらに限定されない、機密が保護されるべきその他の機密データが代わりに対象とされてもよい。
【0076】
305において、出力データの中において漏洩情報候補が発見されない場合、このプロセスは終了する(たとえば、ホストは、ウェブスイープに基づいて、インターネット上に機密データの漏洩はないと判断)。305において、ウェブスイープ結果が漏洩情報候補を含むと判断した場合、このプロセスは307に進む。
【0077】
307において、漏洩情報候補は、ホストにありクライアントに与えられないキーに基づいて暗号化され、暗号化された漏洩情報候補はクライアントに与えられる。たとえば、309において、エージェント(たとえば、クライアントのために命令を実行するクライアントのソフトウェアプログラム)が、暗号化された漏洩情報候補を受信してもよい。
【0078】
311において、エージェントは、キーを用いて、受信した、一度暗号化された漏洩情報候補に対して二度目の暗号化を実行し、クライアント情報(たとえばクライアント情報のデータベース)も暗号化する。エージェントが使用するキーは、ホストには与えられないので、ホストは、エージェントが暗号化した内容を解読(復号)できない。また、311において、エージェントは、二度暗号化した漏洩情報候補と暗号化したクライアント情報とをホストに与える。
【0079】
313において、ホストは、二度暗号化された漏洩情報候補と、暗号化されたクライアント情報とを受信し、解読動作を実行することにより、二度暗号化された漏洩情報候補に最初に適用された暗号化を取除く。
【0080】
315において、暗号化された漏洩情報候補および暗号化されたクライアント情報の値に対し、マッチング動作が(たとえば機密保持共通集合比較器によって)実行される。
【0081】
317において、1つ以上の一致が発見されたか否かが判断される。317におけるマッチング動作の結果、一致が存在すると判断された場合、319において、ホストは、一致の数、一致する暗号化された漏洩情報候補、および/またはデータ漏洩候補のソースに関連する情報(たとえばURLおよび関連するメタデータ)を含む報告を、エージェントに与え、エージェントは、上述のように、実行すべきアクションを判断する。317において、マッチング動作の結果一致が存在しないと判断された場合、321において、上述のようにホストは任意でアクションを実行する。
【0082】
図4は、ホスト103の実装例に係るプロセス400を示す。401において、情報のプールの検索を実行して漏洩情報候補を取得する。たとえば、限定される訳ではないが、インターネットのウェブスイープを実行してこの情報を取得してもよい。403において、401における取得動作の結果を受けると、この結果を、ウェブスイープの結果に対して実行されるコンテキストアウェア・パターンマッチング動作(たとえばコンテキストベースの解析)のために与えて漏洩情報候補を探す。
【0083】
405において、出力データの中において漏洩情報候補が発見されない場合、このプロセスは終了する(たとえば、ホストはウェブスイープに基づいてインターネット上において機密データ漏洩はないと判断)。405において出力データが漏洩情報候補を含むと判断した場合、このプロセスは407に進む。
【0084】
407において、漏洩情報候補(たとえばインターネット上におけるデータの漏洩)を、ホストにありクライアントに与えられないキーに基づいて暗号化し、暗号化した漏洩情報候補をクライアント(たとえばクライアントにおけるエージェント)に与える。
【0085】
409において、ホストは、ホストが使用できないキーを用いて暗号化された、二度暗号化された漏洩情報候補と、暗号化された情報とを受信する。たとえば、限定される訳ではないが、エージェントは、キーを用いて、受信した、一度暗号化されば漏洩情報候補に対し、二度目の暗号化を実行してもよく、クライアント情報(たとえばクライアント情報のデータベース)も暗号化する。エージェントが使用するキーはホストには与えられないので、ホストはエージェントが暗号化した内容を解読(復号)できない。
【0086】
411において、ホストは、解読動作を実行することにより、二度暗号化された漏洩情報候補に最初に適用された暗号化を取除く。
【0087】
413において、暗号化された漏洩情報候補および暗号化されたクライアント情報に対し、(たとえば機密保持共通集合比較器によって)マッチング動作が実行される。
【0088】
415において、一致が発見されたか否かが判断される。415におけるマッチング動作の結果、一致が存在すると判断された場合、417において、ホストは、一致の数、一致する暗号化された漏洩情報候補、および/またはデータ漏洩候補のソースに関連する情報(たとえばURLおよび関連するメタデータ)を含む報告を、エージェントに与え、エージェントは、先に述べたように、実行すべきアクションを判断する。415におけるマッチング動作の結果、一致が存在しないと判断された場合、先に述べたように、419においてホストは任意でアクションを実行する。
【0089】
図5は、クライアント101の実装例に係るプロセス500を示す。501において、クライアントにおけるエージェントは、暗号化された漏洩情報候補をホストから受信する。エージェント、およびこの場合のクライアントは、漏洩情報候補の暗号化に使用されたキーにアクセスできないので、漏洩情報候補の実際の値を判断することはできない。
【0090】
503において、エージェントは、受信した、一度暗号化された漏洩情報候補に対し、キーを用いて二度目の暗号化を実行し、505において、エージェントは、クライアント情報(たとえばクライアント情報のデータベース)を暗号化する。エージェントが使用するキーはホストに与えられないので、ホストは、エージェントによって暗号化された内容を解読できない。
【0091】
507において、エージェントは、二度暗号化した漏洩情報候補と、暗号化したクライアント情報とをホストに与える。
【0092】
509において、エージェントは、一致の数、一致する暗号化された漏洩情報候補、および/またはデータ漏洩候補のソースに関連する情報(たとえばURLおよび関連するメタデータ)を含む報告を、ホストから受信し、エージェントは、先に述べたように実行すべきアクションを判断する。
【0093】
511において、エージェントは、上述のように、実行すべきアクションを判断する。
いくつかの例において、
図3〜
図5に示される上記プロセスは、異なる、より少ない、またはより多いブロックで実現されてもよい。プロセス300、400、および/または500は、媒体に格納され1以上のコンピューティングデバイスの1以上のプロセッサにロードされ、コンピュータによって実現される方法として実行されることができる、コンピュータによって実行可能な命令として、実現されてもよい。
【0094】
図6は、いくつかの実装例に適した環境の一例を示す。環境600は、デバイス605〜645を含み、各デバイスは、たとえばネットワーク660を介して(たとえば有線および/または無線接続により)少なくとも1つの他のデバイスに通信可能に接続される。いくつかの装置は、1以上の記憶装置630および645に通信可能に接続し得る。
【0095】
1以上のデバイス605〜645の一例は、それぞれ
図7および
図8にそれぞれ記載されているコンピューティングデバイス705および/または805であってもよい。デバイス605〜645は、限定される訳ではないが、コンピュータ605(たとえばラップトップコンピューティングデバイス)、モバイルデバイス610(たとえばスマートフォンまたはタブレット)、テレビ615、車両に関連するデバイス620、サーバコンピュータ625、コンピューティングデバイス635〜640、ならびに記憶装置630および645を含み得る。
【0096】
いくつかの実装例において、デバイス605〜620は、企業のユーザに関連するユーザデバイス(たとえば、ユーザが、企業のファイアウォールの内部で、たとえばソーシャルネットワーク上のサービスにアクセスするためおよび/またはたとえばソーシャルネットワーク上に要求を出すため、または個人のオンライン情報にアクセスするために使用するデバイス)とみなすことができる。デバイス625〜645は、(たとえば、外部ホストが、先に
図3〜
図5に関連して説明したサービスを提供するため、および/またはウェブページ、テキスト、テキストの一部、画像、画像の一部、音声、音声セグメント、映像、映像セグメント、および/またはそれに関する情報等のデータを格納するために使用する)サービスプロバイダに関連するデバイスであってもよい。
【0097】
たとえば、限定される訳ではないが、ユーザデバイス605または610を有する、企業の許可を受けていないユーザ(たとえばアリス)が、1以上のデバイス625〜645によってサポートされているネットワーク上で、不正に機密情報にアクセスし、これを閲覧し、および/または共有し、アリスがデータを企業内部から漏洩させる場合はユーザデバイス605または610を用いて、または別のユーザデバイス615を用いて、このような情報がインターネット上で入手できるようにする。ホストである受信者(たとえばボブ)は、
図3〜
図5に関連して先に述べたプロセスに従い、デバイス620を用いてアリスの共有機密情報(たとえば漏洩情報候補)にアクセスするおよび/またはこれを閲覧することができる。
【0098】
図7は、いくつかの実装例で使用される、外部ホストに関連するコンピューティングデバイスの一例とともに、コンピューティング環境の一例を示す。コンピューティング環境700内のコンピューティングデバイス705は、1以上の処理ユニット、コア、またはプロセッサ710、メモリ725(たとえばRAM、ROM、および/またはその他)、内部記憶装置720(たとえば磁気、光学、ソリッドステート記憶装置、および/または有機)、および/またはI/Oインターフェイス715を含み得る。これらのうちのいずれも、情報を伝達するために通信機構またはバス730に結合することができる、またはコンピューティングデバイス705に埋込むことができる。
【0099】
コンピューティングデバイス705は、入力/ユーザインターフェイス735および出力デバイス/インターフェイス740に、通信可能に結合することができる。入力/ユーザインターフェイス735および出力デバイス/インターフェイス740のうちのいずれか一方または双方は、有線または無線インターフェイスであってもよく、取外し可能であってもよい。入力/ユーザインターフェイス735は、入力を与えるために使用することができる、いかなる物理または仮想デバイス、コンポーネント、センサ、またはインターフェイスであってもよい(たとえばボタン、タッチスクリーンインターフェイス、キーボード、ポインティング/カーソルコントロール、マイク、カメラ、点字、モーションセンサ、光学読取装置および/またはその他)。出力デバイス/インターフェイス740は、ディスプレイ、テレビ、モニタ、プリンタ、スピーカ、点字等を含み得る。いくつかの実装例において、入力/ユーザインターフェイス735および出力デバイス/インターフェイス740は、コンピューティングデバイス705とともに埋め込まれてもよく、またはコンピューティングデバイス705に物理的に結合されてもよい。その他の実装例において、その他のコンピューティングデバイスが、コンピューティングデバイス705のための入力/ユーザインターフェイス735および出力デバイス/インターフェイス740として機能してもよく、またはその機能を提供してもよい。
【0100】
コンピューティングデバイス705の例は、限定される訳ではないが、高度モバイルデバイス(たとえばスマートフォン、車両およびその他のマシン内のデバイス、人間および動物が携行するデバイス等)、モバイルデバイス(たとえばタブレット、ノートブック、ラップトップ、パーソナルコンピュータ、ポータブルテレビ、ラジオ等)、および移動用に設計されていないデバイス(たとえばデスクトップコンピュータ、その他のコンピュータ、インフォメーションセンター、1以上のプロセッサが埋込まれているおよび/または結合されているテレビ、ラジオ等)を含み得る。
【0101】
コンピューティングデバイス705は、同一のまたは異なる構成の1以上のコンピューティングデバイスを含む、任意の数のネットワーク化されたコンポーネント、デバイス、およびシステムと通信するために、(たとえばI/Oインターフェイス715を介して)外部記憶装置745およびネットワーク750に通信可能に結合することができる。コンピューティングデバイス705または接続されているいずれのコンピューティングデバイスも、サーバ、クライアント、シンサーバ、汎用マシン、専用マシン、または別のラベルとして機能することができる、そのサービスを提供できる、またはそう呼ぶことができる。
【0102】
I/Oインターフェイス715は、音声および/またはデータネットワークによる無線通信を容易にする無線通信コンポーネント(図示せず)を含み得る。無線通信コンポーネントは、1以上のアンテナを有するアンテナシステム、無線システム、ベースバンドシステム、またはその任意の組合わせを含み得る。無線周波数(RF)信号を、無線システムの管理下で、アンテナシステムにより無線で送受信してもよい。
【0103】
I/Oインターフェイス715は、限定される訳ではないが、コンピューティング環境700における、少なくともすべての、接続されているコンポーネント、デバイス、およびネットワークにおよび/またはから、情報を伝達するために、任意の通信またはI/Oプロトコルまたは規格(たとえばイーサネット(登録商標)、802.11x、ユニバーサルシステムバス、WiMax(登録商標)、モデム、セルラーネットワークプロトコル等)を含み得る。ネットワーク750は、任意のネットワークまたはネットワークの組合わせであってもよい(たとえば、インターネット、ローカルエリアネットワーク、ワイドエリアネットワーク、電話網、セルラーネットワーク、衛星ネットワーク等)。
【0104】
コンピューティングデバイス705は、一時的な媒体および非一時的な媒体を含む、コンピュータによって使用可能なまたはコンピュータによって読取可能な媒体を、使用することができる、および/またはこれを用いて通信することができる。一時的な媒体は、送信媒体(たとえば金属ケーブル、光ファイバ)、信号、搬送波等を含む。非一時的な媒体は、磁気媒体(たとえばディスクおよびテープ)、光学媒体(たとえばCD ROM、デジタルビデオディスク、ブルーレイディスク(登録商標))、ソリッドステート媒体(たとえばRAM、ROM、フラッシュメモリ、ソリッドステート記憶装置)、およびその他の不揮発性記憶装置またはメモリを含む。
【0105】
いくつかのコンピューティング環境の例では、コンピューティングデバイス705を用いて、技術、方法、アプリケーション、プロセス、またはコンピュータによって実行可能な命令を、実現することができる。コンピュータによって実行可能な命令は、一時的な媒体から取出し、非一時的な媒体に格納しこの媒体から取出すことができる。実行可能な命令は、任意のプログラミング言語、スクリプト言語、およびマシン言語(たとえばC、C++、C#、Java(登録商標)、Visual Basic(登録商標)、パイソン、パール、JavaScript(登録商標)、およびその他)のうちの1つ以上に由来し得る。
【0106】
プロセッサ710は、自然または仮想環境において、任意のオペレーティングシステム(OS)(図示せず)のもとで実行することができる。論理ユニット760と、アプリケーションプログラミングインターフェイス(API)ユニット765と、入力ユニット770と、出力ユニット775と、機密情報判断ユニット780と、機密情報暗号化ユニット785と、解読およびマッチングユニット790と、アクション判断ユニット793と、さまざまなユニットが相互に、OSと、およびその他のアプリケーション(図示せず)と通信するためのユニット間通信機構795とを含む、1以上のアプリケーションをデプロイすることができる。たとえば、機密情報判断ユニット780、機密情報暗号化ユニット785、解読およびマッチングユニット790、およびアクション判断ユニット793が、
図3および
図4に示される1以上のプロセスを実現してもよい。上記ユニットおよび要素は、設計、機能、構成、または実装が変更されてもよく、本明細書の記載に限定されない。
【0107】
いくつかの実装例において、情報または実行命令は、APIユニット765によって受信されると、1以上の他のユニット(たとえば論理ユニット760、入力ユニット770、出力ユニット775、機密情報判断ユニット780、機密情報暗号化ユニット785、解読およびマッチングユニット790、およびアクション判断ユニット793)に伝達されてもよい。
【0108】
たとえば、入力ユニット770は、漏洩情報候補を求めてインターネットを検索するウェブスイープに関するデータを受信した後に、APIユニット765を用いて、ウェブスイープのコンテンツを機密情報判断ユニット780に送信する。たとえば、機密情報判断ユニット780は、コンテキストベースの解析を用いることで、ウェブスイープ情報は漏洩情報候補を含むと判断する場合がある。
【0109】
機密情報判断ユニット780は、APIユニット765を介して、機密情報暗号化ユニット785とやり取りすることにより、漏洩情報候補を暗号化してもよい。機密情報判断ユニット780は、APIユニット765を用いて、解読およびマッチングユニット790とやり取りすることにより、(たとえばクライアントからの)二度暗号化された漏洩情報候補を受信し、機密情報暗号化ユニット785によって適用された暗号化が取除かれるように解読(復号)してから、暗号化された漏洩情報候補と、暗号化されたクライアントデータベース情報とのマッチングを実行することにより、一致があるか否かを判断し、一致の数、一致する暗号化された漏洩情報候補、および/またはデータ漏洩候補のソースに関連する情報(たとえばURLおよび関連するメタデータ)を含む情報を、エージェントに提供してもよい。アクション判断ユニット793は、解読およびマッチングユニット790によって一致はないと判断されたときに、実行すべきアクションを判断してもよい。
【0110】
いくつかのインスタンスにおいて、論理ユニット760は、上記実装例のうちのいくつかにおける、ユニット間の情報の流れを制御し、APIユニット765、入力ユニット770、出力ユニット775、機密情報判断ユニット780、機密情報暗号化ユニット785、解読およびマッチングユニット790、およびアクション判断ユニット793によって提供されるサービスを導くように、構成されてもよい。たとえば、1以上のプロセスまたは実装例の流れを、論理ユニット760が単独で制御してもよく、または、APIユニット765とともに制御してもよい。
【0111】
図8は、いくつかの実装例で使用される、企業に関連するコンピューティングデバイスの一例とともに、コンピューティング環境の一例を示す。コンピューティング環境800内のコンピューティングデバイス805は、1以上の処理ユニット、コア、またはプロセッサ810、メモリ825(たとえばRAM、ROM、および/またはその他)、内部記憶装置820(たとえば磁気、光学、ソリッドステート記憶装置、および/または有機)、および/またはI/Oインターフェイス815を含み得る。これらのうちのいずれも、情報を伝達するために通信機構またはバス830に結合することができる、またはコンピューティングデバイス805に埋込むことができる。
【0112】
コンピューティングデバイス805は、入力/ユーザインターフェイス835および出力デバイス/インターフェイス840に、通信可能に結合することができる。入力/ユーザインターフェイス835および出力デバイス/インターフェイス840のうちのいずれか一方または双方は、有線または無線インターフェイスであってもよく、取外し可能であってもよい。入力/ユーザインターフェイス835は、入力を与えるために使用することができる、いかなる物理または仮想デバイス、コンポーネント、センサ、またはインターフェイスであってもよい(たとえばボタン、タッチスクリーンインターフェイス、キーボード、ポインティング/カーソルコントロール、マイク、カメラ、点字、モーションセンサ、光学読取装置および/またはその他)。出力デバイス/インターフェイス840は、ディスプレイ、テレビ、モニタ、プリンタ、スピーカ、点字等を含み得る。いくつかの実装例において、入力/ユーザインターフェイス835および出力デバイス/インターフェイス840は、コンピューティングデバイス805とともに埋め込まれてもよく、またはコンピューティングデバイス805に物理的に結合されてもよい。その他の実装例において、その他のコンピューティングデバイスが、コンピューティングデバイス805のための入力/ユーザインターフェイス835および出力デバイス/インターフェイス840として機能してもよく、またはその機能を提供してもよい。
【0113】
コンピューティングデバイス805の例は、限定される訳ではないが、高度モバイルデバイス(たとえばスマートフォン、車両およびその他のマシン内のデバイス、人間および動物が持ち運ぶデバイス等)、モバイルデバイス(たとえばタブレット、ノートブック、ラップトップ、パーソナルコンピュータ、ポータブルテレビ、ラジオ等)、および移動用に設計されていないデバイス(たとえばデスクトップコンピュータ、その他のコンピュータ、インフォメーションセンター、1以上のプロセッサが埋込まれているおよび/または結合されているテレビ、ラジオ等)を含み得る。
【0114】
コンピューティングデバイス805は、同一のまたは異なる構成の1以上のコンピューティングデバイスを含む、任意の数のネットワーク化されたコンポーネント、デバイス、およびシステムと通信するために、(たとえばI/Oインターフェイス815を介して)外部記憶装置845およびネットワーク850に通信可能に結合することができる。コンピューティングデバイス805または接続されているいずれのコンピューティングデバイスも、サーバ、クライアント、シンサーバ、汎用マシン、専用マシン、または別のラベルとして機能することができる、そのサービスを提供できる、またはそう呼ぶことができる。
【0115】
I/Oインターフェイス815は、音声および/またはデータネットワークによる無線通信を容易にする無線通信コンポーネント(図示せず)を含み得る。無線通信コンポーネントは、1以上のアンテナを有するアンテナシステム、無線システム、ベースバンドシステム、またはその任意の組合わせを含み得る。無線周波数(RF)信号を、無線システムの管理下で、アンテナシステムにより無線で送受信してもよい。
【0116】
I/Oインターフェイス815は、限定される訳ではないが、コンピューティング環境800における、少なくともすべての、接続されているコンポーネント、デバイス、およびネットワークにおよび/またはから、情報を伝達するために、任意の通信またはI/Oプロトコルまたは規格(たとえばイーサネット、802.11x、ユニバーサルシステムバス、WiMax、モデム、セルラーネットワークプロトコル等)を含み得る。ネットワーク850は、任意のネットワークまたはネットワークの組合わせであってもよい(たとえば、インターネット、ローカルエリアネットワーク、ワイドエリアネットワーク、電話網、セルラーネットワーク、衛星ネットワーク等)。
【0117】
コンピューティングデバイス805は、一時的な媒体および非一時的な媒体を含む、コンピュータによって使用可能なまたはコンピュータによって読取可能な媒体を、使用することができる、および/またはこれを用いて通信することができる。一時的な媒体は、送信媒体(たとえば金属ケーブル、光ファイバ)、信号、搬送波等を含む。非一時的な媒体は、磁気媒体(たとえばディスクおよびテープ)、光学媒体(たとえばCD ROM、デジタルビデオディスク、ブルーレイディスク)、ソリッドステート媒体(たとえばRAM、ROM、フラッシュメモリ、ソリッドステート記憶装置)、およびその他の不揮発性記憶装置またはメモリを含む。
【0118】
いくつかのコンピューティング環境の例では、コンピューティングデバイス805を用いて、技術、方法、アプリケーション、プロセス、またはコンピュータによって実行可能な命令を、実現することができる。コンピュータによって実行可能な命令は、一時的な媒体から取出し、非一時的な媒体に格納しこの媒体から取出すことができる。実行可能な命令は、任意のプログラミング言語、スクリプト言語、およびマシン言語(たとえばC、C++、C#、Java、Visual Basic、パイソン、パール、JavaScript、およびその他)のうちの1つ以上に由来し得る。
【0119】
プロセッサ810は、自然または仮想環境において、任意のオペレーティングシステム(OS)(図示せず)のもとで実行することができる。論理ユニット860と、アプリケーションプログラミングインターフェイス(API)ユニット865と、入力ユニット870と、出力ユニット875と、データベース暗号化ユニット880と、受信データ暗号化ユニット885と、アクション判断ユニット890と、さまざまなユニットが相互に、OSと、およびその他のアプリケーション(図示せず)と通信するためのユニット間通信機構895とを含む、1以上のアプリケーションをデプロイすることができる。たとえば、データベース暗号化ユニット880、受信データ暗号化ユニット885、およびアクション判断ユニット890が、
図3および
図5に示される1以上のプロセスを実現してもよい。上記ユニットおよび要素は、設計、機能、構成、または実装が変更されてもよく、本明細書の記載に限定されない。
【0120】
いくつかの実装例において、情報または実行命令は、APIユニット865によって受信されると、1以上の他のユニット(たとえば論理ユニット860、入力ユニット870、出力ユニット875、データベース暗号化ユニット880、受信データ暗号化ユニット885、およびアクション判断ユニット890)に伝達されてもよい。
【0121】
たとえば、入力ユニット870は、暗号化された漏洩情報候補をホストから受信した後に、APIユニット865を用いて、この情報を、クライアント情報データベースを暗号化するデータベース暗号化ユニット880に伝達してもよい。データベース暗号化ユニット880は、APIユニット865を介して、受信データ暗号化ユニット885とやり取りすることにより、ホストから受信した、暗号化された漏洩情報候補を暗号化してもよい。アクション判断ユニット890は、APIユニット865を用いて、一致の数、一致する暗号化された漏洩情報候補、および/またはデータ漏洩候補のソースに関連する情報(たとえばURLおよび関連するメタデータ)を含む報告を含み得る、ホストから受けた情報に基づいて、実行すべきアクションを判断してもよい。
【0122】
いくつかのインスタンスにおいて、論理ユニット860は、上記実装例のうちのいくつかにおける、ユニット間の情報の流れを制御し、APIユニット865、入力ユニット870、出力ユニット875、データベース暗号化ユニット880、受信データ暗号化ユニット885、およびアクション判断ユニット890によって提供されるサービスを導くように、構成されてもよい。たとえば、1以上のプロセスまたは実装例の流れを、論理ユニット860が単独で制御してもよく、または、APIユニット865とともに制御してもよい。
【0123】
本明細書に記載のソフトウェアコンポーネントはいずれも、さまざまな形態を取り得る。たとえば、あるコンポーネントは、スタンドアロンソフトウェアパッケージであってもよく、または、より大きなソフトウェアプロダクトに「ツール」として組込まれたソフトウェアパッケージであってもよい。これは、スタンドアロンプロダクトとしてまたは既存のソフトウェアアプリケーションにインストールするためのアドインパッケージとして、ネットワーク、たとえばウェブサイトからダウンロード可能であってもよい。これはまた、クライアント−サーバソフトウェアアプリケーションとして、ウェブで使用可能なソフトウェアアプリケーションとして、および/またはモバイルアプリケーションとして、利用できるものであってもよい。
【0124】
当該実装例はさまざまな利益および利点を有し得る。たとえば、限定される訳ではないが、機密性は、クライアントのメンバー(たとえば個々のユーザ)のために保持されてもよく、機密性はまた、クライアントおよびホストのために保持されてもよい。したがって、データ漏洩判断は、信頼できる外部の当事者(たとえば出力データの実際の内容または平文を処理し認識する第三者)に頼らなくても提供できる。このようにして機密情報の機密性は保持される。本実装例はクラウドベース環境に組込まれてもよく、クラウドベース環境では、プロトコルのクライアント側を実現するクラウドコンポーネントが、均一的でスケーラブルなやり方でデプロイされてもよい。
【0125】
本実装例はさらに他の利益および利点を有し得る。たとえば、限定される訳ではないが、本実装例は、クライアント情報の機密およびオンライン情報候補の機密を保持することが原因で、機密情報のプライバシーを維持することができないホストに関連する問題および/または欠点を克服し得る。さらに、本実装例は、ウェブクローラーの使用による時間のずれの問題を克服することにより、データ漏洩に関わる別の当事者(たとえば不正に取得した機密情報を販売しようと試みるオンラインハッカー)を明らかにすることができる。
【0126】
このように、ホストによるオンライン検索から得られた機密情報候補を、クライアントから提供される暗号化された機密情報と相関させるが、機密情報自体はホストに提供しない。同様に、ホストはクライアントに対し、判断結果(たとえばデータ漏洩情報候補)を、暗号化された機密情報候補(たとえばクライアントの漏洩機密情報)として提供するが、機密情報候補そのものはホストには提供されない。これは、上述のように安全な共通集合を使用することによって実現される。
【0127】
本明細書に記載のシステムがユーザに関する個人情報を収集するまたは個人情報を利用し得る状況において、ユーザ(たとえば統合された業務用アカウントおよび非業務用アカントどちらも有する企業のユーザ)は、プログラムまたは特徴がユーザ情報(たとえばユーザのソーシャルネットワーク、社会的行動または活動、職業、ユーザの嗜好、またはユーザの現在位置に関する情報)を収集するか否かを管理する機会、または、ユーザにより関連性が高いであろうコンテンツをコンテンツサーバから受けるか否かおよび/または受ける方法を管理する機会が与えられてもよい。加えて、特定のデータは、格納または使用される前に、個人を特定できる情報が削除されるように1以上の方法で処理されてもよい。たとえば、ユーザのIDは、ユーザ個人を特定できる情報を判別できないように扱われてもよく、または、位置情報が取得されるユーザの地理的位置を、(たとえば市、郵便番号、または州レベルまで)一般化することにより、ユーザの特定の位置を判別できないようにしてもよい。このように、ユーザは、ユーザに関する情報が如何にして収集されコンテンツサーバによって使用されるかを管理してもよい。
【0128】
その他の実装例を以下の例において要約する。
例1:コンピュータによって実現されるデータ漏洩検出方法であって、この方法は、
企業のファイアウォールの外部のホストにより、データ漏洩候補を求めてオンライン情報のスイープを実行することにより、オンラインデータセットを生成するステップと、
ホストが、オンラインデータのコンテキストに基づいてオンラインデータセットの解析を実行しオンライン情報はデータ漏洩候補であると判断するステップと、
ホストが、データ通信を暗号化し、ホストが暗号化したデータ通信を企業におけるソフトウェアエージェントに与えるステップと、
ソフトウェアエージェントが、ホストが暗号化したデータ通信を受信したことに応じて、共通暗号化キーを用いることにより、企業情報のデータベースを暗号化し、ホストが暗号化したデータ通信を再度暗号化するステップと、
ソフトウェアエージェントが暗号化した企業情報のデータベースおよび再度暗号化したデータ通信をホストに与えるステップと、
ホストが、再度暗号化したデータ通信の、ホストが暗号化したアスペクトを解読することにより、ソフトウェアエージェントが暗号化したデータ通信を生成するステップと、
マッチング動作を実行し、暗号化した情報のデータベースと、ソフトウェアエージェントが暗号化したデータ通信との間に、一致があるか否かを判断するステップと、
一致があると判断した場合、ホストが一致をソフトウェアエージェントに報告し、ソフトウェアエージェントが第1のアクションを実行するステップと、
一致がないと判断した場合、ホストが第2のアクションを実行するステップとを含む。
【0129】
例2:企業におけるソフトウェアエージェントに対し、オンラインアカウントに由来するデータ通信をホストが暗号化するときに使用するキーは与えられず、ホストに対し、ソフトウェアエージェントの共通暗号化キーは与えられない、例1に記載のコンピュータによって実現される方法。
【0130】
例3:マッチング動作を実行するステップは、機密保持共通集合アルゴリズムを適用するステップを含む、例1または2に記載のコンピュータによって実現される方法。
【0131】
例4:ホストは、データ通信を部分的に暗号化し、データ通信のうちの暗号化されていない部分を平文として残し、部分的に暗号化したデータ通信と平文とをソフトウェアエージェントに与える、例1〜3のいずれか1つに記載のコンピュータによって実現される方法。
【0132】
例5:ソフトウェアエージェントがノイズを暗号化したデータベースに追加し、ノイズが追加された暗号化したデータベースをホストに送信するステップをさらに含む、例1〜4のいずれか1つに記載のコンピュータによって実現される方法。
【0133】
例6:オンライン情報のスイープはインターネットのウェブスイープであり、インターネットのウェブスイープは所定の周期で実行される、例1〜5のいずれか1つに記載のコンピュータによって実現される方法。
【0134】
例7:ソフトウェアエージェントが、ホストが暗号化したデータ通信の再暗号化中に、ホストが暗号化したデータ通信の値を並び替えるステップをさらに含む、例1〜6のいずれか1つに記載のコンピュータによって実現される方法。
【0135】
例8:ホストが一致をソフトウェアエージェントに報告するステップは、ホストが、ソフトウェアエージェントに、一致の数、一致する暗号化された漏洩情報候補、およびデータ漏洩候補のソースに関連する情報のうちの少なくとも1つを与えるステップを含む、例1〜7のいずれか1つに記載のコンピュータによって実現される方法。
【0136】
例9:データ漏洩候補のソースに関連する情報は、ウェブスイープ中にデータ漏洩候補のソースとして識別された統一資源指定子(URL)と、URLに関連するメタデータとのうちの少なくとも1つを含む、例8に記載のコンピュータによって実現される方法。
【0137】
例10:企業のファイアウォールの外部のホストにおいてデータ漏洩を検出する、コンピュータによって実現される方法であって、この方法は、
企業のファイアウォールの外部のホストにより、データ漏洩候補を求めてオンライン情報のスイープを実行することにより、オンラインデータセットを生成するステップと、
ホストが、オンラインデータのコンテキストに基づいてオンラインデータセットの解析を実行しオンライン情報はデータ漏洩候補であると判断するステップと、
データ通信を暗号化し、ホストが暗号化したデータ通信を企業におけるソフトウェアエージェントに与えるステップと、
ソフトウェアエージェントが暗号化した企業情報のデータベースと、ホストによって暗号化されソフトウェアエージェントにより再度暗号化されたデータ通信を受信するステップと、
再度暗号化したデータ通信の、ホストが暗号化したアスペクトを解読することにより、ソフトウェアエージェントが暗号化したデータ通信を生成するステップと、
マッチング動作を実行し、暗号化した情報のデータベースと、ソフトウェアエージェントが暗号化したデータ通信との間に、一致があるか否かを判断するステップと、
一致があると判断した場合、一致をソフトウェアエージェントに報告するステップと、
一致がないと判断した場合、ホストがアクションを実行するステップとを含む。
【0138】
例11:マッチング動作を実行するステップは、機密保持共通集合アルゴリズムを適用するステップを含む、例10に記載のコンピュータによって実現される方法。
【0139】
例12:ホストが一致をソフトウェアエージェントに報告するステップは、ホストが、ソフトウェアエージェントに、一致の数、一致する暗号化された漏洩情報候補、およびデータ漏洩候補のソースに関連する情報のうちの少なくとも1つを与えるステップを含む、例10または11に記載のコンピュータによって実現される方法。
【0140】
例13:オンライン情報のスイープはインターネットのウェブスイープであり、インターネットのウェブスイープは所定の周期で実行される、例10〜12のいずれか1つに記載のコンピュータによって実現される方法。
【0141】
例14:ソフトウェアエージェントを有する企業からのデータ漏洩を検出する、コンピュータによって実現される方法であって、この方法は、
企業のファイアウォールの外部のホストから、データ漏洩候補に関連するオンラインソースから発生した、ホストが暗号化したデータ通信を、受信するステップと、
共通暗号化キーを用いて、企業情報のデータベースを暗号化し、ホストが暗号化したデータ通信を再度暗号化するステップと、
暗号化した企業情報のデータベースと再度暗号化したデータ通信とをホストに与えるステップと、
暗号化した情報のデータベースと再度暗号化したデータ通信との間に一致があることを示す報告をホストから受信するステップと、
第1のアクションを実行するステップとを含む。
【0142】
例15:企業におけるソフトウェアエージェントに対し、オンラインアカウントに由来するデータ通信をホストが暗号化するときに使用するキーは与えられず、ホストに対し、ソフトウェアエージェントの共通暗号化キーは与えられない、例14に記載のコンピュータによって実現される方法。
【0143】
例16:ソフトウェアエージェントがノイズを暗号化したデータベースに追加し、ノイズが追加された暗号化したデータベースをホストに送信するステップをさらに含む、例14または15に記載のコンピュータによって実現される方法。
【0144】
例17:ソフトウェアエージェントが、ホストが暗号化したデータ通信の再暗号化中に、ホストが暗号化したデータ通信の値を並び替えるステップをさらに含む、例14〜16のいずれか1つに記載のコンピュータによって実現される方法。
【0145】
例18:ソフトウェアエージェントによる第1のアクションは、データ漏洩は企業に関連するという警告を事業機関に与えるステップを含む、例14〜17のいずれか1つに記載のコンピュータによって実現される方法。
【0146】
例19:企業のファイアウォールの外部のホストにおいてデータ漏洩を検出するためのシステムであって、このシステムは、
企業のファイアウォールの外部のホストを備え、ホストは、ハードウェアプロセッサを含み、コンピュータ読取可能な媒体に格納された、実行可能な命令を有し、ホストにおける命令は、
企業のファイアウォールの外部のホストにより、データ漏洩候補を求めてオンライン情報のスイープを実行することにより、オンラインデータセットを生成することと、
ホストが、オンラインデータのコンテキストに基づいてオンラインデータセットの解析を実行しオンライン情報はデータ漏洩候補であると判断することと、
データ通信を暗号化し、ホストが暗号化したデータ通信を企業におけるソフトウェアエージェントに与えることと、
ソフトウェアエージェントが暗号化した企業情報のデータベースとホストが暗号化しソフトウェアエージェントが再度暗号化したデータ通信とを受信することと、
再度暗号化したデータ通信の、ホストが暗号化したアスペクトを解読することにより、ソフトウェアエージェントが暗号化したデータ通信を生成することと、
マッチング動作を実行し、暗号化した情報のデータベースと、ソフトウェアエージェントが暗号化したデータ通信との間に、一致があるか否かを判断することと、
一致があると判断した場合、一致をソフトウェアエージェントに報告することと、
一致がないと判断した場合、ソフトウェアエージェントが第1のアクションを実行することとを含み、
企業は、ハードウェアプロセッサを含み、コンピュータ読取可能な媒体に格納された、実行可能な命令を有し、
企業のファイアウォールの外部のホストから、ホストが暗号化したデータ通信を受信することと、
共通暗号化キーを用いて、企業情報のデータベースを暗号化し、ホストが暗号化したデータ通信を再度暗号化し、ソフトウェアエージェントが暗号化したデータベースと再度暗号化したデータ通信とをホストに与えることと、
暗号化した情報のデータベースとソフトウェアエージェントが暗号化したデータ通信との間に一致があることを示す報告をホストから受信することと、
第2のアクションを実行することとを含む。
【0147】
例20:企業におけるソフトウェアエージェントに対し、オンラインアカウントに由来するデータ通信をホストが暗号化するときに使用するキーは与えられず、ホストに対し、ソフトウェアエージェントの共通暗号化キーは与えられない、例19に記載のシステム。
【0148】
例21:コンピュータシステムのプロセッサによって実行されると当該コンピュータシステムに例1〜9のいずれか1つに記載の方法を実行させる命令を含む非一時的なコンピュータ読取可能な媒体。
【0149】
例22:コンピュータシステムのプロセッサによって実行されると当該コンピュータシステムに例10〜13のいずれか1つに記載の方法を実行させる命令を含む非一時的なコンピュータ読取可能な媒体。
【0150】
例23:コンピュータシステムのプロセッサによって実行されると当該コンピュータシステムに例14〜18のいずれか1つに記載の方法を実行させる命令を含む非一時的なコンピュータ読取可能な媒体。
【0151】
2、3の実装例を示して説明したが、これらの実装例は、本明細書に記載の主題をこの分野に精通した人々に伝えるために提供される。本明細書に記載の主題は、記載されている実装例に限定されることなく、さまざまな形態で実現し得ることが理解されるはずである。本明細書に記載の主題は、具体的に定義または記載されている事項がなくても、または記載されていないその他または異なる要素または事項を用いて、実施することが可能である。この分野の当業者は、これらの実装例を、下記請求項で規定されている本明細書に記載の主題およびその均等物から逸脱することなく変更し得ることを、理解するであろう。