JP6517359B2 - アカウント復元プロトコル - Google Patents

アカウント復元プロトコル Download PDF

Info

Publication number
JP6517359B2
JP6517359B2 JP2017544834A JP2017544834A JP6517359B2 JP 6517359 B2 JP6517359 B2 JP 6517359B2 JP 2017544834 A JP2017544834 A JP 2017544834A JP 2017544834 A JP2017544834 A JP 2017544834A JP 6517359 B2 JP6517359 B2 JP 6517359B2
Authority
JP
Japan
Prior art keywords
user
account
request
restoration
password
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.)
Active
Application number
JP2017544834A
Other languages
English (en)
Other versions
JP2018503199A (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 マカフィー, エルエルシー
Publication of JP2018503199A publication Critical patent/JP2018503199A/ja
Application granted granted Critical
Publication of JP6517359B2 publication Critical patent/JP6517359B2/ja
Active 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/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/45Structures or tools for the administration of authentication
    • 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/40User authentication by quorum, i.e. whereby two or more security principals are required
    • 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
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
    • G06F21/6272Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database by registering files or documents with a third party
    • 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
    • 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/0891Revocation or update of secret information, e.g. encryption key update or rekeying
    • 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
    • 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/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3226Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using a predetermined code, e.g. password, passphrase or PIN
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2131Lost password, e.g. recovery of lost or forgotten passwords
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2133Verifying human interaction, e.g., Captcha

Description

[関連出願の相互参照]
本出願は、参照によって全体が本明細書に組み込まれる、2014年11月14日に申請された、「アカウント復元プロトコル」と題する米国特許出願第62/080,125号、および、2015年10月30日に申請された、「アカウント復元プロトコル」と題する米国特許出願第14/928,443号の利益および優先権を主張する。
本出願は、コンピューティングの分野に関し、より具体的には、ユーザアカウント復元のためのシステム、方法、およびプロトコルに関する。
ユーザが利用できるサービスおよびアプリケーションの普及に伴い、多くの場合、特定のユーザが、そのユーザに関連する、数多くのサービスおよび/またはアプリケーションのアカウントのためのパスワードなどのログイン認証情報を覚えておくことが必要となっている。ユーザがアカウントに関連するパスワードを失念または紛失した場合、ユーザは通常、アカウントへのアクセスを取り戻すべく、パスワード復元手順を開始する必要がある。しかしながら、多くの既存のパスワード復元手順は、セキュリティの脆弱性を伴う。
添付の図面の図には、例として、非限定的な実施形態が示されている。ここでは、類似の参照符号は同様の要素を示す。
一実施形態による、クライアント側およびサーバ側のコンポーネントを含む、ユーザアカウント復元のための高レベルのアーキテクチャを示す。
一実施形態によるユーザアカウント復元のための通信システムを示す。
一実施形態による、アカウント復元プロトコルのセットアップおよび管理のためのプロセスフローの例を示す。 一実施形態による、アカウント復元プロトコルのセットアップおよび管理のためのプロセスフローの例を示す。
一実施形態によるアカウント復元プロトコルのためのアカウント復元要求確立プロセスフローの例を示す。 一実施形態によるアカウント復元プロトコルのためのアカウント復元要求確立プロセスフローの例を示す。
一実施形態によるアカウント復元プロトコルのためのアカウント復元要求招待プロセスフローの例を示す。
一実施形態によるアカウント復元プロトコルのためのアカウント復元要求完了プロセスフローの例を示す。 一実施形態によるアカウント復元プロトコルのためのアカウント復元要求完了プロセスフローの例を示す。
クライアントデバイスの実施形態の簡略化されたブロック図を示す。
認証サーバの実施形態の簡略化されたブロック図を示す。
1つまたは複数の例示的な実施形態は、アカウント復元プロトコル(ARP)のためのシステムおよび方法に関する。これらは、マスターパスワードを再設定するための機構であり、パスワードマネージャであるユーザが関連する「マスターパスワード」を失念した場合に、クラウドサービスなどのネットワークサービスに関連する、自身のアカウントへのアクセス、および、暗号化された保存データを復元することを可能にする。1つまたは複数の実施形態において、システム運用者は、サービスに関連するマスターパスワードの情報をそれ自体で保持していない。特定の実施形態において、アカウント復元プロトコルは、「マスターパスワード」復元ではなく、「アカウント/アクセス」復元を促進する。なぜなら、サービスプロバイダの観点からさえもユーザのプライバシーおよびデータ機密性を保護するべく、一部のパスワードマネージャは、いかなるときもマスターパスワードの保存されたコピーを保持していないからである。
1つまたは複数の実施形態において、パスワードマネージャは、本明細書に記載されているようなユーザ認証を統合するための多面的アーキテクチャを含む認証プラットフォームの一部である。様々な実施形態において、パスワードマネージャは、クラウド内サービスなどのネットワークサービスへの中央集中型認証アクセスを提供する。1つまたは複数の実施形態において、「リライングパーティ(Relying Party)(RP)」と呼ばれる、認証サービスに登録しているサービスまたはエンティティは、RPがユーザにサービスを提供する前に、認証サービスを使用して、ユーザに要求される認証因子をセットアップする。1つまたは複数の実施形態において、パスワードマネージャアプリケーションは、登録しているユーザに対してダッシュボードを提示し、ユーザが使用するクラウドサービス全てをダッシュボード内に表示する。それにより、ユーザが利用するサービスの認証要件を入力すること、要求された認証因子を必要なときに提供すること、冗長な別のログインを試行することなく中央集中型方式でこれらのサービスにアクセスすることが可能となる。パスワードマネージャはユーザに対し、アカウント所持者だけに知られるマスターパスワードをセットアップするように要求する。マスターパスワードは、他のパスワードと同様に、ユーザ認証に利用され、アカウントへのログイン、および、ユーザのサービスへのアクセスの獲得を容易にするが、他の重要な役割も有する。それは、ユーザデータの暗号化に使用される鍵、および、復元プロセスにおいて役立つ他の鍵を生成することである。
図1は、一実施形態による、クライアント側およびサーバ側のコンポーネントを含む、ユーザアカウント復元のための高レベルのアーキテクチャ100を示す。図1に示されている特定の実施形態において、アーキテクチャ100は、認証コンポーネント102および登録/管理コンポーネント104を含む。本明細書において後で更に記載されているように、認証コンポーネント102は、クライアントデバイスからの認証要求を処理するように構成されている1つまたは複数の認証モジュールを含む。示されている実施形態において、認証コンポーネント102の認証モジュールは、フロー・アンド・アクションハンドラモジュール、管理構成用アプリケーションプログラミングインタフェース(API)、構成保存部、Representational State Transfer(REST)サーバ、セッション保存部、および、REST APIを含む。特定の実施形態において、認証モジュールは、OAuthオープン規格にしたがって構成される。登録/管理コンポーネント104は、コンテキストデータモジュール、リライングパーティ管理ツール、ユーザ/アプリケーションポリシー管理モジュール、および、プライベートREST APIを含む。
認証コンポーネント102および登録/管理コンポーネント104は各々、クラウドサービス106、サーバ108、ID認証サービス110と更に通信する。クラウドサービス106は更に、データ抽象化層(DAL)、コンテキストモジュール、ユーザプロファイルモジュール、リスク分析エンジン、および、REST APIを含む。サーバ108は、ハードウェア登録/検証モジュール、証明モジュール、および、REST APIを含む。ID認証サービス110は、アーキテクチャ100内の他のコンポーネントとの通信を容易にするように構成されているREST APIを含む。クラウドサービス106は更に、1つまたは複数のデータベース112と通信する。示されている特定の実施形態において、データベース112は、セッションデータベース、バイオメトリックデータベース、および、認証データベースを含む。
アーキテクチャ100は更に、1つまたは複数のリライングパーティエンティティに関連する1つまたは複数のサーバ上にある、リライングパーティウェブサイト114、および、リライングパーティアプリケーション116を含む。リライングパーティウェブサイト114およびリライングパーティアプリケーション116の各々は、認証コンポーネント102と通信する。リライングパーティウェブサイトは、ウェブソフトウェア開発キット(SDK)を含み、更に認証ウェブインタフェース118と通信する。認証ウェブインタフェース118は更に、登録/管理コンポーネント104と通信する。リライングパーティアプリケーション116は更に、認証クライアントアプリケーション120と通信する。認証クライアントアプリケーション120は更に、登録/管理コンポーネント104と通信する。アーキテクチャ100は更に、登録/管理コンポーネント104と通信する認証OSログインコンポーネント122を含む。認証クライアントアプリケーション120および認証OSログインコンポーネント122の各々は、ユーザからバイオメトリックデータを取得することを容易にするローカルバイオメトリックライブラリを含む。
認証コンポーネント102は、認証機能のための認証要求を処理すること、ならびに、認証要求を処理するための、ユーザプロファイル、ポリシー、および、バイオメトリックコンポーネントなどのコンポーネントとインタラクトする、認証固有のフロー・アンド・アクションハンドラを生成することを行うように構成されている。登録手順中、登録/管理コンポーネント104は、プライベートREST APIを介して、様々なコンポーネントとインタフェースで接続し、特定のユーザのためのユーザプロファイルを生成し、特定のRPクライアントを識別するリライングパーティ(RP)クライアント識別子(ID)にユーザプロファイルを関連付ける。1つまたは複数の実施形態において、ユーザプロファイルおよびRPクライアントポリシーが生成され、1つまたは複数のデータベース(DB)112内に保存される。特定の実施形態において、ユーザプロファイル、RPアプリケーションポリシー、および、コンテキストデータのDB構造は、認証要求のために認証モジュール102と共有される。
例示的な一実施形態において、1つまたは複数の認証サーバ内のポリシーエンジンは、1つまたは複数のRPエンティティに対するユーザの認証のためのポリシーを管理する。特定の実施形態において、RPエンティティが提供するリソースに対する、ユーザによるアクセスを制御するべく、ユーザに関連するポリシーは、登録するRPエンティティと、ユーザ自身のセキュリティ設定との両方によって構成できる。特定の実施形態において、認証因子の使用についてのセキュリティレベルは最低限に設定され、ユーザおよび/またはRPエンティティは、認証の因子のレベルおよび数を増加させ得るが、減少させ得ない。
様々な実施形態にしたがって、アカウント復元プロトコル(ARP)は、復元機構として、様々な実施形態においてユーザに提供される。1つまたは複数の実施形態において、ユーザには、復元機構をセットアップするための選択肢が予め提供され得る。それにより、関連するマスターパスワードをユーザが失念した場合、ユーザは、ユーザのサービスに対するアクセスの喪失から復元し、回復できる。
図2は、一実施形態による、ユーザアカウント復元のための通信システム200を示す。通信システム200は、ユーザAに関連する第1クライアントデバイス202a、ユーザBに関連する第2クライアントデバイス202b、ユーザCに関連する第3クライアントデバイス202c、ユーザDに関連する第4クライアントデバイス202d、ユーザEに関連する第5クライアントデバイス202e、ユーザFに関連する第6クライアントデバイス202fを含む。クライアントデバイス202a−202fの各々は、1つまたは複数のネットワーク204を介して認証サーバ206と通信する。ネットワーク204は、モバイルアクセスネットワーク、インターネット、または、他のいずれかの好適なネットワークのうち1つまたは複数を含み得て、それにより、クライアントデバイス202a−202fが認証サーバ206と通信することを可能にする。認証サーバ206は更に、インターネット208を介して、リライングパーティ(RP)サーバ210と通信する。第1クライアントデバイス202aは、第1パスワードアプリケーション212aを含み、第2クライアントデバイス202bは、第2パスワードアプリケーション212bを含み、第3クライアントデバイス202cは、第3パスワードアプリケーション212cを含み、第4クライアントデバイス202dは、第4パスワードアプリケーション212dを含み、第5クライアントデバイス202eは、第5パスワードアプリケーション212eを含み、第6クライアントデバイス202fは、第6パスワードアプリケーション212fを含む。本明細書において後で更に記載されているように、パスワードアプリケーション212a−212fの各々は、様々なパスワードのセットアップおよび復元手順を実行するべく、それぞれのクライアントデバイス202a−202fのユーザが認証サーバ102と通信することを可能にするように構成されている。
認証サーバ206は、認証コンポーネント102を含む。認証コンポーネントは、パスワードアプリケーションREST API214を含む。特定の実施形態において、認証サーバ206は、サービスプロバイダの基幹ネットワーク内に配置され得る。パスワードアプリケーションREST API214は、クライアントデバイス202a−202fのパスワードアプリケーション212a−212fのそれぞれとインタフェース接続するように構成されている。これにより、認証コンポーネント102が、本明細書に記載されているようなパスワードのセットアップおよび後のパスワード復元操作を実行することを可能にし、クライアントデバイス202a−202fのうち1つまたは複数に関連するユーザが、RPサーバ210に関連する、リソース、サービス、アプリケーション、および/または、コンテンツ(RPサーバ210によって提供されるストリーミング音声、ストリーミングビデオ、ビデオコンテンツ、音声コンテンツ、または、他のいずれかの所望のコンテンツなどの)にアクセスすることを可能にする。
クライアントデバイス202a−202fは、RPサーバ210によって提供されるリソースにアクセスできる、いずれかの電子デバイスまたはコンピューティングデバイスを含み得る。これらのクライアントデバイス202a−202fは、例えば、モバイルフォン、デスクトップPC、ラップトップコンピュータ、タブレットコンピュータ、パーソナルデータアシスタント(PDA)、スマートフォン、ポータブルメディアファイルプレイヤー、電子書籍リーダー、ポータブルコンピュータ、ヘッドマウントディスプレイ、インタラクティブキオスク、ネットブック、シングルボードコンピュータ(SBC)、組み込みコンピュータシステム、ウェアラブルコンピュータ(例えば、腕時計または眼鏡)、ゲームコンソール、ホームシアターPC(HTPC)、テレビ、DVDプレイヤー、デジタルケーブルボックス、デジタルビデオレコーダー(DVR)、ウェブブラウザを実行可能なコンピュータシステム、または、これらのうちいずれか2つまたはより多くの組み合わせを含み得る。コンピューティングデバイスは、これらに限定されないが、Android、Berkeley Software Distribution(BSD)(登録商標)、iPhone OS(iOS)(登録商標)、Linux(登録商標)、OS X(登録商標)、Unix−like Real−time Operating System(登録商標)(例えば、QNX)、Microsoft Windows(登録商標)、Window Phone(登録商標)、および、IBM z/OS(登録商標)を含むオペレーティングシステムを使用し得る。
リライングパーティ(RP)サーバ210は、ユーザがリソースにアクセスする前にユーザが識別および認証されることを必要とする、ウェブサイト、ベンダ、ならびに、その他、データ、サービス、および、アプリケーションのプロバイダなどのエンティティに関連するサーバを含み得る。
例示的な実装において、クライアントデバイス202a−202f、認証サーバ206、および、RPサーバ210は、ネットワーク環境において情報を交換するように操作可能な、ネットワーク機器、サーバ、ルータ、スイッチ、ゲートウェイ、ブリッジ、ロードバランサ、プロセッサ、モジュール、または、他のいずれかの好適なデバイス、コンポーネント、要素、もしくはオブジェクトを包含するように意図されているネットワーク要素である。ネットワーク要素は、それらの操作を容易にする、いずれかの好適なハードウェア、ソフトウェア、コンポーネント、モジュール、または、オブジェクトを含み得て、更に、ネットワーク環境において、データまたは情報を受信、送信、および/または、さもなければ通信するための好適なインタフェースを含み得る。これは、データまたは情報の効果的な交換を可能にする適切なアルゴリズム、および、通信プロトコルを包含し得る。
通信システム200に関連する内部構造については、クライアントデバイス202a−202f、認証サーバ206、および、RPサーバ210の各々は、本明細書に記載されている操作で使用される情報を保存するためのメモリ要素を含み得る。クライアントデバイス202a−202f、認証サーバ206、および、RPサーバ210の各々は、特定の必要性に基づいて適宜、いずれかの好適なメモリ要素(例えば、ランダムアクセスメモリ(RAM)、リードオンリーメモリ(ROM)、消去可能プログラマブルROM(EPROM)、電気的消去可能プログラマブルROM(EEPROM)、特定用途向け集積回路(ASIC)など)、ソフトウェア、ハードウェア、ファームウェア、または、他のいずれかの好適なコンポーネント、デバイス、要素、もしくはオブジェクト内に情報を保持し得る。本明細書に記載されているいずれかのメモリアイテムは、「メモリ要素」という広義の用語に包含されると解釈されるべきである。更に、通信システム200において使用、追跡、送信、または、受信される情報は、いずれかのデータベース、レジスタ、キュー、テーブル、キャッシュ、制御リスト、または、他のストレージ構造内に提供できるであろう。それらは全て、いずれかの好適な間隔で参照できる。そのようなストレージの選択肢のいずれも、本明細書に使用される「メモリ要素」という広義の用語内に含まれ得る。
特定の例示的な実装において、本明細書に記載されている機能は、非揮発性コンピュータ可読媒体を含み得る1つまたは複数の有形媒体内に符号化されている論理(例えば、ASIC内に提供される組み込み論理、デジタル信号プロセッサ(DSP)命令、プロセッサによって実行される(場合によっては、オブジェクトコードおよびソースコードを含む)ソフトウェア、または、他の同様の機械など)によって実装され得る。これらのインスタンスのいくつかにおいて、メモリ要素は、本明細書に記載されている操作に使用されるデータを保存できる。これは、本明細書に記載されているアクティビティを遂行するべく実行されるソフトウェア、論理、コンピュータコード、または、プロセッサ命令を保存できるメモリ要素を含む。
例示的な実装において、クライアントデバイス202a−202f、認証サーバ206、および、RPサーバ210など、通信システム200のネットワーク要素は、本明細書に記載されている操作を実現または助長するためのソフトウェアモジュールを含み得る。これらのモジュールは、特定の構成および/またはプロビジョニングの必要性に基づき得る、いずれかの適切な手法で好適に組み合わせられ得る。特定の実施形態において、そのような操作は、ハードウェアによって遂行されるか、これらの要素の外部で実装されるか、または、意図された機能を実現する他の何らかのネットワークデバイス内に含まれ得る。更に、モジュールは、ソフトウェア、ハードウェア、ファームウェア、または、それらのいずれかの好適な組み合わせとして実装できる。これらの要素は、本明細書に記載されているような操作を実現するべく他のネットワーク要素と連携できるソフトウェアも含み得る。
加えて、クライアントデバイス202a−202f、認証サーバ206、および、RPサーバ210の各々は、本明細書に記載されているアクティビティを実行するためのソフトウェアまたはアルゴリズムを実行できるプロセッサを含み得る。プロセッサは、本明細書に詳しく記載されている操作を実現するためのデータに関連する任意の種類の命令を実行できる。一例において、プロセッサは、1つの状態または物から、他の状態または物へと、要素または品目(例えば、データ)を変換できるであろう。他の例において、本明細書に記載されているアクティビティは、固定論理またはプログラマブル論理(例えば、プロセッサによって実行されるソフトウェア/コンピュータ命令)によって実装され得る。本明細書において特定されている要素は、デジタル論理、ソフトウェア、コンピュータコード、電子命令、または、それらのいずれかの好適な組み合わせを含む、何らかの種類のプログラマブルプロセッサ、プログラマブルデジタル論理(例えば、フィールドプログラマブルゲートアレイ(FPGA)、EPROM、EEPROM)、または、ASICであり得る。本明細書に記載されている、処理のための潜在的な要素、モジュール、機械のいずれも、「プロセッサ」という広義の用語に包含されると解釈されるべきである。
1つまたは複数の実施形態において、本明細書に記載されているアカウント復元プロトコル(ARP)は、アカウント復元が必要となった場合に使用されるパスワードマネージャアプリケーションのユーザによってセットアップされるオプションの機能として実装され得る。1つまたは複数の実施形態において、第1クライアント202に関連するユーザAなどのアカウント所持者は、パスワードマネージャアプリケーションへのアクセスを獲得するべく、マスターパスワードをセットアップする。1つまたは複数の実施形態において、マスターパスワードには、1)ユーザ認証、および、2)ユーザデータの暗号化という、2つの使用法がある。様々な実施形態において、2つの暗号鍵が、マスターパスワードから導出される。第1の暗号鍵は、アカウント所持者の電子メールアドレスを(認証に使用される)ソルトとして使用し、第2の暗号鍵は、ユーザデータの暗号化に使用される固有/ランダムのソルトを使用する。ソルトとは、暗号鍵の生成のための追加的な入力として使用されるデータである。
本明細書に記載されているアカウント復元プロトコル(ARP)の1つまたは複数の実施形態の背景にある主要な概念は、アカウント復元鍵(ARK)である。これは、ランダムに生成される秘密鍵であり、アカウント復元バンドル(ARB)を暗号化するのに使用される。特定の実施形態において、ARBは、JavaScript Object Notation(JSON)(登録商標)形式のドキュメントであり、他の復元属性の中で、復元データの2つの重要な部分である、認証トークンワンタイムパスワード(OTP)およびコンテンツ暗号化鍵(CEK)を含む。特定の実施形態において、OTPおよびCEKは両方、アカウントを復元するのに必要であり、アカウント復元要求(ARR)を完了するべく要求されるまで、サーバ上で秘密情報として維持される。
1つまたは複数の特定の実施形態において、ARBは、ARB_ARKと呼ばれるARKによって暗号化される。ARK秘密情報は、アカウント所持者(例えば、失念しやすいユーザ)だけによって保持または保存される。1つまたは複数の実施形態において、ARK秘密情報は、所定の数であるm個の断片に分割され、各断片は、ARP信頼済フレンド(ARPTF)へセキュアに分散され、必要となるまで供託される。その間、ARK秘密情報および断片の内容は、ARPTFの立場からは隠されている。
1つまたは複数の実施形態において、ARPTF自体も、パスワードマネージャアプリケーションの有効なアカウント所持者である。特定の実施形態において、信頼済フレンドは、ARPTFとなるべく、アカウント所持者によって招待され、招待を承認するか、拒否する選択肢を有する。特定の実施形態において、アカウント所持者は、ARPTFのリストを自在に修正できる。1つまたは複数の実施形態において、ARK秘密情報は分割され、シャミアの秘密分散法(SSS)を介してARPTFへ分散される。SSSは、秘密情報が所定の数の部分へと分割される暗号アルゴリズムであり、各参加者に対して、自身に固有の部分を与える。当該部分のいくつか、または、全ては、秘密情報を再構築するのに必要である。いくつかの実施形態において、ユーザの支配下にあるオブジェクトまたはデバイス(例えば、スマートフォン、タブレット、PC、USB鍵、バーコードが印刷された紙片など)も、SSSからの1つの断片を保持することによって、ARPTFとして機能できる。図2に示されている実施形態において、第2クライアントデバイス202bに関連するユーザB、第3クライアントデバイス202cに関連するユーザC、第4クライアントデバイス202dに関連するユーザD、第5クライアントデバイス202eに関連するユーザE、および、第6クライアントデバイス202fに関連するユーザFは各々、第1クライアントデバイス202aに関連するアカウント所持者ユーザAの信頼済フレンド、すなわちARPTFとして指定されている。
アカウントを復元する必要が生じた場合、アカウント所持者は、アカウント復元のための要求を認証サーバ206に対して発行する。復元プロセスを開始するとき、アカウント所持者は、バリデーションループを提示される。特定の実施形態において、バリデーションループは、アカウント所持者の電子メールアドレスと、CAPTCHAチャレンジ(例えば、応答者が人間であることを証明するためのテキストまたは画像の検証)への応答と、復元プロセスにおいて使用される、ユーザが選択および入力する仮のマスター鍵とを収集することを含む。CAPTCHA(「コンピュータと人間を区別するための、完全自動の公開チューリングテスト」の略語)とは、ユーザが人間かどうか判定するためのチャレンジ/レスポンス試験の一種である。認証サーバ206は次に、アウトオブバンド確認コード(OCC)を生成する。これは、アウトオブバンド(OOB)通信が改ざんなく完了したことを確認するための確認目的でARPTFに提供され、ARPTFによって使用される、小さい秘密情報(例えば、4桁のコード)である。
1つまたは複数の実施形態において、認証サーバ206は次に、アカウント所持者に指示して、ARPTFリストのメンバに連絡し、復元に協力する要求を当該メンバへ通知し、ARPTFのメンバの各々にOCCを提供させる。特定の実施形態において、その過程にある全てのエントリおよびエンティティは、認証サーバ206によって検証される。ARPTFは各々、OCCを含む、アカウント復元に協力する要求を受信し、要求を確認するよう促される。認証サーバ206は、確認を受信すると、ARPTFの復元トークンを取得することが可能になる。アカウント所持者のパスワードアプリケーションは次に、取得されたトークンの各々を復号し、ARPTF応答のコンセンサスを構築する。1つまたは複数の実施形態において、所定の数または部分(例えば、50%か、それより多い、または、5分の3など)の応答がARPTFから受信された場合にコンセンサス状態が達成されるように、SSSパラメータがセットアップされる。コンセンサス状態が達成されると、ARKを再構築するべく、受信された復元トークンは復号され、組み立てられる。ARKは、復元プロセスを実行するためのARBを復号するのに使用される。復元プロセス中、要求される全てのシード、鍵、新しい断片、ならびに、新しい最新の鍵材料の再生、および、仮のマスター鍵を新しいマスター鍵へ昇格させるための再暗号化をするための手順が実行され、それにより、ユーザは、新しいマスター鍵を介してログインし、ユーザのアカウントおよびリソースの支配を取り戻すことが可能になる。
本明細書に記載されている様々な実施形態は、認証およびユーザデータ暗号化両方のための暗号鍵生成のソースとして、マスターパスワードを利用する。1つまたは複数の実施形態において、認証サーバ206は、暗号化に基づく、ユーザデータの認証および復元に同一の秘密情報(例えば、マスターパスワード)を使用する。復元情報は、信頼および検証されたエンティティ、ならびに、認証サーバ206の間で分散される。その間、復元鍵の正確な内容は知られることがない。これは、認証サーバ206を隔離すること、および、パスワード復元データを狙ったセキュリティ上の脅威に対抗することを目的としている。
1つまたは複数の実施形態において提供される復元機構では、仮のパスワードはチェックおよび暗号操作を受け、データの分散情報に基づいて完全に検証されたときだけ、以前に知られた良いマスターパスワードと置き換わることが承認される。特定の実施形態において、SSSアルゴリズムは、復元鍵を断片化し、信頼される複数のエンティティ間で分散させることに使用される。以下の項では、1つまたは複数の具体的な実施形態による、ARPの様々なシーケンスの例示的な高レベルの操作を記載する。1つまたは複数の実施形態は、AES−CCMを使用する。これは、関連データ付き認証付き暗号(AEAD)アルゴリズムであり、同時に全体を認証しながら、メッセージの一部または全体を暗号化できる、ブロック暗号モード操作の一種である。高度暗号化規格(AES)は、システム内の全てのデータを暗号化するのに使用されるブロック暗号である。Counter with CBC−MAC(CCM)は、暗号化データの機密性および完全性の両方を提供するべく、AESと共に使用されるブロック暗号モード操作である。1つまたは複数の実施形態において、メッセージの一部だけが暗号化され、残りは暗号化されていないが認証されている状態を維持する。特定の実施形態において、(ENC)は、暗号化および認証されていることを示すのに使用され、(MAC)は認証だけされていることを示すのに使用される。
以下の例示的なシーケンスにおいて、以下のエンティティが使用される。
ユーザAは、自身のマスターパスワードを時折失念し得るのでARPを使用する「失念しやすい人」である。ユーザAは、ユーザAが認証サーバ206とインタラクトするのに使用するクライアント、アプリケーション、パスワードアプリケーション212aを有する第1クライアントデバイス202aに関連する。
ユーザB、C、D、E、Fは、ユーザAの信頼済フレンド(すなわちARPTF)のメンバであり、ユーザAが自身のアカウント復元鍵(ARK)の断片を分散する相手である。記載されているように、ARKは、ランダムに生成される秘密鍵であり、アカウント所持者(ユーザA)だけに保持されるARBを暗号化するのに使用され、m個の断片へ分割され、各々、信頼済フレンド(例えば、ユーザB、C、D、E、F)とセキュアに分散される。特定の実施形態において、ユーザB−Fは、それぞれ、クライアントデバイス202b−202fに関連し、それぞれ、パスワードマネージャアプリケーション212b−212fを各々有する。
パスワードREST API214は、認証し、資産を保存し、分散を可能にし、ARPを制御するように機能する、認証サーバ206の認証コンポーネント102内のサービスである。
図3A−図3Bは、一実施形態による、アカウント復元プロトコルのセットアップおよび管理のためのプロセスフロー300の例を示す。セットアップ前、ユーザAは、パスワードアプリケーション212aに関連するアカウントを生成する。1つまたは複数の実施形態において、アカウントを生成する段階は、アカウントのためのマスターパスワードを指定する段階を含む。アカウント生成後、ユーザAは、自身のアカウントに関連するフレンドとして、ユーザB、ユーザC、ユーザD、ユーザE、および、ユーザFの各々に対し、招待要求を送信する。1つまたは複数の実施形態において、ユーザB、ユーザC、ユーザD、ユーザE、ユーザFは、既に自身のアカウントを持っていることもあるが、持っていない場合、要求の受信に応答して、自身のアカウントを生成するように促され得る。ユーザB、ユーザC、ユーザD、ユーザE、および、ユーザFのうち1つまたは複数は、フレンドシップ要求を確認し得て、その結果、ユーザAのアカウントにリンクされているフレンドは、アカウント復元プロトコル(ARP)セットアップのフェーズへ進むのに十分な数となる。1つまたは複数の実施形態において、ユーザAと、ユーザB、ユーザC、ユーザD、ユーザE、および、ユーザFの各々との間のフレンドとしての関係は、認証サーバ206によってデータベース内に保存される。
302において、第1クライアントデバイス202aのユーザAは、自身のマスターパスワードを使用して、第1クライアントデバイス202aのパスワードアプリケーション212aに対し、ログイン手順を開始する。特定の実施形態において、ユーザAは、第1クライアントデバイス202aに関連するグラフィカルユーザインタフェース(UI)を使用して、電子メールアドレスおよびマスターパスワードをパスワードアプリケーション212aに入力する。ユーザAは次に、ARPセットアップを開始するべく、UI内のARPセットアップ画面へ移動し得る。304において、パスワードアプリケーション212aは、ユーザAの認証のための要求(POST/api_login)を認証サーバ206のパスワードアプリケーションREST API214へ送信する。特定の実施形態において、認証のための要求は、ユーザAに関連する電子メールアドレス、および、認証トークンを含む。306において、認証サーバ206は、電子メールアドレスおよび認証トークンを使用して、データベースと照会して、ユーザAを認証する。308において、パスワードアプリケーション212aは、ユーザAが認証されたことを示す認証応答(HTTP 200 Auth_OK)を認証サーバ206から受信する。特定の実施形態において、認証応答は、セッショントークンを含む。310において、パスワードアプリケーション212aは、ユーザAがログインしたという通知をユーザAに提供する。
312において、ユーザAは、パスワードマネージャアプリケーション212aによって提供される、UI内のARPセットアップ画面を見て、ARPセットアップを開始する。314において、パスワードアプリケーション212aは、ユーザAのフレンドとして指定されているアカウント(例えば、ユーザB、ユーザC、ユーザD、ユーザE、ユーザF)に対応する連絡先リストを含むメンバオブジェクト(HTTP GET/member/{member_id}/)を取得するための要求を認証サーバ206へ送信する。316において、パスワードマネージャアプリケーション212aは、ユーザAのアカウントに関連する連絡先(例えばフレンド)リストを受信するが、フレンドの一部は信頼済フレンド(すなわちARPTF)として指定済みであり得る。アカウントが既にARPについてセットアップされた場合、リストはARB_ARK JSON属性を含むが、認証トークンワンタイムパスワード(AUTH−TOK−OTP)JSON属性を含まない。なぜなら、それは認証サーバ206上に秘密情報として保存され続けているからである。連絡先リストを含む、受信された応答メッセージ(/contacts/)は、ARPTFと見なされる、いくつかの連絡先を含み得る。ARPTFである連絡先は、ARK−Px JSON属性、すなわち、供託するべくARPTFへ送信されるARK断片を含む。318において、パスワードマネージャアプリケーション212aは、ユーザAが、アカウント復元プロトコルのセットアップを継続するのに十分な連絡先を有するかどうか判定する。ユーザAが十分な連絡先を有する場合、セットアップ手順は継続する。そうでなければ、ユーザAは、パスワードマネージャアプリケーション212aによって、より多くのフレンドを招待して、アカウント復元に参加させるように促される。
320において、パスワードマネージャアプリケーション212aは、連絡先リストをユーザAに表示する。322において、ユーザAは、連絡先リストから、ユーザAが信頼するフレンドを、アカウント復元プロトコル(ARP)に参加するARPTFとして選択する。324において、パスワードアプリケーション212aは、更新された連絡先リストをユーザAに表示し、選択を確認するようにユーザAに促す。326において、ユーザAは、ARPTFの招待を、パスワードマネージャアプリケーション212aに対して確認する。
328において、パスワードアプリケーション212aは、ユーザAのための最新のアカウント復元鍵(ARK)を生成する。特定の実施形態において、パスワードアプリケーション212aは、秘密鍵を生成するのに使用されるプリミティブとして機能する暗号論的擬似乱数生成器(CSPRNG)を使用して、256ビットのアカウント復元鍵(ARK)を生成する。330において、パスワードアプリケーション212aは、最新の認証トークンワンタイムパスワード(AUTH−TOK−OTP)を生成する。特定の実施形態において、AUTH−TOK−OTPは、256ビットの値である。332において、パスワードアプリケーション212aは、AUTH−TOK−OTPと、ARKを使用して暗号化されたコンテンツ暗号化鍵(CEK)とを含む、暗号化されたアカウント復元バンドル(ARB)を生成する。1つまたは複数の実施形態において、ARBは、バンドルスキームおよび作成日を識別するメッセージ認証コード(MAC)部分と、AUTH−TOKEN−OTP(ENC)、および、アカウントのコンテンツ暗号化鍵(CEK)(ENC)を含む暗号化部分とを有するJSONドキュメントである。
334において、パスワードアプリケーション212aは、ARKを所定の数(選択されたARPTFの数)であるm個の断片へ分割する。特定の実施形態において、パスワードアプリケーション212aは、シャミアの秘密分散法(SSS)を使用して、ARKを所定の数の断片に分割する。その結果、分散断片の完全なリストが生成される。この中の各分散断片(ARK−Px)は、隠された状態でARPTFのアカウント内に供託され、ARKを復元するべく、後に使用され得る。1つまたは複数の実施形態において、ユーザAのARPTFのコンセンサス(例えば、50%、または、それより多い)があるように、SSSパラメータがセットアップされる。すなわち、ARKを復元するには、5分の3が要求される。特定の実施形態において、これらのセキュリティパラメータは、利便性とコンセンサスとの間のトレードオフとして調節され得る。
336において、パスワードアプリケーション212aは、ARKによって暗号化されたARB(ARB_ARK)、および、AUTH−TOK−OTPで、認証サーバ206に保存された、ユーザAのメンバオブジェクトを更新する。特定の実施形態において、パスワードアプリケーション212aは、認証サーバ205のパスワードアプリケーションREST API214へ、ARB_ARKおよびAUTH−TOK−OTP、ならびに、ユーザAの識別情報(member_id)を含むHTTP PUT/member/{member_id}/メッセージを送信する。338において、パスワードアプリケーションREST API214は、更新されたメンバオブジェクトのコピーを返すが、これにはAUTH−TOK−OTPは含まれない。なぜなら、それは秘密情報として認証サーバ206上に保存され続けているからである。
340において、パスワードアプリケーション212aは、ユーザAのARPTFの各々のためのARP招待(ARPI)を使用して、ARK−Pxの各断片を、ユーザAの異なるARPTFへ分散する。特定の実施形態において、パスワードアプリケーション212aは、連絡先識別子(contact_id)によって識別される各ARPTFへHTTP PUT/contact/{contact_id}/メッセージを送信する。このメッセージが有する更新された連絡先オブジェクトは、このARPTFのための公開鍵で暗号化された、特定のARK−Pxを含む。パスワードREST API214は、ARPTFの立場からは隠れるように指定することで、ARK−Px断片を供託する。1つまたは複数の実施形態において、ARP招待(ARPI)を完了するべく、ARPTFは、受信者の連絡先の1つがARPTFになるように依頼していると説明する通知を受信する。受信者は、ARPIを承認または拒否できる。特定の実施形態において、パスワードREST API214は、特定のARPTFが招待を承認したかどうかについての通知を含むHTTP200メッセージを送信する。
342において、パスワードアプリケーション212aは、ユーザAに対し、招待が送信されたという確認応答と、ARPTFの各々が招待を承認したかどうかについての通知とを含む、確認応答メッセージを送信する。特定の実施形態において、ユーザAは後に、上述の手順のうち1つまたは複数を再度実行することにより、ARPTFのリストを管理できる。ユーザAが、以前の手順を少なくとも1回、良好に完了した場合、既存の属性は、ユーザAが後に修正できる認証サーバ206によって保存される。
図4Aおよび図4Bは、一実施形態によるアカウント復元プロトコルのためのアカウント復元要求確立プロセスフロー400の例を示す。アカウント復元要求確立プロセスは、新しいアカウント復元要求を確立する。図4Aおよび図4Bの例示的な第1プロセスフローは、ARPセットアップをすぐに実行するするのに十分なARPTFをユーザAが既に持っていることを前提としている。図4Aおよび図4Bの実施形態において、ユーザAは、不運にも自分のマスターパスワードを失念し、自分のアカウントへログインできない。しかしながら、ユーザAは過去にARPをセットアップしたので、ARPTFを使用して、自分のアカウントへのアクセスを復元できる。402において、ユーザAは、自分のマスターパスワードを失念する。404において、ユーザAは、クライアントデバイス202aのパスワードアプリケーション212aによって提供されるグラフィカルユーザインタフェース内の「マスターパスワードを失念した」という選択肢をクリックする。
406において、パスワードアプリケーション212aは、最新のCAPTCHAチャレンジを取得するための要求を認証サーバ206へ送信する。特定の実施形態において、パスワードアプリケーション212aは、CAPTCHAチャレンジを要求するべく、認証サーバ206のパスワードアプリケーションREST API214に対し、GET/captchaメッセージを送信する。408において、クライアントデバイス202aのパスワードアプリケーション212aは、認証サーバ206から、CAPTCHAチャレンジ応答メッセージを受信する。特定の実施形態において、認証サーバ206は、クライアントデバイス202aに対し、HTTP200 CAPTCHAチャレンジを送信する。
410において、クライアントデバイス202aのパスワードアプリケーション212aは、CAPTCHAチャレンジ応答メッセージの受信に応答して、ユーザAに対し、グラフィカルユーザインタフェース内にアカウント復元確立画面を表示する。1つまたは複数の実施形態において、アカウント復元確立画面は、電子メールのフォームフィールド、CAPTCHAチャレンジの画像表現、CAPTCHA回答のフォームフィールド、仮マスターパスワードを入力するためのパスワードフィールド、および、「アカウント復元の要求」ボタンのうち、1つまたは複数のアイテムを含むGUIフォームを表示する。412において、クライアントデバイス202aのパスワードアプリケーション212aは、ユーザAに対し、グラフィカルユーザインタフェース内にCAPTCHA画像を表示する。414において、ユーザAは、アカウント復元確立画面内のフォームを見る。416において、ユーザAは、フォームに記入し、確認ボタンをクリックする。
418において、クライアントデバイス202aのパスワードアプリケーション212aは、仮マスターパスワードおよび電子メールを使用して、仮認証トークン(PBKDF2)を導出する。420において、パスワードアプリケーション212aは、一時的リベスト・シャミア・エーデルマン(RSA)鍵ペア(EphKeyPair)を生成する。特定の実施形態において、EphKeyPairは、2048ビットのRSA鍵ペアである。422において、パスワードアプリケーション212aは、一時的鍵暗号化鍵(KEK)導出ソルト(EphKEKSalt)を生成する。鍵暗号化鍵(KEK)は、マスターパスワード、および、ランダムに生成されるソルトから導出される秘密鍵である。特定の実施形態において、EphKEKSaltは、256ビットの値である。424において、パスワードアプリケーション212aは、アウトオブバンド確認コード(OCC)を生成する。特定の実施形態において、OCCは、4桁の数値コードである。426において、パスワードアプリケーション212aは、一時的鍵暗号化鍵(EphKEK)(EphKEKSalt、マスターパスワードによるPBKDF2)を導出する。鍵暗号化鍵(KEK)は、マスターパスワード、および、ランダムに生成されたソルトから導出される秘密鍵(PBKDF2)である。428において、パスワードアプリケーション212aは、EphKEKでEphKeyPairをラップする。430において、パスワードアプリケーション212aは、EphKEKによってOCCをラップする。
432において、クライアントデバイス202aのパスワードアプリケーション212aは、アカウント復元要求メッセージを生成し、認証サーバ206のパスワードアプリケーションREST API214に対し、アカウント復元要求メッセージを送信する。特定の実施形態において、アカウント復元要求メッセージは、電子メールアドレス、captcha_challenge、captcha_answer、provisional_auth_token(認証トークンとして導出される新しいマスターパスワード)、ephemeral_kek_derivation_salt、ephemeral_public_key、encrypted_ephemeral_keypair、および、encrypted_occ(アウトオブバンド確認コード)を含むJSONリクエストボディを有する未認証のPOST/account_recovery/メッセージの形式である。434において、認証サーバ206のパスワードアプリケーションREST API214は、クライアントデバイス202aのパスワードアプリケーション212aに対してアカウント復元応答メッセージを送信する。特定の実施形態において、アカウント復元応答メッセージは、アカウント復元要求ID(arr_id)、creation_date=NOW、expiration_date=NOW+expiration interval(例えば、48時間)、および、status="request_confirmation_pending"を含むJSONレスポンスボディを有するHTTP200メッセージである。特定の実施形態において、アカウント復元要求IDは、新しいARRの生成が成功したときにパスワードREST API214によって返される固有のランダムIDである。
アカウント復元応答メッセージを受信すると、436において、クライアントデバイス202aのパスワードアプリケーション212aは、ユーザAに対して、電子メールを読むこと、および、送信したばかりの電子メールに含まれるリンクをクリックして要求を確認することを促す。438において、ユーザAは、電子メールを読む。440において、ユーザAは、確認用リンクをクリックし、クライアントデバイス202aのパスワードアプリケーション212aは、確認を示す確認メッセージを、認証サーバ206のパスワードアプリケーションREST API214に送信する。1つまたは複数の実施形態において、確認メッセージは、要求確認トークン(request_confirmation_token)を含む。特定の実施形態において、要求確認トークンは、ランダムに生成されたトークンであり、電子メール検証ループを通して、ARPの開始を確認するのに使用される。
442において、認証サーバ206のパスワードアプリケーションREST API214は、ユーザB、ユーザC、ユーザD、ユーザE、および、ユーザFの各々に対して、ユーザAが自分のアカウントを復元するべく、それらのユーザの協力を要求したことを示す電子メールを送信する。444において、認証サーバ206のREST API214は、クライアントデバイス202aのパスワードアプリケーション212aに確認応答を送信する。446において、クライアントデバイスのパスワードアプリケーション212aは次に、OCCをユーザAに表示し、各ARPTFに連絡することをユーザAに指示する命令を表示し得る。特定の実施形態において、メッセージは、確認用リンクを含む電子メールを含み得る。特定の実施形態において、ユーザAが1つまたは複数のARPTFのIDを失念した場合、ユーザAは、ユーザAに関連するARPTFのIDを呼び出すべく、GUIを使用し得る。448において、ユーザAは、各ARPTFに連絡してOCCを提供する。これは、フィッシングを防止し、信頼済フレンドが実際にプロトコル以外の他の手段で連絡されたことを保証する手段である。これで手順400は終了する。特定の実施形態において、ユーザAは、クライアントデバイス202aを使用して、各ARPTFに連絡し得る。
図4Aおよび図4Bに記載されている特定の実施形態において、電子メール検証ループは、アカウント復元プロセスを発生させるための認証の手段として使用される。ユーザの大部分は、スマートフォンなどの電子デバイスの使用を通して、電子メールにほぼ常時アクセスしている。したがって、これらのユーザにとって、特定のユーザが自分のマスターパスワードを失念し、同時に、電子メールに対する、全ての形式のアクセスを失い得るという状況が発生する確率は低い。しかしながら、その電子メールアカウントへのアクセスは、復元のセキュリティに何らかの影響を及ぼすので(アウトオブバンド確認コードは他の部分を提供する)、他の実施形態において、アカウント復元要求確立手順を発生させるための他の方法が使用され得る。例えば、特定の実施形態において、アカウントの所持を検証または主張するべく、画像認証方式(IBA)またはマイクロペイメントが使用され得る。
図5は、一実施形態によるアカウント復元プロトコルのためのアカウント復元要求招待プロセスフロー500の例を示す。1つまたは複数の実施形態において、プロセスフロー500は、図4Aおよび図4Bのアカウント復元要求確立フローの終了後、自動的に開始される。502において、ユーザAは、自身の手段で、ユーザB(信頼済フレンド)に連絡し、アウトオブバンド確認コード(OCC)をユーザBに提供する。これにより、ユーザAは自分のアカウントを復元するべく、ユーザの協力を要求していることを通知する。図5には示されていないが、ユーザAは、ARPTF(例えば、信頼済フレンド)の各々にも連絡し、OCCを提供する。504において、ユーザAは、ユーザBおよび各ARPTFからの応答を待つ。506において、ユーザBは、第2ユーザデバイス202bを使用して、ユーザBのパスワードアプリケーション212へのログインを実行する。508において、第2パスワードアプリケーション212bは、認証サーバ206のパスワードREST API214に対し、ユーザBのログインを示すログインコールを送信する。特定の実施形態において、ログインコールは、POST APIコールである。510において、パスワードREST API214は、第2パスワードアプリケーション212bに対し、セッショントークン(session_token)を含むログイン確認応答を送信する。512において、第2パスワードアプリケーション212bは、第2クライアントデバイス212のGUIを介して、ユーザBに対し、ログイン成功の通知を提供する。
514において、第2パスワードアプリケーション212bは、認証サーバ206のパスワードREST API214に対し、何らかのアカウント復元要求招待の取得のための要求を送信する。特定の実施形態において、要求は、GET/account_recovery/request_invitationsの形式である。516において、パスワードAPI214は、ユーザBをARPTFとして認証し、アカウント復元要求招待のリストを第2パスワードアプリケーション212bに送信する。特定の実施形態において、アカウント復元要求招待リストは、メンバ識別子(member_id)、アカウント復元要求復元識別子(arr_share_back_id)、一時的公開鍵(ephemeral_public_key)、ユーザBの公開鍵で暗号化されたアカウント復元鍵分散断片(ark_px_pub_key)を含む。518において、第2パスワードアプリケーション212bが空でないリストを受信する場合、第2パスワードアプリケーション212bは、ユーザBに対して、アカウント復元に協力するべく、供託されている自分のARK分散断片(ARK−Px)を戻すように促す。520において、ユーザBは、アカウント復元を確認するべく、OCCおよび確認を第2パスワードアプリケーション212に提供する。特定の実施形態において、ユーザBは、OCCを入力し、第2ユーザデバイス202bのGUI内の「確認」ボタンをクリックし得る。
522において、第2パスワードアプリケーション212bは、ユーザB自身の秘密鍵を使用して、「ark_px_pub_key」を復号し、平文ARK−Px、すなわち、断片の1つを生み出す。524において、第2パスワードアプリケーション212bは、一時的公開鍵(EphPubKey)で平文ARK−Pxを再暗号化する。526において、第2パスワードアプリケーション212bは、アウトオブバンド確認コード(OCC)によって鍵をかける鍵付ハッシュ関数メッセージ認証コード(HMAC)){HMAC(OCC、ARK−Px}を使用して、OOBトランザクションに署名する。特定の実施形態において、トランザクションは、SHA−256暗号ハッシュ関数を使用して署名される。528において、第2パスワードアプリケーション212bは、認証サーバ206のパスワードREST API214に対し、ARR復元ID{arr_share_back ID}と、ARR一時的公開鍵(ARREphPubK)で暗号化されたARK−Px{ark_px_eph_pub_key}と、アウトオブバンド確認コードを鍵として使用した、ARK−PxのHMAC{hmac_occ_ark_px}とを送信する。特定の実施形態において、ARR一時的公開鍵は、ARRの期間だけ有効な公開鍵である。特定の実施形態において、第2パスワードアプリケーション202bは、arr_share_back_id、ark_px_eph_pub_key、hmac_occ_ark_pxを含むJSONリクエストボディを有する、POST/account_recovery/member/{member_id}/という形式のPOSTメッセージを使用する。530において、パスワードREST API214は、確認応答を第2パスワードアプリケーション212bに送信する。特定の実施形態において、確認応答は、HTTP200メッセージである。532において、第2パスワードアプリケーション212bは、特定のARK−Px断片が良好に分散されたことを示す確認メッセージをユーザBに提示する。502〜532の手順は、ユーザAの残りのARPTFのうちの1つまたは複数について、それぞれのパスワードアプリケーションを使用して繰り返される。それぞれのパスワードアプリケーションにおいて、パスワードREST API214は、1つまたは複数の分散ARK−Px断片を各ARPTFから受信する。パスワードREST API214が十分な分散ARK−Px断片を受信したとき、パスワードREST API214は、534において、アカウント復元要求のステータスを「consensus_reached」へと更新し、手順500が終了する。
図6Aおよび図6Bは、一実施形態によるアカウント復元プロトコルのアカウント復元要求完了プロセスフロー600の例を示す。1つまたは複数の実施形態において、プロセスフロー600は、アカウント復元要求に関するコンセンサスが達成された、図5のアカウント復元要求招待プロセスフローの終了後に開始される。602において、ユーザAは、アカウント復元要求手順を再開する。特定の実施形態において、ユーザAは、仮認証トークン(PBKDF2)の導出を必要とする、自分の仮マスターパスワードを入力する。604において、第1パスワードアプリケーション212aは、ARRレコードの更新版を認証サーバ206のパスワードREST API214から取得するための要求を送信する。特定の実施形態において、取得要求は、GET/account_recovery/{arr_id}/という形式のGET要求である。特定の実施形態において、要求は未認証であるが、汎用固有識別子(UUID)を介してだけアクセスでき、全てのデータは暗号化され、読み取り専用である。606において、パスワードREST API214は、アカウント復元に必要な情報を含む応答を送信する。特定の実施形態において、応答は、以下のJSONレスポンスボディを含むHTTP200応答である。
a.アカウント復元要求ID(arr_id)
b.メンバID(member_id)
c.要求の作成日(creation_date)
d.要求の期限日(expiration_date)
e.ステータス=「consensus_reached」
f.ARR復元ID(arr_share_back_id)
g.ARKによって暗号化されたARB(arb_ark)
h,一時的鍵暗号化鍵(KEK)導出ソルト(ephemeral_kek_derivation_salt)
i.一時的公開鍵(ephemeral_public_key)
j.暗号化された一時的鍵ペア{encrypted_ephemeral_keypair}
k.暗号化されたOCC(encrypted_occ)
l.ARPTFリスト(arptf_list)(JSONアレイ)
1.ニックネーム
2.ark_px_eph_pub_key(参加したARPTFの場合、ヌルではない)
3.hmac_occ_ark_px
608において、第1パスワードアプリケーション212aは、現在のARRステータスが「コンセンサス達成」であるという通知をユーザAに送信する。610において、ユーザAは、アカウント復元に進む。612において、第1パスワードアプリケーション212aは、仮マスターパスワードおよびランダムに生成されたソルトを使用して、一時的鍵暗号化鍵(EphKEK)を導出する。614において、第1パスワードアプリケーション212aは、一時的鍵ペア(EphKeyPair)をラップ解除して、一時的RSA秘密鍵(EphPrivKey)へのアクセスを提供する。616において、第1パスワードアプリケーション212aは、暗号化されたOCCをラップ解除する。第1パスワードアプリケーション212aは次に、各ARK−Pxについて繰り返されるループ620に入る。622において、第1パスワードアプリケーション212aは、暗号化された各ARK−Pxを、一時的RSA秘密鍵(EphPrivKey)で復号する。624において、第1パスワードアプリケーション212aは、鍵付ハッシュ関数メッセージ認証コード{HMAC(OCC,ARK−Px)}を計算する。626において、第1パスワードアプリケーション212aは、鍵付ハッシュ関数メッセージ認証コード(HMAC)と、アウトオブバンド確認コードを鍵として使用したARK−PxのHMAC(hmac_occ_ark_px)とを比較して、的確なARK−Pxが復元されたことを示す、HMAC(OCC,ARK−Px)==hmac_occ_ark_pxという条件が満たされているかどうか判定する。622〜626のループは、ARPTFから受信した各ARK−Pxが復元および検証されるまで、各ARK−Pxについて実行される。
630において、第1パスワードアプリケーション212aは、SSSを使用して、復号されたARK−Pxの全てを統合し、アカウント復元鍵で暗号化されたアカウント復元バンドル(ARB)(ARB_ARK)を復元する。632において、第1パスワードアプリケーション212aは、アカウント復元バンドル(ARB)を復元するべく、ARB_ARKを復号する。634において、第1パスワードアプリケーション212aは、ARBから、認証トークンワンタイムパスワード(AUTH−TOK−OTP)およびコンテンツ暗号化鍵(CEK)を抽出する。
636において、第1パスワードアプリケーション212aは、新しいKEK導出ソルトを生成する。638において、第1パスワードアプリケーション212aは、新しいソルトおよび仮マスターパスワードで、更新されたKEKを導出する。640において、第1パスワードアプリケーション212aは、抽出されたCEKを更新されたKEKでラップする。
642において、第1パスワードアプリケーション212aは、認証されたアカウント復元要求メッセージを認証サーバ206のパスワードREST API214に送信する。認証されたアカウント復元要求メッセージは、要求の完了時に検証されるAUTH−TOK−OTPと、この要求の仮認証トークンと照合されるprovisional_auth_tokenと、新しいKEKのための最新ソルト(updated_kek_derivation_salt)と、更新されたコンテンツ暗号化鍵の鍵暗号化鍵(updated_cek_kek)とを含む。特定の実施形態において、要求メッセージは、AUTH−TOK−OTP、provisional_auth_token、updated_kek_derivation_salt(新しいKEKのための最新のソルト)、および、updated_cek_kekを含むJSONリクエストボディを有する、PUT/account_recovery/{arr_id}/という形式のPUTメッセージである。644において、パスワードREST API214は、アカウント復元要求が完了したという確認を第1パスワードアプリケーション212aに送信する。特定の実施形態において、確認メッセージは、HTTP200メッセージである。646において、第1パスワードアプリケーション212aは、アカウント復元要求が完了したという確認をユーザAに提供する。648において、ユーザAは、アカウントへのアクセスを取り戻すべく、マスターパスワードに昇格された仮マスターパスワードを使用して、第1パスワードアプリケーション212aにログインできる。これでフロー600は終了する。
これより図7を参照する。図7は、クライアントデバイス202aの実施形態の簡略化されたブロック図である。クライアントデバイス202aは、プロセッサ702、メモリ要素704、グラフィカルユーザインタフェース706、および、パスワードアプリケーション212aを含む。プロセッサ702は、本明細書に記載されているような、クライアントデバイス202aの様々な操作を実行するためのソフトウェア命令を実行するように構成されている。メモリ要素704は、クライアントデバイス202aに関連するソフトウェア命令およびデータを保存するように構成され得る。プロセッサ702は、マイクロプロセッサ、組み込みプロセッサ、デジタル信号プロセッサ(DSP)、ネットワークプロセッサ、または、コードを実行するための他のデバイスなど、任意の種類のプロセッサであり得る。図7には、1つのプロセッサ702だけが示されているが、いくつかの実施形態において、クライアントデバイス202aは、1つより多くのプロセッサを含み得ることを理解されたい。
グラフィカルユーザインタフェース706は、本明細書に記載されているような、パスワードのセットアップおよび復元の手順を容易にするべく、クライアントデバイス202aのユーザにグラフィカルユーザインタフェースを提供するように構成されている。パスワードアプリケーション212aは、本明細書に記載されているクライアントデバイス202aに関連する、パスワードのセットアップおよび復元の機能を実行するように構成されている。
これより図8を参照する。図8は、認証サーバ206の実施形態の簡略化されたブロック図である。認証サーバ206は、プロセッサ802、メモリ要素804、認証コンポーネント102、および、パスワードREST API214を含む。プロセッサ802は、本明細書に記載されているような、認証サーバ206の様々な操作を実行するためのソフトウェア命令を実行するように構成されている。メモリ要素804は、認証サーバ206に関連するソフトウェア命令およびデータを保存するように構成され得る。プロセッサ802は、マイクロプロセッサ、組み込みプロセッサ、デジタル信号プロセッサ(DSP)、ネットワークプロセッサ、または、コードを実行するための他のデバイスなど、任意の種類のプロセッサであり得る。図8には、1つのプロセッサ602だけが示されているが、いくつかの実施形態において、認証サーバ206は、1つより多くのプロセッサを含み得ることを理解されたい。
認証コンポーネント102は、本明細書に記載されているような、認証サーバ206の認証およびパスワード復元の機能を容易にするように構成されている。パスワードREST API214は、本明細書に記載されているような、パスワードREST API214のパスワードのセットアップおよび復元の機能を容易にするように構成されている。
1つまたは複数の実施形態は、既存のソリューションと比較して、(1)ユーザの認証、および、後に復元されるユーザデータの暗号化に、同一のパスワードが使用されること、(2)マスターパスワードの(暗号化されている、またはクリアテキストの)コピーを保持しないこと、(3)ユーザのマスターパスワードのデータベースを保持しないこと、(4)復元プロセスにおけるアカウント所持者の初期検証中、電子メールによる確認、BOTアクティビティなどを排除するためのCAPTCHA検証など、従来の検証方法を利用し得るが、ユーザの身元を検証する他の従来の方法(例えば、単純な秘密の質問を尋ねる)を利用せず、その結果、この初期検証に基づいて、パスワードを容易に再設定することが可能であること、(5)セキュリティ上の理由から、マスターパスワード自体の具体的な情報を自身で有していないことのうち、1つまたは複数の利点を提供し得る。従来と異なり、マスターパスワード復元鍵の情報の断片を、暗号化されたトークンの形式で分散させ、複数の信頼済エンティティの間で供託する。信頼済エンティティのいずれも、トークンの内容の具体的な情報を持たない。トークンは必要なときに呼び出されて組み合わされ、失念しやすいユーザが失敗した状態から復元するように手助けし、それにより、これらのリソースへの適切なアクセスを回復する。したがって、これは単一障害点を生じさせることなく、遥かにセキュアな復元方法を提示する。
従来のシステムは主に、認証の目的のために、システムパスワードを使用する。対称的に、ARPは、ユーザを認証するための別個の暗号鍵を生成すること、および、ユーザのデータを暗号化することに、同一のパスワードを使用する。従来のシステムは、ユーザが予めセットアップしておいた単純な秘密の質問を使用するか、または、ユーザに関する既知の事実に基づく質問をいくつか尋ねるものであり、ユーザのアカウントに不正侵入するための盗難および再利用に遭う可能性が非常に高い。保存されているパスワードおよびパスワードファイルは、盗難および再利用に遭うことがある。本明細書に記載されているARPの1つまたは複数の実施形態は、過程における様々な暗号操作を介して、パスワード鍵およびコンテンツの使用および送信に関するセキュリティを強化することにより、パスワード鍵およびコンテンツに対する、多くの同様のセキュリティ上の脅威を排除する。また、これらの実施形態は、単純に1つのアクセストークンを他のアクセストークンに置き換えるのではなく、結果としてユーザの資産を再暗号化するという革新的な手段で復元を実行する。
本明細書に記載されている1つまたは複数の実施形態は、パスワードマネージャおよびマスターパスワードの使用に関するが、本明細書に記載されている原理は、例えばファイル共有サービス上のファイル、暗号化されたバックアップなど、保存/暗号化された任意の種類のユーザの資産に対するアクセスの復元などのための、パスワードに基づく他のユーザデータ暗号化システムおよび/またはアプリケーションに適用可能であることを理解されたい。
[実施形態の例]
以下の例は、更なる実施形態に関する。
例1は、ユーザに関連するアカウントの復元のための要求を受信するコンピュータコードと、ユーザに関連するユーザデバイスへCAPTCHAチャレンジを送信するためのコンピュータコードと、CAPTCHAチャレンジへの回答、および、仮マスターパスワードから導出された暗号化鍵によってラップされた確認コードを受信するためのコンピュータコードと、復元のための要求の通知をユーザに関連する1つまたは複数の信頼済エンティティへ送信するためのコンピュータコードと、信頼済エンティティのうち1つまたは複数からの要求の確認(この確認は、特定の信頼済エンティティおよび暗号化された確認コードに関連する復元トークンを含む)を受信するためのコンピュータコードとを含むコンピュータコードを保存するための、少なくとも1つの不揮発性コンピュータ記憶媒体である。
例2において、例1の主題は、1つまたは複数の信頼済エンティティから所定の数の復元トークンを受信したことに応答して、コンセンサス状態を達成したと判定するコンピュータコードと、1つまたは複数の信頼済エンティティの各々に関連する復元トークンをユーザデバイスへ送信するコンピュータコードとを任意で含み得る。
例3において、例2の主題は、コンセンサス状態の通知をユーザデバイスへ送信するコンピュータコードを任意で含み得る。
例4において、例2の主題は、コンセンサス状態が達成されたと判定したことに応答して、アカウントのための新しいマスターパスワードを再設定するコンピュータコードを任意で含み得る。
例5において、例4の主題は、受信された復元トークンを使用して、新しいマスターパスワードが再設定されることを任意で含み得る。
例6において、例5の主題は、一時的秘密鍵を使用して、受信された復元トークンが復号されることを任意で含み得る。暗号化確認コードは、復元トークンの検証として使用され得る。
例7において、例6の主題は、復号された復元トークンを組み合わせることに基づいて、新しいマスターパスワードが再設定されることを任意で含み得る。
例8において、例4の主題は、新しいマスターパスワードがユーザデバイスによって生成されることを任意で含み得る。
例9において、例1−8のいずれの主題も、1つまたは複数の信頼済エンティティの指定をユーザから受信するためのコンピュータコードを任意で含み得る。
例10は、少なくとも1つのプロセッサおよび少なくとも1つのメモリ要素を備えるシステムであり、当該システムは、ユーザに関連するアカウントの復元のための要求を受信すること、ユーザに関連するユーザデバイスへCAPTCHAチャレンジを送信すること、CAPTCHAチャレンジ対する回答、および、仮マスターパスワードから導出された暗号化鍵によってラップされた確認コードを受信すること、ユーザに関連する1つまたは複数の信頼済エンティティへ復元のための要求の通知を送信すること、ならびに、1つまたは複数の信頼済エンティティから要求の確認を受信することを行うように構成され、当該確認は、特定の信頼できるエンティティに関連する復元トークンおよび暗号化された確認コードを含む。
例11において、例19の主題は、システムが更に、1つまたは複数の信頼済エンティティから、所定の数の復元トークンを受信したことに応答して、コンセンサス状態が達成されたことを判定すること、および、1つまたは複数の信頼済エンティティの各々に関連する復元トークンをユーザデバイスへ送信することを行うように構成されていることを任意で含み得る。
例12において、例11の主題は、システムが更に、コンセンサス状態の通知をユーザデバイスへ送信するように構成されていることを任意で含み得る。
例13において、例12の主題は、システムが更に、コンセンサス状態が達成されたという判定に応答して、アカウントのための新しいマスターパスワードを生成するように構成されていることを任意で含み得る。
例14において、例13の主題は、新しいマスターパスワードが、受信された復元トークンを使用して再設定されることを任意で含み得る。
例15において、例14の主題は、受信された復元トークンが、一時的秘密鍵を使用して復号されること、および、暗号化された確認コードが、復元トークンの検証に使用されることを任意で含み得る。
例16において、例13の主題は、新しいマスターパスワードがユーザデバイスによって生成されることを任意で含み得る。
例17において、例10−16のいずれかの主題は、システムが更に、1つまたは複数の信頼済エンティティの指定をユーザから受信するように構成されていることを任意で含み得る。
例18は、コンピュータ実装方法でありユーザに関連するアカウントの復元のための要求を受信すること、ユーザに関連するユーザデバイスへCAPTCHAチャレンジを送信すること、CAPTCHAチャレンジへの回答、および、仮マスターパスワードから導出された暗号化鍵によってラップされた確認コードを受信すること、ユーザに関連する1つまたは複数の信頼済エンティティへ復元のための要求の通知を送信すること、ならびに、1つまたは複数の信頼済エンティティから要求の確認を受信することを含み、当該確認は、特定の信頼済エンティティに関連する復元トークンおよび暗号化された確認コードを含む。
例19において、例18の主題は、所定の数の復元トークンを1つまたは複数の信頼済エンティティから受信したことに応答して、コンセンサス状態が達成されたことを判定すること、ならびに、1つまたは複数の信頼済エンティティの各々に関連する復元トークンをユーザデバイスへ送信することを任意で含み得る。
例20において、例19の主題は、コンセンサス状態の通知をユーザデバイスへ送信することを任意で含み得る。
例21において、例19の主題は、コンセンサス状態が達成されたことの判定に応答して、アカウントのための新しいマスターパスワードを再設定することを任意で含み得る。
例22において、例21の主題は、新しいマスターパスワードが、受信された復元トークンを使用して再設定されることを任意で含み得る。
例23において、例22の主題は、受信された復元トークンが、一時的秘密鍵を使用して復号されること、および、暗号化された確認コードが復元トークンの検証に使用されることを任意で含む。
例24において、例23の主題は、新しいマスターパスワードがユーザデバイスによって生成されることを任意で含み得る。
例25において、例18−24のいずれかの主題は、システムが更に、1つまたは複数の信頼済エンティティの指定をユーザから受信するように構成されていることを任意で含み得る。
例26は、アカウント復元のための装置であり、ユーザに関連するアカウントの復元のための要求を受信する手段と、ユーザに関連するユーザデバイスへCAPTCHAチャレンジを送信する手段と、CAPTCHAチャレンジへの回答、および、仮マスターパスワードから導出された暗号化鍵によってラップされた確認コードを受信するための手段と、ユーザに関連する1つまたは複数の信頼済エンティティへ復元のための要求の通知を送信するための手段と、1つまたは複数の信頼済エンティティから要求の確認を受信するための手段とを含み、当該確認は、特定の信頼済エンティティに関連する復元トークン、および、暗号化された確認コードを含む。
例27において、例26の主題は、所定の数の復元トークンを1つまたは複数の信頼済エンティティから受信したことに応答して、コンセンサス状態が達成されたことを判定する手段と、1つまたは複数の信頼済エンティティの各々に関連する復元トークンをユーザデバイスへ送信する手段とを任意で含み得る。
例28において、例27の主題は、コンセンサス状態が達成されたという判定に応答して、アカウントのための新しいマスターパスワードを生成する手段を任意で含み得る。
例29は、上述のいずれかの例において主張されている方法を実行する手段を含む装置である。
例30は、実行されたときに、上述の例のいずれかに記載されている方法を実装するか、装置を実現する機械可読命令を含む機械可読ストレージである。

Claims (24)

  1. コンピュータに、
    ユーザに関連するアカウントの復元のための要求をユーザデバイスから受信することと、
    前記ユーザに関連する前記ユーザデバイスへCAPTCHAチャレンジを送信することと、
    前記CAPTCHAチャレンジへの回答、および、号化鍵によってラップされた確認コードを受信することであって、前記暗号化鍵は前記ユーザによって提供される仮マスターパスワードから導出される、受信することと
    前記ユーザによって指定されている、前記ユーザに関連する1つまたは複数の信頼済エンティティへ復元のための前記要求の通知を送信することと、
    前記1つまたは複数の信頼済エンティティから前記要求の確認を受信することであって、前記確認は、記1つまたは複数の信頼済エンティティに関連する復元トークン、および、前記確認コードを含む、受信することと
    少なくとも実行させるためのコンピュータコードであって、
    新しいマスターパスワードは、前記復元トークンを使用して生成され、
    前記確認コードは、前記復元トークンの検証のために使用される、
    コンピュータコード
  2. 前記コンピュータに、
    前記1つまたは複数の信頼済エンティティから、所定の数の前記復元トークンを受信したことを示すコンセンサス状態が達成されたと判定することと、
    前記1つまたは複数の信頼済エンティティの各々に関連する前記復元トークンを前記ユーザデバイスへ送信することと、
    を更に実行させるための、請求項1に記載のコンピュータコード。
  3. 前記コンピュータに、前記コンセンサス状態の通知を前記ユーザデバイスへ送信することを更に実行させるための、請求項2に記載のコンピュータコード。
  4. 前記コンピュータに、前記コンセンサス状態が達成されたという判定に応答して前記アカウントのための前記新しいマスターパスワードを定することを更に実行させるための、請求項2に記載のコンピュータコード。
  5. 受信された前記復元トークンは、前記アカウントの復元のための前記要求を行う場合に前記ユーザデバイスが一時的に生成する一時的秘密鍵を使用して前記ユーザデバイスによって復号される、請求項2から4のいずれか一項に記載のコンピュータコード。
  6. 前記新しいマスターパスワードは、復号化された前記復元トークンを組み合わせることに基づいて定される、請求項に記載のコンピュータコード。
  7. 前記新しいマスターパスワードは、前記ユーザデバイスによって生成される、請求項4に記載のコンピュータコード。
  8. 前記コンピュータに、前記1つまたは複数の信頼済エンティティの指定を前記ユーザから受信することを更に実行させるための、請求項1からのいずれか一項に記載のコンピュータコード。
  9. 少なくとも1つのプロセッサおよび少なくとも1つのメモリ要素を備えるシステムであって、
    ユーザに関連するアカウントの復元のための要求をユーザデバイスから受信する段階と、
    前記ユーザに関連する前記ユーザデバイスへCAPTCHAチャレンジを送信する段階と、
    前記CAPTCHAチャレンジへの回答、および、号化鍵によってラップされた確認コードを受信する段階であって、前記暗号化鍵は前記ユーザによって提供される仮マスターパスワードから導出される、受信する段階と、
    前記ユーザによって指定されている、前記ユーザに関連する1つまたは複数の信頼済エンティティへ復元のための前記要求の通知を送信する段階と、
    前記1つまたは複数の信頼済エンティティから前記要求の確認を受信する段階であって、前記確認は、記1つまたは複数の信頼済エンティティに関連する復元トークン、および、前記確認コードを含む、段階と、
    を行い、
    新しいマスターパスワードは、前記復元トークンを使用して生成され、
    前記確認コードは、前記復元トークンの検証のために使用される、
    システム。
  10. 前記システムは更に、
    前記1つまたは複数の信頼済エンティティから所定の数の前記復元トークンを受信したことを示すコンセンサス状態が達成されたと判定する段階と、
    前記1つまたは複数の信頼済エンティティの各々に関連する前記復元トークンを前記ユーザデバイスへ送信する段階と、
    を更に行う、請求項に記載のシステム。
  11. 前記システムは更に、
    前記コンセンサス状態の通知を前記ユーザデバイスへ送信する、請求項10に記載のシステム。
  12. 前記システムは更に、前記コンセンサス状態が達成されたという判定に応答して、前記アカウントのための新しいマスターパスワードを生成する、請求項11に記載のシステム。
  13. 前記新しいマスターパスワードは、受信された前記復元トークンを使用して定される、請求項12に記載のシステム。
  14. 受信された前記復元トークンは、前記アカウントの復元のための前記要求を行う場合に前記ユーザデバイスが一時的に生成する一時的秘密鍵を使用して復号され、請求項13に記載のシステム。
  15. 前記新しいマスターパスワードは、前記ユーザデバイスによって生成される、請求項12に記載のシステム。
  16. 前記システムは更に、前記1つまたは複数の信頼済エンティティの指定を前記ユーザから受信する、請求項から15のいずれか一項に記載のシステム。
  17. ユーザに関連するアカウントの復元のための要求をユーザデバイスから受信する段階と、
    前記ユーザに関連する前記ユーザデバイスへCAPTCHAチャレンジを送信する段階と、
    前記CAPTCHAチャレンジへの回答、および、号化鍵によってラップされた確認コードを受信する段階であって、前記暗号化鍵は前記ユーザによって提供される仮マスターパスワードから導出される、受信する段階と、
    前記ユーザによって指定されている、前記ユーザに関連する1つまたは複数の信頼済エンティティへ復元のための前記要求の通知を送信する段階と、
    前記1つまたは複数の信頼済エンティティから前記要求の確認を受信する段階であって、前記確認は、記1つまたは複数の信頼済エンティティに関連する復元トークン、および、暗号化された前記確認コードを含む、段階と
    少なくとも含む、プロセッサにより実装される方法であって、
    新しいマスターパスワードは、前記復元トークンを使用して生成され、
    前記確認コードは、前記復元トークンの検証のために使用される、
    法。
  18. 前記プロセッサが、前記1つまたは複数の信頼済エンティティから、所定の数の前記復元トークンを受信したことを示すコンセンサス状態が達成されたと判定する段階と、
    前記プロセッサが、前記1つまたは複数の信頼済エンティティの各々に関連する前記復元トークンを前記ユーザデバイスへ送信する段階と、
    を更に含む、請求項17に記載の法。
  19. 前記プロセッサが、前記コンセンサス状態の通知を前記ユーザデバイスへ送信する段階を更に含む、請求項18に記載の法。
  20. 前記プロセッサが、前記コンセンサス状態が達成されたという判定に応答して、前記アカウントのための前記新しいマスターパスワードを定する段階を更に含む、請求項18に記載の法。
  21. 受信された前記復元トークンは、前記アカウントの復元のための前記要求を行う場合に前記ユーザデバイスが一時的に生成する一時的秘密鍵を使用して前記ユーザデバイスによって復号され、請求項18に記載の法。
  22. ユーザに関連するアカウントの復元のための要求をユーザデバイスから受信する手段と、
    前記ユーザに関連する前記ユーザデバイスへCAPTCHAチャレンジを送信する手段と、
    前記CAPTCHAチャレンジへの回答、および、号化鍵によってラップされた確認コードを受信する手段であって、前記暗号化鍵は前記ユーザによって提供される仮マスターパスワードから導出される、受信する手段と、
    復元のための前記要求の通知を、前記ユーザによって指定されている、前記ユーザに関連する1つまたは複数の信頼済エンティティへ送信する手段と、
    前記1つまたは複数の信頼済エンティティから前記要求の確認を受信する手段であって、前記確認は、記1つまたは複数の信頼済エンティティに関連する復元トークン、および、前記確認コードを含む、手段と、
    を含む、アカウント復元のための装置であって、
    新しいマスターパスワードは、前記復元トークンを使用して生成され、
    前記確認コードは、前記復元トークンの検証のために使用される、
    装置
  23. 所定の数の前記復元トークンを前記1つまたは複数の信頼済エンティティから受信したことを示すコンセンサス状態が達成されたと判定する手段と、
    前記1つまたは複数の信頼済エンティティの各々に関連する前記復元トークンを前記ユーザデバイスへ送信する手段と、
    を更に含む、請求項22に記載の装置。
  24. 前記コンセンサス状態が達成されたという判定に応答して、前記アカウントのための新しいマスターパスワードを定する段階を更に含む、請求項23に記載の装置。
JP2017544834A 2014-11-14 2015-11-04 アカウント復元プロトコル Active JP6517359B2 (ja)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201462080125P 2014-11-14 2014-11-14
US62/080,125 2014-11-14
US14/928,443 US10061914B2 (en) 2014-11-14 2015-10-30 Account recovery protocol
US14/928,443 2015-10-30
PCT/US2015/059060 WO2016077121A1 (en) 2014-11-14 2015-11-04 Account recovery protocol

Publications (2)

Publication Number Publication Date
JP2018503199A JP2018503199A (ja) 2018-02-01
JP6517359B2 true JP6517359B2 (ja) 2019-05-22

Family

ID=55954869

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2017544834A Active JP6517359B2 (ja) 2014-11-14 2015-11-04 アカウント復元プロトコル

Country Status (5)

Country Link
US (1) US10061914B2 (ja)
EP (1) EP3219049B1 (ja)
JP (1) JP6517359B2 (ja)
CN (1) CN107251035B (ja)
WO (1) WO2016077121A1 (ja)

Families Citing this family (49)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10489852B2 (en) * 2013-07-02 2019-11-26 Yodlee, Inc. Financial account authentication
SG10201500276VA (en) * 2015-01-14 2016-08-30 Mastercard Asia Pacific Pte Ltd Method and system for making a secure payment transaction
US10078748B2 (en) * 2015-11-13 2018-09-18 Microsoft Technology Licensing, Llc Unlock and recovery for encrypted devices
US10419401B2 (en) * 2016-01-08 2019-09-17 Capital One Services, Llc Methods and systems for securing data in the public cloud
KR20180115293A (ko) 2016-02-23 2018-10-22 엔체인 홀딩스 리미티드 블록체인상의 개체의 안전한 전송을 위한 방법 및 시스템
WO2017145006A1 (en) 2016-02-23 2017-08-31 nChain Holdings Limited Agent-based turing complete transactions integrating feedback within a blockchain system
DK3257191T3 (en) 2016-02-23 2018-07-23 Nchain Holdings Ltd REGISTER AND AUTOMATIC PROCEDURE FOR MANAGING BLOCKCHAIN FORCED SMART CONTRACTS
GB2560274C (en) 2016-02-23 2022-06-15 Nchain Holdings Ltd Personal device security using elliptic curve cryptography for secret sharing
CA3013180A1 (en) 2016-02-23 2017-08-31 nChain Holdings Limited Blockchain-based exchange with tokenisation
AU2017222470B2 (en) 2016-02-23 2023-01-12 nChain Holdings Limited Tokenisation method and system for implementing exchanges on a blockchain
CA3013185A1 (en) 2016-02-23 2017-08-31 nChain Holdings Limited A method and system for securing computer software using a distributed hash table and a blockchain
SG10202007905VA (en) 2016-02-23 2020-09-29 Nchain Holdings Ltd Method and system for efficient transfer of cryptocurrency associated with a payroll on a blockchain that leads to An Automated payroll method and system based on smart contracts
CN109314636B (zh) 2016-02-23 2022-01-11 区块链控股有限公司 用于从区块链中安全提取数据的密码方法和系统
JP7249148B2 (ja) 2016-02-23 2023-03-30 エヌチェーン ライセンシング アーゲー ブロックチェーンベースユニバーサルトークン化システム
EP3855677A1 (en) 2016-02-23 2021-07-28 Nchain Holdings Limited Blockchain-implemented method for control and distribution of digital content
CN114282928A (zh) * 2016-02-23 2022-04-05 恩链控股有限公司 基于区块链系统结合钱包管理系统的加密密钥存储和转移
PL3268914T3 (pl) 2016-02-23 2018-12-31 nChain Holdings Limited Określanie wspólnego sekretu dla bezpiecznej wymiany informacji i hierarchicznych, deterministycznych kluczy kryptograficznych
JP7128111B2 (ja) 2016-02-23 2022-08-30 エヌチェーン ホールディングス リミテッド ブロックチェーンを介して資産関連活動を制御するシステム及び方法
WO2018044946A1 (en) * 2016-09-02 2018-03-08 Conio Inc. Method and apparatus for restoring access to digital assets
DE112016007301T5 (de) * 2016-09-30 2019-06-19 Intel Corporation Technologien zur authentifizierung mehrerer vorrichtungen in einem heterogenen netzwerk
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
CN106899411B (zh) * 2016-12-08 2021-09-21 创新先进技术有限公司 一种基于验证码的校验方法及装置
US10129231B2 (en) 2016-12-08 2018-11-13 Oath Inc. Computerized system and method for automatically sharing device pairing credentials across multiple devices
US10582036B2 (en) * 2017-02-17 2020-03-03 Whatsapp Inc. Methods and systems for generating an ephemeral content message
US10911237B2 (en) * 2017-03-10 2021-02-02 Jim Zubov Virally connected network of people as a means to recover encrypted data should the encryption key become lost
CA3077500C (en) 2017-09-29 2023-11-21 Workjam Inc. Access to secured information
US11164182B2 (en) 2018-05-17 2021-11-02 Conio Inc. Methods and systems for safe creation, custody, recovery, and management of a digital asset
CN108768643A (zh) * 2018-06-22 2018-11-06 哈尔滨工业大学 一种隐私数据保护方法及系统
US11144620B2 (en) * 2018-06-26 2021-10-12 Counseling and Development, Inc. Systems and methods for establishing connections in a network following secure verification of interested parties
US11070368B2 (en) * 2018-09-11 2021-07-20 Dycrav Security Incorporated System, method, and program for transmitting and receiving any type of secure digital data
US11212093B2 (en) * 2018-09-14 2021-12-28 Htc Corporation Method of social key recovery and related device
US11641563B2 (en) 2018-09-28 2023-05-02 Apple Inc. System and method for locating wireless accessories
US11003760B2 (en) 2019-01-30 2021-05-11 Rsa Security Llc User account recovery techniques using secret sharing scheme with trusted referee
US11863671B1 (en) * 2019-04-17 2024-01-02 Apple Inc. Accessory assisted account recovery
WO2020214701A1 (en) * 2019-04-17 2020-10-22 Prestacom Services Llc Sharing keys for a wireless accessory
US11194933B2 (en) * 2019-06-04 2021-12-07 Intel Corporation Circuits supporting improved side channel and fault injection attack resistance
CN110601824B (zh) * 2019-08-26 2023-06-13 北京思源理想控股集团有限公司 信息的传输方法及装置
US11683159B2 (en) * 2019-11-07 2023-06-20 Google Llc Hybrid content protection architecture
US10880331B2 (en) * 2019-11-15 2020-12-29 Cheman Shaik Defeating solution to phishing attacks through counter challenge authentication
EP4062350A4 (en) 2019-11-22 2024-03-06 Conio Inc METHOD AND APPARATUS FOR BLOCKCHAIN AGNOSTIC SECURE MULTI-SIGNATURE MANAGEMENT OF DIGITAL ASSETS
US11609982B2 (en) * 2019-12-19 2023-03-21 Snap Inc. Social account recovery
US11303695B2 (en) * 2020-04-27 2022-04-12 Imperva, Inc. Forced identification with automated POST resubmission
US11374914B2 (en) * 2020-06-29 2022-06-28 Capital One Services, Llc Systems and methods for determining knowledge-based authentication questions
US11431701B2 (en) * 2020-08-18 2022-08-30 Capital One Services, Llc Computer-based systems involving sharing session authentication and/or account details with a trusted party and methods of use thereof
US11889302B2 (en) 2020-08-28 2024-01-30 Apple Inc. Maintenance of wireless devices
US11714551B2 (en) * 2020-10-14 2023-08-01 EMC IP Holding Company LLC Credential manager with account selection and resource load-balancing
US11914690B2 (en) * 2021-02-08 2024-02-27 Typingdna Inc. Systems and methods for using typing characteristics for authentication
US11843596B2 (en) 2021-06-30 2023-12-12 Micro Focus Llc Reregistration of client device with server device using user device
US20240048382A1 (en) 2022-08-03 2024-02-08 1080 Network, Llc Systems, methods, and computing platforms for executing credential-less network-based communication exchanges

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5937066A (en) 1996-10-02 1999-08-10 International Business Machines Corporation Two-phase cryptographic key recovery system
US7383570B2 (en) * 2002-04-25 2008-06-03 Intertrust Technologies, Corp. Secure authentication systems and methods
JP2005100255A (ja) 2003-09-26 2005-04-14 Hitachi Software Eng Co Ltd パスワード変更方法
US9842204B2 (en) * 2008-04-01 2017-12-12 Nudata Security Inc. Systems and methods for assessing security risk
US20100250955A1 (en) * 2008-10-22 2010-09-30 Paul Trevithick Brokered information sharing system
US8688940B2 (en) * 2008-12-18 2014-04-01 Sandisk Technologies Inc. Method for using a CAPTCHA challenge to protect a removable mobile flash memory storage device
US8856879B2 (en) 2009-05-14 2014-10-07 Microsoft Corporation Social authentication for account recovery
JP5571854B2 (ja) * 2010-09-27 2014-08-13 ノキア シーメンス ネットワークス オサケユキチュア ユーザアカウント回復
US8490166B2 (en) * 2010-12-29 2013-07-16 Facebook, Inc. Identifying a user account in a social networking system
US9348981B1 (en) * 2011-01-23 2016-05-24 Google Inc. System and method for generating user authentication challenges
US8522327B2 (en) 2011-08-10 2013-08-27 Yahoo! Inc. Multi-step captcha with serial time-consuming decryption of puzzles
US9037864B1 (en) * 2011-09-21 2015-05-19 Google Inc. Generating authentication challenges based on social network activity information
US20130097697A1 (en) 2011-10-14 2013-04-18 Microsoft Corporation Security Primitives Employing Hard Artificial Intelligence Problems
US8955065B2 (en) 2012-02-01 2015-02-10 Amazon Technologies, Inc. Recovery of managed security credentials
FR3002670B1 (fr) 2013-02-27 2016-07-15 Oberthur Technologies Procede et systeme de traitement cryptographique utilisant une donnee sensible
US8966614B2 (en) * 2013-05-31 2015-02-24 University Of Ontario Institute Of Technology Systems, methods, and computer program products for providing video-passwords for user authentication
US9256725B2 (en) * 2014-02-26 2016-02-09 Emc Corporation Credential recovery with the assistance of trusted entities
GB2513260B (en) 2014-06-27 2018-06-13 PQ Solutions Ltd System and method for quorum-based data recovery

Also Published As

Publication number Publication date
EP3219049A4 (en) 2018-06-13
EP3219049B1 (en) 2021-12-01
US10061914B2 (en) 2018-08-28
JP2018503199A (ja) 2018-02-01
CN107251035A (zh) 2017-10-13
CN107251035B (zh) 2020-07-31
US20160140335A1 (en) 2016-05-19
WO2016077121A1 (en) 2016-05-19
EP3219049A1 (en) 2017-09-20

Similar Documents

Publication Publication Date Title
JP6517359B2 (ja) アカウント復元プロトコル
US11343232B2 (en) Workstation log-in
US11368445B2 (en) Local encryption for single sign-on
US10911431B2 (en) Local encryption for single sign-on
US8196186B2 (en) Security architecture for peer-to-peer storage system
US9960919B2 (en) Method for providing security using secure computation
JP5650230B2 (ja) 低レイテンシーのピア・セッション確立
US9137223B2 (en) Apparatus and method for transmitting data, and recording medium storing program for executing method of the same in computer
US10298561B2 (en) Providing a single session experience across multiple applications
US20150318998A1 (en) Methods and systems for client-enhanced challenge-response authentication
US11057210B1 (en) Distribution and recovery of a user secret
US20120284506A1 (en) Methods and apparatus for preventing crimeware attacks
CN107920052B (zh) 一种加密方法及智能装置
CN106464493B (zh) 包含一次性通行码的持久性认证系统
CN110635901B (zh) 用于物联网设备的本地蓝牙动态认证方法和系统
CN109716725B (zh) 数据安全系统及其操作方法和计算机可读存储介质
Wang et al. Amnesia: A bilateral generative password manager
JP2011176435A (ja) 秘密鍵共有システム、方法、データ処理装置、管理サーバ、及びプログラム
CN113411187B (zh) 身份认证方法和系统、存储介质及处理器
CN110557367B (zh) 基于证书密码学的抗量子计算保密通信的密钥更新方法和系统
WO2017029708A1 (ja) 個人認証システム
JP5793593B2 (ja) ユーザ識別情報を安全に検証するためのネットワーク認証方法
Xu et al. Qrtoken: Unifying authentication framework to protect user online identity
KR101576038B1 (ko) 사용자 신원 인증을 안전하게 보장하기 위한 네트워크 인증 방법
CN117376006A (zh) 一种临时会话密钥安全通信方法、装置、电子设备及介质

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20180531

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20180710

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20181010

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: 20190319

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20190417

R150 Certificate of patent or registration of utility model

Ref document number: 6517359

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250