読み物の一覧 · 論考
確認画面の文言と、署名の対象は別のもの
利用者が読んだ確認の文言と、署名が結び付く内容は、同じものではありません。どこまでが署名に含まれ、どこからがプロダクトの責任かを分けて書きます。
二つの「内容」
利用者が署名するとき、画面には確認の文言が出ています。「送金先を変更する」「管理者の権限を与える」といった一行です。利用者はそれを読んで、Passkey で署名します。
けれども、Passkey が署名するのは、画面の文言そのものではありません。WebAuthn の署名は、サービスが渡したチャレンジを含むデータに対して行われます1。Clavis では、このチャレンジを、プロダクトが渡した操作の内容のハッシュ(message_digest)から作ります。
つまり、二つの「内容」があります。
- 利用者が読んだもの。確認の画面の一行
- 署名が結び付くもの。操作の内容のハッシュ
この二つが食い違うと、利用者は「少額の確認」だと思って署名し、実際には高額の送金が通る、ということが起こりえます。
Clavis が署名に含めるもの
Clavis は、確認の画面で見せた一行を、署名に結び付けています。結び付けているのは、次の三つです。
- プロダクトの名前
- 確認済みのホスト(戻り先)
- 操作名
見せた一行をあとから差し替えた署名ファイルは、検証で合いません。利用者に何を見せたかは、あとから変えられません。
含めていないものもあります。画面の色やロゴ、文言の並べ方など、見た目そのものは署名に含まれません。署名が結び付くのは、見せた一行と、操作の内容のハッシュです。
プロダクトの責任になるところ
操作名と、ハッシュの元になる内容が正しく対応しているかは、Clavis には分かりません。「送金先の変更」という操作名で、別の操作の内容のハッシュを渡すこともできてしまいます。
この対応を保つのは、プロダクトの責任です。保つための方法は三つあります。
- 同じ規則から作る。確認の画面の文言と、ハッシュの元の内容を、同じデータから同じ規則で作ります。
- 確定の前に計算し直す。操作を確定する直前に、手元の内容からハッシュを計算し直し、署名のハッシュと一致することを確かめます。
- 内容を保存する。ハッシュの元の内容を、署名の記録と一緒に保存します。あとで何に署名したかを示すために要ります。
ブラウザが見せる場合
決済の分野には、ブラウザ自身が金額と受取人を見せ、その表示をそのまま署名に含める仕組みもあります2。サービスの画面を経ずに、ブラウザが見せたものに署名が結び付きます。
対応しているブラウザと決済の形はまだ限られています。多くの操作では、サービスの画面で見せたものと、署名の対象との対応を、サービスの側で保つことになります。
言い換えないこと
確認の画面の文言を「署名された内容」と呼ぶと、利用者にも相手方にも誤解を生みます。正確に言うと、こうなります。
- 署名が結び付くのは、操作の内容のハッシュと、見せた一行です。
- 見せた一行と操作の内容が正しく対応しているかは、プロダクトが保ちます。
次の一手
- パスキーの署名は、証拠として何になるか
- 署名の手順:依頼の登録から結果の受け取りまで
出典
- W3C Web Authentication Level 3 · 確かめた日 2026-10-10
- W3C Secure Payment Confirmation · 確かめた日 2026-10-10
奥付
- 版
- 第 1 版
- 公開
- 2026-10-12
- 署名
- 夏目.凛 · Passkey · 2026-10-12 05:05 JST · 署名ファイル · 原稿
- 刻印
- sha256 LxQtfWFaOjnCbLCFt_L5KRVbRbZPw2rPxy9JCZqu3yg
- 発行
- DeepDive, Inc.
署名が示すのは、この版に責任を持つ人と、署名のあとに原稿が改められていないことです。内容が正しいことは示しません。