JP6678842B1 - データ配信システム、データ処理装置、及びプログラム - Google Patents

データ配信システム、データ処理装置、及びプログラム Download PDF

Info

Publication number
JP6678842B1
JP6678842B1 JP2019568262A JP2019568262A JP6678842B1 JP 6678842 B1 JP6678842 B1 JP 6678842B1 JP 2019568262 A JP2019568262 A JP 2019568262A JP 2019568262 A JP2019568262 A JP 2019568262A JP 6678842 B1 JP6678842 B1 JP 6678842B1
Authority
JP
Japan
Prior art keywords
topic
client
common key
message
unit
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.)
Active
Application number
JP2019568262A
Other languages
English (en)
Other versions
JPWO2021009866A1 (ja
Inventor
智洋 大貫
智洋 大貫
紀之 尾崎
紀之 尾崎
督 那須
督 那須
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Mitsubishi Electric Corp
Original Assignee
Mitsubishi Electric Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Mitsubishi Electric Corp filed Critical Mitsubishi Electric Corp
Application granted granted Critical
Publication of JP6678842B1 publication Critical patent/JP6678842B1/ja
Publication of JPWO2021009866A1 publication Critical patent/JPWO2021009866A1/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0819Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
    • H04L9/083Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) involving central third party, e.g. key distribution center [KDC] or trusted third party [TTP]
    • H04L9/0833Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) involving central third party, e.g. key distribution center [KDC] or trusted third party [TTP] involving conference or group key
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/06Network architectures or network communication protocols for network security for supporting key management in a packet data network
    • H04L63/065Network architectures or network communication protocols for network security for supporting key management in a packet data network for group communications
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/0823Network architectures or network communication protocols for network security for authentication of entities using certificates
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/55Push-based network services
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/562Brokering proxy services
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0819Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
    • H04L9/0825Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) using asymmetric-key encryption or public key infrastructure [PKI], e.g. key signature or public key certificates
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0819Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
    • H04L9/083Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) involving central third party, e.g. key distribution center [KDC] or trusted third party [TTP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0894Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3247Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3263Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving certificates, e.g. public key certificate [PKC] or attribute certificate [AC]; Public key infrastructure [PKI] arrangements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/40Network security protocols

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

プラットフォーム(200)と少なくとも1つのクライアント(100)とを含む複数のクライアント部は出版購読型モデルに従って通信する。プラットフォーム(200)のトピック共通鍵管理部(260)は、トピックに対応付けられ、トピックを宛先とするメッセージを暗号化/復号するトピック共通鍵をクライアント(100)に供給する。メッセージ管理部(270)は、トピックに対応付けられたトピック共通鍵で暗号化したメッセージを送信し、受信したメッセージをトピックに対応付けられたトピック共通鍵で復号する。クライアント(100)のトピック共通鍵記憶部(150)は、プラットフォーム(200)から供給されたトピック共通鍵を、トピックの識別情報と対応付けて記憶する。メッセージ管理部(170)は、トピック共通鍵で暗号化したメッセージを送信し、受信したメッセージをトピック共通鍵で復号する。

Description

本発明は、データ配信システム、データ処理装置、及びプログラムに関する。
特許文献1には、情報提供装置が仲介サーバを経由して端末にコンテンツデータを送信することが記載されている。仲介手段である仲介サーバからデータが漏出することを防止するため、情報処理装置と端末との間では暗号化されたデータが受け渡しされる。具体的には、情報処理装置と端末とはそれぞれ共通鍵を有しており、情報提供装置は、送信するデータを共通鍵でデータを暗号化し、暗号化したデータを仲介サーバに送信する。仲介サーバは、情報提供装置から受信したデータを端末に送信する。端末は、仲介サーバから受信したデータをトピック共通鍵で復号する。
また、仲介手段を介した通信として、出版/購読型モデルを採用することがある。出版/購読型モデルを採用することで、システムの拡張性を向上させることができるからである。出版/購読型モデルに従った通信では、仲介手段であるブローカがパブリッシャが出版したメッセージを、メッセージを購読するサブスクライバに配信する。出版/購読型モデルに従った通信においても、メッセージは、ブローカを介してやり取りされるため、メッセージの暗号化が必要となることがある。
特開2013−118427号公報
特許文献1に記載された構成では、情報処理装置と端末との組み合わせ毎に共通鍵を用意する必要がある。例えば、端末の数が増えることにより、データの供給先が増加すると、増加した端末の数に応じて、共通鍵を用意する必要がある。このように、データの供給先である端末の数が増えた場合、共通鍵の生成、共通鍵の配布等の処理の負荷が大きくなる。
出版/購読型モデルに従った通信においても、特許文献1と同様に、サブスクライバの数が増えた場合には、共通鍵の生成、共通鍵の配布等の処理の負荷が大きくなることが予想される。
本発明は、上記実情に鑑みてなされたものであり、出版/購読型モデルに従って通信を行うときに、データの供給先が増えた場合であっても、暗号化通信のための処理負担を軽減することを目的とする。
上記目的を達成するため、本発明に係るデータ配信システムにおいては、第1クライアント部と少なくとも1つの第2クライアント部とを含む複数のクライアント部が出版/購読型モデルに従って通信する。第1クライアント部が備えるトピック共通鍵管理部は、メッセージの宛先を特定するトピックに対応付けられ、トピックを宛先とするメッセージを暗号化/復号するトピック共通鍵を第2クライアント部に供給する。第1クライアント部が備えるメッセージ管理部は、トピックに宛ててメッセージを送信する場合にトピックに対応付けられたトピック共通鍵で暗号化したメッセージを送信し、トピックを宛先としたメッセージを受信した場合に受信したメッセージをトピックに対応付けられたトピック共通鍵で復号する。第2クライアント部が備える記憶部は、第1クライアント部から供給されたトピック共通鍵を、トピックを識別する識別情報と対応付けて記憶する。第2クライアント部が備えるメッセージ管理部は、トピックに宛ててメッセージを送信する場合にトピック共通鍵で暗号化したメッセージを送信し、トピックを宛先としたメッセージを受信した場合に受信したメッセージをトピック共通鍵で復号する。
本発明に係るデータ配信システムにおいては、第1クライアント部と少なくとも1つの第2クライアント部とを含む複数のクライアント部が出版/購読型モデルに従って通信する。第1クライアント部は、メッセージの宛先を特定するトピックに対応付けられ、トピックを宛先とするメッセージを暗号化/復号するトピック共通鍵を第2クライアント部に供給する。第2クライアント部は、トピックに宛ててメッセージを送信する場合にトピック共通鍵で暗号化したメッセージを送信し、トピックを宛先としたメッセージを受信した場合に受信したメッセージをトピック共通鍵で復号する。このように、複数のクライアント部は、トピックに対応付けられたトピック共通鍵によりメッセージを暗号化/復号する。よって、データの供給元とデータの供給先との組み合わせ毎に鍵を用意する必要がなく、データの供給先が増えた場合であっても、暗号化通信のための処理負担を軽減することができる。
本発明の実施の形態に係るデータ処理システムの構成を示すブロック図 実施の形態に係るデータ処理装置のハードウェア構成を示すブロック図 実施の形態に係るデータ処理装置の機能構成を示すブロック図 実施の形態に係る出版/購読型モデルに従ったメッセージングを説明するための図 実施の形態に係るトピック共通鍵記憶部に格納されるデータの一例を示す図 実施の形態に係るメッセージの一例を示す図 実施の形態に係るクライアント公開鍵記憶部に格納されるデータの一例を示す図 実施の形態に係る購読設定記憶部に格納されるデータの一例を示す図 実施の形態に係るトピック共通鍵管理部の機能構成を示すブロック図 実施の形態に係るトピック共通鍵記憶部に格納されるデータの一例を示す図 実施の形態に係るクライアントの送受信処理のフローチャート 実施の形態に係るプラットフォームの送受信処理のフローチャート 変形例1に係るデータ処理装置の機能構成を示すブロック図 変形例2に係るデータ処理装置の機能構成を示すブロック図 階層化構造を有するデータの例を示す図
(実施の形態)
以下、本発明の実施の形態に係るデータ処理装置について、図面を参照しつつ詳細に説明する。
実施の形態に係るデータ処理装置10は、例えば、図1に示すように、ネットワーク701を介してFA機器601及び602と接続されて、データ処理システム1を構成する。実施の形態においては、データ処理装置10は、例えば、FA機器601及び602と同じ工場内に配置されているIPC(Industrial Personal Computer)である。
データ処理装置10は、FA機器601及び602が備えるセンサが取得したデータを収集する。FA機器601及び602が備えるセンサは、例えば、振動センサ、温度センサ、圧力センサ、流量センサである。データ処理装置10は、例えば、FA機器601及び602からデータを収集し、収集したデータに、加工処理、解析処理等の決められた処理を実行する。以下、FA機器601及び602をFA機器600と称することがある。
図2に示すように、データ処理装置10は、ハードウェア構成として、データ処理装置10全体を制御するCPU(Central Processing Unit)11と、各種のプログラム及びデータを記憶するメモリ12と、ネットワーク701を介して他の装置と通信する通信インタフェース13と、ユーザインタフェースである入力デバイス14及び出力デバイス15と、を有する。メモリ12と通信インタフェース13と入力デバイス14と出力デバイス15とは、バス19を介してCPU11と接続されており、それぞれCPU11と通信する。
CPU11は、メモリ12に記憶されているプログラムを実行することにより、後述する処理を実行する。
メモリ12は、揮発性メモリと不揮発性メモリとを含む。メモリ12は、データ処理装置10の各種機能を実現するためのプログラムを格納する。さらに、メモリ12はCPU11のワークメモリとして用いられる。
通信インタフェース13は、ネットワークインタフェース回路を含み、CPU11の制御の下、ネットワーク701を介してFA機器600と通信する。ネットワーク701は、例えば、フィールドネットワークの規格に則ったネットワークである。
入力デバイス14は、入力キー、ポインティングデバイス等を含む。入力デバイス14は、ユーザからの操作入力を受け付け、ユーザの操作入力を示す信号をCPU11に出力する。ユーザは、例えば、データ処理装置10の管理者である。
出力デバイス15は、ディスプレイ、スピーカ等を含む。出力デバイス15は、CPU11から供給された信号に基づく画像をディスプレイに表示する。出力デバイス15は、CPU11から供給された信号に基づく音をスピーカから出力する。
図3に示すように、データ処理装置10は、決められたデータ処理を実行するクライアント101及び102と、一連のデータ処理の制御を行うプラットフォーム200と、データのやり取りを仲介するデータ配信部300とを含む。図3では、クライアント102の機能構成の図示を省略しているが、クライアント102は、クライアント101と同様の機能を備えるものとする。以下、クライアント101及び102をまとめてクライアント100と称することがある。クライアント100は、本発明の第2クライアント部の一例である。プラットフォーム200は、本発明の第1クライアント部の一例である。データ配信部300は、本発明の仲介手段の一例である。
クライアント100は決められた処理を行う。例えば、クライアント101は、FA機器600からデータを収集する処理を実行し、クライアント102は、収集されたデータの解析処理を実行する。
複数のクライアント100が連携したデータ処理を行う場合、プラットフォーム200はデータ処理のフローを制御する。例えば、プラットフォーム200は、クライアント100にデータ処理の順序について設定する。
データ配信部300は、クライアント100とプラットフォーム200との間のデータのやり取りを仲介する。さらに、データ配信部300は、クライアント100間のデータのやり取りを仲介する。実施の形態では、クライアント101及び102、プラットフォーム200、データ配信部300は、それぞれの機能を備えるアプリケーションにより実現される。
実施の形態において、データ処理装置10の各部は、出版/購読型モデルに従ってデータを授受する。出版/購読型モデルにおいて、メッセージを送信する側のアプリケーションをパブリッシャといい、メッセージを受信する側のアプリケーションをサブスクライバという。パブリッシャとサブスクライバとのデータ交換を仲介するアプリケーションをブローカという。
図4に出版/購読型モデルに従ったメッセージングの一例を示す。パブリッシャP1、P2は、メッセージを生成し、生成したメッセージをブローカB1に送信する。パブリッシャP1、P2がメッセージを送信することを、出版ということがある。パブリッシャP1、P2はトピックT1、T2、T3のいずれかを指定してメッセージを出版することができる。トピックT1、T2、T3は、パブリッシャが出版するメッセージに含まれる情報の主題を表す。サブスクライバS1、S2は、トピックT1、T2、T3のいずれかを指定してメッセージの配信をブローカに要求する。サブスクライバS1、S2が出版されたメッセージを受信することを、購読ということがある。ブローカB1は、サブスクライバS1、S2に、それぞれが購読しているトピックのメッセージを送信する。このように、各トピックのメッセージは、トピックのサブスクライバに配信される。よって、トピックは、メッセージの宛先を特定するものとなる。
図4に示す例では、パブリッシャP2は、トピックT2を指定してメッセージM2をブローカB1に送信する。サブスクライバS1、S2は、トピックT2を指定して購読をブローカB1に要求している。この場合、ブローカB1は、パブリッシャP1から受信したトピックT2のメッセージM2を、サブスクライバS1、S2に送信する。
出版/購読型モデルに従ったメッセージングでは、パブリッシャは、自身が送信するメッセージをだれが受信するかを知る必要はない。また、サブスクライバも、受信したメッセージをだれが送信したかを知る必要はない。パブリッシャとサブスクライバとの結合度が低いため、出版/購読型モデルに従ったメッセージングを使用する場合、システムのスケーラビリティが高くなる。
図3に示すデータ処理装置10において、クライアント100は、サブスクライバまたはパブリッシャとして動作する。プラットフォーム200は、パブリッシャまたはサブスクライバとして動作する。データ配信部300は、ブローカとして動作する。クライアント100と、プラットフォーム200とはいずれも、任意のトピックについてパブリッシャかつサブスクライバとして動作することもできる。例えば、クライアント101は、FA機器600からデータを収集し、クライアント102は、収集されたデータを加工するとする。この場合、クライアント101は、パブリッシャとして動作し、クライアント102は、サブスクライバとして動作すればよい。クライアント101は、収集したデータを、ブローカであるデータ配信部300に送信する。データ配信部300は、サブスクライバであるクライアント102にデータを配信する。クライアント102は、受信したデータを加工する。
実施の形態では、プラットフォーム200は、メッセージの配信に先だって、例えば、ユーザが予め設定した購読の設定に基づいて、ブローカとして動作するデータ配信部300にトピックを設定する。例えば、プラットフォーム200は、データ配信部300の起動時に、トピックを設定する。さらに、プラットフォーム200は、例えば、クライアント100の起動時に、クライアント100に、購読対象のトピックを指定するパラメータを設定する。クライアント100は、設定されたパラメータに基づいて、データ配信部300にトピックの購読を要求する。
実施の形態に特徴的な構成として、パブリッシャとして動作するクライアント100またはプラットフォーム200は、暗号化したデータを含むメッセージを送信する。サブスクライバとして動作するクライアント100またはプラットフォーム200は、受信したメッセージに含まれるデータを復号する。同一トピックについてのデータの暗号化、復号には同じ鍵が使用される。プラットフォーム200は、メッセージの送受信に先立って、トピックに対応付けられた鍵をトピックのパブリッシャとサブスクライバとに配信する。以下、トピックに対応付けられた鍵をトピック共通鍵という。トピックのパブリッシャは、出版するトピックに対応付けられたトピック共通鍵で、トピックのメッセージを暗号化する必要がある。トピックのサブスクライバは、受信したメッセージをトピックに対応付けられたトピック共通鍵で復号する必要がある。
パブリッシャが、データを暗号化して送信するのは次のような理由による。例えば、不正なクライアント100が、データ処理装置10に追加され、データ配信部300のトピック毎のメッセージの配信先の設定が変更されたとする。この場合、不正なクライアント100がメッセージを受信し、あるいは、不正なクライアント100がメッセージを送信することができてしまう。このため、プラットフォーム200は、メッセージの送受信に先立ってクライアント100を検証し、正当なクライアント100にトピック共通鍵を供給する。例えば、プラットフォーム200は、トピック共通鍵で暗号化したデータを含むメッセージを送信する。データ配信部300を介して暗号化されたデータを含むメッセージを受信したクライアント100は、そのトピックに対応するトピック共通鍵を有している場合のみ、メッセージに含まれているデータを復号することができる。不正なクライアント100は、トピック共通鍵を有していないため、データの暗号化、復号を行うことができない。
続いて、上記の処理を行うため、クライアント100、プラットフォーム200がそれぞれ備える機能を説明する。
図3に示すように、クライアント100は、メッセージ送受信I/F(Interface)部110と、クライアント鍵記憶部120と、クライアント証明書管理部130と、クライアント証明書送信部140と、トピック共通鍵記憶部150と、トピック共通鍵取得部160と、メッセージ管理部170とを有する。
メッセージ送受信I/F部110は、データ配信部300とメッセージを送受信するインタフェースである。メッセージ送受信I/F部110の機能は、図2に示すCPU11により実現される。
図3に示すクライアント鍵記憶部120は、クライアント100の公開鍵と秘密鍵とを記憶する。クライアント100は、例えば、起動された直後に決められた方法でクライアント100の公開鍵と秘密鍵とを生成し、公開鍵と秘密鍵とをクライアント鍵記憶部120に格納する。詳しくは後述するが、クライアント100の公開鍵は、プラットフォーム200がトピック共通鍵をクライアント100に供給するときに使用される。クライアント鍵記憶部120の機能は、図2に示すメモリ12により実現される。
図3に示すクライアント証明書管理部130は、認証局から発行されたクライアント証明書を保管する。クライアント証明書は、クライアント100が正当なクライアントであることを証明するものであり、認証局が発行した電子証明書である。認証局は、監査法人の審査をクリアしたパブリック認証局であってもよいし、データ処理装置10の提供元といったプライベ−ト認証局であってもよい。クライアント証明書は、クライアント100の機能を実現するアプリケーションに予め組み込まれているものとする。クライアント証明書管理部130の機能は、図2に示すCPU11、メモリ12により実現される。
図3に示すクライアント証明書送信部140は、クライアント証明書管理部130が保管するクライアント証明書を、メッセージ送受信I/F部110を介してデータ配信部300に送信する。例えば、クライアント証明書送信部140は、購読対象のトピックを指定してクライアント証明書を含むメッセージをデータ配信部300に送信する。クライアント証明書を含むメッセージは、例えば、決められたフォーマットで生成されるものとする。
クライアント証明書を含むメッセージは、データ配信部300を介してプラットフォーム200に送信される。例えば、クライアント証明書をプラットフォーム200に供給するためのトピックが設定されてもよい。この場合、クライアント100は、このトピックに向けて、クライアント証明書を含むメッセージを出版すればよい。あるいは、プラットフォーム200は、クライアント証明書を取得するのに十分なトピックのサブスクライバとして設定されていてもよい。例えば、プラットフォーム200は、各クライアント100が購読するトピックのうち少なくとも1つのトピックのサブスクライバとして設定されていてもよい。
クライアント100の購読対象のトピックが2つ以上の場合もあるが、クライアント100は、プラットフォーム200にクライアント証明書を1回送信すれば十分である。例えば、クライアント証明書送信部140は、プラットフォーム200から指定された購読対象のトピックのうち、例えば、一番目のトピックを宛先として、クライアント証明書を送信してもよい。クライアント証明書送信部140は、本発明のクライアント証明書送信手段の一例である。クライアント証明書送信部140の機能は、図2に示すCPU11により実現される。
図3に示すトピック共通鍵記憶部150は、プラットフォーム200から供給されたトピック共通鍵を記憶する。図5に示すように、トピック共通鍵記憶部150は、トピック共通鍵をトピックを識別する情報と対応付けて記憶する。トピック共通鍵記憶部150の機能は、図2に示すメモリ12により実現される。
図3に示すトピック共通鍵取得部160は、メッセージ送受信I/F部110を介してデータ配信部300から受信したメッセージがトピック共通鍵を含む場合、トピック共通鍵をトピック共通鍵記憶部150に格納する。トピック共通鍵取得部160は、受信したメッセージがトピック共通鍵を含むものであるか否かを、例えば、メッセージのフォーマットから判別することができるものとする。トピック共通鍵はクライアント100の公開鍵で暗号化されているため、トピック共通鍵取得部160は、受信したトピック共通鍵を、クライアント鍵記憶部120に格納されているクライアント100の秘密鍵で復号して、トピック共通鍵を取得する。トピック共通鍵取得部160は、トピック共通鍵をトピックを特定する情報とともにトピック共通鍵記憶部150に格納する。
なお、同一のトピックを購読しているクライアント100が2以上存在する場合がある。詳しくは後述するが、プラットフォーム200は、クライアント100それぞれの公開鍵でトピック共通鍵を暗号化し、暗号化したトピック共通鍵を含むメッセージを、そのトピックを宛先としてデータ配信部300に送信する。よって、クライアント100のトピック共通鍵取得部160は、他のクライアント100のためのトピック共通鍵を含むメッセージを受信することがある。しかし、トピック共通鍵取得部160は、他のクライアント100のためのトピック共通鍵を、自身の公開鍵で復号できないため、そのメッセージを破棄する。トピック共通鍵取得部160の機能は、図2に示すCPU11により実現される。
図3に示すメッセージ管理部170は、メッセージの送受信を管理する。具体的には、メッセージ管理部170は、メッセージ送受信I/F部110を介してデータ配信部300からメッセージを受信すると、トピック共通鍵記憶部150が記憶するトピック共通鍵でメッセージに含まれるデータを復号する。メッセージ管理部170が受信するメッセージは、図6に示すように、メッセージのあて先を示す情報と、メッセージ本文とを含む。あて先には、トピックを識別する情報が指定されている。例えば、メッセージ管理部170は、復号したデータをクライアント100が有する不図示のデータ処理部に供給する。データ処理部は、復号されたデータに決められた加工処理を実行する。
メッセージ管理部170は、決められたフォーマットのメッセージのみ処理する。例えば、メッセージ管理部170は、同一のトピックを購読する他のクライアント100が送信したクライアント証明書を含むメッセージを受信することがあるが、このような場合、メッセージ管理部170は、そのメッセージを破棄する。メッセージ管理部170は、本発明の第2メッセージ管理手段の一例である。メッセージ管理部170の機能は、図2に示すCPU11により実現される。
図3に示すクライアント100がパブリッシャとして動作する場合には、メッセージ管理部170は、不図示のデータ処理部から供給された加工済みのデータをトピック共通鍵記憶部150が記憶するトピック共通鍵で暗号化する。メッセージ管理部170は、暗号化したデータを含むメッセージを生成し、メッセージをメッセージ送受信I/F部110を介してデータ配信部300に送信する。
図3に示すように、プラットフォーム200は、メッセージ送受信I/F部210と、認証局公開鍵記憶部220と、クライアント証明書検証部230と、クライアント公開鍵記憶部240と、購読設定記憶部250と、トピック共通鍵管理部260と、メッセージ管理部270とを有する。
メッセージ送受信I/F部210は、データ配信部300とメッセージを送受信するインタフェースである。メッセージ送受信I/F部210の機能は、図2に示すCPU11により実現される。
図3に示す認証局公開鍵記憶部220は、認証局が公開している認証局の公開鍵を記憶する。認証局の公開鍵は、プラットフォーム200の機能を実現するアプリケーションに予め組み込まれている。認証局公開鍵記憶部220の機能は、図2に示すメモリ12により実現される。
図3に示すクライアント証明書検証部230は、メッセージ送受信I/F部210を介してデータ配信部300から受信したメッセージがクライアント証明書を含む場合、クライアント証明書の署名を検証する。クライアント証明書検証部230は、受信したメッセージがクライアント証明書を含むものであるか否かを、例えば、メッセージのフォーマットから判別することができるものとする。
具体的には、クライアント証明書検証部230は、認証局公開鍵記憶部220に格納されている認証局の公開鍵を用いて、クライアント証明書に含まれている認証局の署名を復号し、ハッシュ値を取得する。さらに、クライアント証明書検証部230は、クライアント証明書に含まれているクライアント100の公開鍵及び識別情報からハッシュ値を生成する。クライアント証明書検証部230は、認証局の署名から取得したハッシュ値と、クライアント100の公開鍵及び識別情報から生成したハッシュ値とが一致するか否かを判別する。クライアント証明書検証部230は、2つのハッシュ値が一致すると判別すると、クライアント証明書の署名の検証に成功したと判別し、クライアント証明書に含まれているクライアント100の公開鍵を識別情報と対応付けてクライアント公開鍵記憶部240に格納する。クライアント証明書検証部230は、クライアント証明書の署名の検証に成功すると、トピック共通鍵管理部260にその旨を通知する。クライアント証明書検証部230の機能は、図2に示すCPU11により実現される。
図3に示すクライアント公開鍵記憶部240は、クライアント100の公開鍵を記憶する。図7に示すように、クライアント公開鍵記憶部240は、クライアント100の公開鍵を識別情報と対応付けて記憶する。クライアント公開鍵記憶部240の機能は、図2に示すメモリ12により実現される。
図3に示す購読設定記憶部250は、トピックの購読が許可されているクライアント100の情報を記憶する。図8に示すように、購読設定記憶部250は、トピックを特定する情報と、クライアント100を識別する識別情報とを対応付けて記憶する。図示する例では、トピックT1のメッセージを購読することが許可されているのは、クライアント101、102である。トピックT2のメッセージを購読することが許可されているのは、クライアント101である。ユーザが予め必要なデータを購読設定記憶部250に格納しているものとする。購読設定記憶部250の機能は、図2に示すメモリ12により実現される。
図3に示すトピック共通鍵管理部260は、トピック共通鍵をメッセージの送受信に先立って生成し、クライアント100にトピック共通鍵を供給する。トピック共通鍵管理部260は、図9に示すように、トピック共通鍵生成部261と、トピック共通鍵記憶部262と、トピック共通鍵送信部263とを含む。トピック共通鍵管理部260の機能は、図2に示すCPU11、メモリ12により実現される。
トピック共通鍵生成部261は、トピック毎にトピック共通鍵を生成する。鍵の生成方法は任意である。例えば、トピック共通鍵生成部261は、トピック共通鍵を生成する日付及び時刻の情報からハッシュ値を算出し、さらに乱数を生成し、ハッシュ値と乱数とを組み合わせた値をトピック共通鍵としてもよい。あるいは、トピック共通鍵生成部261は、トピックを識別する情報と日付及び時刻の情報とからハッシュ値を算出し、さらに乱数を生成し、ハッシュ値と乱数とを組み合わせた値をトピック共通鍵としてもよい。あるいは、トピック共通鍵生成部261は、暗号化アルゴリズムを使用してトピック共通鍵を生成してもよい。
トピック共通鍵生成部261は、生成したトピック共通鍵をトピックを識別する情報と対応付けてトピック共通鍵記憶部262に格納する。トピック共通鍵生成部261は、例えば、プラットフォーム200の起動直後にトピック共通鍵をトピック毎に生成する。また、トピック共通鍵生成部261は、ユーザにより新たなトピックが作成されると、対応するトピック共通鍵を生成する。作成されたトピックの識別情報を含むトピックに関する情報は、ユーザが予めメモリ12に格納するものとする。
トピック共通鍵記憶部262は、トピック共通鍵生成部261が生成したトピック共通鍵をトピック毎に記憶する。トピック共通鍵記憶部262は、図10に示すように、トピック共通鍵をトピックを識別する情報と対応付けて記憶する。プラットフォーム200のトピック共通鍵記憶部262には、データ処理装置10内におけるすべてのトピックについてのトピック共通鍵が格納されている。トピックT1のトピック共通鍵は、本発明の第1共通鍵の一例である。トピックT2のトピック共通鍵は、本発明の第2共通鍵の一例である。
図9に示すトピック共通鍵送信部263は、トピック共通鍵記憶部262に格納されているトピック共通鍵を、トピックの購読が許可されているクライアント100に供給する。
具体的には、トピック共通鍵送信部263は、図3に示すクライアント証明書検証部230から、クライアント証明書の署名の検証に成功した旨の通知を受けると、購読設定記憶部250に格納されているデータに基づいて、そのクライアント100が購読しているトピックを特定する。図9に示すように、トピック共通鍵送信部263は、特定したトピックのトピック共通鍵をトピック共通鍵記憶部262から取得する。トピック共通鍵送信部263は、そのクライアント100のクライアント公開鍵をクライアント公開鍵記憶部240から取得する。トピック共通鍵送信部263は、トピック共通鍵をクライアント公開鍵で暗号化し、暗号化したトピック共通鍵を含むメッセージを生成し、トピックを指定してメッセージをメッセージ送受信I/F部110を介して、図3に示すデータ配信部300に送信する。
クライアント100が複数のトピックを購読している場合、トピック共通鍵送信部263は、次のようにトピック共通鍵を配信する。例えば、図8に示すように、クライアント101がトピックT1、トピックT2を購読しているとする。この場合、トピック共通鍵送信部263は、図5に示すトピック共通鍵記憶部262からトピックT1、トピックT2のトピック共通鍵を取得し、図7に示すクライアント公開鍵記憶部240からクライアント101の公開鍵を取得する。
トピック共通鍵送信部263は、トピックT1のトピック共通鍵をクライアント101の公開鍵で暗号化し、暗号化したトピックT1のトピック共通鍵を含むメッセージを、トピックT1を宛先としてデータ配信部300に送信する。さらに、トピック共通鍵送信部263は、トピックT2のトピック共通鍵をクライアント101の公開鍵で暗号化し、暗号化したトピックT2のトピック共通鍵を含むメッセージを、トピックT2を宛先としてデータ配信部300に送信する。
あるいは、トピック共通鍵送信部263は、同一のクライアント100にまとめてトピック共通鍵を送信してもよい。トピック共通鍵送信部263は、トピックT1のトピック共通鍵とトピックT2のトピック共通鍵とをクライアント101の公開鍵で暗号化し、暗号化したデータを含むメッセージを、データ配信部300に送信してもよい。例えば、トピック共通鍵送信部263は、複数のトピックのうち、トピックの識別情報の値が一番小さいトピック、例えば、トピックT1、を指定して、トピック共通鍵を含むメッセージをデータ配信部300に送信してもよい。
図3に示すメッセージ管理部270は、メッセージの送受信を管理する。具体的には、メッセージ管理部270は、メッセージ送受信I/F部210を介してデータ配信部300からメッセージを受信すると、トピック共通鍵管理部260が記憶するトピック共通鍵でメッセージに含まれるデータを復号する。例えば、メッセージ管理部270は、復号したデータを、プラットフォーム200が有する不図示のデータ処理部に供給する。データ処理部は、データに決められた処理を実行する。
また、メッセージ管理部270は、発行するデータをトピック共通鍵管理部260が記憶するトピック共通鍵で暗号化する。メッセージ管理部270は、暗号化したデータを含むメッセージを生成し、メッセージをメッセージ送受信I/F部210を介してデータ配信部300に送信する。メッセージ管理部270は、本発明の第1メッセージ管理手段の一例である。メッセージ管理部270の機能は、図2に示すCPU11により実現される。
図3に示すデータ配信部300は、任意のトピックを宛先としたメッセージを受信すると、そのトピックのサブスクライバにメッセージを送信する。
続いて、クライアント100がメッセージを送受信する一連の処理を説明する。クライアント100は起動されると、図11に示す送受信処理を実行する。例えば、クライアント100は、ユーザが入力デバイス14を操作することにより起動される。なおクライアント100は予めクライアント証明書を有しているものとする。
クライアント証明書送信部140は、クライアント証明書管理部130が保管するクライアント証明書を含むメッセージをデータ配信部300に送信する(ステップS11)。メッセージ送受信I/F部110を介して、データ配信部300からメッセージを受信すると(ステップS12;Yes)、トピック共通鍵取得部160は、受信したメッセージがトピック共通鍵を含むか否かを判別する(ステップS13)。トピック共通鍵取得部160は、受信したメッセージがトピック共通鍵を含むと判別すると(ステップS13;Yes)、メッセージに含まれている暗号化されたトピック共通鍵をクライアント鍵記憶部120に格納されているクライアント100の秘密鍵で復号する(ステップS14)。トピック共通鍵取得部160は、復号が成功すると(ステップS15;Yes)、復号したトピック共通鍵をトピックの識別情報とともにトピック共通鍵記憶部150に格納する(ステップS16)。一方、トピック共通鍵取得部160は、ステップS15で復号に失敗すると(ステップS15;Nо)、そのメッセージを破棄して、再びステップS12の処理を行う。
ステップS13で、トピック共通鍵取得部160が、受信したメッセージがトピック共通鍵を含まないと判別すると(ステップS13;No)、メッセージ管理部170は、受信したメッセージのトピックについてのトピック共通鍵を有しているか否かを判別する(ステップS17)。メッセージ管理部170は、トピック共通鍵記憶部150にトピック共通鍵が格納されている場合、トピック共通鍵を有していると判別し(ステップS17;Yes)、メッセージに含まれているデータをトピック共通鍵で復号し(ステップS18)、受信したデータに決められた処理を行う(ステップS19)。
また、クライアント100がパブリッシャとして動作している場合、メッセージ管理部170は、データ配信部300からメッセージを受信していない場合であっても(ステップS12;No)、データを出版するタイミングとなると(ステップS20;Yes)、トピック共通鍵記憶部150にトピック共通鍵が格納されているか否かを判別する(ステップS21)。メッセージ管理部170は、トピック共通鍵がトピック共通鍵記憶部150に格納されている場合(ステップS21;Yes)、送信するデータをトピック共通鍵で暗号化し(ステップS22)、メッセージ送受信I/F部110を介して、暗号化したデータを含むメッセージをデータ配信部300に送信する(ステップS23)。以上が、クライアント100の送受信処理である。
続いて、プラットフォーム200が行うトピック共通鍵の配信及びメッセージの送受信に係る処理を説明する。プラットフォーム200は起動されると、図12に示す送受信処理を実行する。例えば、プラットフォーム200は、ユーザが入力デバイス14を操作することにより起動される。なお、プラットフォーム200の認証局公開鍵記憶部220には、予め認証局の公開鍵が格納されているものとする。さらに、プラットフォーム200は、各トピックのトピック共通鍵を生成して、トピック共通鍵記憶部150に格納しているものとする。
図12に示すように、メッセージ送受信I/F部210を介して、データ配信部300からメッセージを受信すると(ステップS31;Yes)、クライアント証明書検証部230は、受信したメッセージがクライアント証明書を含むか否かを判別する(ステップS32)。
クライアント証明書検証部230は、受信したメッセージがクライアント証明書を含むと判別すると(ステップS32;Yes)、メッセージに含まれているクライアント証明書の署名を検証する(ステップS33)。具体的には、クライアント証明書検証部230は、認証局公開鍵記憶部220に格納されている認証局の公開鍵で、クライアント証明書に含まれている認証局の署名を復号し、ハッシュ値を取得する。さらに、クライアント証明書検証部230は、クライアント証明書に含まれているクライアント100の公開鍵及び識別情報からハッシュ値を生成する。クライアント証明書検証部230は、認証局の署名から取得したハッシュ値と、クライアント100の公開鍵及び識別情報から生成したハッシュ値とが一致する場合、クライアント証明書の署名の検証に成功したと判別する。
クライアント証明書検証部230は、クライアント証明書の署名の検証に成功すると(ステップS34;Yes)、クライアント証明書から取得したクライアント公開鍵をクライアント公開鍵記憶部240に格納する(ステップS35)。
続いて、トピック共通鍵管理部260のトピック共通鍵送信部263は、クライアント100に送信するトピック共通鍵をクライアント公開鍵で暗号化する(ステップS36)。具体的には、トピック共通鍵送信部263は、購読設定記憶部250に格納されているデータに基づいてクライアント100が購読を許可されているトピックを特定し、そのトピックのトピック共通鍵をトピック共通鍵記憶部262から取得する。トピック共通鍵送信部263は、クライアント公開鍵記憶部240からクライアント100の公開鍵を取得し、クライアント100の公開鍵でトピック共通鍵を暗号化する。
トピック共通鍵送信部263は、暗号化したトピック共通鍵を含めたメッセージをメッセージ送受信I/F部110を介して、データ配信部300に送信する(ステップS37)。
ステップS32で、クライアント証明書検証部230が、受信したメッセージがクライアント証明書を含まないと判別すると(ステップS32;No)、メッセージ管理部270は、受信したメッセージのトピックについてのトピック共通鍵をトピック共通鍵記憶部262から取得し、トピック共通鍵で受信したメッセージに含まれているデータを復号する(ステップS38)。その後、メッセージ管理部270は受信したデータに決められた処理を行う(ステップS39)。
また、プラットフォーム200がパブリッシャとして動作している場合、メッセージ管理部270は、データ配信部300からメッセージを受信していない場合であっても(ステップS31;Nо)、データを出版するタイミングとなると(ステップS40;Yes)、トピック共通鍵記憶部262に格納されているトピック共通鍵で、送信するデータを暗号化し(ステップS41)、メッセージ送受信I/F部210を介して、暗号化したデータを含むメッセージをデータ配信部300に送信する(ステップS42)。
以上、説明したように、実施の形態に係るデータ処理装置10においては、同一トピックを発行/購読するクライアント100とプラットフォーム200とは、トピック毎に生成されたトピック共通鍵を使用してメッセージの暗号化/復号を行う。実施の形態に係る構成では、パブリッシャとサブスクライバとの組み合わせ毎に鍵を用意する必要はない。例えば、データ処理装置10に、あるデータ処理を実行するアプリケーションが追加されることにより、トピックを購読するサブスクライバが増えることがある。このような場合であっても、増加したサブスクライバのために鍵を生成する必要はなく、生成済みのトピック共通鍵を追加されたサブスクライバに供給すればよい。
さらに、トピック毎にトピック共通鍵が生成されるため、パブリッシャとサブスクライバとの組み合わせ毎に鍵を用意する場合に比べ、プラットフォーム200の鍵の生成、鍵の管理等の処理負担を低減することができる。
プラットフォーム200は、トピック共通鍵をクライアント100に供給する前に、クライアント100が提出したクライアント証明書の署名を検証して、クライアント100が正当なクライアントであるか否かを判別する。プラットフォーム200は、検証に失敗した場合、そのクライアント100にトピック共通鍵を供給しない。プラットフォーム200がこのような構成を備えるため、正当なクライアント100だけが、トピックを購読するために必要なトピック共通鍵を取得することができる。
実施の形態では、クライアント証明書管理部130が保管するクライアント証明書が、クライアント100の機能を実現するアプリケーションに予め組み込まれているものとする例を説明した。このような構成の、外部のネットワークに接続されていないデータ処理装置10であっても、プラットフォーム200はクライアント100の検証が可能である。ファクトリーオートメーションの分野で使用されるコンピュータは、例えば、セキュリティの観点から、外部のネットワークに接続されていないことがあるからである。この場合、データ処理装置10は、外部のネットワークに接続して証明書チェーンをたどる必要がないので、外部ネットワークとの接続に伴うセキュリティリスクを避けることができるというメリットがある。
(変形例1)
実施の形態においては、クライアント100が、クライアント証明書をデータ配信部300を介してプラットフォーム200に送信する例を説明したが、これに限られない。図13に示すように、クライアント100のクライアント証明書送信部140と、プラットフォーム200のクライアント証明書検証部230とが、データ配信部300を介さずに直接通信してもよい。この場合、クライアント証明書送信部140は、クライアント証明書のファイルをクライアント証明書検証部230に直接送信する。このように、クライアント証明書送信部140とクライアント証明書検証部230とは、出版/購読モデルに従った通信によらずに、直接クライアント証明書を送受信してもよい。
図13に示す構成では、あるクライアント100が送信したクライアント証明書は、プラットフォーム200以外には配信されない。例えば、クライアント100が、クライアント証明書と一緒に、プラットフォーム200以外が取得することが望ましくないデータを送信することがある。このような場合には、図13に示すような構成とすることで、クライアント100が送信したデータをプラットフォーム200以外に渡さないようにできる。
(変形例2)
実施の形態、変形例1では、プラットフォーム200は、データ配信部300を介してトピック共通鍵をクライアント100に供給するが、これに限られない。例えば、図14に示すように、プラットフォーム200のトピック共通鍵管理部260と、クライアント100のトピック共通鍵取得部160とが、データ配信部300を介さずに直接通信してもよい。例えば、トピック共通鍵管理部260は、トピック共通鍵を含むファイルをトピック共通鍵取得部160に直接送信してもよい。このように、トピック共通鍵管理部260とトピック共通鍵取得部160とは、出版/購読モデルに従った通信によらずに、直接トピック共通鍵を送受信してもよい。図14に示す構成とすることで、トピック共通鍵の不正取得、悪用をより効果的に防止することができる。
(変形例3)
実施の形態においては、図9に示すように、プラットフォーム200のトピック共通鍵管理部260が、トピック共通鍵生成部261と、トピック共通鍵記憶部262とを有する例を説明したが、これに限られない。トピック共通鍵管理部260は、トピック共通鍵生成部261とトピック共通鍵記憶部262とを有していなくてもよい。トピック共通鍵管理部260は、トピック共通鍵を自身で生成するのではなく、他のコンピュータが備える記憶手段から取得する。例えば、プラットフォーム200が起動された後に、トピック共通鍵送信部263は、他のコンピュータが保管するトピック共通鍵を、取得したトピック共通鍵をクライアント100に供給すればよい。この場合、データ処理装置10はネットワークを介して他のコンピュータと通信可能であるものとする。
(変形例4)
実施の形態では、クライアント証明書管理部130が保管するクライアント証明書が、クライアント100の機能を実現するアプリケーションに予め組み込まれているものとする例を説明したが、これに限られない。
クライアント証明書管理部130は、認証局からクライアント証明書を取得してもよい。例えば、クライアント証明書管理部130は、クライアント100の起動直後に認証局に証明書の署名を要求する。この場合、データ処理装置10は外部ネットワークを介して認証局と通信可能であるものとする。外部ネットワークは、例えば、インターネットのようなオープンなネットワークである。クライアント100は、クライアント鍵記憶部120に格納されているクライアント100の公開鍵と、公開鍵の所有者であるクライアント100を識別するクライアント100の識別情報とを認証局に送信して、証明書の署名を要求する。
認証局は、クライアント100の識別情報に基づいて、クライアント100の証明書に署名しても問題ないと判別すると、クライアント100から受信した公開鍵及び識別情報から署名を生成する。例えば、認証局は、署名の生成のため、クライアント100の公開鍵及び識別情報からハッシュ値を生成し、ハッシュ値を認証局の秘密鍵で暗号化する。暗号化されたハッシュ値が認証局の署名となる。認証局は、クライアント100の公開鍵及び識別情報に、署名を付加したクライアント証明書をクライアント100に供給する。クライアント証明書管理部130は、認証局から供給されたクライアント証明書を保管する。
データ処理装置10は外部ネットワークを介して認証局と通信可能である場合、さらに、プラットフォーム200のクライアント証明書検証部230は、クライアント証明書の検証に失敗した場合には、外部ネットワークを介して、認証局から公開鍵を取得し、取得した認証局の公開鍵でクライアント証明書を検証するようにしてもよい。例えば、クライアント100が利用する認証局が変更された、クライアント100が利用する認証局がプラットフォーム200に予め登録されていないといった場合もあるからである。このような場合に、プラットフォーム200のクライアント証明書検証部230は、証明書チェーンをたどることが望ましい。クライアント証明書検証部230は、ルート認証局による検証が成功すると、クライアント証明書の検証に成功したと判別する。証明書チェーンにより段階的な認証を行うことにより、セキュリティを向上させることができる。
実施の形態においては、プラットフォーム200がパブリッシャとして動作し、クライアント100がサブスクライバとして動作する例を説明したが、これに限られない。例えば、1つのクライアント100がパブリッシャとして動作し、プラットフォーム200と、他のクライアント100とがサブスクライバとして動作してもよい。また、トピック毎に、パブリッシャが異なっていてもよい。例えば、トピックT1のパブリッシャはプラットフォーム200であり、トピックT2のパブリッシャはクライアント100であってもよい。また、1つのトピックには、2以上のパブリッシャが設定されていてもよい。上記のような場合も、プラットフォーム200が、トピック共通鍵の生成と配信とを行う。
実施の形態では、クライアント100は、トピック共通鍵の復号に失敗すると、即ち、受信したトピック共通鍵が他のクライアント100の公開鍵で暗号化されている場合に、そのトピック共通鍵を破棄していた。このようにして、クライアント100は、自身宛てのトピック共通鍵だけを取得することができた。あるいは、プラットフォーム200は、暗号化したトピック共通鍵を含むメッセージに、あて先のクライアント100の識別情報を含めるようにしてもよい。この場合、クライアントは、メッセージに含まれている識別情報から、自身宛てのメッセージであるか否かを判別することができる。
トピックは階層構造を有していてもよい。例えば、データ処理装置10が収集するデータが、図15に示すような階層化構造を有するとする。例えば、デバイス1から収集するデータを1つのトピックとして定義したとする。デバイス1は、工場F内のライン1上の装置Aに備えられたものである。この場合、このトピックを、例えば、“工場F/ライン1/装置A/デバイス1”と表すことができる。サブスクライバは、ブローカにトピックの購読の要求時に最も下の階層のトピックを指定してもよい。例えば、サブスクライバは、“工場F/ライン1/装置A/デバイス1”を指定してもよい。この場合、ブローカは、サブスクライバに、デバイス1から収集されたデータを配信する。あるいは、サブスクライバは、トピック購読の要求時に上の階層のトピックをしてもよい。例えば、サブスクライバは、“工場F/ライン1/装置A”を指定してもよい。この場合、ブローカは、サブスクライバに、デバイス1、デバイス2、デバイス3から収集されたデータを配信する。
トピック共通鍵は、必ずしも各トピックに1つずつ用意される必要はない。例えば、プラットフォーム200は、上の階層のトピックにトピック共通鍵を生成し、下の階層のトピックも同じトピック共通鍵を使用することとしてもよい。例えば、プラットフォーム200は、“工場F/ライン1”にトピック共通鍵を生成したとする。この場合、デバイス1のトピックを購読しているサブスクライバ、デバイス2のトピックを購読しているサブスクライバ、デバイス3のトピックを購読しているサブスクライバに、同じトピック共通鍵が供給される。
プラットフォーム200は、トピック共通鍵を含むメッセージに、あて先のクライアント100の識別情報を含めることができることを上記したが、例えば、プラットフォーム200は以下のような方法で、あて先を指定してもよい。プラットフォーム200は、あて先のクライアントの識別情報で分類したトピックを定義する。プラットフォーム200は、トピックT1のトピックをクライアント101、102が購読している場合、“トピックT1/クライアント101”、“トピックT1/クライアント102”というようにトピックを定義する。プラットフォーム200は、クライアント101にトピック共通鍵を送信する場合、“トピックT1/クライアント101”を指定してメッセージを送信する。プラットフォーム200は、クライアント102にトピック共通鍵を送信する場合、“トピックT1/クライアント102”を指定してメッセージを送信する。
実施の形態においては、プラットフォーム200の購読設定記憶部250に、トピックの購読が許可されているクライアント100についての情報が予め格納されている例を説明したが、これに限られない。プラットフォーム200は、購読設定記憶部250を備えていなくてもよい。この場合、例えば、クライアント100が、自身が購読するトピックの情報を記憶しておき、クライアント証明書とともに購読するトピックを特定する情報をプラットフォーム200に送信してもよい。プラットフォーム200は、クライアント証明書とともに受信したトピックを特定する情報に基づいて、必要なトピック共通鍵をクライアント100に送信すればよい。
実施の形態においては、データ処理装置10がクライアント101及び102と、プラットフォーム200と、データ配信部300とを含む例を説明したが、これに限られない。例えば、クライアント101、102、プラットフォーム200、データ配信部300の機能を、ネットワークを介して相互に通信可能な4つのコンピュータが実現してもよい。
また、例えば、外部のシステム事業提供者が提供するサーバ上で動作するアプリケーションが、ブローカであるデータ配信部300として機能してもよい。あるいは、クラウド上のサービスが、ブローカとして機能してもよい。
実施の形態においては、データ処理装置10がデータを収集する処理を実行するクライアント101、収集されたデータの解析処理を実行するクライアント102を備える例を説明したが、これに限られない。
例えば、データ処理装置10は、さらに、解析結果に基づいたフィードバックをFA機器600に供給するクライアント103を備えていてもよい。この場合、クライアント102は、解析結果を示すデータを含むメッセージを発行し、クライアント103はそのメッセージを購読する。例えば、クライアント103は、受信したメッセージに含まれる解析結果を示すデータに基づいて、FA機器600を診断し、診断結果に基づいてFA機器600を制御する。例えば、クライアント103は、FA機器600であるプログラマブルロジックコントローラを診断し、診断結果に基づいてプログラマブルロジックコントローラを制御するため、プログラマブルロジックコントローラの特定のメモリ領域に制御に必要な値を書き込んでもよい。
上述したように、データ処理装置10におけるパブリッシャは、トピック毎に固有のトピック共通鍵によりデータを暗号化し、暗号化したデータを発行する。例えば、外部のサーバ、クラウド上のサービスをブローカとして利用する場合には、データの漏洩のリスクが高まるものの、暗号化したデータを送受信することで、パブリッシャとサブスクライバとは、安全にデータ交換を行うことができる。
上記のプログラムを記録する記録媒体としては、磁気ディスク、光ディスク、光磁気ディスク、フラッシュメモリ、半導体メモリ、磁気テープを含むコンピュータ読取可能な記録媒体を使用することができる。
本発明は、広義の精神と範囲を逸脱することなく、様々な実施形態及び変形が可能とされるものである。また、上述した実施形態は、本発明を説明するためのものであり、本発明の範囲を限定するものではない。つまり、本発明の範囲は、実施形態ではなく、請求の範囲によって示される。そして、請求の範囲内及びそれと同等の発明の意義の範囲内で施される様々な変形が、本発明の範囲内とみなされる。
B1 ブローカ、P1,P2 パブリッシャ、S1,S2 サブスクライバ、1 データ処理システム、T1,T2,T3 トピック、M1,M2 メッセージ、10 データ処理装置、11 CPU、12 メモリ、13 通信インタフェース、14 入力デバイス、15 出力デバイス、19 バス、101,102(100) クライアント、110,210 メッセージ送受信I/F部、120 クライアント鍵記憶部、130 クライアント証明書管理部、140 クライアント証明書送信部、150,262 トピック共通鍵記憶部、160 トピック共通鍵取得部、170,270 メッセージ管理部、200 プラットフォーム、220 認証局公開鍵記憶部、230 クライアント証明書検証部、240 クライアント公開鍵記憶部、250 購読設定記憶部、260 トピック共通鍵管理部、261 トピック共通鍵生成部、263 トピック共通鍵送信部、300 データ配信部、601,602(600) FA機器、701 ネットワーク

Claims (15)

  1. 第1クライアント部と少なくとも1つの第2クライアント部とを含む複数のクライアント部が出版/購読型モデルに従って通信するデータ配信システムであって、
    前記第1クライアント部は、
    メッセージの宛先を特定するトピックに対応付けられ、前記トピックを宛先とする前記メッセージを暗号化/復号するトピック共通鍵を前記第2クライアント部に供給するトピック共通鍵管理部と、
    前記トピックに宛てて前記メッセージを送信する場合に前記トピックに対応付けられた前記トピック共通鍵で暗号化した前記メッセージを送信し、前記トピックを宛先とした前記メッセージを受信した場合に受信した前記メッセージを前記トピックに対応付けられた前記トピック共通鍵で復号するメッセージ管理部と、
    を備え、
    前記第2クライアント部は、
    前記第1クライアント部から供給された前記トピック共通鍵を、前記トピックを識別する識別情報と対応付けて記憶する記憶部と、
    前記トピックに宛てて前記メッセージを送信する場合に前記トピック共通鍵で暗号化した前記メッセージを送信し、前記トピックを宛先とした前記メッセージを受信した場合に受信した前記メッセージを前記トピック共通鍵で復号するメッセージ管理部と、
    を備える、
    データ配信システム。
  2. 前記第1クライアント部は、
    前記トピック共通鍵を、前記トピックを識別する前記識別情報と対応付けて記憶するトピック共通鍵記憶部、
    を備える請求項1に記載のデータ配信システム。
  3. 前記第1クライアント部の前記トピック共通鍵管理部は、前記トピックのパブリッシャとして設定されている前記第2クライアント部及び前記トピックのサブスクライバとして設定されている前記第2クライアント部に、前記トピック共通鍵を供給する、
    請求項2に記載のデータ配信システム。
  4. 前記トピックの前記パブリッシャとして設定されている前記第2クライアント部の前記メッセージ管理部は、前記トピックに向けて前記メッセージを出版する場合、前記トピックに対応付けられた前記トピック共通鍵で前記メッセージを暗号化し、暗号化した前記メッセージを送信する、
    請求項3に記載のデータ配信システム。
  5. 前記トピックの前記サブスクライバとして設定されている前記第2クライアント部の前記メッセージ管理部は、購読する前記トピックを宛先とした前記メッセージを受信した場合、前記トピックに対応付けられた前記トピック共通鍵で前記メッセージを復号する、
    請求項4に記載のデータ配信システム。
  6. 前記第2クライアント部は、
    前記第2クライアント部が正当な前記クライアント部であることを証明するクライアント証明書を前記第1クライアント部に送信するクライアント証明書送信手段、
    を備え、
    前記第1クライアント部は、
    前記第2クライアント部の前記クライアント証明書送信手段から受信した前記クライアント証明書を検証するクライアント証明書検証部、
    を備え、
    前記クライアント証明書検証部が前記第2クライアント部の前記クライアント証明書送信手段から受信した前記クライアント証明書の検証に成功した場合に、前記第1クライアント部の前記トピック共通鍵管理部は、前記第2クライアント部が出版または購読する前記トピックに対応付けられた前記トピック共通鍵を供給する、
    請求項3から5のいずれか1項に記載のデータ配信システム。
  7. 前記クライアント証明書は、認証局により署名されたものであり、
    前記第1クライアント部の前記クライアント証明書検証部は、前記認証局の公開鍵で前記クライアント証明書の署名を検証する、
    請求項6に記載のデータ配信システム。
  8. 前記クライアント証明書検証部が前記クライアント証明書の前記署名の検証に成功した場合に、前記第1クライアント部の前記トピック共通鍵管理部は、前記第2クライアント部の公開鍵であるクライアント公開鍵で前記トピック共通鍵を暗号化し、暗号化した前記トピック共通鍵をその前記第2クライアント部に供給する、
    請求項7に記載のデータ配信システム。
  9. 前記クライアント証明書は、前記第2クライアント部の前記クライアント公開鍵を含み、
    前記第1クライアント部の前記トピック共通鍵管理部は、前記クライアント証明書検証部が前記クライアント証明書の前記署名の検証に成功した場合に、前記クライアント証明書から取得した前記クライアント公開鍵で前記トピック共通鍵を暗号化する、
    請求項8に記載のデータ配信システム。
  10. 前記トピックのパブリッシャとして設定されている前記第1クライアント部または前記第2クライアント部が前記トピックに向けて出版した前記メッセージを受信し、前記メッセージを前記トピックのサブスクライバとして設定されている前記第1クライアント部または前記第2クライアント部に配信する仲介手段、
    をさらに備える、
    請求項2から9のいずれか1項に記載のデータ配信システム。
  11. 前記第1クライアント部の前記トピック共通鍵記憶部は、1つの前記トピックに対応付けた1つの前記トピック共通鍵を、前記トピックを識別する前記識別情報と対応付けて記憶する、
    請求項2から10のいずれか1項に記載のデータ配信システム。
  12. 前記第1クライアント部の前記トピック共通鍵記憶部は、2以上の前記トピックに対応づけられた1つの前記トピック共通鍵を、前記トピックを識別する前記識別情報と対応付けて記憶する、
    請求項2から10のいずれか1項に記載のデータ配信システム。
  13. 前記トピック共通鍵管理部は、前記トピック共通鍵を生成し、生成した前記トピック共通鍵を前記トピック共通鍵記憶部に格納する、
    請求項2から12のいずれか1項に記載のデータ配信システム。
  14. 第1クライアント部と少なくとも1つの第2クライアント部とを含む複数のクライアント部を有し、前記複数のクライアント部が出版/購読型モデルに従って通信するデータ処理装置であって、
    前記第1クライアント部は、
    メッセージの宛先を特定するトピックに対応付けられ、前記トピックを宛先とする前記メッセージを暗号化/復号するトピック共通鍵を前記第2クライアント部に供給するトピック共通鍵管理部と、
    前記トピックに宛てて前記メッセージを送信する場合に前記トピックに対応付けられた前記トピック共通鍵で暗号化した前記メッセージを送信し、前記トピックを宛先とした前記メッセージを受信した場合に受信した前記メッセージを前記トピックに対応付けられた前記トピック共通鍵で復号するメッセージ管理部と、
    を備え、
    前記第2クライアント部は、
    前記第1クライアント部から供給された前記トピック共通鍵を、前記トピックを識別する識別情報と対応付けて記憶する記憶部と、
    前記トピックに宛てて前記メッセージを送信する場合に前記トピック共通鍵で暗号化した前記メッセージを送信し、前記トピックを宛先とした前記メッセージを受信した場合に受信した前記メッセージを前記トピック共通鍵で復号するメッセージ管理部と、
    を備える、
    データ処理装置。
  15. 数のクライアント部が出版/購読型モデルに従って通信するデータ配信システムにおいて、前記クライアント部として機能するコンピュータに実行させるプログラムであって、
    前記コンピュータに、
    メッセージの宛先を特定するトピックに宛ててメッセージを送信する場合には、前記メッセージを前記トピックに対応付けられたトピック共通鍵で暗号化させ、暗号化した前記メッセージを前記トピックに宛てて送信させ、
    前記トピックを宛先とした前記メッセージを受信した場合には、受信した前記メッセージを前記トピックに対応付けられた前記トピック共通鍵で復号させる、
    プログラム。
JP2019568262A 2019-07-17 2019-07-17 データ配信システム、データ処理装置、及びプログラム Active JP6678842B1 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2019/028062 WO2021009866A1 (ja) 2019-07-17 2019-07-17 データ配信システム、データ処理装置、及びプログラム

Publications (2)

Publication Number Publication Date
JP6678842B1 true JP6678842B1 (ja) 2020-04-08
JPWO2021009866A1 JPWO2021009866A1 (ja) 2021-09-13

Family

ID=70057907

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2019568262A Active JP6678842B1 (ja) 2019-07-17 2019-07-17 データ配信システム、データ処理装置、及びプログラム

Country Status (4)

Country Link
US (1) US11856091B2 (ja)
JP (1) JP6678842B1 (ja)
CN (1) CN114128207B (ja)
WO (1) WO2021009866A1 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2022208855A1 (ja) * 2021-04-01 2022-10-06 日本電信電話株式会社 通信システム、異常検知装置、異常検知方法、及びプログラム
US20230396431A1 (en) * 2022-06-02 2023-12-07 Micron Technology, Inc. Error reduction during cryptographic key updates in secure memory devices

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011151841A (ja) * 2004-06-24 2011-08-04 Internatl Business Mach Corp <Ibm> マルチキャストでのアクセス制御
WO2015101474A1 (en) * 2013-12-31 2015-07-09 Thales Nederland B.V. A data securing system and method
US20190044939A1 (en) * 2018-03-30 2019-02-07 Intel Corporation Secure Type-Enforced Actions

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003338812A (ja) 2002-05-22 2003-11-28 Uchida Ryuichi 暗号化システム
JP2013118427A (ja) 2011-12-01 2013-06-13 Sharp Corp 暗号化装置、暗号化方法、暗号化プログラム、復号装置、復号方法、復号プログラム及び情報配信システム
US9118633B2 (en) * 2013-06-18 2015-08-25 International Business Machines Corporation Topic protection policy for publish-subscribe messaging system
US9942209B2 (en) * 2015-04-27 2018-04-10 Intel Corporation Technologies for secure extensible inter-device I/O redirection across a network
US10230696B2 (en) * 2015-06-09 2019-03-12 Intel Corporation System, apparatus and method for managing lifecycle of secure publish-subscribe system
US10574440B2 (en) * 2016-05-06 2020-02-25 ZeroDB, Inc. High-performance access management and data protection for distributed messaging applications
DE102016222523A1 (de) 2016-11-16 2018-05-17 Siemens Aktiengesellschaft Verfahren und Vorrichtung zum Übertragen von Daten in einem Topic-basierten Publish-Subscribe-System
EP3934203A1 (en) * 2016-12-30 2022-01-05 INTEL Corporation Decentralized data storage and processing for iot devices
WO2020101747A1 (en) * 2018-01-08 2020-05-22 All Purpose Networks, Inc. Publish-subscribe broker network overlay system
CN109587178A (zh) 2019-01-23 2019-04-05 四川虹美智能科技有限公司 一种基于mqtt的智能家电加密控制系统和方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011151841A (ja) * 2004-06-24 2011-08-04 Internatl Business Mach Corp <Ibm> マルチキャストでのアクセス制御
WO2015101474A1 (en) * 2013-12-31 2015-07-09 Thales Nederland B.V. A data securing system and method
US20190044939A1 (en) * 2018-03-30 2019-02-07 Intel Corporation Secure Type-Enforced Actions

Also Published As

Publication number Publication date
US20220231842A1 (en) 2022-07-21
WO2021009866A1 (ja) 2021-01-21
JPWO2021009866A1 (ja) 2021-09-13
CN114128207A (zh) 2022-03-01
CN114128207B (zh) 2023-10-17
US11856091B2 (en) 2023-12-26

Similar Documents

Publication Publication Date Title
US9137017B2 (en) Key recovery mechanism
US6092201A (en) Method and apparatus for extending secure communication operations via a shared list
US8788811B2 (en) Server-side key generation for non-token clients
US6651166B1 (en) Sender driven certification enrollment system
US7823187B2 (en) Communication processing method and system relating to authentication information
US6192130B1 (en) Information security subscriber trust authority transfer system with private key history transfer
US20110296171A1 (en) Key recovery mechanism
US20200320178A1 (en) Digital rights management authorization token pairing
US20100017599A1 (en) Secure digital content management using mutating identifiers
CN108604983A (zh) 通过域名服务对私钥的安全的委托分发
CA2475489A1 (en) Secure electronic messaging system requiring key retrieval for deriving decryption keys
WO2007110598A1 (en) Electronic data communication system
US11838409B2 (en) Method and apparatus for transferring data in a publish-subscribe system
JP2009033721A (ja) グループ従属端末、グループ管理端末、サーバ、鍵更新システム及びその鍵更新方法
JP6678842B1 (ja) データ配信システム、データ処理装置、及びプログラム
Friesen et al. A comparative evaluation of security mechanisms in DDS, TLS and DTLS
CN112511295A (zh) 接口调用的认证方法、装置、微服务应用和密钥管理中心
JP5012574B2 (ja) 共通鍵自動共有システム及び共通鍵自動共有方法
US8086849B2 (en) Secure internet-scale eventing
CN114238912A (zh) 数字证书的处理方法、装置、计算机设备和存储介质
JP2014022920A (ja) 電子署名システム、電子署名方法および電子署名プログラム
CN111914270A (zh) 基于区块链技术的可编程认证服务方法和系统
KR20210115718A (ko) 디지털 콘텐츠 거래를 위한 블록체인 네트워크 시스템 및 디지털 콘텐츠 거래 방법
WO2023099895A1 (en) A method and system for securely sharing data
KR101165350B1 (ko) 유비쿼터스 컴퓨팅 네트워크 환경에서 커뮤니티 컴퓨팅을 위한 디바이스 멤버 인증방법

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20191210

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20191210

A871 Explanation of circumstances concerning accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A871

Effective date: 20191210

A975 Report on accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A971005

Effective date: 20200122

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20200218

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20200317

R150 Certificate of patent or registration of utility model

Ref document number: 6678842

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250