番犬(Kerberos)の守るサーバーシステム

「Kerberos 認証」って何ですか?



Kerberos(ケルベロス)認証は,X Window Systemの開発でも有名なプロジェクトアテナ(MIT,IBM,当時のDECの3社による共同研究プロジェクト)の成果として生まれた認証システムの一種です。
 Kerberosの本来の意味はギリシャ神話に出てくる怪物です。冥界の神ハデスが飼っている三つの頭を持つ番犬で,冥界から出ていこうとする者に襲いかかるといわれています。そんな番犬の姿が,ネットワークサービスへの出入りを監視する認証システムの名前としてふさわしいということで,Kerberos認証という名が付きました。
 さて,Kerberos認証システムは,主に認証サーバー,許可証発行サーバー,そして実際のサービス(サーバー)という三つの構成要素を持っています。クライアント(サービスを受ける人やマシン)は,まず認証サーバーにアクセスしてユーザー認証を行い,Ticket Granting Ticket(TGT)の発行を受けます。「券をもらうための券」というニュアンスから分かるように,このTGTだけではクライアントはサービスにアクセスできません。
 サービスを利用する場合,許可証発行サーバーにTGTを送信して,実際の許可証(Ticket)をもらい,その許可証をサーバーに送ってサービスを受けるという仕組みをとります。
 TGTと許可証発行サーバーからもらう許可証という仕組みを介することで,一度認証を受けるだけでクライアントが複数のサーバーを利用でき,しかも許可証が他人に盗まれるリスクを少なくできるというのがKerberos認証のポイントです。TGTだけでは実際のサービスにはアクセスできません。さらに,Ticketはユーザーがサーバーの使用を止めるたびに破棄できるので,仮にTicketが盗まれたとしてもリスクは小さくて済みます。
 認証や許可証の発行手続きは,すべて鍵(公開鍵・秘密鍵)で暗号化されます。Kerberos認証を基にして暗号化サーバーを使うことで,ネットワーク中のデータ全体も暗号化し,高いセキュリティを維持できるとされています。
 Kerberos認証にかかわるさまざまなプロトコルはIETF(Internet Engineering Task Force)が管理するオープン規格であるため,OSやマシンに依存せずに実装できるメリットもあります。Windows 2000は,最新のKerberos version 5をサポートしています。
 もっとも,Windows 2000に実装されたKerberos認証には,一部にマイクロソフト独自の拡張が施されています。その是非をめぐって,パワープログラマが集うSlashdot(http://www.slashdot.com/)というWebのユーザーとマイクロソフトが対立するといった話題もありました。
 Windows 2000のようなケースは例外的で,基本的にKerberosはさまざまなOSが混在している環境で使用できるのが大きなメリットの一つです。とはいえ,一般的なホームユーザーがKerberos認証に触れる機会は多くはないかもしれません。
(米田 聡)