JPWO2021156686A5 - - Google Patents
Download PDFInfo
- Publication number
- JPWO2021156686A5 JPWO2021156686A5 JP2022543533A JP2022543533A JPWO2021156686A5 JP WO2021156686 A5 JPWO2021156686 A5 JP WO2021156686A5 JP 2022543533 A JP2022543533 A JP 2022543533A JP 2022543533 A JP2022543533 A JP 2022543533A JP WO2021156686 A5 JPWO2021156686 A5 JP WO2021156686A5
- Authority
- JP
- Japan
- Prior art keywords
- message
- topic
- entity
- encryption
- computer
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 claims description 63
- 238000004590 computer program Methods 0.000 claims description 13
- 230000004044 response Effects 0.000 claims description 8
- 238000007726 management method Methods 0.000 description 53
- 230000015654 memory Effects 0.000 description 20
- 238000010586 diagram Methods 0.000 description 18
- 238000012545 processing Methods 0.000 description 18
- 230000006870 function Effects 0.000 description 10
- 230000005540 biological transmission Effects 0.000 description 9
- 230000008569 process Effects 0.000 description 9
- 230000003287 optical effect Effects 0.000 description 8
- 238000004891 communication Methods 0.000 description 7
- 238000012986 modification Methods 0.000 description 5
- 230000004048 modification Effects 0.000 description 5
- 230000001902 propagating effect Effects 0.000 description 5
- 230000000694 effects Effects 0.000 description 4
- 238000003491 array Methods 0.000 description 3
- 239000000463 material Substances 0.000 description 3
- 239000004065 semiconductor Substances 0.000 description 3
- 238000013474 audit trail Methods 0.000 description 2
- 230000008901 benefit Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 239000000835 fiber Substances 0.000 description 2
- 230000006872 improvement Effects 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- RYGMFSIKBFXOCR-UHFFFAOYSA-N Copper Chemical compound [Cu] RYGMFSIKBFXOCR-UHFFFAOYSA-N 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 238000013473 artificial intelligence Methods 0.000 description 1
- 238000012550 audit Methods 0.000 description 1
- 238000003339 best practice Methods 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 229910052802 copper Inorganic materials 0.000 description 1
- 239000010949 copper Substances 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 239000004744 fabric Substances 0.000 description 1
- 230000014509 gene expression Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000005055 memory storage Effects 0.000 description 1
- 230000006855 networking Effects 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 230000001105 regulatory effect Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 230000007704 transition Effects 0.000 description 1
Images
Description
本発明は一般にはメッセージ・キューイング・システムに関し、より詳細には、安全な方式でのメッセージ・キューイング・システム内のメッセージの処理に関する。 The present invention relates generally to message queuing systems, and more particularly to processing messages in a message queuing system in a secure manner.
企業内、企業間、企業から消費者、ならびに消費者から消費者へのメッセージおよび情報交換を管理することは、情報技術の中心的な技能の1つである。メッセージング・システムが、データをメッセージとして記憶し、転送し、配布するために数十年にわたって広く使用されてきた。最近では、Kafkaなどのメッセージング・システムもデータベースの一形態と見なされている。この発展と同時に、こうしたメッセージング・システムは、クラウド・コンピューティング・システムでますますインスタンス化されている(instantiate)(注:「KAFKA」という用語は、世界中の様々な管轄区域(jurisdiction)内で商標権の対象となり得、ここでは、そのような商標権が存在し得る範囲で標章によって適切に命名された製品またはサービスに関してのみ用いられる)。 Managing intra-business, inter-business, business-to-consumer, and consumer-to-consumer message and information exchange is one of the core skills of information technology. Messaging systems have been widely used for decades to store, transfer, and distribute data as messages. More recently, messaging systems such as Kafka are also considered a form of database. Concurrent with this development, such messaging systems are increasingly instantiated in cloud computing systems. (Note: The term "KAFKA" may be subject to trademark rights in various jurisdictions around the world and is used herein only with reference to products or services appropriately named by the mark to the extent such trademark rights may exist.)
セキュア鍵管理およびデータ伝送システムが遷移システム(transition system)、データ消費者ネットワーク・デバイス、ユーザ・ネットワーク・デバイス、およびデータ伝送ネットワークを含むことが知られている。伝送管理システムが、データ伝送ネットワークを介してユーザ・ネットワーク・デバイスからユーザ特有のデータを受信し、データ消費者ネットワーク・デバイスによって提供されるプロプラエタリ・プロセスに従って、ユーザ特有のデータを処理することに対応するサービスを求める要求を受信するように構成される。 A secure key management and data transmission system is known that includes a transition system, a data consumer network device, a user network device, and a data transmission network. A transmission management system is configured to receive user-specific data from the user network device via the data transmission network and to receive a request for a service corresponding to processing the user-specific data according to a proprietary process provided by the data consumer network device.
さらに、ネットワーク構成ポリシーを伝播するためのシステムが、パブリッシュ/サブスクライブメッセージング・システム(publish/subscribe messaging system)を使用することが知られている。動作の間、システムは、パブリッシュ/サブスクライブメッセージング・システムを通じて、ポリシー・サーバから構成ポリシーの第1の表現を含む1つまたは複数のメッセージを受信する。 Additionally, systems for propagating network configuration policies are known to use a publish / subscribe messaging system through which, during operation, the system receives one or more messages including a first representation of the configuration policy from a policy server.
本発明の一態様では、方法、コンピュータ・プログラム製品、およびシステムが、(i)トピック・ベースの暗号化ポリシーを参照することにより、第1のメッセージに関連する第1のトピックが第1の暗号化レベルを必要とすると判定することと、(ii)前記第1の暗号化レベルに従って第1のメッセージを暗号化して、第1の暗号化メッセージを生成するための暗号鍵を第1のエンティティ(例えば、ユーザシステム)に提供することと、(iii)第1のトピックに従ってメッセージ・キューイング・システム内に第1の暗号化メッセージを記憶することと、(iv)前記第1の暗号化メッセージを含む前記第1のトピックに関連付けられた前記第1のメッセージを求める要求を第2のエンティティ(例えば、消費者システム)から受信することと、(v)第1のトピックに関するトピック・ベースの暗号化ポリシーに従って、前記第1のトピックに関連付けられた前記第1の暗号化メッセージに対応する復号鍵を識別することと、(vi)前記復号鍵を使用する前記第2のエンティティ(例えば、消費者システム)による復号のための第1の暗号化メッセージを第2のエンティティ(例えば、消費者システム)に送ることとを含む。本発明の一態様では、前記工程(i)の前に、前記コンピュータ実装方法が、メッセージ・キューイング・システム内に記憶するための暗号化を第1のトピックが必要とするかどうかを判定するようにとの要求を第1のエンティティから受信することを含む。
本発明の任意の一態様では、前記コンピュータ実装方法は、前記第1の暗号化メッセージを生成するための前記暗号鍵を前記第1のエンティティに提供することと、前記第1の暗号化メッセージについての前記復号鍵を前記第2のエンティティに送ることとをロギング・システムに記録することをさらに含みうる。
本発明の任意の一態様では、前記コンピュータ実装方法は、前記トピック・ベースの暗号化ポリシーに対する更新に応答して、前記ロギング・システムに前記更新を記録することをさらに含みうる。
本発明の任意の一態様では、前記メッセージ認証コードが、HMAC(keyed-Hash Message Authentication Code)を含みうる。
本発明の任意の一態様では、前記コンピュータ実装方法は、前記第2のエンティティに認証クレデンシャル(authenticating credential)を割り当てることを含む、前記第2のエンティティについてのサブスクリプションアカウントを確立することと、前記第2のエンティティが前記サブスクリプションアカウントを介して前記第1のトピックにサブスクライブしたとき、前記要求が受信されることとをさらに含みうる。
本発明の任意の一態様では、前記復号鍵が、前記トピック・ベースの暗号化ポリシーによって前記第1のトピックに割り当てられうる。
In one aspect of the invention, a method, computer program product, and system includes: (i) determining that a first topic associated with a first message requires a first encryption level by referencing a topic -based encryption policy; (ii) providing a first entity (e.g., a user system) with an encryption key for encrypting the first message according to the first encryption level to generate a first encrypted message; (iii) storing the first encrypted message in a message queuing system according to the first topic; (iv) receiving a request from a second entity (e.g., a consumer system ) for the first message associated with the first topic including the first encrypted message; (v) identifying a decryption key corresponding to the first encrypted message associated with the first topic according to a topic-based encryption policy for the first topic ; and (vi) sending the first encrypted message to the second entity (e.g., a consumer system ) for decryption by the second entity (e.g., a consumer system) using the decryption key. In one aspect of the invention, prior to step (i), the computer-implemented method includes receiving a request from a first entity to determine whether the first topic requires encryption for storage within the message queuing system.
In any aspect of the invention, the computer-implemented method may further include recording in a logging system the providing of the encryption key to the first entity for generating the first encrypted message and the sending of the decryption key for the first encrypted message to the second entity.
In any aspect of the invention, the computer-implemented method may further include, in response to an update to the topic-based encryption policy, logging the update in the logging system.
In one optional aspect of the present invention, the message authentication code may include a keyed-hash message authentication code (HMAC).
In any aspect of the invention, the computer-implemented method may further include establishing a subscription account for the second entity, including assigning authenticating credentials to the second entity, and the request being received when the second entity subscribes to the first topic via the subscription account.
In one optional aspect of the invention, the decryption key may be assigned to the first topic by the topic-based encryption policy.
本発明の別の態様によれば、パブリッシュ/サブスクライブメッセージ・キューイング・システム(publish/subscribe message queueing system)でのターゲット化ポリシー・ベース暗号化(targeted,policy-based encryption)のためのコンピュータ実装方法が提供され得る。方法は、メッセージ・キューイング・システムによって暗号化メッセージを受信することであって、暗号化ポリシー・システムと、トピック関連の暗号鍵を記憶する鍵管理システムとを参照することによってメッセージが暗号化されている、受信することと、受信したトピック関連の暗号化メッセージを記憶することと、トピックへのサブスクリプション(subscription)に基づいて暗号化メッセージを送ることとを含み得る。 According to another aspect of the invention, a computer-implemented method for targeted, policy-based encryption in a publish / subscribe message queuing system may be provided. The method may include receiving an encrypted message by the message queuing system, where the message is encrypted by reference to an encryption policy system and a key management system that stores topic-associated encryption keys, storing the received topic-associated encrypted message, and sending the encrypted message based on a subscription to the topic.
本発明のさらに別の態様によれば、パブリッシュ-サブスクライブメッセージ・キュー(publish-subscribe message queue)でのターゲット化ポリシー・ベース暗号化のためのシステムが提供され得る。システムは、暗号化メッセージを受信するように適合されたメッセージ・キューイング・システムであって、暗号化ポリシー・システムと、トピック関連の暗号鍵を記憶する鍵管理システムとを参照することによってメッセージが暗号化されている、メッセージ・キューイング・システムと、受信したトピック関連の暗号化メッセージを記憶するための手段と、トピックへのサブスクリプション(subscription)に基づいて暗号化メッセージを送るための手段とを備え得る。 According to yet another aspect of the invention, a system for targeted policy-based encryption in publish -subscribe message queues may be provided that may include a message queuing system adapted to receive encrypted messages, the messages being encrypted by reference to an encryption policy system and a key management system that stores topic-related encryption keys, means for storing the received topic-related encrypted messages, and means for sending the encrypted messages based on subscriptions to the topics.
さらに、別の実施形態は、コンピュータまたは任意の命令実行システムによって、あるいはそれと共に使用するためのプログラム・コードを提供するコンピュータ使用可能媒体またはコンピュータ可読媒体からアクセス可能な、関連するコンピュータ・プログラムの形態を取り得る。この説明では、コンピュータ使用可能媒体またはコンピュータ可読媒体は、命令実行システム、装置、またはデバイスによって、あるいはそれと共に使用するためのプログラムを記憶、通信、伝播、または移送するための手段を含み得る任意の装置であり得る。
さらに、別の実施形態は、コンピュータ実装方法であって、該コンピュータ実装方法が、
メッセージ・キューイング・システム内に記憶するための暗号化を第1のトピックが必要とするかどうかを判定するようにとの要求を第1のエンティティから受信することであって、前記第1のトピックが第1のメッセージに関連付けられている、前記受信することと、
前記第1のエンティティにより、トピック・ベースの暗号化ポリシーを参照することにより、前記第1のトピックが第1の暗号化レベルを必要とすると判定することと、
前記第1のエンティティにより、前記第1の暗号化レベルに従って前記第1のメッセージを暗号化して、暗号化メッセージを生成することと、
前記第1のトピックに従ってメッセージ・キューイング・システム内に前記暗号化メッセージを記憶することと、
前記第1のメッセージを含む前記第1のトピックに関連付けられたメッセージの為のサブスクリプション(subscription for message)を第2のエンティティから受信することと、
前記第2のエンティティにより、前記第1のトピックに関する前記トピック・ベースの暗号化ポリシーに従って、前記暗号化メッセージに対応する復号鍵を識別することと、
前記第2のエンティティにより、前記復号鍵で前記暗号化メッセージを復号して、前記第1のメッセージを再現することと
を含み、
ここで、前記暗号化メッセージがメッセージ認証コードを含み、前記メッセージ認証コードが前記第1の暗号化メッセージの署名者の完全性及び前記第1の暗号化メッセージの完全性を保証する、
前記コンピュータ実装方法が提供される。
本発明の任意の一態様では、前記コンピュータ実装方法は、前記第1のトピックに関連付けられた前記第1のメッセージを前記第1のエンティティから受信することをさらに含みうる。
本発明の任意の一態様では、前記前記メッセージ・キューイング・システムがKafkaシステムである。
本発明の任意の一態様では、前記復号鍵を識別することが、前記トピック・ベースの暗号化ポリシーを参照して、前記第1のトピックに関連付けられたメッセージに関するサブスクリプションが暗号化メッセージを含むかどうかを判定することを含みうる。
本発明の任意の一態様では、前記メッセージ認証コードが前記第2のエンティティによって提供されるときにのみ、前記メッセージに関するサブスクリプションが前記暗号化メッセージを含みうる。
Further, another embodiment may take the form of an associated computer program accessible from a computer usable or computer readable medium providing program code for use by or in connection with a computer or any instruction execution system. In this description, a computer usable or computer readable medium may be any apparatus that may include means for storing, communicating, propagating, or transporting a program for use by or in connection with an instruction execution system, apparatus, or device.
Yet another embodiment is a computer-implemented method, the computer-implemented method comprising:
receiving a request from a first entity to determine whether a first topic requires encryption for storage in a message queuing system, the first topic being associated with a first message;
determining, by the first entity, that the first topic requires a first encryption level by referencing a topic-based encryption policy;
encrypting, by the first entity, the first message according to the first encryption level to generate an encrypted message;
storing the encrypted message in a message queuing system according to the first topic;
receiving from a second entity a subscription for messages associated with the first topic that includes the first message;
identifying, by the second entity, a decryption key corresponding to the encrypted message according to the topic-based encryption policy for the first topic;
decrypting, by the second entity, the encrypted message with the decryption key to recover the first message.
Including,
wherein the encrypted message includes a message authentication code, the message authentication code ensuring the integrity of a signer of the first encrypted message and the integrity of the first encrypted message.
A computer-implemented method is provided.
In any aspect of the invention, the computer-implemented method may further include receiving the first message associated with the first topic from the first entity.
In one optional aspect of the invention, the message queuing system is a Kafka system.
In any aspect of the invention, identifying the decryption key may include referencing the topic-based encryption policy to determine whether a subscription for a message associated with the first topic includes an encrypted message.
In one optional aspect of the invention, a subscription for the message may include the encrypted message only if the message authentication code is provided by the second entity.
本発明の実施形態が様々な主題を参照しながら説明されることに留意されたい。具体的には、いくつかの実施形態が、方法型クレームを参照しながら説明されるのに対して、他の実施形態は、装置型クレームを参照しながら説明される。しかしながら、上記および以下の説明から、別段の通知がない限り、あるタイプの主題に属する特徴の任意の組合せに加えて、相異なる主題に関する特徴の間、具体的には方法型クレームの特徴と、装置型クレームの特徴との間の任意の組合せも本文書内で開示されると見なされることを当業者は推測されよう。 It should be noted that embodiments of the present invention are described with reference to different subject matter. In particular, some embodiments are described with reference to method type claims, whereas other embodiments are described with reference to apparatus type claims. However, from the above and following description, one skilled in the art will infer that, unless otherwise indicated, any combination of features belonging to a type of subject matter, as well as any combination between features relating to different subject matters, in particular between features of method type claims and features of apparatus type claims, is also considered to be disclosed within this document.
上記で定義された態様、および本発明の別の態様は、以下で説明される実施形態の例から明らかであり、実施形態の例を参照しながら説明されるが、本発明は実施形態の例には限定されない。 The above-defined aspects, as well as other aspects of the present invention, will be apparent from and will be explained with reference to the exemplary embodiments described below, to which the present invention is not limited.
本発明のいくつかの実施形態が、単に例として、以下の図面を参照しながら説明される。 Some embodiments of the present invention will now be described, by way of example only, with reference to the following drawings:
パブリッシュ-サブスクライブメッセージ・キューでのターゲット化トピック・ベース暗号化。メッセージの記憶と受信の両方を行うための暗号化ポリシーによって駆動されるトピック・ベースの暗号化が、活動追跡およびロギングを使用して、記憶された暗号化メッセージに関連付けられた一定のトピックの機密性を保証する。発行者と消費者の両方の認証が、暗号鍵および復号鍵が機密に使用されることを保証する。 Targeted topic-based encryption on publish- subscribe message queues. Topic-based encryption, driven by encryption policies for both storing and receiving messages, ensures confidentiality for fixed topics associated with stored encrypted messages, with activity tracking and logging. Authentication of both publishers and consumers ensures that encryption and decryption keys are used confidentially.
メッセージング・システムが、個人情報や財務データなどの非常に機密のデータを移動するとき、規制要件、プライバシー・ポリシー、またはベスト・プラクティス(best practice)、あるいはその組合せのために、メッセージング・サーバでのデータの暗号化がしばしば必要とされ得る。 When messaging systems move highly sensitive data, such as personal or financial data, encryption of the data at the messaging server may often be required due to regulatory requirements, privacy policies, and/or best practices.
いくつかのメッセージング・システムは、メッセージング・サーバを通じて転送されるように意図されるすべてのデータを記憶する。この理由および他の理由で、こうしたメッセージング・システムはデータベースと似ている。このタイプのメッセージング・システムでは、機密情報の完全なセットがメッセージング・サーバ上に存在し、記憶され得るので、暗号化ストレージの必要が高まる。暗号化されない場合、機密データ全体が、許可されないアクセスにさらされ得る。 Some messaging systems store all data that is intended to be transferred through the messaging server. For this and other reasons, such messaging systems resemble databases. This type of messaging system increases the need for encrypted storage, since the complete set of sensitive information may reside and be stored on the messaging server. If not encrypted, the entire sensitive data may be exposed to unauthorized access.
いくつかのメッセージング・システムは、メッセージング・サーバ上に記憶されたデータのネイティブ暗号化をサポートし得る。しかしながら、メッセージング・システムがサーバ上の暗号化ストレージをサポートする場合であっても、データの元の製作者は暗号化の手段、特に暗号鍵を必ずしも管理していない。 Some messaging systems may support native encryption of data stored on the messaging server. However, even if the messaging system supports encrypted storage on the server, the original producer of the data does not necessarily control the means of encryption, especially the encryption keys.
しばしば、静止状態の暗号化(encryption-at-rest)は、メッセージング・サーバ上のディスクまたはファイル・システム暗号化で対処される。こうした手法は、ディスクが紛失または盗難されたときの露出を防止し得るが、ユーザがメッセージング・サーバ上のすべてのファイルに対する読取りおよびアクセス許可を有するとき、通常は復号データへのアクセスを防止しない。したがって、ファイル・システムは、そのようなユーザが読取り許可を所有するので、そのようなユーザに対してデータを復号することになる。このこと、いわゆる「sysadminアタック」を防止するために、ベスト・セキュリティ・プラクティスは、機密データを暗号化すること、すなわち対応する復号鍵でのデータベースまたはアプリケーション・レベルがシステム管理者にアクセスできないことを規定する。 Often encryption-at-rest is addressed with disk or file system encryption on the messaging server. While such an approach may prevent exposure when a disk is lost or stolen, it does not typically prevent access to decrypted data when a user has read and access permissions to all files on the messaging server. Thus, the file system will decrypt the data for such users because they have read permissions. To prevent this, a so-called "sysadmin attack", best security practices dictate that sensitive data be encrypted at the database or application level with the corresponding decryption key not accessible to system administrators.
この説明の文脈では、以下の規約、用語、または表現、あるいはその組合せが使用され得る。 In the context of this description, the following terms, terms or expressions, or combinations thereof, may be used:
「ポリシー・ベースの暗号化」という用語は、規則のリポジトリが、たとえば暗号化ポリシー・データベース内で利用可能であり得ることを示し得る。暗号化ポリシー・データベースを参照し、フラグ、メッセージ・キュー内の特定のトピックに関するメッセージの暗号化の要件を要求することにより、暗号化ポリシー・データベースは、選択されたトピックに関するメッセージが暗号化され、または暗号化しなければならないことを要求側に通知し得る。「メッセージを暗号化すること」は、メッセージをプレーン・テキストとして読むことができなくするプロセスを指すことがあることにも留意されたい。メッセージは、メッセージが復号された後に初めて理解でき得る。 The term "policy-based encryption" may indicate that a repository of rules may be available, for example, in an encryption policy database. By consulting the encryption policy database and requesting a flag, a requirement for encryption of messages on a particular topic in a message queue, the encryption policy database may inform the requestor that messages on the selected topic are or must be encrypted. Note also that "encrypting a message" may refer to the process of making a message unreadable as plain text. A message may only be understandable after it is decrypted.
「暗号化」という用語は広い意味で理解され得ること、すなわちメッセージ完全性および否認防止特性(non-repudiation property)を実現するデジタル署名およびMACなどの他の暗号化演算をも含むことにも留意されたい。 It should also be noted that the term "encryption" may be understood in a broad sense, i.e. to include other cryptographic operations such as digital signatures and MACs that provide message integrity and non-repudiation properties.
「メッセージ・キュー」(またはメッセージング・キュー)という用語は、プロセス間通信を容易にする、または同一プロセス内のスレッド間通信のためのデータ記憶編成を示し得る。それは、メッセージの定義済みシーケンスなどのメッセージのためのキューを使用し得る。このようにして、非同期通信プロトコルが確立され得る。これは、メッセージの送信側と受信側が同時にメッセージ・キューと対話する必要がないことを意味する。送信側によってキュー上に配置されたメッセージはキュー上に記憶され、受信され得、かつ/または受信側がそれを取り出し得る。様々な会社からの、またはオープン・ソース実装としての、より大規模な複数の異なる市販のメッセージ・キューイング・システムが存在し得る。時には、メッセージ・キューイング・システムはメッセージ・ブローカとも示され得る。 The term "message queue" (or messaging queue) may refer to a data storage organization that facilitates inter-process communication or for communication between threads within the same process. It may use a queue for messages, such as a predefined sequence of messages. In this way, an asynchronous communication protocol may be established. This means that the sender and receiver of a message do not need to interact with the message queue at the same time. A message placed on the queue by the sender may be stored on the queue and received and/or retrieved by the receiver. There may be several different commercially available message queuing systems from various companies or on a larger scale as open source implementations. Sometimes a message queuing system may also be denoted as a message broker.
したがって、メッセージ・キューイングは、本明細書では発行者またはメッセージ製作者と示されるメッセージの送信側が、本明細書ではメッセージ消費者と示される特定の受信側に直接送られるようにメッセージをプログラムしないメッセージング・パターンを可能にし得る。この説明の文脈では、「製作者」および「消費者」という用語は、コンピュータを操作する人間のユーザ、またはメッセージ・キューイング・システムのメッセージの生成、暗号化、サブスクライブ(subscribe)、受信、または復号、あるいはその組合せを行うようにプログラム命令に従って動作するコンピュータ・プログラムを指すことがある。その代わりに、発行されたメッセージは、どんなサブスクライバー(subscriber)の知識も用いずに、相異なるクラスまたはトピックに分類され得る。サブスクライバーは、そうしたメッセージ・クラスのうちの1つまたは複数への関心を表し、どのメッセージ製作者がメッセージを生成したかについてのどんな知識も用いずに、特定の注目のトピックなど、サブスクライバーの注目のメッセージのみを受信し得る。 Thus, message queuing may enable messaging patterns in which the sender of a message, denoted herein as a publisher or message producer, does not program the message to be sent directly to a particular receiver, denoted herein as a message consumer. In the context of this description, the terms "producer" and "consumer" may refer to a human user operating a computer or a computer program acting according to program instructions to generate, encrypt, subscribe , receive, and/or decrypt messages in a message queuing system. Instead, published messages may be categorized into different classes or topics without the knowledge of any subscriber . A subscriber may express an interest in one or more of those message classes and receive only messages of interest to the subscriber , such as a particular topic of interest, without any knowledge of which message producer generated the message.
「暗号化メッセージ」という用語は、クリア・テキストで存在していないが、暗号鍵によって符号化されたデータを表し得る。暗号化のための様々な方法が知られている。提案される概念は、選択される暗号化方法とは無関係であり得る。暗号化メッセージは、復号後のクリア・テキストのみで読取り可能である。 The term "encrypted message" may refer to data that is not present in clear text, but is encoded by an encryption key. Various methods for encryption are known. The proposed concept may be independent of the encryption method chosen. An encrypted message is readable only in clear text after decryption.
「暗号化ポリシー・システム」という用語は、メッセージに適用される、たとえばメッセージ・キューイング・システムの所与のトピックを送る、暗号化演算および関連する鍵素材(key material)を定義する情報のポリシー・データベースまたはリポジトリを表し得る。具体的には、権限のないアクセスに対して保護すべき各トピックについて、以下の情報のうちの少なくともいくつかを詳述するレコードが存在し得る。(i)メッセージ・サーバ・アドレス、(ii)トピック名、(iii)トピック識別子、(iv)暗号化アルゴリズム、(v)暗号化/復号ステップ、(vi)暗号スイート(cipher suite)(たとえば、それぞれのアプリケーション・プログラミング・インターフェース)、(vii)鍵管理サービス、(viii)サービス・アドレス、(ix)鍵識別子、または(x)暗号化/復号のための任意選択の初期化情報、あるいはその組合せ。 The term "encryption policy system" may refer to a policy database or repository of information defining the encryption operations and associated key material to be applied to messages, e.g., sent to a given topic of a message queuing system. Specifically, for each topic to be protected against unauthorized access, there may be a record detailing at least some of the following information: (i) message server address, (ii) topic name, (iii) topic identifier, (iv) encryption algorithm, (v) encryption/decryption steps, (vi) cipher suite (e.g., respective application programming interface), (vii) key management service, (viii) service address, (ix) key identifier, and/or (x) optional initialization information for encryption/decryption.
「鍵管理システム」という用語は、具体的にはメッセージについての非対称暗号化、または対称暗号化/復号のための、暗号鍵と復号鍵の対についての記憶システムを示し得る。鍵管理システムは、(メッセージ送信側の)暗号化ポリシー・システムの選択された規則に基づいて、または(メッセージ消費者側の)選択されたトピックに基づいて特定の暗号鍵を提供し得る。 The term "key management system" may specifically refer to a storage system for pairs of encryption and decryption keys for asymmetric encryption or symmetric encryption/decryption of messages. A key management system may provide specific encryption keys based on selected rules of an encryption policy system (for message senders) or based on selected topics (for message consumers).
「サブスクリプション」という用語は、指定のクラスまたはトピックのメッセージに対する示された関心を示し得る。サブスクリプションを有するメッセージ消費者は、トピックまたはクラスによってメッセージ・キュー内に記憶されたメッセージを受信し得る。 The term " subscription " may refer to a expressed interest in messages of a specified class or topic. A message consumer with a subscription may receive messages stored in a message queue by the topic or class.
「トピック」という用語は、複数のメッセージについてのテーマまたはヘッドラインを示し得る。トピックは、たとえば、同一または類似の内容に関する、特定の時間枠に関する、かつ/または著者に関する様々な規則に従って編成され得る。 The term "topic" may refer to a theme or headline for multiple messages. Topics may be organized according to various rules, for example, about the same or similar content, about a particular time frame, and/or about authors.
特にバージョン0.9.0以上の、「Kafka」という用語(またはKafkaシステム)は、Apache Software Foundationが所有する既知のオープン・ソース・ストリーム処理ソフトウェア・プラットフォームを示し得る。Kafkaは、リアル・タイム・データ・フィードを処理するための、統一された高スループット低待ち時間プラットフォームを提供することを目的としている。Kafkaはまた、受信したメッセージをトピックに編成し、それを関連するデータベースに記憶するメッセージ・キューイング・システムとしても使用され得る。Kafkaシステムに加えて、提案される方法および関連するシステムは、他のメッセージ・キューイング・システムと共に実装され得る。(注:「KAFKA」、「APACHE」、および「APACHE SOFTWARE FOUNDATION」という用語は、世界中の様々な管轄区域内で商標権の対象となり得、ここでは、そのような商標権が存在し得る範囲で標章によって適切に命名された製品またはサービスに関してのみ用いられる)。 The term "Kafka" (or the Kafka system), particularly version 0.9.0 and above, may refer to a known open source stream processing software platform owned by the Apache Software Foundation. Kafka aims to provide a unified, high-throughput, low-latency platform for processing real-time data feeds. Kafka may also be used as a message queuing system that organizes received messages into topics and stores them in an associated database. In addition to the Kafka system, the proposed method and related system may be implemented with other message queuing systems. (Note: The terms "KAFKA", "APACHE", and "APACHE SOFTWARE FOUNDATION" may be subject to trademark rights in various jurisdictions throughout the world and are used herein only with respect to products or services appropriately named by the marks to the extent such trademark rights may exist).
「メッセージ製作者」という用語は、メッセージの発信者(または発信者操作システム(originator operated system))を示し得る。発信者は発行者としても示され得る。 The term "message producer" may refer to the originator (or originator operated system) of a message. The originator may also be referred to as the publisher.
「メッセージ消費者」という用語は、メッセージの受信側を示し得る。「(メッセージ)製作者」および「(メッセージ)消費者」という用語はKafkaシステムに関係し得ることに留意されたい。 The term "message consumer" may refer to the recipient of a message. Note that the terms "(message) producer" and "(message) consumer" may relate to the Kafka system.
本発明のいくつかの実施形態は、現況技術に関して以下の事実、潜在的問題、または改良のための潜在的領域、あるいはその組合せを認識する:(i)ネットワーク構成ポリシーを伝播する従来型システムがメッセージ・ブローカ・システムでのトピック関連のメッセージのエンドツーエンド暗号化を可能にせず、したがってsysadminアタックが依然として不可避であり得、したがって、特にメッセージ・キューイング・システム内のデータを保護することに関する、従来のメッセージ・キューイング・システムでのこうした欠点を克服する必要があり得る;(ii)製作者からメッセージ・キューイング・システムに送信されたメッセージを復号することなく、製作者から消費者へのエンドツーエンド・データ保護が保証され得る。メッセージ・キューイング・サーバ上のデータベース内に記憶されたメッセージが暗号化されたままであり、データベース内に暗号化形式で記憶され、したがってセキュリティ・ポリシーに従って暗号化を必要とし、メッセージ・キューイング・システムによって受信されるメッセージは、権限のない人員(または権限のないシステム)によって常にアクセス不能となる;(iii)メッセージ・キューイング・システム、暗号化ポリシー・システム、および関連する鍵管理システム、またはサービス、あるいはその組合せは、パブリッシュ/サブスクライブ環境でのトピック関連のメッセージのセキュリティ側面の固有の制御を可能にし得る;(iv)メッセージ・キューイング・サーバの管理者は、データベース内のトピックに対する読取り許可から管理者を除外し得る暗号化ポリシー・システムに従って、メッセージ・キューイング・システムのデータベース内の指定のトピックで暗号化メッセージにアクセスすることから除外され得る;(v)制御は単にメッセージ製作者に委任されるのではなく、メッセージ製作者が暗号化ポリシー・システムに関係するが、必ずしも暗号化ポリシー・システムと同一ではない鍵管理システムまたはサービスに暗号鍵を単に要求し得るような方式で、独立してメッセージ製作者およびメッセージ受信側についての規則を定義し得る暗号化ポリシー・システムによって制御され、次いで、メッセージ・キューイング・システムにメッセージを送信する前に、メッセージがメッセージ製作者の側で暗号化され得る(たとえば、許可に応じて、次いでメッセージの復号が、消費者側のみで復号され得、したがってメッセージが、メッセージ製作者からメッセージ受信側まで決して暗号化されないままとならないことができる);(vi)メッセージがトピック関連のメッセージとしてメッセージ・キューイング・システム内に記憶され得、したがって、メッセージ・キューイング・システムのデータベース内の暗号化を必要とするトピックと、どんな暗号化も要求することのできない他のトピックがあり得る;かつ/または(vii)メッセージの製作者または暗号化データベース・システム鍵ユーザ(encryption database system key user)あるいはその両方が、暗号化/復号プロセスの完全な制御にとどまり得、その結果、暗号化はメッセージ・キューイング・システム・オペレータのオペレータに委任されない(たとえば、Kafkaのような標準メッセージ・キューイング・システムのオペレータが使用され得、同時に、トピック内のメッセージの暗号化が保証され得る)。 Some embodiments of the present invention recognize the following facts, potential problems, and/or potential areas for improvement with respect to the current state of the art: (i) traditional systems for propagating network configuration policies do not enable end-to-end encryption of topic-related messages in message broker systems, and thus sysadmin attacks may still be inevitable, and therefore there may be a need to overcome these shortcomings in traditional message queuing systems, particularly with regard to protecting data within the message queuing system; (ii) end-to-end data protection from producer to consumer can be guaranteed without decrypting messages sent from the producer to the message queuing system. Messages stored in the database on the message queuing server remain encrypted, and messages that are stored in the database in encrypted form and therefore require encryption in accordance with the security policy and are received by the message queuing system are always inaccessible to unauthorized personnel (or unauthorized systems); (iii) the message queuing system, encryption policy system, and associated key management systems or services, or combinations thereof, may allow inherent control of security aspects of topic-related messages in a publish / subscribe environment; (iv) administrators of the message queuing server may be excluded from accessing encrypted messages on specified topics in the message queuing system's database in accordance with the encryption policy system, which may exclude administrators from read permissions for topics in the database; (v) control is not simply delegated to the message producer, but rather the message producer may control encryption. (vi) messages may be stored within the message queuing system as topic-related messages, and thus there may be topics that require encryption in the message queuing system's database and other topics that may not require any encryption; and/or (vii) messages may be encrypted at the message producer's side before sending the message to the message queuing system (e.g., depending on permissions, the message may then be decrypted only at the consumer side, such that the message never remains unencrypted from the message producer to the message recipient); (vii) messages may be stored within the message queuing system as topic-related messages, and thus there may be topics that require encryption in the message queuing system's database and other topics that may not require any encryption; and/or (vii) messages may be encrypted at the message producer's side or the encryption database system key user's side, such that the message producer may simply request an encryption key from a key management system or service that is related to, but not necessarily identical to, the encryption policy system; The encryption/decryption process may be maintained by the message queuing system key user, the message queuing system administrator, or both, so that encryption is not delegated to a message queuing system operator (e.g., a standard message queuing system operator such as Kafka may be used and at the same time ensure encryption of messages in the topic).
以下では、図の詳細な説明が与えられる。図のすべての命令は概略的なものである。まず、パブリッシュ-サブスクライブメッセージング・キューでのターゲット化ポリシー・ベース暗号化のための本発明のコンピュータ実装方法の一実施形態のブロック図が与えられる。後に、別の実施形態、ならびにパブリッシュ-サブスクライブメッセージング・キューでのターゲット化ポリシー・ベース暗号化のためのシステムの実施形態が説明される。 In the following, a detailed description of the figures is provided. All diagrammatic representations are schematic. First, a block diagram of one embodiment of the inventive computer-implemented method for targeted policy-based encryption on publish- subscribe messaging queues is provided. Later, alternative embodiments are described, as well as an embodiment of a system for targeted policy-based encryption on publish- subscribe messaging queues.
図1は、具体的にはトピック・レベルをターゲットとする、パブリッシュ-サブスクライブメッセージ・キューでのターゲット化ポリシー・ベース暗号化のための第1の実施形態の方法100のフローチャートである。メッセージ・キューは、Kafkaシステム、または別の現在知られている、もしくは開発されるメッセージング・システムを使用して実装され得る。方法は、メッセージ・キューイング・システムによって暗号化メッセージを受信すること(102)を含む。それによって、メッセージが、具体的にはメッセージ製作者または関連するメッセージ生成システムにより、暗号化ポリシー・システムおよびトピック関連の暗号鍵を記憶する鍵管理システムを参照することによって暗号化されている。代替として、ポリシー・ベースの暗号化がクラス・レベルをターゲットとする。
1 is a flow chart of a
方法100はまた、受信したトピック関連の暗号化メッセージを記憶すること(104)と、具体的にはメッセージ消費者の要求時にパブリッシュ/サブスクライブ式に、メッセージが関係するトピックへのサブスクリプションに基づいて暗号化メッセージを送ること(106)とを含む。代替として、メッセージ・クラスの概念は、メッセージを編成するため、およびサブスクリプションのための基盤である。本開示では、クラスという用語は、メッセージの緊急性、分類されたステータス、インサイトフルネス(insightfulness)のレベルなどの、トピックとは直ちに理解されないことのある特徴を含む。
The
図2は、図1の第1の実施形態の方法をサポートする第1の実施形態のシステム200の概略図である。メッセージ製作者202は、特定のトピックに関するメッセージを暗号化しなければならないかどうかを判定するために、暗号化ポリシー・システム210の暗号化ポリシーを参照する。メッセージ製作者202は、鍵管理システム212からメッセージについての暗号鍵を、並列に、または要求時に受信し、鍵管理システムはアクセス制御モジュール213を介してアクセスを許可する。この例では、メッセージ製作者は、鍵管理API(アプリケーション・プログラミング・インターフェース)214を使用して鍵管理システムと対話し得る。鍵管理システムおよび暗号化ポリシー・システムは、アクセス制御モジュール211および213を介して、鍵アクセス・トランザクションおよびロギング・システム216に対するポリシー変更を記録する。記録は、受信した要求、受諾、拒否、対応するタイム・スタンプ、許可レベル、探索したトピック、または提供した鍵、あるいはその組合せを含み得る。鍵管理システムはまた、製作者および消費者についての特定のトピックに対するアクセス制御を管理し得る。次いで、メッセージ(図示せず)が、メッセージ製作者204の暗号化インターフェース203によって暗号化される特定の暗号化形式で、指定のトピックまたはクラスとして暗号化形式でファイル・システム206内にメッセージを記憶するためのメッセージ・ブローカ204に送られる。本発明のいくつかの実施形態では、ファイル・システム206はKafkaクラスタの形態である。本発明のいくつかの実施形態では、暗号化および復号はブローカ・レベルで、たとえばブローカ204内で実施され、その結果、鍵アクセスがブローカで統合される。パブリッシュ/サブスクライブモードでは、ブローカ204は、消費者208によってサブスクライブされたトピックに関する暗号化メッセージを消費者に送る。メッセージを受信したことに応答して、消費者208は、暗号化ポリシー・システム210と共にチェックして、サブスクライブされたトピックに関するメッセージが暗号化されるかどうかを判定する。暗号化される場合、消費者は、要求時に前述の暗号鍵に関する復号鍵を受信し、サブスクライブされたトピックを、鍵管理システム212に対する入力パラメータとして使用して要求が行われる。暗号化/復号が対称(暗号鍵と暗号鍵が同一)または非対称(たとえば、公開鍵インフラストラクチャのように暗号鍵と復号鍵が異なる)であり得ることに留意されたい。暗号化/復号機構はAES-256 Advanced Security Standardに準拠し得、鍵は任意の他の適切な暗号化規格と互換であり得る。本発明のいくつかの実施形態では、ブローカはメッセージ・キューイング・システムである。本発明のいくつかの実施形態では、鍵管理システムは鍵管理サービスとして動作する。 Figure 2 is a schematic diagram of a first embodiment system 200 supporting the method of the first embodiment of Figure 1. A message producer 202 consults an encryption policy in an encryption policy system 210 to determine whether a message on a particular topic must be encrypted. The message producer 202 receives an encryption key for the message from a key management system 212, either in parallel or on demand, which grants access via an access control module 213. In this example, the message producer may interact with the key management system using a key management API (application programming interface) 214. The key management system and the encryption policy system record key access transactions and policy changes to a logging system 216 via access control modules 211 and 213. The records may include requests received, acceptances, rejections, corresponding time stamps, permission levels, topics sought, and/or keys provided. The key management system may also manage access control to particular topics for producers and consumers. The message (not shown) is then sent in a particular encrypted format encrypted by the encryption interface 203 of the message producer 204 to the message broker 204 for storing the message in encrypted format in the file system 206 as a specified topic or class. In some embodiments of the invention, the file system 206 is in the form of a Kafka cluster. In some embodiments of the invention, encryption and decryption are performed at the broker level, e.g., in the broker 204, so that key access is consolidated at the broker. In a publish / subscribe mode, the broker 204 sends encrypted messages to the consumer on topics subscribed to by the consumer 208. In response to receiving the message, the consumer 208 checks with the encryption policy system 210 to determine whether the message on the subscribed topic is encrypted. If encrypted, the consumer receives a decryption key for said encryption key on the request, and the request is made using the subscribed topic as an input parameter to the key management system 212. Note that encryption/decryption can be symmetric (encryption key and encryption key are the same) or asymmetric (e.g., encryption key and decryption key are different, such as in a public key infrastructure). The encryption/decryption mechanism may conform to the AES-256 Advanced Security Standard, and the keys may be compatible with any other suitable encryption standard. In some embodiments of the invention, the broker is a message queuing system. In some embodiments of the invention, a key management system acts as the key management service.
復号鍵の受信時に、メッセージ消費者は、メッセージ消費者208の復号インターフェース209と、受信した復号鍵(図示せず)とを使用して、受信したメッセージ(図示せず)を復号する。 Upon receiving the decryption key, the message consumer decrypts the received message (not shown) using the decryption interface 209 of the message consumer 208 and the received decryption key (not shown).
図3は、図2の第1の実施形態のシステムを使用して第1の実施形態の方法の少なくとも部分を実装するための活動を含むプロセス300のフローチャートである。初期ステップ302では、メッセージ製作者、または単に製作者は、ブローカ204を介して、サブスクライブしたトピックが割り当てられたメッセージをファイル・システム206に送るために準備する。送信前に、製作者は、サブスクライブしたトピックを入力変数として用いて暗号化ポリシー・システム210に照会する(304)。この例では、サブスクライブしたトピックが、暗号化ポリシー・システムまたはデータベースに従って暗号化を必要とすることが判明する。次いで製作者は、暗号化ポリシーで参照される暗号鍵を鍵管理システム212に要求する。鍵管理サービスでのアクセス制御ポリシーが製作者についての鍵へのアクセスを許可する、すなわち製作者が指定のトピックに対するメッセージをファイル・システムに送ることが許可されると仮定すると、製作者への要求応答で、鍵が鍵管理サービスによって返される。 3 is a flow chart of a process 300 including activities for implementing at least a portion of the method of the first embodiment using the system of the first embodiment of FIG. 2. In an initial step 302, a message producer, or simply producer, prepares a message assigned a subscribed topic for sending to the file system 206 via the broker 204. Before sending, the producer queries the encryption policy system 210 using the subscribed topic as an input variable (304). In this example, it is found that the subscribed topic requires encryption according to an encryption policy system or database. The producer then requests an encryption key referenced in the encryption policy from the key management system 212. Assuming that the access control policy at the key management service allows access to the key for the producer, i.e., the producer is allowed to send a message for the specified topic to the file system, the key is returned by the key management service in the request response to the producer.
同時に、製作者による鍵要求が、ロギング・システム216内の監査トレイル(audittrail)に記録される。 At the same time, the producer's key request is recorded in an audit trail in the logging system 216.
次に、306で、製作者は、鍵管理システムから取り出した鍵を使用して発信メッセージ本文を暗号化し、メッセージが、ブローカ204を介して指定のトピック下のファイル・システム206に送られる。ブローカは、メッセージを受信し(308)、暗号化形式でファイル・システムのターゲット化トピック内にメッセージを記憶する。 The producer then encrypts 306 the outgoing message body using a key retrieved from the key management system, and the message is sent via the broker 204 to the file system 206 under the specified topic. The broker receives (308) the message and stores it in encrypted form within the targeted topic in the file system.
次いで、ブローカは、指定のトピックのメッセージに関して消費者から要求を受信する(310)。消費者要求は、ロギング・システム216などのメッセージ・ロギング・システム内に記憶される。ロギング・システムは、アクセス制御モジュール213によって鍵管理システム212に、アクセス制御モジュール211によって暗号化ポリシー・システム210に単一のシステムとして関連付けられ、それによって、ポリシーおよびアクセスが同一のシステム内で追跡される。代替として、別々のロギング・システムが2つのシステムに関連付けられ得る。ブローカは、ステップ308で製作者から受信したメッセージを送ることによって要求に応答する。ステップ314で、消費者は、指定のトピックが割り当てられたメッセージを暗号化形式で受信する。 The broker then receives (310) a request from the consumer for a message on the specified topic. The consumer request is stored in a message logging system, such as logging system 216. The logging system is associated with key management system 212 by access control module 213 and with encryption policy system 210 by access control module 211 as a single system, so that policies and access are tracked within the same system. Alternatively, separate logging systems may be associated with the two systems. The broker responds to the request by forwarding the message received from the producer in step 308. In step 314, the consumer receives the message in encrypted form with the specified topic assigned.
次いで、消費者は、暗号化ポリシー・データベース・システムをチェックまたは照会して(316)、トピックに関するメッセージが暗号化されるかどうかを判定し、そうである場合、メッセージを復号するのに必要とされる鍵を鍵管理システムに要求する。消費者が鍵管理システムから復号鍵を受信した(318)後、消費者システムは受信したメッセージを復号する。事前に(upfront)、鍵管理システムまたは暗号化ポリシー・システムで、消費者は、アクセス制御ポリシーに従って、復号鍵を受信するように許可されることが確認されている。要求側の消費者は、それぞれの監査サービス、活動トラッカ、ロギング・システム、または順序トレイル(ordered trail)、あるいはその組合せが禁止されることに留意されたい。最後に、消費者は、鍵管理システムから受信した鍵を使用してメッセージを復号する。 The consumer then checks or queries (316) the encryption policy database system to determine if the message on the topic is encrypted, and if so, requests the key needed to decrypt the message from the key management system. After the consumer receives (318) the decryption key from the key management system, the consumer system decrypts the received message. Upfront, the key management system or encryption policy system has verified that the consumer is authorized to receive the decryption key according to the access control policy. Note that the requesting consumer is barred from the respective audit service, activity tracker, logging system, and/or ordered trail. Finally, the consumer decrypts the message using the key received from the key management system.
完全性のために、図4は、パブリッシュ/サブスクライブメッセージ・キューでのターゲット化ポリシー・ベース暗号化のための第1の実施形態のシステムのマシン・ロジック(たとえば、ソフトウェア)部分400の概略図である。マシン・ロジック部分は、暗号化メッセージを受信するように適合されたメッセージ・キューイング・システム402を備え、暗号化ポリシー・システム404と、トピック関連の暗号鍵を記憶する鍵管理システム406とを参照することによってメッセージが暗号化されている。さらに、暗号化システム410などの製作者の暗号化システムによってメッセージが暗号化され得る。 For completeness, Figure 4 is a schematic diagram of a machine logic (e.g., software) portion 400 of a first embodiment system for targeted policy-based encryption in publish / subscribe message queues. The machine logic portion comprises a message queuing system 402 adapted to receive encrypted messages, the messages being encrypted by reference to an encryption policy system 404 and a key management system 406 that stores topic-related encryption keys. Additionally, messages may be encrypted by a producer's encryption system, such as encryption system 410.
マシン・ロジック部分はまた、受信したトピック関連の暗号化メッセージをデータベース408内に記憶するための手段を備え得、すなわちメッセージのあるグループが、あるトピックの下で記憶され、またはあるトピックに関係付けられ得、別のグループが、別のトピック内に記憶され、または別のトピックに関係付けられ得る。データベース408がメッセージ・キューイング・システム402にリンクされ得、またはメッセージ・キューイング・システム402の物理的部分であり得る。 The machine logic portion may also comprise means for storing received topic-related encrypted messages in a database 408, i.e., one group of messages may be stored under or associated with one topic and another group may be stored within or associated with another topic. The database 408 may be linked to the message queuing system 402 or may be a physical part of the message queuing system 402.
最後に、マシン・ロジック部分は、メッセージの割り当てられたトピックへのサブスクライブに基づいて消費者に暗号化メッセージを送るための手段を備える。送信は、復号システム412などの復号システムを備えるメッセージ受信側(ここでは図示せず)に向けられ得る。 Finally, the machine logic portion comprises means for sending encrypted messages to consumers based on their subscription to the message's assigned topic. The transmissions may be directed to a message recipient (not shown here) that comprises a decryption system, such as decryption system 412.
本発明のいくつかの実施形態は、以下の特徴、特性、または利点、あるいはその組合せのうちの1つまたは複数を含み得る:(i)メッセージ・キューイング・システムは、特にバージョン0.9.0以上のKafkaシステムであり得、本発明の様々な実施形態を実施するとき、任意の他のメッセージ・キューイング・システムが配置され得る;(ii)本発明の方法は、基礎となるメッセージ・キューイング・システムに非依存であり得る;(iii)方法はまた、トピック関連のメッセージを送る前に、メッセージ製作者により、暗号化ポリシー・システムを参照することを含み得、それによって、メッセージ製作者は、特定のトピックに関するメッセージについての暗号化が、暗号化されるべきであるかどうかをメッセージ・キューイング・システムに送る前に判定し得る;(iv)方法は、メッセージ製作者により、暗号化ポリシー・データベースがトピック関連のメッセージの暗号化を、すなわち選択されたトピックに基づいて実施する規則を含むと判定したとき、メッセージ製作者によって鍵管理システムに(たとえば、セキュア・アクセス方法を使用して)暗号鍵が要求されていることがある場合に、メッセージ製作者が暗号鍵を受信するように許可される場合、鍵管理システムから暗号鍵を受信することを含み得る;(v)鍵管理システムと暗号化ポリシー・システムが同一のセキュリティ・システム内で実装され得る(たとえば、鍵管理システムは暗号化ポリシー・システムのサービスであり得、それによって、セキュリティ規則と、暗号化および復号のための関連する鍵の中央制御、具体的にはメッセージ・キューイング・システム・オペレータの制御の外側の中央制御が実現され得る);かつ/または(vi)鍵管理システムおよび暗号化ポリシー・システムが異なる場所でアクセス可能であり得る(たとえば、暗号化データベース・システムおよび鍵管理システムが、互いに独立して実装され得、したがってセキュリティ・アーキテクチャが、実現されるセキュリティ・レベルをさらに向上させ得る)(暗号化データベース・システムおよび鍵管理システムにアクセスするために、異なる認証方法を使用しなければならないことがあることに留意されたい)。 Some embodiments of the present invention may include one or more of the following features, characteristics, or advantages, or combinations thereof: (i) the message queuing system may be a Kafka system, particularly version 0.9.0 or higher, although any other message queuing system may be deployed when implementing various embodiments of the present invention; (ii) the method of the present invention may be independent of the underlying message queuing system; (iii) the method may also include consulting an encryption policy system by the message producer before sending a topic-related message, whereby the message producer may determine whether encryption for a message relating to a particular topic should be encrypted before sending it to the message queuing system; (iv) the method may include consulting an encryption policy database by the message producer to a key management system (e.g., a secure key management system) when the message producer determines that the encryption policy database contains rules to implement encryption of topic-related messages, i.e., based on a selected topic; - It may include receiving an encryption key from a key management system if an encryption key may have been requested (using an access method) and the message producer is authorized to receive the encryption key; (v) the key management system and the encryption policy system may be implemented within the same security system (e.g., the key management system may be a service of the encryption policy system, thereby realizing centralized control of security rules and associated keys for encryption and decryption, specifically outside the control of the message queuing system operator); and/or (vi) the key management system and the encryption policy system may be accessible at different locations (e.g., the encryption database system and the key management system may be implemented independently of each other, thus further increasing the security level achieved by the security architecture) (note that different authentication methods may have to be used to access the encryption database system and the key management system).
本発明のいくつかの実施形態は、以下の特徴、特性、または利点、あるいはその組合せのうちの1つまたは複数を含み得る:(i)メッセージ消費者が、メッセージ・キューイング・システムからの暗号化メッセージと非暗号化メッセージとを区別することが可能にされ得、メッセージ受信側が、それらを別々に処理することが可能にされないことがある場合、送られたメッセージ、具体的にはメッセージ・キューイング・システムから送られたメッセージをメッセージ消費者によって受信したとき、暗号化ポリシー・システムを参照し、受信したメッセージが暗号化されたかどうかを判定する操作;(ii)メッセージが暗号化された暗号鍵に復号鍵が関係付けられるべきであり、鍵がトピックによって記憶され得るので、メッセージ受信側がトピックを参照することによって復号鍵を要求し得、次いでメッセージ受信側は、受信した復号鍵を使用して、受信したメッセージを復号し得る場合、受信したメッセージが暗号化されると判定したとき、具体的には関連する要求の後に、メッセージ消費者によって、具体的には鍵管理システムから、復号鍵を受信する操作;(iii)暗号化/復号鍵が対称暗号化または非対称暗号化のために使用され得る;(iv)暗号化ポリシー・システムへのアクセスを記録する操作;(v)セキュア監査トレイルが暗号化ポリシー・システムについて、ならびに鍵管理システムについて確立され得、すべてのアクセス、鍵検索、および変更が、無許可ユーザまたはシステムのアクセス試行を含む任意の時点でトレース可能であり得るような、鍵管理システムへのアクセスを記録する操作;(vi)メッセージ消費者に送られたメッセージが復号された(たとえば、特定の識別可能なユーザによって読取り可能にされた)かどうか、すべてのアクセス、鍵検索、および変更が追跡され得る;(vii)メッセージ・キューイング・システムによって受信された暗号化メッセージがデジタルに署名され得る;かつ/または(viii)メッセージ・キューイング・システムによって受信された暗号化メッセージが、暗号化メッセージの署名者の完全性、ならびにメッセージの完全性を保証するために、メッセージ認証コード、具体的にはHMAC(keyed-HashMessage Authentication Code)を含む(たとえば、メッセージ製作者からメッセージ消費者への経路上でビットが変更されていないことが証明され得る)。前記メッセージ認証コードが前記第2のエンティティによって提供されるときにのみ、前記メッセージに関するサブスクリプションが前記第1の暗号化メッセージを含みうる。 Some embodiments of the invention may include one or more of the following features, characteristics, or advantages, or combinations thereof: (i) an operation of consulting an encryption policy system when a sent message, specifically a message sent from a message queuing system, is received by a message consumer to determine whether the received message is encrypted, where a message consumer may be enabled to distinguish between encrypted and unencrypted messages from a message queuing system and a message receiver may not be enabled to process them separately; (ii) receiving a decryption key by a message consumer, specifically from a key management system, upon determining that the received message is encrypted, specifically following an associated request, where a decryption key should be associated with the encryption key with which the message was encrypted and the key may be stored by a topic, such that the message receiver may request the decryption key by consulting the topic, and the message receiver may then use the received decryption key to decrypt the received message; (iii) encryption/decryption keys may be used for symmetric or asymmetric encryption; (iv) logging access to the encryption policy system; (v) logging access to the key management system such that a secure audit trail may be established for the encryption policy system, as well as for the key management system, and all accesses, key retrievals, and modifications may be traceable at any time, including unauthorized users or attempts to access the system; (vi) all accesses, key retrievals, and modifications may be tracked, whether a message sent to a message consumer has been decrypted (e.g., made readable by a specific identifiable user); (vii) encrypted messages received by the message queuing system may be digitally signed; and/or (viii) encrypted messages received by the message queuing system include a message authentication code, specifically a keyed-Hash Message Authentication Code (HMAC), to ensure the integrity of the signer of the encrypted message, as well as the integrity of the message (e.g., it may be proven that no bits have been altered on the path from the message producer to the message consumer). A subscription for the message may include the first encrypted message only if the message authentication code is provided by the second entity.
図5は、本発明による第2の方法を示すフローチャート600を示す。 Figure 5 shows a flowchart 600 illustrating a second method according to the present invention.
処理はステップS602から始まり、鍵管理システムが第1の暗号化レベルを判定する。暗号化レベルは、暗号化のタイプまたは程度あるいはその両方を指す。暗号化レベルは、暗号化ポリシーに従ってトピック・ベースのリスト上で与えられる。メッセージの関連するトピックに従ってメッセージが暗号化される。 The process begins in step S602, where the key management system determines a first encryption level. The encryption level refers to the type and/or degree of encryption. The encryption levels are provided on a topic-based list according to an encryption policy. Messages are encrypted according to their associated topic.
処理はステップS604に進み、鍵管理システムは、Kafkaなどのメッセージ・キューイング・システムのファイル・システム内にメッセージを記憶したいユーザに暗号鍵を提供する。本発明のいくつかの実施形態では、鍵が提供される前にユーザが認証されなければならないように鍵アクセスが制御される。 Processing continues at step S604, where the key management system provides an encryption key to a user who wishes to store a message in the file system of a message queuing system such as Kafka. In some embodiments of the invention, key access is controlled such that a user must be authenticated before a key is provided.
処理はステップS606に進み、鍵管理システムは暗号化メッセージを記憶する。ユーザは、所与のトピックに関連付けられたメッセージを暗号化し、メッセージ・キューイング・システムのファイル・システム内に暗号化メッセージを記憶するためにブローカに暗号化メッセージを提供する。 Processing continues at step S606 where the key management system stores the encrypted message. A user encrypts a message associated with a given topic and provides the encrypted message to a broker for storage in the file system of the message queuing system.
処理はステップS608に進み、鍵管理システムは、暗号化メッセージを求める要求を受信する。消費者は、メッセージ・キューイング・システムにサブスクライブし、注目のいくつかのトピックを選択し得る。サブスクライブされたトピックに関連付けられたメッセージが記憶されるとき、消費者はメッセージを要求し得る。本発明のいくつかの実施形態では、消費者は、特定のトピックに関するメッセージの通知を受信し、通知後に要求をサブミットする。代替として、特定のトピックにサブスクライブしている各消費者について要求が自動的に生成される。 Processing continues at step S608, where the key management system receives a request for an encrypted message. A consumer may subscribe to the message queuing system and select a number of topics of interest. When messages associated with the subscribed topics are stored, the consumer may request the messages. In some embodiments of the invention, the consumer receives notification of messages on a particular topic and submits the request after notification. Alternatively, a request is generated automatically for each consumer subscribed to a particular topic.
処理はステップS610に進み、鍵管理システムは、暗号化メッセージに対応する復号鍵を識別する。特定のトピックに関する所与のメッセージについて、暗号化ポリシー・システムを介して復号鍵が識別され得るように、復号鍵がトピックに従って記憶される。前記復号鍵を識別することが、前記トピック・ベースの暗号化ポリシーを参照して、前記第1のトピックに関連付けられたメッセージに関するサブスクリプションが前記第1の暗号化メッセージを含むかどうかを判定することを含みうる。 The process continues at step S610, where the key management system identifies a decryption key corresponding to the encrypted message. The decryption keys are stored according to topic, such that for a given message on a particular topic, a decryption key may be identified via an encryption policy system. Identifying the decryption key may include referencing the topic-based encryption policy to determine whether a subscription for a message associated with the first topic includes the first encrypted message.
処理はステップS612で終了し、鍵管理システムは、暗号化メッセージおよび対応する復号鍵を消費者に送る。本発明のいくつかの実施形態では、暗号化メッセージが消費者に送られ、復号鍵が必要であると判定したとき、復号鍵が消費者に送られる。代替として、消費者は暗号化メッセージを受信し、メッセージを復号するために復号鍵を要求する。 Processing ends in step S612, where the key management system sends the encrypted message and the corresponding decryption key to the consumer. In some embodiments of the invention, the decryption key is sent to the consumer when the encrypted message is sent to the consumer and it is determined that a decryption key is required. Alternatively, the consumer receives the encrypted message and requests the decryption key to decrypt the message.
本発明の実施形態は、プログラム・コードを記憶または実行あるいはその両方を行うのに適しているプラットフォームの如何に関わらず、ほぼ任意のタイプのコンピュータと共に実装され得る。図6は、一例として、提案される方法に関するプログラム・コードを実行するのに適したコンピューティング・システム500を示す。 Embodiments of the present invention may be implemented in conjunction with virtually any type of computer, regardless of the platform suitable for storing and/or executing program code. Figure 6 shows, by way of example, a computing system 500 suitable for executing program code relating to the proposed method.
コンピューティング・システム500は、適切なコンピュータ・システムの一例に過ぎず、コンピュータ・システム500を実装することができ、またはコンピュータ・システム500が前述の機能のいずれかを実施することができ、あるいはその両方であるかどうかに関わらず、本明細書で説明される発明の実施形態の使用または機能の範囲に関する何らかの限定を示唆するものではない。コンピュータ・システム500では、多数の他の汎用または専用コンピューティング・システム環境または構成と共に動作可能である構成要素がある。コンピュータ・システム/サーバ500と共に使用するのに適していることがある周知のコンピューティング・システム、環境、または構成、あるいはその組合せの例には、限定はしないが、パーソナル・コンピュータ・システム、サーバ・コンピュータ・システム、シン・クライアント、シック・クライアント、ハンドヘルドまたはラップトップ・デバイス、マルチプロセッサ・システム、マイクロプロセッサ・ベースのシステム、セット・トップ・ボックス、プログラマブル・コンシューマ・エレクトロニクス、ネットワークPC、ミニコンピュータ・システム、メインフレーム・コンピュータ・システム、および上記のシステムまたはデバイスのいずれかを含む分散型クラウド・コンピューティング環境などが含まれる。コンピュータ・システム/サーバ500は、コンピュータ・システム500によって実行中の、プログラム・モジュールなどのコンピュータ・システム実行可能命令の一般的な文脈で説明され得る。一般に、プログラム・モジュールは、特定のタスクを実施し、または特定の抽象データ・タイプを実装するルーチン、プログラム、オブジェクト、コンポーネント、ロジック、データ構造などを含み得る。コンピュータ・システム/サーバ500は、通信ネットワークを通じてリンクされるリモート処理デバイスによってタスクが実施される分散型クラウド・コンピューティング環境で実施され得る。分散型クラウド・コンピューティング環境では、プログラム・モジュールは、メモリ記憶デバイスを含む、ローカル・コンピュータ・システム記憶媒体とリモート・コンピュータ・システム記憶媒体の両方に配置され得る。 Computing system 500 is merely one example of a suitable computer system, and whether computer system 500 can be implemented and/or computer system 500 can perform any of the functions described above does not imply any limitation on the scope of use or functionality of the embodiments of the invention described herein. There are components in computer system 500 that are operable with numerous other general purpose or special purpose computing system environments or configurations. Examples of well-known computing systems, environments, or configurations, or combinations thereof, that may be suitable for use with computer system/server 500 include, but are not limited to, personal computer systems, server computer systems, thin clients, thick clients, handheld or laptop devices, multiprocessor systems, microprocessor-based systems, set-top boxes, programmable consumer electronics, network PCs, minicomputer systems, mainframe computer systems, and distributed cloud computing environments that include any of the above systems or devices. Computer system/server 500 may be described in the general context of computer system executable instructions, such as program modules, being executed by computer system 500. Generally, program modules may include routines, programs, objects, components, logic, data structures, etc. that perform particular tasks or implement particular abstract data types. Computer system/server 500 may be implemented in a distributed cloud computing environment where tasks are performed by remote processing devices that are linked through a communications network. In a distributed cloud computing environment, program modules may be located in both local and remote computer system storage media, including memory storage devices.
図に示されるように、コンピュータ・システム/サーバ500が汎用コンピューティング・デバイスの形態で示されている。コンピュータ・システム/サーバ500の構成要素には、限定はしないが、1つまたは複数のプロセッサまたは処理装置502と、システム・メモリ504と、システム・メモリ504を含む様々なシステム構成要素をプロセッサ502に結合するバス506とが含まれ得る。バス506は、メモリ・バスまたはメモリ・コントローラ、周辺バス、アクセラレーテッド・グラフィックス・ポート、および様々なバス・アーキテクチャのいずれかを使用するプロセッサまたはローカル・バスを含むいくつかのタイプのバス構造のいずれかの1つまたは複数を表す通信ファブリックである。限定ではなく例として、そのようなアーキテクチャには、Industry Standard Architecture(ISA)バス、Micro Channel Architecture(MCA)バス、Enhanced ISA(EISA)バス、Video Electronics Standards Association(VESA)ローカル・バス、およびPeripheral Component Interconnects(PCI)バスが含まれる。コンピュータ・システム/サーバ500は通常、様々なコンピュータ・システム可読媒体を含む。そのような媒体は、コンピュータ・システム/サーバ500によってアクセス可能である任意の入手可能な媒体であり得、そのような媒体には、揮発性媒体と不揮発性媒体、取外し可能媒体と取外し不能媒体の両方が含まれる。 As shown in the figure, a computer system/server 500 is shown in the form of a general-purpose computing device. Components of the computer system/server 500 may include, but are not limited to, one or more processors or processing units 502, a system memory 504, and a bus 506 that couples various system components, including the system memory 504, to the processor 502. The bus 506 is a communications fabric that represents one or more of any of several types of bus structures, including a memory bus or memory controller, a peripheral bus, an accelerated graphics port, and a processor or local bus using any of a variety of bus architectures. By way of example and not limitation, such architectures include an Industry Standard Architecture (ISA) bus, a Micro Channel Architecture (MCA) bus, an Enhanced ISA (EISA) bus, a Video Electronics Standards Association (VESA) local bus, and a Peripheral Component Interconnects (PCI) bus. The computer system/server 500 typically includes a variety of computer system readable media. Such media may be any available media that is accessible by the computer system/server 500, and includes both volatile and non-volatile media, removable and non-removable media.
システム・メモリ504は、ランダム・アクセス・メモリ(RAM)508またはキャッシュ・メモリ510あるいはその両方などの、揮発性メモリの形態のコンピュータ・システム可読媒体を含み得る。コンピュータ・システム/サーバ500は、他の取外し可能/取外し不能な揮発性/不揮発性コンピュータ・システム記憶媒体をさらに含み得る。単に例として、取外し不能な不揮発性磁気媒体(図示しておらず、通常は「ハード・ドライブ」と呼ばれる)から読み取り、それに書き込むための記憶システム512が設けられ得る。図示していないが、取外し可能な不揮発性磁気ディスク(たとえば、「フロッピ(R)・ディスク」)から読み取り、それに書き込むための磁気ディスク・ドライブ、およびCD-ROM、DVD-ROM、または他の光媒体などの取外し可能な不揮発性光ディスクから読み取り、それに書き込むための光ディスク・ドライブが設けられ得る。そのような場合、それぞれは、1つまたは複数のデータ媒体インターフェースによってバス506に接続され得る。以下でさらに図示され、説明されるように、メモリ504は、本発明の実施形態の機能を実施するように構成されるプログラム・モジュールのセット(たとえば、少なくとも1つ)を有する少なくとも1つのプログラム製品を含み得る。 The system memory 504 may include computer system readable media in the form of volatile memory, such as random access memory (RAM) 508 and/or cache memory 510. The computer system/server 500 may further include other removable/non-removable volatile/non-volatile computer system storage media. By way of example only, a storage system 512 may be provided for reading from and writing to a non-removable non-volatile magnetic medium (not shown, typically referred to as a "hard drive"). Although not shown, a magnetic disk drive may be provided for reading from and writing to a removable non-volatile magnetic disk (e.g., a "floppy disk"), and an optical disk drive may be provided for reading from and writing to a removable non-volatile optical disk, such as a CD-ROM, DVD-ROM, or other optical media. In such a case, each may be connected to the bus 506 by one or more data media interfaces. As further illustrated and described below, the memory 504 may include at least one program product having a set (e.g., at least one) of program modules configured to implement the functionality of an embodiment of the present invention.
限定ではなく例として、プログラム・モジュール516のセット(少なくとも1つ)を有するプログラム/ユーティリティ、ならびにオペレーティング・システム、1つまたは複数のアプリケーション・プログラム、他のプログラム・モジュール、およびプログラム・データが、メモリ504内に記憶され得る。オペレーティング・システム、1つまたは複数のアプリケーション・プログラム、他のプログラム・モジュール、およびプログラム・データのそれぞれ、またはそれらの何らかの組合せは、ネットワーキング環境の実装を含み得る。プログラム・モジュール516は一般に、本明細書で説明される、本発明の実施形態の機能または方法あるいはその両方を実施する。 By way of example and not limitation, a set of program modules 516 (at least one) including a program/utility, as well as an operating system, one or more application programs, other program modules, and program data may be stored in memory 504. Each of the operating system, one or more application programs, other program modules, and program data, or any combination thereof, may include an implementation of a networking environment. The program modules 516 generally implement the functionality and/or methods of embodiments of the present invention described herein.
コンピュータ・システム/サーバ500はまた、キーボード、ポインティング・デバイス、ディスプレイ520などの1つまたは複数の外部デバイス518、ユーザがコンピュータ・システム/サーバ500と対話することを可能にする1つまたは複数のデバイス、またはコンピュータ・システム/サーバ500が1つまたは複数の他のコンピューティング・デバイスと通信することを可能にする任意のデバイス(たとえば、ネットワーク・カード、モデムなど)、あるいはその組合せと通信し得る。そのような通信は、入力/出力(I/O)インターフェース514を介して行われ得る。さらに、コンピュータ・システム/サーバ500は、ネットワーク・アダプタ522を介して、ローカル・エリア・ネットワーク(LAN)、一般の広域ネットワーク(WAN)、または公衆ネットワーク(たとえば、インターネット)、あるいはその組合せなどの1つまたは複数のネットワークと通信し得る。図示されるように、ネットワーク・アダプタ522は、バス506を介してコンピュータ・システム/サーバ500の他の構成要素と通信し得る。図示していないが、他のハードウェア構成要素またはソフトウェア構成要素あるいはその両方が、コンピュータ・システム/サーバ500と共に使用され得ることを理解されたい。限定はしないが、例には、マイクロコード、デバイス・ドライバ、冗長処理装置、外部ディスク・ドライブ・アレイ、RAIDシステム、テープ・ドライブ、データ・アーカイブ記憶システムなどが含まれる。 The computer system/server 500 may also communicate with one or more external devices 518, such as a keyboard, pointing device, display 520, one or more devices that allow a user to interact with the computer system/server 500, or any device that allows the computer system/server 500 to communicate with one or more other computing devices (e.g., network cards, modems, etc.), or combinations thereof. Such communication may occur through an input/output (I/O) interface 514. Additionally, the computer system/server 500 may communicate with one or more networks, such as a local area network (LAN), a general wide area network (WAN), or a public network (e.g., the Internet), or combinations thereof, through a network adapter 522. As shown, the network adapter 522 may communicate with other components of the computer system/server 500 through a bus 506. It should be understood that other hardware and/or software components, not shown, may be used with the computer system/server 500. Examples include, but are not limited to, microcode, device drivers, redundant processing units, external disk drive arrays, RAID systems, tape drives, data archive storage systems, etc.
さらに、パブリッシュ-サブスクライブメッセージング・キューでのターゲット化ポリシー・ベース暗号化のためのシステム400の少なくとも部分が、バス・システム506に接続され得る。完全なシステム400は、システムの異なる部分のための複数の異なるコンピューティング・システム500、たとえば、メッセージ製作者システム、メッセージ受信側システム、データベース・システム、コア・メッセージ・キューイング・システム、鍵管理システム、および暗号化ポリシー・システムを必要とし得る。 Additionally, at least portions of the system 400 for targeted policy-based encryption on publish - subscribe messaging queues may be connected to a bus system 506. The complete system 400 may require multiple different computing systems 500 for different portions of the system, e.g., a message producer system, a message recipient system, a database system, a core message queuing system, a key management system, and an encryption policy system.
例示のために本発明の様々な実施形態の説明が提示されたが、説明は網羅的なものではなく、開示される実施形態に限定されないものとする。説明された実施形態の範囲および思想から逸脱することなく、多くの修正形態および変形形態が当業者には明らかとなるであろう。本明細書で使用される用語は、実施形態の原理、市場で見出される技術に勝る実際の応用もしくは技術的改良を最良に説明するように、または本明細書で開示される実施形態を当業者が理解することを可能にするように選ばれたものである。 Although the description of various embodiments of the present invention has been presented for illustrative purposes, the description is not intended to be exhaustive or limited to the disclosed embodiments. Many modifications and variations will be apparent to those skilled in the art without departing from the scope and spirit of the described embodiments. The terms used in this specification are selected to best explain the principles of the embodiments, practical applications or technical improvements over the technology found in the market, or to enable those skilled in the art to understand the embodiments disclosed herein.
本発明は、システム、方法、またはコンピュータ・プログラム製品、あるいはその組合せとして実施され得る。コンピュータ・プログラム製品は、プロセッサに本発明の態様を実施させるためのコンピュータ可読プログラム命令を有する1つまたは複数のコンピュータ可読記憶媒体を含み得る。 The present invention may be embodied as a system, method, or computer program product, or a combination thereof. The computer program product may include one or more computer-readable storage media having computer-readable program instructions for causing a processor to implement aspects of the present invention.
媒体は、伝播媒体用の電子的、磁気的、光学的、電磁的、赤外線式、または半導体システムであり得る。コンピュータ可読媒体の例には、半導体またはソリッド・ステート・メモリ、磁気テープ、取外し可能コンピュータ・ディスケット、ランダム・アクセス・メモリ(RAM)、読取り専用メモリ(ROM)、硬質磁気ディスク、および光ディスクが含まれ得る。光ディスクの現在の例には、コンパクト・ディスク読取り専用メモリ(CD-ROM)、コンパクト・ディスク読取り/書込み(CD-R/W)、DVD、およびBlu-Ray-Diskが含まれる。 The medium may be an electronic, magnetic, optical, electromagnetic, infrared, or semiconductor system for propagation media. Examples of computer-readable media may include semiconductor or solid state memory, magnetic tape, removable computer diskettes, random access memory (RAM), read-only memory (ROM), rigid magnetic disks, and optical disks. Current examples of optical disks include compact disk-read-only memory (CD-ROM), compact disk-read/write (CD-R/W), DVD, and Blu-Ray-Disk.
コンピュータ可読記憶媒体は、命令実行デバイスによって使用される命令を保持および記憶し得る有形デバイスであり得る。コンピュータ可読記憶媒体は、たとえば、限定はしないが、電子記憶デバイス、磁気記憶デバイス、光記憶デバイス、電磁記憶デバイス、半導体記憶デバイス、または上記の任意の適切な組合せであり得る。コンピュータ可読記憶媒体のより具体的な例の非網羅的リストには、以下が含まれる:ポータブル・コンピュータ・ディスケット、ハード・ディスク、ランダム・アクセス・メモリ(RAM)、読取り専用メモリ(ROM)、消去可能プログラマブル読取り専用メモリ(EPROMまたはフラッシュ・メモリ)、静的ランダム・アクセス・メモリ(SRAM)、ポータブル・コンパクト・ディスク読取り専用メモリ(CD-ROM)、デジタル・バーサタイル・ディスク(DVD)、メモリ・スティック(R)、フロッピ(R)・ディスク、パンチ・カード、または命令が記録された溝の中の隆起構造などの機械的に符号化されたデバイス、および上記の任意の適切な組合せ。本明細書では、コンピュータ可読記憶媒体は、電波または他の自由に伝播する電磁波、導波路または他の伝送媒体を通じて伝播する電磁波(たとえば、光ファイバ・ケーブルを通る光パルス)、あるいはワイヤを通じて伝送される電気信号など、本質的に一時的信号であると解釈されるべきではない。 A computer-readable storage medium may be a tangible device that can hold and store instructions for use by an instruction execution device. A computer-readable storage medium may be, for example, but not limited to, an electronic storage device, a magnetic storage device, an optical storage device, an electromagnetic storage device, a semiconductor storage device, or any suitable combination of the above. A non-exhaustive list of more specific examples of computer-readable storage media includes: portable computer diskettes, hard disks, random access memories (RAMs), read-only memories (ROMs), erasable programmable read-only memories (EPROMs or flash memories), static random access memories (SRAMs), portable compact disk read-only memories (CD-ROMs), digital versatile disks (DVDs), memory sticks (R), floppy (R) disks, punch cards, or mechanically encoded devices such as raised structures in grooves with instructions recorded therein, and any suitable combination of the above. In this specification, computer-readable storage media should not be construed as being signals that are inherently transitory, such as radio waves or other freely propagating electromagnetic waves, electromagnetic waves propagating through a waveguide or other transmission medium (e.g., light pulses through a fiber optic cable), or electrical signals transmitted through wires.
本明細書で説明されるコンピュータ可読プログラム命令は、コンピュータ可読記憶媒体からそれぞれのコンピューティング/処理デバイスに、あるいはネットワーク、たとえばインターネット、ローカル・エリア・ネットワーク、広域ネットワーク、もしくはワイヤレス・ネットワーク、またはその組合せを介して外部コンピュータまたは外部記憶デバイスにダウンロードされ得る。ネットワークは、銅伝送ケーブル、光伝送ファイバ、ワイヤレス伝送、ルータ、ファイアウォール、スイッチ、ゲートウェイ・コンピュータ、またはエッジ・サーバ、あるいはその組合せを含み得る。各コンピューティング/処理デバイス内のネットワーク・アダプタ・カードまたはネットワーク・インターフェースは、ネットワークからコンピュータ可読プログラム命令を受信し、それぞれのコンピューティング/処理デバイス内のコンピュータ可読記憶媒体内に記憶するためにコンピュータ可読プログラム命令を転送する。 The computer-readable program instructions described herein may be downloaded from a computer-readable storage medium to the respective computing/processing device or to an external computer or external storage device via a network, such as the Internet, a local area network, a wide area network, or a wireless network, or a combination thereof. The network may include copper transmission cables, optical transmission fiber, wireless transmission, routers, firewalls, switches, gateway computers, or edge servers, or a combination thereof. A network adapter card or network interface in each computing/processing device receives the computer-readable program instructions from the network and forwards the computer-readable program instructions for storage in a computer-readable storage medium in the respective computing/processing device.
本発明の動作を実施するためのコンピュータ可読プログラム命令は、アセンブラ命令、命令セット・アーキテクチャ(ISA)命令、機械語命令、機械依存命令、マイクロコード、ファームウェア命令、状態設定データ、あるいはSmalltalk(R)、C++などのオブジェクト指向プログラミング言語と、「C」プログラミング言語または類似のプログラミング言語などの従来の手続型プログラミング言語とを含む1つまたは複数のプログラミング言語の任意の組合せで書かれたソース・コードまたはオブジェクト・コードのどちらかであり得る。コンピュータ可読プログラム命令は、完全にユーザのコンピュータ上で、スタンド・アロン・ソフトウェア・パッケージとして部分的にユーザのコンピュータ上で、部分的にユーザのコンピュータ上、かつ部分的にリモート・コンピュータ上で、または完全にリモート・コンピュータまたはサーバ上で実行され得る。後者のシナリオでは、リモート・コンピュータは、ローカル・エリア・ネットワーク(LAN)または広域ネットワーク(WAN)を含む任意のタイプのネットワークを通じてユーザのコンピュータに接続され得、あるいは(たとえば、インターネット・サービス・プロバイダを使用して、インターネットを通じて)外部コンピュータに接続が行われ得る。いくつかの実施形態では、たとえば、プログラマブル論理回路、フィールド・プログラマブル・ゲート・アレイ(FPGA)、またはプログラマブル論理アレイ(PLA)を含む電子回路が、本発明の態様を実施するために、コンピュータ可読プログラム命令の状態情報を利用することによってコンピュータ可読プログラム命令を実行して、電子回路を個別設定し得る。 The computer readable program instructions for carrying out the operations of the present invention may be either assembler instructions, instruction set architecture (ISA) instructions, machine language instructions, machine dependent instructions, microcode, firmware instructions, state setting data, or source or object code written in any combination of one or more programming languages, including object oriented programming languages such as Smalltalk®, C++, and traditional procedural programming languages such as the “C” programming language or similar programming languages. The computer readable program instructions may be executed entirely on the user's computer, partially on the user's computer as a stand-alone software package, partially on the user's computer and partially on a remote computer, or entirely on a remote computer or server. In the latter scenario, the remote computer may be connected to the user's computer through any type of network, including a local area network (LAN) or wide area network (WAN), or a connection may be made to an external computer (e.g., through the Internet using an Internet Service Provider). In some embodiments, electronic circuitry including, for example, programmable logic circuits, field programmable gate arrays (FPGAs), or programmable logic arrays (PLAs), may execute computer readable program instructions to personalize the electronic circuitry by utilizing state information of the computer readable program instructions to implement aspects of the present invention.
本発明の態様が、本発明の実施形態による方法、装置(システム)、およびコンピュータ・プログラム製品のフローチャート図またはブロック図あるいはその両方を参照しながら本明細書で説明される。フローチャート図またはブロック図あるいはその両方の各ブロック、およびフローチャート図またはブロック図あるいはその両方のブロックの組合せが、コンピュータ可読プログラム命令によって実装され得ることを理解されよう。 Aspects of the present invention are described herein with reference to flowchart illustrations and/or block diagrams of methods, apparatus (systems), and computer program products according to embodiments of the invention. It will be understood that each block of the flowchart illustrations and/or block diagrams, and combinations of blocks in the flowchart illustrations and/or block diagrams, can be implemented by computer readable program instructions.
こうしたコンピュータ可読プログラム命令は、コンピュータまたは他のプログラム可能データ処理装置のプロセッサを介して実行される命令により、フローチャートまたはブロック図あるいはその両方の1つまたは複数のブロックで指定される機能/動作を実装するための手段を生み出すように、汎用コンピュータ、専用コンピュータ、または他のプログラム可能データ処理装置のプロセッサに与えられ、マシンが作り出され得る。こうしたコンピュータ可読プログラム命令はまた、命令を記憶したコンピュータ可読記憶媒体がフローチャートまたはブロック図あるいはその両方の1つまたは複数のブロックで指定される機能/動作の態様を実装する命令を含む製造品を含むように、コンピュータ、プログラム可能データ処理装置、または他のデバイス、あるいはその組合せに特定の方式で機能するように指示し得るコンピュータ可読記憶媒体内に記憶され得る。 Such computer-readable program instructions may be provided to a processor of a general-purpose computer, a special-purpose computer, or other programmable data processing device, such that the instructions executed by the processor of the computer or other programmable data processing device produce means for implementing the functions/operations specified in one or more blocks of the flowcharts and/or block diagrams to create a machine. Such computer-readable program instructions may also be stored in a computer-readable storage medium that may instruct a computer, programmable data processing device, or other device, or combination thereof, to function in a particular manner, such that the computer-readable storage medium having the instructions stored thereon includes an article of manufacture that includes instructions that implement aspects of the functions/operations specified in one or more blocks of the flowcharts and/or block diagrams.
コンピュータ可読プログラム命令はまた、コンピュータ、他のプログラム可能装置、または別のデバイス上で実行される命令が、フローチャートまたはブロック図あるいはその両方の1つまたは複数のブロックで指定される機能/動作を実装するように、コンピュータ、他のプログラム可能データ処理装置、または別のデバイス上にロードされ、コンピュータ、他のプログラム可能装置、または他のデバイス上で一連の動作ステップを実施させて、コンピュータ実装プロセスが生成され得る。 The computer-readable program instructions may also be loaded onto a computer, other programmable data processing apparatus, or other device such that the instructions, which execute on a computer, other programmable apparatus, or other device, implement the functions/operations specified in one or more blocks of the flowcharts and/or block diagrams, causing the computer, other programmable apparatus, or other device to perform a series of operational steps to create a computer-implemented process.
図中のフローチャートまたはブロック図あるいはその両方は、本発明の様々な実施形態によるシステム、方法、およびコンピュータ・プログラム製品の可能な実装のアーキテクチャ、機能、および動作を示す。この点で、フローチャートまたはブロック図の各ブロックは、指定の論理的機能を実装するための1つまたは複数の実行可能命令を含む命令のモジュール、セグメント、または部分を表し得る。いくつかの代替の実装では、ブロック内に記載の機能は、図に記載されている以外の順序で行われ得る。たとえば、連続して示される2つのブロックは、実際にはほぼ同時に実行され得、またはブロックは、関係する機能に応じて、時には逆の順序で実行され得る。ブロック図またはフローチャート図あるいはその両方の各ブロック、およびブロック図またはフローチャート図あるいはその両方のブロックの組合せが、指定の機能または動作を実施し、あるいは専用ハードウェアおよびコンピュータ命令の組合せを実施する専用ハードウェア・ベースのシステムによって実装され得ることにも留意されよう。 The flowcharts and/or block diagrams in the figures illustrate the architecture, functionality, and operation of possible implementations of systems, methods, and computer program products according to various embodiments of the present invention. In this regard, each block in the flowchart or block diagram may represent a module, segment, or portion of instructions that includes one or more executable instructions for implementing a specified logical function. In some alternative implementations, the functions described in the blocks may occur in an order other than that described in the figures. For example, two blocks shown in succession may in fact be executed substantially simultaneously, or the blocks may sometimes be executed in the reverse order, depending on the functionality involved. It will also be noted that each block in the block diagrams and/or flow chart diagrams, and combinations of blocks in the block diagrams and/or flow chart diagrams, may be implemented by a dedicated hardware-based system that performs the specified functions or operations, or a combination of dedicated hardware and computer instructions.
明細書で使用される用語は、特定の実施形態を説明するためのものに過ぎず、本発明を限定するものではない。本明細書では、単数形「a」、「an」、および「the」は、文脈が別段に明確に示すのでない限り、複数形も含むものとする。本明細書では、「備える、含む("comprises" and/or "comprising”)」という用語は、明記された特徴、完全体、ステップ、動作、要素、または構成要素、あるいはその組合せの存在を指定するが、1つまたは複数の他の特徴、完全体、ステップ、動作、要素、構成要素、またはそのグループ、あるいはその組合せの存在または追加を除外しないことをさらに理解されよう。 The terms used in the specification are merely for the purpose of describing particular embodiments and are not intended to limit the present invention. In this specification, the singular forms "a", "an" and "the" are intended to include the plural forms unless the context clearly indicates otherwise. It will be further understood that in this specification, the terms "comprises" and/or "comprising" specify the presence of stated features, wholes, steps, operations, elements, or components, or combinations thereof, but do not exclude the presence or addition of one or more other features, wholes, steps, operations, elements, components, or groups thereof, or combinations thereof.
以下の特許請求の範囲のすべての手段またはステップおよび機能要素の対応する構造、材料、動作、および均等物は、具体的に特許請求されるように、他の特許請求される要素と組み合わせて機能を実施するための任意の構造、材料、または動作を含むものとする。本発明の説明は、例示および説明のために提示されたものであり、網羅的なものではなく、開示された形態の発明に限定されないものとする。本発明の範囲および思想から逸脱することなく、多くの修正形態および変形形態が当業者には明らかとなるであろう。実施形態は、本発明の原理および実際の応用を最良に説明するため、および企図される特定の用途に適するような、様々な修正を伴う様々な実施形態について当業者が本発明を理解することを可能にするために選ばれ、説明される。 The corresponding structures, materials, acts, and equivalents of all means or steps and functional elements in the following claims are intended to include any structures, materials, or acts for performing a function in combination with other claimed elements as specifically claimed. The description of the present invention has been presented for purposes of illustration and description, and is not intended to be exhaustive or limited to the invention in the disclosed form. Many modifications and variations will be apparent to those skilled in the art without departing from the scope and spirit of the invention. The embodiments are chosen and described in order to best explain the principles and practical applications of the invention, and to enable those skilled in the art to understand the invention in various embodiments with various modifications as suitable for the particular use contemplated.
いくつかの有用な定義が以下に続く。 Some useful definitions follow:
本発明:「本発明」という用語によって説明される主題が、出願される特許請求の範囲、または特許審査後に最終的に発行され得る特許請求の範囲によって包含されることの、絶対的な指示と理解されるべきではなく、「本発明」という用語は、新しいものであり得ると考えられる本明細書での開示について読者が一般的な印象を得るのを助けるために使用されるが、「本発明」という用語の使用によって示されるように、この理解は試験的で暫定的なものであり、関連情報が明らかとなり、特許請求の範囲が潜在的に修正されるにつれて、特許審査の間に変更を受ける。 The present invention: The term "the present invention" should not be understood as an absolute indication that the subject matter described by the term "the present invention" is encompassed by the claims as filed or as may ultimately be issued after patent prosecution; the term "the present invention" is used to help the reader gain a general impression of the disclosures herein that are believed to be new, but as indicated by the use of the term "the present invention," this understanding is tentative and provisional, and subject to change during patent prosecution as relevant information becomes apparent and the claims are potentially revised.
実施形態:上記の「本発明」の定義を参照されたい。同様の注意が「実施形態」という用語に当てはまる。 Embodiments: See definition of "present invention" above. A similar caution applies to the term "embodiments."
および/または:包含的論理和であり、たとえばA、B、「および/または」Cは、AまたはBまたはCのうちの少なくとも1つが真であり、当てはまることを意味する。 And/or: Inclusive logical OR, e.g., A, B, "and/or" C means that at least one of A or B or C is true and true.
ユーザ/サブスクライバー:必ずしも限定はしないが、以下を含む:(i)単一の個人の人間、(ii)ユーザまたはサブスクライバーとしての役割を果たすのに十分な知性を有する人工知能エンティティ、または(iii)関連するユーザもしくはサブスクライバーのグループ、あるいはその組合せ。 User/ Subscriber : Includes, but is not necessarily limited to: (i) a single individual human being, (ii) an artificial intelligence entity with sufficient intelligence to act as a user or subscriber , or (iii) a group of related users or subscribers , or any combination thereof.
モジュール/サブモジュール:モジュールが(i)単一の局所的近傍(local proximity)にある、(ii)広いエリアにわたって分散する、(iii)より多数のソフトウェア・コード内で単一の近傍にある、(iv)単一のソフトウェア・コード内に位置する、(v)単一の記憶デバイス、メモリ、または媒体内に位置する、(vi)機械的に接続される、(vii)電気的に接続される、または(viii)データ通信で接続される、あるいはその組合せであるかどうかに関わらず、何らかの種類の機能を行うように動作可能に働くハードウェア、ファームウェア、またはソフトウェア、あるいはその組合せの任意のセット。 Module/Sub-Module: Any set of hardware, firmware, or software, or combination thereof, operable to perform some type of function, whether the modules are (i) in a single local proximity, (ii) distributed over a wide area, (iii) in a single proximity within a larger number of pieces of software code, (iv) located within a single piece of software code, (v) located within a single storage device, memory, or medium, (vi) mechanically connected, (vii) electrically connected, or (viii) connected in data communication, or any combination thereof.
コンピュータ:限定はしないが、デスクトップ・コンピュータ、メインフレーム・コンピュータ、ラップトップ・コンピュータ、フィールド・プログラマブル・ゲート・アレイ(FPGA)ベースのデバイス、スマート・フォン、携帯情報端末(PDA)、ボディ・マウント・コンピュータまたはボディ挿入コンピュータ(body-mounted or inserted computer)、組込みデバイス・スタイル・コンピュータ、特定用途向け集積回路(ASIC)ベースのデバイスを含む、重要なデータ処理および/または機械可読命令読取り機能を有する任意のデバイス。 Computer: Any device that has significant data processing and/or machine-readable instruction reading capabilities, including but not limited to desktop computers, mainframe computers, laptop computers, field programmable gate array (FPGA) based devices, smart phones, personal digital assistants (PDAs), body-mounted or inserted computers, embedded device style computers, and application specific integrated circuit (ASIC) based devices.
本発明のいくつかの実施形態は、以下の本発明の概念のうちの1つまたは複数を対象とする。 Some embodiments of the present invention are directed to one or more of the following inventive concepts:
パブリッシュ-サブスクライブメッセージング・キューでのターゲット化ポリシー・ベース暗号化のためのコンピュータ実装方法であって、(i)メッセージ・キューイング・システムによって暗号化メッセージを受信することであって、暗号化ポリシー・システムと、トピック関連の暗号鍵を記憶する鍵管理システムとを参照することによってメッセージが暗号化されている、受信することと、(ii)受信した暗号化メッセージを記憶することと、(iii)トピックへのサブスクリプションに基づいて暗号化メッセージを送ることとを含む方法。 A computer -implemented method for targeted policy-based encryption in publish- subscribe messaging queues, the method including: (i) receiving an encrypted message by a message queuing system, where the message is encrypted by reference to an encryption policy system and a key management system that stores topic-associated encryption keys; (ii) storing the received encrypted message; and (iii) sending the encrypted message based on a subscription to the topic.
Kafkaシステムであるメッセージ・キューイング・システム。 The Kafka system is a message queuing system.
トピック関連のメッセージを送る前にメッセージ製作者によって暗号化ポリシー・システムを参照する操作を含む、パブリッシュ-サブスクライブメッセージング・キューでのターゲット化ポリシー・ベース暗号化。 Targeted policy-based encryption on publish - subscribe messaging queues, including the ability for message producers to consult an encryption policy system before sending a topic-related message.
メッセージ製作者によって、暗号化ポリシー・データベースがトピック関連のメッセージの暗号化を実施する規則を含むと判定し、メッセージ製作者が暗号鍵を受信することが許可される場合、鍵管理システムから暗号鍵を受信する操作を含む、パブリッシュ-サブスクライブメッセージング・キューでのターゲット化ポリシー・ベース暗号化。 Targeted policy-based encryption on publish-subscribe messaging queues, comprising: determining, by a message producer, that an encryption policy database contains rules that effectuate encryption of topic - related messages; and receiving an encryption key from a key management system if the message producer is authorized to receive the encryption key.
同一のセキュリティ・システムで実装される鍵管理システムおよび暗号化ポリシー・システム。 Key management system and encryption policy system implemented in the same security system.
異なる場所でアクセス可能である鍵管理システムおよび暗号化ポリシー・システム。 A key management system and encryption policy system that are accessible in different locations.
送られたメッセージをメッセージ消費者によって受信したとき、暗号化ポリシー・システムを参照し、受信したメッセージが暗号化されるかどうかを判定する操作を含む、パブリッシュ-サブスクライブメッセージング・キューでのターゲット化ポリシー・ベース暗号化。 Targeted policy-based encryption on publish- subscribe messaging queues, including consulting an encryption policy system when a sent message is received by a message consumer to determine whether the received message is to be encrypted.
(i)受信したメッセージが暗号化されると判定したとき、メッセージ消費者によって復号鍵を受信することと、(ii)受信したメッセージを復号することとの操作を含む、パブリッシュ-サブスクライブメッセージング・キューでのターゲット化ポリシー・ベース暗号化。 Targeted policy - based encryption on publish-subscribe messaging queues, comprising the operations of: (i) receiving a decryption key by a message consumer upon determining that a received message is encrypted; and (ii) decrypting the received message.
暗号化ポリシー・システムへのアクセスを記録する操作を含む、パブリッシュ-サブスクライブメッセージング・キューでのターゲット化ポリシー・ベース暗号化。 Targeted policy-based encryption on publish - subscribe messaging queues, including operations that log access to the encryption policy system.
鍵管理システムへのアクセスを記録する操作を含む、パブリッシュ-サブスクライブメッセージング・キューでのターゲット化ポリシー・ベース暗号化。 Targeted policy-based encryption on publish - subscribe messaging queues, including logging access to the key management system.
メッセージ・キューイング・システムによって受信される暗号化メッセージがデジタルに署名される。 Encrypted messages received by the message queuing system are digitally signed.
メッセージ・キューイング・システムによって受信される暗号化メッセージが、メッセージ認証コードを含む。 Encrypted messages received by the message queuing system include a message authentication code.
パブリッシュ-サブスクライブメッセージング・キューでのターゲット化ポリシー・ベース暗号化のためのコンピュータ・システムであって、(i)暗号化メッセージを受信するように適合されたメッセージ・キューイング・システムであって、暗号化ポリシー・システムと、トピック関連の暗号鍵を記憶する鍵管理システムとを参照することによってメッセージが暗号化されている、メッセージ・キューイング・システムと、(ii)受信した暗号化メッセージを記憶するための手段と、(iii)トピックへのサブスクリプションに基づいて暗号化メッセージを送るための手段とを備えるコンピュータ・システム。 A computer system for targeted policy-based encryption in publish- subscribe messaging queues, comprising: (i) a message queuing system adapted to receive encrypted messages, the messages being encrypted by reference to an encryption policy system and a key management system that stores topic-related encryption keys; (ii) means for storing the received encrypted messages; and (iii) means for sending the encrypted messages based on subscriptions to the topics.
パブリッシュ-サブスクライブメッセージング・キューでのターゲット化ポリシー・ベース暗号化のためのコンピュータ・システムであって、メッセージ製作者が、暗号化ポリシー・データベースがトピック関連のメッセージの暗号化を実施する規則を含むと判定したとき、メッセージ製作者が暗号鍵を受信するように許可される場合、鍵管理システムから暗号鍵を受信するように適合されるコンピュータ・システム。 A computer system for targeted policy-based encryption on publish - subscribe messaging queues, the computer system being adapted to receive an encryption key from a key management system if a message producer is authorized to receive the encryption key when the message producer determines that an encryption policy database contains rules that implement encryption of topic-related messages.
Claims (18)
メッセージ・キューイング・システム内に記憶するための暗号化を第1のトピックが必要とするかどうかを判定するようにとの要求を第1のエンティティから受信することであって、前記第1のトピックが第1のメッセージに関連付けられている、前記受信することと、
前記要求を受信することに応じて、トピック・ベースの暗号化ポリシーを参照することにより、前記第1のトピックが第1の暗号化レベルを必要とすると判定することと、
前記第1の暗号化レベルに従って前記第1のメッセージを暗号化して、第1の暗号化メッセージを生成するための暗号鍵を第1のエンティティに提供することと、
前記第1のトピックに従ってメッセージ・キューイング・システム内に前記第1の暗号化メッセージを記憶することと、
前記第1の暗号化メッセージを含む前記第1のトピックに関連付けられた前記第1のメッセージを求める要求を第2のエンティティから受信することと、
前記トピック・ベースの暗号化ポリシーに従って、前記第1のトピックに関連付けられた前記第1の暗号化メッセージに対応する復号鍵を識別することと、
前記復号鍵を使用する前記第2のエンティティによる復号のための前記第1の暗号化メッセージを前記第2のエンティティに送ることと
を含み、
ここで、前記メッセージ・キューイング・システム内に記憶された前記第1の暗号化メッセージがメッセージ認証コードを含み、前記メッセージ認証コードが前記第1の暗号化メッセージの署名者の完全性及び前記第1の暗号化メッセージの完全性を保証する、
前記コンピュータ実装方法。 1. A computer-implemented method, comprising:
receiving a request from a first entity to determine whether a first topic requires encryption for storage in a message queuing system, the first topic being associated with a first message;
In response to receiving the request, determining that the first topic requires a first encryption level by consulting a topic-based encryption policy;
providing a first entity with an encryption key for encrypting the first message according to the first encryption level to generate a first encrypted message;
storing the first encrypted message in a message queuing system according to the first topic;
receiving a request from a second entity for the first message associated with the first topic, the first message including the first encrypted message;
identifying a decryption key corresponding to the first encrypted message associated with the first topic according to the topic-based encryption policy;
sending the first encrypted message to the second entity for decryption by the second entity using the decryption key ;
wherein the first encrypted message stored within the message queuing system includes a message authentication code, the message authentication code ensuring the integrity of a signer of the first encrypted message and the integrity of the first encrypted message.
The computer - implemented method.
をさらに含む、請求項1に記載のコンピュータ実装方法。 2. The computer-implemented method of claim 1, further comprising: recording in a logging system the providing of the encryption key to the first entity for generating the first encrypted message and the sending of the decryption key for the first encrypted message to the second entity.
をさらに含む、請求項2に記載のコンピュータ実装方法。 3. The computer-implemented method of claim 2, further comprising: in response to an update to the topic-based encryption policy, logging the update in the logging system.
前記第2のエンティティが前記サブスクリプションアカウントを介して前記第1のトピックにサブスクライブしたとき、前記要求が受信されることと
をさらに含む、請求項1に記載のコンピュータ実装方法。 establishing a subscription account for the second entity, including assigning an authenticating credential to the second entity;
The computer-implemented method of claim 1 , further comprising: the request being received when the second entity subscribes to the first topic via the subscription account.
メッセージ・キューイング・システム内に記憶するための暗号化を第1のトピックが必要とするかどうかを判定するようにとの要求を第1のエンティティから受信することであって、前記第1のトピックが第1のメッセージに関連付けられている、前記受信することと、
前記要求を受信することに応じて、トピック・ベースの暗号化ポリシーを参照することにより、前記第1のトピックが第1の暗号化レベルを必要とすると判定させることと、
前記第1の暗号化レベルに従って前記第1のメッセージを暗号化して、第1の暗号化メッセージを生成するための暗号鍵を第1のエンティティに提供させることと、
前記第1のトピックに従ってメッセージ・キューイング・システム内に前記第1の暗号化メッセージを記憶させることと、
前記第1の暗号化メッセージを含む前記第1のトピックに関連付けられた前記第1のメッセージを求める要求を第2のエンティティから受信させることと、
前記トピック・ベースの暗号化ポリシーに従って、前記第1のトピックに関連付けられた前記第1の暗号化メッセージに対応する復号鍵を識別させることと、
前記復号鍵を使用する前記第2のエンティティによる復号のための前記第1の暗号化メッセージを前記第2のエンティティに送らせることと
を実行させることにより、パブリッシュ-サブスクライブメッセージング・キューでのトピック・ベースの暗号化を実施させるコンピュータ・プログラムであって、
ここで、前記メッセージ・キューイング・システム内に記憶された前記第1の暗号化メッセージがメッセージ認証コードを含み、前記メッセージ認証コードが前記第1の暗号化メッセージの署名者の完全性及び前記第1の暗号化メッセージの完全性を保証する、
前記コンピュータ・プログラム。 The processor:
receiving a request from a first entity to determine whether a first topic requires encryption for storage in a message queuing system, the first topic being associated with a first message;
in response to receiving the request, determining that the first topic requires a first encryption level by referencing a topic-based encryption policy;
having a first entity provide an encryption key for encrypting the first message according to the first encryption level to generate a first encrypted message;
storing the first encrypted message in a message queuing system according to the first topic;
receiving a request from a second entity for the first message associated with the first topic, the first message including the first encrypted message;
identifying a decryption key corresponding to the first encrypted message associated with the first topic according to the topic-based encryption policy;
sending the first encrypted message to the second entity for decryption by the second entity using the decryption key;
1. A computer program product for implementing topic -based encryption on a publish- subscribe messaging queue by executing :
wherein the first encrypted message stored within the message queuing system includes a message authentication code, the message authentication code ensuring the integrity of a signer of the first encrypted message and the integrity of the first encrypted message.
The computer program.
前記第1の暗号化メッセージを生成するための前記暗号鍵を前記第1のエンティティに提供することと、前記第1の暗号化メッセージについての前記復号鍵を前記第2のエンティティに送ることとをロギング・システムに記録すること
をさらに実行させることを含む、請求項7に記載のコンピュータ・プログラム。 The processor,
recording in a logging system the providing of the encryption key to the first entity for generating the first encrypted message and the sending of the decryption key for the first encrypted message to the second entity.
8. The computer program product of claim 7, further comprising :
前記トピック・ベースの暗号化ポリシーに対する更新に応答して、前記ロギング・システムに前記更新を記録すること
をさらに実行させることを含む、請求項8に記載のコンピュータ・プログラム。 The processor,
In response to an update to the topic-based encryption policy, logging the update in the logging system.
9. The computer program product of claim 8, further comprising :
前記第2のエンティティに認証クレデンシャル(authenticating credential)を割り当てることを含む、前記第2のエンティティについてのサブスクリプションアカウントを確立することと、
前記第2のエンティティが前記サブスクリプションアカウントを介して前記第1のトピックにサブスクライブしたとき、前記要求が受信されることと
をさらに実行させることを含む、請求項7に記載のコンピュータ・プログラム。 The processor,
establishing a subscription account for the second entity, including assigning an authenticating credential to the second entity;
the request is received when the second entity subscribes to the first topic via the subscription account;
8. The computer program product of claim 7, further comprising :
プロセッサ・セットと、
プログラム命令を記憶したコンピュータ可読記憶媒体と
を備え、
前記プロセッサ・セットが、
メッセージ・キューイング・システム内に記憶するための暗号化を第1のトピックが必要とするかどうかを判定するようにとの要求を第1のエンティティから受信することであって、前記第1のトピックが第1のメッセージに関連付けられている、前記受信することと、
前記要求を受信することに応じて、トピック・ベースの暗号化ポリシーを参照することにより、前記第1のトピックが第1の暗号化レベルを必要とすると判定することと、
前記第1の暗号化レベルに従って前記第1のメッセージを暗号化して、第1の暗号化メッセージを生成するための暗号鍵を第1のエンティティに提供することと、
前記第1のトピックに従ってメッセージ・キューイング・システム内に前記第1の暗号化メッセージを記憶することと、
前記第1の暗号化メッセージを含む前記第1のトピックに関連付けられたメッセージを求めるトピック要求を第2のエンティティから受信することと、
前記トピック・ベースの暗号化ポリシーに従って、前記第1のトピックに関連付けられた前記第1の暗号化メッセージに対応する復号鍵を識別することと、
前記復号鍵を使用する前記第2のエンティティによる復号のための前記第1の暗号化メッセージを前記第2のエンティティに送ることと
により、パブリッシュ-サブスクライブメッセージング・キューでのトピック・ベースの暗号化を前記プロセッサ・セットに実施させる前記プログラム命令を実行するコンピュータ・システムであって、
ここで、前記メッセージ・キューイング・システム内に記憶された前記第1の暗号化メッセージがメッセージ認証コードを含み、前記メッセージ認証コードが前記第1の暗号化メッセージの署名者の完全性及び前記第1の暗号化メッセージの完全性を保証する、
前記コンピュータ・システム。 1. A computer system comprising:
A processor set;
a computer readable storage medium having program instructions stored thereon;
The processor set includes:
receiving a request from a first entity to determine whether a first topic requires encryption for storage in a message queuing system, the first topic being associated with a first message;
In response to receiving the request, determining that the first topic requires a first encryption level by consulting a topic-based encryption policy;
providing a first entity with an encryption key for encrypting the first message according to the first encryption level to generate a first encrypted message;
storing the first encrypted message in a message queuing system according to the first topic;
receiving a topic request from a second entity for messages associated with the first topic including the first encrypted message;
identifying a decryption key corresponding to the first encrypted message associated with the first topic according to the topic-based encryption policy;
sending the first encrypted message to the second entity for decryption by the second entity using the decryption key;
wherein the first encrypted message stored within the message queuing system includes a message authentication code, the message authentication code ensuring the integrity of a signer of the first encrypted message and the integrity of the first encrypted message.
The computer system .
メッセージ・キューイング・システム内に記憶するための暗号化を第1のトピックが必要とするかどうかを判定するようにとの要求を第1のエンティティから受信することであって、前記第1のトピックが第1のメッセージに関連付けられている、前記受信することと、
前記第1のエンティティにより、トピック・ベースの暗号化ポリシーを参照することにより、前記第1のトピックが第1の暗号化レベルを必要とすると判定することと、
前記第1のエンティティにより、前記第1の暗号化レベルに従って前記第1のメッセージを暗号化して、第1の暗号化メッセージを生成することと、
前記第1のトピックに従ってメッセージ・キューイング・システム内に前記第1の暗号化メッセージを記憶することと、
前記第1のメッセージを含む前記第1のトピックに関連付けられたメッセージの為のサブスクリプションを第2のエンティティから受信することと、
前記第2のエンティティにより、前記第1のトピックに関する前記トピック・ベースの暗号化ポリシーに従って、前記第1の暗号化メッセージに対応する復号鍵を識別することと、
前記第2のエンティティにより、前記復号鍵で前記第1の暗号化メッセージを復号して、前記第1のメッセージを再現することと
を含み、
ここで、前記メッセージ・キューイング・システム内に記憶された前記第1の暗号化メッセージがメッセージ認証コードを含み、前記メッセージ認証コードが前記第1の暗号化メッセージの署名者の完全性及び前記第1の暗号化メッセージの完全性を保証する、
前記コンピュータ実装方法。 1. A computer-implemented method, comprising:
receiving a request from a first entity to determine whether a first topic requires encryption for storage in a message queuing system, the first topic being associated with a first message;
determining, by the first entity , that the first topic requires a first encryption level by referencing a topic-based encryption policy;
encrypting , by the first entity , the first message according to the first encryption level to generate a first encrypted message;
storing the first encrypted message in a message queuing system according to the first topic;
receiving a subscription from a second entity for messages associated with the first topic including the first message;
identifying, by the second entity , a decryption key corresponding to the first encrypted message according to the topic-based encryption policy for the first topic;
decrypting, by the second entity , the first encrypted message with the decryption key to recover the first message ;
wherein the first encrypted message stored within the message queuing system includes a message authentication code, the message authentication code ensuring the integrity of a signer of the first encrypted message and the integrity of the first encrypted message.
The computer - implemented method.
前記トピック・ベースの暗号化ポリシーを参照して、前記第1のトピックに関連付けられたメッセージに関するサブスクリプションが前記第1の暗号化メッセージを含むかどうかを判定すること
を含む、請求項1又は14に記載のコンピュータ実装方法。 identifying the decryption key,
20. The computer-implemented method of claim 1 or 14 , further comprising: referencing the topic-based encryption policy to determine whether a subscription for a message associated with the first topic includes the first encrypted message.
請求項1又は14に記載のコンピュータ実装方法。 a subscription for the message includes the first encrypted message only if the message authentication code is provided by the second entity ;
15. The computer-implemented method of claim 1 or 14.
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/782,400 US11228571B2 (en) | 2020-02-05 | 2020-02-05 | Policy-based topic-level encryption for message queues |
US16/782,400 | 2020-02-05 | ||
PCT/IB2021/050141 WO2021156686A1 (en) | 2020-02-05 | 2021-01-10 | Encryption for message queues |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2023512928A JP2023512928A (en) | 2023-03-30 |
JPWO2021156686A5 true JPWO2021156686A5 (en) | 2024-09-11 |
Family
ID=77062794
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2022543533A Pending JP2023512928A (en) | 2020-02-05 | 2021-01-10 | Encryption for message queues |
Country Status (9)
Country | Link |
---|---|
US (1) | US11228571B2 (en) |
JP (1) | JP2023512928A (en) |
CN (1) | CN115004639B (en) |
AU (1) | AU2021217805B2 (en) |
CA (1) | CA3163037A1 (en) |
DE (1) | DE112021000224B4 (en) |
GB (1) | GB2608046A (en) |
IL (1) | IL294682A (en) |
WO (1) | WO2021156686A1 (en) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11483141B2 (en) * | 2020-06-03 | 2022-10-25 | Capital One Services, Llc | Key broker for a network monitoring device, and applications thereof |
US11349647B2 (en) * | 2020-06-03 | 2022-05-31 | Capital One Services, Llc | Key broker for a network monitoring device, and applications thereof |
US11507314B2 (en) * | 2020-06-24 | 2022-11-22 | Samsung Electronics Co., Ltd. | Systems and methods for message queue storage |
CN116126563A (en) * | 2023-02-20 | 2023-05-16 | 北京神州云合数据科技发展有限公司 | Message processing method, device, equipment and medium based on event bus |
EP4429172A1 (en) * | 2023-03-09 | 2024-09-11 | Siemens Aktiengesellschaft | Computer-implemented method, computer program product and publish-subscribe system for secure data transmission |
Family Cites Families (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7131003B2 (en) | 2003-02-20 | 2006-10-31 | America Online, Inc. | Secure instant messaging system |
TWI372549B (en) * | 2008-09-15 | 2012-09-11 | Inst Information Industry | Message processing apparatus and processing method thereof |
CN101567780B (en) | 2009-03-20 | 2011-05-18 | 武汉理工大学 | Key management and recovery method for encrypted digital certificate |
US9489523B2 (en) * | 2010-04-08 | 2016-11-08 | University Of Washington Through Its Center For Commercialization | Systems and methods for file access auditing |
WO2013126881A1 (en) | 2012-02-23 | 2013-08-29 | Applied Communication Sciences | Privacy-preserving publish-subscribe protocol in a cloud-assisted broadcast model |
CN105027106B (en) | 2013-03-14 | 2018-03-27 | 英特尔公司 | Data are managed in cloud computing environment using management metadata |
US9118633B2 (en) | 2013-06-18 | 2015-08-25 | International Business Machines Corporation | Topic protection policy for publish-subscribe messaging system |
EP2890084B1 (en) * | 2013-12-31 | 2018-04-18 | Thales Nederland B.V. | A data securing system and method |
US9432405B2 (en) * | 2014-03-03 | 2016-08-30 | Microsoft Technology Licensing, Llc | Communicating status regarding application of compliance policy updates |
US9674127B2 (en) | 2014-09-23 | 2017-06-06 | International Business Machines Corporation | Selective message republishing to subscriber subsets in a publish-subscribe model |
US9973480B2 (en) * | 2015-09-30 | 2018-05-15 | International Business Machines Corporation | Multi-level security enforcement utilizing data typing |
US10574440B2 (en) * | 2016-05-06 | 2020-02-25 | ZeroDB, Inc. | High-performance access management and data protection for distributed messaging applications |
US10454691B2 (en) * | 2016-05-24 | 2019-10-22 | Arizona Board Of Regents On Behalf Of Northern Arizona University | Systems implementing hierarchical levels of security |
WO2018046103A1 (en) | 2016-09-10 | 2018-03-15 | Swiss Reinsurance Company Ltd. | Secure key management and peer-to-peer transmission system with a controlled, double-tier cryptographic key structure and corresponding method thereof |
US10447815B2 (en) | 2017-03-08 | 2019-10-15 | Microsoft Technology Licensing, Llc | Propagating network configuration policies using a publish-subscribe messaging system |
US11171940B2 (en) * | 2018-03-30 | 2021-11-09 | Intel Corporation | Secure type-enforced actions |
-
2020
- 2020-02-05 US US16/782,400 patent/US11228571B2/en active Active
-
2021
- 2021-01-10 CA CA3163037A patent/CA3163037A1/en active Pending
- 2021-01-10 DE DE112021000224.4T patent/DE112021000224B4/en active Active
- 2021-01-10 CN CN202180010987.3A patent/CN115004639B/en active Active
- 2021-01-10 GB GB2212781.5A patent/GB2608046A/en active Pending
- 2021-01-10 WO PCT/IB2021/050141 patent/WO2021156686A1/en active Application Filing
- 2021-01-10 IL IL294682A patent/IL294682A/en unknown
- 2021-01-10 JP JP2022543533A patent/JP2023512928A/en active Pending
- 2021-01-10 AU AU2021217805A patent/AU2021217805B2/en active Active
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10572677B2 (en) | Performing secure queries from a higher security domain of information in a lower security domain | |
US11196729B2 (en) | Methods and systems for distributing encrypted cryptographic data | |
US11228571B2 (en) | Policy-based topic-level encryption for message queues | |
US9209972B2 (en) | Mediator device monitoring and controlling access to electronic content | |
US8527769B2 (en) | Secure messaging with read-undeniability and deletion-verifiability | |
US20140052982A1 (en) | Methods and systems for distributing cryptographic data to authenticated recipients | |
US20120204032A1 (en) | Encryption key exchange system and method | |
JP2011530248A (en) | Method and apparatus for encrypted message exchange | |
US9292661B2 (en) | System and method for distributing rights-protected content | |
CN113826352A (en) | Cryptographic key coordination between trusted containers in a multi-node cluster | |
JPWO2021156686A5 (en) | ||
KR102726550B1 (en) | Encryption for message queues | |
US9092780B2 (en) | User-mediator monitoring and controlling access to electronic content | |
US20140297333A1 (en) | User-mediator mediating transfer of electronic content | |
KR102726547B1 (en) | Orchestrate encryption keys between trusted containers in a multi-node cluster. | |
Srikanth et al. | Proxy-Based Re-Encryption Design for the IoT Ecosystem | |
Adkinson-Orellana et al. | SHARING SECURE DOCUMENTS IN THE CLOUD | |
em Nuvens | Vitor Hugo Galhardo Moia |