令和4年度 春期 ネットワークスペシャリスト試験 午後I 問3 ケルベロス認証によるシングルサインオンとDNS・SRVレコード設計

学習ガイド

アカウントの一元管理と利便性向上を目的に、社内システムへケルベロス認証によるシングルサインオンを導入する事例を取り上げます。TGTやSTを用いたチケット交付シーケンスの安全性や時刻同期の重要性に加え、SRVレコードを活用したサーバ探索と負荷分散の設定が問われます。図2の認証フローに沿って各パケットの暗号化鍵と役割を整理し、DNSレコードの書式やTTLの定義を図3・図4から丁寧に読み取って設問を解き進めます。

この記事で押さえる論点

  • ケルベロス認証におけるTGTとSTの発行シーケンスおよび暗号化の仕組みを説明できる
  • チケットの有効期限管理において端末とサーバ間の時刻同期が不可欠な理由を述べられる
  • 社内LANとDMZ間の通信要件からFWのフィルタリングルールを設計できる
  • SRVレコードの構成要素とDNSラウンドロビンによる負荷分散比率の設定方法を説明できる

問題本文

シングルサインオンの導入に関する次の記述を読んで,設問1〜3に答えよ。

Y社は,医療機器販売会社であり,都内に本社を構えている。受発注業務システムのサーバ(以下,業務サーバという),営業活動支援システムのサーバ(以下,営業支援サーバという)など,複数のサーバを本社で運用している。
Y社では,IT活用の推進によって社員が利用するシステムが増加した結果,パスワードの使い回しが広がり,セキュリティリスクが増大した。また,サーバの運用を担当する情報システム部(以下,情シスという)では,アカウント情報の管理作業が増大したことから,アカウント情報管理の一元化が課題になった。
このような状況から,Y社は,社内のシステムへのシングルサインオン(以下,SSOという)の導入を決定した。情シスのZ課長は,SSOの導入検討を部下のX主任に指示した。

〔ネットワーク構成及び機器の設定と利用形態〕

最初に,X主任は,本社のネットワーク構成及び機器の設定と利用形態をまとめた。X主任が作成した,本社のネットワーク構成を図1に示す。

図1 本社のネットワーク構成 (抜粋)
図の説明テキスト

本社のネットワーク構成を示す図。インターネットから本社のルータを経由してFWとL3SWに接続されている。FWからはDMZ(L2SWを介して公開Webサーバ、プロキシサーバ、外部DNSサーバが接続)へ繋がる。L3SWからは内部LANが構成され、PCセグメント(複数のL2SWとそれに連なるPC群)と、サーバセグメント(L2SWを介して業務サーバ、営業支援サーバ、社内DNSサーバが接続)に分かれている。また、サーバセグメントには網掛けでDS1、DS2が接続されており、注記にてこれらはアカウント情報の一元管理のために今後導入予定のディレクトリサーバであることが示されている。

現状の機器の設定と利用形態を次に示す。

(i) 社内DNSサーバは,内部LANのゾーン情報を管理し,内部LAN以外のゾーンのホストの名前解決要求は,外部DNSサーバに転送する。
(ii) 外部DNSサーバは,DMZのゾーン情報の管理及びフルサービスリゾルバの機能をもっている。外部DNSサーバは,社外からの再帰問合せ要求は受け付けない。一方,社内DNSサーバ及びDMZのサーバからの再帰問合せ要求は受け付け,再帰問合せ時には,送信元ポート番号のランダム化を行う。
(iii) PCには,プロキシ設定でプロキシサーバのFQDNが登録されているが,(a)業務サーバ及び営業支援サーバへのアクセスは,プロキシサーバを経由せずWebブラウザから直接行う。
(iv) PCのスタブリゾルバは,社内DNSサーバで名前解決を行う。
(v) PC,サーバセグメントとDMZのサーバでは,マルウェア対策ソフトが稼働している。マルウェア定義ファイルの更新は,プロキシサーバ経由で行う。
(vi) (b)PCには,L3SWで稼働するDHCPサーバから,PCのIPアドレス,サブネットマスク及びその他のネットワーク情報が付与される。

図1中のFWに設定されている通信を許可するルールを表1に示す。

