株式会社ジオデータ開発 ロゴ
株式会社ジオデータ開発GEO DATA DEVELOPMENT Inc.

AUTHENTICATION / SINGLE SIGN-ON

Kerberos認証とは?KDC・TGT・サービスチケットの流れを図で理解する

会社のパソコンに一度ログインすると、毎回パスワードを入力しなくてもファイルサーバや社内サービスが利用できることがあります。この仕組みを支える代表的な認証プロトコルが Kerberos(ケルベロス) です。難しそうな用語を覚える前に「誰が、どのチケットを、誰に渡すか」を順番に見ていきましょう。

最重要:TGTとサービスチケットは別物

TGTは「サービスチケットを発行してもらうための引換券」。サービスチケットは「特定のサービスに本人を証明するためのチケット」です。TGTをそのままファイルサーバに出すわけではありません。

1. Kerberosが必要になる場面

営業担当者がPCにログインし、共有フォルダから見積書を開く場合を考えます。毎回ファイルサーバへパスワードを送る仕組みは管理が大変です。そこで信頼された第三者が身元を確認してチケットを発行し、サービス側はそのチケットを検証します。

利用者のPC
社員がログイン
チケットを保持
KDC(信頼される認証基盤)
AS:最初の認証
TGS:サービス別のチケット発行
ファイルサーバ
チケットを検証
共有フォルダへアクセス

2. 用語を整理:KDC・AS・TGS・TGT

用語何をする?たとえると
KDC鍵配布センター。ASとTGSを提供チケットセンター全体
AS利用者を認証し、TGTを発行最初の受付
TGSTGTなどを確認し、サービスチケットを発行行き先別の窓口
TGTTGSにサービスチケットを求める資格情報引換券
サービスチケット特定サービスに提示する暗号化された資格情報入館券
認証子(Authenticator)セッション鍵を持つ本人であることを時刻情報等で示す券の持ち主である証明
セッション鍵利用者とTGS/サービスが共有する一時的な鍵本人確認のための共通の秘密

WindowsのActive Directory環境では通常、ドメインコントローラーがKDCの役割を担います。ASとTGSは別々のサーバである必要はなく、KDCの機能上の役割です。

3. 3段階の通信を図で追う

Kerberos V5の代表的な処理は、AS交換、TGS交換、アプリケーションサーバとの交換に分けられます。矢印の向きと、渡すチケットに注目しましょう。

1

本人認証とTGTの取得

PC → AS
→ AS-REQ:TGTをください
← AS-REP:TGT + クライアント/TGSセッション鍵

パスワードそのものはネットワークへ送らない。通常、事前認証などを使って秘密鍵を知ることを証明する。

2

サービス用チケットを取得

PC → TGS
→ TGS-REQ:TGT + 認証子 + 利用先の指定
← TGS-REP:サービスチケット + クライアント/サービスセッション鍵

TGTを再利用し、ファイルサーバ向けのチケットを取得する。別のサービスには別のチケットを要求する。

3

サーバにログイン

PC → ファイルサーバ
→ AP-REQ:サービスチケット + 認証子
← サーバが検証して認証成立(必要に応じAP-REPで相互認証)

サービスは自分の秘密鍵でチケットを復号し、セッション鍵で認証子を検査する。

上記は概念図です。実際の暗号化対象や鍵の受け渡し、事前認証、チケットの更新には詳細な仕様があります。

4. チケットには何が入る?なぜ盗まれると危険?

サービスチケットには利用者の識別情報、有効期間、セッション鍵などが含まれ、重要な部分はサービス側の秘密鍵で暗号化されています。サーバはそのチケットを復号し、別途渡された認証子をセッション鍵で検証します。

サービスチケット(サービスの鍵で暗号化された部分)
+
認証子(セッション鍵で暗号化・時刻情報を含む)
↓ 検証
「有効なチケット」と「鍵を持つ利用者」を確認

