JP4358795B2 - Tlsセッション情報の引継ぎ方法及びコンピュータシステム - Google Patents

Tlsセッション情報の引継ぎ方法及びコンピュータシステム Download PDF

Info

Publication number
JP4358795B2
JP4358795B2 JP2005213182A JP2005213182A JP4358795B2 JP 4358795 B2 JP4358795 B2 JP 4358795B2 JP 2005213182 A JP2005213182 A JP 2005213182A JP 2005213182 A JP2005213182 A JP 2005213182A JP 4358795 B2 JP4358795 B2 JP 4358795B2
Authority
JP
Japan
Prior art keywords
role
server
database
tls
session
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
JP2005213182A
Other languages
English (en)
Other versions
JP2007036389A (ja
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.)
Hitachi Software Engineering Co Ltd
Original Assignee
Hitachi Software Engineering Co Ltd
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 Hitachi Software Engineering Co Ltd filed Critical Hitachi Software Engineering Co Ltd
Priority to JP2005213182A priority Critical patent/JP4358795B2/ja
Publication of JP2007036389A publication Critical patent/JP2007036389A/ja
Application granted granted Critical
Publication of JP4358795B2 publication Critical patent/JP4358795B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Computer And Data Communications (AREA)

Description

本発明は、ネットワークを介したサーバ間の安全な情報の引継ぎ技術に関し、さらに詳しくは、TLSプロトコルのセッション情報をセキュアOSが稼動する一つのサーバから別のサーバへ安全に引継ぐ技術に関する。
家庭や企業での急激なインターネットの普及、ブロードバンド化の進展に伴い、電子商取引等が急激に増加している。それに伴い、暗号化技術等のコンピュータシステムにおけるセキュリティ技術の重要性も飛躍的に高まっており、実際のWebサーバによる電子商取引サイトでは、TLS(Transfer Layer Security)プロトコルと呼ばれる通信路の暗号化技術がよく使われている。
TLSプロトコルは、OSI(Open System Interconnection)参照モデルの第5層(セッションレイヤ)に相当するプロトコルであり、ネットワークを介して接続された二つのコンピュータ間のアプリケーションデータの通信を保護するものであり、TLSプロトコルに従うことにより、主に通信データの暗号化と通信相手の認証ができる。例えば、非特許文献1に詳述されているように、下位層のTCPにより設定された通信路上でレコードデータを送受信して、通信相手の認証、アプリケーションデータの暗号化に必要な鍵生成に利用する乱数データの交換、アプリケーションデータの圧縮、暗号及び改ざん検出等を行うことができる。以下に、その処理手順について概要を説明する。
(1)クライアントとサーバとの間でTCPによるコネクションを確立する。
(2)クライアントとサーバは、TLSプロトコルに従い、認証、鍵情報の交換を行うハンドシェイク処理を行う。ハンドシェイク処理の第1段として、クライアントがサーバにClientHelloメッセージを送る。ClientHelloメッセージには、鍵生成に利用する乱数データ、クライアントがサポートしている暗号アルゴリズムや圧縮アルゴリズムの識別子が含まれる。なお、ClientHelloメッセージを含め、続くハンドシェイク処理は、レコードデータの一部に含まれてやり取りされる。
(3)ハンドシェイク処理の第2段として、サーバは、ClinetHelloメッセージを受信した後、ServerHello、ServerHelloDoneなどのメッセージを生成して、クライアントに送信する。ServerHelloメッセージには、セッションID(以下、「SID」という。)が含まれる。SIDについては後述する。
(4)ハンドシェイク処理の第3段として、クライアントがServerHelloなどのメッセージを受信した後、ClientKeyExchange、ChangeCipherSpec及びFinishedなどのメッセージを生成して、サーバに送信する。ClientKeyExchangeメッセージには暗号鍵生成に使用する乱数データが暗号化されて含まれており、本データとClientHello及びServerHelloメッセージに含まれる乱数データとを合わせてアプリケーションデータの暗号化や改ざん検知に必要な暗号鍵を生成する。これらのデータはSIDと関連付けられており、TCPによるコネクションを切断後に再度通信を行う場合に再利用される。詳細は後述する。ChangeCipherSpecは以後の通信が圧縮、暗号化されることを示す。Finishedメッセージはクライアント側のハンドシェイク処理が終わったことをサーバに通知する。
(5)ハンドシェイク処理の第4段として、サーバがClientKeyExchangeなどのメッセージを受信し、ClientKeyExchangeに含まれる暗号化乱数データを復号、暗号鍵の生成する。さらに、ChangeCipherSpec及びFinishedメッセージを生成して、クライアントに送信する。
(6)以後、クライアントとサーバは、乱数データから生成した暗号鍵を利用して、通信データを暗号化したり、改ざん検知のためのデータを付加して相手に送信する。受信側は復号、改ざんがないか確認して、アプリケーションデータを取得し、本来のアプリケーションの処理を行う。なお、アプリケーションデータの圧縮を行う場合には、暗号の前に行う。これらの処理はレコード単位で行われる。
上記(1)〜(6)の手順は、初めてクライアントとサーバが通信を行う場合の完全ハンドシェイク処理の手順であり、クライアントとサーバに比較的負荷のかかる処理である。特に、ClientKeyExchangeメッセージに含まれる乱数データの暗号化や復号化による負荷が大きい。これは公開鍵暗号を利用するためである。
このため、2回目以降の通信におけるハンドシェイク処理では、ClientKeyExchangeメッセージのやり取りを省略し、初回の完全なハンドシェイク処理時に交換した乱数データを再利用して、負荷を減らす簡略ハンドシェイク処理が定義されている。以下に、簡略ハンドシェイクによる通信の手順について説明する。
(1)クライアントは、ClientHelloメッセージをサーバに送る。このメッセージには、初回の完全ハンドシェイク処理時に生成したTLSセッションを識別するSIDが含まれている。
(2)サーバは、ClientHelloメッセージを受信した後、SIDに対応する初回の通信時に交換した乱数データをキャッシュメモリーより取得し、2回目以降の通信における暗号化や改ざん検知に利用する。このSIDを含むServerHello、ChangeCipherSpec及びFinishedメッセージを生成し、クライアントに送信する。
(3)クライアントは、ChangeCipherSpec及びFinishedメッセージを受信する。さらにChangeCipherSpec及びFinishedメッセージを生成し、サーバに送信する。以後の通信は、SIDに対応した乱数データから鍵を生成、利用して、暗号化する。
以上がTLSプロトコルの概要である。なお、クライアントとサーバで合意した暗号アルゴリズム、圧縮アルゴリズム及び暗号鍵生成に利用する乱数データを含めて、「TLSセッション情報」という。クライアントとサーバはSIDを用いてTLSセッション情報を識別することができ、簡略ハンドシェイク処理行うことにより、効率的にTLSプロトコルを利用できる。
一方、従来まで軍事技術に属していたセキュリティを強化したオペレーティングシステム(以下、「セキュアOS」という。)が一般に入手可能になった。セキュアOSの強制的アクセス制御を利用することにより、Webサーバ等のサーバに脆弱性があり、この脆弱性が攻撃されても、攻撃の被害を当該サーバのみに限定することができる。例えば、「サーバが停止する」、「サーバがアクセス可能なファイルが改ざんされたり外部に漏洩する」等の被害は発生するが、同一コンピュータシステム内の他のサーバが停止したり、被害を受けたサーバがアクセスしないファイルの破壊や漏洩を防ぐことができる。即ち、被害の範囲が、サーバのプロセスが属するドメイン及び役割にOSによって許可されたリソースやプロセスのアクセス範囲内に限定される。ここで、ドメイン及び役割とは、プロセスに割当てられたセキュリティ属性であって、セキュアOSは、本プロセスのセキュリティ属性とアクセスの対象であるリソースに割当てたセキュリティ属性とを比較して、アクセスを許可するか禁止するかを決定する。
このようなドメイン及び役割によって、たとえアプリケーションに脆弱性があっても被害範囲が限定できるセキュアOSの特徴を利用したセキュリティ技術が開発されている。
例えば、非特許文献2では、セキュアOSを用いて、Webサーバ等の利用者に与えられている権限(ドメイン)と、その権限で利用可能なリソースの種類(タイプ)を制限することで、利用者が自由に様々なOS上のリソースにアクセスしようとしてもできないように、権限の細分化と最小化を実践する技術が開示されている。なお、TLSのセッション情報等、通信路の安全性に関る情報の送信・受信については、記載されていない。
また、特許文献1では、異なるコンピュータシステム間で通信路の安全性や役割などの情報を引継ぎ、共有し、移譲するときの方法として、鍵、役割、期間等の情報を含む委任トークンを、暗号技術を用いて安全に交換する技術が開示されている。
特開2004−166238号公報 T.Dierk、 C.Allen、「The TLS Protocol ver.1」、InternetRFC2246、Jan.1999 独立行政法人情報処理推進機構セキュリティセンタ著、「強制的アクセス制御に基づく Web サーバーに関する調査・設計の機能仕様書」、2005年4月26日
しかしながら、非特許文献2に記載の技術では、アクセスがある度にWebサーバを起動しているので、Webサーバへの負荷が大き過ぎるという問題があった。実際、telnetのような仮想端末のサーバやftpのようなファイル転送のサーバは比較的に単純で軽量なサーバであるため、アクセスがある度にサーバを起動してもよいが、Webサーバは複雑で大規模であるため、起動するサーバは一つだけであり、この一つのサーバが複数のクライアントによる大量のアクセスを処理している。また、アプリケーションの性質上、Webサーバへのアクセス頻度は非常に高いので、アクセスのたびに、暗号処理のためのサーバを起動するのは非現実的である。
また、特許文献1に記載の技術では、役割等の委任に必要な情報をサーバ間で、トークンにより安全に転送するために暗号技術を用いて保護しているが、送信側と受信側のサーバでそれぞれに暗号処理が必要になるため、サーバの負荷が増大するという問題があった。
上記問題点に鑑み、本発明は、クライアントとネットワークを介して接続されるコンピュータシステムに使用される効率的で、安全なTLSセッション情報の引継ぎ方法を提供することを課題とする。また、本発明は、TLSセッション情報の引継ぎ方法を用いて、大幅に稼動効率が向上するコンピュータシステムを提供することを課題とする。
上記課題を解決するために、本発明は、以下の特徴を有する。
本発明によるTLSセッション情報の引継ぎ方法は、セキュアOSが稼働し、クライアントからの要求を受付ける中継サーバと、ドメイン及び役割が割当てられアプリケーション処理を行う役割サーバと、前記クライアントのユーザとその役割の関連を保持する第1のデータベースと、TLSプロトコルのセッションIDと前記ドメイン及び役割の関連を保持する第2のデータベースと、前記役割サーバごとに用意されたTLSプロトコルのセッション情報を保持する第3のデータベースとを備え、前記中継サーバが、前記第1のデータベースに対しては読取る権限のみを有し、前記第3のデータベースに対しては書込む権限のみを有するコンピュータシステムにより実行されるTLSセッション情報の引継ぎ方法であって、前記中継サーバが、TLSプロトコルの処理に関しては、ハンドシェイク処理のみを行い、ハンドシェイク処理時に認証したユーザと、前記第1のデータベースから得た役割及びTLSプロトコルのセッションIDとを前記第2のデータベースに書込み、TLSセッション情報をハンドシェイク処理後に前記第3のデータベースに書込んだ後に破棄し、暗号化されたアプリケーションデータを前記役割サーバに中継するステップと、さらに、TLSプロトコルによるセッションを再開するときは、セッション開始時にクライアントから受信したメッセージに含まれるセッションIDをキーにして、前記第2のデータベースから対応する役割サーバを決定し、該役割サーバに前記メッセージを含めて中継するステップと、前記役割サーバが、前記第3のデータベース書込まれた前記TLSセッション情報を利用してTLSプロトコルによるハンドシェイク処理を行うステップとを有することを特徴とする。
また、本発明によるTLSセッション情報の引継ぎ方法は、前記中継サーバと、前記役割サーバとを、個々にセキュアOSが稼動する異なるコンピュータに配置し、前記役割サーバが配置されたコンピュータには、第3のデータベースへ書込む権限のみを有するデータベース追加サーバを配置し、前記中継サーバが、TLSセッション情報を、データベース追加サーバを介してハンドシェイク処理後に第3のデータベースに書きこんだ後に破棄するステップを有することを特徴とする。
本発明のコンピュータシステムは、セキュアOSが稼働し、クライアントからの要求を受付ける中継サーバとドメイン及び役割が割当てられアプリケーション処理を行う役割サーバと前記クライアントのユーザとその役割の関連を保持する第1のデータベースとTLSプロトコルのセッションIDと前記ドメイン及び役割の関連を保持する第2のデータベースと前記役割サーバごとに用意されたTLSプロトコルのセッション情報を保持する第3のデータベースとを備え、前記中継サーバが、前記第1のデータベースに対しては読取る権限のみを有し、前記第3のデータベースに対しては書込む権限のみを有するコンピュータシステムであって、前記中継サーバは、TLSプロトコルの処理に関しては、ハンドシェイク処理のみを行い、ハンドシェイク処理時に認証したユーザと、前記第1のデータベースから得た役割及びTLSプロトコルのセッションIDとを前記第2のデータベースに書込み、TLSセッション情報をハンドシェイク処理後に前記第3のデータベースに書き込んだ後に破棄し、暗号化されたアプリケーションデータを前記役割サーバに中継し、さらに、TLSプロトコルによるセッションを再開するときは、セッション開始時にクライアントから受信したメッセージに含まれるセッションIDをキーにして、前記第2のデータベースから対応する役割サーバを決定し、該役割サーバに前記メッセージを含めて中継し、前記役割サーバは、前記第3のデータベースに書込まれた前記TLSセッション情報を利用してTLSプロトコルによるハンドシェイク処理を行うことを特徴とする。
また、本発明のコンピュータシステムは、前記中継サーバと、前記役割サーバとを、個々にセキュアOSが稼動する異なるコンピュータに配置し、前記役割サーバが配置されたコンピュータには、第3のデータベースへ書込む権限のみを有するデータベース追加サーバを配置し、前記中継サーバは、TLSセッション情報を、データベース追加サーバを介してハンドシェイク処理後に第3のデータベースに書きこんだ後に破棄することを特徴とする。
本発明により、中継サーバの完全ハンドシェイク処理で得られたTLSセッション情報を、役割サーバが、アクセスが制限された第3のデータベースにより取得して簡略ハンドシェイク処理を行うことにより、効率的で安全なTLSセッション情報の引継ぎ方法を提供することができる。
また、本発明により、上記方法を用いて、大幅に稼動効率が向上するコンピュータシステムを提供することができる。
以下に、本発明を実施するための最良の形態を図面に基づいて説明する。
(実施の形態1)
図1は、実施の形態1のコンピュータシステムの構成を示す図である。図1に示すように、コンピュータ100は、中継サーバ110、ユーザと役割関連登録ツール120、役割1サーバ130、役割2サーバ140、SIDと役割関連データベース150、ユーザと役割関連データベース160及びTLSセッション情報データベース170、180により構成され、セキュアOSが稼働している。さらに、コンピュータ100には、外部よりクライアントのコンピュータ(以下、「クライアント」という。)200がネットワークを介して接続されている。以下に、個々の働きについて説明する。
中継サーバ110は、クライアント200がコンピュータ100にアクセスする最初のサーバである。中継サーバ110は、クライアント200が初めて接続してきたときは、TLSプロトコルに従うハンドシェイク処理を行い、クライアント200より取得したTLSセッション情報を役割サーバ130、140内のTLSセッション情報データベース170、180に登録する。ここで、セキュアOSの機能を用いることにより、中継サーバ110は、TLSセッション情報データベース170、180に登録、追記等の書込み(w;write)はできるが、読取る(r;read)ことはできないように制限されている。中継サーバ110は、TLSセッション情報データベース170、180に書込んだ後はTLSセッション情報を破棄する。このようにすることで、中継サーバ110に脆弱性があり、外部からの不正アクセスを許可した場合でも、不正侵入者は過去のTLSセッション情報を読み取ることはできない。ハンドシェイク処理後は、暗号化されたままの通信データを役割サーバ130、140にそのまま中継する。詳細は後述する。
ユーザと役割関連登録ツール120は、クライアント200のユーザとその役割との関係をユーザと役割関連データベース160に登録するためのツールである。ユーザと役割関連登録ツール120は、ユーザと役割関連データベース160への書込み及び読込みの権限を有するが、セキュアOSの機能を用いることにより、他のリソース、例えば、SIDと役割関連データベース150やTLSセッション情報データベース170、180などへのアクセスは禁止されている。
役割サーバ130、140は、それぞれある役割を持ったアプリケーションサーバであり、本来のアプリケーション処理を行う。役割サーバ130、140にドメインや役割を割当てることにより、役割サーバ130、140が不正アクセスされても、アクセス可能なリソースの範囲を限定できる。役割サーバ130、140は、中継サーバ110が行った完全ハンドシェイク処理により取得したTLSセッション情報を用いて簡略ハンドシェイク処理を行う。
SIDと役割関連データベース150は、本発明の第2のデータベースに相当し、中継サーバ110のみが読込み及び書込み可能なように、セキュアOSの機能により保護されている。
ユーザと役割関連データベース160は、本発明の第1のデータベースに相当し、ユーザと役割関連登録ツール120は読込み及び書込みが可能であり、中継サーバ110は読込みのみ可能となっている。従って、中継サーバ110に不正アクセスがあっても、ユーザと役割関連データベース160を改ざんすることはできない。
TLSセッション情報データベース170、180は、本発明の第3のデータベースに相当し、役割サーバ130、140にそれぞれ対応して配置されており、対応する役割サーバだけが対応するTLSセッション情報データベースへアクセスできるように、セキュアOSの機能を用いて制限されている。即ち、TLSセッション情報データベース1(170)は役割1サーバ130からのアクセスのみ許可され、TLSセッション情報データベース2(180)は役割2サーバ140からのアクセスのみ許可されるように、セキュアOSの機能を用いて制限されている。また、上述したように、中継サーバ110からは登録・追記等の書込みのみが可能で読込みはできない。
クライアント200は、本発明のコンピュータシステム上にあるサーバ110、130、140にアクセスし、アプリケーション処理を要求するコンピュータである。クライアント200は、役割サーバ130、140には中継サーバ110を介してアクセスする。
図2は、本発明の中継サーバの内部構造を示す図である。
TCPコネクション処理部111は、クライアント200からのTCPによるコネクションを受け付けたり、データの送受信を行う。一方、ハンドシェイク処理後のクライアント200と役割サーバ130、140との通信データの中継も行う他、ハンドシェイク処理部113と役割サーバ130、140とのハンドシェイクメッセージの通信も行う。
レコード処理部112は、TCPコネクション処理部111を介して受信したクライアント200からの受信データを処理する。処理の内容には、受信データをレコードデータ単位に区切ったり、レコードの内容によりその内容をハンドシェイク処理部113に渡す。逆に、ハンドシェイク処理部113からメッセージを受取り、TCPコネクション処理部111を介してクライアント200や役割サーバ130、140に送信する。
ハンドシェイク処理部113は、上述したようなクライアント200との完全ハンドシェイクの他、クライアント200や役割サーバ130、140との簡略ハンドシェイク処理の一部を行う。
図3は、本発明の役割サーバの内部構造を示す図である。ここでは、役割1サーバ130の内部構造示すが、役割2サーバ140の内部構造も同様である。
TCPコネクション処理部131は、中継サーバ110からのコネクションを受付けたり、受信データをレコード処理部132に渡したり、逆に、レコード処理部132から受け取ったデータを中継サーバ110に送信する。
レコード処理部132は、TCPコネクション処理部131を介して受信した中継サーバ110からの受信データを処理する。処理の内容には、受信データをレコード単位に区切ったり、レコードの内容によりその内容をハンドシェイク処理部133やサーバデータ処理部134に渡したり、圧縮データの場合には伸張、暗号化データの場合には復号などを行う。逆に、ハンドシェイク処理部133からメッセージ、サーバデータ処理部134からアプリケーションデータを受取り、圧縮や暗号化して、TCPコネクション処理部131を介して中継サーバ110に送信する。
ハンドシェイク処理部133は、中継サーバ110を介したクライアント200との簡略ハンドシェイクを行う。
サーバデータ処理部134は、本来のアプリケーション処理を行う。サーバデータ処理部134で行う処理は、役割サーバ130に与えられたリソースアクセスの範囲内にセキュアOSの機能により制限されている。従って、役割サーバ130が不正アクセスに遭っても、その被害範囲は限定される。
図4は、本発明のSIDと役割関連データベースの構造を示す図である。各行は、それぞれデータベース内の1つのレコードを示し、SIDフィールド151と役割フィールド152からなる。SIDフィールド151の値は、16バイトからなり、16進数で表現して例示したものである。本データベースのレコードは、中継サーバ110が完全ハンドシェイク処理を行ったときに作成される。クライアントが、再度サーバにアクセスしたときに行う簡略ハンドシェイク処理時に参照され、SIDフィールドの値により、どの役割サーバ130、140に通信を中継するかを決定するのに利用される。
図5は、本発明のユーザと役割関連データベース160の構造を示す図である。各行は、それぞれデータベース内の一レコードを示し、ユーザのフィールド161と役割のフィールド162とからなる。クライアント200がサーバ110に初めてアクセスしたときの完全ハンドシェイク処理を行うときに参照される。即ち、ハンドシェイク処理を通じて認証されたクライアントユーザからその役割を決定し、どの役割サーバ130、140に通信を中継するのかを決定するのに利用される。
図6は、本発明のTLSセッション情報データベース1の構造を示す図である。
インデックス171、173は、SIDをそのまま利用する。インデックス171は、図4に示す役割1あたる第4行にあるSID151に、インデックス173は、同様に役割1にあたる第3行にあるSID151に対応する。データ172、174は、インデックス171、173に対応するデータそのものであり、SIDに対応するセッションに利用される暗号アルゴリズムや鍵長、鍵生成に利用する乱数データを含んでいる。
図7は、本発明の中継サーバによる処理内容を示すフローチャートである。以下、フローチャートに従って、説明する。
まず、中継サーバ110内のTCPコネクッション処理部111が、クライアントからの接続要求を受け付け、受信データをレコード処理部112に渡す(ステップ701)。以後のクライアントとの送受信は、TCPコネクション処理部111を介して行われる。
次に、レコード処理部112は、受信データを解析し、上位データを取り出し、ハンドシェイクのメッセージであることを確認し、ハンドシェイク処理部113に渡す(ステップ702)。ここでは、受信データはTLS Record Protocol(非特許文献1参照)の形式をしており、本処理部112はTLSプロトコルの処理を行い、上位のアラート、ハンドシェイク、アプリケーションのデータを取出す。この処理は本発明の範囲外なので、ここでは詳細は記載しない。
次に、ハンドシェイク処理部113がハンドシェイク処理を行う(ステップ703)。処理の内容は、図8を用いて後述する。
次に、ハンドシェイク処理後、TCPコネクション処理部111がクライアント200と役割サーバ130、140との通信を中継する(ステップ704)。ハンドシェイク処理後は、中継サーバ110は本中継処理のみを行う。
図8は、本発明のハンドシェイク処理部が行う処理の詳細を示すフローチャートである。図7に示すステップ703のハンドシェイク処理の詳細である。
まず、中継サーバ110内のハンドシェイク処理部113は、レコード処理部112から受け取ったハンドシェイクのメッセージがClientHelloメッセージであることを確認し、さらに、クライアント200からの初めてのTLSセッションか、過去のセッションの再開かを判断する(ステップ801)。判断は、メッセージの中のSIDフィールドにより決定する。即ち、SIDフィールドが空白なら初めてのセッションであり、SIDが入っていれば再開を示す。
次に、初めてのセッションなら完全ハンドシェイク処理を行い、過去のセッションの再開なら簡略ハンドシェイク処理を行う(ステップ802)。
図9は、図8のステップ802に記載の完全ハンドシェイク処理の詳細を示すフローチャートである。
ハンドシェイク処理部113は、ServerHello他のハンドシェイクメッセージを生成し、レコード処理部112やTCPコネクション処理部111を介して、クライアント200に送信する(ステップ901)。
次に、ハンドシェイク処理部113は、クライアント200が送信し、TCPコネクション処理部111及びレコード処理部112を介して受信したCertificate等のメッセージを受取り、処理する(ステップ902)。この処理により、通信相手のクライアント200を認証して、クライアントユーザが判明する。
次に、Finished等のハンドシェイクメッセージを生成し、クライアント200に送信する(ステップ903)。
なお、上述のメッセージの生成・処理方法は、標準規格であるTLSプロトコル(非特許文献1参照)に従うものであり、詳細は記載しない。
次に、ハンドシェイク処理部113は、ステップ902にて認証したクライアントユーザに対する役割を、ユーザと役割関連データベース160を検索することにより、いずれの役割サーバ130、140が中継先かを決定する。役割の検索は、図5に示すように、認証したユーザに当たるユーザのフィールド161を有するレコードを探し、そのレコードの役割フィールド162の値を認識することにより行う(ステップ904)。
次に、ハンドシェイク処理部113は、SIDと、ステップ904にて取得したクライアントユーザの役割とをSIDと役割関連データベース150に登録する(ステップ905)。SIDは、ステップ901において生成したServerHelloメッセージに含まれるSIDを利用する。登録には、SIDフィールド151にSIDを、役割フィールド152には役割をもつレコードを1つ生成し、SIDと役割関連データベース150に追加する。
次に、ハンドシェイク処理部113は、ステップ904において決定した中継先の役割サーバ130又は140のTLSセッション情報データベース170又は180に、ステップ901及び902における処理で取得したセッション情報172、174を追加する(ステップ906)。セッション情報172、174の生成方法はTLSプロトコルに従い、その内容は、図6に示すように、通信相手種別、バルクデータ暗号アルゴリズム、暗号タイプ、鍵生成に利用する乱数データなどがある。
以後は、ステップ904で決定した役割サーバ130又は140と中継サーバ110との間で簡略ハンドシェイク処理が行われる。
ハンドシェイク処理部113は、上記SIDを含むClientHelloメッセージを生成し、役割サーバ130又は140に送信する。本メッセージを送信するには、クライアント200に送信する場合と同様に、レコード処理部112及びTCPコネクション処理部を介して送信する(ステップ907)。なお、ここで中継サーバ110と役割サーバ130又は140との間にTCPによるTCP接続を確立させる必要があるため、その接続処理はTCPコネクション処理部111が行う。
次に、ハンドシェイク処理部113は、役割サーバ130又は140からServerHelloメッセージ等を受信する(ステップ908)。役割サーバ130、140のTLSセッション情報データベース170、180には上記SIDのTLSセッション情報が含まれており、役割サーバ130、140は簡略ハンドシェイクを行う。
次に、ハンドシェイク処理部113は、ChangeCipherSpecとFinishedメッセージを生成し、役割サーバ130又は140に送信する(ステップ909)。
以上の処理を通して、クライアント200と役割サーバ130、140はTLSセッション情報を共有して、TLS通信を行うことができるようになる。
次に、ハンドシェイク処理部113は、セッション情報を破棄する(ステップ910)。これは、TLSセッション情報を記憶していたメモリ部を消去するだけでなく、ヌル文字や乱数で上書きすることにより消去することを含む。このような処理をすることにより、万一、中継サーバ110に不正アクセスがあっても、セッション情報を盗まれることはない。
次に、過去のセッションを再開するときに行う簡略ハンドシェイク処理を説明する。図10は、図8のステップ802に記載の簡略ハンドシェイク処理の詳細を示すフローチャートである。
ハンドシェイク処理部113は、ClientHelloメッセージに含まれるSIDをキーにSIDと役割関連データベース150を検索し、対応する役割サーバ130又は140を決定する。図4に示すSIDフィールド151のSIDに対応する役割フィールド152の値により役割サーバが決定される(ステップ1001)。
次に、先のClientHelloメッセージを役割サーバ130又は140のいずれかに送信する。本メッセージの送信は、クライアント200に送信する場合と同様に、レコード処理部112及びやTCPコネクション処理部111を通じて送信する(ステップ1002)。ここで、簡略ハンドシェイク処理を完了するには、ClientHelloの他にServerHello、ChangeCipherSpec、Finishedなどのメッセージ交換が必要であるが、これらのメッセージ交換は、クライアント200と役割サーバ130又は140のいずれかが行い、中継サーバ110はメッセージを中継するのみである。この簡略ハンドシェイク処理のステップ1002は、図7のステップ704に示すTCPコネクション処理部111が行うの中継処理に相当する。
図11は、本発明の役割サーバの処理の詳細を示すフローチャートである。ここでは、役割サーバ130の処理の説明をするが、役割サーバ140の処理も同様である。
役割サーバ130内のTCPコネクション処理部131は、中継サーバ110からの接続要求を受付け、受信データをレコード処理部132に渡す(ステップ1101)。本接続要求は、図9のステップ907及び図10のステップ1002において中継サーバ110がClientHelloメッセージを送信するときに発生する接続要求に相当する。中継サーバ110と役割サーバ130との送受信は、このTCPコネクション処理部131を介して行われる。
次に、レコード処理部132が受信データを解析、上位データを取出し、ハンドシェイクのメッセージであることを確認、ハンドシェイク処理部133に渡す(ステップ1102)。受信データはTLS Record Protocolの形式(非特許文献1参照)に従っている。レコード処理部132は本プロトコルの処理を行い、上位のアラート、ハンドシェイク、アプリケーションのデータを取出す。
次に、ハンドシェイク処理部133がハンドシェイク処理を行う。クライアント200から受信した初めてのセッションの場合は、図9に示すステップ907ないし909で示した簡略ハンドシェイク処理に対する役割サーバ130のClientHelloメッセージの受信、ServerHello等のメッセージの生成及び送信、ChangeCipherSpec、Finishedメッセージの送信などの処理を行う。セッションの再開の場合は、役割サーバ130が生成したClientHelloメッセージの受信、ServerHello等のメッセージの生成及び中継サーバ110を介したクライアント200への送信、クライアント200が生成し、中継サーバ110が中継したChangeCipherSpec、Finishedメッセージの受信等の処理を行う(ステップ1103)。
ここでは、クライアント200からの接続が初めてか、再開かで区別して説明したが、簡略ハンドシェイク処理としては同じであり、本ハンドシェイク処理部133は区別せず処理する。完全ハンドシェイクの処理は中継サーバ110が行っており、その結果得られたTLSセッション情報は、TLSセッション情報データベース170に含まれており、本データベースにあるセッション情報を利用して、簡略ハンドシェイク処理を行う。従って、2回目以降のクライアントからのアクセスでは、再度、TLSセッション情報を生成する必要がなく、この生成処理を省略することができ、役割サーバは、本セッション情報を再利用することが可能になり、コンピュータシステム全体の負荷を軽減することが可能になる。
次に、レコード処理部132が受信データを解析し、上位データを取出し、アプリケーションデータであることを確認してサーバデータ処理部134に渡す。レコード処理部132はTLSセッション情報データベース170にあるセッション情報を用いて、受信データの復号や改ざんを検知し、送信データの暗号化や改ざん検知データの付与を行う(1104)。
以上により、本実施の形態1では、中継サーバと役割サーバとでTLSセッション情報を共有することで負荷の軽減を実現し、稼動効率を飛躍的に向上させることができる。
(実施の形態2)
実施の形態1では一つのコンピュータ上に中継サーバや役割サーバを配置しており、中継サーバ110から役割サーバ130、140に付属するTLSセッション情報データベース170、180へのアクセスが、実施の形態1と同様に制限できれば、各々のサーバを別々のコンピュータ上に配置しても、同等の安全性が確保できる。以下、その実施形態について説明する。
図12は、実施の形態2のコンピュータシステムの構成を示す図である。
図12に示すように、コンピュータシステムは、複数のコンピュータ100、300、400から構成され、それぞれセキュアOSが稼動している。
図1に示す実施の形態1との違いについて説明する。実施の形態1では、中継サーバ110と役割サーバ130、140は、セキュアOSが稼動している一つのコンピュータ100上に稼動していたのに対して、実施の形態2では、各々のサーバがそれぞれ別のコンピュータ上に稼動しており、中継サーバ110はコンピュータ100上で、役割1サーバ130はコンピュータ300上で、役割2サーバ140はコンピュータ400上で稼動している点で異なる。また、不正アクセスの起点となる外部のネットワークからは中継サーバ110が稼動するコンピュータ100のみにアクセスでき、役割サーバ130、140が稼動するコンピュータ300、400にはアクセスできないように制限されている。これはファイアウォールのような公知技術で実現できる。
実施の形態1では、中継サーバ110がクライアント200とTLSハンドシェイク処理を行い、得られたTLSセッション情報を役割サーバ130、140のTLSセッション情報データベース170、180に書きこみをしていたのに対して、本実施の形態2では、コンピュータ300、400上のデータベースサーバ310、410を介して書きこみをする。
実施の形態1では、コンピュータ100上で稼動しているセキュアOSの機能を用いて、中継サーバ110はTLSセッション情報データベース170、180には書込みができても、読取ることはできないように制限していたのに対して、本実施の形態2では、コンピュータ300、400上で稼動するセキュアOSの機能を用いて、データベースサーバ310、410はTLSセッション情報データベース170、180に書込み(w;write)はできても、読取る(r;read)ことはできないように制限する。このように、データベースサーバ310、410を設けてTLSセッション情報データベース170、180へのアクセスを制限することで、実施の形態1と同様に中継サーバ110が不正アクセスを受け、さらにデータベースサーバ310、410が不正アクセスを受けても、TLSセッション情報を読取られることはなく、実施の形態1と同等のセキュリティを保つことができる。さらにセキュリティレベルを上げるために、中継サーバ110からデータベースサーバ310、410への通信を、中継サーバからデータベースサーバ310、410への一方向だけにアプリケーションデータを送るようにセキュアOSの機能を用いて制限するようにしてもよい。
また、実施の形態1と同様に、情報を共有することにより、処理の一部を省略し、サーバにかかる負荷を軽減しているため、高速なTLSプロトコルの処理も実現することができる。
実施の形態1のコンピュータシステムの構成を示す図である。 本発明の中継サーバの内部構造を示す図である。 本発明の役割サーバの内部構造を示す図である。 本発明のSIDと役割関連データベースの構造を示す図である。 本発明のユーザと役割関連データベースの構造を示す図である。 本発明のTLSセッション情報データベース1の構造を示す図である。 本発明の中継サーバによる処理内容を示すフローチャートである。 本発明のハンドシェイク処理部が行う処理の詳細を示すフローチャートである。 図8のステップ802に記載の完全ハンドシェイク処理の詳細を示すフローチャートである。 図8のステップ802に記載の簡略ハンドシェイク処理の詳細を示すフローチャートである。 本発明の役割サーバの処理の詳細を示すフローチャートである。 実施の形態2のコンピュータシステムの構成を示す図である。
符号の説明
100 コンピュータ
110 中継サーバ
111 TCPコネクション処理部
112 レコード処理部
113 ハンドシェイク処理部
120 ユーザと役割関連登録ツール
130 役割1サーバ
131 TCPコネクション処理部
132 レコード処理部
133 ハンドシェイク処理部
140 役割2サーバ
150 SIDと役割関連データベース
151 SIDフィールド
152 役割フィールド
160 ユーザと役割関連データベース
161 ユーザフィールド
162 役割フィールド
170 TLSセッション情報データベース1
180 TLSセッション情報データベース2
300、400 コンピュータ
310 データベースサーバ1
410 データベースサーバ2

