JP2007036834A - 暗号装置、プログラム、記録媒体、および方法 - Google Patents
暗号装置、プログラム、記録媒体、および方法 Download PDFInfo
- Publication number
- JP2007036834A JP2007036834A JP2005219050A JP2005219050A JP2007036834A JP 2007036834 A JP2007036834 A JP 2007036834A JP 2005219050 A JP2005219050 A JP 2005219050A JP 2005219050 A JP2005219050 A JP 2005219050A JP 2007036834 A JP2007036834 A JP 2007036834A
- Authority
- JP
- Japan
- Prior art keywords
- header
- encrypted
- procedure
- data
- encryption
- 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.)
- Withdrawn
Links
Images
Abstract
【課題】 既に暗号化されているかを判定する手段がなく、多重に暗号化を行っていた。
【解決手段】 既に暗号化されたデータを送信する際に、パケットのヘッダに暗号化を意味するデータを付加する。送信側端末はヘッダに該データが付加されていた場合、暗号処理を行わない。同様に、受信側端末もヘッダに該データが付加されていた場合、復号処理を行わない。トンネルの入り口にあたるセキュリティゲートウェイは受信したパケットのヘッダに該データが付加していた場合、受信したパケットのヘッダ部分のみを暗号処理対象とする。同様に出口にあたるセキュリティゲートウェイは受信したパケットのヘッダ部分のみを復号処理対象とする。
【選択図】 図4
【解決手段】 既に暗号化されたデータを送信する際に、パケットのヘッダに暗号化を意味するデータを付加する。送信側端末はヘッダに該データが付加されていた場合、暗号処理を行わない。同様に、受信側端末もヘッダに該データが付加されていた場合、復号処理を行わない。トンネルの入り口にあたるセキュリティゲートウェイは受信したパケットのヘッダに該データが付加していた場合、受信したパケットのヘッダ部分のみを暗号処理対象とする。同様に出口にあたるセキュリティゲートウェイは受信したパケットのヘッダ部分のみを復号処理対象とする。
【選択図】 図4
Description
本発明は、通信時にデータを暗号化する方法に関する。詳細には、既に暗号化されたデータを送信する際に暗号化済を意味するデータを添付し、既に暗号化されているか否か判定可能にすることにより、再度暗号処理を行うことを避ける、もしくは暗号処理していない部分のみを暗号処理することを可能にし、もって暗号化に要する計算負荷の削減、通信速度の向上を行う、暗号装置、プログラム、記録媒体、および方法に関する。
インターネット上で安全に通信を行う仕様の1つに、IPsec(IP security)という技術がある。IPsecは、RFC2401(Security Architecture for the Internet Protocol)を中心に、複数のRFCにより規定されている。IPsecは、IP層で認証・暗号化処理を行う。そのため、IP層よりも上位にある、アプリケーション層やTCP/UDP層などで認証・暗号化処理を行わなくとも、安全な通信を行うことが可能となる。
以下、IPsecについて説明する。
IPsecで実現できる機能として、以下のことが挙げられる。
・アクセス制御:接続元のアドレスなどに基づいて接続の許可・不許可を行う。
・通信データの完全性の保証:通信データが通信経路の途中で改竄されていないことを保証する。
・通信内容の秘匿:通信データを暗号化して、通信経路上で通信データを傍受されても通信データの内容が容易に判別できないようにする。
・アクセス制御:接続元のアドレスなどに基づいて接続の許可・不許可を行う。
・通信データの完全性の保証:通信データが通信経路の途中で改竄されていないことを保証する。
・通信内容の秘匿:通信データを暗号化して、通信経路上で通信データを傍受されても通信データの内容が容易に判別できないようにする。
IPsecは、上記機能を実現するために、複数の技術から構成されている。
IPsecではAH(Authentication Header)とESP(Encapsulating Security Payload)というセキュリティプロトコルを用いる。AHは認証(通信データの完全性の保証)に用い、ESPは暗号化(通信内容の秘匿)に用いる。AHはRFC2402、ESPはRFC2406で規定されている。AH、ESPには、それぞれトランスポートモードとトンネルモードの2つのモードがある。トランスポートモードはIPパケットのペイロード部分をセキュリティプロトコルの処理対象にし、トンネルモードはIPパケット全体を処理対象とする。
トランスポートモード、トンネルモードにおいて、IPv4、IPv6それぞれに、AH、ESPを適用した場合の図を、図19、図20、図21、図22、図23、図24に挙げる。ここで、図中にあるTCPヘッダはトランスポートコントロールプロトコルのみを示すものではなく、トランスポート層で用いられるプロトコルのヘッダを意味するものである。よって、図中のTCPヘッダの位置には、UDPヘッダやICMPヘッダが入ってもよい。AHではIPパケット全体が認証の対象となる。ESPでは暗号化される範囲はESPヘッダの直後からESPトレイラーまで、認証される範囲はESPヘッダからESPトレイラーまで、となる。図示しないが、AH、ESPの両方を適用することも可能である。その場合、送信時はESP、AHの順で、受信時はAH、ESPの順で処理が行われる。
IPsecでは鍵、暗号アルゴリズムなどを管理するために、SA(Security Association)というパラメータのセットを用いる。SAを管理するデータベースをSAD(Security Association Database)と呼ぶ。SAのパラメータとして、通信する2点間の識別子、SPI(Security Parameter Index)、セキュリティプロトコルの種類、暗号アルゴリズムとその鍵、SAの生存時間、暗号化アルゴリズムで用いるIVの値、カウンタがある。SAには方向があり、一組の双方向通信を行うためには2つのSAが必要となる。
セキュリティポリシーとは、一般には「何を」「何から」「どのように」守るかを示す行動指針を指すが、IPsecにおけるSP(Security Policy)は、どのようなIPパケットに対してIPsecを適用するか否か(アクセス制御)を示す。SPのパラメータとしては、IP層プロトコル番号、IPアドレス、ネットワークアドレス、トランスポート層プロトコル、ポート番号、ユーザの識別子がある。SPを管理するデータベースをSPD(Security Parameter Database)と呼ぶ。
一例として、FreeBSDというオペレーティングシステムで動作する、KAMEプロトコルスタックにおけるSPの設定方法について説明する。KAMEでSPを設定する方法は、setkeyコマンドを用いる方法と、スクリプトを用いてマシン起動時に設定する方法の2つがある。
setkeyコマンドを用いて設定する場合、対話形式でSPを管理者が入力する方法と、あらかじめSPを記述したファイルを用意し、それをsetkeyコマンドに読み込ませて設定する方法がある。図25の環境を例に説明する。図25では、ルータAの外側(WAN側)のネットワークインタフェースには2001:340:2::1のアドレスが割り当てられ、内側(LAN側)のネットワークインタフェースには2001:340:2:100::1が割り当てられているとする。ルータAは、2001:340:2:100::/64のプレフィックスを管理している。ルータAのサブネット内には、ホストAがあり、2001:340:2:100::2のアドレスを持つものとする。同様に、ルータBは外側のネットワークインタフェースに2001:340:2::2、内側のネットワークインタフェースに2001:340:2:200::1のアドレスが割り当てられ、2001:340:2:200::/64のプレフィックスを管理し、2001:340:2:200::2のアドレスを持つホストBがあるものとする。図25において、ホストAとホストB間で通信を行い、ルータAとルータB間でIPsecトンネルモードを双方向に行う場合を説明する。ルータAに図26に示すファイルを、ルータBに図27に示すファイルを用意し、setkeyコマンドを用いて読み込ませ、設定する。その後、後述するIKEプログラムを用いてSAを設定することにより、ルータAとルータB間では、ホストAとホストB間の通信についてIPsecトンネルモードが実施される。ここで、設定ファイルの「spdadd」はSPDにSPを追加することを示すコマンドであり、他に削除を示す「spddelete」などがある。次のアドレスは送信元、さらにその次のアドレスは送信先アドレスを示し、処理対象となるアドレスは何か、ということを示す。図26、図27に示したようなアドレス指定だけでなく、図28、図29で示すようにプレフィックスで指定することも可能である。図28のSPをルータAに、図29のSPをルータBに設定した場合、ルータAとルータB間では、2001:340:2:100::/64と2001:340:2:200::/64のプレフィックスを持つ通信全てにIPsecトンネルモードが適用される。次の「any」の個所でトランスポート層プロトコルを指定する。「any」は全てのトランスポート層プロトコルが対象となることを示す。他に、「icmp」といった指定などが可能である。次の「-P in」「-P out」で、SPを適用する方向を指定する。次の「ipsec」は、条件に適合したパケットにIPsec処理を行うことを示す。他に、条件に適合したパケットに何も処理しないことを示す「none」や、パケットを廃棄する「discard」などの指定が可能である。次に、セキュリティプロトコル、モード、処理を行うノード、レベルを指定する。セキュリティプロトコル「esp」は暗号処理を行うことを示し、「ah」は認証を行うことを示す。次の項で、モードを指定する。「transport」でトランスポートモード、「tunnel」でトンネルモードとして動作させることを示す。次のスラッシュ(/)とスラッシュの間には、処理を実際に行う機器のアドレスを示す。トランスポートモードの時は省略できる。トンネルモードの場合は、セキュリティゲートウェイのアドレスを(2箇所のセキュリティゲートウェイ間で処理を行うため)2つ指定する。最後のレベルは、条件に一致したパケットに対し、どれぐらいの厳しさで処理を行うかを示す。例えば「require」は、条件に一致したパケットには必ず処理を行うことを強制し、行えなければパケットを破棄する。「use」の場合、条件に一致したパケットに処理を行うようにするが、処理が行えなくとも、通信を許可する。図25、図26、図27、図28、図29ではIPv6アドレスを用いた例を図示したが、IPv4アドレスでもIPsec通信は可能であり、SPの設定も可能である。
機器起動時にSPを設定するには、/etc/rc.confファイルにipsec_enable="YES"と記述し、SPを記述した(例えば図26、図27で示したような)ファイルをipsec_fileという項目で指定しておくことにより、FreeBSD起動後、自動的にSPを設定することが可能である。
なお、このSPの記述方法はあくまでKAMEにおける例であり、別の記述方法も存在する。
IPsecを行うために、IPsec通信する2点間でSAのパラメータを共有する必要がある。また、暗号アルゴリズムで用いる鍵も共有する必要がある。IPsecでは、その管理方法として、手動鍵管理と自動鍵管理を定義している。手動鍵管理とは、管理者が通信以外の方法を用いて2点間でパラメータを共有する方法である。例えば鍵データを郵送で送る、電話で鍵データを教えあう、といった方法により、離れた2点間でパラメータを共有する。しかし、SAの確立と消滅が頻繁に発生する環境などでは事実上管理が不可能となる。そのため、通信を用いて自動でパラメータを交換する方法が望まれ、自動鍵管理が考案された。自動鍵管理の方法として、IPsecではIKE(Internet Key Exchange)を用いる。IKEはRFC2409で規定されている。IKEはIKE自身のSAを交換するフェーズ1と、フェーズ1により確立された(IKEの)SA下で安全にIPsecのSAのパラメータを交換するフェーズ2という2つのフェーズから成る。フェーズ1では、認証方式として電子署名、公開鍵暗号、Pre-shared Keyの3つが定義されており、IKEを実行するプログラム同士がどれか1つを合意して用いる。IKEを用いてIPsecのSAが設定されることにより、IPsec通信が可能となる。
又、従来例としては、例えば特許文献1と特許文献2と非特許文献1から非特許文献6をあげることが出来る。
特開平10-327193(出願人:日本電気株式会社)
特開2002-077242(出願人:株式会社エヌ・ティ・ティ・ドコモ)
RFC2401、Kent, S.、and R. Atkinson、「インターネットプロトコルのためのセキュリティアーキテクチャ(Security Architecture for the Internet Protocol)」、http://www.ietf.org/rfc/rfc2401.txt、1998年 11月。
RFC2402、Kent, S.、and R. Atkinson、「IP 認証ヘッダ(IP Authentication Header)」、http://www.ietf.org/rfc/rfc2402.txt、1998年 11月。
RFC2406、Kent, S.、and R. Atkinson、「IP 暗号ペイロード(ESP)(IP Encapsulating Security Payload (ESP))」、http://www.ietf.org/rfc/rfc2406.txt、1998年 11月。
STD-2、Reynolds, J.、and J. Postel、"Assigned Numbers"、STD 2、 http://www.ietf.org/rfc/rfc1700.txt、1994年 10月. See also: http://www.iana.org/numbers.html
RFC791、Postel, J., 「Internet Protocol」, STD 5、http://www.ietf.org/rfc/rfc791.txt、1981年9月。
RFC2460、Deering, S. and R. Hinden, 「Internet Protocol, Version 6 (IPv6) Specification」, http://www.ietf.org/rfc/rfc2460.txt、 1998年12月。
以上説明したように、IPsecは、IP層で認証・暗号化処理を行い、IP層よりも上位にある、アプリケーション層やTCP/UDP層などで認証・暗号化処理を行わなくとも、安全な通信を行うことが可能となる。
しかし、例えば複写機内のデータや、サーバ上のコンテンツなど、あらかじめデータが暗号化されている場合が増えつつある。これは、万一、複写機やサーバがセキュリティ上の攻撃を受けデータを奪われても、暗号化してあれば被害を抑えることが可能なためである。
一方、説明したように、既存の暗号プロトコル(IPsecなど)は、暗号化対象のデータがすでに暗号化されているか否かは関知せず、送信先アドレス、送信元アドレス、ポート番号などから構成されるセキュリティポリシーに合致した全てのデータを暗号化の対象としていた。言い換えると、既にデータが暗号化されていてもセキュリティポリシーに合致した場合、暗号化されたデータをさらに暗号化していた。既に暗号化されたデータの暗号強度が弱い場合や、何らかの理由で多重に暗号化を行う必要があるなら問題ないが、既に十分な暗号強度でデータが暗号化されている場合、さらに暗号化を行うのは冗長であると言える。暗号化処理は一般に計算負荷が高い処理であり、行う必要がない暗号化処理を行わないほうがよいことは言うまでもない。そのためには、何らかの手段でデータが暗号化されているか否かを判定し、多重に暗号化を行うことを回避する手段が必要となるが、そのような技術はなかった。
以上のような課題を解決する先行技術はないが、関連技術を挙げる。
特開平10-327193(出願人:日本電気株式会社)では、暗号ゲートウェイにおいて固定的に暗号化アルゴリズムが用いられる点を改良し、データパケットごとに暗号化アルゴリズムを変更して適用する方法を提案している。特開平10-327193では、該方法を実現するフローの一部として、機密性が低い情報に対しては暗号化作業が排除される手段を用いている。この手段では、パケット受信時に、パケットデータのIPヘッダ中のプロトコルフィールドから上位のプロトコルを判別し、暗号化/復号化を行う上位プロトコルかを判別しているが、IPsecに関するヘッダ(認証ヘッダ)をチェックして該ヘッダがある場合に暗号化/復号化処理を省略するのみであり、本提案で挙げた課題を解決していない。
特開2002-077242(出願人:株式会社エヌ・ティ・ティ・ドコモ)では、トランスポート層に対応したヘッダまたはヘッダを圧縮した圧縮ヘッダをオプションとして含むネットワーク層に対応したヘッダを生成し、このヘッダを圧縮されたペイロードに付加したパケットを伝送している。特開2002-077242は圧縮を、より広範囲に適用してデータ量の削減を図ったものであり、暗号化していない部分のみ暗号化する、という課題に対処していない。
本発明は上記の問題に鑑みてなされるものであり、既に暗号化されたデータを送信する際に暗号化済を意味するデータを添付し、既に暗号化されているか否か判定可能にすることにより、再度暗号処理を行うことを避ける、もしくは暗号処理していない部分のみを暗号処理することを可能にし、暗号化に要する計算負荷の削減し通信速度の向上を行う、暗号装置、プログラム、記録媒体、および方法を提供することを目的とする。
そして、本発明は上記目的を達成するために、送信側暗号装置は、セキュリティポリシーを設定する手段と、データが暗号化済であるかのデータを記録する手段と、該記録されたデータを読み出し暗号化済を意味するデータをパケットのヘッダに追加する手段と、該設定されたセキュリティポリシーを読み出す手段と、該ヘッダを検出する手段と、セキュリティポリシーに従い暗号処理を制御する手段と、該ヘッダが検出された場合に暗号処理を行わない手段とを備え、受信側暗号装置は、セキュリティポリシーを設定する手段と、該設定されたセキュリティポリシーを読み出す手段と、受信したパケットに暗号化済を意味するヘッダが付加しているか検出する手段と、該暗号化済を意味するヘッダが付加していた場合に復号処理を行わない手段と、データが暗号化済であるかのデータを記録する手段と、を備えたものである。
また、第2の課題解決手段は、トンネル入り口にあたる暗号装置は、セキュリティポリシーを設定する手段と、該設定されたセキュリティポリシーを読み出す手段と、受信したパケットに暗号化済を意味するヘッダが付加しているか検出する手段と、該暗号化済を意味するヘッダが付加していた場合に受信したパケットのヘッダ部分のみを暗号処理し新たに作成されるIPヘッダに暗号化済を意味するデータを付加する手段とを備え、トンネル出口にあたる暗号装置は、セキュリティポリシーを設定する手段と、該設定されたセキュリティポリシーを読み出す手段と、受信したパケットに暗号化済を意味するヘッダが付加しているか検出する手段と、該暗号化済を意味するヘッダが付加していた場合に受信したパケットのヘッダ部分のみを復号処理し新たに作成されるIPヘッダに暗号化済を意味するデータを削除する手段とを備えたものである。
また、第3の課題解決手段は、該第2の課題解決手段の暗号装置に暗号処理を行う暗号ハードウェアを備え、該暗号化を意味するヘッダが付加していた場合にソフトウェアで暗号処理を行い、付加していない場合に暗号ハードウェアで処理する手段を備えたものである。
上述したように本発明の暗号装置は、既に暗号化されたデータを送受信する際、そのデータに対する再度の暗号処理を省略できるので、暗号化に要する計算負荷を削減できるという効果が得られ、よって暗号化による計算に要した時間を削減することとなり通信速度が向上した暗号装置を提供できる。
以下、本発明の実施の形態を、図面を参照しながら説明する。実施例ではIPv4、IPv6を特に区別して説明しないが、本発明は両方に適用可能である。また、IPv4、IPv6に適用する場合に異なる処理が必要な場合ついては適宜説明を加える。
なお、暗号化、という単語を用いた場合、暗号アルゴリズム(例えば3DESなど)を用いて平文データを解読困難なデータにすることを意味する場合と、いわゆる暗号処理全般を適用することを示す場合があるが、本実施例では、前者の意味で用いることとする。
また、本発明で、暗号化済データ、という用語を用いる。これは、IP層以外の層、例えば別のアプリケーションプログラムなどで、あらかじめ暗号化・認証データの作成などを行われたデータを指すものとする。例えば、サーバに暗号化して記録されているコンテンツデータや、複写機に暗号化して保存されている文書データなどが、暗号化済データである。
(第1の実施形態)
<トランスポートモード時>
図1は第1の実施形態を実施する環境の例を示す図である。端末2と端末3があり、両端末はインターネット1をはさんで通信を行う。ここで、端末2と端末3間に、ルータ、ハブなどの通信を中継する機器があってもよい。インターネット1の物理層の種類は特に種類は問わない。IEEE802.11、無線LANなど、物理層の上位でインターネットプロトコルによる通信ができれば問題ない。本実施の形態では、物理層は特に問わない。ここで必要なのは、端末1と端末2がインターネットプロトコルを用いて通信可能であることである。
<トランスポートモード時>
図1は第1の実施形態を実施する環境の例を示す図である。端末2と端末3があり、両端末はインターネット1をはさんで通信を行う。ここで、端末2と端末3間に、ルータ、ハブなどの通信を中継する機器があってもよい。インターネット1の物理層の種類は特に種類は問わない。IEEE802.11、無線LANなど、物理層の上位でインターネットプロトコルによる通信ができれば問題ない。本実施の形態では、物理層は特に問わない。ここで必要なのは、端末1と端末2がインターネットプロトコルを用いて通信可能であることである。
図2および図3は、端末2および端末3の一般的な構成を示す図である。端末2および端末3の構成は基本的に同等で問題ないため、図2を用いて端末2についてのみ構成について説明する。CPU201が端末2の全体の動作を制御する。RAM202は一時記憶装置(Random Access Memory)であり、ROM203はプログラムなど、消去不可能なデータが組み込まれている不揮発性メモリ(Read Only Memory)である。バス204は、各モジュールを接続する内部バスである。ネットワークインタフェース205は、端末2が外部機器とデータ送受信を行う際に使用するインタフェースである。記録装置206は、例えばハードディスクなどであり、読み書きが可能で、電源を落としても記録された内容は消えないものとする。記録装置206には、文書データやコンテンツデータなどが記録されているものとする。さらに、ディスプレイやキーボード、マウス、プリントアウト部といった入出力機器用のインタフェースなどを備えていてもよい。
端末2および端末3では、両端末起動時に、記録装置206にファイルに記録されたセキュリティポリシーを読み込み、RAM202にセキュリティポリシーを記録し、セキュリティポリシーに従いパケットを処理するようになっているものとする。本実施例では、セキュリティポリシーが設定されている場合、トランスポートモードで設定されているとする。
では、図1の環境で、端末2から端末3にデータを送信する場合について、図2、図3、図4、図5を主に用いて説明する。図4は、本発明において端末間で通信する際の送信側端末の動作フローを示す図であり、本実施例では端末2の動作を意味するものとする。同様に、図5は、本発明において端末間で通信する際の受信側端末の動作フローを示す図であり、本実施例では端末3の動作を意味するものとする。
端末2において、CPU201は記録装置206からデータを読み出し、RAM202を用いてパケットを生成する。ここで、記録装置206で保存してあるデータは、暗号化されているデータである場合は暗号化されていることを意味するフラグがあり、CPU201がデータを暗号化されているか否か判別可能とする。判別した結果を、RAM202に保存する。フラグのほかに、例えば、暗号化されていることを意味する文字列であるなど、別のデータ形式で保管されていても問題ない。また、フラグなどの補助データを用いた手段以外に、該データが暗号化されているか否かを判別する手段は一般にはない。暗号化されているか不明なデータを一旦復号化してみて、あるパターンに一致すれば元のデータは暗号化されていると判別することは可能であるが、その手段は公知である。将来、補助データを用いずとも手段が発見された場合にはそれを用いてもよい。
ここから、図4を参照しながら説明する。
S401においてスタート後、S402において、CPU201はRAM202に保存した暗号化されているかのフラグを参照し、データが暗号化されているか否かを判別する。データが暗号化されていない場合NOとなり、S404に遷移する。データが暗号化されていた場合、YESとなり、S403に遷移する。
S403では、RAM202において生成されたパケットに、暗号化済を意味する内容をヘッダに追加する。これを、暗号化済ヘッダを追加する、と表現することにする。
ここで、IPv4の場合は、暗号化済を意味するデータをヘッダに付加する方法として、IPv4にあるプロトコルフィールドを用いる方法、0から40バイトまでのサイズを許すオプションフィールドを用いる方法、(AHヘッダやESPヘッダで行われているように)新たなヘッダを定義し、これをIPヘッダの後に挿入する方法の3つがある。
プロトコルフィールドを用いる場合、暗号化済を意味する番号を設定する。この番号は、IANAが割り当てている番号(STD-2)で割り当てられていない数(101から254のどれか)を用いるものとする。番号の数値自体は重要ではなく、暗号化済、ということが表現できればよい。この方法で暗号化済ヘッダが追加された場合、暗号化済ヘッダかどうかチェックするには、プロトコルフィールドの番号が、暗号化済を意味する番号かを比較して判定すればよい。
オプションフィールドを用いる場合、RFC791で10種類のオプションが定義されているため、新しいオプションを定義することとなる。オプションは、1バイトから成る単一バイトのものと、複数バイトから成るものがある。暗号化済を意味するオプションを定義する上で、暗号化済か否かを表現できればよいので、単一バイトで表現可能である。よって、RFC791で定義されていないTypeを用いて定義可能である。たとえば、Typeとして135(2進数表現で、10000111、つまり、Copiedフラグ0、Classは0、Numberは7)などが望ましい。複数バイトでも表現可能であるが、本実施例では例示しない。この方法で暗号化済ヘッダが追加された場合、暗号化済ヘッダかどうかチェックするには、該オプションフィールドをチェックし、Typeが暗号化済ヘッダを意味する番号か比較して判定すればよい。
新たなヘッダを定義する方法は、例えば、32ビットからなる新しいヘッダを定義する。32ビットのうち、最初の8ビットはプロトコルの種類を示し、先のプロトコルフィールドの場合と同じように、STD-2で割り当てられていない番号を割当て、暗号化済ヘッダを示すとする。次の8ビットはこの新しいヘッダのバイト長とし、プロトコルの種類を含めて、4(4バイト、つまり32ビット)とする。残る16ビットは、特に定義しない。この新しいヘッダがあることが、ペイロードデータが暗号化済のデータであることを示すからである。ただ、例えば、該16ビットで表現されるフィールドで、0なら暗号化されてない、1なら暗号化済である、というふうに定義してもよい。この方法で暗号化済ヘッダが追加された場合、暗号化済ヘッダかどうかチェックするには、該ヘッダの最初のフィールドを参照し、最初の8ビットで示されるプロトコルの種類が暗号化済ヘッダかどうかを比較して判定すればよい。
本実施例では、先のプロトコルフィールドを用いる方法を用いて説明する。番号は、101とする。以上、IPv4の場合を説明した。
IPv6の場合、IPv6のヘッダにはオプションフィールドはないので、かわりに拡張ヘッダを利用する。拡張ヘッダは、RFC2460の4章で定義されている。拡張ヘッダは、8ビットの次ヘッダフィールドと、8ビットのヘッダ拡張長フィールドを必ず有す。次ヘッダフィールドには、今の拡張ヘッダの次にある拡張ヘッダのタイプを記録する。本実施例では、先のIPv4の場合と同様に、STD-2で割り当てられていない番号を使用するものとする。本実施例では、番号を101とする。ヘッダ拡張長フィールドの値は、値ゼロが8バイトの拡張ヘッダサイズを示すと定義されており、8バイトで十分であるため、ゼロとする。もちろん、ゼロ以上でもかまわない。オプションデータに含まれる値は、特に問わない。それは、次ヘッダフィールドが101で示される拡張ヘッダの存在自体が、ペイロードが暗号化済であることを示すからである。次ヘッダフィールドの値が101の拡張ヘッダがない場合、暗号化済データはパケットに格納されていないことを示すとする。もちろん、オプションデータに含まれる値が1なら暗号化済データあり、0なら暗号化済データなし、のように定義しても問題ない。IPv6において暗号化済ヘッダが追加された場合、暗号化済ヘッダかどうかチェックするには、拡張ヘッダを1つづつチェックしていき、該拡張ヘッダの次ヘッダフィールドが暗号化済ヘッダを示す番号であるかを比較して判定すればよい。次ヘッダフィールドが暗号化済ヘッダの番号であった場合、次の拡張ヘッダが暗号化済ヘッダであることは、IPv6の拡張ヘッダの定義よりいうまでもない。以上、IPv6の場合について説明した。
以上のようにして、IPv4もしくはIPv6の場合でも、暗号化済を意味する内容を、ヘッダに付加した後、S404に遷移する。
S404において、CPU201は、RAM202に記録されているセキュリティポリシーを参照し、パケットがセキュリティポリシーで規定された条件に一致するか判別する。セキュリティポリシーが設定されていない場合や、条件に一致しなかった場合、NOとなり、S411に遷移する。セキュリティポリシーで規定された条件に一致した場合、YESとなり、S405に遷移する。
S405において、セキュリティポリシーとして暗号処理ポリシー、つまりESPを行うよう設定されているか判別する。設定されていない場合、暗号処理を行う必要はないので、NOとなり、S408に遷移する。設定されている場合、S406に遷移する。
S406において、CPU201はRAM202に記録されたパケットを参照し、暗号化済ヘッダが設定されているか判別する。本実施例では、IPv4の場合、プロトコルフィールドに値101が設定されているか比較し判別する。IPv6の場合、拡張ヘッダを順に参照し、次ヘッダフィールドに値101が設定されているか判別する。暗号化済ヘッダが設定されていた場合、YESとなり、S410に遷移する。されていない場合、NOとなり、S407に遷移する。
S407において、暗号処理(ESP)を行う。これは、S406における判断で該データは暗号化されていない平文データと判別されていると解釈でき、また暗号処理を行うべきとセキュリティポリシーも設定されている(S405)ことの2点から、実行される。ここで、ESP処理であるので、ESPヘッダがパケットに追加されるのはいうまでもない。なお、本実施例では上記説明したように、セキュリティポリシーが設定され、かつ、平文データの際の際に暗号処理を行うとしたが、暗号処理を行わないようにするのも可能ではある。ただし、セキュリティを高める観点からは、本実施例で説明したようにしたほうがよい。暗号処理が終了したら、S410に遷移する。
S408において、セキュリティポリシーとして認証処理ポリシー、つまりAHを行うよう設定されているか判別する。設定されていない場合、NOとなり、S410に遷移する。設定されている場合、YESとなり、S409に遷移する。
S409において、認証処理、つまり認証データを生成しAHヘッダを追加する。
S410において、次に処理するセキュリティ関連のポリシーがあるか判定する。セキュリティポリシー関連のポリシーとは、本発明では、1つのセキュリティポリシー内で行う暗号処理もしくは認証処理をさすこととする。S410において、次に処理するセキュリティ関連ポリシーがない場合、NOとなり、S413に遷移する。ある場合、YESとなり、S405に遷移する。
S405からS410において、本発明に関わるセキュリティ関連ポリシーがある場合の処理について述べた。途中で、セキュリティ以外のヘッダを作成することがあるかもしれないが、それは各RFCに記述された通りに処理されるものとする。
一方、S411において、セキュリティポリシーに一致しない場合、パケットを廃棄する設定になっているかを判定する。廃棄しない設定の場合、NOとなり、S413に遷移する。廃棄する設定の場合YESとなり、S412に遷移し、パケットを廃棄し、S414に遷移して終了となる。
S413において、セキュリティ以外のパケット生成に関する処理がなされ、生成されたパケットが送信され、S413に遷移して終了となる。
最終的に送信されるパケットは、例えば、暗号化済データを送信する場合で、認証関連のポリシーが設定されていない場合、図6のようなる。認証関連のポリシーが設定されている場合、暗号関連を先に処理したとすると、暗号化済ヘッダと認証データが付加されたパケットの場合は、図7のような構成となる。S402において、データが暗号化されていない(平文データ)、かつ、S404においてセキュリティポリシーがあり、暗号処理関連ポリシーがある場合は、平文データはESPに従い暗号化される。これは、平文データを処理する場合は、本発明では通常のIPsec処理となるを意味する。
次に、端末3において、受信時にどのように処理されるかを、図3と図5を参照しながら説明する。
端末3において、S501においてスタート後、パケットは、ネットワークインタフェース305を通じて受信される(S502)。受信されたパケットはRAM302に一時記録される。
S503において、CPU301は、RAM302に記録されているセキュリティポリシーを参照し、パケットがセキュリティポリシーで設定された条件に一致するか判別する。セキュリティポリシーが設定されていない場合や、条件に一致しなかった場合、NOとなり、S511に遷移する。セキュリティポリシーで規定された条件に一致した場合、YESとなり、S504に遷移する。
S504において、受信したパケットのヘッダが認証ヘッダ(AHヘッダ)であるかチェックする。ある場合、YESとなり、S505に遷移する。ない場合NOとなり、S506に遷移する。
S505において、認証ヘッダに含まれる認証データを確認し、正しいかどうかチェックする。正しい場合YESとなり、S509に遷移する。不正な場合、S514に遷移する。S514においてパケットを廃棄し、S515に遷移して終了となる。
S506において、受信したパケットのヘッダが暗号化済ヘッダかチェックする。暗号化済ヘッダである場合、YESとなり、S510に遷移する。暗号化済ヘッダでない場合NOとなり、S507に遷移する。S510では、受信したペイロードのデータが(ESP外で)暗号化済データであると判断し、RAM302に、該データが暗号化済であることを意味するデータ(例えば、フラグなど)を記録する。この暗号化済であることを意味するデータは、該暗号化済データと組としてテーブルで管理してもよいし、記録装置306に記録してもよい。
S507において、受信したパケットのヘッダが暗号ヘッダ(ESPヘッダ)かチェックする。暗号ヘッダである場合、YESとなり、S508に遷移する。そうでない場合NOとなり、S509に遷移する。図5ではNOの場合、S509に遷移し、処理を継続するようにしたが、ここで、認証・暗号化済・暗号ヘッダ以外の定義されていないヘッダが含まれていると判断し、S513に遷移してパケットを廃棄してもよい。
S508において、復号処理を行う。これは、通常のESPにおける復号処理である。終了後、S509に遷移する。
S509において、次のセキュリティ関連ヘッダがあるか判定する。ある場合、YESとなり、S504に戻る。ない場合、NOとなり、S515に遷移する。
S504からS510において、本発明に関わるセキュリティ関連ヘッダがある場合の処理を述べたが、この途中で、他のヘッダのオプションが発見される場合がある。この場合、各RFCに従って処理されるものとする。
一方、S511において、セキュリティポリシーに一致しない場合、パケットを廃棄する設定になっているかを判定する。廃棄しない設定の場合、NOとなり、S512に遷移する。廃棄する設定の場合、S514に遷移し、パケットを廃棄し、S515に遷移して終了となる。
S512において、受信したパケットに、暗号化済ヘッダがあるか判定する。ない場合NOとなり、S515に遷移する。ある場合、YESとなり、S513に遷移する。
S513において、受信したペイロードのデータが(ESP外で)暗号化済データであると判断し、RAM302に、該データが暗号化済であることを意味するデータ(例えば、フラグなど)を記録する。S510で行った処理と同様に、この暗号化済であることを意味するデータは、該暗号化済データと組としてテーブルで管理してもよいし、記録装置306に記録してもよい。
S515において、受信に関する処理が終了する。この後、受信したデータを記録装置306に記録したりすることとなると思われるが、それは本発明の範囲外である。
このようにして、IPsecの枠外で暗号化されてあるデータは、IPsecの処理過程において、暗号化されることなく、送受信が行われる。さらに、暗号化済ヘッダがない場合は、通常どおりの暗号化処理が行われるようにすることも可能である。
(第2の実施形態)
<トンネルモード時>
本実施例では、2つのサブネット(ローカルネットワーク)があり、それぞれ、セキュリティゲートウェイ(SG)とホストが1つづつある状況を例とする。ここで、SGはルータとしての機能を持つものとする。
<トンネルモード時>
本実施例では、2つのサブネット(ローカルネットワーク)があり、それぞれ、セキュリティゲートウェイ(SG)とホストが1つづつある状況を例とする。ここで、SGはルータとしての機能を持つものとする。
図8は、本実施例を適用する環境を示す図である。SG9はローカルネットワーク4とインターネット1を介し、ローカルネットワーク4には端末2が接続されている。同様に、SG10はローカルネットワーク5とインターネット1を介し、ローカルネットワーク5には端末3が接続されている。ローカルネットワーク4および5、インターネット3の物理層の種類は特に種類は問わない。
図9はSG9の構成を、図10はSG10の構成を示す図である。
図9において、CPU901がSG9の全体の動作を制御する。RAM902は一時記録装置(Random Access Memory)であり、ROM903はプログラムなど、消去不可能なデータが組み込まれている不揮発性メモリ(Read Only Memory)である。バス904は、各モジュールを接続する内部バスである。ネットワークインタフェース905および906は、SG9が外部機器とネットワークを介してデータ送受信を行う際に使用するインタフェースである。ネットワークインタフェース905と906には機能の違いはないが、説明の都合上、ネットワークインタフェース905をローカルネットワーク4に、ネットワークインタフェース906をインターネット1に接続しているものとする。また、セキュリティポリシーは、ROM903に記録されているものとするが、例えば、ハードディスクドライブなどの大容量記録装置やCompactFlashカードなどに記録され、それを読み込むようにしてもよい。
SG10も構成はSG9とほぼ同じである。異なる点として、ネットワークインタフェース1005をローカルネットワーク5に、ネットワークインタフェース1006をインターネット1に接続しているものとする。
図8において、SG9、SG10は基本的にIPsecトンネルモードで動作するセキュリティゲートウェイとして機能する。例えば、SG9、SG10において、ローカルネットワーク4とローカルネットワーク5以下の端末からの通信をIPsecトンネルモード(ESPを行う)で処理するようにセキュリティポリシーが設定された場合、端末2が平文データを送信して端末3で受信するとすると、SG9およびSG10間ではIPsecトンネルモードで、ESPにより暗号化されたパケットがやりとりされることとなる。ここで、もし、端末2が(実施例1で説明した)暗号化済ヘッダがない暗号化されたデータを端末3に送信した場合、SG9では、IPsecトンネルモード(ESP処理)で行うこととなっているので、暗号化されたデータをさらに暗号化することとなる。
そこで、本実施例では、端末2と端末3は実施例1で使用した端末であるとする。つまり、暗号化済ヘッダをパケットに付与する機能があるとして、説明する。
では、図8、9、10、11、12を主に参照しながら説明する。図11は、SG9、つまりトンネルの入り口に相当するセキュリティゲートウェイの動作フローを示す図であり、図12は、SG10、トンネルの出口に相当するセキュリティゲートウェイの動作フローを示す図である。
図11において、S1101からスタートする。
S1102において、SG9は、ネットワークインタフェース905、つまりローカルネットワーク4より、パケットを受信する。
S1103において、受信したパケットが、SG9に設定されているセキュリティポリシーに一致するか比較する。一致した場合、S1104に遷移する。一致しない場合、S1112に遷移する。
S1104において、セキュリティポリシーとして暗号処理ポリシー、つまりESPを行うよう設定されているか判別する。設定されていない場合、暗号処理を行う必要はないので、NOとなり、S1109に遷移する。設定されている場合、S1105に遷移する。
S1105において、CPU901は受信したパケットのヘッダを参照し、暗号化済ヘッダが設定されているか判別する。本実施例では、IPv4の場合、プロトコルフィールドに値101が設定されているか比較し判別する。IPv6の場合、拡張ヘッダを順に参照し、次ヘッダフィールドに値101が設定されているか判別する。されていない場合、NOとなり、S1106に遷移する。暗号化済ヘッダが設定されていた場合、YESとなり、S1107に遷移する。
S1106において、受信したパケットのヘッダとペイロードを対象として、暗号処理(ESP)を行う。つまり、S1105で暗号化済ヘッダが検出されない場合は、通常のIPsecに基づいた暗号処理を行うこととなる。
S1107において、受信したパケットのヘッダのみを対象として、暗号処理を行う。つまり、S1105において、暗号化済ヘッダが検出されたということは、受信したパケットのペイロード部分は暗号化されていると判断される。よって、ヘッダ部分のみを暗号化すればよいこととなる。本実施例では、このヘッダを暗号化する際の暗号アルゴリズムは、IPsecのESP用に設定された方式を用いるものとするが、別の暗号アルゴリズムを用いても構わない。ただし、セキュリティゲートウェイで構成されるトンネルの入り口と出口で共有暗号鍵を共有する必要がある。一例としては、手動鍵設定を用いて共有暗号鍵を設定する方法がある。この共有手段については、本発明の範疇外である。暗号処理終了後、S1108に遷移する。
S1108において、トンネル用の暗号化済ヘッダを追加する。
該トンネル用暗号化ヘッダのあと、他の方法で暗号化されないほうが望ましい。ただし、これはセキュリティポリシーに依存するため、本発明では規定できない。
ここで、トンネル用暗号化済ヘッダについて説明する。
IPv4の場合、先にトランスポートモードの場合の説明で、3種類の方法を挙げた。しかし、トンネルモードでは、外側のIPヘッダのプロトコルフィールドの値は「4」(IP in IP、カプセル化されたIPであることを示す)でなければならないため、プロトコルフィールドを使用する方法は使用できない。よって、2種類の方法について説明する。
オプションフィールドを用いる場合、RFC791で10種類のオプションが定義されているため、新しいオプションを定義することとなる。オプションは、1バイトから成る単一バイトのものと、複数バイトから成るものがある。本発明では、元のIPヘッダのみを暗号化するため、暗号化したIPヘッダの長さを記録する必要がある。よって、トンネル用暗号化済ヘッダとして、複数バイトからなる方法を採用する。複数バイトのオプションフィールドは、先頭から、8ビットから成るType、このオプションフィールドのバイト長を示すLen、何らかのデータが入るDataより成る。場合により、Dataフィールドの先頭にOffsetが入ることもあるが、本実施例では使用しないため無視する。本実施例では、Typeとして135を用いる。また、Dataには暗号化するIPヘッダの長さを記録する。ここでは、Dataフィールドの長さを2バイト(16ビット)とする。よって、Lenに入る(本オプションの)長さは、1+1+2=4バイトとなり、4とする。Dataフィールドに入る、暗号化したIPヘッダの長さはバイト長で表現するものとする。この方法で暗号化済ヘッダが追加された場合、暗号化済ヘッダかどうかチェックするには、該オプションフィールドをチェックし、Typeが暗号化済ヘッダを意味する番号か比較して判定すればよい。また、Typeをチェックし、暗号化済ヘッダであった場合、次にLenを参照する。Lenを参照することにより、後続のDataのバイト長が判明する。これより、Dataフィールドが特定でき、Dataフィールドから暗号化したIPヘッダの長さを取得することができる。
新たなヘッダを定義する方法は、例えば、32ビットからなる新しいヘッダを定義する。32ビットのうち、最初の8ビットはプロトコルの種類を示し、先のプロトコルフィールドの場合と同じように、STD-2で割り当てられていない番号を割当て、暗号化済ヘッダを示すとする。次の8ビットはこの新しいヘッダのバイト長とし、プロトコルの種類を含めて、4(4バイト、つまり32ビット)とする。残る16ビットには、暗号化したIPヘッダのバイト長が入るものとする。この方法で暗号化済ヘッダが追加された場合、暗号化済ヘッダかどうかチェックするには、該ヘッダの最初のフィールドを参照し、最初の8ビットで示されるプロトコルの種類が暗号化済ヘッダかどうかを比較して判定すればよい。その後、次のフィールドを参照して、この新しいヘッダの全体の長さを取得し、そこから、暗号化されたIPヘッダの長さが記述されているフィールドのバイト長を計算する。その後、該IPヘッダの長さが記述されているフィールドから、該IPヘッダの長さを取得することが可能である。以上、IPv4におけるトンネル用暗号化済ヘッダの追加方法、ならびにチェック方法について説明した。
IPv6の場合、拡張ヘッダを利用する。実施例1と同様の方法で作成するものとするが、オプションデータに含まれる値は、暗号化したIPヘッダのバイト長とする。IPv6において暗号化済ヘッダが追加された場合、暗号化済ヘッダかどうかチェックするには、拡張ヘッダを1つづつチェックしていき、該拡張ヘッダの次ヘッダフィールドが暗号化済ヘッダを示す番号であるかを比較して判定すればよい。次ヘッダフィールドが暗号化済ヘッダの番号であった場合、次の拡張ヘッダが暗号化済ヘッダであることは、IPv6の拡張ヘッダの定義よりいうまでもない。以上のようにしてトンネル用暗号化済ヘッダ(厳密には拡張ヘッダ)を発見後、オプションデータの部分から、暗号化したIPヘッダのバイト長を取得可能である。以上、IPv6におけるトンネル用暗号化済ヘッダの追加方法、ならびにチェック方法について説明した。
以上のようにして、IPv4もしくはIPv6の場合でも、暗号化済を意味する内容を、外側のヘッダ(トンネル用に新しく作成した、IPヘッダ)に付加した後、S1111に遷移する。
さて、S1104にて暗号処理ポリシーではなかった場合、S1109に遷移している。S1109において、セキュリティポリシーとして認証処理ポリシー、つまりAHを行うよう設定されているか判別する。設定されていない場合、NOとなり、S1111に遷移する。設定されている場合、YESとなり、S1110に遷移する。
S1110において、認証処理、つまり認証データを生成しAHヘッダを追加する。これは、トンネルモード用のAHであることはいうまでもない。
S1111において、次に処理するセキュリティ関連のポリシーがあるか判定する。セキュリティポリシー関連のポリシーとは、本発明では、1つのセキュリティポリシー内で行う暗号処理もしくは認証処理をさすこととする。S1111において、次に処理するセキュリティ関連ポリシーがない場合、NOとなり、S1114に遷移する。ある場合、YESとなり、S1104に遷移する。
S1104からS1111において、本発明に関わるセキュリティ関連ポリシーがある場合の処理について述べた。途中で、セキュリティ以外のヘッダを作成することがあるかもしれないが、それは各RFCに記述された通りに処理されるものとする。
一方、S1112において、セキュリティポリシーに一致しない場合、パケットを廃棄する設定になっているかを判定する。廃棄しない設定の場合、NOとなり、S1114に遷移する。廃棄する設定の場合YESとなり、S1113に遷移し、パケットを廃棄し、S1115に遷移して終了となる。
S1114において、セキュリティ以外のパケットに関する処理がなされ、トンネルモードとして処理されたパケットが送信され、S1115に遷移して終了となる。
以上のようにして、暗号化済ヘッダが付加したパケットが受信された場合は、ESP処理を行うことなく、トンネルモードに対応した処理がなされ、トンネル用暗号化済ヘッダが付加され、転送される。
最終的に送信されるパケットは、例えば、暗号化済ヘッダ付きのパケットを受信してトンネルモードとして処理して送信する場合で、セキュリティゲートウェイに暗号関連のポリシーが設定されており認証関連のポリシーが設定されていない場合、図13のようなる。同様に、認証ヘッダおよび暗号化済ヘッダ付きのパケットを受信し、トンネルモードとして処理して送信する場合で、セキュリティゲートウェイに暗号関連および認証関連のポリシーが設定されている場合、暗号関連を先に処理したとすると、暗号化済ヘッダと認証データが付加されたパケットの場合は、図14のような構成となる。このように、暗号化済ヘッダがあり、セキュリティゲートウェイに暗号関連のポリシーが設定されている場合、受信したパケットのヘッダ部分のみがセキュリティゲートウェイで暗号化される。
次に、SG10において、トンネルの出口においてどのように処理されるかを、図10と図12を参照しながら説明する。
図12において、S1201からスタートする。
S1202において、SG10は、ネットワークインタフェース1006、つまりインターネット1より、パケットを受信する。
S1203において、受信したパケットが、SG10に設定されているセキュリティポリシーに一致するか比較する。一致した場合、S1204に遷移する。一致しない場合、S1212に遷移する。
S1204において、セキュリティポリシーとして認証処理ポリシー、つまりAHを行うよう設定されているか判別し、受信したパケットのヘッダが認証ヘッダ(AHヘッダ)であるかチェックする。設定されていない場合、NOとなり、S1206に遷移する。設定されており、認証ヘッダがある場合、YESとなり、S1205に遷移する。
S1205において、認証ヘッダに含まれる認証データを確認し、正しいかどうかチェックする。正しい場合YESとなり、S1211に遷移する。不正な場合、S1213に遷移する。S1213においてパケットを廃棄し、S1215に遷移して終了となる。
S1206において、セキュリティポリシーとして復号処理ポリシー、つまりESPを復号化するよう設定されているか判別する。設定されていない場合、復号処理を行う必要はないので、NOとなり、S1211に遷移する。設定されている場合、S1207に遷移する。
S1207において、CPU1001は受信したパケットのヘッダを参照し、トンネル用暗号化済ヘッダが設定されているか判別する。されていない場合、NOとなり、S1208に遷移する。トンネル用暗号化済ヘッダが設定されていた場合、YESとなり、S1209に遷移する。
S1208において、受信したパケットのヘッダとペイロードを対象として、復号処理(ESP)を行う。つまり、S1207でトンネル用暗号化済ヘッダが検出されない場合は、通常のIPsecに基づいた暗号処理を行うこととなる。
S1209において、受信したパケットのヘッダのみを対象として、復号処理を行う。つまり、S1207において、トンネル用暗号化済ヘッダが検出されたということは、受信したパケットのペイロード部分は(IPsec外で)暗号化されていると判断される。よって、ヘッダ部分のみを復号化すればよいこととなる。本実施例では、このヘッダを復号化する際の暗号アルゴリズムは、IPsecのESP用に設定された方式を用いるものとする。復号処理終了後、S1210に遷移する。
S1210において、トンネル用暗号化済ヘッダを削除し、S1211に遷移する。
S1211において、次のセキュリティ関連ヘッダがあるか判定する。ある場合、YESとなり、S1204に戻る。ない場合、NOとなり、S1214に遷移する。
S1204からS1211において、本発明に関わるセキュリティ関連ヘッダがある場合の処理を述べたが、この途中で、他のヘッダのオプションが発見される場合がある。この場合、各RFCに従って処理されるものとする。
一方、S1212において、セキュリティポリシーに一致しない場合、パケットを廃棄する設定になっているかを判定する。廃棄しない設定の場合、NOとなり、S1214に遷移する。廃棄する設定の場合、S1213に遷移し、パケットを廃棄し、S1215に遷移して終了となる。
S1214において、残った他のトンネルの出口としてのパケット処理を行い、その後、パケットを送信する。S1215に遷移して終了となる。
このようにして、IPsecの枠外で暗号化されて、暗号化済ヘッダが付加されたパケット中のデータは、トンネルモードの処理過程において、暗号化されることなく、送受信が行われる。さらに、ペイロード部分のみが暗号化され、暗号化済ヘッダがあり、セキュリティゲートウェイにて暗号処理するようセキュリティポリシーが設定されていた場合は、ペイロードの部分は暗号化することなく、ヘッダ部分のみを暗号化することにより、暗号処理の負荷を低減している。また、ヘッダ、ペイロード部分とも暗号化されておらず、暗号済ヘッダがなく、セキュリティゲートウェイにて暗号処理するようセキュリティポリシーが設定されていた場合は、通常どおり、ヘッダとペイロード部分の両方を暗号処理する。
(第3の実施形態)
<暗号ハードウェア利用時>
暗号処理は一般に計算負荷が重い処理であるため、暗号処理を専門に行う暗号ハードウェアが存在する。暗号ハードウェアは、単独のチップで構成され他のモジュール(CPUやRAMなど)とバス接続される形態や、CPUの中に回路として組み込まれる形態など、いくつかの形態で提供される。単独のチップで提供される場合には、チップの初期化処理や、データをバスを通してチップとやり取りする際に発生する時間などがかかるので、処理するデータ量が少ない場合はソフトウェアで暗号処理を行ったほうが早いケースがあり、これは公知である。
<暗号ハードウェア利用時>
暗号処理は一般に計算負荷が重い処理であるため、暗号処理を専門に行う暗号ハードウェアが存在する。暗号ハードウェアは、単独のチップで構成され他のモジュール(CPUやRAMなど)とバス接続される形態や、CPUの中に回路として組み込まれる形態など、いくつかの形態で提供される。単独のチップで提供される場合には、チップの初期化処理や、データをバスを通してチップとやり取りする際に発生する時間などがかかるので、処理するデータ量が少ない場合はソフトウェアで暗号処理を行ったほうが早いケースがあり、これは公知である。
本実施例では、前記第2の実施形態で述べた環境(図8)において、SG9とSG10に、それぞれ暗号ハードウェアがある場合(図15、図16)に、前記した暗号処理をハードウェアとソフトウェアで適宜処理し、スループットが高くなる方法について説明する。本実施例でのSG9とSG10の動作フローは、ほぼ前記第2の実施形態で説明した動作フロー(図11、図12)と同じであるので、差分についてのみ説明する。
SG9、SG10には、それぞれ暗号ハードウェア1501および1601が備わる。そのような場合、SG9およびSG10の動作フローは、図17および図18となる。図17は図11とほぼ同等であるが、S1106がS1701に、S1107がS1702になる点が異なる。同様に、図18は図12と、S1208がS1801に、S1209がS1802になる点が異なる。ここで、S1701およびS1801、つまりヘッダとペイロードを処理する場合は、暗号ハードウェアを用いて暗号処理を行う。S1702およびS1802、つまりヘッダのみを処理する場合は、ソフトウェアで暗号処理を行う。このようにすれば、前記したデータ量が少ない場合(ヘッダのみの場合)はソフトウェアで、データ量が多い場合(ヘッダ+ペイロードの場合)は暗号ハードウェアで処理することが可能となり、スループットの向上が図れる。
さらに、図15、図16で示したセキュリティゲートウェイにおいて、あらかじめソフトウェアで処理したほうが速い場合、ハードウェアで処理したほうが速い場合の暗号処理対象のデータ量を計測しておき、そのデータ量によってソフトウェアと暗号ハードウェアによる処理を切り替えてもよい。
以上、本発明の実施形態について説明した。
なお、本発明の一実施例による説明では、IPsecおよびIPsecのセキュリティポリシーを参照したが、他のIP層で暗号化・認証を行うシステム、および他のセキュリティポリシーを参照してもよい。つまり、暗号化済を意味するデータをヘッダに付加し、その暗号化済ヘッダを参照して再度の暗号化を行わない仕組みが組み込めるならば、本発明の一実施例に制限されることはない。
1 インターネット
2 端末(送信側)
3 端末(受信側)
4、5 ローカルネットワーク
9 セキュリティゲートウェイ(トンネル入り口)
10 セキュリティゲートウェイ(トンネル出口)
201、301、901、1001 CPU
202、302、902、1002 RAM
203、303、903、1003 ROM
204、304、904、1004 バス
205、305、905、906、1005、1006 ネットワークインタフェース
206、306 記録装置
1501、1502 暗号ハードウェア
2 端末(送信側)
3 端末(受信側)
4、5 ローカルネットワーク
9 セキュリティゲートウェイ(トンネル入り口)
10 セキュリティゲートウェイ(トンネル出口)
201、301、901、1001 CPU
202、302、902、1002 RAM
203、303、903、1003 ROM
204、304、904、1004 バス
205、305、905、906、1005、1006 ネットワークインタフェース
206、306 記録装置
1501、1502 暗号ハードウェア
Claims (10)
- 送信側暗号装置は、セキュリティポリシーを設定する手段と、データが暗号化済であるかのデータを記録する手段と、該記録されたデータを読み出し暗号化済を意味するデータをパケットのヘッダに追加する手段と、該設定されたセキュリティポリシーを読み出す手段と、該ヘッダを検出する手段と、セキュリティポリシーに従い暗号処理を制御する手段と、該ヘッダが検出された場合に暗号処理を行わない手段とを備え、
受信側暗号装置は、セキュリティポリシーを設定する手段と、該設定されたセキュリティポリシーを読み出す手段と、受信したパケットに暗号化済を意味するヘッダが付加しているか検出する手段と、該暗号化済を意味するヘッダが付加していた場合に復号処理を行わない手段と、データが暗号化済であるかのデータを記録する手段とを備え、
送受信するデータがすでに暗号化されているかを検出し、暗号化されていた場合には、再度の暗号処理および復号処理を行わないことを特徴とする、暗号装置。 - トンネル入り口にあたる暗号装置は、セキュリティポリシーを設定する手段と、該設定されたセキュリティポリシーを読み出す手段と、受信したパケットに暗号化済を意味するヘッダが付加しているか検出する手段と、該暗号化済を意味するヘッダが付加していた場合に受信したパケットのヘッダ部分のみを暗号処理し新たに作成されるIPヘッダに暗号化済を意味するデータを付加する手段とを備え、
トンネル出口にあたる暗号装置は、セキュリティポリシーを設定する手段と、該設定されたセキュリティポリシーを読み出す手段と、受信したパケットに暗号化済を意味するヘッダが付加しているか検出する手段と、該暗号化済を意味するヘッダが付加していた場合に受信したパケットのヘッダ部分のみを復号処理し新たに作成されるIPヘッダに暗号化済を意味するデータを削除する手段とを備え、
トンネル処理対象のパケットのペイロード部分がすでに暗号化されているかを検出し、暗号化されていた場合には、ヘッダ部分のみを暗号処理および復号処理の対象とすることを特徴とする、暗号装置。 - 請求項2の暗号装置は暗号ハードウェアを備え、暗号ハードウェアもしくはソフトウェアによる暗号処理を適用する手段を備え、処理速度が速い暗号処理手段を適用することを特徴とする、暗号装置。
- 送信側では、セキュリティポリシーを設定する手順と、データが暗号化済であるかのデータを記録する手順と、該記録されたデータを読み出し暗号化済を意味するデータをパケットのヘッダに追加する手順と、該設定されたセキュリティポリシーを読み出す手順と、該ヘッダを検出する手段と、セキュリティポリシーに従い暗号処理を制御する手順と、該ヘッダが検出された場合に暗号処理を行わない手順とを備え、
受信側では、セキュリティポリシーを設定する手順と、該設定されたセキュリティポリシーを読み出す手順と、受信したパケットに暗号化済を意味するヘッダが付加しているか検出する手順と、該暗号化済を意味するヘッダが付加していた場合に復号処理を行わない手順と、データが暗号化済であるかのデータを記録する手順とを備え、
送受信するデータがすでに暗号化されているかを検出し、暗号化されていた場合には、再度の暗号処理および復号処理を行わないことを特徴とする、暗号プログラム。 - パケットをカプセル化する側では、セキュリティポリシーを設定する手順と、該設定されたセキュリティポリシーを読み出す手順と、受信したパケットに暗号化済を意味するヘッダが付加しているか検出する手順と、該暗号化済を意味するヘッダが付加していた場合に受信したパケットのヘッダ部分のみを暗号処理し新たに作成されるIPヘッダに暗号化済を意味するデータを付加する手順とを備え、
パケットのカプセル化を解除する側では、セキュリティポリシーを設定する手順と、該設定されたセキュリティポリシーを読み出す手順と、受信したパケットに暗号化済を意味するヘッダが付加しているか検出する手順と、該暗号化済を意味するヘッダが付加していた場合に受信したパケットのヘッダ部分のみを復号処理し新たに作成されるIPヘッダに暗号化済を意味するデータを削除する手順とを備え、
トンネル処理対象のパケットのペイロード部分がすでに暗号化されているかを検出し、暗号化されていた場合には、ヘッダ部分のみを暗号処理および復号処理の対象とすることを特徴とする、暗号プログラム。 - 請求項5の暗号プログラムにおいて、暗号ハードウェアもしくはソフトウェアによる暗号処理を適用する手順を備え、処理速度が速い暗号処理手順を適用することを特徴とする、暗号プログラム。
- 請求項4から6の何れか一項に記載のプログラムが記録されたコンピュータ読み取り可能な記録媒体。
- 送信側では、セキュリティポリシーを設定する手順と、データが暗号化済であるかのデータを記録する手順と、該記録されたデータを読み出し暗号化済を意味するデータをパケットのヘッダに追加する手順と、該設定されたセキュリティポリシーを読み出す手順と、該ヘッダを検出する手段と、セキュリティポリシーに従い暗号処理を制御する手順と、該ヘッダが検出された場合に暗号処理を行わない手順とを備え、
受信側では、セキュリティポリシーを設定する手順と、該設定されたセキュリティポリシーを読み出す手順と、受信したパケットに暗号化済を意味するヘッダが付加しているか検出する手順と、該暗号化済を意味するヘッダが付加していた場合に復号処理を行わない手順と、データが暗号化済であるかのデータを記録する手順とを備え、
送受信するデータがすでに暗号化されているかを検出し、暗号化されていた場合には、再度の暗号処理および復号処理を行わないことを特徴とする、暗号方法。 - パケットをカプセル化する側では、セキュリティポリシーを設定する手順と、該設定されたセキュリティポリシーを読み出す手順と、受信したパケットに暗号化済を意味するヘッダが付加しているか検出する手順と、該暗号化済を意味するヘッダが付加していた場合に受信したパケットのヘッダ部分のみを暗号処理し新たに作成されるIPヘッダに暗号化済を意味するデータを付加する手順とを備え、
パケットのカプセル化を解除する側では、セキュリティポリシーを設定する手順と、該設定されたセキュリティポリシーを読み出す手順と、受信したパケットに暗号化済を意味するヘッダが付加しているか検出する手順と、該暗号化済を意味するヘッダが付加していた場合に受信したパケットのヘッダ部分のみを復号処理し新たに作成されるIPヘッダに暗号化済を意味するデータを削除する手順とを備え、
トンネル処理対象のパケットのペイロード部分がすでに暗号化されているかを検出し、暗号化されていた場合には、ヘッダ部分のみを暗号処理および復号処理の対象とすることを特徴とする、暗号方法。 - 請求項8の暗号方法において、暗号ハードウェアもしくはソフトウェアによる暗号処理を適用する手順を備え、処理速度が速い暗号処理手順を適用することを特徴とする、暗号方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2005219050A JP2007036834A (ja) | 2005-07-28 | 2005-07-28 | 暗号装置、プログラム、記録媒体、および方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2005219050A JP2007036834A (ja) | 2005-07-28 | 2005-07-28 | 暗号装置、プログラム、記録媒体、および方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2007036834A true JP2007036834A (ja) | 2007-02-08 |
Family
ID=37795514
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2005219050A Withdrawn JP2007036834A (ja) | 2005-07-28 | 2005-07-28 | 暗号装置、プログラム、記録媒体、および方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2007036834A (ja) |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2009078103A1 (ja) * | 2007-12-19 | 2009-06-25 | Fujitsu Limited | 暗号化実施制御システム |
JP2009164753A (ja) * | 2007-12-28 | 2009-07-23 | Ricoh Co Ltd | 遠隔機器管理システム,仲介装置,機器検索処理方法,プログラム,および記録媒体 |
JP2009225273A (ja) * | 2008-03-18 | 2009-10-01 | Ricoh Co Ltd | 情報処理装置、通信制御方法及び通信制御プログラム |
JP2012192554A (ja) * | 2011-03-15 | 2012-10-11 | Canon Inc | 情報処理装置、情報処理装置の制御方法及びプログラム |
JP2013015605A (ja) * | 2011-07-01 | 2013-01-24 | Nippon Telegr & Teleph Corp <Ntt> | 信号処理装置 |
JP2013102529A (ja) * | 2013-01-28 | 2013-05-23 | Fujitsu Ltd | 暗号化実施制御システム |
JP2014220707A (ja) * | 2013-05-09 | 2014-11-20 | 日本電信電話株式会社 | ネットワークシステム、通信制御方法、通信制御装置及び通信制御プログラム |
JP7000090B2 (ja) | 2017-09-21 | 2022-01-19 | 株式会社東芝 | パケット集約装置、パケット分割装置、パケット通信システム、プログラム、パケット生成装置、パケット生成方法及び通信方法 |
-
2005
- 2005-07-28 JP JP2005219050A patent/JP2007036834A/ja not_active Withdrawn
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2009078103A1 (ja) * | 2007-12-19 | 2009-06-25 | Fujitsu Limited | 暗号化実施制御システム |
JP5316423B2 (ja) * | 2007-12-19 | 2013-10-16 | 富士通株式会社 | 暗号化実施制御システム |
JP2009164753A (ja) * | 2007-12-28 | 2009-07-23 | Ricoh Co Ltd | 遠隔機器管理システム,仲介装置,機器検索処理方法,プログラム,および記録媒体 |
JP2009225273A (ja) * | 2008-03-18 | 2009-10-01 | Ricoh Co Ltd | 情報処理装置、通信制御方法及び通信制御プログラム |
JP2012192554A (ja) * | 2011-03-15 | 2012-10-11 | Canon Inc | 情報処理装置、情報処理装置の制御方法及びプログラム |
JP2013015605A (ja) * | 2011-07-01 | 2013-01-24 | Nippon Telegr & Teleph Corp <Ntt> | 信号処理装置 |
JP2013102529A (ja) * | 2013-01-28 | 2013-05-23 | Fujitsu Ltd | 暗号化実施制御システム |
JP2014220707A (ja) * | 2013-05-09 | 2014-11-20 | 日本電信電話株式会社 | ネットワークシステム、通信制御方法、通信制御装置及び通信制御プログラム |
JP7000090B2 (ja) | 2017-09-21 | 2022-01-19 | 株式会社東芝 | パケット集約装置、パケット分割装置、パケット通信システム、プログラム、パケット生成装置、パケット生成方法及び通信方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9838362B2 (en) | Method and system for sending a message through a secure connection | |
US7937581B2 (en) | Method and network for ensuring secure forwarding of messages | |
US6076168A (en) | Simplified method of configuring internet protocol security tunnels | |
US8984268B2 (en) | Encrypted record transmission | |
US6240514B1 (en) | Packet processing device and mobile computer with reduced packet processing overhead | |
US7660980B2 (en) | Establishing secure TCP/IP communications using embedded IDs | |
US7386881B2 (en) | Method for mapping security associations to clients operating behind a network address translation device | |
JP2007036834A (ja) | 暗号装置、プログラム、記録媒体、および方法 | |
JP4107213B2 (ja) | パケット判定装置 | |
Bittau et al. | Cryptographic protection of TCP streams (tcpcrypt) | |
CN109040059B (zh) | 受保护的tcp通信方法、通信装置及存储介质 | |
CN114039812B (zh) | 数据传输通道建立方法、装置、计算机设备和存储介质 | |
US20100275008A1 (en) | Method and apparatus for secure packet transmission | |
US20080059788A1 (en) | Secure electronic communications pathway | |
CN113973002A (zh) | 一种数据密钥的更新方法及装置 | |
JP6075871B2 (ja) | ネットワークシステム、通信制御方法、通信制御装置及び通信制御プログラム | |
JP2001111612A (ja) | 情報漏洩防止方法およびシステム並びに情報漏洩防止プログラムを記録した記録媒体 | |
CN115378705B (zh) | 协议无关的多模态安全方法及装置 | |
Bittau et al. | RFC 8548: Cryptographic Protection of TCP Streams (tcpcrypt) | |
CN115766063A (zh) | 数据传输方法、装置、设备及介质 | |
KR100411436B1 (ko) | 가상 사설망에서 라우터의 계산을 분산시키는 방법 | |
JP2006033350A (ja) | 代理セキュアルータ装置及びプログラム | |
JP4783665B2 (ja) | メールサーバ装置 | |
JP2007295272A (ja) | 中継装置 | |
JP2007005989A (ja) | 暗号化通信方式 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A300 | Application deemed to be withdrawn because no request for examination was validly filed |
Free format text: JAPANESE INTERMEDIATE CODE: A300 Effective date: 20081007 |