[go: up one dir, main page]

JP2016099878A - 情報処理システム及び情報処理装置 - Google Patents

情報処理システム及び情報処理装置 Download PDF

Info

Publication number
JP2016099878A
JP2016099878A JP2014237954A JP2014237954A JP2016099878A JP 2016099878 A JP2016099878 A JP 2016099878A JP 2014237954 A JP2014237954 A JP 2014237954A JP 2014237954 A JP2014237954 A JP 2014237954A JP 2016099878 A JP2016099878 A JP 2016099878A
Authority
JP
Japan
Prior art keywords
opening
communication port
pattern
release
information processing
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
JP2014237954A
Other languages
English (en)
Other versions
JP6409527B2 (ja
Inventor
淳一 飯島
Junichi Iijima
淳一 飯島
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.)
Fuji Electric Co Ltd
Original Assignee
Fuji Electric Co 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 Fuji Electric Co Ltd filed Critical Fuji Electric Co Ltd
Priority to JP2014237954A priority Critical patent/JP6409527B2/ja
Publication of JP2016099878A publication Critical patent/JP2016099878A/ja
Application granted granted Critical
Publication of JP6409527B2 publication Critical patent/JP6409527B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Computer And Data Communications (AREA)

Abstract

【課題】不正アクセスの防止を支援することができる情報処理システム及び情報処理装置を提供することを課題とする。
【解決手段】第1の時刻情報に基づき、1以上の第2の通信ポートと、第1の通信ポートを開放するための前記第2の通信ポートを指定した開放要求を送信する順番とを含む第1の開放パターンを決定する第1の決定手段と、前記決定された第1の開放パターンに基づき、前記第2の通信ポートを指定した前記開放要求を前記順番に従って送信する送信手段と、前記第1の通信ポートを開放するための1以上の第3の通信ポートと、該第3の通信ポートを指定した開放要求を受信する順番とを含む第2の開放パターンを決定する第2の決定手段と、前記開放要求と、前記第2の開放パターンとに基づき、前記第1の通信ポートを開放するか否かを判定する判定手段と、前記第1の通信ポートを開放すると判定された場合、該第1の通信ポートを開放する開放手段と、を有することにより、上記課題を解決する。
【選択図】 図3

Description