Claims (4)

  1. セキュアOSが稼働し、
    クライアントからの要求を受付ける中継サーバと
    ドメイン及び役割が割当てられアプリケーション処理を行う役割サーバと
    前記クライアントのユーザとその役割の関連を保持する第1のデータベースと
    TLSプロトコルのセッションIDと前記ドメイン及び役割の関連を保持する第2のデータベースと
    前記役割サーバごとに用意されたTLSプロトコルのセッション情報を保持する第3のデータベースとを備え、
    前記中継サーバが、前記第1のデータベースに対しては読込む権限のみを有し、前記第3のデータベースに対しては書込む権限のみを有するコンピュータシステムにより実行されるTLSセッション情報の引継ぎ方法であって、
    前記中継サーバが、
    TLSプロトコルの処理に関しては、ハンドシェイク処理のみを行い、ハンドシェイク処理時に認証したユーザと、前記第1のデータベースから得た役割及びTLSプロトコルのセッションIDとを前記第2のデータベースに書込み、TLSセッション情報をハンドシェイク処理後に前記第3のデータベースに書込んだ後に破棄し、暗号化されたアプリケーションデータを前記役割サーバに中継するステップと、
    さらに、TLSプロトコルによるセッションを再開するときは、セッション開始時にクライアントから受信したメッセージに含まれるセッションIDをキーにして、前記第2のデータベースから対応する役割サーバを決定し、該役割サーバに前記メッセージを含めて中継するステップと、
    前記役割サーバが、
    前記第3のデータベースに書込まれた前記TLSセッション情報を利用してTLSプロトコルによるハンドシェイク処理を行うステップとを有する
    ことを特徴とするTLSセッション情報の引継ぎ方法。
  2. 前記中継サーバと、前記役割サーバとを、個々にセキュアOSが稼動する異なるコンピュータに配置し、
    前記役割サーバが配置されたコンピュータには、第3のデータベースへ書込む権限のみを有するデータベース追加サーバを配置し、
    前記中継サーバが、TLSセッション情報を、データベース追加サーバを介してハンドシェイク処理後に第3のデータベースに書込んだ後に破棄するステップを有する
    ことを特徴とする請求項1に記載のTLSセッション情報の引継ぎ方法。
  3. セキュアOSが稼働し、
    クライアントからの要求を受付ける中継サーバと
    ドメイン及び役割が割当てられアプリケーション処理を行う役割サーバと
    前記クライアントのユーザとその役割の関連を保持する第1のデータベースと
    TLSプロトコルのセッションIDと前記ドメイン及び役割の関連を保持する第2のデータベースと
    前記役割サーバごとに用意されたTLSプロトコルのセッション情報を保持する第3のデータベースとを備え、
    前記中継サーバが、前記第1のデータベースに対しては読込む権限のみを有し、前記第3のデータベースに対しては書込む権限のみを有するコンピュータシステムであって、
    前記中継サーバは、
    TLSプロトコルの処理に関しては、ハンドシェイク処理のみを行い、ハンドシェイク処理時に認証したユーザと、前記第1のデータベースから取得した役割及びTLSプロトコルのセッションIDとを前記第2のデータベースに書込み、TLSセッション情報をハンドシェイク処理後に前記第3のデータベースに書込んだ後に破棄し、暗号化されたアプリケーションデータを前記役割サーバに中継し、
    さらに、TLSプロトコルによるセッションを再開するときは、セッション開始時にクライアントから受信したメッセージに含まれるセッションIDをキーにして、前記第2のデータベースから対応する役割サーバを決定し、該役割サーバに前記メッセージを含めて中継し、
    前記役割サーバは、
    前記第3のデータベースに書込まれた前記TLSセッション情報を利用してTLSプロトコルによるハンドシェイク処理を行う
    ことを特徴とするコンピュータシステム。
  4. 前記中継サーバと、前記役割サーバとを、個々にセキュアOSが稼動する異なるコンピュータに配置し、
    前記役割サーバが配置されたコンピュータには、第3のデータベースへ書込む権限のみを有するデータベース追加サーバを配置し、
    前記中継サーバは、TLSセッション情報を、データベース追加サーバを介してハンドシェイク処理後に第3のデータベースに書込んだ後に破棄する
    ことを特徴とする請求項3に記載のコンピュータシステム。
