(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2022-04-21
(54)【発明の名称】安全な電子データ転送のためのシステムと方法
(51)【国際特許分類】
H04L 9/08 20060101AFI20220414BHJP
G06F 21/60 20130101ALI20220414BHJP
G06F 21/64 20130101ALI20220414BHJP
【FI】
H04L9/08 C
H04L9/08 F
G06F21/60 360
G06F21/64
【審査請求】未請求
【予備審査請求】未請求
(21)【出願番号】P 2021543532
(86)(22)【出願日】2020-01-28
(85)【翻訳文提出日】2021-09-24
(86)【国際出願番号】 US2020015448
(87)【国際公開番号】W WO2020219136
(87)【国際公開日】2020-10-29
(32)【優先日】2019-01-28
(33)【優先権主張国・地域又は機関】US
(81)【指定国・地域】
(71)【出願人】
【識別番号】521330264
【氏名又は名称】コネクトアイキュー・インコーポレイテッド
【氏名又は名称原語表記】KnectIQ Inc.
(74)【代理人】
【識別番号】100145403
【氏名又は名称】山尾 憲人
(74)【代理人】
【識別番号】100135703
【氏名又は名称】岡部 英隆
(72)【発明者】
【氏名】ジャイン,シャイレンドラ
(72)【発明者】
【氏名】ランスタッド,アンドリュー
(72)【発明者】
【氏名】モリス,ケネス
(57)【要約】
安全な電子データ転送のためのシステムおよび方法は、データの暗号化および復号のために一時的な鍵を利用する。
【特許請求の範囲】
【請求項1】
送信クライアント装置と受信クライアント装置との間の安全な電子データ転送を可能とする方法であって、前記送信クライアント装置および前記受信クライアント装置はそれぞれコンピュータ装置を備え、前記方法は、
前記送信クライアント装置が鍵DNAおよびモニカを受信することと、
前記鍵DNAおよび前記モニカをブローカ装置に格納することと、
前記送信クライアント装置が前記鍵DNAに基づいて鍵を生成することと、
前記送信クライアント装置に格納されたデータを、前記鍵を用いて暗号化し、暗号化されたデータを生成することと、
前記暗号化されたデータおよび前記モニカを前記送信クライアント装置から前記受信クライアント装置に電子的に転送することと、
前記受信クライアント装置が、前記モニカを前記ブローカ装置に送ることと、
前記受信クライアント装置が、前記鍵DNAを前記ブローカ装置から受信することと、
前記受信クライアント装置が、前記鍵DNAに基づいて前記鍵を生成することと、
前記受信クライアント装置が、前記暗号化されたデータを、前記鍵を用いて復号することと、
を含む、方法。
【請求項2】
データを暗号化するステップの後、前記送信クライアント装置から前記鍵を除去すること、
をさらに含む、請求項1に記載の方法。
【請求項3】
前記暗号化されたデータを復号するステップの後、前記受信クライアント装置から前記鍵を除去すること、
をさらに含む、請求項2に記載の方法。
【請求項4】
前記送信装置が鍵DNAおよびモニカをブローカ装置から受信するステップの前に、前記方法は、
鍵DNAを求める要求を前記送信クライアント装置から前記ブローカ装置へと送ることと、
前記ブローカ装置を動作させ、前記鍵DNAを求める前記要求を承認または拒否することと、
をさらに含む、請求項1から請求項3のいずれか一項に記載の方法。
【請求項5】
前記ブローカ装置を動作させ、前記要求を承認または拒否するステップの後、前記方法は、
前記送信クライアント装置から前記受信クライアント装置へのデータの対象の転送の確認を求める要求を、前記ブローカ装置からインタセプタ装置へ送ることと、
前記インタセプタ装置を動作させ、確認を求める前記要求を承認または拒否することと、
をさらに含む、請求項4に記載の方法。
【請求項6】
前記暗号化されたデータおよび前記モニカを前記送信クライアント装置から第2受信クライアント装置へ電子的に転送することと、
前記第2受信クライアント装置が、前記モニカを前記ブローカ装置へ送ることと、
前記第2受信クライアント装置が、前記鍵DNAを前記ブローカ装置から受信することと、
前記第2受信クライアント装置が、前記鍵DNAに基づいて前記鍵を生成することと、
前記第2受信クライアント装置が、前記暗号化されたデータを、前記鍵を用いて復号することと、
をさらに含む、請求項1から請求項5のいずれか一項に記載の方法。
【請求項7】
所定の規則に基づいて前記ブローカ装置から前記鍵DNAおよび前記モニカを削除すること、
をさらに含む、請求項6に記載の方法。
【請求項8】
前記送信クライアント装置または前記受信クライアント装置から前記鍵DNAを求める要求を受信した前記ブローカ装置を示す情報を前記ブローカ装置に記録すること、
をさらに含む、請求項1から請求項7のいずれか一項に記載の方法。
【請求項9】
前記鍵DNAおよび前記モニカは前記ブローカ装置によって作成される、請求項1から請求項8のいずれか一項に記載の方法。
【請求項10】
前記モニカは、前記送信クライアント装置によって作成される、請求項1から請求項9のいずれか一項に記載の方法。
【請求項11】
前記鍵DNAの少なくとも一部は、前記送信クライアント装置によって作成される、請求項1から請求項10のいずれか一項に記載の方法。
【請求項12】
前記鍵DNAの一部は、前記送信装置によって作成され、前記暗号化されたデータおよび前記モニカを前記送信クライアント装置から前記受信クライアント装置に電子的に転送するステップは、前記鍵DNAの前記一部を前記送信クライアント装置から前記受信クライアント装置に電子的に転送すること、をさらに含む、請求項1から請求項11のいずれか一項に記載の方法。
【請求項13】
前記電子データ転送は、前記送信クライアント装置から前記受信クライアント装置へのストリーミング通信の一部であり、前記鍵DNAは、第1鍵DNAであり、前記鍵は、第1鍵であり、データは、前記ストリーミング通信のデータの第1パケットであり、前記暗号化されたデータは前記ストリーミング通信の暗号化されたデータの第1パケットであり、前記暗号化されたデータの第1パケットおよび前記モニカを前記送信クライアント装置から前記受信クライアント装置に電子的に転送するステップの後、前記方法は、
前記送信クライアント装置が第2鍵DNAを受信することであって、前記第2鍵DNAは前記第1鍵DNAと異なる、第2鍵DNAを受信することと、
前記送信クライアント装置が、前記第2鍵DNAに基づいて第2鍵を生成することと、
前記ストリーミング通信のデータの第2パケットを、前記第2鍵を用いて暗号化し、暗号化されたデータの第2パケットを生成することと、
前記暗号化されたデータの第2パケットを前記送信クライアント装置から前記受信クライアント装置に電子的に転送することと、
前記受信クライアント装置が、前記第2鍵DNAを前記ブローカ装置から受信することと、
前記受信クライアント装置が、前記第2鍵DNAに基づいて前記第2鍵を生成することと、
前記受信クライアント装置が、前記暗号化されたデータの第2パケットを、前記第2鍵を用いて復号することと、
を含む、請求項1から請求項12のいずれか一項に記載の方法。
【請求項14】
前記ストリーミング通信の進行中の前記第1鍵DNAから前記第2鍵DNAへの変更のタイミングは、前記送信クライアント装置に鍵交代規則として格納される、請求項13に記載の方法。
【請求項15】
前記ブローカ装置と前記送信クライアント装置および前記受信クライアント装置のそれぞれとの間の通信は、安全である、請求項1から請求項14のいずれか一項に記載の方法。
【請求項16】
前記ブローカ装置を動作させ、非対称暗号化アルゴリズムを用いて第1秘密/公開鍵対および第2秘密/公開鍵対を生成することと、
前記第1公開鍵を前記送信クライアント装置に送ることと、
前記第2公開鍵を前記受信クライアント装置に送ることと、
前記送信クライアント装置を動作させ、対称鍵を生成することと、
前記送信クライアント装置を動作させ、前記対称鍵を、前記第1公開鍵を用いて暗号化することと、
前記送信クライアント装置を動作させ、前記ブローカ装置への通信を、前記対称鍵を用いて暗号化することと、
前記暗号化された対称鍵および前記暗号化された通信を前記送信クライアント装置から前記ブローカ装置に送ることと、
前記ブローカ装置を動作させ、前記暗号化された対称鍵を、前記公開鍵を用いて復号することと、
前記ブローカ装置を動作させ、前記暗号化された通信を、前記復号された対称鍵を用いて復号することと、
をさらに含む、請求項15に記載の方法。
【請求項17】
前記送信クライアント装置および前記受信クライアント装置に少なくとも第1暗号化アルゴリズムおよび第2暗号化アルゴリズム並びに対応する第1指示記号および第2指示記号を定めることと、
前記ブローカ装置に前記第1指示記号および第2指示記号を定めることと、
をさらに含み、
前記送信クライアント装置が鍵DNAを受信するステップは、前記第1指示記号および前記第2指示記号の一つを受信することをさらに含み、
前記送信クライアント装置が鍵を生成するステップは、前記第1指示記号および前記第2指示記号の前記受信された一つに関連している前記第1暗号化アルゴリズムまたは前記第2暗号化アルゴリズムにさらに基づき、
前記受信クライアント装置が前記鍵DNAを受信するステップは、前記ブローカ装置から前記第1指示記号および前記第2指示記号の前記一つを受信することをさらに含み、
前記受信クライアント装置が前記鍵を生成するステップは、前記第1指示記号および前記第2指示記号の前記受信された一つに関連している前記第1暗号化アルゴリズムまたは前記第2暗号化アルゴリズムにさらに基づく、
請求項1から請求項16のいずれか一項に記載の方法。
【請求項18】
前記ブローカ装置は、前記送信クライアント装置および前記受信クライアント装置を含む信頼環境での動作を管理する第1ブローカ装置であり、前記信頼環境は、前記信頼環境での動作を管理する第2ブローカ装置をさらに含み、前記方法は、
前記第1ブローカ装置から前記第2ブローカ装置へ前記送信クライアント装置の管理を引き継ぐこと、
をさらに含む、請求項1から請求項17のいずれか一項に記載の方法。
【請求項19】
前記送信クライアント装置および前記ブローカ装置は、前記送信クライアント装置からの通信が前記ブローカ装置によって管理される信頼環境で動作し、前記方法は、
リーシュ装置を前記送信クライアント装置に電子的に関連付けることと、
前記送信クライアント装置が、前記リーシュ装置からトークンを受信することと、
前記リーシュ装置を動作させ、前記トークンの暗号化ハッシュを前記ブローカ装置に送信することと、
前記ブローカ装置が通信を受信することであって、前記通信は、前記送信クライアント装置から送信されかつトークンを含む可能性がある、通信を受信することと、
前記受信された通信に応じて、前記ブローカ装置を動作させ、前記受信されたトークンから暗号化ハッシュを算出することと、
前記ブローカ装置を動作させ、前記算出された暗号化ハッシュを前記リーシュ装置から受信された前記暗号化ハッシュと比較することと、
前記ブローカ装置が、前記受信された通信が前記送信クライアント装置から送られたかどうかを前記比較に基づいて決定することと、
をさらに含む、請求項1から請求項18のいずれか一項に記載の方法。
【請求項20】
前記送信クライアント装置は、第1ノードに設定され、前記受信クライアント装置は、第2ノードに設定され、前記第1ノードおよび前記第2ノードは、前記ブローカ装置で仮想的に定められ、さらに前記第1ノードおよび前記第2ノードは、前記ブローカ装置で定められたプールによって関連付けられる、請求項1から請求項19のいずれか一項に記載の方法。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、安全な電子データ転送を対象とする。より具体的には、一時的な鍵を使用してデータを暗号化および復号するためのシステムおよび方法に関する。
【背景技術】
【0002】
サイバーセキュリティ、より具体的には個人情報およびコンピュータ装置情報の保護は、個人および国の懸念事項になっている。データおよびハードウェアの侵害は増え続けている。個人情報の窃盗、ランサムウェア、医療機器への侵入、サイバーカージャック、エネルギグリッドへのサイバー攻撃、金融サービスおよび銀行へのハッキング、並びに医療と健康に関する情報の窃盗は、個人、民間企業の従業員および政府の間に重大な懸念をもたらす。
【0003】
コード化されたデータの安全な転送を提供することは、公開鍵と秘密鍵の使用、信頼できる証明書技術、および/またはトークン化を含む。これらの技術の使用は、データのセキュリティを強化するために使用される場合には効果的であるが、基本的なデータの柔軟性および最適ではない使用がトレードオフになる。このバランスの問題の解決策は、データ使用の柔軟性の向上を優先することに傾き、個人情報やコンピュータ装置の識別情報の保護の脆弱化につながることがよくある。
【0004】
暗号化は、機密情報の電子転送でよく使用される。これにより、送信される情報、メッセージ、データパッケージなどは、許可された関係者のみがアクセスできるように暗号化またはコード化される。暗号化方式は通常、疑似ランダム鍵を使用して対象の情報を暗号化/復号する。暗号化自体は、許可されていない受信者がメッセージまたは暗号化された情報を傍受するのを防止しない。ただし、許可された閲覧者のみが、暗号化された情報を復号するために必要な鍵にアクセスでき、鍵がないと、権限のないユーザは情報を簡単には復号できない。
【0005】
電子データ転送の安全な暗号化では、対称方式(秘密鍵/秘密鍵)または非対称方式(公開鍵/秘密鍵)を使用できる。これらの(および他の)鍵ベースの暗号化アーキテクチャでは、対象の鍵はランダムに生成されるが、少なくとも秘密鍵は比較的長期間保存されることがよくある。保存された鍵は、攻撃(サイバー攻撃など)の対象になる。許可されていないユーザが秘密鍵にアクセスすると、傍受された暗号化された情報は安全ではなくなる。暗号化鍵への攻撃を防ぐために、暗号化鍵管理システムが開発されてきた。例えば、特定の組織によって維持されている秘密鍵の電子リポジトリ(または鍵管理サーバ)を暗号化でき、電子データベースにアクセスするために必要な鍵またはその他の情報を別の場所に保存できる。この追加されたセキュリティ層も攻撃の対象となり、実装が複雑になり、維持にコストがかかり得る。さらに、または代わりに、組織は、全ての保存されている鍵を定期的に非アクティブ化(または無効化)して、新しい鍵に置き換えることを要求する場合がある。このアプローチも同様に費用がかかり、非効率的である。
【発明の概要】
【0006】
本開示の発明者は、上記の問題の1つまたは複数に対処する必要性を認識した。
【0007】
本開示のいくつかの態様は、安全な電子データ転送のためのシステムに関する。本開示のいくつかの態様は、安全な電子データ転送のための方法に関する。
【図面の簡単な説明】
【0008】
【
図1】
図1は、本開示の原理によるシステムを示すブロック図である。
【
図2A】
図2Aは、安全な電子データ転送のための方法を含む、本開示のいくつかの方法により実行されるステップのフローチャートである。
【
図2B】
図2Bは、安全な電子データ転送のための方法を含む、本開示のいくつかの方法により実行されるステップのフローチャートである。
【
図2C】
図2Cは、安全な電子データ転送のための方法を含む、本開示のいくつかの方法により実行されるステップのフローチャートである。
【
図3】
図3は、動作の選択的な安全なストリーミングモードを含む、本開示のいくつかの方法により実行されるステップのタイミング図である。
【
図4】
図4は、複数の信頼環境を含む、本開示の原理による別のシステムを示すブロック図である。
【
図5】
図5は、データを暗号化する要求を検討するためのインタセプタ装置の選択的な動作を含む、本開示のいくつかの方法により実行されるステップのフローチャートである。
【
図6】
図6は、データを復号する要求を検討するためのインタセプタ装置の選択的な動作を含む、本開示のいくつかの方法により実行されるステップのフローチャートである。
【
図7】
図7は、
図1のシステム内のクライアント装置を設定することを含む、本開示のいくつかの方法により実行されるステップのフローチャートである。
【
図8】
図8は、
図1のシステムのブローカ装置およびクライアント装置によって使用される鍵の選択的な交代を含む、本開示のいくつかの方法により実行されるステップのフローチャートである。
【
図9】
図9は、セッション管理を実行する選択的な方法を含む、本開示のいくつかの方法により実行されるステップのフローチャートである。
【
図10】
図10は、選択的なリーシュ装置を含む、本開示の原理による別のシステムを示すブロック図である。
【
図11】
図11は、選択的な論理ノード配置を含む、本開示の原理による別のシステムを示すブロック図である。
【発明を実施するための形態】
【0009】
本開示のいくつかの態様は、データの安全な電子転送のためのシステムおよび方法を対象とする。本開示の原理による、および本開示の方法を実行できるシステム10の一例が
図1に示されている。システム10は、ブローカ装置20と、第1クライアント装置22および第2クライアント装置24などの2つ以上のクライアント装置と、選択的なインタセプタ装置26とを含む。ブローカ装置20は、少なくともプロセッサおよびメモリを有するコンピュータまたはコンピュータ装置であり得るか、またはそれに類似し得る。ブローカ装置20は、いくつかの非限定的な実施形態では、当技術分野で知られているコンピュータサーバ(例えば、一般的なサーバクラスのオペレーションシステム(例えば、リナックス(登録商標)(Linux(登録商標)))を実行する、一つまたは複数の専用の市販の(例えば、マルチコアプロセッサ、RAM、ネットワークインタフェースアダプタ、ハードドライブを有する)ハードウェアサーバ)である。他の実施形態では、ブローカ装置20は、複数のそのようなサーバ、ソリッドステートドライブ、および/または他の適用可能な高性能ハードウェアを含む拡張可能なインフラストラクチャ全体に実装できる。クライアント装置22、24および(提供される場合)インタセプタ装置26は、当技術分野で知られているデスクトップコンピュータ、ラップトップコンピュータ、スマートフォン、チップセット、システムオンチップ、ASIC等の、少なくともプロセッサおよびメモリを有するコンピュータまたはコンピュータ装置であり得るか、またはそれらに類似し得る。装置20、22、24、26は、当技術分野で知られているように、無線通信システム、有線通信システムなどのように、様々な方法で互いに電子的に通信するように構成される。
【0010】
参考として、本開示のシステムおよび方法は、鍵を用いてデータが暗号化および復号される暗号化アーキテクチャを使用して、例えば、信頼環境内での安全なデータ転送を容易にする。本開示の安全な通信のための鍵の作成および配布の調整は、いくつかの実施形態では、「デバイスアクセスセキュリティブローカ」または「DASB」と呼ばれ得る。以下でより詳細に説明するように、適切なプログラミング(すなわち、コンピュータプログラム、ソフトウェア、ハードウェア、ファームウェアなど)は、ブローカ装置20、クライアント装置22、24、および(提供される場合)インタセプタ26のそれぞれに組み込まれまたは提供され、本開示の方法を実行するために調整された方法で動作する。
【0011】
例えば、ソフトウェアまたはモジュール30(「DASBブローカソフトウェア」)は、ブローカ装置20に組み込まれ、またはブローカ装置20によって操作される。DASBブローカソフトウェア30は、以下に説明するように、事前鍵データ(または「鍵DNA」)の生成を実装するプログラミングを含む。鍵DNAは、暗号化鍵(例えば対称鍵)の後続の作成を可能にする(または「シード」として機能できる)完全なまたは部分的なデータに関連する。DASBブローカソフトウェア30は、以下に説明するように、完全なまたは部分的なモニカ(Moniker)の生成を実装するプログラミングをさらに含むことができる。モニカは、対応する鍵DNAの短縮識別子(例えば文字列)に関連する。いくつかの非限定的な実施形態では、DASBブローカソフトウェア30は、後述するように、システム10内の2つの装置間、例えば、第1クライアント装置22および第2クライアント装置24の間で、要求されたデータ転送を許可または拒否するルールエンジンまたはモジュール32を動作させる。本開示を通じて使用されるように、DASBブローカソフトウェアが読み込まれた(または当該ソフトウェアを操作する)ブローカ装置は、「ブローカ」と呼ばれる。したがって、例えば、
図1のブローカ装置20は、システム10のブローカとも呼ばれ得る。
【0012】
ソフトウェアまたはモジュール40(「DASBクライアントソフトウェア」)は、第1クライアント装置22に組み込まれる。DASBクライアントソフトウェア40は、DASBブローカソフトウェア30と相互作用して、受信した鍵DNAに基づいて暗号化鍵(例えば、対称鍵)を生成し、第1クライアント装置22によって実行される1つまたは複数のアプリケーションと相互作用するようにプログラムされる。例えば、そのようなアプリケーション42の1つは、
図1の第1クライアント装置22について一般的に識別されている。アプリケーション42は、一般に、第1クライアント装置22に格納されていると反映されるが、他の実施形態では、対象のアプリケーションは、第1クライアント装置22に格納されず、代わりに、例えば、第1クライアント装置22と通信する同じローカルネットワーク(LAN)内の別のコンピュータ装置で動作する。アプリケーション42は、データベースプログラム、デジタル文書プログラム(例えば、PDF)、ワードプロセッサ、スプレッドシート、メッセージプログラム(例えば、電子メール)、CAD等のエンドユーザのために設計または作成された任意のプログラム、またはグループまたは複数のプログラムであり得る。DASBクライアントソフトウェア40とアプリケーション42との間の相互作用は、以下でより詳細に説明される。より一般的には、アプリケーション42は、第1クライアント装置22に組み込まれたときDASBクライアントソフトウェア40と相互作用するように記述またはコード化され得、ソフトウェアパッチまたはプラグインは、アプリケーション42とDASBクライアントソフトウェア40との間の相互作用を容易にするアプリケーション42にコード化されまたは組み込まれ得、または他の既知のコンピュータプログラミング技術が使用され得る。
【0013】
DASBクライアントソフトウェア50はまた、第2クライアント装置24に組み込まれ得る。第2クライアント装置24上のDASBクライアントソフトウェア50は、いくつかの実施形態では、第1クライアント装置22に組み込まれたDASBクライアントソフトウェア40と同一であり得る。これを念頭に置いて、DASBクライアントソフトウェア50は、第2クライアント装置24に格納され、当該装置24によって実行される1つまたは複数のアプリケーションと相互作用し、そのうちの1つは、
図1の52で一般的に識別される。第2クライアント装置24に関連付けられたアプリケーション52は、第1クライアント装置22のアプリケーション42に関する上記された任意の形態を有することができる。
図1の破線で示されるように、第1クライアント装置22に関連付けられたアプリケーション42および第2クライアント装置24に関連付けられたアプリケーション52は、コンピュータ制御されたネットワークの一部など公知の技術および手法を用いて互いに電子的に通信できる。
【0014】
インタセプタ26が提供される選択的な実施形態では、制御ソフトウェア60(「インタセプタソフトウェア」)がインタセプタ26に組み込まれ得る。制御ソフトウェア60は、以下により詳細に説明されるように、DASBブローカソフトウェア30と相互作用するようにプログラムされ、DASBブローカソフトウェア30からの承認要求の受信およびDASBブローカソフトウェア30へのそのような要求に対する決定の伝達を含む。これに関して、インタセプタ26のフォーマットと連携する制御ソフトウェア60は、承認要求情報を人間のユーザに選択的に提供(例えば、視覚的に表示)し、および/または特定の承認要求への人間のユーザの決定の伝達を容易にできる。他の実施形態では、システム10は、いくつかの電子送信要求がインタセプタ26を通過するように要求されるが、他の送信要求はそうではないように設定され得る(例えば、第1クライアント装置22のアプリケーションから第2クライアント装置24のアプリケーションにデータを転送する要求は、承認のためにインタセプタ26を通過しなければならないが、第2クライアント装置24のアプリケーションから第1クライアント装置22のアプリケーションにデータを転送する要求は、承認のためにインタセプタ26を通過する必要はない)。他の実施形態では、インタセプタ26(したがって、制御ソフトウェア60)は省略され得る。
【0015】
図2Aから
図2Cおよび
図3から
図11のフローチャートおよびブロック図は、本開示の様々な構成要素の機能および動作とともに、本開示のいくつかの方法および構成を示している。これに関して、フローチャートのブロックのいくつかは、特定の論理機能を実装または実行するための1つまたは複数の実行可能命令を含む、本開示のプログラムのモジュールセグメントまたはコードの一部を表すことができる。他の実施形態では、様々なブロックに記載されている機能は、示されている順序とは異なる順序で生じてもよい。
【0016】
図1と
図2Aから
図2Cを参照すると、本開示のいくつかの方法は、システム10内の送信クライアント装置のアプリケーションから受信クライアント装置のアプリケーションへの安全な電子データ転送を提供する。
【0017】
第1クライアント装置22のDASBクライアントソフトウェア40は、ステップ100でDASBブローカソフトウェア30に設定される(例えば、DASBクライアントソフトウェア40が第1クライアント装置22に読み込まれまたは格納される場合、第1クライアント装置22は、ステップ100で、DASBブローカソフトウェア30で、または当該ソフトウェア30によって、設定されると考えられ得る。第1クライアント装置22が別個のポータルを通じてDASBクライアントソフトウェア40を動作する場合、ステップ100の設定は、DASBクライアントソフトウェア40単独を設定すると考えられ得る)。第2クライアント装置24のDASB第2クライアントソフトウェア50は、同様に、ステップ102でDASBブローカソフトウェア30で設定される。設定は、さまざまなフォーマットを想定でき、後述されるように、DASBブローカソフトウェア30、第1クライアント装置22のDASBクライアントソフトウェア40、および第2クライアント装置24のDASBクライアントソフトウェア50の1つまたは複数でさまざまな情報の生成を含み得る。いくつかの実施形態では、ステップ100での設定は、第1クライアント装置22のDASBクライアントソフトウェア40のための固有のクライアントID(または「第1クライアントID」)を定めることと、DASBブローカソフトウェア30を備えるブローカ装置20および第1クライアント装置22のDASBクライアントソフトウェア40に第1クライアントIDを格納することとを含む。第1クライアントIDは、第1クライアント装置22によって操作されるように、DASB第1クライアントソフトウェア40に固有である。同様に、ステップ102での設定は、第2クライアント装置24のDASBクライアントソフトウェア50のための固有のクライアントID(または「第2クライアントID」)を定めることと、DASBブローカソフトウェア30を備えるブローカ装置20および第2クライアント装置24のDASBクライアントソフトウェア50に第2クライアントIDを格納することとを含む。第2クライアントIDは、第2クライアント装置24によって操作されるように、DASB第2クライアントソフトウェア50に固有である。
【0018】
本開示全体で使用されるように、割り当てられたDASBクライアントソフトウェア(またはクライアント装置上に実装できる後述される機能の他のセット)を読み込んだまたは操作する、DASBブローカソフトウェア50(またはより簡単にブローカ)によって設定された、任意の種類の「クライアント装置」は、「DASBクライアント」と呼ばれる。本開示の信頼環境では、DASBクライアントはブローカとおよび相互に通信する。この用語をさらに確認するために、第1クライアント装置22は、ステップ100の後、DASBクライアントとみなされるか、または呼ばれ得、ステップ102の後、第2クライアント装置24も同様にされ得る。したがって、例えば、
図1の信頼環境では、第1および第2クライアント装置22、24は、第1および第2DASBクライアント22、24とも呼ばれ得る。
【0019】
図2Aから
図2Cに関係する残りの方法は、送信者から受信者への対象のデータ転送を参照することで、より簡単に理解され得る。説明を容易にするために、1つの非限定的な例は、第1DASBクライアント22のアプリケーション42から第2DASBクライアント24のアプリケーション52への対象のデータ転送の状況にある。これに対応するが、限定的ではない一例として、以下の説明では、それぞれ、第1DASBクライアント22は、DASBクライアントソフトウェア40とともに、「送信DASBクライアント」として機能し、言い換え可能に呼ばれ、第1DASBクライアント22に関連付けられたアプリケーション42は、「送信DASBクライアントソフトウェア」および「送信アプリケーション」と言い換え可能に呼ばれる。それぞれ、第2DASB装置24は、DASBクライアントソフトウェア50とともに、「受信DASBクライアント」として機能し、言い換え可能に呼ばれ、アプリケーション52は、「受信DASBクライアントソフトウェア」および「受信アプリケーション」と言い換え可能に呼ばれる。
【0020】
いくつかの選択的な実施形態では、ステップ104で、プールがDASBブローカソフトウェア30上に作成され、これは一般に、送信DASBクライアント22が割り当てられたプール識別子の下で受信DASBクライアント24に情報を送信することを可能にする。プール識別子は、人間が読み取り可能な識別子を備えた、システム10の2つの設定されたクライアント装置間の仮想関係として機能する。この1つの例では、定められたプールは2つのクライアント装置(つまり、送信DASBクライアント22と受信DASBクライアント24)のみを含むが、他の状況では、特定のプールは3つまたはそれ以上のDASBクライアント(たとえば、第1DASBクライアントを許可するプール)を含み得る(例えば、第1DASBクライアント22がDASBクライアントのグループ(例えば、技術グループ、販売グループなどの組織の特定のサブセットに関連付けられたDASBクライアントのグループ)に情報を送信することを可能にするプール)。プールは、様々な方法で作成または生成され得、いくつかの実施形態では、DASBブローカソフトウェア30を介してプールおよび対応するプール識別子を手動で入力または登録するブローカ20の許可された管理者を含むことができる。規則(ルール)は、例えば、暗号化および/または復号(または他のトランザクション)を求める要求の承認がインタセプタ26を介して遮断されなければならないかどうか、特定の受信装置アプリケーションが受信データを復号するために必要な時間の長さなどが、特定のプールに選択的に含まれ得る。いくつかの任意選択の実施形態では、プールおよびプール識別子(および特定のプールに関連する任意の規則)は、ルールエンジン32に保存される。
【0021】
そのように作成されたプールに割り当てられたプール識別子は、例えば、送信DASBクライアント22に関連する1つまたは複数のアプリケーション(例えば、送信DASBクライアント22に関連付けられた送信アプリケーション42)に、またはそれによって、例えば、対象のアプリケーションの作成者、特定のプールの作成者(たとえば、許可された管理者)などによって、格納される。特定のクライアントデバイスに関連付けられた(またはそれによって使用されている)異なるアプリケーションが、同じプールのセットを使用してもよいし、使用しなくてもよい。プールは完全に分離されているか、同じであるか、またはいくらか重複していてもよい。さらなる他の実施形態では、特定のクライアント装置に関連付けられた(またはそれによって使用されている)アプリケーションは、プール識別子のリストを提供する「ディレクトリサービス」にアクセスできる。
【0022】
図1は、千鳥状の破線の矢印「プールAB」によって、例示的な例のプールを概略的に示している(千鳥状の破線の矢印プールABは、明確なデータ経路を反映することを意図していないことが理解される)。参考として、ステップ104で作成されたプールは、代わりに、(第1DASBクライアント22のみが第2DASBクライアント24への送信を許可されるのとは対照的に)第1DASBクライアント22および第2DASBクライアント24が互いに情報を送信することを概して許可されるように指定できる。これらの状況下では、割り当てられたプール識別子は、第2DASBクライアント24に関連付けられた1つまたは複数の対象のアプリケーション(例えば、アプリケーション52)に、またはアプリケーションによって格納されるであろう。ブローカ20に格納される割り当てられたプール識別子に関連付けられたプーリング規則は、もしあれば、時間の経過とともに(例えば、許可された管理者によって)変更または修正され得る。さらなる他の実施形態では、本開示の方法は、データの暗号化、転送、および復号の一部として定められたプールへの実装またはアクセスを含まず、ステップ104(およびプールに関して後述される他のステップ)は省略され得る。
【0023】
ステップ106において、送信アプリケーション42は、受信アプリケーション52に送信するために送信アプリケーション42のデータ(「データX」)を暗号化するように送信DASBクライアントソフトウェア40に要求するように動作される(そうでなければ、受信クライアント装置24上で動作する)。上述されているように、送信アプリケーション42が記述されるか、またはソフトウェアプラグインまたはパッチがインストールされ、それによって、送信アプリケーション42は、(例えば、暗号化のユーザ指示の要求または同様の安全な送信要求に応答して)暗号化動作のために送信DASBクライアントソフトウェア40と自動的に相互作用する。
【0024】
ステップ108において、およびステップ106での要求に応答して、送信DASBクライアント22は、ブローカ20に鍵DNAを求める要求(「要求X」)を通信する。ステップ108での要求の一部として、送信DASBクライアント22は、ブローカ20に第1クライアントIDおよび要求プール識別子を提供する。要求プール識別子は、上記のプール識別子に対応する形式であり、転送されるデータの意図された受信先を示す。したがって、この一例では、要求Xは、送信DASBクライアント22のアプリケーションから受信DASBクライアント24のアプリケーションに情報を転送する意図を示す要求プール識別子を含むであろう。参考として、送信DASBクライアント22からブローカ20への鍵DNAの次の要求には、同じ第1クライアントIDが含まれる。しかし、これらの次の要求で提供される要求プール識別子は、対象の受信先の機能と異なってもよい。
【0025】
いくつかの選択的な実施形態では、ステップ110において、ブローカ20は、格納されたプールを確認して、要求Xを許可または拒否する。例えば、DASBブローカソフトウェア30は、要求プール識別子(要求Xで提供される)を格納されたプール識別子と比較するように動作できる。一致するものが見つからない場合、要求Xは拒否される(つまり、ブローカ20が、送信DASBクライアント22が受信DASBクライアント24にデータを転送することを許可することは関係ない)。さらに、ブローカ20は、一致したプール識別子に関連付けられた規則があれば規則を確認するように動作して、例えば、要求Xが規則を満たしているかどうか、他の動作が必要かどうかなどを決定できる(例えば、要求Xが午後10時に受信され、一致したプール識別子に関連付けられた規則が午前8時から午後5時までの暗号化を許可する場合、規則は満たされず、要求Xは拒否される)。さらなる他の選択的な実施形態では、本開示のシステムおよび方法は、(例えば、特定のクライアント装置からクライアント装置への情報の転送のためにプールが作成または利用されない状況下で)ステップ110を省略できる。
【0026】
ステップ110において、ブローカ20が要求Xを拒否した場合(「NO」)、ブローカ20は、送信DASBクライアント22に鍵DNAを提供せず、データXは暗号化され得ない(ステップ112)。ステップ110において、ブローカ20が要求Xを受け入れる場合(「YES」)、DASBブローカソフトウェア30は、ステップ114において、鍵DNA(「鍵DNA X」)および一致するモニカ(「モニカX」)を生成する。下記でより詳細に記載されるいくつかの選択的な実施形態では、1つまたは複数のさらなるステップが、ステップ110とステップ114との間に発生してもよい(例えば、インタセプタ26は、要求Xを承認または拒否するように指示され得る)。ステップ116において、鍵DNA XおよびモニカXは、鍵の値の対としてブローカ20に格納される。鍵DNA XおよびモニカXは、ステップ118で送信DASBクライアント22に送られる。
【0027】
ステップ120において、送信DASBクライアントソフトウェア40は、供給された鍵DNA Xに少なくとも部分的に基づいて対称鍵(「鍵X」)を生成する。送信DASBクライアントソフトウェア40は、インストールされた鍵ソフトウェアプログラミング、例えば高度暗号化標準(Advanced Encryption Standard:AES)などの既知の暗号化アルゴリズム、を含むかまたは利用する。生成された鍵Xは鍵DNA X(および選択的には他の場所で生成されたビット)に基づいているが、鍵Xは鍵DNA Xと同一ではない。
【0028】
ステップ122において、送信DASBクライアントソフトウェア40は、例えば既知の暗号化技術を介して、鍵Xを使用してデータXを暗号化し、暗号化されたデータXをもたらす。暗号化されたデータXおよびモニカXは、ステップ123において送信DASBクライアントソフトウェア40によって送信アプリケーション42に通信される。暗号化されたデータXが完了すると、送信DASBクライアントソフトウェア40は、ステップ124において鍵Xを除去するか、または永久に削除するように動作する。言い換えれば、ステップ124の後は、鍵Xは保存されず、送信DASBクライアント22上に存在しない。
【0029】
送信DASBクライアント22は、ステップ126において、暗号化されたデータXおよびモニカXを受信DASBクライアント24に電子的に送信する。例えば、送信アプリケーション42は、暗号化されたデータXおよびモニカXを受信アプリケーション52に電子的に送信するように動作する。参考として、送信アプリケーション42は、対応する送信DASBクライアントソフトウェア40を使用して暗号化処理を完了した後、どのように暗号化されたデータXを配信するか選択できる。SMTP(電子メール)、FTP、ドロップボックス(DropBox)またはその他のコンテンツ共有サービスを介して、携帯用媒体などに保存される。より一般的には、クライアントアプリケーションは、対応するDASBクライアントソフトウェアを暗号化されるデータとともに呼び出すと、割り当てられたモニカと暗号化されたデータペイロードが返される(例えば、上記のステップ123)。本開示の基礎構造を使用するように記述されたアプリケーションは、暗号化されたデータを別のクライアント装置/アプリケーションに電子的に送信するときに、割り当てられたモニカおよび暗号化されたペイロードを提供する必要があることを「知る」だろう。いくつかの実施形態では、モニカを暗号化されたデータペイロードから区別することは、クライアント装置が公開するAPIの一部である。ペイロードのハッシュを計算することによってモニカを導出できる場合、ペイロードの前にモニカを付けるなど、他のバリエーションも受け入れられる。
【0030】
ステップ128において、受信アプリケーション52は、暗号化されたデータXを暗号化されたものとして識別し、受信DASBクライアントソフトウェア50に復号を要求するように動作される(または自動的に動作する)。この例に関して、送信アプリケーション42および受信アプリケーション52は同じタイプであると想定される(例えば、両方ともワードプロセッサである)。参考として、受信アプリケーション52の自動呼び出しは、オペレーティングシステム(OS)レベルの機能にできる。これは、さまざまな環境でさまざまに機能する便利な機能であり、特定のアプリケーションがコンテンツをどのようにパッケージ化したかによって決まり得る。ほとんどのOSでは、アプリケーションの自動起動は、受信したデータのファイル拡張子によって起動される。非限定的な実装の1つでは、受信したモニカ(モニカX)、暗号化されたペイロード(暗号化されたデータX)、および場合によっては他のメタデータは、拡張子「.docsecret」(または同様の拡張子)を付けて受信クライアントアプリケーションに配信するために、ファイルにまとめられる。この拡張機能を探すようにOSに登録されたアプリケーションは、モニカと暗号化されたペイロードのファイルを解析する方法を認識し、ステップ128での復号要求の一部としてこれらのビットをDASBクライアントソフトウェア50に供給するようにプログラムされる。より一般的には、受信アプリケーションは、様々な方法で対応するDASBクライアントソフトウェアと相互作用できる。DASBクライアントソフトウェアは、復号操作を実行するために自動的にまたは意図的に呼び出すことができ、当業者に明らかであるような、多くの様々な方法のいずれかで暗号化されたデータの存在を知らされ得る。
【0031】
ステップ130において、およびステップ128での要求に応答して、受信DASBクライアント24は、鍵DNAを求める要求をブローカ20に通信する。ステップ130での要求の一部として、受信DASBクライアント24は、ブローカ20に(要求が鍵DNA Xに有効に固有であるように)モニカXおよび割り当てられたクライアントID(すなわち、説明された例では、第2クライアントID)を提供する。
【0032】
後述されるいくつかの選択的な実施形態では、ブローカ20が動作して受信DASBクライアント24に鍵DNA Xを提供する前に、承認動作が実行される。例えば、インタセプタ26が提供される実施形態では、鍵DNA Xを受信DASBクライアント24に転送する要求は、承認のために最初にインタセプタ26を通過しなければならないことが要求され得る。この要件は、システム10の普遍的な規則であり得、または第1DASBクライアント22から第2DASBクライアント24への転送に固有の規則であり得る。ブローカ20は、復号するための鍵DNAを求める要求で提供されたモニカ(すなわち、例ではモニカX)に基づいて関連情報(例えば、インタセプタ26の使用、プール識別子またはプーリング規則、システム10におけるクライアント装置構成員など)を決定または検索できる。
【0033】
ステップ132において、ブローカ20は、供給されたモニカに対応する鍵DNAを検索する(すなわち、DASBブローカソフトウェア30は、モニカXの格納された鍵の値の対を確認して、鍵DNA Xを見つける)。ブローカ20は、ステップ134において、検索された鍵DNA Xを受信DASBクライアント24に配信し、または配信するよう指示する。ステップ136において、DASBブローカソフトウェア30は、(例えば、後述されているような別のイベントの発生に応じて、すぐに)鍵DNA XおよびモニカXをブローカ20から削除するように動作する。
【0034】
ステップ138において、受信DASBクライアントソフトウェア50は、少なくとも部分的に、供給された鍵DNA Xに基づいて対称鍵を生成する。受信DASBクライアント24は、送信DASBクライアント22と同じインストールされた鍵ソフトウェアプログラミングを含むかまたは利用するため、鍵DNA Xを使用して受信DASBクライアントソフトウェア50によって生成される対称鍵は、ステップ120で送信DASBクライアントソフトウェア40によって生成される対称鍵と同一である(すなわち、受信DASBクライアントソフトウェア50は同じ鍵Xを生成する)。受信DASBクライアントソフトウェア50は、ステップ140において、暗号化されたデータXを復号して、データXを得る(すなわち、ステップ140の後は、データXは、受信アプリケーション52で有用になる)。最後に、ステップ142において、受信DASBクライアントソフトウェア50は、鍵Xを除去または永久に削除するように動作する。言い換えると、ステップ142の後は、鍵Xは格納されず、第2DASBクライアント24上に存在しない。
【0035】
上記の方法では、電子的に転送されたデータを暗号化および復号するために利用される対称鍵は一時的なものであり、決してブローカ20に存在しないまたは格納されない。従来の鍵ベースの暗号化システムおよび方法とは異なり、対称鍵はブローカ20から不正に取得され得ず、複雑な鍵管理プロトコルは必要ない。さらに、一時的な対称鍵は、送信クライアント装置でデータを暗号化するために使用されると、その装置からすぐに削除される。同様に、一時的な対称鍵は、受信クライアント装置でデータを復号するために使用されると、その装置からすぐに削除される。
【0036】
いくつかの選択的な実施形態では、本開示のシステムおよび方法は、システム10のDASBクライアント(および特にDASBクライアントによって動作されるストリーミングタイプのアプリケーション)間の安全なストリーミングタイプの通信を促進する。一般的に、モニカでデータのストリーミングを開始するためにユーザが作動させた動作の後、鍵の変更が強制的に発生する。鍵の変更の間、例えば、
図1および
図3を参照すると、ストリーミングアプリケーションは、送信DASBクライアント22のアプリケーション150によって開始され、受信DASBクライアント24のアプリケーション152に通信され得る。送信アプリケーション150は、送信DASBクライアント装置22が鍵DNAを求める要求(
図3の「鍵生成」)をブローカ20に通信する「暗号化ストリーム」動作を開く。上記に応じて、鍵DNA(および選択的にモニカ)がブローカ20によって生成され(第1のそのような要求のための「鍵DNA1」)、送信DASBクライアント22に返される。送信DASBクライアントソフトウェア40は、少なくとも部分的に、供給された鍵DNAに基づいて鍵を生成する(例えば、第1の例では、送信DASBクライアント22は、鍵DNA1に基づいて鍵1を生成する)。供給された鍵DNAおよび/または生成された鍵は、送信DASBクライアント22によって「現在の鍵DNA」および/または「現在の鍵」としてメモリに保存される(例えば、第1の例では、鍵DNA1は現在の鍵DNAとして保存され、および/または生成された鍵1は現在の鍵として保存される)。送信DASBクライアントソフトウェア40は、鍵を使用して、送信アプリケーション150でストリームのデータブロックまたはパケットを暗号化する。送信DASBクライアント22は、ストリームの暗号化されたデータブロックまたはパケットを受信DASBクライアント24に送信する。受信アプリケーション152は、ストリームの初期データブロックまたはパケットを受信すると、受信DASBクライアントが鍵DNA1を求める要求(
図3の「インデックス用の鍵を取得」)をブローカ20に通信する「復号ストリーム」動作を開く。上記に応じて、ブローカ20は鍵DNA1を検索し、受信DASBクライアント24に配信する。受信DASBクライアント24は、鍵DNA1に基づいて鍵1を生成する。受信DASBクライアント24は、受信アプリケーション152による動作のために暗号化されたデータブロックまたはパケットを復号し、鍵DNA1または鍵1の一方または両方を現在の鍵DNAまたは現在の鍵として保存する。
【0037】
送信アプリケーション150は、暗号化されているときに、または単一のデータブロックまたはパケットとしてすべて一緒に、暗号化されたデータを受信アプリケーション152に送信できる。とにかく、上記の処理は、ストリーミング通信中に継続し、データブロックまたはパケットは連続して暗号化される。連続するデータブロックまたはパケットごとに、送信アプリケーション150は、暗号化を求める要求を送信DASBクライアントソフトウェア40に送信する(
図3の「多くの暗号化ストリーム呼び出し」)。いずれの場合も、送信DASBクライアントソフトウェア40は、ストリーミング通信鍵交代規則を参照して、現在の鍵または現在の鍵DNAが暗号化に利用され得るどうか、または新しい鍵が生成される必要があるかどうかを決定する。例えば、ストリーミング通信鍵交代規則は、特定の数のデータブロックが現在の鍵を使用して暗号化された後、および/または特定の時間の後に、鍵の交代または変更が必要であることを指示できる。ストリーミング通信鍵交代規則が現在の鍵の変更を要求しない限り、送信DASBクライアント22に保存された現在の鍵(または現在の鍵DNA)は、暗号化が要求されたデータブロックまたはパケットを暗号化するために利用される。同様に、連続して受信されるデータブロックまたはパケットごとに、受信アプリケーション152は、受信DASBクライアントソフトウェア50に復号を求める要求を送信する(
図3の「多くの復号ストリーム呼び出し」)。いずれの場合も、受信DASBクライアントソフトウェア50は、送信DASBクライアントソフトウェア40で利用されるのと同じストリーミング通信鍵交代規則を参照して、現在の鍵または現在の鍵DNAが復号に利用され得るかどうか、または新しい鍵が生成される必要があるかどうかを決定する。ストリーミング通信鍵交代規則が現在の鍵の変更を要求しない限り、受信DASBクライアント24に保存された現在の鍵(または現在の鍵DNA)は、復号が要求されたデータブロックまたはパケットを復号するために利用される。
【0038】
現在の鍵(または現在の鍵DNA)を交代させる時間が近づくと、送信DASBクライアント22は、ブローカ20から新しい鍵DNAを取得するように指示または操作され(
図3の「インデックス用の鍵を作成」)、受信DASBクライアント24は、ブローカ20から同じ新しい鍵DNAを取得するように指示または操作される(
図3の「インデックス用の鍵を取得」)。上記の例を続けると、送信DASBクライアント22と受信DASBクライアント24の間のストリーミングタイプの通信の開始時に、鍵DNA1が暗号化/復号に使用される鍵の基礎になる。ある時点で、送信DASBクライアント22は、新しい鍵DNA(鍵DNA2)を要求しブローカ20から受信し、新しい鍵(鍵2)の基礎として新しい鍵DNAを使用する。対応する要求が受信DASBクライアント24から受信されると、ブローカ20は、同じ新しい鍵DNA2を受信DASBクライアント24に配信する。ストリーミング通信鍵交代規則によって、鍵2は次の連続するデータブロックまたはパケットを暗号化/復号するために使用され、鍵2(および/または鍵DNA2)は、ストリーミング通信鍵交代規則が新しい鍵を要求し、処理が繰り返されるまでの後続の暗号化/復号動作のために、送信DASBクライアント22および受信DASBクライアント24に現在の鍵(または現在の鍵DNA)として保存される。他の実施形態では、新しい鍵DNAを求める要求は、ストリーミング通信鍵交代規則が鍵の交代を要求する正確な時点で行われ得るが、これは性能上の問題となる可能性がある。
【0039】
上記の選択的なストリーミングタイプの通信方法は、送信DASBクライアントが2つ以上の受信DASBクライアントにストリーミングすること(例えば、グループビデオ)によって実装され得る。このような状況では、送信DASBクライアントは、選択された受信クライアント装置の新しい鍵DNAへのアクセスを拒否することにより、受信DASBクライアントの1つ以上をストリーミング通信から効果的に切り離すように操作され得る。鍵交代の後、選択された受信クライアント装置は、受信した暗号化されたデータブロックまたはパケットを復号できなくなる。
【0040】
上記されているように、本開示のシステムおよび方法は、送信DASBクライアントが暗号化されたデータを単一の受信DASBクライアントに送信することに限定されない。送信DASBクライアント用の特定のプールが複数の受信DASBクライアントを指定する場合、送信DASBクライアントは、上述のように、要求された暗号化動作用の鍵DNAとモニカをブローカ20から受信(または生成)し、対象のデータを暗号化して、送信側アプリケーションに提供する。送信アプリケーションは、暗号化されたデータおよびモニカ情報を、対象となる複数のDASBクライアントのそれぞれに送信するように動作する。それぞれの個々の受信DASBクライアントは、上記のように動作する(例えば、受信アプリケーションは対応する受信DASBクライアントソフトウェアに暗号化されたデータを復号するように要求し、受信DASBクライアントはブローカ20に対応する鍵DNAを要求する)。これらおよび関連する実施形態では、ブローカ20は、(例えば、ブローカ20は、指定されたプールの全てのクライアント装置が復号を要求するまで鍵DNAおよび対応するモニカを削除しない、ブローカ20は、設定された期間の後に鍵DNAと対応するモニカを削除する、など)受信した復号要求に基づいてブローカ20からの鍵DNAの削除を管理する規則でプログラムされ得る。
【0041】
本開示の方法により、DASBクライアント装置は、2つ(またはそれ以上)の信頼環境で動作でき、特定の信頼環境のブローカと相互作用するように設定され得る。例えば、第1DASBクライアント22は、上記のようにシステム10のブローカ20と相互作用するように、および本開示の別個の信頼環境/システムの完全に異なるブローカと相互作用するように設定され得る。
【0042】
初期設定では、システム10の1つのDASBクライアントは、所定の信頼環境の制御下で別のDASBクライアントとの信頼関係を確立する(特に、各DASBクライアントのDASBクライアントソフトウェアは、同じブローカによって検証および制御される)。例えば、
図1および
図4を参照すると、第1DASBクライアント(「DASBクライアントA」)は、第1ブローカ(「ブローカA」)を有する第1信頼環境(「信頼環境A」)によって制御される。第2DASBクライアント(「DASBクライアントB」)は、第2ブローカ(「ブローカB」)を有する第2信頼環境(「信頼環境B」)によって制御される。安全な調整を使用して、本開示のいくつかの非限定的な実施形態では、信頼環境AおよびBは、DASBクライアントAで生成されたペイロード(例えば、暗号化データ)が、それぞれの信頼環境A、Bで見ることができる全ての適切な記録(ログ)等でDASBクライアントBによって首尾よく処理されることが可能なように構成され得る。例えば、ブローカAによって生成され、暗号化鍵を生成するためにDASBクライアントAに提供される鍵DNAは、DASBクライアントBに配信するためにブローカBに提供され得る。
【0043】
別の例では、DASBクライアントは、最初の「所有」環境が制御や検証などを引き継いで1つの信頼環境から新しい環境に信頼関係を移行できる。例えば、DASBクライアントAは、調整されて制御がブローカAからブローカBへと引き継がれるように、ブローカAとブローカBが相互に通信し、DASBクライアントAと調整することにより、信頼環境Aから信頼環境Bに転送できる。引き継ぎが完了すると、DASBクライアントAは、信頼環境B内の別のDASBクライアントとの信頼関係(例えば、DASBクライアントBとの信頼関係)を自由に確立できる。参考として、「新しい」信頼環境は、いくつかの例では、対象の、間もなく転送されるDASBクライアントのプレースホルダを作成し、転送するDASBクライアントがさらなる構成を必要とせずにすぐに割り当てることができる。
【0044】
別の例では、信頼環境は複数の地域にまたがっている(つまり、さまざまなブローカが地理的に異なるデータセンタで実行されているが、それでも集合的に定義するか、単一の全体的な信頼環境の一部である)。システム/信頼環境の組織または所有者は、DASBクライアントの一部(例えば、対象のDASBクライアントおよびブローカの1つ以上で定められたプログラムまたはその他の機能)を、特定の地域のブローカに「ピン止め」または制約されていることを示してもよい。しかし、他のDASBクライアント(例えばスマートフォン)は、ローミングを許可されてもよい。どのブローカが選択されるかは、地理的IP規則によって決定される可能性があるが、期間や明示的な指示などの規則によって管理されてもよい。ローミングDASBクライアントが地理的に異なるブローカに近づくと、その制御情報は前のブローカから自動的に転送される。つまり、全てのDASBクライアントは1つの信頼環境の一部であるが、DASBクライアントのブローカ実装管理は、パフォーマンスを向上させるために地理的に近い場所に委任される。
【0045】
上記されているように、いくつかの選択的な実施形態では、本開示のシステムおよび方法は、インタセプタ26の使用または動作を伴うことができる。例えば、いくつかの実施形態では、鍵DNAを求める要求がブローカ20で受信された(すなわち、ステップ110)後、かつ要求に応答して鍵DNAが生成され、配信される(すなわち、ステップ114)前に、本発明の方法は、開示は、
図5に示されるように、インタセプタ26と相互作用することを含むことができる。例えば、
図1および
図5を参照すると、ステップ110の後、方法は、インタセプタ26(および具体的には制御ソフトウェア60)に鍵DNAのための受信された要求を、ステップ200において、通知するブローカ20を含むことができる。上記の例を続けると、インタセプタ26は、要求Xについて通知される(そうでなければ、送信者DASBクライアント22から受信者DASBクライアント24に情報を転送する意図を示す要求プール識別子を含む)。いくつかの実施形態では、一般的な情報は、ステップ200においてインタセプタ26に提供される。他の実施形態では、文脈情報は、ステップ200においてインタセプタ26に提供される(すなわち、例えば、送信および受信クライアント装置、要求時間などの暗号化のための特定の要求に関するいくつかのレベルの情報をインタセプタ26に提供する)。
【0046】
ステップ202において、インタセプタ26は、要求Xの承認または拒否を促進するように動作される。例えば、インタセプタ26は、要求Xに関連する情報を、許可された人間の管理者に提示(例えば、表示)でき、管理者は、要求を承認または拒否する。要求Xを承認または拒否する決定は、ステップ204でインタセプタ26からブローカ20に通信される。いくつかの選択的な実施形態では、ブローカ20は、所定の時間(例えば、1分)後にインタセプタ26から応答を受信しない場合、ブローカ20は、ステップ206のように、要求Xの承認ステータスが保留中であることを送信DASBクライアント22に通知する(このメッセージは、送信DASBクライアント22のユーザに伝達され得る)。さらにステータスの更新が定期的に提供され得る。ステップ204において、要求Xが承認されたこと(「YES」)がブローカ20に通知された場合、ブローカ20は、上記のように鍵DNA XおよびモニカXを生成する(すなわち、方法は
図2Aのステップ114に続く)。ステップ204において、要求Xが拒否されたこと(「NO」)がブローカ20に通知された場合、ブローカ20は、送信DASBクライアント22に鍵DNAを提供せず、データXは暗号化され得ない(ステップ208)。他の選択的な実施形態では、システム10は、インタセプタ26が所定の期間後に承認の要求に応答しない状況下で、ブローカ20が鍵DNAおよびモニカを生成して送信DASBクライアントに配信し、送信DASBクライアントは、受信した鍵DNAに基づいて鍵を生成し、そのように生成された鍵を使用して対象のデータを暗号化し、送信アプリケーションは、暗号化されたデータおよびモニカをインタセプタ26に、暗号化されたデータおよびモニカを受信アプリケーションに送信できるか否かを決定するために、送信するように、構成されまたはプログラムされ得る。
【0047】
他の実施形態では、モニカXを含む鍵DNA Xを求める要求がブローカ20で受信された(すなわち、ステップ130)後、かつ要求に応答して鍵DNA Xが生成され配信される(すなわち、ステップ132)前に、本開示は、
図6に示されるように、インタセプタ26と相互作用することを含むことができる。例えば、
図1および
図6を参照すると、ステップ130の後、方法は、復号の目的のための鍵DNA Xのための受信された要求を、ステップ250において、インタセプタ26(および具体的には制御ソフトウェア60)に通知するブローカ20を含むことができる。いくつかの実施形態では、一般的な情報は、ステップ250でインタセプタ26に提供される。他の実施形態では、文脈情報は、ステップ250でインタセプタ26に提供される(すなわち、例えば、送信および受信クライアント装置、要求時間などの暗号化のための特定の要求に関するいくつかのレベルの情報をインタセプタ26に提供し、そうでなければブローカ20がプール、クライアント装置、インタセプタ規則等を検索できる割り当てられたモニカの情報を介してブローカ20が利用でき、カスタマイズされたメッセージがインタセプタ26に提供され得る)。
【0048】
ステップ252において、インタセプタ26は、鍵DNA Xを求める要求の承認または拒否を促進するように動作される。例えば、インタセプタ26は、要求を許可された人間の管理者に提示(例えば、表示)でき、管理者は、要求を承認または拒否する。鍵DNA Xを求める要求を承認または拒否する決定は、ステップ254で、インタセプタ26からブローカ20に通信される。いくつかの選択的な実施形態では、ブローカ20は、所定の時間(例えば、1分)後にインタセプタ26から応答を受信しない場合、ブローカ20は、ステップ256のように、要求の承認ステータスが保留中であることを受信DASBクライアント24に通知する(このメッセージは、受信DASBクライアント24のユーザに伝達され得る)。さらにステータスの更新が定期的に提供され得る。ステップ254において、鍵DNA Xを求める要求が承認されたこと(「YES」)がブローカ20に通知された場合、ブローカ20は上記のように鍵DNA Xを検索する(すなわち、方法は
図2Bのステップ132に続く)。ステップ254において、鍵DNA Xを求める要求が拒否されたこと(「NO」)がブローカ20に通知された場合、ブローカ20は受信DASBクライアント24に鍵DNA Xを提供せず、暗号化データXは復号され得ない(ステップ258)。
【0049】
上記されているように、本開示のいくつかの方法では、システム10で利用される各DASBクライアントおよび対応するDASBクライアントソフトウェアは、ブローカ20との許可された安全な相互作用のために設定される(例えば、
図2Aのステップ100および102)。DASBクライアントの設定は、様々な方法で達成され得、いくつかの実施形態では、特定のクライアント装置にインストールされたDASBクライアントソフトウェアとブローカ20との間の確認された安全な通信を容易にする。本開示の原理による設定のための方法の1つの非限定的な例が、
図7に提供されている。参考として、DASBクライアントの設定動作を開始する前に、DASBクライアントソフトウェアがクライアント装置にインストールされ、ブローカ20で動作するDASBポータルに管理者アカウントが確立されている。
【0050】
ステップ300において、管理者アカウント(「管理者」)を使用することを許可された人間のユーザは、DASBポータルに対して認証し、DASBクライアント設定処理を開始する。管理者はまた、ステップ302において、対象のクライアント装置上のDASBクライアントソフトウェアに(ブラウザを介してまたはアプリケーション固有の表示を通じて)接続する。ステップ304において、ブローカ20は、DASBポータルで管理者に提供されるコード(例えば、時間制限されたワンタイムコード)を生成する。ステップ306において、管理者は、対象のクライアント装置で(したがって、対応するDASBクライアントソフトウェアに対して)コードを繰り返すか、または入力する。対象のクライアント装置のDASBクライアントソフトウェアは、入力されたコードを使用して、ステップ308でブローカ20と通信する。入力されたコードを受信すると、ブローカ20は、ステップ310でDASBクライアントIDおよびDASBクライアント公開鍵を生成し、ステップ312において、これらは対象のクライアント装置のDASBクライアントソフトウェアに通信される。管理者(または他の人間のユーザ)は、ステップ314において、ブローカ20と対象のDASBクライアントとの間の通信を検証し、対象のDASBクライアントソフトウェアを設定されているものとして指定する。いくつかの実施形態では、ブローカ20とそのように設定されたDASBクライアントとの間の通信は、信頼できるまたは安全であると考えられる。ステップ316において、管理者が、ブローカ20と対象のクライアント装置が安全に通信していないと判断した場合、対象のクライアント装置はブローカ20から削除され、設定処理が再開される必要がある。例えば、偽造DASBクライアント装置が設定処理中にブローカ20との通信を開始した場合(つまり、偽造DASBクライアント装置が認証情報を傍受した場合)、この通信により、管理者のクライアント装置がブローカ20と通信できなくなる。管理者は、自分の装置が通信していないことに気付くため、偽の装置が接続されたことを認識する。
【0051】
本開示のいくつかの方法では、システム10(または信頼環境)内のブローカ20と任意のDASBクライアントとの間の安全な通信は、当業者によって理解される鍵暗号化技術(例えば、対称鍵暗号化)を使用することによって提供される。これを念頭に置いて、本開示のいくつかの選択的な方法は、ブローカ-DASBクライアント通信に使用される鍵を交代させることによって、システム10の各クライアント装置とブローカ20との間の安全な通信を促進および確認する。例えば、
図8を参照すると、本開示のいくつかの選択的な方法は、特定のクライアント装置の設定とともに、ステップ350において、DASBクライアントが固有のDASBクライアント秘密鍵を定め、格納すること、および対象のDASBクライアント(および選択的にブローカ)に格納されるDASBクライアント公開鍵を定めることを含むことができる。ステップ352において、対象のブローカおよびDASBクライアントは、DASBクライアント公開鍵に基づいて通信のための対称鍵を協議する。この協議された対称鍵は、安全な通信のための最初の「現在の」対称鍵として機能する。ステップ354において、対象のDASBクライアントとブローカとの間の確認された安全な通信のための新しい対称鍵は、対象のDASBクライアントによって定期的に(例えば、ランダムな間隔で)生成されるか、または対象のブローカとDASBクライアントとの間で協議される。新しい対称鍵は、ステップ356において、現在の対称鍵と割り当てられたDASBクライアント公開鍵を使用して暗号化され、対象のブローカまたはDASBクライアントに転送される。ステップ358において、暗号化された新しい対称鍵は、(例えば、割り当てられたDASB秘密鍵によって)復号され、対象のブローカとDASBクライアント間のその後の通信のために保存される(格納されている現在の対称鍵を新しい対称鍵に置き換える。言い換えれば、新しい対称鍵が現在の対称鍵になる)。
【0052】
ステップ360において、対象のDASBクライアントのための新しいDASBクライアント公開鍵は、ブローカによって定期的に(例えば、ランダムな間隔で)生成される。ブローカは、現在の対称鍵を使用して新しいDASBクライアント公開鍵を暗号化し、ステップ362で対象のDASBクライアントに転送する。ステップ364において、対象のDASBクライアントは、暗号化された新しいDASBクライアント公開鍵を復号し、ブローカとのその後の通信のために新しいDASBクライアント公開鍵を保存するように動作される。
【0053】
上記により含意されているように、本開示のシステムおよび方法は、DASBクライアントとブローカ20との間の通信を伴うセッション管理機能を提供する。例えば、DASBクライアントは、データペイロードを保護するために自身のセッションを管理することによってブローカ20と通信できる(すなわち、DASBクライアントとブローカ20との間の通信(コマンド、関連するデータペイロードなど)は、セキュリティプロトコルに従う)。本開示の鍵DNA方法は、DASBクライアント間の安全な通信を容易にするが、セッション管理は、ブローカとDASBクライアントとの間の安全な通信を提供する。
図1および
図9を参照すると、ブローカ20とDASBクライアント22との間の本開示のセッション管理方法論の1つの非限定的な例は、ステップ400において、ブローカ20が、秘密/公開鍵の対を生成するために非対称暗号化アルゴリズム(例えば、RSA)を利用することを含むことができる。DASBクライアント22からの要求に応答して、ブローカ20は、ステップ402において、そのように生成された公開鍵をDASBクライアントに配信する。DASBクライアント22は、ステップ404において、公開鍵を使用して、対称鍵を生成し、そのように生成された対称鍵を暗号化する。ステップ406において、DASBクライアント22は、対称鍵を利用して、ブローカ20に送信されるデータ(コマンド、ペイロードなど)を暗号化する。暗号化されたデータは、ステップ408でブローカ20に配信される。ブローカは、ステップ410において、対称鍵を使用して、受信した暗号化されたデータを復号する。ステップ412において、ブローカ20は、必要に応じて、受信した(そして現在は復号された)データに基づいて行動する。任意の応答通信、データ、コマンドなどは、ステップ414において、同じ対称鍵を使用して暗号化され、DASBクライアント22に返される。特定の信頼環境内の各DASBクライアントはブローカ20と安全に対話するためにこの同じセッション管理アプローチを使用できるが、独自の公開/秘密鍵/対称鍵のセットを持つことが理解される(例えば、第1DASBクライアント22とブローカ20との間の安全な通信のために使用される対称鍵は、第2DASBクライアント24とブローカ20との間の安全な通信に使用される対称鍵とは異なる)。いくつかの関連する非限定的な例では、各DASBクライアントは異なる非対称暗号化アルゴリズムを使用できる。
【0054】
いくつかの実施形態では、本開示のセッション管理機能またはモードは、選択的に、ランダムな間隔(例えば、1~15分の間)で対称鍵を交代させることをさらに含むことができ、対象のDASBクライアントによって制御され得る。秘密/公開鍵の対も交代され得るが、いくつかの実施形態ではより粗い間隔で交代され得る。これに関して、セッション管理機能またはモードは、例えば、システム10の所有者または操作者の選好に基づいて、秘密鍵/公開鍵の対を交代するときに、異なる非対称暗号化アルゴリズムを選択することを含むことができる。非限定的な例として、システム10の所有者または操作者は、セッション管理動作モードにおいて、システム10が利用可能な暗号化アルゴリズムの群からランダムに選択するようにシステム10を構成できる。ブローカは、特定の構成(プログラム)または特定の構成がない場合の所定の初期設定のいずれかを使用して、公開鍵/秘密鍵の対を生成するための適切な暗号化アルゴリズムを選択し、変更が必要な時間を監視する。ブローカは、DASBクライアントにセッション関連の対称鍵交代の時間間隔も提供する。DASBクライアントは、対称鍵交代期間ごとに1から指定された値までのランダムな時間間隔を選択するようにプログラムされている。新しいアルゴリズムが展開されると、各DASBクライアントの所有者は、対応するDASBクライアントソフトウェアを更新して、これらの新しいアルゴリズムを利用できる。一例では、新しいアルゴリズムは、クライアント装置全体を更新することなく、既存の(および設定された)DASBクライアントへのパッチとしてクライアント装置ユーザが利用できるようにできる。
【0055】
いくつかの非限定的な実施形態では、本開示のシステムおよび方法は、DASBクライアント間でカスタマイズされた暗号化アルゴリズム(「ペイロード管理」とも呼ばれる)の実装を可能にする。例えば、システム10の選択されたDASBクライアント装置に提供されるDASBクライアントソフトウェアは、システム10の所有者または操作者が、DASBクライアントが(上述のようにブローカ20から提供される鍵DNAを利用して)鍵を生成するカスタマイズされた暗号化アルゴリズムを入力できるようにする。例として、信頼関係にある2つのDASBクライアント(例えば、DASBクライアントAとDASBクライアントB)は、カスタマイズされた暗号化アルゴリズムの同じ群を持っている必要がある。信頼環境の所有者または操作者は、これらのカスタマイズされた暗号化アルゴリズムを、指示記号(インジケータ)(例えば、テキスト文字列、数列など)とともにDASBクライアントAおよびDASBクライアントBのそれぞれにインストールする。所有者/操作者はさらに、どのDASBクライアントがカスタマイズされたアルゴリズムを持っているかをブローカで指定し、そのように指定されたカスタマイズされた暗号化アルゴリズムを表す対応する指示記号を提供する。したがって、指示記号のみがブローカで存続する。DASBクライアントAが送信側で、DASBクライアントBが受信側である状況では、DASBクライアントAから新しい鍵DNAを求める要求を受信すると、ブローカは上記のように鍵DNAを生成し、カスタマイズされた暗号化アルゴリズムをランダムに選択できる。ブローカは、鍵DNA、および選択されたカスタマイズされた暗号化アルゴリズムに対応する指示記号をDASBクライアントAに送信する。DASBクライアントAは、指示記号を確認すると、対応する暗号化アルゴリズムを使用して対象のデータ/ペイロードを暗号化し、DASBクライアントBに送信する。したがって、指示記号を、鍵の生成を可能にする鍵DNAの「一部」であると見なすことができる。暗号化されたデータ/ペイロードを受信すると、DASBクライアントBは、上記のように鍵DNAを求める要求をブローカに送信する。ブローカは、DASBクライアントBに鍵DNAと、DASBクライアントAに提供されたものと同じ指示記号を送信する。DASBクライアントBは同じ指示記号を有するため、同じカスタマイズされた暗号化アルゴリズムが復号のために選択される。指示記号に対応するアルゴリズムがDASBクライアントBにインストールされていない場合、操作はエラーになる。代替的にまたは付加的に、システム10内の2つ以上のDASBクライアントは、既知の信頼関係を有するように構成または設定され得(すなわち、2つ以上のDASBクライアントは信頼関係に関与することが知られている)、少しの(またはそれ以上の)選択された対称暗号化アルゴリズム(例えば、AES、Salsa20等)が予めインストールされ得る。ペイロード管理は、選択的に、ブローカが顧客の構成に基づいて特定の暗号化されたデータの転送に使用する暗号化アルゴリズムを選択する(例えば、ランダムに選択する)ことを含むことができる。これらは関連する実施形態であり、システム10の操作者または所有者は、DASBクライアントをフィールド更新して(そうでなければ信頼関係で)、そうでなければブローカに知られていない1つまたは複数のカスタム暗号化アルゴリズムを使用でき、またはプリインストールされた暗号化アルゴリズムを使用する。これらのカスタム暗号化アルゴリズムは、システム10の操作者または所有者によって構成されたようなシステム提供のアルゴリズムの代わりに、または一緒に使用できる。
【0056】
本開示のシステムおよび方法は、選択的に、1つまたは複数の付加的な機能または動作を含むことができる。例えば、いくつかの実施形態では、本開示のシステムおよび方法は、設定されたDASBクライアントとブローカ20との間の指定されたトランザクション(すべてのトランザクションを含む)が追跡または記録され、かつ(例えば、ブローカ20で)保存される記録機能を組み込む。いくつかの実施形態では、暗号化を求める要求に関連する鍵DNAのためのすべての要求が追跡され、関連する実施形態では、復号を求める要求に関連する鍵DNAのためのすべての要求が保存される。記録または追跡される情報は、例えば、暗号化または復号を求める要求が受信された時間(例えば、日、時間等)、特定の要求に関連付けられたクライアントID等を含むことができる。記録された情報は、作成後に変更できないように、暗号化署名を使用して保護され得る。いくつかの実装では、記録を保護する方法は、分散型台帳またはブロックチェーンを介して実現され得る。
【0057】
いくつかの実施形態では、選択的な記録動作は、監査可能な安全性をさらに提供でき、特定のデータ転送が安全であったかどうかについて高レベルの信頼性で知ることができるようにする。転送記録は不変であり、各データ転送に関連付けられた暗号化は固有であるため、特定の鍵DNAに誰またはどの装置がアクセスしたかを確実に「知る」ことができる。既存の記録を使用して、ユーザは、本開示の原理によって、さまざまな方法で特定のデータ転送の安全性を検証できる。例えば、ユーザは、指定されたメッセージまたはストリームのすべての利用履歴(アクティビティ)を要求できる(例えば、対応するモニカによって識別される)。利用履歴の報告または記録を確認して、対象の送信DASBクライアントによってすべての暗号化が行われたことを確認できる。暗号化のリストは、ブローカ20に保存されている送信DASBクライアントの暗号化の記録と関連付けられ得る。同様に、利用履歴の報告または記録を確認して、対象の受信DASBクライアントによってすべての復号が行われたことを確認できる。復号のリストは、ブローカ20に保存されている受信DASBクライアントの復号の記録と関連付けられ得る。代替的にまたは付加的に、指定されたデータ転送に関連付けられた鍵へのアクセスの不正な試みが記録され得る。これは侵害を示すものではないが、侵害の試みを示し、攻撃者が暗号化されたテキスト/暗号化されたデータにアクセスしたことを示す。参考までに、「不正な試み」は、(システム10の一部ではない)未知の当事者によるアクセスの試み、(システム10の)既知の当事者によるアクセスの試みではあるが、暗号化されたデータまたはメッセージが符号化されていない試み、対象の受信クライアント装置によるアクセスの試みではあるが、装置が許可された回数よりも多い回数のアクセスの試み(例えば、システム10は、復号するための1回の試みのみを許可するように構成され得るが、N回の復号の試みが許可されていたとしても、対象の受信DASBクライアントは、N+1回の復号を試みることができ、この場合はエラーを生成する)等、さまざまな形をとることができる。
【0058】
上記の方法は、ブローカ20が、暗号化を求める要求に応答してDASBクライアントに配信するための鍵DNAを生成することと、復号を求める要求に応答してDASBクライアントにその後に配信するための鍵DNAを格納することとを含むが、他の技術が採用され得る。例えば、いくつかの代替の実施形態では、DASBクライアントソフトウェアは、特定の暗号化トランザクションに利用される鍵DNAの一部またはすべてを生成し、鍵DNAを(送信アプリケーションを介して)ブローカ20に送信するようにプログラムされ得る。他の実施形態では、DASBクライアントソフトウェアは、鍵DNAの一部を生成し、(送信アプリケーションを介して)部分的な鍵DNA情報を(受信アプリケーションを介して)受信DASBクライアントに送信するようにプログラムされ、したがってブローカ20を迂回する。これらおよび関連する実施形態では、ブローカ20は、復号動作を要求するDASBクライアントに配信される鍵DNAの残りを生成するようにプログラムできる。受信DASBクライアントは、送信アプリケーションおよびブローカ20によって提供される部分的な鍵DNAから完全な鍵DNAを生成するようにプログラムされる。
【0059】
同様に、上記の方法は、ブローカ20が暗号化を求める要求に応答してモニカを生成することを含むが、他の技術が採用され得る。例えば、いくつかの代替の実施形態では、DASBクライアントソフトウェアは、(送信アプリケーションを介して)ブローカ20への要求に含まれるモニカを生成するようにプログラムされている。ブローカ20は、要求しているDASBクライアントに配信するためにモニカを格納でき、またはモニカは、送信アプリケーションを介して受信アプリケーションに配信され得る。
【0060】
いくつかの非限定的な実施形態では、本開示のシステムおよび方法は、選択的に、DASBクライアント装置からのDASBクライアントソフトウェアの無許可のコピー(およびコピーされたDASBクライアントソフトウェアを使用して、設定または許可されたDASBクライアントになりすますこと)のおそれを最小化するように動作できる。例えば、本開示のシステムおよび方法は、ブローカとDASBクライアントとの間の制御仲介者として機能する単独で動作する「リーシュ」または「リーシュ所有者」装置(または仲介装置)を実施または実装できる。この関係の1つの表現は、
図10で提供され、DASBクライアント22がブローカ20で設定され、リーシュ装置500(例えば、他の方法でプログラムされた、または対応するリーシュソフトウェア502を操作するコンピュータまたはコンピュータのような装置)と電子的に関連付けられる。リーシュ装置500、DASBクライアント22、およびブローカ20の間の持続的な通信は、DASBクライアント22が偽装されるのを防ぐのに役立つ。この配置を容易にできる1つの特徴は、リーシュ装置500がDASBクライアント22と同じサブネット(
図10の破線で表される)上に構成され、このサブネットの外部から到達できないことである。しかしながら、リーシュ装置500は、ブローカ20への外向きの「呼び出し」を行うことができる。
【0061】
一例の構成では、システムの所有者または操作者は、DASBクライアント22とリーシュ装置500との間の所望の通信頻度でブローカ20を構成し(例えば、プログラムまたは指示し)、トークン信頼性規則を構成する。DASBクライアント22は、例えば、常に起動時におよびその後に所定の間隔で、リーシュ装置500に接続し、リーシュ装置500からトークンを受信する。この相互作用の一部として、リーシュ装置500は、ブローカ20と通信し、トークンの暗号化ハッシュを提供する。DASBクライアント22がブローカ20と通信するとき、DASBクライアント22はブローカ20にトークンを提供する。ブローカ20は、受信したトークンから暗号化ハッシュを計算し、この計算されたハッシュを、リーシュ装置500から以前に受信した暗号化ハッシュと比較する。値が一致する場合、ブローカ20によって受信された通信は、DASBクライアント22から配信されたと見なされ、つまり別の考え方をすれば安全につながれている。ブローカ20はまた、DASBクライアント22からの通信の頻度を追跡できる。DASBクライアント22が指定された期間内での通信に失敗した場合、DASBクライアント22は、ブローカ20によって機能していないとして印を付けられ得る。これらの状況下では、処理の手動リセットを開始でき、顧客/システム操作者にDASBクライアント22の所在を検証させることができる。
【0062】
上記の説明では、暗号化アルゴリズムが参照されている。いくつかの実施形態では、(例えば、セッション管理、鍵DNA生成などのための)すべての暗号化アルゴリズムは、暗号論的に安全な疑似乱数生成器(CSPRNG)の使用を必要とする。いくつかの実施形態では、本開示のシステムおよび方法は、これらの数を生成するための道具を提供されたオペレーティングシステム(OS)を利用する。しかし、ユーザまたはシステム所有者は、独自にカスタムした暗号論的に安全な乱数生成器を使用して乱数を生成する呼び出し可能な処理を提供できる。当該生成器は、REST、gRPCなどの呼び出しプロトコルを使用して、対象の信頼環境にアクセスできるように作成され得る。ブローカ20間のアクセスを保護するために、さまざまな展開手法が使用され得る。ユーザまたはシステム所有者は、どのDASBクライアントデバイス/プールがどの生成器を使用するかを構成でき、さまざまな目的でさまざまな乱数生成器を容易に使用できるようにする。当該選択的な手法の結果、システム10がそれ自体を使用して、ブローカ20への乱数の配信を保護することができる。例えば、特定のDASBクライアントは、システムが提供する乱数生成器を使用するように構成され得、乱数を安全に作成および配信するように生成器によって使用される。ブローカ20は、番号を復号するための適合装置を持っている。ブローカ20は、それらを使用するように構成されたDASBクライアントのためにこれらの乱数を使用できる。
【0063】
高可用性または配置の大規模化(負荷バランシングとも呼ばれる)を促進するために、バックアップまたは複数の動作するハードウェア装置を用意することが一般的に使用される手法である。高可用性/負荷分散を可能にするために、本開示のいくつかの非限定的な実施形態は、複数のDASBクライアントで構成されている「ノード」と呼ばれる論理ユニットとして、信頼できる通信の端末の抽象概念(すなわち、プールの一端)を作成できる。例えば、
図11を参照すると、DASBクライアントA、DASBクライアントB、DASBクライアントC、およびDASBクライアントDはすべて、ブローカ20によって管理される信頼環境の暫定のDASBクライアント装置である。さらに、DASBクライアントAおよびDASBクライアントBは、ノード「配置1」の構成DASBクライアントとして独立して設定され、一方、DASBクライアントCおよびDASBクライアントDは、ノード「配置2」の構成DASBクライアントとして独立して設定される。ノード配置1およびノード配置2は、仮想的にブローカ20に存在する。独立して設定および管理されている一方、プール(プール-配置12)は、ブローカ20で2つのノード配置1、配置2の間に確立される。この配置では、ノード配置1を備える任意のDASBクライアント(つまり、DASBクライアントAとDASBクライアントB)は、ノード配置1のDASBクライアントとして機能できる。同様に、ノード配置2を備える任意のDASBクライアント(つまり、DASBクライアントCとDASBクライアントD)は、ノード配置2のDASBクライアントとして機能できる。システムの所有者または操作者は、ブローカ20内でこれらの論理ユニットを定め、必要なDASBクライアントをこれらの論理ユニットに割り当てることができる。信頼関係は、これら2つの論理ユニットを接続するプールを定めることによって確立される。
【0064】
本開示は好ましい実施形態を参照して記載されてきたが、当業者は、本開示の精神および範囲から逸脱することなく、形態および詳細において変更を行うことができることを認識するであろう。
【国際調査報告】