戦国IT - 情報処理技術者試験の過去問対策サイト
お知らせお問い合わせ料金プラン

情報処理安全確保支援士 2022年 春期 午後202


クラウドサービスへの移行に関する次の記述を読んで、設問1~5に答えよ。

   X社は、従業員500名の情報サービス会社であり、5年前から動画投稿配信サービス(以下、動画サービスという)を提供している。動画サービスは、アカウント登録した会員が動画を投稿したり、投稿された動画を閲覧して評価したりすることができるサービスである。動画サービスは、Webサーバ(以下、動画サービスを提供するWebサーバをX社動画サーバという)を用いて提供されている。X社のシステム部は、X社のシステム全てを管理している。X社のシステム構成を図1に示す。
情報処理安全確保支援士試験(令和4年度 春期 午後2 問02 図01)
 XPCには、Webブラウザ、電子メール(以下、メールという)ソフト、GrW用クライアントソフトなどが導入されている。X社の従業員の認証は、認証サーバで行われており、XPC、GrWサーバ、FS、内部メールサーバへのシングルサインオン(以下、シングルサインオンをSSOという)を実現している。  X社のシステムでは、動画サービスの人気上昇による会員の増加に伴い、X社動画サーバの負荷が高くなっており、インターネット回線もひっ迫している。  X社の経営陣は、この問題への対策と併せて、セキュリティを強化するための抜本的な対策を検討するようシステム部に指示した。システム部のCさんが担当に指名され、セキュリティサービスを提供するW社から情報処理安全確保支援士(登録セキスペ)のF氏を招き、助言を受けることになった。   〔抜本的な対策の検討〕  F氏は、X社動画サーバをクラウドサービスへ移行し、さらに、Content Delivery Network(CDN)を利用する案を図2のように提案した。
情報処理安全確保支援士試験(令和4年度 春期 午後2 問02 図02)
 次は、図2の2についてのCさんとF氏の会話である。    Cさん:X社動画サーバでの動画配信にCDNを利用すると、どのように動画が配信されるようになりますか。  F氏:CDNでは、インターネット上にaサーバというサーバを分散配置して、動画配信を要求した端末に最も近いaサーバから動画を配信するようにします。aサーバは、動画配信を要求されたとき、要求された動画を保持していれば代理応答し、保持していなければ動画を保持しているX社動画サーバにアクセスして動画を取得し、応答します。多くの動画配信が代理応答されるので、X社動画サーバの負荷が軽減されます。  Cさん:その仕組みによって、b攻撃への耐性も向上しますね。X社動画サーバでの動画配信にCDNを利用するには、どのようにすればよいでしょうか。  F氏:例えば、M社が提供しているCDNを採用した場合の利用手順は図3のようになり、動画配信時の動作は図4のようになります。
情報処理安全確保支援士試験(令和4年度 春期 午後2 問02 図03)
情報処理安全確保支援士試験(令和4年度 春期 午後2 問02 図04)
 Cさん:理解しました。CDNを悪用する攻撃というのはあるのでしょうか。  F氏:X社動画サーバのCDN利用に関するものではありませんが、CDNを悪用する攻撃の一つにドメインフロンティング攻撃があります。X社内のインターネット利用者をFWとプロキシサーバで保護するセキュリティ対策では、注意が必要です。どのようにして攻撃が成功するか、その例を図5に示します。
情報処理安全確保支援士試験(令和4年度 春期 午後2 問02 図05)
 Cさん:何か対策はあるのでしょうか。  F氏:攻撃者サーバに割り当てられたIPアドレスを宛先とする通信をFWで拒否しても、Z-FQDNをプロキシサーバの拒否リストに登録しても、図5の(5)の通信は遮断できません。①Y-CDN-U-FQDN を名前解決したIPアドレスを宛先とする通信を FW で拒否すると、複数の Webサイトが閲覧できなくなる影響があります。通信内容を監視して遮断するなどセキュリティ強化を進めている CDN 事業者もありますが、進めていない事業者もあります。X社では、FW 又はプロキシサーバを、アウトバウンド通信の復号及び高機能な通信解析ができるものに替え、dと HTTP リクエスト中のc ヘッダの値が一致していることを検証して、一致していなければ遮断するという対策を検討してもよいでしょう。  Cさん:分かりました。    システム部は、X社動画サーバのクラウドサービスへの移行及び CDN の利用案について経営陣に報告した。この案は経営陣に承認され、X社動画サーバの移行が開始された。   〔他のサーバのクラウドサービスへの移行案〕  X社動画サーバの移行が完了し、CDN の利用も開始された。X社動画サーバに関する課題が解決されると、経営陣は、自社が保有する他のサーバについてもクラウドサービスへの移行を検討するようシステム部に指示した。システム部では、図6に示すクラウドサービスへの移行案を作成した。
情報処理安全確保支援士試験(令和4年度 春期 午後2 問02 図06)
〔SSOの現状〕  X社では、Kerberos認証でSSOが実現されている。XPC から GrW サーバにアクセスする場合の Kerberos認証の流れを図7 に、図7 中の各処理の概要を表1に示す。
情報処理安全確保支援士試験(令和4年度 春期 午後2 問02 図07)
情報処理安全確保支援士試験(令和4年度 春期 午後2 問02 表01)
 次は、図7についてのCさんとF氏の会話である。    Cさん:Kerberos認証に対する攻撃はあるのでしょうか。  F氏 :幾つかあります。二つ説明しましょう。一つ目は、TGT、STの偽造攻撃です。TGT又はSTが偽造されると、サーバが不正アクセスされて危険です。現在、TGTの偽造については、認証サーバ側での対策が進んでいます。一方、<u②STの偽造については、認証サーバ側で検知することができません。  Cさん:リスクがありますね。  F氏 :二つ目は、サーバ管理者アカウントのパスワードを解読して不正にログインする攻撃です。XPCからSTが奪取され、不正アクセスに悪用されても、不正アクセスされる範囲は限定されます。しかし、奪取されたSTに対してサーバ管理者アカウントのパスワードの総当たり攻撃が行われ、それが成功すると、当該サーバ管理者アカウントでアクセスできるサーバが乗っ取られてしまいます。この総当たり攻撃は、③サーバ側でログイン連続失敗時のアカウントロックを有効にしていても対策になりません。  Cさん:分かりました。   〔SaaSでのSSOの実現〕  Cさんは、GrW及びメールのSaaSへの移行後のSSOの実現方法をF氏に尋ねた。次は、その際のF氏とCさんの会話である。    F氏 :IDaaSの利用を提案します。多くのIDaaSでは、Kerberos認証ではなくSAML認証をサポートしています。SaaS側がSAML認証をサポートしていれば、SAML認証を用いたSSOが可能です。SAML認証の流れを図8に、図8中の各処理の概要を表2に示します。
情報処理安全確保支援士試験(令和4年度 春期 午後2 問02 図08)
情報処理安全確保支援士試験(令和4年度 春期 午後2 問02 表02)
 Cさん:事前の準備はありますか。  F氏 :IDaaSとSaaSとの間で事前に情報を共有しておく必要があります。事前に共有する情報は、SAMLアサーションで用いる属性、図8中の処理hで用いるURL、図8中の処理i及び処理jにおいて必要なデジタル証明書などがあります。    Cさんは、F氏の提案を受け、SAML認証をサポートしているIDaaSを調査した。同時に、GrWサービス及びメールサービスを提供し、かつ、SAML認証をサポートしているSaaSを調査した。調査の結果、G社のSaaSとIDaaS(以下、G社のGrWサービスをGrW-G、メールサービスをメール-G、IDaaSをIDaaS-Gという)に移行することを経営陣に提案した。この案は経営陣に承認され、GrW-G及びメール-Gへの移行並びにIDaaS-GでのSSOの準備が開始された。   〔従業員からの要望〕  GrW-G、メール-G及びIDaaS-Gへの移行及びSSOの準備が完了し、利用が開始された3か月後に、システム部は、X社の従業員に対して、GrW-G及びメール-Gについてのヒアリングを実施した。その回答に、GrW-Gでスケジュールを管理しているが、会議の主催者が会議日程の調整をもっと簡単にできるようにしてほしいという要望があった。Cさんは、S社が提供しているスケジュール調整サービス(以下、Sサービスという)を導入し、GrW-Gと連携させることで、その要望に応えることができると考えた。Sサービスの内容を表3に示す。
