SC情報処理安全確保支援士試験 午後Ⅱ
令和5年度春期 情報処理安全確保支援士 午後Ⅱ 問4
事例を読んで設問の答えを考えてから、解説のポイントとIPA公式の解答例・採点講評で確認しましょう。
問題
解き方のヒントを見る
問04:PKCEで認可コードを盗まれても安全な理由をつかもう
この問題は、OAuth連携の空欄をただ埋める問題というより、「なぜアクセストークンを簡単に取られないのか」を `code`、`code_verifier`、`code_challenge` の関係で説明できるかを見ているよ。たとえるなら、`code` は引換券、`code_verifier` は本人だけが持っている合言葉、`code_challenge` はその合言葉を変換して先に預けておいた確認用データだよ。認可サーバは、あとから届いた `code_verifier` をハッシュ化して base64url エンコードし、先に登録されていた `code_challenge` と一致するかを確認する。だから、途中で `code` だけを盗んだ第三者は、正しい `code_verifier` を知らないのでアクセストークンと交換できないんだ。
この問題で問われていること
PKCEを名前だけで覚えるのではなく、`code_verifier` はクライアント側が保持し、`code_challenge` は事前に認可サーバへ渡され、トークン交換時に両者の対応関係を照合する、という流れを押さえよう。どの値を誰が持っていて、何を比べているのかを説明できることがポイントだよ。
Why PKCE Blocks Code Theft
PKCE works because stealing the authorization code is not enough; the attacker also needs the original code_verifier whose hashed and base64url-encoded value must match the stored challenge
attacker may steal code\nserver also requires code_verifier\nserver hashes verifier\nbase64url result must equal stored challenge
確認ポイント
- `code` と `code_verifier` を混同しない。
- 照合対象がハッシュ後値であると押さえる。
- 第三者が何を持っていないかを答える。
正解と解説を見る
解説
公式過去問です。問題冊子と解答例を参照して確認してください。
公式問題冊子
問題冊子: https://www.ipa.go.jp/shiken/mondai-kaiotu/ps6vr70000010d6y-att/2023r05h_sc_pm2_qs.pdf
公式解答例
解答例: https://www.ipa.go.jp/shiken/mondai-kaiotu/ps6vr70000010d6y-att/2023r05h_sc_pm2_ans.pdf
採点講評
採点講評: https://www.ipa.go.jp/shiken/mondai-kaiotu/ps6vr70000010d6y-att/2023r05h_sc_pm2_cmnt.pdf
学習のポイント
公式問題冊子、解答例、採点講評を併読して要点を整理してください。
出典:独立行政法人 情報処理推進機構(IPA)令和5年度春期 情報処理安全確保支援士試験 午後Ⅱ 問4(公式資料:問題冊子(PDF) / 解答例 / 採点講評)
関連する過去問一覧
IPA Advancedは非公式の学習サイトです。解説にはAIによる補助生成を含む場合があります。公式の問題冊子・解答例・採点講評を優先し、誤りは確認後に訂正します。運営・編集方針