TGT【Ticket Granting Ticket】
概要

Kerberos認証では、利用者がIDとパスワードを入力すると、クライアントが鍵配布センター(KDC:Key Distribution Center)内の認証サーバ(AS:Authentication Server)へ認証を要求する。本人確認が成功するとサーバはTGTを発行し、クライアントに返す。
TGTを受け取ったクライアントはそれをメモリ上に保管する。その後、ファイルサーバやメールサーバなど特定のサービスへ接続する際は、クライアントをKDC内のチケット発行サービス(TGS:Ticket Granting Service)に提示してサービス用チケット(ST:Service Ticket)の発行を要求する。TGSがTGTを検証して問題がなければSTを発行し、クライアントはそのSTを接続先のサービスに提示することでアクセスが許可される。TGT自体が各サービスへ直接送られることはなく、STを取得するための証明として機能する。
TGTの内部には利用者の識別情報やセッション鍵、有効期限、接続元のIPアドレスなどが含まれており、KDCの秘密鍵で暗号化されている。利用者やアプリケーションが内容を書き換えることはできず、改竄やなりすましを防ぎながら認証を継続できる。有効期限が切れると自動的に無効となり、再ログインするか更新処理を行う必要がある。一般的な実装では有効期間は10時間程度に設定されることが多い。
Kerberosはもともと1980年代にMITで開発された認証フレームワークで、WindowsやLinux、macOSを含む様々な環境で標準的に採用されている。この仕組みはActive Directoryを利用したWindowsドメインへのサインインに用いられることでよく知られており、一度ログオンするとTGTを通じて共有フォルダや社内Webシステムなどへのアクセス用チケットが順次発行される。
一方、TGTを悪用した「ゴールデンチケット攻撃」(Golden Ticket Attack)も知られており、攻撃者がKDCの秘密鍵を入手した場合、任意のTGTを偽造してドメイン内のほぼすべてのリソースへ無制限にアクセスできてしまうため、KDCの厳重な保護が運用上の課題となっている。