情報処理安全確保支援士試験(令和4年度 春期 午後2 問02 表03)
 Cさんは、Sサービスの導入検討を進める中で、Sサービス、GrW-G及びIDaaS-Gの間の連携についてF氏に相談した。次は、その際のF氏とCさんの会話である。
 F氏 :Sサービス、GrW-G及びIDaaS-Gは、OAuth 2.0をサポートしています。OAuth2.0を利用したサービス要求からスケジュール情報の取得までの流れは、図9のようになります。
情報処理安全確保支援士試験(令和4年度 春期 午後2 問02 図09)
 Cさん:セキュリティ対策について確認すべきことはありますか。  F氏 :二つあります。一つ目は、クロスサイトリクエストフォージェリ(以下、CSRFという)攻撃についてです。標的となる利用者が重要な秘密を扱う会議の主催者として日程を決定する場合を考えてみましょう。攻撃者は、GrW-Gに攻撃者のアカウントを登録し、当該GrW-Gにアクセスするための認可コードを利用者に送付します。そのときに、図9の実装にCSRF脆弱性があり、かつ、利用者のWebブラウザが攻撃者によって生成された認可コードを受け付けてしまう実装となっている場合、利用者が気付かないうちに攻撃者のアカウントで会議日程が登録されてしまいます。対策として、stateパラメタの実装が求められています。適切な実装であれば、図9中のoにおいて、stateパラメタを付与して送信し、図9中のpで送られてきたものと比較することで、攻撃を検知しているはずです。二つ目は、利用者がSサービスへのアクセスにSサービスのスマホアプリを使う場合についてです。Sサービスのスマホアプリをインストールしたスマートフォンに、攻撃者が用意した不正なスマホアプリをインストールしてしまうと、GrW-Gにアクセスするための認可コードを、攻撃者のスマホアプリが横取りしてしまうという攻撃があります。  Cさん:二つ目の攻撃への対策にはどのようなものがありますか。  F氏 :Sサービスのスマホアプリでランダムな検証コードとその値を基にしたチャレンジコードを作成して、そのチャレンジコードを認可要求に追加し、検証コードをトークン要求に追加します。二つのコードを検証することで、検証コードを知らない攻撃者からのトークン要求を排除できます。この仕組みは、qとして標準化されています。  Cさん:分かりました。   〔企画チームからの要望〕  Cさんは、企画チームから要望を受けた。要望は、T社が運営しているメッセージ投稿サイト(以下、T社投稿サイトという)とX社動画サーバとを連携させ、T社投稿サイトの認証サーバを用いた認証機能、及びT社投稿サイトの投稿サーバへの自動投稿機能をX社動画サーバに追加したいというものだった。この要望に対応することで、T社投稿サイトのアカウントをもつ動画サービスの会員は、T社投稿サイトにログインすればX社動画サーバも利用できる。また、X社動画サーバに動画を投稿すると、“動画の概要”がT社投稿サイトに自動で投稿されるようにもできる。Cさんは、T社投稿サイトとX社動画サーバの連携方法について、F氏に助言を求めた。次は、その際のF氏とCさんの会話である。    F氏 :OpenID Connect(以下、OIDCという)を用いれば、T社投稿サイトとX社動画サーバを連携できます。例えば、図10のような流れです。
情報処理安全確保支援士試験(令和4年度 春期 午後2 問02 図10)
 F氏:認可コードフローの場合、IDトークンは、図10中のuで送付されます。IDトークンは、JSON Web Token形式で表現され、ヘッダ、ペイロード、署名の三つの部分で構成されます。署名は、ヘッダとペイロードに対して、T社投稿サイトの認証サーバの秘密鍵を使って作成します。署名アルゴリズムは、ヘッダにおいて指定します。ヘッダ、ペイロード、署名は、それぞれvでエンコードされます。  Cさん:T社投稿サイトでのセキュリティ対策について確認することはありますか。  F氏:ハイブリッドフローを用いる場合、stateパラメタのほか、nonce値を実装しているかを確認すべきです。まず、nonce値を生成し、wに含めて送信します。次に、送られてきたxに含まれるnonce値を検証することで、攻撃者によるIDトークンの不正利用を防ぐことができます。  Cさん:分かりました。    システム部は、T社投稿サイトと動画サービスとを、OIDCで連携することに決め、X社動画サーバの改修に着手した。

設問1〔抜本的な対策の検討〕について、(1)〜(5)に答えよ。

(1)本文中のaに入れる適切な字句を、5字以内で答えよ。

模範解答

a:キャッシュ

解説

解答の論理構成

  • 【問題文】には、 「F氏:CDNでは、インターネット上にaサーバというサーバを分散配置して、動画配信を要求した端末に最も近いaサーバから動画を配信するようにします。aサーバは、動画配信を要求されたとき、要求された動画を保持していれば代理応答し…」
    と記載されています。
  • 「要求された動画を保持していれば代理応答する」という動きは、CDNがデータを一時保存(キャッシュ)し、元のサーバに取りに行かずに応答する仕組みと一致します。
  • CDNでコンテンツを保持して配信するサーバは一般に「キャッシュサーバ」と呼ばれ、CDN解説資料やRFCでも同義語として用いられています。
  • 以上から、a に入る語は「キャッシュ」と判断できます。

誤りやすいポイント

  • 「エッジサーバ」と誤答するケース
    ‐ CDN では確かに “エッジ” という言葉も使われますが、本文では「保持していれば代理応答」というキャッシュ機能を説明しており、より直接的に「キャッシュサーバ」を指しています。
  • 「プロキシサーバ」と混同するケース
    ‐ プロキシも代理応答しますが、本文は CDN 内部の動きを説明しており、プロキシよりもキャッシュサーバの語が一般的かつ適切です。

FAQ

Q: 「エッジサーバ」と「キャッシュサーバ」は違うのですか?
A: 用語の重なりはありますが、本問は“保持していれば代理応答”というキャッシュ機能を強調しています。したがって「キャッシュサーバ」と記述するのが最も妥当です。
Q: CDNを導入すると必ずキャッシュヒットしますか?
A: いいえ。初回アクセスなどでキャッシュにコンテンツが無い場合は、キャッシュサーバがオリジンサーバ(ここではX社動画サーバ)へ取りに行き、その後キャッシュとして保持します。
Q: キャッシュサーバがあるとDDoS耐性が上がるのはなぜですか?
A: 攻撃トラフィックがオリジンサーバへ集中する前に、分散したキャッシュサーバが吸収・緩和するためです。

関連キーワード: CDN, キャッシュ、代理応答、エッジ、分散配置

設問1〔抜本的な対策の検討〕について、(1)〜(5)に答えよ。

(2)本文中のbに入れる適切な字句を、英字5字以内で答えよ。

模範解答

b:DDoS

解説

解答の論理構成

  1. 【問題文】の会話で、Cさんが「その仕組みによって、b攻撃への耐性も向上しますね」と述べています。ここでの「その仕組み」とは、直前の F氏の説明にある「CDNでは、インターネット上にaサーバというサーバを分散配置して、動画配信を要求した端末に最も近いaサーバから動画を配信する」という CDN の分散キャッシュ機構です。
  2. CDN は、攻撃トラフィックが発生しても世界各地のノードで分散吸収し、オリジンサーバ(X社動画サーバ)に到達する前に遮断・緩和できます。この特性が強いのは「分散型サービス拒否(Distributed Denial of Service)」、すなわち “DDoS 攻撃” です。
  3. 上記より、b に当てはまる英字 5 字以内の語は「DDoS」であると導かれます。

誤りやすいポイント

  • DoS と DDoS の混同
    “DoS” は単一元からの攻撃でも該当しますが、CDN の効果が顕著なのは多数のボットから送られる “DDoS” です。文字数条件も「DDoS」が適合します。
  • CDN の効果を「CSRF や SQLi の防御」と誤解
    CDN は主にネットワーク負荷分散・キャッシュによる可用性向上策で、Web アプリケーション層の脆弱性攻撃に直接対処するものではありません。
  • “DNS キャッシュポイズニング” や “MITM” と取り違える
    文脈は「負荷が高い」「可用性向上」というキーワードで、可用性を奪う典型的攻撃=DDoS と結び付けるのがポイントです。

FAQ

Q: CDN を導入すればすべての DDoS を完全に防げますか?
A: いいえ。大規模かつ巧妙な攻撃では CDN の許容帯域を超える恐れがあります。オリジン側の FW/IPS 連携やレート制限など多層防御が必要です。
Q: DoS と DDoS の本質的な違いは何ですか?
A: 攻撃元が単一か複数かです。多数のボット機器から同時に発生する DDoS はトラフィック量が桁違いに大きく、分散型ネットワークで対策を施す CDN が有効になります。
Q: CDN が L7(HTTP/HTTPS)以外の攻撃にも効きますか?
A: 多くの CDN は L3/L4 の UDP Flood や SYN Flood も吸収する設計ですが、対応範囲は事業者ごとに異なります。契約前に保護対象プロトコルを確認しましょう。

関連キーワード: CDN, DDoS, キャッシュ、オリジンサーバ、負荷分散

設問1〔抜本的な対策の検討〕について、(1)〜(5)に答えよ。

(3)図4中、図5中及び本文中のcに入れる適切な字句を、英字5字以内で答えよ。

模範解答

c:Host

解説

解答の論理構成

  1. 図4(4)の記述を確認します。
    “TLSの接続先サーバ名にはRFC 6066に基づいて、HTTPリクエストのcヘッダにはRFC 7230に基づいて、X-FQDNが指定される。”
  2. RFC 7230 は HTTP/1.1 のメッセージ構文・ルーティングを定義しており、この RFC で “必須” と位置付けられているのが Host ヘッダです。Host ヘッダにはアクセス先 FQDN が入り、仮想ホストの識別やリクエストの転送先決定に使われます。
  3. 図5(4) でも
    “当該マルウェアは、HTTPリクエストを送信する際、cヘッダにZ-FQDNを指定する。”
    とあり、Host ヘッダを偽装することで CDN が誤転送する “ドメインフロンティング攻撃” の解説になっています。
  4. 以上より、c に入る語は RFC 7230 で規定され、FQDN を示すヘッダフィールド “Host” が妥当です。

誤りやすいポイント

  • “SNI” と混同する
    TLS の拡張 “Server Name Indication” は RFC 6066 に基づき “接続先サーバ名” を示しますが、HTTP ヘッダではありません。
  • “Origin” や “Referer” と取り違える
    いずれも RFC に登場しますが、リクエスト URL の生成元を示すヘッダであり、転送先 FQDN を示す用途ではありません。
  • 大文字小文字の表記ゆれ
    HTTP ヘッダ名は慣例的に “Host” と先頭のみ大文字で書くため、全部小文字などにして減点されるケースがあります。

FAQ

Q: Host ヘッダは必ず送らなければいけないのですか?
A: RFC 7230 では HTTP/1.1 以降、Host ヘッダはリクエストに“必須”と規定されています。省略するとサーバは 400 Bad Request を返すのが推奨動作です。
Q: RFC 6066 の SNI と Host ヘッダが一致しないと何が起きますか?
A: 図5 のように “ドメインフロンティング攻撃” が成立し、TLS で接続した先とは別の FQDN へ HTTP リクエストが転送される恐れがあります。
Q: CDN 利用時に Host ヘッダを検査するメリットは?
A: “接続先 IP” と “Host ヘッダの FQDN” が整合しているかを境界装置で検証すると、ドメインフロンティングを含む不正転送の検出・遮断に繋がります。

関連キーワード: HTTP/1.1, RFC 7230, Hostヘッダ、CDN, ドメインフロンティング

設問1〔抜本的な対策の検討〕について、(1)〜(5)に答えよ。

(4)本文中の下線①について、Y-CDN-U-FQDNを名前解決したIPアドレスを宛先とする通信をFWで拒否した場合に閲覧できなくなるWebサイトの範囲を、60字以内で具体的に述べよ。

模範解答

Y-CDN-U-FQDNを名前解決したIPアドレスと同じIPアドレスをもつWebサイト

解説

解答の論理構成

  1. 下線部①には「Y-CDN-U-FQDN を名前解決した IP アドレスを宛先とする通信を FW で拒否すると、複数の Web サイトが閲覧できなくなる影響があります」と記載されています。
  2. 前段で「あるCDN(以下、CDN-Uという)が、X社内から頻繁にアクセスする他社のWebサイトの複数で利用されている」とあり、同一 CDN のエッジサーバを多数の Web サイトが共有していることが示唆されています。
  3. CDN では 1 台のエッジサーバ(ひとつの IP アドレス)が、ホストヘッダや SNI によって複数の FQDN を“バーチャルホスト”として処理します。
  4. したがって、その IP アドレスをファイアウォールで遮断すると、同じ IP 上に載っているすべての Web サイトへの通信が一律に拒否される結論になります。
  5. 以上より、閲覧不能になる範囲は「Y-CDN-U-FQDN を名前解決した IP アドレスと同じ IP アドレスをもつ Web サイト」となります。

誤りやすいポイント

  • 「Y-FQDN」のみ影響すると早合点し、CDN 共有 IP の存在を見落とす。
  • “同じ FQDN”ではなく“同じ IP”で判定している点を読み落とす。
  • 「FW で FQDN をブロック」と誤読し、拒否対象を IP アドレスではなくドメイン名だと思い込む。
  • CDN が必ず専用 IP を割り当てると誤解し、影響範囲を過小評価する。

FAQ

Q: IP ではなく FQDN を拒否すれば問題は起きませんか?
A: ドメインフロンティングでは SNI と Host ヘッダが不一致になるため、FQDN だけを拒否しても CDN 内部で別サイトへ転送され、通信を遮断しきれません。
Q: CDN がサイトごとにユニーク IP を割り当てるケースはありますか?
A: ありますが一般的ではなく、コスト効率のため多くのサイトが同一 IP を共有します。本設問はその前提で出題されています。
Q: WAF やプロキシでヘッダ検証を入れれば IP を遮断しなくてもよいですか?
A: 正しい実装なら SNI と Host ヘッダの一致確認でドメインフロンティングを検知できますが、そのためには「アウトバウンド通信の復号及び高機能な通信解析」が可能な機器を導入・運用する必要があります。

関連キーワード: CDN, FQDN, IPアドレス、ファイアウォール、ドメインフロンティング

設問1〔抜本的な対策の検討〕について、(1)〜(5)に答えよ。

(5)本文中のdに入れる適切な字句を、20字以内で答えよ。

模範解答

d:TLSの接続先サーバ名

解説

