ケルベロス認証

ケルベロス認証とは



ケルベロス認証は、ネットワーク認証プロトコルの一つであり、特にシングルサインオン(SSO)システムを提供する上で重要な役割を果たします。1989年から利用されており、マサチューセッツ工科大学(MIT)のAthenaプロジェクトによって開発されました。現在もMITで保守されており、その仕様はRFC 4120で標準化されています。

MicrosoftのActive Directoryにおける推奨認証機構であり、macOSではHeimdalによって実装されています。名称はギリシャ神話の番犬ケルベロスに由来しますが、発音は英語では「カーバラス」に近いものとなります。

プロトコル概要



構造



ケルベロス認証を運用する組織は、独自の「レルム」を構築します。レルムに属するマシンやサービスは「プリンシパル」と呼ばれます。レルムには、KDC(Key Distribution Center、鍵配送センター)という権限者が存在し、KDCはAS(Authentication Server、認証サーバ)とTGS(Ticket Granting Server、チケット発行許諾サーバ)という二つのサーバで構成されています。

手順



1. 初期認証: ユーザーがレルムにログインする際、クライアント端末からIDとパスワードで認証を受けます。認証に成功すると、クライアント端末はパスワードから秘密鍵Kを生成します。クライアントはユーザーIDを平文でASに送信し、ASは自身のデータベースでユーザーの秘密鍵Kを取得します。
2. TGTの発行: ASは、TGT(Ticket Granting Ticket、チケット発行許諾チケット)とクライアント/TGSセッション鍵を、秘密鍵Kで暗号化してクライアント端末とTGSに送信します。TGTは、TGSからチケットを受け取るための大元となるチケットであり、クライアント/TGSセッション鍵は、チケットを受け取る際に使用するセッション鍵です。バージョン4では、共通鍵暗号として56bit DES暗号が用いられます。
3. サービスチケットの取得: ユーザーがプリンシパルAのサービスを利用したい場合、クライアント端末はTGTをAのサービス利用希望とともにTGSに送信します。この通信は、クライアント/TGSセッション鍵で暗号化されます。TGSはTGTの正当性を検証し、Aのサービス利用許可証である「チケット」と、Aとの通信で使用するセッション鍵をクライアント端末に送信します。
4. サービス利用: クライアント端末は、チケットを(セッション鍵で暗号化して)プリンシパルAに送信することで、Aのサービスを利用できるようになります。

特徴



ケルベロス認証では、ユーザーがIDとパスワードを使用するのは、最初にASから認証を受ける時のみです。その後の認証には、TGTが使用され、パスワードの漏洩リスクを低減します。また、TGTを直接プリンシパルに送信するのではなく、TGSを通じてサービス利用のためのチケットを発行することで、なりすましによる不正利用を防いでいます。

歴史



ケルベロス認証は、1980年代にMITのAthenaプロジェクトの研究プロジェクトとして始まりました。クライアントサーバモデルを想定して設計され、ネットワーク認証のために開発されました。初期のバージョンでは、認証サーバと他のコンピュータ間の認証情報のやり取りを暗号化することで、経路上での盗聴を防ぎました。

バージョン3まではMIT内部でのテストに使用され、1989年1月24日にバージョン4が初めて外部に公開されました。バージョン4は、DESを使用していたため、アメリカの暗号化ソフトウェア輸出規制に抵触しました。そのため、MITの開発チームは、暗号化コードを取り除いた「Bones」を作成しました。その後、オーストラリアのエリック・ヤングがDES実装を追加した「eBones」を開発し、アメリカ国外でもバージョン4が合法的に使用できるようになりました。

その後、セキュリティ強化と機能追加を行ったバージョン5が開発され、RFC 1510で文書化され、後にRFC 4120に置き換えられました。

関連項目



アイデンティティ管理

脚注



出典

外部リンク



MITのページ
RFC 1510: Kerberos ネットワーク認証サービス v5
Kerberos FAQ v2.0

もう一度検索

【記事の利用について】

タイトルと記事文章は、記事のあるページにリンクを張っていただければ、無料で利用できます。
※画像は、利用できませんのでご注意ください。

【リンクついて】

リンクフリーです。