JP2005213182A 2005-07-22 2005-07-22 Tlsセッション情報の引継ぎ方法及びコンピュータシステム Expired - Fee Related JP4358795B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2005213182A JP4358795B2 (ja) 2005-07-22 2005-07-22 Tlsセッション情報の引継ぎ方法及びコンピュータシステム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2005213182A JP4358795B2 (ja) 2005-07-22 2005-07-22 Tlsセッション情報の引継ぎ方法及びコンピュータシステム

Publications (2)

Publication Number Publication Date
JP2007036389A JP2007036389A (ja) 2007-02-08
JP4358795B2 true JP4358795B2 (ja) 2009-11-04

Family

ID=37795137

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005213182A Expired - Fee Related JP4358795B2 (ja) 2005-07-22 2005-07-22 Tlsセッション情報の引継ぎ方法及びコンピュータシステム

Country Status (1)

Country Link
JP (1) JP4358795B2 (ja)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2207302B1 (en) 2007-11-07 2016-02-17 Nippon Telegraph and Telephone Corporation Common key setting method, relay apparatus, and program
KR101495722B1 (ko) 2008-01-31 2015-02-26 삼성전자주식회사 홈 네트워크에서의 통신 보안성을 보장하는 방법 및 이를위한 장치
FR2951343A1 (fr) * 2009-10-14 2011-04-15 Alcatel Lucent Gestion de dispositif de communication a travers un reseau de telecommunications
JP2012213036A (ja) * 2011-03-31 2012-11-01 Panasonic Corp 通信装置及び通信システム
JP5769133B2 (ja) * 2011-09-27 2015-08-26 日本電気株式会社 通信中継装置、データ処理システムおよび通信中継方法
JP2016066193A (ja) * 2014-09-24 2016-04-28 株式会社リコー 情報処理システム、及び情報処理方法