解答の論理構成

  1. 問題文では、ドメインフロンティング攻撃への対策として
    「FW 又はプロキシサーバを、アウトバウンド通信の復号及び高機能な通信解析ができるものに替え、dと HTTP リクエスト中のc ヘッダの値が一致していることを検証して、一致していなければ遮断する」という方針を示しています。
  2. 直前の図4には
    「TLSの接続先サーバ名にはRFC 6066に基づいて、HTTPリクエストのcヘッダにはRFC 7230に基づいて、X-FQDNが指定される」
    とあり、ここで c が HTTP Host ヘッダであることがわかります。
  3. ドメインフロンティングは、TLS ハンドシェイク中に送る SNI(Server Name Indication:TLSの接続先サーバ名)と、暗号化後に送る Host ヘッダの値を意図的に食い違わせる手口です。
  4. よって、検証対象である d は「TLS ハンドシェイクで示された接続先サーバ名」、すなわち「TLSの接続先サーバ名」となります。

誤りやすいポイント

  • d を「SNI」や「サーバ証明書のCN」など英語略称で書いてしまう。問題文は「TLSの接続先サーバ名」と日本語で表現しているため、そのまま引用する必要があります。
  • Host ヘッダと比較する対象を「IPアドレス」と誤解するケース。ドメインフロンティングは SNI と Host の不一致を利用する攻撃です。
  • 図4の記述を読み落とし、c が Host ヘッダであると気付かないまま解答を組み立ててしまう。

FAQ

Q: Host ヘッダと一致させる「TLSの接続先サーバ名」とは具体的に何ですか?
A: TLS ハンドシェイクの ClientHello で送信される SNI(Server Name Indication)の値です。ここに本来アクセスしたい FQDN を載せます。
Q: なぜ SNI と Host ヘッダを照合するとドメインフロンティングを防げるのですか?
A: 攻撃者は SNI に正規サイト、Host ヘッダに悪意サーバを設定して暗号化トンネルを確立します。不一致を検知して遮断すれば、この転送を阻止できます。
Q: SNI が暗号化される TLS 1.3 以降でも同じ対策は有効ですか?
A: 現状の TLS 1.3 では SNI は依然平文で送信されるため、本対策は引き続き有効です。Encrypted Client Hello(ECH)が導入された場合は追加検討が必要です。

関連キーワード: TLS, SNI, Hostヘッダ、ドメインフロンティング、CDN

設問2〔SSOの現状〕について、(1)、(2)に答えよ。

(1)本文中の下線②について、認証サーバ側では検知することができない理由を、30字以内で述べよ。

模範解答

STは認証サーバに送られないから

解説

解答の論理構成

  1. 図7のシーケンスでは、認証サーバが「ST²)」を発行した後、 「XPC → GrWサーバ ラベル:ST」とあり、STは直接サービス提供サーバ(GrWサーバ)へ送られます。
  2. 表1の処理3も、「STを復号して検証し、問題なければ、アクセスを許可する。」と示し、STの検証主体はGrWサーバであることを明示しています。
  3. 一方、認証サーバ側にはSTが再送信される経路がなく、本文中でF氏が
    「②STの偽造については、認証サーバ側で検知することができません」
    と指摘しています。
  4. 以上より、STは発行後に認証サーバへ戻らないため、不正なSTであっても認証サーバは観測・検証できません。
  5. よって解答は「STは認証サーバに送られないから」となります。

誤りやすいポイント

  • TGTとSTの役割を混同し、どちらがどのサーバに提示されるかを取り違える。
  • 「認証サーバがSTを作る=常に検証もできる」と早合点し、通信経路を確認しない。
  • 図7の矢印を見落とし、「XPC→認証サーバにSTが再送される」と誤読する。

FAQ

Q: 認証サーバがSTを検証できるようにする方法はありますか?
A: チケット提示時にオンライン検証を行うプロトコル拡張を導入するか、STに短い有効期限を設定し偽造リスクを下げる方法があります。
Q: TGT偽造は認証サーバで検知可能とあるが、仕組みは?
A: TGTは認証サーバ自身の鍵で暗号化されているため、提示されたTGTを復号できない場合に偽造を検知できます。
Q: STが偽造される主な原因は?
A: サーバ管理者アカウントのパスワードハッシュが漏えいし、チケット暗号鍵が推測・流用されるケースが典型です。

関連キーワード: Kerberos, チケット、TGT, ST, シングルサインオン

設問2〔SSOの現状〕について、(1)、(2)に答えよ。

(2)本文中の下線③について、対策にならない理由を、35字以内で述べよ。

模範解答

総当たり攻撃はオフラインで行われ、ログインに失敗しないから

解説

解答の論理構成

  1. 問題文は、攻撃者が「奪取されたST」に対して「サーバ管理者アカウントのパスワードの総当たり攻撃」を行うと述べています。
    ――【問題文引用】「奪取されたSTに対してサーバ管理者アカウントのパスワードの総当たり攻撃が行われ…」
  2. この攻撃は ST を入手した攻撃者の端末上で実施できるため、認証サーバへログイン試行を送信する必要がありません。
    ⇒ 失敗回数はサーバに記録されず、アカウントロック機能が発動しません。
  3. したがって、「サーバ側でログイン連続失敗時のアカウントロック」を有効にしていても無意味である、という③の指摘になります。
    ――【問題文引用】「③サーバ側でログイン連続失敗時のアカウントロックを有効にしていても対策になりません」

誤りやすいポイント

  • 「総当たり=ログイン繰返し」と早合点し、オンライン攻撃だと思い込む。
    実際は ST を解析するオフライン攻撃。
  • アカウントロックを“万能”と誤解し、ソースを問わず適用できると考えがち。
  • Kerberos の ST が暗号化済みであることを理由に“総当たりは困難”と判断し、リスクを過小評価。

FAQ

Q: オフライン総当たり攻撃とは具体的に何を指しますか?
A: 取得済みの暗号化データ(ここでは ST)に対し、ネットワークを介さず手元でパスワード候補を次々試す手法です。
Q: ST が暗号化されているのに、なぜパスワードが解読できるのですか?
A: ST は「サーバ管理者アカウントのパスワードハッシュ値を鍵として暗号化」されています。攻撃者はハッシュ衝突が起きるまで候補を生成し、復号結果の妥当性で正解を判定します。
Q: 有効な対策はありますか?
A: パスワードを長く複雑にするとともに、Kerberos 以外の多要素認証やパスワードレス方式を導入して総当たり自体を無意味化することが効果的です。

関連キーワード: オフライン攻撃、総当たり、アカウントロック、Kerberos

設問3〔SaaSでのSSOの実現〕について(1)〜(4)に答えよ。

(1)表2中のeに入れる適切な字句を解答群の中から選び、記号で答えよ。
解答群  ア:cookie  イ:HTML  ウ:クエリ文字列  エ:ボディ  オ:リファラ

模範解答

e:ウ

解説

解答の論理構成

  1. 【問題文】の該当部分
    ― 表2 処理2
    「図8中の(3)の HTTP リクエスト中の e から SAML Request を取得する。」
  2. 図8の(3)は、XPC → IDaaS 方向の「SAML Request を含む HTTP リクエスト」です。
    このリクエストは、処理1で「エンコード結果と IDaaS のログイン画面の URL を組み合わせて、リダイレクト先 URL を生成」しているため、SAML Request はリダイレクト先 URL に含まれます。
  3. HTTP において URL 末尾の「?name=value」の形で付加される部分をクエリ文字列と呼びます。ここに SAMLRequest=... が格納されるのが標準的な HTTP Redirect Binding の仕様です。
  4. よって e に当てはまるのは「ウ:クエリ文字列」です。