本発明は、情報処理システム及び情報処理装置に関する。
従来より、インターネット等のネットワークに接続されている機器について、開放されている通信ポート番号の情報を検索することができる技術が知られている。また、ネットワークに接続されている機器について、開放されている通信ポート番号の情報を取得するためのポートスキャンと呼ばれる技術も従来より知られている。このような技術を用いることにより、ネットワークに接続されている機器の開放されている通信ポートに対して第三者から不正にアクセスされる可能性がある。
一方、機器に搭載されているアプリケーションが使用する通信ポート番号を隠ぺいすることができる技術が知られている(例えば特許文献1及び2参照)。
また、予め設定された所定の通信ポートに対して所定の順序でアクセスを試行することにより、所定のアプリケーションが使用する通信ポートを開放するポートノッキングと呼ばれる技術が知られている。
ここで、一般に、組み込みシステムや制御機器等は、CPU(Central Processing Unit)やMPU(Micro Processing Unit)、ROM(Read Only Memory)等のハードウェア資源が限られている場合が多い。したがって、このような組み込みシステムや制御機器等においては、ハードウェア資源の不要な消費を防止する観点から、開放されている通信ポート番号のみならず、組み込みシステムや制御機器等の存在自体を第三者から隠ぺいすることが好ましい。
特開2006−352476号公報 特開2007−6108号公報
しかしながら、上記の従来技術においては、機器の存在を第三者から適切に隠ぺいすることができない場合があり、第三者により不正アクセスがなされる可能性があった。例えば、ポートスキャンが行われた場合、アプリケーションが使用する通信ポート番号は隠ぺいされるものの、ポートスキャンに対しては応答してしまうため、機器の存在は隠ぺいすることができない場合がある。また、例えば、ネットワーク上のパケットが盗聴された場合、いわゆるリプレイ攻撃の手法により機器が不正にアクセスされる可能性がある。
本発明の実施の形態は、上記の点に鑑みてなされたもので、不正アクセスの防止を支援することを目的とする。
上記目的を達成するため、本発明の実施の形態は、所定のアプリケーションが搭載されたクライアント装置と、該所定のアプリケーションと第1の通信ポートを介して通信するサーバ装置とを有する情報処理システムであって、前記クライアント装置は、第1の時刻情報に基づき、1以上の第2の通信ポートと、前記第1の通信ポートを開放するための前記第2の通信ポートを指定した開放要求を送信する順番とを含む第1の開放パターンを決定する第1の決定手段と、前記第1の決定手段により決定された第1の開放パターンに基づき、前記サーバ装置に対して、前記第2の通信ポートを指定した前記開放要求を前記順番に従って送信する送信手段と、を有し、前記サーバ装置は、第2の時刻情報に基づき、前記サーバ装置の前記第1の通信ポートを開放するための1以上の第3の通信ポートと、該第3の通信ポートを指定した開放要求を受信する順番とを含む第2の開放パターンを決定する第2の決定手段と、前記クライアント装置から受信した前記開放要求と、前記第2の開放パターンとに基づき、前記第1の通信ポートを開放するか否かを判定する判定手段と、前記判定手段により前記第1の通信ポートを開放すると判定された場合、該第1の通信ポートを開放する開放手段と、を有することを特徴とする。
本発明の実施の形態によれば、不正アクセスの防止を支援することができる。
本実施形態に係る情報処理システムの一例のシステム構成図である。 本実施形態に係るコンピュータの一例のハードウェア構成図である。 本実施形態に係る情報処理システムの一例の機能構成図である。 開放パターン設定情報の一例のデータ構成図である。 要求パターン設定情報の一例のデータ構成図である。 本実施形態に係る情報処理システムの処理の流れの一例のシーケンス図である。 要求パターンの一例を説明するための図である。 本実施形態に係るポート開放判定処理の一例のフローチャートである。 開放パターンの一例を説明するための図である。 開放パターンの他の例を説明するための図である。
以下、本発明の実施形態について、図面を参照しながら詳細に説明する。
<システム構成>
まず、本実施形態に係る情報処理システム1のシステム構成について説明する。図1は、本実施形態に係る情報処理システムの一例のシステム構成図である。図1に示す情報処理システム1は、サーバ装置10と、1台以上のクライアント装置20とが例えばインターネット等のネットワークNを介して互いに接続されている。ネットワークNの全部又は一部は、例えばLAN(Local Area Network)や電話回線網等であってもよい。
サーバ装置10は、例えば、組み込みシステムやPLC(Programmable Logic Controller)、PC(パーソナルコンピュータ)等であり、クライアント装置20からの要求に応じて所定の処理を行う。ここで、所定の処理とは、例えば、サーバ装置10がWebサーバである場合は、クライアント装置20からの要求に応じて、HTTP(Hypertext Transfer Protocol)情報等を提供する処理である。これ以外にも、例えば、サーバ装置10がTelnet(Teletype network)やSSH(Secure Shell)等を用いた仮想端末をクライアント装置20に提供する処理等であってもよい。
クライアント装置20は、例えば、PC(パーソナルコンピュータ)、スマートフォン、タブレット端末等であり、サーバ装置10に対して所定の処理を要求する。クライアント装置20は、組み込みシステムやPLC等であってもよい。なお、以降では、クライアント装置20のそれぞれを区別する場合は、「クライアント装置20」、「クライアント装置20」、・・・と表す。
なお、図1に示す情報処理システム1は、一例であり、サーバ装置10が2台以上含まれていてもよい。また、サーバ装置10及びクライアント装置20との名称は、便宜上であり、サーバ装置10がクライアントとして機能してもよいし、クライアント装置20がサーバとして機能してもよい。
<ハードウェア構成>
次に、本実施形態に係るサーバ装置10及びクライアント装置20のハードウェア構成について説明する。本実施形態に係るサーバ装置10及びクライアント装置20は、例えば図2に示すようなコンピュータ100により実現することができる。図2は、本実施形態に係るコンピュータの一例のハードウェア構成図である。
図2に示すコンピュータ100は、入力装置101と、表示装置102と、外部I/F103と、RAM(Random Access Memory)104と、ROM105と、CPU106と、通信I/F107と、HDD(Hard Disk Drive)108とを備え、それぞれがバスBで接続されている。
入力装置101は、キーボードやマウス、タッチパネル等を含み、ユーザが各操作信号を入力するのに用いられる。表示装置102は、ディスプレイ等を含み、コンピュータ100による処理結果を表示する。なお、入力装置101及び表示装置102は必要なときに接続して利用する形態であってもよい。
通信I/F107はコンピュータ100をネットワークNに接続するインタフェースである。これにより、コンピュータ100は通信I/F107を介して他の装置とデータ通信を行うことができる。
また、HDD108は、プログラムやデータを格納している不揮発性の記憶装置の一例である。格納されるプログラムやデータには、コンピュータ100全体を制御する基本ソフトウェアであるOS(Operating System)、及びOS上において各種機能を提供するアプリケーションソフトウェア等がある。なお、コンピュータ100はHDD108に代わりに又はHDD108と併せて、フラッシュメモリを用いるドライブ装置(例えばソリッドステートドライブ:SSD)を利用するものであってもよい。
HDD108は格納しているプログラムやデータを所定のファイルシステム及び/又はDBにより管理している。外部I/F103は、外部装置とのインタフェースである。外部装置には、記録媒体103a等がある。これにより、コンピュータ100は外部I/F103を介して記録媒体103aの読み取り及び/又は書き込みを行うことができる。記録媒体103aにはフレキシブルディスク、CD、DVD、SDメモリカード、USBメモリ等がある。
ROM105は、電源を切ってもプログラムやデータを保持することができる不揮発性の半導体メモリ(記憶装置)である。ROM105にはコンピュータ100の起動時に実行されるBIOS、OS設定、及びネットワーク設定等のプログラムやデータが格納されている。RAM104はプログラムやデータを一時保持する揮発性の半導体メモリ(記憶装置)である。
CPU106は、ROM105やHDD108等の記憶装置からプログラムやデータをRAM104上に読み出し、処理を実行することで、コンピュータ100全体の制御や機能を実現する演算装置である。
本実施形態に係るサーバ装置10及びクライアント装置20は、上記ハードウェア構成により後述する処理を実現することができる。なお、上記ハードウェア構成は一例であり、サーバ装置10及びクライアント装置20のハードウェア構成は、これに限られない。サーバ装置10又は/及びクライアント装置20が、例えば、組み込みシステムである場合、HDD108を有していない場合が多く、また、CPUの代わりにMPUを有している場合が多い。
<機能構成>
次に、本実施形態に係る情報処理システム1の機能構成について説明する。図3は、本実施形態に係る情報処理システムの一例の機能構成図である。
≪サーバ装置≫
本実施形態に係るサーバ装置10は、通信部11と、パケット処理部12と、サーバアプリケーション13と、ポート制御部14と、時刻取得部15とを有する。また、サーバ装置10は、パケット記憶部16と、開放パターン設定記憶部17とを利用する。
通信部11は、例えば、CPU106、通信I/F107等により実現され、クライアント装置20との通信を行う。すなわち、サーバ装置10は、通信部11を介して、クライアント装置20とパケットの送受信を行う。
パケット処理部12は、例えば、CPU106等により実現され、通信部11を介してクライアント装置20から受信したパケットの保存及び解析を行う。すなわち、パケット処理部12は、受信したパケットをパケット記憶部16に保存する。また、パケット処理部12は、保存したパケットのヘッダから宛先ポート番号を取得する。そして、パケット処理部12は、取得した宛先ポート番号が閉鎖されている場合、保存したパケットを破棄する一方、取得した宛先ポート番号が開放されている場合、保存したパケットを当該宛先ポート番号に対応するサーバアプリケーション13に送信する。
サーバアプリケーション13は、サーバ装置10に搭載(インストール)され、後述するクライアントアプリケーション22に対してサーバとして機能するプログラムである。サーバアプリケーション13は、例えば、クライアント装置20に対してWebサーバとして機能するためのプログラム、FTPサーバとして機能するためのプログラム、SSHサーバ等の仮想端末を提供するためのプログラム等である。なお、サーバアプリケーション13は、サーバアプリケーション13毎に予め決められた番号の通信ポートを用いてクライアント装置20と通信を行う。
ポート制御部14は、例えば、CPU106等により実現され、開放パターン設定記憶部17に記憶されている開放パターン設定情報17Dと、時刻取得部15により取得された時刻情報とに基づき、開放パターンを生成する。ここで、開放パターンとは、詳細は後述するが、所定のポート番号の通信ポート(以降、単に「ポート」表す)を開放させるためにクライアント装置20が行うポートノッキングに対する正解パターンである。すなわち、クライアント装置20から開放パターンに指定されたポート番号及び順序でポートノッキングが行われた場合、ポート制御部14は、所定のポート番号のポートを開放する。
ここで、ポートノッキングとは、指定された1以上のポート番号に対して、指定された順序でパケットを送信することで、所定のポートを開放させる手法である。
時刻取得部15は、例えば、CPU106等により実現され、現在時刻を示す時刻情報を取得する。
パケット記憶部16は、例えば、HDD108又はサーバ装置10とネットワークNを介して接続された記憶装置等により実現され、通信部11を介してクライアント装置20から受信したパケットを保存する。なお、後述するように、パケット記憶部16は、受信したパケットを一時的に保存するための記憶部であるため、例えばRAM104等により実現されてもよい。
開放パターン設定記憶部17は、例えば、HDD108又はサーバ装置10とネットワークNを介して接続された記憶装置等により実現され、ポート制御部14が開放パターンを生成するための開放パターン設定情報17Dを記憶する。開放パターン設定情報17Dの詳細については後述する。
≪クライアント装置≫
本実施形態に係るクライアント装置20は、通信部21と、クライアントアプリケーション22と、ポート開放要求部23と、時刻取得部24とを有する。また、クライアント装置20は、要求パターン設定記憶部25を利用する。
通信部21は、例えば、CPU106、通信I/F107等により実現され、サーバ装置10との通信を行う。すなわち、クライアント装置20は、通信部21を介して、サーバ装置10とパケットの送受信を行う。
クライアントアプリケーション22は、クライアント装置20に搭載(インストール)され、上述したサーバアプリケーション13に対してクライアントとして機能するプログラムである。クライアントアプリケーション22は、例えば、Webブラウザ、FTPクライアント、SSHクライアント等のプログラムである。なお、クライアントアプリケーション22は、サーバアプリケーション13毎に予め決められたポート番号を用いてクライアント装置20と通信を行う。
ポート開放要求部23は、例えば、CPU106等により実現され、要求パターン設定記憶部25に記憶されている要求パターン設定情報25Dと、時刻取得部24により取得された時刻情報とに基づき、要求パターンを生成する。また、ポート開放要求部23は、生成された要求パターンに基づき、通信部21を介して、サーバ装置10に対してポートノッキングを行う。ここで、要求パターンとは、詳細は後述するが、サーバ装置10の所定のポート番号のポートを開放させるためのポートノッキングのノッキングパターンである。すなわち、クライアント装置20は、要求パターンに指定されたポート番号及び順序で、サーバ装置10に対して、ポートノッキングを行う。
時刻取得部24は、例えば、CPU106等により実現され、現在時刻を示す時刻情報を取得する。ここで、クライアント装置20の時刻取得部24及びサーバ装置10の時刻取得部15がそれぞれ取得する時刻情報は、互いに同期されている必要がある。時刻取得部15及び時刻取得部24によりそれぞれ取得される時刻情報を互いに同期させるためには、例えば、GPS(Global Positioning System)時刻やNTP(Network Time Protocol)等を用いることにより行うことができる。
要求パターン設定記憶部25は、例えば、HDD108又はクライアント装置20とネットワークNを介して接続された記憶装置等により実現され、ポート開放要求部23が要求パターンを生成するための要求パターン設定情報25Dを記憶する。要求パターン設定情報25Dの詳細については後述する。
≪開放パターン設定情報≫
次に、開放パターン設定記憶部17に記憶されている開放パターン設定情報17Dについて説明する。図4は、開放パターン設定情報の一例のデータ構成図である。
開放パターン設定情報17Dは、アドレス情報、開放対象ポート番号、開放パターン生成方式、キー情報、ポート数等のデータ項目を有する。
アドレス情報は、クライアント装置20を識別するためのIPアドレス等のアドレス情報である。アドレス情報には、MAC(Media Access Control)アドレスや製造固有番号(シリアルナンバー)等を用いてもよい。開放対象ポート番号は、クライアント装置20から受信したノッキングパターンが開放パターンと一致した場合に、ポート制御部14により開放されるポートの番号である。
開放パターン生成方式は、例えば、乱数生成方式やマッピングテーブル方式等がある。例えば、乱数生成方式では、時刻取得部15により取得された時刻情報と、キー情報に指定された文字列とに基づき、ポート数に指定された個数の乱数列を生成し、この乱数列を開放パターンとする方式である。なお、生成される乱数列の各乱数の値は、0以上65535以下の数値(すなわち、いずれかのポート番号を示す数値)である。一方、マッピングテーブル方式では、時刻取得部15により取得された時刻情報と、キー情報に指定された文字列と、予め設定された所定のマッピングテーブルとに基づき、時刻情報及び文字列の例えばハッシュ値を用いてマッピングテーブルからポート数に指定された個数のポート番号を取得し、この取得したポート番号を開放パターンとする方式である。
ここで、キー情報に指定される文字列は、クライアント装置20毎に任意の文字列を指定すればよい。このようなキー情報を用いることにより、異なるクライアント装置20間で異なる開放パターンを生成することができる。例えば、クライアント装置20(キー情報「ID001」)と、クライアント装置20(キー情報「ID002」)とに対して、同時刻(同じ時刻情報)に開放パターンを生成した場合においても、異なる開放パターンを生成することができる。このことは後述する要求パターンの生成においても同様である。
≪要求パターン設定情報≫
次に、要求パターン設定記憶部25に記憶されている要求パターン設定情報25Dについて説明する。図5は、要求パターン設定情報の一例のデータ構成図である。
要求パターン設定情報25Dは、開放要求ポート番号、要求パターン生成方式、キー情報、ポート数等のデータ項目を有する。これらのデータ項目の設定値は、サーバ装置10の開放パターン設定情報17Dの対応するレコードの開放対象ポート番号、開放パターン生成方式、キー情報、ポート数とそれぞれ同じ値である。
すなわち、例えばクライアント装置20(アドレス情報「192.168.0.1」)の要求パターン設定記憶部25に記憶されている要求パターン設定情報25Dは、サーバ装置10の開放パターン設定情報17Dの1行目〜3行目のレコードのそれぞれの各設定値を有する情報である。同様に、例えばクライアント装置20(アドレス情報「192.168.0.2」)の要求パターン設定記憶部25に記憶されている要求パターン設定情報25Dは、サーバ装置10の開放パターン設定情報17Dの4レコード目の各設定値を有する情報である。このように、各クライアント装置20が有する要求パターン設定情報25Dは、サーバ装置10が有する開放パターン設定情報17Dの「一部」である。これにより、クライアント装置20が生成する要求パターンと、サーバ装置10が生成する開放パターンは、(後述するように、所定の範囲内の時刻情報であれば)同じパターンとなり、クライアント装置20は、ポートノッキングによりサーバ装置10の対象のポート番号を開放させることができる。
<処理の詳細>
次に、本実施形態に係る情報処理システム1の処理の詳細について説明する。
≪処理の流れ≫
まず、本実施形態に係る情報処理システム1の処理の流れを図6を用いて説明する。本実施形態に係るクライアント装置20は、クライアントアプリケーション22による通信に先立って、サーバ装置10に対して、ポートノッキングによりクライアントアプリケーション22がサーバアプリケーション13と通信を行うためのポートの開放要求を行う。このとき、本実施形態に係るクライアント装置20は、要求パターンを生成し、この要求パターンをノッキングパターンとしてポートノッキングを行う。図6は、本実施形態に係る情報処理システムの処理の流れの一例のシーケンス図である。以降では、一例として、クライアントアプリケーション22はWebブラウザであり、サーバアプリケーション13はWebサーバとして機能するプログラムであるものとして説明する。すなわち、クライアントアプリケーション22は、サーバ装置10のポート番号「80」と通信を行うものとする。また、サーバ装置10のすべてのポートは閉鎖されているものとする。
ステップS601において、クライアント装置20のポート開放要求部23は、要求パターンを生成する。このとき、ポート開放要求部23は、時刻取得部24が取得した時刻情報と、図5に示す要求パターン設定情報25Dの3レコード目(開放要求ポート番号「80」)の情報とに基づき要求パターンを生成する。具体的には、ポート開放要求部23は、以下のようにして要求パターンを生成する。
(1)時刻取得部24から現在時刻を示す時刻情報を取得する。
(2)時刻情報の値を所定の範囲で丸める。例えば、1分の範囲で丸める場合、秒数は切り捨てればよい。また、例えば、10分の範囲で丸める場合、分を示す1の位を切り捨てればよい。また、前後1分の範囲や前後10分の範囲等で値を丸めてもよい。このように時刻情報の値を所定の範囲で丸める理由は、サーバ装置10とクライアント装置20との間のパケットの到達時間を考慮したためである。すなわち、後述する処理においてサーバ装置10が開放パターンを生成する際に取得する時刻情報と、上記でクライアント装置20が取得した時刻情報との間に多少の差がある場合でも、同じパターンの要求パターン及び開放パターンが生成されるようにするためである。
(3)上記の(2)で値を丸めた時刻情報と、キー情報「ID001」とに基づき、ポート数に指定された数(10個)の乱数(この乱数が要求パターンのポート番号となる)を生成し、これを生成された順に番号付けることで要求パターンとする。これは、例えば、C言語のsrand関数等を用いればよい。なお、ここでは、乱数生成方式を用いた場合の要求パターンの生成を説明したが、マッピングテーブルを用いることにより、同様に要求パターンを生成することができる。このようにして生成された要求パターンは、例えばRAM104等に格納される。
以上の(1)〜(3)により例えば図7に示すような要求パターンが生成されたものとして、以降説明する。このように、本実施形態に係るクライアント装置20は、ポートノッキングのノッキングパターン(要求パターン)を時刻情報等に基づき動的に生成する。したがって、クライアント装置20とサーバ装置10間のパケットが盗聴等されていた場合においてもリプレイ攻撃による不正アクセスの防止を図ることができる。
ステップS602において、クライアント装置20のポート開放要求部23は、通信部21を介して、宛先ポート番号として要求パターンに指定されているポート番号を指定した開放要求を、サーバ装置10に対して送信する。例えば、ポート開放要求部23は、1回目の開放要求には図7に示すように宛先ポート番号として「9629」を指定して、送信する。また、例えば、ポート開放要求部23は、2回目の開放要求には図7に示すように宛先ポート番号として「1850」を指定して、送信する。このように、ポート開放要求部23は、要求パターンに指定された回数(図7の例では10回)の開放要求を順にサーバ装置10に送信することでポートノッキングを行う。ここで、ポート開放要求部23により送信される開放要求には、上記の宛先ポート番号に加えて、送信元のクライアント装置20のアドレス情報(例えばIPアドレス)とが含まれる。なお、開放要求には、開放対象ポートのポート番号を含めてもよい。
ステップS603において、サーバ装置10は、通信部11を介して受信した開放要求に基づき、開放対象ポート(ここではポート番号「80」)を開放させるか否かの判定を行う。また、サーバ装置10は、判定結果に応じて該当のポートを開放する。このポート開放判定処理については、後述する。
ここで、サーバ装置10は、開放対象ポートのポート番号を、クライアント装置20の種類に応じて決定すればよい。すなわち、例えばクライアント装置20がPCの場合は開放対象ポートのポート番号を「80」、PLCの場合は開放対象ポートのポート番号を「5000」等とすればよい。また、これに限られず、例えば、クライアント装置20のIPアドレスに応じて開放対象ポートのポート番号を決定してもよいし、開放対象ポートのポート番号が予め決まっていてもよい。
ステップS604において、クライアント装置20のクライアントアプリケーション22は、通信部21を介して、アプリケーションの処理要求をサーバ装置10に対して送信する。すなわち、ポート開放要求部23によるポートノッキングが行われた後、クライアントアプリケーション22は、宛先ポート番号としてサーバアプリケーション13と通信を行うポート番号(ここではポート番号「80」)を指定したアプリケーションの処理要求をサーバ装置10に対して送信する。
ステップS605において、サーバ装置10は、通信部11を介して受信したアプリケーションの処理要求に基づき、ポート開放判定処理を行う。このとき、上記のステップS603の処理において該当のポート(ここではポート番号「80」)が開放された場合、サーバアプリケーション13は、当該処理要求に係る処理を実行する。すなわち、該当のポートが開放されている場合は、本ステップではクライアント装置20及びサーバ装置10の間でアプリケーション処理が行われる。このポート開放判定処理についても、上記と同様に後述する。
ステップS606において、サーバ装置10は、クライアント装置20との間でアプリケーション処理が終了した場合、該当のポート(ここではポート番号「80」)を閉鎖する。
以上のように、本実施形態に係るクライアント装置20は、クライアントアプリケーション22がサーバアプリケーション13と通信を行うためのサーバ装置10のポートの開放を、ポートノッキングにより行う。このとき、クライアント装置20は、ポートノッキングのノッキングパターンを現在の時刻情報等に基づき動的に生成する。また、後述するようにサーバ装置10においても、当該ノッキングパターンに対する正解パターン(開放パターン)を、動的に生成する。したがって、クライアント装置20とサーバ装置10間のパケット(開放要求パケット)が第三者により盗聴された場合においても、リプレイ攻撃による不正アクセスの防止を図ることができる。
≪ポート開放判定処理≫
次に、図6を用いて説明したステップS603及びステップS605のポート開放判定処理について図8を用いて説明する。本実施形態に係るサーバ装置10は、ポートの開放要求又はアプリケーションの処理要求に関わらず、他の装置からパケットを受信した場合、以降で説明するポート開放判定処理を実行する。図8は、本実施形態に係るポート開放判定処理の一例のフローチャートである。なお、以降のステップS801〜ステップS810の処理は、サーバ装置10の通信部11がパケットを1つ受信する毎に実行される。したがって、例えば、サーバ装置10の通信部11がクライアント装置20から複数の開放要求を受信した場合、受信した開放要求毎にそれぞれステップS801〜ステップS810を繰り返し実行する。
ステップS801において、サーバ装置10のパケット処理部12は、通信部11を介して他の装置から受信したパケットをパケット記憶部16に保存する。なお、パケット処理部12は、受信したパケットがポートの開放要求であるかアプリケーションの処理要求であるか、さらにはそれ以外の要求等であるかに関わらずに、受信したパケットをすべてパケット記憶部16に保存する。また、これは、受信したパケットの送信元がクライアント装置20であるか、それ以外の他の装置であるかに関わらない。以降では、ステップS811の処理の説明を除き、パケット記憶部16に保存されたパケットは、図6のステップS602の開放要求であるものとして説明する。すなわち、ここでは当該開放要求には、送信元のアドレス情報「192.168.0.1」とが含まれる。なお、当該開放要求のヘッダに指定された宛先ポート番号には、送信順に応じて図7に示すポート番号が指定されている。
ステップS802において、サーバ装置10のパケット処理部12は、上記のステップS801でパケット記憶部16に記憶したパケットのヘッダから宛先ポート番号を取得し、当該ポート番号が開放されているポート番号であるか否かを判定する。図6のステップS602のように、サーバ装置10がクライアント装置20から開放要求を受信するような場合、受信した開放要求に指定された宛先ポート番号は開放されていないため、ステップS803に進む。一方、クライアント装置20によるポートノッキングにより開放対象のポート番号が開放された後、図6のステップS604のように、当該開放されたポート番号を宛先ポート番号に指定したアプリケーションの処理要求を受信するような場合、ステップS811に進む。
ステップS803において、サーバ装置10のポート制御部14は、開放パターンの生成が必要か否かを判定する。開放パターンの生成が必要な場合とは、例えば、受信したパケットに含まれるIPアドレス及び開放要求ポート番号に対応する開放パターンが生成されていない場合である。また、後述するように、開放パターンは所定の範囲で値を丸めた時刻情報に基づいて生成されるため、開放パターンが生成されてから所定の時間(値を丸める範囲の時間)が経過している場合、既に生成済みの開放パターンを削除した上で新たに開放パターンを生成する(すなわち、開放パターンを更新する)。
ステップS804において、サーバ装置10のポート制御部14は、開放パターンを生成する。このとき、ポート制御部14は、時刻取得部15が取得した時刻情報と、図4に示す開放パターン設定情報17Dとに基づき開放パターンを生成する。具体的には、ポート制御部14は、以下のようにして開放パターンを生成する。
(1)時刻取得部15から現在時刻を示す時刻情報を取得する。
(2)時刻情報の値を所定の範囲で丸める。これは、上述したようにクライアント装置20が要求パターンを生成する場合と同様の方法で行う。
(3)上記のステップS801で保存したパケット(開放要求)に含まれる送信元のアドレス情報と、開放要求ポート番号とに基づき開放パターン設定情報17Dのレコードを特定する。ここでは、送信元のアドレス情報は「192.168.0.1」、開放要求ポート番号は「80」であるため図4の開放パターン設定情報17Dの3行目のレコードが特定される。
(4)上記の(2)で値を丸めた時刻情報と、上記の(3)で特定したレコードのキー情報「ID001」とに基づき、ポート数に指定された数(10個)の乱数(この乱数が開放パターンのポート番号となる)を生成し、これを生成された順に番号付けることで開放パターンとする。これは、要求パターンの生成と同様に、例えば、C言語のsrand関数等を用いればよい。なお、ここでは、乱数生成方式を用いた場合の要求パターンの生成を説明したが、マッピングテーブルを用いることにより、同様に開放パターンを生成することができる。このようにして生成された開放パターンは、例えばRAM104等に格納される。
以上の(1)〜(4)により例えば図9に示すような開放パターンが生成されたものとして、以降説明する。このように、本実施形態に係るサーバ装置10は、クライアント装置20が行うポートノッキングのノッキングパターン(要求パターン)に対する正解パターン(開放パターン)を時刻情報等に基づき動的に生成する。したがって、サーバ装置10とクライアント装置20間のパケットが盗聴等されていた場合においてもリプレイ攻撃による不正アクセスの防止を図ることができる。
ステップS805において、サーバ装置10のポート制御部14は、上記のステップS801で保存した開放要求(パケット)の宛先ポート番号と、上記のステップS804で生成した開放パターンの該当の受信順のポート番号とが一致するか否かを判定する。例えば、サーバ装置10は、クライアント装置20から開放要求を最初に受信した場合、この開放要求の宛先ポート番号と、開放パターンの受信順「1」に指定されているポート番号とが一致するか否かを判定する。同様に、サーバ装置10は、クライアント装置20から開放要求を次に受信した場合、この開放要求の宛先ポート番号と、開放パターンの受信順「2」に指定されているポート番号とが一致するか否かを判定する。なお、開放パターンの受信順は、例えば、現在の受信順の値を格納するカウンタ変数を用いて管理すればよい。
パケット記憶部16に保存した開放要求(パケット)の宛先ポート番号と、開放パターンの該当の受信順に指定されたポート番号とが一致する場合、ステップS806に進む一方、一致しない場合、ステップS807に進む。
ステップS806において、サーバ装置10のポート制御部14は、開放パターンの受信順が最後であるか否かを判定する。例えば、図9に示す開放パターンの場合、受信順が「10」である場合、最後であると判定される。これは、上述したカウント変数に格納された値を参照することで判定することができる。
ステップS807において、サーバ装置10のポート制御部14は、開放パターンの受信順をリセットする。すなわち、ポート制御部14は、開放パターンの現在の受信順の値を格納するカウンタ変数に「1」を格納する。
ステップS808において、サーバ装置10のポート制御部14は、開放対象のポート番号(ここではポート番号「80」)を開放する。これにより、クライアント装置20のクライアントアプリケーション22は、当該開放されたポートを介してサーバ装置10のサーバアプリケーション13と通信を行うことができるようになる。
ステップS809において、サーバ装置10のポート制御部14は、開放パターンの現在の受信順の値を次に進める。すなわち、ポート制御部は、上述したカウンタ変数の値をインクリメントすればよい。
ステップS810において、サーバ装置10のパケット処理部12は、上記のステップS801で保存したパケット(開放要求)を破棄(削除)する。これにより、サーバ装置10の通信部11がクライアント装置20から1つの開放要求のパケットを受信した場合の処理が完了する。サーバ装置10は、以上で説明した処理を、受信したすべての開放要求(パケット)に対して行う。これにより、クライアント装置20は、サーバ装置10のサーバアプリケーション13と通信を行うためのポートを開放させることができる。そして、図6で説明したように、クライアント装置20のクライアントアプリケーション22は、アプリケーションの処理要求をサーバ装置10に対して送信する。
ステップS811において、サーバ装置10のサーバアプリケーション13は、処理要求に応じた処理を実行する。すなわち、上記のステップS808で開放されたポート番号を宛先ポート番号に指定したパケット(アプリケーションの処理要求)を受信した場合、サーバ装置10のパケット処理部12は、当該パケットを該当のサーバアプリケーション13に送信する。そして、該当のサーバアプリケーション13は、受信したパケット(アプリケーションの処理要求)に応じた処理を実行する。これにより、サーバ装置10とクライアント装置20との間で、アプリケーション処理が行われる。なお、サーバ装置10は、上記のステップS808で該当のポートを開放した場合、又はクライアント装置20との間のアプリケーション処理が終了した場合、RAM104等に記憶させておいた開放パターンを削除することが好ましい。これにより、サーバ装置10とクライアント装置20間のパケットが第三者により盗聴等されていた場合においてもリプレイ攻撃による不正アクセスの防止を図ることができる。
なお、サーバ装置10が受信した開放要求には開放要求ポート番号が含まれていなくてもよい。このような場合、サーバ装置10のポート制御部14は、ステップS804の(3)において、開放要求に含まれる送信元アドレス情報に基づき開放パターン設定情報17Dの1以上の対応するレコードを特定する。例えば、送信元のアドレス情報が「192.168.0.1」である場合、ポート制御部14は、開放パターン設定情報17Dの1行目〜3行目のレコードを特定する。次に、ポート制御部14は、特定したすべてレコードに対してステップS804の(4)を行い、1以上の開放パターンをそれぞれ生成すればよい。そして、生成された1以上の開放パターンに対してそれぞれ上記のステップS805〜ステップS810の処理を行えばよい。
また、上記のステップS804において、図10に示すような所定の時間間隔毎の開放パターンを生成してもよい。図10に示す開放パターンは、時刻取得部15から取得された現在時刻を示す時刻情報が「9:06」であった場合に、前後1分間のそれぞれの時刻情報に基づき生成された開放パターンA及び開放パターンBを示す一例である。このように、取得した現在時刻を示す時刻情報から所定の前後の範囲の時刻情報に基づき、それぞれ開放パターンを生成することで、例えば、サーバ装置10とクライアント装置20間のネットワークNが輻輳等により遅延した場合においても適切に該当のポートを開放させることができる。例えば、図10の例では、クライアント装置20からサーバ装置10に対する開放要求の遅延時間が1分以内であれば、ポートノッキングにより適切に該当のポートを開放させることができる。
<まとめ>
以上のように本実施形態に係る情報処理システム1は、クライアント装置20とサーバ装置10との間でポートノッキングを行うことにより、サーバ装置10に搭載されたサーバアプリケーション13と通信を行うためのポートを開放することができる。このとき、サーバ装置10及びクライアント装置20は、時刻情報等に基づき、ノッキングパターンを示す要求パターンと、ノッキングパターンに対する正解パターンを示す開放パターンとをそれぞれ動的に生成する。したがって、サーバ装置10とクライアント装置20間のパケットが第三者により盗聴等されていた場合においてもリプレイ攻撃による不正アクセスの防止を図ることができる。
また、本実施形態に係る情報処理システム1は、ポートノッキングを用いることにより、動的にポートの開放及び閉鎖を行うため、第三者によるポートスキャン等に応答することなく、機器(サーバ装置10)を隠ぺいすることができる。
なお、ポート開放要求部23は、第1の決定手段の一例である。ポート開放要求部23及び通信部21は、送信手段の一例である。ポート制御部14は、第2の決定手段、判定手段、及び開放手段の一例である。
本発明は、具体的に開示された上記の実施形態に限定されるものではなく、特許請求の範囲から逸脱することなく、種々の変形や変更が可能である。
1 情報処理システム
10 サーバ装置
11 通信部
12 パケット処理部
13 サーバアプリケーション
14 ポート制御部
15 時刻取得部
16 パケット記憶部
17 開放パターン設定記憶部
20 クライアント装置
21 通信部
22 クライアントアプリケーション
23 ポート開放要求部
24 時刻取得部
25 要求パターン設定記憶部
100 コンピュータ
101 入力装置
102 表示装置
103 外部I/F
103a 記録媒体
104 RAM
105 ROM
106 CPU
107 通信I/F
108 HDD
N ネットワーク

