説明

コンピュータシステム間でメッセージを通信するための安全なコンテキストの確立

クライアントとサーバとの間でメッセージを通信するための安全なコンテキストを確立するための、ジェネリックセキュリティサービスアプリケーションプログラミングインターフェイス(GSS‐API)に対応した方法を提供する。クライアントは、クライアントによって生成された第1の対称秘密鍵と、認証トークンとを含む第1のメッセージをサーバへ送り、第1のメッセージは、サーバの公開鍵証明書からの公開鍵で保護される(516)。認証トークンに基づいてサーバがクライアントを認証した後(518)、クライアントは、第1の対称秘密鍵で保護されておりかつ第2の対称秘密鍵を含む第2のメッセージをサーバから受信する(522)。クライアントおよびサーバは、第2の対称秘密鍵を使用して、クライアントとサーバとの間で送られる後続のメッセージを保護する。認証トークンは、クライアントに関連した公開鍵証明書、ユーザ名‐パスワードの対、またはセキュアチケットであってもよい。


【発明の詳細な説明】
【技術分野】
【0001】
本発明は、改良されたデータ処理システムに関し、特定的には、マルチコンピュータデータ転送のための方法および装置に関する。さらにより特定的には、本発明は、暗号化技術を使用したマルチコンピュータ通信のための方法および装置を提供する。
【背景技術】
【0002】
電子商取引のウェブサイトおよび他の形式のアプリケーションは、ユーザおよびクライアントのためにコンピュータネットワーク上で取引を行う。要求された動作をクライアントのために行うに先立ち、クライアントは、クライアントの身元がセキュリティ目的のための適切な確実性レベルにあることを証明するために、認証手続きを通過しなければならない。
【0003】
数多くのデータ処理システムは、ジェネリックセキュリティサービスアプリケーションプログラミングインターフェイス(GSS‐API)を通じたクライアント認証動作に対応している。GSS‐APIは、リン(Linn)著、「Generic Security Services Application Program Interface」、インターネット技術標準化委員会(IETF)、コメント要求(RFC) 1508、1993年9月に記載されており、これは、リン(Linn)著、「Generic Secrutiy Services Application Program Interface,Version 2」、IETF RFC 2078、1997年1月によって廃止されている。これらの文書に記載されているように、GSS‐APIは、規定のサービスおよび基本要素を通じて基礎となる機構および技術の範囲に対応しており、これによって、互いに異なる動作およびプログラミング言語環境に対するアプリケーションのソースレベルの携帯性を認めるものである。
【0004】
代わりとなる既存のGSS‐API機構については、アダムス(Adams)著、「The Simple Public‐Key GSS‐API Mechanism(SPKM)」、IETF RFC 2025、1996年10月、およびアイズラー(Eisler)著、「LIPKEY‐‐A Low Infranstructure Public Key Mechanism Using SPKM」、IETF RFC 2847、2000年6月に紹介されている。これらの文書に記載されているように、SPKMは、公開鍵インフラストラクチャを使用して、オンライン分散型アプリケーション環境における、認証、鍵の確立、データの完全性、およびデータの機密性を提供する。GSS‐APIに準拠することによって、SPKMは、セキュリティサービスをアクセスするためのGSS‐API呼び出しを使用するどのアプリケーションによっても使用することができる。代わりに、LIPKEYは、クライアントとサーバとの間の安全なチャンネルを供給するための方法も提供する。LIPKEYは、トランスポート層セキュリティ(TLS)の通常の低インフラストラクチャ使用と多少類似しており、認証、データの完全性、およびデータの秘密のようなセキュリティ機能を実施するためのGSS‐APIに対する代替方法である。TLSは、ディアークス(Dierks)他著、「The TLS Protocol,Version 1.0」、IETF RFC 2246、1999年1月に記載されている。LIPKEYは、SPKMの上に階層化された別個のGSS‐API機構として、SPKMを活用する。
【発明の開示】
【発明が解決しようとする課題】
【0005】
使用中のサーバシステムの計算上の要求から、柔軟かつ軽量なセキュリティ動作に対する必要性がある。したがって、数多くの形式のクライアント認証を扱うGSS‐API対応の機構があれば有利であろう。
【非特許文献1】リン(Linn)著、「Generic Security Services Application Program Interface」、インターネット技術標準化委員会(IETF)、コメント要求(RFC) 1508、1993年9月
【非特許文献2】リン(Linn)著、「Generic Secrutiy Services Application Program Interface,Version 2」、IETF RFC 2078、1997年1月
【非特許文献3】アダムス(Adams)著、「The Simple Public‐Key GSS‐API Mechanism(SPKM)」、IETF RFC 2025、1996年10月
【非特許文献4】アイズラー(Eisler)著、「LIPKEY‐‐A Low Infranstructure Public Key Mechanism Using SPKM」、IETF RFC 2847、2000年6月
【非特許文献5】ディアークス(Dierks)他著、「The TLS Protocol,Version 1.0」、IETF RFC 2246、1999年1月
【課題を解決するための手段】
【0006】
クライアントとサーバとの間でメッセージを通信するための安全なコンテキストを確立するための、ジェネリックセキュリティサービスアプリケーションプログラミングインターフェイス(GSS‐API)に対応した方法、データ処理システム、装置、およびコンピュータプログラム製品を提供する。クライアントは、クライアントによって生成された第1の対称秘密鍵と、認証トークンとを含む第1のメッセージをサーバへ送り、第1のメッセージは、サーバに関連した公開鍵証明書からの公開鍵で保護される。認証トークンに基づいてサーバがクライアントを認証できるとすると、クライアントは、第1の対称秘密鍵で保護されておりかつ第2の対称秘密鍵を含む第2のメッセージをサーバから受信する。クライアントおよびサーバは、第2の対称秘密鍵を使用して、クライアントとサーバとの間で送られる後続のメッセージを保護する。認証トークンは、クライアントに関連した公開鍵証明書、ユーザ名‐パスワードの対、またはセキュアチケットであってもよい。
【発明を実施するための最良の形態】
【0007】
以下の図面を一例としてのみ参照して、本発明の好ましい一実施形態を詳細に説明する。
【0008】
一般的に、本発明の好ましい実施形態を備えうる、またはそれに関連しうる装置は、多種多様なデータ処理技術を含む。したがって、本発明の好ましい実施形態をより詳細に説明するに先立ち、背景として、分散型データ処理システム内のハードウェアおよびソフトウェア構成要素の典型的な編成を説明する。
【0009】
図面を参照すると、図1(A)は、データ処理システムの典型的なネットワークを示し、それぞれは、本発明の好ましい実施形態の一部を実施しうる。分散型データ処理システム100は、ネットワーク101を含み、ネットワーク101は、分散型データ処理システム100内において互いに接続される様々な装置とコンピュータとの間の通信リンクを提供するために使用されてもよい媒体である。ネットワーク101は、有線または光ファイバケーブルなどの常時接続、もしくは、電話または無線通信を通じて行われる一時接続を含んでもよい。図示の例において、サーバ102およびサーバ103は、記憶部104と共にネットワーク101に接続される。加えて、クライアント105〜107もネットワーク101に接続される。クライアント105〜107およびサーバ102〜103は、メインフレーム、パーソナルコンピュータ、携帯情報端末(PDA)などといった様々なコンピューティング装置によって表わされてもよい。分散型データ処理システム100は、図示しない追加のサーバ、クライアント、ルータ、他の装置、およびピアツーピアアーキテクチャを含んでもよい。
【0010】
図示の例において、分散型データ処理システム100は、軽量ディレクトリアクセスプロトコル(LDAP)、トランスポート制御プロトコル/インターネットプロトコル(TCP/IP)、ハイパーテキストトランスポートプロトコル(HTTP)、無線アプリケーションプロトコル(WAP)などといった様々なプロトコルを使用して互いに通信するネットワークおよびゲートウェイの世界規模の集合体を表わすネットワーク101を有するインターネットを含んでもよい。もちろん、分散型データ処理システム100は、例えば、イントラネット、構内情報通信網(LAN)、または広域通信網(WAN)のような数多くの互いに異なる種類のネットワークも含んでもよい。例えば、サーバ102は、クライアント109、および無線通信リンクを実装するネットワーク110に直接対応する。ネットワークな使用可能な電話111は、無線リンク112を通じてネットワーク110に接続し、PDA113は、無線リンク114を通じてネットワーク110に接続する。電話111およびPDA113は、ブルートゥース(R)無線技術のような適切な技術を使用して、無線リンク115を渡って互いの間でデータを直接転送して、いわゆるパーソナルエリアネットワーク(PAN)または個別の特定ネットワークを作成することもできる。同様に、PDA113は、無線通信リンク116を介してPDA107へデータを転送することができる。
【0011】
本発明の好ましい実施形態は、様々なハードウェアプラットフォーム上で実施することができよう。図1(A)は、異機種コンピューティング環境の一例として意図されたものであり、本発明の好ましい実施形態に対するアーキテクチャの制限として意図されたものではない。
【0012】
今度は図1(B)を参照すると、図1(A)が示すような、本発明の好ましい実施形態が実施されうるデータ処理システムの典型的なコンピュータアーキテクチャを示す図である。データ処理システム120は、内部システムバス123に接続された1つ以上の中央処理装置(CPU)122を含み、内部システムバス123は、ランダムアクセスメモリ(RAM)124、読み出し専用メモリ126、および入出力アダプタ128を相互接続し、入出力アダプタ128は、プリンタ130、ディスク装置132、または音声出力システムなどの図示しない他の装置に対応している。システムバス123は、通信リンク136へのアクセスを提供する通信アダプタ134をも接続する。ユーザインターフェイスアダプタ148は、キーボード140およびマウス142のような様々なユーザ装置、または、タッチスクリーン、スタイラス、マイクなどのような図示しない他の装置を接続する。ディスプレイアダプタ144は、システムバス123をディスプレイ装置146に接続する。
【0013】
図1(B)におけるハードウェアはシステムの実施によって異なりうることを、当業者は理解するだろう。例えば、システムは、インテル(R)のペンティアム(R)搭載のプロセッサおよびデジタル信号プロセッサ(DSP)のように、1つ以上のプロセッサを有してもよく、1つ以上の種類の揮発性および不揮発性メモリを有してもよい。図1(B)に示すハードウェアに加えてまたはそれに代えて、他の周辺機器を使用してもよい。図示の例は、本発明の好ましい実施形態に対するアーキテクチャ上の制限を示唆するものではない。
【0014】
様々なハードウェア上で実施可能であることに加えて、本発明の好ましい実施形態は、様々なソフトウェアにおいて実施されてもよい。典型的なオペレーティングシステムを使用して、各データ処理システム内のプログラムの実行を制御してもよい。例えば、ある装置はUnix(R)オペレーティングシステムを実行してもよく、他の装置は単純なJava(R)実行時環境を含んでもよい。代表的なコンピュータプラットフォームは、ブラウザを含んでもよく、ブラウザとは、グラフィックファイル、ワード処理ファイル、拡張可能なマークアップ言語(XML)、ハイパーテキストマークアップ言語(HTML)、ハンドヘルド装置マークアップ言語(HDML)、無線マークアップ言語(WML)、ならびに様々な他のフォーマットおよび種類のファイルなどの、様々なフォーマットのハイパーテキスト文書をアクセスするための周知のソフトウェアアプリケーションである。
【0015】
本明細書における図面の説明は、クライアント装置またはクライアント装置のユーザのいずれかによる何らかの操作を伴う。クライアントへの応答、またはクライアントからの要求あるいはその両方は、ユーザによって始まる場合もあるし、しばしばクライアントのユーザに代わってクライアントによって自動的に始まる場合もあることを、当業者は理解するだろう。よって、図面の説明においてクライアントまたはクライアントのユーザについて言及した場合には、「クライアント」および「ユーザ」という用語は、記載の処理の意味に対して実質的に影響を与えずに交換可能に使用できることが理解されるべきである。
【0016】
本発明の好ましい実施形態は、図1(A)および図1(B)に関して上述したように、様々なハードウェアおよびソフトウェアプラットフォーム上で実施されてもよい。しかしながら、より特定的には、ジェネリックセキュリティサービスアプリケーションプログラムインターフェイス(GSS‐API)に対応した、クライアントとサーバとの間の通信のための安全なコンテキストを確立するための公開鍵に基づく改良された機構に向けられており、安全なコンテキストは、複数の安全なメッセージが通信エンティティ間で交換されるであろう通信セッションの期間に2つ以上の通信エンティティ間で共有される情報を備える。しかしながら、本発明の好ましい実施形態をより詳細に説明する前に、本発明の好ましい実施形態の動作効率および他の利点を評価するために、デジタル証明書についての背景情報を若干提供する。
【0017】
デジタル証明書は、通信またはトランザクションに関わる各当事者が公開鍵および秘密鍵と称される鍵の対を有する、公開鍵暗号法に対応している。各当事者の公開鍵は公開さているが、秘密鍵は秘密を確保される。公開鍵は、特定のエンティティに関連した数字であって、当該エンティティと信頼性のある対話をする必要のあるすべての人にとって既知であるようになっている。秘密鍵は、特定のエンティティにのみ既知であることになっている、すなわち秘密を確保される、数字である。典型的な非対称暗号システムにおいては、秘密鍵は、ちょうど1つの公開鍵に対応する。
【0018】
公開鍵暗号システム内においては、すべての通信は公開鍵のみを伴い、秘密鍵は送信も共有も全くされないので、機密メッセージは公開情報のみを使用して生成でき、所期の受領者が単独に所有する秘密鍵のみを使用して復号化できる。さらに、認証、すなわちデジタル署名とともに、プライバシー、すなわち暗号化のために、公開鍵暗号法を使用することができる。
【0019】
暗号化は、秘密復号鍵のない人なら誰でも読み取ることができない形式にデータを変換することであり、暗号化は、たとえ暗号化されたデータを見ることができる人であっても、予定外の人であれば、そのような人から情報内容を隠しておくことによって、プライバシーを確保する。認証は、デジタルメッセージの受信者が送信者の身元、またはメッセージの完全性あるいはその両方について確信できるようになる処理である。
【0020】
例えば、送信者がメッセージを暗号化する場合に、受信者の公開鍵を使用して、元のメッセージ内のデータを暗号化されたメッセージの内容に変換する。送信者は、予定の受領者の公開鍵を使用してデータを暗号化し、受信者は、その秘密鍵を使用して、暗号化されたメッセージを復号化する。
【0021】
データを認証する場合に、署名者の秘密鍵を使用してデータからデジタル署名を計算することによって、データを署名できる。いったんデータがデジタル署名されると、データは、署名者の身元と、データが署名者から生じたものであることを証明する署名と共に記憶できる。署名者は、その秘密鍵を使用してデータを署名し、受信者は、署名者の公開鍵を使用して書名を確認する。
【0022】
証明書とは、個人、コンピュータシステム、当該システム上で動作する特定のサーバなどのエンティティの身元および鍵の所有を保証するデジタル文書である。証明書は、認証局によって発行される。認証局(CA)は、エンティティであって、通常、他の人またはエンティティに対して証明書を署名または発行することを委託された、トランザクションに対する第三者機関である。CAは、通常、証明書に署名したエンティティに対して信頼してもよいという、公開鍵とその所有者との間の結びつきを保証するための何らかの法的な役割を担っている。数多くの民間の認証局があり、これらの局は、証明書を発行する際に、エンティティの身元と鍵の所有とを検証する役割を担っている。
【0023】
認証局がエンティティに対して証明書を発行する場合に、当該エンティティは、公開鍵と、エンティティについての何らかの情報とを提供しなければならない。特別に装備されたウェブブラウザなどのソフトウェアツールが、この情報にデジタル署名して、認証局へ送ってもよい。認証局は、第三者機関の証明認証サービスを提供する民間会社の場合もあろう。その後、認証局は、証明書を生成して、それを返す。証明書は、通し番号および証明書が有効である日付などの他の情報を含んでもよい。認証局によって提供された値の一部は、認証サービス業務(CSP)において公に公開された検証要件に部分的に基づいて、中立的で信頼できる紹介サービスとしての役割を果たすためのものである。
【0024】
CAは、要求エンティティの公開鍵を他の識別情報と共に埋め込んで、CAの秘密鍵でデジタル証明書に署名することによって、新たなデジタル証明書を作成する。その後、トランザクションまたは通信中にデジタル証明書を受信する人であれば誰でも、CAの公開鍵を使用して、証明書内の署名済み公開鍵を検証することができる。これは、CAの署名はデジタル証明書に対する改ざん防止印としての役割を果たすという意味であり、これによって、証明書内のデータの完全性を保証する。
【0025】
証明書処理の他の局面も標準化されている。証明書要求メッセージフォーマット(RFC 2511)は、信用当事者がCAからの証明書を要求している場合にはいつも使用することが推奨されているフォーマットを規定している。証明書を転送するための証明書管理プロトコルも発表されている。本発明の好ましい一実施形態は、デジタル証明書を使用する分散型データ処理システムにある。図2〜3の説明は、デジタル証明書に関わる典型的な動作についての背景情報を提供する。
【0026】
図2を今度は参照すると、個人がデジタル証明書を取得する典型的なやり方を示すブロック図である。何らかの種類のクライアントコンピュータ上で動作するユーザ202は、例えばユーザ公開鍵204およびユーザ秘密鍵206などの公開/秘密鍵の対を予め取得または生成している。ユーザ202は、ユーザ公開鍵204を含む証明書に対する要求208を生成して、当該要求を、CA公開鍵212とCA秘密鍵214とを有する認証局210へ送る。認証局210は、ユーザ202に身元を何らかのやり方で検証して、ユーザ公開鍵218を含むX.509デジタル証明書216を生成する。証明書全体は、CA秘密鍵214で署名される。証明書は、ユーザの公開鍵、ユーザに関連した名前、および他の属性を含む。ユーザ202は、新たに生成されたデジタル証明書216を受信し、その後、ユーザ202は、必要に応じてデジタル証明書216を提示して、信頼できるトランザクションまたは信頼できる通信に関与してもよい。デジタル証明書216をユーザ202から受信するエンティティは、検証エンティティに対して発行されて使用可能なCA公開鍵212を使用することによって、CAの署名を検証してもよい。
【0027】
図3を今度は参照すると、データ処理システムに対して認証すべきデジタル証明書をエンティティが使用するような典型的なやり方を示すブロック図である。ユーザ302は、X.509デジタル証明書304を所有しており、これは、ホストシステム308上のインターネットまたはイントラネットアプリケーション306へ送信される。アプリケーション306は、デジタル証明書を所有および使用するためのX.509機能を備える。ユーザ302は、アプリケーション306へ送るデータをその秘密鍵で署名または暗号化する。
【0028】
証明書304を受信するエンティティは、アプリケーション、システム、サブシステムなどであってもよい。証明書304は、アプリケーション306に対してユーザ302を識別する件名または案件識別子を含み、アプリケーション306は、ユーザ302のために何らかの種類のサービスを行ってもよい。証明書304を使用するエンティティは、ユーザ302からの署名済みまたは暗号化済みデータに関する証明書を使用する前に、証明書の信憑性を検証する。
【0029】
ホストシステム308は、システム308内のサービスおよびリソースをアクセスするためにユーザに権限を付与する、すなわち、ユーザの身元をユーザの特権と照合するために使用されるシステムレジストリ310を含んでもよい。例えば、システム管理者は、あるセキュリティグループにユーザの身元が所属するように構成しておいてもよく、ユーザは、全体的に見てセキュリティグループに利用可能であるように構成されたリソースのみをアクセスことができるように制限される。権限を付与するための様々な既知の方法をシステム内で使用してもよい。
【0030】
デジタル証明書を適切に確認または検証するために、アプリケーションは、証明書が取り消されたかどうかを確認しなければならない。認証局が証明書を発行する場合に、認証局は、証明書が識別されることとなる固有の通し番号を生成し、この通し番号は、X.509証明書内の「通し番号」フィールド内に記憶される。典型的には、取り消されたX.509証明書は、CRL内で証明書の通し番号によって識別される。取り消された証明書の通し番号は、CRL内の通し番号リスト内に現れる。
【0031】
証明書304がまだ有効かどうかを決定するために、アプリケーション306は、証明書失効リスト(CRL)をCRLリポジトリ312から取得して、CRLを確認する。アプリケーション306は、証明書304内の通し番号を、受信したCRL内の通し番号リストと比較して、一致する通し番号がなければ、アプリケーション306は証明書304を確認する。CRLが一致する通し番号を有していれば、証明書304は拒絶されるべきであり、アプリケーション306は、適切な措置を講じて、制御されたあらゆるリソースへのアクセスに対するユーザの要求を拒絶することができる。
【0032】
図3は、ユーザがサーバをアクセスするためにデジタル証明書を使用するための一般的な方法を示しているのに対して、図4は、安全な通信コンテキストを確立するための、クライアントとサーバとの間の情報の転送の詳細を示しており、これは、図3に関して説明しなかったことである。
【0033】
図4を今度は参照すると、クライアントとサーバとの間で安全な通信コンテンキストを確立するための典型的なGSS‐API対応の機構を示すデータフロー図である。処理は、サーバの公開鍵証明書の要求をクライアント402がサーバ404へ送ることで開始する(ステップ406)。サーバは当該要求を処理して、サーバの公開鍵証明書のコピーを含むまたは伴う応答を作成し(ステップ408)、これは要求クライアントへ返される(ステップ410)。
【0034】
クライアントは、サーバの公開鍵証明書を確認して、セッションキーを生成する(ステップ412)。セッションキーは、好ましくは対称秘密鍵である。その後、クライアントは、セッションキーをサーバへ安全に送信する(ステップ414)。例えば、クライアントは、サーバの公開鍵証明書から予め抽出されたサーバの公開鍵でセッションキーを暗号化してもよい。その後、暗号化されたセッションキーは、クライアントの秘密鍵でデジタル署名されるメッセージに配置される。サーバは、メッセージ上のデジタル署名をクライアントの公開鍵で検証して、メッセージがクライアントによって作成および署名されていることを保証することが可能で、セッションキーは、サーバのみによって復号化されてもよい。デジタル封筒およびデジタル署名についての適用可能なフォーマットについての説明に関しては、「PKCS #7: Cryptographic Message Syntax Standard」、Version 1.5、RSAラボラトリーズ テクニカルノート、1993年11月1日を参照のこと。
【0035】
続いて、サーバは、クライアントのデジタル署名を検証してセッションキーを復号化した後にセッションキーを受け付けて、その後、安全な応答を生成し(ステップ416)、これはクライアントへ返される(ステップ418)。その後、クライアントは、クライアント認証トークンを生成および暗号化して(ステップ420)、クライアント認証トークンをサーバへ安全に送信する(ステップ422)。受信したメッセージからクライアント認証トークンを抽出した後に、サーバは、クライアントを認証して、応答を生成し(ステップ424)、これはクライアントへ返される(ステップ426)。その後、クライアントは、応答を分析して、クライアントがサーバによって確かに認証されているか、またはサーバはクライアントの認証要求を拒絶しているかを判断し(ステップ428)、処理を終える。
【0036】
上記のように、図4は、既知のGSS‐API対応の機構に係る安全な通信コンテキストを確立するための典型的な一方法を示している。対照的に、本明細書における取り組みは、残りの図面に関して本明細書において以下に説明するように、安全な通信コンテキストを確立するための改良された公開鍵に基づくGSS‐API対応の機構に向けられている。
【0037】
図5を今度は参照すると、本発明の一実施形態に係るクライアントとサーバとの間で安全な通信コンテキストを確立するための典型的なGSS‐API対応の機構を示すデータフロー図である。処理は、例えば、クライアントがサーバアプリケーションに結びつこうとする場合など、サーバの公開鍵証明書を取得するための要求をクライアント502がサーバ504へ送ることで開始する(ステップ506)。当該要求を受信すると、サーバは、当該要求を処理して、サーバの公開鍵証明書のコピーを含むまたは伴う応答を作成し(ステップ508)、これは要求クライアントへ返される(ステップ510)。
【0038】
サーバのデジタル証明書を受信後、クライアントは、サーバの公開鍵証明書を確認して、信頼できる認証局によって署名されていることを保証する(ステップ512)。注意すべきなのは、クライアントは、このサーバの公開鍵証明書のコピーを予め確認および記憶してることを認識してもよく、これによって、クライアントは、ローカルキャッシュから検索してサーバの証明書を取得することができる。代わりに、例えば、ディレクトリまたは同様のデータ記憶部からサーバの公開鍵証明書を検索することを通じてといった何らかの他のやり方で、サーバの公開鍵証明書をクライアントへ提供してもよい。
【0039】
サーバの証明書が確かに検証されているとすると、クライアントは、サーバの公開鍵を証明書から抽出して、それをキャッシュする。その後、クライアントは、ランダム対称秘密鍵を認証トークンと共に生成する(ステップ514)。この特定の秘密鍵を、本明細書においてはトランスポートキーと称する。認証トークンは、ユーザ名‐パスワードの対、主要認証者からのタイムスタンプが記録されたセキュアチケット、クライアントに関連した公開鍵証明書、または他の認証情報を備えてもよい。クライアントは、適時、セキュアチケットなどのデータ項目を単にコピーすることによって認証トークンを生成してもよい。
【0040】
その後、クライアントは、トランスポートキーと認証トークンとをサーバへ送信する(ステップ516)。クライアントからサーバへのトランスポートキーおよび認証トークンの送信は、サーバの公開鍵を使用する暗号化を通じた何らかのやり方で保護される。例えば、トランスポートキーおよび認証トークンは、サーバの公開鍵を使用して暗号化されて、サーバへ送られるメッセージ上でデジタル封筒を形成してもよい。代わりに、トランスポートキーおよび認証トークンは、個別に暗号化されて、サーバへのメッセージに含まれてもよい。
【0041】
安全なメッセージをクライアントから受信すると、サーバは、デジタル封筒をサーバの秘密鍵で復号化する。その後、サーバは、サーバへ送られている認証トークンの種類にとって適切な処理を使用して、すなわち、クライアントによってサーバへ送られている認証トークンの種類に基づいて、クライアントまたはクライアントのユーザを認証する(ステップ518)。例えば、サーバは、ユーザ名‐パスワードの対に対してLDAPルックアップを行ってもよく、または、例えばカーベロスチケットなどのセキュアチケットを確認してもよい。認証トークンがクライアント証明書である場合には、本物のクライアントのみがクライアント証明書内の公開鍵に関連した秘密鍵で復号化できるクライアント公開鍵(デジタル封筒)で暗号化されたランダムセッションキーでサーバが応答すると、認証は達成される。デジタル封筒は、攻撃中の人物を阻止するためにクライアントがサーバへ送るトランスポートキーで暗号化されたまま、送られる。クライアントが認証されたとすると、サーバは、クライアントとサーバとの間で作成されている通信コンテキスト内のメッセージを保護するために使用されるであろうランダム対称秘密鍵を生成する(ステップ520)。この特定の秘密鍵を、本明細書においてはセッションキーと称する。
【0042】
その後、サーバは、セッションキーをクライアントへ安全に送信する(ステップ522)。クライアントからサーバへのセッションキーの送信は、トランスポートキーを使用する暗号化を通じた何らかのやり方で保護される。例えば、サーバは、セッションキーを、サーバがトランスポートキーで暗号化するセッショントークンに配置してもよい。その後、サーバは、暗号化されたセッショントークンを、サーバがクライアントの公開鍵で捺印するメッセージに配置してもよく、その後、結果生じた封筒をトランスポートキーで暗号化する。代わりに、サーバは、クライアントに送るべきメッセージに暗号化されたセッションキーを配置する前に、トランスポートキーを使用してセッションキーを個別に暗号化してもよい。安全なメッセージを生成する他の例として、サーバは、トランスポートキーを使用して、セッションキーを含むメッセージ上にデジタル封筒を生成してもよい。
【0043】
メッセージを受信後、クライアントは、トランスポートキーを使用してメッセージの適切な部分を復号化してセッションキーを抽出し(ステップ524)、これによって処理を終わらせる。使用された認証機構によっては、サーバは、互いに異なる形式のメッセージを生成している場合もある。よって、クライアントは、セッショントークンから直接セッションキーを取得することがあり、または、サーバがクライアントの公開鍵も使用してセッションキーを暗号化した場合またはセッションキーを含むメッセージの一部を暗号化した場合には、クライアントは、セッションキーをクライアントの秘密鍵で復号化する必要がある場合もある。加えて、クライアントとサーバとの間のメッセージは、再生攻撃に対する保護のために、通し番号を含んでもよい。
【0044】
処理が終わった後、クライアントおよびサーバは共に、クライアントとサーバとの間のメッセージを保護するために後に使用できるセッションキーのコピーを所有し、これによって、クライアントとサーバとの間の通信コンテキストに対して、データの機密性およびデータの完全性を安全に保証する。例えば、クライアントは、セッションキーを使用して、サーバによって制御されるリソースをアクセスする要求をサーバに安全に送ってもよい。クライアントとサーバとの間の所定の通信セッションに対してセッションキーを使用してもよいこと、クライアントとサーバとの間の所定の通信セッションは、クライアントとサーバとの間、または、本発明の好ましい一実施形態であるGSS‐API対応の機構によって提供される安全なコンテキスト内または何らかの他の機構によって提供される安全なコンテキスト内の他のサーバ間、あるいはその両方である、他の安全な通信セッションと同時並行であってもよいこと、および、所定の通信セッションはこれらの同時並行セッションの継続が許可されている間に終了されてもよいことが、当業者によって理解されるべきである。
【0045】
本取り組みの利点は、上述の詳細な説明の観点から明確であるはずである。安全な通信コンテキストを確立するための従来技術であるGSS‐API対応の機構と比較して、本発明の好ましい実施形態は、従来実施されてきたユーザ名‐パスワード型のソリューションとしての同一のGSS‐API対応の機構を使用し続けながら、必要に応じて、ユーザ名‐パスワード型のクライアント‐サーバ認証動作から完全な公開鍵インフラストラクチャ(PKI)によるソリューションへ拡張する機能を提供する。加えて、本発明の好ましい実施形態によって、クライアントは、LIPKEYでは許可されていない、公開鍵証明書の使用による認証を行うことができる。さらに、本発明の好ましい実施形態によって、SPKMでは対応していない、ユーザ名‐パスワード、セキュアチケット、または公開鍵証明書などの様々なクライアント認証機構が可能となる。さらに、本発明の好ましい実施形態は、LIPKEYと比較して、ネットワークトラフィックおよび暗号化動作を最小限にする。例えば、LIPKEYでは6つのメッセージが交換されるのに対して、4つのメッセージがクライアントとサーバとの間で交換される。
【0046】
完全に機能するデータ処理システムのコンテキストにおいて本発明の好ましい実施形態を説明してきたが、本発明の好ましい実施形態の処理は、分散を実行するために実際に使用される特定の種類の信号記録媒体に関係なく、コンピュータ読み取り可能な媒体および様々な他の形式における命令の形式で分散されうることが、当業者にとっては当然であることに注意するのが重要である。コンピュータ読み取り可能な媒体の例には、EPROM、ROM、テープ、紙、フロッピー(R)ディスク、ハードディスクドライブ、RAM、およびCD−ROM、ならびに、デジタルおよびアナログ通信リンクなどの送信型媒体が含まれる。
【0047】
方法とは、一般的に、自己矛盾のない、所望の結果を導く一連のステップであると考えられる。これらのステップは、物理量の物理的な操作を必要とする。通常、必ずしもそうではないものの、これらの量は、記憶、転送、結合、比較、およびそうでなければ操作可能な電気的または磁気的信号の形式を取る。主に一般的な使用上の理由から、このような信号をビット、値、パラメータ、項目、要素、オブジェクト、記号、文字、期間、または数値などと称するのが時には便利である。しかしながら、これらの用語または類似の用語は、適切な物理量に関連付けられるべきものであり、これらの量に対して適用した便利なラベルに過ぎないことに注意すべきである。
【0048】
本発明の好ましい実施形態の説明を例示の目的で提示してきたが、網羅的なものでも、開示された実施形態に限定しようとするものでもない。数多くの修正および変形が当業者にとっては明らかだろう。
【図面の簡単な説明】
【0049】
【図1】それぞれ本発明の好ましい実施形態を実施しうるデータ処理システムの典型的なネットワーク、当該データ処理システム内で使用されうる典型的なコンピュータアーキテクチャを示す。
【図2】個人がデジタル証明書を取得する典型的なやり方を示すブロック図である。
【図3】データ処理システムに対して認証すべきデジタル証明書をエンティティが使用しうる典型的なやり方を示すブロック図である。
【図4】クライアントとサーバとの間で安全な通信コンテキストを確立するための典型的なGSS‐API対応の機構を示すデータフロー図である。
【図5】本発明の一実施形態に係るクライアントとサーバとの間で安全な通信コンテキストを確立するための典型的なGSS‐API対応の機構を示すデータフロー図である。