表1 FWに設定されている通信を許可するルール
図の説明テキスト
項番 アクセス経路 送信元 宛先 プロトコル/ポート番号
1 インターネット→DMZ any ア TCP/53, イ
2 インターネット→DMZ any ウ TCP/443
3 DMZ→インターネット ア any TCP/53, イ
4 DMZ→インターネット エ オ TCP/80, TCP/443
5 内部 LAN→DMZ カ ア TCP/53, イ
6 内部 LAN→DMZ サーバセグメント プロキシサーバ TCP/8080 1)
7 内部 LAN→DMZ PCセグメント プロキシサーバ TCP/8080 1)

注記 FW は、ステートフルパケットインスペクション機能をもつ。
注1) TCP/8080 は、代替 HTTP のポートである。

次に,X主任は,アカウント情報の一元管理をDSによって行い,DSの情報を利用してSSOを実現させることを考え,ケルベロス認証によるSSOについて検討した。

〔ケルベロス認証の概要と通信手順〕

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の起動から営業支援サーバアクセスまでの通信手順(抜粋)
図の説明テキスト

PCの起動から営業支援サーバアクセスまでの通信手順(抜粋)のシーケンス図。
エンティティは左から「社員」「PC」「DS(KDC)」「営業支援サーバ」。
手順は以下の通り。
・社員からPCへ「PC起動」「ID, PW入力」
・PCからDS(KDC)へ「①認証要求 (ID, PW)」
・DS(KDC)からPCへ「②認証成功 (TGT)」
・社員からPCへ「Webブラウザ起動」「営業支援サーバアクセス」
・PCから営業支援サーバへ「③HTTP要求」
・営業支援サーバからPCへ「④HTTP応答 (401, WWW-Authenticate:Negotiate)」
・PCからDS(KDC)へ「⑤営業支援サーバ用のST要求 (TGT)」
・DS(KDC)からPCへ「⑥営業支援サーバ用のSTの払出し (ST)」
・PCから営業支援サーバへ「⑦HTTP要求 (ケルベロス認証向けのAPIを利用してST提示)」
・営業支援サーバからPCへ「⑧HTTP応答 (200 OK, 認証成功を応答)」
・PCと営業支援サーバ間で「HTTP通信」が双方向に行われる。

図2中の,①〜⑧の動作の概要を次に示す。

① PCは,DSで稼働するKDCにID,PWを提示して,認証を要求する。
② KDCは,ID,PWが正しい場合に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とサーバでの対応が必要である。

〔SRVレコードの働きと設定内容〕

次に,X主任は,ケルベロス認証を導入するときのネットワーク構成について検討した。ケルベロス認証導入時には,DNSのリソースレコードの一つであるSRVレコードの利用が推奨されているので,SRVレコードについて調査した。
DNSサーバにSRVレコードが登録されていれば,サービス名を問い合わせることによって,当該サービスが稼働するホスト名などの情報が取得できる。
SRVレコードのフォーマットを図3に示す。

図3 SRVレコードのフォーマット
図の説明テキスト

SRVレコードのフォーマット。項目は左から順に _Service._Proto.Name, TTL, Class, SRV, Priority, Weight, Port, Target である。

X主任は,図1に示したように,内部LANにDSを2台導入して冗長化し,それぞれのDSでケルベロス認証を稼働させる構成を考えた。

図3中の,_Serviceには,ケルベロス認証のサービス名である,kerberosを記述する。Priorityは,同一サービスのSRVレコードが複数登録されている場合に,利用するSRVレコードを判別するための優先度を示す。Priorityが同じ値の場合は,WeightでTargetに記述するホストの使用比率を設定する。Portには,サービスを利用するときのポート番号を記述する。

X主任は,2台のDSでケルベロス認証を稼働させる場合の,SRVレコードの設定内容を検討した。

X主任が作成した,ケルベロス認証向けのSRVレコードの内容を図4に示す。ここで,DS1とDS2は,本社に導入予定のDSのホスト名である。