Claims (10)

  1. 所定のアプリケーションが搭載されたクライアント装置と、該所定のアプリケーションと第1の通信ポートを介して通信するサーバ装置とを有する情報処理システムであって、
    前記クライアント装置は、
    第1の時刻情報に基づき、1以上の第2の通信ポートと、前記第1の通信ポートを開放するための前記第2の通信ポートを指定した開放要求を送信する順番とを含む第1の開放パターンを決定する第1の決定手段と、
    前記第1の決定手段により決定された第1の開放パターンに基づき、前記サーバ装置に対して、前記第2の通信ポートを指定した前記開放要求を前記順番に従って送信する送信手段と、
    を有し、
    前記サーバ装置は、
    第2の時刻情報に基づき、前記サーバ装置の前記第1の通信ポートを開放するための1以上の第3の通信ポートと、該第3の通信ポートを指定した開放要求を受信する順番とを含む第2の開放パターンを決定する第2の決定手段と、
    前記クライアント装置から受信した前記開放要求と、前記第2の開放パターンとに基づき、前記第1の通信ポートを開放するか否かを判定する判定手段と、
    前記判定手段により前記第1の通信ポートを開放すると判定された場合、該第1の通信ポートを開放する開放手段と、
    を有する情報処理システム。
  2. 前記判定手段は、
    受信した開放要求に指定された前記第2の通信ポート及び該開放要求を受信した順番と、前記第2の開放パターンに含まれる前記第3の通信ポート及び該第3の通信ポートを指定した開放要求を受信する順番とがそれぞれ一致する場合、前記第1の通信ポートを開放すると判定する、請求項1記載の情報処理システム。
  3. 前記第1の決定手段は、
    前記第1の時刻情報に基づき1以上の第1の疑似乱数を生成し、該生成された1以上の第1の疑似乱数を前記1以上の第2の通信ポートとした前記第1の開放パターンを決定し、
    前記第2の決定手段は、
    前記第2の時刻情報に基づき1以上の第2の疑似乱数を生成し、該生成された1以上の第2の疑似乱数を前記1以上の第3の通信ポートとした前記第2の開放パターンを決定する、請求項1又は2記載の情報処理システム。
  4. 前記第1の決定手段は、
    前記第1の時刻情報に基づき所定のマッピングテーブルから算出された番号を、前記1以上の第2の通信ポートとした前記第1の開放パターンを決定し、
    前記第2の決定手段は、
    前記第2の時刻情報に基づき所定のマッピングテーブルから算出された番号を、前記1以上の第3の通信ポートとした前記第2の開放パターンを決定する、請求項1又は2記載の情報処理システム。
  5. 前記第1の決定手段は、
    さらに、予め設定された所定の文字列情報に基づき前記第1の開放パターンを決定し、
    前記第2の決定手段は、
    さらに、前記所定の文字列情報に基づき前記第2の開放パターンを決定する、請求項1ないし4のいずれか1項に記載の情報処理システム。
  6. 前記サーバ装置は、
    前記第2の決定手段により決定された開放パターンを削除する削除手段を有し、
    前記第2の決定手段は、
    前記削除手段により前記第2の開放パターンが削除されると、第3の時刻情報に基づき、前記サーバ装置の前記第1の通信ポートを開放するための1以上の第4の通信ポートと、該第4の通信ポートを指定した開放要求を受信する順番とを含む第3の開放パターンを決定する、請求項1ないし5のいずれか1項に記載の情報処理システム。
  7. 前記削除手段は、所定の時間経過毎に、前記第2の決定手段により決定された開放パターンを削除する、請求項6記載の情報処理システム。
  8. 前記第2の決定手段は、
    第2の時刻情報に基づき、前記サーバ装置の前記第1の通信ポートを開放するための1以上の第3の通信ポートと、該第3の通信ポートを指定した開放要求を受信する順番とを含む第2の開放パターンを、複数決定し、
    前記判定手段は、
    前記クライアント装置から受信した前記開放要求と、複数の前記第2の開放パターンとに基づき、前記第1の通信ポートを開放するか否かを判定する、請求項1ないし7のいずれか1項に記載の情報処理システム。
  9. 前記クライアント装置又は/及び前記サーバ装置は、組み込みシステムである、請求項1ないし8のいずれか1項に記載の情報処理システム。
  10. 当該情報処理装置と異なる他の情報処理装置に搭載された所定のアプリケーションと第1の通信ポートを介して通信する情報処理装置であって、
    時刻情報に基づき、前記第1の通信ポートを開放するための開放パターンを決定する決定手段と、
    前記他の情報処理装置から受信した前記第1の通信ポートを開放するための1以上の開放要求を受信する受信手段と、
    前記1以上の開放要求を受信した順番及び該1以上の開放要求にそれぞれ指定された第2の通信ポートと、前記開放パターンとに基づき、前記第1の通信ポートを開放するか否かを判定する判定手段と、
    前記判定手段により前記第1の通信ポートを開放すると判定された場合、該第1の通信ポートを開放する開放手段と、
    を有する情報処理装置。