誤りやすいポイント

  • cookie を選ぶと、ブラウザがサーバへ自動送信するヘッダ領域と混同していることになります。SAML Request は URL に直接載るため cookie ではありません。
  • ボディを選ぶと、HTTP POST Binding と勘違いしたことになります。本問は Redirect(GET)Binding の流れです。
  • リファラを選ぶと、参照元 URL を示すだけであり、SAML Request を格納する用途ではない点を見落としていることになります。

FAQ

Q: SAML では常に Redirect でクエリ文字列を使うのですか?
A: いいえ。HTTP POST Binding ではボディ(フォーム)に SAMLRequest/SAMLResponse を入れます。問題文の流れが Redirect であることを確認してください。
Q: クエリ文字列に機密情報を入れるのは安全ですか?
A: 短命で暗号化(Base64 + Deflate など)されてはいますが、URL がログに残る可能性があります。HTTPS で保護し、必要に応じて POST Binding を選択する設計も重要です。
Q: クエリ文字列が長すぎる場合はどうなりますか?
A: ブラウザやサーバの URL 長制限に抵触することがあります。その場合も POST Binding への切り替えが推奨されます。

関連キーワード: SAML, HTTP Redirect, クエリパラメータ、SSO, IDaaS

設問3〔SaaSでのSSOの実現〕について(1)〜(4)に答えよ。

(2)表2中のfに入れる適切な字句を解答群の中から選び、記号で答えよ。
解答群  ア:IDaaS  イ:SaaS  ウ:XPC

模範解答

f:ア

解説

解答の論理構成

  1. 役割の確認
    • 【問題文】には「IDaaSの利用を提案します。多くのIDaaSでは…SAML認証をサポートしています。」とあり、IDaaSが SAML 認証の IdP(Identity Provider)であることが明示されています。
  2. 署名者は IdP
    • SAML では、IdP が生成する SAML Response/アサーションに自らの秘密鍵でデジタル署名を付与し、SP(ここでは SaaS)が受信後にその署名を検証するのが基本仕様です。
  3. 表2の文脈に当てはめる
    • 表2の処理4には「SAML Response に含まれるデジタル署名を検証することで、デジタル署名が f のものであること…を確認する。」と記載されています。
    • SaaS が検証する相手は、自身ではなく署名を付けた側、つまり IdP=IDaaS です。
  4. 解答選択
    • 解答群「ア:IDaaS」「イ:SaaS」「ウ:XPC」より、署名者である IDaaS が正答です。

誤りやすいポイント

  • 「SaaS がサービス提供側だから署名者も SaaS」と誤解しやすい。実際には SaaS は署名“検証”側です。
  • 「クライアント(XPC)から送られてくるので XPC が署名者」と考えてしまうミス。SAML Response は IdP から発行されるため、クライアントは署名を付けません。
  • Kerberos のチケット発行者=認証サーバという発想をそのまま SAML に当てはめられず、混乱しやすい。

FAQ

Q: SaaS が署名してはダメなのですか?
A: ダメではありませんが、SAML の標準フローでは IdP が署名し、SP(SaaS)は署名を検証して利用者を認証します。SaaS が自署名しても信頼連鎖が成り立ちません。
Q: 署名が IDaaS 以外のものだった場合、どのようなリスクがありますか?
A: 偽の IdP からの SAML Response を SaaS が受け入れてしまい、なりすましによる不正アクセスや権限昇格が発生する恐れがあります。
Q: 署名検証には何を使いますか?
A: 事前に IDaaS から共有された公開鍵証明書を用いて署名を検証し、真正性と改ざん有無を確認します。

関連キーワード: SAML, IdP, SP, デジタル署名、公開鍵暗号

設問3〔SaaSでのSSOの実現〕について(1)〜(4)に答えよ。

(3)表2中のgに入れる適切な字句を、5字以内で答えよ。

模範解答

g:偽造

解説

解答の論理構成

  1. 【問題文】表2の処理4では
    「SAML Response に含まれるデジタル署名を検証することで、デジタル署名が f のものであること、及び SAML アサーションの g がないことを確認する。」
    と明記されています。
  2. ここで行う検証は、 • デジタル署名の正当性確認
    • アサーションが改変されていないかの確認
    という 2 点です。改変を表す用語として最も適切なのが「偽造」です。
  3. SAML アサーションは利用者の認証結果を示す重要なデータです。万一「偽造」されると、なりすましが成立し、SSO 全体の信頼性が失われます。
  4. したがって「SAML アサーションの偽造がないことを確認する」という文章が成立し、g には『偽造』が入ります。

誤りやすいポイント

  • 「改ざん」「改変」など類義語を入れてしまう
    → 原文では“アサーションの○○がない”と否定形で述べており、「偽造がない」という表現が自然です。
  • 署名検証=完全性確認とだけ考え、「欠落」「変更」などを選ぶ
    → 署名が正しくても攻撃者が自前で署名し直した場合は“偽造”にあたります。
  • SAML の知識不足で認証・認可を混同し、「漏えい」や「重複」など的外れな単語を選ぶ。

FAQ

Q: なぜ「改ざん」ではなく「偽造」なのですか?
A: デジタル署名を持つデータを攻撃者が作り直して正しい署名を付ければ、それは“改ざん”ではなく“偽造”された新規生成物です。表現としては「偽造がないこと」が最も的確です。
Q: 署名を検証すれば偽造も検知できるのでは?
A: 署名が正規発行元の鍵で作成されていることを検証しつつ、アサーション本文と署名の整合性も確認することで偽造(不正生成)を防ぎます。本文だけを見ても署名だけを見ても不十分です。
Q: SAML アサーションの偽造対策以外に注意すべき点は?
A: 有効期限・発行者・送信先のチェックも行い、リプレイ攻撃や別サービスでの不正利用を防止する必要があります。

関連キーワード: SAML, デジタル署名、アサーション、完全性検証、なりすまし

設問3〔SaaSでのSSOの実現〕について(1)〜(4)に答えよ。

(4)本文中のhiに入れる適切な数字を、それぞれ答えよ(iとjは順不同)。

模範解答

h:1 i:3 j:4

解説

解答の論理構成

  1. 【問題文】には、事前に共有すべき情報として
    「SAMLアサーションで用いる属性、図8中の処理hで用いるURL、図8中の処理i及び処理jにおいて必要なデジタル証明書」
    とある。
  2. 表2「図8中の各処理の概要」を確認すると、
    • 処理1:
      「IDaaSに認証を要求する SAML Request を生成し…IDaaS のログイン画面の URL を組み合わせて、リダイレクト先 URL を生成する。」
      URL が直接登場するのは 処理1。したがって h=1
    • 処理3:
      「…SAML アサーションと、それに対するデジタル署名を含めた SAML Response の送信フォームを生成する。」
      署名生成には公開鍵証明書が必須。よってデジタル証明書が必要となるのは 処理3
    • 処理4:
      「SAML Response に含まれるデジタル署名を検証することで…」
      署名検証にも公開鍵証明書が必要。したがって 処理4 でも証明書を用いる。
  3. 以上より、 ・URL を用いる処理 → 1
    ・証明書を用いる処理 → 3 と 4
    が導かれ、【模範解答】の
    h:1/i:3/j:4
    が妥当であると確認できる。

誤りやすいポイント

  • 表2を流れ図の順番(1→2→3→4)と結び付けず、メッセージ番号(図8の(1)〜(8))と混同してしまう。
  • 「証明書=検証だけ」と思い込み、署名“生成”側(処理3)での証明書の必要性を見落とす。
  • 処理1の説明文にある「URL」を見逃し、h に 2 を入れてしまうミス。

FAQ

