(57)【要約】【課題】  端末装置の性能および端末装置とサーバとの間の通信品質に応じて最適な通信方式と暗号方式を決定する。【解決手段】  サーバは、通信機能を有する装置から該装置の位置情報と時刻情報を含む第１の通信データを受信し、記憶部に記憶されている通信方式の情報に基づき当該サーバが利用可能な通信方式を決定し、前記時刻情報と前記第1の通信データの受信時刻情報を用いて、前記装置の性能および通信品質に関わるデータを算出し、該データと前記位置情報を用いて前記装置との通信で利用する暗号方式を決定し、決定した前記通信方式および前記暗号方式の情報を含む第２の通信データを前記装置へ送信する。【選択図】図３
2016201675.tif 000002
【特許請求の範囲】
【請求項１】
サーバにより、
通信機能を有する装置から該装置の位置情報と時刻情報を含む第１の通信データを受信し、
記憶部に記憶されている通信方式の情報に基づき当該サーバが利用可能な通信方式を決定し、
前記時刻情報と前記第1の通信データの受信時刻情報を用いて、前記装置の性能および通信品質に関わるデータを算出し、
該データと前記位置情報を用いて前記装置との通信で利用する暗号方式を決定し、
決定した前記通信方式および前記暗号方式の情報を含む第２の通信データを前記装置へ送信する、
ことを特徴とする通信方法。
【請求項２】
前記サーバにより、
前記第１の通信データの受信時刻と前記時刻情報との差分時間を算出し、
該差分時間と前記位置情報を用いて前記装置との通信で利用する前記暗号方式を決定する、
ことを特徴とする請求項１に記載の通信方法。
【請求項３】
前記サーバにより、
前記通信機能を有する前記装置から、第１の証明書と、署名が付与された前記位置情報および前記時刻情報と、を含む前記第１の通信データを受信し、
該第１の通信データの受信時刻を取得し、
前記第１の証明書と前記署名を検証し、
前記記憶部に記憶されている前記通信方式の情報に基づき当該サーバが利用可能な前記通信方式を決定し、
前記第１の通信データの受信時刻と前記時刻情報との差分時間を算出し、
該差分時間と前記位置情報を用いて前記装置との通信で利用する前記暗号方式を決定し、
決定した前記通信方式および前記暗号方式に署名を付与し、
該署名が付与された前記暗号方式および前記通信方式と、第２の証明書の情報と、を含む前記第２の通信データを前記装置へ送信する、
ことを特徴とする請求項２に記載の通信方法。
【請求項４】
前記サーバにより、
前記第１の通信データの前記受信時刻と前記時刻情報に基づき、前記装置において前記署名の処理に要した時間と、前記装置から当該サーバへの前記第１の通信データの送信時間との合計時間を前記差分時間として算出する、
ことを特徴とする請求項３に記載の通信方法。
【請求項５】
前記サーバにより、
前記記憶部に記憶されている、前記位置情報に応じた前記暗号方式の情報および前記差分時間に応じた前記暗号方式の情報に基づき、前記装置との通信で利用する前記暗号方式を決定する、
ことを特徴とする請求項４に記載の通信方法。
【請求項６】
通信方式の情報を記憶する記憶部と演算処理部とを具備し、
前記演算処理部は、
通信機能を有する装置から該装置の位置情報と時刻情報を含む第１の通信データを受信し、
記憶部に記憶されている通信方式の情報に基づき当該サーバが利用可能な通信方式を決定し、
前記時刻情報と前記第1の通信データの受信時刻情報を用いて、前記装置の性能および通信品質に関わるデータを算出し、
該データと前記位置情報を用いて前記装置との通信で利用する暗号方式を決定し、
決定した前記通信方式および前記暗号方式の情報を含む第２の通信データを前記装置へ送信する、
ことを特徴とするサーバ。
【請求項７】
前記演算処理部は、
前記第１の通信データの受信時刻と前記時刻情報との差分時間を算出し、
該差分時間と前記位置情報を用いて前記装置との通信で利用する前記暗号方式を決定する、
ことを特徴とする請求項６に記載のサーバ。
【請求項８】
前記演算処理部は、
前記通信機能を有する前記装置から、第１の証明書と、署名が付与された前記位置情報および前記時刻情報と、を含む前記第１の通信データを受信し、
前記第１の通信データの受信時刻を取得し、
前記第１の証明書と前記署名を検証し、
前記記憶部に記憶されている前記通信方式の情報に基づき当該サーバが利用可能な前記通信方式を決定し、
前記第１の通信データの受信時刻と前記時刻情報との差分時間を算出し、
該差分時間と前記位置情報を用いて前記装置との通信で利用する前記暗号方式を決定し、
決定した前記通信方式および前記暗号方式に署名を付与し、
該署名が付与された前記暗号方式および前記通信方式と、第２の証明書の情報と、を含む前記第２の通信データを前記装置へ送信する、
ことを特徴とする請求項７に記載のサーバ。
【請求項９】
前記演算処理部は、
前記第１の通信データの前記受信時刻と前記時刻情報に基づき、前記装置において前記署名の処理に要した時間と、前記装置から当該サーバへの前記第１の通信データの送信時間との合計時間を前記差分時間として算出する、
ことを特徴とする請求項８に記載のサーバ。
【請求項１０】
前記演算処理部は、
前記記憶部に記憶されている、前記位置情報に応じた前記暗号方式の情報および前記差分時間に応じた前記暗号方式の情報に基づき、前記装置との通信で利用する前記暗号方式を決定する、
ことを特徴とする請求項９に記載のサーバ。
【発明の詳細な説明】
【技術分野】
【０００１】
ネットワーク上でデータを暗号化して送受信する暗号化通信技術に関する。
【背景技術】
【０００２】
近年、情報通信分野以外の産業機械分野等においても、従来通信機能を持たなかった様々な機器・装置（以下、端末装置と記す）に通信機能を装備し、これら端末装置が収集したデータを活用するシステムが増加している。また、クラウドサービスの普及により、上記端末装置とクラウドコンピューティング上のサーバとで各種データを送受信するシステムも増加している。このような状況の中で、通信路上での盗聴、改ざん、なりすましといった脅威を防ぐために、ＳＳＬ（Ｔｒａｎｓｐｏｒｔ Ｌａｙｅｒ Ｓｅｃｕｒｉｔｙ）あるいはＴＬＳ（Ｓｅｃｕｒｅ Ｓｏｃｋｅｔｓ Ｌａｙｅｒ）(以下、これらを総称してＳＳＬ/ＴＬＳと記す)といった、セキュア通信を実現するための暗号化技術の導入が進んでいる。
【０００３】
ＳＳＬ/ＴＬＳ通信処理では、暗号化通信処理に先だって、ハンドシェイク処理が実施され、鍵交換用の暗号アルゴリズム、通信暗号化用の暗号アルゴリズム、ハッシュアルゴリズムなど暗号化通信をするための暗号方式（Ｃｉｐｈｅｒ Ｓｕｉｔｅｓ）の取り決めや鍵変換処理や認証処理が行われる。
【０００４】
暗号方式の事前取り決めを行う技術として、例えば特許文献１には、クライアントが、サーバにおける暗号スイートの搭載状況を調査し、その調査結果とクライアントがサポートする暗号スイートの優先順位に基づいて、利用する暗号スイートを決定し、決定した暗号スイートをサーバへ伝達する技術が開示されている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】国際公開２０１２/１３２４３８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
上記従来技術によれば、安価な組込み機器のクライアントでも、クライアントの負荷状況に応じて、クライアントが主導的に利用する暗号スイートの優先順位の変更と選択を行うため、クライアントにおける負荷を低減し、パフォーマンス良くＳＳＬ暗号通信を行うことができる。
【０００７】
一方で、近年増えている世界規模での大規模システムにおける端末装置は、国を跨いで移動する場合があることから、各国で策定される暗号技術の輸出規制や推奨暗号アルゴリズムに従って、移動のたびに暗号方式を変更する必要がある。また、端末装置の移動により、通信相手となるサーバが変わる場合があり、このような場合には変更後のサーバが利用可能な通信方式を利用する必要がある。また、端末装置の移動により、端末装置とサーバとの間で通信品質（通信遅延等）が変化する場合があり、このような場合には端末装置の負荷状況といった端末装置の性能のみならず、上記通信品質に応じて最適な暗号方式を決定することが望まれる。
【０００８】
そこで本発明は、端末装置の性能および端末装置とサーバとの間の通信品質に応じて最適な通信方式と暗号方式を決定することができる通信方法およびサーバを提供することを目的とする。
【課題を解決するための手段】
【０００９】
本発明の代表的な一例は次の通りである。すなわち本発明は、サーバが、通信機能を有する装置から該装置の位置情報と時刻情報を含む第１の通信データを受信すると、その第１の通信データの受信を契機に、記憶部に記憶されている通信方式の情報に基づき当該サーバが利用可能な通信方式を決定する。また前記サーバは、前記時刻情報と前記第1の通信データの受信時刻情報を用いて、前記装置の性能および通信品質に関わるデータを算出し、該データと前記位置情報を用いて前記装置との通信で利用する暗号方式を決定する。そして前記サーバは、決定した前記通信方式および前記暗号方式の情報を含む第２の通信データを前記装置へ送信する。
【発明の効果】
【００１０】
本発明によれば、端末装置の性能および端末装置とサーバとの間の通信品質に応じて最適な通信方式と暗号方式を決定することができる。
【図面の簡単な説明】
【００１１】
【図１】本発明の実施例１に係る通信システムの構成例を示す図である。
【図２】本発明の実施例１に係る端末装置１０１の構成例を示す図である。
【図３】本発明の実施例１に係るサーバ１０２の構成例を示す図である。
【図４】本発明の実施例１に係る端末装置１０１、サーバ１０２のハードウェア構成例を示す図である。
【図５】本発明の実施例１に係る場所別暗号方式テーブルの構成例を示す図である。
【図６】本発明の実施例１に係るレベル別暗号方式テーブルの構成例を示す図である。
【図７】本発明の実施例１に係る端末装置１０１におけるクライアントモジュール２２０の実行処理を示すフローチャートである。
【図８（ａ）】本発明の実施例１に係る通信方式・暗号方式決定処理シーケンスの一例を示す図である。
【図８（ｂ）】本発明の実施例１に係る通信方式・暗号方式決定処理シーケンスの一例を示す図である。
【図９】本発明の実施例１に係るＳＳＬ/ＴＬＳ通信処理シーケンスにおけるハンドシェイク処理シーケンスの一例を示す図である。
【図１０】本発明の実施例１に係るＳＳＬ/ＴＬＳ通信処理シーケンスにおける暗号化通信処理シーケンスの一例を示す図である。
【図１１】本発明の実施例２に係る通信システムの構成例を示す図である。
【発明を実施するための形態】
【００１２】
以下、本発明の実施の形態について、図面を参照して詳細に説明する。
【実施例１】
【００１３】
本実施例は、非セキュア通信をする既存アプリケーションを搭載し稼働している端末装置に、通信方式および暗号方式を決定する機能と、ＳＳＬ/ＴＬＳ通信処理機能を有するクライアントモジュールを新たに追加することで、端末装置をセキュア通信に対応させる実施例である。なお、本実施例における通信方式とは、例えば、ＴＬＳ（Ｔｒａｎｓｐｏｒｔ Ｌａｙｅｒ Ｓｅｃｕｒｉｔｙ)１．０やＴＬＳ１．２といった暗号化通信プロトコルあるいはそのバージョン情報である。また、本実施例における暗号方式とは、例えばＳＳＬ/ＴＬＳ仕様で定義されているＣｉｐｈｅｒ Ｓｕｉｔｅｓ情報などのセキュア通信で利用する暗号アルゴリズム情報や署名アルゴリズム情報である。
【００１４】
図１は、本発明の実施例１に係る通信システムの構成例を示す図である。本実施例１に係る通信システムは、ネットワーク１０３に接続された複数の端末装置１０１および端末装置１０１からのリクエストや業務データを中継する中継装置１０４と、中継されたリクエストや業務データをサーバ１０２に振り分ける負荷分散装置１０５と、振り分けられたリクエストや業務データを受信し処理する複数のクラウド型のサーバ１０２とから構成される。
【００１５】
図２は、本発明の実施例１に係る端末装置１０１の構成例を示す図である。端末装置１０１は、処理部２０１と、記憶部２０２と、操作者からの指示の受け付けや各種データの入出力や処理結果の出力などを行う入出力部２０３と、ネットワーク１０３を介してサーバ１０２と通信する通信部２０４とを有する。
【００１６】
処理部２０１は、業務処理部２１０とクライアントモジュール２２０からなる。
【００１７】
記憶部２０２は、サーバ接続設定保持部２３０と、信頼認証局リスト保持部２４０と、鍵・証明書保持部２５０と、位置情報保持部２６０と、時刻情報保持部２７０とを有する。
【００１８】
サーバ接続設定保持部２３０には、リクエストや業務データを送信する宛先であるサーバの情報など、サーバ１０２との接続に必要な各種設定情報が、管理者により予め登録される。
【００１９】
信頼認証局リスト保持部２４０は、信頼性の確認された認証局の証明書の情報が記載された信頼リストを保持する。信頼リストは、後述する検証部２２４により証明書の検証時に利用される。
【００２０】
鍵・証明書保持部２５０には、端末装置１０１の公開鍵や、その公開鍵と対をなす秘密鍵や、その公開鍵に対する電子証明書などが、入出力部２０３または通信部２０４を介して登録、保存される。ここで、秘密鍵は安全な方法で保存されているものとする。
【００２１】
位置情報保持部２６０は、ＧＰＳ（Ｇｌｏｂａｌ Ｐｏｓｉｔｉｏｎｉｎｇ Ｓｙｓｔｅｍ）を利用して逐次取得した端末装置１０１の現在位置の情報を保持する。なお、端末装置１０１の現在位置の情報は、端末装置１０１の設置時に管理者により一意に設定された情報でもよい。端末装置１０１の位置情報の取得方法および位置情報の表示形式などは限定しない。例えば、端末装置１０１がＧＰＳで取得した内容でもよいし、サーバ１０２が端末装置１０１の位置を特定できれば、通信時のＩＰアドレスや無線ＬＡＮ機器、基地局などの情報を位置情報としてもよい。
【００２２】
時刻情報保持部２７０は、ＧＰＳやＮＴＰ（Ｎｅｔｗｏｒｋ Ｔｉｍｅ Ｐｒｏｔｏｃｏｌ）を利用して正しく調整された端末装置１０１の内部時計の時刻情報を保持する。時刻情報の調整方法については既存の技術を利用し、方法は問わない。また、端末装置１０１の時刻は、サーバ１０２の内部時計の時刻と同期しているものとする。
【００２３】
業務処理部２１０は、通信部２０４を介してサーバ１０２へ送信するための業務データの収集および生成や、サーバ接続設定保持部２３０に保持される情報を用いてリクエストを生成するなど業務に関する各種処理を行う。業務処理部２１０は、クライアントモジュール２２０を端末装置１０１に追加する前の構成において、非セキュア通信を要求するアプリケーションのアプリケーション処理分に相当する。
【００２４】
クライアントモジュール２２０は、リクエスト識別部２２１と、通信方式・暗号方式決定部２２２と、ＳＳＬ/ＴＬＳ通信処理部２２３と、検証部２２４と、署名生成部２２５を有する。
【００２５】
リクエスト識別部２２１は、業務処理部２１０により生成されたｈｔｔｐリクエストを取得し、そのｈｔｔｐリクエストがセキュア通信プロトコル対応のリクエストであるか否かを判別する。また、ｈｔｔｐリクエストがセキュア通信プロトコルに対応していない場合、リクエスト識別部２２１は、ｈｔｔｐリクエストの宛先がセキュア通信プロトコルに対応しているサーバであるか否かを判別する。また、ｈｔｔｐリクエストの宛先がセキュア通信プロトコルに対応しているサーバの場合、リクエスト識別部２２１は、ｈｔｔｐリクエストの宛先が通信方式・暗号方式決定部を有するサーバであるか否かを判別する。
【００２６】
通信方式・暗号方式決定部２２２は、リクエスト識別部２２１によりリクエストの宛先が通信方式・暗号方式決定部を有するサーバであると判別された場合に、サーバ１０２とネゴシエーションしてサーバ１０２とのセキュア通信で使用する通信方式と暗号方式を取得する機能を有する。具体的には、通信方式・暗号方式決定部２２２は、リクエスト識別部２２１によりｈｔｔｐリクエストの宛先が通信方式・暗号方式決定部を有するサーバであると判別された場合に、位置情報保持部２６０から端末装置１０１の位置情報を取得し、時刻情報保持部２７０から現在の時刻情報を取得し、取得した位置情報および時刻情報に対して署名生成部２２５により署名が付与された署名付き位置情報および時刻情報と、証明書とをｈｔｔｐリクエストの宛先サーバ１０２へ送信する。ここで、署名付き位置情報および時刻情報と、端末装置１０１の証明書とをサーバ１０２へ送信することにより、送信データが端末装置１０１から送信されたデータであること、および、送信過程で改ざんがされていないことを証明できる。そして通信方式・暗号方式決定部２２２は、サーバ１０２からの応答により、署名付き通信方式および暗号方式と、サーバ１０２の証明書とを取得する。
【００２７】
ＳＳＬ/ＴＬＳ通信処理部２２３は、業務処理部２１０により生成されたｈｔｔｐリクエストから宛先情報を取得し、その宛先情報と、サーバ１０２から取得した通信方式および暗号方式を含むＳＳＬ/ＴＬＳプロトコルによるｈｔｔｐｓメッセージ（Ｃｌｉｅｎｔ Ｈｅｌｌｏ）を生成して、サーバ１０２とハンドシェイク処理を実施し、サーバ１０２とセッション鍵を共有する。またＳＳＬ/ＴＬＳ通信処理部２２３は、上記セッション鍵を用いてｈｔｔｐリクエストを暗号化して、ｈｔｔｐｓリクエストを生成し、そのｈｔｔｐｓリクエストをサーバ１０２へ送信し、サーバ１０２からｈｔｔｐｓレスポンスを受信し、そのｈｔｔｐｓレスポンスを上記セッション鍵で復号してｈｔｔｐレスポンスを取得し、業務処理部２１０へ渡す。
【００２８】
検証部２２４は、通信方式・暗号方式決定部２２２から署名付き通信方式および暗号方式と、サーバ１０２の証明書とを受け取り、信頼認証局リスト保持部２４０に保持される信頼リストや、通信部２０４を介して認証局などへ問い合わせた結果を用いて、署名検証および証明書検証を行う。
【００２９】
署名生成部２２５は、鍵・証明書保持部２５０から端末装置１０１の署名用の秘密鍵と端末装置１０１の証明書を取得し、取得した秘密鍵を用いて上記端末装置１０１の位置情報と上記時刻情報に対して署名を付与し、署名付き位置情報および時刻情報と、取得した端末装置１０１の証明書とを含むデータを生成する。
【００３０】
図３は、本発明の実施例１に係るサーバ１０２の構成例を示す図である。サーバ１０２は、処理部３０１と、記憶部３０２と、操作者からの指示の受け付けや各種データの入出力や処理結果の出力などを行う入出力部３０３と、ネットワーク１０３を介して端末装置１０１と通信するための通信部３０４とを有する。
【００３１】
処理部３０１は、業務処理部３１０と、通信処理部３２０と、機器識別部３３０と、通信方式・暗号方式決定部３４０とを有する。
【００３２】
記憶部３０２は、信頼認証局リスト保持部３５０と、機器リスト保持部３６０と、鍵・証明書保持部３７０と、通信方式・暗号方式決定用テーブル保持部３８０と、時刻情報保持部３９０とを有する。
【００３３】
信頼認証局リスト保持部３５０は、信頼性の確認された認証局の証明書の情報が記載された信頼リストを保持する。信頼リストは、証明書検証時に利用される。
【００３４】
機器リスト保持部３６０は、サーバ１０２の通信対象となる機器の情報が記載されたリストを保持する。機器の情報としては、端末装置１０１に対して一意に設定された機器ＩＤや、その端末装置１０１の保有する証明書の情報や、端末装置１０１のＩＰアドレス情報などである。証明書を用いて端末装置１０１の認証を行う場合には、証明書に記載される証明書の所有者情報と機器ＩＤとの紐付け情報を機器リスト保持部３６０に保持する。
【００３５】
鍵・証明書保持部３７０は、サーバ１０２の公開鍵や、その公開鍵と対をなす秘密鍵や、その公開鍵に対する電子証明書などを保持する。ここで、秘密鍵は安全な方法で保存されているものとする。これらの情報は、入出力部３０３または通信部３０４を介して鍵・証明書保持部３７０に登録される。
【００３６】
通信方式・暗号方式決定用テーブル保持部３８０は、後述する場所別暗号方式テーブル３８１と、レベル別暗号方式テーブル３８５と、サーバ１０２が利用可能な通信方式の一覧が記載された通信方式設定ファイルとを保持する。これらテーブルおよびファイルは、通信方式・暗号方式決定部３４０により、端末装置１０１とのセキュア通信で用いる通信方式および暗号方式を決定する際に使用される。これらテーブルおよびファイルは、あらかじめ管理者により入出力部３０３を用いて作成される。これら通信方式・暗号方式決定用テーブル保持部３８０に保持される情報は、脆弱性の発見に伴い脆弱性のある通信方式を削除するなど、制限項目の増減に伴い、管理者により通信方式の追加・削除が適宜行われるものとする。
【００３７】
時刻情報保持部３９０は、ＧＰＳやＮＴＰを利用して正しく調整されたサーバ１０２の内部時計の時刻情報を保持する。時刻情報の調整方法については既存の技術を利用し、方法は問わない。また、サーバ１０２の時刻情報は、端末装置１０１の内部時計の時刻と同期しているものとする。
【００３８】
業務処理部３１０は、ｈｔｔｐリクエストの生成や、通信部３０４を介して端末装置１０１から受信した業務データを処理し、処理結果を端末装置１０１へ応答するなどの各種処理を行う。
【００３９】
通信処理部３２０は、通信部３０４を介して受信したデータ、または通信部３０４を介して送信するデータを通信プロトコルに従った形式に整形し、その通信プロトコルで必要な処理を実施する。後述するセキュア通信プロトコルの一つであるＳＳＬ/ＴＬＳプロトコルによるハンドシェイク処理や、それに付随する署名や証明書の検証処理なども通信処理部３２０で実施される。
【００４０】
機器識別部３３０は、機器リスト保持部３６０に保存されている機器リストを用いて、サーバ１０２の通信相手である端末装置１０１を特定する。なお、機器リストに記載されていない端末装置１０１から通信データを受信した場合には、その端末装置１０１との通信を切断するなど、通信相手によって処理方法を変えることもできる。通信相手のクライアント証明書を添付したデータを受信した場合には、機器識別部３３０は、証明書の内容を解析し、証明書のｓｕｂｊｅｃｔ領域（証明書所有者情報領域）に記載された情報を取得し、証明書所有者情報が記載された機器リストを参照して機器ＩＤを特定する。
【００４１】
通信方式・暗号方式決定部３４０は、端末装置１０１からの署名付き位置情報および時刻情報と証明書の受信を契機に、その受信時刻を取得し、署名および証明書を検証し、その後、通信方式設定ファイルの情報とこれら受信情報を用いて、端末装置１０１とセキュア通信をするための通信方式と暗号方式を決定する。具体的には、先ず通信方式・暗号方式決定部３４０は、署名付き位置情報および時刻情報と証明書を受信すると、その受信時刻情報を時刻情報保持部３９０から取得し、署名および証明書を検証し、通信方式設定ファイルの情報に基づいて当該サーバ１０２で利用可能な通信方式を決定する。次に通信方式・暗号方式決定部３４０は、受信した位置情報から端末１０１のある国（又は地域）を特定し、後述する場所別暗号方式テーブル３８１を参照して、特定した国（又は地域）で推奨されている暗号方式を取得する。次に通信方式・暗号方式決定部３４０は、端末装置１０１から受信した時刻情報と上記受信時刻情報との差分時間を算出し、その差分時間と上記推奨暗号方式に基づいて端末装置１０１とのセキュア通信で使用可能な暗号方式（優先順位付き）を決定する。ここで、差分時間を用いるのは、差分時間の長さから、端末装置１０１の性能と、端末装置１０１とサーバ１０１との間の通信品質（通信遅延時間など）が判断可能となり、その結果に応じて最適な暗号方式を決定するためである。そして通信方式・暗号方式決定部３４０は、決定した通信方式と暗号方式に対して鍵・証明書保持部３７０に保持されているサーバ１０２の署名用の秘密鍵を用いて署名を付与し、その署名付き通信方式および暗号方式と、鍵・証明書保持部３７０に保持されるサーバ１０２の証明書とを端末装置１０１へ送信する。署名付き通信方式および暗号方式と、サーバ１０２の証明書とを送信することにより、送信データがサーバ１０２から送信されたデータであること、および、送信過程で改ざんがされていないことを証明できる。
【００４２】
図４は、本発明の実施例１に係る端末装置１０１、サーバ１０２のハードウェア構成例を示す図である。端末装置１０１、サーバ１０２は、各種処理や演算、コンピュータ全体の制御等を行うＣＰＵ４０２と、メモリ４０３と、各種プログラムおよびデータを記憶するハードディスク等の外部記憶装置４０４と、ネットワーク１０３を介して他コンピュータと通信を行うための通信装置４０５と、キーボードやボタン等の入力装置４０６と、モニタやプリンタ等の出力装置４０７と、ＣＤ−ＲＯＭやＵＳＢ等の可搬性を有する記憶媒体４０９から情報を読み取る読取装置４０８と、各装置間のデータの送受信を行う内部通信線（例えば、ＢＵＳ）４０１と、を備えた、一般的なコンピュータ（電子計算機）である。
【００４３】
ＣＰＵ４０２は、外部記憶装置４０４から各種プログラムをメモリ４０３にロードし、所定のプログラムを実行することにより上述の各処理部を実現する。即ち、処理部２０１、３０１は、ＣＰＵ４０２が実行するプログラムとして実現され、記憶部２０２、３０２は、ＣＰＵ４０２が実行処理した結果を記憶するメモリ４０３や外部記憶装置４０４として実現される。また、通信部２０４、３０４は、通信装置４０５として実現される。入出力部２０３、３０３は、入力装置４０６や出力装置４０７や読取装置４０８として実現される。
【００４４】
各処理部を実現する所定のプログラムは、予め外部記憶装置４０４に格納されていてもよいし、コンピュータが利用可能な可搬性を有する記憶媒体４０９に格納されており読取装置４０８を介して必要に応じて読み出されてもよいし、あるいは、コンピュータが利用可能な通信媒体であるネットワークまたはネットワーク上を伝搬する搬送波を利用する通信装置４０５と接続された他のコンピュータから必要に応じてダウンロードされて外部記憶装置４０４に格納されるものであってもよい。
【００４５】
図５は、本発明の実施例１に係る場所別暗号方式テーブル３８１の構成例を示す図である。場所別暗号方式テーブル３８１は、暗号方式決定用テーブル保持部３８０に格納されている。図５に示すように、場所別暗号方式テーブル３８１は、座標範囲など国（又は地域）を特定する情報を格納する国（又は地域）３８２列と、その国での利用が推奨される暗号方式の情報を格納する暗号方式３８３列とを有する。なお、推奨暗号方式は、国（又は地域）ごとに一つとは限らないため、一つの国（又は地域）３８２に複数の暗号方式の情報を格納してもよい。この場合、暗号方式の情報を利用優先順位順に格納してもよいし、暗号方式ごとに利用優先順位情報を付加してもよい。
【００４６】
図６は、本発明の実施例１に係るレベル別暗号方式テーブル３８５の構成例を示す図である。レベル別暗号方式テーブル３８５は、暗号方式決定用テーブル保持部３８０に格納されている。図６に示すように、レベル別暗号方式テーブル３８５は、暗号方式のレベルを示す情報を格納するレベル３８６列と、レベル３８６ごとの暗号方式の情報を格納する暗号方式３８７列とを有する。なお、１つのレベル３８６に複数の暗号方式の情報を格納する場合には、暗号方式の情報を利用優先順位順に格納してもよいし、暗号方式ごとに利用優先順位情報を付加してもよい。レベル３８６の分割数とレベル３８６ごとの暗号方式は、システムのポリシーなどに基づき管理者により決定される。そして、端末装置１０１の署名処理時間と、署名付き位置情報および時刻情報等の端末装置１０１からサーバ１０２への送信時間との合計時間が、いくつまでならばどのレベルに相当するかという情報を、システムや通信環境を踏まえて管理者が決定し、レベル設定情報として、暗号方式決定用テーブル保持部３８０に予め設定されているものとする。
【００４７】
例えば、署名処理時間と、署名付き位置情報および時刻情報等の端末装置１０１からサーバ１０２への送信時間との合計時間が長くかかった場合、サーバ１０２は、端末装置１０１の処理性能が低い、もしくは端末装置１０１と接続されているネットワークの品質（通信品質）が悪い（データの再送が多い、通信遅延が大きいなど）と判断し、処理時間が比較的短い暗号方式や、データ量が比較的少なくなる暗号方式などが設定されたレベル別暗号方式テーブル３８５のレベル列３８６を参照する。
【００４８】
図７は、本発明の実施例１に係る端末装置１０１におけるクライアントモジュール２２０の実行処理を示すフローチャートである。
【００４９】
先ず端末装置１０１における業務処理部２１０がサーバ１０２宛てのｈｔｔｐリクエストを生成する。このｈｔｔｐリクエストは、後述するＳＳＬ/ＴＬＳ通信処理で使用するため、メモリに一時的に格納される。クライアントモジュール２２０は、業務処理部２１０からｈｔｔｐリクエストを取得する（ステップ６０１）。ｈｔｔｐリクエストは、リクエスト識別部２２１に送信され、リクエスト識別部２２１により、ｈｔｔｔｐリクエストの内容を解析し、このｈｔｔｐリクエストのプロトコルがセキュア通信プロトコルであるか否かを判別する（ステップ６０２）。取得したｈｔｔｐリクエストのプロトコルがセキュア通信プロトコルの場合には、リクエスト識別部２２１は、そのｈｔｔｐリクエストを、その内容を変更することなく通信部２０４へ送信する（ステップ６０３）。一方、ステップ６０２において、ｈｔｔｐリクエストのプロトコルがセキュア通信プロトコルでないと判別された場合には、リクエスト識別部２２１はステップ６０４へ進む。
【００５０】
ステップ６０４では、リクエスト識別部２２１は、ｈｔｔｐリクエストの宛先を確認し、セキュア通信に対応しているサーバの情報が記載されているサーバ一覧表を参照し、宛先のサーバがセキュア通信対応のサーバであるか否かを判別する。ここで、サーバ一覧表は、あらかじめ端末装置１０１の記憶部２０２に記憶されているものとする。そして、ｈｔｔｐリクエストの宛先が、セキュア通信に対応していないサーバの場合には、リクエスト識別部２２１は、ステップ６０１で取得したｈｔｔｐリクエストを、その内容を変更することなく通信部２０４へ送信する（ステップ６０３）。一方、ステップ６０４において、ｈｔｔｐリクエストの宛先が、セキュア通信に対応しているサーバであると判別された場合には、ステップ６０５へ進む。
【００５１】
ステップ６０５では、リクエスト識別部２２１は、ｈｔｔｐリクエストの宛先を確認し、通信方式・暗号方式決定部を有するサーバの情報が記載されているサーバ一覧表を参照し、宛先のサーバが通信方式・暗号方式決定部を持つサーバであるか否かを判別する。ここで、サーバ一覧表は、あらかじめ端末装置１０１の記憶部２０２に記憶されているものとする。そしてｈｔｔｐリクエストの宛先が、通信方式・暗号方式決定部を持つサーバの場合には、通信方式・暗号方式決定部２２２がサーバ１０２とネゴシエーションして通信方式・暗号方式決定処理を実施しセキュア通信で使用する通信方式および暗号方式を決定する（ステップ６０６）。通信方式・暗号方式決定部２２２により実施する通信方式・暗号方式決定処理の詳細については後述する。ステップ６０５において、ｈｔｔｐリクエストの宛先が、通信方式・暗号方式決定部を持たないサーバであると判別された場合には、通信方式・暗号方式決定部２２２はステップ６０７へ進む。
【００５２】
ステップ６０７では、ＳＳＬ/ＴＬＳ通信処理部２２３が、上記通信方式・暗号方式決定処理（ステップ６０６）で決定した通信方式と暗号方式に基づいて、ｈｔｔｐリクエストの内容を変更する。また、ステップ６０７では、ｈｔｔｐリクエストの宛先が、通信方式・暗号方式決定部を持たないサーバであると判別された場合には（ステップ６０５でＮＯ）、ＳＳＬ/ＴＬＳ通信処理部２２３は、あらかじめデフォルトとして記憶部２０２に記憶されている通信方式と暗号方式に基づいて、ｈｔｔｐリクエストの内容を変更する。ＳＳＬ/ＴＬＳ通信処理部２２３により実施するＳＳＬ/ＴＬＳ通信処理の詳細については後述する。
【００５３】
図８（ａ）と図８（ｂ）は、本発明の実施例１に係る通信方式・暗号方式決定処理シーケンスの一例を示す図である。
【００５４】
先ず、端末装置１０１におけるクライアントモジュール２２０の通信方式・暗号方式決定部２２２は、位置情報保持部２６０から端末装置１０１の現在位置の情報を取得する（ステップ７０１）。次に通信方式・暗号方式決定部２２２は、時刻情報保持部２７０から現在の時刻情報を取得する（ステップ７０２）。そして通信方式・暗号方式決定部２２２は、位置情報と時刻情報とを、署名生成部２２５に送り、署名生成部２２５は、鍵・証明書保持部２５０から、署名用の秘密鍵とその秘密鍵に対応する端末装置１０１の証明書を選択して取得する（ステップ７０３）。次に署名生成部２２５は、取得した秘密鍵を用いて位置情報と時刻情報に署名を付与する（ステップ７０４）。
【００５５】
クライアントモジュール２２０は、署名が付与された位置情報および時刻情報に端末装置１０１の証明書を添付して、通信部２０４を介してサーバ１０２へ送信する（ステップ７０５）。
【００５６】
サーバ１０２の通信方式・暗号方式決定部３４０は、端末装置１０１から署名付きの位置情報および時刻情報と、端末装置１０１の証明書を受信すると、これらデータを受信した時刻を時刻情報保持部３９０から取得し一時的にメモリに格納する（ステップ７０６）。次に通信方式・暗号方式決定部３４０は、受信データの署名と証明書とを、信頼認証局リスト保持部３５０に保持している信頼リストや、認証局の公開する失効情報などを利用して検証する（ステップ７０７）。検証の結果、受信データの改ざんや、受信データが、信頼した端末装置１０１以外からのデータであることが判明した場合には、本暗号方式・通信方式決定処理は中断される。
【００５７】
次に通信方式・暗号方式決定部３４０は、通信方式・暗号方式決定用テーブル保持部３８０に保持されている通信方式設定ファイルを用いて、サーバ１０２が利用可能な通信方式を決定する（ステップ７０８）。ここで、決定される通信方式は一つでもよいし、複数でもよい。また、複数の通信方式の場合には、サーバ１０２が利用可能な複数の通信方式を優先順位付けして記載された通信方式リストを用いてもよい。
【００５８】
次に通信方式・暗号方式決定部３４０は、端末装置１０１から受信した位置情報から端末装置１０１の位置する国（又は地域）を特定する（ステップ７０９）。位置情報から国や地域を特定する方法は、既存の技術を利用し、特定方法は問わない。
【００５９】
次に通信方式・暗号方式決定部３４０は、特定した端末装置１０１の位置する国(又は地域)に基づいて場所別暗号方式テーブル３８１を検索し、該当国(又は地域)で推奨されている暗号方式３８３を取得し、メモリに一時的に格納する（ステップ７１０）。このとき、１つの国（又は地域）３８２に複数の暗号方式が利用優先順位付けされて登録されていた場合には、通信方式・暗号方式決定部３４０は、登録されている全ての暗号方式を利用優先順位情報と共に取得し、メモリに一時的に格納する。
【００６０】
次に通信方式・暗号方式決定部３４０は、ステップ７０５で受信した時刻情報と、ステップ７０６で取得した時刻情報とを比較して、差分時間を算出する（ステップ７１１）。ここでいう差分時間は、端末装置１０１が署名処理にかかった時間と、その時の通信環境で署名付き位置情報および時刻情報と証明書が端末装置１０１からサーバ１０２へ送信されるまでの時間と、の合計時間を表す。この合計時間が長い場合に、サーバ１０２は、端末装置１０１の処理性能が低い、もしくは端末装置１０１と接続されているネットワークの品質が悪いと判断する。
【００６１】
次に通信方式・暗号方式決定部３４０は、通信方式・暗号方式決定用テーブル保持部３８０に保持されているレベル設定情報から、ステップ７１１で取得した差分時間がどのレベルに相当するかを判定する（ステップ７１２）。次に通信方式・暗号方式決定部３４０は、判定したレベルの情報に基づいてレベル別暗号方式テーブル３８５を検索し、該当暗号方式３８７を取得する（ステップ７１３）。このとき、１つのレベル３８６に複数の暗号方式が、利用優先順位付けされて登録されていた場合には、通信方式・暗号方式決定部３４０は、登録されている全ての暗号方式を利用優先順位情報と共に取得する。
【００６２】
次にサーバ１０２の通信方式・暗号方式決定部３４０は、ステップ７１３で取得した該当レベルの暗号方式が、ステップ７１０で取得した該当国(又は地域）推奨の暗号方式の中に存在するか否かを確認する。そして、該当レベルの暗号方式が存在した場合には、ステップ７１３で取得した該当レベルの暗号方式の利用優先順位が最も高くなるよう、
ステップ７１０で取得した該当国（又は地域）推奨の暗号方式の利用優先順位を変更する（ステップ７１４）。もし、ステップ７１３で取得した該当レベルの暗号方式も複数存在し、複数の暗号方式がステップ７１０で取得した該当場所の暗号方式の中に存在した場合には、レベル別暗号方式テーブル３８５で設定されている暗号方式の利用優先順位を反映する。また、該当レベルの暗号方式を最優先の暗号方式にした後は、該当国（又は地域）の暗号方式で設定されていた利用優先順位に基づいて利用優先順位付けする。一方で、該当レベルの暗号方式が、該当国（又は地域）の暗号方式に存在しない場合には、ステップ７１０で取得した該当国（地域）の暗号方式の利用優先順位のまま変更しない。
【００６３】
次にサーバ１０２は、鍵・証明書保持部３７０から、署名用の秘密鍵とその秘密鍵に対応するサーバ１０２の証明書を選択して取得し、秘密鍵を用いて、ステップ７０８で取得した通信方式と、ステップ７１４で利用優先順位の変更をした暗号方式に署名を付与する（ステップ７１５）。
【００６４】
そしてサーバ１０２は、署名を付与した通信方式と暗号方式にサーバ１０２の証明書を添付して、通信部３０４を介して端末装置１０１へ送信する（ステップ７１６）。なお、署名付き通信方式と暗号方式と証明書を受信した端末装置１０１は、検証部２２４により取得したデータの署名と証明書とを検証し、正しいサーバ１０２から送信されたデータであることと、改ざんがされていないデータであることを確認する。検証した結果、もしデータの改ざんや、信頼したサーバ１０２以外からの受信データであることが判明した場合には、取得した通信方式や暗号方式は、その後のＳＳＬ/ＴＬＳ通信処理で利用しない。
【００６５】
図９は、本発明の実施例１に係るＳＳＬ/ＴＬＳ通信処理シーケンスにおけるハンドシェイク処理シーケンスの一例を示す図である。はじめに端末装置１０１とサーバ１０２との間において、通信方式の変換、暗号方式の選択、相手の認証、ｈｔｔｐリクエストの暗号化に用いるセッション鍵の共有、などを合意する必要がある。この合意をする処理が、ハンドシェイク処理である。ハンドシェイク処理のプロトコルについては、ＲＦＣ５２４６等にて規定されているため、ここでは詳細な説明を省略する。
【００６６】
先ずＳＳＬ/ＴＬＳ通信処理部２２３は、ステップ６０１でメモリに一時的に格納されたｈｔｔｐリクエストを解析し、宛先情報を取得し、その宛先情報と、ステップ６０６で決定した通信方式および暗号方式とを含む、ＳＳＬ/ＴＬＳプロトコルにおけるｈｔｔｐｓリクエストであるＣｌｉｅｎｔ Ｈｅｌｌｏを生成し（ステップ８０１）、そのＣｌｉｅｎｔ Ｈｅｌｌｏをサーバ１０２へ送信する（ステップ８０２）。ここで、通信方式としてステップ７１６で複数の通信方式を受信した場合には、優先順位の最も高い通信方式がＣｌｉｅｎｔ Ｈｅｌｌｏに設定される。また、暗号方式として、テップ７１６で複数の暗号方式を受信した場合には、複数の暗号方式がＣｌｉｅｎｔ Ｈｅｌｌｏに設定される。その後、ハンドシェイク処理が実施され、サーバ１０２で端末装置１０１の性能や通信品質を考慮して１つの暗号方式に決定され、設定されたＳｅｒｖｅｒ ｈｅｌｌｏ Ｄｏｎｅが端末装置１０１へ送信される（ステップ８０３）。設定された暗号方式は、ステップ８０７以降のハンドシェイク処理で使用される。
【００６７】
次にＳＳＬ/ＴＬＳ通信処理部２２３は、サーバ１０２から、証明書を用いたクライアント認証の要求（Ｃｅｒｔｉｆｉｃａｔｅ Ｒｅｑｕｅｓｔ）を受信したか否かを確認する（ステップ８０４）。そしてＣｅｒｔｉｆｉｃａｔｅ Ｒｅｑｕｅｓｔを受信した場合には、署名生成部２２５が、ＳＳＬ/ＴＬＳ通信処理部２２３からそのＣｅｒｔｉｆｉｃａｔｅ Ｒｅｑｕｅｓｔを受け取り、鍵・証明書保持部２５０から端末装置１０１のクライアント証明書を選択して取得する（ステップ８０５）。Ｃｅｒｔｉｆｉｃａｔｅ Ｒｅｑｕｅｓｔを受信しなかった場合には、ＳＳＬ/ＴＬＳ通信処理部２２３は、サーバ１０２の通信処理部３２０と、Ｃｌｉｅｎｔ Ｋｅｙ Ｅｘｃｈａｎｇｅ以降のハンドシェイク処理を、Ｆｉｎｉｓｈｅｄを受信する（ステップ８１３）まで実施する。
【００６８】
ステップ８０５で証明書を取得した署名生成部２２５は、鍵・証明書保持部２５０から端末装置１０１の署名用の秘密鍵を取得し、クライアント認証に利用するための認証情報を生成する（ステップ８０６）。そしてＳＳＬ/ＴＬＳ通信処理部２２３は、署名生成部２２５から証明書と認証情報を受け取り、その証明書と認証情報を含むクライアント認証に関するハンドシェイクメッセージを通信部２０４を介してサーバ１０２へ送信する（ステップ８０７）。
【００６９】
クライアント認証に関するハンドシェイクメッセージを受信したサーバ１０２は、ハンドシェイクプロトコルに従ってクライアント認証処理を実施する。クライアント認証処理が正しく終了し、端末装置１０１が、信頼できる端末装置１０１であることが確認された後、サーバ１０２の通信処理部３２０は、ハンドシェイクメッセージに含まれる端末装置１０１の証明書を機器識別部３３０へ送る（ステップ８０８）。機器識別部３３０は、証明書を解析し、ｓｕｂｊｅｃｔ領域の記載内容から証明書の所有者情報を取得する（ステップ８０９）。そして、機器識別部３３０は、取得した所有者情報を機器リスト保持部３６０に保持されている機器リストの情報と照合し、取得した所有者情報に紐付く機器ＩＤを取得する（ステップ８１０）。そして機器識別部３３０は、取得した機器ＩＤを通信処理部３２０へ送る（ステップ８１１）。機器ＩＤを取得した通信処理部３２０は、セッションＩＤと機器ＩＤとを紐付けてメモリに一時的に保存する（ステップ８１２）。
【００７０】
その後、サーバ１０２の通信処理部３２０は、引き続き端末装置１０１と残りのハンドシェイク処理を、Ｆｉｎｉｓｈｅｄまで実施する（ステップ８１３）。以上の処理により、端末装置１０１とサーバ１０２との間でハンドシェイク処理が実施され、その後のｈｔｔｐリクエストの暗号化処理に用いるセッション鍵が共有された状態となる。
【００７１】
図１０は、本発明の実施例１に係るＳＳＬ/ＴＬＳ通信処理シーケンスにおける暗号化通信処理シーケンスの一例を示す図である。
【００７２】
先ず端末装置１０１において、クライアントモジュール２２０のＳＳＬ/ＴＬＳ通信処理部２２３は、業務処理部２１０により生成されたｈｔｔｐリクエストをメモリから読み出し、これを上記セッション鍵で暗号化し（ステップ８１４）、暗号化したｈｔｔｐリクエストを通信部２０４を介してサーバ１０２へ送信する（ステップ８１５）。暗号化されたｈｔｔｐリクエストを受信したサーバ１０２の通信処理部３２０は、上記セッション鍵を用いて受信データを復号する（ステップ８１６）。そして通信処理部３２０は、セッションＩＤを取得し、ステップ８１２でメモリに一時的に保存したセッションＩＤと機器ＩＤとの紐付け情報から通信相手の機器ＩＤを取得する（ステップ８１７）。通信処理部３２０は、取得した機器ＩＤとｈｔｔｐリクエストの情報を業務処理部３１０へ送る（ステップ８１８）。業務処理部３１０は、受け取った情報をアプリケーションに従って処理し、機器ＩＤを利用して通信相手の端末装置１０１向けのコンテンツを生成もしくは取得する（ステップ８１９）。業務処理部３１０は、そのコンテンツを通信処理部３２０へ送る（ステップ８２０）。通信処理部３２０は、コンテンツから端末装置１０１へのｈｔｔｐレスポンスを生成し、上記セッション鍵を用いてｈｔｔｐレスポンスを暗号化する（ステップ８２１）。
【００７３】
次に通信処理部３２０は、通信部３０４を介して、暗号化されたｈｔｔｐレスポンスを端末装置１０１へと送信する（ステップ８２２）。端末装置１０１におけるクライアントモジュール２２０のＳＳＬ/ＴＬＳ通信部２２３は、暗号化されたｈｔｔｐレスポンスを上記セッション鍵で復号する（ステップ８２３）。そして、ＳＳＬ/ＴＬＳ通信処理部２２３は、復号したｈｔｔｐレスポンスを業務処理部２１０へ送信する（ステップ８２４）。
【００７４】
業務処理部２１０は、アプリケーションに従いｈｔｔｐレスポンスを処理し、業務処理上さらにサーバ１０２へリクエストが必要な場合はリクエストを生成する。新たに生成されたリクエストも図７のステップ６０１と同様に、クライアントモジュール２２０のリクエスト識別部２２１により取得され、セッションが継続される間は図８（ａ）で共有されたセッション鍵を用いて、ステップ８１４〜ステップ８２４の処理が繰り返し実施される。
【００７５】
以上、本発明の第一の実施例を説明した。本実施例によれば、端末装置の性能および端末装置とサーバとの間の通信品質に応じて最適な通信方式と暗号方式を決定することができる。セキュア通信に対応していない業務処理部２１０からのリクエストを、端末装置１０１内のアプリケーションの改修と、通信方式と暗号方式に関する設定変更を端末装置１０１に対して直接行うことなく、端末装置１０１の性能および端末装置１０１とサーバ１０２との間の通信品質に応じて最適な通信方式と暗号方式を決定することができる。
【実施例２】
【００７６】
図１１は、本発明の実施例２に係る通信システムの構成例を示す図である。端末装置１０１の中には、新たなモジュールの組み込み改修が難しい場合や、クライアントモジュール２２０を組み込めたとしても端末装置１０１の性能面から暗号処理が難しい場合などがある。そこで本実施例に係る通信システムでは、図１１に示すように、端末装置１０１とネットワーク１０３との間に、クライアントモジュール２２０の機能とこの機能実現に必要な各部２４０〜２７０を有する通信代行サーバ１０６を設けた構成となっている。また、通信代行サーバ１０６は、機器リストを用いて通信相手の端末１０１を識別する機器識別部を有する。
【００７７】
このような構成を有する通信システムにおいて、実施例１と異なる処理部分について説明する。図７では、通信代行サーバ１０６が、端末装置１０１の業務処理部２１０で生成されたｈｔｔｐリクエストを取得しメモリに一時記憶し（ステップ６０１）、ステップ６０２〜ステップ６０７までの処理を行う。図８（ａ）と図８（ｂ）では、通信代行サーバ１０６が、ステップ７０１〜ステップ７０５までの処理と、ステップ７１６でサーバ１０２から署名付きの通信方式および暗号方式と、証明書とを受信する処理を行う。ここで、通信代行サーバ１０６と端末装置１０１とは近接しており、ステップ７０１で取得する位置情報を端末装置１０１の位置情報とみなすことができる。なお、ステップ７０１において、通信代行サーバ１０６が端末装置１０１から位置情報を取得するようにしてもよい。ＳＳＬ/ＴＬＳ通信処理におけるハンドシェイク処理と暗号化通信処理では、それぞれ図９と図１０に示す処理と同様の処理を通信代行サーバ１０６が実施する。ただし、図１０のステップ８２３において通信代行サーバ１０６により復号化されたｈｔｔｐレスポンスは、端末装置１０１へ送信される。
【００７８】
またステップ８０４において、通信代行サーバ１０６が、サーバ１０２とハンドシェイク処理を実施している時、サーバ１０２から証明書を用いたクライアント認証の要求を受信した場合には、通信代行サーバ１０６自身の証明書をクライアント証明書として認証情報を生成してサーバ１０２へ送信してもよいし、端末装置１０１の鍵と証明書を予め鍵・証明書保持部に登録しておいて、機器リストで識別した端末装置１０１の証明書を選択し端末装置１０１の鍵を利用して認証情報を生成してサーバ１０２へ送信してもよい。また、端末装置１０１が署名機能を持つ場合には、通信代行サーバ１０６は、クライアント認証の要求を受信した後にそれまでのハンドシェイク処理の内容を端末装置１０１へ送り、認証情報の生成と端末装置の証明書の送信を端末装置１０１に要求して、端末装置１０１から認証情報と端末装置の証明書を取得し、これをサーバ１０２へ送信してもよい。
【００７９】
以上の処理により、端末装置１０１からサーバ１０２への通信を、通信代行サーバ１０６とサーバ１０２とのネゴシエーションにより決定した通信方式と暗号方式を用いたセキュア通信へと対応させることができる。また、端末装置１０１に搭載されている既存アプリケーションがセキュア通信プロトコルに対応しているものの、既に脆弱性の発見されているセキュア通信プロトコルなどサーバ提供事業者が望まないセキュア通信プロトコルの設定となっていた場合に、端末装置１０１の設定変更や改修費用をかけずに、端末装置１０１の性能および端末装置１０１とサーバ１０２との間の通信品質に応じて決定した通信方式と暗号方式を用いたセキュア通信への対応させることができる。
【００８０】
以上本発明の実施例について具体的に説明したが、本発明はこれに限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能である。例えば、上記した実施例では、ステップ６０４において、リクエスト識別部２２１がサーバ一覧表を用いてセキュア通信対応のサーバであるか否かを判別したが、リクエストの宛先サーバ１０４に対して、はじめに非セキュア通信のメッセージを送り、そのメッセージに対するサーバ１０２からの応答を用いて、サーバ１０２がセキュア通信に対応しているか否かを判別してもよい。
【００８１】
また、例えば、上記した実施例は本発明を分かりやすく説明するために詳細に説明したものであり、必ずしも説明した全ての構成を備えるものに限定されるものではない。また、ある実施例の構成の一部を他の実施例の構成に置き換えることが可能であり、また、ある実施例の構成に他の実施例の構成を加えることも可能である。また、各実施例の構成の一部について、他の構成の追加・削除・置換をすることが可能である。また、上記の各構成、機能、処理部等は、それらの一部又は全部を、例えば集積回路で設計する等によりハードウェアで実現してもよい。
【符号の説明】
【００８２】
１０１・・・端末装置、１０２・・・サーバ、１０３・・・ネットワーク、１０４・・・通信装置、１０５・・・負荷分散装置、１０６・・・通信代行サーバ。
【図１】
2016201675.tif 000003
【図２】
2016201675.tif 000004
【図３】
2016201675.tif 000005
【図４】
2016201675.tif 000006
【図５】
2016201675.tif 000007
【図６】
2016201675.tif 000008
【図７】
2016201675.tif 000009
【図８（ａ）】
2016201675.tif 000010
【図８（ｂ）】
2016201675.tif 000011
【図９】
2016201675.tif 000012
【図１０】
2016201675.tif 000013
【図１１】
2016201675.tif 000014