(57)【要約】【課題】  外部ネットワーク内の外部ホストがファイアウォールを越えて内部ネットワーク内の内部ホストとの間でトンネルを構築して通信を行う際に、継続的な通信路の維持が可能で、かつなりすましや改竄される危険性を検知することができる通信装置を提供する。【解決手段】  外部ネットワーク内の外部ホストがファイアウォールを越えて内部ネットワーク内の内部ホストとの間でトンネルを構築して通信を行う通信装置であって、前記トンネルを維持するのに必要なタイミングに応じて前記トンネルを維持するための通信路維持データを送信する送信手段と、前記通信路維持データの中に電子署名を施す電子署名手段とを有する。また、通信路維持データは、何もしないという意味のデータを含むことを特徴とする。【選択図】          図２
2008160497.tif 000002
【特許請求の範囲】
【請求項１】
外部ネットワーク内の外部ホストから内部ネットワーク内の内部ホストへの通信を遮断すると共に前記内部ネットワークから前記外部ネットワークへの通信は選択的に通過させるファイアウォールがある環境で、前記外部ネットワーク内の前記外部ホストから前記内部ネットワーク内の内部ホストへの通信路を構築して通信を行う通信システムであって、
前記外部ホストは、前記通信路を維持するのに必要なタイミングに応じて前記通信路を維持するための通信路維持データを前記内部ホストに送信する送信手段と、
前記通信路維持データの中に電子署名を施す電子署名手段と、
を有することを特徴とする通信システム。
【請求項２】
前記内部ホストは、前記通信路を確立するための要求情報を前記外部ホストに送信し、かつ当該要求情報の返信情報を前記外部ホストから受信することにより、前記通信路を確立する確立手段を有し、前記返信情報の受信の後に前記通信路維持データを受信することにより、前記通信路を維持する請求項1記載の通信システム。
【請求項３】
前記通信路維持データは前記内部ホスト側での処理不用を示す情報を含むものである請求項1記載の通信システム。
【請求項４】
前記要求情報及び返信情報はハイパーテキストトランスファプロトコルに基づくものである請求項２記載の通信システム。
【請求項５】
前記通信路維持データは、所定の初期値を署名し暗号化したランダム値を含むことを特徴とする請求項１から請求項４のいずれかに記載の通信システム。
【請求項６】
前記外部ホストは、前記通信路維持データが、所定の初期値を署名し暗号化したランダム値を含む場合、前記所定の初期値を生成するための擬似乱数生成手段をさらに有することを特徴とする請求項１から請求項５のいずれかに記載の通信システム。
【請求項７】
前記通信路維持データが、所定の初期値を署名し暗号化したランダム値を含む場合、認証時、前記所定の初期値に基づいて前記ランダム値を生成することにより通信相手を認証する認証手段をさらに有することを特徴とする請求項１から請求項６のいずれかに記載の通信システム。
【請求項８】
前記通信路維持データが、所定の初期値を署名し暗号化したランダム値を含む場合、前記所定の初期値に対して送信側の秘密鍵で署名を施す署名手段をさらに有する請求項１から請求項７のいずれかに記載の通信システム。
【請求項９】
前記通信路維持データが、所定の初期値を署名し暗号化したランダム値を含む場合、前記所定の初期値に対して受信側の公開鍵で暗号化を施す初期値暗号化手段をさらに有する請求項１から請求項８のいずれかに記載の通信システム。
【請求項１０】
前記公開鍵への証明書を交付する認証局をさらに有することを特徴とする請求項９に記載の通信システム。
【請求項１１】
リバーストンネル技術を用いて前記通信路を構築する構築手段をさらに有する請求項１から請求項１０のいずれかに記載の通信システム。
【請求項１２】
前記外部ホストは、前記内部ネットワーク内のサービス呼出を受け付け、前記内部ホストに前記サービス呼出のためのサービス呼出データを送信するサービス呼出受付手段をさらに有する請求項１から請求項１１のいずれかに記載の通信システム。
【請求項１３】
前記通信路を介して送信する送信データに対して暗号化を施す送信データ暗号化手段をさらに有する請求項１から請求項１２のいずれかに記載の通信システム。
【請求項１４】
前記サービス呼出データは、テキストデータであることを特徴とする請求項１２に記載の通信システム。
【請求項１５】
前記サービス呼出データは、ＸＭＬデータであることを特徴とする請求項１２に記載の通信システム。
【請求項１６】
外部ネットワーク内の外部ホストから内部ネットワーク内の内部ホストへの通信を遮断すると共に前記内部ネットワークから前記外部ネットワークへの通信は選択的に通過させるファイアウォールがある環境で前記外部ネットワークから前記内部ネットワークへの通信路を構築して通信を行う通信方法であって、
前記通信路を維持するのに必要なタイミングに応じて前記通信路を維持するための通信路維持データに対して電子署名を施して前記外部ホストから前記内部ホストに送信する送信ステップを有することを特徴とする通信方法。
【請求項１７】
前記通信路維持データは、所定の初期値を署名し暗号化したランダム値を含むことを特徴とする請求項１６に記載の通信方法。
【請求項１８】
前記通信路維持データが、所定の初期値を署名し暗号化したランダム値を含む場合、前記所定の初期値を生成するための生成ステップをさらに有することを特徴とする請求項１６又は請求項１７に記載の通信方法。
【請求項１９】
前記通信路維持データが、所定の初期値を署名し暗号化したランダム値を含む場合、認証時、前記所定の初期値に基づいて前記ランダム値を生成することにより通信相手を認証する認証ステップをさらに有することを特徴とする請求項１６から請求項１８のいずれかに記載の通信方法。
【請求項２０】
前記通信路維持データが、所定の初期値を署名し暗号化したランダム値を含む場合、前記所定の初期値に対して送信側の秘密鍵で署名を施す署名ステップをさらに有する請求項１６から請求項１９のいずれかに記載の通信方法。
【請求項２１】
前記通信路維持データが、所定の初期値を署名し暗号化したランダム値を含む場合、前記所定の初期値に対して受信側の公開鍵で暗号化を施すステップをさらに有する請求項１６から請求項２０のいずれかに記載の通信方法。
【請求項２２】
前記内部ネットワーク内のサービス呼出を受け付け、前記内部ホストに前記サービス呼出のためのサービス呼出データを送信するステップをさらに有する請求項１６から請求項２１のいずれかに記載の通信方法。
【請求項２３】
前記通信路を介して送信する送信データに対して暗号化を施すステップをさらに有する請求項１６から請求項２２のいずれかに記載の通信方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、通信システムおよび通信方法に関する。
【背景技術】
【０００２】
インターネット等のネットワーク上に分散している各種サービスを組み合わせて新しいサービスを構築する技術が注目を集めている。特にＷｅｂサービスと呼ばれる技術が広く使われ始めている。ＷｅｂサービスはＨＴＴＰ（Hyper Text Transfer Protocol）やＳＯＡＰ（Simple Object Access Protocol）、 ＸＭＬ（Extensible Markup Language）などのオープンな標準技術をもとに構築されている。
【０００３】
ところで、企業ではインターネットと社内ネットの境界にファイアウォール（防火壁）と呼ばれるシステムを導入することで、インターネットからのアクセスを制限するのが一般的である。このようにファイアウォールが存在する環境でも、企業ネットワーク内部に存在する計算資源を利用するサービスをインターネット上で構成されたサービスから呼び出したいという要求がある。図１は従来のＷｅｂサービスとファイアウォールの関係を説明するための図である。インターネットなどの外部ネットワーク３に接続されたユーザ端末７は、サービス６ａ〜６ｃを介してファイアウォール２を超えて内部ネットワーク２内のサービス５ａ〜５ｃを呼び出す場合、特定のユーザ端末だけがファイアウォール２を超えることができる。
【０００４】
上記要求にこたえるためには、インターネットから社内ネットワークへの通信を可能とする必要がある。このための技術としては、ＶＰＮ（Virtual Private Network）技術を利用する方法と、リバースプロキシ（Reverse Proxy）と呼ばれる技術を利用することが一般的である。ＶＰＮでは、一般的に専用ルーターのような高価な機器を必要とするという問題がある。また、リバースプロキシは、ネットワーク境界（ファイアウォール）に通常の反対向きのプロキシを設置し、内部ネットワークリソースを限定的に外部公開する手法である。しかし、リバースプロキシでは、ファイアウォールもしくは境界ネットワークの構成を変更する必要があるという問題がある。
【０００５】
また、ファイアウォール内部から外部へ通過しやすいＨＴＴＰ（Hyper Text Transfer Protocol、HTTP/1．1 RFC2616）やＨＴＴＰＳ（Hyper Text Transfer Protocol Security、RFC2660）などの通信手段で外部ホストへ接続し、その接続の中で外部ホストからデータを送信できる状態にする技術として、サーバプッシュ、リバーストンネル（Reverse Tunneling）などの技術が提案されている。ＨＴＴＰは、ステートレスでシンプルな通信が特徴あり、クライアントはリクエストをサーバへ送信し、サーバはリクエスト対応したレスポンスを返してセッションが終了する。また、ＨＴＴＰでは、ファイアウォールなどがあっても汎用のプロキシを利用することで透過的な接続が可能となる。ＨＴＴＰでは、クライアントが要求を出してサーバが応答をしたが、サーバプッシュでは情報をサーバ側から決められた各クライアントホストへ自動的に配信することになる。
【０００６】
しかし、サーバプッシュは、圧縮処理等をしていないため、データ更新間隔を短くすると単純にデータ量の更新回数倍となり、結果として全体のトラフィックデータが大きくなり、リアルタイム通信には向かない。また、サーバプッシュでは、サーバが定期的に更新データを配信するため、インタラクティブ通信は考慮されておらず、対話的な通信には向かない。また、動画の配信ではＭＰＥＧ２／ＭＰＥＧ４などストリーム配信に適した他のデータフォーマットを使うのが一般的である。このため、サーバプッシュは、1997年頃に次世代Ｗｅｂ技術として話題になったが、現在ではあまり使われていない。これに対して、接続開始時とは逆方法の通信を実現する接続形態としてリバーストンネルが提案されている（特許文献１参照）。リバーストンネルは、内部から外部へ通信を始めて、トンネル接続を確立する手法である。
【０００７】
また、なりすましを防ぐための一般的な技術として以下のような技術が提案されている。特許文献２では、なりすましが困難になるよう、複合機などへデジタル証明書をインストールする技術が提案されている。また、特許文献３では、電子送信の処理にトークンの代わりにユーザのバイオメトリックスを利用して利用者を認証する技術が提案されている。さらに、特許文献４では、ネットワークゲームのためのセキュリティゲートウェイを用いて、セキュアな通信を可能としている。
【特許文献１】特開２００３−５０７５６号公報
【特許文献２】特開２００４−３２０７１５号公報
【特許文献３】特開２００３−５０９７７５号公報
【特許文献４】特開２００４−５６７８４号公報
【発明の開示】
【発明が解決しようとする課題】
【０００８】
しかしながら、通常のリバーストンネルは、ＨＴＴＰＳやＳＳＬなどのトンネルモードをもつプロトコルを用いての暗号化されたトンネルを作成する。ＨＴＴＰは、ステートレスでシンプルな通信が特徴あり、クライアントはリクエストをサーバへ送信し、サーバはリクエスト対応したレスポンスを返してセッションが終了する。このため、ＨＴＴＰでは、ステートレスな通信を前提として設計されているため、通信路を継続的に保持できないという問題がある。また、このトンネルはＨＴＴＰベースなので簡単になりすましや、改竄される危険性がある。
【０００９】
そこで、本発明は、上記問題点に鑑みてなされたもので、外部ネットワーク内の外部ホストがファイアウォールを越えて内部ネットワーク内の内部ホストとの間でトンネルを構築して通信を行う際に、継続的な通信路の維持が可能で、かつなりすましや改竄される危険性を検知することができる通信システムおよび通信方法を提供することを目的とする。
【課題を解決するための手段】
【００１０】
上記課題を解決するために、本発明は、外部ネットワーク内の外部ホストから内部ネットワーク内の内部ホストへの通信を遮断すると共に前記内部ネットワークから前記外部ネットワークへの通信は選択的に通過させるファイアウォールがある環境で、前記外部ネットワーク内の前記外部ホストから前記内部ネットワーク内の内部ホストへの通信路を構築して通信を行う通信システムであって、前記外部ホストは、前記通信路を維持するのに必要なタイミングに応じて前記通信路を維持するための通信路維持データを前記内部ホストに送信する送信手段と、前記通信路維持データの中に電子署名を施す電子署名手段と、を有することを特徴とする。
【００１１】
本発明によれば、通信路を維持するのに必要なタイミングで通信路維持データを送ることで、外部ネットワーク内の外部ホストがファイアウォールを越えて内部ネットワーク内の内部ホストとの間で通信路を構築して通信を行う際に、継続的な通信路の維持が可能となる。また、通信路を維持するための通信路維持データの中に電子署名を施すことで、接続元は接続先の確かさを検証し、また接続先ホストはそれ自身の確かさを保証することができる。これにより、悪意ある第３者によるなりすましを防止し、改竄を検出するための仕組みを提供することができる。
【００１２】
また、前記内部ホストは、前記通信路を確立するための要求情報を前記外部ホストに送信し、かつ当該要求情報の返信情報を前記外部ホストから受信することにより、前記通信路を確立する確立手段を有し、前記返信情報の受信の後に前記通信路維持データを受信することにより、前記通信路を維持する。前記通信路維持データは前記内部ホスト側での処理不用を示す情報を含むものである。この内部ホスト側での処理不用を示す情報は、何もしないという意味のデータである。前記要求情報及び返信情報はハイパーテキストトランスファプロトコルに基づくものである。前記通信路維持データは、所定の初期値を署名し暗号化したランダム値を含む構成とすることができる。
【００１３】
本発明の通信システムにおいて、前記外部ホストは、前記通信路維持データが、所定の初期値を署名し暗号化したランダム値を含む場合、前記所定の初期値を生成するための擬似乱数生成手段をさらに有する構成とすることができる。前記通信路維持データが、所定の初期値を署名し暗号化したランダム値を含む場合、認証時、前記所定の初期値に基づいて前記ランダム値を生成することにより通信相手を認証する認証手段をさらに有する構成とすることができる。
【００１４】
本発明の通信システムは、前記通信路維持データが、所定の初期値を署名し暗号化したランダム値を含む場合、前記所定の初期値に対して送信側の秘密鍵で署名を施す署名手段をさらに有する構成とすることができる。本発明の通信システムは、前記通信路維持データが、所定の初期値を署名し暗号化したランダム値を含む場合、前記所定の初期値に対して受信側の公開鍵で暗号化を施す初期値暗号化手段をさらに有する構成とすることができる。本発明の通信システムは、前記公開鍵への証明書を交付する認証局をさらに有する構成とすることができる。これにより、データの発行元が信頼のおけるサーバであることを証明するための署名を生成できる。また、接続先ホストとデータの真正性確認をより強固かつ確実に行える。また新規接続ホストが増えた場合の真正性確認が容易になり、スケーラビリティのあるシステム拡張が可能になる。
【００１５】
本発明の通信システムは、リバーストンネル技術を用いて前記通信路を構築する構築手段をさらに有する構成とすることができる。前記外部ホストは、前記内部ネットワーク内のサービス呼出を受け付け、前記内部ホストに前記サービス呼出のためのサービス呼出データを送信するサービス呼出受付手段をさらに有する構成とすることができる。これにより、外部ネットワークからファイアウォールを越えて例えば企業内の内部ネットワーク上に存在するサービスを呼び出すことができる。
【００１６】
本発明の通信システムは、前記通信路を介して送信する送信データに対して暗号化を施す送信データ暗号化手段をさらに有する構成とすることができる。これにより必要に応じてデータの機密性を保障することができる。前記サービス呼出データは、テキストデータである構成とすることができる。前記サービス呼出データは、ＸＭＬデータである構成とすることができる。これにより構造化された文書フォーマットを用いて通信を行うことができる。
【００１７】
本発明は、外部ネットワーク内の外部ホストから内部ネットワーク内の内部ホストへの通信を遮断すると共に前記内部ネットワークから前記外部ネットワークへの通信は選択的に通過させるファイアウォールがある環境で前記外部ネットワークから前記内部ネットワークへの通信路を構築して通信を行う通信方法であって、前記通信路を維持するのに必要なタイミングに応じて前記通信路を維持するための通信路維持データに対して電子署名を施して前記外部ホストから前記内部ホストに送信する送信ステップを有することを特徴とする。
【００１８】
本発明によれば、通信路（トンネル）を維持するのに必要なタイミングで通信路維持データを送ることで、外部ネットワーク内の外部ホストがファイアウォールを越えて内部ネットワーク内の内部ホストとの間で通信路を構築して通信を行う際に、継続的な通信路の維持が可能となる。また、通信路を維持するための通信路維持データの中に電子署名を施すことで、接続元は接続先の確かさを検証し、また接続先ホストはそれ自身の確かさを保証することができる。これにより、悪意ある第３者によるなりすましを防止できる。また通信路維持データの中に含まれた署名データを検証することで、悪意ある第３者による通信維持データの改竄を検出するための仕組みを提供することができる。
【００１９】
前記通信路維持データは、所定の初期値を署名し暗号化したランダム値を含む構成とすることができる。本発明の通信方法は、前記通信路維持データが、所定の初期値を署名し暗号化したランダム値を含む場合、前記所定の初期値を生成するための生成ステップをさらに有する構成とすることができる。本発明の通信方法は、前記通信路維持データが、所定の初期値を署名し暗号化したランダム値を含む場合、認証時、前記所定の初期値に基づいて前記ランダム値を生成することにより通信相手を認証する認証ステップをさらに有する構成とすることができる。
【００２０】
本発明の通信方法は、前記通信路維持データが、所定の初期値を署名し暗号化したランダム値を含む場合、前記所定の初期値に対して送信側の秘密鍵で署名を施す署名ステップをさらに有する構成とすることができる。本発明の通信方法は、前記通信路維持データが、所定の初期値を署名し暗号化したランダム値を含む場合、前記所定の初期値に対して受信側の公開鍵で暗号化を施すステップをさらに有する構成とすることができる。
【００２１】
本発明の通信方法は、前記内部ネットワーク内のサービス呼出を受け付け、前記内部ホストに前記サービス呼出のためのサービス呼出データを送信するステップをさらに有する構成とすることができる。これにより、外部ネットワークからファイアウォールを越えて例えば企業内の内部ネットワーク上に存在するサービスを呼び出すことができる。本発明の通信方法は、前記通信路を介して送信する送信データに対して暗号化を施すステップをさらに有する構成とすることができる。これにより必要に応じてデータの機密性を保障することができる。
【発明の効果】
【００２２】
本発明によれば、外部ネットワーク内の外部ホストがファイアウォールを越えて内部ネットワーク内の内部ホストとの間でトンネルを構築して通信を行う際に、継続的な通信路の維持が可能で、かつなりすましや改竄される危険性を検知することができる通信システムおよび通信方法を提供できる。
【発明を実施するための最良の形態】
【００２３】
以下、本発明を実施するための最良の形態について説明する。図２は、本発明の実施形態に係る通信システム（通信装置）の構成を示す図である。図２に示すように、通信システム１０は、セッションを開始する内部ホスト２０、セッションを受け付ける外部ホスト３０を備える。内部ホスト２０と外部ホスト３０は、ファイアウォール４０を介して接続されている。この通信システム１０は、外部ネットワーク３５内の外部ホスト３０から内部ネットワーク２５内の内部ホスト２０への通信を遮断すると共に内部ネットワーク２５から外部ネットワーク３５への通信は選択的に通過させるファイアウォール４０がある環境で、外部ネットワーク３５内の外部ホスト３０から内部ネットワーク２５内の内部ホスト２０への通信路としてのトンネル５０を構築して通信を行う。
【００２４】
ファイアウォール４０は、インターネットを経由した外部ネットワーク３５からから内部ネットワーク２５への通信を遮断する役割を持つ。一方、内部ネットワーク２５から外部ネットワーク３５への通信は選択的に通過させる機能をもつ。このファイアウォール４０が選択的に通信を許可する場合、内部ネットワーク２５と外部ネットワーク３５の間で通信されるデータパケットの内、予め許可されているパケットのみを通し、それ以外のパケットを遮断するというフィルタ処理を行うばあいもあるし、アプリケーションゲートウェイ（典型的にはＨＴＴＰ  Ｐｒｏｘｙ）といわれる特別なアプリケーションを介した通信のみを許可するような場合もある。フィルタ処理の設定は、通常、送信元端末のＩＰ（Internet Protocol）アドレス、送信先端末のＩＰアドレス、使用プロトコルの種類、及び、ポート番号等を指定することにより行われることが多い。なお、ポート番号とは、ＴＣＰ、ＵＤＰ（User Datagram Protocol）において上位層のプロセスを特定するために使用する識別子である。
【００２５】
内部ホスト２０は、例えば社内のイントラネットなどの内部ネットワーク２５に接続され、内部ネットワーク２５から、外部ネットワーク３５である社外ネットワークに存在する外部ホスト３０へ接続要求を送信する。内部ホスト２０は、暗号化・復号・署名・検証部２１、通信路確立・維持部２２、データ中継部２３を備える。外部ホスト３０は、インターネットなどの外部ネットワーク３５に接続され、内部ホスト２０からの接続要求を受け付ける。外部ホスト３０は、暗号化・復号・署名・検証部３１、通信路確立・維持部３２、データ中継部３３を備える。
【００２６】
まず、内部ホスト２０について説明すると、暗号化・復号・署名・検証部２１は、接続ホスト間で真正性を検証／保証するために、通信データに公開鍵暗号を利用した電子署名を施す機能を有する。また、暗号化・復号・署名・検証部２１は、送信データを暗号化することでデータの秘匿性を確保することも可能である。
【００２７】
暗号・復号化部２１および３１は、トンネル５０を介して送信する送信データに対して暗号化を施す機能を有し、必要に応じて、ＸＭＬデータの一部を暗号化もしくは復号化する。具体的には、暗号・復号化部２１および３１は、送信データが構造化された構造化データであり、送信データ中に機密情報がある場合、ＸＭＬ暗号化のような暗号化技術を用いて、構造化されたデータの一部分（必要部分）のみ暗号化する。
【００２８】
暗号化・復号・署名・検証部２１は、トンネル５０内で交換される通信データに更に暗号化を施すことにより、通信内容の秘匿性をより高めた暗号化トンネリングを実現することもできる。かかる暗号化トンネリングの技術を用いれば、本来無接続を基本とするパケット通信ネットワークにおいて、端末−端末間にセキュリティの高い接続リンクを実現する閉じた仮想的なネットワーク、即ちＶＰＮのような機能を提供することが可能となる。データ中継部２３は、確立されたトンネル５０を使って、端末３６のプログラム３７から受け取ったデータを中継する機能を有する。
【００２９】
また、暗号化・復号・署名・検証部３１は、トンネル５０を介して送信する送信データに対して暗号化し、又は復号化をする機能を有する。暗号化・復号・署名・検証部３１は、送信データが構造化された構造化データであり、送信データ中に機密情報がある場合、ＸＭＬ暗号化のような暗号化技術を用いて、構造化されたデータの一部分（必要部分）のみ暗号化する。暗号化・復号・署名・検証部３１は、構造化データがＳＯＡＰ形式の文書である場合、構造化データのうちボディ部分だけを暗号化して、ヘッダー部分を暗号化しないようにする。また、暗号化・復号・署名・検証部３１は、接続ホスト間で接続先の認証や通信内容の真正性を検証／保証するために、通信データに公開鍵暗号を利用した電子署名を施す機能を有する。
【００３０】
暗号化・復号・署名・検証部３１は、通信のペイロード部分の一部又は全部に対して電子署名を施す。ここで、ペイロードとは、パケット通信において、パケットの総サイズのうち、宛先アドレスや発信元アドレスなどの管理情報（ヘッダ情報）を除いた正味のデータのことをいう。暗号化・復号・署名・検証部３１は、通信のペイロード部分の一部又は全部に対して、データの重要度に応じて公開鍵を用いて暗号化する。暗号化・復号・署名・検証部２１および３１は、公開鍵の代わりに、認証局から発行された公開鍵証明書を使うとなおよい。
【００３１】
通信路確立・維持部３２は、内部ホスト２０の通信路確立・維持部２２との間で、リバーストンネル技術を用いて通信路を暗号化せずにトンネル５０を構築する。通信路確立・維持部３２は、双方向接続のための通信データを送受信し、通信路を確立し、維持する。
【００３２】
通信路確立・維持部３２は、通信路を維持するために、トンネル５０を維持するのに必要なタイミングに応じてトンネル５０を維持するための通信路維持データを送信する。この通信路維持データは、例えばＮＯＰ(No Operation: CPU（Central Processing Unit）命令の１つ)のような、何もしないという意味のデータと、ランダム（Random）値とを含む。通信路確立・維持部３２は、接続確立後は接続を維持するために適切なタイミングでＮＯＰデータを送信する。例えば通信路確立・維持部３２は、サービスを呼び出す必要がないときに、通信路維持データを送信する。
【００３３】
上記ランダム値は、擬似乱数発生装置により生成された予測しにくい初期値を署名し暗号化したデータである。内部ホスト２０と外部ホスト３０は、通信開始時に初期値を交換して初期値を共有する。以降、内部ホスト２０と外部ホスト３０は、この初期値をベースに同じ処理工程のもとに次にランダム値を生成し、同じ処理を繰り返すことで通信相手の認証が相互に可能となる。
【００３４】
さらに、上述した暗号化・復号・署名・検証部３１は、通信路維持データの中に電子署名を施す機能と、認証時、初期値に基づいてランダム値を生成することにより通信相手を認証する機能と、初期値に対して送信側の秘密鍵で署名を施す機能と、初期値に対して受信側の公開鍵で暗号化を施す機能とを有する。通信システム１０では上記公開鍵への証明書を交付する認証局をさらに設けてもよい。
【００３５】
データ中継部３３は、トンネルを使って端末３６からのデータを中継する。また、データ中継部３３は、内部ネットワーク２５内のサービス呼出を受け付け、内部ホスト２０にサービス呼出のためのサービス呼出データを送信する。このとき、データ中継部３３は、サービスを呼び出すために、ＳＯＡＰの様な構造化されたテキストデータ(例えばＸＭＬデータ)を用いる。
【００３６】
次に、トンネル５０を確立する際の内部ホスト２０の処理について説明する。図３はトンネル５０を確立する際の内部ホスト２０の処理フローチャートである。内部ホスト２０から外部ホスト３０による通信によって開始する。まず、内部ホスト２０の通信路確立・維持部２２は、プロキシサーバなどを経由し、インターネット上の外部ホスト３０へＨＴＴＰでトンネルを確立するためのトンネル確立要求情報を送信する（ステップＳ１１）。内部ホスト２０の通信路確立・維持部２２は、外部ホストからの応答がない場合（ステップＳ１２で「Ｎ」）はＳ１１へ戻る。一方、外部ホストからの応答を受信した場合（ステップＳ１２で「Ｙ」）で、受信した応答がリセット応答だった場合（ステップＳ１３で「Ｙ」）はトンネルが確立できないと判断しトンネルを切断する（ステップＳ１４）。一方、受信した応答が正常な応答だった場合（ステップＳ１３で「Ｎ」）で、かつ正常な応答がトンネル維持応答だった場合（ステップＳ１５で「Ｙ」）はトンネル５０が確立していると判断する。
【００３７】
内部ホスト２０の通信路確立・維持部２２は、トンネル５０が確立していると判断している場合で、受信した応答が通信路を維持するためのデータを受信した場合（ステップＳ１５で「Ｙ」）にはトンネル５０の維持を行い（ステップＳ１６）、ステップＳ１２へ戻る。一方受信した応答がサービス呼び出しだった場合（ステップＳ１５で「Ｎ」）は内部サービスを呼び出し（ステップＳ１７）、ステップＳ１２へ戻る。内部ホスト２０の通信路確立・維持部２２は、リセット応答を受け取った場合はトンネル確立の維持が不要と判断し、トンネル切断を行う（ステップＳ１４）。
【００３８】
次に、トンネル５０を確立する際の外部ホスト３０の処理について説明する。図４は、トンネル５０を確立する際の外部ホスト３０の処理フローチャートである。外部ホスト３０の通信路確立・維持部３２は、トンネル確立要求を受信する（ステップＳ２１）。外部ホスト３０の通信路確立・維持部３２は、トンネル確立要求の相手先が信頼できる相手先か否かを判断し、信頼できない相手先であると判断した場合（ステップＳ２２で「Ｎ」）、リセット応答を送出する（ステップＳ２３）。
【００３９】
外部ホスト３０の通信路確立・維持部３２は、相手先が信頼できる相手先である場合（ネゴシエーション後、ステップＳ２２で「Ｙ」）、トンネル確立処理を行う（ステップＳ２４）。ここで、やりとりする通信データには電子署名が施されている。電子署名を検証することで相互に接続先ホストの信憑性を確認することができる。
【００４０】
通信路確立・維持部３２は、通信路のセッションが切れないように通信路を維持するためだけの通信路維持応答を生成する。外部ホスト３０の通信路確立・維持部３２は、生成した通信路維持応答を内部ホスト２０へ送信する（ステップＳ２５）。この通信路維持応答を送信することにより、ファイアウォール４０等を挟んでサービス呼び出しのための通信路を確立して、維持できる。通信路維持データは、上記と同様に電子署名が施してある。これにより、ファイアウォール４０等を挟んだ接続において、接続先の真正性を検証しながら、サービス呼び出し通信のための通信路を確立して、維持できる。
【００４１】
外部ホスト３０の通信路確立・維持部３２は、トンネル確立の維持が不要と判断した場合にはトンネル終了要求を行う（ステップＳ２６）。なお、セッションハイジャックされた場合には上述した通信路維持応答を検証することで検知可能である。万一接続断が発生したら、予め決められた時間で内部ホスト２０から再接続要求を送信する。通信システム１０によれば、トンネル５を維持するのに必要なタイミングで通信路維持データを送ることで、外部ネットワーク３５内の外部ホスト３０がファイアウォール４０を越えて内部ネットワーク２５内の内部ホスト２０との間でトンネルを構築して通信を行う際に、継続的な通信路の維持が可能となる。これによって、端末３６は、外部ホスト３０内のデータ中継部３３、トンネル５０、内部ホスト２０内のデータ中継部２３を介して、端末２６へ継続的にデータを送ることができる。
【００４２】
図５は、認証・初期値共有処理のフローチャートである。まず、送信側である内部ホスト２０内の擬似乱数発生装置は擬似乱数を生成する（ステップＳ３１）。この擬似乱数が初期値となる。次に、内部ホスト２０の暗号化・復号・署名・検証部２１は、送信側秘密鍵に基づいて初期値に対して電子署名を施す（ステップＳ３２）。次に、内部ホスト２０の暗号化・復号・署名・検証部２１は、受信側である外部ホスト３０の公開鍵に基づいて初期値に対して暗号化処理を行う（ステップＳ３３）。次に、内部ホスト２０の暗号化・復号・署名・検証部２１は、署名し暗号化した初期値を外部ホスト３０へ送出する（ステップＳ３４）。
【００４３】
受信側の外部ホスト３０は、内部ホスト２０より署名し暗号化された初期値を受信する（ステップＳ３５）。外部ホスト３０の暗号化・復号・署名・検証部３１は、受信側である外部ホスト３０の秘密鍵で署名し暗号化された初期値に対して復号処理を行う（ステップＳ３６）。外部ホスト３０の暗号化・復号・署名・検証部３１は、送信側である内部ホスト２０の公開鍵でデータの検証処理（認証処理）を行う（ステップＳ３７）。このようにして、内部ホスト２０と外部ホスト３０で初期値を共有することができる（ステップＳ３８）。尚、上記では内部ホスト２０に擬似乱数発生装置を設けて初期値を外部ホスト２３へ送るようにしたが、擬似乱数発生装置を外部ホスト３０側に設けて初期値を内部ホスト２０へ送るようにしてもよい。
【００４４】
上記通信システムによれば、トンネルを維持するのに必要なタイミングで通信路維持データを送ることで、外部ネットワーク内の外部ホストがファイアウォールを越えて内部ネットワーク内の内部ホストとの間でトンネルを構築して通信を行う際に、継続的な通信路の維持が可能となる。また、トンネルを維持するための通信路維持データの中に電子署名を施すことで、接続元は接続先の確かさを検証し、また接続先ホストはそれ自身の確かさを保証することができる。これにより、悪意ある第３者によるなりすましを防止や、通信内容の改竄を検出するための仕組みを提供することができる。
【００４５】
また、ファイアウォールがあっても透過的に接続が可能であり、双方向通信が可能な通信路であり、ネットワーク管理者による監視が可能であるため、ネットワーク構成やファイアウォールシステムを変更せずに、ファイアウォールなどで防御された内部ネットワーク内にあるリソースへのアクセスを実現することができる。また、上記暗号化・復号・署名・検証部２１および３１は、通信データに公開鍵暗号を利用した電子署名を施し、相手側では受信した電子署名を検証すると良い。これにより、なりすまし、データの改竄等を検出できる。またデータを暗号化することでデータの秘匿性を確保することもできる。これによりファイアウォール等を挟んだ接続において、接続先の真正性や通信内容の完全性を検証できる。
【００４６】
なお、本発明による通信方法は、通信システム１０により実現される。内部ホスト２０および外部ホスト３０は、例えば、ＣＰＵ、ＲＯＭ(Read Only Memory)、ＲＡＭ(Random Access Memory)等を用いたマイクロコンピュータにより実現される。ＣＰＵが所定のプログラムを実行することにより通信方法の各機能が実現される。
【００４７】
以上本発明の好ましい実施例について詳述したが、本発明は係る特定の実施例に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形、変更が可能である。
【図面の簡単な説明】
【００４８】
【図１】従来のＷｅｂサービスとファイアウォールの関係を説明するための図である。
【図２】本発明の実施形態に係る通信システム（通信装置）の構成を示す図である。
【図３】トンネル５０を確立する際の内部ホスト２０の処理フローチャートである。
【図４】トンネル５０を確立する際の外部ホスト３０の処理フローチャートである。
【図５】認証・初期値共有処理のフローチャートである。
【符号の説明】
【００４９】
１０  通信システム
２０  内部ホスト
２１  暗号化・復号・署名・検証部
２２  通信路確立・維持部
２３  データ中継部
３０  外部ホスト
３１  暗号化・復号・署名・検証部
３２  通信路確立・維持部
３３  データ中継部
【図１】
2008160497.tif 000003
【図２】
2008160497.tif 000004
【図３】
2008160497.tif 000005
【図４】
2008160497.tif 000006
【図５】
2008160497.tif 000007