説明

通信装置及びその制御方法

【課題】 証明書のインストールページは、機器の管理者のみが使用できるべきものであるが、一般ユーザによる証明書インストールページへのアクセス制限を行うことができなかった。
【解決手段】 デフォルトで記憶した自己署名証明書を使用した通信でログインしたユーザが管理者であるか、一般ユーザであるかを判定し、ユーザが管理者であると判定すると、当該ユーザにCA署名証明書インストールページを返し、そのユーザが一般ユーザであると判定すると、当該ユーザにエラーページを返す。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、HTTPサーバ機能を有する通信装置及びその制御方法に関する。
【背景技術】
【0002】
画像処理装置等で動作するHTTPサーバもしくはHTTPSサーバ(SSLをベースとしてセキュリティ機能を付加したHTTP)は、HTTPもしくはHTTPSでの要求に基づいてWebページを表示する。HTTPSの通信には、サーバのなりすましの防止と通信路の暗号化のためにSSL(Secure Socket Layer)証明書を必要とする。この証明書がない場合、サーバはクライアントからのHTTPSのリクエストを受けることができない。
【0003】
更に、このSSL証明書には、認証局(CA:Certificate Authority)の署名のある証明書(以後、CA署名証明書)と、CAの署名のない自己署名証明書の2つがある。そして、自己署名証明書を使用する場合はサーバのなりすましを防止することができない。そのため自己署名証明書を使用するHTTPSサーバに接続したユーザは、サーバが提示する自己署名証明書を信用するか否かを判断しなければならない。
【0004】
一方、CA署名証明書は高価であり、更に証明書はユーザのネットワーク上での機器のホスト名を含むため、画像処理装置等の組み込み機器の出荷時にインストールすることはできない。よって、このような組み込み機器は、メーカが作成した自己署名証明書がインストールされた状態で出荷されている。
【先行技術文献】
【特許文献】
【0005】
【特許文献1】特開2005−130449号公報
【発明の概要】
【発明が解決しようとする課題】
【0006】
Webアプリケーションが動作するサーバ側の画像処理装置等とPCのブラウザ間でSSL通信を行う場合、通信路の暗号化と機器のなり済ましを防止するために、サーバ側にSSL証明書が必要となる。このSSL証明書には、CA署名証明書とCAの署名のない自己署名証明書の2つがある。CA署名証明書は機器の情報(ホスト名など)を含むためサーバ毎にCAから取得する必要があり、またCA署名証明書は高価である。このため、サーバ側の画像処理装置の出荷時にはCA署名証明書はインストールされず、自己署名証明書がインストールされて出荷されている。これは、SSL証明書がないとクライアントからのSSL通信を一切受けることがでないため、クライアント側のユーザにSSL証明書が存在しないことを通知することもできないためである。
【0007】
しかし、自己署名証明書はだれもが作成できるものであるため、攻撃者が機器になりすますことを防止する役にはたたない。また通信路の暗号化には使用できるが、なりすましによって通信路を盗聴される可能性がある。そのため、安全なSSL通信を行うためにはCA署名証明書をサーバ側の画像処理装置にインストールして使用する必要がある。
【0008】
特許文献1には、自己署名証明書しかない場合、証明書のインストールページをクライアントに返す技術が記載されている。しかし、証明書のインストールページは、機器の管理者のみが使用できるべきものであるが、一般ユーザによる証明書インストールページへのアクセス制限を行うことができなかった。
【0009】
本発明の目的は、上記従来技術の問題点を解決することにある。
【0010】
本発明の特徴は、デフォルトの自己署名証明書しかない場合、証明書のインストールページを管理者のみに返し、一般ユーザに対してはエラーメッセージを返すことができる技術を提供することにある。
【課題を解決するための手段】
【0011】
上記目的を達成するために本発明の一態様に係る通信装置は以下のような構成を備える。即ち、
デフォルトで自己署名証明書を記憶するデフォルト証明書記憶手段と、
前記自己署名証明書を使用した通信でログインしたユーザが管理者であるか、一般ユーザであるかを判定する判定手段と、
前記判定手段が前記ユーザが管理者であると判定すると、当該ユーザにCA署名証明書インストールページを返す応答手段と、
前記判定手段が前記ユーザが一般ユーザであると判定すると、当該ユーザにエラーページを返すエラー応答手段と、を有することを特徴とする。
【発明の効果】
【0012】
本発明によれば、管理者のみにCA署名証明書のインストールページを提供することができる。
【図面の簡単な説明】
【0013】
【図1】本実施形態に係るHTTPサーバを含むネットワークシステムの構成を示すブロック図。
【図2】実施形態に係るHTTPサーバのHDDに記憶されている情報を説明する図。
【図3】従来のHTTPサーバでSSL証明書がない場合の処理(A)と、デフォルト証明書として自己署名証明書を持つ場合にリクエストを受けた時の処理(B)の概略を示す図。
【図4】図3(A)に対応するブラウザの画面例を説明する図。
【図5】本実施形態に係るHTTPサーバの起動時の処理を説明するフローチャート。
【図6】ブラウザからのリクエストがあったときの本実施形態に係るHTTPサーバ102の処理を説明するフローチャート。
【図7】本実施形態に係る処理の流れを説明するシーケンス図。
【図8】実施形態に係る図6の処理に対応して、ブラウザで表示される画面例を示す図。
【発明を実施するための形態】
【0014】
以下、添付図面を参照して本発明の実施形態を詳しく説明する。尚、以下の実施形態は特許請求の範囲に係る本発明を限定するものでなく、また本実施形態で説明されている特徴の組み合わせの全てが本発明の解決手段に必須のものとは限らない。
【0015】
図1は、本実施形態に係るHTTPサーバ102(HTTPサーバ機能を有する通信装置)を含むネットワークシステムの構成を示すブロック図である。
【0016】
HTTPサーバ102は、ネットワーク101を介してクライアントであるPC108と接続され、これらの間でHTTP通信を行う。HTTPサーバ102は、ネットワークアダプタ104、CPU105、メモリ106、HDD(ハードディスクドライブ)107を有し、これらはバス103を介して接続されている。ネットワークアダプタ104は、ネットワーク101を介して他の機器との通信を制御する。CPU105は、メモリ106に記憶されたプログラムを実行してHTTPサーバ102全体の動作を制御するとともに、HTTPの処理やSSLの暗号化等を行う。メモリ106はCPU105により実行されるプログラムを記憶しており、またCPU105がデータの処理を行う際に必要なワークメモリを提供している。HDD107は、CPU105が実行するHTTPサーバプログラムやHTMLなどのWebコンテンツを保持している。
【0017】
図2は、実施形態に係るHTTPサーバ102のHDD107に記憶されている情報を説明する図である。
【0018】
HDD107には、HTTPサーバプログラム201、ログインサービスのプログラム202、エラーページのプログラム203、Webコンテンツ204、CA証明書インストールページのプログラム205が記憶されている。更に、デフォルト証明書の情報を記憶するデフォルト証明書記憶部206、CA証明書の情報を記憶するCA証明書記憶部207が設けられている。
【0019】
図3(A)(B)は、HTTPサーバでSSL証明書がない場合の処理(A)と、デフォルト証明書として自己署名証明書を持つ場合にリクエストを受けた時の処理(B)の概略を示す図である。
【0020】
図3(A)に示す証明書がない場合は、PC301からHTTPサーバ302にリクエストが来てもHDD303に証明書が保存されていない。このため、305で示すようにSSL通信を行うことができない。そのためPC301で動作するブラウザは、通信エラーをユーザに対して提示する。この場合、PC301にエラーレスポンスが返送されないため、PC301のユーザは、304に示すように、証明書がないために通信できないのか、或いは通信中にエラーが発生したのかといった、通信ができない理由を知ることができない。
【0021】
図3(B)は、デフォルト証明書として自己署名証明書を持つ実施形態に係るHTTPサーバ102の場合を示す。PC108はHTTPサーバ102にHDD107に保存されているデフォルト証明書310を使用したSSL通信によりリクエストを送信する(311)。そのときのブラウザの画面例を、図4の401に示す。
【0022】
図4は、図3(A)に対応するブラウザの画面例を説明する図である。
【0023】
次にHTTPサーバ102は、デフォルト証明書310を使用したSSL通信により、リクエストに対するレスポンスを送信する(312)。するとブラウザでは、図4の402で示すダイアログを表示し、ユーザに対してCAの署名のないデフォルト証明書を信頼して通信を継続するかどうかの判断を要求する(313)。
【0024】
ここでユーザがデフォルト証明書を信頼すると判断すると、リクエストしたWebコンテンツがログインの必要なものであれば、図4の403に示すように、HTTPサーバ102へのログインするための画面を表示する。そしてこの画面を使用してログインに成功すれば、図4の404で示すように、Webコンテンツの表示を行う。尚、ログインが不要なコンテンツの場合は、図4の403をスキップして直接、404で、Webコンテンツを表示する。
【0025】
図5は、本実施形態に係るHTTPサーバ102の起動時の処理を説明するフローチャートである。この処理はメモリ106に格納されたプログラムをCPU105が実行することにより実現される。
【0026】
S501で、HTTPサーバ102が起動するとS502に進み、HDD107のデフォルト証明書記憶部206及びCA証明書記憶部207から、選択されているSSL証明書の情報を取得する。次にS503に進み、その取得したSSL証明書の情報から、その証明書が自己署名証明書(即ち、CA署名証明書でない)であるデフォルト証明書であるか否かを判定する。ここでデフォルト証明書であると判定するとS504に進み、デフォルト証明書フラグ(メモリ106に設けられている)をオンに設定して、この起動処理を終了する。一方、S503で、デフォルト証明書でない(即ち、CA署名証明書である)と判断するとS504をスキップ(デフォルト証明書フラグをオフ)して起動処理を終了する。
【0027】
図6は、ブラウザからのリクエストがあったときの本実施形態に係るHTTPサーバ102の処理を説明するフローチャートである。この処理はメモリ106に格納されたプログラムをCPU105が実行することにより実現される。
【0028】
また図8は、実施形態に係る図6の処理に対応して、ブラウザで表示される画面例を示す図である。
【0029】
この処理は、PC108のブラウザからHTTPサーバ102にリクエストが発行されることにより開始され、まずS601で、そのリクエストを受信する。このときブラウザは、図8の802で示すダイアログを表示し、ユーザに対してCAの署名のないデフォルト証明書を信頼して通信を継続するかどうかの判断を要求する。尚、図8の801は、図6の処理が開始されるときのブラウザの初期画面を示す。次にS602に進み、HTTPサーバ102は、メモリ106のデフォルト証明書フラグを取得し、S603で、そのデフォルト証明書フラグがオンかどうかを判定する。ここでデフォルト証明書フラグがオフであるとCA署名証明書が使用されているのでS604に進んで、通常のHTTPレスポンス処理を実行する。即ち、S604では、通常のHTTPリクエストに対する処理を行い、S605で、要求されたWebコンテンツをレスポンスとして送信して、このレスポンス処理を終了する。
【0030】
一方S603で、デフォルト証明書フラグがオンであればS607に進み、ログインセッション情報を取得する。次にS608に進み、有効なログインセッションが取得されたか否かを判定する。ここで有効なログインセッションが取得できていなければS614に進み、図8の803のようなログインページを送信して、このHTTPリクエスト・レスポンス処理を終了する。
【0031】
即ち、レスポンスを受信したブラウザは、図8の803で示すログインページを表示してユーザのログインを待つ。ここでユーザが、ユーザIDとパスワードを入力してログインが行われると、ブラウザは、再度HTTPサーバ102にリクエストを送信する。これによりS601からの処理が実行される。
【0032】
一方、S608で、ログインセッションが有効であると判定するとS609に進み、ログインセッション情報に基づいて、ログインしたユーザが管理者であるか、一般ユーザであるかを判定する。ここでログインユーザが、一般ユーザであると判定するとS612に進み、エラーページを生成する。そして次にS613に進み、S612で生成したエラーページをレスポンスとしてPC108に送信して、このHTTPリクエスト・レスポンス処理を終了する。
【0033】
このエラーレスポンスを受信したブラウザは、例えば図8の805のようなエラーページを表示する。
【0034】
図8の805では、信頼できないデフォルト証明書が使用されているのでサービスを提供することができない旨が表示される。
【0035】
一方S609で、ログインユーザ管理者であればS610に進み、CA証明書インストールページを生成する。次にS611に進み、S610で生成したCA証明書インストールページを、レスポンスとしてPC108に送信して、このHTTPリクエスト・レスポンス処理を終了する。
【0036】
このレスポンスを受信したブラウザは、図8の804のようなCA証明書インストールページを表示する。
【0037】
図7は、本実施形態に係る処理の流れを説明するシーケンス図である。
【0038】
図7において、HTTPサーバ102は、Webコンテンツ701、ログインサービス702、CA証明書インストールページ703、エラーページ704のオブジェクトを有している。これらのオブジェクトはHDD107(図2)に保存されており、実行時にメモリ106にロードされる。
【0039】
まず705で、PC108からHTTPサーバ102に対してリクエストメッセージが送信される。ここでHTTPサーバ102に登録されているSSL証明書を判別し、その証明書がCA署名証明書である場合、706で、HTTPサーバ102はWebコンテンツ701に対してリクエスト処理メッセージを送信する。Webコンテンツ701は、このリクエストの内容を処理してレスポンスデータを生成し、707で、HTTPサーバ102に対してレスポンスメッセージを返信する。そしてHTTPサーバ102は、708で、この受け取ったレスポンスメッセージをレスポンスメッセージとしてPC108に送信する。
【0040】
一方、HTTPサーバ102に登録されているSSL証明書がデフォルト証明書だけである場合は、705で、HTTPサーバ102はPC108からリクエストメッセージを受信する。このときは709で、HTTPサーバ102は、ログインサービス702に対してログインセッションチェックメッセージを送信する。そしてログインサービス702は、710で、ログインセッション情報をHTTPサーバ102に返信する。
【0041】
ここでログインしていない場合は、無効なログインセッションがログインサービス702から返されるため、HTTPサーバ102は、711で、ログインサービス702に対してログイン処理リクエストメッセージを送信する。このときログインサービス702は、712で、ログインレスポンスとしてログインページを返信し、HTTPサーバ102は、713で、ログインページメッセージ(図8の803に相当)をPC108に返信する。
【0042】
一方、ユーザがログインを行うと、705で、PC108からリクエストメッセージ705がHTTPサーバ102に送信される。HTTPサーバ102は、そのログインしたユーザが管理者であるか、一般ユーザであるかを判定する。ログインユーザが管理者である場合、714で、HTTPサーバ102は、CA証明書インストールページ703に対して証明書インストールページリクエストを送信する。これによりCA証明書インストールページ703はインストールページを生成し、715で、HTTPサーバ102にインストールページを返信する。そしてHTTPサーバ102は、716で、PC108に対してCA証明書インストールページ(図8の804に相当)を返信して応答する。
【0043】
一方、ログインユーザが一般ユーザである場合は、717で、HTTPサーバ102はエラーページ704に対してエラーページリクエストを送信する。これによりエラーページ704はエラーページを生成し、718で、HTTPサーバ102にエラーページを返信する。そしてHTTPサーバ102は、719で、PC108に対してエラーページレスポンス(図8の805に相当)を返信してエラー応答する。尚、このエラーページレスポンスでは、管理者の呼び出しページを返送しても良い。
【0044】
HTTPサーバ102の管理者は、CA署名証明書インストールページ(図8の804)でCA証明書をインストールするとHTTPサーバ102を再起動する。これによりHTTPサーバ102では、CA署名証明書を使用したSSL通信が可能になる。
【0045】
以上説明したように本実施形態によれば、自己署名証明書のみをもつHTTPSサーバにアクセスしたユーザに対して、HTTPSサーバはセキュリティ的に問題のあるサーバであることを明示できる。
【0046】
更に、実施形態によれば、サーバの管理者のみに対してのみCA署名証明書のインストールページを提供することを可能とする。

