1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

OAuth2.0におけるMix-Up攻撃とその対策方法

1
Last updated at Posted at 2026-03-20

Mix-Up攻撃の概要

OAuthにおけるMix-Up攻撃とは、Clientが複数のIdPに対応している際に起こり得る、IdPを混同させる攻撃で、
IdPの正当な認可コードが攻撃者のIdPに窃取されるという攻撃です。

攻撃の流れ

登場人物

  • ユーザー
  • Client
  • 攻撃者のIdP(攻IdP)
  • 正当なIdP(正IdP)

認可コードフローを前提とします。
ユーザーがIdPとして攻撃者のIdPを選択したとします。Clientはユーザーが攻IdPを使っていると認識します。
ユーザーが攻IdPに認可リクエストを送るときに、攻IdPはログイン画面を表示せずに正当なIdPへのリダイレクトを返します。
正IdPにリダイレクトされたユーザーが正IdPでログイン・認可手続きを完了します。このとき正IdPの認可コードとリダイレクトレスポンスが発行されます。
Clientは攻IdPを利用している認識なので、正IdPから受け取った認可コードを攻IdPのトークンエンドポイントへと送ってしまいます。

Mix-Up攻撃の防ぎ方

認可レスポンスにissパラメータを追加することによって防ぎます。
IdPサーバーは以下のレスポンスサンプルのように認可レスポンスにissパラメータを含めます。
クライアントはこの値を読み取り、通信先とissを比較することで通信中の認可エンドポイントと認可コード発行者が同一であるかを確認します。
以下の例では認可サーバーhttps://honest.as.exampleからの応答を示しています。

HTTP/1.1 302 Found
Location: https://client.example/cb?
 code=x1848ZT64p4IirMPT0R-X3141MFPTuBX-VFL_cvaplMH58
 &state=ZWVlNDBlYzA1NjdkMDNhYjg3ZjUxZjAyNGQzMTM2NzI
 &iss=https%3A%2F%2Fhonest.as.example

フロー図

issによる確認を入れることでフローの後半が改善され、攻撃者に認可コードが渡ることが防がれます。

まとめ

Mix-Up攻撃とは攻撃者がIdPを用意し、攻撃者のIdPと正当なIdPを混同させることで認可コードを窃取する攻撃です。
攻撃者は認可フローの途中で正当なIdPへリダイレクトさせ、最終的に発行された認可コードを攻撃者のIdPへ送らせることで認可コードを奪います。

対策として、認可レスポンスに含まれるissパラメータを検証し、認可コードの発行元と通信先が一致することを確認することで防ぐことができます。

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?