JP2018504806A5 - - Google Patents

Download PDF

Info

Publication number
JP2018504806A5
JP2018504806A5 JP2017529786A JP2017529786A JP2018504806A5 JP 2018504806 A5 JP2018504806 A5 JP 2018504806A5 JP 2017529786 A JP2017529786 A JP 2017529786A JP 2017529786 A JP2017529786 A JP 2017529786A JP 2018504806 A5 JP2018504806 A5 JP 2018504806A5
Authority
JP
Japan
Prior art keywords
request
encryption key
policy
security
encryption
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.)
Granted
Application number
JP2017529786A
Other languages
English (en)
Other versions
JP6851970B2 (ja
JP2018504806A (ja
Filing date
Publication date
Priority claimed from US14/574,337 external-priority patent/US10560441B2/en
Application filed filed Critical
Publication of JP2018504806A publication Critical patent/JP2018504806A/ja
Publication of JP2018504806A5 publication Critical patent/JP2018504806A5/ja
Application granted granted Critical
Publication of JP6851970B2 publication Critical patent/JP6851970B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Description

期待値を有するデータセキュリティ処理
[関連出願の相互参照]
本出願は、2014年12月17日に「DATA SECURITY OPERATIONS WITH EXPECTATIONS」と題され出願された同時係属中の米国特許出願第14/574,337号からの優先権を主張し、その開示内容全体を参照により本明細書に組み込む。
コンピューティングリソース及び関連データのセキュリティは、多くの場合重要度が高い。実施例として、組織はコンピューティングデバイスのネットワークを使用し、組織のユーザに堅牢なサービスセットを提供する場合が多い。ネットワークは複数の地理領域に広がる場合が多く、他のネットワークと接続することも多い。組織は例えば、コンピューティングリソースの内部ネットワーク及び他者に管理されたコンピューティングリソースの両方を用いて処理をサポートしてもよい。組織のコンピュータは、例えば、他組織のコンピュータと通信し、別組織のサービスを使いながらデータにアクセスし、及び/またはデータを提供してもよい。多くの場合、組織は他組織に管理されているハードウェアを用いてリモートネットワークを構成し操作し、それにより、インフラコストを削減し、その他の効果を実現する。そういったコンピューティングリソース構成であれば、特にそういった構成でのサイズ及び複雑さが増すにつれ、保有するリソース及びデータへのアクセスを確実にセキュアにすることが、求められる。
多くの場合、複数ソースからの暗号鍵は、セキュリティのためにコンピュータネットワークまたはシステムで使用されてもよく、例えば、データへの不正アクセスを防止するために暗号化を使用する。しかしながら、確実に、信頼される鍵を使って暗号化処理を実施し、信頼されないエンティティ(例えば、ハッカ)に暗号鍵の使用が知られないことが求められる。
以下の図面を参照して,本開示による多様な実施形態を説明する。
多様な実施形態を実施可能な環境を示す。 多様な実施形態を実施可能な環境を示す。 一実施形態によるセキュリティポリシを示す。 一実施形態によるTRUSKEYアクションを使った例示的なセキュリティ期待値の図である。 一実施形態による暗号化処理の実施要求を満たすプロセスを示す。 一実施形態による複数のセキュリティポリシ及び/または複数のセキュリティ期待値間におけるコンフリクトを解消するプロセスを示す。 多様な実施形態を実施可能な環境を示す。
以下の説明では、多様な実施形態を説明する。実施形態が十分理解されるよう、説明のために特定の構成及び詳細を設定する。しかしながら、当業者であれば、本特定詳細でなくても実施形態を実施できることは明らかであろう。さらに、周知の特徴は、説明する実施形態が不明瞭とならないよう省略または簡略化されてもよい。
本明細書に記載及び提案する技術では、暗号化されたリソースの復号及び妥当性確認など、データの妥当性確認に関する暗号化処理の実行にセキュリティ期待値を使用し、マルチテナント構成可能サービスの暗号化リソースを安全に管理することを含む。一実施形態では、マルチテナントのAPI構成可能暗号化サービスは、暗号化データの復号化及びデジタル署名検証などの暗号化処理の実施を求める要求(例えば、API要求であり、APIコールとも呼ばれる)をクライアントから受信するよう構成される。用語「デジタル署名」は、RSA式デジタル方式(RSA−PSSなど)、デジタル署名アルゴリズム(DSA)及び楕円曲線デジタル署名アルゴリズム、ElGamal署名方式、Schnorr署名方式、Pointcheval−Stern署名アルゴリズム、Rabin署名アルゴリズム、ペアリング式デジタル署名方式(Boneh−Lynn−Schacham署名方式など)、否認不可デジタル署名方式などを用いて生成された情報を含むメッセージの真正性を暗号で検証するのに使用可能な情報を含むことに留意する。さらに、メッセージ認証コード(ハッシュベースメッセージ認証コード(HMAC)、鍵付き暗号ハッシュ関数、及び他の情報タイプも、デジタル署名として使用してもよい。
暗号化サービスは、サービス及びサービスを介してアクセス可能なデータのセキュリティ及び完全性を確保するため、多様な機構を採用してもよい。マルチテナント構成可能暗号化サービスで使用可能な機構は、セキュリティポリシを使用したものである。以下に詳述するように、セキュリティポリシ(簡略化して単にポリシという)は、データアクセスに関する権限、及び、コンピュータシステムにAPI要求の履行などの処理を実施させる権限など、コンピュータシステムにおける権限を定める情報である。いくつかの実施形態では、暗号化サービスにおいて暗号鍵を使用して、安全な通信及び/またはデータ保存の確実な実施など、多様な用途に暗号化処理を実施してもよい。暗号鍵(文脈上明白であれば「鍵」ともいう)をそういった環境で使用し、例えば、データの暗号化及び復号化、デジタル署名の生成、ならびに認証を実施してもよい。
いくつかの実施形態では、DECRYPT及びVERIFY_SIGNATURE APIコールを実行するために実施する処理など暗号鍵を使用する処理は、さらに、対応する暗号化処理を実施するためには満たさなければならないセキュリティ期待値を指定してもよい。セキュリティ期待値は、要求(例えば、サービスプロバイダのカスタマから出され、及び/または許可されたAPIコール)履行の一部として評価される条件または条件セットである。つまり、セキュリティ期待値は、どのようにAPIコールを実行するかを示す。セキュリティ期待値は、機密保持の最小ビット数、ホワイトリストキーセット(例えば、信頼性のある暗号鍵セットであり、サービスプロバイダの別のカスタマに管理される暗号鍵のサブセットを含んでもよい)、ブラックリストキーセット(例えば、信頼性のない暗号鍵セットであり、サービスプロバイダの別のカスタマに管理される暗号鍵のサブセットを含んでもよい)、暗号鍵の失効日がそれ以前に設定される有効期限、暗号鍵の信頼性を評価する任意のコード、及び/またはそれらの組み合わせの、少なくとも一部に基づく条件を含んでもよい。セキュリティ期待値の条件は、いくつかの実施形態では、リクエスタが所定状態(例えば、連邦情報処理標準(FIPS)モード)にあることを示す(例えば、リモート証明などで表明し及び/または暗号により証明する)要求情報に照らし評価されてもよい。さらに、セキュリティ期待値は、セキュリティポリシのように、要求の履行を許可または拒否させてもよいが(例えば、復号鍵に信頼性が無くセキュリティ期待値が復号鍵の信頼性を要求する場合、復号化要求に対しプレインテキストの提供を実施しない)、より複雑なエフェクトも有し得る。例えば、セキュリティ期待値のエフェクトにより、妥当性確認に使用する暗号鍵の信頼性に応じて、デジタル署名の妥当性確認要求を変更してもよい。つまり、セキュリティ期待値の実行次第で異なる結果を返すなどして、セキュリティ期待値が同一のAPI要求を異なって実行させる可能性がある。
セキュリティ期待値を要求の主要目的に付属させてもよい。例えば、暗号化サービスは、デジタル署名の妥当性確認(検証)要求を受信してもよい。いくつかの実施例では、(例えば、セキュリティ期待値による要求が多くない場合)、デジタル署名の検証に使用する暗号鍵の信頼性に対する処理を実施せずにデジタル署名が正しいと検証して、要求を履行してもよい。他の実施例では、セキュリティ期待値は、デジタル署名が正しいこと、さらに、デジタル署名の検証に使用する暗号鍵が信頼性があると指定されたものであることの両方を検証するよう、デジタル署名の妥当性確認要求を求めてもよい(例えば、暗号鍵は信頼性のあるエンティティに関連するものとして暗号により検証可能であるため、及び/または、暗号鍵は期限のないデジタル証明書で指定されているため)。さらに、いくつかの実施形態において、論理演算子を使用して条件及び/または期待値を組み合わせ、論理演算子と併せて集計条件及び/または期待値成分の少なくとも一部に基づく結果をもたらす、集計条件及び/または期待値を形成してもよい。集計条件は、複数の集計段階を順に含み、複雑なマルチレベルの集計条件及び/または期待値を形成してもよい。
いくつかの実施形態では、例えば、暗号鍵を用いた処理の実施要求の一部として提供された追加情報の一部に、クライアントがセキュリティ期待値を提供するか、あるいは指定してもよい。他の実施形態では、要求を出すプリンシパルにセキュリティ期待値を関連づけ、セキュリティ期待値セットが、プリンシパルに使用される暗号鍵全てに適用されるようにしてもよい。さらに他の実施形態では、セキュリティ期待値を、アカウントに関連づけるか、要求コンテキストから決定可能であってもよい。本実施形態は、必ずしも互いに異ならず、及び/または、相互に排他的でないことに留意する。つまり、セキュリティ期待値が要求に明示された実施例もあるが、要求の情報を使用してセキュリティ期待値を適用するかを決定し、適用すると決定した場合にセキュリティ期待値を適用してもよい実施例もある。
セキュリティ期待値は、クライアントにより暗号化サービスに提供されるか、または暗号化サービスにより(例えば、コンピューティングリソースを管理するウェブサービスAPIコールを介して)一元管理されてもよい。いくつかの実施形態では、セキュリティ期待値は、暗号化サービスによりアクセス可能で一元管理されたリポジトリに保存され、暗号化サービスによりアクセス可能なポリシ管理モジュールに管理される。ポリシ管理モジュールは、暗号化サービスによりアクセス可能なソフトウェア、ハードウェア、または、ハードウェア及びソフトウェアの組み合わせであってもよく、いくつかの実施形態では、コンピューティングリソース(例えば、CPU、仮想マシンインスタンス)及びデータ記憶装置の両方を備えるフロントエンドシステムの一部であってもよい。コンピューティングリソースを使って、少なくとも部分的に期待値を評価し、セキュリティ期待値及び/またはポリシデータを検索し、セキュリティ期待値の一部として含まれる実行可能なコードを実行してもよい。
さらに、いくつかの実施形態において、セキュリティ期待値が、暗号化サービスによりアクセス可能なポリシ管理モジュールにより一元管理される場合などでは、セキュリティの危殆化に対してレジリエンスが高く、ユーザ(カスタマ)は恩恵を受ける。一実施例として、特定の暗号鍵が危殆化されたことが判明した場合、ポリシ管理モジュールは、当該鍵をブラックリストに載せてもよい(すなわち、全てのセキュリティ期待値評価に自動的にフェイルする鍵セットに当該危殆化暗号鍵を含める)。これとは対照的に、セキュリティ期待値がクライアントにより要求の一部として暗号化サービスに提供される実施形態では、危殆化暗号鍵を使う可能性のある全クライアントに、当該危殆化暗号鍵をブラックリストに入れるようアップデートを要求してもよい。
いくつかの実施形態では、暗号化サービスにより、使用前に暗号鍵を信頼するという要件をプログラム的に構成できるようにしてもよい。本明細書において、「信頼」とは、暗号鍵を信頼するかどうかに依存したコンピュータシステム処理をいう。例えば、信頼された暗号鍵を使って暗号化サービスから取得可能なデータを暗号化するが、信頼された暗号鍵であると決定されていない暗号鍵を使って暗号化サービスからアクセス可能なデータを暗号化しないよう、コンピュータシステムを構成してもよい。一般的に、コンピュータ実施方法での出力は、信頼性のある暗号鍵であると指定されているかどうかに依存する。
クライアントに使用可能になる前に暗号鍵を信頼することを暗号化サービスが求める実施形態では、様々な利点がある。当該利点には少なくとも、暗号化サービスを使用するコンピューティング環境のデータは、単純に無効状態か有効状態かのいずれかであることを含む。対照的に、より複雑なシステムでは、デジタル署名は正しいが、信頼性のある暗号鍵を使っても検証できない場合など、データが複数の他の状態にある可能性もある。無効状態には少なくとも、暗号化されたデータまたはデジタル署名が(例えば、悪意のある者に、または間違って)変更されて完全でないと検出された状態、または、データは変更されていない(すなわち、完全である)が、信頼性が無いか、危殆化されているか、もしくはそうでなくてもクライアントが相手方を信頼する基準を満たしていないと判明している相手方の暗号鍵を使うという状態がある。信頼されないデジタル署名であることを検証するのに暗号鍵が使用可能であるため、正しく署名されたデータではあるが信頼されない場合など、有効性について中間的な状態での不注意な使用を回避するよう、本開示による暗号化サービスを構成可能である。
いくつかの実施形態において、デフォルトではクライアントは、限られた暗号鍵セットのみ信頼する。例えば、クライアントは、デフォルトでは当初、クライアント内のアカウントのいずれかからの、クライアントの特定アカウントからの、またはクライアントの特定暗号鍵からのデータのみを信頼してもよい。上記の実施形態では、第三者からの暗号鍵(すなわち、他のクライアントから暗号鍵)は信頼されず、クライアントは暗号化処理に使用できない。アプリケーションプログラミングインタフェースコールを使用して暗号化サービスを構成し、クライアントが信頼する暗号鍵に従い暗号化処理を実施してもよい。
図1は、多様な実施形態を実施可能な環境100を示す。図の環境100では、暗号化サービス106に対し暗号化処理の完了を求める要求104を出すクライアント102、及び、要求に対する応答108を示す。図中、処理104はVERIFY_SIGNATURE処理であり、クライアントがデジタル署名110及びセキュリティ期待値112を提供する。処理を実施して要求を満たすために、暗号化サービスは、真正性の決定に使用する鍵の真正性及び信頼性の両方について、デジタル署名を検証し得る。応答では、例えば、デジタル署名を正しいと決定したかどうかを明示してもよい。正しいと決定した場合の応答に、他の情報を含めてもよく、例えば、デジタル署名の正確性の検証に使用するデジタル証明書の認証に成功したかどうか、デジタル署名の検証に使用する暗号鍵に信頼性があるかどうか、デジタル証明書が失効していないかどうか、及び/または、デジタル署名が真正であるかどうかの確認に追加して実施される確認の結果得られた他の情報などがある。説明上、VERIFY_SIGNATUREを使用するが、DECRYPTなど他の暗号化処理を使用してもよいことに留意する。クライアント102は、本明細書で説明する多様な処理を(例えば、実行可能なコードを用いて)実施するよう構成されたコンピュータシステムであってもよい。クライアントは、クライアントアプリケーション、オペレーティングシステム、または、本明細書で論じるように動作するよう構成可能な他の適切なソフトウェア、ハードウェア、もしくはそれらの組み合わせに応じて動作してもよい。
一実施形態では、デジタル署名の検証を求める要求104は少なくとも、検証するデジタル署名、デジタル署名が生成されたとするメッセージを含み、いくつかの実施形態では、署名を検証するために暗号鍵を備えるかあるいは指定(例えば、識別子により)してもよい。いくつかの実施形態では、要求は暗号鍵を含まず、また指定しないが、暗号化サービスによる暗号鍵の選択に使用可能な情報を含んでもよく、例えば、要求を出すか、暗号化サービスが管理する複数の暗号鍵からの暗号鍵の選択に使用可能な他の情報を出すエンティティの識別子を含み、暗号化サービスが暗号鍵を選択できるようにしてもよい。実施例として、コンピューティングリソースサービスプロバイダのカスタマは、デフォルトで使用する関連暗号鍵を有してもよい。
鍵の識別子は、一意の識別子であってもよいが、必ずしも一意でなくてもよいことに留意する。例えば、鍵の識別子は、暗号鍵の系列を識別してもよい。例えば、いくつかの実施形態では、キーローテーションを実施する。キーローテーションでは鍵を他の鍵に交換して、使用暗号を実質的にクラック可能にするのに十分な復号化データが収集されないようにしてもよい。さらに、鍵の識別子が一意に鍵を識別しない場合、多様な技術を採用して適切な機能を有効にしてもよいことに留意する。例えば、多様な実施形態において、鍵の識別子で識別される鍵の系列は有限である。鍵の識別子で識別される鍵を使用する復号化処理が要求された場合、データ(例えば、暗号化実施の際のタイムスタンプ)を追加して、使用に適した鍵を決定できるようにしてもよい。いくつかの実施形態では、暗号文は、鍵バージョンを示す情報を含んでもよい。いくつかの実施形態では、可能性のある鍵全てを使用して、ハッシュ化された多様な復号化データを提供し、結果得られたハッシュを保存されたハッシュと比較して、使用する鍵を識別してもよい。鍵数は有限であるため、適切な復号を提供された中から選択してもよい。いくつかの実施形態では、認証済の暗号化を用いるなどして、鍵の少なくとも一部に基づいて暗号文が生成されていないことを暗号化サービスが検出できるよう、鍵を使った復号化を実施する。また、他の変形も、本開示の範囲内であると考えられる。
暗号化サービス106は、クライアントから要求を受信し、要求に応答して、データの正確性及び信頼性に基づき、また、要求の一部として提供されたメタデータの少なくとも一部に基づき、要求の処理方法を決定してもよい。暗号化サービスは一連の処理114を実施し、デジタル署名110の正確性及び信頼性、ならびに要求の処理方法を決定してもよい。デジタル署名(文脈上明白であれば単に署名ともいう)は、デジタルメッセージの真正性を示し、メッセージが特定の既知の送信者により作成されたこと(認証)、送信者がメッセージを送信したことを否定できないこと(否認防止)、及び、メッセージが転送中に変更されていないこと(完全性)を保証するのに使用可能な情報である。現在使用されているデジタル署名には、多様なバージョンの公開キー暗号化標準(PKCS)及びデジタル署名アルゴリズム(DSA)がある。一連の処理114は、少なくとも、暗号鍵の選択116、プリンシパルに適用するセキュリティポリシを満たしているかどうかの決定118、暗号鍵に適用されるセキュリティ期待値を満たしているかどうかの決定120、及び、要求に対する応答作成122のステップを含んでもよい。暗号化サービスは、場合により互いに共有することもある同一アカウントの複数のユーザからのデータを含むか当該データへのアクセスを有してもよく、逆に、データを互いに共有すべきでない複数の独立したカスタマからのデータを含んでもよい。そういった構成では、例えば、コンピューティングリソース及び/または保存リソースの最適化、レイテンシ低減、帯域幅増大などが望ましい場合がある。いくつかの実施形態において、カスタマは、動的にコンピューティングリソースに割り当てられ(例えば、システム全体のコンピューティングリソースの可用性に基づいて)、当該カスタマは、他のコンピューティングリソースに再割り当てされ得る(例えば、システム全体のコンピューティングリソースの可用性の変更に基づいて)。
暗号鍵の選択116は、要求104のコンテキストの少なくとも一部に基づいてもよい。多様な実施形態において、要求104は、鍵の識別子を指定する追加パラメータを含み、及び/または、鍵の識別子は、コール側クライアントまたはコール側クライアントに関連するアカウントに基づいて導出されてもよい。追加してまたは代替的に、暗号鍵は、要求104に含まれクライアントにより暗号化サービスに提供されてもよい。
プリンシパルに適用するセキュリティポリシを満たしているかどうかの決定118では、1以上の適用セキュリティポリシを識別し取得し(例えば、1以上の適用セキュリティポリシを符号化する1以上の電子文書を取得して)、適用セキュリティポリシを満たしているかどうかを評価してもよい。プリンシパルに適用するセキュリティポリシは、ポリシ管理モジュール124から取得されてもよく、かつ、要求を出すクライアント、及び/または、要求の一部として提供される情報の少なくとも一部に基づいてもよい。いくつかの実施形態では、プリンシパルは、デフォルトで、クライアント(例えば、クライアントに関連付けられたマシン、アカウント、またはユーザ)のアイデンティティに関連付けられているが、デフォルトでの関連付けは、要求の一部として提供される追加情報に基づいて上書きされてもよい。
一実施形態では、ポリシ管理モジュール124は、セキュリティポリシの保存及び検索を管理し、セキュリティポリシをプリンシパルに関連付けるプログラミングロジックで構成されたコンピュータシステムである。いくつかの実施形態では、セキュリティポリシは、セキュリティポリシに保存されたデータの一部として、ポリシをプリンシパルに関連付ける情報を含んでもよい。他の実施形態では、セキュリティポリシからプリンシパルへのマッピングは、例えば、キー/バリューペアの鍵が一意に1つのプリンシパルとなるような連想配列を使用して、または、関連プリンシパルレコードと一致する外部キーフィールドをセキュリティポリシレコードが含むリレーショナルデータベースを使用して、実施されてもよい。いくつかの実施形態では、さらにグループポリシを設定し、セキュリティポリシを複数のプリンシパルに適用してもよい。一般的に、ポリシ管理モジュール124は、要求に関連する情報(例えば、要求内の情報、ならびに/または、要求のコンテキスト情報及び要求外で決定されるコンテキスト情報)を使用するよう構成される。ポリシ管理モジュールから適用セキュリティポリシを取得すると、暗号化サービスは適用セキュリティポリシを満たしているかどうかを評価してもよい。
いくつかの実施形態では、適用セキュリティポリシは、コール側クライアントとは違うプリンシパルに関連付けられてもよい。例えば、いくつかの実施形態では、クライアントは、適用セキュリティポリシを識別する際に異なるアクタの適用セキュリティポリシを使用すべきであると示す追加情報を要求で提供してもよい。例えば、クライアントは、要求の一部に第2クライアントからのデジタル署名トークンを含めてもよく、トークンは、第2クライアントが第2クライアントのセキュリティポリシに基づいた要求発行を第1クライアントに許可することを示す情報を含む。そういった構成では、プリンシパルは、第1(コール側)クライアントではなく、第2クライアントとなる。他の実施形態では、プリンシパルがコール側クライアントでなくてもよい。
暗号鍵に適用するセキュリティ期待値を満たしているかどうかの決定120では、1以上の適用セキュリティポリシを識別し取得し、適用セキュリティ期待値を満たしているかどうかを評価してもよい。多様な実施形態では、暗号鍵に適用するセキュリティ期待値は、暗号化サービスにより、ポリシ管理モジュールにより、及び/または、本明細書に記載する技術を実施するよう構成された1以上のサービスを実施するよう構成されたセキュリティチップ(TPM)もしくは他のデバイスなど、暗号化材(例えば、ハードウェアトークン)のハードウェアベースのプロテクト機能を有するハードウェアまたは他のセキュリティモジュール(HSM)もしくは他のデバイスなどの別個のハードウェアコンポーネントにより、識別され、取得され、及び評価されてもよい。
いくつかの実施形態では、要求に対する応答作成122は、適用セキュリティ期待値を満たしているかどうかの少なくとも一部に基づいて行う。セキュリティ期待値を満たしている場合、暗号化サービスはセキュリティ期待値に従い要求を履行してもよい。セキュリティ期待値の評価では、暗号化処理の実施に使用する暗号鍵を信頼すべきかどうか決定してもよく、評価には多様な処理モードがあってもよい。処理モードによって、暗号鍵の信頼性をどのように評価するかが異なる。いくつかの実施形態では、処理モードは要求内に指定されてもよく、または、暗号化サービスにより設定されてもよい。
図2は、多様な実施形態を実施可能な環境200の実施例を示す。一実施形態では、クライアント202(リクエスタともいう)は、ポリシ実施モジュール210及び期待値評価エンジン212を備えるフロントエンド206を備えるコンピュータシステムである暗号化サービス204に要求を出してもよい。フロントエンド206は、認証ホスト208に、及び、ポリシ構成220を取得し作成し削除し更新するよう構成されたポリシ管理モジュール216にアクセスするよう構成されたコンピュータシステムである。また、暗号化サービスは、1以上のハードウェアセキュリティモジュール(HSM)を備えたバックエンド214システムを備えるが、分かり易くするため図には1つのHSM218を示す。例示的な暗号化サービスは、参照により本明細書に組み込む「Data Security Service」と題され2013年2月12日に出願された米国特許出願第13/764,963号に記載されている。
一実施形態では、サービスフロントエンドホスト206は、1以上のクライアントから要求を受信し、認証ホスト208と通信して要求の処理方法を決定する。認証ホスト208は、コンピュータシステム、コンピュータシステムプロセス、プログラムアプリケーション、サービスモジュール、または、これら及び/もしくは他のそういったコンピューティングシステムエンティティの組み合わせであってもよい。認証ホスト208を暗号化サービスにより利用し、フロントエンド206に出された要求を処理するか及び/または処理方法を決定してもよい。認証ホストは、例えば、暗号化サービスに出された要求のデジタル署名を検証してもよく、あるいは、要求の履行が許可されているかどうかを決定してもよい。さらに、説明では本開示全体でカスタマ/プロバイダの関係を論じているが、本明細書で説明する技術は、カスタマが暗号化の内部カスタマ202(例えば、サービスプロバイダ202の別のサービス)である場合など、他のコンテキストに適応可能である。
ポリシ管理モジュール216は、適用する場合、ポリシに関する情報及びポリシ自体を提供するよう動作可能な暗号化サービスのサービスまたはサブシステムの実施例である。ポリシ管理モジュールは、ポリシ構成220を作成、変更、削除、コピー、または伝播するよう動作可能であってもよい。例示的なポリシ構成(一例にポリシドキュメントがあり、文脈上明白な場合ポリシともいう)を、以下図3に詳述する。図2に戻るが、ポリシ実施モジュール210などフロントエンド206の構成要素は、アプリケーションプログラミングインターフェイス(API)を使用して、ポリシ管理モジュール216と、さらにはポリシ構成220と対話してもよい。いくつかの実施形態では、クライアント要求は、ポリシ管理モジュールに直接送られてもよいが、他の実施形態では、フロントエンドまたは構成要素(例えば、認証ホスト)は、クライアント要求を解析し、ポリシ管理モジュールが受け入れ可能なフォーマットで要求を生成し、ポリシ管理モジュールに当該要求をディスパッチしてもよい。図2では、ポリシ管理モジュールは、フロントエンド及びバックエンドの双方と分離されたサービスとして実施されている。しかしながら、ポリシ管理モジュールは、他の実施形態では、バックエンド214の一部として実施されてもよい(すなわち、ポリシ構成へのアクセスを、中間サービスではなくバックエンド214に向ける)。そういった実施形態では、バックエンド214に向けた要求は、なおポリシ管理モジュールにより実施される。
ポリシ構成220は、ユーザ、セキュリティ管理者、システム管理者、または該当する権限を有する他のプリンシパルにより作成、変更、コピー、削除、または継承されてもよい。いくつかの実施形態では、プリンシパルがポリシを作成、変更、コピー、削除、または継承するのに十分な権限を有しているかどうかは、プリンシパルが作成、変更、コピー、削除、または継承を試みるポリシに基づいてもよい。例えば、セキュリティ管理者は、ゲストユーザによるリソースへのアクセスを拒否するようポリシを作成するのに十分な権限を有してもよく、ゲストユーザは、セキュリティ管理者によるリソースへのアクセスを拒否するポリシを作成するのに十分な権限を有していなくてもよい。任意の標準的な、分散された、仮想のまたはクラスタ化された環境において、データサーバ、データベース、データ記憶デバイス、及びデータ記憶媒体を任意に組合せと任意の数とを含む多様なコンピュータベースハードウェア、及び/またはソフトウェアコンポーネントを使用して、ポリシ構成を記憶してもよい。
一実施形態では、サービスフロントエンドホスト206がカスタマネットワーク202からの要求を受信すると、サービスフロントエンドホスト206は、認証ホスト208に認証要求を出し、認証ホスト208は認証応答及び要求に適したポリシセットを指定する情報を出し、一実施形態では、認証応答は、サービスフロントエンドホスト206への要求が真正かどうか(例えば、当該要求のデジタル署名の検証に成功したかどうか)を指定する。ポリシセットを受信すると、サービスフロントエンドホスト206は、ポリシ実施モジュールを利用して、要求を履行すべきか否かなど要求の処理方法を決定してもよい。さらに、要求を少なくとも部分的に履行すべきであると決定すると、期待値評価エンジン212を使用して、どのように要求を履行するかを決定してもよい。期待値評価エンジンを使って、クライアント及び/または暗号化サービスにより(例えば、適用ポリシ構成により)提供されるセキュリティ期待値に従い要求を評価してもよい。
期待値評価エンジンは、フロントエンドの構成要素として図示されているが、バックエンド214の一部として含まれてもよく、または、HSM216もしくは暗号化材のハードウェアベースプロテクト機能を有する他の適切なデバイスの一部として含まれてもよい。ポリシをポリシ管理モジュール216から受信すると、サービスフロントエンドホスト206は、ポリシ実施モジュールに当該ポリシを提供して、要求の処理方法(例えば、ポリシが要求履行を許可するかどうか、及び/または、履行の進め方)を評価してもよい。ポリシ実施モジュール216は、デフォルトポリシの実施(例えば、明示的に定められたポリシが無い場合の履行の進め方の決定)、及び複数のポリシ間のコンフリクトが要求処理にどのように影響するかの決定(例えば、複数のポリシを適用する場合の履行の進め方の決定)など、ポリシの認証に関連する多様なタスクを実施してもよい。いくつかの実施形態では、ポリシ管理モジュールは、ポリシセット及び要求コンテキストを受信し、それに応答して、要求の履行方法の決定(例えば、要求を許可するか拒否するか)を提供してもよい。
バックエンド214は、暗号鍵を保存し取得するよう動作可能であり、少なくともハードウェアセキュリティモジュール(HSM)、または、暗号化材(例えば、ハードウェアトークン)のハードウェアベースの保護機能を有する他のデバイスを備えてもよい。バックエンドは、マルチテナントシステム内の複数のクライアントからの暗号鍵を保存し取得してもよく、1つのクライアントの暗号鍵は、デフォルトでは、システム内の他のクライアントにアクセスできない。
図3は、一実施形態によるポリシドキュメントの実施例(例示的なポリシ構成)を示す。一実施形態では、ポリシドキュメント300は、ポリシドキュメントにより符号化されたポリシに関連する多様な情報を符号化する。ポリシは、eXtensinble Access Control Markup Language(XACML)、Enterprise Privacy Authorization Language(EPAL)、Amazon Web Services Access Policy Language、Microsoft SecPol、または、履行する要求について満たさなければならない1以上の条件の任意の適切な符号化方法など、宣言的アクセス制御ポリシ言語で符号化されてもよい。図3に示すように、ポリシドキュメント300は、文字列を含むポリシドキュメント300の名称302を含む。名称302を使用して、例えば、人による読み取りが可能な用語を使用して有意な識別子を提供してもよい。一実施例として、名称302は、例えば「MyDataStoragePolicy」という趣旨の文字列であってもよい。また、図3に示すように、ポリシドキュメント300は、バージョン304を含んでもよい。多様な要求が受信され履行されてポリシをアップデートする間、ポリシドキュメント300が時間とともにどのように変化するかを、バージョン304を使って追跡してもよい。ポリシドキュメント300を更新する度、バージョン304は新しい値に更新されてもよい。また、ポリシドキュメント300は、現行バージョンを備えるポリシドキュメント300を作成させることとなった要求を出したユーザの識別子である発行者306を指定してもよい。図3に示し上記したように、ポリシドキュメント300は、1以上のステートメント308を含んでもよい。ポリシドキュメントのステートメントは、論理和を使用して処理されてもよい。
上記のように、ステートメントは、許可を形式的に記述したもの、または一般的に、1以上のリソースへの1以上のアクセス条件を形式的に記述ものであってもよい。したがって図3は、上述したように、ポリシドキュメントに符号化される場合があるステートメント308の実施例を示す。図3に示すように、ステートメント308は、1以上のプリンシパル310を識別する情報を含んでもよい。プリンシパルは、ステートメント308を適用するエンティティ(例えば、ユーザ、ユーザグループ、ユーザクラス、コンピュータシステム、または、システム内のシステムもしくはリソースへのアクセス許可を与える任意のエンティティ)であってもよい。
一実施例として、コンピューティングリソースサービスプロバイダのカスタマは、アカウントを有してもよい。アカウントは複数のサブアカウントに関連付けられ、各サブアカウントは、カスタマの1ユーザに対応してもよい。各ユーザは、ステートメントのプリンシパルとして備えられ得る対応識別子を有してもよい。また、プリンシパルは、他の方法で識別されてもよい。例えば、プリンシパルセットは、当該セットの識別子で識別されてもよい。例示的な実施例として、組織内の1部門は、1つの対応識別子を有してもよい。ステートメント内に部門の識別子を挙げ、1つのステートメントを当該部門に関連する複数ユーザに適用してもよい。プリンシパルセットの識別子は、例えば、従業員が組織及び/または組織の部門に雇用される、及び/または、退職する場合など、プリンシパルセットが動的に変更されている場合に、有用となってもよい。
一般的に、プリンシパルセットは、少なくとも一部のプリンシパル特性に基づいて定められてもよい。また、プリンシパルの識別子は拡張可能であってもよい。例えば、誰にでも、すなわち、コンピューティングリソースサービスプロバイダのアカウントに代わり要求を出すことができる全てのユーザ、または一般的には全てのユーザに、ステートメント308を適用することを示す情報が含まれてもよい。いくつかの実施形態では、ステートメントは少なくとも、プリンシパル310、リソース312、アクション316、及びエフェクト318を特定しなければならない。セキュリティポリシに記述されたプリンシパルは、例えば、ユーザ、グループ、ドメイン、サービス、コンピュータ、人、プロセス、スレッド、環境、または、暗号化サービスによる認証が可能な他のタイプのエンティティであってもよい。プリンシパルの実施例には、アクタセット(例えば、複数ユーザ、または「管理者」などのユーザグループ)、多様なアクタタイプを含むセット(例えば、ユーザ及びドメインを含むセット)、またはそれらの任意の組み合わせがあってもよい。プリンシパルは、プリンシパルのプロパティに基づいてヒューリスティックに記されてもよく、例えば、ポリシのプリンシパルには、安全なトランスポートレイヤセキュリティ(TLS)接続を介して暗号化サービスに接続されたエンティティがあってもよい。
説明するリソースは、ポリシが適用される場合があるコンピュータベースのリソースであってもよい。ポリシに記載されるリソースには、コンピューティングリソース(例えば、プロセッサ、コンピューティングクラスタ)、コンピュータストレージ(例えば、コンピュータファイル、コンピュータディスクドライブまたはパーティション、物理ハードドライブ、磁気テープデータストレージ)、暗号化リソース(例えば、暗号鍵)、コンピュータオペレーション(例えば、APIまたはAPIセット)、及びシステムリソース(例えば、同期プリミティブ)など多様なタイプのコンピューティングリソースがあるが、これらに限定されない。プリンシパルと同様に、ポリシに指定されるリソースは、単体リソース(例えば、ファイル)、リソースセット(例えば、任意のファイルリスト)、リソースタイプの組み合わせ(例えば、コンピュータファイル及びプロセッサ)、またはそれらの任意の組合せに適用されてもよい。ポリシのアクションは、ポリシで指定されたリソース上でアクタによる実施が許可されたアクションまたはアクションセットを指定する。アクションは、例えば、1つのAPIコール(例えば、論理コンテナに保存された全てのデータのリストを提供する「ListData」API)など特定の単体アクションであってもよく、アクセスレベル(例えば、「ListData」を含む全ての読み取り処理が含まれた「読み取り」アクセス)、またはその組み合わせを示してもよい。
図3に示すように、ステートメント308は、1以上のリソース312を識別する。リソースは、上記のようなコンピューティングリソースであってもよい。リソースは、例えば、コンピューティングリソースサービスプロバイダにより提供されるサービスのサブジェクトであってもよい。一実施例として、リソースは、仮想コンピュータシステムであってもよく、複数のデータオブジェクトの関連付けに使用する論理データコンテナであってもよく、ブロックレベルデータ記憶デバイスのボリューム識別子、データベース、データベースに保存されるアイテム、データオブジェクト(例えば、ファイル)、及び、サービスとして提供される場合がある一般的に任意のタイプのリソースであってもよい。いくつかの実施形態では、リソースは暗号鍵であり、カスタマもしくは他のエンティティ(例えば、ユーザ、ロール、グループなど)に代わり暗号化サービスにより管理される暗号鍵、及び/または、1以上のデータストレージサービス用のデフォルトキーとして使用する暗号鍵などがある。プリンシパルと同様に、リソースは、リソースの特性の少なくとも一部に基づき定められる場合があるリソースセットの識別子を使用して記述されてもよい。例えば、いくつかの実施形態では、仮想コンピュータシステムは、仮想コンピュータシステムにより実行されたロールを記す場合があるユーザ生成タグに関連付けることができる。一実施例として、仮想コンピュータシステムグループは、「ウェブサーバ」タグに関連付けられてもよい。したがって、リソースは、そういったタグにより識別されてもよい。別の実施例として、リソースは論理データコンテナに対応し、それにより、論理データコンテナ内に保存された、すなわち論理データコンテナに関連する任意のデータオブジェクトにステートメント308を適用するようにしてもよい。また、リソース(例えば、データオブジェクト)は、リソースの暗号化に使用する鍵で定められてもよい。上記に加えて、ポリシを適用するオブジェクト(例えば、プリンシパル及びリソース)は、セキュリティアサーションマークアップ言語(SAML)を使って送信される属性、及び/または、ディレクトリを使用して決定される属性の少なくとも一部に基づいてもよい。
図3に示すように、ステートメント308は1以上の条件も含んでもよい。一実施形態では、条件は、ポリシドキュメント内のステートメントを特定のコンテキストに適用するかどうか、すなわち、コンテキスト内で出された要求に適用するかどうか、を決定する。上記条件では、ブール演算子(equal、less thanなど)を使って、ステートメント内の他の値(プリンシパル、リソースなど)及び認証コンテキスト内の他の値に対し条件を評価できるようにしてもよく、認証コンテキスト内の他の値は、ポリシが評価される要求に提供されても提供されなくてもよい。条件値には、日付、時間、リクエスタのインターネットプロトコル(IP)アドレス、要求元の識別子、ユーザ名、ユーザ識別子、及び/または、リクエスタのユーザエージェントなどの値を含めることができる。また、値は、条件が適用されるサービスに固有であってもよい。ANDやORなどの論理コネクタを使用して、評価のために条件を論理的に繋げてもよい。
また、ステートメントは、1以上のアクション316を符号化してもよい。一実施形態では、アクションは、サービスプロバイダにより実施可能な処理である。一実施形態では、アクションは、サービスプロバイダによりサポートされたAPIコールに対応する(すなわち、サービスプロバイダに対し出される可能性があり、サービスプロバイダが実行する場合があるAPIコール)。また、指定されたアクションは、APIコール(おそらく多種多様あるAPIコール)の実行の一部として実施される処理であってもよく、一部のAPIコールでは他の処理も実施されてもよい。例えば、APIコールの実行では、複数の処理を実施し、ポリシに複数処理のうち1以上をアクションとして指定してもよい。
図3に示すように、ステートメント308は、1以上のエフェクト318も含んでもよい。一実施形態では、エフェクトは、要求に対し期待値される結果を決定し、ポリシのアクタは、ポリシで指定された処理を同一ポリシで指定されたリソース上での実施を試みる。エフェクトは、リソースにアクセスする際の処理を単に「ALLOW(許可)」または「DENY(拒否)」してもよい。例えば、ポリシドキュメント300により符号化されたポリシを復号化要求に適用する場合、ステートメント308の条件が成立することで、エフェクト318に従って要求の履行を許可または拒否してもよい。2つの異なるステートメントが同時に履行可能なステートメントを含み、当該2つのステートメント間でエフェクトが異なる時、コンフリクト解消ルールをインスタンスに適用してもよい。例えば、明確にポリシで許可しない限り、デフォルトでは拒否としてもよく、明示的拒否は明示的許可より優位、またはその逆となるよう、システムを構成してもよい。コンフリクト解消を含む例示的な方法は、図6を参考に以下で論じる。明示的なエフェクト(例えば、明示的許可または明示的拒否)とは、ポリシで符号化されたエフェクトである。
図4は、TRUSTKEYアクションを用いて暗号鍵の使用を認可する例示的なセキュリティポリシを示す。分かり易くするため、ポリシドキュメント400は、プリンシパル、リソース、アクション、及びエフェクトのみで示されているが、ポリシドキュメントは、図3で上述したように追加情報を含んでもよい。TRUSTKEYアクション406は、ポリシドキュメントで指定されたエフェクト408に基づいて暗号化処理を実施する際に、ポリシドキュメントで識別されたプリンシパル402に、リソース404の使用を許可または拒否する。いくつかの実施形態では、ポリシドキュメント400で指定されたリソース404は、暗号鍵、及び、暗号化ファイルまたは暗号化メディアストレージなど暗号鍵と併せて使用可能な他のリソースを含んでもよい。TRUSTKEYアクションはTRUSTKEY APIコールに対応する場合がある実施形態もあるが、TRUSTKEYアクションは別のAPIコール(すなわち、追加アクションを有する別のAPIコール)の一部である実施形態もあることに留意する。
いくつかの実施形態では、クライアントは、暗号化サービスにTRUSTKEYアクションを介して、信頼性のある暗号鍵セットに暗号鍵を追加して含んでもよい。TRUSTKEYアクションは、少なくとも、データの暗号化及び復号化、ならびに、デジタル署名の生成及び妥当性確認などの暗号化処理を含む、多様な処理を実施するためにクライアントが信頼を望む暗号鍵または暗号鍵セットを少なくとも記述する。信頼性のある暗号鍵のみを使って、暗号化処理を実施してもよい。また、いくつかの実施形態では、TRUSTKEY処理は、TRUSTKEY処理が暗号鍵を信頼性があると識別するためには満たさなければならない条件を含んでもよい。いくつかの実施形態では、TRUSTKEY処理(または、暗号化処理の結果を信頼するかどうかの決定に関連して使用する他の処理)を実行する際に使用する条件では、暗号鍵に固有なプロパティを使用してもよい。暗号鍵に固有なプロパティは、鍵サイズ、及び、鍵自体から決定され得る他の情報を含んでもよい。
図5は、上記の実施形態における要求を処理するプロセス500の実施例を説明する。プロセス500は、上記のようなフロントエンドを実施するウェブサーバなど暗号化サービスもしくは暗号化サービスの構成要素など任意の適切なシステムにより、または、アプリケーションサーバ及び/もしくはセキュリティモジュールと連携したウェブサーバにより、実施されてもよい。説明上、プロセスを図2に記載したような暗号化サービスに関連して説明したが、暗号化サービスを実施するためのコンピューティングリソースの他の構成も、本開示の範囲内にあるとみなす。暗号化サービスは、暗号化処理を実施するよう要求を受信してもよい(502)。いくつかの実施例では、要求はウェブサービス要求であるが、他のAPIコールを本開示の範囲内であるとみなす。さらに、いくつかの実施形態では、ハードウェアデバイスによりプロセス500またはその処理のサブセットを実施してもよく、当該ハードウェアデバイスは、例えば、HSM、または、暗号鍵のハードウェア保護機能を提供し、いくつかの実施形態では、プレインテキスト形式に暗号鍵のエクスポートができない他のデバイスである。プログラムによってデバイスに情報提供をさせる(例えば、デバイスのインタフェースを通して)正当な方法が無い場合、情報はプログラムによるエクスポートができないと言えよう。例えば、プレインテキスト形式の情報にアクセスして、ハードウェアにプレインテキスト形式の情報を表示させる要求メカニズム(例えば、アプリケーションプログラミングインタフェース(API)コール)が存在しないよう、情報を保持してもよい。一実施例として、情報を保存するデバイス(例えば、暗号化モジュール)は、複製がプレインテキスト形式の情報を含みメモリの一部または全てを複製するような能力が無いよう構成されてもよい。しかしながら、説明のため本開示全体を通し、プレインテキスト形式の情報を入手するための正当な方法が無い情報を使用するが、多様なセキュリティプロトコルを採用し、プレインテキスト形式の情報への不正アクセスの防止を求め、許可使用数を限定して情報取得が可能となるよう保持される情報もあることに留意する。一般的に、プログラムでのエクスポートができない情報とは、プレインテキスト形式の情報を完全に取得可能であれば、プレインテキスト形式の情報を得るために特別な手段を講じる必要がある情報(例えば、1以上の暗号鍵)である。
分かり易くするために、例示的なDECRYPT処理を図5の内容の中で説明する。しかしながら、説明するプロセス500を用いて、デジタル署名検証などの暗号化処理を実施する他の要求を処理してもよい。要求は、ネットワークを介して受信されてもよく(502)、いくつかの実施例では、ウェブサービス要求である。
一実施形態では、要求を処理するために、暗号化サービスは暗号鍵を選択する(504)。暗号鍵は、例えば、502で受信した要求内の暗号鍵の識別子、及び/または、上記したような要求に含まれる他の情報の少なくとも一部に基づき選択されてもよい。また、要求外の情報から決定されるコンテキスト情報を使用して、暗号鍵を選択(504)してもよい。
暗号化サービスまたは暗号化サービスの構成要素は、要求が真正であるかどうかを決定するために確認を行う(506)。いくつかの実施形態では、暗号化サービス内または暗証化サービスによりアクセス可能な認証モジュール(図2に示す認証ホストなど)が、当該ステップを実施してもよい。真正要求とは、特定パーティ(例えば、クライアント202、または、要求を出す権限をクライアント202に委任する第三者)により要求が出されたことを要求の受信側(すなわち、暗号化サービス)に保証できるよう、クライアントのアイデンティティが認証される場合がある要求である。いくつかの実施形態では、認証された暗号、デジタル署名、メッセージ認証コード(MAC)を使用するか、暗号化サービスが相手方を認証できるプロパティを有する暗号化プロトコル(例えば、TLS接続)を使用して、要求を出す。真正性確認は要求自体に対し、すなわちDECRYPT要求について行われ、真正性確認は少なくとも、要求を出した当事者のアイデンティティの妥当性確認を実施し、いくつかの実施形態では、応答に含まれる暗号文の真正性を検証しないことに留意する。要求が真正であると決定できない(例えば、不正な暗号鍵で、デジタル署名が改ざんされているかデジタル署名が生成された)場合、暗号化サービスは要求を拒否し(520)、いくつかの実施形態では、クライアントにエラーを返すか、及び/または他の方法をとってもよい(例えば、1以上の電子メッセージを介してセキュリティ管理者に通知する)。
要求が真正であると決定すると、一実施形態では、暗号化サービスまたは暗号化サービスの構成要素は、要求が適用セキュリティポリシを満たすかどうかを決定する(508)。いくつかの実施形態では、暗号化サービス内のまたは暗号化サービスによりアクセス可能なポリシ実施モジュールが、当該ステップを実施してもよい。上記したように、要求の真正性決定の一部として、要求に適用するポリシセット(総称してセキュリティポリシという)を取得してもよいが、他の実施形態ではセキュリティポリシを他の方法で取得してもよい。取得したセキュリティポリシには、プリンシパルに実施が許可されるアクション、及び/または、アクションの実行に使用されるリソースに関する制限が含まれてもよい。例えば、セキュリティポリシの中には、権限の低いプリンシパルの能力を制限し、当該プリンシパルに「読み取り」または「読み取り」型の暗号化処理(例えば、DECRYPT)の実施のみ許可するが、「書き込み」または「書き込み」関連の暗号化処理(例えば、ENCRYPT)を使って新コンテンツの変更も作成も許可しないものがある。第2の実施例として、セキュリティポリシの中には、プリンシパルに「書き込み」または「書き込み」関連の暗号化処理の実施を許可するが、解読される場合があるリソースセットを制限するものがある。要求がセキュリティポリシ条件を満たさないことを検出すると、暗号化サービスは要求を拒否してもよく(520)、いくつかの実施形態では、クライアントにエラーを返すか、及び/または、他の方法を取ってもよい(例えば、セキュリティ管理者に通知する)。
要求の履行において取得したセキュリティポリシを満たすと決定した結果、一実施形態では、暗号化サービスまたは暗号化サービスの構成要素は、受信した要求の暗号化処理、及び、暗号鍵に関連するセキュリティ期待値の実行に使用する選択暗号鍵を取得する(510)。上述したように、セキュリティ期待値セットは、要求から及び/または要求外の情報(例えば、要求に適用するポリシセット)から取得してもよい。論じたように、セキュリティ期待値セットは、実行の際、選択された暗号鍵が暗号化処理の実施に使用可能であるかどうかにかかわらず、暗号化処理の結果を信頼することを示す、選択暗号鍵に適用する条件セットを定めてもよい。
DECRYPTの実施例では、暗号化処理で使用する暗号鍵は、要求から暗号文を復号するよう動作可能な暗号鍵である。いくつかの実施例では、暗号鍵は暗号化形式でデータストレージシステムに保存され、暗号化サービスのセキュリティモジュールによってのみ復号が可能である。そういった実施形態では、暗号化された暗号鍵は、データストレージシステムから取得され、セキュリティモジュールに提供されてもよい。他の実施形態では、セキュリティモジュールは、暗号鍵を記憶しローカルデータストレージから暗号鍵を取得してもよい。一般的に、任意の暗号鍵取得方法を使用してもよく、暗号鍵取得様式は、多様な暗号化サービス構成に従い多様であってもよい。いくつかの実施形態では、暗号化サービスは、ポリシ管理モジュールまたは同様の構成要素を使用して、暗号鍵に関連するセキュリティ期待値を識別し取得してもよい。他の実施形態では、セキュリティ期待値は、要求の少なくとも一部に含まれてもよい。なお、図5は、プロセス500の一部としての暗号鍵の取得を示すが、いくつかの実施形態では、暗号鍵にアクセスすることなくセキュリティ期待値を評価することができ、そういった評価をすることで暗号鍵を取得する必要が無くなる場合などでは、暗号鍵を取得しなくてもよい。
一実施形態では、暗号化サービスまたは暗号化サービスの構成要素は、セキュリティ期待値に従い要求を評価する(512)。当該評価は、図2において上記した期待値評価エンジンなどの構成要素により実施されてもよい。例えば、適用セキュリティ期待値によりそのように評価すると指定されていれば、評価では、暗号化処理の実行に使用する暗号鍵を信頼すべきかどうかを決定してもよい。評価には多様な処理モードがある。処理モードによって、暗号鍵の信頼性をどのように評価するかが決まる。いくつかの実施形態では、処理モードは要求で指定されてもよく、暗号化サービスにより設定されてもよい。
いくつかの実施形態では、処理モードには、無効状態、デフォルト処理モード、またはTRUSTKEY処理モードがあってもよい。処理無効状態とは、当該ステップにおいて妥当性確認がオフになっている処理モードのことである。当該処理状態は、他の処理モードより性能上優位であり、コンピューティングシステムが本質的に安全な(例えば、信頼性の高いコンピューティング環境である)いくつかの実施形態では用いてもよい。デフォルト処理モードは、暗号化処理の実行に使用する暗号鍵を符号化ポリシに基づき検証する処理モードであってもよい。デフォルト処理モードの実施例では全ての要求を評価し、暗号化処理の実行に使用する暗号鍵がプリンシパルアカウントからの鍵でなければならないとしてもよい。TRUSTKEY処理モードは、ポリシの妥当性確認がコールを出すプリンシパルに付随する処理モードであってもよい。一実施形態では、ポリシ管理モジュールをルックアップに使用して、暗号鍵に対してTRUSTKEYアクションを許可するという原則に関するセキュリティポリシが存在するかどうかを決定する。DECRYPTの実施例では、暗号文ファイル/リソースに対してTRUSTKEYアクションを考慮する。コール側クライアントに関連するセキュリティポリシが存在する場合、処理は正常に復号化され、プレインテキストを提供する。デジタル署名検証の実施例において、肯定的な応答では、デジタル署名が正しい旨、及び、デジタル署名の正当性の検証に使用する鍵を信頼する旨の両方を示す。
応答は、セキュリティ期待値の評価に基づき生成され提供される(514)(例えば、ネットワークを介して送信される)。セキュリティ期待値を満たしている場合、処理を完了し、適切な応答(例えば、暗号文を解読し得られたプレインテキスト)を提供してもよい。いくつかの実施形態では、セキュリティ期待値を満たしていなければ(例えば、TRUSTKEYアクションを許可するポリシが存在しない)、失敗に終わりクライアントに返してもよい。
図6は、複数の適用セキュリティポリシ間のコンフリクトを解消するプロセス600の実施例を示す。プロセス600は、暗号化サービスまたは暗号化サービスの構成要素など、任意の適切なシステムにより実施されてもよい。例えば、セキュリティポリシに関して実施する際、上記のポリシ実施モジュールが、プロセス600を実施してもよい。いくつかの実施形態では、暗号化サービスは、要求を処理する際(例えば、図5に記載のプロセスに従って、図2に関し上記したように)、複数のセキュリティポリシを取得してもよい。複数のポリシが評価されると検出する(602)と、ポリシそれぞれを評価し(604)、個々のポリシ/期待値のそれぞれの結果を決定する。その後、個々のポリシの結果はそれぞれ、一時的媒体(例えば、RAMまたは一時的なキャッシュ)または持続的媒体(例えば、ハードディスクまたはネットワークストレージ)に記憶され、その後評価計算を実施してもよい。いくつかの実施形態では、並行してまたは分散して評価を実施してもよい。
全ての評価を完了すると、最初に、明示的なアクセス拒否エフェクトがあるかどうかを確認する(606)ことで、コンフリクトは解消される。明示的な拒否は、DENYエフェクトを有するセキュリティポリシに起因してもよい。明示的な拒否を検出すると、コンフリクトが解消された結果、リソースへのアクセス要求は拒否される。しかしながら、明示的な拒否が無く、少なくとも1つの許可エフェクトが検出された場合(608)、要求は許可される(622)。これは、コンフリクトが解消された結果、リソースへのアクセスを許可(622)することを意味する。
セキュリティ期待値の評価の際にも、同様のプロセスを実施してもよい。例えば、特定タイプのAPIコール(例えば、DECRYPTまたはVERIFY_SIGNATURE)では、セキュリティ期待値に明示されたエフェクトにより上書きされる場合がある要求を履行するデフォルト方法があってもよい。例えば、DECRYPTに対するデフォルトでは、信頼する際使用する暗号鍵をセキュリティ期待値が要求しない限り、復号化された暗号文を提供するようにしてもよく、そういった要求を満たさない時には、要求は拒否されてもよい。別の実施例として、VERIFY_SIGNATUREのデフォルトでは、信頼性があると指定された鍵をセキュリティ期待値が要求しない限り、正確性の確認に使用する鍵の信頼性に関わらず、デジタル署名が正しいかどうかを示す応答を提供するようにしてもよい。そういったセキュリティ期待値であれば、デジタル署名の検証ができない旨を示す応答、または、いくつかの実施形態では、デジタル署名は正しいが信頼できない旨の応答を提供して、信頼性のない鍵を使用したデジタル署名の検証を求める要求を処理してもよい。要求履行のデフォルト様式は、多様な実施形態において、アカウントベース、及び/または他の方法により様々であってもよい。例えば、場合により、セキュリティ期待値が低位なセキュリティを明示的に許可しない限り、デフォルトでは高いセキュリティを保証してもよい(例えば、信頼性のない鍵でのデジタル署名の検証、または、信頼性のない鍵での復号化)。
図7は、多様な実施形態による態様を実施する例示的な環境700の態様を示す。説明のためにウェブベースの環境を使用するが、多様な環境を適切に用いて、多様な実施形態を実施してもよいことは理解されるであろう。当該環境は、適切なネットワーク704を介して要求、メッセージまたは情報を送信及び/または受信するよう動作可能な任意の適切なデバイスを含むことができ、いくつかの実施形態では、デバイスのユーザに情報を戻すことができる、電子クライアントデバイス702を含む。そういったクライアントデバイスの実施例には、パーソナルコンピュータ、携帯電話、携帯メッセージングデバイス、ラップトップコンピュータ、タブレットコンピュータ、セットトップボックス、パーソナルデータアシスタント、埋め込みコンピュータシステム、電子ブックリーダなどがある。ネットワークは、イントラネット、インターネット、セルラネットワーク、ローカルエリアネットワーク、衛星ネットワーク、もしくは任意の他のそういったネットワーク、及び/またはそれらの組み合わせを含む任意の適切なネットワークであり得る。そういったシステムに使用する構成要素は、選択されたネットワークタイプ及び/または環境タイプに少なくとも部分的に依存し得る。そういったネットワークを介した通信プロトコル及び構成要素は周知であり、本明細書では詳述しない。ネットワークを介した通信は、有線接続または無線接続、及びそれらの組み合わせにより実施可能となり得る。当該実施例では、ネットワークはインターネットを備え、当該環境は、要求を受信しそれに応答してコンテンツを提供するウェブサーバ706を備えているが、他のネットワークでは、同様の目的を果たす代替デバイスの使用が可能であることは、当業者には明らかであろう。
図の環境は、少なくとも1つのアプリケーションサーバ708及びデータストア710を備える。複数のアプリケーションサーバ、レイヤなどの要素、プロセス、または構成要素がある可能性があり、接続されるか構成され、適切なデータストアからデータを取得するなどのタスクを実施するために対話可能であることは、理解されたい。本明細書で使用するように、サーバは、ハードウェアデバイスまたは仮想コンピュータシステムなど、多様な方法で実施されてもよい。文脈上、サーバが、コンピュータシステム上で実行されるプログラミングモジュールを指すことがある。本明細書で使用するように、特段に指定がなく文脈上明白でない限り、用語「データストア」は、データの保存、取得及び検索が可能な任意のデバイスまたはデバイスの組み合わせを指し、任意の標準環境、分散化環境、仮想環境、またはクラスタ環境において、データサーバ、データベース、データストレージデバイス、及びデータ記憶媒体を任意に組み合わせ任意の数を含んでもよい。アプリケーションサーバは、データストアと一体化した任意の適切なハードウェア、ソフトウェア及びファームウェアを含むことができ、必要に応じ、アプリケーション用データアクセス及びビジネスロジックの一部または全てを処理し、クライアントデバイス用の1以上のアプリケーションの態様を実行する。アプリケーションサーバは、データストアと連携したアクセス制御サービスを提供してもよく、ユーザへの提供に使用可能なテキスト、グラフィックス、オーディオ、ビデオ、及び/または他のコンテンツを含むが、これらに限定されないコンテンツを生成することができ、ウェブサーバによりユーザに、HyperText Markup Language(「HTML」)、Extensible Markup Language(「XML」)、JavaScript、Cascading Style Sheets(「CSS」)、または他の適切なクライアント側構造化言語の形式で提供されてもよい。クライアントデバイスに転送されるコンテンツは、クライアントデバイスにより処理されて、ユーザに聴覚的に、視覚的に、ならびに/または、感触、味覚及び/もしくは嗅覚を含む他の感覚により知覚可能な形式を含むが、これらに限定されない1以上の形式で、コンテンツを提供してもよい。クライアントデバイス702とアプリケーションサーバ708との間のコンテンツ配信だけでなく、全ての要求及び応答の処理は、PHP:Hypertext Preprocessor(「PHP」)、Python、Ruby、Perl、Java、HTML、XML、または、本実施例において他の適切なサーバ側構造化言語を用いて、ウェブサーバにより処理され得る。本明細書で論じる構造化コードは、本明細書の他の箇所でも論じるように任意の適切なデバイスまたはホストマシン上で実行可能であるので、ウェブサーバ及びアプリケーションサーバは必須ではなく、単に例示的な構成要素であることを理解されたい。さらに、本明細書で単体デバイスにより実施されるよう説明した処理は、文脈上特段に明白でない限り、分散化システム及び/または仮想システムを形成する場合がある複数のデバイスにより一体的に実施されてもよい。
データストア710は、本開示の特定の態様に関連するデータを保存するための、複数の別個のデータテーブル、データベース、データドキュメント、動的データ記憶方式、ならびに/または、他のデータ記憶機構及び媒体を含み得る。例えば、図のデータストアは、生産側用コンテンツの提供に使用可能な、生産データ712及びユーザ情報716の保存機構を含んでもよい。また、図のデータストアは、報告、解析または他のそういった目的のために使用され得るログデータ714の保存機構を含む。ページ画像情報及びアクセス権情報など、データストアに保存する必要があり、適切であるとして上記で挙げた機構のいずれか、または、データストア710に機構を追加して保存可能となる他の多くの態様が存在し得ることを理解されたい。データストア710は、関連するロジックを介して、アプリケーションサーバ708から命令を受信しそれに応答してデータを取得、更新または処理するよう動作可能である。アプリケーションサーバ708は、受信した命令に応答して静的データ、動的データ、または、静的データ及び動的データを組み合わせて提供してもよい。ウェブログ(ブログ)、ショッピングアプリケーション、ニュースサービス、及び、他のそういったアプリケーションで使用するデータなどの動的データは、本明細書で説明するようにサーバ側構造化言語により生成されてもよく、アプリケーションサーバ上で、または、アプリケーションサーバによる制御下で動作するコンテンツ管理システム(「CMS」)により提供されてもよい。一実施例では、ユーザは、ユーザにより操作されるデバイスを介して、所定項目タイプの検索要求を出してもよい。この場合、データストアはユーザ情報にアクセスしてユーザのアイデンティティを検証してもよく、カタログ詳細情報にアクセスして当該タイプの項目に関する情報を取得し得る。その後、当該情報を、ユーザがユーザデバイス702上でブラウザを介して見ることができるウェブページ上の結果リストなどで、ユーザに返すことができる。注目する特定項目の情報は、ブラウザの専用ページまたはウィンドウで見ることができる。しかしながら、本開示の当該実施形態は、必ずしもウェブページのコンテキストに限定されず、一般的に要求処理に適用し、一般的に要求は必ずしもコンテンツに関する要求ではないことに留意する。
各サーバは、一般的に、当該サーバの一般的な管理及び処理について実行可能なプログラム命令を提供するオペレーティングシステムを備え、また一般的に、命令を保存するコンピュータ可読記憶媒体(例えば、ハードディスク、ランダムアクセスメモリ、読取専用メモリなど)を備え、当該命令はサーバのプロセッサにより実行されるとサーバがその意図する機能を実施できるようになる。サーバのオペレーティングシステム及び一般的な機能性に適した実施態様は、周知であるか市販されており、当業者であれば本明細書の開示に照らして容易に実施できる。
当該環境は、一実施形態では、1以上のコンピュータネットワークまたは直接接続を使い、通信リンクを介して相互接続される複数のコンピュータシステム及び構成要素を利用する分散及び/または仮想コンピューティング環境である。しかしながら、当業者であれば、そういったシステムは、図7に示すより少ないまたは多い構成要素を備えるシステムにおいても同等に良好に動作可能であることは理解するものである。したがって、図7のシステム700の描写は、本質的に例示とし、本開示の範囲を限定するものではない。
さらに、多様な実施形態が多種多様な動作環境において実施可能であり、場合により、多数のアプリケーションのいずれかの動作に使用可能な1以上のユーザコンピュータ、コンピューティングデバイス、または処理デバイスを備え得る。ユーザまたはクライアントデバイスは、標準的なオペレーティングシステムを実行するデスクトップコンピュータ、ラップトップコンピュータ、またはタブレットコンピュータなど、多数の汎用パーソナルコンピュータ、ならびに、モバイルソフトウェアを実行し多数のネットワーク及びメッセージンングプロトコルに対応可能なセルラデバイス、ワイヤレスデバイス、及び携帯デバイス、のいずれかを備え得る。また、そういったシステムは、多様な市販オペレーティングシステムのいずれか、ならびに、開発及びデータベース管理などのための他の既知のアプリケーションを実行する多数のワークステーションを備え得る。また、当該デバイスは、ダミー端末、シンクライアント、ゲームシステム、及び、ネットワークを介して通信可能な他のデバイスなど他の電子デバイスを含み得る。また、当該デバイスは、仮想マシン、ハイパバイザ、及び、ネットワークを介して通信可能な他の仮想デバイスなど仮想デバイスを含み得る。
本開示の多様な実施形態は、多様な市販のプロトコルのいずれかを使用した通信をサポートし当業者には周知である少なくとも1つのネットワークを利用し、当該プロトコルには、伝送制御プロトコル/インターネットプロトコル(「TCP/IP」)、ユーザデータグラムプロトコル(「UDP」)、オープンシステム相互接続(「OSI」)モデルの多様な層で動作するプロトコル、ファイル転送プロトコル(「FTP」)、ユニバーサルプラグアンドプレイ(「UpnP」)、ネットワークファイルシステム(「NFS」)、カモンインターネットファイルシステム(「CIFS」)、及び、AppleTalkなどがある。ネットワークには、例えば、ローカルエリアネットワーク、広域ネットワーク、仮想プライベートネットワーク、インターネット、イントラネット、エクストラネット、公衆交換電話網、赤外線ネットワーク、無線ネットワーク、衛星ネットワーク、及び、それらの任意の組み合わせがあり得る。
ウェブサーバを利用する実施形態では、ウェブサーバは、ハイパーテキスト転送プロトコル(「HTTP」)サーバ、FTPサーバ、カモンゲートウェイインタフェース(「CGI」)サーバ、データサーバ、Javaサーバ、Apacheサーバ、及び、ビジネスアプリケーションサーバを含む、多様なサーバまたはミッドティアアプリケーションのいずれかを実行し得る。また、サーバ(複数可)は、ユーザデバイスからの要求に応答して、Java(登録商標)、C、C#、もしくはC++などのプログラミング言語のいずれか、または、Ruby、PHP、Perl、Python、もしくはTCLなどのスクリプト言語のいずれか、ならびにそれらの組み合わせで書かれた1以上のスクリプトまたはプログラムとして実施される場合がある1以上のウェブアプリケーションを実行するなどして、プログラムまたはスクリプトの実行を可能にしてもよい。また、サーバ(複数可)はデータベースサーバを含んでもよく、Oracle(登録商標)、Microsoft(登録商標)、Sybase(登録商標)、及び、IBM(登録商標)から市販されているデータベースサーバを含むがこれらに限定されず、MySQL、Postgres、SQLite、MongoDB、及び、構造化または非構造化データの保存、検索、及び取得が可能な任意の他のサーバなどのオープンソースサーバを含む。データベースサーバは、テーブルベースサーバ、ドキュメントベースサーバ、非構造化サーバ、リレーショナルサーバ、非リレーショナルサーバ、または、これらのデータベースサーバ及び/もしくは他のデータベースサーバの組み合わせを含んでもよい。
当該環境は、上述したような多様なデータストア、ならびに他のメモリ及び記憶媒体を含み得る。これらは、コンピュータの1以上にローカルな(及び/もしくは常駐する)、または、ネットワーク経由の複数のコンピュータの一部または全てから離れた記憶媒体など、多様な場所に存在し得る。特定の実施形態セットでは、情報は、当業者には周知のストレージエリアネットワーク(「SAN」)に存在してもよい。同様に、コンピュータ、サーバまたは他のネットワークデバイスによる機能の実施に必要なファイルは、適切にローカルに及び/またはリモートに保存されてもよい。システムがコンピュータ化デバイスを含む場合、そういったデバイスはそれぞれ、バスを介して電気接続される場合があるハードウェア要素を含むことができ、当該要素は、例えば、少なくとも1つの中央処理装置(「CPU」または「プロセッサ」)、少なくとも1つの入力デバイス(例えば、マウス、キーボード、コントローラ、タッチスクリーン、またはキーパッド)、及び少なくとも1つの出力デバイス(例えば、ディスプレイデバイス、プリンタ、またはスピーカ)を含む。また、そういったシステムは、ディスクドライブ、光記憶装置、及び、ランダムアクセスメモリ(「RAM」)または読出専用メモリ(「ROM」)などのソリッドステート記憶装置、ならびに、リムーバブルメディアデバイス、メモリカード、フラッシュカードなど、1以上のストレージデバイスを含んでもよい。
また、そういったデバイスは、コンピュータ可読記憶メディアリーダ、通信デバイス(例えば、モデム、ネットワークカード(無線または有線)、赤外線通信デバイスなど)、及び、上記のようなワーキングメモリを含み得る。コンピュータ可読記憶メディアリーダは、遠隔の、ローカルの、固定及び/または取り外し可能な記憶装置を表すコンピュータ可読記憶媒体、ならびに、一時的に及び/または永続的に、コンピュータ可読情報を含み、保存し、送信し、及び検索するための記憶媒体と接続するか、当該記憶媒体を収容するよう構成され得る。また、システム及び多様なデバイスは、一般的に、オペレーティングシステム、及び、クライアントアプリケーションまたはウェブブラウザなどのアプリケーションプログラムを含む、少なくとも1つの作業メモリデバイス内に配置された多数のソフトウェアアプリケーション、モジュール、サービス、または他の要素を含む。代替の実施形態では、上記から多数の変形が可能であることを理解されたい。例えば、カスタマイズされたハードウェアを使用する場合があり、及び/または、特定の要素をハードウェア、ソフトウェア(アプレットなどのポータブルソフトウェアを含む)、もしくはその両方に実施される場合もある。さらに、ネットワーク入力/出力デバイスなどの他のコンピューティングデバイスへの接続を使用してもよい。
コードまたはコードの一部を含む記憶媒体及びコンピュータ可読媒体は、記憶媒体及び通信媒体を含む、当該技術分野において周知されているか使用されている任意の媒体を含むことができ、当該記憶媒体及び通信媒体には、コンピュータ可読命令、データ構造、プログラムモジュールもしくは他のデータなどの情報の保存及び/または送信する方法または技術において実施する、揮発性及び不揮発性で取り外し可能及び取り外し不可な媒体などがあるがこれらに限定されず、RAM、ROM、電気的消去可能プログラマブル読取専用メモリ(「EEPROM」)、フラッシュメモリもしくは他のメモリ技術、コンパクトディスク読取専用メモリ(「CD−ROM」)、デジタル多用途ディスク(「DVD」)もしくは他の光ストレージ、磁気カセット、磁気テープ、磁気ディスクストレージもしくは他の磁気記憶装置、または、所望の情報の保存に使用することができシステムデバイスによりアクセス可能な任意の他の媒体を含む。当業者であれば、本明細書で提供する開示及び教示に基づいて、多様な実施形態を実施する他の方法及び/またはメソッドがわかるであろう。
したがって、本明細書及び図は、限定ではなく例示であるとみなすものである。しかしながら、特許請求に記載する本発明の広い趣旨及び範囲から逸脱することなく、多様な修正及び変更が可能であることは明らかである。
他の変形も本開示の趣旨の範囲内である。したがって、本開示技術では、多様な修正及び代替構成が可能であるが、図では所定の例示的な実施形態を示し、ここまで詳述してきた。しかしながら、開示した特定形式に本発明を限定する意図はなく、反対に、添付の特許請求に定めるように、本発明の趣旨及び範囲内でのあらゆる修正、代替構成及び等価物を包含することを意図する。
開示した実施形態を説明する文脈における(特に以下の請求項の文脈における)用語「a」、及び「an」、及び「the」、及び同様対象の使用は、本明細書で特段に記載せず文脈で明白に否定しない限り、単数形及び複数形の両方を包含するものと解釈される。用語「comprising(備える)」、「having(有する)」、「including(含む)」、及び「containing(含有する)」は、特段に記載しない限り、非限定用語として解釈される(すなわち、「including、but not limited to(含むがこれに限定されない)」を意味する)。用語「connected(接続された)」は、変更されておらず物理的な接続を指す場合、介在するものがあっても、部分的にもしくは全体的に内包され、接続され、または結合されていると解釈される。本明細書での値の範囲の記載は、本明細書で特段に記載しない限り、単に、範囲内の各別個の値をそれぞれ意味する簡略法とすることを意図し、それぞれの別個の値は、本明細書にそれぞれ記載されているかのように本明細書に組み込まれる。特段に記載されず文脈で否定しない限り、用語「set(セット)」(例えば、「a set of items(項目セット)」、または「subset(サブセット)」の使用は、1以上の要素を含む非空コレクションとして解釈される。さらに、特段に記載されず文脈で否定しない限り、対応するセットについての用語「subset(サブセット)」は、必ずしも対応するセットの適切なサブセットを意味するものではないが、サブセット及び対応するセットは同一であってもよい。
特段に指定せず文脈で明白に否定しない限り、「at least one of A、B、and C(A、B、及びCの少なくとも1つ)」、または「at least one of A、B and C(A、B及びCの少なくとも1つ)」形式の句などの接続語句は、項目、用語などがAまたはBまたはCのいずれかであるか、A及びB及びCのセットの任意の非空サブセットであることを示すために一般的に使用されるように、文脈上理解される。例えば、3つの要素を有するセットの例示的な実施例では、接続句「at least one of A、B、and C(A、B、及びCの少なくとも1つ)」、及び「at least one of A、B and C(A、B及びCの少なくとも1つ)」は、{A}、{B}、{C}、{A、B}、{A、C}、{B、C}、{A、B、C}のセットのいずれかを指す。このように、そういった接続語句は、一般的に、少なくとも1つのA、少なくとも1つのB、及び少なくとも1つのCのそれぞれの存在を所定の実施形態が要していると示す意図はない。
本明細書に記載するプロセス処理は、本明細書で特段に記載されず文脈で特段に明白に否定しない限り、任意の適切な順序で実施され得る。本明細書で説明するプロセス(またはその変形及び/またはそれらの組み合わせ)は、実行可能な命令で構成された1以上のコンピュータシステムの制御下で実施され、ハードウェアまたはその組み合わせにより1以上のプロセッサを一元的に実行するコード(例えば、実行可能な命令、1以上のコンピュータプログラム、または1以上のアプリケーション)として実施されてもよい。コードは、例えば、1以上のプロセッサにより実行可能な複数の命令を備えるコンピュータプログラムの形式で、コンピュータ可読記憶媒体に保存されてもよい。コンピュータ可読記憶媒体は、非一時的であってもよい。
本明細書で提供する実施例の一部及び全て、または例示的な用語(例えば「such as(など)」)の使用は、単に本発明の実施形態をより分かり易く示すことを意図し、特段に請求しない限り、本発明の範囲の限定を提示するものではない。本明細書におけるいかなる文言も、本発明の実施に不可欠な、任意の非請求要素を示すものと解釈されるべきではない。
本開示の実施形態を、本発明を実行するために本発明者が知る最良形態を含め本明細書に記載する。当該実施形態の変形は、当業者であれば上記の内容を読めば明らかになるであろう。本発明者らは、当業者によりそういった変形が適切に使用されることを期待値しており、本発明者らは、本開示の実施形態が本明細書に具体的な記載とは異なって実施されることを意図する。したがって、本開示の範囲は、適用法令によって許容されるように、本明細書に添付された特許請求に挙げた主題のあらゆる変形及び均等物を含む。さらに、本明細書に特段に記載されず文脈で明白に否定しない限り、あらゆる可能な変形での上記要素の全ての組合せは、本開示の範囲に包含される。
明細書で引用する刊行物、特許出願及び特許を含む全ての参考文献は、各参考文献が個々に特異的に参照により組み入れられると記載され、本明細書にその全体が記載されているのと同程度に、参照により本明細書に組み込まれる。
本開示の実施形態は、以下の条項を考慮して記載され得る。
1.コンピュータ実施方法では、
サービスプロバイダのカスタマと関連するリクエスタから、履行により暗号化処理が実施されるウェブサービス要求を受信し、
前記ウェブサービス要求の情報の少なくとも一部に基づき、前記サービスプロバイダの複数のカスタマのための、前記サービスプロバイダにより管理される複数の暗号鍵から暗号鍵を選択し、
前記ウェブサービス要求に適用するセキュリティ期待値セットを決定し、前記セキュリティ期待値セットは、履行の際、前記選択暗号鍵が前記暗号化処理の実施に使用可能であるかどうかにかかわらず、前記暗号化処理の結果を信頼することを示す、前記選択暗号鍵に適用する条件セットを定め、
前記選択暗号鍵に対し前記セキュリティ期待値セットを評価し、
前記セキュリティ期待値セットの評価の少なくとも一部に基づき、前記ウェブサービス要求に対する応答を生成し、
前記生成応答を提供する、前記コンピュータ実施方法。
2.前記セキュリティ期待値セットは前記要求に指定される、条項1に記載のコンピュータ実施方法。
3. 前記方法ではさらに、
複数の保存ポリシドキュメントからの、前記要求に適用するポリシセットを決定し、
前記ポリシセットが前記要求の履行を許可するよう決定し、
前記セキュリティ期待値セットでは、前記決定ポリシセットから少なくとも一つのセキュリティ期待値を決定するよう決定する、条項1または2に記載のコンピュータ実施方法。
4. 前記方法ではさらに、
前記カスタマによりポリシの修正を許可されたエンティティから、前記カスタマに関連するポリシセットに対し前記セキュリティ期待値セットの実施を求めるウェブサービス要求を受信し、
前記セキュリティ期待値セットを含むよう前記ポリシセットを修正することで前記要求を履行する、条項3に記載のコンピュータ実施方法。
5. 前記暗号化処理は復号化またはデジタル署名検証である、条項3または4に記載のコンピュータ実施方法。
6. システムであって、1以上のサービスを実施するよう構成された少なくとも1つのコンピューティングデバイスを備え、前記1以上のサービスは構成により、
クライアントから、暗号化処理の実施を求める要求を受信し、
前記システムにより管理される暗号鍵セットからの、前記暗号化処理を実施するための暗号鍵を決定し、
前記要求に含まれる情報の少なくとも一部に基づき、前記暗号化処理の実施結果は前記クライアントにより信頼されるべきとする条件セットを決定し、
前記暗号鍵及び前記決定条件セットの少なくとも一部に基づき、前記要求に対する応答を生成し、
前記生成応答を前記クライアントに提供する、前記システム。
7. 前記1以上のサービスはさらに構成により、少なくとも1つの条件が前記要求に指定されることにより、前記条件セットの前記少なくとも1つの条件を決定する、条項6に記載のシステム。
8. 前記クライアントのアイデンティティが認証され、
前記1以上のサービスは、前記条件セットを決定するよう構成され、前記決定では少なくとも、
前記アイデンティティに適用するポリシセットのサブセットを選択し、
前記条件セットの少なくとも1つの条件を、前記少なくとも1つの条件が前記ポリシセットの前記サブセットに指定されることにより決定する、条項6または7に記載のシステム。
9. 前記システムはサービスプロバイダにより動作され、
前記ポリシセットは、前記アイデンティティに関連する前記サービスプロバイダのカスタマによりプログラムでの修正が可能である、条項8に記載のシステム。
10. 前記システムは、前記暗号鍵セットのハードウェアベースの保護機能を有するデバイスであり、前記暗号鍵ではプレインテキスト形式に前記デバイスからプログラムでのエクスポートができない、条項6乃至9のいずれか1項に記載のシステム。
11. 前記暗号鍵は、サービスプロバイダの第一カスタマに代わり前記システムにより管理され、
前記暗号鍵セットは、前記サービスプロバイダの第二カスタマに代わり前記システムにより管理される第二暗号鍵を備える、条項6乃至10のいずれか1項に記載のシステム。
12. 前記クライアントは、前記サービスプロバイダの第三カスタマにより動作される、条項11に記載のシステム。
13. 前記生成応答は、前記条件セットの評価結果を示す情報を含む、条項6乃至12のいずれか1項に記載のシステム。
14. 前記条件セットは、前記暗号鍵が、信頼性があると指定された暗号鍵セットからのものであることを求める、条項6乃至13のいずれか1項に記載のシステム。
15. 実行可能命令を保存し有する非一時的コンピュータ可読記憶媒体であって、前記実行可能命令は、コンピュータシステムの1以上のプロセッサにより実行されると、前記コンピュータシステムにサービスを提供させ、前記サービスは構成により、
暗号鍵に関係する暗号化処理に履行により関係する、リクエスタからの要求に含まれる情報の少なくとも一部に基づき、前記リクエスタが前記暗号化処理の結果を信頼すべきかどうかを決定するために前記暗号鍵に適用する条件セットを決定し、前記暗号鍵は、それぞれ前記暗号鍵セットの対応サブセットを有する複数のエンティティのための前記コンピュータシステムにより管理される暗号鍵セットからのものであり、
前記要求の履行方法を決定するために、前記決定条件セットを評価し、
前記決定条件セットの評価の結果、前記暗号鍵が信頼できると示し、前記暗号化処理を実施させ、前記暗号化処理の前記結果を前記要求に応答して提供させる、前記非一時的コンピュータ可読記憶媒体。
16. 前記エンティティは、前記コンピュータシステムを動作させるサービスプロバイダのカスタマである、条項15に記載の非一時的コンピュータ可読記憶媒体。
17. 前記コンピュータシステムに前記条件セットを決定させる前記命令は、前記1以上のプロセッサにより実行されると、前記システムに、前記条件セットの少なくとも1つの条件を、前記要求を出すアイデンティティに関連するポリシから取得させる、条項15または16に記載の非一時的コンピュータ可読記憶媒体。
18. 前記要求はウェブサービス要求である、条項15乃至17のいずれか1項に記載の非一時的コンピュータ可読記憶媒体。
19. 前記1以上の条件は、前記暗号鍵に固有なプロパティの少なくとも一部に基づく、条項15乃至18のいずれか1項に記載の非一時的コンピュータ可読記憶媒体。
20. 前記決定条件セットからの少なくとも1つの条件が前記要求により指定される、条項15乃至19のいずれか1項に記載の非一時的コンピュータ可読記憶媒体。
21. 前記条件セットはブール演算子で繋がれた複数の条件を含む、条項20に記載の非一時的コンピュータ可読記憶媒体。
22. 前記命令はさらに、前記1以上のプロセッサにより実行されると、前記決定条件セットの評価に必須として、前記コンピュータシステムに前記要求に適用するポリシセットを評価させる、条項15乃至21のいずれか1項に記載の非一時的コンピュータ可読記憶媒体。

Claims (14)

  1. コンピュータ実施方法であって
    ウェブサービス要求の履行は前記ウェブサービス要求で定められた暗号化されたデータに対する暗号処理の実施を含む記ウェブサービス要求を、サービスプロバイダのカスタマと関連するリクエスタから受信することと
    記ウェブサービス要求の情報の少なくとも一部に基づき、前記サービスプロバイダの複数のカスタマのための、前記サービスプロバイダにより管理される複数の暗号鍵から前記リクエスタに関連付けられた暗号鍵を選択し、キュリティ期待値セットを決定し、前記セキュリティ期待値セットは、履行の際、選択した前記暗号鍵が前記暗号処理の実施に使用可能であるかどうかにかかわらず、前記暗号鍵の信頼性に対する処理を実施せずに前記暗号処理の結果を信頼することを示す、選択した前記暗号鍵に適用する条件セットを定め、選択した前記暗号鍵に対し前記セキュリティ期待値セットを評価し、前記セキュリティ期待値セットの評価および前記暗号化されたデータの前記暗号処理の結果の少なくとも一部に基づき、前記ウェブサービス要求に対する応答を生成し、生成した前記応答を提供することによって、前記ウェブサービス要求を履行することを含む、前記コンピュータ実施方法。
  2. 前記セキュリティ期待値セットは前記ウェブサービス要求において指定される、請求項1に記載のコンピュータ実施方法。
  3. 前記方法さらに、
    複数の保存ポリシドキュメントから前記ウェブサービス要求に適用するポリシセットを決定することと
    前記ポリシセットが前記ウェブサービス要求の履行を許可するよう決定することを含み
    前記セキュリティ期待値セットを決定することは、決定した前記ポリシセットから少なくとも1つのセキュリティ期待値を決定することを含む、請求項1に記載のコンピュータ実施方法。
  4. 前記方法さらに、
    前記カスタマによりポリシの修正を許可されたエンティティから、前記カスタマに関連するポリシセットに対し前記セキュリティ期待値セットの実施を求めるウェブサービス要求を受信することと
    前記セキュリティ期待値セットを含むよう前記ポリシセットを修正することで前記ウェブサービス要求を履行することを含む、請求項3に記載のコンピュータ実施方法。
  5. システムであって、1以上のサービスを実施するよう構成された少なくとも1つのコンピューティングデバイスを備え、前記1以上のサービスは
    クライアントから、要求で定められた暗号化されたデータに対する暗号処理の実施を求める前記要求を受信することと
    記暗号処理を実施するための前記クライアントに関連付けられた暗号鍵であって、前記システムにより管理される暗号鍵セットからのものである前記暗号鍵決定し、前記要求に含まれる情報の少なくとも一部に基づき、前記暗号鍵の信頼性に対する処理を実施せずに前記暗号処理の実施結果は前記クライアントにより信頼されるべきとする条件セットを決定し、決定した前記条件セットおよび前記暗号化されたデータの前記暗号処理の結果の少なくとも一部に基づき、前記要求に対する応答を生成し、生成した前記応答を前記クライアントに提供することによって、前記要求を履行することを含む、前記システム。
  6. 前記1以上のサービスはさらに少なくとも1つの条件が前記要求において指定されることにより、前記条件セットの前記少なくとも1つの条件を決定することを含む、請求項に記載のシステム。
  7. 前記クライアントのアイデンティティが認証され、
    前記1以上のサービスは少なくとも、前記アイデンティティに適用するポリシセットのサブセットを選択し、前記条件セットの少なくとも1つの条件を、前記少なくとも1つの条件が前記ポリシセットの前記サブセットにおいて指定されることにより決定することによって、前記条件セットを決定することを含む、請求項または請求項に記載のシステム。
  8. 前記システムはサービスプロバイダにより動作され、
    前記ポリシセットは、前記アイデンティティに関連する前記サービスプロバイダのカスタマによりプログラムでの修正が可能である、請求項に記載のシステム。
  9. 前記システムは、前記暗号鍵セットのハードウェアベースの保護機能を有するデバイスであり、前記暗号鍵ではプレインテキスト形式に前記デバイスからプログラムでのエクスポートができない、請求項から請求項の何れか一項に記載のシステム。
  10. 前記暗号鍵は、サービスプロバイダの第一カスタマに代わり前記システムにより管理され、
    前記暗号鍵セットは、前記サービスプロバイダの第二カスタマに代わり前記システムにより管理される第二暗号鍵を備える、請求項から請求項の何れか一項に記載のシステム。
  11. 前記クライアントは、前記サービスプロバイダの第三カスタマにより動作される、請求項10に記載のシステム。
  12. 生成した前記応答は、前記条件セットの評価結果を示す情報を含む、請求項から請求項11の何れか一項に記載のシステム。
  13. 前記条件セットは、前記暗号鍵が、信頼性があると指定された暗号鍵セットからのものであることを求める、請求項から請求項12の何れか一項に記載のシステム。
  14. システムであって、1以上のサービスを実施するよう構成された少なくとも1つのコンピューティングデバイスを備え、前記1以上のサービスは
    リクエスタからの要求であって、前記要求の履行は前記要求で定められた暗号化されたデータに対する暗号処理を含む、前記要求に含まれる情報の少なくとも一部に基づき、号鍵の信頼性に対する処理を実施せずに前記リクエスタが前記暗号処理の結果を信頼すべきかどうかを決定するために、前記リクエスタに関連付けられた前記暗号鍵に適用する条件セットを決定することであって、前記暗号鍵は、記システムにより管理される前記暗号鍵セットからのものであ決定することと、
    前記要求の履行方法を決定するために、決定した前記条件セットを評価することと
    決定した前記条件セットの評価、前記暗号鍵が信頼できることをすことを受けて、前記暗号化されたデータに対する前記暗号処理を実施、前記暗号化されたデータの前記暗号処理の前記結果を前記要求に応答して提供することを含む、前記システム。
JP2017529786A 2014-12-17 2015-12-14 期待値を有するデータセキュリティ処理 Active JP6851970B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US14/574,337 US10560441B2 (en) 2014-12-17 2014-12-17 Data security operations with expectations
US14/574,337 2014-12-17
PCT/US2015/065638 WO2016126332A2 (en) 2014-12-17 2015-12-14 Data security operations with expectations

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2020027610A Division JP2020108156A (ja) 2014-12-17 2020-02-20 期待値を有するデータセキュリティ処理

Publications (3)

Publication Number Publication Date
JP2018504806A JP2018504806A (ja) 2018-02-15
JP2018504806A5 true JP2018504806A5 (ja) 2021-02-04
JP6851970B2 JP6851970B2 (ja) 2021-03-31

Family

ID=56130836

Family Applications (2)

Application Number Title Priority Date Filing Date
JP2017529786A Active JP6851970B2 (ja) 2014-12-17 2015-12-14 期待値を有するデータセキュリティ処理
JP2020027610A Pending JP2020108156A (ja) 2014-12-17 2020-02-20 期待値を有するデータセキュリティ処理

Family Applications After (1)

Application Number Title Priority Date Filing Date
JP2020027610A Pending JP2020108156A (ja) 2014-12-17 2020-02-20 期待値を有するデータセキュリティ処理

Country Status (9)

Country Link
US (1) US10560441B2 (ja)
EP (2) EP3235223A2 (ja)
JP (2) JP6851970B2 (ja)
KR (1) KR102037160B1 (ja)
CN (1) CN107005568B (ja)
AU (2) AU2015381756A1 (ja)
CA (1) CA2969740C (ja)
SG (1) SG11201704602QA (ja)
WO (1) WO2016126332A2 (ja)

Families Citing this family (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10630686B2 (en) 2015-03-12 2020-04-21 Fornetix Llc Systems and methods for organizing devices in a policy hierarchy
US10965459B2 (en) 2015-03-13 2021-03-30 Fornetix Llc Server-client key escrow for applied key management system and process
US10860086B2 (en) * 2016-02-26 2020-12-08 Fornetix Llc Policy-enabled encryption keys having complex logical operations
US11063980B2 (en) * 2016-02-26 2021-07-13 Fornetix Llc System and method for associating encryption key management policy with device activity
US10068397B2 (en) * 2016-04-06 2018-09-04 Guardtime IP Holdings, Ltd. System and method for access control using context-based proof
JP6780462B2 (ja) * 2016-11-14 2020-11-04 大日本印刷株式会社 電子情報記憶媒体、セキュア処理実行方法、及びセキュア処理実行プログラム
US10243731B2 (en) 2017-01-27 2019-03-26 Accenture Global Solutions Limited Hardware blockchain acceleration
US20180268172A1 (en) * 2017-03-14 2018-09-20 Massachusetts Institute Of Technology Electronic device authentication system
US10484352B2 (en) 2017-03-31 2019-11-19 Microsoft Technology Licensing, Llc Data operations using a proxy encryption key
US10565391B2 (en) 2017-06-02 2020-02-18 Microsoft Technology Licensing, Llc Expression evaluation of database statements for restricted data
WO2018236420A1 (en) * 2017-06-20 2018-12-27 Google Llc CLOUD EQUIPMENT SECURITY MODULES FOR CRYPTOGRAPHIC EXTERNALIZATION OPERATIONS
JP6948749B2 (ja) * 2017-06-29 2021-10-13 アマゾン テクノロジーズ インコーポレイテッド セキュリティポリシーアナライザサービス及び充足可能性エンジン
US10574702B1 (en) * 2018-01-03 2020-02-25 Amazon Technologies, Inc. Authorization for build configuration using telemetry data assessment
CN109687959B (zh) 2018-12-29 2021-11-12 上海唯链信息科技有限公司 密钥安全管理系统和方法、介质和计算机程序
CN110442326B (zh) * 2019-08-11 2023-07-14 西藏宁算科技集团有限公司 一种基于Vue简化前后端分离权限控制的方法及其系统
US11190353B2 (en) * 2020-03-26 2021-11-30 Atlassian Pty Ltd. Computer implemented methods and systems for managing a cryptographic service
US12034844B1 (en) * 2021-12-06 2024-07-09 Amazon Technologies, Inc. Techniques for performing compound operations on security modules
CN117097564B (zh) * 2023-10-18 2024-02-02 沃通电子认证服务有限公司 密码服务调用方法、装置、终端设备以及存储介质

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2638525B2 (ja) 1994-08-03 1997-08-06 日本電気株式会社 電子署名検証装置
JP2003224563A (ja) 2002-01-29 2003-08-08 Nippon Telegr & Teleph Corp <Ntt> 署名検証システムおよび方法と署名検証プログラムおよび該プログラムを記録したコンピュータ読取り可能な記録媒体
JP4062206B2 (ja) 2003-08-01 2008-03-19 日本電気株式会社 署名復号サービスシステム及びプログラム
US8645697B1 (en) 2003-08-08 2014-02-04 Radix Holdings, Llc Message authorization
US7266847B2 (en) 2003-09-25 2007-09-04 Voltage Security, Inc. Secure message system with remote decryption service
GB201104094D0 (en) 2011-03-10 2011-04-27 Amethyst Cryptographic Services Ltd A cryptographic system and method
US8713314B2 (en) 2011-08-30 2014-04-29 Comcast Cable Communications, Llc Reoccuring keying system
US9436961B2 (en) * 2012-04-26 2016-09-06 Ribbon Payments, Inc. System and method for selling a product through an adaptable purchase interface
US9590959B2 (en) 2013-02-12 2017-03-07 Amazon Technologies, Inc. Data security service
US9268931B2 (en) * 2012-06-12 2016-02-23 Microsoft Technology Licensing, Llc Gate keeper cookie
DE102012012252B4 (de) 2012-06-22 2022-05-05 Krohne Ag System zur Durchflussmessung
US8713633B2 (en) * 2012-07-13 2014-04-29 Sophos Limited Security access protection for user data stored in a cloud computing facility
US9350536B2 (en) 2012-08-16 2016-05-24 Digicert, Inc. Cloud key management system
US9134156B2 (en) 2012-10-19 2015-09-15 Daniel Measurement And Control, Inc. Determination of reference values for ultrasonic flow metering systems
EP2965258B1 (en) 2013-03-04 2019-09-11 DocuSign, Inc. Systems and methods for cloud data security
US9071429B1 (en) * 2013-04-29 2015-06-30 Amazon Technologies, Inc. Revocable shredding of security credentials
CN104242933B (zh) 2013-08-22 2018-03-23 西安电子科技大学 高速模数转换器的数字后台校准方法
US9571279B2 (en) * 2014-06-05 2017-02-14 Cavium, Inc. Systems and methods for secured backup of hardware security modules for cloud-based web services
US10491398B2 (en) * 2014-09-12 2019-11-26 Salesforce.Com, Inc. Facilitating dynamic end-to-end integrity for data repositories in an on-demand services environment

Similar Documents

Publication Publication Date Title
JP6851970B2 (ja) 期待値を有するデータセキュリティ処理
JP2018504806A5 (ja)
US11870816B1 (en) Trusted-code generated requests
JP6838799B2 (ja) キーエクスポート技術
US20200019714A1 (en) Distributed data storage by means of authorisation token
US9946895B1 (en) Data obfuscation
US11184155B2 (en) Cryptographic key management for imported cryptographic keys
US10362039B2 (en) Permissions for hybrid distributed network resources
US9209973B2 (en) Delegate authorization in cloud-based storage system
US10944561B1 (en) Policy implementation using security tokens
US9596263B1 (en) Obfuscation and de-obfuscation of identifiers
US11063930B1 (en) Resource access provisioning for on-premises network client devices
US10958653B1 (en) Dynamically adaptive computer security permissions
US11700121B2 (en) Secure authorization for sensitive information
US11146379B1 (en) Credential chaining for shared compute environments
US11115223B2 (en) Cryptographic material distribution and management
KR20240141261A (ko) 허락 관리를 위한 방법 및 시스템
KR20240138073A (ko) 허락 관리를 위한 방법 및 시스템
CN118647998A (zh) 权限管理方法和系统
CN118647997A (zh) 权限管理方法和系统