【ネットワークスペシャリスト試験 令和4年度 春期 午後1 問3 No.2】

ネットワークスペシャリスト試験 令和4年度 春期 午後1 問3

【出典:ネットワークスペシャリスト試験 令和4年度 春期 午後1 問3(一部、加工あり)】

[ケルベロス認証の概要と通信手順]
 X主任が調査して理解した、ケルベロス認証の概要と通信手順を次に示す。

  • ケルベロス認証では、共通鍵暗号による認証及びデータの暗号化を行っている。
  • PCとサーバの鍵の管理及びチケットの発行を行う鍵配布センタ(以下、KDCという)が、DSから取得したアカウント情報を基にPC又はサーバの認証を行う。
  • KDCが管理するドメインに属するPCとサーバの鍵は、事前に生成してPC又はサーバに登録するとともに、全てのPCとサーバの鍵をKDCにも登録しておく。
  • チケットには、PCの利用者の身分証明書に相当するチケット(以下、TGTという)と、PCの利用者がサーバでの認証を受けるためのチケット(以下、STという)の2種類があり、これらのチケットを利用してSSOが実現できる。
  • PCの電源投入後に、利用者がID、パスワード(以下、PWという)を入力してKDCでケルベロス認証を受けると、HTTP over TLSでアクセスする業務サーバや営業支援サーバにも、ケルベロス認証向けのAPIを利用すればSSOが実現できる。
  • KDCは、導入予定のDSで稼働する。

 X主任は、内部LANにDSを導入したときの、SSOの動作をまとめた。PCの起動から営業支援サーバアクセスまでの通信手順を図2に示す。

 図2中の、①〜⑧の動作の概要を次に示す。
①PCは、DSで稼働するKDCにID、PWDを提示して、認証を要求する。
②KDCは、ID、PWDが正しい場合にTGTを発行し、PCの鍵で暗号化したTGTをPCに払い出す。PCは、TGTを保管する。
③省略
④省略
⑤PCは、KDCにTGTを提示して、営業支援サーバのアクセスに必要なSTの発行を要求する。
⑥KDCは、TGTを基に、PCの身分情報、セッション鍵などが含まれたSTを発行し、営業支援サーバの鍵でSTを暗号化する。さらに、KDCは、暗号化したSTにセッション鍵などを付加し、全体をPCの鍵で暗号化した情報をPCに払い出す。セッション鍵は、通信相手の正当性の検証などに利用される。
⑦PCは、全体が暗号化された情報の中からSTを取り出し、ケルベロス認証向けのAPIを利用して、STを営業支援サーバに提示する。
⑧営業支援サーバは、STの内容を基にPCを認証するとともに、アクセス権限をPCに付与して、HTTP応答を行う。

 TGTとSTには、有効期限が設定されている。(c)PCとサーバ間で、有効期限が正しく判断できていない場合は、有効期限内でも、PCが提示したSTを、サーバが使用不可と判断する可能性があるので、PCとサーバでの対応が必要である

攻撃者が図2中の②の通信を盗聴して通信データを取得しても、攻撃者は、⑦の通信を正しく行えないので、営業支援サーバを利用することはできない。⑦の通信を正しく行えない理由を、15字以内で述べよ:STを取り出せないから

 ②の通信はDS(KDC)からPCへの認証成功(TGT)ですが、TGTはPCの鍵で暗号化されているため、攻撃者がTGTを取り出すことはできないでしょう。
 TGTがなければ⑤の通信(PCからDS(KDC)への営業支援サーバ用のST要求(TGT))ができないため⑦の通信が出来なさそうですが、問われているのは「⑦の通信を正しく行えない理由」です。
 ⑦の通信はPCから営業支援サーバへのHTTP要求(ケルベロス認証向けのAPIを利用してST提示)で、深読みすると、ST提示ができない理由が問われていると思われます。
 STについて、⑥の通信(DS(KDC)からPCへの営業支援サーバ用のSTの払出し)の説明で、「KDCは、TGTを基に、PCの身分情報、セッション鍵などが含まれたSTを発行し、営業支援サーバの鍵でSTを暗号化する。さらに、KDCは、暗号化したSTにセッション鍵などを付加し、全体をPCの鍵で暗号化した情報をPCに払い出す。」とあります。
 設問には記述がありませんが、攻撃者がこの⑥の通信を盗聴して通信データを取得したとした場合で考えます。(②と同じ経路なので盗聴は可能だと思われます。)
 ⑥の通信は、最終的に全体がPCの鍵で暗号化されているため、この中のSTを取り出すことはできません。
 したがって、STを取り出せないことが回答になりますが、難解な問題でした。

図2中で、ケルベロス認証サービスのポート番号88が用いられる通信を、①〜⑧の中から全て選び記号で答えよ:①、②、⑤、⑥

 「ケルベロス認証サービスのポート番号88が用いられる通信」というのが問題文には具体的に説明がないので分かりにくいですが、①〜⑧の通信でケルベロス認証関連の通信を挙げればいいでしょう。
 PC〜DS(KDC)間の通信はケルベロス認証関連の通信であるのは理解できるでしょう。
 一方、PC〜営業支援サーバ間の通信は全てHTTPの要求/応答のやり取りです。
 これについては、「PCの電源投入後に、利用者がID、パスワード(以下、PWという)を入力してKDCでケルベロス認証を受けると、HTTP over TLSでアクセスする業務サーバや営業支援サーバにも、ケルベロス認証向けのAPIを利用すればSSOが実現できる。」とあるように、営業支援サーバにAPIを利用することでHTTP over TLSで通信できるようです。
 したがって、ケルベロス認証関連の通信は、PC〜DS(KDC)間の通信である①②⑤⑥が該当します。

下線(c)の問題を発生させないための、PCとサーバにおける対応策を、20字以内で述べよ:PCとサーバ間で時刻同期を行う。

(c)PCとサーバ間で、有効期限が正しく判断できていない場合は、有効期限内でも、PCが提示したSTを、サーバが使用不可と判断する可能性があるので、PCとサーバでの対応が必要である
 「PCとサーバ間で、有効期限が正しく判断できない場合」とはどういうことでしょう。
 この直前に「TGTとSTには、有効期限が設定されている。」とあるように、受け渡される各チケットには有効期限である時刻情報が埋め込まれています。
 そして、この時刻情報での判断を正しく行うには、チケットをやり取りする機器の間で自身の時刻が一致していることが前提となります。
 有効期限を設定するのがどの機器であるかは説明されていませんが、PCとサーバとあるので、PCがSTに有効期限を設定し、営業支援サーバがその時刻情報が有効期限内であるかを判断するのでしょう。
 この場合、PCと営業支援サーバ間で時刻同期が行われている必要があります。