
預設情況下,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 的設定腳本接受 --disable-plaintext-password-storage 選項來繞過儲存明文密碼和用戶端憑證密碼的邏輯。
我不想更新到開發版本。
選項2
/etc/subversion/config
AFAIK,僅當使用者的主目錄中沒有設定檔時才使用此設定檔。
選項3
新增一個 cron 作業來刪除 中使用者的身份驗證快取~/.subversion/auth/svn.simple
。因此,即使他們更改了 svn 設定文件,我們的 cron 作業也會刪除所有儲存的密碼。然而,即使每分鐘運行一次也不能保證我們的備份系統不會抓取包含明文密碼的檔案。
有想法嗎?
答案1
你不能。
無論您做什麼,您的用戶都可以繞過它並將其密碼儲存在純文字檔案中。如果您停用客戶端二進位檔案中的該功能,他們將下載或編譯不同的用戶端。通常,如果您設定了令人討厭的安全措施(例如必須為每個 svn 操作輸入密碼),您的使用者將以一種使安全性變得更糟的方式繞過它們。 (例如,編寫包含密碼的包裝腳本。他們將使世界可讀。)所以不要這樣做。
重申一下:僅透過技術措施,您無法阻止使用者將其密碼儲存在檔案中。你可以禁止,但如果這讓他們的生活變得困難,他們無論如何都會這麼做。
如果您擔心筆記型電腦或備份被盜,請加密使用者的主目錄。這將保護密碼和資料。如果整個主目錄被加密,出於可用性原因,加密密碼通常與登入密碼相同。請務必制定密碼備份策略(例如密封的信封),因為遺失加密密碼將無法復原。
如果您擔心密碼重複使用,請強加一個隨機(因此是唯一的)密碼,他們將在客戶端中一次輸入該密碼。當然,有一個簡單的過程來更改洩漏的密碼。
答案2
順便說一句,即使在加密任何內容之前,我也會處理文件權限:只是出於好奇檢查了我自己的設置,發現這是世界可讀的。對於包含明確密碼的文件,在我看來它就像一個安全漏洞。