Q: 処理2では証明書は不要なのですか?
A: 処理2は IDaaS が受け取った SAML Request を「信頼関係が構築された SaaS からの要求か」を確認するだけで、署名検証や生成は伴わないため証明書は不要です。
Q: SaaS 側(処理1)が生成する URL はどこで使われますか?
A: 生成されたリダイレクト先 URL は、利用者のブラウザを IDaaS のログイン画面へ誘導するために図8の(2)で用いられます。
Q: 処理3と処理4で同じ証明書を共有してよいのですか?
A: 一般に IDaaS が公開鍵証明書を公開し SaaS が取得して検証する形を取ります。同一の公開鍵証明書を前提にしていれば問題ありません。

関連キーワード: SAML, デジタル署名、公開鍵証明書、リダイレクト、シングルサインオン

設問4〔従業員からの要望〕について、(1)〜(4)に答えよ。

(1)図9中のkmに入れる適切な字句を解答群の中から選び記号で答えよ。
解答群  ア:GrW-G  イ:IDaaS-G  ウ:Sサービス

模範解答

k:ウ l:イ m:ア

解説

解答の論理構成

  1. 図9の前提
    【問題文】では、F氏が「Sサービス、GrW-G及びIDaaS-Gは、OAuth 2.0をサポートしています。」と説明し、さらに「OAuth 2.0を利用したサービス要求からスケジュール情報の取得までの流れは、図9のようになります。」と述べています。
    したがって、図9の3本のライフライン km は、Sサービス・IDaaS-G・GrW-G のいずれかに対応すると分かります。
  2. 流れ(1)・(2)に注目
    図9で「(1) サービス要求」を受け取るのは k です。利用者が最初にアクセスするのは日程調整を行う「Sサービス」です。
    また、表3の利用手順(1) でも「主催者は、Sサービスにアクセスする。」と明記されています。
    よって k = 「Sサービス」 ⇒ 解答群「ウ」に該当します。
  3. 流れ(3)〜(8)に注目
    認可コードの発行やトークン応答を行うのは OAuth 2.0 の認可サーバ/トークンエンドポイントです。X社環境でこの役割を担うのは IDaaS-G です。
    図9で認可要求(3)を受け、トークン応答(8)を返すのが l であるため、l = 「IDaaS-G」 ⇒ 解答群「イ」と判断できます。
  4. 流れ(9)・(10)に注目
    アクセストークンで保護リソース(スケジュール情報)を提供するのは GrW-G です。図9で「(9) 利用者情報の問合せ」を受ける m がこの役割に対応します。
    したがって m = 「GrW-G」 ⇒ 解答群「ア」に該当します。
  5. 結論
    k=ウ:「Sサービス」
    l=イ:「IDaaS-G」
    m=ア:「GrW-G」

誤りやすいポイント

  • Sサービスを「リソースサーバ」と勘違いし、m にしてしまう。実際には Sサービスはクライアント(依頼元)でありリソースを持たない。
  • IDaaS-G と GrW-G の役割を逆に読む。トークン発行は IDaaS-G、スケジュール提供は GrW-G である。
  • OAuth 2.0 の一般的な図を暗記していても、問題固有の名称と正しく対応付けないと取り違える。

FAQ

Q: Sサービスが「クライアント」と判断できる決定的根拠は?
A: 【問題文】「Sサービスは、GrW-Gから主催者のスケジュールを取得し、空き時間を表示する。」とあり、他サービスの資源を“取得する側”であるため OAuth 2.0 のクライアントに該当します。
Q: GrW-G が「リソースサーバ」である理由は?
A: スケジュールという保護リソースを格納し、アクセストークンでその提供可否を判断する側だからです。図9の(9)(10)も「利用者情報の問合せ/応答」として描かれています。
Q: IDaaS-G の位置付けは?
A: OAuth 2.0 でいう認可サーバ兼トークンエンドポイントです。認可コードの発行とアクセストークンの発行を担当しています。

関連キーワード: OAuth 2.0, アクセストークン、認可コード、リソースサーバ、クライアント

設問4〔従業員からの要望〕について、(1)〜(4)に答えよ。

(2)図9中のnに入れる適切な流れを解答群の中から選び、記号で答えよ。 情報処理安全確保支援士試験(令和4年 春期 午後2 問2 設問04-02)

模範解答

n:エ

解説

解答の論理構成

  1. 役割の整理
    • 図9の(1)~(8)を見ると、 ・(1)「サービス要求」を受け取る kSサービス(クライアント)
      ・(3)「認可要求」を受け取り、(7)(8) で「トークン要求/応答」を行う lIDaaS-G(認可サーバ)
      ・(9)(10)「利用者情報の問合せ/利用者情報」を返す mGrW-G(リソースサーバ)
      であることが読み取れます。
  2. スケジュール取得処理の一般モデル
    OAuth 2.0では、クライアントがアクセストークンを用いてリソースサーバに API 要求を送るか、認可サーバがゲートウェイとなってリソースサーバを呼び出す2通りがあります。
    X社の構成は「認可サーバ=IDaaS-Gが API ゲートウェイも兼ねる」方式で、次のような流れになります。
    (11) Sサービスは、取得したアクセストークンを添えて IDaaS-G(l) に「スケジュール取得要求」を送信
    (11)ʼ IDaaS-G はトークンを検証したうえで GrW-G(m) に API 呼び出し
    (12) GrW-G から返されたスケジュール情報を IDaaS-G → Sサービス へ転送
  3. 解答群の照合
    行エは
    ・「スイムレーン l → m に向かう矢印『(11) スケジュール取得要求』」
    ・「スイムレーン k ← l 間に向かう矢印『(12) スケジュール情報』」
    と記述されており、上記のゲートウェイ方式と一致します。
    したがって図9中 n の正しい流れは 行エ です。

誤りやすいポイント

  • 「アクセストークンを受け取ったクライアントが必ず直接リソースサーバへアクセスする」と早合点し、行ウ(k→l→k)を選んでしまう。今回は IDaaS-G が API ゲートウェイを兼ねるため、最初に l が動きます。
  • lm の役割を逆に読み取るミス。トークンエンドポイントを提供するのが IDaaS-G である点を手掛かりに確認する必要があります。
  • 行ア・行イはレスポンスの戻り先が「利用者端末」になっており、Sサービス(k) を経由しないためシーケンス全体と整合しません。

FAQ

Q: なぜ IDaaS-G がわざわざ GrW-G に問い合せる構成にしたのですか?
A: トークン検証・API 仕様変換・アクセス制御を IDaaS-G 側で一元管理できるため、クライアント数が増えてもセキュリティ設定を集中管理できます。
Q: Sサービスが直接 GrW-G にアクセスしてはいけないのでしょうか?
A: 技術的には可能ですが、その場合クライアントごとに証明書や API 仕様の更新への追随が必要になります。今回は運用負荷軽減とセキュリティ強化の観点でゲートウェイ方式が採られています。
Q: 行ア・行イが不正解になる理由をもう一度教えてください。
A: これらの行ではスケジュール情報が「利用者端末」へ直接返っています。しかし図9の基本設計では、最終的なサービス提供は k(Sサービス)が行うため、レスポンスは Sサービスに返る必要があります。

関連キーワード: OAuth 2.0, アクセストークン、APIゲートウェイ、スケジュールAPI

設問4〔従業員からの要望〕について、(1)〜(4)に答えよ。

(3)本文中のopに入れる適切な通信を図9中の(1)〜(10)から選び、番号で答えよ。

模範解答

o:(2) p:(6)

解説

