JP2021052362A - 通信中継プログラム、中継装置、及び通信中継方法 - Google Patents

通信中継プログラム、中継装置、及び通信中継方法 Download PDF

Info

Publication number
JP2021052362A
JP2021052362A JP2019175822A JP2019175822A JP2021052362A JP 2021052362 A JP2021052362 A JP 2021052362A JP 2019175822 A JP2019175822 A JP 2019175822A JP 2019175822 A JP2019175822 A JP 2019175822A JP 2021052362 A JP2021052362 A JP 2021052362A
Authority
JP
Japan
Prior art keywords
communication
message
communication device
relay
terminal device
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.)
Granted
Application number
JP2019175822A
Other languages
English (en)
Other versions
JP7372527B2 (ja
Inventor
鈴木 大
Masaru Suzuki
大 鈴木
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.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2019175822A priority Critical patent/JP7372527B2/ja
Priority to EP20191503.0A priority patent/EP3799351B1/en
Priority to US16/998,214 priority patent/US11671403B2/en
Priority to CN202010946607.4A priority patent/CN112565175B/zh
Publication of JP2021052362A publication Critical patent/JP2021052362A/ja
Application granted granted Critical
Publication of JP7372527B2 publication Critical patent/JP7372527B2/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
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/02Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
    • 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
    • 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/083Network architectures or network communication protocols for network security for authentication of entities using passwords
    • 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/0876Network architectures or network communication protocols for network security for authentication of entities based on the identity of the terminal or configuration, e.g. MAC address, hardware or software configuration or device fingerprint
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/10Network architectures or network communication protocols for network security for controlling access to devices or network resources
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/10Network architectures or network communication protocols for network security for controlling access to devices or network resources
    • H04L63/101Access control lists [ACL]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/12Applying verification of the received information
    • H04L63/126Applying verification of the received information the source of the received data
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • 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/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/3226Cryptographic 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 using a predetermined code, e.g. password, passphrase or PIN
    • 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/50Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/12Applying verification of the received information
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W84/00Network topologies
    • H04W84/02Hierarchically pre-organised networks, e.g. paging networks, cellular networks, WLAN [Wireless Local Area Network] or WLL [Wireless Local Loop]
    • H04W84/04Large scale networks; Deep hierarchical networks
    • H04W84/042Public Land Mobile systems, e.g. cellular systems
    • H04W84/047Public Land Mobile systems, e.g. cellular systems using dedicated repeater stations

Abstract

【課題】分散台帳機能を有する通信の安全性を向上させること【解決手段】通信装置の識別子と、前記通信装置が通信に使用する公開鍵を分散台帳に記憶し、前記分散台帳を共有する分散台帳機能を有する複数のノードと、前記ノードのいずれかに接続する前記通信装置と、前記ノードのいずれかに接続する中継装置とを有する通信システムにおける前記中継装置のコンピュータに実行させる通信中継プログラムであって、前記通信装置とメッセージを送受信する送受信処理と、前記ノードから前記メッセージの送信元の通信装置の公開鍵を取得し、前記取得した公開鍵で前記メッセージに含まれる署名を認証する認証処理と、第1通信装置が第2通信装置に送信する通信データを含む通信メッセージを受信したとき、前記通信メッセージに対して前記認証処理を実行し、前記認証が成功した場合、前記通信メッセージを前記第2通信装置に送信する中継処理と、を実行させる。【選択図】図18

Description

本発明は、通信中継プログラム、中継装置、及び通信中継方法に関する。
近年,仮想通貨を実現する基盤として登場した分散台帳技術が注目されている。分散台帳技術における通信システムは、分散台帳機能を持つ複数のノードと、ノードに接続する複数の通信装置で構成される。分散台帳は、ユーザの識別子、公開鍵、通信装置のネットワークアドレス情報などが記憶される。
ノードは、自装置配下のネットワークに通信装置が追加されると、通信装置のネットワークアドレスや公開鍵を取得し、分散台帳を更新する。そして、ノードは、他のノードに対しても当該通信装置の情報を分散台帳に追加するように通知する。これにより、各ノードは同じ内容の分散台帳を共有することができる。
通信装置は、ノードから相手装置のネットワークアドレスを取得し、メッセージの送受信を行う。また、通信装置は、ノードから公開鍵を取得し、送信メッセージの署名や受信メッセージに対する署名検証を行う。これにより、通信装置は、安全な通信を行うことができる。
分散台帳に関する技術としては、以下の特許文献1,2に記載されている。
特開2018-11191号公報 特開2006-101414号公報
しかし、分散台帳技術における通信システムでは、ノードがネットワークアドレスを管理しているため、第三者に通信装置のネットワークアドレスが漏えいする場合がある。この場合、漏えいしたネットワークアドレスを有する通信装置は、合意しない通信によるサーバー攻撃を受ける可能性がある。
そこで、一開示は、分散台帳機能を有する通信の安全性を向上させる通信中継プログラム、中継装置、及び通信中継方法を提供する。
通信装置の識別子と、前記通信装置が通信に使用する公開鍵を分散台帳に記憶し、前記分散台帳を共有する分散台帳機能を有する複数のノードと、前記ノードのいずれかに接続する前記通信装置と、前記ノードのいずれかに接続する中継装置とを有する通信システムにおける前記中継装置が有するコンピュータに実行させる通信中継プログラムであって、前記通信装置とメッセージを送受信する送受信処理と、前記ノードから前記メッセージの送信元の通信装置の公開鍵を取得し、前記取得した公開鍵で前記メッセージに含まれる署名を認証する認証処理と、
第1通信装置が第2通信装置に送信する通信データを含む通信メッセージを受信したとき、前記通信メッセージに対して前記認証処理を実行し、前記認証が成功した場合、前記通信メッセージを前記第2通信装置に送信する中継処理と、を実行させる。
一開示は、分散台帳機能を有する通信の安全性を向上させる。
図1は、通信システム10の構成例を示す図である。 図2は、中継装置200の構成例を表す図である。 図3は、端末装置100の構成例を表す図である。 図4は、ノード300の構成例を表す図である。 図5は、通信システム10における登録処理のシーケンスの例を示す図である。 図6は、通信システム10が有する各装置に関する情報の例を示す図である。 図7は、ノード300と、端末装置100又は中継装置200との間で送受信されるメッセージの例を示す図である。 図8は、分散台帳の例を示す図である。 図9は、端末装置100と中継装置200間のメッセージの例を示す図である。 図10は、中継登録要求受信処理S15の処理フローチャートの例を示す図である。 図11は、制御用情報管理テーブル及び通信用情報管理テーブルの例を示す図である。 図12は、署名認証処理S100の処理フローチャートの例を示す図である。 図13は、通信要求処理のシーケンスの例を示す図である。 図14は、ノード300と、端末装置100又は中継装置200との間で送受信されるメッセージの例を示す図である。 図15は、通信要求受信処理S21の処理フローチャートの例を示す図である。 図16は、通信用情報管理テーブルの例を示す図である。 図17は、通信応答受信処理S27の処理フローチャートの例を示す図である。 図18は、通信処理のシーケンスの例を示す図である。 図19は、ノード300と、端末装置100又は中継装置200との間で送受信されるメッセージの例を示す図である。 図20は、通信データ受信処理S42の処理フローチャートの例を示す図である。 図21は、端末装置100−2が通信応答(NG)を送信する場合のシーケンスの例を示す図である。 図22は、ノード300と、端末装置100又は中継装置200との間で送受信されるメッセージの例を示す図である。 図23は、ノード300と、端末装置100又は中継装置200との間で送受信されるメッセージの例を示す図である。 図24は、通信拒否受信処理S200の処理フローチャートの例を示す図である。 図25は、通信用情報管理テーブルの例を示す図である。 図26は、通信中に端末装置100−1が通信拒否を送信する場合のシーケンスの例を示す図である。 図27は、通信用情報管理テーブルの例を示す図である。
[第1の実施の形態]
第1の実施の形態について説明する。
<通信システムの構成例>
図1は、通信システム10の構成例を示す図である。端末装置100−1,2(以下、端末装置100と呼ぶ場合がある)、中継装置200、及びノード300−1〜3(以下、ノード300とを有する。通信システム10は、ノード300が分散台帳を管理する分散台帳機能を有する通信システムである。通信システム10における各装置は、ネットワークを介して接続されている。ノード300−1は、端末装置100−1と接続しており、端末装置100−1に対応するノードである。言い換えると、端末装置100−1は、ノード300−1の配下のネットワークに接続する。同様に、ノード300−2は、端末装置100−2と接続しており、ノード300−3は、中継装置200と接続する。端末装置100及び中継装置200は、接続するノード300に対して、分散台帳への登録を要求したり、通信相手端末装置に関する情報の取得を要求したりする。
端末装置100−1,2(以降、端末装置100と呼ぶ場合がある)は、通信システム10のユーザが通信に使用する通信装置であり、例えば、コンピュータやタブレット端末である。端末装置100は、他の端末装置100と通信を行う。なお、端末装置100−1,2は、それぞれ通信ポートP11,P12、及び通信ポートP21、P22を有する。端末装置100−1の通信ポートP11は、制御用ポートである。制御用ポートは、端末装置間や中継装置200との制御用メッセージの送受信に使用する通信ポートである。制御用メッセージについては後述する。また、端末装置100−1の通信ポートP12は、通信用ポートである。通信用ポートは、端末装置間や中継装置200を介して他の端末装置100との通信における、通信データの送受信に使用する通信ポートである。通信用ポートについては後述する。同様に、端末装置100−2の通信ポートP21は制御用ポートであり、通信ポートP22は通信用ポートである。
中継装置200は、端末装置間の通信を中継する通信装置である。中継装置200は、端末装置100から制御用メッセージを受信すると、受信したメッセージの安全性を確認できた場合、送信先の端末装置100に受信した制御用メッセージを送信する。中継装置200は、例えば、受信した制御用メッセージの署名を、公開鍵で検証することで、受信した制御用メッセージの安全性を確認する。
また、中継装置200は、端末装置100から通信用メッセージを受信すると、制御用メッセージ受信時の安全性の確認に加え、送信先の端末装置100と通信が許可されている状態であることを確認し、受信した通信用メッセージを送信先の端末装置100に送信する。中継装置200は、端末装置間の通信状態を管理することで、送信先の端末装置100と通信が許可されている状態であるか否かを確認する。
ノード300−1〜3(以降、ノード300と呼ぶ場合がある)は、分散台帳を有し、各ボード300間で分散台帳処理を行う装置である。分散台帳は、例えば、ネットワークに接続する端末装置100(又は端末装置100のユーザ)や中継装置200(又は中継装置200の管理者やユーザ)の識別子、端末装置100が通信に使用する公開鍵、及び中継装置200のネットワークアドレス(例えばIPアドレス)などを記憶するテーブルである。ノード300は、他のノード300と同内容の分散台帳を保有する状態にするために、分散台帳処理を行う。分散台帳処理は、例えば、あるノード300が分散台帳を更新したタイミングで、他のノード300に更新した情報を送信し、分散台帳の更新を指示する処理である。また、分散台帳処理は、各ノード300が保持している分散台帳が、他のボード300が保持する分散台帳と同様の内容を記憶しているかを確認するため、定期的または不定期に、ノード間で分散台帳の内容を確認し合う処理を含んでもよい。
通信システム10では、ノード300が分散台帳処理を行い、分散台帳を共有する。中継装置200は、対応する(接続する)ノード300から、端末装置100のネットワークアドレスや公開鍵を取得し、受信したメッセージの署名を認証する。端末装置100は、中継装置200を介して他の端末装置100と通信を行うことで、中継装置200で署名認証した、安全性の高いメッセージを受信することができる。
なお、図1の通信システム10は、端末装置100が2台であるが、3台以上であってもよい。また、図1の通信システム10は、各ノード300に対して1台の端末装置100又は中継装置200が接続しているが、複数台の装置が接続されてもよい。さらに、図1の通信システム10は、ノード300が3台であるが、1台又は2台であってもよいし、端末装置100や中継装置200が図1よりも多く存在する場合、4台以上であってもよい。
<中継装置の構成例>
図2は、中継装置200の構成例を表す図である。中継装置200は、例えば、コンピュータやサーバマシンである。
中継装置200は、CPU(Central Processing Unit)210、ストレージ220、メモリ230、通信回路240−1〜n(nは2以上の整数)を有する。
ストレージ220は、プログラムやデータを記憶する、フラッシュメモリ、HDD(Hard Disk Drive)、又はSSD(Solid State Drive)などの補助記憶装置である。ストレージ220は、ノード側通信プログラム221、端末側通信プログラム222、中継登録要求受信プログラム223、通信要求受信プログラム224、通信応答受信プログラム225、通信拒否受信プログラム226、署名認証プログラム227、制御情報管理テーブル228、及び通信情報管理テーブル229を記憶する。テーブルは、メモリ230に記憶されてもよい。
制御情報管理テーブル228は、中継装置200が、通信システム10に参加する(接続する)端末装置100を管理するテーブルである。端末装置100は、通信システム10に参加し、他の端末装置100と通信を行う場合、制御情報管理テーブル228に自装置(又は自装置のユーザ)の識別子や、通信に使用するネットワークアドレスなどを登録されていることが必要となる。
通信情報管理テーブル229は、中継装置200が、端末装置100の通信状態を管理するテーブルである。中継装置200は、通信情報管理テーブル229に、どの端末装置100がどの端末装置100からの通信メッセージの受信を許容(許可)しているかを記憶する。
メモリ230は、ストレージ220に記憶されているプログラムをロードする領域である。また、メモリ230は、プログラムがデータを記憶する領域としても使用されてもよい。
通信回路240−1〜n(以降、通信回路240と呼ぶ場合がある)は、ネットワークと接続するインターフェースである。通信回路240は、それぞれ無線又は有線に対応する。通信回路240は、例えば、ネットワークインターフェースカードなどの、インターネットに接続する通信ポートを有するインターフェース機器である。また、中継装置200は、通信回路240を介して、ノード300−3、端末装置100と通信を行う。
CPU210は、ストレージ220に記憶されているプログラムを、メモリ230にロードし、ロードしたプログラムを実行し、各部を構築し、各処理を実現するプロセッサである。
CPU210は、ノード側通信プログラム221を実行することで、ノード側送受信部を構築し、ノード側通信処理を行う。ノード側通信処理は、接続するノード300とメッセージの送受信を行う処理である。
CPU210は、端末側通信プログラム222を実行することで、送受信部を構築し、端末側通信処理を行う。端末側通信処理は、端末装置100とメッセージの送受信を行う処理である。
CPU210は、中継登録要求受信プログラム223を実行することで、登録部を構築し、中継登録要求受信処理を行う。中継登録要求受信処理は、端末装置100から中継登録要求を受信したときの処理である。中継装置200は、中継登録要求受信処理において、受信したメッセージの署名を認証し、端末装置100(又は端末装置100のユーザ)の識別子や、端末装置100が他の端末装置100との通信に使用するネットワークアドレスや通信ポートの番号などを、制御情報管理テーブル228に記憶(登録)する。
CPU210は、通信要求受信プログラム224を実行することで、要求受信部を構築し、通信要求受信処理を行う。通信要求受信処理は、端末装置100から通信要求を受信したときの処理である。中継装置200は、通信要求受信処理において、受信したメッセージの署名を認証し、受信した通信要求を通信要求の送信先の端末装置100に送信する。
CPU210は、通信応答受信プログラム225を実行することで、応答受信部を構築し、通信応答受信処理を行う。通信応答受信処理は、端末装置100から通信要求の応答メッセージである通信応答を受信したときの処理である。中継装置200は、通信応答受信処理において、受信したメッセージの署名を認証し、受信した通信応答を、通信要求の送信元の端末装置100に送信する。
CPU210は、通信拒否受信プログラム226を実行することで、拒否受信部を構築し、通信拒否受信処理を行う。通信拒否受信処理は、端末装置100から、以降の通信データを含む通信メッセージの受信を拒否する通信拒否を受信したときの処理である。中継装置200は、通信拒否受信処理において、受信したメッセージの署名を認証し、受信した通信拒否を通信拒否の送信先の端末装置100に送信する。
CPU210は、署名認証プログラム227を実行することで、認証部を構築し、署名認証処理を行う。署名認証処理は、端末装置100から受信したメッセージを、メッセージに含まれる署名を用いて認証する処理である。中継装置200は、署名認証処理に、ノード300から送信元端末装置100の公開鍵を取得し、当該メッセージに含まれる署名の認証を行う。
<端末装置の構成例>
図3は、端末装置100の構成例を表す図である。端末装置100は、ユーザが通信を行うときに使用する通信装置であり、例えば、コンピュータやタブレット端末である。
端末装置100は、CPU110、ストレージ120、メモリ130、通信回路140−1〜nを有する。
ストレージ120は、プログラムやデータを記憶する、フラッシュメモリ、HDD、又はSSDなどの補助記憶装置である。ストレージ120は、ノード側通信プログラム121、分散台帳登録プログラム122、通信開始プログラム123、通信プログラム124、及び通信拒否プログラム125を記憶する。
メモリ130は、ストレージ120に記憶されているプログラムをロードする領域である。また、メモリ130は、プログラムがデータを記憶する領域としても使用されてもよい。
通信回路140−1〜m(以降、通信回路140と呼ぶ場合がある)は、ネットワークと接続するインターフェースである。通信回路140は、例えば、ネットワークインターフェースカードなどの、インターネットに接続する通信ポートを有するインターフェース機器である。また、通信回路140は、例えば、アンテナを有し、無線接続を行う無線用通信回路であってもよい。端末装置100は、例えば、通信回路140−1を制御用ポートとして使用し、通信回路140−2を通信用ポートとして使用してもよい。端末装置100は、通信回路140を介して、他の端末装置100、中継装置200、ノード300と通信を行う。
CPU110は、ストレージ120に記憶されているプログラムを、メモリ130にロードし、ロードしたプログラムを実行し、各部を構築し、各処理を実現するプロセッサである。
CPU110は、ノード側通信プログラム221を実行することで、ノード側送受信部を構築し、ノード側通信処理を行う。ノード側通信処理は、接続するノード300とメッセージの送受信を行う処理である。
CPU110は、分散台帳登録プログラム122を実行することで、ノード登録部を構築し、分散台帳登録処理を行う。分散台帳登録処理は、例えば、端末装置100が通信システム10に参加したとき、接続又は再接続したときなど、ノード300の分散台帳に登録する処理である。端末装置100は、分散台帳登録処理において、ノード300に分散台帳に登録するよう要求する。端末装置100は、当該要求時に、自装置の公開鍵、自装置(又はユーザ)の識別子などをノード300に通知する。そして、ノード300から分散台帳への登録が完了したことを通知されると、自装置を中継装置200に登録する処理を行う。
CPU110は、通信開始プログラム123を実行することで、通信開始部を構築し、通信開始処理を行う。通信開始処理は、自装置が中継装置200に登録されている状態で、端末装置100が他の通信システムと通信を開始するときに実行する処理である。端末装置100は、通信開始処理において、中継装置200に通信要求を送信し、相手の端末装置100からの応答(通信応答)を待ち受ける。端末装置100は、相手の端末装置100からの通信応答を受信すると、通信状態となる。
CPU110は、通信プログラム124を実行することで、通信部を構築し、通信処理を行う。通信処理は、通信状態において、端末装置100が中継装置200を介して他の端末装置100と通信メッセージを送受信する処理である。
CPU110は、通信拒否プログラム125を実行することで、通信拒否部を構築し、通信拒否処理を行う。通信拒否処理は、通信メッセージを受信しないことを他の端末装置100に通知する処理である。端末装置100は、例えば、通信を終了するとき、通信拒否を中継装置200を介して他の端末装置100に送信し、以降通信を行わないことを通知する。
<ノードの構成例>
図4は、ノード300の構成例を表す図である。ノード300は、例えば、サーバマシンやコンピュータである。
ノード300は、CPU310、ストレージ320、メモリ330、通信回路340−1〜nを有する。
ストレージ320は、プログラムやデータを記憶する、フラッシュメモリ、HDD、又はSSDなどの補助記憶装置である。ストレージ320は、分散台帳プログラム321、端末及び中継装置側通信プログラム322、分散台帳323を記憶する。
メモリ330は、ストレージ320に記憶されているプログラムをロードする領域である。また、メモリ330は、プログラムがデータを記憶する領域としても使用されてもよい。
通信回路340−1〜n(以降、通信回路340と呼ぶ場合がある)は、ネットワークと接続するインターフェースである。通信回路340は、例えば、ネットワークインターフェースカードなどの、インターネットに接続する通信ポートを有するインターフェース機器である。また、ノード300は、通信回路340を介して、他のノード300、端末装置100、および中継装置200と通信を行う。
CPU310は、ストレージ320に記憶されているプログラムを、メモリ330にロードし、ロードしたプログラムを実行し、各部を構築し、各処理を実現するプロセッサである。
CPU310は、分散台帳プログラム321を実行することで、分散台帳部を構築し、分散台帳処理を行う。分散台帳処理は、分散台帳への端末装置100の登録、削除、更新を行い、他のノード300と分散台帳を共有する処理である。ノード300は、分散台帳処理において、端末装置100から識別子や公開鍵を取得し、分散台帳に登録する。そして、更新した分散台帳の内容を、他のノード300と共有する。
CPU310は、端末及び中継装置側通信プログラム322を実行することで、装置通信部を構築し、端末及び中継装置側通信処理を行う。端末及び中継装置側通信処理は、端末装置100や中継装置200と、メッセージを送受信する処理である。
<端末装置間の通信>
端末装置間の通信は、登録処理、通信要求処理、及び通信処理を行うことで実現する。それぞれの処理について説明する。
<1.登録処理>
登録処理は、例えば、端末装置100が通信システム10に参入したタイミングで実行される処理であり、新規参入した端末装置100に関する情報を、ノード300(分散台帳)及び中継装置200に登録する処理である。なお、端末装置100−1が中継装置200と送受信するメッセージは、制御用メッセージであり、端末装置100−1は、中継装置200とのメッセージの送受信を、通信ポートP11(制御用ポート)を使用して行う。
図5は、通信システム10における登録処理のシーケンスの例を示す図である。図5は、端末装置100−1が通信システム10に新規参入(参加)した場合の例を示す図である。
図6は、通信システム10が有する各装置に関する情報の例を示す図である。以降、実施例において、各装置のネットワークアドレス、識別子、公開鍵、秘密鍵は、図6に従うものとする。
端末装置100−1は、接続する(対応する)ノード300−1にノード登録要求を送信する(S11)。ノード登録要求は、端末装置100に関する情報(例えば、公開鍵、ネットワークアドレス、端末装置100又は端末装置100のユーザの識別子を含む)の分散台帳への登録を、ノード300に要求するメッセージである。
図7は、ノード300と、端末装置100又は中継装置200との間で送受信されるメッセージの例を示す図である。図7(A)は、ノード登録要求S11の例を示す図である。
ノード登録要求は、送信元アドレス、送信先アドレス、メッセージ種別、送信元識別子、及び公開鍵を含むメッセージである。
送信元アドレス及び送信先アドレスは、ノード登録要求の送信元の装置のネットワークアドレス及び送信先の装置のネットワークアドレスが掲載される。ノード登録要求S11の場合、送信元アドレスは当該メッセージの送信元である端末装置100−1のネットワークアドレス「IP1」が掲載され、送信先アドレスは当該メッセージの送信先であるノード300−1のネットワークアドレス「IPN1」が掲載される。
各メッセージにおいて、送信元アドレス及び送信先アドレスは、当該メッセージの送信先アドレス及び送信先アドレスが掲載され、例えば、中継装置200を介して他の端末装置100に送信されるメッセージは、送信先アドレスは中継装置200のネットワークアドレスとなる。また、送信元アドレス及び送信先アドレスは、通信ポート番号まで掲載される場合があるものとする。以降、メッセージの説明において、送信元アドレス及び送信先アドレスについては、省略する場合がある。
メッセージ種別は、当該メッセージが何のメッセージであるかを示す情報が掲載される。ノード登録要求S11の場合、メッセージ種別は、当該メッセージの種別である「ノード登録要求」を示す情報が掲載される。以降、メッセージの説明において、メッセージ種別については、説明を省略する場合がある。
送信元識別子は、送信元の装置の識別子又は送信元の装置の識別子のユーザの識別子が掲載される。ノード登録要求S11の場合、送信元識別子は、端末装置100−1の識別子「abc」が掲載される。
公開鍵は、ノード登録要求の送信元の端末装置100が通信に使用する公開鍵に関する情報が掲載される。ノード登録要求S11の場合、端末装置100−1が通信に使用する公開鍵「Pka」が掲載される。
図5のシーケンスに戻り、ノード300−1は、ノード登録要求を受信すると、受信した情報に基づき自装置が有する分散台帳を更新し、他のノード300−2及びノード300−3に対して自装置の分散台帳と同様の内容に分散台帳を更新するよう要求(指示)する分散台帳処理を行う(S12)。これにより、各ノード300が有する分散台帳は同様の内容となる。
図8は、分散台帳の例を示す図である。分散台帳は、管理する情報要素として、装置、アドレス、識別子、公開鍵を含む。なお、図8は、すでに中継装置200及び端末装置100−2の登録は完了している分散台帳の例である。
装置は、各装置の名称や識別子である。ノード300−1は、端末装置100−1からノード登録要求を受信したことに応答し、端末装置100−1の情報を分散台帳に記憶する。なお、装置は、以降に説明する識別子として管理してもよい。
アドレスは、各装置のネットワークアドレスである。分散台帳は、端末装置100−1のアドレスとして、何も記憶しない。第1の実施の形態において、ノード300は、分散台帳に端末装置100の通信用のネットワークアドレスを記憶しないことで、悪意の第三者が端末装置100の通信用のネットワークアドレスを取得することを防止し、より安全な通信を提供することができる。
識別子は、各装置、又は各装置のユーザの識別子である。分散台帳は、端末装置100−1の識別子として、「abc」が記憶される。
公開鍵は、各装置が通信に使用する公開鍵である。分散台帳は、端末装置100−1の公開鍵として、「Pka」が記憶される。
図5のシーケンスに戻り、ノード300−1は、分散台帳を更新すると、端末装置100−1にノード登録応答を送信する(S13)。ノード登録応答は、分散台帳に装置の情報が登録されたことを通知するメッセージである。
図7(B)は、ノード登録応答S13の例を示す図である。ノード登録応答は、送信元アドレス、送信先アドレス、メッセージ種別、中継装置識別子、及び中継装置アドレスを含むメッセージである。
中継装置識別子は、端末装置間の通信を中継する中継装置の識別子が掲載される。ノード登録応答S13の場合、中継装置識別子は、中継装置200の識別子「xyz」が掲載される。
中継装置アドレスは、端末装置間の通信を中継する中継装置のネットワークアドレスが掲載される。ノード登録応答S13の場合、中継装置アドレスは、中継装置200のネットワークアドレス「IP3」が掲載される。
図5のシーケンスに戻り、端末装置100−1は、ノード登録応答S13を受信し、中継装置200のネットワークアドレス及び識別子を取得する。なお、端末装置100は、中継装置200のネットワークアドレスや識別子を、ノード登録応答から取得せず、他のメッセージ(例えば、通信開始時に送受信するメッセージなど)で取得してもよい。
端末装置100−1は、ノード登録応答S13を受信すると、中継装置200に中継登録要求を送信する(S14)。中継登録要求は、端末装置100が中継装置200に、自装置に関する情報を登録するよう要求するメッセージである。
図9は、端末装置100と中継装置200間のメッセージの例を示す図である。図9(A)は、中継登録要求S14の例を示す図である。中継登録要求は、送信元アドレス、送信先アドレス、タイプ、メッセージ種別、送信元識別子、通信用アドレス、署名を含むメッセージである。
タイプは、メッセージのタイプが制御用であるか通信用であるかを示す情報が掲載される。制御用メッセージは、端末装置100間の通信の開始や終了などの制御に使用するメッセージである。制御用メッセージは、以降に示す署名認証に成功した場合、送信先の端末装置100に転送される。一方、通信用メッセージは、端末装置100間で送受信する通信データを含むメッセージである。通信用メッセージは、署名認証に加え、中継装置200が管理する通信状態において通信中である場合、送信先の端末装置100に転送される。中継登録要求S14は、制御用メッセージであり、タイプは、制御用メッセージであることを示す「制御」が掲載される。以降、メッセージの説明において、タイプは同様であるものとする。
送信元識別子は、送信元の装置の識別子が掲載される。送信元識別子は、以降に説明する、中継装置200が実行する署名認証処理において使用される。中継登録要求S14の場合、送信元識別子は、端末装置100−1の識別子「abc」が掲載される。
通信用アドレスは、送信元の装置が通信用メッセージの送受信に使用するネットワークアドレスが掲載される。例えば、通信用アドレスを、制御用メッセージの送受信とはことなるネットワークアドレスとすることで、安全性が向上する。ここでは、通信用アドレスを通信ポートまで指定し、制御用メッセージの送受信の通信ポートと異ならせることで、安全性を向上させるものとする。中継登録要求S14の場合、通信用アドレスは、端末装置100−1のネットワークアドレス及び通信用ポートである「IP1 ポートP12」が掲載される。
署名は、署名データが掲載される。端末装置100や中継装置200は、例えば、秘密鍵で生成された署名データを公開鍵で検証することで、当該署名データの送信元の認証を行う。中継登録要求S14の場合、署名は、端末装置100−1の秘密鍵Skaで生成された署名データが掲載される。
図5のシーケンスに戻り、中継装置200は、中継登録要求S14を受信すると、中継登録要求受信処理を行う(S15)。
図10は、中継登録要求受信処理S15の処理フローチャートの例を示す図である。中継装置200は、中継登録要求受信処理S15において、署名認証処理を行う(S100)。署名認証処理S100は、受信したメッセージの署名を認証する処理であり、詳細は後述する。
中継装置200は、署名認証が成功すると(S15−1のYes)、送信元の端末装置100に中継登録応答を送信し(S15−2)、制御用情報管理テーブル、及び通信用情報管理テーブルを更新する(S15−3)。制御用情報管理テーブル、及び通信用情報管理テーブルについては、後述する。
一方、中継装置200は、署名認証が失敗すると(S15−1のNo)、送信元の端末装置100は、通信システム10上で正式に認証された端末装置100ではないと判定し、当該中継装置登録要求を破棄し、処理を終了する。
図11は、制御用情報管理テーブル及び通信用情報管理テーブルの例を示す図である。図11(A)は、制御用情報管理テーブルの例を示す図である。制御用情報管理テーブルは、識別子及び制御用アドレスを含む。
識別子は、登録された端末装置100の識別子である。図11(A)においては、端末装置100−1の識別子「abc」及び端末装置100−2の識別子「def」が登録されている。
制御アドレスは、識別子に対応する端末装置100の制御用メッセージに使用するネットワークアドレス及びポート番号である。図11(A)においては、端末装置100−1のネットワークアドレスと制御用ポート「IP1 ポートP11」、及び端末装置100−2のネットワークアドレスと制御用ポート「IP2 ポートP21」が登録されている。
図11(B)は、通信用情報管理テーブルの例を示す図である。通信用情報管理テーブルは、受信側識別子、送信側識別子、受信側通信用アドレスを含む。
受信側識別子は、通信用メッセージの受信を許可する端末装置100の識別子である。図11(B)においては、端末装置100−1の識別子「abc」及び端末装置100−2の識別子「def」が登録されている。
送信側識別子は、受信側識別子に登録されている端末装置100が受信を許可する送信元の端末装置100の識別子である。図11(B)においては、何も登録されていない。送信側識別子は、通信が行われていない状態では、何も登録されない。
受信側通信用アドレスは、受信側識別子に登録されている端末装置100が通信用メッセージの送受信に使用するネットワークアドレス及びポート番号である。図11(B)においては、端末装置100−1のネットワークアドレスと通信用ポート「IP1 ポート12」、及び端末装置100−2のネットワークアドレスと通信用ポート「IP2 ポート22」が登録されている。
図12は、署名認証処理S100の処理フローチャートの例を示す図である。中継装置200は、署名認証処理S100において、接続するノード300から署名認証の対象となるメッセージの送信元の識別子を持つ端末装置100の公開鍵を取得し、当該メッセージの送信元が正当であるかどうか(登録されている端末装置であるか否か)を認証する。
中継装置200は、署名認証処理S100において、接続するノード300に署名検証要求を送信する(S100−1)。署名検証要求は、ノード300に対して、メッセージに含まれる識別子に対応する公開鍵を送信するよう要求するメッセージである。署名検証要求に含まれる情報については、後述する。
なお、中継装置200は、端末装置100からメッセージを受信したときの各処理において、署名認証処理S100を実行する。中継装置200は、署名認証処理S100において認証が失敗した場合(認証がエラーとなった場合)、当該受信メッセージを破棄する破棄処理を行う。
中継装置200は、ノード300からの署名検証応答を待ち受ける(S100−2のNo)。署名検証応答は、中継装置200に対象の識別子を有する端末装置100の公開鍵を引き渡すメッセージである。署名検証応答に含まれる情報については、後述する。
中継装置200は、ノード300から署名検証応答を受信すると(S100−2のYes)、対象の識別子に対応する公開鍵を取得できたか否かを確認する(S100−3)。例えば、対象の識別子がノード300の分散台帳に登録されていない場合、ノード300は、署名検証応答に公開鍵を掲載しない。この場合、中継装置200は、公開鍵を取得できないと判定する。
中継装置200は、公開鍵を取得できた場合(S100−3のYes)、取得した公開鍵で受信したメッセージの署名の認証を行う(S100−4)。中継装置200は、署名認証が成功した場合(S100−4のYes)、当該メッセージを認証成功と判定し(S100−5)、署名認証が失敗した場合(S100−4のNo)、当該メッセージを認証失敗と判定し(S100−6)、処理を終了する。
一方、中継装置200は、公開鍵を取得できなかった場合(S100−3のNo)、当該識別子は分散台帳に登録されていないとみなし、当該メッセージを認証失敗と判定し(S100−6)、処理を終了する。
図5のシーケンスに戻り、中継装置200は、中継登録要求受信処理S15において、中継装置200は、署名検証要求をノード300−3に送信する(S16、図12のS100−1)。
図7(C)は、署名検証要求S16の例を示す図である。署名検証要求は、送信元アドレス、送信先アドレス、メッセージ種別、及び識別子を含む。識別子は、署名認証の対象となるメッセージの送信元の識別子である。署名検証要求S16の場合、識別子は、中継登録要求S14の送信元である端末装置100−1の識別子「abc」が掲載される。
図5のシーケンスに戻り、ノード300−1は、署名検証要求S16を受信すると、識別子「abc」に対応する公開鍵「Pka」を分散台帳から検出し、署名検証応答に掲載し、中継装置200に返信する(S17)。
図7(D)は、署名検証応答S17の例を示す図である。署名検証応答は、送信元アドレス、送信先アドレス、メッセージ種別、識別子検索結果、及び公開鍵を含む。識別子検索結果は、署名検証要求の識別子を分散台帳から検索した結果である。署名検証応答S17の場合、識別子検索結果は、識別子「abc」が分散台帳に登録済みであり、ノード300−1が識別子「abc」を検出できるため、OK(検索できた旨を示す)が掲載される。公開鍵は、署名検証要求の識別子に対応する公開鍵である。署名検証応答S17の場合、公開鍵は、識別子「abc」に対応する公開鍵「Pka」が掲載される。
図5のシーケンスに戻り、中継装置200は、署名検証応答S17を受信すると、中継登録要求受信処理S15において実行した署名認証処理S100の結果を確認し、認証が成功したことを認識し(図10のS15−1のYes)、端末装置100−1に中継登録応答を送信する(S18、図10のS15−2)。
図9(B)は、中継登録応答S18の例を示す図である。中継登録応答は、送信元アドレス、送信先アドレス、タイプ、メッセージ種別、送信元識別子、及び登録結果を含む。送信元識別子は、中継登録応答の送信元である中継装置200の識別子である。中継登録応答S18の場合、送信元識別子は、中継装置200の識別子「xyz」が掲載される。登録結果は、中継登録要求で要求された識別子、通信用アドレスなどが、中継装置200の内部テーブルに登録されたか否かの結果を示す。中継登録応答S18の場合、登録結果は、中継登録要求S14の識別子「abc」及び通信用ポート「IP1 ポートP12」が、制御用情報管理テーブル又は通信用情報管理テーブルに登録されているため、OK(登録できた)が掲載される。
図5のシーケンスに戻り、端末装置100−1は、中継登録応答S18を受信し、中継装置200への登録が完了したと認識し、登録処理を完了する。
<2.通信要求処理>
通信要求処理は、例えば、登録処理が完了している端末装置100が他の端末装置100と通信を開始するときの処理である。なお、端末装置100−1及び端末装置100−2が中継装置200と送受信するメッセージは、制御用メッセージであり、端末装置100−1が通信ポートP11(制御用ポート)を使用し、端末装置100−2が通信ポートP21(制御用ポート)を使用して、中継装置200と送受信を行う。
図13は、通信要求処理のシーケンスの例を示す図である。端末装置100−1は、端末装置100−2と通信を開始するとき、中継装置200に通信要求を送信する(S21)。
図14は、ノード300と、端末装置100又は中継装置200との間で送受信されるメッセージの例を示す図である。図14(A)は、通信要求S21の例を示す図である。
通信要求は、送信元アドレス、送信先アドレス、タイプ、メッセージ種別、送信元識別子、送信先識別子、及び署名を含むメッセージである。
送信元識別子は、通信の開始を要求する端末装置100の識別子が掲載される。通信要求S21の場合、送信元識別子は、端末装置100−1の識別子「abc」が掲載される。
送信先識別子は、通信の開始を要求される側の端末装置100の識別子が掲載される。通信要求S21の場合、送信先識別子は、端末装置100−2の識別子「def」が掲載される。
署名は、署名データが掲載される。通信要求S21の場合、署名は、端末装置100−1の秘密鍵Skaで生成された署名データが掲載される。
図13のシーケンスに戻り、中継装置200は、通信要求S21を受信すると、通信要求受信処理を行う(S22)。
図15は、通信要求受信処理S21の処理フローチャートの例を示す図である。中継装置200は、通信要求受信処理S21において、署名認証処理S100を行う。中継装置200は、署名認証処理S100の結果、受信したメッセージの署名の認証が成功した場合(S22−1のYes)、当該ユーザが制御用情報管理テーブルに登録済みであるか否かを確認する(S22−2)。
一方、中継装置200は、署名認証処理S100の結果、受信したメッセージの署名の認証が失敗した場合(S22−1のNo)、受信したメッセージを破棄し、処理を終了する。
中継装置200は、当該ユーザが制御用情報管理テーブルに登録済みである場合(S22−2のYes)、送信先の端末装置100に通信要求を送信し(S22−3)、通信用情報管理テーブルを更新し(S22−4)、処理を終了する。中継装置200は、処理S22−4において、通信要求の送信元の端末装置100の識別子が記憶された受信側識別子に対応する送信側識別子を、送信先識別子に更新する。通信用情報管理テーブルを上述のように更新することで、少なくとも、通信要求を送信した端末装置100は、送信先の端末装置100からの通信用メッセージの受信を許可している状態となる。
一方、中継装置200は、当該ユーザが制御用情報管理テーブルに登録済みでない場合(S22−2のNo)、送信元の端末装置100に通信応答(NG)を送信し(S22−5)、処理を終了する。中継装置200は、未登録の端末装置100から通信要求を受信した場合、通信応答(NG)を返信し、当該端末装置100のノード300の分散台帳への登録、又は中継装置200への登録のいずれかが、正しく完了していないことを送信元の端末装置100に通知する。
図13のシーケンスに戻り、中継装置200は、通信要求受信処理S22において、署名認証処理S100を行い、ノード300−3に署名検証要求を送信し(S23、図12のS100−1)、ノード300−3から署名検証応答を受信し(S24、図12のS100−2)、受信した通信要求S21の署名の認証を行う。中継装置200は、端末装置100−1は正当な端末装置100であると認証し(図12のS100−4)、認証成功と判定する(図15のS22−1のYes)。そして、中継装置200は、端末装置100−1が制御情報管理テーブルに登録されていることを確認し(図15のS22−2のYes)、送信先の端末装置100−2に通信要求を送信する(S25、図15のS22−3)。
図14(B)は、通信要求S25の例を示す図である。中継装置200は、送信元アドレス及び送信先アドレス以外は、受信した通信要求S21の内容を載せ替え、通信要求S25を端末装置100−2に送信する。
図13のシーケンスに戻り、中継装置200は、通信用情報管理テーブルを更新し(図15のS22−4)、通信要求受信処理S22を終了し、通信応答を待ち受ける。
図16は、通信用情報管理テーブルの例を示す図である。中継装置200は、通信用情報管理テーブルを、図11(B)に示す状態(受信側識別子「abc」に対応する送信側識別子「−」)を、図16(A)に示す状態のように、受信側識別子「abc」に対応する送信側識別子を、通信要求に含まれる送信先識別子である「def」とする。
図13のシーケンスに戻り、中継装置200は、端末装置100−2から通信応答を受信すると(S26)、通信応答受信処理を行う(S27)。
図14(C)は、通信応答S26の例を示す図である。通信応答は、送信元アドレス、送信先アドレス、タイプ、メッセージ種別、送信元識別子、送信先識別子、通信許可、及び署名を含むメッセージである。
送信元識別子は、通信の開始を許可(又は不許可)する端末装置100の識別子が掲載される。通信応答S26の場合、送信元識別子は、端末装置100−2の識別子「def」が掲載される。
送信先識別子は、通信の開始を許可(又は不許可)された端末装置100の識別子が掲載される。通信応答S26の場合、送信先識別子は、端末装置100−1の識別子「abc」が掲載される。
通信許可は、通信を許可するか否か(通信メッセージの受信を許可するか否か)を示す情報である。通信応答S26の場合、通信許可は、端末装置100−2が端末装置100−1からの通信メッセージの受信を許可する「OK」が掲載される。
署名は、署名データが掲載される。通信応答S26の場合、署名は、端末装置100−2の秘密鍵Skdで生成された署名データが掲載される。
図17は、通信応答受信処理S27の処理フローチャートの例を示す図である。中継装置200は、通信応答受信処理S27において、署名認証処理S100を行う。中継装置200は、署名認証処理S100の結果、受信したメッセージの署名の認証が成功した場合(S27−1のYes)、当該ユーザが制御用情報管理テーブルに登録済みであるか否かを確認する(S27−2)。
中継装置200は、当該ユーザが制御用情報管理テーブルに登録済みである場合(S27−2のYes)、通信応答の通信許可がOKか否かを確認する(S27−3)。中継装置200は、通信応答の通信許可がOKである場合(S27−3のYes)、送信先の端末装置100(通信要求の送信元の端末装置100)に通信応答(OK)を送信し(S27−4)、通信用情報管理テーブルを更新し(S27−5)、処理を終了する。中継装置200は、処理S27−5において、通信応答(OK)の送信元の端末装置100の識別子が記憶された受信側識別子に対応する送信側識別子を、送信先識別子に更新する。通信用情報管理テーブルを上述のように更新することで、通信応答(OK)を送信した端末装置100は、送信先の端末装置100からの通信用メッセージの受信を許可している状態となる。すなわち、通信要求受信処理S22における更新処理S22−4及び通信応答受信処理S27における更新処理S27−5の両方を実施することで、通信する端末装置100の双方向のメッセージの送受信が許可された状態となる。
一方、中継装置200は、通信応答の通信許可がNGである場合(S27−3のNo)、送信先の端末装置100(通信要求の送信元の端末装置100)に通信応答(NG)を送信し(S27−6)、処理を終了する。
さらに一方、中継装置200は、署名認証処理S100の結果、受信したメッセージの署名の認証が失敗した場合(S27−1のNo)、及び当該ユーザが制御用情報管理テーブルに登録済みでない場合(S27−2のNo)、受信したメッセージを破棄し、処理を終了する。
図13のシーケンスに戻り、中継装置200は、通信応答受信処理S27において、署名認証処理S100を行い、ノード300−3に署名検証要求を送信し(S28、図12のS100−1)、ノード300−3から署名検証応答を受信し(S29、図12のS100−2)、受信した通信応答S26の署名の認証を行う。中継装置200は、端末装置100−2は正当な端末装置100であると認証し(図12のS100−4)、認証成功と判定する(図17のS27−1のYes)。そして、中継装置200は、端末装置100−2が制御情報管理テーブルに登録されていることを確認し(図17のS27−2のYes)、送信先の端末装置100−1に通信応答(OK)を送信する(S30、図17のS27−4)。
図14(D)は、通信応答S30の例を示す図である。中継装置200は、送信元アドレス及び送信先アドレス以外は、受信した通信応答S26の内容を載せ替え、通信応答S30を端末装置100−1に送信する。
図13のシーケンスに戻り、中継装置200は、通信用情報管理テーブルを更新し(図17のS27−5)、通信応答受信処理S27を終了する。
中継装置200は、通信用情報管理テーブルを、図16(A)に示す状態(受信側識別子「def」に対応する送信側識別子「−」)を、図16(B)に示す状態のように、受信側識別子「def」に対応する送信側識別子を、通信応答に含まれる送信先識別子である「abc」とする。これにより、端末装置100−1と端末装置100−2は、互いにメッセージの送受信を許可した状態となる。
<3.通信処理>
通信処理は、例えば、互いに通信メッセージの送受信を許可している端末装置100が、通信データを送受信する処理である。なお、通信処理において、端末装置100−1及び端末装置100−2が中継装置200と送受信するメッセージは、通信用メッセージであり、端末装置100−1が通信ポートP12(通信用ポート)を使用し、端末装置100−2が通信ポートP22(通信用ポート)を使用して、中継装置200と送受信を行う。
図18は、通信処理のシーケンスの例を示す図である。端末装置100−1は、端末装置100−2に、中継装置200を介して通信データを送信する。
端末装置100−1は、端末装置100−2宛ての通信データを、中継装置200に送信する(S41)。
図19は、ノード300と、端末装置100又は中継装置200との間で送受信されるメッセージの例を示す図である。図19(A)は、通信データS41の例を示す図である。
通信データは、送信元アドレス、送信先アドレス、タイプ、メッセージ種別、送信元識別子、送信先識別子、ペイロード、及び署名を含むメッセージである。
送信元識別子は、通信データの送信元の端末装置100の識別子が掲載される。通信データS41の場合、送信元識別子は、端末装置100−1の識別子「abc」が掲載される。
送信先識別子は、通信データの送信先の端末装置100の識別子が掲載される。通信データS45の場合、送信先識別子は、端末装置100−2の識別子「def」が掲載される。
ペイロードは、通信で送受信されるデータ(ユーザデータ)が含まれる。
署名は、署名データが掲載される。通信データS41の場合、署名は、端末装置100−1の秘密鍵Skaで生成された署名データが掲載される。
図18のシーケンスに戻り、中継装置200は、通信データS41を受信すると、通信データ受信処理を行う(S42)。
図20は、通信データ受信処理S42の処理フローチャートの例を示す図である。中継装置200は、通信データ受信処理S42において、署名認証処理S100を行う。中継装置200は、署名認証処理S100の結果、受信したメッセージの署名の認証が成功した場合(S42−1のYes)、当該ユーザが、通信用情報管理テーブルにおいて、通信許可されたユーザであるか否かを確認する(S42−2)。
中継装置200は、通信データの送信先識別子が通信用情報管理テーブルの受信側識別子に含まれ、通信データの送信元識別子が通信用情報管理テーブルの送信側識別子に含まれている場合、当該通信データのユーザは、通信が許可されていると判定する。
中継装置200は、当該ユーザが通信許可されている場合(S42−2のYes)、通信データを送信先の端末装置に送信し(S42−3)、処理を終了する。一方、中継装置200は、当該ユーザが通信許可されていない場合(S42−2のNo)、また認証が失敗した場合(S42−1のNo)、通信データを破棄し、処理を終了する。
図18のシーケンスに戻り、中継装置200は、通信データ受信処理S42において、署名認証処理S100を行い、ノード300−3に署名検証要求を送信し(S43、図12のS100−1)、ノード300−3から署名検証応答を受信し(S44、図12のS100−2)、受信した通信データS41の署名の認証を行う。中継装置200は、端末装置100−1は正当な端末装置100であると認証し(図12のS100−4)、認証成功と判定する(図20のS42−1のYes)。そして、中継装置200は、端末装置100−1が通信情報管理テーブルの送信側識別子に登録され、対応する受信側識別子に端末装置100−2が登録されていることを確認し(図20のS42−2のYes)、送信先の端末装置100−2に通信データを送信する(S45、図20のS42−3)。
図19(B)は、通信データS45の例を示す図である。中継装置200は、送信元アドレス及び送信先アドレス以外は、受信した通信データS41の内容を載せ替え、通信データS45Sを端末装置100−2に送信する。
第1の実施の形態において、中継装置200は、通信を行う端末装置間のメッセージの送受信を中継する。中継装置200は、端末装置100の登録や通信の中継において、ノード300の分散台帳から公開鍵を取得し、メッセージの署名の認証を行う。これにより、端末装置間で、署名認証が完了している安全性の高いメッセージを送受信することができる。
[第2の実施の形態]
次に、第2の実施の形態について説明する。第2の実施の形態における通信システム10は、通信を不許可にすることを通知又は要求する通信拒否メッセージを装置間で送受信する。第21の実施の形態では、通信中の通信拒否メッセージ受信時の処理、及び通信応答(NG)受信時の処理について説明する。
<1.通信応答(NG)時の処理>
図21は、端末装置100−2が通信応答(NG)を送信する場合のシーケンスの例を示す図である。端末装置100は、例えば、端末装置100のユーザの操作や、端末装置100で起動中のアプリケーションの判定などにより、通信を許可しない通信応答(NG)を送信する場合がある。
通信要求S21から通信要求S25までは、図13のシーケンスにおける通信要求S21から通信要求S25と同様である。端末装置100−2は、端末装置100−1からの通信要求に対して、通信応答(NG)を送信する。
図22は、ノード300と、端末装置100又は中継装置200との間で送受信されるメッセージの例を示す図である。図22(A)は、通信応答(NG)S50の例を示す図である。
通信応答は、送信元アドレス、送信先アドレス、タイプ、メッセージ種別、送信元識別子、送信先識別子、ペイロード、及び署名を含むメッセージである。
送信元識別子は、通信応答の送信元の端末装置100の識別子が掲載される。通信応答(NG)S50の場合、送信元識別子は、端末装置100−2の識別子「def」が掲載される。
送信先識別子は、通信応答の送信先の端末装置100の識別子が掲載される。通信応答(NG)S50の場合、送信先識別子は、端末装置100−1の識別子「abc」が掲載される。
通信許可は、通信を許可するか否か(通信メッセージの受信を許可するか否か)を示す情報である。通信応答S50の場合、通信許可は、端末装置100−2が端末装置100−1からの通信メッセージの受信を許可しない「NG」が掲載される。
署名は、署名データが掲載される。通信応答S50の場合、署名は、端末装置100−2の秘密鍵Skdで生成された署名データが掲載される。
図21のシーケンスに戻り、中継装置200は、通信応答(NG)S50を受信すると、通信応答受信処理S27を行う。中継装置200は、通信応答受信処理S27において、署名認証処理S100を行い、ノード300−3に署名検証要求を送信し(S51、図12のS100−1)、ノード300−3から署名検証応答を受信し(S52、図12のS100−2)、受信した通信応答(NG)S50の署名の認証を行う。中継装置200は、端末装置100−2は正当な端末装置100であると認証し(図12のS100−4)、認証成功と判定する(図17のS27−1のYes)。そして、中継装置200は、端末装置100−2が制御情報管理テーブルに登録されていることを確認する(図17のS27−2のYes)。そして、中継装置200は、通信応答(NG)S50の通信許可がNGであるため(図17のS27−3)、送信先の端末装置100−1に通信応答(NG)を送信する(S53、図17のS27−4)。図22(B)は、通信応答S53の例を示す図である。送信元アドレス、送信先アドレス以外は、図22(A)に示す通信応答S50と同様である。
端末装置100−1は、通信応答(NG)S53を受信すると、自装置の通信要求を、相手装置(端末装置100−2)が拒否したこと(相手装置が自装置からの通信メッセージの受信を拒否したこと)を認識する。端末装置100−1は、例えば、自装置が通信を拒否された場合、自装置も、相手装置からの通信メッセージの受信を拒否する。そして、端末装置100−1は、自装置が通信メッセージの受信を拒否することを意味する通信拒否を、中継装置200を介して端末装置100−2に送信する(S54)。
図23は、ノード300と、端末装置100又は中継装置200との間で送受信されるメッセージの例を示す図である。図23(A)は、通信拒否S54の例を示す図である。
通信拒否は、送信元アドレス、送信先アドレス、タイプ、メッセージ種別、送信元識別子、送信先識別子、及び署名を含むメッセージである。
送信元識別子は、通信拒否の送信元の端末装置100の識別子が掲載される。通信拒否S54の場合、送信元識別子は、端末装置100−1の識別子「abc」が掲載される。
送信先識別子は、通信拒否の送信先の端末装置100の識別子が掲載される。通信拒否S54の場合、送信先識別子は、端末装置100−2の識別子「def」が掲載される。
署名は、署名データが掲載される。通信拒否S54の場合、署名は、端末装置100−1の秘密鍵Skaで生成された署名データが掲載される。
図21のシーケンスに戻り、中継装置200は、通信拒否S54を受信すると、通信拒否受信処理を行う(S200)。
図24は、通信拒否受信処理S200の処理フローチャートの例を示す図である。中継装置200は、通信拒否受信処理S200において、署名認証処理S100を行う。中継装置200は、署名認証処理S100の結果、受信したメッセージの署名の認証が成功した場合(S200−1のYes)、通信用情報管理テーブルを更新し(S200−2)、通信拒否を送信先の端末装置100に送信し(S200−3)、処理を終了する。
中継装置200は、処理S200−3において、通信拒否の送信元の端末装置100の識別子が記憶された受信側識別子に対応する送信側識別子を、なしの状態(「−」)に更新する。通信用情報管理テーブルを上述のように更新することで、通信拒否を送信した端末装置100は、送信先の端末装置100からの通信用メッセージの受信を許可しない状態となる。
一方、中継装置200は、認証が失敗した場合(S200−1のNo)、通信拒否を破棄し、処理を終了する。
図21のシーケンスに戻り、中継装置200は、通信拒否信処理S200において、署名認証処理S100を行い、ノード300−3に署名検証要求を送信し(S55、図12のS100−1)、ノード300−3から署名検証応答を受信し(S56、図12のS100−2)、受信した通信拒否S54の署名の認証を行う。中継装置200は、端末装置100−1は正当な端末装置100であると認証し(図12のS100−4)、認証成功と判定する(図24のS200−1のYes)。そして、中継装置200は、通信用情報管理テーブルを更新し(図24のS200−2)、送信先の端末装置100−2に通信拒否を送信する(S57、図24のS200−3)。
図25は、通信用情報管理テーブルの例を示す図である。図25(A)は、通信要求S21受信時の通信用情報管理テーブルの例を示す図である。中継装置200は、通信用情報管理テーブルを、図25(A)に示す状態(受信側識別子「abc」に対応する送信側識別子「def」)を、図25(B)に示す状態のように、受信側識別子「abc」に対応する送信側識別子を、通信拒否の送信先識別子である「def」を削除した状態「−」に更新する。これにより、端末装置100−1は、端末装置100−2からの通信メッセージを受信しない状態となり、互いにメッセージの送受信を許可しない状態となる。
<2.通信中の通信拒否受信時の処理>
図26は、通信中に端末装置100−1が通信拒否を送信する場合のシーケンスの例を示す図である。端末装置100は、例えば、通信を終了するとき、通信拒否を送信する場合がある。
端末装置100−1は、通信拒否を中継装置200に送信する(S61)。中継装置200は、通信拒否を受信すると、通信拒否受信処理S200を行う。
中継装置200は、通信拒否信処理S200において、署名認証処理S100を行い、ノード300−3に署名検証要求を送信し(S62、図12のS100−1)、ノード300−3から署名検証応答を受信し(S63、図12のS100−2)、受信した通信拒否S61の署名の認証を行う。中継装置200は、端末装置100−1は正当な端末装置100であると認証し(図12のS100−4)、認証成功と判定する(図24のS200−1のYes)。そして、中継装置200は、通信用情報管理テーブルを更新し(図24のS200−2)、送信先の端末装置100−2に通信拒否を送信する(S64、図24のS200−3)。
図27は、通信用情報管理テーブルの例を示す図である。図27(A)は、通信中の通信用情報管理テーブルの例を示す図である。中継装置200は、通信用情報管理テーブルを、図27(A)に示す状態(受信側識別子「abc」に対応する送信側識別子「def」)を、図27(B)に示す状態のように、受信側識別子「abc」に対応する送信側識別子を、通信拒否の送信先識別子である「def」を削除した状態「−」に更新する。これにより、端末装置100−1は、端末装置100−2からの通信メッセージを受信しない状態となる。
図26のシーケンスに戻り、端末装置100−2は、端末装置100−1からの通信拒否S64を受信すると、端末装置100−1が以降の通信メッセージの受信を拒否したことを認識する。そして、端末装置100−2は、自装置も端末装置100−1からの通信メッセージの受信を拒否することを通知するため、端末装置100−1宛ての通信拒否を中継装置200に送信する(S65)。
中継装置200は、通信拒否S65を受信すると、通信拒否受信処理S200を行う。中継装置200は、通信拒否信処理S200において、署名認証処理S100を行い、ノード300−3に署名検証要求を送信し(S66、図12のS100−1)、ノード300−3から署名検証応答を受信し(S67、図12のS100−2)、受信した通信拒否S65の署名の認証を行う。中継装置200は、端末装置100−2は正当な端末装置100であると認証し(図12のS100−4)、認証成功と判定する(図24のS200−1のYes)。そして、中継装置200は、通信用情報管理テーブルを更新し(図24のS200−2)、送信先の端末装置100−1に通信拒否を送信する(S68、図24のS200−3)。
中継装置200は、通信用情報管理テーブルを、図27(B)に示す状態(受信側識別子「def」に対応する送信側識別子「abc」)を、図27(C)に示す状態のように、受信側識別子「def」に対応する送信側識別子を、通信拒否の送信先識別子である「abc」を削除した状態「−」に更新する。これにより、端末装置100−2は、端末装置100−1からの通信メッセージを受信しない状態となる。すなわち、端末装置100−1及び2は、互いの通信メッセージを受信しない、通信拒否の状態となる。
第2の実施の形態において、中継装置200は、通信拒否を受信することで、通信用情報管理テーブルを更新し、通信メッセージの送受信を拒否する。中継装置200は、端末装置100−1から通信拒否を受信した場合は端末装置100−1に対する通信メッセージの送信を拒否する状態とするが、逆方向の端末装置100−2に対する通信メッセージの送信は許可した状態のままとする。そして、中継装置200は、端末装置100−2から通信拒否を受信し、端末装置100−2に対する通信メッセージの送信を拒否する状態とすることで、互いに通信できない状態とする。また、第1の実施の形態では、通信応答受信時に、送信元の装置の受信許可をしている。中継装置200は、署名の認証で正当性が確保されるのは送信元装置のみであり、送信先装置は正当化否かわからないため、送信元の端末装置の受信許可か否かの状態だけを更新することで、他の端末装置(例えば、悪意ある第三者)からの通信拒否メッセージによりテーブルを更新されることを抑制する。
[その他の実施の形態]
端末装置100は、互いの通信においてのみ共通鍵を使用する場合がある。通信要求メッセージは、共通鍵を含んでもよい。例えば、端末装置100−1が生成した共通鍵を、端末装置100−1が端末装置100−2と通信を開始するときに送信する通信要求メッセージに含め、端末装置100−2に送信する。これにより、端末装置100−1,2は、中継装置200で署名認証されたメッセージを使用して、共通鍵を共有することができる。
また、第2の実施の形態において、端末装置100は、通信拒否メッセージを受信すると、自装置も通信拒否メッセージを相手装置に送信する。しかし、例えば、一方向の通信を許容する場合、端末装置100は、受信した通信拒否メッセージに対応した通信拒否メッセージを返信しなくてもよい。
さらに、端末装置100が3台以上存在する場合、三者間以上での通信についても同様の処理で実現可能である。
以上まとめると、付記のようになる。
(付記1)
通信装置の識別子と、前記通信装置が通信に使用する公開鍵を分散台帳に記憶し、前記分散台帳を共有する分散台帳機能を有する複数のノードと、前記ノードのいずれかに接続する前記通信装置と、前記ノードのいずれかに接続する中継装置とを有する通信システムにおける前記中継装置のコンピュータに実行させる通信中継プログラムであって、
前記通信装置とメッセージを送受信する送受信処理と、
前記ノードから前記メッセージの送信元の通信装置の公開鍵を取得し、前記取得した公開鍵で前記メッセージに含まれる署名を認証する認証処理と、
第1通信装置が第2通信装置に送信する通信データを含む通信メッセージを受信したとき、前記通信メッセージに対して前記認証処理を実行し、前記認証が成功した場合、前記通信メッセージを前記第2通信装置に送信する中継処理と、
を実行させる通信中継プログラム。
(付記2)
さらに、前記第1通信装置が前記第2通信装置と通信を開始するとき送信されるメッセージであって、前記第2通信装置に通信の許可を要求する通信要求メッセージを受信したとき、前記認証処理を実行し、前記認証が成功したとき、前記第2通信装置に前記通信要求メッセージを送信する要求受信処理と、
前記通信要求メッセージに対する応答である通信応答メッセージを前記第2通信装置から受信したとき、前記認証を行い、前記認証が成功したとき、前記第1通信装置に前記通信応答メッセージを送信する応答受信処理と、
を実行させる付記1記載の通信中継プログラム。
(付記3)
前記中継装置は、前記通信装置が前記通信メッセージの受信を許可するか否かの受信許可状態を管理する通信管理テーブルを有し、
前記要求受信処理において、前記認証が成功したとき、前記第1通信装置が前記第2通信装置から送信される前記通信メッセージの受信を許可する状態に前記通信管理テーブルを更新する
付記2記載の通信中継プログラム。
(付記4)
前記通信応答メッセージは、前記通信を許可するか否かを示す許可情報を含み、
前記応答受信処理において、前記認証が成功し、前記許可情報が前記通信を許可することを示す場合、前記第2通信装置が前記第1通信装置から送信される前記通信メッセージの受信を許可する状態に前記通信管理テーブルを更新する
付記3記載の通信中継プログラム。
(付記5)
前記中継装置は、前記通信装置の識別子を登録する制御管理テーブルを有し、
さらに、前記通信装置が前記通信システムに参加したときに送信するメッセージであって、前記通信装置の識別子を含む登録要求メッセージを受信したとき、前記認証処理を実行し、前記認証が成功したとき、前記通信装置の識別子を前記制御管理テーブルに登録する登録処理と、
を実行させる付記1記載の通信中継プログラム。
(付記6)
前記制御管理テーブルは、さらに、前記通信装置が前記通信メッセージ以外の制御メッセージを送受信するネットワークアドレス又は通信ポート又はその両方を記憶し、
前記登録要求メッセージは、前記ネットワークアドレス又は通信ポート又はその両方を含み、
前記登録処理において、前記通信装置の識別子を前記制御管理テーブルに登録する場合、前記ネットワークアドレス又は通信ポート又はその両方を前記制御管理テーブルに登録する
付記5記載の通信中継プログラム。
(付記7)
さらに、前記第1通信装置から前記第2通信装置に送信されるメッセージであって、前記第2通信装置から送信される前記通信メッセージの受信を拒否することを通知する拒否メッセージを受信したとき、前記認証処理を実行し、前記認証が成功した場合、前記第1通信装置が前記第2通信装置から送信される前記通信メッセージの受信を許可しない状態に前記通信管理テーブルを更新し、前記拒否メッセージを前記第2通信装置に送信する拒否受信処理と、
を実行させる付記4記載の通信中継プログラム。
(付記8)
前記通信要求メッセージは、前記第1通信装置と前記第2通信装置間の通信で使用し、前記第1通信装置と前記第2通信装置間の通信以外の通信で使用しない共通鍵を含む、
付記2記載の通信中継プログラム。
(付記9)
さらに、前記認証処理において、認証に失敗した場合、受信したメッセージを破棄する破棄処理と、
を実行させる付記1乃至8記載のいずれか1項記載の通信中継プログラム。
(付記10)
通信装置の識別子と、前記通信装置が通信に使用する公開鍵を分散台帳に記憶し、前記分散台帳を共有する分散台帳機能を有する複数のノードと、前記ノードのいずれかに接続する前記通信装置と、前記ノードのいずれかに接続する中継装置とを有する通信システムにおける前記中継装置であって、
前記通信装置とメッセージを送受信する送受信部と、
前記ノードから前記メッセージの送信元の通信装置の公開鍵を取得し、前記取得した公開鍵で前記メッセージに含まれる署名を認証する認証部と、
第1通信装置が第2通信装置に送信する通信データを含む通信メッセージを受信したとき、前記通信メッセージに対する認証を前記認証部に実行させ、前記認証が成功した場合、前記通信メッセージを前記第2通信装置に送信する中継部と、
を有する中継装置。
(付記11)
通信装置の識別子と、前記通信装置が通信に使用する公開鍵を分散台帳に記憶し、前記分散台帳を共有する分散台帳機能を有する複数のノードと、前記ノードのいずれかに接続する前記通信装置と、前記ノードのいずれかに接続する中継装置とを有する通信システムにおける前記中継装置における中継方法であって、
前記通信装置とメッセージを送受信する送受信工程と、
前記ノードから前記メッセージの送信元の通信装置の公開鍵を取得し、前記取得した公開鍵で前記メッセージに含まれる署名を認証する認証工程と、
第1通信装置が第2通信装置に送信する通信データを含む通信メッセージを受信したとき、前記通信メッセージに対して前記認証工程を実行し、前記認証が成功した場合、前記通信メッセージを前記第2通信装置に送信する中継工程と、
を有する通信中継方法。
(付記12)
通信装置の識別子と、前記通信装置が通信に使用する公開鍵を分散台帳に記憶し、前記分散台帳を共有する分散台帳機能を有する複数のノードと、前記ノードのいずれかに接続する通信装置と、前記ノードのいずれかに接続する中継装置とを有する通信システムであって、
前記通信装置は、他の通信装置と通信するとき、前記他の通信装置宛ての通信データを含む通信メッセージを、前記中継装置に送信し、
前記中継装置は、前記通信装置から前記通信メッセージを受信したとき、前記ノードから前記通信装置の公開鍵を取得し、前記取得した公開鍵で前記受信した通信メッセージに含まれる署名を認証し、前記認証に成功した場合、前記通信メッセージを前記他の通信装置に送信する
通信システム。
10 :通信システム
100 :端末装置
110 :CPU
120 :ストレージ
121 :ノード側通信プログラム
122 :分散台帳登録プログラム
123 :通信開始プログラム
124 :通信プログラム
125 :通信拒否プログラム
130 :メモリ
140 :通信回路
200 :中継装置
210 :CPU
220 :ストレージ
221 :ノード側通信プログラム
222 :端末側通信プログラム
223 :中継登録要求受信プログラム
224 :通信要求受信プログラム
225 :通信応答受信プログラム
226 :通信拒否受信プログラム
227 :署名認証プログラム
228 :制御情報管理テーブル
229 :通信情報管理テーブル
230 :メモリ
240 :通信回路
300 :ノード
310 :CPU
320 :ストレージ
321 :分散台帳プログラム
322 :中継装置側通信プログラム
323 :分散台帳
330 :メモリ
340 :通信回路

Claims (11)

  1. 通信装置の識別子と、前記通信装置が通信に使用する公開鍵を分散台帳に記憶し、前記分散台帳を共有する分散台帳機能を有する複数のノードと、前記ノードのいずれかに接続する前記通信装置と、前記ノードのいずれかに接続する中継装置とを有する通信システムにおける前記中継装置のコンピュータに実行させる通信中継プログラムであって、
    前記通信装置とメッセージを送受信する送受信処理と、
    前記ノードから前記メッセージの送信元の通信装置の公開鍵を取得し、前記取得した公開鍵で前記メッセージに含まれる署名を認証する認証処理と、
    第1通信装置が第2通信装置に送信する通信データを含む通信メッセージを受信したとき、前記通信メッセージに対して前記認証処理を実行し、前記認証が成功した場合、前記通信メッセージを前記第2通信装置に送信する中継処理と、
    を実行させる通信中継プログラム。
  2. さらに、前記第1通信装置が前記第2通信装置と通信を開始するとき送信されるメッセージであって、前記第2通信装置に通信の許可を要求する通信要求メッセージを受信したとき、前記認証処理を実行し、前記認証が成功したとき、前記第2通信装置に前記通信要求メッセージを送信する要求受信処理と、
    前記通信要求メッセージに対する応答である通信応答メッセージを前記第2通信装置から受信したとき、前記認証を行い、前記認証が成功したとき、前記第1通信装置に前記通信応答メッセージを送信する応答受信処理と、
    を実行させる請求項1記載の通信中継プログラム。
  3. 前記中継装置は、前記通信装置が前記通信メッセージの受信を許可するか否かの受信許可状態を管理する通信管理テーブルを有し、
    前記要求受信処理において、前記認証が成功したとき、前記第1通信装置が前記第2通信装置から送信される前記通信メッセージの受信を許可する状態に前記通信管理テーブルを更新する
    請求項2記載の通信中継プログラム。
  4. 前記通信応答メッセージは、前記通信を許可するか否かを示す許可情報を含み、
    前記応答受信処理において、前記認証が成功し、前記許可情報が前記通信を許可することを示す場合、前記第2通信装置が前記第1通信装置から送信される前記通信メッセージの受信を許可する状態に前記通信管理テーブルを更新する
    請求項3記載の通信中継プログラム。
  5. 前記中継装置は、前記通信装置の識別子を登録する制御管理テーブルを有し、
    さらに、前記通信装置が前記通信システムに参加したときに送信するメッセージであって、前記通信装置の識別子を含む登録要求メッセージを受信したとき、前記認証処理を実行し、前記認証が成功したとき、前記通信装置の識別子を前記制御管理テーブルに登録する登録処理と、
    を実行させる請求項1記載の通信中継プログラム。
  6. 前記制御管理テーブルは、さらに、前記通信装置が前記通信メッセージ以外の制御メッセージを送受信するネットワークアドレス又は通信ポート又はその両方を記憶し、
    前記登録要求メッセージは、前記ネットワークアドレス又は通信ポート又はその両方を含み、
    前記登録処理において、前記通信装置の識別子を前記制御管理テーブルに登録する場合、前記ネットワークアドレス又は通信ポート又はその両方を前記制御管理テーブルに登録する
    請求項5記載の通信中継プログラム。
  7. さらに、前記第1通信装置から前記第2通信装置に送信されるメッセージであって、前記第2通信装置から送信される前記通信メッセージの受信を拒否することを通知する拒否メッセージを受信したとき、前記認証処理を実行し、前記認証が成功した場合、前記第1通信装置が前記第2通信装置から送信される前記通信メッセージの受信を許可しない状態に前記通信管理テーブルを更新し、前記拒否メッセージを前記第2通信装置に送信する拒否受信処理と、
    を実行させる請求項4記載の通信中継プログラム。
  8. 前記通信要求メッセージは、前記第1通信装置と前記第2通信装置間の通信で使用し、前記第1通信装置と前記第2通信装置間の通信以外の通信で使用しない共通鍵を含む、
    請求項2記載の通信中継プログラム。
  9. さらに、前記認証処理において、認証に失敗した場合、受信したメッセージを破棄する破棄処理と、
    を実行させる請求項1乃至8記載のいずれか1項記載の通信中継プログラム。
  10. 通信装置の識別子と、前記通信装置が通信に使用する公開鍵を分散台帳に記憶し、前記分散台帳を共有する分散台帳機能を有する複数のノードと、前記ノードのいずれかに接続する前記通信装置と、前記ノードのいずれかに接続する中継装置とを有する通信システムにおける前記中継装置であって、
    前記通信装置とメッセージを送受信する送受信部と、
    前記ノードから前記メッセージの送信元の通信装置の公開鍵を取得し、前記取得した公開鍵で前記メッセージに含まれる署名を認証する認証部と、
    第1通信装置が第2通信装置に送信する通信データを含む通信メッセージを受信したとき、前記通信メッセージに対する認証を前記認証部に実行させ、前記認証が成功した場合、前記通信メッセージを前記第2通信装置に送信する中継部と、
    を有する中継装置。
  11. 通信装置の識別子と、前記通信装置が通信に使用する公開鍵を分散台帳に記憶し、前記分散台帳を共有する分散台帳機能を有する複数のノードと、前記ノードのいずれかに接続する前記通信装置と、前記ノードのいずれかに接続する中継装置とを有する通信システムにおける前記中継装置における中継方法であって、
    前記通信装置とメッセージを送受信する送受信工程と、
    前記ノードから前記メッセージの送信元の通信装置の公開鍵を取得し、前記取得した公開鍵で前記メッセージに含まれる署名を認証する認証工程と、
    第1通信装置が第2通信装置に送信する通信データを含む通信メッセージを受信したとき、前記通信メッセージに対して前記認証工程を実行し、前記認証が成功した場合、前記通信メッセージを前記第2通信装置に送信する中継工程と、
    を有する通信中継方法。
JP2019175822A 2019-09-26 2019-09-26 通信中継プログラム、中継装置、及び通信中継方法 Active JP7372527B2 (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
JP2019175822A JP7372527B2 (ja) 2019-09-26 2019-09-26 通信中継プログラム、中継装置、及び通信中継方法
EP20191503.0A EP3799351B1 (en) 2019-09-26 2020-08-18 Communication relay program, relay device communication relay method, and communication system
US16/998,214 US11671403B2 (en) 2019-09-26 2020-08-20 Relay device, non-transitory computer-readable storage medium and communication system
CN202010946607.4A CN112565175B (zh) 2019-09-26 2020-09-10 通信中继程序、中继设备、通信中继方法和通信系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2019175822A JP7372527B2 (ja) 2019-09-26 2019-09-26 通信中継プログラム、中継装置、及び通信中継方法

Publications (2)

Publication Number Publication Date
JP2021052362A true JP2021052362A (ja) 2021-04-01
JP7372527B2 JP7372527B2 (ja) 2023-11-01

Family

ID=72145275

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2019175822A Active JP7372527B2 (ja) 2019-09-26 2019-09-26 通信中継プログラム、中継装置、及び通信中継方法

Country Status (4)

Country Link
US (1) US11671403B2 (ja)
EP (1) EP3799351B1 (ja)
JP (1) JP7372527B2 (ja)
CN (1) CN112565175B (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111935000B (zh) * 2020-09-25 2021-01-08 支付宝(杭州)信息技术有限公司 消息传输方法及装置

Family Cites Families (59)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7493486B1 (en) * 2000-06-09 2009-02-17 Verizon Laboratories, Inc. Method and apparatus for supporting cryptographic-related activities in a public key infrastructure
US20030093678A1 (en) * 2001-04-23 2003-05-15 Bowe John J. Server-side digital signature system
WO2003039094A2 (en) 2001-10-29 2003-05-08 Omtool, Ltd Methods and apparatus for securely communicating a message
JP3826782B2 (ja) * 2001-12-12 2006-09-27 ソニー株式会社 データ伝送システム、情報処理装置および方法、記録媒体、並びにプログラム
US7613923B2 (en) 2004-02-25 2009-11-03 Watchguard Technologies, Inc. Method and apparatus for controlling unsolicited messaging in real time messaging networks
US8885894B2 (en) * 2004-06-14 2014-11-11 Michael John Rowen Reduction of transaction fraud through the use of automatic centralized signature/sign verification combined with credit and fraud scoring during real-time payment card authorization processes
JP2006101414A (ja) 2004-09-30 2006-04-13 Toshiba Corp ネットワーク管理装置及びネットワーク管理方法
JP4109273B2 (ja) 2005-06-13 2008-07-02 株式会社日立製作所 ネットワーク接続システム、ネットワーク接続装置およびプログラム
JP2007005847A (ja) 2005-06-21 2007-01-11 Alaxala Networks Corp ネットワークにおけるデータ伝送制御
KR100825736B1 (ko) * 2005-12-07 2008-04-29 한국전자통신연구원 무선 xml 전자 서명 서비스 제공 장치 및 그 방법
JP4626527B2 (ja) * 2006-02-06 2011-02-09 株式会社日立製作所 印刷処理システムおよび印刷処理装置
JP4662273B2 (ja) * 2006-03-24 2011-03-30 富士通株式会社 通信装置、方法及びプログラム
EP1860817B1 (en) * 2006-05-26 2009-03-25 Sap Ag Method and system for protecting data of a mobile agent within a network system
JP5039146B2 (ja) 2007-11-07 2012-10-03 日本電信電話株式会社 共通鍵設定方法、中継装置、及びプログラム
EP2083374A1 (en) * 2008-01-23 2009-07-29 Siemens Aktiengesellschaft Method for electronically signing electronic documents and method for verifying an electronic signature
US20090210714A1 (en) * 2008-01-23 2009-08-20 Sultan Haider Method for electronically signing electronic documents and method for verifying an electronic signature
CN101815293B (zh) * 2009-02-20 2012-08-15 华为技术有限公司 无线中继网络中的链路安全认证方法、装置和系统
CN101583083B (zh) * 2009-06-01 2011-11-30 中兴通讯股份有限公司 一种实时数据业务的实现方法和实时数据业务系统
CN102474458B (zh) * 2009-07-24 2014-11-26 雅马哈株式会社 中继设备
JP5375976B2 (ja) * 2010-01-22 2013-12-25 富士通株式会社 認証方法、認証システムおよび認証プログラム
JP5664104B2 (ja) * 2010-10-08 2015-02-04 沖電気工業株式会社 通信システム、並びに、通信装置及びプログラム
JP5849962B2 (ja) * 2010-10-29 2016-02-03 日本電気株式会社 署名処理装置
US20120189122A1 (en) * 2011-01-20 2012-07-26 Yi-Li Huang Method with dynamic keys for mutual authentication in wireless communication environments without prior authentication connection
EP2798566B1 (en) * 2011-12-31 2019-10-09 Intel Corporation Securing device environment for trust provisioning
US20130223629A1 (en) * 2012-02-24 2013-08-29 Yi-Li Huang Method of secure key exchange in wireless/wired environments
JP5953991B2 (ja) 2012-07-03 2016-07-20 富士通株式会社 通信制御方法、通信制御装置、通信機器、及びプログラム
US9224013B2 (en) * 2012-12-05 2015-12-29 Broadcom Corporation Secure processing sub-system that is hardware isolated from a peripheral processing sub-system
US9009465B2 (en) * 2013-03-13 2015-04-14 Futurewei Technologies, Inc. Augmenting name/prefix based routing protocols with trust anchor in information-centric networks
CN103491540B (zh) * 2013-09-18 2016-05-25 东北大学 一种基于身份凭证的无线局域网双向接入认证系统及方法
US9455994B1 (en) * 2014-08-29 2016-09-27 Symantec Corporation Techniques for intelligently executing a digital signature
US9547778B1 (en) * 2014-09-26 2017-01-17 Apple Inc. Secure public key acceleration
JP6545966B2 (ja) * 2015-01-27 2019-07-17 ルネサスエレクトロニクス株式会社 中継装置、端末装置および通信方法
JP6517952B2 (ja) * 2015-06-30 2019-05-22 テレフオンアクチーボラゲット エルエム エリクソン(パブル) ハッシュ木ベースのデータ署名を処理するための方法及び機器
CN106714075B (zh) * 2015-08-10 2020-06-26 华为技术有限公司 一种处理授权的方法和设备
KR101637854B1 (ko) * 2015-10-16 2016-07-08 주식회사 코인플러그 블록체인을 기반으로 하는 공인인증서 발급시스템과 이를 이용한 블록체인을 기반으로 하는 공인인증서 발급방법 및 블록체인을 기반으로 하는 공인인증서 인증시스템과 이를 이용한 블록체인을 기반으로 하는 공인인증서 인증방법
CN110166246B (zh) * 2016-03-30 2022-07-08 创新先进技术有限公司 基于生物特征的身份注册、认证的方法和装置
US20170325270A1 (en) * 2016-05-06 2017-11-09 Futurewei Technologies, Inc. System and Method for Device Identification and Authentication
EP3459002B1 (en) * 2016-05-19 2020-07-08 Telefonaktiebolaget LM Ericsson (publ) Methods and devices for handling hash-tree based data signatures
JP6527115B2 (ja) 2016-07-13 2019-06-05 日本電信電話株式会社 機器リスト作成システムおよび機器リスト作成方法
US11088855B2 (en) 2016-07-29 2021-08-10 Workday, Inc. System and method for verifying an identity of a user using a cryptographic challenge based on a cryptographic operation
CA2943756C (en) 2016-09-30 2024-02-06 The Toronto-Dominion Bank Information masking using certificate authority
US10749684B2 (en) * 2016-09-30 2020-08-18 Entrust, Inc. Methods and apparatus for providing blockchain participant identity binding
WO2018131004A2 (fr) * 2017-01-16 2018-07-19 Enrico Maim Procédés et systèmes pour l'exécution de programmes dans des environnements sécurisés
US10243731B2 (en) * 2017-01-27 2019-03-26 Accenture Global Solutions Limited Hardware blockchain acceleration
US11509486B2 (en) * 2017-05-24 2022-11-22 Nxm Labs, Inc. Identity attestation system and method
WO2018214133A1 (zh) * 2017-05-25 2018-11-29 深圳前海达闼云端智能科技有限公司 基于区块链的fido认证方法、装置及系统
US20190027237A1 (en) 2017-07-21 2019-01-24 Patientory, Inc. Blockchain network for secure exchange of healthcare information
US11121870B2 (en) 2017-10-12 2021-09-14 Mastercard International Incorporated Method and system for interacting public and private blockchains with controlled participation
EP4120620A1 (en) 2017-12-08 2023-01-18 Ping Identity Corporation Methods and systems for recovering data using dynamic passwords
US11197155B2 (en) * 2017-12-28 2021-12-07 Paypal, Inc. Distributed ledger verification system using proof-of-life
KR20190086815A (ko) * 2018-01-14 2019-07-24 김도현 깔때기 쓰레기통
KR20190086816A (ko) * 2018-01-14 2019-07-24 송해연 당뇨환자를 위한 맞춤 식단/운동관리 서비스
FR3080510A1 (fr) * 2018-04-23 2019-10-25 Orange Procede d'elaboration de donnees d'utilisation de relais utilises au cours d'une communication entre deux appareils, de recherche desdites donnees, et appareils associes.
CN109583230A (zh) * 2018-10-31 2019-04-05 阿里巴巴集团控股有限公司 基于区块链的数据存证方法及装置、电子设备
ES2879855T3 (es) * 2018-11-27 2021-11-23 Advanced New Technologies Co Ltd Sistema y método para la protección de información
SG11201902778UA (en) * 2018-11-27 2019-05-30 Alibaba Group Holding Ltd System and method for information protection
WO2020140260A1 (en) * 2019-01-04 2020-07-09 Baidu.Com Times Technology (Beijing) Co., Ltd. Method and system to derive a session key to secure an information exchange channel between a host system and a data processing accelerator
CA3061266A1 (en) 2019-04-08 2019-06-27 Alibaba Group Holding Limited Transferring digital tickets based on blockchain networks
KR20210009791A (ko) * 2019-07-18 2021-01-27 삼성전자주식회사 블록 체인을 이용한 전자 인증 장치 및 그 방법

Also Published As

Publication number Publication date
CN112565175A (zh) 2021-03-26
CN112565175B (zh) 2023-05-12
EP3799351A1 (en) 2021-03-31
US11671403B2 (en) 2023-06-06
JP7372527B2 (ja) 2023-11-01
US20210099422A1 (en) 2021-04-01
EP3799351B1 (en) 2023-01-25

Similar Documents

Publication Publication Date Title
JP6494149B2 (ja) 認可処理方法およびデバイス
JP4477494B2 (ja) インターネットプロトコル(voip)通信において音声のデジタル証明書を登録し自動的に検索する方法およびシステム
US9130935B2 (en) System and method for providing access credentials
EP1953950B1 (en) A method for protecting network service application account, the system, and the apparatus thereof
JP4770494B2 (ja) 暗号通信方法およびシステム
JP4376711B2 (ja) アクセス管理方法及びその装置
US8769262B2 (en) VPN connection system and VPN connection method
US9065684B2 (en) IP phone terminal, server, authenticating apparatus, communication system, communication method, and recording medium
JP2010514229A (ja) ドメイン間情報通信のための認証方法、システム、およびその装置
US11564094B1 (en) Secondary device authentication proxied from authenticated primary device
US20090300197A1 (en) Internet Protocol Communication System, Server Unit, Terminal Device, and Authentication Method
CN104869121A (zh) 一种基于802.1x的认证方法及装置
US20110283337A1 (en) Method and system for authenticating network nodes of a peer-to-peer network
WO2011040192A1 (ja) 仮想マシン、仮想マシンのプログラム、アプリケーションサービス提供システム及びアプリケーションサービス提供方法
CN109379388B (zh) 一种身份识别方法、终端及可穿戴设备
JP2009118267A (ja) 通信ネットワークシステム、通信ネットワーク制御方法、通信制御装置、通信制御プログラム、サービス制御装置およびサービス制御プログラム
EP3799351A1 (en) Communication relay program, relay device communication relay method, and communication system
JP6155237B2 (ja) ネットワークシステムとその端末登録方法
JPH11161618A (ja) 移動計算機管理装置、移動計算機装置及び移動計算機登録方法
US8353048B1 (en) Application digital rights management (DRM) and portability using a mobile device for authentication
US10057252B1 (en) System for secure communications
JP2010277144A (ja) ユーザ認証システム、ユーザ端末、ログ認証サーバ、ユーザ認証方法およびプログラム
US10447688B1 (en) System for secure communications
JP6100947B1 (ja) 認証システム、認証方法、認証装置、ルータ及びプログラム
JP7305072B1 (ja) 方法およびシステム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20220609

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20230320

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20230411

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20230608

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: 20230919

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20231002

R150 Certificate of patent or registration of utility model

Ref document number: 7372527

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150