(57)【要約】【要約】開示するシングルサインオンアプリケーション用の暗号化鍵を管理するためのコンピュータ実装方法は、（１）アイデンティティサービスから、クラウドサービス上の暗号化されたデータへのアクセス要求の通知であって、クラウドサービス鍵を復号するためのマスタ鍵を暗号化及び復号するためのセッション鍵を含む、通知を受信することと、（２）マスタ鍵を導出することと、（３）マスタ鍵を使用して、クラウドサービス上のデータを復号するためのクラウドサービス鍵を復号することと、（４）セッション鍵を使用して暗号化されたマスタ鍵を格納することと、（５）追加のクラウドサービス上の暗号化されたデータへの追加のアクセス要求の追加の通知であって、セッション鍵を含む、通知を受信することと、（６）再度ユーザから認証要素を取得することなしに、マスタ鍵を復号することと、（７）マスタ鍵を使用して、追加のクラウドサービス上のデータを復号するための追加のクラウドサービス鍵を復号することと、を含み得る。様々な他の方法、システム、及びコンピュータ可読媒体も開示される。
2019511890.tif 000002
【特許請求の範囲】
【請求項１】
シングルサインオンアプリケーション用の暗号化鍵を管理するためのコンピュータ実装方法であって、前記方法の少なくとも一部分は、少なくとも１つのプロセッサを含むコンピューティングデバイスによって実施され、前記方法は、
アイデンティティサービスから、クラウドサービス上の暗号化されたデータへのアクセス要求の通知であって、クラウドサービス鍵を復号するためのマスタ鍵を暗号化及び復号するためのセッション鍵を含む、通知を受信することと、
ユーザから受信した少なくとも１つの認証要素に基づいて、前記マスタ鍵を導出することと、
前記マスタ鍵を使用して、前記クラウドサービス上のデータを復号するためのクラウドサービス鍵を復号することと、
前記セッション鍵を使用して暗号化された前記マスタ鍵をクライアント鍵記憶部内に格納することと、
前記アイデンティティサービスから、追加のクラウドサービス上の暗号化されたデータへの追加のアクセス要求の追加の通知であって、前記セッション鍵を含む、通知を受信することと、
再度前記ユーザから前記認証要素を取得することなしに、前記セッション鍵を使用することによって前記マスタ鍵を復号することと、
前記マスタ鍵を使用して、前記追加のクラウドサービス上のデータを復号するための追加のクラウドサービス鍵を復号することと、を含む、方法。
【請求項２】
前記マスタ鍵を導出することは、前記ユーザから受信した前記認証要素にハッシュ関数を適用することを含む、請求項１に記載のコンピュータ実装方法。
【請求項３】
前記マスタ鍵を導出することは、
前記ユーザから受信した前記認証要素に基づいて前記ユーザを認証することと、
前記ユーザを認証することに応答して、前記マスタ鍵を暗号化及び復号するための秘密鍵を検索することと、
前記秘密鍵を使用して前記マスタ鍵を復号することと、を含む、請求項１に記載のコンピュータ実装方法。
【請求項４】
前記暗号化されたデータを復号するために、前記復号されたクラウドサービス鍵を前記クラウドサービスに提供することを更に含む、請求項１に記載のコンピュータ実装方法。
【請求項５】
クライアント上で、前記復号されたクラウドサービス鍵を使用して復号するために、前記暗号化されたデータを前記クラウドサービスから受信することを更に含む、請求項１に記載のコンピュータ実装方法。
【請求項６】
前記暗号化されたクラウドサービス鍵を前記クラウドサービスから受信することを更に含む、請求項１に記載のコンピュータ実装方法。
【請求項７】
前記暗号化されたクラウドサービス鍵を前記アイデンティティサービスから受信することを更に含む、請求項１に記載のコンピュータ実装方法。
【請求項８】
前記暗号化されたクラウドサービス鍵を受信することは、
前記セッション鍵と共に前記クラウドサービス鍵を受信することと、
前記クラウドサービス鍵を提供することを求める前記アイデンティティサービスに対する要求に応答して前記クラウドサービス鍵を受信することと、の少なくとも１つを含む、請求項７に記載のコンピュータ実装方法。
【請求項９】
クラウドサービス鍵を復号するための前記マスタ鍵を暗号化及び復号するための前記セッション鍵をクライアントエージェントに提供することによって、前記クラウドサービス上の暗号化されたデータへのアクセスを容易化することを求める要求を、前記アイデンティティサービスにおいて受信することと、
前記セッション鍵を前記クライアントエージェントに提供することと、を更に含む、請求項１に記載のコンピュータ実装方法。
【請求項１０】
シングルサインオンアプリケーション用の暗号化鍵を管理するためのシステムであって、
アイデンティティサービスから、クラウドサービス上の暗号化されたデータへのアクセス要求の通知であって、クラウドサービス鍵を復号するためのマスタ鍵を暗号化及び復号するためのセッション鍵を含む、通知を受信する、メモリに格納されたセッションモジュールと、
ユーザから受信した少なくとも１つの認証要素に基づいて前記マスタ鍵を導出する、メモリに格納された導出モジュールと、
前記マスタ鍵を使用して、前記クラウドサービス上のデータを復号するためのクラウドサービス鍵を復号する、メモリに格納されたサービスモジュールと、
前記セッション鍵を使用して暗号化された前記マスタ鍵をクライアント鍵記憶部内に格納する、メモリに格納された暗号化モジュールと、を含み、
前記セッションモジュールは、前記アイデンティティサービスから、追加のクラウドサービス上の暗号化されたデータへの追加のアクセス要求の追加の通知であって、前記セッション鍵を含む、通知を受信し、
前記システムは更に、再度前記ユーザから前記認証要素を取得することなしに、前記セッション鍵を使用することによって前記マスタ鍵を復号する、メモリに格納された復号モジュールを含み、
前記サービスモジュールは、前記マスタ鍵を使用して、前記追加のクラウドサービス上のデータを復号するための追加のクラウドサービス鍵を復号し、
前記システムは更に、前記セッションモジュール、前記導出モジュール、前記サービスモジュール、前記暗号化モジュール、及び前記復号モジュールを実行するように構成された少なくとも１つの物理プロセッサを備える、システム。
【請求項１１】
前記導出モジュールは、前記ユーザから受信した前記認証要素にハッシュ関数を適用することによって前記マスタ鍵を導出する、請求項１０に記載のシステム。
【請求項１２】
前記導出モジュールは、
前記ユーザから受信した前記認証要素に基づいて前記ユーザを認証することと、
前記ユーザを認証することに応答して、前記マスタ鍵を暗号化及び復号するための秘密鍵を検索することと、
前記秘密鍵を使用して前記マスタ鍵を復号することと、によって前記マスタ鍵を導出する、請求項１０に記載のシステム。
【請求項１３】
前記サービスモジュールは、前記暗号化されたデータを復号するために、前記復号されたクラウドサービス鍵を前記クラウドサービスに提供する、請求項１０に記載のシステム。
【請求項１４】
前記サービスモジュールは、クライアント上で、前記復号されたクラウドサービス鍵を使用して復号するために、前記暗号化されたデータを前記クラウドサービスから受信する、請求項１０に記載のシステム。
【請求項１５】
前記サービスモジュールは、前記暗号化されたクラウドサービス鍵を前記クラウドサービスから受信する、請求項１０に記載のシステム。
【請求項１６】
前記サービスモジュールは、前記暗号化されたクラウドサービス鍵を前記アイデンティティサービスから受信する、請求項１０に記載のシステム。
【請求項１７】
前記サービスモジュールは、
前記セッション鍵と共に前記クラウドサービス鍵を受信することと、
前記クラウドサービス鍵を提供することを求める前記アイデンティティサービスに対する要求に応答して前記クラウドサービス鍵を受信することと、の少なくとも１つによって、前記暗号化されたクラウドサービス鍵を受信する、請求項１６に記載のシステム。
【請求項１８】
前記アイデンティティサービスは、クラウドサービス鍵を復号するための前記マスタ鍵を暗号化及び復号するための前記セッション鍵をクライアントエージェントに提供することによって前記クラウドサービス上の暗号化されたデータへのアクセスを容易化することを求める要求を受信し、
前記アイデンティティサービスは、前記セッション鍵を前記クライアントエージェントに提供する、請求項１０に記載のシステム。
【請求項１９】
非一時的コンピュータ可読媒体であって、コンピューティングデバイスの少なくとも１つのプロセッサによって実行されるとき、前記コンピューティングデバイスに、
アイデンティティサービスから、クラウドサービス上の暗号化されたデータへのアクセス要求の通知であって、クラウドサービス鍵を復号するためのマスタ鍵を暗号化及び復号するためのセッション鍵を含む、通知を受信することと、
ユーザから受信した少なくとも１つの認証要素に基づいて、前記マスタ鍵を導出することと、
前記マスタ鍵を使用して、前記クラウドサービス上のデータを復号するためのクラウドサービス鍵を復号することと、
前記セッション鍵を使用して暗号化された前記マスタ鍵をクライアント鍵記憶部内に格納することと、
前記アイデンティティサービスから、追加のクラウドサービス上の暗号化されたデータへの追加のアクセス要求の追加の通知であって、前記セッション鍵を含む、通知を受信することと、
再度前記ユーザから前記認証要素を取得することなしに、前記セッション鍵を使用することによって前記マスタ鍵を復号することと、
前記マスタ鍵を使用して、前記追加のクラウドサービス上のデータを復号するための追加のクラウドサービス鍵を復号することと、を行わせる１つ又は２つ以上のコンピュータ可読命令を含む、非一時的コンピュータ可読媒体。
【請求項２０】
前記１つ又は２つ以上のコンピュータ可読命令は、前記コンピューティングデバイスに、前記ユーザから受信した前記認証要素にハッシュ関数を適用することによって前記マスタ鍵を導出させる、請求項１９に記載の非一時的コンピュータ可読媒体。
【発明の詳細な説明】
【背景技術】
【０００１】
ますます多くの個人及び組織は、機密データについてさえ、データ格納のためにクラウドベースのシステムを使用している。たいてい、クラウドデータ格納システムは、ベストプラクティスを頼りとしてクライアントのデータのセキュリティを確保する評判の良い大企業によって運用されている。残念ながら、広く報道されているクラウドサービスに格納された機密データのいくつかの漏洩によって証明されるように、ベストプラクティスでさえ、機密データを十全には保護し得ない。
【０００２】
クラウドサービスに格納されたデータは、いくつかの点で脆弱である場合が多い。ユーザのクラウドサービスアカウントへのアクセスは、そのアカウントのユーザ名及びパスワードを取得又は推測することができる任意の人からアクセス可能であることがある。データは、ユーザとクラウドサービスとの間のいずれかの方向において暗号化されずに、又は弱い暗号化のみで送信されることがある。システム管理者又はクラウドサービスによって用いられるデータバックアップサービスは、ユーザデータにアクセスし、それを不正な受信者に送信することができることがある。また、クラウドサービスはユーザデータを暗号化された形式で格納し得るが、データを復号するのに必要な暗号鍵は、依然としてクラウドサービスのシステム管理者からアクセス可能であることがある。
【０００３】
クラウドサービスによって使用されるセキュリティプラクティスの大部分は典型的に秘密であるので、適切なセキュリティ対策が実装されているとユーザを安心させるものはクラウドサービスの評判だけであることがある。一部の大規模組織は、自らのクラウドストレージサービスを運用することによって、機密データが必ず十全に保護されているようにしようとする。たとえそうでも、これらの組織は依然として、データセキュリティポリシーが必ず適切に実装されるように雇用するシステム管理者の能力及び高潔性を頼りとする。
【０００４】
たとえユーザが他人からアクセス不能な強力なパスワードで自分のアカウントを保護し、クラウドサービスへ、及びクラウドサービスから送信されるデータをセキュアに暗号化し、クラウドサービスがデータセキュリティのベストプラクティスを実装していても、クラウドサービスは依然として、政府によって法的に要求される場合、機密データを利用可能にする義務を有し得る。これらの対策を実装し、クラウドベースのアプリケーションにアクセスする度に認証証明書を提供することをユーザに要求することは、ユーザにとって不便であり得る。従って、本開示は、シングルサインオンアプリケーション用の暗号化鍵を管理するための追加の、かつ改善されたシステム及び方法に対する必要性を識別し、それに対処するものである。
【発明の概要】
【０００５】
詳細に後述するように、本開示は、シングルサインオンアプリケーション用の暗号化鍵を管理するための様々なシステム及び方法を記載する。開示するシステム及び方法は、マスタ鍵を使用して鍵を暗号化し、暗号化された形式で鍵を格納することによって、データを復号するための鍵をクラウドサービス内に維持する。開示するシステム及び方法は、クラウドサービスのニーズ及び所望のデータセキュリティレベルに応じて様々な場所に暗号化鍵を格納することを容易にする。高度なデータセキュリティレベルが望ましい状況では、開示するシステム及び方法は、クラウドサービスが、暗号化されていないデータ、又はユーザデータを復号するための鍵のいずれかにアクセスすることを許可しないことがある。
【０００６】
一実施例では、シングルサインオンアプリケーション用の暗号化鍵を管理するためのコンピュータ実装方法は、（１）アイデンティティサービスから、クラウドサービス上の暗号化されたデータへのアクセス要求の通知であって、クラウドサービス鍵を復号するためのマスタ鍵を暗号化及び復号するためのセッション鍵を含む、通知を受信することと、（２）ユーザから受信した少なくとも１つの認証要素に基づいて、マスタ鍵を導出することと、（３）マスタ鍵を使用して、クラウドサービス上のデータを復号するためのクラウドサービス鍵を復号することと、（４）セッション鍵を使用して暗号化されたマスタ鍵をクライアント鍵記憶部内に格納することと、（５）アイデンティティサービスから、追加のクラウドサービス上の暗号化されたデータへの追加のアクセス要求の追加の通知であって、セッション鍵を含む、通知を受信することと、（６）再度ユーザから認証要素を取得することなしに、セッション鍵を使用することによってマスタ鍵を復号することと、（７）マスタ鍵を使用して、追加のクラウドサービス上のデータを復号するための追加のクラウドサービス鍵を復号することと、を含んでもよい。
【０００７】
一部の例では、マスタ鍵を導出することは、ユーザから受信した認証要素にハッシュ関数を適用することを含んでもよい。一部の例では、マスタ鍵を導出することは、（１）ユーザから受信した認証要素に基づいてユーザを認証すること、（２）ユーザを認証することに応答して、マスタ鍵を暗号化及び復号するための秘密鍵を検索すること、（３）秘密鍵を使用してマスタ鍵を復号すること、を含んでもよい。
【０００８】
一部の例では、コンピュータ実装方法は、暗号化されたデータを復号するために、復号されたクラウドサービス鍵をクラウドサービスに提供することを更に含んでもよい。一実施形態では、コンピュータ実装方法は、クライアント上で、復号されたクラウドサービス鍵を使用して復号するために、暗号化されたデータをクラウドサービスから受信することを更に含んでもよい。一部の例では、コンピュータ実装方法は、暗号化されたクラウドサービス鍵をクラウドサービスから受信することを更に含んでもよい。一部の例では、コンピュータ実装方法は、暗号化されたクラウドサービス鍵をアイデンティティサービスから受信することを更に含んでもよい。
【０００９】
一部の例では、暗号化されたクラウドサービス鍵を受信することは、
セッション鍵と共にクラウドサービス鍵を受信すること、及び／又はクラウドサービス鍵を提供することを求めるアイデンティティサービスに対する要求に応答してクラウドサービス鍵を受信することを含んでもよい。一実施形態では、コンピュータ実装方法は、クラウドサービス鍵を復号するためのマスタ鍵を暗号化及び復号するためのセッション鍵をクライアントエージェントに提供することによってクラウドサービス上の暗号化されたデータへのアクセスを容易にすることを求める要求を、アイデンティティサービスにおいて受信することと、セッション鍵をクライアントエージェントに提供することと、を更に含んでもよい。
【００１０】
一実施形態では、上記の方法を実装するためのシステムは、（１）アイデンティティサービスから、クラウドサービス上の暗号化されたデータへのアクセス要求の通知であって、クラウドサービス鍵を復号するためのマスタ鍵を暗号化及び復号するためのセッション鍵を含む、通知を受信し、アイデンティティサービスから、追加のクラウドサービス上の暗号化されたデータへの追加のアクセス要求の追加の通知であって、セッション鍵を含む、通知を受信するセッションモジュール、（２）ユーザから受信した少なくとも１つの認証要素に基づいてマスタ鍵を導出する導出モジュール、（３）マスタ鍵を使用して、クラウドサービス上のデータを復号するためのクラウドサービス鍵を復号し、マスタ鍵を使用して、追加のクラウドサービス上のデータを復号するための追加のクラウドサービス鍵を復号するサービスモジュール、（４）セッション鍵を使用して暗号化されたマスタ鍵をクライアント鍵記憶部内に格納する暗号化モジュール、及び／又は（５）再度ユーザから認証要素を取得することなしに、セッション鍵を使用してマスタ鍵を復号する復号モジュール、などのメモリに格納されたいくつかのモジュールを含んでもよい。本システムはまた、セッションモジュール、導出モジュール、サービスモジュール、暗号化モジュール、及び復号モジュールを実行するように構成された少なくとも１つの物理プロセッサを含んでもよい。
【００１１】
いくつかの実施例では、上述の方法は、非一時的コンピュータ可読媒体上のコンピュータ可読命令としてコード化されてもよい。例えば、コンピュータ可読媒体は、コンピューティングデバイスの少なくとも１つのプロセッサによって実行されるとき、コンピューティングデバイスに、（１）アイデンティティサービスから、クラウドサービス上の暗号化されたデータへのアクセス要求の通知であって、クラウドサービス鍵を復号するためのマスタ鍵を暗号化及び復号するためのセッション鍵を含む、通知を受信することと、（２）ユーザから受信した少なくとも１つの認証要素に基づいて、マスタ鍵を導出することと、（３）マスタ鍵を使用して、クラウドサービス上のデータを復号するためのクラウドサービス鍵を復号することと、（４）セッション鍵を使用して暗号化されたマスタ鍵をクライアント鍵記憶部内に格納することと、（５）アイデンティティサービスから、追加のクラウドサービス上の暗号化されたデータへの追加のアクセス要求の追加の通知であって、当該セッション鍵を含む、通知を受信することと、（６）再度ユーザから認証要素を取得することなしに、セッション鍵を使用することによってマスタ鍵を復号することと、（７）マスタ鍵を使用して、追加のクラウドサービス上のデータを復号するための追加のクラウドサービス鍵を復号することと、を行わせる１つ又は２つ以上のコンピュータ実行可能命令を含んでもよい。
【００１２】
上述の実施形態のいずれかによる特徴は、本明細書に記載される一般原理に従って、互いに組み合わせて使用されてもよい。これら及び他の実施形態、特徴、及び利点は、添付の図面及び特許請求の範囲と併せて以下の発明を実施するための形態を読むことによって更に十分に理解されるだろう。
【図面の簡単な説明】
【００１３】
添付の図面は、いくつかの例示的な実施形態を図示するものであり、本明細書の一部である。以下の説明と併せて、これらの図面は、本開示の様々な原理を実証及び説明する。
【図１】シングルサインオンアプリケーション用の暗号化鍵を管理するための例示的なシステムのブロック図である。
【図２】シングルサインオンアプリケーション用の暗号化鍵を管理するための追加の例示的なシステムのブロック図である。
【図３】シングルサインオンアプリケーション用の暗号化鍵を管理するための例示的な方法の流れ図である。
【図４】シングルサインオンアプリケーション用の暗号化鍵を管理するための追加の例示的なシステムのブロック図である。
【図５】本明細書に記載及び／又は図示される実施形態のうち１つ又は２つ以上を実装することができる例示的なコンピューティングシステムのブロック図である。
【図６】本明細書に記載及び／又は図示される実施形態のうち１つ又は２つ以上を実装することができる例示的なコンピューティングネットワークのブロック図である。  図面を通して、同一の参照符号及び記述は、必ずしも同一ではないが、類似の要素を示す。本明細書で説明される例示的実施形態は、様々な修正物及び代替的な形態が可能であるが、特定の実施形態が例として図面に示されており、本明細書に詳細に記載される。しかしながら、本明細書に記載される例示的実施形態は、開示される特定の形態に限定されることを意図しない。むしろ、本開示は、添付の特許請求の範囲内にある全ての修正物、等価物、及び代替物を網羅する。
【発明を実施するための形態】
【００１４】
本開示は、一般に、シングルサインオンアプリケーション用の暗号化鍵を管理するためのシステム及び方法を対象にする。詳細に後述するように、本明細書に記載するシステム及び方法は、暗号化されたデータのセキュリティを損なうことなしに、シングルサインオンを容易にするように暗号化鍵を管理し得る。本明細書に記載するシステム及び方法は、再認証なしに、かつ暗号化されたデータと共に暗号化鍵を格納する必要なしに、複数のクラウドサービスに常駐する暗号化されたデータへのユーザアクセスを提供し得る。開示するシステムの一部の実施形態では、クラウドサービスは、データストアを復号するのに必要な鍵に決してアクセスせず、各暗号化されたデータストアのデータは、一意の暗号化鍵を使用して暗号化され得る。一部の実施形態では、開示するシステム及び方法は、複数のデバイスからのシングルサインオンを容易にし得る。クラウドアプリケーションにシングルサインオンを提供することに加えて、開示するシステム及び方法は、クライアントアプリケーションにも適用され得る。
【００１５】
以下において、図１、図２、及び図４を参照しながら、シングルサインオンアプリケーション用の暗号化鍵を管理するための例示的なシステムの詳細な説明を提供する。対応するコンピュータ実装方法の詳細な説明も図３に関連して提供される。それに加えて、本明細書に記載する実施形態のうち１つ又は２つ以上を実装することができる例示的なコンピューティングシステム及びネットワークアーキテクチャの詳細な説明が、それぞれ図５及び図６に関連して提供されることになる。
【００１６】
図１は、シングルサインオンアプリケーション用の暗号化鍵を管理するための例示的なシステム１００のブロック図である。この図に図示されるように、例示的なシステム１００は、１つ以上のタスクを実施するための１つ以上のモジュール１０２を含んでもよい。例えば、詳細に後述するように、例示的なシステム１００は、アイデンティティサービスから、クラウドサービス上の暗号化されたデータへのアクセス要求の通知であって、クラウドサービス鍵を復号するためのマスタ鍵を暗号化及び復号するためのセッション鍵を含む、通知を受信するセッションモジュール１０４を含んでもよい。それに加えて、例示的なシステム１００は、ユーザから受信した少なくとも１つの認証要素に基づいてマスタ鍵を導出する導出モジュール１０６を含んでもよい。例示的なシステム１００はまた、マスタ鍵を使用して、クラウドサービス上のデータを復号するためのクラウドサービス鍵を復号するサービスモジュール１０８を含んでもよい。それに加えて、例示的なシステム１００は、セッション鍵を使用して暗号化されたマスタ鍵をクライアント鍵記憶部内に格納する暗号化モジュール１１０を含んでもよい。セッションモジュール１０４は、アイデンティティサービスから、追加のクラウドサービス上の暗号化されたデータへの追加のアクセス要求の追加の通知であって、セッション鍵を含む、通知を更に受信し得る。例示的なシステム１００はまた、再度ユーザから認証要素を取得することなしに、セッション鍵を使用してマスタ鍵を復号する復号モジュール１１２を含んでもよい。サービスモジュール１０８は、マスタ鍵を使用して、追加のクラウドサービス上のデータを復号するための追加のクラウドサービス鍵を更に復号してもよい。別々の要素として図示されるが、図１のモジュール１０２のうちの１つ以上は、単一のモジュール又はアプリケーションの部分を表してもよい。
【００１７】
特定の実施形態では、図１のモジュール１０２のうち１つ以上は、コンピューティングデバイスによって実行されると、コンピューティングデバイスに１つ以上のタスクを実施させ得る、１つ以上のソフトウェアアプリケーション又はプログラムを表し得る。例えば、詳細に後述するように、モジュール１０２のうち１つ又は２つ以上は、図２に図示するデバイス（例えば、クライアント２０２及び／若しくはクラウドサービス２０６）、図５のコンピューティングシステム５１０、並びに／又は図６の例示的なネットワークアーキテクチャ６００の部分などの、１つ又は２つ以上のコンピューティングデバイスに格納され、そこで作動するように構成されたソフトウェアモジュールを表し得る。図１のモジュール１０２のうち１つ以上はまた、１つ以上のタスクを実施するように構成されている１つ以上の専用コンピュータの全て又は一部を表し得る。
【００１８】
図１に示すように、例示的なシステム１００はまた、データベース１２０などの１つ以上のデータベースを含んでもよい。一実施例では、データベース１２０は、ユーザアカウントデータ、クラウドサービス情報、及び／又は暗号鍵を格納するように構成してもよい。データベース１２０は、単一のデータベース若しくはコンピューティングデバイスの部分、又は複数のデータベース若しくはコンピューティングデバイスの部分を表してもよい。例えば、データベース１２０は、図２のクラウドサービス２０６若しくはアイデンティティサービス２１０の一部分、図５のコンピューティングシステム５１０、及び／又は図６の例示的なネットワークアーキテクチャ６００の部分を表してもよい。あるいは、図１のデータベース１２０は、図２のクラウドサービス２０６若しくはアイデンティティサービス２１０、図５のコンピューティングシステム５１０、及び／又は図６の例示的なネットワークアーキテクチャ６００の部分などの、コンピューティングデバイスによってアクセスすることができる１つ又は２つ以上の物理的に別個のデバイスを表してもよい。
【００１９】
図１の例示的なシステム１００は、様々な方法で実装され得る。例えば、例示的なシステム１００の全て又は一部は、図２における例示的なシステム２００の部分を表してもよい。図２に示されるように、システム２００は、ネットワーク２０４を介してクラウドサービス２０６及びアイデンティティサービス２１０と連通するクライアント２０２を含んでもよい。一実施例では、クライアント２０２は、モジュール１０２のうち１つ若しくは２つ以上を用いてプログラムされてもよく、かつ／又はデータベース１２０内のデータの全て若しくは一部分を格納してもよい。それに加えて、又は別の方法として、クラウドサービス２０６又はアイデンティティサービス２１０は、モジュール１０２のうち１つ若しくは２つ以上を用いてプログラムされてもよく、かつ／又はデータベース１２０内のデータの全て若しくは一部分を格納してもよい。
【００２０】
一実施形態では、図１からの１つ又は２つ以上のモジュール１０２は、クライアント２０２の少なくとも１つのプロセッサ、クラウドサービス２０６、及び／又はアイデンティティサービス２１０によって実行されるとき、クライアント２０２、クラウドサービス２０６、及び／又はアイデンティティサービス２１０がシングルサインアプリケーション用の暗号化鍵を管理することを可能にしてもよい。例えば、詳細に後述するように、１つ又は２つ以上のモジュール１０２は、クライアント２０２、クラウドサービス２０６、及び／又はアイデンティティサービス２１０に、シングルサインオンアプリケーション用の暗号化鍵を管理させてもよい。例えば、詳細に後述するように、セッションモジュール１０４は、
アイデンティティサービス２１０から、クラウドサービス２０８（１）上の暗号化されたデータへのアクセス要求の通知２１２であって、クラウドサービス鍵を復号するためのマスタ鍵２１８を暗号化及び復号するためのセッション鍵２１４を含む、通知２１２を受信してもよい。導出モジュール１０６は、ユーザから受信した少なくとも１つの認証要素２１６に基づいて、マスタ鍵２１８を導出してもよい。サービスモジュール１０８は、マスタ鍵２１８を使用して、クラウドサービス２０８（１）上のデータを復号するためのクラウドサービス鍵２２０を復号してもよい。
【００２１】
一部の例では、暗号化モジュール１１０は、セッション鍵２１４を使用してストアマスタ鍵２１８を暗号化して、暗号化されたマスタ鍵２２４を生成し、暗号化されたマスタ鍵２２４をクライアント鍵記憶部２２２内に格納してもよい。セッションモジュール１０４は、アイデンティティサービス２１０から、追加のクラウドサービス２０８（２）上の暗号化されたデータへの追加のアクセス要求の追加の通知２２６であって、通知２１２はセッション鍵２１４を含む、追加の通知２２６を受信してもよい。復号モジュール１１２は、再度ユーザから認証要素２１６を取得することなしに、セッション鍵２１４を使用してマスタ鍵２１８を復号してもよい。サービスモジュール１０８は、マスタ鍵２１８を使用して、追加のクラウドサービス２０８（２）上のデータを復号するための追加のクラウドサービス鍵２３０を復号してもよい。
【００２２】
クライアント２０２は、一般に、コンピュータ実行可能命令を読み取ることができる任意のタイプ又は形態のコンピューティングデバイスを表す。クライアント２０２の例としては、ラップトップ、タブレット、デスクトップ、サーバ、携帯電話、携帯情報端末（ＰＤＡ）、マルチメディアプレーヤー、埋め込みシステム、ウェアラブルデバイス（例えば、スマートウォッチ、スマートグラスなど）、ゲーム機、それらの１つ若しくは２つ以上の組み合わせ、図５の例示的なコンピューティングシステム５１０、又は他の任意の好適なコンピューティングデバイスが挙げられるが、これらに限定されない。
【００２３】
クラウドサービス２０６及びアイデンティティサービス２１０は、一般に、データを通信、比較、及び／又は格納することができる任意のタイプ又は形態のコンピューティングデバイスを表す。クラウドサービス２０６及びアイデンティティサービス２１０の例としては、様々なデータベースサービスを提供し、かつ／又は特定のソフトウェアアプリケーションを作動させるように構成されたアプリケーションサーバ及びデータベースサーバが挙げられるが、これらに限定されない。
【００２４】
ネットワーク２０４は、一般に、通信若しくはデータ転送を容易にすることが可能な、任意の媒体又はアーキテクチャを表す。ネットワーク２０４の例としては、イントラネット、広域ネットワーク（ＷＡＮ）、ローカルエリアネットワーク（ＬＡＮ）、パーソナルエリアネットワーク（ＰＡＮ）、インターネット、電力線通信（ＰＬＣ）、セルラーネットワーク（例えば、Ｇｌｏｂａｌ  Ｓｙｓｔｅｍ  ｆｏｒ  Ｍｏｂｉｌｅ  Ｃｏｍｍｕｎｉｃａｔｉｏｎｓ（ＧＳＭ（登録商標））ネットワーク）、図６の例示的なネットワークアーキテクチャ６００などが挙げられるが、これらに限定されない。ネットワーク２０４は、無線接続又は有線接続を使用して、通信又はデータ転送を容易にしてもよい。一実施形態では、ネットワーク２０４は、クライアント２０２、クラウドサービス２０６、及びアイデンティティサービス２１０の間の通信を容易にしてもよい。
【００２５】
図３は、シングルサインオンアプリケーション用の暗号化鍵を管理するための例示的なコンピュータ実装方法３００の流れ図である。図３に示されるステップは、任意の好適なコンピュータ実行可能コード及び／又はコンピューティングシステムによって実施されてもよい。一部の実施形態では、図３に示すステップは、図１のシステム１００、図２のシステム２００、図５のコンピューティングシステム５１０、及び／又は図６の例示的なネットワークアーキテクチャ６００の部分の構成要素のうち１つ又は２つ以上によって実施されてもよい。
【００２６】
図３に示すように、ステップ３０２では、本明細書に記載するシステムの１つ又は２つ以上は、アイデンティティサービスから、クラウドサービス上の暗号化されたデータへのアクセス要求の通知であって、クラウドサービス鍵を復号するためのマスタ鍵を暗号化及び復号するためのセッション鍵を含む、通知を受信してもよい。例えば、セッションモジュール１０４は、図２のクライアント２０２の一部として、アイデンティティサービス２１０から、クラウドサービス２０８（１）上の暗号化されたデータへのアクセス要求の通知２１２を受信してもよい。通知２１２は、マスタ鍵２１８を暗号化及び復号するためのセッション鍵２１４を含んでもよく、マスタ鍵２１８は、その後、クラウドサービス鍵を復号するために使用されてもよい。
【００２７】
「アイデンティティサービス」という用語は、本明細書で使用するとき、一般に、ユーザが提供する認証証明書に基づいて本人確認を行うネットワークサービスを指す。アイデンティティサービスは、他のネットワークサービスプロバイダとの契約下で、プライベート組織内で、又はクラウドサービスの一部として、本人確認サービスを提供する独立したサービスプロバイダとして動作してもよい。
【００２８】
一実施形態では、アイデンティティサービス２１０は、クラウドサービス２０８（１）上の暗号化されたデータへのアクセスを容易にすることを求める要求を受信してもよい。この要求に応答して、アイデンティティサービス２１０は、クライアント２０２上のセッションモジュール１０４にセッション鍵２１４を提供してもよい。詳細に後述するように、本明細書に記載するシステムは、セッション鍵２１４を使用してマスタ鍵２１８を復号してもよく、マスタ鍵２１８は、その後、クラウドサービス鍵を復号するために使用されてもよい。
【００２９】
セッションモジュール１０４は、クラウドサービス上の暗号化されたデータへのアクセス要求の通知を様々な方法で受信してもよい。例えば、セッションモジュール１０４は、クライアント２０２上のクライアントエージェントの一部として実行し、クライアント２０２がクラウドサービス２０８（１）上に格納されたデータにアクセスすることができるように、クライアント２０２上のユーザの本人確認を行うことを求める要求をアイデンティティサービス２１０がクラウドサービス２０８（１）から受信したという通知２１２をアイデンティティサービス２１０から受信してもよい。セッションモジュール１０４は、クライアントエージェントによって確立されるロングポーリング接続を介して、又は他の任意の好適なメカニズムによって、ＨＴＴＰサーバプッシュ通信として通知２１２を受信してもよい。
【００３０】
ステップ３０４では、本明細書に記載するシステムの１つ又は２つ以上は、ユーザから受信した１つ又は２つ以上の認証要素に基づいて、マスタ鍵を導出してもよい。例えば、導出モジュール１０６は、図２のクライアント２０２の一部として、ユーザから受信した１つ又は２つ以上の認証要素２１６に基づいて、マスタ鍵２１８を導出してもよい。詳細に後述するように、導出モジュール１０６は、ユーザから認証要素を取得し、シングルサインオンセッションの始めにマスタ鍵を導出してもよい。その後、本明細書に記載するシステムは、ユーザとの追加の相互作用なしに暗号化鍵を管理してもよい。
【００３１】
導出モジュール１０６は、マスタ鍵を様々な方法で導出してもよい。例えば、導出モジュール１０６は、ユーザから受信した認証要素にハッシュ関数を適用することによってマスタ鍵を導出してもよい。例えば、導出モジュール１０６は、パスワードベースの鍵導出機能２（ＰＢＫＤＦ２）又は任意の好適な鍵導出機能を使用して、パスワード又は他の認証因子を暗号鍵に変換してもよい。
【００３２】
一部の例では、導出モジュール１０６は、マスタ鍵をアルゴリズムによって導出するのではなく、セキュアな鍵記憶部からマスタ鍵を検索してもよい。例えば、図２に示すように、導出モジュール１０６は、ユーザから受信した１つ又は２つ以上の認証要素２１６に基づいてユーザを最初に認証することにより、マスタ鍵２１８を導出してもよい。導出モジュール１０６は、ユーザを認証した後、マスタ鍵を暗号化及び復号するための秘密鍵を検索し、暗号化されたマスタ鍵をクライアント鍵記憶部２２２から検索し、秘密鍵を使用してマスタ鍵２１８を復号してもよい。詳細に後述するように、秘密鍵は、携帯電話などのパーソナルデバイス上に格納されてもよい。暗号化されたマスタ鍵は、クライアント鍵記憶部２２２内に格納されてもよく、クライアント鍵記憶部２２２は、クライアント２０２上、又はアイデンティティサービス２１０に常駐してもよい。
【００３３】
ステップ３０６では、本明細書に記載するシステムの１つ又は２つ以上は、マスタ鍵を使用して、クラウドサービス上のデータを復号するためのクラウドサービス鍵を復号してもよい。例えば、サービスモジュール１０８は、図２のクライアント２０２の一部として、マスタ鍵２１８を使用して、クラウドサービス２０８（１）上のデータを復号するためのクラウドサービス鍵２２０を復号してもよい。
【００３４】
サービスモジュール１０８は、クラウドサービス鍵を様々な方法で復号してもよい。例えば、サービスモジュール１０８は、暗号化されたクラウドサービス鍵をクラウドサービス２０８（１）から検索し、この暗号化された鍵をマスタ鍵２１８を使用して復号してクラウドサービス鍵２２０を生成してもよい。一部の例では、クライアント鍵記憶部２２２は、アイデンティティサービス２１０に常駐してもよい。サービスモジュール１０８は、暗号化されたクラウドサービス鍵をアイデンティティサービス２１０から検索し、マスタ鍵２１８を使用してクラウドサービス鍵を暗号化してクラウドサービス鍵２２０を生成してもよい。一部の例では、サービスモジュール１０８は、セッション鍵と共にクラウドサービス鍵を受信すること、及び／又は暗号化されたクラウドサービス鍵を提供することを求めるアイデンティティサービス２１０に対する要求に応答してクラウドサービス鍵を受信することによって、暗号化されたクラウドサービス鍵を受信してもよい。
【００３５】
クラウドサービス鍵２２０を復号した後、サービスモジュール１０８は、クラウドサービス鍵２２０を使用して、クラウドサービス２０８（１）が格納する暗号化されたデータを復号してもよい。一部の例では、サービスモジュール１０８は、暗号化されたデータを復号するために、復号されたクラウドサービス鍵２２０をクラウドサービス２０８（１）に提供してもよい。データを復号した後、クラウドサービス２０８（１）は、復号されたデータをクライアント２０２に送信してもよい。次いで、クラウドサービス２０８（１）は、クラウドサービス鍵２２０が、暗号化されたデータと共にクラウドサービス２０８（１）上に残らないように、クラウドサービス鍵２２０を破棄してもよい。一部の例では、サービスモジュール１０８は、クラウドサービス２０８（１）から暗号化されたデータを受信し、クラウドサービス鍵２２０を使用してデータを復号してもよい。この例では、クラウドサービス２０８（１）は、クラウドサービス２０８（１）上に格納されたデータを復号するために必要なクラウドサービス鍵２２０を一時的にでさえ取得しない。
【００３６】
ステップ３０８では、本明細書に記載するシステムの１つ又は２つ以上は、セッション鍵を使用して暗号化されたマスタ鍵をクライアント鍵記憶部内に格納してもよい。例えば、暗号化モジュール１１０は、図２のクライアント２０２の一部として、セッション鍵２１４を使用して暗号化されたマスタ鍵２１８をクライアント鍵記憶部２２２内に格納してもよい。
【００３７】
暗号化モジュール１１０は、暗号化されたマスタ鍵を様々な方法で格納してもよい。例えば、暗号化モジュール１１０は、セッション鍵２１４を使用してマスタ鍵２１８を暗号化し、暗号化されたマスタ鍵をクライアント鍵記憶部２２２内に格納してもよく、クライアント鍵記憶部２２２は、クライアント２０２上に常駐してもよい。あるいは、暗号化モジュール１１０は、暗号化されたマスタ鍵を、アイデンティティサービス２１０上に常駐するクライアント鍵記憶部２２２内に格納してもよい。詳細に後述するように、クライアント鍵記憶部２２２をアイデンティティサービス２１０上に配置することは、複数のクライアントからのクラウドサービスへのシングルサインオンを容易にし得る。
【００３８】
ステップ３１０では、本明細書に記載するシステムの１つ又は２つ以上は、アイデンティティサービスから、追加のクラウドサービス上の暗号化されたデータへの追加のアクセス要求の追加の通知であって、セッション鍵を含む、通知を受信してもよい。例えば、セッションモジュール１０４は、図２のクライアント２０２の一部として、アイデンティティサービス２１０から、クラウドサービス２０８（２）上の暗号化されたデータへの追加のアクセス要求の追加の通知２２６を受信してもよく、通知２１２はセッション鍵２１４を含む。
【００３９】
セッションモジュール１０４は、クラウドサービス上の暗号化されたデータへの追加のアクセス要求を様々な方法で受信してもよい。例えば、セッションモジュール１０４は、アイデンティティサービス２１０からセッション鍵２１４を含む追加の通知２２６を受信してもよい。別の例では、クライアント鍵記憶部２２２は、アイデンティティサービス２１０上に配置されてもよい。この例では、セッションモジュール１０４は、セッション鍵２１４と、マスタ鍵２１８で暗号化された追加のクラウドサービス鍵２３０とを含む追加の通知２２６を受信してもよい。
【００４０】
ステップ３１２では、本明細書に記載するシステムの１つ又は２つ以上は、再度ユーザから認証要素を取得することなしに、セッション鍵を使用してマスタ鍵を復号してもよい。例えば、復号モジュール１１２は、図２のクライアント２０２の一部として、再度ユーザから認証要素２１６を取得することなしに、セッション鍵２１４を使用してマスタ鍵２１８を復号してもよい。
【００４１】
復号モジュール１１２は、マスタ鍵２１８を様々な方法で復号してもよい。例えば、復号モジュール１１２は、セッション鍵２１４を使用して暗号化された、暗号化されたマスタ鍵２２４をクライアント鍵記憶部２２２から検索してもよい。復号モジュール１１２は、セッション鍵２１４を使用して暗号化されたマスタ鍵２２４を復号して、復号されたマスタ鍵２２８を生成してもよい。別の例では、詳細に後述するように、復号モジュール１１２は、暗号化されたマスタ鍵２２４を携帯電話などのパーソナルデバイスから検索してもよい。
【００４２】
ステップ３１４では、本明細書に記載するシステムの１つ又は２つ以上は、マスタ鍵を使用して、追加のクラウドサービス上のデータを復号するための追加のクラウドサービス鍵を復号してもよい。例えば、サービスモジュール１０８は、図２のクライアント２０２の一部として、復号されたマスタ鍵２２８を使用して、追加のクラウドサービス２０８（２）上のデータを復号するための追加のクラウドサービス鍵２３０を復号してもよい。
【００４３】
サービスモジュール１０８は、追加のクラウドサービス鍵２３０を様々な方法で復号してもよい。例えば、サービスモジュール１０８は、マスタ鍵２１８を使用して暗号化された追加のクラウドサービス鍵２３０をクラウドサービス２０８（２）から検索してもよい。サービスモジュールは、復号されたマスタ鍵２２８を使用して追加のクラウドサービス鍵２３０を復号してもよい。別の例では、サービスモジュール１０８は、追加のクラウドサービス鍵２３０をアイデンティティサービス２１０から検索してもよい。
【００４４】
図４は、シングルサインオンアプリケーション用の暗号化鍵を管理するための追加の例示的なシステム４００のブロック図である。例示的なシステム４００は、本明細書に記載するシステムがどのようにして複数のクライアントデバイスからのシングルサインオンを容易にするように暗号化鍵を管理し得るかを図示する。例示的なシステム４００は、クライアント２０２、ネットワーク２０４、クラウドサービス２０６、及びアイデンティティサービス２１０などの、図２の例示的なシステム２００のいくつかのコンポーネントを含む。クライアント鍵記憶部２２２は、アイデンティティサービス２１０上に配置されてもよい。例示的なシステム４００はまた、パーソナルデバイス４０２を含み、パーソナルデバイス４０２は、秘密鍵記憶部４０４を含む。例示的なシステム４００はまた、追加のクライアント４０８を含み、追加のクライアント４０８は、クライアント２０２のように、図１に示すモジュール１０２を含む。
【００４５】
一実施例では、ユーザは、クラウドサービス２０８（１）上の暗号化されたデータにクライアント２０２からアクセスしようと試みてもよい。クラウドサービス２０８（１）は、クライアント２０２がクラウドサービス２０８（１）上のデータにアクセスすることを許可する前に、アイデンティティサービス２１０がユーザの本人確認を行うことを要求してもよい。アイデンティティサービス２１０は、クライアント２０２上のモジュール１０２に通知２１２を送信してもよく、通知２１２は、セッション鍵２１４と、パーソナルデバイス４０２上の秘密鍵記憶部４０４内に格納された秘密鍵４０６を使用して暗号化された、暗号化されたマスタ鍵２２４と、マスタ鍵２１８を使用して暗号化された、暗号化されたクラウドサービス鍵４１０とを含んでもよい。通知２１２を受信することに応答して、クライアント２０２上のモジュール１０２は、ユーザを認証してもよい。あるいは、クライアント２０２上のモジュール１０２は、ユーザに、パーソナルデバイス４０２上でパスワードを入力するか、又は認証用の他の認証要素を提供するように指示してもよい。
【００４６】
ユーザが認証された後、クライアント２０２上のモジュール１０２は、セッション鍵２１４をパーソナルデバイス４０２に送信してもよい。パーソナルデバイス４０２は、セッション鍵２１５を使用して秘密鍵４０６を暗号化して、暗号化された秘密鍵４１４を生成し、次いで、暗号化された秘密鍵４１４をクライアント２０２に送信してもよい。クライアント２０２上のモジュール１０２は、セッション鍵２１４を使用して秘密鍵４０６を復号し、次いで、秘密鍵４０６を使用して暗号化されたマスタ鍵２２４を復号して、マスタ鍵２１８を生成してもよい。次いで、モジュール１０２は、セッション鍵２１４を使用してマスタ鍵２１８を再暗号化し、暗号化されたマスタ鍵を、秘密鍵記憶部４０４内に格納するために、パーソナルデバイス４０２に送信してもよい。次いで、モジュール１０２は、マスタ鍵２１８を使用してクラウドサービス鍵２２０を復号してもよい。次いで、クライアント２０２は、クラウドサービス２０８（１）上に格納された暗号化されたデータを復号するために、復号されたクラウドサービス鍵２２０をクラウドサービス２０８（１）に提供してもよい。あるいは、クライアント２０２は、クラウドサービス２０８（１）から暗号化されたデータを検索し、暗号化されたデータをクライアント２０２上でクラウドサービス鍵２２０を使用して復号してもよい。
【００４７】
クラウドサービス２０８（１）上のデータにクライアント２０２からアクセスした後、ユーザは、クラウドサービス２０８（２）上の暗号化されたデータに追加のクライアント４０８からアクセスしようと試みてもよい。クラウドサービス２０８（２）は、追加のクライアント４０８がクラウドサービス２０８（２）上のデータにアクセスすることを許可する前に、アイデンティティサービス２１０がユーザの本人確認を行うことを要求してもよい。アイデンティティサービス２１０は、追加の通知２２６を追加のクライアント４０８上のモジュール１０２に送信してもよい。通知２１２と同様に、追加の通知２２６は、セッション鍵２１４を含んでもよい。追加の通知２２６はまた、マスタ鍵２１８を使用して暗号化された、暗号化された追加クラウドサービス鍵４１２を含んでもよい。
【００４８】
ユーザの本人確認は既に行われているため、パスワード又は他の認証要素を提供する代わりに、ユーザがクラウドサービス２０８（２）上の暗号化されたデータにアクセスしようと試みたこと、及びこのアクセスは既に確立済みのシングルサインオンセッションを使用して許可されるべきであることを、パーソナルデバイス４０２上で確認するようにユーザに指示してもよい。暗号化されたデータへのアクセスが許可されるべきであることをユーザが確認した後、パーソナルデバイス４０２は、セッション鍵２１４を使用して以前暗号化され、秘密鍵記憶部４０６内に格納されているマスタ鍵２１８を追加のクライアント４０８に送信してもよい。追加のクライアント４０８上のモジュール１０２は、アイデンティティサービス２１０から受信したセッション鍵２１４を使用してマスタ鍵２１８を復号してもよい。次いで、追加のクライアント４０８上のモジュール１０２は、マスタ鍵２１８を使用して、暗号化された追加のクラウドサービス鍵４１２を復号し、追加のクラウドサービス鍵２３０を生成してもよい。次いで、追加のクライアント４０８上のモジュール１０２は、追加のクラウドサービス鍵２３０をクラウドサービス２０８（２）に提供すること、又はクラウドサービス２０８（２）から暗号化されたデータを検索し、追加のクライアント４０８上のデータを復号することのいずれかによって、追加のクラウドサービス鍵２３０を使用してクラウドサービス２０８（２）上の暗号化されたデータを復号してもよい。
【００４９】
上記で詳細に記載したように、本明細書に記載するシステム及び方法は、アプリケーションと共に格納される暗号化されたデータのセキュリティを維持しながら、複数のクラウドアプリケーションへのシングルサインオンを容易にするように暗号化鍵を管理してもよい。本明細書に記載するシステム及び方法は、暗号化鍵が暗号化されたデータと共に格納される必要なしに、暗号化されたデータストアへのユーザアクセスを提供してもよい。一部の実施形態では、クラウドサービスは、決して、一時的にでさえ、サービスに格納されたユーザデータを復号するために必要な鍵にアクセスしない。
【００５０】
図５は、本明細書に記載及び／又は図示される実施形態のうち１つ又は２つ以上を実装することができる例示的なコンピューティングシステム５１０のブロック図である。例えば、コンピューティングシステム５１０の全て又は一部は、単独で又は他の要素と組み合わせてのいずれかで、（図３に示されるステップのうち１つ又は２つ以上などの）本明細書に記載するステップのうち１つ又は２つ以上を実施してもよく、かつ／又はそれを実施するための手段となってもよい。コンピューティングシステム５１０の全て又は一部はまた、本明細書に記載及び／又は図示される他の任意のステップ、方法、若しくは処理を実施してもよく、かつ／又はそれを実施するための手段であってもよい。
【００５１】
コンピューティングシステム５１０は、コンピュータ可読命令を実行することができる任意のシングル若しくはマルチプロセッサのコンピューティングデバイス又はシステムを幅広く表す。コンピューティングシステム５１０の例としては、ワークステーション、ラップトップ、クライアント側端末、サーバ、分散型コンピューティングシステム、ハンドヘルドデバイス、又は他の任意のコンピューティングシステム若しくはデバイスが挙げられるが、これらに限定されない。その最も基本的な構成において、コンピューティングシステム５１０は、少なくとも１つのプロセッサ５１４及びシステムメモリ５１６を含んでもよい。
【００５２】
プロセッサ５１４は、一般に、データの処理又は命令の解釈及び実行が可能な任意のタイプ又は形態の物理的処理ユニット（例えば、ハードウェア実装型中央処理ユニット）を表す。特定の実施形態では、プロセッサ５１４は、ソフトウェアアプリケーション又はモジュールから命令を受信してもよい。これらの命令は、プロセッサ５１４に、本明細書に記載及び／又は図示される例示的な実施形態のうち１つ又は２つ以上の機能を実施させてもよい。
【００５３】
システムメモリ５１６は、一般に、データ及び／又は他のコンピュータ可読命令を格納することができる任意のタイプ又は形態の揮発性又は不揮発性の記憶デバイス又は媒体を表す。システムメモリ５１６の例としては、ランダムアクセスメモリ（ＲＡＭ）、読み取り専用メモリ（ＲＯＭ）、フラッシュメモリ、又は他の任意の好適なメモリデバイスが挙げられるが、これらに限定されない。必須ではないが、特定の実施形態では、コンピューティングシステム５１０は、揮発性メモリユニット（例えば、システムメモリ５１６など）、及び不揮発性記憶デバイス（例えば、詳細に後述するような、一次記憶デバイス５３２など）の両方を含んでもよい。一実施例では、図１のモジュール１０２のうち１つ又は２つ以上がシステムメモリ５１６内にロードされてもよい。
【００５４】
特定の実施形態では、例示的なコンピューティングシステム５１０はまた、プロセッサ５１４及びシステムメモリ５１６に加えて、１つ又は２つ以上の構成要素又は要素を含んでもよい。例えば、図５に示されるように、コンピューティングシステム５１０は、メモリコントローラ５１８、入力／出力（Ｉ／Ｏ）コントローラ５２０、及び通信インターフェース５２２を含んでもよいが、それらはそれぞれ通信基盤５１２を介して相互接続されてもよい。通信基盤５１２は、一般に、コンピューティングデバイスの１つ又は２つ以上の構成要素間の通信を容易にすることができる、任意のタイプ又は形態の基盤を表す。通信インフラストラクチャ５１２の例としては、通信バス（産業標準構成（ＩＳＡ）、周辺装置相互接続（ＰＣＩ）、ＰＣＩエクスプレス（ＰＣＩｅ）、又は類似のバスなど）及びネットワークが挙げられるが、これらに限定されない。
【００５５】
メモリコントローラ５１８は、一般に、メモリ若しくはデータを扱うこと、又はコンピューティングシステム５１０の１つ若しくは２つ以上の構成要素間の通信を制御することができる、任意のタイプ又は形態のデバイスを表す。例えば、特定の実施形態では、メモリコントローラ５１８は、通信基盤５１２を介して、プロセッサ５１４、システムメモリ５１６、及びＩ／Ｏコントローラ５２０の間の通信を制御してもよい。
【００５６】
Ｉ／Ｏコントローラ５２０は、一般に、コンピューティングデバイスの入出力機能を調整及び／又は制御することができる、任意のタイプ又は形態のモジュールを表す。例えば、特定の実施形態では、Ｉ／Ｏコントローラ５２０は、プロセッサ５１４、システムメモリ５１６、通信インターフェース５２２、ディスプレイアダプタ５２６、入力インターフェース５３０、及び記憶インターフェース５３４などの、コンピューティングシステム５１０の１つ又は２つ以上の要素間におけるデータの転送を制御し、又はそれを容易にしてもよい。
【００５７】
通信インターフェース５２２は、例示的なコンピューティングシステム５１０と１つ又は２つ以上の追加のデバイスとの間の通信を容易にすることができる、任意のタイプ又は形態の通信デバイス又はアダプタを幅広く表す。例えば、特定の実施形態では、通信インターフェース５２２は、コンピューティングシステム５１０と、追加のコンピューティングシステムを含む私設又は公衆ネットワークとの間の通信を容易にしてもよい。通信インターフェース５２２の例としては、有線ネットワークインターフェース（ネットワークインターフェースカードなど）、無線ネットワークインターフェース（無線ネットワークインターフェースカードなど）、モデム、及び他の任意の好適なインターフェースが挙げられるが、これらに限定されない。少なくとも１つの実施形態では、通信インターフェース５２２は、インターネットなどのネットワークへの直接リンクを介して、リモートサーバへの直接接続を提供してもよい。通信インターフェース５２２はまた、例えば、ローカルエリアネットワーク（イーサネット（登録商標）ネットワークなど）、パーソナルエリアネットワーク、電話若しくはケーブルネットワーク、セルラー電話接続、衛星データ接続、又は他の任意の好適な接続を通して、このような接続を間接的に提供してもよい。
【００５８】
特定の実施形態では、通信インターフェース５２２はまた、外部バス又は通信チャネルを介して、コンピューティングシステム５１０と１つ又は２つ以上の追加のネットワーク又は記憶デバイスとの間の通信を容易にするように構成された、ホストアダプタを表してもよい。ホストアダプタの例としては、非限定的に、小型コンピュータシステムインターフェース（ＳＣＳＩ）ホストアダプタ、ユニバーサルシリアルバス（ＵＳＢ）ホストアダプタ、米国電気電子学会（ＩＥＥＥ）１３９４ホストアダプタ、アドバンストテクノロジーアタッチメント（ＡＴＡ）、パラレルＡＴＡ（ＰＡＴＡ）、シリアルＡＴＡ（ＳＡＴＡ）、及び外部ＳＡＴＡ（ｅＳＡＴＡ）ホストアダプタ、ファイバーチャネルインターフェースアダプタ、イーサネット（登録商標）アダプタなどが挙げられる。通信インターフェース５２２はまた、コンピューティングシステム５１０が分散型又はリモートコンピューティングに関与することを可能にしてもよい。例えば、通信インターフェース５２２は、実行のためにリモートデバイスから命令を受信し、又はリモートデバイスに命令を送信してもよい。
【００５９】
図５に示すように、コンピューティングシステム５１０はまた、ディスプレイアダプタ５２６を介して通信基盤５１２に連結される少なくとも１つのディスプレイデバイス５２４を含んでもよい。ディスプレイデバイス５２４は、一般に、ディスプレイアダプタ５２６によって送付される情報を視覚的に表示することができる、任意のタイプ又は形態のデバイスを表す。同様に、ディスプレイアダプタ５２６は、一般に、ディスプレイデバイス５２４上に表示するために、通信基盤５１２から（又は当該技術分野において既知であるように、フレームバッファから）グラフィックス、テキスト、及び他のデータを送付するように構成された、任意のタイプ又は形態のデバイスを表す。
【００６０】
図５に示すように、例示的なコンピューティングシステム５１０はまた、入力インターフェース５３０を介して通信基盤５１２に連結される少なくとも１つの入力デバイス５２８を含んでもよい。入力デバイス５２８は、一般に、コンピュータ又は人間のいずれかが生成した入力を、例示的なコンピューティングシステム５１０に提供することができる、任意のタイプ又は形態の入力デバイスを表す。入力デバイス５２８の例としては、キーボード、ポインティングデバイス、音声認識デバイス、又は他の任意の入力デバイスが挙げられるが、これらに限定されない。
【００６１】
図５に示すように、例示的なコンピューティングシステム５１０はまた、記憶インターフェース５３４を介して通信基盤５１２に連結される、一次記憶デバイス５３２及びバックアップ記憶デバイス５３３を含んでもよい。記憶デバイス５３２及び５３３は、一般に、データ及び／又は他のコンピュータ可読命令を格納することができる、任意のタイプ又は形態の記憶デバイス又は媒体を表す。例えば、記憶デバイス５３２及び５３３は、磁気ディスクドライブ（例えば、いわゆるハードドライブ）、ソリッドステートドライブ、フロッピーディスクドライブ、磁気テープドライブ、光ディスクドライブ、フラッシュドライブなどであってもよい。記憶インターフェース５３４は、一般に、記憶デバイス５３２及び５３３とコンピューティングシステム５１０の他の構成要素との間でデータを転送するための、任意のタイプ又は形態のインターフェース又はデバイスを表す。一実施例では、図１のデータベース１２０は、一次記憶デバイス５３２内に格納されてもよい。
【００６２】
特定の実施形態では、記憶デバイス５３２及び５３３は、コンピュータソフトウェア、データ、又は他のコンピュータ可読情報を格納するように構成された取外し可能な記憶ユニットから読み取り、かつ／又はそれに書き込むように構成されてもよい。好適な取外し可能な記憶ユニットの例としては、非限定的に、フロッピーディスク、磁気テープ、光ディスク、フラッシュメモリデバイスなどが挙げられる。記憶デバイス５３２及び５３３はまた、コンピュータソフトウェア、データ、又は他のコンピュータ可読命令がコンピューティングシステム５１０内にロードされることを可能にする、他の同様の構造体又はデバイスを含んでもよい。例えば、記憶デバイス５３２及び５３３は、ソフトウェア、データ、又は他のコンピュータ可読情報を読み取り、かつ書き込むように構成されてもよい。記憶デバイス５３２及び５３３はまた、コンピューティングシステム５１０の一部であってもよく、又は他のインターフェースシステムを通してアクセスされる別個のデバイスであってもよい。
【００６３】
他の多くのデバイス又はサブシステムが、コンピューティングシステム５１０に接続されてもよい。反対に、図５に示す構成要素及びデバイスの全てが、本明細書に記載及び／又は図示される実施形態を実践するために存在する必要があるわけではない。上記で言及したデバイス及びサブシステムはまた、図５に示されるものとは異なる方法で相互接続されてもよい。コンピューティングシステム５１０はまた、任意の数のソフトウェア、ファームウェア、及び／又はハードウェア構成を用いてもよい。例えば、本明細書で開示する例示的な実施形態の１つ以上は、コンピュータ可読媒体上で、コンピュータプログラム（コンピュータソフトウェア、ソフトウェアアプリケーション、コンピュータ可読命令、又はコンピュータ制御論理とも称される）としてコード化されてもよい。「コンピュータ可読媒体」という用語は、本明細書で使用するとき、一般に、コンピュータ可読命令を格納又は保有することができる、任意の形態のデバイス、キャリア、又は媒体を指す。コンピュータ可読媒体の例としては、非限定的に、搬送波などの伝送型媒体、並びに磁気記憶媒体（例えば、ハードディスクドライブ、テープドライブ、及びフロッピーディスク）、光学記憶媒体（例えば、コンパクトディスク（ＣＤ）、デジタルビデオディスク（ＤＶＤ）、及びブルーレイ（ＢＬＵ−ＲＡＹ（登録商標））ディスク）、電子記憶媒体（例えば、ソリッドステートドライブ及びフラッシュメディア）、及び他の分散システムなどの非一時的媒体が挙げられる。
【００６４】
コンピュータプログラムを包含するコンピュータ可読媒体は、コンピューティングシステム５１０内にロードされてもよい。コンピュータ可読媒体に格納されたコンピュータプログラムの全て又は一部は、次いで、システムメモリ５１６内に、及び／又は記憶デバイス５３２及び５３３の様々な部分内に格納されてもよい。プロセッサ５１４によって実行されるとき、コンピューティングシステム５１０内にロードされたコンピュータプログラムは、プロセッサ５１４に、本明細書に記載及び／又は図示される例示的な実施形態のうち１つ又は２つ以上の機能を実施させてもよく、かつ／又はそれらを実施するための手段とならせてもよい。追加的に又は代替案として、本明細書に記載及び／又は図示される例示的な実施形態の１つ以上は、ファームウェア及び／又はハードウェアに実装されてもよい。例えば、コンピューティングシステム５１０は、本明細書で開示する例示的な実施形態のうち１つ又は２つ以上を実装するように適合された特定用途向け集積回路（ＡＳＩＣ）として構成されてもよい。
【００６５】
図６は、クライアントシステム６１０、６２０、及び６３０、並びにサーバ６４０及び６４５がネットワーク６５０に連結され得る、例示的なネットワークアーキテクチャ６００のブロック図である。上記に詳述したように、ネットワークアーキテクチャ６００の全て又は一部は、単独で又は他の要素と組み合わせてのいずれかで、（図３に示されるステップのうち１つ又は２つ以上などの）本明細書で開示するステップのうち１つ又は２つ以上を実施してもよく、かつ／又はそれを実施するための手段となってもよい。ネットワークアーキテクチャ６００の全て又は一部はまた、本開示に記載される他のステップ及び特徴を実施するために使用されてもよく、かつ／又はそれを実施するための手段となってもよい。
【００６６】
クライアントシステム６１０、６２０、及び６３０は、一般に、図５の例示的なコンピューティングシステム５１０などの、任意のタイプ又は形態のコンピューティングデバイス又はシステムを表す。同様に、サーバ６４０及び６４５は、一般に、様々なデータベースサービスを提供し、かつ／又は特定のソフトウェアアプリケーションを実行するように構成された、アプリケーションサーバ又はデータベースサーバなどのコンピューティングデバイス又はシステムを表す。ネットワーク６５０は、一般に、例えばイントラネット、ＷＡＮ、ＬＡＮ、ＰＡＮ、又はインターネットを含む、任意の電気通信ネットワーク又はコンピュータネットワークを表す。一実施例では、クライアントシステム６１０、６２０、及び／若しくは６３０、並びに／又はサーバ６４０及び／若しくは６４５は、図１からのシステム１００の全て又は一部を含んでもよい。
【００６７】
図６に示すように、１つ又は２つ以上の記憶デバイス６６０（１）〜（Ｎ）は、サーバ６４０に直接取り付けられてもよい。同様に、１つ又は２つ以上の記憶デバイス６７０（１）〜（Ｎ）は、サーバ６４５に直接取り付けられてもよい。記憶デバイス６６０（１）〜（Ｎ）及び記憶デバイス６７０（１）〜（Ｎ）は、一般に、データ及び／又は他のコンピュータ可読命令を格納することができる、任意のタイプ又は形態の記憶デバイス又は媒体を表す。特定の実施形態では、記憶デバイス６６０（１）〜（Ｎ）及び記憶デバイス６７０（１）〜（Ｎ）は、ネットワークファイルシステム（ＮＦＳ）、サーバメッセージブロック（ＳＭＢ）、又は共通インターネットファイルシステム（ＣＩＦＳ）などの、様々なプロトコルを使用して、サーバ６４０及び６４５と通信するように構成された、ネットワーク接続ストレージ（ＮＡＳ）デバイスを表してもよい。
【００６８】
サーバ６４０及び６４５はまた、ストレージエリアネットワーク（ＳＡＮ）ファブリック６８０に接続されてもよい。ＳＡＮファブリック６８０は、一般に、複数の記憶デバイス間の通信を容易にすることができる、任意のタイプ又は形態のコンピュータネットワーク又はアーキテクチャを表す。ＳＡＮファブリック６８０は、サーバ６４０及び６４５と、複数の記憶デバイス６９０（１）〜（Ｎ）及び／又はインテリジェント記憶アレイ６９５との間の通信を容易にしてもよい。ＳＡＮファブリック６８０はまた、記憶デバイス６９０（１）〜（Ｎ）及びインテリジェント記憶アレイ６９５が、クライアントシステム６１０、６２０、及び６３０にローカルで取り付けられたデバイスとして現れるような方式で、ネットワーク６５０並びにサーバ６４０及び６４５を介して、クライアントシステム６１０、６２０、及び６３０と、記憶デバイス６９０（１）〜（Ｎ）及び／又はインテリジェント記憶アレイ６９５との間の通信を容易にしてもよい。記憶デバイス６６０（１）〜（Ｎ）及び記憶デバイス６７０（１）〜（Ｎ）と同様に、記憶デバイス６９０（１）〜（Ｎ）及びインテリジェント記憶アレイ６９５は、一般に、データ及び／又は他のコンピュータ可読命令を格納することができる任意のタイプ又は形態の記憶デバイス又は媒体を表す。
【００６９】
特定の実施形態では、また図５の例示的なコンピューティングシステム５１０を参照すると、図５の通信インターフェース５２２などの通信インターフェースは、それぞれのクライアントシステム６１０、６２０、及び６３０とネットワーク６５０との間の接続を提供するために使用されてもよい。クライアントシステム６１０、６２０、及び６３０は、例えば、ウェブブラウザ又は他のクライアントソフトウェアを使用して、サーバ６４０又は６４５上の情報にアクセスすることができてもよい。かかるソフトウェアは、クライアントシステム６１０、６２０、及び６３０が、サーバ６４０、サーバ６４５、記憶デバイス６６０（１）〜（Ｎ）、記憶デバイス６７０（１）〜（Ｎ）、記憶デバイス６９０（１）〜（Ｎ）、又はインテリジェント記憶アレイ６９５によってホストされるデータにアクセスすることを可能にしてもよい。図６は、データを交換するために（インターネットなどの）ネットワークを使用することを示しているが、本明細書に記載及び／又は図示される実施形態は、インターネット又は任意の特定のネットワークベースの環境に限定されない。
【００７０】
少なくとも１つの実施形態では、本明細書で開示する例示的な実施形態のうち１つ又は２つ以上の全て又は一部は、コンピュータプログラムとしてコード化され、サーバ６４０、サーバ６４５、記憶デバイス６６０（１）〜（Ｎ）、記憶デバイス６７０（１）〜（Ｎ）、記憶デバイス６９０（１）〜（Ｎ）、インテリジェント記憶アレイ６９５、又はこれらの任意の組み合わせ上にロードされ、これらによって実行されてもよい。本明細書で開示する例示的な実施形態のうち１つ又は２つ以上の全て又は一部はまた、コンピュータプログラムとしてコード化され、サーバ６４０内に格納され、サーバ６４５によって作動し、ネットワーク６５０上でクライアントシステム６１０、６２０、及び６３０に分散されてもよい。
【００７１】
上記に詳述したように、コンピューティングシステム５１０及び／又はネットワークアーキテクチャ６００の１つ若しくは２つ以上の構成要素は、単独で又は他の要素と組み合わせてのいずれかで、シングルサインオンアプリケーション用の暗号化鍵を管理するための例示的な方法の１つ又は２つ以上のステップを実施してもよく、かつ／又は実施するための手段となってもよい。
【００７２】
前述の開示は、特定のブロック図、フローチャート、及び実施例を使用して様々な実施形態を記載しているが、本明細書に記載及び／又は図示されるそれぞれのブロック図の構成要素、フローチャートのステップ、動作、及び／又は構成要素は、個別にかつ／又は集合的に、広範なハードウェア、ソフトウェア、又はファームウェア（若しくはそれらの任意の組み合わせ）の構成を使用して実装されてもよい。それに加えて、同じ機能性を達成するように他の多くのアーキテクチャを実装することができるので、他の構成要素内に包含される構成要素のあらゆる開示は、本質的に例示と見なされるべきである。
【００７３】
一部の実施例では、図１の例示的なシステム１００の全て又は一部は、クラウドコンピューティング環境又はネットワークベースの環境の一部を表してもよい。クラウドコンピューティング環境は、インターネットを介して、様々なサービス及びアプリケーションを提供してもよい。これらのクラウドベースのサービス（例えば、サービスとしてのソフトウェア、サービスとしてのプラットフォーム、サービスとしての基盤など）は、ウェブブラウザ又は他のリモートインターフェースを通してアクセス可能であってもよい。本明細書に記載する様々な機能は、リモートデスクトップ環境又は他の任意のクラウドベースのコンピューティング環境を通して提供されてもよい。
【００７４】
様々な実施形態では、図１の例示的なシステム１００の全て又は一部は、クラウドベースのコンピューティング環境内におけるマルチテナンシーを容易にしてもよい。換言すれば、本明細書に記載するソフトウェアモジュールは、本明細書に記載する機能の１つ以上に対するマルチテナンシーを容易にするように、コンピューティングシステム（例えば、サーバ）を構成してもよい。例えば、本明細書に記載するソフトウェアモジュールの１つ以上は、２つ以上のクライアント（例えば、顧客）がサーバ上で作動しているアプリケーションを共有するのを可能にするように、サーバをプログラムしてもよい。このようにプログラムされたサーバは、複数の顧客（即ち、テナント）の間で、アプリケーション、オペレーティングシステム、処理システム、及び／又は記憶システムを共有してもよい。本明細書に記載するモジュールの１つ以上はまた、ある顧客が別の顧客のデータ及び／又は設定情報にアクセスできないように、顧客ごとにマルチテナントアプリケーションのデータ及び／又は設定情報を分割してもよい。
【００７５】
様々な実施形態によれば、図１の例示的なシステム１００の全て又は一部は仮想環境内で実装されてもよい。例えば、本明細書に記載するモジュール及び／又はデータは、仮想機械内で常駐及び／又は実行してもよい。本明細書で使用するとき、「仮想機械」という用語は、一般に、仮想機械マネージャ（例えば、ハイパーバイザ）によってコンピューティングハードウェアから抽出される、任意のオペレーティングシステム環境を指す。それに加えて、又は別の方法として、本明細書に記載するモジュール及び／又はデータは、仮想化層内で常駐及び／又は実行してもよい。本明細書で使用するとき、「仮想化層」という用語は、一般に、オペレーティングシステム環境にオーバーレイする、並びに／あるいはそこから抽出される、任意のデータ層及び／又はアプリケーション層を指す。仮想化層は、基礎となる基本オペレーティングシステムの一部であるかのように仮想化層を提示する、ソフトウェア仮想化ソリューション（例えば、ファイルシステムフィルタ）によって管理されてもよい。例えば、ソフトウェア仮想化ソリューションは、最初に基本ファイルシステム及び／又はレジストリ内の場所に方向付けられる呼び出しを、仮想化層内の場所にリダイレクトしてもよい。
【００７６】
一部の実施例では、図１の例示的なシステム１００の全て又は一部は、モバイルコンピューティング環境の一部を表してもよい。モバイルコンピューティング環境は、携帯電話、タブレットコンピュータ、電子ブックリーダー、携帯情報端末、ウェアラブルコンピューティングデバイス（例えば、ヘッドマウントディスプレイを備えたコンピューティングデバイス、スマートウォッチなど）などを含む、広範なモバイルコンピューティングデバイスによって実装されてもよい。一部の実施例において、モバイルコンピューティング環境は、例えば、バッテリ電力への依存、任意の所与の時間での１つのみのフォアグラウンドアプリケーションの提示、リモート管理特性、タッチスクリーン特性、位置及び移動データ（例えば、グローバルポジショニングシステム、ジャイロスコープ、加速度計などによって提供される）、システムレベルの構成への修正を制限する、及び／又は第３者のソフトウェアが他のアプリケーションの挙動を検査する能力を限定する制限されたプラットフォーム、アプリケーションのインストールを（例えば、認可されたアプリケーションストアからのみ生じるように）制限する制御などを含む、１つ以上の個別の特性を有することができる。本明細書で説明される様々な機能は、モバイルコンピューティング環境に対して提供され得る、及び／又はモバイルコンピューティング環境と相互作用し得る。
【００７７】
それに加えて、図１の例示的なシステム１００の全て又は一部は、情報管理のための１つ以上のシステムの部分を表してもよく、それと相互作用してもよく、それによって生成されるデータを消費してもよく、かつ／又はそれによって消費されるデータを生成してもよい。本明細書で使用するとき、「情報管理」という用語は、データの保護、組織化、及び／又は記憶を指してもよい。情報管理のためのシステムの例としては、非限定的に、記憶システム、バックアップシステム、アーカイブシステム、複製システム、高可用性システム、データ検索システム、仮想化システムなどを挙げることができる。
【００７８】
一部の実施形態では、図１の例示的なシステム１００の全て又は一部は、情報セキュリティのための１つ以上のシステムの部分を表してもよく、それによって保護されるデータを生成してもよく、かつ／又はそれと通信してもよい。本明細書で使用するとき、「情報セキュリティ」という用語は、保護されたデータに対するアクセスの制御を指してもよい。情報セキュリティのためのシステムの例としては、非限定的に、管理されたセキュリティサービスを提供するシステム、データ損失防止システム、本人認証システム、アクセス制御システム、暗号化システム、ポリシー遵守システム、侵入検出及び防止システム、電子証拠開示システムなどを挙げることができる。
【００７９】
一部の実施例によれば、図１の例示的なシステム１００の全て又は一部は、エンドポイントセキュリティのための１つ以上のシステムの部分を表してもよく、それと通信してもよく、かつ／又はそれから保護を受けてもよい。本明細書で使用するとき、「エンドポイントセキュリティ」という用語は、不正及び／若しくは違法な使用、アクセス、並びに／又は制御からのエンドポイントシステムの保護を指してもよい。エンドポイント保護のためのシステムの例としては、非限定的に、アンチマルウェアシステム、ユーザ認証システム、暗号化システム、プライバシーシステム、スパムフィルタリングサービスなどを挙げることができる。
【００８０】
本明細書に記載及び／又は図示されるプロセスパラメータ及びステップの順序は、単なる例として与えられるものであり、所望に応じて変更することができる。例えば、本明細書に図示及び／又は記載されるステップは特定の順序で図示又は考察されることがあるが、これらのステップは、必ずしも図示又は考察される順序で実施される必要はない。本明細書に記載及び／又は図示される様々な例示的な方法はまた、本明細書に記載若しくは図示されるステップの１つ以上を省略するか、又は開示されるものに加えて追加のステップを含んでもよい。
【００８１】
様々な実施形態を、完全に機能的なコンピューティングシステムの文脈で本明細書に記載及び／又は図示してきたが、これらの例示的な実施形態の１つ以上は、実際に配布を実施するのに使用されるコンピュータ可読媒体の特定のタイプにかかわらず、様々な形態のプログラム製品として配布されてもよい。本明細書に開示される実施形態はまた、特定のタスクを実施するソフトウェアモジュールを使用して実装されてもよい。これらのソフトウェアモジュールは、コンピュータ可読記憶媒体又はコンピューティングシステムに格納されてもよい、スクリプト、バッチ、若しくは他の実行可能ファイルを含んでもよい。一部の実施形態では、これらのソフトウェアモジュールは、本明細書に開示される例示的な実施形態の１つ以上を実施するようにコンピューティングシステムを構成してもよい。
【００８２】
それに加えて、本明細書に記載するモジュールの１つ以上は、データ、物理的デバイス、及び／又は物理的デバイスの表現を、１つの形態から別の形態へと変換してもよい。例えば、本明細書に記載のモジュールのうち１つ又は２つ以上は、変換されるべき認証要素を受信し、認証要素を変換し、変換結果を出力して１つ又は２つ以上の暗号鍵を生成し、変換結果を使用して暗号鍵を管理し、変換結果を格納して１つ又は２つ以上のクラウドサービスによって維持される暗号化されたデータへのシングルサインオンアクセスを容易にしてもよい。それに加えて、又は別の方法として、本明細書に列挙されるモジュールの１つ以上は、コンピューティングデバイス上で実行し、コンピューティングデバイスにデータを格納し、並びに／あるいは別の方法でコンピューティングデバイスと相互作用することによって、プロセッサ、揮発性メモリ、不揮発性メモリ、及び／又は物理的コンピューティングデバイスの他の任意の部分を、１つの形態から別の形態へと変換してもよい。
【００８３】
上述の記載は、本明細書に開示される例示的な実施形態の様々な態様を他の当業者が最良に利用するのを可能にするために提供されてきた。この例示的な記載は、網羅的であることを意図するものではなく、又は開示される任意の正確な形態に限定することを意図するものではない。本開示の趣旨及び範囲から逸脱することなく、多くの修正及び変形が可能である。本明細書に開示される実施形態は、あらゆる点で例示的であり、限定的ではないものと見なされるべきである。本開示の範囲を決定する際に、添付の特許請求の範囲及びそれらの等価物を参照するべきである。
【００８４】
別途記載のない限り、「〜に接続される」及び「〜に連結される」という用語（並びにそれらの派生語）は、本明細書及び特許請求の範囲で使用するとき、直接的接続及び間接的接続（即ち、他の要素若しくは構成要素を介する）の両方を許容するものとして解釈されるものである。それに加えて、「ａ」又は「ａｎ」という用語は、本明細書及び特許請求の範囲で使用するとき、「〜のうち少なくとも１つ」を意味するものとして解釈されるものである。最後に、簡潔にするため、「含む」及び「有する」という用語（並びにそれらの派生語）は、本明細書及び特許請求の範囲で使用するとき、「備える」という単語と互換性があり、同じ意味を有する。
【図１】
2019511890.tif 000003
【図２】
2019511890.tif 000004
【図３】
2019511890.tif 000005
【図４】
2019511890.tif 000006
【図５】
2019511890.tif 000007
【図６】
2019511890.tif 000008
【手続補正書】
【提出日】平成30年9月19日(2018.9.19)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
シングルサインオンアプリケーション用の暗号化鍵を管理するためのコンピュータ実装方法であって、前記方法の少なくとも一部分は、少なくとも１つのプロセッサを含むコンピューティングデバイスによって実施され、前記方法は、
アイデンティティサービスから、クラウドサービス上の暗号化されたデータへのアクセス要求の通知であって、クラウドサービス鍵を復号するためのマスタ鍵を暗号化及び復号するためのセッション鍵を含む、通知を受信することと、
ユーザから受信した少なくとも１つの認証要素に基づいて、前記マスタ鍵を導出することと、
前記マスタ鍵を使用して、前記クラウドサービス上のデータを復号するためのクラウドサービス鍵を復号することと、
前記セッション鍵を使用して暗号化された前記マスタ鍵をクライアント鍵記憶部に記憶することと、
前記アイデンティティサービスから、追加のクラウドサービス上の暗号化されたデータへの追加のアクセス要求の追加の通知であって、前記セッション鍵を含む、通知を受信することと、
再度前記ユーザから前記認証要素を取得することなしに、前記セッション鍵を使用することによって前記マスタ鍵を復号することと、
前記マスタ鍵を使用して、前記追加のクラウドサービス上のデータを復号するための追加のクラウドサービス鍵を復号することと、を含む、方法。
【請求項２】
前記マスタ鍵を導出することは、前記ユーザから受信した前記認証要素にハッシュ関数を適用することを含む、請求項１に記載のコンピュータ実装方法。
【請求項３】
前記マスタ鍵を導出することは、
前記ユーザから受信した前記認証要素に基づいて前記ユーザを認証することと、
前記ユーザを認証することに応答して、前記マスタ鍵を暗号化及び復号するための秘密鍵を検索することと、
前記秘密鍵を使用して前記マスタ鍵を復号することと、を含む、請求項１に記載のコンピュータ実装方法。
【請求項４】
前記暗号化されたデータを復号するために、前記復号されたクラウドサービス鍵を前記クラウドサービスに提供することを更に含む、請求項１に記載のコンピュータ実装方法。
【請求項５】
クライアント上で、前記復号されたクラウドサービス鍵を使用して復号するために、前記暗号化されたデータを前記クラウドサービスから受信することを更に含む、請求項１に記載のコンピュータ実装方法。
【請求項６】
前記暗号化されたクラウドサービス鍵を前記クラウドサービスから受信することを更に含む、請求項１に記載のコンピュータ実装方法。
【請求項７】
前記暗号化されたクラウドサービス鍵を前記アイデンティティサービスから受信することを更に含む、請求項１に記載のコンピュータ実装方法。
【請求項８】
前記暗号化されたクラウドサービス鍵を受信することは、
前記セッション鍵と共に前記クラウドサービス鍵を受信することと、
前記クラウドサービス鍵を提供することを求める前記アイデンティティサービスに対する要求に応答して前記クラウドサービス鍵を受信することと、の少なくとも１つを含む、請求項１又は７に記載のコンピュータ実装方法。
【請求項９】
クラウドサービス鍵を復号するための前記マスタ鍵を暗号化及び復号するための前記セッション鍵をクライアントエージェントに提供することによって前記クラウドサービス上の暗号化されたデータへのアクセスを容易化することを求める要求を、前記アイデンティティサービスにおいて受信することと、
前記セッション鍵を前記クライアントエージェントに提供することと、を更に含む、請求項１に記載のコンピュータ実装方法。
【請求項１０】
シングルサインオンアプリケーション用の暗号化鍵を管理するためのシステムであって、
アイデンティティサービスから、クラウドサービス上の暗号化されたデータへのアクセス要求の通知であって、クラウドサービス鍵を復号するためのマスタ鍵を暗号化及び復号するためのセッション鍵を含む、通知を受信する、メモリに記憶された受信するための手段と、
ユーザから受信した少なくとも１つの認証要素に基づいて前記マスタ鍵を導出する、メモリに記憶された導出するための手段と、
前記マスタ鍵を使用して、前記クラウドサービス上のデータを復号するためのクラウドサービス鍵を復号する、メモリに記憶された復号するための手段と、
前記セッション鍵を使用して暗号化された前記マスタ鍵をクライアント鍵記憶部に記憶する、メモリに記憶された記憶するための手段と、を備え、
前記受信するための手段は、アイデンティティサービスから、追加のクラウドサービス上の暗号化されたデータへの追加のアクセス要求の追加の通知であって、前記セッション鍵を含む、通知を受信し、
前記復号するための手段は、再度前記ユーザから前記認証要素を取得することなしに、前記セッション鍵を使用することによって前記マスタ鍵を復号し、
前記復号するための手段は、前記マスタ鍵を使用して、前記追加のクラウドサービス上のデータを復号するための追加のクラウドサービス鍵を復号し、
前記システムは更に、前記受信するための手段、前記導出するための手段、前記復号するための手段、及び前記記憶するための手段を実行するように構成された少なくとも１つの物理プロセッサを備える、システム。
【請求項１１】
前記導出するための手段は、前記ユーザから受信した前記認証要素にハッシュ関数を適用することによって前記マスタ鍵を導出する、請求項１０に記載のシステム。
【請求項１２】
前記導出するための手段は、
前記ユーザから受信した前記認証要素に基づいて前記ユーザを認証することと、
前記ユーザを認証することに応答して、前記マスタ鍵を暗号化及び復号するための秘密鍵を検索することと、
前記秘密鍵を使用して前記マスタ鍵を復号することと、によって前記マスタ鍵を導出する、請求項１０に記載のシステム。
【請求項１３】
前記復号するための手段は、前記暗号化されたデータを復号するために、前記復号されたクラウドサービス鍵を前記クラウドサービスに提供する、請求項１０に記載のシステム。
【請求項１４】
前記復号するための手段は、クライアント上で、前記復号されたクラウドサービス鍵を使用して復号するために、前記暗号化されたデータを前記クラウドサービスから受信する、請求項１０に記載のシステム。
【請求項１５】
前記復号するための手段は、
前記暗号化されたクラウドサービス鍵を前記クラウドサービス又は前記アイデンティティサービスの少なくとも１つから受信する、請求項１０に記載のシステム。
【国際調査報告】
2019511890.tif 000009
2019511890.tif 000010
2019511890.tif 000011