図4 ケルベロス認証向けのSRVレコードの内容
図の説明テキスト
_Service._Proto.Name TTL Class SRV Priority Weight Port Target
_kerberos._tcp.naibulan.y-sha.jp. 43200 IN SRV 120 2 88 DS1.naibulan.y-sha.jp.
_kerberos._tcp.naibulan.y-sha.jp. 43200 IN SRV 120 1 88 DS2.naibulan.y-sha.jp.

X主任は,調査・検討結果を基にSSOの導入構成案をまとめ,Z課長に提出した。導入構成案が承認され,実施に移されることになった。

図5 変更後の SRV レコードの内容
図の説明テキスト
_Service._Proto.Name TTL Class SRV Priority Weight Port Target
_kerberos._tcp.naibulan.y-sha.jp. 43200 IN SRV 120 1 88 DS.naibulan.y-sha.jp.

設問と解答・解説

設問1

(1)配点 6点

本文中の下線(a)の動作を行うために,PCのプロキシ設定で登録すべき内容について,40字以内で述べよ。

模範解答

業務サーバと営業支援サーバのFQDNを,プロキシ例外リストに登録する。

採点基準

知識・理解度(内容)3点
  • 3点: 業務サーバと営業支援サーバのFQDNを対象としていることが明確に示されている
  • 1点: どちらか一方のサーバのみが示されている
  • 0点: 対象となるサーバが示されていない、または誤っている
論理性(構造)3点
  • 3点: 例外リストに登録する旨が論理的に記述されている
  • 1点: プロキシを経由させない旨は記述されているが、例外リストという用語が使われていない
  • 0点: プロキシに関する適切な設定が記述されていない

解説

プロキシ設定が有効な環境で、特定のサーバへの通信をプロキシサーバを経由させずに直接行いたい場合、対象のサーバ情報を プロキシ例外リスト に登録する必要があります。本問では、社内にある業務サーバと営業支援サーバとの通信が該当するため、これらの FQDN を登録します。

高得点のポイント

  • 業務サーバ と 営業支援サーバ の2つを対象としていることを明記する
  • 登録対象として FQDN を指定する
  • それらを プロキシ例外リスト に登録する旨を記述する
(2)配点 6点

本文中の下線(b)について,(iii)~(v)の実行を可能とするための,その他のネットワーク情報を二つ答えよ。

模範解答

社内DNSサーバのIPアドレス

デフォルトゲートウェイのIPアドレス

採点基準

知識・理解度(内容)3点
  • 3点: 社内DNSサーバのIPアドレスが正確に記述されている
  • 0点: 記述されていない、または誤っている
論理性(構造)3点
  • 3点: デフォルトゲートウェイのIPアドレスが正確に記述されている
  • 0点: 記述されていない、または誤っている

解説

DHCPによってPCに割り当てられるネットワーク情報に関する設問です。IPアドレス、サブネットマスクの他に、外部ネットワークと通信するための デフォルトゲートウェイのIPアドレス と、名前解決を行うための 社内DNSサーバのIPアドレス が必要になります。これらは基本的なネットワーク設定項目であるため確実に押さえておきましょう。

高得点のポイント

  • 社内DNSサーバのIPアドレス を挙げていること
  • デフォルトゲートウェイのIPアドレス を挙げていること
(3)配点 6点

表1中の ア , ウ ~ カ に入れる字句を,図1又は表1中の字句を用いて答えよ。

模範解答

外部DNSサーバ

公開Webサーバ

プロキシサーバ

any

社内DNSサーバ

採点基準

正確性(内容)6点
  • 6点: 全ての空欄に適切な字句が記述されている
  • 3点: 一部の空欄に適切な字句が記述されている
  • 0点: 全て誤っている、または無回答

解説

表1のパケットフィルタリングルールを完成させる問題です。

  • ア: インターネット上のDNSサーバへ問い合わせを行うのは 外部DNSサーバ です。
  • ウ: 外部からHTTP/HTTPSでアクセスされるのは 公開Webサーバ です。
  • エ・オ: 内部からインターネットへのWebアクセスは プロキシサーバ が代理で行うため、送信元はプロキシサーバ、宛先は any となります。
  • カ: 社内のPCからのDNS問い合わせを受け付けるのは 社内DNSサーバ です。

高得点のポイント

  • 各通信の送信元と宛先をネットワーク構成図から正確に読み取る
  • 図1又は表1で使用されている字句と整合する形で解答する
