ケルベロス認証は、ネットワーク上で安全にユーザー認証を行うためのプロトコルです。主に企業内のシステム(例:WindowsのActive Directory環境など)で利用されます。以下に、ケルベロス認証の基本的なフローをわかりやすく説明します。
🔐 ケルベロス認証フローの概要
登場人物(主要な構成要素):
- クライアント(ユーザー)
-
KDC(Key Distribution Center)
├── AS(認証サービス)
└── TGS(チケット発行サービス) - サービスサーバ(ファイルサーバなど)
📘 認証フロー:3ステップ構成
① ログイン(初期認証:AS とのやり取り)
-
クライアント → AS(認証サービス)
ユーザーがログインし、ユーザー名をASに送信。 -
AS → クライアント
ASはKDC内でユーザーを認証し、「TGT(チケット・グラント・チケット)」と「セッショキー」を送る(セッショキーはユーザーのパスワードから導かれる鍵で暗号化されている)。
② サービスアクセス要求(TGS とのやり取り)
-
クライアント → TGS(チケット発行サービス)
クライアントはTGTとともに、アクセスしたいサービス名を送信。 -
TGS → クライアント
TGSはTGTの有効性を確認し、**「サービスチケット」**を発行。
③ サービス利用(サービスサーバとのやり取り)
-
クライアント → サービスサーバ
クライアントはTGSからもらった「サービスチケット」をサービスサーバに送信。 -
サービスサーバ → クライアント(オプション)
サーバがチケットを確認し、必要であればセッションキーを使って再認証(Mutual Authentication)を行い、接続を許可。
🔁 イメージで理解(簡略図)
[クライアント]
│
│① ログイン要求(ユーザー名)
↓
[ AS(認証サービス)]
↑
│② TGTとセッションキーを返却
│
↓
[ TGS(チケット発行サービス)]
│③ TGTとサービス名を送る
↓
│④ サービスチケットを返却
↓
[ サービスサーバ ]
│⑤ サービスチケットを提示
↓
│⑥ 認証され、サービス利用OK
🔑 ポイントまとめ
- パスワード自体はネットワーク上に流れません。
- TGTとサービスチケットは、暗号化されているため安全。
- チケットには有効期限があり、使いまわしが制限されている。