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

基本情報技術者 2010年 秋期 午後 問04


認証システムに関する次の記述を読んで、設問に答えよ。

 複数のクライアントと複数のアプリケーションサーバ(以下、APサーバという)が接続されているネットワークにおいて、単純な認証システムを利用する場合について、ここでは二つの問題点を取り上げる。 ① 利用者は、使用するクライアントから各APサーバにログインするごとに、利用者IDとパスワードの入力操作を行わなければならない。 ② クライアントとAPサーバとの間の通信データの横取りと偽造によって、APサーバのサービスが不正に利用される危険性がある。
 ここで、これらの問題を改善するための認証システム(以下、新認証システムという)を考える。  なお、ここでは、これらの問題に直接関連しない仕様については、その記述を省略する。   〔新認証システムによる問題点の解消〕  問題点①に対しては、利用者が一度、利用者IDとパスワードをクライアントに入力して認証を受ければ、そのクライアントと各APサーバ間での認証は、利用者を介さないで済むように改善する。  このために、チケットと呼ぶ認証データを用いる。チケットは、クライアントに対して発行され、そのクライアントは、APサーバの認証を得るとき、発行されたチケットをAPサーバに送信する。  問題点②に対しては、APサーバに送信されたチケットが、チケットの発行を受けたクライアントから送られてきたものであることを、APサーバが確認できるよう、チケットとは別に認証子と呼ぶ認証データを用いる。    図1に新認証システムの構成を示す。
基本情報技術者試験(平成22年 午後 問4 図1)   〔新認証システムの構成と方式についての説明〕 (1) 新認証システムでは、共通鍵暗号方式によって、通信データを暗号化する。以下、共通鍵を鍵という。 (2) 認証サイトは、認証サーバ、鍵データベース及びチケット発行サーバで構成する。 (3) チケット発行サーバの鍵は、チケット発行サーバ自体と鍵データベースに登録されている。 (4) 各APサーバの鍵は、それぞれのAPサーバ自体と鍵データベースに登録されている。 (5) 利用者の鍵は、利用者のパスワードから計算して決められ、鍵データベースに登録されている。クライアントには、利用者が入力したパスワードから計算した鍵が、利用者がクライアントの利用を終了するまで、一時的に保持される。   〔認証のための通信の例〕  図2は、利用者が、クライアントCから目的のAPサーバSにアクセスする場合の認証の流れを示す。
基本情報技術者試験(平成22年 午後 問4 図2)
 認証は、次の3段階で行われる。ここで、enc(x)は、xを暗号化したものを表す。    第1段階は、クライアントCがチケット発行サーバTにチケットを要求するためのチケット(以下、チケット発行サーバT用チケットという)の認証サーバAへの要求(図2中の通信①)と、その発行(図2中の通信②)である。
 通信①では、クライアントCは、次のデータを認証サーバAに送信する。
基本情報技術者試験(平成22年 午後 問4 問題文_表1)
 通信②では、認証サーバAは、次のデータをクライアントCに応答する。
基本情報技術者試験(平成22年 午後 問4 問題文_表2)
 第2段階は、クライアントCがAPサーバSにアクセスするためのチケット(以下、APサーバS用チケットという)のチケット発行サーバTへの要求(図2中の通信③)と、その発行(図2中の通信④)である。  通信③では、クライアントCは、次のデータをチケット発行サーバTに送信する。
基本情報技術者試験(平成22年 午後 問4 問題文_表3)
 チケット発行サーバTは、を送信したのが間違いなくクライアントCであることをとから確認する。確認ができたとき、通信④では、チケット発行サーバTは、次のデータをクライアントCに応答する。
基本情報技術者試験(平成22年 午後 問4 問題文_表4)
 第3段階は、APサーバS用チケットの提示である(図2中の通信⑤)。  通信⑤では、クライアントCは、次のデータをAPサーバSに送信する。
基本情報技術者試験(平成22年 午後 問4 問題文_表5)
 APサーバSは、を送信したのが間違いなくクライアントCであることをとから確認する。確認ができたとき、利用者は、クライアントCから、APサーバSへのアクセスが許可される。

設問1:

問題文を見る
 本文中のに入れる正しい答えを、解答群の中から選べ。   aに関する解答群  ア:C-T間のセッション鍵  イ:チケット発行サーバTのID  ウ:チケット発行サーバTの鍵  エ:利用者ID   b, cに関する解答群  ア:APサーバSのID  イ:APサーバSの鍵  ウ:C-S間のセッション鍵  エ:C-T間のセッション鍵  オ:チケット発行サーバTの鍵   dに関する解答群  ア:APサーバSの鍵  イ:C-S間のセッション鍵  ウ:C-T間のセッション鍵  エ:チケット発行サーバTの鍵

模範解答

a:ウ、b:エ、c:イ、d:イ

解説

解答の導き方

