シークレットフレーズ:保管庫復旧の生命線
保管庫を作成すると、Vaultaireは9語の復旧用の文を生成します。書き留めて、安全に保管してください。パターンを忘れても、このフレーズで、その保管庫の復旧に必要な鍵を収めた暗号化エンベロープを開けます。
Vaultaireは、12語や24語のBIP-39ニーモニックではなく、9語からなる独自の復旧用の文を生成します。PBKDF2-HMAC-SHA512が正規化したフレーズを800,000回処理して復旧キーを導出します。この鍵で開くのはAES-GCMで暗号化したエンベロープで、ローカルでは保管庫キーを、暗号化されたiCloudバックアップからの復元時には保管庫キーとバックアップキーを収めています。
シークレットフレーズとは何か
Vaultaireの保管庫には多層の鍵階層があります。パターンから保管庫キーが導出され、保管庫キーが暗号化されたインデックスを開き、インデックスにはファイル暗号化に使うランダムなマスターキーがラップされた状態で入っています。では、パターンを忘れたらどうなるでしょうか。数か月たって手が覚えた動きを忘れてしまったら?別の復旧手段がなければ、保管庫キーには届かないままです。
そこで役立つのがシークレットフレーズです。新しい保管庫を作成すると、Vaultaireは9つの一般的な英単語から文法に沿った文を生成します。単語は複数の役割別リストから暗号学的に安全な乱数で選ばれます。これは BIP-39 ではなく、独自の回復形式です。単語はパターン由来の保管庫キーを符号化しません。正規化した文をPBKDF2に入力し、得られた回復キーで保管庫キーを含むエンベロープを復号します。
こう考えてください。パターンとリカバリーフレーズは、同じ保管庫のアクセス情報を包む別々の包みを開ける2つの認証情報です。パターンは毎日使う認証情報です。リカバリーフレーズは非常用のエンベロープを開くためのもので、手がパターンを思い出せなくなった日や、新しいデバイスで暗号化バックアップを見つける必要がある日のために保管しておきます。
16進数で書いた256ビットの鍵は次のようになります。a3f78e2b9c5d6148f0e2a1b3c4d5e6f7182930a1b2c3d4e5f60718293a4b5c6d — 手書きで写すのは大変な64文字です。Vaultaireはこの鍵をBIP-39の単語に変換しません。覚えやすい文を生成し、その文から復旧キーを導出し、その鍵で、認証付き暗号化エンベロープに収めた実際の保管庫キーを保護します。
シークレットフレーズの仕組み
シークレットフレーズは独立した認証情報なので、保管庫を復旧する別の手段であると同時に、攻撃の別の入口にもなります。パターンから導出した鍵を別の形で表したものではありません。フレーズからは専用の256ビット復旧キーが導出され、その鍵が保管庫キーを収めた小さなエンベロープを認証・復号します。この分離により、通常のローカルの保管庫キーはデバイスのKeychainのソルトに結び付いたまま、フレーズは別のデバイスでも使えます。
生成
保管庫を作成すると、Vaultaireは暗号学的に安全な乱数で単語を選び、いくつかある文法テンプレートの1つに当てはめます。生成される文は通常9語で、アプリのフレーズ強度推定でチェックされます。検証に合格すれば、6語以上のカスタムフレーズを指定することもできます。フレーズは正規化され、PBKDF2-HMAC-SHA512で800,000回処理されたうえで、持ち運べる復旧エンベロープの暗号化に使われます。
表示
Vaultaireは保管庫の作成中にフレーズを表示し、保存したかどうかの確認を求めます。また、フレーズをiOS Keychain内の、AES-GCMで暗号化した復旧データベースに保存します。そのため、後からその保管庫の設定で表示でき、iCloudバックアップが有効なときは暗号化された復旧マニフェストの公開にも使われます。Vaultaireがフレーズを自社サーバーで受け取ったり、分析に含めたりすることはありません。
復旧
パターンを忘れたら、Vaultaireを開いて復旧オプションを選びます。元のデバイスでは、暗号化された復旧データベースがフレーズと対応するエンベロープを結び付けます。暗号化されたiCloudバックアップから復元する場合は、フレーズから決まるロケーターで復旧マニフェストを見つけます。どちらの場合も、AES-GCMの認証付き復号がフレーズから導出した鍵を検証してから、保管庫のアクセス情報を取り出します。その後、保管庫を開いて新しいパターンを設定できます。
シークレットフレーズが存在する理由
Vaultaireには、パターン、リカバリーフレーズ、保管庫キー、バックアップキー、読み取れる状態の保管庫の中身を受け取るアカウントサービスがありません。暗号化バックアップはあなたのCloudKitプライベートデータベースに保存され、Vaultaireはプロバイダー用の復旧キーを別に持っていません。そのため、会社が運営するパスワードリセットの経路はありません。サポートが、失くしたパターンやフレーズをアカウントの認証情報で置き換えることはできません。
シークレットフレーズは、このトレードオフに対するVaultaireの答えです。Vaultaireにプロバイダー保有の復号キーを預けることなく、暗号化された保管庫のアクセス情報のコピーを開ける、人が読める認証情報を持てます。フレーズはローカルの保護されたKeychainデータに保存されますが、自分で管理する場所にも保管してください。パターンも使えるフレーズのコピーも残っていなければ、Vaultaireが会社のアカウントから暗号化をリセットすることはできません。
パターンは強力で直感的だが、筋肉の記憶に依存する。生活が邪魔をすることがある。6ヶ月保管庫を開けないかもしれない。スマートフォンを変えてジェスチャーの身体的な感覚を失うかもしれない。細かい運動制御に影響する医療的状況が生じるかもしれない。シークレットフレーズは、これらのいずれのシナリオも永久なデータ損失を意味しないことを保証する。
シークレットフレーズのセキュリティ
シークレットフレーズは、保管庫に関わる認証情報の中でも特に機密性の高いものです。フレーズと、対応するローカルの復旧データまたは暗号化されたiCloudバックアップを手にした人は、保管庫キーを復旧してデータにアクセスできる可能性があります。だからこそVaultaireはローカルのコピーを暗号化したKeychainストレージに保存しています。あなたが作ったコピーも同じように守る必要があります。
作成時に表示され、設定で利用可能
Vaultaireは保管庫の作成中にフレーズを表示するので、自分用のコピーを別に作れます。開いている保管庫の設定から、保存済みのフレーズを読み込んで表示することもできます。この便利さは脅威モデルを変えます。保管庫のロックを解除して設定にアクセスできる人は、フレーズを読める可能性があります。そのため、iPhoneのパスコード、Vaultaireのパターン、デバイスを物理的に手元に置くことが引き続き重要です。
ローカルで暗号化され、Vaultaireには送信されません
フレーズは暗号化された復旧データベースに保存され、このデータベースはWhenUnlockedThisDeviceOnlyのKeychainアイテムとして保管されます。別のランダムなKeychainキーが、AES-GCMでこのデータベースを保護します。暗号化されたiCloudバックアップが有効な場合、Vaultaireはフレーズから決まるロケーターと、AES-GCMで暗号化した復旧マニフェストをアップロードします。平文のフレーズはこのレコードに含まれません。フレーズは分析の対象外で、Vaultaireが受け取ることもありません。
フレーズなしには復旧できない
パターンと、使えるシークレットフレーズのコピーをすべて失った場合、Vaultaireには保管庫を復号できるアカウントリセットもプロバイダー保有の鍵もありません。その場合にローカルで復旧できるかどうかは、保護されたKeychainデータと保管庫データがデバイスにどれだけ残っているかで決まります。暗号化されたiCloudバックアップを開くにも、リカバリーフレーズか、対応するパターンから導出したバックアップキーが必要です。
認証情報もラップを解いた鍵も残っていない暗号化保管庫データは、ダイヤル番号を忘れた保管庫のようなものです。AES-256が中身を守りますが、実際に復旧できるかどうかは鍵階層全体で決まります。ローカルのKeychainデータ、パターンから導出した保管庫キー、フレーズから導出した復旧エンベロープ、そして暗号化されたクラウドバックアップです。
シークレットフレーズのベストプラクティス
シークレットフレーズは最もプライベートなデータの究極のバックアップだ。それに応じて扱うこと。
紙に書き留める
ペンと紙を使う。各単語を順番に番号付きで明確に書く。紙はリモートでハッキングできない。マルウェアに感染させることができない。クラウドサービスからサイレントに持ち出すことができない。安全な場所に置かれた一枚の紙は、これまで発明されたバックアップストレージの中で最も堅牢な形だ。
デジタルには絶対に保存しない
保護されていないコピーを、メモアプリ、スクリーンショット、メールアカウントに置かないでください。デジタルのコピーが増えるたびに、マルウェアやデータ漏えい、アカウントの乗っ取りでフレーズが漏れる場所が増えます。Vaultaireは復旧と設定での表示のために、保護されたローカルコピーをすでに保存しています。それ以外のコピーは、守るデータのリスクに見合った方法で保護してください。
安全な場所に保管する
紙を安全でプライベートな場所に保管する。自宅の保管庫、安全預かり箱、あるいはあなただけがアクセスする鍵のかかった引き出し。重要な法的文書や出生証明書に取るのと同じ予防措置を講じること。複数の保管庫がある場合、どの保管庫に属するかわかるよう各フレーズに明確にラベルを付けること。
信頼できる人を考慮する
万が一のとき、誰かが保管庫にアクセスできるべきか?もしそうなら、信頼できる家族にフレーズのコピーを渡すか、遺産書類と一緒に封をした封筒に入れることも考えられる。これは個人的な決断だが、問題が緊急になる前に考えておく価値がある。
復旧の仕組み
復旧プロセスは簡単だが、各ステップで何が起きるかを理解しておくと、何を期待すべきかが明確になる。
ステップ1:復旧画面を開く
Vaultaireを開いてパターンの入力を求められたとき、復旧オプションが表示される。それをタップすると、シークレットフレーズの各単語を入力または選択できる単語入力インターフェースが表示される。
ステップ2:フレーズを入力する
保存したときと同じ語順で、フレーズ全体を入力します。Vaultaireは大文字・小文字と空白を正規化しますが、単語とその順序はPBKDF2の入力になるため重要です。生成される形式はBIP-39の単語リストではなく9語の文で、カスタムフレーズの語数はこれと異なる場合があります。
ステップ3:鍵の再生成
フレーズを入力すると、Vaultaireはそれを正規化し、フレーズから決まるソルトを使ってPBKDF2-HMAC-SHA512を800,000回実行します。正規化したフレーズが同じなら、別のデバイスでも同じ256ビットの復旧キーになります。続いてAES-GCMが、保管庫キーやバックアップキーを受け入れる前に、この鍵をローカルの復旧エンベロープまたはクラウドの復旧マニフェストで検証します。
ステップ4:新しいパターンを設定する
保管庫に再びアクセスできるようになったら、Vaultaireで新しいパターンを設定できます。ファイルを暗号化するランダムなマスターキーは変わりませんが、新しいパターンから新しいローカルの保管庫キーと、パターンから決まる新しいバックアップキーが導出されます。パターンを変更すると新しいリカバリーフレーズとエンベロープも生成されるので、画面を閉じる前に新しいフレーズを保存してください。
よくある質問
保管庫作成後にシークレットフレーズを確認できるか?
はい。VaultaireはフレーズをiOS Keychain内の、AES-GCMで暗号化した復旧データベースに保存します。そのため、後からその保管庫の設定で表示できます。Vaultaireが自社サーバーに保存したり、分析に送信したりすることはありません。保管庫を開いて設定にアクセスできる人なら誰でも表示できる可能性があるため、デバイスへのアクセス管理は引き続き重要です。
パターンとシークレットフレーズの両方を失ったら?
どちらの認証情報もデバイスや自分の記録から取り戻せない場合、Vaultaireには保管庫を復号できるプロバイダー保有の鍵も、アカウントのリセットサービスもありません。暗号化されたiCloudバックアップを開くにも、リカバリーフレーズか、パターンから導出したバックアップキーが必要です。
シークレットフレーズはパスワードと同じか?
生成されるフレーズは、暗号学的に安全な乱数で単語を選んだ独自形式の9語の文です。検証に合格したカスタムフレーズも使えます。BIP-39ではなく、256ビットの鍵を符号化したものでもありません。PBKDF2-HMAC-SHA512を800,000回反復して256ビットの復旧キーを導出しますが、フレーズの安全性はフレーズ自体のエントロピーを超えません。
パターンを変更するとシークレットフレーズも変わるか?
はい。パターンを変更すると、Vaultaireは新しいリカバリーフレーズを生成します。ファイルを暗号化するマスターキーは変わりませんが、新しいパターンから新しい保管庫キーとバックアップキーが生成され、新しいフレーズ用の復旧エンベロープが作成されます。パターン変更の画面を閉じる前に、新しいフレーズを保存してください。
別のデバイスでシークレットフレーズを使用できるか?
はい。暗号化されたiCloudバックアップがあれば使えます。正規化したフレーズでCloudKit上の復旧マニフェストを特定し、フレーズから導出した鍵でその中の保管庫キーとバックアップキーを復号します。これらの鍵で暗号化バックアップを開きます。ローカルの保管庫データも対応する暗号化バックアップもなければ、フレーズだけでは復元する暗号文がありません。
VaultaireはBIP-39を使っているか?
いいえ。VaultaireはBIP-39のニーモニック形式ではなく、独自の文生成器を使います。既定のフレーズは、文法テンプレートに当てはめた9語で構成されます。カスタムのリカバリーフレーズは6語以上で、アプリの強度チェックに合格する必要があります。フレーズは復旧キーの導出に使われ、保管庫キー自体を符号化するものではありません。