認証・ID管理

Kerberos かーべろす

Kerberosチケット認証Active DirectoryKDCシングルサインオン認証プロトコル
Kerberosについて教えて

簡単に言うとこんな感じ!

一度ログインすると「チケット」をもらえて、そのチケットをサービスに見せるだけで何度もパスワードを入れずに使い続けられる認証プロトコルだよ。遊園地の入場チケットみたいなもので、一日中使い回せるのがポイントなんだ!


Kerberosとは

Kerberos(ケルベロス) は、チケットベースの認証プロトコルで、ネットワーク上の認証を一元化することで、各サービスへのパスワード入力を不要にする(シングルサインオンを実現する)仕組みです。名前はギリシャ神話の三つ首の番犬ケルベロスに由来します。

MITで開発され、現在ではMicrosoft Active Directoryの認証プロトコルとして標準採用されています。Windowsドメイン環境で「一度ログインすれば社内の複数システムにアクセスできる」のはKerberosのおかげです。

認証の中心に KDC(Key Distribution Center:鍵配布センター) があり、ユーザーはKDCから2種類のチケットを受け取ります。

  • TGT(Ticket Granting Ticket):チケットを発行してもらうためのチケット(マスターチケット)
  • サービスチケット:特定のサービスを利用するためのチケット

Kerberosの認証フロー

ステップ処理関与する要素
1ユーザーがID/パスワードでKDCに認証要求クライアント → AS(認証サービス)
2KDCがTGTを発行するAS → クライアント
3クライアントがTGTを提示してサービスチケットを要求クライアント → TGS(チケット発行サービス)
4KDCがサービスチケットを発行するTGS → クライアント
5クライアントがサービスチケットを提示してサービスを利用クライアント → サービスサーバー

歴史と背景

  • 1983年:MITのAthenaプロジェクトでKerberosが開発開始
  • 1988年:Kerberos v4が公開。広く使われるが暗号的な問題が判明
  • 1993年:RFC 1510でKerberos v5が標準化(現在も使われるバージョン)
  • 2000年代初頭:Microsoftがwindows 2000からKerberos v5をActive Directoryの標準認証プロトコルとして採用
  • 2010年代〜:Golden Ticket攻撃(mimikatzを使ったKerberosへの攻撃)が知られるようになる

Kerberosの攻撃手法

攻撃名内容
Pass the Ticketチケットを盗んで別クライアントから使用
Golden TicketKDCのKrbtgtアカウントのハッシュを使ってTGTを偽造
Silver Ticketサービスアカウントのハッシュを使ってサービスチケットを偽造
Kerberoastingサービスチケットを取得してオフラインでパスワードをクラック
AS-REP Roasting事前認証不要のアカウントのハッシュをクラック

これらの攻撃はMITRE ATT&CKラテラルムーブメント・資格情報アクセスに分類されます。


関連する規格・RFC

規格・RFC番号内容
RFC 4120Kerberos v5のプロトコル仕様
RFC 4121Kerberos v5のGSSAPI機構
RFC 6113Kerberosのチャネルバインディング拡張

関連用語

  • Active Directory — KerberosをデフォルトのSSO認証プロトコルとして使用
  • LDAP — Active Directory内でKerberosと共存するディレクトリプロトコル
  • SSO — Kerberosが実現するシングルサインオンの仕組み
  • ラテラルムーブメント — Kerberosへの攻撃が横断侵害に悪用される