【特許請求の範囲】
【請求項1】
第1のシステムと第2のシステムとの間でメッセージを通信するための安全なコンテキストを確立するために前記第2のシステムによって実行される方法であって、
前記第1のシステムは、第2の公開鍵証明書を確認することが可能であり、
前記第2のシステムは、公開鍵を含む第1の公開鍵証明書を確認することが可能であり、前記第2の公開鍵証明書に関連した秘密鍵を使用し、
前記方法は、
前記第1の公開鍵証明書を取得するステップと、
非対称鍵であるトランスポートキーを生成するステップと、
前記トランスポートキーと前記第2の公開鍵証明書を備える認証トークンとを前記公開鍵で保護された第1のメッセージに配置するステップと、
前記第1のメッセージを前記第2のシステムから前記第1のシステムへ送るステップと、
前記第1のメッセージを前記第1のシステムへ送信することに応答して、前記トランスポートキーで保護された第2のメッセージを前記第1のシステムから受信するステップと、
非対称鍵であるセッションキーを前記第2のメッセージから抽出するステップと、
前記第1のシステムへ送られる後続のメッセージを保護するために前記セッションキーを使用するステップと、
前記第2の公開鍵証明書に含まれる公開鍵を用いて前記第1のシステムにより作成され、前記セッションキーを含む前記第2のメッセージ内のデジタル封筒を復号化するステップと
を含む方法。
【請求項2】
第1のシステムと第2のシステムとの間でメッセージを通信するための安全なコンテキストを確立するために前記第1のシステムによって実行される方法であって、
前記第2のシステムは、公開鍵証明書を確認することが可能であり、
前記方法は、
前記第1のシステムに関連した公開鍵証明書を提供するステップと、
前記第1のシステムに関連した前記公開鍵証明書からの公開鍵で保護されており、対称秘密鍵であるトランスポートキーと前記第2のシステムに関連した第2の公開鍵証明書を備える認証トークンとを含む第1のメッセージを前記第2のシステムから受信するステップと、
前記認証トークンに基づいて前記第2のシステムを認証するステップと、
対称秘密鍵であるセッションキーを生成するステップと、
前記セッションキーを前記トランスポートキーで保護された第2のメッセージに配置するステップと、
前記第1のメッセージを受信したことに応答して、前記第2のメッセージを前記第2のシステムへ送るステップと、
前記セッションキーで保護された後続のメッセージを前記第2のシステムから受信するステップと、
前記第2のシステムに関連した前記公開鍵証明書に含まれる公開鍵を使用するによって、前記セッションキーを含む前記第2のメッセージ内にデジタル封筒を作成するステップと
を含む方法。
【請求項3】
コンピュータに請求項1に記載の方法を実行させるコンピュータ・プログラム。
【請求項4】
コンピュータに請求項2に記載の方法を実行させるコンピュータ・プログラム。
【請求項5】
第1のシステムとの間でメッセージを通信するための安全なコンテキストを確立する第2のシステムであって、
前記第1のシステムは、第2の公開鍵証明書を確認することが可能であり、
前記第2のシステムは、公開鍵を含む第1の公開鍵証明書を確認することが可能であり、前記第2の公開鍵証明書に関連した秘密鍵を使用し、
前記第2のシステムは、さらに、
前記第1の公開鍵証明書を取得する手段と、
非対称鍵であるトランスポートキーを生成する手段と、
前記トランスポートキーと前記第2の公開鍵証明書を備える認証トークンとを前記公開鍵で保護された第1のメッセージに配置する手段と、
前記第1のメッセージを前記第2のシステムから前記第1のシステムへ送る手段と、
前記第1のメッセージを前記第1のシステムへ送信することに応答して、前記トランスポートキーで保護された第2のメッセージを前記第1のシステムから受信する手段と、
非対称鍵であるセッションキーを前記第2のメッセージから抽出する手段と、
前記第1のシステムへ送られる後続のメッセージを保護するために前記セッションキーを使用する手段と、
前記第2の公開鍵証明書に含まれる公開鍵を用いて前記第1のシステムにより作成され、前記セッションキーを含む前記第2のメッセージ内のデジタル封筒を復号化する手段と
を含むシステム。
【請求項6】
第2のシステムとの間でメッセージを通信するための安全なコンテキストを確立する第1のシステムであって、
前記第2のシステムは、公開鍵証明書を確認することが可能であり、
前記第1のシステムは、さらに、
前記第1のシステムに関連した公開鍵証明書を提供する手段と、
前記第1のシステムに関連した前記公開鍵証明書からの公開鍵で保護されており、対称秘密鍵であるトランスポートキーと前記第2のシステムに関連した第2の公開鍵証明書を備える認証トークンとを含む第1のメッセージを前記第2のシステムから受信する手段と、
前記認証トークンに基づいて前記第2のシステムを認証する手段と、
対称秘密鍵であるセッションキーを生成する手段と、
前記セッションキーを前記トランスポートキーで保護された第2のメッセージに配置する手段と、
前記第1のメッセージを受信したことに応答して、前記第2のメッセージを前記第2のシステムへ送る手段と、
前記セッションキーで保護された後続のメッセージを前記第2のシステムから受信する手段と、
前記第2のシステムに関連した前記公開鍵証明書に含まれる公開鍵を使用するによって、前記セッションキーを含む前記第2のメッセージ内にデジタル封筒を作成する手段と
を含む方法。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate


【公表番号】特表2007−518324(P2007−518324A)
【公表日】平成19年7月5日(2007.7.5)
【国際特許分類】
【出願番号】特願2006−548300(P2006−548300)
【出願日】平成17年1月5日(2005.1.5)
【国際出願番号】PCT/EP2005/050032
【国際公開番号】WO2005/069531
【国際公開日】平成17年7月28日(2005.7.28)
【出願人】(390009531)インターナショナル・ビジネス・マシーンズ・コーポレーション (4,084)
【氏名又は名称原語表記】INTERNATIONAL BUSINESS MASCHINES CORPORATION
【Fターム(参考)】