JP2014237954A 2014-11-25 2014-11-25 情報処理システム及び情報処理装置 Active JP6409527B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2014237954A JP6409527B2 (ja) 2014-11-25 2014-11-25 情報処理システム及び情報処理装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2014237954A JP6409527B2 (ja) 2014-11-25 2014-11-25 情報処理システム及び情報処理装置

Publications (2)

Publication Number Publication Date
JP2016099878A true JP2016099878A (ja) 2016-05-30
JP6409527B2 JP6409527B2 (ja) 2018-10-24

Family

ID=56077204

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014237954A Active JP6409527B2 (ja) 2014-11-25 2014-11-25 情報処理システム及び情報処理装置

Country Status (1)

Country Link
JP (1) JP6409527B2 (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112543218A (zh) * 2019-09-20 2021-03-23 丰田自动车株式会社 用于车辆的通信装置及通信方法
CN113347136A (zh) * 2020-03-02 2021-09-03 浙江宇视科技有限公司 一种访问认证方法、装置、设备及存储介质
JP2021132316A (ja) * 2020-02-20 2021-09-09 沖電気工業株式会社 通信制御装置および通信制御方法並びに通信制御方法のプログラム

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110145910A1 (en) * 2009-12-11 2011-06-16 International Business Machiness Corporation Port tapping for secure access

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110145910A1 (en) * 2009-12-11 2011-06-16 International Business Machiness Corporation Port tapping for secure access

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112543218A (zh) * 2019-09-20 2021-03-23 丰田自动车株式会社 用于车辆的通信装置及通信方法
JP2021048548A (ja) * 2019-09-20 2021-03-25 トヨタ自動車株式会社 車両用通信装置及び通信方法
JP7215381B2 (ja) 2019-09-20 2023-01-31 トヨタ自動車株式会社 制御装置及び通信方法
JP2021132316A (ja) * 2020-02-20 2021-09-09 沖電気工業株式会社 通信制御装置および通信制御方法並びに通信制御方法のプログラム
JP7404922B2 (ja) 2020-02-20 2023-12-26 沖電気工業株式会社 通信制御装置および通信制御方法並びに通信制御方法のプログラム
CN113347136A (zh) * 2020-03-02 2021-09-03 浙江宇视科技有限公司 一种访问认证方法、装置、设备及存储介质

Also Published As

Publication number Publication date
JP6409527B2 (ja) 2018-10-24

Similar Documents

Publication Publication Date Title
US11750607B2 (en) Identifying accounts having shared credentials
JP6952849B2 (ja) セッションセキュリティ分割およびアプリケーションプロファイラ
US10374798B2 (en) System and method for rotating client security keys
CN108628658B (zh) 一种容器的许可证管理方法及装置
US9596249B2 (en) Detecting shared or compromised credentials through analysis of simultaneous actions
US20150358328A1 (en) Secure local server for synchronized online content management system
JPWO2016006520A1 (ja) 検知装置、検知方法及び検知プログラム
WO2018177124A1 (zh) 业务处理方法、装置、数据共享系统及存储介质
TWI725709B (zh) 資料儲存方法、裝置及設備
WO2018112940A1 (zh) 区块链节点的业务执行方法、装置及节点设备
US12137080B2 (en) Packet watermark with static salt and token validation
CN108134816B (zh) 对远程设备上的数据的访问
US20190386880A1 (en) IoT TOPOLOGY ANALYZER DEFINING AN IoT TOPOLOGY AND ASSOCIATED METHODS
JP2020184326A (ja) バイパス不可能なゲートウェイを使用するtpmベースの安全なマルチパーティ・コンピュータシステム
JP6409527B2 (ja) 情報処理システム及び情報処理装置
US20180288009A1 (en) Interception of Secure Shell Communication Sessions
US11367445B2 (en) Virtualized speech in a distributed network environment
WO2016082756A1 (en) Application access authority control
CN106909197B (zh) 一种虚拟化主机时间管理方法及虚拟化主机系统
US20150026363A1 (en) Time based ip address hopping
CN105681055A (zh) 共享文件服务器的访问方法、装置及系统
CN107085681A (zh) 鲁棒的计算设备标识框架
WO2025236775A1 (zh) 模型服务的安全防护方法及相关设备
CN103139366A (zh) 移动终端及其数据保护方法
CN109150921B (zh) 一种多节点集群的登录方法、装置、设备以及存储介质

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20171016

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20180711

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20180717

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20180821

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20180910

R150 Certificate of patent or registration of utility model

Ref document number: 6409527

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

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250