本明細書は、グループベース通信システム内での暗号化キー管理に関する。
実施形態では、グループベース通信システム内で暗号化キー管理を提供するための装置は、少なくとも1つのプロセスと、プロセッサによって実行された場合に、暗号化キー管理を提供するように装置を構成する命令を格納した少なくとも1つの非一時性メモリとを含む。
実施形態では、装置は、グループベース通信サーバから、暗号化キー要求データ構造および暗号化要求プレーンテキストを含む、暗号化要求を受信するように構成される。
実施形態では、装置は、少なくとも1つのローカルメモリから、暗号化キー要求データ構造に関連付けられた暗号化キーを取得するように構成される。
実施形態では、装置は、暗号化キーを使用して暗号化要求プレーンテキストを暗号化して、暗号化要求暗号文を作成するように構成される。
実施形態では、装置は、グループベース通信サーバに、暗号化要求暗号文、暗号化キー要求データ構造の少なくとも一部、および暗号化キーに基づく暗号化キー暗号文を送信するように構成される。
実施形態では、装置は、暗号化キー要求データ構造に関連付けられた暗号化キーが少なくとも1つのローカルメモリに格納されていないことが判別されると、暗号化キー要求データ構造を含む暗号化キー生成要求をキーマテリアルソースに送信するように構成される。
実施形態では、装置は、キーマテリアルソースが暗号化キーまたは暗号化キー暗号文のうちの1つ以上で応答していないことが判別されると、暗号化要求エラーをグループベース通信サーバに送信するように構成される。
実施形態では、暗号化キー要求データ構造が複数の一意のキースコープ要素を含む。実施態様において、一意のキースコープ要素のうちの1つ以上に関連付けられた暗号化キーへのアクセスが失効となる。
実施形態では、装置は、キーマテリアルソースから、暗号化キーおよび暗号化キーに関連付けられた暗号化キー暗号文を受信するように構成される。
実施態様では、装置は、暗号化キーおよび暗号化キーに関連付けられた暗号化キー暗号文を、少なくとも1つのローカルメモリに格納するように構成される。
実施形態では、装置は、グループベース通信サーバから、暗号化キー要求データ構造、暗号化キー暗号文および復号化要求暗号文を含む、復号化要求を受信するように構成される。
実施形態では、装置は、少なくとも1つのローカルメモリから、暗号化キー暗号文に関連付けられた暗号化キーを取得するように構成される。
実施形態では、装置は、暗号化キーを使用して復号化要求暗号文を復号化して、復号化要求プレーンテキストを作成するように構成される。
実施形態では、装置は、グループベース通信サーバに、復号化要求プレーンテキストを送信するように構成される。
実施形態では、装置は、暗号化キー暗号文に関連付けられた暗号化キーが少なくとも1つのローカルメモリに格納されていないことが判別されると、暗号化キー要求データ構造および暗号化キー暗号文を含む、暗号化キー生成要求を、キーマテリアルソースに送信するように構成される。
実施形態では、装置は、キーマテリアルソースが暗号化キーで応答していないことが判別されると、復号化要求エラーをグループベース通信サーバに送信するように構成される。
実施形態では、暗号化キー要求データ構造が複数の一意のキースコープ要素を含む。実施形態では、一意のキースコープ要素のうちの1つ以上に関連付けられた暗号化キーへのアクセスが失効となる。
実施形態では、装置は、キーマテリアルソースから暗号化キーを受信し、暗号化キーおよび暗号化キーに関連付けられた暗号化キー暗号文を、少なくとも1つのローカルメモリに格納するように構成される。
実施形態では、装置は、暗号化キー要求データ構造に関連付けられた暗号化キーが少なくとも1つのローカルメモリに格納されていないことが判別されると、暗号化キー要求データ構造を含む暗号化キー生成要求をキーマテリアルソースに送信するように構成される。
実施形態では、装置は、キーマテリアルソースから、暗号化キーおよび暗号化キーに関連付けられた暗号化キー暗号文を受信するように構成される。
実施形態では、装置は、暗号化キーおよび暗号化キーに関連付けられた暗号化キー暗号文を、少なくとも1つのローカルメモリに格納するように構成される。
実施形態では、装置は、キーマテリアルソースが暗号化キーおよび暗号化キー暗号文のうちの1つ以上で応答していないことが判別されると、暗号化要求エラーをグループベース通信サーバに送信するように構成される。
実施形態では、暗号化キー要求データ構造は、複数の一意のキースコープ要素を含む。
実施形態では、一意のキースコープ要素のうちの1つ以上に関連付けられた暗号化キーへのアクセスは失効となる。
実施形態では、装置は、暗号化キー暗号文に関連付けられた暗号化キーが少なくとも1つのローカルメモリに格納されていないことが判別されると、暗号化キー要求データ構造および暗号化キー暗号文を含む、暗号化キー生成要求を、キーマテリアルソースに送信するように構成される。
実施形態では、装置は、キーマテリアルソースから、暗号化キーを受信し、暗号化キーおよび暗号化キーに関連付けられた暗号化キー暗号文を、少なくとも1つのローカルメモリに格納するように構成される。
実施形態では、装置は、キーマテリアルソースが暗号化キーで応答していないことが判別されると、復号化要求エラーをグループベース通信サーバに送信するように構成される。
実施形態では、暗号化キー要求データ構造は、複数の一意のキースコープ要素を含む。
実施形態では、一意のキースコープ要素のうちの1つ以上に関連付けられた暗号化キーへのアクセスが失効となる。
実施形態では、グループベース通信サーバは、クライアントデバイスのディスプレイのグループベース通信チャネルインタフェース内でのレンダリングのためのチャネル履歴プレースホルダテキストをクライアントデバイスに送信する。
実施形態では、暗号化要求プレーンテキストは、グループベース通信メッセージプレーンテキスト、グループベース通信ファイルプレーンテキスト、またはグループベース通信検索インデクス暗号化キーのうちの1つを含む。
実施形態では、復号化要求暗号文は、グループベース通信メッセージ暗号文またはグループベース通信ファイル暗号文のうちの1つを含む。
実施形態では、復号化要求暗号文は、暗号化されたグループベース通信検索インデクス暗号化キーを含む。
実施形態では、復号化要求暗号文は、暗号化されたグループベース通信検索インデクス暗号化キーを含み、グループベース通信サーバが、復号化要求暗号文に関連付けられた検索結果を除外した検索結果をクライアントデバイスに送信する。
実施形態では、暗号化キー管理を提供するための装置であって、装置は、通信システムの1つ以上のサーバと通信することができ、装置は、少なくとも1つのプロセッサと、プロセッサによって実行された場合に暗号化キー管理を提供するように装置を構成する命令を格納した少なくとも1つの非一時性メモリと、を含む。
実施形態では、装置は、1つ以上のサーバに、キーマテリアルソースによって提供される1つ以上の暗号化キーへのアクセスを提供するように構成され、暗号化キーは、通信システムによって管理されたデータへのアクセスのための暗号化キーである。
実施形態では、暗号化キーへのアクセスをキースコープ要素ごとに失効させることができ、キースコープ要素は、暗号化キーに関連付けられ、かつタイムスタンプ、ユーザ識別子、メッセージ識別子、ファイル識別子、グループベース通信チャネル識別子、グループベース通信チーム識別子、グループベース通信ワークスペース識別子のうちの1つである。
実施形態では、装置は、1つ以上のサーバに、少なくとも1つのローカルメモリに格納された1つ以上の暗号化キーへのアクセスを提供するようにさらに構成され、暗号化キーは、通信システムによって管理されたデータにアクセスするための暗号化キーである。
実施形態では、装置は、キーマテリアルソースによって提供される1つ以上の暗号化キーを使用して、暗号化されたプレーンテキストまたは復号化された暗号文を1つ以上のサーバに提供するようにさらに構成される。
実施形態では、プレーンテキストは、グループベース通信メッセージプレーンテキスト、グループベース通信ファイルプレーンテキスト、またはグループベース通信検索インデクス暗号化キーのうちの1つ以上を含む。
実施形態では、復号化された暗号文は、復号化されたグループベース通信メッセージ暗号文、復号化されたグループベース通信ファイル暗号文、または復号化されたグループベース通信検索インデクス暗号化キーのうちの1つ以上を含む。
実施形態では、暗号化されたグループベース通信メッセージをグループベース通信サーバに提供するための装置は、少なくとも1つのプロセッサと、プロセッサによって実行された場合に、グループベース通信サーバに、暗号化されたグループベース通信メッセージを提供するように装置を構成する命令を格納した少なくとも1つの非一時性メモリを含む。
実施形態では、装置は、グループベース通信サーバから、グループベース通信キーファミリ識別子、グループベース通信メッセージキースコープ要素の集合、およびグループベース通信メッセージプレーンテキストを含む、グループベース通信メッセージ暗号化要求を受信するように構成される。
実施形態では、装置は、少なくとも1つのローカルメモリから、グループベース通信メッセージキースコープ要素の集合およびグループベース通信キーファミリ識別子に関連付けられたグループベース通信メッセージ暗号化キーを取得するように構成される。
実施形態では、装置は、グループベース通信メッセージ暗号化キーを使用してグループベース通信メッセージプレーンテキストを暗号化して、グループベース通信メッセージ暗号文を作成するように構成される。
実施形態では、装置は、グループベース通信サーバに、グループベース通信メッセージ暗号文、グループベース通信メッセージキースコープ要素の集合、およびグループベース通信メッセージ暗号化キーに関連付けられた暗号化キー暗号文を送信するように構成される。実施形態では、グループベース通信サーバは、グループベース通信リポジトリに、グ
ループベース通信メッセージ暗号文、グループベース通信メッセージキースコープ要素の集合、およびグループベース通信メッセージ暗号化キーに関連付けられた暗号化キー暗号文を格納するように構成される。
実施形態では、装置は、グループベース通信キースコープ要素の集合およびグループベース通信キーファミリ識別子に関連付けられたグループベース通信メッセージ暗号化キーが少なくとも1つのローカルメモリに格納されていないことが判別されると、グループベース通信キースコープ要素の集合およびグループベース通信キーファミリ識別子を含む、暗号化キー生成要求を、グループベース通信キーマテリアルソースに送信するように構成される。
実施形態では、装置は、グループベース通信キーマテリアルソースから、グループベース通信メッセージ暗号化キーおよびグループベース通信メッセージ暗号化キーに関連付けられた暗号化キー暗号文を受信するように構成される。
実施形態では、装置は、グループベース通信メッセージ暗号化キーおよび暗号化キーに関連付けられた暗号化キー暗号文を、少なくとも1つのローカルメモリに格納するように構成される。
実施形態では、グループベース通信メッセージキースコープ要素の集合は、複数のグループベース通信キースコープ要素を含み、グループベース通信キースコープ要素は、グループベース通信組織識別子、グループベース通信ワークスペース識別子、グループベース通信チャネル識別子、またはタイムスタンプのうちの1つである。
実施形態では、装置は、タイムスタンプ後の暗号化キー管理キャッシュ持続期間の満了時に、少なくとも1つのメモリから、グループベース通信メッセージ暗号化キー、およびグループベース通信メッセージ暗号化キーに関連付けられた暗号化キー暗号文を削除するように構成される。
実施形態では、各グループベース通信メッセージは、一意のグループベース通信メッセージキースコープ要素の集合に関連付けられている。
実施形態では、グループベース通信組織識別子により、グループベース通信メッセージ送信者識別子が関連付けられているグループベース通信組織を識別し、グループベース通信メッセージ送信者識別子は、グループベース通信メッセージに関連付けられている。
実施形態では、グループベース通信ワークスペース識別子により、グループベース通信メッセージ送信者識別子およびグループベース通信メッセージが関連付けられているグループベース通信ワークスペースを識別し、グループベース通信チャネル識別子により、グループベース通信メッセージ送信者識別子およびグループベース通信メッセージが関連付けられているグループベース通信チャネルを識別する。
実施形態では、タイムスタンプにより、グループベース通信メッセージがクライアントデバイスによってグループベース通信サーバに電子的に送信されたネットワーク時間を識別する。
実施形態では、装置は、グループベース通信メッセージ暗号化要求に基づいて、グループベース通信メッセージキースコープ要素の集合および要求理由コードを含む、アクセスログデータ構造を生成するように構成される。
実施形態では、装置は、少なくとも1つのメモリに、アクセスログデータ構造を格納するように構成される。
実施形態では、グループベース通信メッセージ暗号化要求は、クライアントデバイスがグループベース通信メッセージをグループベース通信サーバに送信した結果として生成される。
実施形態では、グループベース通信サーバは、グループベース通信暗号化要求を送信する前に、グループベース通信メッセージからグループベース通信メッセージのメタデータを抽出する。
実施形態では、グループベース通信キーマテリアルソースからの暗号化キーへのアクセスは、サードパーティデータの所有者によって制御される。
実施形態では、復号化されたグループベース通信メッセージをグループベース通信サーバに提供するための装置は、少なくとも1つのプロセッサと、プロセッサによって実行された場合に、復号化されたグループベース通信メッセージをグループベース通信サーバに提供するように装置を構成する命令を格納した少なくとも1つの非一時性メモリとを含む。
実施形態では、装置は、グループベース通信サーバから、グループベース通信メッセージに関連付けられた1つ以上のキースコープ要素を含むグループベース通信メッセージキースコープ要素の集合、暗号化キー暗号文、およびグループベース通信メッセージ暗号文を含む、グループベース通信メッセージ復号化要求を受信するように構成される。
実施形態では、装置は、少なくとも1つのローカルメモリから、暗号化キー暗号文に関連付けられたグループベース通信メッセージ暗号化キーを取得するように構成される。
実施形態では、装置は、グループベース通信メッセージ暗号化キーを使用してグループベース通信メッセージ暗号文を復号化して、グループベース通信メッセージプレーンテキストを作成するように構成される。
実施形態では、装置は、グループベース通信サーバに、グループベース通信メッセージプレーンテキストを送信するように構成される。
実施形態では、装置は、暗号化キー暗号文に関連付けられたグループベース通信メッセージ暗号化キーが少なくとも1つのローカルメモリに格納されていないことが判別されると、グループベース通信メッセージキースコープ要素の集合および暗号化キー暗号文を含む、暗号化キー生成要求を、グループベース通信キーマテリアルソースに送信するように構成される。
実施形態では、装置は、グループベース通信キーマテリアルソースから、グループベース通信メッセージ暗号化キーを受信するように構成される。
実施形態では、装置は、少なくとも1つのローカルメモリに、グループベース通信メッセージ暗号化キーを格納するように構成される。
実施形態では、グループベース通信サーバは、グループベース通信メッセージプレーンテキストを、検索インデクスの生成に使用するために、グループベース通信ストレージ管理サービスに提供する。
実施形態では、グループベース通信クエリを処理するための装置は、少なくとも1つのプロセッサと、プロセッサによって実行された場合に、グループベース通信クエリを処理するように装置を構成する命令を格納した少なくとも1つの非一時性メモリとを含む。
実施形態では、装置は、グループベース通信検索サーバから、暗号化された検索インデクス暗号化キーおよびグループベース通信組織識別子を含む、グループベース通信検索インデクス暗号化要求を受信するように構成される。
実施形態では、装置は、少なくとも1つのローカルメモリから、グループベース通信組織識別子に関連付けられた組織暗号化キーを取得するように構成される。
実施形態では、装置は、組織暗号化キーを使用して暗号化された検索インデクス暗号化キーを復号化して、復号化されたグループベース通信検索インデクス暗号化キーを作成するように構成される。
実施形態では、装置は、グループベース通信検索サーバに、復号化されたグループベース通信検索インデクス暗号化キーを送信するように構成される。
実施形態では、装置は、グループベース通信組織識別子に関連付けられた組織暗号化キーが少なくとも1つのローカルメモリに格納されていないことが判別されると、グループベース通信キーマテリアルソースに、グループベース通信組織識別子を含む暗号化キー生成要求を送信するように構成される。
実施形態では、装置は、グループベース通信キーマテリアルソースから、組織暗号化キーを受信するように構成される。
実施形態では、装置は、少なくとも1つのローカルメモリに、組織暗号化キーを格納するように構成される。
実施形態では、装置は、グループベース通信サーバから、グループベース通信メッセージに関連付けられた1つ以上のキースコープ要素を含むグループベース通信メッセージキースコープ要素の集合、暗号化キー暗号文、およびグループベース通信メッセージ暗号文を含む、グループベース通信メッセージ復号化要求を受信するように構成される。
実施形態では、装置は、少なくとも1つのローカルメモリから、暗号化キー暗号文に関連付けられたグループベース通信メッセージ暗号化キーを取得するように構成される。
実施形態では、装置は、グループベース通信メッセージ暗号化キーを使用してグループベース通信メッセージ暗号文を復号化して、グループベース通信メッセージプレーンテキストを作成するように構成される。
実施形態では、装置は、グループベース通信サーバに、グループベース通信メッセージプレーンテキストを送信するように構成される。
実施形態では、装置は、暗号化キー暗号文に関連付けられたグループベース通信メッセージ暗号化キーが少なくとも1つのローカルメモリに格納されていないことが判別されると、グループベース通信メッセージキースコープ要素の集合および暗号化キー暗号文を含む、暗号化キー生成要求を、グループベース通信キーマテリアルソースに送信するように構成される。
実施形態では、装置は、グループベース通信キーマテリアルソースから、グループベース通信メッセージ暗号化キーを受信するように構成される。
実施形態では、装置は、少なくとも1つのローカルメモリに、グループベース通信メッセージ暗号化キーを格納するように構成される。
実施形態では、装置は、グループベース通信サーバから、グループベース通信ファイルに関連付けられた1つ以上のキースコープ要素を含むグループベース通信ファイルキースコープ要素の集合、暗号化キー暗号文、およびグループベース通信ファイル暗号文を含む、グループベース通信ファイル復号化要求を受信するように構成される。
実施形態では、装置は、少なくとも1つのローカルメモリから、暗号化キー暗号文に関連付けられたグループベース通信ファイル暗号化キーを取得するように構成される。
実施形態では、装置は、グループベース通信ファイル暗号化キーを使用してグループベース通信ファイル暗号文を復号化して、グループベース通信ファイルプレーンテキストを作成するように構成される。
実施形態では、装置は、グループベース通信サーバに、グループベース通信ファイルプレーンテキストを送信するように構成される。
実施形態では、装置は、暗号化キー暗号文に関連付けられたグループベース通信ファイル暗号化キーが少なくとも1つのローカルメモリに格納されていないことが判別されると、グループベース通信ファイルキースコープ要素の集合および暗号化キー暗号文を含む、暗号化キー生成要求を、グループベース通信キーマテリアルソースに送信するように構成される。
実施形態では、装置は、グループベース通信キーマテリアルソースから、グループベース通信ファイル暗号化キーを受信するように構成される。
実施形態では、装置は、少なくとも1つのローカルメモリに、グループベース通信ファイル暗号化キーを格納するように構成される。
実施形態では、グループベース通信検索サーバは、グループベース通信検索インデクス暗号化キー要求を送信する前に、グループベース通信サーバからグループベース通信検索クエリを受信し、グループベース通信サーバは、クライアントデバイスから当該グループベース通信検索クエリを受信している。
実施形態では、グループベース通信検索サーバは、グループベース通信検索結果をグループベース通信サーバおよびグループベース通信リポジトリに返す。
実施形態では、グループベース通信サーバは、グループベース通信検索結果をクライアントデバイスに送信する。
実施形態では、暗号化されたグループベース通信検索インデクス暗号化キーを生成するための装置は、少なくとも1つのプロセッサと、プロセッサによって実行された場合に、暗号化されたグループベース通信検索インデクス暗号化キーを生成するように装置を構成する命令を格納した少なくとも1つの非一時性メモリとを含む。
実施形態では、装置は、グループベース通信検索サーバから、グループベース通信組織識別子に関連付けられたグループベース通信検索インデクス暗号化キーを受信するように構成される。
実施形態では、装置は、少なくとも1つのローカルメモリから、グループベース通信組織識別子に関連付けられた組織暗号化キーを取得するように構成される。
実施形態では、装置は、組織暗号化キーを使用してグループベース通信検索インデクス暗号化キーを暗号化して、暗号化されたグループベース通信検索インデクス暗号化キーを作成するように構成される。
実施形態では、装置は、グループベース通信検索サーバに、暗号化されたグループベース通信検索インデクス暗号化キーを送信するように構成される。
実施形態では、装置は、グループベース通信組織識別子に関連付けられた組織暗号化キーが少なくとも1つのローカルメモリに格納されていないことが判別されると、グループベース通信組織識別子を含む暗号化キー生成要求をグループベース通信キーマテリアルソースに送信するように構成される。
実施形態では、装置は、グループベース通信キーマテリアルソースから、組織暗号化キーを受信し、少なくとも1つのローカルメモリに、組織暗号化キーを格納するように構成される。
実施形態では、グループベース通信検索インデクス暗号化キーは、グループベース通信ストレージ管理サービスによって生成され、グループベース通信検索サーバに送信される。
実施形態では、暗号化されたグループベース通信ファイルをグループベース通信サーバに提供するための装置は、少なくとも1つのプロセッサと、プロセッサによって実行された場合に、暗号化されたグループベース通信ファイルをグループベース通信サーバに提供するように装置を構成する命令を格納した少なくとも1つの非一時性メモリとを含む。
実施形態では、装置は、グループベース通信サーバから、グループベース通信キーファミリ識別子、グループベース通信ファイルキースコープ要素の集合、およびグループベース通信ファイルプレーンテキストを含む、グループベース通信ファイル暗号化要求を受信するように構成される。
実施形態では、装置は、少なくとも1つのローカルメモリから、グループベース通信ファイルキースコープ要素の集合およびキーファミリ識別子に関連付けられたグループベース通信ファイル暗号化キーを取得するように構成される。
実施形態では、装置は、グループベース通信ファイル暗号化キーを使用してグループベース通信ファイルプレーンテキストを暗号化して、グループベース通信ファイル暗号文を作成するように構成される。
実施形態では、装置は、グループベース通信サーバに、グループベース通信ファイル暗号文、グループベース通信ファイルキースコープ要素の集合、およびグループベース通信ファイル暗号化キーに関連付けられた暗号化キー暗号文を送信するように構成され、グループベース通信サーバは、グループベース通信リポジトリに、グループベース通信ファイル暗号文、グループベース通信ファイルキースコープ要素の集合、およびグループベース
通信ファイル暗号化キーに関連付けられた暗号化キー暗号文を格納する。
実施形態では、装置は、グループベース通信ファイルキースコープ要素の集合およびグループベース通信キーファミリ識別子に関連付けられたグループベース通信メッセージ暗号化キーが少なくとも1つのローカルメモリに格納されていないことが判別されると、グループベース通信ファイルキースコープ要素の集合およびグループベース通信キーファミリ識別子を含む、暗号化キー生成要求を、グループベース通信キーマテリアルソースに送信するように構成される。
実施形態では、装置は、グループベース通信キーマテリアルソースから、グループベース通信ファイル暗号化キーおよびグループベース通信メッセージ暗号化キーに関連付けられた暗号化キー暗号文を受信するように構成される。
実施形態では、装置は、グループベース通信ファイル暗号化キーおよびグループベース通信ファイル暗号化キーに関連付けられた暗号化キー暗号文を、少なくとも1つのローカルメモリに格納するように構成される。
実施形態では、復号化されたグループベース通信ファイルをグループベース通信サーバに提供するための装置が、少なくとも1つのプロセッサと、プロセッサによって実行された場合に、復号化されたグループベース通信ファイルをグループベース通信サーバに提供するように装置を構成する命令を格納した少なくとも1つの非一時性メモリとを含む。
実施形態では、装置は、グループベース通信サーバから、グループベース通信ファイルに関連付けられた1つ以上のキースコープ要素を含むグループベース通信ファイルキースコープ要素の集合、暗号化キー暗号文、およびグループベース通信ファイル暗号文を含む、グループベース通信ファイル復号化要求を受信するように構成される。
実施形態では、装置は、少なくとも1つのローカルメモリから、暗号化キー暗号文に関連付けられたグループベース通信ファイル暗号化キーを取得するように構成される。
実施形態では、装置は、グループベース通信ファイル暗号化キーを使用してグループベース通信ファイル暗号文を復号化して、グループベース通信ファイルプレーンテキストを作成するように構成される。
実施形態では、装置は、グループベース通信サーバに、グループベース通信ファイルプレーンテキストを送信するように構成される。
実施形態では、装置は、暗号化キー暗号文に関連付けられたグループベース通信ファイル暗号化キーが少なくとも1つのローカルメモリに格納されていないことが判別されると、グループベース通信ファイルキースコープ要素の集合および暗号化キー暗号文を含む、暗号化キー生成要求を、グループベース通信キーマテリアルソースに送信するように構成される。
実施形態では、装置は、グループベース通信キーマテリアルソースから、グループベース通信ファイル暗号化キーを受信し、少なくとも1つのローカルメモリに、グループベース通信ファイル暗号化キーを格納するように構成される。
コンピュータプログラム製品およびコンピュータ実装方法も、本開示の実施形態を実現するように構成される。
本明細書に記載する主題の1つ以上の形態の詳細は、添付の図面および以下の説明に記載されている。主題の他の特徴、態様および有利な点は、当該説明、図面および特許請求の範囲から明らかとなるであろう。
次に、本発明の種々の実施形態を、本発明の全ての実施形態ではなく、一部の実施形態が示されている添付の図面を参照して、以下でより詳細に説明する。本発明は、実際のところ、多くの異なる形態で具現化することができ、本明細書に記載されている実施形態に限定されると解釈されるべきではない。むしろ、これらの実施形態は、ここでの開示が適用可能な法的要件を満たすように提供されている。本明細書では、特に明記されていない限り、「または」なる語は、代替の意味でも接続詞の意味でも使用されている。「図示の」および「例示的な」なる語は、品質レベルを示さない例として使用されている。同じ番号は、全体を通して同じ要素を指す。
[概要]
データのセキュリティは、データが属するエンティティにとって重要である。このようなエンティティにとっては、データのセキュリティを保護するために、データにアクセスして当該データを利用しうる人によってデータが暗号化されることが好ましい。このような暗号化の例は、「ゼロ知識暗号化」と称され、これは、エンティティがサービスプロバイダのサーバまたはリポジトリに格納するデータについてサービスプロバイダが関知しないことを意味している。こうした暗号化では、サードパーティのエンティティ(すなわち、データを所有する、サードパーティデータの所有者)がそのデータをサービスプロバイダのサーバまたはプロバイダに格納することが好ましいとされうるが、こうしたゼロ知識暗号化では、サービスプロバイダによるデータのいかなる有意な使用も排除されている。データの有意な使用には、検索および機械学習も含まれうる。例えば、データの有意な使用には、サービスプロバイダが提供するサービスについての権限のあるユーザが、所望の
クエリに対する結果(データを含む)を容易に検索して受信できるよう、検索インデクスの生成に使用するためのメタデータへのアクセスも含まれうる。
上記の問題の解決手段として、データが属する(すなわち「サードパーティデータの所有者」である)エンティティ(すなわちサードパーティ)に所有されている暗号化キーを使用することが挙げられる。このような暗号化キーの使用およびサードパーティのエンティティによる制御を通じて、サービスプロバイダは、データおよび関連するメタデータへのアクセスを許可され、有意な検索インデクスを生成することができる。しかし、暗号化キーを使用してサードパーティにグループベース通信データへのアクセスの制御を提供すること、ならびに当該サードパーティにグループベース通信データへのアクセスのログを提供することは、グループベース通信データの量および複雑さが増大するにつれて、手に負えないほどの計算量のタスクとなってしまう。本開示の発明者らは、このようなアクセス制御に利用される計算リソースがこうした計算の複雑性の結果として容易に使い尽くされてしまうことを認識している。
本開示は、サードパーティが制御する暗号化キーへのアクセスの集中化およびカプセル化を提供するものである。集中化されたキーマテリアルソースの使用を通じて、本開示の実施形態は、サードパーティデータの所有者が暗号化キーに対する排他的な制御を保持することを可能にし、これにより、グループベース通信プラットフォームによって維持されておりかつサードパーティデータの所有者によって所有されているグループベース通信データの暗号化および復号化を可能にする。本開示は、グループベース通信メッセージに専用にかつ一意に関連付けられたキースコープ要素(例えばタイムスタンプ)の組み合わせを使用して、グループベース通信メッセージをそのつど暗号化および復号化することにより、自動キーローテーションを可能にする。本開示によって提供される技術的改良の結果、グループベース通信データへのアクセスを効率的かつ安全に制御し、詳細にロギングすることが可能となる。
本開示は、データの部分(すなわち、メッセージ、ファイル、検索インデクス)に関連付けられた1つ以上の一意のキースコープ要素を含むキースコープ要素の集合を使用して、サードパーティが所有するデータへのアクセスの粒度制御を提供する。例えば、キースコープ要素の集合は、複数のキースコープ要素(例えば、組織識別子、チャネル識別子、タイムスタンプ、およびこれらに類似のもの)を含むことができる。このような例では、サードパーティデータの所有者は、特定のグループベース通信チャネルに関連付けられたデータへのアクセスを失効させることを望む場合がある。本開示によれば、特定のグループベース通信チャネルに関連付けられたグループベース通信チャネル識別子を含むキースコープ要素に関連付けられた暗号化キーへのアクセスを失効させることを可能とする一方で、サードパーティデータの所有者が所有する他のデータへのアクセスを引き続き可能とすることができる。このような粒度により、データへのアクセスの制御の効率が向上し、全てのデータへのアクセスが暗号化キーマテリアルの失効によって可能となるまたは不可能となるという「オール‐オア‐ナッシング」である既存のシステムに比べて改善される。
[定義]
「グループベース通信プラットフォーム」なる語は、1つ以上のクライアントデバイスにアクセス可能であり、データベースの操作に関連する複数のソフトウェアアプリケーションへのアクセスを提供するために操作可能なコンピューティングサービスの集合体を指す。一部の例では、グループベース通信プラットフォームは、1つ以上の中央サーバの形態を取ることができ、当該中央サーバは、ソフトウェアアプリケーションを実行する1つ以上の付加的なサーバと通信するように配置され、デジタルコンテンツ項目、アプリケーション関連データおよび/またはこれらに類似のものを格納する1つ以上のデータベース
へのアクセスを有する。また、グループベース通信プラットフォームは、クライアントリテンション設定および他のコンプライアンス面をサポートすることができる。さらに、グループベース通信プラットフォームは、包括的なサードパーティリソース開発者サポートを提供することができ、当該サポートは、データへの適切なアクセスを許可し、(例えば、サードパーティデータの所有者とは別個の)サードパーティのリソース開発者が顧客のワークフローとの統合のためのアプリケーションおよびボットを構築することを可能にする。すなわち、サードパーティのリソース(例えば「アプリ」)開発者は、データへのアクセスに対する制御を望むサードパーティが所有するデータへのアクセスを必要とする場合がある。本開示の実施形態により、サードパーティのリソース開発者が、サードパーティデータの所有者によって制御され、かつサードパーティデータの所有者に可視である方法で、サードパーティが所有するデータにアクセスすることが可能になる。
「通信チャネル」なる語は、システム間およびシステムの一部の間でデータ交換を行うために使用される情報経路および付随する回路を指す。例えば、通信チャネルは、種々のクライアントデバイス間で確立可能であり、これにより、当該クライアントデバイスが互いに通信し、データを共有することが可能となる。ここでの通信チャネルは、グループベース通信チャネルの全てのユーザ(メンバ)間でグループベース通信データを共有するために、クライアントデバイス(およびチャネルメンバとも称される、当該クライアントデバイスのそれぞれのユーザ)の選択されたグループ間で確立された「グループベース通信チャネル」であってよい。
「クライアントデバイス」なる語は、サーバが利用可能としたサービスにアクセスするように構成されたコンピュータのハードウェアおよび/またはソフトウェアを指す。サーバは、(常にではないが)別のコンピュータシステム上にあることが多く、この場合、クライアントデバイスはネットワークを介してサービスにアクセスする。クライアントデバイスは、限定されないが、スマートフォン、タブレットコンピュータ、ラップトップコンピュータ、ウェアラブルデバイス、パーソナルコンピュータ、エンタープライズコンピュータおよびこれらに類似のものを含むことができる。
「ユーザ」なる語は、個人、個人のグループ、ビジネス、組織およびこれらに類似のものを指すと理解されるべきであり、本明細書で言及されるユーザは、クライアントデバイスを使用してグループベース通信システムまたはメッセージングシステムにアクセスしている。本明細書では、「グループベース」とは、定義されたグループのユーザのみがアクセスできるような充分なセキュリティを有するシステム、チャネル、または仮想環境を指すために使用される。グループは、組織のグループまたは営利企業のグループなど、共通のアクセス資格情報によって定義することができる。あるグループメンバのユーザが別の非メンバのユーザに送信した、検証済みの参加の要求または参加の招待によって、アクセスをさらに容易にすることができる。
「ユーザプロファイル」、「ユーザアカウント」および「ユーザアカウント詳細」なる語は、ユーザに関連付けられた情報を指しており、例えば、ユーザ識別子、ユーザがアクセスを許可されたグループベース通信チャネルに関連付けられた1つ以上のグループベース通信チャネル識別子、ユーザが関連付けられたグループの1つ以上のグループ識別子、ユーザがグループベース通信チャネルの所有者であるかどうかの表示、ユーザがグループベース通信チャネルの制限を有しているかどうかの表示、複数のメッセージ、複数の絵文字、複数の会話、複数の会話トピック、アバター、電子メールアドレス、実名(例えばJ
ohn Doe)、ユーザ名(例えばjdoe)、パスワード、実名、タイムゾーン、ス
テータス、およびこれらに類似のものを含む。ユーザアカウント詳細は、例えば、ユーザのユーザ名およびパスワードを含むユーザのログイン情報のような、ユーザ資格情報のサブセット指定を含むことができる。
「グループベース通信チャネル」なる語は、チャネルメンバ(例えば、クライアントデバイスを使用して環境にアクセスする検証済みユーザ)によって投稿されたメッセージング通信または他のグループベース通信データを、グループベース通信チャネルのメンバのみが閲覧可能な状態で表示するように構成された仮想通信環境またはフィードを指す。グループベース通信チャネルのフォーマットは、チャネルの種々のメンバにそれぞれ異なって表示されうるが、グループベース通信チャネルの内容(例えば、メッセージング通信または他のグループベース通信データ)は、チャネルの各メンバに対して(メンバのアクセスレベルに応じて)表示される。例えば、グループベースメッセージング通信の共通のセットは、グループベース通信チャネルの内容(すなわちメッセージング通信)が当該チャネルのメンバごとに異なることがないように、対応するグループベース通信チャネルの各メンバに表示される。
本明細書で使用するように、「メッセージング通信」、「メッセージ」および「グループベース通信メッセージ」なる語は、クライアントデバイスを使用するユーザによって提供され、かつグループベース通信チャネルインタフェース内で表示するように構成された、任意の電子的に生成されたデジタルコンテンツオブジェクトを指す。メッセージ通信は、(クライアントデバイスを使用して)ユーザによって提供される任意のテキスト、画像、動画、音声またはこれらの組み合わせを含むことができる。例えば、ユーザは、メッセージ通信の内容として、テキストだけでなく、メッセージング通信内の画像および動画を含むメッセージング通信を提供してもよい。この場合、テキスト、画像および動画は、メッセージング通信またはデジタルコンテンツオブジェクトを含む。グループベース通信システムのグループベース通信チャネルに送信または投稿される各メッセージは、組織識別子、送信ユーザ識別子、メッセージ識別子、メッセージ内容、ワークスペース識別子、グループ識別子およびグループベース通信チャネル識別子を含む、「グループベース通信メッセージのメタデータ」を含む。上述した各識別子は、ASCIIテキスト、ポインタ、メモリアドレスおよびこれらに類似のものを含むことができる。
グループベース通信チャネルインタフェースにおいて表示されるメッセージは、クライアントデバイス、ゲートウェイサーバおよび/またはチャネルサーバを含むグループベース通信チャネル内のデバイス間で「複製」される。複製により、各メッセージの少なくとも一部分(メッセージ内容および/または添付ファイルを含む)のコピーが、グループベース通信チャネルに関連付けられたデバイスのそれぞれに関連付けられたメモリ内に作成される。複製されたコピーは、単一のデバイス(例えば、単一のクライアントデバイスおよび/または単一のインタフェースコントローラ)から複数のデバイス(例えば、複数のクライアントデバイスおよび/または複数のゲートウェイサーバ)にメッセージ(例えば、メッセージのコピー)を送信することによって生成することができる。しかしながら、メッセージは、単一のデバイスから別個の単一のデバイスにメッセージを送信することによって複製される場合があり、当該プロセスは1回以上繰り返されて、複数のデバイス間でメッセージを複製することができることを理解されたい。特定の実施形態では、複数のゲートウェイサーバと単一チャネルサーバとの間のメッセージ複製により、複数のゲートウェイサーバにまたがって(例えば、各クライアントデバイスは、別個のゲートウェイサーバと通信可能である)、単一チャネルサーバによってサポートされる共通のグループベース通信チャネル内でクライアントデバイスとメッセージを共有することが可能になる。しかしながら、特定の実施形態では、単一のゲートウェイサーバを介してチャネルがサポートされ、したがって、単一のゲートウェイサーバは、こうした構成において適切なクライアントデバイスにメッセージを発信することを理解されたい。
本明細書で使用するように、「ファイル」および「グループベース通信ファイル」なる語は、クライアントデバイスを使用するユーザによって提供され、グループベース通信シ
ステム内で使用するように構成された、任意の電子的に生成されたデジタルコンテンツオブジェクトを指す。ファイルは、(クライアントデバイスを使用して)ユーザによって提供される任意のテキスト、画像、動画、音声またはこれらの組み合わせを含むことができる。例えば、ユーザは、画像および動画だけでなく、テキストを含むファイルを提供することもできる。グループベース通信システム内の各ファイルは、組織識別子、作成ユーザ識別子、ファイル識別子、ファイル内容(またはファイルデータ)、ワークスペース識別子、グループ識別子、グループベース通信チャネル識別子を含む「グループベース通信ファイルのメタデータ」を含む。上述の各識別子は、ASCIIテキスト、ポインタ、メモリアドレスおよびこれらに類似のものを含んでいてよい。
「グループベース通信チャネル識別子」または「チャネル識別子」なる語は、グループベース通信チャネルを識別することができる1つ以上のデータ項目を指す。例えば、グループベース通信チャネル識別子は、ASCIIテキスト、ポインタ、メモリアドレスおよびこれらに類似のものを含んでいてよい。
「グループ識別子」または「チーム識別子」なる語は、グループベース通信システム内のグループを識別することができる1つ以上のデータ項目を指す。例えば、グループ識別子は、ASCIIテキスト、ポインタ、メモリアドレスおよびこれらに類似のものを含んでいてよい。
「送信ユーザ識別子」または「グループベース通信メッセージ送信者識別子」は、特定の「送信」ユーザ(すなわち、特定のユーザに関連付けられたクライアントデバイス)によって送信されるメッセージの集合体に関連付けられており、当該送信ユーザ識別子は、送信ユーザを一意に識別することができる1つ以上のデータ項目である。当該メッセージは、ユーザに関するコンテキストを判別するために分析することができる(例えば、トピックに対するユーザの専門知識または関心を、こうしたメッセージ内でのトピックの言及頻度またはトピックに関連するキーワードに基づいて判別することができる)。また、「送信ユーザ識別子」に関連付けられた「送信ユーザ」は、本明細書では「グループベース通信メッセージ送信者」と称されることもある。すなわち、「送信ユーザ識別子」または「グループベース通信メッセージ送信者識別子」は、「グループベース通信メッセージ送信者」を一意に識別することができる1つ以上のデータ項目であってよい。
グループベース通信システムまたはプラットフォームのユーザは、組織グループ(例えば、各企業の従業員は、別個の組織グループであってもよい)へと編成されており、各組織グループ(すなわちグループベース通信組織)は、1つ以上のグループベース通信チャネルを有することができ、当該チャネルにユーザを割り当てることができ、またはユーザが参加可能である(例えば、グループベース通信チャネルは、部署、オフィスのような地理的な場所、製品ライン、ユーザの関心、トピック、問題、および/またはこれらに類似のものを表すことができる)。
「グループベース通信組織識別子」とは、グループベース通信組織を一意に識別することができる1つ以上のデータ項目を指す。グループベース通信組織識別子は、メッセージまたは他のコンテンツへのアクセスの制御を容易にするために使用することができる(例えば、検索クエリに応答して検索結果の一部としてメッセージを返させるなどのメッセージへのアクセスは、ユーザプロファイルに関連付けられたグループベース通信組織識別子を有するユーザに制限可能である)。グループベース通信組織識別子は、メッセージのコンテキストを判別するために使用することができる(例えば、組織名および/または組織の簡単な説明などのグループの説明を、グループ識別子に関連付けることができる)。
また、グループベース通信システムのユーザは、グループベース通信ワークスペースへ
と編成可能である。このように、グループベース通信システムのユーザによって送信される通信は、「グループベース通信ワークスペース識別子」に関連付けることができる。グループベース通信ワークスペース識別子は、グループベース通信ワークスペースを一意に識別することができる1つ以上のデータ項目を含む。例えば、グループベース通信組織識別子は、ASCIIテキスト、ポインタ、メモリアドレスおよびこれらに類似のものを含んでいてよい。
グループベース通信ワークスペースは、複数のグループベース通信チームにおいて編成された複数のグループベース通信チャネルを含むことができる。グループベース通信組織は、相互に接続された複数のワークスペースを含むことができる。実施形態では、グループベース通信チャネルは、グループベース通信ワークスペース間で共有可能である。
グループベース通信システムのユーザは、グループベース通信チャネルに参加することができる。一部のグループベース通信チャネルは、ユーザプロファイルに関連付けられた特定の組織グループ識別子(例えばグループベース通信組織識別子)を有するユーザ(例えば、組織のメンバであるユーザ)にグローバルにアクセス可能でありうる。一部のグループベース通信チャネルへのアクセスは、指定されたグループのメンバに制限可能であり、それにより、グループベース通信チャネルは、ユーザプロファイルに関連付けられた特定のグループ識別子を有するユーザにアクセス可能である。グループベース通信チャネル識別子は、メッセージへのアクセスの制御を容易にするために使用することができる(例えば、検索クエリに応答して検索結果の一部としてメッセージを返させるなどのメッセージへのアクセスは、ユーザプロファイルに関連付けられたグループベース通信チャネル識別子を有するユーザ、またはグループベース通信チャネルに参加する能力を有するユーザに制限可能である)。グループベース通信チャネル識別子は、メッセージのコンテキストを判別するために使用することができる(例えば、グループベース通信チャネルで議論されたプロジェクトの説明などのグループベース通信チャネルの説明を、グループベース通信チャネル識別子に関連付けることができる)。
「プライベートグループベース通信チャネル」なる語は、グループベース通信システムの他のメンバが概してアクセス可能でないかつ/または検索可能でないようにアクセスが制限されているグループベース通信チャネルを指す。例えば、プライベートグループベース通信チャネルの知識を有し、アクセスが許可されているユーザまたは管理者(例えば、プライベートグループベース通信チャネルのグループベース通信チャネル識別子は、ユーザが検証/認証された後にユーザプロファイルに関連付けられる)のみが、プライベートグループベース通信チャネルのコンテンツを閲覧することができる。
「グループベース通信データ」なる語は、設定、パラメータ、グループベース通信チャネル、グループベース通信組織、グループベース通信プラットフォームとの電子インタラクション、グループベース通信チャネル/組織/チームメンバ、グループベース通信メッセージ(最新メッセージ、ダイレクトメッセージ)、ファイルおよびこれらに類似のものを表す電子データ構造を指す。
「グループベース通信暗号化キー管理サービス」、「グループベース通信暗号化キー管理システム」および「グループベース通信暗号化キー管理サーバ」なる語は、グループベース通信プラットフォーム内でグループベース通信メッセージデータおよびグループベース通信検索インデクス暗号化キーの暗号化および復号化を管理するように構成された、1つ以上のコンピューティングエンティティを指す。「暗号化キー管理サーバ」、「暗号化キー管理システム」、および「暗号化キー管理サービス」なる語は、通信プラットフォーム内でデータおよび暗号化キーの暗号化および復号化を管理するように構成された、1つ以上のコンピューティングエンティティを指す。
「グループベース通信検索サーバ」なる語は、グループベース通信検索クエリを処理すると共に、暗号化されたグループベース通信検索インデクス暗号化キーおよびグループベース通信検索インデクスを格納するように構成された、1つ以上のコンピューティングエンティティを指す。
「グループベース通信キーマテリアルソースサーバ」、「グループベース通信キーマテリアルソースサービス」、「グループベース通信キーマテリアルソース」および「キーマテリアルソース」なる語は、グループベース通信または他の通信プラットフォーム内で暗号化およびキー管理をサポートするように構成された、1つ以上のコンピューティングエンティティを指す。実施形態では、グループベース通信キーマテリアルソースサーバは、グループベース通信リポジトリ内に格納されている全てのグループベース通信データのための暗号化キーを生成し、維持する。実施形態では、グループベース通信キーマテリアルソースサーバは、グループベース通信暗号化キー管理サービスから受信した暗号化キー要求に応答して暗号化キーを提供する。実施形態では、グループベース通信キーマテリアルソースサービスは、AWS(登録商標)KMSによってサポート可能である。
「グループベース通信ストレージ管理サービス」、「グループベース通信ストレージ管理サーバ」および「グループベース通信ストレージ管理サービス」なる語は、グループベース通信データのストレージを管理すると共に、グループベース通信データに基づいて検索インデクスを構築するように構成された、1つ以上のコンピューティングエンティティを指す。グループベース通信ストレージ管理サービスは、こうした機能を容易にするために、1つ以上のグループベース通信ストレージ管理リポジトリを採用することができる。例えば、第1のグループベース通信ストレージ管理リポジトリは、グループベース通信検索インデクスの生成に使用するために、復号化されたグループベース通信データ(すなわちプレーンテキスト)を格納することができる。実施形態では、第2のグループベース通信ストレージ管理リポジトリは、暗号化されたグループベース通信データだけでなく、暗号化されたグループベース通信検索インデクス暗号化キーを格納することもできる。
「グループベース通信キーファミリ識別子」なる語は、暗号化キーファミリを一意に識別することができる1つ以上のデータ項目を指す。暗号化キーファミリは、特定の組織またはグループのユーザまたはコンピューティングデバイスに関連付けられた暗号化キーのグループ化を表すことができ、暗号化キーファミリは、タイプまたは暗号化キーとキーマテリアルの場所とを表すことができる。実施形態では、グループベース通信暗号化キーマテリアルソースは、グループベース通信キーファミリ識別子にしたがって、特定の組織またはグループのユーザまたはコンピューティングデバイスのための暗号化キーを編成する。実施形態では、グループベース通信キーマテリアルソースへのアクセスのサードパーティコントローラは、自己のデータのために暗号化キーファミリをローテーションさせることもできる。
「暗号化要求」なる語は、データの暗号化を電子的に要求することを指す。より具体的には、当該要求は、暗号化アルゴリズムに基づき、暗号化キーを使用してプレーンテキストから暗号文へのデータの変換を行うことである。実施形態では、暗号化要求は、暗号化キー要求データ構造および暗号化要求プレーンテキストを含む。実施形態では、暗号化要求は、グループベース通信メッセージまたはファイル暗号化要求であってよく、または暗号化要求は、グループベース通信検索インデクス暗号化キー暗号化要求であってもよい。
「暗号化要求エラー」なる語は、グループベース通信暗号化キー管理サーバから要求元サーバに送信される電子メッセージであって、要求された暗号化キーへのアクセスが拒否されたことを示す暗号化要求エラーメッセージを指す。
「カプセル化アクセス」なる語は、グループベース通信暗号化キー管理サーバによって提供される機能を指しており、これにより、グループベース通信システムによって格納されているがサードパーティデータの所有者によって所有されているデータに関連付けられている暗号化キーマテリアルへのアクセスが、サードパーティデータの所有者によって制御可能となる。サードパーティデータの所有者が所有するデータに関連付けられた暗号化キーマテリアル(例えば暗号化キー)であって、グループベース通信キーマテリアルソースから提供されるものは、グループベース通信暗号化キー管理サーバの外部にプレーンテキストで送信されることはない。
「復号化要求エラー」なる語は、グループベース通信暗号化キー管理サーバから要求元サーバに送信される電子メッセージであって、要求された暗号化キーへのアクセスが拒否されたことを示す復号化要求エラーメッセージを指す。
「チャネル履歴プレースホルダテキスト」なる語は、グループベース通信チャネルインタフェース内でレンダリング可能なデータを指しており、当該データは、グループベース通信データを表す。
「暗号化キー要求データ構造」なる語は、暗号化要求に関連付けられたキーマテリアルのスコープを表す複数のレコードを有するデータ構造を指す。実施形態では、暗号化キー要求データ構造は、キースコープ要素の集合、グループベース通信組織識別子、およびグループベース通信キーファミリ識別子のうちの1つ以上を含んでいてよい。
「グループベース通信メッセージ暗号化要求」なる語は、グループベース通信メッセージデータの暗号化を電子的に要求することを指す。より具体的には、当該要求は、暗号化アルゴリズムに基づき、暗号化キーを使用してプレーンテキストから暗号文へのグループベース通信メッセージデータの変換を行うことである。実施形態では、グループベース通信メッセージ暗号化要求は、グループベース通信ファミリキー識別子、グループベース通信メッセージキースコープ要素の集合、およびグループベース通信プレーンテキストを含む。
「グループベース通信メッセージプレーンテキスト」なる語は、暗号化されていないグループベース通信メッセージデータを指す。実施形態では、グループベース通信メッセージプレーンテキストは、暗号化アルゴリズムに入力される、暗号化されていない情報である。
「暗号化要求プレーンテキスト」なる語は、暗号化されていないデータを指す。実施形態では、暗号化要求プレーンテキストは、暗号化アルゴリズムに入力される、暗号化されていない情報である。
「グループベース通信メッセージ暗号文」なる語は、暗号化されたグループベース通信メッセージデータを指す。実施形態では、グループベース通信メッセージ暗号文は、グループベース通信メッセージに対して実行される暗号化アルゴリズムから出力される、暗号化された情報である。
「復号化要求暗号文」なる語は、暗号化されたデータを指す。実施形態では、復号化要求暗号文は、データに対して実行される暗号化アルゴリズムから出力される、暗号化された情報である。
「グループベース通信ファイル暗号化要求」なる語は、グループベース通信ファイルの
暗号化を電子的に要求することを指す。より具体的には、当該要求は、暗号化アルゴリズムに基づき、暗号化キーを使用してプレーンテキストから暗号文へのファイルデータの変換を行うことである。実施形態では、グループベース通信ファイル暗号化要求は、グループベース通信ファミリキー識別子、グループベース通信ファイルキースコープ要素の集合、およびグループベース通信ファイルプレーンテキストを含む。
「グループベース通信ファイルプレーンテキスト」なる語は、暗号化されていないグループベース通信ファイルデータを指す。実施形態では、グループベース通信ファイルプレーンテキストは、暗号化アルゴリズムに入力される、暗号化されていない情報である。
「グループベース通信ファイル暗号文」なる語は、暗号化されたグループベース通信ファイルデータを指す。実施形態では、グループベース通信ファイル暗号文は、グループベース通信ファイルに対して実行される暗号化アルゴリズムから出力される、暗号化された情報である。
「グループベース通信メッセージキースコープ要素」なる語は、グループベース通信メッセージに関連付けられた暗号化キーのスコープを表すデータ構造内に含まれるレコードを指す。実施形態では、グループベース通信メッセージキースコープ要素は、グループベース通信組織識別子、グループベース通信ワークスペース識別子、グループベース通信チャネル識別子、およびタイムスタンプのうちの1つである。グループベース通信メッセージキースコープ要素は、タイムスタンプと共に、本明細書に記載されていない任意の修飾子のセットでありうることが理解されるであろう。キースコープ要素としてタイムスタンプを含めることで、組み込まれたまたは自動化されたキーローテーションが提供されることが理解されるであろう。グループベース通信メッセージへのアクセスは、これに関連付けられた1つ以上のキースコープ要素に基づいて失効させることができる。例えば、所与のグループベース通信チャネル識別子に関連付けられたいずれかのグループベース通信メッセージ暗号化キーを、(グループベース通信ファイルに関連付けられたサードパーティデータの所有者からの命令によって)グループベース通信キーマテリアルソースによって無効にし、したがって使用不能にすることができる。さらに、所与のグループベース通信組織識別子(または他のグループベース通信メッセージキースコープ要素もしくはグループベース通信メッセージキースコープ要素の組み合わせ)に関連付けられたいずれかのグループベース通信メッセージ暗号化キーを、(グループベース通信ファイルに関連付けられたサードパーティデータの所有者からの命令によって)グループベース通信キーマテリアルソースによって無効にし、したがって使用不能にすることができる。
「グループベース通信ファイルキースコープ要素」なる語は、グループベース通信ファイルに関連付けられた暗号化キーのスコープを表すデータ構造に含まれるレコードを指す。実施形態では、グループベース通信ファイルキースコープ要素は、グループベース通信組織識別子、グループベース通信ワークスペース識別子、グループベース通信チャネル識別子、ファイル識別子(例えば、ファイルを一意に識別することができるデータの1つ以上の項目)、およびタイムスタンプのうちの1つである。グループベース通信ファイルへのアクセスは、これに関連付けられた1つ以上のキースコープ要素に基づいて失効させることができる。例えば、所与のグループベース通信ファイル識別子に関連付けられた任意のグループベース通信ファイル暗号化キーを、(グループベース通信ファイルに関連付けられたサードパーティデータの所有者からの命令によって)グループベース通信キーマテリアルソースによって無効にし、したがって使用不能にすることができる。さらに、所与のグループベース通信組織識別子(または他のグループベース通信ファイルキースコープ要素もしくはグループベース通信ファイルキースコープ要素の組み合わせ)に関連付けられた任意のグループベース通信ファイル暗号化キーを、(グループベース通信ファイルに関連付けられたサードパーティデータの所有者からの命令によって)グループベース通信
キーマテリアルソースによって無効にし、したがって使用不能にすることができる。
「グループベース通信メッセージキースコープ要素の集合」なる語は、グループベース通信メッセージに関連付けられた複数のグループベース通信メッセージキースコープ要素を含むデータ構造を指す。
「グループベース通信ファイルキースコープ要素の集合」なる語は、グループベース通信ファイルに関連付けられた複数のグループベース通信ファイルキースコープ要素を含むデータ構造を指す。
「暗号化キー」なる語は、暗号化アルゴリズムの機能的な出力を決定する情報のデジタル部分(例えば、データ構造、1つ以上のデータ項目およびこれらに類似のもの)を指す。暗号化キーは、グループベース通信データプレーンテキスト(または他のプレーンテキスト)の、グループベース通信データ暗号文(または他の暗号文)への変換、かつ/またはその逆の変換を指定する。また、暗号化キーは、グループベース通信検索インデクス暗号化キーの、暗号化されたグループベース通信検索インデクス暗号化キーへの変換を指定することもできるし、その逆の変換も指定することができる。
「グループベース通信メッセージ暗号化キー」なる語は、グループベース通信メッセージ専用に生成された暗号化キーを指す。実施形態では、グループベース通信メッセージ暗号化キーは、グループベース通信キーマテリアルソースによって生成されており、特定のグループベース通信メッセージキースコープの集合および特定のグループベース通信メッセージに関連付けられたグループベース通信キーファミリ識別子に関連付けられている。
「グループベース通信ファイル暗号化キー」なる語は、グループベース通信ファイル専用に生成された暗号化キーを指す。実施形態では、グループベース通信メッセージ暗号化キーは、グループベース通信キーマテリアルソースによって生成されており、特定のグループベース通信ファイルキースコープ要素の集合、および特定のグループベース通信ファイルに関連付けられたグループベース通信キーファミリ識別子に関連付けられている。
「暗号化キー管理キャッシュ持続期間」なる語は、暗号化キーを格納するローカルキャッシュがリフレッシュされるべき特定のタイムスタンプに関するネットワーク時間の尺度を指す。例えば、暗号化キー管理キャッシュ持続期間は、ネットワーク時間の特定の期間を含むことができ、特定のタイムスタンプが発生した後、ネットワーク時間の当該特定の期間が終了すると、暗号化キーを格納しているローカルキャッシュまたはメモリをフラッシュまたはリフレッシュすることができる。
「アクセスログデータ構造」なる語は、グループベース通信メッセージ暗号化要求、グループベース通信メッセージ復号化要求、グループベース通信検索インデクス暗号化キー要求、グループベース通信ファイル暗号化要求、グループベース通信ファイル復号化要求、およびこれらに類似のものを表す電子データ構造を指す。実施形態では、アクセスログデータ構造は、グループベース通信メッセージまたはファイル識別子、グループベース通信メッセージまたはファイルキースコープ要素の集合、タイムスタンプ、要求に関連付けられたユーザ識別子、および要求理由コードを含む。実施形態では、アクセスログデータ構造は、グループベース通信検索インデクス暗号化キー識別子および要求理由コードを含む。
「要求理由コード」なる語は、グループベース通信メッセージまたはファイルの暗号化要求または復号化要求の理由を表すアクセスログデータ構造内のレコードを指す。また、要求理由コードは、グループベース通信検索インデクス暗号化キー要求の理由を表すこと
もできる。実施形態では、要求理由コードは、
‐(eディスカバリまたはデータ損失防止演習のための)ディスカバリ
‐履歴(読み取り/表示のために、グループベース通信メッセージ/ファイル(またはグループベース通信メッセージ/ファイルのメタデータ)を取得する)
‐エクスポート(グループベース通信データをエクスポートする)、
‐ラーニング・インテリジェンス・トレーニング(グループベース通信データを利用して機械学習モデルをトレーニングする)、
‐通知(クライアントデバイス(すなわち、モバイルデバイス、デスクトップ)へ通知を送信する)、
‐検索インデクス作成(グループベース通信データをグループベース通信システム内のユーザが検索して取得できるようにインデクス作成を実行する)、
‐送信(グループベース通信メッセージ、ファイル(すなわち、投稿、スニペット)またはグループベース通信メッセージ/ファイルのメタデータを書き込む。グループベース通信プラットフォーム内のユーザによるグループベース通信メッセージ/ファイルの有意な送信を書き込む)、
‐アップロード(グループベース通信メッセージまたはファイルをグループベース通信ストレージ管理システムまたはリポジトリにアップロードする)、
‐バックフィル(それぞれ暗号化管理システムへの登録、キーの再生成、または登録解除を実行するために、全てのグループベース通信メッセージおよびファイルデータを処理(つまり、暗号化、再暗号化、復号化)する)、
‐検索クエリ作成(グループベース通信システム内のクライアントデバイスから受信した検索クエリを処理する)、
のいずれかであってよい。
「グループベース通信メッセージ復号化要求」なる語は、グループベース通信メッセージデータの復号化を電子的に要求することを指す。より具体的には、当該要求は、暗号化アルゴリズムに基づき、暗号化キーを使用して暗号文からプレーンテキストへのグループベース通信メッセージデータの変換を行うことである。実施形態では、グループベース通信メッセージ復号化要求は、グループベース通信メッセージキースコープ要素の集合、(グループベース通信メッセージに関連付けられたグループベース通信メッセージ暗号化キーに関連付けられた)暗号化キー暗号文、およびグループベース通信メッセージ暗号文を含む。
「復号化要求」なる語は、データの復号化を電子的に要求することを指す。より具体的には、当該要求は、暗号化アルゴリズムに基づき、暗号化キーを使用して暗号文からプレーンテキストへのデータ変換を行うことである。実施形態では、復号化要求は、暗号化要求データ構造、(暗号化キーに関連付けられた)暗号化キー暗号文、および復号化要求暗号文を含む。実施形態では、復号化要求は、グループベース通信メッセージまたはファイル復号化要求であってよい。実施形態では、復号化要求は、グループベース通信検索インデクス暗号化キーの要求であってもよい。
「グループベース通信ファイル復号化要求」なる語は、グループベース通信ファイルデータの復号化を電子的に要求することを指す。より具体的には、当該要求は、暗号化アルゴリズムに基づき、暗号化キーを使用して暗号文からプレーンテキストへのグループベース通信ファイルデータの変換を行うことである。実施形態では、グループベース通信ファイル復号化要求は、グループベース通信ファイルキースコープ要素の集合、(グループベース通信ファイルに関連付けられたグループベース通信ファイル暗号化キーに関連付けられた)暗号化キー暗号文、およびグループベース通信ファイル暗号文を含む。
「暗号化キー暗号文」なる語は、暗号化された暗号化キーデータを指す。実施形態では
、暗号化キー暗号文は、暗号化キーに対して実行される暗号化アルゴリズムから出力される、暗号化された情報である。例えば、キーマテリアルソースから受信した暗号化キーは、プレーンテキストとして、また暗号化キーの暗号文バージョン(すなわち、暗号化キー暗号文)を伴って、提供可能である。
「暗号化キー生成要求」なる語は、グループベース通信暗号化キー管理サーバから、情報(例えば、メッセージ、ファイル、検索インデクスキー)の暗号化または復号化に使用する暗号化キーをグループベース通信キーマテリアルソースに電子的に送信することを指す。実施形態では、暗号化キー生成要求は、グループベース通信キーファミリ識別子、暗号化キー暗号文、およびグループベース通信組織識別子、グループベース通信ワークスペース識別子、グループベース通信チャネル識別子、グループベース通信ユーザ識別子、ファイル識別子またはタイムスタンプのうちの1つ以上を含むキースコープ要素の集合のうちの1つ以上を含む。暗号化キーとの関連付けに使用されるキースコープ要素は、残っているタイムスタンプを除いて、異なる実施形態に応じて変化しうることが理解されるであろう。他の実施形態では、タイムスタンプはキースコープ要素でなくてもよい。
「グループベース通信検索インデクス」および「検索インデクス」なる語は、グループベース通信リポジトリからのグループベース通信データの取得操作の速度を向上させるためのデータ構造を指す。検索インデクスを使用すれば、データベーステーブルにアクセスするたびにデータベーステーブルの全ての行を検索する必要がなく、データを素早く見つけることができる。インデクスは、データベーステーブルの1つ以上の列を使用して作成することができ、これにより迅速なランダムルックアップと順序付きレコードの効率的なアクセスの両方の基礎が提供される。
「グループベース通信検索インデクス暗号化キー要求」なる語は、グループベース通信検索インデクスに関連付けられた暗号化キー(例えば、グループベース通信検索インデクス暗号化キー)の暗号化または復号化を電子的に要求することを指す。実施形態では、グループベース通信検索インデクスキー暗号化要求は、(暗号化要求ではプレーンテキストとしての、復号化要求では暗号文または「暗号化された検索インデクス暗号化キー」としての)検索インデクス暗号化キー、およびグループベース通信組織識別子を含む。実施形態では、検索インデクス暗号化キーは、検索インデクスを暗号化するために生成されたランダム暗号化キーである。実施形態では、検索インデクス暗号化キーは、グループベース通信ストレージ管理システムによって生成され、グループベース通信暗号化キー管理サービスに送信される。実施形態では、グループベース通信検索インデクスキー暗号化要求は、暗号化された検索インデクス暗号化キーおよびグループベース通信組織識別子を含む。
「グループベース通信検索クエリ」なる語は、グループベース通信プラットフォームのユーザが、情報取得のニーズを満たすために、コンピューティングデバイスを使用してグループベース通信インタフェースに入力するクエリを指す。グループベース通信検索クエリは、情報クエリ(すなわち、メッセージ、ファイル、ユーザ、トピックおよびこれらに類似のもの)、ナビゲーショナルクエリ(すなわち、グループベース通信チャネル、ワークスペース、メッセージおよびこれらに類似のもの)、および/またはトランザクションクエリに関連する、グループベース通信システム情報のクエリを含む。
「グループベース通信検索結果」なる語は、グループベース通信検索クエリに応答して返されたグループベース通信データを含む結果の一覧を指す。実施形態では、グループベース通信検索結果は、グループベース通信検索クエリの検索条件に合致するグループベース通信メッセージ、ファイルおよびこれらに類似のものの識別子を含んでもよい。
「グループベース通信検索インデクス暗号化キー」なる語は、特定のグループベース通
信検索インデクスの暗号化のために専用に生成された暗号化キーを指す。実施形態では、グループベース通信検索インデクス暗号化キーは、グループベース通信組織識別子に関連付けられている。上述したように、実施形態では、グループベース通信検索インデクス暗号化キーは、グループベース通信ストレージ管理システムによって生成され、グループベース通信暗号化管理システムに送信され、グループベース通信キーマテリアルソースを介して暗号化される。グループベース通信検索インデクス暗号化キーはこのように生成されるため、グループベース通信キーマテリアルソースを使用して生成された暗号化キーは、グループベース通信暗号化管理システムの外部に送信されることはない。
「暗号化されたグループベース通信検索インデクス暗号化キー」または「暗号化された検索インデクス暗号化キー」なる語は、暗号化されたグループベース通信検索インデクス暗号化キーを指しており、ここで、グループベース通信検索インデクス暗号化キーは、グループベース通信検索インデクス暗号化キーによって暗号化されたグループベース通信検索インデクスに関連付けられたグループベース通信組織識別子に関連付けられた組織暗号化キーを使用して暗号化されている。
[システムアーキテクチャの例]
本開示の方法、装置、およびコンピュータプログラム製品は、種々のデバイスのいずれかによって具現化することができる。例えば、例示的な実施形態の方法、装置、およびコンピュータプログラム製品は、サーバまたは他のネットワークエンティティなどのネットワーク化されたデバイス(例えば、エンタープライズプラットフォーム)によって具現化可能であり、1つ以上のデバイス、例えば1つ以上のクライアントデバイスと通信するように構成されている。付加的にもしくは代替的に、コンピューティングデバイスは、パーソナルコンピュータまたはコンピュータワークステーションなどの固定コンピューティングデバイスを含んでもよい。さらに、例示的な実施形態は、携帯型デジタルアシスタント(PDA)、携帯電話機、スマートフォン、ラップトップコンピュータ、タブレットコンピュータ、ウェアラブルデバイス、または上述のデバイスの任意の組み合わせなどの種々のモバイルデバイスのいずれかによって具現化可能である。
図1は、本開示の実施形態が動作しうる例示的なコンピューティングシステム100を示す。ユーザは、クライアントデバイス101A~101Nを使用し、通信ネットワーク104を介してグループベース通信システム105にアクセスすることができる。グループベース通信システム105は、少なくとも1つのグループベース通信リポジトリ107と通信するグループベース通信サーバ106を含むことができる。
通信ネットワーク104は、例えば、有線または無線のローカルエリアネットワーク(LAN)、パーソナルエリアネットワーク(PAN)、メトロポリタンエリアネットワーク(MAN)、ワイドエリアネットワーク(WAN)またはこれらに類似のものを含む任意の有線または無線通信ネットワークと、その実装に必要な任意のハードウェア、ソフトウェアおよび/またはファームウェア(例えばネットワークルータなど)とを含んでもよい。例えば、通信ネットワーク104は、携帯電話機、802.11、802.16、802.20、および/またはWiMaxネットワークを含むことができる。さらに、通信ネットワーク104は、インターネットのようなパブリックネットワーク、イントラネットのようなプライベートネットワークまたはこれらの組み合わせを含んでもよく、TCP/IPベースのネットワーキングプロトコルを含むがこれらに限定されない、現在利用可能または後に開発された種々のネットワーキングプロトコルを利用することができる。例えば、ネットワークプロトコルは、エンタープライズグループベース通信システムのニーズに合わせてカスタマイズ可能である。一部の実施形態では、プロトコルは、ウェブソケットチャネルを介して送信されるJSONオブジェクトのカスタムプロトコルである。一部の実施形態では、プロトコルは、RPC上のJSON、REST/HTTP上のJSO
Nおよびこれらに類似のものである。
グループベース通信サーバ106は、1台のコンピュータまたは複数のコンピュータとして具現化することができる。グループベース通信サーバ106は、クライアントデバイス101A~101Nを含むが、必ずしもこれに限定されない種々のソースからの電子データを受信するために提供することができる。例えば、グループベース通信サーバ106は、クライアントデバイス101A~101Nが提供するグループベースメッセージング通信を受信し、投稿または送信するために操作可能であってもよい。
グループベース通信リポジトリ107は、1台のネットワークアタッチドストレージ(NAS)デバイスもしくは複数のNASデバイスのようなデータストレージデバイスとして具現化することができ、または1台の別個のデータベースサーバもしくは複数の別個のデータベースサーバとして具現化することができる。グループベース通信リポジトリ107は、グループベース通信システム105の操作を容易にするために、グループベース通信サーバ106によってアクセスおよび格納される情報を含む。例えば、グループベース通信リポジトリ107は、限定されないが、複数のグループベース通信チャネル間で編成された複数のメッセージング通信、および/またはこれらに類似のものを含んでいてよい。
グループベース通信システムまたはプラットフォーム105は、1つ以上のグループベース通信検索サーバ108、グループベース通信暗号化キー管理サービス109(または実施形態では、暗号化キー管理サービス)、グループベース通信ストレージ管理サービス110、およびグループベース通信キーマテリアルソースサーバ111(例えば、グループベース通信キーマテリアルソースサーバ111は、グループベース通信システム105から離れたサードパーティによって制御可能である)(実施形態では、キーマテリアルソース)をさらに含むことができる。1つ以上のグループベース通信検索サーバ108、グループベース通信暗号化キー管理サービス109、グループベース通信ストレージ管理サービス110、およびグループベース通信キーマテリアルソースサーバ111は、グループベース通信サーバ106およびグループベース通信リポジトリ107と共に、本明細書に記載されているようなセキュアな暗号化通信および暗号化キー管理をサポートするように構成されている。
クライアントデバイス101A~101Nは、上記で定義したような任意のコンピューティングデバイスとすることができる。グループベース通信サーバ106がクライアントデバイス101A~101Nから受信した電子データは、種々の形態および種々の方法で提供することができる。例えば、クライアントデバイス101A~101Nは、デスクトップコンピュータ、ラップトップコンピュータ、スマートフォン、ネットブック、タブレットコンピュータ、ウェアラブルデバイスおよびこれらに類似のものを含んでもよい。実施形態では、クライアントデバイス101A~101Nは、人間の指示下にあるだけでなく、実際にはコンピューティングエンティティ(すなわち「ボット」)の制御下にあるコンピューティングデバイスであってよい。また、クライアントデバイス101A~101Nは、サードパーティアプリケーションなどのサードパーティリソースによって具現化可能であることが理解されるであろう。こうした実施形態では、アプリケーションおよびボットは、グループベース通信システムのエコシステム内で共有することができる。
クライアントデバイス101A~101Nがスマートフォンまたはタブレットなどのモバイルデバイスである実施形態では、クライアントデバイス101A~101Nは、グループベース通信システム105と相互作用するための「アプリ」を実行することができる。このようなアプリは、通常、タブレットまたはスマートフォンなどのモバイルデバイスで実行するように設計されている。例えば、iOS(登録商標)、Android(登録
商標)、Windows(登録商標)などのモバイルデバイスのオペレーティングシステム上で実行されるアプリを提供してもよい。当該プラットフォームは、通常、アプリが互いに通信し、かつモバイルデバイスの特定のハードウェアおよびソフトウェアのコンポーネントと通信することを可能にするフレームワークを提供する。例えば、上述したモバイルオペレーティングシステムは、それぞれ、位置情報サービス回路、有線および無線ネットワークインタフェース、ユーザコンタクト、ならびに他のアプリケーションと相互作用するためのフレームワークを提供する。アプリの外部で実行されるハードウェアおよびソフトウェアモジュールとの通信は、通常、モバイルデバイスのオペレーティングシステムによって提供されるアプリケーションプログラミングインタフェース(API)を介して提供される。
付加的にもしくは代替的に、クライアントデバイス101A~101Nは、ウェブブラウザを介してグループベース通信システム105と相互作用することもできる。さらに別の例として、クライアントデバイス101A~101Nは、グループベース通信システム105とのインタフェースを有するように設計された種々のハードウェアまたはファームウェアを含んでもよい。
例示的なグループベース通信システム105の一部の実施形態では、メッセージ通信またはメッセージング通信が、クライアントデバイス101A~101Nからグループベース通信システム105に送信可能である。種々の実装形態において、メッセージは、クライアントデバイス101A~101Nによって直接に、通信ネットワーク104を介してグループベース通信システム105に送信可能であり、メッセージは、メッセージサーバおよび/またはこれらに類似のものなどの仲介者を介してグループベース通信システム105に送信可能である。例えば、クライアントデバイス101A~101Nは、クライアントアプリケーション(例えば、エンタープライズグループベース通信アプリ)を実行しているデスクトップ、ラップトップ、タブレット、スマートフォンおよび/またはこれらに類似のものであってよい。一実装形態では、メッセージは、メッセージ識別子、送信ユーザ識別子、グループ識別子、グループベース通信チャネル識別子、メッセージ内容(例えばテキスト、絵文字、画像、リンク)、添付ファイル(例えばファイル)、メッセージ階層データ(例えば、メッセージは別のメッセージへの返信であってもよい)、サードパーティのメタデータ、および/またはこれらに類似のもののデータを含んでもよい。一実施形態では、クライアントデバイス101A~101Nは、eXtensible Markup Language(「XML」)フォーマットされたデータを含む実質的に(セキュアな)ハイパーテキスト転送プロトコル(「HTTP(S)」)POSTメッセージの形態で以下の例示的なメッセージを提供することができる。
POST /authrequest.php HTTP/1.1
Host: www.server.com
Content-Type: Application/XML
Content-Length: 667
<?XML version = “1.0” encoding = “UTF-8”?>
<auth_request>
<timestamp>2020-12-31 23:59:59</timestamp>
<user_accounts_details>
<user_account_credentials>
<user_name>ID_user_1</user_name>
<password>abc123</password>
//OPTIONAL <cookie>cookieID</cookie>
//OPTIONAL <digital_cert_link>www.mydigitalcertificate.com/ JohnDoeDaDoeDoe@gmail.com/mycertifcate.dc</digital_cert_link>
//OPTIONAL <digital_certificate>_DATA_</digital_certificate>
</user_account_credentials>
</user_accounts_details>
<client_details> //iOS Client with App and Webkit
//it should be noted that although several client details
//sections are provided to show example variants of client
//sources, further messages will include only on to save
//space
<client_IP>10.0.0.123</client_IP>
<user_agent_string>Mozilla/5.0 (iPhone; CPU iPhone OS 7_1_1 like Mac OS X) AppleWebKit/537.51.2 (KHTML, like Gecko) Version/7.0 Mobile/11D201 Safari/9537.53</user_agent_string>
<client_product_type>iPhone6,1</client_product_type>
<client_serial_number>DNXXX1X1XXXX</client_serial_number>
<client_UDID>3XXXXXXXXXXXXXXXXXXXXXXXXD</client_UDID>
<client_OS>iOS</client_OS>
<client_OS_version>7.1.1</client_OS_version>
<client_app_type>app with webkit</client_app_type>
<app_installed_flag>true</app_installed_flag>
<app_name>MSM.app</app_name>
<app_version>1.0 </app_version>
<app_webkit_name>Mobile Safari</client_webkit_name>
<client_version>537.51.2</client_version>
</client_details>
<client_details> //iOS Client with Webbrowser
<client_IP>10.0.0.123</client_IP>
<user_agent_string>Mozilla/5.0 (iPhone; CPU iPhone OS 7_1_1 like Mac OS X) AppleWebKit/537.51.2 (KHTML, like Gecko) Version/7.0 Mobile/11D201 Safari/9537.53</user_agent_string>
<client_product_type>iPhone6,1</client_product_type>
<client_serial_number>DNXXX1X1XXXX</client_serial_number>
<client_UDID>3XXXXXXXXXXXXXXXXXXXXXXXXD</client_UDID>
<client_OS>iOS</client_OS>
<client_OS_version>7.1.1</client_OS_version>
<client_app_type>web browser</client_app_type>
<client_name>Mobile Safari</client_name>
<client_version>9537.53</client_version>
</client_details>
<client_details> //Android Client with Webbrowser
<client_IP>10.0.0.123</client_IP>
<user_agent_string>Mozilla/5.0 (Linux; U; Android 4.0.4; en-us; Nexus S Build/IMM76D) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30</user_agent_string>
<client_product_type>Nexus S</client_product_type>
<client_serial_number>YXXXXXXXXZ</client_serial_number>
<client_UDID>FXXXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXXX</client_UDID>
<client_OS>Android</client_OS>
<client_OS_version>4.0.4</client_OS_version>
<client_app_type>web browser</client_app_type>
<client_name>Mobile Safari</client_name>
<client_version>534.30</client_version>
</client_details>
<client_details> //Mac Desktop with Webbrowser
<client_IP>10.0.0.123</client_IP>
<user_agent_string>Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_3) AppleWebKit/537.75.14 (KHTML, like Gecko) Version/7.0.3 Safari/537.75.14</user_agent_string>
<client_product_type>MacPro5,1</client_product_type>
<client_serial_number>YXXXXXXXXZ</client_serial_number>
<client_UDID>FXXXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXXX</client_UDID>
<client_OS>Mac OS X</client_OS>
<client_OS_version>10.9.3</client_OS_version>
<client_app_type>web browser</client_app_type>
<client_name>Mobile Safari</client_name>
<client_version>537.75.14</client_version>
</client_details>
<message>
<message_identifier>ID_message_10</message_identifier>
<team_identifier>ID_team_1</team_identifier>
<channel_identifier>ID_channel_1</channel_identifier>
<contents>That is an interesting invention. I have attached a copy our patent policy.</contents>
<attachments>patent_policy.pdf</attachments>
</message>
</auth_request>
グループベース通信システム105は、メッセージのインデクス作成およびグループベース通信リポジトリ107への格納を容易にするために、受信したメッセージに基づいて格納メッセージを作成しうる少なくとも1つのグループベース通信サーバ106を含む。一実装形態では、格納メッセージは、メッセージ識別子、グループ識別子、グループベース通信チャネル識別子、送信ユーザ識別子、トピック、応答、メッセージ内容、添付ファイル、メッセージ階層データ、サードパーティのメタデータ、会話プリミティブデータ、および/またはこれらに類似のものなどのデータを含むことができる。例えば、グループベース通信サーバ106は、以下に提示するように、XMLフォーマットされたデータを含むHTTP(S) POSTメッセージの形態で実質的に以下の例示的な格納メッセー
ジを提供することができる。
POST /storage_message.php HTTP/1.1
Host: www.server.com
Content-Type: Application/XML
Content-Length: 667
<?XML version = “1.0” encoding = “UTF-8”?>
<storage_message>
<message_identifier>ID_message_10</message_identifier>
<team_identifier>ID_team_1</team_identifier>
<channel_identifier>ID_channel_1</channel_identifier>
<sending_user_identifier>ID_user_1</sending_user_identifier>
<topics>
<topic>inventions</topic>
<topic>patents</topic>
<topic>policies</topic>
</topics>
<responses>
<response>liked by ID_user_2</response>
<response>starred by ID_user_3</response>
</responses>
<contents>That is an interesting invention. I have attached a copy our patent policy.</contents>
<attachments>patent_policy.pdf</attachments>
<conversation_primitive>
conversation includes messages: ID_message_8, ID_message_9, ID_message_10, ID_message_11, ID_message_12
</conversation_primitive>
</storage_message>
実施形態では、上記で定義したようなグループ識別子をメッセージに関連付けることができる。
実施形態では、上記で定義したようなグループベース通信チャネル識別子をメッセージに関連付けることができる。
実施形態では、上記で定義したような送信ユーザ識別子をメッセージに関連付けることができる。一実装形態では、メッセージは、メッセージを送信したユーザの送信ユーザ識別子を判別するために(例えばPHPコマンドを使用して)解析可能である。
実施形態では、トピックはメッセージに関連付けることができる。一実装形態では、メッセージ内容を(例えばPHPコマンドを使用して)解析して、メッセージ内で議論されているトピックを判別することができる。例えば、メッセージ内のハッシュタグは、メッセージに関連するトピックを示しうる。別の例では、メッセージは、メッセージに関連付けられたトピックを判別するために、(例えば、それ自体で、会話プリミティブ内の他のメッセージと一緒に)分析可能であり、トピックモデリングなどの機械学習技術を使用して解析可能である。
実施形態では、応答を示すデータは、メッセージに関連付けることができる。例えば、他のユーザによるメッセージへの応答は、反応(例えば、メッセージに関連付けられた絵文字の選択、メッセージに関連付けられた「いいね」ボタンの選択)、メッセージに埋め込まれたハイパーリンクのクリック、メッセージへの返信(例えば、メッセージに応答してグループベース通信チャネルにメッセージを投稿する)、メッセージに関連付けられたファイルのダウンロード、あるグループベース通信チャネルから別のグループベース通信チャネルへのメッセージの共有、メッセージのピン留め、メッセージのスターリング、および/またはこれらに類似のものを含んでいてよい。一実装形態では、他のユーザによるメッセージへの応答に関するデータがメッセージに含まれていてもよく、メッセージは、応答を決定するために(例えばPHPコマンドを使用して)解析可能である。別の実装形態では、メッセージへの応答に関するデータは、データベースから取得可能である。例えば、メッセージへの応答に関するデータは、以下のようなMySQLデータベースコマンドを使用して取得可能である。
SELECT messageResponses
FROM MSM_Message
WHERE messageID = ID_message_10.
例えば、メッセージに対する応答に関するデータは、メッセージのコンテキスト(例えば、あるユーザの視点から見たメッセージのソーシャルスコア)を判別するために使用可能である。別の例では、メッセージへの応答に関するデータは、ユーザに関するコンテキストを判別するために分析可能である(例えば、トピックに関するユーザのメッセージへの応答に基づいて、トピックに関するユーザの専門知識を判別することができる)。
実施形態では、添付ファイルがメッセージに含まれていてもよい。添付ファイルが存在する場合、当該ファイルがメッセージに関連付けられている可能性がある。一実装形態では、メッセージは、添付ファイルのファイル名を判別するために(例えばPHPコマンドを使用して)解析可能である。例えば、メッセージのコンテキストを判別するために、ファイルの内容を分析することができる(例えば、特許ポリシー文書は、メッセージが「特許」というトピックに関連付けられていることを示することができる)。
実施形態では、サードパーティのメタデータをメッセージに関連付けることができる。例えば、サードパーティのメタデータは、企業、グループ、グループベース通信チャネル、および/またはこれらに類似のものに特有のメッセージまたはユーザに関する付加的なコンテキストを提供することができる。一実装形態では、メッセージを(例えばPHPコマンドを使用して)解析して、サードパーティのメタデータを判別することができる。例えば、サードパーティのメタデータは、メッセージを送信したユーザが、グループベース通信チャネルの権限のある代表者であるかどうかを示すものであってよい(例えば、権限のある代表者は、エンタープライズグループベース通信チャネルにおける問い合わせに応答するために、企業によって認証されうる)。
実施形態では、会話プリミティブは、メッセージに関連付けることができる。一実装形態では、会話プリミティブは、メッセージの分析、インデクス作成、格納、および/またはこれらに類似のものを行うために使用される要素である。例えば、メッセージは、それ自体で分析可能であり、それ自身の会話プリミティブを形成可能である。別の例では、メッセージは、会話を構成する他のメッセージと共に分析可能であり、会話を構成するメッセージが会話プリミティブを形成可能である。一実装形態では、会話プリミティブは、メッセージ、先行メッセージの指定された数(例えば2個)、および後続メッセージの指定された数(例えば2個)として判別されうる。別の実装形態では、会話プリミティブは、メッセージおよび他のメッセージ(例えばチャネル内)で議論されたトピックの分析および/または当該メッセージの近接性(例えば、メッセージ送信順序の近接性、メッセージ送信時間の近接性)に基づいて判別されうる。
実施形態では、上述したように、判別された種々のメタデータ、および/またはメッセージ内容は、検索の種々の面(すなわち、グループベース通信リポジトリ107から結果を返す検索クエリ)を容易にするために、メッセージにインデクス作成を行うために(例えば、会話プリミティブを使用して)使用可能である。一実装形態では、グループベース通信リポジトリ107におけるインデクス作成を容易にするために、グループベース通信サーバ106から格納メッセージを送信することができる。別の実装形態では、メッセージに関連付けられたメタデータを判別することができ、グループベース通信リポジトリ107において当該メッセージにインデクス作成を行うことができる。一実施形態では、メッセージには、企業またはグループのメッセージにつき別個に(例えば、他のグループおよび/または他の企業と共有されない、グループおよび/または企業に関連付けられた別個のインデクス内に)インデクス作成が行われるように、インデクス作成を行うことができる。一実装形態では、メッセージには、(例えばセキュリティの目的でデータ分離を容易にするために)別個の分散リポジトリでインデクス作成を行うことができる。
メッセージに関連付けられた添付ファイルが存在する場合、関連付けられたファイルの内容は、検索を容易にすべく、グループベース通信リポジトリ107内のこうしたファイルにインデクス作成を行うために使用することができる。一実施形態では、ファイルには、企業またはグループのファイルには別の分散リポジトリでインデクス作成が行われるようにインデクス作成を行うことができる。
[本開示の実施形態を実装するための装置の例]
グループベース通信サーバ106は、図2Aに示す装置200のような1つ以上のコンピューティングシステムによって具現化することができる。装置200は、プロセッサ202、メモリ201、入出力回路203、通信回路205、グループベース通信リポジトリ107、およびグループベース通信回路204を含むことができる。装置200は、本明細書に記載された操作を実行するように構成することができる。各コンポーネントは機能的に限定されたものとして記載されているが、特定の実装形態が必然的に特定のハードウェアの使用を含むことを理解されたい。また、本明細書に記載されたコンポーネントの一部は、類似のまたは共通のハードウェアを含みうることを理解されたい。例えば、2つの回路セットは、同じプロセッサ、ネットワークインタフェース、記憶媒体またはこれらに類似のものを使用して関連する機能を実行することができ、このため、それぞれの回路セットに重複したハードウェアを必要としない。したがって、装置のコンポーネントに関して本明細書で使用される「回路」なる語の使用は、本明細書に記載されるような特定の回路に関連する機能を実行するように構成された特定のハードウェアを含むと理解されるべきである。
「回路」なる語は、ハードウェアならびに一部の実施形態でハードウェアを構成するためのソフトウェアを含むように広義に理解されるべきである。例えば、一部の実施形態では、「回路」は、処理回路、記憶媒体、ネットワークインタフェース、入出力デバイスおよびこれらに類似のものを含んでいてよい。一部の実施形態では、装置200の他の要素は、特定の回路の機能を提供するかまたは補完することができる。例えば、プロセッサ202は処理機能を提供可能であり、メモリ201はストレージ機能を提供可能であり、通信回路205はネットワークインタフェース機能およびこれらに類似のものを提供可能である。
一部の実施形態では、プロセッサ202(および/またはコプロセッサ、またはプロセッサを補助するかもしくはプロセッサに関連付けられた任意の他の処理回路)は、装置のコンポーネント間で情報を渡すためのバスを介してメモリ201と通信可能である。メモリ201は、非一時性とすることができ、例えば1つ以上の揮発性メモリおよび/または不揮発性メモリを含むことができる。すなわち、例えば、メモリは、電子ストレージデバイス(例えばコンピュータ可読記憶媒体)であってよい。メモリ201は、本開示の例示的な実施形態にしたがって、装置が種々の機能を実行することを可能にするための情報、データ、コンテンツ、アプリケーション、命令またはこれらに類似のものを格納するように構成可能である。
プロセッサ202は、複数の異なる方法で具現化することができ、例えば、独立して実行するように構成された1つ以上の処理デバイスを含んでいてよい。付加的にもしくは代替的に、プロセッサは、独立した命令の実行、パイプライン化、および/またはマルチスレッド化を可能にするために、バスを介してタンデムに構成された1つ以上のプロセッサを含むこともできる。「処理回路」なる語の使用は、シングルコアプロセッサ、マルチコアプロセッサ、装置内部の複数のプロセッサ、および/またはリモートまたは「クラウド」プロセッサを含むものと理解されうる。
例示的な実施形態では、プロセッサ202は、メモリ201に格納された命令を実行するように構成可能であり、他の場合はプロセッサにアクセス可能とすることができる。代替的にもしくは付加的に、プロセッサは、ハードコード化された機能を実行するように構成可能である。このように、ハードウェアまたはソフトウェア手法によって構成されていても、またはその組み合わせによって構成されていても、プロセッサは、相応の構成において、本開示の実施形態にしたがった操作を実行できる(例えば、物理的に回路として具現化されている)1つのエンティティを表すことができる。代替的に、別の例として、プ
ロセッサがソフトウェア命令の実行者として具現化される場合、命令は、実行されるときに、本明細書に記載されたアルゴリズムおよび/または操作を実行するようにプロセッサを具体的に構成することができる。
一部の実施形態では、装置200は、順番にユーザに出力を提供し、一部の実施形態では、ユーザ入力の指示を受信するためにプロセッサ202と通信しうる入出力回路203を含んでいてよい。入出力回路203は、ユーザインタフェースを含んでいてもディスプレイを含んでいてもよく、ウェブユーザインタフェース、モバイルアプリケーション、クライアントデバイス、キオスクまたはこれらに類似のものを含んでいてもよい。一部の実施形態では、入出力回路203は、キーボード、マウス、ジョイスティック、タッチスクリーン、タッチエリア、ソフトキー、マイク、スピーカまたは他の入出力機構を含むことができる。プロセッサおよび/またはプロセッサを含むユーザインタフェース回路は、プロセッサにアクセス可能なメモリ(例えばメモリ201およびこれらに類似のもの)に格納されたコンピュータプログラム命令(例えばソフトウェアおよび/またはファームウェア)を介して、1つ以上のユーザインタフェース要素のうちの1つ以上の機能を制御するように構成可能である。
通信回路205は、ネットワークおよび/または装置200と通信している任意の他のデバイス、回路、またはモジュールからデータを受信および/または送信するように構成されたハードウェア、またはハードウェアとソフトウェアとの組み合わせによって具現化されたデバイス、または回路のような任意の手段とすることができる。これに関して、通信回路205は、例えば、有線または無線通信ネットワークとの通信を可能にするためのネットワークインタフェースを含んでいてよい。例えば、通信回路205は、1つ以上のネットワークインタフェースカード、アンテナ、バス、スイッチ、ルータ、モデム、ならびにこれをサポートするハードウェアおよび/もしくはソフトウェア、またはネットワークを介した通信を可能にするのに適した他の任意のデバイスを含むことができる。付加的にもしくは代替的に、通信インタフェースは、アンテナを介した信号の送信を生じさせるために、またはアンテナを介して受信された信号の受信を処理するために、アンテナと相互作用するための回路を含むことができる。
グループベース通信回路204は、グループベース通信システムをサポートするように構成されたハードウェアを含む。グループベース通信回路204は、ここでの動作を実行するために、プロセッサ202のような処理回路を利用することができる。グループベース通信回路204は、グループベース通信リポジトリ107からデータを送信および/または受信することができる。一部の実装形態では、送信データおよび/または受信データは、複数のグループベース通信チャネルの間で編成されたデジタルコンテンツオブジェクトであってもよい。また、一部の実施形態では、グループベース通信回路204は、別個のプロセッサ、特別に構成されたフィールドプログラマブルゲートアレイ(FPGA)、または特定用途向け集積回路(ASIC)を含みうることが理解されるべきである。
グループベース通信検索サーバ108は、図2Bに示す装置210のような1つ以上のコンピューティングシステムによって具現化することができる。装置210は、プロセッサ212、メモリ211、入出力回路213、通信回路215およびグループベース通信検索回路214を含むことができる。装置210は、本明細書に記載された操作を実行するように構成することができる。各コンポーネントは機能的に限定されたものとして記載されているが、特定の実装形態は必然的に特定のハードウェアの使用を含むことを理解されたい。また、本明細書に記載されたコンポーネントの一部は、類似のまたは共通のハードウェアを含みうることを理解されたい。例えば、2つの回路セットは、同じプロセッサ、ネットワークインタフェース、記憶媒体またはこれらに類似のものを使用して関連する機能を実行することができ、このため、それぞれの回路セットに重複したハードウェアを
必要としない。したがって、装置のコンポーネントに関して本明細書で使用される「回路」なる語の使用は、本明細書に記載されるような特定の回路に関連する機能を実行するように構成された特定のハードウェアを含むと理解されるべきである。
「回路」なる語は、ハードウェアならびに一部の実施形態でハードウェアを構成するためのソフトウェアを含むように広義に理解されるべきである。例えば、一部の実施形態では、「回路」は、処理回路、記憶媒体、ネットワークインタフェース、入出力デバイスおよびこれらに類似のものを含んでいてよい。一部の実施形態では、装置210の他の要素は、特定の回路の機能を提供するかまたは補完することができる。例えば、プロセッサ212は処理機能を提供可能であり、メモリ211はストレージ機能を提供可能であり、通信回路215はネットワークインタフェース機能を提供可能である。
一部の実施形態では、プロセッサ212(および/またはコプロセッサ、またはプロセッサを補助するかもしくはプロセッサに関連付けられた任意の他の処理回路)は、装置のコンポーネント間で情報を渡すためのバスを介してメモリ211と通信可能である。メモリ211は、非一時性とすることができ、例えば1つ以上の揮発性メモリおよび/または不揮発性メモリを含むことができる。すなわち、例えば、メモリは、電子ストレージデバイス(例えばコンピュータ可読記憶媒体)であってよい。メモリ211は、本開示の例示的な実施形態にしたがって、装置が種々の機能を実行することを可能にするための情報、データ、コンテンツ、アプリケーション、命令またはこれらに類似のものを格納するように構成可能である。
プロセッサ212は、複数の異なる方法で具現化することができ、例えば、独立して実行するように構成された1つ以上の処理デバイスを含んでいてよい。付加的にもしくは代替的に、プロセッサは、独立した命令の実行、パイプライン化、および/またはマルチスレッド化を可能にするために、バスを介してタンデムに構成された1つ以上のプロセッサを含むこともできる。「処理回路」なる語の使用は、シングルコアプロセッサ、マルチコアプロセッサ、装置内部の複数のプロセッサ、および/またはリモートまたは「クラウド」プロセッサを含むものと理解されうる。
例示的な実施形態では、プロセッサ212は、メモリ211に格納された命令を実行するように構成可能であり、他の場合はプロセッサにアクセス可能とすることができる。代替的にもしくは付加的に、プロセッサは、ハードコード化された機能を実行するように構成可能である。このように、ハードウェアまたはソフトウェア手法によって構成されていても、またはその組み合わせによって構成されていても、プロセッサは、相応の構成において、本開示の実施形態にしたがった操作を実行できる(例えば、物理的に回路に具現化されている)1つのエンティティを表すことができる。代替的に、別の例として、プロセッサがソフトウェア命令の実行者として具現化される場合、命令は、実行されるときに、本明細書に記載されたアルゴリズムおよび/または操作を実行するようにプロセッサを具体的に構成することができる。
一部の実施形態では、装置210は、順番にユーザに出力を提供し、一部の実施形態では、ユーザ入力の指示を受信するためにプロセッサ212と通信しうる入出力回路213を含んでいてよい。入出力回路213は、ユーザインタフェースを含んでいてもディスプレイを含んでいてもよく、ウェブユーザインタフェース、モバイルアプリケーション、クライアントデバイス、キオスクまたはこれらに類似のものを含んでいてもよい。一部の実施形態では、入出力回路213は、キーボード、マウス、ジョイスティック、タッチスクリーン、タッチエリア、ソフトキー、マイク、スピーカまたは他の入出力機構を含むことができる。プロセッサおよび/またはプロセッサを含むユーザインタフェース回路は、プロセッサにアクセス可能なメモリ(例えばメモリ211および/またはこれらに類似のも
の)に格納されたコンピュータプログラム命令(例えばソフトウェアおよび/またはファームウェア)を介して、1つ以上のユーザインタフェース要素のうちの1つ以上の機能を制御するように構成可能である。
通信回路215は、ネットワークおよび/または装置210と通信している任意の他のデバイス、回路、またはモジュールからデータを受信および/または送信するように構成されたハードウェアまたはハードウェアとソフトウェアとの組み合わせによって具現化されたデバイス、または回路のような任意の手段とすることができる。これに関して、通信回路215は、例えば、有線または無線通信ネットワークとの通信を可能にするためのネットワークインタフェースを含んでいてよい。例えば、通信回路215は、1つ以上のネットワークインタフェースカード、アンテナ、バス、スイッチ、ルータ、モデム、ならびにこれをサポートするハードウェアおよび/もしくはソフトウェア、またはネットワークを介した通信を可能にするのに適した他の任意のデバイスを含むことができる。付加的にもしくは代替的に、通信インタフェースは、アンテナを介した信号の送信を生じさせるために、またはアンテナを介して受信された信号の受信を処理するために、アンテナと相互作用するための回路を含むことができる。
グループベース通信検索回路214は、グループベース通信システム内で検索結果を取得するように構成されたハードウェアを含む。グループベース通信検索回路214は、ここでの動作を実行するために、プロセッサ212などの処理回路を利用することができる。また、一部の実施形態では、グループベース通信検索回路214は、別個のプロセッサ、特別に構成されたフィールドプログラマブルゲートアレイ(FPGA)、または特定用途向け集積回路(ASIC)を含みうることが理解されるべきである。
グループベース通信暗号化キー管理サービス109(または暗号化キー管理サービス)は、図2Cに示す装置220のような1つ以上のコンピューティングシステムによって具現化することができる。装置220は、プロセッサ222、メモリ221、入出力回路223、通信回路225およびグループベース通信暗号化キー管理(または暗号化キー管理)回路224を含むことができる。装置220は、本明細書に記載された操作を実行するように構成することができる。各コンポーネントは機能的に限定されたものとして記載されているが、特定の実装形態は必然的に特定のハードウェアの使用を含むことを理解されたい。また、本明細書に記載されたコンポーネントの一部は、類似のまたは共通のハードウェアを含みうることを理解されたい。例えば、2つの回路セットは、同じプロセッサ、ネットワークインタフェース、記憶媒体またはこれらに類似のものを使用して関連する機能を実行することができ、このため、それぞれの回路セットに重複したハードウェアを必要としない。したがって、装置のコンポーネントに関して本明細書で使用される「回路」なる語の使用は、本明細書に記載されるような特定の回路に関連する機能を実行するように構成された特定のハードウェアを含むと理解されるべきである。
「回路」なる語は、ハードウェアならびに一部の実施形態でハードウェアを構成するためのソフトウェアを含むように広義に理解されるべきである。例えば、一部の実施形態では、「回路」は、処理回路、記憶媒体、ネットワークインタフェース、入出力デバイスおよびこれらに類似のものを含んでいてよい。一部の実施形態では、装置220の他の要素は、特定の回路の機能を提供するかまたは補完することができる。例えば、プロセッサ222が処理機能を提供可能であり、メモリ221がストレージ機能を提供可能であり、通信回路225がネットワークインタフェース機能を提供可能である。
一部の実施形態では、プロセッサ222(および/またはコプロセッサ、またはプロセッサを補助するかもしくはプロセッサに関連付けられた任意の他の処理回路)は、装置のコンポーネント間で情報を渡すためのバスを介してメモリ221と通信可能である。メモ
リ221は、非一時性とすることができ、例えば、1つ以上の揮発性メモリおよび/または不揮発性メモリを含むことができる。すなわち、例えば、メモリは、電子ストレージデバイス(例えばコンピュータ可読記憶媒体)であってよい。メモリ221は、本開示の例示的な実施形態にしたがって、装置が種々の機能を実行することを可能にするための情報、データ、コンテンツ、アプリケーション、命令またはこれらに類似のものを格納するように構成可能である。
プロセッサ222は、複数の異なる方法で具現化することができ、例えば、独立して実行するように構成された1つ以上の処理デバイスを含んでいてよい。付加的にもしくは代替的に、プロセッサは、独立した命令の実行、パイプライン化、および/またはマルチスレッド化を可能にするために、バスを介してタンデムに構成された1つ以上のプロセッサを含むこともできる。「処理回路」なる語の使用は、シングルコアプロセッサ、マルチコアプロセッサ、装置内部の複数のプロセッサ、および/またはリモートまたは「クラウド」プロセッサを含むものと理解されうる。
例示的な実施形態では、プロセッサ222は、メモリ221に格納された命令を実行するように構成可能であり、他の場合はプロセッサにアクセス可能とすることができる。代替的にもしくは付加的に、プロセッサは、ハードコード化された機能を実行するように構成可能である。このように、ハードウェアまたはソフトウェア手法によって構成されていても、またはその組み合わせによって構成されていても、プロセッサは、相応の構成において、本開示の実施形態にしたがった操作を実行できる(例えば、物理的に回路に具現化されている)1つのエンティティを表すことができる。代替的に、別の例として、プロセッサがソフトウェア命令の実行者として具現化される場合、命令は、実行されるときに、本明細書に記載されたアルゴリズムおよび/または操作を実行するようにプロセッサを具体的に構成することができる。
一部の実施形態では、装置220は、順番にユーザに出力を提供し、一部の実施形態では、ユーザ入力の指示を受信するためにプロセッサ222と通信しうる入出力回路223を含んでいてよい。入出力回路223は、ユーザインタフェースを含んでいてもディスプレイを含んでいてもよく、ウェブユーザインタフェース、モバイルアプリケーション、クライアントデバイス、キオスクまたはこれらに類似のものを含んでいてもよい。一部の実施形態では、入出力回路223は、キーボード、マウス、ジョイスティック、タッチスクリーン、タッチエリア、ソフトキー、マイク、スピーカまたは他の入出力機構を含むことができる。プロセッサおよび/またはプロセッサを含むユーザインタフェース回路は、プロセッサにアクセス可能なメモリ(例えばメモリ221および/またはこれらに類似のもの)に格納されたコンピュータプログラム命令(例えばソフトウェアおよび/またはファームウェア)を介して、1つ以上のユーザインタフェース要素のうちの1つ以上の機能を制御するように構成可能である。
通信回路225は、ネットワークおよび/または装置220と通信している任意の他のデバイス、回路、またはモジュールからデータを受信および/または送信するように構成されたハードウェアまたはハードウェアとソフトウェアとの組み合わせによって具現化されたデバイスまたは回路のような任意の手段とすることができる。これに関して、通信回路225は、例えば、有線または無線通信ネットワークとの通信を可能にするためのネットワークインタフェースを含んでいてよい。例えば、通信回路225は、1つ以上のネットワークインタフェースカード、アンテナ、バス、スイッチ、ルータ、モデム、ならびにこれをサポートするハードウェアおよび/もしくはソフトウェア、またはネットワークを介した通信を可能にするのに適した他の任意のデバイスを含むことができる。付加的にもしくは代替的に、通信インタフェースは、アンテナを介した信号の送信を生じさせるために、またはアンテナを介して受信された信号の受信を処理するために、アンテナと相互作
用するための回路を含むことができる。
グループベース通信暗号化キー管理回路224(または暗号化キー管理サービス回路)は、グループベース通信システムまたは他の通信システム内で、データの暗号化および復号化と共に、暗号化キー要求の管理をサポートするように構成されたハードウェアを含む。グループベース通信暗号化キー管理回路224は、ここでの動作を実行するために、プロセッサ222などの処理回路を利用することができる。また、一部の実施形態では、グループベース通信暗号化キー管理回路224は、別個のプロセッサ、特別に構成されたフィールドプログラマブルゲートアレイ(FPGA)、または特定用途向け集積回路(ASIC)を含みうることが理解されるべきである。
グループベース通信ストレージ管理サービス110は、図2Dに示す装置230のような1つ以上のコンピューティングシステムによって具現化することができる。装置230は、プロセッサ232、メモリ231、入出力回路233、通信回路235、グループベース通信ストレージ管理回路234、第1のグループベース通信ストレージ管理リポジトリ237、および第2のグループベース通信ストレージ管理リポジトリ238を含むことができる。装置230は、本明細書に記載された操作を実行するように構成することができる。各コンポーネントは帰納的に限定されたものとして記載されているが、特定の実装形態は必然的に特定のハードウェアの使用を含むことを理解されたい。また、本明細書に記載されたコンポーネントの一部は、類似のまたは共通のハードウェアを含みうることを理解されたい。例えば、2つの回路セットは、同じプロセッサ、ネットワークインタフェース、記憶媒体またはこれらに類似のものを使用して関連する機能を実行することができ、このため、それぞれの回路セットに重複したハードウェアを必要としない。したがって、装置のコンポーネントに関して本明細書で使用される「回路」なる語の使用は、本明細書に記載されるような特定の回路に関連する機能を実行するように構成された特定のハードウェアを含むと理解されるべきである。
「回路」なる語は、ハードウェアならびに一部の実施形態でハードウェアを構成するためのソフトウェアを含むように広義に理解されるべきである。例えば、一部の実施形態では、「回路」は、処理回路、記憶媒体、ネットワークインタフェース、入出力デバイスおよびこれらに類似のものを含んでいてよい。一部の実施形態では、装置230の他の要素は、特定の回路の機能を提供するかまたは補完することができる。例えば、プロセッサ232が処理機能を提供可能であり、メモリ231がストレージ機能を提供可能であり、通信回路235がネットワークインタフェース機能およびこれらに類似のものを提供可能である。
一部の実施形態では、プロセッサ232(および/またはコプロセッサ、またはプロセッサを補助するかもしくはプロセッサに関連付けられた任意の他の処理回路)は、装置のコンポーネント間で情報を渡すためのバスを介してメモリ231と通信可能である。メモリ231は、非一時性とすることができ、例えば、1つ以上の揮発性メモリおよび/または不揮発性メモリを含むことができる。すなわち、例えば、メモリは、電子ストレージデバイス(例えばコンピュータ可読記憶媒体)であってよい。メモリ231は、本開示の例示的な実施形態にしたがって、装置が種々の機能を実行することを可能にするための情報、データ、コンテンツ、アプリケーション、命令またはこれらに類似のものを格納するように構成可能である。
プロセッサ232は、複数の異なる方法で具現化することができ、例えば、独立して実行するように構成された1つ以上の処理デバイスを含んでいてよい。付加的にもしくは代替的に、プロセッサは、独立した命令の実行、パイプライン化、および/またはマルチスレッド化を可能にするために、バスを介してタンデムに構成された1つ以上のプロセッサ
を含むこともできる。「処理回路」なる語の使用は、シングルコアプロセッサ、マルチコアプロセッサ、装置内部の複数のプロセッサ、および/またはリモートまたは「クラウド」プロセッサを含むものと理解されうる。
例示的な実施形態では、プロセッサ232は、メモリ231に格納された命令を実行するように構成可能であり、他の場合はプロセッサにアクセス可能とすることができる。代替的にもしくは付加的に、プロセッサは、ハードコード化された機能を実行するように構成可能である。このように、ハードウェアまたはソフトウェア手法によって構成されていても、またはその組み合わせによって構成されていても、プロセッサは、相応の構成において、本開示の実施形態にしたがった操作を実行できる(例えば、物理的に回路に具現化されている)1つのエンティティを表すことができる。代替的に、別の例として、プロセッサがソフトウェア命令の実行者として具現化される場合、命令は、実行されるときに、本明細書に記載されたアルゴリズムおよび/または操作を実行するようにプロセッサを具体的に構成することができる。
一部の実施形態では、装置230は、順番にユーザに出力を提供し、一部の実施形態では、ユーザ入力の指示を受信するためにプロセッサ232と通信しうる入出力回路233を含んでいてよい。入出力回路233は、ユーザインタフェースを含んでいてもディスプレイを含んでいてもよく、ウェブユーザインタフェース、モバイルアプリケーション、クライアントデバイス、キオスクまたはこれらに類似のものを含んでいてもよい。一部の実施形態では、入出力回路233は、キーボード、マウス、ジョイスティック、タッチスクリーン、タッチエリア、ソフトキー、マイク、スピーカまたは他の入出力機構を含むことができる。プロセッサおよび/またはプロセッサを含むユーザインタフェース回路は、プロセッサにアクセス可能なメモリ(例えばメモリ231および/またはこれらに類似のもの)に格納されたコンピュータプログラム命令(例えばソフトウェアおよび/またはファームウェア)を介して、1つ以上のユーザインタフェース要素のうちの1つ以上の機能を制御するように構成可能である。
通信回路235は、ネットワークおよび/または装置230と通信している任意の他のデバイス、回路、またはモジュールからデータを受信および/または送信するように構成されたハードウェアまたはハードウェアとソフトウェアとの組み合わせによって具現化されたデバイスまたは回路のような任意の手段とすることができる。これに関して、通信回路235は、例えば、有線または無線通信ネットワークとの通信を可能にするためのネットワークインタフェースを含んでいてよい。例えば、通信回路235は、1つ以上のネットワークインタフェースカード、アンテナ、バス、スイッチ、ルータ、モデム、ならびにこれをサポートするハードウェアおよび/もしくはソフトウェア、またはネットワークを介した通信を可能にするのに適した他の任意のデバイスを含むことができる。付加的にもしくは代替的に、通信インタフェースは、アンテナを介した信号の送信を生じさせるために、またはアンテナを介して受信された信号の受信を処理するために、アンテナと相互作用するための回路を含むことができる。
グループベース通信ストレージ管理回路234は、グループベース通信システム内で通信されるグループベース通信データのストレージ管理をサポートするように構成されたハードウェアを含む。グループベース通信ストレージ管理回路234は、ここでの動作を実行するために、プロセッサ232などの処理回路を利用することができる。また、一部の実施形態では、グループベース通信ストレージ管理回路234は、別個のプロセッサ、特別に構成されたフィールドプログラマブルゲートアレイ(FPGA)、または特定用途向け集積回路(ASIC)を含みうることが理解されるべきである。
第1のグループベース通信ストレージ管理リポジトリ237は、グループベース通信シ
ステムの検索インデクスを作成するための1つ以上の非一時性記憶媒体を含む。グループベース通信検索インデクスの作成中に、グループベース通信ストレージ管理回路234は、第1のグループベース通信ストレージ管理リポジトリ237と共に、暗号化された検索インデクスを第2のグループベース通信ストレージリポジトリ238に格納する前に、検索インデクスを暗号化するための検索インデクス暗号化キーを作成する。すなわち、第2のグループベース通信ストレージ管理リポジトリ238は、暗号化された検索インデクスを格納するための1つ以上の非一時性記憶媒体を含む。
グループベース通信キーマテリアルソース111(またはキーマテリアルソース)は、図2Eに示す装置240のような1つ以上のコンピューティングシステムによって具現化することができる。装置240は、プロセッサ242、メモリ241、入出力回路243、通信回路245、グループベース通信キーマテリアルソース(またはキーマテリアルソース)回路244、およびグループベース通信キーマテリアルソースリポジトリ247を含むことができる。装置240は、本明細書に記載された操作を実行するように構成することができる。コンポーネントは機能的に限定されたものとして記載されているが、特定の実装形態は必然的に特定のハードウェアの使用を含むことを理解されたい。また、本明細書に記載されたコンポーネントの一部は、類似のまたは共通のハードウェアを含みうることを理解されたい。例えば、2つの回路セットは、同じプロセッサ、ネットワークインタフェース、記憶媒体またはこれらに類似のものを使用して関連する機能を実行することができ、このため、それぞれの回路セットに重複したハードウェアを必要としない。したがって、装置のコンポーネントに関して本明細書で使用される「回路」なる語の使用は、本明細書に記載されるような特定の回路に関連する機能を実行するように構成された特定のハードウェアを含むと理解されるべきである。
「回路」なる語は、ハードウェアならびに一部の実施形態でハードウェアを構成するためのソフトウェアを含むように広義に理解されるべきである。例えば、一部の実施形態では、「回路」は、処理回路、記憶媒体、ネットワークインタフェース、入出力デバイスおよびこれらに類似のものを含んでいてよい。一部の実施形態では、装置240の他の要素は、特定の回路の機能を提供するかまたは補完することができる。例えば、プロセッサ242が処理機能を提供可能であり、メモリ241がストレージ機能を提供可能であり、通信回路245がネットワークインタフェース機能を提供可能である。
一部の実施形態では、プロセッサ242(および/またはコプロセッサ、またはプロセッサを補助するかもしくはプロセッサに関連付けられた任意の他の処理回路)は、装置のコンポーネント間で情報を渡すためのバスを介してメモリ241と通信可能である。メモリ241は、非一時性とすることができ、例えば、1つ以上の揮発性メモリおよび/または不揮発性メモリを含むことができる。すなわち、例えば、メモリは、電子ストレージデバイス(例えばコンピュータ可読記憶媒体)であってよい。メモリ241は、本開示の例示的な実施形態にしたがって、装置が種々の機能を実行することを可能にするための情報、データ、コンテンツ、アプリケーション、命令またはこれらに類似のものを格納するように構成可能である。
プロセッサ242は、複数の異なる方法で具現化することができ、例えば、独立して実行するように構成された1つ以上の処理デバイスを含んでいてよい。付加的にもしくは代替的に、プロセッサは、独立した命令の実行、パイプライン化、および/またはマルチスレッド化を可能にするために、バスを介してタンデムに構成された1つ以上のプロセッサを含むこともできる。「処理回路」なる語の使用は、シングルコアプロセッサ、マルチコアプロセッサ、装置内部の複数のプロセッサ、および/またはリモートまたは「クラウド」プロセッサを含むものと理解されうる。
例示的な実施形態では、プロセッサ242は、メモリ241に格納された命令を実行するように構成可能であり、他の場合はプロセッサにアクセス可能とすることができる。代替的にもしくは付加的に、プロセッサは、ハードコード化された機能を実行するように構成可能である。このように、ハードウェアまたはソフトウェア手法によって構成されていても、またはその組み合わせによって構成されていても、プロセッサは、相応の構成において、本開示の実施形態にしたがった操作を実行できる(例えば、物理的に回路に具現化されている)1つのエンティティを表すことができる。代替的に、別の例として、プロセッサがソフトウェア命令の実行者として具現化される場合、命令は、実行されるときに、本明細書に記載されたアルゴリズムおよび/または操作を実行するようにプロセッサを具体的に構成することができる。
一部の実施形態では、装置240は、順番にユーザに出力を提供し、一部の実施形態では、ユーザ入力の指示を受信するためにプロセッサ242と通信しうる入出力回路243を含んでいてよい。入出力回路243は、ユーザインタフェースを含んでいてもディスプレイを含んでいてもよく、ウェブユーザインタフェース、モバイルアプリケーション、クライアントデバイス、キオスクまたはこれらに類似のものを含んでいてもよい。一部の実施形態では、入出力回路243は、キーボード、マウス、ジョイスティック、タッチスクリーン、タッチエリア、ソフトキー、マイク、スピーカまたは他の入出力機構を含むことができる。プロセッサおよび/またはプロセッサを含むユーザインタフェース回路は、プロセッサにアクセス可能なメモリ(例えばメモリ241および/またはこれらに類似のもの)に格納されたコンピュータプログラム命令(例えばソフトウェアおよび/またはファームウェア)を介して、1つ以上のユーザインタフェース要素のうちの1つ以上の機能を制御するように構成可能である。
通信回路245は、ネットワークおよび/または装置240と通信している任意の他のデバイス、回路、またはモジュールからデータを受信および/または送信するように構成されたハードウェアまたはハードウェアとソフトウェアとの組み合わせによって具現化されたデバイスまたは回路のような任意の手段とすることができる。これに関して、通信回路245は、例えば、有線または無線通信ネットワークとの通信を可能にするためのネットワークインタフェースを含んでいてよい。例えば、通信回路245は、1つ以上のネットワークインタフェースカード、アンテナ、バス、スイッチ、ルータ、モデム、ならびにこれをサポートするハードウェアおよび/もしくはソフトウェア、またはネットワークを介した通信を可能にするのに適した他の任意のデバイスを含むことができる。付加的にもしくは代替的に、通信インタフェースは、アンテナを介した信号の送信を生じさせるために、またはアンテナを介して受信された信号の受信を処理するために、アンテナと相互作用するための回路を含むことができる。
グループベース通信キーマテリアルソース(またはキーマテリアルソース)回路244は、グループベース通信キーマテリアルソースリポジトリ247と組み合わされて、暗号化キーマテリアルの格納および管理、および暗号化キーマテリアルの要求の処理(例えば、暗号化キーが使用されるであろうグループベース通信メッセージまたはファイルに関連付けられた特定のキースコープ要素の集合に関連付けられた暗号化キーの生成)をサポートするように構成されたハードウェアを含む。グループベース通信キーマテリアルソース回路244は、ここでの動作を実行するために、プロセッサ242などの処理回路を利用することができる。また、一部の実施形態では、グループベース通信キーマテリアルソース回路244は、別個のプロセッサ、特別に構成されたフィールドプログラマブルゲートアレイ(FPGA)、または特定用途向け集積回路(ASIC)を含みうることが理解されるべきである。実施形態では、グループベース通信キーマテリアルソースリポジトリは、グループベース通信プラットフォームのための暗号化キー、ならびにグループベース通信プラットフォームによる暗号化キーの要求および使用のログを格納する。
[暗号化キー管理のプロセス例]
図3A、図3Bおよび図3Cは、本開示の一実施形態による、グループベース通信メッセージを暗号化するための例示的なデータフローを示す。実施形態では、ルーチン300は、ブロック302において、グループベース通信暗号化キー管理サーバが、プロセッサを使用して、グループベース通信サーバから、グループベース通信メッセージ暗号化要求を受信することから始まる。実施形態では、グループベース通信メッセージ暗号化要求は、グループベース通信キーファミリ識別子、グループベース通信メッセージキースコープ要素の集合、およびグループベース通信メッセージプレーンテキストを含む。
ブロック304で、ルーチン300は、グループベース通信暗号化キー管理サーバが、少なくとも1つのローカルメモリから、グループベース通信メッセージキースコープ要素の集合およびグループベース通信キーファミリ識別子に関連付けられたグループベース通信メッセージ暗号化キーを取得することに進む。
ブロック306で、ルーチン300は、グループベース通信暗号化キー管理サーバが、プロセッサを使用して、グループベース通信メッセージ暗号化キーを使用してグループベース通信メッセージプレーンテキストを暗号化することに進む。
ブロック308で、ルーチン300は、グループベース通信暗号化キー管理サーバが、グループベース通信メッセージキースコープ要素の集合およびグループベース通信キーファミリ識別子に関連付けられたグループベース通信メッセージ暗号化キーが少なくとも1つのローカルメモリに格納されていないことを判別することに進む。ブロック310、312および314は、グループベース通信メッセージ暗号化キーが少なくとも1つのローカルメモリに格納されていないことが判別された場合に、ルーチン300に含まれることが理解されるであろう。
ブロック310で、ルーチン300は、グループベース通信暗号化キー管理サーバが、プロセッサを使用して、グループベース通信キーマテリアルソースに暗号化キー生成要求を送信することに進む。実施形態では、暗号化キー生成要求は、グループベース通信キースコープ要素の集合およびグループベース通信キーファミリ識別子を含む。
ブロック312で、ルーチン300は、グループベース通信暗号化キー管理サーバが、プロセッサを使用して、グループベース通信キーマテリアルソースから、グループベース通信メッセージ暗号化キーおよびグループベース通信メッセージ暗号化キーに関連付けられた暗号化キー暗号文を受信することに進む。
ブロック314で、ルーチン300は、グループベース通信暗号化キー管理サーバが、プロセッサを使用して、少なくとも1つのローカルメモリに、グループベース通信メッセージ暗号化キーおよびグループベース通信メッセージ暗号化キーに関連付けられた暗号化キー暗号文を格納することに進む。実施形態では、グループベース通信暗号化キーおよび暗号化キー暗号文は、少なくとも1つのローカルメモリにおいて、グループベース通信キースコープ要素の集合およびグループベース通信キーファミリ識別子と関連付けられている。
ブロック316で、ルーチン300は、グループベース通信暗号化キー管理サーバが、プロセッサを使用して、グループベース通信サーバに、グループベース通信メッセージ暗号文、暗号化キー暗号文、グループベース通信メッセージキースコープ要素の集合、およびグループベース通信キーファミリ識別子を送信することに進む。実施形態では、グループベース通信サーバは、318で、グループベース通信リポジトリに、グループベース通
信メッセージ暗号文、グループベース通信メッセージキースコープ要素の集合、グループベース通信キーファミリ識別子、および暗号化キー暗号文を格納する。
実施形態では、グループベース通信サーバは、301Aでクライアントデバイスからグループベース通信メッセージを受信し、グループベース通信メッセージ暗号化要求をグループベース通信暗号化管理サーバに送信する(302)前に、301Bでグループベース通信メッセージからグループベース通信メッセージのメタデータを抽出する。
実施形態では、タイムスタンプ後の暗号化キー管理キャッシュ持続期間の満了時に、グループベース通信暗号化キー管理サーバは、少なくとも1つのメモリから、グループベース通信メッセージ暗号化キーおよびグループベース通信メッセージ暗号化キーに関連付けられた暗号化キー暗号文を削除する。
実施形態では、グループベース通信キーマテリアルソースへのアクセスは、サードパーティデータの所有者によって制御されている。
図3D、図3Eおよび図3Fは、本開示の一実施形態による、グループベース通信メッセージを復号化するための例示的なデータフローを示す。
ブロック322において、ルーチン320は、グループベース通信暗号化管理サーバが、プロセッサを使用して、グループベース通信サーバから、グループベース通信メッセージ復号化要求を受信することから始まる。実施形態では、グループベース通信メッセージ復号化要求は、グループベース通信メッセージキースコープ要素の集合、グループベース通信キーファミリ識別子、暗号化キー暗号文、およびグループベース通信メッセージ暗号文を含む。
ブロック324で、ルーチン320は、グループベース通信暗号化キー管理サーバが、暗号化キー暗号文に関連付けられたグループベース通信メッセージ暗号化キーを少なくとも1つのローカルメモリから取得することに進む。
ブロック326で、ルーチン320は、グループベース通信暗号化キー管理サーバが、プロセッサを使用して、グループベース通信メッセージ暗号化キーを使用してグループベース通信メッセージ暗号文を復号化し、グループベース通信メッセージプレーンテキストを作成することに進む。
ブロック330で、ルーチン320は、グループベース通信暗号化キー管理サーバが、暗号化キー暗号文に関連付けられたグループベース通信メッセージ暗号化キーが少なくとも1つのローカルメモリに格納されていないことを判別することに進む。
ブロック332で、ルーチン320は、グループベース通信暗号化キー管理サーバが、プロセッサを使用して、グループベース通信キーマテリアルソースに暗号化キー生成要求を送信することに進む。実施形態では、暗号化キー生成要求は、グループベース通信メッセージキースコープ要素の集合、グループベース通信ファミリ識別子、および暗号化キー暗号文を含む。
ブロック334で、ルーチン320は、グループベース通信暗号化キー管理サーバが、プロセッサを使用して、グループベース通信キーマテリアルソースから、グループベース通信メッセージ暗号化キーを受信することに進む。
ブロック336で、ルーチン320は、グループベース通信暗号化キー管理サーバが、
プロセッサを使用して、少なくとも1つのローカルメモリに、グループベース通信メッセージ暗号化キーを格納することに進む。ブロック330、332、334および336は、組織暗号化キーが少なくとも1つのローカルメモリに格納されていないことが判別された場合に、ルーチン320に含まれることが理解されるであろう。
ブロック328で、ルーチン320は、グループベース通信暗号化キー管理サーバが、プロセッサを使用して、グループベース通信サーバにグループベース通信メッセージプレーンテキストを送信することに進む。実施形態では、グループベース通信サーバは、342Aで、グループベース通信メッセージプレーンテキストをクライアントデバイスに送信する。実施形態では、グループベース通信サーバは、342Bで、グループベース通信メッセージプレーンテキストを、検索インデクスの生成に使用するために、グループベース通信ストレージ管理サービスに送信する。
図3G、図3Hおよび図3Iは、本開示の一実施形態による、グループベース通信ファイルを暗号化するための例示的なデータフローを示す。実施形態では、ルーチン350は、ブロック352において、グループベース通信暗号化キー管理サーバが、プロセッサを使用して、グループベース通信サーバから、グループベース通信ファイル暗号化要求を受信することから始まる。実施形態では、グループベース通信ファイル暗号化要求は、グループベース通信キーファミリ識別子、グループベース通信ファイルキースコープ要素の集合、およびグループベース通信ファイルプレーンテキストを含む。
ブロック354で、ルーチン350は、グループベース通信暗号化キー管理サーバが、少なくとも1つのローカルメモリから、グループベース通信ファイルキースコープ要素の集合およびグループベース通信キーファミリ識別子に関連付けられたグループベース通信ファイル暗号化キーを取得することに進む。
ブロック356で、ルーチン350は、グループベース通信暗号化キー管理サーバが、プロセッサを使用して、グループベース通信ファイル暗号化キーを使用してグループベース通信ファイルプレーンテキストを暗号化することに進む。
ブロック358で、ルーチン350は、グループベース通信暗号化キー管理サーバが、グループベース通信ファイルキースコープ要素の集合およびグループベース通信キーファミリ識別子に関連付けられたグループベース通信ファイル暗号化キーが、少なくとも1つのローカルメモリに格納されていないことを判別することに進む。ブロック360、362および364は、グループベース通信ファイル暗号化キーが少なくとも1つのローカルメモリに格納されていないことが判別された場合に、ルーチン350に含まれることが理解されるであろう。
ブロック360で、ルーチン350は、グループベース通信暗号化キー管理サーバが、プロセッサを使用して、グループベース通信キーマテリアルソースに暗号化キー生成要求を送信することに進む。実施形態では、暗号化キー生成要求は、グループベース通信キースコープ要素の集合およびグループベース通信キーファミリ識別子を含む。
ブロック362で、ルーチン350は、グループベース通信暗号化キー管理サーバが、プロセッサを使用して、グループベース通信キーマテリアルソースから、グループベース通信ファイル暗号化キーおよびグループベース通信ファイル暗号化キーに関連付けられた暗号化キー暗号文を受信することに進む。
ブロック364で、ルーチン350は、グループベース通信暗号化キー管理サーバが、プロセッサを使用して、少なくとも1つのローカルメモリに、グループベース通信ファイ
ル暗号化キーおよびグループベース通信ファイル暗号化キーに関連付けられた暗号化キー暗号文を格納することに進む。実施形態では、グループベース通信暗号化キーおよび暗号化キー暗号文は、少なくとも1つのローカルメモリにおいて、グループベース通信キースコープ要素の集合およびグループベース通信キーファミリ識別子と関連付けられている。
ブロック366で、ルーチン350は、グループベース通信暗号化キー管理サーバが、プロセッサを使用して、グループベース通信サーバに、グループベース通信ファイル暗号文、暗号化キー暗号文、グループベース通信ファイルキースコープ要素の集合、およびグループベース通信キーファミリ識別子を送信することに進む。実施形態では、グループベース通信サーバは、318で、グループベース通信リポジトリに、グループベース通信ファイル暗号文、グループベース通信ファイルキースコープ要素の集合、グループベース通信キーファミリ識別子、および暗号化キー暗号文を格納する。
実施形態では、グループベース通信サーバは、351Aでクライアントデバイスからグループベース通信ファイルを受信し、グループベース通信ファイル暗号化要求をグループベース通信暗号化管理サーバに送信する(352)前に、351Bでグループベース通信ファイルからグループベース通信ファイルのメタデータを抽出する。
実施形態では、タイムスタンプ後の暗号化キー管理キャッシュ持続期間の満了時に、グループベース通信暗号化キー管理サーバは、少なくとも1つのメモリから、グループベース通信ファイル暗号化キーおよびグループベース通信ファイル暗号化キーに関連付けられた暗号化キー暗号文を削除する。
実施形態では、グループベース通信キーマテリアルソースへのアクセスは、サードパーティデータの所有者によって制御されている。
図3J、図3Kおよび図3Lは、本開示の一実施形態による、グループベース通信ファイルを復号化するための例示的なデータフローを示す。
ブロック372で、ルーチン370は、グループベース通信暗号化管理サーバが、プロセッサを使用して、グループベース通信サーバから、グループベース通信ファイル復号化要求を受信することから始まる。実施形態では、グループベース通信ファイル復号化要求は、グループベース通信ファイルキースコープ要素の集合、グループベース通信キーファミリ識別子、暗号化キー暗号文、およびグループベース通信ファイル暗号文を含む。
ブロック374で、ルーチン370は、グループベース通信暗号化キー管理サーバが、暗号化キー暗号文に関連付けられたグループベース通信ファイル暗号化キーを少なくとも1つのローカルメモリから取得することに進む。
ブロック376で、ルーチン370は、グループベース通信暗号化キー管理サーバが、プロセッサを使用して、グループベース通信ファイル暗号化キーを使用してグループベース通信ファイル暗号文を復号化し、グループベース通信ファイルプレーンテキストを作成することに進む。
ブロック380で、ルーチン370は、グループベース通信暗号化キー管理サーバが、暗号化キー暗号文に関連付けられたグループベース通信ファイル暗号化キーが少なくとも1つのローカルメモリに格納されていないことを判別することに進む。
ブロック382で、ルーチン370は、グループベース通信暗号化キー管理サーバが、プロセッサを使用して、グループベース通信キーマテリアルソースに暗号化キー生成要求
を送信することに進む。実施形態では、暗号化キー生成要求は、グループベース通信ファイルキースコープ要素の集合、グループベース通信ファミリ識別子、および暗号化キー暗号文を含む。
ブロック384で、ルーチン370は、グループベース通信暗号化キー管理サーバが、プロセッサを使用して、グループベース通信キーマテリアルソースから、グループベース通信ファイル暗号化キーを受信することに進む。
ブロック386で、ルーチン370は、グループベース通信暗号化キー管理サーバが、プロセッサを使用して、少なくとも1つのローカルメモリに、グループベース通信ファイル暗号化キーを格納することに進む。ブロック380、382、384および386は、グループベース通信ファイル暗号化キーが少なくとも1つのローカルメモリに格納されていないことが判別された場合に、ルーチン370に含まれることが理解されるであろう。
ブロック378で、ルーチン370は、グループベース通信暗号化キー管理サーバが、プロセッサを使用して、グループベース通信サーバにグループベース通信ファイルプレーンテキストを送信することに進む。実施形態では、グループベース通信サーバは、392Aで、グループベース通信ファイルプレーンテキストをクライアントデバイスに送信する。実施形態では、グループベース通信サーバは、392Bで、グループベース通信ファイルプレーンテキストを、検索インデクスの生成に使用するために、グループベース通信ストレージ管理サービスに送信する。
図4A、図4Bおよび図4Cは、本開示の一実施形態による、グループベース通信クエリを処理するための例示的なデータフローを示す。
ブロック402において、ルーチン400は、グループベース通信暗号化キー管理サーバが、プロセッサを使用して、グループベース通信検索サーバから、グループベース通信検索インデクス暗号化キー要求を受信することから始まる。実施形態では、グループベース通信検索インデクス暗号化キー要求は、暗号化された検索インデクスキーおよびグループベース通信検索インデクス識別子を含む。
ブロック404で、ルーチン400は、グループベース通信暗号化キー管理サーバが、グループベース通信検索インデクス識別子に関連付けられた組織暗号化キーを少なくとも1つのローカルメモリから取得することに進む。
ブロック406で、ルーチン400は、グループベース通信暗号化キー管理サーバが、プロセッサを使用して、組織暗号化キーを使用して暗号化された検索インデクス暗号化キーを復号化して、復号化されたグループベース通信検索インデクス暗号化キーを作成することに進む。
ブロック408で、ルーチン400は、グループベース通信暗号化キー管理サーバが、グループベース通信検索インデクス識別子に関連付けられた組織暗号化キーが少なくとも1つのローカルメモリに格納されていないことを判別することに進む。
ブロック410で、ルーチン400は、グループベース通信暗号化キー管理サーバが、プロセッサを使用して、グループベース通信キーマテリアルソースに暗号化キー生成要求を送信することに進む。実施形態では、暗号化キー生成要求は、グループベース通信組織識別子を含む。
ブロック412で、ルーチン400は、グループベース通信暗号化キー管理サーバが、
プロセッサを使用して、グループベース通信キーマテリアルソースから、組織暗号化キーを受信することに進む。
ブロック414で、ルーチン400は、グループベース通信暗号化キー管理サーバが、プロセッサを使用して、組織暗号化キーを少なくとも1つのローカルメモリに格納することに進む。ブロック408、410、412および416は、組織暗号化キーが少なくとも1つのローカルメモリに格納されていないことが判別された場合に、ルーチン400に含まれることが理解されるであろう。
ブロック416で、ルーチン400は、グループベース通信暗号化キー管理サーバが、プロセッサを使用して、グループベース通信検索サーバに、復号化されたグループベース通信検索インデクス暗号化キーを送信することに進む。
実施形態では、グループベース通信検索インデクス暗号化キー要求をグループベース通信暗号化キー管理サーバに送信すること(402)に先立って、グループベース通信サーバは、401Aでクライアントデバイスからグループベース通信検索クエリを受信した後に、401Bでグループベース通信検索クエリをグループベース通信検索サーバに送信する。グループベース通信サーバは、401Cで、グループベース通信検索クエリを処理するために、グループベース通信検索インデクスが必要であることを判別する。
実施形態では、グループベース通信検索サーバは、418Aで、所望の検索クエリを満たすグループベース通信データ項目の識別子のリストをグループベース通信サーバに応答する。実施形態では、次に、グループベース通信サーバは、418B、418Cで、グループベース通信検索サーバから返された識別子のリストで識別されるそれらのグループベース通信データ項目(例えば、グループベース通信メッセージ、ファイル、オブジェクトおよびこれらに類似のもの)をグループベース通信リポジトリから取得しなければならない。グループベース通信検索サーバから取得されたグループベース通信データ項目は暗号化されており、したがって、418Eでグループベース通信サーバが検索結果をクライアントデバイスに送信することによって応答する前に、418Dでそれぞれが復号化プロセス(例えば、本明細書では図3C、図3Dおよび図3Eに示されている例示的な復号化プロセス)を経て処理されなければならないことが理解されるであろう。
図5Aおよび図5Bは、本開示の一実施形態による、暗号化されたグループベース通信検索インデクス暗号化キーを生成するための例示的なデータフローを示す。
ブロック502において、ルーチン500は、グループベース通信暗号化キー管理サーバが、プロセッサを使用して、グループベース通信検索サーバから、グループベース通信検索インデクス暗号化キーを受信することから始まる。実施形態では、グループベース通信検索インデクス暗号化キーは、グループベース通信組織識別子に関連付けられている。
ブロック504で、ルーチン500は、グループベース通信暗号化キー管理サーバが、グループベース通信組織識別子に関連付けられた組織暗号化キーを少なくとも1つのローカルメモリから取得することに進む。
ブロック506で、ルーチン500は、グループベース通信暗号化キー管理サーバが、プロセッサを使用して、組織暗号化キーを使用してグループベース通信メッセージ検索インデクス暗号化キーを暗号化し、暗号化されたグループベース通信検索インデクス暗号化キーを作成することに進む。
ブロック508で、ルーチン500は、グループベース通信暗号化キー管理サーバが、
グループベース通信組織識別子に関連付けられた組織暗号化キーが少なくとも1つのローカルメモリに格納されていないことを判別することに進む。
ブロック510で、ルーチン500は、グループベース通信暗号化キー管理サーバが、プロセッサを使用して、グループベース通信キーマテリアルソースに暗号化キー生成要求を送信することに進む。実施形態では、暗号化キー生成要求は、グループベース通信組織識別子を含む。
ブロック512で、ルーチン500は、グループベース通信暗号化キー管理サーバが、プロセッサを使用して、グループベース通信キーマテリアルソースから、組織暗号化キーを受信することに進む。
ブロック514で、ルーチン500は、グループベース通信暗号化キー管理サーバが、プロセッサを使用して、少なくとも1つのローカルメモリに、組織暗号化キーを格納することに進む。ブロック508、510、512および516は、組織暗号化キーが少なくとも1つのローカルメモリに格納されていないことが判別された場合に、ルーチン500に含まれることが理解されるであろう。
ブロック516で、ルーチン500は、グループベース通信暗号化キー管理サーバが、プロセッサを使用して、グループベース通信検索サーバに暗号化されたグループベース通信検索インデクス暗号化キーを送信することに進む。
実施形態では、グループベース通信検索インデクス暗号化キーは、501Aでグループベース通信ストレージ管理サービスによって生成され、501Bでグループベース通信検索サーバに送信される。
図6Aおよび図6Bは、本開示の一実施形態による、暗号化キーアクセスログを生成するための例示的なデータフローを示す。
ブロック602において、ルーチン600は、グループベース通信暗号化管理サーバが、プロセッサを使用して、グループベース通信メッセージ暗号化要求もしくはグループベース通信メッセージ復号化要求、グループベース通信ファイル暗号化要求もしくはグループベース通信ファイル復号化要求、またはグループベース通信検索インデクス暗号化キー要求のうちの1つ以上を表すアクセスログデータ構造を生成することから始まる。実施形態では、アクセスログデータ構造は、グループベース通信メッセージキースコープ要素の集合、グループベース通信ファイルキースコープ要素の集合、グループベース通信組織識別子、グループベース通信キーファミリ識別子、および要求理由コードのうちの1つ以上を含む。
ブロック604で、ルーチン600は、グループベース通信暗号化キー管理サーバが、プロセッサを使用して、少なくとも1つのメモリに、アクセスログデータ構造を格納することに進む。ルーチン600はさらに、グループベース通信暗号化キー管理サーバが、606で、グループベース通信ストレージ管理システムのグループベース通信リポジトリに、複数のアクセスログデータ構造を定期的に(すなわちバッチで)送信することに進む。ステップ602~604は、グループベース通信プラットフォームおよびグループベース通信暗号化キー管理サービスのパフォーマンスを通して繰り返されることが理解されるであろう。アクセスログデータ構造のバッチは、608で、グループベース通信暗号化システムからグループベース通信キーマテリアルサービスサーバに定期的に送信可能であることも理解されるであろう。
図7Aおよび図7Bは、本開示の一実施形態による、例示的なデータ構造を示す。実施形態では、データ構造700で、グループベース通信検索インデクス内のメッセージまたはファイル識別子704と複数の用語ベクトル702とが関連付けられている。実施形態では、別のデータ構造710で、メッセージまたはファイル識別子712と、グループベース通信リポジトリ内の複数のメッセージまたはファイルコンポーネント714とが関連付けられている。
図8Aおよび図8Bは、本開示の実施形態で使用するための例示的なグループベース通信暗号化要求データ構造および例示的なグループベース通信復号化要求データ構造を示す。実施形態では、例示的なグループベース通信暗号化要求(例えば、グループベース通信メッセージ暗号化要求またはグループベース通信ファイル暗号化要求)データ構造800は、キースコープ要素の集合802を含む。例示的なグループベース通信暗号化要求データ構造は、グループベース通信メッセージまたはファイルプレーンテキスト806をさらに含む。実施形態では、キースコープ要素の集合802は、1つ以上のキースコープ要素802A、802B、802C、802Dを含む。図8Aのキースコープ要素の集合802は、複数のキースコープ要素(本明細書ではグループベース通信キースコープ要素とも称される)を示しているが、本実施形態では、キースコープ要素の集合(本明細書ではグループベース通信キースコープ要素の集合とも称される)を構成するために、単一のキースコープ要素以上のキースコープ要素を必要としないことが理解されるであろう。
実施形態では、グループベース通信キースコープ要素は、グループベース通信組織識別子802A、グループベース通信ワークスペース識別子802B、グループベース通信チャネル識別子802C、またはタイムスタンプ802Dのうちの1つである。実施形態では、各グループベース通信メッセージまたはファイルは、一意のグループベース通信メッセージまたはファイルのキースコープ要素の集合に関連付けられている。実施形態では、タイムスタンプにより、グループベース通信メッセージまたはファイルがクライアントデバイスによってグループベース通信サーバに電子的に送信されたネットワーク時間を識別する。
実施形態では、グループベース通信暗号化要求データ構造800は、キーファミリ識別子804をさらに含む。
実施形態では、グループベース通信組織識別子により、グループベース通信メッセージ送信者(またはファイル作成者)識別子が関連付けられているグループベース通信組織が識別され、グループベース通信メッセージ送信者(またはファイル作成者)識別子は、グループベース通信メッセージ(またはファイル)に関連付けられている。実施形態では、グループベース通信ワークスペース識別子により、グループベース通信メッセージ送信者識別子(またはファイル作成者)およびグループベース通信メッセージ(またはファイル)が関連付けられているグループベース通信ワークスペースが識別され、グループベース通信チャネル識別子により、グループベース通信メッセージ送信者識別子(またはファイル作成者)およびグループベース通信メッセージ(またはファイル)が関連付けられているグループベース通信チャネルが識別される。
実施形態では、例示的なグループベース通信復号化(例えば、メッセージ復号化またはファイル復号化)要求データ構造810は、グループベース通信キーファミリ識別子812、暗号化キー暗号文816、およびグループベース通信メッセージまたはファイル暗号文818を含む。実施形態では、例示的なグループベース通信復号化要求データ構造810は、グループベース通信キースコープ要素の集合を含む。
図9は、本開示の実施形態で使用するための例示的なグループベース通信キースコープ
要素データ構造を示す。
実施形態では、グループベース通信キースコープ要素データ構造900は、特定のグループベース通信メッセージのためのグループベース通信キースコープ要素の集合を含む。グループベース通信キースコープ要素の集合は、1個~N個のキースコープ要素(902A、902B、902C、902D、...、902N)を含むことができる。
図10A、図10Bおよび図10Cは、本開示の一実施形態による、グループベース通信システム内で暗号化キー管理を提供するための例示的なデータフローを示す。
実施形態では、例示的なルーチン1000は、1002において、グループベース通信サーバから暗号化要求を受信することから始まる。実施形態では、暗号化要求は、暗号化キー要求データ構造および暗号化要求プレーンテキストを含む。実施形態では、暗号化要求は、暗号化キー管理システムまたはグループベース通信暗号化キー管理システムによって受信される。
実施形態では、ルーチン1000は、1004で、少なくとも1つのローカルメモリから、暗号化キー要求データ構造に関連付けられた暗号化キーを取得することに進む。実施形態では、暗号化キーは、暗号化キー管理システムまたはグループベース通信暗号化キー管理システムによって取得される。
実施形態では、ルーチン1000は、1006で、暗号化キーを使用して暗号化要求プレーンテキストを暗号化し、暗号化要求暗号文を作成することに進む。実施形態では、暗号化は、グループベース通信暗号化キー管理システムによって実行される。
実施形態では、ルーチン1000は、1008で、グループベース通信サーバに、暗号化要求暗号文、暗号化キー要求データ構造の少なくとも一部、および暗号化キーに基づく暗号化キー暗号文を送信することに進む。実施形態では、送信は、グループベース通信暗号化キー管理システムによって実行される。
実施形態では、ルーチン1000は、1010で暗号化キー要求データ構造に関連付けられた暗号化キーが少なくとも1つのローカルメモリに格納されていないことが判別されると、1012で、暗号化キー生成要求をキーマテリアルソースに送信することを含む。実施形態では、暗号化キー生成要求は、暗号化キー要求データ構造を含む。実施形態では、判別および送信は、暗号化キー管理システムまたはグループベース通信暗号化キー管理システムによって実行される。
実施形態では、ルーチン1000は、1014で、キーマテリアルソースから、暗号化キーおよび暗号化キーに関連付けられた暗号化キー暗号文を受信することを含む。実施形態では、受信は、暗号化キー管理システムまたはグループベース通信暗号化キー管理システムによって実行される。
実施形態では、ルーチン1000は、1016で、暗号化キーおよび暗号化キーに関連付けられた暗号化キー暗号文を少なくとも1つのローカルメモリに格納することを含む。実施形態では、暗号化キーおよび暗号化キー暗号文は、暗号化キー管理システムまたはグループベース通信暗号化キー管理システムのローカルメモリに格納されている。
操作1010、1012、1014および1016は、暗号化キーがローカルメモリに格納されていないことが判別された場合に実行されることが理解されるであろう。
実施形態では、ルーチン1000は、1018でキーマテリアルソースが暗号化キーおよび暗号化キー暗号文のうちの1つ以上で応答していないことが判別されると、1020で、暗号化要求エラーをグループベース通信サーバに送信することをさらに含む。
実施形態では、暗号化キー要求データ構造は、複数の一意のキースコープ要素を含む。
実施形態では、一意のキースコープ要素のうちの1つ以上に関連付けられた暗号化キーへのアクセスが、失効となる。
実施形態では、ルーチン1000は、1022で、グループベース通信サーバから復号化要求を受信することをさらに含む。実施形態では、復号化要求は、暗号化キー要求データ構造、暗号化キー暗号文、および復号化要求暗号文を含む。実施形態では、受信は、暗号化キー管理システムまたはグループベース通信暗号化キー管理システムによって実行される。
実施形態では、ルーチン1000は、1024で、少なくとも1つのローカルメモリから、暗号化キー暗号文に関連付けられた暗号化キーを取得することをさらに含む。実施形態では、取得は、暗号化キー管理システムまたはグループベース通信暗号化キー管理システムによって実行される。
実施形態では、ルーチン1000は、1026で、暗号化キーを使用して復号化要求暗号文を復号化し、復号化要求プレーンテキストを作成することをさらに含む。実施形態では、復号化は、暗号化キー管理システムまたはグループベース通信暗号化管理システムによって実行される。
実施形態では、ルーチン1000は、1028で、グループベース通信サーバに復号化要求プレーンテキストを送信することをさらに含む。実施形態では、送信は、暗号化キー管理システムまたはグループベース通信暗号化キー管理システムによって実行される。
実施形態では、ルーチン1000は、1030で暗号化キー暗号文に関連付けられた暗号化キーが少なくとも1つのローカルメモリに格納されていないことが判別されると、1032で、暗号化キー生成要求をキーマテリアルソースに送信することをさらに含む。実施形態では、暗号化キー生成要求は、暗号化キー要求データ構造および暗号化キー暗号文を含む。実施形態では、送信は、暗号化キー管理システムまたはグループベース通信暗号化キー管理システムによって実行される。
実施形態では、ルーチン1000は、1034で、キーマテリアルソースから暗号化キーを受信することをさらに含む。実施形態では、受信は、暗号化キー管理システムまたはグループベース通信暗号化キー管理システムによって実行される。
実施形態では、ルーチン1000は、1036で、暗号化キーおよび暗号化キーに関連付けられた暗号化キー暗号文を少なくとも1つのローカルメモリに格納することをさらに含む。実施形態では、格納は、暗号化キー管理システムまたはグループベース通信暗号化キー管理システムによって実行される。
実施形態では、ルーチン1000は、1038でキーマテリアルソースが暗号化キーで応答していないことが判別されると、1040で、復号化要求エラーをグループベース通信サーバに送信することをさらに含む。実施形態では、送信は、暗号化キー管理システムまたはグループベース通信暗号化キー管理システムによって実行される。
実施形態では、暗号化キー要求データ構造は、複数の一意のキースコープ要素を含む。
実施形態では、一意のキースコープ要素のうちの1つ以上に関連付けられた暗号化キーへのアクセスが、失効となる。
実施形態では、グループベース通信サーバは、クライアントデバイスのディスプレイ内のグループベース通信チャネルインタフェース内でのレンダリングのためのチャネル履歴プレースホルダテキストをクライアントデバイスに送信する。
実施形態では、暗号化要求プレーンテキストは、グループベース通信メッセージプレーンテキスト、グループベース通信ファイルプレーンテキスト、またはグループベース通信検索インデクス暗号化キーのうちの1つを含む。
実施形態では、復号化要求暗号文は、グループベース通信メッセージ暗号文またはグループベース通信ファイル暗号文のうちの1つを含む。
実施形態では、復号化要求暗号文は、暗号化されたグループベース通信検索インデクス暗号化キーを含む。
実施形態では、復号化要求暗号文は、暗号化されたグループベース通信検索インデクス暗号化キーを含み、グループベース通信サーバは、復号化要求暗号文に関連付けられた検索結果を除外した検索結果をクライアントデバイスに送信する。
図11Aおよび図11Bは、本開示の実施形態による、暗号化キー管理を提供するための例示的なデータフローを示す。
実施形態では、ルーチン1100は、1102で、通信システムの1つ以上のサーバに、キーマテリアルソースによって提供される1つ以上の暗号化キーへのアクセスを提供することを含み、暗号化キーは、通信システムによって管理されたデータにアクセスするための暗号化キーである。実施形態では、アクセスは、暗号化キー管理システムまたはグループベース通信暗号化キー管理システムによって提供される。
実施形態では、暗号化キーへのアクセスは、キースコープ要素ごとに失効させることができる。実施形態では、キースコープ要素は、暗号化キーに関連付けられ、かつタイムスタンプ、ユーザ識別子、メッセージ識別子、ファイル識別子、グループベース通信チャネル識別子、グループベース通信チーム識別子、グループベース通信ワークスペース識別子のうちの1つである。
実施形態では、ルーチン1100は、1104で、1つ以上のサーバに、少なくとも1つのローカルメモリに格納された1つ以上の暗号化キーへのアクセスを提供することをさらに含み、暗号化キーは、通信システムによって管理されたデータにアクセスするための暗号化キーである。実施形態では、アクセスは、暗号化キー管理システムまたはグループベース通信暗号化キー管理システムによって提供される。
実施形態では、ルーチン1100は、1106で、キーマテリアルソースによって提供される1つ以上の暗号化キーを使用して、暗号化されたプレーンテキストまたは復号化された暗号文を1つ以上のサーバに提供することをさらに含む。実施形態では、暗号化されたプレーンテキストまたは復号化された暗号文は、暗号化キー管理システムまたはグループベース通信暗号化キー管理システムによって提供される。
実施形態では、プレーンテキストは、グループベース通信メッセージプレーンテキスト、グループベース通信ファイルプレーンテキスト、またはグループベース通信検索インデクス暗号化キーのうちの1つ以上を含む。
実施形態では、暗号文は、グループベース通信メッセージ暗号文、グループベース通信ファイル暗号文、または暗号化されたグループベース通信検索インデクス暗号化キーのうちの1つ以上を含む。
[付加的な実装形態の詳細]
本明細書に記載された主題および機能的操作の実装形態は、種々のタイプのデジタル電子回路、または本明細書に開示された構造およびその構造的等価物を含むコンピュータソフトウェア、ファームウェアまたはハードウェアにおいて、またはその1つ以上の組み合わせにおいて実装することができる。
本明細書に記載された主題および操作の実施形態は、デジタル電子回路、または本明細書に開示された構造およびそれらの構造的等価物を含むコンピュータソフトウェア、ファームウェアまたはハードウェアにおいて、またはその1つ以上の組み合わせにおいて実装することができる。本明細書に記載された主題の実施形態は、情報/データ処理装置によって実行されるか、または情報/データ処理装置の操作を制御するためにコンピュータ記憶媒体上に符号化された、1つ以上のコンピュータプログラム、すなわちコンピュータプログラム命令の1つ以上のモジュールとして実装することができる。代替的にもしくは付加的に、プログラム命令は、人為的に生成された伝搬信号上に、例えば、機械的に生成された電気信号上、光信号上、または電磁信号上に符号化することができ、当該信号は、情報/データ処理装置による実行のために適切な受信装置に送信される情報/データを符号化するために生成されたものである。コンピュータ記憶媒体は、コンピュータ可読ストレージデバイス、コンピュータ可読ストレージ基板、ランダムもしくはシリアルアクセスメモリアレイもしくはデバイス、またはその1つ以上の組み合わせであってよく、もしくはこれらに含まれていてよい。さらに、コンピュータ記憶媒体は、伝搬信号ではないが、コンピュータ記憶媒体は、人工的に生成された伝搬信号に符号化されたコンピュータプログラム命令のソースまたはデスティネーションでありうる。コンピュータ記憶媒体はまた、1つ以上の別個の物理的コンポーネントまたは媒体(例えば、複数のCD、ディスク、もしくは他のストレージデバイス)であってもよく、もしくはそれらに含まれていてもよい。
本明細書に記載された操作は、1つ以上のコンピュータ可読ストレージデバイスに格納された情報/データ、または他のソースから受信した情報/データ上において情報/データ処理装置によって実行される操作として実装することができる。
「データ処理装置」なる語は、例としては、プログラマブルプロセッサ、コンピュータ、チップ上のシステムもしくは並列装置、または上述したものの組み合わせを含む、データを処理するためのあらゆる種類の装置、デバイスおよび機械を包含する。当該装置は、特別な目的の論理回路、例えば、FPGA(フィールドプログラマブルゲートアレイ)またはASIC(特定用途向け集積回路)を含むことができる。装置はまた、ハードウェアに加えて、問題のコンピュータプログラムの実行環境を作成するコード、例えば、プロセッサのファームウェア、プロトコルスタック、データベース管理システム、オペレーティングシステム、クロスプラットフォームのランタイム環境、仮想マシンまたはその1つ以上の組み合わせを構成するコードを含むことができる。本装置および実行環境は、ウェブサービス、分散コンピューティング、グリッドコンピューティングインフラストラクチャのような種々の異なるコンピューティングモデルのインフラストラクチャを実現することができる。
コンピュータプログラム(プログラム、ソフトウェア、ソフトウェアアプリケーション、スクリプト、またはコードとしても公知である)は、コンパイル言語または解釈言語、宣言型言語または手続き型言語を含む任意の形態のプログラミング言語で記述することができ、当該コンピュータプログラムは、スタンドアロンプログラムとしての形態、またはコンピューティング環境での使用に適したモジュール、コンポーネント、サブルーチン、オブジェクト、もしくは他のユニットとしての形態を含む任意の形態で展開することができる。コンピュータプログラムは、ファイルシステム内のファイルに対応させることができるが、必須ではない。プログラムは、他のプログラムもしくは情報/データ(例えば、マークアップ言語文書に格納された1つ以上のスクリプト)を保持するファイルの一部分、問題のプログラム専用の単一のファイル、または複数の調整ファイル(例えば、1つ以上のモジュール、サブプログラム、もしくはコードの一部分を格納するファイル)に格納することができる。コンピュータプログラムは、1つのサイトに配置されているかまたは複数のサイトに分散されており、かつ通信ネットワークによって相互接続されている1台のコンピュータまたは複数のコンピュータで実行できるように展開することができる。
本明細書に記載されたプロセスおよびロジックフローは、入力情報/データを操作して出力を生成することによって動作を実行するための1つ以上のコンピュータプログラムを実行する1つ以上のプログラマブルプロセッサによって実行することができる。コンピュータプログラムの実行に適したプロセッサは、例として、汎用マイクロプロセッサおよび特別な目的のマイクロプロセッサの両方、ならびに任意の種類のデジタルコンピュータの任意の1つ以上のプロセッサを含む。プロセッサは、概して、読み出し専用メモリもしくはランダムアクセスメモリ、またはその両方から命令および情報/データを受信する。コンピュータの本質的な要素は、命令にしたがって動作を実行するためのプロセッサならびに命令およびデータを格納するための1つ以上のメモリデバイスである。コンピュータはまた、概して、データを格納するための1つ以上の大容量ストレージデバイス、例えば磁気ディスク、磁気光ディスクもしくは光ディスクを含むか、または情報/データの受信もしくは情報/データの転送またはその両方のために、これらに操作可能に結合される。しかし、コンピュータがこうしたデバイスを有することは必須ではない。コンピュータプログラム命令および情報/データを格納するのに適したデバイスは、あらゆる形態の不揮発性メモリ、媒体およびメモリデバイスを含み、例としては、例えばEPROM、EEPROMなどの半導体メモリデバイス、およびフラッシュメモリデバイス、例えば内部ハードディスクまたはリムーバブルディスクなどの磁気ディスク、磁気光ディスクならびにCD‐ROMおよびDVD‐ROMディスクが挙げられる。プロセッサおよびメモリは、特別な目的の論理回路によって補完可能であり、または特別な目的の論理回路に組み込み可能である。
ユーザとのインタラクションを提供するために、本明細書に記載された主題の実施形態は、ユーザに情報/データを表示するための表示デバイス、例えばCRT(陰極線管)またはLCD(液晶ディスプレイ)モニタと、ユーザがコンピュータに入力を行えるようにするキーボードおよびポインティングデバイス、例えばマウスまたはトラックボールとを有するコンピュータ上に実装することができる。ユーザとのインタラクションを提供するための他の種類のデバイスも同様に使用することができ、例えば、ユーザに提供されるフィードバックは、感覚フィードバック、例えば、視覚フィードバック、聴覚フィードバックまたは触覚フィードバックの任意の形態とすることができ、ユーザからの入力は、音響入力、音声入力または触覚入力を含む任意の形態で受け取ることができる。さらに、コンピュータは、ユーザによって使用されるデバイスに文書を送信したり、ユーザによって使用されるデバイスから文書を受信したりすることによって、ユーザと対話することができる。例えばウェブブラウザから受信した要求に応答して、ユーザのクライアントデバイス上のウェブブラウザにウェブページを送信することによって、ユーザと対話することがで
きる。
本明細書に記載された主題の実施形態は、コンピューティングシステムであって、例えば情報/データサーバとしてのバックエンドコンポーネントを含むか、または例えばアプリケーションサーバとしてのミドルウェアコンポーネントを含むか、または例えばユーザが本明細書に記載した主題の実装形態によって対話することができるグラフィカルユーザインタフェースもしくはウェブブラウザを有するクライアントコンピュータであるフロントエンドコンポーネントを含むか、またはこうしたバックエンドコンポーネント、ミドルウェアコンポーネントもしくはフロントエンドコンポーネントのうちの1つ以上の任意の組み合わせを含むコンピューティングシステムで、実装することができる。システムのコンポーネントは、デジタル情報/データ通信の任意の形態または媒体、例えば通信ネットワークによって相互接続することができる。通信ネットワークの例としては、ローカルエリアネットワーク(「LAN」)およびワイドエリアネットワーク(「WAN」)、インターネットワーク(例えばインターネット)、ならびにピアツーピアネットワーク(例えばアドホックピアツーピアネットワーク)が挙げられる。
コンピューティングシステムは、クライアントおよびサーバを含むことができる。クライアントおよびサーバは概して互いにリモートの状態にあり、通常、通信ネットワークを介して相互作用する。クライアントとサーバとの関係は、それぞれのコンピュータ上で実行されているコンピュータプログラムが互いにクライアントとサーバとの関係を有していることによって生じる。一部の実施形態では、サーバは、情報/データ(例えばHTMLページ)を、クライアントデバイスに(例えば、情報/データをクライアントデバイスに表示し、クライアントデバイスと対話するユーザからのユーザ入力を受け取る目的で)送信する。クライアントデバイスで生成された情報/データ(例えば、ユーザインタラクションの結果)は、サーバで、クライアントデバイスから受信することができる。
本明細書は多くの特定の実装形態の詳細を含んでいるが、これらはいずれかの発明の範囲または特許請求の範囲に対する限定として解釈されるべきではなく、むしろ、特定の発明の特定の実施形態に特有の特徴の説明として解釈されるべきである。別個の実施形態の文脈において本明細書で説明した特定の特徴は、単一の実施形態として組み合わせて実現することもできる。逆に、単一の実施形態の文脈において説明した種々の特徴を、複数の実施形態で別々に、または任意の適切なサブコンビネーションによって実現することもできる。さらに、特定の組み合わせにおいて作用するものとして説明し、初期的にそのようなものとして請求している場合でも、請求している組み合わせのなかの1つ以上の特徴を、場合によっては組み合わせから削除することができ、また請求している組み合わせを、サブコンビネーションまたはサブコンビネーションの変形例に合うように変更することができる。
同様に、特定の順序で操作を図面に示したが、これは、望ましい結果を達成するために、こうした操作が示された特定の順序で実行されること、または逐次に実行されること、または図示された全ての操作が実行されることを要求するものとして理解されるべきではない。特定の状況では、マルチタスキングおよび並列処理が有利な場合がある。さらに、上述した実施形態における種々のシステムコンポーネントの分離は、全ての実施形態においてこうした分離を要求とするものと理解されるべきではなく、説明したプログラムコンポーネントおよびシステムは、概して、単一のソフトウェア製品に一緒に統合可能であり、または複数のソフトウェア製品にパッケージ化可能であることが理解されるべきである。
このように、主題の特定の実施形態を説明した。他の実施形態は、以下の特許請求の範囲内にある。場合によっては、特許請求の範囲に記載した動作は、異なる順序で実行可能
であり、なおかつ望ましい結果を得ることができる。さらに、添付の図面に示されたプロセスは、望ましい結果を達成するために、必ずしも示された特定の順序、または逐次の順序を要するものではない。特定の実装形態では、マルチタスキングおよび並列処理が有利な場合がある。
本明細書において説明した発明の多くの修正形態および他の実施形態は、上述の説明および関連する図面に提示した教示の恩恵を受けて、発明が属する分野の当業者に想到されるであろう。したがって、本発明は、開示した特定の実施形態に限定されるものではなく、修正形態および他の実施形態は添付の特許請求の範囲に含まれることが意図されていることが理解される。本明細書では特定の用語を使用しているが、これらは一般的かつ説明的な意味でのみ使用しており、限定を目的としてはいない。