ケルベロス(kerberos)認証とは
ケルベロス認証とは、ネットワーク上で安全にユーザーの認証を行うための仕組みです。もともとは地獄の番犬「ケルベロス」に由来しており、チケットや暗号技術を用いて、ユーザーやサービスの身元を確認する認証プロトコルです。
ユーザーは最初のログイン時に認証を済ませると、「チケット」と呼ばれる認証データが発行されます。チケットは一定時間のみ有効で、その間は複数のサービスに再ログインせずにアクセス可能です。
このような仕組みにより、ケルベロス認証はシングルサインオン(SSO)を実現する代表的な方式の一つとされています。
Active Directoryでも利用されている
WindowsのActive Directoryドメインでは、ケルベロス認証が主要な認証方式として利用されています。ドメインコントローラー上でKDC(Key Distribution Center)が動作し、Active Directoryに登録されたユーザーやコンピューターなどの情報をもとに認証を行います。
例えば、ユーザーがWindows端末へログインしたあと、ファイルサーバや社内システムなどへアクセスする際に、対応する環境であればID・パスワードを毎回入力することなく認証できます。
ケルベロス認証の仕組み
ケルベロス認証では、KDCと呼ばれる認証サーバがユーザーとサービスの間に入り、チケットを発行します。パスワードそのものを各サービスへ送信するのではなく、有効期限のあるチケットを使ってユーザーの正当性を証明することが大きな特徴です。
KDC・AS・TGSとは
ケルベロス認証の中心となるのが、KDC(Key Distribution Center:鍵配送センター)です。KDCは主に「AS」と「TGS」の2つの役割をもちます。
- KDC(Key Distribution Center)
- ケルベロス認証においてチケットの発行・管理を担う認証サーバです。
- AS(Authentication Service)
- ユーザーの初回認証を行い、TGT(Ticket Granting Ticket)を発行します。
- TGS(Ticket Granting Service)
- TGTを確認し、ユーザーが利用したいサービスにアクセスするためのサービスチケットを発行します。
ユーザーは一度TGTを取得すれば、その有効期間中はTGTを利用して必要なサービスチケットを取得できるため、サービスごとにIDやパスワードを入力する必要がありません。
ケルベロス認証の流れ
ケルベロス認証は、大きく以下の3段階で行われます。
- 1:ユーザーを認証しTGTを取得する
- ユーザーがログインすると、クライアントはKDCのASへ認証を要求します。認証されると、一定期間利用できるTGTが発行されます。
- 2:サービスチケットを取得する
- ファイルサーバなどのサービスを利用する際、クライアントはTGTをKDCのTGSへ提示し、対象サービス用のサービスチケットを取得します。
- 3:サービスへアクセスする
- クライアントは取得したサービスチケットを対象サーバへ提示します。サーバがチケットを検証し、問題がなければサービスを利用できます。
この仕組みにより、ユーザーは最初の認証後、チケットの有効期間中であれば複数のサービスへスムーズにアクセスできます。
ケルベロス認証とシングルサインオン(SSO)の違い
ケルベロス認証とシングルサインオンは同じものではなく、ケルベロス認証はシングルサインオンを実現する方法の一つです。
シングルサインオン(SSO)は、一度のユーザー認証で複数のシステムやサービスを利用できるようにする「仕組み」を指します。一方、ケルベロス認証は、チケットを利用してユーザーやサービスを認証する「認証プロトコル」です。
| 比較項目 | ケルベロス認証 | シングルサインオン(SSO) |
|---|---|---|
| 概要 | チケットを利用する認証プロトコル | 一度の認証で複数のサービスを利用できる仕組み |
| 主な役割 | ユーザーやサービスの身元を確認する | 複数サービスへのログインを一本化する |
| 主な利用例 | Active Directoryなどのドメイン環境 | 社内システムやクラウドサービスなど |
| 関係 | SSOを実現する方式の一つ | KerberosやSAMLなどさまざまな方式で実現できる |
つまり、「ケルベロス認証かシングルサインオンか」という二者択一ではありません。ケルベロス認証を利用した結果として、シングルサインオン環境を構築できる場合があります。
ケルベロス認証とほかの認証方式の違い
シングルサインオンを実現する認証方式はケルベロスだけではありません。Windows環境で利用されるNTLMや、クラウドサービスのSSOで広く利用されるSAMLなどがあります。それぞれの違いを見ていきましょう。
ケルベロス認証とNTLMの違い
NTLMは、主にWindows環境で利用されてきた認証方式です。ケルベロス認証と異なり、チケットを利用した認証ではありません。
ケルベロス認証では、クライアントが一度サービスチケットを取得すると、そのチケットを利用してサービス側で認証できます。また、クライアントだけでなく接続先サーバの正当性も確認する相互認証に対応しています。
一方、NTLMではケルベロスのような相互認証は行えません。そのため、Active Directoryドメインなどケルベロスを利用できる環境では、一般的にケルベロス認証が利用されます。
ケルベロス認証とSAML認証の違い
SAML(Security Assertion Markup Language)は、IdP(Identity Provider)とSP(Service Provider)の間で認証や認可に関する情報をやり取りするための標準規格です。Webアプリケーションやクラウドサービスのシングルサインオンで広く利用されています。
| 比較項目 | ケルベロス認証 | SAML認証 |
|---|---|---|
| 主な仕組み | KDCが発行するチケットを利用 | IdPが発行するSAMLアサーションを利用 |
| 主な利用環境 | Active Directoryなどのドメイン環境 | Webアプリ・クラウドサービス |
| SSO | 対応 | 対応 |
| 主な特徴 | 企業ネットワーク内の認証との親和性が高い | 異なるドメインやクラウドサービス間の認証連携に適している |
社内のWindows環境ではケルベロス認証、複数のSaaSへのログインをまとめる場合にはSAML認証というように、利用環境によって適した方式は異なります。
ケルベロス認証とシングルサインオンのメリット
つづいて、ケルベロス認証とシングルサインオンのメリットを見ていきましょう。
利便性の向上
ケルベロス認証やシングルサインオンを導入することで、1つのパスワードで複数のアカウントにログイン可能です。
つまり、パスワード管理の手間が大幅に減ります。複数のパスワードを管理するとなると、管理者の負担は大きくなるでしょう。また、パスワードを忘れてログインできなくなる可能性があります。
シングルサインオンを利用すれば1つのパスワードを覚えておくだけになるので、このようなトラブルを回避できます。サービスの利便性が向上し、結果的に売上アップにもつながるでしょう。
セキュリティの強化
パスワード管理は複数のアカウントを把握しなくてはならず、面倒で負担がかかるものです。そのため、以下のようなケースがよくみられます。
- ■パスワードを書いた紙を誰でも見える場所に貼っている
- ■複数のアカウントで同じパスワードを使いまわしている
- ■簡単で短いパスワードを使っている
このようなパスワード管理をしているとセキュリティリスクが生じます。シングルサインオンやケルベロス認証を活用すれば、サービスごとにID・パスワードを入力する負担を軽減できるため、長く複雑なパスワードでも容易に管理できます。
複雑なパスワードを設定すれば、総当たり攻撃を受けて不正アクセスされる可能性は低いでしょう。このように、シングルサインオンの仕組みを活用すれば、セキュリティ強度を高めることが可能です。
ケルベロス認証の注意点・デメリット
ケルベロス認証は利便性とセキュリティの向上に役立つ一方、安定して運用するためにはKDCの可用性や時刻同期、チケットの管理などに注意が必要です。導入前に押さえておきたいポイントを紹介します。
KDCの可用性とセキュリティ対策が重要
KDCはチケットの発行を担う、ケルベロス認証の中心的な役割をもつシステムです。KDCに障害が発生すると、新たな認証やチケット取得に影響する可能性があります。
企業で運用する場合は、KDCを適切に冗長化するなど可用性を確保するとともに、不正アクセスを防ぐためのセキュリティ対策が求められます。
端末やサーバの時刻同期が必要
ケルベロス認証では、チケットや認証情報に時刻情報が利用されます。そのため、クライアント・KDC・サーバの時刻に大きなずれがあると、正しいユーザーであっても認証に失敗する可能性があります。
NTPなどを利用して、認証に関係する機器の時刻を適切に同期することが重要です。
チケットの窃取にも対策が必要
ケルベロス認証ではパスワードを各サービスへ繰り返し送信しませんが、チケットそのものの管理も重要です。利用端末が不正アクセスを受け、認証に利用するチケットなどが窃取されると、不正利用につながる可能性があります。
端末のセキュリティ対策やアクセス権限の適切な設定、認証ログの監視などを組み合わせて運用しましょう。
シングルサインオンの主な実現方法
シングルサインオン(SSO)を実現するためには、いくつかの異なる方式があります。組織の規模や利用システム、セキュリティ要件に応じて、最適な認証方法を選ぶことが重要です。ケルベロス認証以外にも、さまざまな手法でシングルサインオンは実現可能です。ここでは、代表的な方式として、ICカード認証・統合Windows認証・SAML認証の3つを紹介します。
ICカード認証
端末にICカードリーダーを接続し、ICカードを挿入・かざすことで認証を行う方式です。
パスワードを入力する手間がないので利便性が高く、ICカード以外では認証できません。ICカードに加えて、パスワードやクライアント証明書による認証を併用すると、より安全です。パスワードという知識認証と、カードという所有物認証を組み合わせた多要素認証になるためです。
また、ICカードの使用ログを記録できるので、利用状況の管理も可能です。共用端末でもICカード認証を行えば利用者を特定できます。ICカードによる認証は2000年代前半から中盤までによく使われました。
統合Windows認証(Active Directoryによるシングルサインオン)
統合Windows認証とは、Windowsアカウント情報を利用してWebアプリなどに自動ログインできる認証方式です。Active Directory(AD)と連携することでシングルサインオンを実現します。
この仕組みでは、ケルベロス認証やNTLM、SPNEGOといった技術が使われており、ユーザーが明示的にID・パスワードを入力せずに認証が完了します。
SAML認証
SAMLとは「Security Assertion Markup Language」の略であり、認証情報をやり取りする際のプロトコルです。
SAML認証では、IdP(Identity Provider)とSP(Service Provider)の間で認証情報をやり取りし、ユーザー認証を行います。今までのような社内システムだけでなく、クラウドサービスも使う場合はSAML認証が使われることが多いです。
なお、SAMLはフェデレーション型SSOに分類され、Kerberosなどの社内ネットワーク型SSOと異なり、IdP(Identity Provider)を介してクラウドサービスとの連携が可能です。
「自社に合うシングルサインオン製品を診断してみたい」、「どんな観点で選べばいいかわからない」という方向けの診断ページもあります。
簡単な質問に答えるだけで、最適なシステムを案内します。
ケルベロス認証に関するよくある質問
最後に、ケルベロス認証についてよくある疑問を解説します。
- ■ケルベロス認証とシングルサインオンは同じものですか?
- 同じものではありません。シングルサインオンは一度の認証で複数のサービスを利用できる「仕組み」であり、ケルベロス認証はそれを実現するために利用できる認証プロトコルの一つです。
- ■Active Directoryではケルベロス認証が使われますか?
- はい。WindowsのActive Directoryドメインでは、ケルベロス認証が主要な認証方式として利用されています。ドメインコントローラー上のKDCがチケットの発行などを担います。
- ■ケルベロス認証はクラウドサービスでは利用できませんか?
- ケルベロス認証がクラウドで利用できないわけではありません。クラウドやハイブリッド環境で利用されるケースもあります。ただし、多くのWebサービスやSaaSでは、SAMLやOpenID Connectなどを利用したSSOが採用されています。利用するシステムやサービスに応じて適切な方式を選びましょう。
ケルベロス認証などを用いてシングルサインオンを構築!
ケルベロス認証とは、KDCが発行するチケットを利用してユーザーやサービスを認証するネットワーク認証方式です。チケットはいわば有効期限付きの鍵で、一定期間内なら再ログインの必要はありません。サービスへアクセスするたびにID・パスワードを入力する必要がないため、利便性の向上につながります。
ケルベロス認証以外にも認証方式があるため、自社に適した方式を選び、シングルサインオンを構築しましょう。