(4)配点 6点

表1中の イ に入れるプロトコル/ポート番号を答えよ。

模範解答

UDP/53

採点基準

正確性(内容)6点
  • 6点: プロトコルとポート番号が正確に記述されている
  • 3点: プロトコルまたはポート番号のいずれかのみ正しく記述されている
  • 0点: 誤っている、または無回答

解説

インターネット上のDNSサーバに対する名前解決の通信で使用されるプロトコルとポート番号を答える問題です。DNSの通常の名前解決(ゾーン転送以外)では UDP のポート番号 53 が使用されます。

高得点のポイント

  • プロトコルとして UDP を指定する
  • ポート番号として 53 を指定する

設問1(1)は,正答率が低かった。プロキシ設定が行われている状態で,プロキシサーバを経由させない通信がある場合は,プロキシ例外リストに該当するサーバなどの情報を登録することを覚えておいてほしい。設問1(2)では,社内DNSサーバのIPアドレスの正答率が低かった。DHCPで,PCなどが使用するローカルDNSサーバのIPアドレスを配布することは,一般的に行われるので覚えておいてほしい。

設問2

〔ケルベロス認証の概要と通信手順〕について,(1)~(3)に答えよ。

(1)配点 4点

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

模範解答

STを取り出せないから

採点基準

知識・理解度(内容)2点
  • 2点: ST(サービスクレデンシャル)を取り出せないことに明確に言及している
  • 1点: 暗号化されていることには触れているが、STへの言及がない
  • 0点: 該当する記述がない
論理性(構造)2点
  • 2点: 共通鍵をもたないため情報を取り出せないという論理が明確である
  • 1点: 理由の記述が不十分である
  • 0点: 論理的でない、または無回答

解説

ケルベロス認証では、通信の過程で共通鍵暗号方式が用いられます。攻撃者が通信データを盗聴したとしても、暗号化に用いられた 共通鍵 を持っていなければ、認証に必要な ST(Service Ticket) を復号して取り出すことができません。そのため、不正なサーバ利用は不可能です。

高得点のポイント

  • 暗号化されているため ST を取得できないことを明記する
  • 字数制限(15字以内)に収める簡潔な表現を心がける
(2)配点 3点

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

ア. ①
イ. ②
ウ. ③
エ. ④
オ. ⑤
カ. ⑥
キ. ⑦
ク. ⑧

模範解答

選択肢ア: ①

選択肢イ: ②

選択肢オ: ⑤

選択肢カ: ⑥

解説

ケルベロス認証サービス(KDC)との通信で使用されるポート番号についての問題です。ケルベロス認証では、AS(Authentication Server)やTGS(Ticket Granting Server)との通信においてポート番号 88 が使用されます。図2の通信手順において、KDCに対する認証要求およびチケット要求のやり取りである ①, ②, ⑤, ⑥ が該当します。

各選択肢の解説

  • ①, ②, ⑤, ⑥: ASやTGSとの通信であり、ポート番号88を使用します(正答)。
  • ③, ④: 社内DNSサーバとの通信であり、DNS(ポート番号53)を使用します。
  • ⑦, ⑧: 業務サーバや営業支援サーバとの直接の通信であり、アプリケーション固有のポートが使用されます。
(3)配点 4点

本文中の下線(c)の問題を発生させないための,PCとサーバにおける対応策を,20字以内で述べよ。

模範解答

PCとサーバ間で時刻同期を行う。

採点基準

知識・理解度(内容)2点
  • 2点: 時刻同期を行うことに明確に言及している
  • 1点: 時刻に関する言及はあるが、同期という解決策が不明確である
  • 0点: 該当する記述がない
論理性(構造)2点
  • 2点: PCとサーバ間での対応策であることが明記されている
  • 1点: PCまたはサーバのどちらか一方のみにしか言及していない
  • 0点: 適切でない、または無回答

解説

ケルベロス認証において、リプレイ攻撃を防ぐためにタイムスタンプが利用されます。しかし、PCとサーバの時刻がずれている と、正当な要求であってもタイムスタンプの検証でエラー(有効期限切れなど)となり、認証に失敗する問題が発生します。これを防ぐためには、NTPなどを用いて PCとサーバ間で時刻同期を行う 必要があります。