Also Published As

Publication number Publication date
JP2007036389A (ja) 2007-02-08

Similar Documents

Publication Publication Date Title
JP4707992B2 (ja) 暗号化通信システム
US8275989B2 (en) Method of negotiating security parameters and authenticating users interconnected to a network
US7039713B1 (en) System and method of user authentication for network communication through a policy agent
EP3496329A1 (en) Method and system of preserving privacy for usage of lightweight blockchain clients
US7627896B2 (en) Security system providing methodology for cooperative enforcement of security policies during SSL sessions
US7856655B2 (en) System and method for improved network security
EP1251670B1 (en) Negotiating secure connections through a proxy server
US20050149732A1 (en) Use of static Diffie-Hellman key with IPSec for authentication
JP5062870B2 (ja) 任意通信サービスのセキュリティ確保
JP4879347B2 (ja) 中継処理装置、中継処理方法及びプログラム
JP2008537256A (ja) ピアツーピア認証及び権限付与
KR20010098513A (ko) 시큐리티 통신방법, 통신시스템 및 그 장치
JPH11338799A (ja) ネットワーク接続制御方法及びシステム
Oktian et al. BorderChain: Blockchain-based access control framework for the Internet of Things endpoint
JP4358795B2 (ja) Tlsセッション情報の引継ぎ方法及びコンピュータシステム
US20020129239A1 (en) System for secure communication between domains
CN110198297A (zh) 流量数据监控方法、装置、电子设备及计算机可读介质
JP2008252456A (ja) 通信装置、及び通信方法
JP2012137975A (ja) 中継処理装置、及びその制御方法、プログラム
JP3833652B2 (ja) ネットワークシステム、サーバ装置、および認証方法
JP4933286B2 (ja) 暗号化パケット通信システム
Hsu et al. The design and implementation of a lightweight CoAP-based IoT framework with smart contract security guarantee
JP2005309846A (ja) データベース保護システム
CN112350922A (zh) 一种邮件处理的方法、装置、服务器及存储介质
CN114244569B (zh) Ssl vpn远程访问方法、系统和计算机设备

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20071218

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20090722

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

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20090804

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: 20090806

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

Free format text: PAYMENT UNTIL: 20120814

Year of fee payment: 3

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: 20150814

Year of fee payment: 6

LAPS Cancellation because of no payment of annual fees