对所有用户禁用SVN纯文本密码存储


9

默认情况下,Subversion允许用户将密码以纯文本格式保存在中~/.subversion/auth/svn.simple。我正在研究用于在svn中存储加密密码的选项,但至少要尽快,我想完全禁用为所有用户存储密码的功能。我们正在运行Subversion 1.6.17。

我可以通过配置文件在用户的主目录中禁用它。

〜/ .subversion /服务器

[global]
# Password / passphrase caching parameters:
store-passwords = no
store-plaintext-passwords = no

但是,用户可以根据需要更改配置文件。是否没有系统范围的svn配置文件?我见过的一些选择:

选项1

在1.8-dev中,Subversion的configure脚本接受--disable-plaintext-password-storage选项,以绕过存储纯文本密码和客户端证书密码短语的逻辑。

我宁愿不更新到开发版本。

选项2

/etc/subversion/config

AFAIK,仅当用户的主目录中没有配置文件时,才使用此配置文件。

选项3

添加cron作业以删除中的用户身份验证缓存~/.subversion/auth/svn.simple。因此,即使他们更改了svn配置文件,我们的cron作业也会杀死所有存储的密码。但是,即使每分钟运行它也不能保证我们的备份系统不会抓取包含纯文本密码的文件。

有想法吗?


您控制服务器吗?为什么不使用SSH加密钥或Kerberos代替密码身份验证?
Mikel 2012年

是的,我是管理员。
Banjer 2012年

Answers:


6

你不能

无论您做什么,您的用户都可以绕过它,并且仍然将密码存储在纯文本文件中。如果您禁用客户端二进制文件中的功能,则它们将下载或编译其他客户端。通常,如果您设置了令人讨厌的安全措施(例如必须为每个svn操作键入密码),则用户将以使安全性更差的方式绕过它们。(例如,编写一个包含其密码的包装器脚本。它们将使世界可读)。因此,请勿这样做。

重申:您不能仅通过技术措施就阻止用户将密码存储在文件中。您可以禁止这样做,但是如果这使他们的生活变得困难,他们还是会这么做。

如果您担心便携式计算机或备份被盗,请加密用户的主目录。这将保护密码和数据。如果整个主目录都已加密,则出于可用性的考虑,加密密码通常与登录密码相同。确保具有密码备份策略(例如密封信封),因为丢失加密密码是无法恢复的。

如果您担心密码重用,请强加一个随机(因此唯一)的密码,他们将一劳永逸地输入他们的客户端。当然,有一个简单的过程来更改受感染的密码。


到处都是很棒的地方。我当然已经看到用户规避了我们为了使他们的生活更轻松而制定的协议。我将不得不看到svn还提供了其他身份验证方式,这些方式不会使用户烦恼,例如基于密钥的方式。
Banjer

0

顺便说一句,即使在加密任何东西之前,我也会照顾文件权限:只是出于好奇而检查了自己的设置,发现这是世界可读的。对于包含清晰密码的文件,对我来说,它看起来像一个安全漏洞。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.