(58)【調査した分野】(Int.Cl.,DB名)
前記特徴情報生成手段は、前記パケットの大きさ、前記パケットが属するセッションの接続時間、前記セッションに属するパケット数、前記パケットの送信間隔、及び、前記パケットの受信時刻の少なくともいずれかを表す、前記特徴を表す情報を生成する、
請求項1に記載の通信装置。
前記識別情報生成手段は、複数の前記パケットの各々から抽出された前記文字情報のうち、先頭に位置する文字情報からの順番が等しい位置にある文字情報に基づいて、複数の前記パケットの各々に関する前記識別情報を生成する、
請求項1乃至請求項5のいずれか一項に記載の通信装置。
前記制御手段は、前記識別情報によって識別される前記機器から送信された前記パケットに対する前記送信処理の内容を表わす送信制御情報に基づいて、前記パケットを送信する経路を選択すること、及び、前記機器から送信された前記パケットを廃棄することの少なくともいずれかを行う、
請求項7に記載の通信装置。
【発明を実施するための形態】
【0022】
以下、本願発明の実施の形態について図面を参照して詳細に説明する。
【0023】
<第1の実施形態>
図1は、本願発明の第1の実施の形態に係る通信システム1の構成を示すブロック図である。通信システム1は、大別して、通信装置10、表示装置20、サーバ装置21、1以上のIoTゲートウェイ22、及び、1以上のIoTデバイス23を有する。
【0024】
IoTデバイス23は、例えば、その設置場所の周辺環境に関する物理量(例えば温度や湿度等)、あるいは、測定対象物に関する物理量(例えば、温度や移動における加速度等)を測定する安価なセンサである。IoTデバイス23は、あるいは、自デバイスの状態を測定してもよい。IoTデバイス23は、インターネット等の通信ネットワークに接続された機器と直接通信を行う機能を備えておらず、IoTゲートウェイ22を介して当該機器と通信可能であることとする。即ち、IoTデバイス23は、上述した物理量を測定した結果を表すパケット(データ)を、IoTゲートウェイ22を介して、サーバ装置21へ送信する。
【0025】
IoTデバイス23は、例えば、BLE(Bluetooth Low Energy:但し、Bluetoothは登録商標)を介してIoTゲートウェイ22と通信する。IoTデバイス23は、あるいは例えば、ZigBee(登録商標)等の他の規格の無線通信、あるいは有線通信を介して、IoTゲートウェイ22と通信してもよい。
【0026】
IoTゲートウェイ22は、例えば、LTE(Long Term Evolution)(登録商標)等の公衆携帯電話網を介して、通信装置10と通信する。IoTゲートウェイ22は、あるいは例えば、Wi−Fi(登録商標)等の無線LAN(Local Area Network)を介して、通信装置10と通信してもよい。
【0027】
サーバ装置21は、IoTデバイス23から受信した上述した物理量を測定した結果を利用することによって、様々なサービスを提供する情報処理装置である。通信装置10は、IoTデバイス23がIoTゲートウェイ22を介してサーバ装置21と行うパケット通信を中継する装置である。通信装置10は、サーバ装置21、あるいはサーバ装置21とIoTゲートウェイ22との間で行われる通信を中継する既存の中継装置に従属する(実装される)装置であってもよい。
【0028】
本実施形態に係る通信装置10は、特徴情報生成部11、分類部12、抽出部13、識別情報生成部14、及び、パケット通信部15を備えている。
【0029】
パケット通信部15は、IoTデバイス23がIoTゲートウェイ22を介してサーバ装置21へ送信するパケットを中継する。パケット通信部15は、IoTゲートウェイ22から受信したパケットを、例えば
図13を参照して後述する、通信装置10が備えるRAM(Random Access Memory)903等のメモリに格納する。パケット通信部15は、受信したパケットに対して、当該パケットを一意に識別可能なパケット番号を付与する。パケット通信部15は、受信したパケットに関して、付与したパケット番号と、当該パケットを格納したメモリにおけるアドレスとを関連付けて、特徴情報生成部11に通知する。
【0030】
特徴情報生成部11は、パケット通信部15がパケットを受信したときの状況や、受信したパケットの態様等に基づいて、当該パケットの特徴量110(特徴情報)を算出(生成)する。例えば、特徴量110は、パケット通信部15が受信したパケットの大きさである。特徴情報生成部11は、メモリに格納されたパケットが占有するメモリ容量、あるいは、TCP(Transmission Control Protocol)等の通信プロトコルに関するヘッダ情報等に基づいて、パケットの大きさを算出することができる。
【0031】
特徴情報生成部11は、あるいは、特定のネットワーク属性を有する特定のパケットのみに関して、特徴量110を算出してもよい。但し、ネットワーク属性とは、IPアドレス、あるいはポート番号、あるいは通信プロトコル等、通信ネットワークに接続された機器がパケットを送受信するために必要となる規定された情報を表す。特徴情報生成部11は、例えば、UDP(User Datagram Protocol)を用いて送信された特定のパケットのみに関する特徴量110を算出してもよいし、あるいは、TCPセッションを確立するための特定のパケットのみに関して特徴量110を算出してもよい。
【0032】
特徴情報生成部11は、あるいは、当該パケットを受信した時刻と1つ前のパケットを受信した時刻との差分、あるいは当該パケットが属する(TCP)セッションの接続時間(接続期間)、あるいは当該セッションに属するパケット数、あるいは当該パケットの送信間隔、あるいは当該パケットの受信時刻等を、特徴量110として算出してもよい。特徴情報生成部11は、あるいは、複数のパケットに関する特徴量110に関して、統計計算(平均値や分布等)を行った結果を、それら複数のパケットに関する特徴量110としてもよい。特徴情報生成部11は、算出した特徴量110を表すパケット管理テーブル111を生成し、生成したパケット管理テーブル111を、RAM903等のメモリに格納する。
【0033】
図2は、本実施形態に係るパケット管理テーブル111の構成を例示する図である。
図2に例示する通り、パケット管理テーブル111は、少なくとも、パケット通信部15によって付与されたパケット番号と、パケットが格納されたメモリアドレスと、特徴量110の種類と、特徴量110の数値とが関連付けされた情報である。
【0034】
図2に例示するパケット管理テーブル111によれば、例えばパケット番号が0001であるパケット(本明細書では以降、パケット0001と称し、他のパケット番号が付与されたパケットについても同様とする)は、メモリアドレス1に格納され、パケット0001の大きさは5バイトであり、パケット0001の送信周期は5秒である。また、
図2に例示するパケット管理テーブル111によれば、パケット0002は、メモリアドレス2に格納され、パケット0002の大きさは15バイトであり、パケット0002の送信周期は100秒である。特徴情報生成部11は、生成したパケット管理テーブル111を、
図1に示す分類部12に通知する。
【0035】
分類部12は、特徴情報生成部11によって生成されたパケット管理テーブル111が示す特徴量110と所定の分類基準120とに基づいて、パケット通信部15が受信したパケットをパケット群(グループ)に分類する。但し、分類基準120は、例えば通信装置10の管理者等によって、例えば、RAM903等のメモリに事前に格納されていることとする。また、パケット群とは、例えば、特徴量110が等しいあるいは類似する(即ち、特徴量110に関する類似度に基づいて分類された)パケットの集合のことである。本実施形態に係る分類部12は、パケット群の個々に対して、一意に識別可能な識別子(例えば特徴量の種類を表す名称と通し番号との組み合わせ)を割り当てることとする。
【0036】
図3は、本実施形態に係る分類基準120の構成を例示する図である。
図3に例示する分類基準120によれば、大きさが10バイト以下であるパケットは、「パケットサイズ1」というパケット群に分類され、大きさが11乃至20バイトであるパケットは、「パケットサイズ2」というパケット群に分類され、大きさが21バイト以上であるパケットは、「パケットサイズ3」というパケット群に分類される。また、
図3に例示する分類基準120によれば、送信周期が10秒未満であるパケットは、「送信周期1」というパケット群に分類され、送信周期が10秒以上であるパケットは、「送信周期2」というパケット群に分類される。
【0037】
分類部12は、パケット通信部15が受信したパケットを分類基準120に基づいてパケット群に分類した結果を、特徴情報生成部11によって生成されたパケット管理テーブル111に組み込むことによって、パケット管理テーブル121を生成する。
【0038】
図4は、本実施形態に係るパケット管理テーブル121の構成を例示する図である。
図4に例示するパケット管理テーブル121によれば、分類部12は、パケット0001を、パケットの大きさに関しては「パケットサイズ1」というパケット群に分類するとともに、パケットの送信周期に関しては「送信周期1」というパケット群に分類する。また、
図4に例示するパケット管理テーブル121によれば、分類部12は、パケット0002を、パケットの大きさに関しては「パケットサイズ2」というパケット群に分類するとともに、パケットの送信周期に関しては「送信周期2」というパケット群に分類する。分類部12は、生成したパケット管理テーブル121を、
図1に示す抽出部13に通知する。
【0039】
抽出部13は、分類部12によって生成されたパケット管理テーブル121と所定の抽出基準130とに基づいて、各パケットから、1以上の文字列(文字情報)を抽出する。但し文字列とは、文字コードにより特定される文字により構成される列のことである。尚、抽出基準130は、例えば通信装置10の管理者等によって、例えば、RAM903等のメモリに事前に格納されていることとする。
【0040】
抽出部13は、例えば、下記の2つの処理を順に行うことによって、パケットに含まれる文字列(文字情報)を抽出する。即ち、抽出部13は、1番目の処理として、パケットに関するポート番号に基づいて、パケットの送受信に関する通信プロトコルを判定する。そして、抽出部13は、2番目の処理として、判定した通信プロトコルに応じて、パケットにおけるヘッダあるいはペイロードにおける特定の範囲から文字列を抽出する。
【0041】
抽出部13は、上述した1番目の処理に関して、ポート番号を管理する組織であるIANA(Internet Assigned Numbers Authority)によって定められた規定に従って、通信プロトコルを判定する。抽出部13は、具体的には例えば、パケットに関するポート番号が「80」である場合、OSI(Open Systems Interconnection)参照モデルにおけるアプリケーション層の通信プロトコルをHTTP(Hyper Text Transfer Protocol)と判定し、ポート番号が「1883」である場合、通信プロトコルをMQQT(Message Queueing Telemetry Transport)と判定する。
【0042】
次に
図5を参照して、抽出部13による、抽出基準130に基づく、上述した2番目の処理について説明する。但し、
図5に示す例では、抽出部13は、上述した1番目の処理によって、通信プロトコルをHTTPと判定し、パケットに含まれるHTTPのURI(Uniform Resource Identifier)を、文字列(文字情報)を抽出する対象とする。尚、抽出部13は、上述した1番目の処理によって、通信プロトコルをMQQTと判定した場合は、MQQTのペイロードを、文字列を抽出する対象とする。
【0043】
図5に示す例において、文字列を抽出する対象とするURIは「/Gateway_01/Sensor01/Temperature」である。但し、「Gateway_01」は、
図1において、通信装置10に対してパケットを送信したIoTゲートウェイ22を識別可能な識別子である。「Sensor01」は、パケットの送信元であるIoTデバイス23を識別可能な識別子である。そして「Temperature」は、当該パケットが温度情報を表すパケットであることを示す文字列である。
【0044】
抽出部13は、まず、抽出基準130に基づいて、URIに含まれる「/」及び「_」を、文字列を分割して抽出する際の境界を表す文字として認識する。これにより、抽出部13は、
図5における文字情報一次抽出結果として示す通り、「/Gateway_01/Sensor01/Temperature」から、「Gateway」、「01」、「Sensor01」、「Temperature」という4つの文字列を抽出する。
【0045】
抽出部13は、次に、文字の種別が変わった箇所において、文字列をさらに分割する。但し、文字の種別とは、例えばアルファベット、数字、記号、漢字等のことである。
図5に示す例において、抽出部13は、文字情報一次抽出結果として抽出した文字列のうち、「Sensor01」を、さらに「Sensor」と「01」とに分割して抽出する。このようにして、抽出部13は、
図5における文字情報二次抽出結果として示す通り、「/Gateway_01/Sensor01/Temperature」から、「Gateway」、「01」、「Sensor」、「01」、「Temperature」という5つの文字列を抽出する。
【0046】
抽出部13は、また、各文字列を抽出した順番を算出する。抽出部は、例えば
図5に例示する通り、抽出した各文字列に関して、URIの先頭からのバイト位置を比較することによって、そのバイト位置の値が小さい順に、文字列を抽出した順番を決定する。
【0047】
抽出部13は、パケット通信部15が受信したパケットから抽出基準130に基づいて上述した通りに文字列(文字情報)を抽出した結果を、分類部12によって生成されたパケット管理テーブル121に組み込むことによって、パケット管理テーブル131を生成する。
【0048】
図6は、本実施形態に係るパケット管理テーブル131の構成を例示する図である。
図6に例示するパケット管理テーブル131によれば、抽出部13が文字列を抽出する対象とするURIは、パケット0001、パケット0002、パケット0003に関して、順に、「/Gateway_01/Temperature/SensorA」、「/Gateway_01/Acceleration/SensorA」、「/Gateway_01/Temperature/SensorB」である。但し、パケット0002において、「Acceleration」は、当該パケットが加速度情報を表すパケットであることを示す文字列である。抽出部13は、生成したパケット管理テーブル131を、
図1に示す識別情報生成部14に通知する。
【0049】
識別情報生成部14は、抽出部13によって生成されたパケット管理テーブル131に基づいて、同一のパケット群に属する各パケットから抽出された文字列(文字情報)のうち、文字列の構成に関するパターン数(種類数)がある条件を満たす文字列を特定する。例えば、2つのパケットから各々抽出された文字列がいずれも「ABC」という同一の文字列である場合、そのパターン数は「1」となり、2つのパケットから各々抽出された文字列が「ABC」と「ABD」という異なる文字列である場合、そのパターン数は「2」となる。そして、識別情報生成部14は、特定した文字列に基づいて、パケットを送信したIoTデバイス23を識別可能な識別情報140を生成する。本実施形態に係る識別情報生成部14は、例えばパターン数が最も多いことを当該ある条件とする。即ち、識別情報生成部14は、抽出された複数の文字列のうち、ユニークな文字列(互いに区別可能な文字列)の数が最も多い文字列を特定する。
【0050】
図6に例示するパケット管理テーブル131によれば、パケット0001及びパケット0003は、いずれも、パケットの大きさに関して「パケットサイズ1」というパケット群に属し、パケットの送信周期に関して「送信周期1」というパケット群に属する。従って、識別情報生成部14は、パケット0001及びパケット0003を、2つのパケット群の組み合わせに関して、同一のパケット群に属するパケットとして特定する。
【0051】
図7は、同一のパケット群に属する各パケットに関して、識別情報生成部14による識別情報140を生成する動作を説明する図である。識別情報生成部14は、抽出順番が等しい文字列について、文字列に関するパターン数を算出する。
【0052】
図7によれば、抽出順番が「1」である文字列は、パケット0001及びパケット0003とも「Gateway」という同一の文字列である。従って、識別情報生成部14は、抽出順番が「1」である文字列に関するパターン数を「1」と算出する。このことは、抽出された「Gateway」という文字列によっては、パケット0001の送信元であるIoTデバイス23とパケット0003の送信元であるIoTデバイス23とを一意に識別することができないことを示している。
【0053】
図7によれば、抽出順番が「2」である文字列は、パケット0001及びパケット0003とも「01」という同一の文字列であり、抽出順番が「3」である文字列は、パケット0001及びパケット0003とも「Temperature」という同一の文字列である。従って、識別情報生成部14は、抽出順番が「2」及び「3」である文字列に関するパターン数も同様に「1」と算出する。
【0054】
図7によれば、抽出順番が「4」である文字列は、パケット0001に関しては「SensorA」であり、パケット0003に関しては「SensorB」であり、これら2つの文字列は異なっている。従って、識別情報生成部14は、抽出順番が「4」である文字列に関するパターン数を「2」と算出する。
【0055】
以上により、
図7に示す例では、識別情報生成部14は、抽出順番が「4」である文字列が、パターン数が最も多くなる文字列として特定する。そして、識別情報生成部14は、パケット0001から抽出順番が「4」である文字列として抽出された「SensorA」を、パケット0001を送信したIoTデバイス23を識別可能な識別情報140として生成する。識別情報生成部14は、また、パケット0003から抽出順番が「4」である文字列として抽出された「SensorB」を、パケット0003を送信したIoTデバイス23を識別可能な識別情報140として生成する。
【0056】
また、
図6に例示するパケット管理テーブル131によれば、パケット0002が属するパケット群に属する他のパケットは存在しない。このような場合、識別情報生成部14は、例えば、パケット0002を送信したIoTデバイス23を識別可能な識別情報140を、パケット0001及びパケット0003に関する識別情報140と整合するように生成する。即ち、識別情報生成部14は、パケット0002から抽出順番が「4」である文字列として抽出された「SensorA」を、パケット0002を送信したIoTデバイス23を識別可能な識別情報140として生成する。
【0057】
識別情報生成部14は、また、パケットと、当該パケットに関する識別情報140と、を関連付けて、
図1に示す表示装置20に表示する。表示装置20は、例えばモニター等の装置である。識別情報生成部14は、例えばパケット管理テーブル131が
図6に例示する内容を示す場合、パケット0001、パケット0002、パケット0003の送信元であるIoTデバイス23に関する識別情報140は、順に、「SensorA」、「SensorA」、「SensorB」であることを、表示装置20に表示する。識別情報生成部14は、また、各パケットを送信したIoTゲートウェイ22の識別子や、各パケットに含まれるURI等も含めて、表示装置20に表示するようにしてもよい。
【0058】
次に
図8のフローチャートを参照して、本実施形態に係る通信装置10の動作(処理)について詳細に説明する。
【0059】
パケット通信部15は、IoTデバイス23からサーバ装置21に対して送信されたパケットを受信し、受信したパケットをサーバ装置21に転送するとともに、自装置内のメモリに保存する(ステップS101)。特徴情報生成部11は、パケット通信部15がパケットを受信したときの状況や、受信したパケットの態様等に基づいて、パケットの特徴量110を算出し、その算出結果を表すパケット管理テーブル111を生成する。(ステップS102)。
【0060】
分類部12は、パケット管理テーブル111と分類基準120とに基づいて、パケットをパケット群に分類し、その分類結果をパケット管理テーブル111に組み込むことによって、パケット管理テーブル121を生成する(ステップS103)。抽出部13は、パケット管理テーブル121と抽出基準130に基づいて、1以上のパケットから1以上の文字列を抽出し、その抽出結果をパケット管理テーブル121に組み込むことによって、パケット管理テーブル131を生成する(ステップS104)。
【0061】
識別情報生成部14は、パケット管理テーブル131によって示される、同一のパケット群に属する各パケットから抽出された文字列のうち、パターン数が最も多い文字列を特定し、特定した文字列に基づいて、パケットを送信したIoTデバイス23を識別可能な識別情報140を生成する(ステップS105)。識別情報生成部14は、パケットと、当該パケットに関する識別情報140とを関連付けて、表示装置20に表示し(ステップS106)、全体の処理は終了する。
【0062】
本実施形態に係る通信装置10は、パケットの送信元である機器を識別可能な識別情報が、当該パケットのどの部分に存在するのかが不明である場合であっても、当該識別情報を高い精度で抽出することができる。その理由は、通信装置10は、パケットの特徴を表す情報を生成して、その特徴を表す情報に基づいてパケットをパケット群に分類し、同一のパケット群に属するパケットから抽出した文字情報のうち、文字情報の構成に関するパターン数が条件を満たす文字情報に基づいて、パケットの送信元である機器を識別可能な識別情報を生成するからである。
【0063】
以下に、本実施形態に係る通信装置10によって実現される効果について、詳細に説明する。
【0064】
IoTシステムにおけるIoTデバイスは、通常、エッジ側に大量に配置されるので、備える機能が少ない安価なものが多く、例えば、インターネット等の通信ネットワークと直接通信する機能を備えないIoTデバイスも多く存在する。このようなIoTシステムにおいて、IoTゲートウェイを経由してサーバ装置に送信されるパケットに付与されるIPアドレスやMACアドレスは、IoTゲートウェイに関するアドレスが用いられるので、IoTデバイス自体を識別する識別情報として使用することができない。また、IoTデバイスから送信されたパケットは、通常、送信元であるIoTデバイスを識別可能な識別情報を含むはずであるが、パケットの構成について、その仕様が公開されていない場合や、正式に仕様化されていない場合も多い。このため、インターネットに接続された通信機器は、IoTデバイスから送信されたパケットのどの部分に当該識別情報が存在するのかを認識することができない。そして、当該識別情報を認識することができなければ、例えばIoTシステムのセキュリティを確保することなどが困難となるという問題がある。
【0065】
このような問題に対して、本実施形態に係る通信装置10は、特徴情報生成部11と、分類部12と、抽出部13と、識別情報生成部14とを備え、
図1乃至
図8を参照して上述した通り動作する。即ち、特徴情報生成部11は、パケット通信を行うIoTデバイス23から送信されたパケットを受信することによって、当該パケットの特徴を表す情報(特徴量110)を生成(算出)する。分類部12は、当該特徴を表す情報と所定の分類基準120とに基づいて、当該パケットをパケット群に分類する。抽出部13は、所定の抽出基準130に基づいて、当該パケットから、1以上の文字情報を抽出する。そして、識別情報生成部14は、同一のパケット群に属する1以上のパケットから抽出された文字情報のうち、文字情報の構成に関するパターン数が条件を満たす文字情報に基づいて、パケットを送信したIoTデバイス23を識別可能な識別情報140を生成する。
【0066】
ここで、同一のパケット群に属するパケットから抽出した文字列に関してパターン数を比較することによる効果について、
図6を参照してより詳細に説明する。
【0067】
図6に例示する通り、IoTデバイス23から送信されたパケットに含まれるURIには、収集した物理量の種別を表す情報を含むことが多い。例えば、温度情報を含むパケット0001とパケット0003が示すURIは、IoTデバイス23を識別可能な「SensorA」あるいは「SensorB」の他、「Temperature」という文字列を含んでいる。また、加速度情報を含むパケット0002が示すURIは、IoTデバイス23を識別可能な「SensorA」の他、「Acceleration」という文字列を含んでいる。
【0068】
図6において、パケット管理テーブル131の右側に記載したパターン数は、特徴量110に基づいてパケットをパケット群に分類しない場合における、各パケットから抽出された文字列に関するパターン数を示している。例えば、文字情報抽出順番が「1」である文字列に関して、パケット0001乃至0003から抽出された文字列は「Gateway」のみであり、そのパターン数は「1」である。文字情報抽出順番が「2」である文字列に関して、パケット0001乃至0003から抽出された文字列は「01」のみであり、そのパターン数は「1」である。文字情報抽出順番が「3」である文字列に関して、パケット0001乃至0003から抽出された文字列は「Temperature」あるいは「Acceleration」であり、そのパターン数は「2」である。文字情報抽出順番が「4」である文字列に関して、パケット0001乃至0003から抽出された文字列は「SensorA」あるいは「SensorB」であり、そのパターン数は「2」である。
【0069】
したがって、パターン数が条件を満たす(最大となる)文字列のうち、例えば文字情報抽出順番が最小(順番が最も早い)となるものに基づいて識別情報140を生成した場合、本来、識別情報140として期待される「SensorA」あるいは「SensorB」ではなく、「Temperature」あるいは「Acceleration」に基づいて識別情報140が生成されることになり、識別情報140としての精度が低下する。
【0070】
一般的に、IoTデバイス23が収集(センシング)する情報の種類と、パケットの特徴量110とは相関性が高い。例えば、同じ物理量(例えば温度情報)を収集する2つのIoTデバイス23に関して、IoTデバイス23から送信されたパケットの特徴(パケットサイズや送信周期等)は類似する。これに対して、異なる物理量(例えば温度情報と加速度情報)を収集する2つのIoTデバイス23に関して、IoTデバイス23から送信されたパケットの特徴は大きく異なる。通信装置10は、IoTデバイス23が収集する情報の種類とパケットの特徴量110との相関性を利用することによって、機能的に類似するIoTデバイス23から送信されたパケットが、同一のパケット群に属するように分類する。
【0071】
そして、本実施形態に係る通信装置10は、パケットから抽出した文字列のパターン数を比較する際に、比較対象とするパケットを、同一のパケット群に属する(即ち特徴が類似する)パケットに絞り込むことによって、上述した例が示すような、本来、識別情報140として期待される特定の文字列以外の文字列(例えば収集された物理量の種別等を表す文字列)に基づいて識別情報140を生成することを回避する。これにより、本実施形態に係る通信装置10は、パケットの送信元である機器を識別可能な識別情報が、当該パケットのどの部分に存在するのかが不明である場合であっても、当該識別情報を高い精度で抽出することができる。
【0072】
また、本実施形態に係る識別情報生成部14が識別情報140を生成する際の条件は、パケットから抽出された文字列のうち、パターン数が最大となる文字列に基づくことに限定されない。例えば、ある複数のIoTデバイス23に関して、それらを個々に識別することが求められない(識別に関して高い分解能が要求されない)場合などでは、識別情報生成部14は、パターン数が閾値以上であること等を当該条件として用いてもよい。
【0073】
また、本実施形態に係る抽出基準130は、文字情報として、パケットに含まれるアプリケーション層におけるプロトコルのヘッダあるいはペイロードを表す文字列を抽出することを表している。即ち、本実施形態に係る通信装置10は、IoTデバイス23から送信されるパケットに関する既存の仕様を抽出基準130として使用するので、既存のシステムに通信装置10を実装するのに要するコストを抑えることができる。
【0074】
また、本実施形態に係る抽出基準130は、特定の文字によって区切られた文字列、あるいは、文字の種別が変わることによって区切られた文字列を抽出するという簡易な基準であるので、通信装置10の管理者は、抽出基準130を容易に作成することができる。
【0075】
また、本実施形態に係る識別情報生成部14は、複数のパケットの各々から抽出された文字列のうち、先頭に位置する文字列からの順番が等しい位置にある文字列に基づいて、複数のパケットの各々に関する識別情報140を生成する。これにより、本実施形態に係る通信装置10は、複数のIoTデバイス23の間において整合するように、識別情報140を生成することができる。
【0076】
また、本実施形態に係る識別情報生成部14は、パケットと、パケットに関する識別情報140と、を関連付けて表示装置20に表示する。これにより、本実施形態に係る通信装置10は、通信装置10の管理者による識別情報140の確認を容易にすることができる。
【0077】
<第1の実施形態の変形例>
図9は、本願発明の第1の実施形態の変形例に係る通信システム1Aの構成を示すブロック図である。通信システム1Aは、大別して、通信装置10A、表示装置20、サーバ装置21−1乃至21−n(但し、nは任意の整数)、1以上のIoTゲートウェイ22、及び、1以上のIoTデバイス23を有する。尚、本変形例に係る通信システム1Aに含まれる構成のうち、その機能が上述した第1の実施形態と等しい構成に関しては、第1の実施形態と同一の番号を付与することによって、その詳細な説明を省略する。
【0078】
本変形例に係る通信装置10Aは、特徴情報生成部11、分類部12、抽出部13、識別情報生成部14、及び、パケット通信部15Aを備えている。即ち、本変形例に係る通信装置10Aは、パケット通信部15Aに関して、その機能が上述した第1の実施形態に係る通信装置10とは異なる。
【0079】
パケット通信部15Aは、制御部150Aを備える。制御部150Aは、受信したパケットを送信先であるサーバ装置21−i(iは1乃至nのいずれかの整数)に転送することを一旦保留するとともに、自装置内のメモリに保存する。制御部150Aは、IoTデバイス23からIoTゲートウェイ22を介して受信したパケットに関する識別情報140と、送信制御情報151Aとに基づいて、自装置内のメモリに保存したパケットの送信を制御する。
【0080】
本変形例に係る送信制御情報151Aは、識別情報140によって識別されるパケットの送信元であるIoTデバイス23が、事前に確認されている安全なデバイスであるかどうかを示すホワイトリストであることとする。そして、送信制御情報151Aは、識別情報140が登録されているパケットに関して、通信装置10Aから当該パケットを送信する経路(送信先であるサーバ装置21−i)等を示すこととする。送信制御情報151Aは、また、識別情報140が登録されていないパケットに関して、当該パケットを廃棄すること等を示すこととする。
【0081】
図10は、本変形例に係る送信制御情報151Aの構成を例示する図である。
図10に例示する送信制御情報151Aによれば、制御部150Aは、識別情報140が「SensorA」を示すことによって識別されるIoTデバイス23から送信されたパケットを、当該パケットに含まれる情報が示す送信先であるサーバ装置21−iに転送する。また、
図10に例示する送信制御情報151Aによれば、制御部150Aは、識別情報140が「SensorB」を示すことによって識別されるIoTデバイス23から送信されたパケットを、当該パケットに含まれる情報が示す送信先であるサーバ装置21−iに転送するとともに、当該パケットのコピーをサーバ装置21−j(jは1乃至nのうち、iとは異なるいずれかの整数)に送信する。但し、サーバ装置21−jは、例えば、運用系のサーバ装置と待機系のサーバ装置とを備えた通信システム1Aにおける待機系のサーバ装置である。
【0082】
また、
図10に例示する送信制御情報151Aによれば、制御部150Aは、識別情報140が送信制御情報151Aに登録されていないIoTデバイス23から送信されたパケットを、当該パケットに含まれる情報が示す送信先であるサーバ装置に転送せず(廃棄する)、サーバ装置21−nに送信する。但し、サーバ装置21−nは、例えば、パケットが不正であるか否かを解析する検疫サーバ装置である。
【0083】
次に
図11のフローチャートを参照して、本変形例に係る通信装置10Aの動作(処理)について詳細に説明する。
【0084】
パケット通信部15Aは、IoTデバイス23からサーバ装置21−iに対して送信されたパケットを受信し、受信したパケットをサーバ装置21に転送することを一旦保留するとともに、自装置内のメモリに保存する(ステップS201)。通信装置10Aは、
図8に示すステップS102乃至S106の処理を実行する(ステップS202)。
【0085】
パケット通信部15Aにおける制御部150Aは、受信したパケットに関する識別情報140が、送信制御情報151Aに登録されているか否かを確認する(ステップS203)。
【0086】
識別情報140が送信制御情報151Aに登録されている場合(ステップS204でYes)、制御部150Aは、パケットに含まれる情報が示す送信先であるサーバ装置21−iに、自装置内のメモリに保存したパケットを転送するとともに、送信制御情報151Aが示すサーバ装置21−jにパケットのコピーを送信し(ステップS205)、全体の処理は終了する。
【0087】
識別情報140が送信制御情報151Aに登録されていない場合(ステップS204でNo)、制御部150Aは、パケットに含まれる情報が示す送信先であるサーバ装置21−iに、自装置内のメモリに保存したパケットを転送せずに、サーバ装置21−nに送信し(ステップS205)、全体の処理は終了する。
【0088】
本変形例に係る通信装置10Aは、パケットの送信元である機器を識別可能な識別情報が、当該パケットのどの部分に存在するのかが不明である場合であっても、当該識別情報を高い精度で抽出することができる。その理由は、第1の実施形態について説明した通りである。
【0089】
また、本変形例に係る制御部150Aは、識別情報140によって識別されるIoTデバイス23から送信されたパケットに対する送信処理の内容を表わす送信制御情報151Aに基づいて、パケットを送信する経路を選択すること、及び、送信されたパケットを廃棄することの少なくともいずれかを行う。即ち、本変形例に係る通信装置10Aは、識別情報140に関するホワイトリストに基づいて、パケットの転送を制御することができるので、IoTシステムのセキュリティレベルを向上することができる。
【0090】
<第2の実施形態>
図12は、本願発明の第2の実施形態に係る通信装置30の構成を示すブロック図である。
【0091】
本実施形態に係る通信装置30は、特徴情報生成部31、分類部32、抽出部33、及び、識別情報生成部34を備えている。
【0092】
特徴情報生成部31は、パケット通信を行う機器40から送信されたパケット400を受信することによって、パケット400の特徴を表す情報310を生成する。
【0093】
分類部32は、特徴を表す情報310と所定の分類基準320とに基づいて、パケット400をパケット群に分類する。
【0094】
抽出部33は、所定の抽出基準330に基づいて、パケット400から、1以上の文字情報を抽出する。
【0095】
識別情報生成部34は、同一のパケット群に属する1以上のパケット400から抽出された文字情報のうち、パケット同士において互いに異なる場合の数が条件を満たす文字情報に基づいて、パケット400を送信した機器40を識別可能な識別情報340を生成する。
【0096】
本実施形態に係る通信装置30は、パケットの送信元である機器を識別可能な識別情報が、当該パケットのどの部分に存在するのかが不明である場合であっても、当該識別情報を高い精度で抽出することができる。その理由は、通信装置30は、パケット400の特徴を表す情報310を生成して、その特徴を表す情報310に基づいてパケット400をパケット群に分類し、同一のパケット群に属するパケット400から抽出した文字情報のうち、文字情報の構成に関するパターン数が条件を満たす文字情報に基づいて、パケットの送信元である機器40を識別可能な識別情報340を生成するからである。
【0097】
<ハードウェア構成例>
上述した各実施形態において
図1、
図9、及び、
図12に示した通信装置における各部は、専用のHW(HardWare)(電子回路)によって実現することができる。また、
図1、
図9、及び、
図12において、少なくとも、下記構成は、ソフトウェアプログラムの機能(処理)単位(ソフトウェアモジュール)と捉えることができる。
・特徴情報生成部11及び31、
・分類部12及び32、
・抽出部13及び33、
・識別情報生成部14及び34、
・制御部150A。
【0098】
但し、これらの図面に示した各部の区分けは、説明の便宜上の構成であり、実装に際しては、様々な構成が想定され得る。この場合のハードウェア環境の一例を、
図13を参照して説明する。
【0099】
図13は、本願発明の各実施形態に係る配置変更管理装置を実行可能な情報処理装置900(コンピュータ)の構成を例示的に説明する図である。即ち、
図13は、
図1、
図9、及び、
図12に示した通信装置を実現可能なコンピュータ(情報処理装置)の構成であって、上述した実施形態における各機能を実現可能なハードウェア環境を表す。
【0100】
図13に示した情報処理装置900は、構成要素として下記を備えている。
・CPU(Central_Processing_Unit)901、
・ROM(Read_Only_Memory)902、
・RAM(Random_Access_Memory)903、
・ハードディスク(記憶装置)904、
・通信インタフェース905、
・バス906(通信線)、
・CD−ROM(Compact_Disc_Read_Only_Memory)等の記録媒体907に格納されたデータを読み書き可能なリーダライタ908、
・モニターやスピーカ、キーボード等の入出力インタフェース909。
【0101】
即ち、上記構成要素を備える情報処理装置900は、これらの構成がバス906を介して接続された一般的なコンピュータである。情報処理装置900は、CPU901を複数備える場合もあれば、マルチコアにより構成されたCPU901を備える場合もある。
【0102】
そして、上述した実施形態を例に説明した本願発明は、
図13に示した情報処理装置900に対して、次の機能を実現可能なコンピュータプログラムを供給する。その機能とは、その実施形態の説明において参照したブロック構成図(
図1、
図9、及び、
図12)における上述した構成、或いはフローチャート(
図8及び
図11)の機能である。本願発明は、その後、そのコンピュータプログラムを、当該ハードウェアのCPU901に読み出して解釈し実行することによって達成される。また、当該装置内に供給されたコンピュータプログラムは、読み書き可能な揮発性のメモリ(RAM903)、または、ROM902やハードディスク904等の不揮発性の記憶デバイスに格納すれば良い。
【0103】
また、前記の場合において、当該ハードウェア内へのコンピュータプログラムの供給方法は、現在では一般的な手順を採用することができる。その手順としては、例えば、CD−ROM等の各種記録媒体907を介して当該装置内にインストールする方法や、インターネット等の通信回線を介して外部よりダウンロードする方法等がある。そして、このような場合において、本願発明は、係るコンピュータプログラムを構成するコード或いは、そのコードが格納された記録媒体907によって構成されると捉えることができる。
【0104】
以上、上述した実施形態を模範的な例として本願発明を説明した。しかしながら、本願発明は、上述した実施形態には限定されない。即ち、本願発明は、本願発明のスコープ内において、当業者が理解し得る様々な態様を適用することができる。
【0105】
尚、上述した各実施形態の一部又は全部は、以下の付記のようにも記載されうる。しかしながら、上述した各実施形態により例示的に説明した本願発明は、以下には限られない。
【0106】
(付記1)
パケット通信を行う機器から送信されたパケットを受信することによって、前記パケットの特徴を表す情報を生成する特徴情報生成手段と、
前記特徴を表す情報と所定の分類基準とに基づいて、前記パケットをパケット群に分類する分類手段と、
所定の抽出基準に基づいて、前記パケットから、1以上の文字情報を抽出する抽出手段と、
同一の前記パケット群に属する1以上の前記パケットから抽出された前記文字情報のうち、前記文字情報の構成に関するパターン数が条件を満たす文字情報に基づいて、前記パケットを送信した前記機器を識別可能な識別情報を生成する識別情報生成手段と、
を備える通信装置。
【0107】
(付記2)
前記特徴情報生成手段は、前記パケットの大きさ、前記パケットが属するセッションの接続時間、前記セッションに属するパケット数、前記パケットの送信間隔、及び、前記パケットの受信時刻の少なくともいずれかを表す、前記特徴を表す情報を生成する、
付記1に記載の通信装置。
【0108】
(付記3)
前記分類基準は、前記特徴を表す情報の類似度に基づいて、前記パケットを前記パケット群に分類することを表す、
付記1または付記2に記載の通信装置。
【0109】
(付記4)
前記特徴情報生成手段は、特定のネットワーク属性を有する特定の前記パケットに関して、前記特徴を表す情報を生成する、
付記1乃至付記3のいずれか一項に記載の通信装置。
【0110】
(付記5)
前記特徴情報生成手段は、複数の前記パケットの特徴量に対して統計計算を行うことによって、複数の前記パケットに関する前記特徴を表す情報を生成する、
付記1乃至付記4のいずれか一項に記載の通信装置。
【0111】
(付記6)
前記抽出基準は、前記文字情報として、前記パケットに含まれるアプリケーション層の通信プロトコルのヘッダあるいはペイロードを表す文字列を抽出することを表す、
付記1乃至付記5のいずれか一項に記載の通信装置。
【0112】
(付記7)
前記抽出基準は、特定の文字によって区切られた前記文字列、あるいは、文字の種別が変わることによって区切られた前記文字列を抽出することを表す、
付記6に記載の通信装置。
【0113】
(付記8)
前記識別情報生成手段は、前記パケットから抽出された前記文字情報のうち、前記パターン数が最も多い文字情報に基づいて、前記識別情報を生成する、
付記1乃至付記7のいずれか一項に記載の通信装置。
【0114】
(付記9)
前記識別情報生成手段は、複数の前記パケットの各々から抽出された前記文字情報のうち、先頭に位置する文字情報からの順番が等しい位置にある文字情報に基づいて、複数の前記パケットの各々に関する前記識別情報を生成する、
付記1乃至付記8のいずれか一項に記載の通信装置。
【0115】
(付記10)
前記識別情報生成手段は、前記パケットと、前記パケットに関する前記識別情報と、を関連付けて表示装置に表示する、
付記1乃至付記9のいずれか一項に記載の通信装置。
【0116】
(付記11)
前記機器から受信した前記パケットに関する前記識別情報に基づいて、前記パケットの送信処理を制御する制御手段をさらに備える、
付記1乃至付記10のいずれか一項に記載の通信装置。
【0117】
(付記12)
前記制御手段は、前記識別情報によって識別される前記機器から送信された前記パケットに対する前記送信処理の内容を表わす送信制御情報に基づいて、前記パケットを送信する経路を選択すること、及び、前記機器から送信された前記パケットを廃棄することの少なくともいずれかを行う、
付記11に記載の通信装置。
【0118】
(付記13)
付記1乃至付記12のいずれか一項に記載の通信装置と、
前記機器と、
を有する通信システム。
【0119】
(付記14)
情報処理装置によって、
パケット通信を行う機器から送信されたパケットを受信することによって、前記パケットの特徴を表す情報を生成し、
前記特徴を表す情報と所定の分類基準とに基づいて、前記パケットをパケット群に分類し、
所定の抽出基準に基づいて、前記パケットから、1以上の文字情報を抽出し、
同一の前記パケット群に属する1以上の前記パケットから抽出された前記文字情報のうち、前記文字情報の構成に関するパターン数が条件を満たす文字情報に基づいて、前記パケットを送信した前記機器を識別可能な識別情報を生成する、
通信方法。
【0120】
(付記15)
パケット通信を行う機器から送信されたパケットを受信することによって、前記パケットの特徴を表す情報を生成する特徴情報生成処理と、
前記特徴を表す情報と所定の分類基準とに基づいて、前記パケットをパケット群に分類する分類処理と、
所定の抽出基準に基づいて、前記パケットから、1以上の文字情報を抽出する抽出処理と、
同一の前記パケット群に属する1以上の前記パケットから抽出された前記文字情報のうち、前記文字情報の構成に関するパターン数が条件を満たす文字情報に基づいて、前記パケットを送信した前記機器を識別可能な識別情報を生成する識別情報生成処理と、
をコンピュータに実行させるための通信プログラムが格納された記録媒体。
【0121】
この出願は、2018年8月6日に出願された日本出願特願2018−147726を基礎とする優先権を主張し、その開示の全てをここに取り込む。