web-dev-qa-db-ja.com

Kerberos KDCはユーザーの平文パスワードを知っていますか?

http://www.freebsd.org/doc/handbook/kerberos5.html セクション15.7.8.3「KDCは単一障害点」で読むことができます:

設計上、KDCはマスターパスワードデータベースが含まれているのと同じくらい安全でなければなりません。 KDCで実行されている他のサービスは絶対になく、物理的に保護されている必要があります。 Kerberosは、同じキー(「マスター」キー)で暗号化されたすべてのパスワードを格納し、そのキーがファイルとしてKDCに格納されるため、危険性が高くなります。

KDCが侵害された場合、攻撃者はすべてのユーザーの平文パスワードを知っているので(これは、Linuxシステムの/ etc/shadowを取得するのとは対照的にonlyハッシュ化およびソルト化されたパスワードを攻撃者に提供します)?

12
mgd

答えは、あなたが何を意味するかによって、はいといいえの両方です。基本的なKerberosモデルでは、通常、レルムの各プリンシパルはKerberos認証サーバー(鍵配布センター、またはKDC)と秘密を共有します。 (クライアントとしてのみ機能するプリンシパルはシークレットの共有を回避でき、代わりにKDCへの認証に他の方法を使用できるため、「通常」と言います。たとえば、PKINITを介したRSAキーペア、またはパスワード推測を回避するワンタイムパスワード問題はここで完全に説明されています。)Webサーバーのようなソフトウェアコンポーネントの場合、これはランダムに生成されたキーのセットです。さまざまな暗号をサポートするクライアントに対応するために、1つだけではなくセットがあります。ユーザーにとっては、ユーザーのパスワードから派生した一連のキーです。したがって、KDCはすべての秘密を保持しています。これが侵害された場合、攻撃者はKDCのレルム内の任意のプリンシパルになりすますことができます。

ただし、KDCには実際にはユーザーのpasswordはなく、派生したキーのセットfromのみが含まれています。 Kerberos自体に関する限り、この区別は重要ではありません。キーは実際のKerberosシークレットです。ただし、人々は多くの場合、さまざまなシステムでパスワードを再利用します。したがって、KDCが侵害された場合、攻撃者は、たとえば、GMailアカウントにアクセスするために使用するユーザーのパスワードをすぐには入手できません(ただし、辞書攻撃を仕掛けてパスワードを発見しようとすることができます)。

KDCが侵害された場合、攻撃者はすべてのユーザーの平文パスワードを知っているので、これはKerberosのアキレス腱であることを意味しません(攻撃者にのみ提供するLinuxシステムの/ etc/shadowを取得するのではなく)ハッシュ化およびソルト化されたパスワード)?

これはKerberosのpropertyです。それを「アキレス腱」とは言いません。 Unixのパスワードハッシュスキームでは、1つのことを実行できます。サーバーに渡す必要があるプレーンテキストのパスワードを確認します。 KerberosやPKIなどのシステムは、それよりもはるかに多くのことを行うことができ、それぞれのテクノロジーによって決定されるさまざまな方法で配布される、保護するためのより多くの秘密を持っています。 PKIにはすべてのユーザーキーを持つ単一のストアはありませんが、CA秘密キーを同様に盗むため、Kerberosプリンシパルデータベースと同じくらい警戒して保護する必要のある、認証局(CA)の非常に機密性の高いキーがあります。攻撃者がシステム内の多くのプリンシパルを偽装できるようにします。 KDCデータベースは、KDC操作のためにオンラインである必要があるため、KDCデータベースよりもCA秘密鍵を保護する方が簡単かもしれません。 )。一方、Kerberosのパスワードベースの認証では、ユーザーの秘密鍵と信頼できるCA証明書を保持するためのセカンダリストアや追加の機器(スマートカードなど)は必要なく、その対称暗号化は、公開鍵の操作よりもはるかに高速です。 PKI。など…多くの比較とトレードオフがあります。

簡単に言えば、いいえ。

ユーザーのパスワードから導出できる秘密鍵を知っています。仕様 RFC 151 は、セクション6の紹介で述べています。

文字列からキーへの関数は一方向であり、マッピングはレルムごとに異なることが望ましいです。複数のレルムに登録されているユーザーは、それぞれに同じパスワードを使用することが多く、あるレルムのKerberosサーバーを攻撃する攻撃者が別のレルムでユーザーのキーを取得または取得しないことが望ましいため、これは重要です。

すべてのアカウントに固有のランダムなソルトはなく、同じレルムのすべてのユーザー間で共有されるレルム名があることに注意してください。

更新されたバージョン RFC 412 を使用すると、他の方法でキーを取得できます。

ユーザーキーはスマートカードに保存されるか、パスワードとは別に取得されます。

10