HOME»基本情報技術者平成22年秋期問題»午後問4
基本情報技術者過去問題 平成22年秋期 午後問4
⇄問題文と設問を画面2分割で開く⇱問題PDF問4 情報セキュリティ
認証システムに関する次の記述を読んで,設問に答えよ。
複数のクライアントと複数のアプリケーションサーバ(以下,APサーバという)が接続されているネットワークにおいて,単純な認証システムを利用する場合について,ここでは二つの問題点を取り上げる。
なお,ここでは,これらの問題に直接関連しない仕様については,その記述を省略する。
〔新認証システムによる問題点の解消〕
問題点①に対しては,利用者が一度,利用者IDとパスワードをクライアントに入力して認証を受ければ,そのクライアントと各APサーバ間での認証は,利用者を介さないで済むように改善する。
このために,チケットと呼ぶ認証データを用いる。チケットは,クライアントに対して発行され,そのクライアントは,APサーバの認証を得るとき,発行されたチケットをAPサーバに送信する。
問題点②に対しては,APサーバに送信されたチケットが,チケットの発行を受けたクライアントから送られてきたものであることを,APサーバが確認できるよう,チケットとは別に認証子と呼ぶ認証データを用いる。
図1に新認証システムの構成を示す。〔新認証システムの構成と方式についての説明〕
図2は,利用者が,クライアントCから目的のAPサーバSにアクセスする場合の認証の流れを示す。 認証は,次の3段階で行われる。ここで,enc(x)は,xを暗号化したものを表す。
第1段階は,クライアントCがチケット発行サーバTにチケットを要求するためのチケット(以下,チケット発行サーバT用チケットという)の認証サーバAへの要求(図2中の通信①)と,その発行(図2中の通信②)である。
通信①では,クライアントCは,次のデータを認証サーバAに送信する。 通信②では,認証サーバAは,次のデータをクライアントCに応答する。 第2段階は,クライアントCがAPサーバSにアクセスするためのチケット(以下,APサーバS用チケットという)のチケット発行サーバTへの要求(図2中の通信③)と,その発行(図2中の通信④)である。
通信③では,クライアントCは,次のデータをチケット発行サーバTに送信する。 チケット発行サーバTは,TICKETCTを送信したのが間違いなくクライアントCであることをTICKETCTとAUTHC1から確認する。確認ができたとき,通信④では,チケット発行サーバTは,次のデータをクライアントCに応答する。 第3段階は,APサーバS用チケットの提示である(図2中の通信⑤)。
通信⑤では,クライアントCは,次のデータをAPサーバSに送信する。 APサーバSは,TICKETCSを送信したのが間違いなくクライアントCであることをTICKETCSとAUTHC2から確認する。確認ができたとき,利用者は,クライアントCから,APサーバSへのアクセスが許可される。
複数のクライアントと複数のアプリケーションサーバ(以下,APサーバという)が接続されているネットワークにおいて,単純な認証システムを利用する場合について,ここでは二つの問題点を取り上げる。
- 利用者は,使用するクライアントから各APサーバにログインするごとに,利用者IDとパスワードの入力操作を行わなければならない。
- クライアントとAPサーバとの間の通信データの横取りと偽造によって,APサーバのサービスが不正に利用される危険性がある。
なお,ここでは,これらの問題に直接関連しない仕様については,その記述を省略する。
〔新認証システムによる問題点の解消〕
問題点①に対しては,利用者が一度,利用者IDとパスワードをクライアントに入力して認証を受ければ,そのクライアントと各APサーバ間での認証は,利用者を介さないで済むように改善する。
このために,チケットと呼ぶ認証データを用いる。チケットは,クライアントに対して発行され,そのクライアントは,APサーバの認証を得るとき,発行されたチケットをAPサーバに送信する。
問題点②に対しては,APサーバに送信されたチケットが,チケットの発行を受けたクライアントから送られてきたものであることを,APサーバが確認できるよう,チケットとは別に認証子と呼ぶ認証データを用いる。
図1に新認証システムの構成を示す。〔新認証システムの構成と方式についての説明〕
- 新認証システムでは,共通鍵暗号方式によって,通信データを暗号化する。以下,共通鍵を鍵という。
- 認証サイトは,認証サーバ,鍵データベース及びチケット発行サーバで構成する。
- チケット発行サーバの鍵は,チケット発行サーバ自体と鍵データベースに登録されている。
- 各APサーバの鍵は,それぞれのAPサーバ自体と鍵データベースに登録されている。
- 利用者の鍵は,利用者のパスワードから計算して決められ,鍵データベースに登録されている。クライアントには,利用者が入力したパスワードから計算した鍵が,利用者がクライアントの利用を終了するまで,一時的に保持される。
図2は,利用者が,クライアントCから目的のAPサーバSにアクセスする場合の認証の流れを示す。 認証は,次の3段階で行われる。ここで,enc(x)は,xを暗号化したものを表す。
第1段階は,クライアントCがチケット発行サーバTにチケットを要求するためのチケット(以下,チケット発行サーバT用チケットという)の認証サーバAへの要求(図2中の通信①)と,その発行(図2中の通信②)である。
通信①では,クライアントCは,次のデータを認証サーバAに送信する。 通信②では,認証サーバAは,次のデータをクライアントCに応答する。 第2段階は,クライアントCがAPサーバSにアクセスするためのチケット(以下,APサーバS用チケットという)のチケット発行サーバTへの要求(図2中の通信③)と,その発行(図2中の通信④)である。
通信③では,クライアントCは,次のデータをチケット発行サーバTに送信する。 チケット発行サーバTは,TICKETCTを送信したのが間違いなくクライアントCであることをTICKETCTとAUTHC1から確認する。確認ができたとき,通信④では,チケット発行サーバTは,次のデータをクライアントCに応答する。 第3段階は,APサーバS用チケットの提示である(図2中の通信⑤)。
通信⑤では,クライアントCは,次のデータをAPサーバSに送信する。 APサーバSは,TICKETCSを送信したのが間違いなくクライアントCであることをTICKETCSとAUTHC2から確認する。確認ができたとき,利用者は,クライアントCから,APサーバSへのアクセスが許可される。
設問
本文中の に入れる正しい答えを,解答群の中から選べ。
a に関する解答群
- C-T間のセッション鍵KEYCT
- チケット発行サーバTのID IDT
- チケット発行サーバTの鍵KEYT
- 利用者ID IDC
b,c に関する解答群
- APサーバSのID IDS
- APサーバSの鍵KEYS
- C-S間のセッション鍵KEYCS
- C-T間のセッション鍵KEYCT
- チケット発行サーバTの鍵KEYT
d に関する解答群
- APサーバSの鍵KEYS
- C-S間のセッション鍵KEYCS
- C-T間のセッション鍵KEYCT
- チケット発行サーバTの鍵KEYT
解答選択欄
- a:
- b:
- c:
- d:
解答
- a=ウ
- b=エ
- c=イ
- d=イ
解説
共通鍵暗号方式を用いた安全なシングルサインオンを実現する認証システムの構成に関する問題です。
aに入る言葉なので暗号化に用いた鍵です。したがって答えの候補は"ア:C-T間のセッション鍵KEYCT"または"ウ: チケット発行サーバTの鍵KEYT"の2つになります。
enc(TICKETCT)は、認証サーバAからクライアント経由でチケット発行サーバTに送信されるデータです。
またenc(TICKETCT)は、チケット発行サーバTにチケット発行を依頼するためのチケットとC-T間で暗号化通信を行うための「KEYCT」を含み、クライアントCでは復号できずチケット発行サーバTが復号するとあります。
"ア:C-T間のセッション鍵KEYCT"はセッションの度に生成される鍵であり、鍵データベースには登録されていません。したがってチケット発行サーバTはセッション鍵「KEYCT」を、事前に取得しておくことができないことになり、「KEYCT」を使って「enc(TICKETCT)」を復号することはできないことになります。
この事からチケット発行サーバTでは自身の持つチケット発行サーバTの鍵 「KEYT」を使って、「enc(TICKETCT)」を復号し、中に含まれる「KEYCT」を取得し、クライアントと同一の鍵を共有する流れとなる事がわかります。
つまり、認証サーバAでは(図中の通信Rにて)鍵データベースから取得したチケット発行サーバTの鍵 「KEYT」を使って、「TICKETCT」を暗号化しクライアントに送信することになります。
∴a=ウ: チケット発行サーバTの鍵KEYT
bについて〕
チケット発行サーバTでは、「enc(TICKETCT)」を自身の持つチケット発行サーバTの鍵「KEYT」で復号し、C-T間の通信に必要な共通鍵「KEYCT」を取り出します。
したがって認証子「AUTHC1」及びクライアントが通信を希望するAPサーバID「IDS」は、クライアント側ではこの「KEYCT」を使って暗号化してから送信することで、チケット発行サーバTと暗号化通信を行うことが可能なことがわかります。
∴b=エ:C-T間のセッション鍵KEYCT
〔cについて〕
「enc(TICKETCS)」は、チケット発行サーバTからクライアント経由でAPサーバSに送信されるデータです。
また、「enc(TICKETCS」は、APサーバSへのチケットと共にC-S間で安全に通信を行うための「KEYCS」を含み、「クライアントCでは復号できずAPサーバSで復号される」とあります。
APサーバSが事前に保有している鍵は、APサーバSの鍵だけですので、APサーバがこのデータを復号できるようにするためには、チケット発行サーバ側で(図中の通信Rにて)鍵データベースから取得したAPサーバSの鍵「KEYS」を使って「TICKETCS」を暗号化してあげる必要があることになります。
∴c=イ:APサーバSの鍵KEYS
dについて〕
APサーバSでは「enc(TICKETCS)」を自身の持つAPサーバの鍵「KEYS」で復号し、C-S間の通信に必要な共通鍵「KEYCS」を取り出します。
したがって認証子「AUTHC2」は、クライアント側でこの「KEYCS」を使って暗号化してから送信することで、APサーバとクライアント間で暗号化通信を行うことが可能になることがわかります。
∴d=イ:C-S間のセッション鍵KEYCS
最後に、この新認証システムの通信の流れを整理すると以下のようになります。
aに入る言葉なので暗号化に用いた鍵です。したがって答えの候補は"ア:C-T間のセッション鍵KEYCT"または"ウ: チケット発行サーバTの鍵KEYT"の2つになります。
enc(TICKETCT)は、認証サーバAからクライアント経由でチケット発行サーバTに送信されるデータです。
またenc(TICKETCT)は、チケット発行サーバTにチケット発行を依頼するためのチケットとC-T間で暗号化通信を行うための「KEYCT」を含み、クライアントCでは復号できずチケット発行サーバTが復号するとあります。
"ア:C-T間のセッション鍵KEYCT"はセッションの度に生成される鍵であり、鍵データベースには登録されていません。したがってチケット発行サーバTはセッション鍵「KEYCT」を、事前に取得しておくことができないことになり、「KEYCT」を使って「enc(TICKETCT)」を復号することはできないことになります。
この事からチケット発行サーバTでは自身の持つチケット発行サーバTの鍵 「KEYT」を使って、「enc(TICKETCT)」を復号し、中に含まれる「KEYCT」を取得し、クライアントと同一の鍵を共有する流れとなる事がわかります。
つまり、認証サーバAでは(図中の通信Rにて)鍵データベースから取得したチケット発行サーバTの鍵 「KEYT」を使って、「TICKETCT」を暗号化しクライアントに送信することになります。
∴a=ウ: チケット発行サーバTの鍵KEYT
bについて〕
チケット発行サーバTでは、「enc(TICKETCT)」を自身の持つチケット発行サーバTの鍵「KEYT」で復号し、C-T間の通信に必要な共通鍵「KEYCT」を取り出します。
したがって認証子「AUTHC1」及びクライアントが通信を希望するAPサーバID「IDS」は、クライアント側ではこの「KEYCT」を使って暗号化してから送信することで、チケット発行サーバTと暗号化通信を行うことが可能なことがわかります。
∴b=エ:C-T間のセッション鍵KEYCT
〔cについて〕
「enc(TICKETCS)」は、チケット発行サーバTからクライアント経由でAPサーバSに送信されるデータです。
また、「enc(TICKETCS」は、APサーバSへのチケットと共にC-S間で安全に通信を行うための「KEYCS」を含み、「クライアントCでは復号できずAPサーバSで復号される」とあります。
APサーバSが事前に保有している鍵は、APサーバSの鍵だけですので、APサーバがこのデータを復号できるようにするためには、チケット発行サーバ側で(図中の通信Rにて)鍵データベースから取得したAPサーバSの鍵「KEYS」を使って「TICKETCS」を暗号化してあげる必要があることになります。
∴c=イ:APサーバSの鍵KEYS
dについて〕
APサーバSでは「enc(TICKETCS)」を自身の持つAPサーバの鍵「KEYS」で復号し、C-S間の通信に必要な共通鍵「KEYCS」を取り出します。
したがって認証子「AUTHC2」は、クライアント側でこの「KEYCS」を使って暗号化してから送信することで、APサーバとクライアント間で暗号化通信を行うことが可能になることがわかります。
∴d=イ:C-S間のセッション鍵KEYCS
最後に、この新認証システムの通信の流れを整理すると以下のようになります。
- クライアントが認証システムに、利用者のID、チケット発行サーバのIDを送信する。(通信①)
- 認証サーバは、利用者の鍵で暗号化したC-T間のセッション鍵及び、チケット発行サーバの鍵で暗号化したC-T間のセッション鍵を含むチケット発行サーバ用チケットをクライアントに送信する。(通信②)
- クライアントはチケット発行サーバに、認証サーバから送信されたチケット発行サーバ用チケット、認証子、通信を希望するAPサーバのIDを送信する。(通信③)
- チケット発行サーバは、チケット発行サーバ用チケットを自身のもつ共通鍵で復号し、中に含まれるC-T間のセッション鍵を手に入れる。
- チケット発行サーバは、C-T間のセッション鍵をつかって、認証子を復号しクライアントを認証する。
- チケット発行サーバは、C-T間のセッション鍵をつかって、クライアントが通信を希望するAPサーバのIDを復号し、対象のAPサーバを知る。
- チケット発行サーバは、C-T間のセッション鍵で暗号化したC-S間のセッション鍵及び、APサーバの鍵で暗号化したC-S間のセッション鍵を含むAPサーバ用チケットをクライアントに送信する。(通信④)
- クライアントは、認証サーバから受信した利用者の鍵で暗号化したC-T間のセッション鍵を、自身の持つ鍵で復号しC-T間のセッション鍵を得る。
- クライアントは、C-T間のセッション鍵を使ってチケット発行サーバから受信したC-T間のセッション鍵で暗号化したC-S間のセッション鍵を復号し、C-S間のセッション鍵を得る。
- クライアントは、チケット発行サーバから受信したAPサーバ用チケット及び認証子をAPサーバに送信する。(通信⑤)
- APサーバは、受信したAPサーバ用チケットを自身のもつ鍵で復号し、C-S間のセッション鍵を得る。
- APサーバは、認証子をC-S間のセッション鍵で復号しクライアントを認証する。
- 以後C-S間でC-S間のセッション鍵を使用した暗号化通信を行う。