(57)【要約】サーバ又は他のコンピュータ環境において暗号キーを管理し且つ暗号化サービスを実行するための方法、及び、装置を提供する。アプライアンスは、暗号キーを保護し、ネットワークサービスとして暗号化操作を提供するための暗号キーサーバとして機能する。
2005533438.tif 000002
【特許請求の範囲】
【請求項１】
ネットワークを介して遠隔の装置に連結され、該遠隔の装置に対して暗号化サービスを提供するのに適した暗号キーサーバであって、
前記暗号キーサーバ上で実行する安全なネットワークインターフェースエンジンであって、
少なくとも一つの遠隔の装置と安全なネットワークコミュニケーションチャンネルを確立し、
前記少なくとも一つの遠隔装置から受信した、保護された暗号化サービス要求をアンマーシャルし、
前記少なくとも一つの遠隔装置に対して、安全な暗号化サービス応答をマーシャルして送信する安全なネットワークインターフェースエンジンと、
前記暗号キーサーバ上で実行する暗号化サービスエンジンであって、前記安全なネットワークインターフェースエンジンと双方向で連絡し、前記少なくとも一つの安全なネットワークインターフェースエンジンによって要求される暗号化サービスを提供する暗号化サービスエンジンと、
からなる暗号キーサーバ。
【請求項２】
前記少なくとも一つの遠隔の装置は、アプリケーションサーバである請求項１に記載の暗号キーサーバ。
【請求項３】
前記安全なネットワークインターフェースエンジンは、セキュアソケットレイヤー（ＳＳＬ）プロトコルに従って前記安全なネットワークコミュニケーションチャンネルが確立されるように配置される請求項１に記載の暗号キーサーバ。
【請求項４】
前記安全なネットワークインターフェースエンジンは、トランスポートレイヤーセキュリティ（ＴＬＳ）プロトコルに従って前記安全なネットワークコミュニケーションチャンネルが確立されるように配置される請求項１に記載の暗号キーサーバ。
【請求項５】
前記安全なネットワークインターフェースエンジンは、セキュアソケットレイヤー（ＳＳＬ）プロトコル及びトランスポートレイヤーセキュリティ（ＴＬＳ）プロトコルを含む多重コミュニケーションプロトコルに対応し、前記安全なネットワークインターフェースエンジンは、前記安全なネットワークコミュニケーションチャンネルを確立すべく、前記少なくとも一つの装置によって選択されるプロトコルに従って、前記少なくとも一つの装置に応答する請求項１に記載の暗号キーサーバ。
【請求項６】
前記暗号化サービスエンジン及び前記安全なネットワークインターフェースエンジンは、前記暗号キーサーバ上で実行する単一のプロセスのコンポーネントである請求項１に記載の暗号キーサーバ。
【請求項７】
前記暗号化サービスエンジンは、暗号化及び復号化機能を実行する請求項１に記載の暗号キーサーバ。
【請求項８】
前記暗号化及び復号化機能は、
対称ブロック暗号文と、
一般的な暗号文モードと、
ストリーム暗号文モードと、
公開鍵暗号と、
公開鍵システムのためのパディングスキームと、
キー協定スキームと、
楕円曲線暗号システムと、
一方向ハッシュ機能と、
メッセージ認証コードと、
ハッシュ機能に基づく暗号構成と、
擬似乱数生成器と、
キー派生機能に基づくパスワードと、
シャミルの秘密共有スキーム及びラビンの情報拡散アルゴリズム（ＩＤＡ）と、
gzip（RFC1952）及びzlib（RFC1950）形式をサポートするデフレート（RFC1951）圧縮/復元と、
高速多倍精度整数（bignum）及び多項式操作と、
（ＧＦ（ｐ）及びＧＦ（２n）を含む有限体計算と、
素数生成及び検証と、
からなる請求項７に記載の暗号キーサーバ。
【請求項９】
前記暗号化及び復号化機能は、
DES、3DES、AES、RSA、DSA、ECC、RC6、MARS、トゥーフィッシュ、サーペント、CAST-256、DESX、RC2、RC5、ブローフィッシュ、ダイアモンド2、TEA、SAFER、3-WAY、Gost、SHARK、CAST- 128、Square、Shipjack、ECB、CBC、CTS、CFB、OFB、counter mode (CTR)、Panama、ARC4、SEAL、WAKE、Wake-OFB、Blumblumshub、エルガマル、Nyberg- Rueppel (NR)、Rabin、Rabin-Williams (RW)、LUC、LUCELG、DLIES (DHAESの改良型)、ESIGN公開鍵システムのためのパディングスキーム: PKCS＃1 v2.0、OAEP、PSSR、IEE P1363 EMSA2、Diffie-Hellman (DH)、Unified Diffie-Hellman (DH2)、Menezes-Qu-Vanstone (MQV)、LUCDIF、XTR-DH、ECDSA、ECNR、ECIES、ECDH、ECMQV、SHA1、MD2、MD4、MD5、HAVAL、RIPEMD-160、Tiger、SHA-2 (SHA-256、SHA-384及びSHA-512)、Panama、MD5-MAC、HMAC、XOR-MAC、CBC-MAC、DMAC、Luby-Rackoff、MDC、ANSI X9.17 appendix C、PGP's RandPool、PBKDF1及びPBKDF2 from PKCS＃5からなる請求項７に記載の暗号キーサーバ。
【請求項１０】
前記暗号化サービスエンジンは、署名及び検証の機能を実行する請求項１に記載の暗号キーサーバ。
【請求項１１】
前記署名及び検証の操作は、ＲＳＡ及びＤＳＡを含む請求項１０に記載の暗号キーサーバ。
【請求項１２】
前記暗号化サービスエンジンは、ハッシュ操作を実行する請求項１に記載の暗号キーサーバ。
【請求項１３】
前記ハッシュ操作は、HMAC with SHA-1を含む請求項１０に記載の暗号キーサーバ。
【請求項１４】
前記暗号化サービスエンジンは、前記暗号化サービスに先立って、該暗号化サービスを実行する条件として、さらに、認証し、且つ、暗号化サービスの要求の許可を判断する請求項１に記載の暗号キーサーバ。
【請求項１５】
暗号化サービスの要求の認証には、
暗号化サービスを要求するクライアントと、
前記クライアントが暗号化サービスを要求する前記少なくとも一つの遠隔の装置と、
前記少なくとも一つの遠隔の装置上で実行される機能又はプログラムと、
からなる一つ以上の組のアイデンティティを検証することを含む請求項１４に記載の暗号キーサーバ。
【請求項１６】
暗号化サービスの要求の許可の判断には、
暗号化サービスを要求するクライアントと、
前記クライアントが暗号化サービスを要求する前記少なくとも一つの遠隔の装置と、
前記少なくとも一つの遠隔の装置上で実行する機能又はプログラムと、
からなる一つ以上の組に与えられる許可特権を判断することを含む請求項１４に記載の暗号キーサーバ。
【請求項１７】
暗号化サービスの要求の許可を判断する操作には、さらに、暗号化サービスの前記要求が、暗号化サービスの前記要求に関係する要求元の特権の範囲内であるかを判断することを含む請求項１６に記載の暗号キーサーバ。
【請求項１８】
前記暗号化サービスエンジンは、暗号化サービスの要求を探知する請求項１に記載の暗号キーサーバ。
【請求項１９】
前記暗号キーサーバは、さらにプライベートキーエンジンを含み、
前記プライベートキーエンジンは、暗号化サービスを実行する際に、前記暗号化サービスエンジンによって使用されるプライベートキーを提供する請求項１に記載の暗号キーサーバ。
【請求項２０】
前記暗号キーサーバは、ネットワークセキュリティアプライアンスである請求項１に記載の暗号キーサーバ。
【請求項２１】
前記暗号化サービスエンジン及び前記安全なネットワークインターフェースエンジンをサポートするコンピュータハードウェアアーキテクチャを有し、
前記コンピュータハードウェアアーキテクチャは、
データバスと、
前記データバスに双方向で連結される中央処理装置と、
前記データバスに双方向で連結される持続的記憶装置と、
前記データバスに双方向で連結される一時記憶装置と、
前記データバスに双方向で連結されるネットワーク入出力装置と、
前記データバスに双方向で連結される暗号化アクセラレ−タカードと、
前記データバスに双方向で連結され、プライベートキーを保存するのに適したハードウェアセキュリティモジュールと、
スマートカードインターフェース装置と、
からなる請求項１に記載の暗号キーサーバ。
【請求項２２】
前記ハードウェアセキュリティモジュールは、耐タンパー装置である請求項２１に記載の暗号キーサーバ。
【請求項２３】
前記プライベートキーは、前記ハードウェアセキュリティモジュールにロードされ、暗号形式で保存される請求項２１に記載の暗号キーサーバ。
【請求項２４】
前記プライベートキーは、前記暗号化されたプライベートキーを保存するスマートカードを介して前記ハードウェアセキュリティモジュールにロードされる請求項２１に記載の暗号キーサーバ。
【請求項２５】
前記プライベートキーは、ｋ個のスマートカードが挿入された場合にのみ前記暗号キーサーバによってアクセスされ得るように、k-out-of-n秘密共有をサポートする請求項２４に記載の暗号キーサーバ。
【請求項２６】
ネットワークを介して遠隔の装置に連結され、該遠隔の装置に対して暗号化サービスを提供するのに適した暗号キーサーバであって、
前記暗号キーサーバは、
データバスに双方向で連結される暗号化アクセラレータカードと、
スマートカードインターフェース装置と、
前記データバスに双方向で連結され、安全なデータに適したハードウェアセキュリティモジュールと、からなり、
前記安全なデータは、スマートカードインターフェース装置にk-out-of-nスマートカードが挿入された場合にのみアクセス可能である暗号キーサーバ。
【請求項２７】
複数のアプリケーションをホスト可能であり、ネットワークを介して複数のクライアントに対してサービスを提供可能なアプリケーションサーバであって、
前記複数のアプリケーションが複数の暗号化サービスを呼び出すことができる一連の標準を提供し、遠隔の暗号キーサーバによって前記複数の暗号化サービスの少なくとも一つが実行される、暗号化アプリケーションプログラムインターフェース（ＡＰＩ）と、
遠隔の暗号キーサーバと安全なネットワークコミュニケーションチャンネルを確立する安全なネットワークインターフェースエンジンと、
からなるアプリケーションサーバ。
【請求項２８】
前記暗号化ＡＰＩは、遠隔の暗号化サービスを要求するために前記安全なネットワークインターフェースエンジンを利用する請求項２７に記載のアプリケーションサーバ。
【請求項２９】
前記暗号化ＡＰＩは、前記複数のアプリケーションに対してJAVA暗号拡張（ＪＣＥ）としてエクスポーズされる請求項２７に記載のアプリケーションサーバ。
【請求項３０】
前記暗号化ＡＰＩは、暗号化サービスプロバイダ（ＣＳＰ）を介してエクスポーズされ、前記暗号化ＡＰＩは、動的リンクライブラリとして実行される請求項２７に記載のアプリケーションサーバ。
【請求項３１】
前記暗号化ＡＰＩは、MS-CAPIを介してエクスポーズされる請求項２７に記載のアプリケーションサーバ。
【請求項３２】
複数の機能及びプログラムを実行可能な装置であって、
前記装置で実行される安全なネットワークインターフェースエンジンであって、少なくとも一つの遠隔の暗号キーサーバと安全なネットワークコミュニケーションチャンネルを確立し、前記少なくとも一つの遠隔の暗号キーサーバに対して暗号化サービスの安全な要求をマーシャルして送信し、暗号化サービスの要求に対する安全な応答を受信してアンマーシャルする安全なネットワークインターフェースエンジンと、
前記装置で実行され、前記安全なネットワークインターフェースエンジンと双方向で連結される暗号化アプリケーションプログラムインターフェース（ＡＰＩ）であって、前記複数の機能及びプログラムが対応する複数の暗号化サービスを呼び出すことができる一連の標準を提供して、前記複数の暗号化サービスの少なくとも一つが前記少なくとも一つの暗号キーサーバによって遠隔で実行される暗号化ＡＰＩであり、前記暗号化サービスを要求すべく安全なネットワークインターフェースエンジンを利用するために、前記少なくとも一つの遠隔の暗号化サービスの要求に対して応答する暗号化ＡＰＩと、
からなる装置。
【請求項３３】
暗号キーサービスを提供するコンピュータ実行方法であって、
ネットワーク化されたキーサーバ上に一組のプライベートキーを確立する動作と、
ネットワーク化された装置と前記ネットワーク化されたキーサーバとの間に安全なネットワークコミュニケーションチャンネルを確立する動作と、
暗号キーサービスの要求を、前記ネットワーク化された装置から、前記安全なネットワークコミュニケーションチャンネルを介して、前記ネットワーク化されたキーサーバにおいて受信する動作と、
暗号キーサービスの前記要求を認証する動作と、
暗号キーサービスの前記要求の許可を判断する動作と、
前記要求が許可されると、前記プライベートキーを利用して、暗号キーサービスの要求を、前記ネットワーク化されたキーサーバにおいて実行する動作と、
からなる暗号キーサービスを提供するコンピュータ実行方法。
【請求項３４】
プライベートキーをネットワーク化されたサーバ上に確立する前記動作は、前記一組のプライベートキーを暗号化する動作を含む請求項３３に記載の暗号キーサービスを提供するコンピュータ実行方法。
【請求項３５】
前記一組のプライベートキーを暗号化する前記動作は、k-out-of-n秘密共有技術を用いて実行される請求項３３に記載の暗号キーサービスを提供するコンピュータ実行方法。
【請求項３６】
安全なネットワークコミュニケーションチャンネルを確立する前記動作には、ＳＳＬプロトコルの使用が含まれる請求項３３に記載の暗号キーサービスを提供するコンピュータ実行方法。
【請求項３７】
安全なネットワークコミュニケーションチャンネルを確立する前記動作には、ＴＬＳプロトコルの使用が含まれる請求項３３に記載の暗号キーサービスを提供するコンピュータ実行方法。
【請求項３８】
前記要求を認証する前記動作には、
暗号化サービスを要求するクライアントと、
前記クライアントが暗号化サービスを要求する前記ネットワーク化された装置と、
前記ネットワーク化された装置上で実行される機能又はプログラムと、
からなる一つ以上の組のアイデンティティを認証する動作を含む請求項３３に記載の暗号キーサービスを提供するコンピュータ実行方法。
【請求項３９】
前記要求の許可を判断する動作には、
暗号化サービスを要求するクライアントと、
前記クライアントが暗号化サービスを要求する前記ネットワーク化された装置と、
前記ネットワーク化された装置上で実行する機能又はプログラムと、
からなる一つ以上の組に与えられる許可特権を判断する動作を含む請求項３３に記載の暗号キーサービスを提供するコンピュータ実行方法。
【請求項４０】
前記要求の許可を判断する動作には、前記要求が、前記暗号化サービスの要求に関連付けられる要求元の権利の範囲内であるかについて判断する動作を含む請求項３８に記載の暗号キーサービスを提供するコンピュータ実行方法。
【請求項４１】
暗号化サービスの要求の全てを探知する動作をさらに含む請求項３３に記載の暗号キーサービスを提供するコンピュータ実行方法。
【請求項４２】
ネットワーク化された暗号キーサービスを提供するコンピュータ実行方法であって、
暗号化ＡＰＩをアプリケーションサーバ内で統合する動作と、
前記アプリケーションサーバ上で実行する複数のアプリケーションに、前記暗号化ＡＰＩを介して暗号化サービスをエクスポーズする動作と、
前記アプリケーションサーバ及び遠隔の暗号キーサーバとの間で安全なネットワークコミュニケーションチャンネルを確立する動作と、
前記暗号化ＡＰＩにおいてアプリケーションから暗号化サービスの要求を受信する動作と、
暗号化サービスの前記要求を、前記暗号キーサーバに対して送信するために、マーシャルする動作と、
前記マーシャルされた暗号化サービスの要求を、前記安全なネットワークコミュニケーションチャンネルを介して、前記暗号キーサーバに送信する動作と、
前記要求に対する応答を、前記安全なネットワークコミュニケーションチャンネルを介して受信する動作と、
前記応答をアンマーシャルする動作と、
前記暗号化ＡＰＩを介して前記要求するアプリケーションに対して有効な応答を与える動作と、
からなるネットワーク化された暗号キーサービスを提供するコンピュータ実行方法。
【請求項４３】
サーバシステム内の暗号キーを保護する方法であって、
データの暗号化に用いられる暗号キーをキーサーバに保存するコンピュータ実行動作を含み、
前記キーサーバは、安全なコミュニケーションチャンネルを利用して、前記サーバシステムの少なくとも一つのコンポーネントと連絡するサーバシステム内の暗号キーを保護する方法。
【請求項４４】
ネットワークシステム内の暗号キーを保護する方法であって、
データの暗号化に用いられる暗号キーをキーサーバに保存するコンピュータ実行動作を含み、
前記キーサーバは、前記ネットワークシステムの少なくとも一つのコンポーネントのために暗号化操作を行う専用のネットワークアプライアンスであるネットワークシステム内の暗号キーを保護する方法。
【請求項４５】
前記暗号化操作は、セキュアソケットレイヤー（ＳＳＬ）プロトコルに基づく操作を含む請求項４４に記載のネットワークシステム内の暗号キーを保護する方法。
【請求項４６】
前記暗号化操作は、トランスポートレイヤーセキュリティ（ＴＬＳ）プロトコルに基づく操作を含む請求項４４に記載のネットワークシステム内の暗号キーを保護する方法。
【請求項４７】
機密データは、暗号化された形式のみで、前記ネットワークシステム内に保存される請求項４４に記載のネットワークシステム内の暗号キーを保護する方法。
【請求項４８】
前記暗号キーサーバは、暗号キーを保存し、前記記憶された暗号キーへのアクセスをコントロールする、ネットワークシステム内の暗号キーを保護する暗号キーサーバアプライアンス。
【請求項４９】
前記アクセスは、暗号化操作のために単独で保存される前記暗号キーの少なくとも一つを利用することを含む請求項４８に記載の暗号キーサーバアプライアンス。
【請求項５０】
前記アクセスは、復号化操作のために単独で保存される前記暗号キーの少なくとも一つを利用することを含む請求項４８に記載の暗号キーサーバアプライアンス。
【請求項５１】
機密情報をサーバシステム内で保護する暗号化アプライアンスであって、
データコミュニケーションバスと、
前記データコミュニケーションバスと双方向で連結される中央処理装置と、
前記データコミュニケーションバスと双方向で連結される一時的記憶装置と、
前記データコミュニケーションバスと双方向で連結される持続的記憶装置と、
前記データコミュニケーションバスと双方向で連結されるネットワーク入出力装置と、
前記データコミュニケーションバスと双方向で連結される暗号化アクセラレータ装置と、
ハードウェアセキュリティモジュールと、
前記データコミュニケーションバスと連結されるスマートカードインターフェースと、
からなる暗号化アプライアンス。
【請求項５２】
暗号化サービスをネットワークシステムに提供するコンピュータ実行方法であって、
暗号キーをキーサーバに安全にロードする動作と、
前記ネットワークシステムの第一のコンポーネントと前記キーサーバとの間に安全なトランスポートセッションを確立する動作と、
前記第一のコンポーネントを含む前記ネットワークの一つ以上のコンポーネントを、前記キーサーバに対して認証する動作と、
前記第一のコンポーネントを含む前記ネットワークの一つ以上のコンポーネントを、前記キーサーバに対して許可することを判断する動作と、
暗号操作の要求を前記第一のコンポーネントから前記キーサーバに対して行う動作と、
前記要求が、認証及び許可の判断の動作と関連する結果に基づいて、前記キーサーバによって実行されるべきかを判断する動作と、
前記要求が許可された場合には、前記要求された暗号操作を、前記キーサーバ上で行う動作と、
要求された暗号操作の結果を、前記安全なトランスポートセッションを介して、前記キーサーバから前記第一コンポーネントに与える動作と、
からなるコンピュータ実行方法。
【請求項５３】
ネットワークシステム内のデータを保護するコンピュータ実行方法であって、
前記コンピュータ実行方法は、ネットワーク装置に対して、アプリケーションサーバへの途中のデータの傍受及び検査を与える動作を含み、
前記ネットワーク装置は、グループキーを共有する暗号化サーバの所定のグループの一部であるとともに、
前記データが機密データであるかを判断し、
前記データが機密的である場合には、暗号データを形成するために前記データを暗号化し、その暗号化の動作には、暗号サーバの前記所定のグループに共有されるグループキーの使用が含まれ、
前記暗号化データを前記アプリケーションサーバに転送し、
且つ、前記コンピュータ実行方法は、前記暗号化データを、前記アプリケーションサーバと関連付けられる記憶媒体に保存する動作を含み、
さらに、前記コンピュータ実行方法は、前記データに前記一つ以上のバックエンドアプリケーションサーバがアクセスすることを許可される場合には、前記記憶媒体から前記暗号化データをレトリーブして復号化するために、暗号化サーバの前記所定のグループの一つを採用させる動作を含む、ネットワークシステム内のデータを保護するコンピュータ実行方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、一般に、データセキュリティの分野に関し、より詳しくは、暗号化ネットワークサービスを提供し、ネットワーク環境において暗号キーを保護することに関する。
【背景技術】
【０００２】
機密的な内容を取り扱うコンピュータシステムにおいては、ネットワーク送信中及びローカルの記憶装置の両方において、この機密的な内容を保護することを目指している。例えば、ｅコマース（電子商取引）のウェブサイトでは、送信の間、ユーザクレジットカード番号及びユーザパスワードを保護するために、様々な手段が用いられている。多くの場合、これらのサイトでは、利用者のコンピュータ及びウェブサイトの間で送信される間、全ての機密データを保護するために、周知のセキュアソケットレイヤー（ＳＳＬ）プロトコル又はトランスポートレイヤーセキュリティ（ＴＬＳ）プロトコルなどが用いられている。
【０００３】
ＳＳＬ及びＴＬＳは、ウェブサーバ及びクライアントコンピュータのみが知っているセッションキー（即ち、暗号キー）を用いてデータを暗号化することにより、送信される間、データを保護している。これらのプロトコルに従い、該データは、受信側のウェブサーバに到着すると、復号化される。受信側サーバは、該データの処理（例えば、クレジットカード番号の認証など）を行い、多くの場合、サーバデータベースにその機密的なデータを保存する。
【発明の開示】
【発明が解決しようとする課題】
【０００４】
ウェブクライアント及び内部ウェブサーバ間のＳＳＬ接続を構成するために用いられる暗号キーは、同じ内部ウェブサーバに保存される。同様に、バックエンドアプリケーションサーバ及びデータベースに保存されるデータが暗号化される場合、暗号キーは、同じバックエンドアプリケーションサーバに保存されるが、それらは通常安全でないプラットフォームである。従って、同じウェブサーバ又はバックエンドアプリケーションサーバに保存される暗号キーは、盗用されやすい。暗号化データは、該暗号化データを保護する暗号キーと同程度に安全であるに過ぎない。
【０００５】
暗号化操作が直接実行されるウェブサーバ及びアプリケーションサーバは、暗号化操作の要求の処理が原因で、性能が低下する。一つの取り組みとして、サーバの性能を改善するために、暗号化アクセラレータカードなどの高価なハードウェアが、かかるサーバ上で用いられている。しかし、高価な暗号化アクセラレータをウェブ／アプリケーションサーバごとに組み込むことは、桁違いの費用がかかるものである。
【０００６】
暗号化サービスを要するウェブ／アプリケーションサーバごとに高価な暗号化アクセラレータを組み込むことなく暗号化操作の性能を改善する、というためだけでなく、暗号キーを保護するためにも、異なるアーキテクチャ（構造）が必要である。
【発明を実施するための最良の形態】
【０００７】
添付の図面は、権利を要求する発明の具体例を図示する。
図１は、本発明の一実施形態に係るネットワーク化された暗号化サービスを提供するコンピュータサーバ環境１０を示す。
図２は、本発明の一実施形態に係るソフトウェアアーキテクチャを図示するものである。
図３Ａは、本発明の一実施形態に係るネットワーク化された暗号キーサーバに適したハードウェアアーキテクチャを図示するものである。
図３Ｂは、本発明のある実施形態に係るグループキーのk-out-of-n秘密共有（シークレットシェアリング）をサポートする暗号化サーバに関してプライベートキーをバックアップしリストア（復旧）するための操作１５０を図示するものである。
図４は、本発明の一実施形態に従って、ネットワーク化された暗号キーサーバが暗号化サービスを提供し得るコンピュータ実行方法を図示するフローチャートである。
図５は、本発明の一側面に係る暗号化の要求を認証及び認可する分析を行うコンピュータ実行方法を図示するフローチャートである。
図６は、標準暗号化ＡＰＩを介して遠隔の及びローカルの暗号化サービスにアクセスするために、アプリケーションサーバ上にアプリケーションをインスタンス生成可能なコンピュータ実行方法を図示するフローチャートである。
図７は、本発明のある実施形態に係る分配型の暗号化サービスコンピューティング環境を示す。
図８は、本発明のある実施形態に係る、ネットワークセキュリティアプライアンスがネットワーク化された暗号キーサービスを提供するシステムアーキテクチャを示す。
図９は、透過的（トランスピアレント）な暗号化ネットワークセキュリティアプライアンス及び暗号キーサーバを含むネットワークアーキテクチャを示すブロックダイアグラムである。
【０００８】
図面においては、同一の参照番号は、同一又は実質的に同様の要素又は動作を示す。ここで用いられる表題は、便利のためのみに用いられるものであり、クレームされた発明の範囲又は意義に影響を与えるものではない。
【０００９】
図１は、本発明の一実施形態に係るネットワーク化された暗号化サービスを提供するコンピュータサーバ環境１０を示す。該コンピュータサーバ環境１０は、複数のクライアント１２、アプリケーションサーバ１４及び暗号キーサーバ１６を含み、それら全ては、コンピュータネットワーク１８を介して双方向で連結される。コンピュータネットワーク１８は、インターネット又はローカルエリアネットワークなどの、任意の適当な形式を採り得る。アプリケーションサーバ１４は、ネットワークデータベース２０と双方向で連結される。アプリケーションサーバ１４は、コンピュータネットワーク１８を介して要求されたサービスをクライアント１２に提供する。クライアント１２に要求されたサービスは、明確に暗号化サービスを含む場合や、又は、暗号化サービスの必要を生じさせる場合があり得る。例えば、サービスを要求したクライアントが、ネットワークデータベース２０上に機密データの保存を要求する場合や、又は、ネットワークデータベース２０から暗号化されたデータのレトリーバル（retrieval）を要求する場合もあり得る。暗号キーサーバ１６は、暗号化サービスを実行するために、アプリケーションサーバ１４が利用可能であり、従って、アプリケーションサーバ１４は、暗号化サービスの演算処理から開放される。
【００１０】
ここで述べた暗号キーサーバは、ネットワーク接続された暗号化装置としても知られている。そのような機能を実行する種々の機構だけでなく、暗号化サービスの性質についても、以下により詳細に説明する。
【００１１】
図２は、本発明の一実施形態に従うアプリケーションサーバ５２及び暗号キーサーバ５４のためのソフトウェアアーキテクチャ５０を図示する。図２のソフトウェアアーキテクチャは、アプリケーションサーバに限定されるものではなく、実装によって異なる。コンピュータ装置及びシステムがいくつであっても、暗号キーサーバ５４のクライアントとなり得る。好ましい実施形態においては、アプリケーションサーバ５２及び暗号キーサーバ５４は、安全なネットワークコミュニケーションチャンネル（伝達経路）５６を介して双方向で連結されている。安全なネットワークチャンネル５６は、安全なコミュニケーションプロトコルＳＳＬやＴＬＳなどの、任意の適当な安全なコミュニケーション技術によって達成し得る。また、安全なチャンネルは、直接の物理的なリンク又は当業者にとって公知の任意の手段によって達成され得る。ソフトウェアベースのアプリケーションサーバ５２は、暗号キーサーバの暗号化サービスを必要とするクライアントの一例に過ぎない。
【００１２】
図２のアプリケーションサーバ５２は、複数のアプリケーション６０と、暗号化アプリケーションプログラムインターフェース（ＡＰＩ）６２と、安全なネットワークインターフェースエンジン６４とを備える。アプリケーション６０は、アプリケーションサーバ５２上でインスタンス生成され、実行するソフトウェアプログラムである。
【００１３】
これらのアプリケーション６０は、アプリケーションサーバ５２のローカルユーザに対してサービスを提供し得るし、ネットワーク接続を介して遠隔のクライアントにネットワークサービスを提供し得る。
【００１４】
暗号化ＡＰＩ６２は、複数のアプリケーション６０が複数の暗号化サービスを呼び出すことができる一連の標準を提供する。本発明によると、この複数の暗号化サービスの少なくとも一つが、暗号キーサーバ５４によって遠隔的に実行される。ネットワーク化された暗号キーサービスを達成するために、暗号化ＡＰＩ６２は、安全なネットワークインターフェースエンジン６４を、暗号化サービスを要求すべく活用するために、遠隔の暗号化サービスの要求に反応する。
【００１５】
暗号化ＡＰＩ６２は、好ましくは、アプリケーション開発者が彼らのソフトウェアに簡単に統合することができる、標準化された暗号化ＡＰＩであることが好ましい。従って、暗号化ＡＰＩ６２は、基礎をなすコンピューティング環境に関して特定の形式を採り得る。基礎をなすコンピューティング環境には、JAVA、Microsoft、PKCS＃11/Cryptoki Provider、Oracle9iなどが含まれ得る。これらの中の幾つかについては、以下により詳細に説明する。
【００１６】
JAVAのコンピューティング環境では、暗号化ＡＰＩ６２は、JAVA暗号拡大（ＪＣＥ）としてアプリケーションにエクスポーズ（expose)され得る。ＪＣＥは、JAVAサーバページ（ＪＳＰ）、JAVAサーブレット又はエンタープライズJAVAビーン（ＥＪＢ）などを含む種々のソースに利用されるか、又は、呼び出され得る。ＪＣＥを利用可能なJAVAアプリケーションは、同じく、アクティブサーバページ（ＡＳＰ）に呼び出され得る。本発明の他の実施形態においては、アプリケーション６０は、暗号化ＡＰＩ６２の助けを借りることなく、暗号キーサーバ５４に直接アクセスし得る。
【００１７】
Microsoft.NETなどのＡＳＰコンピューティング環境では、暗号化機能は、使用するMicrosoft暗号化ＡＰＩ（MS-CAPI）と連絡する暗号化サービスプロバイダ（ＣＳＰ）を介して、例えば、使用するビジュアルベーシックスクリプト（ＶＢスクリプト）にエクスポーズされ得る。この場合、ＣＳＰ又は暗号化ＡＰＩは、アプリケーション６０に多数の暗号化操作をエクスポーズする動的リンクライブラリとして実行される。上では、暗号化機能及び暗号化ＡＰＩに関して、ウェブアプリケーションサーバとの関連で記載した。
【００１８】
しかし、暗号化機能及び暗号化ＡＰＩは、同様に、例えばＪＣＥを用いるウェブベースでないJAVAアプリケーションや、MS-CAPIを呼び出すウェブベースでないWindowsアプリケーションなど、ウェブベースでないアプリケーションサーバに適用可能である。
【００１９】
安全なネットワークインターフェースエンジン６４は、遠隔の暗号キーサーバ５４と、安全なネットワークコミュニケーションチャンネル５６を確立する。同様に、遠隔の暗号キーサーバ５４は、安全なネットワークインターフェースエンジン６４と、安全なネットワークコミュニケーションチャンネル５６を確立する。アプリケーションサーバ５２と遠隔の暗号キーサーバ５４との間で安全なネットワークコミュニケーションチャンネル５６が確立されると、安全なネットワークインターフェースエンジンは、例えば、遠隔の暗号キーサーバ５４に対して暗号化サービスの安全な要求をマーシャルして送信し、暗号化サービスの要求に対する安全な応答を受信してアンマーシャルし、暗号化ＡＰＩ６２に対してかかる応答を送り返す。同様に、暗号化ＡＰＩ６２は、要求するアプリケーション６０に対して応答を与える。
【００２０】
安全なネットワークインターフェースエンジン６４は、アプリケーションサーバ５２のクライアントとアプリケーション６０との間に安全なコミュニケーションチャンネルを提供するために、アプリケーション６０に安全なネットワークサービスをエクスポーズすることが意図される。図２においては、暗号化ＡＰＩ６２及び安全なネットワークインターフェースエンジン６４は、明確に区別できる二つのプロセスとして現れており、それぞれは、アプリケーションサーバ５２上でインスタンス生成される。このことにより、それぞれのプロセスは、別個に変更することができる。しかし、本発明のその他の実施形態では、暗号化ＡＰＩ６２の機能及び安全なネットワークインターフェースエンジン６４の機能は、単一のプロセスとして提供されるか、又は、一つのアプリケーション６０に含まれる。
【００２１】
図２をさらに参照すると、遠隔の暗号キーサーバ５４は、暗号化サービスエンジン７０と、安全なネットワークインターフェースエンジン７２と、プライベートキーエンジン７４とを備えている。遠隔の暗号キーサーバ５４は、該暗号キーサーバと安全なネットワークコミュニケーションチャンネル５６を介して連結されるアプリケーションサーバ５２に対して暗号化サービスを提供するのに適している。安全なネットワークインターフェースエンジン７２は、アプリケーションサーバ５２と安全なネットワークコミュニケーションチャンネル５６を確立する。同様に、アプリケーションサーバ５２は、安全なネットワークインターフェースエンジン７２と安全なネットワークコミュニケーションチャンネル５６を確立する。また、安全なネットワークインターフェースエンジン７２は、アプリケーションサーバ５２から受信した保護された暗号化サービス要求をアンマーシャルし、安全な暗号化サービス応答をマーシャルして該アプリケーションサーバ５２に送信する。
【００２２】
遠隔の暗号キーサーバ５４上で実行する暗号化サービスエンジン７０は、安全なネットワークインターフェースエンジン７２と双方向で連結される。暗号化サービスエンジン７０は、安全なネットワークインターフェースエンジン７２を介して、アプリケーションサーバ５２に要求された暗号化サービスを提供する。暗号化サービスは、ＲＳＡ及びＤＳＡのように、１）ハッシュ操作と、２）署名及び検証操作とを含み得る。
【００２３】
アプリケーション６０にエクスポーズされる暗号化機能は、遠隔のクライアントに最も要望され得るこれらを含み得る。これら暗号化機能は、暗号化サービスを実行することの負担からアプリケーションサーバ５２を開放するために、アプリケーションサーバ５２又はより好ましくは遠隔の暗号キーサーバ５４のいずれにおいても実行されなければならない。従って、暗号化サービスエンジン７０は、アプリケーションサーバ５２で提供されない任意のエクスポーズされる暗号化サービスを実行可能であることが好ましい。典型的なエクスポーズされる機能は、暗号化及び復号化（例えば、ＤＥＳ、３ＤＥＳ、ＡＥＳ、ＲＳＡ、ＤＳＡ、ＥＣＣなど）や、署名及び検証（例えば、ＲＳＡ、ＤＳＡなど）や、ハッシュ及び検証（例えば、SHA-1、HMACなど）などであるが、これらに限定されるものではない。
【００２４】
一般的に、暗号化及び復号化機能は、
対称ブロック暗号文と、
一般的な暗号文モードと、
ストリーム暗号文モードと、
公開鍵暗号と、
公開鍵システムのためのパディングスキームと、
キー協定スキームと、
楕円曲線暗号システムと、
一方向ハッシュ機能と、
メッセージ認証コードと、
ハッシュ機能に基づく暗号構成と、
擬似乱数生成器と、
キー派生機能に基づくパスワードと、
シャミルの秘密共有スキーム及びラビンの情報拡散アルゴリズム（ＩＤＡ）と、
gzip（RFC1952）及びzlib（RFC1950）形式をサポートするデフレート（RFC1951）圧縮/復元と、
高速多倍精度整数（bignum）及び多項式操作と、
（ＧＦ（ｐ）及びＧＦ（２n）を含む有限体計算と、
素数生成及び検証と、を含む。
【００２５】
このように、プライベートキーエンジン７４は、暗号化操作を実行するのに必要なプライベートキーを、暗号化サービスエンジン７０に提供する。かかるプライベートキーは、本発明によって考えられた数々の方法によってだけでなく、種々の従来の機構によっても生成され、また、保存される。一実施形態として、プライベートキーを生成し、取り扱う好ましい実施形態を図３に示す。
【００２６】
図２において、暗号化サービスエンジン７０及び安全なネットワークインターフェースエンジン７２は、それぞれ暗号化サービスエンジン７０でインスタンス生成される二つの明確に区別できるプロセスとして現れる。これにより、これらプロセスのそれぞれは、別々に変更することが可能となる。しかし、本発明の他の実施形態においては、暗号化サービスエンジン７０及び安全なネットワークインターフェースエンジン７２の機能は、単一のプロセスとして与えられる。
【００２７】
図３Ａは、本発明の一実施形態に係る、図２の暗号キーサーバ５４のようなネットワーク化された暗号キーサーバに適したハードウェアアーキテクチャ１００を示す。ハードウェアアーキテクチャ１００は、中央演算処理装置（ＣＰＵ）１０４と、ハードディスクなどの持続的記憶装置１０６と、ランダムアクセスメモリー（ＲＡＭ）などの一時記憶装置１０８と、ネットワーク入出力装置１１０と、暗号化アクセラレータカードなどの暗号化装置１１２と、ハードウェアセキュリティーモジュール（ＨＳＭ）１１４と、スマートカードインターフェース１１６とを含み、これらすべては、データバス１０２を介して双方向で連結される。他の付加的なコンポーネントは、ハードウェアアーキテクチャ１００の一部となろう。
【００２８】
図３Ａに係る一実施形態によると、プライベートキー１２０は、ＨＳＭ１１４にロードされ、暗号化された形式で保存される。より好ましい実施形態においては、ＨＳＭ１１４は、耐タンパー性の（不正操作防止）装置である。プライベートキー１２０は、ごく一部の、所定の暗号キーサーバのグループにしか知られていないグループキーを用いて暗号化される。これらグループキーは、スマートカードによって保護される。暗号化サーバの所定のグループの一つでバックアップ操作が行われると、元の暗号キーの暗号化された形式が、バックアップファイルとして生成される。装置の所定のグループの一部の暗号化サーバのみが、別の暗号キーを用いて暗号キーを復号することができる。
【００２９】
一実施形態においては、暗号化サーバは、さらに安全性を高めるために、グループキーのk-out-of-n秘密共有にも対応している。即ち、暗号キーサーバは、プライベートキーをバックアップしリストアするために、スマートカードを要求する。例えば、グループキー情報が五つのスマートカード（ｎ）のグループに亘って分配された場合には、スマートカードリーダ１１６に三つのスマートカード（ｋ）を挿入した後にしか、グループデータにアクセスできないように選択を設定できる。三つより少ないスマートカードでデータにアクセスしようと試みても、失敗する。k of nスキーマを用いることで、データの安全性が確保される。仮に、一つのカードが盗難にあっても、盗難者が上記のk of n基準に適合するのに足る数のカードを所持していないために、ＨＳＭ１１４に記憶された設定データにアクセスすることは不可能である。図３Ｂは、ある実施形態に従って、グループキーのk-out-of-n秘密共有に対応する暗号化サーバに関し、プライベートキーのバックアップ及びリストアのための操作１５０を図示する。ステップ１５２においては、プライベートキーのバックアップ及びリストアの要求を受信する。ステップ１５４では、バックアップの要求を受けて、バックアップの要求がなされた暗号化サーバに関連したスマートカードインターフェース装置にk-out-of-nのスマートカードが挿入されたか否かについて、判断がなされる。少なくともk-out-of-nのスマートカードが挿入されていないと判断された場合には、ステップ１５６で、バックアップ及びリストアの要求が拒絶される。少なくともk-out-of-nのスマートカードが挿入されたと判断された場合には、ステップ１５８で、バックアップ及びリストアの要求が許可される。
【００３０】
図４を参照し、暗号キーサーバ１６又は５４などのネットワーク化された暗号キーサーバが本発明の一実施形態に係る暗号化サービスを提供し得る、コンピュータ実行方法２００について説明する。最初のステップ２０２では、ネットワーク化されたキーサーバ上で一連のプライベートキーが確立される。これらプライベートキーは、任意の適当なメカニズムに従って生成され、維持される。好ましい実施形態においては、プライベートキーは、耐タンパー性のハードウェア内に保存され、ネットワークを通じて分配されず、図３のＨＳＭ１１４を参照して上述したようなプロセスによって管理される。ネットワーク化されたキーサーバ上で一連のプライベートキーが既に確立された所定のアプリケーションサーバによる暗号化サービスに対する次の要求には、ステップ２０２は含まれない。
【００３１】
次の最初のステップ２０４では、アプリケーションサーバ及び暗号キーサーバの間で、安全なネットワークコミュニケーションチャンネルが確立される。ある実施形態においては、クライアントによる何らかの特定の暗号化サービスの要求に先立って、アプリケーションサーバ及びキーサーバの間でコネクションプール（接続プール）が確立される。コネクションプールは、無期限に維持されるか、又は、動作が無いことに従って閉鎖される。安全なコネクションを確立することは、処理を激しいものとするものである。よって、一度安全なコネクションが確立された場合には、安全なコネクションを維持するのが有効である。安全なチャンネルは、ＳＳＬ若しくはＴＬＳ、又は、任意の適当な従来の手段で確立され得る。多くの場合、サーバ及びクライアントの認証に、HTTPSが用いられ得る。また、ステップ２０４において、要求の実体（entity）のアイデンティティ（identity）が検証、即ち、認証される。これには、アプリケーションサーバのアイデンティティの検証や、アプリケーションサーバ上で実行するアプリケーションのアイデンティティの検証や、適切な場合には、アプリケーションサーバのサービスを要求するクライアントの身元の確認（identification）が含まれ得る。要求された実体の認証が失敗すると、暗号化サービスの要求は拒絶される。さらに、ある実施形態においては、要求の実体の認証が失敗した場合には、以下で説明するように、プロセスコントロールは、失敗したサービスの要求に関連付けられた準備機能（ハウスキーピング機能）を実行するステップ２１６に移行する。
【００３２】
一旦プライベートキーがステップ２０２において確立され、安全なネットワークコミュニケーションチャンネルがステップ２０４において確立され、認証プロセスが完了すると、暗号キーサーバは、暗号化サービスを提供するために使用され得る。
【００３３】
従って、ステップ２０６では、キーサーバは、安全なチャンネルを介して暗号化サービスの要求を受信する。暗号化サービス要求を受信すると、キーサーバは、暗号化されたネットワーク形式から要求を復号化する。図２を参照して上述したように、ある実施形態においては、これは、安全なネットワークインターフェースエンジンによって実行され得る。ステップ２０８においては、キーサーバは、暗号化サービス要求の許可分析を実行する。このステップ２０８の許可分析は、要求されたサービスが要求しているクライアントに提供されるべきか否かを判断する。ステップ２０８の一実施形態は、図４を参照して、以下でより詳細に説明する。
【００３４】
ステップ２０８で、要求が実行されてよいと判断した場合には、プロセスコントロールは、ステップ２０８から、要求されたサービスを実行するステップ２１０に移行する。例えば、アプリケーションサーバは、あるデータを暗号化する又は復号化する要求をし得る。ステップ２１２においては、暗号キーサーバは、安全なチャンネルを介してアプリケーションサーバに応答する。これには、ネットワークを通じて送信を行うために、データを安全な形式にマーシャルすることが含まれる。次のステップ２１４では、認可された要求の履行に関連した種々のハウスキーピング機能が実行される。ある実施形態では、これらには、暗号化の要求（時間、クライアントアイデンティティ、要求されたサービス、充分な完了等）に関連付けてデータベースを維持することが含まれる。
【００３５】
認証ステップ２０８の失敗によって要求が実行されなかったとステップ２０８が判断した場合には、サービスの要求の失敗に関連付けられたステップ２１６がハウスキーピング機能を実行する。ある実施形態では、これには、暗号化要求（時間、クライアントアイデンティティ、要求されたサービス等）に関連付けてデータベースを維持することが含まれる。このデータベースは、取り組みが行われているのか否か、又は、システム中のエラーを判断するために用いられ得る。
【００３６】
次の図５を参照し、本発明の一側面に係る暗号化要求の認証分析を実行するためのコンピュータ実行方法２０８について、以下により詳細に説明する。図４を参照して上述したように、遠隔のアプリケーションサーバが、該アプリケーションサーバのために、おそらくアプリケーションサーバのクライアントのために、ある暗号化機能を実行することを要求する場合に、該方法２０８が呼び出される。最初のステップ２５０では、アプリケーションサーバ、アプリケーション及びクライアントに与えられる許可特権が判断される。アプリケーションサーバ、アプリケーション及びクライアントに与えられる許可特権を判断できない場合には、ステップ２５０の許可テストが失敗したとみなされる。ステップ２５０の許可テストが失敗した場合には、ステップ２５２で要求が拒絶される。ステップ２５２での許可テストが成功した場合には、ステップ２５４は、具体的な要求が、要求する実体の権利の範囲内であるか否かを判断する。例えば、あるアプリケーションサーバ上で稼動するアプリケーションには、データを暗号化する権利を与えられていたとしても、当該アプリケーションには、あるデータを復号化する権利を与えられていない、又は、単に、いかなるデータをも復号化する権利が全く与えられていない場合がある。いずれにしても、要求が、要求する実体の権利の範囲外であるときは、その要求は、ステップ２５２で拒絶される。その要求が、要求する実体の権利の範囲内であるときは、該要求は、ステップ２５６で承認され、プロセスコントロールは、暗号化サービスを実行することを続行する。
【００３７】
図６を参照して、アプリケーションサーバ上でインスタンス生成されたアプリケーションが、標準暗号化ＡＰＩを介して遠隔の及びローカルの暗号化サービスにアクセスすることを可能とするためのコンピュータ実行方法３００について説明する。ステップ３０２及び３０４は、暗号化サービスをアプリケーションに利用可能とするための初期ステップである。ステップ３０２では、標準化されたソフトウェア暗号化ＡＰＩは、アプリケーションサーバ内に統合される。図２を参照して上でより詳細に検討したように、暗号化ＡＰＩは、特定のコンピューティング環境（JAVA、microsoftなど）のために、設計され得る。ステップ３０４では、暗号化サービスは、実行されるアプリケーションの範囲内でサービス要求がなされるように、アプリケーションサーバ上でインスタンス生成されたアプリケーションにエクスポーズされる。暗号化プロバイダーは、プログラマーに、暗号化ＡＰＩによって利用可能となる標準暗号を利用してアプリケーションソフトウェアを開発させる。
【００３８】
ステップ３０６では、アプリケーションは、暗号化機能を呼び出し、暗号化ＡＰＩは、サービスの要求を受信する。この要求は、要求が遠隔の暗号化サーバに向けてパスされるべきかを判断すべく暗号化ＡＰＩによって処理される。又は、この要求は、ローカルで実行され、若しくは、暗号化サービスの要求をパスすることを許可するのに先立って、おそらく、アプリケーションサーバが認証及び許可をローカルで実行する。要求が遠隔の暗号化サーバに送信される場合には、ステップ３０８は、該要求をマーシャルして送信するように注意を払う。好ましい実施形態では、マーシャル及び送信は、予め確立された安全なネットワーク送信チャンネルを介して、安全なネットワークインターフェースエンジンによって行われる。ステップ３１０では、アプリケーションサーバは、暗号化サービス要求に対する応答を受信し、アンマーシャルを行う。好ましい実施形態では、応答の受信及びアンマーシャルは、予め確立された安全なネットワーク送信チャンネルを介して、安全なネットワークインターフェースエンジンによって行われる。応答は、暗号化ＡＰＩに与えられ、暗号化ＡＰＩは、ステップ３１２において、要求するアプリケーションに対して、適当な形式で、応答を与える。
【００３９】
図７は、本発明のある実施形態に係る分配型の暗号化サービスコンピューティング環境４００を示す。コンピューティング環境４００は、複数の暗号キーサーバ４０２と、複数のアプリケーションサーバ４０４と、複数のクライアント４０６とを含み、これら全てはインターネット等の広域ネットワーク４０８によって双方向で連結される。暗号キーサーバ４０２及びアプリケーションサーバ４０４は、任意の適当な形式を採り得る。例えば、図１〜３を参照して上述した実施形態が適当である。
【００４０】
分配型の暗号化サービスコンピューティング環境４００の操作を実行するために、種々の方法が意図される。例えば、複数の暗号キーサーバ４０２は、独立した方法で操作され、それぞれは、独立した方法でサービスを提供し得る。また、特定の暗号キーサーバ４０２は、全てのサービスの管理者としての機能を果たし、所定のロードバランス構造に基づいて、アプリケーションサーバ４０４から他の暗号キーサーバ４０２に対して、全ての要求を命令する。
【００４１】
図８は、ネットワークセキュリティアプライアンスがネットワーク化された暗号キーサービスを提供する、システムアーキテクチャ５００のブロックダイアグラムを示す。システムアーキテクチャ５００は、複数のクライアント５０２と、インターネットなどの広域ネットワーク５０４と、ネットワークセキュリティアプライアンス５０６と、アプリケーションサーバ５０８とを含む。ネットワークセキュリティアプライアンス５０６を例外として、図８に示される他の全ての要素は、図１〜７の上の記述を参照することにより、直ちに理解することができる。
【００４２】
ネットワークセキュリティアプライアンス５０６は、アプリケーションサーバ５０８とネットワーク５０４との間に物理的に存在する。当業者は、ネットワークセキュリティアプライアンス及びそれらの一般的な操作に精通している。ネットワークセキュリティアプライアンス５０６によって提供されるサービスには、クライアント５０２及びアプリケーションサーバ５０８間での安全な送信や、アプリケーションサーバ５０８上の負担を軽減してユーザに対する応答時間を改善する安全なキャッシングや、ＳＳＬ及びＴＬＳアクセラレーションや、透過的な暗号化サービスや、クライアント認証などが含まれる。
【００４３】
図８の実施形態によると、ネットワークセキュリティアプライアンス５０６は、さらに、アプリケーションサーバ５０８に対して暗号キーサービスを提供する。ネットワークセキュリティアプライアンス５０６は、図２の暗号キーサーバ５４との参照で述べたようなソフトウェアアーキテクチャを有し得る。同様に、ネットワークセキュリティアプライアンス５０６は、図３の暗号キーサーバを参照して述べたようなハードウェアアーキテクチャ１００を有し得る。図４〜６を参照して上述した方法は、ネットワークセキュリティアプライアンス５０６及びアプリケーションサーバ５０８の操作に上手く適用し得る。
【００４４】
図９は、ネットワークアーキテクチャ６００を示すブロックダイアグラムであり、該ネットワークアーキテクチャ６００は、複数のクライアント６０２と、インターネットなどの広域ネットワーク６０４と、透過的な暗号化アプライアンス６０６と、複数のアプリケーションサーバ６０８と、ローカルエリアネットワーク６１０と、少なくとも一つの暗号キーサーバ６１２と、二つ以上のネットワークデータベース６１４と、複数のバックエンドサーバ６１６とを含む。関連する特許出願の中で述べたように、透過的な暗号化アプライアンス６０６は、ネットワーク６０４を介してサイトに入力される全ての要求を検査するように設定され、インストールされたプライベートキー１２０の一つを用いて機密データを暗号化する。透過的な暗号化アプライアンス６０６及び暗号キーサーバ６１２は、グループキーを共有するＴＥアプライアンスの所定のグループのどちらのメンバーでもあり、同じプライベートキー１２０がロードされる。複数のアプリケーションサーバ６０８は、ローカルエリアネットワーク６１０を介して暗号キーサーバ６１２から暗号化サービスを要求することができ、バックエンドサーバ６１６も同様である。
【００４５】
説明のために、クライアント６０２は、インターネット上の金融機関に登録することを前提とする。この例では、アプリケーションサーバ６０８は、ウェブサーバであり、クライアント６０２は、安全なセッションを介して、ネットワーク６０４を通じて、ウェブサーバ６０８にクレジットカード番号を提供する。ＴＥアプライアンス６０６は、クレジットカード番号が機密的な情報であると検知し、ウェブサーバ６０８がクリアな状態で機密情報を管理することがないよう、インストールされたプライベートキー１２０のうちの一つを用いて、このデータを暗号化する。同様に、クレジットカード番号は、暗号化された形式のみでネットワークデータベース６１４に記憶される。バックエンドサーバ６１６は、アカウント情報をレトリーブする（retrieve）ためにクライアントクレジットカード番号にアクセスする必要があり、暗号キーサーバ６１２に、クレジットカード番号を復号するよう要求する。この例では、バックエンドサーバ６１６は、クライアントクレジットカード番号にアクセスするのを許可され、従って、暗号キーサーバ６１２は、要求されたようにクレジットカード番号を復号する。
【００４６】
ここでの図面及び説明は、本発明の特徴を実行できる適当なコンピューティング環境の大まかな、一般的な説明を与えるものである。必要ではないが、発明の具体物は、汎用コンピュータ（例えば、サーバ又はパソコン）によって実行されるルーチンなど、コンピュータが実行可能な指示からなる一般的な内容で書かれる。当業者であれば、この発明の側面は、インターネットアプライアンスや、携帯端末や、ウェアラブルコンピュータや、携帯電話や、マルチプロセッサシステムや、マルチプロセッサを基礎とした若しくはプログラム可能な家庭用電化製品や、セットトップボックスや、ネットワークＰＣや、ミニコンピュータや、大型コンピュータなどを含む、他のコンピュータシステムの形態で実践され得ることを認識し得る。
【００４７】
この発明の側面は、以下で詳細に説明するように、コンピュータ実施可能な指示の一つ又はそれ以上を実行するために具体的にプログラムされ、設計され若しくは構築された特殊用途コンピュータ又はデータプロセッサにおいて具体化され得る。実際、ここで一般的に用いられる「コンピュータ」という用語は、任意のデータプロセッサと同様に、上述の任意の装置を指す。さらに、ここで一般的に用いられる「プロセッサ」という用語は、例えば、一つ以上の中央演算装置（ＣＰＵ）や、デジタルシグナルプロセッサ（ＤＳＰ）や、特定用途向け集積回路（ASIC）など、任意の論理処理ユニットを指す。
【００４８】
上記においては、この発明の実施形態は、実装によって異なる多くの具体的な詳細を参照して記述した。
【００４９】
このように、発明が何であるかの唯一及び排他的な表示であって出願人によって発明であると意図されたものは、後の補正を含み特許請求の範囲が公表する具体的な形式で記載された、この出願に由来する一連の特許請求の範囲である。ここに示した特許請求の範囲に含まれる用語の明示的な定義は、特許請求の範囲で用いられるかかる用語の意義を規定する。
【００５０】
従って、特許請求の範囲で明示的に列挙されない限定、要素、特性、特徴、利点、属性は、いずれにしても、そのような特許請求の範囲を限定するものではない。従って、明細書及び図面は、限定的な意味ではなく、説明に役立つ意味に考慮されるべきものである。
【００５１】
ここで参照した全ての参考文献及び米国特許又は米国出願は、参照により、ここに組み込まれる。発明の側面は、必要ならば、ここで記載された種々の特許及び出願のシステム、機能及び概念を用いることにより、さらなる発明の実施形態を与えるために、修正され得る。この発明に対するこれら及びその他の変更は、ここに記載された詳細な説明を考慮に入れてなされ得る。
【００５２】
発明のある側面は、特定の請求項の形式で以下に示されたものであるが、発明者は、あらゆる請求項の形式の発明の種々の側面を熟慮する。例えば、発明の一側面のみが、コンピュータが読取可能な媒体で具体化されるとして説明される場合には、他の側面も、同様に、コンピュータが読取可能な媒体で具体化される。従って、発明者は、発明の他の側面に対するさらなる請求項を追求するために、出願書類を提出した後に、さらに特許請求の範囲を追加する権利を留保する。
【図面の簡単な説明】
【００５３】
【図１】本発明の一実施形態に係るネットワーク化された暗号化サービスを提供するコンピュータサーバ環境を示す。
【図２】本発明の一実施形態に係るソフトウェアアーキテクチャを示す。
【図３Ａ】本発明の一実施形態に係るネットワーク化された暗号キーサーバに適したハードウェアアーキテクチャを示す。
【図３Ｂ】本発明のある実施形態に係るグループキーのk-out-of-n秘密共有をサポートする暗号化サーバに関してプライベートキーをバックアップしリストアするための操作を示す。
【図４】本発明の一実施形態に従って、ネットワーク化された暗号キーサーバが暗号化サービスを提供し得るコンピュータ実行方法のフローチャートを示す。
【図５】本発明の一側面に係る暗号化の要求を認証及び認可する分析を行うコンピュータ実行方法のフローチャートを示す。
【図６】標準暗号化ＡＰＩを介して遠隔の及びローカルの暗号化サービスにアクセスするために、アプリケーションサーバ上にアプリケーションをインスタンス生成可能なコンピュータ実行方法のフローチャートを示す。
【図７】本発明のある実施形態に係る分配型の暗号化サービスコンピューティング環境を示す。
【図８】本発明のある実施形態に係る、ネットワークセキュリティアプライアンスがネットワーク化された暗号キーサービスを提供するシステムアーキテクチャを示す。
【図９】透過的な暗号化ネットワークセキュリティアプライアンス及び暗号キーサーバを含むネットワークアーキテクチャを示すブロックダイアグラムを示す。
【図１】
2005533438.tif 000003
【図２】
2005533438.tif 000004
【図３Ａ】
2005533438.tif 000005
【図３Ｂ】
2005533438.tif 000006
【図４】
2005533438.tif 000007
【図５】
2005533438.tif 000008
【図６】
2005533438.tif 000009
【図７】
2005533438.tif 000010
【図８】
2005533438.tif 000011
【図９】
2005533438.tif 000012
【国際調査報告】
2005533438.tif 000013
2005533438.tif 000014