JP4346962B2 - Encrypted communication control device - Google Patents

Encrypted communication control device Download PDF

Info

Publication number
JP4346962B2
JP4346962B2 JP2003160862A JP2003160862A JP4346962B2 JP 4346962 B2 JP4346962 B2 JP 4346962B2 JP 2003160862 A JP2003160862 A JP 2003160862A JP 2003160862 A JP2003160862 A JP 2003160862A JP 4346962 B2 JP4346962 B2 JP 4346962B2
Authority
JP
Japan
Prior art keywords
data
hash
ssl
packet
processing
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.)
Expired - Fee Related
Application number
JP2003160862A
Other languages
Japanese (ja)
Other versions
JP2004364022A (en
Inventor
慎哉 山本
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NEC Corp
Original Assignee
NEC Corp
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 NEC Corp filed Critical NEC Corp
Priority to JP2003160862A priority Critical patent/JP4346962B2/en
Publication of JP2004364022A publication Critical patent/JP2004364022A/en
Application granted granted Critical
Publication of JP4346962B2 publication Critical patent/JP4346962B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Description

【0001】
【発明の属する技術分野】
本発明は、Webサーバへのセキュリティを確保したアクセス方法として用いられているセキュリティプロトコルであるSSL(セキュア・ソケット・レイヤ)の処理に関する。
【0002】
【従来の技術】
SSLでは、アプリケーション層のデータを暗号化し、それをトランスポート層であるTCP(トランスミッション・コントロール・プロトコル)のパケットに分割して転送する。受信側では、複数のTCPパケットから暗号化データを組み立て、復号化し、MAC(メッセージ認証コード)を計算して改竄されていないことを確認する。
【0003】
SSLあるいは暗号化通信技術としては以下の文献があるが、これらは本願発明にとって一般的な背景技術である。
【特許文献1】
特開2002−077150号公報
【特許文献2】
特開2003−022321号公報
【特許文献3】
特開2003−092604号公報
【特許文献4】
特開2003−504714号公報
【0004】
【発明が解決しようとする課題】
従来のSSLでは、暗号化データがTCPに分割されて転送されるため、受信側では、分割された全てのパケットを受信してからでないと、SSLの処理ができない。このため、遅延が発生してしまう。特にWebサイトのようにアクセスが集中するサーバでは、組み立てに伴う遅延やバッファメモリの消費によってパフォーマンスが低下してしまう。また、中継点でSSLを処理する場合には、その処理の後に再び分割して転送する必要がある。
【0005】
本発明は、このような課題を解決し、遅延を低減できる暗号化通信制御方式を提供することを目的とする。
【0006】
【課題を解決するための手段】
本発明の第一の観点によると、アプリケーション層のデータをブロック暗号化し、それをトランスポート層であるトランスミッション・コントロール・プロトコルのパケットに分割して送信する暗号化送信手段と、トランスミッション・コントロール・プロトコルのパケットを受信して暗号化データを組み立て、アプリケーション層のデータに復号化し、メッセージ認証コードを計算して改竄されていないことを検証する受信復号化手段とを備えた暗号化通信制御方式において、前記受信復号化手段は、パケットを受信次第復号を開始し、パケットをすべて受け取った時点において改竄検証以外の可能な処理が完了するように、前記暗号化データの組み立て、データの復号化およびメッセージ認証コードの計算をスケジューリングする手段を備えたことを特徴とする暗号化通信制御方式が提供される。
【0007】
本発明の第二の観点によると、アプリケーション層のデータをブロック暗号化し、それをトランスポート層であるトランスミッション・コントロール・プロトコルのパケットに分割して送信する暗号化送信手段と、トランスミッション・コントロール・プロトコルのパケットを受信して暗号化データを組み立て、アプリケーション層のデータに復号化し、メッセージ認証コードを計算して改竄されていないことを検証する受信復号化手段とを備えた暗号化通信制御方式において、前記暗号化送信手段は、前記アプリケーション層のデータをブロック暗号化後にトランスミッション・コントロール・プロトコルのひとつのパケットで転送できるように分割する手段を備えたことを特徴とする暗号化通信制御方式が提供される。
【0008】
前記分割する手段は、アプリケーション層のデータの送信元と相手先との間のコネクション確立時に、その送信元と相手先との間で転送されるデータのサイズを前記ひとつのパケットで転送できるサイズに設定する手段を含むことができる。
【0009】
【発明の実施の形態】
図1は本発明の実施形態を示すブロック構成図である。本発明は、図1に示すような、インターネット4からサーバ5に向かうSSLトラフィックを復号化し、サーバ5からインターネット4へ出て行くトラフィックを暗号化するSSL通信装置1で実施される。このSSL通信装置1は、インターネット4からサーバ5への受信プロセスを担当する復号回路2と、サーバ5からインターネット4への送信プロセスを担当する暗号回路3とからなる。
【0010】
図2はこの実施形態で用いられる暗号化および復号化を説明する図である。SSL通信装置1とインターネット4との間の通信はSSLで行なわれ、暗号ブロックと呼ばれるまとまりごとに暗号化を行なうブロック暗号が用いられる。このとき、前のブロックの暗号結果を用いて、次のブロックの暗号化を行なう。復号化の時には、送信した順にパケットを受け取れば、順次復号することができる。
【0011】
図3はSSLフォーマットを示す。SSLブロックは、SSLヘッダ、ペイロード、MAC(メッセージ認証コード)、パディングおよびパディング長により構成される。データ部分(ペイロード)は最大18KBまで許容されており、このデータ全体にわたってハッシュ値を計算して、SSL内のMACと比較することで改竄の有無を調べる。このSSLのデータ長に比べてTCPパケットのデータ長は短いので、ひとつのSSLデータが複数のパケットに分割されて転送されることになる。このため、受信側ではそれらのすべてのパケットを受信しないと、そのデータの信頼性を確認できないことになる。
【0012】
図4は従来の組み立て、復号化およびハッシュ計算の処理手順を説明する図であり、図5は本発明の処理手順を説明する図である。SSLはTCPに分割されて転送されるため、受信側ではそれを組み立ててから処理する必要があった。すなわち、まず、TCPにセグメント分けされた暗号文を組み立て、復号化し、ハッシュ計算を行なって改竄がないかどうかを確認していた。これに対して本発明では、暗号アルゴリズムは受信次第復号化が可能であることに着眼し、パケットの組み立てを行いながら、復号化およびハッシュ計算のうち可能な処理を先行して実施する。これにより、遅延が低減される。
【0013】
図6は本発明における送信時のTCPフォーマットを説明する図である。自分が受信側であるときには、送り手のデータ長が制御できないことから、上述した処理により高速化を図る。一方、送信時には、データ長の制御が可能である。そこで、アプリケーション層のデータを暗号化してからTCPで送るのではなく、データを分割してからSSLで暗号化し、IPヘッダおよびTCPヘッダを付加してひとつのTCPパケットにする。これにより受信側では、パケット毎の復号および検証が可能となる。
【0014】
図7は復号回路2の詳細を示すブロック構成図である。この復号回路2は、識別部201、SSL受信バッファ202、復号化スケジューラ203、復号化処理部204、平文メモリ205、ハッシュスケジューラ206、ハッシュ計算処理部207、ハッシュメモリ208、平文送信処理部209およびセッションテーブル210を備える。
【0015】
識別部201は受信したトラフィックがどこからきたものであるかを判別する。この識別されたトラフィックをフローと呼ぶ。識別部201で認識するフロー毎にバッファが割り当てられている。識別されたトラフィックはSSL受信バッファ202に入り、フローごとに割り当てられた処理性能で処理が行われるように復号化スケジューラ203でスケジュールされ、復号化処理部204で復号化処理される。ここまではパケットが到着しだい実行されるが、回線状態が悪くパケット順序が入れ替わってしまった場合は、次に来るべきパケットが来るまで復号化は実行されない。復号化処理部204による復号化処理を終えたデータは平文メモリ205に格納される。ハッシュアルゴリズムで決められた長さが復号化されると、平文メモリ205からその長さのデータがハッシュスケジューラ206によってスケジューリングされ、ハッシュ計算処理部207によりハッシュ処理される。ハッシュ計算の結果は、次のハッシュ処理のときに使うためにハッシュメモリ208に保存される。すべての処理が終わったときにハッシュメモリ208に残っている値がハッシュの計算結果である。SSLブロック(図3参照)がすべて復号化され、ハッシュ計算とMAC値が一致すれば改竄されていないことになり、平文送信処理部209によりサーバ5への送信処理が行われる。この際、SSLのために付加されたMACやパディングは取り除かれる。
【0016】
セッションテーブル210は、SSLの通信で使われるセッション/コネクションの情報を保持し、計算の際に各部に情報を渡す。この情報に変更があるとセッションテーブル210に反映される。
【0017】
図8は暗号回路3の詳細を示すブロック構成図である。この暗号回路3は、識別部301、平文受信バッファ302、暗号化/ハッシュスケジューラ303、ハッシュ計算処理部304、暗号化処理部305、ハッシュメモリ306、暗号文メモリ307、暗号文送信処理部308およびセッションテーブル309を備える。
【0018】
識別部301はサーバからのフローを判定する。識別されたフローは平文受信バッファ302に格納される。本実施例において暗号化側は単一パケットでMACの付加および暗号化が完結するように調整を行うため、復号回路2とは違って各フローにバイト単位でのスケジューリングは行わず、暗号化可能なパケットが入力されると、そのパケットの暗号化を最後まで行う。もし、パケットの順序が入れ替わった場合は正しいパケットが来るまで待つことになる。正しいパケットが来た段階で暗号化を行う。フロー毎に1パケットずつ暗号化が順に行われる。暗号化/ハッシュスケジューラ303は、平文の最後の部分にMACを付加する必要があるので、その手前まではハッシュ計算処理部304によるハッシュ計算と暗号化処理部305による暗号化と同時に進め、最後の部分で待ち合わせをするように調節し、暗号化を完了させる。ハッシュ計算処理部304およびハッシュメモリ306の処理はハッシュ計算処理部207およびハッシュメモリ208の処理と同等である。暗号化処理部305は、暗号化/ハッシュスケジューラ303に調節されながら暗号処理を行い、完了すると暗号文送信処理部308にデータを渡し、インターネット4へ転送される。
【0019】
セッションテーブル309は、SSLの通信で使われるセッション/コネクションの情報を保持し、計算の際に各部に情報を渡す。この情報に変更があるとセッションテーブル309に反映される。
【0020】
図7に示した復号回路2の動作についてさらに詳しく説明する。
【0021】
図9はSSL受信バッファ202の処理のフローチャートを示し、図10は復号化スケジューラ203の処理のフローチャートを示す。これらの処理は復号化処理部204の処理に連動する。
【0022】
SSL受信バッファ202では、TCPで運ばれてきた図3に示したようなSSLブロックを格納する。このとき、SSLヘッダから読み取れられSSLブロックの長さをSSL_Length、先頭から入れ替わることなく連続受信できているバイト数をDc、復号化スケジューラ203にすでに要求を完了している復号バイト数をDp、暗号アルゴリズムによって決まる復号化の単位となるバイト数をDdecとする。
【0023】
SSL受信バッファ202は、受信開始後、SSL暗号データをネットワークより受信し(ステップA1)、それがSSLブロックの先頭であれば(ステップA2)そのブロック用の領域を確保し、SSL_Length、Dc、Dp、Ddecの初期値を設定する(ステップA3)。連続受信できているバイト数から既に処理要求を完了しているバイト数を差し引いた値が処理単位のバイト数よりも大きければ(ステップA4)、復号化スケジューラ203に復号化処理要求を行う(ステップA5)。パケットの入れ替えなどで間があいた後でその間のデータを受信すると、連続受信バイト数が急に増えるため処理単位の数倍が一度に復号処理要求される。SSLブロックがちょうど処理単位の整数倍とは限らないため、最後の領域は連続受信バイト数がSSLブロック長と一致したところで(ステップA6)復号処理要求を行う(ステップA7)。以降、この処理を繰り返す。
【0024】
フローには番号を付けて区別する。これをフロー識別子Flow_Noとする。復号化スケジューラ203が復号処理要求を受けているバイト数をQ(Flow_No)、フローに割り当てられている一回あたりの復号化バイト数をUnit(Flow_No)、今回復号化するバイト数をDec_size、SSL通信装置1がサポートしている最大フロー数をFlow_maxとする。
【0025】
図10に示すように、復号化スケジューラ203が処理要求の受付を開始すると、まずFlow_Noの1から(ステップB1)Flow_maxまでを順に調べていく。復号要求があれば(ステップB2)、処理すべきバイト数を決定し(ステップB3)、SSL暗号文のうちこのバイト数分を復号する(ステップB4)。SSLブロック全体を復号化し終えたら(ステップB5)該当SSLブロックのバッファを開放する(ステップB6)。復号処理を終えるか、または処理要求が無かった場合は次のフローについて処理要求が無いか調べる(ステップB7)。これを全てのフローについて行い、以降、繰り返す。
【0026】
復号化処理部204は、復号化スケジューラ203のトリガを受けて動作し、復号した平文を平文メモリ205に送る。
【0027】
図11は平文メモリ205の処理のフローチャートを示し、図12はハッシュスケジューラ206の処理のフローチャートを示す。これの処理は、ハッシュ計算処理部207、ハッシュメモリ208の処理に連動する。
【0028】
平文メモリ205は、復号化処理部204で復号された平文を格納する。平文ブロックの長さをPlain_Length、復号化処理部204から受信済みのバイト数をD_plain、ハッシュスケジューラ206にすでに要求を完了しているバイト数をD_hash、ハッシュアルゴリズムによって決定されるハッシュ計算処理の単位となるバイト数をDcalとする。
【0029】
平文メモリ205では、平文を復号化処理部204より受信すると(ステップC1)、それがその平文ブロックで先頭であるときは(ステップC2)、Plain_Length、D_plain、D_hash、Dcalの初期値を設定する(ステップC3)。現在の仕様ではSSLに圧縮アルゴリズムが規定されていないため、Plain_Length=SSL_Lengthとなる。ハッシュを計算するバイト数が蓄積していれば(ステップC4)、ハッシュスケジューラ206に計算処理要求を出す(ステップC5)。平文ブロックの最後は、必ずしも計算単位となるバイト数になるとは限らないため、ブロック長分受信したところで(ステップC6)処理要求を出す(ステップC7)。平文はMAC検査後にサーバと送達確認を行うため、この段階ではバッファを開放しない。以降、受信、ハッシュ処理要求を繰り返す。
【0030】
ハッシュスケジューラ206は、復号化スケジューラ203と同様の動きをする。スケジューリングの受付を開始すると、各フローのハッシュ処理要求を順に確認する(ステップD1)。ハッシュ計算処理要求バイト数をQh(Flow_No)とし、フローに割り当てられた一回当たりのハッシュ計算バイト数をUnith(Flow_No)、今回ハッシュ計算を行うバイト数をCal_sizeとする。ハッシュ計算要求があるかを調べ(ステップD2)、ある場合は処理バイト数を決定する(ステップD3)。フローに該当する情報をセッションテーブル210やハッシュメモリ208から得て、Cal_sizeの平文でハッシュを計算するようにハッシュ計算処理部207を制御し(ステップD4)、ハッシュメモリ208に記録する。ハッシュの計算が終了しているかを調べ(ステップD5)、終了していればMACとの比較を行い、改竄の有無について検証を行うよう制御する(ステップD6)。これが終了したら次のフローについて調べ、全てのフローを見終わると、再び1番目のフローから調べていく。
【0031】
ハッシュ計算処理部207はハッシュメモリ208に計算結果を書き込み、これが次のハッシュ計算の際の入力となる。最後にハッシュメモリ208内に残るのがハッシュ計算の結果となる。改竄されていないことが確認されたら、平文送信処理部209が平文をサーバ5に向かって転送する。
【0032】
次に、図8に示した暗号回路3の動作について詳しく説明する。
【0033】
暗号回路3ではサーバ5からインターネット4向けの通信を暗号化するが、暗号化した後も、図3に示したようなSSLブロックが図6に示したようにIP(インターネット・プロトコル)ヘッダおよびTCPヘッダを付加した上で1パケットに収まるように、あらかじめ調節を行う。暗号化する際に付加されるのはSSLヘッダとパディングであるので、サーバ5が送り出すパケットをあらかじめこの長さだけ短くしておけばよい。このためには、TCPコネクション確立の過程で図13に示すシーケンスを用いる。
【0034】
図13はインターネット4を経由してサーバ5へアクセスしてくるユーザとのコネクション確立のシーケンスを示す。ユーザからTCPのSYNパケットが送られてくると、SSL通信装置1は、ユーザとサーバ5との間にTCPコネクションを確立するために、次のように動作する。まず、ユーザとサーバそれぞれに対し、IPヘッダのDF(フラグメント禁止)ビットを立てて送信し、パスMTU(最大転送ユニット)を求める。SSL通信装置1はユーザ側とサーバ5側でSSLで暗号化してもパスMTUを越えないように、TCPのハンドシェークでMSS(最大セグメントサイズ)を適切な値に設定する。この値を通知しながらTCPコネクションの確立を行う。
【0035】
図14は平文受信バッファ302の処理のフローチャートを示す。サーバ5から平文の受信を開始すると、該当フローのバッファに格納する(ステップE1)。次に暗号化するべきパケットを受信できていれば(ステップE2)、ハッシュ計算と暗号化処理を暗号化/ハッシュスケジューラ303に要求する(ステップE4)。パケット順序が正しくなければ、バッファに入れて次のパケットを待つ(ステップE3)。暗号化/ハッシュスケジューラ303には、バッファの開始位置と、データサイズ、フロー番号などを伝える。そして、次のパケットを待つ。
【0036】
図15は暗号化/ハッシュスケジューラ303の処理のフローチャートを示す。暗号化/ハッシュスケジューラ303はデータサイズからMAC無しで可能な暗号化範囲を求め、ハッシュ計算とMAC付加前の暗号化を並列に実行するように制御する(ステップF1)。双方の終了を受けて、ハッシュ値をMACとして平文の残りに付加し、残りの暗号化を行うよう制御する(ステップF2)。そして、次の要求が無いかを調べる。暗号化/ハッシュスケジューラ303は受け取ったパケットについては一度に処理を済ませてしまう。復号化時のようにあるバイト分処理したところで処理を中断するということは無い。また、フローを順に調べることもない。来た順番に処理することで高速化を図る。TCPのフロー制御で送信データ量を制御する。これらはパケット単位で処理を完結できることから可能になっている。
【0037】
ハッシュ計算においてはハッシュメモリ306に、暗号化においては暗号文メモリ307にデータが格納される。暗号化が終了すると、暗号文メモリ307から該当パケットがインターネット4に転送される。
【0038】
以上説明した実施形態では、復号回路2は、改竄を調べるためにMACの検証が終わるまでは受信パケットを平文メモリ205に保持し、検証が終わるのを待たないといけない。この点について、少し工夫を加えることで、さらに高速に動作できる可能性がある。
【0039】
すなわち、ハッシュ計算の終了した平文について、平文メモリ205でのバッファをせずにすぐにサーバ5に送信する。ハッシュの計算は順次実施することが可能なため、先に来たものから順に転送することができる。この方法だと、平文ブロックをバッファリングしないため、パケット毎に処理したときと同じくらい高速化できる。この際、最後のパケットのハッシュ検証中に改竄が発見された場合、平文送信処理部209はこのパケットを廃棄し、サーバ5への再送も行わずにタイムアウトを待つ。タイムアウトは比較的長い時間を要するが、あまり改竄の頻度が高くない状況においては有用である。ただし、最後のパケットを廃棄しても、先に届いてしまったパケットについては順次読み込んでしまうようなサーバ実装の場合は問題になる可能性もあり、機種依存性が存在する。
【0040】
平文ブロックのバッファリングを行なわないことで、改竄の発生しないほとんどの場合には従来よりも大幅に高スループット、低遅延が得られ、改竄の発生したときのみタイムアウト待ちに伴う性能低下が起こる。図7に示した構成では、改竄のあったパケットがサーバ5に届くことは無く、セキュリティ強度は高いといえる。それに対し、平文ブロックをバッファリングを行なわない場合には、改竄のあったパケットが一部サーバ5に届いてしまうためやや危険があるが、高速な通信が可能となる。
【0041】
【発明の効果】
本発明によれば、受信復号化時に、SSLブロックを構成する全てのパケットの到着を待たずに処理を開始できる。これにより、プロセッサなどの非稼動時間を減らし、その性能を充分に活用できる。また、パケット順序の入れ替わりなどで復号処理が出来なかったフローの分の空いている処理リソースを別のフローが利用することができるため、処理部の動作率は向上し、性能を無駄なく使うことが出来る。
【0042】
また、暗号化送信時には、ユーザからサーバまで一貫してパスMTUを越えず、SSL化しても1パケットに収まるパケットのやり取りが可能となる。パスMTUを越えないパケットを扱うことで、SSL化に伴うフラグメントを防止し、それにともなう性能低下が他の性能まで犠牲にすることを防ぐことができる。これにより、暗号化処理部の性能を生かすことが可能になる。
【0043】
また、単一パケットで暗号化/復号化を完結すると、組み立てや分解の処理負荷や遅延が生じない。HTTP(ハイパー・テキスト・トランスファー・プロトコル)をSSLに渡して暗号化し、それをTCPが分割すると、復号化の段階で組み立て処理が必要となるが、HTTPをあらかじめ分割した上でSSL化し、TCPで転送すると、組み立て無しにSSL復号化ができ、HTTPでデータの終了位置を検出する、あるいはTCPコネクションの切断でデータの終了とみなすことで、もとのデータが得られる。
【0044】
さらに、SSL通信装置がHTTPを分割したTCPパケットをサーバから受け、HTTPの組み立てを行わずに送信データとみなしてSSL処理を行う場合には、あらかじめセグメントサイズを最適にしてサーバから受けるため、SSL通信装置で分割するよりもデータの収容効率が良いという利点もある。
【0045】
さらに本発明では、暗号処理部の動作率の向上を図るとともに、双方向に遅延と処理負荷の低減を図っており、バッファに必要なメモリ量を削減することができる。これにより、余裕の出たメモリでより多くのセッション情報を保持することも可能となる。
【図面の簡単な説明】
【図1】本発明の実施形態を示すブロック構成図。
【図2】この実施形態で用いられる暗号化および復号化を説明する図。
【図3】SSLフォーマットを示す図。
【図4】従来の組み立て、復号化およびハッシュ計算の処理手順を説明する図。
【図5】本発明の処理手順を説明する図。
【図6】送信時のTCPフォーマットを説明する図。
【図7】復号回路の詳細を示すブロック構成図。
【図8】暗号回路の詳細を示すブロック構成図。
【図9】SSL受信バッファの処理のフローチャート。
【図10】復号化スケジューラの処理のフローチャート。
【図11】平文メモリの処理のフローチャート。
【図12】ハッシュスケジューラの処理のフローチャート。
【図13】コネクション確立のシーケンスを示す図。
【図14】平文受信バッファの処理のフローチャート。
【図15】暗号化/ハッシュスケジューラの処理のフローチャート。
【符号の説明】
1 SSL通信装置
2 復号回路
3 暗号回路
4 インターネット
5 サーバ
201、301 識別部
202 SSL受信バッファ
203 復号化スケジューラ
204 復号化処理部
205 平文メモリ
206 ハッシュスケジューラ
207、304 ハッシュ計算処理部
208、306 ハッシュメモリ
209 平文送信処理部
210、309 セッションテーブル
302 平文受信バッファ
303 暗号化/ハッシュスケジューラ
305 暗号化処理部
307 暗号文メモリ
308 暗号文送信処理部
[0001]
BACKGROUND OF THE INVENTION
The present invention relates to SSL (Secure Socket Layer) processing, which is a security protocol used as an access method that secures security to a Web server.
[0002]
[Prior art]
In SSL, application layer data is encrypted, and is divided into TCP (Transmission Control Protocol) packets that are transport layers and transferred. On the receiving side, encrypted data is assembled from a plurality of TCP packets, decrypted, and a MAC (Message Authentication Code) is calculated to confirm that the data has not been tampered with.
[0003]
There are the following documents as SSL or encrypted communication technologies, but these are general background technologies for the present invention.
[Patent Document 1]
JP 2002-077150 [Patent Document 2]
JP 2003-022321 A [Patent Document 3]
Japanese Patent Laying-Open No. 2003-092604 [Patent Document 4]
Japanese Patent Laid-Open No. 2003-504714 [0004]
[Problems to be solved by the invention]
In the conventional SSL, the encrypted data is divided into TCP and transferred. Therefore, the receiving side cannot perform the SSL processing until all the divided packets are received. For this reason, a delay occurs. In particular, in a server where access is concentrated, such as a Web site, performance is degraded due to delays associated with assembly and consumption of buffer memory. Further, when processing SSL at the relay point, it is necessary to divide and transfer again after the processing.
[0005]
An object of the present invention is to provide an encrypted communication control system that can solve such problems and reduce delay.
[0006]
[Means for Solving the Problems]
According to the first aspect of the present invention, encrypted transmission means for block-encrypting application layer data, and dividing the data into transmission control protocol packets as a transport layer, and transmission control protocol In the encrypted communication control system comprising the receiving and decrypting means for assembling the encrypted data, decrypting the encrypted data, decrypting the data into the application layer data, calculating the message authentication code and verifying that it has not been tampered with, The reception decryption means starts decryption as soon as a packet is received, and assembles the encrypted data, decrypts the data, and authenticates the message so that possible processing other than falsification verification is completed when all the packets are received. A way to schedule code calculations Encrypted communication control method is provided, wherein the was e.
[0007]
According to a second aspect of the present invention, encrypted transmission means for block-encrypting application layer data and dividing it into transmission control protocol packets as a transport layer, and transmission control protocol In the encrypted communication control system comprising the receiving and decrypting means for assembling the encrypted data, decrypting the encrypted data, decrypting the data into the application layer data, calculating the message authentication code and verifying that it has not been tampered with, The encrypted transmission means is provided with means for dividing the application layer data so that it can be transferred in a single packet of the transmission control protocol after block encryption is provided. The
[0008]
The dividing means sets the size of data transferred between the transmission source and the other party to a size that can be transferred by the one packet when the connection between the transmission source and the other party of the application layer data is established. Means for setting may be included.
[0009]
DETAILED DESCRIPTION OF THE INVENTION
FIG. 1 is a block diagram showing an embodiment of the present invention. The present invention is implemented in an SSL communication apparatus 1 that decrypts SSL traffic from the Internet 4 to the server 5 and encrypts traffic going from the server 5 to the Internet 4 as shown in FIG. The SSL communication apparatus 1 includes a decryption circuit 2 that is in charge of a reception process from the Internet 4 to the server 5 and an encryption circuit 3 that is in charge of a transmission process from the server 5 to the Internet 4.
[0010]
FIG. 2 is a diagram for explaining encryption and decryption used in this embodiment. Communication between the SSL communication apparatus 1 and the Internet 4 is performed by SSL, and a block cipher that performs encryption for each group called a cipher block is used. At this time, the next block is encrypted using the encryption result of the previous block. At the time of decoding, if packets are received in the order of transmission, they can be sequentially decoded.
[0011]
FIG. 3 shows the SSL format. The SSL block includes an SSL header, a payload, a MAC (message authentication code), padding, and a padding length. The data portion (payload) is allowed up to a maximum of 18 KB, and a hash value is calculated over the entire data, and the presence or absence of tampering is checked by comparing with a MAC in the SSL. Since the data length of the TCP packet is shorter than the SSL data length, one SSL data is divided into a plurality of packets and transferred. For this reason, unless all of these packets are received on the receiving side, the reliability of the data cannot be confirmed.
[0012]
FIG. 4 is a diagram for explaining the conventional assembly, decryption, and hash calculation processing procedure, and FIG. 5 is a diagram for explaining the processing procedure of the present invention. Since SSL is divided and transferred to TCP, it is necessary to process it after assembling it on the receiving side. That is, first, ciphertext segmented into TCP is assembled and decrypted, and hash calculation is performed to check whether or not there is any falsification. On the other hand, in the present invention, focusing on the fact that the encryption algorithm can be decrypted as soon as it is received, the possible processing of decryption and hash calculation is performed in advance while assembling the packet. This reduces the delay.
[0013]
FIG. 6 is a diagram for explaining a TCP format at the time of transmission in the present invention. Since the sender's data length cannot be controlled when he / she is the receiving side, the speed is increased by the processing described above. On the other hand, at the time of transmission, the data length can be controlled. Therefore, instead of encrypting the application layer data and sending it by TCP, the data is divided and then encrypted by SSL, and the IP header and TCP header are added to form one TCP packet. As a result, the receiving side can perform decoding and verification for each packet.
[0014]
FIG. 7 is a block diagram showing details of the decoding circuit 2. The decryption circuit 2 includes an identification unit 201, an SSL reception buffer 202, a decryption scheduler 203, a decryption processing unit 204, a plaintext memory 205, a hash scheduler 206, a hash calculation processing unit 207, a hash memory 208, a plaintext transmission processing unit 209, and A session table 210 is provided.
[0015]
The identification unit 201 determines where the received traffic is from. This identified traffic is called a flow. A buffer is allocated for each flow recognized by the identification unit 201. The identified traffic enters the SSL reception buffer 202, is scheduled by the decoding scheduler 203 so as to be processed with the processing performance assigned for each flow, and is decoded by the decoding processing unit 204. Up to this point, the packet is executed as soon as it arrives. However, when the line state is bad and the packet order is changed, the decoding is not executed until the next packet comes. The data that has been decrypted by the decryption processing unit 204 is stored in the plaintext memory 205. When the length determined by the hash algorithm is decrypted, data of that length is scheduled from the plaintext memory 205 by the hash scheduler 206 and hash-processed by the hash calculation processing unit 207. The result of the hash calculation is stored in the hash memory 208 for use in the next hash process. The value remaining in the hash memory 208 when all processing is completed is the hash calculation result. All the SSL blocks (see FIG. 3) are decrypted, and if the hash calculation and the MAC value match, it is not falsified, and the plaintext transmission processing unit 209 performs transmission processing to the server 5. At this time, the MAC and padding added for SSL are removed.
[0016]
The session table 210 holds session / connection information used in SSL communication, and passes information to each unit during calculation. Any change in this information is reflected in the session table 210.
[0017]
FIG. 8 is a block diagram showing the details of the encryption circuit 3. The encryption circuit 3 includes an identification unit 301, a plaintext reception buffer 302, an encryption / hash scheduler 303, a hash calculation processing unit 304, an encryption processing unit 305, a hash memory 306, a ciphertext memory 307, a ciphertext transmission processing unit 308, and A session table 309 is provided.
[0018]
The identification unit 301 determines the flow from the server. The identified flow is stored in the plaintext reception buffer 302. In this embodiment, the encryption side adjusts so that the addition and encryption of the MAC is completed with a single packet. Unlike the decryption circuit 2, each flow can be encrypted without scheduling in units of bytes. When a new packet is input, the packet is encrypted to the end. If the packet order is changed, it will wait until the correct packet arrives. Encryption is performed when a correct packet arrives. One packet is encrypted in sequence for each flow. Since the encryption / hash scheduler 303 needs to add the MAC to the last part of the plaintext, the preceding process advances simultaneously with the hash calculation performed by the hash calculation processing unit 304 and the encryption performed by the encryption processing unit 305. Adjust to wait in part and complete encryption. The processing of the hash calculation processing unit 304 and the hash memory 306 is equivalent to the processing of the hash calculation processing unit 207 and the hash memory 208. The encryption processing unit 305 performs encryption processing while being adjusted by the encryption / hash scheduler 303. When the encryption processing unit 305 is completed, the encryption processing unit 305 passes the data to the ciphertext transmission processing unit 308 and is transferred to the Internet 4.
[0019]
The session table 309 holds session / connection information used in SSL communication, and passes information to each unit during calculation. Any change in this information is reflected in the session table 309.
[0020]
The operation of the decoding circuit 2 shown in FIG. 7 will be described in more detail.
[0021]
FIG. 9 shows a flowchart of the process of the SSL reception buffer 202, and FIG. 10 shows a flowchart of the process of the decoding scheduler 203. These processes are linked to the processes of the decryption processing unit 204.
[0022]
The SSL reception buffer 202 stores an SSL block as shown in FIG. 3 carried by TCP. At this time, the length of the SSL block read from the SSL header is SSL_Length, the number of bytes that can be continuously received without being replaced from the beginning is Dc, the number of decrypted bytes that have already been requested to the decryption scheduler 203 is Dp, Let Ddec be the number of bytes that is the unit of decoding determined by the algorithm.
[0023]
The SSL reception buffer 202 receives SSL cipher data from the network after the start of reception (step A1), and if it is the head of the SSL block (step A2), secures an area for the block, SSL_Length, Dc, Dp The initial value of Ddec is set (step A3). If the value obtained by subtracting the number of bytes for which the processing request has already been completed from the number of bytes that have been continuously received is larger than the number of bytes in the processing unit (step A4), a decoding processing request is sent to the decoding scheduler 203 (step S4). A5). When data is received after a certain interval such as packet switching, the number of consecutive received bytes increases suddenly, and several times the processing unit is requested to be decoded at once. Since the SSL block is not always an integral multiple of the processing unit, the last area makes a decoding process request when the number of consecutive received bytes matches the SSL block length (step A6) (step A7). Thereafter, this process is repeated.
[0024]
Flows are numbered to distinguish them. This is the flow identifier Flow_No. The decoding scheduler 203 receives the decoding processing request Q (Flow_No), the number of decoding bytes allocated to the flow is Unit (Flow_No), the number of bytes to be decoded this time is Dec_size, SSL The maximum number of flows supported by the communication device 1 is assumed to be Flow_max.
[0025]
As shown in FIG. 10, when the decoding scheduler 203 starts accepting a processing request, it first checks sequentially from Flow_No 1 to (Step B1) Flow_max. If there is a decryption request (step B2), the number of bytes to be processed is determined (step B3), and the number of bytes in the SSL ciphertext is decrypted (step B4). When the entire SSL block has been decoded (step B5), the buffer of the corresponding SSL block is released (step B6). When the decoding process is finished or there is no processing request, it is checked whether there is a processing request for the next flow (step B7). This is performed for all the flows, and is repeated thereafter.
[0026]
The decryption processing unit 204 operates in response to a trigger from the decryption scheduler 203 and sends the decrypted plaintext to the plaintext memory 205.
[0027]
FIG. 11 shows a flowchart of processing of the plaintext memory 205, and FIG. 12 shows a flowchart of processing of the hash scheduler 206. This processing is linked to the processing of the hash calculation processing unit 207 and the hash memory 208.
[0028]
The plaintext memory 205 stores the plaintext decrypted by the decryption processing unit 204. The plaintext block length is Plain_Length, the number of bytes received from the decryption processing unit 204 is D_plain, the number of bytes that have already been requested to the hash scheduler 206 is D_hash, and the unit of hash calculation processing determined by the hash algorithm Let Dcal be the number of bytes.
[0029]
In the plaintext memory 205, when plaintext is received from the decryption processing unit 204 (step C1), when it is the head of the plaintext block (step C2), initial values of Plain_Length, D_plain, D_hash, and Dcal are set ( Step C3). In the current specification, since the compression algorithm is not defined in SSL, Plain_Length = SSL_Length. If the number of bytes for calculating the hash is accumulated (step C4), a calculation processing request is issued to the hash scheduler 206 (step C5). Since the end of the plaintext block is not always the number of bytes as a calculation unit, a processing request is issued when the block length is received (step C6) (step C7). Since plaintext confirms delivery with the server after the MAC check, the buffer is not released at this stage. Thereafter, reception and hash processing requests are repeated.
[0030]
The hash scheduler 206 operates in the same manner as the decryption scheduler 203. When the acceptance of scheduling is started, hash processing requests for each flow are confirmed in order (step D1). The number of hash calculation request bytes is Qh (Flow_No), the number of hash calculation bytes assigned to a flow is Unith (Flow_No), and the number of bytes to be hash-calculated this time is Cal_size. It is checked whether there is a hash calculation request (step D2), and if there is, a processing byte number is determined (step D3). Information corresponding to the flow is obtained from the session table 210 and the hash memory 208, and the hash calculation processing unit 207 is controlled so as to calculate the hash with the plain text of Cal_size (step D4), and is recorded in the hash memory 208. It is checked whether or not the calculation of the hash has been completed (step D5). If it has been completed, a comparison with the MAC is performed, and control is performed to verify whether or not tampering has occurred (step D6). When this is completed, the next flow is checked, and when all the flows have been viewed, the first flow is checked again.
[0031]
The hash calculation processing unit 207 writes the calculation result in the hash memory 208, and this becomes an input for the next hash calculation. Finally, what remains in the hash memory 208 is the result of the hash calculation. If it is confirmed that the file has not been tampered with, the plaintext transmission processing unit 209 transfers the plaintext toward the server 5.
[0032]
Next, the operation of the encryption circuit 3 shown in FIG. 8 will be described in detail.
[0033]
The encryption circuit 3 encrypts communication from the server 5 to the Internet 4. Even after encryption, the SSL block as shown in FIG. 3 has an IP (Internet Protocol) header and TCP as shown in FIG. Adjustments are made in advance so that they fit in one packet after adding a header. Since the SSL header and padding are added at the time of encryption, the packet sent out by the server 5 may be shortened in advance by this length. For this purpose, the sequence shown in FIG. 13 is used in the process of establishing a TCP connection.
[0034]
FIG. 13 shows a sequence for establishing a connection with a user who accesses the server 5 via the Internet 4. When a TCP SYN packet is sent from the user, the SSL communication apparatus 1 operates as follows in order to establish a TCP connection between the user and the server 5. First, a DF (fragment prohibition) bit of the IP header is set and transmitted to each of the user and the server to obtain a path MTU (maximum transfer unit). The SSL communication apparatus 1 sets the MSS (maximum segment size) to an appropriate value by the TCP handshake so that the path MTU is not exceeded even if encryption is performed by SSL on the user side and the server 5 side. The TCP connection is established while notifying this value.
[0035]
FIG. 14 shows a flowchart of processing of the plaintext reception buffer 302. When reception of plain text from the server 5 is started, it is stored in the buffer of the corresponding flow (step E1). Next, if the packet to be encrypted can be received (step E2), a hash calculation and an encryption process are requested to the encryption / hash scheduler 303 (step E4). If the packet order is not correct, the buffer is put in the buffer and the next packet is waited (step E3). The encryption / hash scheduler 303 is notified of the buffer start position, data size, flow number, and the like. It then waits for the next packet.
[0036]
FIG. 15 shows a flowchart of processing of the encryption / hash scheduler 303. The encryption / hash scheduler 303 obtains an encryption range that is possible without the MAC from the data size, and controls to execute the hash calculation and the encryption before adding the MAC in parallel (step F1). Upon completion of both, the hash value is added as the MAC to the rest of the plaintext, and the remaining encryption is controlled (step F2). Then, it is checked whether there is a next request. The encryption / hash scheduler 303 finishes processing the received packet at once. The processing is not interrupted after processing for a certain number of bytes as in the case of decoding. Also, the flow is not examined in order. Speed up by processing in the order of arrival. The amount of transmission data is controlled by TCP flow control. These are possible because the processing can be completed in packet units.
[0037]
Data is stored in the hash memory 306 in the hash calculation, and in the ciphertext memory 307 in the encryption. When the encryption is completed, the corresponding packet is transferred from the ciphertext memory 307 to the Internet 4.
[0038]
In the embodiment described above, the decryption circuit 2 must hold the received packet in the plaintext memory 205 until the MAC verification is completed to check for falsification, and wait for the verification to end. With respect to this point, there is a possibility that it can be operated at higher speed by adding a little contrivance.
[0039]
That is, the plaintext for which hash calculation has been completed is immediately transmitted to the server 5 without being buffered in the plaintext memory 205. Since the calculation of the hash can be performed sequentially, it can be transferred in order from the first one. With this method, the plaintext block is not buffered, so the processing speed can be increased as much as when processing is performed for each packet. At this time, when falsification is found during hash verification of the last packet, the plaintext transmission processing unit 209 discards this packet and waits for a timeout without performing retransmission to the server 5. Timeout takes a relatively long time, but is useful in situations where the frequency of tampering is not high. However, even if the last packet is discarded, there may be a problem in the case of a server implementation in which the packets that have arrived first are sequentially read, and there is model dependency.
[0040]
By not buffering plaintext blocks, in most cases where tampering does not occur, a significantly higher throughput and lower delay can be obtained than in the past, and only when tampering occurs, performance degradation associated with waiting for timeout occurs. In the configuration shown in FIG. 7, it can be said that the tampered packet does not reach the server 5 and the security strength is high. On the other hand, when the plaintext block is not buffered, a part of the altered packet reaches the server 5, which is somewhat dangerous, but enables high-speed communication.
[0041]
【The invention's effect】
According to the present invention, the processing can be started without waiting for the arrival of all the packets constituting the SSL block at the time of reception decoding. Thereby, the non-operation time of a processor etc. can be reduced and the performance can be fully utilized. In addition, because another flow can use the processing resources that are available for the flow that could not be decoded due to a change in packet order, etc., the operating rate of the processing unit can be improved and the performance can be used without waste. I can do it.
[0042]
Also, during encrypted transmission, it is possible to exchange packets that do not exceed the path MTU consistently from the user to the server, and that can fit in one packet even if SSL is used. By handling packets that do not exceed the path MTU, it is possible to prevent fragmentation associated with SSL conversion and to prevent sacrifice of performance degradation due to this to other performance. Thereby, it becomes possible to make use of the performance of the encryption processing unit.
[0043]
Further, when encryption / decryption is completed with a single packet, the processing load and delay of assembly and disassembly do not occur. When HTTP (Hyper Text Transfer Protocol) is passed to SSL and encrypted, and it is split by TCP, an assembly process is required at the decryption stage. When transferred, SSL decryption can be performed without assembling, and the original data can be obtained by detecting the end position of data by HTTP, or by considering the end of data by disconnecting the TCP connection.
[0044]
Further, when the SSL communication apparatus receives a TCP packet obtained by dividing HTTP from the server and performs SSL processing by regarding it as transmission data without performing HTTP assembly, the segment size is optimized and received from the server in advance. There is also an advantage that the data accommodation efficiency is better than dividing by the communication device.
[0045]
Furthermore, according to the present invention, the operation rate of the encryption processing unit is improved, and the delay and the processing load are reduced in both directions, so that the amount of memory necessary for the buffer can be reduced. As a result, it is possible to hold more session information in a memory with a sufficient margin.
[Brief description of the drawings]
FIG. 1 is a block diagram showing an embodiment of the present invention.
FIG. 2 is a view for explaining encryption and decryption used in this embodiment.
FIG. 3 is a diagram showing an SSL format.
FIG. 4 is a diagram illustrating processing procedures for conventional assembly, decryption, and hash calculation.
FIG. 5 is a diagram illustrating a processing procedure according to the present invention.
FIG. 6 is a diagram for explaining a TCP format at the time of transmission.
FIG. 7 is a block diagram showing details of a decoding circuit.
FIG. 8 is a block configuration diagram showing details of an encryption circuit.
FIG. 9 is a flowchart of SSL reception buffer processing.
FIG. 10 is a flowchart of processing of a decoding scheduler.
FIG. 11 is a flowchart of plaintext memory processing.
FIG. 12 is a flowchart of processing of a hash scheduler.
FIG. 13 is a diagram showing a connection establishment sequence.
FIG. 14 is a flowchart of processing of a plaintext reception buffer.
FIG. 15 is a flowchart of encryption / hash scheduler processing;
[Explanation of symbols]
DESCRIPTION OF SYMBOLS 1 SSL communication apparatus 2 Decryption circuit 3 Encryption circuit 4 Internet 5 Server 201, 301 Identification part 202 SSL reception buffer 203 Decryption scheduler 204 Decryption process part 205 Plain text memory 206 Hash scheduler 207, 304 Hash calculation process part 208, 306 Hash memory 209 plaintext transmission processing unit 210, 309 session table 302 plaintext reception buffer 303 encryption / hash scheduler 305 encryption processing unit 307 ciphertext memory 308 ciphertext transmission processing unit

