見出し画像

【IT】ケルベロス(Kerberos)認証について


1. ケルベロス(kerberos)認証について

最近、同僚がケルベロス(Kerberos)認証を偉い人に教えている場面を横目で見ながら、ケルベロス(Kerberos)認証ってActive Directoryで利用している認証だよな。くらいの認識しかなく、とても気になってしまったので覚えるために書き記すことにした。

1-1.ケロべロス認証とは?

ケルベロス認証(Kerberos authentication)とは、ネットワーク内のクライアントとサーバー間で安全な通信を実現するためのプロトコルである。
このプロトコルは、1980年代にMIT(マサチューセッツ工科大学)で開発されて、名前はギリシャ神話の三頭の犬「ケルベロス」に由来しているとのこと。

こうも書かれている。
ケルベロス(Kerberos)認証とは、ログイン時に用いられる認証方式の一つで、一度ログインすると次回以降はIDとパスワードの入力なしでログインできるようになる仕組みである。
これはシングルサインオンを実現するための方式として活用されている。
またWindowsのActive Directoryのユーザー認証に使用されている方式がケルベロス認証で、Active Directoryの認証でも使われている。

1-2.ケルベロス認証の概要

ケルベロス認証は、主に以下の特徴を持ちます:

  1. 秘密鍵暗号化:クライアントとサーバー間の通信を秘密鍵暗号を用いて保護します。

  2. チケットベース認証:クライアントは「チケット」と呼ばれる認証情報を使ってサーバーにアクセスします。

  3. 一元管理:ケルベロス認証は、認証を一元管理するための「キー配布センター(KDC)」を利用します。

2. Active Directoryの認証について

2-1.Active Directory (AD)との関係

ケルベロス認証は、Windows環境のActive Directory(AD)でも広く利用されている。
Active Directoryは、Windowsドメインネットワークのユーザーやコンピュータの管理を行うディレクトリサービスであり、ケルベロス認証を用いて安全な認証を提供する。具体的には以下のように利用される。

  1. ドメインログオン:ユーザーがWindowsドメインにログオンする際に、ケルベロス認証を通じてユーザーを認証する。

  2. リソースアクセス:ネットワーク上の共有フォルダやプリンタなどのリソースにアクセスする際にも、ケルベロス認証を利用してアクセスを制御する。

2-2.Active Directoryのユーザー認証の流れ

以下、ADのユーザー認証の流れについて

(1) ユーザーがドメインに参加しているコンピューターにログインする場合、認証データがドメインコントローラーに送信される。
(2) ドメインコントローラー側で認証データが正しいことが確認できた場合、チケットを発行。
(3) チケットを受け取ったクライアントは、次にそのチケットを提示することでアクセス先コンピューターに対して認証を行う。
(4) アクセス先コンピューターはこのチケットがドメインコントローラーから発行されたものであるかを確認する。
(5) 正しいチケットであればクライアントのアクセスを許可します。

3.ケルベロス(kerberos)認証の挙動について

3-1.ケルベロス(kerberos)認証の用語について

もう少し詳細に知りたいためケルベロス(kerberos)認証の用語について

$$
\begin{array}{|l|l|} \hline
用語 & 意味  \\ \hline
KDC(Key Distribution Center) & サーバーおよびユーザー情報を一元管理するデータベース    \\ \hline
AS(Authentication Server) & ユーザーからの認証要求を受け取る認証サーバー    \\ \hline
TGT(Ticket Granting Ticket) & サーバー利用時のチケット発行に用いるための、最初の認証で発行されるチケット   \\ \hline
TGS(Ticket Granting Server)& 認証の代わりに用いるチケットを発行するサーバー    \\ \hline
\end{array}
$$

3-2.ケルベロス(kerberos)認証の動作について

以下の順序で認証を行う。上記の2-2.Active Direcotryの認証の流れ の内容と同じことを実施している。

(1)認証要求:クライアントがKDCに対して、認証を求めるリクエストを送信します。
(2)チケット発行:KDCはクライアントを認証し、TGT(チケット・グラント・チケット)を発行します。
(3)サービスチケット要求:クライアントはTGTを用いて、特定のサービスにアクセスするためのサービスチケットをKDCに要求します。
(4)サービスチケット発行:KDCはサービスチケットを発行し、クライアントに返します。
(5)サービスアクセス:クライアントはサービスチケットを用いて、目的のサービスにアクセスします。

以上の認証方法により、ユーザーは一度認証を受けると、どのコンピューターに対してもパスワードを要求されることなくアクセスすることが可能となるとのこと。

以下の説明をしている情報もあり。

1. ユー ザーがIDとパスワードを入力すると、その情報がASに送信される
2. ASはその情報をKDCに問い合わせ、サーバーの利用資格を確認する
3. 問題がなければ、ASからTGTが発行される
4. ユーザーがTGTをTGSに送信し、利用するサーバー用のチケット発行を要求する
5. 問題がなければ、TGSから利用するサーバー用のチケットが発行される
6. ユーザーが、発行されたチケットを利用するサーバーに送信する
7. チケットに問題がなければ、サーバーが利用可能になる
※1~3の手続きは初回のケルベロス認証のみ必要であり、以降、別のサーバーにログインする際は4以降の手続きのみ実施される挙動とのこと。






この記事が気に入ったらサポートをしてみませんか?