Androidに保存されたVPN:どの秘密を復元できますか?
パスワードを尋ねずに再接続するスマートフォンは、コピーできるパスワードを保存していません。四種類の資格情報と、それぞれに必要な復元方法を比較してください。
スマートフォンは毎朝、何も尋ねずにVPNへ再接続します。それは資格情報がどこかに入っていることを示します。たいていは入っておらず、少なくとも読み上げて新しい端末に入力できる形では入っていません。
スマートフォンが持っているのは接続する権限です。あなたが欲しいのは持ち運べる秘密であり、これらは画面上でたまたま同じ動作を生む別々の性質です。
何かをリセットする前に、それぞれ所有者も復元方法も違う四種類の秘密のうち、どれが実際に欠けているのかを特定してください。
つながる接続は保存されたパスワードではない
黙って再接続するアプリが保持しているのは、パスワード、セッショントークン、証明書への参照、あるいはエクスポートできない端末結合型の鍵だけかもしれません。四つとも同じ利用者体験を生み、どれも互換ではありません。
設定欄の点の並びは表示上の判断であり、証拠ではありません。復元できるパスワードを本当に保存し、表示やエクスポートを提供するアプリもありますが、シングルサインオンの流れからトークンを受け取り、パスワードを一切見ないアプリもあります。
ですから最初の問いは、ファイルがどこにあるかではありません。アプリにどんな種類の権限が与えられたかであり、その答えは端末ではなく提供元から来ます。
四つの秘密、四つの復元
誰かに連絡する前に、どれに当たるかで依頼内容がまったく変わるため、自分の状況を一行に当てはめてください。
| What is missing | Who can restore it |
|---|---|
| Account password used with a username | The identity provider, through a reset |
| Password protecting a private key or PKCS#12 package | Nobody, if it is forgotten; a fresh profile and key are issued instead |
| Session token or SSO session | Nobody; sign in again to obtain a new session |
| Reference to a certificate or key held on the device | The administrator, by enrolling the new device |
二行目が最も多く人を捕まえます。PKCS#12のインポートパスワードは鍵素材を保護するもので、アカウントのログインとは無関係なので、アカウントのパスワードをリセットしても何も復元されません。パッケージのパスワードが本当に失われたなら、再発行が解決策です。
四行目は多くの紛らわしいサポートスレッドを説明します。プロファイルは持ち運べるコピーを含むのではなく、プラットフォームのキーストア内の資格情報を参照していることがあり、その場合は原理的にもプロファイルから取り出せるものはありません。
アプリのデータのコピーがたいてい失敗する理由
古い手順は、アプリのデータディレクトリを引き出して設定を読み取るものです。現在のAndroidでは、その手順には二つの独立した問題があります。
一つ目はバックアップの方針です。Android 12は、API 31以降を対象とするアプリについて、従来の adb backup 経路でエクスポートされるアプリデータを制限し、アプリはデータをバックアップから完全に除外できます。古い端末向けに書かれた手順は、現在の端末の万能な復元方法ではありません。
二つ目はキーストアです。そこで生成された鍵はエクスポートできず、ハードウェアに結び付いていることがあり、Android Keystoreのドキュメントがそれを説明しています。暗号化されたブロブをコピーしても、それを復号する鍵はコピーされないため、復元したディレクトリには、新しい端末が決して使えない資格情報が含まれている可能性があります。
どちらの問題も回避すべき不具合ではありません。どちらもプラットフォームが設計どおりに動いているだけであり、障害として扱うと、たいていはroot化された端末とパスワードなしで終わります。
意図して代替の端末へ移る
まず対応している方法を行ってください。提供元が必要な資格情報を明示的に含むエクスポートを用意しているなら、それを使い、古い端末を消す前に新しい端末で結果を確認します。用意がなければ、証明書ベースのサービスでは通常の経路であり、回避策より短時間で済むのが普通の、新しいプロファイルか登録を依頼してください。
順序が重要です。代替端末を登録し、接続し、トンネルを通してテスト要求を送り、それから初めて元の端末を退役させます。新しい端末が証明されるまで動く端末を残しておくことは、入手できる最も安い保険であり、費やすのは忍耐だけです。
リセットの副作用も計画してください。アカウントのパスワードをリセットしたり端末の身元を取り消したりすると、他のセッションが無効になることがあります。ノートPCのクライアントや、誰も覚えていなかったタブレットも含まれるため、一つずつ発見するのではなく、同じ時間帯に対処してください。
してはいけないこと
平文ファイルを探すために、唯一動く端末をroot化しないでください。アクセス復元の問題を端末の完全性の問題に変えてしまい、アプリ自身の完全性チェックを壊すかもしれませんし、探している値が読める形で存在する保証もありません。
問題が実在すると証明するために、秘密鍵、エクスポートしたプロファイル、パスワードをサポートチケットに貼り付けないでください。提供元が必要とするのはプロファイル名、アプリのバージョン、アカウント識別子、エラーであり、どれも秘密ではありません。
また、待っている間に接続を得るために証明書の検証を無効にしないでください。それは一時的な不便と引き換えに、どのサーバーと話しているかを教える唯一の検証を恒久的に弱めます。四つの事実を記録し、具体的な質問をし、発行された経路を使ってください。