(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-10-26
(45)【発行日】2023-11-06
(54)【発明の名称】国際データレジデンシのための暗号化キー管理
(51)【国際特許分類】
H04L 9/08 20060101AFI20231027BHJP
H04L 9/32 20060101ALI20231027BHJP
【FI】
H04L9/08 B
H04L9/32 100Z
(21)【出願番号】P 2022096935
(22)【出願日】2022-06-16
(62)【分割の表示】P 2020170204の分割
【原出願日】2020-10-08
【審査請求日】2022-07-04
(32)【優先日】2020-07-01
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】506332063
【氏名又は名称】セールスフォース インコーポレイテッド
(74)【代理人】
【識別番号】110001427
【氏名又は名称】弁理士法人前田特許事務所
(72)【発明者】
【氏名】ドラモンド オードリー
(72)【発明者】
【氏名】バッタチャルジー ディープ
(72)【発明者】
【氏名】シャインブラム ジェームズ
(72)【発明者】
【氏名】ギアメイ エデン
(72)【発明者】
【氏名】ハムリック ステファン
(72)【発明者】
【氏名】クラウリー リチャード
(72)【発明者】
【氏名】ゴーハム リディア
(72)【発明者】
【氏名】メータ プージャ
(72)【発明者】
【氏名】ラーグマン レッサ
(72)【発明者】
【氏名】グエン カレン
【審査官】金沢 史明
(56)【参考文献】
【文献】特開2020-126600(JP,A)
【文献】米国特許出願公開第2020/0192881(US,A1)
【文献】特表2021-510995(JP,A)
【文献】国際公開第2019/236905(WO,A1)
【文献】米国特許第08416954(US,B1)
(58)【調査した分野】(Int.Cl.,DB名)
H04L 9/00- 9/40
G09C 1/00
(57)【特許請求の範囲】
【請求項1】
データレジデンシのための暗号化キー管理を提供するシステムであって、
第1地政学的領域に配置された第1データストレージと、
国又は州について前記第1地政学的領域とは異なる第2地政学的領域に配置された第2データストレージと、
前記第1地政学的領域に配置されたグループベースコミュニケーションシステムサーバーであって、前記グループベースコミュニケーションシステムサーバーは、
組織に関連付けられた第1ユーザーの第1クライアントデバイスから、グループベースコミュニケーションシステムのグループに投稿されるべきメッセージを受信することと、
前記組織に関連付けられたデータが前記第2地政学的領域に記憶されるべきだと、前記組織に基づいて判定することと、
組織特有の暗号化キーを用いて前記メッセージを暗号化することと、
前記暗号化されたメッセージについてのストレージ位置を示す情報を、前記第1地政学的領域にある前記第1データストレージに記憶することと、
前記暗号化されたメッセージを、前記第2地政学的領域にある前記第2データストレージに記憶することと、
前記メッセージへのアクセスを試行したという指標を、前記組織に関連付けられた第2ユーザーの第2クライアントデバイスから受信することと、
前記暗号化されたメッセージについての前記ストレージ位置を示す前記情報を、前記第1地政学的領域にある前記第1データストレージから取得することと、
前記暗号化されたメッセージを、前記第2地政学的領域にある前記第2データストレージから、前記暗号化されたメッセージについての前記ストレージ位置を示す前記情報を用いて取得することと、
組織特有の復号化キーを用いて前記メッセージを復号化することと、
前記復号化されたメッセージを、前記第2ユーザーの前記第2クライアントデバイスに送信することと、
を行うようプログラムされている、グループベースコミュニケーションシステムサーバーと、を備えるシステム。
【請求項2】
前記組織特有の暗号化キーは、前記組織特有の復号化キーと同じである、
請求項1に記載のシステム。
【請求項3】
前記組織特有の暗号化キー及び前記組織特有の復号化キーは、非対称キーペアを形成する、
請求項1に記載のシステム。
【請求項4】
前記第2地政学的領域に配置された、前記組織特有の暗号化キー及び前記組織特有の復号化キーを記憶するキーサーバーをさらに備える請求項1に記載のシステムであって、
前記グループベースコミュニケーションシステムサーバーは、
グループに投稿されるべきメッセージを前記第1ユーザーの前記第1クライアントデバイスから受信したことに応答して、前記組織特有の暗号化キーを前記キーサーバーから取得することと、
前記暗号化されたメッセージを前記第2データストレージから受信したことに応答して、前記組織特有の復号化キーを前記キーサーバーから取得することと、
を行うようにさらにプログラムされている、
請求項1に記載のシステム。
【請求項5】
前記キーサーバーから受信されたキーをキャッシュするようプログラムされた、前記第1地政学的領域にあるキーキャッシュをさらに備える、
請求項4に記載のシステム。
【請求項6】
前記第2地政学的領域にある前記第2データストレージは、前記組織についてのロギングデータを記憶する、
請求項1に記載のシステム。
【請求項7】
前記メッセージへのアクセスを試行したという指標は、前記グループベースコミュニケーションシステムにおいて閲覧するための、前記第2ユーザーによるグループの選択を含む、
請求項1に記載のシステム。
【請求項8】
データレジデンシのための暗号化キー管理を提供する方法であって、
組織に関連付けられた第1ユーザーの第1クライアントデバイスから、グループベースコミュニケーションシステムのグループに投稿されるべきメッセージを、グループベースコミュニケーションシステムサーバーによって受信することであって、
前記グループベースコミュニケーションシステムサーバーは、第1地政学的領域に配置されている、
グループに投稿されるべきメッセージを受信することと、
組織特有の暗号化キーを用いて前記メッセージを暗号化することと、
前記組織に関連付けられたデータが第2地政学的領域に記憶されるべきだと、前記組織に基づいて、前記グループベースコミュニケーションシステムサーバーによって判定したことに応答して、前記暗号化されたメッセージを第2データストレージに記憶することであって、
前記第2データストレージは、前記第2地政学的領域に配置され、
前記第2地政学的領域は、
国又は州について前記第1地政学的領域とは異なる、
前記暗号化されたメッセージを第2データストレージに記憶することと、
前記暗号化されたメッセージについてのストレージ位置を示す情報を、第1データストレージに記憶することであって、
前記第1データストレージは、前記第1地政学的領域に配置される、
ストレージ位置を示す情報を記憶することと、
前記メッセージへのアクセスを試行したという指標を、前記組織に関連付けられた第2ユーザーの第2クライアントデバイスから、前記グループベースコミュニケーションシステムサーバーによって受信することと、
前記暗号化されたメッセージについての前記ストレージ位置を示す前記情報を、前記第1地政学的領域にある前記第1データストレージから、前記グループベースコミュニケーションシステムサーバーによって取得することと、
前記暗号化されたメッセージを、前記第2地政学的領域にある前記第2データストレージから、前記暗号化されたメッセージについて前記ストレージ位置を示す前記情報を用いて、前記グループベースコミュニケーションシステムサーバーによって取得することと、
組織特有の復号化キーを用いて、前記メッセージを前記グループベースコミュニケーションシステムサーバーによって復号化することと、
前記復号化されたメッセージを、前記第2ユーザーの前記第2クライアントデバイスに、前記グループベースコミュニケーションシステムサーバーによって送信することと、
を含む方法。
【請求項9】
グループに投稿されるべきメッセージを、前記第1ユーザーの前記第1クライアントデバイスから受信したことに応答して、前記組織特有の暗号化キーをキーサーバーから前記グループベースコミュニケーションシステムサーバーによって取得することであって、
前記キーサーバーは、第3地政学的領域に配置されている、
前記組織特有の暗号化キーを取得することと、
前記暗号化されたメッセージを前記第2データストレージから受信したことに応答して、前記組織特有の復号化キーを前記キーサーバーから取得することと、
をさらに含む請求項8に記載の方法。
【請求項10】
前記第3地政学的領域は、
国又は州について前記第1地政学的領域とも前記第2地政学的領域とも異なる、
請求項9に記載の方法。
【請求項11】
前記グループベースコミュニケーションシステムサーバーによって、前記組織特有の暗号化キーをキーキャッシュに記憶することであって、
前記キーキャッシュは、前記第1地政学的領域に配置されている、
前記組織特有の暗号化キーをキーキャッシュに記憶すること
をさらに含む請求項9に記載の方法。
【請求項12】
前記組織特有の復号化キーを前記キーサーバーから取得することは、
前記組織特有の復号化キーの要求を、前記第1地政学的領域にあるルックスルーキーキャッシュ(look-through key cache)に送信することを含む、
請求項9に記載の方法。
【請求項13】
前記組織特有の暗号化キーは、前記組織特有の復号化キーと同じである、
請求項8に記載の方法。
【請求項14】
前記メッセージを記憶することを前記第2データストレージにロギングすることをさらに含む、請求項8に記載の方法。
【請求項15】
1つ以上のプロセッサによって実行される時に、前記1つ以上のプロセッサ
にデータレジデンシのための暗号化キー管理を提供するための操作を実行させる、コンピュータで実行可能な命令を記憶する1つ以上の非一時的コンピュータ読み取り可能な媒体であって、前記操作は、
組織に関連付けられた第1ユーザーの第1クライアントデバイスから、グループベースコミュニケーションシステムのグループに投稿されるべきメッセージを、グループベースコミュニケーションシステムサーバーによって受信することであって、
前記グループベースコミュニケーションシステムサーバーは、第1地政学的領域に配置されている、
グループに投稿されるべきメッセージを受信することと、
組織特有の暗号化キーを用いて前記メッセージを暗号化することと、
前記組織に関連付けられたデータが第2地政学的領域に記憶されるべきだと、前記組織に基づいて、前記グループベースコミュニケーションシステムサーバーによって判定したことに応答して、前記暗号化されたメッセージを第2データストレージに記憶することであって、
前記第2データストレージは、前記第2地政学的領域に配置され、
前記第2地政学的領域は、
国又は州について前記第1地政学的領域とは異なる、
前記暗号化されたメッセージを第2データストレージに記憶することと、
前記暗号化されたメッセージについてのストレージ位置を示す情報を、前記第1地政学的領域に配置されている第1データストレージに記憶することと、
前記メッセージへのアクセスを試行したという指標を、前記組織に関連付けられた第2ユーザーの第2クライアントデバイスから、前記グループベースコミュニケーションシステムサーバーによって受信することと、
前記暗号化されたメッセージについての前記ストレージ位置を示す前記情報を、前記第1地政学的領域にある前記第1データストレージから、前記グループベースコミュニケーションシステムサーバーによって取得することと、
前記暗号化されたメッセージを、前記第2地政学的領域にある前記第2データストレージから、前記暗号化されたメッセージについての前記ストレージ位置を示す前記情報を用いて、前記グループベースコミュニケーションシステムサーバーによって取得することと、
組織特有の復号化キーを用いて、前記グループベースコミュニケーションシステムサーバーによって前記メッセージを復号化することと、
前記復号化されたメッセージを、前記第2ユーザーの前記第2クライアントデバイスに、前記グループベースコミュニケーションシステムサーバーによって送信することと、
を含む、媒体。
【請求項16】
前記操作は、
グループに投稿されるべきメッセージを前記第1ユーザーの前記第1クライアントデバイスから受信したことに応答して、前記組織特有の暗号化キーをキーサーバーから前記グループベースコミュニケーションシステムサーバーによって取得することであって、
前記キーサーバーは、第3地政学的領域に配置されている、
前記組織特有の暗号化キーを取得することと、
前記暗号化されたメッセージを前記第2データストレージから受信したことに応答して、前記組織特有の復号化キーを前記キーサーバーから取得することと、
をさらに含む、請求項15に記載の媒体。
【請求項17】
前記第3地政学的領域は、前記第2地政学的領域と同じである、
請求項16に記載の媒体。
【請求項18】
前記操作は、
前記グループベースコミュニケーションシステムサーバーによって、前記組織特有の暗号化キーをキーキャッシュに記憶することであって、
前記キーキャッシュは、前記第1地政学的領域に配置されている、
前記組織特有の暗号化キーをキーキャッシュに記憶すること
をさらに含む、請求項16に記載の媒体。
【請求項19】
前記メッセージへのアクセスを試行したという前記指標は、前記グループベースコミュニケーションシステムにおいて前記第2ユーザーがグループのスクロールをして前記グループの会話履歴を閲覧することを含む、
請求項16に記載の媒体。
【請求項20】
前記復号化されたメッセージを前記第2ユーザーの前記第2クライアントデバイスに送信することは、前記復号化されたメッセージを前記第2ユーザーの前記第2クライアントデバイスに、トランスポート層の暗号化を用いて送信することを含む、
請求項16に記載の媒体。
【発明の詳細な説明】
【技術分野】
【0001】
本発明の実施形態は、概して、国際データレジデンシのための暗号化キーの管理、より詳細には、特定の地政学的領域のデータおよび/またはキーマテリアルを記憶するための要件に基づいて、暗号化メッセージの取得および記憶を行うための技術に関する。
【背景技術】
【0002】
従来、グループベース通信システムのためのデータは、グループベース通信システムを使用する組織に関係なく、グループベース通信システムのプロバイダによって中央の位置に記憶されている。しかし、一部の組織は、法律上、規則上または政治的な制約を満たすために、機密データを特定の地政学的領域に記憶することを望んでいる。同時に、一部の組織は、データを暗号化された形態で記憶し、潜在的な侵入者からプライバシーを守ることを望んでいる。しかし、管理された暗号化キーと地政学的なデータストレージの制約との組み合わせにより、従来、一貫性と待ち時間とを許容レベルに維持するために、データが記憶される地政学的領域ごとに別々のシステムが必要とされていた。その結果、非効率かつ不必要なリソースの重複が発生する。したがって、調整および相互対話のための中央アクセスポイントを可能にしながら、顧客管理の暗号化キーおよび顧客が指定したデータレジデンシを可能にするシステムが必要とされている。
【発明の概要】
【0003】
本発明の実施形態は、任意の地政学的領域で同様に管理されたキーを使用して、任意の地政学的領域で暗号化メッセージを記憶しかつ取得することを可能にする一方で、グループベース通信システムのための中央の第1のアクセスポイントを可能にする技術を提供することによって、上述の必要性について述べている。特に、第1の実施形態では、本発明は、プロセッサによって実行されるとき、国際データレジデンシのための暗号化キー管理を提供するための方法を実行する、コンピュータで実行可能な命令を記憶した1つもしくは複数の非一時性コンピュータ可読媒体であって、本方法は、第1の地政学的領域に位置するユーザから、組織に関連付けられたチャネルベース通信システムに投稿されるメッセージを受信するステップと、組織に基づいて、組織に関連付けられたデータのレジデンシとして、第2の地政学的領域が判別されたことに応答して、第2の地政学的領域に配置されたキーサーバに、暗号化キーの要求を送信するステップであって、第2の地政学的領域は、第1の地政学的領域とは異なる、ステップと、第2の地政学的領域に配置されたキーサーバから、組織特有の暗号化キーを受信するステップと、組織特有の暗号化キーを使用して、メッセージを暗号化するステップと、暗号化メッセージを、第2の地政学的領域の第2のデータストレージに記憶するステップと、暗号化メッセージのストレージ位置を識別する情報を、第1の地政学的領域に暗号化メッセージを記憶することなく、第1の地政学的領域の第1のデータストレージに記憶するステップと、を含む、非一時性コンピュータ可読媒体を含む。
【0004】
第2の実施形態では、本発明は、国際データレジデンシのための暗号化キー管理を提供するための方法であって、本方法は、組織に関連付けられたグループベース通信システムに投稿された暗号化メッセージへのアクセスをユーザが試行したという指標をクライアントデバイスから受信するステップと、暗号化メッセージのストレージ位置を識別する情報を、第1の地政学的領域の第1のデータストレージから取得するステップであって、暗号化メッセージのストレージ位置を識別する情報は、暗号化メッセージが第2の地政学的領域の第2のデータストレージに記憶されていることを示しており、第2の地政学的領域は、第1の地政学的領域とは異なる、ステップと、暗号化メッセージを、第2の地政学的領域の第2のデータストレージから取得するステップと、暗号化メッセージに関連付けられ
た復号化キーが第1の地政学的領域のキーキャッシュに記憶されていないと判別されたことに応答して、復号化キーを、第3の地政学的領域に配置されたキーサーバから取得するステップであって、第3の地政学的領域は、第1の地政学的領域とは異なる、ステップと、プレーンテキストメッセージを取得するために、復号化キーを使用して暗号化メッセージを復号化するステップと、ユーザに表示するために、プレーンテキストメッセージをクライアントデバイスに送信するステップと、を含む、方法を含む。
【0005】
第3の実施形態では、本発明は、プロセッサによって実行されるとき、国際データレジデンシのための暗号化キー管理を提供するための方法を実行する、コンピュータで実行可能な命令を記憶した1つもしくは複数の非一時性コンピュータ可読媒体であって、本方法は、組織に関連付けられたグループベース通信システムに投稿された暗号化メッセージにアクセスする試行の指標を、第2の地政学的領域のクライアントデバイスから受信するステップと、暗号化メッセージのストレージ位置を第2の地政学的領域の第2のデータストレージとして識別する、暗号化メッセージに関連付けられた情報に基づいて、第1の地政学的領域の第1のデータストレージから、暗号化メッセージに関連付けられた情報を取得するステップであって、第2の地政学的領域は、第1の地政学的領域とは異なる、ステップと、暗号化メッセージを、第2の地政学的領域の第2のデータストレージから取得するステップと、暗号化メッセージに関連付けられた組織特有の復号化キーを、第3の地政学的領域に配置されたキーサーバから取得するステップであって、第3の地政学的領域は、第1の地政学的領域とは異なる、ステップと、プレーンテキストメッセージを取得するために、組織特有の復号化キーを使用して暗号化メッセージを復号化するステップと、ユーザに表示するために、プレーンテキストメッセージをクライアントデバイスに送信するステップと、を含む、非一時性コンピュータ可読媒体を含む。
【0006】
本概要は、以下の詳細な説明においてさらに説明される概念の選択を簡略化した形態で紹介するために提供される。本概要は、請求された主題の重要な特色または本質的な特徴を特定することを意図するものではなく、また、請求された主題の範囲を限定するために使用されることを意図するものでもない。本発明の他の態様および利点は、実施形態および添付図面についての以下の詳細な説明から明らかになるであろう。
【図面の簡単な説明】
【0007】
本発明の実施形態を、添付の図面を参照して以下に詳細に説明する。
【
図1A】本発明の特定の実施形態の例示的なハードウェアプラットフォームを示す図である。
【
図1B】本発明の実施形態を実施するためのシステムの構成要素を示す例示的な図である。
【
図2】本発明の実施形態による、指定された地政学的領域に暗号化メッセージを記憶するための方法の動作を示すフローチャート図である。
【
図3】本発明の実施形態による、指定された地政学的領域に暗号化メッセージを記憶するための処理の要素の責任のフローを示すスイムレーン図である。
【
図4】指定された地政学的領域に記憶された暗号化メッセージにアクセスするための方法の動作を示すフローチャート図である。
【
図5A】本発明の実施形態による、指定された地政学的領域に記憶された暗号化メッセージにアクセスするための処理の要素の責任のフローを示すスイムレーン図を一括して示す図である。
【
図5B】本発明の実施形態による、指定された地政学的領域に記憶された暗号化メッセージにアクセスするための処理の要素の責任のフローを示すスイムレーン図を一括して示す図である。
【0008】
図面は、本発明を、本明細書に開示および記載された特定の実施形態に限定するもので
はない。図面は必ずしも原寸大ではなく、代わりに本発明の原理を明確に説明することに重点が置かれている。
【発明を実施するための形態】
【0009】
高レベルでは、本発明の実施形態は、任意の地政学的領域で同様に管理されたキーを使用して、任意の地政学的領域で暗号化メッセージを記憶しかつ取得することを可能にする一方で、グループベース通信システムのための中央の第1のアクセスポイントを可能にする技術を提供する。幾つかの実施形態では、グループベース通信システムは、チャネルベースのメッセージングプラットフォームである。これらの技術、およびそれらを実行するための例示的な環境は、以下でさらに詳細に説明される。
【0010】
本発明の実施形態の主題は、法的要件を満たすように以下に詳細に記載されるが、明細書自体は、特許請求の範囲を限定することを意図するものではない。むしろ、請求される主題は、他の現在または将来の技術とともに、異なるステップまたは本明細書に記載されたものと同様のステップの組み合わせを含む他の手法で具体化可能である。以下の説明からの軽微な変形形態は、当業者には自明であり、特許請求される発明の範囲内で捉えられることが意図されている。用語は、個々のステップの順序が明示的に記載されていない限り、記載された様々なステップの任意の特定の順序を意味するものとして解釈されるべきではない。
【0011】
本発明の実施形態についての以下の詳細な説明は、本発明を実施可能な特定の実施形態を示す添付図面を参照する。本実施形態は、当業者が本発明を実施できるように、本発明の態様を充分に詳細に説明することを意図する。他の実施形態を利用でき、本発明の範囲から逸脱することなく変更を行うことができる。したがって、以下の詳細な説明は、限定的な意味で解釈されるべきではない。本発明の実施形態の範囲は、こうした特許請求の範囲が権利を有する等価物の全範囲とともに、添付の特許請求の範囲によってのみ定義される。
【0012】
本明細書において、「一実施形態」、「1つの実施形態」または「実施形態」への言及は、言及される1つもしくは複数の特徴が、技術の少なくとも1つの実施形態に含まれていることを意味する。本明細書中の「一実施形態」、「1つの実施形態」または「実施形態」への別個の言及は、必ずしも同一の実施形態を指すものではなく、また、そのように記載されていない限り、かつ/または本明細書から当業者に容易に明らかである場合を除き、相互に排他的ではない。例えば、一実施形態に記載された特徴、構造または機能は、他の実施形態にも含まれうるが、必須ではない。したがって、本技術は、本明細書に記載される実施形態の様々な組み合わせおよび/または統合を含むことができる。
【0013】
最初に
図1Aを参照すると、本発明の特定の実施形態のための例示的なハードウェアプラットフォームが示されている。コンピュータ102は、デスクトップコンピュータ、ラップトップコンピュータ、サーバコンピュータ、スマートフォンやタブレットなどのモバイルデバイス、または汎用もしくは特殊目的のコンピューティングデバイスの任意の他のフォームファクタであってもよい。例証の目的のために、コンピュータ102には幾つかの構成要素が示されている。幾つかの実施形態では、特定の構成要素は、異なって配置されていても、存在していなくてもよい。また、付加的な構成要素が存在してもよい。コンピュータ102には、システムバス104が含まれており、これにより、コンピュータ102の他の構成要素は互いに通信できる。特定の実施形態では、複数のバスが存在してもよく、または構成要素は相互に直接に通信してもよい。システムバス104には、中央処理装置(CPU)106が接続される。また、システムバス104には、1つもしくは複数のランダムアクセスメモリ(RAM)モジュール108が接続されている。また、システムバス104には、グラフィックカード110が接続されている。幾つかの実施形態で
は、グラフィックカード110は、物理的に別個のカードではなく、マザーボードまたはCPU106に一体化されていてもよい。幾つかの実施形態では、グラフィックカード110は、別個のグラフィック処理ユニット(GPU)112を有し、このGPU112は、グラフィック処理または汎用コンピューティング(GPGPU)に使用されてもよい。また、グラフィックカード110には、GPUメモリ114がある。グラフィックカード110には(直接にまたは間接的に)、ユーザ対話のためのディスプレイ116が接続されている。幾つかの実施形態では、ディスプレイは存在せず、他の実施形態では、ディスプレイはコンピュータ102に組み込まれている。同様に、キーボード118およびマウス120などの周辺機器が、システムバス104に接続されている。ディスプレイ116と同様に、これらの周辺機器は、コンピュータ102に組み込まれていても、または存在していなくてもよい。システムバス104には、ローカルストレージ122も接続されており、このローカルストレージ122は、任意の形態のコンピュータ可読媒体であってもよく、コンピュータ102の内部に設けられていても、外部に取り外し可能に取り付けられていてもよい。
【0014】
コンピュータ可読媒体は、揮発性媒体および不揮発性媒体、リムーバブル媒体および非リムーバブル媒体の両方を含み、データベースによって読み取り可能な媒体が考えられる。例えば、コンピュータ可読媒体としては、RAM、ROM、EEPROM、フラッシュメモリまたは他のメモリ技術、CD‐ROM、デジタルヴァーサティルディスク(DVD)、ホログラフィック媒体または他の光ディスクストレージ、磁気カセット、磁気テープ、磁気ディスクストレージ、および他の磁気ストレージデバイスが挙げられる(が、これらに限定されない)。これらの技術は、データを一時的にまたは恒久的に記憶できる。しかし、明示的に規定されない限り、用語「コンピュータ可読媒体」は、無線放送、ワイヤを介した電気信号、または光ファイバケーブルを介した光パルスなどの、物理的ではあるが一時的な信号伝送形態を含むと解釈されるべきではない。記憶された情報の例としては、コンピュータ使用可能な命令、データ構造、プログラムモジュール、および他のデータ表現が挙げられる。
【0015】
最終的に、ネットワークインタフェースカード(NIC)124も、また、システムバス104に取り付けられ、コンピュータ102がネットワーク126などのネットワークを介して通信することを可能にする。NIC124は、イーサネット、ATM、ファイバ、Bluetooth、またはWi‐Fi(すなわちIEEE802.11規格ファミリ)など、当該技術分野において公知の任意の形態のネットワークインタフェースでありうる。NIC124は、コンピュータ102をローカルネットワーク126に接続し、ローカルネットワーク126は、また、コンピュータ128などの1つもしくは複数の他のコンピュータ、およびデータ記憶装置130などのネットワークストレージを含むことができる。一般的に、データ記憶装置130などのデータストレージは、必要に応じて情報を記憶し、かつ取得することができる任意のリポジトリであってもよい。データストレージの例としては、リレーショナルまたはオブジェクト指向のデータベース、スプレッドシート、ファイルシステム、フラットファイル、LDAPやアクティブディレクトリなどのディレクトリサービス、または電子メールストレージシステムなどが挙げられる。データストレージは、複雑なAPI(例えば、構造化問い合わせ言語など)、読み取り、書き込みおよびシーク操作のみを提供する単純なAPI、またはその間の任意のレベルの複雑さを介してアクセス可能である。一部のデータストレージは、バックアップやバージョニングなどの、データストレージに記憶されたデータセットの管理機能をさらに提供してもよい。データストレージは、コンピュータ128などの単一のコンピュータに対してローカルであってもよく、ローカルネットワーク126のなどのローカルネットワーク上でアクセス可能であってもよく、インターネット132を介してリモートでアクセス可能であってもよい。ローカルネットワーク126は、次にインターネット132に接続され、インターネット132は、ローカルネットワーク126、リモートネットワーク134、または
コンピュータ136などの直接に接続されたコンピュータなどの多くのネットワークを接続している。幾つかの実施形態では、コンピュータ102自体がインターネット132に直接に接続されていてもよい。
【0016】
次に
図1Bを参照すると、本発明の実施形態を実施するためのシステムの構成要素を示す例示的な図が示されており、参照番号150により全体が参照される。システム150は、コンピュータ102などの複数のコンピュータおよびデータ記憶装置130などのデータストレージを備える。図示のように、システム150の構成要素は、2つの別個の地政学的領域に配置されており、破線の左側の構成要素は第1の地政学的領域に、右側の構成要素は第2の地政学的領域に、配置されている。例えば、第1の地政学的領域は米国であり、第2の地政学的領域は欧州連合であってよい。代替的に、第1の地政学的領域がカリフォルニアであり、第2の地政学的領域がバージニアであってもよい。幾つかの実施形態では、システムの構成要素が3つ以上の地政学的領域に存在していてもよい。例えば、システム150の構成要素の第1のセットが米国に、第2のセットが欧州連合に、第3のセットがロシア連邦に、配置されていてよい。本発明の実施形態は、異なる地政学的領域がデータストレージ、プライバシーおよび保持に関する異なる法律を有するときに特に有用である。例えば、第1の地政学的領域の法律に基づいて構成された組織は、その地政学的領域にそれらのデータを記憶することを要求されうる(または好んで記憶されうる)。しかし、本発明の実施形態は、地政学的領域の任意のセットにわたって考えられる。
【0017】
第1のクライアントデバイス152は、第1の地政学的領域に配置されている。ここでの説明を簡潔にするために、第1の地政学的領域を米国とするが、当業者であれば、任意の他の地政学的領域であってよいことを理解するであろう。代替的に、第1のクライアントは、第2の地政学的領域または第3の地政学的領域(図示せず)に配置されていてもよい。概して、クライアントデバイス152は、
図1に関して上述した任意の種類のコンピュータデバイスであってもよいが、典型的な実施形態では、第1のクライアントデバイス152は、デスクトップコンピュータ、ラップトップコンピュータ、またはスマートフォンなどのモバイルデバイスであってもよい。第1のクライアントデバイス152は、ユーザがグループベース通信システムと対話することを可能にする。幾つかの実施形態では、第1のクライアントデバイス152は、グループベース通信システム専用のソフトウェアを実行してもよい。他の実施形態では、ユーザは、第1のクライアントデバイス152のウェブブラウザを使用して、ウェブサイトを訪問することにより、グループベース通信サーバにアクセスすることができる。第1の地政学的領域には単一のクライアントデバイスだけが図示されているが、グループベース通信システムは、任意の所与の地政学的領域において、多数のユーザを有していてもよく、ユーザのそれぞれは、任意の数のクライアントデバイスからグループベース通信システムにアクセスすることができる。幾つかの実施形態では、グループベース通信システムは、チャネルベースのメッセージングプラットフォームである。
【0018】
また、第1の地政学的領域には、グループベース通信サーバ154が配置されている。グループベース通信サーバは、ネットワーク126またはインターネット132などのネットワークを介して第1のクライアントデバイス152に通信可能に接続されており、ユーザの様々なクライアントデバイスが、メッセージをグループに投稿することによって、メッセージを交換することが可能となる。グループベース通信サーバ154は、グループベース通信システムデータ記憶装置156にも通信可能に接続されている。図示では、グループベース通信サーバ154は、グループベース通信システムデータ記憶装置156に直接に接続されているが、また、グループベース通信サーバ154が(例えばグループベース通信システムデータ記憶装置156がネットワークベースのストレージまたはクラウドストレージであるような)グループベース通信システムデータ記憶装置156に接続される実施形態も考えられる。グループベース通信システムデータ記憶装置156は、メッ
セージデータ、グループ(またはチャネル)データおよびユーザデータを含む、グループベース通信システムのためのデータの一部を記憶する。特に、グループベース通信システムデータ記憶装置156は、第1の地政学的領域に記憶されることが指定されたデータを記憶する。異なる地政学的領域(第2の地政学的領域など)に記憶されることが指定されたデータについては、グループベース通信システムデータ記憶装置156は、代わりに、データへのポインタ、またはデータのストレージ位置を識別する他の情報を記憶することができる。後述するように、グループベース通信システムデータ記憶装置156のデータの一部または全部は、暗号化された形態で記憶可能である。例えば、データは、顧客管理のキーを使用して暗号化されて記憶可能である。
【0019】
キーのフェッチに伴う待ち時間を低減するために(例えば、キーが第2の地政学的領域に記憶される場合)、グループベース通信システムデータ記憶装置156のデータを復号化することができる最近使用されたキーは、キーキャッシュ158にキャッシュすることができる。例えば、キーは、キーサーバから最初にフェッチされた後、5分にわたって有効なままであってよい。当該期間内に同じキーが必要とされた場合(例えば、グループベース通信システムデータ記憶装置156に記憶された別のメッセージを復号化するために)、(場合により領域外の)キーストレージから再フェッチされる代わりに、キーキャッシュ158から取得することができ、これにより、待ち時間が低減される。当業者は、各キーがそれぞれ異なる期間にキャッシュされうること、および異なるキーが異なる長さの期間だけキャッシュされうることを理解するであろう。当業者は、さらに、キーキャッシュからキーにアクセスすることに伴う待ち時間の低減と、キャッシュサイズの増加(およびキーが指定されたストレージ地域の外に配置される時間を最小化したいという潜在的な顧客の要求)とのトレードオフを理解するであろう。
【0020】
次に第2の地域を参照すると、第2の地域のグループベース通信システムサーバ160は、幾つかの実施形態では、第2の地政学的領域に配置されたクライアント(第2のクライアントデバイス168など)のためのグループベース通信システムデータ記憶装置156に類似していてよい。他の実施形態では、クライアント(第1のクライアントデバイス152および第2のクライアントデバイス168など)は、それらが配置される地域に関係なく、単一のグループベース通信システムサーバ(例えば、グループベース通信システムサーバ154)と通信し、中央の当該グループベース通信システムサーバは、適切な地政学的領域において(適切に暗号化された)メッセージデータの記憶および取得を行う。このような実施形態では、第2の地域のグループベース通信システムサーバ160は、クライアントに対向していなくてもよく、代わりに、中央グループベース通信システムサーバが地域のデータストレージ(ここでは、第2の地域のグループベース通信システムデータ記憶装置162)と対話するためのインタフェースであってよい。幾つかの実施形態では、第2の地域のグループベース通信システムデータ記憶装置162は、組織メタデータおよびチャネルメタデータをさらに記憶する。例えば、組織のチャネルメンバーシップデータおよび検索インデクスは、指定された地域に記憶することができる。同様に、組織のロギングデータは、組織によって指定された場合、第2の地域のグループベース通信システムデータ記憶装置162に記憶することができる。
【0021】
上述したように、所定のデータを、特定の地政学的領域におけるストレージのために指定することができる。当該指定は、その特定の地政学的領域における顧客の設定または顧客に関連付けられた地域の法律に基づくことができる。このような指定に対応して、クライアントデバイスが通信するグループベース通信システムは、適切な地政学的領域のグループベース通信システムデータストレージ(第1の地域のグループベース通信データ記憶装置156または第2の地域のグループベース通信システムデータ記憶装置162など)にデータを記憶する(かつそこからデータを取得する)。本処理を、以下で詳細に検討する。
【0022】
また、第2の地政学的領域には、第2の地域のキーサーバ164および第2の地域のキーデータ記憶装置166がある。広義には、第2の地域のキーサーバ164は、第2の地政学的領域のための暗号化キーのすべての態様を管理する。例えば、第2の地域のキーサーバ164は、必要に応じて新しい暗号化キーを生成し、第2の地政学的領域のためにキーをローテーションしかつ取り消し、第2の地域のキーデータ記憶装置166との間で、暗号化キーの記憶および取得を行う。幾つかの実施形態では、第2の地域のキーサーバ164は、クライアントに対向せず、むしろ適切なグループベース通信システムサーバと対話するだけで、必要なキーを提供し、ストレージ前にデータを暗号化し、取得時にデータを復号化する。幾つかの実施形態では、特定のデータ項目(例えば、グループベース通信システムに投稿された特定のメッセージ)を暗号化するために使用されるキーは、データ項目が記憶されているのと同じ地政学的領域に記憶されている。したがって、例えば、第2の地域のグループベース通信システムデータ記憶装置162に記憶されたデータを復号化するためのキーは、第2の地域のキーデータ記憶装置166に記憶されている。他の実施形態では、暗号化されたデータと対応する暗号化キーとは、別々の地政学的領域に記憶されている。これは、例えば、単一の管轄権者が単独ではデータにアクセスできないことを担保するために有利でありうる。幾つかの実施形態では、特定の地政学的領域には、その地政学的領域に対する上述の機能を実装する単一の物理サーバだけが存在する。例えば、第2の地域のグループベース通信システムサーバ160は、第2の地域のキーサーバ164と同じ物理サーバであってもよい。幾つかのこのような実施形態では、異なるサーバは、同じ物理サーバの異なる仮想マシンまたはコンテナ上で実行されてもよい。他の実施形態では、異なるサーバは、付加的なグループベース通信システムサーバおよび/またはキーサーバを需要に応じてスピンアップできるよう、スケーラブルに実装可能であり、これらのサーバは、同じハードウェア、異なるハードウェアまたはこれらの任意の組み合わせにおいて動作可能である。
【0023】
次に
図2を参照すると、本発明の実施形態による、指定された地政学的領域に暗号化メッセージを記憶するための方法の動作を示すフローチャートが図示されており、参照番号200により全体が参照される。方法は、グループベース通信システムのユーザが、グループベース通信システムのグループにメッセージを投稿するステップ202から始まる。概して、このメッセージは、テキストコンテンツ、文書、画像、別のメッセージに対する反応(または承認)、使用情報、グループメンバーシップの変更、または第1の地域のグループベース通信システムデータ記憶装置156もしくは第2の地域のグループベース通信システムデータ記憶装置162などのグループベース通信システムデータストレージに記憶される任意の他の情報などの、グループと共有されるべき任意の情報でありうる。後述する本発明の実施形態では、このメッセージは、暗号化された形態で記憶される。幾つかの実施形態では、すべてのメッセージは、暗号化された形態で記憶され、他の実施形態では、特定のメッセージだけが暗号化された形態で記憶される。メッセージを暗号化するためには、適切な暗号化キーが必要である。幾つかの実施形態では、この暗号化キーは、ユーザがメンバーである組織(例えば会社)によって管理することができる。上述のように、組織は、(暗号化された)メッセージが記憶される地政学的領域と、暗号化キーが管理される地政学的領域とを指定することができる(これらは同じであっても異なっていてもよい)。
【0024】
処理は検査204に進み、ここで、グループベース通信システムは、ローカルのキーキャッシュをチェックし、必要なキーがローカルに記憶されているかどうかを判別する。幾つかの実施形態では、最近使用されたキーは、キャッシュ期間(例えば、5分、10分、1時間、1日、または任意の他の適切な期間)の間、グループベース通信システムサーバのローカルなキーキャッシュに保持され、頻繁に使用されるキーを、キーが管理される別の地政学的領域から再フェッチする必要性を回避する。これにより、時空間局所性の原理
により、特定のキーを要するメッセージを投稿したユーザが短い時間間隔で同じキーを必要とする第2のメッセージを投稿する可能性が高いことが示唆されるので、必要となるたびにキーを再フェッチすることにかかるかなりの資源を節約できる。幾つかの実施形態では、キーは、当該期間後にキャッシュからフラッシュされ、他の実施形態では、期限切れのキーがキャッシュからフラッシュされる。さらに他の実施形態では、固定サイズのキャッシュが最近使用された固定数のキーを保持し、新しいキーが必要とされて適切なキーサーバからフェッチされると、古い(または期限切れの)キーが消去される。幾つかの実施形態では、キーがキャッシュからアクセスされると、保持期間はリセットされるか、または別の方法で延長される。キーが期限切れになる幾つかの実施形態では、キーにキーキャッシュからアクセスすると、そのキーのリースは更新されてもよい。キーがキーキャッシュに存在し得ない場合、処理はステップ206に移行し、キーがキャッシュに見つかった場合、処理は代わりにステップ208にスキップする。
【0025】
ステップ206において、必要なキーがキーキャッシュに存在しないと判別されると、グループベース会話システムサーバは、適切なキーサーバからキーをフェッチする。一般に、適切なキーサーバは、グループベース会話システムサーバと同じ地政学的領域には存在しないが、ユーザの組織がユーザのローカル地域をその組織のキーストレージの地政学的領域として指定した場合、ローカルのグループベース通信システムサーバと同じ地政学的領域のキーサーバを使用することができる。概して、組織は、キーを管理できるようにするためのキー階層を採用することができる。例えば、組織は、マスタ組織キーを有することができ、マスタ組織キーは、ワークスペースキーごとの認証のために使用され、次にチャネルキーごとの署名のために使用することができ、セッションキーを生成するために使用することができる(例えば、1時間ごとにローテーションされるキー)。本開示を検討した当業者であれば、様々なキー階層のいずれかが本発明で採用されうることを理解するであろう。必要に応じて、グループベース会話システムサーバがキーを要求したときに、適切なキーサーバが新しいキーを生成してもよい。例えば、1時間ごとにセッションキーが採用され、セッションキーがローテーションされてから特定のチャネルにメッセージが投稿されていない場合、キーは、キーデータストレージに記憶されたキー生成マテリアルを使用して、要求に応じて生成可能である。幾つかの実施形態では、メッセージの投稿に応じて複数のキーを生成することができる。これは、例えば、メッセージによって新しいワークスペースまたはチャネルが作成される場合でありうる。
【0026】
次に、キーが生成されまたはキーキャッシュから取り出された後、処理はステップ208に進み、受信されたメッセージは、適切なキーを使用して暗号化される。当業者は、AES、Twofish、Serpent、およびBlowfishの暗号化アルゴリズムを含む様々な暗号化アルゴリズムをこのステップに採用できることを理解するであろう。幾つかの実施形態では、メッセージを暗号化するために対称キー暗号化を使用し、他の実施形態では、メッセージの暗号化に使用される対称暗号化キーを暗号化するために、非対称暗号化が使用される。幾つかの実施形態では、暗号ブロック連鎖またはストリーム暗号を採用することができ、キーの再利用が暗号文の拡散不足をもたらさないことが担保される。
【0027】
次に、検査210で、データのストレージのためにユーザの組織によって指定された地域が、グループベース会話システムサーバが配置されるのと同じ地政学的領域であるかどうかが判別される。同じであれば、処理はステップ212に進み、同じでない場合は、処理は代わりにステップ214に進む。1つのグループベース会話システムサーバだけが存在する実施形態では、当該判別は、ユーザの組織がその単一のサーバに対応する地政学的領域をデータレジデンシの地政学的領域として指定しているかどうかを単に検査するだけである。複数のグループベース会話システムサーバが存在する実施形態では、検査210は、代わりに、ユーザが通信している特定のグループベース会話システムサーバではなく
、データが記憶された場所を示すマスタインデクスの位置を比較することができる。
【0028】
ユーザの組織が、グループベース会話システムサーバの地政学的領域(またはマスタデータインデクス)を、その組織のデータが存在すべき地域として指定している場合、ステップ208で生成された暗号化メッセージは、ステップ212で、その地域のグループベース会話システムデータストレージに記憶される。復号化のための適切なキーを識別するために、暗号化メタデータが暗号化メッセージとともに記憶されてもよい。幾つかの実施形態では、メッセージごとに(またはメッセージの小グループごとに)異なるキーが使用されて、メッセージとともに(組織のキー階層の適切なキーで暗号化されて)記憶されてもよい。
【0029】
検査210で、組織のために指定された地政学的領域が第1のストレージ地域と異なると判別された場合、暗号化メッセージは、代わりに、ユーザの組織によって指定された地政学的領域のためのグループベース通信システムデータストレージ(例えば、第2の地域のグループベース通信システムデータ記憶装置162など)に記憶される。ステップ212に関しては、上述のように、暗号化メタデータが、暗号化メッセージに関連付けられて(上述の例に続き、第2の地域のグループベース通信システムデータ記憶装置162に)記憶されてもよい。
【0030】
次に、ステップ216で、ポインタ(または暗号化メッセージのストレージ位置を識別する他の情報)が、第1のストレージ地域のグループベース通信システムデータストレージに記憶される。このようにして、メッセージは、最初、第1のストレージ地域のグループベース通信システムデータストレージを調べ、ポインタが見つかった場合には、ポインタが含む位置を使用して、指定された地政学的領域のグループベース会話システムデータストレージから暗号化メッセージを取得することによって、取得することができる。幾つかの実施形態では、待ち時間を最小化するために、暗号化メッセージデータと並行して復号化のためのキーデータをフェッチできるよう、暗号化メタデータをポインタとともに記憶することができる。幾つかの実施形態では、新たに投稿された暗号化メッセージ、例えば最近使用されたキーは、所定のキャッシュ期間(例えば、5分、1時間、または1日)だけ、第1のストレージ地域にキャッシュ可能であり、これにより、他のチャネルメンバが最初にこれらを閲覧するときに、指定された地域からの再フェッチを必要とせずに迅速にフェッチすることが可能となる。
【0031】
次に
図3を参照すると、本発明の実施形態による、指定された地政学的領域に暗号化メッセージを記憶するための処理の要素の責任のフローを示すスイムレーン図が示されており、参照番号300により全体が参照される。
図300の目的につき、ユーザの組織の指定されたストレージ地域は、グループベース通信システムサーバの第1の地域とは異なるが、このことは必須ではない。
【0032】
処理は、ステップ302においてユーザのクライアントデバイスで始まり、そこではユーザがメッセージを作成して投稿する。上述のように、当該メッセージは、テキストコンテンツ、文書、絵文字/動く絵文字、またはグループベース通信システムの他のユーザと共有される任意の他の形態のコンテンツであってよい。当該メッセージは、ユーザのクライアントデバイスで実行されるソフトウェアとグループベース通信システムのサーバソフトウェアとの間に確立された通信チャネルを介して、グループベース通信システムサーバに送信される。幾つかの実施形態では、ここでの通信チャネルは、SSL、TLSまたはHTTPS暗号化などのトランスポート後暗号化を使用して暗号化される。
【0033】
次に、制御は、ステップ304でメッセージを受信するグループベース通信システムサーバに切り替わる。メッセージが(ユーザの組織の指定にしたがって)暗号化されるべき
であると判別された後、システムは、メッセージを暗号化するための適切なキースコープを決定し、ステップ306で、キーキャッシュにメッセージを送信し、対応するキーをチェックする。次に、制御はキーキャッシュに渡される。
【0034】
幾つかの実施形態では、後述するように、キーキャッシュは、グループベース通信システムサーバからキー要求を受信したとき(ステップ308)にキーがキャッシュにあればただちにキーを返送する(すなわち、ステップ322に直接にスキップする)、ルックスルーキャッシュである。そうでない場合、キーキャッシュは、適切なキーサーバからキーを要求し(ステップ310~320)、その後ステップ322で、グループベース通信システムサーバにキーを返送する責任がある。他の実施形態(図示せず)では、キーキャッシュはルックアサイドキャッシュであり、キーがキャッシュにない場合、キーキャッシュは、「キーが見つからない」という指標を返送し、グループベース通信システムサーバが、キーサーバからキーを要求しキャッシュに記憶する責任を負う。本開示を検討した当業者であれば、ルックスルーキャッシュに代えてルックアサイドキャッシュを利用することに以下の教示を適応させる手段を理解するであろう。
【0035】
ステップ308でキー要求を受信した後、キーが既にキャッシュに存在していないものとすると、ステップ310で、キーキャッシュは、キー要求(キースコープを含む)をユーザの組織によって指定された地政学的領域のキーサーバに転送し、制御はそのキーサーバに渡される。ステップ312で、指定された地政学的領域のキーサーバは、要求されたキースコープを含むキー要求を受信する。幾つかの実施形態では、キーサーバは、所望のキーが最近要求されたかどうかを判別するために、最初に調査に当たった第1の地政学的領域のキーキャッシュと同様のローカルキーキャッシュを有することができる。ステップ314で、キーサーバは、必要に応じて、要求されたキーを取得するかまたは生成する。例えば、特定のチャネル用のキーがそのチャネルにメッセージが最後に投稿されてからローテーションされている場合、新しいキーの生成が必要となりうる。幾つかの実施形態では、暗号化キーは、それ自体が暗号化された形態で記憶される。キーサーバは、要求されたキーを入手すると、ステップ316において、所望のキーで要求に返答する。次いで、制御は、キーキャッシュに戻ることができる。
【0036】
ステップ318では、所望のキーを有する応答がキーキャッシュに受信され、ステップ320で、キーキャッシュがキーを記憶し、将来の取得を迅速化する。上述のように、キーは、限られた期間だけキャッシュすることができる。幾つかの実施形態では、キーは、5分、1時間、または1日などの固定期間だけキャッシュされる。他の実施形態では、キー(セッションキーなど)は、そのスコープが期限切れとなるまでキャッシュされる。キーがキャッシュに追加されると(または既にキャッシュに存在していた場合)、ステップ322で、キーサーバは、要求されたキーデータをグループベース通信システムサーバに送信することができ、次いで、制御は当該サーバに戻る。
【0037】
ステップ324で、グループベース通信システムサーバは、要求したキーを適切なスコープとともに受信する。ルックスルーキャッシュを使用する実施形態では、キーがキーキャッシュから直接に取り出されたか、またはキーサーバからフェッチされる必要があったかにかかわらず、(グループベース通信システムサーバの観点からの)処理は同一である。グループベース通信システムサーバは、受信したキーを用いて、ステップ326で、メッセージを適切なキーで暗号化し、これにより、暗号化されたバージョンのメッセージ(つまり暗号文)を作成する。次に、ステップ328で、グループベース通信システムサーバは、暗号化メッセージを含むストレージ要求を、ユーザの組織によって指定された地政学的領域のグループベース通信システムサーバに(またはグループベース通信システムデータストレージに直接に)送信する。上述のように、データストレージのために指定された地政学的領域は、キー管理のためにユーザの組織によって規定された地政学的領域と同
じであっても、異なっていてもよい。
【0038】
ステップ330で、制御は、指定された地域のグループベース通信システムサーバ/データストレージに渡され、そこで、暗号化メッセージのストレージ要求を受信する。ステップ332で、指定された地域のグループベース通信システムサーバ/データストレージは、後の取得のために、メッセージを、指定された地政学的領域に記憶する。幾つかの実施形態では、暗号化メッセージは、ユーザの組織(例えば、その組織専用に共有されたデータベース)に関係付けられて記憶される。他の実施形態では、暗号化メッセージは、暗号化メッセージデータに基づくのみではどの暗号化データメッセージが特定の組織に関連付けられているかを知られないように、他の暗号化データとともに記憶される。
【0039】
ステップ332の後(またはステップ330,332と同時に)、制御は、グループベース通信システムサーバに戻る。ステップ334で、当該サーバは、グループベース通信システムサーバに記憶された暗号化メッセージへのポインタ(またはアクセスを可能にする他の情報)を作成する。幾つかの実施形態では、ポインタは、グループベース通信システムサーバによって返送された情報(例えば一意の行識別子など)に基づいて作成される。他の実施形態では、ポインタは、ステップ334でのストレージ要求の送信の前に作成され、後の取得を可能にする一意のレコード識別子が、ストレージ要求に含まれる。幾つかの実施形態では、ポインタは、暗号化されたデータが記憶された地政学的領域の証印とともに、暗号化されたデータの一意のレコード識別子を含んでもよい。ステップ336で、当該ポインタは、後のメッセージの取得を可能にするために、第1のグループベース通信システムのデータストレージに記憶される。例えば、ポインタは、非暗号化メッセージ(またはストレージ地域として第1の地政学的領域を指示する暗号化メッセージ)が記憶される場所に記憶可能であり、メッセージデータではなくポインタであることを示すフラグを含むことができる。暗号化メッセージデータおよび暗号化メッセージデータへのポインタが記憶されると、処理300は終了する。
【0040】
次に
図4を参照すると、指定された地政学的領域に記憶された暗号化メッセージにアクセスするための方法の動作を示すフローチャートが図示されており、参照番号400により全体が参照される。最初に、ステップ402において、組織に関連付けられている、クライアントデバイス152またはクライアントデバイス168のようなクライアントデバイスを使用するユーザが、暗号化メッセージをアクセスしようとしている。例えば、ユーザは、会話履歴にメッセージを含む特定のチャネルまたはグループを開く可能性がある。幾つかの実施形態では、処理400とほぼ同様の処理が、会話履歴の各メッセージについて実行される。他の実施形態では、会話履歴は、暗号化メッセージと非暗号化メッセージとの混合を含んでいてよい。さらに他の実施形態では、会話履歴は、それぞれ独自の暗号化ポリシーおよびデータレジデンシポリシーを構成して、異なる組織に関連付けられたユーザからのメッセージを含んでいてもよい。
【0041】
メッセージ(暗号化または非暗号化)にアクセスするとき、データレコードは、第1の地域のグループベース通信システムデータストレージから取り出される。当該データレコードは、方法200および処理フロー
図300に即して上述したようにして作成された、(暗号化されているか、または暗号化されていない)メッセージデータまたは異なる地政学的領域に記憶されたメッセージデータへのポインタを含みうる。この議論の目的につき、データレコードは異なる地政学的領域に記憶されたメッセージデータへのポインタを含むものとするが、本開示を検討した当業者であれば、レコードが代わりに暗号化メッセージデータまたは非暗号化メッセージデータを含む場合に本方法をどのように適応させることができるかを理解できるであろう。
【0042】
次に、処理はステップ404に進み、ここで、ポインタが、適切なグループベース会話
システムデータストレージから暗号化メッセージデータを取得するために使用される。例えば、ポインタは、上述のように、地政学的領域とレコード識別子とを識別するために展開可能である。次に、第1の地域のグループベース会話システムサーバは、レコード識別子を使用して、指定された地政学的領域に関する要求を、グループベース会話システムサーバ(またはグループベース会話システムデータストレージに直接に)に送信してもよい。次いで、そのサーバ(またはデータストレージ)が、暗号化メッセージデータで応答することができる。
【0043】
方法はステップ406に続き、ここで、暗号化メタデータを使用して、暗号化メッセージを復号化するために使用可能な適切なキースコープが判別される。例えば、暗号化メタデータは、ポインタに含まれる一意のレコード識別子、および/または暗号化メッセージに記憶されたデータの種類を示す情報(例えば、限定されるものではないが、チャネルポスト、ユーザデータ、共有ファイルおよび暗号化キーなど)を含んでいてよい。代替的にもしくは付加的に、暗号化メタデータは、メッセージデータを復号化するための復号化キーのキー識別子を判別するために使用可能な、キー識別子または情報を含んでいてもよい。例えば、暗号化メタデータは、組織識別子、ワークスペース識別子、チャネル識別子および(タイムスタンプなどの)セッション識別子(の一部または全部)を含むことができ、それらの各々(またはそれらのセット)は、キースコープに対応していてよい。具体的な例として、特定の暗号化メッセージは、チャネルのセッションキーを保護するために使用される特定のチャネルキーを記憶することができる。暗号化メッセージの暗号化メタデータは、一意のレコード識別子、暗号化メッセージがチャネルキーであることを示すタイプフィールド、キーのキー寿命データ、キーのキースコープ(ここではチャネル識別子)、ならびにキーの組織およびワークスペース識別子を含むことができる。本開示を検討した当業者であれば、特定の暗号化メッセージの暗号化メタデータとして、様々な非機密情報を記憶できることを理解するであろう。
【0044】
幾つかの実施形態では、暗号化メタデータは、暗号化メッセージとともに記憶される。他の実施形態では、暗号化メタデータは、ポインタとともに記憶される。さらに他の実施形態では、暗号化メタデータは、必要に応じて会話履歴から判別される。例えば、適切なキースコープは、組織、メッセージが投稿されたチャネル、およびメッセージが元々投稿された時刻を知ることによって判別可能である。当該情報は、暗号化メタデータがポインタおよび暗号化メッセージデータとは別に記憶されるように、会話履歴に含まれていてもよい。
【0045】
処理は次に検査408に移行し、適切なキーがキーキャッシュに存在するかどうかが判別される。キーがキーキャッシュに存在する場合、処理はステップ412にスキップでき、そうでない場合は、処理は代わりにステップ410に進む。ステップ410で、グループベース通信システムサーバは、以前に判別されたキースコープに対応するキーを、ユーザの組織によって指定された地政学的領域のキーサーバからキーストレージにフェッチする。ステップ410は、ステップ206と類似しており、暗号化のためのキーのフェッチに関して述べたのと同じ技術および変形形態を、同様に復号化のためのキーのフェッチにも採用することができる。
【0046】
適切なキーが取り出されると、または適切なキーが既にキーキャッシュに存在する場合、処理はステップ412に進み、ここでは暗号化メッセージデータが復号化される。ステップ412での復号化は、ステップ208での暗号化の逆である。本開示を検討した当業者であれば、ステップ208の暗号化アルゴリズムに対応する復号化アルゴリズムが採用されなければならないことを理解するであろう。幾つかの実施形態では、同じキーが暗号化および復号化に使用される。他の実施形態では、別個の(しかし対応する)キーが、暗号化および復号化のために使用される。暗号化処理と同様に、現在知られているまたは後
に開発される任意の暗号化アルゴリズムの本発明での使用が考えられる。最終的に、ステップ414で、復号化メッセージは、クライアントに返送され、ユーザに表示される。方法400は、この時点で終了してもよいし、ユーザに表示するために追加のメッセージの復号化を繰り返してもよい。
【0047】
次に、
図5Aおよび
図5Bを参照すると、本発明の実施形態による、指定された地政学的領域に記憶された暗号化メッセージにアクセスするための処理の要素の責任のフローを示すスイムレーン図が示されており、参照番号500により全体が参照される。処理500は、ステップ502でクライアントデバイスから始まり、ここでは、ユーザがメッセージにアクセスしようとする試行に応答して、クライアントは、メッセージデータ要求をグループベース通信システムサーバに送信する。メッセージにアクセスしようとするユーザの試行は、明示的(例えば、メッセージを選択するなど)であってもよいし、暗黙的(例えば、メッセージを含むチャネルにアクセスする、または会話の履歴を閲覧するためにスクロールするなど)であってもよい。幾つかの実施形態では、メッセージは、一度に1つずつ復号化可能である。他の実施形態では、メッセージは、バッチで復号化可能である。例えば、ユーザが特定のチャネルの会話履歴をスクロールする場合、クライアントは、クライアントのビューペインに表示されるすべてのメッセージに対して単一の要求を送信することができる。代替的に、クライアントは、ビューペインに表示されるすべてのメッセージを要求することもでき、また、ユーザがスクロールを続けている場合に表示すべき追加のメッセージを要求することもできる。さらに別の代替手段として、ユーザがそのセッションキーを使用して最初のメッセージを閲覧するときに、特定のキースコープを共有するすべてのメッセージ(例えば、同じセッションキーを使用するすべてのメッセージ)を要求することもできる。
【0048】
次に、制御は、サーバがメッセージ要求を受信するステップ504で、グループベース通信システムサーバに移行する。幾つかの実施形態では、会話履歴の複数のメッセージに対する要求は、単一の要求にまとめてグループ化されていてよい。幾つかのこのような実施形態では、このようにグループ化された要求は、異なるキーで暗号化されたメッセージ(例えば、異なる組織によって制御されたメッセージ、または異なる時間に投稿されたメッセージ)に対する要求、または暗号化されていないメッセージに対する要求を含むことができる。こうしたグループ化された要求は、展開可能かつ個別に処理可能であり、個別の応答またはグループ化された応答がクライアントデバイスに提供可能である。
【0049】
次に、ステップ506で、グループベース通信システムサーバは、ローカルのグループベース通信システムデータストレージからデータポインタを取得する。例えば、メッセージ要求は、メッセージを識別するのに充分なレコード識別子またはタイムスタンプおよびチャネルの指標を含んでもよい。前述したように、本実施例の目的につき取得すべきメッセージは、第1のグループベース通信システムサーバのそれとは異なる地政学的領域に記憶されているものとする。しかし、当業者は、本明細書に開示される技術を、暗号化メッセージデータが第1のグループベース通信システムサーバの地政学的領域に記憶されている場合にも適用しうることを理解するであろう。データポインタがデータストレージから取り出されると、ステップ508で、
図4に即して上述したようにこれが使用されて、指定された地政学的領域に対する要求を生成し、グループベース通信システムサーバまたはデータストレージに送信することができる。
【0050】
次に、制御は、ステップ510で要求を受信する第2の地政学的領域のグループベース通信システムサーバ/データストレージに渡される。要求に含まれる情報(例えば、方法200および処理300に即して上述したような、暗号化メッセージに対応するレコード識別子など)に基づいて、サーバは、ステップ512で、対応するデータストレージから暗号化メッセージデータを取得することができる(またはデータストレージがこれを直接
に取得することができる)。最終的に、ステップ514で、サーバまたはデータストレージは、要求に対応する暗号化メッセージデータを含む応答メッセージを生成して、第1の地政学的領域のグループベース通信システムサーバに送信し、制御がサーバに戻る。
【0051】
ステップ516で、第1の地域のグループベース通信システムサーバは、ユーザの組織によって指定されたデータレジデンシのための地政学的領域から暗号化メッセージデータを受信する。次に、ステップ518で、グループベース通信システムサーバは、暗号化メッセージに適切なキースコープを判別する。上述のように、適切なキースコープは、メッセージデータポインタ、メッセージデータ、会話履歴または関連情報を記憶した別のソースから判別されてもよい。判別されたキースコープに基づいて、グループベース通信システムサーバは、ステップ520で、判別されたキースコープに一致するキーの要求をキーキャッシュに送信する。
【0052】
キー要求を受け取ると、ステップ522で、制御はキーキャッシュに渡される。キーが既にキーキャッシュに記憶されている場合、処理500は、ステップ524~534をスキップして、直接にステップ536に進むことができる。記憶されていない場合、キーキャッシュは、ステップ524に進み、ここで、受信したキー要求を、指定された地域のキーサーバに転送する。当業者は、グループベース通信システムサーバから受信したキー要求を転送してもよいし、同等に、同じキーに対する新しい要求を生成して、指定された地域のキーサーバに送信してもよいことを理解するであろう。
【0053】
ステップ526で、ユーザの組織によって指定された地政学的領域のキーサーバが要求を受信し、制御はキーサーバに移行する。次に、ステップ528で、キーサーバは、要求されたキーを取得する。上述のように、キーは、それ自体が暗号化された形態で記憶されていてよい。代替的に、暗号化キーは、要求に応じて再生成されてもよい。最終的に、ステップ530で、要求されたキーを含む応答が生成され、キーキャッシュに返送される。
【0054】
ステップ532で、キーキャッシュは、要求されたキーを含む指定された地政学的領域のキーサーバからの応答を受信する。ステップ534で、キーキャッシュは、キーがただちに再度要求された場合に再フェッチする必要性を避けるために、キーを(予め指定された期間だけ、有効期限が切れるまで、または別のキーの余地を作るために排除されるまで)記憶する。最終的に、ステップ536で、キーが既にキャッシュに存在していたか、または指定されたキーサーバから取り出されたかにかかわらず、キーキャッシュは、要求されたキーを有する応答をグループベース通信システムサーバに送信し、制御は当該サーバに戻る。
【0055】
ステップ538で、第1のグループベース通信システムサーバは、キーデータを受信し、ステップ540で、キーデータを使用して、ユーザの行為に基づき、クライアントデバイスから受信した要求に含まれる1つもしくは複数の暗号化メッセージを復号化する。最終的に、ステップ542で、グループベース通信システムサーバは、復号化メッセージをクライアントデバイスに送信する。幾つかの実施形態では、復号化メッセージは、転送中、トランスポート層の暗号化(例えば、SSL、HTTPSまたはTLSなど)によって保護可能である。次いで、制御は、クライアントデバイスに戻され、クライアントデバイスは、ステップ544で復号化メッセージまたはメッセージを受信し、ステップ546でユーザにこれを表示する。この時点で、処理500は終了してもよいし、ユーザが追加のメッセージもしくはメッセージを要求してもよいし(これにより処理500が繰り返される)、またはユーザが応答を投稿して、これにより処理300が実行されてもよい。幾つかの実施形態では、異なるキースコープを使用するメッセージは、閲覧時にインターリーブ可能である。これは、例えば、ユーザが、共有チャネルまたは検索結果を閲覧する場合に行われうる。こうした実施形態では、復号化メッセージは、復号化が要求されたすべて
のメッセージに対する応答が受信されるまで保持されうる。他の実施形態では、復号化メッセージは、メッセージが順番に表示されるよう、ディスプレイにおいて前方に現れるすべてのメッセージに対する応答が受信されるまで保持される。さらに他の実施形態では、復号化メッセージは、復号化応答がまだ受信されていない暗号化メッセージのためのプレースホルダが表示された状態で表示される。
【0056】
図示した様々な構成要素、ならびに図示していない構成要素の多くの異なる構成が、以下の特許請求の範囲から逸脱することなく可能である。本発明の実施形態は、限定ではなく例示を意図して記載されている。代替的な実施形態は、本開示を読んだ後でかつ本開示を読んだことにより、本開示の読者に明らかになるであろう。上述の事柄を実施する代替的な手段は、以下の特許請求の範囲から逸脱することなく完成可能である。特定の特徴およびサブコンビネーションは有用であり、他の特徴およびサブコンビネーションを参照することなく採用でき、特許請求の範囲内として企図されている。本発明を、添付の図面に示した実施形態を参照して説明してきたが、特許請求の範囲に記載された本発明の範囲から逸脱することなく、本明細書において等価物が採用可能であること、および置換物が形成可能であることに留意されたい。
【0057】
このように本発明の様々な実施形態を説明してきたが、新規であり、かつ特許証によって保護されることが望まれるとして主張されるものには、添付の特許請求の範囲が含まれる。