Claims (1)

アプリケーション層のデータがブロック暗号化されトランスポート層であるトランスミッション・コントロール・プロトコルのパケットに分割されて転送された暗号化データをアプリケーション層のデータに復号化する復号化処理手段と、
復号化されたデータのメッセージ認証コードを計算して改竄されていないことを検証する検証手段と、
改竄されていないことが検証されたアプリケーション層のデータをサーバへ転送する平文送信処理手段と、
パケットを受信次第復号を開始し、パケットをすべて受け取った時点において改竄検証以外の可能な処理が完了するように、前記復号化処理手段および前記検証手段の動作をスケジューリングする手段と
を備えた暗号化通信制御装置において、
前記平文送信処理装置は、前記復号化処理手段により復号化されたデータを前記検証手段による検証がまだ行われていない段階であっても前記サーバに転送し、前記データ検証手段により最後のパケットで改竄が検出された場合に、そのパケットを廃棄して、サーバのタイムアトを待つ
ことを特徴とする暗号化通信制御装置。
Decryption processing means for decrypting the encrypted data transferred to the application layer data after being block-encrypted and divided into transmission control protocol packets that are transport layers;
A verification means for calculating the message authentication code of the decrypted data and verifying that it has not been tampered with;
Plaintext transmission processing means for transferring data of the application layer verified not to be falsified to the server;
Decryption as soon as a packet is received, and an encryption comprising: the decryption processing means and means for scheduling the operation of the verification means so that possible processing other than tampering verification is completed when all packets are received In the communication control device,
The plaintext transmission processing device transfers the data decrypted by the decryption processing means to the server even if the verification by the verification means has not yet been performed, and the data verification means uses the last packet as the last packet. If tampering is detected, and discards the packet, the encrypted communication control apparatus characterized by waiting for a timed window bets server.
JP2003160862A 2003-06-05 2003-06-05 Encrypted communication control device Expired - Fee Related JP4346962B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2003160862A JP4346962B2 (en) 2003-06-05 2003-06-05 Encrypted communication control device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2003160862A JP4346962B2 (en) 2003-06-05 2003-06-05 Encrypted communication control device

