ケルベロス‐にんしょう【ケルベロス認証】
読み方:けるべろすにんしょう
Kerberos認証
別名:ケルベロス認証,Kerberos
【英】Kerberos Certification
Kerberos認証とは、インターネットのような公開されているネットワーク環境において、接続するユーザーを正しく認証するための、ネットワーク認証プロトコルの名称である。RFC 1510で定義されている。
Kerberos認証では、キー配布センター(Key Distribution Center)でパスワードが管理されている。KDCは認証サーバーとして、ユーザーから受け取ったパスワードを認証し、正しいユーザーにはチケット保証チケット(Ticket Granting Ticket)を発行する。認証されたユーザーは、発行されたチケットを利用して各種のネットワークサービスを利用することができる。
参照リンク
Kerberos: The Network Authentication Protocol - (Microsoft)
ケルベロス認証
出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2024/07/10 05:13 UTC 版)
最新版 |
krb5-1.21.2[1] / 2023年8月14日
|
---|---|
プログラミング 言語 |
C |
対応OS | クロスプラットフォーム |
公式サイト | web |
インターネットセキュリティ プロトコル |
---|
キーマネジメント |
|
アプリケーション層 |
DNS |
インターネット層 |
ケルベロス認証(ケルベロスにんしょう、Kerberos - )は、ネットワーク認証方式の一つ[2]。シングルサインオンシステムを提供する[2]。ケルベロス認証は1989年から使われている[2]。
ケルベロス認証は、X Window Systemの開発で知られるマサチューセッツ工科大学 (MIT) のAthenaプロジェクトによって開発され、現在もMITで保守されている。その仕様は RFC 4120 で標準化されている。
マイクロソフトのActive Directoryでの推奨の認証機構となっている[2]。また、macOSでは、Heimdalで実装されている[3]。
名称はギリシャ神話おける地獄の番犬ケルベロスに由来し[4]、日本ではギリシア語読みにならって「ケルベロス」とするが、英語では[ˈkərbərɒs](「カーバラス」に近い発音[5])となる。
プロトコル概要
構造
Kerberos サーバーを運用したい組織は、独自の 「レルム」を構築する。レルムに属するマシンやサービスはプリンシパルと呼ばれる。レルムにはKDC(key distribution center、直訳:鍵配送センター)と呼ばれる権限者が存在する。KDCはAS(Authentication Server、直訳:認証サーバ)というサーバとTGS(Ticket Granting Server、意訳:チケット発行許諾サーバ)というサーバがある。
手順
ユーザがレルムにログインする際には、まず自身の持つクライアント端末からID/パスワードなどで認証を受け、認証が受理されたらクライアント端末はこのパスワードを利用して秘密鍵Kを生成する。クライアントはユーザのIDを平文でASに送り、ASはユーザのIDを自身のデータベースに問い合わせる事でユーザの秘密鍵Kを得る。
次にASはTGT(ticket-granting ticket、意訳:チケット発行許諾チケット)と、クライアント/TGSセッション鍵とをKで共通鍵暗号化してクライアント端末とTGSに送る。ユーザがTGSから「チケット」というデータを受け取るための大元となるチケットがTGTであり、クライアント/TGSセッション鍵はTGSからチケットを受け取る際に用いるセッション鍵である。なお、共通鍵暗号としては、バージョン4においては56bitDES暗号を用いる。
その後ユーザがレルム内にあるプリンシパルAが提供しているサービスを利用したくなったら、ユーザのクライアント端末はTGTをAのサービスを使いたい旨とともにTGSに送る。この際の通信はクライアント/TGSセッション鍵で共通鍵暗号化しておく。TGSはTGTの正当性を確認し、チケットという、Aのサービスを利用する許可証をクライアント端末に送り、さらにAとの通信で用いるセッション鍵もクライアント端末に送る。
チケットに記載された有効期限内にチケットを(セッション鍵で暗号化して)プリンシパルAに送れば、クライアント端末はAの提供するサービスを利用できる。
特徴
以上のように、ユーザがID/パスワードを使うのは最初にASから認証を受ける時だけであり、とても少ない。(以後はTGTを使ってTGSから認証を受ける。)そうすることでID/パスワードの漏洩を防いでいる。
また、TGTを直接プリンシパルAに送ってしまうと、AがTGTを使ってユーザになりすまして別のプリンシパルのサービスを利用できてしまうため、クライアント端末がTGTを直接プリンシパルAに送信する事はしない。その代わりに、TGSにTGTを送ることでAへのアクセスのみに利用できるチケットを発行してもらい、このチケットでAの認証を受け、サービスを利用する。
歴史
1980年代のマサチューセッツ工科大学 (MIT) にて研究プロジェクトとして始まった[6]。MITのAthenaプロジェクトでは開始当初からクライアントサーバモデルを想定して設計されており、そのネットワーク認証のためにKerberosプロトコルが開発された[7][8]。この認証システムは、経路上での盗聴を防ぐために、認証サーバとその他のコンピュータとの間の認証のやりとりを暗号化している[7]。
Kerberosバージョン3まではテストのために開発され、MIT内部でのみ使われた[9]。そして、1989年1月24日に初めてMIT外部にKerberosバージョン4として公開される[9]。Kerberosはいくつかのベンダーに採用されることとなった[9]。
Kerberosバージョン4はDESを用いていたため、アメリカ政府の暗号化ソフトウェアに対する輸出規制に引っかかり、アメリカ国外の組織はMITから合法的にソフトウェアをダウンロードすることはできなかった[10]。そのため、MITの開発チームは、Kerberosのソフトウェアから暗号化のコードをすべて取り除き、骨格だけにした「Bones」を作成した[11]。オーストラリアのエリック・ヤングがこのBonesに独自のDES実装を追加した「eBones」を開発したことで、アメリカ国外でも合法的にKerberosバージョン4を使うことができるようになった[11]。
その後、Kerberosバージョン4に機能を追加し、セキュリティの強化を行ったバージョン5が開発される[11]。Kerberosバージョン5のプロトコルは RFC 1510 で文書化され、 RFC 4120 に置き換えられた[11]。
関連項目
脚注
出典
- ^ http://web.mit.edu/kerberos/krb5-1.21/
- ^ a b c d Jason Garman 著、桑村潤、我妻佳子 訳「はじめに」『Kerberos』(初版第1刷)オライリー・ジャパン、2004年5月28日、7頁。ISBN 4-87311-186-2。
- ^ “Source Browser”. opensource.apple.com. 2019年8月12日閲覧。
- ^ Jason Garman 著、桑村潤、我妻佳子 訳「第1章 イントロダクション」『Kerberos』(初版第1刷)オライリー・ジャパン、2004年5月28日、2頁。ISBN 4-87311-186-2。
- ^ e-words IT用語辞典 Kerberos 【 ケルベロス 】
- ^ Jason Garman 著、桑村潤、我妻佳子 訳「第1章 イントロダクション」『Kerberos』(初版第1刷)オライリー・ジャパン、2004年5月28日、3頁。ISBN 4-87311-186-2。
- ^ a b Jason Garman 著、桑村潤、我妻佳子 訳「第1章 イントロダクション」『Kerberos』(初版第1刷)オライリー・ジャパン、2004年5月28日、5頁。ISBN 4-87311-186-2。
- ^ 編集人 小山 透『コンピュータ・サイエンス誌 bit』共立出版、1990年7月1日、66頁。
- ^ a b c Jason Garman 著、桑村潤、我妻佳子 訳「第1章 イントロダクション」『Kerberos』(初版第1刷)オライリー・ジャパン、2004年5月28日、7頁。ISBN 4-87311-186-2。
- ^ Jason Garman 著、桑村潤、我妻佳子 訳「第1章 イントロダクション」『Kerberos』(初版第1刷)オライリー・ジャパン、2004年5月28日、7-8頁。ISBN 4-87311-186-2。
- ^ a b c d Jason Garman 著、桑村潤、我妻佳子 訳「第1章 イントロダクション」『Kerberos』(初版第1刷)オライリー・ジャパン、2004年5月28日、8頁。ISBN 4-87311-186-2。
外部リンク
- MITのページ
- RFC 1510: Kerberos ネットワーク認証サービス v5
- Kerberos FAQ v2.0 2000/8/18執筆時点。
ケルベロス認証
出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2020/12/23 08:33 UTC 版)
TCPソケットを平文のまま用いたlibvirtdは、標準でSASLを認証機構として用いる。 SASL機構は、標準では、Digest-MD5を用いる。これは、基本的なユーザ名とパスワード形式の認証である。 ケルベロス (Kerberos) 認証のシングルサインオンを有効にするには、libvirt用SASL設定ファイルを変更する必要がある。そのファイルは、/etc/sasl2/libvirt.confである。そして、mech_listパラメータは、digest-md5の代わりにgssapiに変更する必要がある。 もし、UNIXドメインソケットやTLSソケットに対してSASLが有効になっている場合、Kerberosは、SASLを使うことができる。DIGEST-MD5のように、ケルベロス認証機構は、セッションのデータ暗号化機構を提供する。 ディストリビューションによっては、SASL-Kerberosプラグインをデフォルトでインストールしない。この場合、cyrus-sasl-gssapiなどのパッケージをインストールすることが必要になる。 ケルベロス認証プラグインがインストールされているかどうか調べるためには、pluginviewerを実行して、gssapiがリストされるか確認する必要がある。 # pluginviewer ...snip... Plugin "gssapiv2" [loaded], API version: 4 SASL mechanism: GSSAPI, best SSF: 56 security flags: NO_ANONYMOUS|NO_PLAINTEXT|NO_ACTIVE|PASS_CREDENTIALS|MUTUAL_AUTH features: WANT_CLIENT_FIRST|PROXY_AUTHENTICATION|NEED_SERVER_FQDN 次に、ケルベロス認証のレルムの管理者は、プリンシプルをlibvirtサーバ用に発行する必要がある。 プリンシプルは、ホスト毎に、libvirtdに対応して一つ割り当てる必要がある。 そして、プリンシプルは、libvirt/full.hostname@KERBEROS.REALMと名づける必要がある。 この作業は、通常kadmin.localコマンドをケルベロス認証サーバで実行して行われる。しかしながらケルベロス認証サーバによっては、サービスプリンシプルを設定するために他の方法が必要な場合もある。 一度生成されると、プリンシプルは、キータブとしてエクスポートされる。そしてlibvirtd向けには、/etc/libvirt/krb5.tabに設定される。 # kadmin.local kadmin.local: add_principal libvirt/foo.example.com Enter password for principal "libvirt/foo.example.com@EXAMPLE.COM": Re-enter password for principal "libvirt/foo.example.com@EXAMPLE.COM": Principal "libvirt/foo.example.com@EXAMPLE.COM" created. kadmin.local: ktadd -k /root/libvirt-foo-example.tab libvirt/foo.example.com@EXAMPLE.COM Entry for principal libvirt/foo.example.com@EXAMPLE.COM with kvno 4, encryption type Triple DES cbc mode with HMAC/sha1 added to keytab WRFILE:/root/libvirt-foo-example.tab. Entry for principal libvirt/foo.example.com@EXAMPLE.COM with kvno 4, encryption type ArcFour with HMAC/md5 added to keytab WRFILE:/root/libvirt-foo-example.tab. Entry for principal libvirt/foo.example.com@EXAMPLE.COM with kvno 4, encryption type DES with HMAC/sha1 added to keytab WRFILE:/root/libvirt-foo-example.tab. Entry for principal libvirt/foo.example.com@EXAMPLE.COM with kvno 4, encryption type DES cbc mode with RSA-MD5 added to keytab WRFILE:/root/libvirt-foo-example.tab. kadmin.local: quit # scp /root/libvirt-foo-example.tab root@foo.example.com:/etc/libvirt/krb5.tab # rm /root/libvirt-foo-example.tab ケルベロス認証するlibvirtに接続したいアプリケーションがユーザプリンシプルを取得するためにkinitを実行する必要はほとんどない。PAMがケルベロス認証向けに設定されている場合、デスクトップセッションにログインした時点で自動的に取得しているためである。
※この「ケルベロス認証」の解説は、「libvirt」の解説の一部です。
「ケルベロス認証」を含む「libvirt」の記事については、「libvirt」の概要を参照ください。
ケルベロス認証と同じ種類の言葉
- ケルベロス認証のページへのリンク