パスキーのしくみ
Vela のウォレットを管理する鍵はパスキーです。P-256 曲線上の WebAuthn クレデンシャルで、1 本ずつ端末かセキュリティキーが作成し、秘密鍵を保管します。秘密鍵が使われるのは、Face ID、指紋、端末のパスコード、あるいはセキュリティキーへのタッチと PIN で、あなたが確認したときだけです。Vela が秘密鍵を受け取ることはありません。パスワードマネージャーが同期する場合は、そのパスワードマネージャーがあなたに代わって暗号化した状態で保管します。
パスキーとは
パスキーは、ひとつのウェブサイトのために作られる公開鍵と秘密鍵のペアです。Vela の場合、そのサイトは getvela.app です。アプリが秘密鍵を受け取ることはなく、できるのは認証器に署名を頼むことだけです。そして認証器は、署名の前にあなたに確認を求めます。
秘密鍵がどこに置かれるかは、鍵の種類によって異なります。
| 鍵の種類 | 秘密鍵の置き場所 | ほかの端末に同期されるか |
|---|---|---|
| この端末 —— Face ID、Touch ID、指紋、Windows Hello | プラットフォームのパスワードマネージャー(iCloud キーチェーン、Google パスワードマネージャー)または 1Password などのパスワードマネージャー | 同期がオンなら、たいていはエンドツーエンドで暗号化して同期。Windows Hello の鍵はその PC から出ない |
| QR コードを読み取ってつなぐ別のスマートフォン | そのスマートフォンのパスワードマネージャー | 上と同じ |
| ハードウェアセキュリティキー(YubiKey などの FIDO2 キー。USB または NFC) | セキュリティキーの内部 | 同期されない |
Vela のウォレットは、種類を自由に組み合わせて最大 7 本の鍵を使え、鍵は作成時に選びます。その選び方は署名鍵とセキュリティキーで説明しています。
フィッシングで盗まれる秘密がない
フィッシングは、あなたに秘密を差し出させることで成り立っています。シードフレーズは、言いくるめられてどこかに打ち込んでしまうかもしれない 12 個の単語です。パスキーには打ち込める秘密がありません。漏らすものも、貼り付けるものもなく、偽サイトがそれを求めることもできません。しかもパスキーはひとつのウェブサイトのために作られるので、ブラウザは getvela.app のパスキーを、getvela.app とそのサブドメイン上のページにしか提示しません。
これによって、セルフカストディでよくある損失のひとつ、リカバリーフレーズの盗難がまるごとなくなります。
パスキーでは防げないこと
また、ロックが解除されたあなたのスマートフォンを手にして、その確認を通過できる人や、パスキーの同期先のアカウントを握っている人も防げません。端末にはパスコードを設定し、Apple や Google のアカウントを守り、どこにも同期されないハードウェアセキュリティキーも検討してください。
署名の流れ
- Vela で取引の内容を読んだうえで、承認します。
- 端末かセキュリティキーが、Face ID、指紋、PIN、またはタッチと PIN を求めます。
- 署名が行われ、アプリに戻ってくるのは署名だけです。
- アプリは署名済みの操作をリレーに渡し、リレーがそれを送信します。ウォレットのコントラクトは、何かを実行する前にオンチェーンでパスキーの署名を確認します。
公開鍵の行き先
鍵の公開鍵のほうは、新しい端末からウォレットを見つけられるように、Gnosis Chain 上の公開レジストリに記録されます。それについては復旧とサインインで説明します。
次は署名鍵とセキュリティキー。