Related Child Applications (2)

Application Number Title Priority Date Filing Date
JP2008002954A Division JP2008118706A (en) 2008-01-10 2008-01-10 Encrypted communication control system
JP2009119658A Division JP2009182991A (en) 2009-05-18 2009-05-18 Encrypted communication controller

Publications (2)

Publication Number Publication Date
JP2004364022A JP2004364022A (en) 2004-12-24
JP4346962B2 true JP4346962B2 (en) 2009-10-21

Family

ID=34053523

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2003160862A Expired - Fee Related JP4346962B2 (en) 2003-06-05 2003-06-05 Encrypted communication control device

Country Status (1)

Country Link
JP (1) JP4346962B2 (en)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4581925B2 (en) * 2005-09-05 2010-11-17 日本電気株式会社 Data transfer apparatus and data transfer method
JP4855147B2 (en) * 2006-05-30 2012-01-18 株式会社Into Client device, mail system, program, and recording medium
US8949600B2 (en) 2006-10-27 2015-02-03 Qualcomm Incorporated Composed message authentication code
JP2008210012A (en) 2007-02-23 2008-09-11 Fujitsu Ltd Data decoding processing program and data decoding processor
JP4802123B2 (en) 2007-03-07 2011-10-26 富士通株式会社 Information transmitting apparatus, information transmitting method, information transmitting program, and recording medium recording the program
JP4906800B2 (en) * 2008-07-02 2012-03-28 三菱電機株式会社 COMMUNICATION DEVICE, ENCRYPTED COMMUNICATION SYSTEM, COMMUNICATION METHOD, AND COMMUNICATION PROGRAM
JP5414346B2 (en) * 2009-04-28 2014-02-12 三菱電機株式会社 Data processing device
JP5930619B2 (en) * 2011-06-27 2016-06-08 キヤノン株式会社 Cryptographic processing device

