JP6424295B1 - シングルサインオンを含むアプリケーション用の共有秘密保管庫 - Google Patents

シングルサインオンを含むアプリケーション用の共有秘密保管庫 Download PDF

Info

Publication number
JP6424295B1
JP6424295B1 JP2018155604A JP2018155604A JP6424295B1 JP 6424295 B1 JP6424295 B1 JP 6424295B1 JP 2018155604 A JP2018155604 A JP 2018155604A JP 2018155604 A JP2018155604 A JP 2018155604A JP 6424295 B1 JP6424295 B1 JP 6424295B1
Authority
JP
Japan
Prior art keywords
application
key
vault
user
shared
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2018155604A
Other languages
English (en)
Other versions
JP2018201239A (ja
Inventor
モムチロフ,ゲオルギー
ノードストローム,オラ
Original Assignee
サイトリックス システムズ,インコーポレイテッド
サイトリックス システムズ,インコーポレイテッド
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by サイトリックス システムズ,インコーポレイテッド, サイトリックス システムズ,インコーポレイテッド filed Critical サイトリックス システムズ,インコーポレイテッド
Application granted granted Critical
Publication of JP6424295B1 publication Critical patent/JP6424295B1/ja
Publication of JP2018201239A publication Critical patent/JP2018201239A/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/0815Network architectures or network communication protocols for network security for authentication of entities providing single-sign-on or federations
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/31User authentication
    • G06F21/41User authentication where a single sign-on provides access to a plurality of computers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/78Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0819Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
    • H04L9/0822Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) using key encryption key
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • H04L9/0863Generation of secret information including derivation or calculation of cryptographic keys or passwords involving passwords or one-time passwords
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0894Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/52Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
    • G06F21/53Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow by executing in a restricted environment, e.g. sandbox or secure virtual machine
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/602Providing cryptographic facilities or services
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/544Buffers; Shared memory; Pipes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/06Network architectures or network communication protocols for network security for supporting key management in a packet data network
    • H04L63/061Network architectures or network communication protocols for network security for supporting key management in a packet data network for key exchange, e.g. in peer-to-peer networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/083Network architectures or network communication protocols for network security for authentication of entities using passwords
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/0861Network architectures or network communication protocols for network security for authentication of entities using biometrical features, e.g. fingerprint, retina-scan
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W12/00Security arrangements; Authentication; Protecting privacy or anonymity
    • H04W12/06Authentication
    • H04W12/068Authentication using credential vaults, e.g. password manager applications or one time password [OTP] applications

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • Theoretical Computer Science (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Computing Systems (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • Storage Device Security (AREA)
  • Biomedical Technology (AREA)
  • Mobile Radio Communication Systems (AREA)

Abstract

【課題】共有保管庫(shared vault)を使用する安全な環境でのモバイルアプリケーションにおけるシングルサインオン機能を提供する。
【解決手段】アプリケーションは、パスコード(例えば、パスワード及び/またはPIN)のような利用者エントロピーを利用者に提供させることができる。アプリケーションは、利用者エントロピー暗号化保管庫鍵を復号化するために利用者エントロピーを使用可能である。一旦、保管庫鍵が復号化されると、アプリケーションは、共有保管庫の保管庫データベースを復号化可能である。共有保管庫は、サーバ証明書のような共有秘密、及びロック解除鍵を格納可能である。アプリケーションは、ロック解除鍵を格納し、ロック解除鍵暗号化保管庫鍵を生成し、共有保管庫にロック解除鍵暗号化保管庫鍵を格納させ、これによって保管庫をロック解除することができる。アプリケーションは、その後、利用者に利用者エントロピーを再度提供させることなく保管庫データベースを復号化するために、ロック解除鍵を使用可能である。
【選択図】図2

Description

本開示の態様は、コンピュータハードウェア及びソフトウェアに関する。特に、本開示の1つ以上の態様は、基本的には、共有秘密保管庫(Shared secret vault)を使用するアプリケーションにおけるシングルサインオン(SSO)機能を提供することに関する。
パーソナルコンピュータからモバイル機器まで、種々の種類のコンピュータ機器が、ますます支持を集めている。さらに、人々は、これらの機器を仕事の目的及び個人的使用の両方にますます使用している。これらの機器の需要が成長し続け、絶えず増大する複数の目的に人々がこれらを使用し続けることで、これらの機器の利用者は、更なる利便性、機能、ならびにそのコンピュータ機器及び相互に作用するコンピュータソフトウェアの使い易さを要求し、また要求し続けるであろう。
企業は、従業員及び顧客に企業サービスまたはリソースへのより良好なアクセスを提供するための方法として、ますますモバイル機器に転向している。利用者は、パスワードまたは暗証番号(PIN)等のパスコードの形式の認証情報を提供することによって、企業リソースへのアクセスにパーソナル機器を利用することが可能である。しかしながら、現行のシステムは、認証状態の共有をアプリケーションに可能とする適切な手段を提供していない。代わりに、現行システムは、アプリケーション間で認証状態を共有するために「マスター」アプリケーションを介してプロセス間通信(IPC)を利用し得る。結果として、現行システムは、モバイルアプリケーションとマスターアプリケーションとの間において、不断のコンテキストスイッチ、すなわち「フリップ」を提示する。各コンテキストスイッチ上で、現行システムは、利用者がそのパスコードを再度入力することを要求し得る。このような振る舞いは、利用者にとって合理性に欠けると共に不可解であり、企業リソースへの利用者の円滑なアクセスに支障をきたし得る。
さらに、いくつかの現行システムは、アプリケーション自身に共有秘密を埋め込むことによって、IPCを介して状態の共有を実装する。この手法は、攻撃者がアプリケーションから共有秘密を抽出可能であるので、リバースエンジニアリングのための攻撃を行い易い欠点を有する。
本開示の態様は、特に、1つ以上のモバイルアプリケーションが企業リソースにアクセスするために提供される例において、より良好な柔軟性、安全性、ならびにコンピュータ機器及び/またはコンピュータソフトウェアを管理するための機能性を提供する種々のシステム及び技術に関する。さらに、本開示の一定の態様は、認証状態及び認証済みモバイルアプリケーション間の共有秘密を共有するために使用される場合に、特に利点を提供し得る。
本開示のいくつかの態様は、基本的には、共有秘密保管庫の使用による安全な環境で動作するモバイルアプリケーションにおいてシングルサインオン(SSO)機能を提供することに関する。本開示のいくつかの態様によると、アプリケーションエントロピー、及び/または機器エントロピーが共有保管庫を暗号化及び/または復号化するために使用され得る。本開示のいくつかの態様は、モバイルアプリケーションが、直接的なアプリケーション対アプリケーションのプロセス間通信(IPC)、またはアプリケーション間のコンテキストスイッチ(「フリップ」)に依らずに、共有保管庫に登録するための安全な登録プロセスに関する。本明細書に記載されるいくつかの態様によると、アプリケーションは、共有保管庫をロック解除するために利用者エントロピー(例えば、パスコード)を利用し得る。保管庫は、ロック解除鍵を格納可能であり、アプリケーションは、共有保管庫が、後の時点において利用者に利用者エントロピーの再入力を要求することなくロック解除可能なように、ロック解除鍵を取得可能である。以下の記載において、1つ以上の実施形態によって、シングルサインオンを含むモバイルアプリケーション用の共有保管庫を提供可能な方法を例示する種々の例が説明されるであろう。
本明細書に記載されるいくつかの実施形態は、共有保管庫をロック解除するために1つ以上の形式の利用者エントロピーを利用し得る。以下の検討では、基本的に、利用者エントロピーを利用者によって提供されたパスコードとして説明するが、本明細書に記載される技術及びシステムは、共有保管庫を安全なものとし、利用者を認証するために任意の適切な利用者提供値を利用可能であることが理解されよう。例えば、いくつかの実施形態は、利用者によって提供された暗証番号(PIN)を利用し得る。いくつかの実施形態は、二要素認証プロセスに使用するためのパスワード及び/または利用者に送達された動的に生成された鍵を利用し得る。いくつかの実施形態は、アクティブディレクトリ(AD)パスワードを利用し得る。いくつかの実施形態は、利用者エントロピーとして生体識別データ、例えば、指紋、声紋、網膜スキャン等を利用し得る。付加的及び/または代替的に、いくつかの実施形態は、本明細書にさらに記載されるように、共有保管庫の安全性をさらに向上するためにアプリケーションエントロピー及び/または機器エントロピーを利用し得る。
本明細書に説明される1つ以上の原理によると、認証機能(例えば、状態管理及び利用者インターフェース)は、アプリケーションに構築され得る。認証機能は、本明細書にさらに記載される技術によってアプリケーションに共有保管庫へのアクセスを可能とし得る。共有保管庫は、整合的認証/ログオン状態情報、サーバ証明書、チケット、証明書、タイマー、及び安全なネットワークリソースにアクセスするために使用される他の情報の安全な共有を提供することによって、アプリケーションにおけるシングルサインオン機能を可能とし得る。付加的及び/または代替的に、共有保管庫は、例えば、バイナリラージオブジェクト(BLOBs)の形式における、任意データの安全な共有をアプリケーションに可能とし得る。
本明細書に記載されるいくつかの実施形態によるアプリケーションは、共有秘密保管庫にアクセスしロック解除するために、利用者エントロピーを単独、あるいはアプリケーションエントロピー及び/または機器エントロピーとの組み合わせにおいて使用し得る。利用者エントロピーは、保管庫鍵を復号化するために使用可能であり、保管庫鍵は、その後、共有秘密保管庫をロック解除するために使用可能である。アプリケーションが保管庫にアクセスしロック解除した後、アプリケーションは、次回、利用者エントロピーの更なる入力を必要としない保管庫鍵の復号化に使用するために、ロック解除鍵を取得可能である。アプリケーションは、ロック解除鍵暗号化保管庫鍵を生成し、次回、保管庫へのアクセスに使用するために、この暗号化鍵を共有保管庫に書き込み得る。
本明細書に記載されるいくつかの実施形態によると、システムは、アイドル時間タイマーの使用によってモバイルアプリケーション間のシングルサインオン機能を制限し得る。アイドル時間タイマーは、共有保管庫を使用するアプリケーションが所定時間休止したことを判定するために使用可能であり、システムに、共有秘密保管庫の再ロック、ならびに共有保管庫に格納されたロック解除鍵暗号化保管庫鍵の削除及び/または無効化を行わせることができる。結果として、いくつかの実施形態においてアプリケーションは、共有秘密保管庫へのアクセスを継続するために利用者にそのパスコード(または他の利用者エントロピー)を入力させ得る。
アイドル時間タイマーは、本明細書に記載されるいくつかの実施形態によると、グローバル、グループ、アプリケーション単位、またはリソース基盤単位のアイドル時間を捕捉し得る。付加的及び/または代替的に、システムは、システムに対して好ましい安全性及びアクセスに基づいて構成され得る。例えば、システムは、アイドル時間を捕捉し、所定アイドル時間経過後に利用者にパスコードを入力させる対話モードを提供し得る。いくつかの実施形態において、システムは、アプリケーションが、共有秘密保管庫に登録するための最初の使用において利用者にパスコードを入力させ、アイドル時間を捕捉しない、複合モードを提供し得る。このような実装において、システムは、必要であれば、システムの再起動または他のイベント後に、利用者にパスコードを再度入力させる。他の実施形態において、システムは、共有秘密保管庫にアクセスしロック解除するために、アプリケーションエントロピー及び/または機器エントロピーが利用される非対話モードを実装し得る。このような実装において、システムは、アプリケーションにおいて利用者にそのパスコードまたは他の利用者エントロピーを入力させることなくシングルサインオンを提供し得る。
本明細書に記載されるいくつかの態様による、共有秘密保管庫の使用は、仮想スマートカード、アプリケーション基盤単位の複数のマイクロVPN、アプリケーション基盤単位のステップアップ認証、及び共有機器環境における安全なシングルサインオンのような付加的な安全性及び認証機能を可能とし得る。
本明細書に記載されるいくつかの態様は、信頼されたプラットフォームが不要な仮想スマートカードを提供し得る。いくつかの実施形態は、強固な加入機構に結合された共有秘密保管庫において証明書を持続する能力を提供し得る。共有秘密保管庫に安全に格納された証明書と共に、アプリケーションは、利用者が一度、そのパスコードを提供すると、証明書/仮想スマートカードにアクセス可能であり、アプリケーションは、共有秘密保管庫に登録を行う。
本明細書に記載されるいくつかの態様は、アプリケーション基盤単位の複数のマイクロVPNを提供し得る。マイクロVPNは、アプリケーションに企業リソースへのアクセスを可能とするために使用され得る。ただし、一定のアプリケーションは、より高度な保証認証を必要とし得る。本明細書に記載されるいくつかの実施形態は、異なるゲートウェイにアクセスするために異なるアプリケーションによって異なるマイクロVPNの使用を可能とし得る。
本明細書に記載されるいくつかの態様は、アプリケーション基盤単位にステップアップ認証を提供し得る。いくつかの企業リソースは、より高度な保証認証を必要とし得る。いくつかの実施形態において、アプリケーションは、より高度な保証認証を取得し、特有のリソースに対する証明書を共有秘密保管庫ではなくアプリケーション固有メモリに格納してもよい。結果として、他のリソースに関するシングルサインオンを維持しつつ、ステップアップ認証が、アプリケーション基盤単位に提供され得る。
本明細書に記載れるいくつかの態様は、共有機器上の複数の利用者に対するサポートを提供し得る。機器は、それぞれの利用者に対し1つより多い共有保管庫を維持してもよい。1人の利用者がログオフし、または別の利用者がそのパスコードを入力するように、利用者の切り替えが検出されると、機器は、新しい利用者に関連付けられた情報及び証明書を反映するためにコンテキストをシームレスに切り替え可能である。
これらの特徴は、多くの他のものと共に、以下により詳細に説明される。
本発明は、実施例によって例示され、同様の符号が類似要素を示す添付図面に限定されるものではない。
本明細書に説明される1つ以上の例示的な態様による、本開示の1つ以上の態様の実装において使用可能なコンピュータ機器の一例を図示する。 本明細書に説明される1つ以上の例示的な態様による、本開示の1つ以上の態様の実装において使用可能な例示的な機器及び論理的メモリ構造を図示する。 本明細書に説明される1つ以上の例示的な態様による、共有秘密保管庫にアクセスするプロセスを例示するフローチャートを図示する。 本明細書に説明される1つ以上の例示的な態様による、論理的共有秘密保管庫の実装例を図示する。 本明細書に説明される1つ以上の例示的な態様による、論理的共有秘密保管庫の別の実装例を図示する。 本明細書に説明される1つ以上の例示的な態様による、共有秘密保管庫の作成を例示するプロセスフロー例を図示する。 本明細書に説明される1つ以上の例示的な態様による、共有秘密保管庫の作成を例示する別のプロセスフロー例を図示する。 本明細書に説明される1つ以上の例示的な態様による、共有秘密保管庫の作成を例示する別のプロセスフロー例を図示する。 共有秘密保管庫の登録プロセスを例示するプロセスフロー例を図示する。 共有秘密保管庫の登録プロセスを例示する別のプロセスフロー例を図示する。 本明細書に説明される1つ以上の例示的な態様による、アイドル時間タイマーを組み込むシングルサインオンプロセスを例示するプロセスフロー例を図示する。 本明細書に説明される1つ以上の例示的な態様による、アイドル時間に基づくロックプロセスを例示するプロセスフロー例を図示する。 本明細書に説明される1つ以上の例示的な態様による、アイドル時間に基づくロックプロセスを例示するプロセスフロー図を図示する。 本明細書に説明される1つ以上の例示的な態様による、アイドル時間に基づくロックプロセスを例示する別のプロセスフロー図を図示する。 本明細書に説明される1つ以上の例示的な態様による、アイドル時間に基づくロックプロセスを例示する別のプロセスフロー図を図示する。 本明細書に説明される1つ以上の例示的な態様による、PIN更新プロセスを例示するプロセスフロー例を図示する。 本明細書に説明される1つ以上の例示的な態様による、PIN更新プロセスを例示する別のプロセスフロー例を図示する。 本明細書に説明される1つ以上の例示的な態様による、パスワード更新プロセスを例示するプロセスフロー例を図示する。 本明細書に説明される1つ以上の例示的な態様による、分散認証プロセスを例示するプロセスフロー例を図示する。 本明細書に説明される1つ以上の例示的な態様による、分散認証プロセスを例示するプロセスフロー例を図示する。 本明細書に説明される1つ以上の例示的な態様による、保管庫作成プロセスを例示するプロセスフロー例を図示する。 本明細書に説明される1つ以上の例示的な態様による、パスコード取得プロセスを例示するプロセスフロー例を図示する。 本明細書に説明される1つ以上の例示的な態様による、パスコード更新プロセスを例示するプロセスフロー例を図示する。
種々の実施形態の以下の記載において、本明細書の一部を形成し、本開示の種々の態様が実施され得る種々の実施形態を例示することによって示される、上記の添付図面の参照がなされる。本明細書に説明される範囲から逸脱することなく、他の実施形態が利用可能であり、構造的及び機能的変更を行うことが可能である。種々の態様が他の実施形態となり得、種々の異なる方法において、実施または実行可能である。さらに、本明細書に使用される表現方法及び用語は、説明の目的のためのものであり、限定するものとしてみなされるべきではない。むしろ、本明細書に使用される語句及び用語は、それらの最も広い解釈及び意味が与えられる。「含む」及び「備える」、ならびにそれらの変形の使用は、その後に挙げられる項目及びそれらの同義のもの、ならびに付加的な項目及びそれらの同義のものを包含することを意味する。
本明細書において使用されるように、「エントロピー」は、暗号法またはランダムデータを必要とする他の用途に使用するための、オペレーティングシステムまたはアプリケーションによって収集されるランダム性を意味する。「利用者エントロピー」は、利用者によって提供されるランダム性を意味する。例えば、利用者エントロピーは、パスワードまたは暗証番号(PIN)等の利用者によって設定されたパスコードを含み、これは、その後、データ暗号化鍵を暗号化/復号化することによって直接、または間接的にデータを暗号化/復号化するための鍵としてアプリケーションによって使用され得る。利用者エントロピーは、付加的な保護として、可逆的なエントロピーが提供されたアプリケーションまたはシステム/機器に提供され得る。いくつかの実施形態において、利用者エントロピーは、機器上に格納されなくてもよい。これは、機器が「ルート化」さもなければハッキングされた場合でさえ、利用者エントロピーの認識なく暗号化データを復号化することができないことを保証し得る。
以下の説明では、基本的に、利用者エントロピーを利用者によって提供されたパスコードとして説明するが、本明細書に記載される技術及びシステムは、共有秘密保管庫を保護する、及び/または利用者を認証するために、任意の適切な利用者提供値を利用可能であることが理解されよう。例えば、いくつかの実施形態は、利用者によって提供された暗証番号(PIN)を利用し得る。いくつかの実施形態は、二要素認証プロセスに使用するためのパスワード及び/または利用者に送達された動的に生成された鍵を利用し得る。いくつかの実施形態は、アクティブディレクトリ(AD)パスワードを利用し得る。いくつかの実施形態は、例えば、指紋、声紋、網膜スキャン等の生体識別データを利用者エントロピーとして利用し得る。付加的及び/または代替的に、いくつかの実施形態は、共有秘密保管庫の安全性をさらに向上するために、本明細書にさらに記載される、アプリケーションエントロピー及び/または機器エントロピーを利用し得る。
本明細書に記載されるように、本開示のいくつかの態様は、データを保護し改ざんを防止するために、利用者エントロピー、アプリケーションエントロピー、及び/または機器エントロピーの組み合わせによって安全性が確保された共有保管庫に登録する方法によって、アプリケーション間の共有認証状態のようなシングルサインオンを提供することに関する。ただし、より詳細にこれらの概念を説明する前に、本開示の種々の態様を実装及び/または一方で提供することに使用され得るコンピュータ機器の複数の例を、図1に関してまず説明する。
図1は、本明細書に記載される1つ以上の例示的な態様による、本開示の1つ以上の態様の実装において使用され得るコンピュータ機器100の一例を図示する。例えば、コンピュータ機器100は、いくつかの例において、命令の読み出し及び/または実行、ならびにそれに従う1つ以上の動作を実施することによって、本開示の1つ以上の態様を実装し得る。1つ以上の構成において、コンピュータ機器100は、デスクトップコンピュータ、コンピュータサーバ、モバイル機器(例えば、ラップトップコンピュータ、タブレットコンピュータ、スマートフォン、任意の他の種類のモバイルコンピュータ機器等)、及び/または任意の他の種類のデータ処理機器を表現する、組み込まれる、ならびに/あるいは含む。コンピュータ機器100は、いくつかの例において、スタンドアローン環境において動作し得る。他の例において、コンピュータ機器100は、ネットワーク環境において動作し得る。例えば、コンピュータ機器100は、いくつかの例において、コンピュータ機器100の周辺、及び/または物理的に遠隔にある1つ以上の他のコンピュータ機器と接続、ならびに/あるいは、さもなければ通信可能である。
図1に見られるように、コンピュータ機器100は、いくつかの実施形態において、プロセッサ105、メモリ110、入力/出力インターフェース135、及びネットワークインターフェース140を含む。これらは、いくつかの実施形態において、コンピュータ機器100に含まれ得る構成要素及び/またはサブシステムの単なるいくつかの例である。他の実施形態において、コンピュータ機器100は、任意の及び/または全てのこれらの構成要素の2つ以上(例えば、2つ以上のプロセッサ、2つ以上のメモリ等)、ならびに/あるいは他の構成要素、ならびに/あるいはここでは挙げられないサブシステムを含んでもよい。
いくつかの実施形態において、プロセッサ105は、メモリ110、入力/出力インターフェース135、及び/またはネットワークインターフェース140等の、コンピュータ機器100に含まれる他の構成要素のうちの1つ以上の動作を含む、コンピュータ機器100の全体の動作を制御し得る。メモリ110は、例えば、ソフトウェア、命令、データ、及び/または他の情報を格納し得る。例えば、ソフトウェアは、本明細書に記載される種々の機能のうちの1つ以上を実行すべく、コンピュータ機器100を特別な目的のコンピュータ機器に設定するためにプロセッサ105に命令を提供するようにメモリ110及び/または他の記憶装置に格納され得る。
いくつかの構成において、メモリ110は、オペレーティングシステム115、制御論理120、1つ以上のアプリケーション125、及び/またはデータ130を格納、提供、及び/または、さもなければ含み得る。オペレーティングシステム115は、例えば、コンピュータ機器100の全体の動作を制御し得る。制御論理120は、例えば、本開示の種々の態様を実行、及び/または、さもなければ提供するために、コンピュータ機器100、及び/またはプロセッサ105を含むその中に含まれる種々の構成要素に命令を行い得る。1つ以上のアプリケーション125は、例えば、本開示の種々の態様と併せて使用され得る、副次的なサポート及び/または機能を提供し得る。さらに、データ130は、例えば、本開示の1つ以上の態様を実行する上で使用可能であり、いくつかの例において、1つ以上のデータベース、データテーブル、及び/または同様のものを含み得る。
いくつかの構成において、入力/出力インターフェース135は、キーボード、マウス、ディスプレイ、プリンタ、スキャナ、光学リーダー、スタイラス、及び/または1つ以上の他の構成部品を含み得る。例えば、入力/出力インターフェース135は、種々のインターフェースユニット、ならびに/あるいはファイル及び/若しくは他のデータの読み出し、書き込み、表示、ならびに/または印刷用のドライブを含み得る。いくつかの実施形態において、入力/出力インターフェース135は、音声入力を取得する1つ以上のマイクロフォン及び/または音声出力を提供する1つ以上のスピーカーを含む音声インターフェースを含み得る。付加的または代替的に、入力/出力インターフェース135は、テキスト形式、音声映像、及び/またはグラフィック出力を提供するためのビデオディスプレイ機器を含み得る。
いくつかの実施形態において、入力/出力インターフェース135に含まれる、及び/または、さもなければ提供される少なくとも1つのディスプレイは、タッチ感応ディスプレイ画面(「タッチ画面」としても知られる)であってもよい。このようなタッチ画面は、例えば、コンピュータ機器100によって描画、及び/または、さもなければ生成されたグラフィックコンテンツを表示するように構成され得る。さらに、タッチ画面は、スタイラス、指、またはタッチ画面と相互作用を行うためにコンピュータ機器100の利用者によって操作、制御、及び/若しくは、さもなければ使用される他の指示態様を使用して、利用者によって提供されるタッチに基づく利用者入力を含む、利用者入力をコンピュータ機器100の利用者から受信するように構成され得る。
上に示されるように、コンピュータ機器100は、いくつかの例において、1つ以上の遠隔コンピュータ、サーバ、及び/または機器への接続をサポートするネットワーク環境において動作し得る。このような接続性は、いくつかの実施形態において、ネットワークインターフェース140によって提供され得る。例えば、ネットワークインターフェース140は、1つ以上の通信インターフェース、ポート、アダプタ、アンテナ、及び/または種々のネットワーク接続を容易化する他の要素を含み得る。このようなネットワーク接続は、ローカルエリアネットワーク(LAN)接続、ワイドエリアネットワーク(WAN)接続(例えば、インターネットへの)、及び/または任意の他の形式の接続を含み得る。いくつかの構成において、LAN接続は、専用のLANインターフェース及び/若しくはアダプタを介して確立ならびに/または提供され、ならびに/あるいはWAN接続は、専用のWANインターフェース及び/若しくはアダプタを介して確立ならびに/または提供され得る。他の接続方法は、例えば、有線通信インターフェース(例えば、イーサーネット)、無線通信インターフェース(例えば、無線LAN(WLAN)、セルラー方式、ブルートゥース(登録商標)等)、及び/若しくは他の通信インターフェース等の他の通信インターフェースを介して確立ならびに/または提供され得る。
図1に見られるように、コンピュータ機器100は、いくつかの例において、サーバ145及びサーバ150等の1つ以上のサーバに接続される、及び/または通信可能である。このようなサーバは、例えば、コンピュータ機器100の1つ以上の態様を実装可能であり、したがって、1つ以上のプロセッサ、メモリ、及び/または同様のものを含み得る。1つ以上のサーバへのいくつかの接続は、LANを介して確立可能であり(例えば、コンピュータ機器100とサーバ145との間の接続)、一方で1つ以上のサーバへの他の接続は、WANを介して確立可能である(例えば、コンピュータ機器100とサーバ150との間の接続)。いくつかの実施形態において、1つ以上のサーバのうちのいくつかまたは全ては、1つ以上のコンピュータ機器上で実行されているソフトウェアによって提供される仮想サーバであってもよい。
さらに、本開示の1つ以上の態様は、本明細書に記載されるような1つ以上のコンピュータまたは他の機器によって実行される、1つ以上のプログラムモジュールにおけるような、コンピュータ使用可能若しくは可読、及び/またはコンピュータ実行可能命令に埋め込まれてもよい。基本的に、プログラムモジュールは、コンピュータまたは他の機器においてプロセッサによって実行されたときに特定のタスクを実行する、または特定の抽象データ型を実装するルーチン、プログラム、オブジェクト、コンポーネント、データ構造等を含む。モジュールは、実行後にコンパイルされるソースコードプログラミング言語において記述可能であり、またはHTMLまたはXML等(ただし限定しない)のスクリプト言語において記述可能である。コンピュータ実行可能命令は、非一時的記憶機器等のコンピュータ可読媒体に格納され得る。ハードディスク、CD−ROM、光学記憶機器、磁気記憶機器、及び/またはその任意の組み合わせを含む、任意の適切なコンピュータ可読記憶媒体が利用可能である。さらに、本明細書に説明されるようなデータまたはイベントを表現する種々の伝送(非記憶)媒体は、ソースと伝送先との間において、金属線、光ファイバ、及び/または無線伝送媒体(例えば、空気及び/または空間)等の信号伝導媒体を通って移動する電磁波の形式で伝送され得る。本明細書に説明される種々の態様は、方法、データ処理システム、またはコンピュータプログラム製品として具体化され得る。したがって、種々の機能は、全体または一部においてソフトウェア、ファームウェア、及び/またはハードウェア若しくは集積回路、フィールドプログラマブルゲートアレイ(FPGA)等のハードウェア同等物で具体化され得る。特定のデータ構造は、本開示の1つ以上の態様をより効果的に実装するために使用可能であり、このようなデータ構造は、本明細書に説明されるコンピュータ実行可能命令及びコンピュータ使用可能データの範囲内であると考えられる。
さらに、本開示のいくつかの態様は、複数の他の汎用または専用コンピュータシステム環境若しくは構成によってまた動作可能である。本明細に説明される態様による使用に適切となり得る他のコンピュータシステム、環境、及び/または構成の例は、限定されるものではないが、パーソナルコンピュータ、サーバコンピュータ、携帯またはラップトップ機器、マルチプロセッサシステム、マイクロプロセッサ基盤システム、セットトップボックス、プログラマブル家電、ネットワークPC、小型コンピュータ、メインフレームコンピュータ、任意の上記のシステムまたは機器を含む分散コンピュータ環境等を含む。
本開示の種々の態様の提供及び/または実装に使用可能なコンピュータ機器の複数の例を説明してきたが、モバイル機器及び動作環境の例をここではより詳細に説明する。特に、また上に前置きされるように、本開示のいくつかの態様は、基本的には、共有保管庫を使用する安全な環境におけるモバイルアプリケーションのシングルサインオン機能を提供することに関する。本開示のいくつかの態様は、共に基本的にはパスコードを意味する、パスワード及び/またはPIN等の利用者エントロピーを利用者に入力させるアプリケーションに関する。アプリケーションは、利用者エントロピー暗号化保管庫鍵を復号化するために利用者エントロピーを使用し得る。一旦、保管庫鍵が復号化されると、アプリケーションは、共有保管庫の保管庫データベースを復号化可能である。共有保管庫は、サーバ証明書等の共有秘密、及びロック解除鍵を格納し得る。アプリケーションは、ロック解除鍵を格納し、ロック解除鍵暗号化保管庫鍵を生成し、ロック解除鍵暗号化保管庫鍵を共有保管庫に格納させ、これによって保管庫を「ロック解除」する。アプリケーションは、その後、利用者に利用者エントロピーを再度入力させることなく保管庫データベースを復号化するためにロック解除鍵を使用可能である。いくつかの実施形態において、システムは、アイドル時間タイマーを捕捉し、所定アイドル時間期限後にロック解除鍵復号化保管庫鍵を削除及び/または無効化可能であり、これによって共有保管庫を「ロック」する。アイドル時間期限後、アプリケーションは、利用者に利用者エントロピーを入力させ、保管庫をロック解除し、ロック解除鍵暗号化保管庫鍵を再格納し得る。以下の記載において、1つ以上の実施形態による共有保管庫を例示する種々の例が説明されるであろう。
図2は、モバイル機器200、そこに格納可能な論理メモリ構造、及び本明細に開示される1つ以上の態様によってアクセス可能な企業リソース260を含む動作環境例を例示する。モバイル機器200は、コンピュータ機器100のようなコンピュータ機器であってもよく、命令及びデータを格納するメモリ、ならびに格納された命令を実行するために動作可能なプロセッサを含み得る。モバイル機器200は、アプリケーション1 240a、アプリケーションi 240b、及び/またはアプリケーションN 240c(まとめるとアプリケーション240)のような、そこにインストールされた1つ以上のアプリケーションを有し得る。本明細書に記載されるいくつかの態様によると、アプリケーション240は、共有秘密224を取得するために共有メモリ205(及び/または共有記憶域205)に格納された共有保管庫210にアクセス可能である。アプリケーション240は、ネットワーク250を介して企業リソースA 260a、企業リソースB 260b、及び企業リソースC 260c(まとめると企業リソース260)のような、安全なリソースにアクセスするために共有秘密224を使用可能である。ネットワーク250は、例えば、任意の適切な有線及び/または無線ネットワーク、またはそれらの組み合わせであり得る。例えば、モバイル機器は、インターネットを介して企業リソース260にアクセス可能である。なおモバイル機器200の環境において説明したが、本明細書に記載される方法及び技術は、任意の適切なコンピュータ機器に実装可能である。
モバイル機器200は、iOSオペレーティングシステム、アンドロイドオペレーティングシステム等を動作可能である。アプリケーション240は、電子メール、ウェブブラウザ、サービスとしてのソフトウェア(SaaS)アクセスアプリケーション、ウィンドウズ(登録商標)アプリケーションアクセスアプリケーション等を含み得る。アプリケーション240は、ネイティブアプリケーション、アプリケーションランチャーによって実行される遠隔アプリケーション、アプリケーションランチャーによって実行される仮想化アプリケーション等であり得る。アプリケーションのうちの1つ以上は、安全なアプリケーションラッパーによってラップされてもよい。安全なアプリケーションラッパーは、アプリケーションがモバイル機器上で実行されるときにモバイル機器上で実行される統合ポリシーを含み得る。安全なアプリケーションラッパーは、モバイル機器上で動作しているアプリケーションをリソースに指定するメタデータと、アプリケーションがアプリケーションの実行にあたって要求されたタスクを完了するために必要とされ得る企業においてホストされた他のメタデータとを含み得る。アプリケーション240は、モバイル機器200、企業リソース260等においてリソースを利用し得る。モバイル機器上で使用されるリソースは、利用者対話リソース、処理リソース等を含み得る。利用者対話リソースは、キーボード入力、マウス入力、カメラ入力、触覚入力、音声入力、映像入力、ジェスチャー入力等を収集及び処理するために使用され得る。処理リソースは、ユーザインターフェース、利用者対話リソースから受信した処理データ、企業リソース260等を提供するために使用され得る。アプリケーション240によって企業リソース260において使用されるリソースは、ユーザインターフェース生成リソース、処理リソース等を含み得る。企業リソース260のユーザインターフェース生成リソースは、ユーザインターフェースの構築、ユーザインターフェースの変更、ユーザインターフェースの一新等に使用され得る。企業リソース260の処理リソースは、情報の作成、情報の読み出し、情報の更新、情報の削除等に使用され得る。
モバイル機器200は、ネットワーク250を通して企業における企業リソース260に接続し得る。いくつかの実施形態において、モバイル機器は、仮想プライベートネットワーク接続を通して企業リソース260に接続し得る、マイクロVPNまたはアプリケーション特化VPNとも呼ばれる、仮想プライベートネットワーク接続は、特定アプリケーション240、特定機器、モバイル機器の特定の安全な領域等に特化し得る。例えば、アプリケーションの各々は、VPNへのアクセスがアプリケーションに関連付けられた属性に基づいて承認されることになるように、アプリケーション及び/またはリソース特化VPNを通して企業リソースにアクセスし得る。アクセスは、共有秘密224に格納されたサーバ証明書及び/または他の情報をさらに条件とし得る。仮想プライベートネットワーク接続は、マイクロソフトエクスチェンジトラフィック、マイクロソフトアクティブディレクトリトラフィック、ハイパーテキストトランスファープロトコル(HTTP)トラフィック、ハイパーテキストトランスファープロトコルセキュア(HTTPS)トラフィック、アプリケーション管理トラフィック等を伝送し得る。
仮想プライベートネットワーク接続は、いくつかの実施形態において、アクセスゲートウェイ270によって確立及び維持され得る。アクセスゲートウェイ270は、モバイル機器200への企業リソース260の送達を維持、促進、及び改善する性能強化機能を含み得る。アクセスゲートウェイ270はまた、モバイル機器200から公衆インターネットにトラフィックを別ルートで送ることが可能であり、公衆インターネット上で動作する一般的に利用可能で安全ではないアプリケーションへのアクセスをモバイル機器200に可能とする。モバイル機器200は、ネットワーク250を介してアクセスゲートウェイ270に接続し得る。ネットワーク250は、有線ネットワーク、無線ネットワーク、クラウドネットワーク、ローカルエリアネットワーク、都市圏ネットワーク、ワイドエリアネットワーク、公衆回線、私設網等であり得る。
企業リソース260は、電子メールサーバ、ファイル共有サーバ、SaaSアプリケーション、ウェブアプリケーションサーバ、ウィンドウズ(登録商標)アプリケーションサーバ等を含み得る。電子メールサーバは、エクスチェンジサーバ、ロータスノーツサーバ等を含み得る。ファイル共有サーバは、シェアファイルサーバ等を含み得る。SaaSアプリケーションは、セールスフォース等を含み得る。ウィンドウズ(登録商標)アプリケーションサーバは、ローカルウィンドウズ(登録商標)オペレーティングシステム上で動作するアプリケーションを提供するために構築される任意のアプリケーションサーバを含み得る。企業リソース260は、宅内設置型リソース、クラウド基盤リソース等であり得る。企業リソース260は、モバイル機器200によって、直接、またはアクセスゲートウェイ270を通してアクセスされる。
企業リソース260は、認証サービス、脅威検出サービス、機器管理サービス、ファイル共有サービス、ポリシーマネージャサービス、ソーシャル統合サービス、アプリケーションコントローラサービス等のような企業サービスを提供し得る。認証サービスは、利用者認証サービス、機器認証サービス、アプリケーション認証サービス、データ認証サービス等を含み得る。認証サービスは、証明書を使用し得る。証明書は、モバイル機器200上、企業リソース260等によって格納され得る。モバイル機器200上に格納された証明書は、本明細書に記載されるように、共有保管庫210に登録されたアプリケーションによって使用するために、暗号化された保管庫データベース220における共有秘密224として共有保管庫に格納され得る。脅威検出サービスは、侵入検出サービス、不正アクセス試行検出サービス等を含み得る。不正アクセス試行検出サービスは、機器、アプリケーション、データ等にアクセスするための不正試行を含み得る。機器管理サービスは、設定、プロビジョニング、安全性、サポート、監視、レポート、及びデコミッションサービスを含み得る。ファイル共有サービスは、ファイル管理サービス、ファイル格納サービス、ファイル共同システム等を含み得る。ポリシーマネージャサービスは、機器ポリシーマネージャサービス、アプリケーションポリシーマネージャサービス、データポリシーマネージャサービス等を含み得る。ソーシャル統合システムは、連絡統合サービス、共同サービス、フェイスブック、ツイッター(登録商標)、及びリンクトイン等を含み得る。アプリケーションコントローラサービスは、管理サービス、プロビジョンサービス、展開サービス、割り当てサービス、失効サービス、ラップサービス等を含み得る。
モバイル機器200は、共有メモリ/記憶域205を含み得る。共有記憶域は、安全ではなく、モバイル機器200上で実行する任意のアプリケーションによってアクセス可能である。共有記憶域は、1つ以上の共有保管庫210を含むことが可能であり、その各々が同様に保管庫レコード記憶域212及び保管庫データベース220を含み得る。保管庫データベース220に格納されるデータは、ファイル、データベース等を含み得る。保管庫データベース220は、いくつかの態様による、企業リソース260にアクセスし任意のデータを交換することをアプリケーション240に可能とする共有秘密224を含み得る。保管庫データベース220に格納されるデータは、特定のアプリケーションに制限される、アプリケーション240間で共有される、アプリケーショングループ間で共有される、等のデータを含み得る。保管庫データベース220は、保管庫鍵を使用して暗号化可能であり、アプリケーションは、保管庫鍵を処理することなく保管庫データベースに格納されたデータにアクセスすることができない。保管庫データベース220は、高度暗号化基準(AES)128ビット暗号化等のような強固な形式の暗号化を使用して暗号化され得る。本明細書においてAESが暗号化基準例として使用されるが、共有保管庫210を保護するために任意の適切な暗号化方法または基準が使用され得ることが理解されよう。
保管庫レコード記憶域212は、暗号化された保管庫データベース220をロック解除するために使用される保管庫鍵情報を格納し得る。保管庫鍵情報は、アプリケーション240に対しアクセス可能であり得る。ただし、保管庫鍵情報は、暗号化され、保管庫鍵自身が復号化されるまで保管庫データベース220を復号化するために使用することができない。保管庫レコード記憶域は、パスコード暗号化保管庫鍵214を格納し得る。本開示における例は、基本的に、保管庫鍵を暗号化するために利用者提供パスコード(例えば、暗証番号またはパスワード)を利用者エントロピーとして使用するように記載するが、任意の適切な利用者エントロピーが利用可能であることが理解されるであろう。例えば、いくつかの実施形態において保管庫鍵は、アクティブディクショナリパスワード、及び/または利用者に関連付けられた生体識別データ等のようなパスワードを使用して暗号化され得る。
アプリケーションは、アプリケーションが暗号化された保管庫データベース220に格納されたデータにアクセスすることができる前に、利用者に利用者エントロピーデータ(パスコード等)を入力させ得る。アプリケーションは、保管庫レコード記憶域212に格納されたパスコード暗号化保管庫鍵214にアクセスし、保管庫鍵を生成するためにパスコード暗号化保管庫鍵214を復号化し得る。生成された保管庫鍵は、それから、暗号化された保管庫データベース220を復号化するためにアプリケーションによって使用され得る。アプリケーションは、利用者エントロピーデータ及び復号化された保管庫鍵を格納することを避ける、または格納することから防止される。本明細書にさらに記載されるように、いくつかの実施形態において保管庫鍵は、アプリケーションエントロピー及び/または機器エントロピーを使用してさらに暗号化可能であり、アプリケーションは、保管庫鍵を完全に復号化するために利用者エントロピーの他に付加的な情報を必要とし得る。ただし、簡潔化のため、図2は、アプリケーションエントロピー及び/または機器エントロピーを例示しない。
一旦、アプリケーションが保管庫データベース220を復号化すると、アプリケーションは、共有秘密224と、アプリケーションi秘密226等のアプリケーション固有秘密とにアクセスし得る。共有秘密224は、認証/ログオン状態情報、サーバ証明書、チケット(長期サーバアクセス証明書等)、証明書、タイマー、及び安全なネットワークリソースにアクセスするために使用される他の情報を含み得る。付加的及び/または代替的に、共有保管庫は、例えば、バイナリラージオブジェクト(BLOB)の形式の、任意のデータを安全に共有することをアプリケーションに可能とし得る。いくつかの実施形態において、アプリケーション固有秘密へのアクセスは、自身の、またはこれらの秘密に関連付けられたそれぞれのアプリケーションに限定され得る。これは、例えば、アクセスポリシー及び/またはアプリケーションエントロピーを使用する暗号化によって実現され得る。
保管庫データベース220はまた、ロック解除鍵222を格納し得る。以下にさらに記載される、いくつかの実施形態において、ロック解除鍵222は、ロック解除鍵暗号化保管庫鍵216を復号化するために使用されるAES鍵であり得る。ロック解除鍵222はまた、シングルサインオン(SSO)鍵とも呼ばれ得る。ロック解除鍵暗号化保管庫鍵216はまた、SSOレコードとも呼ばれ得る。一旦、アプリケーションが保管庫データベース220を復号化すると、アプリケーションは、ロック解除鍵222を保管庫データベース220から読み出し、ロック解除鍵222をアプリケーション固有ロック解除鍵記憶域241a〜cそれぞれに格納し得る。ロック解除鍵記憶域241a〜cは、モバイル機器200によって提供されるメモリまたは記憶域の一部に格納され、アプリケーション240a〜cそれぞれに対し指定及び/または隔離されるという意味でアプリケーション固有であり得る。他のアプリケーションは、ロック解除鍵記憶域241a〜cにアクセスすることができない。ロック解除鍵222の取得後、アプリケーションは、保管庫レコード記憶域212がロック解除鍵暗号化保管庫鍵216を含むか否かを確認し得る。保管庫レコード記憶域212がロック解除鍵暗号化保管庫鍵216を含む場合、その後、共有保管庫が、ロック解除状態となり、アプリケーションは、次回において利用者にそのパスコードを再度入力させることなく共有保管庫にアクセスするために、ロック解除鍵を使用し得る(本明細書にさらに記載されるように、保管庫がアンロック状態となることが提供される)。保管庫レコード記憶域212がロック解除鍵暗号化保管庫鍵216を含まない場合、アプリケーションは、ロック解除鍵暗号化保管庫鍵216を生成しそれを保管庫レコード記憶域212に格納させるために、ロック解除鍵222、及び復号化された保管庫鍵を使用し得る。いくつかの実施形態において、ロック解除鍵暗号化保管庫鍵216は、利用者エントロピー(パスコード)によって保管庫データベースを復号化することに応答して、及び/またはその結果として生成される。結果として、そのそれぞれのロック解除鍵記憶域にロック解除鍵が格納された任意のアプリケーションは、利用者にそのパスコードを入力させることなく保管庫にアクセス可能となる(保管庫がロック解除状態であることが提供される)。
保管庫データベース220はまた、いくつかの実施形態において、アイドル時間タイマー228を格納し得る。保管庫データベース220を復号化したアプリケーションは、アイドル時間タイマーを読み出し、所定アイドル時間期限が経過したか否かを判定する。アイドル時間タイマーは、共有保管庫がパスコード及び/またはロック解除鍵を使用して最後に復号化されてから経過した時間を捕捉し得る。モバイル機器200、アプリケーション240、及び/または共有保管庫210は、所定アイドル時間期限後に共有保管庫を「ロック」するように構成され得る。期限は、モバイル機器200、企業リソース260、アプリケーション240、及び/または共有保管庫210の1つ以上の安全性ポリシーに関連付けられた、及び/またはそれによって設定された設定可能な時間制限であり得る。アプリケーションが、共有保管庫が最後に復号化されてから所定時間が経過したと判定したときには、アプリケーションは、ロック解除鍵暗号化保管庫鍵216を削除またはさもなければ保管庫レコード記憶域212から除去させ、これによって共有保管庫210及び保管庫データベース220を「ロック」し得る。アプリケーションは、その後、保管庫データベース220が再度復号化される前に、利用者がパスコードナンバー等の利用者エントロピーを提供することを要求する。ロック解除鍵暗号化保管庫鍵216を削除することによって、本明細書に記載されるいくつかの態様によると、アプリケーション240は、利用者にそのパスコードを提供させることなく保管庫データベース220を復号化することができなくなる。アプリケーションによって格納されたロック解除鍵は、パスコード暗号化保管庫鍵214を復号化するために使用することができず、アプリケーションは、利用者エントロピー情報の再入力、パスコード暗号化保管庫鍵214の復号化、及び保管庫レコード記憶域212の記憶域用のロック解除鍵暗号化保管庫鍵216の再作成によって共有保管庫が「ロック解除」されるまで、暗号化された保管庫データベース220にアクセスすることができない。
モバイル機器200は、持続性及び揮発性記憶装置の両方を含み得る。ランダムアクセスメモリ(RAM)等のような揮発性記憶装置は、モバイル機器200がオフになる、電力を失う、または再起動されるときに消去され得る。フラッシュメモリまたはハードディスク記憶装置等のような持続性記憶装置は、電力が失われたとしても格納された情報を維持し得る。いくつかの実施形態において、共有メモリ/記憶域205、及びロック解除鍵記憶域241a〜cは、持続性及び揮発性記憶装置の両方を使用して実装され得る。共有保管庫210、保管庫レコード記憶域212、パスコード暗号化保管庫鍵214、ロック解除鍵暗号化保管庫鍵216、保管庫データベース220、ロック解除鍵222、共有秘密225、アプリケーションi秘密226、及び/またはロック解除鍵記憶域241a〜cの各々は、特定実施形態において望ましい、持続性メモリ及び揮発性メモリの任意の組み合わせに格納され得る。
例えば、いくつかの実施形態において保管庫データベース220及びパスコード暗号化保管庫鍵214は、持続性記憶装置に格納され、一方でロック解除鍵暗号化保管庫鍵216及びロック解除鍵記憶域241a〜cは、揮発性メモリに格納され得る。結果として、電力の喪失または再起動においてアプリケーションによって格納されたロック解除鍵が失われることとなり、各アプリケーションは、アプリケーションを共有保管庫210に再登録しロック解除鍵222を得るために利用者にそのパスコードを入力させる必要があり得る。他の実施形態において、ロック解除鍵記憶域241a〜cは、利用者が、モバイル機器200の再始動時に毎回、アプリケーションを再登録する必要がないように、持続性メモリに格納され得る。ただし、ロック解除鍵暗号化保管庫鍵214を揮発性メモリに格納することによって、利用者は、電力の喪失及び/または再起動後、登録された各アプリケーション(ロック解除鍵を有する)が暗号化された保管庫データベース220にアクセスする前に、1つ以上のアプリケーションにそのパスコードを提供することを要求され得る。
いくつかの実施形態において、保管庫データベース220及び/または共有保管庫210自身が、揮発性メモリに格納され得る。共有保管庫はまた、企業リソース260に関連付けられたウェブサーバ等の、モバイル機器200によってアクセス可能なサーバ上に格納され得る。初回使用、電力の喪失、再起動にあたり、共有保管庫は、再作成される必要がある。マスターアプリケーション等の、モバイル機器200上のアプリケーションは、ウェブサーバから共有保管庫を取得しモバイル機器のメモリにおいて共有保管庫210を再作成するように動作し得る。共有保管庫210が持続性メモリに格納される場合でも、マスターアプリケーション等のアプリケーションは、初回使用または共有保管庫が削除、破損、若しくはさもなければ感染した場合においてウェブサーバから共有保管庫を取得する必要があり得る。
図2は、1つの共有保管庫210を例示するが、本明細書に記載される態様が1つよりも多い共有保管庫を提供し得ることが理解されるであろう。例えば、異なる共有保管庫が、モバイル機器200の異なる利用者用に提供され得る。モバイル機器は、第1の利用者用の第1の共有保管庫と、第2の利用者用の第2の共有保管庫とを含み得る。共有保管庫は、本明細書にさらに記載されるように、論理的に分離され、それぞれの利用者に関連付けられた全く別の利用者エントロピーによって独立して暗号化される。付加的及び/または代替的に、モバイル機器200は、異なる保護レベルを提供するために、1つよりも多い共有保管庫を維持し得る。例えば、モバイル機器は、第1の保護レベルを有するアプリケーション(例えば、第1の証明書を必要とする信頼されたアプリケーション)用の第1の共有保管庫と、第2の保護レベルを有するアプリケーション(例えば、第2の証明書を必要とする、より高度に安全なアプリケーション)用の第2の共有保管庫とを維持し得る。
図2に示されるように、本開示の種々の態様の提供及び/または実装に使用され得るコンピュータ環境例を説明してきたが、本開示のいくつかの態様による方法が、図3を参照して説明されるであろう。
図3は、本明細書に記載される1つ以上の態様による、利用者エントロピー及びシングルサインオン機能を使用してアプリケーション間の共有秘密へのアクセスを提供する方法の一例を例示する。1つ以上の実施形態において、図3に例示される方法及び/またはその1つ以上のステップは、コンピュータ機器(例えば、一般的なコンピュータ機器100及び/またはモバイル機器200)によって実行され得る。いくつかの実施形態において、図3に例示される方法は、管理されたアプリケーション環境において動作するモバイル機器によって実行され得る。モバイル機器は、1つ以上のアプリケーションを実行し、アプリケーションからの出力を表示するユーザインターフェースを生成し、そしてタッチ入力、ジェスチャー、マウス入力、キーボード入力、マイクロフォン入力、カメラ入力等を含む、入力形式の範囲から利用者入力を受け取り得る。他の実施形態において、図3に例示される方法及び/またはその1つ以上のステップは、非一時的コンピュータ可読メモリ等のコンピュータ可読媒体に格納されたコンピュータ実行可能命令において具体化され得る。
ステップ305において、管理されたアプリケーション等のアプリケーションは、サーバアクセス証明書等の共有秘密がそこに格納された共有保管庫にアクセスするプロセスを開始し得る。共有保管庫は、モバイル機器の安全ではないメモリ部に格納され、モバイル機器上で実行する任意のアプリケーションがアクセス可能であり得る。アプリケーションは、利用者に関連付けられたPIN、パスワード、及び/または生体識別データを利用者に提供させ得る。いくつかの実施形態において、アプリケーションは、利用者によるアプリケーションの初回使用に応答してステップ305を実行し得る。例えば、アプリケーションは、利用者によって新しくインストールされた管理された電子メールアプリケーションであり得る。いくつかの実施形態において、アプリケーションは、利用者の企業リソースへの初回アクセスの要求に応答してステップ305を実行し得る。いくつかの実施形態において、アプリケーションは、一時的な保管庫鍵レコード(例えば、図2のロック解除鍵暗号化保管庫鍵216)が削除またはさもなければ利用不可能となったことの判定に応答してステップ305を実行し得る。
ステップ310において、アプリケーションは、共有保管庫に格納されたパスコード暗号化保管庫鍵にアクセスし得る。アプリケーションは、復号化された保管庫鍵を生成するために、パスコード暗号化保管庫鍵を復号化し得る。パスコード暗号化保管庫鍵はさらに、機器エントロピー(例えば、機器に関連付けられ、管理されたアプリケーションによって既知/アクセス可能であり管理されていないアプリケーションによって既知/アクセス可能ではない固有値)によって暗号化され得る。これは、付加的な安全性を提供し利用者のパスコードを抽出するフィッシング攻撃の危険性を低下する助けとなり得る。付加的及び/または代替的に、パスコード暗号化保管庫鍵はさらに、アプリケーションエントロピー(例えば、アプリケーション内に埋め込まれ他のアプリケーションがアクセス可能ではない値)によって暗号化され得る。このような実施形態において、共有保管庫は、各アプリケーションに対応する複数のパスコード暗号化保管庫鍵を格納し得る。
ステップ315において、アプリケーションは、復号化された保管庫鍵を使用して共有保管庫の保管庫データベースをロック解除し得る。アプリケーションは、復号化された保管庫鍵を使用して保管庫データベースに格納された情報を復号化し得る。例えば、アプリケーションは、保管庫データベースに格納された、ネットワーク証明書等の共有秘密にアクセスし得る。さらに、アプリケーションは、保管庫データベースに格納されたロック解除鍵にアクセスし得る。
ステップ320において、アプリケーションは、アプリケーションに関連付けられたメモリにロック解除鍵を格納し得る。ロック解除鍵は、アプリケーションによって使用するために、システムに管理されるアプリケーション固有メモリに、アプリケーションによって格納され、他のアプリケーションによってアクセス不能なメモリに格納され得る。ロック解除鍵は、共有保管庫に格納されたロック解除鍵暗号化保管庫鍵レコードを復号化するために、アプリケーションによって使用され、これによって利用者エントロピーをリクエストする次回のプロンプトを省略することをアプリケーションに可能とし得る。ロック解除鍵暗号化保管庫鍵が共有保管庫に格納されない場合、アプリケーション及び/または共有保管庫は、ロック解除鍵、復号化された保管庫鍵、及び/または機器エントロピーを使用してロック解除鍵暗号化保管庫鍵を生成し得る。アプリケーション及び/または共有保管庫は、ロック解除鍵暗号化保管庫鍵を共有保管庫に書き込ませる。
ステップ325において、アプリケーションは、共有保管庫へのアクセスを再度開始する。ステップ330において、アプリケーションは、ロック解除鍵暗号化保管庫鍵が共有保管庫に存在するか否かを判定する。ロック解除鍵暗号化保管庫鍵が共有保管庫に存在する場合、方法は、ステップ335に進み、アプリケーションがロック解除鍵暗号化保管庫鍵を復号化し、保管庫データベースにアクセスするために復号化された保管庫鍵を使用する。
ロック解除鍵暗号化保管庫鍵が削除されている、またはさもなければ共有保管庫において利用不能である場合、方法は、ステップ340に進む。ロック解除鍵暗号化保管庫鍵は、共有保管庫によって格納されたアイドル時間タイマーに基づいて削除され、共有保管庫へのアクセスに登録されたアプリケーションによって管理され得る。ステップ340において、アプリケーションは、利用者に利用者エントロピーを提供させる。ステップ345において、アプリケーションは、パスコード暗号化保管庫鍵を復号化するために、利用者エントロピーを使用する。ステップ350において、アプリケーションは保管庫データベースを復号化し、これにアクセスするために、復号化された保管庫鍵を使用する。アプリケーションはまた、ロック解除鍵、復号化された保管庫鍵、及び/または機器エントロピーに基づいてロック解除鍵暗号化保管庫鍵を生成し、ロック解除鍵暗号化保管庫鍵を共有保管庫に書き込む。
本開示の種々の態様の提供及び/または実装に使用され得る、コンピュータ環境例及び方法例を説明してきたが、いくつかの実施形態がここでさらに詳細に説明されるであろう。
上記のように、いくつかの実施形態において、モバイル機器上で動作するアプリケーションは、管理されたフレームワークの一部であり、管理サービスを提供しアプリケーションの動作に関する種々のポリシーを実装し、これらのアプリケーションによる企業リソースのアクセスを容易化する安全なラッパーにおいてラップされ得る。いくつかの実施形態において、管理されたフレームワークは、フロリダ、フォートローダーデールのシトリックスシステムズ株式会社によって提供されるXenMobile及びMDXフレームワークであり得る。機器は、管理されたフレームワークに関連付けられたマスターアプリケーションを含み得る。例えば、機器は、MDXフレームワークに関連付けられたWorxHomeアプリケーションを含み得る。いくつかの実施形態は、MDXフレームワーク、WorxHome、及び他のMDXアプリケーションを利用することが開示されているが、本明細書に記載される技術及び機能は、マスターアプリケーションを含む、または含まない、任意の適切な機器管理または企業リソースアクセスフレームワークを使用して実装され得る。
上記のように、本開示のいくつかの態様は、利用者エントロピー(パスコード等)によって暗号化された共有保管庫への登録を介してアプリケーションにシングルサインオン機能を提供することに関する。いくつかの実施形態において、共有保管庫にアクセスし得るアプリケーションは、管理されたアプリケーション(MDXアプリケーション、または任意の適切なフレームワークのアプリケーション等)である。共有保管庫は、初回使用においてマスターアプリケーション(WorxHome、または任意の適切なマスターアプリケーション等)及び/または管理されたアプリケーションによって作成され得る。共有保管庫は、利用者、アプリケーション、及び/または機器エントロピーによって安全なものとされ得る。各々の管理されたアプリケーションは、マスターアプリケーションへの登録を調整すべく、プロセス間通信を使用するために有するのではなく、初回使用においてそれ自身を共有保管庫に登録し得る。各々の管理されたアプリケーションは、例えば、グローバルまたはアプリケーション単位のアイドル時間タイマーに基づき得る保管庫ロック状態を管理することにおいて補助を行い得る。管理されたアプリケーションは、「ロック解除」を行い、本明細書に記載されるシングルサインオン技術によって共有保管庫にアクセスし得るが、保管庫は、暗号化形式において格納されたままとなる。
いくつかの実施形態は、1つ以上の安全性及び利用者体験モードを提供し得る。安全性(及び利用者体験)モードは、モバイル機器、フレームワーク、アプリケーションのグループ、及び/または個々のアプリケーションの種々の設定を示し得る。対話モードにおいて、アプリケーションは、初回使用及びアイドル時間期限後、利用者に利用者エントロピー(パスコード等)を提供させ得る。このモードは、他のモードに対し付加的な安全性機能を提供し得る。複合モードにおいて、アプリケーションは、初回使用において、利用者にワンタイムパスワード等のパスコードまたはパスワードを提供させ得る。続いて、アプリケーションは、共有保管庫に「登録」され、ロック解除鍵を格納することによって、共有保管庫にアクセスするために利用者エントロピーの再入力を利用者に要求しなくてもよい。非対話モードにおいて、共有鍵が、利用者エントロピーに代えて使用され得る。このようなモードにおいて、共有鍵は、アプリケーション及び/またはラッパーに構築可能であり、または共有鍵は、管理されたアプリケーションサーバによって分散可能である。非対話モードは、より攻撃されやすいが、連続した利用者体験が重要である場合に好ましい実装であり得る。ただし、各モードにおいて、システムは、危険なアプリケーションにパスコードを提供するように利用者を騙し得るフィッシング攻撃を防止すべく、共有保管庫をさらに暗号化するためにアプリケーションエントロピー及び/または機器エントロピーを利用し得る
本明細書に記載されるいくつかの態様は、分散された認証サービスを提供し、1つの登録されたアプリケーションにおける成功した認証を他の登録されたアプリケーションに反映可能とし得る。認証マネージャ論理は、企業/モバイルアプリケーション管理アプリケーションの各ライン内に構築され得る。認証状態(例えば、アクセスゲートウェイチケット、証明書、SAMLトークン、部分または完全VPNスタック等)は、共有保管庫によって登録されたアプリケーション間において同期され得る。認証プロンプトは、各アプリケーションに埋め込まれ得る。結果として、利用者は、アプリケーションに登録し別のアプリケーションにおいて認証された企業リソースにアクセスを開始し得る。これは、複数のアプリケーション間におけるコンテキストスイッチ(または「フリップ」)を回避し得る。
共有保管庫用の論理的構造の一例は、図2に関して上述された。いくつかの実施形態において、共有保管庫のレコード保持部は、永久保管庫鍵レコード(例えば、いくつかの実施形態における、パスコード暗号化保管庫鍵212)、及び一時的保管庫鍵レコード(例えば、いくつかの実施形態における、ロック解除鍵暗号化保管庫鍵216)を格納し得る。共有保管庫に格納されたデータは、保管庫鍵を使用して保護され得る。保管庫鍵は、強固な暗号化方式に関連付けられ得る。例えば、いくつかの実施形態において保管庫鍵は、RSA暗号化用の2048ビット鍵であり得る。保管庫鍵は、暗号化され、1つ以上の永久保管庫鍵レコードに格納され得る。いくつかの実施形態において、1つの永久保管庫鍵レコードがあり、それは、利用者エントロピー(パスコード等)及び機器エントロピー(機器に関連付けられ管理されたアプリケーションによってアクセス可能な固有値であり得る)によって暗号化され得る。本明細書に記載されるいくつかの態様によると、機器エントロピーは、共有保管庫を利用するために認証された、管理されたアプリケーションにとって容易にアクセス可能であり、管理されていないアプリケーションによってアクセスが困難及び/またはアクセス不能であり得る。他の実施形態において、機器上に格納された管理されたアプリケーションのうちのそれぞれ1つに対応する複数のレコードがあり得る。複数のレコードの各々は、利用者エントロピー、機器エントロピー、及びそれぞれのアプリケーションに関連付けられたアプリケーションエントロピーによって暗号化され得る。これは、例えば、攻撃者が利用者エントロピーを出し抜くことを可能とするパスコードフィッシング攻撃を防止することによる、向上された安全性を提供し得る。
保管庫鍵はまた、AES鍵等のロック解除鍵(シングルサインオン(SSO)鍵とも呼ばれ得る)、及び機器エントロピーを使用して暗号化された1つ以上の一時的保管庫鍵レコードに格納され得る。一時的保管庫鍵レコード(シングルサインオン(SSO)レコードとも呼ばれ得る)は、寿命を有する、または所定のアイドル時間期限が経過するまで維持され得る。共有保管庫に登録されたアプリケーションは、一時的保管庫鍵レコードを復号化するために使用されたロック解除鍵を格納し得る。これは、登録された/信頼されたアプリケーションがアイドル時間タイマーの持続期間中に共有保管庫に格納された共有秘密を復号化しこれにアクセスすることを可能とし得る。これは、1つの登録されたアプリケーションが別のアプリケーションによって認証された企業リソースにアクセスし得るように、登録されたアプリケーション内のシングルサインオン機能を提供するために使用され得る。共有保管庫のレコード維持部はまた、パスコード検証ツールを格納し得る。パスコード検証ツールは、利用者提供利用者エントロピーが有効であるか否かを判定するために使用され得る。一実施形態において、パスコード検証ツールは、利用者エントロピーによって暗号化され、元の句と共に、管理されたアプリケーションによってアクセス可能な機器エントロピーを使用してハッシュ及び暗号化の両方が行われたランダム句を含み得る。
共有保管庫はまた、保管庫データベースを含み得る。保管庫データベースは、保管庫鍵を使用して暗号化され得る。保管庫データベースは、アクセスゲートウェイチケット、SAMLトークン、証明書、共通ポリシー等のような、登録されたアプリケーション間で共有される共通の秘密を格納し得る。保管庫データベースはまたは、アプリケーション単位の秘密を格納し得る。アプリケーション単位の秘密は、それぞれのアプリケーションのアプリケーションエントロピーによってさらに暗号化され得る。これは、他のアプリケーションが別のアプリケーションの秘密データにアクセスすることを防止し得る。アプリケーション単位の秘密は、S1及びS2秘密(例えば、サーバが生成したアプリケーション単位のデータ暗号化鍵)、証明書、アプリケーション単位のポリシー等を含み得る。
保管庫データベースはまた、SSO鍵レコード(例えば、いくつかの実施形態における、ロック解除鍵222)を含み得る。SSO鍵は、一時的保管庫鍵レコードの復号化に使用するためのAES256ビット鍵であり得る。ここに記載される実施形態の例は、AES復号化鍵を使用するが、任意の適切な暗号化アルゴリズム及び対応する鍵形式が、一時的保管庫鍵レコードを安全なものとするために使用可能であることが理解されるであろう。各々の登録されたアプリケーションは、SSO鍵を保管庫データベースから取得し、SSO鍵をそのアプリケーション固有の永久記憶域/揮発性記憶域に格納する。例えば、ウィンドウズ(登録商標)フォンオペレーティングシステムを実行するモバイル機器において、SSO鍵は、アプリケーション分離記憶域に格納され得る。別の例のように、iOSオペレーティングシステムを実行するモバイル機器において、SSO鍵は、アプリケーションに関連付けられたキーチェーンに格納され得る。格納されたSSO鍵は、機器エントロピー及び/またはそれぞれのアプリケーションのアプリケーションエントロピーを使用してさらに暗号化され得る。保管庫データベースは、共有保管庫及び保管庫鍵に関連付けられたアイドル時間を捕捉するアイドル時間タイマーをさらに含み得る。アイドル時間タイマーは、利用者エントロピーを使用する保管庫の最後のロック解除のタイムスタンプ及び/またはプロセッサティック数を捕捉し得る。他の実施形態において、アイドル時間タイマーは、利用者エントロピーまたはSSO鍵を使用して共有保管庫がアクセスされてからの経過時間を捕捉し得る。いくつかの実施形態において、利用者エントロピーによる最後のロック解除及びSSO鍵を使用する最後のアクセスの組み合わせが使用され得る。アイドル時間の捕捉に使用される基準は、1つ以上のポリシーによって設定可能であり、複数の基準を利用可能である。基準は、グローバル、アプリケーションのグループに関するもの、及び/または個々のアプリケーションに関するものであってもよい。異なるアイドル時間基準が、異なる共有保管庫に対して使用可能であり、アイドル時間基準は、利用者の好み従って利用者によって設定可能である。
図4は、本明細書に説明される1つ以上の例示的な態様による、論理的共有秘密保管庫420の実装例400を図示する。図4(及び後続図)において使用されるように、表記「鍵{データ}」(例えば、「パスコード{保管庫鍵}」)は、データアイテムが鍵によって暗号化される(例えば、保管庫鍵がパスコードを使用して暗号化される)ことを示す。図4は、エントリ430と、共通秘密446、ならびにアプリケーション単位の秘密448a、448b、及び448cを含む保管庫データベース440とを保持する保管庫レコードの全てが同一メモリ位置(例えば、安全ではない共有アプリケーションメモリ405)を共有する論理的共有保管庫設計400の実施形態の一例を例示する。
図4の実装例において、アプリケーション410a、410i、及び410n(まとめるとアプリケーション410)は、共通秘密446を交換するために共有メモリ405を利用し得る。共有メモリ405は、機器エントロピーを使用して暗号化される共有保管庫420を格納するように構成され得る。共有保管庫は、保管庫レコード保持部430及び保管庫データベース440を備え得る。保管庫データベース440は、保管庫鍵を使用してさらに暗号化され得る。保管庫データベース440は、AGチケット、SAMLトークン、証明書、及びポリシー等の共通秘密446を格納し得る。保管庫データベースは、アプリケーション固有エントロピー及び/またはアプリケーション固有鍵によってさらに暗号化され得るアプリケーション単位の秘密448a、448b、及び448cをさらに格納し得る。アプリケーション単位の秘密448は、S1及びS2情報、証明書、STAチケット、ならびに/または特定アプリケーション用のポリシーを含み得る。
保管庫レコード保持部430は、保管庫鍵を得るために使用可能な1つ以上の暗号化されたレコードを格納し得る。第1の保管庫鍵レコードは、上記のように、それぞれのパスコード/認証ユーザインターフェース412a、412i、または412nを介して特定アプリケーション410によって利用者から受信したパスコードを使用して保管庫をロック解除するために使用され得る、利用者エントロピー暗号化保管庫鍵レコード、またはパスコード暗号化保管庫鍵レコード432であり得る。付加的または代替的に、保管庫レコード保持部430は、アプリケーション固有エントロピーとの組み合わせにおいてパスコードを使用して暗号化され得る、複数のアプリケーション単位の保管庫鍵レコード434を格納し得る。アプリケーション固有エントロピーは、いくつかの実施形態において機器エントロピーと共に、それぞれのアプリケーションによって使用するためにアプリケーションメモリ414a、414i、414nに格納され得る。アプリケーション単位の保管庫鍵レコード434は、それぞれのアプリケーション410によって、そのパスコード/認証UI 412を介して受信したパスコードを使用して保管庫をロック解除するために使用され得る。
一旦、アプリケーションが保管庫鍵をパスコード暗号化保管庫鍵レコード432または434から復号化すると、アプリケーションは、保管庫鍵を使用して保管庫データベース440を復号化し得る。アプリケーションは、パスコード暗号化保管庫鍵レコード432及び/またはそれぞれのアプリケーション単位のパスコード暗号化保管庫鍵レコード434を復号化することによって、保管庫鍵の第1のコピーを生成し得る。アプリケーションは、保管庫鍵の第1のコピー(または保管庫鍵の任意のコピー)を格納することを回避及び/または防止し得る。
共通秘密446及びアプリケーション単位の秘密448を格納することに加え、保管庫データベース440は、本明細書においてロック解除鍵とも呼ばれる、SSO鍵442を格納し得る。SSO鍵442は、利用者のパスコードの更なる入力を必要としない保管庫の後のアクセスのために保管庫を復号化したアプリケーションによってアクセスされ格納され得る。SSO鍵442は、保管庫を復号化したアプリケーションによってアプリケーションメモリ414に格納され得る。SSO鍵442は、SSO鍵442を使用して暗号化された保管庫鍵を備える第2の保管庫鍵レコード436を生成するために、アプリケーションによって使用され得る。この第2の保管庫鍵レコード436は、保管庫レコード保持部430に格納可能であり、これによって保管庫を「ロック解除」状態とする。パスコード暗号化保管庫鍵レコードを使用して保管庫を復号化しSSO鍵442を格納した任意のアプリケーションは、その後、第2の保管庫鍵レコード436を復号化することによって保管庫データにアクセスし得る。結果として、利用者エントロピーを使用して保管庫を事前にロック解除したアプリケーションは、利用者にパスコードの再入力を要求することなく、後の時間において保管庫にアクセスすることが可能となり得る。
保管庫データベース440は、アイドル時間タイマー444を格納し得る。アイドル時間タイマー444は、共有保管庫420が少なくとも所定時間期限に対してアイドルしているか否かを判定するために、管理されたアプリケーションによって使用される値であり得る。アプリケーション410が第2の保管庫鍵レコードまたはSSO鍵暗号化保管庫鍵436を使用して共有保管庫420にアクセスを試行するときに、アプリケーションは、保管庫がロック解除されたままであるか否かを判定するために、アイドル時間タイマーを確認し得る。アイドル時間タイマー444が、保管庫が設定された閾値時間よりもアイドルしていることを示す場合、アプリケーションは、第2の保管庫鍵レコードまたはSSO鍵暗号化保管庫鍵436を削除/除去し、保管庫をロック解除するために、利用者に利用者エントロピーを再度入力させるように構成され得る。
図5は、本明細書に説明される1つ以上の例示的な態様による、論理的共有秘密保管庫520の別の実装例500を図示する。図5は、図4のものと類似の論理的共有保管庫設計を例示する。図5において、鍵の管理は、同様の方法で実施されるが、アプリケーション単位の秘密が、保管庫アセットの余剰部とは別のアプリケーション固有記憶域548a、548b、及び548cに格納され得る。例えば、保管庫鍵レコード532、534、及び536は、安全ではない共有アプリケーションメモリ505の保管庫レコード保持部530に格納可能であり、共有秘密546は、安全ではない共有アプリケーションメモリ505の保管庫データベース540に格納可能であり、一方でアプリケーション固有秘密548a、548b、548cは、指定された、及び/または隔離されたアプリケーションメモリに格納され得る。一例において、モバイル機器がウィンドウズ(登録商標)フォンオペレーションシステムを使用する場合、アプリケーション単位の秘密は、アプリケーション隔離記憶域等のアプリケーション永久記憶域に格納され得る。別の例において、モバイル機器がiOSオペレーティングシステムを使用する場合、アプリケーション単位の秘密は、アプリケーションに関連付けられたキーチェーンに格納され得る。図5に例示される設計は、全てのアセットを保持する攻撃の単一点(ハニーポット)を回避する付加的な安全上の利益を提供し得る。さらに、分割記憶域保管庫設計は、異なる安全性、ならびに利用者体験の好み及びポリシーによって、異なるアセットに対して使用されることを異なる形式のメモリに可能とし得る。異なる形式のメモリの使用及びその利点は、以下にさらに説明される。
一方で、図5の同じ名称の構成要素は、図4に関して上述されたものと同様の方法で動作する。共有メモリ505、共有保管庫520、保管庫レコード保持部530、及び保管庫データベース540は、以下にさらに記載されるものを除いて、図4において対応するものと同様の情報を格納し同様に動作し得る。アプリケーション510a、510i、510nは、図4のアプリケーション410a、410i、及び410nに対応する。パスコード/認証UI 512a、512i、及び512n、ならびにアプリケーション固有メモリ514a、514i、及び514nは、図4において対応するものと同様の情報を格納し同様の動作に動作し得る。
上述されるように、分割記憶域の使用は、共有保管庫及び管理されたアプリケーションによって格納された異なる部分のデータを格納するために、異なる形式の記憶域の使用を可能とし得る。アプリケーション固有アセットを含有するデータベースの一部に対する永久記憶域の使用は、いくつかの実施形態において、機器の再起動後でさえアセットの入手を可能とし、アセット/秘密が長寿命となるように設計される(例えば、S1及びS2アプリケーション単位のデータ暗号化鍵、証明書、セキュアチケットオーソリティ(STA)チケット、アプリケーションポリシー)。代わりにそれらが揮発性メモリに保持される場合、機器の再起動後、アプリケーションは、これらのアセットをサーバから再度取得しなければならず、付加的な認証が必要となり、利用者体験を分断し得る。
保管庫レコード保持エントリ及び共通アセット(例えば、アクセスゲートウェイチケット、SAMLトークン、証明書、共通ポリシー)を含有するデータベースの一部に対する揮発性メモリの使用は、いくつかの実施形態において、付加的な安全対策を提供し得る。機器の「ルート化」は、通常、少なくとも1回の再起動を必要とし、これは、全ての保管庫レコード保持エントリ及び共通秘密が、正しい認証なしで攻撃者によって復旧不能であり得ることを意味する。SSO(ロック解除)鍵によって暗号化された一時的保管庫鍵レコード及び機器エントロピーはまた、揮発性メモリに格納可能であり、また再起動にあたりメモリから除去され得る。
揮発性メモリが共有保管庫の1つ以上の部分を格納するために使用されるときには、いくつかの実施形態において、保管庫レコード保持エントリのコピー及び共通アセットは、マスターアプリケーション(例えば、WorxHome/Receiver)の永久隔離記憶域及び/または最初に保管庫を作成した管理されたアプリケーション、あるいは登録され管理された全てのアプリケーションにおいてまた保持可能である。機器の再起動にあたり、いくつかの実施形態において、アセットは、認証に続き永久記憶域から復旧され得る。利用者が登録されたアプリを最初に起動するか否かに依らず、復旧は、認証の前に、利用者エントロピー(例えば、パスコード)用のプロンプト等のマスターアプリケーションまたは登録され管理されたアプリケーションへの単一フリップを伴う。アクセスゲートウェイトークン等の共通アセットが古くなると、それらの復旧はまた、サーバへの再認証を伴う。
いくつかのモバイルプラットフォームにおいて共有揮発性メモリは、利用することができず、持続性メモリのみが利用可能であり得る。いくつかの実施形態において、機器の再起動にあたり、マスターアプリケーションまたは利用者によって最初に起動された任意の管理されたアプリケーションは、例えば、システムログエントリを読み取ることによって、機器が再起動されたことを検出可能であり、SSO(ロック解除)鍵によって暗号化された一時的保管庫鍵レコード及び/または共通アセットを意図的に除去可能である。これは、共通アセットを取得すべく、保管庫のロック解除及び/またはサーバへの再認証を行うために、利用者エントロピー(例えば、パスコード)に対する要求を引き起こし得る。共有揮発性メモリが利用可能なときでも、ポリシーが厳重な安全よりも利用者体験を重視する設定である場合、保管庫レコード保持エントリ及び共通アセットは、機器の再起動に続いてシームレスな体験を可能とするために、永久記憶域に保持され得る。
いくつかの実施形態において、共有保管庫はまた、サーバ上にキャッシュされ得る。いくつかの実施形態において、共通アセットのみが、サーバ上にキャッシュ可能であり、一方で保管庫レコード保持エントリが、ローカル共有メモリに格納可能であり、マスターアプリケーション(例えば、WorxHome/Receiver)または上記のように最初に保管庫を作成した管理されたアプリケーションからさらに復旧可能である。サーバキャッシュからの保管庫の復旧は、機器がオンラインであることを必要とし得る。ただし、共通アセットは、基本的に、サーバアクセスに有用であり、したがって、一旦、機器がオンラインになると、それらを復旧することは、安全性を向上させつつ利用者体験に大きな負の影響を及ぼさないであろう。
いくつかのプラットフォームにおいて、またいくつかの実施形態において、共有保管庫(持続性または揮発性メモリのいずれに格納されるにしても)は、偶発的またはサーバ攻撃の意図的な拒絶の一部として、別のアプリケーションによって消失または除去され得る。例えば、iOS上の保護されていないペーストボードまたはウィンドウズ(登録商標)フォン上の共有ライブラリ内のファイルを使用するときに、任意のアプリケーションは、共有記憶域を除去または破損し得る。このような場合において、動作中の管理されたアプリケーションは、消失または破損保管庫状態を検出可能であり、上記のように、ローカルまたはサーバ基盤のいずれかのキャッシュされたバージョンから保管庫を復旧可能である。
図4及び5に図示される共有保管庫実装の処理の更なる詳細が図6A〜15を参照して以下に提供される。図6A〜12Bは、本明細書にさらに記載される1つ以上の態様によるプロセスフロー例を例示する。各図は、企業サーバ601、マスターアプリケーション602、アプリケーションi 603、アプリケーションn 604、共有メモリ/記憶域605、及び安全なアプリケーションラッパー606を含むように例示される。いくつかの図は、第2の保管庫607、ゲートウェイ608、企業リソース609、及び/またはアクティブディレクトリサービス611等の更なるエントリを含むように例示される。図13〜15は、プロセスフローの更なる例を例示し、安全なアプリケーションラッパー606及びペーストボードサービス610を含む。図6A〜15の同じ名前及び同じ符号箇所は、以下にさらに記載されるように、付加的及び/または代替的なステップ及び/または役割を実行する同一のそれぞれの論理的エントリを表す。
図6Aは、本明細書に説明される1つ以上の例示的な態様による、共有秘密保管庫の作成を例示するプロセスフロー例を図示する。図6Aに例示されるように、ステップ611において、WorxHome等のマスターアプリケーション602が機器に展開される。マスターアプリケーション602は、ステップ612において、XenMobile等の企業サーバ601にログオンし、ステップ613において機器及び企業リソース用の安全性ポリシーを取得し得る。マスターアプリケーション602は、ステップ614及び615において、MDX等のフレームワークを使用して、1つ以上の他の管理されたアプリケーション、例えば、アプリケーションi 603、アプリケーションn 604のインストールを容易化し得る。マスターアプリケーション602は、ステップ616において、共有保管庫を作成し、機器エントロピーを使用して共有保管庫を暗号化し得る。ステップ617において、マスターアプリケーション602は、利用者にパスコード(及び/または他の利用者エントロピー)を提供させ、ステップ618において、保管庫鍵を生成し得る。いくつかの実施形態において、保管庫鍵は、安全な乱数生成APIを使用して生成され得る。
例示された実施形態において、ステップ619でマスターアプリケーション602は、各々のインストールされたアプリケーション用の暗号化された保管庫鍵レコードを生成する。各アプリケーション用の保管庫鍵レコードは、アプリケーションエントロピー及び利用者エントロピーを使用して暗号化される。他の実施形態において、単一の暗号化された保管庫鍵レコードが生成され、利用者エントロピーによって暗号化されてもよい。例示された実施形態において、ステップ620でマスターアプリケーション602は、保管庫鍵によって暗号化された共有保管庫データベースを共有メモリ/記憶域605に作成する。ステップ621において、マスターアプリケーション602は、サーバアクセス証明書及び共有ポリシー等の共有秘密を共有保管庫データベースに書き込み得る。ステップ622において、マスターアプリケーション602は、同様に、アプリケーション固有秘密を共有保管庫データベースに書き込み得る。ステップ623において、マスターアプリケーション602は、SSO鍵を生成し、マスターアプリケーション602に関連付けられたアプリケーション固有記憶域にSSO鍵を格納し得る。ステップ624において、マスターアプリケーション602は、SSO鍵を使用して暗号化された保管庫鍵を備える第2の保管庫鍵レコードを生成し、第2の保管庫鍵レコードを共有保管庫に格納し得る。ステップ625において、マスターアプリケーション602は、SSO鍵を共有保管庫データベースに書き込み、ステップ626において、アイドル時間タイマーを初期化し得る。
いくつかの実施形態において、利用者エントロピーモードが設定され、共有保管庫が作成されるときに、パスコード検証ツールがまた、保管庫レコード保持構造を作成することの一部として共有保管庫に作成され得る。パスコード検証ツールは、格納されたアセット上で暗号化処理を試行する前に、正しいパスコードが利用者によって入力されたことを検証することに役立つ。いくつかの実施形態において、パスコード検証ツールは、元のランダム句と共に、利用者エントロピー(パスコード)によって暗号化されたランダム句を備え、これらの両方は、ハッシュされ、機器エントロピーによって暗号化され得る。他の実施形態は、トークン、サーバ、対となった機器、ラップトップ、スマートウォッチ等のような他の機器に由来する付加的なエントロピーの使用を伴い得る。
いくつかの実施形態において、異なるコンテンツが、認証プロンプトに対するあいまいさをなくすことを理由に種々の認証ユーザインターフェースに含まれ得る。アプリケーションの初回使用において、アプリケーションは、アプリケーションに企業ネットワーク、キャッシュ、証明書、共有記憶域、アプリケーションポリシー等へのアクセスを許可することとなる企業コンテナへのアクセスをアプリケーションが許容される保証を探索する登録ユーザインターフェースを提示し得る。例えば、WorxMail等の管理されたアプリケーションは、「WorxMailは、企業アプリケーションとして動作する許可を要求します。許容する場合、あなたのWorxPINを入力して下さい。許容しない場合、終了して下さい」と述べるプロンプトを生成し得る。その後において、一旦、アプリケーションが登録されると、アプリケーションは、利用者のパスコード(例えば、管理されたフレームワーク内のPIN)を要求する異なるロック解除ユーザインターフェースを提示し得る。このユーザインターフェースは、保管庫がアイドル時間期限後にロックされた後のように、共有秘密保管庫をロック解除すべく、利用者エントロピーを取得するために使用され得る。別の異なるユーザインターフェースが、共有保管庫の確立またはネットワークサービスへのアクセスの付与を行うべく、利用者証明書を取得するためにマスターアプリケーションによって提示されるネットワークレベル認証ユーザインターフェース等の、他の認証用に使用され得る。例えば、マスターアプリケーションは、利用者にその利用者名、企業パスワード(保管庫をロック解除するために使用されるそのパスコードとは別のものであり得る)、及び/または第2の形式の認証(トークンまたは他の二要素認証形式等)を入力させ得る。
いくつかの態様によると、利用者がアプリケーションにおいてその登録の試行中に正しいパスコードの入力に失敗した場合、システムは、アプリケーション単位に基づく失敗した入力の回数を数え得る。失敗した入力の回数が最大値、例えば、15回の失敗した入力を超えた場合、アプリケーションはロックされ得る。いくつかの実装において、利用者は、その後、そのアプリケーションの削除及び再ダウンロードを要求され得る。若しくは、利用者が、いくつかの他の形式の認証を介してアプリケーションをロック解除可能であり、またはアプリケーション及び/または利用者のアカウントをロック解除する管理者を有する。いくつかの実施形態において、アプリケーションは、登録され共有保管庫へのアクセスを得る前に他のアプリケーションと回数の共有を行うことができないので、パスコード用のグローバルな最大失敗入力回数は、存在し得ない。
図6Aに例示される実施形態において、保管庫鍵は、マスターアプリケーション602によって生成される。いくつかの実施形態において、保管庫鍵は、サーバ601によってランダムに生成され、図6Bに例示されるような安全な接続(後述する)を介してマスターアプリケーション602に送達され得る。サーバによる保管庫鍵の生成は、サーバが保管庫鍵をキャッシュすることも可能であり、サーバへの強固な認証に基づいてマスターアプリケーションによって保管庫鍵を復旧可能である利点を有し得る。
図6Bは、いくつかの実施形態に従う、企業サーバによる保管庫鍵の作成を例示するプロセスフローの別の例を図示する。図6Bに例示されるプロセスは、図6Aに例示されるステップ611からステップ617と同様に進む。ステップ631において、共有メモリ605に格納される共有保管庫を保護することに使用するために、企業サーバ601が保管庫鍵を提供することをマスターアプリケーション602が要求し得る。ステップ632において、企業サーバ601は、保管庫鍵を作成し格納し得る。ステップ633において、企業サーバ601は、作成された保管庫鍵をマスターアプリケーション602に戻し得る。マスターアプリケーション602が保管庫鍵を企業サーバ601から受信した後、プロセスは、図6Aに対して上述されたステップ619〜626に続き得る。
図6Cは、共有保管庫の作成、第2の保管庫鍵レコードまたはロック解除鍵暗号化保管庫鍵を安全に格納するために第2の保管庫607をさらに利用する共有保管庫の使用を例示するプロセスフローの別の例を図示する。第2の保管庫607は、共有保管庫を安全にするために使用されるパスコードまたは他の利用者エントロピーとは異なる第2の形式のエントロピーを使用して保護され得る。例えば、第2の保管庫607は、指紋、網膜スキャン、声紋、または他の生体識別データ等の利用者に関連付けられた生体識別情報を使用して保護され得る。いくつかの実施形態において、第2の保管庫607は、例えば、iOS機器によって提供されるTouch ID機能を介し、利用者の指紋を使用して保護され得る。生体識別エントロピーによって保護された第2の保管庫607の使用は、PINまたはパスワードを入力するよりも簡便であり得るので、利用者体験を向上し得る。図6Cに例示されるプロセスは、図6Bに例示されるステップ611からステップ626と同様に進む。
共有保管庫が利用者エントロピーを使用して暗号化された後、マスターアプリケーション602(または他のアプリケーション603、604)は、SSOレコード、例えば、SSO鍵暗号化保管庫鍵または第2の保管庫鍵レコードを第2の保管庫607に書き込ませる。ステップ641において、利用者は、利用者に関連付けられた生体識別データ(例えば、指紋)等の第2のエントロピーを提供することによって、第2の保管庫をロック解除し得る。いくつかの実施形態において、アプリケーションは、利用者に第2のエントロピーを入力させることなく、第2の保管庫に書き込むことができ得る。ステップ642において、アプリケーションは、以下のように第2の保管庫の使用を介して共有保管庫をロック解除するために第2のエントロピーの使用を可能とし得る。基本的に、マスターアプリケーション602は、SSOレコードを第2の保管庫607内に格納し得る。この格納は、いくつかの実施形態において、第2の保管庫の使用がグローバルまたはアプリケーション単位のグループに共有可能であるか否かに応じて、それぞれ、保管庫作成中、及び/またはアプリケーション登録中に行われ得る。第2の保管庫607が全アプリケーション間(グローバル)で共有される場合、共有保管庫の作成中にSSOレコード、つまりSSO鍵/ロック解除鍵暗号化保管庫鍵を第2の保管庫607に格納する利点があり得る。
アプリケーションがその後、例えば、アイドル時間期限後にSSO鍵暗号化保管庫鍵が共有保管庫から除去され、共有保管庫にアクセスを試みたときに共有保管庫がロックされることが起こった場合、アプリケーションは、SSOレコードを取得するために、第2のエントロピーを使用して第2の保管庫607を認証/ロック解除し得る。一旦、SSOレコードが第2の保管庫607から取得されると、アプリケーションは、共有保管庫の保管庫レコード保持部(例えば、保管庫レコード保持部430または530)にSSOレコードを書き込むことによって、全ての登録されたアプリケーションに対し共有保管庫をロック解除し得る。
図7Aは、本明細書に説明される1つ以上の例示的な態様による、共有秘密保管庫を含む登録プロセスを例示するプロセスフロー例を図示する。
図7Aに例示されるように、管理されたアプリケーション603は、ステップ711において、PIN等の利用者エントロピーを利用者に提供させ得る。管理されたアプリケーション603は、初回使用及び/またはシステムが電力を喪失または再起動された後において利用者にパスコードを入力させ得る。パスコードを使用して、管理されたアプリケーション603は、ステップ712において保管庫鍵をロック解除し取得することができ得る。アプリケーション603は、パスコードを使用して(例示される実施形態において、管理されたアプリケーション603に関連付けられたアプリケーションエントロピーもまた使用する)暗号化された第1の保管庫鍵レコードから復号化され得る保管庫鍵の第1のコピーを生成し得る。ステップ713において、アプリケーション603は、復号化された保管庫鍵の第1のコピーを使用して共有保管庫内の保管庫データベースをロック解除し得る。ステップ714において、管理されたアプリケーション603は、ステップ715において、SSO鍵を共有保管庫から読み出し、アプリケーション固有記憶域にSSO鍵を格納し得る。ステップ716において、管理されたアプリケーション603は、管理されたアプリケーション603によって実施された新しい利用者エントロピーロック解除に応じてアイドル時間タイマーをリセットし得る。ステップ717及び718において、管理されたアプリケーション603は、共有保管庫から共通秘密を読み出し及び書き込み得る。ステップ720及び721において、管理されたアプリケーション603は、共有保管庫に対しアプリケーション固有秘密の読み出し及び書き込みを行い得る。管理されたアプリケーション603は、いくつかの実施形態において、共有保管庫がアクセスされる度にアイドル時間タイマーをリセットし得る。例えば、図示されたプロセス例において、管理されたアプリケーション603は、ステップ717、718、720、及び721における読み出し/書き込み動作に続き、ステップ719及び722においてアイドル時間タイマーをリセットする。
図7Bは、管理されたアプリケーション603が第2の保管庫607を使用して登録され得る実施形態を例示する。プロセスは、図7Aにおいて例示されたものと同様に進み、プロセスはさらに、パスコードが主エントロピー(例えば、ポリシーに依存するPINまたはアクティブディレクトリパスワード)として入力されることを要求し得る。図7Bにおいて、例示された実施形態は、付加的に第2の保管庫鍵レコード(つまり、SSO鍵暗号化保管庫鍵)を第2の保管庫に格納する。第2の保管庫は、例えば、利用者のパスコードではなく第2のエントロピーによって保護されるキーチェーンまたは他のオペレーティングシステム提供の安全なコンテナであり得る。例えば、iOSのtouch ID(または他の安全なコンテナサービス)が有効とされる場合、アプリケーションの登録中にSSOレコード(SSO鍵暗号化保管庫鍵)が、管理されたアプリケーショングループ(例えば、安全なアプリケーションラッパー606の下のアプリケーション)に関連付けられた共有保管庫(図7Aにおけるようなもの)及び安全なコンテナ(例えば、Touch ID保護キーチェーン)の両方に格納され得る。いくつかの実施形態において、これは、利用者体験に影響を与えることなく、静かに行われ得る。
特に、図7Bに例示されるように、管理されたアプリケーションは、ステップ731において、任意に第2の保管庫607の安全なコンテナをロック解除する。ステップ731は、管理されたアプリケーション603が主利用者エントロピー(例えば、パスコード)を使用して保管庫データベースをロック解除し、SSO鍵をアプリケーション隔離記憶域に格納した後に行われ得る。ステップ732において、管理されたアプリケーション603は、SSO鍵暗号化保管庫鍵を第2の保管庫607に格納し得る。管理されたアプリケーション603は、その後、利用者にその第2のエントロピーを入力させ、SSO鍵暗号化保管庫鍵を第2の保管庫607から取得し得る。管理されたアプリケーション603は、事前に格納されたSSO鍵を有することになるので、管理されたアプリケーション603は、第2の保管庫607から取得したSSO鍵暗号化保管庫鍵を使用して保管庫鍵のコピーを生成することができ得る。結果として、第2のエントロピーは、利用者にその主エントロピー(例えば、パスコード)の入力を要求することなく、ロックされた保管庫にアクセスするために使用され得る。いくつかの実装において、ステップ731は、キーチェーンに書き込むときには行われず、利用者体験に影響を与えることなく静かに実行され得る。いくつかの態様によると、第2の保管庫607に格納されたSSO鍵暗号化保管庫鍵は、保管庫レコード保持部に格納されたSSO鍵暗号化保管庫鍵がアイドル時間に応じて削除された後でさえ、残存し得る。
図8は、本明細書に説明される1つ以上の例示的な態様による、アイドル時間タイマーを組み込むシングルサインオンプロセスを例示すプロセスフロー例を図示する。
図8に例示されるように、管理されたアプリケーション603は、利用者に利用者エントロピーを提供させることなく保管庫鍵を復号化するために、アプリケーション固有記憶域に格納されたSSO鍵を使用し得る。管理されたアプリケーション603は、アイドル時間タイマーが満了しているか、または他のアイドル時間基準が満たされているかどうかを確認し得る。タイマーが満了していない、及び/または他のアイドル時間基準が満たされていないときには、管理されたアプリケーション603は、秘密の読み出し及び書き込みを行うために、共有保管庫605へのアクセスを続け得る。
特に、ステップ801において、管理されたアプリケーション603は、SSO鍵をアプリケーション固有の隔離記憶域から読み出し得る。ステップ802において、管理されたアプリケーション603は、第2の保管庫鍵レコード(つまり、SSO鍵暗号化保管庫鍵)を取得するために、共有メモリ605にアクセスし、第2の保管庫鍵レコードを復号化することによって保管庫鍵のコピーを生成し得る。ステップ803において、管理されたアプリケーション603は、生成された保管庫鍵のコピーを使用して保管庫鍵データベースをロック解除し、そこに格納されたデータにアクセスし得る。ステップ804において、管理されたアプリケーション603は、保管庫データベースに格納されたアイドル時間タイマーを読み出し、ステップ805において、アイドル時間タイマーが満了しているか否かを確認し得る。図8に例示されるプロセスにおいて、管理されたアプリケーション603が、アイドル時間タイマーが満了していないことを判定するとステップ806に進み、アイドル時間タイマーがリセットされる。ステップ807及び808において、管理されたアプリケーション603は、保管庫に対し共通秘密の読み出し及び書き込みを行い得る。ステップ810及び811において、管理されたアプリケーション603は、共有保管庫に対しアプリケーション固有秘密の読み出し及び書き込みを行い得る。管理されたアプリケーション603は、いくつかの実施形態において、共有保管庫がアクセスされる度にアイドル時間タイマーをリセットし得る。例えば、図示されたプロセス例において、管理されたアプリケーション603は、ステップ807、808、810、及び811における読み出し/書き込み動作に続いて、ステップ809及び812において、アイドル時間タイマーをリセットする。
図9は、本明細書に説明される1つ以上の例示的な態様による、アイドル時間に基づくロックプロセスを例示するプロセスフロー例を図示する。
図9に例示されるように、管理されたアプリケーション603は、図8に例示されるプロセスと同様、共有保管庫にアクセスするために、アプリケーション固有記憶域に格納されたSSO鍵の使用を試行し得る。ステップ901において、管理されたアプリケーション603は、SSO鍵をアプリケーション固有の隔離記憶域から読み出し得る。ステップ902において、管理されたアプリケーション603は、第2の保管庫鍵レコード(つまり、SSO鍵暗号化保管庫鍵)を取得するために、共有メモリ605にアクセス可能であり、第2の保管庫鍵レコードを復号化することによって保管庫鍵のコピーを生成し得る。ステップ903において、管理されたアプリケーション603は、生成された保管庫鍵のコピーを使用して保管庫データベースをロック解除し、そこに格納されたデータにアクセスし得る。ステップ904において、管理されたアプリケーション603は、保管庫データベースに格納されたアイドル時間タイマーを読み出し、ステップ905において、アイドル時間タイマーが満了しているか否かを確認し得る。例示された図9のプロセスにおいて管理されたアプリケーション603は、アイドル時間タイマーが満了していることを判定し得る。アイドル時間タイマーが満了している(及び/または他のアイドル時間基準が満たされている)場合、管理されたアプリケーション603は、ステップ906において、SSO鍵暗号化保管庫鍵を削除することによって、共有保管庫を「ロック」し得る。結果として、共有保管庫データベースは、共有保管庫に登録されている全ての管理されたアプリケーション602、603、及び604に関してロックされ得る。格納されたSSO鍵は、利用者エントロピーが受信されSSO鍵暗号化保管庫鍵を再作成するために使用されるまで、共有保管庫にアクセスするために使用することができない。ステップ907において、管理されたアプリケーション603は、利用者に利用者エントロピーを入力させ、ステップ908及び909において、管理されたアプリケーション603は、前述したように共有保管庫をロック解除し、ステップ910において、アイドル時間タイマーをリセットする。管理されたアプリケーション603が共有保管庫をロック解除した後、他の登録されたアプリケーションは、中断なしで共有保管庫にアクセスするために、それらの事前に格納されたSSO鍵を使用することができるようになる(別のアイドル時間イベントが起こるまで)。例示されるように、管理されたアプリケーション603は、ステップ911、912、914、及び915において、共通秘密及びアプリケーション秘密の両方の読み出し及び書き込みを行うことが可能であり、アイドル時間タイマーは、ステップ913及び916において、共有保管庫がアクセスされる度にリセットされ得る。
図10Aは、本明細書に説明される1つ以上の例示的な態様による、アイドル時間に基づくロックプロセス中の複数のアプリケーションの処理を例示するプロセスフロー例を図示する。
図10Aに例示されるように、共有保管庫は、アイドル時間タイマーに基づいて任意の管理されたアプリケーションによってロックされ得る。例えば、マスターアプリケーション602によって、共有保管庫がロックされると、他の登録されたアプリケーション(例えば、管理されたアプリケーション603)もまた、そのそれぞれのアプリケーション固有メモリに格納されたSSO鍵を使用する共有保管庫へのアクセスが阻止される。ただし、任意のアプリケーションは、利用者に利用者エントロピーを提供させ、共有保管庫をロック解除し得る。図10Aに例示される例において、マスターアプリケーション602は、アイドル時間タイマーに基づいて共有保管庫をロックするが、利用者に利用者エントロピーを入力させ、全ての他の登録されたアプリケーションに対して共有保管庫のロック解除を行うのは管理されたアプリケーション603である。
特にステップ1001において、マスターアプリケーション602は、SSO鍵をアプリケーション固有の隔離記憶域から読み出し得る。ステップ1002において、マスターアプリケーション602は、第2の保管庫鍵レコード(つまり、SSO鍵暗号化保管庫鍵)を取得するために、共有メモリ605にアクセスし、第2の保管庫鍵レコードを復号化することによって、保管庫鍵のコピーを生成し得る。ステップ1003において、マスターアプリケーション602は、生成された保管庫鍵のコピーを使用して保管庫データベースをロック解除し、そこに格納されたデータにアクセスし得る。ステップ1004において、マスターアプリケーション602は、保管庫データベースに格納されたアイドル時間タイマーを読み出し、ステップ1005において、アイドル時間タイマーが満了しているか否かを確認し得る。例示された図10Aのプロセスにおいて、マスターアプリケーション602は、アイドル時間タイマーが満了していることを判定し得る。アイドル時間タイマーが満了している(及び/または他のアイドル時間基準が満たされている)場合、マスターアプリケーション602は、ステップ1006においてSSO鍵暗号化保管庫鍵を削除することによって、共有保管庫を「ロック」し得る。結果として、共有保管庫データベースは、共有保管庫に登録されている全ての管理されたアプリケーション602、603、及び604に関してロックされ得る。格納されたSSO鍵は、利用者エントロピーが受信され、SSO暗号化保管庫鍵を再作成するために使用されるまで共有保管庫へのアクセスに使用することができない。
マスターアプリケーション602が第2の保管庫鍵レコードを削除し、これによって、保管庫をロックするが、管理されたアプリケーション603等の他のアプリケーションは、保管庫を事前にロック解除しており、SSO鍵を格納している。第2の保管庫鍵レコードが削除されたので、他のアプリケーション603は、ステップ1007において、利用者に利用者エントロピーを再入力させことを要求される。ステップ1008及び1009において、管理されたアプリケーション603は、前述されたように共有保管庫をロック解除し、ステップ1010において、アイドル時間タイマーをリセットし得る。管理されたアプリケーション603が共有保管庫をロック解除した後、他の登録されたアプリケーションは、中断なしで共有保管庫にアクセスするために、それらの事前に格納されたSSO鍵を使用することができるようになる(別のアイドル時間イベントが起こるまで)。例示されるように、管理されたアプリケーション603は、ステップ1011、1012、1014、及び1015において、共有秘密及びアプリケーション秘密の両方の読み出し及び書き込みを行うことが可能であり、アイドル時間タイマーは、ステップ1013及び1016において共有保管庫がアクセスされる度にリセットされ得る。
いくつかの実施形態において、閉じられずにメモリ内に残存するアプリケーション(例えば、中断状態、またはバックグラウンド状態)は、アプリケーション固有メモリに格納されたデータ暗号化(S1、S2)鍵を依然として有する。このような場合において、アプリケーションが保管庫をロック解除する必要はない。例えば、管理されたメールアプリケーションは、バックグラウンドにおいて電子メールを依然として同期可能である。ただし、アプリケーションがメモリから除去され、新たに開始されたときには、保管庫は、別のアプリケーションによって既にロック解除されていない場合、ロック解除される必要があり得る。アプリケーションが利用者によって明示的に起動される場合、その後、完全認証ユーザインターフェースが表示され得る。
アプリケーションがOSスケジューラまたは通知サービスによってバックグラウンドで新たに起動された場合に保管庫がロックされた状態であるという1つの問題があり得る。OSスケジューラまたは通知サービスによるバックグラウンド起動は、機器再起動、または他のアプリケーションのためにリソースを解放する必要に応じてアプリケーションが中断後にメモリから除去されることに続いて起こり得る。この場合において、アプリケーションは、バックグラウンドのまま、利用者エントロピー用の完全なアプリケーション内認証ユーザインターフェースを表示することができず、したがって、保管庫をロック解除することができないことになり得る。例えば、通知サービスによって起動される電子メールアプリケーションは、そのメールをバックグラウンドにおいて同期することができないことになり得る。この問題を解決する1つの方法は、アプリケーションが、利用者にアプリケーションを起動することによって行動をとることを通知するローカル機器通知を発することができることである。この通知は、例えば、機器画面の上部における、機器通知領域において表示され得る。例えば、「WorxMailが注意を要求しています」と表示し得る。
図10Bは、第2の保管庫607を組み込む実施形態における保管庫ロック解除プロセス及び複数のアプリケーションの処理を例示する。第2の保管庫(例えば、Touch ID)が有効であり、例えば、アイドル時間タイマーの満了に応じて、保管庫がロック解除を必要とする場合、SSOレコードは、利用者に第2のエントロピーを要求することによって取得され得る。第2のエントロピーは、SSOレコードを安全なコンテナ(例えば、Touch ID保護キーチェーン)から取得するために使用され得る。
特に、図10Bのプロセスは、図10Aのステップ1001から1006に例示されたものと同様に進み得る。ただし、管理されたアプリケーション603は、図10Aのステップ1007のように利用者にそのパスコードまたは、代替的に、ステップ1019においてその第2のエントロピーを入力可能とし得る。例えば、利用者は、そのPIN(主エントロピー)の入力または指紋リーダー(第2のエントロピー)のタッチのいずれかを要求され得る。利用者がそのPINを入力する場合、その後、プロセスは、図10Aに説明されたように進み、第2の保管庫は、アクセスされる必要がない。利用者がその第2のエントロピーを入力する場合、ステップ1020において、管理されたアプリケーション603は、第2のエントロピーを使用して第2の保管庫607との認証を行う。いくつかの実施形態において、第2の保管庫607は、オペレーティングシステムによって管理されてもよく、管理されたアプリケーション603は、システムに対し、利用者に第2のエントロピーを入力させ、第2の保管庫607をロック解除させるために、1つ以上のAPIを利用し得る。ステップ1021において、管理されたアプリケーション603は、第2の保管庫に格納された第2の保管庫鍵レコード(SSO鍵暗号化保管庫鍵)のインスタンスを読み出し、その後、ステップ1009において、上述されたように、共有メモリ605に格納された保管庫をロック解除し得る。第2の保管庫607に格納された第2の保管庫鍵レコードを使用して共有保管庫をロック解除すると、システムは、上述されたように、保管庫への秘密の読み出し及び書き込みを行い、アイドル時間タイマーをリセットし得る。
図10Cは、システムが、第2の保管庫のロック解除が失敗した場合において共有保管庫をロック解除するために、フォールバック手段を提供するプロセスフロー例を例示する。いくつかの実施形態において、システムは、第2のエントロピーが失敗した場合にデータにアクセスすべく、利用者に他の方法を可能とするために、フォールバック手段を提供し得る。例えば、システムが、利用者の指紋を読み取ることに不具合がある場合、システムは、利用者に機器パスコード(共有保管庫を復号化するために使用される利用者エントロピーパスコードとは異なり得る)を入力させ得る。例えば、iOSプラットフォームにおいて、Touch IDプロンプトから機器パスコードプロンプトへのフォールバックが、起こり得る。利用者が機器パスコードを提供することができる場合、システムは、第2の保管庫をロック解除し、第2の保管庫鍵レコードへのアクセスを提供し得る。他の実装において、動作条件に応じて選択され得るが、安全なアプリケーションラッパー606及び/または管理されたアプリケーション603が、システムが機器パスコードへのフォールバックを用いることを阻止し、代わりに、保管庫を暗号化するために使用されたパスコードを利用者が入力することを要求し得る。これは、機器パスコードの強度(長さ及び複雑さ)を保証することができず、一方で共有保管庫を保護するために使用される利用者エントロピーパスコードの強度ポリシー要求が、企業サーバ601によって管理され、マスターアプリケーション602によって強制され得る実施形態において有益であり得る。
特に、図10Cのプロセスは、図10Bのステップ1001から1020に例示されるものと同様に進み得る。ただし、図10Cに例示されるように、第2の保管庫との認証がステップ1023において失敗し得る。ステップ1024において、管理されたアプリケーション603は、利用者に第2のエントロピーが失敗したことを通知し、共有保管庫をロック解除するために、利用者にそのパスコード(主エントロピー)を入力させ得る。ステップ1025において、管理されたアプリケーション603は、パスコード(及び、例示された実施形態において、アプリケーションエントロピー)を使用して保管庫鍵のコピーを生成することによって共有保管庫をロック解除し得る。特に、前述したように、保管庫鍵のコピーを生成するために、管理されたアプリケーション603は、利用者エントロピー暗号化保管庫鍵レコードまたはパスコード暗号化保管庫鍵レコード432であり得る第1の保管庫鍵レコード、あるいは、例示された実施形態において、アプリケーション603用のアプリケーション固有エントロピーとの組み合わせの利用者エントロピー(パスコード)を使用して暗号化され得る複数のアプリケーション単位の保管庫鍵レコード434の1つを使用し得る。その後、図10Bと同様、ステップ1009において、システムは、SSO鍵暗号化保管庫鍵レコードを生成し保管庫レコード保持部に書き込むことによって、全ての登録され管理されたアプリケーション用の保管庫データベースをロック解除し得る。システムは、上記のように、保管庫に対する秘密の読み出し及び書き込みを行い、アイドル時間タイマーをリセットし得る。
図11Aは、本明細書に説明される1つ以上の例示的な態様による、PIN更新プロセスを例示するプロセスフロー例を図示する。
図11Aに例示されるように、マスターアプリケーション602は、利用者にそのPINまたは他の利用者エントロピーを変更可能とし得る。ステップ1101において、マスターアプリケーション602は、利用者にその古いPINを提供させ得る。ステップ1102において、マスターアプリケーション602は、現行/古いパスコードに関連付けられたPIN検証ツールを読み出し、ステップ1103において、利用者にそのPINを変更することを可能とする前に古いPINを検証し得る。マスターアプリケーション602は、ステップ1104において新しいPINを受信し得る。ステップ1105において、マスターアプリケーション602は、新しいPIN検証ツールを生成し、ステップ1106において、新しいPIN検証ツールと共に共有保管庫605を更新し得る。ステップ1107において、マスターアプリケーション602は、古いPIN(及び、例示された実施形態において、アプリケーションエントロピー)を使用して第1の保管庫鍵レコード(つまり、パスコード暗号化保管庫鍵レコード)を復号化することによって保管庫をロック解除し得る。そして、例示された実施形態において、マスターアプリケーション602は、各インストール済みアプリケーション用の新たに暗号化された保管庫鍵レコードを生成し、ステップ1108において、新たに生成された新しいPIN暗号化保管庫鍵を共有メモリ605に書き込み得る。前述したように、各アプリケーション用の保管庫鍵レコードは、アプリケーションエントロピー及び利用者エントロピーを使用してさらに暗号化され得る。他の実施形態において、単一の新たに暗号化された保管庫鍵レコードが生成され、新しい利用者エントロピーによって暗号化され得る。
いくつかの実施形態において、利用者がその古いPINを忘れた場合において、マスターアプリケーション602は、利用者に強固な認証を使用してサーバに再加入し、全体の共有保管庫を再作成することを要求し得る。全体の共有保管庫を再作成することは、結果として、利用者が共通及びアプリケーション固有アセットを失うことをもたらし、これは利用者体験に混乱を引き起こし得る。他の実施形態において、図11Bに例示されるように、ステップ1109において、利用者がその古いPINを忘れる、または失敗したPIN入力のポリシー定義制限に達した場合、マスターアプリケーション602は、共有保管庫を企業サーバ601から復元し得る。マスターアプリケーション602は、利用者に強固な認証(アクティブディレクトリ(AD)パスワードまたは二要素認証)を入力させる。ステップ1110において、マスターアプリケーション602は、利用者をサーバに認証し得る。ステップ1111において、マスターアプリケーション602は、保管庫鍵を要求することによって、サーバによって事前に生成され、サーバにキャッシュされた保管庫鍵を復旧し得る。企業サーバ601は、ステップ1112において、格納された保管庫鍵のコピーを取得し、ステップ1113において、格納された保管庫鍵をマスターアプリケーションに提供し得る。ステップ1114において、マスターアプリケーション602は、利用者に新しいPINを設定させ得る。ステップ1115〜1117において、マスターアプリケーションは、図11Aのステップ1105、1106及び1108に関して前述されたように、利用者体験に混乱を引き起こすことなく、新しいPINと共に共有保管庫を更新し得る。
いくつかの実施形態において、アクティブディレクトリ(AD)パスワード等のパスワードは、利用者エントロピーとして使用され得る。ADパスワードを使用することの1つの潜在的な利点は、利用者がその機器上で利用者エントロピーとして使用する別個のパスコードを設定しなくてもよいことであり得る。他の実施形態において、前述のように、PINは、利用者のADパスワードとは異なって使用され得る。別個のPINの1つの利点は、それがサーバに格納されず、他のシステムまたは機器によって使用されず、したがって、潜在的な攻撃対象を低減し得ることである。別個のPINはまた、管理者によって設定される異なる強度(長さ及び複雑さ)ポリシー要求を有し得る。管理者は、利用者に対し、長い英数字のADパスワードよりも覚えやすい簡素なPINを設定可能とし得る。ADパスワードが利用者エントロピー用に使用される実施形態は、特有の課題を提示し得る。利用者のADパスワードが、利用者が任意のその機器から認証されたアプリケーションまたはサーバにログインした後にADサービスと共に変更され得る。ADパスワードが、加入した利用者機器上で利用者エントロピーとしても使用される場合、その後、パスワードの最新版をその機器上の保管庫と同期する必要性が生じ得る。
いくつかの実施形態において、図11Cに例示されるように、企業サーバ601は、利用者のアクティブディレクトリパスワードに対する変更を通知され、これに従って共有保管庫を更新し得る。特に、ステップ1120において、企業サーバ601は、利用者パスワード変更に対するイベント通知を受信するために、アクティブディレクトリサービス611に登録し得る。ステップ1121において、利用者は、任意のその機器から認証されたアプリケーションまたはサービスにログインし、ADパスワード変更を完了し得る。ステップ1122aにおいて、ADサービス611は、その後、パスワード変更の通知を企業サーバ601に発し得る。ステップ1122bにおいて、企業サーバ601は、利用者によって加入されたマスターアプリケーション602に通知を送信し得る。ステップ1123において、マスターアプリケーション602は、その後、共有メモリ605に格納された共有保管庫をロック解除するために古いパスワードが使用されることを阻止すべく、古いパスワード検証ツールを無効化し得る。ステップ1124において、マスターアプリケーション602は、アクティブディレクトリ(AD)パスワードまたは二要素認証等の強固な認証を利用者に入力させ、ステップ1125において、利用者を企業サーバ601に認証し得る。ステップ1126において、マスターアプリケーション602は、保管庫鍵を要求することによって、サーバによって事前に生成され、サーバにキャッシュされた保管庫鍵を復旧し得る。企業サーバ601は、ステップ1127において、格納された保管庫鍵のコピーを取得し、ステップ1128において、格納された保管庫鍵をマスターアプリケーションに提供し得る。ステップ1129において、マスターアプリケーション602は、変更されたアクティブディレクトリパスワード用の新しいパスワード検証ツールを作成し得る。ステップ1130及び1131において、マスターアプリケーション602は、図11Aのステップ1106及び1108に関して前述されたように、共有保管庫を新しいパスワードと共に更新し得る。
本明細書に前述されたように、いくつかの実施形態は、安全性及び利用者体験の好みに基づいて異なるポリシー及びモードを提供し得る。異なるポリシー形式は、いくつかの実施形態において、共有保管庫の異なる部分に格納され得る。例えば、グローバルポリシーは、共有保管庫の共通共有秘密部に格納され得る。アプリケーション単位のポリシーは、それぞれのアプリケーションに関連付けられたアプリケーション固有記憶域に格納され得る。安全性グループ単位のポリシーは、安全性グループに含まれた各々のアプリケーションのアプリケーション固有記憶域に格納され得る。安全性グループ単位のポリシーによる同期問題は、いくつかの実施形態において、共有保管庫に格納された共有秘密におけるフラグを使用して解決され得る。
図12A及び12Bは、本明細書に説明される1つ以上の例示的な態様による、分散認証プロセスを例示するプロセスフロー例を図示する。
図12Aに示されるように、本明細書に記載される共有保管庫のいくつかの実施形態は、管理されたアプリケーションが、共有アクセスゲートウェイチケット、証明書、SAMLトークン、VPNスタック情報等を介して認証状態を効果的に共有可能である分散認証を可能とし得る。図6A、図6B及び図6Cのように、マスターアプリケーションは、共有保管庫を作成し、証明書及び共有/共通ポリシーを含むように共有保管庫を更新し得る。1つ以上のアプリケーションは、利用者に利用者エントロピーを入力させ、アプリケーションは、共有保管庫に登録し得る。一旦、登録されると、アプリケーション(例えば、例示されるようなアプリケーションi)は、認証を行い、1つ以上の企業サーバ及びリソースからアプリケーション固有秘密等のデータを取得するために、共有保管庫に格納された証明書を利用し得る。
特に、ステップ1201において、マスターアプリケーション602は、利用者に強固な認証を提供させ得る。強固な認証を使用することで、ステップ1202において、マスターアプリケーションは、企業サーバ601に加入し、機器を管理されたフレームワーク内に登録し得る。ステップ1203において、企業サーバ601は、共有保管庫を作成し、機器上でその使用を可能とすることに使用するために、関連する証明書、ポリシー等と共にマスターアプリケーション602を提供し得る。ステップ1204において、マスターアプリケーション602は、共有保管庫を安全にすることに使用されるように、利用者にパスコードまたは他の利用者エントロピーを設定させ得る。ステップ1205において、マスターアプリケーション602は、共有秘密保管庫を作成し、保管庫をロック解除するためにSSO鍵を格納し得る。いくつかの実施形態において、企業サーバ601は、共有保管庫の作成に使用するために保管庫鍵をマスターアプリケーション602に提供し得る。他の実施形態において、マスターアプリケーション602は、生成された保管庫鍵自身であり得る。ステップ1206において、マスターアプリケーション602は、証明書、ポリシー、及び他の管理されたアプリケーションによる共有アクセスにために企業サーバ601から受信された他のデータを含むように共有保管庫を更新し得る。ステップ1207において、管理されたアプリケーション604は、利用者にそのパスコードを入力させ、ステップ1208において、保管庫に登録し得る。ステップ1209において、別の管理されたアプリケーション603は、利用者にそのパスコードを入力させ、ステップ1210において、保管庫に登録し得る。管理されたアプリケーション603は、ステップ1211において、利用者のパスコードを使用して、及び/または次回においてSSO鍵を使用して、復号化された保管庫を有するメモリ605に格納された証明書及び共通ポリシーを読み出し得る。管理されたアプリケーション603は、ステップ1212において、共有保管庫に格納された証明書を使用して企業サーバ601と認証し得る。ステップ1213において、企業サーバ601は、アプリケーション固有秘密及びポリシーと共に、管理されたアプリケーション603を提供し得る。ステップ1214において、管理されたアプリケーション603は、アプリケーション固有秘密をアプリケーション固有記憶域に格納し得る。いくつかの実施形態において、アプリケーション固有秘密は、それぞれのアプリケーションによって使用するために隔離されたシステムメモリに格納され得る。他の実施形態において、システムは、アプリケーション固有秘密を共有メモリ605における共有保管庫の一部に格納し得るが、それぞれのアプリケーションに既知のアプリケーションエントロピーを使用して暗号化され得る。
図12Aは、図12Bのように続き、1つのアプリケーションが、高度な保証認証を完了し、企業リソースにアクセスするための長期間アクセスゲートウェイチケットを取得する。このチケットは、他の登録されたアプリケーションに対しても利用可能となり得る。
図12Bに例示されるように、管理されたアプリケーション603は、ステップ1215において、共有保管庫をロック解除するために使用されるパスコードではなく、認証証明書を利用者に提供させ得る。ステップ1216において、管理されたアプリケーション603は、ゲートウェイ608と高度な保証認証手続を実行し、ステップ1217において、アプリケーションが企業リソースにアクセスすることを可能とするゲートウェイチケットを取得し得る。管理されたアプリケーションは、ステップ1218において、共有保管庫にゲートウェイチケットを格納し得る。管理されたアプリケーション603は、ステップ1220及び1221においてゲートウェイ608を介して企業リソース609にアクセスするためにチケットを使用し得る。共有保管庫に登録された別の管理されたアプリケーション604は、ステップ1222において、ゲートウェイチケットにアクセスし、ステップ1223において、その認証状態を更新し、ステップ1224及び1225において、同様に、ゲートウェイ608を介して企業リソース609にアクセスするために共有ゲートウェイチケットを使用し得る。結果として、管理されたアプリケーションは、別の管理されたアプリケーションにおいて既に提供された認証情報を利用者に再入力させることなく、認証を必要とする企業リソースを利用者に提供することができ得る。
いくつかの実施形態において、分散認証は、企業/モバイルアプリケーション管理アプリケーションの各ラインのコンテキストにおいて認証マネージャインスタンスに構築またはラップを行うことによって提供され得る。認証マネージャは、例えば、レイヤを使用して設計され得る。1つのレイヤは、認証プロンプト及び通知用のユーザインターフェースコールバックを扱い得る。別のレイヤは、コア認証状態管理を提供し得る。別のレイヤは、秘密保管庫の共有記憶域内外における状態整理を提供し得る。また別のレイヤは、ネットワーク通信を提供し得る。この設計は、サーバリソースが無くならない限り、与えられたサーバリソース用の付加的な認証プロンプトが無いことを保証し得る。更なる利用者体験として、いくつかの実施形態において、認証UIは、企業/モバイルアプリケーション管理アプリケーションの各ラインのコンテキスト内に構築またはラップ可能であり、このためサーバリソースが無くなるときでさえ、認証は、WorxHome等のマスターアプリケーションへのフリップを必要とすることなく、そのときに使用されるアプリケーションにおいて実施可能である。結果として、いくつかの実施形態において、マスターアプリケーションは、完全に除去され得る、または、例えば、加入、アプリケーションストア、技術サポート等の限定された目的のみに使用され得る。いくつかの実施形態において、いくつかの管理されたアプリケーションは、埋め込まれた認証ユーザインターフェースを組み込み、他は、マスターアプリケーションに依拠し得る。
本明細書に記載される1つ以上の態様による、共有保管庫を使用する分散認証は、付加的な機能用の基盤またはプラットフォームを提供し得る。例えば、いくつかの実施形態は、各アプリケーションからの独立及びサイレントポリシーリフレッシュを提供し得る。他の実施形態は、ポリシーに基づいて、アプリケーション単位の基盤、またはアプリケーショングループ基盤上でステップアップ認証を提供し得る。いくつかのシステムにおいて、例えば、多要素認証を有する分離ゲートウェイが設定され、全てのアプリケーションは、より厳しい認証に引き上げられなければならない。また他の実施形態において、ポリシーに基づいて、アプリケーション単位、またはアプリケーショングループ基盤上で複数のマイクロVPNを提供し得る。
他の実施形態は、共有機器における複数の利用者に対するサポートを提供し得る。本明細書に前述したように、機器は、1つよりも多い共有保管庫を含み得る。機器は、機器の各利用者に対する共有保管庫を含むことが可能であり、個々のアプリケーションは、1人よりも多い利用者用の共有保管庫に登録され得る。機器上の全体の管理されたフレームワークは、新しいパスコードまたは利用者の切り替えが起こったことを示す他の情報によって示される利用者の変更に適合し得る。例えば、第1の利用者用の共有保管庫は、第1の利用者が機器を使用しそのパスコードを入力している間、有効となり得る。利用者は、機器を第2の利用者に渡し、第2の利用者は、そのパスコードを入力し得る。第1のユーザは、ログオフをしようとすることをシステムに示す。付加的及び/または代替的に、機器は、異なる利用者のパスコードが入力されたことを検出し、新しい利用者に関連付けられた適切な共有保管庫に移行するためにコンテキストスイッチを開始し得る。機器は、付加的な保護を提供するために、パスコードに加えて付加的な認証情報を必要とし得る。一実装例として、複数の共有保管庫が、病院で使用されるモバイル機器上に提供され、医師及び看護師によって共有され得る。機器上のアプリケーションは、1つ以上の共有保管庫との登録を行い、使用中の利用者に関連付けられたパスコードに基づいてコンテキストを移行し得る。
また他の実施形態は、企業が独立したモバイルアプリケーションを使用してその顧客に安全な情報を提供することを求める、企業対消費者間の使用ケースをサポートし得る。いくつかの実施形態は、単一マスターアプリケーションのアプリケーション管理の独立性を可能とし、顧客及びエンドユーザに、より受容可能となり得る。
いくつかの実施形態は、本明細書に記載される1つ以上の態様によって、仮想スマートカードを提供し得る。ウィンドウズ(登録商標)フォンオペレーティングシステムを動作する機器のような、いくつかのプラットフォームにおいて、トラステッドプラットフォームモジュール(TPM)が、仮想スマートカードの実装に使用可能である。iOS及びアンドロイドオペレーティングシステムを動作する機器のような、他のプラットフォームにおいて、仮想TPMが、共有秘密保管庫の一部として構築可能である。仮想スマートカードの実装は、共有保管庫に格納されたPIN暗号化スマートカードを保護するための付加的な安全性機能を組み込み得る。付加的な安全機能は、改ざん保護及びコード難読化を提供し、VSCが複製不能であることを保証し(例えば、暗号化用の強固な機器エントロピーの使用を介して)、強固な加入方式を提供し、複数の失敗したアクセス試行後に機器へのアクセスをブロックし得る。ブロック機能は、正当な利用者に対する利用者体験への影響の最小化を提供するように強固なロック解除策に結合され得る。
いくつかの実施形態による、仮想スマートカードは、スマートカードハードウェア(リーダー、カード)及びソフトウェア(暗号化サービスプロバイダ[CSP])のインストールを必要としないスマートカードの利点を提供し得る。本明細書に記載されるいくつかの実施形態は、ハードウェアサポートを有しないプラットフォーム、及び低安全性制限(例えば、仮想TPM、OSメモリに格納されたカードデータ)の受容を希望する顧客を仮想スマートカードに可能とし得る。いくつかの実施形態は、改善された認証の粒度(例えば、アプリケーション単位、またはグループ単位)、安全性、及び利用者体験を提供し得る。ただし、いくつかの実施形態において、仮想スマートカードは、仮想スマートカード認証が機器自身ではなくサーバに対するものとして、オンライン認証ケースに制限され得る(いくつかの実施形態において、機器「が」スマートカードである)。
上記のように、本明細書に記載される1つ以上の実施形態は、任意の適切なオペレーティングシステムを動作する機器上に実装され得る。例えば、iOS機器は、共有保管庫の実装において、ペーストボード、I/O面(GPUメモリ)、またはシステムログデータ構造を利用し得る。別の例として、アンドロイド機器は、本明細書に記載される1つ以上の態様を実装するために、活動を介してWorxHome等のマスターアプリケーションのサービスを利用し、呼び出しアプリケーションの信頼性を確認するために証明書を利用し得る。ウィンドウズ(登録商標)フォン機器において、機器は、共有保管庫を実装するために、写真ライブラリディレクトリ内の共有ファイルを利用し得る。ウィンドウズ(登録商標)8.1(WinRT)機器において、企業アプリケーションのライン用のローカルホストループバックが使用され得る。別の実施形態において、ウィンドウズ(登録商標)8.1機器は、デスクトップアプリケーションと共有され得るモバイル機器管理フレームワーク及び/またはサービスを介して設定可能なサービスを利用し得る。デスクトップアプリケーションとの共有データは、物理的スマートカードの使用のような、付加的な利点を提供し得る。別の実施形態において、ウィンドウズ(登録商標)10機器は、本明細書に記載される1つ以上の態様を実装するために、WorxHome等のマスターアプリケーションのアプリケーションサービスを利用し得る。
iOSにおける実施形態例において、共有保管庫は、ペーストボードデータ構造を使用して実装され得る。iOSオペレーティングシステムは、実施形態例において使用され得る2つの形式のペーストボード、つまり、持続的であるが他のアプリケーションによって意図せず消去され得るUIPasteboardNameGeneralと、持続的であり、他のアプリケーションによって意図せず消去され難いUIPasteboardNameFindと、を提供する。実施形態はまた、共有I/O面(GPUメモリにおける)を利用し得る。このデータ構造は、揮発性であり、権利付与することなくアプリケーションによって自由に利用可能であり得る。このデータ構造の寿命は、計画的漏洩を使用して制御され得る。使用され得る別のiOSデータ構造は、カスタムバイナリデータ形式をサポートするシステムログである。iOSにおける別の実施形態例において、共有保管庫は、同一利用者プロファイルによって証明されたアプリケーションにアクセスが制限された、キーチェーン保護された名前付きペーストボードに実装され得る。これらのデータ構造の各々は、いくつかの実施形態が実装され得る方法の非限定的な例を提供する。
図2は、共有保管庫210をモバイル機器200に格納されるとして例示しているが、いくつかの実施形態は、共有保管庫の全部または一部をオンラインに格納してもよい。これは、待機時間及び信頼性の課題を受け得るが、共有持続性記憶域または共有揮発性記憶域へのアクセスを提供しないクライアントプラットフォームにおける有用な選択となり得る。さらに、いくつかのクライアントOSにおいて、そしていくつかの実施形態において、オンラインの選択はまた、ローカル実装に対する承認として有用となり得る。オンライン共有保管庫は、明示的な再認証またはマスターアプリケーションへのフリップを必要とすることなく、保管庫管理レコード及び共通アセット用のシームレス復元地点を提供し得る。例えば、いくつかのクライアントOSにおいて、共有保管庫は、別のアプリケーションによって意図せず消去され得る(例えば、iOS上で通常のコピー/ペーストペーストボードが、共有保管庫の提供に使用される場合)。いくつかのクライアントOSにおいて、揮発性共有メモリのみが利用可能であり、機器の再起動に続いて、保管庫管理レコード及び共有アセットが失われ、再作成されることが必要となり得る。
本明細書に記載されるいくつかの態様によると、共有保管庫の全部、または共有保管庫の一部をオンラインに格納することは、いくつかの付加的な機能をサポートし得る。いくつかの実施形態において、利用者のパスコードは、オンラインに格納可能である、一方で共有保管庫は、ローカルに格納されたままとなり得る。いくつかの実施形態において、共有保管庫は、ウェブサーバでサーバペーストボードデータ構造上に格納され得る。いくつかの実施形態において、共有保管庫は、分割記憶域モード(図5に示されるような)に実装可能であり、保管庫管理レコード及び共有秘密は、サーバ上に格納可能であり、一方で、アプリケーション固有秘密は、ローカルに格納され得る。他の実施形態において、サーバは、共有保管庫のコピーをキャッシュされた復元地点として格納し得る。機器はまた、共有保管庫をローカルに格納可能であるが、ローカル共有保管庫になされる更新は、サーバ上に複製され、サーバのコピーは、それが喪失または除去された場合に共有保管庫をローカルに復元するために使用され得る。
いくつかの実施形態において、簡易的に上述されるように、サーバは、利用者のパスコードを格納可能であり、一方で、共有保管庫は、機器上にローカルに格納されたままとなり得る。一実施形態例は、安全なアプリケーションラッパー内の全ての管理されたアプリケーション間で利用者エントロピー(パスコード)を共有するために、企業広域のグローバルに利用可能なペーストボードサービスを使用し得る。保管庫自身は、機器上のローカルに実装されたままとなり得る。
図13は、本明細書に説明される1つ以上の例示的な態様による、ウェブサーバにおける保管庫作成プロセスを例示するプロセスフロー例を図示する。初回使用中において、DPUB及びDPRIVの非対称鍵対が作成され得る。鍵対は、安全なアプリケーションラッパー606内の全てのアプリケーションに利用可能とされ得る。いくつかの実施形態において、企業サーバ601等のサーバは、鍵を作成し、それをラッピング時にアプリケーションに埋め込み得る。ただし、この実施形態は、アプリケーションがハッキングされた場合に可逆的であり得る。他の実施形態において、サーバは、鍵を作成し、それを利用者展開にあたりリアルタイムにアプリケーションに埋め込み得る。この実施形態は、付加的な安全性を提供し得る。また他の実施形態において、モバイル機器上のマスターアプリケーションは、鍵を作成し、安全なIPCを介した初回使用中に他の管理されたアプリケーションにそれを渡し得る。これは、ウィンドウフォン機器等の安全なIPCを有するプラットフォーム上で実行可能であり得る。他の実施形態において、モバイル機器上のマスターアプリケーション(または第1の管理されたアプリケーション)1310は、鍵を作成し、アプリケーション登録モデル及びローカル共有保管庫を使用して他のモバイルアプリケーションとそれを安全に共有し得る。
いくつかの実施形態において、ステップ1331で機器上のマスターアプリケーションまたは第1の管理されたアプリケーション1310は、エンドユーザの証明書を使用して組織のペーストボードサービス610に認証し、新しい公開鍵であるDPUBを登録することによって、固有ペーストボードGUID(例えば、URL)を要求し得る。HTTP CRUD規定を前提とすると、HTTP POSTが、このステップを完了可能である。DPUB鍵は、ペーストボードサービス610のウェブハンドラ1321に投稿され得る。ステップ1332において、ウェブハンドラ1321は、公開鍵DPUBを持続性格納部1322に保存し、アプリケーション1310(及び他の管理されたアプリケーション)による使用のために持続性ペーストボード用の固有GUIDを取得し得る。ペーストボードサービス610は、管理されたアプリケーション用の固有GUID(URL)を生成し、GUIDは、ステップ1333において、ウェブハンドラ1321によって取得され得る。ステップ1334において、ウェブハンドラ1321は、アプリケーション1310に応答して、この固有位置を返し得る(例えば、「https://my.org/mdxpasteboard/{GUID}」)。機器上の管理されたアプリケーションは、ここで、暗号化されたデータを格納及び共有するために使用し得る。
図14は、本明細書に説明される1つ以上の例示的な態様による、パスコード取得プロセスを例示するプロセスフロー例を図示する。いくつかの実施形態において、管理されたアプリケーションは、利用者エントロピー(パスコード情報)を他の管理されたアプリケーションと共有するために、例示されるステップを実施し得る。ステップ1401において、第1の管理されたアプリケーション1310は、利用者エントロピー(パスコード)をDPUBによって暗号化し、結果物をDPUBと共に中央ペーストボードサービス610に送信し得る。第1の管理されたアプリケーション1310は、パスコードを公開鍵によって暗号化し、これによってDPUB{パスコード}を生成し得る。第1の管理されたアプリケーション1310は、公開鍵及び暗号化されたパスコードである[DPUB,DPUB{パスコード}]からなるペイロードを作成し得る。第1の管理されたアプリケーション1310は、ペーストボードサービス610のウェブハンドラ1321にペイロードをアップロードし得る。ステップ1402において、ペーストボードサービス610は、GUID及びペイロード(例えば、公開鍵及び暗号化された利用者エントロピー)を持続性格納部1322に格納し得る。いくつかの実施形態において、初回使用時のペーストボードサービスは、公開鍵、DPUBが、ペーストボード作成中に登録された鍵に一致することを保証する確認を行うことができる。ステップ1403及び1404において、ペーストボードサービス610は、承認メッセージを生成し、メッセージをアプリケーション1310に送信し得る。
利用者エントロピー(パスコード)を取得するために第2のアプリケーション1313に対し、第2のアプリケーション1313は、秘密鍵であるDPRIVの所有をペーストボードサービス610に証明することを要求され得る。第2の管理されたアプリケーション1313は、ステップ1405において、GUIDを使用してペーストボードサービスから暗号化された利用者エントロピー(パスコード)を要求することを試行し得る。ペーストボードサービス610は、DPUBによって暗号化されたチャレンジ(ノンス)を通して、DPRIVの所有を証明するために、第2の管理されたアプリケーションを検証し得る。ステップ1406において、ウェブハンドラ1321は、ペーストボードサービス610にアクセスするために使用された特定GUIDに対するチャレンジを要求し得る。ステップ1407において、ペーストボードサービス610は、DPUBによって暗号化されたチャレンジ(ノンス)を生成し得る。ステップ1408及び1409において、ペーストボードサービス610は、ウェブハンドラ1321を介してチャレンジを第2の管理されたアプリケーション1313に提供する。ステップ1410において、第2の管理されたアプリケーション1313は、DPRIVを使用してチャレンジを復号化し、それを変換し、その後、DPRIVを使用してそれを再暗号化し得る。ステップ1411において、第2の管理されたアプリケーション1313は、チャレンジレスポンスをペーストボードサービス610に送信し得る。ペーストボードサービス610は、ステップ1412及び1413において、チャレンジレスポンスを復号化し、チャレンジ(ノンス)における変換を確認し得る。チャレンジレスポンスが成功である場合、ペーストボードサービス610は、ステップ1414及び1415において、ウェブハンドラ1321を介して、暗号化された利用者エントロピーを第2の管理されたアプリケーションに送信し得る。第2の管理されたアプリケーション1313は、その後、ステップ1416において、パスコードを復号化し、利用者に入力させることなく共有保管庫へのアクセスを獲得し得る。
図15は、本明細書に説明される1つ以上の例示的な態様による、パスコード更新プロセスを例示するプロセスフロー例を図示する。パスコードを更新するために、いくつかの実施形態において、管理されたアプリケーション1310は、ステップ1501において、暗号化されたパスコードを更新する要求を発し得る。ペーストボードサービス610は、DPUBによって暗号化されたチャレンジ(ノンス)を通して、DPRIVの所有を証明するために、管理されたアプリケーション1310を検証し得る。ステップ1502において、ウェブハンドラ1321は、ペーストボードサービス610にアクセスするために使用された特定GUIDに対するチャレンジを要求し得る。ステップ1503において、ペーストボードサービス610は、DPUBによって暗号化されたチャレンジ(ノンス)を生成し得る。ステップ1504及び1505において、ペーストボードサービス610は、ウェブハンドラ1321を介してチャレンジを管理されたアプリケーション1310に提供する。ステップ1506において、管理されたアプリケーション1310は、DPRIVを使用してチャレンジを復号化し、それを変換し、その後、DPRIVを使用してそれを再暗号化し得る。ステップ1507において、管理されたアプリケーション1310は、チャレンジレスポンスをペーストボードサービス、及び更新され暗号化された新しい利用者エントロピー(パスコード)、DPUB{新しいパスコード}に送信し得る。ペーストボードサービス610は、ステップ1508及び1509において、チャレンジレスポンスを復号化し、チャレンジ(ノンス)における変換を確認し得る。チャレンジレスポンスが成功である場合、ペーストボードサービスは、更新された固有GUIDに対応する利用者エントロピー(パスコード)を更新し得る。ステップ1510及び1511において、ペーストボードサービスは、承認メッセージを管理されたアプリケーション1310に送信し得る。
このような構成(利用者パスコードをサーバに格納すること)は、いくつかの実施形態において、エンドユーザに入力させることなく、アプリケーション間における利用者エントロピーの共有を提供し得る。オフラインフェールバックは、利用者にそのパスコードを入力させることとなり、簡素であり得る。ただし、このようなオンライン構成は、待機時間の課題及びネットワークリソースの利用不可能性等の典型的な問題を受け得る。さらに、オンラインペーストボードは、攻撃者に対し別の手段を提供し得る。これを防止するために、サーバは、ペーストボードにアクセスするために認証の別のレイヤを必要とし得る。
簡潔に上述されたように、いくつかの実施形態は、共有保管庫をサーバにおいて格納し得る。この設計選択は、共有保管庫が共有記憶域としてサーバペーストボード上に格納されることを除き、ローカル保管庫設計と同様であり得る。サーバペーストボードの管理は、前節に記載されたものと同様である。ペーストボード作成ステップは、同一である。初回使用の最後において、管理されたアプリケーションは、データを格納するために使用され得るペーストボードURLを有し得る。ただし、この変形において、ペーストボードによって格納されたデータは、機器公開鍵及び共有秘密保管庫であり得る。全ての他の動作は、上述されたものと同様であり、ここでは繰り返さない。このような構成は、利用可能なローカル共有記憶域(持続性または揮発性)が無いクライアントOS上で有用であり得る。揮発性共有メモリのみが利用可能なクライアントOS上で、サーバにおける共有保管庫に格納された機密情報は、機器再起動後も存続し得る。これは、アプリケーション内キャッシュから復旧するために、マスターアプリケーションに単一フリップすることを回避し得る。
簡潔に上述されたように、いくつかの実施形態は分割記憶域を利用し、共有保管庫のいくつかの部分をサーバ上に格納し、他(または重複部)をローカルに格納し得る。これは、ローカル分割記憶域実装(図5に例示される)と同様の設計を使用してなされ得るが、保管庫管理レコード及び共通アセットをサーバ上に格納し得る。アプリケーション固有アセットは、クライアント機器上のアプリケーション隔離記憶域に格納され得る。このような構成は、利用可能な持続性及び揮発性のどちらのローカル共有記憶域も無いクライアントOS上で有用であり得る。揮発性共有メモリのみが利用可能なクライアントOS上で、サーバにおける保管庫に格納された機密情報は、機器再起動後も存続し得る。これは、アプリケーション内キャッシュから復旧するために、マスターアプリケーションに単一フリップすることを回避し得る。さらに、これは、利用者に利用者エントロピーを入力させることによって、アプリケーション固有アセットへのオフラインアクセスを提供し得る。
サーバ記憶域と共に分割記憶域を使用する実施形態における変形として、いくつかの実施形態において、共通アセットは、サーバ上にキャッシュされ、一方で、保管庫レコード保持エントリは、ローカル共有メモリに格納され得る。保管庫レコード保持エントリは、依然としてマスターアプリケーション(例えば、WorxHome/Receiver)または最初に共有保管庫を作成した管理されたアプリケーションから復旧され得る。サーバキャッシュからの共有保管庫の復旧は、オンラインであることを機器に要求し得るが、共通アセットが、基本的にサーバアクセスに有用であり、これによって、機器がオンラインであるときのそれらの復旧は、利用者体験にそれほど大きな負の影響を有さず、安全性を向上し得る。
簡潔に上述されたように、また更なる実施形態は、キャッシュ及び共有保管庫用の復旧地点を提供するために、サーバを利用し得る。これは、ローカル分割記憶域実装(図5に例示される)と同様の設計を使用してなされ得るが、保管庫管理レコード及び共有アセットへの書き込みはまた、利用可能(オンライン)なときに、二重キャッシュとしてサーバに複製され得る。オフライン機器は、保管庫のペーストボードサーバコピーを更新することなく、保管庫のローカルキャッシュコピーを更新することを継続し得る。このような構成は、ローカル持続性共有記憶域が利用可能なクライアントOS上でシームレス復旧地点を提供するために有用であり得るが、別のアプリケーションによって意図せず消去され得る。また揮発性メモリのみが利用可能な場合にも有用であり得る。サーバキャッシュの使用を通して、共有保管庫に格納された機密情報は、機器再起動後に復旧され得る。
また更なる実施形態において、共有保管庫の一部の実装に使用される共通メモリの形式及び位置は、ポリシーを通して制御され得る。
上述された1つ以上の態様の結果として、モバイル機器アプリケーションは、共有保管庫の使用を通してシングルサインオン機能を提供し得る。利用者は、アプリケーションの初回使用時に最初にパスコードまたは他の利用者エントロピーを提供させられ得るが、その後、アプリケーションは、利用者にそのパスコードをさらに入力させることなく、企業リソースへのアクセスを有し得る。さらに、上述された1つ以上の態様の結果として、共有保管庫に登録されているアプリケーションは、共有保管庫にアクセスし、利用者エントロピーまたは企業認証証明書を提供するために利用者をさらに遮ることなく、初期認証を必要とする企業リソースにアクセスすることができ得る。上述された1つ以上の態様によると、いくつかの実施形態は、アプリケーションの同期を依然として保持しつつ、モバイルアプリケーション間のアプリケーションコンテキスト切り替え(「フリップ」)を回避または最小化し得る。いくつかの実施形態は、単一「マスター」アプリケーションへの依存を回避し得る。
さらに、上述された、いくつかの実施形態は、仮想スマートカード、アプリケーション単位マイクロVPN、アプリケーション単位設定認証、共有機器上の複数の利用者、及び独立アプリケーションを含む企業対消費者使用ケースをサポートまたは提供し得る。
上に例示されたように、本開示の種々の態様は、特に、共有保管庫が、利用者エントロピー、アプリケーションエントロピー、及び/または機器エントロピーによって安全にされる、共有保管庫を使用するシングルサインオン機能を提供することに関する。1つ以上のアプリケーションは、共有保管庫に登録し、利用者によって更なる利用者エントロピー入力を必要とすることなく、アクセス証明書等の共有秘密と共に提供され得る。要旨は、構造的機能及び/または方法論的な動作に対し言語特有に記載されているが、添付の請求項に定義された要旨は、上述された特定の機能または動作に限定される必要がないことが理解されるであろう。むしろ、上述された特定の機能及び動作は、以下の請求項のいくつかの実装例として記載される。
関連出願の相互参照
本出願は、「Shared Secret Vault for Applications with Single Sign On」と題され、2014年12月31日に出願された米国仮特許出願番号第62/098,457号の優先権を主張し、その全体が参照によって本明細書に組み込まれる。

Claims (18)

  1. コンピュータ機器によって、保管庫鍵を使用して暗号化された保管庫データベースを備える共有保管庫を生成することと、
    前記コンピュータ機器上で実行する第1のアプリケーションによって、前記共有保管庫に関連付けられた利用者から第1の利用者エントロピーを受信することと、
    前記第1のアプリケーションによって、前記保管庫鍵の第1のコピーを生成するために、前記第1の利用者エントロピーを使用して第1の保管庫鍵レコードを復号化することと、
    前記第1のアプリケーションによって、前記保管庫鍵の第1のコピーを使用して前記保管庫データベースを復号化することと、
    前記第1のアプリケーションによって、かつ前記保管庫鍵の前記第1のコピーを使用して、ロック解除鍵を取得するために、前記保管庫データベースにアクセスすることと、ここにおいて前記ロック解除鍵は、前記保管庫鍵のコピーを生成するために前記共有保管庫に関連した第2の保管庫鍵レコードを復号化するように操作され、
    前記第1のアプリケーションに関連付けられたアプリケーションメモリに前記ロック解除鍵を格納することと、
    前記第1のアプリケーションによって、前記利用者に関連付けられた利用者証明書を使用してネットワークサービスから第1のネットワークリソースアクセス証明書を取得することと、
    前記第1のアプリケーションによって、前記第1のネットワークリソースアクセス証明書を前記保管庫データベースに書き込むことと、
    前記コンピュータ機器上で実行する第2のアプリケーションによって、かつ第2の利用者エントロピーを使用して、前記保管庫データベースにアクセスして前記ロック解除鍵を取得することと、
    前記第2のアプリケーションによって、前記保管庫鍵の第2のコピーを生成するために、前記ロック解除鍵を使用して第2の保管庫鍵レコードを復号化することと、ここにおいて、前記ロック解除鍵のコピーは、前記第2のアプリケーションに関連するアプリケーションメモリに格納され、
    前記第2のアプリケーションによって、かつ前記保管庫鍵の前記第2のコピーを使用して、前記第1のネットワークリソースアクセス証明書を取得するために前記保管庫データベースにアクセスすることと、を含む方法。
  2. 前記第1のアプリケーションによって、保管庫鍵の前記第1のコピーと前記ロック解除鍵とを使用して前記第2の保管庫鍵レコードを生成することと、
    前記第2の保管庫鍵レコードを前記共有保管庫に格納することと、を含む請求項1に記載の方法。
  3. 前記第1の保管庫鍵レコードは、前記共有保管庫に格納され、前記利用者に関連付けられたパスワードを用いて暗号化され、
    前記第2の保管庫鍵レコードは、前記利用者に関連付けられたパスワードとは別のエントロピーを使用して保護される安全なコンテナに格納される、請求項1記載の方法。
  4. 前記第2のアプリケーションによって、前記保管庫鍵の第2のコピーを生成するために、前記ロック解除鍵を使用して第2の保管庫鍵レコードを復号化することは、
    前記第2のアプリケーションによって、異なる利用者エントロピーを受信することと、
    保管庫鍵の第2のコピーを生成するために、前記第2のアプリケーションによって、かつ前記ロック解除鍵と前記異なる利用者エントロピーを使用して第2の保管庫鍵レコードを復号化すること、を含む、請求項3に記載の方法。
  5. 前記異なる利用者エントロピーは、前記利用者に関連した個人暗証番号(PIN)を含む、請求項3に記載の方法。
  6. 前記第1の利用者エントロピーおよび前記第2の利用者エントロピーは、それぞれ、前記共有保管庫に関連付けられた利用者に対応するパスコードを含む、請求項1に記載の方法。
  7. 前記第2のアプリケーションによって、かつ第2の利用者エントロピーを使用して、前記保管庫データベースにアクセスして前記ロック解除鍵を取得することは、
    前記第2のアプリケーションによって、前記共有保管庫に関連付けられた利用者から第2の利用者エントロピーを受信することと、
    前記第2のアプリケーションによって、前記第2の利用者エントロピーを使用して前記第1の保管庫鍵レコードを復号化して、保管庫鍵の第3のコピーを生成することと、
    前記第2のアプリケーションによって、前記保管庫鍵の第3のコピーを用いて前記保管庫データベースを復号化することと、
    前記第2のアプリケーションによって、前記保管庫データベースから前記ロック解除鍵を取得することを含む、請求項1に記載の方法。
  8. 前記第2のアプリケーションによって、前記第1のネットワークリソースアクセス証明書を用いて、前記ネットワークサービスにアクセスすることをさらに含む、請求項1に記載の方法。
  9. 前記第1の保管庫鍵レコードは、前記共有保管庫に格納されている、請求項1に記載の方法。
  10. 前記第2の保管庫鍵レコードは、前記共有保管庫に格納されている、請求項1に記載の方法。
  11. 前記保管庫データベースは、
    前記保管庫へのアクセスを有する、第1のアプリケーションおよび第2のアプリケーションを含む複数のアプリケーションによってアクセス可能な共有部と、
    前記第1のアプリケーションにアクセス可能であり、かつ前記第1のアプリケーションに関連付けられた第1のアプリケーションエントロピーを使用して暗号化された第1のアプリケーション部と、を含む請求項1に記載の方法。
  12. 前記第2のアプリケーションによって、前記共有保管庫に格納されたアイドル時間タイマーにアクセスすることと、
    前記第2のアプリケーションによって、前記アイドル時間タイマーが、前記保管庫データベースが最後にアクセスされてから所定時間が経過したことを示すか否かを判定することと、
    そのように所定時間が経過したと判定したことに応答して、前記第2の保管庫鍵レコードを前記共有保管庫から削除することと、をさらに含む請求項1に記載の方法。
  13. コンピュータ機器によって、保管庫鍵を使用して暗号化された保管庫データベースを備える共有保管庫を生成することと、
    前記コンピュータ機器上で実行する第1のアプリケーションによって、前記共有保管庫に関連付けられた利用者から利用者エントロピーを受信することと、
    前記第1のアプリケーションによって、前記保管庫鍵の第1のコピーを生成するために、前記利用者エントロピーを使用して前記共有保管庫に関連付けられた第1の保管庫鍵レコードを復号化することと、
    前記第1のアプリケーションによって、前記保管庫鍵の第1のコピーを使用して前記保管庫データベースを復号化することと、
    前記第1のアプリケーションによって、ロック解除鍵を取得するために前記保管庫データベースにアクセスすることと、
    前記第1のアプリケーションによって、前記保管庫鍵の前記第1のコピーと前記ロック解除鍵とを使用して第2の保管庫鍵レコードを生成することと、
    前記第1のアプリケーションによって、前記第2の保管庫鍵レコードを前記共有保管庫に格納することと、
    前記第1のアプリケーションによって、前記利用者に関連付けられた利用者証明書を使用してネットワークサービスから第1のネットワークリソースアクセス証明書を取得することと、
    前記第1のアプリケーションによって、前記第1のネットワークリソースアクセス証明書を前記保管庫データベースに書き込むことと、
    前記コンピュータ機器上で実行する第2のアプリケーションによって、前記ロック解除鍵を用いて、前記第2の保管庫鍵レコードを復号化して、前記保管庫鍵の第2のコピーを生成することと、ここにおいて、前記ロック解除鍵のコピーが前記第2のアプリケーションに関連付けられたアプリケーションメモリに格納され、
    前記第2のアプリケーションによって、かつ前記保管庫鍵の第2のコピーを使用して、前記保管庫データベースにアクセスして、前記第1のネットワークリソースアクセス証明書を取得すること、を含む方法。
  14. 前記コンピュータ機器上で実行する第2のアプリケーションによって、かつ第2の利用者エントロピーを使用して、前記保管庫データベースにアクセスして、前記ロック解除鍵を取得することをさらに含む、請求項13に記載の方法。
  15. 前記第2のアプリケーションによって、かつ第2の利用者エントロピーを使用して、前記保管庫データベースにアクセスして前記ロック解除鍵を取得することは、
    前記第2のアプリケーションによって、前記共有保管庫に関連付けられた利用者から第2の利用者エントロピーを受信することと、
    前記第2のアプリケーションによって、前記第2の利用者エントロピーを使用して第1の保管庫鍵レコードを復号化して、保管庫鍵の第3のコピーを生成することと、
    前記第2のアプリケーションによって、前記保管庫鍵の第3のコピーを使用して前記保管庫データベースを復号化することと、
    前記第2のアプリケーションによって、前記保管庫データベースから前記ロック解除鍵を取得することをさらに含む、請求項14に記載の方法。
  16. システムであって、
    1つ以上のプロセッサと、
    メモリと、
    前記メモリに格納され、保管庫レコード記憶部と、保管庫鍵を使用して暗号化される保管庫データベースとを備える共有保管庫と、
    前記メモリに格納され、第1の命令を有する第1のアプリケーションと、を含み、前記第1の命令は、前記1つ以上のプロセッサによって実行されたときに、本システムに、
    前記第1のアプリケーションを介して、前記共有保管庫に関連付けられた利用者から第1の利用者エントロピーを受信することと、
    前記第1のアプリケーションを介して、前記保管庫鍵の第1のコピーを生成するために、前記第1の利用者エントロピーを使用して第1の保管庫鍵レコードを復号化することと、
    前記第1のアプリケーションを介して、前記保管庫鍵の前記第1のコピーを使用して、前記保管庫データベースを復号化することと、
    前記第1のアプリケーションを介して、かつ前記保管庫鍵の第1のコピーを用いて、ロック解除鍵を取得するために前記保管庫データベースにアクセスすることと、ここにおいて、前記ロック解除鍵は、前記保管庫鍵のコピーを生成するために、前記共有保管庫に関連付けられた第2の保管庫鍵レコードを復号化するように操作可能であり、
    前記第1のアプリケーションに関連付けられたアプリケーションメモリに前記ロック解除鍵を格納することと、
    前記第1のアプリケーションを介して、前記利用者に関連付けられた利用者証明書を使用してネットワークサービスから第1のネットワークリソースアクセス証明書を取得することと、
    前記第1のアプリケーションを介して、前記第1のネットワークリソースアクセス証明書を前記保管庫データベースに書き込むことと、
    を実行させ、
    前記メモリに格納され、第2の命令を有する第2のアプリケーションをさらに含み、前記第2の命令は、前記1つ以上のプロセッサによって実行されたときに、本システムに、
    前記第2のアプリケーションを介して、第2の利用者エントロピーを使用して、前記ロック解除鍵を取得するために、前記保管庫データベースにアクセスすることと、
    前記第2のアプリケーションを介して、前記保管庫鍵の第2のコピーを生成するために、前記ロック解除鍵を使用して前記共有保管庫に関連付けられた第2の保管庫鍵レコードを復号化することと、ここにおいて、前記ロック解除鍵のコピーは前記第2のアプリケーションに関連付けられたアプリケーションメモリに格納され、
    前記第2のアプリケーションを介して、かつ前記保管庫鍵の第2のコピーを使用して、前記第1のネットワークリソースアクセス証明書を取得するために、前記保管庫データベースにアクセスすること、
    を実行させる、システム。
  17. 前記第2の命令は、前記1つ以上のプロセッサによって実行されたときに、本システムに、
    前記第2のアプリケーションを介して、かつ第2の利用者エントロピーを使用して、前記ロック解除鍵を取得するために前記保管庫データベースにアクセスすることを実行させる、請求項16に記載のシステム、ここにおいて、前記第2の命令は、
    前記第2のアプリケーションを介して、前記共有保管庫に関連付けられた利用者から第2の利用者エントロピーを受信することと、
    前記第2のアプリケーションを介して、前記第2の利用者エントロピーを使用して第1の保管庫鍵レコードを復号化して、前記保管庫鍵の第3のコピーを生成することと、
    前記第2のアプリケーションを介して、前記保管庫鍵の第3のコピーをを用いて前記保管庫データベースを復号化することと、
    前記第2のアプリケーションを介して、前記保管庫データベースから前記ロック解除鍵を取得することを実行させる。
  18. 前記1つ以上のプロセッサによって実行される前記第1の命令は、さらに本システムに、
    前記第1のアプリケーションによって、前記保管庫鍵の前記第1のコピーと前記ロック解除鍵とを使用して第2の保管庫鍵レコードを生成することと、
    前記第2の保管庫鍵レコードを前記共有保管庫に格納することと、を実行させる、請求項16に記載のシステム。
JP2018155604A 2014-12-31 2018-08-22 シングルサインオンを含むアプリケーション用の共有秘密保管庫 Expired - Fee Related JP6424295B1 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US201462098457P 2014-12-31 2014-12-31
US62/098,457 2014-12-31

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP2017535436A Division JP6417483B2 (ja) 2014-12-31 2015-12-30 シングルサインオンを含むアプリケーション用の共有秘密保管庫

Publications (2)

Publication Number Publication Date
JP6424295B1 true JP6424295B1 (ja) 2018-11-14
JP2018201239A JP2018201239A (ja) 2018-12-20

Family

ID=55182598

Family Applications (2)

Application Number Title Priority Date Filing Date
JP2017535436A Expired - Fee Related JP6417483B2 (ja) 2014-12-31 2015-12-30 シングルサインオンを含むアプリケーション用の共有秘密保管庫
JP2018155604A Expired - Fee Related JP6424295B1 (ja) 2014-12-31 2018-08-22 シングルサインオンを含むアプリケーション用の共有秘密保管庫

Family Applications Before (1)

Application Number Title Priority Date Filing Date
JP2017535436A Expired - Fee Related JP6417483B2 (ja) 2014-12-31 2015-12-30 シングルサインオンを含むアプリケーション用の共有秘密保管庫

Country Status (4)

Country Link
US (4) US9626525B2 (ja)
EP (2) EP3241139B1 (ja)
JP (2) JP6417483B2 (ja)
WO (1) WO2016109666A1 (ja)

Families Citing this family (65)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11665282B2 (en) 2009-01-28 2023-05-30 Virtual Hold Technology Solutions, Llc System and method for secure transitory data storage and management
US11785143B2 (en) 2009-01-28 2023-10-10 Virtual Hold Technology Solutions, Llc System and method for secure storage and management of transitory data using a blockchain
US11546472B2 (en) 2009-01-28 2023-01-03 Virtual Hold Technology Solutions, Llc System and method for a cloud callback platform
US10270748B2 (en) 2013-03-22 2019-04-23 Nok Nok Labs, Inc. Advanced authentication techniques and applications
JP6417483B2 (ja) * 2014-12-31 2018-11-07 サイトリックス システムズ,インコーポレイテッド シングルサインオンを含むアプリケーション用の共有秘密保管庫
CN105989511B (zh) * 2015-02-09 2022-04-15 创新先进技术有限公司 业务实现方法及装置
US10146931B1 (en) * 2015-03-13 2018-12-04 EMC IP Holding Company LLC Organization-level password management employing user-device password vault
US10324926B2 (en) * 2015-05-15 2019-06-18 Microsoft Technology Licensing, Llc System and method for extracting and sharing application-related user data
US10230529B2 (en) * 2015-07-31 2019-03-12 Microsft Technology Licensing, LLC Techniques to secure computation data in a computing environment
US10467421B2 (en) * 2015-10-23 2019-11-05 Oracle International Corporation Establishing trust between containers
CA2913571A1 (en) * 2015-12-01 2017-06-01 Frederic Mailhot Multi-platform user authentication device with double and multilaterally blind on-the-fly key generation
US11424931B2 (en) * 2016-01-27 2022-08-23 Blackberry Limited Trusted execution environment
US10516530B2 (en) * 2016-01-29 2019-12-24 Mx Technologies, Inc. Secure data handling and storage
US10148646B2 (en) 2016-07-20 2018-12-04 Bank Of America Corporation Preventing unauthorized access to secured information systems using tokenized authentication techniques
US10057255B2 (en) 2016-07-20 2018-08-21 Bank Of America Corporation Preventing unauthorized access to secured information systems using multi-device authentication techniques
US10057249B2 (en) 2016-07-20 2018-08-21 Bank Of America Corporation Preventing unauthorized access to secured information systems using tokenized authentication techniques
US10834231B2 (en) * 2016-10-11 2020-11-10 Synergex Group Methods, systems, and media for pairing devices to complete a task using an application request
US10255174B2 (en) * 2016-11-30 2019-04-09 Sap Se Common cache pool for applications
US11580201B2 (en) * 2016-11-30 2023-02-14 Blackberry Limited Method and apparatus for accessing authentication credentials within a credential vault
US10356079B2 (en) * 2016-12-05 2019-07-16 Keeper Security, Inc. System and method for a single sign on connection in a zero-knowledge vault architecture
US10469478B2 (en) 2016-12-07 2019-11-05 Vmware, Inc. Inter-application secure data sharing workflow
EP3364329B1 (en) * 2017-02-21 2023-07-26 Mastercard International Incorporated Security architecture for device applications
WO2018156068A1 (en) * 2017-02-22 2018-08-30 Fingerprint Cards Ab Biometrics-based remote login
US10460115B2 (en) * 2017-05-15 2019-10-29 International Business Machines Corporation Data anonymity
US10466889B2 (en) * 2017-05-16 2019-11-05 Apple Inc. Devices, methods, and graphical user interfaces for accessing notifications
US10657239B2 (en) * 2017-05-25 2020-05-19 Oracle International Corporation Limiting access to application features in cloud applications
US10691837B1 (en) * 2017-06-02 2020-06-23 Apple Inc. Multi-user storage volume encryption via secure enclave
US10523425B2 (en) * 2017-06-22 2019-12-31 Salesforce.Com, Inc. Database password changes
US11233634B1 (en) 2017-06-23 2022-01-25 Wells Fargo Bank, N.A. Systems and methods for network authentication with a shared secret
US10644890B1 (en) 2017-06-29 2020-05-05 Salesforce.Com Language-agnostic secure application deployment
US10749689B1 (en) * 2017-06-29 2020-08-18 Salesforce.Com, Inc. Language-agnostic secure application development
US11163910B2 (en) * 2017-06-29 2021-11-02 Salesforce.Com, Inc. Methods and systems for data migration
US10805284B2 (en) * 2017-07-12 2020-10-13 Logmein, Inc. Federated login for password vault
CN109284603B (zh) * 2017-07-20 2022-07-01 腾讯科技(深圳)有限公司 一种配置数据处理方法、装置及存储介质
US10346224B2 (en) * 2017-08-30 2019-07-09 Vmware, Inc. Management framework for applications using passcode-based encryption
US10909271B2 (en) * 2017-09-28 2021-02-02 Citrix Systems, Inc. Policy based persistence
US11868995B2 (en) 2017-11-27 2024-01-09 Nok Nok Labs, Inc. Extending a secure key storage for transaction confirmation and cryptocurrency
US11831409B2 (en) 2018-01-12 2023-11-28 Nok Nok Labs, Inc. System and method for binding verifiable claims
US11023573B2 (en) * 2018-04-20 2021-06-01 Microsoft Technology Licensing, Llc Password reset for multi-domain environment
US10810585B2 (en) * 2018-07-06 2020-10-20 Mastercard International Incorporated Systems and methods for authenticating users in connection with mobile operations
KR102512414B1 (ko) * 2018-10-29 2023-03-20 에스케이텔레콤 주식회사 게이트웨이장치 및 컴퓨터프로그램
US12041039B2 (en) * 2019-02-28 2024-07-16 Nok Nok Labs, Inc. System and method for endorsing a new authenticator
US11792024B2 (en) 2019-03-29 2023-10-17 Nok Nok Labs, Inc. System and method for efficient challenge-response authentication
US11347411B2 (en) 2019-07-17 2022-05-31 Ubs Business Solutions Ag Secure storing and processing of data
US20220321357A1 (en) * 2019-08-20 2022-10-06 Nippon Telegraph And Telephone Corporation User credential control system and user credential control method
US20210111876A1 (en) * 2019-10-11 2021-04-15 Atakama LLC Secure session for decryption
US11328080B2 (en) * 2019-11-18 2022-05-10 Frostbyte, Llc Cryptographic key management
US11455412B2 (en) * 2019-12-03 2022-09-27 Microsoft Technology Licensing, Llc Enhanced management of access rights for dynamic user groups sharing secret data
US11424914B2 (en) 2019-12-03 2022-08-23 Microsoft Technology Licensing, Llc Enhanced security of secret data for dynamic user groups
US11588794B2 (en) * 2019-12-10 2023-02-21 Winkk, Inc. Method and apparatus for secure application framework and platform
US11438316B2 (en) 2020-01-16 2022-09-06 360 It, Uab Sharing encrypted items with participants verification
WO2021165753A1 (en) * 2020-02-20 2021-08-26 Gaurav Upadhyay System and method to manage multiple-account access using a master key
WO2021183374A1 (en) * 2020-03-09 2021-09-16 Spectrum Brands, Inc. Electronic lock pairing via passcode
US11416127B2 (en) 2020-03-10 2022-08-16 Apple Inc. Devices, methods, and graphical user interfaces for interacting with user interface objects corresponding to applications
DE102020107805A1 (de) * 2020-03-20 2021-09-23 Bundesdruckerei Gmbh Nutzerauthentifizierung unter Verwendung zweier unabhängiger Sicherheitselemente
CN113515330B (zh) * 2020-04-10 2024-04-26 南方电网科学研究院有限责任公司 一种基于国产密码技术的云桌面安全认证方法、系统
US11469887B1 (en) 2020-06-29 2022-10-11 Amazon Technologies, Inc. Remote hardware execution service with customer consented debugging
US20220318438A1 (en) * 2021-04-06 2022-10-06 Comcast Cable Communications, Llc Systems and methods for data security on a mobile device
US12095751B2 (en) 2021-06-04 2024-09-17 Winkk, Inc. Encryption for one-way data stream
US11743040B2 (en) 2021-06-25 2023-08-29 Bank Of America Corporation Vault encryption abstraction framework system
US11971974B2 (en) * 2021-12-10 2024-04-30 Konica Minolta Business Solutions U.S.A., Inc. Method and system for mapping a virtual smart card to a plurality of users
US11842028B2 (en) 2022-05-06 2023-12-12 Apple Inc. Devices, methods, and graphical user interfaces for updating a session region
EP4273677A1 (en) 2022-05-06 2023-11-08 Apple Inc. Devices, methods, and graphical user interfaces for updating a session region
CN115412323B (zh) * 2022-08-23 2023-07-18 江苏云涌电子科技股份有限公司 一种基于tcm的单次登录访问多个应用的方法
WO2024046571A1 (en) * 2022-09-01 2024-03-07 Assa Abloy Ab Dependent credentials

Family Cites Families (30)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5200999A (en) * 1991-09-27 1993-04-06 International Business Machines Corporation Public key cryptosystem key management based on control vectors
US5787169A (en) * 1995-12-28 1998-07-28 International Business Machines Corp. Method and apparatus for controlling access to encrypted data files in a computer system
US6795920B1 (en) * 1999-06-30 2004-09-21 International Business Machines Corporation Vault controller secure depositor for managing secure communication
US20020111946A1 (en) * 2000-09-29 2002-08-15 Jill Fallon Systems and methods for a personal, universal, integrated organizer for legacy planning and storage
WO2002103496A2 (en) * 2001-06-18 2002-12-27 Daon Holdings Limited An electronic data vault providing biometrically protected electronic signatures
US8386797B1 (en) * 2002-08-07 2013-02-26 Nvidia Corporation System and method for transparent disk encryption
US7240219B2 (en) * 2003-05-25 2007-07-03 Sandisk Il Ltd. Method and system for maintaining backup of portable storage devices
US7565702B2 (en) * 2003-11-03 2009-07-21 Microsoft Corporation Password-based key management
US8224725B2 (en) * 2004-10-14 2012-07-17 Google Inc. Escrowing digital property in a secure information vault
US7861290B2 (en) 2006-09-22 2010-12-28 Oracle International Corporation Non-invasive insertion of pagelets
US8429425B2 (en) * 2007-06-08 2013-04-23 Apple Inc. Electronic backup and restoration of encrypted data
US8438383B2 (en) * 2010-04-05 2013-05-07 White Sky, Inc. User authentication system
US20120036565A1 (en) * 2010-04-05 2012-02-09 Juan Gamez Personal data protection suite
JP5391756B2 (ja) * 2009-03-17 2014-01-15 株式会社リコー 画像形成装置、情報管理方法、及びプログラム
WO2010143191A1 (en) * 2009-06-11 2010-12-16 Safend Ltd. System and method for protecting information and related encryption keys
US20110113235A1 (en) * 2009-08-27 2011-05-12 Craig Erickson PC Security Lock Device Using Permanent ID and Hidden Keys
WO2011137254A2 (en) * 2010-04-30 2011-11-03 Tobsc Inc. Methods and apparatus for a document clearinghouse and secure delivery network
US9413526B1 (en) * 2011-03-08 2016-08-09 Ciphercloud, Inc. System and method to anonymize data transmitted to a destination computing device
US9473485B2 (en) 2011-03-21 2016-10-18 Blue Cedar Networks, Inc. Secure single sign-on for a group of wrapped applications on a computing device and runtime credential sharing
US20130191629A1 (en) * 2012-01-19 2013-07-25 Laconic Security, Llc Secure group-based data storage in the cloud
SG193041A1 (en) * 2012-02-21 2013-09-30 Global Blue Holdings Ab Transaction processing system and method
US8613070B1 (en) * 2012-10-12 2013-12-17 Citrix Systems, Inc. Single sign-on access in an orchestration framework for connected devices
US20140108793A1 (en) * 2012-10-16 2014-04-17 Citrix Systems, Inc. Controlling mobile device access to secure data
US8997197B2 (en) * 2012-12-12 2015-03-31 Citrix Systems, Inc. Encryption-based data access management
US9326145B2 (en) * 2012-12-16 2016-04-26 Aruba Networks, Inc. System and method for application usage controls through policy enforcement
US9165151B2 (en) * 2013-03-13 2015-10-20 Fred Federspiel Systems, methods, and devices for encrypted data management
US20150039908A1 (en) * 2013-07-30 2015-02-05 Deutsche Telekom Ag System and Method for Securing A Credential Vault On A Trusted Computing Base
US9639710B2 (en) * 2013-12-23 2017-05-02 Symantec Corporation Device-based PIN authentication process to protect encrypted data
US9760710B2 (en) * 2014-02-28 2017-09-12 Sap Se Password recovering for mobile applications
JP6417483B2 (ja) * 2014-12-31 2018-11-07 サイトリックス システムズ,インコーポレイテッド シングルサインオンを含むアプリケーション用の共有秘密保管庫

Also Published As

Publication number Publication date
US20160191499A1 (en) 2016-06-30
US20170185787A1 (en) 2017-06-29
EP3241139B1 (en) 2020-05-20
EP3241139A1 (en) 2017-11-08
US10049224B2 (en) 2018-08-14
US10699024B2 (en) 2020-06-30
US20210234853A1 (en) 2021-07-29
US20180322298A1 (en) 2018-11-08
US11288384B2 (en) 2022-03-29
EP3702946B1 (en) 2021-10-20
JP2018504836A (ja) 2018-02-15
EP3702946A1 (en) 2020-09-02
JP2018201239A (ja) 2018-12-20
US9626525B2 (en) 2017-04-18
WO2016109666A1 (en) 2016-07-07
JP6417483B2 (ja) 2018-11-07

Similar Documents

Publication Publication Date Title
JP6424295B1 (ja) シングルサインオンを含むアプリケーション用の共有秘密保管庫
US11297055B2 (en) Multifactor contextual authentication and entropy from device or device input or gesture authentication
US10873468B2 (en) Legacy authentication for user authentication with self-signed certificate and identity verification
US9628448B2 (en) User and device authentication in enterprise systems
CN113316783A (zh) 使用活动目录和一次性口令令牌组合的双因素身份认证
US8489889B1 (en) Method and apparatus for restricting access to encrypted data
US20150121498A1 (en) Remote keychain for mobile devices
JP6669929B2 (ja) シングルサインオンアプリケーション用の暗号化鍵を管理するためのシステム及び方法
US20170026353A1 (en) Management of access sessions
EP3651051A1 (en) Systems and methods for a saas lens to view obfuscated content
US10078747B2 (en) Resumption of logon across reboots
US11550964B2 (en) Account-specific security in an email client

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20180827

A871 Explanation of circumstances concerning accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A871

Effective date: 20180827

A975 Report on accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A971005

Effective date: 20180903

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20180920

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20181022

R150 Certificate of patent or registration of utility model

Ref document number: 6424295

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees