株式会社ジオデータ開発 ロゴ
株式会社ジオデータ開発GEO DATA DEVELOPMENT Inc.

BANKING SECURITY / TRANSACTION AUTHORIZATION

トランザクション署名とは?ネットバンキングの振込先改ざんを防ぐ仕組み

ログインできたからといって、「いま送ろうとしている振込内容」が安全とは限りません。取引そのものを確認する技術を、家賃の振込を例に解説します。

1. ログインに成功していても、振込内容は変えられる?

毎月の家賃をネットバンキングで振り込む場面を想像してください。画面で「管理会社の口座」「80,000円」を入力し、普段どおり認証して送信します。ところがPCのブラウザ内で動作する不正なプログラムが、送信直前に振込先を攻撃者の口座へ置き換えていたらどうでしょう。

このように、ブラウザを介した操作・表示・送信内容に割り込む攻撃を MITB(Man-in-the-Browser) と呼びます。利用者が見た内容と、サーバが受け取った内容が一致しない可能性があります。もちろんMITB攻撃の挙動は実装によって異なり、必ずこの形を取るわけではありません。

利用者が振り込むつもりだった内容

宛先:管理会社の口座

金額:80,000円

改ざん後に送信される内容

宛先:攻撃者の口座

金額:80,000円

重要: HTTPSは通信経路を守りますが、端末内で改変されたデータが送信されること自体を防ぎません。「通信が暗号化されていること」と「利用者が意図した取引であること」は別の確認事項です。

2. トランザクション署名は「誰か」ではなく「何をするか」を結び付ける

トランザクション署名は、振込先口座番号や振込金額などの取引情報に結び付いた認証値を生成し、その取引が承認した内容と一致するか検証する仕組みです。実装により、専用ハードウェアトークン、別端末の認証アプリなどが使われます。

通常のログイン用ワンタイムパスワードは、主として「この利用者がログインを試みているか」を確かめます。一方、取引内容を組み込んだ認証値は「この宛先・この金額の振込を承認したか」を確かめる役割を担います。

01

振込内容を入力

例:家賃80,000円を管理会社の口座へ送る

02

信頼できる別画面で照合

専用トークンなどで振込先・金額を確認する

03

取引内容に結び付いた認証値を生成

振込先と金額などを入力にした認証値を作る

04

サーバが検証

受信した取引内容と認証値の組合せを確かめる

05

一致した取引だけ承認

途中で振込先などが変われば検証に失敗する

例えば専用トークンに振込先口座番号を入力して認証値を生成したとします。サーバへ届く振込先が別口座に変えられていれば、その認証値は改ざん後の取引内容と整合しません。サーバが検証に失敗した取引を拒否することで、不正送金の成立を防ぎます。

3. 「署名」という名前だが、実装はひとつではない

ここでの「署名」は、必ずしも公開鍵暗号によるデジタル署名だけを意味しません。実装によっては、秘密情報と取引内容から生成するMAC(メッセージ認証コード)などの方式もあります。大切なのは、認証値が特定の取引情報に結び付いていることです。

何を認証対象に含めるかも重要です。振込先を含めず金額だけを確認していれば、振込先の差し替えを検出できない可能性があります。口座番号、金額、通貨、取引識別子など、サービスが必要とする情報を一貫した形式で結び付ける必要があります。

4. 操作ラボ:振込先が変えられたらどうなる?

元の振込内容で取引認証値を発行し、その後で送信される振込先や金額を変更してみましょう。通常のワンタイムパスワードとの違いも切り替えられます。

INTERACTIVE LAB

振込内容の改ざんをシミュレーション

実際の銀行や暗号システムには接続しません。数字はすべて架空の例で、表示する認証コードも暗号学的な署名ではない学習用の簡易値です。

認証方法

① 利用者が意図した振込

ここを編集すると実験を最初からやり直します。

③ サーバへ届く振込内容

ここを変えると、途中でデータを書き換えられた状態を再現できます。

意図した振込との差:なし

※このラボは入力値の一致を使って考え方を再現しています。実運用では秘密鍵・鍵管理・暗号学的な認証値・有効期限・再利用防止・サーバ側の取引照合が必要です。

5. ログイン用OTPとトランザクション署名の違い

観点ログイン用OTP取引内容に結び付いた認証
主な対象ログイン操作振込先・金額など
振込先が変わった場合OTPだけでは検出できない対象情報に含めていれば検証失敗
利用者が確認するもの認証コードやログイン要求承認する具体的な取引内容

なお、スマートフォンへ届く確認通知でも、実際の振込先・金額を表示し、利用者がそれを確かめて承認する設計なら取引内容をひも付ける効果が期待できます。「別端末だから安全」ではなく、別端末で何を確認しているかが重要です。

6. 現実のシステムで設計するときの注意点

取引内容の署名も万能ではありません。利用者が偽の確認画面やソーシャルエンジニアリングによって誤った取引を承認してしまう場合や、独立端末も侵害される場合には、別の防御が必要です。不正検知、送金限度額、通知、端末保護と合わせて考えます。

まとめ:ログインの認証だけでは振込内容の安全は保証されない

トランザクション署名の考え方は、「本人が操作したか」から「本人がこの具体的な取引を承認したか」へ確認対象を広げることです。ネットバンキングだけでなく、高リスクな設定変更や重要な承認フローにも通じる設計原則です。