高得点のポイント

  • 時刻同期 を行うことを明記する
  • 同期の対象が PCとサーバ間 であることを示す

設問2(1)は,正答率が低かった。ケルベロス認証では共通鍵による暗号化が行われるので,通信を盗聴しても,暗号化に用いた共通鍵をもたなければSTを取り出せないことを導き出してほしい。

設問3

〔SRVレコードの働きと設定内容〕について,(1)~(3)に答えよ。

(1)配点 5点

ケルベロス認証を行う PCが,図4の SRVレコードを利用しない場合,PCに設定しなければならないサーバに関する情報を,25字以内で答えよ。

模範解答

ケルベロス認証を行うサーバのFQDN

採点基準

知識・理解度(内容)3点
  • 3点: ケルベロス認証を行うサーバの情報であることが正確に示されている
  • 1点: 対象となるサーバの指定が曖昧である
  • 0点: 該当する記述がない
論理性(構造)2点
  • 2点: 具体的な情報としてFQDN(またはそれに準ずる情報)と明記されている
  • 1点: IPアドレスなど、FQDN以外の情報が記述されている
  • 0点: 該当する記述がない

解説

DNSのSRVレコードは、特定のサービス(ここではケルベロス認証)を提供するサーバのホスト名やポート番号を動的に見つけるために使用されます。SRVレコードを利用しない場合、PC側には通信先となる ケルベロス認証を行うサーバのFQDN (またはIPアドレス等の識別情報)を静的に設定しておく必要があります。

高得点のポイント

  • 対象が ケルベロス認証を行うサーバ であることを明示する
  • 設定すべき情報として FQDN を指定する
(2)配点 5点

図4の SRVレコードが,PCのキャッシュに存在する時間は何分かを答えよ。

模範解答

720

解説

DNSのレコードがキャッシュに保持される時間は、レコードに設定された TTL (Time To Live) の値によって決まります。図4のSRVレコードにおいて、TTLは 4320043200 (秒)と設定されています。これを分単位に換算すると、 43200/60=72043200 / 60 = 720 分となります。

各選択肢の解説

  • 計算誤りやTTL以外の数値を参照しないように注意しましょう。単位の変換(秒から分)が必須です。
(3)配点 5点

図4の二つの SRVレコードの代わりに,図5の一つの SRVレコードを使った場合,DS1と DS2の負荷分散は DNS ラウンドロビンで行わせることになる。図4と同様の比率で DS1と DS2が使用されるようにする場合の,Aレコードの設定内容を,50字以内で述べよ。ここで,DS1の IPアドレスを add1,DS2の IPアドレスを add2とする。

模範解答

ホスト名がDSに対して,add1のAレコードを二つ,add2のAレコードを一つ記述する。

採点基準

知識・理解度(内容)3点
  • 3点: add1のAレコードを2つ、add2のAレコードを1つ記述する旨が示されている
  • 1点: レコードの比率についての言及はあるが、具体的な記述が不十分である
  • 0点: 該当する記述がない
論理性(構造)2点
  • 2点: 代表ホスト名DSに対する設定であることが論理的に記述されている
  • 1点: ホスト名DSの指定が抜けている
  • 0点: 該当する記述がない

解説

SRVレコードのWeightを利用せず、DNSラウンドロビンによって2:1の比率で負荷分散を行わせるための設定方法を問う問題です。DNSラウンドロビンでは、同じホスト名に対して複数のAレコードを登録することで、順番にIPアドレスを返します。したがって、代表ホスト名である DS に対して、add1(DS1)のAレコードを2つ、add2(DS2)のAレコードを1つ 記述することで、要求が2:1の割合で振り分けられるようになります。

高得点のポイント

  • 対象のホスト名が DS であることを明記する
  • add1のAレコードを2つ 記述する
  • add2のAレコードを1つ 記述する

設問3(3)は,正答率が低かった。DS1とDS2とを2:1の比率でDNSラウンドロビンによって負荷分散させるという条件を読み取り,代表するホスト名DSに対するAレコードの設定内容を導き出してほしい。

Spineチーム