Subversion使用SSPI模块 HTTP vs HTTPS

3
我正在升级我们的svn服务器,想要改用Windows身份验证,而不是htpassword文件。我已安装模块,并可以在HTTP或HTTPS上运行。
使用TortoiseSVN访问 repos 时,有两种情况:
1. 当SSPI + HTTPS已设置时,自动登录并正常工作。 2. 当SSPI + HTTP已设置时,需要在TortoiseSVN中输入域用户名和密码进行登录,但这没问题,因为我可以要求TortoiseSVN记住我的凭据。
我的问题是:如果我使用SSPI + HTTP而不是SSPI + HTTPS,那么我的密码和用户名是否会被加密?
我问这个问题的原因是我们在局域网中,永远无法从外部访问,而SSL则会使一切变得缓慢。所以我宁愿使用HTTP + SSPI。
我使用WireShark在网络上搜索了我的密码,但没有成功,这意味着凭据确实被加密了。我只能找到一行看起来像我的用户+密码的行,类似于: Authorization: Basic Yh2_3 m%erTo_d4fre 如果有人能为我澄清这一点,或者最好链接我到一个位置,说明在使用SSPI + HTTP时密码是加密的,我将非常感激。
编辑:我误解了某些非常重要的事情。请验证我是否正确:
当启用SSPI + HTTP时访问svn,实际上意味着SSPI被禁用,我在访问时使用Basic Auth,因为SSPI需要SSL。这意味着我的用户名和密码只具有轻微的Basic Auth加密,不像SSL加密。
SSPI模块唯一涉及的地方是从Basic Auth接收用户名+密码,然后使用这些信息针对域进行用户验证(当然是以安全的方式)。

我再次阅读文档时得出以下结论,能否有人验证我的理解是否正确?

谢谢

Garrett

1个回答

3
更新:Subversion 1.8.0中的行为已更改:现在,如果服务器支持,Subversion客户端会自动使用SPNEGO / NTLM协议进行身份验证。即http-auth-types配置选项的默认值是negotiate;ntlm;basic
默认情况下,Subversion网络库仅对HTTPS连接使用Negotiate / NTLM。
引用VisualSVN Server KB文章,适用于任何Subversion客户端/服务器:http://www.visualsvn.com/support/topic/00040/

为了防止窃听者和中间人攻击,不建议在不安全的HTTP协议上使用NTLM / Negotiate身份验证。这就是为什么默认情况下禁用此选项的原因。

但是,如果您被迫使用HTTP协议,则可以手动重新配置Subversion客户端。可以使用http-auth-types Subversion配置选项启用HTTP协议上的NTLM / Negotiate身份验证。此选项的默认值为“http-auth-types = basic”。为了允许NTLM / Negotiate身份验证,您应将此值更改为“http-auth-types = basic; negotiate”。

该文章还提供了更改Subversion配置的逐步说明。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接