JP2024501752A - 鍵付きハッシュメッセージ認証コードの鍵マテリアルとしての属性ベースの暗号化鍵ユーザ認証および認可 - Google Patents
鍵付きハッシュメッセージ認証コードの鍵マテリアルとしての属性ベースの暗号化鍵ユーザ認証および認可 Download PDFInfo
- Publication number
- JP2024501752A JP2024501752A JP2023540846A JP2023540846A JP2024501752A JP 2024501752 A JP2024501752 A JP 2024501752A JP 2023540846 A JP2023540846 A JP 2023540846A JP 2023540846 A JP2023540846 A JP 2023540846A JP 2024501752 A JP2024501752 A JP 2024501752A
- Authority
- JP
- Japan
- Prior art keywords
- resource
- computer
- user
- authentication code
- protected resource
- 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.)
- Pending
Links
- 238000013475 authorization Methods 0.000 title claims abstract description 28
- 230000004044 response Effects 0.000 claims abstract description 26
- 238000000034 method Methods 0.000 claims description 56
- 238000004590 computer program Methods 0.000 claims description 17
- 238000010586 diagram Methods 0.000 abstract description 26
- 238000012545 processing Methods 0.000 description 53
- 238000004891 communication Methods 0.000 description 31
- 230000008569 process Effects 0.000 description 29
- 230000002085 persistent effect Effects 0.000 description 15
- 230000006870 function Effects 0.000 description 12
- 238000007726 management method Methods 0.000 description 9
- 238000005516 engineering process Methods 0.000 description 5
- 230000003287 optical effect Effects 0.000 description 5
- 230000008520 organization Effects 0.000 description 5
- 230000005540 biological transmission Effects 0.000 description 4
- 239000004744 fabric Substances 0.000 description 4
- 239000000835 fiber Substances 0.000 description 4
- 230000004048 modification Effects 0.000 description 3
- 238000012546 transfer Methods 0.000 description 3
- 230000001052 transient effect Effects 0.000 description 3
- 230000003993 interaction Effects 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 238000011176 pooling Methods 0.000 description 2
- 230000001902 propagating effect Effects 0.000 description 2
- 238000012384 transportation and delivery Methods 0.000 description 2
- 238000012795 verification Methods 0.000 description 2
- RYGMFSIKBFXOCR-UHFFFAOYSA-N Copper Chemical compound [Cu] RYGMFSIKBFXOCR-UHFFFAOYSA-N 0.000 description 1
- 230000002411 adverse Effects 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 230000009172 bursting Effects 0.000 description 1
- 229910052802 copper Inorganic materials 0.000 description 1
- 239000010949 copper Substances 0.000 description 1
- 230000008878 coupling Effects 0.000 description 1
- 238000010168 coupling process Methods 0.000 description 1
- 238000005859 coupling reaction Methods 0.000 description 1
- 238000007405 data analysis Methods 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000007774 longterm Effects 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 238000005259 measurement Methods 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 238000013439 planning Methods 0.000 description 1
- 230000000644 propagated effect Effects 0.000 description 1
- 230000002441 reversible effect Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 239000004984 smart glass Substances 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 239000000126 substance Substances 0.000 description 1
- 210000003813 thumb Anatomy 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3236—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
- H04L9/3242—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions involving keyed hash functions, e.g. message authentication codes [MACs], CBC-MAC or HMAC
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/088—Usage controlling of secret information, e.g. techniques for restricting cryptographic keys to pre-authorized uses, different access levels, validity of crypto-period, different key- or password length, or different strong and weak cryptographic algorithms
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/08—Network architectures or network communication protocols for network security for authentication of entities
- H04L63/083—Network architectures or network communication protocols for network security for authentication of entities using passwords
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/04—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
- H04L63/0428—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/22—Parsing or analysis of headers
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0816—Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
- H04L9/085—Secret sharing or secret splitting, e.g. threshold schemes
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0894—Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3247—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Power Engineering (AREA)
- Storage Device Security (AREA)
- Computer And Data Communications (AREA)
Abstract
リソースユーザ認証及び認可が提供される。認証コードは、ネットワークを介してリソースユーザのクライアント装置から受信した保護されたリソースアクセス要求のヘッダフィールドのセットに対する鍵付きハッシュメッセージ認証コードデジタル署名の秘密鍵として、取得された属性ベースの暗号化ユーザ鍵を使用することに基づいて生成される。生成された認証コードは、保護されたリソースアクセス要求の埋め込まれたヘッダフィールド内で読み取られた認証コードと比較される。生成された認証コードと、埋め込まれたヘッダフィールド内で読み取られた認証コードとの間に一致が存在するかどうかが判定される。一致が存在すると判定したことに応答して、リソースユーザが認証される。リソースユーザの認証に応答して、リソースユーザに対応する取得された属性ベースの暗号化ユーザ鍵を使用して、保護されたリソースアクセス要求に対応する暗号化され保護されたリソースの復号が実行される。【選択図】図8A
Description
本開示は、一般に、ユーザ認証および認可に関し、より具体的には、リソースユーザに対応する属性ベースの暗号化ユーザ鍵を、ユーザ認証および認可のためにリソースユーザによって行われる保護されたリソースアクセス要求のヘッダフィールドのセットに対する鍵付きハッシュメッセージ認証コードデジタル署名の秘密鍵として使用することに関する。
ユーザ認証および認可は、ネットワークセキュリティの重要な構成要素である。例えば、ユーザのアイデンティティを認証することは、ユーザによる安全なユーザアカウントへのアクセス、安全な取引の実行、安全なネットワークリソースへのアクセスなどの制御を行うための最初のステップである。認証は、ユーザの身元を確認することを意味し、認可は、ユーザに許可を与えることを意味する。つまり、認証はユーザが誰であるかを確認するプロセスであり、認可はユーザが何を実行し、何にアクセスすることができるかを確認するプロセスである。認可は、安全または保護されたリソースへのアクセス権または特権を指定する機能であり、アクセス制御と関連している。認可は、アクセス制御ポリシーによって定義される。認可操作の間、コンピュータシステムは、アクセス制御ポリシーを使用して、認証されたユーザからの保護されたリソースへのアクセス要求が承認されるか(すなわち、アクセスが許可されるか)、不承認とされるか(すなわち、アクセスが拒否されるか)を判定する。保護されたリソースには、例えば、秘密情報または機密情報を含むデータ、ファイル、文書、ソフトウェアアプリケーションおよびプログラム、ストレージ、プロセッサ、メモリ、ネットワークリソースなどを含めることができる。論理的には、認証は認可に先行する。
ネットワークセキュリティは、ネットワークにアクセス可能な保護されたリソースへの無許可のアクセス、誤用、変更、または拒否を防止および監視するために採用されるこれらのアクセス制御ポリシーからなる。通常、ユーザは、ユーザ名およびパスワード、またはその他の認証情報などの識別子を選択するか、割り当てられ、それにより、ユーザの権限内でネットワークにアクセス可能な保護されたリソースにユーザがアクセスできるようにする。例えば、認証されると、ファイアウォールは、各ユーザがネットワーク上のどの保護されたリソースにアクセスすることができるかを定義するアクセス制御ポリシーを実施する。
1つの例示的な実施形態によれば、リソースユーザ認証および認可のためのコンピュータ実装方法が提供される。コンピュータは、ネットワークを介してリソースユーザのクライアント装置から受信した保護されたリソースアクセス要求のヘッダフィールドのセットに対する鍵付きハッシュメッセージ認証コードデジタル署名の秘密鍵として、取得された属性ベースの暗号化ユーザ鍵を使用することに基づいて、認証コードを生成する。コンピュータは、生成された認証コードと、保護されたリソースアクセス要求の埋め込まれたヘッダフィールド内で読み取られた認証コードとを比較する。コンピュータは、生成された認証コードと、埋め込まれたヘッダフィールド内で読み取られた認証コードとの間に一致が存在するかどうかを判定する。生成された認証コードと、埋め込まれたヘッダフィールド内で読み取られた認証コードとの間に一致が存在するとコンピュータが判定したことに応答して、コンピュータは、リソースユーザを認証する。コンピュータは、リソースユーザの認証に応答して、リソースユーザに対応する取得された属性ベースの暗号化ユーザ鍵を使用して、保護されたリソースアクセス要求に対応する暗号化され保護されたリソースの復号を実行する。他の例示的な実施形態によれば、リソースユーザ認証および認可のためのコンピュータシステムおよびコンピュータプログラム製品が提供される。
本発明は、任意の可能な技術詳細レベルで統合されたシステム、方法もしくはコンピュータプログラム製品またはそれらの組み合せとすることができる。コンピュータプログラム製品は、プロセッサに本発明の態様を実行させるためのコンピュータ可読プログラム命令を記憶したコンピュータ可読記憶媒体を含んでよい。
コンピュータ可読記憶媒体は、命令実行装置によって使用される命令を保持し、記憶することができる有形の装置とすることができる。コンピュータ可読記憶媒体は、一例として、電子記憶装置、磁気記憶装置、光学記憶装置、電磁記憶装置、半導体記憶装置またはこれらの適切な組み合わせであってよいが、これらに限定されない。コンピュータ可読記憶媒体のより具体的な一例としては、ポータブルコンピュータディスケット、ハードディスク、RAM、ROM、EPROM(またはフラッシュメモリ)、SRAM、CD-ROM、DVD、メモリスティック、フロッピーディスク、パンチカードまたは溝内の***構造などに命令を記録した機械的に符号化された装置、およびこれらの適切な組み合せが挙げられる。本明細書で使用されるコンピュータ可読記憶装置は、電波もしくは他の自由に伝播する電磁波、導波管もしくは他の伝送媒体を介して伝播する電磁波(例えば、光ファイバケーブルを通過する光パルス)、またはワイヤを介して送信される電気信号のような、一過性の信号それ自体として解釈されるべきではない。
本明細書に記載のコンピュータ可読プログラム命令は、コンピュータ可読記憶媒体からそれぞれのコンピューティング/処理装置に、または、ネットワーク(例えば、インターネット、ローカルエリアネットワーク、ワイドエリアネットワーク、もしくはワイヤレスネットワークまたはその組み合わせ)を介して外部コンピュータまたは外部記憶装置にダウンロードすることができる。ネットワークは、銅線伝送ケーブル、光伝送ファイバー、無線伝送、ルーター、ファイアウォール、スイッチ、ゲートウェイコンピュータ、もしくはエッジサーバーまたはその組み合わせで構成される。各コンピューティング/処理装置のネットワークアダプタカードまたはネットワークインターフェースは、ネットワークからコンピュータ可読プログラム命令を受信し、それぞれのコンピューティング/処理装置内のコンピュータ可読記憶媒体に格納するためにコンピュータ可読プログラム命令を転送する。
本発明の動作を実行するためのコンピュータ可読プログラム命令は、アセンブラ命令、命令セットアーキテクチャ(ISA)命令、機械命令、機械依存命令、マイクロコード、ファームウェア命令、状態設定データ、統合回路のための構成データ、またはSmalltalk、C++などのオブジェクト指向プログラミング言語と「C」プログラミング言語や類似のプログラミング言語などの手続き型プログラミング言語を含む、1つ以上のプログラミング言語の任意の組み合わせで記述されたソースコードまたはオブジェクトコードのいずれかであってよい。コンピュータ可読プログラム命令は、スタンドアロンソフトウェアパッケージとして、完全にユーザのコンピュータ上で、または部分的にユーザのコンピュータ上で実行可能である。あるいは、部分的にユーザのコンピュータ上でかつ部分的にリモートコンピュータ上で、または完全にリモートコンピュータまたはサーバ上で実行可能である。後者のシナリオでは、リモートコンピュータは、ローカルエリアネットワーク(LAN)またはワイドエリアネットワーク(WAN)を含む任意のタイプのネットワークを介してユーザのコンピュータに接続され、または(例えば、インターネットサービスプロバイダーを使用したインターネット経由で)外部コンピュータに接続されてよい。いくつかの実施形態では、例えば、プログラマブルロジック回路、フィールドプログラマブルゲートアレイ(FPGA)、またはプログラマブルロジックアレイ(PLA)を含む電子回路は、本発明の態様を実行するために、コンピュータ可読プログラム命令の状態情報を利用してパーソナライズすることにより、コンピュータ可読プログラム命令を実行することができる。
本発明の態様は、本発明の実施形態による方法、装置(システム)、およびコンピュータプログラム製品のフローチャート図もしくはブロック図またはその両方を参照して本明細書に記載されている。フローチャート図もしくはブロック図またはその両方の各ブロック、およびフローチャート図もしくはブロック図またはその両方のブロックの組み合わせは、コンピュータ可読プログラム命令によって実装できることが理解されよう。
これらのコンピュータ可読プログラム命令は、コンピュータまたは他のプログラム可能なデータ処理装置のプロセッサを介して実行される命令がフローチャートもしくはブロック図またはその両方の1つまたは複数のブロックで指定された機能/動作を実装するための手段を生成するように、機械を生成するためにコンピュータのプロセッサまたは他のプログラム可能なデータ処理装置に提供されることができる。これらのコンピュータ可読プログラム命令はまた、フローチャートもしくはブロック図またはその両方の1つまたは複数のブロックで指定された機能/行為の態様を実装する命令を含む生成品の1つを命令が記憶されたコンピュータ可読プログラム命令が構成するように、コンピュータ、プログラム可能なデータ処理装置、もしくは特定の方法で機能する他のデバイスまたはその組み合わせに接続可能なコンピュータ可読記憶媒体の中に記憶されることができる。
コンピュータ、他のプログラム可能な装置、または他のデバイス上でフローチャートもしくはブロック図またはその両方の1つまたは複数のブロックで指定された機能/行為を実行する命令のように、コンピュータ可読プログラム命令はまた、コンピュータ、他のプログラム可能なデータ処理装置、または他のデバイスにロードされ、コンピュータ、他のプログラム可能な装置、または他のデバイス上で一連の操作ステップを実行し、コンピュータ実装された過程を生成することができる。
図中のフローチャートおよびブロック図は、本発明の様々な実施形態によるシステム、方法、およびコンピュータプログラム製品が実行可能な実装の構成、機能、および動作を示している。これに関して、フローチャートまたはブロック図の各ブロックは、モジュール、セグメント、または命令の一部を表してよく、これは、指定された論理機能を実装するための1つまたは複数の実行可能命令を構成する。いくつかの代替の実施形態では、ブロックに示されている機能は、図に示されている順序とは異なる場合がある。例えば、連続して示される2つのブロックは、実際には、1つのステップとして達成される場合があり、同時に、実質的に同時に、部分的または全体的に時間的に重複する方法で実行されるか、またはブロックは、関係する機能に応じて逆の順序で実行される場合がある。ブロック図もしくはフローチャート図またはその両方の各ブロック、およびブロック図もしくはフローチャート図またはその両方のブロックの組み合わせは、指定された機能または動作を実行する、または特別な目的のハードウェアとコンピュータ命令の組み合わせを実行する特別な目的のハードウェアベースのシステムによって実装できることにも留意されたい。
ここで図を参照し、特に図1~5を参照すると、例示的な実施形態が実施され得るデータ処理環境の図が提供される。図1~5は、例として意図されているだけであり、異なる実施形態が実装され得る環境に関して、いかなる限定も主張または暗示することを意図していないことを理解されたい。描かれた環境に対する多くの変更がなされ得る。
図1は、例示的な実施形態が実装され得るデータ処理システムのネットワークの絵図を示す。ネットワークデータ処理システム100は、例示的な実施形態が実装され得るコンピュータ、データ処理システム、および他のデバイスのネットワークである。ネットワークデータ処理システム100は、ネットワーク102を含み、ネットワーク102はネットワークデータ処理システム100内で一緒に接続されたコンピュータ、データ処理システム、および他のデバイスの間の通信リンクを提供するために使用される媒体である。ネットワーク102は、例えば、有線通信リンク、無線通信リンク、光ファイバーケーブルなどの接続を含み得る。
描かれた例では、サーバ104とサーバ106は、ストレージ108とともにネットワーク102に接続する。サーバ104およびサーバ106は、例えば、ネットワーク102への高速接続を有するリソースサーバコンピュータであってもよい。さらに、サーバ104およびサーバ106は、クライアント装置による保護されたリソース110へのアクセス管理サービスを提供することができる。保護されたリソース110は、サーバ104およびサーバ106によってホストされる保護されたリソースのセットを表す。保護されたリソース110は、無許可のユーザアクセスから安全なまたは保護された任意のタイプのリソースを表すことができる。例えば、保護されたリソース110は、制限されたアクセスデータ、ファイル、文書、ソフトウェアアプリケーションおよびプログラム、プロセッサ、メモリ、ストレージ、ネットワークリソースなどのうちの少なくとも1つを含む。さらに、保護されたリソース110は、セキュリティを高めるために暗号化され、または保護されたリソース110に対応するメタデータが暗号化される。
また、サーバ104およびサーバ106はそれぞれ、保護されたリソースアクセス管理サービスプロバイダによって管理される1または複数のクラウド環境における複数のコンピューティングノードを表すことができることに留意されたい。あるいは、サーバ104およびサーバ106はそれぞれ、サービスをホストする1または複数のデータセンターにおけるサーバのクラスタを表すことがある。さらに、サーバ104およびサーバ106は、例えば、アプリケーション、プログラム、ソフトウェアアップデート、ソフトウェア修正、ファイル、データなどの情報をクライアント装置に提供してもよい。
クライアント112、クライアント114、およびクライアント116もネットワーク102に接続する。クライアント112、114、および116は、サーバ104およびサーバ106のクライアント装置である。この例では、クライアント112、114、および116は、ネットワーク102への有線通信リンクを有するデスクトップまたはパーソナルコンピュータとして示されている。しかしながら、クライアント112、114、および116は例示に過ぎず、例えば、ネットワーク102への有線または無線通信リンクを有するラップトップコンピュータ、ハンドヘルドコンピュータ、スマートフォン、スマートウォッチ、スマートテレビ、スマートグラス、スマート家電、ゲーム装置などの他のタイプのデータ処理システムを表すことができることに留意されたい。クライアント112、114、および116のユーザは、サーバ104もしくはサーバ106またはその両方がユーザを認証し、次にユーザが保護されたリソース110へのアクセスを許可されているかどうかを判定する際に、クライアント112、114、および116を利用して保護されたリソース110にアクセスおよび利用することができる。
ストレージ108は、構造化フォーマットまたは非構造化フォーマットで任意のタイプのデータを格納することができるネットワーク記憶装置である。さらに、ストレージ108は、複数のネットワーク記憶装置を表すことができる。さらに、ストレージ108は、複数の異なるクライアント装置の識別子およびネットワークアドレス、複数の異なるリソースユーザの識別子、保護されたリソースのアクセス制御ポリシーなどを記憶してもよい。
さらに、ネットワークデータ処理システム100は、任意の数の追加のサーバ、クライアント、記憶装置、および図示しない他のデバイスを含むことができることに留意されたい。ネットワークデータ処理システム100に位置するプログラムコードは、コンピュータ可読記憶媒体に格納され、使用のためにコンピュータまたは他のデータ処理装置にダウンロードされる場合がある。例えば、プログラムコードは、サーバ104上のコンピュータ可読記憶媒体に格納され、クライアント112で使用するためにネットワーク102を介してクライアント112にダウンロードされてもよい。
描かれた例では、ネットワークデータ処理システム100は、例えば、インターネット、イントラネット、ワイドエリアネットワーク(WAN)、ローカルエリアネットワーク(LAN)、電気通信ネットワーク、またはそれらの任意の組み合わせなどの、多数の異なるタイプの通信ネットワークとして実装され得る。図1は、例示としてのみ意図されており、異なる例示的な実施形態に対するアーキテクチャ上の制限として意図されていない。
本明細書において、項目に関して使用される場合、「多数の」は、項目のうちの1または複数を意味する。例えば、「多数の異なるタイプの通信ネットワーク」は、1または複数の異なるタイプの通信ネットワークを意味する。同様に、項目に関して使用される場合、「のセット」は、1または複数の項目を意味する。
さらに、用語「少なくとも1つ」は、項目のリストと共に使用される場合、リストされた項目の1または複数の異なる組み合わせが使用されてもよく、リスト内の各項目の1つだけが必要であってもよいことを意味する。言い換えれば、「少なくとも1つ」は、リストから任意の項目の組み合わせと数を使用することができるが、リスト内のすべての項目が必要なわけではないことを意味する。項目は、特定の物体、物、またはカテゴリであってもよい。
例えば、限定するものではないが、「項目A、項目B、または項目Cのうちの少なくとも1つ」は、項目A、項目Aおよび項目B、または項目Bを含み得る。この例は、項目A、項目B、および項目Cまたは項目Bおよび項目Cも含み得る。もちろん、これらの項目の任意の組み合わせが存在し得る。いくつかの例示的な例では、「少なくとも1つの」は、例えば、限定されないが、項目Aの2つ、項目Bの1つ、および項目Cの10個、項目Bの4つおよび項目Cの7つ、または他の適切な組合せであり得る。
ここで図2を参照すると、例示的な実施形態によるデータ処理システムの図が描かれている。データ処理システム200は、図1のサーバ104などのコンピュータの一例であり、例示的な実施形態の保護されたリソースアクセス管理プロセスを実装するコンピュータ可読プログラムコードまたは命令が配置されることがある。この例では、データ処理システム200は、プロセッサユニット204、メモリ206、永続ストレージ208、通信ユニット210、入力/出力(I/O)ユニット212、およびディスプレイ214間の通信を提供する通信ファブリック202を含む。
プロセッサユニット204は、メモリ206にロードされ得るソフトウェアアプリケーションおよびプログラムのための命令を実行する役割を果たす。プロセッサユニット204は、特定の実装に依存して、1または複数のハードウェアプロセッサデバイスのセットであってもよいし、マルチコアプロセッサであってもよい。
メモリ206および永続ストレージ208は、記憶装置216の例である。本明細書で使用されるように、コンピュータ可読記憶装置またはコンピュータ可読記憶媒体は、例えば、限定されないが、データ、機能形態のコンピュータ可読プログラムコード、もしくは他の適切な情報、またはその組み合わせなどの情報を一過性ベースまたは持続性ベースのいずれかで記憶することができるハードウェアの任意の部分である。さらに、コンピュータ可読記憶装置またはコンピュータ可読記憶媒体は、一過性の信号のような伝搬媒体を除外する。メモリ206は、これらの例では、例えば、ランダムアクセスメモリ(RAM)、またはフラッシュメモリなどの任意の他の適切な揮発性または不揮発性の記憶装置であってもよい。永続ストレージ208は、特定の実装に依存して、様々な形態をとることができる。例えば、永続ストレージ208は、1または複数の装置を含むことができる。例えば、永続ストレージ208は、ディスクドライブ、ソリッドステートドライブ、書き換え可能な光ディスク、書き換え可能な磁気テープ、または上記のいくつかの組み合わせであってもよい。永続ストレージ208によって使用される媒体は、取り外し可能であってよい。例えば、リムーバブルハードドライブが永続ストレージ208に使用されることがある。
この例では、永続ストレージ208は、保護されたリソースアクセスマネージャ218を記憶する。しかしながら、保護されたリソースアクセスマネージャ218が永続ストレージ208に常駐するように図示されているにもかかわらず、代替の例示的実施形態では、保護されたリソースアクセスマネージャ218はデータ処理システム200の別のコンポーネントであり得ることに留意されたい。例えば、保護されたリソースアクセスマネージャ218は、通信ファブリック202に結合されたハードウェアコンポーネント、またはハードウェアおよびソフトウェアコンポーネントの組合せであってもよい。別の代替的な例示的実施形態では、保護されたリソースアクセスマネージャ218のコンポーネントの第1のセットは、データ処理システム200に配置されてよく、保護されたリソースアクセスマネージャ218のコンポーネントの第2のセットは、例えば、図1のサーバ106などの第2のデータ処理システムに配置されてもよい。
保護されたリソースアクセスマネージャ218は、例えば、図1の保護されたリソース110などの保護されたリソースのセットへのリソースユーザアクセスを制御する。保護されたリソースアクセスマネージャ218は、属性ベースの暗号化ユーザ鍵を秘密暗号鍵として利用し、保護されたリソースのセット内の特定の保護されたリソースへのアクセス権を要求するリソースユーザによってなされる保護されたリソースアクセス要求のヘッダフィールドのセットに対する鍵付きハッシュメッセージ認証コードデジタル署名を生成する。保護されたリソースアクセスマネージャ218は、生成された認証コードデジタル署名と、リソースユーザを認証するために保護されたリソースアクセス要求の埋め込まれたヘッダフィールドにおいて受信された認証コードデジタル署名とを比較する。認証コードデジタル署名の間に一致が存在すると判定することによるリソースユーザの認証の際に、保護されたリソースアクセスマネージャ218は、要求され保護されたリソースまたは要求され保護されたリソースに対応するメタデータを復号するために、保護されたリソースアクセス要求の埋め込まれたヘッダフィールドで受信した認証コードデジタル署名の生成に使用した同じ属性ベースの暗号化ユーザ鍵を利用する。その特定の属性ベースの暗号化ユーザ鍵を使用して復号が成功した場合、保護されたリソースアクセスマネージャ218は、リソースユーザがその特定の保護されたリソースにアクセスする権限を有していると判定し、アクセスを許可する。
その結果、データ処理システム200は、データ処理システム200内の保護されたリソースアクセスマネージャ218が、ネットワーク上の保護されたリソースへのアクセス制御およびセキュリティのレベルの向上を可能にする特別な目的のコンピュータシステムとして動作する。特に、保護されたリソースアクセスマネージャ218は、保護されたリソースアクセスマネージャ218を有しない現在利用可能な一般的なコンピュータシステムと比較して、データ処理システム200を特別な目的のコンピュータシステムに変換する。
通信ユニット210は、この例では、図1のネットワーク102などのネットワークを介して、他のコンピュータ、データ処理システム、およびデバイスとの通信を提供する。通信ユニット210は、物理的通信リンクおよび無線通信リンクの両方の使用を通じて通信を提供することができる。物理的通信リンクは、例えば、データ処理システム200の物理的通信リンクを確立するために、ワイヤ、ケーブル、ユニバーサルシリアルバス、または任意の他の物理技術を利用することができる。無線通信リンクは、例えば、短波、高周波、超高周波、マイクロ波、ワイヤレスフィデリティ(wi-fi)、Bluetooth(登録商標)技術、移動通信用グローバルシステム(GSM)、符号分割多重接続(CDMA)、第2世代(2G)、第3世代(3G)、第4世代(4G)、4Gロングタームエヴォリューション(LTE)、LTE Advanced、第5世代(5G)、または任意の他の無線通信技術または標準を利用して、データ処理システム200の無線通信リンクを構築することができる。
入力/出力ユニット212は、データ処理システム200に接続され得る他のデバイスとのデータの入力および出力を可能にする。例えば、入力/出力ユニット212は、キーパッド、キーボード、マウス、マイクロフォン、もしくは他の何らかの適切な入力デバイス、またはその組み合わせを介したユーザ入力のための接続を提供し得る。ディスプレイ214は、ユーザに情報を表示する機構を提供し、例えば、ユーザがユーザインタフェースまたは入力データを介して画面上の選択を行うことを可能にするためのタッチスクリーン機能を含むことができる。
オペレーティングシステム、アプリケーション、もしくはプログラム、またはその組み合わせのための命令は、通信ファブリック202を介してプロセッサユニット204と通信している記憶装置216に配置されることがある。この例示的な例では、命令は、永続ストレージ208上の機能的な形態である。これらの命令は、プロセッサユニット204による実行のためにメモリ206にロードされ得る。異なる実施形態のプロセスは、メモリ206などのメモリに配置され得るコンピュータ実装命令を使用して、プロセッサユニット204によって実行されてもよい。これらのプログラム命令は、プロセッサユニット204内のプロセッサによって読み取られ実行され得るプログラムコード、コンピュータ使用可能プログラムコード、またはコンピュータ可読プログラムコードと称される。プログラム命令は、異なる実施形態では、メモリ206または永続ストレージ208などの異なる物理的なコンピュータ可読記憶装置上に実装されることがある。
プログラムコード220は、選択的に取り外し可能であり、プロセッサユニット204による実行のためにデータ処理システム200にロードまたは転送され得るコンピュータ可読媒体222上に機能形態で配置される。プログラムコード220およびコンピュータ可読媒体222は、コンピュータプログラム製品224を形成する。一例では、コンピュータ可読媒体222は、コンピュータ可読記憶媒体226またはコンピュータ可読信号媒体228であり得る。
これらの例示的な例では、コンピュータ可読記憶媒体226は、プログラムコード220を伝播または伝送する媒体ではなく、プログラムコード220を記憶するために使用される物理的または有形記憶装置である。コンピュータ可読記憶媒体226は、例えば、永続ストレージ208の一部であるハードドライブなどの記憶装置上に転送するために永続ストレージ208の一部であるドライブやほかの装置に挿入または配置される光ディスクまたは磁気ディスクを含むことができる。コンピュータ可読記憶媒体226はまた、データ処理システム200に接続されるハードドライブ、サムドライブ、またはフラッシュメモリなどの永続ストレージの形態をとることもできる。
あるいは、プログラムコード220は、コンピュータ可読信号媒体228を使用してデータ処理システム200に転送されてもよい。コンピュータ可読信号媒体228は、例えば、プログラムコード220を含む伝搬データ信号であってもよい。例えば、コンピュータ可読信号媒体228は、電磁信号、光信号、または任意の他の適切なタイプの信号であってもよい。これらの信号は、無線通信リンク、光ファイバケーブル、同軸ケーブル、ワイヤ、または任意の他の適切なタイプの通信リンクなどの通信リンクを介して伝送されてもよい。
さらに、本明細書で使用する場合、「コンピュータ可読媒体222」は単数または複数であり得る。例えば、プログラムコード220は、単一の記憶装置またはシステムの形態でコンピュータ可読媒体222に配置することができる。別の例では、プログラムコード220は、複数のデータ処理システムに分散されたコンピュータ可読媒体222に配置することができる。言い換えれば、プログラムコード220の一部の命令は1つのデータ処理システムに配置され、プログラムコード220の他の命令は1または複数の他のデータ処理システムに配置されることが可能である。例えば、プログラムコード220の一部は、サーバコンピュータ内のコンピュータ可読媒体222に配置することができ、一方、プログラムコード220の別の一部は、クライアントコンピュータのセットに配置されるコンピュータ可読媒体222に配置することができる。
データ処理システム200について例示された異なる構成要素は、異なる実施形態が実装され得る方法に対するアーキテクチャ上の制限を提供することを意味しない。いくつかの例示的な例では、構成要素のうちの1または複数が、別の構成要素に組み込まれるか、さもなければ、その一部を形成することができる。例えば、メモリ206、またはその一部は、いくつかの例示的な例では、プロセッサユニット204に組み込まれることがある。異なる例示的な実施形態は、データ処理システム200について例示された構成要素に加えて、またはその代わりに構成要素を含むデータ処理システムで実施することができる。図2に示された他の構成要素は、示された例示的な例から変化させることができる。異なる実施形態は、プログラムコード220を実行することができる任意のハードウェアデバイスまたはシステムを使用して実装することができる。
別の例では、通信ファブリック202を実装するためにバスシステムを使用することができ、システムバスまたは入力/出力バスなどの1または複数のバスで構成することができる。もちろん、バスシステムは、バスシステムに接続された異なるコンポーネントまたはデバイス間のデータの転送を提供する任意の適切なタイプのアーキテクチャを使用して実装されてもよい。
本開示はクラウドコンピューティングに関する詳細な説明を含むが、本明細書に記載した教示の実装形態はクラウドコンピューティング環境に限定されない。むしろ、説明される実施形態は、現在公知のまたは将来開発される他の任意の種類のコンピュータ環境と共に実施することができる。クラウドコンピューティングは、設定可能なコンピューティングリソースの共有プール(例えばネットワーク、ネットワーク帯域幅、サーバ、処理、メモリ、記憶装置、アプリケーション、仮想マシンおよびサービス)へ、簡便かつオンデマンドのネットワークアクセスを可能にするためのサービス提供のモデルであり、リソースは、最小限の管理労力または最小限のサービスプロバイダとのやり取りによって速やかに準備(provision)およびリリースできるものである。このクラウドモデルは、少なくとも5つの特性、少なくとも3つのサービスモデル、および少なくとも4つの実装モデルを含むことがある。
この特性には、例えば、オンデマンド・セルフサービス、ブロード・ネットワークアクセス、リソースプーリング、迅速な柔軟性、および測定されるサービスなどが含まれる場合がある。オンデマンド・セルフサービスは、クラウドの消費者が、サービスプロバイダとの人的な対話を必要することなく、必要に応じて自動的に、サーバ時間やネットワークストレージなどのコンピューティング能力を一方的に準備することを可能にする。ブロード・ネットワークアクセスは、ネットワーク経由で利用可能であり、また、標準的なメカニズムを介してアクセスできるコンピューティング能力を提供する。それにより、異種のシンまたはシッククライアントプラットフォーム(例えば、携帯電話、ラップトップ、パーソナルデジタルアシスタント)による利用が促進される。リソースプーリングは、プロバイダのコンピューティングリソースがプールされ、マルチテナントモデルを利用して複数の消費者に提供されることを可能にする。様々な物理リソースおよび仮想リソースが、需要に応じて動的に割り当ておよび再割り当てされる。一般に消費者は、提供されたリソースの正確な位置を管理または把握していないため、位置非依存(location independence)の感覚がある。ただし消費者は、より高い抽象レベル(例えば、国、州、データセンタ)では場所を特定可能な場合がある。迅速な柔軟性(elasticity)は、迅速かつ柔軟に準備することができるコンピューティング能力を提供し、場合によっては自動的に、直ちにスケールアウトし、また、速やかにリリースされて直ちにスケールインすることができる。消費者にとって、準備に利用可能なコンピューティング能力は無制限に見える場合が多く、任意の時間に任意の数量で購入することができる。測定されるサービスは、クラウドシステムが、サービスの種類(例えば、ストレージ、処理、帯域幅、アクティブユーザアカウント)に適したある程度の抽象化レベルでの測定機能を活用して、リソースの使用を自動的に制御し最適化することを可能にする。リソース使用量を監視、制御、および報告して、利用されるサービスのプロバイダおよび消費者の両方に透明性を提供することができる。
サービスモデルはサービスとしてのソフトウェア(SaaS)、サービスとしてのプラットフォーム(PaaS)、およびサービスとしてのインフラストラクチャ(IaaS)を含み得る。サービスとしてのソフトウェアは、クラウドインフラストラクチャ上で動作するプロバイダのアプリケーションを利用するために消費者に提供される機能である。当該そのアプリケーションは、ウェブブラウザ(例えばウェブメール)などのシンクライアントインタフェースを介して、各種のクライアント装置からアクセスできる。消費者は、ネットワーク、サーバ、オペレーティングシステム、ストレージや、個別のアプリケーション機能さえも含めて、基礎となるクラウドインフラストラクチャの管理や制御は行わない。ただし、ユーザ固有の限られたアプリケーション構成の設定はその限りではない。サービスとしてのプラットフォームは、プロバイダによってサポートされるプログラム言語およびツールを用いて、消費者が作成または取得したアプリケーションを、クラウドインフラストラクチャに展開(deploy)するために消費者に提供される機能である。消費者は、ネットワーク、サーバ、オペレーティングシステム、ストレージを含む、基礎となるクラウドインフラストラクチャの管理や制御は行わないが、展開されたアプリケーションを制御でき、かつ場合によってはそのホスティング環境の構成も制御できる。サービスとしてのインフラストラクチャは、オペレーティングシステムやアプリケーションを含み得る任意のソフトウェアを消費者が展開および実行可能な、プロセッサ、ストレージ、ネットワーク、および他の基本的なコンピューティングリソースを準備するための消費者に提供される機能である。消費者は、基礎となるクラウドインフラストラクチャの管理や制御は行わないが、オペレーティングシステム、ストレージ、および展開されたアプリケーションを制御でき、かつ場合によっては一部のネットワークコンポーネント(例えばホストファイアウォール)を部分的に制御できる。
展開モデルは、例えば、プライベートクラウド、コミュニティクラウド、パブリッククラウド、およびハイブリッドクラウドを含み得る。プライベートクラウドは、特定の組織専用で運用されるクラウドインフラストラクチャである。プライベートクラウドは、当該組織または第三者によって管理することができ、オンプレミスまたはオフプレミスで存在することができる。コミュニティクラウドは、複数の組織によって共有され、共通の関心事(例えば、ミッション、セキュリティ要件、ポリシー、およびコンプライアンス)を持つ特定のコミュニティをサポートするクラウドインフラストラクチャである。コミュニティクラウドは、当該組織または第三者によって管理することができ、オンプレミスまたはオフプレミスで存在することができる。パブリッククラウドは、不特定多数の人々や大規模な業界団体に提供され、クラウドサービスを販売する組織によって所有されるクラウドインフラストラクチャである。ハイブリッドクラウドは、2つ以上のクラウドモデル(プライベート、コミュニティまたはパブリック)を組み合わせたクラウドインフラストラクチャである。それぞれのモデル固有の実体は保持するが、標準または個別の技術によってバインドされ、データとアプリケーションの可搬性(例えば、クラウド間の負荷分散のためのクラウドバースティング)を実現する。
クラウドコンピューティング環境は、ステートレス性(statelessness)、低結合性(low coupling)、モジュール性(modularity)および意味論的相互運用性(semantic interoperability)に重点を置いたサービス指向型環境である。クラウドコンピューティングの中核にあるのは、相互接続されたノードのネットワークを含むインフラストラクチャである。
ここで図3を参照すると、例示的な実施形態が実装され得るクラウドコンピューティング環境を例示する図が描かれている。この例示的な例では、クラウドコンピューティング環境300は1つまたは複数のクラウドコンピューティングノード310を含む。これらに対して、クラウド消費者が使用するローカルコンピュータ装置(例えば、パーソナルデジタルアシスタントもしくは携帯電話320A、デスクトップコンピュータ320B、ラップトップコンピュータ320C、もしくは自動車コンピュータシステム320Nまたはこれらの組み合わせなど)は通信を行うことができる。クラウドコンピューティングノード310は、例えば、図1におけるサーバ104およびサーバ106であってよい。ローカルコンピュータ装置320A~320Nは、例えば、図1におけるクライアント112~116であってよい。
クラウドコンピューティングノード310は、互いに通信することができ、例えば、上述のプライベート、コミュニティ、パブリックもしくはハイブリッドクラウドまたはこれらの組み合わせなど、1つまたは複数のネットワークにおいて、物理的または仮想的にグループ化することができる。これにより、クラウドコンピューティング環境300は、サービスとしてのインフラストラクチャ、プラットフォームもしくはソフトウェアまたはこれらの組み合わせを提供することができ、クラウド消費者はこれらについて、ローカルコンピュータ装置320A~320Nのようなローカルコンピュータ装置上にリソースを維持する必要がない。なお、ローカルコンピュータ装置320A~320Nの種類は例示に過ぎず、クラウドコンピューティングノード310およびクラウドコンピューティング環境300は、任意の種類のネットワークもしくはネットワークアドレス指定可能接続(例えば、ウェブブラウザの使用)またはその両方を介して、任意の種類の電子装置と通信可能であることを理解されたい。
図4を参照すると、例示的な実施形態による例示的な抽象化モデルレイヤが示されている。この例示的な例に示される機能抽象化レイヤのセットは、図3のクラウドコンピューティング環境300などのクラウドコンピューティング環境によって提供され得る。なお、図4に示すコンポーネント、レイヤおよび機能は例示に過ぎず、本発明の実施形態はこれらに限定されないことをあらかじめ理解されたい。図示するように、以下のレイヤおよび対応する機能が提供される。
クラウドコンピューティング環境の抽象化レイヤ400は、ハードウェアおよびソフトウェアレイヤ402、仮想化レイヤ404、管理レイヤ406、およびワークロードレイヤ408を含む。ハードウェアおよびソフトウェアレイヤ402は、クラウドコンピューティング環境のハードウェアコンポーネントおよびソフトウェアコンポーネントを含む。ハードウェアコンポーネントの例には、メインフレーム410、縮小命令セットコンピュータ(RISC)アーキテクチャベースのサーバ412、サーバ414、ブレードサーバ416、記憶装置418、ならびにネットワークおよびネットワークコンポーネント420が含まれる。いくつかの例示的な実施形態において、ソフトウェアコンポーネントは、ネットワークアプリケーションサーバソフトウェア422およびデータベースソフトウェア424を含む。
仮想化レイヤ404は、抽象化レイヤを提供する。当該レイヤから、例えば以下の仮想エンティティを提供することができる:仮想サーバ426、仮想ストレージ428、仮想プライベートネットワークを含む仮想ネットワーク430、仮想アプリケーションおよびオペレーティングシステム432、ならびに仮想クライアント434。
一例として、管理レイヤ406は以下の機能を提供することができる。リソース準備436は、クラウドコンピューティング環境内でタスクを実行するために利用されるコンピューティングリソースおよび他のリソースの動的な調達を可能にする。計量および価格設定438は、クラウドコンピューティング環境内でリソースが利用される際のコスト追跡、およびこれらのリソースの消費に対する請求またはインボイス送付を可能にする。一例として、これらのリソースはアプリケーションソフトウェアのライセンスを含んでよい。セキュリティは、データおよび他のリソースに対する保護のみならず、クラウドコンシューマおよびタスクの識別確認を可能にする。ユーザポータル440は、コンシューマおよびシステム管理者にクラウドコンピューティング環境へのアクセスを提供する。サービスレベル管理442は、要求されたサービスレベルが満たされるように、クラウドコンピューティングリソースの割り当ておよび管理を可能にする。サービス品質保証(SLA)の計画および履行444は、SLAに従って将来必要になると予想されるクラウドコンピューティングリソースの事前手配および調達を可能にする。
ワークロードレイヤ408は、クラウドコンピューティング環境が利用可能な機能の例を提供する。ワークロードレイヤ408から提供可能なワークロードおよび機能の例には、マッピングおよびナビゲーション446、ソフトウェア開発およびライフサイクル管理448、仮想教室教育の配信450、データ分析処理452、取引処理454、ならびに、保護されたリソースアクセス管理456が含まれる。
機密データなどの保護されたリソースを、サービスプロバイダと顧客(すなわちリソースユーザ)の間で共有するコンピュータシステムは、今日のインターネット上に数多く存在する。このプロバイダ/顧客モデルの困難な問題の1つは、ユーザ認証と認可である。ユーザ認証と認可を実装する方法は数多くある。しかし、新しい方法の一部は、機能的な暗号化を用いて保護されたデータとともにアクセス制御ポリシーを暗号化することにより、アクセス制御ポリシーを保護する実装を可能にする。
これらの新しい方法の1つは、保護されたデータが暗号化され、任意のユーザが利用できるようになる属性ベースの暗号化であり、実装は、保護されたデータの無許可のユーザアクセスに対する保護として、暗号文内に暗号化された保護されたデータとブール述部(例えば、アクセス制御ポリシー)を難読化するアルゴリズムの暗号強度に依存している。属性ベースの暗号化は、公開鍵暗号化の一種であり、ユーザの秘密の暗号鍵と暗号文が、例えば、ユーザが働く地理的位置、ユーザの役職、ユーザの職務上の役割、ユーザが属するリソースグループ、ユーザのセキュリティレベルなど、ユーザの属性に依存する。属性ベースの暗号化では、ユーザ鍵の属性セットが暗号文の属性と一致する場合にのみ、暗号文の復号が可能となる。属性ベースの暗号化技術には、主要な2つのタイプがある:1)鍵ポリシー属性ベースの暗号化、2)暗号文ポリシー属性ベースの暗号化。
しかし、ネットワークセキュリティ業界の多くは、暗号化された形式であっても、保護されたリソースに対するより多くの制御を要求する。彼らの見解では、保護されたリソースは、暗号化されていようがいまいが、その特定の保護されたリソースにアクセスし使用することを許可されていない人にはアクセスできないようにすべきである。例示的な実施形態は、保護されたリソースが、それらの保護されたリソースを使用する権限のない誰にもアクセスできないことを保証する。
無許可のユーザがいかなる形式でも保護されたリソースにアクセスすることを防止すると、リソースユーザは、それらの保護されたリソースをホストするリソースサーバに資格証明を提示する必要が生じる。具体的には、ユーザは、特定の保護されたリソースにアクセスする権利が付与されていることを証明する資格証明を提示しなければならない。リソースユーザが所定の保護されたリソースにアクセスし使用する権限を与えられていることを証明する必要性には、多くの問題が発生する。例示的な実施形態は、ネットワーク上の保護されたリソースへのアクセスを制御するために、リソースユーザの資格証明をリソースサーバに安全に提示する方法を考慮に入れ、対処する。
例えば、ベーシック認証やOAuthなど、過去に使用された多数の既存の認証方法を考える。これらの既存の認証方法では、ネットワークセッションを開始するために、ユーザの資格証明をネットワーク上で渡す必要がある。その結果、これらの既存の認証方法は、ユーザによってネットワークセッションが開始されるたびに、ユーザの資格証明をネットワークに公開することになる。
しかし、ネットワーク上でのこの資格証明交換を保護するために、例えばトランスポート・レイヤー・セキュリティのような、他の多数の方法が生み出されてきた。アクセス制御に属性ベースの暗号化を使用するシステムでは、ユーザは単にユーザ鍵をいくつかの異なる方法のうちの1つで渡すことができ、リソースサーバはそのユーザ鍵を使用して特定の保護されたリソースのロックを解除しようとする。リソースサーバがその特定のユーザ鍵を使用して保護されたリソースのロックを解除(例えば、復号)できた場合、リソースサーバは、ユーザがその特定の保護されたリソースへのアクセスを許可する資格証明を所持していることを知ることができる。しかし、属性ベースの暗号化には、大きな欠点がある。属性ベースの暗号化では、ネットワークセッションごとにユーザ鍵がネットワークに公開される。例えば、Transport Layer Securityプロトコルに障害が発生した場合、ユーザ鍵がネットワーク上に公開され、その後、無許可のユーザによって利用される可能性がある。
リソースユーザが保護されたリソースにアクセスするための資格情報を所有していることを証明する他の既存の方法は、ネットワークセッションの開始時に保護されたリソースをネットワーク上で渡すことを必要としない。そのような方法の1つは、鍵付きハッシュメッセージ認証コードである。鍵付きハッシュメッセージ認証コード(ハッシュベースメッセージ認証コードとも呼ばれる)は、暗号ハッシュ関数と秘密の暗号鍵が関係する特定のタイプのメッセージ認証コードである。鍵付きハッシュメッセージ認証コードは、メッセージのデータの完全性と真正性を同時に検証するために使用されることがある。鍵付きハッシュメッセージ認証コードの計算には、セキュアハッシュアルゴリズム2やセキュアハッシュアルゴリズム3など、任意の暗号化ハッシュ関数を使用することができる。鍵付きハッシュメッセージ認証コードは、秘密鍵も所有するリソースサーバが、メッセージコンテンツのあらゆる変更を検出することを可能にする。言い換えれば、鍵付きハッシュメッセージ認証コードは、リソースユーザに対応するリソースアプリケーションに、保護されたリソースアクセス要求のネットワークヘッダフィールドのセットに対して鍵ハッシュメッセージ認証コードを計算させ、その鍵付きハッシュメッセージ認証コード(すなわち、暗号化デジタル署名)を保護されたリソースアクセス要求のヘッダ内の埋め込まれたフィールドに含めることによって、1つまたは複数の保護されたリソースをホストするリソースサーバに、リソースユーザが資格証明(すなわちユーザ鍵)を所有しているかどうかを検査する手段を提供する。
リソースユーザから保護されたリソースアクセス要求を受信すると、保護されたリソースをホストするリソースサーバは、リソースユーザのリソースアプリケーションと同じユーザ鍵を使用して、保護されたリソースアクセス要求の同じヘッダフィールドのセットに対して同じ鍵付きハッシュメッセージ認証コードを計算することができる。2つの鍵付きハッシュメッセージ認証コード(すなわち、暗号化デジタル署名)が一致する場合、リソースサーバは、ユーザがユーザ鍵を所有していること(すなわち、有効なユーザ資格証明)を暗号的に証明し、保護されたリソースへのアクセスを許可することになる。
したがって、例示的な実施形態は、リソースユーザが事前共有された属性ベースの暗号化ユーザ鍵を所有していることをリソースサーバに証明するために、保護されたリソースアクセス要求の同じヘッダフィールドのセットに対する鍵付きハッシュメッセージ認証コード暗号化デジタル署名の秘密鍵として、属性ベースの暗号化ユーザ鍵を利用する。例示的な実施形態は、鍵付きポリシー属性ベース暗号化、暗号文ポリシー属性ベース暗号化などの任意の形式の属性ベース暗号化を利用できることに留意されたい。
例示的な実施形態は、リソースユーザに、属性ベースの暗号化ユーザ鍵を、その特定のユーザ鍵に対応する一意のユーザ鍵識別子とともに、帯域外で発行する。例示的な実施形態は、リソースサーバ上でも、同じ属性ベースの暗号化ユーザ鍵および一意のユーザ鍵識別子を提供する。例示的な実施形態は、任意のタイプの帯域外暗号化鍵共有技術を利用し得ることに留意されたい。帯域外暗号化鍵共有は、暗号化秘密鍵が、その暗号化秘密鍵が使用されるネットワークの内部からアクセスできない手段によって配信されるときに生じる。つまり、帯域外暗号鍵共有とは、暗号文の交換に使用する通信手段とは別の通信手段で暗号秘密鍵を送信することを意味する。
例示的な実施形態が、属性ベースの暗号化ユーザ鍵および対応する一意のユーザ鍵識別子をリソースユーザおよびリソースサーバと共有した後、例示的な実施形態は、標準の属性ベースの暗号化機能を利用して、暗号文に埋め込まれリソースサーバに置かれたアクセス制御ポリシーとともに保護されたリソースもしくはリソースメタデータを暗号化する。リソースサーバが、鍵付きハッシュメッセージ認証コードを使用して、保護されたリソースアクセス要求に対応するユーザを認証(すなわち、検証)すると、リソースサーバは、対応する属性ベースの暗号化ユーザ鍵を利用して、保護されたリソースまたは保護されたリソースに対応するメタデータの復号を試みる。その属性ベースの暗号化ユーザ鍵を使用して復号が成功した場合、リソースサーバは、保護されたリソースへのアクセス要求を行ったユーザが、その特定の保護されたリソースにアクセスする権限をユーザに与える属性ベースの暗号化ユーザ鍵を所持していることを知ることができる。
したがって、例示的な実施形態は、ネットワーク上の保護されたリソースへのアクセスを制御するためにリソースサーバにリソースユーザ資格証明を安全に提示することの技術的問題を克服する1つまたは複数の技術的解決策を提供する。その結果、これらの1または複数の技術的解決策は、ネットワークセキュリティの分野における技術的効果および実用的な応用を提供する。
ここで図5を参照すると、例示的な実施形態による保護されたリソースアクセス制御システムの一例を示す図が描かれている。保護されたリソースアクセス制御システム500は、図1のネットワークデータ処理システム100などのデータ処理システムのネットワーク、または図3のクラウドコンピューティング環境300などのクラウドコンピューティング環境において実装され得る。保護されたリソースアクセス制御システム500は、保護されたリソース502へのアクセスを制御するためのハードウェアおよびソフトウェアコンポーネントのシステムである。保護されたリソース502は、保護されたリソースのセットを表し、例えば、図1における保護されたリソース110であってもよい。
この例では、保護されたリソースアクセス制御システム500は、リソースサーバ504およびクライアント装置506を含む。リソースサーバ504は、例えば、図1のサーバ104、図2のデータ処理システム200、または図3のクラウドコンピューティングノード310のクラウドコンピューティングノードであってもよい。クライアント装置506は、例えば、図1のクライアント112、または図3のローカルコンピュータ装置320Bであってもよい。しかしながら、保護されたリソースアクセス制御システム500は、例示としてのみ意図され、例示的な実施形態の制限として意図されないことに留意されたい。言い換えれば、保護されたリソースアクセス制御システム500は、任意の数の保護されたリソース、リソースサーバ、クライアント装置、および図示しない他のデバイスおよびコンポーネントを含み得る。
ユーザ鍵プロビジョニングシステム500はまた、可能なプロビジョニングエンティティの1セットと、属性ベースの暗号化ユーザ鍵を使用して制御され保護されたリソースアクセスを可能にする鍵付きハッシュメッセージ認証コードを可能にするワークフローを例示する。しかしながら、図5の例示的な実施例は、ユーザ鍵の共有を可能にするすべての方法を例示することを意図していないことに留意されたい。言い換えれば、代替の例示的な実施形態は、他のユーザ鍵共有方法論を利用することができる。
この例では、リソースサーバ504は、例えば、図2の保護されたリソースアクセスマネージャ218のような、保護されたリソースアクセスマネージャ505を含む。保護されたリソースアクセスマネージャ505は、リソースサーバ504によってホストされている保護されたリソース502へのユーザアクセスを制御する。クライアント装置506は、クライアントリソースアプリケーション507を含む。リソースユーザ508は、クライアントリソースアプリケーション507を利用して、保護されたリソース502の1または複数にアクセスし利用する。
リソース管理者510は、保護されたリソース502へのアクセスを管理者的に管理する責任を有する。512で、リソース管理者510は、どのリソースユーザまたはリソースユーザグループが保護されたリソース502のどの特定の保護されたリソースにアクセスできるかを定義するアクセス制御ポリシー定義を作成する。さらに、リソース管理者510は、保護されたリソース502へのアクセスを安全に制御するために、属性ベースの暗号化プロトコルのうちの1つを使用して、保護されたリソース502または保護されたリソース502に対応するメタデータを暗号化する。さらに、514において、リソース管理者510は、リソースユーザ508のための属性ベースの暗号化ユーザ鍵を生成し、リソースユーザ508は、保護されたリソース502の1または複数にアクセスするために暗号化ユーザ鍵を利用する。さらに、リソース管理者510は、一意のユーザ鍵識別子を生成し、このユーザ鍵識別子は、リソースユーザ508に対応する属性ベースの暗号化ユーザ鍵を一意に識別する。
リソース管理者510は、リソースユーザ508に対応する属性ベースの暗号化ユーザ鍵および一意のユーザ鍵識別子を、認証およびユーザ鍵プロビジョニングサービス516に送信する。また、518において、リソース管理者510は、保護されたリソースアクセス要求のヘッダフィールドに埋め込まれた鍵付きハッシュメッセージ認証コードデジタル署名を検査するために、リソースサーバ504上の保護されたリソースアクセスマネージャ505の鍵ストア520に属性ベースの暗号化ユーザ鍵および一意のユーザ鍵識別子を準備する。
522において、リソースユーザ508は、属性ベースの暗号化ユーザ鍵および一意のユーザ鍵識別子を認証およびユーザ鍵プロビジョニングサービス516に要求する。524で、要求を受信したことに応答して、認証およびユーザ鍵プロビジョニングサービス516は、属性ベースの暗号化ユーザ鍵および一意のユーザ鍵識別子をリソースユーザ508に帯域外で送信する。526において、リソースユーザ508は、クライアント装置506上のクライアントリソースアプリケーション507の鍵ストア528に属性ベースの暗号化ユーザ鍵および一意のユーザ鍵識別子を準備する。
530において、リソースユーザ508は、保護されたリソース502のうちの1または複数へのアクセスを要求する保護されたリソースアクセス要求を、クライアントリソースアプリケーション507に入力する。保護されたリソースアクセス要求の入力を受信したことに応答して、クライアントリソースアプリケーション507は、鍵ストア528に準備された属性ベースの暗号化ユーザ鍵および一意のユーザ鍵識別子を使用して、鍵付きハッシュメッセージ認証コードおよび一意のユーザ鍵識別子を含む、保護されたリソースアクセス要求を生成する。532で、クライアントリソースアプリケーション507は、鍵付きハッシュメッセージ認証コードおよび一意の鍵識別子を含む保護されたリソースアクセス要求をリソースサーバ504に送信する。
その後、リソースサーバ504の保護されたリソースアクセスマネージャ505は、保護されたリソースアクセス要求に含まれる一意のユーザ鍵識別子を使用して、保護されたリソースアクセスマネージャ505の鍵ストア520から事前共有された属性ベースの暗号化ユーザ鍵を取得する。保護されたリソースアクセスマネージャ505は、鍵ストア520から取得されたその属性ベースの暗号化ユーザ鍵を利用して、保護されたリソースアクセス要求の同じセットのヘッダフィールドに対して独自の鍵付きハッシュメッセージ認証コードを生成する。次に、保護されたリソースアクセスマネージャ505は、保護されたリソースアクセスマネージャ505によって生成された鍵付きハッシュメッセージ認証コードと、クライアントリソースアプリケーション507によって送信された保護されたリソースアクセス要求に含まれる鍵付きハッシュメッセージ認証コードとを比較する。
鍵付きハッシュメッセージ認証コードが一致しない場合、保護されたリソースアクセスマネージャ505は、リソースユーザ508が保護されたリソース502の1または複数の要求され保護されたリソースにアクセスすることを拒否する。両方の鍵付きハッシュメッセージ認証コードが一致する場合、保護されたリソースアクセスマネージャ505は、リソースユーザ508を認証する。保護されたリソースアクセスマネージャ505がリソースユーザ508を認証した後、保護されたリソースアクセスマネージャ505は、属性ベースの暗号化ユーザ鍵を利用して、リソースユーザ508の保護されたリソースアクセス要求に対応する保護されたリソース502の1または複数の保護されたリソースの復号を試みる。保護されたリソースアクセスマネージャ505が、属性ベースの暗号化ユーザ鍵を使用して1または複数の保護されたリソースを復号できる場合、保護されたリソースアクセスマネージャ505は、リソースユーザ508が1または複数の保護されたリソースにアクセスすることを許可されていると判定し、アクセスを許可される。保護されたリソースアクセスマネージャ505が1または複数の保護されたリソースを復号できない場合、保護されたリソースアクセスマネージャ505は、リソースユーザ508がそれら1または複数の保護されたリソースへのアクセスを許可されていないと判定し、アクセスを拒否される。
ここで図6を参照すると、例示的な実施形態による保護されたリソースアクセス要求ヘッダの一例を示す図が描かれている。保護されたリソースアクセス要求ヘッダ600は、例えば、図2の保護されたリソースアクセスマネージャ218または図5の保護されたリソースマネージャ505などの保護されたリソースアクセスマネージャが、属性ベースの暗号化ユーザ鍵602を取得して、保護されたリソースアクセス要求の、認証コードおよびデジタル署名を含まないヘッダフィールドのセット上の鍵付きハッシュメッセージ認証コードデジタル署名604を生成するために読み取る保護されたリソースアクセス要求の埋め込まれたフィールドを示している。
しかし、保護されたリソースアクセス要求ヘッダ600は、例示としてのみ意図されていることに留意されたい。言い換えれば、保護されたリソースアクセス要求ヘッダ600は、例えば、悪意のあるユーザ動作(例えば、リプレイ攻撃)を抑制するフィールドなど、すべてのヘッダフィールドを図示しない。図示されていない他のヘッダフィールドのこのセットは、例示的な実施形態の保護されたリソースアクセスマネージャの機能性に悪影響を及ぼさない。埋め込まれたヘッダフィールドに加えて、この他のヘッダフィールドのセットは、ユーザ鍵識別子フィールド606の下の点線によって暗示される。さらに、ヘッダフィールドの名前は重要ではなく、フィールドのコンテンツのみが重要である。
保護されたリソースアクセスマネージャは、ユーザ鍵識別子フィールド606に含まれる一意の識別子608を利用して、属性ベースの暗号化ユーザ鍵602を取得する。属性ベースの暗号化ユーザ鍵602は、保護されたリソースアクセス要求を行うリソースユーザ(例えば、図5のリソースユーザ508)に対応し、保護されたリソースアクセスマネージャの図5の鍵ストア520などの鍵ストア内の、図5のリソース管理者510などのリソース管理者によって準備される。一意の識別子608は、鍵ストアにおける属性ベースの暗号化ユーザ鍵602を一意に識別する。保護されたリソースアクセスマネージャは、リソースユーザを認証するために、生成された鍵付きハッシュメッセージ認証コードデジタル署名604と、認証コードフィールド612に含まれるデジタル署名を有するBase64符号化バイト配列610とを比較する。
ここで図7を参照すると、例示的な実施形態による保護されたリソースアクセス制御プロセスの一例を示す図が描かれている。保護されたリソースアクセス制御プロセス700は、リソースサーバ702およびクライアントリソースアプリケーション704を含む。リソースサーバ702は、例えば、図5のリソースサーバ504であってもよい。クライアントリソースアプリケーション704は、例えば、図5のクライアント装置506にロードされたクライアントリソースアプリケーション507であってもよい。
保護されたリソースアクセス制御プロセス700は、例えば図5のリソースユーザ508などのリソースユーザが、クライアントリソースアプリケーション704の例えば図5の鍵ストア528などの鍵ストアに属性ベースの暗号化ユーザ鍵および一意のユーザ鍵識別子を準備したときに開始する。その後、クライアントリソースアプリケーション704は、保護されたリソースアクセス要求を、リソースサーバ702によってホストされる保護されたリソースへのアクセスを要求するリソースユーザから受信する。応答として、706において、クライアントリソースアプリケーション704は、例えば、図6の保護されたリソースアクセス要求ヘッダ600に埋め込まれたユーザ鍵識別フィールド606および認証コードフィールド612のような、保護されたリソースアクセス要求のヘッダにユーザ鍵識別フィールドおよび認証コードフィールドを埋め込む。
さらに、708において、クライアントリソースアプリケーション704は、属性ベースの暗号化鍵および一意のユーザ鍵識別子を、クライアントリソースアプリケーション704の鍵ストアから取得する。710で、クライアントリソースアプリケーション704は、保護されたリソースアクセス要求のヘッダフィールドのセットに対する鍵付きハッシュメッセージ認証コードデジタル署名の秘密鍵として属性ベースの暗号化鍵を使用することに基づいて、認証コードを生成する。その後、クライアントリソースアプリケーション704は、認証コードを保護されたリソースアクセス要求ヘッダの認証コードフィールドに挿入し、一意のユーザ鍵識別子をユーザ鍵識別フィールドに挿入する。代替的な例示的実施形態は、一意のユーザ鍵識別子をデジタル署名されたヘッダフィールドにも配置し得ることに留意されたい。これは、一意のユーザ鍵識別子を保護し、一意のユーザ鍵識別子がデジタル署名されていないヘッダフィールドに含まれていない場合、認証コードを失敗させることになる。712において、クライアントリソースアプリケーション704は、認証コードおよび一意のユーザ鍵識別子を含む保護されたリソースアクセス要求をリソースサーバ702に送信する。
714において、保護されたリソースアクセス要求をリソースサーバ702が受信したことに応答して、リソースサーバ702は、属性ベースの暗号化ユーザ鍵に対応する一意のユーザ鍵識別子を見つけるためにヘッダフィールドをスキャンする。716で、リソースサーバ702は、一意のユーザ鍵識別子を使用して、リソースサーバ702の、例えば図5の鍵ストレージ520などの鍵ストレージから事前共有属性ベース暗号化ユーザ鍵を取得する。718において、リソースサーバ702は、事前共有属性ベースの暗号化ユーザ鍵を、クライアントリソースアプリケーション704が自身の認証コードを生成するために使用した保護されたリソースアクセス要求のヘッダフィールドの同じセットに対する自身の鍵ハッシュメッセージ認証コードデジタル署名のための秘密鍵として利用する。
720において、リソースサーバ702は、リソースサーバ702によって生成された認証コードと、クライアントリソースアプリケーション704によって送信された保護されたリソースアクセス要求のヘッダフィールドから読み取られた認証コードとを比較する。認証コードが一致する場合、リソースサーバ702は、リソースユーザがリソースサーバ702の鍵ストアに記憶された同じ属性ベースの暗号化ユーザ鍵を所持していることを知ることになる。認証コードが一致すると判定することによってリソースサーバ702がリソースユーザを認証した後、722において、リソースサーバ702は、属性ベースの暗号化ユーザ鍵を使用して、保護されたリソースアクセス要求に対応する保護されたリソースまたは保護されたリソースメタデータを復号することを試みる。リソースサーバ702が保護されたリソースまたは保護されたリソースメタデータを復号できる場合、リソースサーバ702は、リソースユーザが保護されたリソースにアクセスすることを許可されていることを知り、724においてアクセスを許可される。
保護されたリソースアクセス制御プロセス700は、属性ベースの暗号化ユーザ鍵がネットワークに公開されるのを防ぎ、リソースサーバ702に、保護されたリソースの使用を認可する手段を提供することに留意されたい。保護されたリソースアクセス制御プロセス700はまた、ダウンロードのための認可、および閲覧のための暗号化の両方を有する保護されたリソースアクセスを制御する手段を提供し得る。
ここで図8A~8Bを参照すると、例示的な実施形態によるリソースサーバのプロセスを示すフローチャートが示されている。図8A~8Bに示されるプロセスは、例えば、図1のサーバ104、図2のデータ処理システム200、図3のクラウドコンピューティングノード310のクラウドコンピューティングノード、または図5のリソースサーバ504などのコンピュータにおいて実装され得る。例えば、図8A~8Bに示されるプロセスは、図2の保護されたリソースアクセスマネージャ218または図3の保護されたリソースアクセスマネージャ534において実装され得る。
プロセスは、コンピュータが、リソースユーザに対応するクライアント装置のクライアントリソースアプリケーションから、ネットワークを介して、認証コードとユーザ鍵識別子を含むヘッダフィールドを持つ保護されたリソースアクセス要求を受信したときに開始する(ステップ802)。保護されたリソースアクセス要求は、コンピュータによってホストされる暗号化され保護されたリソースへのアクセス権を要求するものである。保護されたリソースアクセス要求の受信に応答して、コンピュータは、保護されたリソースアクセス要求内の認証コードおよびユーザ鍵識別子を含むヘッダフィールドを読み取る(ステップ804)。
その後、コンピュータは、保護されたリソースアクセス要求のヘッダフィールド内で読み取られたユーザ鍵識別子を使用して、コンピュータの鍵ストアからリソースユーザに対応する属性ベースの暗号化ユーザ鍵を取得する(ステップ806)。さらに、コンピュータは、保護されたリソースアクセス要求のヘッダフィールドに対する鍵付きハッシュメッセージ認証コードデジタル署名のための秘密鍵として、取得された属性ベースの暗号化ユーザ鍵を使用することに基づいて、認証コードを生成する(ステップ808)。コンピュータは、生成された認証コードと、保護されたリソースアクセス要求のヘッダフィールド内で読み取られた認証コードとを比較する(ステップ810)。
その後、コンピュータは、生成された認証コードと、ヘッダフィールドで読み取られた認証コードとの間に一致が存在するかどうかについての判定を行う(ステップ812)。生成された認証コードと、ヘッダフィールド内で読み取られた認証コードとの間に一致が存在しないとコンピュータが判定した場合、ステップ812でNOを出力し、コンピュータは、リソースユーザを認証せず、リソースユーザによる暗号化され保護されたリソースへのアクセスを拒否する(ステップ814)。その後、プロセスは終了する。生成された認証コードと、ヘッダフィールドで読み取られた認証コードとの間に一致が存在するとコンピュータが判断した場合、ステップ812でYESを出力し、次に、コンピュータは、リソースユーザを認証する(ステップ816)。
その後、コンピュータは、リソースユーザの認証に応答して、リソースユーザに対応する取得された属性ベースの暗号化ユーザ鍵を使用して、暗号化され保護されたリソースの復号を実行する(ステップ818)。コンピュータは、取得された属性ベースの暗号化ユーザ鍵を使用して、復号され保護されたリソースを形成するために、暗号化され保護されたリソースの復号が成功したかどうかについての判定を行う(ステップ820)。取得された属性ベースの暗号化ユーザ鍵を使用して暗号化され保護されたリソースの復号が失敗したとコンピュータが判定した場合、ステップ820でNOを出力し、プロセスはステップ814に戻り、コンピュータはリソースユーザが認可されていないと判定し、リソースユーザによる暗号化され保護されたリソースへのアクセスを拒否する。暗号化され保護されたリソースの復号が、取得された属性ベースの暗号化ユーザ鍵を使用して復号され保護されたリソースを形成することに成功したとコンピュータが判定した場合、ステップ820でYESを出力し、コンピュータは、リソースユーザが認可されていると判定し、リソースユーザによる復号され保護されたリソースへのアクセスを許可する(ステップ822)。その後、プロセスは終了する。
ここで図9を参照すると、例示的な実施形態によるクライアントリソースアプリケーションのプロセスを示すフローチャートが示されている。図9に示されるプロセスは、例えば、図5のクライアントリソースアプリケーション506または図7のクライアントリソースアプリケーション704のようなクライアントリソースアプリケーションにおいて実装されてもよい。クライアントリソースアプリケーションは、例えば、図2のクライアント112または図3のローカルコンピュータ装置302Aのようなクライアント装置において実装されてもよい。
プロセスは、クライアント装置が、リソースユーザに対応するクライアント装置にロードされたクライアントリソースアプリケーションの鍵ストア内の属性ベースの暗号化ユーザ鍵およびユーザ鍵識別子を準備する入力を、リソースユーザから受信したときに開始する(ステップ902)。属性ベースの暗号化ユーザ鍵は、リソースユーザに対応する。また、ユーザ鍵識別子は、属性ベースの暗号化ユーザ鍵を一意に識別する。
その後、クライアント装置は、クライアントリソースアプリケーションを使用して、リソースサーバによってホストされる保護されたリソースへのアクセスを要求する保護されたリソースアクセス要求を送信するための入力をリソースユーザから受信する(ステップ904)。保護されたリソースアクセス要求を送信する入力を受信することに応答して、クライアント装置は、クライアントリソースアプリケーションを使用して、認証コードフィールドおよびユーザ鍵識別子フィールドを保護されたリソースアクセス要求のヘッダフィールド内に埋め込む(ステップ906)。さらに、クライアント装置は、クライアントリソースアプリケーションを使用して、属性ベースの暗号化ユーザ鍵およびユーザ鍵識別子を、クライアントリソースアプリケーションの鍵ストアから取得する(ステップ908)。
その後、クライアント装置は、クライアントリソースアプリケーションを使用して、保護されたリソースアクセス要求のヘッダフィールドに対する鍵付きハッシュメッセージ認証コードデジタル署名の秘密鍵として、取得された属性ベースの暗号化ユーザ鍵を使用することに基づいて、認証コードを生成する(ステップ910)。さらに、クライアント装置は、クライアントリソースアプリケーションを使用して、生成された認証コードを認証コードフィールドに、ユーザ鍵識別子を保護されたリソースアクセス要求のヘッダフィールド内に埋め込まれたユーザ鍵識別子フィールドに挿入する(ステップ912)。
クライアント装置は、クライアントリソースアプリケーションを使用して、生成された認証コードおよびユーザ鍵識別子を含む保護されたリソースアクセス要求を、ネットワークを介してリソースサーバに送信し、リソースサーバによってホストされる保護されたリソースにアクセスする(ステップ914)。その後、クライアント装置は、クライアントリソースアプリケーションを使用して、保護されたリソースへのアクセスが許可されるか拒否されるかに関する応答をリソースサーバから受信する(ステップ916)。その後、プロセスは終了する。
したがって、本発明の例示的な実施形態は、リソースユーザに対応する属性ベースの暗号化ユーザ鍵を、ユーザ認証および認可のためにリソースユーザによってなされる保護されたリソースアクセス要求のヘッダフィールドのセットに対する鍵付きハッシュメッセージ認証コードデジタル署名のための秘密鍵として使用するためのコンピュータ実装方法、コンピュータシステム、およびコンピュータプログラム製品を提供する。本発明の様々な実施形態の説明は、例示の目的で提示されているが、網羅的であることを意図するものではなく、開示される実施形態に限定されることを意図するものでもない。説明される実施形態の範囲から逸脱することなく、多くの修正および変更が可能であることは当業者には明らかであろう。本明細書で使用される用語は、実施形態の原理、市場で見られる技術に対する実際の適用または技術的改善を最もよく説明するため、または当業者が本明細書に記載の実施形態を理解できるようにするために選択された。
ここで図8A~8Bを参照すると、例示的な実施形態によるリソースサーバのプロセスを示すフローチャートが示されている。図8A~8Bに示されるプロセスは、例えば、図1のサーバ104、図2のデータ処理システム200、図3のクラウドコンピューティングノード310のクラウドコンピューティングノード、または図5のリソースサーバ504などのコンピュータにおいて実装され得る。例えば、図8A~8Bに示されるプロセスは、図2の保護されたリソースアクセスマネージャ218または図5の保護されたリソースアクセスマネージャ505において実装され得る。
ここで図9を参照すると、例示的な実施形態によるクライアントリソースアプリケーションのプロセスを示すフローチャートが示されている。図9に示されるプロセスは、例えば、図5のクライアントリソースアプリケーション507または図7のクライアントリソースアプリケーション704のようなクライアントリソースアプリケーションにおいて実装されてもよい。クライアントリソースアプリケーションは、例えば、図1のクライアント112または図3のローカルコンピュータ装置320Aのようなクライアント装置において実装されてもよい。
Claims (20)
- リソースユーザ認証および認可のためのコンピュータ実装方法であって、前記コンピュータ実装方法は、
コンピュータによって、ネットワークを介してリソースユーザのクライアント装置から受信した保護されたリソースアクセス要求のヘッダフィールドのセットに対する鍵付きハッシュメッセージ認証コードデジタル署名の秘密鍵として、取得された属性ベースの暗号化ユーザ鍵を使用することに基づいて、認証コードを生成することと、
前記コンピュータによって、前記生成された認証コードと、前記保護されたリソースアクセス要求の埋め込まれたヘッダフィールド内で読み取られた認証コードとを比較することと、
前記生成された認証コードと、前記埋め込まれたヘッダフィールド内で読み取られた前記認証コードとの間に一致が存在するかどうかを、前記コンピュータによって判定することと、
前記生成された認証コードと、前記埋め込まれたヘッダフィールド内で読み取られた前記認証コードとの間に一致が存在すると前記コンピュータが判定したことに応答して、前記コンピュータによって、前記リソースユーザを認証することと、
前記コンピュータによって、前記リソースユーザの認証に応答して、前記リソースユーザに対応する前記取得された属性ベースの暗号化ユーザ鍵を使用して、前記保護されたリソースアクセス要求に対応する暗号化され保護されたリソースの復号を実行することと、
を含むコンピュータ実装方法。 - 前記取得された属性ベースの暗号化ユーザ鍵を使用して、復号され保護されたリソースを形成するために、前記暗号化され保護されたリソースの前記復号が成功したかどうかを、前記コンピュータによって判定することと、
前記取得された属性ベースの暗号化ユーザ鍵を使用して、復号され保護されたリソースを形成するために、前記暗号化され保護されたリソースの前記復号が成功したと前記コンピュータが判定したことに応答して、前記コンピュータによって、前記リソースユーザが前記復号され保護されたリソースにアクセスする権限を有すると判定しアクセスを許可することと、
前記取得された属性ベースの暗号化ユーザ鍵を使用して、前記暗号化され保護されたリソースの前記復号が失敗したと前記コンピュータが判定したことに応答して、前記コンピュータによって、前記リソースユーザが前記暗号化され保護されたリソースにアクセスする権限がないと判定しアクセスを拒否することと、
をさらに含む、請求項1に記載のコンピュータ実装方法。 - 前記コンピュータによって、ヘッダフィールドの前記セット、前記認証コードを含む埋め込まれた認証コードフィールド、およびユーザ鍵識別子を含む埋め込まれたユーザ鍵識別子フィールドを含む前記保護されたリソースアクセス要求を、前記ネットワークを介して前記リソースユーザに対応する前記クライアント装置から受信することと、
前記コンピュータによって、前記保護されたリソースアクセス要求において、認証コードを含む前記埋め込まれた認証コードフィールドと、前記ユーザ鍵識別子を含む前記埋め込まれたユーザ鍵識別子フィールドを読み取ることと、
前記コンピュータによって、前記保護されたリソースアクセス要求の前記埋め込まれたユーザ鍵識別子フィールド内で読み取られた前記ユーザ鍵識別子を使用して前記取得された属性ベースの暗号化ユーザ鍵を形成するために、前記コンピュータの鍵ストアから属性ベースの暗号化ユーザ鍵を取得することであって、前記ユーザ鍵識別子が前記鍵ストアにおいて前記属性ベースの暗号化ユーザ鍵を一意に識別する、取得することと、
をさらに含む、請求項1に記載のコンピュータ実装方法。 - 前記クライアント装置のクライアントリソースアプリケーションは、ヘッダフィールドの前記セットに加えて、前記保護されたリソースアクセス要求に、前記埋め込まれた認証コードフィールドおよび前記埋め込まれたユーザ鍵識別子フィールドを埋め込み、前記クライアントリソースアプリケーションは、前記保護されたリソースアクセス要求を前記コンピュータに送信する前に、前記埋め込まれた認証コードフィールドに前記認証コードを、前記埋め込まれたユーザ鍵識別子フィールドに前記ユーザ鍵識別子を挿入し、前記クライアントリソースアプリケーションは、前記コンピュータによる復号に成功した後に、前記暗号化され保護されたリソースを利用する、
請求項3に記載のコンピュータ実装方法。 - 前記保護されたリソースアクセス要求は、前記コンピュータによってホストされる前記暗号化され保護されたリソースへのアクセス権を要求するものである、請求項1に記載のコンピュータ実装方法。
- 前記取得された属性ベースの暗号化ユーザ鍵は、前記リソースユーザに対応する、請求項1に記載のコンピュータ実装方法。
- 前記生成された認証コードと前記埋め込まれたヘッダフィールド内で読み取られた前記認証コードとの間に一致が存在しないと前記コンピュータが判定したことに応答して、コンピュータによって、前記リソースユーザは認証されていないと判定され、前記リソースユーザによる前記暗号化され保護されたリソースへのアクセスが拒否されること、
をさらに含む、請求項1に記載のコンピュータ実装方法。 - リソースユーザ認証および認可のためのコンピュータシステムであって、前記コンピュータシステムは、
バスシステムと、
前記バスシステムに接続された記憶装置であって、前記記憶装置はプログラム命令を記憶する、記憶装置と、
前記バスシステムに接続されたプロセッサとを含み、前記プロセッサは、
ネットワークを介してリソースユーザのクライアント装置から受信した保護されたリソースアクセス要求のヘッダフィールドのセットに対する鍵付きハッシュメッセージ認証コードデジタル署名の秘密鍵として、取得された属性ベースの暗号化ユーザ鍵を使用することに基づいて、認証コードを生成することと、
前記生成された認証コードと、前記保護されたリソースアクセス要求の埋め込まれたヘッダフィールド内で読み取られた認証コードとを比較することと、
前記生成された認証コードと、前記埋め込まれたヘッダフィールド内で読み取られた前記認証コードとの間に一致が存在するかどうかを判定することと、
前記生成された認証コードと、前記埋め込まれたヘッダフィールド内で読み取られた前記認証コードとの間に一致が存在すると判定したことに応答して、前記リソースユーザを認証することと、
前記リソースユーザの認証に応答して、前記リソースユーザに対応する前記取得された属性ベースの暗号化ユーザ鍵を使用して、前記保護されたリソースアクセス要求に対応する暗号化され保護されたリソースの復号を実行することと、
を行う前記プログラム命令を実行する
コンピュータシステム。 - 前記プロセッサは、さらに、
前記取得された属性ベースの暗号化ユーザ鍵を使用して、復号され保護されたリソースを形成するために、前記暗号化され保護されたリソースの前記復号が成功したかどうかを判定することと、
前記取得された属性ベースの暗号化ユーザ鍵を使用して前記復号され保護されたリソースを形成するために、前記暗号化され保護されたリソースの前記復号が成功したと判定したことに応答して、前記リソースユーザが前記復号され保護されたリソースにアクセスする権限を有していると判定し、アクセスを許可することと、
前記取得された属性ベースの暗号化ユーザ鍵を使用して、前記暗号化され保護されたリソースの前記復号が失敗したと判定したことに応答して、前記リソースユーザが前記暗号化され保護されたリソースにアクセスする権限を有していないと判定し、アクセスを拒否することと、
を行う前記プログラム命令を実行する、請求項8に記載のコンピュータシステム。 - 前記プロセッサは、さらに、
ヘッダフィールドの前記セット、前記認証コードを含む埋め込まれた認証コードフィールド、およびユーザ鍵識別子を含む埋め込まれたユーザ鍵識別子フィールドを含む前記保護されたリソースアクセス要求を、前記ネットワークを介して前記リソースユーザに対応する前記クライアント装置から受信することと、
前記保護されたリソースアクセス要求において、認証コードを含む前記埋め込まれた認証コードフィールドと、前記ユーザ鍵識別子を含む前記埋め込まれたユーザ鍵識別子フィールドを読み取ることと、
前記保護されたリソースアクセス要求の前記埋め込まれたユーザ鍵識別子フィールド内で読み取られた前記ユーザ鍵識別子を使用して前記取得された属性ベースの暗号化ユーザ鍵を形成するために、前記コンピュータシステムの鍵ストアから属性ベースの暗号化ユーザ鍵を取得することであって、前記ユーザ鍵識別子が前記鍵ストアにおいて前記属性ベースの暗号化ユーザ鍵を一意に識別する、取得することと、
を行う前記プログラム命令を実行する、請求項8に記載のコンピュータシステム。 - 前記クライアント装置のクライアントリソースアプリケーションは、ヘッダフィールドの前記セットに加えて、前記保護されたリソースアクセス要求に、前記埋め込まれた認証コードフィールドおよび前記埋め込まれたユーザ鍵識別子フィールドを埋め込み、前記クライアントリソースアプリケーションは、前記保護されたリソースアクセス要求を前記コンピュータシステムに送信する前に、前記埋め込まれた認証コードフィールドに前記認証コードを、前記埋め込まれたユーザ鍵識別子フィールドに前記ユーザ鍵識別子を挿入し、前記クライアントリソースアプリケーションは、前記コンピュータシステムによる復号に成功した後に、前記暗号化され保護されたリソースを利用する、請求項10に記載のコンピュータシステム。
- 前記保護されたリソースアクセス要求は、前記コンピュータシステムによってホストされる前記暗号化され保護されたリソースへのアクセス権を要求するものである、請求項8に記載のコンピュータシステム。
- 前記取得された属性ベースの暗号化ユーザ鍵は、前記リソースユーザに対応する、請求項8に記載のコンピュータシステム。
- リソースユーザ認証および認可のためのコンピュータプログラム製品であって、前記コンピュータプログラム製品は、プログラム命令をその中に実装したコンピュータ可読記憶媒体を含み、前記プログラム命令は、コンピュータによって実行可能であり、前記コンピュータに、
コンピュータによって、ネットワークを介してリソースユーザのクライアント装置から受信した保護されたリソースアクセス要求のヘッダフィールドのセットに対する鍵付きハッシュメッセージ認証コードデジタル署名の秘密鍵として、取得された属性ベースの暗号化ユーザ鍵を使用することに基づいて、認証コードを生成することと、
前記コンピュータによって、前記生成された認証コードと、前記保護されたリソースアクセス要求の埋め込まれたヘッダフィールド内で読み取られた認証コードとを比較することと、
前記生成された認証コードと、前記埋め込まれたヘッダフィールド内で読み取られた前記認証コードとの間に一致が存在するかどうかを、前記コンピュータによって判定することと、
前記生成された認証コードと、前記埋め込まれたヘッダフィールド内で読み取られた前記認証コードとの間に一致が存在すると前記コンピュータが判定したことに応答して、前記コンピュータによって、前記リソースユーザを認証することと、
前記コンピュータによって、前記リソースユーザの認証に応答して、前記リソースユーザに対応する前記取得された属性ベースの暗号化ユーザ鍵を使用して、前記保護されたリソースアクセス要求に対応する暗号化され保護されたリソースの復号を実行することと、
の方法を実行させる、コンピュータプログラム製品。 - 前記取得された属性ベースの暗号化ユーザ鍵を使用して、復号され保護されたリソースを形成するために、前記暗号化され保護されたリソースの前記復号が成功したかどうかを、前記コンピュータによって判定することと、
前記取得された属性ベースの暗号化ユーザ鍵を使用して、復号され保護されたリソースを形成するために、前記暗号化され保護されたリソースの前記復号が成功したと前記コンピュータが判定したことに応答して、前記コンピュータによって、前記リソースユーザが前記復号され保護されたリソースにアクセスする権限を有すると判定しアクセスを許可することと、
前記取得された属性ベースの暗号化ユーザ鍵を使用して、前記暗号化され保護されたリソースの前記復号が失敗したと前記コンピュータが判定したことに応答して、前記コンピュータによって、前記リソースユーザが前記暗号化され保護されたリソースにアクセスする権限がないと判定しアクセスを拒否することと、
をさらに含む、請求項14に記載のコンピュータプログラム製品。 - 前記コンピュータによって、ヘッダフィールドの前記セット、前記認証コードを含む埋め込まれた認証コードフィールド、およびユーザ鍵識別子を含む埋め込まれたユーザ鍵識別子フィールドを含む前記保護されたリソースアクセス要求を、前記ネットワークを介して前記リソースユーザに対応する前記クライアント装置から受信することと、
前記コンピュータによって、前記保護されたリソースアクセス要求において、認証コードを含む前記埋め込まれた認証コードフィールドと、前記ユーザ鍵識別子を含む前記埋め込まれたユーザ鍵識別子フィールドを読み取ることと、
前記コンピュータによって、前記保護されたリソースアクセス要求の前記埋め込まれたユーザ鍵識別子フィールド内で読み取られた前記ユーザ鍵識別子を使用して前記取得された属性ベースの暗号化ユーザ鍵を形成するために、前記コンピュータの鍵ストアから属性ベースの暗号化ユーザ鍵を取得することであって、前記ユーザ鍵識別子が前記鍵ストアにおいて前記属性ベースの暗号化ユーザ鍵を一意に識別する、取得することと、
をさらに含む、請求項14に記載のコンピュータプログラム製品。 - 前記クライアント装置のクライアントリソースアプリケーションは、ヘッダフィールドの前記セットに加えて、前記保護されたリソースアクセス要求に、前記埋め込まれた認証コードフィールドおよび前記埋め込まれたユーザ鍵識別子フィールドを埋め込み、前記クライアントリソースアプリケーションは、前記保護されたリソースアクセス要求を前記コンピュータに送信する前に、前記埋め込まれた認証コードフィールドに前記認証コードを、前記埋め込まれたユーザ鍵識別子フィールドに前記ユーザ鍵識別子を挿入し、前記クライアントリソースアプリケーションは、前記コンピュータによる復号に成功した後に、前記暗号化され保護されたリソースを利用する、請求項16に記載のコンピュータプログラム製品。
- 前記保護されたリソースアクセス要求は、前記コンピュータによってホストされる前記暗号化され保護されたリソースへのアクセス権を要求するものである、請求項14に記載のコンピュータプログラム製品。
- 前記取得された属性ベースの暗号化ユーザ鍵は、前記リソースユーザに対応する、請求項14に記載のコンピュータプログラム製品。
- 前記生成された認証コードと前記埋め込まれたヘッダフィールド内で読み取られた前記認証コードとの間に一致が存在しないと前記コンピュータが判定したことに応答して、コンピュータによって、前記リソースユーザは認証されていないと判定され、前記リソースユーザによる前記暗号化され保護されたリソースへのアクセスが拒否されること、
をさらに含む、請求項14に記載のコンピュータプログラム製品。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US17/140,446 | 2021-01-04 | ||
US17/140,446 US11750397B2 (en) | 2021-01-04 | 2021-01-04 | Attribute-based encryption keys as key material for key-hash message authentication code user authentication and authorization |
PCT/CN2022/070110 WO2022144024A1 (en) | 2021-01-04 | 2022-01-04 | Attribute-based encryption keys as key material for key-hash message authentication code user authentication and authorization |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2024501752A true JP2024501752A (ja) | 2024-01-15 |
Family
ID=82219095
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2023540846A Pending JP2024501752A (ja) | 2021-01-04 | 2022-01-04 | 鍵付きハッシュメッセージ認証コードの鍵マテリアルとしての属性ベースの暗号化鍵ユーザ認証および認可 |
Country Status (6)
Country | Link |
---|---|
US (1) | US11750397B2 (ja) |
JP (1) | JP2024501752A (ja) |
CN (1) | CN116601916A (ja) |
DE (1) | DE112022000340T5 (ja) |
GB (1) | GB2617995A (ja) |
WO (1) | WO2022144024A1 (ja) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP4092539A1 (en) * | 2021-05-17 | 2022-11-23 | Elektrobit Automotive GmbH | Re-partitioning of a flash memory device |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7010689B1 (en) * | 2000-08-21 | 2006-03-07 | International Business Machines Corporation | Secure data storage and retrieval in a client-server environment |
US6823453B1 (en) * | 2000-10-06 | 2004-11-23 | Hewlett-Packard Development Company, L.P. | Apparatus and method for implementing spoofing-and replay-attack-resistant virtual zones on storage area networks |
US10079686B2 (en) * | 2015-07-29 | 2018-09-18 | International Business Machines Corporation | Privacy-preserving attribute-based credentials |
US10938553B2 (en) * | 2015-11-27 | 2021-03-02 | Hewlett Packard Enterprise Development Lp | Distribution and verification of transaction integrity keys |
US10097544B2 (en) * | 2016-06-01 | 2018-10-09 | International Business Machines Corporation | Protection and verification of user authentication credentials against server compromise |
EP3337120B1 (en) * | 2016-12-14 | 2021-04-21 | Nxp B.V. | Network message authentication and verification |
US11563580B2 (en) * | 2020-11-12 | 2023-01-24 | Sap Se | Security token validation |
-
2021
- 2021-01-04 US US17/140,446 patent/US11750397B2/en active Active
-
2022
- 2022-01-04 JP JP2023540846A patent/JP2024501752A/ja active Pending
- 2022-01-04 DE DE112022000340.5T patent/DE112022000340T5/de active Pending
- 2022-01-04 CN CN202280008098.8A patent/CN116601916A/zh active Pending
- 2022-01-04 WO PCT/CN2022/070110 patent/WO2022144024A1/en active Application Filing
- 2022-01-04 GB GB2311463.0A patent/GB2617995A/en active Pending
Also Published As
Publication number | Publication date |
---|---|
GB2617995A (en) | 2023-10-25 |
US11750397B2 (en) | 2023-09-05 |
CN116601916A (zh) | 2023-08-15 |
US20220217000A1 (en) | 2022-07-07 |
WO2022144024A1 (en) | 2022-07-07 |
DE112022000340T5 (de) | 2023-09-14 |
GB202311463D0 (en) | 2023-09-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11695757B2 (en) | Fast smart card login | |
CN109558721B (zh) | 客户端应用程序的安全单点登录和条件访问的方法和*** | |
US11258780B2 (en) | Securing a data connection for communicating between two end-points | |
JP6526181B2 (ja) | スマートカードによるログオンおよび連携されたフルドメインログオン | |
JP6121049B2 (ja) | プロキシを使用したリソースへの安全なアクセス | |
JP6222592B2 (ja) | モバイルアプリケーション管理のためのモバイルアプリケーションのアイデンティティの検証 | |
JP7189944B2 (ja) | セキュアな環境内のツール用のセキュアなアクセス管理方法、コンピュータ・プログラム、およびシステム | |
WO2022144024A1 (en) | Attribute-based encryption keys as key material for key-hash message authentication code user authentication and authorization | |
US11032708B2 (en) | Securing public WLAN hotspot network access | |
Tank et al. | Security analysis of OpenStack keystone | |
Dočár | Bezpečnostní řešení pro cloudové technologie |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20230830 |
|
RD16 | Notification of change of power of sub attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7436 Effective date: 20231006 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A821 Effective date: 20231006 |