(57)【特許請求の範囲】
【請求項１】
中継装置のためのコンピュータプログラムであって、
特定のサービスを提供するサービス提供装置が使用可能な１個以上の第１暗号化方式から選択される暗号化方式を用いて、前記サービス提供装置との間に、第１暗号化通信を確立する第１確立機能と、
通信装置から、前記通信装置が使用可能な複数個の暗号化方式を示す方式リストを受信する第１受信機能と、
前記第１暗号化通信が確立された後に、前記第１暗号化方式に基づいて、前記方式リストに示される複数個の暗号化方式の中から第２暗号化方式を選択する選択機能であって、選択される前記第２暗号化方式は、前記第１暗号化方式と同一の暗号化方式と、前記第１暗号化方式以上のセキュリティレベルである暗号化方式と、のいずれかである、前記選択機能と、
前記第２暗号化方式を用いて、前記通信装置との間に、第２暗号化通信を確立する第２確立機能と、
前記第１暗号化通信と前記第２暗号化通信とを用いて、前記サービス提供装置と前記通信装置との間の通信を中継する中継機能と、
をコンピュータに実現させるコンピュータプログラム。
【請求項２】
請求項１に記載のコンピュータプログラムであって、さらに、
前記第２暗号化方式とは異なる第３暗号化方式を用いて、前記通信装置との間に、第３暗号化通信を確立する第３確立機能と、
前記第３暗号化通信を用いて、前記通信装置から特定の情報を受信する第２受信機能と、
をコンピュータに実現させ、
前記第２確立機能は、前記特定の情報を受信した後に、前記第２暗号化通信を確立する、コンピュータプログラム。
【請求項３】
請求項２に記載のコンピュータプログラムであって、さらに、
前記第１暗号化方式と前記第３暗号化方式とを比較する比較機能をコンピュータに実現させ、
前記第３暗号化方式が、前記第１暗号化方式と同一の暗号化方式である場合には、前記第２確立機能は、前記第２暗号化通信を確立せずに、前記第３暗号化通信を維持し、
前記第３暗号化方式が、前記第１暗号化方式と異なる暗号化方式である場合には、前記第２確立機能は、前記第２暗号化通信を確立する、コンピュータプログラム。
【請求項４】
請求項２に記載のコンピュータプログラムであって、さらに、
前記第１暗号化方式と前記第３暗号化方式とを比較する比較機能をコンピュータに実現させ、
前記第３暗号化方式が、前記第１暗号化方式以上のセキュリティレベルである暗号化方式である場合には、前記第２確立機能は、前記第２暗号化通信を確立せずに、前記第３暗号化通信を維持し、
前記第３暗号化方式が、前記第１暗号化方式よりセキュリティレベルが低い暗号化方式である場合には、前記第２確立機能は、前記第２暗号化通信を確立する、コンピュータプログラム。
【請求項５】
請求項２〜４のいずれかに記載のコンピュータプログラムであって、さらに、
前記特定の情報を用いて、前記中継装置が通信を中継すべき前記通信装置と前記サービス提供装置とを関連付ける関連付機能をコンピュータに実現させる、コンピュータプログラム。
【請求項６】
請求項２〜５のいずれかに記載のコンピュータプログラムであって、さらに、
前記第２確立機能は、前記通信装置との間の前記第３暗号化通信が切断された後に、前記第２暗号化通信を確立する、コンピュータプログラム。
【請求項７】
請求項１〜６のいずれかに記載のコンピュータプログラムであって、さらに、
前記第１暗号化方式と、前記サービス提供装置を示すサービス識別子および前記通信装置を示すデバイス識別子との少なくとも一方と、を関連付けて記憶する記憶機能と、
前記サービス識別子および前記デバイス識別子との少なくとも一方とを前記通信装置から受信する第３受信機能と、
受信済の前記サービス識別子および前記デバイス識別子との少なくとも一方とを用いて前記第１暗号化方式を特定する特定機能と、
をコンピュータに実現させ、
前記選択機能は、特定される前記第１暗号化方式に基づいて、前記第２暗号化方式を選択する、コンピュータプログラム。
【請求項８】
請求項１〜３、５〜７のいずれかに記載のコンピュータプログラムであって、
前記第１暗号化方式および前記第２暗号化方式は、装置の認証のための認証アルゴリズムと、通信データを暗号化するための暗号化アルゴリズムと、前記暗号化アルゴリズムで用いられる暗号化鍵を交換するための鍵交換アルゴリズムと、前記認証アルゴリズムと前記暗号化アルゴリズムと前記鍵交換アルゴリズムとの少なくとも一つで用いられるハッシュアルゴリズムと、を含む複数項目のアルゴリズムを含み、
前記選択機能は、前記複数項目のアルゴリズムのうちの少なくとも１つの項目について、前記第１暗号化方式に含まれるアルゴリズムと同一のアルゴリズムを含む前記第２暗号化方式を選択する、コンピュータプログラム。
【請求項９】
請求項１、２、４〜６のいずれかに記載のコンピュータプログラムであって、
前記第１暗号化方式および前記第２暗号化方式は、装置の認証のための認証アルゴリズムと、通信データを暗号化するための暗号化アルゴリズムと、前記暗号化アルゴリズムで用いられる暗号化鍵を交換するための鍵交換アルゴリズムと、前記認証アルゴリズムと前記暗号化アルゴリズムと前記鍵交換アルゴリズムとの少なくとも一つで用いられるハッシュアルゴリズムと、を含む複数項目のアルゴリズムを含み、
前記選択機能は、前記複数項目のアルゴリズムのうちの少なくとも１つの項目について、前記第１暗号化方式に含まれるアルゴリズム以上のセキュリティレベルであるアルゴリズムを含む前記第２暗号化方式を選択する、コンピュータプログラム。
【請求項１０】
請求項１〜９のいずれかに記載のコンピュータプログラムであって、
前記第１暗号化通信および前記第２暗号化通信は、アプリケーション層に属するアプリケーション間の通信に用いられ、
前記第１受信機能は、前記アプリケーションより下位の層での通信を用いて前記方式リストを受信する、コンピュータプログラム。
【請求項１１】
請求項７に記載のコンピュータプログラムであって、
前記第３受信機能は、アプリケーション層に属するアプリケーション間の通信を用いて前記サービス識別子および前記デバイス識別子との少なくとも一方を受信し、
前記第１受信機能は、前記アプリケーションより下位の層での通信を用いて前記方式リストを受信する、コンピュータプログラム。
【請求項１２】
請求項１０または１１に記載のコンピュータプログラムであって、
前記方式リストを受信するためのプロトコルは、ＳＳＬ（Secure Sockets Layer）／ＴＬＳ（Transport Layer Security）である、コンピュータプログラム。
【請求項１３】
請求項１〜１２のいずれかに記載のコンピュータプログラムであって、
前記中継機能は、
前記第２暗号化通信を用いて、前記通信装置から前記通信装置のステータスを示す情報を受信し、
前記第１暗号化通信を用いて、前記ステータスを示す情報を、前記サービス提供装置に対して送信する、コンピュータプログラム。
【請求項１４】
中継装置であって、
特定のサービスを提供するサービス提供装置が使用可能な１個以上の第１暗号化方式から選択される暗号化方式を用いて、前記サービス提供装置との間に、第１暗号化通信を確立する第１確立部と、
通信装置から、前記通信装置が使用可能な複数個の暗号化方式を示す方式リストを受信する第１受信部と、
前記第１暗号化通信が確立された後に、前記第１暗号化方式に基づいて、前記方式リストに示される複数個の暗号化方式の中から第２暗号化方式を選択する選択部であって、選択される前記第２暗号化方式は、前記第１暗号化方式と同一の暗号化方式と、前記第１暗号化方式以上のセキュリティレベルである暗号化方式と、のいずれかである、前記選択部と、
前記第２暗号化方式を用いて、前記通信装置との間に、第２暗号化通信を確立する第２確立部と、
前記第１暗号化通信と前記第２暗号化通信とを用いて、前記サービス提供装置と前記通信装置との間の通信を中継する中継部と、
を備える中継装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、通信装置と、通信装置に対して特定のサービスを提供するサービス提供装置と、の通信を中継する技術に関する。
【背景技術】
【０００２】
特許文献１には、第１通信装置と第２通信装置との間の通信を中継する機能を具備した第３通信装置が、開示されている。第３通信装置は、第１通信装置と第３通信装置との間の通信に用いる第１暗号鍵と、第２通信装置と第３通信装置との間の通信に用いる第２暗号鍵の暗号種類、および、鍵長を調べる。第３通信装置は、第１暗号鍵と第２暗号鍵との間で、暗号種類と鍵長が一致した場合に、第３通信装置は、第１暗号鍵を第２通信装置に送信する。そして、第３通信装置は、第１通信装置と第３通信装置との間の通信と、第２通信装置と第３通信装置との間の通信と、の両方を、第１暗号鍵を用いて行う。これにより、第３通信装置は、復号や暗号化を行うことなく、単に、暗号化されたデータを中継するだけでよいので、効率良く中継を行うことができる。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００１−２３７８１８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、上記技術では、暗号種類、および、鍵長が一致した場合に、暗号鍵を共通化しているだけであるので、中継されるべき２個の装置（例えば、上記の第１通信装置と第２通信装置）との間の通信のセキュリティレベルを必要なレベルに維持できない可能性があった。
【０００５】
本明細書は、２個の装置間の通信を中継する際に、２個の装置間の通信のセキュリティレベルを、必要なレベルに維持することができる技術を開示する。
【課題を解決するための手段】
【０００６】
本明細書に開示された技術は、以下の適用例として実現することが可能である。
【０００７】
［適用例１］中継装置のためのコンピュータプログラムであって、特定のサービスを提供するサービス提供装置が使用可能な１個以上の第１暗号化方式から選択される暗号化方式を用いて、前記サービス提供装置との間に、第１暗号化通信を確立する第１確立機能と、通信装置から、前記通信装置が使用可能な複数個の暗号化方式を示す方式リストを受信する第１受信機能と、前記第１暗号化通信が確立された後に、前記第１暗号化方式に基づいて、前記方式リストに示される複数個の暗号化方式の中から第２暗号化方式を選択する選択機能であって、選択される前記第２暗号化方式は、前記第１暗号化方式と同一の暗号化方式と、前記第１暗号化方式以上のセキュリティレベルである暗号化方式と、のいずれかである、前記選択機能と、前記第２暗号化方式を用いて、前記通信装置との間に、第２暗号化通信を確立する第２確立機能と、前記第１暗号化通信と前記第２暗号化通信とを用いて、前記サービス提供装置と前記通信装置との間の通信を中継する中継機能と、をコンピュータに実現させるコンピュータプログラム。
【０００８】
上記構成によれば、サービス提供装置が使用可能な１個以上の第１暗号化方式に基づいて、中継装置と通信装置との間に確立すべき第２暗号化通信の第２暗号化方式が選択される。そして、第２暗号化方式には、第１暗号化方式と同一の暗号化方式と、第１暗号化方式よりセキュリティレベルが高い暗号化方式と、のいずれかが選択される。したがって、第１暗号化方式と比較して、第２暗号化方式のセキュリティレベルが低くなることを抑制することができる。したがって、中継装置が通信装置とサービス提供装置との間の通信を中継する場合に、通信装置とサービス提供装置との間の通信のセキュリティレベルを、必要なレベル（例えば、サービス提供装置が要求するレベル）に維持することができる。
【０００９】
なお、本明細書に開示される技術は、種々の形態で実現することが可能であり、例えば、通信装置と、前記通信装置に対して特定のサービスを提供するサービス提供装置と、に接続される中継装置、通信装置と、前記通信装置に対して特定のサービスを提供するサービス提供装置と、の間の通信の中継方法、上記コンピュータプログラムを記録した記録媒体（例えば、一時的ではない記録媒体）、等の形態で実現することができる。
【図面の簡単な説明】
【００１０】
【図１】システム１０００の構成を示すブロック図である。
【図２】システム１０００内の装置が有する情報の概念図である。
【図３】システム１０００の通信の一例を示すシーケンス図である。
【図４】システム１０００の通信の一例を示すシーケンス図である。
【図５】第１実施例の再確立判断処理のフローチャートである。
【図６】システム１０００の通信の一例を示すシーケンス図である。
【図７】システム１０００の通信の一例を示すシーケンス図である。
【図８】参照情報ＲＩの一例を示す図である。
【図９】第２実施例の再確立判断処理のフローチャートである。
【発明を実施するための形態】
【００１１】
Ａ．第１実施例：
Ａ−１：システム１０００の構成
次に、実施の形態を実施例に基づき説明する。図１は、本実施例としてのシステム１０００の構成を示すブロック図である。図２は、システム１０００内の装置が有する情報の概念図である。
【００１２】
システム１０００は、通信装置としてのデバイス１００と、中継サーバ２００と、サービス提供サーバ３００と、を備える。デバイス１００は、ＬＡＮ（Local Area Network）７０に接続されている。ＬＡＮ７０は、インターネット８０に接続されている。中継サーバ２００、および、サービス提供サーバ３００は、インターネット８０に接続されている。この結果、デバイス１００と中継サーバ２００、および、中継サーバ２００とサービス提供サーバ３００は、ＬＡＮ７０やインターネット８０を介して、互いに通信することができる。
【００１３】
デバイス１００は、画像の印刷や画像のスキャンなどの画像処理を実行する、いわゆる複合機である。デバイス１００は、複合機に限らず、スキャナ、プリンタ、デジタルカメラなどの他の画像処理デバイスであってもよく、携帯端末装置、パーソナルコンピュータなどの汎用デバイスであっても良い。デバイス１００は、ＣＰＵ１１０と、ハードディスクドライブやＥＥＰＲＯＭなどの不揮発性記憶装置１２０と、ＲＡＭなどの揮発性記憶装置１３０と、所定の方式（例えば、レーザ方式や、インクジェット方式）で画像を印刷するプリンタ部１４０と、光学的に対象物（例えば、紙の文書）を読み取ることによってスキャンデータを取得するスキャナ部１５０と、タッチパネルやボタンなどの操作部１６０と、タッチパネルと重畳された液晶パネルなどの表示部１７０と、ネットワークインタフェース（ＩＦ）１８０と、を備えている。ネットワークＩＦ１８０は、例えば、イーサネット（登録商標）規格に準拠したインタフェースであり、ＬＡＮ７０に接続するために用いられる。
【００１４】
不揮発性記憶装置１２０は、コンピュータプログラムＰＧ１と、サーバ情報ＳＩと、暗号化方式リストＣＬ１と、を格納している。揮発性記憶装置１３０には、ＣＰＵ１１０が処理を行う際に生成される種々の中間データを一時的に格納するバッファ領域１３１が設けられている。
【００１５】
コンピュータプログラムＰＧ１は、デバイス１００の出荷時に、予め不揮発性記憶装置１２０に記憶される形態で提供される。コンピュータプログラムＰＧ１は、インターネット８０を介してデバイス１００に接続されたサーバからダウンロードされる形態で提供されても良く、ＣＤ−ＲＯＭやＤＶＤ−ＲＯＭなどに格納された形態で提供されても良い。
【００１６】
ＣＰＵ１１０は、コンピュータプログラムＰＧ１を実行することにより、デバイス１００のコントローラーとして機能する。たとえば、ＣＰＵ１１０は、プリンタ部１４０やスキャナ部１５０を制御して印刷やスキャンを実行する。また、ＣＰＵ１１０は、中継サーバ２００を介して、サービス提供サーバ３００と通信を行うサーバ通信機能を実現できる。詳細は後述するが、本実施例のサーバ通信機能は、サービス提供サーバ３００に対して、デバイス１００の各種のステータス情報を送信するために実行される。
【００１７】
サーバ情報ＳＩは、サーバ通信機能において通信すべきサーバの情報である。サーバ情報ＳＩは、デバイス１００が、直接、通信を行うべき中継サーバ２００を示す情報、具体的には、中継サーバ２００のＵＲＬと、デバイス１００が利用するサービス提供サーバ３００を示す識別子（以下、利用サーバＩＤとも呼ぶ）と、を含む。
【００１８】
暗号化方式リストＣＬ１は、デバイス１００が使用可能な複数個の暗号化方式を示すリストである。暗号化方式は、デバイス１００と、デバイス１００とネットワークを介して接続された外部装置（例えば、中継サーバ２００）と、の間の暗号化通信の方式である。暗号化方式は、暗号化通信に用いられる複数項目のアルゴリズムを並べて示す暗号化スイートによって定義される。
【００１９】
図２（Ａ）には、暗号化方式リストＣＬ１の一例が示されている。暗号化方式リストＣＬ１は、暗号化方式をそれぞれ示す複数個の暗号化スイートを含んでいる。１個の暗号化方式に含まれる複数項目のアルゴリズムは、鍵交換アルゴリズムと、認証アルゴリズムと、暗号化アルゴリズムと、ハッシュアルゴリズムと、を含んでいる。
【００２０】
鍵交換アルゴリズムは、通信データの暗号化に用いられる暗号化鍵（共有鍵）を、通信を行う２個の装置間で交換するためのアルゴリズムである。鍵交換アルゴリズムには、例えば、「ＲＳＡ」、「ＤＨＥ（Diffie-Hellman key Exchangeの略）」、「ＥＣＤＨＥ（Elliptic Curve Diffie-Hellman key Exchangeの略）」が用いられる。
【００２１】
ＲＳＡ鍵交換アルゴリズムは、第１装置が、第２装置の公開鍵を用いて共有鍵を暗号化した暗号データを第２装置に送信するプロセスを含む。第２装置は、自信の秘密鍵を用いて、暗号データを復号することによって、共有鍵を取得する。第３者は、秘密鍵を持っていないので、盗聴した暗号通信を復号することはできない。しかし、第３者は、将来、秘密鍵を入手できた場合、それまでに盗聴した暗号通信を復号して見ることができる。したがって、ＲＳＡ鍵交換アルゴリズムは、いわゆるＰＦＳ（Perfect Forward Secrecyの略）を達成できない。
【００２２】
一方、ＤＨＥ鍵交換アルゴリズムや、ＥＣＤＨＥ鍵交換アルゴリズムでは、セッション毎に第１装置と第２装置のそれぞれによって生成されるランダムなパラメータを用いて、共有鍵の交換を行う。これらのパラメータは、漏洩しても別のセッションでの通信のセキュリティには何ら影響を及ぼさない。したがって、ＤＨＥ鍵交換アルゴリズムや、ＥＣＤＨＥ鍵交換アルゴリズムでは、いわゆるＰＦＳを達成できる。
【００２３】
この観点からは、ＤＨＥ鍵交換アルゴリズムやＥＣＤＨＥ鍵交換アルゴリズムは、ＲＳＡ鍵交換アルゴリズムよりセキュリティレベルが高いということができる。
【００２４】
認証アルゴリズムは、通信を行う２個の装置のうち、少なくとも一方の装置の認証を行うためのアルゴリズムである。認証アルゴリズムには、例えば、「ＲＳＡ」、「ＤＳＡ（Digital Signature Algorithmの略）」が用いられる。
【００２５】
暗号化アルゴリズムは、交換された暗号化鍵（共有鍵）を用いて通信データを暗号化するためのアルゴリズムである。暗号化アルゴリズムには、例えば、「ＤＥＳ（Data Encryption Standardの略）」、「３ＤＥＳ（Triple Data Encryption Standardの略）」、「ＡＥＳ（Advanced Encryption Standardの略）」が用いられる。なお、暗号化アルゴリズムを示す各アルファベットの末尾に、暗号化鍵の鍵長を示す数字（例えば、１２８、２５６）を付加して、例えば、ＤＥＳ１２８、ＤＥＳ２５６と表現する。同じ種類の暗号化アルゴリズム間では、鍵長が長いほどセキュリティレベルが高い。
【００２６】
ハッシュアルゴリズムは、データのダイジェストを生成するためのアルゴリズムである。ハッシュアルゴリズムは、他のアルゴリズムの少なくとも一つで用いられる。ハッシュアルゴリズムは、例えば、認証アルゴリズムにおいて、署名データの生成や、電子証明書の検証などに用いられる。ハッシュアルゴリズムには、例えば、「ＳＨＡ（Secure Hash Algorithmの略）１」、「ＳＨＡ２５６」、「ＳＨＡ５１２」などが用いられる。セキュリティレベルは、「ＳＨＡ５１２」＞「ＳＨＡ２５６」＞「ＳＨＡ１」の順に高い。
【００２７】
ここで、本実施例では、図２に示すように、４種類の暗号化方式Ａ〜Ｄが用いられる。図２には、各暗号化方式Ａ〜Ｄを示す暗号化スイートが示されている。これらの暗号化スイートから解るように、暗号化方式Ａの鍵交換−認証−暗号化−ハッシュのアルゴリズムの組み合わせは、「ＲＳＡ」−「ＲＳＡ」−「ＡＥＳ１２８」−「ＳＨＡ２５６」である。そして、暗号化方式Ｂのアルゴリズムの組み合わせは、「ＲＳＡ」−「ＲＳＡ」−「ＡＥＳ２５６」−「ＳＨＡ２５６」である。暗号化方式Ｃのアルゴリズムの組み合わせは、「ＤＨＥ」−「ＲＳＡ」−「ＡＥＳ１２８」−「ＳＨＡ１」である。のアルゴリズムの組み合わせは、「ＤＨＥ」−「ＲＳＡ」−「ＡＥＳ２５６」−「ＳＨＡ１」である。
【００２８】
図２（Ａ）に示すように、暗号化方式リストＣＬ１は、暗号化方式Ａを示す暗号化スイートと、暗号化方式Ｃを示す暗号化スイートと、を含む。すなわち、デバイス１００は、２個の暗号化方式Ａ、Ｃを使用可能である。
【００２９】
中継サーバ２００（図１）は、デバイス１００のベンダによって提供されるサーバである。中継サーバ２００は、詳細は後述するが、デバイス１００を含む複数個のデバイスと、サービス提供サーバ３００を含む複数個のサービス提供サーバと、の間の通信を中継する。
【００３０】
中継サーバ２００は、ＣＰＵ２１０と、ハードディスクドライブなどの不揮発性記憶装置２２０と、ＲＡＭなどの揮発性記憶装置２３０と、インターネット８０と接続するためのネットワークＩＦ２８０と、を備えている。
【００３１】
不揮発性記憶装置２２０は、コンピュータプログラムＰＧ２と、暗号化方式リストＣＬ２と、登録情報ＣＩと、を格納している。なお、波線で示す参照情報ＲＩは、第２実施例において、中継サーバ２００が保持する情報であるので、第２実施例にて説明する。揮発性記憶装置２３０には、ＣＰＵ２１０が処理を行う際に生成される種々の中間データを一時的に格納するバッファ領域２３１が設けられている。
【００３２】
コンピュータプログラムＰＧ２は、インターネット８０を介して接続されるベンダの計算機からアップロードされる形態で提供されても良く、ＣＤ−ＲＯＭやＤＶＤ−ＲＯＭなどに格納された形態で提供されても良い。ＣＰＵ２１０は、コンピュータプログラムＰＧ２を実行することによって、中継サーバ２００のコントローラーとしての機能を実現する。これらの機能の詳細は、後述する。
【００３３】
暗号化方式リストＣＬ２は、中継サーバ２００が使用可能な複数個の暗号化方式を示すリストである。図２（Ｂ）に示すように、暗号化方式リストＣＬ２には、４個の暗号化方式Ａ〜Ｄを示す４個の暗号化スイートを含む。すなわち、中継サーバ２００は、４個の暗号化方式Ａ〜Ｄを使用可能である。中継サーバ２００は、デバイス１００だけでなく、図示しない複数個の他のデバイス、例えば、中継サーバ２００を提供するベンダが販売している複合機、スキャナ、プリンタとの通信を行う。また、中継サーバ２００は、サービス提供サーバ３００だけでなく、図示しない複数個の他のサービス提供サーバとの通信を行う。このために、中継サーバ２００は、これらのデバイスやサービス提供サーバが使用し得る多数の暗号化方式を使用できることが好ましい。
【００３４】
図２（Ｃ）に示すように、登録情報ＣＩは、デバイステーブルＤＴと、サーバテーブルＳＴと、を含む。
【００３５】
デバイステーブルＤＴは、中継サーバ２００との間に暗号化通信を確立中のデバイス（例えば、デバイス１００）の情報が登録されるテーブルである。デバイステーブルＤＴに登録される１個のエントリＥ１は、デバイスＩＤ（例えば、Ｄ０１）と、使用暗号化方式（例えば、暗号化方式Ａ）と、利用サーバＩＤ（例えば、ＳＶ１）と、を含む。デバイスＩＤは、暗号化通信を確立中のデバイスを示す識別子である。使用暗号化方式は、確立中の暗号化通信で使用している暗号化方式である。サーバＩＤは、暗号化通信を確立中のデバイスが利用するサービス提供サーバを示す識別子である。
【００３６】
サーバテーブルＳＴは、中継サーバ２００との間に暗号化通信を確立したサービス提供サーバ（例えば、サービス提供サーバ３００）の情報が登録されるテーブルである。サーバテーブルＳＴに登録される１個のエントリＥ２は、サーバＩＤ（例えば、ＳＶ１）と、暗号化方式リスト（例えば、リストＣＬ２）と、を含む。サーバＩＤは、暗号化通信を確立したサービス提供サーバを示す識別子である。暗号化方式リストは、暗号化通信を確立したサービス提供サーバから受信された暗号化方式リストである。
【００３７】
サービス提供サーバは、クライアント（例えば、デバイス１００）に対して、特定のサービスを提供するサーバである。例えば、サービス提供サーバ３００は、デバイス１００を含む管理対象の複数個のデバイスを管理するサービスを、複数個のデバイスの管理者に対して提供している。サービス提供サーバ３００は、デバイス１００のベンダによって提供されても良いし、デバイス１００のベンダとは異なる運営者によって提供されても良い。サービス提供サーバ３００は、例えば、管理対象の複数個のデバイスのステータス、例えば、印刷枚数、トナーやインクなどの色材などの消耗品の状況、故障やエラーの発生状況を示す情報を、複数個のデバイスから収集する。複数個のデバイスの管理者は、図示しない端末装置（例えば、パーソナルコンピュータ）を用いてサービス提供サーバ３００にアクセスすることによって、サービス提供サーバ３００から、複数個のデバイスのステータスを示す情報の提供を受けることができる。
【００３８】
サービス提供サーバ３００は、ＣＰＵ３１０と、ハードディスクドライブなどの不揮発性記憶装置３２０と、ＲＡＭなどの揮発性記憶装置３３０と、インターネット８０と接続するためのネットワークＩＦ３８０と、を備えている。
【００３９】
不揮発性記憶装置３２０は、コンピュータプログラムＰＧ３と、暗号化方式リストＣＬ３と、を格納している。揮発性記憶装置３３０には、ＣＰＵ３１０が処理を行う際に生成される種々の中間データを一時的に格納するバッファ領域３３１が設けられている。
【００４０】
コンピュータプログラムＰＧ３は、インターネット８０を介して接続されるサービス提供サーバ３００の運営者の計算機からアップロードされる形態で提供されても良く、ＣＤ−ＲＯＭやＤＶＤ−ＲＯＭなどに格納された形態で提供されても良い。ＣＰＵ３１０は、コンピュータプログラムＰＧ３を実行することによって、サービス提供サーバ３００のコントローラーとしての機能を実現する。これらの機能の詳細は、後述する。
【００４１】
暗号化方式リストＣＬ３は、サービス提供サーバ３００が使用可能な１個以上の暗号化方式を示すリストである。図２（Ｄ）に示すように、暗号化方式リストＣＬ３は、２個の暗号化方式Ｃ、Ｄを示す２個の暗号化スイートを含む。すなわち、サービス提供サーバ３００は、２個の暗号化方式Ｃ、Ｄを使用可能である。
【００４２】
Ａ−２：システム１０００の動作
本実施例では、サービス提供サーバ３００の利用者は、デバイス１００を含む複数個のデバイスを管理する管理者である。この管理者は、管理対象の複数個のデバイスの設置場所とは異なる場所（例えば、管理者のオフィス）にて、端末装置を用いてサービス提供サーバ３００にアクセスする。これによって、サービス提供サーバ３００を介して、管理対象の複数個のデバイスのステータスを取得する。管理者は、これらのステータス（例えば、印刷枚数や色材の消費量）に基づいて、デバイスのユーザに対して、課金等を行うことができる。
【００４３】
本実施例では、デバイス１００を含む複数個のデバイスのユーザは、上記の管理者とは異なる。一例として、ユーザは、管理者から、これらのデバイスのリースを受けて利用している。デバイス１００には、予め管理者によって、上述したサーバ情報ＳＩが格納されており、デバイス１００は、中継サーバ２００を介して、サービス提供サーバ３００にステータスを送信するように設定されている。
【００４４】
Ａ−２−１．通信プロトコル
本実施例において、デバイス１００を含む複数個のデバイスと、中継サーバ２００と、の間の通信のプロトコルについて説明する。各デバイスと、中継サーバ２００と、の間の通信は、デバイスおよび中継サーバ２００のそれぞれのアプリケーション層のプログラム（以下、単に、アプリケーションと呼ぶ）に従って、各デバイスをクライアント、中継サーバ２００をサーバとして、行われる。各デバイスと中継サーバ２００のアプリケーションは、アプリケーション層のプロトコルであるＸＭＰＰ（Extensible Messaging and Presence Protocolの略）に従う通信を行う。アプリケーションの下位のトランスポート層の通信は、ＴＣＰ（Transmission Control Protocolの略）に従って行われる。そして、アプリケーション層のＸＭＰＰより下位で、トランスポート層のＴＣＰより上位の層で、ＳＳＬ／ＴＬＳ（Secure Sockets Layer／Transport Layer Securityの略）に従う通信によって、暗号化されたセキュアな通信路（以下、単に、暗号化通信とも呼ぶ）が確立される。すなわち、各デバイスと中継サーバ２００との間では、双方のアプリケーションは、ＳＳＬ／ＴＬＳに従って確立された暗号化通信を用いて、アプリケーションデータの送受信を行う。
【００４５】
本実施例において、中継サーバ２００と、サービス提供サーバ３００を含むサービス提供サーバと、の間の通信のプロトコルについて説明する。中継サーバ２００と、サービス提供サーバと、の間の通信は、中継サーバ２００およびサービス提供サーバのそれぞれのアプリケーションに従って、サービス提供サーバをクライアント、中継サーバ２００をサーバとして、行われる。中継サーバ２００と、サービス提供サーバのアプリケーションは、アプリケーション層のプロトコルであるＨＴＴＰ（Hypertext Transfer Protocolの略）に従う通信を行う。アプリケーションの下位のトランスポート層の通信は、ＴＣＰに従って行われる。そして、アプリケーション層のＨＴＴＰと、トランスポート層のＴＣＰと、の間の層で、ＳＳＬ／ＴＬＳ（Transport Layer Security／Secure Sockets Layerの略）に従う暗号化通信が確立される。すなわち、中継サーバ２００と、サービス提供サーバと、の間の通信は、双方のアプリケーションは、各デバイスと中継サーバ２００との間と同様に、ＳＳＬ／ＴＬＳに従って確立された暗号化通信を用いて、アプリケーションデータの送受信を行う。
【００４６】
Ａ−２−２：システム１０００の通信
デバイス１００、中継サーバ２００、サービス提供サーバ３００間の通信を具体例として、システム１０００の動作について説明する。図３、図４は、システム１０００の通信の一例を示すシーケンス図である。このシーケンス図は、中継サーバ２００に、サービス提供サーバ３００の暗号化方式リストＣＬ３が登録される前に、デバイス１００から中継サーバ２００に対してアクセスがある場合の例である。
【００４７】
デバイス１００は、電源投入時に、中継サーバ２００にアクセスして、中継サーバ２００との間に、ＸＭＰＰ通信を確立する。これによって、デバイス１００と中継サーバ２００との双方が主体的に任意のタイミングで通信が行える状態が確立される。デバイス１００と中継サーバ２００との間のＸＭＰＰ通信は、後述するように再確立が行われ得るが、デバイス１００の電源が投入されている間、常に、維持される。
【００４８】
具体的には、先ず、Ｓ１０にて、デバイス１００のＣＰＵ１１０は、通信開始要求を、中継サーバ２００に対して送信する。送信先の中継サーバ２００は、上述したサーバ情報ＳＩに基づいて特定される。通信開始要求には、図２（Ａ）の暗号化方式リストＣＬ１が含められる。中継サーバ２００が暗号化方式リストＣＬ１を受信すると、Ｓ１２にて、中継サーバ２００のＣＰＵ２１０は、暗号化方式リストＣＬ１に示される複数個の暗号化方式Ａ、Ｃ（図２（Ａ））の中から、使用すべき１個の暗号化方式（以下、使用暗号化方式と呼ぶ。）を選択する。具体的には、暗号化方式リストＣＬ１に示される複数個の暗号化方式Ａ、Ｃ（図２（Ａ））であって、かつ、中継サーバ２００自身も使用できる暗号化方式（すなわち、図２（Ｂ）の暗号化方式リストＣＬ２に示される暗号化方式Ａ〜Ｄのうちの１つ）が、使用暗号化方式として、選択される。Ｓ１２での暗号化方式の選択は、任意の方法で行われるが、本実施例では、暗号化方式リストＣＬ１にて上位に示された暗号化方式Ａが選択される。
【００４９】
Ｓ１４では、ＣＰＵ２１０は、使用暗号化方式、本実施例では、暗号化方式Ａの通知を、デバイス１００に対して送信する。なお、Ｓ１０、Ｓ１４の通信は、ＳＳＬ／ＴＬＳレイヤ間の通信である。
【００５０】
デバイス１００が使用暗号化方式の通知を受信すると、Ｓ１６にて、デバイス１００と、中継サーバ２００と、の間で通信確立処理が行われる。すなわち、デバイス１００と、中継サーバ２００との間で、使用暗号化方式である暗号化方式Ａを用いた暗号化通信を確立するための通信が、ＳＳＬ／ＴＬＳに従って実行される。この処理は、例えば、暗号化方式Ａに従って、中継サーバ２００を認証する処理は、共有鍵を交換する処理を含む。さらに、確立された暗号化通信上で、ＸＭＰＰ通信を確立するための通信が、ＸＭＰＰに従って実行される。
【００５１】
Ｓ１８では、ＣＰＵ１１０は、確立された暗号化通信、および、暗号化通信上に確立されたＸＭＰＰ通信を用いて、デバイスＩＤと、利用サーバＩＤと、を中継サーバ２００に対して送信する。すなわち、デバイスＩＤと、利用サーバＩＤと、の送受信は、デバイス１００と中継サーバ２００とのアプリケーション間の通信である。デバイスＩＤは、デバイス１００自身を示す識別子である。利用サーバＩＤは、上述したサーバ情報ＳＩに含まれる情報であり、サービス提供サーバ３００を示す識別子である。利用サーバＩＤとしては、例えば、デバイス１００のグローバルＩＰアドレスが用いられる。
【００５２】
中継サーバ２００がデバイスＩＤと利用サーバＩＤを受信すると、Ｓ２０では、ＣＰＵ２１０は、中継サーバ２００との間で通信が確立されたデバイス１００を登録する。具体的には、ＣＰＵ２１０は、受信されたデバイスＩＤと、利用サーバＩＤと、当該デバイスとの間で確立された通信に用いられている暗号化方式と、を関連づけて、上述した図２（Ｃ）のデバイステーブルＤＴに記録する。例えば、デバイス１００を示すデバイスＩＤ「Ｄ０１」と、デバイス１００と中継サーバ２００との間で確立された通信で用いられている暗号化方式Ａと、サービス提供サーバ３００を示す利用サーバＩＤ「ＳＶ１」と、を含むエントリＥ１（図２（Ｃ））が、記録される。なお、このエントリＥ１は、デバイス１００との間の通信が、後述するように再確立されるときに、更新される。また、デバイス１００との間の通信が再確立されることなく、切断されるときに、具体的には、デバイス１００の電源が落とされるときに、消去される。
【００５３】
Ｓ２１では、ＣＰＵ２１０は、デバイス１００との間に確立された通信を、使用暗号化方式を変更して再確立するか否かを判断する再確立判断処理を実行する。
【００５４】
図５は、第１実施例の再確立判断処理のフローチャートである。Ｓ１００では、ＣＰＵ２１０は、確立された通信の相手は、デバイス（例えば、デバイス１００）であるか、サービス提供サーバ（例えば、サービス提供サーバ３００）であるかを判断する。確立された通信の相手は、直前に、デバイステーブルＤＴやサーバテーブルＳＴに登録された装置である。例えば、図３のＳ２１での再確立判断処理では、直前のＳ２０にて登録された装置は、デバイス１００であるので、確立された通信の相手は、デバイスであると判断される。
【００５５】
確立された通信の相手がデバイスである場合には、Ｓ１０５〜Ｓ１２５の処理が実行される。確立された通信の相手がサービス提供サーバである場合には、Ｓ１３０〜Ｓ１５５の処理が実行される。ここでは、Ｓ１０５〜Ｓ１２５の処理について説明し、Ｓ１３０〜Ｓ１５５の処理については、後述する。
【００５６】
Ｓ１０５では、ＣＰＵ２１０は、確立された通信の相手であるデバイス（以下、対象デバイスとも呼ぶ。）に関連付けられたサービス提供サーバ、すなわち、対象デバイスが利用する利用サーバを特定する。具体的には、ＣＰＵ２１０は、図２（Ｃ）のデバイステーブルＤＴを参照して、対象デバイスのデバイスＩＤと関連付けられた利用サーバＩＤを取得する。これによって、当該利用サーバＩＤによって識別される利用サーバが特定される。図３のＳ２１の再確立判断処理では、デバイス１００に関連付けられた利用サーバとして、サービス提供サーバ３００が特定される。
【００５７】
Ｓ１１０では、ＣＰＵ２１０は、特定された利用サーバの暗号化方式リストは、サーバテーブルＳＴに、登録済であるか否かを判断する。
【００５８】
利用サーバの暗号化方式リストが、サーバテーブルＳＴに登録されている場合には（Ｓ１１０：ＹＥＳ）、Ｓ１１５にて、ＣＰＵ２１０は、対象デバイスとの間で現在確立されている暗号化方式は、利用サーバの暗号化方式リストに含まれているか否かを判断する。
【００５９】
対象デバイスとの間で現在確立されている暗号化方式が、利用サーバの暗号化方式リストに含まれていない場合（Ｓ１１５：ＮＯ）、Ｓ１２０にて、ＣＰＵ２１０は、対象デバイスとの間で再確立処理を行うと判断して、再確立判断処理を終了する。
【００６０】
利用サーバの暗号化方式リストが、登録済でない場合（Ｓ１１０：ＮＯ）、および、対象デバイスとの間で現在確立されている暗号化方式が、利用サーバの暗号化方式リストに含まれている場合（Ｓ１１５：ＹＥＳ）には、Ｓ１２５にて、ＣＰＵ２１０は、対象デバイスとの間で再確立処理を行わないと判断して、再確立処理を終了する。
【００６１】
図３に戻って、説明を続ける。Ｓ２１の再確立判断処理の時点では、デバイス１００の利用サーバであるサービス提供サーバ３００と、中継サーバ２００と、の間の通信は、まだ、確立されていない。したがって、サービス提供サーバ３００の暗号化方式リストは、サーバテーブルＳＴに登録されていない。このために、図５のＳ１１０にて、利用サーバの暗号化方式リストは、登録済でないと判断される。したがって、Ｓ２１の再確立判断処理では、対象デバイスであるデバイス１００との間で、再確立処理は行わないと判断される。
【００６２】
このために、Ｓ２１の後には、ＣＰＵ２１０が、再確立処理を行うことはない。したがって、デバイス１００と中継サーバ２００との間で、Ｓ１６にて確立された暗号化通信および当該暗号化通信上に確立されたＸＭＰＰ通信は、確立された状態に維持される。
【００６３】
サービス提供サーバ３００は、デバイス１００を含む管理対象の複数個のデバイスのステータスを取得すべく、定期的に、例えば、１日に１回、中継サーバ２００にアクセスする。具体的には、Ｓ２２にて、サービス提供サーバ３００のＣＰＵ３１０は、通信開始要求を、中継サーバ２００に対して送信する。通信開始要求には、図２（Ｄ）の暗号化方式リストＣＬ３が含められる。中継サーバ２００が暗号化方式リストＣＬ３を受信すると、Ｓ２４にて、ＣＰＵ２１０は、暗号化方式リストＣＬ３に示される複数個の暗号化方式Ｃ、Ｄ（図２（Ｄ））の中から、１個の使用暗号化方式を選択する。Ｓ２４での暗号化方式の選択は、任意の方法で行われるが、本実施例では、暗号化方式リストＣＬ３にて上位に示された暗号化方式Ｃが選択される。
【００６４】
Ｓ２６では、ＣＰＵ２１０は、使用暗号化方式、本実施例では、暗号化方式Ｃの通知を、サービス提供サーバ３００に対して送信する。なお、Ｓ２２、Ｓ２６の通信は、ＳＳＬ／ＴＬＳレイヤ間の通信である。
【００６５】
サービス提供サーバ３００が使用暗号化方式の通知を受信すると、Ｓ２８にて、サービス提供サーバ３００と、中継サーバ２００と、の間で通信確立処理が行われる。すなわち、サービス提供サーバ３００と、中継サーバ２００との間で、使用暗号化方式である暗号化方式Ｃを用いた暗号化通信を確立するための通信が、ＳＳＬ／ＴＬＳに従って実行される。この結果、暗号化通信を用いて、サービス提供サーバ３００と中継サーバ２００との間で、ＨＴＴＰリクエストやレスポンスの送受信が可能な状態となる。
【００６６】
Ｓ３０では、サービス提供サーバ３００のＣＰＵ３１０は、Ｓ２８にて確立された暗号化通信を用いて、管理対象のデバイスのステータスを要求するステータス要求を、中継サーバ２００に対して送信する。ステータス要求には、サービス提供サーバ３００を示す識別子であるサーバＩＤと、管理対象のデバイスを指定するための指定情報と、が含められる。ステータス要求は、ＨＴＴＰリクエストとして送信される。
【００６７】
なお、指定情報は、特定のデバイスを指定するための各デバイスＩＤとは異なる情報であって、ステータス要求の送信を要求する全てのデバイスを指定するための情報である。即ち、中継サーバ２００は、指定情報を受信することにより、サービス提供サーバ３００を示す利用サーバＩＤを送信する全てのデバイスに対して、ステータス要求を送信する。
【００６８】
中継サーバ２００が、ステータス要求を受信すると、Ｓ３２にて、ＣＰＵ２１０は、中継サーバ２００との間で通信が確立されたサービス提供サーバ３００の暗号化方式リストＣＬ３を登録する。具体的には、ＣＰＵ２１０は、ステータス要求に含まれるサーバＩＤと、Ｓ２２にて受信された暗号化方式リストＣＬ３とを、関連付けて、サーバテーブルＳＴに記録する。例えば、図２（Ｃ）に示すように、サービス提供サーバ３００を示すサーバＩＤ「ＳＶ１」と、サービス提供サーバ３００の暗号化方式リストＣＬ３と、を含むエントリＥ２が、記録される。なお、このエントリＥ２は、サービス提供サーバ３００との通信が切断された後も消去されない。このエントリＥ２は、次にサービス提供サーバ３００との通信が確立されたときに、暗号化方式リストＣＬ３の内容が更新されている場合には、更新される。
【００６９】
Ｓ３４では、ＣＰＵ２１０は、上述した図５の再確立判断処理を実行する。Ｓ３４の再確立判断処理では、確立された通信の相手、すなわち、直前のＳ３２にて登録された装置は、サービス提供サーバ３００である。したがって、図５のＳ１００では、確立された通信の相手は、サービス提供サーバであると判断される。この結果、ＣＰＵ２１０は、図５のＳ１３０〜Ｓ１５５の処理を実行する。以下、確立された通信の相手であるサービス提供サーバを、対象サーバとも呼ぶ。
【００７０】
Ｓ１３０では、ＣＰＵ２１０は、図２（Ｃ）のデバイステーブルＤＴを参照して、現在、中継サーバ２００との間で通信を確立中のデバイスのうち、対象サーバが使用サーバとして関連付けられているデバイスを特定する。対象サーバは、図３のＳ３４の再確立判断処理では、サービス提供サーバ３００である。したがって、デバイステーブルＤＴの複数個のエントリのうち、サービス提供サーバ３００のサーバＩＤ「ＳＶ１」を含むエントリＥ１に基づいて、デバイスＩＤ「Ｄ０１」のデバイス１００が特定される。Ｓ１３０では、複数個のデバイスが特定される場合も、デバイスが特定されない場合もあり得る。
【００７１】
Ｓ１３２では、ＣＰＵ２１０は、Ｓ１３０にてデバイスが特定されたか否かを判断する。デバイスが特定されない場合には（Ｓ１３２：ＮＯ）、ＣＰＵ２１０は、再確立判断処理を終了する。１個以上のデバイスが特定された場合には（Ｓ１３２：ＹＥＳ）、Ｓ１３５にて、ＣＰＵ２１０は、特定されたデバイスの中から、１個の判断対象のデバイスを選択する。
【００７２】
Ｓ１４０では、ＣＰＵ２１０は、判断対象のデバイスとの間で現在確立されている暗号化方式は、対象サーバの暗号化方式リストに含まれているか否かを判断する。図３のＳ３４の再確立判断処理では、対象サーバは、サービス提供サーバ３００である。また、判断対象のデバイスは、デバイス１００であり、デバイス１００との間で現在確立されている暗号化方式は、上述したように、暗号化方式Ａである。暗号化方式Ａは、サーバテーブルＳＴに登録済のサービス提供サーバ３００の暗号化方式リストＣＬ３（図２（Ｄ））に、含まれていない。したがって、この場合には、判断対象のデバイスとの間で現在確立されている暗号化方式は、対象サーバの暗号化方式リストに含まれていないと判断される。仮に、デバイス１００との間で現在確立されている暗号化方式は、上述したように、暗号化方式Ｃであるとする。暗号化方式Ｃは、サーバテーブルＳＴに登録済のサービス提供サーバ３００の暗号化方式リストＣＬ３（図２（Ｄ））に、含まれている。したがって、この場合には、判断対象のデバイスとの間で現在確立されている暗号化方式は、対象サーバの暗号化方式リストに含まれていると判断される。
【００７３】
判断対象のデバイスとの間で現在確立されている暗号化方式は、対象サーバの暗号化方式リストに含まれていない場合（Ｓ１４０：ＮＯ）、Ｓ１４５にて、ＣＰＵ２１０は、判断対象のデバイスとの間で再確立処理を行うと判断する。判断対象のデバイスとの間で現在確立されている暗号化方式は、対象サーバの暗号化方式リストに含まれている場合（Ｓ１４０：ＹＥＳ）、Ｓ１５０にて、ＣＰＵ２１０は、判断対象のデバイスとの間で再確立処理を行わないと判断する。
【００７４】
Ｓ１５５では、ＣＰＵ２１０は、Ｓ１３０にて特定された全てのデバイスについて、判断対象のデバイスとして処理したか否かを判断する。未処理のデバイスがある場合には（Ｓ１５５：ＮＯ）、ＣＰＵ２１０は、Ｓ１３５に戻って、未処理のデバイスを、判断対象のデバイスとして選択する。全てのデバイスについて処理した場合には（Ｓ１５５：ＹＥＳ）、ＣＰＵ２１０は、再確立判断処理を終了する。
【００７５】
図３のＳ３４の再確立判断処理が終了すると、図４のＳ３６に処理が進められる。再確立判断処理にて、デバイス１００との間の通信の再確立処理を行うと判断された場合には（Ｓ３６：ＹＥＳ）、Ｓ３８にて、ＣＰＵ２１０は、現在確立されている通信を用いて、再確立要求を、デバイス１００に対して送信する。再確立要求は、例えば、ＸＭＰＰ通信を用いて、アプリケーション間の通信として送信される。
【００７６】
Ｓ３９では、ＣＰＵ２１０は、デバイス１００との間で、現在、確立されている通信を切断する。例えば、中継サーバ２００が主体となって、ＴＣＰレイヤまたはＳＳＬ／ＴＬＳレイヤでの論理的な通信路の切断が行われる。なお、変形例としては、Ｓ３８にて、ＣＰＵ２１０は、再確立要求とともに、現在、現在確立されている通信の切断要求を、デバイス１００に送信しても良い。この場合には、切断要求を受信したデバイス１００が主体となって、現在確立されている通信の切断が実行される。また、別の変形例としては、現在、確立されている通信の切断を行うことなく、現在、確立されている通信を維持したまま、別の暗号化通信を再確立しても良い。
【００７７】
デバイス１００が再確立要求を受信すると、Ｓ４０にて、デバイス１００のＣＰＵ１１０は、該再確立要求に応じて、図１のＳ１０と同様の通信開始要求を、中継サーバ２００に対して送信する。通信開始要求には、図２（Ａ）の暗号化方式リストＣＬ１が含められる。
【００７８】
中継サーバ２００が暗号化方式リストＣＬ１を受信すると、Ｓ４２にて、ＣＰＵ２１０は、暗号化方式リストＣＬ１に示される複数個の暗号化方式Ａ、Ｃ（図２（Ａ））の中から、１個の使用暗号化方式を選択する。具体的には、通信開始要求には、送信元のＩＰアドレスとして、デバイス１００のデバイスＩＤとしてのグローバルＩＰアドレスを含んでいるので、ＣＰＵ２１０は、該グローバルＩＰアドレスを取得する。そして、デバイスＩＤとしてのグローバルＩＰアドレスに基づいて、デバイステーブルＤＴを参照して、デバイス１００の利用サーバ、図４の例では、サービス提供サーバ３００を特定する。さらに、ＣＰＵ２１０は、サーバテーブルＳＴを参照して、特定済の利用サーバの暗号化方式リスト、図４の例では、サービス提供サーバ３００の暗号化方式リストＣＬ３を特定する。そして、ＣＰＵ２１０は、図３のＳ１２とは異なり、特定済のサービス提供サーバ３００の暗号化方式リストＣＬ３に示される暗号化方式Ｃ、Ｄに基づいて、使用暗号化方式を選択する。具体的には、ＣＰＵ２１０は、サービス提供サーバ３００の暗号化方式リストＣＬ１に示される暗号化方式Ａ、Ｃのうち、暗号化方式リストＣＬ３に示される暗号化方式Ｃ、Ｄのいずれかと同一の暗号化方式を選択する。したがって、本実施例では、２個の暗号化方式リストＣＬ１、ＣＬ３の両方に含まれる暗号化方式Ｃが選択される。
【００７９】
なお、Ｓ４２にて、サービス提供サーバ３００の暗号化方式リストに示される暗号化方式のいずれもが、デバイス１００の暗号化方式リストに含まれない場合には、ＣＰＵ２１０は、１個の使用暗号化方式を選択できない。使用暗号化方式を選択できない場合には、ＣＰＵ２１０は、デバイス１００と中継サーバ２００との間では、通信の確立を許容しない。後述するＳ８２においても同様である。このために、例えば、この場合には、ＣＰＵ２１０は、Ｓ４４以降の処理を行わずに、例えば、デバイス１００と中継サーバ２００との双方に、エラー通知を送信する。
【００８０】
Ｓ４４では、ＣＰＵ２１０は、使用暗号化方式、本実施例では、暗号化方式Ｃの通知を、デバイス１００に対して送信する。なお、Ｓ４０、Ｓ４４の通信は、ＳＳＬ／ＴＬＳレイヤ間の通信である。
【００８１】
デバイス１００が使用暗号化方式の通知を受信すると、Ｓ４６にて、デバイス１００と、中継サーバ２００と、の間で通信確立処理が行われる。すなわち、デバイス１００と、中継サーバ２００との間で、使用暗号化方式である暗号化方式Ｃを用いた暗号化通信を確立するための通信が、ＳＳＬ／ＴＬＳに従って実行される。さらに、確立された暗号化通信上で、ＸＭＰＰ通信を確立するための通信が、ＸＭＰＰに従って実行される。この結果、デバイス１００と中継サーバ２００との間の通信が再確立される。
【００８２】
Ｓ４８では、ＣＰＵ１１０は、図３のＳ１８と同様に、確立された暗号化通信、および、暗号化通信上に確立されたＸＭＰＰ通信を用いて、デバイスＩＤと、利用サーバＩＤと、を中継サーバ２００に対して送信する。中継サーバ２００は、これらのデバイスＩＤと、利用サーバＩＤを受信することで、通信を再確立すべきデバイス（本実施例では、デバイス１００）との間で、通信が再確立されたことを、アプリケーションレベルで確認できる。
【００８３】
なお、Ｓ３４の再確立判断処理にて、デバイス１００との間の通信の再確立処理を行わないと判断された場合には（Ｓ３６：ＮＯ）、Ｓ３８〜Ｓ４８の処理は、行われない。
【００８４】
Ｓ５０では、中継サーバ２００のＣＰＵ２１０は、Ｓ３０でサービス提供サーバ３００から受信したステータス要求を、デバイス１００に対して送信する。デバイス１００がステータス要求を受信すると、Ｓ５２にて、ＣＰＵ１１０は、ステータス要求に応じて自身のステータスを取得する。Ｓ５４では、ＣＰＵ１１０は、該ステータスの通知を、中継サーバ２００に対して送信する。なお、Ｓ５０とＳ５４は、デバイス１００と中継サーバ２００との間の通信が再確立された場合には、再確立された通信を用いて行われる。Ｓ５４の後も、中継サーバ２００とデバイス１００との間の暗号化通信および暗号化通信上に確立されたＸＭＰＰ通信は、維持される。
【００８５】
中継サーバ２００がステータスの通知を受信すると、Ｓ５６では、ＣＰＵ２１０は、該ステータスの通知を、サービス提供サーバ３００に対して送信する。この結果、サービス提供サーバ３００は、管理対象のデバイスのステータスを取得できる。これらのステータスは、例えば、サービス提供サーバ３００を利用するデバイスの管理者の端末装置に送信される。ステータスの通知が、サービス提供サーバ３００に対して送信されると、中継サーバ２００とサービス提供サーバ３００との間の暗号化通信は、切断される。なお、Ｓ４８、Ｓ５０、Ｓ５４、Ｓ５６の通信は、装置１００、２００、３００のアプリケーション間の通信である。
【００８６】
図６、図７は、システム１０００の通信の一例を示すシーケンス図である。このシーケンス図は、中継サーバ２００に、サービス提供サーバ３００の暗号化方式リストＣＬ３が登録された後に、デバイス１００から中継サーバ２００に対してアクセスがある場合の例である。
【００８７】
先ず、デバイス１００と、中継サーバ２００と、の間に通信が確立されていない状態で、サービス提供サーバ３００が、デバイス１００を含む管理対象の複数個のデバイスのステータスを取得すべく、中継サーバ２００にアクセスすることとする。具体的には、図６のＳ６０〜Ｓ６８では、図３のＳ２２〜Ｓ３２と同じ処理が行われる。この結果、中継サーバ２００と、サービス提供サーバ３００と、の間で、暗号化方式Ｃを用いた暗号化通信が確立され、中継サーバ２００のサーバテーブルＳＴには、サービス提供サーバ３００の暗号化方式リストＣＬ３が登録される。
【００８８】
Ｓ６９では、図３のＳ３４と同様に、ＣＰＵ２１０は、図５の再確立判断処理を実行する。Ｓ６９の再確立判断処理では、デバイス１００と、中継サーバ２００と、の間に通信が確立されていないので、図５のＳ１３０で、デバイス１００は特定されない。このために、Ｓ６９の再確立判断処理では、デバイス１００についての再確立の判断は行われない。
【００８９】
Ｓ７０では、ＣＰＵ２１０は、ステータス取得不可の通知をサービス提供サーバ３００に対して送信する。ステータス取得不可の通知は、デバイス１００と中継サーバ２００との間に通信が確立されていないので、デバイス１００からステータスを取得できないことを示す通知である。ステータス取得不可の通知が、サービス提供サーバ３００に対して送信されると、中継サーバ２００とサービス提供サーバ３００との間の暗号化通信は、切断される。
【００９０】
その後、例えば、デバイス１００の電源が投入されて、デバイス１００が、中継サーバ２００にアクセスするとする。具体的には、図６のＳ７１〜Ｓ７６では、図３のＳ１０〜Ｓ２０と同じ処理が行われる。この結果、デバイス１００と、中継サーバ２００と、の間で、暗号化方式Ａを用いた暗号化通信と、該暗号化通信上のＸＭＰＰ通信と、が確立される。また、中継サーバ２００のデバイステーブルＤＴには、デバイス１００が登録される。
【００９１】
続く図７のＳ７７では、ＣＰＵ２１０は、図５の再確立判断処理を実行する。Ｓ７７の再確立判断処理では、この時点で、サービス提供サーバ３００の暗号化方式リストＣＬ３が、サーバテーブルＳＴに登録されているので、図５のＳ１１０にて、暗号化方式リストＣＬ３は登録済みであると判断される。そして、デバイス１００と中継サーバ２００との間に確立されている通信で用いられている暗号化方式は、暗号化方式Ａであるので、図５のＳ１１５では、暗号化方式リストＣＬ３には、現在、対象デバイスとの間で確立されている通信で用いられている暗号化方式はない、と判断される（Ｓ１１５：ＮＯ）。この結果、Ｓ１２０にて、デバイス１００との間で、通信の再確立処理を行うと判断される。仮に、デバイス１００と中継サーバ２００との間に確立されている通信で用いられている暗号化方式は、暗号化方式Ｃであれば、図５のＳ１１５では、暗号化方式リストＣＬ３には、現在、対象デバイスとの間で確立されている通信で用いられている暗号化方式はある、と判断される（Ｓ１１５：ＹＥＳ）。この場合には、図５のＳ１２５にて、デバイス１００との間で、通信の再確立処理を行わないと判断される。
【００９２】
図７のＳ７７の再確立判断処理にて、デバイス１００との間の通信を再確立すると判断された場合には（Ｓ７８：ＹＥＳ）、Ｓ７９〜Ｓ８５にて、図４のＳ３８〜Ｓ４８と同じ処理が行われる。この結果、デバイス１００と中継サーバ２００との間の通信が再確立される。
【００９３】
なお、Ｓ７７の再確立判断処理にて、デバイス１００との間の通信の再確立処理を行わないと判断された場合には（Ｓ７８：ＮＯ）、Ｓ７９〜Ｓ８５の処理は、行われない。
【００９４】
この後に、サービス提供サーバ３００から中継サーバ２００にアクセスがあった場合には、図３のＳ２２以降の処理が行われる。
【００９５】
以上説明した本実施例によれば、中継サーバ２００は、サービス提供サーバ３００が使用可能な１個以上の第１暗号化方式（具体的には、暗号化方式リストＣＬ３に示される暗号化方式Ｃ、Ｄ）から選択される暗号化方式を用いて、サービス提供サーバ３００との間に、第１暗号化通信を確立する（図３のＳ２２〜Ｓ２８、図６のＳ６０〜Ｓ６６）。そして、中継サーバ２００は、デバイス１００から、デバイス１００が使用可能な複数個の暗号化方式を示す暗号化方式リストＣＬ１を受信する（図４のＳ４０、図７のＳ８１）。そして、中継サーバ２００は、第１暗号化通信が確立された後に、サービス提供サーバ３００が使用可能な１個以上の第１暗号化方式に基づいて、暗号化方式リストＣＬ１に示される複数個の暗号化方式（具体的には、暗号化方式Ａ、Ｃ）の中から第２暗号化方式を選択する（図４のＳ４２、図７のＳ８２）。選択される第２暗号化方式は、１個以上の第１暗号化方式のいずれかと同一の暗号化方式（具体的には、暗号化方式Ｃ）である。そして、第２暗号化方式を用いて、デバイス１００との間に、第２暗号化通信が確立される（図４のＳ４６、図７のＳ８４）。そして、中継サーバ２００は、第１暗号化通信と第２暗号化通信とを用いて、サービス提供サーバ３００とデバイス１００との間の通信を中継する（図４のＳ５０、Ｓ５４、Ｓ５６）。
【００９６】
上記構成によれば、サービス提供サーバ３００が使用可能な１個以上の第１暗号化方式に基づいて、デバイス１００との間に確立すべき第２暗号化通信の第２暗号化方式が選択される。そして、第２暗号化方式には、第１暗号化方式と同一の暗号化方式が選択される。したがって、第１暗号化方式と比較して、第２暗号化方式のセキュリティレベルが低くなることを抑制することができる。したがって、中継サーバ２００が、デバイス１００とサービス提供サーバ３００との間の通信を中継する場合に、デバイス１００とサービス提供サーバ３００との間の通信のセキュリティレベルを、必要なレベル（例えば、サービス提供サーバ３００が要求するレベル）に維持することができる。
【００９７】
より具体的に説明すると、暗号化方式リストＣＬ３に示される１個以上の第１暗号化方式は、サービス提供サーバ３００の運営者が維持すべきと考えているセキュリティレベルに基づいて設定されている。しかしながら、デバイス１００と中継サーバ２００との間の第２暗号化通信の第２暗号化方式が、１個以上の第１暗号化方式のいずれかと異なる暗号化方式、特に、１個以上の第１暗号化方式よりセキュリティレベルより低いセキュリティレベルの暗号化方式であるとする。そうすると、中継サーバ２００を介して行われるデバイス１００とサービス提供サーバ３００との通信のセキュリティレベルは、サービス提供サーバ３００の運営者が維持すべきと考えているセキュリティレベルより低くなってしまう。本実施例では、第２暗号化通信に用いられる第２暗号化方式は、１個以上の第１暗号化方式と同一の暗号化方式とされる。この結果、中継サーバ２００を介して行われるデバイス１００とサービス提供サーバ３００との通信のセキュリティレベルを、サービス提供サーバ３００の運営者が維持すべきと考えているセキュリティレベルに維持することができる。
【００９８】
また、中継サーバ２００は、サービス提供サーバ３００との暗号化通信が確立される度に、サービス提供サーバ３００の暗号化方式リストＣＬ３を登録する（図３のＳ３２、図６のＳ６８）。この結果、サービス提供サーバ３００が使用可能な１個以上の第１の暗号化方式を、常に、適切に認識できる。したがって、例えば、サービス提供サーバ３００が、セキュリティの強化などのために、使用可能な１個以上の第１の暗号化方式を変更した場合であっても、中継サーバ２００を介して行われるデバイス１００とサービス提供サーバ３００との通信のセキュリティレベルを、サービス提供サーバ３００の運営者が維持すべきと考えているセキュリティレベルに維持することができる。
【００９９】
さらに、中継サーバ２００は、第２暗号化方式（具体的には、暗号化方式Ｃ）とは異なる第３暗号化方式（具体的には、暗号化方式Ａ）を用いて、デバイス１００との間に、第３暗号化通信を確立する（図３のＳ１６、図６のＳ７４）。中継サーバ２００は、第３暗号化通信を用いて、デバイス１００から特定の情報（具体的には、デバイスＩＤ、利用サーバＩＤ）を受信する（図３のＳ１８、図６のＳ７５）。そして、中継サーバ２００は、特定の情報を受信した後に、第２暗号化通信を確立する（図４のＳ４６、図７のＳ８４）。
【０１００】
このように、一旦、第３暗号化通信が確立された後であっても、その後に第２暗号化通信が確立される。したがって、例えば、第３暗号化通信のセキュリティレベルが比較的低い場合であっても、第２暗号化通信が新たに確立されることで、デバイス１００とサービス提供サーバ３００との間の通信のセキュリティレベルを、必要なレベルに維持することができる。
【０１０１】
さらに、中継サーバ２００は、図５の再確立判断処理において、１個以上の第１暗号化方式（暗号化方式リストＣＬ３に示される暗号化方式）と、第３暗号化方式とを比較している（図５のＳ１１５、Ｓ１４０）。この結果、第３暗号化方式が、第１暗号化方式と同一の暗号化方式である場合には（Ｓ１１５：ＹＥＳ、Ｓ１４０：ＹＥＳ）、再確立処理は行われない（Ｓ１２５、Ｓ１５０）。すなわち、第２暗号化通信は確立されずに、第３暗号化通信が維持される。一方、第３暗号化方式が、第１暗号化方式と異なる暗号化方式である場合には（Ｓ１１５：ＮＯ、Ｓ１４０：ＮＯ）、再確立処理が行われる（Ｓ１２０、Ｓ１４５）。すなわち、デバイス１００との間で再確立処理が行われて、第２暗号化通信が確立される（図４のＳ４６、図７のＳ８４）。この結果、第２暗号化通信を確立する必要がない場合には、第２暗号化通信を確立しないので、無駄な処理の実行を抑制できる。
【０１０２】
中継サーバ２００は、第３暗号化通信を用いて、デバイス１００から受信される特定の情報（具体的には、デバイスＩＤ、利用サーバＩＤ）を用いて、中継サーバ２００が通信を中継すべきデバイス１００とサービス提供サーバ３００とを関連付ける（図３のＳ２０、図６のＳ７６、デバイステーブルＤＴ）。この結果、例えば、中継サーバ２００が複数個のデバイスと複数個のサービス提供サーバとの通信を中継する装置である場合でも、デバイス１００とサービス提供サーバ３００とを適切に関連付けることができる。したがって、その後に、デバイス１００とサービス提供サーバ３００との間の通信を再確立するか否かを適切に判断できる。
【０１０３】
さらに、中継サーバ２００は、第３暗号化通信が切断された後に（図４のＳ３９、図７のＳ８０）、第２暗号化通信を確立する（図４のＳ４６、図７のＳ８４）。こうすれば、セキュリティレベルに問題がある第３暗号化通信が切断されるので、より確実にデバイス１００とサービス提供サーバ３００との間の通信のセキュリティレベルを、必要なレベルに維持することができる。
【０１０４】
さらに、中継サーバ２００は、１個以上の第１暗号化方式を示す暗号化方式リストＣＬ３を、サービス提供サーバ３００を示す識別子（具体的には、サーバＩＤ）と、関連付けて、サーバテーブルＳＴに記憶する（図３のＳ３２、図６のＳ６８）。中継サーバ２００は、サービス提供サーバ３００を示す識別子（具体的には、利用サーバＩＤ）およびデバイス識別子（デバイスＩＤ）を、デバイス１００から受信する（図３のＳ１８、図６のＳ７５）。中継サーバ２００は、図５の再確立判断処理にて、これらの識別子を用いて、判断に使用すべき暗号化方式リストＣＬ３を特定する、すなわち、１個以上の第１暗号化方式を特定する。そして、その後に行われる再確立処理では、特定される第１暗号化方式に基づいて、第２暗号化方式が選択される（図４のＳ４２、図７のＳ８２）。
【０１０５】
上記構成によれば、例えば、中継サーバ２００が複数個のデバイスと複数個のサービス提供サーバとの通信を中継する装置である場合でも、中継サーバ２００は、サービス提供サーバ３００を示す識別子およびデバイス１００の識別子を用いて、適切な第１暗号化方式を特定できるので、適切な第２暗号化方式を選択することができる。
【０１０６】
また、第１暗号化通信および前記第２暗号化通信は、アプリケーション層に属するアプリケーション間の通信（具体的には、ステータス要求、ステータスの通知の送受信）に用いられる。暗号化方式リストＣＬ３の送受信は、該アプリケーションより下位の層（具体的には、ＳＳＬ／ＴＬＳレイヤ）での通信を用いて行われる。この結果、アプリケーションに特別な仕組みを設けなくとも、アプリケーション間の通信のセキュリティレベルを、必要なレベルに維持することができる。
【０１０７】
また、中継サーバ２００は、第２暗号化通信を用いて、デバイス１００から、デバイス１００のステータスを示す情報を受信し（図４のＳ５４）、第１暗号化通信を用いて、該ステータスを示す情報を、サービス提供サーバ３００に対して送信する（図４のＳ５６）。デバイス１００のステータスは、例えば、課金等に用いられるため、秘密情報として扱われるべき情報も多い。本実施例では、中継サーバ２００は、適切なセキュリティレベルの通信にて、これら情報の中継を行うことができる。
【０１０８】
Ｂ.第２実施例：
第２実施例の中継サーバ２００の不揮発性記憶装置２２０は、図１に破線で示す参照情報ＲＩを格納している。参照情報ＲＩは、暗号化方式に含まれる複数項目のアルゴリズムのうちの少なくとも１つの項目について、該項目に属する複数種類のアルゴリズムのセキュリティレベルの順序を示す情報である。
【０１０９】
図８は、参照情報ＲＩの一例を示す図である。この参照情報ＲＩには、鍵交換アルゴリズムと、暗号化アルゴリズムについて、セキュリティレベルの順序が示されている。例えば、鍵交換アルゴリズムについては、「ＥＣＤＨＥ」＞「ＤＨＥ」＞「ＲＳＡ」の順に、セキュリティレベルが高いことが示されている。また、暗号化アルゴリズムについては、「ＡＥＳ」＞「３ＤＥＳ」＞「ＤＥＳ」の順に、セキュリティレベルが高いことが示されている。なお、セキュリティレベルの高低は、一意に決まっているものではなく、例えば、どのような脅威に対するセキュリティを重視するかなどの考え方によって異なり得る。また、セキュリティレベルの高低は、特定のアルゴリズムの脆弱性の発見などによって、将来において変動し得る。このために参照情報ＲＩは、定期的に、中継サーバ２００の運営者によって見直される。
【０１１０】
第２実施例では、再確立判断処理において、参照情報ＲＩを用いる。図９は、第２実施例の再確立判断処理のフローチャートである。図９の再確立判断処理では、図５の再確立判断処理のＳ１１５、および、Ｓ１４０に代えて、Ｓ１１５ｂ、および、Ｓ１４０ｂが実行される。図９の再確立判断処理の他の処理は、図５の再確立判断処理と同じである。
【０１１１】
Ｓ１１５ｂでは、対象デバイス（例えば、デバイス１００）との間で現在確立されている暗号化方式は、利用サーバ（例えば、サービス提供サーバ３００）の暗号化方式リスト（例えば、暗号化方式リストＣＬ３）に示される暗号化方式以上のセキュリティレベルであるか否かを判断する。
【０１１２】
この判断の具体的な方法の一例を説明する。ＣＰＵ２１０は、現在の鍵交換アルゴリズムおよび暗号化アルゴリズム、すなわち、現在確立されている暗号化方式に含まれる鍵交換アルゴリズムと、暗号化アルゴリズムと、を特定する。例えば、現在確立されている暗号化方式が、暗号化方式Ａ（図２（Ａ））である場合には、鍵交換アルゴリズムとして「ＲＳＡ」が特定され、暗号化アルゴリズムとして「ＡＥＳ」が特定される。さらに、ＣＰＵ２１０は、利用サーバの最低レベルの鍵交換アルゴリズムおよび暗号化アルゴリズム、すなわち、利用サーバの暗号化方式リストに示される１個以上の暗号化方式の鍵交換アルゴリズムのうちの最も低いセキュリティレベルのアルゴリズムと、暗号アルゴリズムのうちの最も低いセキュリティレベルのアルゴリズムと、を特定する。例えば、利用サーバの暗号化方式リストが、サービス提供サーバ３００の暗号化方式リストＣＬ３（図２（Ｄ））である場合には、最低レベルの鍵交換アルゴリズムとして「ＤＨＥ」が特定され、暗号化アルゴリズムとして「ＡＥＳ」が特定される。
【０１１３】
ＣＰＵ２１０は、参照情報ＲＩ（図８）を参照して、現在の鍵暗号アルゴリズムのセキュリティレベルが、利用サーバの最低レベルの鍵暗号アルゴリズム以上であり、かつ、現在の暗号化アルゴリズムのセキュリティレベルが、利用サーバの最低レベルの暗号化アルゴリズム以上であるか否かを判断する。この判断結果が肯定的である場合には、ＣＰＵ２１０は、現在確立されている暗号化方式は、利用サーバの暗号化方式リストに示される暗号化方式以上のセキュリティレベルであると判断する。この判断結果が否定的である場合には、ＣＰＵ２１０は、現在確立されている暗号化方式は、利用サーバの暗号化方式リストに示される暗号化方式より低いセキュリティレベルであると判断する。
【０１１４】
例えば、現在確立されている暗号化方式が、暗号化方式Ａ（図２（Ａ））であり、利用サーバの暗号化方式リストが、暗号化方式リストＣＬ３（図２（Ｄ））である場合を考える。この場合には、暗号化方式Ａの鍵交換アルゴリズム「ＲＳＡ」は、暗号化方式リストＣＬ３の最低レベルの鍵交換アルゴリズム「ＤＨＥ」よりセキュリティレベルが低い（図９の参照情報ＲＩ）。したがって、この場合には、現在確立されている暗号化方式は、利用サーバの暗号化方式リストに示される暗号化方式より低いセキュリティレベルであると判断される。
【０１１５】
Ｓ１４０ｂでは、ＣＰＵ２１０は、判断対象のデバイス（例えば、サービス提供サーバ３００）との間で現在確立されている暗号化方式は、対象サーバ（例えば、サービス提供サーバ３００）の暗号化方式リスト（例えば、暗号化方式リストＣＬ３）に示される暗号化方式以上のセキュリティレベルであるか否かを判断する。具体的な判断方法は、上述した１１５ｂと同じである。
【０１１６】
さらに、第２実施例では、図４のＳ４２と、図７のＳ８２と、の再確立時の使用暗号化方式の選択の方法が第１実施例と異なる。
【０１１７】
Ｓ４２とＳ８２とでは、ＣＰＵ２１０は、デバイス１００から受信した暗号化方式リストＣＬ１に示される複数個の暗号化方式の中から、１個の使用暗号化方式を選択する。このとき、ＣＰＵ２１０は、第１実施例と同様に、サーバテーブルＳＴに登録された利用サーバであるサービス提供サーバ３００の暗号化方式リストＣＬ３に示される暗号化方式に基づいて、使用暗号化方式を選択する。ただし、具体的な方法が第１実施例とは異なる。第２実施例では、ＣＰＵ２１０は、デバイス１００の暗号化方式リストＣＬ１に示される複数個の暗号化方式の中から、サービス提供サーバ３００の暗号化方式リストＣＬ３に示される暗号化方式以上のセキュリティレベルである暗号化方式を選択する。
【０１１８】
具体的には、ＣＰＵ２１０は、上述したＳ１１５ｂの処理と同様に、サービス提供サーバ３００の最低レベルの鍵交換アルゴリズムおよび暗号化アルゴリズムと、を特定する。そして、ＣＰＵ２１０は、デバイス１００から受信した暗号化方式リストＣＬ１に示される複数個の暗号化方式の中から、特定された最低レベルの鍵交換アルゴリズム以上のセキュリティレベルである鍵交換アルゴリズムを含み、かつ、最低レベルの暗号化アルゴリズム以上のセキュリティレベルである暗号化アルゴリズムを含む暗号化方式を、使用暗号化方式として選択する。
【０１１９】
例えば、上述したように、サービス提供サーバ３００では、最低レベルの鍵交換アルゴリズムは「ＤＨＥ」であり、最低レベルの暗号化アルゴリズムは「ＡＥＳ」である。したがって、暗号化方式リストＣＬ１に示される暗号化方式Ａ、Ｃのうち、暗号化方式Ｃが使用暗号化方式として選択される。
【０１２０】
なお、第２実施例において、Ｓ４２、Ｓ８２にて、サービス提供サーバ３００の暗号化方式リストに示される暗号化方式以上のセキュリティレベルである暗号化方式が、デバイス１００の暗号化方式リストに含まれない場合には、ＣＰＵ２１０は、１個の使用暗号化方式を選択できない。使用暗号化方式を選択できない場合には、第１実施例と同様に、ＣＰＵ２１０は、デバイス１００と中継サーバ２００との間では、通信の確立を許容しない。
【０１２１】
以上説明した第２実施例によれば、第１実施例と同様に、中継サーバ２００は、サービス提供サーバ３００が使用可能な１個以上の第１暗号化方式（具体的には、暗号化方式リストＣＬ３に示される暗号化方式Ｃ、Ｄ）から選択される暗号化方式を用いて、サービス提供サーバ３００との間に、第１暗号化通信を確立する（図３のＳ２２〜Ｓ２８、図６のＳ６０〜Ｓ６６）。そして、中継サーバ２００は、デバイス１００から、デバイス１００が使用可能な複数個の暗号化方式を示す暗号化方式リストＣＬ１を受信する（図４のＳ４０、図７のＳ８１）。そして、中継サーバ２００は、第１暗号化通信が確立された後に、サービス提供サーバ３００が使用可能な１個以上の第１暗号化方式に基づいて、暗号化方式リストＣＬ１に示される複数個の暗号化方式（具体的には、暗号化方式Ａ、Ｃ）の中から第２暗号化方式を選択する（図４のＳ４２、図７のＳ８２）。そして、第２暗号化方式を用いて、デバイス１００との間に、第２暗号化通信が確立される（図４のＳ４６、図７のＳ８４）。中継サーバ２００は、第１暗号化通信と第２暗号化通信とを用いて、サービス提供サーバ３００とデバイス１００との間の通信を中継する（図４のＳ５０、Ｓ５４、Ｓ５６）。ここで、第２実施例では、選択される第２暗号化方式は、１個以上の第１暗号化方式以上のセキュリティレベルである暗号化方式である。この結果、第１実施例と同様に、デバイス１００とサービス提供サーバ３００との間の通信のセキュリティレベルを、必要なレベルに維持することができる。さらに、第２暗号化方式は、第１暗号化方式と同一の暗号化方式に限らず、第１暗号化方式以上のセキュリティレベルである暗号化方式であれば良いので、例えば、デバイスの使用可能な暗号化方式の中に選択できる暗号化方式がないために、暗号化方式が選択できなくなることを抑制できる。
【０１２２】
さらに、第２実施例によれば、中継サーバ２００は、図９の再確立判断処理において、デバイスとの間に確立中の暗号化方式（すなわち、第３暗号化方式）が、第１暗号化方式以上のセキュリティレベルである暗号化方式である場合には（Ｓ１１５ｂ：ＹＥＳ、Ｓ１４０ｂ：ＹＥＳ）、再確立処理は行われない（Ｓ１２５、Ｓ１５０）。すなわち、第２暗号化通信は確立されずに、第３暗号化通信が維持される。一方、第３暗号化方式が、第１暗号化方式よりセキュリティレベルが低い暗号化方式である場合には（Ｓ１１５ｂ：ＮＯ、Ｓ１４０ｂ：ＮＯ）、再確立処理が行われる（Ｓ１２０、Ｓ１２０）。すなわち、デバイス１００との間で再確立処理が行われて、第２暗号化通信が確立される（図４のＳ４６、図７のＳ８４）。この結果、第２暗号化通信を確立する必要がない場合には、第２暗号化通信を確立しないので、無駄な処理の実行を抑制できる。
【０１２３】
さらに、第２実施例によれば、暗号化方式の複数項目のアルゴリズムのうちの２個の項目（具体的には、鍵交換アルゴリズムと暗号化アルゴリズム）について、第１暗号化方式に含まれるアルゴリズム以上のセキュリティレベルであるアルゴリズムを含む暗号化方式が、再確立時の第２暗号化方式として選択される。したがって、複数項目のアルゴリズムのうちの２個の項目について、デバイス１００と中継サーバ２００との間の通信、引いては、中継サーバ２００を介して行われるデバイス１００とサービス提供サーバ３００との間の通信のセキュリティレベルを、必要なレベルに維持することができる。
【０１２４】
Ｂ．変形例：
（１）上記実施例では、１度、デバイス１００と中継サーバ２００との間で、第３暗号化通信が確立された（例えば、図６のＳ７１〜Ｓ７４）後、再確立が行われて第２暗号化通信が確立されている（例えば、図７のＳ７９〜Ｓ８４）。これは、中継サーバ２００のアプリケーションは、第３暗号化通信を用いて、Ｓ７５で送信されるデバイスＩＤおよび利用サーバＩＤを受信したときに、中継サーバ２００が、デバイス１００の利用サーバを初めて認識するので、一旦、第３暗号化通信を確立する必要があるからである。これに代えて、例えば、デバイス１００は、サーバＩＤや利用サーバＩＤを、Ｓ７１の通信開始要求に含めて、中継サーバ２００に送信しても良い。すなわち、ＳＳＬ／ＴＬＳレイヤの通信で、サーバＩＤや利用サーバＩＤの送受信が行われても良い。こうすれば、中継サーバ２００は、この時点で、デバイス１００の利用サーバを認識して、登録済みの利用サーバの暗号化方式リストを参照できる。したがって、Ｓ７２の時点で、利用サーバの第１暗号化方式に基づいて、第２暗号化方式を選択しても良い。この場合には、第３暗号化通信を確立することなく、最初から第２暗号化通信を確立できる。
【０１２５】
（２）上記第１実施例の図５の再確立判断処理では、利用サーバの暗号化リストが登録済である場合に、第３暗号化方式が、利用サーバの暗号化方式リストに示される第１暗号化方式と同一であるか否かを判断することによって、再確立を行うか否かが判断されている（図５のＳ１１５、Ｓ１４０）。これに代えて、利用サーバの暗号化リストが登録済である場合には、第３暗号化方式がどのような方式であるかに拘わらずに、常に再確立が行われても良い。
【０１２６】
（４）上記実施例では、デバイス１００からデバイスＩＤと利用サーバＩＤが、中継サーバ２００に送信され（図３のＳ１８等）、当該利用サーバＩＤと利用サーバＩＤとが関連付けられて、デバイステーブルＤＴに登録される（図３のＳ２０等）。これによって、中継サーバ２００は、デバイス１００と、サービス提供サーバ３００の暗号化方式リストＣＬ３、すなわち、サービス提供サーバ３００の１個以上の第１暗号化方式と、の対応を特定できる（図５のＳ１３０、Ｓ１０５）。これに代えて、図３のＳ３０にて、サービス提供サーバ３００から、サーバＩＤとともに、管理対象のデバイスＩＤが送信されても良い。そして、サーバＩＤおよびサーバの暗号化リストとともに、管理対象のデバイスＩＤが、サーバテーブルＳＴに登録されても良い。そして、これによって、デバイス１００と、サービス提供サーバ３００の１個以上の第１暗号化方式と、の対応が特定されても良い。あるいは、上述したサービス提供サーバ３００から送信される指定情報が、サーバＩＤおよびサーバの暗号化リストとともに、サーバテーブルＳＴに登録されても良い。そして、これによって、指定情報によって指定される全てのデバイスと、サービス提供サーバ３００の１個以上の第１暗号化方式と、の対応が特定されても良い。
【０１２７】
（５）上記第１実施例では、図４のＳ４２や、図７のＳ８２において、サービス提供サーバ３００が使用可能な第１暗号化方式と完全に同一の第２暗号化方式が選択される。これに代えて、複数項目のアルゴリズムのうちの一部の項目、例えば、鍵交換アルゴリズムと、暗号化アルゴリズムについて、第１暗号化方式に含まれるアルゴリズムと同一のアルゴリズムを含む第２暗号化方式を選択しても良い。
【０１２８】
また、上記第２実施例では、図４のＳ４２や、図７のＳ８２において、複数項目のアルゴリズムのうちの２個の項目について、サービス提供サーバ３００が使用可能な１個以上の第１暗号化方式以上のセキュリティレベルである第２暗号化方式が選択される。これに代えて、複数項目のアルゴリズムのうちの全ての項目について、あるいは、１個の項目について、１個以上の第１暗号化方式以上のセキュリティレベルである第２暗号化方式が選択されても良い。
【０１２９】
一般的には、複数項目のアルゴリズムのうちの少なくとも１つの項目について、１個以上の第１暗号化方式に含まれるアルゴリズムと同一のアルゴリズムを含む第２暗号化方式、または、１個以上の第１暗号化方式以上のセキュリティレベルである第２暗号化方式が選択されることが好ましい。こうすれば、複数項目のアルゴリズムのうちの少なくとも１つの項目について、デバイス１００とサービス提供サーバ３００との間の通信のセキュリティレベルを、必要なレベルに維持することができる。
【０１３０】
（６）上記実施例では、通信を再確立する処理（図４のＳ４６、図７のＳ８４）では、最初に通信を確立する際と、同様の処理を行っている。これに代えて、例えば、再確立時に、認証アルゴリズムを変更する必要がない場合には、例えば、中継サーバ２００の認証を再度行うことなく、鍵交換などの他の処理のみを再度行うことで、通信の再確立を行っても良い。
【０１３１】
（７）デバイス１００と、サービス提供サーバ３００と、のアプリケーション間で、中継サーバ２００を介して送受信される情報は、ステータスを示す情報に限らず、例えば、画像データや、印刷データなどの他の情報であっても良い。
【０１３２】
（８）中継サーバ２００や、サービス提供サーバ３００は、ネットワークを介して互いに通信可能な複数個の装置（例えば、コンピュータ）を含む、いわゆるクラウドサーバであっても良い。
【０１３３】
（９）上記各実施例において、ハードウェアによって実現されていた構成の一部をソフトウェアに置き換えるようにしてもよく、逆に、ソフトウェアによって実現されていた構成の一部あるいは全部をハードウェアに置き換えるようにしてもよい。
【０１３４】
以上、実施例、変形例に基づき本発明について説明してきたが、上記した発明の実施の形態は、本発明の理解を容易にするためのものであり、本発明を限定するものではない。本発明は、その趣旨並びに特許請求の範囲を逸脱することなく、変更、改良され得ると共に、本発明にはその等価物が含まれる。
【符号の説明】
【０１３５】
７０...ＬＡＮ、８０...インターネット、１００...デバイス、１１０...ＣＰＵ、１２０...不揮発性記憶装置、１３０...揮発性記憶装置、１３１...バッファ領域、１４０...プリンタ部、１５０...スキャナ部、１６０...操作部、１７０...表示部、１８０...ネットワークＩＦ、２００...中継サーバ、２１０...ＣＰＵ、２２０...不揮発性記憶装置、２３０...揮発性記憶装置、２３１...バッファ領域、２８０...ネットワークＩＦ、３００...サービス提供サーバ、３１０...ＣＰＵ、３２０...不揮発性記憶装置、３３０...揮発性記憶装置、３３１...バッファ領域、３８０...ネットワークＩＦ、１０００...システム
【図１】
0006686350.tif 000002
【図２】
0006686350.tif 000003
【図３】
0006686350.tif 000004
【図４】
0006686350.tif 000005
【図５】
0006686350.tif 000006
【図６】
0006686350.tif 000007
【図７】
0006686350.tif 000008
【図８】
0006686350.tif 000009
【図９】
0006686350.tif 000010