PKCE

名称

概要

攻撃手法

  1. 攻撃者が用意した不正なスマホアプリを誤ってインストールさせる
  2. 正規のスマホアプリからの認可リクエストに対する認可サーバからの認可レスポンスを不正アプリが受信して、認可コードを不正に入手する
    • 認可レスポンスがブラウザ経由でアプリに連携される際に、ブラウザは送り先のアプリをカスタムスキームとクライアントIDで判別する
    • 不正アプリは正規のアプリと同じカスタムスキームとクライアントIDを利用することで横取りが成立してしまうことがある

PKCE の仕組み(攻撃の対策方法)

使うもの

フロー

  1. スマホアプリでcode_challengeを生成する
    1. code_verifierを生成する
    2. code_verifierに対してcode_challenge_methodで指定された処理をしてcode_challengeを生成する
  2. スマホアプリが認可サーバに送る認可リクエストにcode_challengecode_challenge_methodを追加する
  3. 認可サーバはcode_challengecode_challenge_methodを保存する
  4. スマホアプリが認可サーバに送るトークンリクエストにcode_verifierを追加する
  5. 認可サーバはcode_verifierを検証する
    1. code_verifierに対してcode_challenge_methodで指定された処理をしてcode_challengeを生成する
    2. 生成したcode_challengeと保存していたcode_challengeが一致しているか確認する

関連用語

https://memo.mellowlife.org/image/new.png 新規


トップ   編集 凍結 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2023-03-25 (土) 20:16:14