Kerberos(カーバロス)とは | 意味や読み方など丁寧でわかりやすい用語解説
Kerberos(カーバロス)の意味や読み方など、初心者にもわかりやすいように丁寧に解説しています。
読み方
日本語表記
ケルベロス (ケルベロス)
英語表記
Kerberos (カーバロス)
用語解説
Kerberosは、ネットワーク上で安全にユーザー認証を行うためのプロトコルである。クライアントとサーバーが相互に身元を確認し合うために設計されており、特に企業内ネットワークのような信頼性の低いネットワーク環境において、安全な通信を実現する。このプロトコルの大きな特徴は、一度の認証で複数のサービスにアクセスできるシングルサインオン(SSO)機能と、パスワード自体をネットワーク上に送信しない高いセキュリティレベルにある。マサチューセッツ工科大学(MIT)で開発され、その名称はギリシャ神話に登場する三つの頭を持つ冥界の番犬「ケルベロス」に由来する。これは、認証サーバー、チケット発行サーバー、そしてクライアントとサーバー間の認証という三者を守る役割を象徴している。
Kerberos認証の仕組みを理解するためには、主要な構成要素を知る必要がある。第一に、サービスを利用したいユーザーやコンピュータである「クライアント」。第二に、ファイル共有やデータベースなど、クライアントが利用したいサービスを提供する「サーバー」。そして第三に、これら両者の認証を仲介する最も重要な要素である「Key Distribution Center(KDC)」である。KDCはさらに二つの機能に分かれる。一つは「Authentication Server(AS)」で、最初にクライアントが本人であることを確認する役割を担う。もう一つは「Ticket-Granting Server(TGS)」で、特定のサービスへアクセスするための許可証を発行する役割を持つ。
実際の認証プロセスは、これらの構成要素が連携して行われる。まず、クライアントはユーザーIDをASに送信し、認証を要求する。このとき、パスワードは送信しない。ASは、データベースに保管されているユーザーのパスワードハッシュから生成した秘密鍵を使い、「Ticket-Granting Ticket(TGT)」と呼ばれる特殊なチケットと、「TGSセッションキー」という一時的な鍵を暗号化してクライアントに返信する。クライアントは、ユーザーが入力したパスワードから同じ秘密鍵を生成し、受け取ったデータを復号する。復号に成功すれば、クライアントはTGTとTGSセッションキーを手に入れることができる。このTGTは、TGSに対して自身が正当なユーザーであることを証明するための証明書のようなものである。
次に、クライアントは特定のサーバーのサービスを利用したくなった場合、先ほど入手したTGTとTGSセッションキーを使ってTGSにアクセスを要求する。具体的には、TGTと、アクセスしたいサーバーの情報やタイムスタンプなどを含んだ認証情報をTGSセッションキーで暗号化したものをTGSに送信する。TGSは、自身の秘密鍵でTGTを復号してクライアントの正当性を検証し、問題がなければ、目的のサーバーにアクセスするための「サービスチケット」と、そのサーバーとの通信で使う「サーバーセッションキー」を生成する。これらはクライアントのTGSセッションキーで暗号化されてクライアントに送り返される。
最終段階として、クライアントは受け取ったサービスチケットと、サーバーセッションキーで暗号化した認証情報を目的のサーバーに送信する。サーバーは、自身の秘密鍵(KDCと共有している)でサービスチケットを復号し、その内容が正当であるかを確認する。同時に、サーバーセッションキーを使って認証情報を復号し、クライアントから送られてきた情報と一致するかを検証する。この検証が成功すると、サーバーはクライアントを正当な利用者として認証し、サービスの提供を開始する。この仕組みにより、クライアントとサーバーは互いに相手が本物であることを確認できる相互認証が実現される。
Kerberosは、パスワードそのものをネットワーク上に流さず、代わりに有効期限が設定された「チケット」と呼ばれる電子的な証明書を利用することで、盗聴やなりすましといった攻撃に対して高い耐性を持つ。この堅牢な認証メカニズムから、MicrosoftのActive Directoryにおける標準認証プロトコルとして採用されるなど、大規模なエンタープライズ環境で広く利用されている。システムエンジニアを目指す上で、この安全で効率的な認証基盤の仕組みを理解することは非常に重要である。