ケルベロス認証は、サーバーとクライアント間で、相互に認証を行う仕組みのことです。
認証は、暗号化通信を使って行う特徴があります。一度認証すると、その後のID・パスワード確認の必要がないので、シングルサインオンを行う手段として利用されます。
ケルベロス認証の仕組みとメリット、シングルサインオンの仕組み、ケルベロス認証以外のシングルサインオン方式との比較など、ケルベロス認証についてわかりやすく解説します。
企業の情報セキュリティご担当者様必見!会社としてどんなセキュリティ対策が必要なのか、自社ではどんなセキュリティ対策が不足しているのか、といったことをまずは把握して次にとるべき対策をとっていただくために、LRMでは、「セキュリティチェックシート」を無料で配布しています。
こちらから無料でダウンロードできますので、ぜひご活用ください。
ケルベロス認証とは
ケルベロス認証とは、サーバーとクライアント間で相互に認証を行う仕組みの1つですが、一度認証を行うと、その後ID・パスワードの入力がいらなくなる点に特徴があります。Windowsにおけるアクセス権限の管理を行うActive Directoryに使われているのが代表例です。このことから、ケルベロス認証を使うと、WindowsのID・パスワードを使って他のサーバーへのシングルサインオンを行うことができます。
ちなみに、ケルベロスとは、ギリシャ神話の中に登場する「冥府の番犬」のことです。頭は3つの犬の頭を持ち、尻尾は蛇の尻尾、そして胴体には無数の蛇の頭を備えた架空の動物がケルベロス認証の名前の由来です。
ケルベロス認証には、KDC(Key Distribution Center)といって、どのIDがどのサーバーに対する権限を持っているかを一括管理する機能があります。
そして、KDCは、AS(Authentication Service)=認証機能と、TGS(Ticket Granted Service)=サーバーでの認証時に利用するチケットの発行機能を含んでいます。
ケルベロス認証が、1度の認証でシングルサインオンを実現できるのは、このKDC・AS・TGSの機能によるものです。
ケルベロス認証はどのように動作するか
KDC・AS・TGSによるケルベロス認証は、簡単に説明すると次のように動作します。
- ASにIDとパスワードを入力
- ASで認証を完了
- TGSでKDCが管理するIDがアクセスできるサーバーの情報を元に、各サーバーにチケットを発行
- アクセス可能なサーバーに、TGSで発行されたチケットを提示、認証完了
ユーザーがアクションするのは、ASに対するIDとパスワードの入力で、アクセス権のあるサーバーには逐一IDとパスワードを入力することはありません。しかし、ユーザーが認識することなく、TGSではチケットが発行され、ユーザ―がアクセス可能なサーバーに対する認証を行います。
チケットには有効期間があり、その間はユーザーがサーバーにアクセスすることが可能です。
ところで、チケットが送信される度、チケットに含まれる時刻・日付の情報が変わります。
第三者は、暗号化されたこれらの情報を読み取ることはできず、そのため、認証情報を盗み取って、不正アクセスをサーバーに行うことは防止されます。
ケルベロス認証の利点
ケルベロス認証を使うことによる利点は、以下の通りです。
認証の安全性
チケットを発行する仕組み、そしてチケットの情報を第三者が読み取れない暗号化の仕組みにより、ユーザー以外の者がサーバーにアクセスすることはできません。ケルベロス認証の利点の一つは、なりすまし・情報の窃取による不正アクセスを防止できる安全性です。
ユーザーの利便性
ケルベロス認証を利用すると、ユーザーが何度もID・パスワードを入力する必要性はありません。
社内で多くのシステムにアクセスする場合なども、逐一ID・パスワードを入力する必要がないので、利便性が高い認証方法です。
トラフィックが少ない
ケルベロス認証の仕組みは、KDCへのアクセスを最小限にしつつ、チケットで認証を行います。
KDCへのアクセスおよび、アクセス権に関するデータの参照を逐一行わないので、通信トラフィックを低減できます。システム負荷も少ないので、インシデントにも強い仕組みといえるでしょう。
ケルベロス認証とシングルサインオンの違い
ケルベロス認証はシングルサインオンを実現する仕組みですが、シングルサインオンそのものではありません。
シングルサインオンには、色々な仕組みをとるものがあり、ケルベロス認証のほか、シングルサインオンにもエージェント方式やリバースプロキシ方式、代理認証方式、フェデレーション方式などがあります。
ケルベロス認証は、シングルサインオンの方式の1つである点で、他の方式とは変わりませんが、他の方式との決定的な違いは、チケットを使う仕組みはケルベロス認証のみということです。
他の方式がどんな仕組みを利用しているかは、次項で説明します。
ケルベロス認証以外のシングルサインオンの方式
ケルベロス認証の他のシングルサインオンの方式には、エージェント方式やリバースプロキシ方式、代理認証方式、フェデレーション方式があります。
簡単にそれぞれの仕組みを解説すると、以下の通りです。
フェデレーション方式
認証の際に、SAMLや、Open ID Connectというシングルサインオン用の認証プロトコルを使い、ユーザー情報を第三者からサービスプロバイダに提供して認証を受ける仕組みです。
ユーザー情報をサービスプロバイダに送り、認証を行う方式をフェデレーション方式といいます。サービスプロバイダにユーザー情報を送るのは、Identity Providerというユーザー以外の第三者であり、認証情報をユーザーがリクエストすると、情報を送ることとなります。複数のクラウドサービスに一回の認証でアクセスできるようにするための仕組みです。
エージェント方式
シングルサインオンの対象となるアプリケーション等に、認証用の「エージェント」というプログラムを組み込みます。エージェントがユーザーを認識すると、ID・パスワードの入力なしに共通するエージェントを利用するアプリケーション等に認証されます。
ケルベロス認証や、フェデレーション方式が使えない場合に利用できることにメリットがあります。しかし、アプリケーション等にエージェントを組み込むことになるため、改修の手間が必要になること、アプリケーション側のアップデート等により、エラーも起こりやすい点がデメリットといえます。
リバースプロキシ方式
リバースプロキシは、外部のインターネットから、社内などのサーバーへアクセスされる通信を中継する仕組みのことです。エージェントと同等の機能を、シングルサインオンでアクセスするサービスやアプリケーションにリバースプロキシに組み込む方法です。
シングルサインオンの対象であるWebサービスやアプリケーションには、リバースプロキシ経由でアクセスします。リバースプロキシに通信が集中してしまうこと、万が一リバースプロキシにエラーが生じると、認証が行えなくなることがデメリットです。
代理認証方式
プロキシサーバーが「代理」でユーザ名とパスワードを送信、認証を行う方法です。
エージェント方式と違い、サービスやアプリケーション側では改修の必要がありません。ただし、Webサービスやアプリケーションごとに、代理認証プログラムの開発を行う必要が生じ、それだけ手間がかかります。また、通信がプロキシサーバーに集中すること、プロキシサーバーの故障で認証ができなくなる点にも注意が必要です。
まとめ
シングルサインオンの方式は、システム・アクセスする先のアプリケーションやWebサービスなどにより適したものを選ぶ必要があります。
ケルベロス認証は、Windows Active Directoryに用いられていることから、Windowsを使う社内システムへの認証に広く使われています。シングルサインオンを実現する方式であり、暗号化されたチケットをサーバーとやり取りする仕組みをとっていることから、比較的に安全性が高く、ユーザーの利便性も高い点がメリットです。
また、自社のセキュリティ状況の全体像を把握したい方は、ぜひこちらのチェックシートをご活用ください。