この問題では、チケットや認証子を「どの鍵で暗号化するか」を考えます。鍵を選ぶ基本は、そのデータを受け取って使うサーバだけが復号できるようにするのか、それともクライアントとサーバが共有する鍵で通信するのかです。
共通鍵暗号方式は、暗号化と復号に同じ鍵を使う方式です。セッション鍵は、クライアントとサーバが通信するときに使う一時的な鍵です。また、は「を暗号化したもの」を表します。チケットは、サーバに渡す認証データです。認証子(AUTH:Authenticator)は、鍵を持っている正当な相手であることを示すためのデータです。
1. チケット発行サーバT用チケットを考える
通信①では、クライアントCが利用者IDのなどを認証サーバAに送ります。問題文には、利用者の鍵はパスワードから計算され、鍵データベースに登録されるとあります。クライアントCにも、入力したパスワードから計算した鍵が一時的に保持されます。
通信②で、認証サーバAはC-T間のセッション鍵をクライアントCに渡します。ただし、クライアントC以外には読まれないよう、は利用者の鍵で暗号化されます。
一方、TICKET_CTにはが含まれます。このチケットはクライアントCを経由してチケット発行サーバTに渡されます。そのため、クライアントCでは読めず、チケット発行サーバTだけが読める必要があります。問題文では、チケット発行サーバTの鍵はT自身と鍵データベースに登録されているので、TICKET_CTを暗号化する鍵はです。
したがって、aには「チケット発行サーバTの鍵」が入ります。解答群ではウです。
2. チケット発行サーバTへの要求を考える
通信③では、クライアントCは受け取ったTICKET_CTをそのままTに送ります。Tは自分の鍵でTICKET_CTを復号し、含まれているC-T間のセッション鍵を取り出します。
クライアントCは、認証子AUTH_C1とAPサーバSのIDであるも送ります。これらは、クライアントCとTが共有している鍵で暗号化します。通信②でクライアントCが受け取ったセッション鍵と、TICKET_CTからTが取り出すセッション鍵が同じだからです。
よって、bは「C-T間のセッション鍵」です。解答群ではエです。
このように、チケットはTが読めるようにTの鍵で暗号化し、認証子などのデータはクライアントCとTが共有するセッション鍵で暗号化します。Tはチケットから取り出した鍵を使って認証子を確認し、チケットを送った相手がその鍵を持つクライアントCであることを確かめます。
3. APサーバS用チケットと認証子を考える
通信④では、TがC-S間のセッション鍵をクライアントCに渡し、同じ鍵を含むAPサーバS用チケットも発行します。
クライアントCはAPサーバS用チケットの中身を読めません。チケットを受け取って中身を使うのはAPサーバSです。問題文では、各APサーバの鍵はAPサーバ自身と鍵データベースに登録されています。したがって、APサーバS用チケットはAPサーバSの鍵で暗号化します。
よって、cは「APサーバSの鍵」です。解答群ではイです。
通信④では、クライアントCがC-T間のセッション鍵で復号できる形で、C-S間のセッション鍵も渡されます。これにより、クライアントCはC-S間のセッション鍵を使えるようになります。APサーバSは、チケットを自分の鍵で復号して、同じセッション鍵を取り出します。
通信⑤で送る認証子AUTH_C2は、クライアントCとAPサーバSが共有するC-S間のセッション鍵で暗号化します。APサーバSはチケットから取り出した鍵で認証子を確認します。したがって、dは「C-S間のセッション鍵」で、解答群ではイです。
整理すると、チケットを暗号化する鍵は、そのチケットを読むサーバ自身の鍵です。一方、認証子を暗号化する鍵は、クライアントと通信相手のサーバが共有するセッション鍵です。

誤りやすいポイント

  • チケットの暗号化にセッション鍵を選んでしまう
    チケットは、クライアントを経由してサーバに渡されます。受け取ったサーバだけが中身を読めるようにするため、チケット発行サーバT用なら、APサーバS用ならを使います。
  • 認証子の暗号化にサーバ自身の鍵を選んでしまう
    認証子は、クライアントが相手のサーバと共有している鍵を使って作ります。Tとの認証では、Sとの認証ではC-S間のセッション鍵を使います。
  • とを混同する
    はAPサーバSを識別するためのIDです。は、APサーバSがチケットを復号するための鍵です。役割が異なります。
  • クライアントがチケットを復号すると考えてしまう
    チケットは、クライアントが中身を読むためのものではありません。クライアントはチケットをそのままサーバに送り、サーバが自分の鍵で復号します。

FAQ

Q: クライアントCがTICKET_CTの中身を読めないのに、通信③で送れるのはなぜですか?
A: チケットは、内容を読めなくてもデータとしてそのまま転送できます。クライアントCはTICKET_CTを変更せずにTへ渡し、Tが自分の鍵で復号します。
Q: チケットと認証子は、どちらも認証に使うのですか?
A: はい。ただし役割が異なります。チケットは、サーバが必要な鍵などを受け取るためのデータです。認証子は、送信者がその鍵を持つ正当な相手であることを確かめるためのデータです。
Q: 利用者がパスワードを入力するのは、なぜ最初だけでよいのですか?
A: 入力したパスワードから計算した鍵で、最初に受け取るセッション鍵を復号できるからです。その後は、チケットとセッション鍵を使って各サーバとの認証を行います。

関連キーワード: 共通鍵暗号方式、セッション鍵、チケット、認証子、鍵データベース

解説を読んでも分からないところは、AIに質問できます。 この問題の本文と解説をふまえて答えます。

この設問をAIに質問する

クイズモードで開きます(AIへの質問は無料の会員登録で使えます)

戦国ITクイズ機能

\ せっかくなら /

基本情報技術者を
クイズ形式で学習しませんか?

クイズ画面へ遷移する→

すぐに利用可能!

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

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