A.第1実施例
A−1:システム1000の構成
次に、実施の形態を実施例に基づき説明する。図1は、システム1000の構成を示すブロック図である。
システム1000は、通信装置としての複合機200と、端末装置10A〜10Cと、サーバ300と、中継装置30A〜30Bと、を備える。中継装置30A〜30Bは、2個のローカルエリアネットワークLN1、LN2を含む組織内ネットワークINを構成している。組織内ネットワークINは、社内ネットワークや学校内ネットワークなどの同一組織内に構築されたネットワークである。
具体的には、複合機200と、端末装置10Aと、は、第1ローカルエリアネットワークLN1に接続されている。第1ローカルエリアネットワークLN1は、中継装置30Aを介して、中継装置30Cに接続されている。端末装置10B、10Cと、は、第2ローカルエリアネットワークLN2に接続されている。第2ローカルエリアネットワークN2は、中継装置30Bを介して、中継装置30Cに接続されている。中継装置30Cは、中継装置30Aと、中継装置30Bと、にそれぞれ接続されている。これらの組織内ネットワークIN内の接続は、例えば、イーサネット回線(イーサネットは登録商標)を用いた接続である。
中継装置30Cは、さらに、図示しないインターネットサービスプロバイダを介して、インターネット80と接続されている。したがって、組織内ネットワークIN上の装置は、中継装置30Cを介して、インターネット80上の装置と通信可能である。
ここで、本明細書では、複合機200が属するローカルエリアネットワークLN1上の装置、具体的には、端末装置10Aを、内部装置とも呼ぶ。複合機200が属するローカルエリアネットワークLN1とは異なるネットワーク上の装置、具体的には、端末装置10B、10C、サーバ300、インターネット80に接続された第三者(例えば、悪意のある攻撃者)の計算機400を、外部装置とも呼ぶ。外部装置は、ローカルエリアネットワークLN1のゲートウェイとして機能する中継装置30Aを経由して、複合機200と通信する装置である、と言うことができる。
外部装置のうち、複合機200が属する組織内ネットワークIN上の装置、具体的には、第2ローカルエリアネットワークLN2上の端末装置10B、10Cを第1種の外部装置とも呼ぶ。外部装置のうち、組織内ネットワークINに属さない装置、すなわち、複合機200とインターネット80を介して接続される装置、具体的には、サーバ300、計算機400を第2種の外部装置とも呼ぶ。
複合機200は、複合機200のコントローラとしてのCPU210と、RAMなどの揮発性記憶装置220と、ハードディスクドライブやフラッシュメモリなどの不揮発性記憶装置230と、液晶ディスプレイなどの表示部240と、液晶パネルと重畳されたタッチパネルやボタンなどの操作部250と、通信部270と、スキャナ部280と、プリンタ部290と、を備えている。
スキャナ部280は、CCDやCMOSなどの光電変換素子を用いて光学的に文書等の対象物を読み取ることによって、読み取った画像を表すスキャンデータを生成する。プリンタ部290は、所定の方式(例えば、レーザ方式や、インクジェット方式)で、用紙(印刷媒体の一例)上に画像を印刷する装置である。
揮発性記憶装置220は、CPU210が処理を行う際に生成される種々の中間データを一時的に格納するバッファ領域を提供する。不揮発性記憶装置230には、コンピュータプログラムPG1と、設定情報データベースSIと、宛先情報データベースDIと、が格納されている。揮発性記憶装置220や不揮発性記憶装置230は、複合機200の内部メモリである。
コンピュータプログラムPG1は、複合機200の製造時に不揮発性記憶装置230に予め格納されて提供され得る。これに代えて、コンピュータプログラムPG1は、例えば、インターネットを介して接続されたサーバからダウンロードされる形態、あるいは、CD−ROMなどに記録された形態で提供され得る。
CPU210は、コンピュータプログラムPG1を実行することにより、複合機200の制御を実行する。例えば、CPU210は、ユーザの指示に従って、印刷処理や読取処理やファクシミリ処理を実行する。印刷処理は、プリンタ部290に画像を印刷させる処理である。読取処理は、スキャナ部280に対象物を光学的に読み取らせて、スキャンデータを生成させる処理である。ファクシミリ処理は、読取処理を用いて生成されるスキャンデータを、電話回線を介してFAXデータとして送信する処理や、電話回線を介して受信したFAXデータを用いて、プリンタ部290に画像を印刷させる処理を含む。また、コンピュータプログラムPG1は、サーバプログラムSPGを含んでいる。CPU210は、サーバプログラムSPGを実行することによって、WEBサーバ機能を実行することができる。
このWEBサーバ機能は、HTTP(Hypertext Transfer Protocolの略)に準拠したサーバとしての機能である。例えば、このWEBサーバ機能は、クライアントに対して、複合機200に関する設定情報データベースSIに格納された設定情報の変更や取得を行う設定管理サービスを提供する。
複合機200のWEBサーバ機能は、組織内ネットワークIN上の内部装置および第1種の外部装置、具体的には、第1ローカルエリアネットワークLN1上の端末装置10A(内部装置)と、第2ローカルエリアネットワークLN2上の端末装置10B、10C(第1種の外部装置)と、をクライアントとしてサービスを提供することを想定している。複合機200のWEBサーバ機能は、インターネット80を介して、第2種の外部装置にサービスを提供することは、想定していない。このために、セキュリティの観点からは、第2種の外部装置が、インターネットを介して、複合機200に、HTTPリクエストを送信できないことが好ましい。
設定情報データベースSIには、複合機200に関する設定情報は、例えば、画像処理に関する設定情報と、ネットワークに関する設定情報と、表示部240や操作部250に関する設定情報と、を含む様々な設定情報が格納されている。
画像処理に関する設定情報は、印刷処理に関する設定情報や読取処理に関する設定情報を含む。画像処理に関する設定情報には、個人情報が含まれ得る。例えば、読取処理に関する設定情報は、複数個の読取処理に関する設定値をグループ化した情報であるスキャンプロファイルを含む。スキャンプロファイルは、生成されるスキャンデータの解像度、色数(モノクロ、フルカラーなど)に加えて、生成されるスキャンデータの宛先を示すメールアドレスなどの個人情報を含む。
ネットワークに関する設定情報は、複合機200に割り当てられるIPアドレスや、サブネットマスクやデフォルトゲートウェイを示す情報などのTCP/IPに準拠した通信のための一般的な設定情報を含む。
宛先情報データベースDIは、例えば、ファクシミリ処理において、FAXデータの宛先となるFAX番号や、スキャンデータの宛先となるメールアドレスなどの宛先情報を含む。
通信部270は、外部装置とデータ通信を行うためのインタフェースを含む。本実施例では、第1ローカルエリアネットワークLN1に接続するためのインタフェース、具体的には、イーサネット(登録商標)やWi−Fi規格に準拠した有線や無線のインタフェースを含む。
サーバ300は、複合機200のベンダによって提供されるサーバである。サーバ300は、サーバ300のコントローラとしてのCPU310と、RAMなどの揮発性記憶装置320と、ハードディスクドライブなどの不揮発性記憶装置330と、インターネットITと接続するための通信部370と、を備えている。
揮発性記憶装置320は、CPU310が処理を行う際に生成される種々の中間データを一時的に格納するバッファ領域を提供する。不揮発性記憶装置330は、サーバプログラムPG2を格納している。CPU310は、サーバプログラムPG2を実行することによって、複合機200と協働して、後述する設定確認処理を実現する。
端末装置10A〜10Cは、パーソナルコンピュータやスマートフォンなどの公知の計算機である。端末装置10A〜10Cは、組織内ネットワークINを介して、複合機200と通信を行って、複合機200を利用することができる。例えば、端末装置10A〜10Cは、印刷ジョブを複合機200に送信して、複合機200に印刷を実行させることができる。端末装置10A〜10Cは、複合機200のWEBサーバ機能と通信して、複合機200の設定情報の変更や取得を行うことができる。
中継装置30Aは、ハブとしての機能と、ルータとしての機能と、を備えている。ハブは、第1ローカルエリアネットワークLN1上の装置間、例えば、端末装置10Aと、複合機200と、の間の通信を中継する。ルータは、第1ローカルエリアネットワークLN1上の装置と、中継装置30Aを介して接続される他のネットワーク(例えば、第2ローカルエリアネットワークLN2やインターネット80)上の装置と、の間の通信を中継する。
中継装置30Bは、中継装置30Aと同様に、ハブとして、第2ローカルエリアネットワークLN2上の装置間の通信を中継し、ルータとして、第2ローカルエリアネットワークLN2上の装置と他のネットワーク上の装置との間の通信を中継する。
中継装置30Cは、ルータとしての機能と、回線終端装置としての機能と、を備えている。中継装置30Cは、ルータとして、中継装置30Aと、中継装置30Bと、の間の通信、および、中継装置30A、30Bと、インターネット80上の装置と、の間の通信を中継する。中継装置30Cは、回線終端装置として、組織内ネットワークINで用いられる信号(具体的には、イーサネット回線の信号)と、中継装置30Cとインターネットサービスプロバイダとの間の通信で用いられる信号(例えば、光回線やADSL回線の信号)と、を変換する。回線終端装置は、例えば、光回線の場合はONU(Optical Network Unitの略)であり、ADSL回線の場合はモデムである。
中継装置30Cのルータ、回線終端装置としての機能は、本実施例のように1個の装置で実現されても良いし、2個の装置でそれぞれ実現されても良い。中継装置30A、30Bのハブ、ルータとしての機能についても同様である。
A−2.ネットワーク設定
組織内ネットワークIN上の装置200、10A〜10C、30A〜30Cには、それぞれ、組織内ネットワークIN内での通信のために、互いに異なるローカルIPアドレス(プライベートIPアドレスとも呼ぶ)が割り当てられている。ここで、複合機200に割り当てられているローカルIPアドレスを「LIP_M」とし、端末装置10A、10Bに割り当てられているローカルIPアドレスを、それぞれ、「LIP_Ta」、「LIP_Tb」とする。
インターネット80と接続される中継装置30Cには、さらに、インターネット80を介した通信を行うために、インターネット上の装置間で重複しない一意のアドレスであるグローバルIPアドレス「GIP_R」が割り当てられている。後述する設定確認処理において、複合機200からHTTPリクエストを受信することが想定されているサーバ300には、グローバルIPアドレス「GIP_S」が割り当てられている。
中継装置30Cでは、インターネット80と接続されているため、ルータとしての機能の一部として、NAT(Network Address Translation)やNAPT(Network Address Port Translation)と呼ばれるアドレス変換機能が動作している。アドレス変換機能は、組織内ネットワークINからインターネット80へと送信される要求を中継する際に実行される送信元IPアドレス変換処理と、インターネット80から組織内ネットワークINへと送信される応答を中継する際に実行される宛先IPアドレス変換処理と、を含む。複合機200がインターネット80上の第2種の外部装置に、要求(例えば、HTTPリクエスト)を送信し、該要求に対する応答(例えば、HTTPレスポンス)を、第2種の外部装置から受信するケースを想定する。中継装置30Cは、複合機200から第2の外部装置への要求の送信を中継する際には、該要求の送信元IPアドレスを、複合機200のローカルIPアドレス「LIP_M」から、中継装置30CのグローバルIPアドレス「GIP_R」に変換する(送信元IPアドレス変換処理)。このとき、中継装置30Cは、当該IPアドレスの変更履歴を記録する。中継装置30Cは、第2種の外部装置から複合機200への応答の送信を中継する際には、記録された変更履歴を参照して、該応答の宛先IPアドレスを、中継装置30CのグローバルIPアドレス「GIP_R」から、複合機200のローカルIPアドレス「LIP_M」に変換する(宛先IPアドレス変換処理)。中継装置30Cは、このとき参照された変更履歴を、該応答の中継後に削除する。
中継装置30Cでは、さらに、ルータとしての機能の一部として、ポートフォワード機能が有効にされている場合には、ポートフォワード機能が動作している。ポートフォワード機能は、ポートフォワード設定テーブルFT(図1)を参照して行われる。
図2は、ポートフォワード設定テーブルFTの一例を示す図である。ポートフォワード設定テーブルFTには、対象宛先IPアドレスと、対象ポート番号と、転送先IPアドレスと、が対応付けて記録されている。ポートフォワード機能が有効である場合には、中継装置30Cは、第2種の外部装置からインターネット80を介して要求(例えば、HTTPリクエスト)を受信すると、該要求の宛先IPアドレスと宛先ポート番号を取得する。中継装置30Cは、該要求の宛先IPアドレスが、ポートフォワード設定テーブルFTに設定された対象IPアドレスであり、かつ、宛先ポート番号が、ポートフォワード設定テーブルFTに設定された対象ポート番号であるか否かを判断する。中継装置30Cは、宛先IPアドレスが、対象IPアドレスであり、かつ、宛先ポート番号が対象ポート番号である場合には、該要求の宛先IPアドレスを、ポートフォワード設定テーブルFTにて該対象ポート番号に対応付けられた転送先IPアドレスに変換する。中継装置30Cは、該変換後の要求を、転送先IPアドレスに従ってルーティングして転送する。この結果、該要求は、転送先IPアドレスが割り当てられた装置に送信される。図2の例では、宛先IPアドレスが「GIP_R」であり、かつ、宛先ポート番号が特定ポート番号PNwebである要求がインターネット80を介して中継装置30C宛に送信された場合に、該要求は、ローカルIPアドレス「LIP_M」が割り当てられた複合機200に送信される。特定ポート番号PNwebは、本実施例では、複合機200のWEBサーバ機能が実行する設定管理サービスを示すポート番号である。このために、該要求は、設定管理サービスに対する要求として複合機200によって受信される。
推奨設定は、上述したアドレス変換機能が有効であり、かつ、図2のポートフォワード設定テーブルFTに示すように、宛先ポート番号が特定ポート番号PNwebである要求が複合機200に送信されるように設定されたポートフォワード機能(以下、特定ポートフォワード機能とも呼ぶ)が無効な状態である。
推奨設定では、先に、複合機200から第2種の外部装置に要求が送信されて、中継装置30CにIPアドレスの変換履歴が記録された後でなければ、基本的に、第2種の外部装置から複合機200にデータを送信できない。したがって、複合機200をクライアントとし、第2種の外部装置をサーバとして、複合機200側が先に第2種の外部装置に要求を送信することは可能であるが、複合機200をサーバとし、第2種の外部装置をクライアントとして、第2種の外部装置が先に要求を送信することはできない。このため、推奨設定では、第三者(例えば、悪意のある攻撃者)の第2種の外部装置(例えば、図2の計算機400)は、中継装置30CのグローバルIPアドレス「GIP_R」と、特定ポート番号PNwebと、を認識したとしても、複合機200と通信を行うことは、困難である。
ここで、上記推奨設定とは異なるネットワーク設定(非推奨設定とも呼ぶ)が、行われる場合がある。非推奨設定では、上述したアドレス変換機能が有効であり、かつ、上述した特定ポートフォワード機能が有効な状態である。非推奨設定では、第2種の外部装置が、グローバルIPアドレス「GIP_M」と特定ポート番号PNwebとを認識していれば、複合機200をサーバとし、第2種の外部装置をクライアントとして、第2種の外部装置が先に要求を送信することができる。このために、非推奨設定では、第三者の第2種の外部装置は、推奨設定と比較して、容易に、複合機200と通信を行うことができる。その結果、第三者によって、複合機200が提供する上述した設定管理サービスが利用されて、設定情報データベースSI内の設定情報の改ざんや、宛先情報データベースDI内の宛先情報の盗難などが行われる可能性も高くなる。したがって、非推奨設定は、推奨設定よりもセキュリティのレベルが低く、セキュリティ上の問題がある設定である、と言うことができる。このような非推奨設定は、例えば、複合機200の管理者の知識が不十分である場合などに、行われ得る。
A−3:システム1000の動作
第1実施例では、上記推奨設定が行われているか、非推奨設定が行われているかを確認する設定確認処理が行われる。設定確認処理は、複合機200のCPU210とサーバ300のCPU310とによって実行される。この設定確認処理は、複合機200が、特定ポート番号PNwebを宛先ポート番号とするHTTPリクエストA、すなわち、複合機200のWEBサーバ機能宛のHTTPリクエストAを受信したことに応じて実行される。このHTTPリクエストAは、送信元の装置をクライアントとし、複合機200をサーバとして、送信される。
図3は、第1実施例の設定確認処理のフローチャートである。このフローチャートは、設定確認処理のうち、複合機200が実行する部分を示している。S110にて複合機200のCPU210がHTTPリクエストAを受信すると、S115では、CPU210は、HTTPリクエストAの送信元の装置は、同一ネットワーク内の装置、すなわち、内部装置であるか否かを判断する。具体的には、複合機200に割り当てられているIPアドレス「LIP_M」と、サブネットマスクと、に基づいて、複合機200が属するローカルエリアネットワークLN1のネットワークアドレスが特定される。HTTPリクエストAの送信元IPアドレスと、サブネットマスクと、に基づいて、HTTPリクエストAの送信元の装置が属するネットワークのネットワークアドレスが特定される。ローカルエリアネットワークLN1のネットワークアドレスと、HTTPリクエストAの送信元の装置が属するネットワークのネットワークアドレスと、が一致する場合には、HTTPリクエストAの送信元の装置は、同一ネットワーク内の内部装置であると判断される。内部装置は、上述したようにローカルエリアネットワークLN1上の装置(例えば、端末装置10A)である。これらのネットワークアドレスが一致しない場合には、HTTPリクエストAの送信元の装置は、外部装置であると判断される。外部装置は、上述したように、第2ローカルエリアネットワークLN2上の第1種の外部装置(例えば、端末装置10B、10C)、あるいは、インターネット80を介して複合機200と接続される第2種の外部装置(例えば、計算機400)である。なお、HTTPリクエストAの送信元の装置が、同一ネットワーク内の装置であるか否かの判断は、HTTPリクエストAが、ローカルエリアネットワークLN1のゲートウェイである中継装置30Aを経由せずに受信されるか、中継装置30Aを経由して受信されるかの判断である、と言うことができる。
HTTPリクエストAの送信元の装置が、同一ネットワーク内の装置でない場合には(S115:NO)、換言すれば、HTTPリクエストAの送信元の装置が、外部装置である場合には、HTTPリクエストAの送信元の装置は、設定管理サービスのクライアントとして想定されていない第2種の外部装置である可能性がある。このために、この場合には、CPU210は、S120〜S135の処理を実行して、推奨設定が行われているか、非推奨設定が行われているかを確認する。HTTPリクエストAの送信元の装置が、同一ネットワーク内の装置、すなわち、内部装置である場合には(S115:YES)、HTTPリクエストAの送信元の装置が、第2種の外部装置である可能性はないために、CPU210は、S120〜S135を行うことなく、S145に処理を進める。
S120では、CPU210は、サーバ300に対して、確認用のHTTPリクエストBを送信する。S125では、CPU210は、所定の待機期間WTをカウントするためのタイマーを起動する。待機期間WTは、例えば、数秒程度の期間とされる。
S130では、CPU210は、サーバ300から、HTTPリクエストBに応じて送信されるHTTPリクエストEを受信したか否かを判断する。HTTPリクエストEを受信していない場合には(S130:NO)、S135にて、CPU210は、所定の待機期間WTが経過したか否かを判断する。所定の待機期間WTが経過していない場合には(S135:NO)、CPU210は、S130に戻って、サーバ300からのHTTPリクエストEを待つ。なお、このHTTPリクエストEは、サーバ300をクライアントとし、複合機200をサーバとして送信される。所定の待機期間WT内に受信されたHTTPリクエストが、サーバ300からのHTTPリクエストEであるか否かは、例えば、受信されたHTTPリクエストの送信元IPアドレスが、サーバ300のグローバルIPアドレス「GIP_S」であるか否かによって判断される。
HTTPリクエストEを受信した場合には(S130:YES)、インターネット80を介して、第2種の外部装置が、クライアントとして、複合機200に要求を送信することができること、すなわち、非推奨設定が行われていることが確認できる。このために、この場合には、CPU210は、S137にてタイマーを停止し、S140にて、外部装置からの特定ポート番号PNweb宛の通信を禁止して、設定確認処理を終了する。すなわち、端末装置10Bや計算機400などの外部装置が、特定ポート番号PNwebに対応するポートを利用不可能な状態に変更する(該ポートをクローズするとも言う)。この後に、CPU210は、内部装置(例えば、端末装置10A)から特定ポート番号PNweb宛のHTTPリクエストを受信した場合には、端末装置10Aへの設定管理サービスの提供を行う。一方、CPU210は、外部装置(例えば、端末装置10B、計算機400)から特定ポート番号PNweb宛のHTTPリクエストを受信した場合には、端末装置10Aへの設定管理サービスの提供を行わない。この結果、本来は、設定管理サービスのクライアントとして想定している第1種の外部装置(例えば、端末装置10B)に対して、設定管理サービスを提供できなくなるが、クライアントとして想定していない第2種の外部装置(例えば、計算機400)に設定管理サービスを利用される可能性を低減できる。
HTTPリクエストEを受信することなく、所定の待機期間WTが経過した場合には(S135:YES)、CPU210は、S145に処理を進める。この場合には、インターネット80を介して、第2種の外部装置が、クライアントとして、複合機200に要求を送信することができないこと、すなわち、推奨設定が行われていることが確認できる。この場合には、HTTPリクエストAの送信元の装置は、設定管理サービスのクライアントとして想定されている第1種の外部装置(例えば、端末装置10B)であると考えられる。このために、CPU210は、上述したS140を行うことなく、S145に処理を進める。
S145では、CPU210は、HTTPリクエストAの送信元の装置に対して、HTTPリクエストAに対する応答として、HTTPレスポンスCを送信する。その後、S150では、CPU210は、WEBサーバとしてHTTPリクエストAの送信元の装置との通信を行い、HTTPリクエストAの送信元の装置に対して設定管理サービスを提供する。
A−3−1:外部装置からHTTPリクエストが送信される場合の動作(推奨設定時)
図3を参照して概要を説明した設定確認処理について、さらに、説明する。図4は、第1実施例の設定確認処理の第1のシーケンス図である。第1のシーケンス図は、ネットワーク設定として上述した推奨設定が行われている状態で、外部装置からHTTPリクエストAが複合機200に対して送信される場合のシーケンス図である。このシーケンス図では、外部装置である端末装置10Bから送信されるHTTPリクエストAを複合機200が受信したことに応じて上述の設定確認処理が実行される。図5は、設定確認処理で用いられる要求と応答の一例を示す図である。
図4のS12では、端末装置10Bは、HTTPリクエストAを複合機200に対して送信する。図5(A)に示すようにHTTPリクエストAのIPヘッダに含まれる送信元IPアドレスは、端末装置10BのローカルIPアドレス「LIP_Tb」であり、宛先IPアドレスは、複合機200のローカルIPアドレス「LIP_M」である。また、HTTPリクエストAのTCPヘッダに含まれる宛先ポート番号は、特定ポート番号PNwebである。このHTTPリクエストAは、一般的なルーティングによって、複合機200に受信される。
HTTPリクエストAが受信されると(図3のS110)、図4の例では、HTTPリクエストAの送信元の装置は、端末装置10Bであるので、図3のS115にて、CPU210は、HTTPリクエストAの送信元の装置は、端末装置10BのローカルIPアドレス「LIP_Tb」に基づいて同一ネットワーク内ではないと判断する(図4のS14)。この結果、図3のS120にてCPU210は、HTTPリクエストBを送信する。図5(B)に示すように、HTTPリクエストBのIPヘッダに含まれる送信元IPアドレスは、複合機200のローカルIPアドレス「LIP_M」であり、宛先IPアドレスは、サーバ300のグローバルIPアドレス「GIP_S」である。また、HTTPリクエストBのHTTPボディには、HTTPリクエストAの宛先ポート番号(図5(A)の例では特定ポート番号PNweb)が、指定ポート番号として、含められる(図5(B))。HTTPリクエストBには、さらに、リクエスト送信命令が含まれる。リクエスト送信命令は、複合機200へのHTTPリクエストの送信をサーバ300に対して指示する命令(コマンド)である。リクエスト送信命令は、HTTPリクエストBのボディに含められても良いし、HTTPヘッダの宛先URLに、リクエスト送信命令を意味する特定のURLとして含められても良い。HTTPリクエストBは、ルーティングによって、中継装置30Aを介して中継装置30Cに受信される。
HTTPリクエストBを送信すると、S17にて、CPU210は、所定の待機期間WTをカウントするためのタイマーを起動する。待機期間WTは、例えば、数秒程度の期間とされる。
中継装置30Cでは、アドレス変換機能が動作している。このため、中継装置30Cは、HTTPリクエストBを受信すると、S18にて、上述したように、送信元IPアドレス変換処理を実行する。すなわち、該HTTPリクエストBのIPヘッダに含まれる送信元IPアドレスは、中継装置30CのグローバルIPアドレス「GIP_R」に変更される。また、IPアドレスの変更記録が中継装置30C内に記録される。
S20では、中継装置30Cは、HTTPリクエストBの送信元IPアドレスを変更して得られるHTTPリクエストC(図5(C))をインターネット80上に送信する。HTTPリクエストCは、インターネット80を介して、サーバ300によって受信される。
S22では、サーバ300のCPU310は、受信したHTTPリクエストCのIPヘッダに含まれる送信元IPアドレスと、HTTPボディに含まれる指定ポート番号と、を取得する。図6の例では、送信元IPアドレスとして、中継装置30CのグローバルIPアドレス「GIP_R」が取得され、指定ポート番号として、特定ポート番号PNwebが取得される。
S24では、CPU310は、受信したHTTPリクエストCに対する応答として、HTTPレスポンスA(図5(D))をインターネット80上に送信する。HTTPレスポンスAのIPヘッダに含まれる送信元IPアドレスは、サーバ300のグローバルIPアドレス「GIP_S」である。HTTPレスポンスAのIPヘッダに含まれる宛先IPアドレスは、S22で取得したグローバルIPアドレス、すなわち、中継装置30CのグローバルIPアドレス「GIP_R」である。HTTPレスポンスAは、インターネット80を介して、中継装置30Cによって受信される。
中継装置30Cは、HTTPレスポンスAを受信すると、S26にて、上述したように、宛先IPアドレス変換処理を実行する。すなわち、S18の送信元IPアドレス変換処理において記録された変更記録を参照して、該HTTPレスポンスAのIPヘッダに含まれる宛先IPアドレスは、複合機200のローカルIPアドレス「LIP_M」に変更される。参照された変更記録は削除される。
S28では、中継装置30Cは、HTTPレスポンスAの宛先IPアドレスを変更して得られるHTTPレスポンスB(図5(E))を、該変更後の宛先IPアドレス「LIP_M」に従って送信する。HTTPレスポンスBは、中継装置30AとローカルエリアネットワークLN1とを介して複合機200によって受信される。
S16、S20のHTTPリクエストB、Cの送受信と、S24、S28のHTTPレスポンスA、Bの送受信と、は、複合機200をクライアントとし、サーバ300をサーバとして行われる通信である。
サーバ300のCPU310は、S30にて、HTTPリクエストC(図5(C))に含まれるリクエスト送信命令に応じて、HTTPリクエストD(図5(F))をインターネット80上に送信する。HTTPリクエストDの送信元IPアドレスは、サーバ300のグローバルIPアドレス「GIP_S」である。HTTPリクエストDのIPヘッダに含まれる宛先IPアドレスは、S22で取得したグローバルIPアドレス、すなわち、中継装置30CのグローバルIPアドレス「GIP_R」である。したがって、HTTPリクエストDは、中継装置30Cに受信される。HTTPリクエストDのTCPヘッダに含まれる宛先ポート番号は、S22で取得した特定ポート番号PNwebである。
S30のHTTPリクエストDの送信は、複合機200をサーバとし、サーバ300をクライアントとして行われる通信である。このように、複合機200とサーバ300とは、HTTPに準拠するクライアントとサーバとの両方として動作可能である。
中継装置30Cは、HTTPリクエストDを受信すると、宛先IPアドレスが中継装置30C宛であることを認識するが、対応する送信元IPアドレス変換処理を行った変更記録がない。このために、中継装置30Cは、宛先IPアドレス変換処理を行わない。また、推奨設定では、特定ポートフォワード機能は無効であるので、HTTPリクエストDの宛先ポート番号が、特定ポート番号PNwebであっても、ポートフォワード処理は行われない。したがって、中継装置30Cは、HTTPリクエストDを中継せずに、HTTPリクエストDを破棄する。
S32では、中継装置30Cは、HTTPリクエストDの宛先が間違えていることを示すエラー情報を含むエラーレスポンス(図5(G))をインターネット80上に送信する。該エラーレスポンスの送信元IPアドレスは、中継装置30CのグローバルIPアドレス「GIP_R」であり、宛先IPアドレスは、サーバ300のグローバルIPアドレス「GIP_S」である。したがって、該エラーレスポンスは、サーバ300によって受信される。
以上のように、推奨設定が行われている場合には、複合機200から送信されるHTTPリクエストBに含まれるリクエスト送信命令に応じてサーバ300から送信されるHTTPリクエストDは、複合機200に到達しない。すなわち、推奨設定が行われている場合には、複合機200をサーバとし、サーバ300をクライアントとして行われる通信では、HTTPリクエストは、複合機200に到達しない。このために、HTTPリクエストが複合機200によって受信されないまま、待機期間WTが経過する。
待機期間WTが経過すると、図3のS135から解るように、図4のS34にて、複合機200のCPU210は、S17にて起動したタイマーのカウントに基づいて、待機期間WTが経過したと判断する。この場合には、現在のネットワーク設定は、推奨設定であり、特定ポートフォワード機能は、無効であると判断できる。したがって、セキュリティ上の問題はないと判断できるので、図3のS145、S150にて説明したように、CPU210は、端末装置10Bから受信したHTTPリクエストAに対するHTTPレスポンスCを、端末装置10Aに送信し(S36)、設定管理サービスを端末装置10Bに対して提供する(S38)。
A−3−2:外部装置からHTTPリクエストが送信される場合の動作(非推奨設定時)
図6は、第1実施例の設定確認処理の第2のシーケンス図である。第2のシーケンス図は、ネットワーク設定として上述した非推奨設定が行われている状態で、外部装置からHTTPリクエストAが複合機200に対して送信される場合のシーケンス図である。このシーケンス図では、外部装置である端末装置10Bから送信されるHTTPリクエストAを複合機200が受信したことに応じて上述の設定確認処理が実行される。
図6のS12〜S30の処理は、図4のS12〜S30の処理と同一の処理である。非推奨設定では、中継装置30Cにおいて、特定ポートフォワード機能が有効である。このために、図6のS30にてサーバ300から送信されるHTTPリクエストDを受信した中継装置30Cは、S32Bにて、ポートフォワード処理を実行する。具体的には、中継装置30Cは、HTTPリクエストDの宛先IPアドレスが、中継装置30C自身のグローバルIPアドレス「GIP_M」であり、かつ、宛先ポート番号が、ポートフォワード設定テーブルFTに設定された対象ポート番号である特定ポート番号PNwebであることを認識する。このために、中継装置30Cは、HTTPリクエストDの宛先IPアドレスを、ポートフォワード設定テーブルFTにて特定ポート番号PNwebの転送先IPアドレスとして対応付けられた複合機200のローカルIPアドレス「LIP_M」に変換する。変換後のHTTPリクエストは、図5(H)のHTTPリクエストEである。
このために、図3にて説明したように(図3の130にて:YES、S137、S140)、HTTPリクエストEを受信した複合機200のCPU210は、図6のS36Bにてタイマーを停止し、S38Bにて、外部装置からの特定ポート番号PNweb宛の通信を禁止する。
A−3−3:内部装置からHTTPリクエストが送信される場合の動作
図7は、第1実施例の設定確認処理の第3のシーケンス図である。このシーケンス図では、内部装置である端末装置10Aから送信されるHTTPリクエストAを複合機200が受信したことに応じて上述の設定確認処理が実行される。この場合には、ネットワーク設定として、推奨設定が行われているか非推奨設定が行われているかに関わらずに同一の処理が行われる。
具体的には、図7のS12では、端末装置10Aは、HTTPリクエストAを複合機200に対して送信する。ただし、この場合には、HTTPリクエストAの送信元IPアドレスは、端末装置10BのローカルIPアドレス「LIP_Tb」ではなく、端末装置10AのローカルIPアドレス「LIP_Ta」である(図示省略)。
HTTPリクエストAが受信されると(図3のS110)、図7の例では、HTTPリクエストAの送信元の装置は、端末装置10Aであるので、図3のS115にて、CPU210は、HTTPリクエストAの送信元の装置は、端末装置10AのローカルIPアドレス「LIP_Ta」に基づいて同一ネットワーク内であると判断する(図7のS14C)。この場合には、HTTPリクエストAの送信元の装置が、内部装置であり、第2種の外部装置である可能性はないために、CPU210は、図3のS120〜S135は行われない。したがって、CPU210は、図3のS145、S150にて説明したように、CPU210は、端末装置10Aから受信したHTTPリクエストAに対するHTTPレスポンスCを、端末装置10Aに送信し(図7のS36C)、設定管理サービスを端末装置10Bに対して提供する(図7のS38C)。
以上説明した第1実施例によれば、外部装置(例えば、端末装置10B)から送信されるHTTPリクエストA(図5(A))の受信(図6のS12)に応じて、複合機200は、複合機200へのデータ送信を要求するリクエスト送信命令を含むHTTPリクエストB(図5(B))を、インターネット80を介して接続されるサーバ300に対して送信する(図6のS16)。CPU210は、HTTPリクエストBの送信後に、HTTPリクエストBに応じて送信される特定のデータ、具体的には、HTTPリクエストE(図5(H))を、サーバ300から受信する(図6のS34B)。CPU210は、HTTPリクエストEの受信に応じて、外部装置からの特定ポート番号PNweb宛の通信を禁止する(図6のS38B)。この結果、複合機200がセキュリティ上の問題を有している可能性がある場合、であっても、例えば、上述の非推奨設定が行われている場合であっても、外部装置からHTTPリクエストAを受信することを契機として、クライアントとして動作するサーバ300からHTTPリクエストEを受信することで、セキュリティ上の問題を有している可能性を認識できる。したがって、外部装置からの特定ポート番号PNweb宛の通信を禁止する処理を適切に実行することができる。
さらに、第1実施例によれば、複合機200は、HTTPリクエストBの送信後から、カウントされる待機期間WT内に、HTTPリクエストEが受信される場合に、外部装置からの特定ポート番号PNweb宛の通信を禁止する処理を実行する。待機期間WT内に、HTTPリクエストEが受信された場合には、当該HTTPリクエストEは、インターネット80を介して送信されたものである可能性が非常に高い。したがって、インターネット80を介して接続される第2種の外部装置(例えば、第三者の計算機400)がクライアントとして複合機200と通信可能な状態にある可能性が高く、セキュリティ上の問題がある可能性が高い。このために、第1実施例によれば、セキュリティ上の問題がある可能性が高い場合に、外部装置からの特定ポート番号PNweb宛の通信を禁止する処理を適切に実行することができる。
さらに、上記第1実施例によれば、待機期間WT内に、HTTPリクエストEが受信されない場合に、HTTPリクエストAに対する応答であるHTTPレスポンスCを、HTTPリクエストAの送信元の装置(例えば、端末装置10B)に対して送信する(図4のS36)。待機期間WT内に、HTTPリクエストEが受信されない場合には、インターネット80を介して接続される第2種の外部装置(例えば、第三者の計算機400)がクライアントとして複合機200と通信可能な状態にある可能性は低く、セキュリティ上の問題がある可能性は低い。この結果、セキュリティ上の問題がある可能性は低いことを確認後に、HTTPレスポンスCを行うので、セキュリティを向上することができる。
さらに、第1実施例によれば、複合機200は、複合機200にて実行可能なWEBサービス機能を示す特定ポート番号PNweb示す番号情報(図5(B)の指定ポート番号)を含むHTTPリクエストBをサーバ300に送信する(図6のS16)。複合機200は、該特定ポート番号PNwebを宛先ポート番号として指定して送信されるHTTPリクエストE(図5(H))を受信する(図6のS34B)。非推奨設定の場合には、特定ポートフォワード機能が有効であるので、インターネットを介して接続される第2種の外部装置が、特定ポート番号PNwebを宛先ポート番号として指定することによって、複合機200と通信可能である。上記実施例によれば、このような場合であっても、HTTPリクエストEを受信することを契機として、外部装置からの特定ポート番号PNweb宛の通信を禁止する処理を適切に実行することができる。
例えば、仮に、サーバ300から確認用に複合機200に送信されるHTTPリクエストの宛先ポート番号に、特定ポート番号PNwebを指定しないとする。この場合には、中継装置30Cの特定ポートフォワード機能が有効である場合(非推奨設定である場合)であっても、該HTTPリクエストは、複合機200まで到達しない。この結果、非推奨設定が行われていても、非推奨設定が行われていないことを複合機200が認識できない。上記実施例によれば、このような不都合を抑制することができる。なお、他の非推奨設定として、複合機200にグローバルIPアドレスが割り当てられており、中継装置30CにてNATやNAPTなどのアドレス変換機能が動作していないケースがある。このようなケースでは、サーバ300から確認用に複合機200に送信されるHTTPリクエストの宛先ポート番号に、特定ポート番号PNwebが指定されていなくても、該HTTPリクエストは、複合機200まで到達する。したがって、このような非推奨設定である場合には、HTTPリクエストの宛先ポート番号に、特定ポート番号PNwebが指定されていなくても、複合機200は、該非推奨設定が行われていることを認識できる。第1実施例によれば、中継装置30Cの特定ポートフォワード機能が有効である場合と、複合機200にグローバルIPアドレスが割り当てられている場合と、のいずれの非推奨設定であっても、該非推奨設定が行われていることを適切に認識することができる。
さらに、上記第1実施例によれば、特定ポート番号PNwebは、HTTPリクエストAにて指定されている宛先ポート番号である(図5(A))。この結果、第2種の外部装置が、特定ポート番号PNwebを宛先ポート番号として指定することによって複合機200と通信可能である場合であっても、特定ポート番号PNwebを宛先ポート番号として指定するHTTPリクエストAを受信することを契機として、外部装置からの特定ポート番号PNweb宛の通信を禁止する処理を適切に実行することができる。例えば、第2種の外部装置が、特定ポート番号PNwebによって示される設定管理サービスを利用することを適切に防止することができる。
さらに、上記第1実施例によれば、複合機200は、HTTPリクエストAを受信した場合に、HTTPリクエストAの送信元の装置が同一ネットワーク内の装置であるか否かを判断する(図3のS115、図4、図6のS14、図7のS14C)。複合機200は、HTTPリクエストAの送信元の装置が同一ネットワーク外の装置である場合に(図3のS115:YES、図7のS14C)、HTTPレスポンスCを、HTTPリクエストAの送信元の装置(例えば、端末装置10A)に対して送信する(図7のS36C)。この場合には、複合機200は、HTTPリクエストBをサーバ300に対して送信しない。複合機200は、HTTPリクエストAの送信元の装置が同一ネットワーク外の装置である場合に(図3のS115:NO、図4、図6のS14)、HTTPリクエストBをサーバ300に対して送信する(図4、図6のS16)。この結果、HTTPリクエストAの送信元の装置が同一ネットワーク内の装置である場合には、速やかに該送信元の装置に、HTTPレスポンスCを送信することができる。従って、同一ネットワーク内の装置(例えば、端末装置10A)に対して、速やかに設定管理サービスを提供することができる。
以上の説明から解るように、図5(A)のHTTPリクエストAは、第1の要求の例であり、図5(B)のHTTPリクエストBは、第2の要求の例であり、端末装置10Bや計算機400は、第1の外部装置の例であり、サーバ300は、第2の外部装置と第3の外部装置の例である。
B.第2実施例
図8は、第2実施例の設定確認処理のフローチャートである。このフローチャートは、図3と同様に、設定確認処理のうち、複合機200が実行する部分を示している。第2実施例では、S210にて複合機200のCPU210がHTTPリクエストAを受信すると、S245にて、CPU210は、HTTPリクエストAの送信元の装置に、HTTPレスポンスCを送信し、S250にて、設定管理サービスの提供を開始する。このために、HTTPリクエストAの送信元の装置が、外部装置であるか否かに関わらずに、設定管理サービスの提供が開始される。
S245、S250の処理と並行して、CPU210は、S215にて、図3のS115と同様に、HTTPリクエストAの送信元の装置は、同一ネットワーク内の装置であるか否かを判断する。HTTPリクエストAの送信元の装置が、同一ネットワーク内の装置でない場合には(S215:NO)、換言すれば、HTTPリクエストAの送信元の装置が、外部装置である場合には、CPU210は、S220に処理を進める。HTTPリクエストAの送信元の装置が、同一ネットワーク内の装置である場合には(S215:YES)、CPU210は、S220〜S240の処理を行わない。この時点で、並行して行われる設定管理サービスの提供(S250)が終了していない場合には、そのまま継続して実行される。
S220〜S235の処理は、図3のS120〜S135の処理と同一である。S235にて、HTTPリクエストEを受信することなく、所定の待機期間WTが経過した場合には(S235:YES)、S237、S240の処理は行われない。この時点で、並行して行われる設定管理サービスの提供(S250)が終了していない場合には、そのまま継続して実行される。
S230にて、HTTPリクエストEを受信した場合には(S230:YES)、CPU210は、は、図3のS137、S140と同様に、S237にてタイマーを停止し、S240にて、外部装置からの特定ポート番号PNweb宛の通信を禁止する。すなわち、この後の設定管理サービスの提供は禁止される。この時点で、並行して行われる設定管理サービスの提供(S250)が終了していない場合には、直ちに、その提供が中断される。
以上説明した第2実施例によれば、S230にて複合機200によってHTTPリクエストEが受信されるか否かに関わらずに、HTTPリクエストAに対する応答であるHTTPレスポンスCが、HTTPリクエストAの送信元の装置に対して送信される(S245)。そして、該HTTPレスポンスCの送信後に、HTTPリクエストEが複合機200によって受信される場合に(S230:YES)、外部装置からの特定ポート番号PNweb宛の通信が禁止される(S240)。この結果、HTTPリクエストAに対するHTTPレスポンスCを速やかに送信することができる。この結果、設定管理サービスを提供するクライアントとして想定されている第1種の外部装置(例えば、端末装置10B)に対して、速やかに設定管理サービスを提供することができる。そして、HTTPリクエストEが受信された場合には、設定管理サービスの提供が中断されるので、設定管理サービスを提供するクライアントとして想定されていない第2種の外部装置が設定管理サービスを利用することを抑制することができる。
C.変形例
(1)上記各実施例では、複合機200から中継装置30Cを経由して送信されるHTTPリクエストCを受信する外部装置と、HTTPリクエストDを送信する外部装置とは、ともに同一の装置(サーバ300)である。これに代えて、HTTPリクエストCを受信する外部装置とHTTPリクエストDを送信する外部装置とは異なる装置であっても良い。例えば、一の外部装置は、HTTPリクエストCを受信すると、HTTPリクエストCに含まれる送信元IPアドレスと、指定ポート番号と、を他の外部装置に対して送信する。他の外部装置は、送信元IPアドレスと、指定ポート番号と、を受信すると、これらの情報を用いて、HTTPリクエストDをインターネット80上に送信しても良い。
(2)上記各実施例では、特定ポート番号PNwebは、設定管理サービスを提供するWEBサーバ(HTTPに準拠したアプリケーション)を示すポート番号である。これに限らず、特定ポート番号PNwebは、他のサービスを提供する他のアプリケーションを示すポート番号であっても良い。例えば、特定ポート番号は、FTP(File Transfer Protocol)に準拠したアプリケーションや、IPP(Internet Printing Protocol)に準拠したアプリケーションを示すポート番号であっても良い。一般的には、特定ポート番号は、OSI参照モデルのアプリケーション層に対応するプロトコルに準拠したアプリケーションを示すポート番号であることが好ましい。
(3)図3のS140や図8のS240では、CPU210は、セキュリティに関連する特定の処理として、外部機器からの特定ポート番号PNweb宛の通信を禁止している。これに代えて、あるいは、これとともに、セキュリティに関連する特定の処理として、他の処理が実行されても良い。例えば、特定ポート番号PNweb宛のHTTPリクエストを受信した場合に、パスワードなどの認証情報を要求し、適切な認証情報が入力される場合に限って、以降の特定ポート番号PNweb宛の通信を許容する認証機能を有効に切り替える処理が実行されても良い。また、非推奨設定が行われていることを示すメッセージを含む警告画面を表示部240に表示する処理や、該メッセージを含むEメールを予め登録されているユーザのメールアドレスに送信する処理が、実行されても良い。
(4)複合機200から送信されるHTTPリクエストBや、サーバ300から送信されるHTTPリクエストDは、他のプロトコル、例えば、FTPに準拠するリクエストであっても良い。用いられるプロトコルは、複合機200とサーバ300とのうちの一方の装置をクライアントとし、他方の装置をサーバとして、リクエストを送信可能なプロトコルであれば良い。
(5)複合機200から送信されるHTTPリクエストBは、指定ポート番号(図5(A))を含まなくても良く、サーバ300から送信されるHTTPリクエストDは、宛先ポート番号を指定ポート番号としなくても良い。この場合には、中継装置30Cの特定ポートフォワード機能が有効であるような非推奨設定が行われている場合には、該非推奨設定が行われていることを認識できないが、複合機200にグローバルIPアドレスが割り当てられる非推奨設定が行われている場合には、該非推奨設定が行われていることを適切に認識することができる。
(6)上記各実施例では、CPU210は、HTTPリクエストAの送信元の装置が同一ネットワーク内の装置である場合に、HTTPリクエストBをサーバ300に送信しないが、HTTPリクエストAの送信元の装置が同一ネットワーク内の装置であるか否かに関わらずに、HTTPリクエストBをサーバ300に送信しても良い。
(7)第2実施例では、CPU210は、複合機200から送信されるHTTPリクエストAを送信した後において、待機期間WTが経過後に、HTTPリクエストEを受信した場合であっても、セキュリティに関連する特定の処理を実行しても良い。この場合には、待機期間WTのカウントは省略されても良い。
(8)上記各実施例では、通信装置として、複合機200が採用されているが、単体のスキャナやプリンタ、あるいは、デジタルカメラなどの他の画像処理装置が、通信装置として、採用されても良い。また、画像処理装置に限らず、他の種類の通信装置、例えば、ストレージなどの記憶装置や、パーソナルコンピュータなどが採用されても良い。
(9)サーバ300は、ネットワークを介して互いに通信可能な複数個の装置(例えば、コンピュータ)を含む、いわゆるクラウドサーバであっても良い。
(10)上記各実施例において、ハードウェアによって実現されていた構成の一部をソフトウェアに置き換えるようにしてもよく、逆に、ソフトウェアによって実現されていた構成の一部あるいは全部をハードウェアに置き換えるようにしてもよい。
(11)本発明の機能の一部または全部がコンピュータプログラムで実現される場合には、そのプログラムは、コンピュータ読み取り可能な記録媒体(例えば、一時的ではない記録媒体)に格納された形で提供することができる。プログラムは、提供時と同一または異なる記録媒体(コンピュータ読み取り可能な記録媒体)に格納された状態で、使用され得る。「コンピュータ読み取り可能な記録媒体」は、メモリーカードやCD−ROMのような携帯型の記録媒体に限らず、各種ROM等のコンピュータ内の内部記憶装置や、ハードディスクドライブ等のコンピュータに接続されている外部記憶装置も含み得る。
以上、実施例、変形例に基づき本発明について説明してきたが、上記した発明の実施の形態は、本発明の理解を容易にするためのものであり、本発明を限定するものではない。本発明は、その趣旨並びに特許請求の範囲を逸脱することなく、変更、改良され得ると共に、本発明にはその等価物が含まれる。