トップQs
タイムライン
チャット
視点

ケルベロス認証

ウィキペディアから

Remove ads

ケルベロス認証(ケルベロスにんしょう、Kerberos - )は、ネットワーク認証方式の一つ[2]シングルサインオンシステムを提供する[2]。ケルベロス認証は1989年から使われている[2]

概要 最新版, プログラミング 言語 ...

ケルベロス認証は、X Window Systemの開発で知られるマサチューセッツ工科大学 (MIT) のAthenaプロジェクトによって開発され、現在もMITで保守されている。その仕様は RFC 4120 で標準化されている。

マイクロソフトActive Directoryでの推奨の認証機構となっている[2]。また、macOSでは、Heimdalで実装されている[3]

名称はギリシャ神話おける地獄の番犬ケルベロスに由来し[4]、日本ではギリシア語読みにならって「ケルベロス」とするが、英語では[ˈkərbərɒs](「カーバラス」に近い発音[5])となる。

Remove ads

プロトコル概要

要約
視点

構造

Kerberos サーバーを運用したい組織は、独自の 「レルム」を構築する。レルムに属するマシンやサービスはプリンシパルと呼ばれる。レルムにはKDC(key distribution center、直訳:鍵配送センター)と呼ばれる権限者が存在する。KDCはAS(Authentication Server、直訳:認証サーバ)というサーバとTGS(Ticket Granting Server、意訳:チケット発行許諾サーバ)の2要素から構成され、通常は一体として運用される。

各プリンシパルは所属するレルムのKDCを直接信頼し、その証拠としてKDCとの間で共通鍵を共有する。プリンシパルとKDC間で送受信するメッセージはこの共通鍵で暗号化することにより、メッセージの認証および秘匿性を実装する。一方、プリンシパル同士が直接メッセージを生成して送受信することはなく、プリンシパル同士の信頼はKDCが生成するメッセージを通じて推移的に確立する。

手順

ユーザがレルムにログインする際には、まず自身の持つクライアント端末からID/パスワードなどで認証を受け、認証が受理されたらクライアント端末はこのパスワードを利用して秘密鍵Kを生成する。クライアントはユーザのIDを平文でASに送り、ASはユーザのIDを自身のデータベースに問い合わせる事でユーザの秘密鍵Kを得る。

次にASはTGT(ticket-granting ticket、意訳:チケット発行許諾チケット)と、クライアント/TGSセッション鍵とをKで共通鍵暗号化してクライアント端末とTGSに送る。ユーザがTGSから「チケット」というデータを受け取るための大元となるチケットがTGTであり、クライアント/TGSセッション鍵はTGSからチケットを受け取る際に用いるセッション鍵である。なお、共通鍵暗号としては、バージョン4においては56bitDES暗号を用いる。

その後ユーザがレルム内にあるプリンシパルAが提供しているサービスを利用したくなったら、ユーザのクライアント端末はTGTをAのサービスを使いたい旨とともにTGSに送る。この際の通信はクライアント/TGSセッション鍵で共通鍵暗号化しておく。TGSはTGTの正当性を確認し、チケットという、Aのサービスを利用する許可証をクライアント端末に送り、さらにAとの通信で用いるセッション鍵もクライアント端末に送る。

チケットに記載された有効期限内にチケットを(セッション鍵で暗号化して)プリンシパルAに送れば、クライアント端末はAの提供するサービスを利用できる。

特徴

以上のように、ユーザがID/パスワードを使うのは最初にASから認証を受ける時だけであり、とても少ない。(以後はTGTを使ってTGSから認証を受ける。)そうすることでID/パスワードの漏洩を防いでいる。

また、TGTを直接プリンシパルAに送ってしまうと、AがTGTを使ってユーザになりすまして別のプリンシパルのサービスを利用できてしまうため、クライアント端末がTGTを直接プリンシパルAに送信する事はしない。その代わりに、TGSにTGTを送ることでAへのアクセスのみに利用できるチケットを発行してもらい、このチケットでAの認証を受け、サービスを利用する。

Kerberosは暗号アルゴリズムとして共通鍵暗号および暗号文の改ざん対策としてのハッシュ関数のみを用い、公開鍵暗号には依存しない。

Remove ads

歴史

1980年代マサチューセッツ工科大学 (MIT) にて研究プロジェクトとして始まった[6]。MITのAthenaプロジェクトでは開始当初からクライアントサーバモデルを想定して設計されており、そのネットワーク認証のためにKerberosプロトコルが開発された[7][8]。この認証システムは、経路上での盗聴を防ぐために、認証サーバとその他のコンピュータとの間の認証のやりとりを暗号化している[7]

Kerberosバージョン3まではテストのために開発され、MIT内部でのみ使われた[9]。そして、1989年1月24日に初めてMIT外部にKerberosバージョン4として公開される[9]。Kerberosはいくつかのベンダーに採用されることとなった[9]

Kerberosバージョン4はDESを用いていたため、アメリカ政府の暗号化ソフトウェアに対する輸出規制に引っかかり、アメリカ国外の組織はMITから合法的にソフトウェアをダウンロードすることはできなかった[10]。そのため、MITの開発チームは、Kerberosのソフトウェアから暗号化のコードをすべて取り除き、骨格だけにした「Bones」を作成した[11]オーストラリアのエリック・ヤングがこのBonesに独自のDES実装を追加した「eBones」を開発したことで、アメリカ国外でも合法的にKerberosバージョン4を使うことができるようになった[11]

その後、Kerberosバージョン4に機能を追加し、AESSHA-1等の追加によりセキュリティの強化を行ったバージョン5が開発される[11]。Kerberosバージョン5のプロトコルは RFC 1510 で文書化され、RFC 4120 に置き換えられた[11]RFC 8009 ではSHA-2が追加されている。

HeimdalはやはりDESの輸出規制を回避するため、スウェーデン王立工科大学(KTH)にて1997年から開発された。[12][13]当初はKTH-KRBという名称で、エリック・ヤングのDES実装を使用していた。その後、DESの実装はHeimdal独自のものに置き換えられ、その際にライブラリ名がlibhcryptoへ変更されたことから、それまでに名称をHeimdalに改称したとみられる。

Remove ads

関連項目

脚注

外部リンク

Loading related searches...

Wikiwand - on

Seamless Wikipedia browsing. On steroids.

Remove ads