Apache の digest 認証

Apache で Digest 認証を行う場合、認証のためのパスワードデータベースは htdigest によって作成します。そのデータベースは username:realm:passwd-digest となっていますが、passwd-digest の部分は username:realm:passwd の MD5 によるハッシュ値です。
ここで疑問が生じました。Digest 認証といえばチャレンジ-レスポンスによる認証で、サーバーは生のパスワードを知らないと認証できなかったはずです。CRAM-MD5 ではたしかそうだったはずです。Apache はパスワードのハッシュ値しか持たずにどうやって認証するんでしょうか?
ということで調べてみました。
HTTP の Digest 認証で通信経路を流れるのは先の passwd-digest を基にチャレンジ-レスポンスによる認証を行います。したがって、passwd-digest 自身がチャレンジ-レスポンスの際の生のパスワードに相当しますが、通信経路を流れるのは passwd-digest とサーバのチャレンジから生成したハッシュ値なので、通信の傍受に対して Basic 認証より安全であるというのは確かなようです。
しかし、サーバに保存されている passwd-digest の値が漏洩した場合は Digest 認証は生のパスワードが漏洩した場合と同様に、成りすましに対して無防備になります。これはチャレンジ-レスポンスによる認証方式一般に言えることなので仕方がありませんが、これでは生のパスワードを直接保存するのではなく、ハッシュ値を保存してそれを使用するようにしている理由がわかりません。
その理由は RFC2617 にありました。

それは、あるダイジェスト認証パスワードファイルが危険に晒された場合、同じユーザ名やパスワードを持つその他のものを危険に晒す事はない (しかし総当たり攻撃には晒される) という事を意味する。

パスワードファイルが漏洩した場合に総当り攻撃に晒されるというのは Basic 認証のパスワードファイルでも同じです。パスワードファイルが漏洩したときの HTTP の認証に対する成りすましの危険度は Digest 認証の方が高いようですが、総合的に見て Basic 認証より Digest 認証の方が安全だということなのでしょう。
参考 URL