Kerberos認証について

はじめに

ネットワークの認証方式として様々なものがある。
本投稿では、Kerberos認証について記載する。

Kerberos認証

ネットワーク認証方式の1つ。
2種類の「チケット」を使って認証を行うことを特徴としている。

  1. 認証サーバが発行する「TGT(Ticket Grating Ticket)」
  2. ファイルサーバ等の何かしらのサービスにアクセスするためのチケット「ST(Service Ticket)」

Kerberos認証の構成

Kerberos認証構成図
Kerberos認証構成図

・KDC(Key Distribution Center)
 - サービスとユーザの信頼関係を一括管理するデータベース(のようなもの)。
Active Directory
 - そのドメイン内のユーザ情報が格納されているデータベース(のようなもの)。
・Authentication Server
 - 認証サーバ。認証処理を行い、その後TGTを発行する。TGTには有効期限やチケット送信時刻(タイムスタンプ)等が含まれる。
・Ticket Grating Service
 - チケット発行サーバ。TGTを受け取り、タイムスタンプ等を確認後、STを発行する。
・Service
 - ユーザがアクセスしたいサービス(ファイルサーバ等)。STを受け取り、認証する。

Kerberos認証の流れ

Kerberos認証の流れ

  1. 認証情報(ユーザ名/パスワード 等)を送信:Client
  2. 認証処理を実施:Authentication Server
  3. TGT(Ticket Grating Ticket)の生成・発行:Authentication Server
  4. TGS(Ticket Grating Service)の生成・発行:Ticket Grating Server
  5. 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