Also Published As

Publication number Publication date
JP2004364022A (en) 2004-12-24

Similar Documents

Publication Publication Date Title
USRE49053E1 (en) System and method for an adaptive TCP SYN cookie with time validation
US8984268B2 (en) Encrypted record transmission
JP3819729B2 (en) Data-safety communication apparatus and method
US8572382B2 (en) Out-of band authentication method and system for communication over a data network
TW564624B (en) Non-invasive SSL payload processing for IP packet using streaming SSL parsing
KR101357026B1 (en) Air-interface application layer security for wireless networks
EP2087766B1 (en) Composed message authentication code
US20030014624A1 (en) Non-proxy internet communication
US20020035681A1 (en) Strategy for handling long SSL messages
US8683572B1 (en) Method and apparatus for providing continuous user verification in a packet-based network
WO2008018318A1 (en) Encryption device, decryption device, encryption method, and decryption method
JP4346962B2 (en) Encrypted communication control device
Seggelmann et al. SSH over SCTP—Optimizing a multi-channel protocol by adapting it to SCTP
US20100031015A1 (en) IP Network Communication Method Having Security Function, And Communication System
WO2010023951A1 (en) Secure communication device, secure communication method, and program
Hohendorf et al. Secure End-to-End Transport Over SCTP.
JP2010011122A (en) Encrypted packet processing system
CN115225331A (en) Data encryption communication method
JP2008118706A (en) Encrypted communication control system
JP2009182991A (en) Encrypted communication controller
Hohendorf et al. Secure end-to-end transport over sctp
WO2002011390A2 (en) Network security accelerator
CN117201200B (en) Data safety transmission method based on protocol stack
Völker et al. Secure TLS: preventing DoS attacks with lower layer authentication
CN117499146A (en) Encryption communication method, device and system oriented to FC and Ethernet protocol conversion

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20060516

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20070807

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20071211

RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7422

Effective date: 20080110

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20080110

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20080212

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20080222

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20080319

A912 Re-examination (zenchi) completed and case transferred to appeal board

Free format text: JAPANESE INTERMEDIATE CODE: A912

Effective date: 20080411

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090518

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20090715

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20120724

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20120724

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20130724

Year of fee payment: 4

LAPS Cancellation because of no payment of annual fees