はじめに
備忘録です。Kerberos 認証について自分なりにまとめてみました。
本文
1. Kerberos 認証とは
Kerberos 認証(ケルベロス認証)とは、チケットベースの認証プロトコルです。1980 年代にマサチューセッツ工科大学(MIT)で誕生し、2026 年現在でも Microsoft Active Directory などで採用されています。基本仕様は RFC 4120 で標準化されており、2026 年時点での最新バージョンは 2005 年に標準化された Kerberos Version 5(KRB5)です。
Kerberos 認証の通信には TCP / UDP の 88 番ポートを使用します。
補足
ケルベロスという名前は、ギリシャ神話に登場する冥界の番犬である、同名の怪物に由来しています。MIT での開発時のプロジェクト名も Project Athena と、ギリシャ神話の女神の名を冠しており、同神話を意識していたことが垣間見えます。
2. 認証フロー
Realm 内で行われる通信は、共通鍵による暗号化が施されています。
2-1. 用語解説
① Realm
Realm(レルム)とは、Kerberos が管理する論理的な範囲です。今回の認証フローの例では、登場する全てのユーザーやサーバーは、同一の Realm に属しています。Active Directory では、ドメイン名(例 : hoge.com / fuga.local など)とほぼ同じと考えて差し支えないと思います。
補足
Realm には、元々『領土』や『支配領域』という意味があります。
② Principal
Principal(プリンシパル)とは、ユーザーやサーバーなどの ID です。Active Directory におけるユーザーアカウントやサービスアカウント(例 : taro@hoge.com / hanako@fuga.local など)とほぼ同じです。
③ KDC
KDC(Key Distribution Center / 鍵配布センター)とは、Kerberos の中枢サーバーで、内部に AS と TGS という 2 つのサービスとデータベース(KDB)を持っています。Active Directory では、ドメインコントローラーがその役割を担っています。
④ AS
AS(Authentication Server / 認証サーバー)とは、ユーザーが本人であるかどうかを最初に確認するサーバーです。認証に成功した場合、AS 認証済を示すチケットである TGT と、Session Key(共通鍵)を発行します。TGT は TGS の秘密鍵(共通鍵)で暗号化されるため、復号できるのは TGS だけです。
⑤ TGS
TGS(Ticket Granting Server / チケット発行サーバー)とは、TGT と Authenticator(クライアントが自分自身を証明するための情報)を検証し、個別のサーバーへアクセスするための ST を発行するサーバーです。Authenticator は、Session Key(共通鍵)で暗号化されており、TGS は TGT 内の Session Key で Authenticator を復号して本人確認を行います。
⑥ KDB
KDB(Kerberos Database / ケルベロスデータベース)とは、KDC が管理する認証情報のデータベースで、Realm に属する各 Principal の ID や、パスワードなどから導出された鍵情報が格納されています。AS や TGS はこの KDB を参照してチケットを発行します。
⑦ TGT
TGT(Ticket Granting Ticket / チケット認可チケット)とは、AS による認証が完了していることを TGS に証明するチケットです。有効期限内であれば、この TGT と Authenticator を TGS に提示することで、パスワードを再入力せずに何度でも他の ST を要求できます。
⑧ ST
ST(Service Ticket / サービスチケット)とは、特定のサービスを利用するために TGS から発行される専用のチケットです。ST のチケット部分は、アクセス対象サービスの SPN(Service Principal Name)に紐づくサービスアカウントの Kerberos 秘密鍵で暗号化されます。その鍵は通常、サービスアカウントのパスワードから導出されます。この仕組みを悪用し、ST の暗号化部分を利用してサービスアカウントのパスワードをオフラインで推測する攻撃が後述する Kerberoasting です。
3. Kerberos 認証に対する攻撃
Kerberos 認証はチケットベースで動作する仕組みであり、その特性上、チケットの窃取や偽造を悪用した攻撃が成立しやすいという特徴があります。
3-1. Pass-the-Ticket(PtT)
窃取や偽造したチケットを使用して、サービスを不正利用する攻撃です。TGT の場合はゴールデンチケット(全サービス使用可能)、ST の場合はシルバーチケット(特定サービスのみで使用可能)と呼ばれます。不正なチケットであっても、チケットそのものを信用する Kerberos 認証の仕組み上、検知が難しいです。
3-2. Kerberoasting
Kerberoasting(ケルベロスティング)とは、窃取した正規の ST を使用して、オフラインでパスワードを総当たりする攻撃です。対策法については Microsoft 公式が参考になります。
おわりに
随時更新していきます。