ケルベロス認証とは?仕組みやメリット、シングルサインオン方式について徹底解説|サイバーセキュリティ.com

ケルベロス認証とは?仕組みやメリット、シングルサインオン方式について徹底解説



近年、さまざまなWebサービスが展開されており、社内システムにおいても複数のシステムで認証が求められることでしょう。その際に、システムごとにログインする手間を省くために用いられる仕組みとして「シングルサインオン(SSO)」がありますが、同時に「ケルベロス認証」についても聞いたことのある方は多いのではないでしょうか。

今回は、ケルベロス認証に焦点を当て、ケルベロス認証の概要からメリット、シングルサインオンとの違いについて解説していきます。

ケルベロス認証とは

ケルベロス(Kerberos)認証はネットワーク認証手段の一つです。サーバーとクライアント間の身元確認のために利用されるプロトコルであり、クライアントとサーバーを相互に認証して、通信を保護するためにサーバーとクライアント間の通信を暗号化しています。

代表的なところでいうと、WindowsのActive Directoryでも利用されているプロトコルです。現在ではIETFでも規格化されているバージョン5が主に利用されています。そのため、ケルベロス認証は「KRB5」とも呼ばれます。

ケルベロス認証では1度ログインすると次回のログイン時にID/パスワードを再度入力する必要がなく、シングルサインオンを実現する方式の一種として注目されています。

ケルベロス認証の仕組み

ケルベロス認証では、一度認証に成功するとチケットを発行し、以降はそのチケットを使って認証なしにサーバー(サービス)が利用できるようになります。ケルベロス認証の仕組みを理解する上では、最低限次の用語を覚えておきましょう。

用語 説明
KDC(Key Distribution Center) サーバーとユーザーに関する情報を一元管理するDB
AS(Authentication Server) ユーザーからの認証を受け付ける認証サーバー
TGS(Ticket Granting Server) KDCに登録されたサーバーを利用するためのチケットを発行するサーバー
TGT(Ticket Granting Ticket) チケット発行のもととなるチケット

イメージとしては、KDCの窓口としてAS/TGSが存在しており、KDCを参照しながらAS/TGSサーバーが応答する、と考えるとわかりやすいのではないでしょうか。

ケルベロス認証の流れを通して、ケルベロス認証の仕組みについて見ていきます。

  1. ASに対してユーザー認証情報を送信
  2. KDCによってユーザー情報とサーバー利用資格をチェック
  3. 問題なければASからTGTチケットを払いだす
  4. TGTチケットをTGSに送信し、利用したいサーバー用のチケットを要求
  5. TGSから利用したいサーバー用のチケットを発行
  6. 利用したいサーバーに対して、TGSから発行されたチケットを送信
  7. チケットに問題がなければサーバーが利用可能となる

上記は初回のケルベロス認証の流れであり、以降は異なるサーバーに対してログインしたい場合は、TGSにサーバーごとのチケット(サービスチケット)を発行してもらい、そのチケットを使うことで認証無しでログインできるようになります。

このように、ケルベロス認証ではユーザーは毎回認証作業を行う必要がなく、シングルサインオンを実現することができるのです。

ケルベロス認証(シングルサインオン)のメリット

ケルベロス認証を利用することでさまざまなメリットが得られます。ここでは、ケルベロス認証のメリットとあわせて、シングルサインオンにも通ずるメリットについても見ていきましょう。

利便性向上

ケルベロス認証を利用することで、ユーザーの利便性は非常に向上します。たとえば、10個のサーバー・サービスを利用する場合、従来の方式ではユーザーはそれぞれのサーバーなどに対して認証を行う必要があったため、10回の認証が必要でした。

しかし、ケルベロス認証は最初の1回だけ認証を行えば、ほかのサーバーなどにはチケットを使ってログインできるため利便性が向上します。

セキュリティ強化

ケルベロス認証を利用しない従来の方式では、サーバー・サービスごとにユーザー情報を管理していたため、セキュリティ的にも注意が必要な状態でした。パスワードはサーバーなどごとに一意のパスワードを設定することが望ましいといえますが、管理が大変になるため簡単なパスワードを使い回すケースが見受けられます。

その場合、簡単にパスワードの推測ができてしまうため、不正アクセスなどの攻撃を受けやすいという危険があったのです。しかし、ケルベロス認証を利用して一元管理することで、強固な一つのパスワードを設定するだけで済むため結果としてセキュリティ強化につながります。

また、サーバーなどとの認証における通信では、ID/パスワード情報を送信せず、チケットによるやり取りとなるため盗聴によるなりすましを防ぐことが可能です。さらに、チケット自体の盗聴によるなりすましを防ぐために時刻同期の仕組みを利用しており、チケットのなりすましも防げます。

これらのことから、ケルベロス認証はセキュリティ強化としてのメリットも持ち合わせているのです。

パスワード管理作業の軽減

ユーザー側だけでなく、システム管理者側にとってもパスワード管理作業の軽減というメリットを得られます。こちらはシングルサインオン全般にいえることですが、ユーザーがパスワードを忘れてしまい、その都度対応する手間を大幅に減らすことが可能だからです。

