アプリの設定方法
入れたあと、鍵と端末をどう扱うかを選びます。守りを固めるほど、失う利便性が増えます。
想定する脅威
| 脅威 | 例 | 対策 |
|---|---|---|
| 端末を盗まれる・なくす | 鍵が端末に残っていれば、ロックを破られたときに取られる | 鍵を保存しない |
| 入力を見られる | シードを打つところを、人やカメラに見られる | 端末に鍵を保存 |
| ネットに鍵や内容が出る | マルウェアやほかのアプリが、ネット経由で送る | 端末の守り方 |
| 端末の中から読み取られる | サードパーティ製キーボード、ユーザー補助、USBデバッグ、後から入るアプリ | 端末の守り方の2と3、標準キーボード |
| 違うバージョンで署名する | 差し替えられたバージョンや古いバージョンに気づかない | 動いているバージョンを確かめる |
このアプリが用意しているもの
設定は3種類に分かれます。
- 鍵の扱い: 保存しないか、端末に保存するか。どちらか一方を選びます。
- 端末の守り方: 自分で守る、アプリが確かめる、OSで固定する、の3段階です。重ねて使えます。
- 入力と確認: ほかの選択と関係なく、手間が少し増えるだけで足せます。
鍵の扱い
鍵を端末に残すかどうかは、見られるリスクと、盗まれたときのリスクの交換です。
| 鍵を保存しない | 端末に鍵を保存 | |
|---|---|---|
| 減らせるリスク | 端末を盗まれたり、ロックを破られたりしても、鍵が残っていない | 紙を出して入力するたびに、人やカメラに見られる |
| 代わりに信頼するもの | 紙のバックアップだけ | 端末のロック。Webアプリではアカウントとブラウザのデータも |
| 失う利便性 | 大: 開くたびにシードを入力する(SeedQRなら読み取るだけ) | 小: 手間はむしろ減る |
| Android(ネイティブ) | ○ | ○ Android Keystore、画面ロック。Googleアカウントは不要 |
| iPhone(ネイティブ) | ○ | ○ Secure Enclave、パスコード。この端末だけ |
| Webアプリ | ○ | △ パスキーで暗号化。iPhoneはiOS 18以降 |
どちらでも紙のバックアップは必須です。端末のパスコードを知る人は、保存した鍵を開けます。
Webアプリで鍵を保存するとき
- 設定 › 鍵の保存 をオンにすると、このアプリのパスキーで鍵を暗号化します。開くたびにFace ID、指紋、または端末のパスコードを求めます。
- iPhoneではiOS 18以降が必要です。それより前のSafariには、パスキーで鍵を暗号化する機能(PRF)がありません。
- パスキーを作るには、Appleアカウントへのサインインと、iCloudキーチェーンの同期が必要です。保存した鍵を開くときも必要で、サインアウトすると、キーチェーンのコピーをこのiPhoneに残しても開けません。暗号化した鍵はこの端末のブラウザにしかないため、ほかの端末のパスキーだけでは開けませんが、署名用のiPhoneをアカウントに入れることになります。避けたい場合は、鍵を保存せずに使ってください。
- 保存した鍵は、保存したときに使ったホーム画面のアプリにだけあります。iPhoneでは、ホーム画面に追加し直すと別のアプリになり、前のアプリの鍵は見えません。前のアプリをホーム画面から消すと、その鍵も消えます。新しいバージョンにするために追加し直す必要はありません。
- Androidのパスキーはふつう Google アカウントへのサインインが必要で、アカウントの追加を禁止する Signer Lockdown とは両立しません。Androidではネイティブ版を使ってください。
端末の守り方
1は自分で守る、2はアプリが確かめる、3はOSで固定する、の順に強くなり、失う利便性も大きくなります。
| 段階 | 減らせるリスク | 失う利便性 | 対応 |
|---|---|---|---|
| 1. ネットにつながない | 鍵や署名の内容がネット経由で外に出る。Webアプリでは、サイトが乗っ取られても新しいバージョンが届かない | 中: この端末で残高を見たり送金したりできない。やりとりはQRだけ | すべて |
| 2. 端末の機能制限 | Bluetooth、キーボード、ユーザー補助などがオンのまま、気づかずに鍵を読み込む | なし〜中: 「必須」にすると、オフにするまで鍵を読み込めない | ネイティブ版 |
| 3. Signer Lockdown | 後から入るアプリ、アカウントの同期、USBデバッグ、うっかりネットにつなぐこと。端末のほかのアプリを信頼しなくてよくなる | 大: 端末をほかの用途に使えない。工場出荷リセットが要る | Androidのみ |
段階1では、どの経路も自分で気をつけて守ります。設定は元に戻せるうえ、自分で設定し忘れることもあります。段階2と3で、経路ごとに次のように変わります。
| 漏れる経路 | 2. 端末の機能制限 | 3. Signer Lockdown |
|---|---|---|
| ネットワーク(Wi-Fi・モバイル) | つながっている間は警告か読み込み停止(Android、iOS。Webアプリは常に読み込み停止) | 機内モードを固定 |
| Bluetooth・NFC | オンなら警告か読み込み停止(Android。iOSはBluetoothのみ) | 設定を変えられない |
| サードパーティ製キーボード | 標準のキーボードが端末に最初から入っていたものでなければ警告か停止(Android) | 標準のものだけ |
| ユーザー補助サービス | オンなら警告か停止(Android) | 標準のものだけ |
| USBデバッグ | オンなら警告か停止(Android) | 禁止 |
| 後から入るアプリ・アカウント | 確かめない | 追加を禁止 |
ネイティブ版の 設定 › 端末の機能制限 で設定します。確かめるだけで、オフにはしません。
エアギャップの署名に向かない端末の機能を検出します。項目ごとに次の3つから選べます。標準はBluetoothとNFCだけOffで、残りはWarnです。
- Off: 検出しない
- Warn: オンになっていると画面上部に警告を出す
- Require: 警告に加えて、オンの間はシードの読み込みと作成をできなくする。鍵を読み込んだ後にRequireに設定したネットワークや無線がオンになったら、その時点で鍵を消去する
| 項目 | Android | iOS |
|---|---|---|
| ネットワーク(Wi-Fi、モバイルデータ、テザリング。インターネットにつながらないものも含む) | 検出する | 検出する |
| Bluetooth、NFC | 両方検出する | Bluetoothだけ検出する。Off以外にしたときに利用許可を求める |
| サードパーティ製キーボード | 標準のキーボードが端末に最初から入っていたものかを検出する | アプリ内で禁止しているので項目なし |
| USBデバッグ | 検出する | 項目なし |
| ユーザー補助サービス | オンのサービスを検出する。TalkBackなどのスクリーンリーダーも含まれる | 項目なし |
入力と確認
| 設定 | 減らせるリスク | 失う利便性 |
|---|---|---|
| 標準キーボードを使う | サードパーティ製キーボードが、パスフレーズを記録したり送ったりする。シードはアプリ内のキーで入力するので、キーボードを通らない | 小: 使い慣れたキーボードや辞書を使えない |
| 動いているバージョンを確かめる | 差し替えられたバージョンや古いバージョンで、気づかずに署名する。Webアプリは 設定 › このアプリのバージョン、Lockdownは PC からlockdown/audit.sh | 小: 確かめる手間が増える |
Webアプリでは、スクリーンショットと画面収録を止められません。ネットにつながったかどうかも、ブラウザが知らせる範囲でしか分かりません。詳しくはセキュリティ仕様を参照してください。