JPWO2005015827A1 - 通信システム、通信装置、通信方法、及びそれを実現するための通信プログラム - Google Patents

通信システム、通信装置、通信方法、及びそれを実現するための通信プログラム Download PDF

Info

Publication number
JPWO2005015827A1
JPWO2005015827A1 JP2005512962A JP2005512962A JPWO2005015827A1 JP WO2005015827 A1 JPWO2005015827 A1 JP WO2005015827A1 JP 2005512962 A JP2005512962 A JP 2005512962A JP 2005512962 A JP2005512962 A JP 2005512962A JP WO2005015827 A1 JPWO2005015827 A1 JP WO2005015827A1
Authority
JP
Japan
Prior art keywords
communication
protocol
encryption
integrity authentication
tcp
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2005512962A
Other languages
English (en)
Other versions
JP3783142B2 (ja
Inventor
尾崎 博嗣
博嗣 尾崎
恵子 小川
恵子 小川
Original Assignee
ティー・ティー・ティー株式会社
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by ティー・ティー・ティー株式会社 filed Critical ティー・ティー・ティー株式会社
Application granted granted Critical
Publication of JP3783142B2 publication Critical patent/JP3783142B2/ja
Publication of JPWO2005015827A1 publication Critical patent/JPWO2005015827A1/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/30Definitions, standards or architectural aspects of layered protocol stacks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/02Details
    • H04L12/22Arrangements for preventing the taking of data from a data transmission channel without authorisation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/66Arrangements for connecting between networks having differing types of switching systems, e.g. gateways
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
    • H04L63/0485Networking architectures for enhanced packet encryption processing, e.g. offloading of IPsec packet processing or efficient security association look-up
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/16Implementing security features at a particular protocol layer
    • H04L63/166Implementing security features at a particular protocol layer at the transport layer
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/16Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
    • H04L69/161Implementation details of TCP/IP or UDP/IP stack architecture; Specification of modified or new header fields
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials

Abstract

上位アプリケーションのプログラムを変更することなく、データの漏洩、改竄、なりすまし、進入、攻撃の防止機能を強化するため、送信側と受信側とで暗号化・復号化ロジックの取決めを行い、これをトランスポート層に存在するTCP又はUDPに該当するプロトコルのペイロードに適用する新規な暗号化システムTCP2を提供する。このTCP2を採用することにより、従来のIPsec又はSSLの持つさまざまな制約を解消し、上位アプリケーションの制約を受けることなく、かつIP層での互換性がある暗号処理通信が実現される。

Description

本発明は、通信におけるセキュリティシステム、特に、インターネット上でのデータの「漏洩」及び「改竄」さらには「なりすまし」、「進入」ないし「攻撃」を防ぐための通信システム、特に、通信システムを実現するプロトコルスタックと、通信装置、通信方法、及びそれを実現するためのコンピュータプログラムに関する。
近年、インターネットを利用した通信は、Windowsパソコンさえあれば、それをネットワークに接続するだけで、誰でもネットワーク上のコンピュータにアクセスできるため、社会の中で急速に普及拡大している。一方、このインターネット通信の普及拡大に伴って、ハッカー(hacker)やクラッカー(Cracker)が他人のコンピュータシステムに侵入して、ソフトウエアやデータを盗み見たり、改竄や破壊を行ったりするという社会問題も大きくなっている。
具体的な不正妨害のケースとしては、まず第1に、中心的なシステムが使えなくなるように、ネットワークから大量のメッセージを送りつけコンピュータシステムの運用を妨害するシステム妨害がある。この妨害によってホストが過負荷になるとシステムダウンに陥ってしまうことも起こりうる。
また、ホストのパスワードを入手し、機密情報を盗んだり、情報の改竄や破壊を行ったりする「不正アクセスとなりすまし」の不正妨害がある。この妨害にはコンピュータが保有する情報を勝手に書き換え、人を陥れる卑劣のものもある。また、特定のパソコンに忍び込み、メールアドレスやパスワードなど個人の機密データを搾取するスパイウエアといわれる不正行為も発生している。このようにネットワークに接続したコンピュータが持つデータベースの内容を不正に盗み見る、いわゆる盗聴行為も頻繁に行われている可能性も否定できない。
また、サイト若しくはサーバの運営元で、意図的に個人情報を盗むといった行為や、社内に潜むスパイなどによるサイバーテロ(Cyber terrorism)といった危機も全くないとはいえない状況である。
さらに、他人のコンピュータにコンピュータ障害をもたらすプログラムである「ウイルス」を送り込むという不正妨害が最近多くなっている。この送り込まれたウイルスに、メールなどを自宅で使用したパソコンが感染し、それを社内に接続した瞬間に社内のパソコン全体が感染したり、ウイルスがコンピュータの中のファイルを破壊させたり、更には、ネットワーク全体をダウンさせたりするといった問題も生じている。
このため、従来のTCP/IP(Transmission Control Protocol/Internet Protocol)やUDP(User Datagram Protocol)を利用したインターネット上での通信において、データの「漏洩」「改竄」等を防ぐ機能として、IPsec(アイピーセック:Security Architecture for Internet Protocol)やSSL(Secure Socket Layer)といわれる暗号化通信が利用されている。一般に、暗号化通信には、共通鍵(秘密鍵ともいう)暗号方式と公開鍵暗号方式があるが、IPsecは共通鍵暗号方式を用いたものが多い。共通鍵暗号方式の方が公開鍵暗号方式より暗号化・復号化の速度が速いという特徴がある。このIPsecに用いられる共通鍵暗号方式は、暗号化と復号化を同じ鍵で行う方式であり、鍵の生成は送信側又は受信側のいずれで生成してもよいが、受信側と送信側とで共通鍵を使うために、鍵の交換時に内容が外部に漏れないよう細心の注意を払わなければならない。
共通鍵暗号方式に用いられるアルゴリズムはDES(Data Encryption Standard:米国IBM社が開発した共通鍵(秘密鍵)暗号化アルゴリズム)が代表的である。IPsecもこのDESを暗号アルゴリズムの1つに採用している。IPsecは、IETF(Internet Engineer Task Force)が標準化を進めたものであり、この特徴は、単に特定のアプリケーションだけを暗号化するのではなく、ホストから送信されるあらゆる通信をIPレベルで暗号化する点にある。これによりユーザはアプリケーションを意識することなく安全な通信を可能とすることができる。また、IPsecは、将来にわたって使えるように、それ自体の仕組みを変えることなく使用する暗号アルゴリズムを変更することを可能としている。
IPsecで用いられる共通暗号鍵としては、SPI(Security Pointer Index)と呼ばれる32ビット符合が用いられ、鍵交換プロトコルとしては、IKE(Internet Key Exchange)が用いられる。さらに、IPsecには、完全性認証のためのプロトコルAH(Authentication Header)が用意されている。
また、SSLは、米ネットスケープ社(現在AOLに吸収合併)の開発したセキュリティ機能付HTTPプロトコルであり、これを利用することによりクライアントとサーバがネットワーク上でお互いを認証できるようになり、クレジットカード情報などの機密性の高い情報を暗号化してやり取りすることが可能となる。これにより、データの盗聴、再送攻撃(ネットワーク上に流れたデータを盗聴して何度も繰り返して送ってくる攻撃)、なりすまし(本人の振りをして通信する)、データの改竄などを防止することができる。
図25は従来のIPsecを用いた暗号化通信を行う場合のプロトコルスタックの例を示し、図26は従来のSSLを用いた暗号化通信を行う場合のプロトコルスタックの例を示している。
OSI参照モデルは、最下層(第1層)が物理層、第2層がデータリンク層、第3層がネットワーク層、第4層がトランスポート層、第5層がセッション層、第6層がプレゼンテーション層、最上層(第7層)がアプリケーション層になっている。このOSI参照モデルにおける7階層は、通信機能を7段階に分けたものであり、その階層毎に標準的な機能モジュールを定めている。図25では、第5層のセッション層までが示されている。
プロトコルスタックとは、ネットワークの各階層における機能を実現するためのプロトコルを選び、階層状に積み上げたソフトウエア群である。
まず、OSI参照モデルについて概略を説明すると、第1層の物理層は、信号線の物理的な電気特性や符号の変調方法などを規定した層である。ただ、この層だけが単独で定義・実装されることは少なく、通常は、第2層のデータリンク層と共に、たとえばイーサネットの規格、などとして定義される。
第2層のデータリンク層は、データのパケット化や物理的なノードアドレス、パケットの送受信方法などを規定する層である。この層は、物理的な通信媒体を通して、2つのノード間でパケットをやり取りするためのプロトコルを規定するものであり、各ノードに対して、何らかのアドレスを付け、そのアドレスに基づいてパケットの送信先を特定し、パケットを通信媒体上に送信する。通信媒体としては、銅配線や無線、光ファイバなど、多様なものがある。また、接続形態(トポロジー)も、1対1の対向接続だけでなく、バス型やスター型、リング型など多くの種類がある。通信媒体上に送信されたパケットは、受信側ノードに到着した時点でそのノードに取り込まれ、さらに上位のプロトコル層へと渡される。
物理層とデータリンク層に渡って配置されるNIC(Network Interface Card)Driverは、パソコンやプリンタなどを構内ネットワーク(LAN)につなぐための拡張ボードである。単にネットワークカードという場合はイーサネットにつなぐ場合が多い。
このNIC Driverにより、データを送信したいノード(機器)がケーブルの空き状況を監視して、ケーブルが空くと送信を開始するようにしている。このとき、もし複数のノードが同時に送信を開始するとケーブル内でデータが衝突して破壊されるので、両者は送信を中止し、ランダムな時間を待って送信を再開するのである。これによって一本のケーブルを複数のノードが共有して互いに通信することができる。
第3層のネットワーク層は、任意の2つのノード間での通信方法を規定する層である。TCP/IPでいえばIP層に相当する。データリンク層では、同一ネットワーク媒体上のノード間での通信を行うことができるが、その機能を使って、ネットワーク上に存在する任意の2つのノード間で、ルーティング(routing)を行いながら通信するのがこのネットワーク層の役目である。ここで、ルーティングとはTCP/IPネットワークにおいて目的のホストまでパケットを送信するときに、最適な経路を選択して送信することをいう。例えば、イーサネットでは、同一セグメント上のノード同士でしかお互いに通信できないが、ネットワーク層では、2つのイーサネットセグメント間でパケットをルーティングすることによって通信を行う。また、電話回線を通じてコンピュータをネットワーク(イーサネット)に接続するダイヤルアップPPP(Point to Point Protocol)回線へのルーティング、また、光ファイバを使った専用線へのルーティングなど、物理的なネットワーク媒体によらずにパケットをルーティングすることができる。この目的のため、通常は、物理媒体に依存しないアドレス(TCP/IPならば、IPアドレス)を各ノードに割り当て、これに基づいてルーティングを行っている。IPsecは、このネットワーク層で、つまりIPレベルでホストから送信されるあらゆる通信を暗号化するので、ユーザはアプリケーションを意識することなく安全な通信を可能とすることができるのである。
第4層のトランスポート層は、各ノード上で実行されている2つのプロセス間で、エラーのない、仮想的な通信路を実現するためのプロトコル層である。TCP/IPでいえばTCP層に相当する。ネットワーク層では、2つのノード間での通信を行う機能を提供しているが、これを使って、2つのプロセス(アプリケーション)間で、エラーのない、仮想的な通信路を提供するのがこの層の役目である。すなわち、ネットワーク層ではデータを送ることはできるが、そのデータが確実に相手に届くという保証はない。また、送信した順に正しくデータが届くという保証もない。そこで、アプリケーションにとって使いやすくするために、エラーのない通信路を提供するのがこの層である。必要ならばデータの再送・回復処理などを行う。
このトランスポート層にはTCPの他にUDPも配置されるが、このUDPとTCPの違いは、TCPがデータの補償がされているプロトコルである分、低速であるのに対して、UDPはデータ補償がない分、高速になっている点である。コンピュータ間の通信のように主としてデータを送る場合にはTCPが用いられ、IP電話のように音声や画像を送る場合にはUDPが多く用いられる。この第3層のトランスポート層に暗号化処理を施した例は、今まで存在していない。
第5層のセッション層は、セッション(通信の開始から終了まで)の手順を規定する層であり、アプリケーション間でコネクションを開設して通信ができる状態にする層である。この層に配置されるソケット(socket)は、コンピュータが持つネットワーク内の住所に当たるIPアドレスと、IPアドレスのサブアドレスであるポート番号を組み合わせたネットワークアドレスを意味している。コンピュータ同士を接続する場合は、必ずソケット(IPアドレスとポート番号の組)を指定して行う。図26に示すように、従来の代表的な暗号化通信技術であるSSLは、このセッション層で暗号化通信を実現している。
第6層のプレゼンテーション層は、セッション(通信の開始から終了まで)でやり取りするデータの表現方法や符号化、暗号化などを規定する層である。TCP/IPプロトコルでは、この層に相当する部分はなく、通常はアプリケーション自身でストリームデータの処理をハンドリングしている。
また、第7層のアプリケーション層は、アプリケーション間でのデータのやり取りを規定するための層であり、TCP/IPプロトコルではこの層に相当する部分はない。例えば、電子メールのフォーマットや、文書の内部構造など、アプリケーション間で相互にデータをやり取りする場合に必要な、共通のデータ構造などを規定する層である。
図25は、IPsecを搭載した標準プロトコルスタックであるが、まず、物理層(第1層)とデータリンク層(第2層)に、NIC(Network Interface Card)Driverが設けられている。このドライバは、コンピュータなどのハードウエアをネットワークに接続するためのインターフェースカードのドライバであり、その内容はデータ送受信制御ソフトウエアである。例えばEthernetに接続するためのLANボードまたはLANカードがこれに相当する。第3層のネットワーク層は、一部がトランスポート層(第4層)まで伸びたIPエミュレータ(emulator)が存在している。このトランスポート層まで延びた部分には、トランスポートとしての機能は実装していない。セッション層に、ネットワーク層の機能を提供しているだけある。このIPエミュレータは、IPsecによる暗号化通信を行うプロトコルと、暗号化通信を行わないプロトコルであるIPを用途に応じて切り換えて使う働きをする。また、第3層のネットワーク層にはARP(Address Resolution Protocol)が配置されている。このARPは、IPアドレスからEthernetの物理アドレスであるMAC(Media Access Control)アドレスを求めるのに使われるプロトコルである。MACは、媒体アクセス制御と呼ばれる、LANなどで利用される伝送制御技術であり、データの送受信単位であるフレームの送受信方法やフレームの形式、誤り訂正などを規定する技術として利用されている。
また、このネットワーク層には、IPのエラーメッセージや制御メッセージを転送するプロトコルであるICMP(Internet Control Message Protocol)と、同一のデータを複数のホストに効率よく配送するための又は配送を受けるために構成されるホストのグループを制御するためのプロトコルであるIGMP(Internet Group Management Protocol)が設けられている。そして、ネットワーク層の上位層のトランスポート層には、TCPとUDPが、そしてその上位層であるセッション層にはソケット(Socket)インターフェースが配列されている。
図26は、暗号化処理プロトコルとしてSSLを具備した標準プロトコルの例であり、ネットワーク層にIPsecを搭載しない代わりにソケット(セッション層)にSSLが搭載されている。この他のプロトコルは図25に示したものと同じである。
従来の代表的な暗号化通信技術の中で、IPsecは、IPのパケットを暗号化して送受信するものであり、したがって、TCPやUDPなどの上位のプロトコルを利用するアプリケーションソフトはIPsecが使われていることを意識する必要がない。
一方、SSLでは、互いの認証レベルではRSA(Rivest Shamir Adleman:公開鍵暗号方式を開発者3人の頭文字)公開鍵暗号技術を用いたデジタル証明書が用いられ、データの暗号化ではDESなどの共通鍵暗号技術が用いられている。このSSLは第5層のセッション層にあるため、特定のアプリケーションに依存することになる。
IPsecは、OSIにおける第4層(トランスポート層)より下位の第3層(ネットワーク層)におけるデータの「漏洩」や「改竄」を防ぐ機能として実現したものである(例えば、R.Atkinson,1995年8月、「Security Architecture for the Internet Protocol」、RFC1825を参照。)。これに対して、SSLは、第5層のセッション層における暗号化技術であり、現在インターネットで広く使われているWWW(World Wide Web)やFTP(File Transfer Protocol)などのデータを暗号化して、プライバシーに係る情報や企業秘密情報などを安全に送受信するためのものである。
表1は、IPsecとSSLの機能を比較して記載したものである。この表から見る限り、IPsecとSSLは互いに相反する利点と欠点があるように思える。
例えば、クライアント−クライアント間の通信では、SSLの場合、そのコマンド体系と通信内容が主従の関係、つまりクライアント/サーバとなってしまうことから、サーバを介することなくクライアント−クライアント間の通信はできなかった。すなわち、端末Aから端末Bに秘密のデータをSSLにより暗号化して送る場合には、必ず間にサーバを介在する必要があった。これに対して、IPsecではこのような制約がないので直接通信が可能となる。
Figure 2005015827
また、PPP(Point to Point Protocol)モバイル環境あるいはADSL(Asymmetric Digital Subscriber Line)環境においては、IPsecは、データの暗号化通信を開始する前に、暗号化方式の決定、鍵の交換、相互認証に使用するプロトコルであるIKE(Internet Key Exchange)プロトコルを使用した通信の中で、接続先相手の認証を行っている。したがって、PPPモバイル環境(リモートクライアント)又は、ADSL環境、の場合、IPアドレスが固定できないため、IPsecのゲートウェイ間で、最も使用しているIKEのMainモード、つまり認証の際に通信相手のIPアドレス情報を使用するモードを使用することができない。なお、解決策としては、Aggressiveモードを使用することで、ID情報にIPアドレスを使用しなくてもよく、ID情報に例えばユーザ情報を使用し、既知共有鍵にユーザのパスワードを使用することで相手を特定することができる。但し、Aggressiveモードでは鍵交換情報と同じメッセージの中で接続先相手のIDを送信するため、IDは暗号化されずに平文のまま送信することになる。また、XAUTH(Extended Authentication within IKE)を利用することにより、認証の問題を解決することができるが、ファイアウォールの設定で、リモートクライアントからのアクセスは、IPアドレスが不明であるため、IKE、IPsecを全て許可にする必要があり、セキュリティ上問題が残る。SSLは、この環境下であっても、通信することが可能である。
また、IPsecは、NAT(Network Address Translation)やIPマスカレードに対応することができないという問題がある。これらに対応するためには、例えばUDPのペイロードに載せるといった他の機能と併用しなければならない。NATは、インターネットに接続された企業などが1つのグローバルなIPアドレスを複数のコンピュータで共有する技術であり、組織内でのみ通用するIPアドレス(ローカルアドレス)とインターネット上のアドレス(グローバルアドレス)を相互変換する技術である。NATに対応できないのは、IPヘッダがAH(Authentication Header)の認証範囲に入っているため、このローカルアドレスからグローバルアドレスの相互変換ができなくなり、サブネットの異なるローカルアドレス同士の通信ができなくなるからである。
また、IPマスカレードとは、LAN内のプライベートアドレスを持つ複数のクライアントからインターネットにアクセスすることを可能とするような仕組みであり、これを利用すると,外部(インターネット)からはIPマスカレードが動作している端末しか見えないのでセキュリティ上から見て望ましいといえるものである。IPsecがIPマスカレードに対応できない理由は、IPsecのESP(Encapsulating Security Payload:暗号ペイロード)ヘッダがIPヘッダのすぐ後にあるためである。IPマスカレードを実装している通常のルータは、IPヘッダのすぐ後ろには、TCP/UDPのポート番号があると判断している。したがって、IPマスカレードを実装しているルータを経由すると、このポート番号を変更してしまうため、IPsecは、改竄されたと判断して、ホストの認証ができないという問題が生じる。この問題は、UDPのペイロードに乗せるためのNAT−T(NAT−Traversal)をサポートする製品を利用することで回避することができる。但し、NAT−Tのドラフトバージョンが異なると、NAT−T対応製品同士でも接続することができない。SSLは、この環境下であっても、通信することが可能である。
これに対し、ハッカーやクラッカーといわれるネットワークの不正侵入者によるTCP/IPへのさまざまな攻撃、いわゆるDoS攻撃(Denial of Service:サービスを停止させる攻撃)に対しては、SSLは無力である。TCP/IPプロトコルスタックへのDoS攻撃、例えば、TCP切断攻撃が行われると、TCPセッションが切れてしまいSSLのサービスは停止してしまうのである。IPsecは第3層(IP層)に実装しているため、IP層にセキュリティ機能を持つので、TCP/IP(第4層、第3層)へのDoS攻撃を防ぐことができる。しかし、SSLは、TCP/IP(第4層、第3層)より上の層(第5層)に実装されている暗号化プロトコルであるため、TCP/IPへのDoS攻撃を防ぐことができない。
さらに、物理ノイズが多く通信エラーが多発するような劣悪な通信環境化における通信に対しては、SSLの方がIPsecに比べて効果的である。すなわち、IPsecは、エラーの検出をした場合、再送動作を上位のTCPに任せることになる。TCPは、再送データをIPsecに送るが、IPsecはこの再送データであることが認識できず、再暗号を行ってしまうのである。SSLはTCPでエラー回復処理を行うので同じデータを再暗号化することはない。
また、IPsecでは異なったLAN間の通信ができない。すなわち、LAN内のサブネットアドレスの配布管理は、LAN内にあるDHCP(Dynamic Host Configuration Protocol)サーバが管理しているため、LAN内では、同一のサブネットアドレスが割り振られることはないが、異なったLAN間の通信の場合、お互いのLAN内にあるDHCPサーバが個別にサブネットアドレスを割り振っているため、同一アドレスが割り振られる可能性がある。このように同一アドレスが割り振られた場合には、IPsecでは通信することができない。但し、別にIPsec−DHCPサーバを立てて、同一アドレスにならないように管理すれば、通信することができる。SLLは上述したようにOSI参照モデルの第5層(セッション層)に位置しているため、下位層のTCPでエラー回復処理を行うことができ、上記のような劣悪な環境下でも通信することが可能となる。
また、異なったネットワーク環境下における通信に対しては、IPsecは、経由するノード全てを管理し、IPsecが通過できるように設定変更しなければならないため、管理が大変であるが、SSLは、この環境下であっても、経由するノードの環境を意識せず通信することが可能である。
さらに、IPsecは複数のキャリア経由の接続ができないという問題がある。つまり、IPsecは、経由するノード全てを管理し、IPsecが通過できるように設定変更しなければならならないため、複数のキャリア経由の接続ができない。例えば、東京と大阪で、別々のキャリアと契約している場合に、接続できないため、別途、高額な専用線を引いているケースもある。SSLは、この環境下であっても、通信することが可能となる。
また、SSLは、UDPの通信をサポートしていないため、UDPを暗号通信することができない。TCPも特定のポートしかサポートしていないため、TCP全てのポートを暗号通信することができない。これに対して、IPsecは、UDPでもTCPでも暗号通信することができる。
さらに、SSLはアプリケーションに対する互換性を持たない点において問題がある。アプリケーションは、インターネット通信を行う際にソケット(第5層)をプログラムインターフェースとして使用する。このため、アプリケーションがSSL(第5層)を使用する場合には、このソケットインターフェースをSSLインターフェースに変更しなければならない。従って、SSLにアプリケーションの互換性はない。これに対し、IPsecは、ソケット(第5層)の下に位置しているため、アプリケーションは、ソケット(第5層)をプログラムインターフェースとしてそのまま使用することができるのでアプリケーションの互換性がある。
また、IPsecは、IPアドレス単位で制御することができるのに対し、SSLは、ソース単位(URL単位、フォルダー単位)で制御することになる。
さらに、IPsecは最大セグメントサイズが小さくなるという問題がある。すなわち、IPsecでは、ESPヘッダ、ESPトレーラを使用するため、ペイロードが小さくなるため、フラグメント(パケットの分割)が発生し、スループットが低下する。また、TCPパケットでは、フラグメントが禁止であるため、エンドエンドで、IPsecの通過する環境を把握し、フラグメントが発生しない最大セグメントサイズを設定する必要がある。これに対し、SSLは、通過する環境を把握する必要がないため、最大セグメントサイズを設定する必要はない。
以上、表1にもとづいてIPsecとSSLの機能比較について説明したが、後述する本発明のプロトコルであるTCP2(登録商標出願中)は、これらIPsecとSSLのすべての長所を含み、さらに他にも多くのメリットを有する画期的な暗号通信プロトコルである。
本発明は、上述のような問題に鑑みてなされたものであり、コンピュータ端末への不正侵入を防ぐための「暗号化の機能」をアプリケーション・プログラムそれぞれに実装する必要がなく、したがって、アプリケーション・プログラム自体を再作成する必要もなく、かつ上記暗号化機能に対応していない通信相手とも従来の平文による通信でき、さらにはIPsecが利用できない環境(あるいは利用したくない状況)でも暗号化や認証の恩恵を受けることができる通信システム、特にプロトコルスタック、並びに関連する通信装置、通信方法、及びこれらを実現するための通信プログラムを提供することを目的とする。
上記課題を解決し、本発明の目的を達成するため、本発明の通信システムは、トランスポート層に位置するTCP又はUDPに該当するプロトコルを取り扱う通信システムであって、通信路の両端で対応する暗号化及び復号化ロジックを取り決める取決め手段と、送受信する情報単位としてのパケットのうち、少なくとも前記TCP又はUDPに該当するプロトコルのペイロードを前記取決め手段により取り決めた暗号化ロジックに従って暗号化して送信するプロトコル暗号化手段と、受信した該暗号化されたプロトコルを前記取決め手段により取り決めた復号化ロジックに従って復号化するプロトコル復号化手段と、を備え、トランスポート層のプロトコルに暗号化及び復号化ロジックを適用して暗号化通信を行うものである。
これにより、従来は存在しなかったTCP又はUDPレベル独自の暗号化が可能となり、IPより上の層におけるデータ漏洩や改竄の可能性が激減することになる。つまり、IPレベルの暗号化であるIPsecが解除された後のデータも、TCP又はUDPレベルの独自の暗号化がなされていることとなり、二重の暗号化という意味で暗号の強度が増すとともに、IPが正当に復号化された直後のデータに対する傍受などインターフェースを狙ったデータ漏洩に対する有効な防御となる。
また、IPが暗号化されない場合にもTCPやUDPだけを暗号化することによりセキュリティを独自に強化することができる。
さらに、UDPのブロードキャスト機能をパフォーマンス等の観点からIPsecと切り離して独自に働かせる場合があるが、この場合も本発明のTCP又はUDPレベルの暗号化が有効である。
なお、暗号化及び復号化ロジックの取決めは、通信路の両端で対応する暗号化及び復号化ロジックの事前に取り決めることが好ましい。ここで、通信路とは有線、無線を問わない。衛星を介して通信する方法も含むことは言うまでもない。また、本発明の暗号化及び復号化ロジックの取決めには、フロッピーディス、CD(Compact Disk)、USBメモリあるいはICチップ等のリムーバブルメディア(媒体)に暗号化及び復号化ロジックを記憶させて、これらの媒体を送信側と受信側で交換して暗号化及び復号化ロジックの取決めを行うことも含むものである。
また、本発明では、より上位の層、典型的にはHTTP等のアプリケーション層への「進入」や「攻撃」等の不正通信パターンの認識を、より下位の層(トランスポート層)で行うことができる。例えば、本発明の通信システムで用いられるプロトコル暗号化手段若しくはプロトコル復号化手段と、従来のクラッキング・プロテクタのような機能モジュール(一般的なクラッキングパターンの検出、破棄ないし通過制限手段)との組み合わせが、上位層であるアプリケーション層より下位層であるトランスポート層のTCP、UDP、さらにその下の層であるネットワーク層に該当するIP、ARP、ICMP、IGMP等のいずれかで実現する。これらのプロトコルスタックは、単一のプロトコルスタックとして「ソフトウエアないしハードウエアモジュール」によって実現することができる。
これにより、上述の効果の他に、データの「漏洩」「改竄」さらには「なりすまし」や「進入」「攻撃」を防ぐ機能についてプロトコルスタック間に重複や隙間がなく費用対効果の大きい通信システムを実現することができる。
また、本発明の通信システムでは、暗号化及び復号化ロジックを取り決める取決め手段を備える第1及び第2の通信装置と、暗号化及び復号化ロジックの取決め手段を備えない第3の通信装置を含み、取決め手段を備える通信装置(第1の通信装置と第2の通信装置)は、TCP又はUDPの暗号化及び復号化プロトコル処理手段のほかに、暗号化及び復号化を伴わない通常のTCP又はUDPを処理する通常プロトコル処理手段をも備え、これら暗号化及び復号化ロジック取決め手段を有する通信装置同士で通信するときには、暗号化及び復号化プロトコル処理手段を用いて通信を行い、取決め手段を備える通信装置(第1及び第2の通信装置)と暗号化及び復号化ロジックの取決め手段を備えない第3の通信装置と通信する場合には、暗号化及び復号化取決め手段により、この通信において暗号化及び復号化を行わないことを決定し、通常のTCP又はUDPプロトコル処理手段により、通信を行うことができるようにしている。
これにより、本発明による暗号通信に対応していない通信装置との間でも従来どおりの通信を確保することができることになる。
さらに、本発明の通信システムにおいては、暗号化及び復号化ロジックを取り決める取決め手段を備える通信装置(第1又は第2の通信装置)から暗号化及び復号化ロジックを取り決める取決め手段を備えない通信装置(第3の通信装置)に通信する場合に、第1及び第2の通信装置が、暗号化及び復号化ロジック取決め手段により、第3の通信装置との通信を行わないことを決定し、該第3の通信装置との通信を行わないようにすることもできる。
これにより、通信相手の制限及び各セキュリティレベルについて徹底したセキュリティポリシーを採用することができる。
本発明ではまた、暗号化及び復号化ロジック取決め手段による取決めの候補となりうる暗号化及び復号化ロジックをメモリないし回路に記憶しており、該記憶する内容を定期的に変更するロジック変更手段をさらに備えることができる。
これにより、プロトコルスタック自体を再作成したり入れ替えたりする必要なく、新しい暗号化アルゴリズムに対応したり、暗号鍵を変更することにより解読リスクを削減することができる。
さらに、本発明では、暗号化及び復号化ロジック取決め手段が、暗号化・復号化ロジックについて暗号化をしないで平文を取り扱う旨を取り決めることも可能である。
これにより、通信相手、例えばクライアント側のプロトコルスタック等が本発明による暗号化などに対応していない場合でも、従来どおり通信することができる。
なお、このような場合でも、「なりすまし」や「進入」「攻撃」を防ぐいわゆるクラッキング・プロテクタ(CP)機能については生かすことができる。
本発明は、また、TCP又はUDPに該当するプロトコルを取り扱う通信システムであって、通信路の両端で対応する完全性認証ロジックを取り決める完全性認証取決め手段と、送受信する情報単位としてのパケットのうち、少なくとも前記TCP又はUDPに該当するプロトコルのペイロードを前記完全性認証取決め手段により取り決めた完全性認証ロジックに従って完全性認証情報を付加して出力又は送信するプロトコル完全性認証情報付加手段と、受信した該完全性認証情報付加されたプロトコルを前記完全性認証取決め手段により取り決めた完全性認証ロジックに従って完全性認証するプロトコル完全性認証手段と、を備えた通信システムを提供するものである。
また、本発明は、トランスポート層のTCP又はUDPを用いて完全性認証の取決めを行う完全性認証取決め手段を備える第1及び第2の通信装置と、完全性認証取決め手段を備えない第3の通信装置とがそれぞれネットワークに接続されており、第1及び第2の通信装置は、完全性認証情報を付加してTCP又はUDPを処理する完全性認証プロトコル処理手段と、完全性認証情報の付加を行わない通常のTCP又はUDPを処理する通常プロトコル処理手段の両方を備え、第3の通信装置は、完全性認証を伴わない通常のプロトコル処理手段のみを備えており、完全性認証取決め手段を有する通信装置同士(第1の通信装置と第2の通信装置)で通信するときは、この完全性認証取決め手段により、完全性認証情報を付加した完全性認証プロトコル手段により通信するとともに、完全性認証取決め手段を有する通信装置、例えば第1の通信装置が完全性認証取決め手段を備えない通信装置(第3の通信装置)と通信するときには、前記完全性認証情報を付加しないことを決定し、前記通常プロトコル処理手段により通信を行うようにしている。
また、この場合、完全性認証取決め手段を備えた通信装置(第1又は第2の通信装置)が、完全性認証取決め手段を備えない通信装置(第3の通信装置)と通信するときは、完全性認証取決め手段により通信を行わないことを決定し、通信をしないようにすることもできる。
また、本発明では、完全性認証取決め手段による取決め候補となりうる完全性認証ロジックをメモリに記憶ないし回路に実装しており、該記憶する完全性認証ロジック定期的に変更する完全性認証ロジック変更手段をさらに備えることができる。
さらに、本発明では、完全性認証取決め手段が、完全性認証情報付加及び完全性認証をしない旨を取り決めることも可能である。
なお、かかる場合でも、「なりすまし」や「進入」「攻撃」を防ぐクラッキング・プロテクタ(CP)機能については生かすことができる。
また、本発明は、トランスポート層のTCP又はUDPに該当するプロトコルを暗号化して通信する通信方法を提供する。この通信方法は、通信路の両端で対応する暗号化・復号化ロジックを事前に取り決める取決めステップと、送受信する情報単位となるパケットのうち、少なくともTCP又はUDPのペイロードに該当するプロトコルを取り決めた暗号化ロジックに従って暗号化して送信するプロトコル暗号化ステップと、受信した暗号化されたプロトコルを取り決めた復号化ロジックに従って復号化するプロトコル復号化ステップと、を含み、トランスポート層のTCP又はUDPに該当するプロトコルに暗号化処理を施して通信するものである。
また、本発明の通信方法では、トランスポート層のTCP又はUDPに該当するプロトコルを暗号化して通信する通信方法に用いられる暗号化及び復号化ロジックを取り決める取決め手段を備える第1及び第2の通信装置と、暗号化及び復号化ロジックを取り決める取決め手段を備えない第3の通信装置とがそれぞれネットワークに接続されている場合の通信方法を提供する。すなわち、暗号化及び復号化ロジックを取り決める取決め手段を備える通信装置(第1及び第2の通信装置)同士で通信するときには、TCP又はUDPに該当するプロトコルのペイロードを前記取決め手段により取り決めた暗号化ロジックに従って暗号化して通信するとともに、暗号化及び復号化ロジック取決め手段を備えた通信装置(第1又は第2の通信装置)が暗号化及び復号化ロジック取決め手段を持たない通信装置(第3の通信装置)と通信するときは、TCP又はUDPプロトコルのペイロードを取決め手段により取り決めた暗号化ロジックに従って暗号化して送信しないことを決定し、暗号化ロジックを伴わない通常のTCP又はUDPプロトコルで通信するようにしている。
また、第1又は第2の通信装置と第3の通信装置との通信では、第1又は第2の通信装置が、第3の通信装置が暗号化及び復号化取決め手段を備えていないことを理由に通信を行わないことを決定し、前記第3の通信装置との通信を行わないようにすることもできる。
また、上記の暗号化及び復号化ロジックの取決めにおいて取決め候補となりうる暗号化・復号化ロジックをメモリないし回路に記憶しておき、該記憶する暗号化・復号化ロジックの内容を定期的に変更することも可能である。
さらに、この取決めステップにおいて、暗号化・復号化ロジックについて暗号化をしないで平文を取り扱う旨を取り決めることもできる。また、本発明による通信方法ではまた、取決めステップより前に、通信相手を認証するステップをさらに含むことができる。
また、本発明は、トランスポート層にあるTCP又はUDPに該当するプロトコルを暗号化して通信する通信方法であって、通信路の両端で対応する完全性認証ロジックを事前に取り決める完全性認証取決めステップと、送受信する情報単位のパケットのうち、少なくともTCP又はUDPのペイロードに該当するプロトコルを完全性認証取決めステップにより取り決めた完全性認証ロジックに従って完全性認証情報を付加して送信するプロトコル完全性認証情報付加ステップと、受信した該完全性認証情報付加されたプロトコルを完全性認証取決めステップにより取り決めた完全性認証ロジックに従って完全性認証するプロトコル完全性認証ステップと、を含み、トランスポート層にある前記TCP又はUDPプロトコルに完全性認証情報を付加して通信する通信方法を提供する。
そして、さらに本発明は、トランスポート層のTCP又はUDPを用いて完全性認証の取決めを行う完全性認証取決め手段を備える通信装置(第1及び第2の通信装置)間、若しくは前記完全性認証取決め手段を備える通信装置と前記完全性認証取決め手段を備えない第3の通信装置との間でネットワークを介して通信する通信方法を提供する。この通信方法は、完全性認証プロトコルを搭載した通信装置(例えば、第1の通信装置)が、同じく完全性認証プロトコルを搭載した通信装置(第2の通信装置)と通信するときは、完全性認証取決め手段により、完全性認証情報を付加したTCP又はUDPを処理する完全性認証プロトコル処理を行って送信し、完全性認証プロトコルを搭載した第1又は第2の通信装置が、前記完全性認証プロトコルを搭載しない第3の通信装置と通信するときは、完全性認証取決め手段により、完全性認証情報を付加しないことを決定し、通常のTCP又はUDPを処理する通常プロトコル処理を行って通信を行うようにしている。
なお、第1又は第2の通信装置が、完全性認証取決め手段を持たない第3の通信装置と通信する際に、第1又は第2の通信装置が、前記第3の通信装置が完全性認証取決め手段を持たないことを理由に、通信を行わないようにすることもできる。
また、本発明では、完全性認証取決めステップにおいて取決めの候補となりうる完全性認証情報を付加するための完全性認証ロジックをメモリに記憶ないし回路に実装するステップと、該記憶ないし実装する内容を定期的に変更する完全性認証ロジック変更ステップをさらに備えることができる。また、完全性認証取決めステップより前に、通信相手を認証するステップをさらに含むこともできる。
図1は、本発明の通信システムに用いられるTCP2のプロトコルスタックを示す図である。
図2は、本発明のTCP2を用いた通信システムの第1の実施形態(TCPsecによるECアプリケーション)におけるシステムの全体構成図である。
図3は、本発明のTCP2を用いた通信システムの第2の実施形態(UDPsecによる放送アプリケーション)におけるシステムの全体構成図である
図4は、本発明のTCP2の中の3つのプロトコルスタックのパケット構造とその暗号化範囲及び認証範囲を示す図である。(a)、(b)(c)は、それぞれTCPsec/IPsec、TCPsec/IP、UDPsec/IPのパケット構造、及び各暗号化範囲、完全性認証の適用範囲を示す図である。
図5は、本発明のTCP2の実施形態であるTCP/TCPsecパッシブオープンの処理を示す流れ図である。
図6は、本発明のTCP2の実施形態であるTCP/TCPsecアクティブオープンの処理を示す流れ図である。
図7は、標準TCPと本発明のTCPsecのホストA(アクティブオープン)とホストB(パッシブオープン)間の通信のやり取りを示すシーケンス図である。
図8は、図5のTCPパッシブオープン処理S5の詳細を示す流れ図である。
図9は、図5のTCPsecパッシブオープン処理S6の詳細を示す流れ図である。
図10は、図6のTCPアクティブオープン処理S12の詳細を示す流れ図である。
図11は、図6のTCPsecアクティブオープン処理S13の詳細を示す流れ図である。
図12は、図9のTCPsec送受信処理S37及び図11のTCPsec送受信処理S76の詳細を示す流れ図である。
図13は、図9のTCPsecパッシブ接続処理S48の詳細を示す流れ図である。
図14は、図11のTCPsecアクティブ接続処理S88の詳細を示す流れ図である。
図15は、本発明のTCP2の実施形態であるUDP/UDPsecオープンの処理を示す流れ図である。
図16は、本発明のTCP2を用いたUDP/UDPsecユニキャスト通信のシーケンス図である。
図17は、本発明のTCP2を用いたUDP/UDPsecブロードキャスト通信のシーケンス図である。
図18は、図15のUDPオープン処理S124の詳細を示す流れ図である。
図19は、図15のUDPsecオープン処理S125の詳細を示す流れ図である。
図20は、図19のUDPsecブロードキャスト受信開始処理S141の詳細を示す流れ図である。
図21は、図19のUDPsecユニキャスト送信開始処理S146の詳細を示す流れ図である。
図22は、図19のUDPsecデータ送受信処理S144の詳細を示す流れ図である。
図23は、図19のUDPsecユニキャスト受信開始処理S137の詳細を示す流れ図である。
図24は、本発明のTCP2を従来のIPsec又はSSLを適用した場合と比較したメリットを説明するための図である。
図25は、従来のIPsecを用いた標準的な通信のプロトコルスタックを示す図である。
図26は、従来のSSLを用いた標準的な通信のプロトコルスタックを示す図である。
引用符号の説明
1・・・ホストコンピュータ、
2・・・ネットワーク制御機器(ルータ)
3a、3b、3c・・・クライアント端末
4a、4b、4c・・・クライアント端末
11・・・NICドライバ
12・・・ARP 又は ARP on CP
13・・・IPエミュレータ
13b・・・IPsec on CP
15・・・TCPエミュレータ
15b・・・TCPsec on CP
16・・・UDPエミュレータ
16b・・・UDPsec on CP
17・・・ソケット(Socket)
41・・・IPヘッダ
42・・・ESPヘッダ
43・・・TCPヘッダ
44・・・TCPsec付加情報
45・・・データ(ペイロード)
46・・・TCPsec付加トレーラ
47・・・TCPsec付加認証データ
48・・・ESPトレーラ
49・・・ESP認証データ
以下、図1〜図24を参照しながら本発明の実施の形態の例を説明する。
図1は、本発明の暗号化通信システムの一実施の形態に用いられるプロトコルスタックを示すものである。
本発明に用いられるプロトコルスタックは、図1に示すように、OSI7階層の物理層(第1層)とデータリンク層(第2層)に相当する階層に、NIC(Network Interface Card)の Driver11が配列される。このドライバは、既に述べたように、コンピュータなどのハードウエアをネットワークに接続するためのインターフェースカードのドライバであり、その内容はデータ送受信制御ソフトウエアである。例えばEthernetに接続するためのLANボードまたはLANカードがこれに相当するものである。
第3層のネットワーク層には、一部がトランスポート層(第4層)まで伸びたIPエミュレータ(emulator)3が存在している。上記延びた部分には、トランスポートとしての機能は実装していない。セッション層に、ネットワーク層の機能を提供しているだけある。このIPエミュレータ3は、暗号化通信を行うプロトコルである「IPsec on CP」13bと、「IP on CP」13aを用途に応じて切り換えて使う働きをするものである。ここで、「on CP」とは、クラッキング・プロテクタ(CP)による、「進入」「攻撃」の監視、破棄、切断ないし通過制限の対象となっていること、又は、設定によりなりうることを示している。
また、ネットワーク層にはARP on CP(Address Resolution Protocol on Cracking Protector)が配列されている。このARP on CPは、クラッカー(Cracker)への保護対策を具備したIPアドレスから Ethernetの物理アドレスである MAC(Media Access Control)アドレスを求めるのに使われるプロトコルである。MACは、媒体アクセス制御と呼ばれる、LANなどで利用される伝送制御技術であり、データの送受信単位であるフレームの送受信方法やフレームの形式、誤り訂正などを規定する技術として利用されている。
ここで、IPエミュレータ13は、本発明による各種のセキュリティ機能を、従来のIP周辺のスタックに整合させるためのソフトウエア又はファームウエアである。すなわち、IPのエラーメッセージや制御メッセージを転送するプロトコルであるICMP(Internet Control Message Protocol)14a、同一のデータを複数のホストに効率よく配送するための又は配送を受けるために構成されるホストのグループを制御するためのプロトコルであるIGMP(Internet Group Management Protocol)14b、TCP15、UDP16さらにソケット(Socket)インターフェース17に整合させるためのソフトウエア、又はファームウエア、ないしはハードウエア(電子回路、電子部品)である。このIPエミュレータ13により、IPsecの暗号化・復号化及び必要な認証情報付加・認証等の前後の適合処理を行うことができる。
このIPエミュレータ13の上層のトランスポート層(第4層)には、TCPエミュレータ15とUDPエミュレータ16が配置されている。TCPエミュレータ15は、暗号化通信を行うプロトコルである「TCPsec on CP」15bと、通常の通信プロトコルである「TCP on CP」15aを用途に応じて切り換えて使う働きをする。同様に、UDPエミュレータ16は、暗号化通信を行うプロトコルである「UDPsec on CP」16bと、通常の通信プロトコルである「UDP on CP」16aを用途に応じて切り換えて使う働きをする。
本発明の最も特徴とするべき点は、このトランスポート層(第4層)に、TCPsec15bと、UDPsec16bの暗号化通信プロトコルを搭載したことである。TCPsec15bとUDPsec16bについては後述する。
このトランスポート層(第4層)の上層のセッション層(第5層)には、TCP及びUDP等のプロトコルとデータのやりとりを行うソケット(socket)インターフェース17が設けられている。このソケットの意味は、既に述べたようにコンピュータが持つネットワーク内の住所に当たるIPアドレスと、IPアドレスのサブアドレスであるポート番号を組み合わせたネットワークアドレスを意味しており、実際には、一連のヘッダの追加ないし削除をまとめて行う、単一のソフトウエアプログラムモジュール(実行プログラム等)あるいは単一のハードウエアモジュール(電子回路、電子部品等)からなっている。
このソケットインターフェース17は、さらに上位のアプリケーション(図2で示すECアプリケーション及び図3で示す放送アプリケーション等)からの統一的なアクセス方式を提供するものであり、引数の種類や型など従来と同様のインターフェースを保つようにしている。
TCPエミュレータ15は、トランスポート層において、データの漏洩・改竄の防止の機能、すなわち暗号化、完全性認証及び相手認証等の機能を持つTCPsec15bと、このような暗号化、完全性認証、及び相手認証等の機能を持たない通常のプロトコルTCP15aのいずれかにパケットを振り分ける働きをもっている。また、TCPsec15b及びTCP15aのいずれもクラッキング・プロテクタ(CP)を備えているため、そのいずれを選択した場合でも、クラッカーによる「進入」「攻撃」に対して防御する機能を実現することができる。TCPエミュレータ15は上位層であるソケットとのインターフェースの役割も果たしている。
また、既に述べたようにTCPがエラー補償機能を有するのに対して、UDPはエラー補償機能を持たないが、その分転送速度が速く、かつブロードキャスト機能を備えているという特徴がある。UDPエミュレータ16は、TCPエミュレータ15と同様に、データの漏洩・改竄の防止の機能、すなわち暗号化、完全性認証及び相手認証等の機能を持つUDPsec16bと、このような暗号化、完全性認証、及び相手認証等の機能を持たない通常のプロトコルUDP16aのいずれかにパケットを振り分ける働きを持っている。
図1に示すように、ソケット17、TCPエミュレータ15、UDPエミュレータ16、「TCPsec on CP」15b、「UDPsec on CP」16b、「TCP on CP」15a、「UDP on CP」16a、「ICMP on CP」14a、「IGMP on CP」14b、IPエミュレータ13、「IP on CP」13a、及び「ARPonCP」12からなるプロトコルスタックが本発明の暗号化処理を行うためのプロトコルスタックであり、以下、このプロトコルスタックを総称してTCP2(登録商標出願中)と呼ぶことにする。なお、TCP2には「IPsec on CP」13bは必須のものとして含まれていないが、「IPsec on CP」13bを含めてTCP2とすることもできる。
本発明のTCP2は、TCP、UDP、IP、IPsec、ICMP、IGMP、ARPの標準プロトコルにCP(クラッキング・プロテクト)を実装し、各プロトコルスタックに対する通信からの攻撃、及び、アプリケーション・プログラムからの攻撃(トロイの木馬、プログラムの改竄、正規ユーザの不正使用)を防御することができる。また、TCP2では、TCPエミュレータ15を実装し、このTCPエミュレータ15は、セッション層にあるソケット(Socket)17、及びネットワーク層にあるIPエミュレータ13から見て、互換性を保つため、外向きには標準TCPと同じに見せることができる。実際は、TCP2の機能として、TCPとTCPsecを切り替えて実行する。TCPsecは、本発明であるトランスポート層での暗号化及び認証機能である。
また、同様に、TCP2では、UDPエミュレータ16を実装しており、UDPエミュレータ16は、セッション層であるソケット(Socket)17、及び、ネットワーク層であるIPエミュレータ13から見て、互換性を保つため、外部からは標準UDPとして見せることができる。実際は、TCP2の機能として、UDP、UDPsecを切り替えて実行する。UDPsecは、本発明であるトランスポート層での暗号化及び認証機能である。
次に、TCP2において、特に重要な機能である「データ漏洩」を防ぐ機能であるTCPsec15b及びUDPsec16bについて説明する。
TCPsec15b及びUDPsec16bのための暗号化・復号化の方法(アルゴリズム、ロジック(論理))としては、公知の秘密鍵(共通鍵)暗号アルゴリズムが用いられる。例えば、1960年代にIBM社によって開発された秘密鍵暗号アルゴリズムであるDES(Data Encryption Standard)や、その改良版としての3DESが用いられる。また、その他の暗号アルゴリズムとしては、1992年にスイス工科大学のJames L.Massey氏とXuejia Lai氏によって発表されたIDEA(International Data Encryption Algorithm)も用いられる。この暗号アルゴリズムは、データを64ビットのブロックに区切って暗号化するもので暗号鍵の長さは128ビットである。秘密鍵暗号を効率よく解読する線形解読法や差分解読法に対しても十分な強度を持つように設計されている。
また、本発明に用いられるTCPsec15b及びUDPsec16bの暗号方式として、FEAL(Fast data Encipherment Algorithm)、MISTY、AES(Advanced Encryption Standard)といった暗号方式も利用されるほか、また、独自に作成した秘密の暗号化・復号化アルゴリズムを利用することもできる。ここで、FEALは、日本電信電話株式会社(当時)が開発した暗号方式で、暗号化と復号化に同じ鍵をもちいる秘密鍵型の暗号方式である。このFEALは、DESに比べて高速に暗号化と復号化ができるという利点がある。
次に、同じく本発明に利用される暗号方式であるMISTYは、三菱電機株式会社が開発した秘密鍵型の暗号方式であり、IDEAと同様にデータを64ビットのブロックに区切って暗号化する。鍵の長さは128ビットである。暗号化と復号化には同じプログラムが使われる点はDESなどと同じである。この方式も秘密鍵暗号を効率よく解読する線形解読法や差分解読法に対しても十分な強度を持つように設計されている。
また、AESは、米国商務省標準技術局によって選定作業が行われている、米国政府の次世代標準暗号化方式であり、現在の標準的な暗号方式であるDESに代わる次世代の暗号標準として開発が進められたものである。世界に公募して集められて幾つかの暗号方式の中から、2000年10月に、ベルギーの暗号開発者Joan Daemen氏とVincent Rijmen氏が開発したRijndaelという方式が採用された。
このように、本発明のTCPsec15b及びUDPsec16bの暗号方式としては、既に知られているさまざまな秘密鍵の暗号アルゴリズムを採用することができるほか、ユーザが独自に開発した秘密鍵(共通鍵)暗号方式も利用することが可能である。
さらに、いわゆる「なりすまし」及び「データの改竄」などを防ぐための「相手認証」及び「完全性認証」の方法として、公開鍵や事前秘密共有(Pre−shared)を利用したアルゴリズム、例えば、MD5(Message Digest 5)、SHA1(Secure Hash Algorithm 1)などの認証アルゴリズムが用いられる。また、このような公知の認証アルゴリズムに代えて独自の一方向関数を利用したアルゴリズムを採用することもできる。
このMD5は、認証やデジタル署名に用いられるハッシュ関数(一方向要約関数)の一つであり、原文を元に固定長のハッシュ値を発生し、これを通信経路の両端で比較することにより、通信途中で原文が改竄されていないかを検出することができるものである。このハッシュ値は擬似的な乱数のような値をとり、これを基にしては原文を再生できないようになっている。また、同じハッシュ値を生成する別のメッセージを作成することも困難になっている。
SHA1も、認証やデジタル署名などに使われるハッシュ関数の一つであり、2の64乗ビット以下の原文から160ビットのハッシュ値を生成し、通信経路の両端で比較することにより、通信途上の原文の改竄を検出するものである。この認証アルゴリズムは従来のインターネットの暗号化通信の代表的なものであるIPsecにも採用されている。
なお、これらの認証アルゴリズムについては、DH(Diffie−Hellman)公開鍵配送法や、IPsecと同様のIKE(Internet Key Exchange)プロトコル(UDPの500番)などにより安全な鍵交換ができるように設計され、しかも、定期的に暗号化/完全性認証アルゴリズム(論理)自体やそのための鍵の集合/定義域が変更されるように、プロトコルドライバープログラム(TCPsec15b、UDPsec16bなど)によりスケジュールされている。
次に、図2に基づいて、本発明の第1の実施の形態である暗号化方式TCP2(特に、TCPsec)を用いた暗号化通信について説明する。図2は、特に、EC(Electronic Commerce:電子商取引)アプリケーションに応用した通信に適用する例である。
図2は、ネットワーク20に接続されたECアプリケーション用のクライアント端末3a、3b、3cが、いわゆるルータ又はゲートウエイのようなネットワーク制御機器2を介して他のネットワーク30に接続されたホストコンピュータ(いわゆるサーバとして機能する通信装置)に接続された場合の全体構成を示す図である。
ネットワーク20に接続されるクライアント端末3a、クライアント端末3b及びクライアント端末3cのうち、クライアント端末3bと3cは、本発明のTCP2を実装していない。つまりクライアント端末3bと3cには、本発明の暗号化方式のためのプロトコルであるTCPsecもUDPsecも実装されていない。TCP2をサポートしているクライアント端末は3aのみである。そして、クライアント端末3bについては、不図示のネットワークポリシー設定により通常のプロトコル処理による接続、すなわち、TCPレベルについては、「データ漏洩」を防ぐ暗号化機能、「データ改竄」を防ぐ完全性認証機能、及び「なりすまし」を防ぐ相手認証機能は伴わない接続を行うようにしている。
何れのクライアント端末3a〜3cにおいても、ソケット(socket)の上層には、EC用のアプリケーションソフトウエアが実装されている。また、ネットワーク30に接続されたホストコンピュータ1は、TCP2を搭載しており、そのソケット17の上層にECアプリケーションソフトウエア18が実装されている。図2ではUDPsecなどの不使用のプロトコルを省略しているが、このホストコンピュータ1のプロトコルスタックの構造は図1のプロトコルスタックの構造であるTCP2を構成するソフトウエアは全て搭載されている。
すなわち、まず第1層(物理層)と第2層(データリンク層)にまたがってNICドライバ(NIC Driver)11が配置され、その上層(第3層)のネットワーク層にはARP(Address Resolution Protocol)12とIPエミュレータ13が配置されている。そして、第4層のトランスポート層にTCPエミュレータ15とUDP16が配置される。図2にUDPエミュレータ(UDPsecとUDPを含む)の記載がないのは、第1の実施形態のECアプリケーションに対する暗号化通信としては速度よりも誤り補償に重点をおくTCPsecが使用されるからである。このことは、ホストコンピュータがUDPsecを搭載していないことを意味するものではない。TCP2を搭載することは、既に説明したようにUDPsecとTCPsecの両方を搭載していることを意味している。
ネットワーク20に接続されたクライアント端末3a、3b、3cとネットワーク30に接続されるホストコンピュータ1を介在するネットワーク制御機器2のプロトコルスタックは、NICドライバ、ARP、IPがスタックとして積み上げられたファームウエア(不揮発メモリ付電子回路)により構成されている。
また、クライアント端末3aは、本発明のTCP2をサポートする端末であるが、ここではTCPsecにのみ対応した通信装置を備えた端末としてプロトコルスタックが示されている。クライアント端末3bと3cは本発明のTCP2をサポートしていない。
クライアント端末3aには、ネットワークを通して又はCD−ROMのような記録媒体を介して事前に配布されるプロトコルドライバソフトウエアが実装されている。また、クライアント端末3b、クライアント端末3cに対しても同様にプロトコルドライバソフトウエアが事前に配布され、実装される。
特に、クライアント端末3cについては、従来の暗号化方式であるIPsecを実装しているが、ネットワーク制御機器(ルータ)2がTCPポート番号を参照したIPマスカレードを行っているためIPsecが有効に使えないようになっている。更にクライアント端末3cについては、不図示のネットワークポリシー設定により接続要求を破棄するようにしている。なお、このようなネットワークポリシーの設定ないしプロトコルを実装しているかどうかの確認(受信パケット解析等)自体については当業者に周知の事項であるのため、本明細書では説明を省略する。
ホストコンピュータ1がクライアント端末3aと通信するときは、本発明のTCP2、特にTCPsecに基づいた暗号化及び復号化取決めにより、通信を行うことになるが、ホストコンピュータ1がクライアント端末3b又は3cと通信するときは、本発明のTCP2(特に、TCPsec)による暗号化及び復号化の取決めがされない状態、つまり通常のTCPプロトコルによる通信が行われることになる。もちろん、ホストコンピュータ1がIPsecをサポートしているクライアント端末3cと通信する場合には、IPsecによる暗号化通信をすることができることは当然である。なお、ホストコンピュータ1が、TCP2が搭載されていないクライアント端末3b又は3cと通信しようとしてもホストコンピュータ1の有するTCP2の働きで、通信をストップさせることも可能である。
また、この実施の形態では、ネットワークを介してホストコンピュータ1とクライアント端末3aとが暗号化及び復号化ロジックの交換を行うようにしているが、FDやCD、UDBメモリ等のリムーバブルメディアを用いて予め通信相手同士で暗号化及び復号化のための取決めロジックを交換しておくこともできることは言うまでもない。
次に、図3に基づいて、本発明の第2の実施形態であるTCP2の中のUDPsecの暗号化方式を用いた暗号化通信について説明する。図3は、ネットワーク20に接続された放送アプリケーション用のクライアント端末4a、4b、4cが、いわゆるルータ又はゲートウエイのようなネットワーク制御機器2を介して別のネットワーク30に接続されたホストコンピュータ(いわゆるサーバとして機能する通信装置)1と通信する通信システムの全体構成を示す図である。
図3は、クライアント端末4a、4b、4c及びホストコンピュータ1のプロトコルスタックを示しているが、TCP2をサポートしているクライアント端末は4aと4bである。つまり端末4aと4bだけがUDPsecを備えている。各クライアント端末のソケット(socket)の上層には、放送用のアプリケーションソフトウエアが実装されている。また、ネットワーク30に接続されたホストコンピュータ1もTCP2を搭載しており、そのソケット17の上層に放送アプリケーションソフトウエア19が実装されている。図3のホストコンピュータ1も図2のホストコンピュータ1と同様に、図1のプロトコルスタックの構造であるTCP2を構成するソフトウエアは全て搭載している。
ホストコンピュータ1が保有するプロトコルスタックは、図2のホストコンピュータ1のプロトコルスタックと略同じであるが、図2のホストコンピュータ1のプロトコルスタックと異なる点は、TCPエミュレータの代わりにUDPエミュレータ16がある点である。これは放送アプリケーションソフトでは画像等の大量のデータが取り扱われるため、データ伝送のような誤り補償よりも、高速性が重視されるためである。
ネットワーク20に接続されたクライアント端末4a、4b、4cとネットワーク30に接続されるホストコンピュータ1を介在するネットワーク制御機器2のプロトコルスタック、は、NICドライバ、ARP、IPがスタックとして積み上げられたファームウエア(不揮発メモリ付電子回路)により構成されている。
また、クライアント端末4aは、本発明のTCP2をサポートする端末であるが、ここではUDPsecにのみ対応した通信装置を備えた端末であり、クライアント端末4bは、本発明のUDPsec及び公知のIPsecに対応した通信装置であり、クライアント端末4cは公知のIPsecにのみ対応した通信装置である。このクライアント端末4cは本発明のTCP2をサポートしていない。これらのクライアント端末4a〜4cには、図2のクライアント端末3a〜3cと同様に、ネットワークを通して又はCD−ROMのような記録媒体を介して事前に配布されるプロトコルドライバソフトウエアが実装されている。
また、特に「データ漏洩」防止のための暗号化・復号化ロジック及び「データ改竄」防止のための認証情報付加・認証ロジックについては、ホストコンピュータ1とクライアント端末4a、4b、4cの間で対応している必要がある。公知のいわゆるIPsecと同様のポリシーで取決めを行うこともできるが、本発明の第2の実施形態においては、事前にプロトコルドライバソフトウエア自体を配布しているので、より簡潔な独自のプロトコルにより秘密鍵等を取り決めたり、より簡易な構造のパケットを使用したりすることもできる。また、公知の暗号化・復号化及び認証アルゴリズムでなく、独自で作成した暗号化・復号化及び認証アルゴリズム(ロジック)自体をプロトコルドライバのソフトウエアモジュール等として組み込むこともできる。
なお、クライアント端末4cは、TCP2を実装していないが、インターネットで利用される公知のIPsecを実装しているため、これによってある程度セキュアな通信をすることができる。しかし、クライアント4aと4bは、対象とする放送アプリケーションのパフォーマンスないしセキュリティポリシーの都合上、IPsecではなく本発明によるTCP2の構成要素であるUDPsecを実装して使用している。IPsecではなくUDPsecを利用する理由は、例えば、UDPポート番号部分(IPペイロードに属する)をIPsecで暗号化することによるパフォーマンスの低下など、IPsec自体に脆弱さがあるからである。
また、通信相手が正しいものかどうかを判断する相手認証プロトコルを、本発明のTCP2のTCP又はUDPプロトコルスタック、つまりTCPsec又はUDPsecに埋め込むことにより、通信相手相互間で上位アプリケーションを意識することなく、通信相手認証機能を実施することができる。この場合、コスト増にならない範囲で実質的に通信パケット数やパケット長等を増やすこともできる。
また、特に、ネットワーク内で不特定多数の相手に向かってデータを送信するブロードキャスト機能を実施するに際して、本発明による暗号化方式であるUDPsecを利用する場合には、ブロードキャストを受けるクライアント端末3a、3bがネゴシエーション(取り決め)を開始し、通信相手認証や通信用秘密鍵を得る。そして、クライアント端末3aや3bは、通信相手の認証を行って通信用の秘密鍵を取得するまでは、ホストコンピュータ1からのUDPsecによる配信データを復号化することができない。
次に、図4に基づいて、本発明の第1及び第2の実施形態の通信で送受信されるパケット構造と、その暗号化範囲及び完全性認証の適用範囲について説明する。
図4(a)はTCPsec/IPsecのパケット構造と各暗号化範囲と完全性認証の適応範囲を示し、図4(b)(c)はそれぞれTCPsec/IP、UDPsec/IPのパケット構造と各暗号化範囲及び完全性認証の適用範囲を示したものである。
図4(a)に示すように、TCPsec/IPsecのパケット構造は、IPヘッダ41のすぐ後に、IPsecのESPヘッダ42が続いている。続いてTCPヘッダ43とTCPsecの付加情報44が設けられ、その後にアプリケーションデータ45が続く構造になっている。そして、アプリケーションデータ45の後には、ブロック暗号で発生するデータのブランクやそのブランクの長さ、次のヘッダの番号などの暗号データをサポートする情報であるTCPsec付加トレーラ46が配列され、その後にTCPsecの付加認証データ47が配列される。そして、さらにその後にIPのためのESPトレーラ48とESP認証データ49が配列されるパケット構造になっている。
このうち番号41、42、48、49で示される部分はIPsec用の情報であり、番号43、44、46、47が本発明によるTCP2の中心的な役割を果たすTCPsecに関連する情報である。なお、ここではTCPsecもIPsecに準じた配列としたが、採用する暗号化や認証のアルゴリズムによっては、TCPsecの付加情報44と付加トレーラ46を省略したり、TCPsecの付加認証データ47を削減したりしても利用可能である。
図4(a)に示すTCP2のパケット構造においては、TCPsecとIPsecの二つの方式で暗号化が行われる。この場合、まず送信側では、TCPsec側を最初に暗号化して、TCPsec認証データを付加する。次に、IPsecを暗号化し、IPsec認証データを付加している。そして、受信側では、まず、IPsecを復号化して、IPsec認証データにより受信パケットのデータを検証し、続いてTCPsec側を復号化して、TCPsec認証データで受信パケットのデータを検証する。
このように、図4(a)に示すようなパケット構造を有するデータでは、IPsecとTCPsecの二種類の暗号アルゴリズムを用いて暗号化し、さらに完全性認証を行うので、IPsecのみと比べて外部からの侵入等にたいして格段に強固な暗号化通信システムを確立することができる。TCPsecにより暗号化される範囲は、アプリケーションデータ45、TCPsec付加トレーラ46の部分であり、TCPsecによる認証範囲としては上記暗号化範囲にさらにTCPsec付加情報44が加えられる。なお、従来のIPsecで暗号化される暗号化範囲は、TCPヘッダ43からESPトレーラ48までの部分であり、その認証範囲は、ESPヘッダ42からESPトレーラ48までの範囲となる。
図4(b)は、TCPsec/IPのパケット構造を示しており、図4(a)と異なり、IPヘッダ41のすぐ後に、TCPヘッダ43及びTCPsec付加情報44が続き、更にアプリケーションデータ45が続く構造になっている。そして、アプリケーションデータ45の後には、ブロック暗号で発生するデータのブランクやそのブランクの長さ、次のヘッダの番号などの暗号データをサポートする情報であるTCPsecの付加トレーラ46とTCPsecの付加認証データ47が配列される構造となっている。
ここで、番号43、44、46、47がTCPsecに特徴的な情報となる。ただし、上述したようにこれらの情報は、採用する暗号化/認証アルゴリズムによっては、TCPsec/IPの使用していないヘッダフィールド部分などに分散したり、個々のパケットからは逆算・推測できない独立した事前取決め(ネゴシエーション)により省略したりできるものである。また、IP層の上層に当たるTCP及びIPを使用していないプロトコルフィールドを用いて、図4(b)に示すようなTCPsec/IPパケットを構成することにより、より下層のIPのみに着目したIPsecパケットよりもパケット長を簡単に削減することができるようになる。なお、ここで暗号化範囲は、図示の通り、アプリケーションデータ45、TCPsec付加トレーラ46であり、認証範囲は上記暗号化範囲の他に、TCPsecの付加情報44が加えられる。
図4(c)は、本発明におけるUDPsec/IPのパケット構造を示すものであり、UDPsec付加情報44a、UDPsec付加トレーラ46a及びUDPsec付加認証データ47aがUDPsecをサポートするために必要な情報となる。この暗号化範囲は、図示の通り、アプリケーションデータ45a、UDPsec付加トレーラ46aであり、認証範囲は上記暗号化範囲の他に、UDPsec付加情報44aが加えられる。
次に、本発明の第1の実施の形態であるTCPsecを用いた暗号化処理システムの動作を図5〜図6、図8〜図14に示す流れ図、及び図7に示すシーケンス図に基づいて説明する。
図5は、TCP、並びに、TCPsecのパッシブオープン(図7のホストBに相当する接続待ちのオープンであり、例えば、Webサーバが、この状態でオープンする。)における処理の流れ図であり、上位アプリケーション・プログラムで、接続待ちオープンした場合に、このTCP/TCPsecパッシブオープン処理がスタートする(ステップS1)。なお、この部分は、図7でいうとホストB側の処理がこれに相当する。
まず、最初に、オープンするポート番号の解析が行われる(ステップS2)。この解析では、例えば、Webサーバの場合は、TCPポートの80番を使用して、その定義状態を確認する。そして次にこのポート番号80が、TCPsecのパッシブオープンが許可されているかどうかを判定する(ステップS3)。ステップS3においてTCPsecのパッシブオープンが許可されていない場合は、今度はTCPパッシブオープンが許可されているかどうかが判断される(ステップS4)。判断ステップS4でTCPパッシブオープンも許可されていない場合は、TCPsecもTCPも許可されていないことになり、TCP/TCPsecパッシブオープンは失敗となり、処理を中断する(ステップS7)。
判断ステップS4でTCPパッシブオープンが許可されている場合、すなわちTCPsecパッシブオープンは許可されていないがTCPパッシブオープンは許可されているときは、後述する図8に示すTCPパッシブオープン処理が実行される(ステップS5).
判断ステップS3で、TCPsecのパッシブオープンの許可状態が確認された場合は、同じく後述する図9に示すTCPsecのパッシブオープン処理が実行される(ステップS6)。
ステップS5又はステップS6におけるTCPパッシブオープン処理又はTCPsecのパッシブオープン処理が終了するとTCP/TCPsecパッシブオープン処理を終了する(ステップS7)。このように、本例では、上位であるアプリケーションからは、TCPでパッシブオープンを行っているが、TCP2の判断により、TCPsecがサポートされていればTCPsecで通信を行い、TCPsecがサポートされていなければTCPで通信することとなる。
次に、図6に基づいて本発明のTCP並びにTCPsecのアクティブオープン処理について説明する。TCP/TCPsecのアクティブオープンとは、接続要求のオープンであり、例えば、Webブラウザを実装するクライアント端末が、この状態でオープンすることになる。図7でいうとホストA側の処理がこれに相当する。図6は、このアクティブオープンにおける処理の流れ図であり、上位アプリケーション・プログラムにおいて接続要求オープンがなされた場合に、このTCP/TCPsecのアクティブオープン処理が開始される(ステップS8)。
まず、最初に、オープンするポート番号の解析がなされる(ステップS9)。この解析は、例えば、Webブラウザを実装するクライアント端末アプリケーションが、TCPポートの3000番を使おうとした場合は、TCPポートの3000番の定義状態を確認する。
次にこのポート番号3000に対してTCPsecのアクティブオープンが許可されているかどうかが判断される(ステップS10)。ステップS10においてTCPsecのアクティブオープンが許可されていないと判定された場合は、続いてTCPアクティブオープンが許可されているかどうかが判断される(ステップS11)。判断ステップS11でTCPアクティブオープンも許可されていない場合は、TCPsec、TCPのいずれのアクティブオープンも許可されていないことになり、TCP/TCPsecアクティブは失敗となり、接続処理は中断される(ステップS14)。
判断ステップS11でTCPアクティブオープンが許可されている場合、すなわちTCPsecアクティブオープンは許可されていないがTCPアクティブオープンは許可されているときは、後述する図10に示すTCPアクティブオープン処理が実行される(ステップS12).
判断ステップS10で、TCPsecのアクティブオープンの許可状態が確認された場合は、後述する図11に示すTCPsecのアクティブオープン処理が実行される(ステップS13)。ステップS12又はステップS13におけるTCPsecアクティブオープン処理又はTCPsecのアクティブオープン処理が終了するとTCP/TCPsecアクティブオープン処理が終わる(ステップS14)。TCP/TCPsecアクティブオープンの場合も、TCP/TCPsecパッシブオープン(図5)の場合と同様に、上位であるアプリケーションからは、TCPでアクティブブオープンを行っているが、TCP2の判断により、TCPsecがサポートされていればTCPsecで通信を行い、TCPsecがサポートされていなければTCPで通信することとなる。
次に、図7に基づいてアクティブオープン側のホストAとパッシブオープン側のホストB間のシーケンス処理について、本発明のTCPsecを使った通信の処理を説明する。
図7は、本発明の暗号処理プロトコルであるTCPsecを用いたときの接続シーケンス、データ通信シーケンス及び切断シーケンスを、標準のTCPと比較して示したものである。図7(a)は標準TCP,図7(b)は本発明のTCPsecを用いた時の通信のシーケンスを示した図である。
図7(a)に示すように、標準のTCPは、ホストBのアプリケーションがTCPパッシブオープンし、ホストAのアプリケーションがTCPアクティブオープンしている。
ホストBのアプリケーションがTCPパッシブオープンをすると、TCPパッシブオープン処理(図5のステップ5及び図8参照)を開始し、後述する図8のステップS15に示すように受信待ちとなる。ホストAのアプリケーションがTCPアクティブオープンをすると、TCPアクティブオープン処理(図6のステップS12及び図10参照)を開始し、後述する図10のステップS52に示すようにホストAからホストBに対して接続要求(SYN)が送信される。これにより、標準TCPの接続シーケンスが開始状態となる。
ホストB側では、この接続要求(SYN)を受信するとこの接続要求の受信パケットの解析を終了し、ホストA側に接続応答(SYN・ACK)を送信する。ここでACKとは、Acknowledgementの略であり、データ転送が正常に終了したときなどに送信されるものである。ホストA側は、この接続応答(SYN・ACK)を受信すると、接続が完了した旨のACK(肯定応答)を送信し、標準TCPの接続シーケンスを終了する。
この標準TCPの接続シーケンスを終了すると、標準TCPによるデータ通信シーケンスが有効となり、ホストA側、又は、ホストB側の何れかがデータを送信後、データを受信した側からACK(肯定応答)を返すという基本パターンを繰り返してデータの送受信が行われる。
この標準TCPのデータ通信シーケンスでは、ホストA又はホストBの何れかが、相手に対して切断要求をすることができる。
図7(a)では、アクティブオーブン側のホストAからパッシブオープン側のホストBに対して切断要求が送信された場合を示している。ホストAのアプリケーションから切断要求があると、ホストAは、切断要求(FIN)を送信する。ホストBは、この切断要求(FIN)を受信すると、後述する図8のステップS23に示すように切断応答(FIN・ACK)を送信する。ホストAは、この切断応答(FIN・ACK)を受信すると、ACK(肯定応答)を送信し、標準TCPの切断シーケンスを終了する。
次に、本発明のTCPsecによる通信のシーケンスを図7(b)に基づいて説明する。図7(b)では、ホストBのアプリケーションがTCPsecパッシブオープンし、ホストAのアプリケーションがTCPsecアクティブオープンしている。
ホストBのアプリケーションがTCPsecパッシブオープンをすると、TCPsecパッシブオープン処理(図5のステップS6及び図9を参照)を開始し、後述する図9のステップS31に示すように受信待ちとなる。ホストAのアプリケーションがTCPsecアクティブオープンをすると、TCPsecアクティブオープン処理(図6のステップS13及び図11を参照)を開始し、図11のステップS69に示すようにホストAからホストBに対して接続要求(SYN)が送信される。これにより、TCPsecの接続シーケンスが開始状態となる。なお、接続要求(SYN)には、オプションで、TCP2の固有情報を暗号化して付加し、正しい相手であることを相手に通知するようにしている。すなわち、ホストAとホストBの間で次のTCPsecネゴシエーションデータを交換する以前に相手方端末がTCP2をサポートする端末であるか否か、言い換えると通信する正しい相手であるか否かを確認することができる。
ホストB側では、ホストAから送信された接続要求(SYN)を受信すると、正しい相手であれば、ホストAに対して接続応答(SYN・ACK)を送信する。そして、ホストA側は、このホストBからの接続応答(SYN・ACK)を受信するとACK(肯定応答)を送信する。続いてホストAとホストBの間でTCPsecネゴシエーションデータを交換し、正しい相手であれば、TCPsecの接続シーケンスを終了する。
この接続シーケンスが終了すると、TCPsecのデータ通信シーケンスが有効となり、ホストA側又はホストB側の何れかがデータを送信後、データを受信した側からACK(肯定応答)を返す基本パターンを繰り返してデータの送受信が行われる。なお、このデータは、すべて暗号データであることは言うまでもない。
なお、TCPsecのデータ通信シーケンスでは、ホストA又はホストBの何れかが相手方に対して切断要求をすることができる。図7(b)では、アクティブオープン側のホストAから切断を開始している。ホストAのアプリケーションから切断要求があると、ホストAは切断要求(FIN)を送信する。この切断要求(FIN)には、オプションで、TCP2の固有情報を暗号化して付加し、正しい相手であることを相手に通知することができるものである。ホストBは、この切断要求(FIN)を受信すると、正しい相手であれば、後述する図9のステップS42に示すように切断応答(FIN・ACK)を送信する。ホストAは、この切断応答(FIN・ACK)を受信すると、ACK(肯定応答)を送信し、TCPsecの切断シーケンスを終了する。
以上、図7に基づいて、標準TCPと本発明のTCP2のひとつであるTCPsecについて通信の接続から切断までのシーケンスを説明したが、以下、TCP及びTCPsecのパッシブオープン処理、及びアクティブオープン処理について流れ図に従って順に説明する。
まず、図5の流れ図のステップS5において、TCPパッシブオープン処理がスタートした場合の詳細について図8の流れ図に基づいて説明する。
図5のステップS5で処理するプロトコルがTCPと決定した場合に、この図8のTCPパッシブオープン処理がスタートする。最初に、受信待ちをして、受信した受信パケットの解析を行う(ステップS15)。続いてこの受信したパケットが正しいパケットであるか否か、つまりDoS攻撃におけるTCPプロトコル攻撃パターンであるかどうかを判断する(ステップS16)。そしてステップS16の判断の結果、不正パケットであると判定された場合にはその受信パケットを廃棄し(ステップS17)、次のパケットの受信を待つ。
判断ステップS16において、受信パケットが正しいTCPパケットであると判断された場合は、続いて接続中か否か、つまり図7のホストAとホストBの接続シーケンスが完了しているかどうかが判断される(ステップS18)。判断ステップS18において、接続中であると判定された場合は、次にパケットが切断要求(図7(a)のFIN)であるか否かが判断される(ステップS19)。切断要求でなければ、続いて切断応答(図7(a)のFIN/ACK)であるか否かが判断される(ステップS20)。切断要求でもなく、切断応答でもない場合には、TCPデータの送受信処理が行われ(ステップS21)、受信パケットが切断応答である場合は、図7のホストAからACKが送信され、TCP接続が切断される(ステップS25)。判断ステップS19でホストAからの切断要求であると判断されると、これに対する切断応答がホストBから送信される(ステップS23)。
ステップS23で切断応答が送信された場合には、最終のACKを待つ(ステップS24)。そして、最終ACKを受信した後にTCPを切断状態にして(ステップS25)、TCPパッシブオープンを終了する(ステップS26)。
判断ステップS18において、受信ポートが接続中でないとされた場合には、受信したパケットがパッシブオープン許可ポートであるか否かが判定される(ステップS27)。そして受信パケットが許可されていない場合は、受信パケットを廃棄して(ステップS28)次のパケットを待つ。また、判断ステップS27において、受信パケットがパッシブオープン許可になっているとされた場合は、次にパケットが接続要求であるか否かが判断され(ステップS29)、接続要求でない場合は、パケットを廃棄して(ステップS28)次のパケットを待つ。また、判断ステップS29で接続要求であると判断された場合には、接続応答を送信し、TCPを接続状態とする(ステップS30)。
次に、図5のTCPsecのパッシブオープンにおける処理ステップS6の詳細について、図9の流れ図に基づいて説明する。この処理は、図5のステップS6に示されるように、受信パケットの処理がTCPsecの処理であると決定された場合の処理である。最初に、受信待ちをして、受信した受信パケットの解析がなされる(ステップS31)。続いてこの受信したパケットが正しいパケットであるか否か、つまりDoS攻撃におけるTCPプロトコル攻撃パターンでないかどうかが判断される(ステップS32)。このステップS32の判断の結果、不正パケットであると判定された場合にはその受信パケットを廃棄し(ステップS33)、ステップS31に戻り、次のパケットの受信を待つ。
判断ステップS32において、受信パケットが正しいパケットであると判断された場合は、続いてホストAとホストBの接続が完了しているかどうか(接続中かどうか)が判断される(ステップS34)。判断ステップS34において、ホストAとホストBが接続中であると判定された場合は、次に受信したパケットが切断要求(FIN)であるのか否かが判断される(ステップS35)。切断要求でなければ、今度は受信したパケットが切断応答(FIN・ACK)であるか否かが判断される(ステップS36)。そして、受信したパケットが切断要求でもなく、切断応答でもないということであれば、後述する図12に示されるTCPsecデータの送受信処理が行われ(ステップS37)、ステップS49に進む。次に、判断ステップS36で切断応答があった場合には、切断鍵が一致しているかどうかが判断される(ステップS38)。ここで、切断鍵とはホストAとホストBの間で図7の接続シーケンスにおけるネゴシエーションにおいて取り交わした共通鍵(秘密鍵)であり、この鍵が一致したときだけ両者間の通信を切断することができるものである。判断ステップS38で切断鍵が一致した場合には、ACKを送信して(ステップS39)、ホストAとホストB間のTCPsecを切断する(ステップS44)。判断ステップS38で切断鍵が一致しなかった場合には、不正パケットとしてパケットを廃棄し(ステップS41)、次の受信パケットを待つ。また、判断ステップS35において、受信パケットが切断要求(FIN)であると判断された場合も、切断鍵が一致しているか否かが判断される(ステップS40)。そして、切断鍵が一致しない場合は、受信パケットが不正なパケットとして廃棄され(ステップS41)、切断鍵が一致した場合は、切断応答(FIN・ACK)の送信が行われる(ステップS42)。ステップS42で切断応答が送信された場合には、相手方からの最終のACKを待ち(ステップS43)、この最終ACKを受信するとTCPsecを切断状態にして(ステップS44)、TCPsecパッシブオープンを終了する(ステップS45)。
判断ステップS34において、ホストAとホストBが接続中でないと判断された場合には、受信したパケットがパッシブオープンの許可ポートであるか否かが判断される(ステップS46)。そして受信パケットがパッシブオープンの許可ポートではない場合は、受信パケットを廃棄して(ステップS47)、ステップS31に戻り次のパケットを待つ。また、判断ステップS46おいて、受信パケットがパッシブオープン許可ポートになっているとされた場合は、後述する図13に示すTPCsecパッシブ接続処理が実行される(ステップS48)。
続いて、共通鍵と認証データに基づいて通信相手が正常、つまり正当な権限を持った相手であるか否かが判断される(ステップS49)。正常な相手であると判断されれば、ステップS31に戻り、次の受信パケットを待つが、通信相手が正常の相手ではないと判断されると、TPCsecの接続を強制切断し(ステップS50)、TCPsecのパッシブオープンの処理を終了する(ステップS51)。
次に、図6のステップS12に示す、TCPアクティブオープンの処理について図10の流れ図に基づいて説明する。
図10は、図6における処理するプロトコルがTCPであると決定した場合の処理を示す図であり、最初に、送信側ホストAから受信側ホストBに対して接続要求(SYN)が送信される(ステップS52)。この接続要求に対して受信側ホストBから接続応答(SYN・ACK)が送信されると、次に受信待ちをし、受信したパケットの解析が行われる(ステップS53)。次に、この受信したパケットが正しいパケットであるか否か、つまりDoS攻撃におけるTCPプロトコル攻撃パターンでないかどうかを判断する(ステップS54)。このステップS54における判断の結果、不正パケットであると判定された場合にはその受信パケットを廃棄し(ステップS55)、ステップS53に戻り、次のパケットの受信を待つ。
判断ステップS54において、受信パケットが正しいパケットであると判断された場合は、続いて送信側(アクティブ側)ホストAと受信側(パッシブ側)ホストBが、接続中かどうかが判断される(ステップS56)。この判断ステップS56において、接続中であると判定された場合は、次に受信パケットが送信側ホストAから受信側ホストBに対しての切断要求であるか否かが判断される(ステップS57)。これが切断要求でなければ、今度は受信側ホストBから送信側ホストAに対する切断応答(FIN・ACK)であるか否かが判断される(ステップS58)。切断要求でもなく切断応答でもないということになれば、TCPデータの送受信処理が行われ(ステップS59)、次の受信パケットを待つ。判断ステップS58でホストBからホストAへの切断応答であると判断されると、ホストAは切断を肯定するACKを送信し(ステップS60)、TCPを切断する(ステップS63)。
判断ステップS57において、受信したパケットが切断要求である場合は、ホストBからホストAに対して切断応答が送信され(ステップS61)、ホストBはホストAからの最終のACKの受信を待つ(ステップS62)。そして、ホストBがホストAから最終ACKを受信した後にTCPを切断状態にして(ステップS63)、TCPアクティブオープンを終了する(ステップS64)。
判断ステップS56において、送信側ホストAと受信側ホストBが接続中でないとされた場合には、受信したパケットがアクティブオープン許可ポートであるか否かが判定される(ステップS65)。そして受信パケットが許可されていない場合は、受信パケットを廃棄して(ステップS66)次のパケットを待つ。また、判断ステップS65において、受信パケットがアクティブオープン許可になっているとされた場合は、次に受信側ホストBからの接続応答があったか否かが判断され(ステップS67)、接続応答がなければ、パケットを廃棄して(ステップS66)次のパケットを待ち、受信側ホストBから接続応答がなされた場合には、TCPの接続状態として(ステップS68)、ステップS53に戻り、次の受信パケットを待つ。
次に、図6のステップS13のTCPsecアクティブオープンが開始された場合の詳細な処理について図11の流れ図に基づいて説明する。
図11の流れ図に示す処理は、図6のステップS13で処理するプロトコルがTCPsecであると決定した場合に開始されるものである。最初に、送信側ホストAから受信側ホストBに対して接続要求(SYN)が送信される(ステップS69)。これに対して、受信側ホストBから接続応答(SYN・ACK)があってパケットの受信が開始され、受信したパケットの解析が行われる(ステップS70)。
次に、受信パケットの解析の結果、受信したパケットが正しいTCPのパケットであるか否か、すなわち、DoS攻撃におけるTCPプロトコル攻撃パターンでないか否かが判断される(ステップS71)。この結果、不正パケットであると判定された場合には、そのパケットを廃棄(ステップS72)し、ステップS70に戻り次のパケットを待つ。
判断ステップS71において、受信したパケットが正しいTCPパケットであると判定された場合は、次に送信側ホストAと受信側ホストBの接続が完了しているかどうか(接続中かどうか)が判断される(ステップS73)。そしてホストAとホストBが接続中であれば、今度は受信したパケットが切断要求(FIN)であるか否かが判断される(ステップS74)。受信したパケットが切断要求ではないときは、次に受信側ホストBから切断応答があるかどうかが判断される(ステップS75)。切断要求もなく切断応答もない場合は、図12に示すTCPsecデータの送受信処理が行われ(ステップ76)、その後ステップS89に進む。
判断ステップS75で切断応答があった場合には、切断鍵が一致しているかどうかが判断される(ステップS77)。この切断鍵については図9において説明したとおりである。判断ステップS77で切断鍵が一致した場合には、送信側ホストAから受信側ホストBに対してACKを送信して(ステップS78)、ホストAとホストB間のTCPsecを切断する(ステップS83)。判断ステップS77で切断鍵が一致しなかった場合には、不正パケットとしてパケットを廃棄し(ステップS80)、次の受信パケットを待つ。また、判断ステップS74において、受信パケットが切断要求(FIN)であると判断された場合も、切断鍵が一致しているか否かが判断される(ステップS79)。そして、切断鍵が一致しない場合は、受信パケットが不正なパケットとして廃棄され(ステップS80)、切断鍵が一致した場合は、切断応答(FIN・ACK)の送信が行われる(ステップS81)。ステップS81で切断応答が送信された場合には、相手方からの最終のACKを待ち(ステップS82)、この最終ACKを受信するとTCPsecを切断状態にして(ステップS83)、TCPsecアクティブオープンを終了する(ステップS84)。
判断ステップS73において、送信側ホストAと受信側ホストBの接続が完了していない、つまり接続中でないとされた場合には、受信したパケットがアクティブオープン許可ポートであるか否かが判定される(ステップS85)。そして受信されたパケットが許可されていない場合は、その受信パケットを廃棄して(ステップS87)ステップS70に戻り、次のパケットを待つ。また、判断ステップS85において、受信パケットがアクティブオープン許可になっているとされた場合は、受信されるパケットが受信側ホストBからの接続応答(SYN・ACK)のパケットであるか否かが判断され(ステップS86)、接続応答のパケットでない場合は、パケットを廃棄して(ステップS87)次のパケットを待ち、判断ステップS86で接続応答のパケットであると判断された場合には、図14でその詳細を示すTCPsecアクティブ接続処理が行われる(ステップS88)。
ステップS88でTCPsecのアクティブ接続処理がなされると、次に受信側のホストBが正常な相手か否か、つまり接続を許可されている相手であるか否かが判断される(ステップS89)。そして、接続が許されている相手であると判断されれば、ステップS70に戻って次のパケットの受信を待ち、ステップS89で接続が許可されていない相手であると判断されると、TCPsecによる送受信を強制的に切断して(ステップS90)、TCPsecのアクティブオープンを終了する(ステップS91)。
次に、上述した図9ステップS37及び図11のステップS76が選択された場合のTCPsecデータの送受信処理の詳細について図12の流れ図に基づいて説明する。
まず、図9のステップS37及び図11のステップS76でTCPsecデータの送受信処理が開始すると、最初に、ホストAの上位アプリケーションからの送信要求があるか否かが判断される(ステップS92)。そして、ホストAの上位アプリケーションから送信要求があった場合は、送信側ホストAで送信データが暗号化され(ステップS93)、それに認証データが付加されて(ステップS94)、受信側ホストBに暗号化され認証データが付加されたパケットが送信される(ステップS95)。
次に、受信側ホストBで、受信データがあるか否かが判断され(ステップS96)、受信データがある場合には、受信データの復号化が行われる(ステップS97)。次に、この受信され復号化されたデータが正しいデータであるかどうかが判断される(ステップS98)。この判断は、復号化したデータと受信された認証データとを確認することによって行われるが、復号データを確認した結果、正しいデータでないと判定された場合には、TCP/TCPsecを強制的に切断する(ステップS99)。この強制切断は、受信したデータを廃棄するとともに、送信側に切断要求をすることによって行われる。判断ステップS98で、復号化したデータが正しいデータであると判定された場合には、受信データの取り込み、すなわち上位プロトコルスタックへのデータの配達が行われ(ステップS100)、TCPsecのデータ送受信処理が完了する(ステップS101)。
次に、図9のステップS48でTCPsecパッシブ接続処理が開始された場合の詳細の処理を図13の流れ図に基づいて説明する。
最初に、相手が正しい相手、つまり自コンピュータに接続する権限を持つコンピュータであるか否かを判断し(ステップS102)、正しい相手でない場合にはTCPsecの強制切断のための処理を実施する(ステップS103)。判断ステップS102において接続相手が正しい相手であると判断されれば、受信側ホストBから接続応答を送信する(ステップS104)。
そして、接続応答を送信してきた相手の情報が自コンピュータ内にあるかどうかを確認する(ステップS105)。相手情報がコンピュータ内にない場合は、本システム、すなわちTCP2をインストールする際に使用した、インストールサーバから相手情報を取得する(ステップS106)。または、第三者認証のサーバから相手情報を取得してステップS107に進む。この取得する情報としては、相手側のTCP2のID、ユーザID、パスワード、バイオメトリックス情報、機器固有情報、LAN接続機器情報等の内、1つ、若しくは、複数を使用することができる。なお、サーバからの取得情報を既に自コンピュータが保有している場合であっても、有効期限若しくは有効使用回数を超えているような場合には、改めて取得動作を行う必要がある。
次に、相手情報が正しい相手であるか否か、つまり、自分のコンピュータにアクセスすることを許容されている相手であるかどうかが判断される(ステップS107)。ここで、接続する相手が正しい相手であれば、TCPsecのパッシブ接続を完了する(ステップS108)が、正しい相手でない場合にはTCPsecの強制切断を行って接続を中止する(ステップS103)。
次に、図11のステップS88でTCPsecのアクティブ接続処理が開始された場合の詳細の処理を図14の流れ図に基づいて説明する。
図13のパッシブ接続処理の場合と同様に、最初に、接続要求をしてきた相手が正しい相手であるどうか、つまり自コンピュータにアクセス権限を持っている相手からの通信であるかどうかを判断する(ステップS109)。正当なアクセス権限を持たない相手からの通信であれば、TCPsecのアクティブ接続を強制切断して終了する(ステップS110)。
判断ステップS109で正しい相手であると判定されれば、送信側ホストから受信側ホストBに対して肯定的な接続応答(ACK)を送信する(ステップS111)。
次に、自コンピュータが相手側の情報を保有しているかどうかが判断される(ステップS112)。相手情報がコンピュータ内にない場合は、本システム、すなわちTCP2をインストールする際に使用した、インストールサーバから相手情報を取得する(ステップS113)。または、第三者認証のサーバから相手情報を取得してステップS114に進む。ここで、この取得する情報は、図13ステップS106と同様に、相手側のTCP2のID、ユーザID、パスワード、バイオメトリックス情報、機器固有情報、LAN接続機器情報等の内、1つ、若しくは、複数とすることができる。なお、サーバからの取得情報を既に自コンピュータが保有していたとしても、有効期限若しくは有効使用回数を超えている場合には、改めて取得動作を行う必要がある。
次に、相手情報が正しい相手であるか否か、つまり、自分のコンピュータにアクセスすることを許容されている相手であるかどうかが判断される(ステップS114)。接続する相手が正しい相手であれば、TCPsecのアクティブ接続を完了する(ステップS115)が、正しい相手でない場合にはTCPsecの強制切断を行って接続を中止する(ステップS110)。
以上、本発明のTCP2のうち、TCP/TCPsecを用いたパッシブオープン及びアクティブオープンの通信処理について説明した。
次に、図3で示すような、本発明の第2の実施形態であるUDP/UDPsecを用いた通信システム及び通信方法について説明する。
図15は、本発明の第2の実施の形態に用いられるUDP/UDPsecのパッシブオープン処理について説明するための流れ図である。
この処理は、上位アプリケーション・プログラムにより開始される(ステップ120)。最初に、オープンするポート番号の解析、すなわちポート番号の定義状態が確認される(ステップ121)。次に、このポート番号がUDPsecオープンになっているか否かが判断される(ステップS122)。UDPsecがオープンになっていない場合はUDPがオープンになっているかどうかが判断される(ステップ123)。そして、UDPsec、UDPが両方ともオープン許可になっていない場合は、UDP/UDPsecは終了する(ステップS126)。判断ステップS123で、UDPがオープン許可になっている場合、つまりUDPsecはオープン許可になっていないけれどもUDPがオープン許可になっている場合は、図18に示すUDPオープン処理が実施される(ステップS124)また、判断ステップS122においてUDPsecがオープンである場合は、UDPがオープンであるか否かにかかわらず、UDPsecのオープン処理が実施されて(ステップS125)、UDP/UDPsecオープン処理は終了する(ステップS126)。なお、上位であるアプリケーションからは、UDPでオープンを行っていたとしても、TCP2の判断により、UDPsec若しくは、UDPで通信することも可能である。
次に、本発明の第2実施の形態の1つであるUDP/UDPsecを用いたユニキャスト通信におけるシーケンス処理について図16に基づいて説明する。
図16は、標準のUDP、及び、本発明のTCP2の中のUDPsecにおけるユニキャスト通信の開始シーケンス、データ通信シーケンスのパケット(ヘッダと、ペイロードで構成する)及び、その流れを説明した図である。
図16(a)が標準のUDPを用いた通信シーケンスを示し、図16(b)は、UDPsecによる暗号化通信のシーケンスを示す。
図16(a)の標準のUDPは、ホストA、ホストBともにアプリケーションがUDPオープンしている例を示している。ホストBのアプリケーションがUDPオープンをすると、UDPオープン処理(図15のステップS124及び図18参照)を開始する。また、同様にホストAのアプリケーションがUDPオープンした場合も上記のUDPオープン処理を開始する。これにより、UDPのデータ通信を行うことが可能となる。ここで図16(a)に示すユニキャスト通信では、ホストA、ホストBの何れからもデータの送信が可能である。
次に、本発明のTCP2の暗号化方式の1つであるUDPsecによる通信処理のシーケンスを説明する。
図16(b)は、本発明のTCP2が持つUDPsecにより暗号化通信する場合の例であるが、この例は、ホストA、ホストBともにアプリケーションがUDPオープンし、TCP2がUDPsecでオープンと判断したケースである。
ホストBがUDPsecオープンをすると、UDPsecオープン処理(図15のステップS125及び図19を参照)が開始される。また、ホストAがUDPsecオープンした場合も同様にUDPsecオープン処理が開始される。そして、UDPsecのデータ通信が実現可能となる。
この図16(b)に示したUDPsecを用いたユニキャスト通信においても、UDPのときと同様に、ホストA側又はホストB側の何れからもデータを送信することができる。図16(b)の場合、まず、ホストAのアプリケーションからUDPデータの送信要求があったとして説明する。アプリケーションからUDPデータの送信要本を受け取ると、ホストBは、UDPsecユニキャスト受信開始処理を開始し、ネゴシエーションを開始する。ネゴシエーションをして、相手が正しい相手であれば、ネゴシエーションを完了して、アプリケーションからUDPデータの送信要求をUDPsecデータ(暗号データ)として送信する。このUDPsecユニキャスト通信では、データを受信した側からACK(肯定応答)を返さない。このため、送達確認とデータの保証をする機能はないが、その分データの通信が高速になり、大容量の画像データなどの通信に適している。
図17は、標準UDPと本発明のTCP2の暗号化方式であるUDPsecを用いたブロードキャスト通信の開始シーケンス、データ通信シーケンスのパケット(ヘッダと、ペイロードで構成する)及び、その流れを説明した図である。
図17(a)が、標準のUDP、図17(b)が本発明のTCP2のUDPsecによる通信のシーケンス図である。
図17(a)の標準のUDPは、ホストA、ホストBともにアプリケーションがUDPオープンしている。そして、ホストBのアプリケーションがUDPオープンをすると、UDPオープン処理(図15のステップS124及び図18参照)を開始する。また、ホストAのアプリケーションがUDPオープンした場合も、同様にUDPオープン処理を開始する。これにより、UDPのデータ通信を行うことができる状態となる。
また、データはホストA、ホストBの何れも発生することはできるが、図17(a)では、ブロードキャスト通信ということもあって、ホストA側からホストB側に一方向的にデータが流れる図としている。データを受信したホストB側からACK(肯定応答)を返さないため、送達確認とデータの保証をする機能は持たない。なお、データをブロードキャストする場合には、IPアドレスのサブネットアドレスをオール1にすることで、データをブロードキャストすることが可能となる。
次に、図17(b)のUDPsecによる暗号化通信について説明する。この場合も、ホストA、ホストBともにアプリケーションがUDPオープンし、TCP2がUDPsecでオープンとしている。
ホストBがUDPsecオープンをすると、UDPsecオープン処理(図15のステップS125及び図19)を開始する。また、ホストAがUDPsecオープンしても同様に、UDPsecオープン処理を開始する。これにより、UDPsecのデータ通信を行うことができる状態となる。
図17(b)示すように、ホストAのアプリケーションからUDPのブロードキャストデータ(IPアドレスがブロードキャストを示しているデータ)の送信要求があった場合を説明する。アプリケーションからUDPのブロードキャストデータの送信要求を受け取ると、ネゴをしないで、UDPsecで暗号データとして不特定ホストに配信する。ホストBは、ブロードキャストデータを受け取ると、後述する図19のステップS141のUDPsecブロードキャスト受信開始処理を開始する。ホストAとホストB間でネゴシエーションを開始し、相手が正しい相手であれば、ネゴシエーションを完了して、ブロードキャストデータを復号化して、アプリケーションへ送る。このとき、データを受信した側からACK(肯定応答)を返さないため、送達確認とデータの保証をする機能はない。
次に、図18に基づいて、図15のステップS124の標準UDPのオープン処理について説明する。
図18は、UDPのオープン処理の流れ図であり、この処理は図15のステップS124で、処理するプロトコルがUDPと決定した場合に開始される処理である。
最初に、アプリケーションからの送信要求、又は受信パケットを待ち、送信要求又はパケットを受信したときに、パケットの解析を行う(ステップS127)。ここで、受信パケットだけでなく送信要求も解析するのは、悪意を持った第三者が送信するホストA踏み台にして、ホストAを加害者として不特定多数に通信することを防ぐためである。この送受信パケットの解析を行った後に、正しいパケットであるかどうか、つまりDoS攻撃におけるUDPプロトコル攻撃パターンでないかどうかを判断する(ステップS128)。この判断ステップS128において、不正パケットであると判定された場合には、パケットを廃棄し(ステップS129)、次のパケットを待つ。
判断ステップS128で正しいパケットであると判定された場合は、UDPデータの送受信処理が行われ(ステップS130)、続いて上位アプリケーションからUDPのクローズ要求があったかどうかが判断される(ステップS131)。上位アプリケーションよりUDPクローズ要求があった場合には、UDPオープン処理を終了する(ステップS132)。
次に、図19に基づいて、図15のステップS125のUDPsecのオープン処理について説明する。図19は、UDPsecのオープンにおける処理の流れ図であり、図15のステップS125に示すように、処理するプロトコルがUDPsecと決定した場合にこの処理が開始される。
最初に、アプリケーションからの送信要求又は受信パケットを待ち、送信要求又は受信したパケットの解析が行われる(ステップS133)。次に、上位アプリケーションからの送信要求あるいは送受信パケットが正しいUDPパケットであるか否か、つまりDoS攻撃におけるTCPプロトコル攻撃パターンでないかどうかを判断する(ステップS134)。判断ステップS134において正しいUDPパケットではないと判断された場合は、パケットを廃棄し(ステップS135)、次のパケットを待つ。
判断ステップS134において、正しいUDPパケットであると判定された場合は、次にUDPsecネゴシエーションがなされた受信パケットであるか否かが判断される(ステップS136)。
そして、この結果、UDPsecのネゴシエーションパケットであると判断された場合は、後述する図23で示すUDPsecユニキャスト受信開始処理が行われ(ステップS137)、ステップS147へ進む。
また、判断ステップS136において、UDPsecのネゴシエーションパケットではないと判断されると、続いてブロードキャスト通信であるか否かを判断する(ステップS138)。そして、ブロードキャスト通信であると判定された場合は、通信の開始パケットであるか、つまりオープン後の最初の通信パケットであるか否かを判断し(ステップS139)、開始パケットでない場合は図22で説明するUDPsecデータ送受信処理を行う(ステップS144)。判断ステップS139において通信の開始パケットであると判定された場合は、次に送信パケットであるか否かが判断される(ステップS140)。そして、この結果、送信パケットであれば、上述したUDPsecデータ送受信処理が行われる(ステップS144)が、送信パケットではないと判定された場合は、後述する図20のUDPsecブロードキャスト受信開始処理が実施される(ステップS141)。この受信開始処理の後で、送信されたパケットが正しい相手からのものであるかどうかを判断する(ステップS142)。そして、判断ステップS142で、送信されたパケットが正しい相手からのものではないと判断されると、パケットを廃棄し(ステップS143)、次のパケットを待つ。判断ステップS142で、正しい相手であると判定された場合には、図22で示すUDPsecデータ送受信処理が行われる(ステップS144)。
また、判断ステップS138において、ブロードキャスト通信でない、すなわちユニキャスト通信であると判定された場合は、通信の開始パケット、すなわちオープン後の最初の通信パケットであるか否かが判断される(ステップS145)。この結果、開始パケットではないと判断された場合には、図22で詳述するUDPsecデータ送受信処理がなされる(ステップS144)。
また、判断ステップS145で、オープン後の最初の通信パケットであると判断された場合は、図21で後述するUDPsecユニキャスト送信開始処理が行われる(ステップS146)。その後、通信の相手が、正しい相手であるかを判断し(ステップS147)、正しい相手である場合には、引き続きUDPsecデータ送受信処理がなされ(ステップS144)、正しい相手ではないと判定された場合には、受信したパケットを廃棄し(ステップS148)、ステップS133に戻って次のパケットを待つ。
次に、図19のステップS141のUDPsecブロードキャスト受信の開始における処理について、図20に示す流れ図に基づいて説明する。
最初に、ブロードキャストを配信してきた相手の情報を自コンピュータが保有しているか否かを判断する(ステップS149)。そして、情報を保有していない場合には、本システムをインストールする際に使用した、インストールサーバから相手情報を取得する(ステップS150)。または、第三者認証のサーバから情報を取得する。この取得する情報は、相手のTCP2のID、ユーザID、パスワード、バイオメトリックス情報、機器固有情報、LAN接続機器情報等の内、1つ、若しくは、複数を使用する。次に、ブロードキャストを配信してきた相手が正しい相手であるかどうかを判断する(ステップS151)。そして、正しい相手であると判断されれば、UDPsecでの受信が可能であることになり、UDPsecブロードキャストの通信開始処理を終了し(ステップS153)、受信可能であることを図19のステップS142へ指示する。判断ステップS151で正しい相手ではないとされた場合には、通信の拒否を行い(ステップS152)、データを取得しない旨を同じく図19のステップS142へ指示する。なお、ステップS149で仮に相手方に関する取得情報があったとしても有効期限、若しくは、有効使用回数を超えている場合には、改めてステップS150で相手情報の取得動作を行ったほうがよい。
次に、図19のステップS146のUDPsecユニキャスト送信開始処理について、図21に示す流れ図に基づいて説明する。
最初に、送信する相手の情報を自コンピュータが保有しているか否かを確認する(ステップS154)。そして、情報を保有していない場合には、図20のステップS150と同様な方法で相手情報を取得する(ステップS155)。この取得する情報も図20の場合と同じである。
次に、送信する相手が正しい相手であるかどうかを判断する(ステップS156)。そして、正しい相手であると判断されれば、UDPsecでの送信が可能であることになり、UDPsecユニキャストの通信開始処理を終了し(ステップS158)、送信可能であることを図19のステップS147へ指示する。判断ステップS156で正しい相手ではないとされた場合には、通信の拒否を行い(ステップS157)、データを取得しない旨を図19のステップS147へ指示する。
次に、図22に基づいて、図19のステップS144に示すUDPsecデータの送受信処理について説明する。
最初に、ホストAのアプリケーションから送信要求があったか否かを判断する(ステップS159)。送信要求があれば送信側ホストAにおいてデータを暗号化し(ステップS160)、この暗号化したデータに認証データが付加されて(ステップS161)、受信側ホストBに暗号化され認証データが付加されたパケットが送信される(ステップS162)。
次に、受信側ホストBで、受信データがあるか否かが判断され(ステップS163)、受信データがある場合には、受信データの復号化が行われる(ステップS164)。次に、この受信され復号化されたデータが正しいデータであるかどうかが判断される(ステップS165)。この判断は、復号化したデータと受信された認証データとを確認することによって行われるが、復号データを確認した結果、正しいデータでないと判定された場合には、UDP/UDPsecを強制的に切断する(ステップS166)。判断ステップS165で、復号化したデータが正しいデータであると判定された場合には、受信データの取り込み、すなわち上位プロトコルスタックへのデータの配達が行われ(ステップS167)、UDPsecのデータ送受信処理が完了する(ステップS168)。
次に、図23の流れ図に基づいて、図19のステップS137に示すUDPsecユニキャスト受信の開始処理について説明する。
最初に、ユニキャストで受信したパケットの相手情報を自コンピュータが保有しているか否かを判断する(ステップS169)。相手情報を持っていない場合には、本システムをインストールする際に使用した、インストールサーバあるいは第三者認証のサーバから相手情報を取得する(ステップS170)。取得する情報としては、図20のステップS150あるいは図21のステップS155と同じであり、相手のTCP2のID、ユーザID、パスワード、バイオメトリックス情報、機器固有情報、LAN接続機器情報等の内、1つ、若しくは、複数がこれに相当する。
次に、ユニキャストを送信してきた相手が正しい相手であるか否かを判断する(ステップS171)。正しい相手であると判定されれば、UDPsecでの受信が可能であることを図19のステップS147へ伝えてUDPsecブロードキャスト通信開始処理を終了する(ステップS173)。判断ステップS171で正しい相手ではないと判断された場合には、データを取得しない旨を図19のステップS147へ伝え、通信を拒否する(ステップS172)。
以上、本発明の第1の実施形態であるTCPsecを用いた暗号化処理及び本発明の第2の実施形態であるUDPsecを用いた暗号化処理について流れ図及びシーケンス図に基づいて詳しく説明した。
次に、本発明のTCP2が、従来のIPsecあるいはSSLと比べて如何に優位であるかという点について、表2及び図24に基づいて説明する。
表2は、表1のIPsecとSSLの機能比較表にTCP2の機能を追加して示したものである。
この表2から明らかなように、IPsec及びSSLが持っている様々な問題点(これらについては背景技術において示した)を、TCP2を採用することによりことごとく解決していることが分かる。
Figure 2005015827
例えば、SSLでは対応が困難であった、クライアント−クライアント間の通信、TCP/IPプロトコルへのDoS攻撃、全てのUDPポートあるいはTCPポートのセキュアな通信、ソケットプログラムを変更しなければならなかったアプリケーションでの制限などに、TCP2は完全に対応している。
また、IPsecでは対応が困難であった、エラーが多発する劣悪な環境下での通信、異なったLAN間での通信、複数キャリア経由の接続、PPPモバイル環境、ADSL環境での通信に対しても、TCP2は完全にサポートしている。
さらに、モバイル環境下やADSL環境下でVoIP(Voice over Internet Protocol)を使ったインターネットに対しては、IPsec及びSSLとも表1及び表2に示すように問題があるが、本発明のTCP2によれば、どちらの環境下でも対応可能である。
また、異なったLAN間や複数キャリアにまたがったLAN間でVoIPを使ったインターネット電話に対しても、IPsecとSSLでは対応不可能であったが、本発明のTCP2によれば完全に対応することができる。
図24は、TCP2の優位性を説明するための図であるが、セキュリティのないプロトコルスタック(a)に、従来のSSLを適用したケース(b)と、IPsecを適用したケース(c)と、本発明のTCP2(TCPsec/UDPsec)を適用したケース(d)を比較して示している。図24(b)のSSLは既に述べたように、セッション層(第5層)のソケットに設けられているので、上位のアプリケーションに対する互換性がないのである。このため、SSL自体、上述のような問題を抱えることになっている。また図24(c)のIPsecは、ネットワーク層(第3層)にあり、IP層での互換性がないため、ネットワークを構成する上で上述したような様々な制約を受けることになる。これに対して、図24(d)のTCP2(TCPsec/UDPsec)は、トランスポート層(第4層)に導入する暗号化技術であり、このためアプリケーションから見るとソケットをそのまま利用することができ、またネットワークから見るとIPもそのまま利用できるのでネットワークを構成する上での制約は受けない。
以上のように、本発明のTCP2を用いた暗号化通信システム、暗号化通信方法は、既存の暗号化処理システムに比べても、特にデータの漏洩、改ざん、なりすまし、進入そして攻撃に対して極めて高いセキュリティ機能を有するものである。
なお、本発明は、以上説明した実施の形態に限定されるものではなく、特許請求の範囲に記載した本発明の要旨を逸脱しない範囲において、さらに多くの実施形態を含むものであることは言うまでもない。
【0006】
P(Point to Point Protocol)回線へのルーティング、また、光ファイバを使った専用線へのルーティングなど、物理的なネットワーク媒体によらずにパケットをルーティングすることができる。この目的のため、通常は、物理媒体に依存しないアドレス(TCP/IPならば、IPアドレス)を各ノードに割り当て、これに基づいてルーティングを行っている。IPsecは、このネットワーク層で、つまりIPレベルでホストから送信されるあらゆる通信を暗号化するので、ユーザはアプリケーションを意識することなく安全な通信を可能とすることができるのである。
第4層のトランスポート層は、各ノード上で実行されている2つのプロセス間で、エラーのない、仮想的な通信路を実現するためのプロトコル層である。TCP/IPでいえばTCP層に相当する。ネットワーク層では、2つのノード間での通信を行う機能を提供しているが、これを使って、2つのプロセス(アプリケーション)間で、エラーのない、仮想的な通信路を提供するのがこの層の役目である。すなわち、ネットワーク層ではデータを送ることはできるが、そのデータが確実に相手に届くという保証はない。また、送信した順に正しくデータが届くという保証もない。そこで、アプリケーションにとって使いやすくするために、エラーのない通信路を提供するのがこの層である。必要ならばデータの再送・回復処理などを行う。
このトランスポート層にはTCPの他にUDPも配置されるが、このUDPとTCPの違いは、TCPがデータの補償がされているプロトコルである分、低速であるのに対して、UDPはデータ補償がない分、高速になっている点である。コンピュータ間の通信のように主としてデータを送る場合にはTCPが用いられ、IP電話のように音声や画像を送る場合にはUDPが多く用いられる。この第4層のトランスポート層に位置するTCP又はUDPプロトコルに暗号化処理を施した例は、
【0016】
プログラムを提供することを目的とする。
上記課題を解決し、本発明の目的を達成するため、本発明の通信システムは、トランスポート層に位置するTCP又はUDPに該当するプロトコルに暗号化機能を追加して通信を行う通信システムであって、通信相手が正当な権限を有する通信相手であるかどうかを判断した後に通信相手との接続を行うための接続シーケンス手段と、通信路の両端で対応する暗号化及び復号化ロジックを取り決める取決め手段と、送受信する情報単位としてのパケットのうち、少なくとも前記TCP又はUDPに該当するプロトコルのペイロードを前記取決め手段により取り決めた暗号化ロジックに従って暗号化して送信するプロトコル暗号化手段と、受信した該暗号化されたプロトコルを前記取決め手段により取り決めた復号化ロジックに従って復号化するプロトコル復号化手段と、を備え、上記接続シーケンス手段が正当な権限を有すると判断して接続した通信相手とのみ上記取決め手段がトランスポート層のTCP又はUDPプロトコルに暗号化及び復号化ロジックを適用して暗号化通信を行うものである。
これにより、従来は存在しなかったTCP又はUDPレベル独自の暗号化が可能となり、IPより上の層におけるデータ漏洩や改竄の可能性が激減することになる。つまり、IPレベルの暗号化であるIPsecが解除された後のデータも、TCP又はUDPレベルの独自の暗号化がなされていることとなり、二重の暗号化という意味で暗号の強度が増すとともに、IPが正当に復号化された直後のデータに対する傍受などインターフェースを狙ったデータ漏洩に対する有効な防御となる。
また、IPが暗号化されない場合にもTCPやUDPだけを暗号化することによりセキュリティを独自に強化することができる。
さらに、UDPのブロードキャスト機能をパフォーマンス等の 観点からIPsecと切り離して独自に働かせる場合があるが、この場合も本発明のTCP又はUDPレベルの暗号化が有効である。
なお、暗号化及び復号化ロジックの取決めは、通信路の両端で
【0017】
対応する暗号化及び復号化ロジックの事前に取り決めることが好ましい。ここで、通信路とは有線、無線を問わない。衛星を介して通信する方法も含むことは言うまでもない。また、本発明の暗号化及び復号化ロジックの取決めには、フロッピーディス、CD(Compact Disk)、USBメモリあるいはICチップ等のリムーバブルメディア(媒体)に暗号化及び復号化ロジックを記憶させて、これらの媒体を送信側と受信側で交換して暗号化及び復号化ロジックの取決めを行うことも含むものである。
また、本発明では、より上位の層、典型的にはHTTP等のアプリケーション層への「進入」や「攻撃」等の不正通信パターンの認識を、より下位の層(トランスポート層)で行うことができる。例えば、本発明の通信システムで用いられるプロトコル暗号化手段若しくはプロトコル復号化手段と、従来のクラッキング・プロテクタのような機能モジュール(一般的なクラッキングパターンの検出、破棄ないし通過制限手段)との組み合わせが、上位層であるアプリケーション層より下位層であるトランスポート層のTCP、UDP、さらにその下の層であるネットワーク層に該当するIP、ARP、ICMP、IGMP等のいずれかで実現する。これらのプロトコルスタックは、単一のプロトコルスタックとして「ソフトウエアないしハードウエアモジュール」によって実現することができる。
これにより、上述の効果の他に、データの「漏洩」「改竄」さらには「なりすまし」や「進入」「攻撃」を防ぐ機能についてプロトコルスタック間に重複や隙間がなく費用対効果の大きい通信システムを実現することができる。
また、本発明の通信システムでは、トランスポート層に位置するTCP又はUDPプロトコルに暗号化機能を追加して通信を行う通信システムに用いられる暗号化及び復号化ロジックを取り決める取決め手段と、通信相手が正当な権限を有する通信相手であるかどうかを判断した後に該通信相手との接続を行うための接続シーケンス手段とを備える第1及び第2の通信装置と、暗号化及び復号化ロジックの取決め手段を備えない第3の通信装置
【0018】
を含み、上記暗号化及び復号化ロジックの取決め手段を備える通信装置(第1の通信装置と第2の通信装置)は、TCP又はUDPの暗号化及び復号化プロトコル処理手段のほかに、暗号化及び復号化を伴わない通常のTCP又はUDPを処理する通常プロトコル処理手段をも備え、これら暗号化及び復号化ロジック取決め手段を有する通信装置同士で通信するときには、暗号化及び復号化プロトコル処理手段を用いて通信を行い、上記暗号化及び復号化ロジックの取決め手段を備える通信装置(第1及び第2の通信装置)と暗号化及び復号化ロジックの取決め手段を備えない第3の通信装置と通信する場合には、上記接続シーケンス手段の判断情報に基づいて暗号化及び復号化取決め手段により、この通信において暗号化及び復号化を行わないことを決定し、通常のTCP又はUDPプロトコル処理手段により通信を行うことができるようにしている。
これにより、本発明による暗号通信に対応していない通信装置との間でも従来どおりの通信を確保することができることになる。
さらに、本発明の通信システムにおいては、暗号化及び復号化ロジックを取り決める取決め手段を備える通信装置(第1又は第2の通信装置)から暗号化及び復号化ロジックを取り決める取決め手段を備えない通信装置(第3の通信装置)に通信する場合に、第1及び第2の通信装置が、暗号化及び復号化ロジック取決め手段により、第3の通信装置との通信を行わないことを決定し、該第3の通信装置との通信を行わないようにすることもできる。
これにより、通信相手の制限及び各セキュリティレベルについて徹底したセキュリティポリシーを採用することができる。
本発明ではまた、暗号化及び復号化ロジック取決め手段による取決めの候補となりうる暗号化及び復号化ロジックをメモリないし回路に記憶しており、該記憶する内容を定期的に変更するロジック変更手段をさらに備えることができる。
これにより、プロトコルスタック自体を再作成したり入れ替え
【0019】
たりする必要なく、新しい暗号化アルゴリズムに対応したり、暗号鍵を変更することにより解読リスクを削減することができる。
さらに、本発明では、暗号化及び復号化ロジック取決め手段が、暗号化・復号化ロジックについて暗号化をしないで平文を取り扱う旨を取り決めることも可能である。
これにより、通信相手、例えばクライアント側のプロトコルスタック等が本発明による暗号化などに対応していない場合でも、従来どおり通信することができる。
なお、このような場合でも、「なりすまし」や「進入」「攻撃」を防ぐいわゆるクラッキング・プロテクタ(CP)機能については生かすことができる。
本発明は、また、TCP又はUDPに該当するプロトコルに認証機能を追加して通信する通信システムであって、通信相手が正当な権限を有する通信相手であるかどうかを判断した後に通信相手との接続を行うための接続シーケンス手段と、通信路の両端で対応する完全性認証ロジックを取り決める完全性認証取決め手段と、送受信する情報単位としてのパケットのうち、少なくとも前記TCP又はUDPに該当するプロトコルのペイロードを前記完全性認証取決め手段により取り決めた完全性認証ロジックに従って完全性認証情報を付加して出力又は送信するプロトコル完全性認証情報付加手段と、受信した該完全性認証情報付加されたプロトコルを前記完全性認証取決め手段により取り決めた完全性認証ロジックに従って完全性認証するプロトコル完全性認証手段と、を備えた通信システムを提供するものである。
また、本発明は、トランスポート層に位置するTCP又はUDPを用いて通信相手が正当な権限を有する通信相手であるかどうかを判断した後に通信相手との接続を行うための接続シーケンス手段と、このTCP又はUDPを用いて完全性認証の取決めを行う完全性認証取決め手段を備える第1及び第2の通信装置と、完全性認証取決め手段を備えない第3の通信装置とがそれぞれネットワークに接続されており、第1及び第2の通信装置は、完全性認証情報を付加してTCP又はUDPを処理する完全性認証プロトコル処理手段と、完全性認証情報の
【0020】
付加を行わない通常のTCP又はUDPを処理する通常プロトコル処理手段の両方を備え、第3の通信装置は、完全性認証を伴わない通常のプロトコル処理手段のみを備えており、完全性認証取決め手段を有する通信装置同士(第1の通信装置と第2の通信装置)で通信するときは、この完全性認証取決め手段により、完全性認証情報を付加した完全性認証プロトコル手段により通信するとともに、完全性認証取決め手段を有する通信装置、例えば第1の通信装置が完全性認証取決め手段を備えない通信装置(第3の通信装置)と通信するときには、前記完全性認証情報を付加しないことを決定し、前記通常プロトコル処理手段により通信を行うようにしている。
また、この場合、完全性認証取決め手段を備えた通信装置(第1又は第2の通信装置)が、完全性認証取決め手段を備えない通信装置(第3の通信装置)と通信するときは、完全性認証取決め手段により通信を行わないことを決定し、通信をしないようにすることもできる。
また、本発明では、完全性認証取決め手段による取決め候補となりうる完全性認証ロジックをメモリに記憶ないし回路に実装しており、該記憶する完全性認証ロジック定期的に変更する完全性認証ロジック変更手段をさらに備えることができる。
さらに、本発明では、完全性認証取決め手段が、完全性認証情報付加及び完全性認証をしない旨を取り決めることも可能である。
なお、かかる場合でも、「なりすまし」や「進入」「攻撃」を防ぐクラッキング・プロテクタ(CP)機能については生かすことができる。
また、本発明は、トランスポート層のTCP又はUDPに該当するプロトコルに暗号化機能を追加して通信する通信方法を提供する。この通信方法は、TCP又はUDPプロトコルを用いて通信相手が正当な権限を有する通信相手であるかどうかを判断した後に通信相手との接続を行う接続ステップと、通信路の両端で対応する暗号化・復号化ロジックを
【0021】
事前に取り決める取決めステップと、送受信する情報単位となるパケットのうち、少なくともTCP又はUDPのペイロードに該当するプロトコルを取り決めた暗号化ロジックに従って暗号化して送信するプロトコル暗号化ステップと、受信した暗号化されたプロトコルを取り決めた復号化ロジックに従って復号化するプロトコル復号化ステップと、を含み、接続ステップにおいて通信相手が正当な権限を有すると判断した場合に、トランスポート層のTCP又はUDPに該当するプロトコルに暗号化処理を施して通信するものである。
また、本発明の通信方法では、トランスポート層のTCP又はUDPに該当するプロトコルに暗号化機能を追加して通信する通信方法に用いられる暗号化及び復号化ロジックを取り決める取決め手段を備える第1及び第2の通信装置と、暗号化及び復号化ロジックを取り決める取決め手段を備えない第3の通信装置とがそれぞれネットワークに接続されている場合の通信方法を提供する。すなわち、暗号化及び復号化ロジックを取り決める取決め手段を備える通信装置(第1及び第2の通信装置)同士で通信するときには、TCP又はUDPに該当するプロトコルのペイロードを前記取決め手段により取り決めた暗号化ロジックに従って暗号化して通信するとともに、暗号化及び復号化ロジック取決め手段を備えた通信装置(第1又は第2の通信装置)が暗号化及び復号化ロジック取決め手段を持たない通信装置(第3の通信装置)と通信するときは、TCP又はUDPプロトコルのペイロードを取決め手段により取り決めた暗号化ロジックに従って暗号化して送信しないことを決定し、暗号化ロジックを伴わない通常のTCP又はUDPプロトコルで通信するようにしている。
また、第1又は第2の通信装置と第3の通信装置との通信では、第1又は第2の通信装置が、第3の通信装置が暗号化及び復号化取決め手段を備えていないことを理由に通信を行わないことを決
【0022】
定し、前記第3の通信装置との通信を行わないようにすることもできる。
また、上記の暗号化及び復号化ロジックの取決めにおいて取決め候補となりうる暗号化・復号化ロジックをメモリないし回路に記憶しておき、該記憶する暗号化・復号化ロジックの内容を定期的に変更することも可能である。
さらに、この取決めステップにおいて、暗号化・復号化ロジックについて暗号化をしないで平文を取り扱う旨を取り決めることもできる。また、本発明による通信方法ではまた、取決めステップより前に、通信相手を認証するステップをさらに含むことができる。
また、本発明は、トランスポート層にあるTCP又はUDPに該当するプロトコルに認証機能を追加して通信する通信方法であって、TCP又はUDPプロトコルを用いて通信相手が正当な権限を有する通信相手であるかどうかを判断した後に通信相手との接続を行う接続ステップと、通信路の両端で対応する完全性認証ロジックを事前に取り決める完全性認証取決めステップと、送受信する情報単位のパケットのうち、少なくともTCP又はUDPのペイロードに該当するプロトコルを完全性認証取決めステップにより取り決めた完全性認証ロジックに従って完全性認証情報を付加して送信するプロトコル完全性認証情報付加ステップと、受信した該完全性認証情報付加されたプロトコルを完全性認証取決めステップにより取り決めた完全性認証ロジックに従って完全性認証するプロトコル完全性認証ステップと、を含み、接続ステップにおいて通信相手が正当な権限を有すると判断した場合に、トランスポート層にある前記TCP又はUDPプロトコルに完全性認証情報を付加して通信する通信方法を提供する。
そして、さらに本発明は、トランスポート層のTCP又はUDPを用いて通信相手が正当な権限を有する通信相手であるかどうかを判断した後に通信相手との接続を行うための接続シーケンス手段と、このTCP又はUDPを用いて完全性認証の取決めを行う完全性認証取決め手段を備える通信装置(第1及び第2の通信装置)間、若しくは前記完全性認証取決め手段を備える通信装置と前記完全性認証取決め手段
【0023】
を備えない第3の通信装置との間でネットワークを介して通信する通信方法を提供する。この通信方法は、完全性認証プロトコルを搭載した通信装置(例えば、第1の通信装置)が、同じく完全性認証プロトコルを搭載した通信装置(第2の通信装置)と通信するときは、接続シーケンス手段の判断情報に基づいて完全性認証取決め手段により、完全性認証情報を付加したTCP又はUDPを処理する完全性認証プロトコル処理を行って送信し、完全性認証プロトコルを搭載した第1又は第2の通信装置が、前記完全性認証プロトコルを搭載しない第3の通信装置と通信するときは、接続シーケンス手段の判断情報に基づいて完全性認証取決め手段により、完全性認証情報を付加しないことを決定し、通常のTCP又はUDPを処理する通常プロトコル処理を行って通信を行うようにしている。
なお、第1又は第2の通信装置が、完全性認証取決め手段を持たない第3の通信装置と通信する際に、第1又は第2の通信装置が、前記第3の通信装置が完全性認証取決め手段を持たないことを理由に、通信を行わないようにすることもできる。
また、本発明では、完全性認証取決めステップにおいて取決めの候補となりうる完全性認証情報を付加するための完全性認証ロジックをメモリに記憶ないし回路に実装するステップと、該記憶ないし実装する内容を定期的に変更する完全性認証ロジック変更ステップをさらに備えることができる。また、完全性認証取決めステップより前に、通信相手を認証するステップをさらに含むこともできる。
【図面の簡単な説明】
図1は、本発明の通信システムに用いられるTCP2のプロトコルスタックを示す図である。
図2は、本発明のTCP2を用いた通信システムの第1の実施形態(TCPsecによるECアプリケーション)におけるシス
本発明は、通信におけるセキュリティシステム、特に、インターネット上でのデータの「漏洩」及び「改竄」さらには「なりすまし」、「進入」ないし「攻撃」を防ぐための通信システム、特に、通信システムを実現するプロトコルスタックと、通信装置、通信方法、及びそれを実現するためのコンピュータプログラムに関する。
近年、インターネットを利用した通信は、Windows(登録商標)パソコンさえあれば、それをネットワークに接続するだけで、誰でもネットワーク上のコンピュータにアクセスできるため、社会の中で急速に普及拡大している。一方、このインターネット通信の普及拡大に伴って、ハッカー(Hacker)やクラッカー(Cracker)が他人のコンピュータシステムに侵入して、ソフトウエアやデータを盗み見たり、改竄や破壊を行ったりするという社会問題も大きくなっている。
具体的な不正妨害のケースとしては、まず第1に、中心的なシステムが使えなくなるように、ネットワークから大量のメッセージを送りつけコンピュータシステムの運用を妨害するシステム妨害がある。この妨害によってホストが過負荷になるとシステムダウンに陥ってしまうことも起こりうる。
また、ホストのパスワードを入手し、機密情報を盗んだり、情報の改竄や破壊を行ったりする「不正アクセスとなりすまし」の不正妨害がある。この妨害にはコンピュータが保有する情報を勝手に書き換え、人を陥れる卑劣のものもある。また、特定のパソコンに忍び込み、メールアドレスやパスワードなど個人の機密データを搾取するスパイウエアといわれる不正行為も発生している。このようにネットワークに接続したコンピュータが持つデータベースの内容を不正に盗み見る、いわゆる盗聴行為も頻繁に行われている可能性も否定できない。
また、サイト若しくはサーバの運営元で、意図的に個人情報を盗むといった行為や、社内に潜むスパイなどによるサイバーテロ(Cyber terrorism)といった危機も全くないとはいえない状況である。
さらに、他人のコンピュータにコンピュータ障害をもたらすプログラムである「ウイルス」を送り込むという不正妨害が最近多くなっている。この送り込まれたウイルスに、メールなどを自宅で使用したパソコンが感染し、それを社内に接続した瞬間に社内のパソコン全体が感染したり、ウイルスがコンピュータの中のファイルを破壊させたり、更には、ネットワーク全体をダウンさせたりするといった問題も生じている。
このため、従来のTCP/IP(Transmission Control Protocol/Internet Protocol)やUDP(User Datagram Protocol)を利用したインターネット上での通信において、データの「漏洩」「改竄」等を防ぐ機能として、IPsec(アイピーセック:Security Architecture for Internet Protocol)やSSL(Secure Socket Layer)といわれる暗号化通信が利用されている。一般に、暗号化通信には、共通鍵(秘密鍵ともいう)暗号方式と公開鍵暗号方式があるが、IPsecは共通鍵暗号方式を用いたものが多い。共通鍵暗号方式の方が公開鍵暗号方式より暗号化・復号化の速度が速いという特徴がある。このIPsecに用いられる共通鍵暗号方式は、暗号化と復号化を同じ鍵で行う方式であり、鍵の生成は送信側又は受信側のいずれで生成してもよいが、受信側と送信側とで共通鍵を使うために、鍵の交換時に内容が外部に漏れないよう細心の注意を払わなければならない。
共通鍵暗号方式に用いられるアルゴリズムはDES(Data Encryption Standard:米国IBM社が開発した共通鍵(秘密鍵)暗号化アルゴリズム)が代表的である。IPsecもこのDESを暗号アルゴリズムの1つに採用している。IPsecは、IETF(Internet Engineer Task Force)が標準化を進めたものであり、この特徴は、単に特定のアプリケーションだけを暗号化するのではなく、ホストから送信されるあらゆる通信をIPレベルで暗号化する点にある。これによりユーザはアプリケーションを意識することなく安全な通信を可能とすることができる。また、IPsecは、将来にわたって使えるように、それ自体の仕組みを変えることなく使用する暗号アルゴリズムを変更することを可能としている。
IPsecで用いられる共通暗号鍵としては、SPI(Security Pointer Index)と呼ばれる32ビット符合が用いられ、鍵交換プロトコルとしては、IKE(Internet Key Exchange)が用いられる。さらに、IPsecには、完全性認証のためのプロトコルAH(Authentication Header)が用意されている。
また、SSLは、米ネットスケープ社(現在AOLに吸収合併)の開発したセキュリティ機能付HTTPプロトコルであり、これを利用することによりクライアントとサーバがネットワーク上でお互いを認証できるようになり、クレジットカード情報などの機密性の高い情報を暗号化してやり取りすることが可能となる。これにより、データの盗聴、再送攻撃(ネットワーク上に流れたデータを盗聴して何度も繰り返して送ってくる攻撃)、なりすまし(本人の振りをして通信する)、データの改竄などを防止することができる。
図25は従来のIPsecを用いた暗号化通信を行う場合のプロトコルスタックの例を示し、図26は従来のSSLを用いた暗号化通信を行う場合のプロトコルスタックの例を示している。
OSI参照モデルは、最下層(第1層)が物理層、第2層がデータリンク層、第3層がネットワーク層、第4層がトランスポート層、第5層がセッション層、第6層がプレゼンテーション層、最上層(第7層)がアプリケーション層になっている。このOSI参照モデルにおける7階層は、通信機能を7段階に分けたものであり、その階層毎に標準的な機能モジュールを定めている。図25では、第5層のセッション層までが示されている。
プロトコルスタックとは、ネットワークの各階層における機能を実現するためのプロトコルを選び、階層状に積み上げたソフトウエア群である。
まず、OSI参照モデルについて概略を説明すると、第1層の物理層は、信号線の物理的な電気特性や符号の変調方法などを規定した層である。ただ、この層だけが単独で定義・実装されることは少なく、通常は、第2層のデータリンク層と共に、たとえばイーサネット(登録商標)の規格、などとして定義される。
第2層のデータリンク層は、データのパケット化や物理的なノードアドレス、パケットの送受信方法などを規定する層である。この層は、物理的な通信媒体を通して、2つのノード間でパケットをやり取りするためのプロトコルを規定するものであり、各ノードに対して、何らかのアドレスを付け、そのアドレスに基づいてパケットの送信先を特定し、パケットを通信媒体上に送信する。通信媒体としては、銅配線や無線、光ファイバなど、多様なものがある。また、接続形態(トポロジー)も、1対1の対向接続だけでなく、バス型やスター型、リング型など多くの種類がある。通信媒体上に送信されたパケットは、受信側ノードに到着した時点でそのノードに取り込まれ、さらに上位のプロトコル層へと渡される。
物理層とデータリンク層に渡って配置されるNIC(Network Interface Card) Driverは、パソコンやプリンタなどを構内ネットワーク(LAN)につなぐための拡張ボードである。単にネットワークカードという場合はイーサネット(登録商標)につなぐ場合が多い。
このNIC Driverにより、データを送信したいノード(機器)がケーブルの空き状況を監視して、ケーブルが空くと送信を開始するようにしている。このとき、もし複数のノードが同時に送信を開始するとケーブル内でデータが衝突して破壊されるので、両者は送信を中止し、ランダムな時間を待って送信を再開するのである。これによって一本のケーブルを複数のノードが共有して互いに通信することができる。
第3層のネットワーク層は、任意の2つのノード間での通信方法を規定する層である。TCP/IPでいえばIP層に相当する。データリンク層では、同一ネットワーク媒体上のノード間での通信を行うことができるが、その機能を使って、ネットワーク上に存在する任意の2つのノード間で、ルーティング(Routing)を行いながら通信するのがこのネットワーク層の役目である。ここで、ルーティングとはTCP/IPネットワークにおいて目的のホストまでパケットを送信するときに、最適な経路を選択して送信することをいう。例えば、イーサネット(登録商標)では、同一セグメント上のノード同士でしかお互いに通信できないが、ネットワーク層では、2つのイーサネット(登録商標)セグメント間でパケットをルーティングすることによって通信を行う。また、電話回線を通じてコンピュータをネットワーク(イーサネット(登録商標))に接続するダイヤルアップPPP(Point to Point Protocol)回線へのルーティング、また、光ファイバを使った専用線へのルーティングなど、物理的なネットワーク媒体によらずにパケットをルーティングすることができる。この目的のため、通常は、物理媒体に依存しないアドレス(TCP/IPならば、IPアドレス)を各ノードに割り当て、これに基づいてルーティングを行っている。IPsecは、このネットワーク層で、つまりIPレベルでホストから送信されるあらゆる通信を暗号化するので、ユーザはアプリケーションを意識することなく安全な通信を可能とすることができるのである。
第4層のトランスポート層は、各ノード上で実行されている2つのプロセス間で、エラーのない、仮想的な通信路を実現するためのプロトコル層である。TCP/IPでいえばTCP層に相当する。ネットワーク層では、2つのノード間での通信を行う機能を提供しているが、これを使って、2つのプロセス(アプリケーション)間で、エラーのない、仮想的な通信路を提供するのがこの層の役目である。すなわち、ネットワーク層ではデータを送ることはできるが、そのデータが確実に相手に届くという保証はない。また、送信した順に正しくデータが届くという保証もない。そこで、アプリケーションにとって使いやすくするために、エラーのない通信路を提供するのがこの層である。必要ならばデータの再送・回復処理などを行う。
このトランスポート層にはTCPの他にUDPも配置されるが、このUDPとTCPの違いは、TCPがデータの補償がされているプロトコルである分、低速であるのに対して、UDPはデータ補償がない分、高速になっている点である。コンピュータ間の通信のように主としてデータを送る場合にはTCPが用いられ、IP電話のように音声や画像を送る場合にはUDPが多く用いられる。この第3層のトランスポート層に暗号化処理を施した例は、今まで存在していない。
第5層のセッション層は、セッション(通信の開始から終了まで)の手順を規定する層であり、アプリケーション間でコネクションを開設して通信ができる状態にする層である。この層に配置されるソケット(Socket)は、コンピュータが持つネットワーク内の住所に当たるIPアドレスと、IPアドレスのサブアドレスであるポート番号を組み合わせたネットワークアドレスを意味している。コンピュータ同士を接続する場合は、必ずソケット(IPアドレスとポート番号の組)を指定して行う。図26に示すように、従来の代表的な暗号化通信技術であるSSLは、このセッション層で暗号化通信を実現している。
第6層のプレゼンテーション層は、セッション(通信の開始から終了まで)でやり取りするデータの表現方法や符号化、暗号化などを規定する層である。TCP/IPプロトコルでは、この層に相当する部分はなく、通常はアプリケーション自身でストリームデータの処理をハンドリングしている。
また、第7層のアプリケーション層は、アプリケーション間でのデータのやり取りを規定するための層であり、TCP/IPプロトコルではこの層に相当する部分はない。例えば、電子メールのフォーマットや、文書の内部構造など、アプリケーション間で相互にデータをやり取りする場合に必要な、共通のデータ構造などを規定する層である。
図25は、IPsecを搭載した標準プロトコルスタックであるが、まず、物理層(第1層)とデータリンク層(第2層)に、NIC(Network Interface Card) Driverが設けられている。このドライバは、コンピュータなどのハードウエアをネットワークに接続するためのインターフェースカードのドライバであり、その内容はデータ送受信制御ソフトウエアである。例えばイーサネット(登録商標)に接続するためのLANボードまたはLANカードがこれに相当する。第3層のネットワーク層は、一部がトランスポート層(第4層)まで伸びたIPエミュレータ(emulator)が存在している。このトランスポート層まで延びた部分には、トランスポートとしての機能は実装していない。セッション層に、ネットワーク層の機能を提供しているだけある。このIPエミュレータは、IPsecによる暗号化通信を行うプロトコルと、暗号化通信を行わないプロトコルであるIPを用途に応じて切り換えて使う働きをする。また、第3層のネットワーク層にはARP(Address Resolution Protocol)が配置されている。このARPは、IPアドレスからイーサネット(登録商標)の物理アドレスであるMAC(Media Access Control)アドレスを求めるのに使われるプロトコルである。MACは、媒体アクセス制御と呼ばれる、LANなどで利用される伝送制御技術であり、データの送受信単位であるフレームの送受信方法やフレームの形式、誤り訂正などを規定する技術として利用されている。
また、このネットワーク層には、IPのエラーメッセージや制御メッセージを転送するプロトコルであるICMP(Internet Control Message Protocol)と、同一のデータを複数のホストに効率よく配送するための又は配送を受けるために構成されるホストのグループを制御するためのプロトコルであるIGMP(Internet Group Management Protocol)が設けられている。そして、ネットワーク層の上位層のトランスポート層には、TCPとUDPが、そしてその上位層であるセッション層にはソケット(Socket)インターフェースが配列されている。
図26は、暗号化処理プロトコルとしてSSLを具備した標準プロトコルの例であり、ネットワーク層にIPsecを搭載しない代わりにソケット(セッション層)にSSLが搭載されている。この他のプロトコルは図25に示したものと同じである。
従来の代表的な暗号化通信技術の中で、IPsecは、IPのパケットを暗号化して送受信するものであり、したがって、TCPやUDPなどの上位のプロトコルを利用するアプリケーションソフトはIPsecが使われていることを意識する必要がない。
一方、SSLでは、互いの認証レベルではRSA(Rivest Shamir Adleman:公開鍵暗号方式を開発者3人の頭文字)公開鍵暗号技術を用いたデジタル証明書が用いられ、データの暗号化ではDESなどの共通鍵暗号技術が用いられている。このSSLは第5層のセッション層にあるため、特定のアプリケーションに依存することになる。
IPsecは、OSIにおける第4層(トランスポート層)より下位の第3層(ネットワーク層)におけるデータの「漏洩」や「改竄」を防ぐ機能として実現したものである(例えば、R. Atkinson、1995年8月、「Security Architecture for the Internet Protocol」、RFC1825を参照。)。これに対して、SSLは、第5層のセッション層における暗号化技術であり、現在インターネットで広く使われているWWW(World Wide Web)やFTP(File Transfer Protocol)などのデータを暗号化して、プライバシーに係る情報や企業秘密情報などを安全に送受信するためのものである。
表1は、IPsecとSSLの機能を比較して記載したものである。この表から見る限り、IPsecとSSLは互いに相反する利点と欠点があるように思える。
例えば、クライアント−クライアント間の通信では、SSLの場合、そのコマンド体系と通信内容が主従の関係、つまりクライアント/サーバとなってしまうことから、サーバを介することなくクライアント−クライアント間の通信はできなかった。すなわち、端末Aから端末Bに秘密のデータをSSLにより暗号化して送る場合には、必ず間にサーバを介在する必要があった。これに対して、IPsecではこのような制約がないので直接通信が可能となる。
また、PPP(Point to Point Protocol)モバイル環境あるいはADSL(Asymmetric Digital Subscriber Line)環境においては、IPsecは、データの暗号化通信を開始する前に、暗号化方式の決定、鍵の交換、相互認証に使用するプロトコルであるIKE(Internet Key Exchange)プロトコルを使用した通信の中で、接続先相手の認証を行っている。したがって、PPPモバイル環境(リモートクライアント)又は、ADSL環境の場合、IPアドレスが固定できないため、IPsecのゲートウェイ間で、最も使用しているIKEのMainモード、つまり認証の際に通信相手のIPアドレス情報を使用するモードを使用することができない。なお、解決策としては、Aggressiveモードを使用することで、ID情報にIPアドレスを使用しなくてもよく、ID情報に例えばユーザ情報を使用し、既知共有鍵にユーザのパスワードを使用することで相手を特定することができる。但し、Aggressiveモードでは鍵交換情報と同じメッセージの中で接続先相手のIDを送信するため、IDは暗号化されずに平文のまま送信することになる。また、XAUTH(Extended Authentication within IKE)を利用することにより、認証の問題を解決することができるが、ファイアウォールの設定で、リモートクライアントからのアクセスは、IPアドレスが不明であるため、IKE、IPsecを全て許可にする必要があり、セキュリティ上問題が残る。SSLは、この環境下であっても、通信することが可能である。
また、IPsecは、NAT(Network Address Translation)やIPマスカレードに対応することができないという問題がある。これらに対応するためには、例えばUDPのペイロードに載せるといった他の機能と併用しなければならない。NATは、インターネットに接続された企業などが1つのグローバルなIPアドレスを複数のコンピュータで共有する技術であり、組織内でのみ通用するIPアドレス(ローカルアドレス)とインターネット上のアドレス(グローバルアドレス)を相互変換する技術である。NATに対応できないのは、IPヘッダがAH(Authentication Header)の認証範囲に入っているため、このローカルアドレスからグローバルアドレスの相互変換ができなくなり、サブネットの異なるローカルアドレス同士の通信ができなくなるからである。
また、IPマスカレードとは、LAN内のプライベートアドレスを持つ複数のクライアントからインターネットにアクセスすることを可能とするような仕組みであり、これを利用すると、外部(インターネット)からはIPマスカレードが動作している端末しか見えないのでセキュリティ上から見て望ましいといえるものである。IPsecがIPマスカレードに対応できない理由は、IPsecのESP(Encapsulating Security Payload:暗号ペイロード)ヘッダがIPヘッダのすぐ後にあるためである。IPマスカレードを実装している通常のルータは、IPヘッダのすぐ後ろには、TCP/UDPのポート番号があると判断している。したがって、IPマスカレードを実装しているルータを経由すると、このポート番号を変更してしまうため、IPsecは、改竄されたと判断して、ホストの認証ができないという問題が生じる。この問題は、UDPのペイロードに乗せるためのNAT−T(NAT−Traversal)をサポートする製品を利用することで回避することができる。但し、NAT−Tのドラフトバージョンが異なると、NAT−T対応製品同士でも接続することができない。SSLは、この環境下であっても、通信することが可能である。
これに対し、ハッカーやクラッカーといわれるネットワークの不正侵入者によるTCP/IPへのさまざまな攻撃、いわゆるDoS攻撃(Denial of Service:サービスを停止させる攻撃)に対しては、SSLは無力である。TCP/IPプロトコルスタックへのDoS攻撃、例えば、TCP切断攻撃が行われると、TCPセッションが切れてしまいSSLのサービスは停止してしまうのである。IPsecは第3層(IP層)に実装しているため、IP層にセキュリティ機能を持つので、TCP/IP(第4層、第3層)へのDoS攻撃を防ぐことができる。しかし、SSLは、TCP/IP(第4層、第3層)より上の層(第5層)に実装されている暗号化プロトコルであるため、TCP/IPへのDoS攻撃を防ぐことができない。
さらに、物理ノイズが多く通信エラーが多発するような劣悪な通信環境化における通信に対しては、SSLの方がIPsecに比べて効果的である。すなわち、IPsecは、エラーの検出をした場合、再送動作を上位のTCPに任せることになる。TCPは、再送データをIPsecに送るが、IPsecはこの再送データであることが認識できず、再暗号を行ってしまうのである。SSLはTCPでエラー回復処理を行うので同じデータを再暗号化することはない。
また、IPsecでは異なったLAN間の通信ができない。すなわち、LAN内のサブネットアドレスの配布管理は、LAN内にあるDHCP(Dynamic Host Configuration Protocol)サーバが管理しているため、LAN内では、同一のサブネットアドレスが割り振られることはないが、異なったLAN間の通信の場合、お互いのLAN内にあるDHCPサーバが個別にサブネットアドレスを割り振っているため、同一アドレスが割り振られる可能性がある。このように同一アドレスが割り振られた場合には、IPsecでは通信することができない。但し、別にIPsec−DHCPサーバを立てて、同一アドレスにならないように管理すれば、通信することができる。SSLは上述したようにOSI参照モデルの第5層(セッション層)に位置しているため、下位層のTCPでエラー回復処理を行うことができ、上記のような劣悪な環境下でも通信することが可能となる。
また、異なったネットワーク環境下における通信に対しては、IPsecは、経由するノード全てを管理し、IPsecが通過できるように設定変更しなければならないため、管理が大変であるが、SSLは、この環境下であっても、経由するノードの環境を意識せず通信することが可能である。
さらに、IPsecは複数のキャリア経由の接続ができないという問題がある。つまり、IPsecは、経由するノード全てを管理し、IPsecが通過できるように設定変更しなければならならないため、複数のキャリア経由の接続ができない。例えば、東京と大阪で、別々のキャリアと契約している場合に、接続できないため、別途、高額な専用線を引いているケースもある。SSLは、この環境下であっても、通信することが可能となる。
また、SSLは、UDPの通信をサポートしていないため、UDPを暗号通信することができない。TCPも特定のポートしかサポートしていないため、TCP全てのポートを暗号通信することができない。これに対して、IPsecは、UDPでもTCPでも暗号通信することができる。
さらに、SSLはアプリケーションに対する互換性を持たない点において問題がある。アプリケーションは、インターネット通信を行う際にソケット(第5層)をプログラムインターフェースとして使用する。このため、アプリケーションがSSL(第5層)を使用する場合には、このソケットインターフェースをSSLインターフェースに変更しなければならない。従って、SSLにアプリケーションの互換性はない。これに対し、IPsecは、ソケット(第5層)の下に位置しているため、アプリケーションは、ソケット(第5層)をプログラムインターフェースとしてそのまま使用することができるのでアプリケーションの互換性がある。
また、IPsecは、IPアドレス単位で制御することができるのに対し、SSLは、ソース単位(URL単位、フォルダー単位)で制御することになる。
さらに、IPsecは最大セグメントサイズが小さくなるという問題がある。すなわち、IPsecでは、ESPヘッダ、ESPトレーラを使用するため、ペイロードが小さくなるため、フラグメント(パケットの分割)が発生し、スループットが低下する。また、TCPパケットでは、フラグメントが禁止であるため、エンドエンドで、IPsecの通過する環境を把握し、フラグメントが発生しない最大セグメントサイズを設定する必要がある。これに対し、SSLは、通過する環境を把握する必要がないため、最大セグメントサイズを設定する必要はない。
以上、表1にもとづいてIPsecとSSLの機能比較について説明したが、後述する本発明のプロトコルであるTCP2(登録商標出願中)は、これらIPsecとSSLのすべての長所を含み、さらに他にも多くのメリットを有する画期的な暗号通信プロトコルである。
本発明は、上述のような問題に鑑みてなされたものであり、コンピュータ端末への不正侵入を防ぐための「暗号化の機能」をアプリケーション・プログラムそれぞれに実装する必要がなく、したがって、アプリケーション・プログラム自体を再作成する必要もなく、かつ上記暗号化機能に対応していない通信相手とも従来の平文による通信でき、さらにはIPsecが利用できない環境(あるいは利用したくない状況)でも暗号化や認証の恩恵を受けることができる通信システム、特にプロトコルスタック、並びに関連する通信装置、通信方法、及びこれらを実現するための通信プログラムを提供することを目的とする。
上記課題を解決し、本発明の目的を達成するため、本発明の通信システムは、トランスポート層に位置するTCP又はUDPに該当するプロトコルを取り扱う通信システムであって、通信路の両端で対応する暗号化及び復号化ロジックを取り決める取決め手段と、送受信する情報単位としてのパケットのうち、少なくとも前記TCP又はUDPに該当するプロトコルのペイロードを前記取決め手段により取り決めた暗号化ロジックに従って暗号化して送信するプロトコル暗号化手段と、受信した該暗号化されたプロトコルを前記取決め手段により取り決めた復号化ロジックに従って復号化するプロトコル復号化手段と、を備え、トランスポート層のプロトコルに暗号化及び復号化ロジックを適用して暗号化通信を行うものである。
これにより、従来は存在しなかったTCP又はUDPレベル独自の暗号化が可能となり、IPより上の層におけるデータ漏洩や改竄の可能性が激減することになる。つまり、IPレベルの暗号化であるIPsecが解除された後のデータも、TCP又はUDPレベルの独自の暗号化がなされていることとなり、二重の暗号化という意味で暗号の強度が増すとともに、IPが正当に復号化された直後のデータに対する傍受などインターフェースを狙ったデータ漏洩に対する有効な防御となる。
また、IPが暗号化されない場合にもTCPやUDPだけを暗号化することによりセキュリティを独自に強化することができる。
さらに、UDPのブロードキャスト機能をパフォーマンス等の観点からIPsecと切り離して独自に働かせる場合があるが、この場合も本発明のTCP又はUDPレベルの暗号化が有効である。
なお、暗号化及び復号化ロジックの取決めは、通信路の両端で対応する暗号化及び復号化ロジックの事前に取り決めることが好ましい。ここで、通信路とは有線、無線を問わない。衛星を介して通信する方法も含むことは言うまでもない。また、本発明の暗号化及び復号化ロジックの取決めには、フロッピー(登録商標)ディスク、CD(Compact Disk)、USBメモリあるいはICチップ等のリムーバブルメディア(媒体)に暗号化及び復号化ロジックを記憶させて、これらの媒体を送信側と受信側で交換して暗号化及び復号化ロジックの取決めを行うことも含むものである。
また、本発明では、より上位の層、典型的にはHTTP等のアプリケーション層への「進入」や「攻撃」等の不正通信パターンの認識を、より下位の層(トランスポート層)で行うことができる。例えば、本発明の通信システムで用いられるプロトコル暗号化手段若しくはプロトコル復号化手段と、従来のクラッキング・プロテクタのような機能モジュール(一般的なクラッキングパターンの検出、破棄ないし通過制限手段)との組み合わせが、上位層であるアプリケーション層より下位層であるトランスポート層のTCP、UDP、さらにその下の層であるネットワーク層に該当するIP、ARP、ICMP、IGMP等のいずれかで実現する。これらのプロトコルスタックは、単一のプロトコルスタックとして「ソフトウエアないしハードウエアモジュール」によって実現することができる。
これにより、上述の効果の他に、データの「漏洩」「改竄」さらには「なりすまし」や「進入」「攻撃」を防ぐ機能についてプロトコルスタック間に重複や隙間がなく費用対効果の大きい通信システムを実現することができる。
また、本発明の通信システムでは、暗号化及び復号化ロジックを取り決める取決め手段を備える第1及び第2の通信装置と、暗号化及び復号化ロジックの取決め手段を備えない第3の通信装置を含み、取決め手段を備える通信装置(第1の通信装置と第2の通信装置)は、TCP又はUDPの暗号化及び復号化プロトコル処理手段のほかに、暗号化及び復号化を伴わない通常のTCP又はUDPを処理する通常プロトコル処理手段をも備え、これら暗号化及び復号化ロジック取決め手段を有する通信装置同士で通信するときには、暗号化及び復号化プロトコル処理手段を用いて通信を行い、取決め手段を備える通信装置(第1及び第2の通信装置)と暗号化及び復号化ロジックの取決め手段を備えない第3の通信装置と通信する場合には、暗号化及び復号化取決め手段により、この通信において暗号化及び復号化を行わないことを決定し、通常のTCP又はUDPプロトコル処理手段により、通信を行うことができるようにしている。
これにより、本発明による暗号通信に対応していない通信装置との間でも従来どおりの通信を確保することができることになる。
さらに、本発明の通信システムにおいては、暗号化及び復号化ロジックを取り決める取決め手段を備える通信装置(第1又は第2の通信装置)から暗号化及び復号化ロジックを取り決める取決め手段を備えない通信装置(第3の通信装置)に通信する場合に、第1及び第2の通信装置が、暗号化及び復号化ロジック取決め手段により、第3の通信装置との通信を行わないことを決定し、該第3の通信装置との通信を行わないようにすることもできる。
これにより、通信相手の制限及び各セキュリティレベルについて徹底したセキュリティポリシーを採用することができる。
本発明ではまた、暗号化及び復号化ロジック取決め手段による取決めの候補となりうる暗号化及び復号化ロジックをメモリないし回路に記憶しており、該記憶する内容を定期的に変更するロジック変更手段をさらに備えることができる。
これにより、プロトコルスタック自体を再作成したり入れ替えたりする必要なく、新しい暗号化アルゴリズムに対応したり、暗号鍵を変更することにより解読リスクを削減することができる。
さらに、本発明では、暗号化及び復号化ロジック取決め手段が、暗号化・復号化ロジックについて暗号化をしないで平文を取り扱う旨を取り決めることも可能である。
これにより、通信相手、例えばクライアント側のプロトコルスタック等が本発明による暗号化などに対応していない場合でも、従来どおり通信することができる。
なお、このような場合でも、「なりすまし」や「進入」「攻撃」を防ぐいわゆるクラッキング・プロテクタ(CP)機能については生かすことができる。
本発明は、また、TCP又はUDPに該当するプロトコルを取り扱う通信システムであって、通信路の両端で対応する完全性認証ロジックを取り決める完全性認証取決め手段と、送受信する情報単位としてのパケットのうち、少なくとも前記TCP又はUDPに該当するプロトコルのペイロードを前記完全性認証取決め手段により取り決めた完全性認証ロジックに従って完全性認証情報を付加して出力又は送信するプロトコル完全性認証情報付加手段と、受信した該完全性認証情報付加されたプロトコルを前記完全性認証取決め手段により取り決めた完全性認証ロジックに従って完全性認証するプロトコル完全性認証手段と、を備えた通信システムを提供するものである。
また、本発明は、トランスポート層のTCP又はUDPを用いて完全性認証の取決めを行う完全性認証取決め手段を備える第1及び第2の通信装置と、完全性認証取決め手段を備えない第3の通信装置とがそれぞれネットワークに接続されており、第1及び第2の通信装置は、完全性認証情報を付加してTCP又はUDPを処理する完全性認証プロトコル処理手段と、完全性認証情報の付加を行わない通常のTCP又はUDPを処理する通常プロトコル処理手段の両方を備え、第3の通信装置は、完全性認証を伴わない通常のプロトコル処理手段のみを備えており、完全性認証取決め手段を有する通信装置同士(第1の通信装置と第2の通信装置)で通信するときは、この完全性認証取決め手段により、完全性認証情報を付加した完全性認証プロトコル手段により通信するとともに、完全性認証取決め手段を有する通信装置、例えば第1の通信装置が完全性認証取決め手段を備えない通信装置(第3の通信装置)と通信するときには、前記完全性認証情報を付加しないことを決定し、前記通常プロトコル処理手段により通信を行うようにしている。
また、この場合、完全性認証取決め手段を備えた通信装置(第1又は第2の通信装置)が、完全性認証取決め手段を備えない通信装置(第3の通信装置)と通信するときは、完全性認証取決め手段により通信を行わないことを決定し、通信をしないようにすることもできる。
また、本発明では、完全性認証取決め手段による取決め候補となりうる完全性認証ロジックをメモリに記憶ないし回路に実装しており、該記憶する完全性認証ロジック定期的に変更する完全性認証ロジック変更手段をさらに備えることができる。
さらに、本発明では、完全性認証取決め手段が、完全性認証情報付加及び完全性認証をしない旨を取り決めることも可能である。
なお、かかる場合でも、「なりすまし」や「進入」「攻撃」を防ぐクラッキング・プロテクタ(CP)機能については生かすことができる。
また、本発明は、トランスポート層のTCP又はUDPに該当するプロトコルを暗号化して通信する通信方法を提供する。この通信方法は、通信路の両端で対応する暗号化・復号化ロジックを事前に取り決める取決めステップと、送受信する情報単位となるパケットのうち、少なくともTCP又はUDPのペイロードに該当するプロトコルを取り決めた暗号化ロジックに従って暗号化して送信するプロトコル暗号化ステップと、受信した暗号化されたプロトコルを取り決めた復号化ロジックに従って復号化するプロトコル復号化ステップと、を含み、トランスポート層のTCP又はUDPに該当するプロトコルに暗号化処理を施して通信するものである。
また、本発明の通信方法では、トランスポート層のTCP又はUDPに該当するプロトコルを暗号化して通信する通信方法に用いられる暗号化及び復号化ロジックを取り決める取決め手段を備える第1及び第2の通信装置と、暗号化及び復号化ロジックを取り決める取決め手段を備えない第3の通信装置とがそれぞれネットワークに接続されている場合の通信方法を提供する。すなわち、暗号化及び復号化ロジックを取り決める取決め手段を備える通信装置(第1及び第2の通信装置)同士で通信するときには、TCP又はUDPに該当するプロトコルのペイロードを前記取決め手段により取り決めた暗号化ロジックに従って暗号化して通信するとともに、暗号化及び復号化ロジック取決め手段を備えた通信装置(第1又は第2の通信装置)が暗号化及び復号化ロジック取決め手段を持たない通信装置(第3の通信装置)と通信するときは、TCP又はUDPプロトコルのペイロードを取決め手段により取り決めた暗号化ロジックに従って暗号化して送信しないことを決定し、暗号化ロジックを伴わない通常のTCP又はUDPプロトコルで通信するようにしている。
また、第1又は第2の通信装置と第3の通信装置との通信では、第1又は第2の通信装置が、第3の通信装置が暗号化及び復号化取決め手段を備えていないことを理由に通信を行わないことを決定し、前記第3の通信装置との通信を行わないようにすることもできる。
また、上記の暗号化及び復号化ロジックの取決めにおいて取決め候補となりうる暗号化・復号化ロジックをメモリないし回路に記憶しておき、該記憶する暗号化・復号化ロジックの内容を定期的に変更することも可能である。
さらに、この取決めステップにおいて、暗号化・復号化ロジックについて暗号化をしないで平文を取り扱う旨を取り決めることもできる。また、本発明による通信方法ではまた、取決めステップより前に、通信相手を認証するステップをさらに含むことができる。
また、本発明は、トランスポート層にあるTCP又はUDPに該当するプロトコルを暗号化して通信する通信方法であって、通信路の両端で対応する完全性認証ロジックを事前に取り決める完全性認証取決めステップと、送受信する情報単位のパケットのうち、少なくともTCP又はUDPのペイロードに該当するプロトコルを完全性認証取決めステップにより取り決めた完全性認証ロジックに従って完全性認証情報を付加して送信するプロトコル完全性認証情報付加ステップと、受信した該完全性認証情報付加されたプロトコルを完全性認証取決めステップにより取り決めた完全性認証ロジックに従って完全性認証するプロトコル完全性認証ステップと、を含み、トランスポート層にある前記TCP又はUDPプロトコルに完全性認証情報を付加して通信する通信方法を提供する。
そして、さらに本発明は、トランスポート層のTCP又はUDPを用いて完全性認証の取決めを行う完全性認証取決め手段を備える通信装置(第1及び第2の通信装置)間、若しくは前記完全性認証取決め手段を備える通信装置と前記完全性認証取決め手段を備えない第3の通信装置との間でネットワークを介して通信する通信方法を提供する。この通信方法は、完全性認証プロトコルを搭載した通信装置(例えば、第1の通信装置)が、同じく完全性認証プロトコルを搭載した通信装置(第2の通信装置)と通信するときは、完全性認証取決め手段により、完全性認証情報を付加したTCP又はUDPを処理する完全性認証プロトコル処理を行って送信し、完全性認証プロトコルを搭載した第1又は第2の通信装置が、前記完全性認証プロトコルを搭載しない第3の通信装置と通信するときは、完全性認証取決め手段により、完全性認証情報を付加しないことを決定し、通常のTCP又はUDPを処理する通常プロトコル処理を行って通信を行うようにしている。
なお、第1又は第2の通信装置が、完全性認証取決め手段を持たない第3の通信装置と通信する際に、第1又は第2の通信装置が、前記第3の通信装置が完全性認証取決め手段を持たないことを理由に、通信を行わないようにすることもできる。
また、本発明では、完全性認証取決めステップにおいて取決めの候補となりうる完全性認証情報を付加するための完全性認証ロジックをメモリに記憶ないし回路に実装するステップと、該記憶ないし実装する内容を定期的に変更する完全性認証ロジック変更ステップをさらに備えることができる。また、完全性認証取決めステップより前に、通信相手を認証するステップをさらに含むこともできる。
以下、図1〜図24を参照しながら本発明の実施の形態の例を説明する。
図1は、本発明の暗号化通信システムの一実施の形態に用いられるプロトコルスタックを示すものである。
本発明に用いられるプロトコルスタックは、図1に示すように、OSI7階層の物理層(第1層)とデータリンク層(第2層)に相当する階層に、NIC(Network Interface Card)のDriver11が配列される。このドライバは、既に述べたように、コンピュータなどのハードウエアをネットワークに接続するためのインターフェースカードのドライバであり、その内容はデータ送受信制御ソフトウエアである。例えばイーサネット(登録商標)に接続するためのLANボードまたはLANカードがこれに相当するものである。
第3層のネットワーク層には、一部がトランスポート層(第4層)まで伸びたIPエミュレータ(emulator)3が存在している。上記延びた部分には、トランスポートとしての機能は実装していない。セッション層に、ネットワーク層の機能を提供しているだけある。このIPエミュレータ3は、暗号化通信を行うプロトコルである「IPsec on CP」13bと、「IP on CP」13aを用途に応じて切り換えて使う働きをするものである。ここで、「on CP」とは、クラッキング・プロテクタ(CP)による、「進入」「攻撃」の監視、破棄、切断ないし通過制限の対象となっていること、又は、設定によりなりうることを示している。
また、ネットワーク層にはARP on CP(Address Resolution Protocol on Cracking Protector)が配列されている。このARP on CPは、クラッカー(Cracker)への保護対策を具備したIPアドレスからイーサネット(登録商標)の物理アドレスであるMAC(Media Access Control)アドレスを求めるのに使われるプロトコルである。MACは、媒体アクセス制御と呼ばれる、LANなどで利用される伝送制御技術であり、データの送受信単位であるフレームの送受信方法やフレームの形式、誤り訂正などを規定する技術として利用されている。
ここで、IPエミュレータ13は、本発明による各種のセキュリティ機能を、従来のIP周辺のスタックに整合させるためのソフトウエア又はファームウエアである。すなわち、IPのエラーメッセージや制御メッセージを転送するプロトコルであるICMP(Internet Control Message Protocol)14a、同一のデータを複数のホストに効率よく配送するための又は配送を受けるために構成されるホストのグループを制御するためのプロトコルであるIGMP(Internet Group Management Protocol)14b、TCP15、UDP16さらにソケット(Socket)インターフェース17に整合させるためのソフトウエア、又はファームウエア、ないしはハードウエア(電子回路、電子部品)である。このIPエミュレータ13により、IPsecの暗号化・復号化及び必要な認証情報付加・認証等の前後の適合処理を行うことができる。
このIPエミュレータ13の上層のトランスポート層(第4層)には、TCPエミュレータ15とUDPエミュレータ16が配置されている。TCPエミュレータ15は、暗号化通信を行うプロトコルである「TCPsec on CP」15bと、通常の通信プロトコルである「TCP on CP」15aを用途に応じて切り換えて使う働きをする。同様に、UDPエミュレータ16は、暗号化通信を行うプロトコルである「UDPsec on CP」16bと、通常の通信プロトコルである「UDP on CP」16aを用途に応じて切り換えて使う働きをする。
本発明の最も特徴とするべき点は、このトランスポート層(第4層)に、TCPsec15bと、UDPsec16bの暗号化通信プロトコルを搭載したことである。TCPsec15bとUDPsec16bについては後述する。
このトランスポート層(第4層)の上層のセッション層(第5層)には、TCP及びUDP等のプロトコルとデータのやりとりを行うソケット(Socket)インターフェース17が設けられている。このソケットの意味は、既に述べたようにコンピュータが持つネットワーク内の住所に当たるIPアドレスと、IPアドレスのサブアドレスであるポート番号を組み合わせたネットワークアドレスを意味しており、実際には、一連のヘッダの追加ないし削除をまとめて行う、単一のソフトウエアプログラムモジュール(実行プログラム等)あるいは単一のハードウエアモジュール(電子回路、電子部品等)からなっている。
このソケットインターフェース17は、さらに上位のアプリケーション(図2で示すECアプリケーション及び図3で示す放送アプリケーション等)からの統一的なアクセス方式を提供するものであり、引数の種類や型など従来と同様のインターフェースを保つようにしている。
TCPエミュレータ15は、トランスポート層において、データの漏洩・改竄の防止の機能、すなわち暗号化、完全性認証及び相手認証等の機能を持つTCPsec15bと、このような暗号化、完全性認証、及び相手認証等の機能を持たない通常のプロトコルTCP15aのいずれかにパケットを振り分ける働きをもっている。また、TCPsec15b及びTCP15aのいずれもクラッキング・プロテクタ(CP)を備えているため、そのいずれを選択した場合でも、クラッカーによる「進入」「攻撃」に対して防御する機能を実現することができる。TCPエミュレータ15は上位層であるソケットとのインターフェースの役割も果たしている。
また、既に述べたようにTCPがエラー補償機能を有するのに対して、UDPはエラー補償機能を持たないが、その分転送速度が速く、かつブロードキャスト機能を備えているという特徴がある。UDPエミュレータ16は、TCPエミュレータ15と同様に、データの漏洩・改竄の防止の機能、すなわち暗号化、完全性認証及び相手認証等の機能を持つUDPsec16bと、このような暗号化、完全性認証、及び相手認証等の機能を持たない通常のプロトコルUDP16aのいずれかにパケットを振り分ける働きを持っている。
図1に示すように、ソケット17、TCPエミュレータ15、UDPエミュレータ16、「TCPsec on CP」15b、「UDPsec on CP」16b、「TCP on CP」15a、「UDP on CP」16a、「ICMP on CP」14a、「IGMP on CP」14b、IPエミュレータ13、「IP on CP」13a、及び「ARPonCP」12からなるプロトコルスタックが本発明の暗号化処理を行うためのプロトコルスタックであり、以下、このプロトコルスタックを総称してTCP2(登録商標出願中)と呼ぶことにする。なお、TCP2には「IPsec on CP」13bは必須のものとして含まれていないが、「IPsec on CP」13bを含めてTCP2とすることもできる。
本発明のTCP2は、TCP、UDP、IP、IPsec、ICMP、IGMP、ARPの標準プロトコルにCP(クラッキング・プロテクト)を実装し、各プロトコルスタックに対する通信からの攻撃、及び、アプリケーション・プログラムからの攻撃(トロイの木馬、プログラムの改竄、正規ユーザの不正使用)を防御することができる。また、TCP2では、TCPエミュレータ15を実装し、このTCPエミュレータ15は、セッション層にあるソケット(Socket)17、及びネットワーク層にあるIPエミュレータ13から見て、互換性を保つため、外向きには標準TCPと同じに見せることができる。実際は、TCP2の機能として、TCPとTCPsecを切り替えて実行する。TCPsecは、本発明であるトランスポート層での暗号化及び認証機能である。
また、同様に、TCP2では、UDPエミュレータ16を実装しており、UDPエミュレータ16は、セッション層であるソケット(Socket)17、及び、ネットワーク層であるIPエミュレータ13から見て、互換性を保つため、外部からは標準UDPとして見せることができる。実際は、TCP2の機能として、UDP、UDPsecを切り替えて実行する。UDPsecは、本発明であるトランスポート層での暗号化及び認証機能である。
次に、TCP2において、特に重要な機能である「データ漏洩」を防ぐ機能であるTCPsec15b及びUDPsec16bについて説明する。
TCPsec15b及びUDPsec16bのための暗号化・復号化の方法(アルゴリズム、ロジック(論理))としては、公知の秘密鍵(共通鍵)暗号アルゴリズムが用いられる。例えば、1960年代にIBM社によって開発された秘密鍵暗号アルゴリズムであるDES(Data Encryption Standard)や、その改良版としての3DESが用いられる。また、その他の暗号アルゴリズムとしては、1992年にスイス工科大学のJames L.Massey氏とXuejia Lai氏によって発表されたIDEA(International Data Encryption Algorithm)も用いられる。この暗号アルゴリズムは、データを64ビットのブロックに区切って暗号化するもので暗号鍵の長さは128ビットである。秘密鍵暗号を効率よく解読する線形解読法や差分解読法に対しても十分な強度を持つように設計されている。
また、本発明に用いられるTCPsec15b及びUDPsec16bの暗号方式として、FEAL(Fast data Encipherment Algorithm)、MISTY、AES(Advanced Encryption Standard)といった暗号方式も利用されるほか、また、独自に作成した秘密の暗号化・復号化アルゴリズムを利用することもできる。ここで、FEALは、日本電信電話株式会社(当時)が開発した暗号方式で、暗号化と復号化に同じ鍵をもちいる秘密鍵型の暗号方式である。このFEALは、DESに比べて高速に暗号化と復号化ができるという利点がある。
次に、同じく本発明に利用される暗号方式であるMISTYは、三菱電機株式会社が開発した秘密鍵型の暗号方式であり、IDEAと同様にデータを64ビットのブロックに区切って暗号化する。鍵の長さは128ビットである。暗号化と復号化には同じプログラムが使われる点はDESなどと同じである。この方式も秘密鍵暗号を効率よく解読する線形解読法や差分解読法に対しても十分な強度を持つように設計されている。
また、AESは、米国商務省標準技術局によって選定作業が行われている、米国政府の次世代標準暗号化方式であり、現在の標準的な暗号方式であるDESに代わる次世代の暗号標準として開発が進められたものである。世界に公募して集められて幾つかの暗号方式の中から、2000年10月に、ベルギーの暗号開発者Joan Daemen氏とVincent Rijmen氏が開発したRijndaelという方式が採用された。
このように、本発明のTCPsec15b及びUDPsec16bの暗号方式としては、既に知られているさまざまな秘密鍵の暗号アルゴリズムを採用することができるほか、ユーザが独自に開発した秘密鍵(共通鍵)暗号方式も利用することが可能である。
さらに、いわゆる「なりすまし」及び「データの改竄」などを防ぐための「相手認証」及び「完全性認証」の方法として、公開鍵や事前秘密共有(Pre-shared)を利用したアルゴリズム、例えば、MD5(Message Digest 5)、SHA1(Secure Hash Algorithm 1)などの認証アルゴリズムが用いられる。また、このような公知の認証アルゴリズムに代えて独自の一方向関数を利用したアルゴリズムを採用することもできる。
このMD5は、認証やデジタル署名に用いられるハッシュ関数(一方向要約関数)の一つであり、原文を元に固定長のハッシュ値を発生し、これを通信経路の両端で比較することにより、通信途中で原文が改竄されていないかを検出することができるものである。このハッシュ値は擬似的な乱数のような値をとり、これを基にしては原文を再生できないようになっている。また、同じハッシュ値を生成する別のメッセージを作成することも困難になっている。
SHA1も、認証やデジタル署名などに使われるハッシュ関数の一つであり、2の64乗ビット以下の原文から160ビットのハッシュ値を生成し、通信経路の両端で比較することにより、通信途上の原文の改竄を検出するものである。この認証アルゴリズムは従来のインターネットの暗号化通信の代表的なものであるIPsecにも採用されている。
なお、これらの認証アルゴリズムについては、DH(Diffie-Hellman)公開鍵配送法や、IPsecと同様のIKE(Internet Key Exchange)プロトコル(UDPの500番)などにより安全な鍵交換ができるように設計され、しかも、定期的に暗号化/完全性認証アルゴリズム(論理)自体やそのための鍵の集合/定義域が変更されるように、プロトコルドライバープログラム(TCPsec15b、UDPsec16bなど)によりスケジュールされている。
次に、図2に基づいて、本発明の第1の実施の形態である暗号化方式TCP2(特に、TCPsec)を用いた暗号化通信について説明する。図2は、特に、EC(Electronic Commerce:電子商取引)アプリケーションに応用した通信に適用する例である。
図2は、ネットワーク20に接続されたECアプリケーション用のクライアント端末3a、3b、3cが、いわゆるルータ又はゲートウェイのようなネットワーク制御機器2を介して他のネットワーク30に接続されたホストコンピュータ(いわゆるサーバとして機能する通信装置)に接続された場合の全体構成を示す図である。
ネットワーク20に接続されるクライアント端末3a、クライアント端末3b及びクライアント端末3cのうち、クライアント端末3bと3cは、本発明のTCP2を実装していない。つまりクライアント端末3bと3cには、本発明の暗号化方式のためのプロトコルであるTCPsecもUDPsecも実装されていない。TCP2をサポートしているクライアント端末は3aのみである。そして、クライアント端末3bについては、不図示のネットワークポリシー設定により通常のプロトコル処理による接続、すなわち、TCPレベルについては、「データ漏洩」を防ぐ暗号化機能、「データ改竄」を防ぐ完全性認証機能、及び「なりすまし」を防ぐ相手認証機能は伴わない接続を行うようにしている。
何れのクライアント端末3a〜3cにおいても、ソケット(Socket)の上層には、EC用のアプリケーションソフトウエアが実装されている。また、ネットワーク30に接続されたホストコンピュータ1は、TCP2を搭載しており、そのソケット17の上層にECアプリケーションソフトウエア18が実装されている。図2ではUDPsecなどの不使用のプロトコルを省略しているが、このホストコンピュータ1のプロトコルスタックの構造は図1のプロトコルスタックの構造であるTCP2を構成するソフトウエアは全て搭載されている。
すなわち、まず第1層(物理層)と第2層(データリンク層)にまたがってNICドライバ(NIC Driver)11が配置され、その上層(第3層)のネットワーク層にはARP(Address Resolution Protocol)12とIPエミュレータ13が配置されている。そして、第4層のトランスポート層にTCPエミュレータ15とUDP16が配置される。図2にUDPエミュレータ(UDPsecとUDPを含む)の記載がないのは、第1の実施形態のECアプリケーションに対する暗号化通信としては速度よりも誤り補償に重点をおくTCPsecが使用されるからである。このことは、ホストコンピュータがUDPsecを搭載していないことを意味するものではない。TCP2を搭載することは、既に説明したようにUDPsecとTCPsecの両方を搭載していることを意味している。
ネットワーク20に接続されたクライアント端末3a、3b、3cとネットワーク30に接続されるホストコンピュータ1を介在するネットワーク制御機器2のプロトコルスタックは、NICドライバ、ARP、IPがスタックとして積み上げられたファームウエア(不揮発メモリ付電子回路)により構成されている。
また、クライアント端末3aは、本発明のTCP2をサポートする端末であるが、ここではTCPsecにのみ対応した通信装置を備えた端末としてプロトコルスタックが示されている。クライアント端末3bと3cは本発明のTCP2をサポートしていない。
クライアント端末3aには、ネットワークを通して又はCD−ROMのような記録媒体を介して事前に配布されるプロトコルドライバソフトウエアが実装されている。また、クライアント端末3b、クライアント端末3cに対しても同様にプロトコルドライバソフトウエアが事前に配布され、実装される。
特に、クライアント端末3cについては、従来の暗号化方式であるIPsecを実装しているが、ネットワーク制御機器(ルータ)2がTCPポート番号を参照したIPマスカレードを行っているためIPsecが有効に使えないようになっている。更にクライアント端末3cについては、不図示のネットワークポリシー設定により接続要求を破棄するようにしている。なお、このようなネットワークポリシーの設定ないしプロトコルを実装しているかどうかの確認(受信パケット解析等)自体については当業者に周知の事項であるのため、本明細書では説明を省略する。
ホストコンピュータ1がクライアント端末3aと通信するときは、本発明のTCP2、特にTCPsecに基づいた暗号化及び復号化取決めにより、通信を行うことになるが、ホストコンピュータ1がクライアント端末3b又は3cと通信するときは、本発明のTCP2(特に、TCPsec)による暗号化及び復号化の取決めがされない状態、つまり通常のTCPプロトコルによる通信が行われることになる。もちろん、ホストコンピュータ1がIPsecをサポートしているクライアント端末3cと通信する場合には、IPsecによる暗号化通信をすることができることは当然である。なお、ホストコンピュータ1が、TCP2が搭載されていないクライアント端末3b又は3cと通信しようとしてもホストコンピュータ1の有するTCP2の働きで、通信をストップさせることも可能である。
また、この実施の形態では、ネットワークを介してホストコンピュータ1とクライアント端末3aとが暗号化及び復号化ロジックの交換を行うようにしているが、FDやCD、UDBメモリ等のリムーバブルメディアを用いて予め通信相手同士で暗号化及び復号化のための取決めロジックを交換しておくこともできることは言うまでもない。
次に、図3に基づいて、本発明の第2の実施形態であるTCP2の中のUDPsecの暗号化方式を用いた暗号化通信について説明する。図3は、ネットワーク20に接続された放送アプリケーション用のクライアント端末4a、4b、4cが、いわゆるルータ又はゲートウェイのようなネットワーク制御機器2を介して別のネットワーク30に接続されたホストコンピュータ(いわゆるサーバとして機能する通信装置)1と通信する通信システムの全体構成を示す図である。
図3は、クライアント端末4a、4b、4c及びホストコンピュータ1のプロトコルスタックを示しているが、TCP2をサポートしているクライアント端末は4aと4bである。つまり端末4aと4bだけがUDPsecを備えている。各クライアント端末のソケット(Socket)の上層には、放送用のアプリケーションソフトウエアが実装されている。また、ネットワーク30に接続されたホストコンピュータ1もTCP2を搭載しており、そのソケット17の上層に放送アプリケーションソフトウエア19が実装されている。図3のホストコンピュータ1も図2のホストコンピュータ1と同様に、図1のプロトコルスタックの構造であるTCP2を構成するソフトウエアは全て搭載している。
ホストコンピュータ1が保有するプロトコルスタックは、図2のホストコンピュータ1のプロトコルスタックと略同じであるが、図2のホストコンピュータ1のプロトコルスタックと異なる点は、TCPエミュレータの代わりにUDPエミュレータ16がある点である。これは放送アプリケーションソフトでは画像等の大量のデータが取り扱われるため、データ伝送のような誤り補償よりも、高速性が重視されるためである。
ネットワーク20に接続されたクライアント端末4a、4b、4cとネットワーク30に接続されるホストコンピュータ1を介在するネットワーク制御機器2のプロトコルスタックは、NICドライバ、ARP、IPがスタックとして積み上げられたファームウエア(不揮発メモリ付電子回路)により構成されている。
また、クライアント端末4aは、本発明のTCP2をサポートする端末であるが、ここではUDPsecにのみ対応した通信装置を備えた端末であり、クライアント端末4bは、本発明のUDPsec及び公知のIPsecに対応した通信装置であり、クライアント端末4cは公知のIPsecにのみ対応した通信装置である。このクライアント端末4cは本発明のTCP2をサポートしていない。これらのクライアント端末4a〜4cには、図2のクライアント端末3a〜3cと同様に、ネットワークを通して又はCD−ROMのような記録媒体を介して事前に配布されるプロトコルドライバソフトウエアが実装されている。
また、特に「データ漏洩」防止のための暗号化・復号化ロジック及び「データ改竄」防止のための認証情報付加・認証ロジックについては、ホストコンピュータ1とクライアント端末4a、4b、4cの間で対応している必要がある。公知のいわゆるIPsecと同様のポリシーで取決めを行うこともできるが、本発明の第2の実施形態においては、事前にプロトコルドライバソフトウエア自体を配布しているので、より簡潔な独自のプロトコルにより秘密鍵等を取り決めたり、より簡易な構造のパケットを使用したりすることもできる。また、公知の暗号化・復号化及び認証アルゴリズムでなく、独自で作成した暗号化・復号化及び認証アルゴリズム(ロジック)自体をプロトコルドライバのソフトウエアモジュール等として組み込むこともできる。
なお、クライアント端末4cは、TCP2を実装していないが、インターネットで利用される公知のIPsecを実装しているため、これによってある程度セキュアな通信をすることができる。しかし、クライアント4aと4bは、対象とする放送アプリケーションのパフォーマンスないしセキュリティポリシーの都合上、IPsecではなく本発明によるTCP2の構成要素であるUDPsecを実装して使用している。IPsecではなくUDPsecを利用する理由は、例えば、UDPポート番号部分(IPペイロードに属する)をIPsecで暗号化することによるパフォーマンスの低下など、IPsec自体に脆弱さがあるからである。
また、通信相手が正しいものかどうかを判断する相手認証プロトコルを、本発明のTCP2のTCP又はUDPプロトコルスタック、つまりTCPsec又はUDPsecに埋め込むことにより、通信相手相互間で上位アプリケーションを意識することなく、通信相手認証機能を実施することができる。この場合、コスト増にならない範囲で実質的に通信パケット数やパケット長等を増やすこともできる。
また、特に、ネットワーク内で不特定多数の相手に向かってデータを送信するブロードキャスト機能を実施するに際して、本発明による暗号化方式であるUDPsecを利用する場合には、ブロードキャストを受けるクライアント端末3a、3bがネゴシエーション(取り決め)を開始し、通信相手認証や通信用秘密鍵を得る。そして、クライアント端末3aや3bは、通信相手の認証を行って通信用の秘密鍵を取得するまでは、ホストコンピュータ1からのUDPsecによる配信データを復号化することができない。
次に、図4に基づいて、本発明の第1及び第2の実施形態の通信で送受信されるパケット構造と、その暗号化範囲及び完全性認証の適用範囲について説明する。
図4(a)はTCPsec/IPsecのパケット構造と各暗号化範囲と完全性認証の適応範囲を示し、図4(b)(c)はそれぞれTCPsec/IP、UDPsec/IPのパケット構造と各暗号化範囲及び完全性認証の適用範囲を示したものである。
図4(a)に示すように、TCPsec/IPsecのパケット構造は、IPヘッダ41のすぐ後に、IPsecのESPヘッダ42が続いている。続いてTCPヘッダ43とTCPsecの付加情報44が設けられ、その後にアプリケーションデータ45が続く構造になっている。そして、アプリケーションデータ45の後には、ブロック暗号で発生するデータのブランクやそのブランクの長さ、次のヘッダの番号などの暗号データをサポートする情報であるTCPsec付加トレーラ46が配列され、その後にTCPsecの付加認証データ47が配列される。そして、さらにその後にIPのためのESPトレーラ48とESP認証データ49が配列されるパケット構造になっている。
このうち番号41、42、48、49で示される部分はIPsec用の情報であり、番号43、44、46、47が本発明によるTCP2の中心的な役割を果たすTCPsecに関連する情報である。なお、ここではTCPsecもIPsecに準じた配列としたが、採用する暗号化や認証のアルゴリズムによっては、TCPsecの付加情報44と付加トレーラ46を省略したり、TCPsecの付加認証データ47を削減したりしても利用可能である。
図4(a)に示すTCP2のパケット構造においては、TCPsecとIPsecの二つの方式で暗号化が行われる。この場合、まず送信側では、TCPsec側を最初に暗号化して、TCPsec認証データを付加する。次に、IPsecを暗号化し、IPsec認証データを付加している。そして、受信側では、まず、IPsecを復号化して、IPsec認証データにより受信パケットのデータを検証し、続いてTCPsec側を復号化して、TCPsec認証データで受信パケットのデータを検証する。
このように、図4(a)に示すようなパケット構造を有するデータでは、IPsecとTCPsecの二種類の暗号アルゴリズムを用いて暗号化し、さらに完全性認証を行うので、IPsecのみと比べて外部からの侵入等にたいして格段に強固な暗号化通信システムを確立することができる。TCPsecにより暗号化される範囲は、アプリケーションデータ45、TCPsec付加トレーラ46の部分であり、TCPsecによる認証範囲としては上記暗号化範囲にさらにTCPsec付加情報44が加えられる。なお、従来のIPsecで暗号化される暗号化範囲は、TCPヘッダ43からESPトレーラ48までの部分であり、その認証範囲は、ESPヘッダ42からESPトレーラ48までの範囲となる。
図4(b)は、TCPsec/IPのパケット構造を示しており、図4(a)と異なり、IPヘッダ41のすぐ後に、TCPヘッダ43及びTCPsec付加情報44が続き、更にアプリケーションデータ45が続く構造になっている。そして、アプリケーションデータ45の後には、ブロック暗号で発生するデータのブランクやそのブランクの長さ、次のヘッダの番号などの暗号データをサポートする情報であるTCPsecの付加トレーラ46とTCPsecの付加認証データ47が配列される構造となっている。
ここで、番号43、44、46、47がTCPsecに特徴的な情報となる。ただし、上述したようにこれらの情報は、採用する暗号化/認証アルゴリズムによっては、TCPsec/IPの使用していないヘッダフィールド部分などに分散したり、個々のパケットからは逆算・推測できない独立した事前取決め(ネゴシエーション)により省略したりできるものである。また、IP層の上層に当たるTCP及びIPを使用していないプロトコルフィールドを用いて、図4(b)に示すようなTCPsec/IPパケットを構成することにより、より下層のIPのみに着目したIPsecパケットよりもパケット長を簡単に削減することができるようになる。なお、ここで暗号化範囲は、図示の通り、アプリケーションデータ45、TCPsec付加トレーラ46であり、認証範囲は上記暗号化範囲の他に、TCPsecの付加情報44が加えられる。
図4(c)は、本発明におけるUDPsec/IPのパケット構造を示すものであり、UDPsec付加情報44a、UDPsec付加トレーラ46a及びUDPsec付加認証データ47aがUDPsecをサポートするために必要な情報となる。この暗号化範囲は、図示の通り、アプリケーションデータ45a、UDPsec付加トレーラ46aであり、認証範囲は上記暗号化範囲の他に、UDPsec付加情報44aが加えられる。
次に、本発明の第1の実施の形態であるTCPsecを用いた暗号化処理システムの動作を図5〜図6、図8〜図14に示す流れ図、及び図7に示すシーケンス図に基づいて説明する。
図5は、TCP、並びに、TCPsecのパッシブオープン(図7のホストBに相当する接続待ちのオープンであり、例えば、Webサーバが、この状態でオープンする。)における処理の流れ図であり、上位アプリケーション・プログラムで、接続待ちオープンした場合に、このTCP/TCPsecパッシブオープン処理がスタートする(ステップS1)。なお、この部分は、図7でいうとホストB側の処理がこれに相当する。
まず、最初に、オープンするポート番号の解析が行われる(ステップS2)。この解析では、例えば、Webサーバの場合は、TCPポートの80番を使用して、その定義状態を確認する。そして次にこのポート番号80が、TCPsecのパッシブオープンが許可されているかどうかを判定する(ステップS3)。ステップS3においてTCPsecのパッシブオープンが許可されていない場合は、今度はTCPパッシブオープンが許可されているかどうかが判断される(ステップS4)。判断ステップS4でTCPパッシブオープンも許可されていない場合は、TCPsecもTCPも許可されていないことになり、TCP/TCPsecパッシブオープンは失敗となり、処理を中断する(ステップS7)。
判断ステップS4でTCPパッシブオープンが許可されている場合、すなわちTCPsecパッシブオープンは許可されていないがTCPパッシブオープンは許可されているときは、後述する図8に示すTCPパッシブオープン処理が実行される(ステップS5).
判断ステップS3で、TCPsecのパッシブオープンの許可状態が確認された場合は、同じく後述する図9に示すTCPsecのパッシブオープン処理が実行される(ステップS6)。
ステップS5又はステップS6におけるTCPパッシブオープン処理又はTCPsecのパッシブオープン処理が終了するとTCP/TCPsecパッシブオープン処理を終了する(ステップS7)。このように、本例では、上位であるアプリケーションからは、TCPでパッシブオープンを行っているが、TCP2の判断により、TCPsecがサポートされていればTCPsecで通信を行い、TCPsecがサポートされていなければTCPで通信することとなる。
次に、図6に基づいて本発明のTCP並びにTCPsecのアクティブオープン処理について説明する。TCP/TCPsecのアクティブオープンとは、接続要求のオープンであり、例えば、Webブラウザを実装するクライアント端末が、この状態でオープンすることになる。図7でいうとホストA側の処理がこれに相当する。図6は、このアクティブオープンにおける処理の流れ図であり、上位アプリケーション・プログラムにおいて接続要求オープンがなされた場合に、このTCP/TCPsecのアクティブオープン処理が開始される(ステップS8)。
まず、最初に、オープンするポート番号の解析がなされる(ステップS9)。この解析は、例えば、Webブラウザを実装するクライアント端末アプリケーションが、TCPポートの3000番を使おうとした場合は、TCPポートの3000番の定義状態を確認する。
次にこのポート番号3000に対してTCPsecのアクティブオープンが許可されているかどうかが判断される(ステップS10)。ステップS10においてTCPsecのアクティブオープンが許可されていないと判定された場合は、続いてTCPアクティブオープンが許可されているかどうかが判断される(ステップS11)。判断ステップS11でTCPアクティブオープンも許可されていない場合は、TCPsec、TCPのいずれのアクティブオープンも許可されていないことになり、TCP/TCPsecアクティブは失敗となり、接続処理は中断される(ステップS14)。
判断ステップS11でTCPアクティブオープンが許可されている場合、すなわちTCPsecアクティブオープンは許可されていないがTCPアクティブオープンは許可されているときは、後述する図10に示すTCPアクティブオープン処理が実行される(ステップS12)。
判断ステップS10で、TCPsecのアクティブオープンの許可状態が確認された場合は、後述する図11に示すTCPsecのアクティブオープン処理が実行される(ステップS13)。ステップS12又はステップS13におけるTCPsecアクティブオープン処理又はTCPsecのアクティブオープン処理が終了するとTCP/TCPsecアクティブオープン処理が終わる(ステップS14)。TCP/TCPsecアクティブオープンの場合も、TCP/TCPsecパッシブオープン(図5)の場合と同様に、上位であるアプリケーションからは、TCPでアクティブブオープンを行っているが、TCP2の判断により、TCPsecがサポートされていればTCPsecで通信を行い、TCPsecがサポートされていなければTCPで通信することとなる。
次に、図7に基づいてアクティブオープン側のホストAとパッシブオープン側のホストB間のシーケンス処理について、本発明のTCPsecを使った通信の処理を説明する。
図7は、本発明の暗号処理プロトコルであるTCPsecを用いたときの接続シーケンス、データ通信シーケンス及び切断シーケンスを、標準のTCPと比較して示したものである。図7(a)は標準TCP,図7(b)は本発明のTCPsecを用いた時の通信のシーケンスを示した図である。
図7(a)に示すように、標準のTCPは、ホストBのアプリケーションがTCPパッシブオープンし、ホストAのアプリケーションがTCPアクティブオープンしている。
ホストBのアプリケーションがTCPパッシブオープンをすると、TCPパッシブオープン処理(図5のステップ5及び図8参照)を開始し、後述する図8のステップS15に示すように受信待ちとなる。ホストAのアプリケーションがTCPアクティブオープンをすると、TCPアクティブオープン処理(図6のステップS12及び図10参照)を開始し、後述する図10のステップS52に示すようにホストAからホストBに対して接続要求(SYN)が送信される。これにより、標準TCPの接続シーケンスが開始状態となる。
ホストB側では、この接続要求(SYN)を受信するとこの接続要求の受信パケットの解析を終了し、ホストA側に接続応答(SYN・ACK)を送信する。ここでACKとは、Acknowledgementの略であり、データ転送が正常に終了したときなどに送信されるものである。ホストA側は、この接続応答(SYN・ACK)を受信すると、接続が完了した旨のACK(肯定応答)を送信し、標準TCPの接続シーケンスを終了する。
この標準TCPの接続シーケンスを終了すると、標準TCPによるデータ通信シーケンスが有効となり、ホストA側、又は、ホストB側の何れかがデータを送信後、データを受信した側からACK(肯定応答)を返すという基本パターンを繰り返してデータの送受信が行われる。
この標準TCPのデータ通信シーケンスでは、ホストA又はホストBの何れかが、相手に対して切断要求をすることができる。
図7(a)では、アクティブオープン側のホストAからパッシブオープン側のホストBに対して切断要求が送信された場合を示している。ホストAのアプリケーションから切断要求があると、ホストAは、切断要求(FIN)を送信する。ホストBは、この切断要求(FIN)を受信すると、後述する図8のステップS23に示すように切断応答(FIN・ACK)を送信する。ホストAは、この切断応答(FIN・ACK)を受信すると、ACK(肯定応答)を送信し、標準TCPの切断シーケンスを終了する。
次に、本発明のTCPsecによる通信のシーケンスを図7(b)に基づいて説明する。図7(b)では、ホストBのアプリケーションがTCPsecパッシブオープンし、ホストAのアプリケーションがTCPsecアクティブオープンしている。
ホストBのアプリケーションがTCPsecパッシブオープンをすると、TCPsecパッシブオープン処理(図5のステップS6及び図9を参照)を開始し、後述する図9のステップS31に示すように受信待ちとなる。ホストAのアプリケーションがTCPsecアクティブオープンをすると、TCPsecアクティブオープン処理(図6のステップS13及び図11を参照)を開始し、図11のステップS69に示すようにホストAからホストBに対して接続要求(SYN)が送信される。これにより、TCPsecの接続シーケンスが開始状態となる。なお、接続要求(SYN)には、オプションで、TCP2の固有情報を暗号化して付加し、正しい相手であることを相手に通知するようにしている。すなわち、ホストAとホストBの間で次のTCPsecネゴシエーションデータを交換する以前に相手方端末がTCP2をサポートする端末であるか否か、言い換えると通信する正しい相手であるか否かを確認することができる。
ホストB側では、ホストAから送信された接続要求(SYN)を受信すると、正しい相手であれば、ホストAに対して接続応答(SYN・ACK)を送信する。そして、ホストA側は、このホストBからの接続応答(SYN・ACK)を受信するとACK(肯定応答)を送信する。続いてホストAとホストBの間でTCPsecネゴシエーションデータを交換し、正しい相手であれば、TCPsecの接続シーケンスを終了する。
この接続シーケンスが終了すると、TCPsecのデータ通信シーケンスが有効となり、ホストA側又はホストB側の何れかがデータを送信後、データを受信した側からACK(肯定応答)を返す基本パターンを繰り返してデータの送受信が行われる。なお、このデータは、すべて暗号データであることは言うまでもない。
なお、TCPsecのデータ通信シーケンスでは、ホストA又はホストBの何れかが相手方に対して切断要求をすることができる。図7(b)では、アクティブオープン側のホストAから切断を開始している。ホストAのアプリケーションから切断要求があると、ホストAは切断要求(FIN)を送信する。この切断要求(FIN)には、オプションで、TCP2の固有情報を暗号化して付加し、正しい相手であることを相手に通知することができるものである。ホストBは、この切断要求(FIN)を受信すると、正しい相手であれば、後述する図9のステップS42に示すように切断応答(FIN・ACK)を送信する。ホストAは、この切断応答(FIN・ACK)を受信すると、ACK(肯定応答)を送信し、TCPsecの切断シーケンスを終了する。
以上、図7に基づいて、標準TCPと本発明のTCP2のひとつであるTCPsecについて通信の接続から切断までのシーケンスを説明したが、以下、TCP及びTCPsecのパッシブオープン処理、及びアクティブオープン処理について流れ図に従って順に説明する。
まず、図5の流れ図のステップS5において、TCPパッシブオープン処理がスタートした場合の詳細について図8の流れ図に基づいて説明する。
図5のステップS5で処理するプロトコルがTCPと決定した場合に、この図8のTCPパッシブオープン処理がスタートする。最初に、受信待ちをして、受信した受信パケットの解析を行う(ステップS15)。続いてこの受信したパケットが正しいパケットであるか否か、つまりDoS攻撃におけるTCPプロトコル攻撃パターンであるかどうかを判断する(ステップS16)。そしてステップS16の判断の結果、不正パケットであると判定された場合にはその受信パケットを廃棄し(ステップS17)、次のパケットの受信を待つ。
判断ステップS16において、受信パケットが正しいTCPパケットであると判断された場合は、続いて接続中か否か、つまり図7のホストAとホストBの接続シーケンスが完了しているかどうかが判断される(ステップS18)。判断ステップS18において、接続中であると判定された場合は、次にパケットが切断要求(図7(a)のFIN)であるか否かが判断される(ステップS19)。切断要求でなければ、続いて切断応答(図7(a)のFIN/ACK)であるか否かが判断される(ステップS20)。切断要求でもなく、切断応答でもない場合には、TCPデータの送受信処理が行われ(ステップS21)、受信パケットが切断応答である場合は、図7のホストAからACKが送信され、TCP接続が切断される(ステップS25)。判断ステップS19でホストAからの切断要求であると判断されると、これに対する切断応答がホストBから送信される(ステップS23)。
ステップS23で切断応答が送信された場合には、最終のACKを待つ(ステップS24)。そして、最終ACKを受信した後にTCPを切断状態にして(ステップS25)、TCPパッシブオープンを終了する(ステップS26)。
判断ステップS18において、受信ポートが接続中でないとされた場合には、受信したパケットがパッシブオープン許可ポートであるか否かが判定される(ステップS27)。そして受信パケットが許可されていない場合は、受信パケットを廃棄して(ステップS28)次のパケットを待つ。また、判断ステップS27において、受信パケットがパッシブオープン許可になっているとされた場合は、次にパケットが接続要求であるか否かが判断され(ステップS29)、接続要求でない場合は、パケットを廃棄して(ステップS28)次のパケットを待つ。また、判断ステップS29で接続要求であると判断された場合には、接続応答を送信し、TCPを接続状態とする(ステップS30)。
次に、図5のTCPsecのパッシブオープンにおける処理ステップS6の詳細について、図9の流れ図に基づいて説明する。この処理は、図5のステップS6に示されるように、受信パケットの処理がTCPsecの処理であると決定された場合の処理である。最初に、受信待ちをして、受信した受信パケットの解析がなされる(ステップS31)。続いてこの受信したパケットが正しいパケットであるか否か、つまりDoS攻撃におけるTCPプロトコル攻撃パターンでないかどうかが判断される(ステップS32)。このステップS32の判断の結果、不正パケットであると判定された場合にはその受信パケットを廃棄し(ステップS33)、ステップS31に戻り、次のパケットの受信を待つ。
判断ステップS32において、受信パケットが正しいパケットであると判断された場合は、続いてホストAとホストBの接続が完了しているかどうか(接続中かどうか)が判断される(ステップS34)。判断ステップS34において、ホストAとホストBが接続中であると判定された場合は、次に受信したパケットが切断要求(FIN)であるのか否かが判断される(ステップS35)。切断要求でなければ、今度は受信したパケットが切断応答(FIN・ACK)であるか否かが判断される(ステップS36)。そして、受信したパケットが切断要求でもなく、切断応答でもないということであれば、後述する図12に示されるTCPsecデータの送受信処理が行われ(ステップS37)、ステップS49に進む。次に、判断ステップS36で切断応答があった場合には、切断鍵が一致しているかどうかが判断される(ステップS38)。ここで、切断鍵とはホストAとホストBの間で図7の接続シーケンスにおけるネゴシエーションにおいて取り交わした共通鍵(秘密鍵)であり、この鍵が一致したときだけ両者間の通信を切断することができるものである。判断ステップS38で切断鍵が一致した場合には、ACKを送信して(ステップS39)、ホストAとホストB間のTCPsecを切断する(ステップS44)。判断ステップS38で切断鍵が一致しなかった場合には、不正パケットとしてパケットを廃棄し(ステップS41)、次の受信パケットを待つ。また、判断ステップS35において、受信パケットが切断要求(FIN)であると判断された場合も、切断鍵が一致しているか否かが判断される(ステップS40)。そして、切断鍵が一致しない場合は、受信パケットが不正なパケットとして廃棄され(ステップS41)、切断鍵が一致した場合は、切断応答(FIN・ACK)の送信が行われる(ステップS42)。ステップS42で切断応答が送信された場合には、相手方からの最終のACKを待ち(ステップS43)、この最終ACKを受信するとTCPsecを切断状態にして(ステップS44)、TCPsecパッシブオープンを終了する(ステップS45)。
判断ステップS34において、ホストAとホストBが接続中でないと判断された場合には、受信したパケットがパッシブオープンの許可ポートであるか否かが判断される(ステップS46)。そして受信パケットがパッシブオープンの許可ポートではない場合は、受信パケットを廃棄して(ステップS47)、ステップS31に戻り次のパケットを待つ。また、判断ステップS46おいて、受信パケットがパッシブオープン許可ポートになっているとされた場合は、後述する図13に示すTPCsecパッシブ接続処理が実行される(ステップS48)。
続いて、共通鍵と認証データに基づいて通信相手が正常、つまり正当な権限を持った相手であるか否かが判断される(ステップS49)。正常な相手であると判断されれば、ステップS31に戻り、次の受信パケットを待つが、通信相手が正常の相手ではないと判断されると、TPCsecの接続を強制切断し(ステップS50)、TCPsecのパッシブオープンの処理を終了する(ステップS51)。
次に、図6のステップS12に示す、TCPアクティブオープンの処理について図10の流れ図に基づいて説明する。
図10は、図6における処理するプロトコルがTCPであると決定した場合の処理を示す図であり、最初に、送信側ホストAから受信側ホストBに対して接続要求(SYN)が送信される(ステップS52)。この接続要求に対して受信側ホストBから接続応答(SYN・ACK)が送信されると、次に受信待ちをし、受信したパケットの解析が行われる(ステップS53)。次に、この受信したパケットが正しいパケットであるか否か、つまりDoS攻撃におけるTCPプロトコル攻撃パターンでないかどうかを判断する(ステップS54)。このステップS54における判断の結果、不正パケットであると判定された場合にはその受信パケットを廃棄し(ステップS55)、ステップS53に戻り、次のパケットの受信を待つ。
判断ステップS54において、受信パケットが正しいパケットであると判断された場合は、続いて送信側(アクティブ側)ホストAと受信側(パッシブ側)ホストBが、接続中かどうかが判断される(ステップS56)。この判断ステップS56において、接続中であると判定された場合は、次に受信パケットが送信側ホストAから受信側ホストBに対しての切断要求であるか否かが判断される(ステップS57)。これが切断要求でなければ、今度は受信側ホストBから送信側ホストAに対する切断応答(FIN・ACK)であるか否かが判断される(ステップS58)。切断要求でもなく切断応答でもないということになれば、TCPデータの送受信処理が行われ(ステップS59)、次の受信パケットを待つ。判断ステップS58でホストBからホストAへの切断応答であると判断されると、ホストAは切断を肯定するACKを送信し(ステップS60)、TCPを切断する(ステップS63)。
判断ステップS57において、受信したパケットが切断要求である場合は、ホストBからホストAに対して切断応答が送信され(ステップS61)、ホストBはホストAからの最終のACKの受信を待つ(ステップS62)。そして、ホストBがホストAから最終ACKを受信した後にTCPを切断状態にして(ステップS63)、TCPアクティブオープンを終了する(ステップS64)。
判断ステップS56において、送信側ホストAと受信側ホストBが接続中でないとされた場合には、受信したパケットがアクティブオープン許可ポートであるか否かが判定される(ステップS65)。そして受信パケットが許可されていない場合は、受信パケットを廃棄して(ステップS66)次のパケットを待つ。また、判断ステップS65において、受信パケットがアクティブオープン許可になっているとされた場合は、次に受信側ホストBからの接続応答があったか否かが判断され(ステップS67)、接続応答がなければ、パケットを廃棄して(ステップS66)次のパケットを待ち、受信側ホストBから接続応答がなされた場合には、TCPの接続状態として(ステップS68)、ステップS53に戻り、次の受信パケットを待つ。
次に、図6のステップS13のTCPsecアクティブオープンが開始された場合の詳細な処理について図11の流れ図に基づいて説明する。
図11の流れ図に示す処理は、図6のステップS13で処理するプロトコルがTCPsecであると決定した場合に開始されるものである。最初に、送信側ホストAから受信側ホストBに対して接続要求(SYN)が送信される(ステップS69)。これに対して、受信側ホストBから接続応答(SYN・ACK)があってパケットの受信が開始され、受信したパケットの解析が行われる(ステップS70)。
次に、受信パケットの解析の結果、受信したパケットが正しいTCPのパケットであるか否か、すなわち、DoS攻撃におけるTCPプロトコル攻撃パターンでないか否かが判断される(ステップS71)。この結果、不正パケットであると判定された場合には、そのパケットを廃棄(ステップS72)し、ステップS70に戻り次のパケットを待つ。
判断ステップS71において、受信したパケットが正しいTCPパケットであると判定された場合は、次に送信側ホストAと受信側ホストBの接続が完了しているかどうか(接続中かどうか)が判断される(ステップS73)。そしてホストAとホストBが接続中であれば、今度は受信したパケットが切断要求(FIN)であるか否かが判断される(ステップS74)。受信したパケットが切断要求ではないときは、次に受信側ホストBから切断応答があるかどうかが判断される(ステップS75)。切断要求もなく切断応答もない場合は、図12に示すTCPsecデータの送受信処理が行われ(ステップ76)、その後ステップS89に進む。
判断ステップS75で切断応答があった場合には、切断鍵が一致しているかどうかが判断される(ステップS77)。この切断鍵については図9において説明したとおりである。判断ステップS77で切断鍵が一致した場合には、送信側ホストAから受信側ホストBに対してACKを送信して(ステップS78)、ホストAとホストB間のTCPsecを切断する(ステップS83)。判断ステップS77で切断鍵が一致しなかった場合には、不正パケットとしてパケットを廃棄し(ステップS80)、次の受信パケットを待つ。また、判断ステップS74において、受信パケットが切断要求(FIN)であると判断された場合も、切断鍵が一致しているか否かが判断される(ステップS79)。そして、切断鍵が一致しない場合は、受信パケットが不正なパケットとして廃棄され(ステップS80)、切断鍵が一致した場合は、切断応答(FIN・ACK)の送信が行われる(ステップS81)。ステップS81で切断応答が送信された場合には、相手方からの最終のACKを待ち(ステップS82)、この最終ACKを受信するとTCPsecを切断状態にして(ステップS83)、TCPsecアクティブオープンを終了する(ステップS84)。
判断ステップS73において、送信側ホストAと受信側ホストBの接続が完了していない、つまり接続中でないとされた場合には、受信したパケットがアクティブオープン許可ポートであるか否かが判定される(ステップS85)。そして受信されたパケットが許可されていない場合は、その受信パケットを廃棄して(ステップS87)ステップS70に戻り、次のパケットを待つ。また、判断ステップS85において、受信パケットがアクティブオープン許可になっているとされた場合は、受信されるパケットが受信側ホストBからの接続応答(SYN・ACK)のパケットであるか否かが判断され(ステップS86)、接続応答のパケットでない場合は、パケットを廃棄して(ステップS87)次のパケットを待ち、判断ステップS86で接続応答のパケットであると判断された場合には、図14でその詳細を示すTCPsecアクティブ接続処理が行われる(ステップS88)。
ステップS88でTCPsecのアクティブ接続処理がなされると、次に受信側のホストBが正常な相手か否か、つまり接続を許可されている相手であるか否かが判断される(ステップS89)。そして、接続が許されている相手であると判断されれば、ステップS70に戻って次のパケットの受信を待ち、ステップS89で接続が許可されていない相手であると判断されると、TCPsecによる送受信を強制的に切断して(ステップS90)、TCPsecのアクティブオープンを終了する(ステップS91)。
次に、上述した図9ステップS37及び図11のステップS76が選択された場合のTCPsecデータの送受信処理の詳細について図12の流れ図に基づいて説明する。
まず、図9のステップS37及び図11のステップS76でTCPsecデータの送受信処理が開始すると、最初に、ホストAの上位アプリケーションからの送信要求があるか否かが判断される(ステップS92)。そして、ホストAの上位アプリケーションから送信要求があった場合は、送信側ホストAで送信データが暗号化され(ステップS93)、それに認証データが付加されて(ステップS94)、受信側ホストBに暗号化され認証データが付加されたパケットが送信される(ステップS95)。
次に、受信側ホストBで、受信データがあるか否かが判断され(ステップS96)、受信データがある場合には、受信データの復号化が行われる(ステップS97)。次に、この受信され復号化されたデータが正しいデータであるかどうかが判断される(ステップS98)。この判断は、復号化したデータと受信された認証データとを確認することによって行われるが、復号データを確認した結果、正しいデータでないと判定された場合には、TCP/TCPsecを強制的に切断する(ステップS99)。この強制切断は、受信したデータを廃棄するとともに、送信側に切断要求をすることによって行われる。判断ステップS98で、復号化したデータが正しいデータであると判定された場合には、受信データの取り込み、すなわち上位プロトコルスタックへのデータの配達が行われ(ステップS100)、TCPsecのデータ送受信処理が完了する(ステップS101)。
次に、図9のステップS48でTCPsecパッシブ接続処理が開始された場合の詳細の処理を図13の流れ図に基づいて説明する。
最初に、相手が正しい相手、つまり自コンピュータに接続する権限を持つコンピュータであるか否かを判断し(ステップS102)、正しい相手でない場合にはTCPsecの強制切断のための処理を実施する(ステップS103)。判断ステップS102において接続相手が正しい相手であると判断されれば、受信側ホストBから接続応答を送信する(ステップS104)。
そして、接続応答を送信してきた相手の情報が自コンピュータ内にあるかどうかを確認する(ステップS105)。相手情報がコンピュータ内にない場合は、本システム、すなわちTCP2をインストールする際に使用した、インストールサーバから相手情報を取得する(ステップS106)。または、第三者認証のサーバから相手情報を取得してステップS107に進む。この取得する情報としては、相手側のTCP2のID、ユーザID、パスワード、バイオメトリックス情報、機器固有情報、LAN接続機器情報等の内、1つ、若しくは、複数を使用することができる。なお、サーバからの取得情報を既に自コンピュータが保有している場合であっても、有効期限若しくは有効使用回数を超えているような場合には、改めて取得動作を行う必要がある。
次に、相手情報が正しい相手であるか否か、つまり、自分のコンピュータにアクセスすることを許容されている相手であるかどうかが判断される(ステップS107)。ここで、接続する相手が正しい相手であれば、TCPsecのパッシブ接続を完了する(ステップS108)が、正しい相手でない場合にはTCPsecの強制切断を行って接続を中止する(ステップS103)。
次に、図11のステップS88でTCPsecのアクティブ接続処理が開始された場合の詳細の処理を図14の流れ図に基づいて説明する。
図13のパッシブ接続処理の場合と同様に、最初に、接続要求をしてきた相手が正しい相手であるどうか、つまり自コンピュータにアクセス権限を持っている相手からの通信であるかどうかを判断する(ステップS109)。正当なアクセス権限を持たない相手からの通信であれば、TCPsecのアクティブ接続を強制切断して終了する(ステップS110)。
判断ステップS109で正しい相手であると判定されれば、送信側ホストから受信側ホストBに対して肯定的な接続応答(ACK)を送信する(ステップS111)。
次に、自コンピュータが相手側の情報を保有しているかどうかが判断される(ステップS112)。相手情報がコンピュータ内にない場合は、本システム、すなわちTCP2をインストールする際に使用した、インストールサーバから相手情報を取得する(ステップS113)。または、第三者認証のサーバから相手情報を取得してステップS114に進む。ここで、この取得する情報は、図13ステップS106と同様に、相手側のTCP2のID、ユーザID、パスワード、バイオメトリックス情報、機器固有情報、LAN接続機器情報等の内、1つ、若しくは、複数とすることができる。なお、サーバからの取得情報を既に自コンピュータが保有していたとしても、有効期限若しくは有効使用回数を超えている場合には、改めて取得動作を行う必要がある。
次に、相手情報が正しい相手であるか否か、つまり、自分のコンピュータにアクセスすることを許容されている相手であるかどうかが判断される(ステップS114)。接続する相手が正しい相手であれば、TCPsecのアクティブ接続を完了する(ステップS115)が、正しい相手でない場合にはTCPsecの強制切断を行って接続を中止する(ステップS110)。
以上、本発明のTCP2のうち、TCP/TCPsecを用いたパッシブオープン及びアクティブオープンの通信処理について説明した。
次に、図3で示すような、本発明の第2の実施形態であるUDP/UDPsecを用いた通信システム及び通信方法について説明する。
図15は、本発明の第2の実施の形態に用いられるUDP/UDPsecのパッシブオープン処理について説明するための流れ図である。
この処理は、上位アプリケーション・プログラムにより開始される(ステップ120)。最初に、オープンするポート番号の解析、すなわちポート番号の定義状態が確認される(ステップ121)。次に、このポート番号がUDPsecオープンになっているか否かが判断される(ステップS122)。UDPsecがオープンになっていない場合はUDPがオープンになっているかどうかが判断される(ステップ123)。そして、UDPsec、UDPが両方ともオープン許可になっていない場合は、UDP/UDPsecは終了する(ステップS126)。判断ステップS123で、UDPがオープン許可になっている場合、つまりUDPsecはオープン許可になっていないけれどもUDPがオープン許可になっている場合は、図18に示すUDPオープン処理が実施される(ステップS124)また、判断ステップS122においてUDPsecがオープンである場合は、UDPがオープンであるか否かにかかわらず、UDPsecのオープン処理が実施されて(ステップS125)、UDP/UDPsecオープン処理は終了する(ステップS126)。なお、上位であるアプリケーションからは、UDPでオープンを行っていたとしても、TCP2の判断により、UDPsec若しくは、UDPで通信することも可能である。
次に、本発明の第2実施の形態の1つであるUDP/UDPsecを用いたユニキャスト通信におけるシーケンス処理について図16に基づいて説明する。
図16は、標準のUDP、及び、本発明のTCP2の中のUDPsecにおけるユニキャスト通信の開始シーケンス、データ通信シーケンスのパケット(ヘッダと、ペイロードで構成する)及び、その流れを説明した図である。
図16(a)が標準のUDPを用いた通信シーケンスを示し、図16(b)は、UDPsecによる暗号化通信のシーケンスを示す。
図16(a)の標準のUDPは、ホストA、ホストBともにアプリケーションがUDPオープンしている例を示している。ホストBのアプリケーションがUDPオープンをすると、UDPオープン処理(図15のステップS124及び図18参照)を開始する。また、同様にホストAのアプリケーションがUDPオープンした場合も上記のUDPオープン処理を開始する。これにより、UDPのデータ通信を行うことが可能となる。ここで図16(a)に示すユニキャスト通信では、ホストA、ホストBの何れからもデータの送信が可能である。
次に、本発明のTCP2の暗号化方式の1つであるUDPsecによる通信処理のシーケンスを説明する。
図16(b)は、本発明のTCP2が持つUDPsecにより暗号化通信する場合の例であるが、この例は、ホストA、ホストBともにアプリケーションがUDPオープンし、TCP2がUDPsecでオープンと判断したケースである。
ホストBがUDPsecオープンをすると、UDPsecオープン処理(図15のステップS125及び図19を参照)が開始される。また、ホストAがUDPsecオープンした場合も同様にUDPsecオープン処理が開始される。そして、UDPsecのデータ通信が実現可能となる。
この図16(b)に示したUDPsecを用いたユニキャスト通信においても、UDPのときと同様に、ホストA側又はホストB側の何れからもデータを送信することができる。図16(b)の場合、まず、ホストAのアプリケーションからUDPデータの送信要求があったとして説明する。アプリケーションからUDPデータの送信要求を受け取ると、ホストBは、UDPsecユニキャスト受信開始処理を開始し、ネゴシエーションを開始する。ネゴシエーションをして、相手が正しい相手であれば、ネゴシエーションを完了して、アプリケーションからUDPデータの送信要求をUDPsecデータ(暗号データ)として送信する。このUDPsecユニキャスト通信では、データを受信した側からACK(肯定応答)を返さない。このため、送達確認とデータの保証をする機能はないが、その分データの通信が高速になり、大容量の画像データなどの通信に適している。
図17は、標準UDPと本発明のTCP2の暗号化方式であるUDPsecを用いたブロードキャスト通信の開始シーケンス、データ通信シーケンスのパケット(ヘッダと、ペイロードで構成する)及び、その流れを説明した図である。
図17(a)が、標準のUDP、図17(b)が本発明のTCP2のUDPsecによる通信のシーケンス図である。
図17(a)の標準のUDPは、ホストA、ホストBともにアプリケーションがUDPオープンしている。そして、ホストBのアプリケーションがUDPオープンをすると、UDPオープン処理(図15のステップS124及び図18参照)を開始する。また、ホストAのアプリケーションがUDPオープンした場合も、同様にUDPオープン処理を開始する。これにより、UDPのデータ通信を行うことができる状態となる。
また、データはホストA、ホストBの何れも発生することはできるが、図17(a)では、ブロードキャスト通信ということもあって、ホストA側からホストB側に一方向的にデータが流れる図としている。データを受信したホストB側からACK(肯定応答)を返さないため、送達確認とデータの保証をする機能は持たない。なお、データをブロードキャストする場合には、IPアドレスのサブネットアドレスをオール1にすることで、データをブロードキャストすることが可能となる。
次に、図17(b)のUDPsecによる暗号化通信について説明する。この場合も、ホストA、ホストBともにアプリケーションがUDPオープンし、TCP2がUDPsecでオープンとしている。
ホストBがUDPsecオープンをすると、UDPsecオープン処理(図15のステップS125及び図19)を開始する。また、ホストAがUDPsecオープンしても同様に、UDPsecオープン処理を開始する。これにより、UDPsecのデータ通信を行うことができる状態となる。
図17(b)示すように、ホストAのアプリケーションからUDPのブロードキャストデータ(IPアドレスがブロードキャストを示しているデータ)の送信要求があった場合を説明する。アプリケーションからUDPのブロードキャストデータの送信要求を受け取ると、ネゴをしないで、UDPsecで暗号データとして不特定ホストに配信する。ホストBは、ブロードキャストデータを受け取ると、後述する図19のステップS141のUDPsecブロードキャスト受信開始処理を開始する。ホストAとホストB間でネゴシエーションを開始し、相手が正しい相手であれば、ネゴシエーションを完了して、ブロードキャストデータを復号化して、アプリケーションへ送る。このとき、データを受信した側からACK(肯定応答)を返さないため、送達確認とデータの保証をする機能はない。
次に、図18に基づいて、図15のステップS124の標準UDPのオープン処理について説明する。
図18は、UDPのオープン処理の流れ図であり、この処理は図15のステップS124で、処理するプロトコルがUDPと決定した場合に開始される処理である。
最初に、アプリケーションからの送信要求、又は受信パケットを待ち、送信要求又はパケットを受信したときに、パケットの解析を行う(ステップS127)。ここで、受信パケットだけでなく送信要求も解析するのは、悪意を持った第三者が送信するホストA踏み台にして、ホストAを加害者として不特定多数に通信することを防ぐためである。この送受信パケットの解析を行った後に、正しいパケットであるかどうか、つまりDoS攻撃におけるUDPプロトコル攻撃パターンでないかどうかを判断する(ステップS128)。この判断ステップS128において、不正パケットであると判定された場合には、パケットを廃棄し(ステップS129)、次のパケットを待つ。
判断ステップS128で正しいパケットであると判定された場合は、UDPデータの送受信処理が行われ(ステップS130)、続いて上位アプリケーションからUDPのクローズ要求があったかどうかが判断される(ステップS131)。上位アプリケーションよりUDPクローズ要求があった場合には、UDPオープン処理を終了する(ステップS132)。
次に、図19に基づいて、図15のステップS125のUDPsecのオープン処理について説明する。図19は、UDPsecのオープンにおける処理の流れ図であり、図15のステップS125に示すように、処理するプロトコルがUDPsecと決定した場合にこの処理が開始される。
最初に、アプリケーションからの送信要求又は受信パケットを待ち、送信要求又は受信したパケットの解析が行われる(ステップS133)。次に、上位アプリケーションからの送信要求あるいは送受信パケットが正しいUDPパケットであるか否か、つまりDoS攻撃におけるTCPプロトコル攻撃パターンでないかどうかを判断する(ステップS134)。判断ステップS134において正しいUDPパケットではないと判断された場合は、パケットを廃棄し(ステップS135)、次のパケットを待つ。
判断ステップS134において、正しいUDPパケットであると判定された場合は、次にUDPsecネゴシエーションがなされた受信パケットであるか否かが判断される(ステップS136)。
そして、この結果、UDPsecのネゴシエーションパケットであると判断された場合は、後述する図23で示すUDPsecユニキャスト受信開始処理が行われ(ステップS137)、ステップS147へ進む。
また、判断ステップS136において、UDPsecのネゴシエーションパケットではないと判断されると、続いてブロードキャスト通信であるか否かを判断する(ステップS138)。そして、ブロードキャスト通信であると判定された場合は、通信の開始パケットであるか、つまりオープン後の最初の通信パケットであるか否かを判断し(ステップS139)、開始パケットでない場合は図22で説明するUDPsecデータ送受信処理を行う(ステップS144)。判断ステップS139において通信の開始パケットであると判定された場合は、次に送信パケットであるか否かが判断される(ステップS140)。そして、この結果、送信パケットであれば、上述したUDPsecデータ送受信処理が行われる(ステップS144)が、送信パケットではないと判定された場合は、後述する図20のUDPsecブロードキャスト受信開始処理が実施される(ステップS141)。この受信開始処理の後で、送信されたパケットが正しい相手からのものであるかどうかを判断する(ステップS142)。そして、判断ステップS142で、送信されたパケットが正しい相手からのものではないと判断されると、パケットを廃棄し(ステップS143)、次のパケットを待つ。判断ステップS142で、正しい相手であると判定された場合には、図22で示すUDPsecデータ送受信処理が行われる(ステップS144)。
また、判断ステップS138において、ブロードキャスト通信でない、すなわちユニキャスト通信であると判定された場合は、通信の開始パケット、すなわちオープン後の最初の通信パケットであるか否かが判断される(ステップS145)。この結果、開始パケットではないと判断された場合には、図22で詳述するUDPsecデータ送受信処理がなされる(ステップS144)。
また、判断ステップS145で、オープン後の最初の通信パケットであると判断された場合は、図21で後述するUDPsecユニキャスト送信開始処理が行われる(ステップS146)。その後、通信の相手が、正しい相手であるかを判断し(ステップS147)、正しい相手である場合には、引き続きUDPsecデータ送受信処理がなされ(ステップS144)、正しい相手ではないと判定された場合には、受信したパケットを廃棄し(ステップS148)、ステップS133に戻って次のパケットを待つ。
次に、図19のステップS141のUDPsecブロードキャスト受信の開始における処理について、図20に示す流れ図に基づいて説明する。
最初に、ブロードキャストを配信してきた相手の情報を自コンピュータが保有しているか否かを判断する(ステップS149)。そして、情報を保有していない場合には、本システムをインストールする際に使用した、インストールサーバから相手情報を取得する(ステップS150)。または、第三者認証のサーバから情報を取得する。この取得する情報は、相手のTCP2のID、ユーザID、パスワード、バイオメトリックス情報、機器固有情報、LAN接続機器情報等の内、1つ、若しくは、複数を使用する。次に、ブロードキャストを配信してきた相手が正しい相手であるかどうかを判断する(ステップS151)。そして、正しい相手であると判断されれば、UDPsecでの受信が可能であることになり、UDPsecブロードキャストの通信開始処理を終了し(ステップS153)、受信可能であることを図19のステップS142へ指示する。判断ステップS151で正しい相手ではないとされた場合には、通信の拒否を行い(ステップS152)、データを取得しない旨を同じく図19のステップS142へ指示する。なお、ステップS149で仮に相手方に関する取得情報があったとしても有効期限、若しくは、有効使用回数を超えている場合には、改めてステップS150で相手情報の取得動作を行ったほうがよい。
次に、図19のステップS146のUDPsecユニキャスト送信開始処理について、図21に示す流れ図に基づいて説明する。
最初に、送信する相手の情報を自コンピュータが保有しているか否かを確認する(ステップS154)。そして、情報を保有していない場合には、図20のステップS150と同様な方法で相手情報を取得する(ステップS155)。この取得する情報も図20の場合と同じである。
次に、送信する相手が正しい相手であるかどうかを判断する(ステップS156)。そして、正しい相手であると判断されれば、UDPsecでの送信が可能であることになり、UDPsecユニキャストの通信開始処理を終了し(ステップS158)、送信可能であることを図19のステップS147へ指示する。判断ステップS156で正しい相手ではないとされた場合には、通信の拒否を行い(ステップS157)、データを取得しない旨を図19のステップS147へ指示する。
次に、図22に基づいて、図19のステップS144に示すUDPsecデータの送受信処理について説明する。
最初に、ホストAのアプリケーションから送信要求があったか否かを判断する(ステップS159)。送信要求があれば送信側ホストAにおいてデータを暗号化し(ステップS160)、この暗号化したデータに認証データが付加されて(ステップS161)、受信側ホストBに暗号化され認証データが付加されたパケットが送信される(ステップS162)。
次に、受信側ホストBで、受信データがあるか否かが判断され(ステップS163)、受信データがある場合には、受信データの復号化が行われる(ステップS164)。次に、この受信され復号化されたデータが正しいデータであるかどうかが判断される(ステップS165)。この判断は、復号化したデータと受信された認証データとを確認することによって行われるが、復号データを確認した結果、正しいデータでないと判定された場合には、UDP/UDPsecを強制的に切断する(ステップS166)。判断ステップS165で、復号化したデータが正しいデータであると判定された場合には、受信データの取り込み、すなわち上位プロトコルスタックへのデータの配達が行われ(ステップS167)、UDPsecのデータ送受信処理が完了する(ステップS168)。
次に、図23の流れ図に基づいて、図19のステップS137に示すUDPsecユニキャスト受信の開始処理について説明する。
最初に、ユニキャストで受信したパケットの相手情報を自コンピュータが保有しているか否かを判断する(ステップS169)。相手情報を持っていない場合には、本システムをインストールする際に使用した、インストールサーバあるいは第三者認証のサーバから相手情報を取得する(ステップS170)。取得する情報としては、図20のステップS150あるいは図21のステップS155と同じであり、相手のTCP2のID、ユーザID、パスワード、バイオメトリックス情報、機器固有情報、LAN接続機器情報等の内、1つ、若しくは、複数がこれに相当する。
次に、ユニキャストを送信してきた相手が正しい相手であるか否かを判断する(ステップS171)。正しい相手であると判定されれば、UDPsecでの受信が可能であることを図19のステップS147へ伝えてUDPsecブロードキャスト通信開始処理を終了する(ステップS173)。判断ステップS171で正しい相手ではないと判断された場合には、データを取得しない旨を図19のステップS147へ伝え、通信を拒否する(ステップS172)。
以上、本発明の第1の実施形態であるTCPsecを用いた暗号化処理及び本発明の第2の実施形態であるUDPsecを用いた暗号化処理について流れ図及びシーケンス図に基づいて詳しく説明した。
次に、本発明のTCP2が、従来のIPsecあるいはSSLと比べて如何に優位であるかという点について、表2及び図24に基づいて説明する。
表2は、表1のIPsecとSSLの機能比較表にTCP2の機能を追加して示したものである。
この表2から明らかなように、IPsec及びSSLが持っている様々な問題点(これらについては背景技術において示した)を、TCP2を採用することによりことごとく解決していることが分かる。
例えば、SSLでは対応が困難であった、クライアント−クライアント間の通信、TCP/IPプロトコルへのDoS攻撃、全てのUDPポートあるいはTCPポートのセキュアな通信、ソケットプログラムを変更しなければならなかったアプリケーションでの制限などに、TCP2は完全に対応している。
また、IPsecでは対応が困難であった、エラーが多発する劣悪な環境下での通信、異なったLAN間での通信、複数キャリア経由の接続、PPPモバイル環境、ADSL環境での通信に対しても、TCP2は完全にサポートしている。
さらに、モバイル環境下やADSL環境下でVoIP(Voice over Internet Protocol)を使ったインターネットに対しては、IPsec及びSSLとも表1及び表2に示すように問題があるが、本発明のTCP2によれば、どちらの環境下でも対応可能である。
また、異なったLAN間や複数キャリアにまたがったLAN間でVoIPを使ったインターネット電話に対しても、IPsecとSSLでは対応不可能であったが、本発明のTCP2によれば完全に対応することができる。
図24は、TCP2の優位性を説明するための図であるが、セキュリティのないプロトコルスタック(a)に、従来のSSLを適用したケース(b)と、IPsecを適用したケース(c)と、本発明のTCP2(TCPsec/UDPsec)を適用したケース(d)を比較して示している。図24(b)のSSLは既に述べたように、セッション層(第5層)のソケットに設けられているので、上位のアプリケーションに対する互換性がないのである。このため、SSL自体、上述のような問題を抱えることになっている。また図24(c)のIPsecは、ネットワーク層(第3層)にあり、IP層での互換性がないため、ネットワークを構成する上で上述したような様々な制約を受けることになる。これに対して、図24(d)のTCP2(TCPsec/UDPsec)は、トランスポート層(第4層)に導入する暗号化技術であり、このためアプリケーションから見るとソケットをそのまま利用することができ、またネットワークから見るとIPもそのまま利用できるのでネットワークを構成する上での制約は受けない。
以上のように、本発明のTCP2を用いた暗号化通信システム、暗号化通信方法は、既存の暗号化処理システムに比べても、特にデータの漏洩、改ざん、なりすまし、進入そして攻撃に対して極めて高いセキュリティ機能を有するものである。
なお、本発明は、以上説明した実施の形態に限定されるものではなく、特許請求項に記載した本発明の要旨を逸脱しない範囲において、さらに多くの実施形態を含むものであることは言うまでもない。
本発明の通信システムに用いられるTCP2のプロトコルスタックを示す図である。 本発明のTCP2を用いた通信システムの第1の実施形態(TCPsecによるECアプリケーション)におけるシステムの全体構成図である。 本発明のTCP2を用いた通信システムの第2の実施形態(UDPsecによる放送アプリケーション)におけるシステムの全体構成図である。 本発明のTCP2の中の3つのプロトコルスタックのパケット構造とその暗号化範囲及び認証範囲を示す図である。(a)、(b)、(c)は、それぞれTCPsec/IPsec、TCPsec/IP、UDPsec/IPのパケット構造、及び各暗号化範囲、完全性認証の適用範囲を示す図である。 本発明のTCP2の実施形態であるTCP/TCPsecパッシブオープンの処理を示す流れ図である。 本発明のTCP2の実施形態であるTCP/TCPsecアクティブオープンの処理を示す流れ図である。 標準TCPと本発明のTCPsecのホストA(アクティブオープン)とホストB(パッシブオープン)間の通信のやり取りを示すシーケンス図である。 図5のTCPパッシブオープン処理S5の詳細を示す流れ図である。 図5のTCPsecパッシブオープン処理S6の詳細を示す流れ図である。 図6のTCPアクティブオープン処理S12の詳細を示す流れ図である。 図6のTCPsecアクティブオープン処理S13の詳細を示す流れ図である。 図9のTCPsec送受信処理S37及び図11のTCPsec送受信処理S76の詳細を示す流れ図である。 図9のTCPsecパッシブ接続処理S48の詳細を示す流れ図である。 図11のTCPsecアクティブ接続処理S88の詳細を示す流れ図である。 本発明のTCP2の実施形態であるUDP/UDPsecオープンの処理を示す流れ図である。 本発明のTCP2を用いたUDP/UDPsecユニキャスト通信のシーケンス図である。 本発明のTCP2を用いたUDP/UDPsecブロードキャスト通信のシーケンス図である。 図15のUDPオープン処理S124の詳細を示す流れ図である。 図15のUDPsecオープン処理S125の詳細を示す流れ図である。 図19のUDPsecブロードキャスト受信開始処理S141の詳細を示す流れ図である。 図19のUDPsecユニキャスト送信開始処理S146の詳細を示す流れ図である。 図19のUDPsecデータ送受信処理S144の詳細を示す流れ図である。 図19のUDPsecユニキャスト受信開始処理S137の詳細を示す流れ図である。 本発明のTCP2を従来のIPsec又はSSLを適用した場合と比較したメリットを説明するための図である。 従来のIPsecを用いた標準的な通信のプロトコルスタックを示す図である。 従来のSSLを用いた標準的な通信のプロトコルスタックを示す図である。
符号の説明
1・・・ホストコンピュータ、
2・・・ネットワーク制御機器(ルータ)
3a、3b、3c・・・クライアント端末
4a、4b、4c・・・クライアント端末
11・・・NICドライバ
12・・・ARP 又は ARP on CP
13・・・IPエミュレータ
13b・・・IPsec on CP
15・・・TCPエミュレータ
15b・・・TCPsec on CP
16・・・UDPエミュレータ
16b・・・UDPsec on CP
17・・・ソケット(Socket)
41・・・IPヘッダ
42・・・ESPヘッダ
43・・・TCPヘッダ
44・・・TCPsec付加情報
45・・・データ(ペイロード)
46・・・TCPsec付加トレーラ
47・・・TCPsec付加認証データ
48・・・ESPトレーラ
49・・・ESP認証データ

Claims (27)

  1. トランスポート層に位置するプロトコルを暗号化して通信を行う通信システムであって、
    通信路の両端で対応する暗号化及び復号化ロジックを取り決める取決め手段と、
    送受信する情報単位としてのパケットのうち、少なくとも前記プロトコルのペイロードを前記取決め手段により取り決めた暗号化ロジックに従って暗号化して送信するプロトコル暗号化手段と、
    受信した前記暗号化されたプロトコルのペイロードを前記取決め手段により取り決めた復号化ロジックに従って復号化するプロトコル復号化手段と、を備え、
    前記トランスポート層のプロトコルを用いて前記暗号化及び復号化ロジックに基づいた通信を行うことを特徴とする通信システム。
  2. トランスポート層に位置するプロトコルを暗号化して通信を行う通信システムに用いられる暗号化及び復号化ロジックを取り決める取決め手段を備える第1及び第2の通信装置と、前記暗号化及び復号化ロジックを取り決める取決め手段を備えない第3の通信装置とがそれぞれネットワークに接続されてなる通信システムであって、
    前記第1及び第2の通信装置は、送受信する情報単位のパケットのうち、少なくとも前記プロトコルのペイロードを前記取決め手段により取り決めた暗号化ロジックに従って暗号化して送信するプロトコル暗号化手段と、受信した前記暗号化されたプロトコルのペイロードを前記取決め手段により取り決めた復号化ロジックに従って復号化するプロトコル復号化手段からなる暗号化プロトコル処理手段と、前記暗号化及び復号化ロジックを伴わない通常のプロトコル処理手段の両方を備え、
    前記第3の通信装置は、前記暗号化及び復号化ロジックを取り決めるための取決め手段を備えない通常のプロトコル処理手段のみを備え、
    前記第1の通信装置が、前記第2の通信装置と通信するときは、前記暗号化及び復号化ロジックの取決め手段により、前記暗号化プロトコル手段を選択し、前記暗号化プロトコル手段により通信するとともに、
    前記第1の通信装置が前記第3の通信装置と通信するときは、前記暗号化及び復号化ロジックの取決め手段により、前記暗号化及び復号化を伴わない前記通常プロトコル処理手段を選択し、前記通常プロトコル処理手段により、前記第3の通信装置との通信を行うことを特徴とする通信システム。
  3. トランスポート層に位置するプロトコルを暗号化して通信する通信システムに用いられる暗号化及び復号化ロジックを取り決める取決め手段を備える第1及び第2の通信装置と、前記暗号化及び復号化ロジックを取り決める取決め手段を備えない第3の通信装置とがそれぞれネットワークに接続されてなる通信システムであって、
    前記第1及び第2の通信装置は、送受信する情報単位のパケットのうち、少なくとも前記プロトコルのペイロードを前記取決め手段により取り決めた暗号化ロジックに従って暗号化して送信するプロトコル暗号化手段と、受信した前記暗号化されたプロトコルのペイロードを前記取決め手段により取り決めた復号化ロジックに従って復号化するプロトコル復号化手段からなる暗号化プロトコル処理手段と、前記暗号化及び復号化ロジックを伴わない通常のプロトコル処理手段の両方を備え、
    前記第3の通信装置は、前記暗号化及び復号化ロジックを取り決めるための取決め手段を備えない通常のプロトコル処理手段のみを備え、
    前記第1の通信装置が、前記第2の通信装置と通信するときは、前記暗号化及び復号化ロジックの取決め手段により、前記暗号化及び復号化ロジックの取決め手段により、前記暗号化プロトコル手段を選択し、前記暗号化プロトコル手段により通信するとともに、
    前記第1の通信装置が、前記第3の通信装置と通信するときは、前記暗号化及び復号化ロジックの取決め手段により、前記第3の通信装置との通信を行わないことを決定し、前記第3の通信装置との通信を行わないようにしたことを特徴とする通信システム。
  4. 前記トランスポート層に位置するプロトコルはTCP又はUDPであり、該TCP又はUDPに暗号化及び復号化のための処理を施すことを特徴とする請求の範囲1〜3のいずれか1項に記載の通信システム。
  5. 前記暗号化及び復号化ロジックの取決め手段による取決め候補となりうる暗号化及び復号化ロジックをメモリに記憶ないし回路に実装し、該記憶ないし実装した取決め候補となりうる暗号化及び復号化ロジック定期的に変更するロジック変更手段をさらに備えたことを特徴とする請求の範囲1〜4のいずれか1項に記載の通信システム。
  6. 前記暗号化及び復号化ロジックの取決め手段が、前記暗号化及び復号化ロジックに関連して、暗号化をしないで平文を取り扱う旨を取り決めることができるようにした請求の範囲1〜5のいずれか1項に記載の通信システム。
  7. トランスポート層にあるTCP又はUDPに該当するプロトコルを暗号化して通信する通信システムであって、
    通信路の両端で対応する完全性認証ロジックを取り決める完全性認証取決め手段と、
    送受信する情報単位であるパケットのうち、少なくとも前記TCP又はUDPに該当するプロトコルのペイロードを前記完全性認証取決め手段により取り決めた完全性認証ロジックに従って完全性認証情報を付加して送信するプロトコル完全性認証情報付加手段と、
    受信した該完全性認証情報付加されたプロトコルを前記完全性認証取決め手段により取り決めた完全性認証ロジックに従って完全性認証するプロトコル完全性認証手段と、を備え、
    前記トランスポート層にあるTCP又はUDPプロトコルを用いて前記完全性認証ロジックに基づいた通信を行うことを特徴とする通信システム。
  8. トランスポート層のTCP又はUDPを用いて完全性認証の取決めを行う完全性認証取決め手段を備える第1及び第2の通信装置と、前記完全性認証取決め手段を備えない第3の通信装置とがそれぞれネットワークに接続されてなる通信システムであって、
    前記第1及び第2の通信装置は、前記完全性認証情報を付加してTCP又はUDPを処理する完全性認証プロトコル処理手段と、前記完全性認証情報の付加を行わない通常のTCP又はUDPを処理する通常プロトコル処理手段の両方を備え、
    前記第3の通信装置は、前記完全性認証を伴わない通常のプロトコル処理手段のみを備え、
    前記第1の通信装置が、前記第2の通信装置と通信するときは、前記完全性認証取決め手段により、前記完全性認証情報を付加した完全性認証プロトコル手段により通信するとともに、前記第1の通信装置が前記第3の通信装置と通信するときには、前記完全性認証情報を付加しないことを決定し、前記通常プロトコル処理手段により通信を行うことを特徴とする通信システム。
  9. トランスポート層のTCP又はUDPを用いて完全性認証の取決めを行う完全性認証取決め手段を備える第1及び第2の通信装置と、前記完全性認証取決め手段を備えない第3の通信装置とがそれぞれネットワークに接続されてなる通信システムであって、
    前記第1及び第2の通信装置は、前記完全性認証情報を付加してTCP又はUDPを処理する完全性認証プロトコル処理手段と、前記完全性認証情報の付加を行わない通常のTCP又はUDPを処理する通常プロトコル処理手段の両方を備え、
    前記第3の通信装置は、前記完全性認証を伴わない通常のプロトコル処理手段のみを備え、
    前記第1の通信装置が、前記第2の通信装置と通信するときは、前記完全性認証取決め手段により、前記完全性認証情報を付加する完全性認証プロトコル処理手段により通信するとともに、前記第1の通信装置が、前記第3の通信装置と通信するときは、前記完全性認証取決め手段により通信を行わないことを決定することを特徴とする通信システム。
  10. 前記完全性認証取決め手段による取決め候補となりうる完全性認証ロジックをメモリに記憶ないし回路に実装しており、該記憶ないし実装した完全性認証ロジックを定期的に変更する完全性認証ロジック変更手段をさらに備えた、請求の範囲7〜9のいずれか1項に記載の通信システム。
  11. 前記完全性認証取決め手段による前記取決めは、送信データに前記完全性認証情報を付加するか、又は前記完全性認証情報を付加しない旨を取り決めるものである請求の範囲7〜10のいずれか1項に記載の通信システム。
  12. トランスポート層に位置するプロトコルを暗号化して通信を行う通信装置であって、
    通信のための暗号化及び復号化ロジックを取り決める取決め手段と、送信する情報単位としてのパケットのうち、少なくとも前記プロトコルのペイロードを前記取決め手段により取り決めた暗号化ロジックに従って暗号化して送信するプロトコル暗号化手段と、 受信した前記暗号化されたプロトコルのペイロードを前記取決め手段により取り決めた復号化ロジックに従って復号化するプロトコル復号化手段とからなる暗号化プロトコル処理手段と、
    前記暗号化及び復号化を伴わない通常のプロトコルを処理する通常プロトコル処理手段の両方を備え、
    前記暗号化及び復号化ロジックの取決め手段により、通信相手に応じて前記暗号化プロトコル処理手段又は前記通常プロトコル処理手段を選択可能としたことを特徴とする通信装置。
  13. トランスポート層に位置するプロトコルを暗号化して通信を行う通信装置であって、
    通信のための完全性認証ロジックを取り決める完全性認証取決め手段と、
    送受信する情報単位であるパケットのうち、少なくとも前記TCP又はUDPに該当するプロトコルのペイロードを前記完全性認証取決め手段により取り決めた完全性認証ロジックに従って完全性認証情報を付加して送信するプロトコル完全性認証情報付加手段と、
    受信した該完全性認証情報付加されたプロトコルを前記完全性認証取決め手段により取り決めた完全性認証ロジックに従って完全性認証するプロトコル完全性認証手段と、を備え、
    前記トランスポート層にあるTCP又はUDPプロトコルを用いて前記完全性認証ロジックに基づいた通信を行うことを特徴とする通信装置。
  14. トランスポート層のTCP又はUDPに該当するプロトコルを暗号化して通信する通信方法であって、
    通信路の両端で対応する暗号化・復号化ロジックを事前にもしくは動的に取り決める取決めステップと、
    送受信する情報単位となるパケットのうち、少なくとも前記TCP又はUDPのペイロードに該当するプロトコルを前記取決めステップにより取り決めた暗号化ロジックに従って暗号化して送信するプロトコル暗号化ステップと、
    受信した暗号化されたプロトコルを前記取決めステップにより取り決めた復号化ロジックに従って復号化するプロトコル復号化ステップと、を含み、
    前記トランスポート層のTCP又はUDPに該当するプロトコルに暗号化処理を施して通信することを特徴とする通信方法。
  15. トランスポート層のTCP又はUDPに該当するプロトコルを暗号化して通信する通信方法に用いられる暗号化及び復号化ロジックを取り決める取決め手段を備える第1及び第2の通信装置と、前記暗号化及び復号化ロジックを取り決める取決め手段を備えない第3の通信装置とがそれぞれネットワークに接続されてなる通信方法であって、
    前記第1の通信装置から前記第2の通信装置へ通信するときには、前記TCP又はUDPに該当するプロトコルをのペイロードを前記取決め手段により取り決めた暗号化ロジックに従って暗号化して通信するとともに、
    前記第1の通信装置が前記第3の通信装置と通信するときは、前記TCP又はUDPプロトコルのペイロードを前記取決め手段により取り決めた暗号化ロジックに従って暗号化して送信しないことを決定し、前記暗号化ロジックを伴わない通常のTCP又はUDPプロトコルで通信することを特徴とする通信方法。
  16. トランスポート層のTCP又はUDPに該当するプロトコルを暗号化して通信する通信方法に用いられる暗号化及び復号化ロジックを取り決める取決め手段を備える第1及び第2の通信装置と、前記暗号化及び復号化ロジックを取り決める取決め手段を備えない第3の通信装置とがそれぞれネットワークに接続されてなる通信方法であって、
    前記第1の通信装置から前記第2の通信装置へ通信するときには、前記TCP又はUDPに該当するプロトコルのペイロードを前記取決め手段により取り決めた暗号化ロジックに従って暗号化して通信するとともに、
    前記第1の通信装置が前記第3の通信装置と通信するときは、前記取決めステップにより通信を行わないことを決定し、前記第3の通信装置との通信を行わないことを特徴とする通信方法。
  17. 前記取決めステップにおいて取決め候補となりうる暗号化及び復号化ロジックをメモリないし回路に記憶しておき、該記憶する暗号化及び復号化ロジックの内容を定期的に変更することを特徴とする請求の範囲14〜16のいずれか1項に記載の通信方法。
  18. 前記取決めステップにおいて、暗号化及び復号化ロジックについて暗号化をしないで平文を取り扱う旨を取り決めることができる、請求の範囲14〜17のいずれか1項に記載の通信方法。
  19. 前記取決めステップより前に、通信相手を認証するステップをさらに含む請求の範囲14〜18のいずれか1項に記載の通信方法。
  20. トランスポート層にあるTCP又はUDPに該当するプロトコルを暗号化して通信する通信方法であって、
    通信路の両端で対応する完全性認証ロジックを事前に取り決める完全性認証取決めステップと、
    送受信する情報単位のパケットのうち、少なくとも前記TCP又はUDPのペイロードに該当するプロトコルを前記完全性認証取決めステップにより取り決めた完全性認証ロジックに従って完全性認証情報を付加して送信するプロトコル完全性認証情報付加ステップと、
    受信した該完全性認証情報付加されたプロトコルを前記完全性認証取決めステップにより取り決めた完全性認証ロジックに従って完全性認証するプロトコル完全性認証ステップと、 を含み、
    前記トランスポート層にある前記TCP又はUDPプロトコルに前記完全性認証情報を付加して通信することを特徴とする通信方法。
  21. トランスポート層のTCP又はUDPを用いて完全性認証の取決めを行う完全性認証取決め手段を備える第1及び第2の通信装置との間、若しくは前記完全性認証取決め手段を備える第1又は第2の通信装置と前記完全性認証取決め手段を備えない第3の通信装置との間でネットワークを介して通信する通信方法であって、
    完全性認証プロトコルを搭載した前記第1の通信装置が、同じく完全性認証プロトコルを搭載した前記第2の通信装置と通信するときは、前記完全性認証取決め手段により、前記完全性認証情報を付加したTCP又はUDPを処理する完全性認証プロトコル処理を行って送信し、
    前記完全性認証プロトコルを搭載した前記第1又は第2の通信装置が、前記完全性認証プロトコルを搭載しない前記第3の通信装置と通信するときは、前記完全性認証取決め手段により、前記完全性認証情報を付加しないことを決定し、通常のTCP又はUDPを処理する通常プロトコル処理を行って通信を行うことを特徴とする通信方法。
  22. トランスポート層のTCP又はUDPを用いて完全性認証の取決めを行う完全性認証取決め手段を備える第1及び第2の通信装置との間、若しくは前記完全性認証取決め手段を備える第1又は第2の通信装置と前記完全性認証取決め手段を備えない第3の通信装置との間でネットワークを介して通信する通信方法であって、
    完全性認証プロトコルを搭載した前記第1の通信装置が、同じく前記完全性認証プロトコルを搭載した前記第2の通信装置と通信するときは、前記完全性認証取決め手段により、前記完全性認証情報を付加する完全性認証プロトコル処理を行って通信するとともに、前記第1又は第2の通信装置が、前記第3の通信装置と通信するときは、前記完全性認証取決めをすることなく通信を行わないことを特徴とする通信方法。
  23. 前記完全性認証取決めステップにおいて取決めの候補となりうる完全性認証情報を付加するための完全性認証ロジックをメモリに記憶ないし回路に実装するステップと、該記憶ないし実装した内容を定期的に変更する完全性認証ロジック変更ステップをさらに備えた請求の範囲20〜22のいずれか1項に記載の通信方法。
  24. 前記完全性認証取決めステップにおいて、完全性認証情報を付加するための完全性認証ロジックにより完全性認証情報付加をしない旨を取り決めることができる、請求の範囲20〜23のいずれか1項に記載の通信方法。
  25. 前記完全性認証取決めステップより前に、通信相手を認証するステップをさらに含む請求の範囲20〜24のいずれか1項に記載の通信方法。
  26. トランスポート層に位置するプロトコルを暗号化して通信を行う通信システムを実現するプログラムであって、
    通信路の両端で対応する暗号化及び復号化ロジックを取り決める取決める機能と、
    送受信する情報単位のパケットのうち、少なくとも前記プロトコルのペイロードを前記取決め手段により取り決めた暗号化ロジックに従って送信するプロトコルを暗号化する機能と、
    受信した前記暗号化されたプロトコルのペイロードを前記取決めにより取り決めた復号化ロジックに従って復号化するプロトコル復号化機能を具備し、
    前記トランスポート層のプロトコルを用いて前記暗号化及び復号化ロジックを施した通信機能を実現する通信プログラム。
  27. トランスポート層にあるTCP又はUDPに該当するプロトコルを暗号化して通信する通信システムを実現するコンピュータプログラムであって、
    通信路の両端で対応する完全性認証ロジックを取り決める完全性認証取決め機能と、
    送受信する情報単位であるパケットのうち、少なくとも前記TCP又はUDPに該当するプロトコルのペイロードを前記完全性認証取決めにより取り決めた完全性認証ロジックに従って完全性認証情報を付加して送信するプロトコル完全性認証情報付加機能と、
    受信した該完全性認証情報が付加されたプロトコルを前記完全性認証取決めにより取り決めた完全性認証ロジックに従って完全性認証するプロトコル完全性認証機能を具備し、
    前記トランスポート層にあるTCP又はUDPプロトコルを用いて前記完全性認証ロジックを施して通信する機能を実現するための通信プログラム。
JP2005512962A 2003-08-08 2004-07-30 通信システム、通信装置、通信方法、及びそれを実現するための通信プログラム Expired - Fee Related JP3783142B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2003290822 2003-08-08
JP2003290822 2003-08-08
PCT/JP2004/011304 WO2005015827A1 (ja) 2003-08-08 2004-07-30 通信システム、通信装置、通信方法、及びそれを実現するための通信プログラム

Publications (2)

Publication Number Publication Date
JP3783142B2 JP3783142B2 (ja) 2006-06-07
JPWO2005015827A1 true JPWO2005015827A1 (ja) 2006-10-12

Family

ID=34131609

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005512962A Expired - Fee Related JP3783142B2 (ja) 2003-08-08 2004-07-30 通信システム、通信装置、通信方法、及びそれを実現するための通信プログラム

Country Status (12)

Country Link
US (4) US8041816B2 (ja)
EP (1) EP1653660A4 (ja)
JP (1) JP3783142B2 (ja)
KR (1) KR101055861B1 (ja)
CN (1) CN1833403B (ja)
AU (1) AU2004302108C1 (ja)
CA (1) CA2534919C (ja)
IL (1) IL173316A (ja)
IN (1) IN2014DN00130A (ja)
NO (1) NO20056234L (ja)
TW (1) TW200518516A (ja)
WO (1) WO2005015827A1 (ja)

Families Citing this family (85)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8380854B2 (en) 2000-03-21 2013-02-19 F5 Networks, Inc. Simplified method for processing multiple connections from the same client
US7343413B2 (en) 2000-03-21 2008-03-11 F5 Networks, Inc. Method and system for optimizing a network by independently scaling control segments and data flow
JP4898168B2 (ja) 2005-03-18 2012-03-14 キヤノン株式会社 通信システム、通信装置、通信方法、及びプログラム
JP5389145B2 (ja) * 2005-03-18 2014-01-15 キヤノン株式会社 通信システム、通信方法、及びプログラム
US7706314B2 (en) * 2005-05-20 2010-04-27 Cisco Technology, Inc. Approach for implementing IPsec in performance enhancing proxy (PEP) environments
JP2006352676A (ja) * 2005-06-17 2006-12-28 Toshiba Corp 情報処理装置およびその制御方法
JPWO2007069327A1 (ja) * 2005-12-15 2009-05-21 富士通株式会社 中継装置,中継方法,中継用プログラム,中継用プログラムを記録したコンピュータ読取可能な記録媒体および情報処理装置
JP4783665B2 (ja) * 2006-04-25 2011-09-28 株式会社Into メールサーバ装置
JP4757088B2 (ja) * 2006-04-25 2011-08-24 株式会社Into 中継装置
JP4855147B2 (ja) * 2006-05-30 2012-01-18 株式会社Into クライアント装置、メールシステム、プログラム及び記録媒体
JP4866150B2 (ja) * 2006-05-30 2012-02-01 株式会社Into Ftp通信システム、ftp通信プログラム、ftpクライアント装置及びftpサーバ装置
JP2007329750A (ja) * 2006-06-08 2007-12-20 Ttt Kk 暗号化通信システム
US20080022388A1 (en) * 2006-06-30 2008-01-24 Karanvir Grewal Method and apparatus for multiple inclusion offsets for security protocols
CN101529805A (zh) * 2006-07-13 2009-09-09 小川惠子 中间设备
JP2008060817A (ja) * 2006-08-30 2008-03-13 Ttt Kk 通信システム、ウェブサーバ装置、クライアント装置、通信を行うための通信プログラム及びプログラムを記録した記録媒体
US7433226B2 (en) * 2007-01-09 2008-10-07 Macronix International Co., Ltd. Method, apparatus and computer program product for read before programming process on multiple programmable resistive memory cell
JP2008287519A (ja) * 2007-05-17 2008-11-27 Keiko Ogawa データ暗号化伝送保存システム及びリムーバブルメディア
KR100889670B1 (ko) * 2007-08-08 2009-03-19 삼성에스디에스 주식회사 모바일 디바이스상에서 tcp 기반의 서비스거부 공격의 차단 방법
FI120479B (fi) * 2007-12-05 2009-10-30 Telcont Oy Menetelmä ja päätelaite yhteyden muodostamiseksi laitteeseen
KR100977365B1 (ko) * 2007-12-20 2010-08-20 삼성에스디에스 주식회사 바이러스 및 네트워크 공격에 대한 자기 방어 기능을 갖는모바일 디바이스 및 이를 이용한 자기 방어 방법
US8671202B2 (en) * 2007-12-20 2014-03-11 Ooma, Inc. Mechanisms for role negotiation in the establishment of secure communication channels in peer-to-peer environments
CN101981885B (zh) * 2008-03-25 2013-07-10 上海贝尔股份有限公司 使用ipsec esp以支持用于基于udp的oma使能者的安全功能的方法和实体
US8806053B1 (en) 2008-04-29 2014-08-12 F5 Networks, Inc. Methods and systems for optimizing network traffic using preemptive acknowledgment signals
US8799809B1 (en) 2008-06-04 2014-08-05 United Services Automobile Association (Usaa) Systems and methods for key logger prevention security techniques
CN101521667B (zh) * 2009-04-15 2012-04-04 山东渔翁信息技术股份有限公司 一种安全的数据通信方法及装置
US10721269B1 (en) 2009-11-06 2020-07-21 F5 Networks, Inc. Methods and system for returning requests with javascript for clients before passing a request to a server
US8868961B1 (en) 2009-11-06 2014-10-21 F5 Networks, Inc. Methods for acquiring hyper transport timing and devices thereof
CN101808142B (zh) * 2010-03-10 2013-03-27 上海十进制网络信息技术有限公司 通过路由器或交换机实现可信网络连接的方法和装置
US9294506B2 (en) * 2010-05-17 2016-03-22 Certes Networks, Inc. Method and apparatus for security encapsulating IP datagrams
US9141625B1 (en) 2010-06-22 2015-09-22 F5 Networks, Inc. Methods for preserving flow state during virtual machine migration and devices thereof
US10015286B1 (en) 2010-06-23 2018-07-03 F5 Networks, Inc. System and method for proxying HTTP single sign on across network domains
US8908545B1 (en) 2010-07-08 2014-12-09 F5 Networks, Inc. System and method for handling TCP performance in network access with driver initiated application tunnel
US8347100B1 (en) 2010-07-14 2013-01-01 F5 Networks, Inc. Methods for DNSSEC proxying and deployment amelioration and systems thereof
US9083760B1 (en) 2010-08-09 2015-07-14 F5 Networks, Inc. Dynamic cloning and reservation of detached idle connections
CN101945105B (zh) * 2010-08-31 2013-05-08 施昊 网络信息收发系统及方法
US8886981B1 (en) 2010-09-15 2014-11-11 F5 Networks, Inc. Systems and methods for idle driven scheduling
US8804504B1 (en) 2010-09-16 2014-08-12 F5 Networks, Inc. System and method for reducing CPU load in processing PPP packets on a SSL-VPN tunneling device
US8959571B2 (en) 2010-10-29 2015-02-17 F5 Networks, Inc. Automated policy builder
EP2633667B1 (en) 2010-10-29 2017-09-06 F5 Networks, Inc System and method for on the fly protocol conversion in obtaining policy enforcement information
US8971539B2 (en) * 2010-12-30 2015-03-03 Verisign, Inc. Management of SSL certificate escrow
US10135831B2 (en) 2011-01-28 2018-11-20 F5 Networks, Inc. System and method for combining an access control system with a traffic management system
US9246819B1 (en) 2011-06-20 2016-01-26 F5 Networks, Inc. System and method for performing message-based load balancing
JP4843116B1 (ja) * 2011-08-22 2011-12-21 株式会社Into ネットワークゲートウェイ装置
US9270766B2 (en) 2011-12-30 2016-02-23 F5 Networks, Inc. Methods for identifying network traffic characteristics to correlate and manage one or more subsequent flows and devices thereof
US10230566B1 (en) 2012-02-17 2019-03-12 F5 Networks, Inc. Methods for dynamically constructing a service principal name and devices thereof
US9172753B1 (en) 2012-02-20 2015-10-27 F5 Networks, Inc. Methods for optimizing HTTP header based authentication and devices thereof
US9231879B1 (en) 2012-02-20 2016-01-05 F5 Networks, Inc. Methods for policy-based network traffic queue management and devices thereof
EP2853074B1 (en) 2012-04-27 2021-03-24 F5 Networks, Inc Methods for optimizing service of content requests and devices thereof
US10984415B2 (en) * 2012-06-25 2021-04-20 Li Tan System and methods for using limit-use encrypted code to transfer values securely among users
US9729309B2 (en) 2012-12-19 2017-08-08 Intel Corporation Securing data transmission between processor packages
US10375155B1 (en) 2013-02-19 2019-08-06 F5 Networks, Inc. System and method for achieving hardware acceleration for asymmetric flow connections
US9231918B2 (en) * 2013-02-19 2016-01-05 Cisco Technology, Inc. Use of virtual network interfaces and a websocket based transport mechanism to realize secure node-to-site and site-to-site virtual private network solutions
US10187317B1 (en) 2013-11-15 2019-01-22 F5 Networks, Inc. Methods for traffic rate control and devices thereof
US10015143B1 (en) 2014-06-05 2018-07-03 F5 Networks, Inc. Methods for securing one or more license entitlement grants and devices thereof
US11838851B1 (en) 2014-07-15 2023-12-05 F5, Inc. Methods for managing L7 traffic classification and devices thereof
US10122630B1 (en) 2014-08-15 2018-11-06 F5 Networks, Inc. Methods for network traffic presteering and devices thereof
US10182013B1 (en) 2014-12-01 2019-01-15 F5 Networks, Inc. Methods for managing progressive image delivery and devices thereof
US11895138B1 (en) 2015-02-02 2024-02-06 F5, Inc. Methods for improving web scanner accuracy and devices thereof
US10834065B1 (en) 2015-03-31 2020-11-10 F5 Networks, Inc. Methods for SSL protected NTLM re-authentication and devices thereof
US10505818B1 (en) 2015-05-05 2019-12-10 F5 Networks. Inc. Methods for analyzing and load balancing based on server health and devices thereof
US11350254B1 (en) 2015-05-05 2022-05-31 F5, Inc. Methods for enforcing compliance policies and devices thereof
KR102335741B1 (ko) * 2015-08-13 2021-12-06 삼성전자주식회사 이동 통신 시스템에서 빔포밍된 csi-rs를 이용하는 통신 기법
US10432754B2 (en) 2015-09-16 2019-10-01 Profire Energy, Inc Safety networking protocol and method
US10514683B2 (en) 2015-09-16 2019-12-24 Profire Energy, Inc. Distributed networking system and method to implement a safety state environment
US10348867B1 (en) * 2015-09-30 2019-07-09 EMC IP Holding Company LLC Enhanced protocol socket domain
US11757946B1 (en) 2015-12-22 2023-09-12 F5, Inc. Methods for analyzing network traffic and enforcing network policies and devices thereof
US10404698B1 (en) 2016-01-15 2019-09-03 F5 Networks, Inc. Methods for adaptive organization of web application access points in webtops and devices thereof
US10797888B1 (en) 2016-01-20 2020-10-06 F5 Networks, Inc. Methods for secured SCEP enrollment for client devices and devices thereof
US11178150B1 (en) 2016-01-20 2021-11-16 F5 Networks, Inc. Methods for enforcing access control list based on managed application and devices thereof
JP2017220890A (ja) * 2016-06-10 2017-12-14 システムプラザ株式会社 暗号通信システム及び暗号通信方法
US10791088B1 (en) 2016-06-17 2020-09-29 F5 Networks, Inc. Methods for disaggregating subscribers via DHCP address translation and devices thereof
CN106102051A (zh) * 2016-08-26 2016-11-09 北京方研矩行科技有限公司 一种局域网内安全发现智能设备的方法
US11063758B1 (en) 2016-11-01 2021-07-13 F5 Networks, Inc. Methods for facilitating cipher selection and devices thereof
US10505792B1 (en) 2016-11-02 2019-12-10 F5 Networks, Inc. Methods for facilitating network traffic analytics and devices thereof
US10812266B1 (en) 2017-03-17 2020-10-20 F5 Networks, Inc. Methods for managing security tokens based on security violations and devices thereof
US10972453B1 (en) 2017-05-03 2021-04-06 F5 Networks, Inc. Methods for token refreshment based on single sign-on (SSO) for federated identity environments and devices thereof
US11343237B1 (en) 2017-05-12 2022-05-24 F5, Inc. Methods for managing a federated identity environment using security and access control data and devices thereof
US11122042B1 (en) 2017-05-12 2021-09-14 F5 Networks, Inc. Methods for dynamically managing user access control and devices thereof
US11265155B2 (en) * 2017-08-22 2022-03-01 Nippon Telegraph And Telephone Corporation Agreement system, agreement apparatus, program, and recording medium
US11122083B1 (en) 2017-09-08 2021-09-14 F5 Networks, Inc. Methods for managing network connections based on DNS data and network policies and devices thereof
KR102460071B1 (ko) * 2017-12-21 2022-10-28 삼성전자주식회사 통신모뎀 전단의 통신신호 식별 장치 및 방법
US11044200B1 (en) 2018-07-06 2021-06-22 F5 Networks, Inc. Methods for service stitching using a packet header and devices thereof
US11418491B2 (en) * 2020-02-26 2022-08-16 Cisco Technology, Inc. Dynamic firewall discovery on a service plane in a SDWAN architecture
US11395329B2 (en) * 2020-06-19 2022-07-19 Qualcomm Incorporated Uplink traffic prioritization across multiple links
US11831539B2 (en) 2022-02-03 2023-11-28 Karunesh Rama KAIMAL Methods and systems of sharing encrypted organization data packets among network devices based on service-oriented protocol

Family Cites Families (38)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6058478A (en) * 1994-09-30 2000-05-02 Intel Corporation Apparatus and method for a vetted field upgrade
US5764915A (en) * 1996-03-08 1998-06-09 International Business Machines Corporation Object-oriented communication interface for network protocol access using the selected newly created protocol interface object and newly created protocol layer objects in the protocol stack
US6055575A (en) * 1997-01-28 2000-04-25 Ascend Communications, Inc. Virtual private network system and method
US6233624B1 (en) * 1997-05-08 2001-05-15 Microsoft Corporation System and method for layering drivers
US6704866B1 (en) * 1997-07-11 2004-03-09 Cisco Technology, Inc. Compression and encryption protocol for controlling data flow in a network
FI105753B (fi) * 1997-12-31 2000-09-29 Ssh Comm Security Oy Pakettien autentisointimenetelmä verkko-osoitemuutosten ja protokollamuunnosten läsnäollessa
US6148336A (en) * 1998-03-13 2000-11-14 Deterministic Networks, Inc. Ordering of multiple plugin applications using extensible layered service provider with network traffic filtering
US6781991B1 (en) * 1999-02-26 2004-08-24 Lucent Technologies Inc. Method and apparatus for monitoring and selectively discouraging non-elected transport service over a packetized network
US6957346B1 (en) * 1999-06-15 2005-10-18 Ssh Communications Security Ltd. Method and arrangement for providing security through network address translations using tunneling and compensations
US7370348B1 (en) * 1999-07-30 2008-05-06 Intel Corporation Technique and apparatus for processing cryptographic services of data in a network system
GB2353676A (en) 1999-08-17 2001-02-28 Hewlett Packard Co Robust encryption and decryption of packetised data transferred across communications networks
US7581110B1 (en) * 1999-08-25 2009-08-25 Nokia Corporation Key distribution for encrypted broadcast data using minimal system bandwidth
US20010052072A1 (en) * 2000-01-25 2001-12-13 Stefan Jung Encryption of payload on narrow-band IP links
US6880017B1 (en) * 2000-03-20 2005-04-12 International Business Machines Corporation System and method for providing an adaptive streaming flow control mechanism between the TCP and IP layers of the TCP/IP suite of protocols
US20060059352A1 (en) 2000-05-09 2006-03-16 Microsoft Corporation Restricted software and hardware usage on a computer
JP4608749B2 (ja) * 2000-07-24 2011-01-12 ソニー株式会社 データ処理装置、データ処理方法、およびライセンスシステム、並びにプログラム提供媒体
US20030014624A1 (en) * 2000-07-31 2003-01-16 Andes Networks, Inc. Non-proxy internet communication
US20020042875A1 (en) * 2000-10-11 2002-04-11 Jayant Shukla Method and apparatus for end-to-end secure data communication
KR100501080B1 (ko) * 2000-12-19 2005-07-18 노병희 인터넷상 트래픽의 상위 계층 프로토콜들을 구분하는 방법및 장치
US6845397B1 (en) * 2000-12-29 2005-01-18 Nortel Networks Limited Interface method and system for accessing inner layers of a network protocol
JP3859450B2 (ja) 2001-02-07 2006-12-20 富士通株式会社 秘密情報管理システムおよび情報端末
KR100693834B1 (ko) * 2001-03-30 2007-03-12 대우전자부품(주) 극초단파 입력필터회로
US20030156715A1 (en) * 2001-06-12 2003-08-21 Reeds James Alexander Apparatus, system and method for validating integrity of transmitted data
US20050210243A1 (en) * 2001-09-28 2005-09-22 Archard Paul L System and method for improving client response times using an integrated security and packet optimization framework
US7289509B2 (en) * 2002-02-14 2007-10-30 International Business Machines Corporation Apparatus and method of splitting a data stream over multiple transport control protocol/internet protocol (TCP/IP) connections
US7127613B2 (en) * 2002-02-25 2006-10-24 Sun Microsystems, Inc. Secured peer-to-peer network data exchange
US7373663B2 (en) * 2002-05-31 2008-05-13 Alcatel Canada Inc. Secret hashing for TCP SYN/FIN correspondence
US20040260921A1 (en) * 2002-07-18 2004-12-23 Treadwell William S. Cryptographic method, system and engine for enciphered message transmission
US7069438B2 (en) * 2002-08-19 2006-06-27 Sowl Associates, Inc. Establishing authenticated network connections
US7594262B2 (en) * 2002-09-04 2009-09-22 Secure Computing Corporation System and method for secure group communications
KR100477513B1 (ko) * 2002-11-25 2005-03-17 전자부품연구원 이기종 프로토콜간 상호 데이터 전송을 위한 공통프로토콜 계층 구조 및 방법과 공통 프로토콜 패킷
US7949785B2 (en) * 2003-03-31 2011-05-24 Inpro Network Facility, Llc Secure virtual community network system
US7526640B2 (en) * 2003-06-30 2009-04-28 Microsoft Corporation System and method for automatic negotiation of a security protocol
US7191248B2 (en) * 2003-08-29 2007-03-13 Microsoft Corporation Communication stack for network communication and routing
US20050060538A1 (en) * 2003-09-15 2005-03-17 Intel Corporation Method, system, and program for processing of fragmented datagrams
US20050086342A1 (en) * 2003-09-19 2005-04-21 Andrew Burt Techniques for client-transparent TCP migration
US20050175184A1 (en) * 2004-02-11 2005-08-11 Phonex Broadband Corporation Method and apparatus for a per-packet encryption system
AU2005266943C1 (en) * 2004-07-23 2011-01-06 Citrix Systems, Inc. Systems and methods for optimizing communications between network nodes

Also Published As

Publication number Publication date
KR101055861B1 (ko) 2011-08-09
CN1833403A (zh) 2006-09-13
IN2014DN00130A (ja) 2015-05-22
JP3783142B2 (ja) 2006-06-07
IL173316A0 (en) 2006-06-11
CN1833403B (zh) 2011-05-25
CA2534919C (en) 2011-04-05
WO2005015827A1 (ja) 2005-02-17
AU2004302108B2 (en) 2010-02-25
AU2004302108C1 (en) 2010-09-16
IL173316A (en) 2010-12-30
US20120066489A1 (en) 2012-03-15
US9749449B2 (en) 2017-08-29
EP1653660A4 (en) 2011-12-28
US20140115320A1 (en) 2014-04-24
US20140223169A1 (en) 2014-08-07
TW200518516A (en) 2005-06-01
TWI362859B (ja) 2012-04-21
US8041816B2 (en) 2011-10-18
US8799505B2 (en) 2014-08-05
NO20056234L (no) 2006-05-08
EP1653660A1 (en) 2006-05-03
CA2534919A1 (en) 2005-02-17
KR20060059908A (ko) 2006-06-02
AU2004302108A1 (en) 2005-02-17
US20060190720A1 (en) 2006-08-24

Similar Documents

Publication Publication Date Title
JP3783142B2 (ja) 通信システム、通信装置、通信方法、及びそれを実現するための通信プログラム
US7353380B2 (en) Method and apparatus for providing secure streaming data transmission facilities using unreliable protocols
US20100077203A1 (en) Relay device
JP2004295891A (ja) パケットペイロードを認証する方法
Aboba et al. Securing block storage protocols over ip
JP2007323172A (ja) クライアント装置、メールシステム、プログラム及び記録媒体
JP4757088B2 (ja) 中継装置
JP4866150B2 (ja) Ftp通信システム、ftp通信プログラム、ftpクライアント装置及びftpサーバ装置
JP2007329750A (ja) 暗号化通信システム
JP4783665B2 (ja) メールサーバ装置
JP2006295401A (ja) 中継装置
JP2007019633A (ja) 中継コネクタ装置及び半導体回路装置
JP2007329751A (ja) 暗号化通信システム
KR20090032072A (ko) 중계장치
JP2007324726A (ja) ファイル共有サーバ装置、クライアント装置、印刷装置、ファイル共有システム、ファイル共有プログラム
JP2007019632A (ja) 通信ボード装置及び通信方法
JP2008060817A (ja) 通信システム、ウェブサーバ装置、クライアント装置、通信を行うための通信プログラム及びプログラムを記録した記録媒体
Aboba et al. RFC3723: Securing Block Storage Protocols over IP

Legal Events

Date Code Title Description
TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20060214

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20060301

R150 Certificate of patent or registration of utility model

Ref document number: 3783142

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090324

Year of fee payment: 3

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100324

Year of fee payment: 4

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100324

Year of fee payment: 4

RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: R3D02

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110324

Year of fee payment: 5

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110324

Year of fee payment: 5

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110324

Year of fee payment: 5

R360 Written notification for declining of transfer of rights

Free format text: JAPANESE INTERMEDIATE CODE: R360

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110324

Year of fee payment: 5

R360 Written notification for declining of transfer of rights

Free format text: JAPANESE INTERMEDIATE CODE: R360

R371 Transfer withdrawn

Free format text: JAPANESE INTERMEDIATE CODE: R371

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110324

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120324

Year of fee payment: 6

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120324

Year of fee payment: 6

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120324

Year of fee payment: 6

R360 Written notification for declining of transfer of rights

Free format text: JAPANESE INTERMEDIATE CODE: R360

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120324

Year of fee payment: 6

R360 Written notification for declining of transfer of rights

Free format text: JAPANESE INTERMEDIATE CODE: R360

R371 Transfer withdrawn

Free format text: JAPANESE INTERMEDIATE CODE: R371

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120324

Year of fee payment: 6

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120324

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130324

Year of fee payment: 7

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140324

Year of fee payment: 8

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees