Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

This article is a Private article. Only a writer and users who know the URL can access it.
Please change open range to public in publish setting if you want to share this article with other users.

Kerberos 認証について整理する

0
Posted at

はじめに

備忘録です。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 の中枢サーバーで、内部に 2 つのサービス (AS / TGS) とデータベース (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 / サービスチケット) とは、特定のサーバーを利用するために発行される専用のチケットです。

3. Kerberos 認証に対する攻撃

Kerberos 認証はチケットベースで動作する仕組みであり、その特性上、チケットの窃取や偽造を悪用した攻撃が成立しやすいという特徴があります。

3-1. Pass-the-Ticket (PtT)

窃取や偽造したチケットを使用して、サービスを不正利用する攻撃です。TGT の場合はゴールデンチケット (全サービス使用可能)、ST の場合はシルバーチケット (特定サービスのみ使用可能) と呼ばれます。不正なチケットであっても、チケットそのものを信用する Kerberos 認証の仕組み上、検知が難しいです。

3-2. Kerberoasting

窃取や偽造した ST を使用して、オフラインでパスワードを総当たりする攻撃です。対策法については Microsoft 公式が参考になります。

おわりに

随時更新していきます。

0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?