盗まれたチケットだけでは通常、正しい認証子を作れません。一方、チケットと対応するセッション鍵など利用可能な資格情報一式が漏れると、不正利用の危険が生じます。時刻やリプレイキャッシュによる対策もありますが、資格情報の窃取そのものを防ぐことが重要です。

5. なぜパスワードを毎回入力しなくてよいのか

最初のログインでTGTを取得した後は、有効期間中、別のサービスにアクセスするときもTGTを使ってTGSから新しいサービスチケットを受け取れます。これがKerberosによるシングルサインオン(SSO)の基本です。

最初のログイン → TGT取得
↓ 同じTGTを利用
ファイルサーバ用チケット → 共有フォルダ
業務サービス用チケット → 社内アプリ

ただし、チケットを持っていることはアクセス権が必ずあることを意味しません。認証(誰なのか)と認可(何をしてよいか)は別の判断です。

6. KerberosとNTLM、SAMLの違い

方式主な仕組み利用場面
KerberosKDCから取得したチケットと認証子Active Directory内のサービス認証
NTLMチャレンジレスポンス方式Windows環境の互換性用途など
SAMLIdPが発行するXMLベースのアサーションWebサービス間のSSO

「SSOができる」という点では共通する場面がありますが、交換する認証情報や使われるプロトコルは異なります。

7. Pass the TicketとPass the Hashの違い

Pass the Ticket(PtT)は、Kerberosのチケットや関連する認証情報を不正に再利用する攻撃を指します。Pass the Hash(PtH)は、主にNTLMの認証で利用可能なパスワードハッシュを悪用する攻撃です。どちらも、平文パスワードを解析せずに認証情報を悪用する点が重要です。

Pass the Ticket

Kerberosのチケット/対応する鍵などが漏えい → 権限の範囲で不正なアクセスにつながる

Pass the Hash

NTLMパスワードハッシュが漏えい → ハッシュから秘密情報を計算できる認証方式を悪用する

ほかに、チケットの不正な発行や偽造を伴うGolden Ticket・Silver Ticketなども知られています。これらは一般に高い権限や重要な鍵の侵害が関係するため、単純なチケット再利用と同一視しないことが大切です。

8. 安全に運用するための対策

Kerberosは「暗号化されているから攻撃されない」わけではありません。特にクライアントの資格情報が漏れれば、正規のプロトコルを不正に使われる可能性があります。

9. 操作ラボ:認証の流れと失敗条件を体験

次のラボでは、AS → TGS → サービスという順序を1段階ずつ進められます。TGTの有無、期限切れ、サービスチケットの有無、認証子に必要な鍵の所持を切り替えて、なぜログインできたり拒否されたりするのかを確かめましょう。

KERBEROS LAB

チケット認証を段階的に追う

実際の資格情報は扱わない学習用シミュレーションです。

利用者のPC
チケットなし
KDC
AS / TGS
ファイルサーバ
アクセス待ち

ログイン前

利用者のPCにはまだチケットがありません。

開始 → AS
検証条件を変更
まだ認証していません

「次へ」を押してAS交換を始めましょう。

補足:実環境では鍵の種類、TGTの再取得、暗号アルゴリズム、委任、認可、リプレイキャッシュなどの検証が関係します。チェック項目を変更した簡略モデルです。

10. まとめ

Kerberosは「信頼できるKDCがチケットを発行し、各サービスがチケットと認証子を検証する」仕組みです。

ASはTGTを発行、TGSはサービスチケットを発行、ファイルサーバはサービスチケットと認証子を検証します。TGTを繰り返し使うことで、別サービスへアクセスするたびに平文パスワードを入力し直す必要がなくなります。

参考:IETF RFC 4120、Microsoft Learn「Windows Server での Kerberos 認証の概要」「Key Distribution Center」。図とラボはKerberos V5の標準的な動きを初学者向けに簡略化したものです。