A.第1実施例
A−1:システム1000の構成
次に、実施の形態を実施例に基づき説明する。図1は、システム1000の構成を示すブロック図である。
システム1000は、通信装置としての複合機200A、200Bと、端末装置10A〜10Cと、サーバ300と、中継装置30A、30Bと、を備える。複合機200Aと、端末装置10Aと、は、ローカルエリアネットワークLN1に接続されている。複合機200Bと、端末装置10B、10Cと、は、ローカルエリアネットワークLN2に接続されている。ローカルエリアネットワークLN1は、中継装置30Aに接続され、ローカルエリアネットワークLN2は、中継装置30Bに接続されている。中継装置30Aと中継装置30Bとは、それぞれ、図示しないインターネットサービスプロバイダを介して、インターネット80に接続されている。サーバ300は、インターネット80に接続されている。この結果、例えば、複合機200Aは、ローカルエリアネットワークLN1を介して、端末装置10Aと接続され、ローカルエリアネットワークLN1とインターネット80とを介して、サーバ300と接続されている。
複合機200Aは、複合機200AのコントローラとしてのCPU210と、RAMなどの揮発性記憶装置220と、ハードディスクドライブやフラッシュメモリなどの不揮発性記憶装置230と、液晶ディスプレイなどの表示部240と、液晶パネルと重畳されたタッチパネルやボタンなどの操作部250と、通信部270と、スキャナ部280と、プリンタ部290と、を備えている。
スキャナ部280は、CCDやCMOSなどの光電変換素子を用いて光学的に文書等の対象物を読み取ることによって、読み取った画像を表すスキャンデータを生成する。プリンタ部290は、所定の方式(例えば、レーザ方式や、インクジェット方式)で、用紙(印刷媒体の一例)上に画像を印刷する装置である。
揮発性記憶装置220は、CPU210が処理を行う際に生成される種々の中間データを一時的に格納するバッファ領域を提供する。不揮発性記憶装置230には、コンピュータプログラムPG1と、設定情報データベースSIと、宛先情報データベースDIと、が格納されている。揮発性記憶装置220や不揮発性記憶装置230は、複合機200Aの内部メモリである。
コンピュータプログラムPG1は、複合機200Aの製造時に不揮発性記憶装置230に予め格納されて提供され得る。これに代えて、コンピュータプログラムPG1は、例えば、インターネットを介して接続されたサーバからダウンロードされる形態、あるいは、CD−ROMなどに記録された形態で提供され得る。
CPU210は、コンピュータプログラムPG1を実行することにより、複合機200Aの制御を実行する。例えば、CPU210は、ユーザの指示に従って、印刷処理や読取処理やファクシミリ処理を実行する。印刷処理は、プリンタ部290に画像を印刷させる処理である。読取処理は、スキャナ部280に対象物を光学的に読み取らせて、スキャンデータを生成させる処理である。ファクシミリ処理は、読取処理を用いて生成されるスキャンデータを、電話回線を介してFAXデータとして送信する処理や、電話回線を介して受信したFAXデータを用いて、プリンタ部290に画像を印刷させる処理を含む。また、コンピュータプログラムPG1は、サーバプログラムSPGを含んでいる。CPU210は、サーバプログラムSPGを実行することによって、WEBサーバ機能を実行することができる。
このWEBサーバ機能は、HTTP(Hypertext Transfer Protocolの略)に準拠したサーバとしての機能である。例えば、このWEBサーバ機能は、複合機200Aのユーザが利用する端末装置10Aに対して、複合機200Aに関する設定情報データベースSIに格納された設定情報の変更や取得を行う設定管理サービスを提供する。
複合機200AのWEBサーバ機能は、ローカルエリアネットワークLN1上の機器、具体的には、端末装置10Aをクライアントとしてサービスを提供することを想定している。複合機200AのWEBサーバ機能は、インターネット80を介して、外部機器にサービスを提供することは、想定していない。このために、セキュリティの観点からは、外部機器が、インターネットを介して、複合機200Aに、HTTPリクエストを送信できないことが好ましい。
設定情報データベースSIには、複合機200Aに関する設定情報は、例えば、画像処理に関する設定情報と、ネットワークに関する設定情報と、表示部240や操作部250に関する設定情報と、を含む様々な設定情報と、が格納されている。
画像処理に関する設定情報は、印刷処理に関する設定情報や読取処理に関する設定情報を含む。画像処理に関する設定情報には、個人情報が含まれ得る。例えば、読取処理に関する設定情報は、複数個の読取処理に関する設定値をグループ化した情報であるスキャンプロファイルを含む。スキャンプロファイルは、生成されるスキャンデータの解像度、色数(モノクロ、フルカラーなど)に加えて、生成されるスキャンデータの宛先を示すメールアドレスなどの個人情報を含む。
ネットワークに関する設定情報は、複合機200Aに割り当てられるIPアドレスや、サブネットマスクやデフォルトゲートウェイを示す情報などのTCP/IPに準拠した通信のための一般的な設定情報を含む。また、複合機200Aは、スキャンデータの宛先として、インターネット80を介して接続される外部の格納サーバ(図示省略)を指定することで、スキャンデータを当該格納サーバに格納することができる。ネットワークに関する設定情報は、当該外部の格納サーバと通信を行うための情報(例えば、外部サーバのURL)や、当該外部サーバとの通信を許容するか否かを示す情報と、を含む。
宛先情報データベースDIは、例えば、ファクシミリ処理において、FAXデータの宛先となるFAX番号や、スキャンデータの宛先となるメールアドレスなどの宛先情報を含む。
通信部270は、外部装置とデータ通信を行うためのインタフェースを含む。本実施例では、ローカルエリアネットワークLN1に接続するためのインタフェース、具体的には、イーサネット(登録商標)やWi−Fi規格に準拠した有線や無線のインタフェースを含む。さらに、通信部270は、USB(Universal Serial Bus)規格に従ったデータ通信を行うためのUSBインタフェースを含む。したがって、通信部270には、USBメモリなどの外部記憶装置を接続することができる。
他の複合機200Bの構成は、上述した複合機200Aの構成と同一である。
サーバ300は、複合機200A、200Bのベンダによって提供されるサーバである。サーバ300は、サーバ300のコントローラとしてのCPU310と、RAMなどの揮発性記憶装置320と、ハードディスクドライブなどの不揮発性記憶装置330と、インターネットITと接続するための通信部370と、を備えている。
揮発性記憶装置320は、CPU310が処理を行う際に生成される種々の中間データを一時的に格納するバッファ領域を提供する。不揮発性記憶装置330は、サーバプログラムPG2を格納している。CPU310は、サーバプログラムPG2を実行することによって、複合機200A、200Bと協働して、後述する設定確認処理を実現する。
後述する設定確認処理において、複合機200A、200Bが、インターネット80を介して、サーバ300に、HTTPリクエストを送信することが想定されている。このために、サーバ300には、グローバルIPアドレス「GIP_S」が割り当てられている。
端末装置10A〜10Cは、パーソナルコンピュータやスマートフォンなどの公知の計算機である。端末装置10Aは、ローカルエリアネットワークLN1を介して、複合機200Aと通信を行って、複合機200Aを利用することができる。例えば、端末装置10Aは、印刷ジョブを複合機200Aに送信して、複合機200Aに印刷を実行させることができる。端末装置10Aは、複合機200AのWEBサーバ機能と通信して、複合機200Aの設定情報の変更や取得を行うことができる。端末装置10B、10Cは、同様に、ローカルエリアネットワークLN2を介して、複合機200Bを利用することができる。
中継装置30Aは、ハブとしての機能と、ルータとしての機能と、回線終端装置としての機能と、を備えている。ハブは、ローカルエリアネットワークLN1上の機器間、例えば、端末装置10Aと、複合機200Aと、の間の通信を中継する。ルータは、ローカルエリアネットワークLN1上の機器と、他のネットワーク(例えば、インターネット80)上の機器と、の間の通信を中継する。回線終端装置は、ローカルエリアネットワークLN1で用いられる信号(例えば、イーサネット回線の信号)と、中継装置30Aとインターネットサービスプロバイダとの間の通信で用いられる信号(例えば、光回線やADSL回線の信号)と、を変換する。回線終端装置は、例えば、光回線の場合はONU(Optical Network Unitの略)であり、ADSL回線の場合はモデムである。ハブ、ルータ、回線終端装置としての機能は、本実施例のように1個の装置(例えば、中継装置30A)で実現されても良いし、2個以上の装置でそれぞれ実現されても良い。
推奨されるネットワーク設定(推奨設定とも呼ぶ)では、中継装置30A(ルータ)に、グローバルIPアドレスが割り当てられ、ローカルエリアネットワークLN1上の機器、例えば、端末装置10Aや複合機200Aには、ローカルIPアドレス(プライベートIPアドレスとも呼ぶ)が割り当てられる。グローバルIPアドレスは、インターネット上の機器間で重複しない一意のIPアドレスであり、インターネット80を介した通信で用いられる。ローカルIPアドレスは、ローカルエリアネットワーク上の機器間で重複しなければよく、ローカルエリアネットワーク内での通信で用いられる。ここで、推奨設定において、複合機200Aに割り当てられたローカルIPアドレスを「LIP_M」とし、中継装置30Aに割り当てられたグローバルIPアドレスを「GIP_R」とする。
推奨設定の場合には、中継装置30Aにおいて、NAT(Network Address Translation)やNAPT(Network Address Port Translation)と呼ばれるアドレス変換機能が動作している。アドレス変換機能として、中継装置30Aは、ローカルエリアネットワークLN1からインターネット80へと送信される要求を中継する際に実行される送信元IPアドレス変換処理と、インターネット80からローカルエリアネットワークLN1へと送信される応答を中継する際に実行される宛先IPアドレス変換処理と、を実行する。推奨設定において、例えば、ローカルエリアネットワークLN1上の複合機200Aが、中継装置30Aを介してインターネット80上の外部機器に、要求(例えば、HTTPリクエスト)を送信し、該要求に対する応答(例えば、HTTPレスポンス)を、外部機器から受信するケースを想定する。中継装置30Aは、複合機200Aから外部機器への要求の送信を中継する際には、該要求の送信元IPアドレスを、複合機200AのローカルIPアドレス「LIP_M」から、中継装置30AのグローバルIPアドレス「GIP_R」に変換する(送信元IPアドレス変換処理)。このとき、中継装置30Aは、当該IPアドレスの変更履歴を記録する。中継装置30Aは、外部機器から複合機200Aへの応答の送信を中継する際には、記録された変更履歴を参照して、該応答の宛先IPアドレスを、中継装置30AのグローバルIPアドレス「GIP_R」から、複合機200AのローカルIPアドレス「LIP_M」に変換する(宛先IPアドレス変換処理)。中継装置30Aは、このとき参照された変更履歴を、該応答の中継後に削除する。
推奨設定では、先に、複合機200Aから外部機器に要求が送信されて、中継装置30AにIPアドレスの変換履歴が記録された後でなければ、基本的に、外部機器から複合機200Aにデータを送信できない。したがって、複合機200Aをクライアントとし、外部機器をサーバとして、複合機200A側が先に外部機器に要求を送信することは可能であるが、複合機200Aをサーバとし、外部機器をクライアントとして、外部機器が先に要求を送信することはできない。このため、推奨設定では、第三者(例えば、悪意のある攻撃者)の外部機器は、中継装置30AのグローバルIPアドレスを認識したとしても、複合機200Aと通信を行うことは、困難である。
ここで、上記推奨設定とは異なるネットワーク設定(非推奨設定とも呼ぶ)が、行われる場合がある。非推奨設定では、複合機200AにグローバルIPアドレスが割り当てられる。この場合には、例えば、中継装置30Aは、ハブと回線終端装置として動作し、ルータとして動作しない状態であり、中継装置30AにはIPアドレスは割り当てられていない。あるいは、中継装置30Aは、ハブとルータと回線終端装置として動作するが、上記のアドレス変換機能を実行しない状態であり、中継装置30Aには、複合機200Aとは別のグローバルIPアドレスが割り当てられている。ここで、非推奨設定において、複合機200Aに割り当てられたグローバルIPアドレスを「GIP_M」とする。
非推奨設定では、外部機器が、複合機200AのグローバルIPアドレス「GIP_M」を認識していれば、複合機200Aをサーバとし、外部機器をクライアントとして、外部機器が先に要求を送信することができる。このために、非推奨設定では、第三者の外部機器は、推奨設定と比較して、容易に、複合機200Aと通信を行うことができる。その結果、第三者によって、複合機200Aが提供する上述した設定管理サービスが利用されて、設定情報データベースSI内の設定情報の改ざんや、宛先情報データベースDI内の宛先情報の盗難などが行われる可能性も高くなる。したがって、非推奨設定は、推奨設定よりもセキュリティのレベルが低く、セキュリティ上の問題がある設定である、と言うことができる。このような非推奨設定は、例えば、複合機200Aの管理者の知識が不十分である場合などに、行われ得る。
端末装置10B、10C、複合機200Bが接続されるローカルエリアネットワークLN2と、中継装置30Bと、についても同様に、推奨設定と非推奨設定が行われ得る。
A−2:システム1000の動作
第1実施例では、上記推奨設定が行われているか、非推奨設定が行われているかを判定する設定確認処理が行われる。設定確認処理は、複合機200A、200BのCPU210とサーバ300のCPU310とによって実行される。以下では、複合機200Aとサーバ300とによって実行される場合を例に、設定確認処理を説明するが、複合機200Bとサーバ300とによっても同様に実行される。第1実施例では、この設定確認処理は、複合機200Aの電源が投入されたことに応じて実行される。複合機200Aの電源が投入されたことに応じて実行されるとは、複合機200Aの電源が投入された場合に、自動的にCPU210によって実行される、OSやファイルシステムの起動処理などを含む一連の処理の一部として開始されることを意味する。
A−2−1:推奨設定時の動作
図2は、第1実施例の設定確認処理の第1のシーケンス図である。第1のシーケンス図は、上記推奨設定が行われている場合のシーケンス図である。
図2のS12では、CPU210は、設定確認処理用の固有IDを生成する。固有IDは、設定確認処理が行われる度に異なり、かつ、設定確認処理を実行するデバイス(例えば、複合機200A)ごとに異なる情報である。例えば、CPU210は、複合機200AのMACアドレス(Media Access Control address)と、現在の時刻と、を入力値とし、固有IDを出力値とする所定の計算式を用いて、固有IDを算出する。
S14では、CPU210は、HTTPリクエストAをローカルエリアネットワークLN1上に送信する。HTTPリクエストAは、宛先MACアドレスを、デフォルトゲートウェイとして指定されている中継装置30AのMACアドレスとして、送信されるので、中継装置30Aに受信される。
図3は、設定確認処理で用いられる要求と応答の一例を示す第1の図である。図3(A)に示すように、S14で送信されるHTTPリクエストAのIPヘッダに含まれる送信元IPアドレスは、複合機200AのIPアドレス、すなわち、ローカルIPアドレス「LIP_M」である。HTTPリクエストAのIPヘッダに含まれる宛先IPアドレスは、サーバ300のグローバルIPアドレス「GIP_S」である。
HTTPリクエストAのボディには、S12で生成された固有IDと、指定URLと、が含められる。指定URLは、後述するS30にて、サーバ300が送信するHTTPリクエストCの宛先URLとして用いられる。用いられるグローバルIPアドレス「GIP_S」と指定URLとは、複合機200Aのベンダによって不揮発性記憶装置230に予め格納されている。
HTTPリクエストAには、さらに、リクエスト送信命令が含まれる。リクエスト送信命令は、HTTPリクエストの送信をサーバ300に対して指示する命令(コマンド)である。リクエスト送信命令は、HTTPリクエストのボディに含められても良いし、HTTPヘッダの宛先URLに、リクエスト送信命令を意味する特定のURLとして含められても良い。
HTTPリクエストAを送信すると、S16にて、CPU210は、所定の待機期間WTをカウントするためのタイマーを起動する。待機期間WTは、例えば、数秒程度の期間とされる。
推奨設定では、中継装置30Aでは、アドレス変換機能が動作している。このため、中継装置30Aは、HTTPリクエストAを受信すると、S18にて、上述したように、送信元IPアドレス変換処理を実行する。すなわち、該HTTPリクエストAのIPヘッダに含まれる送信元IPアドレスは、中継装置30AのグローバルIPアドレス「GIP_R」に変更される。また、IPアドレスの変更記録が中継装置30A内に記録される。
S20では、中継装置30Aは、HTTPリクエストAの送信元IPアドレスを変更して得られるHTTPリクエストB(図3(B))をインターネット80上に送信する。HTTPリクエストBは、インターネット80を介して、サーバ300によって受信される。
S22では、サーバ300のCPU310は、受信したHTTPリクエストBのIPヘッダに含まれる送信元IPアドレスと、HTTPボディに含まれる指定URLおよび固有IDと、を取得する。推奨設定の場合には、図3(B)から解るように、中継装置30AのグローバルIPアドレス「GIP_R」が取得される。
S24では、CPU310は、受信したHTTPリクエストBに対する応答として、HTTPレスポンスA(図3(C))をインターネット80上に送信する。HTTPレスポンスAのIPヘッダに含まれる送信元IPアドレスは、サーバ300のグローバルIPアドレス「GIP_S」である。HTTPレスポンスAのIPヘッダに含まれる宛先IPアドレスは、S22で取得したグローバルIPアドレス、すなわち、中継装置30AのグローバルIPアドレス「GIP_R」である。HTTPレスポンスAは、インターネット80を介して、中継装置30Aによって受信される。
中継装置30Aは、HTTPレスポンスAを受信すると、S26にて、上述したように、宛先IPアドレス変換処理を実行する。すなわち、S18の送信元IPアドレス変換処理において記録された変更記録を参照して、該HTTPレスポンスAのIPヘッダに含まれる宛先IPアドレスは、複合機200AのローカルIPアドレス「LIP_M」に変更される。参照された変更記録は削除される。
S28では、中継装置30Aは、HTTPレスポンスAの宛先IPアドレスを変更して得られるHTTPレスポンスB(図3(D))をローカルエリアネットワークLN1上に送信する。HTTPレスポンスBは、ローカルエリアネットワークLN1を介して複合機200Aによって受信される。
S14、S20のHTTPリクエストA、Bの送受信と、S24、S28のHTTPレスポンスA、Bの送受信と、は、複合機200Aをクライアントとし、サーバ300をサーバとして行われる通信である。
サーバ300のCPU310は、S30にて、HTTPリクエストB(図3(B))に含まれるリクエスト送信命令に応じて、HTTPリクエストC(図3(E))をインターネット80上に送信する。HTTPリクエストCの送信元IPアドレスは、サーバ300のグローバルIPアドレス「GIP_S」である。HTTPリクエストCのIPヘッダに含まれる宛先IPアドレスは、S22で取得したグローバルIPアドレス、すなわち、中継装置30AのグローバルIPアドレス「GIP_R」である。
HTTPリクエストCのHTTPヘッダには、宛先URLとして、S22で取得した指定URL(図3(B))が含められる。HTTPリクエストCのHTTPボディには、S22で取得した固有ID(図3(B))が含められる。HTTPリクエストCは、インターネット80を介して、中継装置30Aに受信される。
S30のHTTPリクエストCの送信は、複合機200Aをサーバとし、サーバ300をクライアントとして行われる通信である。このように、複合機200Aとサーバ300とは、HTTPに準拠するクライアントとサーバとの両方として動作可能である。
中継装置30Aは、HTTPリクエストCを受信すると、宛先IPアドレスが中継装置30A宛であることを認識するが、対応する送信元IPアドレス変換処理を行った変更記録がない。このために、中継装置30Aは、宛先IPアドレス変換処理を行わず、HTTPリクエストCを中継せずに、HTTPリクエストCを破棄する。S32では、中継装置30Aは、HTTPリクエストCの宛先が間違えていることを示すエラーレスポンス(図3(F))をインターネット80上に送信する。該エラーレスポンスの送信元IPアドレスは、中継装置30AのグローバルIPアドレス「GIP_R」であり、宛先IPアドレスは、サーバ300のグローバルIPアドレス「GIP_S」である。したがって、該エラーレスポンスは、サーバ300によって受信される。
以上のように、推奨設定が行われている場合には、複合機200Aから送信されるHTTPリクエストAに含まれるリクエスト送信命令に応じて、サーバ300から送信されるHTTPリクエストCは、複合機200Aに到達しない。すなわち、推奨設定が行われている場合には、複合機200Aをサーバとし、サーバ300をクライアントとして行われる通信では、HTTPリクエストは、複合機200Aに到達しない。このために、HTTPリクエストCが複合機200Aによって受信されないまま、待機期間WTが経過する。
待機期間WTが経過すると、S34にて、複合機200AのCPU210は、S16にて起動したタイマーのカウントに基づいて、待機期間WTが経過したと判断する。この場合には、現在のネットワーク設定は、推奨設定であり、複合機200Aに割り当てられているIPアドレスは、ローカルIPアドレスであると判断できる。したがって、セキュリティ上の問題はないと判断できるので、CPU210は、そのまま設定確認処理を終了する。
A−2−2:非推奨設定時の動作
図4は、第1実施例の設定確認処理の第2のシーケンス図である。第2のシーケンス図は、上記非推奨設定が行われている場合のシーケンス図である。図5は、設定確認処理で用いられる要求と応答の一例を示す第2の図である。
図4のS42、S44、S46は、図2のS12、S14、S46と同一の処理である。ただし、S44で送信されるHTTPリクエストD(図5(A))は、図2のS14で送信されるHTTPリクエストA(図3(A))とは、IPヘッダに含まれる送信元IPアドレスが異なっている。非推奨設定が行われている場合には、複合機200Aに割り当てられているIPアドレスは、グローバルIPアドレス「GIP_M」であるので、S44で送信されるHTTPリクエストDの送信元IPアドレスは、グローバルIPアドレス「GIP_M」である。HTTPリクエストDは、図2の場合と同様に、中継装置30Aによって受信される。
非推奨設定が行われている場合には、上述したように、中継装置30Aでは、アドレス変換機能が動作していない。このため、S48では、中継装置30Aは、受信したHTTPリクエストDを、そのままインターネット80上に送信する。HTTPリクエストDは、インターネット80を介して、サーバ300によって受信される。
S50では、サーバ300のCPU310は、図2のS22と同様に、受信したHTTPリクエストDのIPヘッダに含まれる送信元IPアドレスと、HTTPボディに含まれる指定URLおよび固有IDと、を取得する。非推奨設定の場合には、図5(A)から解るように、推奨設定の場合とは異なり、複合機200AのグローバルIPアドレス「GIP_M」が取得される。
S52では、CPU310は、図2のS24と同様に、受信したHTTPリクエストDに対する応答として、HTTPレスポンスC(図5(B))をインターネット80上に送信する。HTTPレスポンスCのIPヘッダに含まれる送信元IPアドレスは、サーバ300のグローバルIPアドレス「GIP_S」である。HTTPレスポンスCのIPヘッダに含まれる宛先IPアドレスは、S50で取得したグローバルIPアドレス、すなわち、複合機200AのグローバルIPアドレス「GIP_M」である。HTTPレスポンスCは、インターネット80を介して、中継装置30Aによって受信される。
中継装置30Aは、HTTPレスポンスCを受信すると、S56にて、そのまま、ローカルエリアネットワークLN1上に送信する。すなわち、推奨設定の場合に実行される宛先IPアドレス変換処理(図2のS26)は実行されない。HTTPレスポンスCは、ローカルエリアネットワークLN1を介して、複合機200Aによって受信される。
サーバ300のCPU310は、S58にて、HTTPリクエストD(図5(A))に含まれるリクエスト送信命令に応じて、HTTPリクエストE(図5(C))をインターネット80上に送信する。HTTPリクエストEの送信元IPアドレスは、サーバ300のグローバルIPアドレス「GIP_S」である。HTTPリクエストEのIPヘッダに含まれる宛先IPアドレスは、S50で取得したグローバルIPアドレス、すなわち、複合機200AのグローバルIPアドレス「GIP_M」である。
HTTPリクエストEには、図3(E)のHTTPリクエストCと同様に、S50で取得した指定URLおよび固有ID(図5(A))が含められる。HTTPリクエストEは、インターネット80を介して、中継装置30Aに受信される。
中継装置30Aは、HTTPリクエストEを受信すると、S60にて、HTTPリクエストEを、そのまま、ローカルエリアネットワークLN1上に送信する。HTTPリクエストEは、ローカルエリアネットワークLN1を介して、複合機200Aによって受信される。
S61では、CPU210は、HTTPリクエストEに含まれる固有IDと、S42にて生成した固有IDと、が一致するか否かを検証する。検証の結果、これらの固有IDが一致する場合には、HTTPリクエストEは、HTTPリクエストDに含まれるリクエスト送信命令に応じて、インターネット80を介して、複合機200Aに送信された可能性が非常に高い。このため、検証の結果、これらの固有IDが一致する場合には、受信されたHTTPリクエストが、サーバ300から送信されたHTTPリクエストEであると判断できる。
なお、検証の結果、これらの固有IDが一致しない場合には、CPU210は、受信されたHTTPリクエストは、サーバ300から送信されたHTTPリクエストEではないと判断できる。この場合には、CPU210は、待機期間WTが経過するまで、HTTPリクエストEが受信されることを待つ。
S62では、複合機200AのCPU210は、HTTPリクエストEに対する応答として、HTTPレスポンスD(図5(D))をローカルエリアネットワークLN1上に送信する。HTTPレスポンスDの送信元IPアドレスは、複合機200AのグローバルIPアドレス「GIP_M」であり、宛先IPアドレスは、サーバ300のグローバルIPアドレス「GIP_S」である。HTTPレスポンスDは、ローカルエリアネットワークLN1を介して、中継装置30Aによって受信される。S64では、中継装置30Aは、受信したHTTPレスポンスDを、インターネット80上に送信する。HTTPレスポンスDは、インターネット80を介して、サーバ300によって受信される。なお、変形例では、S62、S64の処理は、省略されても良い。
以上のように、非推奨設定である場合には、複合機200Aから送信されるHTTPリクエストDに含まれるリクエスト送信命令に応じて、サーバ300から送信されるHTTPリクエストEは、複合機200Aに受信される。サーバ300からのHTTPリクエストEの送信(S58)は、S48にてサーバ300がHTTPリクエストDを受信してから、待機期間WTより十分に短い期間内に、行われる。このために、非推奨設定である場合には、待機期間WTが経過する前に、サーバ300からのHTTPリクエストEが、複合機200Aによって受信される。この結果、HTTPリクエストEが受信される場合には、複合機200Aに割り当てられているIPアドレスは、グローバルIPアドレスであり、非推奨設定が行われていると判断できる。
S66では、CPU210は、S46にて起動したタイマーを停止する。S68では、CPU210は、パスワード要求機能を有効に設定する。すなわち、パスワード要求機能が無効である場合には、パスワード要求機能を無効から有効に切り替える。パスワード要求機能は、WEBサーバ機能による設定管理サービスを提供する条件として、認証情報としてのパスワードの入力を要求する機能である。すなわち、パスワード要求機能が有効である場合に、設定管理サービスの提供を要求するHTTPリクエストを複合機200Aが受信すると、CPU210は、該HTTPリクエストの送信元に対して、パスワードの入力画面を示すWEBページデータを送信する。該入力画面を介して、正しいパスワードが入力された場合には、CPU210は、該HTTPリクエストの送信元に対して、複合機200Aの設定管理画面を示すWEBページデータを送信することによって、設定管理サービスを提供する。該入力画面を介して、正しいパスワードが入力されない場合には、CPU210は、該HTTPリクエストの送信元に対して、設定管理画面を示すWEBページデータを送信しないことによって、設定管理サービスの提供を禁止することで、設定管理サービスの提供を許容しない。変形例としては、認証情報は、例えば、署名情報であっても良いし、秘密鍵情報であっても良い。また、変形例としては、正しいパスワードが入力されない場合には、設定管理サービスとは異なるサービス、例えば、外部の格納サーバに対してスキャンデータを送信するサービスの提供を許容しないこと、としても良い。
S70では、CPU210は、ユーザへの警告画面を表示部240に表示して、設定確認処理を終了する。警告画面は、例えば、セキュリティ上の問題がある非推奨設定が行われていることを示すメッセージと、該設定の修正を促すメッセージを含む。
以上説明した第1実施例によれば、複合機200Aは、複合機200Aに電源が投入されたことに応じて、複合機200Aへのデータ送信を要求する通信要求、具体的には、リクエスト送信命令を含むHTTPリクエストDを、サーバ300に対して送信する(図4のS44)。複合機200Aは、HTTPリクエストDの送信後に、リクエスト送信命令に応じて送信される特定のデータ、具体的には、HTTPリクエストEを、サーバ300から受信する(図4のS60)。複合機200Aは、当該HTTPリクエストEの受信に応じて、パスワード要求機能を有効にする処理(図4のS68)と、警告画面を表示する処理(図4のS70)と、を実行する。この結果、複合機200Aがセキュリティ上の問題を有している可能性がある場合、例えば、上述の非推奨設定が行われている場合であっても、複合機200Aに電源が投入されたことを契機として、クライアントとして動作するサーバ300からHTTPリクエストEを受信することで、セキュリティ上の問題を有している可能性を認識できる。したがって、パスワード要求機能を有効にする処理や、警告画面を表示する処理を適切に実行することができる。
さらに、上記第1実施例によれば、複合機200Aは、HTTPリクエストDの送信後から、カウントされる待機期間WT内に、HTTPリクエストEが受信される場合に、パスワード要求機能を有効にする処理や、警告画面を表示する処理を実行する。待機期間WT内に、HTTPリクエストEが受信された場合には、当該HTTPリクエストEは、インターネット80を介して送信されたものである可能性が非常に高い。したがって、インターネット80を介して接続される外部装置がクライアントとして複合機200Aと通信可能な状態にある可能性が高く、セキュリティ上の問題がある可能性が高い。このために、第1実施例によれば、セキュリティ上の問題がある可能性が高い場合に、パスワード要求機能を有効にする処理や、警告画面を表示する処理を適切に実行することができる。
さらに、上記実施例によれば、図2に示すように、HTTPリクエストAの送信(図2のS14)後から、カウントされる待機期間WT内に、リクエスト送信命令に応じて送信されるHTTPリクエストを受信しない場合には、CPU210は、パスワード要求機能を有効にする処理や、警告画面を表示する処理を実行しない。この結果、推奨設定である可能性が高い場合、すなわち、セキュリティ上の問題がある可能性が低い場合に、無駄なセキュリティに関連する処理が行われることを抑制できる。
さらに、上記第1実施例によれば、複合機200Aは、固有IDを含むHTTPリクエストDをサーバ300に対して送信し(図4のS44)、当該固有IDを含むHTTPリクエストEをサーバ300から受信する(図4の60)。固有IDを含むHTTPリクエストEが受信された場合には、HTTPリクエストEは、インターネット80を介して送信されたものである可能性が非常に高い。したがって、インターネット80を介して接続される外部装置がクライアントとして複合機200Aと通信可能な状態にある可能性が高く、セキュリティ上の問題がある可能性が高い。このために、第1実施例によれば、セキュリティ上の問題がある可能性が高い場合に、パスワード要求機能を有効にする処理や、警告画面を表示する処理を適切に実行することができる。
さらに、上記第1実施例によれば、HTTPリクエストEがサーバ300から受信された場合に、複合機200Aが実行するセキュリティに関連する処理は、パスワード要求機能を無効から有効に切り替える処理を含む(図4のS68)。この結果、インターネット80を介して接続される外部装置がクライアントとして複合機200Aと通信可能である場合に、複合機200Aのセキュリティを向上できる。
さらに、上記第1実施例によれば、複合機200AのHTTPリクエストDの送信や、HTTPリクエストEの受信は、HTTPに準拠して行われる。そして、複合機200AのWEBサーバ機能は、HTTPに準拠して設定管理サービスを提供する。この結果、インターネット80を介して接続される外部装置がクライアントとして、複合機200AのWEBサーバ機能と通信可能であるか否かを適切に確認できる。
さらに、上記第1実施例によれば、HTTPリクエストDは、指定URLを含み(図5(A))、HTTPリクエストEは、指定URLを宛先URLとして送信される(図5(C))。この結果、複合機200Aは、サーバ300から送信されるHTTPリクエストEを設定確認処理のためのHTTPリクエストであることを認識できる。
B.第2実施例
第1実施例の設定確認処理は、複合機200Aに電源が投入されたときに実行される。これに対して、第2実施例の設定確認処理は、第1実施例とは異なる契機で実行される。図6は、第2実施例の設定確認処理の第1のシーケンス図である。第1のシーケンス図は、上述した推奨設定が行われている場合のシーケンス図である。図7は、第2実施例の設定確認処理の第2のシーケンス図である。第2のシーケンス図は、上述した非推奨設定が行われている場合のシーケンス図である。
図6、図7に示すように、第2実施例では、CPU210は、電源が投入されている間は、不揮発性記憶装置230に格納された設定情報データベースSIに、特定のIPアドレスが設定されていない状態から、特定のIPアドレスが設定されている状態に遷移したか否かを常時監視している(図6のS10、図7のS40)。具体的には、設定情報データベースSIに、IPアドレスが設定されていないときに、設定情報データベースSIに、新たなIPアドレスが設定された場合には、当該遷移が発生したと判断される。また、設定情報データベースSIに、第1のIPアドレスが設定されているときに、当該第1のIPアドレスに代えて、第2のIPアドレスが設定された場合には、当該遷移が発生したと判断される。
特定のIPアドレスが設定されたことが検出されない場合には(図6のS10:NO、または、図7のS40:NO)、CPU210は、設定確認処理を開始しない。特定のIPアドレスが設定されたことが検出された場合には(図6のS10:YES、または、図7のS40:YES)、CPU210は、設定確認処理を開始し、固有IDを生成する(図6のS12、または、図7のS42)。図6のS12以降の処理、および、図7のS42以降の処理は、第1実施例の図2のS12以降の処理、および、図4のS42以降の処理と同一である。このため、図6、図7において、図2、図4と同一の処理については、図2、図4と同一の符号を付し、その説明を省略する。
以上説明した第2実施例によれば、複合機200Aがセキュリティ上の問題を有している可能性がある場合であっても、複合機200Aが特定のIPアドレスが設定されていない状態から、特定のIPアドレスが設定されている状態に遷移したことを契機として、クライアントとして動作するサーバ300からHTTPリクエストEを受信することで、セキュリティ上の問題を有している可能性を認識できる。したがって、パスワード要求機能を有効にする処理や、警告画面を表示する処理を適切に実行することができる。
特定のIPアドレスが設定されるタイミングで、非推奨設定が行われる可能性がある。すなわち、特定のIPアドレスが設定されるタイミングでは、インターネット80を介して接続される外部装置がクライアントとして複合機200Aと通信可能な状態が発生する可能性がある。第2実施例では、このようなセキュリティ上の問題がある状態が発生し得る適切なタイミングで、パスワード要求機能を有効にする処理や、警告画面を表示する処理が実行され得る。
C.変形例
(1)上記第2実施例では、特定のIPアドレスが設定されていない状態から、特定のIPアドレスが設定されている状態に遷移したことが検出された場合に設定確認処理が開始される。これに代えて、他の様々な遷移が検出された場合に、設定確認処理が開始されてもよい。図8を参照して、設定確認処理が開始される契機となる遷移の例を、変形例として説明する。
図8は、変形例の説明図である。第2実施例の図6のS10および図7のS40に代えて、図8(A)〜(D)に示すS10a〜S10eおよびS40a〜S40eが実行されても良い。
(1−1)図8(A)のS10a、S40aでは、CPU210は、USBメモリが通信部270のUSBインタフェースに接続されたか否かを検出する。USBメモリの接続が検出された場合には(S10a:YES、または、S40a:YES)、CPU210は、設定確認処理を開始する。USBメモリの接続が検出されない場合には(S10a:NO、または、S40a:NO)、CPU210は、設定確認処理を開始しない。
このように、インターネット80を介さずに接続されるUSBメモリなどの外部記憶装置が通信部270のインタフェースに接続されていない状態から、該外部記憶装置が通信部270のインタフェースに接続された状態への遷移が検出された場合に、設定確認処理が開始されても良い。USBメモリなどの外部記憶装置と接続された状態では、インターネット80を介して接続される外部装置がクライアントとして複合機200Aと通信可能であると、第三者の外部装置が、該外部記憶装置に格納される情報にアクセス可能となる可能性が高まる。このために、複合機200AがUSBメモリなどの外部記憶装置と接続された状態は、外部記憶装置と接続されていない状態と比較して、セキュリティを確保する必要性が高いと考えられる。
なお、USBメモリに限らず、SDカードやスマートメディアなどの他のリムーバブルメモリや、外付けのハードディスクドライブなどの他の外部記憶装置との接続が検出された場合に、設定確認処理が開始されても良い。
(1−2)図8(B)のS10b、S40bでは、CPU210は、外部の格納サーバとの通信を許容するか否かの設定が、当該通信が許容されない設定である状態から、当該通信が許容される設定である状態に遷移したか否かを検出する。外部の格納サーバは、例えば、上述したように、スキャンデータの宛先とされる。外部の格納サーバは、例えば、クライアント(複合機200Aやパーソナルコンピュータ(図示省略))から送信されたデータを保存するストレージサービスや、クライアントから送信されたデータの保存と公開とを行うソーシャルネットワークサービスを提供するサーバである。具体的には、外部の格納サーバによって提供されるサービスは、「Evernote(登録商標)」、「Google(登録商標) Drive」、「SkyDrive(登録商標)」、「Dropbox(登録商標)」、「Flickr(登録商標)」、「Facebook(登録商標)」などの公知のサービスを含む。また、外部の格納サーバによって提供されるサービスは、複合機200Aのベンダによって提供されるサービスを含む。
外部の格納サーバとの通信が許容される設定への遷移が検出された場合には(S10b:YES、または、S40b:YES)、CPU210は、設定確認処理を開始する。当該設定の遷移が検出されない場合には(S10b:NO、または、S40b:NO)、CPU210は、設定確認処理を開始しない。
このように、インターネット80を介して接続される外部の格納サーバとの通信が許容された状態では、インターネット80を介して接続される外部装置がクライアントとして複合機200Aと通信可能であると、第三者の外部装置が、複合機200Aを乗っ取ることで、外部の格納サーバに格納されている情報にアクセス可能となる可能性が高まる。このために、複合機200Aが外部の格納サーバとの通信が許容された状態は、外部の格納サーバとの通信が許容されていない状態と比較して、セキュリティを確保する必要性が高いと考えられる。
(1−3)図8(C)のS10c、S40cでは、CPU210は、宛先情報データベースDI(図1)に、特定の宛先情報(例えば、新たなFAX番号やメールアドレス)が登録されたか否かが判断される。特定の宛先情報の登録が検出された場合には(S10c:YES、または、S40c:YES)、CPU210は、設定確認処理を開始する。特定の宛先情報の登録が検出されない場合には(S10c:NO、または、S40c:NO)、CPU210は、設定確認処理を開始しない。
このように、複合機200Aに特定の宛先情報が格納されていない状態から、特定の宛先情報が格納された状態への遷移が検出された場合には、宛先情報は、個人情報であり、漏洩を防止する必要性が高いので、当該遷移が検出された場合に、設定確認処理が開始されても良い。
(1−4)図8(D)のS10d、S40dでは、CPU210は、設定情報データベースSIに、新たなスキャンプロファイルが登録されたか否かが判断される。新たなスキャンプロファイルの登録が検出された場合には(S10d:YES、または、S40d:YES)、CPU210は、設定確認処理を開始する。新たなスキャンプロファイルの登録が検出されない場合には(S10d:NO、または、S40d:NO)、CPU210は、設定確認処理を開始しない。
このように、複合機200Aに、新たなスキャンプロファイルなどの特定の設定情報が格納されていない状態から、該特定の設定情報が格納された状態への遷移が検出された場合には、該特定の設定情報は、個人情報であり、漏洩を防止する必要性が高いので、当該遷移が検出された場合に、設定確認処理が開始されても良い。
これらの変形例(1−1)〜(1−4)によれば、セキュリティを確保する必要性が高くなる適切なタイミングで、パスワード要求機能を有効にする処理や、警告画面を表示する処理が実行され得る。
以上の説明から解るように、一般的に言えば、複合機200Aが、特定情報(例えば、特定のIPアドレス、USBメモリに格納された情報、外部の格納サーバに格納された情報、特定の宛先情報、特定の設定情報)にアクセス不可能な第1の状態から、当該特定情報にアクセス可能な第2の状態へと遷移したことが検出された場合に、設定確認処理が開始されることが好ましい。
(2)上記各実施例では、複合機200Aから送信されるHTTPリクエストA、Dを受信する第1の外部装置と、HTTPリクエストC、Eを送信する第2の外部装置とは、ともに同一の装置(サーバ300)である。これに代えて、第1の外部装置と第2の外部装置とは異なる装置であっても良い。例えば、第1の外部装置は、HTTPリクエストA、Dを受信すると、HTTPリクエストA、Dに含まれる送信元IPアドレスと、指定URLと、固有IDと、を第2の外部装置に対して送信する。第2の外部装置は、送信元IPアドレスと、指定URLと、固有IDと、を受信すると、これらの情報を用いて、HTTPリクエストC、Eをインターネット80上に送信しても良い。
(3)上記各実施例のS68、S70(図4、図7)では、CPU210は、セキュリティに関連する特定の処理として、特定の認証情報としてのパスワードを要求するパスワード要求機能を有効に切り替える処理と、警告画面を表示する処理と、を実行しているが、これらに代えて、あるいは、これらのと共に、他の処理を実行しても良い。例えば、CPU210は、予め登録されているユーザのメールアドレスに、警告画面に表示するメッセージと同様のメッセージが記述されたEメールを送信しても良い。CPU210は、当該メッセージをプリンタ部290に印刷させても良い。CPU210は、複合機200Aにおいて特定のプロトコルの利用を停止しても良い。特定のプロトコルは、例えば、HTTP、IPP(Internet Printing Protocol)、FTP(File Transfer Protocol)である。例えば、特定のプロトコルの利用の停止は、該特定のプロトコルを利用して提供されるサービスに対応するポート番号を宛先ポート番号とするリクエストを受信した場合には、当該リクエストを廃棄することによって実現される。特定のプロトコルを利用して提供されるサービスは、例えば、上記実施例では、設定管理サービスを提供するWEBサービスを含む。
(4)複合機200Aから送信されるHTTPリクエストA、Dや、サーバ300から送信されるHTTPリクエストC、Eは、他のプロトコル、例えば、FTPに準拠するリクエストであっても良い。用いられるプロトコルは、複合機200Aとサーバ300とのうちの一方の装置をクライアントとし、他方の装置をサーバとして、リクエストを送信可能なプロトコルであれば良い。
(5)上記各実施例では、通信装置として、複合機200A、200Bが採用されているが、単体のスキャナやプリンタ、あるいは、デジタルカメラなどの他の画像処理装置が、通信装置として、採用されても良い。また、画像処理装置に限らず、他の種類の通信装置、例えば、ストレージなどの記憶装置や、パーソナルコンピュータなどが採用されても良い。
(6)上記各実施例の設定確認処理の細部の処理は、一例であり、各種の変更が可能である。例えば、複合機200Aから送信されるHTTPリクエストA、Dには、固有IDは含まれなくても良い。この場合には、CPU210は、固有IDが含まれないHTTPリクエストであっても、待機期間WT内に該HTTPリクエストが受信された場合には、セキュリティに関連する特定の処理を実行する。
また、CPU210は、複合機200Aから送信されるHTTPリクエストA、Dを送信した後において、待機期間WTが経過後に、HTTPリクエストを受信した場合であっても、該HTTPリクエストに固有IDが含まれている場合には、セキュリティに関連する特定の処理を実行しても良い。この場合には、待機期間WTのカウントは省略されても良い。
また、複合機200Aから送信されるHTTPリクエストA、Dには、指定URLが含まれなくても良い。この場合には、サーバ300は、予め定められたURLを宛先URLとして、HTTPリクエストC、Eを送信する。
(7)サーバ300は、ネットワークを介して互いに通信可能な複数個の装置(例えば、コンピュータ)を含む、いわゆるクラウドサーバであっても良い。
(8)上記各実施例において、ハードウェアによって実現されていた構成の一部をソフトウェアに置き換えるようにしてもよく、逆に、ソフトウェアによって実現されていた構成の一部あるいは全部をハードウェアに置き換えるようにしてもよい。
(9)本発明の機能の一部または全部がコンピュータプログラムで実現される場合には、そのプログラムは、コンピュータ読み取り可能な記録媒体(例えば、一時的ではない記録媒体)に格納された形で提供することができる。プログラムは、提供時と同一または異なる記録媒体(コンピュータ読み取り可能な記録媒体)に格納された状態で、使用され得る。「コンピュータ読み取り可能な記録媒体」は、メモリーカードやCD−ROMのような携帯型の記録媒体に限らず、各種ROM等のコンピュータ内の内部記憶装置や、ハードディスクドライブ等のコンピュータに接続されている外部記憶装置も含み得る。
以上、実施例、変形例に基づき本発明について説明してきたが、上記した発明の実施の形態は、本発明の理解を容易にするためのものであり、本発明を限定するものではない。本発明は、その趣旨並びに特許請求の範囲を逸脱することなく、変更、改良され得ると共に、本発明にはその等価物が含まれる。