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(認証サービス) |
| 2 | KDCがTGTを発行する | AS → クライアント |
| 3 | クライアントがTGTを提示してサービスチケットを要求 | クライアント → TGS(チケット発行サービス) |
| 4 | KDCがサービスチケットを発行する | 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 Ticket | KDCのKrbtgtアカウントのハッシュを使ってTGTを偽造 |
| Silver Ticket | サービスアカウントのハッシュを使ってサービスチケットを偽造 |
| Kerberoasting | サービスチケットを取得してオフラインでパスワードをクラック |
| AS-REP Roasting | 事前認証不要のアカウントのハッシュをクラック |
これらの攻撃はMITRE ATT&CKのラテラルムーブメント・資格情報アクセスに分類されます。
関連する規格・RFC
| 規格・RFC番号 | 内容 |
|---|---|
| RFC 4120 | Kerberos v5のプロトコル仕様 |
| RFC 4121 | Kerberos v5のGSSAPI機構 |
| RFC 6113 | Kerberosのチャネルバインディング拡張 |
関連用語
- Active Directory — KerberosをデフォルトのSSO認証プロトコルとして使用
- LDAP — Active Directory内でKerberosと共存するディレクトリプロトコル
- SSO — Kerberosが実現するシングルサインオンの仕組み
- ラテラルムーブメント — Kerberosへの攻撃が横断侵害に悪用される