2011-05-11 44 views
11

據我所知,web.config文件中的任何部分都可以使用aspnet_regiis.exe進行加密&解密。爲什麼要加密一個web配置文件?

如果aspnet_regiis可以用來解密web.config文件,那麼加密它有什麼意義?僅僅是爲了保存密碼&作爲純文本存儲敏感信息?如果有文件和exe的人可以解密它,它真的保護敏感的配置信息嗎?

UPDATE

謝謝大家誰回答了有關計算機密鑰。我問這個問題的原因是因爲我們有一個在codeplex.com上託管的開源項目。但是,我們也將此項目部署到Windows Azure。我試圖找到一種最佳方法來保持敏感密碼不受源代碼管理,但在部署到Azure時將它們作爲我的項目的一部分進行訪問。

目前,我正在使用web config轉換來存儲Azure連接字符串(以及system.net的Gmail密碼)。我創建了一個Web.PublishToAzure.config轉換文件,並將該文件保存爲源代碼管理。我也發現this article這可能是一個更好的選擇。再次感謝。

+0

「本文」鏈接不存在。如果可能,我真的很想看看。謝謝。 –

回答

2

簡單化的答案:他們將無法獲得關鍵

我相信默認密鑰存儲在機器的證書存儲,所以惡意的用戶需要訪問這一點。我不是專家,但這是它的要點。

8

使用機器專用密鑰對文件進行加密。雖然任何擁有機器級訪問權限的人都可以對其進行解密,但對其進行加密會阻止訪問FTP的用戶,因爲他們沒有機器的DPAPI密鑰。

4

我的理解是,ASPNET_REGIIS.EXE使用計算機專用鍵作爲「鹽」

如果你加密機上的部分,然後把配置到另一臺機器,並嘗試對其進行解密,它不管用。

+0

+1用於提及將加密文件移動到另一臺計算機的部分。 – Andrew

4

在歷史上,出現了在瀏覽器或Web服務器軟件漏洞,允許用戶查看服務器的硬盤上的任何文件。在這種情況下,加密的web.config文件可能有用。但是,如果一個Web服務器已經被攻破,允許遠程訪問服務器本身,那麼擁有一個加密的web.config文件將是你最擔心的問題。

+0

同意。我想在保持密碼和其他敏感信息不受源代碼管理方面做得更多。 – danludwig