【特許請求の範囲】
【請求項1】
デフォルトで自己署名証明書を記憶するデフォルト証明書記憶手段と、
前記自己署名証明書を使用した通信でログインしたユーザが管理者であるか、一般ユーザであるかを判定する判定手段と、
前記判定手段が前記ユーザが管理者であると判定すると、当該ユーザにCA署名証明書インストールページを返す応答手段と、
前記判定手段が前記ユーザが一般ユーザであると判定すると、当該ユーザにエラーページを返すエラー応答手段と、
を有することを特徴とする通信装置。
【請求項2】
前記デフォルト証明書記憶手段に記憶された前記自己署名証明書を使用してSSL通信を行うかどうかをユーザに問い合わせる問い合わせ手段を更に有することを特徴とする請求項1に記載の通信装置。
【請求項3】
HTTPサーバ機能を有する通信装置を制御する制御方法であって、
デフォルトで自己署名証明書を記憶するデフォルト証明書記憶工程と、
前記自己署名証明書を使用した通信でログインしたユーザが管理者であるか、一般ユーザであるかを判定する判定工程と、
前記判定工程で前記ユーザが管理者であると判定すると、当該ユーザにCA署名証明書インストールページを返す応答工程と、
前記判定工程で前記ユーザが一般ユーザであると判定すると、当該ユーザにエラーページを返すエラー応答工程と、
を有することを特徴とする通信装置の制御方法。
【請求項4】
前記デフォルト証明書記憶工程で記憶された前記自己署名証明書を使用してSSL通信を行うかどうかをユーザに問い合わせる問い合わせ工程を更に有することを特徴とする請求項3に記載の通信装置の制御方法。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate