mod_auth_digest
描述: | 使用 MD5 摘要式身份验证进行用户身份验 |
状态: | 延期 |
模块标识符: | auth_digest_module |
源文件: | mod_auth_digest.c |
摘要
此模块实现 HTTP 摘要式身份验证(RFC2617),并提供mod_auth_basic的替代方法,其中密码不以明文形式传输。但是,这不会**导致比基本身份验证更重要的安全优势。另一方面,与基本身份验证相比,使用摘要式身份验证的服务器上的密码存储安全性更低。因此,使用基本身份验证并使用mod_ssl加密整个连接是一个更好的选择。
使用摘要式身份验证
要使用 MD5 摘要式身份验证,请配置要保护的位置,如下面的示例所示:
例:
<Location "/private/"> AuthType Digest AuthName "private area" AuthDigestDomain "/private/" "http://mirror.my.dom/private2/" AuthDigestProvider file AuthUserFile "/web/auth/.digest_pw" Require valid-user </Location>
AuthDigestDomain应列出将受此 configuration 保护的位置。
可以使用htdigest工具创建和管理AuthUserFile指令中引用的 pasword 文件。
注意
摘要式身份验证旨在比基本身份验证更安全,但不再满足该设计目标。 man-in-the-middle 攻击者可以轻易强制浏览器降级为基本身份验证。甚至被动窃听者也可以使用今天的图形硬件来密码,因为摘要式身份验证使用的散列算法太快了。另一个问题是在服务器上存储密码是不安全的。被盗 htdigest 文件的内容可以直接用于摘要式身份验证。因此,强烈建议使用mod_ssl加密整个连接。
mod_auth_digest仅适用于 APR 支持共享 memory 的平台。
AuthDigestAlgorithm 指令
描述: | 选择用于在摘要式身份验证中计算质询和响应哈希值的算法 |
句法: | AuthDigestAlgorithm MD5\|MD5-sess |
默认: | AuthDigestAlgorithm MD5 |
Context: | 目录,.htaccess |
覆盖: | AuthConfig |
状态: | 延期 |
模块: | mod_auth_digest |
AuthDigestAlgorithm
指令选择用于计算质询和响应哈希值的算法。
MD5-sess
尚未正确实施。
AuthDigestDomain 指令
描述: | 用于摘要式身份验证的相同保护空间中的 URI |
句法: | AuthDigestDomain URI[URI]... |
Context: | 目录,.htaccess |
覆盖: | AuthConfig |
状态: | 延期 |
模块: | mod_auth_digest |
AuthDigestDomain
指令允许您指定一个或多个位于同一保护空间中的 URI(i.e.使用相同的域和 username/password 信息)。指定的 URI 是前缀; client 将假设所有“低于”这些 URI 也受相同的 username/password 保护。 URI 可以是绝对 URI(i.e.包括 scheme,host, port,etc.)或相对 URI。
应始终指定此指令并至少包含此空间的(set of)root URI(s)。省略这样做会导致 client 为发送到此服务器的每个请求发送 Authorization 标头。
指定的 URI 也可以指向不同的服务器,在这种情况下,clients(理解这一点)将在多个服务器之间共享 username/password info,而不会在每次 time 时提示用户。
AuthDigestNonceLifetime 指令
描述: | 服务器现时的有效期是多长 |
句法: | AuthDigestNonceLifetime seconds |
默认: | AuthDigestNonceLifetime 300 |
Context: | 目录,.htaccess |
覆盖: | AuthConfig |
状态: | 延期 |
模块: | mod_auth_digest |
AuthDigestNonceLifetime
指令控制服务器 nonce 有效的 long。当 client 使用过期的 nonce 与服务器联系时,服务器将使用stale=true
发回 401。如果 seconds 大于 0,则它指定 nonce 有效的 time 的数量;这可能永远不会设置为少于 10 秒。如果秒小于 0 则 nonce 永不过期。
AuthDigestProvider 指令
描述: | 为此位置设置身份验证 provider(s) |
句法: | AuthDigestProvider provider-name[provider-name]... |
默认: | AuthDigestProvider file |
Context: | 目录,.htaccess |
覆盖: | AuthConfig |
状态: | 延期 |
模块: | mod_auth_digest |
AuthDigestProvider
指令 sets 哪个提供程序用于验证此位置的用户。默认的file
提供程序由mod_authn_file模块实现。确保服务器中存在所选的提供程序模块。
请参阅提供商的mod_authn_dbm,mod_authn_file,mod_authn_dbd和mod_authn_socache。
AuthDigestQop 指令
描述: | 确定要在摘要式身份验证中使用的 quality-of-protection |
句法: | AuthDigestQop none\|auth\|auth-int[auth\|auth-int] |
默认: | AuthDigestQop auth |
Context: | 目录,.htaccess |
覆盖: | AuthConfig |
状态: | 延期 |
模块: | mod_auth_digest |
AuthDigestQop
指令确定要使用的 quality-of-protection。auth
只会进行身份验证(username/password);auth-int
是身份验证加完整性检查(还计算并检查实体的 MD5 哈希值);none
将导致模块使用旧的 RFC-2069 摘要算法(不包括完整性检查)。可以指定auth
和auth-int
,在这种情况下,浏览器将选择使用哪些。只有当浏览器由于某种原因不喜欢它接收的挑战时才应该使用none
。
auth-int
尚未实施。
AuthDigestShmemSize 指令
描述: | 要分配用于跟踪 clients 的共享 memory 的数量 |
句法: | AuthDigestShmemSize size |
默认: | AuthDigestShmemSize 1000 |
Context: | 服务器配置 |
状态: | 延期 |
模块: | mod_auth_digest |
AuthDigestShmemSize
指令定义共享 memory 的数量,该数量将在服务器启动时分配,以跟踪 clients。请注意,共享 memory 段的设置不能小于跟踪至少一个 client 所需的空间。此 value 取决于您的系统。如果要查找确切的 value,可以将AuthDigestShmemSize
设置为0
的 value,并在尝试启动服务器后读取错误消息。
大小通常以字节表示,但您可以使用K
或M
来表示您的 value 为 KBytes 或 MBytes。对于 example,以下指令都是等效的:
AuthDigestShmemSize 1048576 AuthDigestShmemSize 1024K AuthDigestShmemSize 1M