全12本中6本目5分で読めます

スマホが見せるもの:署名端末上でのトランザクション解析

ウォレットからの盗難のほとんどは、持ち主の同意のもとで起きます。ページはあるものを見せ、ウォレットは別のものに署名し、持ち主は Confirm(確認)をクリックしていた。スマホの役目は、見えているものと署名するものを確実に一致させることです。

不明なスペンダーへの無制限承認をデコードするスマホ。2つの指摘事項が吹き出しで抜き出され、小さなカードはページ側が Swap(スワップ)としか表示していなかったことを示す
ページの説明どおりではなく、ありのままのリクエスト。
目次

主張と真実

Web ページが何かへの署名を求めるとき、それが何なのかも説明してきます。「1 ETH を USDC にスワップ」「報酬を受け取る」「ウォレットを認証する」。その説明はページによる主張であり、悪意のあるページはどんな主張でもできます。ページがウォレットに渡すバイト列はそれとは別物で、ブロックチェーンが目にするのは、そのバイト列だけです。

AirNox Vault は主張を無視します。署名しようとしているまさにそのバイト列から、スマホ上で、独自のパーサーでリクエストをデコードし、その結果を見せます。デスクトップがリクエストについて言うことは主張です。スマホが見せるものが真実です。

左:ページは「1 ETH を USDC にスワップ」と表示。右:スマホは不明なスペンダーへの無制限承認とデコード
同じリクエストに、2つの説明。バイト列から来たのは一方だけです。

標準メソッドを認識する

署名するものの大半は、ごく普通のものです。送金。トークンの承認(allowance)。よく知られたルーターを通じたスワップ。コントラクトへの預け入れ。スマホは、対応する各チェーンファミリーの標準操作を認識し、わかりやすい言葉で表示します。どんな操作か、どのトークンか、いくらか、誰宛てか、どのネットワークか、手数料の上限はいくらか。送金は送金に見えます。承認は承認に見え、スペンダー(spender)と金額がはっきり示されます。

そっくりなものには警告

危険なリクエストとは、普通に見えて、実は普通ではないものです。名前は標準メソッドに似ているのに、パラメーターが合わないメソッド。表示の見出しには現れない形で、別のコントラクトに制御を委任する呼び出し。ページが「やり取りしている」と言っていたコントラクトとは違う宛先。有名なトークンのシンボルを装ったトークン。先頭と末尾の文字が、あなたのアドレスのどれかと同じ受取アドレス。

どれも検出され、指摘事項になります。スマホは署名を拒否しません。判断するのはあなただからです。そのかわり、見落とせないようにします。

6つの指摘事項:無制限承認、不明なスペンダー、そっくりなメソッド、なりすましトークン、そっくりな受取アドレス、隠れた委任
Accept(承諾)を押せるようになる前に、スマホが示す指摘事項。

指摘事項

無制限承認は、ドレイナー(drainer)の典型的な手口です。一度承認(approve)すれば、その後そのトークンはすべて失われます。スマホは「無制限(Unlimited)」と赤字で表示し、指摘事項として扱います。

不明なスペンダーとは、誰も保証していないアドレスへの承認のことです。スワップの見積もりが特定のルーター経由で出ていたのに、承認の宛先が別のものになっていれば、その食い違いが指摘事項になります。

そっくりなメソッド、なりすましトークンのシンボル、そっくりな受取アドレス、隠れた委任も、それぞれ名前を挙げて示されます。受取アドレスについては、デスクトップとスマホの両方が、アドレスから決定論的に生成される画像を表示します。16進数の文字列なら目をごまかせるそっくりなアドレスも、画像ではごまかせません。

確認してから Accept

指摘事項は、反射的に閉じられるポップアップではありません。すべての指摘事項にチェックを入れるまで、Accept は押せないままです。Decline(拒否)はいつでも押せます。承諾できるのは、スマホが見つけたものを確認したあとだけです。この1つの設計上の選択が、「よく読まずにクリックした」を「読んだうえで、進むことを選んだ」に変えます。その違いが、資金を抜き取られたウォレットと、自分で下した判断との違いです。

まずデスクトップがチェックする

同じ解析は、リクエストがデスクトップを離れる前にデスクトップ上でも実行されるので、悪いリクエストのほとんどは、スマホに届く前にウォレットの画面で警告されます。それでもスマホがもう一度解析するのは、デスクトップこそ侵害されていると想定しているマシンだからです。2台のデバイスで2回の独立したチェックを行い、最終判断は鍵を持つ側が下します。

読むのは、やはりあなたの仕事

真実を見せてくれる署名端末(signer)でも、あなたがそれに同意するのを止めることはできません。できるのは、真実を見落としようのないものにすることです。バイト列からデコードし、わかりやすい言葉にし、危険な部分を赤で示し、意図して通らなければならない関門を設ける。あとはあなた次第です。そして今のあなたには、判断に必要なものがそろっています。

シリーズ記事一覧

  1. パソコンは侵害されていると想定する
  2. Mass Adoption Security:署名するのは、すでに持っているスマホ
  3. ギャップを越える3つの方法:QR コード、Bluetooth LE、NFC
  4. 電波上で姿を見せない:スキャンしても見つからない署名端末
  5. 通信経路は決して信頼しない
  6. スマホが見せるもの:署名端末上でのトランザクション解析
  7. スマホは自分の記録を残す
  8. デスクトップの金庫:Argon2id と、推測に強いプロファイル
  9. ブラウザウォレットなしで dApp を使う
  10. ルールのある MCP サーバー:上限の範囲で動く AI エージェント
  11. すべてを、1つの守られたウォレットで
  12. 小さく、ネイティブに:C++、JavaScript ランタイムなし、ワークステーションから Raspberry Pi まで

事前登録

メールアドレスを登録すると、リリースのお知らせをお送りします。それ以外のメールは送りません。