ケルベロス認証とは
ケルベロス認証とは、サーバとクライアント間のネットワーク認証方式の1つです。
ケルベロス認証はクライアントとサーバとを相互認証でき、データの機密性のため、クライアントとサーバ間の通信を暗号化します。
ケルベロス認証はRFC4120やRFC4121で仕様が規定され、KRB5とも呼ばれています。
ケルベロス認証を使用したサービスにはMicrosoftのActive Directoryがあります。
ケルベロス認証の構成要素
ケルベロスの用語 | 説明 |
KDC(Key Distribution Center) | サーバとユーザに関する信頼関係の情報を一括管理する中央データベース |
AS(Authentication Server) | KDCの要素で認証を行うサーバ。ユーザからの認証を受け付ける。 |
TGS(Ticket Granting Server) | KDCの要素でチケットを発行するサーバ。各サーバを利用するためのチケットを発行する。 |
TGT(Ticket Granting Ticket) | あらためてKDCに対して要求しなくても、TGTを持つクライアントは他のサーバへの追加チケットを取得できるようになる特殊なチケット。 |
プリンシパル(principal) | KDCが認証を行うユーザやサーバのこと |
レルム(realm) | 同じKDCの配下にあるシステムをグループとして定義する論理ネットワーク |
ケルベロス認証のシーケンス
Kerberos認証のステップ
- ユーザがKDCに認証情報を提供する(AESによる暗号化)
- クライアント/TGS鍵が生成される
- TGTが生成される(あわせて、暗号化された対象鍵がクライアントに送られる)※クライアント側ではTGTを受理(インストール)し、自身のパスワードで対象カギを複合する
- クライアント/サーバチケットが生成される
- ユーザがサービスにアクセスする
ケルベロス認証の特徴
ケルベロス認証は、複数のユーザが複数のサーバを利用するようなケースで、一度だけ認証を受ければ複数のサービスを利用できるようになります。一度認証を受ければ、その後はユーザのアクセス権に応じてアクセスできます。そのため、SSO (シングルサインオン) の実装に適しています。
ケルベロス認証は通信にTCP及びUDPの88番ポート使用します。
ケルベロス認証の弱点としては、以下のものがあります。
- KDCが単一障害点
- 鍵がKDCより盗まれた場合、ユーザのなりすましが行われる
- パスワード推測に体制がない