(57)【要約】【課題】データの欠落に対して、良好な対処を行うＵＤＰ通信システムを提供する。【解決手段】ＵＤＰｓｅｃ１６ｂから、ＵＤＰｅｆ１６ｃに供給されるデータパケットは、番号付加部３１に供給され、最初のパケットに任意の番号を付加し、次のパケットからは連続した数字をＵＤＰｓｅｃ付加情報に付加して、ＵＤＰ１６ａに送出する。この送出と同時に、付加された数字とパケットのコピーが記憶部３２に記憶される。また、記憶部３２では、タイマ部３３の指定時間が経過すると、古い番号の付加されたパケットから順に記憶データを破棄する。さらに、ＵＤＰ１６ａで受信されたパケットが再送処理部３４に供給される。この再送処理部３４は、再送要求パケットを受け取り、記憶部３２を確認して、記憶部３２に再送要求されたパケットが有れば、そのパケットをＵＤＰ１６ａに送出して再送を行い、無ければ再送要求パケットを破棄する。【選択図】図４
2008060817.tif 000002
【特許請求の範囲】
【請求項１】
ネットワークを介して送信装置の情報を受信装置で受信する通信システムであって、
ＵＤＰプロトコルに通信相手との相互認証及び暗号化機能を追加して電子化情報の通信を行う場合に、
前記送信装置には、前記ＵＤＰプロトコルの通信相手との相互認証及び暗号化機能からの情報のパケットに連番のパケット番号を付加すると共に前記パケット番号の付加されたパケットを前記ＵＤＰプロトコルに送出する手段と、前記パケットとパケット番号を記憶する手段と、前記受信装置からの再送要求に対して要求された前記パケット番号が前記記憶されているか否かを判断して再送処理を行う手段とを備え、
前記パケット番号が前記記憶されているときに前記記憶された前記パケットを前記ＵＤＰプロトコルに再送出し、
前記受信装置には、前記ＵＤＰプロトコルから送付された前記パケットとパケット番号を記憶して前記パケット番号に従ってソートすると共に前記パケットを前記ＵＤＰプロトコルの通信相手との相互認証及び暗号化機能に送出する手段と、前記パケット番号の異常を判断する手段とを備え、
前記パケット番号に異常が判断されたときに欠落したパケット番号について前記送信装置にパケットの再送信を要求する処理を行う
ことを特徴とする通信システム。
【請求項２】
前記パケット番号は、前記ＵＤＰプロトコルの通信相手との相互認証及び暗号化機能の付加情報の領域に設ける
ことを特徴とする請求項１記載の通信システム。
【請求項３】
前記パケット番号に異常が判断されても指定時間が経過していたときには前記再送信を要求する処理を行わない
ことを特徴とする請求項１記載の通信システム。
【請求項４】
ネットワークを介してクライアント装置に情報を送信する通信システムに用いられるウェブサーバ装置であって、
ＵＤＰプロトコルに通信相手との相互認証及び暗号化機能を追加して電子化情報の通信を行う場合に、
前記ＵＤＰプロトコルの通信相手との相互認証及び暗号化機能からの情報のパケットに連番のパケット番号を付加すると共に前記パケット番号の付加されたパケットを前記ＵＤＰプロトコルに送出する手段と、
前記パケットとパケット番号を記憶する手段と、
前記クライアント装置からの再送要求に対して要求された前記パケット番号が前記記憶されているか否かを判断して再送処理を行う手段と、を備え、
前記パケット番号が前記記憶されているときに前記記憶された前記パケットを前記ＵＤＰプロトコルに再送出する
ことを特徴とするウェブサーバ装置。
【請求項５】
前記パケット番号は、前記ＵＤＰプロトコルの通信相手との相互認証及び暗号化機能の付加情報の領域に設ける
ことを特徴とする請求項４記載のウェブサーバ装置。
【請求項６】
ネットワークを介してウェブサーバ装置の情報を受信する通信システム用いるクライアント装置であって、
ＵＤＰプロトコルに通信相手との相互認証及び暗号化機能を追加して電子化情報の通信を行う場合に、
前記ＵＤＰプロトコルから送付された前記パケットとパケット番号を記憶して前記パケット番号に従ってソートすると共に前記パケットを前記ＵＤＰプロトコルの通信相手との相互認証及び暗号化機能に送出する手段と、
前記パケット番号の異常を判断する手段と、を備え、
前記パケット番号に異常が判断されたときに欠落したパケット番号について前記ウェブサーバ装置にパケットの再送信を要求する処理を行う
ことを特徴とするクライアント装置。
【請求項７】
前記パケット番号に異常が判断されても指定時間が経過していたときには前記再送信を要求する処理を行わない
ことを特徴とする請求項６記載のクライアント装置。
【請求項８】
ネットワークを介して送信装置の情報を受信装置で受信する通信を行うための通信プログラムであって、
ＵＤＰプロトコルに通信相手との相互認証及び暗号化機能を追加して電子化情報の通信を行わせる機能と、
前記送信装置には、前記ＵＤＰプロトコルの通信相手との相互認証及び暗号化機能からの情報のパケットに連番のパケット番号を付加すると共に前記パケット番号の付加されたパケットを前記ＵＤＰプロトコルに送出する機能と、前記パケットとパケット番号を記憶する機能と、前記受信装置からの再送要求に対して要求された前記パケット番号が前記記憶されているか否かを判断して再送処理を行う機能とを設け、
前記受信装置には、前記ＵＤＰプロトコルから送付された前記パケットとパケット番号を記憶して前記パケット番号に従ってソートすると共に前記パケットを前記ＵＤＰプロトコルの通信相手との相互認証及び暗号化機能に送出する機能と、前記パケット番号の異常を判断する機能とを設け、
前記受信装置は、前記パケット番号に異常が判断されたときに欠落したパケット番号について前記送信装置にパケットの再送信を要求する処理を行い、
前記送信装置は、前記パケット番号が前記記憶されているときに前記記憶された前記パケットを前記ＵＤＰプロトコルに再送出し、
前記各機能を前記送信装置及び受信装置でそれぞれ実行できるようにした
ことを特徴とする通信を行うための通信プログラム。
【請求項９】
前記パケット番号は、前記ＵＤＰプロトコルの通信相手との相互認証及び暗号化機能の付加情報の領域に設ける
ことを特徴とする請求項８記載の通信を行うための通信プログラム。
【請求項１０】
前記パケット番号に異常が判断されても指定時間が経過していたときには前記再送信を要求する処理を行わない
ことを特徴とする請求項８記載の通信を行うための通信プログラム。
【請求項１１】
請求項８〜１０のいずれか一つに記載された通信を行うための通信プログラムをコンピュータ組織で読み取り実行できるように記録した記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、例えばインターネットを介して動画配信等を行う場合に使用して好適な通信システム、ウェブサーバ装置、クライアント装置、通信を行うための通信プログラム及びプログラムを記録した記録媒体に関する。特に、ウェブサーバ装置とクライアント装置との間の通信において、上位アプリケーションを変更することなく相互認証と暗号化を行うことができ、盗聴、漏洩、なりすまし、改ざん等に対する防御に強く、さらに良好な通信を行うことができるようにするものである。
【背景技術】
【０００２】
近年、インターネットを利用した通信は、パソコンさえあれば、それをネットワークに接続するだけで、誰でもネットワーク上のコンピュータにアクセスできるため、社会の中で急速に普及拡大している。一方、このインターネット通信の普及拡大に伴って、ハッカー（hacker）やクラッカー（Cracker）が他人のコンピュータシステムに侵入して、ソフトウエアやデータを盗み見たり、改竄や破壊を行ったりするという社会問題も大きくなっている。
【０００３】
具体的な不正妨害のケースとしては、まず第１に、中心的なシステムが使えなくなるように、ネットワークから大量のメッセージを送りつけコンピュータシステムの運用を妨害するシステム妨害がある。この妨害によってホストが過負荷になるとシステムダウンに陥ってしまうことも起こりうる。
【０００４】
また、ホストのパスワードを入手し、機密情報を盗んだり、情報の改竄や破壊を行ったりする「不正アクセスとなりすまし」の不正妨害がある。この妨害にはコンピュータが保有する情報を勝手に書き換え、人を陥れる卑劣のものもある。また、特定のパソコンに忍び込み、メールアドレスやパスワードなど個人の機密データを搾取するスパイウエアといわれる不正行為も発生している。このようにネットワークに接続したコンピュータが持つデータベースの内容を不正に盗み見る、いわゆる盗聴行為も頻繁に行われている可能性も否定できない。
【０００５】
また、サイト若しくはサーバの運営元で、意図的に個人情報を盗むといった行為や、社内に潜むスパイなどによるサイバーテロ（Cyber terrorism）といった危機も全くないとはいえない状況である。
【０００６】
さらに、他人のコンピュータにコンピュータ障害をもたらすプログラムである「ウイルス」を送り込むという不正妨害が最近多くなっている。この送り込まれたウイルスに、メールなどを自宅で使用したパソコンが感染し、それを社内に接続した瞬間に社内のパソコン全体が感染したり、ウイルスがコンピュータの中のファイルを破壊させたり、更には、ネットワーク全体をダウンさせたりするといった問題も生じている。
【０００７】
このため、従来のＴＣＰ／ＩＰ（Transmission Control Protocol/Internet Protocol）やＵＤＰ（User Datagram Protocol）を利用したインターネット上での通信においては、データの「漏洩」「改竄」等を防ぐ機能として、ＩＰｓｅｃ（アイピーセック：Security Architecture for Internet Protocol）やＳＳＬ（Secure Socket Layer）と呼ばれる暗号化通信が利用されている。
【０００８】
ＩＰｓｅｃの特徴は、単に特定のアプリケーションだけを暗号化するのではなく、ホストから送信されるあらゆる通信をＩＰレベルで暗号化する点にある。これによりユーザはアプリケーションを意識することなく安全な通信を可能とすることができる。また、ＩＰｓｅｃは、将来にわたって使えるように、それ自体の仕組みを変えることなく使用する暗号アルゴリズムを変更することを可能としている。
【０００９】
また、ＳＳＬを利用することにより、クライアントとサーバは、ネットワーク上でお互いを認証できるようになり、クレジットカード情報などの機密性の高い情報を暗号化してやり取りすることが可能となる。これにより、データの盗聴、再送攻撃（ネットワーク上に流れたデータを盗聴して何度も繰り返して送ってくる攻撃）、なりすまし（本人の振りをして通信する）、データの改竄などを防止することができる。
【００１０】
本発明に用いられる暗号化通信では、トランスポート層（ＯＳＩの第４層）にあるＴＣＰ層に暗号化機能を追加している。このトランスポート層は、各ノード上で実行されている２つのプロセス間で、エラーのない、仮想的な通信路を実現するためのプロトコル層である。なお、ネットワーク層ではデータを送ることはできるが、そのデータが確実に相手に届くという保証はない。また、送信した順に正しくデータが届くという保証もない。
【００１１】
そこで、アプリケーションにとって使いやすくするために、エラーのない通信路を提供するのがトランスポート層である。そして、このような第４層のトランスポート層に暗号化機能を追加して、外部からの不正侵入に強い通信システムを実現した例は、本発明者らが世界に先駆けて提案したものである。本発明者らはこの暗号化通信システムを「ＴＣＰ２」と命名している（特許文献１参照）。
【００１２】
また、本発明者らは、さらにこのような「ＴＣＰ２」を、同じくトランスポート層（ＯＳＩの第４層）にあるＵＤＰ層に応用する技術についても提案を行っている（特許文献２参照）。
【特許文献１】国際公開ＷＯ２００５／０１５８２７号パンフレット
【特許文献２】特開２００３−４１９８６４号公報
【発明の開示】
【発明が解決しようとする課題】
【００１３】
しかしながら、特許文献２に記載の発明では、単に特許文献１に記載されたＴＣＰ２をＵＤＰ層に応用することが示されているだけであり、さらにこの技術を利用してＵＤＰによるデータ伝送において円滑に処理を行うことに関しては示されていない。そこで本発明の目的は、発明者らが先に提案した「ＴＣＰ２」を利用したＵＤＰによるデータ伝送において、新たな通信システムを提供することにある。すなわち、本発明においては、特にデータ伝送に欠落が生じたときに、その対処を良好に行うようにした通信システムを提供することである。
【課題を解決するための手段】
【００１４】
上記の課題を解決し、本発明の目的を達成するため、請求項１に記載された発明は、ネットワークを介して送信装置の情報を受信装置で受信する通信システムであって、ＵＤＰプロトコルに通信相手との相互認証及び暗号化機能を追加して電子化情報の通信を行う場合に、送信装置には、ＵＤＰプロトコルの通信相手との相互認証及び暗号化機能からの情報のパケットに連番のパケット番号を付加すると共にパケット番号の付加されたパケットをＵＤＰプロトコルに送出する手段と、パケットとパケット番号を記憶する手段と、受信装置からの再送要求に対して要求されたパケット番号が記憶されているか否かを判断して再送処理を行う手段とを備え、パケット番号が記憶されているときに記憶されたパケットをＵＤＰプロトコルに再送出し、受信装置には、ＵＤＰプロトコルから送付されたパケットとパケット番号を記憶してパケット番号に従ってソートすると共にパケットをＵＤＰプロトコルの通信相手との相互認証及び暗号化機能に送出する手段と、パケット番号の異常を判断する手段とを備え、パケット番号に異常が判断されたときに欠落したパケット番号について送信装置にパケットの再送信を要求する処理を行うことを特徴とする通信システムである。
【００１５】
請求項２に記載の通信システムにおいては、パケット番号は、ＵＤＰプロトコルの通信相手との相互認証及び暗号化機能の付加情報の領域に設けることを特徴とするものである。
【００１６】
請求項３に記載の通信システムにおいては、パケット番号に異常が判断されても指定時間が経過していたときには再送信を要求する処理を行わないことを特徴とするものである。
【００１７】
また、本発明の目的を達成するため、請求項４に記載された発明は、ネットワークを介してクライアント装置に情報を送信する通信システムに用いられるウェブサーバ装置であって、ＵＤＰプロトコルに通信相手との相互認証及び暗号化機能を追加して電子化情報の通信を行う場合に、ＵＤＰプロトコルの通信相手との相互認証及び暗号化機能からの情報のパケットに連番のパケット番号を付加すると共にパケット番号の付加されたパケットをＵＤＰプロトコルに送出する手段と、パケットとパケット番号を記憶する手段と、クライアント装置からの再送要求に対して要求されたパケット番号が記憶されているか否かを判断して再送処理を行う手段とを備え、パケット番号が記憶されているときに記憶されたパケットをＵＤＰプロトコルに再送出することを特徴とするウェブサーバ装置である。
【００１８】
請求項５に記載のウェブサーバ装置においては、パケット番号は、ＵＤＰプロトコルの通信相手との相互認証及び暗号化機能の付加情報の領域に設けることを特徴とするものである。
【００１９】
本発明の目的を達成するため、請求項６に記載された発明は、ネットワークを介してウェブサーバ装置の情報を受信する通信システム用いるクライアント装置であって、ＵＤＰプロトコルに通信相手との相互認証及び暗号化機能を追加して電子化情報の通信を行う場合に、ＵＤＰプロトコルから送付されたパケットとパケット番号を記憶してパケット番号に従ってソートすると共にパケットをＵＤＰプロトコルの通信相手との相互認証及び暗号化機能に送出する手段と、パケット番号の異常を判断する手段とを備え、パケット番号に異常が判断されたときに欠落したパケット番号についてウェブサーバ装置にパケットの再送信を要求する処理を行うことを特徴とするクライアント装置である。
【００２０】
請求項７に記載のクライアント装置においては、パケット番号に異常が判断されても指定時間が経過していたときには再送信を要求する処理を行わないことを特徴とするものである。
【００２１】
本発明の目的を達成するため、請求項８に記載された発明は、ネットワークを介して送信装置の情報を受信装置で受信する通信を行うための通信プログラムであって、ＵＤＰプロトコルに通信相手との相互認証及び暗号化機能を追加して電子化情報の通信を行わせる機能と、送信装置には、ＵＤＰプロトコルの通信相手との相互認証及び暗号化機能からの情報のパケットに連番のパケット番号を付加すると共にパケット番号の付加されたパケットをＵＤＰプロトコルに送出する機能と、パケットとパケット番号を記憶する機能と、受信装置からの再送要求に対して要求されたパケット番号が記憶されているか否かを判断して再送処理を行う機能とを設け、受信装置には、ＵＤＰプロトコルから送付されたパケットとパケット番号を記憶してパケット番号に従ってソートすると共にパケットをＵＤＰプロトコルの通信相手との相互認証及び暗号化機能に送出する機能と、パケット番号の異常を判断する機能とを設け、受信装置は、パケット番号に異常が判断されたときに欠落したパケット番号について送信装置にパケットの再送信を要求する処理を行い、送信装置は、パケット番号が記憶されているときに記憶されたパケットをＵＤＰプロトコルに再送出し、各機能を送信装置及び受信装置でそれぞれ実行できるようにしたことを特徴とする通信を行うための通信プログラムである。
【００２２】
請求項９に記載の通信プログラムにおいては、パケット番号は、ＵＤＰプロトコルの通信相手との相互認証及び暗号化機能の付加情報の領域に設けることを特徴とするものである。
【００２３】
請求項１０に記載の通信プログラムにおいては、パケット番号に異常が判断されても指定時間が経過していたときには再送信を要求する処理を行わないことを特徴とするものである。
【００２４】
また、本発明の目的を達成するため、請求項１１に記載された発明は、請求項８〜１０のいずれか一つに記載された通信を行うための通信プログラムをコンピュータ組織で読み取り実行できるように記録した記録媒体である。
【発明の効果】
【００２５】
本発明の通信システム、ウェブサーバ装置、クライアント装置、通信を行うための通信プログラム及びプログラムを記録した記録媒体によれば、ＴＣＰ２機能を使用して、ウェブサーバ装置と、クライアント装置との間のデータを暗号化したまま転送することができるので、他人に知られることなく、権限のあるものだけがデータの内容を知ることができると共に、データ伝送に欠落が生じたときに、その対処を良好に行うようにした通信システムを提供できるようになる。
【発明を実施するための最良の形態】
【００２６】
以下、図面を参照しながら本発明の実施の形態の例を説明する。
図１は、本発明の通信システム、ウェブサーバ装置、クライアント装置、通信を行うための通信プログラム及びプログラムを記録した記録媒体に適用される暗号化及び通信を円滑に行うための機能を実現するＵＤＰを含むＴＣＰ２のプロトコルスタックを示すものである。
【００２７】
＜ＴＣＰ２プロトコルスタックの説明＞
このプロトコルスタックには、ＯＳＩの７階層の物理層（第１層）とデータリンク層（第２層）に相当する階層に、ＮＩＣ（Network Interface Card）ドライバ（Driver）１１が配列されている。このＮＩＣドライバ１１は、コンピュータなどのハードウエアをネットワークに接続するための手段であって、その内容はデータ送受信制御ソフトウエアである。例えば、Ethernet（登録商標）に接続するためのＬＡＮボードまたはＬＡＮカードなどがこれに相当する。
【００２８】
第３層のネットワーク層には、一部がトランスポート層（第４層）まで伸びたＩＰエミュレータ（emulator）１３が存在している。上記トランスポート層に延びた部分には、トランスポートとしての機能は実装しておらず、セッション層（第５層）にネットワーク層の機能を提供しているだけある。このＩＰエミュレータ１３は、暗号化通信を行うプロトコルである「ＩＰｓｅｃｏｎ ＣＰ」１３ｂと、「ＩＰ ｏｎ ＣＰ」１３ａを用途に応じて切り換えて使う働きをするものである。
【００２９】
ここで、「ｏｎ ＣＰ」とは、クラッキング・プロテクタ（ＣＰ）による「進入」「攻撃」の監視、破棄、切断ないし通過制限の対象となる、または設定によりなりうることを示している。すなわち、「ＩＰｓｅｃｏｎ ＣＰ」１３ｂ及び「ＩＰ ｏｎ ＣＰ」１３ａは、それぞれ本来のＩＰ、若しくはＩＰｓｅｃの機能を有すると同時に、それぞれがクラッキング・プロテクタ（ＣＰ）の機能を持つ。なお、以下の説明においても、「ｏｎＣＰ」には同様の意味を持つものとする。
【００３０】
ネットワーク層には「ＡＲＰ（Address Resolution Protocol）ｏｎ ＣＰ」１２が配列されている。この「ＡＲＰｏｎ ＣＰ」１２は、クラッキングへの保護対策を具備したＩＰアドレスからEthernet（登録商標）の物理アドレスであるＭＡＣ（Media Access Control）アドレスを求めるのに使われるプロトコルである。ＭＡＣは、媒体アクセス制御と呼ばれる、ＬＡＮなどで利用される伝送制御技術であり、データの送受信単位であるフレームの送受信方法やフレームの形式、誤り訂正などを規定する技術として利用されている。
【００３１】
ここで、ＩＰエミュレータ１３は、本発明によるセキュリティ機能を、従来のＩＰ周辺のスタックに整合させるためのソフトウエア、またはファームウエアである。すなわち、ＩＰエミュンレータ１３は、その機能をＩＣＭＰ（Internet Control Message Protocol）１４ａ、ＩＧＭＰ（Internet Group Management Protocol）１４ｂ、さらに後述するＴＣＰ、ＵＤＰ、ソケット（Socket）インターフェース等に整合させるためのソフトウエア、またはファームウエア、ないしはハードウエア（電子回路、電子部品）である。
【００３２】
従って、このＩＰエミュレータ１３により、「ＩＰｓｅｃ ｏｎ ＣＰ」１３ｂで行われる暗号化・復号化及び必要な認証情報付加・認証等の処理に対し、その前後の適合処理を行うことができる。なお、ＩＣＭＰ１４ａは、ＩＰのエラーメッセージや制御メッセージを転送するプロトコルである。また、ＩＧＭＰ１４ｂは、同一のデータを複数のホストに効率よく配送、または配送を受けるために構成されるホストのグループを制御するためのプロトコルである。
【００３３】
ＩＰエミュレータ１３の上層のトランスポート層（第４層）には、ＴＣＰエミュレータ１５とＵＤＰエミュレータ１６が配置されている。ここで、ＴＣＰエミュレータ１５及びＵＤＰエミュレータ１６は、それぞれ暗号化通信を行うプロトコルである「ＴＣＰｓｅｃｏｎ ＣＰ」１５ｂ及び「ＵＤＰｓｅｃ ｏｎ ＣＰ」１６ｂと、通常の通信プロトコルである「ＴＣＰ ｏｎ ＣＰ」１５ａ及び「ＵＤＰ ｏｎ ＣＰ」１６ａと、を有し、これらを用途に応じて切り換えて使う働きをする。
【００３４】
なお、ＴＣＰ２の最も特徴とされる点は、トランスポート層（第４層）に、「ＴＣＰｓｅｃｏｎ ＣＰ」１５ｂ及び「ＵＤＰｓｅｃ ｏｎ ＣＰ」１６ｂの暗号化通信プロトコルを搭載したことである。また、この構成において、ＵＤＰエミュレータ１６では、暗号化通信を行う「ＵＤＰｓｅｃｏｎ ＣＰ」１６ｂは、通常の通信を行う「ＵＤＰ ｏｎ ＣＰ」１６ａを介して設けられているものである。
【００３５】
そして本発明においては、これらの「ＵＤＰ ｏｎ ＣＰ」１６ａと「ＵＤＰｓｅｃ ｏｎ ＣＰ」１６ｂの間に、円滑な通信を実現するためのＵＤＰｅｆ（error free）１６ｃのプロトコルが設けられる。すなわち、このＵＤＰｅｆ１６ｃは、後で詳述するように、「ＵＤＰ ｏｎ ＣＰ」１６ａと「ＵＤＰｓｅｃ ｏｎ ＣＰ」１６ｂとの間でデータの遣り取りをコントロールすることで、データの欠落などに対する問題を解決しているものである。
【００３６】
さらに、このトランスポート層（第４層）の上層のセッション層（第５層）には、ＴＣＰ及びＵＤＰ等のプロトコルとデータのやりとりを行うソケット（socket）インターフェース１７が設けられている。このソケットは、ＩＰアドレスとポート番号とを組み合わせたネットワークアドレスを意味しており、実際には、一連のヘッダの追加ないし削除をまとめて行うようにした単一のソフトウエアプログラムモジュール（実行プログラム等）、あるいは単一のハードウエアモジュール（電子回路、電子部品等）から構成されている。
【００３７】
すなわち上述の構成において、ＴＣＰエミュレータ１５とＵＤＰエミュレータ１６は、トランスポート層において、データの漏洩・改竄の防止の機能、すなわち暗号化、完全性認証及び相手認証等の機能を持つ「ＴＣＰｓｅｃｏｎ ＣＰ」１５ｂと「ＵＤＰｓｅｃ ｏｎ ＣＰ」１６ｂと、このような暗号化、完全性認証、及び相手認証等の機能を持たない通常のプロトコル「ＴＣＰ ｏｎ ＣＰ」１５ａと「ＵＤＰ ｏｎ ＣＰ」１６ａのいずれかにパケットを振り分ける働きをもっている。
【００３８】
そして、上述の構成では、「ＴＣＰｓｅｃ ｏｎ ＣＰ」１５ｂと「ＵＤＰｓｅｃ ｏｎ ＣＰ」１６ｂ及び「ＴＣＰ ｏｎ ＣＰ」１５ａと「ＵＤＰｏｎ ＣＰ」１６ａのいずれもクラッキング・プロテクタ（ＣＰ）を備えているため、そのいずれを選択した場合でも、クラッカーによる「進入」「攻撃」に対して防御する機能を実現することができる。なお、ＴＣＰエミュレータ１５とＵＤＰエミュレータ１６は、上位層であるソケット１７とのインターフェースの役割も果たしている。
【００３９】
以上述べたように、図１に斜線を附して示すソケット１７、ＴＣＰエミュレータ１５、ＵＤＰエミュレータ１６、「ＴＣＰｓｅｃｏｎ ＣＰ」１５ｂ、「ＵＤＰｓｅｃ ｏｎ ＣＰ」１６ｂ、「ＴＣＰ ｏｎ ＣＰ」１５ａ、「ＵＤＰｏｎ ＣＰ」１６ａ、「ＩＣＭＰ ｏｎ ＣＰ」１４ａ、「ＩＧＭＰ ｏｎ ＣＰ」１４ｂ、ＩＰエミュレータ１３、「ＩＰｏｎ ＣＰ」１３ａ、及び「ＡＲＰ ｏｎ ＣＰ」１２からなるプロトコルスタックが本発明に適用される暗号化処理を行うためのプロトコルスタックであり、このプロトコルスタックを総称してＴＣＰ２と呼んでいる(特許文献１参照)。
【００４０】
さらに、このＴＣＰ２では、ＴＣＰエミュレータ１５及びＵＤＰエミュレータ１６を実装しており、これらは、セッション層であるソケット（Socket）１７及びネットワーク層であるＩＰエミュレータ１３から見て互換性を保つため、外部からは標準ＴＣＰ若しくは標準ＵＤＰとして見せることができる。実際は、ＴＣＰ２の機能として、ＴＣＰとＴＣＰｓｅｃ、若しくはＵＤＰとＵＤＰｓｅｃを切り替えて実行する。なお、ＴＣＰｓｅｃ、ＵＤＰｓｅｃは、トランスポート層での暗号化及び認証機能である。
【００４１】
すなわち、ＴＣＰｓｅｃ及びＵＤＰｓｅｃは、ＴＣＰ２において特に重要な機能である「データ漏洩」を防ぐ機能である。このＴＣＰｓｅｃ及びＵＤＰｓｅｃのための暗号化・復号化の方法（アルゴリズム、ロジック（論理））としては、公知の秘密鍵（共通鍵）暗号アルゴリズムが用いられる。ここではＦＥＡＬ（Fast data Encipherment Algorithm）、ＭＩＳＴＹ、ＡＥＳ（Advanced Encryption Standard）といった既知の暗号方式の他、独自に作成した秘密の暗号化・復号化アルゴリズムを利用することもできる。
【００４２】
なお、ＦＥＡＬは、日本電信電話株式会社（当時）が開発した暗号方式で、暗号化と復号化に同じ鍵をもちいる秘密鍵型の暗号方式である。また、ＭＩＳＴＹは、ＩＤＥＡと同様にデータを６４ビットのブロックに区切って暗号化する。鍵の長さは１２８ビットである。暗号化と復号化には同じプログラムが使われる点はＤＥＳなどと同じである。
【００４３】
このように、本発明に適用されるＴＣＰ２の中でＴＣＰｓｅｃ、若しくはＵＤＰｓｅｃに用いられる暗号方式としては、既に知られているさまざまな秘密鍵の暗号アルゴリズムを採用することができるほか、ユーザが独自に開発した秘密鍵（共通鍵）暗号方式も利用することが可能である。
【００４４】
さらに、いわゆる「なりすまし」及び「データの改竄」などを防ぐための「相手認証」及び「完全性認証」の方法として、公開鍵や事前秘密共有（Pre-shared）を利用したアルゴリズム、例えば、ＭＤ５（Message Digest 5）、ＳＨＡ１（Secure Hash Algorithm 1）などの認証アルゴリズムが用いられる。また、このような公知の認証アルゴリズムに代えて独自の一方向関数を利用したアルゴリズムを採用することもできる。
【００４５】
このＭＤ５は、認証やデジタル署名に用いられるハッシュ関数（一方向要約関数）の一つであり、原文を元に固定長のハッシュ値を発生し、これを通信経路の両端で比較することにより、通信途中で原文が改竄されていないかを検出することができるものである。このハッシュ値は擬似的な乱数のような値をとり、これを基にしては原文を再生できないようになっている。また、同じハッシュ値を生成する別のメッセージを作成することも困難になっている。
【００４６】
ＳＨＡ１も、認証やデジタル署名などに使われるハッシュ関数の一つであり、２の６４乗ビット以下の原文から１６０ビットのハッシュ値を生成し、通信経路の両端で比較することにより、通信途上の原文の改竄を検出するものである。この認証アルゴリズムは従来のインターネットの暗号化通信の代表的なものであるＩＰｓｅｃにも採用されている。
【００４７】
なお、これらの認証アルゴリズムについては、ＤＨ（Diffie-Hellman）公開鍵配送法や、ＩＰｓｅｃと同様のＩＫＥ（Internet Key Exchange）プロトコル（ＵＤＰの５００番）などにより安全な鍵交換ができるように設計され、しかも、定期的に暗号化／完全性認証アルゴリズム（論理）自体やそのための鍵の集合／定義域が変更されるように、プロトコルドライバープログラム（ＴＣＰｓｅｃ、ＵＤＰｓｅｃなど）によりスケジュールされている。
【００４８】
ところで周知のように、ＵＤＰは、転送速度が速く、且つブロードキャスト機能を備えるという特徴を持つが、ＴＣＰのようなエラー補償機能を有していない。そこで、本発明は、ＵＤＰにおけるエラー補償機能を改善する目的で、図１に示すようにＵＤＰエミュレータ１６の「ＵＤＰｏｎ ＣＰ」１６ａと「ＵＤＰｓｅｃ ｏｎ ＣＰ」１６ｂの間にＵＤＰｅｆ（error free）１６ｃのプロトコルを設け、このＵＤＰｅｆ１６ｃでデータの遣り取りをコントロールすることで、データの欠落などに対する問題を解決するものである。
【００４９】
＜ＵＤＰｅｆの動作の説明＞
そこで図２には、「ＵＤＰ ｏｎ ＣＰ」１６ａと「ＵＤＰｓｅｃ ｏｎ ＣＰ」１６ｂの間に設けられるＵＤＰｅｆの動作をフローチャートで示す。
【００５０】
この図２において、送信側のＵＤＰｅｆでは、まず通常の送信処理として、前段のＵＤＰｓｅｃで暗号化処理されたパケットを受け取る（ステップＳ１１）。このパケットにパケット番号（連番）を付加する（ステップＳ１２）。そしてパケット番号とパケットのコピーを記憶部に送り、パケットを後段のＵＤＰに送る（ステップＳ１３）。通常の送信時のＵＤＰｅｆの処理はこのように行われる。
【００５１】
これに対して、受信側のＵＤＰｅｆでは、まず通常の送信処理として、前段のＵＤＰからパケットを受け取り、受け取ったパケットとパケット番号を記憶部に記憶する（ステップＳ２１）。次に記憶部のパケットをパケット番号に従ってソートする（ステップＳ２２）。さらに記憶部のパケット番号を確認し、異常がないか判断する（ステップＳ２３）。ここで、異常がないとき（Ｎｏ）は、記憶部のパケットを後段のＵＤＰｓｅｃに送る（ステップＳ２４）。
【００５２】
一方、ステップＳ２３でパケット番号に異常があるとき（Ｙｅｓ）は、異常の検出後、指定時間が経過したか否かを判断する（ステップＳ２５）。ここで、指定時間を経過していたとき（Ｙｅｓ）は、再送要求は行わない。また、ステップＳ２５で指定時間を経過していないとき（Ｎｏ）は、再送処理部にて再送要求パケットを生成し、ＵＤＰに送る（ステップＳ２６）。
【００５３】
そこで、送信側のＵＤＰｅｆでは、ＵＤＰからパケットを受け取り、記憶部にあるパケットを確認する（ステップＳ１４）。さらに記憶部に再送要求パケットがあるか否か判断する（ステップＳ１５）。ここで、パケットがないとき（Ｎｏ）は、再送処理は行わない。また、パケットがあったとき（Ｙｅｓ）は、再送パケットをＵＤＰに送る（ステップＳ１６）。以上のようにして、受信側及び送信側の再送時のＵＤＰｅｆの処理が行われる。
【００５４】
＜ＵＤＰデータパケット構造の説明＞
次に、図３に基づいて、本発明の通信システム、ウェブサーバ装置、クライアント装置、通信を行うための通信プログラム及びプログラムを記録した記録媒体で用いられるデータのパケット構造と、その暗号化範囲及び完全性認証の適用範囲について説明しておく。
【００５５】
ここで、図３のＡは、従来のＵＤＰｓｅｃ／ＩＰのパケット構造と暗号化範囲及び完全性認証の適用範囲を示したものである。図３のＡに示すように、ＩＰヘッダ２１のすぐ後に、ＵＤＰヘッダ２２及びＵＤＰｓｅｃ付加情報２３が続き、さらにアプリケーションデータ２４が続く。そして、アプリケーションデータ２４の後には、ＵＤＰｓｅｃの付加トレーラ２５とＵＤＰｓｅｃの付加認証データ２６が配列される構造となっている。
【００５６】
ここでＵＤＰｓｅｃの付加トレーラ２５は、ブロック暗号で発生するデータのブランクやそのブランクの長さ、次のヘッダの番号などの暗号データをサポートする情報である。ＵＤＰｓｅｃの特徴であるこれらの情報は、採用する暗号化／認証アルゴリズムによっては、ＵＤＰｓｅｃ／ＩＰの使用していないヘッダフィールド部分などに分散したり、個々のパケットからは逆算・推測できない独立した事前取決め（ネゴシエーション）により省略したりできるものである。
【００５７】
また、ＩＰ層の上層に当たるＵＤＰ及びＩＰを使用していないプロトコルフィールドを用いて、図３のＡに示すようなＵＤＰｓｅｃ／ＩＰパケットを構成することにより、より下層のＩＰのみに着目したＩＰｓｅｃパケットよりもパケット長を簡単に削減することができるようになる。なお、ここで暗号化範囲は、図示の通り、アプリケーションデータ２４、ＵＤＰｓｅｃ付加トレーラ２５であり、認証範囲は上記暗号化範囲の他に、ＵＤＰｓｅｃの付加情報２６が加えられる。
【００５８】
そして、本発明のＵＤＰｓｅｃ／ＩＰのパケット構造においては、図３のＢに示すように、上述のＵＤＰｓｅｃ付加情報２３の中に連番のパケット番号２７が付加される。従って、このパケット番号２７はＵＤＰｓｅｃによる暗号化範囲の外に付加されたものであり、ＵＤＰｅｆ１６ｃにて解析可能とされるものである。さらに図３のＣには、再生要求パケットの構造を示す。この再生要求パケットは、図３のＢに示したＵＤＰｓｅｃ／ＩＰのパケット構造から、アプリケーションデータ２４以降を除いたものである。
【００５９】
＜ＵＤＰｅｆの機能ブロック図の説明＞
次に、本発明の通信システム、ウェブサーバ装置、クライアント装置、通信を行うための通信プログラム及びプログラムを記録した記録媒体に適用されるＵＤＰｅｆ１６ｃの実施の形態について図面を参照して説明する。
【００６０】
図４には、送信時のＵＤＰｅｆ１６ｃの実施形態の一例の機能ブロックの構成を示す。図４において、「ＵＤＰｓｅｃｏｎ ＣＰ」（以下の説明ではＵＤＰｓｅｃと略称する）１６ｂから、ＵＤＰｅｆ１６ｃに供給されるデータパケットは、機能ブロックとしての番号付加部３１に供給され、最初のパケットに任意の番号を付加し、次のパケットからは連続した数字をＵＤＰｓｅｃ付加情報に付加して、「ＵＤＰｏｎ ＣＰ」（以下の説明ではＵＤＰと略称する）１６ａに送出する。
【００６１】
この送出と同時に、番号付加部３１は付加された数字とパケットのコピーを記憶部３２に送る。これにより、記憶部３２には番号付加部３１で付加された数字とパケットのコピーが記憶される。また、記録部３２にはタイマ部３３が併設され、番号とそのパケットが送られてから指定した時間、例えばパケットが動画の場合は１／３０秒をカウントする。そしてこの指定時間が経過すると、記憶部３２では古い番号の付加されたパケットから順に記憶データの破棄が行われる。
【００６２】
また、ＵＤＰｅｆ１６ｃでは、ＵＤＰ１６ａで受信されたパケットが再送処理部３４に供給される。この再送処理部３４は、再送要求パケットを受け取り、記憶部３２を確認して、記憶部３２に再送要求されたパケットが有れば、そのパケットをＵＤＰ１６ａに送出して再送を行い、無ければ再送要求パケットを破棄する。
【００６３】
さらに図５には、受信時のＵＤＰｅｆ１６ｃの実施形態の一例の機能ブロックの構成を示す。この図５において、記憶部３２、タイマ部３３の構成要素は図４と同じであるが、データの流れが送信時とは異なる。そして受信時においては、ＵＤＰ１６ａで受信されたパケットが、ＵＤＰｅｆ１６ｃの記憶部３２に記憶される。また、タイマ部３３は、パケットを受信してから指定した時間、例えばパケットが動画の場合は１／３０秒をカウントしている。
【００６４】
そして記憶部３２では、パケットが記憶されるとパケット番号に従ってソートし、並べ替えを行う。なお、タイマ部３３による指定時間が経過すると、記憶部３２では古い番号のパケットから順に記憶データの破棄が行われる。また、記憶部３２は、再送要求パケットの送信後の指定時間内ならば再送パケットを受け取り記憶するが、指定時間を経過するとパケットを受け取らないようにされている。
【００６５】
さらに、記憶部３２にパケットが記憶されると、パケット確認部３５が受信したパケットの番号を確認し、番号に異常（受信データの欠損）があった場合には、このパケット確認部３５は再送要求パケットを形成してＵＤＰ１６ａに送出する。また、パケットに異常がなければ、記録部３２のパケットをＵＤＰｓｅｃ１６ｂに送出する。
以上によって、ＵＤＰによるデータパケットの送受信の際に、欠落したパケットの再送信を行う処理が実施される。
【００６６】
＜通信システムの処理の流れの説明＞
図６、図７には、再送処理が行われた場合と、行われない場合についての処理の流れを説明している。すなわち、これらの図６、図７においては、送信側のアプリケーション→ＵＤＰｓｅｃ→ＵＤＰｅｆ→ＵＤＰと、受信側のＵＤＰ→ＵＤＰｅｆ→ＵＤＰｓｅｃ→アプリケーションにおける処理の流れを示している。
【００６７】
まず、図６は、再送処理が行われた場合である。この図６では、最初に送信側のアプリケーションからデータの送信が行われる（ステップＳ１０１）。このデータはＵＤＰｓｅｃで暗号化される（ステップＳ２０１）。さらにＵＤＰｅｆでＵＤＰｓｅｃ付加情報に番号１を付加し、番号、パケットのコピーを記憶部に保存して、パケットをＵＤＰに送る（ステップＳ３０１）。そしてＵＤＰは１番パケットを送信する（ステップＳ４０１）。
【００６８】
この１番パケットが受信側のＵＤＰで受信される（ステップＳ５０１）。この受信パケットと番号１を記憶部に保存し、記録部のパケットをソートし、記録部の番号に異常がないので１番パケットをＵＤＰｓｅｃに送る（ステップＳ６０１）。さらにＵＤＰｓｅｃで復号化する（ステップＳ７０１）。そして復号化したパケットをアプリケーションが受信する（ステップＳ８０１）。
【００６９】
なお、これらの処理は、アプリケーションからのデータの送信（ステップＳ１０２〜Ｓ１０５）ごとに繰り返し行われる。また、送信側ＵＤＰｅｆの例えばステップＳ３０３では、パケットをＵＤＰに送るのと同時に、記憶部の番号１と１番パケットを破棄する処理が行われている。このようにして、通常のＵＤＰによる送信側アプリケーションから受信側アプリケーションへのデータパケットの送受信が行われる。
【００７０】
そして、例えば送信側ＵＤＰのステップＳ４０２で送信された２番パケットが消失すると、受信側ＵＤＰｅｆのステップＳ６０３では、このときの受信パケットと番号３を記憶部に保存し、記録部のパケットをソートし、記録部の番号に異常（２番が欠損）があるので再送処理部で再送処理を行う。すなわち再送処理部ではＵＤＰｓｅｃ付加情報の番号を２にした再送要求パケットを送信側に送る。
【００７１】
この再送要求のパケットが送信側ＵＤＰｅｆで受信され、この送信側ＵＤＰｅｆでは、再送要求から要求されたパケットの番号２を解析して、ここでは記憶部に２番パケットが残っているので２番パケットをＵＤＰに送る（ステップＳ３１１）。そしてＵＤＰは２番パケットを送信する（ステップＳ４１１）。
【００７２】
この２番パケットが受信側ＵＤＰで受信される（ステップＳ５１１）。この受信パケットと番号２を記憶部に保存し、記録部のパケットをソートし、記録部の番号に異常がないので２番パケットと３番パケットをＵＤＰｓｅｃに送る（ステップＳ６１１）。さらにＵＤＰｓｅｃで復号化する（ステップＳ７１１）。そして復号化したパケットをアプリケーションが受信する（ステップＳ８１１）。このようにして消失したパケットの再送とその受信が行われる。
【００７３】
これに対して、図７は再送処理が行われない場合である。すなわち図７では、送信側ＵＤＰのステップＳ３１１で再送要求のパケットを受け取るまでは同じであるが、送信側ＵＤＰでの２番パケットの送信（ステップＳ４２１）が、ステップＳ４０４の後になっている。このため受信側ＵＤＰで受信（ステップＳ５２１）が右側に示された指定時間を越えているために、ＵＤＰｅｆでは受信されたパケットが破棄される（ステップＳ６２１）。
【００７４】
また、受信側ＵＤＰｅｆでは、ステップＳ６０４で指定時間が過ぎたので、記憶部にあるパケットをＵＤＰｓｅｃに送る（ステップＳ６３１）。さらにＵＤＰｓｅｃで復号化する（ステップＳ７３１）。そして復号化したパケットをアプリケーションが受信する（ステップＳ８３１）。なお、図６の場合であっても、ステップＳ６０３で指定時間が過ぎた場合には同様の処理が行われる。
【００７５】
以上によって、欠落したパケットの再送処理が行われる。そして本発明においては、指定時間を設け、その期限を超えたときには再送処理を行わないようにしているので、データ伝送に欠落が生じたときに、その対処を良好に行うことができる。また、ＴＣＰ２機能を使用して、ウェブサーバ装置と、クライアント装置との間のデータを暗号化したまま転送することができるので、他人に知られることなく、権限のあるものだけがデータの内容を知ることができる。
【００７６】
さらに本発明は、上記の通信システムを構成するウェブサーバ装置及びクライアント装置の機能を実現する通信プログラムとしても実施可能なものであり、さらにそのプログラムをコンピュータ組織で読み取って実行できるように記録した記録媒体としても実施可能なものである。
【００７７】
以上説明したように、本発明の通信システム、ウェブサーバ装置、クライアント装置、通信を行うための通信プログラム及びプログラムを記録した記録媒体では、高いセキュリティ機能を持つＴＣＰ２を用いてファイル転送を行うので、既存の暗号化処理によるファイル共有通信と比べても、特にデータの漏洩、改ざん、なりすまし、進入そして攻撃に対して極めて強力な防御機能を発揮すると共に、データ伝送に欠落が生じたときに、その対処を良好に行うようにした通信システムを提供できるようになる。
【００７８】
そして本発明においては、再送を行う際の処理を単純にしているので、ＵＤＰ及びアプリケーションによる処理に支障をきたすことがなく、さらにタイマを用いて指定時間を設定し、その時間の経過後は処理を行わないようにすることによって、極めて円滑な処理を行うことができるものである。
【００７９】
本発明は、以上説明した実施の形態に限定されるものではなく、特許請求の範囲に記載した本発明の要旨を逸脱しない範囲において、さらに多くの実施形態を含むものであることは言うまでもない。
【図面の簡単な説明】
【００８０】
【図１】本発明に適用されるＵＤＰを含むＴＣＰ２のプロトコルスタックを示す線図である。
【図２】その動作の説明のためのフローチャート図である。
【図３】本発明に適用されるデータのパケット構造を示す線図である。
【図４】本発明の送信時のＵＤＰｅｆ１６ｃの実施形態の一例の機能ブロックの構成図である。
【図５】本発明の受信時のＵＤＰｅｆ１６ｃの実施形態の一例の機能ブロックの構成図である。
【図６】本発明の通信システムの処理の流れの一例の説明図である。
【図７】本発明の通信システムの処理の流れの他の例の説明図である。
【符号の説明】
【００８１】
１１…ＮＩＣドライバ、１２…ＡＲＰ ｏｎ ＣＰ、１３…ＩＰエミュレータ、１３ａ…ＩＰ ｏｎ ＣＰ、１３ｂ…ＩＰｓｅｃ ｏｎ ＣＰ、１４ａ…ＩＣＭＰ、１４ｂ…ＩＧＭＰ、１５…ＴＣＰエミュレータ、１５ａ…ＴＣＰ ｏｎ ＣＰ、１５ｂ…ＴＣＰｓｅｃ ｏｎ ＣＰ、１６…ＵＤＰエミュレータ、１６ａ…ＵＤＰ ｏｎ ＣＰ、１６ｂ…ＵＤＰｓｅｃ ｏｎ ＣＰ、１６ｃ…ＵＤＰｅｆ、１７…ソケットインターフェース、３１…番号付加部、３２…記憶部、３３…タイマ部、３４…再送処理部、３５…パケット確認部
【図１】
2008060817.tif 000003
【図２】
2008060817.tif 000004
【図３】
2008060817.tif 000005
【図４】
2008060817.tif 000006
【図５】
2008060817.tif 000007
【図６】
2008060817.tif 000008
【図７】
2008060817.tif 000009