(57)【要約】      （修正有）【課題】共有保管庫を使用する安全な環境でのモバイルアプリケーションにおけるシングルサインオン機能を提供する。【解決手段】アプリケーションは、パスコードのような利用者エントロピーを利用者に提供させることができ、利用者エントロピーを使用して、利用者エントロピー暗号化保管庫鍵を復号化する。一旦、保管庫鍵が復号化されると、アプリケーションは、サーバ証明書のような共有秘密及びロック解除鍵を格納可能な共有保管庫の保管庫データベースを復号化する。アプリケーションは、ロック解除鍵を格納し、ロック解除鍵暗号化保管庫鍵を生成し、共有保管庫にロック解除鍵暗号化保管庫鍵を格納させ、これによって保管庫をロック解除する。アプリケーションは、その後、利用者に利用者エントロピーを再度提供させることなく保管庫データベースを復号化するために、ロック解除鍵を使用する。【選択図】図２
2018201239.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータ機器によって、保管庫鍵を使用して暗号化された保管庫データベースを備える共有保管庫を生成することと、
前記コンピュータ機器上で実行する第１のアプリケーションによって、前記共有保管庫に関連付けられた利用者から第１の利用者エントロピーを受信することと、
前記第１のアプリケーションによって、前記保管庫鍵の第１のコピーを生成するために、前記第１の利用者エントロピーを使用して第１の保管庫鍵レコードを復号化することと、
前記第１のアプリケーションによって、前記保管庫鍵の第１のコピーを使用して前記保管庫データベースを復号化することと、
前記第１のアプリケーションによって、かつ前記保管庫鍵の前記第１のコピーを使用して、ロック解除鍵を取得するために、前記保管庫データベースにアクセスすることと、ここにおいて前記ロック解除鍵は、前記保管庫鍵のコピーを生成するために前記共有保管庫に関連した第２の保管庫鍵レコードを復号化するように操作され、
前記第１のアプリケーションに関連付けられたアプリケーションメモリに前記ロック解除鍵を格納することと、
前記第１のアプリケーションによって、前記利用者に関連付けられた利用者証明書を使用してネットワークサービスから第１のネットワークリソースアクセス証明書を取得することと、
前記第１のアプリケーションによって、前記第１のネットワークリソースアクセス証明書を前記保管庫データベースに書き込むことと、
前記コンピュータ機器上で実行する第２のアプリケーションによって、かつ第２の利用者エントロピーを使用して、前記保管庫データベースにアクセスして前記ロック解除鍵を取得することと、
前記第２のアプリケーションによって、前記保管庫鍵の第２のコピーを生成するために、前記ロック解除鍵を使用して第２の保管庫鍵レコードを復号化することと、ここにおいて、前記ロック解除鍵のコピーは、前記第２のアプリケーションに関連するアプリケーションメモリに格納され、
前記第２のアプリケーションによって、かつ前記保管庫鍵の前記第２のコピーを使用して、前記第１のネットワークリソースアクセス証明書を取得するために前記保管庫データベースにアクセスすることと、を含む方法。
【請求項２】
前記第１のアプリケーションによって、保管庫鍵の前記第１のコピーと前記ロック解除鍵とを使用して前記第２の保管庫鍵レコードを生成することと、
前記第２の保管庫鍵レコードを前記共有保管庫に格納することと、を含む請求項１に記載の方法。
【請求項３】
前記第１の保管庫鍵レコードは、前記共有保管庫に格納され、前記利用者に関連付けられたパスワードを用いて暗号化され、
前記第２の保管庫鍵レコードは、前記利用者に関連付けられたパスワードとは別のエントロピーを使用して保護される安全なコンテナに格納される、請求項１記載の方法。
【請求項４】
前記第２のアプリケーションによって、前記保管庫鍵の第２のコピーを生成するために、前記ロック解除鍵を使用して第２の保管庫鍵レコードを復号化することは、
前記第２のアプリケーションによって、異なる利用者エントロピーを受信することと、
保管庫鍵の第２のコピーを生成するために、前記第２のアプリケーションによって、かつ前記ロック解除鍵と前記異なる利用者エントロピーを使用して第２の保管庫鍵レコードを復号化すること、を含む、請求項３に記載の方法。
【請求項５】
前記異なる利用者エントロピーは、前記利用者に関連した個人暗証番号（ＰＩＮ）を含む、請求項３に記載の方法。
【請求項６】
前記第１の利用者エントロピーおよび前記第２の利用者エントロピーは、それぞれ、前記共有保管庫に関連付けられた利用者に対応するパスコードを含む、請求項１に記載の方法。
【請求項７】
前記第２のアプリケーションによって、かつ第２の利用者エントロピーを使用して、前記保管庫データベースにアクセスして前記ロック解除鍵を取得することは、
前記第２のアプリケーションによって、前記共有保管庫に関連付けられた利用者から第２の利用者エントロピーを受信することと、
前記第２のアプリケーションによって、前記第２の利用者エントロピーを使用して前記第１の保管庫鍵レコードを復号化して、保管庫鍵の第３のコピーを生成することと、
前記第２のアプリケーションによって、前記保管庫鍵の第３のコピーを用いて前記保管庫データベースを復号化することと、
前記第２のアプリケーションによって、前記保管庫データベースから前記ロック解除鍵を取得することを含む、請求項１に記載の方法。
【請求項８】
前記第２のアプリケーションによって、前記第１のネットワークリソースアクセス証明書を用いて、前記ネットワークサービスにアクセスすることをさらに含む、請求項１に記載の方法。
【請求項９】
前記第１の保管庫鍵レコードは、前記共有保管庫に格納されている、請求項１に記載の方法。
【請求項１０】
前記第２の保管庫鍵レコードは、前記共有保管庫に格納されている、請求項１に記載の方法。
【請求項１１】
前記保管庫データベースは、
前記保管庫へのアクセスを有する、第１のアプリケーションおよび第２のアプリケーションを含む複数のアプリケーションによってアクセス可能な共有部と、
前記第１のアプリケーションにアクセス可能であり、かつ前記第１のアプリケーションに関連付けられた第１のアプリケーションエントロピーを使用して暗号化された第１のアプリケーション部と、を含む請求項１に記載の方法。
【請求項１２】
前記第２のアプリケーションによって、前記共有保管庫に格納されたアイドル時間タイマーにアクセスすることと、
前記第２のアプリケーションによって、前記アイドル時間タイマーが、前記保管庫データベースが最後にアクセスされてから所定時間が経過したことを示すか否かを判定することと、
そのように所定時間が経過したと判定したことに応答して、前記第２の保管庫鍵レコードを前記共有保管庫から削除することと、をさらに含む請求項１に記載の方法。
【請求項１３】
コンピュータ機器によって、保管庫鍵を使用して暗号化された保管庫データベースを備える共有保管庫を生成することと、
前記コンピュータ機器上で実行する第１のアプリケーションによって、前記共有保管庫に関連付けられた利用者から利用者エントロピーを受信することと、
前記第１のアプリケーションによって、前記保管庫鍵の第１のコピーを生成するために、前記利用者エントロピーを使用して前記共有保管庫に関連付けられた第１の保管庫鍵レコードを復号化することと、
前記第１のアプリケーションによって、前記保管庫鍵の第１のコピーを使用して前記保管庫データベースを復号化することと、
前記第１のアプリケーションによって、ロック解除鍵を取得するために前記保管庫データベースにアクセスすることと、
前記第１のアプリケーションによって、前記保管庫鍵の前記第１のコピーと前記ロック解除鍵とを使用して第２の保管庫鍵レコードを生成することと、
前記第１のアプリケーションによって、前記第２の保管庫鍵レコードを前記共有保管庫に格納することと、
前記第１のアプリケーションによって、前記利用者に関連付けられた利用者証明書を使用してネットワークサービスから第１のネットワークリソースアクセス証明書を取得することと、
前記第１のアプリケーションによって、前記第１のネットワークリソースアクセス証明書を前記保管庫データベースに書き込むことと、
前記コンピュータ機器上で実行する第２のアプリケーションによって、前記ロック解除鍵を用いて、前記第２の保管庫鍵レコードを復号化して、前記保管庫鍵の第２のコピーを生成することと、ここにおいて、前記ロック解除鍵のコピーが前記第２のアプリケーションに関連付けられたアプリケーションメモリに格納され、
前記第２のアプリケーションによって、かつ前記保管庫鍵の第２のコピーを使用して、前記保管庫データベースにアクセスして、前記第１のネットワークリソースアクセス証明書を取得すること、を含む方法。
【請求項１４】
前記コンピュータ機器上で実行する第２のアプリケーションによって、かつ第２の利用者エントロピーを使用して、前記保管庫データベースにアクセスして、前記ロック解除鍵を取得することをさらに含む、請求項１３に記載の方法。
【請求項１５】
前記第２のアプリケーションによって、かつ第２の利用者エントロピーを使用して、前記保管庫データベースにアクセスして前記ロック解除鍵を取得することは、
前記第２のアプリケーションによって、前記共有保管庫に関連付けられた利用者から第２の利用者エントロピーを受信することと、
前記第２のアプリケーションによって、前記第２の利用者エントロピーを使用して第１の保管庫鍵レコードを復号化して、保管庫鍵の第３のコピーを生成することと、
前記第２のアプリケーションによって、前記保管庫鍵の第３のコピーを使用して前記保管庫データベースを復号化することと、
前記第２のアプリケーションによって、前記保管庫データベースから前記ロック解除鍵を取得することをさらに含む、請求項１４に記載の方法。
【請求項１６】
システムであって、
１つ以上のプロセッサと、
メモリと、
前記メモリに格納され、保管庫レコード記憶部と、保管庫鍵を使用して暗号化される保管庫データベースとを備える共有保管庫と、
前記メモリに格納され、第１の命令を有する第１のアプリケーションと、を含み、前記第１の命令は、前記１つ以上のプロセッサによって実行されたときに、本システムに、
前記第１のアプリケーションを介して、前記共有保管庫に関連付けられた利用者から第１の利用者エントロピーを受信することと、
前記第１のアプリケーションを介して、前記保管庫鍵の第１のコピーを生成するために、前記第１の利用者エントロピーを使用して第１の保管庫鍵レコードを復号化することと、
前記第１のアプリケーションを介して、前記保管庫鍵の前記第１のコピーを使用して、前記保管庫データベースを復号化することと、
前記第１のアプリケーションを介して、かつ前記保管庫鍵の第１のコピーを用いて、ロック解除鍵を取得するために前記保管庫データベースにアクセスすることと、ここにおいて、前記ロック解除鍵は、前記保管庫鍵のコピーを生成するために、前記共有保管庫に関連付けられた第２の保管庫鍵レコードを復号化するように操作可能であり、
前記第１のアプリケーションに関連付けられたアプリケーションメモリに前記ロック解除鍵を格納することと、
前記第１のアプリケーションを介して、前記利用者に関連付けられた利用者証明書を使用してネットワークサービスから第１のネットワークリソースアクセス証明書を取得することと、
前記第１のアプリケーションを介して、前記第１のネットワークリソースアクセス証明書を前記保管庫データベースに書き込むことと、
を実行させ、
前記メモリに格納され、第２の命令を有する第２のアプリケーションをさらに含み、前記第２の命令は、前記１つ以上のプロセッサによって実行されたときに、本システムに、
前記第２のアプリケーションを介して、第２の利用者エントロピーを使用して、前記ロック解除鍵を取得するために、前記保管庫データベースにアクセスすることと、
前記第２のアプリケーションを介して、前記保管庫鍵の第２のコピーを生成するために、前記ロック解除鍵を使用して前記共有保管庫に関連付けられた第２の保管庫鍵レコードを復号化することと、ここにおいて、前記ロック解除鍵のコピーは前記第２のアプリケーションに関連付けられたアプリケーションメモリに格納され、
前記第２のアプリケーションを介して、かつ前記保管庫鍵の第２のコピーを使用して、前記第１のネットワークリソースアクセス証明書を取得するために、前記保管庫データベースにアクセスすること、
を実行させる、システム。
【請求項１７】
前記第２の命令は、前記１つ以上のプロセッサによって実行されたときに、本システムに、
前記第２のアプリケーションを介して、かつ第２の利用者エントロピーを使用して、前記ロック解除鍵を取得するために前記保管庫データベースにアクセスすることを実行させる、請求項１６に記載のシステム、ここにおいて、前記第２の命令は、
前記第２のアプリケーションを介して、前記共有保管庫に関連付けられた利用者から第２の利用者エントロピーを受信することと、
前記第２のアプリケーションを介して、前記第２の利用者エントロピーを使用して第１の保管庫鍵レコードを復号化して、前記保管庫鍵の第３のコピーを生成することと、
前記第２のアプリケーションを介して、前記保管庫鍵の第３のコピーをを用いて前記保管庫データベースを復号化することと、
前記第２のアプリケーションを介して、前記保管庫データベースから前記ロック解除鍵を取得することを実行させる。
【請求項１８】
前記１つ以上のプロセッサによって実行される前記第１の命令は、さらに本システムに、
前記第１のアプリケーションによって、前記保管庫鍵の前記第１のコピーと前記ロック解除鍵とを使用して第２の保管庫鍵レコードを生成することと、
前記第２の保管庫鍵レコードを前記共有保管庫に格納することと、を実行させる、請求項１６に記載のシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示の態様は、コンピュータハードウェア及びソフトウェアに関する。特に、本開示の１つ以上の態様は、基本的には、共有秘密保管庫（Ｓｈａｒｅｄ  ｓｅｃｒｅｔ  ｖａｕｌｔ）を使用するアプリケーションにおけるシングルサインオン（ＳＳＯ）機能を提供することに関する。
【背景技術】
【０００２】
パーソナルコンピュータからモバイル機器まで、種々の種類のコンピュータ機器が、ますます支持を集めている。さらに、人々は、これらの機器を仕事の目的及び個人的使用の両方にますます使用している。これらの機器の需要が成長し続け、絶えず増大する複数の目的に人々がこれらを使用し続けることで、これらの機器の利用者は、更なる利便性、機能、ならびにそのコンピュータ機器及び相互に作用するコンピュータソフトウェアの使い易さを要求し、また要求し続けるであろう。
【０００３】
企業は、従業員及び顧客に企業サービスまたはリソースへのより良好なアクセスを提供するための方法として、ますますモバイル機器に転向している。利用者は、パスワードまたは暗証番号（ＰＩＮ）等のパスコードの形式の認証情報を提供することによって、企業リソースへのアクセスにパーソナル機器を利用することが可能である。しかしながら、現行のシステムは、認証状態の共有をアプリケーションに可能とする適切な手段を提供していない。代わりに、現行システムは、アプリケーション間で認証状態を共有するために「マスター」アプリケーションを介してプロセス間通信（ＩＰＣ）を利用し得る。結果として、現行システムは、モバイルアプリケーションとマスターアプリケーションとの間において、不断のコンテキストスイッチ、すなわち「フリップ」を提示する。各コンテキストスイッチ上で、現行システムは、利用者がそのパスコードを再度入力することを要求し得る。このような振る舞いは、利用者にとって合理性に欠けると共に不可解であり、企業リソースへの利用者の円滑なアクセスに支障をきたし得る。
【０００４】
さらに、いくつかの現行システムは、アプリケーション自身に共有秘密を埋め込むことによって、ＩＰＣを介して状態の共有を実装する。この手法は、攻撃者がアプリケーションから共有秘密を抽出可能であるので、リバースエンジニアリングのための攻撃を行い易い欠点を有する。
【発明の概要】
【発明が解決しようとする課題】
【０００５】
本開示の態様は、特に、１つ以上のモバイルアプリケーションが企業リソースにアクセスするために提供される例において、より良好な柔軟性、安全性、ならびにコンピュータ機器及び／またはコンピュータソフトウェアを管理するための機能性を提供する種々のシステム及び技術に関する。さらに、本開示の一定の態様は、認証状態及び認証済みモバイルアプリケーション間の共有秘密を共有するために使用される場合に、特に利点を提供し得る。
【０００６】
本開示のいくつかの態様は、基本的には、共有秘密保管庫の使用による安全な環境で動作するモバイルアプリケーションにおいてシングルサインオン（ＳＳＯ）機能を提供することに関する。本開示のいくつかの態様によると、アプリケーションエントロピー、及び／または機器エントロピーが共有保管庫を暗号化及び／または復号化するために使用され得る。本開示のいくつかの態様は、モバイルアプリケーションが、直接的なアプリケーション対アプリケーションのプロセス間通信（ＩＰＣ）、またはアプリケーション間のコンテキストスイッチ（「フリップ」）に依らずに、共有保管庫に登録するための安全な登録プロセスに関する。本明細書に記載されるいくつかの態様によると、アプリケーションは、共有保管庫をロック解除するために利用者エントロピー（例えば、パスコード）を利用し得る。保管庫は、ロック解除鍵を格納可能であり、アプリケーションは、共有保管庫が、後の時点において利用者に利用者エントロピーの再入力を要求することなくロック解除可能なように、ロック解除鍵を取得可能である。以下の記載において、１つ以上の実施形態によって、シングルサインオンを含むモバイルアプリケーション用の共有保管庫を提供可能な方法を例示する種々の例が説明されるであろう。
【課題を解決するための手段】
【０００７】
本明細書に記載されるいくつかの実施形態は、共有保管庫をロック解除するために１つ以上の形式の利用者エントロピーを利用し得る。以下の検討では、基本的に、利用者エントロピーを利用者によって提供されたパスコードとして説明するが、本明細書に記載される技術及びシステムは、共有保管庫を安全なものとし、利用者を認証するために任意の適切な利用者提供値を利用可能であることが理解されよう。例えば、いくつかの実施形態は、利用者によって提供された暗証番号（ＰＩＮ）を利用し得る。いくつかの実施形態は、二要素認証プロセスに使用するためのパスワード及び／または利用者に送達された動的に生成された鍵を利用し得る。いくつかの実施形態は、アクティブディレクトリ（ＡＤ）パスワードを利用し得る。いくつかの実施形態は、利用者エントロピーとして生体識別データ、例えば、指紋、声紋、網膜スキャン等を利用し得る。付加的及び／または代替的に、いくつかの実施形態は、本明細書にさらに記載されるように、共有保管庫の安全性をさらに向上するためにアプリケーションエントロピー及び／または機器エントロピーを利用し得る。
【０００８】
本明細書に説明される１つ以上の原理によると、認証機能（例えば、状態管理及び利用者インターフェース）は、アプリケーションに構築され得る。認証機能は、本明細書にさらに記載される技術によってアプリケーションに共有保管庫へのアクセスを可能とし得る。共有保管庫は、整合的認証／ログオン状態情報、サーバ証明書、チケット、証明書、タイマー、及び安全なネットワークリソースにアクセスするために使用される他の情報の安全な共有を提供することによって、アプリケーションにおけるシングルサインオン機能を可能とし得る。付加的及び／または代替的に、共有保管庫は、例えば、バイナリラージオブジェクト（ＢＬＯＢｓ）の形式における、任意データの安全な共有をアプリケーションに可能とし得る。
【０００９】
本明細書に記載されるいくつかの実施形態によるアプリケーションは、共有秘密保管庫にアクセスしロック解除するために、利用者エントロピーを単独、あるいはアプリケーションエントロピー及び／または機器エントロピーとの組み合わせにおいて使用し得る。利用者エントロピーは、保管庫鍵を復号化するために使用可能であり、保管庫鍵は、その後、共有秘密保管庫をロック解除するために使用可能である。アプリケーションが保管庫にアクセスしロック解除した後、アプリケーションは、次回、利用者エントロピーの更なる入力を必要としない保管庫鍵の復号化に使用するために、ロック解除鍵を取得可能である。アプリケーションは、ロック解除鍵暗号化保管庫鍵を生成し、次回、保管庫へのアクセスに使用するために、この暗号化鍵を共有保管庫に書き込み得る。
【００１０】
本明細書に記載されるいくつかの実施形態によると、システムは、アイドル時間タイマーの使用によってモバイルアプリケーション間のシングルサインオン機能を制限し得る。アイドル時間タイマーは、共有保管庫を使用するアプリケーションが所定時間休止したことを判定するために使用可能であり、システムに、共有秘密保管庫の再ロック、ならびに共有保管庫に格納されたロック解除鍵暗号化保管庫鍵の削除及び／または無効化を行わせることができる。結果として、いくつかの実施形態においてアプリケーションは、共有秘密保管庫へのアクセスを継続するために利用者にそのパスコード（または他の利用者エントロピー）を入力させ得る。
【００１１】
アイドル時間タイマーは、本明細書に記載されるいくつかの実施形態によると、グローバル、グループ、アプリケーション単位、またはリソース基盤単位のアイドル時間を捕捉し得る。付加的及び／または代替的に、システムは、システムに対して好ましい安全性及びアクセスに基づいて構成され得る。例えば、システムは、アイドル時間を捕捉し、所定アイドル時間経過後に利用者にパスコードを入力させる対話モードを提供し得る。いくつかの実施形態において、システムは、アプリケーションが、共有秘密保管庫に登録するための最初の使用において利用者にパスコードを入力させ、アイドル時間を捕捉しない、複合モードを提供し得る。このような実装において、システムは、必要であれば、システムの再起動または他のイベント後に、利用者にパスコードを再度入力させる。他の実施形態において、システムは、共有秘密保管庫にアクセスしロック解除するために、アプリケーションエントロピー及び／または機器エントロピーが利用される非対話モードを実装し得る。このような実装において、システムは、アプリケーションにおいて利用者にそのパスコードまたは他の利用者エントロピーを入力させることなくシングルサインオンを提供し得る。
【００１２】
本明細書に記載されるいくつかの態様による、共有秘密保管庫の使用は、仮想スマートカード、アプリケーション基盤単位の複数のマイクロＶＰＮ、アプリケーション基盤単位のステップアップ認証、及び共有機器環境における安全なシングルサインオンのような付加的な安全性及び認証機能を可能とし得る。
【００１３】
本明細書に記載されるいくつかの態様は、信頼されたプラットフォームが不要な仮想スマートカードを提供し得る。いくつかの実施形態は、強固な加入機構に結合された共有秘密保管庫において証明書を持続する能力を提供し得る。共有秘密保管庫に安全に格納された証明書と共に、アプリケーションは、利用者が一度、そのパスコードを提供すると、証明書／仮想スマートカードにアクセス可能であり、アプリケーションは、共有秘密保管庫に登録を行う。
【００１４】
本明細書に記載されるいくつかの態様は、アプリケーション基盤単位の複数のマイクロＶＰＮを提供し得る。マイクロＶＰＮは、アプリケーションに企業リソースへのアクセスを可能とするために使用され得る。ただし、一定のアプリケーションは、より高度な保証認証を必要とし得る。本明細書に記載されるいくつかの実施形態は、異なるゲートウェイにアクセスするために異なるアプリケーションによって異なるマイクロＶＰＮの使用を可能とし得る。
【００１５】
本明細書に記載されるいくつかの態様は、アプリケーション基盤単位にステップアップ認証を提供し得る。いくつかの企業リソースは、より高度な保証認証を必要とし得る。いくつかの実施形態において、アプリケーションは、より高度な保証認証を取得し、特有のリソースに対する証明書を共有秘密保管庫ではなくアプリケーション固有メモリに格納してもよい。結果として、他のリソースに関するシングルサインオンを維持しつつ、ステップアップ認証が、アプリケーション基盤単位に提供され得る。
【００１６】
本明細書に記載れるいくつかの態様は、共有機器上の複数の利用者に対するサポートを提供し得る。機器は、それぞれの利用者に対し１つより多い共有保管庫を維持してもよい。１人の利用者がログオフし、または別の利用者がそのパスコードを入力するように、利用者の切り替えが検出されると、機器は、新しい利用者に関連付けられた情報及び証明書を反映するためにコンテキストをシームレスに切り替え可能である。
【００１７】
これらの特徴は、多くの他のものと共に、以下により詳細に説明される。
【００１８】
本発明は、実施例によって例示され、同様の符号が類似要素を示す添付図面に限定されるものではない。
【図面の簡単な説明】
【００１９】
【図１】本明細書に説明される１つ以上の例示的な態様による、本開示の１つ以上の態様の実装において使用可能なコンピュータ機器の一例を図示する。
【図２】本明細書に説明される１つ以上の例示的な態様による、本開示の１つ以上の態様の実装において使用可能な例示的な機器及び論理的メモリ構造を図示する。
【図３】本明細書に説明される１つ以上の例示的な態様による、共有秘密保管庫にアクセスするプロセスを例示するフローチャートを図示する。
【図４】本明細書に説明される１つ以上の例示的な態様による、論理的共有秘密保管庫の実装例を図示する。
【図５】本明細書に説明される１つ以上の例示的な態様による、論理的共有秘密保管庫の別の実装例を図示する。
【図６Ａ】本明細書に説明される１つ以上の例示的な態様による、共有秘密保管庫の作成を例示するプロセスフロー例を図示する。
【図６Ｂ】本明細書に説明される１つ以上の例示的な態様による、共有秘密保管庫の作成を例示する別のプロセスフロー例を図示する。
【図６Ｃ】本明細書に説明される１つ以上の例示的な態様による、共有秘密保管庫の作成を例示する別のプロセスフロー例を図示する。
【図７Ａ】共有秘密保管庫の登録プロセスを例示するプロセスフロー例を図示する。
【図７Ｂ】共有秘密保管庫の登録プロセスを例示する別のプロセスフロー例を図示する。
【図８】本明細書に説明される１つ以上の例示的な態様による、アイドル時間タイマーを組み込むシングルサインオンプロセスを例示するプロセスフロー例を図示する。
【図９】本明細書に説明される１つ以上の例示的な態様による、アイドル時間に基づくロックプロセスを例示するプロセスフロー例を図示する。
【図１０Ａ】本明細書に説明される１つ以上の例示的な態様による、アイドル時間に基づくロックプロセスを例示するプロセスフロー図を図示する。
【図１０Ｂ】本明細書に説明される１つ以上の例示的な態様による、アイドル時間に基づくロックプロセスを例示する別のプロセスフロー図を図示する。
【図１０Ｃ】本明細書に説明される１つ以上の例示的な態様による、アイドル時間に基づくロックプロセスを例示する別のプロセスフロー図を図示する。
【図１１Ａ】本明細書に説明される１つ以上の例示的な態様による、ＰＩＮ更新プロセスを例示するプロセスフロー例を図示する。
【図１１Ｂ】本明細書に説明される１つ以上の例示的な態様による、ＰＩＮ更新プロセスを例示する別のプロセスフロー例を図示する。
【図１１Ｃ】本明細書に説明される１つ以上の例示的な態様による、パスワード更新プロセスを例示するプロセスフロー例を図示する。
【図１２Ａ】本明細書に説明される１つ以上の例示的な態様による、分散認証プロセスを例示するプロセスフロー例を図示する。
【図１２Ｂ】本明細書に説明される１つ以上の例示的な態様による、分散認証プロセスを例示するプロセスフロー例を図示する。
【図１３】本明細書に説明される１つ以上の例示的な態様による、保管庫作成プロセスを例示するプロセスフロー例を図示する。
【図１４】本明細書に説明される１つ以上の例示的な態様による、パスコード取得プロセスを例示するプロセスフロー例を図示する。
【図１５】本明細書に説明される１つ以上の例示的な態様による、パスコード更新プロセスを例示するプロセスフロー例を図示する。
【発明を実施するための形態】
【００２０】
種々の実施形態の以下の記載において、本明細書の一部を形成し、本開示の種々の態様が実施され得る種々の実施形態を例示することによって示される、上記の添付図面の参照がなされる。本明細書に説明される範囲から逸脱することなく、他の実施形態が利用可能であり、構造的及び機能的変更を行うことが可能である。種々の態様が他の実施形態となり得、種々の異なる方法において、実施または実行可能である。さらに、本明細書に使用される表現方法及び用語は、説明の目的のためのものであり、限定するものとしてみなされるべきではない。むしろ、本明細書に使用される語句及び用語は、それらの最も広い解釈及び意味が与えられる。「含む」及び「備える」、ならびにそれらの変形の使用は、その後に挙げられる項目及びそれらの同義のもの、ならびに付加的な項目及びそれらの同義のものを包含することを意味する。
【００２１】
本明細書において使用されるように、「エントロピー」は、暗号法またはランダムデータを必要とする他の用途に使用するための、オペレーティングシステムまたはアプリケーションによって収集されるランダム性を意味する。「利用者エントロピー」は、利用者によって提供されるランダム性を意味する。例えば、利用者エントロピーは、パスワードまたは暗証番号（ＰＩＮ）等の利用者によって設定されたパスコードを含み、これは、その後、データ暗号化鍵を暗号化／復号化することによって直接、または間接的にデータを暗号化／復号化するための鍵としてアプリケーションによって使用され得る。利用者エントロピーは、付加的な保護として、可逆的なエントロピーが提供されたアプリケーションまたはシステム／機器に提供され得る。いくつかの実施形態において、利用者エントロピーは、機器上に格納されなくてもよい。これは、機器が「ルート化」さもなければハッキングされた場合でさえ、利用者エントロピーの認識なく暗号化データを復号化することができないことを保証し得る。
【００２２】
以下の説明では、基本的に、利用者エントロピーを利用者によって提供されたパスコードとして説明するが、本明細書に記載される技術及びシステムは、共有秘密保管庫を保護する、及び／または利用者を認証するために、任意の適切な利用者提供値を利用可能であることが理解されよう。例えば、いくつかの実施形態は、利用者によって提供された暗証番号（ＰＩＮ）を利用し得る。いくつかの実施形態は、二要素認証プロセスに使用するためのパスワード及び／または利用者に送達された動的に生成された鍵を利用し得る。いくつかの実施形態は、アクティブディレクトリ（ＡＤ）パスワードを利用し得る。いくつかの実施形態は、例えば、指紋、声紋、網膜スキャン等の生体識別データを利用者エントロピーとして利用し得る。付加的及び／または代替的に、いくつかの実施形態は、共有秘密保管庫の安全性をさらに向上するために、本明細書にさらに記載される、アプリケーションエントロピー及び／または機器エントロピーを利用し得る。
【００２３】
本明細書に記載されるように、本開示のいくつかの態様は、データを保護し改ざんを防止するために、利用者エントロピー、アプリケーションエントロピー、及び／または機器エントロピーの組み合わせによって安全性が確保された共有保管庫に登録する方法によって、アプリケーション間の共有認証状態のようなシングルサインオンを提供することに関する。ただし、より詳細にこれらの概念を説明する前に、本開示の種々の態様を実装及び／または一方で提供することに使用され得るコンピュータ機器の複数の例を、図１に関してまず説明する。
【００２４】
図１は、本明細書に記載される１つ以上の例示的な態様による、本開示の１つ以上の態様の実装において使用され得るコンピュータ機器１００の一例を図示する。例えば、コンピュータ機器１００は、いくつかの例において、命令の読み出し及び／または実行、ならびにそれに従う１つ以上の動作を実施することによって、本開示の１つ以上の態様を実装し得る。１つ以上の構成において、コンピュータ機器１００は、デスクトップコンピュータ、コンピュータサーバ、モバイル機器（例えば、ラップトップコンピュータ、タブレットコンピュータ、スマートフォン、任意の他の種類のモバイルコンピュータ機器等）、及び／または任意の他の種類のデータ処理機器を表現する、組み込まれる、ならびに／あるいは含む。コンピュータ機器１００は、いくつかの例において、スタンドアローン環境において動作し得る。他の例において、コンピュータ機器１００は、ネットワーク環境において動作し得る。例えば、コンピュータ機器１００は、いくつかの例において、コンピュータ機器１００の周辺、及び／または物理的に遠隔にある１つ以上の他のコンピュータ機器と接続、ならびに／あるいは、さもなければ通信可能である。
【００２５】
図１に見られるように、コンピュータ機器１００は、いくつかの実施形態において、プロセッサ１０５、メモリ１１０、入力／出力インターフェース１３５、及びネットワークインターフェース１４０を含む。これらは、いくつかの実施形態において、コンピュータ機器１００に含まれ得る構成要素及び／またはサブシステムの単なるいくつかの例である。他の実施形態において、コンピュータ機器１００は、任意の及び／または全てのこれらの構成要素の２つ以上（例えば、２つ以上のプロセッサ、２つ以上のメモリ等）、ならびに／あるいは他の構成要素、ならびに／あるいはここでは挙げられないサブシステムを含んでもよい。
【００２６】
いくつかの実施形態において、プロセッサ１０５は、メモリ１１０、入力／出力インターフェース１３５、及び／またはネットワークインターフェース１４０等の、コンピュータ機器１００に含まれる他の構成要素のうちの１つ以上の動作を含む、コンピュータ機器１００の全体の動作を制御し得る。メモリ１１０は、例えば、ソフトウェア、命令、データ、及び／または他の情報を格納し得る。例えば、ソフトウェアは、本明細書に記載される種々の機能のうちの１つ以上を実行すべく、コンピュータ機器１００を特別な目的のコンピュータ機器に設定するためにプロセッサ１０５に命令を提供するようにメモリ１１０及び／または他の記憶装置に格納され得る。
【００２７】
いくつかの構成において、メモリ１１０は、オペレーティングシステム１１５、制御論理１２０、１つ以上のアプリケーション１２５、及び／またはデータ１３０を格納、提供、及び／または、さもなければ含み得る。オペレーティングシステム１１５は、例えば、コンピュータ機器１００の全体の動作を制御し得る。制御論理１２０は、例えば、本開示の種々の態様を実行、及び／または、さもなければ提供するために、コンピュータ機器１００、及び／またはプロセッサ１０５を含むその中に含まれる種々の構成要素に命令を行い得る。１つ以上のアプリケーション１２５は、例えば、本開示の種々の態様と併せて使用され得る、副次的なサポート及び／または機能を提供し得る。さらに、データ１３０は、例えば、本開示の１つ以上の態様を実行する上で使用可能であり、いくつかの例において、１つ以上のデータベース、データテーブル、及び／または同様のものを含み得る。
【００２８】
いくつかの構成において、入力／出力インターフェース１３５は、キーボード、マウス、ディスプレイ、プリンタ、スキャナ、光学リーダー、スタイラス、及び／または１つ以上の他の構成部品を含み得る。例えば、入力／出力インターフェース１３５は、種々のインターフェースユニット、ならびに／あるいはファイル及び／若しくは他のデータの読み出し、書き込み、表示、ならびに／または印刷用のドライブを含み得る。いくつかの実施形態において、入力／出力インターフェース１３５は、音声入力を取得する１つ以上のマイクロフォン及び／または音声出力を提供する１つ以上のスピーカーを含む音声インターフェースを含み得る。付加的または代替的に、入力／出力インターフェース１３５は、テキスト形式、音声映像、及び／またはグラフィック出力を提供するためのビデオディスプレイ機器を含み得る。
【００２９】
いくつかの実施形態において、入力／出力インターフェース１３５に含まれる、及び／または、さもなければ提供される少なくとも１つのディスプレイは、タッチ感応ディスプレイ画面（「タッチ画面」としても知られる）であってもよい。このようなタッチ画面は、例えば、コンピュータ機器１００によって描画、及び／または、さもなければ生成されたグラフィックコンテンツを表示するように構成され得る。さらに、タッチ画面は、スタイラス、指、またはタッチ画面と相互作用を行うためにコンピュータ機器１００の利用者によって操作、制御、及び／若しくは、さもなければ使用される他の指示態様を使用して、利用者によって提供されるタッチに基づく利用者入力を含む、利用者入力をコンピュータ機器１００の利用者から受信するように構成され得る。
【００３０】
上に示されるように、コンピュータ機器１００は、いくつかの例において、１つ以上の遠隔コンピュータ、サーバ、及び／または機器への接続をサポートするネットワーク環境において動作し得る。このような接続性は、いくつかの実施形態において、ネットワークインターフェース１４０によって提供され得る。例えば、ネットワークインターフェース１４０は、１つ以上の通信インターフェース、ポート、アダプタ、アンテナ、及び／または種々のネットワーク接続を容易化する他の要素を含み得る。このようなネットワーク接続は、ローカルエリアネットワーク（ＬＡＮ）接続、ワイドエリアネットワーク（ＷＡＮ）接続（例えば、インターネットへの）、及び／または任意の他の形式の接続を含み得る。いくつかの構成において、ＬＡＮ接続は、専用のＬＡＮインターフェース及び／若しくはアダプタを介して確立ならびに／または提供され、ならびに／あるいはＷＡＮ接続は、専用のＷＡＮインターフェース及び／若しくはアダプタを介して確立ならびに／または提供され得る。他の接続方法は、例えば、有線通信インターフェース（例えば、イーサーネット）、無線通信インターフェース（例えば、無線ＬＡＮ（ＷＬＡＮ）、セルラー方式、ブルートゥース（登録商標）等）、及び／若しくは他の通信インターフェース等の他の通信インターフェースを介して確立ならびに／または提供され得る。
【００３１】
図１に見られるように、コンピュータ機器１００は、いくつかの例において、サーバ１４５及びサーバ１５０等の１つ以上のサーバに接続される、及び／または通信可能である。このようなサーバは、例えば、コンピュータ機器１００の１つ以上の態様を実装可能であり、したがって、１つ以上のプロセッサ、メモリ、及び／または同様のものを含み得る。１つ以上のサーバへのいくつかの接続は、ＬＡＮを介して確立可能であり（例えば、コンピュータ機器１００とサーバ１４５との間の接続）、一方で１つ以上のサーバへの他の接続は、ＷＡＮを介して確立可能である（例えば、コンピュータ機器１００とサーバ１５０との間の接続）。いくつかの実施形態において、１つ以上のサーバのうちのいくつかまたは全ては、１つ以上のコンピュータ機器上で実行されているソフトウェアによって提供される仮想サーバであってもよい。
【００３２】
さらに、本開示の１つ以上の態様は、本明細書に記載されるような１つ以上のコンピュータまたは他の機器によって実行される、１つ以上のプログラムモジュールにおけるような、コンピュータ使用可能若しくは可読、及び／またはコンピュータ実行可能命令に埋め込まれてもよい。基本的に、プログラムモジュールは、コンピュータまたは他の機器においてプロセッサによって実行されたときに特定のタスクを実行する、または特定の抽象データ型を実装するルーチン、プログラム、オブジェクト、コンポーネント、データ構造等を含む。モジュールは、実行後にコンパイルされるソースコードプログラミング言語において記述可能であり、またはＨＴＭＬまたはＸＭＬ等（ただし限定しない）のスクリプト言語において記述可能である。コンピュータ実行可能命令は、非一時的記憶機器等のコンピュータ可読媒体に格納され得る。ハードディスク、ＣＤ−ＲＯＭ、光学記憶機器、磁気記憶機器、及び／またはその任意の組み合わせを含む、任意の適切なコンピュータ可読記憶媒体が利用可能である。さらに、本明細書に説明されるようなデータまたはイベントを表現する種々の伝送（非記憶）媒体は、ソースと伝送先との間において、金属線、光ファイバ、及び／または無線伝送媒体（例えば、空気及び／または空間）等の信号伝導媒体を通って移動する電磁波の形式で伝送され得る。本明細書に説明される種々の態様は、方法、データ処理システム、またはコンピュータプログラム製品として具体化され得る。したがって、種々の機能は、全体または一部においてソフトウェア、ファームウェア、及び／またはハードウェア若しくは集積回路、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）等のハードウェア同等物で具体化され得る。特定のデータ構造は、本開示の１つ以上の態様をより効果的に実装するために使用可能であり、このようなデータ構造は、本明細書に説明されるコンピュータ実行可能命令及びコンピュータ使用可能データの範囲内であると考えられる。
【００３３】
さらに、本開示のいくつかの態様は、複数の他の汎用または専用コンピュータシステム環境若しくは構成によってまた動作可能である。本明細に説明される態様による使用に適切となり得る他のコンピュータシステム、環境、及び／または構成の例は、限定されるものではないが、パーソナルコンピュータ、サーバコンピュータ、携帯またはラップトップ機器、マルチプロセッサシステム、マイクロプロセッサ基盤システム、セットトップボックス、プログラマブル家電、ネットワークＰＣ、小型コンピュータ、メインフレームコンピュータ、任意の上記のシステムまたは機器を含む分散コンピュータ環境等を含む。
【００３４】
本開示の種々の態様の提供及び／または実装に使用可能なコンピュータ機器の複数の例を説明してきたが、モバイル機器及び動作環境の例をここではより詳細に説明する。特に、また上に前置きされるように、本開示のいくつかの態様は、基本的には、共有保管庫を使用する安全な環境におけるモバイルアプリケーションのシングルサインオン機能を提供することに関する。本開示のいくつかの態様は、共に基本的にはパスコードを意味する、パスワード及び／またはＰＩＮ等の利用者エントロピーを利用者に入力させるアプリケーションに関する。アプリケーションは、利用者エントロピー暗号化保管庫鍵を復号化するために利用者エントロピーを使用し得る。一旦、保管庫鍵が復号化されると、アプリケーションは、共有保管庫の保管庫データベースを復号化可能である。共有保管庫は、サーバ証明書等の共有秘密、及びロック解除鍵を格納し得る。アプリケーションは、ロック解除鍵を格納し、ロック解除鍵暗号化保管庫鍵を生成し、ロック解除鍵暗号化保管庫鍵を共有保管庫に格納させ、これによって保管庫を「ロック解除」する。アプリケーションは、その後、利用者に利用者エントロピーを再度入力させることなく保管庫データベースを復号化するためにロック解除鍵を使用可能である。いくつかの実施形態において、システムは、アイドル時間タイマーを捕捉し、所定アイドル時間期限後にロック解除鍵復号化保管庫鍵を削除及び／または無効化可能であり、これによって共有保管庫を「ロック」する。アイドル時間期限後、アプリケーションは、利用者に利用者エントロピーを入力させ、保管庫をロック解除し、ロック解除鍵暗号化保管庫鍵を再格納し得る。以下の記載において、１つ以上の実施形態による共有保管庫を例示する種々の例が説明されるであろう。
【００３５】
図２は、モバイル機器２００、そこに格納可能な論理メモリ構造、及び本明細に開示される１つ以上の態様によってアクセス可能な企業リソース２６０を含む動作環境例を例示する。モバイル機器２００は、コンピュータ機器１００のようなコンピュータ機器であってもよく、命令及びデータを格納するメモリ、ならびに格納された命令を実行するために動作可能なプロセッサを含み得る。モバイル機器２００は、アプリケーション１  ２４０ａ、アプリケーションｉ  ２４０ｂ、及び／またはアプリケーションＮ  ２４０ｃ（まとめるとアプリケーション２４０）のような、そこにインストールされた１つ以上のアプリケーションを有し得る。本明細書に記載されるいくつかの態様によると、アプリケーション２４０は、共有秘密２２４を取得するために共有メモリ２０５（及び／または共有記憶域２０５）に格納された共有保管庫２１０にアクセス可能である。アプリケーション２４０は、ネットワーク２５０を介して企業リソースＡ  ２６０ａ、企業リソースＢ  ２６０ｂ、及び企業リソースＣ  ２６０ｃ（まとめると企業リソース２６０）のような、安全なリソースにアクセスするために共有秘密２２４を使用可能である。ネットワーク２５０は、例えば、任意の適切な有線及び／または無線ネットワーク、またはそれらの組み合わせであり得る。例えば、モバイル機器は、インターネットを介して企業リソース２６０にアクセス可能である。なおモバイル機器２００の環境において説明したが、本明細書に記載される方法及び技術は、任意の適切なコンピュータ機器に実装可能である。
【００３６】
モバイル機器２００は、ｉＯＳオペレーティングシステム、アンドロイドオペレーティングシステム等を動作可能である。アプリケーション２４０は、電子メール、ウェブブラウザ、サービスとしてのソフトウェア（ＳａａＳ）アクセスアプリケーション、ウィンドウズ（登録商標）アプリケーションアクセスアプリケーション等を含み得る。アプリケーション２４０は、ネイティブアプリケーション、アプリケーションランチャーによって実行される遠隔アプリケーション、アプリケーションランチャーによって実行される仮想化アプリケーション等であり得る。アプリケーションのうちの１つ以上は、安全なアプリケーションラッパーによってラップされてもよい。安全なアプリケーションラッパーは、アプリケーションがモバイル機器上で実行されるときにモバイル機器上で実行される統合ポリシーを含み得る。安全なアプリケーションラッパーは、モバイル機器上で動作しているアプリケーションをリソースに指定するメタデータと、アプリケーションがアプリケーションの実行にあたって要求されたタスクを完了するために必要とされ得る企業においてホストされた他のメタデータとを含み得る。アプリケーション２４０は、モバイル機器２００、企業リソース２６０等においてリソースを利用し得る。モバイル機器上で使用されるリソースは、利用者対話リソース、処理リソース等を含み得る。利用者対話リソースは、キーボード入力、マウス入力、カメラ入力、触覚入力、音声入力、映像入力、ジェスチャー入力等を収集及び処理するために使用され得る。処理リソースは、ユーザインターフェース、利用者対話リソースから受信した処理データ、企業リソース２６０等を提供するために使用され得る。アプリケーション２４０によって企業リソース２６０において使用されるリソースは、ユーザインターフェース生成リソース、処理リソース等を含み得る。企業リソース２６０のユーザインターフェース生成リソースは、ユーザインターフェースの構築、ユーザインターフェースの変更、ユーザインターフェースの一新等に使用され得る。企業リソース２６０の処理リソースは、情報の作成、情報の読み出し、情報の更新、情報の削除等に使用され得る。
【００３７】
モバイル機器２００は、ネットワーク２５０を通して企業における企業リソース２６０に接続し得る。いくつかの実施形態において、モバイル機器は、仮想プライベートネットワーク接続を通して企業リソース２６０に接続し得る、マイクロＶＰＮまたはアプリケーション特化ＶＰＮとも呼ばれる、仮想プライベートネットワーク接続は、特定アプリケーション２４０、特定機器、モバイル機器の特定の安全な領域等に特化し得る。例えば、アプリケーションの各々は、ＶＰＮへのアクセスがアプリケーションに関連付けられた属性に基づいて承認されることになるように、アプリケーション及び／またはリソース特化ＶＰＮを通して企業リソースにアクセスし得る。アクセスは、共有秘密２２４に格納されたサーバ証明書及び／または他の情報をさらに条件とし得る。仮想プライベートネットワーク接続は、マイクロソフトエクスチェンジトラフィック、マイクロソフトアクティブディレクトリトラフィック、ハイパーテキストトランスファープロトコル（ＨＴＴＰ）トラフィック、ハイパーテキストトランスファープロトコルセキュア（ＨＴＴＰＳ）トラフィック、アプリケーション管理トラフィック等を伝送し得る。
【００３８】
仮想プライベートネットワーク接続は、いくつかの実施形態において、アクセスゲートウェイ２７０によって確立及び維持され得る。アクセスゲートウェイ２７０は、モバイル機器２００への企業リソース２６０の送達を維持、促進、及び改善する性能強化機能を含み得る。アクセスゲートウェイ２７０はまた、モバイル機器２００から公衆インターネットにトラフィックを別ルートで送ることが可能であり、公衆インターネット上で動作する一般的に利用可能で安全ではないアプリケーションへのアクセスをモバイル機器２００に可能とする。モバイル機器２００は、ネットワーク２５０を介してアクセスゲートウェイ２７０に接続し得る。ネットワーク２５０は、有線ネットワーク、無線ネットワーク、クラウドネットワーク、ローカルエリアネットワーク、都市圏ネットワーク、ワイドエリアネットワーク、公衆回線、私設網等であり得る。
【００３９】
企業リソース２６０は、電子メールサーバ、ファイル共有サーバ、ＳａａＳアプリケーション、ウェブアプリケーションサーバ、ウィンドウズ（登録商標）アプリケーションサーバ等を含み得る。電子メールサーバは、エクスチェンジサーバ、ロータスノーツサーバ等を含み得る。ファイル共有サーバは、シェアファイルサーバ等を含み得る。ＳａａＳアプリケーションは、セールスフォース等を含み得る。ウィンドウズ（登録商標）アプリケーションサーバは、ローカルウィンドウズ（登録商標）オペレーティングシステム上で動作するアプリケーションを提供するために構築される任意のアプリケーションサーバを含み得る。企業リソース２６０は、宅内設置型リソース、クラウド基盤リソース等であり得る。企業リソース２６０は、モバイル機器２００によって、直接、またはアクセスゲートウェイ２７０を通してアクセスされる。
【００４０】
企業リソース２６０は、認証サービス、脅威検出サービス、機器管理サービス、ファイル共有サービス、ポリシーマネージャサービス、ソーシャル統合サービス、アプリケーションコントローラサービス等のような企業サービスを提供し得る。認証サービスは、利用者認証サービス、機器認証サービス、アプリケーション認証サービス、データ認証サービス等を含み得る。認証サービスは、証明書を使用し得る。証明書は、モバイル機器２００上、企業リソース２６０等によって格納され得る。モバイル機器２００上に格納された証明書は、本明細書に記載されるように、共有保管庫２１０に登録されたアプリケーションによって使用するために、暗号化された保管庫データベース２２０における共有秘密２２４として共有保管庫に格納され得る。脅威検出サービスは、侵入検出サービス、不正アクセス試行検出サービス等を含み得る。不正アクセス試行検出サービスは、機器、アプリケーション、データ等にアクセスするための不正試行を含み得る。機器管理サービスは、設定、プロビジョニング、安全性、サポート、監視、レポート、及びデコミッションサービスを含み得る。ファイル共有サービスは、ファイル管理サービス、ファイル格納サービス、ファイル共同システム等を含み得る。ポリシーマネージャサービスは、機器ポリシーマネージャサービス、アプリケーションポリシーマネージャサービス、データポリシーマネージャサービス等を含み得る。ソーシャル統合システムは、連絡統合サービス、共同サービス、フェイスブック、ツイッター（登録商標）、及びリンクトイン等を含み得る。アプリケーションコントローラサービスは、管理サービス、プロビジョンサービス、展開サービス、割り当てサービス、失効サービス、ラップサービス等を含み得る。
【００４１】
モバイル機器２００は、共有メモリ／記憶域２０５を含み得る。共有記憶域は、安全ではなく、モバイル機器２００上で実行する任意のアプリケーションによってアクセス可能である。共有記憶域は、１つ以上の共有保管庫２１０を含むことが可能であり、その各々が同様に保管庫レコード記憶域２１２及び保管庫データベース２２０を含み得る。保管庫データベース２２０に格納されるデータは、ファイル、データベース等を含み得る。保管庫データベース２２０は、いくつかの態様による、企業リソース２６０にアクセスし任意のデータを交換することをアプリケーション２４０に可能とする共有秘密２２４を含み得る。保管庫データベース２２０に格納されるデータは、特定のアプリケーションに制限される、アプリケーション２４０間で共有される、アプリケーショングループ間で共有される、等のデータを含み得る。保管庫データベース２２０は、保管庫鍵を使用して暗号化可能であり、アプリケーションは、保管庫鍵を処理することなく保管庫データベースに格納されたデータにアクセスすることができない。保管庫データベース２２０は、高度暗号化基準（ＡＥＳ）１２８ビット暗号化等のような強固な形式の暗号化を使用して暗号化され得る。本明細書においてＡＥＳが暗号化基準例として使用されるが、共有保管庫２１０を保護するために任意の適切な暗号化方法または基準が使用され得ることが理解されよう。
【００４２】
保管庫レコード記憶域２１２は、暗号化された保管庫データベース２２０をロック解除するために使用される保管庫鍵情報を格納し得る。保管庫鍵情報は、アプリケーション２４０に対しアクセス可能であり得る。ただし、保管庫鍵情報は、暗号化され、保管庫鍵自身が復号化されるまで保管庫データベース２２０を復号化するために使用することができない。保管庫レコード記憶域は、パスコード暗号化保管庫鍵２１４を格納し得る。本開示における例は、基本的に、保管庫鍵を暗号化するために利用者提供パスコード（例えば、暗証番号またはパスワード）を利用者エントロピーとして使用するように記載するが、任意の適切な利用者エントロピーが利用可能であることが理解されるであろう。例えば、いくつかの実施形態において保管庫鍵は、アクティブディクショナリパスワード、及び／または利用者に関連付けられた生体識別データ等のようなパスワードを使用して暗号化され得る。
【００４３】
アプリケーションは、アプリケーションが暗号化された保管庫データベース２２０に格納されたデータにアクセスすることができる前に、利用者に利用者エントロピーデータ（パスコード等）を入力させ得る。アプリケーションは、保管庫レコード記憶域２１２に格納されたパスコード暗号化保管庫鍵２１４にアクセスし、保管庫鍵を生成するためにパスコード暗号化保管庫鍵２１４を復号化し得る。生成された保管庫鍵は、それから、暗号化された保管庫データベース２２０を復号化するためにアプリケーションによって使用され得る。アプリケーションは、利用者エントロピーデータ及び復号化された保管庫鍵を格納することを避ける、または格納することから防止される。本明細書にさらに記載されるように、いくつかの実施形態において保管庫鍵は、アプリケーションエントロピー及び／または機器エントロピーを使用してさらに暗号化可能であり、アプリケーションは、保管庫鍵を完全に復号化するために利用者エントロピーの他に付加的な情報を必要とし得る。ただし、簡潔化のため、図２は、アプリケーションエントロピー及び／または機器エントロピーを例示しない。
【００４４】
一旦、アプリケーションが保管庫データベース２２０を復号化すると、アプリケーションは、共有秘密２２４と、アプリケーションｉ秘密２２６等のアプリケーション固有秘密とにアクセスし得る。共有秘密２２４は、認証／ログオン状態情報、サーバ証明書、チケット（長期サーバアクセス証明書等）、証明書、タイマー、及び安全なネットワークリソースにアクセスするために使用される他の情報を含み得る。付加的及び／または代替的に、共有保管庫は、例えば、バイナリラージオブジェクト（ＢＬＯＢ）の形式の、任意のデータを安全に共有することをアプリケーションに可能とし得る。いくつかの実施形態において、アプリケーション固有秘密へのアクセスは、自身の、またはこれらの秘密に関連付けられたそれぞれのアプリケーションに限定され得る。これは、例えば、アクセスポリシー及び／またはアプリケーションエントロピーを使用する暗号化によって実現され得る。
【００４５】
保管庫データベース２２０はまた、ロック解除鍵２２２を格納し得る。以下にさらに記載される、いくつかの実施形態において、ロック解除鍵２２２は、ロック解除鍵暗号化保管庫鍵２１６を復号化するために使用されるＡＥＳ鍵であり得る。ロック解除鍵２２２はまた、シングルサインオン（ＳＳＯ）鍵とも呼ばれ得る。ロック解除鍵暗号化保管庫鍵２１６はまた、ＳＳＯレコードとも呼ばれ得る。一旦、アプリケーションが保管庫データベース２２０を復号化すると、アプリケーションは、ロック解除鍵２２２を保管庫データベース２２０から読み出し、ロック解除鍵２２２をアプリケーション固有ロック解除鍵記憶域２４１ａ〜ｃそれぞれに格納し得る。ロック解除鍵記憶域２４１ａ〜ｃは、モバイル機器２００によって提供されるメモリまたは記憶域の一部に格納され、アプリケーション２４０ａ〜ｃそれぞれに対し指定及び／または隔離されるという意味でアプリケーション固有であり得る。他のアプリケーションは、ロック解除鍵記憶域２４１ａ〜ｃにアクセスすることができない。ロック解除鍵２２２の取得後、アプリケーションは、保管庫レコード記憶域２１２がロック解除鍵暗号化保管庫鍵２１６を含むか否かを確認し得る。保管庫レコード記憶域２１２がロック解除鍵暗号化保管庫鍵２１６を含む場合、その後、共有保管庫が、ロック解除状態となり、アプリケーションは、次回において利用者にそのパスコードを再度入力させることなく共有保管庫にアクセスするために、ロック解除鍵を使用し得る（本明細書にさらに記載されるように、保管庫がアンロック状態となることが提供される）。保管庫レコード記憶域２１２がロック解除鍵暗号化保管庫鍵２１６を含まない場合、アプリケーションは、ロック解除鍵暗号化保管庫鍵２１６を生成しそれを保管庫レコード記憶域２１２に格納させるために、ロック解除鍵２２２、及び復号化された保管庫鍵を使用し得る。いくつかの実施形態において、ロック解除鍵暗号化保管庫鍵２１６は、利用者エントロピー（パスコード）によって保管庫データベースを復号化することに応答して、及び／またはその結果として生成される。結果として、そのそれぞれのロック解除鍵記憶域にロック解除鍵が格納された任意のアプリケーションは、利用者にそのパスコードを入力させることなく保管庫にアクセス可能となる（保管庫がロック解除状態であることが提供される）。
【００４６】
保管庫データベース２２０はまた、いくつかの実施形態において、アイドル時間タイマー２２８を格納し得る。保管庫データベース２２０を復号化したアプリケーションは、アイドル時間タイマーを読み出し、所定アイドル時間期限が経過したか否かを判定する。アイドル時間タイマーは、共有保管庫がパスコード及び／またはロック解除鍵を使用して最後に復号化されてから経過した時間を捕捉し得る。モバイル機器２００、アプリケーション２４０、及び／または共有保管庫２１０は、所定アイドル時間期限後に共有保管庫を「ロック」するように構成され得る。期限は、モバイル機器２００、企業リソース２６０、アプリケーション２４０、及び／または共有保管庫２１０の１つ以上の安全性ポリシーに関連付けられた、及び／またはそれによって設定された設定可能な時間制限であり得る。アプリケーションが、共有保管庫が最後に復号化されてから所定時間が経過したと判定したときには、アプリケーションは、ロック解除鍵暗号化保管庫鍵２１６を削除またはさもなければ保管庫レコード記憶域２１２から除去させ、これによって共有保管庫２１０及び保管庫データベース２２０を「ロック」し得る。アプリケーションは、その後、保管庫データベース２２０が再度復号化される前に、利用者がパスコードナンバー等の利用者エントロピーを提供することを要求する。ロック解除鍵暗号化保管庫鍵２１６を削除することによって、本明細書に記載されるいくつかの態様によると、アプリケーション２４０は、利用者にそのパスコードを提供させることなく保管庫データベース２２０を復号化することができなくなる。アプリケーションによって格納されたロック解除鍵は、パスコード暗号化保管庫鍵２１４を復号化するために使用することができず、アプリケーションは、利用者エントロピー情報の再入力、パスコード暗号化保管庫鍵２１４の復号化、及び保管庫レコード記憶域２１２の記憶域用のロック解除鍵暗号化保管庫鍵２１６の再作成によって共有保管庫が「ロック解除」されるまで、暗号化された保管庫データベース２２０にアクセスすることができない。
【００４７】
モバイル機器２００は、持続性及び揮発性記憶装置の両方を含み得る。ランダムアクセスメモリ（ＲＡＭ）等のような揮発性記憶装置は、モバイル機器２００がオフになる、電力を失う、または再起動されるときに消去され得る。フラッシュメモリまたはハードディスク記憶装置等のような持続性記憶装置は、電力が失われたとしても格納された情報を維持し得る。いくつかの実施形態において、共有メモリ／記憶域２０５、及びロック解除鍵記憶域２４１ａ〜ｃは、持続性及び揮発性記憶装置の両方を使用して実装され得る。共有保管庫２１０、保管庫レコード記憶域２１２、パスコード暗号化保管庫鍵２１４、ロック解除鍵暗号化保管庫鍵２１６、保管庫データベース２２０、ロック解除鍵２２２、共有秘密２２５、アプリケーションｉ秘密２２６、及び／またはロック解除鍵記憶域２４１ａ〜ｃの各々は、特定実施形態において望ましい、持続性メモリ及び揮発性メモリの任意の組み合わせに格納され得る。
【００４８】
例えば、いくつかの実施形態において保管庫データベース２２０及びパスコード暗号化保管庫鍵２１４は、持続性記憶装置に格納され、一方でロック解除鍵暗号化保管庫鍵２１６及びロック解除鍵記憶域２４１ａ〜ｃは、揮発性メモリに格納され得る。結果として、電力の喪失または再起動においてアプリケーションによって格納されたロック解除鍵が失われることとなり、各アプリケーションは、アプリケーションを共有保管庫２１０に再登録しロック解除鍵２２２を得るために利用者にそのパスコードを入力させる必要があり得る。他の実施形態において、ロック解除鍵記憶域２４１ａ〜ｃは、利用者が、モバイル機器２００の再始動時に毎回、アプリケーションを再登録する必要がないように、持続性メモリに格納され得る。ただし、ロック解除鍵暗号化保管庫鍵２１４を揮発性メモリに格納することによって、利用者は、電力の喪失及び／または再起動後、登録された各アプリケーション（ロック解除鍵を有する）が暗号化された保管庫データベース２２０にアクセスする前に、１つ以上のアプリケーションにそのパスコードを提供することを要求され得る。
【００４９】
いくつかの実施形態において、保管庫データベース２２０及び／または共有保管庫２１０自身が、揮発性メモリに格納され得る。共有保管庫はまた、企業リソース２６０に関連付けられたウェブサーバ等の、モバイル機器２００によってアクセス可能なサーバ上に格納され得る。初回使用、電力の喪失、再起動にあたり、共有保管庫は、再作成される必要がある。マスターアプリケーション等の、モバイル機器２００上のアプリケーションは、ウェブサーバから共有保管庫を取得しモバイル機器のメモリにおいて共有保管庫２１０を再作成するように動作し得る。共有保管庫２１０が持続性メモリに格納される場合でも、マスターアプリケーション等のアプリケーションは、初回使用または共有保管庫が削除、破損、若しくはさもなければ感染した場合においてウェブサーバから共有保管庫を取得する必要があり得る。
【００５０】
図２は、１つの共有保管庫２１０を例示するが、本明細書に記載される態様が１つよりも多い共有保管庫を提供し得ることが理解されるであろう。例えば、異なる共有保管庫が、モバイル機器２００の異なる利用者用に提供され得る。モバイル機器は、第１の利用者用の第１の共有保管庫と、第２の利用者用の第２の共有保管庫とを含み得る。共有保管庫は、本明細書にさらに記載されるように、論理的に分離され、それぞれの利用者に関連付けられた全く別の利用者エントロピーによって独立して暗号化される。付加的及び／または代替的に、モバイル機器２００は、異なる保護レベルを提供するために、１つよりも多い共有保管庫を維持し得る。例えば、モバイル機器は、第１の保護レベルを有するアプリケーション（例えば、第１の証明書を必要とする信頼されたアプリケーション）用の第１の共有保管庫と、第２の保護レベルを有するアプリケーション（例えば、第２の証明書を必要とする、より高度に安全なアプリケーション）用の第２の共有保管庫とを維持し得る。
【００５１】
図２に示されるように、本開示の種々の態様の提供及び／または実装に使用され得るコンピュータ環境例を説明してきたが、本開示のいくつかの態様による方法が、図３を参照して説明されるであろう。
【００５２】
図３は、本明細書に記載される１つ以上の態様による、利用者エントロピー及びシングルサインオン機能を使用してアプリケーション間の共有秘密へのアクセスを提供する方法の一例を例示する。１つ以上の実施形態において、図３に例示される方法及び／またはその１つ以上のステップは、コンピュータ機器（例えば、一般的なコンピュータ機器１００及び／またはモバイル機器２００）によって実行され得る。いくつかの実施形態において、図３に例示される方法は、管理されたアプリケーション環境において動作するモバイル機器によって実行され得る。モバイル機器は、１つ以上のアプリケーションを実行し、アプリケーションからの出力を表示するユーザインターフェースを生成し、そしてタッチ入力、ジェスチャー、マウス入力、キーボード入力、マイクロフォン入力、カメラ入力等を含む、入力形式の範囲から利用者入力を受け取り得る。他の実施形態において、図３に例示される方法及び／またはその１つ以上のステップは、非一時的コンピュータ可読メモリ等のコンピュータ可読媒体に格納されたコンピュータ実行可能命令において具体化され得る。
【００５３】
ステップ３０５において、管理されたアプリケーション等のアプリケーションは、サーバアクセス証明書等の共有秘密がそこに格納された共有保管庫にアクセスするプロセスを開始し得る。共有保管庫は、モバイル機器の安全ではないメモリ部に格納され、モバイル機器上で実行する任意のアプリケーションがアクセス可能であり得る。アプリケーションは、利用者に関連付けられたＰＩＮ、パスワード、及び／または生体識別データを利用者に提供させ得る。いくつかの実施形態において、アプリケーションは、利用者によるアプリケーションの初回使用に応答してステップ３０５を実行し得る。例えば、アプリケーションは、利用者によって新しくインストールされた管理された電子メールアプリケーションであり得る。いくつかの実施形態において、アプリケーションは、利用者の企業リソースへの初回アクセスの要求に応答してステップ３０５を実行し得る。いくつかの実施形態において、アプリケーションは、一時的な保管庫鍵レコード（例えば、図２のロック解除鍵暗号化保管庫鍵２１６）が削除またはさもなければ利用不可能となったことの判定に応答してステップ３０５を実行し得る。
【００５４】
ステップ３１０において、アプリケーションは、共有保管庫に格納されたパスコード暗号化保管庫鍵にアクセスし得る。アプリケーションは、復号化された保管庫鍵を生成するために、パスコード暗号化保管庫鍵を復号化し得る。パスコード暗号化保管庫鍵はさらに、機器エントロピー（例えば、機器に関連付けられ、管理されたアプリケーションによって既知／アクセス可能であり管理されていないアプリケーションによって既知／アクセス可能ではない固有値）によって暗号化され得る。これは、付加的な安全性を提供し利用者のパスコードを抽出するフィッシング攻撃の危険性を低下する助けとなり得る。付加的及び／または代替的に、パスコード暗号化保管庫鍵はさらに、アプリケーションエントロピー（例えば、アプリケーション内に埋め込まれ他のアプリケーションがアクセス可能ではない値）によって暗号化され得る。このような実施形態において、共有保管庫は、各アプリケーションに対応する複数のパスコード暗号化保管庫鍵を格納し得る。
【００５５】
ステップ３１５において、アプリケーションは、復号化された保管庫鍵を使用して共有保管庫の保管庫データベースをロック解除し得る。アプリケーションは、復号化された保管庫鍵を使用して保管庫データベースに格納された情報を復号化し得る。例えば、アプリケーションは、保管庫データベースに格納された、ネットワーク証明書等の共有秘密にアクセスし得る。さらに、アプリケーションは、保管庫データベースに格納されたロック解除鍵にアクセスし得る。
【００５６】
ステップ３２０において、アプリケーションは、アプリケーションに関連付けられたメモリにロック解除鍵を格納し得る。ロック解除鍵は、アプリケーションによって使用するために、システムに管理されるアプリケーション固有メモリに、アプリケーションによって格納され、他のアプリケーションによってアクセス不能なメモリに格納され得る。ロック解除鍵は、共有保管庫に格納されたロック解除鍵暗号化保管庫鍵レコードを復号化するために、アプリケーションによって使用され、これによって利用者エントロピーをリクエストする次回のプロンプトを省略することをアプリケーションに可能とし得る。ロック解除鍵暗号化保管庫鍵が共有保管庫に格納されない場合、アプリケーション及び／または共有保管庫は、ロック解除鍵、復号化された保管庫鍵、及び／または機器エントロピーを使用してロック解除鍵暗号化保管庫鍵を生成し得る。アプリケーション及び／または共有保管庫は、ロック解除鍵暗号化保管庫鍵を共有保管庫に書き込ませる。
【００５７】
ステップ３２５において、アプリケーションは、共有保管庫へのアクセスを再度開始する。ステップ３３０において、アプリケーションは、ロック解除鍵暗号化保管庫鍵が共有保管庫に存在するか否かを判定する。ロック解除鍵暗号化保管庫鍵が共有保管庫に存在する場合、方法は、ステップ３３５に進み、アプリケーションがロック解除鍵暗号化保管庫鍵を復号化し、保管庫データベースにアクセスするために復号化された保管庫鍵を使用する。
【００５８】
ロック解除鍵暗号化保管庫鍵が削除されている、またはさもなければ共有保管庫において利用不能である場合、方法は、ステップ３４０に進む。ロック解除鍵暗号化保管庫鍵は、共有保管庫によって格納されたアイドル時間タイマーに基づいて削除され、共有保管庫へのアクセスに登録されたアプリケーションによって管理され得る。ステップ３４０において、アプリケーションは、利用者に利用者エントロピーを提供させる。ステップ３４５において、アプリケーションは、パスコード暗号化保管庫鍵を復号化するために、利用者エントロピーを使用する。ステップ３５０において、アプリケーションは保管庫データベースを復号化し、これにアクセスするために、復号化された保管庫鍵を使用する。アプリケーションはまた、ロック解除鍵、復号化された保管庫鍵、及び／または機器エントロピーに基づいてロック解除鍵暗号化保管庫鍵を生成し、ロック解除鍵暗号化保管庫鍵を共有保管庫に書き込む。
【００５９】
本開示の種々の態様の提供及び／または実装に使用され得る、コンピュータ環境例及び方法例を説明してきたが、いくつかの実施形態がここでさらに詳細に説明されるであろう。
【００６０】
上記のように、いくつかの実施形態において、モバイル機器上で動作するアプリケーションは、管理されたフレームワークの一部であり、管理サービスを提供しアプリケーションの動作に関する種々のポリシーを実装し、これらのアプリケーションによる企業リソースのアクセスを容易化する安全なラッパーにおいてラップされ得る。いくつかの実施形態において、管理されたフレームワークは、フロリダ、フォートローダーデールのシトリックスシステムズ株式会社によって提供されるＸｅｎＭｏｂｉｌｅ及びＭＤＸフレームワークであり得る。機器は、管理されたフレームワークに関連付けられたマスターアプリケーションを含み得る。例えば、機器は、ＭＤＸフレームワークに関連付けられたＷｏｒｘＨｏｍｅアプリケーションを含み得る。いくつかの実施形態は、ＭＤＸフレームワーク、ＷｏｒｘＨｏｍｅ、及び他のＭＤＸアプリケーションを利用することが開示されているが、本明細書に記載される技術及び機能は、マスターアプリケーションを含む、または含まない、任意の適切な機器管理または企業リソースアクセスフレームワークを使用して実装され得る。
【００６１】
上記のように、本開示のいくつかの態様は、利用者エントロピー（パスコード等）によって暗号化された共有保管庫への登録を介してアプリケーションにシングルサインオン機能を提供することに関する。いくつかの実施形態において、共有保管庫にアクセスし得るアプリケーションは、管理されたアプリケーション（ＭＤＸアプリケーション、または任意の適切なフレームワークのアプリケーション等）である。共有保管庫は、初回使用においてマスターアプリケーション（ＷｏｒｘＨｏｍｅ、または任意の適切なマスターアプリケーション等）及び／または管理されたアプリケーションによって作成され得る。共有保管庫は、利用者、アプリケーション、及び／または機器エントロピーによって安全なものとされ得る。各々の管理されたアプリケーションは、マスターアプリケーションへの登録を調整すべく、プロセス間通信を使用するために有するのではなく、初回使用においてそれ自身を共有保管庫に登録し得る。各々の管理されたアプリケーションは、例えば、グローバルまたはアプリケーション単位のアイドル時間タイマーに基づき得る保管庫ロック状態を管理することにおいて補助を行い得る。管理されたアプリケーションは、「ロック解除」を行い、本明細書に記載されるシングルサインオン技術によって共有保管庫にアクセスし得るが、保管庫は、暗号化形式において格納されたままとなる。
【００６２】
いくつかの実施形態は、１つ以上の安全性及び利用者体験モードを提供し得る。安全性（及び利用者体験）モードは、モバイル機器、フレームワーク、アプリケーションのグループ、及び／または個々のアプリケーションの種々の設定を示し得る。対話モードにおいて、アプリケーションは、初回使用及びアイドル時間期限後、利用者に利用者エントロピー（パスコード等）を提供させ得る。このモードは、他のモードに対し付加的な安全性機能を提供し得る。複合モードにおいて、アプリケーションは、初回使用において、利用者にワンタイムパスワード等のパスコードまたはパスワードを提供させ得る。続いて、アプリケーションは、共有保管庫に「登録」され、ロック解除鍵を格納することによって、共有保管庫にアクセスするために利用者エントロピーの再入力を利用者に要求しなくてもよい。非対話モードにおいて、共有鍵が、利用者エントロピーに代えて使用され得る。このようなモードにおいて、共有鍵は、アプリケーション及び／またはラッパーに構築可能であり、または共有鍵は、管理されたアプリケーションサーバによって分散可能である。非対話モードは、より攻撃されやすいが、連続した利用者体験が重要である場合に好ましい実装であり得る。ただし、各モードにおいて、システムは、危険なアプリケーションにパスコードを提供するように利用者を騙し得るフィッシング攻撃を防止すべく、共有保管庫をさらに暗号化するためにアプリケーションエントロピー及び／または機器エントロピーを利用し得る
本明細書に記載されるいくつかの態様は、分散された認証サービスを提供し、１つの登録されたアプリケーションにおける成功した認証を他の登録されたアプリケーションに反映可能とし得る。認証マネージャ論理は、企業／モバイルアプリケーション管理アプリケーションの各ライン内に構築され得る。認証状態（例えば、アクセスゲートウェイチケット、証明書、ＳＡＭＬトークン、部分または完全ＶＰＮスタック等）は、共有保管庫によって登録されたアプリケーション間において同期され得る。認証プロンプトは、各アプリケーションに埋め込まれ得る。結果として、利用者は、アプリケーションに登録し別のアプリケーションにおいて認証された企業リソースにアクセスを開始し得る。これは、複数のアプリケーション間におけるコンテキストスイッチ（または「フリップ」）を回避し得る。
【００６３】
共有保管庫用の論理的構造の一例は、図２に関して上述された。いくつかの実施形態において、共有保管庫のレコード保持部は、永久保管庫鍵レコード（例えば、いくつかの実施形態における、パスコード暗号化保管庫鍵２１２）、及び一時的保管庫鍵レコード（例えば、いくつかの実施形態における、ロック解除鍵暗号化保管庫鍵２１６）を格納し得る。共有保管庫に格納されたデータは、保管庫鍵を使用して保護され得る。保管庫鍵は、強固な暗号化方式に関連付けられ得る。例えば、いくつかの実施形態において保管庫鍵は、ＲＳＡ暗号化用の２０４８ビット鍵であり得る。保管庫鍵は、暗号化され、１つ以上の永久保管庫鍵レコードに格納され得る。いくつかの実施形態において、１つの永久保管庫鍵レコードがあり、それは、利用者エントロピー（パスコード等）及び機器エントロピー（機器に関連付けられ管理されたアプリケーションによってアクセス可能な固有値であり得る）によって暗号化され得る。本明細書に記載されるいくつかの態様によると、機器エントロピーは、共有保管庫を利用するために認証された、管理されたアプリケーションにとって容易にアクセス可能であり、管理されていないアプリケーションによってアクセスが困難及び／またはアクセス不能であり得る。他の実施形態において、機器上に格納された管理されたアプリケーションのうちのそれぞれ１つに対応する複数のレコードがあり得る。複数のレコードの各々は、利用者エントロピー、機器エントロピー、及びそれぞれのアプリケーションに関連付けられたアプリケーションエントロピーによって暗号化され得る。これは、例えば、攻撃者が利用者エントロピーを出し抜くことを可能とするパスコードフィッシング攻撃を防止することによる、向上された安全性を提供し得る。
【００６４】
保管庫鍵はまた、ＡＥＳ鍵等のロック解除鍵（シングルサインオン（ＳＳＯ）鍵とも呼ばれ得る）、及び機器エントロピーを使用して暗号化された１つ以上の一時的保管庫鍵レコードに格納され得る。一時的保管庫鍵レコード（シングルサインオン（ＳＳＯ）レコードとも呼ばれ得る）は、寿命を有する、または所定のアイドル時間期限が経過するまで維持され得る。共有保管庫に登録されたアプリケーションは、一時的保管庫鍵レコードを復号化するために使用されたロック解除鍵を格納し得る。これは、登録された／信頼されたアプリケーションがアイドル時間タイマーの持続期間中に共有保管庫に格納された共有秘密を復号化しこれにアクセスすることを可能とし得る。これは、１つの登録されたアプリケーションが別のアプリケーションによって認証された企業リソースにアクセスし得るように、登録されたアプリケーション内のシングルサインオン機能を提供するために使用され得る。共有保管庫のレコード維持部はまた、パスコード検証ツールを格納し得る。パスコード検証ツールは、利用者提供利用者エントロピーが有効であるか否かを判定するために使用され得る。一実施形態において、パスコード検証ツールは、利用者エントロピーによって暗号化され、元の句と共に、管理されたアプリケーションによってアクセス可能な機器エントロピーを使用してハッシュ及び暗号化の両方が行われたランダム句を含み得る。
【００６５】
共有保管庫はまた、保管庫データベースを含み得る。保管庫データベースは、保管庫鍵を使用して暗号化され得る。保管庫データベースは、アクセスゲートウェイチケット、ＳＡＭＬトークン、証明書、共通ポリシー等のような、登録されたアプリケーション間で共有される共通の秘密を格納し得る。保管庫データベースはまたは、アプリケーション単位の秘密を格納し得る。アプリケーション単位の秘密は、それぞれのアプリケーションのアプリケーションエントロピーによってさらに暗号化され得る。これは、他のアプリケーションが別のアプリケーションの秘密データにアクセスすることを防止し得る。アプリケーション単位の秘密は、Ｓ１及びＳ２秘密（例えば、サーバが生成したアプリケーション単位のデータ暗号化鍵）、証明書、アプリケーション単位のポリシー等を含み得る。
【００６６】
保管庫データベースはまた、ＳＳＯ鍵レコード（例えば、いくつかの実施形態における、ロック解除鍵２２２）を含み得る。ＳＳＯ鍵は、一時的保管庫鍵レコードの復号化に使用するためのＡＥＳ２５６ビット鍵であり得る。ここに記載される実施形態の例は、ＡＥＳ復号化鍵を使用するが、任意の適切な暗号化アルゴリズム及び対応する鍵形式が、一時的保管庫鍵レコードを安全なものとするために使用可能であることが理解されるであろう。各々の登録されたアプリケーションは、ＳＳＯ鍵を保管庫データベースから取得し、ＳＳＯ鍵をそのアプリケーション固有の永久記憶域／揮発性記憶域に格納する。例えば、ウィンドウズ（登録商標）フォンオペレーティングシステムを実行するモバイル機器において、ＳＳＯ鍵は、アプリケーション分離記憶域に格納され得る。別の例のように、ｉＯＳオペレーティングシステムを実行するモバイル機器において、ＳＳＯ鍵は、アプリケーションに関連付けられたキーチェーンに格納され得る。格納されたＳＳＯ鍵は、機器エントロピー及び／またはそれぞれのアプリケーションのアプリケーションエントロピーを使用してさらに暗号化され得る。保管庫データベースは、共有保管庫及び保管庫鍵に関連付けられたアイドル時間を捕捉するアイドル時間タイマーをさらに含み得る。アイドル時間タイマーは、利用者エントロピーを使用する保管庫の最後のロック解除のタイムスタンプ及び／またはプロセッサティック数を捕捉し得る。他の実施形態において、アイドル時間タイマーは、利用者エントロピーまたはＳＳＯ鍵を使用して共有保管庫がアクセスされてからの経過時間を捕捉し得る。いくつかの実施形態において、利用者エントロピーによる最後のロック解除及びＳＳＯ鍵を使用する最後のアクセスの組み合わせが使用され得る。アイドル時間の捕捉に使用される基準は、１つ以上のポリシーによって設定可能であり、複数の基準を利用可能である。基準は、グローバル、アプリケーションのグループに関するもの、及び／または個々のアプリケーションに関するものであってもよい。異なるアイドル時間基準が、異なる共有保管庫に対して使用可能であり、アイドル時間基準は、利用者の好み従って利用者によって設定可能である。
【００６７】
図４は、本明細書に説明される１つ以上の例示的な態様による、論理的共有秘密保管庫４２０の実装例４００を図示する。図４（及び後続図）において使用されるように、表記「鍵｛データ｝」（例えば、「パスコード｛保管庫鍵｝」）は、データアイテムが鍵によって暗号化される（例えば、保管庫鍵がパスコードを使用して暗号化される）ことを示す。図４は、エントリ４３０と、共通秘密４４６、ならびにアプリケーション単位の秘密４４８ａ、４４８ｂ、及び４４８ｃを含む保管庫データベース４４０とを保持する保管庫レコードの全てが同一メモリ位置（例えば、安全ではない共有アプリケーションメモリ４０５）を共有する論理的共有保管庫設計４００の実施形態の一例を例示する。
【００６８】
図４の実装例において、アプリケーション４１０ａ、４１０ｉ、及び４１０ｎ（まとめるとアプリケーション４１０）は、共通秘密４４６を交換するために共有メモリ４０５を利用し得る。共有メモリ４０５は、機器エントロピーを使用して暗号化される共有保管庫４２０を格納するように構成され得る。共有保管庫は、保管庫レコード保持部４３０及び保管庫データベース４４０を備え得る。保管庫データベース４４０は、保管庫鍵を使用してさらに暗号化され得る。保管庫データベース４４０は、ＡＧチケット、ＳＡＭＬトークン、証明書、及びポリシー等の共通秘密４４６を格納し得る。保管庫データベースは、アプリケーション固有エントロピー及び／またはアプリケーション固有鍵によってさらに暗号化され得るアプリケーション単位の秘密４４８ａ、４４８ｂ、及び４４８ｃをさらに格納し得る。アプリケーション単位の秘密４４８は、Ｓ１及びＳ２情報、証明書、ＳＴＡチケット、ならびに／または特定アプリケーション用のポリシーを含み得る。
【００６９】
保管庫レコード保持部４３０は、保管庫鍵を得るために使用可能な１つ以上の暗号化されたレコードを格納し得る。第１の保管庫鍵レコードは、上記のように、それぞれのパスコード／認証ユーザインターフェース４１２ａ、４１２ｉ、または４１２ｎを介して特定アプリケーション４１０によって利用者から受信したパスコードを使用して保管庫をロック解除するために使用され得る、利用者エントロピー暗号化保管庫鍵レコード、またはパスコード暗号化保管庫鍵レコード４３２であり得る。付加的または代替的に、保管庫レコード保持部４３０は、アプリケーション固有エントロピーとの組み合わせにおいてパスコードを使用して暗号化され得る、複数のアプリケーション単位の保管庫鍵レコード４３４を格納し得る。アプリケーション固有エントロピーは、いくつかの実施形態において機器エントロピーと共に、それぞれのアプリケーションによって使用するためにアプリケーションメモリ４１４ａ、４１４ｉ、４１４ｎに格納され得る。アプリケーション単位の保管庫鍵レコード４３４は、それぞれのアプリケーション４１０によって、そのパスコード／認証ＵＩ  ４１２を介して受信したパスコードを使用して保管庫をロック解除するために使用され得る。
【００７０】
一旦、アプリケーションが保管庫鍵をパスコード暗号化保管庫鍵レコード４３２または４３４から復号化すると、アプリケーションは、保管庫鍵を使用して保管庫データベース４４０を復号化し得る。アプリケーションは、パスコード暗号化保管庫鍵レコード４３２及び／またはそれぞれのアプリケーション単位のパスコード暗号化保管庫鍵レコード４３４を復号化することによって、保管庫鍵の第１のコピーを生成し得る。アプリケーションは、保管庫鍵の第１のコピー（または保管庫鍵の任意のコピー）を格納することを回避及び／または防止し得る。
【００７１】
共通秘密４４６及びアプリケーション単位の秘密４４８を格納することに加え、保管庫データベース４４０は、本明細書においてロック解除鍵とも呼ばれる、ＳＳＯ鍵４４２を格納し得る。ＳＳＯ鍵４４２は、利用者のパスコードの更なる入力を必要としない保管庫の後のアクセスのために保管庫を復号化したアプリケーションによってアクセスされ格納され得る。ＳＳＯ鍵４４２は、保管庫を復号化したアプリケーションによってアプリケーションメモリ４１４に格納され得る。ＳＳＯ鍵４４２は、ＳＳＯ鍵４４２を使用して暗号化された保管庫鍵を備える第２の保管庫鍵レコード４３６を生成するために、アプリケーションによって使用され得る。この第２の保管庫鍵レコード４３６は、保管庫レコード保持部４３０に格納可能であり、これによって保管庫を「ロック解除」状態とする。パスコード暗号化保管庫鍵レコードを使用して保管庫を復号化しＳＳＯ鍵４４２を格納した任意のアプリケーションは、その後、第２の保管庫鍵レコード４３６を復号化することによって保管庫データにアクセスし得る。結果として、利用者エントロピーを使用して保管庫を事前にロック解除したアプリケーションは、利用者にパスコードの再入力を要求することなく、後の時間において保管庫にアクセスすることが可能となり得る。
【００７２】
保管庫データベース４４０は、アイドル時間タイマー４４４を格納し得る。アイドル時間タイマー４４４は、共有保管庫４２０が少なくとも所定時間期限に対してアイドルしているか否かを判定するために、管理されたアプリケーションによって使用される値であり得る。アプリケーション４１０が第２の保管庫鍵レコードまたはＳＳＯ鍵暗号化保管庫鍵４３６を使用して共有保管庫４２０にアクセスを試行するときに、アプリケーションは、保管庫がロック解除されたままであるか否かを判定するために、アイドル時間タイマーを確認し得る。アイドル時間タイマー４４４が、保管庫が設定された閾値時間よりもアイドルしていることを示す場合、アプリケーションは、第２の保管庫鍵レコードまたはＳＳＯ鍵暗号化保管庫鍵４３６を削除／除去し、保管庫をロック解除するために、利用者に利用者エントロピーを再度入力させるように構成され得る。
【００７３】
図５は、本明細書に説明される１つ以上の例示的な態様による、論理的共有秘密保管庫５２０の別の実装例５００を図示する。図５は、図４のものと類似の論理的共有保管庫設計を例示する。図５において、鍵の管理は、同様の方法で実施されるが、アプリケーション単位の秘密が、保管庫アセットの余剰部とは別のアプリケーション固有記憶域５４８ａ、５４８ｂ、及び５４８ｃに格納され得る。例えば、保管庫鍵レコード５３２、５３４、及び５３６は、安全ではない共有アプリケーションメモリ５０５の保管庫レコード保持部５３０に格納可能であり、共有秘密５４６は、安全ではない共有アプリケーションメモリ５０５の保管庫データベース５４０に格納可能であり、一方でアプリケーション固有秘密５４８ａ、５４８ｂ、５４８ｃは、指定された、及び／または隔離されたアプリケーションメモリに格納され得る。一例において、モバイル機器がウィンドウズ（登録商標）フォンオペレーションシステムを使用する場合、アプリケーション単位の秘密は、アプリケーション隔離記憶域等のアプリケーション永久記憶域に格納され得る。別の例において、モバイル機器がｉＯＳオペレーティングシステムを使用する場合、アプリケーション単位の秘密は、アプリケーションに関連付けられたキーチェーンに格納され得る。図５に例示される設計は、全てのアセットを保持する攻撃の単一点（ハニーポット）を回避する付加的な安全上の利益を提供し得る。さらに、分割記憶域保管庫設計は、異なる安全性、ならびに利用者体験の好み及びポリシーによって、異なるアセットに対して使用されることを異なる形式のメモリに可能とし得る。異なる形式のメモリの使用及びその利点は、以下にさらに説明される。
【００７４】
一方で、図５の同じ名称の構成要素は、図４に関して上述されたものと同様の方法で動作する。共有メモリ５０５、共有保管庫５２０、保管庫レコード保持部５３０、及び保管庫データベース５４０は、以下にさらに記載されるものを除いて、図４において対応するものと同様の情報を格納し同様に動作し得る。アプリケーション５１０ａ、５１０ｉ、５１０ｎは、図４のアプリケーション４１０ａ、４１０ｉ、及び４１０ｎに対応する。パスコード／認証ＵＩ  ５１２ａ、５１２ｉ、及び５１２ｎ、ならびにアプリケーション固有メモリ５１４ａ、５１４ｉ、及び５１４ｎは、図４において対応するものと同様の情報を格納し同様の動作に動作し得る。
【００７５】
上述されるように、分割記憶域の使用は、共有保管庫及び管理されたアプリケーションによって格納された異なる部分のデータを格納するために、異なる形式の記憶域の使用を可能とし得る。アプリケーション固有アセットを含有するデータベースの一部に対する永久記憶域の使用は、いくつかの実施形態において、機器の再起動後でさえアセットの入手を可能とし、アセット／秘密が長寿命となるように設計される（例えば、Ｓ１及びＳ２アプリケーション単位のデータ暗号化鍵、証明書、セキュアチケットオーソリティ（ＳＴＡ）チケット、アプリケーションポリシー）。代わりにそれらが揮発性メモリに保持される場合、機器の再起動後、アプリケーションは、これらのアセットをサーバから再度取得しなければならず、付加的な認証が必要となり、利用者体験を分断し得る。
【００７６】
保管庫レコード保持エントリ及び共通アセット（例えば、アクセスゲートウェイチケット、ＳＡＭＬトークン、証明書、共通ポリシー）を含有するデータベースの一部に対する揮発性メモリの使用は、いくつかの実施形態において、付加的な安全対策を提供し得る。機器の「ルート化」は、通常、少なくとも１回の再起動を必要とし、これは、全ての保管庫レコード保持エントリ及び共通秘密が、正しい認証なしで攻撃者によって復旧不能であり得ることを意味する。ＳＳＯ（ロック解除）鍵によって暗号化された一時的保管庫鍵レコード及び機器エントロピーはまた、揮発性メモリに格納可能であり、また再起動にあたりメモリから除去され得る。
【００７７】
揮発性メモリが共有保管庫の１つ以上の部分を格納するために使用されるときには、いくつかの実施形態において、保管庫レコード保持エントリのコピー及び共通アセットは、マスターアプリケーション（例えば、ＷｏｒｘＨｏｍｅ／Ｒｅｃｅｉｖｅｒ）の永久隔離記憶域及び／または最初に保管庫を作成した管理されたアプリケーション、あるいは登録され管理された全てのアプリケーションにおいてまた保持可能である。機器の再起動にあたり、いくつかの実施形態において、アセットは、認証に続き永久記憶域から復旧され得る。利用者が登録されたアプリを最初に起動するか否かに依らず、復旧は、認証の前に、利用者エントロピー（例えば、パスコード）用のプロンプト等のマスターアプリケーションまたは登録され管理されたアプリケーションへの単一フリップを伴う。アクセスゲートウェイトークン等の共通アセットが古くなると、それらの復旧はまた、サーバへの再認証を伴う。
【００７８】
いくつかのモバイルプラットフォームにおいて共有揮発性メモリは、利用することができず、持続性メモリのみが利用可能であり得る。いくつかの実施形態において、機器の再起動にあたり、マスターアプリケーションまたは利用者によって最初に起動された任意の管理されたアプリケーションは、例えば、システムログエントリを読み取ることによって、機器が再起動されたことを検出可能であり、ＳＳＯ（ロック解除）鍵によって暗号化された一時的保管庫鍵レコード及び／または共通アセットを意図的に除去可能である。これは、共通アセットを取得すべく、保管庫のロック解除及び／またはサーバへの再認証を行うために、利用者エントロピー（例えば、パスコード）に対する要求を引き起こし得る。共有揮発性メモリが利用可能なときでも、ポリシーが厳重な安全よりも利用者体験を重視する設定である場合、保管庫レコード保持エントリ及び共通アセットは、機器の再起動に続いてシームレスな体験を可能とするために、永久記憶域に保持され得る。
【００７９】
いくつかの実施形態において、共有保管庫はまた、サーバ上にキャッシュされ得る。いくつかの実施形態において、共通アセットのみが、サーバ上にキャッシュ可能であり、一方で保管庫レコード保持エントリが、ローカル共有メモリに格納可能であり、マスターアプリケーション（例えば、ＷｏｒｘＨｏｍｅ／Ｒｅｃｅｉｖｅｒ）または上記のように最初に保管庫を作成した管理されたアプリケーションからさらに復旧可能である。サーバキャッシュからの保管庫の復旧は、機器がオンラインであることを必要とし得る。ただし、共通アセットは、基本的に、サーバアクセスに有用であり、したがって、一旦、機器がオンラインになると、それらを復旧することは、安全性を向上させつつ利用者体験に大きな負の影響を及ぼさないであろう。
【００８０】
いくつかのプラットフォームにおいて、またいくつかの実施形態において、共有保管庫（持続性または揮発性メモリのいずれに格納されるにしても）は、偶発的またはサーバ攻撃の意図的な拒絶の一部として、別のアプリケーションによって消失または除去され得る。例えば、ｉＯＳ上の保護されていないペーストボードまたはウィンドウズ（登録商標）フォン上の共有ライブラリ内のファイルを使用するときに、任意のアプリケーションは、共有記憶域を除去または破損し得る。このような場合において、動作中の管理されたアプリケーションは、消失または破損保管庫状態を検出可能であり、上記のように、ローカルまたはサーバ基盤のいずれかのキャッシュされたバージョンから保管庫を復旧可能である。
【００８１】
図４及び５に図示される共有保管庫実装の処理の更なる詳細が図６Ａ〜１５を参照して以下に提供される。図６Ａ〜１２Ｂは、本明細書にさらに記載される１つ以上の態様によるプロセスフロー例を例示する。各図は、企業サーバ６０１、マスターアプリケーション６０２、アプリケーションｉ  ６０３、アプリケーションｎ  ６０４、共有メモリ／記憶域６０５、及び安全なアプリケーションラッパー６０６を含むように例示される。いくつかの図は、第２の保管庫６０７、ゲートウェイ６０８、企業リソース６０９、及び／またはアクティブディレクトリサービス６１１等の更なるエントリを含むように例示される。図１３〜１５は、プロセスフローの更なる例を例示し、安全なアプリケーションラッパー６０６及びペーストボードサービス６１０を含む。図６Ａ〜１５の同じ名前及び同じ符号箇所は、以下にさらに記載されるように、付加的及び／または代替的なステップ及び／または役割を実行する同一のそれぞれの論理的エントリを表す。
【００８２】
図６Ａは、本明細書に説明される１つ以上の例示的な態様による、共有秘密保管庫の作成を例示するプロセスフロー例を図示する。図６Ａに例示されるように、ステップ６１１において、ＷｏｒｘＨｏｍｅ等のマスターアプリケーション６０２が機器に展開される。マスターアプリケーション６０２は、ステップ６１２において、ＸｅｎＭｏｂｉｌｅ等の企業サーバ６０１にログオンし、ステップ６１３において機器及び企業リソース用の安全性ポリシーを取得し得る。マスターアプリケーション６０２は、ステップ６１４及び６１５において、ＭＤＸ等のフレームワークを使用して、１つ以上の他の管理されたアプリケーション、例えば、アプリケーションｉ  ６０３、アプリケーションｎ  ６０４のインストールを容易化し得る。マスターアプリケーション６０２は、ステップ６１６において、共有保管庫を作成し、機器エントロピーを使用して共有保管庫を暗号化し得る。ステップ６１７において、マスターアプリケーション６０２は、利用者にパスコード（及び／または他の利用者エントロピー）を提供させ、ステップ６１８において、保管庫鍵を生成し得る。いくつかの実施形態において、保管庫鍵は、安全な乱数生成ＡＰＩを使用して生成され得る。
【００８３】
例示された実施形態において、ステップ６１９でマスターアプリケーション６０２は、各々のインストールされたアプリケーション用の暗号化された保管庫鍵レコードを生成する。各アプリケーション用の保管庫鍵レコードは、アプリケーションエントロピー及び利用者エントロピーを使用して暗号化される。他の実施形態において、単一の暗号化された保管庫鍵レコードが生成され、利用者エントロピーによって暗号化されてもよい。例示された実施形態において、ステップ６２０でマスターアプリケーション６０２は、保管庫鍵によって暗号化された共有保管庫データベースを共有メモリ／記憶域６０５に作成する。ステップ６２１において、マスターアプリケーション６０２は、サーバアクセス証明書及び共有ポリシー等の共有秘密を共有保管庫データベースに書き込み得る。ステップ６２２において、マスターアプリケーション６０２は、同様に、アプリケーション固有秘密を共有保管庫データベースに書き込み得る。ステップ６２３において、マスターアプリケーション６０２は、ＳＳＯ鍵を生成し、マスターアプリケーション６０２に関連付けられたアプリケーション固有記憶域にＳＳＯ鍵を格納し得る。ステップ６２４において、マスターアプリケーション６０２は、ＳＳＯ鍵を使用して暗号化された保管庫鍵を備える第２の保管庫鍵レコードを生成し、第２の保管庫鍵レコードを共有保管庫に格納し得る。ステップ６２５において、マスターアプリケーション６０２は、ＳＳＯ鍵を共有保管庫データベースに書き込み、ステップ６２６において、アイドル時間タイマーを初期化し得る。
【００８４】
いくつかの実施形態において、利用者エントロピーモードが設定され、共有保管庫が作成されるときに、パスコード検証ツールがまた、保管庫レコード保持構造を作成することの一部として共有保管庫に作成され得る。パスコード検証ツールは、格納されたアセット上で暗号化処理を試行する前に、正しいパスコードが利用者によって入力されたことを検証することに役立つ。いくつかの実施形態において、パスコード検証ツールは、元のランダム句と共に、利用者エントロピー（パスコード）によって暗号化されたランダム句を備え、これらの両方は、ハッシュされ、機器エントロピーによって暗号化され得る。他の実施形態は、トークン、サーバ、対となった機器、ラップトップ、スマートウォッチ等のような他の機器に由来する付加的なエントロピーの使用を伴い得る。
【００８５】
いくつかの実施形態において、異なるコンテンツが、認証プロンプトに対するあいまいさをなくすことを理由に種々の認証ユーザインターフェースに含まれ得る。アプリケーションの初回使用において、アプリケーションは、アプリケーションに企業ネットワーク、キャッシュ、証明書、共有記憶域、アプリケーションポリシー等へのアクセスを許可することとなる企業コンテナへのアクセスをアプリケーションが許容される保証を探索する登録ユーザインターフェースを提示し得る。例えば、ＷｏｒｘＭａｉｌ等の管理されたアプリケーションは、「ＷｏｒｘＭａｉｌは、企業アプリケーションとして動作する許可を要求します。許容する場合、あなたのＷｏｒｘＰＩＮを入力して下さい。許容しない場合、終了して下さい」と述べるプロンプトを生成し得る。その後において、一旦、アプリケーションが登録されると、アプリケーションは、利用者のパスコード（例えば、管理されたフレームワーク内のＰＩＮ）を要求する異なるロック解除ユーザインターフェースを提示し得る。このユーザインターフェースは、保管庫がアイドル時間期限後にロックされた後のように、共有秘密保管庫をロック解除すべく、利用者エントロピーを取得するために使用され得る。別の異なるユーザインターフェースが、共有保管庫の確立またはネットワークサービスへのアクセスの付与を行うべく、利用者証明書を取得するためにマスターアプリケーションによって提示されるネットワークレベル認証ユーザインターフェース等の、他の認証用に使用され得る。例えば、マスターアプリケーションは、利用者にその利用者名、企業パスワード（保管庫をロック解除するために使用されるそのパスコードとは別のものであり得る）、及び／または第２の形式の認証（トークンまたは他の二要素認証形式等）を入力させ得る。
【００８６】
いくつかの態様によると、利用者がアプリケーションにおいてその登録の試行中に正しいパスコードの入力に失敗した場合、システムは、アプリケーション単位に基づく失敗した入力の回数を数え得る。失敗した入力の回数が最大値、例えば、１５回の失敗した入力を超えた場合、アプリケーションはロックされ得る。いくつかの実装において、利用者は、その後、そのアプリケーションの削除及び再ダウンロードを要求され得る。若しくは、利用者が、いくつかの他の形式の認証を介してアプリケーションをロック解除可能であり、またはアプリケーション及び／または利用者のアカウントをロック解除する管理者を有する。いくつかの実施形態において、アプリケーションは、登録され共有保管庫へのアクセスを得る前に他のアプリケーションと回数の共有を行うことができないので、パスコード用のグローバルな最大失敗入力回数は、存在し得ない。
【００８７】
図６Ａに例示される実施形態において、保管庫鍵は、マスターアプリケーション６０２によって生成される。いくつかの実施形態において、保管庫鍵は、サーバ６０１によってランダムに生成され、図６Ｂに例示されるような安全な接続（後述する）を介してマスターアプリケーション６０２に送達され得る。サーバによる保管庫鍵の生成は、サーバが保管庫鍵をキャッシュすることも可能であり、サーバへの強固な認証に基づいてマスターアプリケーションによって保管庫鍵を復旧可能である利点を有し得る。
【００８８】
図６Ｂは、いくつかの実施形態に従う、企業サーバによる保管庫鍵の作成を例示するプロセスフローの別の例を図示する。図６Ｂに例示されるプロセスは、図６Ａに例示されるステップ６１１からステップ６１７と同様に進む。ステップ６３１において、共有メモリ６０５に格納される共有保管庫を保護することに使用するために、企業サーバ６０１が保管庫鍵を提供することをマスターアプリケーション６０２が要求し得る。ステップ６３２において、企業サーバ６０１は、保管庫鍵を作成し格納し得る。ステップ６３３において、企業サーバ６０１は、作成された保管庫鍵をマスターアプリケーション６０２に戻し得る。マスターアプリケーション６０２が保管庫鍵を企業サーバ６０１から受信した後、プロセスは、図６Ａに対して上述されたステップ６１９〜６２６に続き得る。
【００８９】
図６Ｃは、共有保管庫の作成、第２の保管庫鍵レコードまたはロック解除鍵暗号化保管庫鍵を安全に格納するために第２の保管庫６０７をさらに利用する共有保管庫の使用を例示するプロセスフローの別の例を図示する。第２の保管庫６０７は、共有保管庫を安全にするために使用されるパスコードまたは他の利用者エントロピーとは異なる第２の形式のエントロピーを使用して保護され得る。例えば、第２の保管庫６０７は、指紋、網膜スキャン、声紋、または他の生体識別データ等の利用者に関連付けられた生体識別情報を使用して保護され得る。いくつかの実施形態において、第２の保管庫６０７は、例えば、ｉＯＳ機器によって提供されるＴｏｕｃｈ  ＩＤ機能を介し、利用者の指紋を使用して保護され得る。生体識別エントロピーによって保護された第２の保管庫６０７の使用は、ＰＩＮまたはパスワードを入力するよりも簡便であり得るので、利用者体験を向上し得る。図６Ｃに例示されるプロセスは、図６Ｂに例示されるステップ６１１からステップ６２６と同様に進む。
【００９０】
共有保管庫が利用者エントロピーを使用して暗号化された後、マスターアプリケーション６０２（または他のアプリケーション６０３、６０４）は、ＳＳＯレコード、例えば、ＳＳＯ鍵暗号化保管庫鍵または第２の保管庫鍵レコードを第２の保管庫６０７に書き込ませる。ステップ６４１において、利用者は、利用者に関連付けられた生体識別データ（例えば、指紋）等の第２のエントロピーを提供することによって、第２の保管庫をロック解除し得る。いくつかの実施形態において、アプリケーションは、利用者に第２のエントロピーを入力させることなく、第２の保管庫に書き込むことができ得る。ステップ６４２において、アプリケーションは、以下のように第２の保管庫の使用を介して共有保管庫をロック解除するために第２のエントロピーの使用を可能とし得る。基本的に、マスターアプリケーション６０２は、ＳＳＯレコードを第２の保管庫６０７内に格納し得る。この格納は、いくつかの実施形態において、第２の保管庫の使用がグローバルまたはアプリケーション単位のグループに共有可能であるか否かに応じて、それぞれ、保管庫作成中、及び／またはアプリケーション登録中に行われ得る。第２の保管庫６０７が全アプリケーション間（グローバル）で共有される場合、共有保管庫の作成中にＳＳＯレコード、つまりＳＳＯ鍵／ロック解除鍵暗号化保管庫鍵を第２の保管庫６０７に格納する利点があり得る。
【００９１】
アプリケーションがその後、例えば、アイドル時間期限後にＳＳＯ鍵暗号化保管庫鍵が共有保管庫から除去され、共有保管庫にアクセスを試みたときに共有保管庫がロックされることが起こった場合、アプリケーションは、ＳＳＯレコードを取得するために、第２のエントロピーを使用して第２の保管庫６０７を認証／ロック解除し得る。一旦、ＳＳＯレコードが第２の保管庫６０７から取得されると、アプリケーションは、共有保管庫の保管庫レコード保持部（例えば、保管庫レコード保持部４３０または５３０）にＳＳＯレコードを書き込むことによって、全ての登録されたアプリケーションに対し共有保管庫をロック解除し得る。
【００９２】
図７Ａは、本明細書に説明される１つ以上の例示的な態様による、共有秘密保管庫を含む登録プロセスを例示するプロセスフロー例を図示する。
【００９３】
図７Ａに例示されるように、管理されたアプリケーション６０３は、ステップ７１１において、ＰＩＮ等の利用者エントロピーを利用者に提供させ得る。管理されたアプリケーション６０３は、初回使用及び／またはシステムが電力を喪失または再起動された後において利用者にパスコードを入力させ得る。パスコードを使用して、管理されたアプリケーション６０３は、ステップ７１２において保管庫鍵をロック解除し取得することができ得る。アプリケーション６０３は、パスコードを使用して（例示される実施形態において、管理されたアプリケーション６０３に関連付けられたアプリケーションエントロピーもまた使用する）暗号化された第１の保管庫鍵レコードから復号化され得る保管庫鍵の第１のコピーを生成し得る。ステップ７１３において、アプリケーション６０３は、復号化された保管庫鍵の第１のコピーを使用して共有保管庫内の保管庫データベースをロック解除し得る。ステップ７１４において、管理されたアプリケーション６０３は、ステップ７１５において、ＳＳＯ鍵を共有保管庫から読み出し、アプリケーション固有記憶域にＳＳＯ鍵を格納し得る。ステップ７１６において、管理されたアプリケーション６０３は、管理されたアプリケーション６０３によって実施された新しい利用者エントロピーロック解除に応じてアイドル時間タイマーをリセットし得る。ステップ７１７及び７１８において、管理されたアプリケーション６０３は、共有保管庫から共通秘密を読み出し及び書き込み得る。ステップ７２０及び７２１において、管理されたアプリケーション６０３は、共有保管庫に対しアプリケーション固有秘密の読み出し及び書き込みを行い得る。管理されたアプリケーション６０３は、いくつかの実施形態において、共有保管庫がアクセスされる度にアイドル時間タイマーをリセットし得る。例えば、図示されたプロセス例において、管理されたアプリケーション６０３は、ステップ７１７、７１８、７２０、及び７２１における読み出し／書き込み動作に続き、ステップ７１９及び７２２においてアイドル時間タイマーをリセットする。
【００９４】
図７Ｂは、管理されたアプリケーション６０３が第２の保管庫６０７を使用して登録され得る実施形態を例示する。プロセスは、図７Ａにおいて例示されたものと同様に進み、プロセスはさらに、パスコードが主エントロピー（例えば、ポリシーに依存するＰＩＮまたはアクティブディレクトリパスワード）として入力されることを要求し得る。図７Ｂにおいて、例示された実施形態は、付加的に第２の保管庫鍵レコード（つまり、ＳＳＯ鍵暗号化保管庫鍵）を第２の保管庫に格納する。第２の保管庫は、例えば、利用者のパスコードではなく第２のエントロピーによって保護されるキーチェーンまたは他のオペレーティングシステム提供の安全なコンテナであり得る。例えば、ｉＯＳのｔｏｕｃｈ  ＩＤ（または他の安全なコンテナサービス）が有効とされる場合、アプリケーションの登録中にＳＳＯレコード（ＳＳＯ鍵暗号化保管庫鍵）が、管理されたアプリケーショングループ（例えば、安全なアプリケーションラッパー６０６の下のアプリケーション）に関連付けられた共有保管庫（図７Ａにおけるようなもの）及び安全なコンテナ（例えば、Ｔｏｕｃｈ  ＩＤ保護キーチェーン）の両方に格納され得る。いくつかの実施形態において、これは、利用者体験に影響を与えることなく、静かに行われ得る。
【００９５】
特に、図７Ｂに例示されるように、管理されたアプリケーションは、ステップ７３１において、任意に第２の保管庫６０７の安全なコンテナをロック解除する。ステップ７３１は、管理されたアプリケーション６０３が主利用者エントロピー（例えば、パスコード）を使用して保管庫データベースをロック解除し、ＳＳＯ鍵をアプリケーション隔離記憶域に格納した後に行われ得る。ステップ７３２において、管理されたアプリケーション６０３は、ＳＳＯ鍵暗号化保管庫鍵を第２の保管庫６０７に格納し得る。管理されたアプリケーション６０３は、その後、利用者にその第２のエントロピーを入力させ、ＳＳＯ鍵暗号化保管庫鍵を第２の保管庫６０７から取得し得る。管理されたアプリケーション６０３は、事前に格納されたＳＳＯ鍵を有することになるので、管理されたアプリケーション６０３は、第２の保管庫６０７から取得したＳＳＯ鍵暗号化保管庫鍵を使用して保管庫鍵のコピーを生成することができ得る。結果として、第２のエントロピーは、利用者にその主エントロピー（例えば、パスコード）の入力を要求することなく、ロックされた保管庫にアクセスするために使用され得る。いくつかの実装において、ステップ７３１は、キーチェーンに書き込むときには行われず、利用者体験に影響を与えることなく静かに実行され得る。いくつかの態様によると、第２の保管庫６０７に格納されたＳＳＯ鍵暗号化保管庫鍵は、保管庫レコード保持部に格納されたＳＳＯ鍵暗号化保管庫鍵がアイドル時間に応じて削除された後でさえ、残存し得る。
【００９６】
図８は、本明細書に説明される１つ以上の例示的な態様による、アイドル時間タイマーを組み込むシングルサインオンプロセスを例示すプロセスフロー例を図示する。
【００９７】
図８に例示されるように、管理されたアプリケーション６０３は、利用者に利用者エントロピーを提供させることなく保管庫鍵を復号化するために、アプリケーション固有記憶域に格納されたＳＳＯ鍵を使用し得る。管理されたアプリケーション６０３は、アイドル時間タイマーが満了しているか、または他のアイドル時間基準が満たされているかどうかを確認し得る。タイマーが満了していない、及び／または他のアイドル時間基準が満たされていないときには、管理されたアプリケーション６０３は、秘密の読み出し及び書き込みを行うために、共有保管庫６０５へのアクセスを続け得る。
【００９８】
特に、ステップ８０１において、管理されたアプリケーション６０３は、ＳＳＯ鍵をアプリケーション固有の隔離記憶域から読み出し得る。ステップ８０２において、管理されたアプリケーション６０３は、第２の保管庫鍵レコード（つまり、ＳＳＯ鍵暗号化保管庫鍵）を取得するために、共有メモリ６０５にアクセスし、第２の保管庫鍵レコードを復号化することによって保管庫鍵のコピーを生成し得る。ステップ８０３において、管理されたアプリケーション６０３は、生成された保管庫鍵のコピーを使用して保管庫鍵データベースをロック解除し、そこに格納されたデータにアクセスし得る。ステップ８０４において、管理されたアプリケーション６０３は、保管庫データベースに格納されたアイドル時間タイマーを読み出し、ステップ８０５において、アイドル時間タイマーが満了しているか否かを確認し得る。図８に例示されるプロセスにおいて、管理されたアプリケーション６０３が、アイドル時間タイマーが満了していないことを判定するとステップ８０６に進み、アイドル時間タイマーがリセットされる。ステップ８０７及び８０８において、管理されたアプリケーション６０３は、保管庫に対し共通秘密の読み出し及び書き込みを行い得る。ステップ８１０及び８１１において、管理されたアプリケーション６０３は、共有保管庫に対しアプリケーション固有秘密の読み出し及び書き込みを行い得る。管理されたアプリケーション６０３は、いくつかの実施形態において、共有保管庫がアクセスされる度にアイドル時間タイマーをリセットし得る。例えば、図示されたプロセス例において、管理されたアプリケーション６０３は、ステップ８０７、８０８、８１０、及び８１１における読み出し／書き込み動作に続いて、ステップ８０９及び８１２において、アイドル時間タイマーをリセットする。
【００９９】
図９は、本明細書に説明される１つ以上の例示的な態様による、アイドル時間に基づくロックプロセスを例示するプロセスフロー例を図示する。
【０１００】
図９に例示されるように、管理されたアプリケーション６０３は、図８に例示されるプロセスと同様、共有保管庫にアクセスするために、アプリケーション固有記憶域に格納されたＳＳＯ鍵の使用を試行し得る。ステップ９０１において、管理されたアプリケーション６０３は、ＳＳＯ鍵をアプリケーション固有の隔離記憶域から読み出し得る。ステップ９０２において、管理されたアプリケーション６０３は、第２の保管庫鍵レコード（つまり、ＳＳＯ鍵暗号化保管庫鍵）を取得するために、共有メモリ６０５にアクセス可能であり、第２の保管庫鍵レコードを復号化することによって保管庫鍵のコピーを生成し得る。ステップ９０３において、管理されたアプリケーション６０３は、生成された保管庫鍵のコピーを使用して保管庫データベースをロック解除し、そこに格納されたデータにアクセスし得る。ステップ９０４において、管理されたアプリケーション６０３は、保管庫データベースに格納されたアイドル時間タイマーを読み出し、ステップ９０５において、アイドル時間タイマーが満了しているか否かを確認し得る。例示された図９のプロセスにおいて管理されたアプリケーション６０３は、アイドル時間タイマーが満了していることを判定し得る。アイドル時間タイマーが満了している（及び／または他のアイドル時間基準が満たされている）場合、管理されたアプリケーション６０３は、ステップ９０６において、ＳＳＯ鍵暗号化保管庫鍵を削除することによって、共有保管庫を「ロック」し得る。結果として、共有保管庫データベースは、共有保管庫に登録されている全ての管理されたアプリケーション６０２、６０３、及び６０４に関してロックされ得る。格納されたＳＳＯ鍵は、利用者エントロピーが受信されＳＳＯ鍵暗号化保管庫鍵を再作成するために使用されるまで、共有保管庫にアクセスするために使用することができない。ステップ９０７において、管理されたアプリケーション６０３は、利用者に利用者エントロピーを入力させ、ステップ９０８及び９０９において、管理されたアプリケーション６０３は、前述したように共有保管庫をロック解除し、ステップ９１０において、アイドル時間タイマーをリセットする。管理されたアプリケーション６０３が共有保管庫をロック解除した後、他の登録されたアプリケーションは、中断なしで共有保管庫にアクセスするために、それらの事前に格納されたＳＳＯ鍵を使用することができるようになる（別のアイドル時間イベントが起こるまで）。例示されるように、管理されたアプリケーション６０３は、ステップ９１１、９１２、９１４、及び９１５において、共通秘密及びアプリケーション秘密の両方の読み出し及び書き込みを行うことが可能であり、アイドル時間タイマーは、ステップ９１３及び９１６において、共有保管庫がアクセスされる度にリセットされ得る。
【０１０１】
図１０Ａは、本明細書に説明される１つ以上の例示的な態様による、アイドル時間に基づくロックプロセス中の複数のアプリケーションの処理を例示するプロセスフロー例を図示する。
【０１０２】
図１０Ａに例示されるように、共有保管庫は、アイドル時間タイマーに基づいて任意の管理されたアプリケーションによってロックされ得る。例えば、マスターアプリケーション６０２によって、共有保管庫がロックされると、他の登録されたアプリケーション（例えば、管理されたアプリケーション６０３）もまた、そのそれぞれのアプリケーション固有メモリに格納されたＳＳＯ鍵を使用する共有保管庫へのアクセスが阻止される。ただし、任意のアプリケーションは、利用者に利用者エントロピーを提供させ、共有保管庫をロック解除し得る。図１０Ａに例示される例において、マスターアプリケーション６０２は、アイドル時間タイマーに基づいて共有保管庫をロックするが、利用者に利用者エントロピーを入力させ、全ての他の登録されたアプリケーションに対して共有保管庫のロック解除を行うのは管理されたアプリケーション６０３である。
【０１０３】
特にステップ１００１において、マスターアプリケーション６０２は、ＳＳＯ鍵をアプリケーション固有の隔離記憶域から読み出し得る。ステップ１００２において、マスターアプリケーション６０２は、第２の保管庫鍵レコード（つまり、ＳＳＯ鍵暗号化保管庫鍵）を取得するために、共有メモリ６０５にアクセスし、第２の保管庫鍵レコードを復号化することによって、保管庫鍵のコピーを生成し得る。ステップ１００３において、マスターアプリケーション６０２は、生成された保管庫鍵のコピーを使用して保管庫データベースをロック解除し、そこに格納されたデータにアクセスし得る。ステップ１００４において、マスターアプリケーション６０２は、保管庫データベースに格納されたアイドル時間タイマーを読み出し、ステップ１００５において、アイドル時間タイマーが満了しているか否かを確認し得る。例示された図１０Ａのプロセスにおいて、マスターアプリケーション６０２は、アイドル時間タイマーが満了していることを判定し得る。アイドル時間タイマーが満了している（及び／または他のアイドル時間基準が満たされている）場合、マスターアプリケーション６０２は、ステップ１００６においてＳＳＯ鍵暗号化保管庫鍵を削除することによって、共有保管庫を「ロック」し得る。結果として、共有保管庫データベースは、共有保管庫に登録されている全ての管理されたアプリケーション６０２、６０３、及び６０４に関してロックされ得る。格納されたＳＳＯ鍵は、利用者エントロピーが受信され、ＳＳＯ暗号化保管庫鍵を再作成するために使用されるまで共有保管庫へのアクセスに使用することができない。
【０１０４】
マスターアプリケーション６０２が第２の保管庫鍵レコードを削除し、これによって、保管庫をロックするが、管理されたアプリケーション６０３等の他のアプリケーションは、保管庫を事前にロック解除しており、ＳＳＯ鍵を格納している。第２の保管庫鍵レコードが削除されたので、他のアプリケーション６０３は、ステップ１００７において、利用者に利用者エントロピーを再入力させことを要求される。ステップ１００８及び１００９において、管理されたアプリケーション６０３は、前述されたように共有保管庫をロック解除し、ステップ１０１０において、アイドル時間タイマーをリセットし得る。管理されたアプリケーション６０３が共有保管庫をロック解除した後、他の登録されたアプリケーションは、中断なしで共有保管庫にアクセスするために、それらの事前に格納されたＳＳＯ鍵を使用することができるようになる（別のアイドル時間イベントが起こるまで）。例示されるように、管理されたアプリケーション６０３は、ステップ１０１１、１０１２、１０１４、及び１０１５において、共有秘密及びアプリケーション秘密の両方の読み出し及び書き込みを行うことが可能であり、アイドル時間タイマーは、ステップ１０１３及び１０１６において共有保管庫がアクセスされる度にリセットされ得る。
【０１０５】
いくつかの実施形態において、閉じられずにメモリ内に残存するアプリケーション（例えば、中断状態、またはバックグラウンド状態）は、アプリケーション固有メモリに格納されたデータ暗号化（Ｓ１、Ｓ２）鍵を依然として有する。このような場合において、アプリケーションが保管庫をロック解除する必要はない。例えば、管理されたメールアプリケーションは、バックグラウンドにおいて電子メールを依然として同期可能である。ただし、アプリケーションがメモリから除去され、新たに開始されたときには、保管庫は、別のアプリケーションによって既にロック解除されていない場合、ロック解除される必要があり得る。アプリケーションが利用者によって明示的に起動される場合、その後、完全認証ユーザインターフェースが表示され得る。
【０１０６】
アプリケーションがＯＳスケジューラまたは通知サービスによってバックグラウンドで新たに起動された場合に保管庫がロックされた状態であるという１つの問題があり得る。ＯＳスケジューラまたは通知サービスによるバックグラウンド起動は、機器再起動、または他のアプリケーションのためにリソースを解放する必要に応じてアプリケーションが中断後にメモリから除去されることに続いて起こり得る。この場合において、アプリケーションは、バックグラウンドのまま、利用者エントロピー用の完全なアプリケーション内認証ユーザインターフェースを表示することができず、したがって、保管庫をロック解除することができないことになり得る。例えば、通知サービスによって起動される電子メールアプリケーションは、そのメールをバックグラウンドにおいて同期することができないことになり得る。この問題を解決する１つの方法は、アプリケーションが、利用者にアプリケーションを起動することによって行動をとることを通知するローカル機器通知を発することができることである。この通知は、例えば、機器画面の上部における、機器通知領域において表示され得る。例えば、「ＷｏｒｘＭａｉｌが注意を要求しています」と表示し得る。
【０１０７】
図１０Ｂは、第２の保管庫６０７を組み込む実施形態における保管庫ロック解除プロセス及び複数のアプリケーションの処理を例示する。第２の保管庫（例えば、Ｔｏｕｃｈ  ＩＤ）が有効であり、例えば、アイドル時間タイマーの満了に応じて、保管庫がロック解除を必要とする場合、ＳＳＯレコードは、利用者に第２のエントロピーを要求することによって取得され得る。第２のエントロピーは、ＳＳＯレコードを安全なコンテナ（例えば、Ｔｏｕｃｈ  ＩＤ保護キーチェーン）から取得するために使用され得る。
【０１０８】
特に、図１０Ｂのプロセスは、図１０Ａのステップ１００１から１００６に例示されたものと同様に進み得る。ただし、管理されたアプリケーション６０３は、図１０Ａのステップ１００７のように利用者にそのパスコードまたは、代替的に、ステップ１０１９においてその第２のエントロピーを入力可能とし得る。例えば、利用者は、そのＰＩＮ（主エントロピー）の入力または指紋リーダー（第２のエントロピー）のタッチのいずれかを要求され得る。利用者がそのＰＩＮを入力する場合、その後、プロセスは、図１０Ａに説明されたように進み、第２の保管庫は、アクセスされる必要がない。利用者がその第２のエントロピーを入力する場合、ステップ１０２０において、管理されたアプリケーション６０３は、第２のエントロピーを使用して第２の保管庫６０７との認証を行う。いくつかの実施形態において、第２の保管庫６０７は、オペレーティングシステムによって管理されてもよく、管理されたアプリケーション６０３は、システムに対し、利用者に第２のエントロピーを入力させ、第２の保管庫６０７をロック解除させるために、１つ以上のＡＰＩを利用し得る。ステップ１０２１において、管理されたアプリケーション６０３は、第２の保管庫に格納された第２の保管庫鍵レコード（ＳＳＯ鍵暗号化保管庫鍵）のインスタンスを読み出し、その後、ステップ１００９において、上述されたように、共有メモリ６０５に格納された保管庫をロック解除し得る。第２の保管庫６０７に格納された第２の保管庫鍵レコードを使用して共有保管庫をロック解除すると、システムは、上述されたように、保管庫への秘密の読み出し及び書き込みを行い、アイドル時間タイマーをリセットし得る。
【０１０９】
図１０Ｃは、システムが、第２の保管庫のロック解除が失敗した場合において共有保管庫をロック解除するために、フォールバック手段を提供するプロセスフロー例を例示する。いくつかの実施形態において、システムは、第２のエントロピーが失敗した場合にデータにアクセスすべく、利用者に他の方法を可能とするために、フォールバック手段を提供し得る。例えば、システムが、利用者の指紋を読み取ることに不具合がある場合、システムは、利用者に機器パスコード（共有保管庫を復号化するために使用される利用者エントロピーパスコードとは異なり得る）を入力させ得る。例えば、ｉＯＳプラットフォームにおいて、Ｔｏｕｃｈ  ＩＤプロンプトから機器パスコードプロンプトへのフォールバックが、起こり得る。利用者が機器パスコードを提供することができる場合、システムは、第２の保管庫をロック解除し、第２の保管庫鍵レコードへのアクセスを提供し得る。他の実装において、動作条件に応じて選択され得るが、安全なアプリケーションラッパー６０６及び／または管理されたアプリケーション６０３が、システムが機器パスコードへのフォールバックを用いることを阻止し、代わりに、保管庫を暗号化するために使用されたパスコードを利用者が入力することを要求し得る。これは、機器パスコードの強度（長さ及び複雑さ）を保証することができず、一方で共有保管庫を保護するために使用される利用者エントロピーパスコードの強度ポリシー要求が、企業サーバ６０１によって管理され、マスターアプリケーション６０２によって強制され得る実施形態において有益であり得る。
【０１１０】
特に、図１０Ｃのプロセスは、図１０Ｂのステップ１００１から１０２０に例示されるものと同様に進み得る。ただし、図１０Ｃに例示されるように、第２の保管庫との認証がステップ１０２３において失敗し得る。ステップ１０２４において、管理されたアプリケーション６０３は、利用者に第２のエントロピーが失敗したことを通知し、共有保管庫をロック解除するために、利用者にそのパスコード（主エントロピー）を入力させ得る。ステップ１０２５において、管理されたアプリケーション６０３は、パスコード（及び、例示された実施形態において、アプリケーションエントロピー）を使用して保管庫鍵のコピーを生成することによって共有保管庫をロック解除し得る。特に、前述したように、保管庫鍵のコピーを生成するために、管理されたアプリケーション６０３は、利用者エントロピー暗号化保管庫鍵レコードまたはパスコード暗号化保管庫鍵レコード４３２であり得る第１の保管庫鍵レコード、あるいは、例示された実施形態において、アプリケーション６０３用のアプリケーション固有エントロピーとの組み合わせの利用者エントロピー（パスコード）を使用して暗号化され得る複数のアプリケーション単位の保管庫鍵レコード４３４の１つを使用し得る。その後、図１０Ｂと同様、ステップ１００９において、システムは、ＳＳＯ鍵暗号化保管庫鍵レコードを生成し保管庫レコード保持部に書き込むことによって、全ての登録され管理されたアプリケーション用の保管庫データベースをロック解除し得る。システムは、上記のように、保管庫に対する秘密の読み出し及び書き込みを行い、アイドル時間タイマーをリセットし得る。
【０１１１】
図１１Ａは、本明細書に説明される１つ以上の例示的な態様による、ＰＩＮ更新プロセスを例示するプロセスフロー例を図示する。
【０１１２】
図１１Ａに例示されるように、マスターアプリケーション６０２は、利用者にそのＰＩＮまたは他の利用者エントロピーを変更可能とし得る。ステップ１１０１において、マスターアプリケーション６０２は、利用者にその古いＰＩＮを提供させ得る。ステップ１１０２において、マスターアプリケーション６０２は、現行／古いパスコードに関連付けられたＰＩＮ検証ツールを読み出し、ステップ１１０３において、利用者にそのＰＩＮを変更することを可能とする前に古いＰＩＮを検証し得る。マスターアプリケーション６０２は、ステップ１１０４において新しいＰＩＮを受信し得る。ステップ１１０５において、マスターアプリケーション６０２は、新しいＰＩＮ検証ツールを生成し、ステップ１１０６において、新しいＰＩＮ検証ツールと共に共有保管庫６０５を更新し得る。ステップ１１０７において、マスターアプリケーション６０２は、古いＰＩＮ（及び、例示された実施形態において、アプリケーションエントロピー）を使用して第１の保管庫鍵レコード（つまり、パスコード暗号化保管庫鍵レコード）を復号化することによって保管庫をロック解除し得る。そして、例示された実施形態において、マスターアプリケーション６０２は、各インストール済みアプリケーション用の新たに暗号化された保管庫鍵レコードを生成し、ステップ１１０８において、新たに生成された新しいＰＩＮ暗号化保管庫鍵を共有メモリ６０５に書き込み得る。前述したように、各アプリケーション用の保管庫鍵レコードは、アプリケーションエントロピー及び利用者エントロピーを使用してさらに暗号化され得る。他の実施形態において、単一の新たに暗号化された保管庫鍵レコードが生成され、新しい利用者エントロピーによって暗号化され得る。
【０１１３】
いくつかの実施形態において、利用者がその古いＰＩＮを忘れた場合において、マスターアプリケーション６０２は、利用者に強固な認証を使用してサーバに再加入し、全体の共有保管庫を再作成することを要求し得る。全体の共有保管庫を再作成することは、結果として、利用者が共通及びアプリケーション固有アセットを失うことをもたらし、これは利用者体験に混乱を引き起こし得る。他の実施形態において、図１１Ｂに例示されるように、ステップ１１０９において、利用者がその古いＰＩＮを忘れる、または失敗したＰＩＮ入力のポリシー定義制限に達した場合、マスターアプリケーション６０２は、共有保管庫を企業サーバ６０１から復元し得る。マスターアプリケーション６０２は、利用者に強固な認証（アクティブディレクトリ（ＡＤ）パスワードまたは二要素認証）を入力させる。ステップ１１１０において、マスターアプリケーション６０２は、利用者をサーバに認証し得る。ステップ１１１１において、マスターアプリケーション６０２は、保管庫鍵を要求することによって、サーバによって事前に生成され、サーバにキャッシュされた保管庫鍵を復旧し得る。企業サーバ６０１は、ステップ１１１２において、格納された保管庫鍵のコピーを取得し、ステップ１１１３において、格納された保管庫鍵をマスターアプリケーションに提供し得る。ステップ１１１４において、マスターアプリケーション６０２は、利用者に新しいＰＩＮを設定させ得る。ステップ１１１５〜１１１７において、マスターアプリケーションは、図１１Ａのステップ１１０５、１１０６及び１１０８に関して前述されたように、利用者体験に混乱を引き起こすことなく、新しいＰＩＮと共に共有保管庫を更新し得る。
【０１１４】
いくつかの実施形態において、アクティブディレクトリ（ＡＤ）パスワード等のパスワードは、利用者エントロピーとして使用され得る。ＡＤパスワードを使用することの１つの潜在的な利点は、利用者がその機器上で利用者エントロピーとして使用する別個のパスコードを設定しなくてもよいことであり得る。他の実施形態において、前述のように、ＰＩＮは、利用者のＡＤパスワードとは異なって使用され得る。別個のＰＩＮの１つの利点は、それがサーバに格納されず、他のシステムまたは機器によって使用されず、したがって、潜在的な攻撃対象を低減し得ることである。別個のＰＩＮはまた、管理者によって設定される異なる強度（長さ及び複雑さ）ポリシー要求を有し得る。管理者は、利用者に対し、長い英数字のＡＤパスワードよりも覚えやすい簡素なＰＩＮを設定可能とし得る。ＡＤパスワードが利用者エントロピー用に使用される実施形態は、特有の課題を提示し得る。利用者のＡＤパスワードが、利用者が任意のその機器から認証されたアプリケーションまたはサーバにログインした後にＡＤサービスと共に変更され得る。ＡＤパスワードが、加入した利用者機器上で利用者エントロピーとしても使用される場合、その後、パスワードの最新版をその機器上の保管庫と同期する必要性が生じ得る。
【０１１５】
いくつかの実施形態において、図１１Ｃに例示されるように、企業サーバ６０１は、利用者のアクティブディレクトリパスワードに対する変更を通知され、これに従って共有保管庫を更新し得る。特に、ステップ１１２０において、企業サーバ６０１は、利用者パスワード変更に対するイベント通知を受信するために、アクティブディレクトリサービス６１１に登録し得る。ステップ１１２１において、利用者は、任意のその機器から認証されたアプリケーションまたはサービスにログインし、ＡＤパスワード変更を完了し得る。ステップ１１２２ａにおいて、ＡＤサービス６１１は、その後、パスワード変更の通知を企業サーバ６０１に発し得る。ステップ１１２２ｂにおいて、企業サーバ６０１は、利用者によって加入されたマスターアプリケーション６０２に通知を送信し得る。ステップ１１２３において、マスターアプリケーション６０２は、その後、共有メモリ６０５に格納された共有保管庫をロック解除するために古いパスワードが使用されることを阻止すべく、古いパスワード検証ツールを無効化し得る。ステップ１１２４において、マスターアプリケーション６０２は、アクティブディレクトリ（ＡＤ）パスワードまたは二要素認証等の強固な認証を利用者に入力させ、ステップ１１２５において、利用者を企業サーバ６０１に認証し得る。ステップ１１２６において、マスターアプリケーション６０２は、保管庫鍵を要求することによって、サーバによって事前に生成され、サーバにキャッシュされた保管庫鍵を復旧し得る。企業サーバ６０１は、ステップ１１２７において、格納された保管庫鍵のコピーを取得し、ステップ１１２８において、格納された保管庫鍵をマスターアプリケーションに提供し得る。ステップ１１２９において、マスターアプリケーション６０２は、変更されたアクティブディレクトリパスワード用の新しいパスワード検証ツールを作成し得る。ステップ１１３０及び１１３１において、マスターアプリケーション６０２は、図１１Ａのステップ１１０６及び１１０８に関して前述されたように、共有保管庫を新しいパスワードと共に更新し得る。
【０１１６】
本明細書に前述されたように、いくつかの実施形態は、安全性及び利用者体験の好みに基づいて異なるポリシー及びモードを提供し得る。異なるポリシー形式は、いくつかの実施形態において、共有保管庫の異なる部分に格納され得る。例えば、グローバルポリシーは、共有保管庫の共通共有秘密部に格納され得る。アプリケーション単位のポリシーは、それぞれのアプリケーションに関連付けられたアプリケーション固有記憶域に格納され得る。安全性グループ単位のポリシーは、安全性グループに含まれた各々のアプリケーションのアプリケーション固有記憶域に格納され得る。安全性グループ単位のポリシーによる同期問題は、いくつかの実施形態において、共有保管庫に格納された共有秘密におけるフラグを使用して解決され得る。
【０１１７】
図１２Ａ及び１２Ｂは、本明細書に説明される１つ以上の例示的な態様による、分散認証プロセスを例示するプロセスフロー例を図示する。
【０１１８】
図１２Ａに示されるように、本明細書に記載される共有保管庫のいくつかの実施形態は、管理されたアプリケーションが、共有アクセスゲートウェイチケット、証明書、ＳＡＭＬトークン、ＶＰＮスタック情報等を介して認証状態を効果的に共有可能である分散認証を可能とし得る。図６Ａ、図６Ｂ及び図６Ｃのように、マスターアプリケーションは、共有保管庫を作成し、証明書及び共有／共通ポリシーを含むように共有保管庫を更新し得る。１つ以上のアプリケーションは、利用者に利用者エントロピーを入力させ、アプリケーションは、共有保管庫に登録し得る。一旦、登録されると、アプリケーション（例えば、例示されるようなアプリケーションｉ）は、認証を行い、１つ以上の企業サーバ及びリソースからアプリケーション固有秘密等のデータを取得するために、共有保管庫に格納された証明書を利用し得る。
【０１１９】
特に、ステップ１２０１において、マスターアプリケーション６０２は、利用者に強固な認証を提供させ得る。強固な認証を使用することで、ステップ１２０２において、マスターアプリケーションは、企業サーバ６０１に加入し、機器を管理されたフレームワーク内に登録し得る。ステップ１２０３において、企業サーバ６０１は、共有保管庫を作成し、機器上でその使用を可能とすることに使用するために、関連する証明書、ポリシー等と共にマスターアプリケーション６０２を提供し得る。ステップ１２０４において、マスターアプリケーション６０２は、共有保管庫を安全にすることに使用されるように、利用者にパスコードまたは他の利用者エントロピーを設定させ得る。ステップ１２０５において、マスターアプリケーション６０２は、共有秘密保管庫を作成し、保管庫をロック解除するためにＳＳＯ鍵を格納し得る。いくつかの実施形態において、企業サーバ６０１は、共有保管庫の作成に使用するために保管庫鍵をマスターアプリケーション６０２に提供し得る。他の実施形態において、マスターアプリケーション６０２は、生成された保管庫鍵自身であり得る。ステップ１２０６において、マスターアプリケーション６０２は、証明書、ポリシー、及び他の管理されたアプリケーションによる共有アクセスにために企業サーバ６０１から受信された他のデータを含むように共有保管庫を更新し得る。ステップ１２０７において、管理されたアプリケーション６０４は、利用者にそのパスコードを入力させ、ステップ１２０８において、保管庫に登録し得る。ステップ１２０９において、別の管理されたアプリケーション６０３は、利用者にそのパスコードを入力させ、ステップ１２１０において、保管庫に登録し得る。管理されたアプリケーション６０３は、ステップ１２１１において、利用者のパスコードを使用して、及び／または次回においてＳＳＯ鍵を使用して、復号化された保管庫を有するメモリ６０５に格納された証明書及び共通ポリシーを読み出し得る。管理されたアプリケーション６０３は、ステップ１２１２において、共有保管庫に格納された証明書を使用して企業サーバ６０１と認証し得る。ステップ１２１３において、企業サーバ６０１は、アプリケーション固有秘密及びポリシーと共に、管理されたアプリケーション６０３を提供し得る。ステップ１２１４において、管理されたアプリケーション６０３は、アプリケーション固有秘密をアプリケーション固有記憶域に格納し得る。いくつかの実施形態において、アプリケーション固有秘密は、それぞれのアプリケーションによって使用するために隔離されたシステムメモリに格納され得る。他の実施形態において、システムは、アプリケーション固有秘密を共有メモリ６０５における共有保管庫の一部に格納し得るが、それぞれのアプリケーションに既知のアプリケーションエントロピーを使用して暗号化され得る。
【０１２０】
図１２Ａは、図１２Ｂのように続き、１つのアプリケーションが、高度な保証認証を完了し、企業リソースにアクセスするための長期間アクセスゲートウェイチケットを取得する。このチケットは、他の登録されたアプリケーションに対しても利用可能となり得る。
【０１２１】
図１２Ｂに例示されるように、管理されたアプリケーション６０３は、ステップ１２１５において、共有保管庫をロック解除するために使用されるパスコードではなく、認証証明書を利用者に提供させ得る。ステップ１２１６において、管理されたアプリケーション６０３は、ゲートウェイ６０８と高度な保証認証手続を実行し、ステップ１２１７において、アプリケーションが企業リソースにアクセスすることを可能とするゲートウェイチケットを取得し得る。管理されたアプリケーションは、ステップ１２１８において、共有保管庫にゲートウェイチケットを格納し得る。管理されたアプリケーション６０３は、ステップ１２２０及び１２２１においてゲートウェイ６０８を介して企業リソース６０９にアクセスするためにチケットを使用し得る。共有保管庫に登録された別の管理されたアプリケーション６０４は、ステップ１２２２において、ゲートウェイチケットにアクセスし、ステップ１２２３において、その認証状態を更新し、ステップ１２２４及び１２２５において、同様に、ゲートウェイ６０８を介して企業リソース６０９にアクセスするために共有ゲートウェイチケットを使用し得る。結果として、管理されたアプリケーションは、別の管理されたアプリケーションにおいて既に提供された認証情報を利用者に再入力させることなく、認証を必要とする企業リソースを利用者に提供することができ得る。
【０１２２】
いくつかの実施形態において、分散認証は、企業／モバイルアプリケーション管理アプリケーションの各ラインのコンテキストにおいて認証マネージャインスタンスに構築またはラップを行うことによって提供され得る。認証マネージャは、例えば、レイヤを使用して設計され得る。１つのレイヤは、認証プロンプト及び通知用のユーザインターフェースコールバックを扱い得る。別のレイヤは、コア認証状態管理を提供し得る。別のレイヤは、秘密保管庫の共有記憶域内外における状態整理を提供し得る。また別のレイヤは、ネットワーク通信を提供し得る。この設計は、サーバリソースが無くならない限り、与えられたサーバリソース用の付加的な認証プロンプトが無いことを保証し得る。更なる利用者体験として、いくつかの実施形態において、認証ＵＩは、企業／モバイルアプリケーション管理アプリケーションの各ラインのコンテキスト内に構築またはラップ可能であり、このためサーバリソースが無くなるときでさえ、認証は、ＷｏｒｘＨｏｍｅ等のマスターアプリケーションへのフリップを必要とすることなく、そのときに使用されるアプリケーションにおいて実施可能である。結果として、いくつかの実施形態において、マスターアプリケーションは、完全に除去され得る、または、例えば、加入、アプリケーションストア、技術サポート等の限定された目的のみに使用され得る。いくつかの実施形態において、いくつかの管理されたアプリケーションは、埋め込まれた認証ユーザインターフェースを組み込み、他は、マスターアプリケーションに依拠し得る。
【０１２３】
本明細書に記載される１つ以上の態様による、共有保管庫を使用する分散認証は、付加的な機能用の基盤またはプラットフォームを提供し得る。例えば、いくつかの実施形態は、各アプリケーションからの独立及びサイレントポリシーリフレッシュを提供し得る。他の実施形態は、ポリシーに基づいて、アプリケーション単位の基盤、またはアプリケーショングループ基盤上でステップアップ認証を提供し得る。いくつかのシステムにおいて、例えば、多要素認証を有する分離ゲートウェイが設定され、全てのアプリケーションは、より厳しい認証に引き上げられなければならない。また他の実施形態において、ポリシーに基づいて、アプリケーション単位、またはアプリケーショングループ基盤上で複数のマイクロＶＰＮを提供し得る。
【０１２４】
他の実施形態は、共有機器における複数の利用者に対するサポートを提供し得る。本明細書に前述したように、機器は、１つよりも多い共有保管庫を含み得る。機器は、機器の各利用者に対する共有保管庫を含むことが可能であり、個々のアプリケーションは、１人よりも多い利用者用の共有保管庫に登録され得る。機器上の全体の管理されたフレームワークは、新しいパスコードまたは利用者の切り替えが起こったことを示す他の情報によって示される利用者の変更に適合し得る。例えば、第１の利用者用の共有保管庫は、第１の利用者が機器を使用しそのパスコードを入力している間、有効となり得る。利用者は、機器を第２の利用者に渡し、第２の利用者は、そのパスコードを入力し得る。第１のユーザは、ログオフをしようとすることをシステムに示す。付加的及び／または代替的に、機器は、異なる利用者のパスコードが入力されたことを検出し、新しい利用者に関連付けられた適切な共有保管庫に移行するためにコンテキストスイッチを開始し得る。機器は、付加的な保護を提供するために、パスコードに加えて付加的な認証情報を必要とし得る。一実装例として、複数の共有保管庫が、病院で使用されるモバイル機器上に提供され、医師及び看護師によって共有され得る。機器上のアプリケーションは、１つ以上の共有保管庫との登録を行い、使用中の利用者に関連付けられたパスコードに基づいてコンテキストを移行し得る。
【０１２５】
また他の実施形態は、企業が独立したモバイルアプリケーションを使用してその顧客に安全な情報を提供することを求める、企業対消費者間の使用ケースをサポートし得る。いくつかの実施形態は、単一マスターアプリケーションのアプリケーション管理の独立性を可能とし、顧客及びエンドユーザに、より受容可能となり得る。
【０１２６】
いくつかの実施形態は、本明細書に記載される１つ以上の態様によって、仮想スマートカードを提供し得る。ウィンドウズ（登録商標）フォンオペレーティングシステムを動作する機器のような、いくつかのプラットフォームにおいて、トラステッドプラットフォームモジュール（ＴＰＭ）が、仮想スマートカードの実装に使用可能である。ｉＯＳ及びアンドロイドオペレーティングシステムを動作する機器のような、他のプラットフォームにおいて、仮想ＴＰＭが、共有秘密保管庫の一部として構築可能である。仮想スマートカードの実装は、共有保管庫に格納されたＰＩＮ暗号化スマートカードを保護するための付加的な安全性機能を組み込み得る。付加的な安全機能は、改ざん保護及びコード難読化を提供し、ＶＳＣが複製不能であることを保証し（例えば、暗号化用の強固な機器エントロピーの使用を介して）、強固な加入方式を提供し、複数の失敗したアクセス試行後に機器へのアクセスをブロックし得る。ブロック機能は、正当な利用者に対する利用者体験への影響の最小化を提供するように強固なロック解除策に結合され得る。
【０１２７】
いくつかの実施形態による、仮想スマートカードは、スマートカードハードウェア（リーダー、カード）及びソフトウェア（暗号化サービスプロバイダ［ＣＳＰ］）のインストールを必要としないスマートカードの利点を提供し得る。本明細書に記載されるいくつかの実施形態は、ハードウェアサポートを有しないプラットフォーム、及び低安全性制限（例えば、仮想ＴＰＭ、ＯＳメモリに格納されたカードデータ）の受容を希望する顧客を仮想スマートカードに可能とし得る。いくつかの実施形態は、改善された認証の粒度（例えば、アプリケーション単位、またはグループ単位）、安全性、及び利用者体験を提供し得る。ただし、いくつかの実施形態において、仮想スマートカードは、仮想スマートカード認証が機器自身ではなくサーバに対するものとして、オンライン認証ケースに制限され得る（いくつかの実施形態において、機器「が」スマートカードである）。
【０１２８】
上記のように、本明細書に記載される１つ以上の実施形態は、任意の適切なオペレーティングシステムを動作する機器上に実装され得る。例えば、ｉＯＳ機器は、共有保管庫の実装において、ペーストボード、Ｉ／Ｏ面（ＧＰＵメモリ）、またはシステムログデータ構造を利用し得る。別の例として、アンドロイド機器は、本明細書に記載される１つ以上の態様を実装するために、活動を介してＷｏｒｘＨｏｍｅ等のマスターアプリケーションのサービスを利用し、呼び出しアプリケーションの信頼性を確認するために証明書を利用し得る。ウィンドウズ（登録商標）フォン機器において、機器は、共有保管庫を実装するために、写真ライブラリディレクトリ内の共有ファイルを利用し得る。ウィンドウズ（登録商標）８．１（ＷｉｎＲＴ）機器において、企業アプリケーションのライン用のローカルホストループバックが使用され得る。別の実施形態において、ウィンドウズ（登録商標）８．１機器は、デスクトップアプリケーションと共有され得るモバイル機器管理フレームワーク及び／またはサービスを介して設定可能なサービスを利用し得る。デスクトップアプリケーションとの共有データは、物理的スマートカードの使用のような、付加的な利点を提供し得る。別の実施形態において、ウィンドウズ（登録商標）１０機器は、本明細書に記載される１つ以上の態様を実装するために、ＷｏｒｘＨｏｍｅ等のマスターアプリケーションのアプリケーションサービスを利用し得る。
【０１２９】
ｉＯＳにおける実施形態例において、共有保管庫は、ペーストボードデータ構造を使用して実装され得る。ｉＯＳオペレーティングシステムは、実施形態例において使用され得る２つの形式のペーストボード、つまり、持続的であるが他のアプリケーションによって意図せず消去され得るＵＩＰａｓｔｅｂｏａｒｄＮａｍｅＧｅｎｅｒａｌと、持続的であり、他のアプリケーションによって意図せず消去され難いＵＩＰａｓｔｅｂｏａｒｄＮａｍｅＦｉｎｄと、を提供する。実施形態はまた、共有Ｉ／Ｏ面（ＧＰＵメモリにおける）を利用し得る。このデータ構造は、揮発性であり、権利付与することなくアプリケーションによって自由に利用可能であり得る。このデータ構造の寿命は、計画的漏洩を使用して制御され得る。使用され得る別のｉＯＳデータ構造は、カスタムバイナリデータ形式をサポートするシステムログである。ｉＯＳにおける別の実施形態例において、共有保管庫は、同一利用者プロファイルによって証明されたアプリケーションにアクセスが制限された、キーチェーン保護された名前付きペーストボードに実装され得る。これらのデータ構造の各々は、いくつかの実施形態が実装され得る方法の非限定的な例を提供する。
【０１３０】
図２は、共有保管庫２１０をモバイル機器２００に格納されるとして例示しているが、いくつかの実施形態は、共有保管庫の全部または一部をオンラインに格納してもよい。これは、待機時間及び信頼性の課題を受け得るが、共有持続性記憶域または共有揮発性記憶域へのアクセスを提供しないクライアントプラットフォームにおける有用な選択となり得る。さらに、いくつかのクライアントＯＳにおいて、そしていくつかの実施形態において、オンラインの選択はまた、ローカル実装に対する承認として有用となり得る。オンライン共有保管庫は、明示的な再認証またはマスターアプリケーションへのフリップを必要とすることなく、保管庫管理レコード及び共通アセット用のシームレス復元地点を提供し得る。例えば、いくつかのクライアントＯＳにおいて、共有保管庫は、別のアプリケーションによって意図せず消去され得る（例えば、ｉＯＳ上で通常のコピー／ペーストペーストボードが、共有保管庫の提供に使用される場合）。いくつかのクライアントＯＳにおいて、揮発性共有メモリのみが利用可能であり、機器の再起動に続いて、保管庫管理レコード及び共有アセットが失われ、再作成されることが必要となり得る。
【０１３１】
本明細書に記載されるいくつかの態様によると、共有保管庫の全部、または共有保管庫の一部をオンラインに格納することは、いくつかの付加的な機能をサポートし得る。いくつかの実施形態において、利用者のパスコードは、オンラインに格納可能である、一方で共有保管庫は、ローカルに格納されたままとなり得る。いくつかの実施形態において、共有保管庫は、ウェブサーバでサーバペーストボードデータ構造上に格納され得る。いくつかの実施形態において、共有保管庫は、分割記憶域モード（図５に示されるような）に実装可能であり、保管庫管理レコード及び共有秘密は、サーバ上に格納可能であり、一方で、アプリケーション固有秘密は、ローカルに格納され得る。他の実施形態において、サーバは、共有保管庫のコピーをキャッシュされた復元地点として格納し得る。機器はまた、共有保管庫をローカルに格納可能であるが、ローカル共有保管庫になされる更新は、サーバ上に複製され、サーバのコピーは、それが喪失または除去された場合に共有保管庫をローカルに復元するために使用され得る。
【０１３２】
いくつかの実施形態において、簡易的に上述されるように、サーバは、利用者のパスコードを格納可能であり、一方で、共有保管庫は、機器上にローカルに格納されたままとなり得る。一実施形態例は、安全なアプリケーションラッパー内の全ての管理されたアプリケーション間で利用者エントロピー（パスコード）を共有するために、企業広域のグローバルに利用可能なペーストボードサービスを使用し得る。保管庫自身は、機器上のローカルに実装されたままとなり得る。
【０１３３】
図１３は、本明細書に説明される１つ以上の例示的な態様による、ウェブサーバにおける保管庫作成プロセスを例示するプロセスフロー例を図示する。初回使用中において、ＤＰＵＢ及びＤＰＲＩＶの非対称鍵対が作成され得る。鍵対は、安全なアプリケーションラッパー６０６内の全てのアプリケーションに利用可能とされ得る。いくつかの実施形態において、企業サーバ６０１等のサーバは、鍵を作成し、それをラッピング時にアプリケーションに埋め込み得る。ただし、この実施形態は、アプリケーションがハッキングされた場合に可逆的であり得る。他の実施形態において、サーバは、鍵を作成し、それを利用者展開にあたりリアルタイムにアプリケーションに埋め込み得る。この実施形態は、付加的な安全性を提供し得る。また他の実施形態において、モバイル機器上のマスターアプリケーションは、鍵を作成し、安全なＩＰＣを介した初回使用中に他の管理されたアプリケーションにそれを渡し得る。これは、ウィンドウフォン機器等の安全なＩＰＣを有するプラットフォーム上で実行可能であり得る。他の実施形態において、モバイル機器上のマスターアプリケーション（または第１の管理されたアプリケーション）１３１０は、鍵を作成し、アプリケーション登録モデル及びローカル共有保管庫を使用して他のモバイルアプリケーションとそれを安全に共有し得る。
【０１３４】
いくつかの実施形態において、ステップ１３３１で機器上のマスターアプリケーションまたは第１の管理されたアプリケーション１３１０は、エンドユーザの証明書を使用して組織のペーストボードサービス６１０に認証し、新しい公開鍵であるＤＰＵＢを登録することによって、固有ペーストボードＧＵＩＤ（例えば、ＵＲＬ）を要求し得る。ＨＴＴＰ  ＣＲＵＤ規定を前提とすると、ＨＴＴＰ  ＰＯＳＴが、このステップを完了可能である。ＤＰＵＢ鍵は、ペーストボードサービス６１０のウェブハンドラ１３２１に投稿され得る。ステップ１３３２において、ウェブハンドラ１３２１は、公開鍵ＤＰＵＢを持続性格納部１３２２に保存し、アプリケーション１３１０（及び他の管理されたアプリケーション）による使用のために持続性ペーストボード用の固有ＧＵＩＤを取得し得る。ペーストボードサービス６１０は、管理されたアプリケーション用の固有ＧＵＩＤ（ＵＲＬ）を生成し、ＧＵＩＤは、ステップ１３３３において、ウェブハンドラ１３２１によって取得され得る。ステップ１３３４において、ウェブハンドラ１３２１は、アプリケーション１３１０に応答して、この固有位置を返し得る（例えば、「ｈｔｔｐｓ：／／ｍｙ．ｏｒｇ／ｍｄｘｐａｓｔｅｂｏａｒｄ／｛ＧＵＩＤ｝」）。機器上の管理されたアプリケーションは、ここで、暗号化されたデータを格納及び共有するために使用し得る。
【０１３５】
図１４は、本明細書に説明される１つ以上の例示的な態様による、パスコード取得プロセスを例示するプロセスフロー例を図示する。いくつかの実施形態において、管理されたアプリケーションは、利用者エントロピー（パスコード情報）を他の管理されたアプリケーションと共有するために、例示されるステップを実施し得る。ステップ１４０１において、第１の管理されたアプリケーション１３１０は、利用者エントロピー（パスコード）をＤＰＵＢによって暗号化し、結果物をＤＰＵＢと共に中央ペーストボードサービス６１０に送信し得る。第１の管理されたアプリケーション１３１０は、パスコードを公開鍵によって暗号化し、これによってＤＰＵＢ｛パスコード｝を生成し得る。第１の管理されたアプリケーション１３１０は、公開鍵及び暗号化されたパスコードである［ＤＰＵＢ，ＤＰＵＢ｛パスコード｝］からなるペイロードを作成し得る。第１の管理されたアプリケーション１３１０は、ペーストボードサービス６１０のウェブハンドラ１３２１にペイロードをアップロードし得る。ステップ１４０２において、ペーストボードサービス６１０は、ＧＵＩＤ及びペイロード（例えば、公開鍵及び暗号化された利用者エントロピー）を持続性格納部１３２２に格納し得る。いくつかの実施形態において、初回使用時のペーストボードサービスは、公開鍵、ＤＰＵＢが、ペーストボード作成中に登録された鍵に一致することを保証する確認を行うことができる。ステップ１４０３及び１４０４において、ペーストボードサービス６１０は、承認メッセージを生成し、メッセージをアプリケーション１３１０に送信し得る。
【０１３６】
利用者エントロピー（パスコード）を取得するために第２のアプリケーション１３１３に対し、第２のアプリケーション１３１３は、秘密鍵であるＤＰＲＩＶの所有をペーストボードサービス６１０に証明することを要求され得る。第２の管理されたアプリケーション１３１３は、ステップ１４０５において、ＧＵＩＤを使用してペーストボードサービスから暗号化された利用者エントロピー（パスコード）を要求することを試行し得る。ペーストボードサービス６１０は、ＤＰＵＢによって暗号化されたチャレンジ（ノンス）を通して、ＤＰＲＩＶの所有を証明するために、第２の管理されたアプリケーションを検証し得る。ステップ１４０６において、ウェブハンドラ１３２１は、ペーストボードサービス６１０にアクセスするために使用された特定ＧＵＩＤに対するチャレンジを要求し得る。ステップ１４０７において、ペーストボードサービス６１０は、ＤＰＵＢによって暗号化されたチャレンジ（ノンス）を生成し得る。ステップ１４０８及び１４０９において、ペーストボードサービス６１０は、ウェブハンドラ１３２１を介してチャレンジを第２の管理されたアプリケーション１３１３に提供する。ステップ１４１０において、第２の管理されたアプリケーション１３１３は、ＤＰＲＩＶを使用してチャレンジを復号化し、それを変換し、その後、ＤＰＲＩＶを使用してそれを再暗号化し得る。ステップ１４１１において、第２の管理されたアプリケーション１３１３は、チャレンジレスポンスをペーストボードサービス６１０に送信し得る。ペーストボードサービス６１０は、ステップ１４１２及び１４１３において、チャレンジレスポンスを復号化し、チャレンジ（ノンス）における変換を確認し得る。チャレンジレスポンスが成功である場合、ペーストボードサービス６１０は、ステップ１４１４及び１４１５において、ウェブハンドラ１３２１を介して、暗号化された利用者エントロピーを第２の管理されたアプリケーションに送信し得る。第２の管理されたアプリケーション１３１３は、その後、ステップ１４１６において、パスコードを復号化し、利用者に入力させることなく共有保管庫へのアクセスを獲得し得る。
【０１３７】
図１５は、本明細書に説明される１つ以上の例示的な態様による、パスコード更新プロセスを例示するプロセスフロー例を図示する。パスコードを更新するために、いくつかの実施形態において、管理されたアプリケーション１３１０は、ステップ１５０１において、暗号化されたパスコードを更新する要求を発し得る。ペーストボードサービス６１０は、ＤＰＵＢによって暗号化されたチャレンジ（ノンス）を通して、ＤＰＲＩＶの所有を証明するために、管理されたアプリケーション１３１０を検証し得る。ステップ１５０２において、ウェブハンドラ１３２１は、ペーストボードサービス６１０にアクセスするために使用された特定ＧＵＩＤに対するチャレンジを要求し得る。ステップ１５０３において、ペーストボードサービス６１０は、ＤＰＵＢによって暗号化されたチャレンジ（ノンス）を生成し得る。ステップ１５０４及び１５０５において、ペーストボードサービス６１０は、ウェブハンドラ１３２１を介してチャレンジを管理されたアプリケーション１３１０に提供する。ステップ１５０６において、管理されたアプリケーション１３１０は、ＤＰＲＩＶを使用してチャレンジを復号化し、それを変換し、その後、ＤＰＲＩＶを使用してそれを再暗号化し得る。ステップ１５０７において、管理されたアプリケーション１３１０は、チャレンジレスポンスをペーストボードサービス、及び更新され暗号化された新しい利用者エントロピー（パスコード）、ＤＰＵＢ｛新しいパスコード｝に送信し得る。ペーストボードサービス６１０は、ステップ１５０８及び１５０９において、チャレンジレスポンスを復号化し、チャレンジ（ノンス）における変換を確認し得る。チャレンジレスポンスが成功である場合、ペーストボードサービスは、更新された固有ＧＵＩＤに対応する利用者エントロピー（パスコード）を更新し得る。ステップ１５１０及び１５１１において、ペーストボードサービスは、承認メッセージを管理されたアプリケーション１３１０に送信し得る。
【０１３８】
このような構成（利用者パスコードをサーバに格納すること）は、いくつかの実施形態において、エンドユーザに入力させることなく、アプリケーション間における利用者エントロピーの共有を提供し得る。オフラインフェールバックは、利用者にそのパスコードを入力させることとなり、簡素であり得る。ただし、このようなオンライン構成は、待機時間の課題及びネットワークリソースの利用不可能性等の典型的な問題を受け得る。さらに、オンラインペーストボードは、攻撃者に対し別の手段を提供し得る。これを防止するために、サーバは、ペーストボードにアクセスするために認証の別のレイヤを必要とし得る。
【０１３９】
簡潔に上述されたように、いくつかの実施形態は、共有保管庫をサーバにおいて格納し得る。この設計選択は、共有保管庫が共有記憶域としてサーバペーストボード上に格納されることを除き、ローカル保管庫設計と同様であり得る。サーバペーストボードの管理は、前節に記載されたものと同様である。ペーストボード作成ステップは、同一である。初回使用の最後において、管理されたアプリケーションは、データを格納するために使用され得るペーストボードＵＲＬを有し得る。ただし、この変形において、ペーストボードによって格納されたデータは、機器公開鍵及び共有秘密保管庫であり得る。全ての他の動作は、上述されたものと同様であり、ここでは繰り返さない。このような構成は、利用可能なローカル共有記憶域（持続性または揮発性）が無いクライアントＯＳ上で有用であり得る。揮発性共有メモリのみが利用可能なクライアントＯＳ上で、サーバにおける共有保管庫に格納された機密情報は、機器再起動後も存続し得る。これは、アプリケーション内キャッシュから復旧するために、マスターアプリケーションに単一フリップすることを回避し得る。
【０１４０】
簡潔に上述されたように、いくつかの実施形態は分割記憶域を利用し、共有保管庫のいくつかの部分をサーバ上に格納し、他（または重複部）をローカルに格納し得る。これは、ローカル分割記憶域実装（図５に例示される）と同様の設計を使用してなされ得るが、保管庫管理レコード及び共通アセットをサーバ上に格納し得る。アプリケーション固有アセットは、クライアント機器上のアプリケーション隔離記憶域に格納され得る。このような構成は、利用可能な持続性及び揮発性のどちらのローカル共有記憶域も無いクライアントＯＳ上で有用であり得る。揮発性共有メモリのみが利用可能なクライアントＯＳ上で、サーバにおける保管庫に格納された機密情報は、機器再起動後も存続し得る。これは、アプリケーション内キャッシュから復旧するために、マスターアプリケーションに単一フリップすることを回避し得る。さらに、これは、利用者に利用者エントロピーを入力させることによって、アプリケーション固有アセットへのオフラインアクセスを提供し得る。
【０１４１】
サーバ記憶域と共に分割記憶域を使用する実施形態における変形として、いくつかの実施形態において、共通アセットは、サーバ上にキャッシュされ、一方で、保管庫レコード保持エントリは、ローカル共有メモリに格納され得る。保管庫レコード保持エントリは、依然としてマスターアプリケーション（例えば、ＷｏｒｘＨｏｍｅ／Ｒｅｃｅｉｖｅｒ）または最初に共有保管庫を作成した管理されたアプリケーションから復旧され得る。サーバキャッシュからの共有保管庫の復旧は、オンラインであることを機器に要求し得るが、共通アセットが、基本的にサーバアクセスに有用であり、これによって、機器がオンラインであるときのそれらの復旧は、利用者体験にそれほど大きな負の影響を有さず、安全性を向上し得る。
【０１４２】
簡潔に上述されたように、また更なる実施形態は、キャッシュ及び共有保管庫用の復旧地点を提供するために、サーバを利用し得る。これは、ローカル分割記憶域実装（図５に例示される）と同様の設計を使用してなされ得るが、保管庫管理レコード及び共有アセットへの書き込みはまた、利用可能（オンライン）なときに、二重キャッシュとしてサーバに複製され得る。オフライン機器は、保管庫のペーストボードサーバコピーを更新することなく、保管庫のローカルキャッシュコピーを更新することを継続し得る。このような構成は、ローカル持続性共有記憶域が利用可能なクライアントＯＳ上でシームレス復旧地点を提供するために有用であり得るが、別のアプリケーションによって意図せず消去され得る。また揮発性メモリのみが利用可能な場合にも有用であり得る。サーバキャッシュの使用を通して、共有保管庫に格納された機密情報は、機器再起動後に復旧され得る。
【０１４３】
また更なる実施形態において、共有保管庫の一部の実装に使用される共通メモリの形式及び位置は、ポリシーを通して制御され得る。
【０１４４】
上述された１つ以上の態様の結果として、モバイル機器アプリケーションは、共有保管庫の使用を通してシングルサインオン機能を提供し得る。利用者は、アプリケーションの初回使用時に最初にパスコードまたは他の利用者エントロピーを提供させられ得るが、その後、アプリケーションは、利用者にそのパスコードをさらに入力させることなく、企業リソースへのアクセスを有し得る。さらに、上述された１つ以上の態様の結果として、共有保管庫に登録されているアプリケーションは、共有保管庫にアクセスし、利用者エントロピーまたは企業認証証明書を提供するために利用者をさらに遮ることなく、初期認証を必要とする企業リソースにアクセスすることができ得る。上述された１つ以上の態様によると、いくつかの実施形態は、アプリケーションの同期を依然として保持しつつ、モバイルアプリケーション間のアプリケーションコンテキスト切り替え（「フリップ」）を回避または最小化し得る。いくつかの実施形態は、単一「マスター」アプリケーションへの依存を回避し得る。
【０１４５】
さらに、上述された、いくつかの実施形態は、仮想スマートカード、アプリケーション単位マイクロＶＰＮ、アプリケーション単位設定認証、共有機器上の複数の利用者、及び独立アプリケーションを含む企業対消費者使用ケースをサポートまたは提供し得る。
【０１４６】
上に例示されたように、本開示の種々の態様は、特に、共有保管庫が、利用者エントロピー、アプリケーションエントロピー、及び／または機器エントロピーによって安全にされる、共有保管庫を使用するシングルサインオン機能を提供することに関する。１つ以上のアプリケーションは、共有保管庫に登録し、利用者によって更なる利用者エントロピー入力を必要とすることなく、アクセス証明書等の共有秘密と共に提供され得る。要旨は、構造的機能及び／または方法論的な動作に対し言語特有に記載されているが、添付の請求項に定義された要旨は、上述された特定の機能または動作に限定される必要がないことが理解されるであろう。むしろ、上述された特定の機能及び動作は、以下の請求項のいくつかの実装例として記載される。
【０１４７】
関連出願の相互参照
本出願は、「Ｓｈａｒｅｄ  Ｓｅｃｒｅｔ  Ｖａｕｌｔ  ｆｏｒ  Ａｐｐｌｉｃａｔｉｏｎｓ  ｗｉｔｈ  Ｓｉｎｇｌｅ  Ｓｉｇｎ  Ｏｎ」と題され、２０１４年１２月３１日に出願された米国仮特許出願番号第６２／０９８，４５７号の優先権を主張し、その全体が参照によって本明細書に組み込まれる。
【図１】
2018201239.tif 000003
【図２】
2018201239.tif 000004
【図３】
2018201239.tif 000005
【図４】
2018201239.tif 000006
【図５】
2018201239.tif 000007
【図６Ａ】
2018201239.tif 000008
【図６Ｂ】
2018201239.tif 000009
【図６Ｃ】
2018201239.tif 000010
【図７Ａ】
2018201239.tif 000011
【図７Ｂ】
2018201239.tif 000012
【図８】
2018201239.tif 000013
【図９】
2018201239.tif 000014
【図１０Ａ】
2018201239.tif 000015
【図１０Ｂ】
2018201239.tif 000016
【図１０Ｃ】
2018201239.tif 000017
【図１１Ａ】
2018201239.tif 000018
【図１１Ｂ】
2018201239.tif 000019
【図１１Ｃ】
2018201239.tif 000020
【図１２Ａ】
2018201239.tif 000021
【図１２Ｂ】
2018201239.tif 000022
【図１３】
2018201239.tif 000023
【図１４】
2018201239.tif 000024
【図１５】
2018201239.tif 000025