(57)【要約】  ファイアウォール・システムは、下位レベルの通信プロトコル（２２４）及び（２２６）を介して内部及び外部ホスト・コンピュータ（２２８）及び（２３０）と通信する署名検証ハードウェア（２２２）を用いるものであり、該内部及び外部ホスト・コンピュータは、遠隔送信元及び宛先コンピュータ（２３８）及び（２４０）との複雑な通信プロトコルを実装するためにネットワーク・プロトコル・スタック（２３２）及び（２３４）を有する。送信元コンピュータ（２３８）は、データをチェックするデータ・チェッカー機能（２５０）と、データを伝送するためにデジタル署名を生成する署名機能（２５２）とを有する。内部ホスト・コンピュータ（２２８）は、伝送されたデータを受信し、それを、ハードウェア（２２２）が動作するより下位のプロトコル・レベルに変換する。ハードウェア（２２２）は、プロトコル及びチェックのためのデジタル回路を使用する。それは、ソフトウェア・アプリケーション・レベルでデータ内の署名を検証するが、単純な下位レベルのプロトコル（２２４）及び（２２６）を要求するだけである。ファイアウォール・システム（２２０）は、高性能接続メディア（２３６）を介して送信元コンピュータ（２３８）及び宛先コンピュータ（２４０）と通信する。ハードウェア（２２２）それ自体はまた、高性能接続メディア（２２７）を介してホスト・コンピュータ（２２８）及び（２３０）と通信し、他のファイアウォールを攻撃されやすくする複雑な通信プロトコルとの関与を防止する。
2007538444.tif 000002
【特許請求の範囲】
【請求項１】
検証のためにデータを受信し、前記データが有効な署名を組み込んでいるかどうかを示すように配置された署名検証ハードウェアを有し、遠隔コンピュータ・ネットワークと通信するための複雑な通信プロトコルと、前記署名検証ハードウェアと通信するための相対的に下位レベルの通信プロトコルとを使用するように配置されたファイアウォール・システムであって、前記署名検証ハードウェアが、データの署名の妥当性を確かめるためにソフトウェア・アプリケーション・レベルで動作するように配置されたことを特徴とするファイアウォール・システム。
【請求項２】
高性能メディア・リンクを介して通信するように配置されたことを特徴とする請求項１に記載のファイアウォール・システム。
【請求項３】
前記署名検証ハードウェアは、プロトコル処理を実行し、署名の妥当性を確かめるためにデジタル回路を有することを特徴とする請求項１に記載のファイアウォール・システム。
【請求項４】
前記署名検証ハードウェアは、ハッシュ関数をデータに適用してハッシュ番号を生成するための手段と、前記ハッシュ番号を暗号化し、こうしたデータに固有の署名を生成して、前記データに組み込まれた前記署名と比較して、その妥当性を確かめるための手段とを組み込んでいることを特徴とする請求項１に記載のファイアウォール・システム。
【請求項５】
ハッシュ関数をデータに適用するための前記手段が、ハッシュ関数を適用する際のアクセスのためにデータが逐次的に格納されるストア（store）を組み込んでいることを特徴とする請求項４に記載のファイアウォール・システム。
【請求項６】
前記ストアが、前記データに組み込まれた前記署名の検証に応答してデータを出力するように配置されたことを特徴とする請求項５に記載のファイアウォール・システム。
【請求項７】
ハッシュ関数をデータに適用するための前記手段が、逐次的にデータを区分して処理することによってハッシュ番号を蓄積するように配置されたことを特徴とする請求項４に記載のファイアウォール・システム。
【請求項８】
前記署名検証ハードウェアが、チェックのためにデータを受信するときには第１のコンピュータと、前方へ伝送されるべき検証されたデータを与えるときには第２のコンピュータと通信するように配置され、前記第１のコンピュータ及び前記第２のコンピュータが、それぞれの遠隔コンピュータ・ネットワークと通信するように配置されたことを特徴とする請求項１に記載のファイアウォール・システム。
【請求項９】
前記遠隔コンピュータ・ネットワークの少なくとも１つが、複雑なチェックをこうしたデータに適用し、デジタル署名をそれに適用する役割を果たすことを特徴とする請求項８に記載のファイアウォール・システム。
【請求項１０】
前記署名検証ハードウェアによる検証のためにデータを受信するように配置された内部ホスト・コンピュータと、検証されたデータを伝送するように配置された外部ホスト・コンピュータとを組み込むファイアウォール・システムであって、前記内部及び外部ホスト・コンピュータが、
ａ）遠隔コンピュータ・ネットワークに通信するための複雑な通信プロトコルと、
ｂ）前記署名検証ハードウェアに通信するための下位レベルの通信プロトコルと、
を実装するように配置されたことを特徴とする請求項１に記載のファイアウォール・システム。
【請求項１１】
高性能接続メディアを介して通信するように配置されたことを特徴とする請求項１に記載のファイアウォール・システム。
【請求項１２】
前記署名検証ハードウェアが、フィールド・プログラマブル・ゲート・アレイ回路を組み込んでいることを特徴とする請求項１に記載のファイアウォール・システム。
【請求項１３】
前記署名検証ハードウェアが、ファームウェアによって制御される論理装置を組み込んでいることを特徴とする請求項１に記載のファイアウォール・システム。
【請求項１４】
前記ファームウェアが、ハーバード・アーキテクチャ・マイクロコントローラのファームウェアであることを特徴とする請求項１に記載のファイアウォール・システム。
【請求項１５】
システム障害に対する保護を提供する第２の同様の（second like）ファイアウォール・システムを用いてデータを直列に伝送するように配置されたことを特徴とする請求項１に記載のファイアウォール・システム。
【請求項１６】
双方向通信を提供する第２の同様のファイアウォール・システムに並列に、かつ、それと反対方向にデータを転送するように配置されたことを特徴とする請求項１に記載のファイアウォール・システム。
【請求項１７】
ファイアウォールの保護を提供する方法であって、
ａ）複雑な通信プロトコルを用いて送信元（source）コンピュータ・システムから検証のためにデータを受信し、
ｂ）前記データを相対的に下位レベルの通信プロトコルに基づく形態に変換し、
ｃ）前記変換されたデータを、こうしたデータが有効な署名を組み込んでいるかどうかを示すように配置され、ソフトウェア・アプリケーション・レベルで動作してデータ署名の妥当性を確かめるように配置された署名検証ハードウェアに伝達し、
ｄ）有効な署名と関連するデータを宛先コンピュータ・システムに伝達する、
ステップを含む方法。
【請求項１８】
高性能メディア・リンクを介して、前記署名検証ハードウェア、並びに、前記送信元及び宛先コンピュータ・システムと通信するステップを含むことを特徴とする請求項１７に記載の方法。
【請求項１９】
前記署名検証ハードウェアが、プロトコル処理を実行し、署名の妥当性を確かめるためのデジタル回路を有することを特徴とする請求項１７に記載の方法。
【請求項２０】
ａ）前記署名検証ハードウェアを用い、ハッシュ関数をデータに適用して、ハッシュ番号を生成し、
ｂ）前記ハッシュ番号を暗号化し、こうしたデータに固有の署名を生成して、前記データに組み込まれた前記署名と比較し、その妥当性を確かめる、
ステップを含むことを特徴とする請求項１７に記載の方法。
【請求項２１】
ハッシュ関数を適用する前記ステップが、ハッシュ関数を適用する際のアクセスのためにデータを逐次的にストア（store）に格納することを含む、請求項２０に記載の方法。
【請求項２２】
ハッシュ関数をデータに適用する前記ステップが、逐次的にデータを区分して処理することによってハッシュ番号を蓄積することを含む、請求項２０に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、コンピュータ・システムとネットワークとの間の通信を監視するためのファイアウォール・システムに関する。
【背景技術】
【０００２】
ファイアウォールを用いて、重要なネットワークを、それに接続された他のネットワークから保護することが知られている。機密情報又は重要情報を扱う重要なコンピュータ・ネットワークは、情報を交換するために他のネットワークと接続しなければならない場合がある。こうした接続を行う際に、重要なネットワークの情報は、接続されたネットワークの使用者とそれ自体の動作エラーからの攻撃を共に受けやすくなる。ファイアウォールは、重要なネットワークによって提供されるいずれのサービスが、該重要なネットワークに接続されたネットワーク上のコンピュータで利用可能であるか、またその逆を制御する。ファイアウォールが正しく動作する場合には、ファイアウォールは、ネットワーク間で行うことができる相互作用の形式を制限することによって、攻撃及びエラーに対する保護を与えることができる。
【０００３】
しかしながら、ファイアウォールは、複雑な通信プロトコル処理及びデータ・チェックのためのソフトウェアを実行するコンピュータ・システムであり、ゆえにそれ自体はエラー／障害に対して脆弱であり、攻撃を受けやすい。それらの複雑さを軽減することによって、ファイアウォールの堅牢性を向上させる幾つかの技術が知られているが、これらは、実行できるチェックの複雑さを制限するか、又は性能を低下させるかのいずれかである。
【０００４】
ファイアウォールは、１つの（下の）層によって提供されるサービスがその上に続く層によって使用されてよりリッチなプロトコルを実装する層又はレベルに構築された、通信プロトコルの助けを借りて動作する。次々に上方に配置された層は、電気的レベル、リンク・レベル、ネットワーク・レベル、トランスポート・レベル及びセッション・レベルと呼ぶことができる。ネットワーク・レベルは、同じネットワーク上のコンピュータが互いに通信することを可能にし、トランスポート・レベルは、異なるネットワーク上のコンピュータが互いに通信することを可能にする。ネットワーク・レベルは、ファイアウォールが動作できる相対的に下位のレベルである。ファイアウォールは、２つのネットワーク間の下位レベルの通信をインターセプトし、その通信について幾つかのチェックを行う。インターセプトされる層の数は、ファイアウォールの強度と性能との間のトレードオフの下で、異なることがある。
【０００５】
相対的に下位のプロトコル層においてのみインターセプトするファイアウォールは、最小のプロトコル処理を要求するため、より高速である。しかしながら、それらは、インターセプトされる層より上のプロトコル層において生じる攻撃又はエラーを検出できないため、効果が限定されている。これとは対照的に、プロトコルの全ての層をインターセプトするファイアウォールは、それらがより多くのプロトコル処理を行う必要があるために遅いが、それらが通信の全ての情報をチェックできるために強力である。
【０００６】
Ｄ．  Ｂｒｅｎｔ  Ｃｈａｐｍａｎ及びＥｌｉｚａｂｅｔｈ  Ｄ．  Ｚｗｉｃｋｙ著、「Ｂｕｉｌｄｉｎｇ  Ｉｎｔｅｒｎｅｔ  Ｆｉｒｅｗａｌｌｓ」、ＩＳＢＮ１−５６５９２−１２４−０、Ｏ’Ｒｅｉｌｌｙ、１９９５年（非特許文献１）は、ファイアウォールの構築についての標準参考資料を与えるテキストブックである。カリフォルニア州、サンノゼ所在のシスコ・システムズ社は、様々なファイアウォール製品を提供する。これは、ネットワーク・プロトコル・スタックを有する汎用コンピュータ上で動作するソフトウェア・アプリケーションによってチェックが実行されるファイアウォールを構築することが知られていることを示す。こうしたアプリケーション・レベルのファイアウォールによるセキュリティの脆弱性は、ネットワーク・プロトコル・スタック又はチェックにおける欠陥又は構成ミスが、チェックのバイパスにつながる可能性があるということである。
【０００７】
Ｒｉｇｓｔａｄに付与された米国特許出願第２００３／０１６７４１０号（特許文献１）は、ハードウェア及び暗号化を用いた仮想プライベート・ネットワークの実行を開示する。Ｄｉｌｌに付与された米国特許出願第２００３／００９７４３１号（特許文献２）は、ファイアウォール・プラットフォームをフィルタリングする基本ポートとして機能するコンピュータを開示する。Ｃｈａｎｇに付与された米国特許出願第２００３／００７８３７７号（特許文献３）は、インターネット・ファイアウォールではない、中央データベースであるが分散データベースであるデータベースによって管理される、ＣＯＲＢＡサービス用のファイアウォールを開示する。ここでの「ＣＯＲＢＡ」とは、Ｃｏｍｍｏｎ  Ｏｂｊｅｃｔ  Ｒｅｑｕｅｓｔ  Ｂｒｏｋｅｒ  Ａｒｃｈｉｔｅｃｔｕｒｅ、すなわち分散アプリケーションの一部の間の通信のためのプロトコルである。
【０００８】
Ｃｏｓｓに付与された米国特許第６，１４１，７４９号（特許文献４）は、プロトコルの最下位レベルで動作するステートフル・インスペクション・ファイアウォールの改善を開示する。Ｅｌｌｉｓに付与された米国特許第６，１６７，４２８号（特許文献５）は、インターネットに接続されたコンピュータ・ネットワークを用いた大規模並列プロセッサの形成を開示する。それは、コンピュータのメインプロセッサへのアクセスを制御する各々のコンピュータにおけるそれぞれのファイアウォール・プロセッサについて言及するが、ファイアウォールそれ自体の性質を開示するものではない。Ｌｅｖｙに付与された米国特許第６，２１２，６３３号（特許文献６）は、セキュリティをＡｐｐｌｅ  ＣｏｍｐｕｔｅｒのＦｉｒｅＷｉｒｅ（商標）（デジタル・ビデオ・カメラのような高速周辺装置用のＩＥＥＥ１３９４通信メディア）に付加することに関する。それは、通信を安全にするための標準署名及び暗号化アルゴリズム／技術を開示する。
【０００９】
Ｄｅｎｇに付与された米国特許第６，７０１，４３２号（特許文献７）は、下位レベルのパケット通信のためのハードウェア用のパケット・フィルタリング・ファイアウォールを開示する。Ｃｏｈｅｎに付与された米国特許出願第２００２／００７８３７７号（特許文献８）は、リソース・フラッディング攻撃を止めることに関する。
【００１０】
署名チェックにより動作するファイアウォールの代替的な形態が知られている。ここでは、メッセージ内のデータ・チェックは、ファイアウォールによってではなく、データ源であるコンピュータ・ネットワーク上で動作するソフトウェア・アプリケーションによって実行される。この手法は、１９９９年１２月、米国、アリゾナ州、フェニックスでの、第１５回年次コンピュータ・セキュリティ・アプリケーション会議における、Ｊ．  Ｅｐｓｔｅｉｎによる、「Ａｒｃｈｉｔｅｃｔｕｒｅ  ａｎｄ  Ｃｏｎｃｅｐｔｓ  ｏｆ  ｔｈｅ  ＡＲＧｕＥ  Ｇｕａｒｄ」において説明されている。データをリリースする前に、送信元ネットワークは、メッセージをリリースするためのユーザの承認を得る等のアプリケーション別の複雑なチェックを実行する。次に、送信元ネットワークは、チェックを通過したことを示す偽造不能なデジタル署名をメッセージに適用し、それをファイアウォールに送信する。宛先ネットワークへの伝送のためにファイアウォールがメッセージをリリースできるかどうかを確立するためには、ファイアウォールは、全メッセージの代わりにデジタル署名を検証しさえすればよい。
【００１１】
署名チェック・ファイアウォールの利点は、チェックが単純化されており、欠陥を生じにくいということである。しかしながら、ネットワーク・プロトコル・スタックは、それに関する問題がチェックされていない署名につながる可能性があるため、弱点として依然残されている。
【００１２】
ネモトに付与された米国特許第６，０３２，２５９号（特許文献９）は、そうでなければチェックのバイパスをもたらす可能性があるネットワーク・プロトコル・スタックの障害を防止するファイアウォールを開示する。ファイアウォールは、最上位のプロトコル・スタック・レベルの通信をインターセプトするが、ネットワーク・プロトコル・スタックを介してではなく単純な専用通信機構を用いてそれを転送する。このように、複雑なプロトコル・スタックのソフトウェアにおけるエラーは、チェックのバイパスに直接つながるものではない。この手法は、専用通信機構を用いて達成可能な単純さに依存するが、これは、単一のコンピュータ上の単一のソフトウェア・アプリケーションへの接続を提供できるに過ぎない。また、この単純さは、単に、例えば、比較的単純なソフトウェアによって駆動できるシリアル・データ・リンクのような旧式のメディアといった、比較的遅い通信メディアを使用することによって達成することができる。これは、今日のオペレーティング・システムが、リソースを最大限に利用するために、上位レベルの複雑なプロトコルを用いる、ＵＳＢ、ファイアウォール及びイーサネット（登録商標）等の新しい高性能通信メディアを常に駆動するからである。これらのオペレーティング・システムにおいては、メディア駆動ソフトウェアは、設計を容易にするためにプロトコル・スタックの中に構成される。さらに、米国特許第６，０３２，２５９号（特許文献１０）は、攻撃者が複雑なプロトコル・スタック内の欠陥を使用して、ファイアウォールの制御を掌握し、次いで直接単純な通信機構を駆動し得る可能性に対処するものではない。ここでは、この手法は、適用可能性、性能及びセキュリティに関して制限される。
【００１３】
特別に構成されたオペレーティング・システムを使用して、ファイアウォールを提供する問題に対してより一般的な解決策を提供することも知られている。１９９２年１１月、米国、テキサス州、サンアントニオでの、第８回年次コンピュータ・セキュリティ・アプリケーション会議議事録における、Ｒ  Ａ  Ｖｉｃｋによる、「Ａｎ  Ｏｖｅｒｖｉｅｗ  ｏｆ  ｔｈｅ  ＡＭＣ  ＷＷＭＣＣＳ  ＣＡＴ  Ｇｕａｒｄ」（非特許文献２）は、Ｗａｎｇオペレーティング・システムのＸＴＳ−２００の機能を用いて、各々が別個のネットワーク・インタフェースを駆動する２つの別個のネットワーク・スタックを設けることを開示する。この手法は、たとえ攻撃者が単一のネットワーク・スタック内の欠陥を利用しても、欠陥はチェックのバイパスをもたらさないことを保証する。関連する開示は、１９９５年１２月、ルイジアナ州ニューオリンズでの、第１１回年次コンピュータ・セキュリティ・アプリケーション会議の議事録における、Ｔｈｏｍａｓ  Ｆｏｒｉｎｏ他による、「Ｌｅｓｓｏｎｓ  Ｌｅａｒｎｅｄ  Ｄｕｒｉｎｇ  ｔｈｅ  Ｌｉｆｅ  Ｃｙｃｌｅ  ｏｆ  ａｎ  ＭＬＳ  Ｇｕａｒｄ  Ｄｅｐｌｏｙｅｄ  ａｔ  Ｍｕｌｔｉｐｌｅ  Ｓｉｔｅｓ」（非特許文献３）において見られる。
【００１４】
性能を向上させるための可能性のある解決法は、ソフトウェアの代わりにハードウェア内にファイアウォールの機能を実装することである。可能性のある技術は、Ｃｈｅｎｇ，  Ｊｉｎによる、２００３年１２月８日付けの「Ｓｉｌｉｃｏｎ  Ｆｉｒｅｗａｌｌ  Ｐｒｏｔｏｔｙｐｅ」という題のＳａｓｋａｔｃｈｅｗａｎ大学の修士論文、ＵＲＮ  ｅｔｄ−１２１５２００３−１４２４５５（非特許文献４）、及び２００２年９月、フランス、モンペリエでの、Ｆｉｅｌｄ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｌｏｇｉｃ  ａｎｄ  Ａｐｐｌｉｃａｔｉｏｎｓ（ＦＰＬ）における国際会議の、Ｙｏｕｎｇ  Ｈ．  Ｃｈｏ、Ｓｈｉｖａ  Ｎａｖａｂ、Ｗｉｌｌｉａｍ  Ｈ．  Ｍａｎｇｉｏｎｅ−Ｓｍｉｔｈによる、「Ｓｐｅｃｉａｌｉｚｅｄ  Ｈａｒｄｗａｒｅ  ｆｏｒ  Ｄｅｅｐ  Ｎｅｔｗｏｒｋ  Ｐａｃｋｅｔ  Ｆｉｌｔｅｒｉｎｇ」（非特許文献５）という論文において説明されている。
【００１５】
【特許文献１】米国特許出願第２００３／０１６７４１０号
【特許文献２】米国特許出願第２００３／００９７４３１号
【特許文献３】米国特許出願第２００３／００７８３７７号
【特許文献４】米国特許第６，１４１，７４９号
【特許文献５】米国特許第６，１６７，４２８号公報
【特許文献６】米国特許第６，２１２，６３３号公報
【特許文献７】米国特許第６，７０１，４３２号公報
【特許文献８】米国特許出願第２００２／００７８３７７号
【特許文献９】米国特許第６，０３２，２５９号公報
【特許文献１０】米国特許第６，０３２，２５９号公報
【非特許文献１】Ｄ．  Ｂｒｅｎｔ  Ｃｈａｐｍａｎ及びＥｌｉｚａｂｅｔｈ  Ｄ．  Ｚｗｉｃｋｙ著、「Ｂｕｉｌｄｉｎｇ  Ｉｎｔｅｒｎｅｔ  Ｆｉｒｅｗａｌｌｓ
【非特許文献２】１９９２年１１月、米国、テキサス州、サンアントニオでの、第８回年次コンピュータ・セキュリティ・アプリケーション会議議事録における、Ｒ  Ａ  Ｖｉｃｋによる、「Ａｎ  Ｏｖｅｒｖｉｅｗ  ｏｆ  ｔｈｅ  ＡＭＣ  ＷＷＭＣＣＳ  ＣＡＴ  Ｇｕａｒｄ」
【非特許文献３】１９９５年１２月、ルイジアナ州ニューオリンズでの、第１１回年次コンピュータ・セキュリティ・アプリケーション会議の議事録における、Ｔｈｏｍａｓ  Ｆｏｒｉｎｏ他による、「Ｌｅｓｓｏｎｓ  Ｌｅａｒｎｅｄ  Ｄｕｒｉｎｇ  ｔｈｅ  Ｌｉｆｅ  Ｃｙｃｌｅ  ｏｆ  ａｎ  ＭＬＳ  Ｇｕａｒｄ  Ｄｅｐｌｏｙｅｄ  ａｔ  Ｍｕｌｔｉｐｌｅ  Ｓｉｔｅｓ」
【非特許文献４】Ｃｈｅｎｇ，  Ｊｉｎによる、２００３年１２月８日付けの「Ｓｉｌｉｃｏｎ  Ｆｉｒｅｗａｌｌ  Ｐｒｏｔｏｔｙｐｅ」という題のＳａｓｋａｔｃｈｅｗａｎ大学の修士論文、ＵＲＮ  ｅｔｄ−１２１５２００３−１４２４５５
【非特許文献５】２００２年９月、フランス、モンペリエでの、Ｆｉｅｌｄ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｌｏｇｉｃ  ａｎｄ  Ａｐｐｌｉｃａｔｉｏｎｓ（ＦＰＬ）における国際会議の、Ｙｏｕｎｇ  Ｈ．  Ｃｈｏ、Ｓｈｉｖａ  Ｎａｖａｂ、Ｗｉｌｌｉａｍ  Ｈ．  Ｍａｎｇｉｏｎｅ−Ｓｍｉｔｈによる、「Ｓｐｅｃｉａｌｉｚｅｄ  Ｈａｒｄｗａｒｅ  ｆｏｒ  Ｄｅｅｐ  Ｎｅｔｗｏｒｋ  Ｐａｃｋｅｔ  Ｆｉｌｔｅｒｉｎｇ」
【発明の開示】
【発明が解決しようとする課題】
【００１６】
本発明の目的は、ファイアウォール・システムの代替的な形態を提供することである。
【課題を解決するための手段】
【００１７】
本発明は、検証のためにデータを受信し、データが有効な署名を組み込んでいるかどうかを示すように配置された署名検証ハードウェアを有するファイアウォール・システムであって、該ファイアウォール・システムが、複雑な通信プロトコルを用いて遠隔ネットワークと通信し、相対的に下位レベルの通信プロトコルを用いて署名検証ハードウェアと通信するように配置され、該署名検証ハードウェアが、ソフトウェア・アプリケーション・レベルで動作してデータ署名の妥当性を確かめるように配置された、ファイアウォール・システムを提供する。
【００１８】
本発明は、署名検証ハードウェアと下位レベルの通信プロトコルとを組み合わせているため、他のファイアウォールを攻撃されやすくする複雑な通信プロトコルにハードウェアを露出する必要性を回避するという利点を与える。攻撃へのファイアウォールの露出を制限するべく単純な通信メディアを使用するファイアウォールとは異なり、本発明のファイアウォールは、（任意的ではあるが、好ましくは）高性能メディア・リンクを利用することができ、次いで、メッセージ内の全データをチェックすることができる。したがって、本発明は、高いセキュリティと高い性能との組み合わせを提供する。
【００１９】
本発明のファイアウォール・システムは、高性能メディア・リンクを介して通信するように配置することができる。署名検証ハードウェアは、プロトコル処理を実行し、署名の妥当性を確かめるためにデジタル回路を有することができる。デジタル回路は、ハッシュ関数をデータに適用してハッシュ番号を生成するための手段と、ハッシュ番号を暗号化し、こうしたデータに固有の署名を生成して、データに組み込まれた署名の妥当性を比較して確かめるための手段とを組み込むことができる。ハッシュ関数を適用するための手段は、逐次的にデータを区分して処理することによってハッシュ番号を蓄積するように配置することができる。ハッシュ関数を適用するための手段が、ハッシュ関数を適用する際のアクセスのためにデータが逐次的に格納されるストアを組み込むことができる。ストアは、確認されるデータに組み込まれた署名の妥当性に応答してデータを出力するように配置することができる。
【００２０】
署名検証ハードウェアは、チェックのためにデータを受信するときには第１のコンピュータと、前方へ伝送されるべきチェックされたデータを与えるときには第２のコンピュータと通信するように配置することができ、第１及び第２のコンピュータは、それぞれの遠隔コンピュータ・ネットワークと通信するように配置される。遠隔コンピュータ・ネットワークは、複雑なチェックをこうしたデータに適用し、デジタル署名をそれに適用する役割を果たすことができる。
【００２１】
このファイアウォール・システムは、署名検証ハードウェアによる検証のためにデータを受信するように配置された内部ホスト・コンピュータと、検証されたデータを伝送するように配置された外部ホスト・コンピュータとを組み込むことができ、該内部及び外部ホスト・コンピュータは、
ａ）遠隔コンピュータ・ネットワークと通信するための複雑な通信プロトコルと、
ｂ）署名検証ハードウェアと通信するための下位レベルの通信プロトコルと、
を実装するように配置される。
【００２２】
このファイアウォール・システムは、高性能接続メディアを介して通信するように配置されることが好ましい。署名検証ハードウェアは、フィールド・プログラマブル・ゲート・アレイ回路を組み込むことができる。それは、代替的に、ハーバード・アーキテクチャ・マイクロコントローラのファームウェアのようなファームウェアによって制御される論理装置を組み込むことができる。
【００２３】
このファイアウォール・システムは、システム障害に対する保護を提供する第２の同様のファイアウォール・システムを用いてデータを直列に伝送するように配置することができる。それは、双方向通信を提供する第２の同様のファイアウォール・システムと並列に、かつ、それと反対方向にデータを転送するように配置することができる。
【００２４】
代替的な態様において、本発明は、
ａ）複雑な通信プロトコルを用いて送信元ネットワークから検証のためにデータを受信し、
ｂ）データを相対的に下位レベルの通信に基づく形態に変換し、
ｃ）変換されたデータを、こうしたデータが有効な署名を組み込んでいるかどうかを示すように配置され、ソフトウェア・アプリケーション・レベルで動作してデータ署名の妥当性を確かめるように配置された署名検証ハードウェアに伝達し、
ｄ）有効な署名と関連するデータを宛先ネットワークに伝達する、
ステップを含む、ファイアウォールの保護を提供する方法を提供する。
【００２５】
本発明の方法は、高性能メディア・リンクを介して、署名検証ハードウェア、並びに、送信元及び宛先コンピュータ・システムと通信するステップを含むことができる。署名検証ハードウェアは、プロトコル処理を実行し、署名の妥当性を確かめるためにデジタル回路を有することができる。
【００２６】
この方法は、
ａ）署名検証ハードウェアを用い、ハッシュ関数をデータに適用して、ハッシュ番号を生成し、
ｂ）ハッシュ番号を暗号化し、こうしたデータに固有の署名を生成して、データに組み込まれた署名の妥当性を比較して確かめる、
ステップを含むことができる。
【００２７】
ハッシュ関数を適用するステップは、ハッシュ関数を適用する際のアクセスのためにデータを逐次的にストアに格納することを含むことができる。それは、逐次的にデータを区分して処理することによってハッシュ番号を蓄積することをさらに含むことができる。
【発明を実施するための最良の形態】
【００２８】
本発明をより十分に理解することができるように、本発明の実施形態は、ここでは、添付の図面を参照して、例示としてのみ説明される。
【００２９】
コンピュータ・システム間の通信は、複雑な標準通信プロトコルを用いて実行される。これらのプロトコルは、信頼できない物理通信メディア全体にわたって信頼性を提供し、多くのソフトウェア・アプリケーション間で合理的な方法で物理的な通信リソースを共有するように設計されている。プロトコルの複雑さは、欠陥を保有する可能性がある通信をもたらし、欠陥は、コンピュータ・システムのセキュリティを危険に曝すのに利用可能となり得る。
【００３０】
図１を参照すると、ユーザ・データ１０は、アプリケーション・プロトコル、この例においては、ファイル転送プロトコル（ＦＴＰ）によって搬送される。このプロトコルは、ユーザ・データ１０に付加的なヘッダ情報１２を付ける。それは、標準プロトコル、すなわち、伝送制御プロトコル（ＴＣＰ）を用いて、ネットワーク全体にわたって及びそれらの間で制御コマンド及びユーザ・データを伝送する。ＴＣＰは、ＴＣＰヘッダ１６によりヘッダが付けられたＴＣＰデータ・フレーム１４として一体に伝送できるデータのサイズに制限を課し、それで、多くのＴＣＰフレームは大きなＦＴＰペイロードを搬送する必要がある。単一のネットワーク全体にわたってデータを搬送するために、インターネット・プロトコル（ＩＰ）フレームにおいて各々のＴＣＰフレームにヘッダ１８が付けられる。ＴＣＰフレームは、イーサネット（登録商標）のようなプロトコルを用いてネットワーク・セグメント全体にわたって物理的に伝送され、それはさらなるヘッダ２０によって付けられたデータを要求する。
図１に示すように、プロトコルの層状化が複雑であるばかりでなく、プロトコルそれ自体が複雑であることが普通である。プロトコルは、たとえ通信において障害が何らかのデータの供給を妨げても、通信の両エンドのつじつまは合わせるように設計された、コマンドとデータとの交換の既定のシーケンスである。
【００３１】
ここで、さらに図２を参照すると、複雑なハンドシェーク・プロトコルの相互作用の例が概略的に示される。クライアント・コンピュータ３２とサーバ３４との間の接続３０を確立するために、クライアント３２は、コマンド・データ・パッケージＳＹＮ  Ｊ（Ｊは、パッケージ番号を示す）３６を送信する。これは、クライアント３２をコマンド送信状態３８のままにする。サーバ３４は、最初はリスニング状態４０にあり、ＳＹＮ  Ｊコマンドの受信により受信状態４２に変換される。それは、受取通知ＡＣＫ  Ｊ＋１と共にコマンド・データ・パッケージＳＹＮ  Ｋをクライアント３２に戻すことで受信を示し、これにより、クライアント３２は接続確立モード４４に切り替えられる。クライアント３２は、受信されたときにサーバ３４を同じく接続確立モード４６に切り替える受取通知ＡＣＫ  Ｋ＋１を送信することによって、接続の確立を示す。番号Ｊ及びＫは、それぞれ、クライアント及びサーバによって無作為に選択される最初のパケット・シーケンス番号である。送信される各々の後続するパケットには、パケットに格納できる最大シーケンス番号の値を法とする条件の下で、前に使用されたものより高いシーケンス番号のものがマーク付けされる。シーケンス番号の使用により、受信側は、いつデータが失われたか又は順番を外れて受信されたかを検出することが可能になる。最初のシーケンス番号についてのランダム値の使用は、エラーから保護し、攻撃者が既存の接続を乗っ取ることをより困難にする。ＴＣＰ／ＩＰの複雑さは、Ａｄｄｉｓｏｎ−Ｗｅｓｌｅｙにより出版された、Ｗ．  Ｒｉｃｈａｒｄ  Ｓｔｅｖｅｎｓ著による、「ＴＣＰ／ＩＰ  Ｉｌｌｕｓｔｒａｔｅｄ，  Ｖｏｌｕｍｅ  １」、ＩＳＢＮ  ０−２０１−６３３４６−９というテキストブックにおいて、より十分に説明されている。
【００３２】
本発明は、単純なプロトコルを用いてアプリケーション・データを装置から装置へと転送する、すなわち、本発明は、図１を参照して説明された複雑なプロトコル層を用いるものではない。ここで、図３を参照すると、送信されることになる通信５０は、ＡからＺで示されたアプリケーション・データ５２と、デジタル署名５４とからなる。イーサネット（登録商標）のような高速のネットワーキング・ハードウェアが使用される場合には、通信５０は、普通は、単一伝送で伝送するにはあまりにも大きすぎる。したがって、通信５０は、各々が単一伝送として送信されるのに十分なだけ小さい一連のフレーム５６、５８、６０及び６２に分割される。次に、レシーバがフレームを元のアプリケーション・データに再組み立てすることを可能にする配置が必要である。
【００３３】
データがフレームで伝送される際に、あるフレームが失われる可能性がある。これを検出するために、各々のフレームは、例えば、６４におけるシーケンス番号１といったシーケンス番号を所有する。既に受信されたフレームと比較して順序を外れている番号を持ったフレームが受信された場合には、受信されたデータは、一部が欠落しているので廃棄される。フレームの番号付けはまた、フレームを元のアプリケーション・データに再組み立てすることを可能にする。何らかのアプリケーション・データが完全に受信されたことを検出するために、最後のフレーム６２は、この例においては、*で示されるように、最後のフレームであるものとしてマーク付けされる。
【００３４】
何らかのアプリケーション・データをひとまとめにして提供するフレームが送信側から順番に全て受信されると、受信コンピュータ上で動作するソフトウェア・アプリケーションがデータを処理することができる。受信側によって、予め配置されたコンテンツを備えたフレーム６６の形態の受信の受取通知を、送信側に送り返すことができる。送信側は、アプリケーション・データの次の部分を送信し始める前に、受取通知６６を待機することができる。
【００３５】
受信側が、何らかのアプリケーション・データの１つのフレームが欠落していることを検出した場合には、受信側は、予め配置されたコンテンツを備えるフレーム６８の形態の再伝送要求を、送信側に送り返すことができる。送信側は、再伝送要求に関して入ってくる通信を監視し、こうした通信の１つが受信された場合には、アプリケーション・データを全部再送信することによって応答することができる。
【００３６】
図４を参照すると、従来技術のファイアウォール１１０は、２つのネットワーク・インタフェース・カード（図示せず）を備えた、ソフトウェア及び汎用コンピュータ（図示せず）を用いて構成される。コンピュータは、オペレーティング・システム１１１と、最上位のプロトコル・レベル１１２ａまでの連続するプロトコル層を有するネットワーク・プロトコル・スタック１１２とを有する。コンピュータは、それぞれソフトウェア・アプリケーション（例えば、電子メール機能）１２４及び１２８を実行するオペレーティング・システムとネットワーク・スタックとの組み合わせ１１６／１１８及び１２０／１２２で表される２つの他のコンピュータ間の通信をチェックし制御するのに用いられる、チェック・ソフトウェア１１４を実行する。実際には、チェック・ソフトウェア１１４は、各々が受信コンピュータを遠隔メッセージ送信コンピュータにシミュレートし、メッセージ送信コンピュータを遠隔受信コンピュータにシミュレートする、プロキシ・ソフトウェアの２つのアイテム間に挟まれたチェッカー・ソフトウェアからなる。このシミュレーションは、プロトコルによる、遠隔コンピュータと通信するプロキシ・ソフトウェアの実行である。
【００３７】
ファイアウォール１１０は、ソフトウェア・アプリケーション１２４及び１２８と同じプロトコル・レベルで機能するので、アプリケーション・レベルのファイアウォールと呼ばれる。通信がチェック・ソフトウェア１１４によるチェックを受けることになるように、通信は、ネットワーク・プロトコル・スタック１１２の最上位のプロトコル・レベル１１２ａまでの全ての層を通り、それを超えて行かなければならない。ネットワーク・プロトコル・スタック１１２又はチェック・ソフトウェア１１４内の欠陥又は構成ミスは、チェックのバイパスを招き、セキュリティの脆弱性を与える可能性がある。
【００３８】
図５は、署名チェックによって動作する従来技術のアプリケーション・レベルのファイアウォールの代替的な形態を示す。これは、図４と極めて類似しており、詳細には説明されない。図４と比較した唯一の違いは、通信をチェックし制御するためのチェック・ソフトウェア１１４が、署名検証ソフトウェア１３０に置き換えられていることである。署名検証ソフトウェア１３０は、各々の通信においてデジタル署名を検証するチェックを実行し、それは、チェック・ソフトウェア１１４によって実行されるものと比較してより単純なチェックである。適切な署名をもつ通信は、通過することが許可され、他のものは許可されない。デジタル署名は、通信を生成したコンピュータ・システムによって通信に適用される。この手法は、より単純で欠陥を生じにくいが、しかしながら、ファイアウォールのネットワーク・プロトコル・スタック１３２は、前と同様にそれに伴う問題が署名チェックのバイパスをもたらすことがあるため、依然として弱いままである。
【００３９】
図６は、米国特許第６，０３２，２５９号において開示された類のファイアウォール１４０の配置についての概略図である。これは、そうでなければチェックのバイパスをもたらすことになるネットワーク・プロトコル・スタック障害を回避する。ファイアウォール１４０は、オペレーティング・システム１４２、ネットワーク・プロトコル・スタック１４４、単純な下位レベルの専用通信機構１４６及びチェック・ソフトウェア１４８で示されたコンピュータである。接続１５０及び１５２で示されるように、チェック・ソフトウェア１４８は、ネットワーク・プロトコル・スタック１４４の上部からチェックのための通信を受信し、オペレーティング・システム１５４、通信機構１５６及びアプリケーション・ソフトウェア１５８で示された受信コンピュータ・システムへの前方伝送のためにチェックされ承認された通信を通信機構１４６に提供する。ファイアウォール１４０は、その結果、ネットワーク・プロトコル・スタック１４４の最上位のプロトコル・レベル１４４ａにおいて送信コンピュータ・システム１６０からの通信をインターセプトし、ネットワーク・スタックの代わりに下位レベルの通信機構１４６を用いてそれを転送する。ネットワーク・プロトコル・スタック１４４が入力と出力の両方に接続されていないため、その複雑なソフトウェアのエラーは、チェック・ソフトウェア１４８のチェックのバイパスに直接つながるものではない。この手法は、単一のコンピュータ上の単一のソフトウェア・アプリケーションへの接続のみを提供することができる。この手法は、複雑なソフトウェアを要求する高性能メディアを使用することができないため、比較的遅い。さらに、複雑なネットワーク・プロトコル・スタック１４４内の欠陥は、攻撃者が、ファイアウォール１４０を制御し通信機構１４６を直接駆動することを可能にする。
【００４０】
図７は、既述されたＲ  Ａ  Ｖｉｃｋの文献で開示された類のアプリケーション・レベルのファイアウォール１７０を概略的に示す。Ｗａｎｇ  ＸＴＳ−２００オペレーティング・システム１７２を用いて、その各々が遠隔コンピュータ・システム１８２及び１８４への接続１７８及び１８０で示されたそれぞれのネットワーク・インタフェースを駆動する、２つの別個のネットワーク・プロトコル・スタック１７４及び１７６をファイアウォール１７０に提供する。チェック・ソフトウェア１８６は、ネットワーク・プロトコル・スタック１７４及び１７６の最上位のプロトコル・レベル１７４ａ及び１７６ａにおいて送信コンピュータ・システム１８２又は１８４からの通信をインターセプトし、チェックを適用する。単一のネットワーク・プロトコル・スタック１７４ａ又は１７６ａ内の欠陥は、たとえそれらが攻撃者によって利用されても、チェックのバイパスにつながる可能性はない。
【００４１】
ここで、図８を参照すると、ファイアウォール２００の従来技術のハードウェア実装が概略的に示される。それは、２つの下位レベルのプロトコル２０４及び２０６、ゆえにそれぞれのネットワーク・プロトコル・スタック２１２及び２１４を有するそれぞれの遠隔コンピュータ２０８及び２１０にリンクされたチェック・ハードウェア２０２を用いるものである。ハードウェア２０２は、論理ゲートを用いて、通常のソフトウェア実装ファイアウォールのプロトコル処理及びチェック機能を再現する。しかしながら、標準インターネット・プロトコルの複雑さは、ハードウェア２０２が、ＳＭＴＰのようなソフトウェア・アプリケーション・レベルのプロトコルではなくＴＣＰ／ＩＰのような下位レベル（又は下層）のプロトコルに対してのみ実用的であるということである。このことは、チェック・ハードウェア２０２をネットワーク・プロトコル・スタック２１２及び２１４の各々における相対的に下位のレベル（例えば、ネットワーク・レベル）にリンクする断続線２１６（物理的な接続ではない）で概略的に示される。その結果、このタイプのハードウェア・ファイアウォールは、実際には、チェックを相対的に下位レベルのプロトコルに適用することができるだけであり、特に攻撃者がそれらを制御する位置にいる場合には、より上位レベルのプロトコル内のミスによって容易に破られる。
【００４２】
図９は、本発明のファイアウォール２２０を概略的に示す。これは、それぞれ内部及び外部ホスト・コンピュータ２２８及び２３０によって提供される２つの下位レベルの通信プロトコル２２４及び２２６へのリンク２２２ａ及び２２２ｂを備えた署名検証ハードウェア２２２を用いるものである。リンク２２２ａ及び２２２ｂは、高性能通信メディアである。内部及び外部ホスト・コンピュータ２２８及び２３０は、ネットワーク・プロトコル・スタック２３２及び２３４を有し、それぞれダウンコンバート及びアップコンバート通信プロトコルのためのプロキシ・ソフトウェア２２８ｐ及び２３０ｐを実行する。それらは、各々が複数のコンピュータを有するが各場合においてそれぞれ単一のコンピュータとして示される送信元コンピュータ・ネットワーク２３８及び宛先コンピュータ・ネットワーク２４０に高性能通信メディア２３６によってリンクされ、ネットワーク２３８及び２４０内のコンピュータ又はコンピュータ・システムは、ネットワーク・プロトコル・スタック２４２及び２４４を有し、それぞれソフトウェア・アプリケーション（例えば、電子メール機能）２４６及び２４８を実行する。
【００４３】
送信元コンピュータ・ネットワーク２３８はさらに、アプリケーション２４６によって使用されるソフトウェア・チェッカー及び署名生成機能２５０及び２５２を有し、該アプリケーションは、署名生成機能２５２に直接アクセスすることはできず、チェッカー機能２５０を介してのみアクセスすることができる。送信元コンピュータ・ネットワーク２３８は、メッセージ内のデータを宛先コンピュータ・ネットワーク２４０に送信する前に、チェッカー機能２５０を用いて該データをチェックする。データがチェッカー機能２５０によって実行されるテストを正常に通過する場合には、チェッカー機能２５０は、署名生成機能２５２を呼び出してデジタル署名を取得し、次いで、該デジタル署名それ自体がデータに適用される。デジタル署名は、データに固有であり、公知の暗号化技術を用いて導出される。アプリケーション２４６には、如何なるチェックもなく署名されるデータを回避するために、署名生成機能２５２への直接アクセスは与えられない。次に、複雑なプロトコルを用いて、デジタル署名を組み込んでいるメッセージが、高性能メディア２３６を介してファイアウォール２２０に送信され、ファイアウォールのスタック２３２は、それを組み立ててプロキシ２２８ｐに渡す。プロキシ２２８ｐは、メッセージを下位レベルの通信プロトコル２２４に渡し、該通信プロトコル２２４は、単純なプロトコルを用いて、高性能の下位レベルの通信リンク２２２ａを介して、メッセージを署名検証ハードウェア２２２に渡す。
【００４４】
署名検証ハードウェア２２２は、プロトコル処理及びデータ検証を実行するためにデジタル回路を使用する。それは、メッセージ内の署名が該メッセージにふさわしいことをチェックする。署名がメッセージにふさわしい場合には、署名検証ハードウェア２２２は、高性能の下位レベルの通信リンク２２２ｂを用いて、該メッセージを下位レベルのプロトコル２２６に渡す。下位レベルのプロトコル２２６は、メッセージをプロキシ２３０ｐに渡し、プロキシ２３０ｐは、宛先のコンピュータ・ネットワーク２４０への前方伝送のためにメッセージをスタック２３４に渡す。署名がメッセージにふさわしくない場合には、メッセージは拒否され、ファイアウォール２２０から削除される。
ファイアウォール２２０は、チェックされ許容可能であることが判明したデータのチェック及び通過のための受信データに関して複雑なプロトコル・レベルで全体として動作するが、署名検証ハードウェア２２２は、下位レベルのプロトコルを用いて内部及び外部ホスト２２８及び２３０と通信し、その結果、より上位のプロトコル・レベルを取り扱う複雑さに関連する問題による影響を受けない。それにもかかわらず、署名検証ハードウェア２２２は、それが作成した全てのメッセージをソフトウェア・アプリケーション２４６によって生成されたものとして扱うため、アプリケーション・レベルで効果的に動作する。
【００４５】
本発明のファイアウォール２２０は、単純なプロトコル及び署名検証、すなわち比較的単純なチェックを用いるため、ハードウェアを用いて署名検証を実行することが可能である。それは、例えば、フィールド・プログラマブル・ゲート・アレイの集積回路、又はハーバード・アーキテクチャ・マイクロコントローラのファームウェアを用いて制御される論理装置を組み込むことができる。この点では、ファン・ノイマン・コンピュータ・アーキテクチャとは異なり、ハーバード・アーキテクチャは、データ及び命令について別個のメモリを有する。これは、命令メモリ内の命令及びデータ・メモリ内のオペランドのフェッチ又は格納を、全て単一のマシン・サイクルにおいて行うことが可能になる。それはさらに、たとえ攻撃者がファームウェアの動作に欠陥を発見することになったとしても、データ・メモリから取られた命令を組み込むようにはファームウェアの機能を修正できないという利点を有する。
【００４６】
ファイアウォール２２０によって実装される通信プロトコルを単純なままに保って、エラーを生じにくくするために、ファイアウォール２２０は、それぞれ、受信データ又は伝送データにおいて単一のホスト・コンピュータ２２８又は２３０と通信する。ネットワーク・プロトコル・スタック２３２及び２３４により示されるように、各々のホスト・コンピュータ２２８又は２３０は、複雑な通信プロトコルを実装して、データを遠隔コンピュータ・ネットワーク２３８又は２４０から受信するか又はデータをそれに渡す役割を果たしている。しかしながら、ホスト・コンピュータ２２８及び２３０は、単純な下位レベルのプロトコル２２４又は２２６のみを用いて署名検証ハードウェア２２２と通信する。署名検証ハードウェア２２２それ自体は、それが受信するデータ内のデジタル署名を分離し、署名の妥当性をチェックすることだけを必要とする。署名が有効である場合には、ファイアウォール２２０は、遠隔送信元コンピュータ・ネットワーク２３８によって複雑なチェックが既に適用されたものと当然みなし、データを宛先コンピュータ・ネットワーク２４０に受け渡すことができる。
【００４７】
デジタル署名を使用する従来技術のファイアウォールとは異なり、ファイアウォール２２０のチェック・コンポーネントは、署名検証ハードウェア２２２と下位レベルの通信プロトコル２２４及び２２６とが組み合わされたものであり、この組み合わされたものは、他のファイアウォールを攻撃されやすくする複雑な通信プロトコル・ソフトウェアの必要性がない。例えば、図４を参照して説明された従来技術とは異なり、ネットワーク・プロトコル・スタック２３２内の欠陥又は構成ミスは、署名検証ハードウェア２２２のバイパスにつながる可能性はない。
【００４８】
攻撃へのファイアウォールの露出を制限するべく単純な通信メディアを使用するファイアウォールとは異なり、署名検証ハードウェア２２２は、内部及び外部ホスト・コンピュータ２２８及び２３０と通信する高性能メディア・リンク２２２ａ及び２２２ｂを有し、メッセージ内の全データをチェックすることができる。内部及び外部ホスト・コンピュータ２２８及び２３０は、遠隔ネットワーク上で要求されるだけの数の他のコンピュータと通信することができる。したがって、本発明は、高いセキュリティと高い性能との組み合わせを提供する。
【００４９】
ここで、図１０を参照すると、本発明のファイアウォール・システム３００が、より詳細に示される。３０４で内部ホスト・コンピュータ３０６に、３０８で外部ホスト・コンピュータ３１０に接続されたファイアウォールそれ自体が３０２で示される。内部ホスト・コンピュータ３０６は、３１２で送信元コンピュータ・ネットワーク（図示せず）に接続され、外部ホスト・コンピュータ３１０は、３１４で宛先コンピュータ・ネットワーク（図示せず）に接続される。内部ホスト・コンピュータ３０６、ファイアウォール３０２及び外部ホスト・コンピュータ３１０は、送信元コンピュータ・ネットワークから宛先コンピュータ・ネットワークへの一方向接続を提供する。送信元ネットワーク及び宛先ネットワーク間の双方向通信は、ファイアウォール・システム３００の２つの別個のインスタンスを並列に用いて達成される。
【００５０】
通信は、それぞれ３１２及び３１４でファイアウォール・システム３００に接続された送信元ネットワークから宛先ネットワークに渡るメッセージからなる。各々のメッセージが、プロトコル・スタック３１６によって内部ホスト・コンピュータ３０６において受信され、該スタックは、既述のように、多数の層を有し、オペレーティング・システム（図示せず）によって実装される。プロトコル・スタック３１６は、メッセージを通常の複雑な形態で受信し、それをアプリケーション・レベルのデータに変換してプロキシ３１８に渡す。プロキシ３１８は、標準ソフトウェア・インタフェースによってプロトコル・スタック３１６の上部からアプリケーション・レベルのデータを受信し、それを、例えば１０3バイトの長さの一連のデータ・フレームに変換する。各々のデータ・フレームは、そのサイズと共にメッセージ内のフレームのシーケンスの通し番号によってそれをラベル付けするヘッダを有する。第１のフレームは、メッセージ内のフレームの番号をさらに含むこともできるし、或いは、別の方法として、メッセージ内の最後のフレームは、それが最後のフレームであることを示すコードを含むこともできる。この例においては最初のフレームであることが好都合であるメッセージ内のフレームの１つは、デジタル署名が完全なままである場合には、送信元ネットワークによってメッセージに適用されるデジタル署名を含む。図１１と関連させてより詳細に後述されるように、デジタル署名は、メッセージ内の全データ上で動作する暗号プロセスを用いて得られる。それは、メッセージのコンテンツ内の変化に極めて敏感である。
【００５１】
プロキシ３１８は、データ・フレームをフレーム送信部３２０に渡し、ネットワーク・プロトコル・スタックの最下位のプロトコル・レベル（有効には下位レベルのネットワーク・ドライバ）を実行する。フレーム送信部３２０は、データ・フレームを伝送に適するように処理し、接続３０４を介してそれらをファイアウォール３０２に出力する。
【００５２】
内部ホスト・コンピュータ３０６内のフレーム送信部３２０からのデータ・フレームが、ファイアウォール３０２内のフレーム受信部３２２に渡る。フレーム受信部３２２は論理回路に実装され、その機能は、単純にデータをデータ・リンクから受信し、幾つかのデータ・フレーム毎に受信を通知することである。フレーム受信部３２２はまた、ネットワーク・プロトコル・スタックの最下位のプロトコル・レベルにも対応する。それは、データ・フレームから署名フレームを取り出して、署名検査部３２４内の署名ストア（図示せず）に読み込む。それは、メッセージ内の他の全てのデータ・フレームを受け取って、それらを同じく署名検査部３２４内のバッファ・ストア（図示せず）の中に番号順に並べる。署名ストア内の署名及びバッファ・ストア内のデータは、デジタル署名を有効にするか又は無効にするために、署名検査部３２４によって使用される。署名検査部３２４は、暗号プロセスを用いて、バッファ・ストアのメッセージ・コンテンツから有効なデジタル署名を算出する。署名ストア内のデジタル署名が、署名検査部３２４によって算出されたものに適合しない場合には、それは無効にされ、メッセージは拒否される、すなわち、外部ホスト３１０には伝送されない。署名適合を得るのに失敗するということは、署名がメッセージに適用されてから署名及びメッセージの少なくとも一方が何らかの形で基準に合わなくなったことを意味する。メッセージ内のデジタル署名が署名検査部３２４によって算出されたものに適合する場合には、それは有効にされ、次いで、バッファ・ストアのコンテンツが、下位レベルのプロトコルのフレーム・センダ３２６によってデータ・フレームに再フォーマットされ、接続３０８を介して外部ホスト３１０に伝送される。
【００５３】
外部ホスト３１０において、ファイアウォール３０２からのデータ・フレームは、フレーム受信部３２２と同等の下位レベルのプロトコルのメッセージ受信部３２８によって受信される。データ・フレームは、プロトコル通信を宛先ネットワークに提供することによって送信元ネットワークをさらにシミュレートするプロキシ・ソフトウェア３３０によって、メッセージ形式に再組み立てされる。次に、それは、メール・サーバ（図示せず）への接続３１４を介した転送及び宛先ネットワークへの伝送のためにそれをフォーマットするプロトコル・スタック３３２に渡る。
【００５４】
署名検査部３２４は、図１１により詳細に示される。この例においては、述べられたように、フレーム受信部３２２からの最初のフレームはメッセージ・デジタル署名であり、それは、メッセージ・フレーム・シーケンスから取り出され、メッセージ・デジタル署名ストア内に置かれる。最初のフレーム以外のメッセージ内の全てのフレームは、一度に１つのフレームを、それらが通し番号順に格納される先入れ先出し（ＦＩＦＯ）メッセージ・バッファ・ストア３５１に連続して渡す。メッセージ・バッファ・ストア３５１の、一番最近に受信されたフレームを収容する部分が、ハッシュ関数プロセッサ３５２によって読み取られ、該プロセッサは、矢印３５６で示されるように、ハッシュ関数ストア３５４から得られるハッシュ関数をそれに適用することによって、このフレームを処理する。全てのメッセージが処理されるまで、連続するフレームについてこれを繰り返す。ハッシュ関数プロセッサ３５２は、処理される各々のフレームが全ての先行するフレームからの寄与と組み合わされた寄与を作成して、全てのメッセージについてのハッシュ番号が累積されるように、増分動作する。ハッシュ関数プロセッサ３５２が増分動作するか又は一度に１フレームで動作するかは重要ではなく、ハッシュ関数プロセッサは、任意の長さのデータ又はメッセージのサブ分割片で動作することができるが、全メッセージが読み取られている間アイドル状態にあるのではなくデータの到着と並行して実行することができるため、増分動作する場合には、処理はより迅速である。
【００５５】
ハッシュ関数処理は周知であり、詳細には説明されず、ハッシュ関数処理は、メッセージ内のデータを、そのデータに固有のハッシュ番号に変換し、ハッシュ番号の値は、データ内の変化、２つの２進数変換のような非常に小さな変化に対しても極めて敏感である。ハッシュ番号はメッセージ内の全てのデータから得られるため、署名検査部３２４は、ソフトウェア・アプリケーション・レベルで動作する。累積されたハッシュ番号は、矢印３５８で示されるように、ハッシュ関数ストア３５４に渡される。
【００５６】
ハッシュ番号は、キー・ストア３６２において暗号キーでそれを暗号化する暗号ソフトウェア３６０によって、ハッシュ関数ストア３５４から読み取られる。この暗号化の結果が、３５２において受信されたデータに関して有効なデジタル署名であり、それが、有効なデジタル署名ストア３６４に入力される。暗号化は、対称的又は非対称的とすることができ、両方の手法ともデータ暗号化の分野において公知である。対称的暗号化においては、送信元ネットワークとファイアウォール３０２の両方によって同じ暗号キーが使用される。非対称的暗号化においては、署名を生成するために送信元ネットワークによって秘密キーが使用され、署名をチェックするために署名検査部３２４によって検証キーが使用される。秘密キーの詳細は、公には開示されないが、検証キーは開示することができる。秘密キー及び検証キーは、それぞれ専用キー及び公開キーと呼ばれることがある。
【００５７】
３５０において格納されるメッセージ・デジタル署名及び３６４において格納される有効なデジタル署名は、それらを比較するコンパレータ３６６によって読み取られる。これらの署名が等しくない場合には、それは、デジタル署名が送信元ネットワークのチェッカー（例えば、図９におけるチェッカー機能２５０を参照）によってメッセージに適用された後に、メッセージのデジタル署名又はメッセージ内のデータが何らかの形で基準に合わなくなったことを意味し、該メッセージは、３６８において拒否される。署名が等しい場合には、メッセージ内のデータは、送信元ネットワークのチェッカーを出てから完全な状態のままであり、コンパレータ３６６は、送信メッセージ・ストア３７０に格納されたデータ書き込み命令の出力をトリガし、この命令を、接続３７２を介してメッセージ・バッファ・ストア３５１に渡し、メッセージ・バッファ・ストア３５１が宛先ネットワークへの前方送信のために３７４のメッセージを図１０におけるフレーム・センダ３２６に書き込む。メッセージの残りがメッセージ・バッファ・ストア３５１に読み込まれる前にメッセージ・デジタル署名が取り出されるので、それは宛先ネットワークによって受信されず、それを用いてチェック・プロセスを逆行分析し、ファイアウォール・システム３００を破ることはできない。
【００５８】
本発明の２つのファイアウォール３００は、署名されていないデータを宛先ネットワークに伝送することを可能にする１つのファイアウォールの自然発生的な障害に対する保護を提供するために直列的に使用することができる。２つのこうしたファイアウォール３００は、互いに反対の方向のデータ・フローが双方向通信を提供するように並列的に使用し、配置することができる。
【図面の簡単な説明】
【００５９】
【図１】標準通信プロトコルの複雑さを示す図である。
【図２】アプリケーション・レベルのデータ形式を示す図である。
【図３】送信されることになる通信５０が、ＡからＺで示されたアプリケーション・データ５２と、デジタル署名５４とからなることを示す。
【図４】双方向ネットワーク・プロトコル・スタックを介した通信によるアプリケーション・レベルのデータ・チェックを用いる従来技術のファイアウォールの概略図である。
【図５】双方向ネットワーク・プロトコル・スタックを介した通信による署名検証を用いる従来技術のファイアウォールの概略図である。
【図６】ネットワーク・プロトコル・スタックを介した入力通信、及び下位レベルのプロトコルを用いる出力通信によるアプリケーション・レベルのデータ・チェックを用いる従来技術のファイアウォールの概略図である。
【図７】各々が別個のネットワーク・インタフェースを駆動する２つの別個のネットワーク・スタックを介した通信によるアプリケーション・レベルのデータ・チェックを用いる従来技術のファイアウォールの概略図である。
【図８】従来技術のファイアウォールのハードウェア実装についての概略図である。
【図９】本発明のファイアウォールの概略図である。
【図１０】図９と比較して、より詳細に示された本発明のファイアウォールのブロック図である。
【図１１】図１０のファイアウォールに組み込まれた署名検査部をより詳細に示すブロック図である。
【符号の説明】
【００６０】
１１２ａ  最上位のプロトコル・レベル
１１８  ネットワーク・スタック
１２２  ネットワーク・スタック
１３２  ファイアウォールのネットワーク・プロトコル・スタック
１４４  ネットワーク・プロトコル・スタック
１４４ａ  ネットワーク・プロトコル・スタック１４４の最上位のプロトコル・レベル
１４６  単純な下位レベルの専用通信機構
１５０  接続
１５２  接続
１５６  通信機構
１６０  送信コンピュータ・システム
１７４  ネットワーク・プロトコル・スタック
１７４ａ  最上位のプロトコル・レベル
１７６  ネットワーク・プロトコル・スタック
１７６ａ  最上位のプロトコル・レベル
１８２  遠隔コンピュータ・システム
１８４  遠隔コンピュータ・システム
２０４  下位レベルのプロトコル
２０６  下位レベルのプロトコル
２０８  遠隔コンピュータ
２１０  遠隔コンピュータ
２１２  ネットワーク・プロトコル・スタック
２１４  ネットワーク・プロトコル・スタック
２１６  相対的に下位のレベル（例えば、ネットワーク・レベル）にリンクする断続線
２２２ａ  下位レベルの通信プロトコルへのリンク
２２２ｂ  下位レベルの通信プロトコルへのリンク
２２４  下位レベルの通信プロトコル
２２６  下位レベルの通信プロトコル
２２８  内部ホスト・コンピュータ
２３０  外部ホスト・コンピュータ
２３２  ネットワーク・プロトコル・スタック
２３４  ネットワーク・プロトコル・スタック
２３６  高性能接続メディア
２４０  宛先コンピュータ
２４２  ネットワーク・プロトコル・スタック
２４４  ネットワーク・プロトコル・スタック
３０４  接続
３０８  接続
【図１】
2007538444.tif 000003
【図２】
2007538444.tif 000004
【図３】
2007538444.tif 000005
【図４】
2007538444.tif 000006
【図５】
2007538444.tif 000007
【図６】
2007538444.tif 000008
【図７】
2007538444.tif 000009
【図８】
2007538444.tif 000010
【図９】
2007538444.tif 000011
【図１０】
2007538444.tif 000012
【図１１】
2007538444.tif 000013
【国際調査報告】
2007538444.tif 000014
2007538444.tif 000015