Kerberos認証について
はじめに
ネットワークの認証方式として様々なものがある。本投稿では、Kerberos認証について記載する。
Kerberos認証
ネットワーク認証方式の1つ。2種類の「チケット」を使って認証を行うことを特徴としている。
- 認証サーバが発行する「TGT(Ticket Grating Ticket)」
- ファイルサーバ等の何かしらのサービスにアクセスするためのチケット「ST(Service Ticket)」
Kerberos認証の構成
・KDC(Key Distribution Center)
- サービスとユーザの信頼関係を一括管理するデータベース(のようなもの)。
・Active Directory
- そのドメイン内のユーザ情報が格納されているデータベース(のようなもの)。
・Authentication Server
- 認証サーバ。認証処理を行い、その後TGTを発行する。TGTには有効期限やチケット送信時刻(タイムスタンプ)等が含まれる。
・Ticket Grating Service
- チケット発行サーバ。TGTを受け取り、タイムスタンプ等を確認後、STを発行する。
・Service
- ユーザがアクセスしたいサービス(ファイルサーバ等)。STを受け取り、認証する。
Kerberos認証の流れ
- 認証情報(ユーザ名/パスワード 等)を送信:Client
- 認証処理を実施:Authentication Server
- TGT(Ticket Grating Ticket)の生成・発行:Authentication Server
- TGS(Ticket Grating Service)の生成・発行:Ticket Grating Server
- TGSをもとに認証:Service(ファイルサーバ等)
なお、チケット取得時のパケットを見ると、以下のような内容のパケットがやりとりされている。
WireShark等でパケットキャプチャをとる際はこれらの内容が目印になる。
・AS-REQ : Client→Authentication Serverの通信
・AS-RES : Authentication Server→Clientの通信
・TGS-REQ: Client→TGSの通信
・TGS-RES : TGS→Clientの通信
Kerberos認証のメリット
シングルサインオンの仕組みの提供が容易になる。仮にClientが使いたいサービスが5つあったとして、Kerberos認証を適用しないと、5つのサービス全てに対してユーザ名やパスワードを入力して認証を行う必要がある。
Kerberos認証では、ユーザ名とパスワードを入力して認証するのは最初の1回だけで、以降はすべてチケットを使って認証が行われる。
また、チケット自体も暗号化されているため、セキュリティのリスクもおさえることができる。
参考文献
・Kerberos の概要とチケット取得の様子を目で確認した結果 - Web/DB プログラミング徹底解説・ケルベロス認証(Kerberos Authentication)とは
・Kerberos認証 | 日経 xTECH(クロステック)
・ケルベロス認証とは | セキュリティ用語解説 | 日立ソリューションズの情報セキュリティブログ
・Kerberos(ケルベロス)認証とは - @IT
・https://wa3.i-3-i.info/word15908.html