解答の論理構成

  1. 問題文には
    「適切な実装であれば、図9中のoにおいて、stateパラメタを付与して送信し、図9中のpで送られてきたものと比較することで、攻撃を検知しているはずです。」
    とある。
  2. state パラメタは OAuth 2.0 の認可“要求”時に付与し、認可“応答”で戻ってきた値と比較することで CSRF を検知するのが標準的な手順である。
  3. 図9を見ると、認可要求を含む URL をブラウザに返す「(2) リダイレクト」が最初の“送信”に該当し、ここで state を付加する。
  4. 認可サーバでの処理後、ブラウザ経由でクライアントに戻るのは「(5) リダイレクト」→「(6) 認可コード」である。図9では state を検証できるのはクライアントにコードが届く「(6) 認可コード」のタイミングである。
  5. 以上より、 • o=図9中の「(2) リダイレクト」
    p=図9中の「(6) 認可コード」
    となる。

誤りやすいポイント

  • 「state を付けるのは認可要求だから (3)」と決めつけるミス
    図9では (3) はユーザ端末→認可サーバの通信であり、問題文が求める“付与して送信”主体はクライアント (k) なので (2) が正解。
  • 「state を受け取るのはリダイレクトだから (5)」と誤判断
    (5) はブラウザが受け取る段階。クライアントが比較できるのは (6) でブラウザからクライアントへ届く時点。
  • CSRF と XSS を混同し、nonce パラメタの概念と取り違えるミス

FAQ

Q: state は必ずしも必須項目ですか?
A: RFC 6749 では「強く推奨」されています。CSRF を防止するため、実運用では必須と考えるべきです。
Q: (2) と (3) の違いが分かりにくいのですが?
A: (2) はクライアント(k)がブラウザに返す HTTP 302 などのリダイレクト。URL には認可エンドポイント・client_id・redirect_uri・state 等が含まれます。(3) はブラウザがその URL にアクセスして認可サーバ(l)に認可要求を送る通信です。
Q: state 検証に失敗したらどうなりますか?
A: クライアントはコード交換処理を中止し、エラー画面を表示するなどして認可フローを打ち切ります。

関連キーワード: OAuth 2.0, CSRF, リダイレクト、stateパラメタ、認可コード

設問4〔従業員からの要望〕について、(1)〜(4)に答えよ。

(4)本文中のqに入れる適切な字句を解答群の中から選び、記号で答えよ。
解答群  ア:ASLR(Address Space Layout Randomization)  イ:EIAM(Enterprise Identity and Access Management)  ウ:PKCE(Proof Key for Code Exchange)  エ:SCIM(System for Cross-domain Identity Management)

模範解答

q:ウ

解説

解答の論理構成

  1. 問題文では、スマホアプリ経由で認可コードが奪取される恐れがあるための対策として次の記述があります。
    ――引用――
    「Sサービスのスマホアプリでランダムな検証コードとその値を基にしたチャレンジコードを作成して、そのチャレンジコードを認可要求に追加し、検証コードをトークン要求に追加します。二つのコードを検証することで、検証コードを知らない攻撃者からのトークン要求を排除できます。この仕組みは、qとして標準化されています。」
    ――ここまで――
  2. ランダムな“検証コード(code verifier)”と、それを変換した“チャレンジコード(code challenge)”を用い、トークン取得時に両者を照合してコード横取りを防ぐ仕組みは OAuth 2.0 の拡張仕様「Proof Key for Code Exchange(PKCE)」で定義されています。
  3. 解答群を確認すると、該当する選択肢は「ウ:PKCE(Proof Key for Code Exchange)」のみです。
    したがって q の正解は「ウ」となります。

誤りやすいポイント

  • 「ASLR」のように名称に“ランダム”が含まれる対策と混同する。ASLR はメモリ配置をランダム化する OS レベルの緩和策であり、OAuth とは無関係です。
  • 「EIAM」「SCIM」を“ID 関連だから適切”と早合点する。どちらも IAM やアカウント同期の枠組みであり、認可コードの盗聴対策を規定した仕様ではありません。
  • PKCE を「ネイティブアプリ専用」と思い込み、Web ブラウザ利用時には不要だと誤解するケース。実際には公開クライアント全般で有効です。

FAQ

Q: PKCE は必ず SHA-256 を使いますか?
A: 推奨は SHA-256(S256 メソッド)ですが、後方互換のためにプレーン方式も定義されています。ただしセキュリティ上、S256 を用いるのが一般的です。
Q: CSRF 対策の state パラメタだけでは不十分なのですか?
A: state はリダイレクト先の改ざん検知に有効ですが、認可コード横取りには効果が限定的です。PKCE により“コード自体”の再利用を防ぐことで、モバイルアプリ特有のリスクを補完できます。
Q: PKCE を導入するとサーバ側にも変更が必要ですか?
A: 認可サーバが PKCE をサポートしていれば、クライアントは code_challenge/code_verifier を送受信するだけで利用できます。リソースサーバ側の変更は通常不要です。

関連キーワード: OAuth 2.0, PKCE, CSRF, チャレンジレスポンス、モバイルアプリ

設問5〔企画チームからの要望〕について(1)〜(4)に答えよ。

(1)図10中のrtに入れる適切な字句を解答群の中から選び、記号で答えよ。
解答群  ア:IDaaS-G  イ:Sサービス  ウ:T社投稿サイトの投稿サーバ  エ:T社投稿サイトの認証サーバ  オ:X社動画サーバ

模範解答

r:オ s:エ t:ウ

解説

解答の論理構成

  1. 連携要件の確認
    【問題文】では、 “T社投稿サイトの認証サーバを用いた認証機能、及びT社投稿サイトの投稿サーバへの自動投稿機能をX社動画サーバに追加したい”
    と明記されています。
    したがって、 • 認証は “T社投稿サイトの認証サーバ” が担当
    • “X社動画サーバ” はサービス(クライアント)側
    • 投稿(リソース操作)は “T社投稿サイトの投稿サーバ” が担当
    という3者構成になります。
  2. 図10 の流れと各ノードの役割対応
    図10 には利用者端末の右側に3つの空欄 rst が並び、下段に
    “APIを使った “動画の概要” の投稿”
    という矢印が rt に描かれています。
    これは【問題文】で説明された「動画投稿時に “動画の概要” を自動投稿」動作に該当し、サービス側(X社動画サーバ)からリソースサーバ(T社投稿サイトの投稿サーバ)への API 呼び出しであると判断できます。
  3. 各空欄への具体的な字句の当てはめ
    (1) r:最初に “サービス要求” を受け取り、認可コードを取得し、最後は投稿 API を呼び出す――これは X社側の Web アプリ、すなわち “X社動画サーバ” です。
    (2) s:“認証要求” を受け取り “ログイン処理” を行い “トークン応答” を返す――OIDC における Authorization Server であり、問題文中の “T社投稿サイトの認証サーバ” に一致します。
    (3) t:投稿 API の終点となる “T社投稿サイトの投稿サーバ” が最適です。
  4. 解答
    r=“オ:X社動画サーバ”
    s=“エ:T社投稿サイトの認証サーバ”
    t=“ウ:T社投稿サイトの投稿サーバ”

誤りやすいポイント

  • OIDC の “クライアント” と “認証サーバ” を逆に読み取って rs を取り違える。
  • 投稿 API の宛先を “X社動画サーバ” と勘違いし、t を誤答する。
  • “IDaaS-G” や “Sサービス” は設問 〔企画チームからの要望〕 とは無関係であることを見落とす。

FAQ

Q: OIDC における “投稿サーバ” は “リソースサーバ” という理解で良いですか?
A: はい。トークンを提示して API で保護リソース(ここでは “動画の概要” 投稿機能)を操作するため、OAuth2.0/OIDC の用語ではリソースサーバに相当します。
Q: 図10 で “認可コードフロー” とありますが、ハイブリッドフローとの違いは何ですか?
A: 認可コードフローはコード受領後にサーバ間通信でトークン取得を行います。ハイブリッドフローはコードに加えて ID トークンやアクセストークンをフロントチャネルで併せて受け取る方式で、nonce 値の検証が必須になります。
Q: “state” と “nonce” は両方必要ですか?
A: 認可コードフローでは CSRF 対策として “state” が必須です。ハイブリッドフローや implicit フローでは、リプレイ攻撃を防ぐため “nonce” も必須です。

