Appearance
アカウント侵害について
秘密鍵が第三者に渡ると、そのアカウントは乗っ取られたものとして扱われます。
ここでは、侵害が起きたあと・起きないようにするための方向性をまとめます。
アカウントの無効化
秘密鍵が漏えいしたあとの対策として、me.virmesh.account.disableAccount でアカウントを無効化できます。
無効化が成功すると対象の player id は tombstone 化され、以後はその鍵を使ったリクエストは拒否されます(Identity の「Disabled account tombstones」を参照)。
攻撃者が乗っ取ったアカウントから送るリクエストを止められるため、悪意あるスパム送信などへの利用を抑え、乗っ取りのインセンティブを下げられます。
一方で、ユーザーが侵害に気づくまでの間に行われる悪意ある行為までは防げません。
また無効化は事後対応であり、乗っ取りそのものを未然に防ぐ仕組みではありません。
remote-signer
Nostrの「NIP-46」のように、秘密鍵をサーバー側に置き、そこで署名する方式(プレイヤーサーバーとは別サーバーを想定)の導入を検討しています。
秘密鍵がクライアント端末に残らないため、端末が侵害されても鍵そのものが漏えいしにくくなります。
その代わり、攻撃の焦点が端末からサーバーへ移るため、サーバー側のセキュリティ設計・運用がより重要になります。
signer-app
秘密鍵を扱う専用アプリを用意する案もあります。
そのアプリが鍵の保管と署名インターフェースを担い、一般クライアントには鍵を渡さず署名だけを依頼する形にできます。悪意あるクライアントを使っても、鍵がそのクライアントに渡らなければ漏えいを防げます。
イメージとしては、remote-signer を「端末上の専用署名アプリ」に置き換えた構成に近いです。