こんにちは、今回は、すごく苦手なKerberos認証についてざっくりまとめたいと思います。私なりの整理になりますので、間違っている記述等ありましたら、ご指摘いただけますと幸いです。
1. Kerberosとは?
チケットを用いた認証プロトコルで、使用することで、ネットワーク上のアプリケーション、リソースへの安全かつスムーズなアクセスを実現します。
2. Kerberos認証の流れ
流れを見ていく前に、Kerberos認証を構成する要素からご説明します。
登場人物
- クライアント端末:ユーザーが使用する端末です。
- KDC
- AS(Authentication Server):KDCの機能の一つです。ユーザーの認証情報を管理し、TGTを発行します。
- TGS(Ticket Granting Server):KDCの機能の一つです。TGTを使用して、ユーザーがアプリケーションにアクセスするためのSTを発行します。
- サービスA:ユーザーがアクセスしたいサービスです。
チケット
- TGT(Ticket Granting Ticket):TGSへのアクセスを要求するためにクライアントがASから取得するチケットです。
- ST(Service Ticket):サービスへのアクセスを要求するためにクライアントがTGSから取得するチケットです。
認証の流れ
- クライアント端末→AS:TGT要求を行う
- AS:クライアントのパスワードで生成したハッシュ値を使用して、以下を暗号化する
・タイムスタンプが押されたTGT
(ユーザー名、有期限、許可されたサービスなどの情報が含まれる)
・クライアント-TGS間で用いるセッション鍵X - AS→クライアント端末:2を送信する
- クライアント端末:パスワードで生成したハッシュ値を使用して2を復号し、TGSに送るTGTをセッション鍵Xで暗号化する
- クライアント端末→TGS:4で暗号化したTGTを含め、TGS要求する
- TGS:5をセッション鍵Xで復号・検証し、問題なければSTを生成、セッションXを使用して、以下を暗号化する
・ST
・クライアント-サービス間で用いるセッション鍵Y - TGS→クライアント端末:6を送信する
- クライアント端末:セッション鍵Xで6を復号し、サービスBに送るSTをセッション鍵Yで暗号化する
- クライアント端末→サービスB:8を送信
- サービスA:STを受け取り、クライアント端末に対してアクセスを許可するかどうかを決定
3. KerberosとActive Directory
一般的に普段生活している中でKerberos認証を意識することはほぼなく、Active Directoryを導入している企業等で、認証プロセスを中央管理するために利用されています。
Active Directoryは、マイクロソフトが提供する中央集権型のディレクトリサービスですが、Active Directoryが提供する認証サービスの基盤としてKerberos認証が使われています。多くの企業で導入されており、Active Directoryに登録されたユーザーは、Kerberosによる認証を使用して、企業内の各種リソースにアクセスすることができます。
まとめ
今回はKerberos認証について勉強をしていきました。
この記事が、少しでも皆様のご理解に役立てば幸いです。
ここまでお読みいただきありがとうございました!
コメント