関連キーワード: OpenID Connect, OAuth 2.0, 認可コードフロー、リソースサーバ、CSRF

設問5〔企画チームからの要望〕について(1)〜(4)に答えよ。

(2)本文中のuに入れる適切な通信を、図10中の(1)〜(8)から選び、番号で答えよ。

模範解答

u:(8)

解説

解答の論理構成

  1. 【問題文】には
    「F氏:認可コードフローの場合、IDトークンは、図10中のuで送付されます。」
    と明記されています。
  2. 図10の凡例を見ると、(8) の矢印には
    「(8) トークン応答」
    と記載されています。
  3. OpenID Connect の認可コードフローでは、クライアント(ここでは「r」=X社動画サーバ)がトークンエンドポイントに対してトークン要求を出した後、トークン応答で「IDトークン」と「アクセストークン」などが返却されるのが標準仕様です。
  4. したがって、IDトークンが送付されるタイミング=「トークン応答」に該当する図10中の番号は (8) となります。

誤りやすいポイント

  • (5) リダイレクトと混同する
    リダイレクトでは「認可コード」しか渡されません。IDトークンは含まれないので要注意です。
  • OIDC と OAuth 2.0 の役割を誤解する
    OAuth 2.0 は“認可”の枠組み、OIDC はそれに“認証(ID トークン)”を追加する拡張です。フローのどこで各トークンが出現するかを区別しましょう。
  • IDトークンとアクセストークンを同一視する
    IDトークンは“利用者を識別する情報”、アクセストークンは“API 呼び出しの権限”です。図10では両者が同じトークン応答でまとめて返却される点を押さえてください。

FAQ

Q: リダイレクトで ID トークンが返るケースはないのですか?
A: インプリシットフローやハイブリッドフローではリダイレクトで ID トークンが返る構成もありますが、本問は「認可コードフロー」を前提としているため、ID トークンはトークン応答で返ります。
Q: なぜトークン応答に ID トークンを含めるのですか?
A: 認可コードフローはサーバ間通信でトークンを授受するため、ブラウザ経由より安全に ID トークンを配送できます。これにより機密性を高められます。
Q: トークン応答に署名付きの JWT が含まれる目的は?
A: 「署名により改ざん検知」と「発行者の真正性確認」が可能になるためです。クライアントは公開鍵で署名を検証し、信頼できる ID 情報かどうかを判定します。

関連キーワード: IDトークン、認可コードフロー、トークン応答、OpenID Connect, JWT

設問5〔企画チームからの要望〕について(1)〜(4)に答えよ。

(3)本文中のvに入れる適切な字句を解答群の中から選び、記号で答えよ。
解答群  ア:base32  イ:base64url  ウ:ROT13  エ:UTF-8

模範解答

v:イ

解説

解答の論理構成

  1. 【問題文】では、IDトークンについて
    “ヘッダ、ペイロード、署名は、それぞれvでエンコードされます。”
    と明記されています。
  2. IDトークンは JSON Web Token(JWT)形式であり、JWT 仕様(RFC 7519)では
    “Header, Payload, Signature are encoded individually with Base64url Encoding”
    と規定されています。
  3. よって、JWT の各部をエンコードする方式=v は “base64url” が正解です。
  4. 解答群から “base64url” に該当する記号は「イ」であるため
    v:イ となります。

誤りやすいポイント

  • Base64 と base64url の混同
    • “+/” を “-_” に置換し、パディング “=” を省略するのが base64url ですが、単なる Base64 と誤解しやすいです。
  • UTF-8 や ROT13 との取り違え
    • UTF-8 は「文字コード」、ROT13 は「単純換字式暗号」であり、エンコード形式としては文脈が異なります。
  • JWT の「全体をまとめて一度だけエンコードする」との誤認
    • 実際には “ヘッダ・ペイロード・署名を個別に base64url エンコードし、ピリオドで連結” が正しい手順です。

FAQ

Q: JWT でパディング “=” が付く Base64 文字列を見たのですが?
A: RFC 7519 では “=” を省略する base64url が正式ですが、実装によっては可読性のためパディング付きで出力するものもあります。検証時に整合性が取れていれば問題ありません。
Q: UTF-8 エンコードはどこで使われますか?
A: JWT のヘッダ・ペイロードは JSON 文字列ですので、JSON 生成時に UTF-8 エンコードされます。ただし JWT のワイヤ形式では、その UTF-8 バイト列を base64url でエンコードします。
Q: base32 を採用してはいけないのですか?
A: RFC 7519 で base64url が必須と定められているため、互換性確保の観点から base32 ではなく base64url を用いる必要があります。

関連キーワード: JWT, base64url, OpenID Connect, エンコード

設問5〔企画チームからの要望〕について(1)〜(4)に答えよ。

(4)本文中のwxに入れる適切な字句を、それぞれ10字以内で答えよ。

模範解答

w:認証要求 x:IDトークン

解説

解答の論理構成

  1. 【問題文】では、OIDC ハイブリッドフローにおける nonce 値の扱いについて
    「まず、nonce値を生成し、wに含めて送信します。」
    と記載されています。nonce は RP(X社動画サーバ)が OP(T社投稿サイト認証サーバ)へ送る “認証リクエスト” に格納するのが OIDC の仕様です。したがって w には「認証要求」が入ります。
  2. 続けて
    「次に、送られてきたxに含まれるnonce値を検証することで、攻撃者によるIDトークンの不正利用を防ぐことができます。」
    とあります。OP から RP へ戻るメッセージで nonce が含まれるものは ID トークンだけです。よって x には「IDトークン」が入ります。
  3. 以上より
    w:認証要求
    x:IDトークン
    が妥当となります。

誤りやすいポイント

  • 「state パラメタ」と混同して、nonce を “リダイレクト” や “認可コード” に含めると誤解しやすい。nonce は ID トークンと照合 するため認証要求に入れる必要があります。
  • ID トークンとアクセストークンを混同しがち。アクセストークンには nonce が入らないため、ここで検証対象となるのは ID トークンです。
  • OIDC と OAuth 2.0 の用語差異を意識せず「認可要求」と「認証要求」を取り違えるケースが多い。

FAQ

Q: nonce と state の違いは何ですか?
A: state は CSRF 対策で レスポンス全体 の整合性を確認する目的、nonce は ID トークン固有 の再利用防止目的で用います。両方を同時に実装することで二重の防御が可能です。
Q: なぜアクセストークンではなく ID トークンで nonce を検証するのですか?
A: ID トークンは署名付きであり利用者の認証結果を含んでいます。nonce をこのトークンに埋め込み照合することで、認証プロセスのリプレイ攻撃を防止できます。アクセストークンは RP では内容が検証できないため適しません。
Q: ハイブリッドフローを選択するメリットは何ですか?
A: 認可コードフローの安全性(コード⇒トークン交換)と、インプリシットフローの即時性(フロントチャネルでの ID トークン受領)を両立できるため、UX とセキュリティのバランスが取れます。

関連キーワード: OpenID Connect, nonce, ID トークン、認証リクエスト
戦国ITクイズ機能

\ せっかくなら /

情報処理安全確保支援士
クイズ形式で学習しませんか?

クイズ画面へ遷移する

すぐに利用可能!

©︎2026 情報処理技術者試験対策アプリ

このサイトについてプライバシーポリシー利用規約特商法表記開発者について