家studyをつづって

IT技術に関することやセキュリティ、ガイドライン等学んだことをつづっていきます。

ケルベロス認証についてまとめてみました

ケルベロス認証とは
ケルベロス認証とは、サーバとクライアント間のネットワーク認証方式の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の配下にあるシステムをグループとして定義する論理ネットワーク

 

ケルベロス認証のシーケンス

f:id:iestudy:20190928150941p:plain

ケルベロス認証のシーケンスイメージ

tech.nikkeibp.co.jp

 

Kerberos認証のステップ

  1. ユーザがKDCに認証情報を提供する(AESによる暗号化)
  2. クライアント/TGS鍵が生成される
  3. TGTが生成される(あわせて、暗号化された対象鍵がクライアントに送られる)※クライアント側ではTGTを受理(インストール)し、自身のパスワードで対象カギを複合する
  4. クライアント/サーバチケットが生成される
  5. ユーザがサービスにアクセスする

 

ケルベロス認証の特徴

ケルベロス認証は、複数のユーザが複数のサーバを利用するようなケースで、一度だけ認証を受ければ複数のサービスを利用できるようになります。一度認証を受ければ、その後はユーザのアクセス権に応じてアクセスできます。そのため、SSO (シングルサインオン) の実装に適しています。
ケルベロス認証は通信にTCP及びUDPの88番ポート使用します。
ケルベロス認証の弱点としては、以下のものがあります。

  • KDCが単一障害点
  • 鍵がKDCより盗まれた場合、ユーザのなりすましが行われる
  • パスワード推測に体制がない

 

www.itmedia.co.jp