さらにシングルサインオンでは、ユーザーにサーバーなどのパスワードを伝えずに運用することも可能であり、システム管理者にとっても管理業務の効率化につながります。

低コストで導入可能

ユーザーの認証情報を一元管理する方法としては、「統合ID管理」ソリューションを利用する場合も考えられます。しかし、統合ID管理では大幅なシステム改修などが必要になるため、コストが高い点が欠点です。

その点、シングルサインオンは比較的低コストで導入可能であり、コストがおさえられる点はメリットと言えるでしょう。統合ID管理と比較すると、コストを抑えながら短期導入も可能となっています。

ケルベロス認証とシングルサインオンの違い

ここまで読み進められた方のなかには、「ケルベロス認証とシングルサインオンの違いがわからない」という方もいるかも知れません。ここでは、ケルベロス認証とシングルサインオンの違いを解説します。

ケルベロス認証はシングルサインオンの方式の一種

ケルベロス認証は、シングルサインオンを実現する方式の一種と考えるとよいでしょう。シングルサインオンは一度の認証で複数のサーバー・サービスにログインするための仕組みを表し、それを実現するための方式の一つとしてケルベロス認証があるのです。

ケルベロス認証では最初の認証時にチケットを発行し、以降はチケットを使って認証を行っています。その仕組みはシングルサインオンの考え方と同一であり、シングルサインオンを実現するための方式となり得るのです。

ほかのシングルサインオン方式とはチケットの有無が異なる

シングルサインオンを実現する方式には、ケルベロス認証以外にも複数の方式が存在します。詳細は後ほど解説しますが、ケルベロス認証とその他の方式の違いは何でしょうか。

最も大きな違いは「チケット」の有無と言えるでしょう。ケルベロス認証ではチケットを認証に利用しますが、その他の方式では利用しません。チケットはユーザー独自の鍵となり得るものであり、チケットを使って認証する方式はケルベロス認証ならではといえます。

シングルサインオンの方式

シングルサインオンの方式には複数の種類がありますが、ここではケルベロス認証以外の方式について見ていきましょう。

エージェント方式

対象のサーバーやサービスに対して、エージェント型のソフトウェアをインストールすることでシングルサインオンを実現する方式です。エージェントを通じて認証情報が認証サーバーに保存されるため、同じエージェントをインストールしたサーバーやサービスでも、同様の認証情報を使ってログインすることができます。

リバースプロキシ方式

エージェント方式を少し発展させた形の方式です。サーバーやサービスと認証サーバーの間にリバースプロキシサーバーを用意し、リバースプロキシサーバーにエージェントをインストールすることでユーザーの認証情報を取得します。

エージェント方式では個別のサーバー・サービスに対してインストールが必要でしたが、リバースプロキシ方式ではリバースプロキシサーバーにのみエージェントをインストールすることで対応可能です。

代理認証方式

代理認証方式はクライアントPC側にエージェントをインストールし、各システムのログイン画面を表示した際に代理で認証情報を入力する方式です。代理認証方式はクラウドでID管理を行うIDaaSと組み合わせるとより簡単に実現できます。

サーバー・サービス側の改修が必要なく、シングルサインオンの対象となるシステムの制限が少ない点がメリットです。

フェデレーション方式(SMAL)

クラウドサービスと認証情報を提供するIdP(Identity Provider)とを連携し、シングルサインオンを実現する方式です。主にSAML認証が用いられており、クラウドサービスへのログインで用いられることの多い方式と言えるでしょう。

ユーザーの認証情報はIdPが保有しており、クラウドサービスなどへのログイン時にクラウドサービスとIdPの間でSAML認証を行うことで、複数のサービス間でも自動的にログインできるようになります。

透過型方式

透過型方式はネットワークトラフィックを監視することで、ユーザーがアプリケーションなどへの認証が必要な場合に、認証情報をサーバーに送信することでシングルサインオンを実現する方式です。

透過化型方式に対応したサーバーや、システム側へのエージェントのインストールが必要となりますが、アクセス経路に依存しないため、オンプレミス・クラウドの違いを意識せずにシングルサインオンを実現できます。

まとめ

ケルベロス認証はネットワーク認証手段の一つであり、シングルサインオンを実現するための方式の一種です。ケルベロス認証は「チケット」を利用することが最大の特徴であり、他のシングルサインオン方式にはない独自の仕組みとなっています。

ケルベロス認証やシングルサインオンは、ユーザーの利便性向上やセキュリティ強化といったメリットとあわせて、システム管理者側にもパスワード管理作業の軽減といったメリットをもたらします。

認証情報の一元管理では、統合ID管理ソリューションが用いられることもありますが、シングルサインオンは比較的低コストかつ短期導入が可能です。この記事では、ケルベロス認証以外のシングルサインオン方式も紹介しましたので、ご利用中の環境にあわせてシングルサインオンの導入を検討されてはいかがでしょうか。


SNSでもご購読できます。